v4: playlists have categories of their own — a set apart from the dumps', which admins manage on /manage under "Playlist categories", next to "Dump categories". Each category now has a kind, dump or playlist, its slug and name unique within its kind only; migration 0025 rebuilds categories with the column, every existing one becoming a dump category with its dumps, and adds playlist_categories. A playlist's owner files it under any of them in the create and edit forms, and it shows them as chips on its card and its page, each leading to /playlists/<slug>.
/playlists is the new page of every public playlist, newest first (GET /api/playlists), and /playlists/<slug> a playlist category's, with a menu of the categories, linked from the user menu as "All playlists"; `playlists` is reserved as a dump category's slug, and one that had it is renamed. A profile's Playlists tab narrows to a playlist category with the same menu as its Dumps tab (?category=), and so do the Dumps and Playlists tabs of /search, each with its own kind (category and playlistCategory for GET /api/search), another tab dropping it. The category service takes the kind throughout, so a dump can't be filed under a playlist category nor the other way round, and categoryJoin is the one filter join the dump, follow and playlist services share. useCategories(kind) gives one kind's set from the one fetch, CategoryChips replaces the chips the dump card and page each drew, useCategoryFilter keeps a list to its category as the socket brings more, and useCategorySelection holds a form's picked categories. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
294
locales/en.po
294
locales/en.po
@@ -18,13 +18,13 @@ msgid "[deleted]"
|
||||
msgstr "[deleted]"
|
||||
|
||||
#. placeholder {0}: dump.commentCount
|
||||
#: src/components/dump/DumpCard.tsx:139
|
||||
#: src/components/dump/DumpCard.tsx:135
|
||||
#: src/components/dump/JournalCard.tsx:136
|
||||
msgid "{0, plural, one {# comment} other {# comments}}"
|
||||
msgstr "{0, plural, one {# comment} other {# comments}}"
|
||||
|
||||
#. placeholder {0}: playlist.dumpCount
|
||||
#: src/components/playlist/PlaylistCard.tsx:118
|
||||
#: src/components/playlist/PlaylistCard.tsx:120
|
||||
msgid "{0, plural, one {# dump} other {# dumps}}"
|
||||
msgstr "{0, plural, one {# dump} other {# dumps}}"
|
||||
|
||||
@@ -60,7 +60,7 @@ msgstr "{0}–{1} characters: letters, numbers, or underscores"
|
||||
msgid "email.digest.totals"
|
||||
msgstr "{dumps, plural, one {# dump} other {# dumps}}, {upvotes, plural, one {# upvote} other {# upvotes}} and {comments, plural, one {# comment} other {# comments}}."
|
||||
|
||||
#: src/pages/Search.tsx:124
|
||||
#: src/pages/Search.tsx:152
|
||||
msgid "{label} ({count})"
|
||||
msgstr "{label} ({count})"
|
||||
|
||||
@@ -205,15 +205,15 @@ msgstr "# Welcome to {site}!\n"
|
||||
"\n"
|
||||
"Your account has been created successfully. Welcome aboard!"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:742
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:736
|
||||
#: src/pages/PlaylistDetail.tsx:80
|
||||
#: src/pages/UserPublicProfile.tsx:125
|
||||
msgid "← Back"
|
||||
msgstr "← Back"
|
||||
|
||||
#: src/pages/Dump.tsx:326
|
||||
#: src/pages/Dump.tsx:568
|
||||
#: src/pages/DumpEdit.tsx:232
|
||||
#: src/pages/Dump.tsx:325
|
||||
#: src/pages/Dump.tsx:552
|
||||
#: src/pages/DumpEdit.tsx:233
|
||||
msgid "← Back to all dumps"
|
||||
msgstr "← Back to all dumps"
|
||||
|
||||
@@ -225,7 +225,7 @@ msgstr "+ Invite someone"
|
||||
msgid "+ New playlist"
|
||||
msgstr "+ New playlist"
|
||||
|
||||
#: src/pages/Dump.tsx:403
|
||||
#: src/pages/Dump.tsx:399
|
||||
msgid "+ Playlist"
|
||||
msgstr "+ Playlist"
|
||||
|
||||
@@ -312,8 +312,8 @@ msgstr "Account on <0>{host}</0>"
|
||||
msgid "Add a comment…"
|
||||
msgstr "Add a comment…"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:104
|
||||
#: src/components/category/CategoryManager.tsx:105
|
||||
#: src/components/category/CategoryManager.tsx:115
|
||||
#: src/components/category/CategoryManager.tsx:116
|
||||
msgid "Add category"
|
||||
msgstr "Add category"
|
||||
|
||||
@@ -325,7 +325,7 @@ msgstr "Add email…"
|
||||
msgid "Add image"
|
||||
msgstr "Add image"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:465
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:458
|
||||
#: src/components/playlist/AddToPlaylistModal.tsx:29
|
||||
msgid "Add to playlist"
|
||||
msgstr "Add to playlist"
|
||||
@@ -339,11 +339,15 @@ msgstr "added to {playlist}"
|
||||
msgid "Admin"
|
||||
msgstr "Admin"
|
||||
|
||||
#: src/components/category/CategorySwitcher.tsx:100
|
||||
#: src/components/category/CategorySwitcher.tsx:103
|
||||
#: src/components/category/CategorySwitcher.tsx:104
|
||||
#: src/components/category/CategorySwitcher.tsx:107
|
||||
msgid "All"
|
||||
msgstr "All"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:108
|
||||
msgid "All playlists"
|
||||
msgstr "All playlists"
|
||||
|
||||
#. placeholder {0}: first.ownerUsername
|
||||
#. placeholder {1}: relativeTime(first.createdAt)
|
||||
#: src/components/dump/create/DuplicateNotice.tsx:39
|
||||
@@ -424,19 +428,19 @@ msgstr "Can't connect to the live updates server. Upvotes and notifications may
|
||||
msgid "Can't sign in there"
|
||||
msgstr "Can't sign in there"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:225
|
||||
#: src/components/category/CategoryManager.tsx:226
|
||||
#: src/components/category/CategoryManager.tsx:241
|
||||
#: src/components/category/CategoryManager.tsx:242
|
||||
#: src/components/chat/ChatEditBox.tsx:92
|
||||
#: src/components/comment/CommentForm.tsx:127
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:752
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:746
|
||||
#: src/components/form/FormActions.tsx:42
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:200
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:222
|
||||
#: src/components/profile/DescriptionEditor.tsx:97
|
||||
#: src/components/profile/EmailEditor.tsx:83
|
||||
#: src/components/shared/ConfirmModal.tsx:63
|
||||
#: src/pages/Authorize.tsx:158
|
||||
#: src/pages/Dump.tsx:445
|
||||
#: src/pages/DumpEdit.tsx:565
|
||||
#: src/pages/Dump.tsx:441
|
||||
#: src/pages/DumpEdit.tsx:560
|
||||
msgid "Cancel"
|
||||
msgstr "Cancel"
|
||||
|
||||
@@ -453,12 +457,11 @@ msgstr "Cancel reply"
|
||||
msgid "Cancel search"
|
||||
msgstr "Cancel search"
|
||||
|
||||
#: src/components/category/CategorySelect.tsx:33
|
||||
#: src/pages/Manage.tsx:42
|
||||
#: src/components/category/CategorySelect.tsx:38
|
||||
msgid "Categories"
|
||||
msgstr "Categories"
|
||||
|
||||
#: src/components/category/CategorySwitcher.tsx:123
|
||||
#: src/components/category/CategorySwitcher.tsx:127
|
||||
msgid "Category"
|
||||
msgstr "Category"
|
||||
|
||||
@@ -513,7 +516,7 @@ msgstr "Checking…"
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:496
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:489
|
||||
msgid "Close anyway"
|
||||
msgstr "Close anyway"
|
||||
|
||||
@@ -525,7 +528,7 @@ msgstr "Close emoji picker"
|
||||
msgid "Close player"
|
||||
msgstr "Close player"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:486
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:479
|
||||
msgid "Close without posting? The attached file won't be kept — everything you typed will."
|
||||
msgstr "Close without posting? The attached file won't be kept — everything you typed will."
|
||||
|
||||
@@ -579,8 +582,8 @@ msgstr "Could not change password"
|
||||
msgid "Could not connect to the server. Check your connection and try again."
|
||||
msgstr "Could not connect to the server. Check your connection and try again."
|
||||
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:126
|
||||
#: src/pages/DumpEdit.tsx:559
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:177
|
||||
#: src/pages/DumpEdit.tsx:554
|
||||
msgid "Could not delete"
|
||||
msgstr "Could not delete"
|
||||
|
||||
@@ -588,7 +591,7 @@ msgstr "Could not delete"
|
||||
msgid "Could not rename"
|
||||
msgstr "Could not rename"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:512
|
||||
#: src/pages/DumpEdit.tsx:506
|
||||
msgid "Could not save"
|
||||
msgstr "Could not save"
|
||||
|
||||
@@ -596,7 +599,7 @@ msgstr "Could not save"
|
||||
msgid "Couldn't add that instance"
|
||||
msgstr "Couldn't add that instance"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:607
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:600
|
||||
msgid "Couldn't load a preview for this link — check it, or post it as-is and refresh the preview later."
|
||||
msgstr "Couldn't load a preview for this link — check it, or post it as-is and refresh the preview later."
|
||||
|
||||
@@ -616,19 +619,19 @@ msgstr "Couldn't unsubscribe"
|
||||
msgid "Couldn't update. Try again."
|
||||
msgstr "Couldn't update. Try again."
|
||||
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:135
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:150
|
||||
msgid "Cover"
|
||||
msgstr "Cover"
|
||||
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:112
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:122
|
||||
msgid "Create"
|
||||
msgstr "Create"
|
||||
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:112
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:122
|
||||
msgid "Create & Add"
|
||||
msgstr "Create & Add"
|
||||
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:111
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:121
|
||||
msgid "Creating…"
|
||||
msgstr "Creating…"
|
||||
|
||||
@@ -644,8 +647,8 @@ msgstr "Dark"
|
||||
msgid "Default tab"
|
||||
msgstr "Default tab"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:236
|
||||
#: src/components/category/CategoryManager.tsx:237
|
||||
#: src/components/category/CategoryManager.tsx:252
|
||||
#: src/components/category/CategoryManager.tsx:253
|
||||
#: src/components/chat/ChatMessageItem.tsx:118
|
||||
#: src/components/chat/ChatMessageItem.tsx:119
|
||||
#: src/components/chat/ChatMessageItem.tsx:220
|
||||
@@ -656,28 +659,28 @@ msgstr "Default tab"
|
||||
msgid "Delete"
|
||||
msgstr "Delete"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:253
|
||||
#: src/components/category/CategoryManager.tsx:269
|
||||
msgid "Delete category"
|
||||
msgstr "Delete category"
|
||||
|
||||
#. placeholder {0}: category.name
|
||||
#: src/components/category/CategoryManager.tsx:252
|
||||
#: src/components/category/CategoryManager.tsx:268
|
||||
msgid "Delete category \"{0}\"? This cannot be undone."
|
||||
msgstr "Delete category \"{0}\"? This cannot be undone."
|
||||
|
||||
#: src/pages/DumpEdit.tsx:314
|
||||
#: src/pages/DumpEdit.tsx:562
|
||||
#: src/pages/DumpEdit.tsx:315
|
||||
#: src/pages/DumpEdit.tsx:557
|
||||
msgid "Delete dump"
|
||||
msgstr "Delete dump"
|
||||
|
||||
#. placeholder {0}: res.status
|
||||
#: src/pages/DumpEdit.tsx:193
|
||||
#: src/pages/DumpEdit.tsx:194
|
||||
msgid "Delete failed ({0})"
|
||||
msgstr "Delete failed ({0})"
|
||||
|
||||
#: src/components/playlist/PlaylistCard.tsx:142
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:191
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:156
|
||||
#: src/components/playlist/PlaylistCard.tsx:149
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:213
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:207
|
||||
#: src/pages/PlaylistDetail.tsx:141
|
||||
msgid "Delete playlist"
|
||||
msgstr "Delete playlist"
|
||||
@@ -686,7 +689,7 @@ msgstr "Delete playlist"
|
||||
msgid "Delete this comment?"
|
||||
msgstr "Delete this comment?"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:313
|
||||
#: src/pages/DumpEdit.tsx:314
|
||||
msgid "Delete this dump? This cannot be undone."
|
||||
msgstr "Delete this dump? This cannot be undone."
|
||||
|
||||
@@ -694,7 +697,7 @@ msgstr "Delete this dump? This cannot be undone."
|
||||
msgid "Delete this message?"
|
||||
msgstr "Delete this message?"
|
||||
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:155
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:206
|
||||
#: src/pages/PlaylistDetail.tsx:140
|
||||
msgid "Delete this playlist? This cannot be undone."
|
||||
msgstr "Delete this playlist? This cannot be undone."
|
||||
@@ -703,11 +706,11 @@ msgstr "Delete this playlist? This cannot be undone."
|
||||
msgid "deleted message"
|
||||
msgstr "deleted message"
|
||||
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:176
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:191
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:104
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:108
|
||||
msgid "Description (optional)"
|
||||
msgstr "Description (optional)"
|
||||
|
||||
@@ -728,7 +731,7 @@ msgstr "Disconnected — reconnecting…"
|
||||
msgid "Dismiss"
|
||||
msgstr "Dismiss"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:546
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:539
|
||||
msgid "Done"
|
||||
msgstr "Done"
|
||||
|
||||
@@ -741,11 +744,11 @@ msgstr "Download {0}"
|
||||
msgid "Drop a file here"
|
||||
msgstr "Drop a file here"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:653
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:646
|
||||
msgid "Drop a file here, or paste one"
|
||||
msgstr "Drop a file here, or paste one"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:503
|
||||
#: src/pages/DumpEdit.tsx:497
|
||||
msgid "Drop a replacement here"
|
||||
msgstr "Drop a replacement here"
|
||||
|
||||
@@ -753,16 +756,20 @@ msgstr "Drop a replacement here"
|
||||
msgid "Dump"
|
||||
msgstr "Dump"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:765
|
||||
#: src/pages/Manage.tsx:43
|
||||
msgid "Dump categories"
|
||||
msgstr "Dump categories"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:759
|
||||
msgid "Dump it"
|
||||
msgstr "Dump it"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:524
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:517
|
||||
msgid "Dumped!"
|
||||
msgstr "Dumped!"
|
||||
|
||||
#: src/components/profile/ProfileDumpsTab.tsx:46
|
||||
#: src/pages/Search.tsx:120
|
||||
#: src/pages/Search.tsx:148
|
||||
#: src/pages/UserPublicProfile.tsx:160
|
||||
msgid "Dumps"
|
||||
msgstr "Dumps"
|
||||
@@ -780,13 +787,13 @@ msgstr "Earlier"
|
||||
#: src/components/chat/ChatMessageItem.tsx:108
|
||||
#: src/components/chat/PendingItem.tsx:93
|
||||
#: src/components/comment/CommentNode.tsx:256
|
||||
#: src/components/playlist/PlaylistHeader.tsx:59
|
||||
#: src/pages/Dump.tsx:564
|
||||
#: src/components/playlist/PlaylistHeader.tsx:60
|
||||
#: src/pages/Dump.tsx:548
|
||||
msgid "Edit"
|
||||
msgstr "Edit"
|
||||
|
||||
#. placeholder {0}: category.name
|
||||
#: src/components/category/CategoryManager.tsx:84
|
||||
#: src/components/category/CategoryManager.tsx:94
|
||||
msgid "Edit {0}"
|
||||
msgstr "Edit {0}"
|
||||
|
||||
@@ -799,7 +806,7 @@ msgid "Edit email"
|
||||
msgstr "Edit email"
|
||||
|
||||
#: src/components/dump/create/TitleField.tsx:69
|
||||
#: src/pages/Dump.tsx:462
|
||||
#: src/pages/Dump.tsx:458
|
||||
msgid "Edit title"
|
||||
msgstr "Edit title"
|
||||
|
||||
@@ -812,8 +819,8 @@ msgstr "edited"
|
||||
#. placeholder {0}: relativeTime(message.updatedAt)
|
||||
#: src/components/chat/ChatMessageItem.tsx:132
|
||||
#: src/components/comment/CommentNode.tsx:205
|
||||
#: src/components/playlist/PlaylistHeader.tsx:94
|
||||
#: src/pages/Dump.tsx:505
|
||||
#: src/components/playlist/PlaylistHeader.tsx:95
|
||||
#: src/pages/Dump.tsx:501
|
||||
msgid "edited {0}"
|
||||
msgstr "edited {0}"
|
||||
|
||||
@@ -822,17 +829,17 @@ msgstr "edited {0}"
|
||||
#. placeholder {0}: message.updatedAt.toLocaleString()
|
||||
#: src/components/chat/ChatMessageItem.tsx:128
|
||||
#: src/components/comment/CommentNode.tsx:203
|
||||
#: src/components/playlist/PlaylistHeader.tsx:92
|
||||
#: src/pages/Dump.tsx:503
|
||||
#: src/components/playlist/PlaylistHeader.tsx:93
|
||||
#: src/pages/Dump.tsx:499
|
||||
msgid "Edited {0}"
|
||||
msgstr "Edited {0}"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:257
|
||||
#: src/pages/DumpEdit.tsx:258
|
||||
msgid "Editing"
|
||||
msgstr "Editing"
|
||||
|
||||
#. placeholder {0}: state.dump.title
|
||||
#: src/pages/DumpEdit.tsx:80
|
||||
#: src/pages/DumpEdit.tsx:81
|
||||
msgid "Editing {0}"
|
||||
msgstr "Editing {0}"
|
||||
|
||||
@@ -844,7 +851,7 @@ msgstr "Email"
|
||||
msgid "Email address"
|
||||
msgstr "Email address"
|
||||
|
||||
#: src/pages/Search.tsx:155
|
||||
#: src/pages/Search.tsx:204
|
||||
msgid "Enter a query to search."
|
||||
msgstr "Enter a query to search."
|
||||
|
||||
@@ -852,15 +859,15 @@ msgstr "Enter a query to search."
|
||||
msgid "Expand player"
|
||||
msgstr "Expand player"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:246
|
||||
#: src/components/category/CategoryManager.tsx:262
|
||||
msgid "Failed to create category"
|
||||
msgstr "Failed to create category"
|
||||
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:109
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:119
|
||||
msgid "Failed to create playlist"
|
||||
msgstr "Failed to create playlist"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:169
|
||||
#: src/components/category/CategoryManager.tsx:185
|
||||
msgid "Failed to delete"
|
||||
msgstr "Failed to delete"
|
||||
|
||||
@@ -874,7 +881,7 @@ msgstr "Failed to generate invite"
|
||||
msgid "Failed to load"
|
||||
msgstr "Failed to load"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:555
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:548
|
||||
msgid "Failed to post"
|
||||
msgstr "Failed to post"
|
||||
|
||||
@@ -888,13 +895,13 @@ msgstr "Failed to post reply"
|
||||
|
||||
#: src/components/federation/GrantList.tsx:98
|
||||
#: src/components/federation/PeerManager.tsx:158
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:185
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:207
|
||||
#: src/components/profile/DescriptionEditor.tsx:99
|
||||
#: src/components/profile/EmailEditor.tsx:86
|
||||
msgid "Failed to save"
|
||||
msgstr "Failed to save"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:247
|
||||
#: src/components/category/CategoryManager.tsx:263
|
||||
msgid "Failed to save category"
|
||||
msgstr "Failed to save category"
|
||||
|
||||
@@ -914,11 +921,11 @@ msgstr "Failed to update role"
|
||||
msgid "Feeds"
|
||||
msgstr "Feeds"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:594
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:587
|
||||
msgid "Fetching preview…"
|
||||
msgstr "Fetching preview…"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:417
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:410
|
||||
msgid "File too large (max {max})."
|
||||
msgstr "File too large (max {max})."
|
||||
|
||||
@@ -1017,7 +1024,7 @@ msgstr "If you didn't ask for this, ignore this email. Your password stays the s
|
||||
msgid "image"
|
||||
msgstr "image"
|
||||
|
||||
#: src/pages/Dump.tsx:584
|
||||
#: src/pages/Dump.tsx:568
|
||||
msgid "In collections"
|
||||
msgstr "In collections"
|
||||
|
||||
@@ -1031,7 +1038,7 @@ msgstr "In the chat"
|
||||
msgid "Insert emoji"
|
||||
msgstr "Insert emoji"
|
||||
|
||||
#: src/pages/Manage.tsx:49
|
||||
#: src/pages/Manage.tsx:56
|
||||
msgid "Instances"
|
||||
msgstr "Instances"
|
||||
|
||||
@@ -1073,7 +1080,7 @@ msgstr "Invitees"
|
||||
msgid "Journal"
|
||||
msgstr "Journal"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:493
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:486
|
||||
msgid "Keep editing"
|
||||
msgstr "Keep editing"
|
||||
|
||||
@@ -1094,7 +1101,7 @@ msgstr "Light"
|
||||
msgid "Like"
|
||||
msgstr "Like"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:569
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:562
|
||||
#: src/components/form/SlugField.tsx:69
|
||||
msgid "Link"
|
||||
msgstr "Link"
|
||||
@@ -1119,8 +1126,8 @@ msgstr "Load more"
|
||||
msgid "Load older messages"
|
||||
msgstr "Load older messages"
|
||||
|
||||
#: src/pages/Dump.tsx:302
|
||||
#: src/pages/DumpEdit.tsx:208
|
||||
#: src/pages/Dump.tsx:301
|
||||
#: src/pages/DumpEdit.tsx:209
|
||||
msgid "Loading dump…"
|
||||
msgstr "Loading dump…"
|
||||
|
||||
@@ -1140,7 +1147,7 @@ msgstr "Loading playlist…"
|
||||
msgid "Loading profile…"
|
||||
msgstr "Loading profile…"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:60
|
||||
#: src/components/category/CategoryManager.tsx:69
|
||||
#: src/components/chat/ChatModal.tsx:763
|
||||
#: src/components/editor/EmojiPickerPopup.tsx:125
|
||||
#: src/components/federation/PeerManager.tsx:120
|
||||
@@ -1173,7 +1180,7 @@ msgstr "Log in to vote"
|
||||
msgid "Log in with {0}"
|
||||
msgstr "Log in with {0}"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:127
|
||||
#: src/components/layout/UserMenu.tsx:139
|
||||
#: src/pages/UserPublicProfile.tsx:133
|
||||
msgid "Log out"
|
||||
msgstr "Log out"
|
||||
@@ -1191,7 +1198,7 @@ msgstr "Login failed"
|
||||
msgid "Lowercase letters, numbers and single hyphens only"
|
||||
msgstr "Lowercase letters, numbers and single hyphens only"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:114
|
||||
#: src/components/layout/UserMenu.tsx:126
|
||||
#: src/pages/Manage.tsx:32
|
||||
#: src/pages/Manage.tsx:40
|
||||
#: src/pages/UserPublicProfile.tsx:166
|
||||
@@ -1215,8 +1222,8 @@ msgstr "Monthly recap"
|
||||
msgid "Mute"
|
||||
msgstr "Mute"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:192
|
||||
#: src/components/category/CategoryManager.tsx:193
|
||||
#: src/components/category/CategoryManager.tsx:208
|
||||
#: src/components/category/CategoryManager.tsx:209
|
||||
msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
@@ -1226,7 +1233,7 @@ msgstr "Name"
|
||||
msgid "New"
|
||||
msgstr "New"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:465
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:458
|
||||
#: src/components/dump/NewDumpButton.tsx:27
|
||||
#: src/components/layout/DumpFab.tsx:66
|
||||
#: src/components/layout/DumpFab.tsx:67
|
||||
@@ -1253,7 +1260,7 @@ msgstr "New playlist"
|
||||
msgid "digest.newPlaylists"
|
||||
msgstr "New public playlists"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:764
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:758
|
||||
msgid "Next →"
|
||||
msgstr "Next →"
|
||||
|
||||
@@ -1265,7 +1272,7 @@ msgstr "Next track"
|
||||
msgid "No dumps in this playlist yet."
|
||||
msgstr "No dumps in this playlist yet."
|
||||
|
||||
#: src/pages/Search.tsx:171
|
||||
#: src/pages/Search.tsx:220
|
||||
msgid "No dumps match \"{q}\"."
|
||||
msgstr "No dumps match \"{q}\"."
|
||||
|
||||
@@ -1294,12 +1301,13 @@ msgstr "No messages yet. Say hello!"
|
||||
msgid "No one yet."
|
||||
msgstr "No one yet."
|
||||
|
||||
#: src/pages/Search.tsx:212
|
||||
#: src/pages/Search.tsx:261
|
||||
msgid "No playlists match \"{q}\"."
|
||||
msgstr "No playlists match \"{q}\"."
|
||||
|
||||
#: src/components/playlist/PlaylistMembershipPanel.tsx:51
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:133
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:184
|
||||
#: src/pages/Playlists.tsx:118
|
||||
msgid "No playlists yet."
|
||||
msgstr "No playlists yet."
|
||||
|
||||
@@ -1307,7 +1315,7 @@ msgstr "No playlists yet."
|
||||
msgid "No reply from the server — this message may not have been sent"
|
||||
msgstr "No reply from the server — this message may not have been sent"
|
||||
|
||||
#: src/pages/Search.tsx:186
|
||||
#: src/pages/Search.tsx:235
|
||||
msgid "No users match \"{q}\"."
|
||||
msgstr "No users match \"{q}\"."
|
||||
|
||||
@@ -1327,7 +1335,7 @@ msgstr "Nothing happened this month."
|
||||
msgid "Nothing happened this week."
|
||||
msgstr "Nothing happened this week."
|
||||
|
||||
#: src/components/profile/ProfileDumpsTab.tsx:96
|
||||
#: src/components/profile/ProfileDumpsTab.tsx:97
|
||||
#: src/components/profile/ProfileOverviewTab.tsx:47
|
||||
#: src/pages/Notifications.tsx:522
|
||||
msgid "Nothing here yet."
|
||||
@@ -1361,7 +1369,7 @@ msgstr "Once a week you'll get a digest of what happened here, and once a month
|
||||
msgid "Only images can be dropped here."
|
||||
msgstr "Only images can be dropped here."
|
||||
|
||||
#: src/pages/DumpEdit.tsx:118
|
||||
#: src/pages/DumpEdit.tsx:119
|
||||
msgid "Only its poster or a moderator can edit this dump."
|
||||
msgstr "Only its poster or a moderator can edit this dump."
|
||||
|
||||
@@ -1432,7 +1440,7 @@ msgstr "Password updated"
|
||||
msgid "Passwords do not match"
|
||||
msgstr "Passwords do not match"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:587
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:580
|
||||
msgid "Paste a link…"
|
||||
msgstr "Paste a link…"
|
||||
|
||||
@@ -1443,7 +1451,7 @@ msgstr "Paste a link…"
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:505
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:498
|
||||
msgid "Picked up where you left off."
|
||||
msgstr "Picked up where you left off."
|
||||
|
||||
@@ -1455,12 +1463,18 @@ msgstr "Picked up where you left off."
|
||||
msgid "Play"
|
||||
msgstr "Play"
|
||||
|
||||
#: src/pages/Manage.tsx:48
|
||||
msgid "Playlist categories"
|
||||
msgstr "Playlist categories"
|
||||
|
||||
#: src/components/dump/create/StepIndicator.tsx:21
|
||||
#: src/components/layout/AppHeader.tsx:172
|
||||
#: src/components/layout/UserMenu.tsx:88
|
||||
#: src/components/layout/UserMenu.tsx:92
|
||||
#: src/components/profile/ProfileFollowTab.tsx:144
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:118
|
||||
#: src/pages/Search.tsx:123
|
||||
#: src/components/profile/ProfilePlaylistsTab.tsx:155
|
||||
#: src/pages/Playlists.tsx:52
|
||||
#: src/pages/Playlists.tsx:106
|
||||
#: src/pages/Search.tsx:151
|
||||
#: src/pages/UserPublicProfile.tsx:162
|
||||
msgid "Playlists"
|
||||
msgstr "Playlists"
|
||||
@@ -1475,7 +1489,7 @@ msgstr "Post reply"
|
||||
|
||||
#: src/components/comment/CommentNode.tsx:290
|
||||
#: src/components/comment/CommentThread.tsx:100
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:758
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:752
|
||||
msgid "Posting…"
|
||||
msgstr "Posting…"
|
||||
|
||||
@@ -1483,12 +1497,12 @@ msgstr "Posting…"
|
||||
msgid "Previous track"
|
||||
msgstr "Previous track"
|
||||
|
||||
#: src/components/dump/DumpCard.tsx:148
|
||||
#: src/components/dump/DumpCard.tsx:144
|
||||
#: src/components/dump/JournalCard.tsx:145
|
||||
#: src/components/playlist/PlaylistCard.tsx:104
|
||||
#: src/components/playlist/PlaylistHeader.tsx:76
|
||||
#: src/components/playlist/PlaylistCard.tsx:106
|
||||
#: src/components/playlist/PlaylistHeader.tsx:77
|
||||
#: src/components/playlist/PlaylistMembershipPanel.tsx:81
|
||||
#: src/pages/Dump.tsx:511
|
||||
#: src/pages/Dump.tsx:507
|
||||
msgid "private"
|
||||
msgstr "private"
|
||||
|
||||
@@ -1496,8 +1510,8 @@ msgstr "private"
|
||||
msgid "Private"
|
||||
msgstr "Private"
|
||||
|
||||
#: src/components/playlist/PlaylistCard.tsx:103
|
||||
#: src/components/playlist/PlaylistHeader.tsx:76
|
||||
#: src/components/playlist/PlaylistCard.tsx:105
|
||||
#: src/components/playlist/PlaylistHeader.tsx:77
|
||||
msgid "public"
|
||||
msgstr "public"
|
||||
|
||||
@@ -1505,7 +1519,7 @@ msgstr "public"
|
||||
msgid "Public"
|
||||
msgstr "Public"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:290
|
||||
#: src/pages/DumpEdit.tsx:291
|
||||
msgid "Refresh metadata"
|
||||
msgstr "Refresh metadata"
|
||||
|
||||
@@ -1513,7 +1527,7 @@ msgstr "Refresh metadata"
|
||||
msgid "Refreshing stream…"
|
||||
msgstr "Refreshing stream…"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:289
|
||||
#: src/pages/DumpEdit.tsx:290
|
||||
msgid "Refreshing…"
|
||||
msgstr "Refreshing…"
|
||||
|
||||
@@ -1531,7 +1545,7 @@ msgstr "Registering…"
|
||||
msgid "Registration failed"
|
||||
msgstr "Registration failed"
|
||||
|
||||
#: src/pages/Dump.tsx:575
|
||||
#: src/pages/Dump.tsx:559
|
||||
msgid "Related"
|
||||
msgstr "Related"
|
||||
|
||||
@@ -1565,7 +1579,7 @@ msgstr "Rename"
|
||||
msgid "Renaming…"
|
||||
msgstr "Renaming…"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:495
|
||||
#: src/pages/DumpEdit.tsx:489
|
||||
msgid "Replace file"
|
||||
msgstr "Replace file"
|
||||
|
||||
@@ -1596,8 +1610,8 @@ msgstr "Reset password"
|
||||
msgid "Reset password"
|
||||
msgstr "Reset password"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:471
|
||||
#: src/pages/DumpEdit.tsx:526
|
||||
#: src/pages/DumpEdit.tsx:465
|
||||
#: src/pages/DumpEdit.tsx:520
|
||||
msgid "Reset to default"
|
||||
msgstr "Reset to default"
|
||||
|
||||
@@ -1617,8 +1631,8 @@ msgid "email.reset.title"
|
||||
msgstr "Reset your password"
|
||||
|
||||
#: src/components/chat/PendingItem.tsx:86
|
||||
#: src/pages/Dump.tsx:319
|
||||
#: src/pages/DumpEdit.tsx:225
|
||||
#: src/pages/Dump.tsx:318
|
||||
#: src/pages/DumpEdit.tsx:226
|
||||
msgid "Retry"
|
||||
msgstr "Retry"
|
||||
|
||||
@@ -1626,30 +1640,30 @@ msgstr "Retry"
|
||||
msgid "Role"
|
||||
msgstr "Role"
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:216
|
||||
#: src/components/category/CategoryManager.tsx:232
|
||||
#: src/components/chat/ChatEditBox.tsx:85
|
||||
#: src/components/comment/CommentNode.tsx:216
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:207
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:229
|
||||
#: src/components/profile/DescriptionEditor.tsx:89
|
||||
#: src/components/profile/EmailEditor.tsx:75
|
||||
#: src/pages/Dump.tsx:437
|
||||
#: src/pages/DumpEdit.tsx:568
|
||||
#: src/pages/Dump.tsx:433
|
||||
#: src/pages/DumpEdit.tsx:563
|
||||
msgid "Save"
|
||||
msgstr "Save"
|
||||
|
||||
#: src/components/comment/CommentNode.tsx:217
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:204
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:226
|
||||
#: src/components/profile/ChangePasswordModal.tsx:119
|
||||
#: src/components/profile/DescriptionEditor.tsx:86
|
||||
#: src/components/profile/EmailEditor.tsx:72
|
||||
#: src/pages/Dump.tsx:436
|
||||
#: src/pages/Dump.tsx:432
|
||||
#: src/pages/ResetPassword.tsx:139
|
||||
msgid "Saving…"
|
||||
msgstr "Saving…"
|
||||
|
||||
#: src/components/layout/AppHeader.tsx:182
|
||||
#: src/components/layout/SearchBar.tsx:83
|
||||
#: src/pages/Search.tsx:69
|
||||
#: src/pages/Search.tsx:87
|
||||
msgid "Search"
|
||||
msgstr "Search"
|
||||
|
||||
@@ -1665,11 +1679,11 @@ msgstr "Search emoji"
|
||||
msgid "Search emoji…"
|
||||
msgstr "Search emoji…"
|
||||
|
||||
#: src/pages/Search.tsx:166
|
||||
#: src/pages/Search.tsx:215
|
||||
msgid "Search failed"
|
||||
msgstr "Search failed"
|
||||
|
||||
#: src/pages/Search.tsx:161
|
||||
#: src/pages/Search.tsx:210
|
||||
msgid "Searching…"
|
||||
msgstr "Searching…"
|
||||
|
||||
@@ -1709,7 +1723,7 @@ msgstr "Set new password"
|
||||
msgid "email.settings"
|
||||
msgstr "Settings"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:104
|
||||
#: src/components/layout/UserMenu.tsx:116
|
||||
#: src/pages/Settings.tsx:75
|
||||
#: src/pages/Settings.tsx:88
|
||||
msgid "Settings"
|
||||
@@ -1736,7 +1750,7 @@ msgstr "Signing you in…"
|
||||
msgid "Single use, valid for 7 days."
|
||||
msgstr "Single use, valid for 7 days."
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:205
|
||||
#: src/components/category/CategoryManager.tsx:221
|
||||
msgid "slug"
|
||||
msgstr "slug"
|
||||
|
||||
@@ -1760,7 +1774,7 @@ msgstr "Something went wrong"
|
||||
msgid "Sounds"
|
||||
msgstr "Sounds"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:512
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:505
|
||||
msgid "Start fresh"
|
||||
msgstr "Start fresh"
|
||||
|
||||
@@ -1856,18 +1870,18 @@ msgstr "This unsubscribe link is missing or malformed."
|
||||
msgid "This week"
|
||||
msgstr "This week"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:455
|
||||
#: src/pages/DumpEdit.tsx:449
|
||||
msgid "Thumbnail"
|
||||
msgstr "Thumbnail"
|
||||
|
||||
#: src/components/dump/create/TitleField.tsx:45
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:96
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:160
|
||||
#: src/pages/DumpEdit.tsx:516
|
||||
#: src/components/playlist/PlaylistCreateForm.tsx:100
|
||||
#: src/components/playlist/PlaylistEditForm.tsx:175
|
||||
#: src/pages/DumpEdit.tsx:510
|
||||
msgid "Title"
|
||||
msgstr "Title"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:414
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:407
|
||||
msgid "Title is required."
|
||||
msgstr "Title is required."
|
||||
|
||||
@@ -1967,7 +1981,7 @@ msgid "Upload failed"
|
||||
msgstr "Upload failed"
|
||||
|
||||
#. placeholder {0}: Math.round((uploadProgress ?? 0) * 100)
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:449
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:442
|
||||
msgid "Uploading {0}%"
|
||||
msgstr "Uploading {0}%"
|
||||
|
||||
@@ -1975,7 +1989,7 @@ msgstr "Uploading {0}%"
|
||||
msgid "Uploading image…"
|
||||
msgstr "Uploading image…"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:761
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:755
|
||||
msgid "Uploading…"
|
||||
msgstr "Uploading…"
|
||||
|
||||
@@ -1993,15 +2007,15 @@ msgstr "Upvoted"
|
||||
msgid "Upvoted ({0})"
|
||||
msgstr "Upvoted ({0})"
|
||||
|
||||
#: src/pages/DumpEdit.tsx:487
|
||||
#: src/pages/DumpEdit.tsx:481
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:398
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:391
|
||||
msgid "URL is required."
|
||||
msgstr "URL is required."
|
||||
|
||||
#: src/components/category/CategoryManager.tsx:206
|
||||
#: src/components/category/CategoryManager.tsx:222
|
||||
msgid "URL slug"
|
||||
msgstr "URL slug"
|
||||
|
||||
@@ -2013,7 +2027,7 @@ msgstr "User"
|
||||
msgid "User management"
|
||||
msgstr "User management"
|
||||
|
||||
#: src/components/layout/UserMenu.tsx:63
|
||||
#: src/components/layout/UserMenu.tsx:67
|
||||
msgid "User menu"
|
||||
msgstr "User menu"
|
||||
|
||||
@@ -2026,7 +2040,7 @@ msgid "Username"
|
||||
msgstr "Username"
|
||||
|
||||
#: src/components/profile/ProfileFollowTab.tsx:143
|
||||
#: src/pages/Search.tsx:122
|
||||
#: src/pages/Search.tsx:150
|
||||
msgid "Users"
|
||||
msgstr "Users"
|
||||
|
||||
@@ -2046,7 +2060,7 @@ msgstr "Users of a trusted instance sign in here with their account there. Those
|
||||
msgid "View all →"
|
||||
msgstr "View all →"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:526
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:519
|
||||
msgid "View dump →"
|
||||
msgstr "View dump →"
|
||||
|
||||
@@ -2064,8 +2078,8 @@ msgstr "Weekly digest"
|
||||
msgid "email.welcome.subject"
|
||||
msgstr "Welcome to {site}"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:712
|
||||
#: src/pages/DumpEdit.tsx:544
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:705
|
||||
#: src/pages/DumpEdit.tsx:538
|
||||
msgid "What makes it worth it?"
|
||||
msgstr "What makes it worth it?"
|
||||
|
||||
@@ -2074,7 +2088,7 @@ msgstr "What makes it worth it?"
|
||||
msgid "Who am I?"
|
||||
msgstr "Who am I?"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:727
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:721
|
||||
msgid "Who can see it"
|
||||
msgstr "Who can see it"
|
||||
|
||||
@@ -2082,8 +2096,8 @@ msgstr "Who can see it"
|
||||
msgid "Why & where"
|
||||
msgstr "Why & where"
|
||||
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:711
|
||||
#: src/pages/DumpEdit.tsx:543
|
||||
#: src/components/dump/create/DumpCreateModal.tsx:704
|
||||
#: src/pages/DumpEdit.tsx:537
|
||||
msgid "Why?"
|
||||
msgstr "Why?"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user