{
"app_name": "Document Scanner",
"label_root_folder": "Stammordner",
"label_older_than": "Dateien mit Daten älter als markieren",
"placeholder_folder": "/pfad/zu/dokumenten",
"btn_scan": "Scan starten",
"btn_stop": "Scan stoppen",
"toggle_anonymise": "Anonymisieren",
"toggle_mask": "Nur Ausweis-Nr. maskieren",
"toggle_blur_faces": "Gesichter unscharf",
"toggle_skip_cloud": "Nur-Cloud-Dateien überspringen",
"toggle_ocr": "OCR für gescannte PDFs",
"label_face_sensitivity": "Gesichtsempfindlichkeit",
"face_sensitivity_high": "Hoch",
"face_sensitivity_low": "Niedrig",
"face_sensitivity_hint": "Höher = weniger Fehlerkennungen",
"label_ocr_language": "OCR-Sprache",
"label_ocr_dpi": "DPI (Qualität vs. Geschwindigkeit)",
"lang_danish": "Dänisch",
"lang_danish_english": "Dänisch + Englisch",
"lang_english": "Englisch",
"lang_norwegian": "Norwegisch",
"lang_swedish": "Schwedisch",
"lang_german": "Deutsch",
"lang_french": "Französisch",
"lang_dutch": "Niederländisch",
"lang_spanish": "Spanisch",
"lang_italian": "Italienisch",
"lang_portuguese": "Portugiesisch",
"lang_finnish": "Finnisch",
"lang_polish": "Polnisch",
"lang_czech": "Tschechisch",
"lang_russian": "Russisch",
"lang_arabic": "Arabisch",
"lang_chinese_simplified": "Chinesisch (vereinfacht)",
"lang_chinese_traditional": "Chinesisch (traditionell)",
"lang_japanese": "Japanisch",
"lang_korean": "Koreanisch",
"time_any": "Beliebig",
"time_1y": "1 Jahr",
"time_2y": "2 Jahre",
"time_5y": "5 Jahre",
"time_10y": "10 Jahre",
"stat_scanned": "Gescannte Dateien",
"stat_flagged": "Markierte",
"stat_high_risk": "Hohes Risiko",
"stat_cpr": "Ausweis-Nr. gefunden",
"col_file": "Datei",
"col_cpr": "Ausweis-Nr.",
"col_oldest": "Ältestes Datum",
"col_risk": "Risiko",
"col_action": "Aktion",
"col_detail": "Details",
"sort_name_az": "Name A–Z",
"sort_name_za": "Name Z–A",
"sort_cpr_desc": "Anzahl Ausweis-Nr. ↓",
"sort_cpr_asc": "Anzahl Ausweis-Nr. ↑",
"sort_oldest_desc": "Ältestes Datum ↓",
"sort_risk_desc": "Risiko ↓",
"sort_size_desc": "Größe ↓",
"filter_all_types": "Alle Typen",
"filter_pdf": "PDF",
"filter_word": "Word",
"filter_excel": "Excel",
"filter_image": "Bild",
"filter_shared_cpr": "⚠ Geteilte Ausweis-Nr.",
"placeholder_search": "Dateiname suchen…",
"btn_anonymise": "Anonymisieren",
"btn_mask": "Ausweis-Nr. maskieren",
"btn_blur": "Unscharf",
"btn_preview": "Vorschau",
"btn_show_in_folder": "Im Ordner anzeigen",
"btn_move_to_trash": "In den Papierkorb",
"btn_undo": "Rückgängig",
"btn_export_csv": "CSV",
"btn_select_all": "Alle auswählen",
"btn_anonymise_flagged": "Markierte anonymisieren",
"btn_anonymise_all": "Alle markierten anonymisieren",
"btn_cancel": "Abbrechen",
"btn_close": "Schließen",
"btn_clear": "Leeren",
"btn_export_excel": "Bericht als Excel exportieren",
"btn_audit_log_short": "Protokoll",
"btn_delete_selected": "Auswahl löschen",
"btn_about": "Über",
"preview_original": "Original",
"preview_processed": "Verarbeitet",
"preview_anonymise": "Anonymisieren → Vorschau",
"preview_mask": "Ausweis-Nr. maskieren → Vorschau",
"preview_blur_faces": "{n} Gesicht(er) unscharf → Vorschau",
"preview_no_faces": "✓ Keine Gesichter erkannt",
"preview_scanning_faces": "Gesichter werden gesucht…",
"preview_processing_faces": "Gesichter werden verarbeitet…",
"preview_rendering": "Wird geladen…",
"preview_click_hint": "Auf ein Dokument klicken, um die Vorschau anzuzeigen",
"preview_error": "Vorschaufehler",
"preview_unavailable": "Vorschau nicht verfügbar",
"preview_not_available": "Vorschau für diesen Dateityp nicht verfügbar",
"scan_preparing": "Vorbereitung…",
"scan_scanning": "Wird gescannt…",
"scan_face_scanning": "{total} Datei(en) auf Gesichter prüfen…",
"scan_face_progress": "Gesichter: {index} / {total} — {file}",
"scan_eta": "{eta} verbleibend",
"scan_stopped": "Scan gestoppt.",
"empty_flagged": "Keine markierten Dokumente",
"empty_flagged_detail": "Scan starten, um markierte Dokumente anzuzeigen",
"empty_flagged_found": "Keine markierten Dokumente gefunden.",
"empty_filter": "Keine Dateien entsprechen dem Filter",
"empty_scan_hint": "Ordnerpfad eingeben und klicken",
"no_audit": "Noch keine Protokolleinträge",
"dialog_delete_title": "Dateien löschen?",
"dialog_delete_confirm": "In den Papierkorb",
"dialog_delete_body": "Die ausgewählten Dateien werden dauerhaft von der Festplatte gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
"all_trashed": "Alle markierten Dokumente wurden in den Papierkorb verschoben.",
"confirm_clear_audit": "Gesamtes Protokoll leeren? Dies kann nicht rückgängig gemacht werden.",
"btn_audit_log": "Protokoll",
"audit_cleared": "Protokoll geleert",
"failed_audit": "Protokoll konnte nicht geladen werden",
"audit_action_scan": "Scan",
"audit_action_redact": "Schwärzung",
"audit_action_blur_faces": "Gesichtsunschärfe",
"audit_action_delete": "Löschen",
"audit_action_restore": "Wiederherstellen",
"audit_action_export": "Export",
"audit_files": "Dateien",
"audit_flagged": "markiert",
"audit_high_risk": "hohes Risiko",
"audit_regions": "Bereiche",
"audit_faces": "Gesichter",
"audit_permanent": "dauerhaft",
"audit_trash": "Papierkorb",
"audit_files_restored": "Datei(en) wiederhergestellt",
"about_title": "Über",
"label_python": "Python",
"label_spacy": "spaCy-Modell",
"label_tesseract": "Tesseract",
"label_pymupdf": "PyMuPDF",
"label_opencv": "OpenCV",
"no_model": "kein Modell installiert",
"not_installed": "nicht installiert",
"risk_high": "HOCH",
"risk_medium": "MITTEL",
"risk_low": "NIEDRIG",
"reason_cpr_number": "Ausweis-Nr.",
"reason_cpr_numbers": "Ausweis-Nummern",
"reason_cpr_confirmed": "Ausweis-Nr. mit Schlüsselwortkontext",
"reason_unique_individuals": "eindeutige Personen",
"reason_cpr_shared": "Ausweis-Nr. in {n} Dateien geteilt",
"reason_data_10y": "Daten > 10 Jahre alt",
"reason_data_5y": "Daten > 5 Jahre alt",
"badge_face": "Gesicht",
"badge_shared": "geteilt",
"badge_archive": "Archiv",
"badge_shared_cpr": "Geteilte Ausweis-Nr.",
"lbl_also_in": "auch in",
"badge_anonymised": "✓ anonymisiert",
"badge_masked": "✓ maskiert",
"badge_blurred": "✓ unscharf gemacht",
"lbl_anonymised": "Anonymisiert",
"lbl_masked": "Ausweis-Nr. maskiert",
"lbl_processing": "Wird verarbeitet…",
"lbl_error": "Fehler",
"lbl_no_pii": "Keine Änderungen — keine personenbez. Daten gefunden",
"lbl_working": "Wird bearbeitet…",
"lbl_stopping": "Wird gestoppt…",
"lbl_loading": "Wird geladen…",
"lbl_blurred": "Unscharf gemacht",
"lbl_none": "Keine",
"lbl_size": "Größe",
"lbl_time": "Zeit",
"lbl_space": "Leerzeichen",
"lbl_scanner": "Scanner",
"lbl_document": "Dokument",
"lbl_folder": "Ordner",
"lbl_no_files_selected": "Keine Dateien ausgewählt",
"lbl_selected_1": "Datei ausgewählt",
"lbl_selected_n": "Dateien ausgewählt",
"lbl_root": "Stamm",
"lbl_root_folder": "Stammordner",
"lbl_scanning": "Scannen:",
"banner_all_clean": "Keine Funde",
"banner_files_scanned": "Datei(en) gescannt, keine Ausweis-Nr. gefunden",
"banner_need_attention": "Datei(en) erfordern Aufmerksamkeit von",
"banner_scanned": "gescannt",
"summary_face_blur": "Bild(er) zur Gesichtsunschärfe",
"kbd_select": "auswählen",
"kbd_delete": "löschen",
"kbd_close_preview": "Vorschau schließen",
"kbd_select_all": "alle auswählen",
"lbl_flagged_docs_1": "markiertes Dokument",
"lbl_flagged_docs_n": "markierte Dokumente",
"btn_deselect_all": "Alle abwählen",
"filter_high_risk": "🔴 Hohes Risiko",
"filter_in_archive": "📦 Im Archiv",
"log_starting_scan": "Scan gestartet von",
"log_found_files": "{n} Datei(en) gefunden",
"log_cloud_skipped": "Nur-Cloud-Dateien übersprungen",
"log_faces_detected": "Gesicht(er) erkannt",
"log_ocr_pages": "Seite(n)",
"log_pages_skipped": "Bildseite(n) übersprungen (OCR aktivieren)",
"log_scan_complete": "Scan abgeschlossen",
"log_files_with_cpr": "Datei(en) mit Ausweis-Nr.",
"log_no_faces_in": "Keine Gesichter erkannt in",
"pii_phone": "Telefon",
"pii_email": "E-Mail",
"pii_iban": "IBAN",
"pii_bank_account": "Bankkonto",
"pii_name": "Name",
"pii_address": "Adresse",
"pii_org": "Org",
"lbl_other_pii": "Weitere PII",
"lbl_found": "gefunden",
"btn_clear_results_cache": "Ergebniscache leeren",
"btn_clear_ocr_cache": "OCR-Cache leeren",
"confirm_clear_results_cache": "Alle gespeicherten Scan-Ergebnisse löschen? Das Raster wird geleert.",
"confirm_clear_ocr_cache": "OCR-Cache leeren? Beim nächsten Scan wird OCR erneut durchgeführt.",
"log_cache_cleared": "Ergebniscache geleert",
"log_ocr_cache_cleared": "OCR-Cache geleert",
"m365_app_name": "GDPRScanner",
"m365_sources": "Quellen",
"m365_options": "Optionen",
"m365_accounts": "Konten",
"m365_stats": "Statistik",
"m365_src_email": "Outlook",
"m365_src_onedrive": "OneDrive",
"m365_src_sharepoint": "SharePoint",
"m365_src_teams": "Teams",
"m365_opt_date_from": "E-Mails/Dateien scannen ab",
"m365_opt_date_from_hint": "Leer lassen, um alles zu scannen",
"m365_opt_email_body": "E-Mail-Text scannen",
"m365_opt_attachments": "Anhänge scannen",
"m365_opt_max_attach": "Max. Anhangsgröße (MB)",
"m365_opt_max_emails": "Max. E-Mails pro Benutzer",
"m365_connect_title": "Mit Microsoft 365 verbinden",
"m365_connect_sub": "Geben Sie Ihre Azure-App-Anmeldedaten ein.",
"m365_label_client_id": "Client-ID (Anwendungs-ID)",
"m365_label_tenant_id": "Mandanten-ID",
"m365_label_client_secret": "Client-Geheimnis",
"m365_secret_hint": "(optional — ermöglicht organisationsweites Scannen)",
"m365_secret_desc_app": "App greift direkt auf Daten aller Benutzer zu (Anwendungsberechtigungen, keine Anmeldung erforderlich).",
"m365_secret_desc_delegated": "Sie melden sich als sich selbst an und können nur eigene Daten scannen, sofern Sie kein globaler Administrator sind.",
"m365_btn_connect": "Verbinden",
"m365_device_code_go": "Gehen Sie zu",
"m365_device_code_enter": "und geben Sie diesen Code ein",
"m365_btn_cancel_auth": "Abbrechen",
"m365_btn_reconfigure": "Neu konfigurieren",
"m365_btn_sign_out": "Abmelden",
"m365_mode_app": "🔑 App-Modus — organisationsweit",
"m365_mode_delegated": "Delegiert",
"m365_search_users": "Benutzer suchen…",
"m365_add_account_label": "Konto manuell hinzufügen:",
"m365_add_account_placeholder": "E-Mail oder UPN",
"m365_admin_note": "Es wird nur Ihr Konto angezeigt. Um alle Benutzer aufzulisten, muss ein Administrator User.Read.All im Azure Portal genehmigen oder Konten manuell unten hinzufügen.",
"m365_btn_scan": "Scannen",
"m365_btn_stop": "Stop",
"m365_pill_flagged": "markiert",
"m365_pill_scanned": "gescannt",
"m365_filter_all_sources": "Alle Quellen",
"m365_filter_email": "Outlook",
"m365_filter_onedrive": "OneDrive",
"m365_filter_sharepoint": "SharePoint",
"m365_filter_teams": "Teams",
"m365_empty_hint": "Quellen auswählen und auf Scannen klicken,
um Dokumente mit Ausweis-Nr. zu finden",
"m365_stat_flagged": "Markiert",
"m365_stat_cpr": "Treffer",
"m365_preview_open": "In M365 öffnen ↗",
"m365_preview_close": "Schließen",
"m365_auth_mode_app": "Auth-Modus: Anwendung (Client-Anmeldedaten — organisationsweit)",
"m365_auth_mode_delegated": "Auth-Modus: Delegiert (Gerätecode — nur angemeldeter Benutzer)",
"m365_phase_teams_index": "Teams-Mitgliedschaftsindex wird erstellt…",
"m365_phase_sharepoint": "SharePoint-Dateien werden gesammelt…",
"m365_btn_about": "Info",
"m365_stat_scanned": "Gescannt",
"m365_no_users_found": "Keine Benutzer gefunden",
"m365_no_users_match": "Keine Benutzer entsprechen",
"m365_no_cpr_found": "Keine Ausweis-Nummern gefunden.",
"m365_no_matches": "Keine Treffer",
"m365_btn_export_excel": "Excel exportieren",
"m365_export_no_data": "Keine Ergebnisse zum Exportieren.",
"m365_phase_emails": "Outlook-Nachrichten werden gesammelt",
"m365_phase_onedrive": "OneDrive wird gesammelt",
"m365_phase_teams": "Teams werden gesammelt",
"m365_preset_1yr": "1 J.",
"m365_preset_2yr": "2 J.",
"m365_preset_5yr": "5 J.",
"m365_preset_10yr": "10 J.",
"m365_preset_any": "Alle",
"m365_auth_mode_app_short": "Application permissions · client credentials",
"m365_auth_mode_delegated_short": "Delegated permissions · device code flow",
"m365_info_permissions": "Berechtigungen",
"m365_info_signin": "Anmeldung erforderlich",
"m365_info_scope": "Umfang",
"m365_info_scope_org": "Alle Benutzer im Mandanten",
"m365_info_scope_user": "Nur angemeldeter Benutzer",
"m365_info_consent": "Administratorzustimmung",
"m365_info_required": "Erforderlich",
"m365_info_admin": "Global Administrator",
"m365_info_expands_scope": "Erweitert Umfang auf alle Benutzer",
"m365_info_no": "Nein",
"m365_info_yes": "Ja",
"m365_info_app_desc": "Die App authentifiziert sich mit einem Client Secret und greift direkt über Microsoft Graph auf die Daten aller Benutzer zu — kein interaktives Anmelden erforderlich. Ideal für automatisierte oder geplante Scans.",
"m365_info_delegated_desc": "Die App handelt im Namen des angemeldeten Benutzers über den device code flow. Standardmäßig sind nur die Daten dieses Benutzers zugänglich. Ein Global Administrator kann eine umfassendere Zustimmung erteilen.",
"m365_filter_search": "Suchen…",
"m365_filter_clear": "Löschen",
"m365_btn_list_view": "Liste",
"m365_btn_grid_view": "Raster",
"m365_log_found_items": "Gefunden",
"m365_log_items_to_scan": "Element(e) zum Scannen",
"m365_log_starting_scan": "Scan starten:",
"m365_log_accounts": "Konto(en)",
"m365_btn_bulk_delete": "Löschen",
"m365_bulk_delete_title": "Massenlöschung",
"m365_bulk_delete_sub": "E-Mails werden in „Gelöschte Elemente\" verschoben · Dateien kommen in den Papierkorb",
"m365_bulk_filter_heading": "Filter für zu löschende Elemente",
"m365_bulk_filter_source": "Quellentyp",
"m365_bulk_filter_min_cpr": "Min. CPR-Treffer",
"m365_bulk_filter_older_than": "Älter als Datum",
"m365_bulk_no_match": "Keine Elemente entsprechen diesen Kriterien.",
"m365_bulk_match_count": "Element(e) werden gelöscht",
"m365_bulk_confirm_q": "Element(e) werden dauerhaft gelöscht. Fortfahren?",
"m365_bulk_deleting": "Löschen…",
"m365_bulk_deleted": "gelöscht",
"m365_bulk_failed": "fehlgeschlagen",
"m365_bulk_delete_confirm": "Passende Elemente löschen",
"m365_delete_confirm": "Löschen",
"m365_delete_warning": "Dies kann nicht rückgängig gemacht werden.",
"m365_log_deleted": "Gelöscht:",
"m365_log_delete_failed": "Löschen fehlgeschlagen:",
"m365_log_bulk_done": "Massenlöschung:",
"m365_log_older_than": "älter als",
"m365_eta_left": "verbleibend",
"btn_all": "Alle",
"btn_errors": "Fehler",
"log_copy": "Kopieren",
"btn_none": "Keine",
"m365_btn_resume": "Fortsetzen",
"m365_btn_start_fresh": "Neu starten",
"m365_resume_banner": "Vorheriger Scan unterbrochen — {scanned} gescannt, {flagged} gefunden",
"m365_log_resuming": "Scan fortsetzen:",
"m365_log_already_scanned": "bereits gescannt — übersprungen",
"m365_resuming": "Fortsetzen — bereits gescannte Elemente werden übersprungen…",
"m365_opt_delta": "Delta-Scan",
"m365_opt_delta_hint": "Nur geänderte Elemente (nach erstem Vollscan)",
"m365_delta_tokens_saved": "Tokens gespeichert",
"m365_delta_clear": "Tokens löschen",
"m365_delta_cleared": "Delta-Tokens gelöscht — nächster Scan wird ein Vollscan.",
"m365_delta_mode": "Delta-Modus — nur geänderte Elemente werden abgerufen…",
"m365_smtp_title": "✉ Bericht senden",
"m365_smtp_desc": "Excel-Bericht nach dem Scan per E-Mail senden.",
"m365_smtp_host": "SMTP-Server",
"m365_smtp_port": "Port",
"m365_smtp_user": "Benutzername",
"m365_smtp_pass": "Passwort",
"m365_smtp_from": "Absenderadresse",
"m365_smtp_tls": "STARTTLS",
"m365_smtp_ssl": "SSL",
"m365_smtp_recipients": "Empfänger",
"m365_smtp_recipients_hint": "Komma- oder semikolongetrennt",
"m365_smtp_save": "Speichern",
"m365_smtp_send": "Jetzt senden",
"m365_smtp_saved": "Einstellungen gespeichert.",
"m365_smtp_sending": "Senden…",
"m365_smtp_sent": "Bericht gesendet.",
"m365_smtp_no_recipients": "Mindestens einen Empfänger eingeben.",
"m365_smtp_configure": "Konfigurieren",
"m365_smtp_from_hint": "(optional — Standard ist Benutzername)",
"m365_subject_title": "🔍 Betroffenenperson",
"m365_subject_btn": "Nachschlagen",
"m365_subject_desc": "Alle markierten Elemente mit einer bestimmten CPR-Nummer finden. Die CPR-Nummer wird vor der Abfrage gehasht und nie im Klartext gespeichert.",
"m365_subject_placeholder": "TTMMJJ-XXXX",
"m365_subject_search": "Suchen",
"m365_subject_searching": "Suche…",
"m365_subject_found": "Element(e) gefunden",
"m365_subject_not_found": "Keine markierten Elemente für diese CPR-Nummer gefunden.",
"m365_subject_delete_all": "Alle für diese Person löschen",
"m365_subject_delete_confirm": "Element(e) werden dauerhaft gelöscht. Fortfahren?",
"m365_disposition_label": "Disposition",
"m365_disp_unreviewed": "Nicht geprüft",
"m365_disp_retain_legal": "Aufbewahren — gesetzliche Pflicht",
"m365_disp_retain_legit": "Aufbewahren — berechtigtes Interesse",
"m365_disp_retain_contract": "Aufbewahren — Vertrag",
"m365_disp_delete_sched": "Löschen — geplant",
"m365_disp_personal_use": "Privatgebrauch — außerhalb des Geltungsbereichs",
"m365_disp_deleted": "Gelöscht",
"m365_disp_save": "Speichern",
"m365_disp_saved": "✓ Gespeichert",
"m365_opt_retention": "Aufbewahrungsrichtlinie",
"m365_opt_retention_hint": "Elemente älter als N Jahre markieren und löschen",
"m365_ret_years": "Aufbewahrungsjahre",
"m365_ret_fy_end": "Geschäftsjahresende",
"m365_ret_fy_rolling": "Rollierend (ab heute)",
"m365_ret_fy_dec": "31. Dez. (Bogføringsloven)",
"m365_ret_fy_jun": "30. Jun.",
"m365_ret_fy_mar": "31. Mär.",
"m365_ret_mode_rolling": "rollierend",
"m365_ret_mode_fiscal": "Geschäftsjahr",
"m365_ret_cutoff_hint": "Elemente geändert vor",
"m365_ret_cutoff_flagged": "werden als überfällig markiert",
"m365_overdue_found": "überfällige(s) Element(e) gefunden",
"m365_bulk_overdue_btn": "Übrfällige filtern",
"m365_bulk_clear_filters": "Filter löschen",
"m365_btn_export_article30": "Art.30",
"m365_article30_done": "Artikel-30-Bericht bereit.",
"a30_title": "DSGVO Artikel 30",
"a30_subtitle": "Verzeichnis von Verarbeitungstätigkeiten",
"a30_generated": "Erstellt",
"a30_confidential": "Vertraulich — DSGVO-Compliance-Dokument",
"a30_s1": "1. Zusammenfassung",
"a30_scan_date": "Scan-Datum",
"a30_items_scanned": "Gescannte Elemente",
"a30_flagged": "Markierte Elemente",
"a30_cpr_hits": "CPR-Treffer gesamt",
"a30_data_subjects": "Geschätzte betroffene Personen",
"a30_overdue": "Überfällige Elemente (>5 J.)",
"a30_by_source": "Aufschlüsselung nach Quelle",
"a30_col_source": "Quelle",
"a30_col_items": "Elemente",
"a30_col_cpr": "CPR-Treffer",
"a30_col_overdue": "Überfällig",
"a30_s2": "2. Identifizierte Kategorien personenbezogener Daten",
"a30_s2_intro": "Folgende Kategorien personenbezogener Daten wurden beim Scan erkannt.",
"a30_col_gdpr_class": "DSGVO-Klassifizierung",
"a30_cpr_label": "CPR-Nummern (dän. Personalausweis-Nr.)",
"a30_cpr_class": "Art. 9 — nationales Kennzeichen",
"a30_pii_class_9": "Art. 9 — Gesundheit/sensibel",
"a30_pii_class_4": "Art. 4 — personenbezogene Daten",
"a30_s3": "3. Datenbestand",
"a30_s3_intro": "Alle markierten Elemente sind unten mit Speicherort, Aufbewahrungsstatus und Compliance-Disposition aufgeführt.",
"a30_col_name": "Name / Betreff",
"a30_col_account": "Konto",
"a30_col_modified": "Geändert",
"a30_col_disp": "Disposition",
"a30_more_items": "weitere Elemente nicht angezeigt. Für die vollständige Liste den Excel-Bericht exportieren.",
"a30_s4": "4. Aufbewahrungsanalyse",
"a30_s4_intro": "Folgende Elemente überschreiten den 5-jährigen Aufbewahrungszeitraum und sollten gemäß DSGVO Artikel 5(1)(e) — Speicherbegrenzung — auf Löschung geprüft werden.",
"a30_s5": "5. Compliance-Trend",
"a30_s5_intro": "Anzahl markierter Elemente über die letzten Scans (neuester zuerst).",
"a30_col_scan_date": "Scan-Datum",
"a30_col_scan_type": "Scan-Typ",
"a30_scan_delta": "Delta",
"a30_scan_full": "Vollständig",
"a30_s6": "6. Methodik und Rechtsgrundlage",
"a30_method_title": "Scan-Methodik",
"a30_method_1": "CPR-Nummern werden per Mustererkennung gegen das offizielle dänische CPR-Format (TTMMJJ-XXXX) mit vollständiger Datumsvalidierung erkannt.",
"a30_method_2": "Weitere personenbezogene Daten (Telefonnummern, E-Mail-Adressen, IBANs, Bankkontonummern, Namen, Adressen und Organisationen) werden per Regex und spaCy NER erkannt.",
"a30_method_3": "CPR-Nummern in der Datenbank dieses Dokuments sind SHA-256-gehasht und werden nie im Klartext gespeichert.",
"a30_method_4": "Die Überprüfung umfasst Exchange-Postfächer (alle Ordner einschl. Gesendete Elemente), OneDrive, SharePoint und Microsoft Teams-Kanaldateien über die Microsoft Graph API. Bei Verbindung umfasst das Google Workspace-Scanning Gmail und Google Drive über ein Dienstkonto mit domänenweiter Delegierung. Lokale und netzwerkbasierte Dateifreigaben (SMB) werden direkt gescannt.",
"a30_gdpr_title": "Referenzierte DSGVO-Artikel",
"a30_gdpr_1": "Artikel 5(1)(c) — Datenminimierung: nur notwendige Daten dürfen aufbewahrt werden",
"a30_gdpr_2": "Artikel 5(1)(e) — Speicherbegrenzung: Daten dürfen nicht länger als nötig aufbewahrt werden",
"a30_gdpr_3": "Artikel 9 — Besondere Kategorien: Gesundheitsdaten, Strafregister, Gewerkschaftszugehörigkeit usw. erfordern eine ausdrückliche Rechtsgrundlage",
"a30_gdpr_4": "Artikel 15 — Auskunftsrecht: betroffene Personen können Auskunft über ihre Daten verlangen",
"a30_gdpr_5": "Artikel 17 — Recht auf Löschung: betroffene Personen können Löschung verlangen",
"a30_gdpr_6": "Artikel 30 — Verzeichnis von Verarbeitungstätigkeiten: dieses Dokument erfüllt die Pflicht",
"a30_disp_unreviewed": "Nicht geprüft",
"a30_disp_retain_legal": "Aufbewahren — Gesetzliche Pflicht",
"a30_disp_retain_legit": "Aufbewahren — Berechtigtes Interesse",
"a30_disp_retain_contract": "Aufbewahren — Vertrag",
"a30_disp_delete_sched": "Löschen — Geplant",
"a30_disp_personal_use": "Personal use — out of GDPR scope (Art. 2(2)(c))",
"a30_disp_deleted": "Gelöscht",
"a30_s6_short": "Methodik und Rechtsgrundlage",
"m365_role_all": "Alle",
"m365_role_staff": "Personal",
"m365_role_student": "Schüler",
"a30_s_dellog": "Löschprotokoll",
"a30_dellog_intro": "Element(e) mit personenbezogenen Daten wurden über GDPRScanner gelöscht. Dieses Protokoll erfüllt die Rechenschaftspflicht gemäß DSGVO Art. 5 Abs. 2.",
"a30_dellog_by_reason": "Löschungen nach Grund",
"a30_dellog_records": "Löscheinträge",
"a30_col_reason": "Grund",
"a30_col_count": "Anzahl",
"a30_col_deleted_at": "Gelöscht am",
"a30_col_deleted_by": "Gelöscht von",
"a30_reason_manual": "Manuell (einzelne Karte)",
"a30_reason_bulk": "Massенlöschung",
"a30_reason_retention": "Aufbewahrungsrichtlinie",
"a30_reason_dsr": "Löschanfrage der betroffenen Person (Art. 17)",
"m365_filter_all_disp": "Alle Dispositionen",
"m365_trend_title": "Trend",
"m365_trend_flagged": "Markiert",
"m365_trend_overdue": "Überfällig",
"m365_filter_all_transfer": "Alle Elemente",
"m365_filter_ext_recipient": "Externer Empfänger",
"m365_filter_ext_share": "Extern freigegeben",
"m365_filter_shared": "Freigegeben",
"m365_badge_ext_recipient": "Extern",
"m365_badge_shared": "Freigegeben",
"a30_s_special": "Besondere Kategorien personenbezogener Daten (Artikel 9)",
"a30_special_intro": "Element(e) als besondere Kategorie gemäß DSGVO Artikel 9 erkannt. Erfordert explizite Rechtsgrundlage und Datenschutz-Folgenabschätzung (DSFA).",
"a30_special_by_cat": "Erkannte Kategorien",
"a30_special_items": "Betroffene Elemente (bis zu 50)",
"a30_col_category": "Kategorie",
"a30_cat_health": "Gesundheitsdaten (Art. 9)",
"a30_cat_mental": "Psychische Gesundheit (Art. 9)",
"a30_cat_criminal": "Strafregister (Art. 10)",
"a30_cat_union": "Gewerkschaftsmitgliedschaft (Art. 9)",
"a30_cat_religion": "Religiöse Überzeugungen (Art. 9)",
"a30_cat_ethnicity": "Ethnische Herkunft (Art. 9)",
"a30_cat_political": "Politische Meinungen (Art. 9)",
"a30_cat_biometric": "Biometrische Daten (Art. 9)",
"a30_cat_sexual": "Sexuelle Orientierung (Art. 9)",
"m365_filter_all_special": "Alle Risikostufen",
"m365_filter_special_only": "Art. 9 besondere Kategorien",
"m365_badge_special": "Art.9",
"m365_phase_scanning": "Scanne…",
"a30_special_cat": "Besondere Kategorien (Artikel 9)",
"a30_special_cat_note": "Diese Elemente enthalten Gesundheits-, Straf-, biometrische, religiöse, ethnische, gewerkschaftliche, politische oder sexuelle Daten. Eine ausdrückliche Rechtsgrundlage (Art. 9 Abs. 2) und ggf. eine DSFA (Art. 35) sind erforderlich.",
"a30_col_special": "Art. 9",
"a30_pii_phone": "Telefonnummern",
"a30_pii_email": "E-Mail-Adressen",
"a30_pii_iban": "IBAN-Bankkontonummern",
"a30_pii_bank": "Bankkontonummern",
"a30_pii_name": "Personennamen (NER)",
"a30_pii_address": "Adressen (NER)",
"a30_pii_org": "Organisationen (NER)",
"a30_col_cpr_short": "CPR",
"a30_inv_staff": "Personal / Lehrkräfte",
"a30_inv_students": "Schüler",
"a30_student_consent_note": "Hinweis: Schülerkonten in dänischen Folkeskoler (Schüler unter 15 Jahren) erfordern die elterliche Einwilligung zur Verarbeitung personenbezogener Daten gemäß Databeskyttelsesloven §6. Elemente in Schülerkonten dürfen nicht automatisch gelöscht werden — jede Maßnahme erfordert die Genehmigung der Schulleitung und für Schüler unter 15 Jahren die Benachrichtigung der Eltern oder Erziehungsberechtigten als Rechteinhaber gemäß DSGVO Artikel 8.",
"m365_profile_label": "Profil:",
"m365_profile_placeholder": "— Profil wählen —",
"m365_profile_save_tip": "Aktuelle Einstellungen als Profil speichern",
"m365_profile_save_prompt": "Profilname:",
"m365_profile_applied": "Profil geladen",
"m365_profile_saved": "Profil gespeichert",
"m365_profile_manage_btn": "Profile",
"m365_profile_clear_btn": "Löschen",
"m365_profile_save_btn": "Speichern",
"m365_profile_manage_title": "⚙ Profile verwalten",
"m365_profile_no_profiles": "Noch keine gespeicherten Profile. Verwenden Sie 💾, um die aktuellen Seitenleisteneinstellungen als Profil zu speichern.",
"m365_profile_use": "Verwenden",
"m365_profile_edit": "Bearbeiten",
"m365_profile_duplicate": "Duplizieren",
"m365_profile_delete": "Löschen",
"m365_profile_delete_confirm": "Profil löschen",
"m365_profile_duplicated": "Profil dupliziert",
"m365_profile_deleted": "Profil gelöscht",
"m365_profile_never": "nie",
"m365_profile_last_run": "Zuletzt ausgeführt",
"m365_profile_name_placeholder": "Profilname",
"m365_profile_desc_placeholder": "Beschreibung (optional)",
"m365_profile_name_required": "Profilname ist erforderlich.",
"m365_db_title": "🗄 Datenbank",
"m365_db_export": "Exportieren",
"m365_db_import": "Importieren",
"m365_db_export_error": "Export fehlgeschlagen",
"m365_db_exported": "Datenbank exportiert",
"m365_db_import_title": "📥 Datenbank importieren",
"m365_db_import_desc": "Wählen Sie eine zuvor exportierte .zip-Datei. Zusammenführen fügt Dispositionen und Löschprotokoll hinzu. Ersetzen löscht alles und stellt vollständig wieder her.",
"m365_db_import_file": "ZIP-Datei",
"m365_db_import_mode": "Modus:",
"m365_db_import_merge": "Zusammenführen (sicher)",
"m365_db_import_replace": "Ersetzen (vollständige Wiederherstellung)",
"m365_db_import_replace_warn": "⚠ Der Ersetzungsmodus löscht alle vorhandenen Scandaten vor der Wiederherstellung. Stellen Sie sicher, dass Sie zuerst eine Sicherungskopie von ~/.gdpr_scanner.db haben.",
"m365_db_import_replace_confirm": "Der Ersetzungsmodus löscht ALLE vorhandenen Scandaten und stellt aus dem Archiv wieder her.\\n\\nStellen Sie sicher, dass Sie eine manuelle Sicherungskopie von ~/.gdpr_scanner.db haben.\\n\\nFortfahren?",
"m365_db_import_no_file": "Bitte wählen Sie zuerst eine ZIP-Datei aus.",
"m365_db_importing": "Importiere…",
"m365_db_imported": "Importiert",
"m365_db_import_run": "Importieren",
"m365_opt_scan_photos": "Fotos nach Gesichtern durchsuchen",
"m365_opt_scan_photos_hint": "Markiert Bilder mit erkannten Gesichtern als biometrische Daten gem. Art. 9. Langsamer — bei Bedarf aktivieren.",
"m365_opt_skip_gps": "GPS in Bildern ignorieren",
"m365_opt_skip_gps_hint": "Bilder mit GPS-Koordinaten werden nicht markiert — nützlich beim Scannen von Schüler-Konten, deren Smartphones Standort in jedes Foto einbetten.",
"m365_opt_min_cpr": "Min. CPR-Anzahl pro Datei",
"m365_opt_min_cpr_hint": "Dateien mit weniger eindeutigen CPR-Nummern als dieser Schwellenwert werden nicht gemeldet. Auf 2 setzen, um Falsch-Positive zu vermeiden, wenn Schüler eigene CPR-Nummern in Dateien haben.",
"m365_filter_photo_only": "📷 Fotos / biometrisch",
"m365_badge_faces": "Gesichter",
"a30_photo_items": "Fotos mit erkannten Gesichtern (Art. 9 biometrisch)",
"a30_photo_note": "Fotografien identifizierbarer Personen sind biometrische Daten gemäß Art. 9 DSGVO. Die Aufbewahrung erfordert eine dokumentierte Rechtsgrundlage gemäß Art. 9(2). Für Schulfotos von Schülern unter 15 Jahren ist die elterliche Einwilligung erforderlich (Databeskyttelsesloven §6). Siehe Leitfaden des Datatilsynet zur Schulfotografie.",
"a30_s_photos": "Fotografien und biometrische Daten (Artikel 9)",
"a30_photo_intro": "Bilddatei(en) mit erkanntem(n) Gesicht(ern) wurden beim Scan gefunden. Fotografien identifizierbarer Personen stellen biometrische Daten gemäß DSGVO Artikel 9 dar und unterliegen demselben erhöhten Schutz wie Gesundheits- oder Strafregisterdaten.",
"a30_photo_guidance": "Aufbewahrungshinweise",
"a30_photo_g1": "Fotos dürfen nur aufbewahrt werden, solange der ursprüngliche Zweck gültig ist (Art. 5(1)(b) — Zweckbindung).",
"a30_photo_g2": "Schüler unter 15 Jahren benötigen die elterliche Einwilligung (Databeskyttelsesloven §6). Die Einwilligung muss freiwillig, spezifisch und dokumentiert sein.",
"a30_photo_g3": "Fotos auf öffentlich zugänglichen Websites müssen umgehend entfernt werden, wenn eine Person die Organisation verlässt oder ihre Einwilligung widerruft (Art. 17 — Recht auf Löschung).",
"a30_photo_g4": "Historische/Archivnutzung kann eine längere Aufbewahrung gemäß Art. 89 nur mit spezifischen Schutzmaßnahmen und einer Einzelfallbewertung rechtfertigen.",
"a30_photo_col_faces": "Gesichter",
"a30_method_5": "Wenn die Fotoerfassung aktiviert ist, werden Bilddateien mithilfe der OpenCV Haar-Cascade-Gesichtserkennung analysiert, um Fotografien von Personen zu identifizieren (Art. 9 biometrische Daten).",
"m365_role_cycle_tip": "Klicken zum Ändern der Rolle (wechselt Schüler → Personal → Sonstiges → Auto)",
"m365_role_set": "Rolle gesetzt",
"m365_role_cleared": "Rollenüberschreibung entfernt",
"m365_sku_debug_title": "🔍 Mandanten-SKU-IDs",
"m365_sku_debug_desc": "Dies sind die rohen SKU-IDs, die Ihren Benutzern zugewiesen sind. Alle mit ❓ unbekannt markierten sind nicht in classification/m365_skus.json — kopieren Sie sie unter student_ids oder staff_ids und starten Sie neu.",
"m365_sku_debug_none": "Keine Lizenzdaten zurückgegeben — überprüfen Sie, ob die App die Berechtigung User.Read.All hat.",
"m365_file_sources_title": "📁 Dateiquellen",
"m365_file_sources_manage": "Verwalten",
"m365_file_sources_empty": "Keine Dateiquellen konfiguriert. Fügen Sie unten einen lokalen Ordner oder eine Netzwerkfreigabe hinzu.",
"m365_file_sources_add": "Quelle hinzufügen",
"m365_fsrc_label": "Bezeichnung",
"m365_fsrc_path": "Pfad",
"m365_fsrc_smb_detected": "SMB/CIFS-Netzwerkfreigabe erkannt",
"m365_fsrc_smb_host": "SMB-Host",
"m365_fsrc_smb_user": "Benutzername",
"m365_fsrc_smb_pw": "Passwort",
"m365_fsrc_smb_pw_hint": "Das Passwort wird im OS-Schlüsselbund gespeichert — nie in einer Datei.",
"m365_fsrc_add_btn": "Hinzufügen",
"m365_fsrc_saved": "Quelle gespeichert",
"m365_fsrc_saving": "Speichern...",
"m365_fsrc_path_required": "Pfad ist erforderlich.",
"m365_fsrc_scan_btn": "Scannen",
"m365_fsrc_scan_start": "Datei-Scan wird gestartet",
"m365_src_group_files": "Dateiquellen",
"m365_no_sources": "Keine Quellen ausgewählt — nichts zu scannen.",
"m365_fsrc_name_required": "Name ist erforderlich.",
"m365_srcmgmt_title": "⚙ Quellenverwaltung",
"m365_srcmgmt_tab_m365": "Microsoft 365",
"m365_srcmgmt_tab_google": "Google Workspace",
"m365_srcmgmt_tab_files": "Dateiquellen",
"m365_srcmgmt_connection": "Verbindung",
"m365_srcmgmt_azure_creds": "Azure-Anmeldedaten",
"m365_srcmgmt_sources_m365": "Zu scannende Quellen",
"m365_srcmgmt_connected": "Verbunden",
"m365_srcmgmt_not_connected": "Nicht verbunden",
"m365_srcmgmt_coming_soon": "Kommt bald",
"m365_srcmgmt_google_sub": "Gmail- und Google Drive-Scan erscheint hier, wenn implementiert.",
"m365_srcmgmt_file_sources": "Dateiquellen",
"m365_sources_manage_btn": "Quellen",
"m365_connecting": "Verbinde...",
"m365_err_creds_required": "Client-ID und Mandanten-ID erforderlich",
"m365_signout_confirm": "Trennen und Anmeldedaten löschen?",
"m365_btn_settings": "Einstellungen",
"m365_settings_title": "⚙ Einstellungen",
"m365_settings_tab_general": "Allgemein",
"m365_settings_tab_email": "E-Mail-Bericht",
"m365_settings_tab_database": "Datenbank",
"m365_settings_appearance": "Erscheinungsbild",
"m365_settings_language": "Sprache",
"m365_settings_theme": "Design",
"m365_settings_db_actions": "Aktionen",
"m365_db_reset": "DB zurücksetzen",
"m365_db_reset_confirm": "Datenbank zurücksetzen? Alle Scan-Ergebnisse werden gelöscht.",
"m365_db_reset_done": "Datenbank zurückgesetzt",
"m365_db_scans": "Scans",
"m365_smtp_saving": "Speichern...",
"m365_settings_admin_pin": "Admin-PIN",
"m365_settings_pin_hint": "Erforderlich für destruktive Aktionen (z.B. DB zurücksetzen). Leer lassen zum Deaktivieren.",
"m365_settings_current_pin": "Aktueller PIN",
"m365_settings_new_pin": "Neuer PIN",
"m365_settings_confirm_pin": "PIN bestätigen",
"m365_settings_pin_set": "Admin-PIN ist gesetzt",
"m365_settings_pin_not_set": "Kein PIN — DB zurücksetzen ist ungeschützt",
"m365_settings_pin_required": "PIN ist erforderlich.",
"m365_settings_pin_mismatch": "PINs stimmen nicht überein.",
"m365_settings_pin_wrong": "Falscher PIN — Zurücksetzen abgebrochen.",
"m365_settings_pin_saved": "PIN gespeichert",
"m365_settings_enter_pin": "Admin-PIN eingeben",
"m365_settings_enter_pin_reset": "Admin-PIN eingeben, um die Datenbank zurückzusetzen.",
"btn_confirm": "Bestätigen",
"m365_log_scan_started": "Scan gestartet",
"m365_preview_local_file": "Lokale Datei — keine Cloud-Vorschau verfügbar",
"m365_badge_gps": "GPS-Standort",
"a30_gps_items": "Elemente mit GPS-Standortdaten (Art. 4 — Standort = personenbezogene Daten)",
"a30_exif_pii_items": "Elemente mit EXIF-PII (Autor, Beschreibung, Schlüsselwörter)",
"a30_gps_title": "Elemente mit GPS-Standortdaten",
"a30_gps_intro": "Die folgenden Dateien enthalten GPS-Koordinaten in den EXIF-Metadaten. Standortdaten sind personenbezogene Daten gemäß Art. 4 DSGVO.",
"a30_gps_col_lat": "Breitengrad",
"a30_gps_col_lon": "Längengrad",
"m365_accounts_disabled_tip": "Wählen Sie eine Microsoft 365-Quelle aus, um die Kontoauswahl zu aktivieren",
"m365_smtp_test": "Testen",
"m365_smtp_testing": "Test-E-Mail wird gesendet…",
"m365_smtp_test_ok": "Test-E-Mail gesendet",
"m365_smtp_test_fail": "Verbindung fehlgeschlagen",
"m365_fsrc_edit_btn": "Bearbeiten",
"m365_fsrc_save_changes": "Änderungen speichern",
"m365_settings_tab_scheduler": "Zeitplaner",
"m365_sched_title": "Geplante Scans",
"m365_sched_next": "Nächste",
"m365_sched_hint": "Scans automatisch zu einem festgelegten Zeitpunkt ausführen. Erfordert eine aktive M365-Verbindung (Anwendungsmodus empfohlen).",
"m365_sched_no_aps": "⚠ APScheduler nicht installiert. Ausführen: pip install apscheduler",
"m365_sched_enabled": "Zeitplaner aktivieren",
"m365_sched_frequency": "Häufigkeit",
"m365_sched_dow": "Wochentag",
"m365_sched_dom": "Tag im Monat",
"m365_sched_time": "Uhrzeit",
"m365_sched_profile": "Profil",
"m365_sched_profile_last": "Zuletzt gespeicherte Einstellungen",
"m365_sched_after_scan": "Nach dem Scan",
"m365_sched_auto_email": "Bericht automatisch senden",
"m365_sched_auto_retention": "Aufbewahrungsrichtlinie durchsetzen",
"m365_sched_status": "Status",
"m365_sched_run_now": "▶ Jetzt ausführen",
"m365_sched_add": "+ Geplante Suche hinzufügen",
"m365_sched_name": "Name",
"m365_sched_editor_new": "Neue geplante Suche",
"m365_sched_editor_edit": "Geplante Suche bearbeiten",
"m365_sched_name_required": "Name ist erforderlich",
"m365_sched_no_runs": "Noch keine geplanten Läufe",
"m365_sched_freq_daily": "Täglich",
"m365_sched_freq_weekly": "Wöchentlich",
"m365_sched_freq_monthly": "Monatlich",
"m365_sched_dow_mon": "Montag",
"m365_sched_dow_tue": "Dienstag",
"m365_sched_dow_wed": "Mittwoch",
"m365_sched_dow_thu": "Donnerstag",
"m365_sched_dow_fri": "Freitag",
"m365_sched_dow_sat": "Samstag",
"m365_sched_dow_sun": "Sonntag",
"btn_save": "Speichern",
"m365_settings_about": "Über",
"m365_settings_save_pin": "PIN speichern",
"m365_sse_reconnecting": "Verbindung zum laufenden Scan wird wiederhergestellt…",
"m365_sse_replay_note": "Live-Log fortgesetzt — frühere Einträge vom laufenden Scan wiedergegeben.",
"m365_google_sa_creds": "Dienstkonto-Anmeldedaten",
"m365_google_sa_key_file": "JSON-Schlüssel des Dienstkontos",
"m365_google_sa_key_hint": "Download von Google Cloud Console → IAM & Admin → Dienstkonten → Schlüssel → Schlüssel hinzufügen → JSON",
"m365_google_admin_email": "Admin-E-Mail",
"m365_google_admin_email_hint": "Wird für domänenweite Delegierung verwendet — muss ein Workspace-Superadmin sein.",
"m365_google_libs_missing": "Bibliotheken nicht installiert",
"m365_google_key_required": "Wählen Sie eine JSON-Schlüsseldatei für das Dienstkonto aus",
"m365_google_invalid_json": "Ungültige JSON-Datei",
"m365_srcmgmt_sources_google": "Zu scannende Quellen",
"m365_google_src_gmail": "Gmail",
"m365_google_src_drive": "Google Drive",
"m365_google_setup_title": "Einrichtung in Google Workspace erforderlich:",
"m365_google_setup_step1": "Erstellen Sie ein Google Cloud-Projekt und aktivieren Sie Gmail API + Drive API + Admin SDK.",
"m365_google_setup_step2": "Erstellen Sie ein Dienstkonto, laden Sie den JSON-Schlüssel herunter und aktivieren Sie die domänenweite Delegierung.",
"m365_google_setup_step3": "Fügen Sie in Workspace Admin → Sicherheit → API-Steuerung → Domänenweite Delegierung die Client-ID des Dienstkontos mit folgenden Scopes hinzu:",
"m365_google_auth_mode": "Authentifizierungsmodus",
"m365_google_mode_workspace": "Workspace",
"m365_google_mode_personal": "Persönliches Konto",
"m365_google_personal_creds": "Persönliches Konto",
"m365_google_personal_client_id": "Client-ID",
"m365_google_personal_client_secret": "Client-Secret",
"m365_google_personal_hint": "Erstellen Sie OAuth 2.0 Desktop-Anmeldedaten in der Google Cloud Console und fügen Sie Client-ID und Secret oben ein.",
"m365_google_personal_sign_in": "Anmelden",
"m365_google_personal_creds_required": "Client-ID und Secret erforderlich",
"m365_google_personal_setup_title": "Einrichtung erforderlich:",
"m365_google_personal_setup_step1": "Erstellen Sie in der Google Cloud Console ein Projekt und aktivieren Sie Gmail API + Drive API.",
"m365_google_personal_setup_step2": "Erstellen Sie OAuth 2.0-Anmeldedaten (Typ: Desktop-App) und kopieren Sie Client-ID und Secret.",
"m365_google_personal_setup_step3": "Fügen Sie Ihre Google-Konto-E-Mail zur Liste der Testnutzer im OAuth-Einwilligungsbildschirm hinzu.",
"m365_auth_waiting": "Warte auf Anmeldung…",
"role_staff": "Personal",
"role_student": "Schüler",
"role_other": "Andere",
"m365_settings_tab_security": "Sicherheit",
"share_modal_title": "Ergebnisse teilen",
"share_modal_desc": "Schreibgeschützte Links ermöglichen einem Datenschutzbeauftragten oder Prüfer, Ergebnisse einzusehen und Verwendungszwecke zuzuweisen, ohne Zugriff auf Scansteuerung oder Anmeldedaten.",
"share_new_link": "Neuer Link",
"share_label_lbl": "Bezeichnung (optional)",
"share_label_placeholder": "z. B. DSB-Prüfung 2026",
"share_expires_in": "Läuft ab in",
"share_expires_never": "Nie",
"share_expires_7d": "7 Tage",
"share_expires_30d": "30 Tage",
"share_expires_90d": "90 Tage",
"share_expires_1y": "1 Jahr",
"share_create": "Erstellen",
"share_copy_link_prompt": "Link kopieren:",
"share_active_links": "Aktive Links",
"share_viewer_pin_label": "Betrachter-PIN:",
"share_pin_configure": "Konfigurieren",
"share_pin_set": "Festgelegt",
"share_pin_not_set": "Nicht festgelegt",
"share_no_links": "Keine aktiven Links.",
"share_unlabelled": "Ohne Bezeichnung",
"share_expires_prefix": "Läuft ab:",
"share_last_used": "Zuletzt verwendet:",
"share_revoke": "Widerrufen",
"share_copied": "Kopiert!",
"share_load_error": "Links konnten nicht geladen werden.",
"share_create_error": "Link konnte nicht erstellt werden:",
"share_revoke_confirm": "Diesen Link widerrufen? Alle Nutzer verlieren sofort den Zugriff.",
"share_revoke_error": "Widerrufen fehlgeschlagen:",
"viewer_pin_group_title": "Betrachter-PIN",
"viewer_pin_desc": "Eine numerische PIN (4–8 Stellen), die es jedem ermöglicht, /view im Browser zu öffnen und schreibgeschützt auf Ergebnisse zuzugreifen \u2013 ohne Token-Link.",
"viewer_pin_clear": "PIN löschen",
"viewer_pin_is_set": "Betrachter-PIN ist festgelegt",
"viewer_pin_not_set_msg": "Keine PIN festgelegt — /view erfordert einen Token-Link",
"viewer_pin_format": "PIN muss 4–8 Stellen haben.",
"viewer_pin_saving": "Wird gespeichert…",
"viewer_pin_saved": "PIN gespeichert",
"viewer_pin_clear_confirm": "Betrachter-PIN entfernen? /view erfordert dann wieder einen Token-Link.",
"viewer_pin_cleared": "PIN gelöscht"
}