6906c8bcf7
Test and Lint / backend-test (push) Successful in 1m10s
Test and Lint / frontend-test (push) Successful in 2m22s
continuous-integration/drone/push Build is passing
Version and Release / version-bump (push) Successful in 37s
Version and Release / trigger-drone (push) Successful in 3s
Backend changes: - Update multer configuration to accept up to 500 files per upload - Implement batch processing (10 files per transaction) for better performance - Add memory-efficient Sharp configuration for thumbnail generation - Increase Express body parser limits to handle large payloads - Add proper error handling and reporting for partial upload failures Frontend changes: - Update validation to allow 500 files maximum - Implement chunked uploads (50 files per chunk) to prevent timeouts - Add progress tracking with chunk information display - Update error messages and translations (EN/DE) Performance optimizations: - Disable Sharp cache to prevent memory buildup - Limit Sharp concurrency to 2 operations - Use sequential read for large images - Process files in database transaction batches - Return detailed upload results including success/failure counts This implementation ensures the application can handle large photo uploads efficiently without running into memory or timeout issues. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
914 lines
38 KiB
JSON
914 lines
38 KiB
JSON
{
|
|
"common": {
|
|
"loading": "Loading...",
|
|
"error": "Error",
|
|
"save": "Save",
|
|
"cancel": "Cancel",
|
|
"delete": "Delete",
|
|
"edit": "Edit",
|
|
"add": "Add",
|
|
"search": "Search",
|
|
"filter": "Filter",
|
|
"sortBy": "Sort by",
|
|
"yes": "Yes",
|
|
"no": "No",
|
|
"back": "Back",
|
|
"next": "Next",
|
|
"previous": "Previous",
|
|
"close": "Close",
|
|
"logout": "Logout",
|
|
"menu": "Menu",
|
|
"change": "Change",
|
|
"remove": "Remove",
|
|
"download": "Download",
|
|
"downloadAll": "Download All",
|
|
"uploading": "Uploading...",
|
|
"uploaded": "Uploaded",
|
|
"photo": "photo",
|
|
"photos": "photos",
|
|
"restore": "Restore",
|
|
"actions": "Actions",
|
|
"refresh": "Refresh",
|
|
"preview": "Preview",
|
|
"processing": "Processing...",
|
|
"upload": "Upload",
|
|
"days": "days",
|
|
"customize": "Customize",
|
|
"hide": "Hide"
|
|
},
|
|
"upload": {
|
|
"photoCategory": "Photo Category",
|
|
"noCategory": "No category",
|
|
"eventSpecific": "(Event specific)",
|
|
"clickToUpload": "Click to upload or drag and drop",
|
|
"fileRequirements": "JPEG, PNG or WebP (max 50MB per file)",
|
|
"selectedFiles": "Selected files",
|
|
"uploading": "Uploading...",
|
|
"uploadComplete": "Upload complete!",
|
|
"uploadFailed": "Upload failed",
|
|
"someFilesFailed": "Some files failed to upload",
|
|
"uploadPhotos": "Upload Photos",
|
|
"maxFilesReached": "Maximum 500 files allowed",
|
|
"someFilesSkipped": "Some files were skipped (500 file limit)",
|
|
"tooManyFiles": "Maximum 500 files can be uploaded at once"
|
|
},
|
|
"navigation": {
|
|
"dashboard": "Dashboard",
|
|
"events": "Events",
|
|
"archives": "Archives",
|
|
"settings": "Settings",
|
|
"branding": "Branding",
|
|
"analytics": "Analytics",
|
|
"emailSettings": "Email Settings",
|
|
"cmsPages": "CMS Pages"
|
|
},
|
|
"archives": {
|
|
"title": "Archives",
|
|
"subtitle": "Manage archived photo galleries",
|
|
"loadingArchives": "Loading archives...",
|
|
"totalArchives": "Total Archives",
|
|
"storageUsed": "Storage Used",
|
|
"totalPhotos": "Total Photos",
|
|
"avgArchiveSize": "Avg Archive Size",
|
|
"searchPlaceholder": "Search archives...",
|
|
"allTypes": "All Types",
|
|
"wedding": "Wedding",
|
|
"birthday": "Birthday",
|
|
"corporate": "Corporate",
|
|
"other": "Other",
|
|
"sortByDate": "Sort by Date",
|
|
"sortByName": "Sort by Name",
|
|
"sortBySize": "Sort by Size",
|
|
"tableHeaders": {
|
|
"event": "Event",
|
|
"type": "Type",
|
|
"archivedDate": "Archived Date",
|
|
"size": "Size",
|
|
"photos": "Photos",
|
|
"actions": "Actions"
|
|
},
|
|
"noArchivesFound": "No archives found",
|
|
"eventDateNA": "Event date: N/A",
|
|
"processing": "Processing...",
|
|
"download": "Download",
|
|
"restore": "Restore",
|
|
"delete": "Delete",
|
|
"showing": "Showing {{from}} to {{to}} of {{total}} archives",
|
|
"page": "Page {{current}} of {{total}}",
|
|
"storageManagement": "Storage Management",
|
|
"storageInfo": "Archives are stored permanently unless manually deleted. Consider implementing a retention policy to manage storage costs.",
|
|
"confirmRestore": "Are you sure you want to restore this archive? The event will become active again.",
|
|
"confirmDelete": "Are you sure you want to permanently delete this archive? This action cannot be undone.",
|
|
"restoreSuccess": "Archive restored successfully",
|
|
"deleteSuccess": "Archive deleted permanently"
|
|
},
|
|
"auth": {
|
|
"login": "Login",
|
|
"password": "Password",
|
|
"enterPassword": "Enter Gallery Password",
|
|
"passwordPlaceholder": "Enter the gallery password",
|
|
"invalidPassword": "Invalid password",
|
|
"wrongPassword": "Incorrect password. Please check your password and try again.",
|
|
"tooManyAttempts": "Too many failed login attempts. Please try again later.",
|
|
"sessionExpired": "Session expired",
|
|
"pleaseEnterPassword": "Please enter a password",
|
|
"passwordHint": "The password was provided by the event organizer. Contact them if you don't have it."
|
|
},
|
|
"gallery": {
|
|
"title": "Photo Gallery",
|
|
"welcomeMessage": "Welcome Message",
|
|
"expiresOn": "Expires on",
|
|
"expires": "Expires",
|
|
"expired": "Expired",
|
|
"daysRemaining": "{{days}} days remaining",
|
|
"dayRemaining": "1 day remaining",
|
|
"hoursRemaining": "{{hours}} hours remaining",
|
|
"expiredMessage": "This gallery expired on {{date}}",
|
|
"contactOrganizer": "Please contact the event organizer if you need access to these photos",
|
|
"searchPhotos": "Search photos by filename...",
|
|
"sortByDate": "Sort by Date",
|
|
"sortByName": "Sort by Name",
|
|
"sortBySize": "Sort by Size",
|
|
"allPhotos": "All Photos",
|
|
"downloadSelected": "Download Selected",
|
|
"shareGallery": "Share Gallery",
|
|
"needHelp": "Need help? Contact us at",
|
|
"noPhotosFound": "No photos found",
|
|
"failedToLoad": "Failed to load photos",
|
|
"tryAgain": "Try Again",
|
|
"loading": "Loading gallery...",
|
|
"expiredOn": "This gallery expired on {{date}}.",
|
|
"contactOrganizer": "Please contact the event organizer if you need access to these photos.",
|
|
"expiresIn": "Gallery expires in {{count}} day",
|
|
"expiresIn_plural": "Gallery expires in {{count}} days",
|
|
"downloadBefore": "Download your photos before they're no longer available.",
|
|
"viewGallery": "View Gallery",
|
|
"downloadAll": "Download All",
|
|
"downloading": "Downloading {{count}} photo...",
|
|
"downloading_plural": "Downloading {{count}} photos...",
|
|
"downloadedPhotos": "Downloaded {{count}} photo!",
|
|
"downloadedPhotos_plural": "Downloaded {{count}} photos!",
|
|
"downloadError": "Some photos failed to download",
|
|
"selectPhotos": "Select Photos",
|
|
"cancelSelection": "Cancel Selection",
|
|
"photosSelected": "{{count}} selected",
|
|
"selectAll": "Select All",
|
|
"deselectAll": "Deselect All",
|
|
"downloadSelected": "Download {{count}} Selected",
|
|
"remaining": "remaining",
|
|
"selectPhotosHint": "Tip: Use Ctrl+Click (Cmd+Click on Mac) to quickly select multiple photos",
|
|
"filters": "Filters",
|
|
"openFilters": "Open filters",
|
|
"toggleSidebar": "Toggle sidebar",
|
|
"toggleMenu": "Toggle menu",
|
|
"allCategories": "All Categories",
|
|
"categories": "Categories",
|
|
"download": "Download",
|
|
"searchPlaceholder": "Search photos..."
|
|
},
|
|
"categories": {
|
|
"title": "Photo Categories",
|
|
"global": "Global Categories",
|
|
"eventSpecific": "Event-Specific Categories",
|
|
"addCategory": "Add Category",
|
|
"organizationInfo": "Organize your photos into categories. Categories help guests navigate and find specific types of photos.",
|
|
"eventSpecificCategories": "Event-Specific Categories",
|
|
"noEventSpecificCategories": "No event-specific categories. Global categories are available by default.",
|
|
"globalCategoriesAlwaysAvailable": "Global Categories (always available):",
|
|
"deleteCategoryTitle": "Delete category",
|
|
"categoryCreatedSuccess": "Category created successfully",
|
|
"categoryDeletedSuccess": "Category deleted successfully",
|
|
"failedToCreateCategory": "Failed to create category",
|
|
"failedToDeleteCategory": "Failed to delete category",
|
|
"categoryName": "Category name",
|
|
"noCategory": "No category",
|
|
"noCategoriesYet": "No categories yet. Create your first category to organize photos.",
|
|
"deleteConfirm": "Are you sure you want to delete \"{{name}}\"?",
|
|
"cannotDelete": "Cannot delete category with photos. Please reassign photos first."
|
|
},
|
|
"events": {
|
|
"title": "Events",
|
|
"create": "Create",
|
|
"createEvent": "Create Event",
|
|
"totalViews": "Total Views",
|
|
"totalDownloads": "Total Downloads",
|
|
"uniqueVisitors": "Unique Visitors",
|
|
"createNewEvent": "Create New Event",
|
|
"setupNewGallery": "Set up a new photo gallery for your event",
|
|
"createNewEventSubtitle": "Set up a new photo gallery for your event",
|
|
"eventNamePlaceholder": "e.g., John & Jane's Wedding",
|
|
"welcomeMessageOptional": "Welcome Message (Optional)",
|
|
"welcomeMessagePlaceholder": "Welcome to our special day! Feel free to download and share these memories...",
|
|
"hostEmailPlaceholder": "host@example.com",
|
|
"adminEmailPlaceholder": "admin@example.com",
|
|
"securityAndAccess": "Security & Access",
|
|
"accessAndSecurity": "Access & Security",
|
|
"enterPassword": "Enter password",
|
|
"passwordPlaceholder": "Enter a secure password",
|
|
"confirmPasswordPlaceholder": "Confirm password",
|
|
"galleryExpiresOn": "Gallery will expire on {{date}}",
|
|
"guestsWillReceiveWarning": "Guests will receive a warning email 7 days before expiration.",
|
|
"types": {
|
|
"wedding": "Wedding",
|
|
"birthday": "Birthday",
|
|
"corporate": "Corporate",
|
|
"other": "Other"
|
|
},
|
|
"themes": {
|
|
"default": "Default",
|
|
"oceanBlue": "Ocean Blue",
|
|
"royalPurple": "Royal Purple",
|
|
"roseGold": "Rose Gold",
|
|
"sunsetAmber": "Sunset Amber"
|
|
},
|
|
"eventDetails": "Event Details",
|
|
"eventName": "Event Name",
|
|
"eventType": "Event Type",
|
|
"eventDate": "Event Date",
|
|
"hostEmail": "Host Email",
|
|
"hostName": "Host Name",
|
|
"hostNamePlaceholder": "John Smith",
|
|
"adminEmail": "Admin Email",
|
|
"adminNotificationEmail": "Admin Notification Email",
|
|
"expirationDate": "Expiration Date",
|
|
"active": "Active",
|
|
"archived": "Archived",
|
|
"photoCount": "{{count}} photos",
|
|
"totalSize": "Total Size",
|
|
"shareLink": "Share Link",
|
|
"copyLink": "Copy Link",
|
|
"linkCopied": "Link copied!",
|
|
"viewGallery": "View Gallery",
|
|
"uploadPhotos": "Upload Photos",
|
|
"archiveEvent": "Archive Event",
|
|
"archiveConfirm": "Are you sure you want to archive this event? This action cannot be undone.",
|
|
"extendExpiration": "Extend {{days}} Days",
|
|
"backToEvents": "Back to Events",
|
|
"loadingEventDetails": "Loading event details...",
|
|
"saveChanges": "Save Changes",
|
|
"eventExpired": "This event has expired",
|
|
"eventExpiresIn": "This event expires in {{days}} days",
|
|
"guestsNoAccess": "Guests can no longer access the gallery. Consider archiving this event.",
|
|
"warningEmailsSent": "Warning emails have been sent to the host.",
|
|
"overview": "Overview",
|
|
"photos": "Photos",
|
|
"categories": "Categories",
|
|
"eventInformation": "Event Information",
|
|
"welcomeMessage": "Welcome Message",
|
|
"noWelcomeMessage": "No welcome message set",
|
|
"created": "Created",
|
|
"expires": "Expires",
|
|
"shareWithGuests": "Share this link with guests. They'll need the password to access the gallery.",
|
|
"resetGalleryPassword": "Reset Gallery Password",
|
|
"photoStatistics": "Photo Statistics",
|
|
"totalPhotos": "Total Photos",
|
|
"managePhotos": "Manage Photos",
|
|
"actions": "Actions",
|
|
"archivingInfo": "Archiving will create a ZIP file of all photos and remove the gallery from public access.",
|
|
"statistics": "Statistics",
|
|
"views": "Views",
|
|
"downloads": "Downloads",
|
|
"uniqueVisitors": "Unique Visitors",
|
|
"noStatistics": "No statistics available yet",
|
|
"archiveStatus": "Archive Status",
|
|
"archivedOn": "Archived On",
|
|
"downloadArchive": "Download Archive",
|
|
"loadingPhotos": "Loading photos...",
|
|
"photoCategories": "Photo Categories",
|
|
"organizeCategoriesInfo": "Organize your photos into categories. Categories help guests navigate and find specific types of photos.",
|
|
"categoriesTip": "Tip: Categories are specific to each event. You can also create global categories in Settings.",
|
|
"contactInformation": "Contact Information",
|
|
"hostEmailHelp": "Will receive gallery creation and expiration notifications",
|
|
"adminEmailHelp": "Will receive system notifications and archive confirmations",
|
|
"securityAccess": "Security & Access",
|
|
"galleryPassword": "Gallery Password",
|
|
"confirmPassword": "Confirm Password",
|
|
"showPasswords": "Show passwords",
|
|
"gallerySettings": "Gallery Settings",
|
|
"themeAndStyle": "Theme & Style",
|
|
"colorTheme": "Color Theme",
|
|
"galleryExpiration": "Gallery Expiration",
|
|
"galleryExpiresIn": "Gallery Expires In",
|
|
"daysAfterEvent": "days after event date",
|
|
"expiresOn": "Expires on",
|
|
"galleryWillExpireOn": "Gallery will expire on {{date}}",
|
|
"expirationWarning": "Guests will receive a warning email 7 days before expiration.",
|
|
"userUploads": "User Upload Settings",
|
|
"allowUserUploads": "Allow guests to upload photos",
|
|
"allowUserUploadsHelp": "Enable guests to upload their own photos to this gallery",
|
|
"allowUserUploadsDescription": "Enable guests to upload their own photos to this gallery",
|
|
"uploadCategory": "Upload Category",
|
|
"selectCategory": "Select a category for user uploads",
|
|
"uploadCategoryHelp": "All user-uploaded photos will be added to this category",
|
|
"userUploadWarning": "User uploads will be moderated and can be removed by admins at any time.",
|
|
"heroPhoto": "Hero Photo",
|
|
"heroPhotoHelp": "Select a featured photo for the hero gallery layout",
|
|
"selectHeroPhoto": "Select Hero Photo",
|
|
"noHeroPhotoSelected": "No hero photo selected",
|
|
"heroPhotoSelected": "Hero photo selected",
|
|
"noPhotosAvailable": "No photos available",
|
|
"processingRequest": "Processing your request...",
|
|
"eventTypeWedding": "Wedding",
|
|
"eventTypeBirthday": "Birthday",
|
|
"eventTypeCorporate": "Corporate",
|
|
"eventTypeOther": "Other",
|
|
"days30": "30 days",
|
|
"days60": "60 days",
|
|
"days90": "90 days",
|
|
"days365": "1 year",
|
|
"inactive": "Inactive",
|
|
"expired": "Expired",
|
|
"daysLeft": "{{count}}d left",
|
|
"daysLeft_plural": "{{count}}d left",
|
|
"subtitle": "Manage your photo galleries and events",
|
|
"loadingEvents": "Loading events...",
|
|
"failedToLoadEvents": "Failed to load events",
|
|
"tryAgain": "Try Again",
|
|
"bulkArchiveSuccess": "Successfully archived {{count}} events",
|
|
"bulkArchivePartial": "Archived {{success}} events, {{failed}} failed",
|
|
"searchEventsPlaceholder": "Search events...",
|
|
"all": "All",
|
|
"expiring": "Expiring",
|
|
"eventsSelected": "{{count}} event selected",
|
|
"eventsSelected_plural": "{{count}} events selected",
|
|
"clear": "Clear",
|
|
"archiveSelected": "Archive Selected",
|
|
"event": "Event",
|
|
"type": "Type",
|
|
"date": "Date",
|
|
"status": "Status",
|
|
"expires": "Expires",
|
|
"actions": "Actions",
|
|
"noEventsFound": "No events found",
|
|
"viewDetails": "View Details",
|
|
"archiveEventAction": "Archive Event",
|
|
"downloadArchiveAction": "Download Archive",
|
|
"deleteEvent": "Delete Event",
|
|
"deleteEventConfirm": "Are you sure you want to delete this event?",
|
|
"downloadArchiveSoon": "Download archive coming soon",
|
|
"failedToLoadEvents": "Failed to load events",
|
|
"tryAgain": "Try Again",
|
|
"eventExpiredMessage": "This event has expired",
|
|
"guestsCannotAccessGallery": "Guests can no longer access the gallery. Consider archiving this event.",
|
|
"warningEmailsHaveBeenSent": "Warning emails have been sent to the host.",
|
|
"extendSevenDays": "Extend 7 Days",
|
|
"overview": "Overview",
|
|
"eventInformation": "Event Information",
|
|
"welcomeMessageLabel": "Welcome Message",
|
|
"noWelcomeMessageSet": "No welcome message set",
|
|
"hostEmail": "Host Email",
|
|
"adminEmail": "Admin Email",
|
|
"createdOn": "Created",
|
|
"expires": "Expires",
|
|
"daysLeft": "({{count}} day left)",
|
|
"daysLeft_plural": "({{count}} days left)",
|
|
"shareLink": "Share Link",
|
|
"copy": "Copy",
|
|
"copied": "Copied!",
|
|
"uploadPhotos": "Upload Photos",
|
|
"photoCategories": "Photo Categories",
|
|
"organizingPhotosInfo": "Organize your photos into categories. Categories help guests navigate and find specific types of photos.",
|
|
"categoriesTip": "Tip: Categories are specific to each event. You can create custom categories like \"Ceremony\", \"Reception\", \"Portraits\", etc.",
|
|
"archiveStatusTitle": "Archive Status",
|
|
"archivedOn": "Archived On",
|
|
"downloadingArchive": "Downloading {{name}} archive...",
|
|
"downloadStarted": "Download started",
|
|
"failedToDownloadArchive": "Failed to download archive",
|
|
"statisticsNotAvailable": "No statistics available yet",
|
|
"photoFilters": "Photo Filters",
|
|
"noStatisticsAvailableYet": "No statistics available yet",
|
|
"addPlus": "Add+",
|
|
"galleryTheme": "Gallery Theme",
|
|
"customizeTheme": "Customize Theme",
|
|
"noThemeSet": "No theme configured",
|
|
"customizingTheme": "Customizing gallery theme",
|
|
"customizingThemeFor": "Customizing theme for {{event}}"
|
|
},
|
|
"settings": {
|
|
"title": "System Settings",
|
|
"subtitle": "Configure system-wide settings and preferences",
|
|
"loadingSettings": "Loading settings...",
|
|
"general": {
|
|
"title": "General",
|
|
"siteConfiguration": "Site Configuration",
|
|
"siteUrl": "Site URL",
|
|
"siteUrlHelp": "Used for generating gallery links in emails",
|
|
"defaultExpiration": "Default Expiration (days)",
|
|
"defaultExpirationHelp": "How long galleries remain active by default",
|
|
"maxFileSize": "Max File Size (MB)",
|
|
"maxFileSizeHelp": "Maximum size per uploaded photo",
|
|
"allowedFileTypes": "Allowed File Types",
|
|
"allowedFileTypesHelp": "Comma-separated list of file extensions",
|
|
"featureToggles": "Feature Toggles",
|
|
"enableWatermark": "Enable watermark on photos",
|
|
"enableAnalytics": "Enable analytics tracking",
|
|
"enableRegistration": "Allow self-registration for admins",
|
|
"maintenanceMode": "Enable maintenance mode",
|
|
"language": "Language",
|
|
"defaultLanguage": "Default Language",
|
|
"defaultLanguageHelp": "Language shown to guests before login",
|
|
"defaultWelcomeMessage": "Default Welcome Message",
|
|
"welcomeMessage": "Welcome Message",
|
|
"welcomeMessagePlaceholder": "Enter a default welcome message that will be included in gallery creation emails",
|
|
"welcomeMessageHelp": "This message will be included in all gallery creation emails unless overridden when creating an event",
|
|
"saveSettings": "Save General Settings",
|
|
"saveGeneralSettings": "Save General Settings",
|
|
"dateTimeFormat": "Date & Time Format",
|
|
"dateFormat": "Date Format",
|
|
"dateFormatHelp": "How dates are displayed in emails and throughout the application"
|
|
},
|
|
"storage": {
|
|
"title": "Storage",
|
|
"overview": "Storage Overview",
|
|
"totalUsed": "Total Used",
|
|
"archiveStorage": "Archive Storage",
|
|
"storageLimit": "Storage Limit",
|
|
"storageUsage": "Storage Usage",
|
|
"storageByEvent": "Storage by Event",
|
|
"storageManagement": "Storage Management",
|
|
"storageManagementHelp": "Consider archiving or deleting old events to free up storage space. Archived events are compressed and use less storage than active galleries.",
|
|
"noEventsUsingStorage": "No events using storage",
|
|
"unlimited": "Unlimited"
|
|
},
|
|
"security": {
|
|
"title": "Security",
|
|
"passwordSettings": "Password Settings",
|
|
"requirePassword": "Require password for all galleries",
|
|
"minPasswordLength": "Minimum Password Length",
|
|
"minPasswordLengthHelp": "Minimum number of characters for gallery passwords",
|
|
"sessionAuth": "Session & Authentication",
|
|
"sessionTimeout": "Session Timeout (minutes)",
|
|
"sessionTimeoutHelp": "Admin session timeout in minutes",
|
|
"maxLoginAttempts": "Max Login Attempts",
|
|
"maxLoginAttemptsHelp": "Maximum failed login attempts before lockout",
|
|
"enable2FA": "Enable two-factor authentication for admins",
|
|
"recaptchaSettings": "reCAPTCHA Settings",
|
|
"enableRecaptcha": "Enable reCAPTCHA for login forms",
|
|
"siteKey": "Site Key",
|
|
"siteKeyHelp": "Your reCAPTCHA v2 site key (public)",
|
|
"secretKey": "Secret Key",
|
|
"secretKeyHelp": "Your reCAPTCHA v2 secret key (keep private)",
|
|
"recaptchaHelp": "Get your reCAPTCHA keys from",
|
|
"saveSettings": "Save Security Settings",
|
|
"saveSecuritySettings": "Save Security Settings"
|
|
},
|
|
"categories": {
|
|
"title": "Categories",
|
|
"about": "About Photo Categories",
|
|
"aboutText": "Global categories are available for all events. You can also create event-specific categories when editing individual events. Categories help organize photos and allow guests to filter photos by type in the gallery view."
|
|
},
|
|
"systemStatus": {
|
|
"title": "System Status",
|
|
"storageOverview": "Storage Overview",
|
|
"systemInfo": "System Information",
|
|
"databaseInfo": "Database Information",
|
|
"platform": "Platform",
|
|
"nodeVersion": "Node Version",
|
|
"uptime": "Uptime",
|
|
"cpuCores": "CPU Cores",
|
|
"memoryUsage": "Memory Usage",
|
|
"memoryUsed": "Memory Used",
|
|
"photos": "Photos",
|
|
"admins": "Admins",
|
|
"dbSize": "Database Size",
|
|
"services": "Background Services",
|
|
"fileWatcher": "File Watcher",
|
|
"fileWatcherDesc": "Monitors for new photos",
|
|
"expirationChecker": "Expiration Checker",
|
|
"expirationCheckerDesc": "Archives expired galleries",
|
|
"emailProcessor": "Email Processor",
|
|
"emailProcessorDesc": "Sends queued emails",
|
|
"emailQueue": "Email Queue Status",
|
|
"pending": "Pending",
|
|
"sent": "Sent",
|
|
"failed": "Failed",
|
|
"lastUpdate": "Last update"
|
|
}
|
|
},
|
|
"analytics": {
|
|
"title": "Analytics Dashboard",
|
|
"titleSimple": "Analytics",
|
|
"subtitle": "Track gallery performance and visitor engagement",
|
|
"detailedSubtitle": "Detailed analytics powered by Umami",
|
|
"loadingAnalytics": "Loading analytics...",
|
|
"showSummaryView": "Show Summary View",
|
|
"fullDashboard": "Full Dashboard",
|
|
"refresh": "Refresh",
|
|
"last7Days": "Last 7 days",
|
|
"last30Days": "Last 30 days",
|
|
"last90Days": "Last 90 days",
|
|
"pageViews": "Page Views",
|
|
"uniqueVisitors": "Unique Visitors",
|
|
"totalDownloads": "Total Downloads",
|
|
"topGallery": "Top Gallery",
|
|
"topPages": "Top Pages",
|
|
"views": "views",
|
|
"visitors": "unique visitors",
|
|
"topDownloadsByGallery": "Top Downloads by Gallery",
|
|
"deviceBreakdown": "Device Breakdown",
|
|
"desktop": "Desktop",
|
|
"mobile": "Mobile",
|
|
"tablet": "Tablet",
|
|
"storageUsage": "Storage Usage",
|
|
"used": "Used",
|
|
"of": "of",
|
|
"totalPhotos": "Total Photos",
|
|
"activeEvents": "Active Events",
|
|
"notConfigured": "Umami Analytics Not Configured",
|
|
"configureInstructions": "To see real analytics data, configure Umami in your environment variables and admin panel settings.",
|
|
"noData": "No data available",
|
|
"percentChange": "{{percent}}% from last period"
|
|
},
|
|
"branding": {
|
|
"title": "Branding & Themes",
|
|
"titleFull": "Branding & Customization",
|
|
"subtitle": "Customize the look and feel of your galleries",
|
|
"loadingBranding": "Loading branding settings...",
|
|
"themeAndStyle": "Theme & Style",
|
|
"companyInfo": "Company Information",
|
|
"companyName": "Company Name",
|
|
"companyNameHelp": "Displayed in gallery headers and emails",
|
|
"companyTagline": "Company Tagline",
|
|
"companyTaglineHelp": "A short description of your business",
|
|
"supportEmail": "Support Email",
|
|
"supportEmailHelp": "Contact email for guest support",
|
|
"footerText": "Footer Text",
|
|
"footerTextHelp": "Displayed at the bottom of galleries",
|
|
"logo": "Logo",
|
|
"currentLogo": "Current logo",
|
|
"uploadLogo": "Upload Logo",
|
|
"removeLogo": "Remove Logo",
|
|
"logoHelp": "Recommended size: 200x60px, PNG or JPEG",
|
|
"favicon": "Favicon",
|
|
"currentFavicon": "Current favicon",
|
|
"uploadFavicon": "Upload Favicon",
|
|
"removeFavicon": "Remove Favicon",
|
|
"faviconHelp": "PNG or ICO format, recommended size: 32x32px",
|
|
"watermark": "Watermark",
|
|
"watermarkSettings": "Watermark Settings",
|
|
"enableWatermark": "Enable watermark on photos",
|
|
"enableWatermarks": "Enable Watermarks",
|
|
"watermarkHelp": "Add your company name as a watermark on downloaded photos",
|
|
"watermarkLogo": "Watermark Logo",
|
|
"currentWatermark": "Current watermark",
|
|
"uploadWatermarkLogo": "Upload Watermark Logo",
|
|
"watermarkPosition": "Watermark Position",
|
|
"topLeft": "Top Left",
|
|
"topRight": "Top Right",
|
|
"center": "Center",
|
|
"bottomLeft": "Bottom Left",
|
|
"bottomRight": "Bottom Right",
|
|
"watermarkOpacity": "Watermark Opacity",
|
|
"watermarkSize": "Watermark Size",
|
|
"theme": "Theme",
|
|
"galleryTheme": "Gallery Theme",
|
|
"themeCustomization": "Theme Customization",
|
|
"selectPreset": "Select a preset theme",
|
|
"colors": "Colors",
|
|
"primaryColor": "Primary Color",
|
|
"secondaryColor": "Secondary Color",
|
|
"accentColor": "Accent Color",
|
|
"backgroundColor": "Background Color",
|
|
"textColor": "Text Color",
|
|
"customCSS": "Custom CSS",
|
|
"preview": "Preview",
|
|
"previewInNewTab": "Preview in New Tab",
|
|
"reset": "Reset",
|
|
"saveChanges": "Save Changes",
|
|
"applyLivePreview": "Apply changes immediately (Live Preview)",
|
|
"eventSpecificThemes": "Event-Specific Themes",
|
|
"eventThemesInfo": "You can override these global theme settings for individual events when creating or editing them.",
|
|
"themePresets": "Theme Presets",
|
|
"galleryLayout": "Gallery Layout",
|
|
"layoutDescriptions": {
|
|
"grid": "Classic grid layout with consistent photo sizes",
|
|
"masonry": "Pinterest-style layout with varied heights",
|
|
"carousel": "Full-screen slideshow with navigation",
|
|
"timeline": "Photos organized by date",
|
|
"hero": "Featured image with grid below",
|
|
"mosaic": "Artistic layout with mixed sizes"
|
|
},
|
|
"layoutSettings": "Layout Settings",
|
|
"photoSpacing": "Photo Spacing",
|
|
"spacing": {
|
|
"tight": "Tight",
|
|
"normal": "Normal",
|
|
"relaxed": "Relaxed"
|
|
},
|
|
"photoAnimation": "Photo Animation",
|
|
"animation": {
|
|
"none": "None",
|
|
"fade": "Fade",
|
|
"scale": "Scale",
|
|
"slide": "Slide"
|
|
},
|
|
"columns": "Columns",
|
|
"mobile": "Mobile",
|
|
"tablet": "Tablet",
|
|
"desktop": "Desktop",
|
|
"enableAutoplay": "Enable Autoplay",
|
|
"autoplayInterval": "Autoplay Interval (seconds)",
|
|
"groupPhotosBy": "Group Photos By",
|
|
"grouping": {
|
|
"day": "Day",
|
|
"week": "Week",
|
|
"month": "Month"
|
|
},
|
|
"typographyAndStyle": "Typography & Style",
|
|
"bodyFont": "Body Font",
|
|
"headingFont": "Heading Font",
|
|
"sameAsBody": "Same as body",
|
|
"fontSize": "Font Size",
|
|
"fontSizes": {
|
|
"small": "Small",
|
|
"normal": "Normal",
|
|
"large": "Large"
|
|
},
|
|
"borderRadius": "Border Radius",
|
|
"borderRadiusOptions": {
|
|
"none": "None",
|
|
"small": "Small",
|
|
"medium": "Medium",
|
|
"large": "Large"
|
|
},
|
|
"shadowStyle": "Shadow Style",
|
|
"shadowOptions": {
|
|
"none": "None",
|
|
"subtle": "Subtle",
|
|
"normal": "Normal",
|
|
"dramatic": "Dramatic"
|
|
},
|
|
"backgroundPattern": "Background",
|
|
"backgroundOptions": {
|
|
"none": "None",
|
|
"dots": "Dots",
|
|
"grid": "Grid",
|
|
"waves": "Waves"
|
|
},
|
|
"customCSSHelp": "Advanced: Add custom CSS to further customize the appearance",
|
|
"resetToDefault": "Reset to Default",
|
|
"applyTheme": "Apply Theme",
|
|
"customTheme": "Custom Theme",
|
|
"customizeTheme": "Customize Theme",
|
|
"saveTheme": "Save Theme",
|
|
"previewLayout": "Preview Layout",
|
|
"livePreview": "Live Preview"
|
|
},
|
|
"admin": {
|
|
"title": "Admin Panel",
|
|
"welcome": "Welcome back, {{name}}",
|
|
"recentActivity": "Recent Activity",
|
|
"systemStatus": "System Status",
|
|
"totalEvents": "Total Events",
|
|
"activeGalleries": "Active Galleries",
|
|
"storageUsed": "Storage Used",
|
|
"totalPhotos": "Total Photos",
|
|
"storagePercent": "{{percent}}% of {{limit}}",
|
|
"version": "Version",
|
|
"archivedEvents": "Archived Events",
|
|
"systemHealth": "System Health",
|
|
"health": {
|
|
"healthy": "Healthy",
|
|
"warning": "Warning",
|
|
"error": "Error",
|
|
"checking": "Checking..."
|
|
},
|
|
"notifications": "Notifications",
|
|
"viewAllNotifications": "View all notifications",
|
|
"noNotifications": "No new notifications",
|
|
"markAllRead": "Mark all read",
|
|
"clearOld": "Clear old",
|
|
"close": "Close",
|
|
"noNotificationsMessage": "No notifications",
|
|
"notificationMessages": {
|
|
"eventCreated": "New event \"{{eventName}}\" was created",
|
|
"eventArchived": "Event \"{{eventName}}\" was archived",
|
|
"eventUpdated": "Event \"{{eventName}}\" was updated",
|
|
"eventDeleted": "Event \"{{eventName}}\" was deleted",
|
|
"photosUploaded": "{{count}} photos uploaded to \"{{eventName}}\"",
|
|
"photoDeleted": "Photo deleted from \"{{eventName}}\"",
|
|
"photosBulkDeleted": "{{count}} photos deleted from \"{{eventName}}\"",
|
|
"eventExpiring": "Event \"{{eventName}}\" expires in {{days}} days",
|
|
"eventExpired": "Event \"{{eventName}}\" has expired",
|
|
"passwordChanged": "Password changed by {{actorName}}",
|
|
"passwordReset": "Password reset for \"{{eventName}}\"",
|
|
"settingsUpdated": "{{type}} settings updated",
|
|
"emailTemplateUpdated": "Email template \"{{template}}\" updated",
|
|
"bulkDownload": "{{count}} photos downloaded from \"{{eventName}}\"",
|
|
"storageWarning": "Storage usage at {{percentage}}%",
|
|
"adminLogout": "Admin {{actorName}} logged out",
|
|
"categoryCreated": "Category \"{{name}}\" created for \"{{eventName}}\"",
|
|
"categoryUpdated": "Category \"{{name}}\" updated for \"{{eventName}}\"",
|
|
"categoryDeleted": "Category \"{{name}}\" deleted from \"{{eventName}}\"",
|
|
"cmsPageUpdated": "CMS page \"{{slug}}\" updated",
|
|
"emailConfigUpdated": "Email configuration updated",
|
|
"faviconUploaded": "Favicon uploaded",
|
|
"brandingUpdated": "Branding settings updated",
|
|
"generalSettingsUpdated": "General settings updated",
|
|
"securitySettingsUpdated": "Security settings updated",
|
|
"themeUpdated": "Theme settings updated",
|
|
"archiveDownloaded": "Archive downloaded for \"{{eventName}}\"",
|
|
"archiveDeleted": "Archive deleted for \"{{eventName}}\"",
|
|
"archiveRestored": "Archive restored for \"{{eventName}}\"",
|
|
"systemActivity": "System activity: {{type}}"
|
|
},
|
|
"notificationToasts": {
|
|
"markedAllRead": "All notifications marked as read",
|
|
"clearedOld": "Cleared {{count}} old notifications"
|
|
},
|
|
"markAsRead": "Mark as read",
|
|
"markAllAsRead": "Mark all as read",
|
|
"notificationSettings": "Notification Settings",
|
|
"changePassword": "Change Password",
|
|
"loadingDashboard": "Loading dashboard...",
|
|
"activeEvents": "Active Events",
|
|
"expiringSoon": "Expiring Soon",
|
|
"next7Days": "Next 7 days",
|
|
"totalViews": "Total Views",
|
|
"downloads": "Downloads",
|
|
"percentFromLastWeek": "{{percent}}% from last week",
|
|
"dashboardSubtitle": "Welcome back! Here's what's happening with your galleries.",
|
|
"eventsExpiringSoon": "Events Expiring Soon",
|
|
"noEventsExpiring": "No events expiring in the next 7 days",
|
|
"daysLeft": "{{count}} day left",
|
|
"daysLeft_plural": "{{count}} days left",
|
|
"viewAllExpiringEvents": "View all {{count}} expiring events",
|
|
"noRecentActivity": "No recent activity",
|
|
"viewAllActivity": "View all activity",
|
|
"quickActions": "Quick Actions",
|
|
"viewArchives": "View Archives",
|
|
"analytics": "Analytics",
|
|
"activities": {
|
|
"event_created": "New event created: {{eventName}}",
|
|
"photos_uploaded": "{{count}} photos uploaded to {{eventName}}",
|
|
"event_archived": "Event archived: {{eventName}}",
|
|
"archive_restored": "Archive restored: {{eventName}}",
|
|
"archive_deleted": "Archive deleted: {{eventName}}",
|
|
"archive_downloaded": "Archive downloaded: {{eventName}}",
|
|
"email_config_updated": "Email configuration updated",
|
|
"email_template_updated": "Email template updated: {{template}}",
|
|
"branding_updated": "Branding settings updated",
|
|
"theme_updated": "Theme settings updated",
|
|
"bulk_download": "{{count}} photos downloaded from {{eventName}}",
|
|
"gallery_password_entry": "Password entered for {{eventName}}",
|
|
"expiration_warning_viewed": "Expiration warning viewed for {{eventName}}",
|
|
"settings_updated": "Settings updated",
|
|
"event_updated": "Event updated: {{eventName}}",
|
|
"event_deleted": "Event deleted: {{eventName}}",
|
|
"category_created": "Category created: {{categoryName}}",
|
|
"category_updated": "Category updated: {{categoryName}}",
|
|
"category_deleted": "Category deleted: {{categoryName}}",
|
|
"general_settings_updated": "General settings updated",
|
|
"favicon_uploaded": "Favicon uploaded",
|
|
"unknown": "Unknown activity"
|
|
}
|
|
},
|
|
"errors": {
|
|
"notFound": "Not Found",
|
|
"galleryNotFound": "Gallery Not Found",
|
|
"galleryNotFoundMessage": "This gallery does not exist or has been removed.",
|
|
"galleryArchived": "Gallery Archived",
|
|
"galleryArchivedMessage": "This gallery has been archived and is no longer accessible. Please contact the event organizer if you need access to these photos.",
|
|
"unauthorized": "Unauthorized",
|
|
"forbidden": "Forbidden",
|
|
"serverError": "Server Error",
|
|
"somethingWentWrong": "Something went wrong",
|
|
"tryAgainLater": "Please try again later",
|
|
"refreshPage": "Refresh Page",
|
|
"oopsSomethingWentWrong": "Oops! Something went wrong",
|
|
"unexpectedError": "We encountered an unexpected error. Don't worry, your data is safe.",
|
|
"goToHomepage": "Go to Homepage",
|
|
"errorDetails": "Error Details",
|
|
"requiredFields": "Please fill in all required fields",
|
|
"enterTestEmail": "Please enter a test email address",
|
|
"failedToCreateEvent": "Failed to create event",
|
|
"eventCreationFailed": "Failed to create event",
|
|
"networkError": "Network error. Please check your connection and try again.",
|
|
"sessionExpired": "Session expired. Please login again."
|
|
},
|
|
"validation": {
|
|
"eventNameRequired": "Event name is required",
|
|
"hostEmailRequired": "Host email is required",
|
|
"hostNameRequired": "Host name is required",
|
|
"adminEmailRequired": "Admin email is required",
|
|
"invalidEmailFormat": "Invalid email format",
|
|
"passwordRequired": "Password is required",
|
|
"passwordMinLength": "Password must be at least 6 characters",
|
|
"passwordsDoNotMatch": "Passwords do not match",
|
|
"passwordSecurityRequirements": "Password does not meet security requirements",
|
|
"expirationRange": "Expiration must be between 1 and 365 days"
|
|
},
|
|
"legal": {
|
|
"impressum": "Legal Notice",
|
|
"datenschutz": "Privacy Policy",
|
|
"termsOfService": "Terms of Service",
|
|
"cookiePolicy": "Cookie Policy"
|
|
},
|
|
"toast": {
|
|
"saveSuccess": "Changes saved successfully",
|
|
"saveError": "Failed to save changes",
|
|
"deleteSuccess": "Deleted successfully",
|
|
"deleteError": "Failed to delete",
|
|
"uploadSuccess": "Upload completed successfully",
|
|
"uploadError": "Upload failed",
|
|
"loginSuccess": "Login successful",
|
|
"loginError": "Login failed",
|
|
"passwordChanged": "Password changed successfully",
|
|
"linkCopied": "Link copied to clipboard",
|
|
"eventCreated": "Event created successfully",
|
|
"eventUpdated": "Event updated successfully",
|
|
"eventArchived": "Event archived successfully",
|
|
"settingsSaved": "Settings saved successfully",
|
|
"themeUpdated": "Theme updated successfully",
|
|
"brandingUpdated": "Branding updated successfully",
|
|
"categoryAdded": "Category added successfully",
|
|
"categoryDeleted": "Category deleted successfully",
|
|
"categoryUpdated": "Category updated successfully",
|
|
"emailConfigSaved": "Email configuration saved successfully",
|
|
"testEmailSent": "Test email sent successfully",
|
|
"pageUpdated": "Page updated successfully",
|
|
"archiveRestored": "Archive restored successfully",
|
|
"archiveDeleted": "Archive deleted permanently"
|
|
},
|
|
"email": {
|
|
"title": "Email Configuration",
|
|
"subtitle": "Configure email settings for notifications",
|
|
"loadingSettings": "Loading email settings...",
|
|
"smtpConfiguration": "SMTP Configuration",
|
|
"smtpHost": "SMTP Host",
|
|
"smtpHostHelp": "Your email server hostname",
|
|
"smtpPort": "SMTP Port",
|
|
"smtpPortHelp": "Usually 587 for TLS, 465 for SSL, 25 for unencrypted",
|
|
"smtpSecure": "Use SSL/TLS",
|
|
"smtpSecureHelp": "Enable for secure email transmission",
|
|
"smtpUsername": "SMTP Username",
|
|
"smtpUsernameHelp": "Your email account username",
|
|
"smtpPassword": "SMTP Password",
|
|
"smtpPasswordHelp": "Your email account password",
|
|
"fromDetails": "From Details",
|
|
"fromEmail": "From Email",
|
|
"fromEmailHelp": "Email address that appears as sender",
|
|
"fromName": "From Name",
|
|
"fromNameHelp": "Name that appears as sender",
|
|
"testConfiguration": "Test Configuration",
|
|
"testEmail": "Test Email Address",
|
|
"testEmailHelp": "Send a test email to verify settings",
|
|
"sendTestEmail": "Send Test Email",
|
|
"saveConfiguration": "Save Configuration",
|
|
"emailTemplates": "Email Templates",
|
|
"templateVariables": "Available Variables",
|
|
"previewTemplate": "Preview Template",
|
|
"smtpSettings": "SMTP Settings",
|
|
"testEmailSuccess": "Test email sent successfully",
|
|
"saveSmtpSettings": "Save SMTP Settings",
|
|
"testEmailSection": "Test Email",
|
|
"beforeTesting": "Before testing:",
|
|
"saveSmtpFirst": "Save your SMTP settings first",
|
|
"ensureFirewall": "Ensure your firewall allows outbound SMTP",
|
|
"gmailAppPassword": "For Gmail, use an app-specific password",
|
|
"testEmailAddressLabel": "Test Email Address",
|
|
"sendTestEmailButton": "Send Test Email",
|
|
"commonSmtpSettings": "Common SMTP Settings:",
|
|
"editTemplate": "Edit Template",
|
|
"templateName": "Template Name",
|
|
"subjectLine": "Subject Line",
|
|
"emailBody": "Email Body",
|
|
"preview": "Preview",
|
|
"saveChanges": "Save Changes",
|
|
"templates": "Templates",
|
|
"variableHelp": "Use these variables in your template. They will be replaced with actual values when emails are sent.",
|
|
"port": "Port",
|
|
"security": "Security",
|
|
"username": "Username",
|
|
"password": "Password",
|
|
"enterPassword": "Enter password",
|
|
"fromEmail": "From Email",
|
|
"fromName": "From Name",
|
|
"required": "required"
|
|
},
|
|
"cms": {
|
|
"title": "CMS Pages",
|
|
"subtitle": "Manage legal and informational pages",
|
|
"loadingPages": "Loading pages...",
|
|
"pages": "Pages",
|
|
"previewLinks": "Preview Links",
|
|
"englishVersion": "English Version",
|
|
"germanVersion": "German Version",
|
|
"editPage": "Edit {{page}}",
|
|
"pageTitle": "Page Title",
|
|
"pageContent": "Page Content",
|
|
"pageTitlePlaceholder": "Enter page title...",
|
|
"saveChanges": "Save Changes",
|
|
"lastUpdated": "Last updated:",
|
|
"impressum": "Legal Notice",
|
|
"datenschutz": "Privacy Policy",
|
|
"pageUpdated": "Page updated successfully"
|
|
},
|
|
"maintenance": {
|
|
"title": "System Maintenance",
|
|
"message": "We're currently performing scheduled maintenance to improve our service. We'll be back online shortly.",
|
|
"expectedCompletion": "Expected completion time:",
|
|
"checkBackLater": "Please check back later",
|
|
"urgentMatters": "For urgent matters, please contact"
|
|
}
|
|
} |