Merge branch 'main' of https://github.com/Worklenz/worklenz into feature/task-activities-by-user

This commit is contained in:
chamikaJ
2025-07-14 12:46:18 +05:30
1166 changed files with 82289 additions and 15230 deletions

View File

@@ -17,7 +17,18 @@
"unarchive": "Dearchivieren",
"archiveConfirm": "Sind Sie sicher, dass Sie dieses Projekt archivieren möchten?",
"unarchiveConfirm": "Sind Sie sicher, dass Sie dieses Projekt dearchivieren möchten?",
"yes": "Ja",
"no": "Nein",
"clickToFilter": "Zum Filtern klicken nach",
"noProjects": "Keine Projekte gefunden",
"addToFavourites": "Zu Favoriten hinzufügen"
"addToFavourites": "Zu Favoriten hinzufügen",
"list": "Liste",
"group": "Gruppe",
"listView": "Listenansicht",
"groupView": "Gruppenansicht",
"groupBy": {
"category": "Kategorie",
"client": "Kunde"
},
"noPermission": "Sie haben keine Berechtigung, diese Aktion durchzuführen"
}

View File

@@ -19,5 +19,12 @@
"archive": "Archivieren",
"newTaskNamePlaceholder": "Aufgabenname eingeben",
"newSubtaskNamePlaceholder": "Unteraufgabenname eingeben"
"newSubtaskNamePlaceholder": "Unteraufgabenname eingeben",
"untitledSection": "Unbenannter Abschnitt",
"unmapped": "Nicht zugeordnet",
"clickToChangeDate": "Klicken Sie, um das Datum zu ändern",
"noDueDate": "Kein Fälligkeitsdatum",
"save": "Speichern",
"clear": "Löschen",
"nextWeek": "Nächste Woche"
}

View File

@@ -1,7 +1,24 @@
{
"configurePhases": "Phasen konfigurieren",
"phaseLabel": "Phasenbezeichnung",
"enterPhaseName": "Namen für Phasenbezeichnung eingeben",
"configure": "Konfigurieren",
"phaseLabel": "Phasen-Label",
"enterPhaseName": "Phasenname eingeben",
"addOption": "Option hinzufügen",
"phaseOptions": "Phasenoptionen:"
"phaseOptions": "Phasenoptionen",
"optionsText": "Optionen",
"dragToReorderPhases": "Ziehen Sie Phasen, um sie neu zu ordnen. Jede Phase kann eine andere Farbe haben.",
"enterNewPhaseName": "Neuen Phasennamen eingeben...",
"addPhase": "Phase hinzufügen",
"noPhasesFound": "Keine Phasen gefunden",
"no": "Keine",
"found": "gefunden",
"deletePhase": "Phase löschen",
"deletePhaseConfirm": "Sind Sie sicher, dass Sie diese Phase löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
"rename": "Umbenennen",
"delete": "Löschen",
"create": "Erstellen",
"cancel": "Abbrechen",
"selectColor": "Farbe auswählen",
"managePhases": "Phasen verwalten",
"close": "Schließen"
}

View File

@@ -0,0 +1,14 @@
{
"taskList": "Aufgabenliste",
"board": "Kanban-Board",
"insights": "Insights",
"files": "Dateien",
"members": "Mitglieder",
"updates": "Aktualisierungen",
"projectView": "Projektansicht",
"loading": "Projekt wird geladen...",
"error": "Fehler beim Laden des Projekts",
"pinnedTab": "Als Standard-Registerkarte festgesetzt",
"pinTab": "Als Standard-Registerkarte festsetzen",
"unpinTab": "Standard-Registerkarte lösen"
}

View File

