Added onboarding + a lightweight install banner to both the mobile login screen and the settings screen, with Android/Chromium

install prompt support and iOS “Share → Add to Home Screen” guidance. Also added a small helper + tests to decide
  when/which banner variant should show, and shared copy in common.json.
This commit is contained in:
Codex Agent
2025-12-28 18:26:17 +01:00
parent b780d82d62
commit d5f038d098
17 changed files with 831 additions and 8 deletions

View File

@@ -66,6 +66,12 @@
"viewAll": "Alle anzeigen",
"dismiss": "Hinweis ausblenden"
},
"installBanner": {
"title": "Fotospiel Admin installieren",
"body": "Lege die App auf den Homescreen für schnellen Zugriff und Offline-Support.",
"action": "Installieren",
"iosHint": "iOS: Teilen → Zum Home-Bildschirm."
},
"errors": {
"generic": "Etwas ist schiefgelaufen. Bitte versuche es erneut.",
"eventLimit": "Dein aktuelles Paket enthält keine freien Event-Slots mehr.",

View File

@@ -1904,6 +1904,27 @@
"emptySupportBody": "Wir unterstützen dich gern beim Start.",
"emptySupportDocs": "Docs: Erste Schritte",
"emptySupportEmail": "E-Mail an Support",
"setupTitle": "Dieses Gerät einrichten",
"setupSubtitle": "Schließe diese Schritte für die beste Mobile-Experience ab.",
"setup": {
"installTitle": "App installieren",
"installDescription": "Vollbildmodus und schnellerer Start.",
"installIosHint": "iOS: Teilen → Zum Home-Bildschirm.",
"installReady": "Bereit",
"installManual": "Manuell",
"installAction": "Jetzt installieren",
"pushTitle": "Push-Benachrichtigungen aktivieren",
"pushDescription": "Bleib bei Uploads und Limits immer informiert.",
"pushBlockedDesc": "Benachrichtigungen sind in den Browser-Einstellungen blockiert.",
"pushBlocked": "Blockiert",
"pushOff": "Aus",
"pushAction": "Push aktivieren",
"pushSettings": "Einstellungen öffnen",
"storageTitle": "Offline-Daten schützen",
"storageDescription": "Zwischengespeicherte Uploads bleiben offline verfügbar.",
"storageUnprotected": "Nicht geschützt",
"storageAction": "Jetzt schützen"
},
"pickEvent": "Event auswählen",
"status": {
"published": "Live",
@@ -1930,6 +1951,26 @@
"alertPending": "{{count}} neue Uploads warten auf Freigabe",
"alertTasks": "{{count}} Tasks offen oder fällig"
},
"mobileTour": {
"title": "Quick Tour",
"progress": "Schritt {{current}} von {{total}}",
"skip": "Überspringen",
"back": "Zurück",
"next": "Weiter",
"done": "Fertig",
"eventTitle": "Erstes Event anlegen",
"eventBody": "Datum, Location und Paket hinzufügen, um das Teilen zu aktivieren.",
"eventAction": "Event erstellen",
"qrTitle": "QR-Code teilen",
"qrBody": "Gäste treten sofort per QR oder Link bei.",
"qrAction": "QR öffnen",
"photosTitle": "Uploads moderieren",
"photosBody": "Fotos freigeben, hervorheben oder ausblenden.",
"photosAction": "Fotos prüfen",
"pushTitle": "Immer informiert bleiben",
"pushBody": "Aktiviere Push, um Limits und neue Uploads schnell zu sehen.",
"pushAction": "Benachrichtigungen"
},
"mobileUploads": {
"title": "Uploads",
"emptyTitle": "Lege zuerst ein Event an",
@@ -1940,6 +1981,9 @@
"mobilePhotos": {
"title": "Foto-Moderation",
"empty": "Keine Fotos gefunden.",
"emptyTitle": "Noch keine Uploads",
"emptyBody": "Teile den QR-Code, damit Gäste Fotos hochladen können.",
"emptyAction": "QR-Code teilen",
"count": "{{count}} Fotos",
"filtersTitle": "Filter",
"applyFilters": "Filter anwenden",
@@ -2229,6 +2273,9 @@
"mobileNotifications": {
"title": "Benachrichtigungen",
"empty": "Keine Benachrichtigungen vorhanden.",
"emptyTitle": "Alles erledigt",
"emptyBody": "Aktiviere Push, um Warnungen zu Uploads, Gästen und ablaufenden Galerien zu erhalten.",
"emptyAction": "Benachrichtigungen prüfen",
"filterByEvent": "Nach Event filtern",
"unknownEvent": "Event"
},