Development #24

Merged
kyle merged 35 commits from development into main 2026-08-28 10:40:10 -05:00
8 changed files with 200 additions and 85 deletions
Showing only changes of commit 3d8ee52a15 - Show all commits
+1
View File
@@ -18,6 +18,7 @@ interface AuthData {
theme?: string;
locale?: string;
seenThemesHint?: boolean;
telemetryAlerts?: boolean;
};
roles: string[];
phone: string;
@@ -1,11 +1,46 @@
import { useState } from "react";
import { Box, Title, Stack, Switch, Button, Text, Group } from "@mantine/core";
import { Trans, useLingui } from "@lingui/react/macro";
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";
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() {
const { supported, configured, permission, subscribed, busy, enable, disable, sendTest } =
useWebPush();
const isAdmin = useIsAdmin();
const { t } = useLingui();
if (!supported || !configured) {
@@ -64,6 +99,7 @@ export function NotificationsSection() {
disabled={busy}
label={t`Enable notifications on this device`}
/>
{subscribed && isAdmin && <TelemetryAlertsSwitch />}
{subscribed && (
<Group>
<Button
+27 -1
View File
@@ -1,5 +1,8 @@
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
// 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,
},
};
});
+4
View File
@@ -34,11 +34,15 @@ const getAdminPlayerIds = async (): Promise<string[]> => {
const { ensureSuperTokensBackend } = await import("@/lib/supertokens/server");
ensureSuperTokensBackend();
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 users = response.status === "OK" ? response.users : [];
const playerIds: string[] = [];
for (const userId of users) {
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);
if (player) playerIds.push(player.id);
} catch {}
+33 -21
View File
@@ -105,7 +105,7 @@ msgid "{0} Badge Holders"
msgstr "{0} Abzeichen-Inhaber"
#. 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"
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 (#)}}"
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"
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}}"
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"
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"
#. 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}"
msgstr "Ein neuer Fehler ist aufgetreten: {0}"
@@ -718,7 +718,7 @@ msgstr "Knete"
msgid "Clear selected player"
msgstr "Ausgewählten Spieler entfernen"
#: src/lib/telemetry/alerts.server.ts:103
#: src/lib/telemetry/alerts.server.ts:109
msgid "Client error spike"
msgstr "Anstieg von Client-Fehlern"
@@ -813,18 +813,22 @@ msgstr "Telefonnummer kopieren"
msgid "Correct picks are worth more each round"
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"
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"
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"
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
msgid "crane"
msgstr "Kranich"
@@ -904,7 +908,7 @@ msgstr "Tiefsee"
msgid "Default"
msgstr "Standard"
#: src/lib/telemetry/alerts.server.ts:166
#: src/lib/telemetry/alerts.server.ts:172
msgid "Denied access attempt"
msgstr "Abgelehnter Zugriffsversuch"
@@ -985,7 +989,7 @@ msgstr "Turnier bearbeiten"
msgid "Edit Your Prediction"
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"
msgstr "Benachrichtigungen auf diesem Gerät aktivieren"
@@ -1097,6 +1101,10 @@ msgstr "Fehlergruppe behoben"
msgid "Error Message"
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
msgid "Error: {errorMessage}"
msgstr "Fehler: {errorMessage}"
@@ -1679,7 +1687,7 @@ msgstr "Nie"
msgid "Never active"
msgstr "Nie aktiv"
#: src/lib/telemetry/alerts.server.ts:124
#: src/lib/telemetry/alerts.server.ts:130
msgid "New client error"
msgstr "Neuer Client-Fehler"
@@ -1834,24 +1842,24 @@ msgstr "Stimmt nicht"
msgid "Not right — enter our score"
msgstr "Stimmt nicht — unser Ergebnis eingeben"
#: src/features/settings/components/notifications-section.tsx:18
#: src/features/settings/components/notifications-section.tsx:59
#: src/features/settings/components/notifications-section.tsx:53
#: src/features/settings/components/notifications-section.tsx:94
msgid "Notifications"
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."
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."
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"
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"
msgstr "Benachrichtigungen auf diesem Gerät aktiviert"
@@ -2304,7 +2312,7 @@ msgstr "Wähle deinen Walkout-Song"
msgid "Send Code"
msgstr "Code senden"
#: src/features/settings/components/notifications-section.tsx:75
#: src/features/settings/components/notifications-section.tsx:111
msgid "Send test notification"
msgstr "Testbenachrichtigung senden"
@@ -2313,7 +2321,7 @@ msgstr "Testbenachrichtigung senden"
msgid "Series is tied"
msgstr "Serie steht unentschieden"
#: src/lib/telemetry/alerts.server.ts:153
#: src/lib/telemetry/alerts.server.ts:159
msgid "Server function failing"
msgstr "Serverfunktion schlägt fehl"
@@ -2579,6 +2587,10 @@ msgstr "Teams erfolgreich erstellt!"
msgid "Telemetry"
msgstr "Telemetrie"
#: src/features/settings/components/notifications-section.tsx:34
msgid "Telemetry alerts"
msgstr "Telemetrie-Benachrichtigungen"
#: src/themes/terminal/manifest.ts:6
msgid "Terminal"
msgstr "Terminal"
@@ -2587,7 +2599,7 @@ msgstr "Terminal"
msgid "Test notification — push is working on this device."
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"
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."
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."
msgstr "Dieses Gerät unterstützt keine Push-Benachrichtigungen. Installiere die App unter iOS zuerst auf deinem Home-Bildschirm."
+33 -21
View File
@@ -105,7 +105,7 @@ msgid "{0} Badge Holders"
msgstr "{0} Badge Holders"
#. 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"
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 (#)}}"
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"
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}}"
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"
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}"
#. 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}"
msgstr "A new error appeared: {0}"
@@ -718,7 +718,7 @@ msgstr "Claymation"
msgid "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"
msgstr "Client error spike"
@@ -813,18 +813,22 @@ msgstr "Copy phone number"
msgid "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"
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"
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"
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
msgid "crane"
msgstr "crane"
@@ -904,7 +908,7 @@ msgstr "Deep Sea"
msgid "Default"
msgstr "Default"
#: src/lib/telemetry/alerts.server.ts:166
#: src/lib/telemetry/alerts.server.ts:172
msgid "Denied access attempt"
msgstr "Denied access attempt"
@@ -985,7 +989,7 @@ msgstr "Edit Tournament"
msgid "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"
msgstr "Enable notifications on this device"
@@ -1097,6 +1101,10 @@ msgstr "Error group resolved"
msgid "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
msgid "Error: {errorMessage}"
msgstr "Error: {errorMessage}"
@@ -1679,7 +1687,7 @@ msgstr "Never"
msgid "Never active"
msgstr "Never active"
#: src/lib/telemetry/alerts.server.ts:124
#: src/lib/telemetry/alerts.server.ts:130
msgid "New client error"
msgstr "New client error"
@@ -1834,24 +1842,24 @@ msgstr "Not right"
msgid "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:59
#: src/features/settings/components/notifications-section.tsx:53
#: src/features/settings/components/notifications-section.tsx:94
msgid "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."
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."
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"
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"
msgstr "Notifications enabled on this device"
@@ -2304,7 +2312,7 @@ msgstr "Select your walkout song"
msgid "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"
msgstr "Send test notification"
@@ -2313,7 +2321,7 @@ msgstr "Send test notification"
msgid "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"
msgstr "Server function failing"
@@ -2579,6 +2587,10 @@ msgstr "Teams created successfully!"
msgid "Telemetry"
msgstr "Telemetry"
#: src/features/settings/components/notifications-section.tsx:34
msgid "Telemetry alerts"
msgstr "Telemetry alerts"
#: src/themes/terminal/manifest.ts:6
msgid "Terminal"
msgstr "Terminal"
@@ -2587,7 +2599,7 @@ msgstr "Terminal"
msgid "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"
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."
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."
msgstr "This device doesn't support push notifications. On iOS, install the app to your Home Screen first."
+33 -21
View File
@@ -105,7 +105,7 @@ msgid "{0} Badge Holders"
msgstr "Poseedores de la insignia {0}"
#. 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"
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 (#)}}"
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"
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}}"
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"
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}"
#. 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}"
msgstr "Apareció un nuevo error: {0}"
@@ -718,7 +718,7 @@ msgstr "Plastilina"
msgid "Clear selected player"
msgstr "Quitar jugador seleccionado"
#: src/lib/telemetry/alerts.server.ts:103
#: src/lib/telemetry/alerts.server.ts:109
msgid "Client error spike"
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"
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"
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"
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"
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
msgid "crane"
msgstr "grulla"
@@ -904,7 +908,7 @@ msgstr "Mar Profundo"
msgid "Default"
msgstr "Predeterminado"
#: src/lib/telemetry/alerts.server.ts:166
#: src/lib/telemetry/alerts.server.ts:172
msgid "Denied access attempt"
msgstr "Intento de acceso denegado"
@@ -985,7 +989,7 @@ msgstr "Editar torneo"
msgid "Edit Your Prediction"
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"
msgstr "Activa las notificaciones en este dispositivo"
@@ -1097,6 +1101,10 @@ msgstr "Grupo de errores resuelto"
msgid "Error Message"
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
msgid "Error: {errorMessage}"
msgstr "Error: {errorMessage}"
@@ -1679,7 +1687,7 @@ msgstr "Nunca"
msgid "Never active"
msgstr "Nunca activo"
#: src/lib/telemetry/alerts.server.ts:124
#: src/lib/telemetry/alerts.server.ts:130
msgid "New client error"
msgstr "Nuevo error de cliente"
@@ -1834,24 +1842,24 @@ msgstr "Incorrecto"
msgid "Not right — enter our score"
msgstr "Incorrecto — ingresa nuestro marcador"
#: src/features/settings/components/notifications-section.tsx:18
#: src/features/settings/components/notifications-section.tsx:59
#: src/features/settings/components/notifications-section.tsx:53
#: src/features/settings/components/notifications-section.tsx:94
msgid "Notifications"
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."
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."
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"
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"
msgstr "Notificaciones activadas en este dispositivo"
@@ -2304,7 +2312,7 @@ msgstr "Selecciona tu canción de entrada"
msgid "Send Code"
msgstr "Enviar código"
#: src/features/settings/components/notifications-section.tsx:75
#: src/features/settings/components/notifications-section.tsx:111
msgid "Send test notification"
msgstr "Enviar notificación de prueba"
@@ -2313,7 +2321,7 @@ msgstr "Enviar notificación de prueba"
msgid "Series is tied"
msgstr "La serie está empatada"
#: src/lib/telemetry/alerts.server.ts:153
#: src/lib/telemetry/alerts.server.ts:159
msgid "Server function failing"
msgstr "Función del servidor fallando"
@@ -2579,6 +2587,10 @@ msgstr "¡Equipos creados exitosamente!"
msgid "Telemetry"
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
msgid "Terminal"
msgstr "Terminal"
@@ -2587,7 +2599,7 @@ msgstr "Terminal"
msgid "Test notification — push is working on this device."
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"
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."
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."
msgstr "Este dispositivo no admite notificaciones push. En iOS, primero instala la app en tu pantalla de inicio."
+33 -21
View File
@@ -105,7 +105,7 @@ msgid "{0} Badge Holders"
msgstr "{0}バッジ保有者"
#. 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"
msgstr "過去15分間に{0}件のクライアントエラーが発生しました"
@@ -167,7 +167,7 @@ msgstr "{count, plural, one {プレイヤー(#)} other {プレイヤー(#
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
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"
msgstr "過去15分間に{deniedCount}件の管理者アクセス拒否がありました"
@@ -206,7 +206,7 @@ msgstr "{n, plural, one {#試合保証} other {#試合保証}}"
msgid "{n, plural, one {# wildcard} other {# wildcards}}"
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"
msgstr "{name}が過去15分間に{count}回失敗しました"
@@ -392,7 +392,7 @@ msgid "A code was sent to +1 ({0}) {1}-{2}"
msgstr "認証コードを +1 ({0}) {1}-{2} に送信しました"
#. placeholder {0}: info.message.slice(0, 120)
#: src/lib/telemetry/alerts.server.ts:125
#: src/lib/telemetry/alerts.server.ts:131
msgid "A new error appeared: {0}"
msgstr "新しいエラーが発生しました: {0}"
@@ -718,7 +718,7 @@ msgstr "クレイ"
msgid "Clear selected player"
msgstr "選択したプレイヤーを解除"
#: src/lib/telemetry/alerts.server.ts:103
#: src/lib/telemetry/alerts.server.ts:109
msgid "Client error spike"
msgstr "クライアントエラー急増"
@@ -813,18 +813,22 @@ msgstr "電話番号をコピー"
msgid "Correct picks are worth more each round"
msgstr "予想が当たると、ラウンドが進むほど得点がアップします"
#: src/features/settings/components/notifications-section.tsx:43
#: src/features/settings/components/notifications-section.tsx:78
msgid "Couldn't disable notifications"
msgstr "通知を無効にできませんでした"
#: src/features/settings/components/notifications-section.tsx:38
#: src/features/settings/components/notifications-section.tsx:73
msgid "Couldn't enable notifications"
msgstr "通知を有効にできませんでした"
#: src/features/settings/components/notifications-section.tsx:50
#: src/features/settings/components/notifications-section.tsx:85
msgid "Couldn't send test notification"
msgstr "テスト通知を送信できませんでした"
#: src/features/settings/components/notifications-section.tsx:23
msgid "Couldn't update telemetry alerts"
msgstr "テレメトリーアラートを更新できませんでした"
#: src/features/reactions/components/emoji-picker.tsx:17
msgid "crane"
msgstr "鶴"
@@ -904,7 +908,7 @@ msgstr "深海"
msgid "Default"
msgstr "デフォルト"
#: src/lib/telemetry/alerts.server.ts:166
#: src/lib/telemetry/alerts.server.ts:172
msgid "Denied access attempt"
msgstr "アクセス拒否の試行"
@@ -985,7 +989,7 @@ msgstr "トーナメントを編集"
msgid "Edit Your Prediction"
msgstr "予想を編集"
#: src/features/settings/components/notifications-section.tsx:65
#: src/features/settings/components/notifications-section.tsx:100
msgid "Enable notifications on this device"
msgstr "このデバイスで通知を有効にする"
@@ -1097,6 +1101,10 @@ msgstr "エラーグループを解決済みにしました"
msgid "Error Message"
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
msgid "Error: {errorMessage}"
msgstr "エラー: {errorMessage}"
@@ -1679,7 +1687,7 @@ msgstr "なし"
msgid "Never active"
msgstr "アクティビティなし"
#: src/lib/telemetry/alerts.server.ts:124
#: src/lib/telemetry/alerts.server.ts:130
msgid "New client error"
msgstr "新しいクライアントエラー"
@@ -1834,24 +1842,24 @@ msgstr "違う"
msgid "Not right — enter our score"
msgstr "違う — スコアを入力"
#: src/features/settings/components/notifications-section.tsx:18
#: src/features/settings/components/notifications-section.tsx:59
#: src/features/settings/components/notifications-section.tsx:53
#: src/features/settings/components/notifications-section.tsx:94
msgid "Notifications"
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."
msgstr "通知がブロックされています。ブラウザの設定で有効にしてください。"
#: src/features/settings/components/notifications-section.tsx:21
#: src/features/settings/components/notifications-section.tsx:56
msgid "Notifications aren't available right now."
msgstr "現在、通知は利用できません。"
#: src/features/settings/components/notifications-section.tsx:42
#: src/features/settings/components/notifications-section.tsx:77
msgid "Notifications disabled on this device"
msgstr "このデバイスでは通知が無効になっています"
#: src/features/settings/components/notifications-section.tsx:32
#: src/features/settings/components/notifications-section.tsx:67
msgid "Notifications enabled on this device"
msgstr "このデバイスでは通知が有効になっています"
@@ -2304,7 +2312,7 @@ msgstr "ウォークアウトソングを選択してください"
msgid "Send Code"
msgstr "コードを送信"
#: src/features/settings/components/notifications-section.tsx:75
#: src/features/settings/components/notifications-section.tsx:111
msgid "Send test notification"
msgstr "テスト通知を送信"
@@ -2313,7 +2321,7 @@ msgstr "テスト通知を送信"
msgid "Series is tied"
msgstr "シリーズはタイです"
#: src/lib/telemetry/alerts.server.ts:153
#: src/lib/telemetry/alerts.server.ts:159
msgid "Server function failing"
msgstr "サーバー関数が失敗しています"
@@ -2579,6 +2587,10 @@ msgstr "チームを作成しました!"
msgid "Telemetry"
msgstr "テレメトリー"
#: src/features/settings/components/notifications-section.tsx:34
msgid "Telemetry alerts"
msgstr "テレメトリーアラート"
#: src/themes/terminal/manifest.ts:6
msgid "Terminal"
msgstr "ターミナル"
@@ -2587,7 +2599,7 @@ msgstr "ターミナル"
msgid "Test notification — push is working on this device."
msgstr "テスト通知 — このデバイスでプッシュ通知が機能しています。"
#: src/features/settings/components/notifications-section.tsx:49
#: src/features/settings/components/notifications-section.tsx:84
msgid "Test notification sent"
msgstr "テスト通知を送信しました"
@@ -2620,7 +2632,7 @@ msgstr "このプレイヤー同士はまだ対戦していません。"
msgid "These teams have not faced each other yet."
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."
msgstr "このデバイスはプッシュ通知に対応していません。iOSの場合は、まずアプリをホーム画面に追加してください。"