@@ -1,13 +1,31 @@
{
"importTasks": "Aufgaben importieren",
"importTask": "Aufgabe importieren",
"createTask": "Aufgabe erstellen",
"settings": "Einstellungen",
"subscribe": "Abonnieren",
"unsubscribe": "Abbestellen",
"unsubscribe": "Abmelden",
"deleteProject": "Projekt löschen",
"startDate": "Startdatum",
"endDate": "Enddatum",
"projectSettings": "Projekteinstellungen",
"projectSummary": "Projektzusammenfassung",
"receiveProjectSummary": "Erhalten Sie jeden Abend eine Projektzusammenfassung."
"receiveProjectSummary": "Jeden Abend eine Projektzusammenfassung erhalten.",
"refreshProject": "Projekt aktualisieren",
"saveAsTemplate": "Als Vorlage speichern",
"invite": "Einladen",
"share": "Teilen",
"subscribeTooltip": "Projektbenachrichtigungen abonnieren",
"unsubscribeTooltip": "Projektbenachrichtigungen abmelden",
"refreshTooltip": "Projektdaten aktualisieren",
"settingsTooltip": "Projekteinstellungen öffnen",
"saveAsTemplateTooltip": "Dieses Projekt als Vorlage speichern",
"inviteTooltip": "Teammitglieder zu diesem Projekt einladen",
"createTaskTooltip": "Eine neue Aufgabe erstellen",
"importTaskTooltip": "Aufgabe aus Vorlage importieren",
"navigateBackTooltip": "Zurück zur Projektliste",
"projectStatusTooltip": "Projektstatus",
"projectDatesInfo": "Projekt-Zeitleisten-Informationen",
"projectCategoryTooltip": "Projektkategorie",
"defaultTaskName": "Unbenannte Aufgabe"
}

View File

@@ -9,5 +9,6 @@
"saveChanges": "Änderungen speichern",
"profileJoinedText": "Vor einem Monat beigetreten",
"profileLastUpdatedText": "Vor einem Monat aktualisiert",
"avatarTooltip": "Klicken Sie zum Hochladen eines Avatars"
"avatarTooltip": "Klicken Sie zum Hochladen eines Avatars",
"title": "Profil-Einstellungen"
}

View File

@@ -1,4 +1,5 @@
{
"title": "Teammitglieder",
"nameColumn": "Name",
"projectsColumn": "Projekte",
"emailColumn": "E-Mail",
@@ -40,5 +41,7 @@
"ownerText": "Team-Besitzer",
"addedText": "Hinzugefügt",
"updatedText": "Aktualisiert",
"noResultFound": "Geben Sie eine E-Mail-Adresse ein und drücken Sie Enter..."
"noResultFound": "Geben Sie eine E-Mail-Adresse ein und drücken Sie Enter...",
"jobTitlesFetchError": "Fehler beim Abrufen der Jobtitel",
"invitationResent": "Einladung erfolgreich erneut gesendet!"
}

View File

@@ -0,0 +1,16 @@
{
"title": "Teams",
"team": "Team",
"teams": "Teams",
"name": "Name",
"created": "Erstellt",
"ownsBy": "Gehört zu",
"edit": "Bearbeiten",
"editTeam": "Team bearbeiten",
"pinTooltip": "Klicken Sie hier, um dies im Hauptmenü zu fixieren",
"editTeamName": "Team-Name bearbeiten",
"updateName": "Name aktualisieren",
"namePlaceholder": "Name",
"nameRequired": "Bitte geben Sie einen Namen ein",
"updateFailed": "Änderung des Team-Namens fehlgeschlagen!"
}

View File

