feat: extend event toolkit and polish guest pwa

This commit is contained in:
Codex Agent
2025-10-28 18:28:22 +01:00
parent f29067f570
commit a7bbf230fd
45 changed files with 3809 additions and 351 deletions

View File

@@ -147,7 +147,9 @@
"errors": {
"missingSlug": "Kein Event-Slug angegeben.",
"load": "Event-Tasks konnten nicht geladen werden.",
"assign": "Tasks konnten nicht zugewiesen werden."
"assign": "Tasks konnten nicht zugewiesen werden.",
"photoOnlyEnable": "Foto-Modus konnte nicht aktiviert werden.",
"photoOnlyDisable": "Foto-Modus konnte nicht deaktiviert werden."
},
"alerts": {
"notFoundTitle": "Event nicht gefunden",
@@ -169,6 +171,147 @@
"medium": "Mittel",
"high": "Hoch",
"urgent": "Dringend"
},
"modes": {
"title": "Aufgaben & Foto-Modus",
"photoOnlyHint": "Der Foto-Modus ist aktiv. Gäste können Fotos hochladen, sehen aber keine Aufgaben.",
"tasksHint": "Aufgaben werden in der Gäste-App angezeigt. Deaktiviere sie für einen reinen Foto-Modus.",
"photoOnly": "Foto-Modus",
"tasks": "Aufgaben aktiv",
"switchLabel": "Foto-Modus aktivieren",
"updating": "Einstellung wird gespeichert ..."
},
"toolkit": {
"titleFallback": "Event-Day Toolkit",
"subtitle": "Behalte Uploads, Aufgaben und QR-Einladungen am Eventtag im Blick.",
"errors": {
"missingSlug": "Kein Event-Slug angegeben.",
"loadFailed": "Toolkit konnte nicht geladen werden.",
"feedbackFailed": "Feedback konnte nicht gesendet werden."
},
"actions": {
"backToEvent": "Zurück zum Event",
"moderate": "Fotos moderieren",
"manageTasks": "Tasks öffnen",
"refresh": "Aktualisieren"
},
"alerts": {
"errorTitle": "Fehler",
"attention": "Achtung",
"noTasks": "Noch keine Aufgaben zugewiesen aktiviere ein Paket oder lege Aufgaben fest.",
"noInvites": "Es gibt keine aktiven QR-Einladungen. Erstelle eine Einladung, um Gäste in die App zu holen.",
"pendingPhotos": "Es warten Fotos auf Moderation. Prüfe die Uploads, bevor sie live gehen."
},
"metrics": {
"uploadsTotal": "Uploads gesamt",
"uploads24h": "Uploads (24h)",
"pendingPhotos": "Unmoderierte Fotos",
"activeInvites": "Aktive Einladungen",
"engagementMode": "Modus",
"modePhotoOnly": "Foto-Modus",
"modeTasks": "Aufgaben"
},
"pending": {
"title": "Wartende Fotos",
"subtitle": "Moderationsempfehlung für neue Uploads.",
"cta": "Zur Moderation",
"empty": "Aktuell warten keine Fotos auf Freigabe.",
"unknownUploader": "Unbekannter Gast",
"uploadedAt": "Hochgeladen:",
"statusPending": "Status: Prüfung ausstehend"
},
"invites": {
"title": "QR-Einladungen",
"subtitle": "Aktive Links und Layouts im Blick behalten.",
"activeCount": "{{count}} aktiv",
"totalCount": "{{count}} gesamt",
"empty": "Noch keine QR-Einladungen erstellt.",
"statusActive": "Aktiv",
"statusInactive": "Inaktiv",
"manage": "Einladungen verwalten"
},
"tasks": {
"title": "Aktive Aufgaben",
"subtitle": "Motiviere Gäste mit klaren Aufgaben & Highlights.",
"summary": "{{completed}} von {{total}} erledigt",
"empty": "Noch keine Aufgaben zugewiesen.",
"manage": "Tasks verwalten",
"completed": "Erledigt",
"open": "Offen"
},
"recent": {
"title": "Neueste Uploads",
"subtitle": "Ein Blick auf die letzten Fotos der Gäste.",
"empty": "Noch keine freigegebenen Fotos vorhanden."
},
"feedback": {
"title": "Wie hilfreich ist dieses Toolkit?",
"subtitle": "Dein Feedback hilft uns, den Eventtag noch besser zu begleiten.",
"positive": "Hilfreich",
"neutral": "Ganz okay",
"negative": "Verbesserungsbedarf",
"placeholder": "Erzähle uns kurz, was dir gefallen hat oder was fehlt …",
"disclaimer": "Dein Feedback wird vertraulich behandelt und hilft uns beim Feinschliff.",
"submit": "Feedback senden",
"thanksTitle": "Danke!",
"thanksDescription": "Wir haben dein Feedback erhalten.",
"badge": "Angepasst"
}
},
"customizer": {
"title": "QR-Einladung anpassen",
"description": "Passe Layout, Texte, Farben und Logo deiner Einladungskarten an.",
"layout": "Layout",
"selectLayout": "Layout auswählen",
"headline": "Überschrift",
"subtitle": "Unterzeile",
"descriptionLabel": "Beschreibung",
"badgeLabel": "Badge",
"instructionsHeading": "Anleitungstitel",
"instructionsLabel": "Hinweistexte",
"addInstruction": "Hinweis hinzufügen",
"removeInstruction": "Entfernen",
"linkHeading": "Link-Titel",
"linkLabel": "Link",
"ctaLabel": "Call-to-Action",
"colors": {
"accent": "Akzentfarbe",
"text": "Textfarbe",
"background": "Hintergrund",
"secondary": "Sekundärfarbe",
"badge": "Badge-Farbe"
},
"logo": {
"label": "Logo",
"hint": "PNG oder SVG, max. 1 MB. Wird oben rechts platziert.",
"remove": "Logo entfernen"
},
"preview": {
"title": "Vorschau",
"hint": "Farben und Texte, wie sie im Layout erscheinen. Speichere, um neue PDFs/SVGs zu erhalten."
},
"actions": {
"save": "Speichern",
"cancel": "Abbrechen",
"reset": "Zurücksetzen"
},
"badge": "Angepasst",
"actionLabel": "Layout anpassen",
"errors": {
"logoTooLarge": "Das Logo darf maximal 1 MB groß sein.",
"noLayout": "Bitte wähle ein Layout aus."
},
"defaults": {
"badgeLabel": "Digitale Gästebox",
"instructionsHeading": "So funktioniert's",
"linkHeading": "Alternative zum Einscannen",
"ctaLabel": "Scan mich & starte direkt",
"instructions": [
"QR-Code scannen",
"Profil anlegen",
"Fotos teilen"
]
}
}
},
"collections": {
@@ -316,4 +459,4 @@
}
}
}
}
}