feat(playlists): improve smart playlist editing and localization

Open smart playlist editing from playlist cards, load rules via Navidrome single-playlist API with safer fallbacks, and keep edit visibility aligned with ownership rules.
Also add/clean smart playlist locale keys across all supported languages and preserve smarter autogenerated naming behavior.
This commit is contained in:
Maxim Isaev
2026-04-24 17:29:41 +03:00
parent da4e0189b9
commit 401fed8368
12 changed files with 519 additions and 56 deletions
+41
View File
@@ -1302,6 +1302,47 @@ export const nlTranslation = {
csvImportDownloadSuccess: 'Rapport succesvol gedownload',
csvImportDownloadError: 'Rapport downloaden mislukt',
},
smartPlaylists: {
sectionBasic: '1. Basis',
sectionGenres: '2. Genres',
sectionYearsAndFilters: '3. Jaren en filters',
genreMode: 'Genre-modus',
genreModeInclude: 'Genres opnemen',
genreModeExclude: 'Genres uitsluiten',
genreSearchPlaceholder: 'Genres filteren...',
availableGenres: 'Beschikbaar',
selectedGenres: 'Geselecteerd',
yearMode: 'Jaarmodus',
yearModeInclude: 'Bereik opnemen',
yearModeExclude: 'Bereik uitsluiten',
name: 'Naam (zonder prefix)',
limit: 'Limiet',
limitHint: 'Hoeveel nummers in de playlist moeten komen (1-{{max}}, meestal 50).',
artistContains: 'Artiest bevat…',
albumContains: 'Album bevat…',
titleContains: 'Titel bevat…',
minRating: 'Minimale beoordeling',
minRatingAria: 'Minimale beoordeling voor smart playlist',
minRatingHint: '0 schakelt de minimumdrempel uit; 1-5 behoudt nummers met een beoordeling boven de gekozen waarde.',
fromYear: 'Vanaf jaar',
toYear: 'Tot jaar',
excludeUnrated: 'Nummers zonder beoordeling uitsluiten',
compilationOnly: 'Alleen compilaties',
create: 'Nieuwe Smart Playlist',
save: 'Smart Playlist opslaan',
created: '{{name}} aangemaakt',
updated: '{{name}} bijgewerkt',
createFailed: 'Smart playlist kon niet worden aangemaakt.',
updateFailed: 'Smart playlist kon niet worden bijgewerkt.',
navidromeOnly: 'Smart playlists kunnen alleen op Navidrome-servers worden aangemaakt.',
loadFailed: 'Smart playlists konden niet vanuit Navidrome worden geladen.',
sortRandom: 'Sorteren: willekeurig',
sortTitleAsc: 'Sorteren: titel A-Z',
sortTitleDesc: 'Sorteren: titel Z-A',
sortYearDesc: 'Sorteren: jaar aflopend',
sortYearAsc: 'Sorteren: jaar oplopend',
sortPlayCountDesc: 'Sorteren: afspeeltelling aflopend',
},
mostPlayed: {
title: 'Meest gespeeld',
topArtists: 'Topkunstenaars',