@@ -26,4 +26,4 @@
"add-sub-task": "+ Unteraufgabe hinzufügen",
"refresh-sub-tasks": "Unteraufgaben aktualisieren"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"taskHeader": {
"taskNamePlaceholder": "Aufgabe eingeben",
"taskNamePlaceholder": "Geben Sie Ihre Aufgabe ein",
"deleteTask": "Aufgabe löschen"
},
"taskInfoTab": {
@@ -9,20 +9,29 @@
"title": "Details",
"task-key": "Aufgaben-Schlüssel",
"phase": "Phase",
"assignees": "Zugewiesene",
"assignees": "Beauftragte",
"due-date": "Fälligkeitsdatum",
"time-estimation": "Zeitschätzung",
"priority": "Priorität",
"labels": "Labels",
"billable": "Abrechenbar",
"notify": "Benachrichtigen",
"when-done-notify": "Bei Fertigstellung benachrichtigen",
"when-done-notify": "Bei Abschluss benachrichtigen",
"start-date": "Startdatum",
"end-date": "Enddatum",
"hide-start-date": "Startdatum ausblenden",
"show-start-date": "Startdatum anzeigen",
"hours": "Stunden",
"minutes": "Minuten"
"minutes": "Minuten",
"progressValue": "Fortschrittswert",
"progressValueTooltip": "Fortschritt in Prozent einstellen (0-100%)",
"progressValueRequired": "Bitte geben Sie einen Fortschrittswert ein",
"progressValueRange": "Fortschritt muss zwischen 0 und 100 liegen",
"taskWeight": "Aufgabengewicht",
"taskWeightTooltip": "Gewicht dieser Teilaufgabe festlegen (Prozent)",
"taskWeightRequired": "Bitte geben Sie ein Aufgabengewicht ein",
"taskWeightRange": "Gewicht muss zwischen 0 und 100 liegen",
"recurring": "Wiederkehrend"
},
"labels": {
"labelInputPlaceholder": "Suchen oder erstellen",
@@ -30,29 +39,29 @@
},
"description": {
"title": "Beschreibung",
"placeholder": "Detaillierte Beschreibung hinzufügen..."
"placeholder": "Detailliertere Beschreibung hinzufügen..."
},
"subTasks": {
"title": "Unteraufgaben",
"addSubTask": "+ Unteraufgabe hinzufügen",
"addSubTaskInputPlaceholder": "Aufgabe eingeben und Enter drücken",
"refreshSubTasks": "Unteraufgaben aktualisieren",
"title": "Teilaufgaben",
"addSubTask": "Teilaufgabe hinzufügen",
"addSubTaskInputPlaceholder": "Geben Sie Ihre Aufgabe ein und drücken Sie Enter",
"refreshSubTasks": "Teilaufgaben aktualisieren",
"edit": "Bearbeiten",
"delete": "Löschen",
"confirmDeleteSubTask": "Sind Sie sicher, dass Sie diese Unteraufgabe löschen möchten?",
"deleteSubTask": "Unteraufgabe löschen"
"confirmDeleteSubTask": "Sind Sie sicher, dass Sie diese Teilaufgabe löschen möchten?",
"deleteSubTask": "Teilaufgabe löschen"
},
"dependencies": {
"title": "Abhängigkeiten",
"addDependency": "+ Neue Abhängigkeit hinzufügen",
"blockedBy": "Blockiert durch",
"blockedBy": "Blockiert von",
"searchTask": "Aufgabe suchen",
"noTasksFound": "Keine Aufgaben gefunden",
"confirmDeleteDependency": "Sind Sie sicher, dass Sie dies löschen möchten?"
"confirmDeleteDependency": "Sind Sie sicher, dass Sie löschen möchten?"
},
"attachments": {
"title": "Anhänge",
"chooseOrDropFileToUpload": "Datei auswählen oder zum Hochladen ablegen",
"chooseOrDropFileToUpload": "Datei zum Hochladen wählen oder ablegen",
"uploading": "Wird hochgeladen..."
},
"comments": {
@@ -60,19 +69,55 @@
"addComment": "+ Neuen Kommentar hinzufügen",
"noComments": "Noch keine Kommentare. Seien Sie der Erste!",
"delete": "Löschen",
"confirmDeleteComment": "Sind Sie sicher, dass Sie diesen Kommentar löschen möchten?"
"confirmDeleteComment": "Sind Sie sicher, dass Sie diesen Kommentar löschen möchten?",
"addCommentPlaceholder": "Kommentar hinzufügen...",
"cancel": "Abbrechen",
"commentButton": "Kommentieren",
"attachFiles": "Dateien anhängen",
"addMoreFiles": "Weitere Dateien hinzufügen",
"selectedFiles": "Ausgewählte Dateien (Bis zu 25MB, Maximum {count})",
"maxFilesError": "Sie können maximal {count} Dateien hochladen",
"processFilesError": "Fehler beim Verarbeiten der Dateien",
"addCommentError": "Bitte fügen Sie einen Kommentar hinzu oder hängen Sie Dateien an",
"createdBy": "Erstellt {{time}} von {{user}}",
"updatedTime": "Aktualisiert {{time}}"
},
"searchInputPlaceholder": "Nach Namen suchen",
"pendingInvitation": "Einladung ausstehend"
"searchInputPlaceholder": "Nach Name suchen",
"pendingInvitation": "Ausstehende Einladung"
},
"taskTimeLogTab": {
"title": "Zeiterfassung",
"addTimeLog": "Neuen Zeiteintrag hinzufügen",
"totalLogged": "Gesamt erfasst",
"exportToExcel": "Nach Excel exportieren",
"noTimeLogsFound": "Keine Zeiterfassungen gefunden"
"noTimeLogsFound": "Keine Zeiteinträge gefunden",
"timeLogForm": {
"date": "Datum",
"startTime": "Startzeit",
"endTime": "Endzeit",
"workDescription": "Arbeitsbeschreibung",
"descriptionPlaceholder": "Beschreibung hinzufügen",
"logTime": "Zeit erfassen",
"updateTime": "Zeit aktualisieren",
"cancel": "Abbrechen",
"selectDateError": "Bitte wählen Sie ein Datum",
"selectStartTimeError": "Bitte wählen Sie eine Startzeit",
"selectEndTimeError": "Bitte wählen Sie eine Endzeit",
"endTimeAfterStartError": "Endzeit muss nach der Startzeit liegen"
}
},
"taskActivityLogTab": {
"title": "Aktivitätsprotokoll"
"title": "Aktivitätsprotokoll",
"add": "HINZUFÜGEN",
"remove": "ENTFERNEN",
"none": "Keine",
"weight": "Gewicht",
"createdTask": "hat die Aufgabe erstellt."
},
"taskProgress": {
"markAsDoneTitle": "Aufgabe als erledigt markieren?",
"confirmMarkAsDone": "Ja, als erledigt markieren",
"cancelMarkAsDone": "Nein, aktuellen Status beibehalten",
"markAsDoneDescription": "Sie haben den Fortschritt auf 100% gesetzt. Möchten Sie den Aufgabenstatus auf \"Erledigt\" aktualisieren?"
}
}

