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": "Mindestens {{count}} Zeichen erforderlich.",
|
||||
"maxLength": "Maximal {{count}} Zeichen erlaubt.",
|
||||
"passwordMismatch": "Passwörter stimmen nicht überein."
|
||||
},
|
||||
"calendar": {
|
||||
"title": "Kalender",
|
||||
"kanbanTitle": "Aufgaben-Kanban",
|
||||
"today": "Heute",
|
||||
"previousMonth": "Vorheriger Monat",
|
||||
"nextMonth": "Nächster Monat",
|
||||
"monthView": "Monatsansicht",
|
||||
"kanbanView": "Kanban",
|
||||
"weekdays": ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So"],
|
||||
"months": [
|
||||
"Januar", "Februar", "März", "April", "Mai", "Juni",
|
||||
"Juli", "August", "September", "Oktober", "November", "Dezember"
|
||||
],
|
||||
"newAppointment": "Neuer Termin",
|
||||
"editAppointment": "Termin bearbeiten",
|
||||
"appointmentTitle": "Titel",
|
||||
"appointmentDescription": "Beschreibung",
|
||||
"appointmentLocation": "Ort",
|
||||
"appointmentStart": "Beginn",
|
||||
"appointmentEnd": "Ende",
|
||||
"appointmentAllDay": "Ganztägig",
|
||||
"appointmentPriority": "Priorität",
|
||||
"appointmentSubtype": "Typ",
|
||||
"appointmentCalendar": "Kalender",
|
||||
"save": "Speichern",
|
||||
"cancel": "Abbrechen",
|
||||
"delete": "Löschen",
|
||||
"deleteEntryConfirm": "Eintrag wirklich löschen?",
|
||||
"noCalendars": "Keine Kalender vorhanden. Bitte zuerst einen Kalender anlegen.",
|
||||
"noEntries": "Keine Termine in diesem Zeitraum.",
|
||||
"loading": "Wird geladen...",
|
||||
"errorLoad": "Einträge konnten nicht geladen werden.",
|
||||
"errorSave": "Eintrag konnte nicht gespeichert werden.",
|
||||
"created": "Termin angelegt.",
|
||||
"updated": "Termin aktualisiert.",
|
||||
"deleted": "Termin gelöscht.",
|
||||
"moved": "Termin verschoben.",
|
||||
"kanban": {
|
||||
"open": "Offen",
|
||||
"in_progress": "In Arbeit",
|
||||
"done": "Erledigt",
|
||||
"cancelled": "Abgebrochen",
|
||||
"empty": "Keine Aufgaben in dieser Spalte.",
|
||||
"noTasks": "Keine Aufgaben vorhanden."
|
||||
},
|
||||
"subtasks": {
|
||||
"title": "Unteraufgaben",
|
||||
"addPlaceholder": "Neue Unteraufgabe...",
|
||||
"add": "Hinzufügen",
|
||||
"empty": "Keine Unteraufgaben vorhanden.",
|
||||
"added": "Unteraufgabe angelegt.",
|
||||
"updated": "Unteraufgabe aktualisiert."
|
||||
},
|
||||
"ics": {
|
||||
"export": "ICS exportieren",
|
||||
"import": "ICS importieren",
|
||||
"importSuccess": "{{count}} Termine importiert.",
|
||||
"importPartial": "{{count}} importiert, {{errors}} Fehler.",
|
||||
"importFailed": "Import fehlgeschlagen.",
|
||||
"exportSuccess": "ICS-Datei heruntergeladen.",
|
||||
"chooseFile": "Datei auswählen",
|
||||
"noCalendar": "Bitte zuerst einen Kalender auswählen."
|
||||
},
|
||||
"resources": {
|
||||
"title": "Ressourcen-Buchung",
|
||||
"select": "Ressource auswählen",
|
||||
"none": "Keine Ressource",
|
||||
"book": "Ressource buchen",
|
||||
"booked": "Ressource gebucht.",
|
||||
"conflict": "Konflikt: Diese Ressource ist im gewählten Zeitraum bereits belegt.",
|
||||
"missingTimes": "Der Termin benötigt Start- und Endzeit."
|
||||
},
|
||||
"sharing": {
|
||||
"title": "Freigabe",
|
||||
"user": "Benutzer",
|
||||
"group": "Gruppe",
|
||||
"userPlaceholder": "Benutzer-ID",
|
||||
"groupPlaceholder": "Gruppen-ID",
|
||||
"permission": "Berechtigung",
|
||||
"permissionRead": "Lesen",
|
||||
"permissionWrite": "Schreiben",
|
||||
"add": "Hinzufügen",
|
||||
"list": "Freigaben",
|
||||
"empty": "Keine Freigaben vorhanden.",
|
||||
"added": "Freigabe hinzugefügt.",
|
||||
"removed": "Freigabe entfernt.",
|
||||
"remove": "Entfernen"
|
||||
},
|
||||
"priority": {
|
||||
"low": "Niedrig",
|
||||
"medium": "Mittel",
|
||||
"high": "Hoch"
|
||||
},
|
||||
"status": {
|
||||
"open": "Offen",
|
||||
"in_progress": "In Arbeit",
|
||||
"done": "Erledigt",
|
||||
"cancelled": "Abgebrochen"
|
||||
},
|
||||
"subtype": {
|
||||
"normal": "Normal",
|
||||
"follow_up": "Wiedervorlage",
|
||||
"private": "Privat"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user