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