{ "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…", "history_lbl": "Verlauf", "history_items": "Treffer", "history_btn_sessions": "Sessionen", "history_btn_latest": "Letzter Scan", "history_picker_empty": "Keine früheren Scans", "history_delta_badge": "Delta", "history_latest_badge": "Aktuell", "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_auto_email_manual": "Bericht nach manueller Suche senden", "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_scan_emails": "E-Mail-Adressen scannen", "m365_opt_scan_emails_hint": "Markiert Dateien mit E-Mail-Adressen. Standardmäßig deaktiviert — E-Mail-Adressen sind sehr häufig und können viele Treffer erzeugen.", "m365_opt_scan_phones": "Telefonnummern scannen", "m365_opt_scan_phones_hint": "Markiert Dateien mit dänischen Telefonnummern (8 Ziffern). Nützlich zum Auffinden von Kontaktlisten.", "m365_badge_emails": "E-Mail", "m365_badge_phones": "Tel.", "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_opt_cpr_only": "Nur-CPR-Modus", "m365_opt_cpr_only_hint": "Markiert nur Dateien mit CPR-Nummern. Dateien mit nur E-Mail-Adressen, Telefonnummern, Gesichtern oder EXIF-Metadaten werden ignoriert.", "m365_opt_ocr_lang": "OCR-Sprache", "m365_opt_ocr_lang_hint": "Tesseract-Sprachpaket(e) für das Scannen von gescannten PDFs und Bildern. Pakete müssen auf dem Server installiert sein (z.B. tesseract-ocr-dan). Mehrere Pakete: dan+eng.", "m365_filter_photo_only": "📷 Fotos / biometrisch", "m365_filter_all_roles": "Alle Rollen", "m365_filter_staff": "Personal", "m365_filter_student": "Schüler", "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_name": "Name", "m365_fsrc_sftp_auth": "Auth", "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_pw_keychain_placeholder": "Im OS-Schlüsselbund gespeichert", "m365_fsrc_add_btn": "Hinzufügen", "m365_fsrc_saved": "Quelle gespeichert", "m365_fsrc_saving": "Speichern...", "m365_fsrc_path_required": "Pfad ist erforderlich.", "m365_fsrc_type_local": "Lokaler Ordner", "m365_fsrc_type_smb": "Netzwerkfreigabe (SMB)", "m365_fsrc_type_sftp": "SFTP-Server", "m365_fsrc_sftp_host": "SFTP-Host", "m365_fsrc_sftp_port": "Port", "m365_fsrc_sftp_user": "Benutzername", "m365_fsrc_sftp_remote_path": "Remote-Pfad", "m365_fsrc_sftp_auth_password": "Passwort", "m365_fsrc_sftp_auth_key": "SSH-Schlüssel", "m365_fsrc_sftp_pw": "Passwort", "m365_fsrc_sftp_pw_hint": "Passwort wird im OS-Schlüsselbund gespeichert — nie in einer Datei.", "m365_fsrc_sftp_key_upload": "Private Schlüsseldatei", "m365_fsrc_sftp_key_btn": "Schlüssel hochladen", "m365_fsrc_sftp_key_uploaded": "Schlüssel hochgeladen", "m365_fsrc_sftp_passphrase": "Passphrase (wenn Schlüssel verschlüsselt ist)", "m365_fsrc_sftp_passphrase_hint": "Passphrase wird im OS-Schlüsselbund gespeichert — nie in einer Datei.", "m365_fsrc_sftp_not_installed": "paramiko nicht installiert — ausführen: pip install paramiko", "m365_fsrc_name_placeholder": "z.B. Lehrerdateien, NAS-Archiv", "m365_fsrc_path_placeholder": "~/Dokumente oder //nas/freigaben", "m365_fsrc_smb_host_placeholder": "nas.schule.de", "m365_fsrc_smb_user_placeholder": "DOMÄNE\\Benutzername", "m365_fsrc_smb_user_edit_placeholder": "DOMÄNE\\Benutzername oder Benutzername", "m365_fsrc_sftp_host_placeholder": "sftp.schule.de", "m365_fsrc_sftp_user_placeholder": "backup_user", "m365_fsrc_sftp_path_placeholder": "/var/data", "m365_fsrc_sftp_passphrase_placeholder": "Leer lassen, wenn der Schlüssel nicht verschlüsselt ist", "m365_fsrc_sftp_host_required": "SFTP-Host ist erforderlich.", "m365_fsrc_sftp_user_required": "SFTP-Benutzername 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_tab_auditlog": "Prüfprotokoll", "m365_audit_title": "Compliance-Prüfprotokoll", "m365_audit_col_time": "Zeitpunkt", "m365_audit_col_action": "Aktion", "m365_audit_col_detail": "Detail", "m365_audit_col_ip": "IP", "m365_audit_loading": "Wird geladen…", "m365_audit_empty": "Noch keine Prüfereignisse aufgezeichnet.", "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_ok_graph": "Test-E-Mail über Microsoft Graph gesendet an", "m365_smtp_test_ok_smtp": "Test-E-Mail über SMTP gesendet an", "m365_smtp_graph_also_failed": "(⚠ Graph fehlgeschlagen — Mail.Send nicht erteilt)", "m365_smtp_test_fail": "Verbindung fehlgeschlagen", "bulk_select_mode": "Auswählen", "bulk_select_all": "Alle sichtbaren auswählen", "bulk_deselect_all": "Alle abwählen", "bulk_apply": "Anwenden", "bulk_done": "Fertig", "bulk_selected": "ausgewählt", "bulk_applied": "aktualisiert", "disp_stats_total": "gesamt", "disp_stats_unreviewed": "nicht überprüft", "disp_stats_retain": "behalten", "disp_stats_delete": "löschen", "disp_stats_other": "sonstige", "disp_stats_reviewed": "überprüft", "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_report_only": "Nur Bericht", "m365_sched_report_only_hint": "Letzte Scanergebnisse senden, ohne einen neuen Scan durchzuführen. Erfordert Scanergebnisse in der Datenbank.", "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_no_jobs": "Noch keine geplanten Scans.", "m365_sched_running": "Läuft...", "m365_sched_disabled": "Deaktiviert", "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:", "share_scope_lbl": "Bereich", "share_scope_all": "Alle", "share_scope_type_role": "Rolle", "share_scope_type_user": "Benutzer", "share_date_from": "Elemente ab", "share_date_to": "Elemente bis", "share_scope_role_lbl": "Rolle", "share_scope_user_lbl": "Benutzer-E-Mail", "share_scope_user_placeholder": "alice@schule.de", "share_scope_user_invalid": "Bitte gib eine gültige E-Mail-Adresse für den Benutzerbereich an.", "share_scope_staff": "Mitarbeitende", "share_scope_student": "Schüler", "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 – 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", "interface_pin_group_title": "Interface-PIN", "interface_pin_desc": "Eine numerische PIN (4–8 Stellen), die eingegeben werden muss, bevor auf die Scanner-Oberfläche zugegriffen werden kann. Betrachter, die /view aufrufen, sind nicht betroffen.", "interface_pin_clear": "PIN löschen", "interface_pin_is_set": "Interface-PIN ist gesetzt", "interface_pin_not_set_msg": "Keine PIN gesetzt — Oberfläche ist für alle im Netzwerk offen", "interface_pin_saved": "PIN gespeichert", "interface_pin_clear_confirm": "Interface-PIN entfernen? Der Scanner ist dann für alle im Netzwerk zugänglich.", "interface_pin_cleared": "PIN gelöscht", "interface_pin_login_desc": "Interface-PIN eingeben, um fortzufahren.", "interface_pin_login_btn": "Weiter", "interface_pin_err_incorrect": "Falsche PIN.", "interface_pin_err_too_many": "Zu viele Versuche. Bitte später erneut versuchen.", "interface_pin_err_network": "Netzwerkfehler. Bitte erneut versuchen.", "m365_settings_tab_ai": "KI / NER", "m365_ai_title": "KI-gestützte Entitätserkennung", "m365_ai_desc": "Claude KI statt spaCy für Name-, Adress- und Organisationserkennung verwenden. Deutlich genauer bei dänischen Texten — insbesondere bei Doppelnamen und fremdsprachigen Namen. Benötigt einen Anthropic-API-Schlüssel; Abrechnung per Token.", "m365_ai_enable": "Claude NER aktivieren", "m365_ai_api_key_label": "Anthropic-API-Schlüssel", "m365_ai_show_key": "Anzeigen", "m365_ai_hide_key": "Ausblenden", "m365_ai_key_set": "API-Schlüssel gespeichert", "m365_ai_key_not_set": "Kein API-Schlüssel gespeichert", "m365_ai_test": "Schlüssel testen", "m365_ai_testing": "Wird getestet…", "m365_ai_test_ok": "API-Schlüssel gültig", "m365_ai_test_fail": "Test fehlgeschlagen", "m365_ai_saved": "Gespeichert", "m365_ai_model_note": "Modell: claude-haiku-4-5 · Abrechnung nach Anthropic-Token-Tarifen · Ergebnisse werden pro Dokument gecacht.", "m365_settings_updates": "Softwareaktualisierung", "m365_update_idle": "Prüfen, ob eine neuere Version verfügbar ist.", "m365_update_auto": "Updates automatisch installieren (tägliche Prüfung — die App startet sich selbst neu)", "m365_update_check": "Nach Updates suchen", "m365_update_install": "Update installieren", "m365_update_checking": "Wird geprüft…", "m365_update_uptodate": "Sie verwenden die neueste Version.", "m365_update_available": "Update verfügbar", "m365_update_installing": "Update wird installiert — die App startet neu…", "m365_update_failed": "Updateprüfung fehlgeschlagen", "m365_update_scan_running": "Update nicht möglich, während ein Scan läuft." }