Files
workavia-calendar-front/src/locales/en.json
T
lenhanphung 6161e295ce Improve: #368 error message when user has no public calendars (#412)
- Add translation key 'userDoesNotHavePublicCalendars' to all locale files (en, fr, vi, ru)
- Update ErrorSnackbar to support translation keys in error messages with params
- Update getTempCalendarsListAsync to throw error with translation key format instead of hardcoded message
- Error message now displays user-friendly translated text: '{User Name} does not have public calendars'
2025-12-12 17:32:36 +01:00

290 lines
9.1 KiB
JSON

{
"locale": "en-gb",
"calendar": {
"personal": "Personal Calendars",
"delegated": "Delegated Calendars",
"other": "Other Calendars",
"caldav_access": "CalDAV access",
"secretUrl": "Secret URL",
"secretUrlDesc": "The secret address can be used to view all calendar events even without access permissions. You can reset your current secret address and get a new one.",
"exportCalendar": "Export calendar",
"exportDesc": "Export your calendar to iCalendar format file (.ics) which you can import to other applications.",
"import_file_description": "Import events from an ICS file to one of your calendars.",
"ics_feed_url": "ICS feed URL",
"import_to": "Import to",
"new_calendar": "New calendar",
"color": "Color",
"newEventsVisibility": "New events created will be visible to:",
"browseOtherCalendars": "Browse other calendars",
"noPublicCalendarsFor": "No publicly available calendars for %{name}",
"noMoreCalendarsFor": "No more calendars for %{name}",
"userDoesNotHavePublicCalendars": "%{name} does not have public calendars",
"delete": {
"title": "Remove %{name}?",
"personalWarning": "You will lose all events in this calendar.",
"sharedWarning": "You will lose access to its events. You will still be able to add it back later."
}
},
"actions": {
"modify": "Modify",
"delete": "Delete",
"remove": "Remove",
"save": "Save",
"create": "Create",
"import": "Import",
"add": "Add",
"reset": "Reset",
"export": "Export",
"exporting": "Exporting..."
},
"common": {
"cancel": "Cancel",
"ok": "Ok",
"link_copied": "Link copied!",
"import_file": "File",
"select_file": "Select file",
"import_url": "URL",
"name": "Name",
"description": "Description",
"all": "All",
"you": "You",
"select_timezone": "Select Timezone",
"moreOptions": "More options",
"search": "Search"
},
"search": {
"searchIn": "Search in",
"filter": {
"allCalendar": "All calendars",
"myCalendar": "My calendars",
"sharedCalendars": "Shared calendars"
},
"keywords": "Keywords*",
"keywordsPlaceholder": "Enter keywords",
"organizers": "Organizers",
"participants": "Participants",
"noResults": "No events found",
"resultsTitle": "Search Results",
"noResultsSubtitle": "Try adjusting your filters or search terms."
},
"calendarPopover": {
"tabs": {
"settings": "Settings",
"addNew": "Add new calendar",
"access": "Access",
"import": "Import"
}
},
"colorPicker": {
"selectCustom": "Select custom color",
"title": "Choose custom color",
"subtitle": "Choose a background color for this calendar",
"hex": "Hex"
},
"event": {
"createEvent": "Create Event",
"updateEvent": "Update Event",
"organizer": "Organizer",
"untitled": "Untitled",
"repeat": {
"repeatEvery": "Repeat every",
"frequency": {
"days": "Day(s)",
"weeks": "Week(s)",
"months": "Month(s)",
"years": "Year(s)"
},
"repeatOn": "Repeat on:",
"days": {
"monday": "MO",
"tuesday": "TU",
"wednesday": "WE",
"thursday": "TH",
"friday": "FR",
"saturday": "SA",
"sunday": "SU"
},
"end": {
"label": "End:",
"never": "Never",
"after": "After",
"on": "On",
"occurrences": "occurrences"
}
},
"form": {
"title": "Title",
"titlePlaceholder": "Add title",
"addDescription": "Add description",
"description": "Description",
"descriptionPlaceholder": "Add description",
"dateTime": "Date & Time",
"start": "Start",
"end": "End",
"allDay": "All day",
"repeat": "Repeat",
"timezonePlaceholder": "Select timezone",
"participants": "Participants",
"videoMeeting": "Video meeting",
"meetCopied": "Meeting link copied!",
"addVisioConference": "Add Visio conference",
"joinVisioConference": "Join Visio conference",
"copyMeetingLink": "Copy meeting link",
"removeVideoConference": "Remove video conference",
"location": "Location",
"locationPlaceholder": "Add location",
"calendar": "Calendar",
"notification": "Notification",
"notifications": {
"": "No notification",
"-PT1M": "1 minute before",
"-PT5M": "5 minutes before",
"-PT10M": "10 minutes before",
"-PT15M": "15 minutes before",
"-PT30M": "30 minutes before",
"-PT1H": "1 hour before",
"-PT2H": "2 hours before",
"-PT5H": "5 hours before",
"-PT12H": "12 hours before",
"-PT1D": "1 day before",
"-PT2D": "2 days before",
"-PT1W": "1 week before",
"EMAIL": "email"
},
"showMeAs": "Show me as",
"free": "Free",
"busy": "Busy",
"visibleTo": "Visible to",
"visibleAll": "All",
"visibleParticipants": "Participants"
},
"validation": {
"titleRequired": "Title is required",
"startRequired": "Start date/time is required",
"invalidStart": "Invalid start date/time",
"endRequired": "End date/time is required",
"invalidEnd": "Invalid end date/time",
"endAfterStart": "End time must be after start time"
}
},
"peopleSearch": {
"label": "Start typing a name or email",
"placeholder": "Start typing a name or email",
"availabilityPlaceholder": "Check availability",
"invalidEmail": "%{email} is not a valid email address",
"searchError": "Unable to fetch contacts right now. Please try again.",
"noResults": "No results",
"loading": "Loading..."
},
"error": {
"title": "Something went wrong",
"unknown": "An unknown error occurred",
"retry": "Try Again",
"multipleEvents": "%{count} events with errors"
},
"editModeDialog": {
"updateRecurrentEvent": "Update the recurrent event",
"updateParticipationStatus": "Update the participation status",
"thisEvent": "This event",
"allEvents": "All the events"
},
"eventDuplication": {
"duplicateEvent": "Duplicate event"
},
"menubar": {
"today": "Today",
"refresh": "Refresh",
"viewSelector": "Select view",
"languageSelector": "Select language",
"views": {
"month": "Month",
"week": "Week",
"day": "Day"
},
"apps": "Apps",
"userProfile": "User profile",
"logoAlt": "Calendar",
"settings": "Settings",
"logout": "Logout"
},
"settings": {
"title": "Settings",
"notifications": "Notifications",
"sync": "Sync",
"language": "Language",
"languageDescription": "This will be the language used in your Twake Calendar",
"languageSelector": "Language selector",
"languageUpdateError": "Failed to update language",
"timeZone": "Timezone",
"timeZoneBrowserDefault": "Detect time zone automatically",
"timeZoneUpdateError": "Failed to update time zone",
"notifications.empty": "Notifications settings coming soon",
"notifications.email": "Email",
"notifications.deliveryMethod": "Delivery method",
"alarmEmailsUpdateError": "Failed to update email notifications setting",
"displayWeekNumbers": "Show week number",
"displayWeekNumbersUpdateError": "Failed to update show week number",
"sync.empty": "Sync settings coming soon",
"calAndEvent": "Calendar and events",
"showDeclinedEvent": "Show declined events",
"hideDeclinedEventsUpdateError": "Failed to update hide declined event.",
"back": "Back to calendar"
},
"eventPreview": {
"emailAttendees": "Email attendees",
"deleteEvent": "Delete event",
"privateEvent": {
"tooltipOwn": "Only you and attendees can see the details of this event.",
"hiddenDetails": "This is a private event. Details are hidden."
},
"free": {
"label": "Free",
"tooltip": "Others see you as available during the time range of this event."
},
"attendingQuestion": "Attending?",
"accept": "Accept",
"maybe": "Maybe",
"decline": "Decline",
"showMore": "Show more",
"showLess": "Show less",
"joinVideo": "Join the video conference",
"joinVideoShort": "Join",
"guests": "%{count} guests",
"yesCount": "%{count} yes",
"maybeCount": "%{count} maybe",
"needActionCount": "%{count} waiting",
"noCount": "%{count} no",
"recurrentEvent": "Recurrent Event",
"freq": {
"daily": "daily",
"weekly": "weekly",
"monthly": "monthly",
"yearly": "yearly"
},
"onDays": {
"MO": "monday",
"TU": "tuesday",
"WE": "wednesday",
"TH": "thursday",
"FR": "friday",
"SA": "saturday",
"SU": "sunday"
},
"recurrenceOnDays": "on %{days}",
"everyInterval": "every %{interval} %{unit}",
"forOccurrences": "for %{count} occurrences",
"until": "until %{date}",
"days": "days",
"months": "months",
"years": "years",
"alarmText": "%{trigger} by %{action}"
},
"dateTimeFields": {
"date": "Date",
"startDate": "Start Date",
"startTime": "Start Time",
"endDate": "End Date",
"endTime": "End Time"
}
}