mirror of
https://github.com/Psychotoxical/psysonic.git
synced 2026-07-22 15:25:46 +00:00
f3a0b3f7af
* fix(artist-detail): keep ext-link border visible on hover Hover used --border-subtle, which on Catppuccin matches --bg-card and visually erased the rim while only the fill changed. Match btn-surface: --ctp-surface1 border, --ctp-overlay0 on hover. * docs(changelog): credit zunoz on Psysonic Discord for PR #966 * fix(playlists): tooltips on Play/Add Songs and song count pluralization Add data-tooltip to Play and Add Songs in playlist hero; switch playlists.songs to count-based _one/_other forms (was {{n}} without i18next plural suffix, breaking spacing and singular). * fix(playlists): render BPM and optional cols in Suggested Songs rows PlaylistSuggestions shared column headers with the main tracklist but its row switch omitted bpm, genre, playCount, and lastPlayed.
105 lines
4.2 KiB
TypeScript
105 lines
4.2 KiB
TypeScript
export const playlists = {
|
|
title: 'Playlists',
|
|
newPlaylist: 'New Playlist',
|
|
unnamed: 'Unnamed Playlist',
|
|
createName: 'Playlist name…',
|
|
create: 'Create',
|
|
cancel: 'Cancel',
|
|
empty: 'No playlists yet.',
|
|
emptyPlaylist: 'This playlist is empty.',
|
|
addFirstSong: 'Add your first song',
|
|
notFound: 'Playlist not found.',
|
|
songs_one: '{{count}} song',
|
|
songs_other: '{{count}} songs',
|
|
playAll: 'Play All',
|
|
playTooltip: 'Play playlist',
|
|
shuffle: 'Shuffle',
|
|
addToQueue: 'Add to Queue',
|
|
back: 'Back to Playlists',
|
|
deletePlaylist: 'Delete',
|
|
confirmDelete: 'Click again to confirm',
|
|
removeSong: 'Remove from playlist',
|
|
addSongs: 'Add Songs',
|
|
addSongsTooltip: 'Search your library to add tracks',
|
|
searchPlaceholder: 'Search your library…',
|
|
noResults: 'No results.',
|
|
suggestions: 'Suggested Songs',
|
|
noSuggestions: 'No suggestions available.',
|
|
titleBadge: 'Playlist',
|
|
refreshSuggestions: 'New suggestions',
|
|
addSong: 'Add to playlist',
|
|
preview: 'Preview (30s)',
|
|
previewStop: 'Stop preview',
|
|
playNextSuggestion: 'Play next',
|
|
suggestionsHint: 'Double-click a row to add it to the playlist',
|
|
addSelected: 'Add selected',
|
|
cacheOffline: 'Cache playlist offline',
|
|
offlineCached: 'Playlist cached',
|
|
removeOffline: 'Remove from offline cache',
|
|
offlineDownloading: 'Caching… ({{done}}/{{total}} albums)',
|
|
publicLabel: 'Public',
|
|
privateLabel: 'Private',
|
|
editMeta: 'Edit playlist',
|
|
editNamePlaceholder: 'Playlist name…',
|
|
editCommentPlaceholder: 'Add a description…',
|
|
editPublic: 'Public playlist',
|
|
editSave: 'Save',
|
|
editCancel: 'Cancel',
|
|
changeCover: 'Change cover image',
|
|
changeCoverLabel: 'Change photo',
|
|
removeCover: 'Remove photo',
|
|
coverUpdated: 'Cover updated',
|
|
metaSaved: 'Playlist updated',
|
|
downloadZip: 'Download (ZIP)',
|
|
// Toast notifications for multi-select
|
|
addSuccess: '{{count}} songs added to {{playlist}}',
|
|
addPartial: '{{added}} added, {{skipped}} skipped (duplicates)',
|
|
addAllSkipped: 'All skipped ({{count}} duplicates)',
|
|
addedAsDuplicates: '{{count}} songs added to {{playlist}} (as duplicates)',
|
|
duplicateConfirmTitle: 'Already in playlist',
|
|
duplicateConfirmMessage: 'All {{count}} songs are already in "{{playlist}}". Add them again as duplicates?',
|
|
duplicateConfirmAction: 'Add anyway',
|
|
addError: 'Error adding songs',
|
|
createAndAddSuccess: 'Playlist "{{playlist}}" created with {{count}} songs',
|
|
createError: 'Error creating playlist',
|
|
deleteSuccess: '{{count}} playlists deleted',
|
|
deleteFailed: 'Error deleting {{name}}',
|
|
deleteSelected: 'Delete selected',
|
|
deleteSelectedPartial: 'Only {{n}} of {{total}} selected playlists can be deleted (the others belong to someone else).',
|
|
mergeSuccess: '{{count}} songs merged into {{playlist}}',
|
|
mergeNoNewSongs: 'No new songs to add',
|
|
mergeError: 'Error merging playlists',
|
|
mergeInto: 'Merge into',
|
|
selectionCount: '{{count}} selected',
|
|
select: 'Select',
|
|
startSelect: 'Enable selection',
|
|
cancelSelect: 'Cancel',
|
|
loadingAlbums: 'Resolving {{count}} albums…',
|
|
loadingArtists: 'Resolving {{count}} artists…',
|
|
myPlaylists: 'My Playlists',
|
|
noOtherPlaylists: 'No other playlists available',
|
|
addToPlaylistSuccess: '{{count}} songs added to {{playlist}}',
|
|
addToPlaylistNoNew: 'No new songs to add to {{playlist}}',
|
|
addToPlaylistError: 'Error adding to playlist',
|
|
removeSuccess: 'Song removed from playlist',
|
|
removeError: 'Error removing song from playlist',
|
|
importCSV: 'Import CSV',
|
|
importCSVTooltip: 'Import from Spotify CSV',
|
|
csvImportReport: 'CSV Import Report',
|
|
csvImportTotal: 'Total',
|
|
csvImportAdded: 'Added',
|
|
csvImportDuplicates: 'Duplicates',
|
|
csvImportNotFound: 'Not Found',
|
|
csvImportNetworkErrors: 'Network Errors',
|
|
csvImportDuplicatesTitle: 'Duplicate Tracks (Already in Playlist):',
|
|
csvImportNotFoundTitle: 'Tracks Not Found:',
|
|
csvImportNetworkErrorsTitle: 'Network Errors (may retry import):',
|
|
csvImportDownloadReport: 'Download Report',
|
|
csvImportClose: 'Close',
|
|
csvImportNoValidTracks: 'No valid tracks found in CSV file',
|
|
csvImportFailed: 'Failed to import CSV file',
|
|
csvImportToast: '{{added}} added, {{notFound}} not found, {{duplicates}} duplicates',
|
|
csvImportDownloadSuccess: 'Report downloaded successfully',
|
|
csvImportDownloadError: 'Failed to download report',
|
|
};
|