feat(telemetry): opt-in admin alert pushes
- telemetryAlerts metadata flag, admin-gated server fn - alerts sent only to admins with the flag enabled - settings toggle visible to admins only, under device notifications
This commit is contained in:
@@ -18,6 +18,7 @@ interface AuthData {
|
|||||||
theme?: string;
|
theme?: string;
|
||||||
locale?: string;
|
locale?: string;
|
||||||
seenThemesHint?: boolean;
|
seenThemesHint?: boolean;
|
||||||
|
telemetryAlerts?: boolean;
|
||||||
};
|
};
|
||||||
roles: string[];
|
roles: string[];
|
||||||
phone: string;
|
phone: string;
|
||||||
|
|||||||
@@ -1,11 +1,46 @@
|
|||||||
|
import { useState } from "react";
|
||||||
import { Box, Title, Stack, Switch, Button, Text, Group } from "@mantine/core";
|
import { Box, Title, Stack, Switch, Button, Text, Group } from "@mantine/core";
|
||||||
import { Trans, useLingui } from "@lingui/react/macro";
|
import { Trans, useLingui } from "@lingui/react/macro";
|
||||||
import { useWebPush } from "@/hooks/use-web-push";
|
import { useWebPush } from "@/hooks/use-web-push";
|
||||||
|
import { useAuth } from "@/contexts/auth-context";
|
||||||
|
import { useIsAdmin } from "@/features/core/hooks/use-is-admin";
|
||||||
|
import { updateUserTelemetryAlerts } from "@/features/settings/server";
|
||||||
import toast from "@/lib/sonner";
|
import toast from "@/lib/sonner";
|
||||||
|
|
||||||
|
const TelemetryAlertsSwitch = () => {
|
||||||
|
const { t } = useLingui();
|
||||||
|
const { metadata, set } = useAuth();
|
||||||
|
const [saving, setSaving] = useState(false);
|
||||||
|
|
||||||
|
const handleToggle = async (checked: boolean) => {
|
||||||
|
setSaving(true);
|
||||||
|
try {
|
||||||
|
const result = await updateUserTelemetryAlerts({ data: checked });
|
||||||
|
if (result?.metadata) {
|
||||||
|
set({ metadata: result.metadata });
|
||||||
|
}
|
||||||
|
} catch {
|
||||||
|
toast.error(t`Couldn't update telemetry alerts`);
|
||||||
|
} finally {
|
||||||
|
setSaving(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Switch
|
||||||
|
checked={metadata?.telemetryAlerts === true}
|
||||||
|
onChange={(e) => handleToggle(e.currentTarget.checked)}
|
||||||
|
disabled={saving}
|
||||||
|
label={t`Telemetry alerts`}
|
||||||
|
description={t`Error spikes and failing functions, pushed to this account`}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export function NotificationsSection() {
|
export function NotificationsSection() {
|
||||||
const { supported, configured, permission, subscribed, busy, enable, disable, sendTest } =
|
const { supported, configured, permission, subscribed, busy, enable, disable, sendTest } =
|
||||||
useWebPush();
|
useWebPush();
|
||||||
|
const isAdmin = useIsAdmin();
|
||||||
const { t } = useLingui();
|
const { t } = useLingui();
|
||||||
|
|
||||||
if (!supported || !configured) {
|
if (!supported || !configured) {
|
||||||
@@ -64,6 +99,7 @@ export function NotificationsSection() {
|
|||||||
disabled={busy}
|
disabled={busy}
|
||||||
label={t`Enable notifications on this device`}
|
label={t`Enable notifications on this device`}
|
||||||
/>
|
/>
|
||||||
|
{subscribed && isAdmin && <TelemetryAlertsSwitch />}
|
||||||
{subscribed && (
|
{subscribed && (
|
||||||
<Group>
|
<Group>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
import { createServerFn } from "@tanstack/react-start";
|
import { createServerFn } from "@tanstack/react-start";
|
||||||
import { superTokensFunctionMiddleware } from "@/utils/supertokens";
|
import {
|
||||||
|
superTokensAdminFunctionMiddleware,
|
||||||
|
superTokensFunctionMiddleware,
|
||||||
|
} from "@/utils/supertokens";
|
||||||
|
|
||||||
// Whitelists: these values flow into Mantine's primaryColor / the
|
// Whitelists: these values flow into Mantine's primaryColor / the
|
||||||
// data-mantine-color-scheme attribute — an unknown value crash-loops or
|
// data-mantine-color-scheme attribute — an unknown value crash-loops or
|
||||||
@@ -139,3 +142,26 @@ export const updateUserAccentColor = createServerFn({ method: "POST" })
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export const updateUserTelemetryAlerts = createServerFn({ method: "POST" })
|
||||||
|
.validator((data: boolean) => data === true)
|
||||||
|
.middleware([superTokensAdminFunctionMiddleware])
|
||||||
|
.handler(async ({ context, data }) => {
|
||||||
|
const { userAuthId, metadata } = context;
|
||||||
|
if (!userAuthId) return;
|
||||||
|
|
||||||
|
const { updateUserMetadataFields } = await import(
|
||||||
|
"@/utils/supertokens-core.server"
|
||||||
|
);
|
||||||
|
|
||||||
|
await updateUserMetadataFields(userAuthId, {
|
||||||
|
telemetryAlerts: data,
|
||||||
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
metadata: {
|
||||||
|
...metadata,
|
||||||
|
telemetryAlerts: data,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|||||||
@@ -34,11 +34,15 @@ const getAdminPlayerIds = async (): Promise<string[]> => {
|
|||||||
const { ensureSuperTokensBackend } = await import("@/lib/supertokens/server");
|
const { ensureSuperTokensBackend } = await import("@/lib/supertokens/server");
|
||||||
ensureSuperTokensBackend();
|
ensureSuperTokensBackend();
|
||||||
const UserRoles = (await import("supertokens-node/recipe/userroles")).default;
|
const UserRoles = (await import("supertokens-node/recipe/userroles")).default;
|
||||||
|
const UserMetadata = (await import("supertokens-node/recipe/usermetadata")).default;
|
||||||
const response = await UserRoles.getUsersThatHaveRole("public", ADMIN_ROLE);
|
const response = await UserRoles.getUsersThatHaveRole("public", ADMIN_ROLE);
|
||||||
const users = response.status === "OK" ? response.users : [];
|
const users = response.status === "OK" ? response.users : [];
|
||||||
const playerIds: string[] = [];
|
const playerIds: string[] = [];
|
||||||
for (const userId of users) {
|
for (const userId of users) {
|
||||||
try {
|
try {
|
||||||
|
// Opt-in: only admins who enabled telemetry alerts in settings.
|
||||||
|
const { metadata } = await UserMetadata.getUserMetadata(userId);
|
||||||
|
if (metadata?.telemetryAlerts !== true) continue;
|
||||||
const player = await pbAdmin.getPlayerByAuthId(userId);
|
const player = await pbAdmin.getPlayerByAuthId(userId);
|
||||||
if (player) playerIds.push(player.id);
|
if (player) playerIds.push(player.id);
|
||||||
} catch {}
|
} catch {}
|
||||||
|
|||||||
+33
-21
@@ -105,7 +105,7 @@ msgid "{0} Badge Holders"
|
|||||||
msgstr "{0} Abzeichen-Inhaber"
|
msgstr "{0} Abzeichen-Inhaber"
|
||||||
|
|
||||||
#. placeholder {0}: recentErrors.totalItems
|
#. placeholder {0}: recentErrors.totalItems
|
||||||
#: src/lib/telemetry/alerts.server.ts:104
|
#: src/lib/telemetry/alerts.server.ts:110
|
||||||
msgid "{0} client errors in the last 15 minutes"
|
msgid "{0} client errors in the last 15 minutes"
|
||||||
msgstr "{0} Client-Fehler in den letzten 15 Minuten"
|
msgstr "{0} Client-Fehler in den letzten 15 Minuten"
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ msgstr "{count, plural, one {Spieler (#)} other {Spieler (#)}}"
|
|||||||
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
||||||
msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:167
|
#: src/lib/telemetry/alerts.server.ts:173
|
||||||
msgid "{deniedCount} denied admin access attempts in the last 15 minutes"
|
msgid "{deniedCount} denied admin access attempts in the last 15 minutes"
|
||||||
msgstr "{deniedCount} abgelehnte Admin-Zugriffsversuche in den letzten 15 Minuten"
|
msgstr "{deniedCount} abgelehnte Admin-Zugriffsversuche in den letzten 15 Minuten"
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ msgstr "{n, plural, one {# garantiertes Spiel} other {# garantierte Spiele}}"
|
|||||||
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
|
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
|
||||||
msgstr "{n, plural, one {# Wildcard} other {# Wildcards}}"
|
msgstr "{n, plural, one {# Wildcard} other {# Wildcards}}"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:154
|
#: src/lib/telemetry/alerts.server.ts:160
|
||||||
msgid "{name} failed {count} times in the last 15 minutes"
|
msgid "{name} failed {count} times in the last 15 minutes"
|
||||||
msgstr "{name} ist in den letzten 15 Minuten {count} Mal fehlgeschlagen"
|
msgstr "{name} ist in den letzten 15 Minuten {count} Mal fehlgeschlagen"
|
||||||
|
|
||||||
@@ -392,7 +392,7 @@ msgid "A code was sent to +1 ({0}) {1}-{2}"
|
|||||||
msgstr "Ein Code wurde an +1 ({0}) {1}-{2} gesendet"
|
msgstr "Ein Code wurde an +1 ({0}) {1}-{2} gesendet"
|
||||||
|
|
||||||
#. placeholder {0}: info.message.slice(0, 120)
|
#. placeholder {0}: info.message.slice(0, 120)
|
||||||
#: src/lib/telemetry/alerts.server.ts:125
|
#: src/lib/telemetry/alerts.server.ts:131
|
||||||
msgid "A new error appeared: {0}"
|
msgid "A new error appeared: {0}"
|
||||||
msgstr "Ein neuer Fehler ist aufgetreten: {0}"
|
msgstr "Ein neuer Fehler ist aufgetreten: {0}"
|
||||||
|
|
||||||
@@ -718,7 +718,7 @@ msgstr "Knete"
|
|||||||
msgid "Clear selected player"
|
msgid "Clear selected player"
|
||||||
msgstr "Ausgewählten Spieler entfernen"
|
msgstr "Ausgewählten Spieler entfernen"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:103
|
#: src/lib/telemetry/alerts.server.ts:109
|
||||||
msgid "Client error spike"
|
msgid "Client error spike"
|
||||||
msgstr "Anstieg von Client-Fehlern"
|
msgstr "Anstieg von Client-Fehlern"
|
||||||
|
|
||||||
@@ -813,18 +813,22 @@ msgstr "Telefonnummer kopieren"
|
|||||||
msgid "Correct picks are worth more each round"
|
msgid "Correct picks are worth more each round"
|
||||||
msgstr "Richtige Tipps sind in jeder Runde mehr wert"
|
msgstr "Richtige Tipps sind in jeder Runde mehr wert"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:43
|
#: src/features/settings/components/notifications-section.tsx:78
|
||||||
msgid "Couldn't disable notifications"
|
msgid "Couldn't disable notifications"
|
||||||
msgstr "Benachrichtigungen konnten nicht deaktiviert werden"
|
msgstr "Benachrichtigungen konnten nicht deaktiviert werden"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:38
|
#: src/features/settings/components/notifications-section.tsx:73
|
||||||
msgid "Couldn't enable notifications"
|
msgid "Couldn't enable notifications"
|
||||||
msgstr "Benachrichtigungen konnten nicht aktiviert werden"
|
msgstr "Benachrichtigungen konnten nicht aktiviert werden"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:50
|
#: src/features/settings/components/notifications-section.tsx:85
|
||||||
msgid "Couldn't send test notification"
|
msgid "Couldn't send test notification"
|
||||||
msgstr "Testbenachrichtigung konnte nicht gesendet werden"
|
msgstr "Testbenachrichtigung konnte nicht gesendet werden"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:23
|
||||||
|
msgid "Couldn't update telemetry alerts"
|
||||||
|
msgstr "Telemetrie-Benachrichtigungen konnten nicht aktualisiert werden"
|
||||||
|
|
||||||
#: src/features/reactions/components/emoji-picker.tsx:17
|
#: src/features/reactions/components/emoji-picker.tsx:17
|
||||||
msgid "crane"
|
msgid "crane"
|
||||||
msgstr "Kranich"
|
msgstr "Kranich"
|
||||||
@@ -904,7 +908,7 @@ msgstr "Tiefsee"
|
|||||||
msgid "Default"
|
msgid "Default"
|
||||||
msgstr "Standard"
|
msgstr "Standard"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:166
|
#: src/lib/telemetry/alerts.server.ts:172
|
||||||
msgid "Denied access attempt"
|
msgid "Denied access attempt"
|
||||||
msgstr "Abgelehnter Zugriffsversuch"
|
msgstr "Abgelehnter Zugriffsversuch"
|
||||||
|
|
||||||
@@ -985,7 +989,7 @@ msgstr "Turnier bearbeiten"
|
|||||||
msgid "Edit Your Prediction"
|
msgid "Edit Your Prediction"
|
||||||
msgstr "Deinen Tipp bearbeiten"
|
msgstr "Deinen Tipp bearbeiten"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:65
|
#: src/features/settings/components/notifications-section.tsx:100
|
||||||
msgid "Enable notifications on this device"
|
msgid "Enable notifications on this device"
|
||||||
msgstr "Benachrichtigungen auf diesem Gerät aktivieren"
|
msgstr "Benachrichtigungen auf diesem Gerät aktivieren"
|
||||||
|
|
||||||
@@ -1097,6 +1101,10 @@ msgstr "Fehlergruppe behoben"
|
|||||||
msgid "Error Message"
|
msgid "Error Message"
|
||||||
msgstr "Fehlermeldung"
|
msgstr "Fehlermeldung"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:35
|
||||||
|
msgid "Error spikes and failing functions, pushed to this account"
|
||||||
|
msgstr "Fehlerspitzen und fehlschlagende Funktionen, als Push an dieses Konto"
|
||||||
|
|
||||||
#: src/components/DefaultCatchBoundary.tsx:98
|
#: src/components/DefaultCatchBoundary.tsx:98
|
||||||
msgid "Error: {errorMessage}"
|
msgid "Error: {errorMessage}"
|
||||||
msgstr "Fehler: {errorMessage}"
|
msgstr "Fehler: {errorMessage}"
|
||||||
@@ -1679,7 +1687,7 @@ msgstr "Nie"
|
|||||||
msgid "Never active"
|
msgid "Never active"
|
||||||
msgstr "Nie aktiv"
|
msgstr "Nie aktiv"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:124
|
#: src/lib/telemetry/alerts.server.ts:130
|
||||||
msgid "New client error"
|
msgid "New client error"
|
||||||
msgstr "Neuer Client-Fehler"
|
msgstr "Neuer Client-Fehler"
|
||||||
|
|
||||||
@@ -1834,24 +1842,24 @@ msgstr "Stimmt nicht"
|
|||||||
msgid "Not right — enter our score"
|
msgid "Not right — enter our score"
|
||||||
msgstr "Stimmt nicht — unser Ergebnis eingeben"
|
msgstr "Stimmt nicht — unser Ergebnis eingeben"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:18
|
#: src/features/settings/components/notifications-section.tsx:53
|
||||||
#: src/features/settings/components/notifications-section.tsx:59
|
#: src/features/settings/components/notifications-section.tsx:94
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Benachrichtigungen"
|
msgstr "Benachrichtigungen"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:35
|
#: src/features/settings/components/notifications-section.tsx:70
|
||||||
msgid "Notifications are blocked. Enable them in your browser settings."
|
msgid "Notifications are blocked. Enable them in your browser settings."
|
||||||
msgstr "Benachrichtigungen sind blockiert. Aktiviere sie in deinen Browser-Einstellungen."
|
msgstr "Benachrichtigungen sind blockiert. Aktiviere sie in deinen Browser-Einstellungen."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:21
|
#: src/features/settings/components/notifications-section.tsx:56
|
||||||
msgid "Notifications aren't available right now."
|
msgid "Notifications aren't available right now."
|
||||||
msgstr "Benachrichtigungen sind gerade nicht verfügbar."
|
msgstr "Benachrichtigungen sind gerade nicht verfügbar."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:42
|
#: src/features/settings/components/notifications-section.tsx:77
|
||||||
msgid "Notifications disabled on this device"
|
msgid "Notifications disabled on this device"
|
||||||
msgstr "Benachrichtigungen auf diesem Gerät deaktiviert"
|
msgstr "Benachrichtigungen auf diesem Gerät deaktiviert"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:32
|
#: src/features/settings/components/notifications-section.tsx:67
|
||||||
msgid "Notifications enabled on this device"
|
msgid "Notifications enabled on this device"
|
||||||
msgstr "Benachrichtigungen auf diesem Gerät aktiviert"
|
msgstr "Benachrichtigungen auf diesem Gerät aktiviert"
|
||||||
|
|
||||||
@@ -2304,7 +2312,7 @@ msgstr "Wähle deinen Walkout-Song"
|
|||||||
msgid "Send Code"
|
msgid "Send Code"
|
||||||
msgstr "Code senden"
|
msgstr "Code senden"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:75
|
#: src/features/settings/components/notifications-section.tsx:111
|
||||||
msgid "Send test notification"
|
msgid "Send test notification"
|
||||||
msgstr "Testbenachrichtigung senden"
|
msgstr "Testbenachrichtigung senden"
|
||||||
|
|
||||||
@@ -2313,7 +2321,7 @@ msgstr "Testbenachrichtigung senden"
|
|||||||
msgid "Series is tied"
|
msgid "Series is tied"
|
||||||
msgstr "Serie steht unentschieden"
|
msgstr "Serie steht unentschieden"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:153
|
#: src/lib/telemetry/alerts.server.ts:159
|
||||||
msgid "Server function failing"
|
msgid "Server function failing"
|
||||||
msgstr "Serverfunktion schlägt fehl"
|
msgstr "Serverfunktion schlägt fehl"
|
||||||
|
|
||||||
@@ -2579,6 +2587,10 @@ msgstr "Teams erfolgreich erstellt!"
|
|||||||
msgid "Telemetry"
|
msgid "Telemetry"
|
||||||
msgstr "Telemetrie"
|
msgstr "Telemetrie"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:34
|
||||||
|
msgid "Telemetry alerts"
|
||||||
|
msgstr "Telemetrie-Benachrichtigungen"
|
||||||
|
|
||||||
#: src/themes/terminal/manifest.ts:6
|
#: src/themes/terminal/manifest.ts:6
|
||||||
msgid "Terminal"
|
msgid "Terminal"
|
||||||
msgstr "Terminal"
|
msgstr "Terminal"
|
||||||
@@ -2587,7 +2599,7 @@ msgstr "Terminal"
|
|||||||
msgid "Test notification — push is working on this device."
|
msgid "Test notification — push is working on this device."
|
||||||
msgstr "Test-Benachrichtigung — Push funktioniert auf diesem Gerät."
|
msgstr "Test-Benachrichtigung — Push funktioniert auf diesem Gerät."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:49
|
#: src/features/settings/components/notifications-section.tsx:84
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Test-Benachrichtigung gesendet"
|
msgstr "Test-Benachrichtigung gesendet"
|
||||||
|
|
||||||
@@ -2620,7 +2632,7 @@ msgstr "Diese Spieler sind noch nicht gegeneinander angetreten."
|
|||||||
msgid "These teams have not faced each other yet."
|
msgid "These teams have not faced each other yet."
|
||||||
msgstr "Diese Teams sind noch nicht gegeneinander angetreten."
|
msgstr "Diese Teams sind noch nicht gegeneinander angetreten."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:22
|
#: src/features/settings/components/notifications-section.tsx:57
|
||||||
msgid "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
msgid "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
||||||
msgstr "Dieses Gerät unterstützt keine Push-Benachrichtigungen. Installiere die App unter iOS zuerst auf deinem Home-Bildschirm."
|
msgstr "Dieses Gerät unterstützt keine Push-Benachrichtigungen. Installiere die App unter iOS zuerst auf deinem Home-Bildschirm."
|
||||||
|
|
||||||
|
|||||||
+33
-21
@@ -105,7 +105,7 @@ msgid "{0} Badge Holders"
|
|||||||
msgstr "{0} Badge Holders"
|
msgstr "{0} Badge Holders"
|
||||||
|
|
||||||
#. placeholder {0}: recentErrors.totalItems
|
#. placeholder {0}: recentErrors.totalItems
|
||||||
#: src/lib/telemetry/alerts.server.ts:104
|
#: src/lib/telemetry/alerts.server.ts:110
|
||||||
msgid "{0} client errors in the last 15 minutes"
|
msgid "{0} client errors in the last 15 minutes"
|
||||||
msgstr "{0} client errors in the last 15 minutes"
|
msgstr "{0} client errors in the last 15 minutes"
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ msgstr "{count, plural, one {Players (#)} other {Players (#)}}"
|
|||||||
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
||||||
msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:167
|
#: src/lib/telemetry/alerts.server.ts:173
|
||||||
msgid "{deniedCount} denied admin access attempts in the last 15 minutes"
|
msgid "{deniedCount} denied admin access attempts in the last 15 minutes"
|
||||||
msgstr "{deniedCount} denied admin access attempts in the last 15 minutes"
|
msgstr "{deniedCount} denied admin access attempts in the last 15 minutes"
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ msgstr "{n, plural, one {# match guaranteed} other {# matches guaranteed}}"
|
|||||||
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
|
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
|
||||||
msgstr "{n, plural, one {# wildcard} other {# wildcards}}"
|
msgstr "{n, plural, one {# wildcard} other {# wildcards}}"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:154
|
#: src/lib/telemetry/alerts.server.ts:160
|
||||||
msgid "{name} failed {count} times in the last 15 minutes"
|
msgid "{name} failed {count} times in the last 15 minutes"
|
||||||
msgstr "{name} failed {count} times in the last 15 minutes"
|
msgstr "{name} failed {count} times in the last 15 minutes"
|
||||||
|
|
||||||
@@ -392,7 +392,7 @@ msgid "A code was sent to +1 ({0}) {1}-{2}"
|
|||||||
msgstr "A code was sent to +1 ({0}) {1}-{2}"
|
msgstr "A code was sent to +1 ({0}) {1}-{2}"
|
||||||
|
|
||||||
#. placeholder {0}: info.message.slice(0, 120)
|
#. placeholder {0}: info.message.slice(0, 120)
|
||||||
#: src/lib/telemetry/alerts.server.ts:125
|
#: src/lib/telemetry/alerts.server.ts:131
|
||||||
msgid "A new error appeared: {0}"
|
msgid "A new error appeared: {0}"
|
||||||
msgstr "A new error appeared: {0}"
|
msgstr "A new error appeared: {0}"
|
||||||
|
|
||||||
@@ -718,7 +718,7 @@ msgstr "Claymation"
|
|||||||
msgid "Clear selected player"
|
msgid "Clear selected player"
|
||||||
msgstr "Clear selected player"
|
msgstr "Clear selected player"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:103
|
#: src/lib/telemetry/alerts.server.ts:109
|
||||||
msgid "Client error spike"
|
msgid "Client error spike"
|
||||||
msgstr "Client error spike"
|
msgstr "Client error spike"
|
||||||
|
|
||||||
@@ -813,18 +813,22 @@ msgstr "Copy phone number"
|
|||||||
msgid "Correct picks are worth more each round"
|
msgid "Correct picks are worth more each round"
|
||||||
msgstr "Correct picks are worth more each round"
|
msgstr "Correct picks are worth more each round"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:43
|
#: src/features/settings/components/notifications-section.tsx:78
|
||||||
msgid "Couldn't disable notifications"
|
msgid "Couldn't disable notifications"
|
||||||
msgstr "Couldn't disable notifications"
|
msgstr "Couldn't disable notifications"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:38
|
#: src/features/settings/components/notifications-section.tsx:73
|
||||||
msgid "Couldn't enable notifications"
|
msgid "Couldn't enable notifications"
|
||||||
msgstr "Couldn't enable notifications"
|
msgstr "Couldn't enable notifications"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:50
|
#: src/features/settings/components/notifications-section.tsx:85
|
||||||
msgid "Couldn't send test notification"
|
msgid "Couldn't send test notification"
|
||||||
msgstr "Couldn't send test notification"
|
msgstr "Couldn't send test notification"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:23
|
||||||
|
msgid "Couldn't update telemetry alerts"
|
||||||
|
msgstr "Couldn't update telemetry alerts"
|
||||||
|
|
||||||
#: src/features/reactions/components/emoji-picker.tsx:17
|
#: src/features/reactions/components/emoji-picker.tsx:17
|
||||||
msgid "crane"
|
msgid "crane"
|
||||||
msgstr "crane"
|
msgstr "crane"
|
||||||
@@ -904,7 +908,7 @@ msgstr "Deep Sea"
|
|||||||
msgid "Default"
|
msgid "Default"
|
||||||
msgstr "Default"
|
msgstr "Default"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:166
|
#: src/lib/telemetry/alerts.server.ts:172
|
||||||
msgid "Denied access attempt"
|
msgid "Denied access attempt"
|
||||||
msgstr "Denied access attempt"
|
msgstr "Denied access attempt"
|
||||||
|
|
||||||
@@ -985,7 +989,7 @@ msgstr "Edit Tournament"
|
|||||||
msgid "Edit Your Prediction"
|
msgid "Edit Your Prediction"
|
||||||
msgstr "Edit Your Prediction"
|
msgstr "Edit Your Prediction"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:65
|
#: src/features/settings/components/notifications-section.tsx:100
|
||||||
msgid "Enable notifications on this device"
|
msgid "Enable notifications on this device"
|
||||||
msgstr "Enable notifications on this device"
|
msgstr "Enable notifications on this device"
|
||||||
|
|
||||||
@@ -1097,6 +1101,10 @@ msgstr "Error group resolved"
|
|||||||
msgid "Error Message"
|
msgid "Error Message"
|
||||||
msgstr "Error Message"
|
msgstr "Error Message"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:35
|
||||||
|
msgid "Error spikes and failing functions, pushed to this account"
|
||||||
|
msgstr "Error spikes and failing functions, pushed to this account"
|
||||||
|
|
||||||
#: src/components/DefaultCatchBoundary.tsx:98
|
#: src/components/DefaultCatchBoundary.tsx:98
|
||||||
msgid "Error: {errorMessage}"
|
msgid "Error: {errorMessage}"
|
||||||
msgstr "Error: {errorMessage}"
|
msgstr "Error: {errorMessage}"
|
||||||
@@ -1679,7 +1687,7 @@ msgstr "Never"
|
|||||||
msgid "Never active"
|
msgid "Never active"
|
||||||
msgstr "Never active"
|
msgstr "Never active"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:124
|
#: src/lib/telemetry/alerts.server.ts:130
|
||||||
msgid "New client error"
|
msgid "New client error"
|
||||||
msgstr "New client error"
|
msgstr "New client error"
|
||||||
|
|
||||||
@@ -1834,24 +1842,24 @@ msgstr "Not right"
|
|||||||
msgid "Not right — enter our score"
|
msgid "Not right — enter our score"
|
||||||
msgstr "Not right — enter our score"
|
msgstr "Not right — enter our score"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:18
|
#: src/features/settings/components/notifications-section.tsx:53
|
||||||
#: src/features/settings/components/notifications-section.tsx:59
|
#: src/features/settings/components/notifications-section.tsx:94
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notifications"
|
msgstr "Notifications"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:35
|
#: src/features/settings/components/notifications-section.tsx:70
|
||||||
msgid "Notifications are blocked. Enable them in your browser settings."
|
msgid "Notifications are blocked. Enable them in your browser settings."
|
||||||
msgstr "Notifications are blocked. Enable them in your browser settings."
|
msgstr "Notifications are blocked. Enable them in your browser settings."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:21
|
#: src/features/settings/components/notifications-section.tsx:56
|
||||||
msgid "Notifications aren't available right now."
|
msgid "Notifications aren't available right now."
|
||||||
msgstr "Notifications aren't available right now."
|
msgstr "Notifications aren't available right now."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:42
|
#: src/features/settings/components/notifications-section.tsx:77
|
||||||
msgid "Notifications disabled on this device"
|
msgid "Notifications disabled on this device"
|
||||||
msgstr "Notifications disabled on this device"
|
msgstr "Notifications disabled on this device"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:32
|
#: src/features/settings/components/notifications-section.tsx:67
|
||||||
msgid "Notifications enabled on this device"
|
msgid "Notifications enabled on this device"
|
||||||
msgstr "Notifications enabled on this device"
|
msgstr "Notifications enabled on this device"
|
||||||
|
|
||||||
@@ -2304,7 +2312,7 @@ msgstr "Select your walkout song"
|
|||||||
msgid "Send Code"
|
msgid "Send Code"
|
||||||
msgstr "Send Code"
|
msgstr "Send Code"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:75
|
#: src/features/settings/components/notifications-section.tsx:111
|
||||||
msgid "Send test notification"
|
msgid "Send test notification"
|
||||||
msgstr "Send test notification"
|
msgstr "Send test notification"
|
||||||
|
|
||||||
@@ -2313,7 +2321,7 @@ msgstr "Send test notification"
|
|||||||
msgid "Series is tied"
|
msgid "Series is tied"
|
||||||
msgstr "Series is tied"
|
msgstr "Series is tied"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:153
|
#: src/lib/telemetry/alerts.server.ts:159
|
||||||
msgid "Server function failing"
|
msgid "Server function failing"
|
||||||
msgstr "Server function failing"
|
msgstr "Server function failing"
|
||||||
|
|
||||||
@@ -2579,6 +2587,10 @@ msgstr "Teams created successfully!"
|
|||||||
msgid "Telemetry"
|
msgid "Telemetry"
|
||||||
msgstr "Telemetry"
|
msgstr "Telemetry"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:34
|
||||||
|
msgid "Telemetry alerts"
|
||||||
|
msgstr "Telemetry alerts"
|
||||||
|
|
||||||
#: src/themes/terminal/manifest.ts:6
|
#: src/themes/terminal/manifest.ts:6
|
||||||
msgid "Terminal"
|
msgid "Terminal"
|
||||||
msgstr "Terminal"
|
msgstr "Terminal"
|
||||||
@@ -2587,7 +2599,7 @@ msgstr "Terminal"
|
|||||||
msgid "Test notification — push is working on this device."
|
msgid "Test notification — push is working on this device."
|
||||||
msgstr "Test notification — push is working on this device."
|
msgstr "Test notification — push is working on this device."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:49
|
#: src/features/settings/components/notifications-section.tsx:84
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Test notification sent"
|
msgstr "Test notification sent"
|
||||||
|
|
||||||
@@ -2620,7 +2632,7 @@ msgstr "These players have not faced each other yet."
|
|||||||
msgid "These teams have not faced each other yet."
|
msgid "These teams have not faced each other yet."
|
||||||
msgstr "These teams have not faced each other yet."
|
msgstr "These teams have not faced each other yet."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:22
|
#: src/features/settings/components/notifications-section.tsx:57
|
||||||
msgid "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
msgid "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
||||||
msgstr "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
msgstr "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
||||||
|
|
||||||
|
|||||||
+33
-21
@@ -105,7 +105,7 @@ msgid "{0} Badge Holders"
|
|||||||
msgstr "Poseedores de la insignia {0}"
|
msgstr "Poseedores de la insignia {0}"
|
||||||
|
|
||||||
#. placeholder {0}: recentErrors.totalItems
|
#. placeholder {0}: recentErrors.totalItems
|
||||||
#: src/lib/telemetry/alerts.server.ts:104
|
#: src/lib/telemetry/alerts.server.ts:110
|
||||||
msgid "{0} client errors in the last 15 minutes"
|
msgid "{0} client errors in the last 15 minutes"
|
||||||
msgstr "{0} errores de cliente en los últimos 15 minutos"
|
msgstr "{0} errores de cliente en los últimos 15 minutos"
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ msgstr "{count, plural, one {Jugadores (#)} other {Jugadores (#)}}"
|
|||||||
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
||||||
msgstr "{count, plural, one {Equipos (#)} other {Equipos (#)}}"
|
msgstr "{count, plural, one {Equipos (#)} other {Equipos (#)}}"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:167
|
#: src/lib/telemetry/alerts.server.ts:173
|
||||||
msgid "{deniedCount} denied admin access attempts in the last 15 minutes"
|
msgid "{deniedCount} denied admin access attempts in the last 15 minutes"
|
||||||
msgstr "{deniedCount} intentos de acceso de administrador denegados en los últimos 15 minutos"
|
msgstr "{deniedCount} intentos de acceso de administrador denegados en los últimos 15 minutos"
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ msgstr "{n, plural, one {# partido garantizado} other {# partidos garantizados}}
|
|||||||
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
|
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
|
||||||
msgstr "{n, plural, one {# comodín} other {# comodines}}"
|
msgstr "{n, plural, one {# comodín} other {# comodines}}"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:154
|
#: src/lib/telemetry/alerts.server.ts:160
|
||||||
msgid "{name} failed {count} times in the last 15 minutes"
|
msgid "{name} failed {count} times in the last 15 minutes"
|
||||||
msgstr "{name} falló {count} veces en los últimos 15 minutos"
|
msgstr "{name} falló {count} veces en los últimos 15 minutos"
|
||||||
|
|
||||||
@@ -392,7 +392,7 @@ msgid "A code was sent to +1 ({0}) {1}-{2}"
|
|||||||
msgstr "Se envió un código al +1 ({0}) {1}-{2}"
|
msgstr "Se envió un código al +1 ({0}) {1}-{2}"
|
||||||
|
|
||||||
#. placeholder {0}: info.message.slice(0, 120)
|
#. placeholder {0}: info.message.slice(0, 120)
|
||||||
#: src/lib/telemetry/alerts.server.ts:125
|
#: src/lib/telemetry/alerts.server.ts:131
|
||||||
msgid "A new error appeared: {0}"
|
msgid "A new error appeared: {0}"
|
||||||
msgstr "Apareció un nuevo error: {0}"
|
msgstr "Apareció un nuevo error: {0}"
|
||||||
|
|
||||||
@@ -718,7 +718,7 @@ msgstr "Plastilina"
|
|||||||
msgid "Clear selected player"
|
msgid "Clear selected player"
|
||||||
msgstr "Quitar jugador seleccionado"
|
msgstr "Quitar jugador seleccionado"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:103
|
#: src/lib/telemetry/alerts.server.ts:109
|
||||||
msgid "Client error spike"
|
msgid "Client error spike"
|
||||||
msgstr "Aumento de errores de cliente"
|
msgstr "Aumento de errores de cliente"
|
||||||
|
|
||||||
@@ -813,18 +813,22 @@ msgstr "Copiar número de teléfono"
|
|||||||
msgid "Correct picks are worth more each round"
|
msgid "Correct picks are worth more each round"
|
||||||
msgstr "Los aciertos valen más en cada ronda"
|
msgstr "Los aciertos valen más en cada ronda"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:43
|
#: src/features/settings/components/notifications-section.tsx:78
|
||||||
msgid "Couldn't disable notifications"
|
msgid "Couldn't disable notifications"
|
||||||
msgstr "No se pudieron desactivar las notificaciones"
|
msgstr "No se pudieron desactivar las notificaciones"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:38
|
#: src/features/settings/components/notifications-section.tsx:73
|
||||||
msgid "Couldn't enable notifications"
|
msgid "Couldn't enable notifications"
|
||||||
msgstr "No se pudieron activar las notificaciones"
|
msgstr "No se pudieron activar las notificaciones"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:50
|
#: src/features/settings/components/notifications-section.tsx:85
|
||||||
msgid "Couldn't send test notification"
|
msgid "Couldn't send test notification"
|
||||||
msgstr "No se pudo enviar la notificación de prueba"
|
msgstr "No se pudo enviar la notificación de prueba"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:23
|
||||||
|
msgid "Couldn't update telemetry alerts"
|
||||||
|
msgstr "No se pudieron actualizar las alertas de telemetría"
|
||||||
|
|
||||||
#: src/features/reactions/components/emoji-picker.tsx:17
|
#: src/features/reactions/components/emoji-picker.tsx:17
|
||||||
msgid "crane"
|
msgid "crane"
|
||||||
msgstr "grulla"
|
msgstr "grulla"
|
||||||
@@ -904,7 +908,7 @@ msgstr "Mar Profundo"
|
|||||||
msgid "Default"
|
msgid "Default"
|
||||||
msgstr "Predeterminado"
|
msgstr "Predeterminado"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:166
|
#: src/lib/telemetry/alerts.server.ts:172
|
||||||
msgid "Denied access attempt"
|
msgid "Denied access attempt"
|
||||||
msgstr "Intento de acceso denegado"
|
msgstr "Intento de acceso denegado"
|
||||||
|
|
||||||
@@ -985,7 +989,7 @@ msgstr "Editar torneo"
|
|||||||
msgid "Edit Your Prediction"
|
msgid "Edit Your Prediction"
|
||||||
msgstr "Editar tu predicción"
|
msgstr "Editar tu predicción"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:65
|
#: src/features/settings/components/notifications-section.tsx:100
|
||||||
msgid "Enable notifications on this device"
|
msgid "Enable notifications on this device"
|
||||||
msgstr "Activa las notificaciones en este dispositivo"
|
msgstr "Activa las notificaciones en este dispositivo"
|
||||||
|
|
||||||
@@ -1097,6 +1101,10 @@ msgstr "Grupo de errores resuelto"
|
|||||||
msgid "Error Message"
|
msgid "Error Message"
|
||||||
msgstr "Mensaje de error"
|
msgstr "Mensaje de error"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:35
|
||||||
|
msgid "Error spikes and failing functions, pushed to this account"
|
||||||
|
msgstr "Picos de errores y funciones fallando, enviados a esta cuenta"
|
||||||
|
|
||||||
#: src/components/DefaultCatchBoundary.tsx:98
|
#: src/components/DefaultCatchBoundary.tsx:98
|
||||||
msgid "Error: {errorMessage}"
|
msgid "Error: {errorMessage}"
|
||||||
msgstr "Error: {errorMessage}"
|
msgstr "Error: {errorMessage}"
|
||||||
@@ -1679,7 +1687,7 @@ msgstr "Nunca"
|
|||||||
msgid "Never active"
|
msgid "Never active"
|
||||||
msgstr "Nunca activo"
|
msgstr "Nunca activo"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:124
|
#: src/lib/telemetry/alerts.server.ts:130
|
||||||
msgid "New client error"
|
msgid "New client error"
|
||||||
msgstr "Nuevo error de cliente"
|
msgstr "Nuevo error de cliente"
|
||||||
|
|
||||||
@@ -1834,24 +1842,24 @@ msgstr "Incorrecto"
|
|||||||
msgid "Not right — enter our score"
|
msgid "Not right — enter our score"
|
||||||
msgstr "Incorrecto — ingresa nuestro marcador"
|
msgstr "Incorrecto — ingresa nuestro marcador"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:18
|
#: src/features/settings/components/notifications-section.tsx:53
|
||||||
#: src/features/settings/components/notifications-section.tsx:59
|
#: src/features/settings/components/notifications-section.tsx:94
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "Notificaciones"
|
msgstr "Notificaciones"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:35
|
#: src/features/settings/components/notifications-section.tsx:70
|
||||||
msgid "Notifications are blocked. Enable them in your browser settings."
|
msgid "Notifications are blocked. Enable them in your browser settings."
|
||||||
msgstr "Las notificaciones están bloqueadas. Actívalas en la configuración de tu navegador."
|
msgstr "Las notificaciones están bloqueadas. Actívalas en la configuración de tu navegador."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:21
|
#: src/features/settings/components/notifications-section.tsx:56
|
||||||
msgid "Notifications aren't available right now."
|
msgid "Notifications aren't available right now."
|
||||||
msgstr "Las notificaciones no están disponibles por ahora."
|
msgstr "Las notificaciones no están disponibles por ahora."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:42
|
#: src/features/settings/components/notifications-section.tsx:77
|
||||||
msgid "Notifications disabled on this device"
|
msgid "Notifications disabled on this device"
|
||||||
msgstr "Notificaciones desactivadas en este dispositivo"
|
msgstr "Notificaciones desactivadas en este dispositivo"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:32
|
#: src/features/settings/components/notifications-section.tsx:67
|
||||||
msgid "Notifications enabled on this device"
|
msgid "Notifications enabled on this device"
|
||||||
msgstr "Notificaciones activadas en este dispositivo"
|
msgstr "Notificaciones activadas en este dispositivo"
|
||||||
|
|
||||||
@@ -2304,7 +2312,7 @@ msgstr "Selecciona tu canción de entrada"
|
|||||||
msgid "Send Code"
|
msgid "Send Code"
|
||||||
msgstr "Enviar código"
|
msgstr "Enviar código"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:75
|
#: src/features/settings/components/notifications-section.tsx:111
|
||||||
msgid "Send test notification"
|
msgid "Send test notification"
|
||||||
msgstr "Enviar notificación de prueba"
|
msgstr "Enviar notificación de prueba"
|
||||||
|
|
||||||
@@ -2313,7 +2321,7 @@ msgstr "Enviar notificación de prueba"
|
|||||||
msgid "Series is tied"
|
msgid "Series is tied"
|
||||||
msgstr "La serie está empatada"
|
msgstr "La serie está empatada"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:153
|
#: src/lib/telemetry/alerts.server.ts:159
|
||||||
msgid "Server function failing"
|
msgid "Server function failing"
|
||||||
msgstr "Función del servidor fallando"
|
msgstr "Función del servidor fallando"
|
||||||
|
|
||||||
@@ -2579,6 +2587,10 @@ msgstr "¡Equipos creados exitosamente!"
|
|||||||
msgid "Telemetry"
|
msgid "Telemetry"
|
||||||
msgstr "Telemetría"
|
msgstr "Telemetría"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:34
|
||||||
|
msgid "Telemetry alerts"
|
||||||
|
msgstr "Alertas de telemetría"
|
||||||
|
|
||||||
#: src/themes/terminal/manifest.ts:6
|
#: src/themes/terminal/manifest.ts:6
|
||||||
msgid "Terminal"
|
msgid "Terminal"
|
||||||
msgstr "Terminal"
|
msgstr "Terminal"
|
||||||
@@ -2587,7 +2599,7 @@ msgstr "Terminal"
|
|||||||
msgid "Test notification — push is working on this device."
|
msgid "Test notification — push is working on this device."
|
||||||
msgstr "Notificación de prueba: las notificaciones push funcionan en este dispositivo."
|
msgstr "Notificación de prueba: las notificaciones push funcionan en este dispositivo."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:49
|
#: src/features/settings/components/notifications-section.tsx:84
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "Notificación de prueba enviada"
|
msgstr "Notificación de prueba enviada"
|
||||||
|
|
||||||
@@ -2620,7 +2632,7 @@ msgstr "Estos jugadores aún no se han enfrentado."
|
|||||||
msgid "These teams have not faced each other yet."
|
msgid "These teams have not faced each other yet."
|
||||||
msgstr "Estos equipos aún no se han enfrentado."
|
msgstr "Estos equipos aún no se han enfrentado."
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:22
|
#: src/features/settings/components/notifications-section.tsx:57
|
||||||
msgid "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
msgid "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
||||||
msgstr "Este dispositivo no admite notificaciones push. En iOS, primero instala la app en tu pantalla de inicio."
|
msgstr "Este dispositivo no admite notificaciones push. En iOS, primero instala la app en tu pantalla de inicio."
|
||||||
|
|
||||||
|
|||||||
+33
-21
@@ -105,7 +105,7 @@ msgid "{0} Badge Holders"
|
|||||||
msgstr "{0}バッジ保有者"
|
msgstr "{0}バッジ保有者"
|
||||||
|
|
||||||
#. placeholder {0}: recentErrors.totalItems
|
#. placeholder {0}: recentErrors.totalItems
|
||||||
#: src/lib/telemetry/alerts.server.ts:104
|
#: src/lib/telemetry/alerts.server.ts:110
|
||||||
msgid "{0} client errors in the last 15 minutes"
|
msgid "{0} client errors in the last 15 minutes"
|
||||||
msgstr "過去15分間に{0}件のクライアントエラーが発生しました"
|
msgstr "過去15分間に{0}件のクライアントエラーが発生しました"
|
||||||
|
|
||||||
@@ -167,7 +167,7 @@ msgstr "{count, plural, one {プレイヤー(#)} other {プレイヤー(#
|
|||||||
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
|
||||||
msgstr "{count, plural, one {チーム(#)} other {チーム(#)}}"
|
msgstr "{count, plural, one {チーム(#)} other {チーム(#)}}"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:167
|
#: src/lib/telemetry/alerts.server.ts:173
|
||||||
msgid "{deniedCount} denied admin access attempts in the last 15 minutes"
|
msgid "{deniedCount} denied admin access attempts in the last 15 minutes"
|
||||||
msgstr "過去15分間に{deniedCount}件の管理者アクセス拒否がありました"
|
msgstr "過去15分間に{deniedCount}件の管理者アクセス拒否がありました"
|
||||||
|
|
||||||
@@ -206,7 +206,7 @@ msgstr "{n, plural, one {#試合保証} other {#試合保証}}"
|
|||||||
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
|
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
|
||||||
msgstr "{n, plural, one {#ワイルドカード} other {#ワイルドカード}}"
|
msgstr "{n, plural, one {#ワイルドカード} other {#ワイルドカード}}"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:154
|
#: src/lib/telemetry/alerts.server.ts:160
|
||||||
msgid "{name} failed {count} times in the last 15 minutes"
|
msgid "{name} failed {count} times in the last 15 minutes"
|
||||||
msgstr "{name}が過去15分間に{count}回失敗しました"
|
msgstr "{name}が過去15分間に{count}回失敗しました"
|
||||||
|
|
||||||
@@ -392,7 +392,7 @@ msgid "A code was sent to +1 ({0}) {1}-{2}"
|
|||||||
msgstr "認証コードを +1 ({0}) {1}-{2} に送信しました"
|
msgstr "認証コードを +1 ({0}) {1}-{2} に送信しました"
|
||||||
|
|
||||||
#. placeholder {0}: info.message.slice(0, 120)
|
#. placeholder {0}: info.message.slice(0, 120)
|
||||||
#: src/lib/telemetry/alerts.server.ts:125
|
#: src/lib/telemetry/alerts.server.ts:131
|
||||||
msgid "A new error appeared: {0}"
|
msgid "A new error appeared: {0}"
|
||||||
msgstr "新しいエラーが発生しました: {0}"
|
msgstr "新しいエラーが発生しました: {0}"
|
||||||
|
|
||||||
@@ -718,7 +718,7 @@ msgstr "クレイ"
|
|||||||
msgid "Clear selected player"
|
msgid "Clear selected player"
|
||||||
msgstr "選択したプレイヤーを解除"
|
msgstr "選択したプレイヤーを解除"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:103
|
#: src/lib/telemetry/alerts.server.ts:109
|
||||||
msgid "Client error spike"
|
msgid "Client error spike"
|
||||||
msgstr "クライアントエラー急増"
|
msgstr "クライアントエラー急増"
|
||||||
|
|
||||||
@@ -813,18 +813,22 @@ msgstr "電話番号をコピー"
|
|||||||
msgid "Correct picks are worth more each round"
|
msgid "Correct picks are worth more each round"
|
||||||
msgstr "予想が当たると、ラウンドが進むほど得点がアップします"
|
msgstr "予想が当たると、ラウンドが進むほど得点がアップします"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:43
|
#: src/features/settings/components/notifications-section.tsx:78
|
||||||
msgid "Couldn't disable notifications"
|
msgid "Couldn't disable notifications"
|
||||||
msgstr "通知を無効にできませんでした"
|
msgstr "通知を無効にできませんでした"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:38
|
#: src/features/settings/components/notifications-section.tsx:73
|
||||||
msgid "Couldn't enable notifications"
|
msgid "Couldn't enable notifications"
|
||||||
msgstr "通知を有効にできませんでした"
|
msgstr "通知を有効にできませんでした"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:50
|
#: src/features/settings/components/notifications-section.tsx:85
|
||||||
msgid "Couldn't send test notification"
|
msgid "Couldn't send test notification"
|
||||||
msgstr "テスト通知を送信できませんでした"
|
msgstr "テスト通知を送信できませんでした"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:23
|
||||||
|
msgid "Couldn't update telemetry alerts"
|
||||||
|
msgstr "テレメトリーアラートを更新できませんでした"
|
||||||
|
|
||||||
#: src/features/reactions/components/emoji-picker.tsx:17
|
#: src/features/reactions/components/emoji-picker.tsx:17
|
||||||
msgid "crane"
|
msgid "crane"
|
||||||
msgstr "鶴"
|
msgstr "鶴"
|
||||||
@@ -904,7 +908,7 @@ msgstr "深海"
|
|||||||
msgid "Default"
|
msgid "Default"
|
||||||
msgstr "デフォルト"
|
msgstr "デフォルト"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:166
|
#: src/lib/telemetry/alerts.server.ts:172
|
||||||
msgid "Denied access attempt"
|
msgid "Denied access attempt"
|
||||||
msgstr "アクセス拒否の試行"
|
msgstr "アクセス拒否の試行"
|
||||||
|
|
||||||
@@ -985,7 +989,7 @@ msgstr "トーナメントを編集"
|
|||||||
msgid "Edit Your Prediction"
|
msgid "Edit Your Prediction"
|
||||||
msgstr "予想を編集"
|
msgstr "予想を編集"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:65
|
#: src/features/settings/components/notifications-section.tsx:100
|
||||||
msgid "Enable notifications on this device"
|
msgid "Enable notifications on this device"
|
||||||
msgstr "このデバイスで通知を有効にする"
|
msgstr "このデバイスで通知を有効にする"
|
||||||
|
|
||||||
@@ -1097,6 +1101,10 @@ msgstr "エラーグループを解決済みにしました"
|
|||||||
msgid "Error Message"
|
msgid "Error Message"
|
||||||
msgstr "エラーメッセージ"
|
msgstr "エラーメッセージ"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:35
|
||||||
|
msgid "Error spikes and failing functions, pushed to this account"
|
||||||
|
msgstr "エラーの急増や失敗している関数をこのアカウントに通知します"
|
||||||
|
|
||||||
#: src/components/DefaultCatchBoundary.tsx:98
|
#: src/components/DefaultCatchBoundary.tsx:98
|
||||||
msgid "Error: {errorMessage}"
|
msgid "Error: {errorMessage}"
|
||||||
msgstr "エラー: {errorMessage}"
|
msgstr "エラー: {errorMessage}"
|
||||||
@@ -1679,7 +1687,7 @@ msgstr "なし"
|
|||||||
msgid "Never active"
|
msgid "Never active"
|
||||||
msgstr "アクティビティなし"
|
msgstr "アクティビティなし"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:124
|
#: src/lib/telemetry/alerts.server.ts:130
|
||||||
msgid "New client error"
|
msgid "New client error"
|
||||||
msgstr "新しいクライアントエラー"
|
msgstr "新しいクライアントエラー"
|
||||||
|
|
||||||
@@ -1834,24 +1842,24 @@ msgstr "違う"
|
|||||||
msgid "Not right — enter our score"
|
msgid "Not right — enter our score"
|
||||||
msgstr "違う — スコアを入力"
|
msgstr "違う — スコアを入力"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:18
|
#: src/features/settings/components/notifications-section.tsx:53
|
||||||
#: src/features/settings/components/notifications-section.tsx:59
|
#: src/features/settings/components/notifications-section.tsx:94
|
||||||
msgid "Notifications"
|
msgid "Notifications"
|
||||||
msgstr "通知"
|
msgstr "通知"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:35
|
#: src/features/settings/components/notifications-section.tsx:70
|
||||||
msgid "Notifications are blocked. Enable them in your browser settings."
|
msgid "Notifications are blocked. Enable them in your browser settings."
|
||||||
msgstr "通知がブロックされています。ブラウザの設定で有効にしてください。"
|
msgstr "通知がブロックされています。ブラウザの設定で有効にしてください。"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:21
|
#: src/features/settings/components/notifications-section.tsx:56
|
||||||
msgid "Notifications aren't available right now."
|
msgid "Notifications aren't available right now."
|
||||||
msgstr "現在、通知は利用できません。"
|
msgstr "現在、通知は利用できません。"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:42
|
#: src/features/settings/components/notifications-section.tsx:77
|
||||||
msgid "Notifications disabled on this device"
|
msgid "Notifications disabled on this device"
|
||||||
msgstr "このデバイスでは通知が無効になっています"
|
msgstr "このデバイスでは通知が無効になっています"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:32
|
#: src/features/settings/components/notifications-section.tsx:67
|
||||||
msgid "Notifications enabled on this device"
|
msgid "Notifications enabled on this device"
|
||||||
msgstr "このデバイスでは通知が有効になっています"
|
msgstr "このデバイスでは通知が有効になっています"
|
||||||
|
|
||||||
@@ -2304,7 +2312,7 @@ msgstr "ウォークアウトソングを選択してください"
|
|||||||
msgid "Send Code"
|
msgid "Send Code"
|
||||||
msgstr "コードを送信"
|
msgstr "コードを送信"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:75
|
#: src/features/settings/components/notifications-section.tsx:111
|
||||||
msgid "Send test notification"
|
msgid "Send test notification"
|
||||||
msgstr "テスト通知を送信"
|
msgstr "テスト通知を送信"
|
||||||
|
|
||||||
@@ -2313,7 +2321,7 @@ msgstr "テスト通知を送信"
|
|||||||
msgid "Series is tied"
|
msgid "Series is tied"
|
||||||
msgstr "シリーズはタイです"
|
msgstr "シリーズはタイです"
|
||||||
|
|
||||||
#: src/lib/telemetry/alerts.server.ts:153
|
#: src/lib/telemetry/alerts.server.ts:159
|
||||||
msgid "Server function failing"
|
msgid "Server function failing"
|
||||||
msgstr "サーバー関数が失敗しています"
|
msgstr "サーバー関数が失敗しています"
|
||||||
|
|
||||||
@@ -2579,6 +2587,10 @@ msgstr "チームを作成しました!"
|
|||||||
msgid "Telemetry"
|
msgid "Telemetry"
|
||||||
msgstr "テレメトリー"
|
msgstr "テレメトリー"
|
||||||
|
|
||||||
|
#: src/features/settings/components/notifications-section.tsx:34
|
||||||
|
msgid "Telemetry alerts"
|
||||||
|
msgstr "テレメトリーアラート"
|
||||||
|
|
||||||
#: src/themes/terminal/manifest.ts:6
|
#: src/themes/terminal/manifest.ts:6
|
||||||
msgid "Terminal"
|
msgid "Terminal"
|
||||||
msgstr "ターミナル"
|
msgstr "ターミナル"
|
||||||
@@ -2587,7 +2599,7 @@ msgstr "ターミナル"
|
|||||||
msgid "Test notification — push is working on this device."
|
msgid "Test notification — push is working on this device."
|
||||||
msgstr "テスト通知 — このデバイスでプッシュ通知が機能しています。"
|
msgstr "テスト通知 — このデバイスでプッシュ通知が機能しています。"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:49
|
#: src/features/settings/components/notifications-section.tsx:84
|
||||||
msgid "Test notification sent"
|
msgid "Test notification sent"
|
||||||
msgstr "テスト通知を送信しました"
|
msgstr "テスト通知を送信しました"
|
||||||
|
|
||||||
@@ -2620,7 +2632,7 @@ msgstr "このプレイヤー同士はまだ対戦していません。"
|
|||||||
msgid "These teams have not faced each other yet."
|
msgid "These teams have not faced each other yet."
|
||||||
msgstr "このチーム同士はまだ対戦していません。"
|
msgstr "このチーム同士はまだ対戦していません。"
|
||||||
|
|
||||||
#: src/features/settings/components/notifications-section.tsx:22
|
#: src/features/settings/components/notifications-section.tsx:57
|
||||||
msgid "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
msgid "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
|
||||||
msgstr "このデバイスはプッシュ通知に対応していません。iOSの場合は、まずアプリをホーム画面に追加してください。"
|
msgstr "このデバイスはプッシュ通知に対応していません。iOSの場合は、まずアプリをホーム画面に追加してください。"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user