diff --git a/.gitignore b/.gitignore index 8d39da1..0349bda 100644 --- a/.gitignore +++ b/.gitignore @@ -23,11 +23,6 @@ Homestead.yaml npm-debug.log yarn-error.log /auth.json -/.fleet -/.idea -/.nova /.vscode -/.zed -tools/git-askpass.ps1 -podman-compose.dev.yml test-results +GEMINI.md diff --git a/public/lang/de/auth.json b/public/lang/de/auth.json index 0967ef4..0ba8a46 100644 --- a/public/lang/de/auth.json +++ b/public/lang/de/auth.json @@ -1 +1,80 @@ -{} +{ + "login_failed": "Diese Anmeldedaten wurden nicht gefunden.", + "login_success": "Sie sind nun eingeloggt.", + "registration_failed": "Registrierung fehlgeschlagen.", + "registration_success": "Registrierung erfolgreich – bitte mit dem Kauf fortfahren.", + "already_logged_in": "Sie sind bereits eingeloggt.", + "failed_credentials": "Diese Anmeldedaten wurden nicht gefunden.", + "header": { + "login": "Anmelden", + "register": "Registrieren", + "home": "Startseite", + "packages": "Pakete", + "blog": "Blog", + "occasions": { + "wedding": "Hochzeit", + "birthday": "Geburtstag", + "corporate": "Firmenevent" + }, + "contact": "Kontakt" + }, + "login": { + "title": "Die Fotospiel App", + "description": "Melde dich mit deinem Fotospiel-Zugang an und steuere deine Events zentral in einem Dashboard.", + "brand": "Die Fotospiel App", + "logo_alt": "Logo Die Fotospiel App", + "identifier": "E-Mail oder Username", + "identifier_placeholder": "z. B. name@beispiel.de oder hochzeit_julia", + "username_or_email": "Username oder E-Mail", + "email": "E-Mail-Adresse", + "email_placeholder": "ihre@email.de", + "password": "Passwort", + "password_placeholder": "Ihr Passwort", + "remember": "Angemeldet bleiben", + "forgot": "Passwort vergessen?", + "submit": "Anmelden", + "oauth_divider": "oder", + "google_cta": "Mit Google anmelden", + "google_helper": "Nutze dein Google-Konto, um dich sicher bei der Eventverwaltung anzumelden.", + "no_account": "Noch keinen Zugang?", + "sign_up": "Jetzt registrieren" + }, + "register": { + "title": "Registrieren", + "name": "Vollständiger Name", + "username": "Username", + "email": "E-Mail-Adresse", + "password": "Passwort", + "password_confirmation": "Passwort bestätigen", + "first_name": "Vorname", + "last_name": "Nachname", + "address": "Adresse", + "phone": "Telefonnummer", + "privacy_consent": "Ich stimme der Datenschutzerklärung zu und akzeptiere die Verarbeitung meiner persönlichen Daten.", + "privacy_policy_link": "Datenschutzerklärung", + "submit": "Registrieren", + "first_name_placeholder": "Vorname", + "last_name_placeholder": "Nachname", + "email_placeholder": "beispiel@email.de", + "address_placeholder": "Straße Hausnummer, PLZ Ort", + "phone_placeholder": "+49 170 1234567", + "username_placeholder": "z. B. hochzeit_julia", + "password_placeholder": "Mindestens 8 Zeichen", + "password_confirmation_placeholder": "Passwort erneut eingeben", + "server_error_title": "Registrierung konnte nicht abgeschlossen werden", + "server_error_message": "Auf unserer Seite ist ein Fehler aufgetreten. Bitte versuche es später erneut oder kontaktiere support@fotospiel.de.", + "session_expired_title": "Sicherheitsprüfung abgelaufen", + "session_expired_message": "Deine Sitzung ist abgelaufen. Lade die Seite neu und versuche es erneut." + }, + "verification": { + "notice": "Bitte bestätigen Sie Ihre E-Mail-Adresse.", + "resend": "E-Mail erneut senden", + "success_title": "E-Mail bestätigt", + "success_message": "Deine E-Mail ist bestätigt. Du kannst dich jetzt anmelden.", + "checkout_success_message": "E-Mail bestätigt. Du kannst mit dem Checkout fortfahren.", + "toast_success": "E-Mail erfolgreich bestätigt.", + "expired_title": "Bestätigungslink abgelaufen", + "expired_message": "Dieser Bestätigungslink ist nicht mehr gültig. Fordere unten einen neuen Link an.", + "toast_error": "Bestätigungslink abgelaufen. Bitte fordere einen neuen Link an." + } +} diff --git a/public/lang/de/marketing.json b/public/lang/de/marketing.json index f70859a..577fbc3 100644 --- a/public/lang/de/marketing.json +++ b/public/lang/de/marketing.json @@ -1,2245 +1,1078 @@ { - "achievements.badges.description": "__STRING_NOT_TRANSLATED__", - "achievements.badges.empty": "__STRING_NOT_TRANSLATED__", - "achievements.badges.title": "__STRING_NOT_TRANSLATED__", - "achievements.feed.description": "__STRING_NOT_TRANSLATED__", - "achievements.feed.empty": "__STRING_NOT_TRANSLATED__", - "achievements.feed.likesLabel_one": "__STRING_NOT_TRANSLATED__", - "achievements.feed.likesLabel_other": "__STRING_NOT_TRANSLATED__", - "achievements.feed.taskLabel": "__STRING_NOT_TRANSLATED__", - "achievements.feed.thumbnailAlt": "__STRING_NOT_TRANSLATED__", - "achievements.feed.title": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.likesAmount_one": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.likesAmount_other": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.noPreview": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.taskLabel": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.topDescription": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.topTitle": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.trendingCount_one": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.trendingCount_other": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.trendingDescription": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.trendingTitle": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.description": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.guestFallback": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.item.likes_one": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.item.likes_other": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.item.photos_one": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.item.photos_other": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.likesEmpty": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.likesTitle": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.uploadsEmpty": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.uploadsTitle": "__STRING_NOT_TRANSLATED__", - "achievements.page.buttons.event": "__STRING_NOT_TRANSLATED__", - "achievements.page.buttons.feed": "__STRING_NOT_TRANSLATED__", - "achievements.page.buttons.personal": "__STRING_NOT_TRANSLATED__", - "achievements.page.loadError": "__STRING_NOT_TRANSLATED__", - "achievements.page.retry": "__STRING_NOT_TRANSLATED__", - "achievements.page.subtitle": "__STRING_NOT_TRANSLATED__", - "achievements.page.title": "__STRING_NOT_TRANSLATED__", - "achievements.personal.actions.tasks": "__STRING_NOT_TRANSLATED__", - "achievements.personal.actions.upload": "__STRING_NOT_TRANSLATED__", - "achievements.personal.greeting": "__STRING_NOT_TRANSLATED__", - "achievements.personal.stats": "__STRING_NOT_TRANSLATED__", - "achievements.timeline.description": "__STRING_NOT_TRANSLATED__", - "achievements.timeline.row": "__STRING_NOT_TRANSLATED__", - "achievements.timeline.title": "__STRING_NOT_TRANSLATED__", - "actions.back": "Back", - "actions.close": "Close", - "actions.dismiss": "Dismiss", - "analytics.activityTitle": "Activity Timeline", - "analytics.contributorsTitle": "Top Contributors", - "analytics.likesCount_one": "{{count}} likes", - "analytics.likesCount_other": "{{count}} likes", - "analytics.lockedBody": "Get deep insights into your event engagement with the Premium package.", - "analytics.lockedTitle": "Unlock Analytics", - "analytics.noActivity": "No uploads yet", - "analytics.noContributors": "No contributors yet", - "analytics.noTasks": "No task activity yet", - "analytics.tasksTitle": "Popular Tasks", - "analytics.title": "Analytics", - "analytics.upgradeAction": "Upgrade to Premium", - "analytics.uploadsPerHour": "Uploads per hour", - "auth": "__STRING_NOT_TRANSLATED__", - "auth.confirm.description": "This is a secure area of the application. Please confirm your password before continuing.", - "auth.confirm.password": "Password", - "auth.confirm.password_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.confirm.submit": "Confirm password", - "auth.confirm.title": "Confirm your password", - "auth.delete_user.confirm_text": "__STRING_NOT_TRANSLATED__", - "auth.delete_user.password_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.forgot.back": "__STRING_NOT_TRANSLATED__", - "auth.forgot.description": "Enter your email to receive a password reset link", - "auth.forgot.email_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.forgot.title": "Forgot password", - "auth.logoAlt": "Fotospiel", - "auth.reset.confirm_password": "Confirm password", - "auth.reset.confirm_password_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.reset.description": "Please enter your new password below", - "auth.reset.email": "__STRING_NOT_TRANSLATED__", - "auth.reset.password": "Password", - "auth.reset.password_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.reset.submit": "Reset password", - "auth.reset.title": "Reset password", - "auth.settings.password.confirm": "Confirm password", - "auth.settings.password.confirm_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.password.current": "Current password", - "auth.settings.password.current_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.password.description": "Ensure your account is using a long, random password to stay secure", - "auth.settings.password.new": "New password", - "auth.settings.password.new_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.password.save_button": "Save password", - "auth.settings.password.section_title": "Update password", - "auth.settings.password.title": "Password settings", - "auth.settings.profile.description": "Update your name and email address", - "auth.settings.profile.email": "Email address", - "auth.settings.profile.email_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.profile.email_unverified": "Your email address is unverified.", - "auth.settings.profile.language": "Language", - "auth.settings.profile.name": "Name", - "auth.settings.profile.name_placeholder": "Dein Name", - "auth.settings.profile.resend_verification": "Click here to resend the verification email.", - "auth.settings.profile.section_title": "Profile information", - "auth.settings.profile.title": "Profile settings", - "auth.settings.profile.username": "Username", - "auth.settings.profile.username_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.profile.verification_sent": "A new verification link has been sent to your email address.", - "back_to_blog": "__STRING_NOT_TRANSLATED__", - "billing.actions.contactSupport": "Contact support", - "billing.actions.openPackages": "Open packages", - "billing.actions.portal": "Manage in Paddle", - "billing.actions.portalBusy": "Öffne Portal...", - "billing.actions.refresh": "Refresh", - "billing.errors.load": "Konnte Abrechnung nicht laden.", - "billing.errors.portal": "Konnte das Paddle-Portal nicht öffnen.", - "billing.features.branding": "Branding", - "billing.features.watermark": "Watermark", - "billing.sections.addOns.empty": "Keine Add-ons gebucht.", - "billing.sections.addOns.hint": "Track extra photo, guest, or time bundles per event.", - "billing.sections.addOns.title": "Add-ons", - "billing.sections.invoices.empty": "Keine Zahlungen gefunden.", - "billing.sections.invoices.hint": "Review transactions and download receipts.", - "billing.sections.invoices.title": "Invoices & Payments", - "billing.sections.packages.card.statusActive": "Aktiv", - "billing.sections.packages.hint": "Active package, limits, and history at a glance.", - "billing.sections.packages.title": "Packages", - "billing.sections.transactions.labels.receipt": "Beleg", - "billing.sections.transactions.labels.tax": "__STRING_NOT_TRANSLATED__", - "billing.title": "Billing & Packages", - "blog.by": "__STRING_NOT_TRANSLATED__", - "blog.empty": "__STRING_NOT_TRANSLATED__", - "blog.hero_cta": "__STRING_NOT_TRANSLATED__", - "blog.hero_description": "__STRING_NOT_TRANSLATED__", - "blog.hero_title": "__STRING_NOT_TRANSLATED__", - "blog.posts_title": "__STRING_NOT_TRANSLATED__", - "blog.published_at": "__STRING_NOT_TRANSLATED__", - "blog.read_more": "__STRING_NOT_TRANSLATED__", - "blog.team": "__STRING_NOT_TRANSLATED__", - "blog.title": "__STRING_NOT_TRANSLATED__", + "header": { + "login": "Anmelden", + "register": "Registrieren", + "home": "Startseite", + "packages": "Pakete", + "blog": "Blog", + "contact": "Kontakt" + }, + "home": { + "title": "Startseite - Fotospiel", + "hero_tagline": "Eventfotos ohne App-Zwang", + "hero_title": "Dein Event. Eure Fotos.", + "hero_description": "Die Fotospiel App bündelt QR-Zugänge, Live-Galerien und Moderation in einer einzigen Plattform – für Hochzeiten, Firmenfeiern und jedes Fest, das Erinnerungen verdient.", + "hero_bullets": [ + "Live-Galerie in Sekunden startklar", + "Persönliche Zugangscodes halten eure Galerie privat", + "Slideshows, Branding und Aufgaben on-the-fly" + ], + "cta_demo": "Demo ansehen", + "cta_demo_highlight": "Live-Demo starten", + "cta_how": "So funktioniert's", + "cta_packages": "Pakete ansehen", + "cta_explore": "Pakete ansehen", + "cta_explore_highlight": "Jetzt die Fotospiel App testen", + "hero_image_alt": "Gäste teilen Fotos per QR-Code auf ihrem Smartphone", + "how_title": "So läuft das Fotospiel", + "how_subtitle": "Von der Einladung bis zur fertigen Galerie in drei cleveren Schritten.", + "step1_title": "Event erstellen & Paket wählen", + "step1_desc": "In wenigen Klicks zum Event: Grenzen für Fotos, Gäste und Branding festlegen.", + "step2_title": "QR-Link & Zugangscode teilen", + "step2_desc": "Gäste scannen den QR-Code oder tippen euren Zugangscode ein und laden sofort hoch – ganz ohne App-Store.", + "step3_title": "Live moderieren & Highlights zeigen", + "step3_desc": "Schalte Beiträge frei, triggere Slideshows und exportiere Lieblingsfotos sofort.", + "demo_title": "Erlebe die Fotospiel App Demo", + "demo_description": "Unser Demo-Event zeigt dir die Gäste-App im echten 9:16-Frame. Öffne es auf dem Handy und teste Uploads, Emotionen und Likes live.", + "demo_hint": "Tipp: Teile den Link mit deinem Team, um gemeinsam auszuprobieren.", + "demo_cta": "Zur Demo-Seite", + "demo_media_alt": "Smartphone Rahmen mit geöffneter Fotospiel App Demo", + "features_title": "Alles, was dein Event braucht", + "features_highlight": [ + { + "title": "Branding & Slideshows", + "description": "Passe Farben, Overlays und Aufgaben an deinen Event an – inklusive Live-Slideshow." + }, + { + "title": "Moderation in Echtzeit", + "description": "Sperre Inhalte mit einem Klick, markiere Favoriten und exportiere Best-of-Galerien." + }, + { + "title": "Analytics & Archiv", + "description": "Verfolge Uploads, Reaktionen und Downloads – DSGVO-konform archiviert." + } + ], + "occasions_title": "Anlässe, die die Fotospiel App liebt", + "occasions_description": "Wähle einen Einstieg und entdecke Best-Practices für dein Eventformat.", + "occasions": { + "wedding": "Hochzeiten – romantische Momente sammeln", + "birthday": "Geburtstage – Erinnerungen von 7 bis 70", + "corporate": "Firmenfeiern – Branding & Sicherheit im Fokus", + "confirmation": "Konfirmation & Jugendweihe – Familienalbum to go" + }, + "blog_teaser_title": "Insights aus dem Fotospiel Blog", + "blog_teaser_description": "Trends, Setups und Playbooks für deine nächste Veranstaltung.", + "blog_teaser_cta": "Zum Blog", + "packages_title": "Packages & Preise", + "packages_subtitle": "Flexibel für Einzelevents oder Agenturen – online buchbar in Minuten, per Karte oder Rechnung.", + "view_details": "Details ansehen", + "all_packages": "Alle Pakete vergleichen", + "contact_title": "Lass uns über dein Event sprechen", + "contact_lead": "Wir beraten dich zu Aufgaben, Zugangscodes, Hardware-Setups oder individuellen Workflows.", + "name_label": "Name", + "email_label": "E-Mail", + "message_label": "Nachricht", + "contact_privacy": "Mit dem Absenden bestätigst du unsere Datenschutzhinweise. Wir melden uns innerhalb von 24 Stunden.", + "sending": "Wird gesendet …", + "send": "Nachricht senden", + "testimonials_title": "Stimmen aus der Community", + "testimonials_subtitle": "Über 1.200 Events wurden bereits mit der Fotospiel App begleitet.", + "testimonial1": "„Unsere Gäste haben das Event förmlich dokumentiert – und wir hatten alles in einem sicheren Archiv.“", + "testimonial2": "„Branding, Moderation und Analytics – alles genau da, wo ich es im Event brauche.“", + "testimonial3": "„Konfirmation ohne WhatsApp-Chaos. QR-Code raus, Emojis rein, Bilder für alle!“", + "faq_title": "Noch Fragen?", + "faq_subtitle": "Hier findest du schnelle Antworten. Mehr Details gibt es in So funktioniert’s.", + "faq1_q": "Kann ich die Fotospiel App vorab testen?", + "faq1_a": "Ja! Nutze unser Demo-Event oder buche das Free Package und teste alle Grundfunktionen.", + "faq2_q": "Brauchen Gäste ein Konto?", + "faq2_a": "Nein. Der persönliche Zugangscode reicht völlig. Optional könnt ihr die Galerie mit einer PIN absichern." + }, + "packages": { + "title": "Unsere Packages", + "price": "Preis", + "features": "Features", + "subscription_annual": "Jährliches Abonnement", + "auto_renew": "automatische Verlängerung", + "cancel_anytime": "kündbar jederzeit", + "trial_start": "Kostenloser Trial für :days Tage", + "reseller_benefits": "Vorteile für Reseller", + "unlimited_events": "Unbegrenzte Events", + "custom_branding": "Benutzerdefiniertes Branding", + "available": "Verfügbar", + "not_available": "Nicht verfügbar", + "standard_support": "Standard-Support", + "priority_support": "Priorisierter Support", + "cancel_link": "Abo kündigen: :link", + "hero_title": "Entdecken Sie unsere flexiblen Packages", + "hero_description": "Von kostenlosem Einstieg bis Premium-Features: Passen Sie Ihr Event-Paket an Ihre Bedürfnisse an. Einfach, sicher und skalierbar.", + "hero_secondary": "Teste den kompletten Gäste-Flow in unserer Live-Demo – kein Login, kein App-Store.", + "cta_demo": "Demo ansehen", + "cta_explore": "Pakete entdecken", + "cta_explore_highlight": "Lieblingspaket sichern", + "tab_endcustomer": "Endkunden", + "tab_reseller": "Reseller & Agenturen", + "section_endcustomer": "Packages für Endkunden (Einmalkauf pro Event)", + "section_reseller": "Packages für Reseller (Jährliches Abo)", + "free": "Kostenlos", + "one_time": "Einmalkauf", + "subscription": "Abo", + "year": "Jahr", + "max_photos": "Fotos", + "max_guests": "Gäste", + "gallery_days": "Tage Galerie", + "max_events_year": "Events/Jahr", + "buy_now": "Jetzt kaufen", + "subscribe_now": "Jetzt abonnieren", + "register_buy": "Registrieren und kaufen", + "register_subscribe": "Registrieren und abonnieren", + "faq_title": "Häufige Fragen zu Packages", + "faq_lead": "Antworten auf die wichtigsten Fragen – mehr Details findest du im Guide „So funktioniert’s“.", + "faq_q1": "Was ist ein Package?", + "faq_a1": "Ein Package definiert Limits und Features für Ihr Event, z.B. Anzahl Fotos und Galerie-Dauer.", + "faq_q2": "Kann ich upgraden?", + "faq_a2": "Ja, wählen Sie bei Event-Erstellung ein höheres Package oder upgraden Sie später.", + "faq_q3": "Was passiert bei Ablauf?", + "faq_a3": "Die Galerie bleibt lesbar, aber Uploads sind blockiert. Verlängern Sie einfach.", + "faq_q4": "Zahlungssicher?", + "faq_a4": "Ja, via Paddle – sicher und GDPR-konform.", + "final_cta": "Bereit für Ihr nächstes Event?", + "contact_us": "Kontaktieren Sie uns", + "feature_live_slideshow": "Live-Slideshow", + "feature_analytics": "Analytics", + "feature_watermark": "Wasserzeichen", + "feature_branding": "Branding", + "feature_support": "Support", + "feature_basic_uploads": "Basis-Uploads", + "feature_unlimited_sharing": "Unbegrenztes Teilen", + "feature_no_watermark": "Kein Wasserzeichen", + "feature_custom_tasks": "Benutzerdefinierte Tasks", + "feature_advanced_analytics": "Erweiterte Analytics", + "feature_priority_support": "Priorisierter Support", + "feature_limited_sharing": "Begrenztes Teilen", + "feature_no_branding": "Kein Branding", + "feature_0": "Basis-Feature", + "feature_reseller_dashboard": "Reseller-Dashboard", + "feature_custom_branding": "Benutzerdefiniertes Branding", + "feature_advanced_reporting": "Erweiterte Berichterstattung", + "badge_most_popular": "Beliebteste Wahl", + "badge_best_value": "Bestes Preis-Leistungs-Verhältnis", + "badge_starter": "Perfekt für den Start", + "billing_per_event": "pro Event", + "billing_per_year": "pro Jahr", + "more_features": "+{{count}} weitere Features", + "feature_overview": "Feature-Überblick", + "order_hint": "Sofort startklar – keine versteckten Kosten, sichere Zahlung über Paddle.", + "features_label": "Features", + "feature_highlights": "Feature-Highlights", + "detail_labels": { + "photos": "Fotos", + "guests": "Gäste", + "gaste": "Gäste", + "tasks": "Aufgaben", + "gallery": "Galerie", + "branding": "Branding", + "events_per_year": "Events pro Jahr" + }, + "more_details_tab": "Mehr Details", + "quick_facts": "Schnelle Fakten", + "quick_facts_hint": "Der schnelle Überblick über die wichtigsten Kennzahlen.", + "more_details_link": "Noch mehr Details anzeigen", + "badge_deep_dive": "Deep Dive", + "breakdown_label": "Leistungsübersicht", + "breakdown_label_hint": "Erfahre, wie das Paket im Detail aufgebaut ist.", + "limits_label": "Limits & Kapazitäten", + "limits_label_hint": "Alle Kennzahlen auf einen Blick – ideal für Planung und Freigaben.", + "for_endcustomers": "Für Endkunden", + "for_resellers": "Für Reseller", + "view_details": "Details ansehen", + "details_show": "Details anzeigen", + "comparison_title": "Packages vergleichen", + "comparison_subtitle": "Alle Limits und Features auf einen Blick.", + "comparison_hint": "Wähle deine Zielgruppe und scrolle durch die Karten. Die Tabelle zeigt genaue Unterschiede.", + "comparison_limits": "Limits", + "comparison_features": "Features", + "max_photos_label": "Max. Fotos", + "max_guests_label": "Max. Gäste", + "gallery_days_label": "Galerie-Tage", + "watermark_label": "Wasserzeichen", + "no_watermark": "Kein Wasserzeichen", + "max_tenants": "Max. Tenants", + "max_events": "Max. Events/Jahr", + "faq_free": "Was ist das Free Package?", + "faq_upgrade": "Kann ich upgraden?", + "faq_reseller": "Was für Reseller?", + "faq_payment": "Zahlung sicher?", + "faq_free_desc": "Das Free Package bietet grundlegende Features für kleine Events mit begrenzter Anzahl an Fotos und Gästen.", + "faq_upgrade_desc": "Ja, Sie können jederzeit upgraden, um mehr Features und Limits zu erhalten. Der Upgrade ist nahtlos und Ihre Daten bleiben erhalten.", + "faq_reseller_desc": "Reseller-Packages sind jährliche Abos für Agenturen, die mehrere Events verwalten. Inklusive Dashboard und Branding-Optionen.", + "faq_payment_desc": "Alle Zahlungen werden über sichere Provider wie Paddle abgewickelt. Ihre Daten sind GDPR-konform geschützt.", + "testimonials": { + "anna": "Fotospiel hat unsere Hochzeit perfekt gemacht! Die Gäste konnten einfach Fotos teilen, und die Galerie war ein Hit.", + "max": "Als Event-Organisator liebe ich die Analytics und das einfache Branding. Super für Firmenevents!", + "lisa": "Kostenloses Paket für Geburtstage – einfach und sicher. Kein Stress mit Apps!" + }, + "what_customers_say": "Was unsere Kunden sagen", + "close": "Schließen", + "to_order": "Jetzt bestellen", + "details": "Details", + "customer_opinions": "Kundenmeinungen", + "errors": { + "select_package": "Bitte wählen Sie ein Paket aus." + }, + "currency": { + "euro": "€" + }, + "feature": "Feature", + "paddle_not_configured": "Dieses Package ist noch nicht für den Paddle-Checkout konfiguriert. Bitte kontaktiere den Support.", + "paddle_checkout_failed": "Der Paddle-Checkout konnte nicht gestartet werden. Bitte versuche es später erneut.", + "gift_cta": "Paket verschenken" + }, + "blog": { + "title": "Fotospiel - Blog", + "hero_title": "Fotospiel Blog", + "hero_description": "Tipps, News und Guides für perfekte Event-Fotos mit QR-Codes, PWA und mehr. Bleiben Sie informiert!", + "hero_cta": "Mehr über Fotospiel", + "posts_title": "Aktuelle Blog-Beiträge", + "by": "Von", + "team": "Fotospiel Team", + "published_at": "Veröffentlicht am", + "read_more": "Lesen", + "back": "Zurück zum Blog", + "empty": "Noch keine Beiträge verfügbar. Bleiben Sie dran!", + "our_blog": "Unser Blog", + "latest_posts": "Neueste Beiträge", + "no_posts": "Keine Beiträge verfügbar.", + "read_more_link": "Mehr lesen", + "date_format": "Veröffentlicht am :date", + "post": { + "alt": "Beitragsbild" + } + }, + "kontakt": { + "title": "Kontakt - Fotospiel", + "description": "Haben Sie Fragen? Schreiben Sie uns!", + "name": "Name", + "email": "E-Mail", + "message": "Nachricht", + "sending": "Wird gesendet...", + "send": "Senden", + "back_home": "Zurück zur Startseite", + "success": "Danke! Wir melden uns schnellstmöglich." + }, + "occasions": { + "title": "Fotospiel für :type", + "hero_title": "Fotospiel für :type", + "hero_description": "Sammeln Sie unvergessliche Fotos von Ihren Gästen mit QR-Codes. Perfekt für :type – einfach, mobil und datenschutzkonform.", + "cta": "Paket wählen", + "weddings": { + "title": "Hochzeiten mit der Fotospiel App", + "description": "Fangen Sie romantische Momente ein: Gäste teilen Fotos via QR, wählen Emotionen wie 'Romantisch' oder 'Freudig'. Besser als traditionelle Fotoboxen.", + "benefits_title": "Vorteile für Hochzeiten", + "benefit1": "QR-Code für Gäste: Einfaches Teilen ohne App-Download.", + "benefit2": "Emotion-Filter: Kategorisieren von Fotos (z.B. 'Tanz', 'Kuss').", + "benefit3": "Private Galerie: Nur genehmigte Fotos sichtbar.", + "benefit4": "Download: Hochauflösend für Album.", + "image_alt": "Hochzeitsfotos" + }, + "birthdays": { + "title": "Geburtstage feiern", + "description": "Lassen Sie Freunde und Familie spontane Fotos teilen. QR auf der Torte – Spaß garantiert!", + "benefits_title": "Vorteile für Geburtstage", + "benefit1": "Schnelle Uploads: Kamera oder Galerie.", + "benefit2": "Likes & Shares: Beliebte Momente hervorheben.", + "benefit3": "Offline-fähig: PWA funktioniert ohne Internet.", + "benefit4": "Anonym: Keine Registrierung erforderlich.", + "image_alt": "Geburtstagsfotos" + }, + "corporate": { + "title": "Firmenevents professionell", + "description": "Networking und Team-Building: Fotos zentral sammeln, Highlights intern teilen.", + "benefits_title": "Vorteile für Firmenevents", + "benefit1": "QR an Ständen: Gäste fotografieren sich selbst.", + "benefit2": "Kategorien: 'Team', 'Netzwerk', 'Präsentation'.", + "benefit3": "Export: Für Social Media oder Intranet.", + "benefit4": "GDPR-sicher: Keine PII gespeichert.", + "image_alt": "Firmenevent-Fotos" + }, + "confirmation": { + "title": "Konfirmation & Jugendweihe feiern", + "description": "Halte den Übergang ins Erwachsenenleben fest: Gäste teilen Fotos direkt aus Kirche und Feier – ohne App-Installation.", + "benefits_title": "Vorteile für Konfirmation & Jugendweihe", + "benefit1": "Familienfreundlicher QR-Code für alle Generationen.", + "benefit2": "Sammlungen für Kirche, Feier und Gruppenbilder.", + "benefit3": "Moderation: Eltern entscheiden, welche Fotos sichtbar sind.", + "benefit4": "Download-Paket für Dankeskarten und Fotoalbum.", + "image_alt": "Konfirmationsfeier" + }, + "family": { + "title": "Familienfeiern", + "description": "Von Taufen bis Jubiläen: Erinnerungen von allen Verwandten sammeln.", + "benefits_title": "Vorteile für Familienfeiern", + "benefit1": "Einfach für alle Altersgruppen: Große Schrift, touch-freundlich.", + "benefit2": "Emotionen: 'Familie', 'Glück', 'Einheit'.", + "benefit3": "Teilen: Via Link oder QR für Nachfeier.", + "benefit4": "Unbegrenzt: Im Premium-Plan.", + "image_alt": "Familienfotos" + }, + "not_found": "Anlass nicht gefunden.", + "hochzeit_title": "Hochzeit – Perfekte Gastfotos mit QR", + "hochzeit_desc": "Machen Sie Ihre Hochzeit unvergesslich mit Fotospiel. Gäste teilen Fotos einfach via QR-Code – sicher, privat und in Echtzeit. Von Zeremonie bis Party, alle Momente zentral gesammelt.", + "hochzeit_feature1": "Live-Slideshow für Gäste", + "hochzeit_feature2": "Emotion-basierte Foto-Filter", + "hochzeit_feature3": "Unbegrenzte Galerie für 30 Tage", + "hochzeit_cta": "Hochzeitspaket wählen", + "geburtstag_title": "Geburtstag – Feiern mit geteilten Erinnerungen", + "geburtstag_desc": "Feiern Sie Geburtstage mit Fotospiel! QR-Code für Gäste zum Hochladen von Fotos – von Kinder- bis Erwachsenen-Partys. Einfach teilen, liken und downloaden.", + "geburtstag_feature1": "Kostenloses Paket für kleine Partys", + "geburtstag_feature2": "Schnelle Uploads via PWA", + "geburtstag_feature3": "Privat und datenschutzkonform", + "geburtstag_cta": "Geburtstagspaket entdecken", + "firmenevent_title": "Firmenevent – Team-Events und Konferenzen", + "firmenevent_desc": "Für Firmenevents, Teambuildings und Konferenzen: Fotospiel sammelt alle Fotos zentral via QR. Branding, Analytics und sichere Galerie für Ihr Unternehmen.", + "firmenevent_feature1": "Benutzerdefiniertes Branding für Firmenlogo", + "firmenevent_feature2": "Erweiterte Analytics", + "firmenevent_feature3": "Priorisierter Support", + "firmenevent_cta": "Firmenpaket anfragen" + }, + "success": { + "title": "Erfolg", + "verify_email": "E-Mail verifizieren", + "check_email": "Überprüfen Sie Ihre E-Mail auf den Verifizierungslink.", + "redirecting": "Weiterleitung zum Admin-Bereich...", + "complete_purchase": "Kauf abschließen", + "login_to_continue": "Melden Sie sich an, um fortzufahren.", + "loading": "Laden...", + "email_verify_title": "E-Mail verifizieren", + "email_verify_desc": "Bitte überprüfen Sie Ihre E-Mail und klicken Sie auf den Verifizierungslink.", + "resend_verification": "Verifizierung erneut senden", + "already_registered": "Bereits registriert? Anmelden", + "purchase_complete_title": "Kauf abschließen", + "purchase_complete_desc": "Melden Sie sich an, um fortzufahren.", + "login": "Anmelden", + "no_account": "Kein Konto? Registrieren", + "manage_subscription": "Abo verwalten", + "stripe_dashboard": "Stripe-Dashboard", + "trial_activated": "Trial aktiviert für 14 Tage!" + }, + "payment": { + "title": "Zahlung", + "card_details": "Kartendetails", + "stripe": "Kreditkarte", + "submit_stripe": "Bezahlen mit Karte (:price)", + "loading_stripe": "Lade Stripe...", + "switch_to_card": "Zur Kreditkarte wechseln", + "stripe_error": "Stripe-Zahlung fehlgeschlagen", + "confirm_error": "Bestätigung fehlgeschlagen", + "complete_error": "Zahlung konnte nicht abgeschlossen werden" + }, "blog_show": { - "back_to_blog": "Zurück zum Blog", + "title_suffix": " - Fotospiel Blog", "by_author": "Von", "published_on": "Veröffentlicht am", - "title_suffix": " - Fotospiel Blog" + "back_to_blog": "Zurück zum Blog" }, - "breadcrumb_blog": "__STRING_NOT_TRANSLATED__", - "breadcrumb_home": "__STRING_NOT_TRANSLATED__", - "by_author": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.already_logged_in_hint": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.already_logged_in_title": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.continue_with_google": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_error_title": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_helper": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_helper_badge": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_missing_package": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_success_toast": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.next_to_payment": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.switch_to_login": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.switch_to_register": "__STRING_NOT_TRANSLATED__", - "checkout.back": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.actions_body": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.actions_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.control_center_body": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.control_center_hint": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.control_center_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.email_followup": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.hero_badge": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.hero_body": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.hero_next": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.hero_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.onboarding_badge": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.onboarding_subtitle": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.onboarding_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.open_profile": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.package_body": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.package_label": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.package_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_body_completed": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_body_failed": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_body_processing": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_manual_hint": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_refresh": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_retry": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_state.completed": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_state.failed": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_state.processing": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.to_admin": "__STRING_NOT_TRANSLATED__", - "checkout.legal.checkbox_terms_error": "__STRING_NOT_TRANSLATED__", - "checkout.legal.checkbox_terms_label": "__STRING_NOT_TRANSLATED__", - "checkout.legal.legal_links_intro": "__STRING_NOT_TRANSLATED__", - "checkout.legal.link_cancellation": "__STRING_NOT_TRANSLATED__", - "checkout.legal.modal_description": "__STRING_NOT_TRANSLATED__", - "checkout.legal.modal_error": "__STRING_NOT_TRANSLATED__", - "checkout.legal.modal_loading": "__STRING_NOT_TRANSLATED__", - "checkout.legal.open_withdrawal": "__STRING_NOT_TRANSLATED__", - "checkout.next": "__STRING_NOT_TRANSLATED__", - "checkout.package_step.alternatives_title": "__STRING_NOT_TRANSLATED__", - "checkout.package_step.no_alternatives": "__STRING_NOT_TRANSLATED__", - "checkout.package_step.no_package_selected": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.activate_package": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.auth_required": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.free_package_desc": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.free_package_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.guided_body": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.guided_cta_hint": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.guided_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.no_package_description": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.no_package_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_disclaimer": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_error": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_intro": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_not_configured": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_overlay_ready": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_partner": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_preparing": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_ready": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.pay_with_paddle": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.processing_confirmation": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.status_error_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.status_info_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.status_processing_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.status_ready_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.toast_success": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.trust_secure": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.trust_support": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.trust_tax": "__STRING_NOT_TRANSLATED__", - "common": { - "contact": { - "errors": { - "email": "E-Mail ist erforderlich.", - "message": "Nachricht ist erforderlich.", - "name": "Name ist erforderlich." - } + "nav": { + "home": "Startseite", + "how_it_works": "So funktioniert's", + "features": "Features", + "occasions": "Anlässe", + "occasions_types": { + "weddings": "Hochzeiten", + "birthdays": "Geburtstage", + "corporate": "Firmenevents", + "confirmation": "Konfirmation & Jugendweihe", + "family": "Familienfeiern" }, + "blog": "Blog", + "packages": "Packages", + "contact": "Kontakt", + "discover_packages": "Packages entdecken", + "language": "Sprache", + "open_menu": "Menü öffnen", + "close_menu": "Menü schließen", + "cta_demo": "Jetzt ausprobieren", + "preferences": "Einstellungen", + "toggle_theme": "Darstellung wechseln", + "theme_light": "Helles Design", + "theme_dark": "Dunkles Design", + "dashboard": "Zum Admin-Bereich", + "logout": "Abmelden", + "login": "Anmelden", + "register": "Registrieren", + "gift": "Gutscheine" + }, + "footer": { + "company": "S.E.B. Fotografie", + "rights_reserved": "Alle Rechte vorbehalten", + "social": "Social" + }, + "register": { + "free": "Kostenlos" + }, + "currency": { + "euro": "€" + }, + "coupon": { + "label": "Gutscheincode", + "placeholder": "Gutscheincode eingeben", + "apply": "Gutschein anwenden", + "remove": "Gutschein entfernen", + "applied": "Gutschein {{code}} aktiviert. Du sparst {{amount}}.", + "summary_title": "Aktualisierte Bestellsumme", + "fields": { + "subtotal": "Zwischensumme", + "discount": "Rabatt", + "tax": "MwSt.", + "total": "Gesamtsumme nach Rabatt" + }, + "errors": { + "required": "Bitte gib einen Gutscheincode ein.", + "not_found": "Dieser Gutschein konnte nicht gefunden werden.", + "inactive": "Dieser Gutschein ist nicht aktiv.", + "disabled": "Dieser Gutschein kann derzeit nicht eingelöst werden.", + "not_applicable": "Dieser Gutschein gilt nicht für das ausgewählte Package.", + "limit_reached": "Dieser Gutschein wurde bereits maximal genutzt.", + "currency_mismatch": "Dieser Gutschein passt nicht zur gewählten Währung.", + "not_synced": "Dieser Gutschein ist noch nicht bereit. Bitte versuche es später erneut.", + "package_not_configured": "Dieses Package unterstützt aktuell keine Gutscheine.", + "login_required": "Bitte melde dich an, um diesen Gutschein zu nutzen.", + "generic": "Der Gutschein konnte nicht angewendet werden. Bitte versuche einen anderen." + } + }, + "meta": { + "title": "Fotospiel - Sammle Gastfotos für Events mit QR-Codes", + "description": "Sammle Gastfotos für Events mit QR-Codes. Unsere sichere PWA-Plattform für Gäste und Organisatoren – einfach, mobil und datenschutzkonform." + }, + "common": { + "unlimited": "Unbegrenzt", + "required": "*", + "loading": "Laden...", + "included": "Enthalten", + "star": "Stern", "date": { "format": "d.m.Y" }, - "included": "Enthalten", - "loading": "Laden...", "pagination": { - "next": "Weiter", - "previous": "Zurück" + "previous": "Zurück", + "next": "Weiter" + }, + "contact": { + "errors": { + "name": "Name ist erforderlich.", + "email": "E-Mail ist erforderlich.", + "message": "Nachricht ist erforderlich." + } }, - "required": "*", - "star": "Stern", "testimonials": { "anna": { "name": "Anna M." }, - "lisa": { - "name": "Lisa K." - }, "max": { "name": "Max S." + }, + "lisa": { + "name": "Lisa K." } + } + }, + "checkout": { + "title": "Checkout", + "subtitle": "Sicheren Kaufprozess", + "back": "Zurück", + "next": "Weiter", + "cancel": "Abbrechen", + "legal": { + "headline": "Rechtliches & Bestätigungen", + "summary_title": "Ihre Bestellung", + "package_label": "Ausgewähltes Paket", + "billing_type_one_time": "Einmalkauf (pro Event)", + "billing_type_subscription": "Abo (wiederkehrend)", + "legal_links_intro": "Details zur Belehrung:", + "link_terms": "AGB", + "link_privacy": "Datenschutzerklärung", + "link_cancellation": "Widerrufsbelehrung", + "checkbox_terms_label": "Ich habe die AGB, die Datenschutzerklärung und die Widerrufsbelehrung gelesen und akzeptiere sie.", + "checkbox_terms_error": "Bitte bestätigen Sie, dass Sie AGB, Datenschutzerklärung und Widerrufsbelehrung gelesen haben.", + "checkbox_digital_content_label": "Ich verlange ausdrücklich, dass Sie vor Ablauf der Widerrufsfrist mit der Ausführung der digitalen Dienstleistungen (Freischaltung meines Event-Packages inkl. Galerie und Hosting) beginnen. Mir ist bekannt, dass ich bei vollständiger Vertragserfüllung mein Widerrufsrecht verliere.", + "checkbox_digital_content_error": "Bitte bestätigen Sie, dass Sie dem sofortigen Beginn der digitalen Dienstleistung und dem damit verbundenen vorzeitigen Erlöschen des Widerrufsrechts zustimmen.", + "hint_subscription_withdrawal": "Bei Abonnements haben Verbraucher ein 14-tägiges Widerrufsrecht ab Vertragsschluss. Im Falle eines Widerrufs nach Leistungsbeginn behalten wir uns angemessenen Wertersatz für bereits erbrachte Leistungen vor.", + "open_withdrawal": "Widerrufsbelehrung anzeigen", + "modal_description": "So informieren wir über das Widerrufsrecht. Der volle Text gilt für deinen Kauf.", + "modal_loading": "Widerrufsbelehrung wird geladen…", + "modal_error": "Widerrufsbelehrung konnte nicht geladen werden." }, - "unlimited": "Unbegrenzt" - }, - "common.actions.close": "__STRING_NOT_TRANSLATED__", - "common.actions.loading": "__STRING_NOT_TRANSLATED__", - "common.active": "Active", - "common.add": "Hinzufügen", - "common.all": "All", - "common.anonymous": "Anonymous", - "common.back": "Zurück", - "common.cancel": "Cancel", - "common.center": "Zentrieren", - "common.clear": "Clear", - "common.close": "Close", - "common.copied": "Kopiert", - "common.copyFailed": "Kopieren fehlgeschlagen", - "common.disabled": "Disabled", - "common.done": "Done", - "common.enabled": "Enabled", - "common.error": "Something went wrong", - "common.left": "Links", - "common.loadMore": "Load more", - "common.loading": "Lädt...", - "common.next": "Weiter", - "common.processing": "Processing…", - "common.pullToRefresh": "__STRING_NOT_TRANSLATED__", - "common.refresh": "Refresh", - "common.refreshing": "__STRING_NOT_TRANSLATED__", - "common.releaseToRefresh": "__STRING_NOT_TRANSLATED__", - "common.reset": "Reset", - "common.retry": "Retry", - "common.right": "Rechts", - "common.save": "Save", - "common.saved": "Gespeichert", - "common.saving": "Saving...", - "common.select": "Select", - "common.selected": "Ausgewählt", - "common.ui.language_select": "__STRING_NOT_TRANSLATED__", - "common.ui.save": "Save", - "common.ui.saved": "__STRING_NOT_TRANSLATED__", - "complete_purchase": "__STRING_NOT_TRANSLATED__", - "consent.accessibility.banner_label": "__STRING_NOT_TRANSLATED__", - "consent.banner.accept": "__STRING_NOT_TRANSLATED__", - "consent.banner.body": "__STRING_NOT_TRANSLATED__", - "consent.banner.customize": "__STRING_NOT_TRANSLATED__", - "consent.banner.reject": "__STRING_NOT_TRANSLATED__", - "consent.banner.title": "__STRING_NOT_TRANSLATED__", - "consent.modal.accept_all": "__STRING_NOT_TRANSLATED__", - "consent.modal.analytics": "__STRING_NOT_TRANSLATED__", - "consent.modal.analytics_desc": "__STRING_NOT_TRANSLATED__", - "consent.modal.cancel": "__STRING_NOT_TRANSLATED__", - "consent.modal.description": "__STRING_NOT_TRANSLATED__", - "consent.modal.functional": "__STRING_NOT_TRANSLATED__", - "consent.modal.functional_desc": "__STRING_NOT_TRANSLATED__", - "consent.modal.reject_all": "__STRING_NOT_TRANSLATED__", - "consent.modal.required": "__STRING_NOT_TRANSLATED__", - "consent.modal.save": "__STRING_NOT_TRANSLATED__", - "consent.modal.title": "__STRING_NOT_TRANSLATED__", - "coupon.applied": "__STRING_NOT_TRANSLATED__", - "coupon.apply": "__STRING_NOT_TRANSLATED__", - "coupon.errors.generic": "__STRING_NOT_TRANSLATED__", - "coupon.errors.required": "__STRING_NOT_TRANSLATED__", - "coupon.errors.too_many_attempts": "__STRING_NOT_TRANSLATED__", - "coupon.fields.discount": "__STRING_NOT_TRANSLATED__", - "coupon.fields.expires": "__STRING_NOT_TRANSLATED__", - "coupon.fields.subtotal": "__STRING_NOT_TRANSLATED__", - "coupon.fields.tax": "__STRING_NOT_TRANSLATED__", - "coupon.fields.total": "__STRING_NOT_TRANSLATED__", - "coupon.legal_link": "__STRING_NOT_TRANSLATED__", - "coupon.legal_note": "__STRING_NOT_TRANSLATED__", - "coupon.placeholder": "__STRING_NOT_TRANSLATED__", - "coupon.remove": "__STRING_NOT_TRANSLATED__", - "coupon.summary_title": "__STRING_NOT_TRANSLATED__", - "ctaList.createEvent.button": "Go to event manager", - "currency.euro": "__STRING_NOT_TRANSLATED__", - "dataExports.actions.download": "Download", - "dataExports.actions.downloaded": "Download started.", - "dataExports.actions.refresh": "Refresh", - "dataExports.actions.request": "Request export", - "dataExports.actions.requested": "Export wird vorbereitet.", - "dataExports.actions.requesting": "Requesting...", - "dataExports.badges.includesMedia": "Raw media", - "dataExports.errors.download": "Download failed.", - "dataExports.errors.eventRequired": "Bitte wähle ein Event aus.", - "dataExports.errors.failed": "Export failed.", - "dataExports.errors.load": "Exports konnten nicht geladen werden.", - "dataExports.errors.request": "Export konnte nicht gestartet werden.", - "dataExports.fields.event": "Event", - "dataExports.fields.eventPlaceholder": "Choose event", - "dataExports.fields.includeMedia": "Include raw media", - "dataExports.fields.includeMediaHint": "Bigger ZIP; choose when needed.", - "dataExports.fields.scope": "Scope", - "dataExports.history.empty": "No exports yet.", - "dataExports.history.hint": "Latest 10 exports for your tenant and events.", - "dataExports.history.title": "Recent exports", - "dataExports.request.hint": "Export tenant data or a specific event archive.", - "dataExports.request.progress": "Export is running. This list refreshes automatically.", - "dataExports.request.title": "Export request", - "dataExports.scopes.event": "Event", - "dataExports.scopes.tenant": "Tenant", - "dataExports.title": "Data exports", - "delete.button": "__STRING_NOT_TRANSLATED__", - "delete.confirmation_hint": "__STRING_NOT_TRANSLATED__", - "delete.confirmation_label": "__STRING_NOT_TRANSLATED__", - "delete.confirmation_placeholder": "__STRING_NOT_TRANSLATED__", - "delete.description": "__STRING_NOT_TRANSLATED__", - "delete.title": "__STRING_NOT_TRANSLATED__", - "delete.warning_body": "__STRING_NOT_TRANSLATED__", - "delete.warning_title": "__STRING_NOT_TRANSLATED__", - "demo_page": { - "features": [ - { - "description": "Direkter Zugang zur Galerie ohne App oder Login – inklusive Offline-Puffer.", - "title": "Echter Gast-Flow" + "package_step": { + "title": "Paket wählen", + "subtitle": "Auswahl und Vergleich", + "description": "Wähle das passende Paket für deine Bedürfnisse", + "no_package_selected": "Kein Paket ausgewählt. Bitte wähle ein Paket aus der Paketübersicht.", + "alternatives_title": "Alternative Pakete", + "no_alternatives": "Keine weiteren Pakete in dieser Kategorie verfügbar." + }, + "auth_step": { + "title": "Konto", + "subtitle": "Anmelden oder Registrieren", + "description": "Erstellen Sie ein Konto oder melden Sie sich an, um mit dem Kauf fortzufahren.", + "already_logged_in_title": "Willkommen zurück!", + "already_logged_in_body": "Du bist bereits mit {{email}} angemeldet. Wir haben deine Daten übernommen, damit du ohne Umwege weitermachen kannst.", + "already_logged_in_hint": "Möchtest du ein anderes Konto nutzen? Melde dich kurz ab und starte den Checkout anschließend erneut.", + "next_to_payment": "Weiter zur Zahlung", + "switch_to_register": "Registrieren", + "switch_to_login": "Anmelden", + "continue_with_google": "Mit Google fortfahren", + "google_success_toast": "Mit Google angemeldet.", + "google_error_title": "Google-Anmeldung fehlgeschlagen", + "google_missing_package": "Bitte wähle zuerst ein Paket aus, bevor du Google Login nutzt.", + "google_missing_email": "Wir konnten deine Google-E-Mail-Adresse nicht abrufen.", + "google_error_fallback": "Die Google-Anmeldung konnte nicht abgeschlossen werden. Bitte versuche es erneut.", + "google_helper": "Schneller Login über Google – deine Daten werden ausschließlich zur Kontoeinrichtung verwendet.", + "google_helper_badge": "Warum Google?" + }, + "payment_step": { + "title": "Zahlung", + "subtitle": "Sichere Zahlung", + "description": "Schließen Sie Ihren Kauf sicher mit Ihrer gewählten Zahlungsmethode ab.", + "free_package_title": "Kostenloses Paket", + "free_package_desc": "Dieses Paket ist kostenlos. Wir aktivieren es direkt nach der Bestätigung.", + "activate_package": "Paket aktivieren", + "loading_payment": "Zahlungsdaten werden geladen...", + "secure_payment_desc": "Sichere Zahlung über Paddle.", + "paddle_intro": "Starte den Paddle-Checkout direkt hier im Wizard – ganz ohne Seitenwechsel.", + "guided_title": "Sichere Zahlung mit Paddle – unserem geprüften Partner", + "guided_body": "Wir führen dich Schritt für Schritt durch den Bezahlprozess. Paddle wickelt den Kauf als Merchant of Record ab und sorgt dafür, dass Steuern und Rechnungen automatisch korrekt erstellt werden.", + "paddle_partner": "Powered by Paddle", + "trust_secure": "Verschlüsselte Zahlung", + "trust_tax": "Automatische Steuerberechnung", + "trust_support": "Support in Minuten", + "guided_cta_hint": "Paddle wickelt deine Zahlung als Merchant of Record ab", + "toast_success": "Zahlung erfolgreich – wir bereiten alles vor.", + "paddle_preparing": "Paddle-Checkout wird vorbereitet…", + "paddle_overlay_ready": "Der Paddle-Checkout läuft jetzt in einem Overlay. Schließe die Zahlung dort ab und kehre anschließend hierher zurück.", + "paddle_ready": "Paddle-Checkout wurde in einem neuen Tab geöffnet. Schließe die Zahlung dort ab und kehre dann hierher zurück.", + "paddle_error": "Der Paddle-Checkout konnte nicht gestartet werden. Bitte versuche es erneut.", + "paddle_not_ready": "Der Paddle-Checkout ist noch nicht bereit. Bitte versuche es in einem Moment erneut.", + "paddle_not_configured": "Dieses Paket ist noch nicht für den Paddle-Checkout konfiguriert. Bitte kontaktiere den Support.", + "paddle_disclaimer": "Paddle wickelt Zahlungen als Merchant of Record ab. Steuern werden automatisch anhand deiner Rechnungsdaten berechnet.", + "pay_with_paddle": "Weiter mit Paddle", + "continue_after_payment": "Ich habe die Zahlung abgeschlossen", + "no_package_title": "Kein Paket ausgewählt", + "no_package_description": "Bitte wähle ein Paket, um zum Checkout zu gelangen.", + "payment_failed": "Zahlung fehlgeschlagen. ", + "error_card": "Kartenfehler aufgetreten.", + "error_validation": "Eingabedaten sind ungültig.", + "error_connection": "Verbindungsfehler. Bitte Internetverbindung prüfen.", + "error_server": "Serverfehler. Bitte später erneut versuchen.", + "error_auth": "Authentifizierungsfehler. Bitte Seite neu laden.", + "error_unknown": "Unbekannter Fehler aufgetreten.", + "processing": "Zahlung wird verarbeitet. Bitte warten...", + "needs_method": "Zahlungsmethode wird benötigt. Bitte Kartendaten überprüfen.", + "needs_confirm": "Zahlung muss bestätigt werden.", + "unexpected_status": "Unerwarteter Zahlungsstatus: {status}", + "processing_btn": "Verarbeitung...", + "pay_now": "Jetzt bezahlen (€{price})", + "network_error": "Netzwerkfehler beim Laden der Zahlungsdaten", + "auth_required": "Bitte melde dich an, um mit der Zahlung fortzufahren.", + "status_loading": "Zahlungsvorbereitung läuft…", + "status_ready": "Zahlungsformular bereit. Bitte gib deine Daten ein.", + "status_processing": "Zahlung mit {{provider}} wird verarbeitet…", + "status_success": "Zahlung bestätigt. Wir schließen den Kauf ab…", + "status_info_title": "Zahlungsstatus", + "status_processing_title": "Checkout wird geöffnet", + "status_ready_title": "Checkout geöffnet", + "status_error_title": "Zahlung fehlgeschlagen", + "status_success_title": "Zahlung abgeschlossen", + "status_retry": "Erneut versuchen", + "processing_title": "Zahlung wird verarbeitet...", + "processing_body": "Wir haben deine Zahlung erhalten und aktivieren dein Paket. Das kann einen Moment dauern.", + "processing_manual_hint": "Falls es zu lange dauert, pruefe den Status erneut oder lade die Seite neu.", + "processing_retry": "Status erneut pruefen", + "processing_refresh": "Seite neu laden", + "processing_confirmation": "Zahlung eingegangen. Wir schliessen deine Bestellung ab..." + }, + "confirmation_step": { + "title": "Bestätigung", + "subtitle": "Alles erledigt!", + "description": "Dein Paket ist aktiviert. Prüfe deine E-Mails für Details.", + "welcome": "Danke, dass du die Fotospiel App gewählt hast!", + "package_summary": "Dein Paket {name} ist jetzt freigeschaltet. Du kannst sofort mit der Einrichtung loslegen.", + "email_followup": "Wir haben dir gerade alle Details per E-Mail geschickt – inklusive Rechnung und den nächsten Schritten.", + "hero_badge": "Checkout abgeschlossen", + "hero_title": "Weiter geht's im Marketing-Dashboard", + "hero_body": "Wir haben deinen Zugang aktiviert und Paddle synchronisiert. Mit diesen Aufgaben startest du direkt durch.", + "hero_next": "Nutze den Button unten, um in deinen Kundenbereich zu wechseln – diese Übersicht kannst du jederzeit erneut öffnen.", + "status_title": "Bestellstatus", + "status_subtitle": "Wir schließen die Aktivierung ab und synchronisieren dein Konto.", + "status_state": { + "processing": "Wird bestätigt", + "completed": "Bestätigt", + "failed": "Aktion nötig" }, - { - "description": "Zeige neue Uploads sofort auf jedem Bildschirm über die Live-Show.", - "title": "Live-Slideshow ready" + "status_body_processing": "Wir synchronisieren dein Konto mit Paddle. Das kann einen Moment dauern.", + "status_body_completed": "Alles ist bereit. Dein Konto ist vollständig freigeschaltet.", + "status_body_failed": "Wir konnten den Kauf noch nicht bestätigen. Bitte prüfe den Status erneut oder kontaktiere den Support.", + "status_manual_hint": "Dauert es zu lange? Du kannst den Status erneut prüfen oder die Seite aktualisieren.", + "status_retry": "Status prüfen", + "status_refresh": "Seite aktualisieren", + "status_items": { + "payment": { + "title": "Zahlung bestätigt", + "body": "Deine Paddle-Zahlung war erfolgreich." + }, + "email": { + "title": "Beleg versendet", + "body": "Die Bestätigungsmail ist unterwegs." + }, + "access": { + "title": "Zugang freigeschaltet", + "body": "Dashboard und PWA stehen bereit." + } }, - { - "description": "Teste Freigabemodus, Reaktionen und Favoriten – alles DSGVO-konform.", - "title": "Moderation inklusive" - } - ], - "iframeNote": "Demo-Uploads werden regelmäßig zurückgesetzt – nutze den QR-Code im Frame oder öffne die Demo im neuen Tab.", - "openFull": "Demo im neuen Tab öffnen", - "primaryCta": "Pakete entdecken", - "secondaryCta": "Zum Leitfaden", - "subtitle": "Scanne den QR-Code, lade Fotos hoch und erlebe die Fotospiel-Galerie genau so, wie deine Gäste sie sehen – komplett im Browser.", - "title": "Jetzt ausprobieren" + "onboarding_title": "Vorschau auf deine Onboarding-Schritte", + "onboarding_subtitle": "Diese Aufgaben erwarten dich direkt nach dem Login.", + "onboarding_badge": "Nächste Schritte", + "onboarding_items": { + "event": { + "title": "Erstes Event anlegen", + "body": "Titel, Datum und Highlights festlegen – alles bleibt anpassbar." + }, + "invites": { + "title": "QR-Einladungen aktivieren", + "body": "Teile deinen Event-QR-Code oder den Shortcut-Link mit Gästen." + }, + "tasks": { + "title": "Fotoaufgaben planen", + "body": "Nutze Vorlagen oder füge eigene kreative Aufgaben hinzu." + } + }, + "control_center_title": "Event Control Center (PWA)", + "control_center_body": "Alle Live-Aufgaben erledigst du später im Control Center – optimiert für Mobilgeräte und offlinefähig.", + "control_center_hint": "Installiere die PWA direkt aus dem Dashboard.", + "package_title": "Dein Paket", + "package_body": "Dein Paket ist aktiviert und sofort einsatzbereit.", + "package_label": "Aktiviertes Paket", + "actions_title": "Nächste Schritte", + "actions_body": "Zum Adminbereich wechseln oder Profildaten prüfen.", + "package_activated": "Ihr Paket '{name}' ist aktiviert.", + "email_sent": "Wir haben Ihnen eine Bestätigungs-E-Mail gesendet.", + "open_profile": "Profil öffnen", + "to_admin": "Zum Admin-Bereich" + }, + "confirmation": { + "welcome": "Danke, dass du die Fotospiel App gewählt hast!", + "package_activated": "Dein Paket {name} ist jetzt freigeschaltet.", + "email_sent": "Wir haben dir alle Details per E-Mail geschickt.", + "open_profile": "Profil öffnen", + "to_admin": "Zum Admin-Bereich" + }, + "auth": { + "already_logged_in": "Du bist bereits mit {{email}} angemeldet.", + "switch_to_register": "Registrieren", + "switch_to_login": "Anmelden", + "continue_with_google": "Mit Google fortfahren", + "google_success_toast": "Mit Google angemeldet.", + "google_error_title": "Google-Anmeldung fehlgeschlagen", + "google_missing_package": "Bitte wähle zuerst ein Paket aus, bevor du Google Login nutzt.", + "google_missing_email": "Wir konnten deine Google-E-Mail-Adresse nicht abrufen.", + "google_error_fallback": "Die Google-Anmeldung konnte nicht abgeschlossen werden. Bitte versuche es erneut." + } }, - "eventAccess.loading.subtitle": "__STRING_NOT_TRANSLATED__", - "eventAccess.loading.title": "__STRING_NOT_TRANSLATED__", - "eventForm.actions.create": "Create event", - "eventForm.actions.saveDraft": "Save as draft", - "eventForm.actions.saving": "Saving…", - "eventForm.actions.update": "Update event", - "eventForm.errors.saveFailed": "Event could not be saved.", - "eventForm.fields.date.label": "Date & time", - "eventForm.fields.description.label": "Optional details", - "eventForm.fields.description.placeholder": "Description", - "eventForm.fields.location.label": "Location", - "eventForm.fields.location.placeholder": "Location", - "eventForm.fields.name.fallback": "Event", - "eventForm.fields.name.label": "Event name", - "eventForm.fields.name.placeholder": "e.g. Summer Party 2025", - "eventForm.fields.publish.help": "Enable if guests should see the event right away. You can change the status later.", - "eventForm.fields.publish.label": "Publish immediately", - "eventForm.fields.tasksMode.helpOff": "Task mode is off: guests only see the photo feed.", - "eventForm.fields.tasksMode.helpOn": "Guests can see tasks, challenges and achievements.", - "eventForm.fields.tasksMode.label": "Tasks & challenges", - "eventForm.fields.type.empty": "No event types available yet. Please add one in the admin area.", - "eventForm.fields.type.label": "Event type", - "eventForm.fields.type.loading": "Loading event types…", - "eventForm.fields.type.placeholder": "Select event type", - "eventForm.fields.uploadVisibility.helpOff": "Uploads werden zunächst geprüft und erscheinen nach Freigabe.", - "eventForm.fields.uploadVisibility.helpOn": "Neue Gast-Uploads erscheinen sofort in der Galerie (Security-Scan läuft im Hintergrund).", - "eventForm.fields.uploadVisibility.label": "Uploads visible immediately", - "eventForm.titles.create": "Create event", - "eventForm.titles.edit": "Edit event", - "eventSetup.actions.dashboard.button": "Open dashboard", - "eventSetup.actions.events.button": "Open event list", - "eventSetup.cta.billing": "Open billing", - "eventSetup.cta.button": "Create event", - "eventSetup.cta.description": "You're switching to the event manager. Assign tasks, invite members, and test the gallery. You can always return to the welcome journey.", - "eventSetup.cta.heading": "Ready for your first event?", - "eventSetup.layout.eyebrow": "Step 4", - "eventSetup.layout.subtitle": "Fill in a few details, invite co-hosts, and open your guest gallery for the big day.", - "eventSetup.layout.title": "Prepare your first event", - "eventSetup.step.description": "We guide you through name, date, mood, and tasks. Afterwards you can moderate photos and support guests live.", - "eventSetup.step.title": "Event setup in minutes", - "eventSetup.tiles.launch.copy": "Create QR codes, test the gallery, and align the run of show.", - "eventSetup.tiles.launch.title": "Prepare go-live", - "eventSetup.tiles.story.copy": "Pick imagery, colours, and emotion cards for your event.", - "eventSetup.tiles.story.title": "Story & mood", - "eventSetup.tiles.team.copy": "Invite moderators or photographers and assign roles.", - "eventSetup.tiles.team.title": "Organise your team", - "events.actions.create": "Create New Event", - "events.actions.edit": "Bearbeiten", - "events.actions.open": "Öffnen", - "events.actions.settings": "Event settings", - "events.branding.accent": "Accent", - "events.branding.bodyFont": "Body Font", - "events.branding.bodyFontPlaceholder": "SF Pro Text", - "events.branding.colors": "Colors", - "events.branding.fontPicker": "Select font", - "events.branding.fonts": "Fonts", - "events.branding.headingFont": "Headline Font", - "events.branding.headingFontPlaceholder": "SF Pro Display", - "events.branding.logo": "Logo", - "events.branding.logoAlt": "Logo", - "events.branding.logoHint": "Upload a logo to brand guest invites and QR posters.", - "events.branding.logoTooLarge": "Logo must be under 1 MB.", - "events.branding.noFonts": "Keine Schriftarten gefunden.", - "events.branding.previewSubtitle": "Aktuelle Farben & Schriften", - "events.branding.previewTitle": "Guest App Preview", - "events.branding.primary": "Primary", - "events.branding.removeLogo": "Remove", - "events.branding.replaceLogo": "Replace logo", - "events.branding.reset": "Reset to Defaults", - "events.branding.save": "Save Branding", - "events.branding.saveSuccess": "Branding gespeichert", - "events.branding.saving": "Saving...", - "events.branding.titleShort": "Branding", - "events.branding.uploadLogo": "Upload logo (max. 1 MB)", - "events.detail.active": "Aktiv", - "events.detail.dateTbd": "Date tbd", - "events.detail.kpi.guests": "Guests Registered", - "events.detail.kpi.photos": "Images Uploaded", - "events.detail.kpi.tasks": "Active Tasks", - "events.detail.locationPlaceholder": "Location", - "events.detail.managementTitle": "Event Management", - "events.detail.pickEvent": "Event wählen", - "events.errors.archiveFailed": "Archivierung fehlgeschlagen.", - "events.errors.checkoutFailed": "Add-on checkout failed.", - "events.errors.checkoutMissing": "Checkout could not be started.", - "events.errors.loadFailed": "Branding konnte nicht geladen werden.", - "events.errors.missingSlug": "No event selected.", - "events.errors.missingType": "Event type fehlt. Speichere das Event erneut im Admin.", - "events.errors.notFoundBody": "Kehre zur Eventliste zurück und wähle dort ein Event aus.", - "events.errors.notFoundTitle": "Event nicht gefunden", - "events.errors.saveFailed": "Branding konnte nicht gespeichert werden.", - "events.errors.toggleFailed": "Status konnte nicht angepasst werden.", - "events.eventStartConsent.cancel": "Cancel", - "events.eventStartConsent.checkboxWaiver": "I expressly request that the digital service begins now and understand my right of withdrawal expires once the contract has been fully performed.", - "events.eventStartConsent.confirm": "Create event", - "events.eventStartConsent.description": "Please confirm the immediate start of the digital service before creating your first event.", - "events.eventStartConsent.errorWaiver": "Please confirm the immediate start of the digital service and the early expiry of the right of withdrawal.", - "events.eventStartConsent.title": "Before your first event", - "events.feedback.genericError": "Feedback konnte nicht gesendet werden.", - "events.feedback.negative": "Brauch(t)e Unterstützung", - "events.feedback.neutral": "In Ordnung", - "events.feedback.positive": "War super", - "events.feedback.submitted": "Danke!", - "events.legalConsent.cancel": "Cancel", - "events.legalConsent.checkboxTerms": "I have read and accept the Terms & Conditions, Privacy Policy, and Right of Withdrawal.", - "events.legalConsent.checkboxWaiver": "I expressly request immediate provision of the digital service and understand my right of withdrawal expires once fulfilled.", - "events.legalConsent.confirm": "Continue to checkout", - "events.legalConsent.description": "Please confirm the legal notes before buying an add-on.", - "events.legalConsent.errorTerms": "Please confirm the terms.", - "events.legalConsent.errorWaiver": "Please confirm the waiver.", - "events.legalConsent.title": "Before purchase", - "events.list.actions.open": "Open event", - "events.list.dashboardTitle": "All Events Dashboard", - "events.list.empty.description": "Starte jetzt mit deinem ersten Event.", - "events.list.empty.filtered": "No events match this filter.", - "events.list.empty.filteredHint": "Try a different status or clear your search.", - "events.list.empty.title": "Noch kein Event angelegt", - "events.list.filters.all": "All", - "events.list.filters.draft": "Draft", - "events.list.filters.past": "Past", - "events.list.filters.upcoming": "Upcoming", - "events.list.search": "Search events", - "events.list.stats.guests": "Guests", - "events.list.stats.photos": "Photos", - "events.list.stats.tasks": "Tasks", - "events.members.admin": "Admin", - "events.members.clearFilters": "Clear filters", - "events.members.confirmRemove": "Mitglied entfernen?", - "events.members.copyEmail": "E-Mail kopiert", - "events.members.copyEmailFailed": "Kopieren nicht möglich", - "events.members.copyEmailLabel": "Copy email", - "events.members.email": "Email", - "events.members.emailInvalid": "Please enter a valid email address.", - "events.members.emailPlaceholder": "alex@example.com", - "events.members.emptyBody": "Send the first invite so helpers can access the event.", - "events.members.emptyFilteredBody": "Adjust your search or filters to see members.", - "events.members.emptyFilteredTitle": "No matching members", - "events.members.emptyTitle": "Invite your team", - "events.members.fallbackName": "Guest", - "events.members.filters.roleAdmin": "Admins", - "events.members.filters.roleAll": "All roles", - "events.members.filters.roleLabel": "Role", - "events.members.filters.roleMember": "Members", - "events.members.filters.statusActive": "Active", - "events.members.filters.statusAll": "All statuses", - "events.members.filters.statusInvited": "Invited", - "events.members.filters.statusLabel": "Status", - "events.members.filters.statusPending": "Pending", - "events.members.invite": "Send Invite", - "events.members.inviteFailed": "Einladung fehlgeschlagen.", - "events.members.inviteSuccess": "Einladung gesendet", - "events.members.inviteTitle": "Invite Member", - "events.members.listTitle": "Team & Guests", - "events.members.member": "Member", - "events.members.name": "Name", - "events.members.namePlaceholder": "Alex Example", - "events.members.remove": "Remove", - "events.members.removeFailed": "Mitglied konnte nicht entfernt werden.", - "events.members.removeHint": "Dieses Mitglied verliert den Zugang zum Event.", - "events.members.removeSuccess": "Mitglied entfernt", - "events.members.role": "Role", - "events.members.roleAdmin": "Admin", - "events.members.roleMember": "Member", - "events.members.roles.guest": "Guest", - "events.members.search": "Search members", - "events.members.statuses.active": "Active", - "events.members.statuses.invited": "Invited", - "events.members.statuses.pending": "Pending", - "events.members.statuses.unknown": "Unknown", - "events.members.title": "Guest Management", - "events.placeholders.untitled": "Unbenanntes Event", - "events.qr.align": "Align", - "events.qr.background": "Hintergrund", - "events.qr.backgroundNote": "Diese Presets sind für A4 Hochformat. Spiegelung erfolgt automatisch bei Tischkarten.", - "events.qr.backgroundPicker": "Hintergrund auswählen ({{formatLabel}})", - "events.qr.backgroundPickerFoldable": "Hintergrund für A5 (Gradient/Farbe)", - "events.qr.bottomNote": "Unterer Hinweistext", - "events.qr.colors": "Vollfarbe", - "events.qr.createFailed": "Link konnte nicht erstellt werden.", - "events.qr.createLink": "Neuen QR-Link erstellen", - "events.qr.created": "Neuer QR-Link erstellt", - "events.qr.customize": "Layout anpassen", - "events.qr.defaultFont": "Standard", - "events.qr.description": "Scan to access the event guest app.", - "events.qr.download": "Download", - "events.qr.downloadStarted": "Download gestartet", - "events.qr.expiresAt": "Valid until {{date}}", - "events.qr.exportFailed": "Export fehlgeschlagen", - "events.qr.exportPdf": "Export PDF", - "events.qr.exportPng": "Export PNG", - "events.qr.foldableBackgroundNote": "Für A5 Tischkarten bitte Gradient oder Vollfarbe wählen.", - "events.qr.fontColor": "Schriftfarbe", - "events.qr.fontFamily": "Font Family", - "events.qr.fontSize": "Font Size (px)", - "events.qr.format.poster": "A4 Poster", - "events.qr.format.posterSubtitle": "Hochformat für Aushänge", - "events.qr.format.table": "A5 Tischkarte (faltbar)", - "events.qr.format.tableSubtitle": "Quer, doppelt & gespiegelt", - "events.qr.formatLabel.foldable": "{{paper}} {{orientation}} (double A5/mirrored)", - "events.qr.formatLabel.standard": "{{paper}} {{orientation}}", - "events.qr.gradients": "Gradienten", - "events.qr.headline": "Headline", - "events.qr.heroTitle": "Entrance QR Code", - "events.qr.instructions": "Anleitung", - "events.qr.instructionsPlaceholder": "Schritt hinzufügen", - "events.qr.layoutControls": "Layout & Schrift", - "events.qr.layouts": "Print Layouts", - "events.qr.lineHeight": "Line Height", - "events.qr.missing": "Kein QR-Link vorhanden", - "events.qr.mobileLinkLabel": "Mobile link", - "events.qr.noExpiry": "No expiry configured", - "events.qr.orientation.landscape": "Landscape", - "events.qr.orientation.portrait": "Portrait", - "events.qr.positionX": "X (%)", - "events.qr.positionY": "Y (%)", - "events.qr.preview": "Vorschau", - "events.qr.previewAlt": "QR layout preview", - "events.qr.previewHeadline": "Event QR", - "events.qr.qrAlt": "QR code", - "events.qr.qr_code_label": "QR‑Code", - "events.qr.share": "Share", - "events.qr.shareFailed": "Konnte Link nicht kopieren", - "events.qr.shareSuccess": "Link geteilt", - "events.qr.size": "Größe (%)", - "events.qr.step": "Schritt", - "events.qr.step1": "Schritt 1: Format wählen", - "events.qr.subtitle": "Subtitle", - "events.qr.text": "Text", - "events.qr.textFields": "Texte", - "events.qr.textStep": "Texte & Hinweise", - "events.qr.title": "QR Code & Print Layouts", - "events.qr.width": "Breite (%)", - "events.quick.branding": "Branding & Theme", - "events.quick.guestMessages": "Guest messages", - "events.quick.guests": "Guest Management", - "events.quick.images": "Image Management", - "events.quick.liveShow": "Live Show queue", - "events.quick.liveShowSettings": "Live Show settings", - "events.quick.photobooth": "Photobooth", - "events.quick.qr": "QR Code Layouts", - "events.quick.recap": "Recap & Archive", - "events.quick.tasks": "Tasks & Checklists", - "events.recap.archive": "Archivieren", - "events.recap.archiveCopy": "Schließt die Galerie und markiert das Event als abgeschlossen.", - "events.recap.archiveTitle": "Event archivieren", - "events.recap.archivedSuccess": "Event archiviert. Galerie ist geschlossen.", - "events.recap.badge": "Nachbereitung", - "events.recap.closeGallery": "Galerie schließen", - "events.recap.copy": "Kopieren", - "events.recap.copyError": "Link konnte nicht kopiert werden.", - "events.recap.copySuccess": "Link kopiert", - "events.recap.downloadQr": "QR herunterladen", - "events.recap.downloads": "Downloads erlauben", - "events.recap.extendGallery": "Galerie verlängern", - "events.recap.feedbackTitle": "Wie lief das Event?", - "events.recap.galleryClosed": "Galerie geschlossen", - "events.recap.galleryCounts": "{{photos}} Fotos, {{pending}} offen, {{likes}} Likes", - "events.recap.galleryOpen": "Galerie geöffnet", - "events.recap.galleryTitle": "Galerie-Status", - "events.recap.moderate": "Uploads ansehen", - "events.recap.noPublicUrl": "Kein Gäste-Link gesetzt. Lege den öffentlichen Link im Event-Setup fest.", - "events.recap.openGallery": "Galerie öffnen", - "events.recap.settingsTitle": "Gast-Einstellungen", - "events.recap.share": "Teilen", - "events.recap.shareGuests": "Gäste-Galerie teilen", - "events.recap.shareLink": "Gäste-Link", - "events.recap.sharing": "Sharing erlauben", - "events.recap.subtitle": "Abschluss, Export und Galerie-Laufzeit verwalten.", - "events.sections.addons.description": "Zusätzliche Kontingente freischalten.", - "events.sections.addons.title": "Add-ons & Upgrades", - "events.stats.likes": "Likes", - "events.stats.pending": "Offen", - "events.stats.uploads": "Uploads", - "events.status.draft": "Draft", - "events.status.published": "Live", - "events.success.addonApplied": "Add-on angewendet. Limits aktualisieren sich in Kürze.", - "events.tasks.actions": "Aktionen", - "events.tasks.add": "Add", - "events.tasks.addTask": "Aufgabe hinzufügen", - "events.tasks.addTaskHint": "Erstelle eine neue Aufgabe für dieses Event.", - "events.tasks.allEmotions": "All", - "events.tasks.assigned": "Task hinzugefügt", - "events.tasks.bulkAdd": "Bulk add", - "events.tasks.bulkHint": "One task per line. These will be created and added to the event.", - "events.tasks.bulkPlaceholder": "e.g.\nBride & groom portrait\nGroup photo main guests", - "events.tasks.collectionsEmpty": "Keine Pakete vorhanden.", - "events.tasks.count_one": "{{count}} Tasks", - "events.tasks.count_other": "{{count}} Tasks", - "events.tasks.created": "Aufgabe gespeichert", - "events.tasks.customEmotion": "Custom emotion", - "events.tasks.description": "Beschreibung", - "events.tasks.descriptionPlaceholder": "Optionale Hinweise", - "events.tasks.disabledBody": "Guests see only the photo feed. Enable tasks in the event settings to show them again.", - "events.tasks.disabledTitle": "Task mode is off for this event", - "events.tasks.emotion": "Emotion", - "events.tasks.emotionColor": "Farbe", - "events.tasks.emotionFilter": "Emotion filter", - "events.tasks.emotionName": "Name", - "events.tasks.emotionNamePlaceholder": "z.B. Joy", - "events.tasks.emotionNone": "Keine", - "events.tasks.emotionRemoved": "Emotion entfernt", - "events.tasks.emotionSaved": "Emotion gespeichert", - "events.tasks.emptyActionPack": "Import pack", - "events.tasks.emptyActionTask": "Add task", - "events.tasks.emptyBody": "Create tasks or import a pack for your event.", - "events.tasks.emptyTitle": "No tasks yet", - "events.tasks.hideCollections": "Hide collections", - "events.tasks.hideLibrary": "Hide library", - "events.tasks.import": "Aufgabenpaket importieren", - "events.tasks.importHint": "Nutze vordefinierte Pakete für deinen Event-Typ.", - "events.tasks.imported": "Aufgabenpaket importiert", - "events.tasks.library": "Weitere Aufgaben", - "events.tasks.libraryEmpty": "Keine weiteren Aufgaben verfügbar.", - "events.tasks.manageEmotions": "Manage emotions", - "events.tasks.manageEmotionsHint": "Filter and keep your taxonomy tidy.", - "events.tasks.pickEvent": "Pick an event to manage tasks", - "events.tasks.quickNav": "Quick jump", - "events.tasks.remove": "Remove task", - "events.tasks.removeBody": "This will remove \"{{title}}\" from the event.", - "events.tasks.removeBodyFallback": "This will remove the task from the event.", - "events.tasks.removeTitle": "Remove task?", - "events.tasks.removed": "Aufgabe entfernt", - "events.tasks.saveEmotion": "Emotion speichern", - "events.tasks.saveTask": "Aufgabe speichern", - "events.tasks.search": "Search tasks", - "events.tasks.showCollections": "Show all", - "events.tasks.summary.assigned": "Assigned", - "events.tasks.summary.collections": "Collections", - "events.tasks.summary.emotions": "Emotions", - "events.tasks.summary.library": "Library", - "events.tasks.title": "Tasks & Checklists", - "events.tasks.titleLabel": "Titel", - "events.tasks.titlePlaceholder": "z.B. Erstes Gruppenfoto", - "events.tasks.updateFailed": "Task konnte nicht zugewiesen werden.", - "events.tasks.viewAllLibrary": "View all", - "events.watermark.errors.fileTooLarge": "Wasserzeichen muss kleiner als 3 MB sein.", - "events.watermark.errors.noAsset": "Bitte lade zuerst ein Wasserzeichen hoch.", - "events.watermark.lockedBranding": "Custom-Wasserzeichen ist im aktuellen Paket gesperrt. Standard wird genutzt.", - "events.watermark.lockedDisabled": "Kein Wasserzeichen in diesem Paket.", - "events.watermark.mode": "Modus", - "events.watermark.modeBase": "Basis", - "events.watermark.modeCustom": "Eigenes Wasserzeichen", - "events.watermark.modeOff": "Deaktiviert", - "events.watermark.offset": "Feinjustierung", - "events.watermark.offsetX": "X-Achse", - "events.watermark.offsetY": "Y-Achse", - "events.watermark.opacity": "Transparenz", - "events.watermark.padding": "Abstand zum Rand", - "events.watermark.placement": "Position & Größe", - "events.watermark.previewTitle": "Watermark Preview", - "events.watermark.replace": "Wasserzeichen ersetzen", - "events.watermark.size": "Größe", - "events.watermark.tab": "Wasserzeichen", - "events.watermark.title": "Wasserzeichen", - "events.watermark.upload": "Wasserzeichen hochladen", - "events.watermark.uploadCta": "PNG/SVG/JPG (max. 3 MB)", - "events.watermark.uploadHint": "PNG mit transparenter Fläche empfohlen.", - "export.button": "__STRING_NOT_TRANSLATED__", - "export.cooldown": "__STRING_NOT_TRANSLATED__", - "export.description": "__STRING_NOT_TRANSLATED__", - "export.download": "__STRING_NOT_TRANSLATED__", - "export.empty": "__STRING_NOT_TRANSLATED__", - "export.failed_reason": "__STRING_NOT_TRANSLATED__", - "export.pending_alert_body": "__STRING_NOT_TRANSLATED__", - "export.pending_alert_title": "__STRING_NOT_TRANSLATED__", - "export.table.action": "__STRING_NOT_TRANSLATED__", - "export.table.created": "__STRING_NOT_TRANSLATED__", - "export.table.expires": "__STRING_NOT_TRANSLATED__", - "export.table.size": "__STRING_NOT_TRANSLATED__", - "export.table.status": "__STRING_NOT_TRANSLATED__", - "export.title": "__STRING_NOT_TRANSLATED__", - "footer.company": "S.E.B. Fotografie", - "footer.rights_reserved": "Alle Rechte vorbehalten", - "footer.social": "Social", - "galleryPage.badge.newPhotos_one": "__STRING_NOT_TRANSLATED__", - "galleryPage.badge.newPhotos_other": "__STRING_NOT_TRANSLATED__", - "galleryPage.eventNotFound": "Event nicht gefunden.", - "galleryPage.loading": "Lade…", - "galleryPage.loadingEvent": "Lade Event-Info...", - "galleryPage.photo.alt": "__STRING_NOT_TRANSLATED__", - "galleryPage.photo.altTaskSuffix": "__STRING_NOT_TRANSLATED__", - "galleryPage.photo.anonymous": "Gast", - "galleryPage.photo.justNow": "Gerade eben", - "galleryPage.photo.likeAria": "Foto liken", - "galleryPage.photo.shareAria": "Foto teilen", - "galleryPage.subtitle": "__STRING_NOT_TRANSLATED__", - "galleryPage.title": "Galerie", - "galleryPublic.download": "__STRING_NOT_TRANSLATED__", - "galleryPublic.emptyDescription": "__STRING_NOT_TRANSLATED__", - "galleryPublic.emptyTitle": "__STRING_NOT_TRANSLATED__", - "galleryPublic.expiredDescription": "__STRING_NOT_TRANSLATED__", - "galleryPublic.expiredTitle": "__STRING_NOT_TRANSLATED__", - "galleryPublic.lightboxGuestFallback": "__STRING_NOT_TRANSLATED__", - "galleryPublic.loadError": "__STRING_NOT_TRANSLATED__", - "galleryPublic.loadMore": "__STRING_NOT_TRANSLATED__", - "galleryPublic.loading": "__STRING_NOT_TRANSLATED__", - "galleryPublic.loadingMore": "__STRING_NOT_TRANSLATED__", - "galleryPublic.title": "__STRING_NOT_TRANSLATED__", - "gift.accept_terms": "__STRING_NOT_TRANSLATED__", - "gift.accept_terms_required": "__STRING_NOT_TRANSLATED__", - "gift.badge": "__STRING_NOT_TRANSLATED__", - "gift.card_body": "__STRING_NOT_TRANSLATED__", - "gift.card_subline": "__STRING_NOT_TRANSLATED__", - "gift.cta": "__STRING_NOT_TRANSLATED__", - "gift.error_checkout": "__STRING_NOT_TRANSLATED__", - "gift.error_purchaser_email": "Please enter a valid email.", - "gift.error_recipient_email": "Please enter a valid email.", - "gift.error_select_tier": "__STRING_NOT_TRANSLATED__", - "gift.form_subtitle": "__STRING_NOT_TRANSLATED__", - "gift.form_title": "__STRING_NOT_TRANSLATED__", - "gift.headline": "__STRING_NOT_TRANSLATED__", - "gift.lookup_cta": "__STRING_NOT_TRANSLATED__", - "gift.lookup_label": "__STRING_NOT_TRANSLATED__", - "gift.lookup_not_found": "__STRING_NOT_TRANSLATED__", - "gift.lookup_result_code": "__STRING_NOT_TRANSLATED__", - "gift.lookup_result_expires": "__STRING_NOT_TRANSLATED__", - "gift.lookup_result_value": "__STRING_NOT_TRANSLATED__", - "gift.lookup_subtitle": "__STRING_NOT_TRANSLATED__", - "gift.lookup_title": "Gutscheinstatus", - "gift.message": "__STRING_NOT_TRANSLATED__", - "gift.message_placeholder": "__STRING_NOT_TRANSLATED__", - "gift.not_available": "__STRING_NOT_TRANSLATED__", - "gift.processing": "__STRING_NOT_TRANSLATED__", - "gift.purchaser_email": "__STRING_NOT_TRANSLATED__", - "gift.recipient_email": "__STRING_NOT_TRANSLATED__", - "gift.recipient_name": "__STRING_NOT_TRANSLATED__", - "gift.recipient_name_placeholder": "__STRING_NOT_TRANSLATED__", - "gift.subline": "__STRING_NOT_TRANSLATED__", - "gift.title": "__STRING_NOT_TRANSLATED__", - "gift.too_many_attempts": "__STRING_NOT_TRANSLATED__", - "gift.validity": "__STRING_NOT_TRANSLATED__", - "gift.withdrawal.body": "__STRING_NOT_TRANSLATED__", - "gift.withdrawal.link": "Widerrufsbelehrung öffnen", - "gift.withdrawal.title": "__STRING_NOT_TRANSLATED__", - "guestMessages.audience.all": "All guests", - "guestMessages.audience.guest": "Specific guest", - "guestMessages.composeTitle": "Send a message", - "guestMessages.emptyAction": "Compose message", - "guestMessages.emptyBody": "Share a quick reminder or highlight to keep guests engaged.", - "guestMessages.emptyTitle": "Send your first guest message", - "guestMessages.errorLoad": "Messages could not be loaded.", - "guestMessages.errorSend": "Message could not be sent.", - "guestMessages.form.audience": "Audience", - "guestMessages.form.audienceAll": "All guests", - "guestMessages.form.audienceGuest": "Specific guest (name or device)", - "guestMessages.form.cta": "CTA (optional)", - "guestMessages.form.ctaError": "CTA label and link are required together.", - "guestMessages.form.ctaHint": "Both fields are required to add a button.", - "guestMessages.form.ctaLabel": "Button label", - "guestMessages.form.ctaUrl": "https://your-link.com", - "guestMessages.form.expiresIn": "Expires in (minutes)", - "guestMessages.form.expiresPlaceholder": "60", - "guestMessages.form.guestIdentifier": "Guest name or device ID", - "guestMessages.form.guestPlaceholder": "e.g., Alex or device token", - "guestMessages.form.message": "Message", - "guestMessages.form.messagePlaceholder": "Write a short note for your guests.", - "guestMessages.form.priority": "Priority", - "guestMessages.form.priorityValue": "Priority {{value}}", - "guestMessages.form.send": "Send notification", - "guestMessages.form.title": "Title", - "guestMessages.form.titlePlaceholder": "Gallery reminder, upload nudge, ...", - "guestMessages.form.validation": "Add a title, message, and target guest when needed.", - "guestMessages.history.noBody": "No body provided.", - "guestMessages.history.untitled": "Untitled", - "guestMessages.historyTitle": "Recent messages", - "guestMessages.sendSuccess": "Notification sent to guests.", - "guestMessages.subtitle": "Send push messages to guests", - "guestMessages.title": "Guest messages", - "header.active": "Active", - "header.appName": "Event Admin", - "header.appearance": "Darstellung", - "header.appearance_dark": "Dunkel", - "header.appearance_light": "Hell", - "header.blog": "Blog", - "header.clearSelection": "Clear selection", - "header.contact": "Kontakt", - "header.createEvent": "Create event", - "header.cta": "Jetzt ausprobieren", - "header.empty": "Create your first event to get started", - "header.eventSwitcher": "Choose an event", - "header.helpGallery": "__STRING_NOT_TRANSLATED__", - "header.how_it_works": "So geht's", - "header.language": "Sprache", - "header.loading": "__STRING_NOT_TRANSLATED__", - "header.login": "__STRING_NOT_TRANSLATED__", - "header.noDate": "Date tbd", - "header.noEventsBody": "Start an event to access tasks, uploads, QR posters and more.", - "header.noEventsTitle": "Create your first event", - "header.notifications.allRead": "Alles gelesen", - "header.notifications.badge.new": "Neu", - "header.notifications.badgeLabel": "Badge-Fortschritt", - "header.notifications.close": "Benachrichtigungen schließen", - "header.notifications.dismiss": "Ausblenden", - "header.notifications.empty": "Gerade gibt es keine neuen Hinweise.", - "header.notifications.emptyStatus": "Keine Upload-Hinweise oder Wartungen aktiv.", - "header.notifications.emptyUnread": "Du bist auf dem neuesten Stand!", - "header.notifications.lastSync": "Zuletzt aktualisiert", - "header.notifications.markRead": "Als gelesen markieren", - "header.notifications.never": "Noch keine Aktualisierung", - "header.notifications.offline": "Offline", - "header.notifications.open": "Benachrichtigungen anzeigen", - "header.notifications.pendingCta": "Details", - "header.notifications.pendingLabel": "Uploads in Prüfung", - "header.notifications.pushActive": "Push aktiv", - "header.notifications.pushDenied": "Browser blockiert Benachrichtigungen", - "header.notifications.pushDisable": "Deaktivieren", - "header.notifications.pushEnable": "Aktivieren", - "header.notifications.pushInactive": "Push deaktiviert", - "header.notifications.pushLoading": "…", - "header.notifications.pushUnsupported": "Push wird nicht unterstützt", - "header.notifications.queueLabel": "Upload-Warteschlange (offline)", - "header.notifications.refresh": "Aktualisieren", - "header.notifications.scope.all": "Alle", - "header.notifications.scope.general": "Allgemein", - "header.notifications.scope.tips": "Tipps & Achievements", - "header.notifications.tabAll": "Alle", - "header.notifications.tabStatus": "Uploads/Status", - "header.notifications.tabUnread": "Neu", - "header.notifications.tasksCta": "Weiter", - "header.notifications.title": "Benachrichtigungen", - "header.notifications.unread_one": "{{count}} neu", - "header.notifications.unread_other": "{{count}} neu", - "header.occasions.birthday": "Geburtstage", - "header.occasions.confirmation": "Konfirmation/Jugendweihe", - "header.occasions.corporate": "Firmenfeiern", - "header.occasions.label": "Anlässe", - "header.occasions.wedding": "Hochzeiten", - "header.packages": "Pakete", - "header.quickQr": "Quick QR", - "header.selectEvent": "Select an event to continue", - "header.stats.online": "__STRING_NOT_TRANSLATED__", - "header.stats.tasksSolved": "__STRING_NOT_TRANSLATED__", - "header.utility": "Darstellung und Sprache öffnen", - "help.article.back": "__STRING_NOT_TRANSLATED__", - "help.article.relatedTitle": "__STRING_NOT_TRANSLATED__", - "help.article.reload": "__STRING_NOT_TRANSLATED__", - "help.article.unavailable": "__STRING_NOT_TRANSLATED__", - "help.article.updated": "__STRING_NOT_TRANSLATED__", - "help.center.empty": "__STRING_NOT_TRANSLATED__", - "help.center.error": "__STRING_NOT_TRANSLATED__", - "help.center.listTitle": "__STRING_NOT_TRANSLATED__", - "help.center.offlineBadge": "__STRING_NOT_TRANSLATED__", - "help.center.offlineDescription": "__STRING_NOT_TRANSLATED__", - "help.center.retry": "__STRING_NOT_TRANSLATED__", - "help.center.searchPlaceholder": "__STRING_NOT_TRANSLATED__", - "help.center.subtitle": "__STRING_NOT_TRANSLATED__", - "help.center.title": "__STRING_NOT_TRANSLATED__", - "hero.description": "In just a few steps you guide guests through a magical photo journey – complete with storytelling, tasks, and a moderated gallery.", - "hero.eyebrow": "Your event, your stage", - "hero.primary.billing": "Open billing", - "hero.secondary.button": "View existing events", - "hero.title": "Design the next Fotospiel experience", - "highlights.gallery.badge": "New", - "highlights.gallery.description": "Curate photos in real time, highlight favourites, and share QR codes in a tap.", - "highlights.gallery.title": "Premium guest gallery", - "highlights.story.description": "Guided tasks and emotion cards turn every event into a memorable journey.", - "highlights.story.title": "Storytelling in chapters", - "highlights.team.description": "Invite co-hosts, assign roles, and stay on top of moderation and tasks.", - "highlights.team.title": "Flexible team onboarding", - "home": { - "features_highlight": [ - null, - null, - null - ], - "hero_bullets": [ - null, - null, - null - ] - }, - "home.actions.items.tasks.label": "__STRING_NOT_TRANSLATED__", - "home.actions.items.upload.label": "__STRING_NOT_TRANSLATED__", - "home.all_packages": "__STRING_NOT_TRANSLATED__", - "home.blog_teaser_cta": "__STRING_NOT_TRANSLATED__", - "home.blog_teaser_description": "__STRING_NOT_TRANSLATED__", - "home.blog_teaser_title": "__STRING_NOT_TRANSLATED__", - "home.contact_lead": "__STRING_NOT_TRANSLATED__", - "home.contact_privacy": "__STRING_NOT_TRANSLATED__", - "home.contact_title": "__STRING_NOT_TRANSLATED__", - "home.cta_demo": "__STRING_NOT_TRANSLATED__", - "home.cta_demo_highlight": "__STRING_NOT_TRANSLATED__", - "home.cta_explore": "__STRING_NOT_TRANSLATED__", - "home.cta_how": "__STRING_NOT_TRANSLATED__", - "home.cta_packages": "__STRING_NOT_TRANSLATED__", - "home.demo_cta": "__STRING_NOT_TRANSLATED__", - "home.demo_description": "__STRING_NOT_TRANSLATED__", - "home.demo_hint": "__STRING_NOT_TRANSLATED__", - "home.demo_media_alt": "__STRING_NOT_TRANSLATED__", - "home.demo_title": "__STRING_NOT_TRANSLATED__", - "home.email_label": "__STRING_NOT_TRANSLATED__", - "home.fallbackGuestName": "__STRING_NOT_TRANSLATED__", - "home.faq1_a": "__STRING_NOT_TRANSLATED__", - "home.faq1_q": "__STRING_NOT_TRANSLATED__", - "home.faq2_a": "__STRING_NOT_TRANSLATED__", - "home.faq2_q": "__STRING_NOT_TRANSLATED__", - "home.faq_subtitle": "__STRING_NOT_TRANSLATED__", - "home.faq_title": "__STRING_NOT_TRANSLATED__", - "home.features_highlight": "__STRING_NOT_TRANSLATED__", - "home.features_title": "__STRING_NOT_TRANSLATED__", - "home.hero.defaultEventName": "__STRING_NOT_TRANSLATED__", - "home.hero.description": "__STRING_NOT_TRANSLATED__", - "home.hero.progress.none": "__STRING_NOT_TRANSLATED__", - "home.hero.progress.some": "__STRING_NOT_TRANSLATED__", - "home.hero.subtitle": "__STRING_NOT_TRANSLATED__", - "home.hero.title": "__STRING_NOT_TRANSLATED__", - "home.hero_bullets": "__STRING_NOT_TRANSLATED__", - "home.hero_bullets.0": "Antwort in <24h", - "home.hero_bullets.1": "Keine Weitergabe, kein Tracking", - "home.hero_description": "__STRING_NOT_TRANSLATED__", - "home.hero_image_alt": "__STRING_NOT_TRANSLATED__", - "home.hero_tagline": "__STRING_NOT_TRANSLATED__", - "home.hero_title": "__STRING_NOT_TRANSLATED__", - "home.how_subtitle": "__STRING_NOT_TRANSLATED__", - "home.how_title": "__STRING_NOT_TRANSLATED__", - "home.message_label": "__STRING_NOT_TRANSLATED__", - "home.name_label": "__STRING_NOT_TRANSLATED__", - "home.occasions_description": "__STRING_NOT_TRANSLATED__", - "home.occasions_title": "__STRING_NOT_TRANSLATED__", - "home.packages_subtitle": "__STRING_NOT_TRANSLATED__", - "home.packages_title": "__STRING_NOT_TRANSLATED__", - "home.send": "__STRING_NOT_TRANSLATED__", - "home.sending": "__STRING_NOT_TRANSLATED__", - "home.step1_desc": "__STRING_NOT_TRANSLATED__", - "home.step1_title": "__STRING_NOT_TRANSLATED__", - "home.step2_desc": "__STRING_NOT_TRANSLATED__", - "home.step2_title": "__STRING_NOT_TRANSLATED__", - "home.step3_desc": "__STRING_NOT_TRANSLATED__", - "home.step3_title": "__STRING_NOT_TRANSLATED__", - "home.swipeHint": "__STRING_NOT_TRANSLATED__", - "home.testimonial1": "__STRING_NOT_TRANSLATED__", - "home.testimonial2": "__STRING_NOT_TRANSLATED__", - "home.testimonial3": "__STRING_NOT_TRANSLATED__", - "home.testimonials_subtitle": "__STRING_NOT_TRANSLATED__", - "home.testimonials_title": "__STRING_NOT_TRANSLATED__", - "home.title": "__STRING_NOT_TRANSLATED__", - "home.view_details": "__STRING_NOT_TRANSLATED__", - "home.welcomeLine": "__STRING_NOT_TRANSLATED__", "how_it_works_page": { - "checklist": { - "items": [ - null, - null, - null, - null, - null, - null - ] + "hero": { + "title": "So funktioniert die Fotospiel App", + "subtitle": "Teile deinen QR-Code, sammle Fotos in Echtzeit und behalte die Moderation. Alles läuft im Browser – ganz ohne App.", + "primaryCta": "Pakete entdecken", + "secondaryCta": "Kontakt aufnehmen", + "stats": [ + { + "value": "5 Min", + "label": "Setup vom Account zur Galerie" + }, + { + "value": "0 Apps", + "label": "Gäste nutzen nur ihren Browser" + }, + { + "value": "100 %", + "label": "Hosting & Datenschutz in der EU" + } + ], + "demoNote": "Demo anschauen", + "demoLabel": "Demo ansehen" }, "experience": { - "guest": { - "callouts": [ - null, - null, - null - ], + "host": { + "label": "Veranstalter:innen", + "intro": "Von der ersten Idee bis zum Export deiner Lieblingsmomente – du steuerst alles aus einem Dashboard.", "steps": [ - null, - null, - null + { + "title": "Event anlegen", + "description": "Titel, Datum und Paket wählen, optionale Challenges und Freigaberichtlinien festlegen." + }, + { + "title": "Material teilen", + "description": "QR-Code als PNG/PDF exportieren, Link in Einladungen oder Displays integrieren, Liveshow optional aktivieren." + }, + { + "title": "Moderieren & sichern", + "description": "Uploads freigeben oder kuratieren, Favoriten markieren, ZIP-Download und Dankesnachricht vorbereiten." + } + ], + "callouts": [ + "Co-Hosts für Moderation & Liveshow hinzufügen", + "Offline-Uploads werden automatisch nachgesendet", + "Integrationen über Paddle-Abrechnung und RevenueCat für Apps" ] }, - "host": { - "callouts": [ - null, - null, - null - ], + "guest": { + "label": "Gäste", + "intro": "Für deine Gäste zählt nur der Moment: scannen, fotografieren, fertig. Keine Registrierung, keine Hürden.", "steps": [ - null, - null, - null + { + "title": "QR-Code scannen", + "description": "Der Browser öffnet sich mit deiner gebrandeten Eventseite – kein Download nötig." + }, + { + "title": "Foto aufnehmen", + "description": "Direkt mit der Kamera oder aus der Galerie, optionale Challenges machen es spielerisch." + }, + { + "title": "Galerie erleben", + "description": "Uploads erscheinen nach Freigabe in der Galerie und in der Live-Show, Downloads bleiben jederzeit möglich." + } + ], + "callouts": [ + "Progressiver Web-App Modus mit Homescreen-Icon", + "Lokale Zwischenspeicherung bei schwacher Verbindung", + "Barrierearme UI, unterstützt aktuelle iOS/Android Browser" ] } }, - "faq": { - "items": [ - null, - null, - null, - null, - null, - null - ] - }, - "hero": { - "stats": [ - null, - null, - null - ] - }, "pillars": [ - null, - null, - null, - null + { + "title": "Launch in Minuten", + "description": "QR-Code, Link und Liveshow sind sofort einsatzbereit. Druckvorlagen und Textbausteine liefern wir mit." + }, + { + "title": "Moderation & Sicherheit", + "description": "Freigabemodi, Löschrichtlinien und Co-Hosts sichern eure Inhalte – vollständig DSGVO-konform." + }, + { + "title": "Erlebnis vor Ort", + "description": "Aufgaben, Reaktionen und Live-Slideshow motivieren zum Mitmachen – ohne zusätzliche Technik." + }, + { + "title": "Nach dem Event", + "description": "ZIP-Exports, Favoritenlisten, Follow-up-Mailings – alles direkt aus dem Dashboard steuerbar." + } ], "timeline": [ { + "title": "Event vorbereiten", + "body": "Account registrieren, Paket wählen und Branding setzen. Abos laufen über Paddle, Mobile-Apps über RevenueCat.", "tips": [ - null, - null + "Testevent anlegen, um Upload-Flow vorab zu prüfen", + "Trauzeug:innen oder Kolleg:innen als Co-Hosts einladen" ] }, { + "title": "Challenges & Regeln wählen", + "body": "Aktiviere optionale Aufgaben, Live-Slideshow oder Vorab-Freigabe. Definiere Hausregeln für Uploads.", "tips": [ - null, - null + "Kurze Belohnungen motivieren zum Mitmachen", + "Bei Kinderfotos klare Hinweise platzieren" ] }, { + "title": "Material bereitstellen", + "body": "QR-Code als PNG, PDF oder Druckbogen herunterladen. Nutze Templates für Tische, Namensschilder und Bildschirm-Slides.", "tips": [ - null, - null + "QR-Code an Eingängen, Buffet und Bühne platzieren", + "Link in Einladung und Reminder-Mail aufnehmen" ] }, { + "title": "Event starten", + "body": "Liveshow starten, Uploads freischalten und optional Reaktionen erlauben. Offline-Uploads werden automatisch synchronisiert.", "tips": [ - null, - null + "MC oder Moderator:in weist in der Begrüßung auf Fotospiel hin", + "Zeige die Liveshow auf TV, Beamer oder Tablet" ] }, { + "title": "Moderieren & kuratieren", + "body": "Uploads freigeben, markieren, kommentieren und bei Bedarf ausblenden. Alle Aktionen sind protokolliert.", "tips": [ - null, - null + "Favoritenlisten für Best-of-Exports nutzen", + "Verstöße konsequent entfernen – Datenschutz zuerst" ] }, { + "title": "Nachbereitung", + "body": "Galerie Zeitraum festlegen, ZIP-Export herunterladen und Dankesmail mit Galerie-Link versenden.", "tips": [ - null, - null + "Erinnerung 24 Stunden nach dem Event schicken", + "Galerie bei Bedarf frühzeitig schließen oder verlängern" ] } ], "use_cases": { + "title": "Passend für jedes Event", + "description": "Wähle den passenden Fokus – die Galerie bleibt dieselbe.", "tabs": [ { - "ideas": [ - null, - null, - null - ], + "value": "wedding", + "label": "Hochzeiten", + "goal": "Emotionen und Perspektiven der Gäste festhalten.", "recommendations": [ - null, - null, - null + "QR-Code in Kirchenheften und auf Tischen platzieren", + "Trauzeug:innen als Co-Hosts einsetzen", + "Liveshow beim Empfang zeigen" + ], + "ideas": [ + "Selfie mit dem Brautpaar", + "Lieblingsmoment der Party", + "Etwas Blaues entdecken" ] }, { - "ideas": [ - null, - null, - null - ], + "value": "birthday", + "label": "Geburtstage", + "goal": "Spontane Schnappschüsse und Gratulationen sammeln.", "recommendations": [ - null, - null, - null + "Hinweis in der Geburtstagsrede", + "Kleinen Preis für kreativstes Foto ausloben", + "Kuchen-Cam neben dem Dessertbuffet" + ], + "ideas": [ + "Throwback nachstellen", + "Größtes Gruppenlächeln", + "Geburtstagskuchen close-up" ] }, { - "ideas": [ - null, - null, - null - ], + "value": "corporate", + "label": "Firmenfeiern", + "goal": "Authentische Einblicke für Employer Branding und Recap.", "recommendations": [ - null, - null, - null + "Gebrandete Startseite und Liveshow", + "HR oder Moderation für Ankündigungen nutzen", + "Fotos für Post-Event-Kommunikation kuratieren" + ], + "ideas": [ + "Bestes Team-Selfie", + "Behind the Scenes", + "Neue Kolleg:innen kennenlernen" ] }, { - "ideas": [ - null, - null, - null - ], + "value": "confirmation", + "label": "Konfirmation & Jugendweihe", + "goal": "Familienmomente sicher bündeln und teilen.", "recommendations": [ - null, - null, - null + "Separate Galerieabschnitte für Kirche und Feier", + "Moderation aktiv lassen, um sensible Inhalte zu prüfen", + "Download-Link nur an Familie weitergeben" + ], + "ideas": [ + "Gruppenfoto mit Paten", + "Highlight des Tages", + "Selfie mit dem Konfirmanden / der Konfirmandin" ] }, { - "ideas": [ - null, - null, - null - ], + "value": "public", + "label": "Public Events", + "goal": "Community-Momente und Social-Media-Content generieren.", "recommendations": [ - null, - null, - null + "Große QR-Poster und Hashtags kombinieren", + "Liveshow auf LED-Wänden zeigen", + "Upload-Regeln klar kommunizieren" + ], + "ideas": [ + "Buntestes Outfit", + "Lieblingsact", + "Geheime Festival-Ecke" ] } ] - } + }, + "checklist": { + "title": "Checklist: In 10 Minuten startklar", + "items": [ + "Event angelegt, Paket & Branding festgelegt", + "Freigabe-Modus und Moderationsteam definiert", + "QR-Code & Link getestet (eigenes Smartphone!)", + "Druck- und Screen-Material vorbereitet", + "Liveshow / Displays geprüft", + "Kurzansage und Follow-up vorbereitet" + ], + "cta": "Event jetzt starten" + }, + "faq": { + "title": "Häufige Fragen", + "items": [ + { + "question": "Brauchen Gäste eine App?", + "answer": "Nein. Alles läuft im mobilen Browser. Auf Wunsch kann die Seite als PWA auf den Homescreen gelegt werden." + }, + { + "question": "Wie funktioniert der Upload ohne Internet?", + "answer": "Fotos werden lokal zwischengespeichert. Sobald wieder WLAN oder LTE verfügbar ist, werden sie automatisch hochgeladen." + }, + { + "question": "Kann ich Uploads zuerst prüfen?", + "answer": "Ja. Aktiviere den Freigabe-Modus in den Event-Einstellungen, um Beiträge vor Veröffentlichung zu moderieren." + }, + { + "question": "Wie lange bleiben Fotos online?", + "answer": "Je nach Paket bleiben Galerien zwischen 14 und 90 Tagen aktiv. Die genaue Dauer steht in der Paketübersicht." + }, + { + "question": "Wie läuft die Bezahlung?", + "answer": "Web-Pakete werden über Paddle abgerechnet (inklusive Rechnung & Steuerhandling). Mobile Abos verwalten wir über RevenueCat." + }, + { + "question": "Welche Dateiformate sind erlaubt?", + "answer": "Aktuell akzeptieren wir Fotos (JPEG, PNG, HEIC). Videos werden aus Datenschutzgründen nicht unterstützt." + } + ] + }, + "support": { + "title": "Noch Fragen?", + "description": "Unser Team hilft dir bei der Einrichtung oder plant mit dir ein Pilot-Event.", + "cta": "Kontakt aufnehmen" + }, + "labels": { + "timeline_heading": "Ein klarer Fahrplan für euer Event", + "recommendations": "Empfehlungen", + "challenge_ideas": "Ideen für Challenges", + "prep_hint": "Alles, was ihr vor dem Event abhaken solltet.", + "good_to_know": "Gut zu wissen", + "tips": "Tipps" + }, + "timeline_title": "Der Ablauf im Detail" }, - "how_it_works_page.checklist": { - "cta": "", - "items": [], - "title": "" + "labels": { + "recommendations": "Empfehlungen", + "challengeIdeas": "Ideen für Challenges", + "prepHint": "Alles, was du vor dem Event abhaken solltest.", + "good_to_know": "Gut zu wissen", + "openDemoFull": "Demo im neuen Tab öffnen", + "readyToLaunch": "Bereit für dein Event?", + "readyToLaunchCopy": "Registriere dich kostenlos und lege noch heute dein erstes Event an.", + "demoUnavailable": "Demo-Link aktuell nicht verfügbar", + "demoUnavailableCopy": "Führe die Demo-Seeds aus oder kontaktiere uns, damit wir dir sofort einen neuen Zugangscode hinterlegen können." }, - "how_it_works_page.experience": "__STRING_NOT_TRANSLATED__", - "how_it_works_page.faq": { - "items": [], - "title": "" + "actions": { + "tips": "Tipps" }, - "how_it_works_page.hero": { - "primaryCta": "", - "secondaryCta": "", - "stats": [], - "subtitle": "", - "title": "So funktioniert die Fotospiel App" - }, - "how_it_works_page.labels.challenge_ideas": "Ideen für Challenges", - "how_it_works_page.labels.good_to_know": "Gut zu wissen", - "how_it_works_page.labels.prep_hint": "Alles, was du vor dem Event abhaken solltest.", - "how_it_works_page.labels.recommendations": "Empfehlungen", - "how_it_works_page.labels.timeline_heading": "Ein klarer Fahrplan für dein Event", - "how_it_works_page.labels.tips": "Tipps", - "how_it_works_page.pillars": "__STRING_NOT_TRANSLATED__", - "how_it_works_page.support": { - "cta": "", - "description": "", - "title": "" - }, - "how_it_works_page.timeline": "__STRING_NOT_TRANSLATED__", - "how_it_works_page.timeline_title": "Der Ablauf im Detail", - "how_it_works_page.use_cases": { - "description": "", - "tabs": [], - "title": "" - }, - "installBanner.action": "Install", - "installBanner.body": "Add the app to your home screen for faster access and offline support.", - "installBanner.iosHint": "On iOS: Share → Add to Home Screen.", - "installBanner.title": "Install Fotospiel Admin", - "kontakt.back_home": "__STRING_NOT_TRANSLATED__", - "kontakt.description": "__STRING_NOT_TRANSLATED__", - "kontakt.email": "__STRING_NOT_TRANSLATED__", - "kontakt.message": "__STRING_NOT_TRANSLATED__", - "kontakt.name": "__STRING_NOT_TRANSLATED__", - "kontakt.send": "__STRING_NOT_TRANSLATED__", - "kontakt.sending": "__STRING_NOT_TRANSLATED__", - "kontakt.title": "__STRING_NOT_TRANSLATED__", - "labels.demoUnavailable": "Demo-Link aktuell nicht verfügbar", - "labels.demoUnavailableCopy": "Führe die Demo-Seeds aus oder kontaktiere uns, damit wir dir sofort einen neuen Zugangscode hinterlegen können.", - "landing.features.momentsCopy": "Moderierte Fotoaufgaben motivieren dein Team und halten die Stimmung hoch.", - "landing.features.momentsTitle": "Momente mit Wow-Effekt", - "landing.features.trustCopy": "Nur eingeladene Gäste erhalten Zugriff – mit Tokens, Rollenrechten und deutschem Hosting.", - "landing.features.trustTitle": "Sicher & DSGVO-konform", - "landing.features.uploadCopy": "Scan & Shoot: Gäste landen direkt im Event und teilen ihre Highlights live.", - "landing.features.uploadTitle": "Uploads ohne App-Stress", - "landing.headline": "Die Event-Landing, die zum Marketing passt.", - "landing.highlight.live": "Live auf Screens & Slideshows", - "landing.highlight.liveCopy": "Uploads können sofort auf Displays, Projektoren oder dem großen Screen erscheinen.", - "landing.highlight.mobile": "Optimiert für jedes Smartphone", - "landing.highlight.mobileCopy": "Keine App-Installation nötig – einfach Link öffnen oder QR-Code scannen.", - "landing.highlight.privacy": "Transparente Freigaben", - "landing.highlight.privacyCopy": "Admin- und Gästerollen sorgen dafür, dass nur autorisierte Personen Inhalte sehen.", - "landing.highlight.story": "Storytelling statt Sammelalbum", - "landing.highlight.storyCopy": "Fotospiel verbindet Aufgaben, Emotionen und Uploads zu einer spannenden Timeline.", - "landing.hint.support": "Du hast einen Link erhalten? Füge ihn direkt oben ein – wir erkennen den Event-Code automatisch.", - "landing.input.placeholder": "__STRING_NOT_TRANSLATED__", - "landing.join.button": "__STRING_NOT_TRANSLATED__", - "landing.join.buttonLoading": "__STRING_NOT_TRANSLATED__", - "landing.join.description": "__STRING_NOT_TRANSLATED__", - "landing.join.subline": "QR · Code · Link", - "landing.join.title": "__STRING_NOT_TRANSLATED__", - "landing.pageTitle": "__STRING_NOT_TRANSLATED__", - "landing.scan.headline": "QR-Code scannen", - "landing.scan.manualDivider": "__STRING_NOT_TRANSLATED__", - "landing.scan.start": "__STRING_NOT_TRANSLATED__", - "landing.scan.stop": "__STRING_NOT_TRANSLATED__", - "landing.scan.subline": "Nutze die Kamera deines Smartphones oder Tablets", - "landing.steps.profile": "Kurz vorstellen: Name eintragen und loslegen.", - "landing.steps.scan": "QR-Code vom Event scannen oder Link öffnen.", - "landing.steps.title": "So funktioniert Fotospiel", - "landing.steps.upload": "Fotos aufnehmen, Aufgaben lösen, Erinnerungen teilen.", - "landing.subheadline": "Fotospiel begrüßt deine Gäste mit einem warmen Erlebnis, noch bevor die erste Aufnahme entsteht.", - "landing.support.copy": "Frag dein Event-Team oder melde dich bei uns – wir helfen sofort weiter.", - "landing.support.email": "support@fotospiel.de", - "landing.support.reply": "Direkt auf die Einladung antworten", - "landing.support.title": "Support & Fragen", - "landing.tags.deHosted": "Gehostet in Deutschland", - "landing.tags.instant": "Live-Uploads & Aufgaben", - "landing.tags.private": "Nur für eingeladene Gäste", - "layout.back": "Back", - "layout.eyebrow": "Fotospiel Customer Admin", - "layout.jumpToDashboard": "Jump to dashboard", - "layout.skip": "Skip", - "layout.subtitle": "Begin with an inspired introduction, secure your package, and craft the perfect guest gallery – all optimised for mobile hosts.", - "layout.title": "Welcome to your event studio", - "lightbox.close": "Schließen", - "lightbox.download": "Download", - "lightbox.errors.loadFailed": "__STRING_NOT_TRANSLATED__", - "lightbox.errors.notFound": "__STRING_NOT_TRANSLATED__", - "lightbox.fallbackTitle": "__STRING_NOT_TRANSLATED__", - "lightbox.like": "Like photo", - "lightbox.loadingTask": "__STRING_NOT_TRANSLATED__", - "lightbox.photoAlt": "__STRING_NOT_TRANSLATED__", - "lightbox.photoAltTaskSuffix": "__STRING_NOT_TRANSLATED__", - "lightbox.taskLabel": "__STRING_NOT_TRANSLATED__", - "lightbox.unknownTitle": "__STRING_NOT_TRANSLATED__", - "liveShowPlayer.connection.live": "Live", - "liveShowPlayer.connection.sync": "Sync", - "liveShowPlayer.controls.exitFullscreen": "Exit fullscreen", - "liveShowPlayer.controls.fullscreen": "Fullscreen", - "liveShowPlayer.controls.offline": "Offline", - "liveShowPlayer.controls.pause": "Pause", - "liveShowPlayer.controls.paused": "Paused", - "liveShowPlayer.controls.play": "Play", - "liveShowPlayer.empty.description": "Warte auf die ersten Uploads...", - "liveShowPlayer.empty.title": "Noch keine Live-Fotos", - "liveShowPlayer.error.description": "Bitte überprüfe den Live-Link.", - "liveShowPlayer.error.title": "Live Show nicht erreichbar", - "liveShowPlayer.loading": "Live Show wird geladen...", - "liveShowPlayer.title": "Live Show", - "liveShowQueue.actionFailed": "Live Show update failed.", - "liveShowQueue.approve": "Approve for Live Show", - "liveShowQueue.approveAndLive": "Approve + Live", - "liveShowQueue.approveAndLiveSuccess": "Photo approved and added to Live Show", - "liveShowQueue.approveSuccess": "Photo approved for Live Show", - "liveShowQueue.clear": "Remove from Live Show", - "liveShowQueue.clearSuccess": "Live Show approval removed", - "liveShowQueue.empty": "No photos waiting for Live Show.", - "liveShowQueue.filterLabel": "Live status", - "liveShowQueue.galleryApprovedOnly": "Gallery and Live Show approvals are separate. Pending photos can be approved here.", - "liveShowQueue.loadFailed": "Live Show queue could not be loaded.", - "liveShowQueue.notEligible": "Not eligible", - "liveShowQueue.offlineNotice": "You are offline. Live Show actions are disabled.", - "liveShowQueue.reject": "Reject", - "liveShowQueue.rejectSuccess": "Photo removed from Live Show", - "liveShowQueue.subtitle": "Approve photos for the live slideshow", - "liveShowQueue.title": "Live Show queue", - "liveShowSettings.fields.backgroundMode": "Background", - "liveShowSettings.fields.effectIntensity": "Effect intensity", - "liveShowSettings.fields.effectPreset": "Effect preset", - "liveShowSettings.fields.fixedInterval": "Fixed interval (seconds)", - "liveShowSettings.fields.layoutMode": "Layout", - "liveShowSettings.fields.moderationMode": "Moderation mode", - "liveShowSettings.fields.paceMode": "Pace", - "liveShowSettings.fields.playbackMode": "Playback mode", - "liveShowSettings.fields.retention": "Retention window (hours)", - "liveShowSettings.hints.layout": "Split and grid layouts are used when enough photos are available.", - "liveShowSettings.hints.moderation": "Trusted sources include admin uploads and photobooths.", - "liveShowSettings.hints.pace": "Auto adapts to new uploads; fixed keeps a steady rhythm.", - "liveShowSettings.hints.playback": "Balance newer uploads with highlights when the queue is busy.", - "liveShowSettings.hints.retention": "Controls how long approved photos remain in rotation.", - "liveShowSettings.link.copy": "Copy", - "liveShowSettings.link.copyFailed": "Link could not be copied", - "liveShowSettings.link.copySuccess": "Link copied", - "liveShowSettings.link.downloadQr": "Download QR", - "liveShowSettings.link.empty": "No Live Show link available.", - "liveShowSettings.link.loadFailed": "Live Show link could not be loaded.", - "liveShowSettings.link.noExpiry": "No expiry date set.", - "liveShowSettings.link.open": "Open", - "liveShowSettings.link.qrAlt": "Live Show QR code", - "liveShowSettings.link.rotate": "Rotate", - "liveShowSettings.link.rotateConfirm": "Rotate the Live Show link? The current link will stop working.", - "liveShowSettings.link.rotateFailed": "Live Show link could not be rotated.", - "liveShowSettings.link.rotateSuccess": "Live Show link rotated.", - "liveShowSettings.link.rotatedAt": "Last rotated {{time}}", - "liveShowSettings.link.share": "Share", - "liveShowSettings.link.shareText": "Live Show link", - "liveShowSettings.link.shareTitle": "Live Show", - "liveShowSettings.link.subtitle": "Open this link on a screen to run the Live Show.", - "liveShowSettings.link.title": "Live Show link", - "liveShowSettings.loadFailed": "Live Show settings could not be loaded.", - "liveShowSettings.save": "Save settings", - "liveShowSettings.saveFailed": "Live Show settings could not be saved.", - "liveShowSettings.saveSuccess": "Live Show settings updated.", - "liveShowSettings.sections.effects": "Effects & layout", - "liveShowSettings.sections.moderation": "Moderation", - "liveShowSettings.sections.playback": "Playback", - "liveShowSettings.subtitle": "Tune the playback, pacing, and effects shown on the screen.", - "liveShowSettings.title": "Live Show settings", - "login": "__STRING_NOT_TRANSLATED__", - "login.brand": "__STRING_NOT_TRANSLATED__", - "login.description": "__STRING_NOT_TRANSLATED__", - "login.email": "Email address", - "login.email_hint": "Dein Benutzername ist deine E-Mail-Adresse.", - "login.email_placeholder": "name@example.com", - "login.failed_generic": "Ungueltige Anmeldedaten", - "login.faq": "Hilfe & FAQ", - "login.forgot": "__STRING_NOT_TRANSLATED__", - "login.forgot.back": "Back to login", - "login.forgot.copy": "Enter your email address and we will send you a reset link.", - "login.forgot.link": "Forgot your password?", - "login.forgot.loading": "Sending ...", - "login.forgot.submit": "Send reset link", - "login.forgot.success": "If your account exists, we will send a reset link.", - "login.forgot.title": "Forgot your password?", - "login.google_cta": "__STRING_NOT_TRANSLATED__", - "login.google_helper": "Nutze dein Google-Konto, um dich sicher bei der Eventverwaltung anzumelden.", - "login.help_back": "Back to login", - "login.help_faq_items": "__STRING_NOT_TRANSLATED__", - "login.help_faq_title": "Haeufige Fragen vor dem Login", - "login.help_intro": "Hier findest du schnelle Antworten rund um Login, Zugriff und erste Schritte - auch ohne Anmeldung.", - "login.help_support_copy": "Schreib uns bei Fragen an", - "login.help_support_cta": "E-Mail an Support senden", - "login.help_support_title": "Support kontaktieren", - "login.help_title": "Hilfe fuer Event-Admins", - "login.hero_footer.cta": "Packages entdecken", - "login.hero_footer.headline": "Noch kein Account?", - "login.hero_footer.subline": "Entdecke unsere Packages und erlebe Fotospiel live.", - "login.hero_heading": "Willkommen zurück bei Fotospiel", - "login.hero_subheading": "Verwalte Events, Galerien und Gästelisten in einem liebevoll gestalteten Dashboard.", - "login.hero_tagline": "Event-Tech mit Herz", - "login.highlights.branding": "Branding & Slideshows, die begeistern", - "login.highlights.branding_description": "Konfiguriere Slideshow, Wasserzeichen und Aufgaben für dein Event.", - "login.highlights.moments": "Momente in Echtzeit teilen", - "login.highlights.moments_description": "Uploads landen sofort in der Event-Galerie – ohne App-Download.", - "login.highlights.privacy": "Sicherer Zugang über Tokens", - "login.highlights.privacy_description": "Eventzugänge bleiben geschützt – DSGVO-konform mit Join Tokens.", - "login.identifier": "__STRING_NOT_TRANSLATED__", - "login.identifier_placeholder": "__STRING_NOT_TRANSLATED__", - "login.loading": "Anmeldung …", - "login.logo_alt": "Die Fotospiel App", - "login.no_account": "__STRING_NOT_TRANSLATED__", - "login.oauth_divider": "oder", - "login.panel_copy": "Melde dich an, um Events zu planen, Fotos zu moderieren und Aufgaben anzulegen.", - "login.panel_title": "Fotospiel.App Event Login", - "login.password": "Passwort", - "login.password_placeholder": "••••••••", - "login.remember": "__STRING_NOT_TRANSLATED__", - "login.reset.back": "Back to login", - "login.reset.copy": "Choose a new password for your event admin account.", - "login.reset.loading": "Saving ...", - "login.reset.missing_token": "Reset token missing.", - "login.reset.password": "New password", - "login.reset.password_confirm": "Confirm password", - "login.reset.password_confirm_placeholder": "••••••••", - "login.reset.password_placeholder": "••••••••", - "login.reset.submit": "Save new password", - "login.reset.success": "Password updated.", - "login.reset.title": "Reset password", - "login.sign_up": "__STRING_NOT_TRANSLATED__", - "login.submit": "Anmelden", - "login.success_toast": "Login erfolgreich", - "login.support": "Fragen? Schreib uns an support@fotospiel.de oder antworte direkt auf deine Einladung.", - "login.title": "__STRING_NOT_TRANSLATED__", - "login.unexpected_error": "Beim Login ist ein Fehler aufgetreten.", - "login_to_continue": "__STRING_NOT_TRANSLATED__", - "management": "__STRING_NOT_TRANSLATED__", - "management.header.appName": "Event Admin", - "management.photobooth.actions.disable": "Zugang deaktiviert", - "management.photobooth.actions.enable": "Zugang aktiviert", - "management.photobooth.errors.disableFailed": "Zugang konnte nicht deaktiviert werden.", - "management.photobooth.errors.enableFailed": "Zugang konnte nicht aktiviert werden.", - "management.photobooth.errors.loadFailed": "Photobooth-Link konnte nicht geladen werden.", - "management.photobooth.errors.rotateFailed": "Zugangsdaten konnten nicht neu generiert werden.", - "management.photobooth.presets.actions.rotate": "Zugang zurückgesetzt", - "marketing": "__STRING_NOT_TRANSLATED__", - "marketing.labels.readyToLaunch": "Bereit für dein Event?", - "marketing.labels.readyToLaunchCopy": "Registriere dich kostenlos und lege noch heute dein erstes Event an.", - "meta.description": "__STRING_NOT_TRANSLATED__", - "meta.title": "__STRING_NOT_TRANSLATED__", - "mobile": "__STRING_NOT_TRANSLATED__", - "mobile.notifications": "Notifications", - "mobileBilling.addonApplied": "Add-on applied. Limits update shortly.", - "mobileBilling.details.featuresTitle": "Features", - "mobileBilling.details.limitsTitle": "Limits", - "mobileBilling.extra.days_one": "+{{count}} days", - "mobileBilling.extra.days_other": "+{{count}} days", - "mobileBilling.extra.guests_one": "+{{count}} guests", - "mobileBilling.extra.guests_other": "+{{count}} guests", - "mobileBilling.extra.photos_one": "+{{count}} photos", - "mobileBilling.extra.photos_other": "+{{count}} photos", - "mobileBilling.openEvent": "Open event", - "mobileBilling.packageFallback": "Package", - "mobileBilling.remainingEventsOf": "{{remaining}} of {{limit}} events remaining", - "mobileBilling.remainingEventsZero": "No events remaining", - "mobileBilling.remainingEvents_one": "{{count}} events", - "mobileBilling.remainingEvents_other": "{{count}} events", - "mobileBilling.status.completed": "Completed", - "mobileBilling.status.failed": "Failed", - "mobileBilling.status.pending": "Pending", - "mobileBilling.usage.ctaDanger": "Upgrade package", - "mobileBilling.usage.ctaWarning": "Secure more capacity", - "mobileBilling.usage.events": "Events", - "mobileBilling.usage.gallery": "Gallery days", - "mobileBilling.usage.guests": "Guests", - "mobileBilling.usage.limit": "__STRING_NOT_TRANSLATED__", - "mobileBilling.usage.photos": "Photos", - "mobileBilling.usage.remainingOf": "Remaining {{remaining}} of {{limit}}", - "mobileBilling.usage.statusDanger": "Limit reached", - "mobileBilling.usage.statusWarning": "Low", - "mobileBilling.usage.value": "__STRING_NOT_TRANSLATED__", - "mobileDashboard.alertPending_one": "{{count}} new uploads awaiting moderation", - "mobileDashboard.alertPending_other": "{{count}} new uploads awaiting moderation", - "mobileDashboard.alertTasks_one": "{{count}} tasks due or open", - "mobileDashboard.alertTasks_other": "{{count}} tasks due or open", - "mobileDashboard.alertsTitle": "Alerts", - "mobileDashboard.ctaCreate": "Create event", - "mobileDashboard.ctaWelcome": "Start welcome journey", - "mobileDashboard.emptyBadge": "Welcome aboard", - "mobileDashboard.emptyBody": "Print a QR, collect uploads, and start moderating in minutes.", - "mobileDashboard.emptyChecklistProgress": "{{done}}/{{total}} steps", - "mobileDashboard.emptyChecklistTitle": "Quick steps to go live", - "mobileDashboard.emptyPreviewGallery": "Gallery & highlights", - "mobileDashboard.emptyPreviewGalleryDesc": "Moderate uploads, feature the best moments.", - "mobileDashboard.emptyPreviewQr": "Share QR poster", - "mobileDashboard.emptyPreviewQrDesc": "Print-ready codes for guests and crew.", - "mobileDashboard.emptyPreviewTasks": "Tasks & challenges", - "mobileDashboard.emptyPreviewTasksDesc": "Guide guests with playful prompts.", - "mobileDashboard.emptyPreviewTitle": "Here's what awaits", - "mobileDashboard.emptyStepDetails": "Add name & date", - "mobileDashboard.emptyStepQr": "Share your QR poster", - "mobileDashboard.emptyStepReview": "Review first uploads", - "mobileDashboard.emptySupportBody": "We are here if you need a hand getting started.", - "mobileDashboard.emptySupportDocs": "Docs: Getting started", - "mobileDashboard.emptySupportEmail": "Email support", - "mobileDashboard.emptySupportTitle": "Need help?", - "mobileDashboard.emptyTitle": "Welcome! Let's launch your first event", - "mobileDashboard.kpiGuests": "Guests", - "mobileDashboard.kpiPhotos": "Photos", - "mobileDashboard.kpiTasks": "Open tasks", - "mobileDashboard.kpiTitle": "Key performance indicators", - "mobileDashboard.packageSummary.bannerCta": "View", - "mobileDashboard.packageSummary.bannerSubtitle": "{{name}} is active. Review limits & features.", - "mobileDashboard.packageSummary.bannerTitle": "Your package summary", - "mobileDashboard.packageSummary.continue": "Continue to event setup", - "mobileDashboard.packageSummary.dismiss": "Close", - "mobileDashboard.packageSummary.expires": "Expires", - "mobileDashboard.packageSummary.fallbackTitle": "Package summary", - "mobileDashboard.packageSummary.featuresTitle": "Included features", - "mobileDashboard.packageSummary.hint": "You can revisit billing any time to review or upgrade your package.", - "mobileDashboard.packageSummary.limitsTitle": "Limits", - "mobileDashboard.packageSummary.purchased": "Purchased", - "mobileDashboard.packageSummary.remaining": "Remaining events", - "mobileDashboard.packageSummary.subtitle": "Here is a quick overview of your active package.", - "mobileDashboard.packageSummary.title": "Your package summary", - "mobileDashboard.packageSummary.unknown": "Unknown", - "mobileDashboard.photosDesc": "Moderate uploads and highlights", - "mobileDashboard.photosLabel": "Review photos", - "mobileDashboard.pickEvent": "Select an event", - "mobileDashboard.qrDesc": "Posters, cards, and links", - "mobileDashboard.qrLabel": "Show / share QR code", - "mobileDashboard.selectEvent": "Select an event to continue", - "mobileDashboard.setup.installAction": "Install now", - "mobileDashboard.setup.installDescription": "Get full-screen access and faster launch.", - "mobileDashboard.setup.installIosHint": "On iOS: Share → Add to Home Screen.", - "mobileDashboard.setup.installManual": "Manual", - "mobileDashboard.setup.installReady": "Ready", - "mobileDashboard.setup.installTitle": "Install app", - "mobileDashboard.setup.pushAction": "Enable push", - "mobileDashboard.setup.pushBlocked": "Blocked", - "mobileDashboard.setup.pushBlockedDesc": "Notifications are blocked in the browser settings.", - "mobileDashboard.setup.pushDescription": "Stay on top of uploads and quota alerts.", - "mobileDashboard.setup.pushOff": "Off", - "mobileDashboard.setup.pushSettings": "Open settings", - "mobileDashboard.setup.pushTitle": "Enable push notifications", - "mobileDashboard.setup.storageAction": "Protect now", - "mobileDashboard.setup.storageDescription": "Keep cached uploads available when you go offline.", - "mobileDashboard.setup.storageTitle": "Protect offline data", - "mobileDashboard.setup.storageUnprotected": "Not protected", - "mobileDashboard.setupSubtitle": "Finish these steps for the best mobile experience.", - "mobileDashboard.setupTitle": "Set up this device", - "mobileDashboard.shortcutAnalytics": "Analytics", - "mobileDashboard.shortcutBranding": "Branding & moderation", - "mobileDashboard.shortcutGuests": "Guest management", - "mobileDashboard.shortcutInvites": "Team / helper invites", - "mobileDashboard.shortcutPrints": "Print & poster downloads", - "mobileDashboard.shortcutSettings": "Event settings", - "mobileDashboard.shortcutsTitle": "Shortcuts", - "mobileDashboard.status.draft": "Draft", - "mobileDashboard.status.published": "Live", - "mobileDashboard.tasksDesc": "Assign and track progress", - "mobileDashboard.tasksDisabledDesc": "Guests do not see tasks (task mode off)", - "mobileDashboard.tasksLabel": "Manage tasks & challenges", - "mobileDashboard.title": "Dashboard", - "mobileEvents.edit": "Edit event", - "mobileNotifications.emptyAction": "Check notification settings", - "mobileNotifications.emptyBody": "Enable push to receive alerts about uploads, guests, and expiring galleries.", - "mobileNotifications.emptyTitle": "All caught up", - "mobileNotifications.filterByEvent": "Nach Event filtern", - "mobileNotifications.title": "Notifications", - "mobileNotifications.unknownEvent": "Event", - "mobilePhotos.applyFilters": "Apply filters", - "mobilePhotos.approveFailed": "Freigabe fehlgeschlagen.", - "mobilePhotos.approveSuccess": "Photo approved", - "mobilePhotos.bulkFailed": "Bulk update failed", - "mobilePhotos.bulkUpdated": "Bulk update applied", - "mobilePhotos.count_one": "{{count}} photos", - "mobilePhotos.count_other": "{{count}} photos", - "mobilePhotos.emptyAction": "Share QR code", - "mobilePhotos.emptyBody": "Share the QR code so guests can start uploading photos.", - "mobilePhotos.emptyTitle": "No uploads yet", - "mobilePhotos.featureFailed": "Feature konnte nicht geändert werden.", - "mobilePhotos.featureSuccess": "Als Highlight markiert", - "mobilePhotos.filtersTitle": "Filter", - "mobilePhotos.hideSuccess": "Photo hidden", - "mobilePhotos.loadFailed": "Fotos konnten nicht geladen werden.", - "mobilePhotos.onlyFeatured": "Only featured", - "mobilePhotos.onlyHidden": "Only hidden", - "mobilePhotos.queueOffline_one": "{{count}} Aktionen gespeichert – offline.", - "mobilePhotos.queueOffline_other": "{{count}} Aktionen gespeichert – offline.", - "mobilePhotos.queueOnline_one": "{{count}} Aktionen bereit zum Synchronisieren.", - "mobilePhotos.queueOnline_other": "{{count}} Aktionen bereit zum Synchronisieren.", - "mobilePhotos.queueSync": "Sync", - "mobilePhotos.queueTitle": "Änderungen warten auf Sync", - "mobilePhotos.queueWaiting": "Offline", - "mobilePhotos.queued": "Aktion gespeichert. Wird synchronisiert, sobald du online bist.", - "mobilePhotos.selectedCount_one": "{{count}} selected", - "mobilePhotos.selectedCount_other": "{{count}} selected", - "mobilePhotos.showSuccess": "Photo shown", - "mobilePhotos.syncFailed": "Synchronisierung fehlgeschlagen. Bitte später erneut versuchen.", - "mobilePhotos.title": "Photo moderation", - "mobilePhotos.unfeatureSuccess": "Highlight entfernt", - "mobilePhotos.uploader": "Uploader", - "mobilePhotos.uploaderPlaceholder": "Name or email", - "mobilePhotos.visibilityFailed": "Sichtbarkeit konnte nicht geändert werden.", - "mobileProfile.account": "Account & security", - "mobileProfile.language": "Language", - "mobileProfile.languageDe": "Deutsch", - "mobileProfile.languageEn": "English", - "mobileProfile.logout": "Log out", - "mobileProfile.settings": "Settings", - "mobileProfile.theme": "Theme", - "mobileProfile.themeDark": "Dark", - "mobileProfile.themeLight": "Light", - "mobileProfile.themeSystem": "System", - "mobileProfile.title": "Profile", - "mobileSettings.accountTitle": "Account", - "mobileSettings.deviceDescription": "Check permissions so the admin app stays fast and offline-ready.", - "mobileSettings.deviceLoading": "Checking device status ...", - "mobileSettings.deviceStatus.camera.description": "Needed for QR scans and quick capture.", - "mobileSettings.deviceStatus.camera.label": "Camera", - "mobileSettings.deviceStatus.connection.description": "Shows if the app is online or offline.", - "mobileSettings.deviceStatus.connection.label": "Connection", - "mobileSettings.deviceStatus.notifications.description": "Allow alerts and admin updates.", - "mobileSettings.deviceStatus.notifications.label": "Notifications", - "mobileSettings.deviceStatus.storage.description": "Protect cached data from eviction.", - "mobileSettings.deviceStatus.storage.label": "Offline storage", - "mobileSettings.deviceStatusValues.offline": "Offline", - "mobileSettings.deviceStatusValues.online": "Online", - "mobileSettings.deviceStorageAction": "Enable offline protection", - "mobileSettings.deviceStorageError": "Offline-Schutz konnte nicht aktiviert werden.", - "mobileSettings.deviceTitle": "Device & permissions", - "mobileSettings.experienceBody": "Replay the quick tour or re-enable the install banner.", - "mobileSettings.experienceReplay": "Replay quick tour", - "mobileSettings.experienceResetInstall": "Show install banner", - "mobileSettings.experienceTitle": "Experience", - "mobileSettings.notificationsLoading": "Loading settings ...", - "mobileSettings.notificationsTitle": "Notifications", - "mobileSettings.pushActive": "Push aktiv", - "mobileSettings.pushDenied": "Benachrichtigungen sind im Browser blockiert.", - "mobileSettings.pushInactive": "Push deaktiviert", - "mobileSettings.pushLoading": "Lädt ...", - "mobileSettings.pushTitle": "App Push", - "mobileSettings.pushUnsupported": "Push wird auf diesem Gerät nicht unterstützt.", - "mobileSettings.tenantBadge": "Tenant #{{id}}", - "mobileSettings.title": "Settings", - "mobileTour.back": "Back", - "mobileTour.done": "Done", - "mobileTour.eventAction": "Create event", - "mobileTour.eventBody": "Add the date, location, and package to unlock sharing.", - "mobileTour.eventTitle": "Create your first event", - "mobileTour.next": "Next", - "mobileTour.photosAction": "Review photos", - "mobileTour.photosBody": "Approve, feature, or hide photos with quick swipes.", - "mobileTour.photosTitle": "Moderate uploads", - "mobileTour.progress": "Step {{current}} of {{total}}", - "mobileTour.pushAction": "Notification settings", - "mobileTour.pushBody": "Enable push alerts to catch limits and new uploads fast.", - "mobileTour.pushTitle": "Stay in the loop", - "mobileTour.qrAction": "Open QR", - "mobileTour.qrBody": "Guests join instantly by scanning or using the invite link.", - "mobileTour.qrTitle": "Share your QR code", - "mobileTour.skip": "Skip", - "mobileTour.title": "Quick tour", - "mobileUploads.emptyBody": "Add your first event to review uploads and manage QR sharing.", - "mobileUploads.emptyTitle": "Create an event first", - "mobileUploads.open": "Open", - "mobileUploads.pickEvent": "Pick an event to manage uploads", - "mobileUploads.title": "Uploads", - "nav.blog": "Blog", - "nav.close_menu": "Menü schließen", - "nav.contact": "__STRING_NOT_TRANSLATED__", - "nav.cta_demo": "Jetzt ausprobieren", - "nav.dashboard": "Zum Admin-Bereich", - "nav.discover_packages": "__STRING_NOT_TRANSLATED__", - "nav.gift": "Paket verschenken (Gutschein)", - "nav.home": "Home", - "nav.how_it_works": "So funktioniert's", - "nav.language": "Sprache", - "nav.login": "Anmelden", - "nav.logout": "Abmelden", - "nav.occasions": "Anlässe", - "nav.occasions_types.birthdays": "Geburtstage", - "nav.occasions_types.confirmation": "Konfirmation", - "nav.occasions_types.corporate": "Firmenevents", - "nav.occasions_types.weddings": "Hochzeiten", - "nav.open_menu": "Menü öffnen", - "nav.packages": "Pakete", - "nav.preferences": "Einstellungen", - "nav.profile": "Profile", - "nav.tasks": "Tasks", - "nav.theme_dark": "Dunkles Design", - "nav.theme_light": "Helles Design", - "nav.uploads": "Uploads", - "navigation.achievements": "__STRING_NOT_TRANSLATED__", - "navigation.gallery": "__STRING_NOT_TRANSLATED__", - "navigation.home": "__STRING_NOT_TRANSLATED__", - "navigation.tasks": "__STRING_NOT_TRANSLATED__", - "next_post": "__STRING_NOT_TRANSLATED__", - "notFound.description": "__STRING_NOT_TRANSLATED__", - "notFound.title": "__STRING_NOT_TRANSLATED__", - "not_found": { - "tips": [ - null, - null, - null + "demo_page": { + "title": "Jetzt ausprobieren", + "subtitle": "Scanne den QR-Code, lade Fotos hoch und erlebe die Fotospiel-Galerie genau so, wie deine Gäste sie sehen – komplett im Browser.", + "primaryCta": "Pakete entdecken", + "secondaryCta": "Zum Leitfaden", + "iframeNote": "Demo-Uploads werden regelmäßig zurückgesetzt – nutze den QR-Code im Frame oder öffne die Demo im neuen Tab.", + "openFull": "Demo im neuen Tab öffnen", + "features": [ + { + "title": "Echter Gast-Flow", + "description": "Direkter Zugang zur Galerie ohne App oder Login – inklusive Offline-Puffer." + }, + { + "title": "Live-Slideshow ready", + "description": "Zeige neue Uploads sofort auf jedem Bildschirm über die Live-Show." + }, + { + "title": "Moderation inklusive", + "description": "Teste Freigabemodus, Reaktionen und Favoriten – alles DSGVO-konform." + } ] }, - "not_found.cta_contact": "__STRING_NOT_TRANSLATED__", - "not_found.cta_home": "__STRING_NOT_TRANSLATED__", - "not_found.cta_packages": "__STRING_NOT_TRANSLATED__", - "not_found.description": "__STRING_NOT_TRANSLATED__", - "not_found.requested_path_label": "Angefragter Pfad", - "not_found.subtitle": "__STRING_NOT_TRANSLATED__", - "not_found.tip_heading": "__STRING_NOT_TRANSLATED__", - "not_found.tips": "__STRING_NOT_TRANSLATED__", - "not_found.title": "__STRING_NOT_TRANSLATED__", - "notificationLogs.clearFilter": "Show all notifications", - "notificationLogs.eventLimit.body": "Your package allows no more events. Limit: {{limit}}.", - "notificationLogs.eventLimit.title": "Event quota reached", - "notificationLogs.filter.all": "All", - "notificationLogs.filter.read": "Read", - "notificationLogs.filter.unread": "Unread", - "notificationLogs.filterEmpty": "No notifications for this event.", - "notificationLogs.galleryExpired.body": "{{event}} gallery is offline. Extend to reactivate.", - "notificationLogs.galleryExpired.title": "Gallery expired", - "notificationLogs.galleryWarning.body": "{{event}} expires in {{days}} days.", - "notificationLogs.galleryWarning.title": "Gallery expiring soon", - "notificationLogs.generic.body": "Notification sent via {{channel}}.", - "notificationLogs.guestLimit.body": "{{event}} reached its guest limit of {{limit}}.", - "notificationLogs.guestLimit.title": "Guest limit reached", - "notificationLogs.guestThreshold.body": "{{event}} is at {{used}} / {{limit}} guests.", - "notificationLogs.guestThreshold.title": "Guest usage warning", - "notificationLogs.markAllRead": "Mark all read", - "notificationLogs.markFailed": "Could not update notifications.", - "notificationLogs.markRead": "Mark read", - "notificationLogs.markScopeRead": "Mark read", - "notificationLogs.photoLimit.body": "{{event}} reached its photo limit of {{limit}}.", - "notificationLogs.photoLimit.title": "Photo limit reached", - "notificationLogs.photoThreshold.body": "{{event}} is at {{used}} / {{limit}} photos.", - "notificationLogs.photoThreshold.title": "Photo usage warning", - "notificationLogs.read": "Read", - "notificationLogs.scope.all": "All scopes", - "notificationLogs.scope.events": "Events", - "notificationLogs.scope.gallery": "Gallery", - "notificationLogs.scope.general": "General", - "notificationLogs.scope.guests": "Guests", - "notificationLogs.scope.package": "Package", - "notificationLogs.scope.photos": "Photos", - "notificationLogs.unread": "Unread", - "occasions.birthdays.benefit1": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.benefit2": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.benefit3": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.benefit4": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.description": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.title": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.benefit1": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.benefit2": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.benefit3": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.benefit4": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.description": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.title": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.benefit1": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.benefit2": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.benefit3": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.benefit4": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.description": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.title": "__STRING_NOT_TRANSLATED__", - "occasions.cta": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefit1": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefit2": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefit3": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefit4": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefits_title": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.description": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.hero_title": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.title": "__STRING_NOT_TRANSLATED__", - "onboarding": "__STRING_NOT_TRANSLATED__", - "packages.available": "__STRING_NOT_TRANSLATED__", - "packages.badge_best_value": "__STRING_NOT_TRANSLATED__", - "packages.badge_most_popular": "__STRING_NOT_TRANSLATED__", - "packages.badge_starter": "__STRING_NOT_TRANSLATED__", - "packages.billing_per_event": "__STRING_NOT_TRANSLATED__", - "packages.billing_per_year": "__STRING_NOT_TRANSLATED__", - "packages.breakdown_label": "__STRING_NOT_TRANSLATED__", - "packages.breakdown_label_hint": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.days_one": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.days_other": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.guests_one": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.guests_other": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.photos_one": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.photos_other": "__STRING_NOT_TRANSLATED__", - "packages.card.description": "Ready for your next event right away.", - "packages.card.select": "Select package", - "packages.card.selected": "Selected", - "packages.close": "__STRING_NOT_TRANSLATED__", - "packages.comparison_features": "__STRING_NOT_TRANSLATED__", - "packages.comparison_hint": "__STRING_NOT_TRANSLATED__", - "packages.comparison_limits": "__STRING_NOT_TRANSLATED__", - "packages.comparison_subtitle": "__STRING_NOT_TRANSLATED__", - "packages.comparison_title": "__STRING_NOT_TRANSLATED__", - "packages.contact_us": "__STRING_NOT_TRANSLATED__", - "packages.cta.billing.button": "Open billing", - "packages.cta.summary.button": "Continue to summary", - "packages.cta_explore": "__STRING_NOT_TRANSLATED__", - "packages.currency.euro": "__STRING_NOT_TRANSLATED__", - "packages.faq_free": "__STRING_NOT_TRANSLATED__", - "packages.faq_free_desc": "__STRING_NOT_TRANSLATED__", - "packages.faq_lead": "__STRING_NOT_TRANSLATED__", - "packages.faq_payment": "__STRING_NOT_TRANSLATED__", - "packages.faq_payment_desc": "__STRING_NOT_TRANSLATED__", - "packages.faq_reseller": "__STRING_NOT_TRANSLATED__", - "packages.faq_reseller_desc": "__STRING_NOT_TRANSLATED__", - "packages.faq_title": "__STRING_NOT_TRANSLATED__", - "packages.faq_upgrade": "__STRING_NOT_TRANSLATED__", - "packages.faq_upgrade_desc": "__STRING_NOT_TRANSLATED__", - "packages.feature": "__STRING_NOT_TRANSLATED__", - "packages.feature_custom_branding": "__STRING_NOT_TRANSLATED__", - "packages.feature_highlights": "__STRING_NOT_TRANSLATED__", - "packages.feature_no_branding": "__STRING_NOT_TRANSLATED__", - "packages.feature_support": "__STRING_NOT_TRANSLATED__", - "packages.feature_watermark": "__STRING_NOT_TRANSLATED__", - "packages.for_endcustomers": "__STRING_NOT_TRANSLATED__", - "packages.for_resellers": "__STRING_NOT_TRANSLATED__", - "packages.free": "__STRING_NOT_TRANSLATED__", - "packages.gallery_days_label": "__STRING_NOT_TRANSLATED__", - "packages.gift_cta": "Paket verschenken", - "packages.hero_description": "__STRING_NOT_TRANSLATED__", - "packages.hero_secondary": "__STRING_NOT_TRANSLATED__", - "packages.hero_title": "__STRING_NOT_TRANSLATED__", - "packages.layout.eyebrow": "Step 2", - "packages.layout.subtitle": "Fotospiel supports flexible pricing: single-use event slots or subscriptions covering multiple events.", - "packages.layout.title": "Choose your package", - "packages.limits_label": "__STRING_NOT_TRANSLATED__", - "packages.max_events_year": "__STRING_NOT_TRANSLATED__", - "packages.max_guests_label": "__STRING_NOT_TRANSLATED__", - "packages.max_photos_label": "__STRING_NOT_TRANSLATED__", - "packages.max_tenants": "__STRING_NOT_TRANSLATED__", - "packages.more_details_tab": "__STRING_NOT_TRANSLATED__", - "packages.no_watermark": "__STRING_NOT_TRANSLATED__", - "packages.not_available": "__STRING_NOT_TRANSLATED__", - "packages.one_time": "__STRING_NOT_TRANSLATED__", - "packages.order_hint": "__STRING_NOT_TRANSLATED__", - "packages.price": "__STRING_NOT_TRANSLATED__", - "packages.priority_support": "__STRING_NOT_TRANSLATED__", - "packages.standard_support": "__STRING_NOT_TRANSLATED__", - "packages.state.emptyDescription": "No packages are currently available. Reach out to support to enable new offers.", - "packages.state.emptyTitle": "Catalogue is empty", - "packages.state.errorDescription": "Please try again or contact support.", - "packages.state.errorTitle": "Failed to load", - "packages.state.loading": "Loading packages …", - "packages.step.description": "Secure capacity for your next event. Upgrade at any time – only pay for what you need.", - "packages.step.title": "Activate the right plan", - "packages.subscription": "__STRING_NOT_TRANSLATED__", - "packages.tab_endcustomer": "__STRING_NOT_TRANSLATED__", - "packages.tab_reseller": "__STRING_NOT_TRANSLATED__", - "packages.testimonials.anna": "__STRING_NOT_TRANSLATED__", - "packages.testimonials.lisa": "__STRING_NOT_TRANSLATED__", - "packages.testimonials.max": "__STRING_NOT_TRANSLATED__", - "packages.testimonials_title": "__STRING_NOT_TRANSLATED__", - "packages.title": "__STRING_NOT_TRANSLATED__", - "packages.to_order": "__STRING_NOT_TRANSLATED__", - "packages.view_details": "__STRING_NOT_TRANSLATED__", - "packages.watermark_label": "__STRING_NOT_TRANSLATED__", - "pendingUploads.card.justNow": "__STRING_NOT_TRANSLATED__", - "pendingUploads.card.pending": "__STRING_NOT_TRANSLATED__", - "pendingUploads.card.uploadedAt": "__STRING_NOT_TRANSLATED__", - "pendingUploads.cta": "__STRING_NOT_TRANSLATED__", - "pendingUploads.emptyBody": "__STRING_NOT_TRANSLATED__", - "pendingUploads.emptyTitle": "__STRING_NOT_TRANSLATED__", - "pendingUploads.error": "__STRING_NOT_TRANSLATED__", - "pendingUploads.loading": "Lade Uploads...", - "pendingUploads.refresh": "__STRING_NOT_TRANSLATED__", - "pendingUploads.subtitle": "__STRING_NOT_TRANSLATED__", - "pendingUploads.successBody": "__STRING_NOT_TRANSLATED__", - "pendingUploads.successTitle": "__STRING_NOT_TRANSLATED__", - "pendingUploads.title": "__STRING_NOT_TRANSLATED__", - "photobooth.actions.disable": "Disable uploads", - "photobooth.actions.enable": "Enable uploads", - "photobooth.actions.rotate": "Regenerate access", - "photobooth.actions.toggle": "Toggle photobooth access", - "photobooth.credentials.description": "Share these credentials with your photobooth software.", - "photobooth.credentials.ftps": "FTPS required", - "photobooth.credentials.ftpsHint": "Use FTPS if required; uploads go into the target folder for this event.", - "photobooth.credentials.heading": "FTP (Classic)", - "photobooth.credentials.host": "Host", - "photobooth.credentials.password": "Password", - "photobooth.credentials.path": "Target folder", - "photobooth.credentials.port": "Port", - "photobooth.credentials.postUrl": "Upload URL", - "photobooth.credentials.sparkboothTitle": "Sparkbooth / HTTP", - "photobooth.credentials.username": "Username", - "photobooth.mode.active": "Current: {{mode}}", - "photobooth.mode.ftp": "FTP (Classic)", - "photobooth.mode.sparkbooth": "Sparkbooth (HTTP POST)", - "photobooth.rateLimit.label": "Rate limit (uploads/min)", - "photobooth.selector.description": "FTP (Classic) works with most booths. Sparkbooth uses HTTP POST without FTP.", - "photobooth.selector.title": "Choose adapter", - "photobooth.sparkbooth.format": "Response format", - "photobooth.sparkbooth.hint": "POST with media file or base64 \"media\" field; username/password required.", - "photobooth.stats.lastUpload": "Last upload", - "photobooth.stats.uploads24h": "Uploads last 24h", - "photobooth.stats.uploadsTotal": "Uploads total", - "photobooth.status.badgeActive": "ACTIVE", - "photobooth.status.badgeInactive": "INACTIVE", - "photobooth.status.expires": "Access expires", - "photobooth.status.heading": "Status", - "photobooth.status.mode": "Mode", - "photobooth.status.never": "Never", - "photobooth.title": "Photobooth", - "photos.actions.approve": "Approve", - "photos.actions.feature": "Set highlight", - "photos.actions.hide": "Hide", - "photos.actions.show": "Show", - "photos.actions.unfeature": "Remove highlight", - "photos.filters.featured": "Featured", - "photos.filters.hidden": "Hidden", - "photos.filters.pending": "Pending", - "photos.filters.search": "Search uploads …", - "previous_post": "__STRING_NOT_TRANSLATED__", - "processing.copy": "One moment please while we prepare your dashboard.", - "processing.title": "Signing you in …", - "profile": "__STRING_NOT_TRANSLATED__", - "profileSetup.card.description": "__STRING_NOT_TRANSLATED__", - "profileSetup.error.backToStart": "__STRING_NOT_TRANSLATED__", - "profileSetup.error.default": "__STRING_NOT_TRANSLATED__", - "profileSetup.form.label": "__STRING_NOT_TRANSLATED__", - "profileSetup.form.placeholder": "__STRING_NOT_TRANSLATED__", - "profileSetup.form.submit": "__STRING_NOT_TRANSLATED__", - "profileSetup.form.submitting": "__STRING_NOT_TRANSLATED__", - "profileSetup.loading": "__STRING_NOT_TRANSLATED__", - "published_on": "__STRING_NOT_TRANSLATED__", - "read_story": "__STRING_NOT_TRANSLATED__", - "redirecting": "Redirecting to login …", - "register.address": "__STRING_NOT_TRANSLATED__", - "register.address_placeholder": "__STRING_NOT_TRANSLATED__", - "register.description": "__STRING_NOT_TRANSLATED__", - "register.email": "__STRING_NOT_TRANSLATED__", - "register.email_placeholder": "__STRING_NOT_TRANSLATED__", - "register.errors_title": "__STRING_NOT_TRANSLATED__", - "register.first_name": "__STRING_NOT_TRANSLATED__", - "register.first_name_placeholder": "__STRING_NOT_TRANSLATED__", - "register.has_account": "__STRING_NOT_TRANSLATED__", - "register.last_name": "__STRING_NOT_TRANSLATED__", - "register.last_name_placeholder": "__STRING_NOT_TRANSLATED__", - "register.login": "__STRING_NOT_TRANSLATED__", - "register.package_price": "__STRING_NOT_TRANSLATED__", - "register.package_price_free": "__STRING_NOT_TRANSLATED__", - "register.password": "__STRING_NOT_TRANSLATED__", - "register.password_confirmation": "__STRING_NOT_TRANSLATED__", - "register.password_confirmation_placeholder": "__STRING_NOT_TRANSLATED__", - "register.password_placeholder": "__STRING_NOT_TRANSLATED__", - "register.phone": "__STRING_NOT_TRANSLATED__", - "register.phone_placeholder": "__STRING_NOT_TRANSLATED__", - "register.privacy_consent": "__STRING_NOT_TRANSLATED__", - "register.privacy_policy_link": "__STRING_NOT_TRANSLATED__", - "register.server_error_message": "Etwas ist schiefgelaufen. Bitte versuche es erneut.", - "register.server_error_title": "Registrierung konnte nicht abgeschlossen werden", - "register.session_expired_message": "Deine Sitzung ist abgelaufen. Bitte lade die Seite neu und versuche es erneut.", - "register.session_expired_title": "Sicherheitsprüfung abgelaufen", - "register.submit": "__STRING_NOT_TRANSLATED__", - "register.success_toast": "Registrierung erfolgreich", - "register.title": "__STRING_NOT_TRANSLATED__", - "register.username": "__STRING_NOT_TRANSLATED__", - "register.username_placeholder": "__STRING_NOT_TRANSLATED__", - "register.validation_failed": "Bitte pruefen Sie Ihre Eingaben.", - "register.welcome": "__STRING_NOT_TRANSLATED__", - "settings.appearance.description": "Schalte Dark-Mode oder passe Branding im Admin an.", - "settings.appearance.title": "Darstellung", - "settings.cache.clear": "__STRING_NOT_TRANSLATED__", - "settings.cache.cleared": "__STRING_NOT_TRANSLATED__", - "settings.cache.clearing": "__STRING_NOT_TRANSLATED__", - "settings.cache.description": "__STRING_NOT_TRANSLATED__", - "settings.cache.note": "__STRING_NOT_TRANSLATED__", - "settings.cache.title": "__STRING_NOT_TRANSLATED__", - "settings.footer.notice": "__STRING_NOT_TRANSLATED__", - "settings.haptics.description": "__STRING_NOT_TRANSLATED__", - "settings.haptics.label": "__STRING_NOT_TRANSLATED__", - "settings.haptics.title": "__STRING_NOT_TRANSLATED__", - "settings.haptics.unsupported": "__STRING_NOT_TRANSLATED__", - "settings.help.cta": "__STRING_NOT_TRANSLATED__", - "settings.help.description": "__STRING_NOT_TRANSLATED__", - "settings.help.title": "__STRING_NOT_TRANSLATED__", - "settings.language.activeBadge": "__STRING_NOT_TRANSLATED__", - "settings.language.description": "__STRING_NOT_TRANSLATED__", - "settings.language.title": "__STRING_NOT_TRANSLATED__", - "settings.legal.description": "__STRING_NOT_TRANSLATED__", - "settings.legal.error": "__STRING_NOT_TRANSLATED__", - "settings.legal.loading": "__STRING_NOT_TRANSLATED__", - "settings.legal.title": "__STRING_NOT_TRANSLATED__", - "settings.name.description": "__STRING_NOT_TRANSLATED__", - "settings.name.label": "__STRING_NOT_TRANSLATED__", - "settings.name.loading": "__STRING_NOT_TRANSLATED__", - "settings.name.placeholder": "__STRING_NOT_TRANSLATED__", - "settings.name.reset": "__STRING_NOT_TRANSLATED__", - "settings.name.save": "__STRING_NOT_TRANSLATED__", - "settings.name.saved": "__STRING_NOT_TRANSLATED__", - "settings.name.saving": "__STRING_NOT_TRANSLATED__", - "settings.name.title": "__STRING_NOT_TRANSLATED__", - "settings.notifications.actions.save": "Speichern", - "settings.notifications.errorLoad": "Benachrichtigungen konnten nicht geladen werden.", - "settings.notifications.errorSave": "Speichern fehlgeschlagen", - "settings.profile.actions.openProfile": "Profil bearbeiten", - "settings.session.logout": "Abmelden", - "settings.session.unknown": "Benutzer", - "settings.sheet.backLabel": "__STRING_NOT_TRANSLATED__", - "settings.sheet.legalDescription": "__STRING_NOT_TRANSLATED__", - "settings.sheet.openLabel": "__STRING_NOT_TRANSLATED__", - "settings.subtitle": "__STRING_NOT_TRANSLATED__", - "settings.title": "__STRING_NOT_TRANSLATED__", - "share.button": "Teilen", - "share.copyError": "Link konnte nicht kopiert werden.", - "share.copyLink": "Link kopieren", - "share.copySuccess": "Link kopiert!", - "share.error": "Teilen fehlgeschlagen", - "share.imessage": "Nachrichten", - "share.loading": "Lädt…", - "share.shareCta": "Teilen", - "share.shareText": "Schau dir diesen Moment bei Fotospiel an.", - "share.title": "Geteiltes Foto", - "share.whatsapp": "WhatsApp", - "share_copied": "__STRING_NOT_TRANSLATED__", - "share_copy": "__STRING_NOT_TRANSLATED__", - "share_email": "__STRING_NOT_TRANSLATED__", - "share_hint": "__STRING_NOT_TRANSLATED__", - "share_linkedin": "__STRING_NOT_TRANSLATED__", - "share_native": "__STRING_NOT_TRANSLATED__", - "share_title": "__STRING_NOT_TRANSLATED__", - "share_whatsapp": "__STRING_NOT_TRANSLATED__", - "shop.badges.active": "Active", - "shop.badges.recommended": "Recommended", - "shop.confirmSubtitle": "You are upgrading to:", - "shop.confirmTitle": "Confirm Purchase", - "shop.errors.checkout": "Checkout failed", - "shop.legal.agb": "I agree to the Terms and Conditions and Privacy Policy.", - "shop.legal.withdrawal": "I agree that the contract execution begins immediately and I lose my right of withdrawal.", - "shop.legalTitle": "Terms & Conditions", - "shop.limits.days_one": "{{count}} Days Gallery", - "shop.limits.days_other": "{{count}} Days Gallery", - "shop.limits.photos_one": "{{count}} Photos", - "shop.limits.photos_other": "{{count}} Photos", - "shop.limits.unlimitedPhotos": "Unlimited Photos", - "shop.manage": "Manage Plan", - "shop.payNow": "Pay Now", - "shop.processing": "Processing...", - "shop.recommendationBody": "The highlighted package includes the feature you requested.", - "shop.recommendationTitle": "Recommended for you", - "shop.select": "Select", - "shop.status.active": "Active Plan", - "shop.status.owned": "Purchased", - "shop.status.remaining_one": "{{count}} Events left", - "shop.status.remaining_other": "{{count}} Events left", - "shop.subtitle": "Choose a package to unlock more features and limits.", - "shop.title": "Upgrade Package", - "sidebar_author_description": "__STRING_NOT_TRANSLATED__", - "sidebar_author_title": "__STRING_NOT_TRANSLATED__", - "status.offline": "Offline mode: changes will sync when you are back online.", - "status.queueAction": "Open Photos", - "status.queueBodyOffline_one": "{{count}} actions saved offline.", - "status.queueBodyOffline_other": "{{count}} actions saved offline.", - "status.queueBodyOnline_one": "{{count}} actions ready to sync.", - "status.queueBodyOnline_other": "{{count}} actions ready to sync.", - "status.queueTitle": "Photo actions pending", - "success": { - "already_registered": "Bereits registriert? Anmelden", - "check_email": "Überprüfen Sie Ihre E-Mail auf den Verifizierungslink.", - "complete_purchase": "Kauf abschließen", - "email_verify_desc": "Bitte überprüfen Sie Ihre E-Mail und klicken Sie auf den Verifizierungslink.", - "email_verify_title": "E-Mail verifizieren", - "loading": "Laden...", - "login": "Anmelden", - "login_to_continue": "Melden Sie sich an, um fortzufahren.", - "manage_subscription": "Abo verwalten", - "no_account": "Kein Konto? Registrieren", - "purchase_complete_desc": "Melden Sie sich an, um fortzufahren.", - "purchase_complete_title": "Kauf abschließen", - "redirecting": "Weiterleitung zum Admin-Bereich...", - "resend_verification": "Verifizierung erneut senden", - "stripe_dashboard": "Stripe-Dashboard", - "title": "Erfolg", - "trial_activated": "Trial aktiviert für 14 Tage!", - "verify_email": "E-Mail verifizieren" + "gift": { + "title": "Geschenkgutscheine", + "badge": "Pakete verschenken", + "headline": "Schenke das passende Fotospiel-Paket", + "subline": "Wähle einen Wert passend zu unseren Paketen und überrasche Freund:innen, Familie oder Kund:innen. Digitale Zustellung mit persönlicher Nachricht.", + "validity": "5 Jahre gültig. Einlösbar auf alle Endkunden-Pakete.", + "withdrawal": { + "title": "Widerrufsrecht", + "body": "14 Tage Widerrufsrecht ab Kauf. Es erlischt, sobald der Gutschein (auch teilweise) eingelöst wurde. Nach 14 Tagen kein Widerruf mehr möglich.", + "link": "Widerrufsbelehrung anzeigen" + }, + "card_subline": "Einlösbar auf alle Endkunden-Pakete.", + "card_body": "Digitale Zustellung inklusive persönlicher Nachricht.", + "not_available": "Aktuell nicht verfügbar.", + "form_title": "Gutschein versenden", + "form_subtitle": "Wir senden den Gutschein nach erfolgreicher Zahlung per E-Mail.", + "purchaser_email": "Deine E-Mail", + "recipient_name": "Name der beschenkten Person (optional)", + "recipient_name_placeholder": "Alex Beispiel", + "recipient_email": "E-Mail der beschenkten Person (optional)", + "message": "Nachricht (optional)", + "message_placeholder": "Ein kleines Geschenk für euer Event!", + "accept_terms": "Ich habe die Widerrufsbelehrung gelesen: 14 Tage Widerruf ab Kauf, erlischt mit (Teil-)Einlösung.", + "accept_terms_required": "Bitte bestätige den Hinweis zum Widerruf.", + "cta": "Weiter mit Paddle", + "processing": "Paddle-Checkout wird geöffnet …", + "error_select_tier": "Bitte wähle einen Gutscheinbetrag.", + "error_purchaser_email": "Bitte gib eine gültige E-Mail ein.", + "error_recipient_email": "Bitte gib eine gültige Empfänger-E-Mail ein.", + "error_checkout": "Checkout konnte nicht gestartet werden. Bitte versuche es erneut.", + "error": "Etwas ist schiefgelaufen. Bitte versuche es erneut.", + "lookup_title": "Gutscheinstatus prüfen", + "lookup_subtitle": "Du hast schon einen Code? Prüfe Wert, Gültigkeit und Status.", + "lookup_label": "Gutscheincode", + "lookup_cta": "Code prüfen", + "lookup_not_found": "Gutschein nicht gefunden oder nicht mehr gültig.", + "lookup_result_code": "Code: :code", + "lookup_result_value": "Wert: :amount :currency", + "lookup_result_expires": "Gültig bis :date", + "lookup_status": { + "issued": "Status: Ausgestellt (einlösbar)", + "redeemed": "Status: Eingelöst", + "refunded": "Status: Erstattet", + "expired": "Status: Abgelaufen", + "reminder": "Erinnerung geplant", + "expiry": "Ablauf-Hinweis geplant" + }, + "too_many_attempts": "Zu viele Versuche. Bitte kurz warten und erneut probieren." }, - "success.gift_bullet_email": "__STRING_NOT_TRANSLATED__", - "success.gift_bullet_redeem": "__STRING_NOT_TRANSLATED__", - "success.gift_bullet_validity": "__STRING_NOT_TRANSLATED__", - "success.gift_bullets_title": "__STRING_NOT_TRANSLATED__", - "success.gift_code_label": "__STRING_NOT_TRANSLATED__", - "success.gift_code_title": "__STRING_NOT_TRANSLATED__", - "success.gift_copied": "__STRING_NOT_TRANSLATED__", - "success.gift_copy": "__STRING_NOT_TRANSLATED__", - "success.gift_copy_failed": "__STRING_NOT_TRANSLATED__", - "success.gift_cta_home": "__STRING_NOT_TRANSLATED__", - "success.gift_description": "__STRING_NOT_TRANSLATED__", - "success.gift_expires": "__STRING_NOT_TRANSLATED__", - "success.gift_loading": "__STRING_NOT_TRANSLATED__", - "success.gift_lookup_failed": "__STRING_NOT_TRANSLATED__", - "success.gift_share": "__STRING_NOT_TRANSLATED__", - "success.gift_share_text": "__STRING_NOT_TRANSLATED__", - "success.gift_title": "__STRING_NOT_TRANSLATED__", - "success.gift_value": "__STRING_NOT_TRANSLATED__", - "summary.cta.billing.button": "Go to billing", - "summary.cta.setup.button": "Continue to setup", - "summary.details.infinity": "∞", - "summary.details.section.guestsTitle": "Guests & team", - "summary.details.section.guestsValue_one": "__STRING_NOT_TRANSLATED__", - "summary.details.section.guestsValue_other": "__STRING_NOT_TRANSLATED__", - "summary.details.section.photosTitle": "Photos & gallery", - "summary.details.section.photosValue_one": "__STRING_NOT_TRANSLATED__", - "summary.details.section.photosValue_other": "__STRING_NOT_TRANSLATED__", - "summary.details.section.statusActive": "Already purchased", - "summary.details.section.statusInactive": "Not purchased yet", - "summary.details.section.statusTitle": "Status", - "summary.footer.back": "Back to package selection", - "summary.layout.eyebrow": "Step 3", - "summary.layout.subtitle": "Review package, price, and payment before proceeding to the event setup.", - "summary.layout.title": "Order summary", - "summary.nextSteps": "__STRING_NOT_TRANSLATED__", - "summary.nextStepsTitle": "Next steps", - "summary.state.loading": "Checking available packages …", - "summary.state.missingDescription": "Select a package first or refresh if data changed.", - "summary.state.missingTitle": "No package selected", - "summary_title": "__STRING_NOT_TRANSLATED__", - "tasks.page.completedLabel": "__STRING_NOT_TRANSLATED__", - "tasks.page.ctaStart": "__STRING_NOT_TRANSLATED__", - "tasks.page.emptyDescriptionNoTasks": "__STRING_NOT_TRANSLATED__", - "tasks.page.emptyDescriptionWithTasks": "__STRING_NOT_TRANSLATED__", - "tasks.page.emptyTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.eyebrow": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.countMany_one": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.countMany_other": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.countOne_one": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.countOne_other": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.dialogTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.empty": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.none": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.recentFallback": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.showAll": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationEmptyDescription": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationEmptyTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationError": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationLoading": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationMore": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.noTasksAlert": "__STRING_NOT_TRANSLATED__", - "tasks.page.reloadButton": "__STRING_NOT_TRANSLATED__", - "tasks.page.shuffleButton": "__STRING_NOT_TRANSLATED__", - "tasks.page.shuffleCta": "__STRING_NOT_TRANSLATED__", - "tasks.page.subtitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.suggestionsEyebrow": "__STRING_NOT_TRANSLATED__", - "tasks.page.suggestionsTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.swipeHint": "__STRING_NOT_TRANSLATED__", - "tasks.page.title": "__STRING_NOT_TRANSLATED__", - "team": "__STRING_NOT_TRANSLATED__", - "title_suffix": "__STRING_NOT_TRANSLATED__", - "toc_empty": "__STRING_NOT_TRANSLATED__", - "toc_title": "__STRING_NOT_TRANSLATED__", - "upload.buttons.recheckCamera": "__STRING_NOT_TRANSLATED__", - "upload.buttons.startCamera": "__STRING_NOT_TRANSLATED__", - "upload.cameraBlocked.hint": "__STRING_NOT_TRANSLATED__", - "upload.cameraBlocked.message": "__STRING_NOT_TRANSLATED__", - "upload.cameraBlocked.title": "__STRING_NOT_TRANSLATED__", - "upload.cameraDenied.explanation": "__STRING_NOT_TRANSLATED__", - "upload.cameraDenied.hint": "__STRING_NOT_TRANSLATED__", - "upload.cameraDenied.prompt": "__STRING_NOT_TRANSLATED__", - "upload.cameraDenied.title": "__STRING_NOT_TRANSLATED__", - "upload.cameraError.explanation": "__STRING_NOT_TRANSLATED__", - "upload.cameraError.hint": "__STRING_NOT_TRANSLATED__", - "upload.cameraError.title": "__STRING_NOT_TRANSLATED__", - "upload.cameraUnsupported.message": "__STRING_NOT_TRANSLATED__", - "upload.cameraUnsupported.title": "__STRING_NOT_TRANSLATED__", - "upload.canvasError": "__STRING_NOT_TRANSLATED__", - "upload.captureButton": "__STRING_NOT_TRANSLATED__", - "upload.captureError": "__STRING_NOT_TRANSLATED__", - "upload.controls.enterFullscreen": "Vollbild", - "upload.controls.exitFullscreen": "Menü einblenden", - "upload.controls.toggleFlash": "__STRING_NOT_TRANSLATED__", - "upload.controls.toggleGrid": "__STRING_NOT_TRANSLATED__", - "upload.controls.toggleMirror": "__STRING_NOT_TRANSLATED__", - "upload.countdown.ready": "__STRING_NOT_TRANSLATED__", - "upload.countdownLabel": "__STRING_NOT_TRANSLATED__", - "upload.countdownReady": "__STRING_NOT_TRANSLATED__", - "upload.demoReadOnly": "Uploads sind in der Demo deaktiviert.", - "upload.dialogs.close": "__STRING_NOT_TRANSLATED__", - "upload.errors.galleryExpired": "__STRING_NOT_TRANSLATED__", - "upload.errors.photoLimit": "__STRING_NOT_TRANSLATED__", - "upload.errors.tooLargeHint": "Das Foto war zu groß. Bitte erneut versuchen – wir verkleinern es automatisch.", - "upload.feedError": "__STRING_NOT_TRANSLATED__", - "upload.galleryButton": "__STRING_NOT_TRANSLATED__", - "upload.hud.cards.lastUpload": "__STRING_NOT_TRANSLATED__", - "upload.hud.cards.online": "__STRING_NOT_TRANSLATED__", - "upload.hud.moodFallback": "__STRING_NOT_TRANSLATED__", - "upload.hud.moodLabel": "__STRING_NOT_TRANSLATED__", - "upload.hud.relative.days": "__STRING_NOT_TRANSLATED__", - "upload.hud.relative.hours": "__STRING_NOT_TRANSLATED__", - "upload.hud.relative.minutes": "__STRING_NOT_TRANSLATED__", - "upload.hud.relative.now": "__STRING_NOT_TRANSLATED__", - "upload.limitCheckError": "__STRING_NOT_TRANSLATED__", - "upload.limitReached": "__STRING_NOT_TRANSLATED__", - "upload.liveShow.description": "Zeige dieses Foto direkt auf der Live-Show.", - "upload.liveShow.immediate": "Erscheint sofort auf der Leinwand.", - "upload.liveShow.reviewed": "Wird nach Freigabe für die Live-Show angezeigt.", - "upload.liveShow.title": "Live-Show", - "upload.liveShow.toggle": "Live-Show aktivieren", - "upload.optimizedFallback": "Optimierung nicht möglich – wir laden das Original hoch.", - "upload.optimizedNotice": "Wir haben dein Foto verkleinert, damit der Upload schneller klappt. Eingespart: {saved}", - "upload.preparing": "__STRING_NOT_TRANSLATED__", - "upload.primer.body.part1": "__STRING_NOT_TRANSLATED__", - "upload.primer.body.part2": "__STRING_NOT_TRANSLATED__", - "upload.primer.dismiss": "__STRING_NOT_TRANSLATED__", - "upload.primer.title": "__STRING_NOT_TRANSLATED__", - "upload.retrying": "Verbindung holperig – neuer Versuch ({attempt}).", - "upload.review.keep": "__STRING_NOT_TRANSLATED__", - "upload.review.noticeBody": "Dein Foto erscheint, sobald es freigegeben wurde.", - "upload.review.noticeTitle": "Uploads werden geprüft", - "upload.review.readyAnnouncement": "__STRING_NOT_TRANSLATED__", - "upload.review.retake": "__STRING_NOT_TRANSLATED__", - "upload.status.completed": "__STRING_NOT_TRANSLATED__", - "upload.status.optimizing": "Foto wird optimiert…", - "upload.status.preparing": "__STRING_NOT_TRANSLATED__", - "upload.status.uploading": "__STRING_NOT_TRANSLATED__", - "upload.switchCamera": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.badge": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.completed": "Aufgabe gelöst!", - "upload.taskInfo.emotion": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.fallbackDescription": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.fallbackInstructions": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.fallbackTitle": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.instructionsPrefix": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.nextPrompt": "Gleich noch eine Aufgabe?", - "verification.toast_success": "Email verified successfully.", - "withdrawal.confirm_body": "__STRING_NOT_TRANSLATED__", - "withdrawal.confirm_button": "__STRING_NOT_TRANSLATED__", - "withdrawal.confirm_processing": "__STRING_NOT_TRANSLATED__", - "withdrawal.confirm_title": "__STRING_NOT_TRANSLATED__", - "withdrawal.cta_body": "__STRING_NOT_TRANSLATED__", - "withdrawal.cta_button": "__STRING_NOT_TRANSLATED__", - "withdrawal.cta_title": "__STRING_NOT_TRANSLATED__", - "withdrawal.empty_body": "__STRING_NOT_TRANSLATED__", - "withdrawal.empty_cta": "__STRING_NOT_TRANSLATED__", - "withdrawal.empty_title": "__STRING_NOT_TRANSLATED__", - "withdrawal.expires_at": "__STRING_NOT_TRANSLATED__", - "withdrawal.purchase_date": "__STRING_NOT_TRANSLATED__", - "withdrawal.selection_body": "__STRING_NOT_TRANSLATED__", - "withdrawal.selection_title": "__STRING_NOT_TRANSLATED__", - "withdrawal.subtitle": "__STRING_NOT_TRANSLATED__", - "withdrawal.title": "__STRING_NOT_TRANSLATED__" + "withdrawal": { + "cta_title": "Widerruf starten", + "cta_body": "Du kannst dein Paket widerrufen, solange noch kein Event damit erstellt wurde und der Kauf weniger als 14 Tage zurückliegt.", + "cta_button": "Widerruf erklären", + "title": "Widerruf bestätigen", + "subtitle": "Widerruf innerhalb von {{days}} Tagen nach Kauf, solange kein Event mit dem Paket gestartet wurde.", + "empty_title": "Kein widerrufbares Paket gefunden", + "empty_body": "Für deine aktuellen Käufe liegt entweder kein 14-Tage-Widerrufsrecht mehr vor oder das Paket wurde bereits für ein Event verwendet.", + "empty_cta": "Pakete ansehen", + "selection_title": "Paket auswählen", + "selection_body": "Wähle das Paket aus, das du widerrufen möchtest. Der Widerruf ist erst mit der Bestätigung rechts wirksam.", + "purchase_date": "Gekauft am {{date}}", + "expires_at": "Widerruf möglich bis {{date}}", + "confirm_title": "Widerruf offiziell erklären", + "confirm_body": "Mit dem Klick wird der Widerruf dokumentiert und die Rückerstattung gestartet. Du erhältst eine E-Mail mit Datum und Uhrzeit.", + "confirm_button": "Widerruf jetzt bestätigen", + "confirm_processing": "Widerruf wird übermittelt …" + }, + "not_found": { + "title": "Seite nicht gefunden", + "subtitle": "Ups! Diese Seite existiert nicht mehr.", + "description": "Vielleicht wurde der Link verschoben oder der Inhalt existiert nicht mehr. Hier sind ein paar Optionen, wie du weitermachen kannst.", + "tip_heading": "Was du tun kannst", + "tips": [ + "Prüfe die URL auf mögliche Tippfehler.", + "Gehe zurück zur Startseite und entdecke unsere Funktionen.", + "Kontaktiere uns, wenn du etwas Bestimmtes suchst." + ], + "cta_home": "Zur Startseite", + "cta_packages": "Pakete entdecken", + "cta_contact": "Kontakt aufnehmen", + "requested_path_label": "Angefragter Pfad" + }, + "legal": { + "imprint": "Impressum", + "privacy": "Datenschutz", + "terms": "AGB" + } } diff --git a/public/lang/en/auth.json b/public/lang/en/auth.json index 0967ef4..2e59574 100644 --- a/public/lang/en/auth.json +++ b/public/lang/en/auth.json @@ -1 +1,80 @@ -{} +{ + "login_failed": "Invalid email or password.", + "login_success": "You are now logged in.", + "registration_failed": "Registration failed.", + "registration_success": "Registration successful – proceed with purchase.", + "already_logged_in": "You are already logged in.", + "failed_credentials": "Wrong credentials.", + "header": { + "login": "Login", + "register": "Register", + "home": "Home", + "packages": "Packages", + "blog": "Blog", + "occasions": { + "wedding": "Wedding", + "birthday": "Birthday", + "corporate": "Corporate Event" + }, + "contact": "Contact" + }, + "login": { + "title": "Die Fotospiel App", + "description": "Sign in with your Fotospiel account to manage every event in one place.", + "brand": "Die Fotospiel App", + "logo_alt": "Fotospiel App logo", + "identifier": "Email or Username", + "identifier_placeholder": "you@example.com or username", + "username_or_email": "Username or Email", + "email": "Email Address", + "email_placeholder": "your@email.com", + "password": "Password", + "password_placeholder": "Your password", + "remember": "Stay logged in", + "forgot": "Forgot password?", + "submit": "Login", + "oauth_divider": "or", + "google_cta": "Continue with Google", + "google_helper": "Use your Google account to access the event dashboard securely.", + "no_account": "Don't have access yet?", + "sign_up": "Create an account" + }, + "register": { + "title": "Register", + "name": "Full Name", + "username": "Username", + "email": "Email Address", + "password": "Password", + "password_confirmation": "Confirm password", + "first_name": "First Name", + "last_name": "Last Name", + "address": "Address", + "phone": "Phone Number", + "privacy_consent": "I agree to the privacy policy and accept the processing of my personal data.", + "privacy_policy_link": "Privacy Policy", + "submit": "Register", + "first_name_placeholder": "First name", + "last_name_placeholder": "Last name", + "email_placeholder": "you@example.com", + "address_placeholder": "Street, ZIP, City", + "phone_placeholder": "+1 555 123 4567", + "username_placeholder": "e.g. wedding_julia", + "password_placeholder": "At least 8 characters", + "password_confirmation_placeholder": "Repeat your password", + "server_error_title": "We couldn't finish your registration", + "server_error_message": "Something went wrong on our side. Please try again in a moment or contact support@fotospiel.de.", + "session_expired_title": "Security check expired", + "session_expired_message": "Your session expired. Refresh the page and try again." + }, + "verification": { + "notice": "Please verify your email address.", + "resend": "Resend email", + "success_title": "Email verified", + "success_message": "Your email is confirmed. You can sign in now.", + "checkout_success_message": "Email confirmed. Continue your checkout to finish the order.", + "toast_success": "Email verified successfully.", + "expired_title": "Verification link expired", + "expired_message": "That verification link is no longer valid. Request a new email below.", + "toast_error": "Verification link expired. Request a new one." + } +} diff --git a/public/lang/en/marketing.json b/public/lang/en/marketing.json index aed1a4d..ba5aa36 100644 --- a/public/lang/en/marketing.json +++ b/public/lang/en/marketing.json @@ -1,2245 +1,1071 @@ { - "achievements.badges.description": "__STRING_NOT_TRANSLATED__", - "achievements.badges.empty": "__STRING_NOT_TRANSLATED__", - "achievements.badges.title": "__STRING_NOT_TRANSLATED__", - "achievements.feed.description": "__STRING_NOT_TRANSLATED__", - "achievements.feed.empty": "__STRING_NOT_TRANSLATED__", - "achievements.feed.likesLabel_one": "__STRING_NOT_TRANSLATED__", - "achievements.feed.likesLabel_other": "__STRING_NOT_TRANSLATED__", - "achievements.feed.taskLabel": "__STRING_NOT_TRANSLATED__", - "achievements.feed.thumbnailAlt": "__STRING_NOT_TRANSLATED__", - "achievements.feed.title": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.likesAmount_one": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.likesAmount_other": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.noPreview": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.taskLabel": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.topDescription": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.topTitle": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.trendingCount_one": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.trendingCount_other": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.trendingDescription": "__STRING_NOT_TRANSLATED__", - "achievements.highlights.trendingTitle": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.description": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.guestFallback": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.item.likes_one": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.item.likes_other": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.item.photos_one": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.item.photos_other": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.likesEmpty": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.likesTitle": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.uploadsEmpty": "__STRING_NOT_TRANSLATED__", - "achievements.leaderboard.uploadsTitle": "__STRING_NOT_TRANSLATED__", - "achievements.page.buttons.event": "__STRING_NOT_TRANSLATED__", - "achievements.page.buttons.feed": "__STRING_NOT_TRANSLATED__", - "achievements.page.buttons.personal": "__STRING_NOT_TRANSLATED__", - "achievements.page.loadError": "__STRING_NOT_TRANSLATED__", - "achievements.page.retry": "__STRING_NOT_TRANSLATED__", - "achievements.page.subtitle": "__STRING_NOT_TRANSLATED__", - "achievements.page.title": "__STRING_NOT_TRANSLATED__", - "achievements.personal.actions.tasks": "__STRING_NOT_TRANSLATED__", - "achievements.personal.actions.upload": "__STRING_NOT_TRANSLATED__", - "achievements.personal.greeting": "__STRING_NOT_TRANSLATED__", - "achievements.personal.stats": "__STRING_NOT_TRANSLATED__", - "achievements.timeline.description": "__STRING_NOT_TRANSLATED__", - "achievements.timeline.row": "__STRING_NOT_TRANSLATED__", - "achievements.timeline.title": "__STRING_NOT_TRANSLATED__", - "actions.back": "Back", - "actions.close": "Close", - "actions.dismiss": "Dismiss", - "analytics.activityTitle": "Activity Timeline", - "analytics.contributorsTitle": "Top Contributors", - "analytics.likesCount_one": "{{count}} likes", - "analytics.likesCount_other": "{{count}} likes", - "analytics.lockedBody": "Get deep insights into your event engagement with the Premium package.", - "analytics.lockedTitle": "Unlock Analytics", - "analytics.noActivity": "No uploads yet", - "analytics.noContributors": "No contributors yet", - "analytics.noTasks": "No task activity yet", - "analytics.tasksTitle": "Popular Tasks", - "analytics.title": "Analytics", - "analytics.upgradeAction": "Upgrade to Premium", - "analytics.uploadsPerHour": "Uploads per hour", - "auth": "__STRING_NOT_TRANSLATED__", - "auth.confirm.description": "This is a secure area of the application. Please confirm your password before continuing.", - "auth.confirm.password": "Password", - "auth.confirm.password_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.confirm.submit": "Confirm password", - "auth.confirm.title": "Confirm your password", - "auth.delete_user.confirm_text": "__STRING_NOT_TRANSLATED__", - "auth.delete_user.password_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.forgot.back": "__STRING_NOT_TRANSLATED__", - "auth.forgot.description": "Enter your email to receive a password reset link", - "auth.forgot.email_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.forgot.title": "Forgot password", - "auth.logoAlt": "Fotospiel", - "auth.reset.confirm_password": "Confirm password", - "auth.reset.confirm_password_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.reset.description": "Please enter your new password below", - "auth.reset.email": "__STRING_NOT_TRANSLATED__", - "auth.reset.password": "Password", - "auth.reset.password_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.reset.submit": "Reset password", - "auth.reset.title": "Reset password", - "auth.settings.password.confirm": "Confirm password", - "auth.settings.password.confirm_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.password.current": "Current password", - "auth.settings.password.current_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.password.description": "Ensure your account is using a long, random password to stay secure", - "auth.settings.password.new": "New password", - "auth.settings.password.new_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.password.save_button": "Save password", - "auth.settings.password.section_title": "Update password", - "auth.settings.password.title": "Password settings", - "auth.settings.profile.description": "Update your name and email address", - "auth.settings.profile.email": "Email address", - "auth.settings.profile.email_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.profile.email_unverified": "Your email address is unverified.", - "auth.settings.profile.language": "Language", - "auth.settings.profile.name": "Name", - "auth.settings.profile.name_placeholder": "Dein Name", - "auth.settings.profile.resend_verification": "Click here to resend the verification email.", - "auth.settings.profile.section_title": "Profile information", - "auth.settings.profile.title": "Profile settings", - "auth.settings.profile.username": "Username", - "auth.settings.profile.username_placeholder": "__STRING_NOT_TRANSLATED__", - "auth.settings.profile.verification_sent": "A new verification link has been sent to your email address.", - "back_to_blog": "__STRING_NOT_TRANSLATED__", - "billing.actions.contactSupport": "Contact support", - "billing.actions.openPackages": "Open packages", - "billing.actions.portal": "Manage in Paddle", - "billing.actions.portalBusy": "Öffne Portal...", - "billing.actions.refresh": "Refresh", - "billing.errors.load": "Konnte Abrechnung nicht laden.", - "billing.errors.portal": "Konnte das Paddle-Portal nicht öffnen.", - "billing.features.branding": "Branding", - "billing.features.watermark": "Watermark", - "billing.sections.addOns.empty": "Keine Add-ons gebucht.", - "billing.sections.addOns.hint": "Track extra photo, guest, or time bundles per event.", - "billing.sections.addOns.title": "Add-ons", - "billing.sections.invoices.empty": "Keine Zahlungen gefunden.", - "billing.sections.invoices.hint": "Review transactions and download receipts.", - "billing.sections.invoices.title": "Invoices & Payments", - "billing.sections.packages.card.statusActive": "Aktiv", - "billing.sections.packages.hint": "Active package, limits, and history at a glance.", - "billing.sections.packages.title": "Packages", - "billing.sections.transactions.labels.receipt": "Beleg", - "billing.sections.transactions.labels.tax": "__STRING_NOT_TRANSLATED__", - "billing.title": "Billing & Packages", - "blog.by": "__STRING_NOT_TRANSLATED__", - "blog.empty": "__STRING_NOT_TRANSLATED__", - "blog.hero_cta": "__STRING_NOT_TRANSLATED__", - "blog.hero_description": "__STRING_NOT_TRANSLATED__", - "blog.hero_title": "__STRING_NOT_TRANSLATED__", - "blog.posts_title": "__STRING_NOT_TRANSLATED__", - "blog.published_at": "__STRING_NOT_TRANSLATED__", - "blog.read_more": "__STRING_NOT_TRANSLATED__", - "blog.team": "__STRING_NOT_TRANSLATED__", - "blog.title": "__STRING_NOT_TRANSLATED__", + "home": { + "title": "Home - Fotospiel", + "hero_tagline": "Event photos without app downloads", + "hero_title": "Your event. Their photos. Ready in real time.", + "hero_description": "The Fotospiel App combines QR access, live galleries, and moderation in one platform—perfect for weddings, corporate events, and every celebration that deserves a highlight reel.", + "hero_bullets": [ + "Launch a live gallery in seconds", + "Private access codes keep every gallery secure", + "Slideshows, branding, and tasks on the fly" + ], + "cta_demo": "View demo", + "cta_demo_highlight": "Launch live demo", + "cta_how": "How the Fotospiel App works", + "cta_packages": "See packages", + "cta_explore": "See packages", + "cta_explore_highlight": "Start your Fotospiel App trial", + "hero_image_alt": "Guests sharing photos via QR code on their phone", + "how_title": "How the Fotospiel App works", + "how_subtitle": "From invitation to finished gallery in three smart steps.", + "step1_title": "Create event & pick a package", + "step1_desc": "Set limits for photos, guests, and branding in just a few clicks.", + "step2_title": "Share QR link & access code", + "step2_desc": "Guests scan the QR code or type your access code to start uploading instantly—no app store needed.", + "step3_title": "Moderate live & spotlight favorites", + "step3_desc": "Approve posts, trigger slideshows, and export highlight galleries on demand.", + "demo_title": "Experience the Fotospiel App demo", + "demo_description": "Our demo event shows the guest PWA inside a true 9:16 frame. Open it on your phone to try uploads, emotions, and likes live.", + "demo_hint": "Pro tip: share the link with your team so everyone can explore together.", + "demo_cta": "Go to demo", + "demo_media_alt": "Smartphone frame displaying the Fotospiel App demo", + "features_title": "Everything your event needs", + "features_highlight": [ + { + "title": "Branding & slideshows", + "description": "Match colors, overlays, and tasks to your event—complete with a live slideshow." + }, + { + "title": "Real-time moderation", + "description": "Block posts with one tap, mark favorites, and export best-of galleries effortlessly." + }, + { + "title": "Analytics & archive", + "description": "Track uploads, reactions, and downloads—archived in a GDPR-compliant workflow." + } + ], + "occasions_title": "Occasions we love", + "occasions_description": "Pick a starting point and explore best practices for your format.", + "occasions": { + "wedding": "Weddings – capture every candid", + "birthday": "Birthdays – memories from 7 to 70", + "corporate": "Corporate events – branding & security built in", + "confirmation": "Confirmation & coming of age – the family album to go" + }, + "blog_teaser_title": "Insights from the Fotospiel blog", + "blog_teaser_description": "Trends, setups, and playbooks for your next celebration.", + "blog_teaser_cta": "Visit the blog", + "packages_title": "Packages & pricing", + "packages_subtitle": "Flexible for single events or agencies—book online in minutes via card or invoice.", + "view_details": "View details", + "all_packages": "Compare all packages", + "contact_title": "Let's plan your event", + "contact_lead": "We’ll guide you through moderation, QR touchpoints, and the perfect Fotospiel App setup.", + "name_label": "Name", + "email_label": "Email", + "message_label": "Message", + "contact_privacy": "By submitting you confirm our privacy notice. We typically reply within 24 hours.", + "sending": "Sending …", + "send": "Send message", + "testimonials_title": "Voices from the community", + "testimonials_subtitle": "Over 1,200 events have already run on the Fotospiel App.", + "testimonial1": "\"Our guests documented the day for us—and everything landed in one secure archive.\"", + "testimonial2": "\"Branding, moderation, analytics—all right where I need them during an event.\"", + "testimonial3": "\"Confirmation without messaging chaos. QR out, emojis in, photos for everyone!\"", + "faq_title": "Still curious?", + "faq_subtitle": "Find quick answers here. For deep dives visit How it works.", + "faq1_q": "Can I try the Fotospiel App first?", + "faq1_a": "Absolutely! Use our demo event or pick the Free package to explore all core features.", + "faq2_q": "Do guests need an account?", + "faq2_a": "No. A personal access code is enough, and you can add an optional PIN for extra gallery protection." + }, + "packages": { + "title": "Our Packages", + "features": "Features", + "subscription_annual": "Annual Subscription", + "auto_renew": "auto-renew", + "cancel_anytime": "cancel anytime", + "trial_start": "Free Trial for :days days", + "reseller_benefits": "Benefits for Resellers", + "unlimited_events": "Unlimited Events", + "priority_support": "Priority Support", + "cancel_link": "Cancel Subscription: :link", + "hero_title": "Discover our flexible Packages", + "hero_description": "From free entry to premium features: Tailor your event package to your needs. Simple, secure, and scalable.", + "hero_secondary": "Experience the full guest flow in our live demo – no login, no install.", + "cta_demo": "View demo", + "cta_explore": "Discover Packages", + "cta_explore_highlight": "Explore top packages", + "tab_endcustomer": "End Customers", + "tab_reseller": "Resellers & Agencies", + "section_endcustomer": "Packages for End Customers (One-time purchase per event)", + "section_reseller": "Packages for Resellers (Annual Subscription)", + "free": "Free", + "one_time": "One-time purchase", + "subscription": "Subscription", + "year": "Year", + "max_photos": "Photos", + "max_guests": "Guests", + "gallery_days": "Gallery Days", + "max_events_year": "Events/Year", + "buy_now": "Buy Now", + "subscribe_now": "Subscribe Now", + "register_buy": "Register and Buy", + "register_subscribe": "Register and Subscribe", + "faq_title": "Frequently Asked Questions about Packages", + "faq_lead": "Quick answers to the essentials – check “How it works” for the full deep dive.", + "faq_q1": "What is a Package?", + "faq_a1": "A Package defines limits and features for your event, e.g. number of photos and gallery duration.", + "faq_q2": "Can I upgrade?", + "faq_a2": "Yes, choose a higher package when creating the event or upgrade later.", + "faq_q3": "What happens when it expires?", + "faq_a3": "The gallery remains readable, but uploads are blocked. Simply extend.", + "faq_q4": "Payment secure?", + "faq_a4": "Yes, via Paddle – secure and GDPR compliant.", + "final_cta": "Ready for your next event?", + "contact_us": "Contact Us", + "feature_live_slideshow": "Live Slideshow", + "feature_analytics": "Analytics", + "feature_watermark": "Watermark", + "feature_branding": "Branding", + "feature_support": "Support", + "feature_basic_uploads": "Basic Uploads", + "feature_unlimited_sharing": "Unlimited Sharing", + "feature_no_watermark": "No Watermark", + "feature_custom_tasks": "Custom Tasks", + "feature_advanced_analytics": "Advanced Analytics", + "feature_priority_support": "Priority Support", + "feature_limited_sharing": "Limited Sharing", + "feature_no_branding": "No Branding", + "feature_0": "Basic Feature", + "feature_reseller_dashboard": "Reseller Dashboard", + "feature_custom_branding": "Custom Branding", + "feature_advanced_reporting": "Advanced Reporting", + "badge_most_popular": "Most Popular", + "badge_best_value": "Best Value", + "badge_starter": "Perfect Starter", + "billing_per_event": "per event", + "billing_per_year": "per year", + "more_features": "+{{count}} more features", + "feature_overview": "Feature overview", + "order_hint": "Launch instantly – secure Paddle checkout, no hidden fees.", + "features_label": "Features", + "feature_highlights": "Feature Highlights", + "detail_labels": { + "photos": "Photos", + "guests": "Guests", + "tasks": "Challenges", + "gallery": "Gallery", + "branding": "Branding", + "events_per_year": "Events per year" + }, + "more_details_tab": "More Details", + "quick_facts": "Quick Facts", + "quick_facts_hint": "Your at-a-glance snapshot of core limits.", + "more_details_link": "See even more details", + "badge_deep_dive": "Deep Dive", + "breakdown_label": "At-a-glance", + "breakdown_label_hint": "Dive deeper into how the package is structured.", + "limits_label": "Limits & Capacity", + "limits_label_hint": "Understand the exact limits for planning and approvals.", + "for_endcustomers": "For End Customers", + "for_resellers": "For Resellers", + "view_details": "View details", + "details_show": "Show Details", + "comparison_title": "Compare Packages", + "comparison_subtitle": "Every limit and feature side by side.", + "comparison_hint": "Pick your audience and slide through the cards. The table surfaces the fine print.", + "comparison_limits": "Limits", + "comparison_features": "Features", + "price": "Price", + "max_photos_label": "Max. Photos", + "max_guests_label": "Max. Guests", + "gallery_days_label": "Gallery Days", + "watermark_label": "Watermark", + "no_watermark": "No Watermark", + "custom_branding": "Custom Branding", + "available": "Available", + "not_available": "Not available", + "standard_support": "Standard support", + "max_tenants": "Max. Tenants", + "max_events": "Max. Events/Year", + "faq_free": "What is the Free Package?", + "faq_upgrade": "Can I upgrade?", + "faq_reseller": "What for Resellers?", + "faq_payment": "Payment secure?", + "testimonials": { + "anna": "Fotospiel made our wedding perfect! Guests could easily share photos, and the gallery was a hit.", + "max": "As an event organizer, I love the analytics and easy branding. Great for corporate events!", + "lisa": "Free package for birthdays – simple and secure. No app hassle!" + }, + "what_customers_say": "What our customers say", + "close": "Close", + "to_order": "Order Now", + "details": "Details", + "customer_opinions": "Customer Opinions", + "errors": { + "select_package": "Please select a package." + }, + "currency": { + "euro": "€" + }, + "paddle_not_configured": "This package is not ready for Paddle checkout. Please contact support.", + "paddle_checkout_failed": "We could not start the Paddle checkout. Please try again later.", + "gift_cta": "Gift a package" + }, + "blog": { + "title": "Fotospiel - Blog", + "hero_title": "Fotospiel Blog", + "hero_description": "Tips, news, and guides for perfect event photos with QR codes, PWA, and more. Stay informed!", + "hero_cta": "More about Fotospiel", + "posts_title": "Latest Blog Posts", + "by": "By", + "team": "Fotospiel Team", + "published_at": "Published on", + "read_more": "Read More", + "back": "Back to Blog", + "empty": "No posts available yet. Stay tuned!", + "our_blog": "Our Blog", + "latest_posts": "Latest Posts", + "no_posts": "No posts available.", + "read_more_link": "Read More", + "date_format": "Published on :date", + "post": { + "alt": "Post Image" + } + }, + "kontakt": { + "title": "Contact - Fotospiel", + "description": "Have questions? Write to us!", + "name": "Name", + "email": "Email", + "message": "Message", + "sending": "Sending...", + "send": "Send", + "back_home": "Back to Home", + "success": "Thanks! We will get back to you soon." + }, + "occasions": { + "title": "Fotospiel for :type", + "hero_title": "Fotospiel for :type", + "hero_description": "Collect unforgettable photos from your guests with QR codes. Perfect for :type – simple, mobile, and privacy-compliant.", + "cta": "Choose Package", + "weddings": { + "title": "Weddings with Fotospiel", + "description": "Capture romantic moments: Guests share photos via QR, choose emotions like 'Romantic' or 'Joyful'. Better than traditional photo booths.", + "benefits_title": "Benefits for Weddings", + "benefit1": "QR Code for Guests: Easy sharing without app download.", + "benefit2": "Emotion Filter: Categorize photos (e.g. 'Dance', 'Kiss').", + "benefit3": "Private Gallery: Only approved photos visible.", + "benefit4": "Download: High-res for album.", + "image_alt": "Wedding photos" + }, + "birthdays": { + "title": "Celebrate Birthdays", + "description": "Let friends and family share spontaneous photos. QR on the cake – fun guaranteed!", + "benefits_title": "Benefits for Birthdays", + "benefit1": "Quick Uploads: Camera or gallery.", + "benefit2": "Likes & Shares: Highlight popular moments.", + "benefit3": "Offline-capable: PWA works without internet.", + "benefit4": "Anonymous: No registration required.", + "image_alt": "Birthday photos" + }, + "corporate": { + "title": "Corporate Events Professional", + "description": "Networking and team-building: Collect photos centrally, share highlights internally.", + "benefits_title": "Benefits for Corporate Events", + "benefit1": "QR at Booths: Guests photograph themselves.", + "benefit2": "Categories: 'Team', 'Network', 'Presentation'.", + "benefit3": "Export: For social media or intranet.", + "benefit4": "GDPR-secure: No PII stored.", + "image_alt": "Corporate event photos" + }, + "confirmation": { + "title": "Confirmation & Coming-of-Age Celebrations", + "description": "Capture the rite of passage: Guests share photos from ceremony and party without installing an app.", + "benefits_title": "Benefits for Confirmation & Coming of Age", + "benefit1": "Family-friendly QR code accessible to every generation.", + "benefit2": "Collections for ceremony, celebration, and group shots.", + "benefit3": "Moderation keeps parents in control of what is visible.", + "benefit4": "Download bundle for thank-you cards and keepsake albums.", + "image_alt": "Confirmation celebration" + }, + "family": { + "title": "Family Celebrations", + "description": "From baptisms to anniversaries: Collect memories from all relatives.", + "benefits_title": "Benefits for Family Celebrations", + "benefit1": "Easy for all ages: Large font, touch-friendly.", + "benefit2": "Emotions: 'Family', 'Happiness', 'Unity'.", + "benefit3": "Share: Via link or QR for after-party.", + "benefit4": "Unlimited: In premium plan.", + "image_alt": "Family photos" + }, + "not_found": "Event type not found.", + "hochzeit_title": "Wedding – Perfect Guest Photos with QR", + "hochzeit_desc": "Make your wedding unforgettable with Fotospiel. Guests share photos easily via QR code – secure, private, and in real-time. From ceremony to party, all moments centrally collected.", + "hochzeit_feature1": "Live Slideshow for Guests", + "hochzeit_feature2": "Emotion-based Photo Filters", + "hochzeit_feature3": "Unlimited Gallery for 30 Days", + "hochzeit_cta": "Choose Wedding Package", + "geburtstag_title": "Birthday – Celebrate with Shared Memories", + "geburtstag_desc": "Celebrate birthdays with Fotospiel! QR code for guests to upload photos – from kids' to adult parties. Easy to share, like, and download.", + "geburtstag_feature1": "Free Package for Small Parties", + "geburtstag_feature2": "Quick Uploads via PWA", + "geburtstag_feature3": "Private and Privacy Compliant", + "geburtstag_cta": "Discover Birthday Package", + "firmenevent_title": "Corporate Event – Team Events and Conferences", + "firmenevent_desc": "For corporate events, team buildings, and conferences: Fotospiel collects all photos centrally via QR. Branding, analytics, and secure gallery for your company.", + "firmenevent_feature1": "Custom Branding for Company Logo", + "firmenevent_feature2": "Advanced Analytics", + "firmenevent_feature3": "Priority Support", + "firmenevent_cta": "Request Corporate Package" + }, + "success": { + "title": "Success", + "verify_email": "Verify Email", + "check_email": "Check your email for the verification link.", + "redirecting": "Redirecting to Admin Area...", + "complete_purchase": "Complete Purchase", + "login_to_continue": "Log in to continue.", + "loading": "Loading...", + "email_verify_title": "Verify Email", + "email_verify_desc": "Please check your email and click the verification link.", + "resend_verification": "Resend Verification", + "already_registered": "Already registered? Log in", + "purchase_complete_title": "Complete Purchase", + "purchase_complete_desc": "Log in to continue.", + "login": "Log In", + "no_account": "No Account? Register", + "manage_subscription": "Manage Subscription", + "stripe_dashboard": "Stripe Dashboard", + "trial_activated": "Trial activated for 14 days!" + }, + "payment": { + "title": "Payment", + "card_details": "Card Details", + "stripe": "Credit Card", + "submit_stripe": "Pay with Card (:price)", + "loading_stripe": "Loading Stripe...", + "switch_to_card": "Switch to Credit Card", + "stripe_error": "Stripe payment failed", + "confirm_error": "Confirmation failed", + "complete_error": "Payment could not be completed" + }, "blog_show": { - "back_to_blog": "Back to Blog", + "title_suffix": " - Fotospiel Blog", "by_author": "By", "published_on": "Published on", - "title_suffix": " - Fotospiel Blog" + "back_to_blog": "Back to Blog" }, - "breadcrumb_blog": "__STRING_NOT_TRANSLATED__", - "breadcrumb_home": "__STRING_NOT_TRANSLATED__", - "by_author": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.already_logged_in_hint": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.already_logged_in_title": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.continue_with_google": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_error_title": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_helper": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_helper_badge": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_missing_package": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.google_success_toast": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.next_to_payment": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.switch_to_login": "__STRING_NOT_TRANSLATED__", - "checkout.auth_step.switch_to_register": "__STRING_NOT_TRANSLATED__", - "checkout.back": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.actions_body": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.actions_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.control_center_body": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.control_center_hint": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.control_center_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.email_followup": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.hero_badge": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.hero_body": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.hero_next": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.hero_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.onboarding_badge": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.onboarding_subtitle": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.onboarding_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.open_profile": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.package_body": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.package_label": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.package_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_body_completed": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_body_failed": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_body_processing": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_manual_hint": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_refresh": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_retry": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_state.completed": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_state.failed": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_state.processing": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.status_title": "__STRING_NOT_TRANSLATED__", - "checkout.confirmation_step.to_admin": "__STRING_NOT_TRANSLATED__", - "checkout.legal.checkbox_terms_error": "__STRING_NOT_TRANSLATED__", - "checkout.legal.checkbox_terms_label": "__STRING_NOT_TRANSLATED__", - "checkout.legal.legal_links_intro": "__STRING_NOT_TRANSLATED__", - "checkout.legal.link_cancellation": "__STRING_NOT_TRANSLATED__", - "checkout.legal.modal_description": "__STRING_NOT_TRANSLATED__", - "checkout.legal.modal_error": "__STRING_NOT_TRANSLATED__", - "checkout.legal.modal_loading": "__STRING_NOT_TRANSLATED__", - "checkout.legal.open_withdrawal": "__STRING_NOT_TRANSLATED__", - "checkout.next": "__STRING_NOT_TRANSLATED__", - "checkout.package_step.alternatives_title": "__STRING_NOT_TRANSLATED__", - "checkout.package_step.no_alternatives": "__STRING_NOT_TRANSLATED__", - "checkout.package_step.no_package_selected": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.activate_package": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.auth_required": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.free_package_desc": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.free_package_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.guided_body": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.guided_cta_hint": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.guided_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.no_package_description": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.no_package_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_disclaimer": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_error": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_intro": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_not_configured": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_overlay_ready": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_partner": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_preparing": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.paddle_ready": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.pay_with_paddle": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.processing_confirmation": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.status_error_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.status_info_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.status_processing_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.status_ready_title": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.toast_success": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.trust_secure": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.trust_support": "__STRING_NOT_TRANSLATED__", - "checkout.payment_step.trust_tax": "__STRING_NOT_TRANSLATED__", - "common": { - "contact": { - "errors": { - "email": "Email is required.", - "message": "Message is required.", - "name": "Name is required." - } + "nav": { + "home": "Home", + "how_it_works": "How it works", + "features": "Features", + "occasions": "Occasions", + "occasions_types": { + "weddings": "Weddings", + "birthdays": "Birthdays", + "corporate": "Corporate Events", + "confirmation": "Confirmations", + "family": "Family Celebrations" }, + "blog": "Blog", + "packages": "Packages", + "contact": "Contact", + "discover_packages": "Discover Packages", + "language": "Language", + "open_menu": "Open menu", + "close_menu": "Close menu", + "cta_demo": "Try it now", + "preferences": "Preferences", + "toggle_theme": "Toggle appearance", + "theme_light": "Light mode", + "theme_dark": "Dark mode", + "dashboard": "Go to Admin", + "logout": "Sign out", + "login": "Log in", + "register": "Register", + "gift": "Gift cards" + }, + "header": { + "home": "Home", + "packages": "Packages", + "blog": "Blog", + "contact": "Contact", + "login": "Login", + "register": "Register" + }, + "footer": { + "company": "S.E.B. Fotografie", + "rights_reserved": "All Rights Reserved" + }, + "register": { + "free": "Free" + }, + "currency": { + "euro": "€" + }, + "coupon": { + "label": "Coupon code", + "placeholder": "Enter your coupon code", + "apply": "Apply coupon", + "remove": "Remove coupon", + "applied": "Coupon {{code}} applied. You save {{amount}}.", + "summary_title": "Updated order summary", + "fields": { + "subtotal": "Subtotal", + "discount": "Discount", + "tax": "Tax", + "total": "Total after discount" + }, + "errors": { + "required": "Please enter a coupon code.", + "not_found": "We could not find this coupon.", + "inactive": "This coupon is not active anymore.", + "disabled": "This coupon cannot be used at checkout.", + "not_applicable": "This coupon is not valid for the selected package.", + "limit_reached": "This coupon has already been used the maximum number of times.", + "currency_mismatch": "This coupon cannot be used with the selected currency.", + "not_synced": "This coupon is not ready yet. Please try again later.", + "package_not_configured": "This package is not configured for coupon redemption.", + "login_required": "Please log in to use this coupon.", + "generic": "We could not apply this coupon. Please try another one." + } + }, + "meta": { + "title": "Fotospiel - Collect Guest Photos for Events with QR Codes", + "description": "Collect guest photos for events with QR codes. Our secure PWA platform for guests and organizers – simple, mobile, and privacy-compliant." + }, + "common": { + "unlimited": "Unlimited", + "required": "*", + "loading": "Loading...", + "included": "Included", + "star": "Star", "date": { "format": "M d, Y" }, - "included": "Included", - "loading": "Loading...", "pagination": { - "next": "Next", - "previous": "Previous" + "previous": "Previous", + "next": "Next" + }, + "contact": { + "errors": { + "name": "Name is required.", + "email": "Email is required.", + "message": "Message is required." + } }, - "required": "*", - "star": "Star", "testimonials": { "anna": { "name": "Anna M." }, - "lisa": { - "name": "Lisa K." - }, "max": { "name": "Max S." + }, + "lisa": { + "name": "Lisa K." } + } + }, + "checkout": { + "title": "Checkout", + "subtitle": "Secure Checkout Process", + "back": "Back", + "next": "Next", + "cancel": "Cancel", + "legal": { + "headline": "Legal & confirmations", + "summary_title": "Your order", + "package_label": "Selected package", + "billing_type_one_time": "One-time purchase (per event)", + "billing_type_subscription": "Subscription (recurring)", + "legal_links_intro": "Details on the withdrawal policy:", + "link_terms": "Terms & Conditions", + "link_privacy": "Privacy Policy", + "link_cancellation": "Right of Withdrawal", + "checkbox_terms_label": "I have read and accept the Terms & Conditions, Privacy Policy, and Right of Withdrawal.", + "checkbox_terms_error": "Please confirm that you have read and accepted the Terms, Privacy Policy and Right of Withdrawal.", + "checkbox_digital_content_label": "I expressly request that you begin providing the digital services (activation of my event package including gallery and hosting) before the withdrawal period has expired. I understand that I lose my right of withdrawal once the contract has been fully performed.", + "checkbox_digital_content_error": "Please confirm that you agree to the immediate start of the digital service and the related early expiry of the right of withdrawal.", + "hint_subscription_withdrawal": "For subscriptions, consumers have a 14-day right of withdrawal from the conclusion of the contract. In case of withdrawal after the start of the service, we reserve the right to claim appropriate compensation for the value of services already provided.", + "open_withdrawal": "View withdrawal policy", + "modal_description": "Below is the current withdrawal policy for your purchase.", + "modal_loading": "Loading withdrawal policy…", + "modal_error": "Could not load the withdrawal policy." }, - "unlimited": "Unlimited" - }, - "common.actions.close": "__STRING_NOT_TRANSLATED__", - "common.actions.loading": "__STRING_NOT_TRANSLATED__", - "common.active": "Active", - "common.add": "Hinzufügen", - "common.all": "All", - "common.anonymous": "Anonymous", - "common.back": "Zurück", - "common.cancel": "Cancel", - "common.center": "Zentrieren", - "common.clear": "Clear", - "common.close": "Close", - "common.copied": "Kopiert", - "common.copyFailed": "Kopieren fehlgeschlagen", - "common.disabled": "Disabled", - "common.done": "Done", - "common.enabled": "Enabled", - "common.error": "Something went wrong", - "common.left": "Links", - "common.loadMore": "Load more", - "common.loading": "Lädt...", - "common.next": "Weiter", - "common.processing": "Processing…", - "common.pullToRefresh": "__STRING_NOT_TRANSLATED__", - "common.refresh": "Refresh", - "common.refreshing": "__STRING_NOT_TRANSLATED__", - "common.releaseToRefresh": "__STRING_NOT_TRANSLATED__", - "common.reset": "Reset", - "common.retry": "Retry", - "common.right": "Rechts", - "common.save": "Save", - "common.saved": "Gespeichert", - "common.saving": "Saving...", - "common.select": "Select", - "common.selected": "Ausgewählt", - "common.ui.language_select": "__STRING_NOT_TRANSLATED__", - "common.ui.save": "Save", - "common.ui.saved": "__STRING_NOT_TRANSLATED__", - "complete_purchase": "__STRING_NOT_TRANSLATED__", - "consent.accessibility.banner_label": "__STRING_NOT_TRANSLATED__", - "consent.banner.accept": "__STRING_NOT_TRANSLATED__", - "consent.banner.body": "__STRING_NOT_TRANSLATED__", - "consent.banner.customize": "__STRING_NOT_TRANSLATED__", - "consent.banner.reject": "__STRING_NOT_TRANSLATED__", - "consent.banner.title": "__STRING_NOT_TRANSLATED__", - "consent.modal.accept_all": "__STRING_NOT_TRANSLATED__", - "consent.modal.analytics": "__STRING_NOT_TRANSLATED__", - "consent.modal.analytics_desc": "__STRING_NOT_TRANSLATED__", - "consent.modal.cancel": "__STRING_NOT_TRANSLATED__", - "consent.modal.description": "__STRING_NOT_TRANSLATED__", - "consent.modal.functional": "__STRING_NOT_TRANSLATED__", - "consent.modal.functional_desc": "__STRING_NOT_TRANSLATED__", - "consent.modal.reject_all": "__STRING_NOT_TRANSLATED__", - "consent.modal.required": "__STRING_NOT_TRANSLATED__", - "consent.modal.save": "__STRING_NOT_TRANSLATED__", - "consent.modal.title": "__STRING_NOT_TRANSLATED__", - "coupon.applied": "__STRING_NOT_TRANSLATED__", - "coupon.apply": "__STRING_NOT_TRANSLATED__", - "coupon.errors.generic": "__STRING_NOT_TRANSLATED__", - "coupon.errors.required": "__STRING_NOT_TRANSLATED__", - "coupon.errors.too_many_attempts": "__STRING_NOT_TRANSLATED__", - "coupon.fields.discount": "__STRING_NOT_TRANSLATED__", - "coupon.fields.expires": "__STRING_NOT_TRANSLATED__", - "coupon.fields.subtotal": "__STRING_NOT_TRANSLATED__", - "coupon.fields.tax": "__STRING_NOT_TRANSLATED__", - "coupon.fields.total": "__STRING_NOT_TRANSLATED__", - "coupon.legal_link": "__STRING_NOT_TRANSLATED__", - "coupon.legal_note": "__STRING_NOT_TRANSLATED__", - "coupon.placeholder": "__STRING_NOT_TRANSLATED__", - "coupon.remove": "__STRING_NOT_TRANSLATED__", - "coupon.summary_title": "__STRING_NOT_TRANSLATED__", - "ctaList.createEvent.button": "Go to event manager", - "currency.euro": "__STRING_NOT_TRANSLATED__", - "dataExports.actions.download": "Download", - "dataExports.actions.downloaded": "Download started.", - "dataExports.actions.refresh": "Refresh", - "dataExports.actions.request": "Request export", - "dataExports.actions.requested": "Export wird vorbereitet.", - "dataExports.actions.requesting": "Requesting...", - "dataExports.badges.includesMedia": "Raw media", - "dataExports.errors.download": "Download failed.", - "dataExports.errors.eventRequired": "Bitte wähle ein Event aus.", - "dataExports.errors.failed": "Export failed.", - "dataExports.errors.load": "Exports konnten nicht geladen werden.", - "dataExports.errors.request": "Export konnte nicht gestartet werden.", - "dataExports.fields.event": "Event", - "dataExports.fields.eventPlaceholder": "Choose event", - "dataExports.fields.includeMedia": "Include raw media", - "dataExports.fields.includeMediaHint": "Bigger ZIP; choose when needed.", - "dataExports.fields.scope": "Scope", - "dataExports.history.empty": "No exports yet.", - "dataExports.history.hint": "Latest 10 exports for your tenant and events.", - "dataExports.history.title": "Recent exports", - "dataExports.request.hint": "Export tenant data or a specific event archive.", - "dataExports.request.progress": "Export is running. This list refreshes automatically.", - "dataExports.request.title": "Export request", - "dataExports.scopes.event": "Event", - "dataExports.scopes.tenant": "Tenant", - "dataExports.title": "Data exports", - "delete.button": "__STRING_NOT_TRANSLATED__", - "delete.confirmation_hint": "__STRING_NOT_TRANSLATED__", - "delete.confirmation_label": "__STRING_NOT_TRANSLATED__", - "delete.confirmation_placeholder": "__STRING_NOT_TRANSLATED__", - "delete.description": "__STRING_NOT_TRANSLATED__", - "delete.title": "__STRING_NOT_TRANSLATED__", - "delete.warning_body": "__STRING_NOT_TRANSLATED__", - "delete.warning_title": "__STRING_NOT_TRANSLATED__", - "demo_page": { - "features": [ - { - "description": "Instant gallery access without apps or logins – offline uploads queue automatically.", - "title": "Authentic guest flow" + "package_step": { + "title": "Select Package", + "subtitle": "Selection and Comparison", + "description": "Choose the right package for your needs", + "no_package_selected": "No package selected. Please choose a package from the overview.", + "alternatives_title": "Alternative Packages", + "no_alternatives": "No further packages in this category available." + }, + "auth_step": { + "title": "Account", + "subtitle": "Login or Register", + "description": "Create an account or log in to continue with your purchase.", + "already_logged_in_title": "Welcome back!", + "already_logged_in_body": "You're already signed in as {{email}}. Your details are all set so you can continue without interruption.", + "already_logged_in_hint": "Need to switch accounts? Sign out briefly and restart the checkout.", + "next_to_payment": "Next to Payment", + "switch_to_register": "Register", + "switch_to_login": "Login", + "continue_with_google": "Continue with Google", + "google_success_toast": "Signed in with Google.", + "google_error_title": "Google login failed", + "google_missing_package": "Please choose a package before using Google login.", + "google_missing_email": "We could not retrieve your Google email address.", + "google_error_fallback": "We couldn't complete the Google login. Please try again.", + "google_helper": "Sign in faster with Google – we only use your details to create your Fotospiel account.", + "google_helper_badge": "Why Google?" + }, + "payment_step": { + "title": "Payment", + "subtitle": "Secure Payment", + "description": "Complete your purchase securely with your chosen payment method.", + "free_package_title": "Free Package", + "free_package_desc": "This package is free. We activate it directly after confirmation.", + "activate_package": "Activate Package", + "loading_payment": "Payment data is loading...", + "secure_payment_desc": "Secure payment with Paddle.", + "paddle_intro": "Launch the Paddle checkout right here in the wizard—no page changes required.", + "guided_title": "Secure checkout, powered by Paddle", + "guided_body": "We walk you through every step. Paddle acts as merchant of record, handles taxes automatically, and delivers compliant invoices instantly.", + "paddle_partner": "Powered by Paddle", + "trust_secure": "Encrypted payment", + "trust_tax": "Automatic tax handling", + "trust_support": "Live support within minutes", + "guided_cta_hint": "Securely processed by Paddle as Merchant of Record", + "toast_success": "Payment received – setting everything up for you.", + "paddle_preparing": "Preparing Paddle checkout…", + "paddle_overlay_ready": "Paddle checkout is running in a secure overlay. Complete the payment there and then continue here.", + "paddle_ready": "Paddle checkout opened in a new tab. Complete the payment and then continue here.", + "paddle_error": "We could not start the Paddle checkout. Please try again.", + "paddle_not_ready": "Paddle checkout is not ready yet. Please try again in a moment.", + "paddle_not_configured": "This package is not ready for Paddle checkout. Please contact support.", + "paddle_disclaimer": "Paddle processes payments as merchant of record. Taxes are calculated automatically based on your billing details.", + "pay_with_paddle": "Continue with Paddle", + "continue_after_payment": "I completed the payment", + "no_package_title": "No package selected", + "no_package_description": "Please choose a package to continue to checkout.", + "payment_failed": "Payment failed. ", + "error_card": "Card error occurred.", + "error_validation": "Input data is invalid.", + "error_connection": "Connection error. Please check your internet connection.", + "error_server": "Server error. Please try again later.", + "error_auth": "Authentication error. Please reload the page.", + "error_unknown": "Unknown error occurred.", + "processing": "Payment is being processed. Please wait...", + "needs_method": "Payment method required. Please check card details.", + "needs_confirm": "Payment needs confirmation.", + "unexpected_status": "Unexpected payment status: {status}", + "processing_btn": "Processing...", + "pay_now": "Pay Now (${price})", + "network_error": "Network error loading payment data", + "auth_required": "Please log in to continue to payment.", + "status_loading": "Preparing secure payment data…", + "status_ready": "Payment form ready. Enter your details to continue.", + "status_processing": "Processing payment with {{provider}}…", + "status_success": "Payment confirmed. Finalising your order…", + "status_info_title": "Payment status", + "status_processing_title": "We are opening the checkout", + "status_ready_title": "Checkout opened", + "status_error_title": "Payment failed", + "status_success_title": "Payment completed", + "status_retry": "Retry", + "processing_title": "Processing payment...", + "processing_body": "We have received your payment and are activating your package. This can take a minute.", + "processing_manual_hint": "If this takes too long, try again or refresh the page.", + "processing_retry": "Retry status check", + "processing_refresh": "Refresh page", + "processing_confirmation": "Payment received. Finalising your order..." + }, + "confirmation_step": { + "title": "Confirmation", + "subtitle": "All Done!", + "description": "Your package is activated. Check your email for details.", + "welcome": "Thank you for choosing the Fotospiel App!", + "package_summary": "Your {name} package is now active. You're ready to get everything set up.", + "email_followup": "We've just sent a confirmation email with your receipt and the next steps.", + "hero_badge": "Checkout complete", + "hero_title": "You're ready for the Marketing Dashboard", + "hero_body": "We activated your access and synced Paddle. Follow the checklist below to launch your first event.", + "hero_next": "Use the button below whenever you're ready to jump into your customer area—this summary is always available.", + "status_title": "Purchase status", + "status_subtitle": "We are finishing the handoff and syncing your account.", + "status_state": { + "processing": "Finalising", + "completed": "Confirmed", + "failed": "Needs attention" }, - { - "description": "Show fresh uploads on any screen using the built-in live show.", - "title": "Live slideshow ready" + "status_body_processing": "We are syncing your account with Paddle. This can take a minute.", + "status_body_completed": "Everything is ready. Your account is fully unlocked.", + "status_body_failed": "We could not confirm the purchase yet. Please try again or contact support.", + "status_manual_hint": "Still waiting? You can re-check the status or refresh the page.", + "status_retry": "Check status", + "status_refresh": "Refresh page", + "status_items": { + "payment": { + "title": "Payment confirmed", + "body": "Your Paddle payment was successful." + }, + "email": { + "title": "Receipt sent", + "body": "A confirmation email is on its way." + }, + "access": { + "title": "Access unlocked", + "body": "Your dashboard and PWA access are active." + } }, - { - "description": "Test approval, reactions, and favourites – fully GDPR compliant.", - "title": "Moderation included" - } - ], - "iframeNote": "Demo uploads reset regularly—use the QR inside the frame or open the demo in a new tab.", - "openFull": "Open demo in new tab", - "primaryCta": "Explore packages", - "secondaryCta": "Read the guide", - "subtitle": "Scan the QR code, upload photos, and experience the guest gallery exactly as attendees do – all inside the browser.", - "title": "Try Fotospiel now" + "onboarding_title": "Preview your onboarding steps", + "onboarding_subtitle": "These are the first tasks you'll see after logging in.", + "onboarding_badge": "Next steps", + "onboarding_items": { + "event": { + "title": "Create your first event", + "body": "Set title, date, and highlights. You can adjust everything later." + }, + "invites": { + "title": "Activate QR invites", + "body": "Share your event QR code or shortcut link with guests." + }, + "tasks": { + "title": "Plan photo tasks", + "body": "Pick from the library or add your own creative prompts." + } + }, + "control_center_title": "Event Control Center (PWA)", + "control_center_body": "You handle live moderation and uploads in the Control Center — mobile-first and offline-ready.", + "control_center_hint": "Install the PWA directly from the dashboard.", + "package_title": "Your package", + "package_body": "Your plan is active and ready to use.", + "package_label": "Activated package", + "actions_title": "Next actions", + "actions_body": "Jump into your admin area or update profile details.", + "package_activated": "Your package '{name}' is activated.", + "email_sent": "We have sent you a confirmation email.", + "open_profile": "Open Profile", + "to_admin": "To Admin Area" + }, + "confirmation": { + "welcome": "Thank you for choosing the Fotospiel App!", + "package_activated": "Your {name} package is active.", + "email_sent": "We've emailed you all the details.", + "open_profile": "Open Profile", + "to_admin": "To Admin Area" + }, + "auth": { + "already_logged_in": "You're already signed in as {{email}}.", + "switch_to_register": "Register", + "switch_to_login": "Login", + "continue_with_google": "Continue with Google", + "google_success_toast": "Signed in with Google.", + "google_error_title": "Google login failed", + "google_missing_package": "Please choose a package before using Google login.", + "google_missing_email": "We could not retrieve your Google email address.", + "google_error_fallback": "We couldn't complete the Google login. Please try again." + } }, - "eventAccess.loading.subtitle": "__STRING_NOT_TRANSLATED__", - "eventAccess.loading.title": "__STRING_NOT_TRANSLATED__", - "eventForm.actions.create": "Create event", - "eventForm.actions.saveDraft": "Save as draft", - "eventForm.actions.saving": "Saving…", - "eventForm.actions.update": "Update event", - "eventForm.errors.saveFailed": "Event could not be saved.", - "eventForm.fields.date.label": "Date & time", - "eventForm.fields.description.label": "Optional details", - "eventForm.fields.description.placeholder": "Description", - "eventForm.fields.location.label": "Location", - "eventForm.fields.location.placeholder": "Location", - "eventForm.fields.name.fallback": "Event", - "eventForm.fields.name.label": "Event name", - "eventForm.fields.name.placeholder": "e.g. Summer Party 2025", - "eventForm.fields.publish.help": "Enable if guests should see the event right away. You can change the status later.", - "eventForm.fields.publish.label": "Publish immediately", - "eventForm.fields.tasksMode.helpOff": "Task mode is off: guests only see the photo feed.", - "eventForm.fields.tasksMode.helpOn": "Guests can see tasks, challenges and achievements.", - "eventForm.fields.tasksMode.label": "Tasks & challenges", - "eventForm.fields.type.empty": "No event types available yet. Please add one in the admin area.", - "eventForm.fields.type.label": "Event type", - "eventForm.fields.type.loading": "Loading event types…", - "eventForm.fields.type.placeholder": "Select event type", - "eventForm.fields.uploadVisibility.helpOff": "Uploads werden zunächst geprüft und erscheinen nach Freigabe.", - "eventForm.fields.uploadVisibility.helpOn": "Neue Gast-Uploads erscheinen sofort in der Galerie (Security-Scan läuft im Hintergrund).", - "eventForm.fields.uploadVisibility.label": "Uploads visible immediately", - "eventForm.titles.create": "Create event", - "eventForm.titles.edit": "Edit event", - "eventSetup.actions.dashboard.button": "Open dashboard", - "eventSetup.actions.events.button": "Open event list", - "eventSetup.cta.billing": "Open billing", - "eventSetup.cta.button": "Create event", - "eventSetup.cta.description": "You're switching to the event manager. Assign tasks, invite members, and test the gallery. You can always return to the welcome journey.", - "eventSetup.cta.heading": "Ready for your first event?", - "eventSetup.layout.eyebrow": "Step 4", - "eventSetup.layout.subtitle": "Fill in a few details, invite co-hosts, and open your guest gallery for the big day.", - "eventSetup.layout.title": "Prepare your first event", - "eventSetup.step.description": "We guide you through name, date, mood, and tasks. Afterwards you can moderate photos and support guests live.", - "eventSetup.step.title": "Event setup in minutes", - "eventSetup.tiles.launch.copy": "Create QR codes, test the gallery, and align the run of show.", - "eventSetup.tiles.launch.title": "Prepare go-live", - "eventSetup.tiles.story.copy": "Pick imagery, colours, and emotion cards for your event.", - "eventSetup.tiles.story.title": "Story & mood", - "eventSetup.tiles.team.copy": "Invite moderators or photographers and assign roles.", - "eventSetup.tiles.team.title": "Organise your team", - "events.actions.create": "Create New Event", - "events.actions.edit": "Bearbeiten", - "events.actions.open": "Öffnen", - "events.actions.settings": "Event settings", - "events.branding.accent": "Accent", - "events.branding.bodyFont": "Body Font", - "events.branding.bodyFontPlaceholder": "SF Pro Text", - "events.branding.colors": "Colors", - "events.branding.fontPicker": "Select font", - "events.branding.fonts": "Fonts", - "events.branding.headingFont": "Headline Font", - "events.branding.headingFontPlaceholder": "SF Pro Display", - "events.branding.logo": "Logo", - "events.branding.logoAlt": "Logo", - "events.branding.logoHint": "Upload a logo to brand guest invites and QR posters.", - "events.branding.logoTooLarge": "Logo must be under 1 MB.", - "events.branding.noFonts": "Keine Schriftarten gefunden.", - "events.branding.previewSubtitle": "Aktuelle Farben & Schriften", - "events.branding.previewTitle": "Guest App Preview", - "events.branding.primary": "Primary", - "events.branding.removeLogo": "Remove", - "events.branding.replaceLogo": "Replace logo", - "events.branding.reset": "Reset to Defaults", - "events.branding.save": "Save Branding", - "events.branding.saveSuccess": "Branding gespeichert", - "events.branding.saving": "Saving...", - "events.branding.titleShort": "Branding", - "events.branding.uploadLogo": "Upload logo (max. 1 MB)", - "events.detail.active": "Aktiv", - "events.detail.dateTbd": "Date tbd", - "events.detail.kpi.guests": "Guests Registered", - "events.detail.kpi.photos": "Images Uploaded", - "events.detail.kpi.tasks": "Active Tasks", - "events.detail.locationPlaceholder": "Location", - "events.detail.managementTitle": "Event Management", - "events.detail.pickEvent": "Event wählen", - "events.errors.archiveFailed": "Archivierung fehlgeschlagen.", - "events.errors.checkoutFailed": "Add-on checkout failed.", - "events.errors.checkoutMissing": "Checkout could not be started.", - "events.errors.loadFailed": "Branding konnte nicht geladen werden.", - "events.errors.missingSlug": "No event selected.", - "events.errors.missingType": "Event type fehlt. Speichere das Event erneut im Admin.", - "events.errors.notFoundBody": "Kehre zur Eventliste zurück und wähle dort ein Event aus.", - "events.errors.notFoundTitle": "Event nicht gefunden", - "events.errors.saveFailed": "Branding konnte nicht gespeichert werden.", - "events.errors.toggleFailed": "Status konnte nicht angepasst werden.", - "events.eventStartConsent.cancel": "Cancel", - "events.eventStartConsent.checkboxWaiver": "I expressly request that the digital service begins now and understand my right of withdrawal expires once the contract has been fully performed.", - "events.eventStartConsent.confirm": "Create event", - "events.eventStartConsent.description": "Please confirm the immediate start of the digital service before creating your first event.", - "events.eventStartConsent.errorWaiver": "Please confirm the immediate start of the digital service and the early expiry of the right of withdrawal.", - "events.eventStartConsent.title": "Before your first event", - "events.feedback.genericError": "Feedback konnte nicht gesendet werden.", - "events.feedback.negative": "Brauch(t)e Unterstützung", - "events.feedback.neutral": "In Ordnung", - "events.feedback.positive": "War super", - "events.feedback.submitted": "Danke!", - "events.legalConsent.cancel": "Cancel", - "events.legalConsent.checkboxTerms": "I have read and accept the Terms & Conditions, Privacy Policy, and Right of Withdrawal.", - "events.legalConsent.checkboxWaiver": "I expressly request immediate provision of the digital service and understand my right of withdrawal expires once fulfilled.", - "events.legalConsent.confirm": "Continue to checkout", - "events.legalConsent.description": "Please confirm the legal notes before buying an add-on.", - "events.legalConsent.errorTerms": "Please confirm the terms.", - "events.legalConsent.errorWaiver": "Please confirm the waiver.", - "events.legalConsent.title": "Before purchase", - "events.list.actions.open": "Open event", - "events.list.dashboardTitle": "All Events Dashboard", - "events.list.empty.description": "Starte jetzt mit deinem ersten Event.", - "events.list.empty.filtered": "No events match this filter.", - "events.list.empty.filteredHint": "Try a different status or clear your search.", - "events.list.empty.title": "Noch kein Event angelegt", - "events.list.filters.all": "All", - "events.list.filters.draft": "Draft", - "events.list.filters.past": "Past", - "events.list.filters.upcoming": "Upcoming", - "events.list.search": "Search events", - "events.list.stats.guests": "Guests", - "events.list.stats.photos": "Photos", - "events.list.stats.tasks": "Tasks", - "events.members.admin": "Admin", - "events.members.clearFilters": "Clear filters", - "events.members.confirmRemove": "Mitglied entfernen?", - "events.members.copyEmail": "E-Mail kopiert", - "events.members.copyEmailFailed": "Kopieren nicht möglich", - "events.members.copyEmailLabel": "Copy email", - "events.members.email": "Email", - "events.members.emailInvalid": "Please enter a valid email address.", - "events.members.emailPlaceholder": "alex@example.com", - "events.members.emptyBody": "Send the first invite so helpers can access the event.", - "events.members.emptyFilteredBody": "Adjust your search or filters to see members.", - "events.members.emptyFilteredTitle": "No matching members", - "events.members.emptyTitle": "Invite your team", - "events.members.fallbackName": "Guest", - "events.members.filters.roleAdmin": "Admins", - "events.members.filters.roleAll": "All roles", - "events.members.filters.roleLabel": "Role", - "events.members.filters.roleMember": "Members", - "events.members.filters.statusActive": "Active", - "events.members.filters.statusAll": "All statuses", - "events.members.filters.statusInvited": "Invited", - "events.members.filters.statusLabel": "Status", - "events.members.filters.statusPending": "Pending", - "events.members.invite": "Send Invite", - "events.members.inviteFailed": "Einladung fehlgeschlagen.", - "events.members.inviteSuccess": "Einladung gesendet", - "events.members.inviteTitle": "Invite Member", - "events.members.listTitle": "Team & Guests", - "events.members.member": "Member", - "events.members.name": "Name", - "events.members.namePlaceholder": "Alex Example", - "events.members.remove": "Remove", - "events.members.removeFailed": "Mitglied konnte nicht entfernt werden.", - "events.members.removeHint": "Dieses Mitglied verliert den Zugang zum Event.", - "events.members.removeSuccess": "Mitglied entfernt", - "events.members.role": "Role", - "events.members.roleAdmin": "Admin", - "events.members.roleMember": "Member", - "events.members.roles.guest": "Guest", - "events.members.search": "Search members", - "events.members.statuses.active": "Active", - "events.members.statuses.invited": "Invited", - "events.members.statuses.pending": "Pending", - "events.members.statuses.unknown": "Unknown", - "events.members.title": "Guest Management", - "events.placeholders.untitled": "Unbenanntes Event", - "events.qr.align": "Align", - "events.qr.background": "Hintergrund", - "events.qr.backgroundNote": "Diese Presets sind für A4 Hochformat. Spiegelung erfolgt automatisch bei Tischkarten.", - "events.qr.backgroundPicker": "Hintergrund auswählen ({{formatLabel}})", - "events.qr.backgroundPickerFoldable": "Hintergrund für A5 (Gradient/Farbe)", - "events.qr.bottomNote": "Unterer Hinweistext", - "events.qr.colors": "Vollfarbe", - "events.qr.createFailed": "Link konnte nicht erstellt werden.", - "events.qr.createLink": "Neuen QR-Link erstellen", - "events.qr.created": "Neuer QR-Link erstellt", - "events.qr.customize": "Layout anpassen", - "events.qr.defaultFont": "Standard", - "events.qr.description": "Scan to access the event guest app.", - "events.qr.download": "Download", - "events.qr.downloadStarted": "Download gestartet", - "events.qr.expiresAt": "Valid until {{date}}", - "events.qr.exportFailed": "Export fehlgeschlagen", - "events.qr.exportPdf": "Export PDF", - "events.qr.exportPng": "Export PNG", - "events.qr.foldableBackgroundNote": "Für A5 Tischkarten bitte Gradient oder Vollfarbe wählen.", - "events.qr.fontColor": "Schriftfarbe", - "events.qr.fontFamily": "Font Family", - "events.qr.fontSize": "Font Size (px)", - "events.qr.format.poster": "A4 Poster", - "events.qr.format.posterSubtitle": "Hochformat für Aushänge", - "events.qr.format.table": "A5 Tischkarte (faltbar)", - "events.qr.format.tableSubtitle": "Quer, doppelt & gespiegelt", - "events.qr.formatLabel.foldable": "{{paper}} {{orientation}} (double A5/mirrored)", - "events.qr.formatLabel.standard": "{{paper}} {{orientation}}", - "events.qr.gradients": "Gradienten", - "events.qr.headline": "Headline", - "events.qr.heroTitle": "Entrance QR Code", - "events.qr.instructions": "Anleitung", - "events.qr.instructionsPlaceholder": "Schritt hinzufügen", - "events.qr.layoutControls": "Layout & Schrift", - "events.qr.layouts": "Print Layouts", - "events.qr.lineHeight": "Line Height", - "events.qr.missing": "Kein QR-Link vorhanden", - "events.qr.mobileLinkLabel": "Mobile link", - "events.qr.noExpiry": "No expiry configured", - "events.qr.orientation.landscape": "Landscape", - "events.qr.orientation.portrait": "Portrait", - "events.qr.positionX": "X (%)", - "events.qr.positionY": "Y (%)", - "events.qr.preview": "Vorschau", - "events.qr.previewAlt": "QR layout preview", - "events.qr.previewHeadline": "Event QR", - "events.qr.qrAlt": "QR code", - "events.qr.qr_code_label": "QR‑Code", - "events.qr.share": "Share", - "events.qr.shareFailed": "Konnte Link nicht kopieren", - "events.qr.shareSuccess": "Link geteilt", - "events.qr.size": "Größe (%)", - "events.qr.step": "Schritt", - "events.qr.step1": "Schritt 1: Format wählen", - "events.qr.subtitle": "Subtitle", - "events.qr.text": "Text", - "events.qr.textFields": "Texte", - "events.qr.textStep": "Texte & Hinweise", - "events.qr.title": "QR Code & Print Layouts", - "events.qr.width": "Breite (%)", - "events.quick.branding": "Branding & Theme", - "events.quick.guestMessages": "Guest messages", - "events.quick.guests": "Guest Management", - "events.quick.images": "Image Management", - "events.quick.liveShow": "Live Show queue", - "events.quick.liveShowSettings": "Live Show settings", - "events.quick.photobooth": "Photobooth", - "events.quick.qr": "QR Code Layouts", - "events.quick.recap": "Recap & Archive", - "events.quick.tasks": "Tasks & Checklists", - "events.recap.archive": "Archivieren", - "events.recap.archiveCopy": "Schließt die Galerie und markiert das Event als abgeschlossen.", - "events.recap.archiveTitle": "Event archivieren", - "events.recap.archivedSuccess": "Event archiviert. Galerie ist geschlossen.", - "events.recap.badge": "Nachbereitung", - "events.recap.closeGallery": "Galerie schließen", - "events.recap.copy": "Kopieren", - "events.recap.copyError": "Link konnte nicht kopiert werden.", - "events.recap.copySuccess": "Link kopiert", - "events.recap.downloadQr": "QR herunterladen", - "events.recap.downloads": "Downloads erlauben", - "events.recap.extendGallery": "Galerie verlängern", - "events.recap.feedbackTitle": "Wie lief das Event?", - "events.recap.galleryClosed": "Galerie geschlossen", - "events.recap.galleryCounts": "{{photos}} Fotos, {{pending}} offen, {{likes}} Likes", - "events.recap.galleryOpen": "Galerie geöffnet", - "events.recap.galleryTitle": "Galerie-Status", - "events.recap.moderate": "Uploads ansehen", - "events.recap.noPublicUrl": "Kein Gäste-Link gesetzt. Lege den öffentlichen Link im Event-Setup fest.", - "events.recap.openGallery": "Galerie öffnen", - "events.recap.settingsTitle": "Gast-Einstellungen", - "events.recap.share": "Teilen", - "events.recap.shareGuests": "Gäste-Galerie teilen", - "events.recap.shareLink": "Gäste-Link", - "events.recap.sharing": "Sharing erlauben", - "events.recap.subtitle": "Abschluss, Export und Galerie-Laufzeit verwalten.", - "events.sections.addons.description": "Zusätzliche Kontingente freischalten.", - "events.sections.addons.title": "Add-ons & Upgrades", - "events.stats.likes": "Likes", - "events.stats.pending": "Offen", - "events.stats.uploads": "Uploads", - "events.status.draft": "Draft", - "events.status.published": "Live", - "events.success.addonApplied": "Add-on angewendet. Limits aktualisieren sich in Kürze.", - "events.tasks.actions": "Aktionen", - "events.tasks.add": "Add", - "events.tasks.addTask": "Aufgabe hinzufügen", - "events.tasks.addTaskHint": "Erstelle eine neue Aufgabe für dieses Event.", - "events.tasks.allEmotions": "All", - "events.tasks.assigned": "Task hinzugefügt", - "events.tasks.bulkAdd": "Bulk add", - "events.tasks.bulkHint": "One task per line. These will be created and added to the event.", - "events.tasks.bulkPlaceholder": "e.g.\nBride & groom portrait\nGroup photo main guests", - "events.tasks.collectionsEmpty": "Keine Pakete vorhanden.", - "events.tasks.count_one": "{{count}} Tasks", - "events.tasks.count_other": "{{count}} Tasks", - "events.tasks.created": "Aufgabe gespeichert", - "events.tasks.customEmotion": "Custom emotion", - "events.tasks.description": "Beschreibung", - "events.tasks.descriptionPlaceholder": "Optionale Hinweise", - "events.tasks.disabledBody": "Guests see only the photo feed. Enable tasks in the event settings to show them again.", - "events.tasks.disabledTitle": "Task mode is off for this event", - "events.tasks.emotion": "Emotion", - "events.tasks.emotionColor": "Farbe", - "events.tasks.emotionFilter": "Emotion filter", - "events.tasks.emotionName": "Name", - "events.tasks.emotionNamePlaceholder": "z.B. Joy", - "events.tasks.emotionNone": "Keine", - "events.tasks.emotionRemoved": "Emotion entfernt", - "events.tasks.emotionSaved": "Emotion gespeichert", - "events.tasks.emptyActionPack": "Import pack", - "events.tasks.emptyActionTask": "Add task", - "events.tasks.emptyBody": "Create tasks or import a pack for your event.", - "events.tasks.emptyTitle": "No tasks yet", - "events.tasks.hideCollections": "Hide collections", - "events.tasks.hideLibrary": "Hide library", - "events.tasks.import": "Aufgabenpaket importieren", - "events.tasks.importHint": "Nutze vordefinierte Pakete für deinen Event-Typ.", - "events.tasks.imported": "Aufgabenpaket importiert", - "events.tasks.library": "Weitere Aufgaben", - "events.tasks.libraryEmpty": "Keine weiteren Aufgaben verfügbar.", - "events.tasks.manageEmotions": "Manage emotions", - "events.tasks.manageEmotionsHint": "Filter and keep your taxonomy tidy.", - "events.tasks.pickEvent": "Pick an event to manage tasks", - "events.tasks.quickNav": "Quick jump", - "events.tasks.remove": "Remove task", - "events.tasks.removeBody": "This will remove \"{{title}}\" from the event.", - "events.tasks.removeBodyFallback": "This will remove the task from the event.", - "events.tasks.removeTitle": "Remove task?", - "events.tasks.removed": "Aufgabe entfernt", - "events.tasks.saveEmotion": "Emotion speichern", - "events.tasks.saveTask": "Aufgabe speichern", - "events.tasks.search": "Search tasks", - "events.tasks.showCollections": "Show all", - "events.tasks.summary.assigned": "Assigned", - "events.tasks.summary.collections": "Collections", - "events.tasks.summary.emotions": "Emotions", - "events.tasks.summary.library": "Library", - "events.tasks.title": "Tasks & Checklists", - "events.tasks.titleLabel": "Titel", - "events.tasks.titlePlaceholder": "z.B. Erstes Gruppenfoto", - "events.tasks.updateFailed": "Task konnte nicht zugewiesen werden.", - "events.tasks.viewAllLibrary": "View all", - "events.watermark.errors.fileTooLarge": "Wasserzeichen muss kleiner als 3 MB sein.", - "events.watermark.errors.noAsset": "Bitte lade zuerst ein Wasserzeichen hoch.", - "events.watermark.lockedBranding": "Custom-Wasserzeichen ist im aktuellen Paket gesperrt. Standard wird genutzt.", - "events.watermark.lockedDisabled": "Kein Wasserzeichen in diesem Paket.", - "events.watermark.mode": "Modus", - "events.watermark.modeBase": "Basis", - "events.watermark.modeCustom": "Eigenes Wasserzeichen", - "events.watermark.modeOff": "Deaktiviert", - "events.watermark.offset": "Feinjustierung", - "events.watermark.offsetX": "X-Achse", - "events.watermark.offsetY": "Y-Achse", - "events.watermark.opacity": "Transparenz", - "events.watermark.padding": "Abstand zum Rand", - "events.watermark.placement": "Position & Größe", - "events.watermark.previewTitle": "Watermark Preview", - "events.watermark.replace": "Wasserzeichen ersetzen", - "events.watermark.size": "Größe", - "events.watermark.tab": "Wasserzeichen", - "events.watermark.title": "Wasserzeichen", - "events.watermark.upload": "Wasserzeichen hochladen", - "events.watermark.uploadCta": "PNG/SVG/JPG (max. 3 MB)", - "events.watermark.uploadHint": "PNG mit transparenter Fläche empfohlen.", - "export.button": "__STRING_NOT_TRANSLATED__", - "export.cooldown": "__STRING_NOT_TRANSLATED__", - "export.description": "__STRING_NOT_TRANSLATED__", - "export.download": "__STRING_NOT_TRANSLATED__", - "export.empty": "__STRING_NOT_TRANSLATED__", - "export.failed_reason": "__STRING_NOT_TRANSLATED__", - "export.pending_alert_body": "__STRING_NOT_TRANSLATED__", - "export.pending_alert_title": "__STRING_NOT_TRANSLATED__", - "export.table.action": "__STRING_NOT_TRANSLATED__", - "export.table.created": "__STRING_NOT_TRANSLATED__", - "export.table.expires": "__STRING_NOT_TRANSLATED__", - "export.table.size": "__STRING_NOT_TRANSLATED__", - "export.table.status": "__STRING_NOT_TRANSLATED__", - "export.title": "__STRING_NOT_TRANSLATED__", - "footer.company": "S.E.B. Fotografie", - "footer.rights_reserved": "Alle Rechte vorbehalten", - "footer.social": "Social", - "galleryPage.badge.newPhotos_one": "__STRING_NOT_TRANSLATED__", - "galleryPage.badge.newPhotos_other": "__STRING_NOT_TRANSLATED__", - "galleryPage.eventNotFound": "Event nicht gefunden.", - "galleryPage.loading": "Lade…", - "galleryPage.loadingEvent": "Lade Event-Info...", - "galleryPage.photo.alt": "__STRING_NOT_TRANSLATED__", - "galleryPage.photo.altTaskSuffix": "__STRING_NOT_TRANSLATED__", - "galleryPage.photo.anonymous": "Gast", - "galleryPage.photo.justNow": "Gerade eben", - "galleryPage.photo.likeAria": "Foto liken", - "galleryPage.photo.shareAria": "Foto teilen", - "galleryPage.subtitle": "__STRING_NOT_TRANSLATED__", - "galleryPage.title": "Galerie", - "galleryPublic.download": "__STRING_NOT_TRANSLATED__", - "galleryPublic.emptyDescription": "__STRING_NOT_TRANSLATED__", - "galleryPublic.emptyTitle": "__STRING_NOT_TRANSLATED__", - "galleryPublic.expiredDescription": "__STRING_NOT_TRANSLATED__", - "galleryPublic.expiredTitle": "__STRING_NOT_TRANSLATED__", - "galleryPublic.lightboxGuestFallback": "__STRING_NOT_TRANSLATED__", - "galleryPublic.loadError": "__STRING_NOT_TRANSLATED__", - "galleryPublic.loadMore": "__STRING_NOT_TRANSLATED__", - "galleryPublic.loading": "__STRING_NOT_TRANSLATED__", - "galleryPublic.loadingMore": "__STRING_NOT_TRANSLATED__", - "galleryPublic.title": "__STRING_NOT_TRANSLATED__", - "gift.accept_terms": "__STRING_NOT_TRANSLATED__", - "gift.accept_terms_required": "__STRING_NOT_TRANSLATED__", - "gift.badge": "__STRING_NOT_TRANSLATED__", - "gift.card_body": "__STRING_NOT_TRANSLATED__", - "gift.card_subline": "__STRING_NOT_TRANSLATED__", - "gift.cta": "__STRING_NOT_TRANSLATED__", - "gift.error_checkout": "__STRING_NOT_TRANSLATED__", - "gift.error_purchaser_email": "Please enter a valid email.", - "gift.error_recipient_email": "Please enter a valid email.", - "gift.error_select_tier": "__STRING_NOT_TRANSLATED__", - "gift.form_subtitle": "__STRING_NOT_TRANSLATED__", - "gift.form_title": "__STRING_NOT_TRANSLATED__", - "gift.headline": "__STRING_NOT_TRANSLATED__", - "gift.lookup_cta": "__STRING_NOT_TRANSLATED__", - "gift.lookup_label": "__STRING_NOT_TRANSLATED__", - "gift.lookup_not_found": "__STRING_NOT_TRANSLATED__", - "gift.lookup_result_code": "__STRING_NOT_TRANSLATED__", - "gift.lookup_result_expires": "__STRING_NOT_TRANSLATED__", - "gift.lookup_result_value": "__STRING_NOT_TRANSLATED__", - "gift.lookup_subtitle": "__STRING_NOT_TRANSLATED__", - "gift.lookup_title": "Gutscheinstatus", - "gift.message": "__STRING_NOT_TRANSLATED__", - "gift.message_placeholder": "__STRING_NOT_TRANSLATED__", - "gift.not_available": "__STRING_NOT_TRANSLATED__", - "gift.processing": "__STRING_NOT_TRANSLATED__", - "gift.purchaser_email": "__STRING_NOT_TRANSLATED__", - "gift.recipient_email": "__STRING_NOT_TRANSLATED__", - "gift.recipient_name": "__STRING_NOT_TRANSLATED__", - "gift.recipient_name_placeholder": "__STRING_NOT_TRANSLATED__", - "gift.subline": "__STRING_NOT_TRANSLATED__", - "gift.title": "__STRING_NOT_TRANSLATED__", - "gift.too_many_attempts": "__STRING_NOT_TRANSLATED__", - "gift.validity": "__STRING_NOT_TRANSLATED__", - "gift.withdrawal.body": "__STRING_NOT_TRANSLATED__", - "gift.withdrawal.link": "Widerrufsbelehrung öffnen", - "gift.withdrawal.title": "__STRING_NOT_TRANSLATED__", - "guestMessages.audience.all": "All guests", - "guestMessages.audience.guest": "Specific guest", - "guestMessages.composeTitle": "Send a message", - "guestMessages.emptyAction": "Compose message", - "guestMessages.emptyBody": "Share a quick reminder or highlight to keep guests engaged.", - "guestMessages.emptyTitle": "Send your first guest message", - "guestMessages.errorLoad": "Messages could not be loaded.", - "guestMessages.errorSend": "Message could not be sent.", - "guestMessages.form.audience": "Audience", - "guestMessages.form.audienceAll": "All guests", - "guestMessages.form.audienceGuest": "Specific guest (name or device)", - "guestMessages.form.cta": "CTA (optional)", - "guestMessages.form.ctaError": "CTA label and link are required together.", - "guestMessages.form.ctaHint": "Both fields are required to add a button.", - "guestMessages.form.ctaLabel": "Button label", - "guestMessages.form.ctaUrl": "https://your-link.com", - "guestMessages.form.expiresIn": "Expires in (minutes)", - "guestMessages.form.expiresPlaceholder": "60", - "guestMessages.form.guestIdentifier": "Guest name or device ID", - "guestMessages.form.guestPlaceholder": "e.g., Alex or device token", - "guestMessages.form.message": "Message", - "guestMessages.form.messagePlaceholder": "Write a short note for your guests.", - "guestMessages.form.priority": "Priority", - "guestMessages.form.priorityValue": "Priority {{value}}", - "guestMessages.form.send": "Send notification", - "guestMessages.form.title": "Title", - "guestMessages.form.titlePlaceholder": "Gallery reminder, upload nudge, ...", - "guestMessages.form.validation": "Add a title, message, and target guest when needed.", - "guestMessages.history.noBody": "No body provided.", - "guestMessages.history.untitled": "Untitled", - "guestMessages.historyTitle": "Recent messages", - "guestMessages.sendSuccess": "Notification sent to guests.", - "guestMessages.subtitle": "Send push messages to guests", - "guestMessages.title": "Guest messages", - "header.active": "Active", - "header.appName": "Event Admin", - "header.appearance": "Darstellung", - "header.appearance_dark": "Dunkel", - "header.appearance_light": "Hell", - "header.blog": "Blog", - "header.clearSelection": "Clear selection", - "header.contact": "Kontakt", - "header.createEvent": "Create event", - "header.cta": "Jetzt ausprobieren", - "header.empty": "Create your first event to get started", - "header.eventSwitcher": "Choose an event", - "header.helpGallery": "__STRING_NOT_TRANSLATED__", - "header.how_it_works": "So geht's", - "header.language": "Sprache", - "header.loading": "__STRING_NOT_TRANSLATED__", - "header.login": "__STRING_NOT_TRANSLATED__", - "header.noDate": "Date tbd", - "header.noEventsBody": "Start an event to access tasks, uploads, QR posters and more.", - "header.noEventsTitle": "Create your first event", - "header.notifications.allRead": "Alles gelesen", - "header.notifications.badge.new": "Neu", - "header.notifications.badgeLabel": "Badge-Fortschritt", - "header.notifications.close": "Benachrichtigungen schließen", - "header.notifications.dismiss": "Ausblenden", - "header.notifications.empty": "Gerade gibt es keine neuen Hinweise.", - "header.notifications.emptyStatus": "Keine Upload-Hinweise oder Wartungen aktiv.", - "header.notifications.emptyUnread": "Du bist auf dem neuesten Stand!", - "header.notifications.lastSync": "Zuletzt aktualisiert", - "header.notifications.markRead": "Als gelesen markieren", - "header.notifications.never": "Noch keine Aktualisierung", - "header.notifications.offline": "Offline", - "header.notifications.open": "Benachrichtigungen anzeigen", - "header.notifications.pendingCta": "Details", - "header.notifications.pendingLabel": "Uploads in Prüfung", - "header.notifications.pushActive": "Push aktiv", - "header.notifications.pushDenied": "Browser blockiert Benachrichtigungen", - "header.notifications.pushDisable": "Deaktivieren", - "header.notifications.pushEnable": "Aktivieren", - "header.notifications.pushInactive": "Push deaktiviert", - "header.notifications.pushLoading": "…", - "header.notifications.pushUnsupported": "Push wird nicht unterstützt", - "header.notifications.queueLabel": "Upload-Warteschlange (offline)", - "header.notifications.refresh": "Aktualisieren", - "header.notifications.scope.all": "Alle", - "header.notifications.scope.general": "Allgemein", - "header.notifications.scope.tips": "Tipps & Achievements", - "header.notifications.tabAll": "Alle", - "header.notifications.tabStatus": "Uploads/Status", - "header.notifications.tabUnread": "Neu", - "header.notifications.tasksCta": "Weiter", - "header.notifications.title": "Benachrichtigungen", - "header.notifications.unread_one": "{{count}} neu", - "header.notifications.unread_other": "{{count}} neu", - "header.occasions.birthday": "Geburtstage", - "header.occasions.confirmation": "Konfirmation/Jugendweihe", - "header.occasions.corporate": "Firmenfeiern", - "header.occasions.label": "Anlässe", - "header.occasions.wedding": "Hochzeiten", - "header.packages": "Pakete", - "header.quickQr": "Quick QR", - "header.selectEvent": "Select an event to continue", - "header.stats.online": "__STRING_NOT_TRANSLATED__", - "header.stats.tasksSolved": "__STRING_NOT_TRANSLATED__", - "header.utility": "Darstellung und Sprache öffnen", - "help.article.back": "__STRING_NOT_TRANSLATED__", - "help.article.relatedTitle": "__STRING_NOT_TRANSLATED__", - "help.article.reload": "__STRING_NOT_TRANSLATED__", - "help.article.unavailable": "__STRING_NOT_TRANSLATED__", - "help.article.updated": "__STRING_NOT_TRANSLATED__", - "help.center.empty": "__STRING_NOT_TRANSLATED__", - "help.center.error": "__STRING_NOT_TRANSLATED__", - "help.center.listTitle": "__STRING_NOT_TRANSLATED__", - "help.center.offlineBadge": "__STRING_NOT_TRANSLATED__", - "help.center.offlineDescription": "__STRING_NOT_TRANSLATED__", - "help.center.retry": "__STRING_NOT_TRANSLATED__", - "help.center.searchPlaceholder": "__STRING_NOT_TRANSLATED__", - "help.center.subtitle": "__STRING_NOT_TRANSLATED__", - "help.center.title": "__STRING_NOT_TRANSLATED__", - "hero.description": "In just a few steps you guide guests through a magical photo journey – complete with storytelling, tasks, and a moderated gallery.", - "hero.eyebrow": "Your event, your stage", - "hero.primary.billing": "Open billing", - "hero.secondary.button": "View existing events", - "hero.title": "Design the next Fotospiel experience", - "highlights.gallery.badge": "New", - "highlights.gallery.description": "Curate photos in real time, highlight favourites, and share QR codes in a tap.", - "highlights.gallery.title": "Premium guest gallery", - "highlights.story.description": "Guided tasks and emotion cards turn every event into a memorable journey.", - "highlights.story.title": "Storytelling in chapters", - "highlights.team.description": "Invite co-hosts, assign roles, and stay on top of moderation and tasks.", - "highlights.team.title": "Flexible team onboarding", - "home": { - "features_highlight": [ - null, - null, - null - ], - "hero_bullets": [ - null, - null, - null - ] - }, - "home.actions.items.tasks.label": "__STRING_NOT_TRANSLATED__", - "home.actions.items.upload.label": "__STRING_NOT_TRANSLATED__", - "home.all_packages": "__STRING_NOT_TRANSLATED__", - "home.blog_teaser_cta": "__STRING_NOT_TRANSLATED__", - "home.blog_teaser_description": "__STRING_NOT_TRANSLATED__", - "home.blog_teaser_title": "__STRING_NOT_TRANSLATED__", - "home.contact_lead": "__STRING_NOT_TRANSLATED__", - "home.contact_privacy": "__STRING_NOT_TRANSLATED__", - "home.contact_title": "__STRING_NOT_TRANSLATED__", - "home.cta_demo": "__STRING_NOT_TRANSLATED__", - "home.cta_demo_highlight": "__STRING_NOT_TRANSLATED__", - "home.cta_explore": "__STRING_NOT_TRANSLATED__", - "home.cta_how": "__STRING_NOT_TRANSLATED__", - "home.cta_packages": "__STRING_NOT_TRANSLATED__", - "home.demo_cta": "__STRING_NOT_TRANSLATED__", - "home.demo_description": "__STRING_NOT_TRANSLATED__", - "home.demo_hint": "__STRING_NOT_TRANSLATED__", - "home.demo_media_alt": "__STRING_NOT_TRANSLATED__", - "home.demo_title": "__STRING_NOT_TRANSLATED__", - "home.email_label": "__STRING_NOT_TRANSLATED__", - "home.fallbackGuestName": "__STRING_NOT_TRANSLATED__", - "home.faq1_a": "__STRING_NOT_TRANSLATED__", - "home.faq1_q": "__STRING_NOT_TRANSLATED__", - "home.faq2_a": "__STRING_NOT_TRANSLATED__", - "home.faq2_q": "__STRING_NOT_TRANSLATED__", - "home.faq_subtitle": "__STRING_NOT_TRANSLATED__", - "home.faq_title": "__STRING_NOT_TRANSLATED__", - "home.features_highlight": "__STRING_NOT_TRANSLATED__", - "home.features_title": "__STRING_NOT_TRANSLATED__", - "home.hero.defaultEventName": "__STRING_NOT_TRANSLATED__", - "home.hero.description": "__STRING_NOT_TRANSLATED__", - "home.hero.progress.none": "__STRING_NOT_TRANSLATED__", - "home.hero.progress.some": "__STRING_NOT_TRANSLATED__", - "home.hero.subtitle": "__STRING_NOT_TRANSLATED__", - "home.hero.title": "__STRING_NOT_TRANSLATED__", - "home.hero_bullets": "__STRING_NOT_TRANSLATED__", - "home.hero_bullets.0": "Antwort in <24h", - "home.hero_bullets.1": "Keine Weitergabe, kein Tracking", - "home.hero_description": "__STRING_NOT_TRANSLATED__", - "home.hero_image_alt": "__STRING_NOT_TRANSLATED__", - "home.hero_tagline": "__STRING_NOT_TRANSLATED__", - "home.hero_title": "__STRING_NOT_TRANSLATED__", - "home.how_subtitle": "__STRING_NOT_TRANSLATED__", - "home.how_title": "__STRING_NOT_TRANSLATED__", - "home.message_label": "__STRING_NOT_TRANSLATED__", - "home.name_label": "__STRING_NOT_TRANSLATED__", - "home.occasions_description": "__STRING_NOT_TRANSLATED__", - "home.occasions_title": "__STRING_NOT_TRANSLATED__", - "home.packages_subtitle": "__STRING_NOT_TRANSLATED__", - "home.packages_title": "__STRING_NOT_TRANSLATED__", - "home.send": "__STRING_NOT_TRANSLATED__", - "home.sending": "__STRING_NOT_TRANSLATED__", - "home.step1_desc": "__STRING_NOT_TRANSLATED__", - "home.step1_title": "__STRING_NOT_TRANSLATED__", - "home.step2_desc": "__STRING_NOT_TRANSLATED__", - "home.step2_title": "__STRING_NOT_TRANSLATED__", - "home.step3_desc": "__STRING_NOT_TRANSLATED__", - "home.step3_title": "__STRING_NOT_TRANSLATED__", - "home.swipeHint": "__STRING_NOT_TRANSLATED__", - "home.testimonial1": "__STRING_NOT_TRANSLATED__", - "home.testimonial2": "__STRING_NOT_TRANSLATED__", - "home.testimonial3": "__STRING_NOT_TRANSLATED__", - "home.testimonials_subtitle": "__STRING_NOT_TRANSLATED__", - "home.testimonials_title": "__STRING_NOT_TRANSLATED__", - "home.title": "__STRING_NOT_TRANSLATED__", - "home.view_details": "__STRING_NOT_TRANSLATED__", - "home.welcomeLine": "__STRING_NOT_TRANSLATED__", "how_it_works_page": { - "checklist": { - "items": [ - null, - null, - null, - null, - null, - null - ] + "hero": { + "title": "How the Fotospiel App Works", + "subtitle": "Share your QR code, collect guest photos in real time, and stay in full control – all inside the browser.", + "primaryCta": "Discover our packages", + "secondaryCta": "Talk to our team", + "stats": [ + { + "value": "5 min", + "label": "From sign-up to your first upload" + }, + { + "value": "0 apps", + "label": "Guests only need their browser" + }, + { + "value": "100%", + "label": "EU hosting & GDPR compliance" + } + ], + "demoNote": "See the demo", + "demoLabel": "View demo" }, "experience": { - "guest": { - "callouts": [ - null, - null, - null - ], + "host": { + "label": "Hosts", + "intro": "Plan, moderate, and export your event memories from a single dashboard.", "steps": [ - null, - null, - null + { + "title": "Create your event", + "description": "Pick a package, set the basics, define optional challenges and approval rules." + }, + { + "title": "Share materials", + "description": "Export the QR code, embed the link in invitations or displays, and enable the live gallery if you like." + }, + { + "title": "Moderate & secure", + "description": "Approve uploads, highlight favorites, schedule the follow-up email, and download everything as a ZIP." + } + ], + "callouts": [ + "Add co-hosts for moderation and the live show", + "Offline uploads sync automatically once back online", + "Billing handled via Paddle, mobile apps through RevenueCat" ] }, - "host": { - "callouts": [ - null, - null, - null - ], + "guest": { + "label": "Guests", + "intro": "Your guests simply scan, shoot, and share. No login, no download, no friction.", "steps": [ - null, - null, - null + { + "title": "Scan the QR code", + "description": "The branded event page opens instantly in the browser – no install required." + }, + { + "title": "Snap a photo", + "description": "Use the camera or pick from the gallery, optional challenges keep it fun." + }, + { + "title": "Enjoy the gallery", + "description": "Uploads appear after approval in the gallery and live show, downloads stay accessible whenever needed." + } + ], + "callouts": [ + "Progressive Web App mode with optional homescreen icon", + "Local caching if the connection drops – auto sync later", + "Accessible UI for modern iOS and Android browsers" ] } }, - "faq": { - "items": [ - null, - null, - null, - null, - null, - null - ] - }, - "hero": { - "stats": [ - null, - null, - null - ] - }, "pillars": [ - null, - null, - null, - null + { + "title": "Launch in minutes", + "description": "QR code, link, and live show are ready instantly. We provide print templates and copy blocks." + }, + { + "title": "Moderation & safety", + "description": "Approval modes, takedowns, and co-hosts keep your content secure and compliant." + }, + { + "title": "On-site engagement", + "description": "Challenges, reactions, and the live slideshow spark participation without extra hardware." + }, + { + "title": "Post-event follow-up", + "description": "Export ZIPs, build best-of highlights, and send thank-you emails straight from the dashboard." + } ], "timeline": [ { + "title": "Prepare your event", + "body": "Register, choose a package, and apply your branding. Web payments run through Paddle, mobile apps via RevenueCat.", "tips": [ - null, - null + "Create a test event to experience the upload flow", + "Invite co-hosts like MCs or colleagues" ] }, { + "title": "Configure rules & challenges", + "body": "Enable optional challenges, the live slideshow, or pre-approval. Communicate your house rules.", "tips": [ - null, - null + "Small rewards boost participation", + "Use extra guidance for photos of kids" ] }, { + "title": "Distribute assets", + "body": "Download the QR code as PNG/PDF, print table cards, and add the link to invitation emails and slides.", "tips": [ - null, - null + "Place the QR at entrances and high-traffic spots", + "Add the link to reminders before the event" ] }, { + "title": "Go live", + "body": "Start the live show, approve uploads, and optionally allow reactions. Offline uploads sync when the connection returns.", "tips": [ - null, - null + "Have the MC mention Fotospiel during the welcome", + "Stream the live gallery on TV, projector, or tablet" ] }, { + "title": "Moderate & curate", + "body": "Approve, pin, or remove uploads. Every action is logged for compliance.", "tips": [ - null, - null + "Use favorites for best-of highlight reels", + "Remove inappropriate content immediately" ] }, { + "title": "Wrap up", + "body": "Define the gallery duration, export a ZIP, and send your thank-you message with the gallery link.", "tips": [ - null, - null + "Send a reminder 24 hours after the event", + "Close or extend the gallery with one click" ] } ], "use_cases": { + "title": "Fits every event", + "description": "Pick the focus that matches your format – the gallery stays the same.", "tabs": [ { - "ideas": [ - null, - null, - null - ], + "value": "wedding", + "label": "Weddings", + "goal": "Capture genuine guest perspectives beyond staged photos.", "recommendations": [ - null, - null, - null + "Place QR codes on programs and tables", + "Assign co-hosts (best man, maid of honor)", + "Run the live show during reception or dinner" + ], + "ideas": [ + "Selfie with the couple", + "Favorite dance move", + "Something blue" ] }, { - "ideas": [ - null, - null, - null - ], + "value": "birthday", + "label": "Birthdays", + "goal": "Collect candid greetings and fun surprises.", "recommendations": [ - null, - null, - null + "Mention Fotospiel in the birthday speech", + "Offer a small prize for the most creative photo", + "Place a QR sign next to the cake table" + ], + "ideas": [ + "Recreate an old memory", + "Biggest group smile", + "Cake close-up" ] }, { - "ideas": [ - null, - null, - null - ], + "value": "corporate", + "label": "Corporate", + "goal": "Generate authentic employer-branding content and recap material.", "recommendations": [ - null, - null, - null + "Use branded start screen and live show", + "Let HR or moderation introduce Fotospiel", + "Curate highlights for internal comms" + ], + "ideas": [ + "Best team selfie", + "Behind the scenes", + "Meet someone new" ] }, { - "ideas": [ - null, - null, - null - ], + "value": "confirmation", + "label": "Coming of age", + "goal": "Keep family moments secure and easy to share.", "recommendations": [ - null, - null, - null + "Separate sections for ceremony and celebration", + "Keep approval mode on for sensitive content", + "Share the download link only with close family" + ], + "ideas": [ + "Portrait with godparents", + "Highlight of the day", + "Selfie with the celebrant" ] }, { - "ideas": [ - null, - null, - null - ], + "value": "public", + "label": "Public events", + "goal": "Activate communities and gather social media content.", "recommendations": [ - null, - null, - null + "Combine large QR posters with hashtags", + "Show the live feed on LED walls", + "Communicate upload guidelines clearly" + ], + "ideas": [ + "Most colourful outfit", + "Favourite act", + "Hidden festival gem" ] } ] - } + }, + "checklist": { + "title": "Checklist: ready in 10 minutes", + "items": [ + "Event created, package & branding confirmed", + "Approval mode and moderation team defined", + "QR code & link tested (use your own phone!)", + "Printed and screen materials prepared", + "Live show / displays checked", + "Announcement and follow-up drafted" + ], + "cta": "Create your event" + }, + "faq": { + "title": "FAQ", + "items": [ + { + "question": "Do guests need an app?", + "answer": "No. Everything runs in the mobile browser. Guests can optionally save it as a PWA on their homescreen." + }, + { + "question": "What if the internet is unstable?", + "answer": "Uploads are cached locally and synchronised automatically once the connection is back." + }, + { + "question": "Can I approve uploads first?", + "answer": "Yes. Enable approval mode in the event settings to moderate before publishing." + }, + { + "question": "How long are photos available?", + "answer": "Gallery retention depends on the package – typically 14 to 90 days. See the pricing table for details." + }, + { + "question": "How do payments work?", + "answer": "Web packages are billed through Paddle (with invoices and tax handling). Mobile subscriptions are managed via RevenueCat." + }, + { + "question": "Which file formats are supported?", + "answer": "We currently accept photos (JPEG, PNG, HEIC). Videos are disabled for privacy reasons." + } + ] + }, + "support": { + "title": "Need a hand?", + "description": "Our team is happy to set up a pilot event or walk you through the dashboard.", + "cta": "Contact us" + }, + "labels": { + "timeline_heading": "A clear roadmap for your event", + "recommendations": "Recommendations", + "challenge_ideas": "Challenge ideas", + "prep_hint": "Everything you should tick off before the event.", + "good_to_know": "Good to know", + "tips": "Tips" + }, + "timeline_title": "The detailed flow" }, - "how_it_works_page.checklist": { - "cta": "", - "items": [], - "title": "" + "labels": { + "recommendations": "Recommendations", + "challengeIdeas": "Challenge ideas", + "prepHint": "Everything you should tick off before the event.", + "good_to_know": "Good to know", + "openDemoFull": "Open demo in new tab", + "readyToLaunch": "Ready to launch?", + "readyToLaunchCopy": "Sign up for free and create your first event today.", + "demoUnavailable": "Demo link currently unavailable", + "demoUnavailableCopy": "Run the demo seeds or ping us so we can attach a fresh access code for you right away." }, - "how_it_works_page.experience": "__STRING_NOT_TRANSLATED__", - "how_it_works_page.faq": { - "items": [], - "title": "" + "actions": { + "tips": "Tips" }, - "how_it_works_page.hero": { - "primaryCta": "", - "secondaryCta": "", - "stats": [], - "subtitle": "", - "title": "So funktioniert die Fotospiel App" - }, - "how_it_works_page.labels.challenge_ideas": "Ideen für Challenges", - "how_it_works_page.labels.good_to_know": "Gut zu wissen", - "how_it_works_page.labels.prep_hint": "Alles, was du vor dem Event abhaken solltest.", - "how_it_works_page.labels.recommendations": "Empfehlungen", - "how_it_works_page.labels.timeline_heading": "Ein klarer Fahrplan für dein Event", - "how_it_works_page.labels.tips": "Tipps", - "how_it_works_page.pillars": "__STRING_NOT_TRANSLATED__", - "how_it_works_page.support": { - "cta": "", - "description": "", - "title": "" - }, - "how_it_works_page.timeline": "__STRING_NOT_TRANSLATED__", - "how_it_works_page.timeline_title": "Der Ablauf im Detail", - "how_it_works_page.use_cases": { - "description": "", - "tabs": [], - "title": "" - }, - "installBanner.action": "Install", - "installBanner.body": "Add the app to your home screen for faster access and offline support.", - "installBanner.iosHint": "On iOS: Share → Add to Home Screen.", - "installBanner.title": "Install Fotospiel Admin", - "kontakt.back_home": "__STRING_NOT_TRANSLATED__", - "kontakt.description": "__STRING_NOT_TRANSLATED__", - "kontakt.email": "__STRING_NOT_TRANSLATED__", - "kontakt.message": "__STRING_NOT_TRANSLATED__", - "kontakt.name": "__STRING_NOT_TRANSLATED__", - "kontakt.send": "__STRING_NOT_TRANSLATED__", - "kontakt.sending": "__STRING_NOT_TRANSLATED__", - "kontakt.title": "__STRING_NOT_TRANSLATED__", - "labels.demoUnavailable": "Demo-Link aktuell nicht verfügbar", - "labels.demoUnavailableCopy": "Führe die Demo-Seeds aus oder kontaktiere uns, damit wir dir sofort einen neuen Zugangscode hinterlegen können.", - "landing.features.momentsCopy": "Moderierte Fotoaufgaben motivieren dein Team und halten die Stimmung hoch.", - "landing.features.momentsTitle": "Momente mit Wow-Effekt", - "landing.features.trustCopy": "Nur eingeladene Gäste erhalten Zugriff – mit Tokens, Rollenrechten und deutschem Hosting.", - "landing.features.trustTitle": "Sicher & DSGVO-konform", - "landing.features.uploadCopy": "Scan & Shoot: Gäste landen direkt im Event und teilen ihre Highlights live.", - "landing.features.uploadTitle": "Uploads ohne App-Stress", - "landing.headline": "Die Event-Landing, die zum Marketing passt.", - "landing.highlight.live": "Live auf Screens & Slideshows", - "landing.highlight.liveCopy": "Uploads können sofort auf Displays, Projektoren oder dem großen Screen erscheinen.", - "landing.highlight.mobile": "Optimiert für jedes Smartphone", - "landing.highlight.mobileCopy": "Keine App-Installation nötig – einfach Link öffnen oder QR-Code scannen.", - "landing.highlight.privacy": "Transparente Freigaben", - "landing.highlight.privacyCopy": "Admin- und Gästerollen sorgen dafür, dass nur autorisierte Personen Inhalte sehen.", - "landing.highlight.story": "Storytelling statt Sammelalbum", - "landing.highlight.storyCopy": "Fotospiel verbindet Aufgaben, Emotionen und Uploads zu einer spannenden Timeline.", - "landing.hint.support": "Du hast einen Link erhalten? Füge ihn direkt oben ein – wir erkennen den Event-Code automatisch.", - "landing.input.placeholder": "__STRING_NOT_TRANSLATED__", - "landing.join.button": "__STRING_NOT_TRANSLATED__", - "landing.join.buttonLoading": "__STRING_NOT_TRANSLATED__", - "landing.join.description": "__STRING_NOT_TRANSLATED__", - "landing.join.subline": "QR · Code · Link", - "landing.join.title": "__STRING_NOT_TRANSLATED__", - "landing.pageTitle": "__STRING_NOT_TRANSLATED__", - "landing.scan.headline": "QR-Code scannen", - "landing.scan.manualDivider": "__STRING_NOT_TRANSLATED__", - "landing.scan.start": "__STRING_NOT_TRANSLATED__", - "landing.scan.stop": "__STRING_NOT_TRANSLATED__", - "landing.scan.subline": "Nutze die Kamera deines Smartphones oder Tablets", - "landing.steps.profile": "Kurz vorstellen: Name eintragen und loslegen.", - "landing.steps.scan": "QR-Code vom Event scannen oder Link öffnen.", - "landing.steps.title": "So funktioniert Fotospiel", - "landing.steps.upload": "Fotos aufnehmen, Aufgaben lösen, Erinnerungen teilen.", - "landing.subheadline": "Fotospiel begrüßt deine Gäste mit einem warmen Erlebnis, noch bevor die erste Aufnahme entsteht.", - "landing.support.copy": "Frag dein Event-Team oder melde dich bei uns – wir helfen sofort weiter.", - "landing.support.email": "support@fotospiel.de", - "landing.support.reply": "Direkt auf die Einladung antworten", - "landing.support.title": "Support & Fragen", - "landing.tags.deHosted": "Gehostet in Deutschland", - "landing.tags.instant": "Live-Uploads & Aufgaben", - "landing.tags.private": "Nur für eingeladene Gäste", - "layout.back": "Back", - "layout.eyebrow": "Fotospiel Customer Admin", - "layout.jumpToDashboard": "Jump to dashboard", - "layout.skip": "Skip", - "layout.subtitle": "Begin with an inspired introduction, secure your package, and craft the perfect guest gallery – all optimised for mobile hosts.", - "layout.title": "Welcome to your event studio", - "lightbox.close": "Schließen", - "lightbox.download": "Download", - "lightbox.errors.loadFailed": "__STRING_NOT_TRANSLATED__", - "lightbox.errors.notFound": "__STRING_NOT_TRANSLATED__", - "lightbox.fallbackTitle": "__STRING_NOT_TRANSLATED__", - "lightbox.like": "Like photo", - "lightbox.loadingTask": "__STRING_NOT_TRANSLATED__", - "lightbox.photoAlt": "__STRING_NOT_TRANSLATED__", - "lightbox.photoAltTaskSuffix": "__STRING_NOT_TRANSLATED__", - "lightbox.taskLabel": "__STRING_NOT_TRANSLATED__", - "lightbox.unknownTitle": "__STRING_NOT_TRANSLATED__", - "liveShowPlayer.connection.live": "Live", - "liveShowPlayer.connection.sync": "Sync", - "liveShowPlayer.controls.exitFullscreen": "Exit fullscreen", - "liveShowPlayer.controls.fullscreen": "Fullscreen", - "liveShowPlayer.controls.offline": "Offline", - "liveShowPlayer.controls.pause": "Pause", - "liveShowPlayer.controls.paused": "Paused", - "liveShowPlayer.controls.play": "Play", - "liveShowPlayer.empty.description": "Warte auf die ersten Uploads...", - "liveShowPlayer.empty.title": "Noch keine Live-Fotos", - "liveShowPlayer.error.description": "Bitte überprüfe den Live-Link.", - "liveShowPlayer.error.title": "Live Show nicht erreichbar", - "liveShowPlayer.loading": "Live Show wird geladen...", - "liveShowPlayer.title": "Live Show", - "liveShowQueue.actionFailed": "Live Show update failed.", - "liveShowQueue.approve": "Approve for Live Show", - "liveShowQueue.approveAndLive": "Approve + Live", - "liveShowQueue.approveAndLiveSuccess": "Photo approved and added to Live Show", - "liveShowQueue.approveSuccess": "Photo approved for Live Show", - "liveShowQueue.clear": "Remove from Live Show", - "liveShowQueue.clearSuccess": "Live Show approval removed", - "liveShowQueue.empty": "No photos waiting for Live Show.", - "liveShowQueue.filterLabel": "Live status", - "liveShowQueue.galleryApprovedOnly": "Gallery and Live Show approvals are separate. Pending photos can be approved here.", - "liveShowQueue.loadFailed": "Live Show queue could not be loaded.", - "liveShowQueue.notEligible": "Not eligible", - "liveShowQueue.offlineNotice": "You are offline. Live Show actions are disabled.", - "liveShowQueue.reject": "Reject", - "liveShowQueue.rejectSuccess": "Photo removed from Live Show", - "liveShowQueue.subtitle": "Approve photos for the live slideshow", - "liveShowQueue.title": "Live Show queue", - "liveShowSettings.fields.backgroundMode": "Background", - "liveShowSettings.fields.effectIntensity": "Effect intensity", - "liveShowSettings.fields.effectPreset": "Effect preset", - "liveShowSettings.fields.fixedInterval": "Fixed interval (seconds)", - "liveShowSettings.fields.layoutMode": "Layout", - "liveShowSettings.fields.moderationMode": "Moderation mode", - "liveShowSettings.fields.paceMode": "Pace", - "liveShowSettings.fields.playbackMode": "Playback mode", - "liveShowSettings.fields.retention": "Retention window (hours)", - "liveShowSettings.hints.layout": "Split and grid layouts are used when enough photos are available.", - "liveShowSettings.hints.moderation": "Trusted sources include admin uploads and photobooths.", - "liveShowSettings.hints.pace": "Auto adapts to new uploads; fixed keeps a steady rhythm.", - "liveShowSettings.hints.playback": "Balance newer uploads with highlights when the queue is busy.", - "liveShowSettings.hints.retention": "Controls how long approved photos remain in rotation.", - "liveShowSettings.link.copy": "Copy", - "liveShowSettings.link.copyFailed": "Link could not be copied", - "liveShowSettings.link.copySuccess": "Link copied", - "liveShowSettings.link.downloadQr": "Download QR", - "liveShowSettings.link.empty": "No Live Show link available.", - "liveShowSettings.link.loadFailed": "Live Show link could not be loaded.", - "liveShowSettings.link.noExpiry": "No expiry date set.", - "liveShowSettings.link.open": "Open", - "liveShowSettings.link.qrAlt": "Live Show QR code", - "liveShowSettings.link.rotate": "Rotate", - "liveShowSettings.link.rotateConfirm": "Rotate the Live Show link? The current link will stop working.", - "liveShowSettings.link.rotateFailed": "Live Show link could not be rotated.", - "liveShowSettings.link.rotateSuccess": "Live Show link rotated.", - "liveShowSettings.link.rotatedAt": "Last rotated {{time}}", - "liveShowSettings.link.share": "Share", - "liveShowSettings.link.shareText": "Live Show link", - "liveShowSettings.link.shareTitle": "Live Show", - "liveShowSettings.link.subtitle": "Open this link on a screen to run the Live Show.", - "liveShowSettings.link.title": "Live Show link", - "liveShowSettings.loadFailed": "Live Show settings could not be loaded.", - "liveShowSettings.save": "Save settings", - "liveShowSettings.saveFailed": "Live Show settings could not be saved.", - "liveShowSettings.saveSuccess": "Live Show settings updated.", - "liveShowSettings.sections.effects": "Effects & layout", - "liveShowSettings.sections.moderation": "Moderation", - "liveShowSettings.sections.playback": "Playback", - "liveShowSettings.subtitle": "Tune the playback, pacing, and effects shown on the screen.", - "liveShowSettings.title": "Live Show settings", - "login": "__STRING_NOT_TRANSLATED__", - "login.brand": "__STRING_NOT_TRANSLATED__", - "login.description": "__STRING_NOT_TRANSLATED__", - "login.email": "Email address", - "login.email_hint": "Dein Benutzername ist deine E-Mail-Adresse.", - "login.email_placeholder": "name@example.com", - "login.failed_generic": "Ungueltige Anmeldedaten", - "login.faq": "Hilfe & FAQ", - "login.forgot": "__STRING_NOT_TRANSLATED__", - "login.forgot.back": "Back to login", - "login.forgot.copy": "Enter your email address and we will send you a reset link.", - "login.forgot.link": "Forgot your password?", - "login.forgot.loading": "Sending ...", - "login.forgot.submit": "Send reset link", - "login.forgot.success": "If your account exists, we will send a reset link.", - "login.forgot.title": "Forgot your password?", - "login.google_cta": "__STRING_NOT_TRANSLATED__", - "login.google_helper": "Nutze dein Google-Konto, um dich sicher bei der Eventverwaltung anzumelden.", - "login.help_back": "Back to login", - "login.help_faq_items": "__STRING_NOT_TRANSLATED__", - "login.help_faq_title": "Haeufige Fragen vor dem Login", - "login.help_intro": "Hier findest du schnelle Antworten rund um Login, Zugriff und erste Schritte - auch ohne Anmeldung.", - "login.help_support_copy": "Schreib uns bei Fragen an", - "login.help_support_cta": "E-Mail an Support senden", - "login.help_support_title": "Support kontaktieren", - "login.help_title": "Hilfe fuer Event-Admins", - "login.hero_footer.cta": "Packages entdecken", - "login.hero_footer.headline": "Noch kein Account?", - "login.hero_footer.subline": "Entdecke unsere Packages und erlebe Fotospiel live.", - "login.hero_heading": "Willkommen zurück bei Fotospiel", - "login.hero_subheading": "Verwalte Events, Galerien und Gästelisten in einem liebevoll gestalteten Dashboard.", - "login.hero_tagline": "Event-Tech mit Herz", - "login.highlights.branding": "Branding & Slideshows, die begeistern", - "login.highlights.branding_description": "Konfiguriere Slideshow, Wasserzeichen und Aufgaben für dein Event.", - "login.highlights.moments": "Momente in Echtzeit teilen", - "login.highlights.moments_description": "Uploads landen sofort in der Event-Galerie – ohne App-Download.", - "login.highlights.privacy": "Sicherer Zugang über Tokens", - "login.highlights.privacy_description": "Eventzugänge bleiben geschützt – DSGVO-konform mit Join Tokens.", - "login.identifier": "__STRING_NOT_TRANSLATED__", - "login.identifier_placeholder": "__STRING_NOT_TRANSLATED__", - "login.loading": "Anmeldung …", - "login.logo_alt": "Die Fotospiel App", - "login.no_account": "__STRING_NOT_TRANSLATED__", - "login.oauth_divider": "oder", - "login.panel_copy": "Melde dich an, um Events zu planen, Fotos zu moderieren und Aufgaben anzulegen.", - "login.panel_title": "Fotospiel.App Event Login", - "login.password": "Passwort", - "login.password_placeholder": "••••••••", - "login.remember": "__STRING_NOT_TRANSLATED__", - "login.reset.back": "Back to login", - "login.reset.copy": "Choose a new password for your event admin account.", - "login.reset.loading": "Saving ...", - "login.reset.missing_token": "Reset token missing.", - "login.reset.password": "New password", - "login.reset.password_confirm": "Confirm password", - "login.reset.password_confirm_placeholder": "••••••••", - "login.reset.password_placeholder": "••••••••", - "login.reset.submit": "Save new password", - "login.reset.success": "Password updated.", - "login.reset.title": "Reset password", - "login.sign_up": "__STRING_NOT_TRANSLATED__", - "login.submit": "Anmelden", - "login.success_toast": "Login erfolgreich", - "login.support": "Fragen? Schreib uns an support@fotospiel.de oder antworte direkt auf deine Einladung.", - "login.title": "__STRING_NOT_TRANSLATED__", - "login.unexpected_error": "Beim Login ist ein Fehler aufgetreten.", - "login_to_continue": "__STRING_NOT_TRANSLATED__", - "management": "__STRING_NOT_TRANSLATED__", - "management.header.appName": "Event Admin", - "management.photobooth.actions.disable": "Zugang deaktiviert", - "management.photobooth.actions.enable": "Zugang aktiviert", - "management.photobooth.errors.disableFailed": "Zugang konnte nicht deaktiviert werden.", - "management.photobooth.errors.enableFailed": "Zugang konnte nicht aktiviert werden.", - "management.photobooth.errors.loadFailed": "Photobooth-Link konnte nicht geladen werden.", - "management.photobooth.errors.rotateFailed": "Zugangsdaten konnten nicht neu generiert werden.", - "management.photobooth.presets.actions.rotate": "Zugang zurückgesetzt", - "marketing": "__STRING_NOT_TRANSLATED__", - "marketing.labels.readyToLaunch": "Bereit für dein Event?", - "marketing.labels.readyToLaunchCopy": "Registriere dich kostenlos und lege noch heute dein erstes Event an.", - "meta.description": "__STRING_NOT_TRANSLATED__", - "meta.title": "__STRING_NOT_TRANSLATED__", - "mobile": "__STRING_NOT_TRANSLATED__", - "mobile.notifications": "Notifications", - "mobileBilling.addonApplied": "Add-on applied. Limits update shortly.", - "mobileBilling.details.featuresTitle": "Features", - "mobileBilling.details.limitsTitle": "Limits", - "mobileBilling.extra.days_one": "+{{count}} days", - "mobileBilling.extra.days_other": "+{{count}} days", - "mobileBilling.extra.guests_one": "+{{count}} guests", - "mobileBilling.extra.guests_other": "+{{count}} guests", - "mobileBilling.extra.photos_one": "+{{count}} photos", - "mobileBilling.extra.photos_other": "+{{count}} photos", - "mobileBilling.openEvent": "Open event", - "mobileBilling.packageFallback": "Package", - "mobileBilling.remainingEventsOf": "{{remaining}} of {{limit}} events remaining", - "mobileBilling.remainingEventsZero": "No events remaining", - "mobileBilling.remainingEvents_one": "{{count}} events", - "mobileBilling.remainingEvents_other": "{{count}} events", - "mobileBilling.status.completed": "Completed", - "mobileBilling.status.failed": "Failed", - "mobileBilling.status.pending": "Pending", - "mobileBilling.usage.ctaDanger": "Upgrade package", - "mobileBilling.usage.ctaWarning": "Secure more capacity", - "mobileBilling.usage.events": "Events", - "mobileBilling.usage.gallery": "Gallery days", - "mobileBilling.usage.guests": "Guests", - "mobileBilling.usage.limit": "__STRING_NOT_TRANSLATED__", - "mobileBilling.usage.photos": "Photos", - "mobileBilling.usage.remainingOf": "Remaining {{remaining}} of {{limit}}", - "mobileBilling.usage.statusDanger": "Limit reached", - "mobileBilling.usage.statusWarning": "Low", - "mobileBilling.usage.value": "__STRING_NOT_TRANSLATED__", - "mobileDashboard.alertPending_one": "{{count}} new uploads awaiting moderation", - "mobileDashboard.alertPending_other": "{{count}} new uploads awaiting moderation", - "mobileDashboard.alertTasks_one": "{{count}} tasks due or open", - "mobileDashboard.alertTasks_other": "{{count}} tasks due or open", - "mobileDashboard.alertsTitle": "Alerts", - "mobileDashboard.ctaCreate": "Create event", - "mobileDashboard.ctaWelcome": "Start welcome journey", - "mobileDashboard.emptyBadge": "Welcome aboard", - "mobileDashboard.emptyBody": "Print a QR, collect uploads, and start moderating in minutes.", - "mobileDashboard.emptyChecklistProgress": "{{done}}/{{total}} steps", - "mobileDashboard.emptyChecklistTitle": "Quick steps to go live", - "mobileDashboard.emptyPreviewGallery": "Gallery & highlights", - "mobileDashboard.emptyPreviewGalleryDesc": "Moderate uploads, feature the best moments.", - "mobileDashboard.emptyPreviewQr": "Share QR poster", - "mobileDashboard.emptyPreviewQrDesc": "Print-ready codes for guests and crew.", - "mobileDashboard.emptyPreviewTasks": "Tasks & challenges", - "mobileDashboard.emptyPreviewTasksDesc": "Guide guests with playful prompts.", - "mobileDashboard.emptyPreviewTitle": "Here's what awaits", - "mobileDashboard.emptyStepDetails": "Add name & date", - "mobileDashboard.emptyStepQr": "Share your QR poster", - "mobileDashboard.emptyStepReview": "Review first uploads", - "mobileDashboard.emptySupportBody": "We are here if you need a hand getting started.", - "mobileDashboard.emptySupportDocs": "Docs: Getting started", - "mobileDashboard.emptySupportEmail": "Email support", - "mobileDashboard.emptySupportTitle": "Need help?", - "mobileDashboard.emptyTitle": "Welcome! Let's launch your first event", - "mobileDashboard.kpiGuests": "Guests", - "mobileDashboard.kpiPhotos": "Photos", - "mobileDashboard.kpiTasks": "Open tasks", - "mobileDashboard.kpiTitle": "Key performance indicators", - "mobileDashboard.packageSummary.bannerCta": "View", - "mobileDashboard.packageSummary.bannerSubtitle": "{{name}} is active. Review limits & features.", - "mobileDashboard.packageSummary.bannerTitle": "Your package summary", - "mobileDashboard.packageSummary.continue": "Continue to event setup", - "mobileDashboard.packageSummary.dismiss": "Close", - "mobileDashboard.packageSummary.expires": "Expires", - "mobileDashboard.packageSummary.fallbackTitle": "Package summary", - "mobileDashboard.packageSummary.featuresTitle": "Included features", - "mobileDashboard.packageSummary.hint": "You can revisit billing any time to review or upgrade your package.", - "mobileDashboard.packageSummary.limitsTitle": "Limits", - "mobileDashboard.packageSummary.purchased": "Purchased", - "mobileDashboard.packageSummary.remaining": "Remaining events", - "mobileDashboard.packageSummary.subtitle": "Here is a quick overview of your active package.", - "mobileDashboard.packageSummary.title": "Your package summary", - "mobileDashboard.packageSummary.unknown": "Unknown", - "mobileDashboard.photosDesc": "Moderate uploads and highlights", - "mobileDashboard.photosLabel": "Review photos", - "mobileDashboard.pickEvent": "Select an event", - "mobileDashboard.qrDesc": "Posters, cards, and links", - "mobileDashboard.qrLabel": "Show / share QR code", - "mobileDashboard.selectEvent": "Select an event to continue", - "mobileDashboard.setup.installAction": "Install now", - "mobileDashboard.setup.installDescription": "Get full-screen access and faster launch.", - "mobileDashboard.setup.installIosHint": "On iOS: Share → Add to Home Screen.", - "mobileDashboard.setup.installManual": "Manual", - "mobileDashboard.setup.installReady": "Ready", - "mobileDashboard.setup.installTitle": "Install app", - "mobileDashboard.setup.pushAction": "Enable push", - "mobileDashboard.setup.pushBlocked": "Blocked", - "mobileDashboard.setup.pushBlockedDesc": "Notifications are blocked in the browser settings.", - "mobileDashboard.setup.pushDescription": "Stay on top of uploads and quota alerts.", - "mobileDashboard.setup.pushOff": "Off", - "mobileDashboard.setup.pushSettings": "Open settings", - "mobileDashboard.setup.pushTitle": "Enable push notifications", - "mobileDashboard.setup.storageAction": "Protect now", - "mobileDashboard.setup.storageDescription": "Keep cached uploads available when you go offline.", - "mobileDashboard.setup.storageTitle": "Protect offline data", - "mobileDashboard.setup.storageUnprotected": "Not protected", - "mobileDashboard.setupSubtitle": "Finish these steps for the best mobile experience.", - "mobileDashboard.setupTitle": "Set up this device", - "mobileDashboard.shortcutAnalytics": "Analytics", - "mobileDashboard.shortcutBranding": "Branding & moderation", - "mobileDashboard.shortcutGuests": "Guest management", - "mobileDashboard.shortcutInvites": "Team / helper invites", - "mobileDashboard.shortcutPrints": "Print & poster downloads", - "mobileDashboard.shortcutSettings": "Event settings", - "mobileDashboard.shortcutsTitle": "Shortcuts", - "mobileDashboard.status.draft": "Draft", - "mobileDashboard.status.published": "Live", - "mobileDashboard.tasksDesc": "Assign and track progress", - "mobileDashboard.tasksDisabledDesc": "Guests do not see tasks (task mode off)", - "mobileDashboard.tasksLabel": "Manage tasks & challenges", - "mobileDashboard.title": "Dashboard", - "mobileEvents.edit": "Edit event", - "mobileNotifications.emptyAction": "Check notification settings", - "mobileNotifications.emptyBody": "Enable push to receive alerts about uploads, guests, and expiring galleries.", - "mobileNotifications.emptyTitle": "All caught up", - "mobileNotifications.filterByEvent": "Nach Event filtern", - "mobileNotifications.title": "Notifications", - "mobileNotifications.unknownEvent": "Event", - "mobilePhotos.applyFilters": "Apply filters", - "mobilePhotos.approveFailed": "Freigabe fehlgeschlagen.", - "mobilePhotos.approveSuccess": "Photo approved", - "mobilePhotos.bulkFailed": "Bulk update failed", - "mobilePhotos.bulkUpdated": "Bulk update applied", - "mobilePhotos.count_one": "{{count}} photos", - "mobilePhotos.count_other": "{{count}} photos", - "mobilePhotos.emptyAction": "Share QR code", - "mobilePhotos.emptyBody": "Share the QR code so guests can start uploading photos.", - "mobilePhotos.emptyTitle": "No uploads yet", - "mobilePhotos.featureFailed": "Feature konnte nicht geändert werden.", - "mobilePhotos.featureSuccess": "Als Highlight markiert", - "mobilePhotos.filtersTitle": "Filter", - "mobilePhotos.hideSuccess": "Photo hidden", - "mobilePhotos.loadFailed": "Fotos konnten nicht geladen werden.", - "mobilePhotos.onlyFeatured": "Only featured", - "mobilePhotos.onlyHidden": "Only hidden", - "mobilePhotos.queueOffline_one": "{{count}} Aktionen gespeichert – offline.", - "mobilePhotos.queueOffline_other": "{{count}} Aktionen gespeichert – offline.", - "mobilePhotos.queueOnline_one": "{{count}} Aktionen bereit zum Synchronisieren.", - "mobilePhotos.queueOnline_other": "{{count}} Aktionen bereit zum Synchronisieren.", - "mobilePhotos.queueSync": "Sync", - "mobilePhotos.queueTitle": "Änderungen warten auf Sync", - "mobilePhotos.queueWaiting": "Offline", - "mobilePhotos.queued": "Aktion gespeichert. Wird synchronisiert, sobald du online bist.", - "mobilePhotos.selectedCount_one": "{{count}} selected", - "mobilePhotos.selectedCount_other": "{{count}} selected", - "mobilePhotos.showSuccess": "Photo shown", - "mobilePhotos.syncFailed": "Synchronisierung fehlgeschlagen. Bitte später erneut versuchen.", - "mobilePhotos.title": "Photo moderation", - "mobilePhotos.unfeatureSuccess": "Highlight entfernt", - "mobilePhotos.uploader": "Uploader", - "mobilePhotos.uploaderPlaceholder": "Name or email", - "mobilePhotos.visibilityFailed": "Sichtbarkeit konnte nicht geändert werden.", - "mobileProfile.account": "Account & security", - "mobileProfile.language": "Language", - "mobileProfile.languageDe": "Deutsch", - "mobileProfile.languageEn": "English", - "mobileProfile.logout": "Log out", - "mobileProfile.settings": "Settings", - "mobileProfile.theme": "Theme", - "mobileProfile.themeDark": "Dark", - "mobileProfile.themeLight": "Light", - "mobileProfile.themeSystem": "System", - "mobileProfile.title": "Profile", - "mobileSettings.accountTitle": "Account", - "mobileSettings.deviceDescription": "Check permissions so the admin app stays fast and offline-ready.", - "mobileSettings.deviceLoading": "Checking device status ...", - "mobileSettings.deviceStatus.camera.description": "Needed for QR scans and quick capture.", - "mobileSettings.deviceStatus.camera.label": "Camera", - "mobileSettings.deviceStatus.connection.description": "Shows if the app is online or offline.", - "mobileSettings.deviceStatus.connection.label": "Connection", - "mobileSettings.deviceStatus.notifications.description": "Allow alerts and admin updates.", - "mobileSettings.deviceStatus.notifications.label": "Notifications", - "mobileSettings.deviceStatus.storage.description": "Protect cached data from eviction.", - "mobileSettings.deviceStatus.storage.label": "Offline storage", - "mobileSettings.deviceStatusValues.offline": "Offline", - "mobileSettings.deviceStatusValues.online": "Online", - "mobileSettings.deviceStorageAction": "Enable offline protection", - "mobileSettings.deviceStorageError": "Offline-Schutz konnte nicht aktiviert werden.", - "mobileSettings.deviceTitle": "Device & permissions", - "mobileSettings.experienceBody": "Replay the quick tour or re-enable the install banner.", - "mobileSettings.experienceReplay": "Replay quick tour", - "mobileSettings.experienceResetInstall": "Show install banner", - "mobileSettings.experienceTitle": "Experience", - "mobileSettings.notificationsLoading": "Loading settings ...", - "mobileSettings.notificationsTitle": "Notifications", - "mobileSettings.pushActive": "Push aktiv", - "mobileSettings.pushDenied": "Benachrichtigungen sind im Browser blockiert.", - "mobileSettings.pushInactive": "Push deaktiviert", - "mobileSettings.pushLoading": "Lädt ...", - "mobileSettings.pushTitle": "App Push", - "mobileSettings.pushUnsupported": "Push wird auf diesem Gerät nicht unterstützt.", - "mobileSettings.tenantBadge": "Tenant #{{id}}", - "mobileSettings.title": "Settings", - "mobileTour.back": "Back", - "mobileTour.done": "Done", - "mobileTour.eventAction": "Create event", - "mobileTour.eventBody": "Add the date, location, and package to unlock sharing.", - "mobileTour.eventTitle": "Create your first event", - "mobileTour.next": "Next", - "mobileTour.photosAction": "Review photos", - "mobileTour.photosBody": "Approve, feature, or hide photos with quick swipes.", - "mobileTour.photosTitle": "Moderate uploads", - "mobileTour.progress": "Step {{current}} of {{total}}", - "mobileTour.pushAction": "Notification settings", - "mobileTour.pushBody": "Enable push alerts to catch limits and new uploads fast.", - "mobileTour.pushTitle": "Stay in the loop", - "mobileTour.qrAction": "Open QR", - "mobileTour.qrBody": "Guests join instantly by scanning or using the invite link.", - "mobileTour.qrTitle": "Share your QR code", - "mobileTour.skip": "Skip", - "mobileTour.title": "Quick tour", - "mobileUploads.emptyBody": "Add your first event to review uploads and manage QR sharing.", - "mobileUploads.emptyTitle": "Create an event first", - "mobileUploads.open": "Open", - "mobileUploads.pickEvent": "Pick an event to manage uploads", - "mobileUploads.title": "Uploads", - "nav.blog": "Blog", - "nav.close_menu": "Menü schließen", - "nav.contact": "__STRING_NOT_TRANSLATED__", - "nav.cta_demo": "Jetzt ausprobieren", - "nav.dashboard": "Zum Admin-Bereich", - "nav.discover_packages": "__STRING_NOT_TRANSLATED__", - "nav.gift": "Paket verschenken (Gutschein)", - "nav.home": "Home", - "nav.how_it_works": "So funktioniert's", - "nav.language": "Sprache", - "nav.login": "Anmelden", - "nav.logout": "Abmelden", - "nav.occasions": "Anlässe", - "nav.occasions_types.birthdays": "Geburtstage", - "nav.occasions_types.confirmation": "Konfirmation", - "nav.occasions_types.corporate": "Firmenevents", - "nav.occasions_types.weddings": "Hochzeiten", - "nav.open_menu": "Menü öffnen", - "nav.packages": "Pakete", - "nav.preferences": "Einstellungen", - "nav.profile": "Profile", - "nav.tasks": "Tasks", - "nav.theme_dark": "Dunkles Design", - "nav.theme_light": "Helles Design", - "nav.uploads": "Uploads", - "navigation.achievements": "__STRING_NOT_TRANSLATED__", - "navigation.gallery": "__STRING_NOT_TRANSLATED__", - "navigation.home": "__STRING_NOT_TRANSLATED__", - "navigation.tasks": "__STRING_NOT_TRANSLATED__", - "next_post": "__STRING_NOT_TRANSLATED__", - "notFound.description": "__STRING_NOT_TRANSLATED__", - "notFound.title": "__STRING_NOT_TRANSLATED__", - "not_found": { - "tips": [ - null, - null, - null + "demo_page": { + "title": "Try Fotospiel now", + "subtitle": "Scan the QR code, upload photos, and experience the guest gallery exactly as attendees do – all inside the browser.", + "primaryCta": "Explore packages", + "secondaryCta": "Read the guide", + "iframeNote": "Demo uploads reset regularly—use the QR inside the frame or open the demo in a new tab.", + "openFull": "Open demo in new tab", + "features": [ + { + "title": "Authentic guest flow", + "description": "Instant gallery access without apps or logins – offline uploads queue automatically." + }, + { + "title": "Live slideshow ready", + "description": "Show fresh uploads on any screen using the built-in live show." + }, + { + "title": "Moderation included", + "description": "Test approval, reactions, and favourites – fully GDPR compliant." + } ] }, - "not_found.cta_contact": "__STRING_NOT_TRANSLATED__", - "not_found.cta_home": "__STRING_NOT_TRANSLATED__", - "not_found.cta_packages": "__STRING_NOT_TRANSLATED__", - "not_found.description": "__STRING_NOT_TRANSLATED__", - "not_found.requested_path_label": "Angefragter Pfad", - "not_found.subtitle": "__STRING_NOT_TRANSLATED__", - "not_found.tip_heading": "__STRING_NOT_TRANSLATED__", - "not_found.tips": "__STRING_NOT_TRANSLATED__", - "not_found.title": "__STRING_NOT_TRANSLATED__", - "notificationLogs.clearFilter": "Show all notifications", - "notificationLogs.eventLimit.body": "Your package allows no more events. Limit: {{limit}}.", - "notificationLogs.eventLimit.title": "Event quota reached", - "notificationLogs.filter.all": "All", - "notificationLogs.filter.read": "Read", - "notificationLogs.filter.unread": "Unread", - "notificationLogs.filterEmpty": "No notifications for this event.", - "notificationLogs.galleryExpired.body": "{{event}} gallery is offline. Extend to reactivate.", - "notificationLogs.galleryExpired.title": "Gallery expired", - "notificationLogs.galleryWarning.body": "{{event}} expires in {{days}} days.", - "notificationLogs.galleryWarning.title": "Gallery expiring soon", - "notificationLogs.generic.body": "Notification sent via {{channel}}.", - "notificationLogs.guestLimit.body": "{{event}} reached its guest limit of {{limit}}.", - "notificationLogs.guestLimit.title": "Guest limit reached", - "notificationLogs.guestThreshold.body": "{{event}} is at {{used}} / {{limit}} guests.", - "notificationLogs.guestThreshold.title": "Guest usage warning", - "notificationLogs.markAllRead": "Mark all read", - "notificationLogs.markFailed": "Could not update notifications.", - "notificationLogs.markRead": "Mark read", - "notificationLogs.markScopeRead": "Mark read", - "notificationLogs.photoLimit.body": "{{event}} reached its photo limit of {{limit}}.", - "notificationLogs.photoLimit.title": "Photo limit reached", - "notificationLogs.photoThreshold.body": "{{event}} is at {{used}} / {{limit}} photos.", - "notificationLogs.photoThreshold.title": "Photo usage warning", - "notificationLogs.read": "Read", - "notificationLogs.scope.all": "All scopes", - "notificationLogs.scope.events": "Events", - "notificationLogs.scope.gallery": "Gallery", - "notificationLogs.scope.general": "General", - "notificationLogs.scope.guests": "Guests", - "notificationLogs.scope.package": "Package", - "notificationLogs.scope.photos": "Photos", - "notificationLogs.unread": "Unread", - "occasions.birthdays.benefit1": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.benefit2": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.benefit3": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.benefit4": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.description": "__STRING_NOT_TRANSLATED__", - "occasions.birthdays.title": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.benefit1": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.benefit2": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.benefit3": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.benefit4": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.description": "__STRING_NOT_TRANSLATED__", - "occasions.confirmation.title": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.benefit1": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.benefit2": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.benefit3": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.benefit4": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.description": "__STRING_NOT_TRANSLATED__", - "occasions.corporate.title": "__STRING_NOT_TRANSLATED__", - "occasions.cta": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefit1": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefit2": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefit3": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefit4": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.benefits_title": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.description": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.hero_title": "__STRING_NOT_TRANSLATED__", - "occasions.weddings.title": "__STRING_NOT_TRANSLATED__", - "onboarding": "__STRING_NOT_TRANSLATED__", - "packages.available": "__STRING_NOT_TRANSLATED__", - "packages.badge_best_value": "__STRING_NOT_TRANSLATED__", - "packages.badge_most_popular": "__STRING_NOT_TRANSLATED__", - "packages.badge_starter": "__STRING_NOT_TRANSLATED__", - "packages.billing_per_event": "__STRING_NOT_TRANSLATED__", - "packages.billing_per_year": "__STRING_NOT_TRANSLATED__", - "packages.breakdown_label": "__STRING_NOT_TRANSLATED__", - "packages.breakdown_label_hint": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.days_one": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.days_other": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.guests_one": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.guests_other": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.photos_one": "__STRING_NOT_TRANSLATED__", - "packages.card.badges.photos_other": "__STRING_NOT_TRANSLATED__", - "packages.card.description": "Ready for your next event right away.", - "packages.card.select": "Select package", - "packages.card.selected": "Selected", - "packages.close": "__STRING_NOT_TRANSLATED__", - "packages.comparison_features": "__STRING_NOT_TRANSLATED__", - "packages.comparison_hint": "__STRING_NOT_TRANSLATED__", - "packages.comparison_limits": "__STRING_NOT_TRANSLATED__", - "packages.comparison_subtitle": "__STRING_NOT_TRANSLATED__", - "packages.comparison_title": "__STRING_NOT_TRANSLATED__", - "packages.contact_us": "__STRING_NOT_TRANSLATED__", - "packages.cta.billing.button": "Open billing", - "packages.cta.summary.button": "Continue to summary", - "packages.cta_explore": "__STRING_NOT_TRANSLATED__", - "packages.currency.euro": "__STRING_NOT_TRANSLATED__", - "packages.faq_free": "__STRING_NOT_TRANSLATED__", - "packages.faq_free_desc": "__STRING_NOT_TRANSLATED__", - "packages.faq_lead": "__STRING_NOT_TRANSLATED__", - "packages.faq_payment": "__STRING_NOT_TRANSLATED__", - "packages.faq_payment_desc": "__STRING_NOT_TRANSLATED__", - "packages.faq_reseller": "__STRING_NOT_TRANSLATED__", - "packages.faq_reseller_desc": "__STRING_NOT_TRANSLATED__", - "packages.faq_title": "__STRING_NOT_TRANSLATED__", - "packages.faq_upgrade": "__STRING_NOT_TRANSLATED__", - "packages.faq_upgrade_desc": "__STRING_NOT_TRANSLATED__", - "packages.feature": "__STRING_NOT_TRANSLATED__", - "packages.feature_custom_branding": "__STRING_NOT_TRANSLATED__", - "packages.feature_highlights": "__STRING_NOT_TRANSLATED__", - "packages.feature_no_branding": "__STRING_NOT_TRANSLATED__", - "packages.feature_support": "__STRING_NOT_TRANSLATED__", - "packages.feature_watermark": "__STRING_NOT_TRANSLATED__", - "packages.for_endcustomers": "__STRING_NOT_TRANSLATED__", - "packages.for_resellers": "__STRING_NOT_TRANSLATED__", - "packages.free": "__STRING_NOT_TRANSLATED__", - "packages.gallery_days_label": "__STRING_NOT_TRANSLATED__", - "packages.gift_cta": "Paket verschenken", - "packages.hero_description": "__STRING_NOT_TRANSLATED__", - "packages.hero_secondary": "__STRING_NOT_TRANSLATED__", - "packages.hero_title": "__STRING_NOT_TRANSLATED__", - "packages.layout.eyebrow": "Step 2", - "packages.layout.subtitle": "Fotospiel supports flexible pricing: single-use event slots or subscriptions covering multiple events.", - "packages.layout.title": "Choose your package", - "packages.limits_label": "__STRING_NOT_TRANSLATED__", - "packages.max_events_year": "__STRING_NOT_TRANSLATED__", - "packages.max_guests_label": "__STRING_NOT_TRANSLATED__", - "packages.max_photos_label": "__STRING_NOT_TRANSLATED__", - "packages.max_tenants": "__STRING_NOT_TRANSLATED__", - "packages.more_details_tab": "__STRING_NOT_TRANSLATED__", - "packages.no_watermark": "__STRING_NOT_TRANSLATED__", - "packages.not_available": "__STRING_NOT_TRANSLATED__", - "packages.one_time": "__STRING_NOT_TRANSLATED__", - "packages.order_hint": "__STRING_NOT_TRANSLATED__", - "packages.price": "__STRING_NOT_TRANSLATED__", - "packages.priority_support": "__STRING_NOT_TRANSLATED__", - "packages.standard_support": "__STRING_NOT_TRANSLATED__", - "packages.state.emptyDescription": "No packages are currently available. Reach out to support to enable new offers.", - "packages.state.emptyTitle": "Catalogue is empty", - "packages.state.errorDescription": "Please try again or contact support.", - "packages.state.errorTitle": "Failed to load", - "packages.state.loading": "Loading packages …", - "packages.step.description": "Secure capacity for your next event. Upgrade at any time – only pay for what you need.", - "packages.step.title": "Activate the right plan", - "packages.subscription": "__STRING_NOT_TRANSLATED__", - "packages.tab_endcustomer": "__STRING_NOT_TRANSLATED__", - "packages.tab_reseller": "__STRING_NOT_TRANSLATED__", - "packages.testimonials.anna": "__STRING_NOT_TRANSLATED__", - "packages.testimonials.lisa": "__STRING_NOT_TRANSLATED__", - "packages.testimonials.max": "__STRING_NOT_TRANSLATED__", - "packages.testimonials_title": "__STRING_NOT_TRANSLATED__", - "packages.title": "__STRING_NOT_TRANSLATED__", - "packages.to_order": "__STRING_NOT_TRANSLATED__", - "packages.view_details": "__STRING_NOT_TRANSLATED__", - "packages.watermark_label": "__STRING_NOT_TRANSLATED__", - "pendingUploads.card.justNow": "__STRING_NOT_TRANSLATED__", - "pendingUploads.card.pending": "__STRING_NOT_TRANSLATED__", - "pendingUploads.card.uploadedAt": "__STRING_NOT_TRANSLATED__", - "pendingUploads.cta": "__STRING_NOT_TRANSLATED__", - "pendingUploads.emptyBody": "__STRING_NOT_TRANSLATED__", - "pendingUploads.emptyTitle": "__STRING_NOT_TRANSLATED__", - "pendingUploads.error": "__STRING_NOT_TRANSLATED__", - "pendingUploads.loading": "Lade Uploads...", - "pendingUploads.refresh": "__STRING_NOT_TRANSLATED__", - "pendingUploads.subtitle": "__STRING_NOT_TRANSLATED__", - "pendingUploads.successBody": "__STRING_NOT_TRANSLATED__", - "pendingUploads.successTitle": "__STRING_NOT_TRANSLATED__", - "pendingUploads.title": "__STRING_NOT_TRANSLATED__", - "photobooth.actions.disable": "Disable uploads", - "photobooth.actions.enable": "Enable uploads", - "photobooth.actions.rotate": "Regenerate access", - "photobooth.actions.toggle": "Toggle photobooth access", - "photobooth.credentials.description": "Share these credentials with your photobooth software.", - "photobooth.credentials.ftps": "FTPS required", - "photobooth.credentials.ftpsHint": "Use FTPS if required; uploads go into the target folder for this event.", - "photobooth.credentials.heading": "FTP (Classic)", - "photobooth.credentials.host": "Host", - "photobooth.credentials.password": "Password", - "photobooth.credentials.path": "Target folder", - "photobooth.credentials.port": "Port", - "photobooth.credentials.postUrl": "Upload URL", - "photobooth.credentials.sparkboothTitle": "Sparkbooth / HTTP", - "photobooth.credentials.username": "Username", - "photobooth.mode.active": "Current: {{mode}}", - "photobooth.mode.ftp": "FTP (Classic)", - "photobooth.mode.sparkbooth": "Sparkbooth (HTTP POST)", - "photobooth.rateLimit.label": "Rate limit (uploads/min)", - "photobooth.selector.description": "FTP (Classic) works with most booths. Sparkbooth uses HTTP POST without FTP.", - "photobooth.selector.title": "Choose adapter", - "photobooth.sparkbooth.format": "Response format", - "photobooth.sparkbooth.hint": "POST with media file or base64 \"media\" field; username/password required.", - "photobooth.stats.lastUpload": "Last upload", - "photobooth.stats.uploads24h": "Uploads last 24h", - "photobooth.stats.uploadsTotal": "Uploads total", - "photobooth.status.badgeActive": "ACTIVE", - "photobooth.status.badgeInactive": "INACTIVE", - "photobooth.status.expires": "Access expires", - "photobooth.status.heading": "Status", - "photobooth.status.mode": "Mode", - "photobooth.status.never": "Never", - "photobooth.title": "Photobooth", - "photos.actions.approve": "Approve", - "photos.actions.feature": "Set highlight", - "photos.actions.hide": "Hide", - "photos.actions.show": "Show", - "photos.actions.unfeature": "Remove highlight", - "photos.filters.featured": "Featured", - "photos.filters.hidden": "Hidden", - "photos.filters.pending": "Pending", - "photos.filters.search": "Search uploads …", - "previous_post": "__STRING_NOT_TRANSLATED__", - "processing.copy": "One moment please while we prepare your dashboard.", - "processing.title": "Signing you in …", - "profile": "__STRING_NOT_TRANSLATED__", - "profileSetup.card.description": "__STRING_NOT_TRANSLATED__", - "profileSetup.error.backToStart": "__STRING_NOT_TRANSLATED__", - "profileSetup.error.default": "__STRING_NOT_TRANSLATED__", - "profileSetup.form.label": "__STRING_NOT_TRANSLATED__", - "profileSetup.form.placeholder": "__STRING_NOT_TRANSLATED__", - "profileSetup.form.submit": "__STRING_NOT_TRANSLATED__", - "profileSetup.form.submitting": "__STRING_NOT_TRANSLATED__", - "profileSetup.loading": "__STRING_NOT_TRANSLATED__", - "published_on": "__STRING_NOT_TRANSLATED__", - "read_story": "__STRING_NOT_TRANSLATED__", - "redirecting": "Redirecting to login …", - "register.address": "__STRING_NOT_TRANSLATED__", - "register.address_placeholder": "__STRING_NOT_TRANSLATED__", - "register.description": "__STRING_NOT_TRANSLATED__", - "register.email": "__STRING_NOT_TRANSLATED__", - "register.email_placeholder": "__STRING_NOT_TRANSLATED__", - "register.errors_title": "__STRING_NOT_TRANSLATED__", - "register.first_name": "__STRING_NOT_TRANSLATED__", - "register.first_name_placeholder": "__STRING_NOT_TRANSLATED__", - "register.has_account": "__STRING_NOT_TRANSLATED__", - "register.last_name": "__STRING_NOT_TRANSLATED__", - "register.last_name_placeholder": "__STRING_NOT_TRANSLATED__", - "register.login": "__STRING_NOT_TRANSLATED__", - "register.package_price": "__STRING_NOT_TRANSLATED__", - "register.package_price_free": "__STRING_NOT_TRANSLATED__", - "register.password": "__STRING_NOT_TRANSLATED__", - "register.password_confirmation": "__STRING_NOT_TRANSLATED__", - "register.password_confirmation_placeholder": "__STRING_NOT_TRANSLATED__", - "register.password_placeholder": "__STRING_NOT_TRANSLATED__", - "register.phone": "__STRING_NOT_TRANSLATED__", - "register.phone_placeholder": "__STRING_NOT_TRANSLATED__", - "register.privacy_consent": "__STRING_NOT_TRANSLATED__", - "register.privacy_policy_link": "__STRING_NOT_TRANSLATED__", - "register.server_error_message": "Etwas ist schiefgelaufen. Bitte versuche es erneut.", - "register.server_error_title": "Registrierung konnte nicht abgeschlossen werden", - "register.session_expired_message": "Deine Sitzung ist abgelaufen. Bitte lade die Seite neu und versuche es erneut.", - "register.session_expired_title": "Sicherheitsprüfung abgelaufen", - "register.submit": "__STRING_NOT_TRANSLATED__", - "register.success_toast": "Registrierung erfolgreich", - "register.title": "__STRING_NOT_TRANSLATED__", - "register.username": "__STRING_NOT_TRANSLATED__", - "register.username_placeholder": "__STRING_NOT_TRANSLATED__", - "register.validation_failed": "Bitte pruefen Sie Ihre Eingaben.", - "register.welcome": "__STRING_NOT_TRANSLATED__", - "settings.appearance.description": "Schalte Dark-Mode oder passe Branding im Admin an.", - "settings.appearance.title": "Darstellung", - "settings.cache.clear": "__STRING_NOT_TRANSLATED__", - "settings.cache.cleared": "__STRING_NOT_TRANSLATED__", - "settings.cache.clearing": "__STRING_NOT_TRANSLATED__", - "settings.cache.description": "__STRING_NOT_TRANSLATED__", - "settings.cache.note": "__STRING_NOT_TRANSLATED__", - "settings.cache.title": "__STRING_NOT_TRANSLATED__", - "settings.footer.notice": "__STRING_NOT_TRANSLATED__", - "settings.haptics.description": "__STRING_NOT_TRANSLATED__", - "settings.haptics.label": "__STRING_NOT_TRANSLATED__", - "settings.haptics.title": "__STRING_NOT_TRANSLATED__", - "settings.haptics.unsupported": "__STRING_NOT_TRANSLATED__", - "settings.help.cta": "__STRING_NOT_TRANSLATED__", - "settings.help.description": "__STRING_NOT_TRANSLATED__", - "settings.help.title": "__STRING_NOT_TRANSLATED__", - "settings.language.activeBadge": "__STRING_NOT_TRANSLATED__", - "settings.language.description": "__STRING_NOT_TRANSLATED__", - "settings.language.title": "__STRING_NOT_TRANSLATED__", - "settings.legal.description": "__STRING_NOT_TRANSLATED__", - "settings.legal.error": "__STRING_NOT_TRANSLATED__", - "settings.legal.loading": "__STRING_NOT_TRANSLATED__", - "settings.legal.title": "__STRING_NOT_TRANSLATED__", - "settings.name.description": "__STRING_NOT_TRANSLATED__", - "settings.name.label": "__STRING_NOT_TRANSLATED__", - "settings.name.loading": "__STRING_NOT_TRANSLATED__", - "settings.name.placeholder": "__STRING_NOT_TRANSLATED__", - "settings.name.reset": "__STRING_NOT_TRANSLATED__", - "settings.name.save": "__STRING_NOT_TRANSLATED__", - "settings.name.saved": "__STRING_NOT_TRANSLATED__", - "settings.name.saving": "__STRING_NOT_TRANSLATED__", - "settings.name.title": "__STRING_NOT_TRANSLATED__", - "settings.notifications.actions.save": "Speichern", - "settings.notifications.errorLoad": "Benachrichtigungen konnten nicht geladen werden.", - "settings.notifications.errorSave": "Speichern fehlgeschlagen", - "settings.profile.actions.openProfile": "Profil bearbeiten", - "settings.session.logout": "Abmelden", - "settings.session.unknown": "Benutzer", - "settings.sheet.backLabel": "__STRING_NOT_TRANSLATED__", - "settings.sheet.legalDescription": "__STRING_NOT_TRANSLATED__", - "settings.sheet.openLabel": "__STRING_NOT_TRANSLATED__", - "settings.subtitle": "__STRING_NOT_TRANSLATED__", - "settings.title": "__STRING_NOT_TRANSLATED__", - "share.button": "Teilen", - "share.copyError": "Link konnte nicht kopiert werden.", - "share.copyLink": "Link kopieren", - "share.copySuccess": "Link kopiert!", - "share.error": "Teilen fehlgeschlagen", - "share.imessage": "Nachrichten", - "share.loading": "Lädt…", - "share.shareCta": "Teilen", - "share.shareText": "Schau dir diesen Moment bei Fotospiel an.", - "share.title": "Geteiltes Foto", - "share.whatsapp": "WhatsApp", - "share_copied": "__STRING_NOT_TRANSLATED__", - "share_copy": "__STRING_NOT_TRANSLATED__", - "share_email": "__STRING_NOT_TRANSLATED__", - "share_hint": "__STRING_NOT_TRANSLATED__", - "share_linkedin": "__STRING_NOT_TRANSLATED__", - "share_native": "__STRING_NOT_TRANSLATED__", - "share_title": "__STRING_NOT_TRANSLATED__", - "share_whatsapp": "__STRING_NOT_TRANSLATED__", - "shop.badges.active": "Active", - "shop.badges.recommended": "Recommended", - "shop.confirmSubtitle": "You are upgrading to:", - "shop.confirmTitle": "Confirm Purchase", - "shop.errors.checkout": "Checkout failed", - "shop.legal.agb": "I agree to the Terms and Conditions and Privacy Policy.", - "shop.legal.withdrawal": "I agree that the contract execution begins immediately and I lose my right of withdrawal.", - "shop.legalTitle": "Terms & Conditions", - "shop.limits.days_one": "{{count}} Days Gallery", - "shop.limits.days_other": "{{count}} Days Gallery", - "shop.limits.photos_one": "{{count}} Photos", - "shop.limits.photos_other": "{{count}} Photos", - "shop.limits.unlimitedPhotos": "Unlimited Photos", - "shop.manage": "Manage Plan", - "shop.payNow": "Pay Now", - "shop.processing": "Processing...", - "shop.recommendationBody": "The highlighted package includes the feature you requested.", - "shop.recommendationTitle": "Recommended for you", - "shop.select": "Select", - "shop.status.active": "Active Plan", - "shop.status.owned": "Purchased", - "shop.status.remaining_one": "{{count}} Events left", - "shop.status.remaining_other": "{{count}} Events left", - "shop.subtitle": "Choose a package to unlock more features and limits.", - "shop.title": "Upgrade Package", - "sidebar_author_description": "__STRING_NOT_TRANSLATED__", - "sidebar_author_title": "__STRING_NOT_TRANSLATED__", - "status.offline": "Offline mode: changes will sync when you are back online.", - "status.queueAction": "Open Photos", - "status.queueBodyOffline_one": "{{count}} actions saved offline.", - "status.queueBodyOffline_other": "{{count}} actions saved offline.", - "status.queueBodyOnline_one": "{{count}} actions ready to sync.", - "status.queueBodyOnline_other": "{{count}} actions ready to sync.", - "status.queueTitle": "Photo actions pending", - "success": { - "already_registered": "Already registered? Log in", - "check_email": "Check your email for the verification link.", - "complete_purchase": "Complete Purchase", - "email_verify_desc": "Please check your email and click the verification link.", - "email_verify_title": "Verify Email", - "loading": "Loading...", - "login": "Log In", - "login_to_continue": "Log in to continue.", - "manage_subscription": "Manage Subscription", - "no_account": "No Account? Register", - "purchase_complete_desc": "Log in to continue.", - "purchase_complete_title": "Complete Purchase", - "redirecting": "Redirecting to Admin Area...", - "resend_verification": "Resend Verification", - "stripe_dashboard": "Stripe Dashboard", - "title": "Success", - "trial_activated": "Trial activated for 14 days!", - "verify_email": "Verify Email" + "gift": { + "title": "Gift cards", + "badge": "Gift a package", + "headline": "Gift the perfect Fotospiel package", + "subline": "Choose a value that matches our packages and surprise friends, family, or clients. Digital delivery with your personal message.", + "validity": "Valid for 5 years. Usable on all end-customer packages.", + "withdrawal": { + "title": "Right of withdrawal", + "body": "14 days from purchase. It expires once the voucher is (even partially) redeemed. No withdrawal after 14 days.", + "link": "View withdrawal policy" + }, + "card_subline": "Redeemable on all end-customer packages.", + "card_body": "Instant digital delivery with personalized message.", + "not_available": "Currently not available for checkout.", + "form_title": "Send a gift card", + "form_subtitle": "We email the voucher after successful payment.", + "purchaser_email": "Your email", + "recipient_name": "Recipient name (optional)", + "recipient_name_placeholder": "Alex Example", + "recipient_email": "Recipient email (optional)", + "message": "Message (optional)", + "message_placeholder": "A little something for your event!", + "accept_terms": "I have read the withdrawal policy: 14 days from purchase, expires upon (partial) redemption.", + "accept_terms_required": "Please confirm the withdrawal note.", + "cta": "Continue with Paddle", + "processing": "Opening Paddle checkout …", + "error_select_tier": "Please select a voucher amount.", + "error_purchaser_email": "Please enter a valid email.", + "error_recipient_email": "Please enter a valid recipient email.", + "error_checkout": "Unable to start the checkout. Please try again.", + "error": "Something went wrong. Please try again.", + "lookup_title": "Check voucher status", + "lookup_subtitle": "Already have a code? See value, validity, and status.", + "lookup_label": "Voucher code", + "lookup_cta": "Check code", + "lookup_not_found": "Voucher not found or no longer valid.", + "lookup_result_code": "Code: :code", + "lookup_result_value": "Value: :amount :currency", + "lookup_result_expires": "Valid until :date", + "lookup_status": { + "issued": "Status: Issued (ready to redeem)", + "redeemed": "Status: Redeemed", + "refunded": "Status: Refunded", + "expired": "Status: Expired", + "reminder": "Reminder scheduled", + "expiry": "Expiry reminder scheduled" + }, + "too_many_attempts": "Too many attempts. Please wait a moment and try again." }, - "success.gift_bullet_email": "__STRING_NOT_TRANSLATED__", - "success.gift_bullet_redeem": "__STRING_NOT_TRANSLATED__", - "success.gift_bullet_validity": "__STRING_NOT_TRANSLATED__", - "success.gift_bullets_title": "__STRING_NOT_TRANSLATED__", - "success.gift_code_label": "__STRING_NOT_TRANSLATED__", - "success.gift_code_title": "__STRING_NOT_TRANSLATED__", - "success.gift_copied": "__STRING_NOT_TRANSLATED__", - "success.gift_copy": "__STRING_NOT_TRANSLATED__", - "success.gift_copy_failed": "__STRING_NOT_TRANSLATED__", - "success.gift_cta_home": "__STRING_NOT_TRANSLATED__", - "success.gift_description": "__STRING_NOT_TRANSLATED__", - "success.gift_expires": "__STRING_NOT_TRANSLATED__", - "success.gift_loading": "__STRING_NOT_TRANSLATED__", - "success.gift_lookup_failed": "__STRING_NOT_TRANSLATED__", - "success.gift_share": "__STRING_NOT_TRANSLATED__", - "success.gift_share_text": "__STRING_NOT_TRANSLATED__", - "success.gift_title": "__STRING_NOT_TRANSLATED__", - "success.gift_value": "__STRING_NOT_TRANSLATED__", - "summary.cta.billing.button": "Go to billing", - "summary.cta.setup.button": "Continue to setup", - "summary.details.infinity": "∞", - "summary.details.section.guestsTitle": "Guests & team", - "summary.details.section.guestsValue_one": "__STRING_NOT_TRANSLATED__", - "summary.details.section.guestsValue_other": "__STRING_NOT_TRANSLATED__", - "summary.details.section.photosTitle": "Photos & gallery", - "summary.details.section.photosValue_one": "__STRING_NOT_TRANSLATED__", - "summary.details.section.photosValue_other": "__STRING_NOT_TRANSLATED__", - "summary.details.section.statusActive": "Already purchased", - "summary.details.section.statusInactive": "Not purchased yet", - "summary.details.section.statusTitle": "Status", - "summary.footer.back": "Back to package selection", - "summary.layout.eyebrow": "Step 3", - "summary.layout.subtitle": "Review package, price, and payment before proceeding to the event setup.", - "summary.layout.title": "Order summary", - "summary.nextSteps": "__STRING_NOT_TRANSLATED__", - "summary.nextStepsTitle": "Next steps", - "summary.state.loading": "Checking available packages …", - "summary.state.missingDescription": "Select a package first or refresh if data changed.", - "summary.state.missingTitle": "No package selected", - "summary_title": "__STRING_NOT_TRANSLATED__", - "tasks.page.completedLabel": "__STRING_NOT_TRANSLATED__", - "tasks.page.ctaStart": "__STRING_NOT_TRANSLATED__", - "tasks.page.emptyDescriptionNoTasks": "__STRING_NOT_TRANSLATED__", - "tasks.page.emptyDescriptionWithTasks": "__STRING_NOT_TRANSLATED__", - "tasks.page.emptyTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.eyebrow": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.countMany_one": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.countMany_other": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.countOne_one": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.countOne_other": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.dialogTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.empty": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.none": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.recentFallback": "__STRING_NOT_TRANSLATED__", - "tasks.page.filters.showAll": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationEmptyDescription": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationEmptyTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationError": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationLoading": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationMore": "__STRING_NOT_TRANSLATED__", - "tasks.page.inspirationTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.noTasksAlert": "__STRING_NOT_TRANSLATED__", - "tasks.page.reloadButton": "__STRING_NOT_TRANSLATED__", - "tasks.page.shuffleButton": "__STRING_NOT_TRANSLATED__", - "tasks.page.shuffleCta": "__STRING_NOT_TRANSLATED__", - "tasks.page.subtitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.suggestionsEyebrow": "__STRING_NOT_TRANSLATED__", - "tasks.page.suggestionsTitle": "__STRING_NOT_TRANSLATED__", - "tasks.page.swipeHint": "__STRING_NOT_TRANSLATED__", - "tasks.page.title": "__STRING_NOT_TRANSLATED__", - "team": "__STRING_NOT_TRANSLATED__", - "title_suffix": "__STRING_NOT_TRANSLATED__", - "toc_empty": "__STRING_NOT_TRANSLATED__", - "toc_title": "__STRING_NOT_TRANSLATED__", - "upload.buttons.recheckCamera": "__STRING_NOT_TRANSLATED__", - "upload.buttons.startCamera": "__STRING_NOT_TRANSLATED__", - "upload.cameraBlocked.hint": "__STRING_NOT_TRANSLATED__", - "upload.cameraBlocked.message": "__STRING_NOT_TRANSLATED__", - "upload.cameraBlocked.title": "__STRING_NOT_TRANSLATED__", - "upload.cameraDenied.explanation": "__STRING_NOT_TRANSLATED__", - "upload.cameraDenied.hint": "__STRING_NOT_TRANSLATED__", - "upload.cameraDenied.prompt": "__STRING_NOT_TRANSLATED__", - "upload.cameraDenied.title": "__STRING_NOT_TRANSLATED__", - "upload.cameraError.explanation": "__STRING_NOT_TRANSLATED__", - "upload.cameraError.hint": "__STRING_NOT_TRANSLATED__", - "upload.cameraError.title": "__STRING_NOT_TRANSLATED__", - "upload.cameraUnsupported.message": "__STRING_NOT_TRANSLATED__", - "upload.cameraUnsupported.title": "__STRING_NOT_TRANSLATED__", - "upload.canvasError": "__STRING_NOT_TRANSLATED__", - "upload.captureButton": "__STRING_NOT_TRANSLATED__", - "upload.captureError": "__STRING_NOT_TRANSLATED__", - "upload.controls.enterFullscreen": "Vollbild", - "upload.controls.exitFullscreen": "Menü einblenden", - "upload.controls.toggleFlash": "__STRING_NOT_TRANSLATED__", - "upload.controls.toggleGrid": "__STRING_NOT_TRANSLATED__", - "upload.controls.toggleMirror": "__STRING_NOT_TRANSLATED__", - "upload.countdown.ready": "__STRING_NOT_TRANSLATED__", - "upload.countdownLabel": "__STRING_NOT_TRANSLATED__", - "upload.countdownReady": "__STRING_NOT_TRANSLATED__", - "upload.demoReadOnly": "Uploads sind in der Demo deaktiviert.", - "upload.dialogs.close": "__STRING_NOT_TRANSLATED__", - "upload.errors.galleryExpired": "__STRING_NOT_TRANSLATED__", - "upload.errors.photoLimit": "__STRING_NOT_TRANSLATED__", - "upload.errors.tooLargeHint": "Das Foto war zu groß. Bitte erneut versuchen – wir verkleinern es automatisch.", - "upload.feedError": "__STRING_NOT_TRANSLATED__", - "upload.galleryButton": "__STRING_NOT_TRANSLATED__", - "upload.hud.cards.lastUpload": "__STRING_NOT_TRANSLATED__", - "upload.hud.cards.online": "__STRING_NOT_TRANSLATED__", - "upload.hud.moodFallback": "__STRING_NOT_TRANSLATED__", - "upload.hud.moodLabel": "__STRING_NOT_TRANSLATED__", - "upload.hud.relative.days": "__STRING_NOT_TRANSLATED__", - "upload.hud.relative.hours": "__STRING_NOT_TRANSLATED__", - "upload.hud.relative.minutes": "__STRING_NOT_TRANSLATED__", - "upload.hud.relative.now": "__STRING_NOT_TRANSLATED__", - "upload.limitCheckError": "__STRING_NOT_TRANSLATED__", - "upload.limitReached": "__STRING_NOT_TRANSLATED__", - "upload.liveShow.description": "Zeige dieses Foto direkt auf der Live-Show.", - "upload.liveShow.immediate": "Erscheint sofort auf der Leinwand.", - "upload.liveShow.reviewed": "Wird nach Freigabe für die Live-Show angezeigt.", - "upload.liveShow.title": "Live-Show", - "upload.liveShow.toggle": "Live-Show aktivieren", - "upload.optimizedFallback": "Optimierung nicht möglich – wir laden das Original hoch.", - "upload.optimizedNotice": "Wir haben dein Foto verkleinert, damit der Upload schneller klappt. Eingespart: {saved}", - "upload.preparing": "__STRING_NOT_TRANSLATED__", - "upload.primer.body.part1": "__STRING_NOT_TRANSLATED__", - "upload.primer.body.part2": "__STRING_NOT_TRANSLATED__", - "upload.primer.dismiss": "__STRING_NOT_TRANSLATED__", - "upload.primer.title": "__STRING_NOT_TRANSLATED__", - "upload.retrying": "Verbindung holperig – neuer Versuch ({attempt}).", - "upload.review.keep": "__STRING_NOT_TRANSLATED__", - "upload.review.noticeBody": "Dein Foto erscheint, sobald es freigegeben wurde.", - "upload.review.noticeTitle": "Uploads werden geprüft", - "upload.review.readyAnnouncement": "__STRING_NOT_TRANSLATED__", - "upload.review.retake": "__STRING_NOT_TRANSLATED__", - "upload.status.completed": "__STRING_NOT_TRANSLATED__", - "upload.status.optimizing": "Foto wird optimiert…", - "upload.status.preparing": "__STRING_NOT_TRANSLATED__", - "upload.status.uploading": "__STRING_NOT_TRANSLATED__", - "upload.switchCamera": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.badge": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.completed": "Aufgabe gelöst!", - "upload.taskInfo.emotion": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.fallbackDescription": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.fallbackInstructions": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.fallbackTitle": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.instructionsPrefix": "__STRING_NOT_TRANSLATED__", - "upload.taskInfo.nextPrompt": "Gleich noch eine Aufgabe?", - "verification.toast_success": "Email verified successfully.", - "withdrawal.confirm_body": "__STRING_NOT_TRANSLATED__", - "withdrawal.confirm_button": "__STRING_NOT_TRANSLATED__", - "withdrawal.confirm_processing": "__STRING_NOT_TRANSLATED__", - "withdrawal.confirm_title": "__STRING_NOT_TRANSLATED__", - "withdrawal.cta_body": "__STRING_NOT_TRANSLATED__", - "withdrawal.cta_button": "__STRING_NOT_TRANSLATED__", - "withdrawal.cta_title": "__STRING_NOT_TRANSLATED__", - "withdrawal.empty_body": "__STRING_NOT_TRANSLATED__", - "withdrawal.empty_cta": "__STRING_NOT_TRANSLATED__", - "withdrawal.empty_title": "__STRING_NOT_TRANSLATED__", - "withdrawal.expires_at": "__STRING_NOT_TRANSLATED__", - "withdrawal.purchase_date": "__STRING_NOT_TRANSLATED__", - "withdrawal.selection_body": "__STRING_NOT_TRANSLATED__", - "withdrawal.selection_title": "__STRING_NOT_TRANSLATED__", - "withdrawal.subtitle": "__STRING_NOT_TRANSLATED__", - "withdrawal.title": "__STRING_NOT_TRANSLATED__" + "withdrawal": { + "cta_title": "Start withdrawal", + "cta_body": "You can withdraw your package if no event has been created with it and the purchase is less than 14 days old.", + "cta_button": "Declare withdrawal", + "title": "Confirm withdrawal", + "subtitle": "Withdraw within {{days}} days of purchase as long as no event has been started with the package.", + "empty_title": "No eligible package found", + "empty_body": "Your current purchases are either outside the 14-day window or the package has already been used for an event.", + "empty_cta": "View packages", + "selection_title": "Select a package", + "selection_body": "Choose the package you want to withdraw. The withdrawal only takes effect after confirmation.", + "purchase_date": "Purchased on {{date}}", + "expires_at": "Withdrawal possible until {{date}}", + "confirm_title": "Officially declare withdrawal", + "confirm_body": "By clicking, the withdrawal is documented and the refund is started. You will receive an email with date and time.", + "confirm_button": "Confirm withdrawal now", + "confirm_processing": "Submitting withdrawal …" + }, + "not_found": { + "title": "Page not found", + "subtitle": "Oops! This page is nowhere to be found.", + "description": "It may have moved or never existed. Try one of the options below to get back on track.", + "tip_heading": "What you can do", + "tips": [ + "Double-check the URL for typos.", + "Head back to the homepage to continue exploring.", + "Reach out to us if you need a specific page." + ], + "cta_home": "Back to homepage", + "cta_packages": "Explore packages", + "cta_contact": "Get in touch", + "requested_path_label": "Requested path" + }, + "legal": { + "imprint": "Imprint", + "privacy": "Privacy", + "terms": "Terms & Conditions" + } } diff --git a/resources/js/app.tsx b/resources/js/app.tsx index 31763cd..2700da6 100644 --- a/resources/js/app.tsx +++ b/resources/js/app.tsx @@ -22,6 +22,12 @@ const InertiaFallback: React.FC = () => ( ); +const LoadingFallback: React.FC = () => ( +
+ Lade... +
+); + initSentry('inertia'); const LocaleSync: React.FC<{ children: React.ReactNode }> = ({ children }) => { @@ -75,11 +81,13 @@ createInertiaApp({ - - - - - + }> + + + + + + diff --git a/resources/js/i18n.ts b/resources/js/i18n.ts index 590b4fa..89a5492 100644 --- a/resources/js/i18n.ts +++ b/resources/js/i18n.ts @@ -32,7 +32,7 @@ i18n loadPath: '/lang/{{lng}}/{{ns}}.json?v=20251222', }, react: { - useSuspense: false, + useSuspense: true, }, });