The detail header overflowed the items column. Make the secondary actions icon-only with tooltips (Sync/Export, Reset to YouTube, Delete) keeping only Play all labeled; replace the long 'Unsynced changes' / 'Synced from YouTube' chips with a compact accent 'Unsynced' dot (tooltip explains). Add an open-on-YouTube external-link button next to the name + edit pencil (tooltip), shown for any YouTube-linked playlist.
59 lines
2.7 KiB
JSON
59 lines
2.7 KiB
JSON
{
|
|
"title": "Playlists",
|
|
"watchLater": "Watch later",
|
|
"syncYoutube": "Sync from YouTube",
|
|
"syncedToast": "Synced {{count}} playlists from YouTube",
|
|
"syncFailed": "Couldn't sync from YouTube",
|
|
"ytReadonly": "Synced from YouTube — edits sync back",
|
|
"noneYet": "No playlists yet",
|
|
"newPlaylist": "New playlist…",
|
|
"itemCount_one": "{{count}} video",
|
|
"itemCount_other": "{{count}} videos",
|
|
"pickOne": "Pick a playlist on the left.",
|
|
"loading": "Loading…",
|
|
"empty": "This playlist is empty — add videos from the feed.",
|
|
"playAll": "Play all",
|
|
"delete": "Delete",
|
|
"rename": "Rename",
|
|
"confirmDelete": "Delete the playlist “{{name}}”? This can't be undone.",
|
|
"addToPlaylist": "Add to playlist",
|
|
"exportToYoutube": "Export to YouTube",
|
|
"pushToYoutube": "Sync to YouTube",
|
|
"unsynced": "Unsynced",
|
|
"unsyncedHint": "You have local changes not yet synced to YouTube.",
|
|
"openOnYoutube": "Open on YouTube",
|
|
"revert": "Reset to YouTube",
|
|
"revertTitle": "Discard local changes?",
|
|
"revertMsg": "This reloads the playlist from YouTube and discards your unsynced local changes (order, additions, removals, rename). Continue?",
|
|
"revertConfirm": "Discard & reload",
|
|
"revertDone": "Reloaded from YouTube ✓",
|
|
"revertFailed": "Couldn't reload from YouTube.",
|
|
"pushTitle": "Sync to YouTube",
|
|
"pushConfirm": "Sync",
|
|
"pushPlanCreate": "Create a new YouTube playlist with {{count}} videos? (~{{units}} quota units; {{left}} left today.)",
|
|
"pushPlanUpdate": "Update on YouTube — add {{insert}}, remove {{del}}, reorder {{reorder}}? (~{{units}} quota units; {{left}} left today.)",
|
|
"pushDiverged": "{{count}} video(s) currently on YouTube will be removed.",
|
|
"pushNoQuota": "Not enough YouTube quota left today ({{left}}) for this sync (~{{units}} needed). Try again tomorrow.",
|
|
"pushUpToDate": "Already in sync with YouTube.",
|
|
"pushDone": "Synced to YouTube ✓",
|
|
"pushPartial": "Synced, but {{count}} item(s) were skipped.",
|
|
"pushFailed": "Couldn't sync to YouTube.",
|
|
"deleteOnYoutubeTitle": "Delete on YouTube too?",
|
|
"deleteOnYoutubeMsg": "Also delete “{{name}}” from your YouTube account? Choose “Here only” to keep it on YouTube.",
|
|
"deleteOnYoutubeConfirm": "Delete on YouTube",
|
|
"deleteHereOnly": "Here only",
|
|
"deleteYtFailed": "Couldn't delete on YouTube; removed here only.",
|
|
"sortLabel": "Sort",
|
|
"sortManual": "Custom order",
|
|
"sortTitle": "Title",
|
|
"sortDuration": "Duration",
|
|
"sortChannel": "Channel",
|
|
"dirAsc": "Ascending",
|
|
"dirDesc": "Descending",
|
|
"groupByChannel": "Group by channel",
|
|
"railSortCustom": "Custom order",
|
|
"railSortName": "Name",
|
|
"railSortCount": "Item count",
|
|
"railSortDuration": "Total length",
|
|
"dirtyFirst": "Unsynced first"
|
|
}
|