- Wired the checkout wizard for Google “comfort login”: added Socialite controller + dependency, new Google env
hooks in config/services.php/.env.example, and updated wizard steps/controllers to store session payloads, attach packages, and surface localized success/error states. - Retooled payment handling for both Stripe and PayPal, adding richer status management in CheckoutController/ PayPalController, fallback flows in the wizard’s PaymentStep.tsx, and fresh feature tests for intent creation, webhooks, and the wizard CTA. - Introduced a consent-aware Matomo analytics stack: new consent context, cookie-banner UI, useAnalytics/ useCtaExperiment hooks, and MatomoTracker component, then instrumented marketing pages (Home, Packages, Checkout) with localized copy and experiment tracking. - Polished package presentation across marketing UIs by centralizing formatting in PresentsPackages, surfacing localized description tables/placeholders, tuning badges/layouts, and syncing guest/marketing translations. - Expanded docs & reference material (docs/prp/*, TODOs, public gallery overview) and added a Playwright smoke test for the hero CTA while reconciling outstanding checklist items.
This commit is contained in:
@@ -50,5 +50,33 @@
|
||||
"email_verify_title": "E-Mail verifizieren",
|
||||
"email_verify_desc": "Bitte überprüfen Sie Ihre E-Mail und klicken Sie auf den Verifizierungslink.",
|
||||
"language_select": "Sprache wählen"
|
||||
},
|
||||
"consent": {
|
||||
"banner": {
|
||||
"title": "Wir respektieren deine Privatsphäre",
|
||||
"body": "Wir verwenden Cookies für notwendige Funktionen und optionale Analysen zur Verbesserung. Du entscheidest, was erlaubt ist.",
|
||||
"accept": "Alle akzeptieren",
|
||||
"reject": "Nur notwendige",
|
||||
"customize": "Individuell auswählen"
|
||||
},
|
||||
"modal": {
|
||||
"title": "Privatsphäre-Einstellungen",
|
||||
"description": "Lege fest, wie wir Cookies und ähnliche Technologien nutzen. Du kannst deine Auswahl jederzeit ändern.",
|
||||
"functional": "Notwendige Cookies",
|
||||
"functional_desc": "Wichtig für sicheren Login, Spracheinstellungen und die Grundfunktionen der Website.",
|
||||
"analytics": "Analyse",
|
||||
"analytics_desc": "Hilft uns mit Matomo, die Nutzung zu verstehen und Angebote zu verbessern.",
|
||||
"required": "Pflicht",
|
||||
"save": "Auswahl speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"accept_all": "Alle akzeptieren",
|
||||
"reject_all": "Nur notwendige"
|
||||
},
|
||||
"accessibility": {
|
||||
"banner_label": "Cookie-Hinweis"
|
||||
},
|
||||
"footer": {
|
||||
"manage_link": "Cookie-Einstellungen"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
"hero_title": "Fotospiel",
|
||||
"hero_description": "Sammle Gastfotos für Events mit QR-Codes. Unsere sichere PWA-Plattform für Gäste und Organisatoren – einfach, mobil und datenschutzkonform. Besser als Konkurrenz, geliebt von Tausenden.",
|
||||
"cta_explore": "Pakete entdecken",
|
||||
"cta_explore_highlight": "Jetzt loslegen",
|
||||
"hero_image_alt": "Event-Fotos mit QR-Code",
|
||||
"how_title": "So funktioniert es",
|
||||
"step1_title": "Paket wählen",
|
||||
@@ -62,6 +63,7 @@
|
||||
"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.",
|
||||
"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)",
|
||||
@@ -115,8 +117,16 @@
|
||||
"feature_overview": "Feature-Überblick",
|
||||
"order_hint": "Sofort startklar – keine versteckten Kosten, sichere Zahlung via Stripe oder PayPal.",
|
||||
"features_label": "Features",
|
||||
"feature_highlights": "Feature-Highlights",
|
||||
"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",
|
||||
"details_show": "Details anzeigen",
|
||||
@@ -378,7 +388,12 @@
|
||||
"next_to_payment": "Weiter zur Zahlung",
|
||||
"switch_to_register": "Registrieren",
|
||||
"switch_to_login": "Anmelden",
|
||||
"google_coming_soon": "Google-Login kommt bald im Comfort-Delta."
|
||||
"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."
|
||||
},
|
||||
"payment_step": {
|
||||
"title": "Zahlung",
|
||||
@@ -389,6 +404,7 @@
|
||||
"activate_package": "Paket aktivieren",
|
||||
"loading_payment": "Zahlungsdaten werden geladen...",
|
||||
"secure_payment_desc": "Sichere Zahlung mit Kreditkarte, Debitkarte oder SEPA-Lastschrift.",
|
||||
"secure_paypal_desc": "Sichere Zahlung mit PayPal.",
|
||||
"payment_failed": "Zahlung fehlgeschlagen. ",
|
||||
"error_card": "Kartenfehler aufgetreten.",
|
||||
"error_validation": "Eingabedaten sind ungültig.",
|
||||
@@ -404,7 +420,23 @@
|
||||
"pay_now": "Jetzt bezahlen (€{price})",
|
||||
"stripe_not_loaded": "Stripe ist nicht initialisiert. Bitte Seite neu laden.",
|
||||
"network_error": "Netzwerkfehler beim Laden der Zahlungsdaten",
|
||||
"payment_intent_error": "Fehler beim Laden der Zahlungsdaten"
|
||||
"payment_intent_error": "Fehler beim Laden der Zahlungsdaten",
|
||||
"paypal_order_error": "PayPal-Bestellung konnte nicht erstellt werden. Bitte erneut versuchen.",
|
||||
"paypal_capture_error": "PayPal-Abschluss fehlgeschlagen. Bitte erneut versuchen.",
|
||||
"paypal_error": "PayPal meldete einen Fehler.",
|
||||
"paypal_cancelled": "Sie haben die PayPal-Zahlung abgebrochen.",
|
||||
"paypal_missing_plan": "Für dieses Paket fehlt die PayPal-Plan-Konfiguration. Bitte wählen Sie eine andere Zahlungsmethode.",
|
||||
"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_error_title": "Zahlung fehlgeschlagen",
|
||||
"status_success_title": "Zahlung abgeschlossen",
|
||||
"status_retry": "Erneut versuchen",
|
||||
"method_stripe": "Kreditkarte (Stripe)",
|
||||
"method_paypal": "PayPal"
|
||||
},
|
||||
"confirmation_step": {
|
||||
"title": "Bestätigung",
|
||||
@@ -427,7 +459,12 @@
|
||||
"already_logged_in": "Sie sind bereits als {email} eingeloggt.",
|
||||
"switch_to_register": "Registrieren",
|
||||
"switch_to_login": "Anmelden",
|
||||
"google_coming_soon": "Google-Login kommt bald im Comfort-Delta."
|
||||
"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."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user