{ "billing": { "title": "Packages & billing", "subtitle": "Manage your purchased packages and track their durations.", "actions": { "refresh": "Refresh", "exportCsv": "Export CSV" }, "errors": { "load": "Unable to load package data.", "more": "Unable to load more entries." }, "sections": { "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": "Package history", "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 tenant.", "empty": "No Paddle transactions yet.", "labels": { "transactionId": "Transaction {{id}}", "checkoutId": "Checkout ID: {{id}}", "origin": "Origin: {{origin}}", "receipt": "View receipt", "tax": "Tax: {{value}}" }, "status": { "completed": "Completed", "processing": "Processing", "failed": "Failed", "cancelled": "Cancelled", "unknown": "Unknown" }, "loadMore": "Load more transactions", "loadingMore": "Loading…" } }, "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" } } }, "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.", "emptyTitle": "No photos yet", "emptyDescription": "Encourage your guests to upload – the gallery will appear here." } }, "events": { "list": { "title": "Your events", "subtitle": "Plan memorable moments. Manage everything around your events here.", "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": "Tenant dashboard" } } } }, "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": "Tenant admin", "member": "Member", "guest": "Guest" }, "statuses": { "published": "Published", "draft": "Draft", "active": "Active" }, "eventStatus": "Status: {{status}}", "events": { "untitled": "Untitled event" } }, "tasks": { "title": "Event tasks", "subtitle": "Manage tasks associated with this event.", "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." }, "alerts": { "notFoundTitle": "Event not found", "notFoundDescription": "Please return to the event list." }, "eventStatus": "Status: {{status}}", "sections": { "assigned": { "title": "Assigned tasks", "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 ..." }, "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" } }, "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", "export": "Print & export", "links": "Manage invites" }, "summary": { "active": "Active invites", "total": "Total" }, "actions": { "refresh": "Refresh", "create": "Create invite", "backToList": "Back to list", "backToEvent": "Open event", "copy": "Copy link", "copied": "Copied!", "deactivate": "Deactivate" }, "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" } }, "events": { "errors": { "missingSlug": "No event selected.", "loadFailed": "Event could not be loaded.", "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." }, "alerts": { "failedTitle": "Action failed" }, "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" }, "workspace": { "detailSubtitle": "Keep status, tasks, and invites of your event in one view.", "toolkitSubtitle": "Bundle moderation, tasks, and invites for the event day.", "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", "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" }, "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": { "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": { "title": "Active tasks", "subtitle": "Motivate guests with clear prompts & highlights.", "summary": "{{completed}} of {{total}} complete", "empty": "No tasks assigned yet.", "manage": "Open task workspace" }, "photos": { "pendingTitle": "Photos awaiting review", "pendingSubtitle": "Check uploads before they go live.", "pendingCount": "{{count}} photos pending", "pendingEmpty": "No photos waiting for moderation.", "openModeration": "Open moderation", "recentTitle": "Latest uploads", "recentSubtitle": "Spot the latest guest highlights.", "recentEmpty": "No new uploads yet." }, "feedback": { "title": "How is your event running?", "subtitle": "Your feedback helps us prioritise improvements.", "positive": "Going great!", "neutral": "All right", "negative": "Needs support", "placeholder": "Optional: tell us what works well or where you need help.", "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!" } }, "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": "Tenant collections" }, "scope": { "global": "Global template", "tenant": "Tenant-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": "Tenant" }, "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": { "billing": { "title": "Packages & billing", "subtitle": "Manage your purchased packages and track their durations.", "actions": { "refresh": "Refresh", "exportCsv": "Export CSV" }, "errors": { "load": "Unable to load package data.", "more": "Unable to load more entries." }, "sections": { "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" } } } }, "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" } } } } , "settings": { "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" }, "meta": { "creditLast": "Last credit warning: {{date}}", "creditNever": "No credit 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." }, "creditsLow": { "label": "Event credits running low", "description": "Warn me when credit thresholds are reached." } } } } }