View File

@@ -28,15 +28,15 @@
"endDateText": "Enddatum",
"dueDateText": "Fälligkeitsdatum",
"duedateText": "Fälligkeitsdatum",
"completedDateText": "Abschlussdatum",
"completeddateText": "Abschlussdatum",
"createdDateText": "Erstellungsdatum",
"createddateText": "Erstellungsdatum",
"completedDateText": "Abgeschlossen am",
"completeddateText": "Abgeschlossen am",
"createdDateText": "Erstellt am",
"createddateText": "Erstellt am",
"lastUpdatedText": "Zuletzt aktualisiert",
"lastupdatedText": "Zuletzt aktualisiert",
"reporterText": "Melder",
"dueTimeText": "Fällige Zeit",
"duetimeText": "Fällige Zeit",
"reporterText": "Berichterstatter",
"dueTimeText": "Fälligkeitszeit",
"duetimeText": "Fälligkeitszeit",
"lowText": "Niedrig",
"mediumText": "Mittel",
@@ -54,6 +54,35 @@
"category": "Kategorie",
"selectCategory": "Kategorie auswählen",
"pleaseEnterAName": "Bitte geben Sie einen Namen ein",
"pleaseSelectACategory": "Bitte wählen Sie eine Kategorie aus",
"create": "Erstellen"
"pleaseSelectACategory": "Bitte wählen Sie eine Kategorie",
"create": "Erstellen",
"searchTasks": "Aufgaben suchen...",
"searchPlaceholder": "Suchen...",
"fieldsText": "Felder",
"loadingFilters": "Filter werden geladen...",
"noOptionsFound": "Keine Optionen gefunden",
"filtersActive": "Filter aktiv",
"filterActive": "Filter aktiv",
"clearAll": "Alle löschen",
"clearing": "Wird gelöscht...",
"cancel": "Abbrechen",
"search": "Suchen",
"groupedBy": "Gruppiert nach",
"manage": "Verwalten",
"manageStatuses": "Status verwalten",
"managePhases": "Phasen verwalten",
"dragToReorderStatuses": "Status sind nach Kategorien organisiert. Ziehen Sie, um innerhalb von Kategorien neu zu ordnen. Klicken Sie auf 'Status hinzufügen', um neue Status in jeder Kategorie zu erstellen.",
"enterNewStatusName": "Neuen Status-Namen eingeben...",
"addStatus": "Status hinzufügen",
"noStatusesFound": "Keine Status in dieser Kategorie",
"deleteStatus": "Status löschen",
"deleteStatusConfirm": "Sind Sie sicher, dass Sie diesen Status löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
"rename": "Umbenennen",
"delete": "Löschen",
"enterStatusName": "Status-Namen eingeben",
"close": "Schließen",
"cannotMoveStatus": "Status kann nicht verschoben werden",
"cannotMoveStatusMessage": "Dieser Status kann nicht verschoben werden, da die Kategorie '{{categoryName}}' leer bleiben würde. Jede Kategorie muss mindestens einen Status haben.",
"ok": "OK"
}

