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"
},

View File

@@ -66,6 +66,12 @@
"viewAll": "View all",
"dismiss": "Dismiss"
},
"installBanner": {
"title": "Install Fotospiel Admin",
"body": "Add the app to your home screen for faster access and offline support.",
"action": "Install",
"iosHint": "On iOS: Share → Add to Home Screen."
},
"errors": {
"generic": "Something went wrong. Please try again.",
"eventLimit": "Your current package has no remaining event slots.",

View File

@@ -1924,6 +1924,27 @@
"emptySupportBody": "We are here if you need a hand getting started.",
"emptySupportDocs": "Docs: Getting started",
"emptySupportEmail": "Email support",
"setupTitle": "Set up this device",
"setupSubtitle": "Finish these steps for the best mobile experience.",
"setup": {
"installTitle": "Install app",
"installDescription": "Get full-screen access and faster launch.",
"installIosHint": "On iOS: Share → Add to Home Screen.",
"installReady": "Ready",
"installManual": "Manual",
"installAction": "Install now",
"pushTitle": "Enable push notifications",
"pushDescription": "Stay on top of uploads and quota alerts.",
"pushBlockedDesc": "Notifications are blocked in the browser settings.",
"pushBlocked": "Blocked",
"pushOff": "Off",
"pushAction": "Enable push",
"pushSettings": "Open settings",
"storageTitle": "Protect offline data",
"storageDescription": "Keep cached uploads available when you go offline.",
"storageUnprotected": "Not protected",
"storageAction": "Protect now"
},
"pickEvent": "Select an event",
"status": {
"published": "Live",
@@ -1950,6 +1971,26 @@
"alertPending": "{{count}} new uploads awaiting moderation",
"alertTasks": "{{count}} tasks due or open"
},
"mobileTour": {
"title": "Quick tour",
"progress": "Step {{current}} of {{total}}",
"skip": "Skip",
"back": "Back",
"next": "Next",
"done": "Done",
"eventTitle": "Create your first event",
"eventBody": "Add the date, location, and package to unlock sharing.",
"eventAction": "Create event",
"qrTitle": "Share your QR code",
"qrBody": "Guests join instantly by scanning or using the invite link.",
"qrAction": "Open QR",
"photosTitle": "Moderate uploads",
"photosBody": "Approve, feature, or hide photos with quick swipes.",
"photosAction": "Review photos",
"pushTitle": "Stay in the loop",
"pushBody": "Enable push alerts to catch limits and new uploads fast.",
"pushAction": "Notification settings"
},
"mobileUploads": {
"title": "Uploads",
"emptyTitle": "Create an event first",
@@ -1960,6 +2001,9 @@
"mobilePhotos": {
"title": "Photo moderation",
"empty": "No photos found.",
"emptyTitle": "No uploads yet",
"emptyBody": "Share the QR code so guests can start uploading photos.",
"emptyAction": "Share QR code",
"count": "{{count}} photos",
"filtersTitle": "Filter",
"applyFilters": "Apply filters",
@@ -2249,6 +2293,9 @@
"mobileNotifications": {
"title": "Notifications",
"empty": "No notifications yet.",
"emptyTitle": "All caught up",
"emptyBody": "Enable push to receive alerts about uploads, guests, and expiring galleries.",
"emptyAction": "Check notification settings",
"filterByEvent": "Filter by event",
"unknownEvent": "Event"
},