diff --git a/src/lib/components/CalendarModal.svelte b/src/lib/components/CalendarModal.svelte index 380360b..7481b79 100644 --- a/src/lib/components/CalendarModal.svelte +++ b/src/lib/components/CalendarModal.svelte @@ -6,6 +6,7 @@ addToOutlookCalendar, downloadICalFile } from '../calendarHelpers.js'; + import { t } from '$lib/i18n/i18n.js'; export let isOpen: boolean = false; export let event: CalendarEvent; @@ -66,11 +67,13 @@ >
Google Calendar
-Add to Google Calendar
+{t('calendar.googleCalendarTitle')}
+{t('calendar.googleCalendarDescription')}
Microsoft Outlook
-Add to Outlook Calendar
+{t('calendar.microsoftOutlookTitle')}
+{t('calendar.microsoftOutlookDescription')}
Download iCal File
-Download .ics file for any calendar app
+{t('calendar.downloadICalTitle')}
+{t('calendar.downloadICalDescription')}
- {error?.message || 'An unexpected error occurred.'} + {error?.message || t('errors.anUnexpectedErrorOccurred')}
- Your UserID storated as a cookie: {data.cactoideUserId - ? data.cactoideUserId - : 'First time visiting. Generating new UserID...'}{data.cactoideUserId ? data.cactoideUserId : t('layout.firstTimeVisiting')}
-© 2025 Cactoide
+{t('layout.copyright')}
- Create, share, and manage events with zero friction. + {t('home.tagline')}
- Like the cactus, great events bloom under any condition when managed with care. Cactoide(ae) - helps you streamline RSVPs, simplify coordination, and keep every detail efficientβso your - gatherings are resilient, vibrant, and unforgettable. + {t('home.whyCactoideDescription')}
See what others are planning and get inspired
+{t('home.discoverPublicEventsDescription')}
- Create events in seconds with our streamlined form. No accounts, no waiting, just pure - efficiency. + {t('home.instantEventCreationDescription')}
- Each event gets a unique, memorable URL. Share instantly via any platform or messaging - app. + {t('home.oneClickSharingDescription')}
- No more scrolling through endless chats and reactions. See everyoneβs availability and - responses neatly in one place. + {t('home.allInOneClarityDescription')}
- Skip registrations and endless forms. Unlike other event platforms, you create and share - instantly β no accounts, no barriers. + {t('home.noHassleNoSignUpsDescription')}
- Choose between unlimited RSVPs or set a limited capacity. Perfect for any event size. + {t('home.smartLimitsDescription')}
- Designed to be instantly clear and easy. No learning curve β just open, create, and go. + {t('home.effortlessSimplicityDescription')}
@@ -146,35 +138,38 @@- Fill out a simple form with event details. Choose between limited or unlimited capacity. + {t('home.step1Description')}
- Receive a random, memorable URL for your event. Perfect for sharing anywhere. + {t('home.step2Description')}
People visit your link and join with just their name. No accounts needed.
+{t('home.step3Description')}
Join thousands of event organizers who trust Cactoide
+{t('home.ctaDescription')}
- You haven't created any events yet. Start by creating your first event! + {t('event.noEventsYetDescription')}
Manage your created events
+{t('event.myEventsDescription')}
- Are you sure you want to delete "{eventToDelete.name}"? - This action cannot be undone and will remove all RSVPs. + {t('event.deleteEventDescription', { eventName: eventToDelete.name })}
The event you're looking for doesn't exist or has been removed.
+{t('event.eventNotFoundDescription')}
Capacity
+{t('common.capacity')}
{rsvps.length}/{event.attendee_limit}
@@ -189,13 +190,13 @@Event is Full!
-Maximum capacity reached
+{t('event.eventIsFull')}
+{t('event.maximumCapacityReached')}
- Guests will be added as "{newAttendeeName || 'Your Name'}'s Guest #1", "{newAttendeeName || - 'Your Name'}'s Guest #2", etc. + {t('event.guestsWillBeAddedAs', { + name: newAttendeeName || t('common.yourNamePlaceholder') + })}
No attendees yet
-Be the first to join!
+{t('event.noAttendeesYet')}
+{t('event.beFirstToJoin')}
Update your event details
+{t('event.editEventDescription')}