mirror of
https://github.com/kilyabin/psysonic.git
synced 2026-07-21 22:15:40 +00:00
f4e1086131
* feat(themes): fresher store refresh + external-services notice Manual refresh now fetches the registry from GitHub raw first (~5 min cache) and falls back to the jsDelivr CDN, so a freshly merged theme shows up without waiting on — or purging — the shared CDN @main edge (up to 12 h). Normal loads still use the CDN. Adds a notice on the Theme Store that the catalogue and previews load from external services (jsDelivr / GitHub), in line with the app's network transparency. i18n ×9. * docs(themes): note the store-refresh PR in the Theme Store entry Now that #1015 is merged, fold PR #1016 into the still-unreleased Theme Store changelog and credits entry.
655 lines
42 KiB
TypeScript
655 lines
42 KiB
TypeScript
export const settings = {
|
||
title: 'Instellingen',
|
||
language: 'Taal',
|
||
languageEn: 'English',
|
||
languageDe: 'Deutsch',
|
||
languageEs: 'Español',
|
||
languageFr: 'Français',
|
||
languageNl: 'Nederlands',
|
||
languageNb: 'Norsk',
|
||
languageRu: 'Русский',
|
||
languageZh: '中文',
|
||
languageRo: 'Română',
|
||
font: 'Lettertype',
|
||
fontHintOpenDyslexic: 'Dyslexie-vriendelijk · geen Chinese ondersteuning',
|
||
theme: 'Thema',
|
||
appearance: 'Weergave',
|
||
servers: 'Servers',
|
||
serverName: 'Servernaam',
|
||
serverUrl: 'Server-URL',
|
||
serverUrlPlaceholder: '192.168.1.100:4533 of https://music.voorbeeld.nl',
|
||
serverAlternateUrl: 'Tweede adres (optioneel)',
|
||
serverAlternateUrlPlaceholderPublic: 'https://music.example.com',
|
||
serverAlternateUrlPlaceholderLocal: '192.168.1.100:4533',
|
||
serverAlternateUrlHintAddPublic: 'Voeg een openbaar adres toe om buiten je thuisnetwerk te verbinden.',
|
||
serverAlternateUrlHintAddLocal: 'Voeg een lokaal adres toe voor een snellere verbinding thuis.',
|
||
serverBothLanError: 'Beide adressen zijn lokaal — houd er één of voeg een openbaar adres toe.',
|
||
dualAddressVerifying: 'Controleren of beide adressen naar dezelfde server wijzen…',
|
||
dualAddressMismatch: 'De twee adressen wijzen naar verschillende servers. Controleer de spelling en probeer opnieuw.',
|
||
dualAddressInsufficient: 'Kon niet bevestigen dat beide adressen dezelfde server zijn. Verwijder één adres om door te gaan.',
|
||
dualAddressUnreachable: 'Kon {{host}} niet bereiken. Controleer het adres en je netwerk en probeer opnieuw.',
|
||
urlRemigrationTitle: 'Bibliotheekgegevens verplaatsen?',
|
||
urlRemigrationMessage: 'Bij het wijzigen van het adres worden alle bibliotheek-, analyse- en cover-cachegegevens van {{oldKey}} naar {{newKey}} verplaatst. Dit kan niet ongedaan gemaakt worden.',
|
||
urlRemigrationConfirm: 'Gegevens verplaatsen',
|
||
urlRemigrationProgress: 'Bibliotheekgegevens worden verplaatst…',
|
||
urlRemigrationFailureInspect: 'Kon niet controleren wat verplaatst zou worden. Probeer opnieuw of open het foutopsporingslogboek.',
|
||
urlRemigrationFailureRun: 'Verplaatsen van bibliotheekgegevens mislukt. Je opgeslagen gegevens zijn ongewijzigd — probeer opnieuw.',
|
||
urlRemigrationFailureCoverRename: 'Bibliotheekgegevens zijn verplaatst, maar coverbestanden konden niet worden hernoemd. Covers worden bij het volgende gebruik opnieuw opgebouwd.',
|
||
shareUsesLocalUrl: 'Lokaal adres gebruiken in deellinks',
|
||
shareUsesLocalUrlDesc: 'Geldt voor Orbit-uitnodigingen en bibliotheekdelen. Standaard: openbaar adres.',
|
||
serverUsername: 'Gebruikersnaam',
|
||
serverPassword: 'Wachtwoord',
|
||
addServer: 'Server toevoegen',
|
||
addServerTitle: 'Nieuwe server toevoegen',
|
||
editServer: 'Bewerken',
|
||
editServerTitle: 'Server bewerken',
|
||
useServer: 'Gebruiken',
|
||
deleteServer: 'Verwijderen',
|
||
noServers: 'Geen servers opgeslagen.',
|
||
serverActive: 'Actief',
|
||
confirmDeleteServer: 'Server "{{name}}" verwijderen?',
|
||
serverConnecting: 'Verbinden…',
|
||
serverConnected: 'Verbonden!',
|
||
serverFailed: 'Verbinding mislukt.',
|
||
testBtn: 'Verbinding testen',
|
||
testingBtn: 'Testen…',
|
||
serverCompatible: 'Gemaakt voor Navidrome. Andere Subsonic-compatibele servers (Gonic, Airsonic, …) kunnen met beperkte functionaliteit werken, omdat Psysonic veel Navidrome-specifieke API-endpoints gebruikt.',
|
||
userMgmtTitle: 'Gebruikersbeheer',
|
||
userMgmtDesc: 'Beheer gebruikers op deze server. Vereist admin-rechten.',
|
||
userMgmtNoAdmin: 'Je hebt admin-rechten nodig om gebruikers op deze server te beheren.',
|
||
userMgmtLoadError: 'Kon gebruikers niet laden.',
|
||
userMgmtLoadFriendly: 'Server antwoordde niet — meestal eenmalig.',
|
||
userMgmtRetry: 'Opnieuw proberen',
|
||
userMgmtEmpty: 'Geen gebruikers gevonden.',
|
||
userMgmtYouBadge: 'Jij',
|
||
userMgmtAdminBadge: 'Admin',
|
||
userMgmtAddUser: 'Gebruiker toevoegen',
|
||
userMgmtAddUserTitle: 'Nieuwe gebruiker',
|
||
userMgmtEditUserTitle: 'Gebruiker bewerken',
|
||
userMgmtUsername: 'Gebruikersnaam',
|
||
userMgmtName: 'Weergavenaam',
|
||
userMgmtEmail: 'E-mail',
|
||
userMgmtPassword: 'Wachtwoord',
|
||
userMgmtPasswordEditHint: 'Voer een nieuw wachtwoord in om het bij te werken.',
|
||
userMgmtRoleAdmin: 'Admin',
|
||
userMgmtLibraries: 'Bibliotheken',
|
||
userMgmtLibrariesAdminHint: 'Beheerders hebben automatisch toegang tot alle bibliotheken.',
|
||
userMgmtLibrariesEmpty: 'Geen bibliotheken beschikbaar op deze server.',
|
||
userMgmtLibrariesValidation: 'Selecteer ten minste één bibliotheek.',
|
||
userMgmtLibrariesUpdateError: 'Gebruiker opgeslagen, maar bibliotheektoewijzing mislukt',
|
||
userMgmtNoLibraries: 'Geen bibliotheken toegewezen',
|
||
userMgmtNeverSeen: 'Nooit',
|
||
userMgmtSave: 'Opslaan',
|
||
userMgmtCancel: 'Annuleren',
|
||
userMgmtDelete: 'Verwijderen',
|
||
userMgmtEdit: 'Bewerken',
|
||
userMgmtConfirmDelete: 'Gebruiker "{{username}}" verwijderen? Dit kan niet ongedaan worden gemaakt.',
|
||
userMgmtCreateError: 'Aanmaken van gebruiker mislukt.',
|
||
userMgmtUpdateError: 'Bijwerken van gebruiker mislukt.',
|
||
userMgmtDeleteError: 'Verwijderen van gebruiker mislukt.',
|
||
userMgmtCreated: 'Gebruiker aangemaakt.',
|
||
userMgmtUpdated: 'Gebruiker bijgewerkt.',
|
||
userMgmtDeleted: 'Gebruiker verwijderd.',
|
||
userMgmtValidationMissing: 'Gebruikersnaam, weergavenaam en wachtwoord zijn vereist.',
|
||
userMgmtValidationMissingIdentity: 'Gebruikersnaam en weergavenaam zijn vereist.',
|
||
userMgmtMagicStringGenerate: 'Magic string genereren',
|
||
userMgmtSaveAndMagicString: 'Opslaan en magic string kopiëren',
|
||
userMgmtMagicStringPasswordNavHint:
|
||
'Navidrome slaat dit wachtwoord voor de gebruiker op. Als het afwijkt van het huidige wachtwoord, wordt het inlogwachtwoord op de server bijgewerkt.',
|
||
userMgmtMagicStringPlaintextWarning:
|
||
'Wees voorzichtig met delen: de magic string bevat een onversleuteld wachtwoord (codering is geen encryptie). Wie de volledige string heeft, kan als deze gebruiker inloggen.',
|
||
userMgmtMagicStringCopied: 'Magic string naar het klembord gekopieerd.',
|
||
userMgmtMagicStringCopyFailed: 'Kopiëren naar het klembord is mislukt.',
|
||
userMgmtMagicStringLoginFailed: 'Wachtwoordcontrole mislukt — aanmeldgegevens konden niet worden geverifieerd.',
|
||
userMgmtMagicStringModalTitle: 'Magic string genereren',
|
||
userMgmtMagicStringModalDesc: 'Voer het Subsonic-wachtwoord voor „{{username}}" in. Het wordt opgenomen in de gekopieerde magic string.',
|
||
userMgmtMagicStringModalConfirm: 'String kopiëren',
|
||
audiomuseTitle: 'AudioMuse-AI (Navidrome)',
|
||
audiomuseDesc:
|
||
'Zet aan als deze server de <pluginLink>AudioMuse-AI Navidrome-plugin</pluginLink> gebruikt. Schakelt Instant Mix per nummer in en toont vergelijkbare artiesten van de server i.p.v. Last.fm op artiestpagina’s.',
|
||
audiomuseIssueHint:
|
||
'Instant Mix is onlangs mislukt — controleer de Navidrome-plugin en AudioMuse API. Zonder serverresultaten worden vergelijkbare artiesten via Last.fm geladen.',
|
||
connected: 'Verbonden',
|
||
failed: 'Mislukt',
|
||
eqTitle: 'Equalizer',
|
||
eqEnabled: 'Equalizer inschakelen',
|
||
eqPreset: 'Voorinstelling',
|
||
eqPresetCustom: 'Aangepast',
|
||
eqPresetBuiltin: 'Ingebouwde voorinstellingen',
|
||
eqPresetCustomGroup: 'Mijn voorinstellingen',
|
||
eqSavePreset: 'Opslaan als voorinstelling',
|
||
eqPresetName: 'Naam voorinstelling…',
|
||
eqDeletePreset: 'Voorinstelling verwijderen',
|
||
eqResetBands: 'Terugzetten naar vlak',
|
||
eqPreGain: 'Voorversterking',
|
||
eqResetPreGain: 'Voorversterking resetten',
|
||
eqAutoEqTitle: 'AutoEQ Hoofdtelefoon Zoeken',
|
||
eqAutoEqPlaceholder: 'Zoek hoofdtelefoon / IEM model…',
|
||
eqAutoEqSearching: 'Zoeken…',
|
||
eqAutoEqNoResults: 'Geen resultaten gevonden',
|
||
eqAutoEqError: 'Zoeken mislukt',
|
||
eqAutoEqRateLimit: 'GitHub limiet bereikt — probeer over een minuut opnieuw',
|
||
eqAutoEqFetchError: 'EQ-profiel kon niet worden geladen',
|
||
lfmTitle: 'Last.fm',
|
||
lfmConnect: 'Verbinden met Last.fm',
|
||
lfmConnecting: 'Wachten op autorisatie…',
|
||
lfmConfirm: 'Ik heb de app geautoriseerd',
|
||
lfmConnected: 'Verbonden als',
|
||
lfmDisconnect: 'Verbinding verbreken',
|
||
lfmConnectDesc: 'Verbind je Last.fm-account om scrobbling en Nu bezig-updates rechtstreeks vanuit Psysonic in te schakelen — geen Navidrome-configuratie vereist.',
|
||
lfmOpenBrowser: 'Er opent een browservenster. Autoriseer Psysonic op Last.fm en klik daarna op de knop hieronder.',
|
||
lfmScrobbles: '{{n}} scrobbles',
|
||
lfmMemberSince: 'Lid sinds {{year}}',
|
||
scrobbleEnabled: 'Scrobbling ingeschakeld',
|
||
scrobbleDesc: 'Nummers naar Last.fm sturen na 50% afspeeltijd',
|
||
behavior: 'App-gedrag',
|
||
cacheTitle: 'Max. opslaggrootte',
|
||
cacheDesc: 'Browsercache voor albumhoezen en artiestafbeeldingen (IndexedDB). Als de cache vol is, worden de oudste items automatisch verwijderd.',
|
||
cacheUsedImages: 'Afbeeldingen:',
|
||
cacheUsedOffline: 'Offline nummers:',
|
||
cacheUsedHot: 'Schijfgebruik:',
|
||
hotCacheTrackCount: 'Nummers in cache:',
|
||
cacheMaxLabel: 'Max. grootte',
|
||
cacheClearBtn: 'Cache wissen',
|
||
cacheClearWarning: 'Wist alle gecachte hoesjes en artiestafbeeldingen. Ze worden opnieuw gedownload wanneer nodig.',
|
||
cacheClearConfirm: 'Beeldcache wissen',
|
||
cacheClearCancel: 'Annuleren',
|
||
mediaDirTitle: 'Mediamap',
|
||
mediaDirDesc: 'Hoofdmap voor lokaal afspelen. Offline-bibliotheek: library/; wachtrijbuffer: cache/.',
|
||
mediaDirDefault: 'Standaard (app-gegevens)',
|
||
mediaDirChange: 'Map wijzigen',
|
||
mediaDirClear: 'Terugzetten naar standaard',
|
||
mediaDirHint: 'Nieuwe downloads gebruiken deze locatie. Bestaande bestanden blijven op hun pad tot je ze verwijdert.',
|
||
offlineStorageTitle: 'Offline-opslag',
|
||
offlineDirTitle: 'Offline-bibliotheek (In-app)',
|
||
offlineDirDesc: 'Opslaglocatie voor nummers die je offline beschikbaar maakt in Psysonic.',
|
||
offlineDirDefault: 'Standaard (app-gegevens)',
|
||
offlineDirChange: 'Map wijzigen',
|
||
offlineDirClear: 'Terugzetten naar standaard',
|
||
offlineDirHint: 'Nieuwe downloads worden op deze locatie opgeslagen. Bestaande downloads blijven op hun oorspronkelijke locatie.',
|
||
hotCacheTitle: 'Warme afspeelcache',
|
||
hotCacheDisclaimer: 'Laadt aankomende wachtrijtracks voor en bewaart eerdere. Indien ingeschakeld: schijfruimte en netwerk.',
|
||
hotCacheDirDefault: 'Standaard (app-gegevens)',
|
||
hotCacheDirChange: 'Map wijzigen',
|
||
hotCacheDirClear: 'Terugzetten naar standaard',
|
||
hotCacheDirHint: 'Een andere map kiest: de index in de app wordt gereset; oude bestanden blijven staan tot je ze verwijdert.',
|
||
hotCacheEnabled: 'Warme afspeelcache inschakelen',
|
||
hotCacheMaxMb: 'Maximale cachegrootte',
|
||
hotCacheDebounce: 'Uitstel bij wachtrijwijziging',
|
||
hotCacheDebounceImmediate: 'Direct',
|
||
hotCacheDebounceSeconds: '{{n}} s',
|
||
hotCacheClearBtn: 'Warme cache wissen',
|
||
audioOutputDevice: 'Audio-uitvoerapparaat',
|
||
audioOutputDeviceDesc: 'Kies via welk audioapparaat Psysonic afspeelt. Wijzigingen worden direct toegepast en starten het huidige nummer opnieuw.',
|
||
audioOutputDeviceDefault: 'Systeemstandaard',
|
||
audioOutputDeviceRefresh: 'Apparatenlijst vernieuwen',
|
||
audioOutputDeviceOsDefaultNow: 'huidige systeemuitvoer',
|
||
audioOutputDeviceListError: 'De lijst met audio-apparaten kon niet worden geladen.',
|
||
audioOutputDeviceNotInCurrentList: 'staat niet in de huidige lijst',
|
||
audioOutputDeviceMacNotice: 'Op macOS volgt de weergave om technische redenen altijd het standaard-uitvoerapparaat van het systeem. Wijzig het doel via Systeeminstellingen → Geluid of via het luidsprekerpictogram in de menubalk. Achtergrond: CoreAudio vraagt bij het openen van een niet-standaard stream om microfoontoestemming — dat vermijden we door altijd de systeemstandaard te gebruiken.',
|
||
hiResTitle: 'Natieve hi-res-weergave',
|
||
hiResEnabled: 'Natieve hi-res-weergave inschakelen',
|
||
hiResDesc: "Beperkt de uitvoer standaard tot 44,1 kHz voor maximale stabiliteit. Alleen inschakelen als hardware en netwerk hoge samplerates (88,2 kHz+) ondersteunen.",
|
||
showArtistImages: 'Artiestafbeeldingen weergeven',
|
||
showArtistImagesDesc: 'Laadt en toont artiestafbeeldingen in het artiestenoverzicht. Standaard uitgeschakeld om server-I/O en netwerkbelasting bij grote bibliotheken te beperken.',
|
||
showOrbitTrigger: '"Orbit" in de kop tonen',
|
||
showOrbitTriggerDesc: 'De knop in de kop voor starten of deelnemen aan een gedeelde luistersessie. Verberg hem als je Orbit niet gebruikt — je kunt hem hier weer aanzetten.',
|
||
showTrayIcon: 'Tray-pictogram weergeven',
|
||
showTrayIconDesc: 'Toont het Psysonic-pictogram in het systeemvak / de menubalk.',
|
||
minimizeToTray: 'Minimaliseren naar systeemvak',
|
||
minimizeToTrayDesc: 'Bij het sluiten van het venster blijft Psysonic actief in het systeemvak in plaats van af te sluiten.',
|
||
clockFormat: 'Tijdformaat',
|
||
clockFormatDesc: 'Tijdsweergave voor de wachtrij-ETA en het voorbeeld van de slaaptimer.',
|
||
clockFormatAuto: 'Automatisch (systeemtaal)',
|
||
clockFormatTwentyFour: '24-uurs',
|
||
clockFormatTwelve: '12-uurs (AM/PM)',
|
||
preloadMiniPlayer: 'Mini-speler vooraf laden',
|
||
preloadMiniPlayerDesc: 'Bouwt het venster van de mini-speler op de achtergrond bij het opstarten van de app, zodat het bij de eerste opening direct inhoud toont. Gebruikt iets meer geheugen.',
|
||
linuxWebkitSmoothScroll: 'Vloeiend muiswiel (Linux)',
|
||
linuxWebkitSmoothScrollDesc: 'Aan: traag naloop. Uit: regel voor regel, GTK-stijl.',
|
||
linuxWebkitInputForceRepaint: 'Tekstvelden bij focus opnieuw tekenen (Linux)',
|
||
linuxWebkitInputForceRepaintDesc: 'Tijdelijke oplossing voor WebKitGTK 2.50.x waar tekstvelden bij klikken bevriezen. Zoekicoontjes flikkeren kort bij focus.',
|
||
linuxWaylandTextRender: 'Wayland-tekstweergave (Linux)',
|
||
linuxWaylandTextRenderDesc:
|
||
'Vloeiendheid in de UI werkt meteen. WebKit-hardwareversnelling (scherp/GPU) wordt bewaard en toegepast bij de volgende app-start — live schakelen kan WebKitGTK laten vastlopen.',
|
||
linuxWaylandTextRenderBalanced: 'Gebalanceerd',
|
||
linuxWaylandTextRenderSharp: 'Scherp (CPU-vriendelijk)',
|
||
linuxWaylandTextRenderGpu: 'GPU eerst',
|
||
linuxWaylandTextRenderMinimal: 'Minimaal (standaard CSS-verzachting)',
|
||
discordRichPresence: 'Discord Rich Presence',
|
||
discordRichPresenceDesc: 'Toont het huidige nummer op je Discord-profiel. Discord moet daarvoor geopend zijn.',
|
||
discordCoverSource: 'Hoesbron',
|
||
discordCoverSourceDesc: 'Waar de albumhoes voor je Discord-profiel vandaan komt.',
|
||
discordCoverNone: 'Geen (alleen app-icoon)',
|
||
discordCoverServer: 'Server (via albuminfo)',
|
||
discordCoverApple: 'Apple Music',
|
||
discordOptions: 'Geavanceerde Discord-opties',
|
||
discordTemplates: 'Aangepaste tekstsjablonen',
|
||
discordTemplatesDesc: 'Pas aan welke informatie wordt weergegeven op je Discord-profiel. Variabelen: {title}, {artist}, {album}',
|
||
discordTemplateDetails: 'Primaire regel (details)',
|
||
discordTemplateState: 'Secundaire regel (state)',
|
||
discordTemplateLargeText: 'Album-tooltip (largeText)',
|
||
discordTemplateName: 'Gebruikerslijst-regel (name)',
|
||
nowPlayingEnabled: 'Weergeven in live-venster',
|
||
nowPlayingEnabledDesc: 'Stuurt het huidige nummer naar de live-luisteraarsweergave van de server. Uitschakelen om geen afspeelgegevens te verzenden.',
|
||
enableBandsintown: 'Bandsintown-tourdata',
|
||
enableBandsintownDesc: 'Toon aankomende concerten van de huidige artiest in het Info-tabblad. Gegevens komen van de openbare Bandsintown-API.',
|
||
lyricsServerFirst: 'Server-songtekst voorrang geven',
|
||
lyricsServerFirstDesc: 'Controleer eerst door de server geleverde songteksten (ingebedde tags, sidecar-bestanden) vóór LRCLIB. Uitschakelen om LRCLIB eerst te gebruiken.',
|
||
enableNeteaselyrics: 'Netease Cloud Music songteksten',
|
||
enableNeteaselyricsDesc: 'Gebruik Netease Cloud Music als laatste bron wanneer server en LRCLIB niets opleveren. Beste dekking voor Aziatische en internationale muziek.',
|
||
lyricsSourcesTitle: 'Songtekstbronnen',
|
||
lyricsSourcesDesc: 'Kies welke bronnen worden geraadpleegd en in welke volgorde. Sleep om te sorteren. Uitgeschakelde bronnen worden overgeslagen.',
|
||
lyricsSourceServer: 'Server',
|
||
lyricsSourceLrclib: 'LRCLIB',
|
||
lyricsSourceNetease: 'Netease Cloud Music',
|
||
lyricsYouLyPlus: 'YouLyPlus (Karaoke)',
|
||
lyricsYouLyPlusDesc: 'Woord-voor-woord-synchronisatie van een community-backend (Apple Music, Spotify, Musixmatch, QQ). Wordt eerst geprobeerd; de ingeschakelde bronnen hieronder dienen als fallback.',
|
||
lyricsSourcesFallbackHint: 'Worden als fallback gebruikt wanneer YouLyPlus niets vindt. Sleep om te herordenen.',
|
||
lyricsSourcesPrimaryHint: 'Worden op volgorde geprobeerd. Sleep om te herordenen. Alles uit = songteksten uitgeschakeld.',
|
||
lyricsStaticOnly: 'Alleen statische tekst weergeven',
|
||
lyricsStaticOnlyDesc: 'Gesynchroniseerde songteksten worden zonder auto-scroll en zonder woordmarkering als statische tekst weergegeven.',
|
||
downloadsTitle: 'ZIP-export & Archivering',
|
||
downloadsFolderDesc: 'Doelmap voor albums die je als ZIP-bestand naar je computer downloadt.',
|
||
downloadsDefault: 'Standaard downloadmap',
|
||
pickFolder: 'Selecteren',
|
||
pickFolderTitle: 'Downloadmap selecteren',
|
||
clearFolder: 'Map wissen',
|
||
logout: 'Uitloggen',
|
||
aboutTitle: 'Over Psysonic',
|
||
aboutDesc: 'Een moderne desktopmuziekspeler gebouwd voor Navidrome. Gebruikt de Subsonic-API plus Navidrome-specifieke extensies. Gebouwd op Tauri v2 met een native Rust audio-engine — licht en snel, maar boordevol functies: golfvorm-zoekbalk, gesynchroniseerde songteksten, Last.fm-integratie, 10-bands equalizer, crossfade, naadloos afspelen, Replay Gain, genres en een uitgebreide themabibliotheek.',
|
||
aboutLicense: 'Licentie',
|
||
aboutLicenseText: 'GNU GPL v3 — vrij te gebruiken, wijzigen en verspreiden onder dezelfde licentie.',
|
||
aboutRepo: 'Broncode op GitHub',
|
||
aboutVersion: 'Versie',
|
||
aboutBuiltWith: 'Gebouwd met Tauri · React · TypeScript · Rust/rodio',
|
||
aboutReleaseNotesLabel: 'Release-notities',
|
||
aboutReleaseNotesLink: 'Nieuws van deze versie openen',
|
||
aboutContributorsLabel: 'Bijdragers',
|
||
showChangelogOnUpdate: "'Wat is nieuw' tonen bij update",
|
||
showChangelogOnUpdateDesc: 'Toont een discrete changelog-banner boven Now Playing na een update. Klik opent de release-notities; X verbergt hem.',
|
||
libraryGridMaxColumnsTitle: 'Kaartenrasters in de bibliotheek',
|
||
libraryGridMaxColumnsPerfHint: 'Meer kolommen betekent meer tegels per rij en vaak meer lay-out- en schilderwerk — merkbaar bij zeer grote bibliotheken of tragere hardware.',
|
||
libraryGridMaxColumnsRangeLabel: 'Maximum aantal kolommen ({{min}}–{{max}})',
|
||
libraryGridMaxColumnsDesc: 'Geldt voor album-, artiest-, afspeellijst-, radio-, offline- en andere kaartweergaven. Minder kolommen = grotere tegels en meestal minder CPU-belasting.',
|
||
libraryIndexTitle: 'Lokale bibliotheeksindex (preview)',
|
||
libraryIndexDesc: 'Houdt een lokale kopie van de trackdatabase van elke server bij, zodat bladeren en zoeken snel blijven en offline werken. De eerste synchronisatie draait voor elke geconfigureerde server; offline servers worden automatisch opnieuw geprobeerd.',
|
||
libraryIndexDeltaHint: 'Achtergronddelta-synchronisatie controleert gekoppelde servers elke 30 seconden en draait wanneer nodig — meestal elke 5–45 minuten, afhankelijk van bibliotheekgrootte en belasting.',
|
||
libraryIndexEnable: 'Lokale bibliotheeksindex inschakelen',
|
||
libraryIndexEnableAllDesc: 'Alle geconfigureerde servers op de achtergrond indexeren en synchroniseren.',
|
||
libraryIndexNoServer: 'Voeg eerst een server toe.',
|
||
libraryIndexServerListTitle: 'Geïndexeerde servers',
|
||
libraryIndexAllExcluded: 'Alle servers zijn uitgesloten van synchronisatie. Schakel de index weer in of voeg een server toe.',
|
||
libraryIndexServerOffline: 'Server offline — synchronisatie uitgesteld',
|
||
libraryIndexServerDeferred: 'Uitgesteld',
|
||
libraryIndexServerSyncing: 'Synchroniseren…',
|
||
libraryIndexFullResync: 'Volledige resync',
|
||
libraryIndexDeltaSync: 'Delta-sync',
|
||
libraryIndexExcludeServer: 'Uitsluiten van synchronisatie',
|
||
libraryIndexExcludingServer: 'Uitsluiten…',
|
||
libraryIndexExcludedTitle: 'Uitgesloten van synchronisatie',
|
||
libraryIndexIncludeServer: 'Weer opnemen',
|
||
libraryIndexIncludingServer: 'Opnemen…',
|
||
libraryIndexStatus: 'Status',
|
||
libraryIndexStatusIdle: 'Inactief',
|
||
libraryIndexStatusProbing: 'Server controleren…',
|
||
libraryIndexStatusInitial: 'Eerste synchronisatie…',
|
||
libraryIndexStatusReady: 'Gereed ({{count}} nummers)',
|
||
libraryIndexStatusError: 'Fout — zie logs',
|
||
libraryIndexProgressIngest: '{{count}} nummers geïndexeerd…',
|
||
libraryIndexProgressVerify: '{{checked}} gecontroleerd ({{deleted}} verwijderd)',
|
||
libraryIndexSyncNow: 'Nu synchroniseren',
|
||
libraryIndexVerify: 'Bibliotheeksintegriteit controleren',
|
||
libraryIndexCancel: 'Annuleren',
|
||
libraryIndexAutoReconcile: 'Automatisch afstemmen bij dalend aantal',
|
||
libraryIndexAutoReconcileDesc: 'Controleert automatisch op verwijderde nummers wanneer de server minder meldt dan verwacht.',
|
||
libraryIndexSyncError: 'Bibliotheeksynchronisatie mislukt: {{error}}',
|
||
libraryIndexBindError: 'Index kon niet worden ingeschakeld: {{error}}',
|
||
randomMixTitle: 'Willekeurige mix-blacklist',
|
||
luckyMixMenuTitle: 'Toon Geluksmix in menu',
|
||
luckyMixMenuDesc: 'Schakelt Geluksmix in bij "Mix samenstellen" en als apart menu-item bij gesplitste navigatie. Alleen zichtbaar wanneer AudioMuse actief is op de huidige server.',
|
||
randomMixBlacklistTitle: 'Aangepaste filtertrefwoorden',
|
||
randomMixBlacklistDesc: 'Nummers worden uitgesloten als een trefwoord overeenkomt met hun genre, titel, album of artiest (actief wanneer het selectievakje hierboven is aangevinkt).',
|
||
randomMixBlacklistPlaceholder: 'Trefwoord toevoegen…',
|
||
randomMixBlacklistAdd: 'Toevoegen',
|
||
randomMixBlacklistEmpty: 'Nog geen aangepaste trefwoorden toegevoegd.',
|
||
randomMixHardcodedTitle: 'Ingebouwde trefwoorden (actief wanneer selectievakje is aangevinkt)',
|
||
tabAudio: 'Audio',
|
||
tabStorage: 'Offline & Cache',
|
||
tabAppearance: 'Weergave',
|
||
tabThemes: "Thema's",
|
||
themesYourThemesTitle: "Jouw thema's",
|
||
themesCvdTooltip: 'Kleurenblind-veilig – deuteranopie, protanopie, tritanopie',
|
||
themeStoreTitle: 'Themawinkel',
|
||
themeStoreSubmitText: 'Eigen thema gemaakt? Deel het met de community — meer info in de themarepository.',
|
||
themeStoreSubmitLink: 'Themarepository openen',
|
||
themeStoreNetworkNotice: 'De Theme Store laadt de catalogus en previews van externe diensten (de jsDelivr-CDN en GitHub). Er worden geen persoonlijke gegevens verzonden.',
|
||
themeStoreSearchPlaceholder: "Thema's zoeken…",
|
||
themeStoreFilterMode: 'Filteren op modus',
|
||
themeStoreModeAll: 'Alle',
|
||
themeStoreModeDark: 'Donker',
|
||
themeStoreModeLight: 'Licht',
|
||
themeStoreRefresh: 'Vernieuwen',
|
||
themeStoreLoading: "Thema's laden…",
|
||
themeStoreError: 'Kan de themawinkel niet laden. Controleer je verbinding.',
|
||
themeStoreRetry: 'Opnieuw proberen',
|
||
themeStoreOfflineTitle: 'De Theme Store is offline',
|
||
themeStoreEmpty: "Geen thema's komen overeen met je filters.",
|
||
themeStoreActive: 'Actief',
|
||
themeStoreEnlarge: 'Voorbeeld vergroten',
|
||
themeStoreByAuthor: 'door {{author}}',
|
||
themeMigrationNoticeTitle: 'Thema verplaatst naar de store',
|
||
themeMigrationNoticeBody: '{{themes}} wordt niet meer met de app meegeleverd. Je kunt het opnieuw installeren via de Theme Store (Instellingen → Thema\'s) of een ander thema kiezen.',
|
||
themeMigrationNoticeOpen: 'Theme Store openen',
|
||
themeStoreOffline: 'De laatst gecachte catalogus wordt getoond — je lijkt offline te zijn.',
|
||
themeStoreInstall: 'Installeren',
|
||
themeStoreInstalling: 'Installeren…',
|
||
themeStoreApply: 'Toepassen',
|
||
themeStoreUpdate: 'Bijwerken',
|
||
themeStoreUpdating: 'Bijwerken…',
|
||
themeStoreUninstall: 'Verwijderen',
|
||
themeStoreInstallFailed: 'Installatie mislukt',
|
||
themeStorePagePrev: 'Vorige pagina',
|
||
themeStorePageNext: 'Volgende pagina',
|
||
themeStorePageStatus: 'Pagina {{page}} van {{total}}',
|
||
themeImportTitle: 'Een thema importeren',
|
||
themeImportButton: 'Thema importeren…',
|
||
themeImporting: 'Importeren…',
|
||
themeImportHint: 'Laadt een thema verpakt als .zip (manifest.json + theme.css).',
|
||
themeImportSuccess: '"{{name}}" geïmporteerd.',
|
||
themeImportErrorTitle: 'Dit thema kon niet worden geïmporteerd',
|
||
themeImportErrorBody: 'Het komt niet overeen met het Psysonic-themaformaat. Mogelijk is het voor een andere versie gemaakt of is het bestand onvolledig — controleer of je de juiste .zip hebt gekozen, of vraag de maker van het thema.',
|
||
themeImportErrorDetails: 'Technische details',
|
||
themeImportConfirmTitle: 'Thema installeren?',
|
||
themeImportConfirmBody: '"{{name}}" van {{author}} installeren?',
|
||
themeImportConfirmRisk: 'Geïmporteerde thema’s worden niet gecontroleerd — installeer alleen thema’s die je vertrouwt.',
|
||
tabLibrary: 'Bibliotheek',
|
||
tabServers: 'Servers',
|
||
tabLyrics: 'Songteksten',
|
||
tabPersonalisation: 'Personalisatie',
|
||
tabIntegrations: 'Integraties',
|
||
inputKeybindingsTitle: 'Sneltoetsen',
|
||
aboutContributorsCount_one: '{{count}} bijdrage',
|
||
aboutContributorsCount_other: '{{count}} bijdragen',
|
||
searchPlaceholder: 'Instellingen zoeken…',
|
||
searchNoResults: 'Geen instellingen komen overeen met je zoekopdracht.',
|
||
aboutMaintainersLabel: 'Beheerders',
|
||
integrationsPrivacyTitle: 'Privacyverklaring',
|
||
integrationsPrivacyBody: 'Alle integraties op dit tabblad zijn <strong>opt-in</strong> en sturen, eenmaal ingeschakeld, gegevens naar externe diensten of naar je Navidrome-server. Last.fm ontvangt je luistergeschiedenis, Discord toont het nu spelende nummer in je profiel, Bandsintown wordt per artiest bevraagd voor tourdatums, en de "Nu aan het afspelen"-deling publiceert je huidige nummer bij andere gebruikers van je Navidrome-server. Wil je dit niet, laat dan de bijbehorende sectie gewoon uitgeschakeld.',
|
||
homeCustomizerTitle: 'Hoofdpodium',
|
||
queueModeTitle: 'Weergavemodus wachtrij',
|
||
queueModeQueueSub: 'Toont alleen komende nummers. Het huidige nummer blijft in de kop en verdwijnt uit de lijst zodra het is afgespeeld.',
|
||
queueModePlaylistSub: 'Houdt de hele wachtrij in de lijst met het huidige nummer bovenaan gemarkeerd; afgespeelde nummers blijven staan.',
|
||
queueModeTimelineSub: 'Centreer de huidige track, met de afgespeelde geschiedenis erboven en de komende tracks (in shuffle-volgorde) eronder.',
|
||
queueToolbarTitle: 'Wachtrij-werkbalk',
|
||
queueToolbarReset: 'Standaard herstellen',
|
||
queueToolbarSeparator: 'Scheiding',
|
||
sidebarTitle: 'Zijbalk',
|
||
sidebarReset: 'Standaard herstellen',
|
||
artistLayoutTitle: 'Secties artiestenpagina',
|
||
artistLayoutDesc: 'Versleep om te herschikken, schakel om individuele secties van de artiestenpagina te verbergen. Secties zonder gegevens worden automatisch overgeslagen.',
|
||
artistLayoutReset: 'Standaard herstellen',
|
||
artistLayoutBio: 'Biografie van de artiest',
|
||
artistLayoutTopTracks: 'Populaire nummers',
|
||
artistLayoutSimilar: 'Soortgelijke artiesten',
|
||
artistLayoutAlbums: 'Albums',
|
||
artistLayoutFeatured: 'Ook te horen op',
|
||
playlistLayoutTitle: 'Afspeellijst pagina-indeling',
|
||
playlistLayoutDesc: 'Individuele elementen op de afspeellijstpagina tonen of verbergen.',
|
||
playlistLayoutReset: 'Standaard herstellen',
|
||
playerBarTitle: 'Speelbalk',
|
||
playerBarReset: 'Standaard herstellen',
|
||
playerBarStarRating: 'Sterbeoordeling',
|
||
playerBarFavorite: 'Favoriet (hart)',
|
||
playerBarLastfmLove: 'Last.fm love',
|
||
playerBarPlaybackRate: 'Afspeelsnelheid',
|
||
playerBarEqualizer: 'Equalizer',
|
||
playerBarMiniPlayer: 'Mini-speler',
|
||
playbackRateTitle: 'Afspeelsnelheid',
|
||
playbackRateEnabled: 'Afspeelsnelheid inschakelen',
|
||
playbackRateEnabledDesc: 'Globale snelheid voor alle nummers. Niet van toepassing op radio en previews.',
|
||
playbackRateStrategy: 'Strategie',
|
||
playbackRateStrategySpeed: 'Snelheid',
|
||
playbackRateStrategyVarispeed: 'Met toon',
|
||
playbackRateStrategyPreserve: 'Toonhoogte',
|
||
playbackRateSpeed: 'Snelheid',
|
||
playbackRatePitch: 'Toonhoogte',
|
||
playbackRateDerivedPitch: 'Toonhoogteverschuiving door snelheid: {{value}}',
|
||
playbackRateAutoPitch: 'De toonhoogte wordt automatisch gecorrigeerd.',
|
||
playbackRateHint: '« Snelheid » behoudt de natuurlijke toonhoogte. « Met toon » verandert de toonhoogte met de snelheid. « Toonhoogte » voegt een handmatige verschuiving toe. Meer CPU dan « Met toon ». Niet voor radio, previews of Orbit.',
|
||
playbackRateNeutral: 'Bij 1,0× en zonder toonverschuiving is afspelen normaal.',
|
||
playbackRateOrbitPaused: 'Niet actief tijdens Orbit-sessies — afspelen blijft 1,0× voor sync.',
|
||
playbackRateOrbitPausedShort: 'Orbit: 1,0× voor sync.',
|
||
advancedMode: 'Geavanceerd',
|
||
advancedModeTooltip: 'Toon geavanceerde opties in alle instellingstabbladen. Bijdragen van de community die niet noodzakelijk de ontwerpfilosofie van de Psysonic-onderhouders weerspiegelen.',
|
||
advancedBadge: 'Geavanceerd',
|
||
sidebarDrag: 'Slepen om te herordenen',
|
||
sidebarFixed: 'Altijd zichtbaar',
|
||
nowPlayingTopTitle: '"Nu bezig" bovenaan',
|
||
nowPlayingTopDesc: 'Zet "Nu bezig" bovenaan de zijbalk in plaats van onderaan.',
|
||
randomNavSplitTitle: 'Mix-navigatie splitsen',
|
||
randomNavSplitDesc: 'Toon "Willekeurige mix", "Willekeurige albums" en "Geluksmix" als afzonderlijke zijbalkitems in plaats van de "Mix samenstellen"-hub.',
|
||
tabInput: 'Invoer',
|
||
tabUsers: 'Gebruikers',
|
||
shortcutsReset: 'Standaard herstellen',
|
||
shortcutListening: 'Druk op een toets…',
|
||
shortcutUnbound: '—',
|
||
shortcutClear: 'Wissen',
|
||
globalShortcutsTitle: 'Globale sneltoetsen',
|
||
globalShortcutsNote: 'Werken systeembreed, ook als Psysonic op de achtergrond draait. Vereist Ctrl, Alt of Super als modifier.',
|
||
shortcutPlayPause: 'Afspelen / Pauzeren',
|
||
shortcutNext: 'Volgend nummer',
|
||
shortcutPrev: 'Vorig nummer',
|
||
shortcutVolumeUp: 'Volume omhoog',
|
||
shortcutVolumeDown: 'Volume omlaag',
|
||
shortcutSeekForward: '10s vooruitspoelen',
|
||
shortcutSeekBackward: '10s terugspoelen',
|
||
shortcutToggleQueue: 'Wachtrij tonen/verbergen',
|
||
shortcutOpenFolderBrowser: '{{folderBrowser}} openen',
|
||
shortcutFullscreenPlayer: 'Volledigschermspeler',
|
||
shortcutNativeFullscreen: 'Systeemvolledig scherm',
|
||
shortcutOpenMiniPlayer: 'Mini-speler openen',
|
||
shortcutStartSearch: 'Zoekopdracht starten',
|
||
shortcutStartAdvancedSearch: 'Geavanceerde zoekopdracht starten',
|
||
shortcutToggleSidebar: 'Zijbalk in-/uitschakelen',
|
||
shortcutMuteSound: 'Geluid dempen',
|
||
shortcutToggleEqualizer: 'Equalizer openen / schakelen',
|
||
shortcutToggleRepeat: 'Herhaling schakelen',
|
||
shortcutOpenNowPlaying: '"Nu speelt" openen',
|
||
shortcutShowLyrics: 'Songtekst tonen',
|
||
shortcutFavoriteCurrentTrack: 'Huidig nummer aan favorieten toevoegen',
|
||
shortcutOpenHelp: 'Help',
|
||
tabSystem: 'Systeem',
|
||
loggingTitle: 'Logboek',
|
||
loggingModeDesc: 'Bepaalt de uitgebreidheid van backendlogs in de terminal.',
|
||
loggingModeOff: 'Uit',
|
||
loggingModeNormal: 'Normaal',
|
||
loggingModeDebug: 'Debug',
|
||
loggingExport: 'Logs exporteren',
|
||
loggingExportSuccess: 'Logs geëxporteerd ({{count}} regels).',
|
||
loggingExportError: 'Kon logs niet exporteren.',
|
||
ratingsSectionTitle: 'Beoordelingen',
|
||
ratingsSkipStarTitle: 'Overslaan voor 1 ster',
|
||
ratingsSkipStarDesc:
|
||
'Na meerdere overslagen op rij: nummer op 1 ster zetten. Alleen voor nummers die nog niet beoordeeld waren.',
|
||
ratingsSkipStarThresholdLabel: 'Overslagen',
|
||
ratingsMixFilterTitle: 'Filter op beoordeling',
|
||
ratingsMixFilterDesc:
|
||
'Content met lage beoordeling filteren in {{mix}} en {{albums}}. Klik opnieuw op de gekozen ster om de drempel uit te zetten.',
|
||
ratingsMixMinSong: 'Nummers',
|
||
ratingsMixMinAlbum: 'Albums',
|
||
ratingsMixMinArtist: 'Artiesten',
|
||
ratingsMixMinThresholdAria: 'Minimum sterren: {{label}}',
|
||
backupTitle: 'Back-up & Herstel',
|
||
backupExport: 'Instellingen exporteren',
|
||
backupExportDesc: 'Slaat alle instellingen, serverprofielen, Last.fm-configuratie, thema, EQ en sneltoetsen op in een .psybkp-bestand. Wachtwoorden worden opgeslagen als leesbare tekst — bewaar het bestand veilig.',
|
||
backupImport: 'Instellingen importeren',
|
||
backupImportDesc: 'Herstelt instellingen vanuit een .psybkp-bestand. De app wordt herladen na het importeren.',
|
||
backupImportConfirm: 'Alle huidige instellingen worden overschreven. Doorgaan?',
|
||
backupSuccess: 'Back-up opgeslagen',
|
||
backupImportSuccess: 'Instellingen hersteld — herladen…',
|
||
backupImportError: 'Ongeldig of beschadigd back-upbestand.',
|
||
playbackTitle: 'Afspelen',
|
||
replayGain: 'Replay Gain',
|
||
replayGainDesc: 'Nummervolume normaliseren met ReplayGain-metadata',
|
||
replayGainMode: 'Modus',
|
||
replayGainAuto: 'Auto',
|
||
replayGainAutoDesc: 'Kiest album-gain wanneer aangrenzende nummers in de wachtrij van hetzelfde album zijn, anders nummer-gain.',
|
||
replayGainTrack: 'Nummer',
|
||
replayGainAlbum: 'Album',
|
||
replayGainPreGain: 'Pre-Gain (getagde bestanden)',
|
||
replayGainPreGainDesc: 'Universele boost bovenop elke ReplayGain-berekening. Handig als je bibliotheek over het geheel te zacht aanvoelt.',
|
||
replayGainFallback: 'Terugval (zonder tags / radio)',
|
||
replayGainFallbackDesc: 'Toegepast op nummers (en radiostreams) zonder ReplayGain-tags, zodat ongetagde inhoud er niet harder uitspringt dan de rest.',
|
||
normalization: 'Normalisatie',
|
||
normalizationDesc: 'Egaliseer de waargenomen luidheid tussen nummers, albums en radio.',
|
||
normalizationOff: 'Uit',
|
||
normalizationReplayGain: 'ReplayGain',
|
||
normalizationLufs: 'LUFS',
|
||
loudnessTargetLufs: 'Doel-LUFS',
|
||
loudnessTargetLufsDesc: 'Referentie-luidheid waarop alle nummers worden afgestemd. Lagere waarde = luidere uitvoer. Streamingdiensten zitten meestal rond -14 LUFS.',
|
||
loudnessPreAnalysisAttenuation: 'Demping vóór meting',
|
||
loudnessPreAnalysisAttenuationDesc:
|
||
'Extra zachter tot de loudness van het nummer is opgeslagen. Streamen gebruikt daarna grove schattingen, geen volledige meting. 0 dB = uit; negatiever = zachter. Rechts staat de effectieve dB voor het huidige doel.',
|
||
loudnessPreAnalysisAttenuationRef: 'Effectief {{eff}} dB bij doel {{tgt}} LUFS.',
|
||
loudnessPreAnalysisAttenuationReset: 'Standaard',
|
||
loudnessFirstPlayNote:
|
||
'Bij de eerste keer afspelen van een nieuw nummer kan het volume even fluctueren terwijl er gemeten wordt. De volgende keer gebruikt de speler de opgeslagen meting en blijft alles rotsvast. Komende nummers in de wachtrij worden meestal al tijdens het vorige nummer geanalyseerd, dus dit komt in de praktijk zelden voor.',
|
||
crossfade: 'Overgang',
|
||
crossfadeDesc: 'Fade tussen nummers',
|
||
crossfadeSecs: '{{n}} s',
|
||
notWithGapless: 'Niet beschikbaar als naadloos afspelen actief is',
|
||
notWithCrossfade: 'Niet beschikbaar als overgang actief is',
|
||
gapless: 'Naadloos afspelen',
|
||
gaplessDesc: 'Volgend nummer vooraf bufferen om stiltes tussen nummers te elimineren',
|
||
preservePlayNextOrder: '"Volgende afspelen"-volgorde behouden',
|
||
preservePlayNextOrderDesc: 'Nieuwe "Volgende afspelen"-items komen achter bestaande te staan in plaats van ervoor.',
|
||
trackPreviewsTitle: 'Track-voorvertoning',
|
||
trackPreviewsToggle: 'Track-voorvertoning inschakelen',
|
||
trackPreviewsDesc: 'Inline Play- en Voorvertoning-knoppen in trackslijsten tonen voor een korte sample midden in het nummer.',
|
||
trackPreviewStart: 'Startpositie',
|
||
trackPreviewStartDesc: 'Hoever in de track de voorvertoning start (% van de duur).',
|
||
trackPreviewDuration: 'Duur',
|
||
trackPreviewDurationDesc: 'Hoe lang elke voorvertoning speelt voordat hij stopt.',
|
||
trackPreviewDurationSecs: '{{n}} s',
|
||
trackPreviewLocationsTitle: 'Waar voorvertoningen verschijnen',
|
||
trackPreviewLocationsDesc: 'Kies in welke lijsten de voorvertoning-knoppen worden weergegeven.',
|
||
trackPreviewLocation_suggestions: 'In playlist-suggesties',
|
||
trackPreviewLocation_albums: 'In albumlijsten',
|
||
trackPreviewLocation_playlists: 'In playlists',
|
||
trackPreviewLocation_favorites: 'In favorieten',
|
||
trackPreviewLocation_artist: 'In top-tracks van artiest',
|
||
trackPreviewLocation_randomMix: 'In Random Mix',
|
||
nextTrackBufferingTitle: 'Buffering',
|
||
infiniteQueue: 'Oneindige wachtrij',
|
||
infiniteQueueDesc: 'Automatisch willekeurige nummers toevoegen als de wachtrij leeg raakt',
|
||
experimental: 'Experimenteel',
|
||
sidebarLyricsStyle: 'Scrollstijl voor tekst',
|
||
sidebarLyricsStyleClassic: 'Klassiek',
|
||
sidebarLyricsStyleClassicDesc: 'Actieve regel wordt gecentreerd.',
|
||
sidebarLyricsStyleApple: 'Apple Music-like',
|
||
sidebarLyricsStyleAppleDesc: 'Actieve regel verankerd bovenaan met vloeiende animatie.',
|
||
seekbarStyle: 'Zoekbalkstijl',
|
||
seekbarStyleDesc: 'Kies het uiterlijk van de afspeelbalk',
|
||
seekbarTruewave: 'Echte golfvorm',
|
||
seekbarPseudowave: 'Pseudo-golfvorm',
|
||
seekbarLinedot: 'Lijn & punt',
|
||
seekbarBar: 'Balk',
|
||
seekbarThick: 'Dikke balk',
|
||
seekbarSegmented: 'Gesegmenteerd',
|
||
seekbarNeon: 'Neon',
|
||
seekbarPulsewave: 'Pulsgolf',
|
||
seekbarParticletrail: 'Deeltjesspoor',
|
||
seekbarLiquidfill: 'Vloeistofbuis',
|
||
seekbarRetrotape: 'Retrotape',
|
||
themeSchedulerTitle: 'Thema-planner',
|
||
themeSchedulerEnable: 'Thema-planner inschakelen',
|
||
themeSchedulerEnableSub: 'Schakelt automatisch tussen twee thema\'s op basis van de tijd',
|
||
themeSchedulerDayTheme: 'Dagthema',
|
||
themeSchedulerDayStart: 'Dag begint om',
|
||
themeSchedulerNightTheme: 'Nachtthema',
|
||
themeSchedulerNightStart: 'Nacht begint om',
|
||
themeSchedulerActiveHint: "Thema-planner is actief - thema's worden automatisch gewisseld.",
|
||
visualOptionsTitle: 'Visuele Opties',
|
||
coverArtBackground: 'Cover Achtergrond',
|
||
coverArtBackgroundSub: 'Toon vervaagde cover als achtergrond in album/playlist headers',
|
||
playlistCoverPhoto: 'Playlist Coverfoto',
|
||
playlistCoverPhotoSub: 'Toon coverfoto raster in playlist detailweergave',
|
||
showBitrate: 'Toon Bitrate',
|
||
showBitrateSub: 'Toon audio bitrate in tracklijsten',
|
||
floatingPlayerBar: 'Zwevende Spelerbalk',
|
||
floatingPlayerBarSub: 'Houd de spelerbalk zwevend boven de inhoud',
|
||
uiScaleTitle: 'Interface schaal',
|
||
uiScaleLabel: 'Zoom',
|
||
confirmDeleteServerLibrary: 'Ook de lokale bibliotheekindex van deze server verwijderen? Klik op Annuleren om de gecachte kopie voor offline gebruik te behouden.',
|
||
waveformCacheClearBtn: 'Waveform-cache wissen',
|
||
waveformCacheCleared: 'Waveform-cache gewist ({{count}} rijen).',
|
||
waveformCacheClearFailed: 'Waveform-cache wissen mislukt.',
|
||
useCustomTitlebar: 'Aangepaste titelbalk',
|
||
useCustomTitlebarDesc: 'Vervang de systeemtitelbalk door een ingebouwde balk die bij het app-thema past. Schakel uit om de native GNOME/GTK-titelbalk te gebruiken.',
|
||
analyticsStrategyTitle: 'Analysestrategieën',
|
||
analyticsStrategyDesc: 'Kies de analysemethode voor de bibliotheek.',
|
||
analyticsStrategyLabel: 'Strategie',
|
||
analyticsStrategyLazy: 'Lui',
|
||
analyticsStrategyLazyDesc: 'Analyseert alleen wanneer tracks worden afgespeeld of in de hot/offline-cache terechtkomen — minimaal CPU- en netwerkgebruik.',
|
||
analyticsStrategyAdvanced: 'Agressief',
|
||
analyticsStrategyAdvancedDesc: 'Agressievere achtergrondscan. Na voltooiing krijg je BPM voor alle tracks plus directe loudness- en waveform-lading.',
|
||
analyticsStrategyPriorityTitle: 'Analyseprioriteit (altijd actief)',
|
||
analyticsStrategyPriorityHigh: '1 — Nu afspelen: eerst downloaden en analyseren (playback-bytes, loudness-backfill of HTTP indien nodig).',
|
||
analyticsStrategyPriorityMiddle: '2 — Hierna: de volgende ~5 wachtrijtracks en hot-cache-buren — analyse vanuit cache/downloads waar mogelijk; HTTP-backfill alleen bij miss.',
|
||
analyticsStrategyPriorityLow: '3 — Bibliotheekbatch (alleen Agressief): automatische achtergrondwachtrij achteraan; wordt bijgevuld via watermark (~3× workers) zonder op een lege wachtrij te wachten.',
|
||
analyticsStrategyServerLabel: 'Server',
|
||
analyticsStrategyProgressLabel: 'Analysevoortgang:',
|
||
analyticsStrategyProgressValue: '{{percent}}% ({{done}}/{{total}})',
|
||
analyticsStrategyActionsLabel: 'Acties',
|
||
analyticsStrategyParallelismLabel: 'Parallelle workers',
|
||
analyticsStrategyParallelismValue: '{{n}} threads',
|
||
analyticsStrategyParallelismDesc: 'Hoeveel tracks tegelijk worden gedownload en geanalyseerd (HTTP + CPU). Hogere waarden versnellen het inhalen van de bibliotheek, maar gebruiken meer netwerk en CPU.',
|
||
analyticsStrategyAdvancedWarning: 'Agressief gebruikt meer CPU en netwerkbandbreedte terwijl de bibliotheekbatch op de achtergrond draait.',
|
||
analyticsStrategyServerRemoved: 'Verwijderde server',
|
||
analyticsStrategyClearAction: 'Analyse wissen',
|
||
analyticsStrategyClearTitle: 'Analyse wissen?',
|
||
analyticsStrategyClearDesc: 'Analyse wissen voor {{server}} verwijdert gecachte waveforms en loudness. Deze server later opnieuw toevoegen kan een lange herindexering vereisen.',
|
||
analyticsStrategyClearCancel: 'Annuleren',
|
||
analyticsStrategyClearConfirm: 'Analyse wissen',
|
||
analyticsStrategyClearSuccess: 'Analyse gewist voor de verwijderde server.',
|
||
analyticsStrategyClearError: 'Analyse wissen voor de verwijderde server mislukt.',
|
||
analyticsStrategyProgressEmptyAfterFailed: '100% (0/0, geblokkeerd door mislukte tracks)',
|
||
analyticsFailedTracksOpenTitle: 'Mislukte tracks: {{count}}',
|
||
analyticsFailedTracksTitle: 'Mislukte analysetracks — {{server}}',
|
||
analyticsFailedTracksDesc: 'Deze tracks faalden herhaaldelijk bij decode/enrichment en zijn uitgesloten van automatische achtergrondanalyse.',
|
||
analyticsFailedTracksLoading: 'Lijst met mislukte tracks laden…',
|
||
analyticsFailedTracksEmpty: 'Geen mislukte tracks voor deze server.',
|
||
analyticsFailedTracksClose: 'Sluiten',
|
||
analyticsFailedTracksExport: 'Lijst exporteren',
|
||
analyticsFailedTracksExportSuccess: 'Lijst met mislukte tracks geëxporteerd ({{count}}).',
|
||
analyticsFailedTracksExportError: 'Lijst met mislukte tracks kon niet worden geëxporteerd.',
|
||
analyticsFailedTracksRescan: 'Mislukte tracks opnieuw scannen',
|
||
analyticsFailedTracksRescanSuccess: 'Opnieuw scannen ingepland voor {{count}} mislukte tracks.',
|
||
analyticsFailedTracksRescanError: 'Mislukte tracks opnieuw scannen mislukt.',
|
||
analyticsFailedTracksLoadError: 'Mislukte tracks konden niet worden geladen.',
|
||
backupImportAny: 'Back-up importeren',
|
||
backupImportAnyConfirm: 'Geselecteerd back-upbestand importeren en inhoud toepassen (instellingen, bibliotheekdatabases of volledig). Doorgaan?',
|
||
backupModeFull: 'Volledig',
|
||
backupModeLibrary: 'Bibliotheekdatabases',
|
||
backupModeConfig: 'Configuratie',
|
||
backupFullDesc: 'Archiveert instellingen en bibliotheekdatabases in één back-upbestand.',
|
||
backupFullExport: 'Volledige back-up exporteren',
|
||
backupFullImport: 'Volledige back-up importeren',
|
||
backupFullImportConfirm: 'Dit overschrijft instellingen, vervangt huidige bibliotheekdatabases en verplaatst ze naar .bak. Doorgaan?',
|
||
backupFullExportSuccess: 'Volledige back-up geëxporteerd.',
|
||
backupFullImportSuccess: 'Volledige back-up geïmporteerd — herladen…',
|
||
backupFullImportError: 'Volledige back-up kon niet worden geïmporteerd.',
|
||
backupLibraryExport: 'Databases exporteren',
|
||
backupLibraryExportDesc: 'Maakt een gecomprimeerd archief met schone SQLite-snapshots van bibliotheekdatabases.',
|
||
backupLibraryImport: 'Databases importeren',
|
||
backupLibraryImportDesc: 'Herstelt bibliotheekdatabases uit een archiefbestand. Huidige databases worden voor het omschakelen naar .bak verplaatst.',
|
||
backupLibraryImportConfirm: 'Dit vervangt huidige bibliotheekdatabases en verplaatst ze naar .bak. Doorgaan?',
|
||
backupLibraryExportSuccess: 'Databaseback-up geëxporteerd.',
|
||
backupLibraryImportSuccess: 'Databaseback-up geïmporteerd.',
|
||
backupLibraryImportError: 'Databaseback-up kon niet worden geïmporteerd.',
|
||
backupOverlayExportTitle: 'Back-up maken…',
|
||
backupOverlayImportTitle: 'Back-up herstellen…',
|
||
backupOverlayHint: 'Je kunt het venster open laten terwijl we bestanden verwerken. Invoer is tijdelijk vergrendeld.',
|
||
};
|