changed language structure

main
alex 2023-08-17 18:52:08 +00:00
parent 98e5a33cf4
commit 2f6f4c9037
13 changed files with 760 additions and 416 deletions

View File

@ -1,180 +1,332 @@
{ {
"common": {
"button": {
"tryAgain": "Erneut versuchen",
"continue": "Weiter",
"repeat": "Wiederholen",
"undo": "Rückgängig machen",
"resume": "Fortführen",
"reload": "Neu laden",
"cancel": "Abbrechen",
"close": "Schließen",
"save": "Speichern",
"delete": "Löschen",
"confirm": "Bestätigen"
}
},
"contactAdmin": "Bitte kontaktieren Sie einen Administrator", "contactAdmin": "Bitte kontaktieren Sie einen Administrator",
"buttonCancel": "Abbrechen", "sideMenu": {
"buttonClose": "Schließen", "dashboard": "Dashboard",
"buttonSave": "Speichern", "groupTasks": {
"buttonDelete": "Löschen", "menuCategory": "Gruppenaufgaben",
"sideMenu.dashboard": "Dashboard", "overview": "Gruppenaufgaben",
"sideMenu.groupTasks": "Gruppenaufgaben", "history": "Verlauf"
"sideMenu.groupTasks.overview": "Übersicht", },
"sideMenu.groupTasks.history": "Verlauf", "adminArea": {
"sideMenu.adminArea": "Adminbereich", "menuCategory": "Adminbereich",
"sideMenu.adminArea.roles": "Rollen", "roles": "Rollen",
"sideMenu.adminArea.logs": "Logs", "logs": "Logs",
"sideMenu.adminArea.noScannerSelected": "Kein Scanner ausgewählt", "noScannerSelected": "Kein Scanner ausgewählt"
"sideMenu.usersCount": "Benutzer online", },
"sideMenu.usersCount.multiple": "Benutzer online", "usersCount": {
"sideMenu.logout": "Abmelden", "single": "Benutzer online",
"groupTasks.categoryGroups.length0": "Keine Gruppenaufgaben gefunden", "multiple": "Benutzer online"
"groupTasks.categoryGroups.assignedToNoTask.title": "Sie wurden keiner Gruppenaufgabe zugewiesen", },
"groupTasks.groupTypeSelectionModal.notification.globalInputsCannotBeEmpty.message": "Globale Eingaben können nicht leer sein", "logout": "Abmelden"
"groupTasks.groupTypeSelectionModal.notification.globalInputsCannotBeEmpty.description": "Bitte füllen Sie alle globalen Eingaben aus", },
"groupTasks.groupTypeSelectionModal.title": "Wählen Sie einen Gruppentyp", "groupTasks": {
"groupTasks.groupTypeSelectionModal.button.startTask": "Aufgabe starten", "categoryGroups": {
"groupTasks.groupTypeSelectionModal.select.placeholder": "Wählen Sie einen Gruppentyp", "length0": "Keine Gruppenaufgaben gefunden",
"groupTasks.groupTypeSelectionModal.form.item.groupTypeDescription.label": "Beschreibung", "assignedToNoTask.title": "Sie wurden keiner Gruppenaufgabe zugewiesen"
"groupTasks.groupTypeSelectionModal.form.item.groupTypeDescription.tooltip.title": "Diese Beschreibung hilft, im Nachhinein zu verstehen, worum es bei dieser Aufgabe ging", },
"groupTasks.tag.global": "Global", "groupTypeSelectionModal": {
"groupTasks.groupTypeSelectionModal.notification.globalInputTypeNotImplemented.message": "Typ {{globalInputType}} nicht implementiert", "notification": {
"groupTasks.groupTypeSelectionModal.notification.globalInputTypeNotImplemented.description": "Wurde festgelegt in: {{globalInputDisplayName}}", "globalInputsCannotBeEmpty": {
"groupTasks.groupTypeSelectionModal.h3": "Füllen Sie die globalen Werte aus", "message": "Globale Eingaben können nicht leer sein",
"groupTasks.groupTasksViewModal.groupTaskNotFound": "Gruppenaufgabe nicht gefunden", "description": "Bitte füllen Sie alle globalen Eingaben aus"
"groupTasks.groupTasksViewModal.notification.inputsCannotBeEmpty.message": "Eingaben können nicht leer sein", },
"groupTasks.groupTasksViewModal.notification.inputsCannotBeEmpty.description": "Bitte füllen Sie alle Felder aus", "globalInputTypeNotImplemented": {
"groupTasks.groupTasksViewModal.button.tryAgain": "Erneut versuchen", "message": "Typ {{globalInputType}} nicht implementiert",
"groupTasks.groupTasksViewModal.button.continue": "Weiter", "description": "Wurde festgelegt in: {{globalInputDisplayName}}"
"groupTasks.groupTasksViewModal.button.repeat": "Wiederholen", }
"groupTasks.groupTasksViewModal.button.undo": "Rückgängig machen", },
"groupTasks.groupTasksViewModal.button.resume": "Fortführen", "title": "Wählen Sie einen Gruppentyp",
"groupTasks.groupTasksViewModal.popover.specifiedTaskInputs": "Spezifizierte Aufgaben-Eingaben", "button": {
"groupTasks.groupTasksViewModal.startedAt": "Gestartet am", "startTask": "Aufgabe starten"
"groupTasks.groupTasksViewModal.endedAt": "Beendet am", },
"groupTasks.groupTasksViewModal.duration": "Laufzeit", "select": { "placeholder": "Wählen Sie einen Gruppentyp" },
"groupTasks.groupTasksViewModal.category": "Kategorie", "form": {
"groupTasks.groupTasksViewModal.popover.details": "Einzelheiten", "item": {
"groupTasks.groupTasksViewModal.popover.specifiedGlobalInputs": "Spezifizierte globale Eingaben", "groupTypeDescription.label": "Beschreibung",
"groupTasks.groupTasksViewModal.notification.groupTaskParameterNotImplemented.message": "Typ {{groupTaskParameterType}} nicht implementiert", "groupTypeDescription.tooltip.title": "Diese Beschreibung hilft, im Nachhinein zu verstehen, worum es bei dieser Aufgabe ging"
"groupTasks.groupTasksViewModal.notification.groupTaskParameterNotImplemented.description": "Wurde festgelegt in: {{groupTaskParameterDisplayName}}", }
"groupTasks.groupTasksViewModal.alertMessage.successful": "Erfolgreich", },
"groupTasks.groupTasksViewModal.alertMessage.taskIsRunning": "Aufgabe wird ausgeführt", "h3": "Füllen Sie die globalen Werte aus"
"groupTasks.groupTasksViewModal.alertMessage.taskCanceled": "Aufgabe abgebrochen", },
"groupTasks.groupTasksViewModal.alertMessage.taskFailed": "Aufgabe fehlgeschlagen", "tag.global": "Global",
"groupTasks.groupTasksViewModal.alertMessage.taskInputRequired": "Eingabe erforderlich", "groupTasksViewModal": {
"groupTasks.groupTasksViewModal.alertMessage.paused": "Pausiert", "groupTaskNotFound": "Gruppenaufgabe nicht gefunden",
"groupTasks.groupTasksViewModal.alertMessage.undoEnded": "Rückgängig machen beendet", "notification": {
"groupTasks.groupTasksTableList.column.creator": "Ersteller", "inputsCannotBeEmpty": {
"groupTasks.groupTasksTableList.column.groupName": "Gruppenname", "message": "Eingaben können nicht leer sein",
"groupTasks.groupTasksTableList.column.description": "Beschreibung", "description": "Bitte füllen Sie alle Felder aus"
"groupTasks.groupTasksTableList.column.step": "Schritt", },
"groupTasks.groupTasksTableList.column.status": "Status", "groupTaskParameterNotImplemented.message": "Typ {{groupTaskParameterType}} nicht implementiert",
"groupTasks.groupTasksTableList.column.startedAt": "Gestartet am", "groupTaskParameterNotImplemented.description": "Wurde festgelegt in: {{groupTaskParameterDisplayName}}"
"groupTasks.groupTasksTableList.column.endedAt": "Beendet am", },
"groupTasks.groupTasksTableList.column.duration": "Laufzeit", "startedAt": "Gestartet am",
"groupTasks.groupTasksTableList.column.action": "Maßnahme", "endedAt": "Beendet am",
"groupTasks.groupTasksTableList.column.action.view": "Ansehen", "duration": "Laufzeit",
"groupTasks.groupTasksTableList.statusBadge.finished": "Abgeschlossen", "category": "Kategorie",
"groupTasks.groupTasksTableList.statusBadge.running": "Laufend", "popover": {
"groupTasks.groupTasksTableList.statusBadge.canceled": "Abgebrochen", "specifiedTaskInputs": "Spezifizierte Aufgaben-Eingaben",
"groupTasks.groupTasksTableList.statusBadge.failed": "Fehlgeschlagen", "details": "Einzelheiten",
"groupTasks.groupTasksTableList.statusBadge.inputRequired": "Eingabe erforderlich", "specifiedGlobalInputs": "Spezifizierte globale Eingaben"
"groupTasks.groupTasksTableList.statusBadge.paused": "Pausiert", },
"groupTasks.groupTasksTableList.statusBadge.undoEnded": "Rückgängig gemacht", "alertMessage": {
"groupTasks.groupTasksTableList.button.newTask": "Neue Aufgabe", "successful": "Erfolgreich",
"groupTasks.groupTasksTableList.button.reload": "Neu laden", "taskIsRunning": "Aufgabe wird ausgeführt",
"groupTasks.groupTasksTableList.popover.title": "Sind Sie sicher, dass Sie die Gruppenkonfigurationen neu laden wollen?", "taskCanceled": "Aufgabe abgebrochen",
"groupTasks.groupTasksTableList.popover.buttonOk": "Ja", "taskFailed": "Aufgabe fehlgeschlagen",
"groupTasks.button.checkingForCategoryGroupChanges": "Prüfung auf Änderungen der Kategoriegruppen", "taskInputRequired": "Eingabe erforderlich",
"groupTasks.button.checkingForCategoryGroupChanges.checkingForCategoryGroupChanges.popover.title": "Sind Sie sicher, dass Sie die Kategoriegruppen prüfen wollen? (Während der Prüfung schaut der Server nach neuen Kategoriegruppen und löscht ggf. nicht mehr vorhandene)", "paused": "Pausiert",
"groupTasks.button.checkingForCategoryGroupChanges.popover.buttonOk": "Prüfen", "undoEnded": "Rückgängig machen beendet"
"logCard.popover.groupTaskId.title": "Gruppenaufgabe", }
"logCard.popover.groupTaskStep.title": "Gruppenaufgabe Schritt", },
"logCard.popover.role.title": "Rolle", "groupTasksTableList": {
"logCard.card.checkbox.info": "INFO", "column": {
"logCard.card.checkbox.error": "FEHLER", "creator": "Ersteller",
"logCard.tooltip.previous": "Vorige", "groupName": "Gruppenname",
"logCard.tooltip.next": "Nächste", "description": "Beschreibung",
"logCard.tooltip.reload": "Neu laden", "step": "Schritt",
"pageNotFound.subTitle": "Die Seite, die Sie besucht haben, existiert leider nicht.", "status": "Status",
"pageNotFound.buttonBackHome": "Zurück zur Startseite", "startedAt": "Gestartet am",
"allUsers.column.avatar": "Avatar", "endedAt": "Beendet am",
"allUsers.column.username": "Benutzername", "duration": "Laufzeit",
"allUsers.column.role": "Rolle", "action": { "title": "Maßnahme", "link": "Ansehen" }
"allUsers.column.connectionStatus": "Verbindungsstatus", },
"allUsers.column.lastOnline": "Zuletzt online", "statusBadge": {
"allUsers.column.action": "Maßnahme", "finished": "Abgeschlossen",
"allUsers.column.action.roleChange.popconfirm.title": "Rolle ändern in", "running": "Laufend",
"allUsers.column.action.roleChange.popconfirm.okText": "Ändern", "canceled": "Abgebrochen",
"allUsers.column.action.changeRole": "Rolle ändern", "failed": "Fehlgeschlagen",
"allUsers.column.action.delete.popconfirm.okText": "User löschen", "inputRequired": "Eingabe erforderlich",
"allUsers.column.action.delete.popconfirm.title": "Sind Sie sicher, dass Sie den Benutzer löschen wollen?", "paused": "Pausiert",
"allUsers.column.action.delete": "Löschen", "undoEnded": "Rückgängig gemacht"
"allUsers.column.action.deactivate.popconfirm.okText": "Benutzer deaktivieren", },
"allUsers.column.action.deactivate.popconfirm.title": "Sind Sie sicher, dass Sie den Benutzer deaktivieren wollen?", "button": {
"allUsers.column.action.deactivate": "Deaktivieren", "newTask": "Neue Aufgabe",
"allUsers.column.action.activate.popconfirm.okText": "Benutzer aktivieren", "installPythonDependencies": "Abhängigkeiten installieren"
"allUsers.column.action.activate.popconfirm.title": "Sind Sie sicher, dass Sie den Benutzer aktivieren wollen?", },
"allUsers.column.action.activate": "Aktivieren", "popover": {
"allUsers.roleChangeError.notification.message": "Benutzerrolle konnte nicht geändert werden", "reload": {
"allUsers.roleChangeError.notification.description": "Die Rolle existiert nicht mehr", "title": "Sind Sie sicher, dass Sie die Gruppenkonfigurationen neu laden wollen?"
"allUsers.header.allUsers": "Alle Benutzer", },
"allUsers.button.createNewUser": "Neuen Benutzer anlegen", "installPythonDependencies": {
"allUsers.header.deactivatedUsers": "Deaktivierte Benutzer", "title": "Sind Sie sicher das die Python Bibliotheken installiert werden sollen?"
"allUsers.createUserModal.title": "Einen neuen Benutzer anlegen", }
"allUsers.createUserModal.okText": "Benutzer anlegen", }
"allUsers.createUserModal.form.username": "Benutzername", },
"allUsers.createUserModal.form.email": "E-Mail", "button": {
"allUsers.createUserModal.form.password": "Passwort", "checkingForCategoryGroupChanges": {
"allUsers.createUserModal.form.role": "Rolle", "check": "Prüfung auf Änderungen der Kategoriegruppen",
"allUsers.createUserModal.form.role.placeholder": "Wählen Sie eine Rolle", "popover": {
"adminArea.createNewRole.popconfirm.okText": "Erstellen", "title": "Sind Sie sicher, dass Sie die Kategoriegruppen prüfen wollen? (Während der Prüfung schaut der Server nach neuen Kategoriegruppen und löscht ggf. nicht mehr vorhandene)",
"adminArea.createNewRole.popconfirm.title": "Sind Sie sicher, dass Sie eine neue Rolle anlegen wollen?", "buttonOk": "Prüfen"
"adminArea.createNewRole.button": "Neue Rolle erstellen", }
"adminArea.roleUpdate.errorDisplayNameToShort.notification.message": "Der angezeigte Name muss größer sein als {{MIN_ROLE_DISPLAY_NAME}} sein", }
"adminArea.roleUpdate.errorDisplayNameToShort.notification.description": "Bitte geben Sie einen längeren Anzeigenamen ein", }
"adminArea.roleUpdate.errorDisplayNameToLong.notification.message": "Der Anzeigename muss kleiner sein als {{MAX_ROLE_DISPLAY_NAME}} sein", },
"adminArea.roleUpdate.errorDisplayNameToLong.notification.description": "Bitte geben Sie einen kürzeren Anzeigenamen ein", "logCard": {
"adminArea.roleUpdate.errorDescriptionToLong.notification.message": "Die Beschreibung muss kleiner sein als {{MAX_ROLE_DESCRIPTION}} sein", "popover": {
"adminArea.roleUpdate.errorDescriptionToLong.notification.description": "Bitte geben Sie eine kürzere Beschreibung ein", "groupTaskId.title": "Gruppenaufgabe",
"adminArea.deleteRole.popconfirm.title": "Rolle löschen", "groupTaskStep.title": "Gruppenaufgabe Schritt",
"adminArea.deleteRole.popconfirm.description": "Sind Sie sicher, dass Sie diese Rolle löschen wollen?", "role.title": "Rolle"
"adminArea.deleteRole.tooltip.title": "Löschen", },
"adminArea.moveRoleUp.tooltip.title": "Rolle nach oben verschieben", "card": { "checkbox.info": "INFO", "checkbox.error": "FEHLER" },
"adminArea.moveRoleDown.tooltip.title": "Rolle nach unten verschieben", "tooltip": {
"adminArea.save.tooltip.title": "Speichern", "previous": "Vorige",
"adminArea.close.tooltip.title": "Schließen", "next": "Nächste",
"adminArea.edit.tooltip.title": "Bearbeiten", "reload": "Neu laden"
"adminArea.masterRoleRightsMessage": "Rechte können nicht bearbeitet werden, da diese Rolle der Master ist und alle Rechte besitzt.", }
"userProfile.header.yourProfile": "Ihr Profil", },
"userProfile.column.userAgent": "User-Agent", "pageNotFound": {
"userProfile.column.connectionStatus": "Verbindungsstatus", "subTitle": "Die Seite, die Sie besucht haben, existiert leider nicht.",
"userProfile.column.lastUsed": "Zuletzt verwendet", "buttonBackHome": "Zurück zur Startseite"
"userProfile.column.expiresAt": "Läuft ab am", },
"userProfile.column.action": "Maßnahme", "allUsers": {
"userProfile.column.action.signOut": "Abmelden", "column": {
"userProfile.column.deleteApiKey": "Löschen", "avatar": "Avatar",
"userProfile.column.deleteApiKey.popconfirm.title": "Sind Sie sicher, dass Sie diesen API-Schlüssel löschen möchten?", "username": "Benutzername",
"userProfile.column.deleteApiKey.popconfirm.description": "Anfragen, die diesen API-Schlüssel noch verwenden, werden zukünftig abgelehnt", "role": "Rolle",
"userProfile.column.createdAt": "Erstellt am", "connectionStatus": "Verbindungsstatus",
"userProfile.column.usageCount": "Anzahl der Nutzungen", "lastOnline": "Zuletzt online",
"userProfile.column.name": "Name", "action": {
"userProfile.column.token": "Token", "title": "Maßnahme",
"userProfile.changeAvatarError.notification.message": "Ihr Avatar konnte nicht geändert werden", "roleChange": {
"userProfile.changeAvatarError.notification.description": "Avatar muss kleiner sein als {{MAX_AVATAR_SIZE}} MB sein", "popconfirm.title": "Rolle ändern in",
"userProfile.form.username": "Benutzername", "roleChange.popconfirm.okText": "Ändern"
"userProfile.form.email": "E-Mail", },
"userProfile.form.oldPassword": "Altes passwort", "changeRole": "Rolle ändern",
"userProfile.form.newPassword": "Neues passwort", "delete": {
"userProfile.form.repeatNewPassword": "Neues Passwort wiederholen", "link": "Löschen",
"userProfile.form.language": "Sprache", "popconfirm": { "okText": "User löschen" },
"userProfile.header.yourSessions": "Ihre Sitzungen", "delete": {
"userProfile.header.yourApiKeys": "Ihre API-Schlüssel", "popconfirm": {
"userProfile.button.createApiKey": "Neuen API-Schlüssel erstellen", "title": "Sind Sie sicher, dass Sie den Benutzer löschen wollen?"
"userProfile.button.createApiKey.popconfirm.title": "Name für den neuen API-Schlüssel", }
"userProfile.button.createApiKey.popconfirm.okText": "Erstellen", }
"userProfile.button.copyToClipboard.notification": "API Token in die Zwischenablage kopiert", },
"userProfile.icon.viewApiDoc": "Api-Dokumentation anschauen", "deactivate": {
"scanners.column.name": "Name", "link": "Deaktivieren",
"scanners.column.usedBy": "Verwendet von", "popconfirm": {
"scanners.column.lastUsed": "Zuletzt verwendet", "okText": "Benutzer deaktivieren",
"scanners.column.registeredAt": "Registriert am", "title": "Sind Sie sicher, dass Sie den Benutzer deaktivieren wollen?"
"scanners.column.userAgent": "User-Agent", }
"scanners.column.action": "Maßnahme", },
"scanners.column.action.disconnect.popconfirm.title": "Sind Sie sicher, dass Sie die Verbindung zu diesem Scanner trennen wollen?", "activate": {
"scanners.column.action.disconnect.popconfirm.okText": "Verbindung trennen", "link": "Aktivieren",
"scanners.column.action.disconnect": "Verbindung trennen", "popconfirm": { "okText": "Benutzer aktivieren" },
"scanners.column.action.use.popconfirm.title": "Sind Sie sicher, dass Sie diesen Scanner verwenden möchten?", "activate": {
"scanners.column.action.use.popconfirm.description": "Benutzer, die mit diesem Scanner verbunden sind, werden von der Verbindung getrennt.", "popconfirm": {
"scanners.column.action.use.popconfirm.okText": "Verwenden", "title": "Sind Sie sicher, dass Sie den Benutzer aktivieren wollen?"
"scanners.column.action.use": "Scanner verwenden", }
"scanners.header.scanners": "Scanner" }
}
}
},
"roleChangeError": {
"notification": {
"message": "Benutzerrolle konnte nicht geändert werden",
"description": "Die Rolle existiert nicht mehr"
}
},
"header": {
"allUsers": "Alle Benutzer",
"deactivatedUsers": "Deaktivierte Benutzer"
},
"button": { "createNewUser": "Neuen Benutzer anlegen" },
"createUserModal": {
"title": "Einen neuen Benutzer anlegen",
"okText": "Benutzer anlegen",
"form": {
"username": "Benutzername",
"email": "E-Mail",
"password": "Passwort",
"role": { "label": "Rolle", "placeholder": "Wählen Sie eine Rolle" }
}
}
},
"adminArea": {
"createNewRole": {
"popconfirm": {
"okText": "Erstellen",
"title": "Sind Sie sicher, dass Sie eine neue Rolle anlegen wollen?"
},
"button": "Neue Rolle erstellen"
},
"roleUpdate": {
"errorDisplayNameToShort.notification.message": "Der angezeigte Name muss größer sein als {{MIN_ROLE_DISPLAY_NAME}} sein",
"errorDisplayNameToShort.notification.description": "Bitte geben Sie einen längeren Anzeigenamen ein",
"errorDisplayNameToLong.notification.message": "Der Anzeigename muss kleiner sein als {{MAX_ROLE_DISPLAY_NAME}} sein",
"errorDisplayNameToLong.notification.description": "Bitte geben Sie einen kürzeren Anzeigenamen ein",
"errorDescriptionToLong.notification.message": "Die Beschreibung muss kleiner sein als {{MAX_ROLE_DESCRIPTION}} sein",
"errorDescriptionToLong.notification.description": "Bitte geben Sie eine kürzere Beschreibung ein"
},
"deleteRole": {
"popconfirm": {
"title": "Rolle löschen",
"description": "Sind Sie sicher, dass Sie diese Rolle löschen wollen?"
},
"tooltip": { "title": "Löschen" }
},
"moveRoleUp": { "tooltip": { "title": "Rolle nach oben verschieben" } },
"moveRoleDown": { "tooltip": { "title": "Rolle nach unten verschieben" } },
"save": { "tooltip": { "title": "Speichern" } },
"close": { "tooltip": { "title": "Schließen" } },
"edit": { "tooltip": { "title": "Bearbeiten" } },
"masterRoleRightsMessage": "Rechte können nicht bearbeitet werden, da diese Rolle der Master ist und alle Rechte besitzt."
},
"userProfile": {
"header": {
"yourProfile": "Ihr Profil",
"yourSessions": "Ihre Sitzungen",
"yourApiKeys": "Ihre API-Schlüssel"
},
"column": {
"userAgent": "User-Agent",
"connectionStatus": "Verbindungsstatus",
"lastUsed": "Zuletzt verwendet",
"expiresAt": "Läuft ab am",
"action": { "title": "Maßnahme", "signOut": "Abmelden" },
"deleteApiKey": {
"link": "Löschen",
"popconfirm": {
"title": "Sind Sie sicher, dass Sie diesen API-Schlüssel löschen möchten?",
"description": "Anfragen, die diesen API-Schlüssel noch verwenden, werden zukünftig abgelehnt"
}
},
"createdAt": "Erstellt am",
"usageCount": "Anzahl der Nutzungen",
"name": "Name",
"token": "Token"
},
"changeAvatarError": {
"notification": {
"message": "Ihr Avatar konnte nicht geändert werden",
"description": "Avatar muss kleiner sein als {{MAX_AVATAR_SIZE}} MB sein"
}
},
"form": {
"username": "Benutzername",
"email": "E-Mail",
"oldPassword": "Altes passwort",
"newPassword": "Neues passwort",
"repeatNewPassword": "Neues Passwort wiederholen",
"language": "Sprache"
},
"button": {
"createApiKey": {
"title": "Neuen API-Schlüssel erstellen",
"popconfirm": {
"title": "Name für den neuen API-Schlüssel",
"okText": "Erstellen"
}
},
"copyToClipboard": {
"notification": "API Token in die Zwischenablage kopiert"
}
},
"icon": { "viewApiDoc": "Api-Dokumentation anschauen" }
},
"scanners": {
"column": {
"name": "Name",
"usedBy": "Verwendet von",
"lastUsed": "Zuletzt verwendet",
"registeredAt": "Registriert am",
"userAgent": "User-Agent",
"action": {
"title": "Maßnahme",
"disconnect": {
"link": "Verbindung trennen",
"popconfirm": {
"title": "Sind Sie sicher, dass Sie die Verbindung zu diesem Scanner trennen wollen?",
"okText": "Verbindung trennen"
}
},
"use": {
"link": "Scanner verwenden",
"popconfirm": {
"title": "Sind Sie sicher, dass Sie diesen Scanner verwenden möchten?",
"description": "Benutzer, die mit diesem Scanner verbunden sind, werden von der Verbindung getrennt.",
"okText": "Verwenden"
}
}
}
},
"header": { "scanners": "Scanner" }
}
} }

