Merge remote-tracking branch 'origin/main' into exp/orbit

# Conflicts:
#	src/api/subsonic.ts
This commit is contained in:
Psychotoxical
2026-04-24 19:57:34 +02:00
15 changed files with 1401 additions and 40 deletions
+42
View File
@@ -23,6 +23,7 @@ export const enTranslation = {
offlineLibrary: 'Offline Library',
genres: 'Genres',
playlists: 'Playlists',
smartPlaylists: 'Smart Playlists',
mostPlayed: 'Most Played',
radio: 'Internet Radio',
folderBrowser: 'Folder Browser',
@@ -1320,6 +1321,47 @@ export const enTranslation = {
csvImportDownloadSuccess: 'Report downloaded successfully',
csvImportDownloadError: 'Failed to download report',
},
smartPlaylists: {
sectionBasic: '1. Basic',
sectionGenres: '2. Genres',
sectionYearsAndFilters: '3. Years and filters',
genreMode: 'Genre mode',
genreModeInclude: 'Include genres',
genreModeExclude: 'Exclude genres',
genreSearchPlaceholder: 'Filter genres...',
availableGenres: 'Available',
selectedGenres: 'Selected',
yearMode: 'Year mode',
yearModeInclude: 'Include range',
yearModeExclude: 'Exclude range',
name: 'Name (without prefix)',
limit: 'Limit',
limitHint: 'How many tracks to include in playlist (1-{{max}}, usually 50).',
artistContains: 'Artist contains…',
albumContains: 'Album contains…',
titleContains: 'Title contains…',
minRating: 'Minimum rating',
minRatingAria: 'Minimum rating for smart playlist',
minRatingHint: '0 disables minimum threshold; 1-5 keeps tracks with rating above selected value.',
fromYear: 'From year',
toYear: 'To year',
excludeUnrated: 'Exclude unrated tracks',
compilationOnly: 'Only compilations',
create: 'New Smart Playlist',
save: 'Save Smart Playlist',
created: 'Created {{name}}',
updated: 'Updated {{name}}',
createFailed: 'Could not create smart playlist.',
updateFailed: 'Could not update smart playlist.',
navidromeOnly: 'Smart playlists can only be created on Navidrome servers.',
loadFailed: 'Could not load smart playlists from Navidrome.',
sortRandom: 'Sort: random',
sortTitleAsc: 'Sort: title A-Z',
sortTitleDesc: 'Sort: title Z-A',
sortYearDesc: 'Sort: year desc',
sortYearAsc: 'Sort: year asc',
sortPlayCountDesc: 'Sort: play count desc',
},
mostPlayed: {
title: 'Most Played',
topArtists: 'Top Artists',