View File

@@ -36,9 +36,10 @@
"selectText": "Auswählen",
"labelsSelectorInputTip": "Enter drücken zum Erstellen!",
"addTaskText": "+ Aufgabe hinzufügen",
"addTaskText": "Aufgabe hinzufügen",
"addSubTaskText": "+ Unteraufgabe hinzufügen",
"addTaskInputPlaceholder": "Aufgabe eingeben und Enter drücken",
"noTasksInGroup": "Keine Aufgaben in dieser Gruppe",
"openButton": "Öffnen",
"okButton": "OK",
@@ -47,6 +48,9 @@
"searchInputPlaceholder": "Suchen oder erstellen",
"assigneeSelectorInviteButton": "Neues Mitglied per E-Mail einladen",
"labelInputPlaceholder": "Suchen oder erstellen",
"searchLabelsPlaceholder": "Labels suchen...",
"createLabelButton": "\"{{name}}\" erstellen",
"manageLabelsPath": "Einstellungen → Labels",
"pendingInvitation": "Einladung ausstehend",
@@ -59,5 +63,74 @@
"convertToTask": "In Aufgabe umwandeln",
"delete": "Löschen",
"searchByNameInputPlaceholder": "Nach Namen suchen"
},
"setDueDate": "Fälligkeitsdatum festlegen",
"setStartDate": "Startdatum festlegen",
"clearDueDate": "Fälligkeitsdatum löschen",
"clearStartDate": "Startdatum löschen",
"dueDatePlaceholder": "Fälligkeitsdatum",
"startDatePlaceholder": "Startdatum",
"emptyStates": {
"noTaskGroups": "Keine Aufgabengruppen gefunden",
"noTaskGroupsDescription": "Aufgaben werden hier angezeigt, wenn sie erstellt oder Filter angewendet werden.",
"errorPrefix": "Fehler:",
"dragTaskFallback": "Aufgabe"
},
"customColumns": {
"addCustomColumn": "Benutzerdefinierte Spalte hinzufügen",
"customColumnHeader": "Benutzerdefinierte Spalte",
"customColumnSettings": "Einstellungen für benutzerdefinierte Spalte",
"noCustomValue": "Kein Wert",
"peopleField": "Personenfeld",
"noDate": "Kein Datum",
"unsupportedField": "Nicht unterstützter Feldtyp",
"modal": {
"addFieldTitle": "Feld hinzufügen",
"editFieldTitle": "Feld bearbeiten",
"fieldTitle": "Feldtitel",
"fieldTitleRequired": "Feldtitel ist erforderlich",
"columnTitlePlaceholder": "Spaltentitel",
"type": "Typ",
"deleteConfirmTitle": "Sind Sie sicher, dass Sie diese benutzerdefinierte Spalte löschen möchten?",
"deleteConfirmDescription": "Diese Aktion kann nicht rückgängig gemacht werden. Alle mit dieser Spalte verbundenen Daten werden dauerhaft gelöscht.",
"deleteButton": "Löschen",
"cancelButton": "Abbrechen",
"createButton": "Erstellen",
"updateButton": "Aktualisieren",
"createSuccessMessage": "Benutzerdefinierte Spalte erfolgreich erstellt",
"updateSuccessMessage": "Benutzerdefinierte Spalte erfolgreich aktualisiert",
"deleteSuccessMessage": "Benutzerdefinierte Spalte erfolgreich gelöscht",
"deleteErrorMessage": "Fehler beim Löschen der benutzerdefinierten Spalte",
"createErrorMessage": "Fehler beim Erstellen der benutzerdefinierten Spalte",
"updateErrorMessage": "Fehler beim Aktualisieren der benutzerdefinierten Spalte"
},
"fieldTypes": {
"people": "Personen",
"number": "Zahl",
"date": "Datum",
"selection": "Auswahl",
"checkbox": "Kontrollkästchen",
"labels": "Etiketten",
"key": "Schlüssel",
"formula": "Formel"
}
},
"indicators": {
"tooltips": {
"subtasks": "{{count}} Unteraufgabe",
"subtasks_plural": "{{count}} Unteraufgaben",
"comments": "{{count}} Kommentar",
"comments_plural": "{{count}} Kommentare",
"attachments": "{{count}} Anhang",
"attachments_plural": "{{count}} Anhänge",
"subscribers": "Aufgabe hat Abonnenten",
"dependencies": "Aufgabe hat Abhängigkeiten",
"recurring": "Wiederkehrende Aufgabe"
}
}
}