View File

@ -1,180 +1,331 @@
{ {
"common": {
"button": {
"tryAgain": "Try Again",
"continue": "Continue",
"repeat": "Repeat",
"undo": "Undo",
"resume": "Resume",
"reload": "Reload",
"cancel": "Cancel",
"close": "Close",
"save": "Save",
"delete": "Delete",
"confirm": "Confirm"
}
},
"contactAdmin": "Please contact an administrator", "contactAdmin": "Please contact an administrator",
"buttonCancel": "Cancel", "sideMenu": {
"buttonClose": "Close", "dashboard": "Dashboard",
"buttonSave": "Save", "groupTasks": {
"buttonDelete": "Delete", "menuCategory": "Group Tasks",
"sideMenu.dashboard": "Dashboard", "overview": "Group Tasks",
"sideMenu.groupTasks": "Group Tasks", "history": "History"
"sideMenu.groupTasks.overview": "Overview", },
"sideMenu.groupTasks.history": "History", "adminArea": {
"sideMenu.adminArea": "Admin Area", "menuCategory": "Admin Area",
"sideMenu.adminArea.roles": "Roles", "roles": "Roles",
"sideMenu.adminArea.logs": "Logs", "logs": "Logs",
"sideMenu.adminArea.noScannerSelected": "No scanner selected", "noScannerSelected": "No scanner selected"
"sideMenu.usersCount": "user connected", },
"sideMenu.usersCount.multiple": "users connected", "usersCount": {
"sideMenu.logout": "Logout", "single": "User online",
"groupTasks.categoryGroups.length0": "No group tasks found", "multiple": "Users online"
"groupTasks.categoryGroups.assignedToNoTask.title": "You were not assigned to any group tasks", },
"groupTasks.groupTypeSelectionModal.notification.globalInputsCannotBeEmpty.message": "Global inputs cannot be empty", "logout": "Logout"
"groupTasks.groupTypeSelectionModal.notification.globalInputsCannotBeEmpty.description": "Please fill in all global inputs", },
"groupTasks.groupTypeSelectionModal.title": "Select a group type", "groupTasks": {
"groupTasks.groupTypeSelectionModal.button.startTask": "Start task", "categoryGroups": {
"groupTasks.groupTypeSelectionModal.select.placeholder": "Choose a group type", "length0": "No group tasks found",
"groupTasks.groupTypeSelectionModal.form.item.groupTypeDescription.label": "Description", "assignedToNoTask.title": "You have not been assigned any group tasks"
"groupTasks.groupTypeSelectionModal.form.item.groupTypeDescription.tooltip.title": "This description helps to understand afterwards what this task was about", },
"groupTasks.tag.global": "Global", "groupTypeSelectionModal": {
"groupTasks.groupTypeSelectionModal.notification.globalInputTypeNotImplemented.message": "Type {{globalInputType}} not implemented", "notification": {
"groupTasks.groupTypeSelectionModal.notification.globalInputTypeNotImplemented.description": "Was specified in: {{globalInputDisplayName}}", "globalInputsCannotBeEmpty": {
"groupTasks.groupTypeSelectionModal.h3": "Fill in the global values", "message": "Global inputs cannot be empty",
"groupTasks.groupTasksViewModal.groupTaskNotFound": "Group Task not found", "description": "Please fill in all global inputs"
"groupTasks.groupTasksViewModal.notification.inputsCannotBeEmpty.message": "Inputs cannot be empty", },
"groupTasks.groupTasksViewModal.notification.inputsCannotBeEmpty.description": "Please fill in all inputs", "globalInputTypeNotImplemented": {
"groupTasks.groupTasksViewModal.button.tryAgain": "Try again", "message": "Type {{globalInputType}} not implemented",
"groupTasks.groupTasksViewModal.button.continue": "Continue", "description": "Defined in: {{globalInputDisplayName}}"
"groupTasks.groupTasksViewModal.button.repeat": "Repeat", }
"groupTasks.groupTasksViewModal.button.undo": "Undo", },
"groupTasks.groupTasksViewModal.button.resume": "Resume", "title": "Select a Group Type",
"groupTasks.groupTasksViewModal.popover.specifiedTaskInputs": "Specified Task Inputs", "button": {
"groupTasks.groupTasksViewModal.startedAt": "Started at", "startTask": "Start Task"
"groupTasks.groupTasksViewModal.endedAt": "Ended at", },
"groupTasks.groupTasksViewModal.duration": "Duration", "select": { "placeholder": "Select a Group Type" },
"groupTasks.groupTasksViewModal.category": "Category", "form": {
"groupTasks.groupTasksViewModal.popover.details": "Details", "item": {
"groupTasks.groupTasksViewModal.popover.specifiedGlobalInputs": "Specified Global Inputs", "groupTypeDescription.label": "Description",
"groupTasks.groupTasksViewModal.notification.groupTaskParameterNotImplemented.message": "Type {{groupTaskParameterType}} not implemented", "groupTypeDescription.tooltip.title": "This description helps to understand what this task was about afterwards"
"groupTasks.groupTasksViewModal.notification.groupTaskParameterNotImplemented.description": "Was specified in: {{groupTaskParameterDisplayName}}", }
"groupTasks.groupTasksViewModal.alertMessage.successful": "Successful", },
"groupTasks.groupTasksViewModal.alertMessage.taskIsRunning": "Task is running", "h3": "Fill in the global values"
"groupTasks.groupTasksViewModal.alertMessage.taskCanceled": "Task canceled", },
"groupTasks.groupTasksViewModal.alertMessage.taskFailed": "Task failed", "tag.global": "Global",
"groupTasks.groupTasksViewModal.alertMessage.taskInputRequired": "Input required", "groupTasksViewModal": {
"groupTasks.groupTasksViewModal.alertMessage.paused": "Paused", "groupTaskNotFound": "Group task not found",
"groupTasks.groupTasksViewModal.alertMessage.undoEnded": "Undo ended", "notification": {
"groupTasks.groupTasksTableList.column.creator": "Creator", "inputsCannotBeEmpty": {
"groupTasks.groupTasksTableList.column.groupName": "Group Name", "message": "Inputs cannot be empty",
"groupTasks.groupTasksTableList.column.description": "Description", "description": "Please fill in all fields"
"groupTasks.groupTasksTableList.column.step": "Step", },
"groupTasks.groupTasksTableList.column.status": "Status", "groupTaskParameterNotImplemented.message": "Type {{groupTaskParameterType}} not implemented",
"groupTasks.groupTasksTableList.column.startedAt": "Started At", "groupTaskParameterNotImplemented.description": "Defined in: {{groupTaskParameterDisplayName}}"
"groupTasks.groupTasksTableList.column.endedAt": "Ended At", },
"groupTasks.groupTasksTableList.column.duration": "Duration", "startedAt": "Started at",
"groupTasks.groupTasksTableList.column.action": "Action", "endedAt": "Ended at",
"groupTasks.groupTasksTableList.column.action.view": "View", "duration": "Duration",
"groupTasks.groupTasksTableList.statusBadge.finished": "Finished", "category": "Category",
"groupTasks.groupTasksTableList.statusBadge.running": "Running", "popover": {
"groupTasks.groupTasksTableList.statusBadge.canceled": "Canceled", "specifiedTaskInputs": "Specified Task Inputs",
"groupTasks.groupTasksTableList.statusBadge.failed": "Failed", "details": "Details",
"groupTasks.groupTasksTableList.statusBadge.inputRequired": "Input required", "specifiedGlobalInputs": "Specified Global Inputs"
"groupTasks.groupTasksTableList.statusBadge.paused": "Paused", },
"groupTasks.groupTasksTableList.statusBadge.undoEnded": "Undo ended", "alertMessage": {
"groupTasks.groupTasksTableList.button.newTask": "New task", "successful": "Successful",
"groupTasks.groupTasksTableList.button.reload": "Reload", "taskIsRunning": "Task is running",
"groupTasks.groupTasksTableList.popover.title": "Are you sure you want to reload the group configs?", "taskCanceled": "Task canceled",
"groupTasks.groupTasksTableList.popover.buttonOk": "Yes", "taskFailed": "Task failed",
"groupTasks.button.checkingForCategoryGroupChanges": "Checking for changes to the category groups", "taskInputRequired": "Input required",
"groupTasks.button.checkingForCategoryGroupChanges.checkingForCategoryGroupChanges.popover.title": "Are you sure you want to check the category groups? (During the check, the server looks for new category groups and deletes any that no longer exist)", "paused": "Paused",
"groupTasks.button.checkingForCategoryGroupChanges.popover.buttonOk": "Verify", "undoEnded": "Undo ended"
"logCard.popover.groupTaskId.title": "Group Task", }
"logCard.popover.groupTaskStep.title": "Group Task Step", },
"logCard.popover.role.title": "Role", "groupTasksTableList": {
"logCard.card.checkbox.info": "INFO", "column": {
"logCard.card.checkbox.error": "ERROR", "creator": "Creator",
"logCard.tooltip.previous": "Previous", "groupName": "Group Name",
"logCard.tooltip.next": "Next", "description": "Description",
"logCard.tooltip.reload": "Reload", "step": "Step",
"pageNotFound.subTitle": "Sorry, the page you visited does not exist.", "status": "Status",
"pageNotFound.buttonBackHome": "Back Home", "startedAt": "Started at",
"allUsers.column.avatar": "Avatar", "endedAt": "Ended at",
"allUsers.column.username": "Username", "duration": "Duration",
"allUsers.column.role": "Role", "action": { "title": "Action", "link": "View" }
"allUsers.column.connectionStatus": "Connection status", },
"allUsers.column.lastOnline": "Last online", "statusBadge": {
"allUsers.column.action": "Action", "finished": "Finished",
"allUsers.column.action.roleChange.popconfirm.title": "Change role to", "running": "Running",
"allUsers.column.action.roleChange.popconfirm.okText": "Change", "canceled": "Canceled",
"allUsers.column.action.changeRole": "Change role", "failed": "Failed",
"allUsers.column.action.delete.popconfirm.okText": "Delete user", "inputRequired": "Input Required",
"allUsers.column.action.delete.popconfirm.title": "Are you sure you want to delete the user?", "paused": "Paused",
"allUsers.column.action.delete": "Delete", "undoEnded": "Undo Ended"
"allUsers.column.action.deactivate.popconfirm.okText": "Deactivate user", },
"allUsers.column.action.deactivate.popconfirm.title": "Are you sure you want to deactivate the user?", "button": {
"allUsers.column.action.deactivate": "Deactivate", "newTask": "New Task",
"allUsers.column.action.activate.popconfirm.okText": "Activate user", "installPythonDependencies": "Install Dependencies"
"allUsers.column.action.activate.popconfirm.title": "Are you sure you want to activate the user?", },
"allUsers.column.action.activate": "Activate", "popover": {
"allUsers.roleChangeError.notification.message": "User role could not be changed", "reload": {
"allUsers.roleChangeError.notification.description": "The role does not exist anymore", "title": "Are you sure you want to reload group configurations?"
"allUsers.header.allUsers": "All users", },
"allUsers.button.createNewUser": "Create new user", "installPythonDependencies": {
"allUsers.header.deactivatedUsers": "Deactivated users", "title": "Are you sure you want to install Python libraries?"
"allUsers.createUserModal.title": "Create a new user", }
"allUsers.createUserModal.okText": "Create user", }
"allUsers.createUserModal.form.username": "Username", },
"allUsers.createUserModal.form.email": "E-Mail", "button": {
"allUsers.createUserModal.form.password": "Password", "checkingForCategoryGroupChanges": {
"allUsers.createUserModal.form.role": "Role", "check": "Checking for Category Group Changes",
"allUsers.createUserModal.form.role.placeholder": "Select a role", "popover": {
"adminArea.createNewRole.popconfirm.okText": "Create", "title": "Are you sure you want to check category groups? (During the check, the server looks for new category groups and deletes those that are no longer available)",
"adminArea.createNewRole.popconfirm.title": "Are you sure you want to create a new role?", "buttonOk": "Check"
"adminArea.createNewRole.button": "Create new role", }
"adminArea.roleUpdate.errorDisplayNameToShort.notification.message": "Display name must be greater than {{MIN_ROLE_DISPLAY_NAME}}", }
"adminArea.roleUpdate.errorDisplayNameToShort.notification.description": "Please enter a longer display name", }
"adminArea.roleUpdate.errorDisplayNameToLong.notification.message": "Display name must be less than {{MIN_ROLE_DISPLAY_NAME}}", },
"adminArea.roleUpdate.errorDisplayNameToLong.notification.description": "Please enter a shorter display name", "logCard": {
"adminArea.roleUpdate.errorDescriptionToLong.notification.message": "Description must be less than {{MAX_ROLE_DESCRIPTION}}", "popover": {
"adminArea.roleUpdate.errorDescriptionToLong.notification.description": "Please enter a shorter description", "groupTaskId.title": "Group Task",
"adminArea.deleteRole.popconfirm.title": "Delete role", "groupTaskStep.title": "Group Task Step",
"adminArea.deleteRole.popconfirm.description": "Are you sure to delete this role?", "role.title": "Role"
"adminArea.deleteRole.tooltip.title": "Delete", },
"adminArea.moveRoleUp.tooltip.title": "Move role up", "card": { "checkbox.info": "INFO", "checkbox.error": "ERROR" },
"adminArea.moveRoleDown.tooltip.title": "Move role down", "tooltip": {
"adminArea.save.tooltip.title": "Save", "previous": "Previous",
"adminArea.close.tooltip.title": "Close", "next": "Next",
"adminArea.edit.tooltip.title": "Edit", "reload": "Reload"
"adminArea.masterRoleRightsMessage": "Rights cannot be edited, because this role is the master and has all rights.", }
"userProfile.header.yourProfile": "Your profile", },
"userProfile.column.userAgent": "User-Agent", "pageNotFound": {
"userProfile.column.connectionStatus": "Connection status", "subTitle": "The page you visited does not exist.",
"userProfile.column.lastUsed": "Last used", "buttonBackHome": "Back to Home"
"userProfile.column.expiresAt": "Expires at", },
"userProfile.column.action": "Action", "allUsers": {
"userProfile.column.action.signOut": "Sign out", "column": {
"userProfile.column.deleteApiKey": "Delete", "avatar": "Avatar",
"userProfile.column.deleteApiKey.popconfirm.title": "Are you sure you want to delete this API key?", "username": "Username",
"userProfile.column.deleteApiKey.popconfirm.description": "Requests that still use this API key will be irejected in the future", "role": "Role",
"userProfile.column.createdAt": "Created at", "connectionStatus": "Connection Status",
"userProfile.column.usageCount": "Usage count", "lastOnline": "Last Online",
"userProfile.column.name": "Name", "action": {
"userProfile.column.token": "Token", "title": "Action",
"userProfile.changeAvatarError.notification.message": "Your avatar could not be changed", "roleChange": {
"userProfile.changeAvatarError.notification.description": "Avatar must be smaller than {{MAX_AVATAR_SIZE}} MB", "popconfirm.title": "Change role to",
"userProfile.form.username": "Username", "roleChange.popconfirm.okText": "Change"
"userProfile.form.email": "E-Mail", },
"userProfile.form.oldPassword": "Old password", "changeRole": "Change Role",
"userProfile.form.newPassword": "New password", "delete": {
"userProfile.form.repeatNewPassword": "Repeat new password", "link": "Delete",
"userProfile.form.language": "Language", "popconfirm": { "okText": "Delete User" },
"userProfile.header.yourSessions": "Your sessions", "delete": {
"userProfile.header.yourApiKeys": "Your API keys", "popconfirm": {
"userProfile.button.createApiKey": "Create new API key", "title": "Are you sure you want to delete the user?"
"userProfile.button.createApiKey.popconfirm.title": "Name for the new API key", }
"userProfile.button.createApiKey.popconfirm.okText": "Create", }
"userProfile.button.copyToClipboard.notification": "API token copied to clipboard", },
"userProfile.icon.viewApiDoc": "View api documentation", "deactivate": {
"scanners.column.name": "Name", "link": "Deactivate",
"scanners.column.usedBy": "Used by", "popconfirm": {
"scanners.column.lastUsed": "Last used", "okText": "Deactivate User",
"scanners.column.registeredAt": "Registered at", "title": "Are you sure you want to deactivate the user?"
"scanners.column.userAgent": "User-Agent", }
"scanners.column.action": "Action", },
"scanners.column.action.disconnect.popconfirm.title": "Are you sure you want to disconnect from this scanner?", "activate": {
"scanners.column.action.disconnect.popconfirm.okText": "Disconnect", "link": "Activate",
"scanners.column.action.disconnect": "Disconnect", "popconfirm": { "okText": "Activate User" },
"scanners.column.action.use.popconfirm.title": "Are you sure you want to use this scanner?", "activate": {
"scanners.column.action.use.popconfirm.description": "Users connected to this scanner will be disconnected", "popconfirm": {
"scanners.column.action.use.popconfirm.okText": "Use", "title": "Are you sure you want to activate the user?"
"scanners.column.action.use": "Use scanner", }
"scanners.header.scanners": "Scanners" }
}
}
},
"roleChangeError": {
"notification": {
"message": "User role could not be changed",
"description": "The role no longer exists"
}
},
"header": {
"allUsers": "All Users",
"deactivatedUsers": "Deactivated Users"
},
"button": { "createNewUser": "Create New User" },
"createUserModal": {
"title": "Create a New User",
"okText": "Create User",
"form": {
"username": "Username",
"email": "Email",
"password": "Password",
"role": { "label": "Role", "placeholder": "Select a role" }
}
}
},
"adminArea": {
"createNewRole": {
"popconfirm": {
"okText": "Create",
"title": "Are you sure you want to create a new role?"
},
"button": "Create New Role"
},
"roleUpdate": {
"errorDisplayNameToShort.notification.message": "The display name must be longer than {{MIN_ROLE_DISPLAY_NAME}}",
"errorDisplayNameToShort.notification.description": "Please enter a longer display name",
"errorDisplayNameToLong.notification.message": "The display name must be shorter than {{MAX_ROLE_DISPLAY_NAME}}",
"errorDisplayNameToLong.notification.description": "Please enter a shorter display name",
"errorDescriptionToLong.notification.message": "The description must be shorter than {{MAX_ROLE_DESCRIPTION}}",
"errorDescriptionToLong.notification.description": "Please enter a shorter description"
},
"deleteRole": {
"popconfirm": {
"title": "Delete Role",
"description": "Are you sure you want to delete this role?"
},
"tooltip": { "title": "Delete" }
},
"moveRoleUp": { "tooltip": { "title": "Move Role Up" } },
"moveRoleDown": { "tooltip": { "title": "Move Role Down" } },
"save": { "tooltip": { "title": "Save" } },
"close": { "tooltip": { "title": "Close" } },
"edit": { "tooltip": { "title": "Edit" } },
"masterRoleRightsMessage": "Rights cannot be edited as this role is the master and has all rights."
},
"userProfile": {
"header": {
"yourProfile": "Your Profile",
"yourSessions": "Your Sessions",
"yourApiKeys": "Your API Keys"
},
"column": {
"userAgent": "User-Agent",
"connectionStatus": "Connection Status",
"lastUsed": "Last Used",
"expiresAt": "Expires At",
"action": { "title": "Action", "signOut": "Sign Out" },
"deleteApiKey": {
"link": "Delete",
"popconfirm": {
"title": "Are you sure you want to delete this API key?",
"description": "Requests using this API key will be rejected in the future"
}
},
"createdAt": "Created At",
"usageCount": "Usage Count",
"name": "Name",
"token": "Token"
},
"changeAvatarError": {
"notification": {
"message": "Your avatar could not be changed",
"description": "Avatar must be smaller than {{MAX_AVATAR_SIZE}} MB"
}
},
"form": {
"username": "Username",
"email": "Email",
"oldPassword": "Old password",
"newPassword": "New password",
"repeatNewPassword": "Repeat new password",
"language": "Language"
},
"button": {
"createApiKey": {
"title": "Create New API Key",
"popconfirm": {
"title": "Name for the new API key",
"okText": "Create"
}
},
"copyToClipboard": {
"notification": "API Token copied to clipboard"
}
},
"icon": { "viewApiDoc": "View API Documentation" }
},
"scanners": {
"column": {
"name": "Name",
"usedBy": "Used By",
"lastUsed": "Last Used",
"registeredAt": "Registered At",
"userAgent": "User-Agent",
"action": {
"title": "Action",
"disconnect": {
"link": "Disconnect",
"popconfirm": {
"title": "Are you sure you want to disconnect from this scanner?",
"okText": "Disconnect"
}
},
"use": {
"link": "Use Scanner",
"popconfirm": {
"title": "Are you sure you want to use this scanner?",
"description": "Users connected with this scanner will be disconnected.",
"okText": "Use"
}
}
}
},
"header": { "scanners": "Scanners" }
}
} }

