);
}
diff --git a/src/components/NewPlaylistForm.tsx b/src/components/NewPlaylistForm.tsx
index 1c81bb3..7609371 100644
--- a/src/components/NewPlaylistForm.tsx
+++ b/src/components/NewPlaylistForm.tsx
@@ -27,7 +27,7 @@ export function NewPlaylistForm(
className={toggleClassName}
onClick={() => setOpen(true)}
>
- {toggleLabel ?? + New playlist}
+ {toggleLabel ?? <>+ New playlist>}
{open && (
diff --git a/src/locales/en.js b/src/locales/en.js
index e68a9d1..99bee09 100644
--- a/src/locales/en.js
+++ b/src/locales/en.js
@@ -1,5 +1 @@
-/*eslint-disable*/ module.exports = {
- messages: JSON.parse(
- '{"-K9EZb":["Add email…"],"-OxI15":["Followed playlists"],"-Ya-b9":["Failed to save"],"-siMqD":["Journal"],"0kWhlg":["File too large (max 5 MB)"],"1CalO6":["Style"],"1HfJWf":["Search dumps, users, playlists…"],"1cbYY_":["Upvoted (",["0"],["1"],")"],"1njn7W":["Light"],"1utXA6":["Dumps"],"26iNma":["Post comment"],"29VNqC":["Unknown error"],"2Hlmdt":["Write a reply…"],"2ygf_L":["← Back"],"3KKSM4":["private"],"3T1cI4":["Unexpected server error"],"3yfh3D":["<0>",["0"],"0> followed your playlist <1>",["1"],"1>"],"49voTZ":[["label"]," (",["count"],")"],"4B6w_o":["Dumped!"],"4GKuCs":["Login failed"],"4HH9iB":["Not following anyone yet."],"4RtQ1k":["Unfollow ",["targetUsername"]],"4c-qBx":["Your password has been changed. You can now log in."],"4yj9xV":["Live updates are temporarily disconnected. Trying to reconnect…"],"5cC8f2":["Edited ",["0"]],"5oD9f_":["Earlier"],"6Qly-0":["a comment"],"6gRgw8":["Retry"],"7JBW66":["Forbidden"],"7PHCIN":["Cancel removal"],"7d1a0d":["Public"],"7sNhEz":["Username"],"8ZsakT":["Password"],"8pxhI8":["Please select a file."],"9l4qcT":["Drop a replacement here"],"9uI_rE":["Undo"],"A0y396":["+ Invite someone"],"A1taO8":["Search"],"AQbgNR":["Follow ",["targetUsername"]],"ATGYL1":["Email address"],"AZctoV":[["0","plural",{"one":["#"," comment"],"other":["#"," comments"]}]],"Ade-6d":["Live updates unavailable."],"AeXO77":["Account"],"CI50ct":["Upvoted"],"Cj24wt":["Registering…"],"DPfwMq":["Done"],"DdeHXH":["Delete this dump? This cannot be undone."],"Dp1JhP":["<0>",["0"],"0> upvoted <1>",["1"],"1>"],"ECiS12":["View dump →"],"ExR0Fr":["URL is required."],"F1O9Ep":["Could not connect to server"],"F5Js1v":["Unfollow playlist"],"FgAxTj":["Log out"],"Fxf4jq":["Description (optional)"],"GNSsCc":["Failed to create playlist"],"GbqhrN":[["0"],"–",["1"]," characters: letters, numbers, or underscores"],"GptGxg":["Change password"],"GsRMX3":["Playlist not found"],"H8pzW-":["Failed to update avatar"],"HTLDA4":["Loading more…"],"I-x669":["Invitees"],"IZX7TO":["Failed to generate invite"],"IagCbF":["URL"],"ImOQa9":["Reply"],"J2eKUI":["File"],"JJ-Bhk":["Your email address"],"JRQitQ":["Confirm new password"],"JXr41k":["<0>",["0"],"0> commented on <1>",["1"],"1>"],"Jd58Fo":["Hot"],"Jf0PuK":["Go to login"],"K1JdNl":["Username already exists"],"KDGWg5":["Remove from playlist"],"K_F6pa":["Saving…"],"LLyMkV":["Followed (",["0"],["1"],")"],"LPAv9E":[["days"],"d ago"],"Lld1jm":["Tell people about yourself…"],"MHrjPM":["Title"],"MKEPCY":["Follow"],"Mq2B8E":[["mins"],"m ago"],"NR0xa9":["Tell the community what makes this worth their time..."],"Nn4kr3":["+ New dump"],"Oprv1v":["Password (min. ",["0"]," characters)"],"Oz0N9s":["new"],"PiH3UR":["Copied!"],"Pn2B7_":["Current password"],"Pwqkdw":["Loading…"],"Q6n4F4":["Refresh metadata"],"QKsaQr":["or <0>browse files0>"],"QLtPBd":["No dumps in this playlist yet."],"R9Khdg":["Auto"],"RCcPrX":["Delete this playlist? This cannot be undone."],"RTksSy":["<0>",["0"],"0> started following you"],"RaKjrM":["Failed to save edit"],"RcUHRT":["Followed"],"SBTElJ":["Searching…"],"Sad2tK":["Sending…"],"Sxm8rQ":["Users"],"T9bjWt":["<0>",["0"],"0> was added to <1>",["1"],"1>"],"TM1ZbA":["Playlists (",["0"],["1"],")"],"TN382O":["Invalid link"],"Tv9vbB":["Follow playlist"],"Tz0i8g":["Settings"],"U7u3q-":["+ New"],"UNMVei":["Forgot password?"],"UOZith":["Failed to post"],"UTiUFs":["Fetching…"],"VCoEm-":["Back to login"],"V_e7nf":["Set new password"],"VnNJbN":["From playlists"],"VyTYmS":["Change avatar"],"WhimMi":["Reset failed"],"WpXcBJ":["Nothing here yet."],"WtkMN8":["All ",["0","plural",{"one":["#"," upvoted dump"],"other":["#"," upvoted dumps"]}]," loaded."],"XILg0L":["Invalid email address"],"XJy2oN":["Logging in…"],"Xan6QP":["New dump"],"XgRtUf":["Could not change password"],"Xi0Mn4":["← Back to profile"],"XnL-Eu":["No users match \\"",["q"],"\\"."],"Xs2Lez":["This reset link is missing or malformed."],"YK1Dhc":["a post"],"YaSA2K":["Comment not found"],"YpkCca":["No followed playlists yet."],"ZCpU0u":["No playlists match \\"",["q"],"\\"."],"ZmD2o6":["Create & Add"],"_3O5R_":["Request failed"],"_84wxb":["All ",["0","plural",{"one":["#"," dump"],"other":["#"," dumps"]}]," loaded."],"_DwR-n":["Creating…"],"_R_sGB":["Password changed successfully."],"_aept4":["Post reply"],"_nT6AE":["New password"],"_t4W-i":["From people"],"aAIQg2":["Appearance"],"aDvLhk":["Add a comment…"],"alBtu4":["Invalid or expired invite"],"b3Thhd":["Upload failed"],"b8XMJ8":[["visibleCount","plural",{"one":["#"," comment"],"other":["#"," comments"]}]],"bQhwn-":["Loading playlist…"],"cILfnJ":["Remove file"],"cYP9Sb":["+ Playlist"],"cbeBbZ":["At least ",["0"]," characters"],"cnGeoo":["Delete"],"d8DZWS":["Open search"],"dAs22m":["Replace file"],"dEgA5A":["Cancel"],"dMizp8":["New playlist"],"dSKHAa":["Invalid username or password"],"dTU6Wi":["Password must be at most 128 characters"],"dbc28f":["Why are you dumping this?"],"eFSqvc":["Failed to post reply"],"ePK91l":["Edit"],"eaUTwS":["Send reset link"],"ecUA8p":["Today"],"ef9nPf":["Loading dump…"],"en9o7K":["Failed to post comment"],"fGxPOv":["Add a bio…"],"fI-mNw":["Playlists"],"f_akpP":["Max 50 MB"],"fgLNSM":["Register"],"gANddk":["Uploading…"],"gGx5tM":["Editing"],"gIQQwD":["Failed to load"],"gLfZlz":["Add to playlist"],"gjJ-sb":["Can\'t connect to the live updates server. Upvotes and notifications may not sync until it reconnects."],"hBuUKa":["Change password…"],"hD7w09":["You\'ve reached the end."],"hJSliC":["<0>",["0"],"0> posted <1>",["1"],"1>"],"hYgDIe":["Create"],"he3ygx":["Copy"],"iDNBZe":["Notifications"],"ijVyoK":["Could not reach the server. Please try again."],"ipYn7W":["If that address is registered you\'ll receive a reset link shortly."],"isRobC":["New"],"jGrTH0":["Not authenticated"],"jbernk":["Loading profile…"],"joEmfT":["Server unreachable"],"jrZTZl":["No dumps yet. Be the first!"],"kLttbL":["Registration failed"],"kYYCil":["File too large (max 50 MB)"],"klOeIX":["Failed to change password"],"l3JaOO":["Cannot edit a deleted comment"],"lUDifl":["Created (",["0"],["1"],")"],"lUanmi":["You\'ll be notified when someone follows your playlists, upvotes your dumps, or posts new content."],"lY5h1V":[["0","plural",{"one":["#"," dump"],"other":["#"," dumps"]}]],"lcfvr_":["Delete this comment?"],"lpIMne":["Passwords do not match"],"mt6O6E":["This is a mirage."],"nbm5sI":["No dumps match \\"",["q"],"\\"."],"nrjqON":["Checking invite…"],"nwtY4N":["Something went wrong"],"ogtYkT":["Password updated"],"pCpd9p":["<0>",["0"],"0> mentioned you in <1>",["where"],"1>"],"pSheLH":["No invitees yet."],"pvnfJD":["Dark"],"qIMfNQ":["Delete playlist"],"qbDAcy":["Dump it"],"qgx_78":["Follow some public playlists to see their dumps here."],"qvFa8r":["public"],"rCbqPX":["This invite link is missing, expired, or already used."],"rg9pXu":["Search failed"],"rtpJqV":["Dumps (",["0"],["1"],")"],"sBZMWb":["Invalid URL"],"sQia9P":["Log in"],"sTiqbm":["invited by"],"sdP5Aa":["[deleted]"],"shHs8T":["Enter a query to search."],"siMTjB":["File content is not a recognised image (JPEG, PNG, GIF, WebP)"],"smeBfS":["Invalid invite"],"tfDRzk":["Save"],"tqKwXl":["Username must be 1–32 characters and contain only letters, numbers, or underscores"],"tvmuQ0":["Color scheme"],"u1lDX2":["Fetching preview…"],"u4pkXs":["Invite already used"],"uD0qXQ":["Drop a file here"],"uMGUnV":["No playlists yet."],"ub1EEL":["edited ",["0"]],"vJBF1r":["Posting…"],"vLhLLO":["Notifications (",["unreadNotificationCount"]," unread)"],"vuosjb":["User menu"],"vwGkYB":["Password must be at least 8 characters"],"wXO4Tg":[["hrs"],"h ago"],"wbXKOv":["File too large (max 50 MB)."],"wdiqRH":["Admin access required"],"wixIgH":["Already have an account? <0>Log in0>"],"x4aBfU":["Dump not found"],"xEWkgZ":["← Back to all dumps"],"xOTzt5":["just now"],"xPHtx0":["Submit search"],"xVuNgt":["+ New playlist"],"xc9O_u":["Delete dump"],"y6sq5j":["Following"],"yA_6BX":["View all →"],"yBBtRm":["Follow some users to see their dumps here."],"yQ2kGp":["Load more"],"y_0uwd":["Yesterday"],"yz7wBu":["Close"],"z1uNN0":["No emoji found."],"zVuxvN":["Refreshing…"],"zwBp5t":["Private"]}',
- ),
-};
+/*eslint-disable*/module.exports={messages:JSON.parse("{\"-K9EZb\":[\"Add email…\"],\"-OxI15\":[\"Followed playlists\"],\"-Ya-b9\":[\"Failed to save\"],\"-siMqD\":[\"Journal\"],\"1CalO6\":[\"Style\"],\"1HfJWf\":[\"Search dumps, users, playlists…\"],\"1cbYY_\":[\"Upvoted (\",[\"0\"],[\"1\"],\")\"],\"1njn7W\":[\"Light\"],\"1utXA6\":[\"Dumps\"],\"26iNma\":[\"Post comment\"],\"29VNqC\":[\"Unknown error\"],\"2Hlmdt\":[\"Write a reply…\"],\"2ygf_L\":[\"← Back\"],\"3KKSM4\":[\"private\"],\"3yfh3D\":[\"<0>\",[\"0\"],\"0> followed your playlist <1>\",[\"1\"],\"1>\"],\"49voTZ\":[[\"label\"],\" (\",[\"count\"],\")\"],\"4B6w_o\":[\"Dumped!\"],\"4GKuCs\":[\"Login failed\"],\"4HH9iB\":[\"Not following anyone yet.\"],\"4RtQ1k\":[\"Unfollow \",[\"targetUsername\"]],\"4c-qBx\":[\"Your password has been changed. You can now log in.\"],\"4yj9xV\":[\"Live updates are temporarily disconnected. Trying to reconnect…\"],\"5cC8f2\":[\"Edited \",[\"0\"]],\"5oD9f_\":[\"Earlier\"],\"6Qly-0\":[\"a comment\"],\"6gRgw8\":[\"Retry\"],\"7PHCIN\":[\"Cancel removal\"],\"7d1a0d\":[\"Public\"],\"7sNhEz\":[\"Username\"],\"8XaCG6\":[\" New\"],\"8ZsakT\":[\"Password\"],\"8pxhI8\":[\"Please select a file.\"],\"9BruTc\":[\"Why?\"],\"9l4qcT\":[\"Drop a replacement here\"],\"9uI_rE\":[\"Undo\"],\"A0y396\":[\"+ Invite someone\"],\"A1taO8\":[\"Search\"],\"AQbgNR\":[\"Follow \",[\"targetUsername\"]],\"ATGYL1\":[\"Email address\"],\"AZctoV\":[[\"0\",\"plural\",{\"one\":[\"#\",\" comment\"],\"other\":[\"#\",\" comments\"]}]],\"Ade-6d\":[\"Live updates unavailable.\"],\"AeXO77\":[\"Account\"],\"CI50ct\":[\"Upvoted\"],\"Cj24wt\":[\"Registering…\"],\"DPfwMq\":[\"Done\"],\"DdeHXH\":[\"Delete this dump? This cannot be undone.\"],\"Dp1JhP\":[\"<0>\",[\"0\"],\"0> upvoted <1>\",[\"1\"],\"1>\"],\"ECiS12\":[\"View dump →\"],\"ExR0Fr\":[\"URL is required.\"],\"F1O9Ep\":[\"Could not connect to server\"],\"F5Js1v\":[\"Unfollow playlist\"],\"FgAxTj\":[\"Log out\"],\"Fxf4jq\":[\"Description (optional)\"],\"GNSsCc\":[\"Failed to create playlist\"],\"GbqhrN\":[[\"0\"],\"–\",[\"1\"],\" characters: letters, numbers, or underscores\"],\"GptGxg\":[\"Change password\"],\"H8pzW-\":[\"Failed to update avatar\"],\"HTLDA4\":[\"Loading more…\"],\"I-x669\":[\"Invitees\"],\"IZX7TO\":[\"Failed to generate invite\"],\"IagCbF\":[\"URL\"],\"ImOQa9\":[\"Reply\"],\"J2eKUI\":[\"File\"],\"JJ-Bhk\":[\"Your email address\"],\"JRQitQ\":[\"Confirm new password\"],\"JXr41k\":[\"<0>\",[\"0\"],\"0> commented on <1>\",[\"1\"],\"1>\"],\"Jd58Fo\":[\"Hot\"],\"Jf0PuK\":[\"Go to login\"],\"KDGWg5\":[\"Remove from playlist\"],\"K_F6pa\":[\"Saving…\"],\"LLyMkV\":[\"Followed (\",[\"0\"],[\"1\"],\")\"],\"LPAv9E\":[[\"days\"],\"d ago\"],\"MHrjPM\":[\"Title\"],\"MKEPCY\":[\"Follow\"],\"Mq2B8E\":[[\"mins\"],\"m ago\"],\"Nn4kr3\":[\"+ New dump\"],\"Oprv1v\":[\"Password (min. \",[\"0\"],\" characters)\"],\"Oz0N9s\":[\"new\"],\"PiH3UR\":[\"Copied!\"],\"Pn2B7_\":[\"Current password\"],\"Pwqkdw\":[\"Loading…\"],\"Q6n4F4\":[\"Refresh metadata\"],\"QKsaQr\":[\"or <0>browse files0>\"],\"QLtPBd\":[\"No dumps in this playlist yet.\"],\"R9Khdg\":[\"Auto\"],\"RCcPrX\":[\"Delete this playlist? This cannot be undone.\"],\"RTksSy\":[\"<0>\",[\"0\"],\"0> started following you\"],\"RaKjrM\":[\"Failed to save edit\"],\"RcUHRT\":[\"Followed\"],\"SBTElJ\":[\"Searching…\"],\"Sad2tK\":[\"Sending…\"],\"Sxm8rQ\":[\"Users\"],\"T9bjWt\":[\"<0>\",[\"0\"],\"0> was added to <1>\",[\"1\"],\"1>\"],\"TM1ZbA\":[\"Playlists (\",[\"0\"],[\"1\"],\")\"],\"TN382O\":[\"Invalid link\"],\"Tv9vbB\":[\"Follow playlist\"],\"Tz0i8g\":[\"Settings\"],\"U7u3q-\":[\"+ New\"],\"UNMVei\":[\"Forgot password?\"],\"UOZith\":[\"Failed to post\"],\"UTiUFs\":[\"Fetching…\"],\"VCoEm-\":[\"Back to login\"],\"V_e7nf\":[\"Set new password\"],\"VnNJbN\":[\"From playlists\"],\"VyTYmS\":[\"Change avatar\"],\"WhimMi\":[\"Reset failed\"],\"WpXcBJ\":[\"Nothing here yet.\"],\"WtkMN8\":[\"All \",[\"0\",\"plural\",{\"one\":[\"#\",\" upvoted dump\"],\"other\":[\"#\",\" upvoted dumps\"]}],\" loaded.\"],\"XJy2oN\":[\"Logging in…\"],\"Xan6QP\":[\"New dump\"],\"XgRtUf\":[\"Could not change password\"],\"Xi0Mn4\":[\"← Back to profile\"],\"XnL-Eu\":[\"No users match \\\"\",[\"q\"],\"\\\".\"],\"Xs2Lez\":[\"This reset link is missing or malformed.\"],\"YK1Dhc\":[\"a post\"],\"YpkCca\":[\"No followed playlists yet.\"],\"ZCpU0u\":[\"No playlists match \\\"\",[\"q\"],\"\\\".\"],\"ZmD2o6\":[\"Create & Add\"],\"_3O5R_\":[\"Request failed\"],\"_84wxb\":[\"All \",[\"0\",\"plural\",{\"one\":[\"#\",\" dump\"],\"other\":[\"#\",\" dumps\"]}],\" loaded.\"],\"_DwR-n\":[\"Creating…\"],\"_R_sGB\":[\"Password changed successfully.\"],\"_aept4\":[\"Post reply\"],\"_nT6AE\":[\"New password\"],\"_t4W-i\":[\"From people\"],\"a8Ypyu\":[\" New playlist\"],\"aAIQg2\":[\"Appearance\"],\"aDvLhk\":[\"Add a comment…\"],\"b3Thhd\":[\"Upload failed\"],\"b8XMJ8\":[[\"visibleCount\",\"plural\",{\"one\":[\"#\",\" comment\"],\"other\":[\"#\",\" comments\"]}]],\"bQhwn-\":[\"Loading playlist…\"],\"cILfnJ\":[\"Remove file\"],\"cYP9Sb\":[\"+ Playlist\"],\"cbeBbZ\":[\"At least \",[\"0\"],\" characters\"],\"cnGeoo\":[\"Delete\"],\"d8DZWS\":[\"Open search\"],\"dAs22m\":[\"Replace file\"],\"dEgA5A\":[\"Cancel\"],\"dMizp8\":[\"New playlist\"],\"eFSqvc\":[\"Failed to post reply\"],\"ePK91l\":[\"Edit\"],\"eaUTwS\":[\"Send reset link\"],\"ecUA8p\":[\"Today\"],\"ef9nPf\":[\"Loading dump…\"],\"en9o7K\":[\"Failed to post comment\"],\"etFQQS\":[\"What makes it worth it?\"],\"fGxPOv\":[\"Add a bio…\"],\"fI-mNw\":[\"Playlists\"],\"f_akpP\":[\"Max 50 MB\"],\"fgLNSM\":[\"Register\"],\"gANddk\":[\"Uploading…\"],\"gGx5tM\":[\"Editing\"],\"gIQQwD\":[\"Failed to load\"],\"gLfZlz\":[\"Add to playlist\"],\"gjJ-sb\":[\"Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects.\"],\"hBuUKa\":[\"Change password…\"],\"hD7w09\":[\"You've reached the end.\"],\"hJSliC\":[\"<0>\",[\"0\"],\"0> posted <1>\",[\"1\"],\"1>\"],\"hYgDIe\":[\"Create\"],\"he3ygx\":[\"Copy\"],\"i7K_Te\":[\"Who am I?\"],\"iDNBZe\":[\"Notifications\"],\"ijVyoK\":[\"Could not reach the server. Please try again.\"],\"ipYn7W\":[\"If that address is registered you'll receive a reset link shortly.\"],\"isRobC\":[\"New\"],\"jbernk\":[\"Loading profile…\"],\"joEmfT\":[\"Server unreachable\"],\"jrZTZl\":[\"No dumps yet. Be the first!\"],\"kLttbL\":[\"Registration failed\"],\"klOeIX\":[\"Failed to change password\"],\"lUDifl\":[\"Created (\",[\"0\"],[\"1\"],\")\"],\"lUanmi\":[\"You'll be notified when someone follows your playlists, upvotes your dumps, or posts new content.\"],\"lY5h1V\":[[\"0\",\"plural\",{\"one\":[\"#\",\" dump\"],\"other\":[\"#\",\" dumps\"]}]],\"lcfvr_\":[\"Delete this comment?\"],\"lpIMne\":[\"Passwords do not match\"],\"mt6O6E\":[\"This is a mirage.\"],\"nbm5sI\":[\"No dumps match \\\"\",[\"q\"],\"\\\".\"],\"nrjqON\":[\"Checking invite…\"],\"nwtY4N\":[\"Something went wrong\"],\"ogtYkT\":[\"Password updated\"],\"pCpd9p\":[\"<0>\",[\"0\"],\"0> mentioned you in <1>\",[\"where\"],\"1>\"],\"pSheLH\":[\"No invitees yet.\"],\"pvnfJD\":[\"Dark\"],\"qIMfNQ\":[\"Delete playlist\"],\"qbDAcy\":[\"Dump it\"],\"qgx_78\":[\"Follow some public playlists to see their dumps here.\"],\"qvFa8r\":[\"public\"],\"r15pMp\":[\" Dump\"],\"rCbqPX\":[\"This invite link is missing, expired, or already used.\"],\"rg9pXu\":[\"Search failed\"],\"rtpJqV\":[\"Dumps (\",[\"0\"],[\"1\"],\")\"],\"sQia9P\":[\"Log in\"],\"sTiqbm\":[\"invited by\"],\"sdP5Aa\":[\"[deleted]\"],\"shHs8T\":[\"Enter a query to search.\"],\"smeBfS\":[\"Invalid invite\"],\"tfDRzk\":[\"Save\"],\"tvmuQ0\":[\"Color scheme\"],\"u1lDX2\":[\"Fetching preview…\"],\"uD0qXQ\":[\"Drop a file here\"],\"uMGUnV\":[\"No playlists yet.\"],\"ub1EEL\":[\"edited \",[\"0\"]],\"vJBF1r\":[\"Posting…\"],\"vLhLLO\":[\"Notifications (\",[\"unreadNotificationCount\"],\" unread)\"],\"vuosjb\":[\"User menu\"],\"wXO4Tg\":[[\"hrs\"],\"h ago\"],\"wbXKOv\":[\"File too large (max 50 MB).\"],\"wixIgH\":[\"Already have an account? <0>Log in0>\"],\"xEWkgZ\":[\"← Back to all dumps\"],\"xOTzt5\":[\"just now\"],\"xPHtx0\":[\"Submit search\"],\"xVuNgt\":[\"+ New playlist\"],\"xc9O_u\":[\"Delete dump\"],\"xy6Wtk\":[\" New dump\"],\"y6sq5j\":[\"Following\"],\"yA_6BX\":[\"View all →\"],\"yBBtRm\":[\"Follow some users to see their dumps here.\"],\"yQ2kGp\":[\"Load more\"],\"y_0uwd\":[\"Yesterday\"],\"yz7wBu\":[\"Close\"],\"z1uNN0\":[\"No emoji found.\"],\"zVuxvN\":[\"Refreshing…\"],\"zwBp5t\":[\"Private\"]}")};
\ No newline at end of file
diff --git a/src/locales/en.mjs b/src/locales/en.mjs
deleted file mode 100644
index 3d41f59..0000000
--- a/src/locales/en.mjs
+++ /dev/null
@@ -1,3 +0,0 @@
-/*eslint-disable*/ export const messages = JSON.parse(
- '{"+K9EZb":["Add email…"],"+Ya+b9":["Failed to save"],"+siMqD":["Journal"],"/84wxb":["All ",["0","plural",{"one":["#"," dump"],"other":["#"," dumps"]}]," loaded."],"/DwR+n":["Creating…"],"/aept4":["Post reply"],"/t4W+i":["From people"],"0kWhlg":["File too large (max 5 MB)"],"1HfJWf":["Search dumps, users, playlists…"],"1cbYY/":["Upvoted (",["0"],["1"],")"],"1utXA6":["Dumps"],"26iNma":["Post comment"],"2Hlmdt":["Write a reply…"],"2ygf/L":["← Back"],"3KKSM4":["private"],"3T1cI4":["Unexpected server error"],"3yfh3D":["<0>",["0"],"0> followed your playlist <1>",["1"],"1>"],"49voTZ":[["label"]," (",["count"],")"],"4B6w/o":["Dumped!"],"4GKuCs":["Login failed"],"4RtQ1k":["Unfollow ",["targetUsername"]],"4yj9xV":["Live updates are temporarily disconnected. Trying to reconnect…"],"5cC8f2":["Edited ",["0"]],"5oD9f/":["Earlier"],"6Qly+0":["a comment"],"6gRgw8":["Retry"],"7JBW66":["Forbidden"],"7PHCIN":["Cancel removal"],"7d1a0d":["Public"],"7sNhEz":["Username"],"8ZsakT":["Password"],"8pxhI8":["Please select a file."],"9l4qcT":["Drop a replacement here"],"9uI/rE":["Undo"],"A0y396":["+ Invite someone"],"A1taO8":["Search"],"AQbgNR":["Follow ",["targetUsername"]],"ATGYL1":["Email address"],"AZctoV":[["0","plural",{"one":["#"," comment"],"other":["#"," comments"]}]],"Ade+6d":["Live updates unavailable."],"CI50ct":["Upvoted"],"Cj24wt":["Registering…"],"DPfwMq":["Done"],"DdeHXH":["Delete this dump? This cannot be undone."],"Dp1JhP":["<0>",["0"],"0> upvoted <1>",["1"],"1>"],"ECiS12":["View dump →"],"ExR0Fr":["URL is required."],"F5Js1v":["Unfollow playlist"],"FgAxTj":["Log out"],"Fxf4jq":["Description (optional)"],"GNSsCc":["Failed to create playlist"],"GbqhrN":[["0"],"–",["1"]," characters: letters, numbers, or underscores"],"GsRMX3":["Playlist not found"],"H8pzW+":["Failed to update avatar"],"HTLDA4":["Loading more…"],"IZX7TO":["Failed to generate invite"],"IagCbF":["URL"],"ImOQa9":["Reply"],"J2eKUI":["File"],"Jd58Fo":["Hot"],"K/F6pa":["Saving…"],"K1JdNl":["Username already exists"],"KDGWg5":["Remove from playlist"],"LLyMkV":["Followed (",["0"],["1"],")"],"LPAv9E":[["days"],"d ago"],"Lld1jm":["Tell people about yourself…"],"MHrjPM":["Title"],"MKEPCY":["Follow"],"Mq2B8E":[["mins"],"m ago"],"NR0xa9":["Tell the community what makes this worth their time..."],"Nn4kr3":["+ New dump"],"Oprv1v":["Password (min. ",["0"]," characters)"],"Oz0N9s":["new"],"PiH3UR":["Copied!"],"Pwqkdw":["Loading…"],"Q6n4F4":["Refresh metadata"],"QKsaQr":["or <0>browse files0>"],"QLtPBd":["No dumps in this playlist yet."],"RCcPrX":["Delete this playlist? This cannot be undone."],"RTksSy":["<0>",["0"],"0> started following you"],"RaKjrM":["Failed to save edit"],"RcUHRT":["Followed"],"SBTElJ":["Searching…"],"Sxm8rQ":["Users"],"T9bjWt":["<0>",["0"],"0> was added to <1>",["1"],"1>"],"TM1ZbA":["Playlists (",["0"],["1"],")"],"Tv9vbB":["Follow playlist"],"U7u3q+":["+ New"],"UOZith":["Failed to post"],"UTiUFs":["Fetching…"],"VnNJbN":["From playlists"],"VyTYmS":["Change avatar"],"WpXcBJ":["Nothing here yet."],"WtkMN8":["All ",["0","plural",{"one":["#"," upvoted dump"],"other":["#"," upvoted dumps"]}]," loaded."],"XILg0L":["Invalid email address"],"XJy2oN":["Logging in…"],"Xan6QP":["New dump"],"Xi0Mn4":["← Back to profile"],"XnL+Eu":["No users match \\"",["q"],"\\"."],"YK1Dhc":["a post"],"YaSA2K":["Comment not found"],"YpkCca":["No followed playlists yet."],"ZCpU0u":["No playlists match \\"",["q"],"\\"."],"ZmD2o6":["Create & Add"],"aDvLhk":["Add a comment…"],"alBtu4":["Invalid or expired invite"],"b3Thhd":["Upload failed"],"b8XMJ8":[["visibleCount","plural",{"one":["#"," comment"],"other":["#"," comments"]}]],"bQhwn+":["Loading playlist…"],"cILfnJ":["Remove file"],"cYP9Sb":["+ Playlist"],"cnGeoo":["Delete"],"d8DZWS":["Open search"],"dAs22m":["Replace file"],"dEgA5A":["Cancel"],"dSKHAa":["Invalid username or password"],"dTU6Wi":["Password must be at most 128 characters"],"dbc28f":["Why are you dumping this?"],"eFSqvc":["Failed to post reply"],"ePK91l":["Edit"],"ecUA8p":["Today"],"ef9nPf":["Loading dump…"],"en9o7K":["Failed to post comment"],"f/akpP":["Max 50 MB"],"fGxPOv":["Add a bio…"],"fI+mNw":["Playlists"],"fgLNSM":["Register"],"gANddk":["Uploading…"],"gGx5tM":["Editing"],"gIQQwD":["Failed to load"],"gLfZlz":["Add to playlist"],"gjJ+sb":["Can\'t connect to the live updates server. Upvotes and notifications may not sync until it reconnects."],"hD7w09":["You\'ve reached the end."],"hJSliC":["<0>",["0"],"0> posted <1>",["1"],"1>"],"hYgDIe":["Create"],"he3ygx":["Copy"],"iDNBZe":["Notifications"],"ijVyoK":["Could not reach the server. Please try again."],"isRobC":["New"],"jGrTH0":["Not authenticated"],"jbernk":["Loading profile…"],"joEmfT":["Server unreachable"],"jrZTZl":["No dumps yet. Be the first!"],"kLttbL":["Registration failed"],"kYYCil":["File too large (max 50 MB)"],"l3JaOO":["Cannot edit a deleted comment"],"lUDifl":["Created (",["0"],["1"],")"],"lUanmi":["You\'ll be notified when someone follows your playlists, upvotes your dumps, or posts new content."],"lY5h1V":[["0","plural",{"one":["#"," dump"],"other":["#"," dumps"]}]],"lcfvr/":["Delete this comment?"],"mt6O6E":["This is a mirage."],"nbm5sI":["No dumps match \\"",["q"],"\\"."],"nrjqON":["Checking invite…"],"nwtY4N":["Something went wrong"],"pCpd9p":["<0>",["0"],"0> mentioned you in <1>",["where"],"1>"],"qIMfNQ":["Delete playlist"],"qbDAcy":["Dump it"],"qgx/78":["Follow some public playlists to see their dumps here."],"qvFa8r":["public"],"rCbqPX":["This invite link is missing, expired, or already used."],"rg9pXu":["Search failed"],"rtpJqV":["Dumps (",["0"],["1"],")"],"sBZMWb":["Invalid URL"],"sQia9P":["Log in"],"sTiqbm":["invited by"],"sdP5Aa":["[deleted]"],"shHs8T":["Enter a query to search."],"siMTjB":["File content is not a recognised image (JPEG, PNG, GIF, WebP)"],"smeBfS":["Invalid invite"],"tfDRzk":["Save"],"tqKwXl":["Username must be 1–32 characters and contain only letters, numbers, or underscores"],"u1lDX2":["Fetching preview…"],"u4pkXs":["Invite already used"],"uD0qXQ":["Drop a file here"],"uMGUnV":["No playlists yet."],"ub1EEL":["edited ",["0"]],"vJBF1r":["Posting…"],"vLhLLO":["Notifications (",["unreadNotificationCount"]," unread)"],"vuosjb":["User menu"],"vwGkYB":["Password must be at least 8 characters"],"wXO4Tg":[["hrs"],"h ago"],"wbXKOv":["File too large (max 50 MB)."],"wdiqRH":["Admin access required"],"wixIgH":["Already have an account? <0>Log in0>"],"x4aBfU":["Dump not found"],"xEWkgZ":["← Back to all dumps"],"xOTzt5":["just now"],"xPHtx0":["Submit search"],"xVuNgt":["+ New playlist"],"xc9O/u":["Delete dump"],"y/0uwd":["Yesterday"],"y6sq5j":["Following"],"yA/6BX":["View all →"],"yBBtRm":["Follow some users to see their dumps here."],"yQ2kGp":["Load more"],"yz7wBu":["Close"],"z1uNN0":["No emoji found."],"zVuxvN":["Refreshing…"],"zwBp5t":["Private"]}',
-);
diff --git a/src/locales/en.po b/src/locales/en.po
index 08f3f05..1e1b460 100644
--- a/src/locales/en.po
+++ b/src/locales/en.po
@@ -13,12 +13,29 @@ msgstr ""
"Language-Team: \n"
"Plural-Forms: \n"
+#: src/components/AppHeader.tsx:71
+msgid " Dump"
+msgstr " Dump"
+
+#: src/components/AppHeader.tsx:71
+msgid " New"
+msgstr " New"
+
+#: src/pages/UserDumps.tsx:114
+#: src/pages/UserPublicProfile.tsx:1332
+msgid " New dump"
+msgstr " New dump"
+
+#: src/components/NewPlaylistForm.tsx:30
+msgid " New playlist"
+msgstr " New playlist"
+
#: src/components/CommentThread.tsx:176
msgid "[deleted]"
msgstr "[deleted]"
#. placeholder {0}: dump.commentCount
-#: src/components/DumpCard.tsx:82
+#: src/components/DumpCard.tsx:95
msgid "{0, plural, one {# comment} other {# comments}}"
msgstr "{0, plural, one {# comment} other {# comments}}"
@@ -59,7 +76,7 @@ msgid "← Back"
msgstr "← Back"
#: src/pages/Dump.tsx:218
-#: src/pages/Dump.tsx:321
+#: src/pages/Dump.tsx:325
#: src/pages/DumpEdit.tsx:170
msgid "← Back to all dumps"
msgstr "← Back to all dumps"
@@ -74,16 +91,15 @@ msgstr "← Back to profile"
msgid "+ Invite someone"
msgstr "+ Invite someone"
-#: src/components/AppHeader.tsx:70
+#: src/components/AppHeader.tsx:71
msgid "+ New"
msgstr "+ New"
#: src/pages/UserDumps.tsx:114
-#: src/pages/UserPublicProfile.tsx:1330
+#: src/pages/UserPublicProfile.tsx:1332
msgid "+ New dump"
msgstr "+ New dump"
-#: src/components/NewPlaylistForm.tsx:30
#: src/components/PlaylistMembershipPanel.tsx:80
msgid "+ New playlist"
msgstr "+ New playlist"
@@ -94,53 +110,53 @@ msgstr "+ Playlist"
#. placeholder {0}: d.commenterUsername
#. placeholder {1}: d.dumpTitle
-#: src/pages/Notifications.tsx:171
+#: src/pages/Notifications.tsx:179
msgid "<0>{0}0> commented on <1>{1}1>"
msgstr "<0>{0}0> commented on <1>{1}1>"
#. placeholder {0}: d.followerUsername
#. placeholder {1}: d.playlistTitle
-#: src/pages/Notifications.tsx:131
+#: src/pages/Notifications.tsx:139
msgid "<0>{0}0> followed your playlist <1>{1}1>"
msgstr "<0>{0}0> followed your playlist <1>{1}1>"
#. placeholder {0}: d.mentionerUsername
-#: src/pages/Notifications.tsx:183
+#: src/pages/Notifications.tsx:191
msgid "<0>{0}0> mentioned you in <1>{where}1>"
msgstr "<0>{0}0> mentioned you in <1>{where}1>"
#. placeholder {0}: d.dumperUsername
#. placeholder {1}: d.dumpTitle
-#: src/pages/Notifications.tsx:141
+#: src/pages/Notifications.tsx:149
msgid "<0>{0}0> posted <1>{1}1>"
msgstr "<0>{0}0> posted <1>{1}1>"
#. placeholder {0}: d.followerUsername
-#: src/pages/Notifications.tsx:122
+#: src/pages/Notifications.tsx:130
msgid "<0>{0}0> started following you"
msgstr "<0>{0}0> started following you"
#. placeholder {0}: d.voterUsername
#. placeholder {1}: d.dumpTitle
-#: src/pages/Notifications.tsx:161
+#: src/pages/Notifications.tsx:169
msgid "<0>{0}0> upvoted <1>{1}1>"
msgstr "<0>{0}0> upvoted <1>{1}1>"
#. placeholder {0}: d.dumpTitle
#. placeholder {1}: d.playlistTitle
-#: src/pages/Notifications.tsx:151
+#: src/pages/Notifications.tsx:159
msgid "<0>{0}0> was added to <1>{1}1>"
msgstr "<0>{0}0> was added to <1>{1}1>"
-#: src/pages/Notifications.tsx:181
+#: src/pages/Notifications.tsx:189
msgid "a comment"
msgstr "a comment"
-#: src/pages/Notifications.tsx:181
+#: src/pages/Notifications.tsx:189
msgid "a post"
msgstr "a post"
-#: src/pages/UserPublicProfile.tsx:1215
+#: src/pages/UserPublicProfile.tsx:1217
msgid "Account"
msgstr "Account"
@@ -161,10 +177,6 @@ msgstr "Add email…"
msgid "Add to playlist"
msgstr "Add to playlist"
-#: api/auth:
-#~ msgid "Admin access required"
-#~ msgstr "Admin access required"
-
#: src/pages/UserDumps.tsx:114
msgid "All {0, plural, one {# dump} other {# dumps}} loaded."
msgstr "All {0, plural, one {# dump} other {# dumps}} loaded."
@@ -177,7 +189,7 @@ msgstr "All {0, plural, one {# upvoted dump} other {# upvoted dumps}} loaded."
msgid "Already have an account? <0>Log in0>"
msgstr "Already have an account? <0>Log in0>"
-#: src/pages/UserPublicProfile.tsx:1234
+#: src/pages/UserPublicProfile.tsx:1236
msgid "Appearance"
msgstr "Appearance"
@@ -187,7 +199,7 @@ msgstr "Appearance"
msgid "At least {0} characters"
msgstr "At least {0} characters"
-#: src/pages/UserPublicProfile.tsx:1268
+#: src/pages/UserPublicProfile.tsx:1270
msgid "Auto"
msgstr "Auto"
@@ -219,10 +231,6 @@ msgstr "Cancel"
msgid "Cancel removal"
msgstr "Cancel removal"
-#: api/comments:
-#~ msgid "Cannot edit a deleted comment"
-#~ msgstr "Cannot edit a deleted comment"
-
#: src/pages/UserPublicProfile.tsx:772
msgid "Change avatar"
msgstr "Change avatar"
@@ -232,7 +240,7 @@ msgstr "Change avatar"
msgid "Change password"
msgstr "Change password"
-#: src/pages/UserPublicProfile.tsx:1227
+#: src/pages/UserPublicProfile.tsx:1229
msgid "Change password…"
msgstr "Change password…"
@@ -245,14 +253,10 @@ msgstr "Checking invite…"
msgid "Close"
msgstr "Close"
-#: src/pages/UserPublicProfile.tsx:1260
+#: src/pages/UserPublicProfile.tsx:1262
msgid "Color scheme"
msgstr "Color scheme"
-#: api/comments:
-#~ msgid "Comment not found"
-#~ msgstr "Comment not found"
-
#: src/components/ChangePasswordModal.tsx:136
#: src/pages/ResetPassword.tsx:132
msgid "Confirm new password"
@@ -303,7 +307,7 @@ msgstr "Creating…"
msgid "Current password"
msgstr "Current password"
-#: src/pages/UserPublicProfile.tsx:1282
+#: src/pages/UserPublicProfile.tsx:1284
msgid "Dark"
msgstr "Dark"
@@ -359,32 +363,28 @@ msgstr "Drop a replacement here"
msgid "Dump it"
msgstr "Dump it"
-#: api/dumps:
-#~ msgid "Dump not found"
-#~ msgstr "Dump not found"
-
#: src/components/DumpCreateModal.tsx:438
msgid "Dumped!"
msgstr "Dumped!"
#: src/pages/Search.tsx:172
#: src/pages/UserDumps.tsx:107
-#: src/pages/UserPublicProfile.tsx:967
+#: src/pages/UserPublicProfile.tsx:968
msgid "Dumps"
msgstr "Dumps"
#. placeholder {0}: dumps.items.length
#. placeholder {1}: dumps.hasMore ? "+" : ""
-#: src/pages/UserPublicProfile.tsx:1004
+#: src/pages/UserPublicProfile.tsx:1006
msgid "Dumps ({0}{1})"
msgstr "Dumps ({0}{1})"
-#: src/pages/Notifications.tsx:360
+#: src/pages/Notifications.tsx:368
msgid "Earlier"
msgstr "Earlier"
#: src/components/CommentThread.tsx:310
-#: src/pages/Dump.tsx:317
+#: src/pages/Dump.tsx:321
#: src/pages/PlaylistDetail.tsx:706
msgid "Edit"
msgstr "Edit"
@@ -393,7 +393,7 @@ msgstr "Edit"
#. placeholder {0}: relativeTime(dump.updatedAt)
#. placeholder {0}: relativeTime(playlist.updatedAt)
#: src/components/CommentThread.tsx:237
-#: src/pages/Dump.tsx:278
+#: src/pages/Dump.tsx:281
#: src/pages/PlaylistDetail.tsx:779
msgid "edited {0}"
msgstr "edited {0}"
@@ -402,7 +402,7 @@ msgstr "edited {0}"
#. placeholder {0}: dump.updatedAt.toLocaleString()
#. placeholder {0}: playlist.updatedAt.toLocaleString()
#: src/components/CommentThread.tsx:235
-#: src/pages/Dump.tsx:276
+#: src/pages/Dump.tsx:279
#: src/pages/PlaylistDetail.tsx:776
msgid "Edited {0}"
msgstr "Edited {0}"
@@ -438,10 +438,10 @@ msgstr "Failed to generate invite"
#: src/pages/index/HotFeed.tsx:36
#: src/pages/index/JournalFeed.tsx:48
#: src/pages/index/NewFeed.tsx:36
-#: src/pages/Notifications.tsx:334
-#: src/pages/UserPublicProfile.tsx:1106
-#: src/pages/UserPublicProfile.tsx:1148
-#: src/pages/UserPublicProfile.tsx:1193
+#: src/pages/Notifications.tsx:342
+#: src/pages/UserPublicProfile.tsx:1108
+#: src/pages/UserPublicProfile.tsx:1150
+#: src/pages/UserPublicProfile.tsx:1195
msgid "Failed to load"
msgstr "Failed to load"
@@ -486,18 +486,6 @@ msgstr "Fetching…"
msgid "File"
msgstr "File"
-#: api/avatars:
-#~ msgid "File content is not a recognised image (JPEG, PNG, GIF, WebP)"
-#~ msgstr "File content is not a recognised image (JPEG, PNG, GIF, WebP)"
-
-#: api/avatars:
-#~ msgid "File too large (max 5 MB)"
-#~ msgstr "File too large (max 5 MB)"
-
-#: api/dumps:
-#~ msgid "File too large (max 50 MB)"
-#~ msgstr "File too large (max 50 MB)"
-
#: src/components/DumpCreateModal.tsx:202
msgid "File too large (max 50 MB)."
msgstr "File too large (max 50 MB)."
@@ -523,8 +511,8 @@ msgstr "Follow some public playlists to see their dumps here."
msgid "Follow some users to see their dumps here."
msgstr "Follow some users to see their dumps here."
-#: src/components/FeedTabBar.tsx:47
-#: src/pages/UserPublicProfile.tsx:981
+#: src/components/FeedTabBar.tsx:48
+#: src/pages/UserPublicProfile.tsx:982
msgid "Followed"
msgstr "Followed"
@@ -534,20 +522,16 @@ msgstr "Followed"
msgid "Followed ({0}{1})"
msgstr "Followed ({0}{1})"
-#: src/pages/UserPublicProfile.tsx:1137
+#: src/pages/UserPublicProfile.tsx:1139
msgid "Followed playlists"
msgstr "Followed playlists"
#: src/components/FollowButton.tsx:37
#: src/components/FollowButton.tsx:64
-#: src/pages/UserPublicProfile.tsx:1095
+#: src/pages/UserPublicProfile.tsx:1097
msgid "Following"
msgstr "Following"
-#: api/playlists:
-#~ msgid "Forbidden"
-#~ msgstr "Forbidden"
-
#: src/pages/UserLogin.tsx:131
msgid "Forgot password?"
msgstr "Forgot password?"
@@ -564,7 +548,7 @@ msgstr "From playlists"
msgid "Go to login"
msgstr "Go to login"
-#: src/components/FeedTabBar.tsx:25
+#: src/components/FeedTabBar.tsx:26
msgid "Hot"
msgstr "Hot"
@@ -572,10 +556,6 @@ msgstr "Hot"
msgid "If that address is registered you'll receive a reset link shortly."
msgstr "If that address is registered you'll receive a reset link shortly."
-#: api/auth:
-#~ msgid "Invalid email address"
-#~ msgstr "Invalid email address"
-
#: src/pages/UserRegister.tsx:106
msgid "Invalid invite"
msgstr "Invalid invite"
@@ -584,33 +564,16 @@ msgstr "Invalid invite"
msgid "Invalid link"
msgstr "Invalid link"
-#: api/invites:
-#~ msgid "Invalid or expired invite"
-#~ msgstr "Invalid or expired invite"
-
-#: api/dumps:
-#~ msgid "Invalid URL"
-#~ msgstr "Invalid URL"
-
-#. Backend error strings (manually maintained)
-#: api/auth:
-#~ msgid "Invalid username or password"
-#~ msgstr "Invalid username or password"
-
-#: api/invites:
-#~ msgid "Invite already used"
-#~ msgstr "Invite already used"
-
#: src/pages/UserPublicProfile.tsx:790
msgid "invited by"
msgstr "invited by"
-#: src/pages/UserPublicProfile.tsx:988
-#: src/pages/UserPublicProfile.tsx:1182
+#: src/pages/UserPublicProfile.tsx:989
+#: src/pages/UserPublicProfile.tsx:1184
msgid "Invitees"
msgstr "Invitees"
-#: src/components/FeedTabBar.tsx:39
+#: src/components/FeedTabBar.tsx:40
msgid "Journal"
msgstr "Journal"
@@ -618,7 +581,7 @@ msgstr "Journal"
msgid "just now"
msgstr "just now"
-#: src/pages/UserPublicProfile.tsx:1275
+#: src/pages/UserPublicProfile.tsx:1277
msgid "Light"
msgstr "Light"
@@ -626,11 +589,11 @@ msgstr "Light"
msgid "Live updates are temporarily disconnected. Trying to reconnect…"
msgstr "Live updates are temporarily disconnected. Trying to reconnect…"
-#: src/components/AppHeader.tsx:87
+#: src/components/AppHeader.tsx:88
msgid "Live updates unavailable."
msgstr "Live updates unavailable."
-#: src/pages/Notifications.tsx:407
+#: src/pages/Notifications.tsx:415
msgid "Load more"
msgstr "Load more"
@@ -665,18 +628,18 @@ msgstr "Loading profile…"
#: src/pages/index/HotFeed.tsx:32
#: src/pages/index/JournalFeed.tsx:44
#: src/pages/index/NewFeed.tsx:32
-#: src/pages/Notifications.tsx:330
-#: src/pages/Notifications.tsx:406
+#: src/pages/Notifications.tsx:338
+#: src/pages/Notifications.tsx:414
#: src/pages/UserDumps.tsx:51
#: src/pages/UserPlaylists.tsx:342
-#: src/pages/UserPublicProfile.tsx:1100
-#: src/pages/UserPublicProfile.tsx:1142
-#: src/pages/UserPublicProfile.tsx:1187
+#: src/pages/UserPublicProfile.tsx:1102
+#: src/pages/UserPublicProfile.tsx:1144
+#: src/pages/UserPublicProfile.tsx:1189
#: src/pages/UserUpvoted.tsx:123
msgid "Loading…"
msgstr "Loading…"
-#: src/components/AppHeader.tsx:77
+#: src/components/AppHeader.tsx:78
#: src/pages/UserLogin.tsx:87
#: src/pages/UserLogin.tsx:117
msgid "Log in"
@@ -699,11 +662,11 @@ msgstr "Login failed"
msgid "Max 50 MB"
msgstr "Max 50 MB"
-#: src/pages/Notifications.tsx:323
+#: src/pages/Notifications.tsx:331
msgid "new"
msgstr "new"
-#: src/components/FeedTabBar.tsx:32
+#: src/components/FeedTabBar.tsx:33
msgid "New"
msgstr "New"
@@ -739,11 +702,11 @@ msgid "No emoji found."
msgstr "No emoji found."
#: src/pages/UserPlaylists.tsx:439
-#: src/pages/UserPublicProfile.tsx:1155
+#: src/pages/UserPublicProfile.tsx:1157
msgid "No followed playlists yet."
msgstr "No followed playlists yet."
-#: src/pages/UserPublicProfile.tsx:1200
+#: src/pages/UserPublicProfile.tsx:1202
msgid "No invitees yet."
msgstr "No invitees yet."
@@ -753,7 +716,7 @@ msgstr "No playlists match \"{q}\"."
#: src/components/PlaylistMembershipPanel.tsx:34
#: src/pages/UserPlaylists.tsx:397
-#: src/pages/UserPublicProfile.tsx:1066
+#: src/pages/UserPublicProfile.tsx:1068
msgid "No playlists yet."
msgstr "No playlists yet."
@@ -761,24 +724,20 @@ msgstr "No playlists yet."
msgid "No users match \"{q}\"."
msgstr "No users match \"{q}\"."
-#: api/auth:
-#~ msgid "Not authenticated"
-#~ msgstr "Not authenticated"
-
-#: src/pages/UserPublicProfile.tsx:1113
+#: src/pages/UserPublicProfile.tsx:1115
msgid "Not following anyone yet."
msgstr "Not following anyone yet."
-#: src/pages/Notifications.tsx:341
+#: src/pages/Notifications.tsx:349
#: src/pages/UserDumps.tsx:123
-#: src/pages/UserPublicProfile.tsx:1340
-#: src/pages/UserPublicProfile.tsx:1463
+#: src/pages/UserPublicProfile.tsx:1342
+#: src/pages/UserPublicProfile.tsx:1465
#: src/pages/UserUpvoted.tsx:195
msgid "Nothing here yet."
msgstr "Nothing here yet."
#: src/components/NotificationBell.tsx:42
-#: src/pages/Notifications.tsx:319
+#: src/pages/Notifications.tsx:327
msgid "Notifications"
msgstr "Notifications"
@@ -795,7 +754,7 @@ msgid "or <0>browse files0>"
msgstr "or <0>browse files0>"
#: src/pages/UserLogin.tsx:106
-#: src/pages/UserPublicProfile.tsx:1220
+#: src/pages/UserPublicProfile.tsx:1222
msgid "Password"
msgstr "Password"
@@ -808,14 +767,6 @@ msgstr "Password (min. {0} characters)"
msgid "Password changed successfully."
msgstr "Password changed successfully."
-#: api/auth:
-#~ msgid "Password must be at least 8 characters"
-#~ msgstr "Password must be at least 8 characters"
-
-#: api/auth:
-#~ msgid "Password must be at most 128 characters"
-#~ msgstr "Password must be at most 128 characters"
-
#: src/pages/ResetPassword.tsx:56
msgid "Password updated"
msgstr "Password updated"
@@ -825,21 +776,17 @@ msgstr "Password updated"
msgid "Passwords do not match"
msgstr "Passwords do not match"
-#: api/playlists:
-#~ msgid "Playlist not found"
-#~ msgstr "Playlist not found"
-
-#: src/components/AppHeader.tsx:53
+#: src/components/AppHeader.tsx:54
#: src/components/UserMenu.tsx:62
#: src/pages/Search.tsx:175
#: src/pages/UserPlaylists.tsx:368
-#: src/pages/UserPublicProfile.tsx:974
+#: src/pages/UserPublicProfile.tsx:975
msgid "Playlists"
msgstr "Playlists"
#. placeholder {0}: playlists.items.length
#. placeholder {1}: playlists.hasMore ? "+" : ""
-#: src/pages/UserPublicProfile.tsx:1035
+#: src/pages/UserPublicProfile.tsx:1037
msgid "Playlists ({0}{1})"
msgstr "Playlists ({0}{1})"
@@ -860,10 +807,10 @@ msgstr "Post reply"
msgid "Posting…"
msgstr "Posting…"
-#: src/components/DumpCard.tsx:91
+#: src/components/DumpCard.tsx:104
#: src/components/PlaylistCard.tsx:73
#: src/components/PlaylistMembershipPanel.tsx:55
-#: src/pages/Dump.tsx:284
+#: src/pages/Dump.tsx:287
#: src/pages/PlaylistDetail.tsx:759
msgid "private"
msgstr "private"
@@ -978,7 +925,7 @@ msgstr "Send reset link"
msgid "Sending…"
msgstr "Sending…"
-#: src/components/AppHeader.tsx:68
+#: src/components/AppHeader.tsx:69
msgid "Server unreachable"
msgstr "Server unreachable"
@@ -987,7 +934,7 @@ msgstr "Server unreachable"
msgid "Set new password"
msgstr "Set new password"
-#: src/pages/UserPublicProfile.tsx:996
+#: src/pages/UserPublicProfile.tsx:997
msgid "Settings"
msgstr "Settings"
@@ -995,7 +942,7 @@ msgstr "Settings"
msgid "Something went wrong"
msgstr "Something went wrong"
-#: src/pages/UserPublicProfile.tsx:1239
+#: src/pages/UserPublicProfile.tsx:1241
msgid "Style"
msgstr "Style"
@@ -1003,15 +950,6 @@ msgstr "Style"
msgid "Submit search"
msgstr "Submit search"
-#: src/pages/UserPublicProfile.tsx:899
-msgid "Tell people about yourself…"
-msgstr "Tell people about yourself…"
-
-#: src/components/DumpCreateModal.tsx:383
-#: src/pages/DumpEdit.tsx:266
-msgid "Tell the community what makes this worth their time..."
-msgstr "Tell the community what makes this worth their time..."
-
#: src/pages/UserRegister.tsx:107
msgid "This invite link is missing, expired, or already used."
msgstr "This invite link is missing, expired, or already used."
@@ -1028,7 +966,7 @@ msgstr "This reset link is missing or malformed."
msgid "Title"
msgstr "Title"
-#: src/pages/Notifications.tsx:357
+#: src/pages/Notifications.tsx:365
msgid "Today"
msgstr "Today"
@@ -1036,10 +974,6 @@ msgstr "Today"
msgid "Undo"
msgstr "Undo"
-#: api/generic:
-#~ msgid "Unexpected server error"
-#~ msgstr "Unexpected server error"
-
#: src/components/FollowButton.tsx:34
msgid "Unfollow {targetUsername}"
msgstr "Unfollow {targetUsername}"
@@ -1067,7 +1001,7 @@ msgstr "Upvoted"
#. placeholder {0}: votes.items.length
#. placeholder {1}: votes.hasMore ? "+" : ""
-#: src/pages/UserPublicProfile.tsx:1015
+#: src/pages/UserPublicProfile.tsx:1017
msgid "Upvoted ({0}{1})"
msgstr "Upvoted ({0}{1})"
@@ -1089,23 +1023,15 @@ msgstr "User menu"
msgid "Username"
msgstr "Username"
-#: api/auth:
-#~ msgid "Username already exists"
-#~ msgstr "Username already exists"
-
-#: api/auth:
-#~ msgid "Username must be 1–32 characters and contain only letters, numbers, or underscores"
-#~ msgstr "Username must be 1–32 characters and contain only letters, numbers, or underscores"
-
#: src/pages/Search.tsx:174
msgid "Users"
msgstr "Users"
-#: src/pages/UserPublicProfile.tsx:1085
-#: src/pages/UserPublicProfile.tsx:1128
-#: src/pages/UserPublicProfile.tsx:1170
-#: src/pages/UserPublicProfile.tsx:1361
-#: src/pages/UserPublicProfile.tsx:1493
+#: src/pages/UserPublicProfile.tsx:1087
+#: src/pages/UserPublicProfile.tsx:1130
+#: src/pages/UserPublicProfile.tsx:1172
+#: src/pages/UserPublicProfile.tsx:1363
+#: src/pages/UserPublicProfile.tsx:1495
msgid "View all →"
msgstr "View all →"
@@ -1113,20 +1039,29 @@ msgstr "View all →"
msgid "View dump →"
msgstr "View dump →"
+#: src/components/DumpCreateModal.tsx:383
+#: src/pages/DumpEdit.tsx:266
+msgid "What makes it worth it?"
+msgstr "What makes it worth it?"
+
+#: src/pages/UserPublicProfile.tsx:899
+msgid "Who am I?"
+msgstr "Who am I?"
+
#: src/components/DumpCreateModal.tsx:376
#: src/pages/DumpEdit.tsx:260
-msgid "Why are you dumping this?"
-msgstr "Why are you dumping this?"
+msgid "Why?"
+msgstr "Why?"
#: src/components/CommentThread.tsx:342
msgid "Write a reply…"
msgstr "Write a reply…"
-#: src/pages/Notifications.tsx:359
+#: src/pages/Notifications.tsx:367
msgid "Yesterday"
msgstr "Yesterday"
-#: src/pages/Notifications.tsx:344
+#: src/pages/Notifications.tsx:352
msgid "You'll be notified when someone follows your playlists, upvotes your dumps, or posts new content."
msgstr "You'll be notified when someone follows your playlists, upvotes your dumps, or posts new content."
diff --git a/src/locales/fr.js b/src/locales/fr.js
index b9054dd..c08cdd4 100644
--- a/src/locales/fr.js
+++ b/src/locales/fr.js
@@ -1,5 +1 @@
-/*eslint-disable*/ module.exports = {
- messages: JSON.parse(
- '{"-K9EZb":["Ajouter un e-mail…"],"-OxI15":["Collections suivies"],"-Ya-b9":["Enregistrement échoué"],"-siMqD":["Journal"],"0kWhlg":["File too large (max 5 MB)"],"1CalO6":["Style"],"1HfJWf":["Rechercher des recos, utilisateurs, collections…"],"1cbYY_":["Votés (",["0"],["1"],")"],"1njn7W":["Clair"],"1utXA6":["Recos"],"26iNma":["Publier le commentaire"],"29VNqC":["Erreur inconnue"],"2Hlmdt":["Écrire une réponse…"],"2ygf_L":["← Retour"],"3KKSM4":["privé"],"3T1cI4":["Unexpected server error"],"3yfh3D":["<0>",["0"],"0> a suivi votre collection <1>",["1"],"1>"],"49voTZ":[["label"]," (",["count"],")"],"4B6w_o":["Recommandé !"],"4GKuCs":["Connexion échouée"],"4HH9iB":["Aucun abonnement pour le moment."],"4RtQ1k":["Ne plus suivre ",["targetUsername"]],"4c-qBx":["Votre mot de passe a été modifié. Vous pouvez maintenant vous connecter."],"4yj9xV":["Les mises à jour en direct sont temporairement interrompues. Tentative de reconnexion…"],"5cC8f2":["Modifié le ",["0"]],"5oD9f_":["Plus tôt"],"6Qly-0":["un commentaire"],"6gRgw8":["Réessayer"],"7JBW66":["Forbidden"],"7PHCIN":["Annuler la suppression"],"7d1a0d":["Public"],"7sNhEz":["Nom d\'utilisateur"],"8ZsakT":["Mot de passe"],"8pxhI8":["Veuillez sélectionner un fichier."],"9l4qcT":["Déposez un fichier de remplacement ici"],"9uI_rE":["Annuler"],"A0y396":["+ Inviter quelqu\'un"],"A1taO8":["Rechercher"],"AQbgNR":["Suivre ",["targetUsername"]],"ATGYL1":["Adresse e-mail"],"AZctoV":[["0","plural",{"one":["#"," commentaire"],"other":["#"," commentaires"]}]],"Ade-6d":["Mises à jour en direct indisponibles."],"AeXO77":["Compte"],"CI50ct":["Voté"],"Cj24wt":["Inscription…"],"DPfwMq":["Terminé"],"DdeHXH":["Supprimer cette reco ? Cette action est irréversible."],"Dp1JhP":["<0>",["0"],"0> a voté pour <1>",["1"],"1>"],"ECiS12":["Voir la reco →"],"ExR0Fr":["L\'URL est obligatoire."],"F1O9Ep":["Impossible de contacter le serveur"],"F5Js1v":["Ne plus suivre la collection"],"FgAxTj":["Se déconnecter"],"Fxf4jq":["Description (facultatif)"],"GNSsCc":["Impossible de créer la collection"],"GbqhrN":[["0"],"–",["1"]," caractères : lettres, chiffres ou tirets bas"],"GptGxg":["Changer le mot de passe"],"GsRMX3":["Playlist not found"],"H8pzW-":["Impossible de mettre à jour l\'avatar"],"HTLDA4":["Chargement…"],"I-x669":["Invités"],"IZX7TO":["Impossible de générer une invitation"],"IagCbF":["URL"],"ImOQa9":["Répondre"],"J2eKUI":["Fichier"],"JJ-Bhk":["Votre adresse e-mail"],"JRQitQ":["Confirmer le nouveau mot de passe"],"JXr41k":["<0>",["0"],"0> commented on <1>",["1"],"1>"],"Jd58Fo":["Tendances"],"Jf0PuK":["Aller à la connexion"],"K1JdNl":["Username already exists"],"KDGWg5":["Retirer de la collection"],"K_F6pa":["Enregistrement…"],"LLyMkV":["Suivies (",["0"],["1"],")"],"LPAv9E":["il y a ",["days"],"j"],"Lld1jm":["Parlez de vous…"],"MHrjPM":["Titre"],"MKEPCY":["Suivre"],"Mq2B8E":["il y a ",["mins"],"min"],"NR0xa9":["Dites à la communauté pourquoi ça vaut le coup…"],"Nn4kr3":["+ Nouvelle reco"],"Oprv1v":["Mot de passe (min. ",["0"]," caractères)"],"Oz0N9s":["nouveau"],"PiH3UR":["Copié !"],"Pn2B7_":["Mot de passe actuel"],"Pwqkdw":["Chargement…"],"Q6n4F4":["Actualiser les métadonnées"],"QKsaQr":["ou <0>parcourir les fichiers0>"],"QLtPBd":["Aucune reco dans cette collection pour l\'instant."],"R9Khdg":["Auto"],"RCcPrX":["Supprimer cette collection ? Cette action est irréversible."],"RTksSy":["<0>",["0"],"0> a commencé à vous suivre"],"RaKjrM":["Impossible d\'enregistrer la modification"],"RcUHRT":["Suivi"],"SBTElJ":["Recherche…"],"Sad2tK":["Envoi…"],"Sxm8rQ":["Utilisateurs"],"T9bjWt":["<0>",["0"],"0> a été ajouté à <1>",["1"],"1>"],"TM1ZbA":["Collections (",["0"],["1"],")"],"TN382O":["Lien invalide"],"Tv9vbB":["Suivre la collection"],"Tz0i8g":["Paramètres"],"U7u3q-":["+ Nouveau"],"UNMVei":["Mot de passe oublié ?"],"UOZith":["Publication échouée"],"UTiUFs":["Récupération…"],"VCoEm-":["Retour à la connexion"],"V_e7nf":["Définir un nouveau mot de passe"],"VnNJbN":["De collections"],"VyTYmS":["Changer l\'avatar"],"WhimMi":["Échec de la réinitialisation"],"WpXcBJ":["Rien ici pour l\'instant."],"WtkMN8":["Toutes les ",["0","plural",{"one":["#"," reco votée"],"other":["#"," recos votées"]}]," chargées."],"XILg0L":["Invalid email address"],"XJy2oN":["Connexion…"],"Xan6QP":["Nouvelle reco"],"XgRtUf":["Impossible de changer le mot de passe"],"Xi0Mn4":["← Retour au profil"],"XnL-Eu":["Aucun utilisateur ne correspond à « ",["q"]," »."],"Xs2Lez":["Ce lien de réinitialisation est absent ou malformé."],"YK1Dhc":["une publication"],"YaSA2K":["Comment not found"],"YpkCca":["Pas encore de collections suivies."],"ZCpU0u":["Aucune collection ne correspond à « ",["q"]," »."],"ZmD2o6":["Créer et ajouter"],"_3O5R_":["Échec de la demande"],"_84wxb":["Toutes les ",["0","plural",{"one":["#"," reco"],"other":["#"," recos"]}]," chargées."],"_DwR-n":["Création…"],"_R_sGB":["Mot de passe modifié avec succès."],"_aept4":["Publier la réponse"],"_nT6AE":["Nouveau mot de passe"],"_t4W-i":["De personnes"],"aAIQg2":["Apparence"],"aDvLhk":["Ajouter un commentaire…"],"alBtu4":["Invalid or expired invite"],"b3Thhd":["Envoi échoué"],"b8XMJ8":[["visibleCount","plural",{"one":["#"," commentaire"],"other":["#"," commentaires"]}]],"bQhwn-":["Chargement de la collection…"],"cILfnJ":["Supprimer le fichier"],"cYP9Sb":["+ Collection"],"cbeBbZ":["Au moins ",["0"]," caractères"],"cnGeoo":["Supprimer"],"d8DZWS":["Ouvrir la recherche"],"dAs22m":["Remplacer le fichier"],"dEgA5A":["Annuler"],"dMizp8":["Nouvelle collection"],"dSKHAa":["Invalid username or password"],"dTU6Wi":["Password must be at most 128 characters"],"dbc28f":["Pourquoi recommandez-vous ça ?"],"eFSqvc":["Impossible de publier la réponse"],"ePK91l":["Modifier"],"eaUTwS":["Envoyer le lien de réinitialisation"],"ecUA8p":["Aujourd\'hui"],"ef9nPf":["Chargement de la reco…"],"en9o7K":["Impossible de publier le commentaire"],"fGxPOv":["Ajouter une bio…"],"fI-mNw":["Collections"],"f_akpP":["Max 50 Mo"],"fgLNSM":["S\'inscrire"],"gANddk":["Envoi…"],"gGx5tM":["Modification"],"gIQQwD":["Chargement échoué"],"gLfZlz":["Ajouter à la collection"],"gjJ-sb":["Impossible de se connecter au serveur de mises à jour en direct. Les votes et les notifications pourraient ne pas se synchroniser avant la reconnexion."],"hBuUKa":["Changer le mot de passe…"],"hD7w09":["Vous avez tout lu, tout vu, tout bu."],"hJSliC":["<0>",["0"],"0> a publié <1>",["1"],"1>"],"hYgDIe":["Créer"],"he3ygx":["Copier"],"iDNBZe":["Notifications"],"ijVyoK":["Impossible de contacter le serveur. Veuillez réessayer."],"ipYn7W":["Si cette adresse est enregistrée, vous recevrez un lien de réinitialisation sous peu."],"isRobC":["Nouveau"],"jGrTH0":["Not authenticated"],"jbernk":["Chargement du profil…"],"joEmfT":["Serveur inaccessible"],"jrZTZl":["Pas encore de recos. Soyez le premier !"],"kLttbL":["Inscription échouée"],"kYYCil":["File too large (max 50 MB)"],"klOeIX":["Impossible de changer le mot de passe"],"l3JaOO":["Cannot edit a deleted comment"],"lUDifl":["Créées (",["0"],["1"],")"],"lUanmi":["Vous serez notifié lorsque quelqu\'un suit vos collections, vote pour vos recos ou publie du nouveau contenu."],"lY5h1V":[["0","plural",{"one":["#"," reco"],"other":["#"," recos"]}]],"lcfvr_":["Supprimer ce commentaire ?"],"lpIMne":["Les mots de passe ne correspondent pas"],"mt6O6E":["C\'est un mirage."],"nbm5sI":["Aucune reco ne correspond à « ",["q"]," »."],"nrjqON":["Vérification de l\'invitation…"],"nwtY4N":["Une erreur est survenue"],"ogtYkT":["Mot de passe mis à jour"],"pCpd9p":["<0>",["0"],"0> vous a mentionné dans <1>",["where"],"1>"],"pSheLH":["Aucun invité pour le moment."],"pvnfJD":["Sombre"],"qIMfNQ":["Supprimer la collection"],"qbDAcy":["Recommander"],"qgx_78":["Suivez des collections publiques pour voir leurs recos ici."],"qvFa8r":["public"],"rCbqPX":["Ce lien d\'invitation est manquant, expiré ou déjà utilisé."],"rg9pXu":["Recherche échouée"],"rtpJqV":["Recos (",["0"],["1"],")"],"sBZMWb":["Invalid URL"],"sQia9P":["Se connecter"],"sTiqbm":["invité par"],"sdP5Aa":["[supprimé]"],"shHs8T":["Saisissez une recherche."],"siMTjB":["File content is not a recognised image (JPEG, PNG, GIF, WebP)"],"smeBfS":["Invitation invalide"],"tfDRzk":["Enregistrer"],"tqKwXl":["Username must be 1–32 characters and contain only letters, numbers, or underscores"],"tvmuQ0":["Thème de couleur"],"u1lDX2":["Récupération de l\'aperçu…"],"u4pkXs":["Invite already used"],"uD0qXQ":["Déposez un fichier ici"],"uMGUnV":["Pas encore de collections."],"ub1EEL":["modifié ",["0"]],"vJBF1r":["Publication…"],"vLhLLO":["Notifications (",["unreadNotificationCount"]," non lues)"],"vuosjb":["Menu utilisateur"],"vwGkYB":["Password must be at least 8 characters"],"wXO4Tg":["il y a ",["hrs"],"h"],"wbXKOv":["Fichier trop volumineux (max 50 Mo)."],"wdiqRH":["Admin access required"],"wixIgH":["Vous avez déjà un compte ? <0>Se connecter0>"],"x4aBfU":["Dump not found"],"xEWkgZ":["← Retour à toutes les recos"],"xOTzt5":["à l\'instant"],"xPHtx0":["Lancer la recherche"],"xVuNgt":["+ Nouvelle collection"],"xc9O_u":["Supprimer la reco"],"y6sq5j":["Abonné"],"yA_6BX":["Tout voir →"],"yBBtRm":["Suivez des utilisateurs pour voir leurs recos ici."],"yQ2kGp":["Charger plus"],"y_0uwd":["Hier"],"yz7wBu":["Fermer"],"z1uNN0":["Aucun emoji trouvé."],"zVuxvN":["Actualisation…"],"zwBp5t":["Privé"]}',
- ),
-};
+/*eslint-disable*/module.exports={messages:JSON.parse("{\"-K9EZb\":[\"Ajouter un e-mail…\"],\"-OxI15\":[\"Collections suivies\"],\"-Ya-b9\":[\"Enregistrement échoué\"],\"-siMqD\":[\"Journal\"],\"1CalO6\":[\"Style\"],\"1HfJWf\":[\"Rechercher des recos, utilisateurs, collections…\"],\"1cbYY_\":[\"Votés (\",[\"0\"],[\"1\"],\")\"],\"1njn7W\":[\"Clair\"],\"1utXA6\":[\"Recos\"],\"26iNma\":[\"Publier le commentaire\"],\"29VNqC\":[\"Erreur inconnue\"],\"2Hlmdt\":[\"Écrire une réponse…\"],\"2ygf_L\":[\"← Retour\"],\"3KKSM4\":[\"privé\"],\"3yfh3D\":[\"<0>\",[\"0\"],\"0> a suivi votre collection <1>\",[\"1\"],\"1>\"],\"49voTZ\":[[\"label\"],\" (\",[\"count\"],\")\"],\"4B6w_o\":[\"Recommandé !\"],\"4GKuCs\":[\"Connexion échouée\"],\"4HH9iB\":[\"Aucun abonnement pour le moment.\"],\"4RtQ1k\":[\"Ne plus suivre \",[\"targetUsername\"]],\"4c-qBx\":[\"Votre mot de passe a été modifié. Vous pouvez maintenant vous connecter.\"],\"4yj9xV\":[\"Les mises à jour en direct sont temporairement interrompues. Tentative de reconnexion…\"],\"5cC8f2\":[\"Modifié le \",[\"0\"]],\"5oD9f_\":[\"Plus tôt\"],\"6Qly-0\":[\"un commentaire\"],\"6gRgw8\":[\"Réessayer\"],\"7PHCIN\":[\"Annuler la suppression\"],\"7d1a0d\":[\"Public\"],\"7sNhEz\":[\"Nom d'utilisateur\"],\"8XaCG6\":[\" New\"],\"8ZsakT\":[\"Mot de passe\"],\"8pxhI8\":[\"Veuillez sélectionner un fichier.\"],\"9BruTc\":[\"Pourquoi ?\"],\"9l4qcT\":[\"Déposez un fichier de remplacement ici\"],\"9uI_rE\":[\"Annuler\"],\"A0y396\":[\"+ Inviter quelqu'un\"],\"A1taO8\":[\"Rechercher\"],\"AQbgNR\":[\"Suivre \",[\"targetUsername\"]],\"ATGYL1\":[\"Adresse e-mail\"],\"AZctoV\":[[\"0\",\"plural\",{\"one\":[\"#\",\" commentaire\"],\"other\":[\"#\",\" commentaires\"]}]],\"Ade-6d\":[\"Mises à jour en direct indisponibles.\"],\"AeXO77\":[\"Compte\"],\"CI50ct\":[\"Voté\"],\"Cj24wt\":[\"Inscription…\"],\"DPfwMq\":[\"Terminé\"],\"DdeHXH\":[\"Supprimer cette reco ? Cette action est irréversible.\"],\"Dp1JhP\":[\"<0>\",[\"0\"],\"0> a voté pour <1>\",[\"1\"],\"1>\"],\"ECiS12\":[\"Voir la reco →\"],\"ExR0Fr\":[\"L'URL est obligatoire.\"],\"F1O9Ep\":[\"Impossible de contacter le serveur\"],\"F5Js1v\":[\"Ne plus suivre la collection\"],\"FgAxTj\":[\"Se déconnecter\"],\"Fxf4jq\":[\"Description (facultatif)\"],\"GNSsCc\":[\"Impossible de créer la collection\"],\"GbqhrN\":[[\"0\"],\"–\",[\"1\"],\" caractères : lettres, chiffres ou tirets bas\"],\"GptGxg\":[\"Changer le mot de passe\"],\"H8pzW-\":[\"Impossible de mettre à jour l'avatar\"],\"HTLDA4\":[\"Chargement…\"],\"I-x669\":[\"Invités\"],\"IZX7TO\":[\"Impossible de générer une invitation\"],\"IagCbF\":[\"URL\"],\"ImOQa9\":[\"Répondre\"],\"J2eKUI\":[\"Fichier\"],\"JJ-Bhk\":[\"Votre adresse e-mail\"],\"JRQitQ\":[\"Confirmer le nouveau mot de passe\"],\"JXr41k\":[\"<0>\",[\"0\"],\"0> a commenté sur <1>\",[\"1\"],\"1>\"],\"Jd58Fo\":[\"Tendances\"],\"Jf0PuK\":[\"Aller à la connexion\"],\"KDGWg5\":[\"Retirer de la collection\"],\"K_F6pa\":[\"Enregistrement…\"],\"LLyMkV\":[\"Suivies (\",[\"0\"],[\"1\"],\")\"],\"LPAv9E\":[\"il y a \",[\"days\"],\"j\"],\"MHrjPM\":[\"Titre\"],\"MKEPCY\":[\"Suivre\"],\"Mq2B8E\":[\"il y a \",[\"mins\"],\"min\"],\"Nn4kr3\":[\"+ Nouvelle reco\"],\"Oprv1v\":[\"Mot de passe (min. \",[\"0\"],\" caractères)\"],\"Oz0N9s\":[\"nouveau\"],\"PiH3UR\":[\"Copié !\"],\"Pn2B7_\":[\"Mot de passe actuel\"],\"Pwqkdw\":[\"Chargement…\"],\"Q6n4F4\":[\"Actualiser les métadonnées\"],\"QKsaQr\":[\"ou <0>parcourir les fichiers0>\"],\"QLtPBd\":[\"Aucune reco dans cette collection pour l'instant.\"],\"R9Khdg\":[\"Auto\"],\"RCcPrX\":[\"Supprimer cette collection ? Cette action est irréversible.\"],\"RTksSy\":[\"<0>\",[\"0\"],\"0> a commencé à vous suivre\"],\"RaKjrM\":[\"Impossible d'enregistrer la modification\"],\"RcUHRT\":[\"Suivi\"],\"SBTElJ\":[\"Recherche…\"],\"Sad2tK\":[\"Envoi…\"],\"Sxm8rQ\":[\"Utilisateurs\"],\"T9bjWt\":[\"<0>\",[\"0\"],\"0> a été ajouté à <1>\",[\"1\"],\"1>\"],\"TM1ZbA\":[\"Collections (\",[\"0\"],[\"1\"],\")\"],\"TN382O\":[\"Lien invalide\"],\"Tv9vbB\":[\"Suivre la collection\"],\"Tz0i8g\":[\"Paramètres\"],\"U7u3q-\":[\"+ Nouveau\"],\"UNMVei\":[\"Mot de passe oublié ?\"],\"UOZith\":[\"Publication échouée\"],\"UTiUFs\":[\"Récupération…\"],\"VCoEm-\":[\"Retour à la connexion\"],\"V_e7nf\":[\"Définir un nouveau mot de passe\"],\"VnNJbN\":[\"De collections\"],\"VyTYmS\":[\"Changer l'avatar\"],\"WhimMi\":[\"Échec de la réinitialisation\"],\"WpXcBJ\":[\"Rien ici pour l'instant.\"],\"WtkMN8\":[\"Toutes les \",[\"0\",\"plural\",{\"one\":[\"#\",\" reco votée\"],\"other\":[\"#\",\" recos votées\"]}],\" chargées.\"],\"XJy2oN\":[\"Connexion…\"],\"Xan6QP\":[\"Nouvelle reco\"],\"XgRtUf\":[\"Impossible de changer le mot de passe\"],\"Xi0Mn4\":[\"← Retour au profil\"],\"XnL-Eu\":[\"Aucun utilisateur ne correspond à « \",[\"q\"],\" ».\"],\"Xs2Lez\":[\"Ce lien de réinitialisation est absent ou malformé.\"],\"YK1Dhc\":[\"une publication\"],\"YpkCca\":[\"Pas encore de collections suivies.\"],\"ZCpU0u\":[\"Aucune collection ne correspond à « \",[\"q\"],\" ».\"],\"ZmD2o6\":[\"Créer et ajouter\"],\"_3O5R_\":[\"Échec de la demande\"],\"_84wxb\":[\"Toutes les \",[\"0\",\"plural\",{\"one\":[\"#\",\" reco\"],\"other\":[\"#\",\" recos\"]}],\" chargées.\"],\"_DwR-n\":[\"Création…\"],\"_R_sGB\":[\"Mot de passe modifié avec succès.\"],\"_aept4\":[\"Publier la réponse\"],\"_nT6AE\":[\"Nouveau mot de passe\"],\"_t4W-i\":[\"De personnes\"],\"a8Ypyu\":[\" Nouvelle collection\"],\"aAIQg2\":[\"Apparence\"],\"aDvLhk\":[\"Ajouter un commentaire…\"],\"b3Thhd\":[\"Envoi échoué\"],\"b8XMJ8\":[[\"visibleCount\",\"plural\",{\"one\":[\"#\",\" commentaire\"],\"other\":[\"#\",\" commentaires\"]}]],\"bQhwn-\":[\"Chargement de la collection…\"],\"cILfnJ\":[\"Supprimer le fichier\"],\"cYP9Sb\":[\"+ Collection\"],\"cbeBbZ\":[\"Au moins \",[\"0\"],\" caractères\"],\"cnGeoo\":[\"Supprimer\"],\"d8DZWS\":[\"Ouvrir la recherche\"],\"dAs22m\":[\"Remplacer le fichier\"],\"dEgA5A\":[\"Annuler\"],\"dMizp8\":[\"Nouvelle collection\"],\"eFSqvc\":[\"Impossible de publier la réponse\"],\"ePK91l\":[\"Modifier\"],\"eaUTwS\":[\"Envoyer le lien de réinitialisation\"],\"ecUA8p\":[\"Aujourd'hui\"],\"ef9nPf\":[\"Chargement de la reco…\"],\"en9o7K\":[\"Impossible de publier le commentaire\"],\"etFQQS\":[\"Pourquoi on en voudrait ?\"],\"fGxPOv\":[\"Ajouter une bio…\"],\"fI-mNw\":[\"Collections\"],\"f_akpP\":[\"Max 50 Mo\"],\"fgLNSM\":[\"S'inscrire\"],\"gANddk\":[\"Envoi…\"],\"gGx5tM\":[\"Modification\"],\"gIQQwD\":[\"Chargement échoué\"],\"gLfZlz\":[\"Ajouter à la collection\"],\"gjJ-sb\":[\"Impossible de se connecter au serveur de mises à jour en direct. Les votes et les notifications pourraient ne pas se synchroniser avant la reconnexion.\"],\"hBuUKa\":[\"Changer le mot de passe…\"],\"hD7w09\":[\"Vous avez tout lu, tout vu, tout bu.\"],\"hJSliC\":[\"<0>\",[\"0\"],\"0> a publié <1>\",[\"1\"],\"1>\"],\"hYgDIe\":[\"Créer\"],\"he3ygx\":[\"Copier\"],\"i7K_Te\":[\"Qui suis-je ?\"],\"iDNBZe\":[\"Notifications\"],\"ijVyoK\":[\"Impossible de contacter le serveur. Veuillez réessayer.\"],\"ipYn7W\":[\"Si cette adresse est enregistrée, vous recevrez un lien de réinitialisation sous peu.\"],\"isRobC\":[\"Nouveau\"],\"jbernk\":[\"Chargement du profil…\"],\"joEmfT\":[\"Serveur inaccessible\"],\"jrZTZl\":[\"Pas encore de recos. Soyez le premier !\"],\"kLttbL\":[\"Inscription échouée\"],\"klOeIX\":[\"Impossible de changer le mot de passe\"],\"lUDifl\":[\"Créées (\",[\"0\"],[\"1\"],\")\"],\"lUanmi\":[\"Vous serez notifié lorsque quelqu'un suit vos collections, vote pour vos recos ou publie du nouveau contenu.\"],\"lY5h1V\":[[\"0\",\"plural\",{\"one\":[\"#\",\" reco\"],\"other\":[\"#\",\" recos\"]}]],\"lcfvr_\":[\"Supprimer ce commentaire ?\"],\"lpIMne\":[\"Les mots de passe ne correspondent pas\"],\"mt6O6E\":[\"C'est un mirage.\"],\"nbm5sI\":[\"Aucune reco ne correspond à « \",[\"q\"],\" ».\"],\"nrjqON\":[\"Vérification de l'invitation…\"],\"nwtY4N\":[\"Une erreur est survenue\"],\"ogtYkT\":[\"Mot de passe mis à jour\"],\"pCpd9p\":[\"<0>\",[\"0\"],\"0> vous a mentionné dans <1>\",[\"where\"],\"1>\"],\"pSheLH\":[\"Aucun invité pour le moment.\"],\"pvnfJD\":[\"Sombre\"],\"qIMfNQ\":[\"Supprimer la collection\"],\"qbDAcy\":[\"Recommander\"],\"qgx_78\":[\"Suivez des collections publiques pour voir leurs recos ici.\"],\"qvFa8r\":[\"public\"],\"r15pMp\":[\" Reco\"],\"rCbqPX\":[\"Ce lien d'invitation est manquant, expiré ou déjà utilisé.\"],\"rg9pXu\":[\"Recherche échouée\"],\"rtpJqV\":[\"Recos (\",[\"0\"],[\"1\"],\")\"],\"sQia9P\":[\"Se connecter\"],\"sTiqbm\":[\"invité par\"],\"sdP5Aa\":[\"[supprimé]\"],\"shHs8T\":[\"Saisissez une recherche.\"],\"smeBfS\":[\"Invitation invalide\"],\"tfDRzk\":[\"Enregistrer\"],\"tvmuQ0\":[\"Thème de couleur\"],\"u1lDX2\":[\"Récupération de l'aperçu…\"],\"uD0qXQ\":[\"Déposez un fichier ici\"],\"uMGUnV\":[\"Pas encore de collections.\"],\"ub1EEL\":[\"modifié \",[\"0\"]],\"vJBF1r\":[\"Publication…\"],\"vLhLLO\":[\"Notifications (\",[\"unreadNotificationCount\"],\" non lues)\"],\"vuosjb\":[\"Menu utilisateur\"],\"wXO4Tg\":[\"il y a \",[\"hrs\"],\"h\"],\"wbXKOv\":[\"Fichier trop volumineux (max 50 Mo).\"],\"wixIgH\":[\"Vous avez déjà un compte ? <0>Se connecter0>\"],\"xEWkgZ\":[\"← Retour à toutes les recos\"],\"xOTzt5\":[\"à l'instant\"],\"xPHtx0\":[\"Lancer la recherche\"],\"xVuNgt\":[\"+ Nouvelle collection\"],\"xc9O_u\":[\"Supprimer la reco\"],\"xy6Wtk\":[\" Nouvelle reco\"],\"y6sq5j\":[\"Abonné\"],\"yA_6BX\":[\"Tout voir →\"],\"yBBtRm\":[\"Suivez des utilisateurs pour voir leurs recos ici.\"],\"yQ2kGp\":[\"Charger plus\"],\"y_0uwd\":[\"Hier\"],\"yz7wBu\":[\"Fermer\"],\"z1uNN0\":[\"Aucun emoji trouvé.\"],\"zVuxvN\":[\"Actualisation…\"],\"zwBp5t\":[\"Privé\"]}")};
\ No newline at end of file
diff --git a/src/locales/fr.po b/src/locales/fr.po
index 9f32ac3..38ee7c9 100644
--- a/src/locales/fr.po
+++ b/src/locales/fr.po
@@ -13,12 +13,25 @@ msgstr ""
"Last-Translator: \n"
"Language-Team: \n"
+#: src/components/AppHeader.tsx:71
+msgid " Dump"
+msgstr " Reco"
+
+#: src/pages/UserDumps.tsx:114
+#: src/pages/UserPublicProfile.tsx:1332
+msgid " New dump"
+msgstr " Nouvelle reco"
+
+#: src/components/NewPlaylistForm.tsx:30
+msgid " New playlist"
+msgstr " Nouvelle collection"
+
#: src/components/CommentThread.tsx:176
msgid "[deleted]"
msgstr "[supprimé]"
#. placeholder {0}: dump.commentCount
-#: src/components/DumpCard.tsx:82
+#: src/components/DumpCard.tsx:95
msgid "{0, plural, one {# comment} other {# comments}}"
msgstr "{0, plural, one {# commentaire} other {# commentaires}}"
@@ -59,7 +72,7 @@ msgid "← Back"
msgstr "← Retour"
#: src/pages/Dump.tsx:218
-#: src/pages/Dump.tsx:321
+#: src/pages/Dump.tsx:325
#: src/pages/DumpEdit.tsx:170
msgid "← Back to all dumps"
msgstr "← Retour à toutes les recos"
@@ -74,16 +87,15 @@ msgstr "← Retour au profil"
msgid "+ Invite someone"
msgstr "+ Inviter quelqu'un"
-#: src/components/AppHeader.tsx:70
+#: src/components/AppHeader.tsx:71
msgid "+ New"
msgstr "+ Nouveau"
#: src/pages/UserDumps.tsx:114
-#: src/pages/UserPublicProfile.tsx:1330
+#: src/pages/UserPublicProfile.tsx:1332
msgid "+ New dump"
msgstr "+ Nouvelle reco"
-#: src/components/NewPlaylistForm.tsx:30
#: src/components/PlaylistMembershipPanel.tsx:80
msgid "+ New playlist"
msgstr "+ Nouvelle collection"
@@ -94,53 +106,53 @@ msgstr "+ Collection"
#. placeholder {0}: d.commenterUsername
#. placeholder {1}: d.dumpTitle
-#: src/pages/Notifications.tsx:171
+#: src/pages/Notifications.tsx:179
msgid "<0>{0}0> commented on <1>{1}1>"
-msgstr ""
+msgstr "<0>{0}0> a commenté sur <1>{1}1>"
#. placeholder {0}: d.followerUsername
#. placeholder {1}: d.playlistTitle
-#: src/pages/Notifications.tsx:131
+#: src/pages/Notifications.tsx:139
msgid "<0>{0}0> followed your playlist <1>{1}1>"
msgstr "<0>{0}0> a suivi votre collection <1>{1}1>"
#. placeholder {0}: d.mentionerUsername
-#: src/pages/Notifications.tsx:183
+#: src/pages/Notifications.tsx:191
msgid "<0>{0}0> mentioned you in <1>{where}1>"
msgstr "<0>{0}0> vous a mentionné dans <1>{where}1>"
#. placeholder {0}: d.dumperUsername
#. placeholder {1}: d.dumpTitle
-#: src/pages/Notifications.tsx:141
+#: src/pages/Notifications.tsx:149
msgid "<0>{0}0> posted <1>{1}1>"
msgstr "<0>{0}0> a publié <1>{1}1>"
#. placeholder {0}: d.followerUsername
-#: src/pages/Notifications.tsx:122
+#: src/pages/Notifications.tsx:130
msgid "<0>{0}0> started following you"
msgstr "<0>{0}0> a commencé à vous suivre"
#. placeholder {0}: d.voterUsername
#. placeholder {1}: d.dumpTitle
-#: src/pages/Notifications.tsx:161
+#: src/pages/Notifications.tsx:169
msgid "<0>{0}0> upvoted <1>{1}1>"
msgstr "<0>{0}0> a voté pour <1>{1}1>"
#. placeholder {0}: d.dumpTitle
#. placeholder {1}: d.playlistTitle
-#: src/pages/Notifications.tsx:151
+#: src/pages/Notifications.tsx:159
msgid "<0>{0}0> was added to <1>{1}1>"
msgstr "<0>{0}0> a été ajouté à <1>{1}1>"
-#: src/pages/Notifications.tsx:181
+#: src/pages/Notifications.tsx:189
msgid "a comment"
msgstr "un commentaire"
-#: src/pages/Notifications.tsx:181
+#: src/pages/Notifications.tsx:189
msgid "a post"
msgstr "une publication"
-#: src/pages/UserPublicProfile.tsx:1215
+#: src/pages/UserPublicProfile.tsx:1217
msgid "Account"
msgstr "Compte"
@@ -173,7 +185,7 @@ msgstr "Toutes les {0, plural, one {# reco votée} other {# recos votées}} char
msgid "Already have an account? <0>Log in0>"
msgstr "Vous avez déjà un compte ? <0>Se connecter0>"
-#: src/pages/UserPublicProfile.tsx:1234
+#: src/pages/UserPublicProfile.tsx:1236
msgid "Appearance"
msgstr "Apparence"
@@ -183,7 +195,7 @@ msgstr "Apparence"
msgid "At least {0} characters"
msgstr "Au moins {0} caractères"
-#: src/pages/UserPublicProfile.tsx:1268
+#: src/pages/UserPublicProfile.tsx:1270
msgid "Auto"
msgstr "Auto"
@@ -224,7 +236,7 @@ msgstr "Changer l'avatar"
msgid "Change password"
msgstr "Changer le mot de passe"
-#: src/pages/UserPublicProfile.tsx:1227
+#: src/pages/UserPublicProfile.tsx:1229
msgid "Change password…"
msgstr "Changer le mot de passe…"
@@ -237,7 +249,7 @@ msgstr "Vérification de l'invitation…"
msgid "Close"
msgstr "Fermer"
-#: src/pages/UserPublicProfile.tsx:1260
+#: src/pages/UserPublicProfile.tsx:1262
msgid "Color scheme"
msgstr "Thème de couleur"
@@ -291,7 +303,7 @@ msgstr "Création…"
msgid "Current password"
msgstr "Mot de passe actuel"
-#: src/pages/UserPublicProfile.tsx:1282
+#: src/pages/UserPublicProfile.tsx:1284
msgid "Dark"
msgstr "Sombre"
@@ -353,22 +365,22 @@ msgstr "Recommandé !"
#: src/pages/Search.tsx:172
#: src/pages/UserDumps.tsx:107
-#: src/pages/UserPublicProfile.tsx:967
+#: src/pages/UserPublicProfile.tsx:968
msgid "Dumps"
msgstr "Recos"
#. placeholder {0}: dumps.items.length
#. placeholder {1}: dumps.hasMore ? "+" : ""
-#: src/pages/UserPublicProfile.tsx:1004
+#: src/pages/UserPublicProfile.tsx:1006
msgid "Dumps ({0}{1})"
msgstr "Recos ({0}{1})"
-#: src/pages/Notifications.tsx:360
+#: src/pages/Notifications.tsx:368
msgid "Earlier"
msgstr "Plus tôt"
#: src/components/CommentThread.tsx:310
-#: src/pages/Dump.tsx:317
+#: src/pages/Dump.tsx:321
#: src/pages/PlaylistDetail.tsx:706
msgid "Edit"
msgstr "Modifier"
@@ -377,7 +389,7 @@ msgstr "Modifier"
#. placeholder {0}: relativeTime(dump.updatedAt)
#. placeholder {0}: relativeTime(playlist.updatedAt)
#: src/components/CommentThread.tsx:237
-#: src/pages/Dump.tsx:278
+#: src/pages/Dump.tsx:281
#: src/pages/PlaylistDetail.tsx:779
msgid "edited {0}"
msgstr "modifié {0}"
@@ -386,7 +398,7 @@ msgstr "modifié {0}"
#. placeholder {0}: dump.updatedAt.toLocaleString()
#. placeholder {0}: playlist.updatedAt.toLocaleString()
#: src/components/CommentThread.tsx:235
-#: src/pages/Dump.tsx:276
+#: src/pages/Dump.tsx:279
#: src/pages/PlaylistDetail.tsx:776
msgid "Edited {0}"
msgstr "Modifié le {0}"
@@ -422,10 +434,10 @@ msgstr "Impossible de générer une invitation"
#: src/pages/index/HotFeed.tsx:36
#: src/pages/index/JournalFeed.tsx:48
#: src/pages/index/NewFeed.tsx:36
-#: src/pages/Notifications.tsx:334
-#: src/pages/UserPublicProfile.tsx:1106
-#: src/pages/UserPublicProfile.tsx:1148
-#: src/pages/UserPublicProfile.tsx:1193
+#: src/pages/Notifications.tsx:342
+#: src/pages/UserPublicProfile.tsx:1108
+#: src/pages/UserPublicProfile.tsx:1150
+#: src/pages/UserPublicProfile.tsx:1195
msgid "Failed to load"
msgstr "Chargement échoué"
@@ -495,8 +507,8 @@ msgstr "Suivez des collections publiques pour voir leurs recos ici."
msgid "Follow some users to see their dumps here."
msgstr "Suivez des utilisateurs pour voir leurs recos ici."
-#: src/components/FeedTabBar.tsx:47
-#: src/pages/UserPublicProfile.tsx:981
+#: src/components/FeedTabBar.tsx:48
+#: src/pages/UserPublicProfile.tsx:982
msgid "Followed"
msgstr "Suivi"
@@ -506,13 +518,13 @@ msgstr "Suivi"
msgid "Followed ({0}{1})"
msgstr "Suivies ({0}{1})"
-#: src/pages/UserPublicProfile.tsx:1137
+#: src/pages/UserPublicProfile.tsx:1139
msgid "Followed playlists"
msgstr "Collections suivies"
#: src/components/FollowButton.tsx:37
#: src/components/FollowButton.tsx:64
-#: src/pages/UserPublicProfile.tsx:1095
+#: src/pages/UserPublicProfile.tsx:1097
msgid "Following"
msgstr "Abonné"
@@ -532,7 +544,7 @@ msgstr "De collections"
msgid "Go to login"
msgstr "Aller à la connexion"
-#: src/components/FeedTabBar.tsx:25
+#: src/components/FeedTabBar.tsx:26
msgid "Hot"
msgstr "Tendances"
@@ -552,12 +564,12 @@ msgstr "Lien invalide"
msgid "invited by"
msgstr "invité par"
-#: src/pages/UserPublicProfile.tsx:988
-#: src/pages/UserPublicProfile.tsx:1182
+#: src/pages/UserPublicProfile.tsx:989
+#: src/pages/UserPublicProfile.tsx:1184
msgid "Invitees"
msgstr "Invités"
-#: src/components/FeedTabBar.tsx:39
+#: src/components/FeedTabBar.tsx:40
msgid "Journal"
msgstr "Journal"
@@ -565,7 +577,7 @@ msgstr "Journal"
msgid "just now"
msgstr "à l'instant"
-#: src/pages/UserPublicProfile.tsx:1275
+#: src/pages/UserPublicProfile.tsx:1277
msgid "Light"
msgstr "Clair"
@@ -573,11 +585,11 @@ msgstr "Clair"
msgid "Live updates are temporarily disconnected. Trying to reconnect…"
msgstr "Les mises à jour en direct sont temporairement interrompues. Tentative de reconnexion…"
-#: src/components/AppHeader.tsx:87
+#: src/components/AppHeader.tsx:88
msgid "Live updates unavailable."
msgstr "Mises à jour en direct indisponibles."
-#: src/pages/Notifications.tsx:407
+#: src/pages/Notifications.tsx:415
msgid "Load more"
msgstr "Charger plus"
@@ -612,18 +624,18 @@ msgstr "Chargement du profil…"
#: src/pages/index/HotFeed.tsx:32
#: src/pages/index/JournalFeed.tsx:44
#: src/pages/index/NewFeed.tsx:32
-#: src/pages/Notifications.tsx:330
-#: src/pages/Notifications.tsx:406
+#: src/pages/Notifications.tsx:338
+#: src/pages/Notifications.tsx:414
#: src/pages/UserDumps.tsx:51
#: src/pages/UserPlaylists.tsx:342
-#: src/pages/UserPublicProfile.tsx:1100
-#: src/pages/UserPublicProfile.tsx:1142
-#: src/pages/UserPublicProfile.tsx:1187
+#: src/pages/UserPublicProfile.tsx:1102
+#: src/pages/UserPublicProfile.tsx:1144
+#: src/pages/UserPublicProfile.tsx:1189
#: src/pages/UserUpvoted.tsx:123
msgid "Loading…"
msgstr "Chargement…"
-#: src/components/AppHeader.tsx:77
+#: src/components/AppHeader.tsx:78
#: src/pages/UserLogin.tsx:87
#: src/pages/UserLogin.tsx:117
msgid "Log in"
@@ -646,11 +658,11 @@ msgstr "Connexion échouée"
msgid "Max 50 MB"
msgstr "Max 50 Mo"
-#: src/pages/Notifications.tsx:323
+#: src/pages/Notifications.tsx:331
msgid "new"
msgstr "nouveau"
-#: src/components/FeedTabBar.tsx:32
+#: src/components/FeedTabBar.tsx:33
msgid "New"
msgstr "Nouveau"
@@ -686,11 +698,11 @@ msgid "No emoji found."
msgstr "Aucun emoji trouvé."
#: src/pages/UserPlaylists.tsx:439
-#: src/pages/UserPublicProfile.tsx:1155
+#: src/pages/UserPublicProfile.tsx:1157
msgid "No followed playlists yet."
msgstr "Pas encore de collections suivies."
-#: src/pages/UserPublicProfile.tsx:1200
+#: src/pages/UserPublicProfile.tsx:1202
msgid "No invitees yet."
msgstr "Aucun invité pour le moment."
@@ -700,7 +712,7 @@ msgstr "Aucune collection ne correspond à « {q} »."
#: src/components/PlaylistMembershipPanel.tsx:34
#: src/pages/UserPlaylists.tsx:397
-#: src/pages/UserPublicProfile.tsx:1066
+#: src/pages/UserPublicProfile.tsx:1068
msgid "No playlists yet."
msgstr "Pas encore de collections."
@@ -708,20 +720,20 @@ msgstr "Pas encore de collections."
msgid "No users match \"{q}\"."
msgstr "Aucun utilisateur ne correspond à « {q} »."
-#: src/pages/UserPublicProfile.tsx:1113
+#: src/pages/UserPublicProfile.tsx:1115
msgid "Not following anyone yet."
msgstr "Aucun abonnement pour le moment."
-#: src/pages/Notifications.tsx:341
+#: src/pages/Notifications.tsx:349
#: src/pages/UserDumps.tsx:123
-#: src/pages/UserPublicProfile.tsx:1340
-#: src/pages/UserPublicProfile.tsx:1463
+#: src/pages/UserPublicProfile.tsx:1342
+#: src/pages/UserPublicProfile.tsx:1465
#: src/pages/UserUpvoted.tsx:195
msgid "Nothing here yet."
msgstr "Rien ici pour l'instant."
#: src/components/NotificationBell.tsx:42
-#: src/pages/Notifications.tsx:319
+#: src/pages/Notifications.tsx:327
msgid "Notifications"
msgstr "Notifications"
@@ -738,7 +750,7 @@ msgid "or <0>browse files0>"
msgstr "ou <0>parcourir les fichiers0>"
#: src/pages/UserLogin.tsx:106
-#: src/pages/UserPublicProfile.tsx:1220
+#: src/pages/UserPublicProfile.tsx:1222
msgid "Password"
msgstr "Mot de passe"
@@ -760,17 +772,17 @@ msgstr "Mot de passe mis à jour"
msgid "Passwords do not match"
msgstr "Les mots de passe ne correspondent pas"
-#: src/components/AppHeader.tsx:53
+#: src/components/AppHeader.tsx:54
#: src/components/UserMenu.tsx:62
#: src/pages/Search.tsx:175
#: src/pages/UserPlaylists.tsx:368
-#: src/pages/UserPublicProfile.tsx:974
+#: src/pages/UserPublicProfile.tsx:975
msgid "Playlists"
msgstr "Collections"
#. placeholder {0}: playlists.items.length
#. placeholder {1}: playlists.hasMore ? "+" : ""
-#: src/pages/UserPublicProfile.tsx:1035
+#: src/pages/UserPublicProfile.tsx:1037
msgid "Playlists ({0}{1})"
msgstr "Collections ({0}{1})"
@@ -791,10 +803,10 @@ msgstr "Publier la réponse"
msgid "Posting…"
msgstr "Publication…"
-#: src/components/DumpCard.tsx:91
+#: src/components/DumpCard.tsx:104
#: src/components/PlaylistCard.tsx:73
#: src/components/PlaylistMembershipPanel.tsx:55
-#: src/pages/Dump.tsx:284
+#: src/pages/Dump.tsx:287
#: src/pages/PlaylistDetail.tsx:759
msgid "private"
msgstr "privé"
@@ -909,7 +921,7 @@ msgstr "Envoyer le lien de réinitialisation"
msgid "Sending…"
msgstr "Envoi…"
-#: src/components/AppHeader.tsx:68
+#: src/components/AppHeader.tsx:69
msgid "Server unreachable"
msgstr "Serveur inaccessible"
@@ -918,7 +930,7 @@ msgstr "Serveur inaccessible"
msgid "Set new password"
msgstr "Définir un nouveau mot de passe"
-#: src/pages/UserPublicProfile.tsx:996
+#: src/pages/UserPublicProfile.tsx:997
msgid "Settings"
msgstr "Paramètres"
@@ -926,7 +938,7 @@ msgstr "Paramètres"
msgid "Something went wrong"
msgstr "Une erreur est survenue"
-#: src/pages/UserPublicProfile.tsx:1239
+#: src/pages/UserPublicProfile.tsx:1241
msgid "Style"
msgstr "Style"
@@ -934,15 +946,6 @@ msgstr "Style"
msgid "Submit search"
msgstr "Lancer la recherche"
-#: src/pages/UserPublicProfile.tsx:899
-msgid "Tell people about yourself…"
-msgstr "Parlez de vous…"
-
-#: src/components/DumpCreateModal.tsx:383
-#: src/pages/DumpEdit.tsx:266
-msgid "Tell the community what makes this worth their time..."
-msgstr "Dites à la communauté pourquoi ça vaut le coup…"
-
#: src/pages/UserRegister.tsx:107
msgid "This invite link is missing, expired, or already used."
msgstr "Ce lien d'invitation est manquant, expiré ou déjà utilisé."
@@ -959,7 +962,7 @@ msgstr "Ce lien de réinitialisation est absent ou malformé."
msgid "Title"
msgstr "Titre"
-#: src/pages/Notifications.tsx:357
+#: src/pages/Notifications.tsx:365
msgid "Today"
msgstr "Aujourd'hui"
@@ -994,7 +997,7 @@ msgstr "Voté"
#. placeholder {0}: votes.items.length
#. placeholder {1}: votes.hasMore ? "+" : ""
-#: src/pages/UserPublicProfile.tsx:1015
+#: src/pages/UserPublicProfile.tsx:1017
msgid "Upvoted ({0}{1})"
msgstr "Votés ({0}{1})"
@@ -1020,11 +1023,11 @@ msgstr "Nom d'utilisateur"
msgid "Users"
msgstr "Utilisateurs"
-#: src/pages/UserPublicProfile.tsx:1085
-#: src/pages/UserPublicProfile.tsx:1128
-#: src/pages/UserPublicProfile.tsx:1170
-#: src/pages/UserPublicProfile.tsx:1361
-#: src/pages/UserPublicProfile.tsx:1493
+#: src/pages/UserPublicProfile.tsx:1087
+#: src/pages/UserPublicProfile.tsx:1130
+#: src/pages/UserPublicProfile.tsx:1172
+#: src/pages/UserPublicProfile.tsx:1363
+#: src/pages/UserPublicProfile.tsx:1495
msgid "View all →"
msgstr "Tout voir →"
@@ -1032,20 +1035,29 @@ msgstr "Tout voir →"
msgid "View dump →"
msgstr "Voir la reco →"
+#: src/components/DumpCreateModal.tsx:383
+#: src/pages/DumpEdit.tsx:266
+msgid "What makes it worth it?"
+msgstr "Pourquoi on en voudrait ?"
+
+#: src/pages/UserPublicProfile.tsx:899
+msgid "Who am I?"
+msgstr "Qui suis-je ?"
+
#: src/components/DumpCreateModal.tsx:376
#: src/pages/DumpEdit.tsx:260
-msgid "Why are you dumping this?"
-msgstr "Pourquoi recommandez-vous ça ?"
+msgid "Why?"
+msgstr "Pourquoi ?"
#: src/components/CommentThread.tsx:342
msgid "Write a reply…"
msgstr "Écrire une réponse…"
-#: src/pages/Notifications.tsx:359
+#: src/pages/Notifications.tsx:367
msgid "Yesterday"
msgstr "Hier"
-#: src/pages/Notifications.tsx:344
+#: src/pages/Notifications.tsx:352
msgid "You'll be notified when someone follows your playlists, upvotes your dumps, or posts new content."
msgstr "Vous serez notifié lorsque quelqu'un suit vos collections, vote pour vos recos ou publie du nouveau contenu."
diff --git a/src/pages/Dump.tsx b/src/pages/Dump.tsx
index 0959f49..4c34a93 100644
--- a/src/pages/Dump.tsx
+++ b/src/pages/Dump.tsx
@@ -232,24 +232,27 @@ export function Dump() {
{/* Post header */}