export const settings = {
title: 'Einstellungen',
language: 'Sprache',
languageEn: 'English',
languageDe: 'Deutsch',
languageEs: 'Español',
languageFr: 'Français',
languageNl: 'Nederlands',
languageNb: 'Norsk',
languageRu: 'Русский',
languageZh: '中文',
languageRo: 'Română',
font: 'Schriftart',
fontHintOpenDyslexic: 'Legasthenie-freundlich · keine Chinesisch-Unterstützung',
theme: 'Design',
appearance: 'Darstellung',
servers: 'Server',
serverName: 'Server-Name',
serverUrl: 'Server-URL',
serverUrlPlaceholder: '192.168.1.100:4533 oder https://music.example.com',
serverAlternateUrl: 'Zweite Adresse (optional)',
serverAlternateUrlPlaceholderPublic: 'https://music.example.com',
serverAlternateUrlPlaceholderLocal: '192.168.1.100:4533',
serverAlternateUrlHintAddPublic: 'Du kannst eine öffentliche Adresse hinzufügen, um außerhalb deines Heimnetzwerks zuzugreifen.',
serverAlternateUrlHintAddLocal: 'Du kannst eine lokale Adresse hinzufügen, um zu Hause schneller zu verbinden.',
serverBothLanError: 'Beide Adressen sind lokal — eine entfernen oder eine öffentliche hinzufügen.',
dualAddressVerifying: 'Prüfe, ob beide Adressen denselben Server meinen…',
dualAddressMismatch: 'Die beiden Adressen zeigen auf unterschiedliche Server. Schreibweise prüfen und erneut versuchen.',
dualAddressInsufficient: 'Konnte nicht bestätigen, dass beide Adressen derselbe Server sind. Entferne eine Adresse, um fortzufahren.',
dualAddressUnreachable: 'Konnte {{host}} nicht erreichen. Adresse und Netzwerk prüfen, dann erneut versuchen.',
urlRemigrationTitle: 'Bibliotheksdaten verschieben?',
urlRemigrationMessage: 'Beim Ändern der Adresse werden alle Bibliotheks-, Analyse- und Cover-Cache-Daten von {{oldKey}} nach {{newKey}} verschoben. Das kann nicht rückgängig gemacht werden.',
urlRemigrationConfirm: 'Daten verschieben',
urlRemigrationProgress: 'Bibliotheksdaten werden verschoben…',
urlRemigrationFailureInspect: 'Konnte nicht prüfen, was verschoben würde. Erneut versuchen oder das Debug-Log öffnen.',
urlRemigrationFailureRun: 'Verschieben der Bibliotheksdaten ist fehlgeschlagen. Deine gespeicherten Daten sind unverändert — erneut versuchen.',
urlRemigrationFailureCoverRename: 'Bibliotheksdaten wurden verschoben, aber Cover-Dateien konnten nicht umbenannt werden. Cover werden beim nächsten Zugriff neu aufgebaut.',
shareUsesLocalUrl: 'Lokale Adresse in Freigabe-Links verwenden',
shareUsesLocalUrlDesc: 'Wirkt sich auf Orbit-Einladungen und Bibliotheks-Freigaben aus. Standard: öffentliche Adresse.',
serverUsername: 'Benutzername',
serverPassword: 'Passwort',
addServer: 'Server hinzufügen',
addServerTitle: 'Neuen Server hinzufügen',
editServer: 'Bearbeiten',
editServerTitle: 'Server bearbeiten',
useServer: 'Verwenden',
deleteServer: 'Löschen',
noServers: 'Keine Server gespeichert.',
serverActive: 'Aktiv',
serverVersionUnknown: 'Serverversion unbekannt',
confirmDeleteServer: 'Server „{{name}}" löschen?',
confirmDeleteServerLibrary: 'Auch den lokalen Bibliotheksindex dieses Servers löschen? Auf Abbrechen klicken, um die zwischengespeicherte Kopie für die Offline-Nutzung zu behalten.',
serverConnecting: 'Verbinde…',
serverConnected: 'Verbunden!',
serverFailed: 'Verbindung fehlgeschlagen.',
testBtn: 'Verbindung testen',
testingBtn: 'Teste…',
serverCompatible: 'Für Navidrome entwickelt. Andere Subsonic-kompatible Server (Gonic, Airsonic, …) funktionieren ggf. eingeschränkt, weil Psysonic viele Navidrome-spezifische API-Endpunkte nutzt.',
userMgmtTitle: 'Benutzerverwaltung',
userMgmtDesc: 'Benutzer auf diesem Server verwalten. Erfordert Admin-Rechte.',
userMgmtNoAdmin: 'Du brauchst Admin-Rechte, um Benutzer auf diesem Server zu verwalten.',
userMgmtLoadError: 'Benutzer konnten nicht geladen werden.',
userMgmtLoadFriendly: 'Server hat nicht geantwortet — meistens ein Einzelfall.',
userMgmtRetry: 'Erneut versuchen',
userMgmtEmpty: 'Keine Benutzer gefunden.',
userMgmtYouBadge: 'Du',
userMgmtAdminBadge: 'Admin',
userMgmtAddUser: 'Benutzer hinzufügen',
userMgmtAddUserTitle: 'Neuen Benutzer anlegen',
userMgmtEditUserTitle: 'Benutzer bearbeiten',
userMgmtUsername: 'Benutzername',
userMgmtName: 'Anzeigename',
userMgmtEmail: 'E-Mail',
userMgmtPassword: 'Passwort',
userMgmtPasswordEditHint: 'Neues Passwort eingeben, um es zu ändern.',
userMgmtRoleAdmin: 'Admin',
userMgmtLibraries: 'Bibliotheken',
userMgmtLibrariesAdminHint: 'Admin-Benutzer haben automatisch Zugriff auf alle Bibliotheken.',
userMgmtLibrariesEmpty: 'Keine Bibliotheken auf diesem Server vorhanden.',
userMgmtLibrariesValidation: 'Mindestens eine Bibliothek auswählen.',
userMgmtLibrariesUpdateError: 'Benutzer gespeichert, aber Bibliothekszuweisung fehlgeschlagen',
userMgmtNoLibraries: 'Keine Bibliotheken zugewiesen',
userMgmtNeverSeen: 'Nie',
userMgmtSave: 'Speichern',
userMgmtCancel: 'Abbrechen',
userMgmtDelete: 'Löschen',
userMgmtEdit: 'Bearbeiten',
userMgmtConfirmDelete: 'Benutzer „{{username}}" löschen? Das kann nicht rückgängig gemacht werden.',
userMgmtCreateError: 'Benutzer konnte nicht angelegt werden.',
userMgmtUpdateError: 'Benutzer konnte nicht aktualisiert werden.',
userMgmtDeleteError: 'Benutzer konnte nicht gelöscht werden.',
userMgmtCreated: 'Benutzer angelegt.',
userMgmtUpdated: 'Benutzer aktualisiert.',
userMgmtDeleted: 'Benutzer gelöscht.',
userMgmtValidationMissing: 'Benutzername, Anzeigename und Passwort sind erforderlich.',
userMgmtValidationMissingIdentity: 'Benutzername und Anzeigename sind erforderlich.',
userMgmtMagicStringGenerate: 'Magic-String erzeugen',
userMgmtSaveAndMagicString: 'Speichern und Magic-String kopieren',
userMgmtMagicStringPasswordNavHint:
'Navidrome speichert dieses Passwort für den Benutzer. Weicht es vom aktuellen ab, wird das Anmeldepasswort auf dem Server aktualisiert.',
userMgmtMagicStringPlaintextWarning:
'Teilen Sie den Magic-String vorsichtig: Er enthält das Passwort im Klartext (Kodierung ist keine Verschlüsselung). Wer die vollständige Zeichenkette hat, kann sich als dieser Benutzer anmelden.',
userMgmtMagicStringCopied: 'Magic-String in die Zwischenablage kopiert.',
userMgmtMagicStringCopyFailed: 'Kopieren in die Zwischenablage fehlgeschlagen.',
userMgmtMagicStringLoginFailed: 'Passwortprüfung fehlgeschlagen — Anmeldedaten konnten nicht verifiziert werden.',
userMgmtMagicStringModalTitle: 'Magic-String erzeugen',
userMgmtMagicStringModalDesc: 'Subsonic-Passwort für „{{username}}" eingeben — es wird in den kopierten Magic-String übernommen.',
userMgmtMagicStringModalConfirm: 'String kopieren',
audiomuseTitle: 'AudioMuse-AI (Navidrome)',
audiomuseBadge: 'AudioMuse-AI',
audiomuseStatusActive: 'Aktiv',
audiomuseStatusChecking: 'Wird geprüft…',
audiomuseStatusNotDetected: 'Nicht erkannt',
audiomuseStatusProbeFailed: 'Prüfung fehlgeschlagen',
audiomuseDesc:
'Aktivieren, wenn dieser Server das AudioMuse-AI-Navidrome-Plugin nutzt. Schaltet Instant Mix pro Titel frei und nutzt ähnliche Künstler vom Server statt Last.fm auf Künstlerseiten.',
audiomuseIssueHint:
'Instant Mix ist kürzlich fehlgeschlagen — Navidrome-Plugin und AudioMuse-API prüfen. Ohne Server-Treffer werden ähnliche Künstler über Last.fm geladen.',
connected: 'Verbunden',
failed: 'Fehlgeschlagen',
eqTitle: 'Equalizer',
eqEnabled: 'Equalizer aktivieren',
eqPreset: 'Preset',
eqPresetCustom: 'Benutzerdefiniert',
eqPresetBuiltin: 'Eingebaute Presets',
eqPresetCustomGroup: 'Meine Presets',
eqSavePreset: 'Als Preset speichern',
eqPresetName: 'Preset-Name…',
eqDeletePreset: 'Preset löschen',
eqResetBands: 'Auf Flat zurücksetzen',
eqPreGain: 'Vorverstärkung',
eqResetPreGain: 'Vorverstärkung zurücksetzen',
eqAutoEqTitle: 'AutoEQ Kopfhörer-Suche',
eqAutoEqPlaceholder: 'Kopfhörer / IEM Modell suchen…',
eqAutoEqSearching: 'Suche…',
eqAutoEqNoResults: 'Keine Ergebnisse gefunden',
eqAutoEqError: 'Suche fehlgeschlagen',
eqAutoEqRateLimit: 'GitHub Rate-Limit erreicht — in einer Minute erneut versuchen',
eqAutoEqFetchError: 'EQ-Profil konnte nicht geladen werden',
behavior: 'App-Verhalten',
cacheTitle: 'Max. Speichergröße',
cacheDesc: 'Browser-Cache für Cover und Künstlerbilder (IndexedDB). Wenn voll, werden die ältesten Einträge automatisch entfernt.',
cacheUsedImages: 'Bilder:',
cacheUsedOffline: 'Offline-Tracks:',
cacheUsedHot: 'Belegter Speicher:',
hotCacheTrackCount: 'Titel im Cache:',
cacheMaxLabel: 'Max. Größe',
imageCacheScopeLabel: 'Bereich',
imageCacheSubTitle: 'Vorschauen im Browser',
coverDiskCacheSubTitle: 'Cover-Cache auf der Festplatte',
coverCacheStrategyTitle: 'Cover-Cache',
coverCacheStrategyDesc: 'Du kannst für jeden Server eine Strategie wählen: Lazy — Cover bei Bedarf laden; Aggressive — bei Bedarf laden plus zusätzliches Vorladen im Hintergrund.',
coverCacheStrategyLabel: 'Strategie',
coverCacheStrategyServerLabel: 'Server',
coverCacheStrategyProgressLabel: 'Cache',
coverCacheStrategyActionsLabel: 'Aktionen',
coverCacheStrategyLazy: 'Lazy',
coverCacheStrategyLazyDesc: 'Lädt Cover nur, wenn sie benötigt werden.',
coverCacheStrategyAggressive: 'Aggressive',
coverCacheStrategyAggressiveDesc: 'Lazy-Verhalten plus zusätzliches Vorladen im Hintergrund.',
coverCacheStrategyDiskUsage: 'Auf der Festplatte: {{size}}',
coverCacheStrategyProgressValue: '{{percent}}% ({{done}}/{{total}}) · {{size}}',
coverCacheStrategyClearAction: 'Cover-Cache leeren',
coverCacheStrategyClearTitle: 'Cover-Cache leeren?',
coverCacheStrategyClearDesc: 'Entfernt alle gecachten Cover-Bilder für {{server}}. Sie werden bei Bedarf neu heruntergeladen.',
coverCacheStrategyClearConfirm: 'Leeren',
coverCacheStrategyClearCancel: 'Abbrechen',
coverCacheStrategyClearSuccess: 'Cover-Cache für diesen Server geleert.',
coverCacheStrategyClearError: 'Cover-Cache konnte nicht geleert werden.',
coverCacheStrategyServerRemoved: 'entfernter Server',
cacheClearBtn: 'Cache leeren',
cacheClearWarning: 'Löscht alle gecachten Cover- und Künstlerbilder im Browser-Speicher. Sie werden bei Bedarf neu geladen.',
cacheClearConfirm: 'Bild-Cache leeren',
cacheClearCancel: 'Abbrechen',
mediaDirTitle: 'Medienordner',
mediaDirDesc: 'Stammordner für lokale Wiedergabe. Offline-Bibliothek: library/; Warteschlangen-Puffer: cache/.',
mediaDirDefault: 'Standard (App-Daten)',
mediaDirChange: 'Ordner ändern',
mediaDirClear: 'Auf Standard zurücksetzen',
mediaDirHint: 'Neue Downloads nutzen diesen Ort. Bestehende Dateien bleiben am ursprünglichen Pfad, bis du sie entfernst.',
offlineStorageTitle: 'Offline-Speicher',
offlineDirTitle: 'Offline-Bibliothek (In-App)',
offlineDirDesc: 'Speicherort für Titel, die du innerhalb von Psysonic offline verfügbar machst.',
offlineDirDefault: 'Standard (App-Daten)',
offlineDirChange: 'Verzeichnis ändern',
offlineDirClear: 'Auf Standard zurücksetzen',
offlineDirHint: 'Neue Downloads werden an diesem Ort gespeichert. Bestehende Downloads verbleiben am ursprünglichen Pfad.',
hotCacheTitle: 'Hot-Playback-Cache',
hotCacheDisclaimer: 'Lädt kommende Warteschlangen-Titel vor und behält zuletzt gespielte. Bei aktivierter Option: Speicherplatz und Netzwerk.',
hotCacheDirDefault: 'Standard (App-Daten)',
hotCacheDirChange: 'Ordner ändern',
hotCacheDirClear: 'Auf Standard zurücksetzen',
hotCacheDirHint: 'Beim Ordnerwechsel wird der App-Index zurückgesetzt; alte Dateien bleiben am alten Ort, bis Sie sie löschen.',
hotCacheEnabled: 'Hot-Playback-Cache aktivieren',
hotCacheMaxMb: 'Maximale Cache-Größe',
hotCacheDebounce: 'Debounce bei Warteschlangen-Änderungen',
hotCacheDebounceImmediate: 'Sofort',
hotCacheDebounceSeconds: '{{n}} s',
hotCacheClearBtn: 'Hot-Cache leeren',
audioOutputDevice: 'Audio-Ausgabegerät',
audioOutputDeviceDesc: 'Wähle das Audiogerät, über das Psysonic spielt. Änderungen werden sofort übernommen und starten den aktuellen Track neu.',
audioOutputDeviceDefault: 'Systemstandard',
audioOutputDeviceRefresh: 'Geräteliste aktualisieren',
audioOutputDeviceOsDefaultNow: 'aktuelle Systemausgabe',
audioOutputDeviceListError: 'Audiogeräteliste konnte nicht geladen werden.',
audioOutputDeviceNotInCurrentList: 'nicht in der aktuellen Liste',
audioOutputDeviceMacNotice: 'Auf macOS folgt die Wiedergabe aus technischen Gründen zurzeit immer dem System-Ausgabegerät. Du kannst das Ziel über Systemeinstellungen → Ton oder das Lautsprecher-Symbol in der Menüleiste wechseln. Hintergrund: CoreAudio löst beim Öffnen eines nicht-Default-Streams eine Mikrofonberechtigungsabfrage aus — wir vermeiden sie, indem wir stets den System-Default verwenden.',
hiResTitle: 'Native Hi-Res-Wiedergabe',
hiResEnabled: 'Native Hi-Res-Wiedergabe aktivieren',
hiResDesc: "Standardmäßig wird auf 44,1 kHz begrenzt (maximale Stabilität). Nur aktivieren, wenn Hardware und Netzwerk zuverlässig hohe Abtastraten (88,2 kHz+) unterstützen.",
showArtistImages: 'Künstlerbilder anzeigen',
showArtistImagesDesc: 'Lädt und zeigt Künstlerbilder in der Künstlerübersicht. Standardmäßig deaktiviert, um Server-I/O und Netzwerklast bei großen Bibliotheken zu reduzieren.',
showOrbitTrigger: '„Orbit" im Header zeigen',
showOrbitTriggerDesc: 'Der Kopfzeilen-Button zum Starten oder Beitreten einer gemeinsamen Hör-Session. Ausblenden, wenn du Orbit nicht nutzt — hier lässt er sich jederzeit wieder einschalten.',
showTrayIcon: 'Tray-Icon anzeigen',
showTrayIconDesc: 'Psysonic-Icon im System-Tray / in der Menüleiste anzeigen.',
minimizeToTray: 'Im Tray minimieren',
minimizeToTrayDesc: 'Beim Schließen des Fensters läuft Psysonic weiter im System-Tray statt zu beenden.',
clockFormat: 'Uhrzeitformat',
clockFormatDesc: 'Format für die Queue-ETA und die Vorschau des Sleep-Timers.',
clockFormatAuto: 'Automatisch (Systemsprache)',
clockFormatTwentyFour: '24-Stunden',
clockFormatTwelve: '12-Stunden (AM/PM)',
preloadMiniPlayer: 'Mini-Player vorladen',
preloadMiniPlayerDesc: 'Baut das Mini-Player-Fenster beim App-Start im Hintergrund auf, damit es beim ersten Öffnen sofort Inhalt zeigt. Kostet etwas mehr RAM.',
discordRichPresence: 'Discord Rich Presence',
discordRichPresenceDesc: 'Zeigt den aktuell gespielten Titel im Discord-Profil an. Discord muss dafür geöffnet sein.',
discordRichPresenceNotice: 'Achtung: Dies ist die in Psysonic integrierte Discord Rich Presence. Wenn du stattdessen das offizielle Navidrome-Discord-Rich-Presence-Plugin nutzen möchtest, lass diese Funktion deaktiviert und aktiviere stattdessen weiter unten auf dieser Seite „Im Livefenster anzeigen".',
useCustomTitlebar: 'Eigene Titelleiste',
useCustomTitlebarDesc: 'Ersetzt die System-Titelleiste durch eine eingebaute, die zum App-Theme passt. Deaktivieren, um die native GNOME/GTK-Titelleiste zu verwenden.',
windowButtonStyle: 'Fenster-Buttons',
windowButtonStyleDesc: 'Wähle das Aussehen der Minimieren-, Maximieren- und Schließen-Buttons.',
windowButtonsDots: 'Punkte',
windowButtonsDotsGlyph: 'Punkte + Symbole',
windowButtonsFlat: 'Flach',
windowButtonsPill: 'Pille',
windowButtonsOutline: 'Umriss',
windowButtonsGlyph: 'Minimal',
showMinimizeButton: 'Minimieren-Button anzeigen',
showMinimizeButtonDesc: 'Ausschalten, um nur Maximieren und Schließen anzuzeigen.',
linuxWebkitSmoothScroll: 'Sanftes Mausrad (Linux)',
linuxWebkitSmoothScrollDesc: 'An: mit Nachlauf. Aus: zeilenweise wie in GTK-Apps.',
linuxWebkitInputForceRepaint: 'Eingabefelder beim Fokus neu zeichnen (Linux)',
linuxWebkitInputForceRepaintDesc: 'Behelf für WebKitGTK 2.50.x, wo Textfelder beim Klick einfrieren. Such-Icons flackern beim Fokus kurz.',
linuxWaylandTextRender: 'Wayland-Textdarstellung (Linux)',
linuxWaylandTextRenderDesc:
'Kantenglättung in der Oberfläche wirkt sofort. Die WebKit-Beschleunigungsrichtlinie (scharf/GPU) wird gespeichert und beim nächsten App-Start angewendet — ein Live-Umschalten kann WebKitGTK einfrieren.',
linuxWaylandTextRenderBalanced: 'Ausgewogen',
linuxWaylandTextRenderSharp: 'Scharf (CPU-freundlich)',
linuxWaylandTextRenderGpu: 'GPU zuerst',
linuxWaylandTextRenderMinimal: 'Minimal (Standard-CSS-Glättung)',
discordCoverSource: 'Cover-Quelle',
discordCoverSourceDesc: 'Woher das Album-Cover für dein Discord-Profil geladen wird.',
discordCoverNone: 'Keine (nur App-Symbol)',
discordCoverServer: 'Server (über Album-Info)',
discordCoverApple: 'Apple Music',
discordOptions: 'Erweiterte Discord-Optionen',
discordTemplates: 'Benutzerdefinierte Textvorlagen',
discordTemplatesDesc: 'Passen Sie an, welche Informationen in Ihrem Discord-Profil angezeigt werden. Variablen: {title}, {artist}, {album}',
discordTemplateDetails: 'Primäre Zeile (details)',
discordTemplateState: 'Sekundäre Zeile (state)',
discordTemplateLargeText: 'Album-Tooltip (largeText)',
discordTemplateName: 'Userliste-Zeile (name)',
nowPlayingEnabled: 'Im Livefenster anzeigen',
nowPlayingEnabledDesc: 'Überträgt den aktuell gespielten Titel an die Livehörer-Ansicht des Servers. Deaktivieren, um keine Wiedergabedaten zu senden.',
nowPlayingPluginNote: 'Notwendig bei Verwendung des offiziellen Navidrome-Discord-Rich-Presence-Plugins.',
enableBandsintown: 'Bandsintown-Tourdaten',
enableBandsintownDesc: 'Zeigt anstehende Konzerte des aktuellen Künstlers im Info-Tab. Daten werden über die öffentliche Bandsintown-API abgerufen.',
lyricsServerFirst: 'Server-Lyrics bevorzugen',
lyricsServerFirstDesc: 'Server-seitige Lyrics (eingebettete Tags, Sidecar-Dateien) vor LRCLIB abfragen. Deaktivieren, um LRCLIB zuerst zu verwenden.',
enableNeteaselyrics: 'Netease Cloud Music Lyrics',
enableNeteaselyricsDesc: 'Netease Cloud Music als letzte Lyrics-Quelle verwenden, wenn Server und LRCLIB nichts liefern. Besonders gut für asiatische und internationale Musik.',
lyricsSourcesTitle: 'Lyrics-Quellen',
lyricsSourcesDesc: 'Wähle, welche Quellen für Lyrics abgefragt werden und in welcher Reihenfolge. Ziehen zum Sortieren. Deaktivierte Quellen werden übersprungen.',
lyricsSourceServer: 'Server',
lyricsSourceLrclib: 'LRCLIB',
lyricsSourceNetease: 'Netease Cloud Music',
lyricsYouLyPlus: 'YouLyPlus (Karaoke)',
lyricsYouLyPlusDesc: 'Wort-für-Wort-Sync über ein Community-Backend (Apple Music, Spotify, Musixmatch, QQ). Wird zuerst versucht; die aktivierten Quellen unten dienen als Fallback.',
lyricsSourcesFallbackHint: 'Dienen als Fallback, wenn YouLyPlus nichts findet. Zum Sortieren ziehen.',
lyricsSourcesPrimaryHint: 'Werden der Reihe nach genutzt. Zum Sortieren ziehen. Alle aus = Lyrics deaktiviert.',
lyricsStaticOnly: 'Nur statische Lyrics anzeigen',
lyricsStaticOnlyDesc: 'Synchronisierte Lyrics werden ohne Auto-Scroll und ohne Wort-Hervorhebung als statischer Text dargestellt.',
downloadsTitle: 'ZIP-Export & Archivierung',
downloadsFolderDesc: 'Zielverzeichnis für Alben, die du als ZIP-Datei auf deinen Computer herunterlädst.',
downloadsDefault: 'Standard-Downloads-Ordner',
pickFolder: 'Auswählen',
pickFolderTitle: 'Download-Ordner auswählen',
clearFolder: 'Download-Ordner löschen',
logout: 'Abmelden',
aboutTitle: 'Über Psysonic',
aboutDesc: 'Ein moderner Desktop-Musikplayer für Navidrome. Nutzt die Subsonic-API plus Navidrome-spezifische Erweiterungen. Basiert auf Tauri v2 mit einer nativen Rust-Audio-Engine — schlank und schnell, aber vollgepackt mit Features: Wellenform-Seekbar, synchronisierte Lyrics, Last.fm-Integration, 10-Band-EQ, Crossfade, nahtlose Wiedergabe, Replay Gain, Genre-Browser und eine große Theme-Bibliothek.',
aboutLicense: 'Lizenz',
aboutLicenseText: 'GNU GPL v3 — kostenlos nutzbar, veränderbar und unter gleicher Lizenz weiterzugeben.',
aboutRepo: 'Quellcode auf GitHub',
aboutVersion: 'Version',
aboutBuiltWith: 'Gebaut mit Tauri · React · TypeScript · Rust/rodio',
aboutMaintainersLabel: 'Projektleitung',
aboutReleaseNotesLabel: 'Release Notes',
aboutReleaseNotesLink: 'Neuigkeiten dieser Version öffnen',
aboutContributorsLabel: 'Mitwirkende',
showChangelogOnUpdate: "'Was ist neu' bei Update anzeigen",
showChangelogOnUpdateDesc: 'Blendet nach einem Update einen dezenten Changelog-Banner über Now Playing ein. Klick öffnet die Release Notes, X blendet ihn aus.',
libraryGridMaxColumnsTitle: 'Kartenraster in der Bibliothek',
libraryGridMaxColumnsPerfHint: 'Mehr Spalten bedeuten mehr Kacheln pro Zeile und oft mehr Layout- und Zeichenaufwand — bei sehr großen Bibliotheken oder langsamerer Hardware spürbarer.',
libraryGridMaxColumnsRangeLabel: 'Maximale Spalten ({{min}}–{{max}})',
libraryGridMaxColumnsDesc: 'Gilt für Album-, Künstler-, Wiedergabelisten-, Radio-, Offline- und andere Kartenansichten. Weniger Spalten = größere Kacheln und meist weniger CPU-Last.',
libraryIndexTitle: 'Lokaler Bibliotheksindex (Vorschau)',
libraryIndexDesc: 'Behält eine lokale Kopie der Track-Datenbank jedes Servers vor, damit Stöbern und Suche schnell bleiben und offline funktionieren. Die Erstsynchronisation läuft für alle konfigurierten Server; offline Server werden automatisch erneut versucht.',
libraryIndexDeltaHint: 'Die Hintergrund-Delta-Synchronisation prüft gebundene Server alle 30 Sekunden und startet bei Bedarf — typischerweise alle 5–45 Minuten, abhängig von Bibliotheksgröße und Last.',
libraryIndexEnable: 'Lokalen Bibliotheksindex aktivieren',
libraryIndexEnableAllDesc: 'Alle konfigurierten Server im Hintergrund indizieren und synchronisieren.',
libraryIndexNoServer: 'Zuerst einen Server hinzufügen.',
libraryIndexServerListTitle: 'Indizierte Server',
libraryIndexAllExcluded: 'Alle Server sind von der Synchronisation ausgeschlossen. Index wieder aktivieren oder Server hinzufügen.',
libraryIndexServerOffline: 'Server offline — Synchronisation verschoben',
libraryIndexServerDeferred: 'Verschoben',
libraryIndexServerSyncing: 'Synchronisiert…',
libraryIndexFullResync: 'Vollständige Neusynchronisation',
libraryIndexDeltaSync: 'Delta-Synchronisation',
libraryIndexExcludeServer: 'Von Synchronisation ausschließen',
libraryIndexExcludingServer: 'Wird ausgeschlossen…',
libraryIndexExcludedTitle: 'Von Synchronisation ausgeschlossen',
libraryIndexIncludeServer: 'Wieder einschließen',
libraryIndexIncludingServer: 'Wird eingeschlossen…',
libraryIndexStatus: 'Status',
libraryIndexStatusIdle: 'Bereit',
libraryIndexStatusProbing: 'Server wird geprüft…',
libraryIndexStatusInitial: 'Erst-Synchronisation…',
libraryIndexStatusReady: 'Fertig ({{count}} Titel)',
libraryIndexStatusError: 'Fehler — siehe Logs',
libraryIndexProgressIngest: '{{count}} Titel indiziert…',
libraryIndexProgressVerify: '{{checked}} geprüft ({{deleted}} entfernt)',
libraryIndexSyncNow: 'Jetzt synchronisieren',
libraryIndexVerify: 'Bibliotheksintegrität prüfen',
libraryIndexCancel: 'Abbrechen',
libraryIndexAutoReconcile: 'Automatischer Abgleich bei Titelrückgang',
libraryIndexAutoReconcileDesc: 'Automatisch nach entfernten Titeln suchen, wenn der Server weniger als erwartet meldet.',
libraryIndexSyncError: 'Bibliotheks-Synchronisation fehlgeschlagen: {{error}}',
libraryIndexBindError: 'Index konnte nicht aktiviert werden: {{error}}',
randomMixTitle: 'Zufallsmix-Blacklist',
luckyMixMenuTitle: 'Glücks-Mix im Menü anzeigen',
luckyMixMenuDesc: 'Aktiviert Glücks-Mix im "Mix erstellen"-Hub und als separaten Menüeintrag bei getrennter Navigation. Sichtbar nur bei aktiviertem AudioMuse auf dem aktiven Server.',
randomMixBlacklistTitle: 'Eigene Filter-Keywords',
randomMixBlacklistDesc: 'Songs werden ausgeschlossen, wenn ein Keyword auf Genre, Titel, Album oder Künstler zutrifft (aktiv wenn die Checkbox oben an ist).',
randomMixBlacklistPlaceholder: 'Keyword hinzufügen…',
randomMixBlacklistAdd: 'Hinzufügen',
randomMixBlacklistEmpty: 'Noch keine eigenen Keywords hinzugefügt.',
randomMixHardcodedTitle: 'Eingebaute Keywords (aktiv wenn Checkbox an)',
tabAudio: 'Audio',
tabStorage: 'Offline & Cache',
tabAppearance: 'Darstellung',
tabThemes: 'Themes',
themesYourThemesTitle: 'Deine Themes',
themesCvdTooltip: 'Farbfehlsichtigkeits-sicher – Deuteranopie, Protanopie, Tritanopie',
themeAnimationWarning: 'Dieses Theme nutzt Animationen, die auf deinem Setup (Nvidia/Linux oder Compositing aus) die CPU-Last erhöhen können.',
themeStoreTitle: 'Theme-Store',
themeStoreSubmitText: 'Eigenes Theme gebaut? Teil es mit der Community — mehr Infos im Themes-Repository.',
themeStoreSubmitLink: 'Themes-Repository öffnen',
themeStoreNetworkNotice: 'Der Theme-Store lädt Katalog und Vorschauen von GitHub. Es werden keine persönlichen Daten gesendet.',
themeStoreStatsNotice: 'Die „Zuletzt geändert“-Daten werden einmal täglich aktualisiert (gegen 04:17 UTC).',
themeStoreSearchPlaceholder: 'Themes suchen…',
themeStoreFilterMode: 'Nach Modus filtern',
themeStoreModeAll: 'Alle',
themeStoreModeDark: 'Dunkel',
themeStoreModeLight: 'Hell',
themeStoreRefresh: 'Aktualisieren',
themeStoreLoading: 'Themes werden geladen…',
themeStoreError: 'Theme-Store konnte nicht geladen werden. Prüfe deine Verbindung.',
themeStoreRetry: 'Erneut versuchen',
themeStoreOfflineTitle: 'Der Theme-Store ist offline',
themeStoreEmpty: 'Keine Themes passen zu deinen Filtern.',
themeStoreActive: 'Aktiv',
themeStoreEnlarge: 'Vorschau vergrößern',
themeStoreSortNewest: 'Neueste',
themeStoreSortName: 'Alphabetisch',
themeStoreByAuthor: 'von {{author}}',
themeStoreLastChanged: 'Zuletzt geändert',
themeMigrationNoticeTitle: 'Theme in den Store gezogen',
themeMigrationNoticeBody: '{{themes}} ist nicht mehr in der App enthalten. Du kannst es im Theme-Store neu installieren (Einstellungen → Themes) oder ein anderes Theme wählen.',
themeMigrationNoticeOpen: 'Theme-Store öffnen',
themeStoreOffline: 'Zeige den zuletzt gecachten Katalog — du scheinst offline zu sein.',
themeStoreInstall: 'Installieren',
themeStoreInstalling: 'Installiere…',
themeStoreApply: 'Anwenden',
themeStoreUpdate: 'Aktualisieren',
themeStoreUpdating: 'Aktualisiere…',
themeStoreUninstall: 'Deinstallieren',
themeStoreInstallFailed: 'Installation fehlgeschlagen',
themeStorePagePrev: 'Vorherige Seite',
themeStorePageNext: 'Nächste Seite',
themeStorePageStatus: 'Seite {{page}} von {{total}}',
themeImportTitle: 'Theme importieren',
themeImportButton: 'Theme importieren…',
themeImporting: 'Importiere…',
themeImportHint: 'Lädt ein als .zip verpacktes Theme (manifest.json + theme.css).',
themeImportSuccess: '„{{name}}“ importiert.',
themeImportErrorTitle: 'Dieses Theme konnte nicht importiert werden',
themeImportErrorBody: 'Es entspricht nicht dem Psysonic-Theme-Format. Vielleicht wurde es für eine andere Version erstellt oder die Datei ist unvollständig — prüfe, ob du die richtige .zip gewählt hast, oder frag den Autor des Themes.',
themeImportErrorDetails: 'Technische Details',
themeImportConfirmTitle: 'Theme installieren?',
themeImportConfirmBody: '„{{name}}“ von {{author}} installieren?',
themeImportConfirmRisk: 'Importierte Themes werden nicht geprüft — installiere nur Themes, denen du vertraust.',
tabLibrary: 'Bibliothek',
tabServers: 'Server',
tabLyrics: 'Songtexte',
tabPersonalisation: 'Personalisierung',
tabIntegrations: 'Integrationen',
inputKeybindingsTitle: 'Tastenkombinationen',
aboutContributorsCount_one: '{{count}} Beitrag',
aboutContributorsCount_other: '{{count}} Beiträge',
searchPlaceholder: 'Einstellungen durchsuchen…',
searchNoResults: 'Keine Treffer für deine Suche.',
integrationsPrivacyTitle: 'Hinweis zum Datenschutz',
integrationsPrivacyBody: 'Alle Integrationen auf diesem Tab sind Opt-in und senden, sobald aktiviert, Daten an externe Dienste oder an deinen Navidrome-Server. Last.fm erhält deinen Wiedergabeverlauf, Discord zeigt den aktuell laufenden Track in deinem Profil an, Bandsintown wird pro Künstler für Tour-Daten abgefragt, und der „Jetzt läuft"-Hinweis veröffentlicht deinen aktuellen Titel für andere Benutzer deines Navidrome-Servers. Wer das nicht möchte, lässt den jeweiligen Abschnitt einfach deaktiviert.',
homeCustomizerTitle: 'Mainstage',
queueModeTitle: 'Warteschlangen-Ansicht',
queueModeQueueSub: 'Zeigt nur kommende Titel. Der laufende Titel bleibt im Kopf und verschwindet aus der Liste, sobald er gespielt wurde.',
queueModePlaylistSub: 'Behält die ganze Warteschlange in der Liste, der laufende Titel oben hervorgehoben; gespielte Titel bleiben stehen.',
queueModeTimelineSub: 'Aktuellen Titel zentrieren — gespielter Verlauf darüber, kommende Titel (in Shuffle-Reihenfolge) darunter.',
queueToolbarTitle: 'Warteschlangen-Toolbar',
queueToolbarReset: 'Zurücksetzen',
queueToolbarSeparator: 'Trennlinie',
sidebarTitle: 'Seitenleiste',
sidebarReset: 'Zurücksetzen',
artistLayoutTitle: 'Künstlerseiten-Abschnitte',
artistLayoutDesc: 'Per Drag & Drop neu anordnen, einzelne Abschnitte der Künstlerseite ein- oder ausblenden. Abschnitte ohne Daten werden automatisch übersprungen.',
artistLayoutReset: 'Zurücksetzen',
artistLayoutBio: 'Künstler-Biografie',
artistLayoutTopTracks: 'Top-Tracks',
artistLayoutSimilar: 'Ähnliche Künstler*innen',
artistLayoutAlbums: 'Alben',
artistLayoutFeatured: 'Auch enthalten auf',
playlistLayoutTitle: 'Playlist-Seitenlayout',
playlistLayoutDesc: 'Einzelne Elemente auf der Playlist-Seite ein- oder ausblenden.',
playlistLayoutReset: 'Zurücksetzen',
playerBarTitle: 'Player-Leiste',
playerBarReset: 'Zurücksetzen',
playerBarStarRating: 'Sterne-Bewertung',
playerBarFavorite: 'Favorit (Herz)',
playerBarLastfmLove: 'Love-Button',
playerBarPlaybackRate: 'Wiedergabegeschwindigkeit',
playerBarEqualizer: 'Equalizer',
playerBarMiniPlayer: 'Mini-Player',
playbackRateTitle: 'Wiedergabegeschwindigkeit',
playbackRateEnabled: 'Wiedergabegeschwindigkeit aktivieren',
playbackRateEnabledDesc: 'Globale Geschwindigkeit für alle Titel. Gilt nicht für Radio und Vorschau.',
playbackRateStrategy: 'Strategie',
playbackRateStrategySpeed: 'Geschwindigkeit',
playbackRateStrategyVarispeed: 'Tonhöhe folgt dem Tempo',
playbackRateStrategyPreserve: 'Tonhöhe',
playbackRateSpeed: 'Geschwindigkeit',
playbackRatePitch: 'Tonhöhe',
playbackRateDerivedPitch: 'Tonhöhenverschiebung durch Geschwindigkeit: {{value}}',
playbackRateAutoPitch: 'Die Tonhöhe wird automatisch korrigiert.',
playbackRateHint: '„Geschwindigkeit“ behält die Tonhöhe bei. „Tonhöhe folgt dem Tempo“ verschiebt die Tonhöhe mit der Geschwindigkeit. „Tonhöhe“ fügt eine manuelle Verschiebung hinzu. Höhere CPU-Last als bei „Tonhöhe folgt dem Tempo“. Nicht für Radio, Vorschau oder Orbit.',
playbackRateNeutral: 'Bei 1,0× und ohne Tonverschiebung ist die Wiedergabe normal.',
playbackRateOrbitPaused: 'Während Orbit-Sessions nicht aktiv — Wiedergabe bleibt bei 1,0× für die Synchronisation.',
playbackRateOrbitPausedShort: 'Orbit: 1,0× für Sync.',
advancedMode: 'Erweitert',
advancedModeTooltip: 'Erweiterte Optionen in allen Settings-Tabs anzeigen. Community-Beiträge, die nicht zwingend der Design-Philosophie der Maintainer von Psysonic entsprechen.',
advancedBadge: 'Erweitert',
sidebarDrag: 'Ziehen zum Umsortieren',
sidebarFixed: 'Immer sichtbar',
nowPlayingTopTitle: 'Now Playing oben',
nowPlayingTopDesc: '"Now Playing" oben in der Seitenleiste anheften statt unten.',
randomNavSplitTitle: 'Mix-Navigation aufteilen',
randomNavSplitDesc: '"Zufallsmix", "Zufallsalben" und "Glücks-Mix" als separate Sidebar-Einträge statt als "Mix erstellen"-Hub anzeigen.',
tabInput: 'Eingabe',
tabUsers: 'Benutzer',
shortcutsReset: 'Auf Standard zurücksetzen',
shortcutListening: 'Taste drücken…',
shortcutUnbound: '—',
shortcutClear: 'Löschen',
globalShortcutsTitle: 'Globale Shortcuts',
globalShortcutsNote: 'Funktionieren systemweit, auch wenn Psysonic im Hintergrund läuft. Mindestens Ctrl, Alt oder Super als Modifier erforderlich.',
shortcutPlayPause: 'Wiedergabe / Pause',
shortcutNext: 'Nächster Titel',
shortcutPrev: 'Vorheriger Titel',
shortcutVolumeUp: 'Lautstärke erhöhen',
shortcutVolumeDown: 'Lautstärke verringern',
shortcutSeekForward: '10s vorspulen',
shortcutSeekBackward: '10s zurückspulen',
shortcutToggleQueue: 'Warteschlange ein-/ausblenden',
shortcutOpenFolderBrowser: '{{folderBrowser}} öffnen',
shortcutFullscreenPlayer: 'Vollbild-Player',
shortcutNativeFullscreen: 'Nativer Vollbildmodus',
shortcutOpenMiniPlayer: 'Mini-Player öffnen',
shortcutStartSearch: 'Suche starten',
shortcutStartAdvancedSearch: 'Erweiterte Suche starten',
shortcutToggleSidebar: 'Seitenleiste umschalten',
shortcutMuteSound: 'Stumm schalten',
shortcutToggleEqualizer: 'Equalizer öffnen / umschalten',
shortcutToggleRepeat: 'Wiederholen umschalten',
shortcutOpenNowPlaying: '„Now Playing" öffnen',
shortcutShowLyrics: 'Songtexte anzeigen',
shortcutFavoriteCurrentTrack: 'Aktuellen Titel zu Favoriten hinzufügen',
shortcutOpenHelp: 'Hilfe',
tabSystem: 'System',
loggingTitle: 'Protokollierung',
loggingModeDesc: 'Steuert die Ausführlichkeit der Backend-Protokolle im Terminal.',
loggingModeOff: 'Aus',
loggingModeNormal: 'Normal',
loggingModeDebug: 'Debug',
loggingExport: 'Protokolle exportieren',
loggingExportSuccess: 'Protokolle exportiert ({{count}} Zeilen).',
loggingExportError: 'Protokolle konnten nicht exportiert werden.',
ratingsSectionTitle: 'Bewertungen',
ratingsSkipStarTitle: 'Skip → 1 Stern',
ratingsSkipStarDesc:
'Wird ein Titel mehrmals hintereinander übersprungen, bekommt er automatisch 1★. Nur für noch nicht bewertete Titel.',
ratingsSkipStarThresholdLabel: 'Skips',
ratingsMixFilterTitle: 'Nach Bewertung filtern',
ratingsMixFilterDesc:
'Gering bewertete Titel in {{mix}} und {{albums}} ausblenden. Nochmals auf den gewählten Stern klicken, um den Filter zu deaktivieren.',
ratingsMixMinSong: 'Titel',
ratingsMixMinAlbum: 'Alben',
ratingsMixMinArtist: 'Interpreten',
ratingsMixMinThresholdAria: 'Mindest-Sterne: {{label}}',
backupTitle: 'Backup & Wiederherstellung',
backupExport: 'Einstellungen exportieren',
backupExportDesc: 'Speichert alle Einstellungen, Serverprofile, Last.fm-Konfiguration, Theme, EQ und Tastenkürzel in eine .psybkp-Datei. Passwörter werden im Klartext gespeichert — Datei sicher aufbewahren.',
backupImport: 'Einstellungen importieren',
backupImportDesc: 'Stellt Einstellungen aus einer .psybkp-Datei wieder her. Die App wird nach dem Import neu geladen.',
backupImportConfirm: 'Alle aktuellen Einstellungen werden überschrieben. Fortfahren?',
backupSuccess: 'Backup gespeichert',
backupImportSuccess: 'Einstellungen wiederhergestellt — wird neu geladen…',
backupImportError: 'Ungültige oder beschädigte Backup-Datei.',
playbackTitle: 'Wiedergabe',
replayGain: 'Replay Gain',
replayGainDesc: 'Lautstärke mit ReplayGain-Metadaten normalisieren',
replayGainMode: 'Modus',
replayGainAuto: 'Auto',
replayGainAutoDesc: 'Wählt Album-Gain, wenn benachbarte Tracks in der Warteschlange vom selben Album sind, sonst Track-Gain.',
replayGainTrack: 'Track',
replayGainAlbum: 'Album',
replayGainPreGain: 'Pre-Gain (getaggte Dateien)',
replayGainPreGainDesc: 'Pauschaler Boost, der auf jede ReplayGain-Berechnung aufaddiert wird. Hilft, wenn deine Bibliothek insgesamt zu leise wirkt.',
replayGainFallback: 'Fallback (ohne Tags / Radio)',
replayGainFallbackDesc: 'Wird auf Titel (und Radio-Streams) ohne ReplayGain-Tags angewendet, damit Untagged-Inhalt nicht lauter aus dem Mix springt.',
normalization: 'Normalisierung',
normalizationDesc: 'Empfundene Lautstärke über Titel, Alben und Radio angleichen.',
normalizationOff: 'Aus',
normalizationReplayGain: 'ReplayGain',
normalizationLufs: 'LUFS',
loudnessTargetLufs: 'Ziel-LUFS',
loudnessTargetLufsDesc: 'Referenz-Lautstärke, an die alle Titel angepasst werden. Niedrigere Werte = lautere Ausgabe. Streaming-Dienste liegen meist bei etwa -14 LUFS.',
loudnessPreAnalysisAttenuation: 'Dämpfung vor Messung',
loudnessPreAnalysisAttenuationDesc:
'Zusätzliche Dämpfung, bis die Loudness des Titels gespeichert ist. Beim Streamen folgen nur grobe Schätzungen, keine volle Messung. 0 dB = aus; negativer = leiser. Rechts steht der wirksame dB-Wert für die gewählte Ziel-LUFS.',
loudnessPreAnalysisAttenuationRef: 'Wirksam {{eff}} dB bei Ziel {{tgt}} LUFS.',
loudnessPreAnalysisAttenuationReset: 'Standard',
loudnessFirstPlayNote:
'Beim ersten Abspielen eines neuen Titels kann die Lautstärke kurz schwanken, während gemessen wird. Beim nächsten Mal greift die gespeicherte Messung und alles bleibt stabil. Kommende Queue-Titel werden meist schon während des vorherigen Songs analysiert — in der Praxis tritt das daher selten auf.',
crossfade: 'Crossfade',
crossfadeDesc: 'Überblendung zwischen Tracks',
crossfadeSecs: '{{n}} s',
notWithGapless: 'Nicht verfügbar wenn Nahtlose Wiedergabe aktiv ist',
notWithCrossfade: 'Nicht verfügbar wenn Crossfade aktiv ist',
gapless: 'Nahtlose Wiedergabe',
gaplessDesc: 'Nächsten Track vorpuffern um Lücken zwischen Songs zu vermeiden',
preservePlayNextOrder: '„Als Nächstes"-Reihenfolge bewahren',
preservePlayNextOrderDesc: 'Neu hinzugefügte „Als Nächstes"-Titel reihen sich hinten an statt sich vorn einzuschieben.',
trackPreviewsTitle: 'Track-Vorschau',
trackPreviewsToggle: 'Track-Vorschau aktivieren',
trackPreviewsDesc: 'Inline Play- und Vorschau-Buttons in den Tracklisten anzeigen für eine kurze Hörprobe mitten im Song.',
trackPreviewStart: 'Startposition',
trackPreviewStartDesc: 'Wie weit der Track schon gespielt sein soll wenn die Vorschau startet (% der Länge).',
trackPreviewDuration: 'Dauer',
trackPreviewDurationDesc: 'Wie lange jede Vorschau spielt bevor sie automatisch stoppt.',
trackPreviewDurationSecs: '{{n}} s',
trackPreviewLocationsTitle: 'Wo Vorschauen erscheinen',
trackPreviewLocationsDesc: 'Wähle aus, in welchen Listen die Vorschau-Buttons angezeigt werden.',
trackPreviewLocation_suggestions: 'In Playlist-Vorschlägen',
trackPreviewLocation_albums: 'In Album-Tracklisten',
trackPreviewLocation_playlists: 'In Playlists',
trackPreviewLocation_favorites: 'In Favoriten',
trackPreviewLocation_artist: 'In Künstler-Top-Tracks',
trackPreviewLocation_randomMix: 'In Random Mix',
nextTrackBufferingTitle: 'Pufferung',
infiniteQueue: 'Endlose Warteschlange',
infiniteQueueDesc: 'Automatisch Zufallstitel anhängen wenn die Warteschlange leer wird',
experimental: 'Experimentell',
sidebarLyricsStyle: 'Text-Scroll-Stil',
sidebarLyricsStyleClassic: 'Klassisch',
sidebarLyricsStyleClassicDesc: 'Aktive Zeile wird zentriert.',
sidebarLyricsStyleApple: 'Apple Music-like',
sidebarLyricsStyleAppleDesc: 'Aktive Zeile oben mit sanfter Animation.',
seekbarStyle: 'Seekbar-Stil',
seekbarStyleDesc: 'Aussehen der Wiedergabe-Seekbar auswählen',
seekbarTruewave: 'Echte Wellenform',
seekbarPseudowave: 'Pseudo-Wellenform',
seekbarLinedot: 'Linie & Punkt',
seekbarBar: 'Balken',
seekbarThick: 'Dicker Balken',
seekbarSegmented: 'Segmentiert',
seekbarNeon: 'Neonröhre',
seekbarPulsewave: 'Pulswelle',
seekbarParticletrail: 'Partikel-Spur',
seekbarLiquidfill: 'Flüssigkeit',
seekbarRetrotape: 'Retro-Band',
themeSchedulerTitle: 'Theme-Zeitplan',
themeSchedulerEnable: 'Theme-Zeitplan aktivieren',
themeSchedulerEnableSub: 'Wechselt automatisch zwischen zwei Themes basierend auf der Uhrzeit',
themeSchedulerDayTheme: 'Tages-Theme',
themeSchedulerDayStart: 'Tag beginnt um',
themeSchedulerNightTheme: 'Nacht-Theme',
themeSchedulerNightStart: 'Nacht beginnt um',
themeSchedulerActiveHint: 'Theme-Zeitplan ist aktiv - Themes werden automatisch gewechselt.',
visualOptionsTitle: 'Visuelle Optionen',
coverArtBackground: 'Cover-Hintergrund',
coverArtBackgroundSub: 'Zeigt verschwommenes Cover als Hintergrund in Album/Playlist-Kopfzeilen',
playlistCoverPhoto: 'Playlist-Coverfoto',
playlistCoverPhotoSub: 'Zeigt Coverfoto-Raster in der Playlist-Detailansicht',
showBitrate: 'Bitrate anzeigen',
showBitrateSub: 'Audio-Bitrate in Track-Listen anzeigen',
floatingPlayerBar: 'Schwebende Player-Leiste',
floatingPlayerBarSub: 'Player-Leiste über dem Inhalt schweben lassen',
uiScaleTitle: 'Interface-Skalierung',
uiScaleLabel: 'Zoom',
waveformCacheClearBtn: 'Waveform-Cache leeren',
waveformCacheCleared: 'Waveform-Cache geleert ({{count}} Zeilen).',
waveformCacheClearFailed: 'Waveform-Cache konnte nicht geleert werden.',
analyticsStrategyTitle: 'Analysestrategien',
analyticsStrategyDesc: 'Wähle den Analysemodus für die Bibliothek.',
analyticsStrategyLabel: 'Strategie',
analyticsStrategyLazy: 'Lazy',
analyticsStrategyLazyDesc: 'Analysiert nur, wenn Tracks abgespielt werden oder in den Hot-/Offline-Cache kommen — minimale CPU- und Netzlast.',
analyticsStrategyAdvanced: 'Aggressiv',
analyticsStrategyAdvancedDesc: 'Aggressiver Hintergrundscan. Nach Abschluss erhältst du BPM für alle Tracks sowie sofort verfügbare Loudness- und Waveform-Daten.',
analyticsStrategyPriorityTitle: 'Analyse-Priorität (immer aktiv)',
analyticsStrategyPriorityHigh: '1 — Aktuell laufender Track: zuerst herunterladen und analysieren (Playback-Bytes, Loudness-Backfill oder HTTP falls nötig).',
analyticsStrategyPriorityMiddle: '2 — Als Nächstes: die nächsten ~5 Queue-Tracks und Hot-Cache-Nachbarn — Analyse bevorzugt aus Cache/Downloads; HTTP-Backfill nur bei Miss.',
analyticsStrategyPriorityLow: '3 — Bibliotheks-Batch (nur Aggressiv): automatische Hintergrund-Queue am Ende; wird per Watermark (~3× Worker) nachgefüllt, ohne auf eine leere Queue zu warten.',
analyticsStrategyServerLabel: 'Server',
analyticsStrategyProgressLabel: 'Analysefortschritt:',
analyticsStrategyProgressValue: '{{percent}}% ({{done}}/{{total}})',
analyticsStrategyActionsLabel: 'Aktionen',
analyticsStrategyParallelismLabel: 'Parallele Worker',
analyticsStrategyParallelismValue: '{{n}} Threads',
analyticsStrategyParallelismDesc: 'Wie viele Tracks gleichzeitig heruntergeladen und analysiert werden (HTTP + CPU). Höhere Werte beschleunigen das Aufholen der Bibliothek, nutzen aber mehr Netz und CPU.',
analyticsStrategyAdvancedWarning: 'Aggressiv nutzt mehr CPU und Netzwerkbandbreite, während der Bibliotheks-Batch im Hintergrund läuft.',
analyticsStrategyServerRemoved: 'Entfernter Server',
analyticsStrategyClearAction: 'Analyse löschen',
analyticsStrategyClearTitle: 'Analyse löschen?',
analyticsStrategyClearDesc: 'Das Löschen der Analyse für {{server}} entfernt zwischengespeicherte Waveforms und Loudness-Daten. Beim späteren erneuten Hinzufügen kann eine lange Neuindizierung nötig sein.',
analyticsStrategyClearCancel: 'Abbrechen',
analyticsStrategyClearConfirm: 'Analyse löschen',
analyticsStrategyClearSuccess: 'Analyse für den entfernten Server wurde gelöscht.',
analyticsStrategyClearError: 'Analyse für den entfernten Server konnte nicht gelöscht werden.',
analyticsStrategyProgressEmptyAfterFailed: '100% (0/0, durch fehlgeschlagene Tracks blockiert)',
analyticsFailedTracksOpenTitle: 'Fehlgeschlagene Tracks: {{count}}',
analyticsFailedTracksTitle: 'Fehlgeschlagene Analyse-Tracks — {{server}}',
analyticsFailedTracksDesc: 'Diese Tracks sind bei Decode/Enrichment wiederholt fehlgeschlagen und vom automatischen Hintergrund-Analyseprozess ausgeschlossen.',
analyticsFailedTracksLoading: 'Liste fehlgeschlagener Tracks wird geladen…',
analyticsFailedTracksEmpty: 'Für diesen Server gibt es keine fehlgeschlagenen Tracks.',
analyticsFailedTracksClose: 'Schließen',
analyticsFailedTracksExport: 'Liste exportieren',
analyticsFailedTracksExportSuccess: 'Liste fehlgeschlagener Tracks exportiert ({{count}}).',
analyticsFailedTracksExportError: 'Liste fehlgeschlagener Tracks konnte nicht exportiert werden.',
analyticsFailedTracksRescan: 'Fehlgeschlagene Tracks neu scannen',
analyticsFailedTracksRescanSuccess: 'Neu-Scan für {{count}} fehlgeschlagene Tracks eingeplant.',
analyticsFailedTracksRescanError: 'Neu-Scan fehlgeschlagener Tracks konnte nicht gestartet werden.',
analyticsFailedTracksLoadError: 'Fehlgeschlagene Tracks konnten nicht geladen werden.',
backupImportAny: 'Backup importieren',
backupImportAnyConfirm: 'Ausgewählte Backup-Datei importieren und Inhalt anwenden (Einstellungen, Bibliotheksdatenbanken oder vollständig). Fortfahren?',
backupModeFull: 'Vollständig',
backupModeLibrary: 'Bibliotheksdatenbanken',
backupModeConfig: 'Konfiguration',
backupFullDesc: 'Archiviert Einstellungen und Bibliotheksdatenbanken in einer Backup-Datei.',
backupFullExport: 'Vollständiges Backup exportieren',
backupFullImport: 'Vollständiges Backup importieren',
backupFullImportConfirm: 'Dadurch werden Einstellungen überschrieben, aktuelle Bibliotheksdatenbanken ersetzt und nach .bak verschoben. Fortfahren?',
backupFullExportSuccess: 'Vollständiges Backup exportiert.',
backupFullImportSuccess: 'Vollständiges Backup importiert — lade neu…',
backupFullImportError: 'Vollständiges Backup konnte nicht importiert werden.',
backupLibraryExport: 'Datenbanken exportieren',
backupLibraryExportDesc: 'Erstellt ein komprimiertes Archiv mit sauberen SQLite-Snapshots der Bibliotheksdatenbanken.',
backupLibraryImport: 'Datenbanken importieren',
backupLibraryImportDesc: 'Stellt Bibliotheksdatenbanken aus einer Archivdatei wieder her. Aktuelle Datenbanken werden vor dem Wechsel nach .bak verschoben.',
backupLibraryImportConfirm: 'Dadurch werden aktuelle Bibliotheksdatenbanken ersetzt und nach .bak verschoben. Fortfahren?',
backupLibraryExportSuccess: 'Datenbank-Backup exportiert.',
backupLibraryImportSuccess: 'Datenbank-Backup importiert.',
backupLibraryImportError: 'Datenbank-Backup konnte nicht importiert werden.',
backupOverlayExportTitle: 'Backup wird erstellt…',
backupOverlayImportTitle: 'Backup wird wiederhergestellt…',
backupOverlayHint: 'Das Fenster kann geöffnet bleiben, während wir Dateien verarbeiten. Eingaben sind vorübergehend gesperrt.',
};