View File

@ -58,7 +58,7 @@ export default function SideMenu({
]; ];
let groupTasks = { let groupTasks = {
label: t("sideMenu.groupTasks"), label: t("sideMenu.groupTasks.menuCategory"),
type: "group", type: "group",
children: [ children: [
{ {
@ -99,7 +99,7 @@ export default function SideMenu({
) )
) { ) {
let adminArea = { let adminArea = {
label: t("sideMenu.adminArea"), label: t("sideMenu.adminArea.menuCategory"),
icon: <SettingOutlined />, icon: <SettingOutlined />,
key: "/admin-area", key: "/admin-area",
children: [], children: [],
@ -163,7 +163,7 @@ export default function SideMenu({
status={webSocketContext.ConnectionBadgeStatus} status={webSocketContext.ConnectionBadgeStatus}
text={`${webSocketContext.ConnectedWebSocketUsersCount} ${ text={`${webSocketContext.ConnectedWebSocketUsersCount} ${
webSocketContext.ConnectedWebSocketUsersCount === 1 webSocketContext.ConnectedWebSocketUsersCount === 1
? t("sideMenu.usersCount") ? t("sideMenu.usersCount.single")
: t("sideMenu.usersCount.multiple") : t("sideMenu.usersCount.multiple")
}`} }`}
/> />

View File

@ -137,7 +137,7 @@ export default function AdminAreaRoles() {
<Popconfirm <Popconfirm
placement="top" placement="top"
okText={t("adminArea.createNewRole.popconfirm.okText")} okText={t("adminArea.createNewRole.popconfirm.okText")}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
title={t("adminArea.createNewRole.popconfirm.title")} title={t("adminArea.createNewRole.popconfirm.title")}
onConfirm={() => onCreateNewRoleClick()} onConfirm={() => onCreateNewRoleClick()}
> >
@ -406,7 +406,7 @@ function Role({ treeData, role, webSocketContext, notificationApi }) {
"adminArea.deleteRole.popconfirm.description" "adminArea.deleteRole.popconfirm.description"
)} )}
icon={<QuestionCircleOutlined style={{ color: "red" }} />} icon={<QuestionCircleOutlined style={{ color: "red" }} />}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
onConfirm={() => onDeleteClick()} onConfirm={() => onDeleteClick()}
> >
<Tooltip title={t("adminArea.deleteRole.tooltip.title")}> <Tooltip title={t("adminArea.deleteRole.tooltip.title")}>

View File

@ -62,7 +62,7 @@ export default function CreateUserModal({ isModalOpen, setIsModalOpen }) {
centered centered
maskClosable={false} maskClosable={false}
okText={t("allUsers.createUserModal.okText")} okText={t("allUsers.createUserModal.okText")}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
okButtonProps={{ disabled: !isCreateUserPossible() }} okButtonProps={{ disabled: !isCreateUserPossible() }}
onCancel={() => setIsModalOpen(false)} onCancel={() => setIsModalOpen(false)}
onOk={() => onConfirmUserCreation()} onOk={() => onConfirmUserCreation()}
@ -114,7 +114,7 @@ export default function CreateUserModal({ isModalOpen, setIsModalOpen }) {
maxLength={Constants.GLOBALS.MAX_PASSWORD_LENGTH} maxLength={Constants.GLOBALS.MAX_PASSWORD_LENGTH}
/> />
</Form.Item> </Form.Item>
<Form.Item label={t("allUsers.createUserModal.form.role")}> <Form.Item label={t("allUsers.createUserModal.form.role.label")}>
<Select <Select
getPopupContainer={(node) => node.parentNode} getPopupContainer={(node) => node.parentNode}
value={selectedRoleId} value={selectedRoleId}

View File

@ -70,7 +70,7 @@ export default function AllUsers() {
) )
) { ) {
items.push({ items.push({
title: t("allUsers.column.action"), title: t("allUsers.column.action.title"),
key: "action", key: "action",
render: (_, record) => ( render: (_, record) => (
<Space size="middle"> <Space size="middle">
@ -91,7 +91,7 @@ export default function AllUsers() {
title={t( title={t(
"allUsers.column.action.roleChange.popconfirm.title" "allUsers.column.action.roleChange.popconfirm.title"
)} )}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
okText={t( okText={t(
"allUsers.column.action.roleChange.popconfirm.okText" "allUsers.column.action.roleChange.popconfirm.okText"
)} )}
@ -166,12 +166,12 @@ export default function AllUsers() {
).Master) && ( ).Master) && (
<Popconfirm <Popconfirm
placement="top" placement="top"
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
okText={t("allUsers.column.action.delete.popconfirm.okText")} okText={t("allUsers.column.action.delete.popconfirm.okText")}
title={t("allUsers.column.action.delete.popconfirm.title")} title={t("allUsers.column.action.delete.popconfirm.title")}
onConfirm={() => onUserDeletionConfirm(record.key)} onConfirm={() => onUserDeletionConfirm(record.key)}
> >
<Link to="#">{t("allUsers.column.action.delete")}</Link> <Link to="#">{t("allUsers.column.action.delete.link")}</Link>
</Popconfirm> </Popconfirm>
)} )}
@ -195,7 +195,7 @@ export default function AllUsers() {
okText={t( okText={t(
"allUsers.column.action.deactivate.popconfirm.okText" "allUsers.column.action.deactivate.popconfirm.okText"
)} )}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
title={t( title={t(
"allUsers.column.action.deactivate.popconfirm.title" "allUsers.column.action.deactivate.popconfirm.title"
)} )}
@ -203,7 +203,9 @@ export default function AllUsers() {
onUserDeactivationConfirm(record.key, true) onUserDeactivationConfirm(record.key, true)
} }
> >
<Link to="#">{t("allUsers.column.action.deactivate")}</Link> <Link to="#">
{t("allUsers.column.action.deactivate.link")}
</Link>
</Popconfirm> </Popconfirm>
) )
: hasPermission( : hasPermission(
@ -227,12 +229,14 @@ export default function AllUsers() {
title={t( title={t(
"allUsers.column.action.activate.popconfirm.title" "allUsers.column.action.activate.popconfirm.title"
)} )}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
onConfirm={() => onConfirm={() =>
onUserDeactivationConfirm(record.key, false) onUserDeactivationConfirm(record.key, false)
} }
> >
<Link to="#">{t("allUsers.column.action.activate")}</Link> <Link to="#">
{t("allUsers.column.action.activate.link")}
</Link>
</Popconfirm> </Popconfirm>
)} )}
</Space> </Space>
@ -364,10 +368,10 @@ export default function AllUsers() {
) && ) &&
deactivatedUsers.length > 0 && ( deactivatedUsers.length > 0 && (
<> <>
<h1 style={{ fontWeight: "bold" }}> <Typography.Title level={4}>
{t("allUsers.header.deactivatedUsers")} ({deactivatedUsers.length} {t("allUsers.header.deactivatedUsers")} ({deactivatedUsers.length}
) )
</h1> </Typography.Title>
<Table <Table
scroll={{ x: "max-content" }} scroll={{ x: "max-content" }}
columns={getTableContent()} columns={getTableContent()}

View File

@ -1,4 +1,8 @@
import { PlusOutlined, ReloadOutlined } from "@ant-design/icons"; import {
DownloadOutlined,
PlusOutlined,
ReloadOutlined,
} from "@ant-design/icons";
import { import {
Badge, Badge,
Button, Button,
@ -82,13 +86,13 @@ export default function GroupTaskTableList({
key: "duration", key: "duration",
}, },
{ {
title: t("groupTasks.groupTasksTableList.column.action"), title: t("groupTasks.groupTasksTableList.column.action.title"),
dataIndex: "action", dataIndex: "action",
key: "action", key: "action",
render: (_, record) => ( render: (_, record) => (
<Space size="middle"> <Space size="middle">
<Link to={Constants.ROUTE_PATHS.GROUP_TASKS_VIEW + record.key}> <Link to={Constants.ROUTE_PATHS.GROUP_TASKS_VIEW + record.key}>
{t("groupTasks.groupTasksTableList.column.action.view")} {t("groupTasks.groupTasksTableList.column.action.link")}
</Link> </Link>
</Space> </Space>
), ),
@ -235,23 +239,48 @@ export default function GroupTaskTableList({
</Button> </Button>
)} )}
{hasXYPermission( <Space>
webSocketContext.User.Permissions, {hasXYPermission(
Constants.PERMISSIONS.GROUP_TASKS.OVERVIEW.XYReloadGroupConfig, webSocketContext.User.Permissions,
categoryGroup.category Constants.PERMISSIONS.GROUP_TASKS.OVERVIEW
) && ( .XYInstallPythonDependencies,
<Popconfirm categoryGroup.category
placement="left" ) && (
title={t("groupTasks.groupTasksTableList.popover.title")} <Popconfirm
cancelText={t("buttonCancel")} placement="left"
okText={t("groupTasks.groupTasksTableList.popover.buttonOk")} title={t(
onConfirm={() => handleOnConfirm(categoryGroup.category)} "groupTasks.groupTasksTableList.popover.installPythonDependencies.title"
> )}
<Button icon={<ReloadOutlined />}> cancelText={t("common.button.cancel")}
{t("groupTasks.groupTasksTableList.button.reload")} okText={t("common.button.confirm")}
</Button> onConfirm={() => handleOnConfirm(categoryGroup.category)}
</Popconfirm> >
)} <Button icon={<DownloadOutlined />}>
{t(
"groupTasks.groupTasksTableList.button.installPythonDependencies"
)}
</Button>
</Popconfirm>
)}
{hasXYPermission(
webSocketContext.User.Permissions,
Constants.PERMISSIONS.GROUP_TASKS.OVERVIEW.XYReloadGroupConfig,
categoryGroup.category
) && (
<Popconfirm
placement="left"
title={t("groupTasks.groupTasksTableList.popover.reload.title")}
cancelText={t("common.button.cancel")}
okText={t("common.button.confirm")}
onConfirm={() => handleOnConfirm(categoryGroup.category)}
>
<Button icon={<ReloadOutlined />}>
{t("common.button.reload")}
</Button>
</Popconfirm>
)}
</Space>
</div> </div>
)} )}

View File

@ -72,7 +72,9 @@ export default function GroupTasksViewModal({ isOpen }) {
width="70%" width="70%"
maskClosable={true} maskClosable={true}
onCancel={handleCancel} onCancel={handleCancel}
footer={<Button onClick={handleCancel}>{t("buttonClose")}</Button>} footer={
<Button onClick={handleCancel}>{t("common.button.close")}</Button>
}
> >
<Result <Result
status="500" status="500"
@ -259,7 +261,7 @@ export default function GroupTasksViewModal({ isOpen }) {
handleTaskFailedTryAgainRunTaskStep(taskStepId, index + 1) handleTaskFailedTryAgainRunTaskStep(taskStepId, index + 1)
} }
> >
{t("groupTasks.groupTasksViewModal.button.tryAgain")} {t("common.button.tryAgain")}
</Button> </Button>
); );
case Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED: case Constants.GROUP_TASKS_STATUS.INPUT_REQUIRED:
@ -269,7 +271,7 @@ export default function GroupTasksViewModal({ isOpen }) {
disabled={taskLocked} disabled={taskLocked}
onClick={() => handleTaskContinueTaskStep(taskStepId, index + 1)} onClick={() => handleTaskContinueTaskStep(taskStepId, index + 1)}
> >
{t("groupTasks.groupTasksViewModal.button.continue")} {t("common.button.continue")}
</Button> </Button>
); );
case Constants.GROUP_TASKS_STATUS.PAUSED: case Constants.GROUP_TASKS_STATUS.PAUSED:
@ -284,7 +286,7 @@ export default function GroupTasksViewModal({ isOpen }) {
handleUserActionTaskStep(2, taskStepId, index + 1) handleUserActionTaskStep(2, taskStepId, index + 1)
} }
> >
{t("groupTasks.groupTasksViewModal.button.repeat")} {t("common.button.repeat")}
</Button> </Button>
)} )}
@ -297,7 +299,7 @@ export default function GroupTasksViewModal({ isOpen }) {
handleUserActionTaskStep(1, taskStepId, index + 1) handleUserActionTaskStep(1, taskStepId, index + 1)
} }
> >
{t("groupTasks.groupTasksViewModal.button.undo")} {t("common.button.undo")}
</Button> </Button>
)} )}
@ -312,7 +314,7 @@ export default function GroupTasksViewModal({ isOpen }) {
disabled={taskLocked} disabled={taskLocked}
onClick={() => handleUserActionTaskStep(0, taskStepId, index + 1)} onClick={() => handleUserActionTaskStep(0, taskStepId, index + 1)}
> >
{t("groupTasks.groupTasksViewModal.button.resume")} {t("common.button.resume")}
</Button> </Button>
</Space> </Space>
); );
@ -323,7 +325,7 @@ export default function GroupTasksViewModal({ isOpen }) {
disabled={taskLocked} disabled={taskLocked}
onClick={() => handleUserActionTaskStep(2, taskStepId, index + 1)} onClick={() => handleUserActionTaskStep(2, taskStepId, index + 1)}
> >
{t("groupTasks.groupTasksViewModal.button.resume")} {t("common.button.resume")}
</Button> </Button>
); );
@ -570,7 +572,9 @@ export default function GroupTasksViewModal({ isOpen }) {
width="70%" width="70%"
onCancel={handleCancel} onCancel={handleCancel}
maskClosable={false} maskClosable={false}
footer={<Button onClick={handleCancel}>{t("buttonClose")}</Button>} footer={
<Button onClick={handleCancel}>{t("common.button.close")}</Button>
}
> >
{notificationContextHolder} {notificationContextHolder}

View File

@ -158,7 +158,7 @@ export default function GroupTypeSelectionModal({
footer={[ footer={[
<Space key={0}> <Space key={0}>
<Button key="back" onClick={handleCancel}> <Button key="back" onClick={handleCancel}>
{t("buttonCancel")} {t("common.button.cancel")}
</Button> </Button>
<Button <Button

View File

@ -100,14 +100,14 @@ export default function GroupTasks({ isGroupTasksViewModalOpen }) {
okText={t( okText={t(
"groupTasks.button.checkingForCategoryGroupChanges.popover.buttonOk" "groupTasks.button.checkingForCategoryGroupChanges.popover.buttonOk"
)} )}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
title={t( title={t(
"groupTasks.button.checkingForCategoryGroupChanges.checkingForCategoryGroupChanges.popover.title" "groupTasks.button.checkingForCategoryGroupChanges.popover.title"
)} )}
onConfirm={() => onCheckingForCategoryGroupChanges()} onConfirm={() => onCheckingForCategoryGroupChanges()}
> >
<Button shape="round" icon={<ReloadOutlined />} size="large"> <Button shape="round" icon={<ReloadOutlined />} size="large">
{t("groupTasks.button.checkingForCategoryGroupChanges")} {t("groupTasks.button.checkingForCategoryGroupChanges.check")}
</Button> </Button>
</Popconfirm> </Popconfirm>
</div> </div>

View File

@ -43,7 +43,7 @@ export default function Scanners() {
key: "userAgent", key: "userAgent",
}, },
{ {
title: t("scanners.column.action"), title: t("scanners.column.action.title"),
dataIndex: "action", dataIndex: "action",
key: "action", key: "action",
render: (_, record) => ( render: (_, record) => (
@ -55,7 +55,7 @@ export default function Scanners() {
okText={t( okText={t(
"scanners.column.action.disconnect.popconfirm.okText" "scanners.column.action.disconnect.popconfirm.okText"
)} )}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
onConfirm={() => { onConfirm={() => {
webSocketContext.SendSocketMessage( webSocketContext.SendSocketMessage(
SentMessagesCommands.ScannersDisconnectScanner, SentMessagesCommands.ScannersDisconnectScanner,
@ -65,7 +65,9 @@ export default function Scanners() {
); );
}} }}
> >
<Link to="#">{t("scanners.column.action.disconnect")}</Link> <Link to="#">
{t("scanners.column.action.disconnect.link")}
</Link>
</Popconfirm> </Popconfirm>
) : ( ) : (
<Popconfirm <Popconfirm
@ -75,7 +77,7 @@ export default function Scanners() {
"scanners.column.action.use.popconfirm.description" "scanners.column.action.use.popconfirm.description"
)} )}
okText={t("scanners.column.action.use.popconfirm.okText")} okText={t("scanners.column.action.use.popconfirm.okText")}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
onConfirm={() => { onConfirm={() => {
webSocketContext.SendSocketMessage( webSocketContext.SendSocketMessage(
SentMessagesCommands.ScannersUseScanners, SentMessagesCommands.ScannersUseScanners,
@ -85,7 +87,7 @@ export default function Scanners() {
); );
}} }}
> >
<Link to="#">{t("scanners.column.action.use")}</Link> <Link to="#">{t("scanners.column.action.use.link")}</Link>
</Popconfirm> </Popconfirm>
)} )}
</Space> </Space>

View File

@ -73,7 +73,7 @@ export default function UserProfile() {
key: "expiresAt", key: "expiresAt",
}, },
{ {
title: t("userProfile.column.action"), title: t("userProfile.column.action.title"),
dataIndex: "action", dataIndex: "action",
key: "action", key: "action",
render: (_, record) => { render: (_, record) => {
@ -159,7 +159,7 @@ export default function UserProfile() {
key: "createdAt", key: "createdAt",
}, },
{ {
title: t("scanners.column.action"), title: t("userProfile.column.action.title"),
dataIndex: "action", dataIndex: "action",
key: "action", key: "action",
render: (_, record) => ( render: (_, record) => (
@ -170,8 +170,8 @@ export default function UserProfile() {
description={t( description={t(
"userProfile.column.deleteApiKey.popconfirm.description" "userProfile.column.deleteApiKey.popconfirm.description"
)} )}
okText={t("buttonDelete")} okText={t("common.button.delete")}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
onConfirm={() => onConfirm={() =>
webSocketContext.SendSocketMessage( webSocketContext.SendSocketMessage(
SentMessagesCommands.DeleteUserApiKey, SentMessagesCommands.DeleteUserApiKey,
@ -179,7 +179,7 @@ export default function UserProfile() {
) )
} }
> >
<Link to="#">{t("userProfile.column.deleteApiKey")}</Link> <Link to="#">{t("userProfile.column.deleteApiKey.link")}</Link>
</Popconfirm> </Popconfirm>
</Space> </Space>
), ),
@ -434,7 +434,7 @@ export default function UserProfile() {
onClick={() => handleOnSubmit()} onClick={() => handleOnSubmit()}
disabled={isButtonDisabled()} disabled={isButtonDisabled()}
> >
{t("buttonSave")} {t("common.button.save")}
</Button> </Button>
</Form.Item> </Form.Item>
</Form> </Form>
@ -489,11 +489,11 @@ export default function UserProfile() {
/> />
} }
okText={t("userProfile.button.createApiKey.popconfirm.okText")} okText={t("userProfile.button.createApiKey.popconfirm.okText")}
cancelText={t("buttonCancel")} cancelText={t("common.button.cancel")}
onConfirm={() => onCreateNewApiKeyConfirm()} onConfirm={() => onCreateNewApiKeyConfirm()}
> >
<Button icon={<KeyOutlined />}> <Button icon={<KeyOutlined />}>
{t("userProfile.button.createApiKey")} {t("userProfile.button.createApiKey.title")}
</Button> </Button>
</Popconfirm> </Popconfirm>
</div> </div>

View File

@ -59,6 +59,8 @@ export const Constants = {
OVERVIEW: { OVERVIEW: {
XYNewTask: "group_tasks.overview.XY.new_task", XYNewTask: "group_tasks.overview.XY.new_task",
XYReloadGroupConfig: "group_tasks.overview.XY.reload_group_config", XYReloadGroupConfig: "group_tasks.overview.XY.reload_group_config",
XYInstallPythonDependencies:
"group_tasks.overview.XY.install_python_dependencies",
XYView: "group_tasks.overview.XY.view", XYView: "group_tasks.overview.XY.view",
}, },
HISTORY: "group_tasks.history", HISTORY: "group_tasks.history",