Some checks failed
CI / Lint, typecheck, test (push) Successful in 3m41s
CD / Build and push images (push) Successful in 3m44s
CI / Build container images (push) Has been skipped
CD / Deploy to Test (push) Successful in 9s
CD / Smoke tests against Test (push) Successful in 1m18s
CD / Promote to Int (push) Successful in 11s
CI / Auth e2e pack (push) Failing after 2m53s
CI / Import/export fidelity gate (push) Has been skipped
New per-user digestFrequency (hourly default | daily | off) on the profile and in the settings UI. A scheduler job (15 min cadence) mails a user once their oldest unread, unmailed notification exceeds the cadence window: one localized mail per batch, grouped per pond then per page with actor names and change/comment counts, enqueued through the mail outbox. Sending marks the batch mailed — never read — and re-checks page read permission per entry at send time; entries the user can no longer read are dropped from the mail but still marked handled, so revoked content cannot queue forever. Every mail carries a signed, single-purpose unsubscribe link: it only flips the setting to off, renders a session-free confirmation page, and sets no cookie. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EwZ4jR4KFAPvpjWevfUGX1
47 lines
2.3 KiB
JSON
47 lines
2.3 KiB
JSON
{
|
|
"common": {
|
|
"greeting": "Hallo {{displayName}},",
|
|
"signoff": "Dein Dorfteich",
|
|
"ignoreHint": "Falls du diese E-Mail nicht angefordert hast, kannst du sie einfach ignorieren."
|
|
},
|
|
"verifyEmail": {
|
|
"subject": "Bestätige deine E-Mail-Adresse",
|
|
"body": "willkommen im Dorfteich! Bitte bestätige deine E-Mail-Adresse, um dein Konto zu aktivieren:",
|
|
"action": "E-Mail-Adresse bestätigen",
|
|
"expiry": "Der Link ist 24 Stunden gültig."
|
|
},
|
|
"resetPassword": {
|
|
"subject": "Passwort zurücksetzen",
|
|
"body": "jemand (hoffentlich du) hat das Zurücksetzen des Passworts für dein Konto angefordert. Über diesen Link kannst du ein neues Passwort setzen:",
|
|
"action": "Neues Passwort setzen",
|
|
"expiry": "Der Link ist eine Stunde gültig. Dein aktuelles Passwort bleibt gültig, bis du ein neues gesetzt hast."
|
|
},
|
|
"smtpTest": {
|
|
"subject": "SMTP-Testnachricht",
|
|
"body": "diese Testnachricht bestätigt, dass dein Dorfteich E-Mails über den konfigurierten SMTP-Server versenden kann. Deine Instanz erreichst du hier:",
|
|
"action": "Dorfteich öffnen",
|
|
"expiry": "Du kannst diese E-Mail einfach löschen."
|
|
},
|
|
"backupFailed": {
|
|
"subject": "[{{instance}}] Backup fehlgeschlagen ({{backupId}})",
|
|
"intro": "Der nächtliche Backup-Lauf auf {{instance}} ist fehlgeschlagen.",
|
|
"backupId": "Backup-ID: {{backupId}}",
|
|
"error": "Fehler: {{error}}",
|
|
"lastSuccess": "Letztes erfolgreiches Backup: {{finishedAt}}",
|
|
"lastSuccessNever": "Letztes erfolgreiches Backup: noch keines",
|
|
"hint": "Prüfe die Sidecar-Logs (docker compose logs backup) und die status.json auf dem Backups-Volume."
|
|
},
|
|
"digest": {
|
|
"subject": "Dorfteich: {{count}} Neuigkeiten für dich",
|
|
"intro": "Das ist auf von dir beobachteten Seiten passiert ({{count}} Neuigkeiten):",
|
|
"changes_one": "{{count}} Änderung",
|
|
"changes_other": "{{count}} Änderungen",
|
|
"comments_one": "{{count}} Kommentar",
|
|
"comments_other": "{{count}} Kommentare",
|
|
"openApp": "Dorfteich öffnen: {{link}}",
|
|
"unsubscribe": "Diese Digest-Mails abbestellen: {{link}}",
|
|
"unsubscribedTitle": "Digest-Mails deaktiviert",
|
|
"unsubscribedBody": "Du erhältst keine Benachrichtigungs-Digests mehr. In den Konto-Einstellungen kannst du sie nach der Anmeldung jederzeit wieder aktivieren."
|
|
}
|
|
}
|