{ "billing": { "title": "Packages & billing", "subtitle": "Manage your purchased packages and track their durations.", "actions": { "refresh": "Refresh", "exportCsv": "Export CSV", "portal": "Manage in Paddle", "portalBusy": "Opening portal...", "openPackages": "Open packages", "contactSupport": "Contact support" }, "stats": { "package": { "label": "Active package", "helper": "Renews {{date}}", "empty": "None yet" }, "events": { "label": "Events used", "helper": "Remaining: {{count}}" }, "addons": { "label": "Add-ons", "helper": "Lifetime history" }, "transactions": { "label": "Transactions", "helper": "Synced payments" } }, "errors": { "load": "Unable to load package data.", "more": "Unable to load more entries.", "portal": "Unable to open the Paddle portal." }, "checkoutSuccess": "Checkout completed. Your package will activate shortly.", "checkoutCancelled": "Checkout was cancelled.", "checkoutActivated": "Your package is now active.", "checkoutPendingTitle": "Activating your package", "checkoutPendingBody": "This can take a few minutes. We will update this screen once the package is active.", "checkoutPendingBadge": "Pending", "checkoutPendingRefresh": "Refresh", "checkoutPendingDismiss": "Dismiss", "checkoutFailedTitle": "Checkout failed", "checkoutFailedBody": "The payment did not complete. You can try again or contact support.", "checkoutFailedBadge": "Failed", "checkoutFailedRetry": "Try again", "checkoutFailedDismiss": "Dismiss", "checkoutActionTitle": "Action required", "checkoutActionBody": "Complete your payment to activate the package.", "checkoutActionBadge": "Action needed", "checkoutActionButton": "Continue checkout", "checkoutFailureReasons": { "paddle_failed": "The payment was declined.", "paddle_cancelled": "The checkout was cancelled." }, "sections": { "invoices": { "title": "Invoices & payments", "hint": "Review transactions and download receipts.", "empty": "No payments found." }, "addOns": { "title": "Add-ons", "hint": "Track extra photo, guest, or time bundles per event.", "empty": "No add-ons booked." }, "overview": { "title": "Package overview", "description": "Your active package and the most important metrics.", "empty": "No active package yet.", "emptyBadge": "No active package", "cards": { "package": { "label": "Active package", "helper": "Currently assigned" }, "used": { "label": "Events used", "helper": "Remaining: {{count}}" }, "price": { "label": "Price (net)" }, "expires": { "label": "Expires", "helper": "Auto-renews if enabled" } }, "warnings": { "noEvents": "Event allowance exhausted. Please upgrade or renew your package.", "lowEvents": "Only {{remaining}} event slots remaining.", "expiresSoon": "Package expires on {{date}}.", "expired": "Package has expired." } }, "packages": { "title": "Packages", "hint": "Active package, limits, and history at a glance.", "description": "Overview of active and past packages.", "empty": "No packages purchased yet.", "card": { "statusActive": "Active", "statusInactive": "Inactive", "used": "Events used", "available": "Remaining", "expires": "Expires", "warnings": { "noEvents": "Event allowance exhausted.", "lowEvents": "Only {{remaining}} events left.", "expiresSoon": "Expires on {{date}}.", "expired": "Package has expired." } } }, "transactions": { "title": "Paddle transactions", "description": "Recent Paddle transactions for this customer account.", "empty": "No Paddle transactions yet.", "labels": { "transactionId": "Transaction {{id}}", "checkoutId": "Checkout ID: {{id}}", "origin": "Origin: {{origin}}", "receipt": "View receipt", "tax": "Tax: {{value}}" }, "table": { "transaction": "Transaction", "amount": "Amount", "status": "Status", "date": "Date", "origin": "Origin" }, "status": { "completed": "Completed", "processing": "Processing", "failed": "Failed", "cancelled": "Cancelled", "unknown": "Unknown" }, "loadMore": "Load more transactions", "loadingMore": "Loading…" } }, "addOns": { "title": "Add-on history", "description": "One-time add-ons purchased for this tenant.", "empty": "No add-ons purchased yet.", "badge": "Add-ons", "table": { "addon": "Add-on", "event": "Event", "amount": "Amount", "status": "Status", "purchased": "Purchased", "eventFallback": "Event archived" }, "status": { "pending": "Processing", "completed": "Completed", "failed": "Failed" }, "extras": { "photos": "+{{count}} photos", "guests": "+{{count}} guests", "gallery": "+{{count}} gallery days" }, "loadMore": "Load more add-ons", "loadingMore": "Loading add-ons…" }, "features": { "branding": "Branding", "watermark": "Watermark", "maxPhotos": "Max photos", "maxGuests": "Max guests", "galleryDays": "Gallery days", "maxTasks": "Max tasks", "featureList": "Included features" }, "packages": { "title": "Package history", "description": "Overview of current and past packages.", "empty": "No packages purchased yet.", "card": { "statusActive": "Active", "statusInactive": "Inactive", "used": "Used events", "available": "Available", "expires": "Expires" } } }, "common": { "all": "All", "anonymous": "Anonymous", "error": "Something went wrong", "loadMore": "Load more", "processing": "Processing…", "select": "Select", "close": "Close", "reset": "Reset" }, "photos": { "moderation": { "title": "Moderate photos", "subtitle": "Highlight favourites or remove unsuitable uploads." }, "alerts": { "errorTitle": "Action failed" }, "gallery": { "title": "Gallery", "description": "Click a photo to feature it or remove it.", "photoboothCount": "{{count}} photobooth uploads", "photoboothCta": "Open photobooth access", "emptyTitle": "No photos yet", "emptyDescription": "Encourage your guests to upload – the gallery will appear here.", "select": "Select", "selected": "Selected", "likes": "Likes: {{count}}", "uploader": "Uploader: {{name}}" }, "filters": { "all": "All", "featured": "Highlights", "hidden": "Hidden", "pending": "Pending", "photobooth": "Photobooth", "search": "Search uploads …", "count": "{{count}} uploads", "selected": "{{count}} selected", "clearSelection": "Clear selection", "selectAll": "Select all" }, "actions": { "hide": "Hide", "show": "Show", "feature": "Set highlight", "unfeature": "Remove highlight", "approve": "Approve", "delete": "Delete", "copy": "Copy link", "copySuccess": "Link copied" } }, "limits": { "photosBlocked": "Upload limit reached. Buy more photos to continue.", "photosWarning": "{{remaining}} of {{limit}} photos remaining.", "guestsBlocked": "Guest limit reached.", "guestsWarning": "{{remaining}} of {{limit}} guests remaining.", "galleryExpired": "Gallery expired. Extend to keep it online.", "galleryWarningHour": "Gallery expires in {{hours}} hour.", "galleryWarningHours": "Gallery expires in {{hours}} hours.", "galleryWarningDay": "Gallery expires in {{days}} day.", "galleryWarningDays": "Gallery expires in {{days}} days.", "buyMorePhotos": "Buy more photos", "extendGallery": "Extend gallery", "buyMoreGuests": "Add more guests" }, "notificationLogs": { "photoLimit": { "title": "Photo limit reached", "body": "{{event}} reached its photo limit of {{limit}}." }, "guestLimit": { "title": "Guest limit reached", "body": "{{event}} reached its guest limit of {{limit}}." }, "eventLimit": { "title": "Event quota reached", "body": "Your package allows no more events. Limit: {{limit}}." }, "galleryWarning": { "title": "Gallery expiring soon", "body": "{{event}} expires in {{days}} days." }, "galleryExpired": { "title": "Gallery expired", "body": "{{event}} gallery is offline. Extend to reactivate." }, "photoThreshold": { "title": "Photo usage warning", "body": "{{event}} is at {{used}} / {{limit}} photos." }, "guestThreshold": { "title": "Guest usage warning", "body": "{{event}} is at {{used}} / {{limit}} guests." }, "generic": { "body": "Notification sent via {{channel}}." }, "filterEmpty": "No notifications for this event.", "clearFilter": "Show all notifications", "filter": { "unread": "Unread", "read": "Read", "all": "All" }, "scope": { "all": "All scopes", "photos": "Photos", "guests": "Guests", "gallery": "Gallery", "events": "Events", "package": "Package", "general": "General" }, "markAllRead": "Mark all read", "markScopeRead": "Mark read", "markFailed": "Could not update notifications.", "unread": "Unread" }, "events": { "detail": { "kpi": { "tasks": "Active tasks", "guests": "Guests registered", "photos": "Images uploaded" }, "pickEvent": "Select event", "active": "Active", "managementTitle": "Event management", "dateTbd": "Date tbd", "locationPlaceholder": "Location" }, "quick": { "tasks": "Tasks & checklists", "qr": "QR code layouts", "images": "Image management", "liveShow": "Live Show queue", "liveShowSettings": "Live Show settings", "guests": "Guest management", "guestMessages": "Guest messages", "branding": "Branding & theme", "photobooth": "Photobooth", "recap": "Recap & archive" }, "status": { "published": "Live", "draft": "Draft", "archived": "Archived" }, "list": { "title": "Your events", "subtitle": "Plan memorable moments. Manage everything around your events here.", "filters": { "all": "All", "upcoming": "Upcoming", "draft": "Draft", "past": "Past" }, "empty": { "filtered": "No events match this filter.", "filteredHint": "Try a different status or clear your search." }, "actions": { "create": "New event", "settings": "Settings", "open": "Open event" }, "stats": { "photos": "Photos", "guests": "Guests", "tasks": "Tasks" }, "overview": { "title": "Overview", "empty": "No events yet – create your first one to get started.", "count": "{{count}} {{count, plural, one {event} other {events}}} managed.", "badge": { "dashboard": "Customer dashboard" } } } }, "galleryStatus": { "badge": "Runtime", "title": "Gallery runtime & availability", "subtitle": "Keep track of how long guests can still access the gallery.", "stateLabel": "Status", "stateExpired": "Gallery expired", "stateWarning": "Gallery expiring soon", "stateOk": "Gallery active", "noExpiry": "No expiry date set", "expiresAt": "Expiry date: {{date}}", "daysLabel": "Days remaining", "expiredHint": "Guests can no longer access the gallery – extend your package to reopen it.", "hint": "If needed, extend the runtime in your package settings." }, "members": { "title": "Event members", "subtitle": "Manage moderators, admins, and helpers for this event.", "actions": { "back": "Back to overview" }, "errors": { "missingSlug": "No event slug provided.", "load": "Could not load members.", "emailRequired": "Please provide an email address.", "invite": "Invitation could not be sent.", "remove": "Member could not be removed." }, "alerts": { "notFoundTitle": "Event not found", "notFoundDescription": "Please return to the event list.", "lockedTitle": "Feature not enabled", "lockedDescription": "Member management isn’t available for this event yet. Contact support to activate the feature." }, "sections": { "list": { "title": "Members", "empty": "No members invited yet." }, "invite": { "title": "Invite new member" } }, "labels": { "status": "Status: {{status}}", "joined": "Joined: {{date}}" }, "form": { "emailLabel": "Email", "emailPlaceholder": "person@example.com", "nameLabel": "Name (optional)", "namePlaceholder": "Name", "roleLabel": "Role", "rolePlaceholder": "Select role", "submit": "Send invitation" }, "roles": { "tenantAdmin": "Customer admin", "member": "Member", "guest": "Guest" }, "statuses": { "published": "Published", "draft": "Draft", "active": "Active" }, "eventStatus": "Status: {{status}}", "events": { "untitled": "Untitled event" } }, "eventMenu": { "summary": "Overview", "photos": "Uploads", "tasks": "Tasks", "invites": "Invites", "branding": "Branding", "photobooth": "Photobooth", "recap": "Recap" }, "eventTasks": { "title": "Tasks & missions", "subtitle": "Curate mission cards and tasks for this event.", "search": "Search tasks", "emotionFilter": "Emotion filter", "allEmotions": "All", "actions": { "back": "Back to overview", "assign": "Assign selected tasks" }, "errors": { "missingSlug": "No event slug provided.", "load": "Event tasks could not be loaded.", "assign": "Tasks could not be assigned.", "photoOnlyEnable": "Photo-only mode could not be enabled.", "photoOnlyDisable": "Photo-only mode could not be disabled.", "collections": "Collections could not be loaded." }, "emotions": { "error": "Could not load emotions." }, "manageEmotions": "Manage emotions", "manageEmotionsHint": "Filter and keep your taxonomy tidy.", "alerts": { "notFoundTitle": "Event not found", "notFoundDescription": "Please return to the event list." }, "tabs": { "tasks": "Tasks", "packs": "Mission packs" }, "eventStatus": "Status: {{status}}", "summary": { "assigned": "Assigned tasks", "library": "Library", "mode": "Active mode", "tasksMode": "Mission cards", "photoOnly": "Photos only" }, "library": { "hintTitle": "More templates in the task library", "hintCopy": "Create tasks, emotions, or mission packs once and reuse them across events.", "open": "Open task library" }, "sections": { "assigned": { "title": "Assigned tasks", "search": "Search tasks...", "noResults": "No tasks match this search term.", "empty": "No tasks assigned yet." }, "library": { "title": "Add tasks from library", "empty": "No tasks found in the library." } }, "priorities": { "low": "Low", "medium": "Medium", "high": "High", "urgent": "Urgent" }, "modes": { "title": "Tasks & photo mode", "photoOnlyHint": "Photo-only mode is active. Guests can upload photos but won’t see tasks.", "tasksHint": "Tasks are visible in the guest app. Switch to photo-only for uploads without prompts.", "photoOnly": "Photo-only", "tasks": "Tasks active", "switchLabel": "Enable photo-only mode", "updating": "Saving setting ..." }, "collections": { "title": "Mission packs", "subtitle": "Import task collections that fit your event.", "viewAll": "View all collections", "errorTitle": "Collections unavailable", "empty": "No recommended collections found.", "tasksCount": "{{count}} tasks", "genericType": "General", "global": "Global", "custom": "Custom", "recommended": "Recommended", "optional": "Optional", "importCta": "Import mission pack", "imported": "Collection imported successfully", "importFailed": "Mission pack could not be imported", "error": "Collections could not be loaded." }, "toolkit": { "titleFallback": "Event-Day Toolkit", "subtitle": "Stay on top of uploads, tasks, and invites while your event is live.", "errors": { "missingSlug": "No event slug provided.", "loadFailed": "Toolkit could not be loaded.", "feedbackFailed": "Feedback could not be sent." }, "actions": { "backToEvent": "Back to event", "moderate": "Moderate photos", "manageTasks": "Open tasks", "refresh": "Refresh" }, "alerts": { "errorTitle": "Error", "attention": "Heads-up", "noTasks": "No tasks assigned yet – pick a package or curate prompts.", "noInvites": "There are no active QR invites. Create one to welcome guests.", "pendingPhotos": "Photos are waiting for moderation. Review uploads before publishing." }, "metrics": { "uploadsTotal": "Total uploads", "uploads24h": "Uploads (24h)", "pendingPhotos": "Pending moderation", "activeInvites": "Active invites", "engagementMode": "Mode", "modePhotoOnly": "Photo mode", "modeTasks": "Tasks" }, "pending": { "title": "Waiting photos", "subtitle": "Moderation suggestions for new uploads.", "cta": "Go to moderation", "empty": "No photos waiting for review right now.", "unknownUploader": "Unknown guest", "uploadedAt": "Uploaded:", "statusPending": "Status: awaiting review" }, "invites": { "title": "QR invites", "subtitle": "Keep an eye on links and brandable layouts.", "activeCount": "{{count}} active", "totalCount": "{{count}} total", "empty": "No QR invites yet.", "statusActive": "Active", "statusInactive": "Inactive", "manage": "Manage invites" }, "tasks": { "title": "Active tasks", "subtitle": "Motivate guests with clear prompts and highlights.", "summary": "{{completed}} of {{total}} done", "empty": "No tasks assigned yet.", "manage": "Manage tasks", "completed": "Done", "open": "Open" }, "recent": { "title": "Latest uploads", "subtitle": "A quick glance at freshly approved photos.", "empty": "No approved photos yet." }, "feedback": { "title": "How helpful is this toolkit?", "subtitle": "Your input helps us fine-tune the event-day experience.", "positive": "Helpful", "neutral": "Okay", "negative": "Needs work", "placeholder": "Let us know what worked well or what you’re missing …", "disclaimer": "We’ll keep your feedback private and use it to improve the product.", "submit": "Send feedback", "thanksTitle": "Thank you!", "thanksDescription": "We’ve received your feedback.", "badge": "Custom" } }, "story": { "title": "Branding & story", "description": "Align colors, emotions, and mission packs for a cohesive guest experience.", "emotionsTitle": "Emotions", "emotionsCount": "{{count}} active", "emotionsEmpty": "Activate emotions to categorise your tasks.", "emotionsCta": "Manage emotions", "collectionsTitle": "Mission packs", "collectionsCount": "{{count}} tasks", "collectionsEmpty": "No recommended mission packs yet.", "collectionsCta": "View mission packs" }, "customizer": { "title": "Customize QR invite", "description": "Adjust layout, texts, colors, and logo for your printable invite.", "layout": "Layout", "selectLayout": "Select layout", "headline": "Headline", "subtitle": "Sub headline", "descriptionLabel": "Description", "badgeLabel": "Badge", "instructionsHeading": "Instructions heading", "instructionsLabel": "Hints", "addInstruction": "Add hint", "removeInstruction": "Remove", "linkHeading": "Link title", "linkLabel": "Link", "ctaLabel": "Call to action", "colors": { "accent": "Accent colour", "text": "Text colour", "background": "Background", "secondary": "Secondary colour", "badge": "Badge colour" }, "logo": { "label": "Logo", "hint": "PNG, max. 1 MB. Appears in the top right corner.", "remove": "Remove logo" }, "preview": { "title": "Preview", "hint": "Visual reference for colours and texts. Save to generate new PDFs/PNGs." }, "actions": { "save": "Save", "cancel": "Cancel", "reset": "Reset" }, "badge": "Custom", "actionLabel": "Customize layout", "errors": { "logoTooLarge": "Logo must not exceed 1 MB.", "noLayout": "Please select a layout.", "downloadFailed": "Download failed. Please try again.", "printFailed": "Printing could not be started." }, "defaults": { "badgeLabel": "Digital guest box", "instructionsHeading": "How it works", "linkHeading": "Alternative link", "ctaLabel": "Scan and get started", "instructions": [ "Scan the QR code", "Create your profile", "Share your photos" ], "textBlock": "New text block – add your own notes here." } } }, "invites": { "cardTitle": "QR invites & layouts", "cardDescription": "Create invite links, customise layouts, and prepare print-ready PDFs.", "subtitle": "Manage invite links, layouts, and branding for your guests.", "tabs": { "layout": "Customise layout", "share": "Share links & QR", "export": "Print & export" }, "summary": { "active": "Active invites", "total": "Total" }, "workflow": { "title": "Invite workflow", "description": "Work through layout, sharing, and export in order.", "badge": "Setup", "steps": { "layout": { "title": "Pick a layout", "description": "Adjust copy, colors, and QR placement." }, "share": { "title": "Share links & QR", "description": "Enable invites, copy QR codes, and distribute them." }, "export": { "title": "Print & export", "description": "Create PDF/PNG files for print-ready cards." } } }, "share": { "title": "Quick access to guest link", "description": "Use the primary link to share QR cards or send it to your team.", "primaryLabel": "Primary link", "stats": { "active": "{{count}} active", "total": "{{count}} total" }, "actions": { "copy": "Copy link", "open": "Open", "editLayout": "Edit layout", "editHint": "Adjust colors & copy inside the editor.", "export": "Print/export", "create": "Create another" }, "hint": "Share the link inside your team or include it in newsletters." }, "actions": { "refresh": "Refresh", "create": "Create invite", "backToList": "Back to list", "backToEvent": "Open event", "copy": "Copy link", "copied": "Copied!", "deactivate": "Deactivate", "buyMoreGuests": "Unlock more guests" }, "labels": { "usage": "Usage", "layout": "Layout", "layoutFallback": "Default", "selected": "Currently selected", "tapToEdit": "Select to edit", "noPrintSource": "No printable version available.", "standard": "Default link", "qrAlt": "QR preview" }, "empty": { "title": "No invites yet", "copy": "Create an invite to generate ready-to-print QR layouts." }, "errorTitle": "Action failed", "export": { "title": "Print & export", "description": "Download print-ready files or launch a test print right away.", "mode": { "standard": "Standard layout", "advanced": "Advanced editor" }, "previewHint": "Save after making changes to regenerate the export files.", "noLayoutPreview": "No preview available yet. Save your layout first.", "selectPlaceholder": "Select invite", "noInviteSelected": "Select an invite first to start downloads.", "noLayouts": "There are currently no layouts available for this invite.", "actions": { "title": "Actions", "description": "Start a test print or download the layouts.", "printNow": "Print now", "hint": "PDF includes crop marks; PNG is perfect for quick digital approvals." }, "errorTitle": "Download failed" }, "customizer": { "heading": "Customise layout", "copy": "Edit texts, colours, and positions right next to the live preview. Changes appear instantly.", "actions": { "save": "Save layout", "reset": "Reset", "print": "Print", "removeLogo": "Remove logo", "uploadLogo": "Upload logo (max. 1 MB)", "addInstruction": "Add step", "undo": "Undo", "redo": "Redo" }, "sections": { "layouts": "Layouts", "layoutsHint": "Pick a starting template. You can switch at any time.", "text": "Text", "instructions": "Step-by-step", "instructionsHint": "Guide guests with clear steps. Maximum of five.", "branding": "Colors" }, "elements": { "title": "Elements & positioning", "hint": "Select an element to move, edit, or remove it.", "headline": "Headline", "subtitle": "Subheading", "description": "Description", "badge": "Badge", "link": "Link field", "cta": "Call-to-action", "qr": "QR code", "logo": "Logo", "text": "Free text block", "remove": "Remove element", "details": "Element details", "detailsHint": "Adjust copy, alignment, and more. Changes appear instantly in the preview.", "customText": "Text content", "qrHint": "Resize and reposition the QR code directly on the canvas.", "logoHint": "Adjust logos in the branding section. Use the canvas to resize or move the element.", "align": "Alignment", "alignLeft": "Left", "alignCenter": "Center", "alignRight": "Right", "fontSize": "Font size", "selectHint": "Tap an element on the canvas or in the list to edit its details.", "listHint": "Select an element to reveal its settings directly under the entry.", "addSubtitle": "Show subtitle", "addBadge": "Show badge", "addLink": "Add link field", "addCta": "Insert call-to-action", "addText": "Add free text block" }, "fields": { "headline": "Headline", "subtitle": "Subheading", "description": "Description", "badge": "Badge label", "cta": "Call-to-action", "linkHeading": "Link heading", "linkLabel": "Link/short URL", "instructionsHeading": "Section heading", "instructionPlaceholder": "Describe this step", "accentColor": "Accent colour", "textColor": "Text colour", "backgroundColor": "Background", "badgeColor": "Badge colour", "logo": "Logo" }, "preview": { "title": "Live preview", "subtitle": "See the export-ready version instantly.", "mobileOpen": "Show preview", "mobileTitle": "Invite preview", "mobileHint": "Opens a preview overlay", "readyForGuests": "Ready for guests", "instructions": "This link takes guests directly to the gallery and works together with the printed QR code.", "qrAlt": "Invite QR code" }, "placeholderTitle": "No layout available", "placeholderCopy": "Create an invite first to customise copy, colours, and print layouts.", "loadingTitle": "Loading layouts", "loadingDescription": "One moment – we are preparing the available layouts.", "loadingError": "Layouts could not be loaded.", "layoutFallback": "Layout" } }, "photobooth": { "status": { "heading": "Status", "active": "Photobooth link is active.", "inactive": "No photobooth uploads connected yet.", "badgeActive": "ACTIVE", "badgeInactive": "INACTIVE", "expiresAt": "Will switch off automatically on {{date}}", "mode": "Mode" }, "mode": { "title": "Choose your photobooth type", "description": "Pick classic FTP or Sparkbooth HTTP upload. Switching regenerates credentials.", "active": "Current: {{mode}}" }, "credentials": { "heading": "FTP credentials", "description": "Share these credentials with your photobooth software.", "sparkboothTitle": "Uploader App (HTTP)", "sparkboothDescription": "Enter URL, username and password in the Fotospiel uploader app. Responses default to JSON (XML optional).", "host": "Host", "port": "Port", "username": "Username", "password": "Password", "path": "Upload path", "postUrl": "Upload URL", "responseFormat": "Response format" }, "connectCode": { "label": "Connect code", "description": "Create a 6-digit code for the uploader app.", "expires": "Expires: {{date}}", "actions": { "generate": "Generate connect code", "generated": "Connect code created" }, "errors": { "failed": "Connect code could not be created." } }, "actions": { "enable": "Activate photobooth", "disable": "Disable", "rotate": "Regenerate access" }, "rateLimit": { "heading": "Security & limits", "description": "Uploads are limited to {{count}} photos per minute.", "body": "If exceeded we block the connection and reopen it after 60 seconds.", "hint": "Expiry follows the event end date.", "usage": "Uploads last hour", "warning": "Close to the limit – slow down the upload rate or reach out to support." }, "checklist": { "title": "Setup checklist", "description": "Complete each step before guests upload.", "enable": "Activate access", "enableCopy": "Enable the FTP account in your photobooth software.", "share": "Share credentials", "shareCopy": "Hand over host, user, and password to the operator.", "monitor": "Monitor uploads", "monitorCopy": "Watch uploads & limits in the dashboard." }, "timeline": { "title": "Status timeline", "activation": "Activation", "activationPending": "Not activated yet", "activationReady": "Access is live.", "credentials": "Credentials", "credentialsReady": "User {{username}} is ready.", "credentialsPending": "Credentials not generated yet.", "expiry": "Expiry", "expiryHint": "Switches off on {{date}}", "noExpiry": "No expiry configured.", "lastUpload": "Last upload", "lastUploadAt": "Last seen {{date}}", "lastUploadPending": "No uploads recorded yet." }, "presets": { "title": "Choose a mode", "description": "Switch between planning and live behaviour for the photobooth.", "planTitle": "Planning mode", "planDescription": "Keep the FTP account disabled while preparing the booth.", "liveTitle": "Live mode", "liveDescription": "Access stays enabled and uploads are processed instantly (FTP or Sparkbooth).", "badgePlan": "Planning", "badgeLive": "Live", "current": "Active", "actions": { "apply": "Apply mode", "rotate": "Reset credentials" } }, "stats": { "title": "Upload status", "description": "Keep an eye on the most recent photobooth uploads.", "lastUpload": "Last upload", "none": "No uploads yet", "uploads24h": "Uploads (24h)", "share": "Photobooth share (recent)", "totalEvent": "Uploads total (event)", "sample": "Uploads analysed", "sourcePhotobooth": "Source: Photobooth", "sourceEvent": "Source: Event" } }, "events": { "errors": { "missingSlug": "No event selected.", "loadFailed": "Event could not be loaded.", "saveFailed": "Event could not be saved.", "notFoundTitle": "Event not found", "notFoundBody": "Without a valid identifier we can’t load the data. Return to the list and choose an event.", "toggleFailed": "Status could not be updated.", "checkoutMissing": "Checkout could not be started.", "checkoutFailed": "Add-on checkout failed." }, "alerts": { "failedTitle": "Action failed" }, "success": { "addonApplied": "Add-on applied. Limits will refresh shortly." }, "legalConsent": { "title": "Before purchase", "description": "Please confirm the legal notes before buying an add-on.", "checkboxTerms": "I have read and accept the Terms & Conditions, Privacy Policy, and Right of Withdrawal.", "checkboxWaiver": "I expressly request that you begin providing the digital services (activation of my event add-on) before the withdrawal period has expired. I understand that I lose my right of withdrawal once the contract has been fully performed.", "errorTerms": "Please confirm you accept the terms, privacy policy, and right of withdrawal.", "errorWaiver": "Please confirm the immediate start of the digital service and the early expiry of the right of withdrawal.", "confirm": "Continue to checkout", "cancel": "Cancel" }, "eventStartConsent": { "title": "Before your first event", "description": "Please confirm the immediate start of the digital service before creating your first event.", "checkboxWaiver": "I expressly request that the digital service begins now and understand my right of withdrawal expires once the contract has been fully performed.", "errorWaiver": "Please confirm the immediate start of the digital service and the early expiry of the right of withdrawal.", "confirm": "Create event", "cancel": "Cancel" }, "placeholders": { "untitled": "Untitled event" }, "actions": { "backToList": "Back to list", "edit": "Edit", "members": "Team & roles", "tasks": "Manage tasks", "invites": "Invites & layouts", "photos": "Moderate photos", "refresh": "Refresh", "buyMorePhotos": "Unlock more photos", "buyMoreGuests": "Unlock more guests", "extendGallery": "Extend gallery" }, "form": { "editTitle": "Edit event", "createTitle": "Create new event", "name": "Event name", "date": "Date & time", "description": "Optional details", "descriptionPlaceholder": "Description", "location": "Location", "locationPlaceholder": "Location", "enableBranding": "Enable branding & moderation", "fallbackName": "Event", "saveDraft": "Save as draft", "saving": "Saving…", "update": "Update event", "create": "Create event" }, "workspace": { "detailSubtitle": "Keep status, tasks, and invites of your event in one view.", "toolkitSubtitle": "Bundle moderation, tasks, and invites for the event day.", "hero": { "badge": "Event", "description": "Focus on tasks, moderation, and invites for this event.", "liveBadge": "Live?" }, "sections": { "statusTitle": "Event status & visibility", "statusSubtitle": "Activate the event for guests or hide it temporarily." }, "fields": { "status": "Status", "active": "Active for guests", "date": "Event date", "noDate": "No date", "eventType": "Event type", "insights": "Recent activity", "uploadsTotal": "{{count}} uploads total", "uploadsToday": "{{count}} uploads (24h)", "likesTotal": "{{count}} likes in total" }, "actions": { "pause": "Pause event", "activate": "Activate event" }, "activeYes": "Yes", "activeNo": "No" }, "sections": { "addons": { "title": "Add-ons & Boosts", "description": "Recently purchased add-ons for this event.", "status": { "completed": "Active", "pending": "Processing", "failed": "Failed" }, "purchasedAt": "Purchased {{date}}", "summary": { "photos": "+{{count}} photos", "guests": "+{{count}} guests", "gallery": "+{{count}} days gallery" } } }, "status": { "published": "Published", "draft": "Draft", "archived": "Archived" }, "quickActions": { "title": "Quick actions", "subtitle": "Jump into the most important flows before and during the event.", "moderate": "Moderate photos", "tasks": "Edit tasks", "invites": "Manage layouts & QR", "roles": "Adjust team & roles", "print": "Print layouts as PDF", "toggle": "Change status" }, "metrics": { "uploadsTotal": "Uploads total", "uploads24h": "Uploads (24h)", "pending": "Photos in moderation", "activeInvites": "Active invites" }, "invites": { "badge": "Invites", "title": "QR invites", "subtitle": "Keep an eye on active links and layouts.", "activeCount": "{{count}} active", "totalCount": "{{count}} total", "empty": "No invites created yet.", "manage": "Manage layouts & invites" }, "tasks": { "badge": "Tasks", "title": "Active tasks", "subtitle": "Motivate guests with clear prompts & highlights.", "summary": "{{completed}} of {{total}} complete", "empty": "No tasks assigned yet.", "manage": "Open task workspace", "status": { "completed": "Done", "open": "Open" } }, "recap": { "badge": "Recap", "subtitle": "Wrap up, export, and manage gallery runtime.", "galleryTitle": "Gallery status", "galleryCounts": "{{photos}} photos, {{pending}} pending, {{likes}} likes", "open": "Open", "closed": "Closed", "openGallery": "Open gallery", "closeGallery": "Close gallery", "moderate": "View uploads", "shareGuests": "Share guest gallery", "shareLink": "Guest link", "noPublicUrl": "No guest link set. Configure the public link in the event setup.", "copyLink": "Copy link", "copySuccess": "Link copied", "copyError": "Link could not be shared.", "qrTitle": "Share QR code", "qrDownload": "Download QR code", "qrShare": "Share link/QR", "qrAlt": "Guest gallery QR code", "allowDownloads": "Allow downloads", "allowDownloadsHint": "Guests may save photos", "allowSharing": "Allow sharing", "allowSharingHint": "Guests may share links", "galleryOpen": "Gallery open", "galleryClosed": "Gallery closed", "exportTitle": "Export & backup", "exportCopy": "Back up all assets", "exportHint": "Start ZIP/CSV exports and backups.", "backup": "Backup", "downloadAll": "Download everything", "downloadHighlights": "Download highlights", "highlightsHint": "“Highlights” = photos marked as highlight in the gallery.", "retentionTitle": "Extend / archive", "expiresAt": "Expires on {{date}}", "noExpiry": "No expiry date set", "retentionHint": "Extend the gallery runtime with an add-on. Extensions add up.", "expiry": "Expiry", "archive": "Archive/Delete", "extendOptions": "All add-ons for this event", "extendHint": "Extensions add up. Checkout opens in a new tab.", "priceMissing": "Price not linked", "noAddons": "No add-ons available right now.", "archivedSuccess": "Event archived. Gallery is closed.", "archiveTitle": "Archive gallery?", "archiveDesc": "Archiving closes the gallery, deactivates guest links, and stops new uploads. Finish exports first.", "archiveImpact": "Effects of archiving", "archiveImpactClose": "Guest access ends; uploads/downloads are disabled.", "archiveImpactLinks": "Public links and QR codes become invalid; existing sessions expire.", "archiveImpactData": "Data stays internally for compliance/support and can be deleted on request (GDPR).", "archiveConfirm": "I completed exports and want to archive now.", "archiveConfirmCta": "Archive now" }, "branding": { "badge": "Branding & story", "title": "Branding & mission packs", "subtitle": "Align colors, typography, and task packs for your event.", "brandingTitle": "Branding", "brandingFallback": "Current selection", "brandingCopy": "Adjust colors & fonts inside the layout editor.", "brandingCta": "Adjust branding", "collectionsTitle": "Mission packs", "collectionsFallback": "Recommended story", "collectionsCopy": "Import curated packs or activate emotions inside the task workspace.", "collectionsActive": "{{count}} active links", "tasksCount": "{{count}} tasks", "collectionsManage": "Edit tasks", "collectionsImport": "Import mission pack", "emotionsTitle": "Emotions", "emotionsEmpty": "Activate emotions to categorise tasks.", "emotionsCta": "Manage emotions" }, "photos": { "pendingBadge": "Moderation", "pendingTitle": "Photos awaiting review", "pendingSubtitle": "Check uploads before they go live.", "pendingCount": "{{count}} photos pending", "pendingEmpty": "No photos waiting for moderation.", "openModeration": "Open moderation", "recentBadge": "Uploads", "recentTitle": "Latest uploads", "recentSubtitle": "Spot the latest guest highlights.", "recentEmpty": "No new uploads yet.", "toastVisible": "Photo made visible again.", "toastHidden": "Photo hidden.", "toastFeatured": "Photo marked as highlight.", "toastUnfeatured": "Highlight removed.", "errorAuth": "Session expired. Please sign in again.", "errorVisibility": "Could not change visibility.", "errorFeature": "Action failed.", "show": "Show", "hide": "Hide", "feature": "Feature", "unfeature": "Remove highlight" }, "feedback": { "title": "How is your event running?", "subtitle": "Your feedback helps us prioritise improvements.", "afterEventTitle": "Event wrapped – quick feedback?", "afterEventCopy": "Did everything work out? Your answer helps us support future events.", "privacyHint": "Admin-only feedback, no guest data", "positive": "Was great", "neutral": "Was okay", "negative": "Needed support", "best": { "uploads": "Uploads & speed", "invites": "QR invites & layouts", "moderation": "Moderation & export", "experience": "Overall app experience" }, "placeholder": "Optional: tell us what worked well or what to improve.", "errorTitle": "Feedback could not be sent.", "authError": "Your session expired. Please sign in again.", "genericError": "Feedback could not be sent.", "submit": "Send feedback", "submitted": "Thanks!", "afterEventThanks": "Your feedback arrived. We’ll get back to you if we have questions.", "sendAnother": "Send another feedback", "supportFollowup": "Request support", "cta": "Give feedback", "quickSentiment": "Pick sentiment (positive/neutral/support).", "dialogTitle": "Quick after-event feedback", "dialogCopy": "Pick a sentiment, what worked best, and optionally what to improve.", "sentiment": "Sentiment", "bestQuestion": "What worked best?", "improve": "What should we improve?", "supportHelp": "I’d like a short follow-up (support)." } }, "tasks": { "actions": { "back": "Back to overview", "assign": "Assign selected tasks" }, "title": "Tasks & missions", "subtitle": "Curate mission cards and tasks for this event.", "alerts": { "notFoundTitle": "Event not found", "notFoundDescription": "Please return to the event list." }, "tabs": { "tasks": "Tasks", "packs": "Mission packs" }, "eventStatus": "Status: {{status}}", "modes": { "title": "Tasks & photo mode", "tasksHint": "Tasks are active. Guests see mission cards in the app.", "photoOnlyHint": "Photo-only mode is active. Guests can upload photos but won’t see tasks.", "tasks": "Tasks active", "photoOnly": "Photo-only", "switchLabel": "Enable/disable tasks", "updating": "Saving setting ..." }, "summary": { "assigned": "Assigned tasks", "library": "Library", "mode": "Active mode", "tasksMode": "Mission cards", "photoOnly": "Photos only" }, "library": { "hintTitle": "More templates in the task library", "hintCopy": "Create tasks, emotions, or mission packs once and reuse them across events.", "open": "Open task library" }, "sections": { "assigned": { "title": "Assigned tasks", "search": "Search tasks...", "noResults": "No tasks match this search term.", "empty": "No tasks assigned yet." }, "library": { "title": "Add tasks from library", "empty": "No tasks found in the library." } }, "actionsShort": { "assign": "Assign selected tasks" }, "errors": { "missingSlug": "No event slug provided.", "load": "Tasks could not be loaded.", "assign": "Tasks could not be assigned.", "collections": "Collections could not be loaded.", "photoOnlyEnable": "Photo-only mode could not be enabled.", "photoOnlyDisable": "Photo-only mode could not be disabled." }, "collections": { "errorTitle": "Collections unavailable", "import": "Import collection", "error": "Collections could not be loaded.", "title": "Mission packs", "subtitle": "Import task collections that fit your event.", "viewAll": "View all collections", "empty": "No recommended collections found.", "tasksCount": "{{count}} tasks", "genericType": "General", "global": "Global", "custom": "Custom", "recommended": "Recommended", "optional": "Optional", "importCta": "Import mission pack", "imported": "Collection imported successfully", "importFailed": "Mission pack could not be imported" } }, "collections": { "title": "Task collections", "subtitle": "Browse curated task bundles or activate them for your events.", "actions": { "import": "Import", "create": "Create collection", "openTasks": "Open task library" }, "filters": { "search": "Search collections", "scope": "Scope", "allScopes": "All scopes", "eventType": "Event type", "allEventTypes": "All event types", "globalOnly": "Global templates", "tenantOnly": "Customer collections" }, "scope": { "global": "Global template", "tenant": "Customer-owned" }, "empty": { "title": "No collections yet", "description": "Import one of Fotospiel’s curated templates or create your own bundle to get started." }, "dialogs": { "importTitle": "Import collection", "collectionLabel": "Collection", "selectEvent": "Select event", "submit": "Import", "cancel": "Cancel" }, "notifications": { "imported": "Collection imported successfully", "error": "Collection could not be imported" }, "errors": { "eventsLoad": "Events could not be loaded.", "selectEvent": "Please select an event.", "noEvents": "No events yet – create one to activate this collection." }, "labels": { "taskCount": "{{count}} tasks", "updated": "Updated: {{date}}" }, "pagination": { "prev": "Previous", "next": "Next", "page": "Page {{current}} of {{total}}" } }, "engagement": { "subtitle": "Manage tasks, collections, and emotions from a single workspace." }, "emotions": { "title": "Emotions", "subtitle": "Manage the emotional tone available for your events.", "actions": { "create": "Add emotion", "enable": "Enable", "disable": "Disable" }, "scope": { "global": "Global", "tenant": "Customer" }, "labels": { "updated": "Updated: {{date}}", "noEventType": "All event types" }, "status": { "active": "Active", "inactive": "Inactive" }, "errors": { "genericTitle": "Action failed", "load": "Emotions could not be loaded.", "create": "Emotion could not be created.", "toggle": "Emotion status could not be updated.", "nameRequired": "Please provide a name." }, "empty": { "title": "No emotions yet", "description": "Create your own emotion or use the Fotospiel defaults." }, "dialogs": { "createTitle": "Add custom emotion", "name": "Name", "description": "Description", "icon": "Icon", "color": "Color", "activeLabel": "Active", "activeDescription": "Visible in the task library", "cancel": "Cancel", "submit": "Save emotion" } }, "management": { "photobooth": { "title": "Photobooth uploads", "titleForEvent": "Manage photobooth uploads", "subtitle": "Create FTP access for photobooth software and keep limits in sight.", "actions": { "backToEvent": "Back to detail view", "allEvents": "Back to event list" }, "errors": { "missingSlug": "No event selected.", "loadFailed": "Could not load photobooth link.", "enableFailed": "Could not enable access.", "disableFailed": "Could not disable access.", "rotateFailed": "Could not regenerate credentials." }, "confirm": { "disable": "Disable photobooth access?" } } } , "settings": { "hero": { "badge": "Administration", "description": "Shape the admin experience for your team – appearance, notifications, and security.", "summary": { "appearance": "Match the look & feel with the guest portal.", "notifications": "Fine-tune alerts for tasks, packages, and live events." }, "actions": { "profile": "Edit profile", "events": "Back to events" }, "accountLabel": "Signed-in account", "support": "Adjust settings for you and your team – changes apply instantly." }, "appearance": { "badge": "Appearance", "title": "Appearance & branding", "description": "Align the admin area with your event colors.", "lightTitle": "Light mode", "lightCopy": "Great for offices and high contrast.", "darkTitle": "Dark mode", "darkCopy": "Gentle on eyes during evening events.", "themeLabel": "Choose theme", "themeHint": "Follow the system preference or override it manually." }, "session": { "badge": "Account & security", "title": "Signed-in account", "description": "Manage your session or jump to the profile quickly.", "loggedInAs": "Signed in as", "unknown": "No user loaded right now.", "security": "SSO & 2FA available", "session": "Session valid for 12h", "hint": "Switch devices? Quickly re-login to refresh permissions.", "logout": "Sign out", "cancel": "Back" }, "profile": { "actions": { "openProfile": "Edit profile" } }, "support": { "badge": "Help & support", "title": "Talk to our team", "copy": "Need help? Our support usually replies within a few hours.", "cta": "Contact support" }, "notifications": { "title": "Notifications", "description": "Choose which events should trigger an email notification.", "errorLoad": "Unable to load notification preferences.", "errorSave": "Saving failed. Please try again.", "hint": "You can re-enable notifications at any time.", "actions": { "save": "Save", "reset": "Reset to defaults" }, "summary": { "badge": "Status", "title": "Notification overview", "channel": "Email channel", "channelCopy": "All warnings are delivered via email.", "credits": "Credits", "threshold": "Warning at {{count}} remaining slots" }, "meta": { "creditLast": "Last slot warning: {{date}}", "creditNever": "No slot warning sent yet." }, "items": { "photoThresholds": { "label": "Photo thresholds", "description": "Send warnings when photo usage reaches 80% and 95%." }, "photoLimits": { "label": "Photo limit reached", "description": "Let me know when no further uploads are possible." }, "guestThresholds": { "label": "Guest quota warning", "description": "Warn me shortly before all guest links are in use." }, "guestLimits": { "label": "Guest quota exhausted", "description": "Inform me when no more guest links can be generated." }, "galleryWarnings": { "label": "Gallery ends soon", "description": "Receive reminders 7 and 1 day before the gallery expires." }, "galleryExpired": { "label": "Gallery expired", "description": "Let me know when guests can no longer access the gallery." }, "eventThresholds": { "label": "Event quota warning", "description": "Notify me when the reseller package is almost used up." }, "eventLimits": { "label": "Event quota exhausted", "description": "Notify me when no further events can be created." }, "packageExpiring": { "label": "Package expires soon", "description": "Reminders 30, 7, and 1 day before the package expires." }, "packageExpired": { "label": "Package expired", "description": "Inform me once the package has expired." } } } }, "branding": { "title": "Branding & fonts", "subtitle": "Adjust colors, typography, logos/emoticons, and buttons for the guest app.", "errors": { "missingSlug": "No event selected – open it from the event list." }, "actions": { "back": "Back to event" }, "sections": { "mode": "Default vs. event-specific", "toggleTitle": "Choose branding source", "toggleDescription": "Use tenant defaults or override only for this event.", "palette": "Palette & mode", "colorsTitle": "Colors & light/dark", "colorsDescription": "Set primary, secondary, background, and surface colors.", "typography": "Typography & logo", "fonts": "Fonts & logo/emoticon", "fontDescription": "Configure heading/body fonts plus logo/emoji and alignment.", "buttons": "Buttons & links", "buttonsTitle": "Buttons, links & radius", "buttonsDescription": "Choose style, radius, and optional link color.", "preview": "Preview", "previewTitle": "Mini guest view", "previewCopy": "Header, CTA, and bottom navigation reflecting your branding." }, "useDefault": "Use default", "useCustom": "Event-specific", "toggleHint": "Default uses tenant colors; event-specific overrides them.", "standard": "Default", "custom": "Event", "toggleAria": "Toggle event-specific branding", "mode": "Mode", "modeAuto": "Auto", "modeLight": "Light", "modeDark": "Dark", "typography": { "heading": "Heading font", "body": "Body font" }, "size": "Font size", "logo": { "value": "Emoticon/Logo URL", "mode": "Logo mode", "position": "Position" }, "emoticon": "Emoticon/Text", "upload": "Upload/URL", "left": "Left", "center": "Center", "right": "Right", "palette": { "primary": "Primary", "secondary": "Secondary", "surface": "Surface" }, "buttonStyle": "Style", "buttons": { "style": "Style", "radius": "Radius", "primary": "Button primary", "secondary": "Button secondary", "linkColor": "Link color" }, "filled": "Filled", "outline": "Outline", "radius": "Radius", "linkColor": "Link color", "buttonPrimary": "Button primary", "buttonSecondary": "Button secondary", "reset": "Reset to default", "save": "Save branding", "saving": "Saving...", "saved": "Branding saved.", "saveError": "Branding could not be saved.", "footer": { "default": "Tenant default colors active.", "custom": "Event-specific branding active." }, "usingDefault": "Tenant branding active", "usingCustom": "Event branding active", "preview": { "demoTitle": "Demo event", "guestView": "Guest view · {{mode}}", "ctaCopy": "CTA & buttons reflect the chosen style.", "cta": "Upload photos now", "bottomNav": "Bottom navigation" } }, "taskLibrary": { "titles": { "default": "Task library", "embedded": "Tasks" }, "subtitles": { "default": "Assign tasks and track progress around your events.", "embedded": "Plan tasks, actions, and highlights for your guests." }, "errors": { "title": "Error", "load": "Tasks could not be loaded." }, "actions": { "collections": "Collections", "new": "New", "searchPlaceholder": "Search tasks …" }, "pagination": { "page": "Page {{current}} of {{total}} · {{count}} entries", "summary": "Total {{count}} tasks · Page {{current}} of {{total}}", "prev": "Back", "next": "Next" }, "form": { "editTitle": "Edit task", "createTitle": "Create task", "title": "Title", "description": "Description", "descriptionPlaceholder": "What should guests do?", "priority": "Priority", "priorityPlaceholder": "Choose priority", "dueDate": "Due date", "completedTitle": "Already completed?", "completedCopy": "Mark tasks as done when they should no longer be visible.", "cancel": "Cancel", "save": "Save" }, "priorities": { "low": "Low", "medium": "Medium", "high": "High", "urgent": "Urgent" }, "list": { "template": "Template #{{id}}", "edit": "Edit", "delete": "Delete" }, "empty": { "title": "No tasks yet", "description": "Create a new task or import templates to inspire your guests.", "cta": "Create first task" } }, "billingWarning": { "title": "Needs attention", "description": "Package alerts and limits you should keep an eye on." }, "eventForm": { "errors": { "notice": "Notice", "loadFailed": "Event could not be loaded.", "saveFailed": "Event could not be saved.", "nameRequired": "Please enter an event name.", "typeRequired": "Please select an event type." }, "titles": { "create": "Create event", "edit": "Edit event" }, "subtitle": "Fill in the essentials and share your event with guests.", "sections": { "details": { "title": "Event details", "description": "Name, URL, and date define how guests see your event." } }, "fields": { "name": { "label": "Event name", "placeholder": "e.g. Summer Party 2025", "help": "The slug and event URL are generated from the name.", "fallback": "Event" }, "date": { "label": "Date" }, "description": { "label": "Optional details", "placeholder": "Description" }, "location": { "label": "Location", "placeholder": "Location" }, "enableBranding": { "label": "Enable branding & moderation", "locked": "Branding is available on higher packages. Upgrade to enable custom branding." }, "type": { "label": "Event type", "loading": "Loading event types…", "placeholder": "Select event type", "empty": "No event types available yet. Please add one in the admin area." }, "publish": { "label": "Publish immediately", "help": "Enable if guests should see the event right away. You can change the status later." }, "tasksMode": { "label": "Tasks & challenges", "helpOn": "Guests can see tasks, challenges and achievements.", "helpOff": "Task mode is off: guests only see the photo feed." } }, "actions": { "backToList": "Back to list", "saving": "Saving…", "save": "Save", "cancel": "Cancel", "saveDraft": "Save as draft", "update": "Update event", "create": "Create event" } }, "notifications": { "trigger": "Notifications", "title": "Notifications", "empty": "All clear", "empty.message": "All caught up — we’ll notify you about updates.", "action": { "dismiss": "Dismiss", "refresh": "Load new alerts" }, "noEvents": { "title": "Let’s get started", "description": "Create your first event to unlock uploads, tasks, and invites.", "cta": "Create event" }, "draftEvent": { "title": "Event still a draft", "description": "Publish to enable invites and the gallery.", "cta": "Open event" }, "upcomingEvent": { "title": "Event starts soon", "description_today": "Today’s event — check uploads and tasks.", "description_days": "{{count}} days left — prepare invites and tasks.", "cta": "Open event" }, "pendingUploads": { "title": "Uploads awaiting review", "description": "{{count}} new uploads need moderation.", "cta": "Open uploads" }, "newPhotos": { "title": "New photos arrived", "description": "{{count}} uploads are waiting for you.", "cta": "Open gallery", "ctaFallback": "View events" } }, "events": { "detail": { "kpi": { "tasks": "Active tasks", "guests": "Guests registered", "photos": "Images uploaded" }, "pickEvent": "Select event", "active": "Active", "managementTitle": "Event management", "dateTbd": "Date tbd", "locationPlaceholder": "Location" }, "quick": { "tasks": "Tasks & checklists", "qr": "QR code layouts", "images": "Image management", "guests": "Guest management", "branding": "Branding & theme", "moderation": "Photo moderation", "recap": "Recap & archive" }, "status": { "published": "Live", "draft": "Draft", "archived": "Archived" }, "list": { "title": "Your events", "subtitle": "Plan memorable moments. Manage everything around your events here.", "filters": { "all": "All", "upcoming": "Upcoming", "draft": "Draft", "past": "Past" }, "empty": { "filtered": "No events match this filter.", "filteredHint": "Try a different status or clear your search." }, "actions": { "create": "New event", "settings": "Settings" }, "overview": { "title": "Overview", "empty": "No events yet – create your first one to get started.", "count": "{{count}} {{count, plural, one {event} other {events}}} managed.", "badge": { "dashboard": "Customer dashboard" } } }, "errors": { "missingSlug": "No event slug provided.", "missingType": "Event type is missing. Please save the event again in the admin.", "loadFailed": "Event data could not be loaded.", "saveFailed": "Event could not be saved." }, "branding": { "titleShort": "Branding", "previewTitle": "Guest app preview", "previewSubtitle": "Current colors & fonts", "primary": "Primary", "accent": "Accent", "colors": "Colors", "primaryColor": "Primary color", "accentColor": "Accent color", "fonts": "Fonts", "headingFont": "Headline font", "headingFontPlaceholder": "SF Pro Display", "bodyFont": "Body font", "bodyFontPlaceholder": "SF Pro Text", "logo": "Logo", "logoAlt": "Logo", "replaceLogo": "Replace logo", "removeLogo": "Remove", "logoHint": "Upload a logo to brand guest invites and QR posters.", "uploadLogo": "Upload logo (max. 1 MB)", "logoTooLarge": "Logo must be under 1 MB.", "save": "Save branding", "saving": "Saving...", "saveSuccess": "Branding saved.", "reset": "Reset to defaults", "fontPicker": "Select font", "noFonts": "No fonts found." }, "watermark": { "tab": "Watermark", "title": "Watermark", "previewTitle": "Watermark Preview", "mode": "Mode", "modeBase": "Base watermark", "modeCustom": "Custom watermark", "modeOff": "Off", "upload": "Upload watermark", "uploadCta": "PNG/SVG/JPG (max. 3 MB)", "replace": "Replace watermark", "uploadHint": "PNG with transparency recommended.", "placement": "Placement & size", "size": "Size", "opacity": "Opacity", "padding": "Padding", "offset": "Offset X", "offsetX": "X-axis", "offsetY": "Y-axis", "lockedBranding": "Custom watermark locked by this package. Using base watermark.", "lockedDisabled": "Watermarks are disabled for this package.", "errors": { "noAsset": "Please upload a watermark image first.", "fileTooLarge": "Watermark must be under 3 MB." } }, "members": { "title": "Guest management", "inviteTitle": "Invite member", "name": "Name", "namePlaceholder": "Alex Example", "email": "Email", "emailPlaceholder": "alex@example.com", "role": "Role", "roleMember": "Member", "roleAdmin": "Admin", "invite": "Send invite", "inviteSuccess": "Invitation sent", "inviteFailed": "Invitation failed.", "emailInvalid": "Please enter a valid email address.", "search": "Search members", "filters": { "statusLabel": "Status", "roleLabel": "Role", "statusAll": "All statuses", "statusPending": "Pending", "statusActive": "Active", "statusInvited": "Invited", "roleAll": "All roles", "roleAdmin": "Admins", "roleMember": "Members" }, "listTitle": "Team & guests", "copyEmail": "Email copied", "copyEmailFailed": "Copy failed", "copyEmailLabel": "Copy email", "empty": "No invitations yet.", "emptyTitle": "Invite your team", "emptyBody": "Send the first invite so helpers can access the event.", "emptyFilteredTitle": "No matching members", "emptyFilteredBody": "Adjust your search or filters to see members.", "clearFilters": "Clear filters", "fallbackName": "Guest", "admin": "Admin", "member": "Member", "statuses": { "pending": "Pending", "active": "Active", "invited": "Invited", "unknown": "Unknown" }, "confirmRemove": "Remove member?", "remove": "Remove", "removeHint": "This member will lose access to the event.", "removeSuccess": "Member removed", "removeFailed": "Member could not be removed." }, "tasks": { "disabledTitle": "Task mode is off for this event", "disabledBody": "Guests only see the photo feed. Enable tasks in the event settings to show them again.", "title": "Tasks & checklists", "quickNav": "Quick jump", "sections": { "assigned": "Assigned", "library": "Library", "collections": "Collections", "emotions": "Emotions" }, "summary": { "assigned": "Assigned", "library": "Library", "collections": "Collections", "emotions": "Emotions" }, "actions": "Actions", "assigned": "Task added", "updateFailed": "Task could not be saved.", "created": "Task saved", "removed": "Task removed", "imported": "Task pack imported", "saveTask": "Save task", "add": "Add", "empty": "No tasks assigned yet.", "emptyHint": "Add tasks or import a pack.", "emptyTitle": "No tasks yet", "emptyBody": "Create tasks or import a pack for your event.", "emptyActionTask": "Add task", "emptyActionPack": "Import pack", "addTask": "Add task", "addTaskHint": "Create a new task for this event.", "import": "Import pack", "importHint": "Use predefined packs for your event type.", "search": "Search tasks", "emotionFilter": "Emotion filter", "customEmotion": "Custom emotion", "allEmotions": "All", "count": "{{count}} tasks", "library": "More tasks", "hideLibrary": "Hide library", "viewAllLibrary": "View all", "libraryEmpty": "No more tasks available.", "hideCollections": "Hide collections", "showCollections": "Show all", "collectionsEmpty": "No collections available.", "bulkAdd": "Bulk add", "manageEmotions": "Manage emotions", "manageEmotionsHint": "Filter and keep your taxonomy tidy.", "saveEmotion": "Save emotion", "emotionName": "Name", "emotionNamePlaceholder": "e.g. Joy", "emotionColor": "Color", "emotionRemoved": "Emotion removed", "emotionSaved": "Emotion saved", "emotionNone": "None", "emotion": "Emotion", "description": "Description", "descriptionPlaceholder": "Optional notes", "titleLabel": "Title", "titlePlaceholder": "e.g. First group photo", "bulkHint": "One task per line. These will be created and added to the event.", "bulkPlaceholder": "e.g.\nBride & groom portrait\nGroup photo main guests" } }, "mobileDashboard": { "title": "Dashboard", "selectEvent": "Select an event to continue", "emptyBadge": "Welcome aboard", "emptyTitle": "Welcome! Let's launch your first event", "emptyBody": "Print a QR, collect uploads, and start moderating in minutes.", "ctaCreate": "Create event", "ctaWelcome": "Start welcome journey", "emptyChecklistTitle": "Quick steps to go live", "emptyChecklistProgress": "{{done}}/{{total}} steps", "emptyStepDetails": "Add name & date", "emptyStepQr": "Share your QR poster", "emptyStepReview": "Review first uploads", "emptyPreviewTitle": "Here's what awaits", "emptyPreviewQr": "Share QR poster", "emptyPreviewQrDesc": "Print-ready codes for guests and crew.", "emptyPreviewGallery": "Gallery & highlights", "emptyPreviewGalleryDesc": "Moderate uploads, feature the best moments.", "emptyPreviewTasks": "Tasks & challenges", "emptyPreviewTasksDesc": "Guide guests with playful prompts.", "emptySupportTitle": "Need help?", "emptySupportBody": "We are here if you need a hand getting started.", "emptySupportDocs": "Docs: Getting started", "emptySupportEmail": "Email support", "setupTitle": "Set up this device", "setupSubtitle": "Finish these steps for the best mobile experience.", "setup": { "installTitle": "Install app", "installDescription": "Get full-screen access and faster launch.", "installIosHint": "On iOS: Share → Add to Home Screen.", "installReady": "Ready", "installManual": "Manual", "installAction": "Install now", "pushTitle": "Enable push notifications", "pushDescription": "Stay on top of uploads and quota alerts.", "pushBlockedDesc": "Notifications are blocked in the browser settings.", "pushBlocked": "Blocked", "pushOff": "Off", "pushAction": "Enable push", "pushSettings": "Open settings", "storageTitle": "Protect offline data", "storageDescription": "Keep cached uploads available when you go offline.", "storageUnprotected": "Not protected", "storageAction": "Protect now" }, "packageSummary": { "title": "Your package summary", "fallbackTitle": "Package summary", "subtitle": "Here is a quick overview of your active package.", "limitPhotos": "Photos", "limitGuests": "Guests", "limitDays": "Gallery days", "limitsTitle": "Limits", "remaining": "Remaining events", "purchased": "Purchased", "expires": "Expires", "unlimited": "Unlimited", "unknown": "Unknown", "featuresTitle": "Included features", "feature": { "priority_support": "Priority support", "reseller_dashboard": "Reseller dashboard", "custom_domain": "Custom domain", "custom_branding": "Custom branding", "custom_tasks": "Custom tasks", "unlimited_sharing": "Unlimited sharing", "analytics": "Analytics", "advanced_reporting": "Advanced reporting", "live_slideshow": "Live slideshow", "basic_uploads": "Guest uploads", "team_management": "Team management", "moderation_tools": "Moderation tools", "prints": "Print uploads", "photo_likes_enabled": "Photo likes", "event_checklist": "Event checklist", "advanced_analytics": "Advanced analytics", "branding_allowed": "Branding", "watermark_allowed": "Watermarks" }, "hint": "You can revisit billing any time to review or upgrade your package.", "continue": "Continue to event setup", "dismiss": "Close", "bannerTitle": "Your package summary", "bannerSubtitle": "{{name}} is active. Review limits & features.", "bannerCta": "View" }, "pickEvent": "Select an event", "status": { "published": "Live", "draft": "Draft" }, "photosLabel": "Review photos", "photosDesc": "Moderate uploads and highlights", "tasksLabel": "Manage tasks & challenges", "tasksDesc": "Assign and track progress", "tasksDisabledDesc": "Guests do not see tasks (task mode off)", "qrLabel": "Show / share QR code", "qrDesc": "Posters, cards, and links", "shortcutsTitle": "Shortcuts", "shortcutGuests": "Guest management", "shortcutPrints": "Print & poster downloads", "shortcutInvites": "Team / helper invites", "shortcutSettings": "Event settings", "shortcutBranding": "Branding & moderation", "kpiTitle": "Key performance indicators", "kpiTasks": "Open tasks", "kpiPhotos": "Photos", "kpiGuests": "Guests", "alertsTitle": "Alerts", "alertPending": "{{count}} new uploads awaiting moderation", "alertTasks": "{{count}} tasks due or open" }, "mobileTour": { "title": "Quick tour", "progress": "Step {{current}} of {{total}}", "skip": "Skip", "back": "Back", "next": "Next", "done": "Done", "eventTitle": "Create your first event", "eventBody": "Add the date, location, and package to unlock sharing.", "eventAction": "Create event", "qrTitle": "Share your QR code", "qrBody": "Guests join instantly by scanning or using the invite link.", "qrAction": "Open QR", "photosTitle": "Moderate uploads", "photosBody": "Approve, feature, or hide photos with quick swipes.", "photosAction": "Review photos", "pushTitle": "Stay in the loop", "pushBody": "Enable push alerts to catch limits and new uploads fast.", "pushAction": "Notification settings" }, "mobileUploads": { "title": "Uploads", "emptyTitle": "Create an event first", "emptyBody": "Add your first event to review uploads and manage QR sharing.", "pickEvent": "Pick an event to manage uploads", "open": "Open" }, "mobilePhotos": { "title": "Photo moderation", "empty": "No photos found.", "emptyTitle": "No uploads yet", "emptyBody": "Share the QR code so guests can start uploading photos.", "emptyAction": "Share QR code", "count": "{{count}} photos", "filtersTitle": "Filter", "applyFilters": "Apply filters", "uploader": "Uploader", "uploaderPlaceholder": "Name or email", "onlyFeatured": "Only featured", "onlyHidden": "Only hidden", "loadFailed": "Photos could not be loaded.", "hideSuccess": "Photo hidden", "showSuccess": "Photo shown", "visibilityFailed": "Visibility could not be changed.", "featureSuccess": "Marked as highlight", "unfeatureSuccess": "Highlight removed", "featureFailed": "Highlight could not be changed", "approveSuccess": "Photo approved", "approveFailed": "Approval failed.", "queued": "Action saved. Syncs when you are back online.", "queueTitle": "Changes waiting to sync", "queueOnline": "{{count}} actions ready to sync.", "queueOffline": "{{count}} actions saved offline.", "queueSync": "Sync", "queueWaiting": "Offline", "syncFailed": "Sync failed. Please try again later." }, "liveShowQueue": { "title": "Live Show queue", "subtitle": "Approve photos for the live slideshow", "filterLabel": "Live status", "statusPending": "Pending", "statusApproved": "Approved", "statusRejected": "Rejected", "statusNone": "Not queued", "status": { "pending": "Pending", "approved": "Approved", "rejected": "Rejected", "none": "Not queued" }, "galleryApproved": "Gallery approved", "galleryApprovedOnly": "Gallery and Live Show approvals are separate. Pending photos can be approved here.", "galleryStatus": { "approved": "Gallery approved", "pending": "Gallery pending", "rejected": "Gallery rejected", "hidden": "Hidden" }, "offlineNotice": "You are offline. Live Show actions are disabled.", "empty": "No photos waiting for Live Show.", "loadFailed": "Live Show queue could not be loaded.", "approve": "Approve for Live Show", "approveAndLive": "Approve + Live", "reject": "Reject", "clear": "Remove from Live Show", "approveSuccess": "Photo approved for Live Show", "approveAndLiveSuccess": "Photo approved and added to Live Show", "rejectSuccess": "Photo removed from Live Show", "clearSuccess": "Live Show approval removed", "notEligible": "Not eligible", "actionFailed": "Live Show update failed." }, "liveShowSettings": { "title": "Live Show settings", "subtitle": "Tune the playback, pacing, and effects shown on the screen.", "link": { "title": "Live Show link", "subtitle": "Open this link on a screen to run the Live Show.", "empty": "No Live Show link available.", "copy": "Copy", "share": "Share", "open": "Open", "rotate": "Rotate", "rotateConfirm": "Rotate the Live Show link? The current link will stop working.", "rotateSuccess": "Live Show link rotated.", "rotateFailed": "Live Show link could not be rotated.", "rotatedAt": "Last rotated {{time}}", "noExpiry": "No expiry date (valid until you rotate it).", "loadFailed": "Live Show link could not be loaded.", "copySuccess": "Link copied", "copyFailed": "Link could not be copied", "shareTitle": "Live Show", "shareText": "Live Show link", "qrAlt": "Live Show QR code", "downloadQr": "Download QR" }, "loadFailed": "Live Show settings could not be loaded.", "save": "Save settings", "saveSuccess": "Live Show settings updated.", "saveFailed": "Live Show settings could not be saved.", "sections": { "moderation": "Moderation", "playback": "Playback", "effects": "Effects & layout" }, "fields": { "moderationMode": "Moderation mode", "retention": "Retention window (hours)", "playbackMode": "Playback mode", "paceMode": "Pace", "fixedInterval": "Fixed interval (seconds)", "layoutMode": "Layout", "backgroundMode": "Background", "effectPreset": "Effect preset", "effectIntensity": "Effect intensity" }, "hints": { "moderation": "Trusted sources include admin uploads and photobooths.", "retention": "Controls how long approved photos remain in rotation.", "playback": "Balance newer uploads with highlights when the queue is busy.", "pace": "Auto adapts to new uploads; fixed keeps a steady rhythm.", "layout": "Split and grid layouts are used when enough photos are available." }, "moderation": { "off": "No moderation", "manual": "Manual approval", "trustedOnly": "Trusted sources only" }, "playback": { "newest": "Newest first", "balanced": "Balanced mix", "curated": "Curated" }, "pace": { "auto": "Auto", "fixed": "Fixed" }, "layout": { "single": "Single", "split": "Split", "gridBurst": "Grid burst" }, "background": { "blurLast": "Blur last photo", "gradient": "Soft gradient", "solid": "Solid color", "brand": "Brand colors" }, "effects": { "filmCut": { "title": "Film cut", "description": "Clean fades with a subtle cinematic feel." }, "shutterFlash": { "title": "Shutter flash", "description": "Snappy flash and slide transitions." }, "polaroidToss": { "title": "Polaroid toss", "description": "Card-like frames with a gentle rotation settle." }, "parallaxGlide": { "title": "Parallax glide", "description": "Slow zoom with a soft depth backdrop." }, "light": { "title": "Light effects", "description": "Minimal transitions for lower-powered devices." } } }, "mobileProfile": { "title": "Profile", "settings": "Settings", "account": "Account & security", "language": "Language", "languageDe": "Deutsch", "languageEn": "English", "theme": "Theme", "themeLight": "Light", "themeDark": "Dark", "themeSystem": "System", "logout": "Log out" }, "mobileSettings": { "title": "Settings", "accountTitle": "Account", "tenantBadge": "Tenant #{{id}}", "notificationsTitle": "Notifications", "notificationsLoading": "Loading settings ...", "pushTitle": "App Push", "pushUnsupported": "Push notifications are not supported on this device.", "pushDenied": "Notifications are blocked in your browser.", "pushActive": "Push active", "pushInactive": "Push disabled", "pushLoading": "Loading ...", "deviceTitle": "Device & permissions", "deviceDescription": "Keep the admin app fast, offline-ready, and allowed to send alerts.", "deviceLoading": "Checking device status ...", "deviceStorageAction": "Enable offline protection", "deviceStorageError": "Offline storage could not be enabled.", "deviceStatusValues": { "granted": "Allowed", "denied": "Blocked", "prompt": "Needs permission", "unsupported": "Not supported", "persisted": "Protected", "available": "Not protected", "online": "Online", "offline": "Offline" }, "deviceStatus": { "notifications": { "label": "Notifications", "description": "Allow alerts and admin updates." }, "camera": { "label": "Camera", "description": "Needed for QR scans and quick capture." }, "storage": { "label": "Offline storage", "description": "Protect cached data from eviction." }, "connection": { "label": "Connection", "description": "Shows if the app is online or offline." } }, "experienceTitle": "Experience", "experienceBody": "Replay the quick tour or re-enable the install banner.", "experienceReplay": "Replay quick tour", "experienceResetInstall": "Show install banner", "pref": {} }, "events": { "detail": { "kpi": { "tasks": "Active tasks", "guests": "Guests registered", "photos": "Images uploaded" }, "pickEvent": "Select event", "active": "Active", "managementTitle": "Event management", "dateTbd": "Date tbd", "locationPlaceholder": "Location" }, "quick": { "tasks": "Tasks & checklists", "qr": "QR code layouts", "images": "Image management", "guests": "Guest management", "guestMessages": "Guest messages", "branding": "Branding & theme", "photobooth": "Photobooth", "recap": "Recap & archive" }, "status": { "published": "Live", "draft": "Draft", "archived": "Archived" }, "errors": { "missingSlug": "No event slug provided.", "missingType": "Event type is missing. Please save the event again in the admin.", "loadFailed": "Event data could not be loaded.", "saveFailed": "Event could not be saved.", "notFoundTitle": "Event not found", "notFoundBody": "Without a valid identifier we cannot load data. Return to the event list and pick an event there.", "toggleFailed": "Status could not be updated.", "checkoutMissing": "Checkout could not be started.", "checkoutFailed": "Add-on checkout failed." }, "legalConsent": { "title": "Before purchase", "description": "Please confirm the legal notes before buying an add-on.", "checkboxTerms": "I have read and accept the Terms & Conditions, Privacy Policy, and Right of Withdrawal.", "checkboxWaiver": "I expressly request that you begin providing the digital services (activation of my event add-on) before the withdrawal period has expired. I understand that I lose my right of withdrawal once the contract has been fully performed.", "errorTerms": "Please confirm you accept the terms, privacy policy, and right of withdrawal.", "errorWaiver": "Please confirm the immediate start of the digital service and the early expiry of the right of withdrawal.", "confirm": "Continue to checkout", "cancel": "Cancel" }, "eventStartConsent": { "title": "Before your first event", "description": "Please confirm the immediate start of the digital service before creating your first event.", "checkboxWaiver": "I expressly request that the digital service begins now and understand my right of withdrawal expires once the contract has been fully performed.", "errorWaiver": "Please confirm the immediate start of the digital service and the early expiry of the right of withdrawal.", "confirm": "Create event", "cancel": "Cancel" }, "placeholders": { "untitled": "Untitled event" }, "branding": { "titleShort": "Branding", "previewTitle": "Guest app preview", "previewSubtitle": "Current colors & fonts", "primary": "Primary", "accent": "Accent", "colors": "Colors", "primaryColor": "Primary color", "accentColor": "Accent color", "fonts": "Fonts", "headingFont": "Headline font", "bodyFont": "Body font", "logo": "Logo", "replaceLogo": "Replace logo", "removeLogo": "Remove", "logoHint": "Upload a logo to brand guest invites and QR posters.", "uploadLogo": "Upload logo (max. 1 MB)", "logoTooLarge": "Logo must be under 1 MB.", "save": "Save branding", "saving": "Saving...", "saveSuccess": "Branding saved.", "reset": "Reset to defaults", "fontPicker": "Select font", "noFonts": "No fonts found." }, "watermark": { "tab": "Watermark", "title": "Watermark", "previewTitle": "Watermark Preview", "mode": "Mode", "modeBase": "Base watermark", "modeCustom": "Custom watermark", "modeOff": "Off", "upload": "Upload watermark", "uploadCta": "PNG/SVG/JPG (max. 3 MB)", "replace": "Replace watermark", "uploadHint": "PNG with transparency recommended.", "placement": "Placement & size", "size": "Size", "opacity": "Opacity", "padding": "Padding", "offset": "Offset X", "offsetX": "X-axis", "offsetY": "Y-axis", "lockedBranding": "Custom watermark locked by this package. Using base watermark.", "lockedDisabled": "Watermarks are disabled for this package.", "errors": { "noAsset": "Please upload a watermark image first.", "fileTooLarge": "Watermark must be under 3 MB." } }, "members": { "title": "Guest management", "inviteTitle": "Invite member", "name": "Name", "namePlaceholder": "Alex Example", "email": "Email", "emailPlaceholder": "alex@example.com", "role": "Role", "roleMember": "Member", "roleAdmin": "Admin", "invite": "Send invite", "inviteSuccess": "Invitation sent", "inviteFailed": "Invitation failed.", "search": "Search members", "listTitle": "Team & guests", "copyInvite": "Invite link copied", "copyInviteFailed": "Copy failed", "copyInviteLabel": "Copy invite link", "empty": "No invitations yet.", "emptyTitle": "Invite your team", "emptyBody": "Send the first invite so helpers can access the event.", "emptyAction": "Send first invite", "admin": "Admin", "member": "Member", "confirmRemove": "Remove member?", "remove": "Remove", "removeHint": "This member will lose access to the event.", "removeSuccess": "Member removed", "removeFailed": "Member could not be removed." }, "tasks": { "disabledTitle": "Task mode is off for this event", "disabledBody": "Guests only see the photo feed. Enable tasks in the event settings to show them again.", "title": "Tasks & checklists", "quickNav": "Quick jump", "sections": { "assigned": "Assigned", "library": "Library", "collections": "Collections", "emotions": "Emotions" }, "summary": { "assigned": "Assigned", "library": "Library", "collections": "Collections", "emotions": "Emotions" }, "actions": "Actions", "assigned": "Task added", "updateFailed": "Task could not be saved.", "created": "Task saved", "removed": "Task removed", "imported": "Task pack imported", "saveTask": "Save task", "add": "Add", "empty": "No tasks assigned yet.", "emptyHint": "Add tasks or import a pack.", "emptyTitle": "No tasks yet", "emptyBody": "Create tasks or import a pack for your event.", "emptyActionTask": "Add task", "emptyActionPack": "Import pack", "addTask": "Add task", "addTaskHint": "Create a new task for this event.", "import": "Import pack", "importHint": "Use predefined packs for your event type.", "search": "Search tasks", "emotionFilter": "Emotion filter", "customEmotion": "Custom emotion", "allEmotions": "All", "count": "{{count}} tasks", "library": "More tasks", "hideLibrary": "Hide library", "viewAllLibrary": "View all", "libraryEmpty": "No more tasks available.", "hideCollections": "Hide collections", "showCollections": "Show all", "collectionsEmpty": "No collections available.", "bulkAdd": "Bulk add", "manageEmotions": "Manage emotions", "manageEmotionsHint": "Filter and keep your taxonomy tidy.", "saveEmotion": "Save emotion", "emotionName": "Name", "emotionNamePlaceholder": "e.g. Joy", "emotionColor": "Color", "emotionRemoved": "Emotion removed", "emotionSaved": "Emotion saved", "emotionNone": "None", "emotion": "Emotion", "description": "Description", "descriptionPlaceholder": "Optional notes", "titleLabel": "Title", "titlePlaceholder": "e.g. First group photo", "bulkHint": "One task per line. These will be created and added to the event.", "bulkPlaceholder": "e.g.\nBride & groom portrait\nGroup photo main guests" }, "qr": { "title": "QR Code & Print Layouts", "heroTitle": "Entrance QR Code", "description": "Scan to access the event guest app.", "expiresAt": "Valid until {{date}}", "noExpiry": "No expiry configured", "qrAlt": "QR code", "previewAlt": "QR layout preview", "bottomNote": "Bottom note text", "missing": "No QR link available", "download": "Download", "downloadStarted": "Download started", "share": "Share", "shareSuccess": "Link copied", "shareFailed": "Could not copy link", "step1": "Step 1: Choose format", "layouts": "Print Layouts", "preview": "Customize & Export", "createLink": "Create new QR link", "mobileLinkLabel": "Mobile link", "created": "New QR link created", "createFailed": "Could not create link.", "backgroundPicker": "Select background ({{formatLabel}})", "backgroundPickerFoldable": "Background for A5 (gradient/solid)", "backgroundNote": "These presets are designed for A4 portrait. Mirroring is automatic for table cards.", "foldableBackgroundNote": "For A5 table cards choose a gradient or solid colour.", "gradients": "Gradients", "colors": "Solid colour", "headline": "Headline", "subtitle": "Subtitle", "align": "Align", "lineHeight": "Line height", "fontFamily": "Font family", "fontSize": "Font size (px)", "positionX": "X (%)", "positionY": "Y (%)", "width": "Width (%)", "size": "Size (%)", "exportPdf": "Export PDF", "exportPng": "Export PNG", "orientation": { "landscape": "Landscape", "portrait": "Portrait" }, "formatLabel": { "standard": "{{paper}} {{orientation}}", "foldable": "{{paper}} {{orientation}} (double A5/mirrored)" }, "backgroundPresets": { "blueFloral": "Blue floral", "goldFrame": "Gold frame", "greenFloral": "Green floral" }, "gradientPresets": { "softLilac": "Soft lilac", "pastel": "Pastel", "midnight": "Midnight" }, "format": { "poster": "A4 Poster", "posterSubtitle": "Portrait for posters", "table": "A5 Table card (foldable)", "tableSubtitle": "Landscape, double-mirror" } } }, "settings": { "notifications": { "keys": { "photo_thresholds": { "label": "Photo thresholds", "description": "Get notified as photo uploads approach package limits." }, "photo_limits": { "label": "Photo limits reached", "description": "Alert when photo upload quota is exceeded." }, "guest_thresholds": { "label": "Guest thresholds", "description": "Warn when guest count nears the limit." }, "guest_limits": { "label": "Guest limits reached", "description": "Alert when guest limit is exceeded." }, "gallery_warnings": { "label": "Gallery warnings", "description": "Heads-up before galleries go offline." }, "gallery_expired": { "label": "Gallery expired", "description": "Notify when a gallery is no longer available." }, "event_thresholds": { "label": "Event thresholds", "description": "Warn as event usage approaches limits." }, "event_limits": { "label": "Event limits reached", "description": "Alert when event quotas are exceeded." }, "package_expiring": { "label": "Package expiring", "description": "Reminders before your package expires." }, "package_expired": { "label": "Package expired", "description": "Alert when your package has expired." } } } }, "mobileBilling": { "packageFallback": "Package", "remainingEvents": "{{count}} events", "remainingEventsOf": "{{remaining}} of {{limit}} events remaining", "remainingEventsZero": "No events remaining", "eventsCreated": "{{used}} of {{limit}} events created", "openEvent": "Open event", "details": { "limitsTitle": "Limits", "featuresTitle": "Features" }, "usage": { "events": "Events", "guests": "Guests", "photos": "Photos", "gallery": "Gallery days", "value": "{{used}} / {{limit}}", "limit": "Limit {{limit}}", "remaining": "Remaining {{count}}", "remainingOf": "{{remaining}} of {{limit}} remaining", "statusWarning": "Low", "statusDanger": "Limit reached", "ctaWarning": "Secure more capacity", "ctaDanger": "Upgrade package" }, "status": { "completed": "Completed", "pending": "Pending", "failed": "Failed" }, "extra": { "photos": "+{{count}} photos", "guests": "+{{count}} guests", "days": "+{{count}} days" } }, "packageLimits": { "max_photos": "Photos", "max_guests": "Guests", "max_tasks": "Tasks", "gallery_days": "Gallery days", "max_events_per_year": "Events per year" }, "mobileEvents": { "edit": "Edit event" }, "events.qr.layouts.badges.title": "Badges", "events.qr.layouts.badges.subtitle": "Standard, Staff", "events.qr.layouts.tents.title": "Table Tents", "events.qr.layouts.tents.subtitle": "A4, Letter", "events.qr.layouts.posters.title": "Posters", "events.qr.layouts.posters.subtitle": "A3, 11x17", "events.qr.layouts.programs.title": "Event Programs", "events.qr.layouts.programs.subtitle": "Folded, Booklet", "events.qr.paperOption.A4 (210 x 297 mm)": "A4 (210 x 297 mm)", "events.qr.paperOption.Letter (8.5 x 11 in)": "Letter (8.5 x 11 in)", "events.qr.paperOption.A3 (297 x 420 mm)": "A3 (297 x 420 mm)", "mobileNotifications": { "title": "Notifications", "empty": "No notifications yet.", "emptyTitle": "All caught up", "emptyBody": "Enable push to receive alerts about uploads, guests, and expiring galleries.", "emptyAction": "Check notification settings", "filterByEvent": "Filter by event", "unknownEvent": "Event" }, "guestMessages": { "title": "Guest messages", "subtitle": "Send push updates to attendees", "composeTitle": "Send a message", "errorLoad": "Messages could not be loaded.", "errorSend": "Message could not be sent.", "sendSuccess": "Notification sent to guests.", "historyTitle": "Recent messages", "empty": "No guest messages yet.", "emptyTitle": "Send your first guest message", "emptyBody": "Share a quick reminder or highlight to keep guests engaged.", "emptyAction": "Compose message", "status": { "active": "Active", "draft": "Draft", "archived": "Archived" }, "audience": { "all": "All guests", "guest": "Specific guest" }, "type": { "broadcast": "Broadcast", "support_tip": "Support tip", "upload_alert": "Upload alert", "achievement_major": "Achievement", "photo_activity": "Photo activity", "feedback_request": "Feedback request" }, "history": { "untitled": "Untitled", "noBody": "No body provided." }, "form": { "title": "Title", "titlePlaceholder": "Gallery reminder, upload nudge, ...", "message": "Message", "messagePlaceholder": "Write a short note for your guests.", "audience": "Audience", "audienceAll": "All guests", "audienceGuest": "Specific guest (name or device)", "guestIdentifier": "Guest name or device ID", "guestPlaceholder": "e.g., Alex or device token", "cta": "CTA (optional)", "ctaLabel": "Button label", "ctaUrl": "Button link", "ctaHint": "Both fields are required to add a button.", "ctaError": "CTA label and link are required together.", "expiresIn": "Expires in (minutes)", "expiresPlaceholder": "60", "priority": "Priority", "priorityValue": "Priority {{value}}", "send": "Send notification", "validation": "Add a title, message, and target guest when needed." } }, "dataExports": { "title": "Data exports", "request": { "title": "Export request", "hint": "Export tenant data or a specific event archive.", "progress": "Export is running. This list refreshes automatically." }, "fields": { "scope": "Scope", "event": "Event", "eventPlaceholder": "Choose event", "includeMedia": "Include raw media", "includeMediaHint": "Bigger ZIP; choose when needed." }, "scopes": { "tenant": "Tenant export", "event": "Event export" }, "history": { "title": "Recent exports", "hint": "Latest 10 exports for your tenant and events.", "empty": "No exports yet." }, "status": { "pending": "Pending", "processing": "Processing", "ready": "Ready", "failed": "Failed" }, "badges": { "includesMedia": "Raw media" }, "actions": { "refresh": "Refresh", "request": "Request export", "requesting": "Requesting...", "requested": "Export is being prepared.", "download": "Download", "downloaded": "Download started." }, "errors": { "load": "Exports could not be loaded.", "request": "Export could not be started.", "eventRequired": "Select an event first.", "failed": "Export failed.", "download": "Download failed." } }, "analytics": { "title": "Analytics", "upgradeAction": "Upgrade to Premium", "kpiTitle": "Event snapshot", "kpiUploads": "Uploads", "kpiContributors": "Contributors", "kpiLikes": "Likes", "activityTitle": "Activity Timeline", "timeframe": "Last {{hours}} hours", "timeframeHint": "Older activity hidden", "uploadsPerHour": "Uploads per hour", "noActivity": "No uploads yet", "emptyActionShareQr": "Share your QR code", "contributorsTitle": "Top Contributors", "likesCount": "{{count}} likes", "likesCount_one": "{{count}} like", "likesCount_other": "{{count}} likes", "noContributors": "No contributors yet", "emptyActionInvite": "Invite guests", "tasksTitle": "Popular Tasks", "noTasks": "No task activity yet", "emptyActionOpenTasks": "Open tasks", "lockedTitle": "Unlock Analytics", "lockedBody": "Get deep insights into your event engagement with the Premium package." }, "shop": { "title": "Upgrade Package", "subtitle": "Choose a package to unlock more features and limits.", "recommendationTitle": "Recommended for you", "recommendationBody": "The highlighted package includes the feature you requested.", "compare": { "title": "Compare plans", "helper": "Swipe to compare packages side by side.", "toggleCards": "Cards", "toggleCompare": "Compare", "headers": { "plan": "Plan", "price": "Price" }, "rows": { "photos": "Photos", "guests": "Guests", "days": "Gallery days" }, "values": { "included": "Included", "notIncluded": "Not included", "unlimited": "Unlimited" } }, "select": "Select", "manage": "Manage Plan", "limits": { "photos": "{{count}} Photos", "photos_one": "{{count}} Photo", "photos_other": "{{count}} Photos", "unlimitedPhotos": "Unlimited Photos", "days": "{{count}} Days Gallery", "days_one": "{{count}} Day Gallery", "days_other": "{{count}} Days Gallery" }, "features": { "advanced_analytics": "Advanced Analytics", "basic_uploads": "Basic uploads", "custom_branding": "Custom Branding", "custom_tasks": "Custom tasks", "limited_sharing": "Limited sharing", "live_slideshow": "Live slideshow", "priority_support": "Priority support", "unlimited_sharing": "Unlimited sharing", "watermark_removal": "No Watermark" }, "status": { "active": "Active Plan", "owned": "Purchased", "remaining": "{{count}} Events left", "remaining_one": "{{count}} Event left", "remaining_other": "{{count}} Events left" }, "badges": { "recommended": "Recommended", "active": "Active", "upgrade": "Upgrade", "downgrade": "Downgrade" }, "confirmTitle": "Confirm Purchase", "confirmSubtitle": "You are upgrading to:", "legalTitle": "Terms & Conditions", "legal": { "agb": "I agree to the Terms and Conditions and Privacy Policy.", "withdrawal": "I agree that the contract execution begins immediately and I lose my right of withdrawal." }, "processing": "Processing...", "payNow": "Pay Now", "errors": { "checkout": "Checkout failed" }, "selectDisabled": "Not available" } }