View File

@@ -0,0 +1,39 @@
{
"noTasksInGroup": "Keine Aufgaben in dieser Gruppe",
"noTasksInGroupDescription": "Fügen Sie eine Aufgabe hinzu, um zu beginnen",
"addFirstTask": "Fügen Sie Ihre erste Aufgabe hinzu",
"openTask": "Öffnen",
"subtask": "Unteraufgabe",
"subtasks": "Unteraufgaben",
"comment": "Kommentar",
"comments": "Kommentare",
"attachment": "Anhang",
"attachments": "Anhänge",
"enterSubtaskName": "Geben Sie den Namen der Unteraufgabe ein...",
"add": "Hinzufügen",
"cancel": "Abbrechen",
"renameGroup": "Gruppe umbenennen",
"renameStatus": "Status umbenennen",
"renamePhase": "Phase umbenennen",
"changeCategory": "Kategorie ändern",
"clickToEditGroupName": "Klicken Sie, um den Gruppennamen zu bearbeiten",
"enterGroupName": "Geben Sie den Gruppennamen ein",
"todo": "Zu erledigen",
"inProgress": "In Bearbeitung",
"done": "Erledigt",
"defaultTaskName": "Unbenannte Aufgabe",
"indicators": {
"tooltips": {
"subtasks": "{{count}} Unteraufgabe",
"subtasks_plural": "{{count}} Unteraufgaben",
"comments": "{{count}} Kommentar",
"comments_plural": "{{count}} Kommentare",
"attachments": "{{count}} Anhang",
"attachments_plural": "{{count}} Anhänge",
"subscribers": "Aufgabe hat Abonnenten",
"dependencies": "Aufgabe hat Abhängigkeiten",
"recurring": "Wiederkehrende Aufgabe"
}
}
}

View File

@@ -17,8 +17,25 @@
"createTaskTemplate": "Aufgabenvorlage erstellen",
"apply": "Anwenden",
"createLabel": "+ Label erstellen",
"searchOrCreateLabel": "Label suchen oder erstellen...",
"hitEnterToCreate": "Enter drücken zum Erstellen",
"labelExists": "Label existiert bereits",
"pendingInvitation": "Einladung ausstehend",
"noMatchingLabels": "Keine passenden Labels",
"noLabels": "Keine Labels"
"noLabels": "Keine Labels",
"CHANGE_STATUS": "Status ändern",
"CHANGE_PRIORITY": "Priorität ändern",
"CHANGE_PHASE": "Phase ändern",
"ADD_LABELS": "Labels hinzufügen",
"ASSIGN_TO_ME": "Mir zuweisen",
"ASSIGN_MEMBERS": "Mitglieder zuweisen",
"ARCHIVE": "Archivieren",
"DELETE": "Löschen",
"CANCEL": "Abbrechen",
"CLEAR_SELECTION": "Auswahl löschen",
"TASKS_SELECTED": "{{count}} Aufgabe ausgewählt",
"TASKS_SELECTED_plural": "{{count}} Aufgaben ausgewählt",
"DELETE_TASKS_CONFIRM": "{{count}} Aufgabe löschen?",
"DELETE_TASKS_CONFIRM_plural": "{{count}} Aufgaben löschen?",
"DELETE_TASKS_WARNING": "Diese Aktion kann nicht rückgängig gemacht werden."
}