T08b: Frontend Calendar UI (month view, kanban, ICS, resources, sharing)
- 8 calendar components (MonthView, KanbanBoard, AppointmentModal, TaskDetailPanel, IcsControls, ResourceBooking, SharingSettings + API client) - 2 pages (/calendar, /calendar/kanban) + zustand store - 17 vitest tests (MonthView 5, KanbanBoard 6, AppointmentModal 6) all passing - i18n: calendar namespace in en/de (104 lines each, +exportSuccess key) - TS strict mode pass, npm run build pass
This commit is contained in:
@@ -258,5 +258,110 @@
|
||||
"minLength": "At least {{count}} characters required.",
|
||||
"maxLength": "At most {{count}} characters allowed.",
|
||||
"passwordMismatch": "Passwords do not match."
|
||||
},
|
||||
"calendar": {
|
||||
"title": "Calendar",
|
||||
"kanbanTitle": "Task Kanban",
|
||||
"today": "Today",
|
||||
"previousMonth": "Previous month",
|
||||
"nextMonth": "Next month",
|
||||
"monthView": "Month view",
|
||||
"kanbanView": "Kanban",
|
||||
"weekdays": ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
|
||||
"months": [
|
||||
"January", "February", "March", "April", "May", "June",
|
||||
"July", "August", "September", "October", "November", "December"
|
||||
],
|
||||
"newAppointment": "New appointment",
|
||||
"editAppointment": "Edit appointment",
|
||||
"appointmentTitle": "Title",
|
||||
"appointmentDescription": "Description",
|
||||
"appointmentLocation": "Location",
|
||||
"appointmentStart": "Start",
|
||||
"appointmentEnd": "End",
|
||||
"appointmentAllDay": "All day",
|
||||
"appointmentPriority": "Priority",
|
||||
"appointmentSubtype": "Type",
|
||||
"appointmentCalendar": "Calendar",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"delete": "Delete",
|
||||
"deleteEntryConfirm": "Really delete this entry?",
|
||||
"noCalendars": "No calendars available. Please create one first.",
|
||||
"noEntries": "No entries in this period.",
|
||||
"loading": "Loading...",
|
||||
"errorLoad": "Could not load entries.",
|
||||
"errorSave": "Could not save entry.",
|
||||
"created": "Entry created.",
|
||||
"updated": "Entry updated.",
|
||||
"deleted": "Entry deleted.",
|
||||
"moved": "Entry moved.",
|
||||
"kanban": {
|
||||
"open": "Open",
|
||||
"in_progress": "In Progress",
|
||||
"done": "Done",
|
||||
"cancelled": "Cancelled",
|
||||
"empty": "No tasks in this column.",
|
||||
"noTasks": "No tasks available."
|
||||
},
|
||||
"subtasks": {
|
||||
"title": "Subtasks",
|
||||
"addPlaceholder": "New subtask...",
|
||||
"add": "Add",
|
||||
"empty": "No subtasks yet.",
|
||||
"added": "Subtask created.",
|
||||
"updated": "Subtask updated."
|
||||
},
|
||||
"ics": {
|
||||
"export": "Export ICS",
|
||||
"import": "Import ICS",
|
||||
"importSuccess": "{{count}} entries imported.",
|
||||
"importPartial": "{{count}} imported, {{errors}} errors.",
|
||||
"importFailed": "Import failed.",
|
||||
"exportSuccess": "ICS file downloaded.",
|
||||
"chooseFile": "Choose file",
|
||||
"noCalendar": "Please select a calendar first."
|
||||
},
|
||||
"resources": {
|
||||
"title": "Resource booking",
|
||||
"select": "Select resource",
|
||||
"none": "No resource",
|
||||
"book": "Book resource",
|
||||
"booked": "Resource booked.",
|
||||
"conflict": "Conflict: this resource is already booked for this time range.",
|
||||
"missingTimes": "The appointment needs both start and end time."
|
||||
},
|
||||
"sharing": {
|
||||
"title": "Sharing",
|
||||
"user": "User",
|
||||
"group": "Group",
|
||||
"userPlaceholder": "User ID",
|
||||
"groupPlaceholder": "Group ID",
|
||||
"permission": "Permission",
|
||||
"permissionRead": "Read",
|
||||
"permissionWrite": "Write",
|
||||
"add": "Add",
|
||||
"list": "Shares",
|
||||
"empty": "No shares yet.",
|
||||
"added": "Share added.",
|
||||
"removed": "Share removed.",
|
||||
"remove": "Remove"
|
||||
},
|
||||
"priority": {
|
||||
"low": "Low",
|
||||
"medium": "Medium",
|
||||
"high": "High"
|
||||
},
|
||||
"status": {
|
||||
"open": "Open",
|
||||
"in_progress": "In Progress",
|
||||
"done": "Done",
|
||||
"cancelled": "Cancelled"
|
||||
},
|
||||
"subtype": {
|
||||
"normal": "Normal",
|
||||
"follow_up": "Follow up",
|
||||
"private": "Private"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user