Fix brand theme application and add comprehensive translations
- Fixed theme not being reflected on gallery and admin login pages - Created GlobalThemeProvider to apply themes globally - Updated gallery and admin login pages to use dynamic CSS variables - Added complete translations for all admin sections in English and German: - Notifications management - Event view and creation - Photo upload functionality - Category management - Archive page view - Analytics dashboard - Branding and theme settings - System settings - CMS page management - Email configuration - Fixed admin photo management display issues - Fixed photo upload category assignment - Added password reset functionality for galleries - Improved error handling and user feedback 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -22,7 +22,25 @@
|
||||
"uploading": "Uploading...",
|
||||
"uploaded": "Uploaded",
|
||||
"photo": "photo",
|
||||
"photos": "photos"
|
||||
"photos": "photos",
|
||||
"restore": "Restore",
|
||||
"actions": "Actions",
|
||||
"refresh": "Refresh",
|
||||
"preview": "Preview",
|
||||
"processing": "Processing...",
|
||||
"upload": "Upload"
|
||||
},
|
||||
"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"
|
||||
},
|
||||
"navigation": {
|
||||
"dashboard": "Dashboard",
|
||||
@@ -34,6 +52,46 @@
|
||||
"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",
|
||||
@@ -102,12 +160,15 @@
|
||||
"events": {
|
||||
"title": "Events",
|
||||
"createEvent": "Create Event",
|
||||
"createNewEvent": "Create New Event",
|
||||
"setupNewGallery": "Set up a new photo gallery for your event",
|
||||
"eventDetails": "Event Details",
|
||||
"eventName": "Event Name",
|
||||
"eventType": "Event Type",
|
||||
"eventDate": "Event Date",
|
||||
"hostEmail": "Host Email",
|
||||
"adminEmail": "Admin Email",
|
||||
"adminNotificationEmail": "Admin Notification Email",
|
||||
"expirationDate": "Expiration Date",
|
||||
"active": "Active",
|
||||
"archived": "Archived",
|
||||
@@ -120,17 +181,75 @@
|
||||
"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"
|
||||
"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",
|
||||
"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",
|
||||
"colorTheme": "Color Theme",
|
||||
"galleryExpiresIn": "Gallery Expires In",
|
||||
"galleryWillExpireOn": "Gallery will expire on {{date}}",
|
||||
"expirationWarning": "Guests will receive a warning email 7 days before expiration.",
|
||||
"processingRequest": "Processing your request...",
|
||||
"eventTypeWedding": "Wedding",
|
||||
"eventTypeBirthday": "Birthday",
|
||||
"eventTypeCorporate": "Corporate",
|
||||
"eventTypeOther": "Other",
|
||||
"days30": "30 days",
|
||||
"days60": "60 days",
|
||||
"days90": "90 days",
|
||||
"days365": "1 year"
|
||||
},
|
||||
"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",
|
||||
@@ -139,7 +258,10 @@
|
||||
"enableRegistration": "Allow self-registration for admins",
|
||||
"maintenanceMode": "Enable maintenance mode",
|
||||
"language": "Language",
|
||||
"saveSettings": "Save General Settings"
|
||||
"defaultLanguage": "Default Language",
|
||||
"defaultLanguageHelp": "Language shown to guests before login",
|
||||
"saveSettings": "Save General Settings",
|
||||
"saveGeneralSettings": "Save General Settings"
|
||||
},
|
||||
"storage": {
|
||||
"title": "Storage",
|
||||
@@ -150,23 +272,31 @@
|
||||
"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."
|
||||
"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"
|
||||
"saveSettings": "Save Security Settings",
|
||||
"saveSecuritySettings": "Save Security Settings"
|
||||
},
|
||||
"categories": {
|
||||
"title": "Categories",
|
||||
@@ -174,33 +304,98 @@
|
||||
"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."
|
||||
}
|
||||
},
|
||||
"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 & Customization",
|
||||
"title": "Branding & Themes",
|
||||
"titleFull": "Branding & Customization",
|
||||
"subtitle": "Customize the look and feel of your galleries",
|
||||
"loadingBranding": "Loading branding settings...",
|
||||
"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"
|
||||
"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."
|
||||
},
|
||||
"admin": {
|
||||
"title": "Admin Panel",
|
||||
@@ -214,6 +409,10 @@
|
||||
"storagePercent": "{{percent}}% of {{limit}}",
|
||||
"notifications": "Notifications",
|
||||
"viewAllNotifications": "View all notifications",
|
||||
"noNotifications": "No new notifications",
|
||||
"markAsRead": "Mark as read",
|
||||
"markAllAsRead": "Mark all as read",
|
||||
"notificationSettings": "Notification Settings",
|
||||
"changePassword": "Change Password",
|
||||
"loadingDashboard": "Loading dashboard...",
|
||||
"activeEvents": "Active Events",
|
||||
@@ -238,6 +437,8 @@
|
||||
"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",
|
||||
@@ -280,5 +481,59 @@
|
||||
"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"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user