{
  "_meta": {
    "code": "de",
    "name": "Deutsch",
    "direction": "ltr",
    "author": "STL Gallery Team",
    "version": "1.0.0"
  },
  "welcome.subtitle": "Deine 3D-Modellbibliothek. Tausende STL-Dateien visuell verwalten, taggen und durchsuchen — blitzschnell.",
  "welcome.status.connecting": "Server wird gestartet…",
  "welcome.status.loading": "Wird geladen…",
  "welcome.status.database": "Datenbank",
  "welcome.status.renderer": "Renderer",
  "welcome.status.slicer": "Slicer",
  "welcome.status.thumbnails": "Thumbnails",
  "welcome.status.db_files": "{count} Dateien",
  "welcome.status.db_init": "Initialisiert",
  "welcome.status.renderer_c": "stl_thumb (C) ⚡",
  "welcome.status.renderer_python": "Python/Pillow",
  "welcome.status.slicer_detected": "{count} erkannt: {names}",
  "welcome.status.slicer_none": "Keine erkannt",
  "welcome.status.thumbs_count": "{count} vorhanden",
  "welcome.btn.open_folder": "Ordner auswählen",
  "welcome.btn.open_folder_sub": "Dateisystem durchsuchen",
  "welcome.btn.manual_path": "Pfad eingeben",
  "welcome.btn.manual_path_sub": "Netzlaufwerke & spezielle Pfade",
  "welcome.btn.open_gallery": "Gallery öffnen",
  "welcome.btn.open_gallery_sub": "Alle indexierten Dateien durchsuchen",
  "welcome.folders_header": "Bibliothek-Ordner",
  "welcome.add_folder": "Ordner hinzufügen",
  "welcome.recent_files": "{count} Files",
  "welcome.recent_remove": "Entfernen",
  "welcome.folder_missing": "Ordner nicht gefunden",
  "welcome.folder_missing_confirm": "Der Ordner \"{path}\" existiert nicht mehr. Aus der Bibliothek entfernen?",
  "welcome.folder_removed": "Ordner wurde entfernt",
  "welcome.cleaning": "Bereinigung...",
  "welcome.theme_toggle": "Design wechseln",
  "modal.add_category.title": "➕ Kategorie hinzufügen",
  "modal.add_category.edit_title": "✏️ Kategorie bearbeiten",
  "modal.add_category.name_placeholder": "Kategorie-Name",
  "modal.add_category.icon_btn_title": "Icon wählen",
  "modal.add_category.tab_tech": "🔧 Technisch",
  "modal.add_category.tab_emoji": "😀 Emoji",
  "modal.add_category.search_placeholder": "Suchen...",
  "modal.add_category.no_results": "Keine Treffer",
  "modal.add_category.iconify_search_placeholder": "Icon suchen...",
  "modal.add_category.iconify_searching": "Suche...",
  "modal.add_category.iconify_offline": "Keine Internetverbindung",
  "modal.add_category.iconify_error": "Suche fehlgeschlagen",
  "modal.add_category.emoji_fallback_link": "Emoji wählen →",
  "modal.add_category.iconify_back_link": "← Online-Suche",
  "modal.add_category.keywords_label": "Suchbegriffe (für Auto-Scan)",
  "modal.add_category.keyword_placeholder": "Suchbegriff eingeben...",
  "modal.add_category.keyword_hint": "Enter zum Hinzufügen · × zum Entfernen",
  "modal.add_tag.title": "🏷 Tag hinzufügen",
  "modal.add_tag.edit_title": "🏷 Tag umbenennen",
  "modal.add_tag.name_placeholder": "Tag-Name",
  "modal.file_browser.title": "📁 Ordner auswählen",
  "modal.file_browser.quick_access": "Schnellzugriff",
  "modal.file_browser.browse_label": "Ordner durchsuchen",
  "modal.file_browser.loading": "Lade...",
  "modal.file_browser.no_subfolders": "Keine Unterordner",
  "modal.file_browser.path_placeholder": "Pfad eingeben oder oben navigieren...",
  "modal.file_browser.add_btn": "Hinzufügen",
  "modal.file_browser.add_count_btn": "{count} Ordner hinzufügen",
  "modal.file_browser.already_added": "✓ Hinzugefügt",
  "modal.file_browser.breadcrumb_root": "Computer",
  "modal.manual_path.title": "⌨ Pfad eingeben",
  "modal.manual_path.description": "Gib den vollständigen Pfad zu deinem STL-Ordner ein.<br>Das kann auch ein Netzlaufwerk sein.",
  "modal.manual_path.placeholder": "/home/user/3D-Models oder Netzwerkpfad",
  "modal.missing_folder.title": "⚠️ Ordner nicht gefunden",
  "modal.missing_folder.intro": "Der folgende Ordner konnte nicht gefunden werden:",
  "modal.missing_folder.info": "Die indexierten Dateien und Thumbnails sind noch vorhanden, aber der Ordner existiert nicht mehr oder wurde verschoben.",
  "modal.missing_folder.retry": "🔄 Erneut versuchen",
  "modal.missing_folder.ignore": "Ignorieren",
  "modal.missing_folder.remove_folder": "🗑 Ordner entfernen",
  "modal.missing_folder.remove_files": "🗑 Dateien bereinigen",
  "modal.missing_folder.checking": "Prüfe...",
  "modal.missing_folder.removing": "Entferne...",
  "modal.missing_folder.not_found_again": "Der Ordner konnte weiterhin nicht gefunden werden. Bitte prüfe ob der Pfad korrekt und erreichbar ist.",
  "modal.missing_folder.scan_error": "Fehler beim Scannen: HTTP {status}",
  "modal.scan_wait.title": "⏳ Scan läuft",
  "modal.scan_wait.text": "Der initiale Scan kann bei vielen Dateien etwas dauern. Die Dateien erscheinen nach und nach in der Galerie.",
  "modal.scan_wait.discovering": "{count} Dateien gefunden…",
  "modal.scan_wait.progress": "{done} / {total} Dateien verarbeitet",
  "modal.server_down.title": "Server nicht erreichbar",
  "modal.server_down.text": "Die Verbindung zum Server wurde unterbrochen. Der Server (server.py) ist nicht mehr aktiv.",
  "modal.server_down.reload": "Seite neu laden",
  "modal.server_down.close": "Fenster schliessen",
  "toast.scan_complete": "Scan abgeschlossen — Software einsatzbereit",
  "toast.regen_thumbs_started": "{count} Dateien werden neu verarbeitet…",
  "print.more_pending": "weitere Drucke",
  "print.just_now": "gerade eben",
  "print.minutes_ago": "vor {n} Min",
  "print.hours_ago": "vor {n} Std",
  "print.default_title": "Druckauftrag protokollieren",
  "print.discard": "Verwerfen",
  "print.prints": "Drucke",
  "print.history_title": "Druckhistorie",
  "viewer.loading_metadata": "Lade…",
  "modal.settings.title": "⚙️ Einstellungen",
  "modal.duplicate_finder.title": "🔍 Duplikate finden",
  "modal.duplicate_finder.refresh": "🔄 Aktualisieren",
  "modal.duplicate_finder.refresh_title": "Erneut prüfen",
  "modal.duplicate_finder.loading": "Suche Duplikate...",
  "modal.duplicate_finder.no_duplicates_title": "Keine Duplikate gefunden",
  "modal.duplicate_finder.no_duplicates_msg": "Alle Dateien in deiner Bibliothek sind einzigartig! 🎉",
  "modal.duplicate_finder.all_cleaned_title": "Alle Duplikate bereinigt!",
  "modal.duplicate_finder.all_cleaned_msg": "Gut gemacht! 🎉",
  "modal.duplicate_finder.groups": "Gruppen",
  "modal.duplicate_finder.duplicate_files": "doppelte Dateien",
  "modal.duplicate_finder.wasted_space": "~ {size} doppelt belegt",
  "modal.duplicate_finder.sort_count": "Anzahl",
  "modal.duplicate_finder.sort_size": "Grösse",
  "modal.duplicate_finder.sort_date": "Datum (älteste)",
  "modal.duplicate_finder.sort_name": "Name",
  "modal.duplicate_finder.trash_btn": "🗑️ Papierkorb",
  "modal.duplicate_finder.move_to_trash": "In Papierkorb verschieben",
  "modal.duplicate_finder.error": "Fehler beim Laden der Duplikate.",
  "modal.duplicate_trash.title": "🗑️ Gelöschte Duplikate",
  "modal.duplicate_trash.loading": "Lade...",
  "modal.duplicate_trash.empty_title": "Papierkorb ist leer",
  "modal.duplicate_trash.empty_msg": "Keine gelöschten Duplikate vorhanden.",
  "modal.duplicate_trash.files": "Dateien",
  "modal.duplicate_trash.space_used": "{size} belegt",
  "modal.duplicate_trash.delete_all": "🗑️ Alle endgültig löschen",
  "modal.duplicate_trash.moved_at": "Verschoben: {date} · {size}",
  "modal.duplicate_trash.restore": "Wiederherstellen",
  "modal.duplicate_trash.delete_permanent": "Endgültig löschen",
  "modal.duplicate_trash.confirm_empty": "⚠️ Alle Dateien im Papierkorb endgültig löschen?",
  "modal.duplicate_trash.error": "Fehler beim Laden.",
  "modal.delete_confirm.title": "Datei löschen",
  "modal.delete_confirm.msg": "Möchten Sie diese Datei in den Papierkorb verschieben?",
  "modal.delete_confirm.checkbox": "Diese Meldung nicht mehr anzeigen",
  "modal.delete_confirm.cancel": "Abbrechen",
  "modal.delete_confirm.delete": "Löschen",
  "modal.trash.title": "🗑 Papierkorb",
  "modal.trash.loading": "Lade...",
  "modal.trash.empty_title": "Papierkorb ist leer",
  "modal.trash.empty_msg": "Keine gelöschten Dateien vorhanden.",
  "modal.trash.files": "Dateien",
  "modal.trash.space_used": "{size} belegt",
  "modal.trash.delete_all": "🗑 Alle endgültig löschen",
  "modal.trash.moved_at": "Gelöscht: {date} · {size}",
  "modal.trash.restore": "Wiederherstellen",
  "modal.trash.delete_permanent": "Endgültig löschen",
  "modal.trash.confirm_empty": "⚠️ Alle Dateien im Papierkorb endgültig löschen?",
  "modal.trash.error": "Fehler beim Laden.",
  "toast.file_trashed": "Datei in den Papierkorb verschoben",
  "toast.file_restored": "Datei wiederhergestellt",
  "trash.restored_with_meta": "Wiederhergestellt (+{tags} Tags, +{categories} Kategorien)",
  "toast.auto_scan_done": "{count} neue Dateien der Kategorie '{name}' zugewiesen",
  "toast.auto_scan_added": "{count} hinzugefügt",
  "toast.auto_scan_removed": "{count} entfernt",
  "toast.auto_scan_error": "Auto-Scan fehlgeschlagen",
  "toast.bulk_cat_success": "{count} Modelle aktualisiert",
  "toast.bulk_fav_success": "{count} Modelle als Favorit aktualisiert",
  "toast.bulk_cat_error": "Fehler: {message}",
  "bulk.count": "{count} Modelle ausgewählt",
  "bulk.count_one": "1 Modell ausgewählt",
  "bulk.categories": "Kategorien",
  "bulk.select_visible": "Alle sichtbaren",
  "bulk.clear_selection": "Auswahl leeren",
  "bulk.favorite": "★ Favorisieren",
  "bulk.unfavorite": "☆ Fav. entfernen",
  "bulk.cancel": "Abbrechen",
  "bulk.no_selection": "Keine Modelle ausgewählt",
  "bulk.cat_dialog.title": "Kategorien zuweisen",
  "bulk.cat_dialog.title_n": "Kategorien für {count} Modelle",
  "bulk.cat_dialog.mode_add": "Hinzufügen",
  "bulk.cat_dialog.mode_remove": "Entfernen",
  "bulk.cat_dialog.mode_replace": "Ersetzen",
  "bulk.cat_dialog.clear_all": "Alle Kategorien entfernen",
  "bulk.cat_dialog.clear_confirm": "Wirklich alle Kategorien von {count} Modellen entfernen?",
  "bulk.cat_dialog.apply": "Anwenden",
  "header.home": "Zur Startseite",
  "header.dashboard": "Dashboard",
  "header.debug_monitor": "Debug Monitor",
  "header.rescan": "Erneut scannen",
  "header.settings": "Einstellungen",
  "header.theme_toggle": "Design wechseln",
  "header.to_gallery": "Zur Galerie",
  "header.refresh": "Aktualisieren",
  "header.file_count": "{count} Dateien",
  "renderer_warn.message": "Die Indexierung ist ohne <code>stl_thumb</code> ca. 20–100× langsamer. Bitte <code>build.bat</code> (Windows) oder <code>build.sh</code> (Linux) ausführen und Server neu starten.",
  "renderer_warn.dismiss": "✕ Verstanden",
  "sidebar.library_header": "Bibliothek",
  "sidebar.all_files": "Alle Dateien",
  "sidebar.folders_header": "Ordner",
  "sidebar.add_folder": "Ordner hinzufügen",
  "sidebar.filter_header": "Filter",
  "sidebar.favorites": "Favoriten",
  "sidebar.new": "Neu",
  "sidebar.rating_header": "Bewertung",
  "sidebar.categories_header": "Kategorien",
  "sidebar.add_category": "Kategorie hinzufügen",
  "sidebar.tags_header": "Tags",
  "sidebar.add_tag": "Tag hinzufügen",
  "sidebar.printer_header": "Drucker",
  "sidebar.material_header": "Filament",
  "sidebar.nozzle_header": "Düsengrösse",
  "sidebar.trash": "Papierkorb",
  "sidebar.pinned_header": "Angeheftete Ordner",
  "sidebar.quick_access": "Schnellzugriff",
  "sidebar.imported_objects": "Importierte Objekte",
  "sidebar.unpin_folder": "Losheften",
  "sidebar.no_prints_yet": "Noch keine Drucke erfasst",
  "sidebar.no_folders": "Keine Ordner",
  "sidebar.toggle_tooltip": "Sidebar ein/aus",
  "sidebar.folder_not_found": "Ordner nicht gefunden",
  "sidebar.new_files": "{count} neue Dateien",
  "sidebar.right_click_delete_cat": "{name} — Rechtsklick zum Löschen",
  "sidebar.right_click_delete_tag": "{name} — Rechtsklick zum Löschen",
  "toolbar.sidebar_toggle": "Sidebar",
  "toolbar.search_placeholder": "🔍 Suche...",
  "toolbar.sort.name": "Name",
  "toolbar.sort.date": "Datum",
  "toolbar.sort.size": "Größe",
  "toolbar.sort.triangles": "Dreiecke",
  "toolbar.sort.rating": "Bewertung",
  "toolbar.sort_reverse": "Sortierung umkehren",
  "toolbar.view.grid": "Grid",
  "toolbar.view.list": "Liste",
  "toolbar.view.detail": "Detail",
  "toolbar.group_btn": "Gruppieren",
  "toolbar.group_title": "Ordner-Gruppierung ein/aus",
  "toolbar.duplicates_btn": "Duplikate",
  "toolbar.trash_title": "Papierkorb",
  "toolbar.trash_btn": "Papierkorb",
  "toolbar.select_btn": "Auswählen",
  "toolbar.select_title": "Dateien auswählen",
  "toolbar.duplicates_title": "Duplikate finden",
  "gallery.loading": "Lade Dateien...",
  "gallery.empty": "Keine STL-Dateien gefunden.",
  "gallery.scroll_top": "Zum Anfang",
  "gallery.jump_to_singles": "⬇ Zu Einzeldateien springen",
  "gallery.file_count": "{count} Dateien",
  "gallery.corrupt_file": "⚠ fehlerhaft",
  "gallery.indexing": "Indexierung...",
  "gallery.all_objects": "Alle ({count} Objekte)",
  "gallery.object_nav_prev": "Vorheriges Objekt",
  "gallery.object_nav_next": "Nächstes Objekt",
  "gallery.new_ribbon": "NEW",
  "card.analyze_tooltip": "Analysieren",
  "viewer.nav.prev_file": "Vorherige Datei (←)",
  "viewer.nav.next_file": "Nächste Datei (→)",
  "viewer.nav.prev_object": "Vorheriges Objekt",
  "viewer.nav.next_object": "Nächstes Objekt",
  "viewer.object_label": "Objekt {n}",
  "viewer.ctrl.wireframe": "Wireframe",
  "viewer.ctrl.cycle_orient": "Orientierung wechseln",
  "viewer.ctrl.auto_orient": "Auto-Orientierung (größte Fläche nach unten)",
  "viewer.ctrl.reset_camera": "Kamera zurücksetzen",
  "viewer.label.notes": "Notizen",
  "viewer.label.notes_placeholder": "Notizen...",
  "viewer.label.print_history": "Druckhistorie",
  "viewer.btn.open_slicer": "🖨 Im Slicer öffnen ▾",
  "viewer.tmf.title_label": "Titel:",
  "viewer.tmf.author_label": "Autor:",
  "viewer.tmf.objects_label": "Objekte:",
  "viewer.tmf.slicer_profile": "Slicer-Profil:",
  "viewer.tmf.and_more": "...und {count} weitere",
  "viewer.3mf.preview_label": "Vorschau — Klick › für 3D-Ansicht",
  "viewer.3mf.preview_cached": "Vorschau (aus Cache)",
  "viewer.3mf.image_label": "Bild {current}/{total} — Klick für 3D-Ansicht",
  "viewer.3mf.loading_model": "Lade 3D-Modell …",
  "viewer.3mf.no_objects": "Keine 3D-Objekte in dieser Datei gefunden",
  "viewer.3mf.object_label": "{name}  ({current} / {total})",
  "viewer.mismatch.warning": "⚠ Datei-Mismatch! Erwartet: △{expected} hash={expected_hash} — Erhalten: △{received} hash={received_hash} path={path}",
  "viewer.tag.new_placeholder": "Neuer Tag...",
  "viewer.tag.create_new": "+ \"{name}\" erstellen",
  "viewer.newx.path_trigger": "📍 Pfad",
  "viewer.newx.path_hide": "✕ Pfad ausblenden",
  "viewer.newx.btn_explorer": "📁 Explorer",
  "viewer.newx.btn_favorite": "☆ Favorit",
  "viewer.newx.btn_favorite_active": "🔖 Favorit",
  "viewer.newx.btn_printed": "✅ Gedruckt",
  "viewer.newx.btn_delete": "🗑 Löschen",
  "viewer.newx.rate_label": "Bewerten",
  "viewer.newx.stat.size": "Grösse",
  "viewer.newx.stat.printed": "Gedruckt",
  "viewer.newx.stat.triangles": "Dreiecke",
  "viewer.newx.stat.dimensions": "Masse (mm)",
  "viewer.newx.stat.objects": "Objekte",
  "viewer.newx.stat.format": "Format",
  "viewer.newx.stat.modified": "Geändert",
  "viewer.newx.badge.printed": "🖨 {count}× gedruckt",
  "viewer.newx.badge.favorite": "🔖 Favorit",
  "viewer.newx.image_label": "Bild {index}",
  "print_popup.title": "🖨 Gedruckt?",
  "print_popup.status.printed": "✅ Gedruckt",
  "print_popup.status.failed": "❌ Fehlschlag",
  "print_popup.status.cancelled": "⏹ Abgebrochen",
  "print_popup.material_placeholder": "Material (PLA, PETG...)",
  "print_popup.hours_placeholder": "Std",
  "print_popup.minutes_placeholder": "Min",
  "print_popup.hours_unit": "h",
  "print_popup.minutes_unit": "m",
  "print_popup.notes_placeholder": "Notizen zum Druck...",
  "print_popup.save": "Speichern",
  "print_popup.dismiss": "Später",
  "print_popup.saving": "Speichert...",
  "print_overlay.title": "🖨️ Druckauftrag protokollieren",
  "print_overlay.tile.plate": "Druckbett-Vorschau",
  "print_overlay.tile.settings": "Druckeinstellungen",
  "print_overlay.tile.filament": "Filament",
  "print_overlay.tile.speed": "Geschwindigkeit",
  "print_overlay.tile.platform": "Plattform & Hardware",
  "print_overlay.tile.log": "Druck protokollieren",
  "print_overlay.upload_hint": ".gcode.3mf hierher ziehen<br>oder klicken zum Hochladen",
  "print_overlay.uploading": "GCode wird hochgeladen...",
  "print_overlay.uploaded": "GCode analysiert & archiviert",
  "print_overlay.gcode_version": "GCode-Version",
  "print_overlay.gcode_version_label": "v{version}",
  "print_overlay.gcode_version_latest": "(aktuell)",
  "print_overlay.gcode_version_legacy": "Legacy",
  "print_overlay.saved": "Druckauftrag gespeichert",
  "print_overlay.kpi.time": "Druckzeit",
  "print_overlay.kpi.weight": "Gewicht",
  "print_overlay.kpi.length": "Filament",
  "print_overlay.kpi.layers": "Layer",
  "print_overlay.kpi.height": "Hoehe",
  "print_overlay.layer_height": "Schichthoehe",
  "print_overlay.first_layer": "Erste Schicht",
  "print_overlay.walls": "Waende",
  "print_overlay.top_bottom": "Top / Bottom",
  "print_overlay.infill": "Infill",
  "print_overlay.support": "Support",
  "print_overlay.brim": "Brim",
  "print_overlay.ironing": "Ironing",
  "print_overlay.fil_type": "Typ",
  "print_overlay.fil_profile": "Profil",
  "print_overlay.fil_color": "Farbe",
  "print_overlay.fil_used": "Verbrauch",
  "print_overlay.fil_weight": "Gewicht",
  "print_overlay.fil_cost": "Kosten",
  "print_overlay.fil_diameter": "Durchmesser",
  "print_overlay.outer_wall": "Aussenwand",
  "print_overlay.inner_wall": "Innenwand",
  "print_overlay.printer": "Drucker",
  "print_overlay.bed": "Druckbett",
  "print_overlay.nozzle": "Duese",
  "print_overlay.nozzle_temp": "Duesen-Temp",
  "print_overlay.print_profile": "Druckprofil",
  "print_overlay.notes_placeholder": "Notizen zum Druck... (Qualität, Probleme, Nachbearbeitung, Verbesserungen)",
  "print_overlay.btn.save": "💾 GCode archivieren & Speichern",
  "print_overlay.btn.update": "💾 Aktualisieren",
  "print_overlay.btn.reprint": "🔄 Nochmal drucken",
  "print_overlay.btn.later": "Später",
  "print_overlay.btn.discard": "Nicht speichern",
  "print_overlay.status.printed": "✅ Erfolgreich gedruckt",
  "print_overlay.status.failed": "❌ Fehlschlag",
  "print_overlay.status.cancelled": "⏹ Abgebrochen",
  "welcome.cc.kpi.files": "Dateien",
  "welcome.cc.kpi.tmf": "3MF",
  "welcome.cc.kpi.prints": "Drucke",
  "welcome.cc.kpi.size": "Bibliothek",
  "welcome.cc.kpi.folders": "Ordner",
  "welcome.cc.actions_header": "⚡ Quick Actions",
  "welcome.cc.action.add_folder": "Ordner hinzufügen",
  "welcome.cc.action.duplicates": "Duplikate finden",
  "welcome.cc.action.dashboard": "Dashboard",
  "welcome.cc.action.settings": "Einstellungen",
  "welcome.cc.action.reprint": "Drucke wiederholen",
  "welcome.cc.action.trash": "Papierkorb",
  "welcome.cc.activity_header": "🕐 Letzte Aktivität",
  "welcome.cc.activity_empty": "Noch keine Aktivität",
  "sidebar.printed_header": "Gedruckt",
  "sidebar.printed": "Gedruckt",
  "sidebar.has_gcode": "Mit GCode-Archiv",
  "sidebar.gcode_files": "GCode-Dateien",
  "gcode_archive.title": "🖨 Drucke wiederholen",
  "gcode_archive.empty": "Noch keine archivierten Drucke. Sende eine Datei an den Slicer und lade die .gcode.3mf im Druckprotokoll hoch.",
  "gcode_archive.reprint": "🔄 Nochmal drucken",
  "gcode_archive.details": "Details",
  "dashboard.chart.week_short": "KW {nr}",
  "dashboard.dup.duplicate_files": "Doppelte Dateien ({size} verschwendet)",
  "dashboard.dup.groups": "Duplikat-Gruppen",
  "dashboard.dup.none_found": "Keine Duplikate gefunden",
  "dashboard.dup.open_manager": "Duplikat-Manager öffnen →",
  "dashboard.empty.chartjs_unavailable": "Chart.js nicht verfügbar",
  "dashboard.empty.loading": "Wird geladen…",
  "dashboard.empty.no_categories": "Keine Kategorien zugewiesen",
  "dashboard.empty.no_prints": "Noch keine Drucke",
  "dashboard.empty.no_tags": "Keine Tags vorhanden",
  "dashboard.empty.no_time_data": "Noch keine Zeitdaten",
  "dashboard.fmt.billion": "Mrd.",
  "dashboard.fmt.million": "Mio.",
  "dashboard.fmt.million_short": "M",
  "dashboard.fmt.thousand_short": "K",
  "dashboard.header": "📊 Dashboard",
  "dashboard.kpi.favorites": "Favoriten",
  "dashboard.kpi.favorites_pct": "Favoriten ({pct}%)",
  "dashboard.kpi.files": "Dateien",
  "dashboard.kpi.format_ratio": "STL / 3MF / OBJ",
  "dashboard.kpi.total_size": "Gesamtgrösse",
  "dashboard.kpi.total_triangles": "Dreiecke Total",
  "dashboard.rating.no_files": "Keine Dateien",
  "dashboard.rating.unrated": "{count} Dateien ohne Bewertung",
  "dashboard.tile.categories": "📂 Kategorien",
  "dashboard.tile.duplicates": "🔍 Duplikate",
  "dashboard.tile.format_distribution": "🍩 Format-Verteilung",
  "dashboard.tile.material_ranking": "🧵 Material-Ranking",
  "dashboard.tile.most_printed": "🏆 Top 5 Meistgedruckt",
  "dashboard.tile.print_timeline": "🖨️ Druck-Timeline (Monate)",
  "dashboard.tile.ratings": "⭐ Bewertungen",
  "dashboard.tile.recently_added": "📈 Zuletzt hinzugefügt (Wochen)",
  "dashboard.tile.tag_cloud": "🏷️ Tag-Cloud",
  "dashboard.tile.triangle_details": "🔺 Dreiecke-Details",
  "dashboard.tile.triangle_histogram": "📊 Dreieck-Histogramm",
  "dashboard.tri.average": "Durchschnitt",
  "dashboard.tri.fewest": "Wenigste",
  "dashboard.tri.most": "Meiste",
  "dashboard.tri.total": "Total",
  "settings.slicer.title": "🖨 Slicer-Konfiguration",
  "settings.slicer.count": "{count} Slicer konfiguriert",
  "settings.slicer.add_btn": "+ Slicer hinzufügen",
  "settings.slicer.detect_btn": "🔍 Slicer im System suchen",
  "settings.slicer.detecting": "🔍 Suche läuft...",
  "settings.slicer.name_placeholder": "Name (z.B. BambuStudio)",
  "settings.slicer.path_placeholder": "Pfad zur .exe",
  "settings.slicer.args_hint": "Args: <code>{file}</code> wird durch den STL-Pfad ersetzt",
  "settings.slicer.all_added": "Alle erkannten Slicer bereits hinzugefügt ✓",
  "settings.slicer.none_found": "Keine Slicer gefunden. Bitte manuell hinzufügen.",
  "settings.slicer.detect_error": "Fehler bei der Erkennung",
  "settings.slicer.delete_title": "Löschen",
  "settings.language.label": "🌐 Sprache / Language",
  "settings.language.desc": "Browser-Erkennung oder manuell wählen",
  "settings.language.auto": "Auto (Browser)",
  "settings.gallery.title": "🖼 Gallery & Darstellung",
  "settings.ui_scale.label": "UI-Grösse",
  "settings.gallery.ui_scale": "UI-Grösse",
  "settings.gallery.ui_scale.small": "Klein",
  "settings.gallery.ui_scale.standard": "Standard",
  "settings.gallery.ui_scale.medium": "Mittel",
  "settings.gallery.ui_scale.large": "Gross",
  "settings.gallery.ui_scale.xlarge": "Sehr gross",
  "settings.gallery.group_default": "Objekte automatisch gruppieren",
  "settings.gallery.default_sort.label": "Standard-Sortierung",
  "settings.gallery.default_sort.desc": "Sortierkriterium beim Start der Gallery",
  "settings.gallery.default_sort_order.label": "Sortierrichtung",
  "settings.gallery.default_sort_order.name.asc": "A → Z",
  "settings.gallery.default_sort_order.name.desc": "Z → A",
  "settings.gallery.default_sort_order.date.asc": "Älteste zuerst",
  "settings.gallery.default_sort_order.date.desc": "Neueste zuerst",
  "settings.gallery.default_sort_order.size.asc": "Kleinste zuerst",
  "settings.gallery.default_sort_order.size.desc": "Grösste zuerst",
  "settings.gallery.default_sort_order.triangles.asc": "Wenigste zuerst",
  "settings.gallery.default_sort_order.triangles.desc": "Meiste zuerst",
  "settings.gallery.default_sort_order.rating.asc": "Schlechteste zuerst",
  "settings.gallery.default_sort_order.rating.desc": "Beste zuerst",
  "settings.info.language": "Ändert die Sprache der gesamten Oberfläche. 'Auto' erkennt die Browser-Sprache.",
  "settings.info.default_sort": "Legt fest, wie Dateien in der Gallery standardmässig sortiert werden.",
  "settings.info.default_sort_order": "Aufsteigende oder absteigende Sortier-Reihenfolge.",
  "settings.info.ui_scale": "Vergrössert oder verkleinert alle UI-Elemente (Karten, Texte, Buttons).",
  "settings.info.model_light": "Farbe des 3D-Modells im Viewer bei hellem Theme.",
  "settings.info.model_dark": "Farbe des 3D-Modells im Viewer bei dunklem Theme.",
  "settings.info.badge_color": "Farbe des Dateiformat-Badges in der Gallery-Übersicht.",
  "settings.info.hidden_folders": "Ordner die mit einem Punkt oder Unterstrich beginnen werden beim Scan übersprungen.",
  "settings.info.watcher_enabled": "Überwacht Library-Ordner automatisch auf neue, geänderte oder gelöschte Dateien.",
  "settings.info.watcher_interval": "Zeitabstand zwischen den Prüfungen. Kürzere Intervalle erkennen Änderungen schneller, brauchen aber mehr Ressourcen.",
  "settings.info.watcher_notify": "Zeigt eine Browser-Benachrichtigung, wenn neue Dateien beim automatischen Scan gefunden wurden.",
  "settings.info.print_delay": "Nach dem Senden an den Slicer wird nach dieser Verzögerung ein Druck-Log-Popup angezeigt.",
  "settings.info.invert_rot_h": "Kehrt die horizontale Drehrichtung im 3D-Viewer um.",
  "settings.info.invert_rot_v": "Kehrt die vertikale Drehrichtung im 3D-Viewer um.",
  "settings.info.invert_pan_h": "Kehrt die horizontale Verschiebung im 3D-Viewer um.",
  "settings.info.invert_pan_v": "Kehrt die vertikale Verschiebung im 3D-Viewer um.",
  "settings.info.bed_toggle": "Zeigt ein massstabsgetreues Druckbett unter dem 3D-Modell im Viewer an.",
  "settings.info.bed_preset": "Wählt ein vorkonfiguriertes Druckbett mit passenden Abmessungen für deinen Drucker.",
  "settings.info.group_default": "Wenn aktiviert, werden Dateien bei jedem Ordnerwechsel automatisch nach Ordner gruppiert. Der Gruppieren-Knopf in der Toolbar kann weiterhin temporär umgeschaltet werden.",
  "settings.info.ratings": "Aktiviert das 5-Sterne-Bewertungssystem in der Gallery und im Viewer.",
  "settings.info.delete_no_confirm": "Dateien werden sofort in den Papierkorb verschoben, ohne vorherige Bestätigung.",
  "settings.info.workers": "Anzahl paralleler Prozesse für die Thumbnail-Generierung. Mehr Worker = schnellerer Scan, aber höhere CPU-Last.",
  "settings.info.debug": "Öffnet einen Live-Monitor mit Scanner-, Server- und Watcher-Logs im Browser.",
  "settings.info.full_3mf": "Analysiert alle 3MF-Dateien sofort vollständig statt Lazy-Loading. Verlangsamt den Scan erheblich.",
  "settings.info.auto_tag_overwrite": "Wenn aktiviert, werden bestehende Tags durch automatisch generierte ersetzt. Sonst werden nur neue Tags hinzugefügt.",
  "settings.thumbnails.title": "📷 Thumbnails & Scanner",
  "settings.thumbnails.hidden_folders": "📂 Versteckte Ordner ignorieren",
  "settings.thumbnails.hidden_folders_hint": "Ordner mit . oder _ Prefix überspringen",
  "settings.thumbnails.scan_hint": "Änderung wird beim nächsten Scan wirksam. Thumbnails ggf. neu generieren.",
  "settings.scanner.exclude_title": "Ausgeschlossene Ordner",
  "settings.scanner.exclude_hint": "Diese Ordner werden beim Scannen und Überwachen ignoriert.",
  "settings.scanner.exclude_add": "Ordner hinzufügen",
  "settings.scanner.exclude_manage": "Ordner verwalten",
  "settings.scanner.exclude_modal_title": "Ordner ausschließen",
  "settings.scanner.exclude_modal_done": "Fertig",
  "settings.scanner.exclude_empty": "Keine Ordner ausgeschlossen",
  "settings.scanner.exclude_remove_title": "Klicken zum Entfernen",
  "settings.watcher.title": "👁 Überwachung",
  "settings.watcher.enabled_label": "Ordner überwachen",
  "settings.watcher.enabled_hint": "Automatisch neue/geänderte Dateien erkennen",
  "settings.watcher.interval_label": "Auto-Scan Intervall",
  "settings.watcher.interval_hint": "Wie oft der Watcher prüft",
  "settings.watcher.interval.5s": "5 Sekunden",
  "settings.watcher.interval.30s": "30 Sekunden",
  "settings.watcher.interval.1m": "1 Minute",
  "settings.watcher.interval.5m": "5 Minuten",
  "settings.watcher.notify_label": "🔔 Desktop-Benachrichtigung",
  "settings.watcher.notify_hint": "Browser-Notification wenn Scan abgeschlossen",
  "settings.watcher.print_delay_label": "Popup-Verzögerung (Druck)",
  "settings.watcher.print_delay_unit": "Min",
  "settings.gcode_watch.title": "GCode-Überwachung",
  "settings.gcode_watch.enabled": "GCode-Dateien automatisch erkennen",
  "settings.gcode_watch.folders_label": "Überwachte Ordner",
  "settings.gcode_watch.default_tag": "Standard",
  "settings.gcode_watch.add_folder": "+ Ordner hinzufügen",
  "gcode.toast.detected": "GCode erkannt",
  "gcode.toast.pending_match": "Warteschlange",
  "gcode.toast.library_match": "passt zu",
  "gcode.toast.no_match": "Kein passender Eintrag gefunden",
  "gcode.toast.import_button": "Importieren",
  "gcode.toast.ignore_button": "Ignorieren",
  "gcode.toast.assign_button": "Manuell zuordnen",
  "gcode.toast.import_success": "GCode importiert",
  "gcode.toast.import_error": "GCode-Import fehlgeschlagen",
  "gcode.toast.converting_stl": "STL konvertiert",
  "gcode.match.title": "GCode erkannt",
  "gcode.match.target": "Zieldatei",
  "gcode.match.confirm": "Verknüpfen",
  "gcode.match.cancel": "Abbrechen",
  "gcode.match.only_3mf_tooltip": "Nur 3MF-Modelle können GCode einbetten — im Slicer als 3MF speichern",
  "gcode.picker.title": "Datei zuordnen",
  "gcode.picker.search_placeholder": "Dateiname suchen...",
  "gcode.link.title": "GCode verknüpfen",
  "gcode.link.default_folders": "Standard-Ordner",
  "gcode.link.folder": "Ordner",
  "gcode.link.no_gcode": "Keine GCode-Dateien gefunden",
  "gcode.link.importing": "GCode wird importiert...",
  "gcode.link.search_ph": "Suche…",
  "gcode.link.suggestions": "Vorschläge",
  "gcode.link.all": "Alle (neueste zuerst)",
  "gcode.link.count": "{n} Einträge",
  "gcode.link.type_gcode": "GCODE",
  "gcode.link.type_gcode3mf": "GCODE·3MF",
  "gcode.link.type_3mf": "3MF",
  "gcode.link.title_reverse": "Modell verknüpfen",
  "gcode.link.empty_hint_reverse": "Keine 3MF-Dateien in der Library.",
  "gcode.link.empty_hint": "Keine GCode-Dateien indexiert. Lege GCodes in einen Library-Ordner oder nutze 'Aus Datei…'",
  "gcode.link.no_search_match": "Keine Treffer",
  "gcode.link.delete_source": "Originaldateien in den Papierkorb verschieben",
  "gcode.link.browse_fallback": "Aus Datei…",
  "gcode.link.browse_title": "GCode-Datei auswählen",
  "gcode.link.back": "Zurück zur Library",
  "gcode.link.cancel": "Abbrechen",
  "gcode.link.submit": "Verknüpfen",
  "gcode.link.toast_success": "GCode verknüpft: {name}",
  "gcode.link.toast_error": "Verknüpfen fehlgeschlagen",
  "gcode.link.loading": "Laden…",
  "gcode.link.today": "heute",
  "gcode.link.yesterday": "gestern",
  "settings.colors.title": "🎨 Farben",
  "settings.colors.model_light": "Modell (Hell)",
  "settings.colors.model_dark": "Modell (Dunkel)",
  "settings.colors.badge_stl": "STL-Badge",
  "settings.colors.badge_3mf": "3MF-Badge",
  "settings.colors.badge_obj": "OBJ-Badge",
  "settings.controls.title": "🔄 3D-Viewer Steuerung",
  "settings.controls.invert_rot_h": "Rotation H invertieren",
  "settings.controls.invert_rot_v": "Rotation V invertieren",
  "settings.controls.invert_pan_h": "Pan H invertieren",
  "settings.controls.invert_pan_v": "Pan V invertieren",
  "settings.sidebar.title": "📋 Sidebar & Funktionen",
  "settings.sidebar.ratings_label": "⭐ Bewertungssystem",
  "settings.sidebar.ratings_hint": "Sterne-Bewertung in Gallery und Viewer anzeigen",
  "settings.sidebar.manage_tags": "🏷 Tags verwalten",
  "settings.sidebar.manage_categories": "📁 Kategorien verwalten",
  "settings.sidebar.add_new": "+ Neu",
  "settings.sidebar.no_tags": "Keine Tags vorhanden",
  "settings.sidebar.no_categories": "Keine Kategorien vorhanden",
  "settings.sidebar.click_to_rename": "Klick zum Umbenennen",
  "settings.sidebar.edit_title": "Bearbeiten (Name & Icon)",
  "settings.sidebar.edit_label": "Bearbeiten",
  "settings.performance.title": "⚡ Erweiterte Performance-Einstellungen",
  "settings.performance.expert_badge": "EXPERTEN",
  "settings.performance.warning_title": "Nur für erfahrene Benutzer!",
  "settings.performance.warning_msg": "Falsche Einstellungen können die Performance massiv beeinträchtigen.",
  "settings.performance.debug_label": "Debug Monitor",
  "settings.performance.debug_hint": "Live-Konsolen für Scanner, Server und Watcher im Browser",
  "settings.performance.full_3mf_label": "Vollständige 3MF-Analyse",
  "settings.performance.full_3mf_hint": "⚠ Verlangsamt den Scan massiv! Analysiert alle 3MF-Dateien sofort statt Lazy-Loading. Nützlich für Ähnlichkeitserkennung.",
  "settings.performance.workers_label": "Scan-Worker",
  "settings.performance.workers_hint": "Anzahl paralleler C-Renderer-Prozesse beim Scan (1–4)",
  "settings.performance.restart_btn": "⟳ Server neu starten",
  "settings.performance.restart_hint": "Nur bei Instabilität nötig",
  "settings.shortcut.title": "Desktop-Verknüpfung",
  "settings.shortcut.description": "Erstellt eine Verknüpfung auf dem Desktop, um STL Gallery direkt zu starten.",
  "settings.shortcut.create_btn": "Verknüpfung erstellen",
  "settings.dup_trash.title": "🗑️ Duplikate-Papierkorb",
  "settings.dup_trash.description": "Hierher verschobene Duplikate können wiederhergestellt oder endgültig gelöscht werden.",
  "settings.dup_trash.view_btn": "📂 Gelöschte Duplikate ansehen",
  "settings.delete.title": "🗑 Dateien löschen",
  "settings.delete.no_confirm_label": "Löschen ohne Rückfrage",
  "settings.delete.no_confirm_hint": "Dateien direkt in den Papierkorb verschieben, ohne Bestätigungsdialog",
  "settings.delete.view_trash_btn": "📂 Papierkorb ansehen",
  "settings.btn.cancel": "Abbrechen",
  "settings.btn.save": "Speichern",
  "ctx.set_favorite": "☆ Favorit setzen",
  "ctx.remove_favorite": "★ Favorit entfernen",
  "ctx.rating_label": "Bewertung:",
  "ctx.tags_header": "TAGS",
  "ctx.categories_header": "KATEGORIEN",
  "ctx.new_tag": "+ Neuer Tag...",
  "ctx.tag_cat.edit": "✏️ Bearbeiten",
  "ctx.tag_cat.regen_thumbs": "🔄 Thumbnails regenerieren",
  "ctx.tag_cat.untag_all": "🏷 Alle Dateien entfernen",
  "ctx.tag_cat.delete": "🗑 Löschen",
  "ctx.tag_cat.keywords_label": "Suchbegriffe:",
  "ctx.tag_cat.no_keywords": "Keine Suchbegriffe definiert",
  "ctx.tag_cat.auto_scan": "🔍 Auto-Scan starten",
  "ctx.clear_all_tags": "🏷 Alle Tags entfernen",
  "ctx.clear_all_categories": "📂 Alle Kategorien entfernen",
  "ctx.bulk_categories": "Kategorien zuweisen…",
  "ctx.bulk_clear_cats": "Alle Kategorien entfernen",
  "ctx.bulk_deselect": "Auswahl aufheben",
  "ctx.open_explorer": "📂 Im Explorer öffnen",
  "ctx.download": "📥 Herunterladen",
  "ctx.regen_thumb": "🔄 Thumbnail erneuern",
  "ctx.mark_seen": "✓ Als gesehen markieren",
  "ctx.delete_file": "🗑 Löschen",
  "ctx.send_to_slicer": "🖨 An Slicer senden",
  "ctx.configure_slicer": "⚙️ Slicer konfigurieren",
  "ctx.complete_3mf": "📦 Komplette 3MF",
  "ctx.selection": "🔹 Auswahl: {name}",
  "ctx.send_to": "An {name} senden",
  "ctx.folder.reindex": "🔄 Neu indexieren",
  "ctx.folder.regen_thumbs": "🖼 Thumbnails neu generieren",
  "ctx.folder.remove_from_list": "🗑 Aus Liste entfernen",
  "ctx.folder.rescan": "🔄 Neu scannen",
  "ctx.folder.remove_files": "🗑 Dateien entfernen",
  "ctx.folder.pin": "Ordner anheften",
  "ctx.folder.unpin": "Losheften",
  "ctx.group.pin": "Ordner anheften",
  "ctx.group.unpin": "Losheften",
  "ctx.group.rescan": "🔄 Neu scannen",
  "ctx.group.regen_thumbs": "🖼 Thumbnails neu generieren",
  "ctx.group.open_explorer": "📂 Im Dateimanager öffnen",
  "ctx.new_files.mark_all_seen": "✓ Alle als gesehen markieren",
  "confirm.remove_folder": "Ordner aus der Bibliothek entfernen?\n\n{path}\n\nAlle indexierten Dateien und Thumbnails werden gelöscht.",
  "confirm.remove_folder_title": "Ordner entfernen",
  "confirm.remove_folder_msg": "{path}\n\nAlle indexierten Dateien und Thumbnails werden gelöscht.",
  "confirm.remove_subfolder": "Alle Dateien aus Unterordner entfernen?\n\n{name}\n\nDie indexierten Dateien und Thumbnails werden gelöscht. Der Ordner bleibt bestehen.",
  "confirm.remove_subfolder_title": "Unterordner entfernen",
  "confirm.remove_subfolder_msg": "{name}\n\nDie indexierten Dateien und Thumbnails werden gelöscht. Der Ordner bleibt bestehen.",
  "confirm.remove_btn": "Entfernen",
  "confirm.cancel": "Abbrechen",
  "confirm.non_mesh_title": "{ext}-Datei",
  "confirm.non_mesh_msg": "STL Gallery kann diese Datei nicht direkt anzeigen. Soll sie in der zugehörigen Software geöffnet werden?",
  "confirm.non_mesh_open": "Software öffnen",
  "confirm.delete_category": "Kategorie \"{name}\" löschen?",
  "confirm.delete_tag": "Tag \"{name}\" löschen?",
  "confirm.delete_tag_full": "Tag \"{name}\" wirklich löschen?\n\nDer Tag wird von allen Dateien entfernt.",
  "confirm.delete_category_full": "Kategorie \"{name}\" wirklich löschen?\n\nDie Kategorie wird von allen Dateien entfernt.",
  "confirm.untag_all_category": "Alle Dateien aus Kategorie \"{name}\" entfernen?\n\nDie Kategorie selbst bleibt bestehen.",
  "confirm.untag_all_tag": "Alle Dateien von Tag \"{name}\" entfernen?\n\nDer Tag selbst bleibt bestehen.",
  "toast.untag_all_done": "Alle Dateien aus \"{name}\" entfernt",
  "confirm.restart_server": "Server wirklich neu starten?\n\nDie Seite wird nach dem Neustart automatisch neu geladen.",
  "error.generic": "Fehler: {message}",
  "error.http": "Fehler {status}",
  "error.slicer_failed": "Slicer-Start fehlgeschlagen",
  "error.folder_not_found": "Übergeordneter Ordner nicht gefunden",
  "error.scan_failed": "Fehler beim Indexieren: {status}",
  "error.subfolder_scan_failed": "Fehler beim Scannen: {status}",
  "error.tag_exists": "Tag existiert bereits",
  "alert.new_tag_prompt": "Neuer Tag-Name:",
  "scan.status": "Indexiere: {file} ({done}/{total})",
  "scan.status_queue": "Indexiere: {file} ({done}/{total}) (Ordner {queue_done}/{queue_total})",
  "scan.phase_discovery": "Suche Dateien...",
  "scan.thumbnail_progress": "Thumbnails: {done}/{total}",
  "scan.loading_thumbnails": "Lade Thumbnails...",
  "scan.complete_notification": "Scan abgeschlossen!",
  "scan.eta_calculating": "ETA wird berechnet…",
  "restart.title": "Server wird neu gestartet…",
  "restart.waiting": "Warte auf Server…",
  "restart.waiting_count": "Warte auf Server… ({seconds}s)",
  "restart.reconnected": "Server ist wieder da! Lade Seite neu…",
  "restart.failed": "Server antwortet nicht. Bitte manuell neu starten.",
  "format.objects": "Objekte",
  "format.object_single": "Objekt {index}",
  "welcome.update_available": "Neue Version {version} verfügbar — jetzt herunterladen",
  "welcome.update_current": "Version ist aktuell",
  "welcome.update_error": "Update-Prüfung fehlgeschlagen",
  "update.confirm_title": "Update installieren",
  "update.confirm_message": "Update auf v{version} installieren? Die App wird neu gestartet.",
  "update.confirm_button": "Jetzt updaten",
  "update.cancel_button": "Abbrechen",
  "update.downloading": "Lade Update herunter…",
  "update.preparing": "Bereite Update vor…",
  "update.restarting": "App wird neu gestartet…",
  "update.error": "Update fehlgeschlagen. Bitte manuell herunterladen.",
  "update.check_button": "Nach Updates suchen",
  "welcome.shortcut_prompt": "Desktop-Verknüpfung für STL Gallery erstellen?",
  "welcome.shortcut_yes": "Ja, bitte",
  "welcome.shortcut_no": "Nein danke",
  "welcome.shortcut_created": "Desktop-Verknüpfung wurde erstellt",
  "viewer.similar.title": "Ähnliche Modelle",
  "viewer.similar.loading": "Suche ähnliche…",
  "viewer.similar.none": "Keine ähnlichen Modelle",
  "viewer.similar.score": "{score}% ähnlich",
  "ctx.find_similar": "Ähnliche Modelle",
  "settings.viewer.bed_title": "Druckbett",
  "settings.viewer.bed_toggle": "Druckbett im Viewer anzeigen",
  "settings.viewer.bed_x": "Breite (X) mm",
  "settings.viewer.bed_y": "Tiefe (Y) mm",
  "settings.viewer.bed_z": "Höhe (Z) mm",
  "settings.viewer.bed_preset": "Drucker-Vorlage",
  "settings.viewer.bed_preset_pick": "— Drucker wählen —",
  "viewer.bed.too_large": "Modell größer als Druckbett!",
  "gallery.mesh_warning": "Mesh-Probleme erkannt",
  "viewer.mesh.title": "Mesh-Qualität",
  "viewer.mesh.non_manifold": "Nicht-manifold Kanten",
  "viewer.mesh.flipped": "Gedrehte Normalen",
  "viewer.mesh.degenerate": "Degenerierte Dreiecke",
  "viewer.mesh.ok": "Keine Probleme",
  "auto_tag.title": "Auto-Tagging",
  "auto_tag.loading": "Analysiere Dateien…",
  "auto_tag.no_suggestions": "Keine Vorschläge — alle Dateien sind bereits getaggt oder konnten nicht erkannt werden.",
  "auto_tag.error": "Fehler beim Laden der Vorschläge.",
  "auto_tag.count": "{count} Vorschläge",
  "auto_tag.select_all": "Alle",
  "auto_tag.select_none": "Keine",
  "auto_tag.cancel": "Abbrechen",
  "auto_tag.apply": "Anwenden",
  "auto_tag.applied": "{count} Dateien getaggt",
  "auto_tag.none_selected": "Keine Vorschläge ausgewählt.",
  "auto_tag.sidebar_categories": "Kategorien",
  "auto_tag.sidebar_confidence": "Konfidenz",
  "auto_tag.filter_all": "Alle",
  "auto_tag.selected_label": "ausgewählt",
  "auto_tag.click_remove": "Klicken zum Entfernen",
  "auto_tag.add_category": "Kategorie/Tag hinzufügen",
  "ctx.auto_tag": "Auto-Tag vorschlagen",
  "ctx.link_gcode": "GCode verknüpfen",
  "ctx.link_gcode_reverse": "Modell verknüpfen",
  "gcode.match.detected": "GCode erkannt",
  "settings.auto_tag.title": "Auto-Tagging",
  "settings.auto_tag.overwrite": "Bereits getaggte Dateien einbeziehen",
  "settings.auto_tag.run": "Jetzt ausführen",
  "settings.auto_tag.keywords_title": "Keyword-Zuordnung",
  "settings.auto_tag.keywords_desc": "Begriffe pro Kategorie definieren. Eingabe mit Enter bestätigen, × zum Entfernen, Doppelklick zum Bearbeiten. Dateien mit diesen Begriffen im Namen oder Pfad werden automatisch zugeordnet.",
  "settings.auto_tag.keywords_placeholder": "z.B. gear, bracket, mount, halter...",
  "settings.auto_tag.keywords_save": "Keywords speichern",
  "settings.auto_tag.keywords_saved": "Keywords gespeichert",
  "settings.auto_tag.keywords_remove": "Entfernen",
  "settings.auto_tag.auto_run_result": "{count} Dateien haben einen AutoTag erhalten",
  "settings.auto_tag.auto_run_none": "Keine Aenderungen stattgefunden",
  "settings.auto_tag.cleanup_result": "{count} Dateien aus Kategorie entfernt",
  "settings.auto_tag.suggestions_title": "Vorschlaege aus Dateinamen",
  "settings.auto_tag.suggestions_desc": "Haeufige Begriffe in deiner Bibliothek. Klicke + um ein Wort einer Kategorie zuzuordnen.",
  "settings.auto_tag.suggestions_loading": "Wird geladen...",
  "settings.auto_tag.suggestions_empty": "Keine Vorschlaege gefunden",
  "settings.auto_tag.suggestions_add": "Einer Kategorie zuordnen",
  "gallery.plugin.open_slicer": "Slicer öffnen",
  "gallery.plugin.open_app": "{app} öffnen",
  "settings.cat.import_suggestions": "📦 Vorschläge importieren",
  "settings.cat.import_suggestions_title": "Importiert 30 vordefinierte 3D-Druck-Kategorien inkl. Keywords (bestehende werden übersprungen)",
  "settings.cat.import_confirm": "{count} von {total} Vorschlags-Kategorien werden importiert. Fortfahren?",
  "settings.cat.import_result": "{count} Kategorien importiert",
  "settings.cat.import_none": "Alle {total} Vorschlags-Kategorien existieren bereits",
  "dnd.conflict.title": "Konflikte beim Verschieben",
  "dnd.conflict.summary": "{count} von {total} Dateien existieren bereits im Ziel",
  "dnd.conflict.target_label": "in »{target}«",
  "dnd.conflict.existing": "Vorhanden",
  "dnd.conflict.incoming": "Neu",
  "dnd.conflict.question": "Wie möchtest du vorgehen?",
  "dnd.conflict.skip": "Überspringen",
  "dnd.conflict.rename": "Beide behalten (umbenennen)",
  "dnd.cancel": "Abbrechen",
  "toast.move.success": "{count} Datei(en) nach '{folder}' verschoben",
  "toast.move.partial": "{done} verschoben, {skipped} übersprungen",
  "toast.move.trash": "{count} Datei(en) in Papierkorb",
  "toast.move.error": "Verschieben fehlgeschlagen: {reason}",
  "toast.move.same_folder": "Datei(en) liegen bereits im Ziel-Ordner",
  "toast.move.outside_library": "Ziel liegt ausserhalb der registrierten Bibliothek",
  "toast.move.cancelled": "Abgebrochen",
  "toast.move.db_failed": "{count} Datei(en) verschoben, aber Datenbank-Update fehlgeschlagen",
  "toast.move.inconsistent": "Warnung: Inkonsistenter Zustand, siehe Log",
  "toast.select.incomplete": "Auswahl unvollständig — nicht alle Seiten konnten geladen werden"
}
