GDPRScanner/lang/de.json
StyxX65 6a4b0e1706 Show delta token source count, add hint bubble, fix README data paths
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-10 14:27:14 +02:00

908 lines
50 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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 AZ",
"sort_name_za": "Name ZA",
"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 <strong>User.Read.All</strong> 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 <strong>Scannen</strong> klicken,<br>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 für {n} Quelle(n) gespeichert",
"m365_delta_clear": "Tokens löschen",
"m365_delta_tokens_hint": "Gespeicherte Änderungstokens lassen Delta-Scans nur Elemente abrufen, die seit dem letzten Scan geändert wurden. Tokens löschen erzwingt beim nächsten Scan einen Vollscan.",
"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 (48 Stellen), die es jedem ermöglicht, <code style=\"font-size:10px\">/view</code> 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 48 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 (48 Stellen), die eingegeben werden muss, bevor auf die Scanner-Oberfläche zugegriffen werden kann. Betrachter, die <code style=\"font-size:10px\">/view</code> 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."
}