Files
pp-tcms/frontend/messages/de.json
LittleYellow 02fa631f02 feat: upload test record attachments per run case
Allow testers to attach evidence files to a single test case within a
specific test run, proving the test was actually executed. Attachments
are scoped to the RunCase (per-execution), not the shared case definition.

Backend:
- runCaseAttachments join table + model (CASCADE on runCase/attachment)
- POST/GET /runcaseattachments routes (reuse /attachments download+delete)

Frontend:
- new "Test record" tab in the run case detail pane with drag-and-drop
  upload, scoped to reporters; i18n for all 6 locales

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 07:01:44 +08:00

439 lines
17 KiB
JSON

{
"RunStatus": {
"new": "Neu",
"inProgress": "In Bearbeitung",
"underReview": "In Überprüfung",
"rejected": "Abgelehnt",
"done": "Fertig",
"closed": "Geschlossen"
},
"RunCaseStatus": {
"untested": "Nicht getestet",
"passed": "Bestanden",
"failed": "Fehlgeschlagen",
"retest": "Erneut testen",
"skipped": "Übersprungen"
},
"Priority": {
"critical": "Kritisch",
"high": "Hoch",
"medium": "Mittel",
"low": "Niedrig"
},
"Type": {
"other": "Sonstiges",
"security": "Sicherheit",
"performance": "Leistung",
"accessibility": "Barrierefreiheit",
"functional": "Funktional",
"acceptance": "Abnahme",
"usability": "Benutzbarkeit",
"smoke_sanity": "Smoke & Sanity",
"compatibility": "Kompatibilität",
"destructive": "Destruktiv",
"regression": "Regression",
"automated": "Automatisiert",
"manual": "Manuell"
},
"ProjectDialog": {
"project": "Projekt",
"project_name": "Projektname",
"project_detail": "Projektbeschreibung",
"public": "Öffentlich",
"private": "Privat",
"if_you_make_public": "Ein öffentliches Projekt ist für alle sichtbar, die keine Mitglieder sind.",
"close": "Schließen",
"create": "Erstellen",
"update": "Aktualisieren",
"please_enter": "Bitte Projektnamen eingeben"
},
"Index": {
"get_started": "Loslegen",
"demo": "Demo",
"oss_tcms": "Open Source Testfall-Management-System",
"integrate_and_manage": "Integriere und verwalte alle Softwaretests.",
"oss_title": "Open Source",
"oss_detail": "UnitTCMS ist kostenlos und Open Source. Die Anwendung kann selbst gehostet werden und ist für Umgebungen mit hohen Sicherheitsanforderungen geeignet.",
"organize_title": "Testfälle organisieren",
"organize_detail": "Testfälle können nach Projekten und Ordnern organisiert werden. Das moderne UI macht sie schnell.",
"usability_title": "Benutzbarkeit",
"usability_detail": "Definierte Testfälle können mehrfach in Testläufen verwendet werden. Der Status von Testläufen und Projekten ist grafisch sichtbar.",
"universal_title": "Universell",
"universal_detail": "Mehrsprachigkeit und Dark Mode ermöglichen eine flexible Nutzung.",
"project_title": "Projektbasiert",
"project_subtitle": "Verwalte Testfälle und Testläufe projektweise. Das Dashboard zeigt den Fortschritt und die Typen der Testfälle für jedes Projekt.",
"case_management_title": "Testfallverwaltung",
"case_management_subtitle": "Erstelle Ordner in Projekten und definiere Testfälle einfach mit dem modernen UI. Dateien können angehängt werden, um Testfälle detailliert zu beschreiben.",
"run_management_title": "Testlaufverwaltung",
"run_management_subtitle": "Definierte Testfälle können mehrfach in Testläufen verwendet werden. Der Status ist visuell nachvollziehbar.",
"member_management_title": "Mitgliederverwaltung",
"member_management_subtitle": "Füge Mitglieder hinzu oder entferne sie. Rollen und Rechte können detailliert vergeben werden: 'Manager', 'Entwickler', 'Reporter'."
},
"Header": {
"title": "Open Source Test-Management-System",
"description": "Integriere und verwalte alle Softwaretests",
"docs": "Dokumentation",
"roadmap": "Fahrplan",
"projects": "Projekte",
"admin": "Administration",
"account": "Konto",
"profile_settings": "Profileinstellungen",
"signup": "Registrieren",
"signin": "Anmelden",
"signout": "Abmelden",
"links": "Links",
"languages": "Sprachen"
},
"Toast": {
"need_signed_in": "Du musst dich anmelden",
"session_expired": "Sitzung abgelaufen"
},
"Auth": {
"account": "Konto",
"signup": "Registrieren",
"signin": "Anmelden",
"or_signup": "Noch kein Konto?",
"or_signin": "Schon registriert?",
"signin_as_guest": "Oder als Gast anmelden",
"email": "E-Mail",
"username": "Benutzername",
"password": "Passwort",
"confirm_password": "Passwort (Bestätigung)",
"invalid_email": "Ungültige E-Mail",
"invalid_password": "Passwort muss mindestens 8 Zeichen haben",
"invalid_locale": "Ungültige Sprache",
"username_empty": "Benutzername ist leer",
"password_empty": "Passwort ist leer",
"password_not_match": "Passwörter stimmen nicht überein",
"email_already_exist": "E-Mail bereits registriert",
"email_not_exist": "E-Mail-Adresse nicht gefunden",
"signup_error": "Registrierung fehlgeschlagen",
"signin_error": "Anmeldung fehlgeschlagen",
"demo_page_warning": "Dies ist eine Demo-Umgebung. Alle Daten werden regelmäßig zurückgesetzt.",
"your_projects": "Deine Projekte",
"public": "Öffentlich",
"private": "Privat",
"not_own_any_projects": "Du besitzt keine Projekte.",
"find_projects": "Projekte finden",
"profile_settings": "Profileinstellungen",
"change_username": "Benutzernamen ändern",
"new_username": "Neuer Benutzername",
"update_username": "Benutzernamen aktualisieren",
"username_updated": "Benutzername erfolgreich geändert",
"change_password": "Passwort ändern",
"current_password": "Aktuelles Passwort",
"new_password": "Neues Passwort",
"confirm_new_password": "Neues Passwort bestätigen",
"update_password": "Passwort aktualisieren",
"password_updated": "Passwort erfolgreich geändert",
"change_locale": "Sprache ändern",
"update_locale": "Sprache aktualisieren",
"locale_updated": "Sprache erfolgreich geändert",
"change_avatar": "Avatar ändern",
"upload_avatar": "Avatar hochladen",
"remove_avatar": "Avatar entfernen",
"avatar_updated": "Avatar erfolgreich geändert",
"avatar_removed": "Avatar erfolgreich entfernt",
"max_file_size_5mb": "Max. Dateigröße: 5MB",
"only_images_allowed": "Nur Bilddateien erlaubt",
"current_password_incorrect": "Aktuelles Passwort ist falsch",
"update_error": "Aktualisierung fehlgeschlagen"
},
"Health": {
"health_check": "Health Check",
"status": "Status",
"ok": "OK",
"error": "Error",
"api_server": "API Server",
"unittcms_version": "UnitTCMS Version"
},
"Admin": {
"user_management": "Benutzerverwaltung",
"avatar": "Avatar",
"id": "ID",
"email": "E-Mail",
"username": "Benutzername",
"role": "Rolle",
"administrator": "Administrator",
"user": "Benutzer",
"no_users_found": "Keine Benutzer gefunden",
"quit_admin": "Administratorrolle abgeben",
"close": "Schließen",
"quit": "Abgeben",
"quit_confirm": "Wenn du deine Administratorrechte abgibst, kannst du nicht mehr auf die Administrationsseite zugreifen.",
"role_changed": "Rolle geändert",
"lost_admin_auth": "Administratorrechte verloren",
"at_least": "Mindestens ein Administrator wird benötigt",
"reset_password": "Passwort zurücksetzen",
"reset": "Zurücksetzen",
"invalid_password": "Passwort muss mindestens 8 Zeichen haben",
"password_not_match": "Passwörter stimmen nicht überein"
},
"Projects": {
"project_list": "Projektliste",
"new_project": "Neues Projekt",
"id": "ID",
"publicity": "Sichtbarkeit",
"public": "Öffentlich",
"private": "Privat",
"name": "Name",
"detail": "Beschreibung",
"last_update": "Letzte Aktualisierung",
"no_projects_found": "Keine Projekte gefunden"
},
"Project": {
"project": "Projekt",
"toggle_sidebar": "Seitenleiste anzeigen/verbergen",
"home": "Startseite",
"test_cases": "Testfälle",
"test_runs": "Testläufe",
"members": "Mitglieder",
"settings": "Einstellungen"
},
"Home": {
"home": "Startseite",
"Folders": "Ordner",
"test_cases": "Testfälle",
"test_runs": "Testläufe",
"progress": "Fortschritt",
"test_classification": "Test-Klassifizierung",
"by_type": "Nach Typ",
"by_priority": "Nach Priorität"
},
"Folders": {
"folder": "Ordner",
"new_folder": "Neuer Ordner",
"edit_folder": "Ordner bearbeiten",
"delete_folder": "Ordner löschen",
"folder_name": "Ordnername",
"folder_detail": "Ordnerbeschreibung",
"close": "Schließen",
"create": "Erstellen",
"update": "Aktualisieren",
"please_enter": "Bitte Ordnernamen eingeben",
"delete": "Löschen",
"are_you_sure": "Möchtest du den Ordner wirklich löschen?",
"no_folders_found": "Keine Ordner gefunden"
},
"Cases": {
"test_case_list": "Testfallliste",
"id": "ID",
"title": "Titel",
"priority": "Priorität",
"actions": "Aktionen",
"delete_case": "Testfall löschen",
"delete": "Löschen",
"close": "Schließen",
"are_you_sure": "Möchtest du die Testfälle wirklich löschen?",
"new_test_case": "Neu",
"export": "Exportieren",
"status": "Status",
"no_cases_found": "Keine Testfälle gefunden",
"case_title": "Testfall-Titel",
"case_description": "Testfall-Beschreibung",
"case_title_or_description": "Testfall-Titel oder Beschreibung",
"create": "Erstellen",
"please_enter": "Bitte Testfall-Titel eingeben",
"filter": "Filter",
"clear_all": "Alle löschen",
"apply": "Anwenden",
"select_priorities": "Prioritäten auswählen",
"selected": "Ausgewählt",
"type": "Typ",
"select_types": "Typen auswählen",
"cases_selected": "ausgewählte Testfälle",
"select_action": "Aktion auswählen",
"move": "Verschieben",
"clone": "Klonen",
"cases_moved": "Testfälle verschoben",
"cases_cloned": "Testfälle geklont",
"tags": "Tags",
"select_tags": "Tags auswählen",
"import": "Importieren",
"import_cases": "Testfälle importieren",
"import_available": "Du kannst Testfälle aus einer Excel-Datei (xlsx, xls) oder einer JSON-Datei (json) importieren. Die Datei muss dem vorgegebenen Format entsprechen.",
"download_template": "Vorlage herunterladen",
"download_json_sample": "JSON-Beispiel herunterladen",
"click_to_upload": "Zum Hochladen klicken",
"or_drag_and_drop": " oder per Drag & Drop",
"max_file_size": "Max. Dateigröße",
"cases_imported": "Testfälle importiert",
"create_more": "Weitere erstellen"
},
"Case": {
"back_to_cases": "Zurück zu Testfällen",
"updating": "Wird aktualisiert...",
"update": "Aktualisieren",
"updated_test_case": "Testfall aktualisiert",
"basic": "Basis",
"title": "Titel",
"please_enter_title": "Bitte Titel eingeben",
"description": "Beschreibung",
"test_case_description": "Testfall-Beschreibung",
"priority": "Priorität",
"type": "Typ",
"template": "Vorlage",
"test_detail": "Testdetails",
"preconditions": "Voraussetzungen",
"expected_result": "Erwartetes Ergebnis",
"step": "Schritt",
"text": "Text",
"steps": "Schritte",
"new_step": "Neuer Schritt",
"details_of_the_step": "Details des Schritts",
"delete_this_step": "Diesen Schritt löschen",
"insert_step": "Schritt einfügen",
"attachments": "Anhänge",
"delete": "Löschen",
"download": "Herunterladen",
"delete_file": "Datei löschen",
"click_to_upload": "Zum Hochladen klicken",
"or_drag_and_drop": " oder per Drag & Drop",
"max_file_size": "Max. Dateigröße",
"are_you_sure_leave": "Möchtest du die Seite wirklich verlassen?",
"tags": "Tags",
"create_tag": "Tag erstellen",
"max_tags_limit": "Maximale Anzahl Tags erreicht",
"tag_already_exists": "Tag existiert bereits",
"tag_created_and_added": "Tag erstellt und hinzugefügt",
"error_creating_tag": "Fehler beim Erstellen des Tags",
"error_updating_test_case": "Fehler beim Aktualisieren des Testfalls",
"search_or_create_tag": "Tag suchen oder erstellen",
"no_tags_selected": "Keine Tags ausgewählt"
},
"Runs": {
"run_list": "Testlauf-Liste",
"run": "Testlauf",
"new_run": "Neuer Testlauf",
"edit_run": "Testlauf bearbeiten",
"delete_run": "Testlauf löschen",
"id": "ID",
"name": "Name",
"description": "Beschreibung",
"last_update": "Letzte Aktualisierung",
"actions": "Aktionen",
"run_name": "Name des Testlaufs",
"run_description": "Beschreibung des Testlaufs",
"no_runs_found": "Keine Testläufe gefunden",
"close": "Schließen",
"create": "Erstellen",
"update": "Aktualisieren",
"please_enter": "Bitte Name des Testlaufs eingeben",
"are_you_sure": "Möchtest du den Testlauf wirklich löschen?",
"delete": "Löschen"
},
"Run": {
"back_to_runs": "Zurück zu Testläufen",
"updating": "Wird aktualisiert...",
"update": "Aktualisieren",
"updated_test_run": "Testlauf aktualisiert",
"export": "Exportieren",
"progress": "Fortschritt",
"refresh": "Aktualisieren",
"id": "ID",
"title": "Titel",
"please_enter": "Bitte Name des Testlaufs eingeben",
"description": "Beschreibung",
"priority": "Priorität",
"status": "Status",
"actions": "Aktionen",
"select_test_case": "Testfälle auswählen",
"test_case_selection": "Testfall-Auswahl",
"include_in_run": "In Testlauf aufnehmen",
"exclude_from_run": "Aus Testlauf entfernen",
"no_cases_found": "Keine Testfälle gefunden",
"are_you_sure_leave": "Möchtest du die Seite wirklich verlassen?",
"type": "Typ",
"test_detail": "Testdetails",
"steps": "Schritte",
"preconditions": "Voraussetzungen",
"expected_result": "Erwartetes Ergebnis",
"details_of_the_step": "Details des Schritts",
"close": "Schließen",
"filter": "Filter",
"clear_all": "Alle löschen",
"apply": "Anwenden",
"select_status": "Status auswählen",
"please_save": "Bitte Änderungen speichern",
"case_title_or_description": "Testfall-Titel oder Beschreibung",
"selected": "Ausgewählt",
"tags": "Tags",
"select_tags": "Tags auswählen",
"no_case_selected": "Kein Testfall ausgewählt",
"case_detail": "Testfall-Details",
"comments": "Kommentare",
"history": "Verlauf",
"test_record": "Testnachweis",
"download": "Herunterladen",
"delete": "Löschen",
"click_to_upload": "Zum Hochladen klicken",
"or_drag_and_drop": " oder per Drag & Drop",
"max_file_size": "Max. Dateigröße"
},
"Comments": {
"comments": "Kommentare",
"no_comments": "Keine Kommentare",
"add_comment": "Kommentar hinzufügen",
"save": "Speichern",
"cancel": "Abbrechen",
"placeholder": "Kommentar eingeben...",
"not_included_in_run": "Kann keine Kommentare zu Testfällen abgeben, die nicht im Testlauf enthalten sind",
"comment_added": "Kommentar hinzugefügt",
"failed_to_add_comment": "Fehler beim Hinzufügen des Kommentars",
"comment_updated": "Kommentar aktualisiert",
"failed_to_update_comment": "Fehler beim Aktualisieren des Kommentars",
"comment_deleted": "Kommentar gelöscht",
"failed_to_delete_comment": "Fehler beim Löschen des Kommentars"
},
"Members": {
"member_management": "Mitgliederverwaltung",
"avatar": "Avatar",
"email": "E-Mail",
"username": "Benutzername",
"role": "Rolle",
"manager": "Manager",
"developer": "Entwickler",
"reporter": "Reporter",
"delete": "Löschen",
"deleteMember": "Mitglied entfernen",
"no_members_found": "Keine Mitglieder gefunden",
"add_member": "Mitglied hinzufügen",
"user_name_or_email": "Benutzername oder E-Mail",
"close": "Schließen",
"add": "Hinzufügen",
"are_you_sure": "Möchtest du das Mitglied wirklich löschen?",
"member_added": "Mitglied hinzugefügt",
"role_changed": "Rollenänderung gespeichert",
"member_deleted": "Mitglied entfernt"
},
"Settings": {
"project_management": "Projektverwaltung",
"project_name": "Projektname",
"project_detail": "Projektbeschreibung",
"project_owner": "Projektinhaber",
"edit_project": "Projekt bearbeiten",
"publicity": "Sichtbarkeit",
"public": "Öffentlich",
"private": "Privat",
"delete_project": "Projekt löschen",
"delete": "Löschen",
"close": "Schließen",
"are_you_sure": "Möchtest du das Projekt wirklich löschen?",
"tag_management": "Tag-Verwaltung",
"tag_name": "Tag-Name",
"add_tag": "Tag hinzufügen",
"no_tags_available": "Keine Tags verfügbar",
"delete_tag": "Tag löschen",
"are_you_sure_delete_tag": "Möchtest du diesen Tag wirklich löschen?",
"tag_created": "Tag erfolgreich erstellt.",
"tag_updated": "Tag erfolgreich aktualisiert.",
"tag_deleted": "Tag erfolgreich gelöscht.",
"tag_error_empty": "Tag-Name darf nicht leer sein.",
"tag_error_min_length": "Tag-Name muss mindestens 3 Zeichen lang sein.",
"tag_error_max_length": "Tag-Name darf nicht länger als 20 Zeichen sein.",
"tag_error_create": "Tag konnte nicht erstellt werden. Bitte versuche es erneut.",
"tag_error_update": "Tag konnte nicht aktualisiert werden. Bitte versuche es erneut.",
"tag_error_delete": "Tag konnte nicht gelöscht werden. Bitte versuche es erneut."
}
}