v3: fixed docker image, updated locales
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 39s

This commit is contained in:
khannurien
2026-06-21 14:38:17 +00:00
parent 7afb5d3f07
commit 3d03c9e69c
12 changed files with 451 additions and 357 deletions

View File

@@ -6,7 +6,7 @@ try {
console.log("Database already exists, skipping initialization."); console.log("Database already exists, skipping initialization.");
} catch { } catch {
console.log("Initializing database from schema..."); console.log("Initializing database from schema...");
const schema = Deno.readTextFileSync("api/sql/schema.sql"); const schema = Deno.readTextFileSync("api/db/schema.sql");
const db = new DatabaseSync(DB_PATH); const db = new DatabaseSync(DB_PATH);
db.exec(schema); db.exec(schema);
db.close(); db.close();

View File

@@ -15,7 +15,7 @@ import {
ORPHANED_ATTACHMENTS_RETENTION_HOURS, ORPHANED_ATTACHMENTS_RETENTION_HOURS,
UNUSED_INVITES_RETENTION_DAYS, UNUSED_INVITES_RETENTION_DAYS,
} from "../config.ts"; } from "../config.ts";
import { runMigrations } from "../sql/migrate.ts"; import { runMigrations } from "../db/migrate.ts";
export const db = new DatabaseSync(DB_PATH); export const db = new DatabaseSync(DB_PATH);
db.exec("PRAGMA foreign_keys = ON;"); db.exec("PRAGMA foreign_keys = ON;");

View File

@@ -6,7 +6,7 @@
"serve": "deno task build && deno task server:start", "serve": "deno task build && deno task server:start",
"i18n:extract": "deno run -A scripts/lingui-extract.ts", "i18n:extract": "deno run -A scripts/lingui-extract.ts",
"i18n:compile": "deno run -A scripts/lingui-compile.ts", "i18n:compile": "deno run -A scripts/lingui-compile.ts",
"start": "deno run -A api/sql/init.ts && deno run -A api/main.ts" "start": "deno run -A api/db/init.ts && deno run -A api/main.ts"
}, },
"nodeModulesDir": "auto", "nodeModulesDir": "auto",
"compilerOptions": { "compilerOptions": {

View File

@@ -1,4 +1,5 @@
import { useRef, useState } from "react"; import { useRef, useState } from "react";
import { t } from "@lingui/core/macro";
import { API_URL } from "../config/api.ts"; import { API_URL } from "../config/api.ts";
import { UserListPopover } from "./UserListPopover.tsx"; import { UserListPopover } from "./UserListPopover.tsx";
@@ -26,8 +27,8 @@ export function LikeButton(
}`} }`}
onClick={() => liked ? onUnlike(commentId) : onLike(commentId)} onClick={() => liked ? onUnlike(commentId) : onLike(commentId)}
disabled={disabled} disabled={disabled}
aria-label={liked ? "Remove like" : "Like"} aria-label={liked ? t`Remove like` : t`Like`}
title={disabled ? "Log in to like" : undefined} title={disabled ? t`Log in to like` : undefined}
> >
{" "} {" "}
{count > 0 {count > 0

View File

@@ -1,4 +1,5 @@
import { useRef, useState } from "react"; import { useRef, useState } from "react";
import { t } from "@lingui/core/macro";
import { API_URL } from "../config/api.ts"; import { API_URL } from "../config/api.ts";
import { UserListPopover } from "./UserListPopover.tsx"; import { UserListPopover } from "./UserListPopover.tsx";
@@ -24,8 +25,8 @@ export function VoteButton(
className={`vote-btn${voted ? " vote-btn--active" : ""}`} className={`vote-btn${voted ? " vote-btn--active" : ""}`}
onClick={() => voted ? onRemove(dumpId) : onCast(dumpId)} onClick={() => voted ? onRemove(dumpId) : onCast(dumpId)}
disabled={disabled} disabled={disabled}
aria-label={voted ? "Remove vote" : "Upvote"} aria-label={voted ? t`Remove vote` : t`Upvote`}
title={disabled ? "Log in to vote" : undefined} title={disabled ? t`Log in to vote` : undefined}
> >
{" "} {" "}
{count > 0 {count > 0

File diff suppressed because one or more lines are too long

View File

@@ -13,13 +13,13 @@ msgstr ""
"Language-Team: \n" "Language-Team: \n"
"Plural-Forms: \n" "Plural-Forms: \n"
#: src/components/CommentThread.tsx:176 #: src/components/CommentThread.tsx:181
msgid "[deleted]" msgid "[deleted]"
msgstr "[deleted]" msgstr "[deleted]"
#. placeholder {0}: dump.commentCount #. placeholder {0}: dump.commentCount
#: src/components/DumpCard.tsx:95 #: src/components/DumpCard.tsx:95
#: src/components/JournalCard.tsx:78 #: src/components/JournalCard.tsx:96
msgid "{0, plural, one {# comment} other {# comments}}" msgid "{0, plural, one {# comment} other {# comments}}"
msgstr "{0, plural, one {# comment} other {# comments}}" msgstr "{0, plural, one {# comment} other {# comments}}"
@@ -50,7 +50,7 @@ msgstr "{label} ({count})"
msgid "{mins}m ago" msgid "{mins}m ago"
msgstr "{mins}m ago" msgstr "{mins}m ago"
#: src/components/CommentThread.tsx:459 #: src/components/CommentThread.tsx:472
msgid "{visibleCount, plural, one {# comment} other {# comments}}" msgid "{visibleCount, plural, one {# comment} other {# comments}}"
msgstr "{visibleCount, plural, one {# comment} other {# comments}}" msgstr "{visibleCount, plural, one {# comment} other {# comments}}"
@@ -59,9 +59,9 @@ msgstr "{visibleCount, plural, one {# comment} other {# comments}}"
msgid "← Back" msgid "← Back"
msgstr "← Back" msgstr "← Back"
#: src/pages/Dump.tsx:218 #: src/pages/Dump.tsx:224
#: src/pages/Dump.tsx:325 #: src/pages/Dump.tsx:427
#: src/pages/DumpEdit.tsx:170 #: src/pages/DumpEdit.tsx:177
msgid "← Back to all dumps" msgid "← Back to all dumps"
msgstr "← Back to all dumps" msgstr "← Back to all dumps"
@@ -84,72 +84,78 @@ msgstr "+ New dump"
msgid "+ New playlist" msgid "+ New playlist"
msgstr "+ New playlist" msgstr "+ New playlist"
#: src/pages/Dump.tsx:250 #: src/pages/Dump.tsx:291
msgid "+ Playlist" msgid "+ Playlist"
msgstr "+ Playlist" msgstr "+ Playlist"
#. placeholder {0}: d.commenterUsername #. placeholder {0}: d.commenterUsername
#. placeholder {1}: d.dumpTitle #. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:179 #: src/pages/Notifications.tsx:194
msgid "<0>{0}</0> commented on <1>{1}</1>" msgid "<0>{0}</0> commented on <1>{1}</1>"
msgstr "<0>{0}</0> commented on <1>{1}</1>" msgstr "<0>{0}</0> commented on <1>{1}</1>"
#. placeholder {0}: d.followerUsername #. placeholder {0}: d.followerUsername
#. placeholder {1}: d.playlistTitle #. placeholder {1}: d.playlistTitle
#: src/pages/Notifications.tsx:139 #: src/pages/Notifications.tsx:154
msgid "<0>{0}</0> followed your playlist <1>{1}</1>" msgid "<0>{0}</0> followed your playlist <1>{1}</1>"
msgstr "<0>{0}</0> followed your playlist <1>{1}</1>" msgstr "<0>{0}</0> followed your playlist <1>{1}</1>"
#. placeholder {0}: d.likerUsername
#. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:204
msgid "<0>{0}</0> liked your comment on <1>{1}</1>"
msgstr "<0>{0}</0> liked your comment on <1>{1}</1>"
#. placeholder {0}: d.mentionerUsername #. placeholder {0}: d.mentionerUsername
#: src/pages/Notifications.tsx:191 #: src/pages/Notifications.tsx:216
msgid "<0>{0}</0> mentioned you in <1>{where}</1>" msgid "<0>{0}</0> mentioned you in <1>{where}</1>"
msgstr "<0>{0}</0> mentioned you in <1>{where}</1>" msgstr "<0>{0}</0> mentioned you in <1>{where}</1>"
#. placeholder {0}: d.dumperUsername #. placeholder {0}: d.dumperUsername
#. placeholder {1}: d.dumpTitle #. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:149 #: src/pages/Notifications.tsx:164
msgid "<0>{0}</0> posted <1>{1}</1>" msgid "<0>{0}</0> posted <1>{1}</1>"
msgstr "<0>{0}</0> posted <1>{1}</1>" msgstr "<0>{0}</0> posted <1>{1}</1>"
#. placeholder {0}: d.followerUsername #. placeholder {0}: d.followerUsername
#: src/pages/Notifications.tsx:130 #: src/pages/Notifications.tsx:145
msgid "<0>{0}</0> started following you" msgid "<0>{0}</0> started following you"
msgstr "<0>{0}</0> started following you" msgstr "<0>{0}</0> started following you"
#. placeholder {0}: d.voterUsername #. placeholder {0}: d.voterUsername
#. placeholder {1}: d.dumpTitle #. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:169 #: src/pages/Notifications.tsx:184
msgid "<0>{0}</0> upvoted <1>{1}</1>" msgid "<0>{0}</0> upvoted <1>{1}</1>"
msgstr "<0>{0}</0> upvoted <1>{1}</1>" msgstr "<0>{0}</0> upvoted <1>{1}</1>"
#. placeholder {0}: d.dumpTitle #. placeholder {0}: d.dumpTitle
#. placeholder {1}: d.playlistTitle #. placeholder {1}: d.playlistTitle
#: src/pages/Notifications.tsx:159 #: src/pages/Notifications.tsx:174
msgid "<0>{0}</0> was added to <1>{1}</1>" msgid "<0>{0}</0> was added to <1>{1}</1>"
msgstr "<0>{0}</0> was added to <1>{1}</1>" msgstr "<0>{0}</0> was added to <1>{1}</1>"
#: src/pages/Notifications.tsx:189 #: src/pages/Notifications.tsx:214
msgid "a comment" msgid "a comment"
msgstr "a comment" msgstr "a comment"
#: src/pages/Notifications.tsx:189 #: src/pages/Notifications.tsx:214
msgid "a post" msgid "a post"
msgstr "a post" msgstr "a post"
#: src/pages/UserPublicProfile.tsx:1193 #: src/pages/UserPublicProfile.tsx:1196
msgid "Account" msgid "Account"
msgstr "Account" msgstr "Account"
#: src/components/CommentThread.tsx:479 #: src/components/CommentThread.tsx:492
msgid "Add a comment…" msgid "Add a comment…"
msgstr "Add a comment…" msgstr "Add a comment…"
#: src/pages/UserPublicProfile.tsx:860 #: src/pages/UserPublicProfile.tsx:863
msgid "Add email…" msgid "Add email…"
msgstr "Add email…" msgstr "Add email…"
#: src/components/AddToPlaylistModal.tsx:64 #: src/components/AddToPlaylistModal.tsx:64
#: src/components/DumpCreateModal.tsx:277 #: src/components/DumpCreateModal.tsx:287
msgid "Add to playlist" msgid "Add to playlist"
msgstr "Add to playlist" msgstr "Add to playlist"
@@ -165,7 +171,7 @@ msgstr "All {0, plural, one {# upvoted dump} other {# upvoted dumps}} loaded."
msgid "Already have an account? <0>Log in</0>" msgid "Already have an account? <0>Log in</0>"
msgstr "Already have an account? <0>Log in</0>" msgstr "Already have an account? <0>Log in</0>"
#: src/pages/UserPublicProfile.tsx:1212 #: src/pages/UserPublicProfile.tsx:1215
msgid "Appearance" msgid "Appearance"
msgstr "Appearance" msgstr "Appearance"
@@ -175,7 +181,7 @@ msgstr "Appearance"
msgid "At least {0} characters" msgid "At least {0} characters"
msgstr "At least {0} characters" msgstr "At least {0} characters"
#: src/pages/UserPublicProfile.tsx:1246 #: src/pages/UserPublicProfile.tsx:1249
msgid "Auto" msgid "Auto"
msgstr "Auto" msgstr "Auto"
@@ -184,22 +190,23 @@ msgstr "Auto"
msgid "Back to login" msgid "Back to login"
msgstr "Back to login" msgstr "Back to login"
#: src/contexts/WSProvider.tsx:168 #: src/contexts/WSProvider.tsx:211
#: src/contexts/WSProvider.tsx:360 #: src/contexts/WSProvider.tsx:438
msgid "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects." msgid "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects."
msgstr "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects." msgstr "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects."
#: src/components/ChangePasswordModal.tsx:168 #: src/components/ChangePasswordModal.tsx:168
#: src/components/CommentThread.tsx:281 #: src/components/CommentThread.tsx:286
#: src/components/CommentThread.tsx:373 #: src/components/CommentThread.tsx:386
#: src/components/CommentThread.tsx:510 #: src/components/CommentThread.tsx:523
#: src/components/ConfirmModal.tsx:32 #: src/components/ConfirmModal.tsx:32
#: src/components/DumpCreateModal.tsx:415 #: src/components/DumpCreateModal.tsx:461
#: src/components/PlaylistCreateForm.tsx:112 #: src/components/PlaylistCreateForm.tsx:112
#: src/pages/DumpEdit.tsx:299 #: src/pages/Dump.tsx:330
#: src/pages/DumpEdit.tsx:320
#: src/pages/PlaylistDetail.tsx:680 #: src/pages/PlaylistDetail.tsx:680
#: src/pages/UserPublicProfile.tsx:842 #: src/pages/UserPublicProfile.tsx:842
#: src/pages/UserPublicProfile.tsx:921 #: src/pages/UserPublicProfile.tsx:924
msgid "Cancel" msgid "Cancel"
msgstr "Cancel" msgstr "Cancel"
@@ -207,7 +214,7 @@ msgstr "Cancel"
msgid "Cancel removal" msgid "Cancel removal"
msgstr "Cancel removal" msgstr "Cancel removal"
#: src/components/AppHeader.tsx:62 #: src/components/AppHeader.tsx:65
msgid "Cancel search" msgid "Cancel search"
msgstr "Cancel search" msgstr "Cancel search"
@@ -220,7 +227,7 @@ msgstr "Change avatar"
msgid "Change password" msgid "Change password"
msgstr "Change password" msgstr "Change password"
#: src/pages/UserPublicProfile.tsx:1205 #: src/pages/UserPublicProfile.tsx:1208
msgid "Change password…" msgid "Change password…"
msgstr "Change password…" msgstr "Change password…"
@@ -233,7 +240,7 @@ msgstr "Checking invite…"
msgid "Close" msgid "Close"
msgstr "Close" msgstr "Close"
#: src/pages/UserPublicProfile.tsx:1238 #: src/pages/UserPublicProfile.tsx:1241
msgid "Color scheme" msgid "Color scheme"
msgstr "Color scheme" msgstr "Color scheme"
@@ -259,9 +266,13 @@ msgstr "Could not change password"
msgid "Could not connect to server" msgid "Could not connect to server"
msgstr "Could not connect to server" msgstr "Could not connect to server"
#: src/components/CommentThread.tsx:111 #: src/components/UserListPopover.tsx:100
#: src/components/CommentThread.tsx:153 msgid "Could not load."
#: src/components/CommentThread.tsx:448 msgstr "Could not load."
#: src/components/CommentThread.tsx:116
#: src/components/CommentThread.tsx:158
#: src/components/CommentThread.tsx:461
msgid "Could not reach the server. Please try again." msgid "Could not reach the server. Please try again."
msgstr "Could not reach the server. Please try again." msgstr "Could not reach the server. Please try again."
@@ -287,19 +298,19 @@ msgstr "Creating…"
msgid "Current password" msgid "Current password"
msgstr "Current password" msgstr "Current password"
#: src/pages/UserPublicProfile.tsx:1260 #: src/pages/UserPublicProfile.tsx:1263
msgid "Dark" msgid "Dark"
msgstr "Dark" msgstr "Dark"
#: src/components/CommentThread.tsx:319 #: src/components/CommentThread.tsx:332
#: src/components/CommentThread.tsx:325 #: src/components/CommentThread.tsx:338
#: src/components/ConfirmModal.tsx:16 #: src/components/ConfirmModal.tsx:16
#: src/pages/PlaylistDetail.tsx:687 #: src/pages/PlaylistDetail.tsx:687
msgid "Delete" msgid "Delete"
msgstr "Delete" msgstr "Delete"
#: src/pages/DumpEdit.tsx:295 #: src/pages/DumpEdit.tsx:316
#: src/pages/DumpEdit.tsx:315 #: src/pages/DumpEdit.tsx:338
msgid "Delete dump" msgid "Delete dump"
msgstr "Delete dump" msgstr "Delete dump"
@@ -309,11 +320,11 @@ msgstr "Delete dump"
msgid "Delete playlist" msgid "Delete playlist"
msgstr "Delete playlist" msgstr "Delete playlist"
#: src/components/CommentThread.tsx:324 #: src/components/CommentThread.tsx:337
msgid "Delete this comment?" msgid "Delete this comment?"
msgstr "Delete this comment?" msgstr "Delete this comment?"
#: src/pages/DumpEdit.tsx:314 #: src/pages/DumpEdit.tsx:337
msgid "Delete this dump? This cannot be undone." msgid "Delete this dump? This cannot be undone."
msgstr "Delete this dump? This cannot be undone." msgstr "Delete this dump? This cannot be undone."
@@ -327,7 +338,7 @@ msgstr "Delete this playlist? This cannot be undone."
msgid "Description (optional)" msgid "Description (optional)"
msgstr "Description (optional)" msgstr "Description (optional)"
#: src/components/DumpCreateModal.tsx:461 #: src/components/DumpCreateModal.tsx:507
msgid "Done" msgid "Done"
msgstr "Done" msgstr "Done"
@@ -335,49 +346,53 @@ msgstr "Done"
msgid "Drop a file here" msgid "Drop a file here"
msgstr "Drop a file here" msgstr "Drop a file here"
#: src/pages/DumpEdit.tsx:252 #: src/pages/DumpEdit.tsx:273
msgid "Drop a replacement here" msgid "Drop a replacement here"
msgstr "Drop a replacement here" msgstr "Drop a replacement here"
#: src/components/AppHeader.tsx:99 #: src/components/AppHeader.tsx:103
msgid "Dump" msgid "Dump"
msgstr "Dump" msgstr "Dump"
#: src/components/DumpCreateModal.tsx:427 #: src/components/DumpCreateModal.tsx:473
msgid "Dump it" msgid "Dump it"
msgstr "Dump it" msgstr "Dump it"
#: src/components/DumpCreateModal.tsx:438 #: src/components/DumpCreateModal.tsx:484
msgid "Dumped!" msgid "Dumped!"
msgstr "Dumped!" msgstr "Dumped!"
#: src/pages/Search.tsx:172 #: src/pages/Search.tsx:172
#: src/pages/UserDumps.tsx:107 #: src/pages/UserDumps.tsx:107
#: src/pages/UserPublicProfile.tsx:965 #: src/pages/UserPublicProfile.tsx:968
msgid "Dumps" msgid "Dumps"
msgstr "Dumps" msgstr "Dumps"
#. placeholder {0}: dumps.items.length #. placeholder {0}: dumps.items.length
#. placeholder {1}: dumps.hasMore ? "+" : "" #. placeholder {1}: dumps.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:982 #: src/pages/UserPublicProfile.tsx:985
msgid "Dumps ({0}{1})" msgid "Dumps ({0}{1})"
msgstr "Dumps ({0}{1})" msgstr "Dumps ({0}{1})"
#: src/pages/Notifications.tsx:368 #: src/pages/Notifications.tsx:393
msgid "Earlier" msgid "Earlier"
msgstr "Earlier" msgstr "Earlier"
#: src/components/CommentThread.tsx:310 #: src/components/CommentThread.tsx:323
#: src/pages/Dump.tsx:321 #: src/pages/Dump.tsx:423
#: src/pages/PlaylistDetail.tsx:706 #: src/pages/PlaylistDetail.tsx:706
msgid "Edit" msgid "Edit"
msgstr "Edit" msgstr "Edit"
#: src/components/DumpCreateModal.tsx:409
msgid "Edit title"
msgstr "Edit title"
#. placeholder {0}: relativeTime(comment.updatedAt) #. placeholder {0}: relativeTime(comment.updatedAt)
#. placeholder {0}: relativeTime(dump.updatedAt) #. placeholder {0}: relativeTime(dump.updatedAt)
#. placeholder {0}: relativeTime(playlist.updatedAt) #. placeholder {0}: relativeTime(playlist.updatedAt)
#: src/components/CommentThread.tsx:237 #: src/components/CommentThread.tsx:242
#: src/pages/Dump.tsx:281 #: src/pages/Dump.tsx:383
#: src/pages/PlaylistDetail.tsx:779 #: src/pages/PlaylistDetail.tsx:779
msgid "edited {0}" msgid "edited {0}"
msgstr "edited {0}" msgstr "edited {0}"
@@ -385,13 +400,13 @@ msgstr "edited {0}"
#. placeholder {0}: comment.updatedAt.toLocaleString() #. placeholder {0}: comment.updatedAt.toLocaleString()
#. placeholder {0}: dump.updatedAt.toLocaleString() #. placeholder {0}: dump.updatedAt.toLocaleString()
#. placeholder {0}: playlist.updatedAt.toLocaleString() #. placeholder {0}: playlist.updatedAt.toLocaleString()
#: src/components/CommentThread.tsx:235 #: src/components/CommentThread.tsx:240
#: src/pages/Dump.tsx:279 #: src/pages/Dump.tsx:381
#: src/pages/PlaylistDetail.tsx:776 #: src/pages/PlaylistDetail.tsx:776
msgid "Edited {0}" msgid "Edited {0}"
msgstr "Edited {0}" msgstr "Edited {0}"
#: src/pages/DumpEdit.tsx:185 #: src/pages/DumpEdit.tsx:192
msgid "Editing" msgid "Editing"
msgstr "Editing" msgstr "Editing"
@@ -399,7 +414,7 @@ msgstr "Editing"
msgid "Email address" msgid "Email address"
msgstr "Email address" msgstr "Email address"
#: src/pages/Search.tsx:198 #: src/pages/Search.tsx:205
msgid "Enter a query to search." msgid "Enter a query to search."
msgstr "Enter a query to search." msgstr "Enter a query to search."
@@ -422,55 +437,55 @@ msgstr "Failed to generate invite"
#: src/pages/index/HotFeed.tsx:36 #: src/pages/index/HotFeed.tsx:36
#: src/pages/index/JournalFeed.tsx:48 #: src/pages/index/JournalFeed.tsx:48
#: src/pages/index/NewFeed.tsx:36 #: src/pages/index/NewFeed.tsx:36
#: src/pages/Notifications.tsx:342 #: src/pages/Notifications.tsx:367
#: src/pages/UserPublicProfile.tsx:1084 #: src/pages/UserPublicProfile.tsx:1087
#: src/pages/UserPublicProfile.tsx:1126 #: src/pages/UserPublicProfile.tsx:1129
#: src/pages/UserPublicProfile.tsx:1171 #: src/pages/UserPublicProfile.tsx:1174
msgid "Failed to load" msgid "Failed to load"
msgstr "Failed to load" msgstr "Failed to load"
#: src/components/DumpCreateModal.tsx:315 #: src/components/DumpCreateModal.tsx:325
msgid "Failed to post" msgid "Failed to post"
msgstr "Failed to post" msgstr "Failed to post"
#: src/components/CommentThread.tsx:486 #: src/components/CommentThread.tsx:499
msgid "Failed to post comment" msgid "Failed to post comment"
msgstr "Failed to post comment" msgstr "Failed to post comment"
#: src/components/CommentThread.tsx:349 #: src/components/CommentThread.tsx:362
msgid "Failed to post reply" msgid "Failed to post reply"
msgstr "Failed to post reply" msgstr "Failed to post reply"
#: src/pages/PlaylistDetail.tsx:789 #: src/pages/PlaylistDetail.tsx:789
#: src/pages/UserPublicProfile.tsx:680 #: src/pages/UserPublicProfile.tsx:680
#: src/pages/UserPublicProfile.tsx:718 #: src/pages/UserPublicProfile.tsx:718
#: src/pages/UserPublicProfile.tsx:846 #: src/pages/UserPublicProfile.tsx:847
#: src/pages/UserPublicProfile.tsx:924 #: src/pages/UserPublicProfile.tsx:927
msgid "Failed to save" msgid "Failed to save"
msgstr "Failed to save" msgstr "Failed to save"
#: src/components/CommentThread.tsx:257 #: src/components/CommentThread.tsx:262
msgid "Failed to save edit" msgid "Failed to save edit"
msgstr "Failed to save edit" msgstr "Failed to save edit"
#: src/pages/UserPublicProfile.tsx:869 #: src/pages/UserPublicProfile.tsx:872
msgid "Failed to update avatar" msgid "Failed to update avatar"
msgstr "Failed to update avatar" msgstr "Failed to update avatar"
#: src/components/DumpCreateModal.tsx:352 #: src/components/DumpCreateModal.tsx:362
msgid "Fetching preview…" msgid "Fetching preview…"
msgstr "Fetching preview…" msgstr "Fetching preview…"
#: src/components/DumpCreateModal.tsx:425 #: src/components/DumpCreateModal.tsx:471
msgid "Fetching…" msgid "Fetching…"
msgstr "Fetching…" msgstr "Fetching…"
#: src/components/DumpCreateModal.tsx:308 #: src/components/DumpCreateModal.tsx:318
#: src/components/FileDropZone.tsx:31 #: src/components/FileDropZone.tsx:31
msgid "File" msgid "File"
msgstr "File" msgstr "File"
#: src/components/DumpCreateModal.tsx:202 #: src/components/DumpCreateModal.tsx:211
msgid "File too large (max 50 MB)." msgid "File too large (max 50 MB)."
msgstr "File too large (max 50 MB)." msgstr "File too large (max 50 MB)."
@@ -495,8 +510,8 @@ msgstr "Follow some public playlists to see their dumps here."
msgid "Follow some users to see their dumps here." msgid "Follow some users to see their dumps here."
msgstr "Follow some users to see their dumps here." msgstr "Follow some users to see their dumps here."
#: src/components/FeedTabBar.tsx:19 #: src/components/FeedTabBar.tsx:20
#: src/pages/UserPublicProfile.tsx:967 #: src/pages/UserPublicProfile.tsx:970
msgid "Followed" msgid "Followed"
msgstr "Followed" msgstr "Followed"
@@ -506,13 +521,13 @@ msgstr "Followed"
msgid "Followed ({0}{1})" msgid "Followed ({0}{1})"
msgstr "Followed ({0}{1})" msgstr "Followed ({0}{1})"
#: src/pages/UserPublicProfile.tsx:1115 #: src/pages/UserPublicProfile.tsx:1118
msgid "Followed playlists" msgid "Followed playlists"
msgstr "Followed playlists" msgstr "Followed playlists"
#: src/components/FollowButton.tsx:37 #: src/components/FollowButton.tsx:37
#: src/components/FollowButton.tsx:64 #: src/components/FollowButton.tsx:64
#: src/pages/UserPublicProfile.tsx:1073 #: src/pages/UserPublicProfile.tsx:1076
msgid "Following" msgid "Following"
msgstr "Following" msgstr "Following"
@@ -556,8 +571,8 @@ msgstr "Invalid link"
msgid "invited by" msgid "invited by"
msgstr "invited by" msgstr "invited by"
#: src/pages/UserPublicProfile.tsx:968 #: src/pages/UserPublicProfile.tsx:971
#: src/pages/UserPublicProfile.tsx:1160 #: src/pages/UserPublicProfile.tsx:1163
msgid "Invitees" msgid "Invitees"
msgstr "Invitees" msgstr "Invitees"
@@ -569,24 +584,29 @@ msgstr "Journal"
msgid "just now" msgid "just now"
msgstr "just now" msgstr "just now"
#: src/pages/UserPublicProfile.tsx:1253 #: src/pages/UserPublicProfile.tsx:1256
msgid "Light" msgid "Light"
msgstr "Light" msgstr "Light"
#: src/contexts/WSProvider.tsx:359 #: src/components/LikeButton.tsx:30
msgid "Like"
msgstr "Like"
#: src/contexts/WSProvider.tsx:437
msgid "Live updates are temporarily disconnected. Trying to reconnect…" msgid "Live updates are temporarily disconnected. Trying to reconnect…"
msgstr "Live updates are temporarily disconnected. Trying to reconnect…" msgstr "Live updates are temporarily disconnected. Trying to reconnect…"
#: src/components/AppHeader.tsx:125 #: src/components/AppHeader.tsx:130
msgid "Live updates unavailable." msgid "Live updates unavailable."
msgstr "Live updates unavailable." msgstr "Live updates unavailable."
#: src/pages/Notifications.tsx:415 #: src/components/UserListPopover.tsx:188
#: src/pages/Notifications.tsx:440
msgid "Load more" msgid "Load more"
msgstr "Load more" msgstr "Load more"
#: src/pages/Dump.tsx:194 #: src/pages/Dump.tsx:200
#: src/pages/DumpEdit.tsx:146 #: src/pages/DumpEdit.tsx:153
msgid "Loading dump…" msgid "Loading dump…"
msgstr "Loading dump…" msgstr "Loading dump…"
@@ -594,7 +614,7 @@ msgstr "Loading dump…"
#: src/pages/index/HotFeed.tsx:64 #: src/pages/index/HotFeed.tsx:64
#: src/pages/index/JournalFeed.tsx:77 #: src/pages/index/JournalFeed.tsx:77
#: src/pages/index/NewFeed.tsx:64 #: src/pages/index/NewFeed.tsx:64
#: src/pages/Search.tsx:235 #: src/pages/Search.tsx:242
#: src/pages/UserDumps.tsx:93 #: src/pages/UserDumps.tsx:93
#: src/pages/UserPlaylists.tsx:417 #: src/pages/UserPlaylists.tsx:417
#: src/pages/UserPlaylists.tsx:452 #: src/pages/UserPlaylists.tsx:452
@@ -612,29 +632,39 @@ msgstr "Loading profile…"
#: src/components/PlaylistMembershipPanel.tsx:28 #: src/components/PlaylistMembershipPanel.tsx:28
#: src/components/TextEditor.tsx:289 #: src/components/TextEditor.tsx:289
#: src/components/UserListPopover.tsx:149
#: src/components/UserListPopover.tsx:187
#: src/pages/index/FollowedFeed.tsx:77 #: src/pages/index/FollowedFeed.tsx:77
#: src/pages/index/HotFeed.tsx:32 #: src/pages/index/HotFeed.tsx:32
#: src/pages/index/JournalFeed.tsx:44 #: src/pages/index/JournalFeed.tsx:44
#: src/pages/index/NewFeed.tsx:32 #: src/pages/index/NewFeed.tsx:32
#: src/pages/Notifications.tsx:338 #: src/pages/Notifications.tsx:363
#: src/pages/Notifications.tsx:414 #: src/pages/Notifications.tsx:439
#: src/pages/UserDumps.tsx:51 #: src/pages/UserDumps.tsx:51
#: src/pages/UserPlaylists.tsx:342 #: src/pages/UserPlaylists.tsx:342
#: src/pages/UserPublicProfile.tsx:1078 #: src/pages/UserPublicProfile.tsx:1081
#: src/pages/UserPublicProfile.tsx:1120 #: src/pages/UserPublicProfile.tsx:1123
#: src/pages/UserPublicProfile.tsx:1165 #: src/pages/UserPublicProfile.tsx:1168
#: src/pages/UserUpvoted.tsx:123 #: src/pages/UserUpvoted.tsx:123
msgid "Loading…" msgid "Loading…"
msgstr "Loading…" msgstr "Loading…"
#: src/components/AppHeader.tsx:106 #: src/components/AppHeader.tsx:111
#: src/pages/UserLogin.tsx:87 #: src/pages/UserLogin.tsx:87
#: src/pages/UserLogin.tsx:117 #: src/pages/UserLogin.tsx:117
msgid "Log in" msgid "Log in"
msgstr "Log in" msgstr "Log in"
#: src/components/LikeButton.tsx:31
msgid "Log in to like"
msgstr "Log in to like"
#: src/components/VoteButton.tsx:29
msgid "Log in to vote"
msgstr "Log in to vote"
#: src/pages/UserPublicProfile.tsx:749 #: src/pages/UserPublicProfile.tsx:749
#: src/pages/UserPublicProfile.tsx:883 #: src/pages/UserPublicProfile.tsx:886
msgid "Log out" msgid "Log out"
msgstr "Log out" msgstr "Log out"
@@ -650,7 +680,7 @@ msgstr "Login failed"
msgid "Max 50 MB" msgid "Max 50 MB"
msgstr "Max 50 MB" msgstr "Max 50 MB"
#: src/pages/Notifications.tsx:331 #: src/pages/Notifications.tsx:356
msgid "new" msgid "new"
msgstr "new" msgstr "new"
@@ -658,9 +688,9 @@ msgstr "new"
msgid "New" msgid "New"
msgstr "New" msgstr "New"
#: src/components/DumpCreateModal.tsx:277 #: src/components/DumpCreateModal.tsx:287
#: src/pages/UserDumps.tsx:114 #: src/pages/UserDumps.tsx:115
#: src/pages/UserPublicProfile.tsx:1308 #: src/pages/UserPublicProfile.tsx:1312
msgid "New dump" msgid "New dump"
msgstr "New dump" msgstr "New dump"
@@ -669,8 +699,8 @@ msgstr "New dump"
msgid "New password" msgid "New password"
msgstr "New password" msgstr "New password"
#: src/components/NewPlaylistForm.tsx:30 #: src/components/NewPlaylistForm.tsx:33
#: src/components/NewPlaylistForm.tsx:34 #: src/components/NewPlaylistForm.tsx:40
msgid "New playlist" msgid "New playlist"
msgstr "New playlist" msgstr "New playlist"
@@ -678,7 +708,7 @@ msgstr "New playlist"
msgid "No dumps in this playlist yet." msgid "No dumps in this playlist yet."
msgstr "No dumps in this playlist yet." msgstr "No dumps in this playlist yet."
#: src/pages/Search.tsx:215 #: src/pages/Search.tsx:222
msgid "No dumps match \"{q}\"." msgid "No dumps match \"{q}\"."
msgstr "No dumps match \"{q}\"." msgstr "No dumps match \"{q}\"."
@@ -693,42 +723,46 @@ msgid "No emoji found."
msgstr "No emoji found." msgstr "No emoji found."
#: src/pages/UserPlaylists.tsx:439 #: src/pages/UserPlaylists.tsx:439
#: src/pages/UserPublicProfile.tsx:1133 #: src/pages/UserPublicProfile.tsx:1136
msgid "No followed playlists yet." msgid "No followed playlists yet."
msgstr "No followed playlists yet." msgstr "No followed playlists yet."
#: src/pages/UserPublicProfile.tsx:1178 #: src/pages/UserPublicProfile.tsx:1181
msgid "No invitees yet." msgid "No invitees yet."
msgstr "No invitees yet." msgstr "No invitees yet."
#: src/pages/Search.tsx:274 #: src/components/UserListPopover.tsx:157
msgid "No one yet."
msgstr "No one yet."
#: src/pages/Search.tsx:281
msgid "No playlists match \"{q}\"." msgid "No playlists match \"{q}\"."
msgstr "No playlists match \"{q}\"." msgstr "No playlists match \"{q}\"."
#: src/components/PlaylistMembershipPanel.tsx:34 #: src/components/PlaylistMembershipPanel.tsx:34
#: src/pages/UserPlaylists.tsx:397 #: src/pages/UserPlaylists.tsx:397
#: src/pages/UserPublicProfile.tsx:1044 #: src/pages/UserPublicProfile.tsx:1047
msgid "No playlists yet." msgid "No playlists yet."
msgstr "No playlists yet." msgstr "No playlists yet."
#: src/pages/Search.tsx:248 #: src/pages/Search.tsx:255
msgid "No users match \"{q}\"." msgid "No users match \"{q}\"."
msgstr "No users match \"{q}\"." msgstr "No users match \"{q}\"."
#: src/pages/UserPublicProfile.tsx:1091 #: src/pages/UserPublicProfile.tsx:1094
msgid "Not following anyone yet." msgid "Not following anyone yet."
msgstr "Not following anyone yet." msgstr "Not following anyone yet."
#: src/pages/Notifications.tsx:349 #: src/pages/Notifications.tsx:374
#: src/pages/UserDumps.tsx:123 #: src/pages/UserDumps.tsx:125
#: src/pages/UserPublicProfile.tsx:1318 #: src/pages/UserPublicProfile.tsx:1323
#: src/pages/UserPublicProfile.tsx:1441 #: src/pages/UserPublicProfile.tsx:1446
#: src/pages/UserUpvoted.tsx:195 #: src/pages/UserUpvoted.tsx:195
msgid "Nothing here yet." msgid "Nothing here yet."
msgstr "Nothing here yet." msgstr "Nothing here yet."
#: src/components/NotificationBell.tsx:42 #: src/components/NotificationBell.tsx:42
#: src/pages/Notifications.tsx:327 #: src/pages/Notifications.tsx:352
msgid "Notifications" msgid "Notifications"
msgstr "Notifications" msgstr "Notifications"
@@ -736,7 +770,7 @@ msgstr "Notifications"
msgid "Notifications ({unreadNotificationCount} unread)" msgid "Notifications ({unreadNotificationCount} unread)"
msgstr "Notifications ({unreadNotificationCount} unread)" msgstr "Notifications ({unreadNotificationCount} unread)"
#: src/components/SearchBar.tsx:83 #: src/components/SearchBar.tsx:84
msgid "Open search" msgid "Open search"
msgstr "Open search" msgstr "Open search"
@@ -745,7 +779,7 @@ msgid "or <0>browse files</0>"
msgstr "or <0>browse files</0>" msgstr "or <0>browse files</0>"
#: src/pages/UserLogin.tsx:106 #: src/pages/UserLogin.tsx:106
#: src/pages/UserPublicProfile.tsx:1198 #: src/pages/UserPublicProfile.tsx:1201
msgid "Password" msgid "Password"
msgstr "Password" msgstr "Password"
@@ -767,49 +801,49 @@ msgstr "Password updated"
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Passwords do not match" msgstr "Passwords do not match"
#: src/components/AppHeader.tsx:82 #: src/components/AppHeader.tsx:85
#: src/components/UserMenu.tsx:62 #: src/components/UserMenu.tsx:62
#: src/pages/Search.tsx:175 #: src/pages/Search.tsx:175
#: src/pages/UserPlaylists.tsx:368 #: src/pages/UserPlaylists.tsx:368
#: src/pages/UserPublicProfile.tsx:966 #: src/pages/UserPublicProfile.tsx:969
msgid "Playlists" msgid "Playlists"
msgstr "Playlists" msgstr "Playlists"
#. placeholder {0}: playlists.items.length #. placeholder {0}: playlists.items.length
#. placeholder {1}: playlists.hasMore ? "+" : "" #. placeholder {1}: playlists.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:1013 #: src/pages/UserPublicProfile.tsx:1016
msgid "Playlists ({0}{1})" msgid "Playlists ({0}{1})"
msgstr "Playlists ({0}{1})" msgstr "Playlists ({0}{1})"
#: src/components/DumpCreateModal.tsx:195 #: src/components/DumpCreateModal.tsx:204
msgid "Please select a file." msgid "Please select a file."
msgstr "Please select a file." msgstr "Please select a file."
#: src/components/CommentThread.tsx:499 #: src/components/CommentThread.tsx:512
msgid "Post comment" msgid "Post comment"
msgstr "Post comment" msgstr "Post comment"
#: src/components/CommentThread.tsx:362 #: src/components/CommentThread.tsx:375
msgid "Post reply" msgid "Post reply"
msgstr "Post reply" msgstr "Post reply"
#: src/components/CommentThread.tsx:361 #: src/components/CommentThread.tsx:374
#: src/components/CommentThread.tsx:498 #: src/components/CommentThread.tsx:511
msgid "Posting…" msgid "Posting…"
msgstr "Posting…" msgstr "Posting…"
#: src/components/DumpCard.tsx:104 #: src/components/DumpCard.tsx:104
#: src/components/JournalCard.tsx:87 #: src/components/JournalCard.tsx:105
#: src/components/PlaylistCard.tsx:73 #: src/components/PlaylistCard.tsx:73
#: src/components/PlaylistMembershipPanel.tsx:55 #: src/components/PlaylistMembershipPanel.tsx:55
#: src/pages/Dump.tsx:287 #: src/pages/Dump.tsx:389
#: src/pages/PlaylistDetail.tsx:759 #: src/pages/PlaylistDetail.tsx:759
msgid "private" msgid "private"
msgstr "private" msgstr "private"
#: src/components/DumpCreateModal.tsx:404 #: src/components/DumpCreateModal.tsx:450
#: src/components/PlaylistCreateForm.tsx:99 #: src/components/PlaylistCreateForm.tsx:99
#: src/pages/DumpEdit.tsx:285 #: src/pages/DumpEdit.tsx:306
#: src/pages/PlaylistDetail.tsx:746 #: src/pages/PlaylistDetail.tsx:746
msgid "Private" msgid "Private"
msgstr "Private" msgstr "Private"
@@ -819,18 +853,18 @@ msgstr "Private"
msgid "public" msgid "public"
msgstr "public" msgstr "public"
#: src/components/DumpCreateModal.tsx:396 #: src/components/DumpCreateModal.tsx:442
#: src/components/PlaylistCreateForm.tsx:92 #: src/components/PlaylistCreateForm.tsx:92
#: src/pages/DumpEdit.tsx:278 #: src/pages/DumpEdit.tsx:299
#: src/pages/PlaylistDetail.tsx:739 #: src/pages/PlaylistDetail.tsx:739
msgid "Public" msgid "Public"
msgstr "Public" msgstr "Public"
#: src/pages/DumpEdit.tsx:214 #: src/pages/DumpEdit.tsx:221
msgid "Refresh metadata" msgid "Refresh metadata"
msgstr "Refresh metadata" msgstr "Refresh metadata"
#: src/pages/DumpEdit.tsx:213 #: src/pages/DumpEdit.tsx:220
msgid "Refreshing…" msgid "Refreshing…"
msgstr "Refreshing…" msgstr "Refreshing…"
@@ -855,11 +889,19 @@ msgstr "Remove file"
msgid "Remove from playlist" msgid "Remove from playlist"
msgstr "Remove from playlist" msgstr "Remove from playlist"
#: src/pages/DumpEdit.tsx:251 #: src/components/LikeButton.tsx:30
msgid "Remove like"
msgstr "Remove like"
#: src/components/VoteButton.tsx:28
msgid "Remove vote"
msgstr "Remove vote"
#: src/pages/DumpEdit.tsx:272
msgid "Replace file" msgid "Replace file"
msgstr "Replace file" msgstr "Replace file"
#: src/components/CommentThread.tsx:297 #: src/components/CommentThread.tsx:310
msgid "Reply" msgid "Reply"
msgstr "Reply" msgstr "Reply"
@@ -871,42 +913,44 @@ msgstr "Request failed"
msgid "Reset failed" msgid "Reset failed"
msgstr "Reset failed" msgstr "Reset failed"
#: src/pages/Dump.tsx:211 #: src/pages/Dump.tsx:217
#: src/pages/DumpEdit.tsx:163 #: src/pages/DumpEdit.tsx:170
msgid "Retry" msgid "Retry"
msgstr "Retry" msgstr "Retry"
#: src/components/CommentThread.tsx:270 #: src/components/CommentThread.tsx:275
#: src/pages/DumpEdit.tsx:306 #: src/pages/Dump.tsx:322
#: src/pages/DumpEdit.tsx:329
#: src/pages/PlaylistDetail.tsx:673 #: src/pages/PlaylistDetail.tsx:673
#: src/pages/UserPublicProfile.tsx:834 #: src/pages/UserPublicProfile.tsx:834
#: src/pages/UserPublicProfile.tsx:913 #: src/pages/UserPublicProfile.tsx:916
msgid "Save" msgid "Save"
msgstr "Save" msgstr "Save"
#: src/components/ChangePasswordModal.tsx:177 #: src/components/ChangePasswordModal.tsx:177
#: src/components/CommentThread.tsx:269 #: src/components/CommentThread.tsx:274
#: src/pages/Dump.tsx:322
#: src/pages/PlaylistDetail.tsx:673 #: src/pages/PlaylistDetail.tsx:673
#: src/pages/ResetPassword.tsx:152 #: src/pages/ResetPassword.tsx:152
#: src/pages/UserPublicProfile.tsx:833 #: src/pages/UserPublicProfile.tsx:833
#: src/pages/UserPublicProfile.tsx:913 #: src/pages/UserPublicProfile.tsx:916
msgid "Saving…" msgid "Saving…"
msgstr "Saving…" msgstr "Saving…"
#: src/components/AppHeader.tsx:62 #: src/components/AppHeader.tsx:65
#: src/components/SearchBar.tsx:77 #: src/components/SearchBar.tsx:78
msgid "Search" msgid "Search"
msgstr "Search" msgstr "Search"
#: src/components/SearchBar.tsx:73 #: src/components/SearchBar.tsx:74
msgid "Search dumps, users, playlists…" msgid "Search dumps, users, playlists…"
msgstr "Search dumps, users, playlists…" msgstr "Search dumps, users, playlists…"
#: src/pages/Search.tsx:209 #: src/pages/Search.tsx:216
msgid "Search failed" msgid "Search failed"
msgstr "Search failed" msgstr "Search failed"
#: src/pages/Search.tsx:204 #: src/pages/Search.tsx:211
msgid "Searching…" msgid "Searching…"
msgstr "Searching…" msgstr "Searching…"
@@ -918,7 +962,7 @@ msgstr "Send reset link"
msgid "Sending…" msgid "Sending…"
msgstr "Sending…" msgstr "Sending…"
#: src/components/AppHeader.tsx:97 #: src/components/AppHeader.tsx:100
msgid "Server unreachable" msgid "Server unreachable"
msgstr "Server unreachable" msgstr "Server unreachable"
@@ -927,7 +971,7 @@ msgstr "Server unreachable"
msgid "Set new password" msgid "Set new password"
msgstr "Set new password" msgstr "Set new password"
#: src/pages/UserPublicProfile.tsx:970 #: src/pages/UserPublicProfile.tsx:973
msgid "Settings" msgid "Settings"
msgstr "Settings" msgstr "Settings"
@@ -935,11 +979,11 @@ msgstr "Settings"
msgid "Something went wrong" msgid "Something went wrong"
msgstr "Something went wrong" msgstr "Something went wrong"
#: src/pages/UserPublicProfile.tsx:1217 #: src/pages/UserPublicProfile.tsx:1220
msgid "Style" msgid "Style"
msgstr "Style" msgstr "Style"
#: src/components/SearchBar.tsx:83 #: src/components/SearchBar.tsx:84
msgid "Submit search" msgid "Submit search"
msgstr "Submit search" msgstr "Submit search"
@@ -959,11 +1003,13 @@ msgstr "This page does not exist."
msgid "This reset link is missing or malformed." msgid "This reset link is missing or malformed."
msgstr "This reset link is missing or malformed." msgstr "This reset link is missing or malformed."
#: src/components/DumpCreateModal.tsx:384
#: src/components/PlaylistCreateForm.tsx:72 #: src/components/PlaylistCreateForm.tsx:72
#: src/pages/DumpEdit.tsx:235
msgid "Title" msgid "Title"
msgstr "Title" msgstr "Title"
#: src/pages/Notifications.tsx:365 #: src/pages/Notifications.tsx:390
msgid "Today" msgid "Today"
msgstr "Today" msgstr "Today"
@@ -988,26 +1034,30 @@ msgstr "Unknown error"
msgid "Upload failed" msgid "Upload failed"
msgstr "Upload failed" msgstr "Upload failed"
#: src/components/DumpCreateModal.tsx:426 #: src/components/DumpCreateModal.tsx:472
msgid "Uploading…" msgid "Uploading…"
msgstr "Uploading…" msgstr "Uploading…"
#: src/components/VoteButton.tsx:28
msgid "Upvote"
msgstr "Upvote"
#: src/pages/UserUpvoted.tsx:191 #: src/pages/UserUpvoted.tsx:191
msgid "Upvoted" msgid "Upvoted"
msgstr "Upvoted" msgstr "Upvoted"
#. placeholder {0}: votes.items.length #. placeholder {0}: votes.items.length
#. placeholder {1}: votes.hasMore ? "+" : "" #. placeholder {1}: votes.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:993 #: src/pages/UserPublicProfile.tsx:996
msgid "Upvoted ({0}{1})" msgid "Upvoted ({0}{1})"
msgstr "Upvoted ({0}{1})" msgstr "Upvoted ({0}{1})"
#: src/components/DumpCreateModal.tsx:325 #: src/components/DumpCreateModal.tsx:335
#: src/pages/DumpEdit.tsx:230 #: src/pages/DumpEdit.tsx:251
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: src/components/DumpCreateModal.tsx:178 #: src/components/DumpCreateModal.tsx:187
msgid "URL is required." msgid "URL is required."
msgstr "URL is required." msgstr "URL is required."
@@ -1024,42 +1074,42 @@ msgstr "Username"
msgid "Users" msgid "Users"
msgstr "Users" msgstr "Users"
#: src/pages/UserPublicProfile.tsx:1063 #: src/pages/UserPublicProfile.tsx:1066
#: src/pages/UserPublicProfile.tsx:1106 #: src/pages/UserPublicProfile.tsx:1109
#: src/pages/UserPublicProfile.tsx:1148 #: src/pages/UserPublicProfile.tsx:1151
#: src/pages/UserPublicProfile.tsx:1339 #: src/pages/UserPublicProfile.tsx:1344
#: src/pages/UserPublicProfile.tsx:1471 #: src/pages/UserPublicProfile.tsx:1476
msgid "View all →" msgid "View all →"
msgstr "View all →" msgstr "View all →"
#: src/components/DumpCreateModal.tsx:440 #: src/components/DumpCreateModal.tsx:486
msgid "View dump →" msgid "View dump →"
msgstr "View dump →" msgstr "View dump →"
#: src/components/DumpCreateModal.tsx:383 #: src/components/DumpCreateModal.tsx:429
#: src/pages/DumpEdit.tsx:266 #: src/pages/DumpEdit.tsx:287
msgid "What makes it worth it?" msgid "What makes it worth it?"
msgstr "What makes it worth it?" msgstr "What makes it worth it?"
#: src/pages/UserPublicProfile.tsx:901 #: src/pages/UserPublicProfile.tsx:904
#: src/pages/UserPublicProfile.tsx:950 #: src/pages/UserPublicProfile.tsx:953
msgid "Who am I?" msgid "Who am I?"
msgstr "Who am I?" msgstr "Who am I?"
#: src/components/DumpCreateModal.tsx:376 #: src/components/DumpCreateModal.tsx:422
#: src/pages/DumpEdit.tsx:260 #: src/pages/DumpEdit.tsx:281
msgid "Why?" msgid "Why?"
msgstr "Why?" msgstr "Why?"
#: src/components/CommentThread.tsx:342 #: src/components/CommentThread.tsx:355
msgid "Write a reply…" msgid "Write a reply…"
msgstr "Write a reply…" msgstr "Write a reply…"
#: src/pages/Notifications.tsx:367 #: src/pages/Notifications.tsx:392
msgid "Yesterday" msgid "Yesterday"
msgstr "Yesterday" msgstr "Yesterday"
#: src/pages/Notifications.tsx:352 #: src/pages/Notifications.tsx:377
msgid "You'll be notified when someone follows your playlists, upvotes your dumps, or posts new content." 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." msgstr "You'll be notified when someone follows your playlists, upvotes your dumps, or posts new content."
@@ -1067,7 +1117,7 @@ msgstr "You'll be notified when someone follows your playlists, upvotes your dum
#: src/pages/index/HotFeed.tsx:69 #: src/pages/index/HotFeed.tsx:69
#: src/pages/index/JournalFeed.tsx:82 #: src/pages/index/JournalFeed.tsx:82
#: src/pages/index/NewFeed.tsx:69 #: src/pages/index/NewFeed.tsx:69
#: src/pages/Search.tsx:240 #: src/pages/Search.tsx:247
#: src/pages/UserDumps.tsx:98 #: src/pages/UserDumps.tsx:98
#: src/pages/UserPlaylists.tsx:422 #: src/pages/UserPlaylists.tsx:422
#: src/pages/UserPlaylists.tsx:457 #: src/pages/UserPlaylists.tsx:457

File diff suppressed because one or more lines are too long

View File

@@ -13,13 +13,13 @@ msgstr ""
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
#: src/components/CommentThread.tsx:176 #: src/components/CommentThread.tsx:181
msgid "[deleted]" msgid "[deleted]"
msgstr "[supprimé]" msgstr "[supprimé]"
#. placeholder {0}: dump.commentCount #. placeholder {0}: dump.commentCount
#: src/components/DumpCard.tsx:95 #: src/components/DumpCard.tsx:95
#: src/components/JournalCard.tsx:78 #: src/components/JournalCard.tsx:96
msgid "{0, plural, one {# comment} other {# comments}}" msgid "{0, plural, one {# comment} other {# comments}}"
msgstr "{0, plural, one {# commentaire} other {# commentaires}}" msgstr "{0, plural, one {# commentaire} other {# commentaires}}"
@@ -50,7 +50,7 @@ msgstr "{label} ({count})"
msgid "{mins}m ago" msgid "{mins}m ago"
msgstr "il y a {mins}min" msgstr "il y a {mins}min"
#: src/components/CommentThread.tsx:459 #: src/components/CommentThread.tsx:472
msgid "{visibleCount, plural, one {# comment} other {# comments}}" msgid "{visibleCount, plural, one {# comment} other {# comments}}"
msgstr "{visibleCount, plural, one {# commentaire} other {# commentaires}}" msgstr "{visibleCount, plural, one {# commentaire} other {# commentaires}}"
@@ -59,9 +59,9 @@ msgstr "{visibleCount, plural, one {# commentaire} other {# commentaires}}"
msgid "← Back" msgid "← Back"
msgstr "← Retour" msgstr "← Retour"
#: src/pages/Dump.tsx:218 #: src/pages/Dump.tsx:224
#: src/pages/Dump.tsx:325 #: src/pages/Dump.tsx:427
#: src/pages/DumpEdit.tsx:170 #: src/pages/DumpEdit.tsx:177
msgid "← Back to all dumps" msgid "← Back to all dumps"
msgstr "← Retour à toutes les recos" msgstr "← Retour à toutes les recos"
@@ -84,72 +84,78 @@ msgstr "+ Nouvelle reco"
msgid "+ New playlist" msgid "+ New playlist"
msgstr "+ Nouvelle collection" msgstr "+ Nouvelle collection"
#: src/pages/Dump.tsx:250 #: src/pages/Dump.tsx:291
msgid "+ Playlist" msgid "+ Playlist"
msgstr "+ Collection" msgstr "+ Collection"
#. placeholder {0}: d.commenterUsername #. placeholder {0}: d.commenterUsername
#. placeholder {1}: d.dumpTitle #. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:179 #: src/pages/Notifications.tsx:194
msgid "<0>{0}</0> commented on <1>{1}</1>" msgid "<0>{0}</0> commented on <1>{1}</1>"
msgstr "<0>{0}</0> a commenté sur <1>{1}</1>" msgstr "<0>{0}</0> a commenté sur <1>{1}</1>"
#. placeholder {0}: d.followerUsername #. placeholder {0}: d.followerUsername
#. placeholder {1}: d.playlistTitle #. placeholder {1}: d.playlistTitle
#: src/pages/Notifications.tsx:139 #: src/pages/Notifications.tsx:154
msgid "<0>{0}</0> followed your playlist <1>{1}</1>" msgid "<0>{0}</0> followed your playlist <1>{1}</1>"
msgstr "<0>{0}</0> a suivi votre collection <1>{1}</1>" msgstr "<0>{0}</0> a suivi votre collection <1>{1}</1>"
#. placeholder {0}: d.likerUsername
#. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:204
msgid "<0>{0}</0> liked your comment on <1>{1}</1>"
msgstr "<0>{0}</0> a aimé votre commentaire sur <1>{1}</1>"
#. placeholder {0}: d.mentionerUsername #. placeholder {0}: d.mentionerUsername
#: src/pages/Notifications.tsx:191 #: src/pages/Notifications.tsx:216
msgid "<0>{0}</0> mentioned you in <1>{where}</1>" msgid "<0>{0}</0> mentioned you in <1>{where}</1>"
msgstr "<0>{0}</0> vous a mentionné dans <1>{where}</1>" msgstr "<0>{0}</0> vous a mentionné dans <1>{where}</1>"
#. placeholder {0}: d.dumperUsername #. placeholder {0}: d.dumperUsername
#. placeholder {1}: d.dumpTitle #. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:149 #: src/pages/Notifications.tsx:164
msgid "<0>{0}</0> posted <1>{1}</1>" msgid "<0>{0}</0> posted <1>{1}</1>"
msgstr "<0>{0}</0> a publié <1>{1}</1>" msgstr "<0>{0}</0> a publié <1>{1}</1>"
#. placeholder {0}: d.followerUsername #. placeholder {0}: d.followerUsername
#: src/pages/Notifications.tsx:130 #: src/pages/Notifications.tsx:145
msgid "<0>{0}</0> started following you" msgid "<0>{0}</0> started following you"
msgstr "<0>{0}</0> a commencé à vous suivre" msgstr "<0>{0}</0> a commencé à vous suivre"
#. placeholder {0}: d.voterUsername #. placeholder {0}: d.voterUsername
#. placeholder {1}: d.dumpTitle #. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:169 #: src/pages/Notifications.tsx:184
msgid "<0>{0}</0> upvoted <1>{1}</1>" msgid "<0>{0}</0> upvoted <1>{1}</1>"
msgstr "<0>{0}</0> a voté pour <1>{1}</1>" msgstr "<0>{0}</0> a voté pour <1>{1}</1>"
#. placeholder {0}: d.dumpTitle #. placeholder {0}: d.dumpTitle
#. placeholder {1}: d.playlistTitle #. placeholder {1}: d.playlistTitle
#: src/pages/Notifications.tsx:159 #: src/pages/Notifications.tsx:174
msgid "<0>{0}</0> was added to <1>{1}</1>" msgid "<0>{0}</0> was added to <1>{1}</1>"
msgstr "<0>{0}</0> a été ajouté à <1>{1}</1>" msgstr "<0>{0}</0> a été ajouté à <1>{1}</1>"
#: src/pages/Notifications.tsx:189 #: src/pages/Notifications.tsx:214
msgid "a comment" msgid "a comment"
msgstr "un commentaire" msgstr "un commentaire"
#: src/pages/Notifications.tsx:189 #: src/pages/Notifications.tsx:214
msgid "a post" msgid "a post"
msgstr "une publication" msgstr "une publication"
#: src/pages/UserPublicProfile.tsx:1193 #: src/pages/UserPublicProfile.tsx:1196
msgid "Account" msgid "Account"
msgstr "Compte" msgstr "Compte"
#: src/components/CommentThread.tsx:479 #: src/components/CommentThread.tsx:492
msgid "Add a comment…" msgid "Add a comment…"
msgstr "Ajouter un commentaire…" msgstr "Ajouter un commentaire…"
#: src/pages/UserPublicProfile.tsx:860 #: src/pages/UserPublicProfile.tsx:863
msgid "Add email…" msgid "Add email…"
msgstr "Ajouter un e-mail…" msgstr "Ajouter un e-mail…"
#: src/components/AddToPlaylistModal.tsx:64 #: src/components/AddToPlaylistModal.tsx:64
#: src/components/DumpCreateModal.tsx:277 #: src/components/DumpCreateModal.tsx:287
msgid "Add to playlist" msgid "Add to playlist"
msgstr "Ajouter à la collection" msgstr "Ajouter à la collection"
@@ -165,7 +171,7 @@ msgstr "Toutes les {0, plural, one {# reco votée} other {# recos votées}} char
msgid "Already have an account? <0>Log in</0>" msgid "Already have an account? <0>Log in</0>"
msgstr "Vous avez déjà un compte ? <0>Se connecter</0>" msgstr "Vous avez déjà un compte ? <0>Se connecter</0>"
#: src/pages/UserPublicProfile.tsx:1212 #: src/pages/UserPublicProfile.tsx:1215
msgid "Appearance" msgid "Appearance"
msgstr "Apparence" msgstr "Apparence"
@@ -175,7 +181,7 @@ msgstr "Apparence"
msgid "At least {0} characters" msgid "At least {0} characters"
msgstr "Au moins {0} caractères" msgstr "Au moins {0} caractères"
#: src/pages/UserPublicProfile.tsx:1246 #: src/pages/UserPublicProfile.tsx:1249
msgid "Auto" msgid "Auto"
msgstr "Auto" msgstr "Auto"
@@ -184,22 +190,23 @@ msgstr "Auto"
msgid "Back to login" msgid "Back to login"
msgstr "Retour à la connexion" msgstr "Retour à la connexion"
#: src/contexts/WSProvider.tsx:168 #: src/contexts/WSProvider.tsx:211
#: src/contexts/WSProvider.tsx:360 #: src/contexts/WSProvider.tsx:438
msgid "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects." msgid "Can't connect to the live updates server. Upvotes and notifications may not sync until it reconnects."
msgstr "Impossible de se connecter au serveur de mises à jour en direct. Les votes et les notifications pourraient ne pas se synchroniser avant la reconnexion." msgstr "Impossible de se connecter au serveur de mises à jour en direct. Les votes et les notifications pourraient ne pas se synchroniser avant la reconnexion."
#: src/components/ChangePasswordModal.tsx:168 #: src/components/ChangePasswordModal.tsx:168
#: src/components/CommentThread.tsx:281 #: src/components/CommentThread.tsx:286
#: src/components/CommentThread.tsx:373 #: src/components/CommentThread.tsx:386
#: src/components/CommentThread.tsx:510 #: src/components/CommentThread.tsx:523
#: src/components/ConfirmModal.tsx:32 #: src/components/ConfirmModal.tsx:32
#: src/components/DumpCreateModal.tsx:415 #: src/components/DumpCreateModal.tsx:461
#: src/components/PlaylistCreateForm.tsx:112 #: src/components/PlaylistCreateForm.tsx:112
#: src/pages/DumpEdit.tsx:299 #: src/pages/Dump.tsx:330
#: src/pages/DumpEdit.tsx:320
#: src/pages/PlaylistDetail.tsx:680 #: src/pages/PlaylistDetail.tsx:680
#: src/pages/UserPublicProfile.tsx:842 #: src/pages/UserPublicProfile.tsx:842
#: src/pages/UserPublicProfile.tsx:921 #: src/pages/UserPublicProfile.tsx:924
msgid "Cancel" msgid "Cancel"
msgstr "Annuler" msgstr "Annuler"
@@ -207,7 +214,7 @@ msgstr "Annuler"
msgid "Cancel removal" msgid "Cancel removal"
msgstr "Annuler la suppression" msgstr "Annuler la suppression"
#: src/components/AppHeader.tsx:62 #: src/components/AppHeader.tsx:65
msgid "Cancel search" msgid "Cancel search"
msgstr "Annuler la recherche" msgstr "Annuler la recherche"
@@ -220,7 +227,7 @@ msgstr "Changer l'avatar"
msgid "Change password" msgid "Change password"
msgstr "Changer le mot de passe" msgstr "Changer le mot de passe"
#: src/pages/UserPublicProfile.tsx:1205 #: src/pages/UserPublicProfile.tsx:1208
msgid "Change password…" msgid "Change password…"
msgstr "Changer le mot de passe…" msgstr "Changer le mot de passe…"
@@ -233,7 +240,7 @@ msgstr "Vérification de l'invitation…"
msgid "Close" msgid "Close"
msgstr "Fermer" msgstr "Fermer"
#: src/pages/UserPublicProfile.tsx:1238 #: src/pages/UserPublicProfile.tsx:1241
msgid "Color scheme" msgid "Color scheme"
msgstr "Thème de couleur" msgstr "Thème de couleur"
@@ -259,9 +266,13 @@ msgstr "Impossible de changer le mot de passe"
msgid "Could not connect to server" msgid "Could not connect to server"
msgstr "Impossible de contacter le serveur" msgstr "Impossible de contacter le serveur"
#: src/components/CommentThread.tsx:111 #: src/components/UserListPopover.tsx:100
#: src/components/CommentThread.tsx:153 msgid "Could not load."
#: src/components/CommentThread.tsx:448 msgstr "Impossible de charger."
#: src/components/CommentThread.tsx:116
#: src/components/CommentThread.tsx:158
#: src/components/CommentThread.tsx:461
msgid "Could not reach the server. Please try again." msgid "Could not reach the server. Please try again."
msgstr "Impossible de contacter le serveur. Veuillez réessayer." msgstr "Impossible de contacter le serveur. Veuillez réessayer."
@@ -287,19 +298,19 @@ msgstr "Création…"
msgid "Current password" msgid "Current password"
msgstr "Mot de passe actuel" msgstr "Mot de passe actuel"
#: src/pages/UserPublicProfile.tsx:1260 #: src/pages/UserPublicProfile.tsx:1263
msgid "Dark" msgid "Dark"
msgstr "Sombre" msgstr "Sombre"
#: src/components/CommentThread.tsx:319 #: src/components/CommentThread.tsx:332
#: src/components/CommentThread.tsx:325 #: src/components/CommentThread.tsx:338
#: src/components/ConfirmModal.tsx:16 #: src/components/ConfirmModal.tsx:16
#: src/pages/PlaylistDetail.tsx:687 #: src/pages/PlaylistDetail.tsx:687
msgid "Delete" msgid "Delete"
msgstr "Supprimer" msgstr "Supprimer"
#: src/pages/DumpEdit.tsx:295 #: src/pages/DumpEdit.tsx:316
#: src/pages/DumpEdit.tsx:315 #: src/pages/DumpEdit.tsx:338
msgid "Delete dump" msgid "Delete dump"
msgstr "Supprimer la reco" msgstr "Supprimer la reco"
@@ -309,11 +320,11 @@ msgstr "Supprimer la reco"
msgid "Delete playlist" msgid "Delete playlist"
msgstr "Supprimer la collection" msgstr "Supprimer la collection"
#: src/components/CommentThread.tsx:324 #: src/components/CommentThread.tsx:337
msgid "Delete this comment?" msgid "Delete this comment?"
msgstr "Supprimer ce commentaire ?" msgstr "Supprimer ce commentaire ?"
#: src/pages/DumpEdit.tsx:314 #: src/pages/DumpEdit.tsx:337
msgid "Delete this dump? This cannot be undone." msgid "Delete this dump? This cannot be undone."
msgstr "Supprimer cette reco ? Cette action est irréversible." msgstr "Supprimer cette reco ? Cette action est irréversible."
@@ -327,7 +338,7 @@ msgstr "Supprimer cette collection ? Cette action est irréversible."
msgid "Description (optional)" msgid "Description (optional)"
msgstr "Description (facultatif)" msgstr "Description (facultatif)"
#: src/components/DumpCreateModal.tsx:461 #: src/components/DumpCreateModal.tsx:507
msgid "Done" msgid "Done"
msgstr "Terminé" msgstr "Terminé"
@@ -335,49 +346,53 @@ msgstr "Terminé"
msgid "Drop a file here" msgid "Drop a file here"
msgstr "Déposez un fichier ici" msgstr "Déposez un fichier ici"
#: src/pages/DumpEdit.tsx:252 #: src/pages/DumpEdit.tsx:273
msgid "Drop a replacement here" msgid "Drop a replacement here"
msgstr "Déposez un fichier de remplacement ici" msgstr "Déposez un fichier de remplacement ici"
#: src/components/AppHeader.tsx:99 #: src/components/AppHeader.tsx:103
msgid "Dump" msgid "Dump"
msgstr "Reco" msgstr "Reco"
#: src/components/DumpCreateModal.tsx:427 #: src/components/DumpCreateModal.tsx:473
msgid "Dump it" msgid "Dump it"
msgstr "Recommander" msgstr "Recommander"
#: src/components/DumpCreateModal.tsx:438 #: src/components/DumpCreateModal.tsx:484
msgid "Dumped!" msgid "Dumped!"
msgstr "Recommandé !" msgstr "Recommandé !"
#: src/pages/Search.tsx:172 #: src/pages/Search.tsx:172
#: src/pages/UserDumps.tsx:107 #: src/pages/UserDumps.tsx:107
#: src/pages/UserPublicProfile.tsx:965 #: src/pages/UserPublicProfile.tsx:968
msgid "Dumps" msgid "Dumps"
msgstr "Recos" msgstr "Recos"
#. placeholder {0}: dumps.items.length #. placeholder {0}: dumps.items.length
#. placeholder {1}: dumps.hasMore ? "+" : "" #. placeholder {1}: dumps.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:982 #: src/pages/UserPublicProfile.tsx:985
msgid "Dumps ({0}{1})" msgid "Dumps ({0}{1})"
msgstr "Recos ({0}{1})" msgstr "Recos ({0}{1})"
#: src/pages/Notifications.tsx:368 #: src/pages/Notifications.tsx:393
msgid "Earlier" msgid "Earlier"
msgstr "Plus tôt" msgstr "Plus tôt"
#: src/components/CommentThread.tsx:310 #: src/components/CommentThread.tsx:323
#: src/pages/Dump.tsx:321 #: src/pages/Dump.tsx:423
#: src/pages/PlaylistDetail.tsx:706 #: src/pages/PlaylistDetail.tsx:706
msgid "Edit" msgid "Edit"
msgstr "Modifier" msgstr "Modifier"
#: src/components/DumpCreateModal.tsx:409
msgid "Edit title"
msgstr "Modifier le titre"
#. placeholder {0}: relativeTime(comment.updatedAt) #. placeholder {0}: relativeTime(comment.updatedAt)
#. placeholder {0}: relativeTime(dump.updatedAt) #. placeholder {0}: relativeTime(dump.updatedAt)
#. placeholder {0}: relativeTime(playlist.updatedAt) #. placeholder {0}: relativeTime(playlist.updatedAt)
#: src/components/CommentThread.tsx:237 #: src/components/CommentThread.tsx:242
#: src/pages/Dump.tsx:281 #: src/pages/Dump.tsx:383
#: src/pages/PlaylistDetail.tsx:779 #: src/pages/PlaylistDetail.tsx:779
msgid "edited {0}" msgid "edited {0}"
msgstr "modifié {0}" msgstr "modifié {0}"
@@ -385,13 +400,13 @@ msgstr "modifié {0}"
#. placeholder {0}: comment.updatedAt.toLocaleString() #. placeholder {0}: comment.updatedAt.toLocaleString()
#. placeholder {0}: dump.updatedAt.toLocaleString() #. placeholder {0}: dump.updatedAt.toLocaleString()
#. placeholder {0}: playlist.updatedAt.toLocaleString() #. placeholder {0}: playlist.updatedAt.toLocaleString()
#: src/components/CommentThread.tsx:235 #: src/components/CommentThread.tsx:240
#: src/pages/Dump.tsx:279 #: src/pages/Dump.tsx:381
#: src/pages/PlaylistDetail.tsx:776 #: src/pages/PlaylistDetail.tsx:776
msgid "Edited {0}" msgid "Edited {0}"
msgstr "Modifié le {0}" msgstr "Modifié le {0}"
#: src/pages/DumpEdit.tsx:185 #: src/pages/DumpEdit.tsx:192
msgid "Editing" msgid "Editing"
msgstr "Modification" msgstr "Modification"
@@ -399,7 +414,7 @@ msgstr "Modification"
msgid "Email address" msgid "Email address"
msgstr "Adresse e-mail" msgstr "Adresse e-mail"
#: src/pages/Search.tsx:198 #: src/pages/Search.tsx:205
msgid "Enter a query to search." msgid "Enter a query to search."
msgstr "Saisissez une recherche." msgstr "Saisissez une recherche."
@@ -422,55 +437,55 @@ msgstr "Impossible de générer une invitation"
#: src/pages/index/HotFeed.tsx:36 #: src/pages/index/HotFeed.tsx:36
#: src/pages/index/JournalFeed.tsx:48 #: src/pages/index/JournalFeed.tsx:48
#: src/pages/index/NewFeed.tsx:36 #: src/pages/index/NewFeed.tsx:36
#: src/pages/Notifications.tsx:342 #: src/pages/Notifications.tsx:367
#: src/pages/UserPublicProfile.tsx:1084 #: src/pages/UserPublicProfile.tsx:1087
#: src/pages/UserPublicProfile.tsx:1126 #: src/pages/UserPublicProfile.tsx:1129
#: src/pages/UserPublicProfile.tsx:1171 #: src/pages/UserPublicProfile.tsx:1174
msgid "Failed to load" msgid "Failed to load"
msgstr "Chargement échoué" msgstr "Chargement échoué"
#: src/components/DumpCreateModal.tsx:315 #: src/components/DumpCreateModal.tsx:325
msgid "Failed to post" msgid "Failed to post"
msgstr "Publication échouée" msgstr "Publication échouée"
#: src/components/CommentThread.tsx:486 #: src/components/CommentThread.tsx:499
msgid "Failed to post comment" msgid "Failed to post comment"
msgstr "Impossible de publier le commentaire" msgstr "Impossible de publier le commentaire"
#: src/components/CommentThread.tsx:349 #: src/components/CommentThread.tsx:362
msgid "Failed to post reply" msgid "Failed to post reply"
msgstr "Impossible de publier la réponse" msgstr "Impossible de publier la réponse"
#: src/pages/PlaylistDetail.tsx:789 #: src/pages/PlaylistDetail.tsx:789
#: src/pages/UserPublicProfile.tsx:680 #: src/pages/UserPublicProfile.tsx:680
#: src/pages/UserPublicProfile.tsx:718 #: src/pages/UserPublicProfile.tsx:718
#: src/pages/UserPublicProfile.tsx:846 #: src/pages/UserPublicProfile.tsx:847
#: src/pages/UserPublicProfile.tsx:924 #: src/pages/UserPublicProfile.tsx:927
msgid "Failed to save" msgid "Failed to save"
msgstr "Enregistrement échoué" msgstr "Enregistrement échoué"
#: src/components/CommentThread.tsx:257 #: src/components/CommentThread.tsx:262
msgid "Failed to save edit" msgid "Failed to save edit"
msgstr "Impossible d'enregistrer la modification" msgstr "Impossible d'enregistrer la modification"
#: src/pages/UserPublicProfile.tsx:869 #: src/pages/UserPublicProfile.tsx:872
msgid "Failed to update avatar" msgid "Failed to update avatar"
msgstr "Impossible de mettre à jour l'avatar" msgstr "Impossible de mettre à jour l'avatar"
#: src/components/DumpCreateModal.tsx:352 #: src/components/DumpCreateModal.tsx:362
msgid "Fetching preview…" msgid "Fetching preview…"
msgstr "Récupération de l'aperçu…" msgstr "Récupération de l'aperçu…"
#: src/components/DumpCreateModal.tsx:425 #: src/components/DumpCreateModal.tsx:471
msgid "Fetching…" msgid "Fetching…"
msgstr "Récupération…" msgstr "Récupération…"
#: src/components/DumpCreateModal.tsx:308 #: src/components/DumpCreateModal.tsx:318
#: src/components/FileDropZone.tsx:31 #: src/components/FileDropZone.tsx:31
msgid "File" msgid "File"
msgstr "Fichier" msgstr "Fichier"
#: src/components/DumpCreateModal.tsx:202 #: src/components/DumpCreateModal.tsx:211
msgid "File too large (max 50 MB)." msgid "File too large (max 50 MB)."
msgstr "Fichier trop volumineux (max 50 Mo)." msgstr "Fichier trop volumineux (max 50 Mo)."
@@ -495,8 +510,8 @@ msgstr "Suivez des collections publiques pour voir leurs recos ici."
msgid "Follow some users to see their dumps here." msgid "Follow some users to see their dumps here."
msgstr "Suivez des utilisateurs pour voir leurs recos ici." msgstr "Suivez des utilisateurs pour voir leurs recos ici."
#: src/components/FeedTabBar.tsx:19 #: src/components/FeedTabBar.tsx:20
#: src/pages/UserPublicProfile.tsx:967 #: src/pages/UserPublicProfile.tsx:970
msgid "Followed" msgid "Followed"
msgstr "Suivi" msgstr "Suivi"
@@ -506,13 +521,13 @@ msgstr "Suivi"
msgid "Followed ({0}{1})" msgid "Followed ({0}{1})"
msgstr "Suivies ({0}{1})" msgstr "Suivies ({0}{1})"
#: src/pages/UserPublicProfile.tsx:1115 #: src/pages/UserPublicProfile.tsx:1118
msgid "Followed playlists" msgid "Followed playlists"
msgstr "Collections suivies" msgstr "Collections suivies"
#: src/components/FollowButton.tsx:37 #: src/components/FollowButton.tsx:37
#: src/components/FollowButton.tsx:64 #: src/components/FollowButton.tsx:64
#: src/pages/UserPublicProfile.tsx:1073 #: src/pages/UserPublicProfile.tsx:1076
msgid "Following" msgid "Following"
msgstr "Abonné" msgstr "Abonné"
@@ -556,8 +571,8 @@ msgstr "Lien invalide"
msgid "invited by" msgid "invited by"
msgstr "invité par" msgstr "invité par"
#: src/pages/UserPublicProfile.tsx:968 #: src/pages/UserPublicProfile.tsx:971
#: src/pages/UserPublicProfile.tsx:1160 #: src/pages/UserPublicProfile.tsx:1163
msgid "Invitees" msgid "Invitees"
msgstr "Invités" msgstr "Invités"
@@ -569,24 +584,29 @@ msgstr "Journal"
msgid "just now" msgid "just now"
msgstr "à l'instant" msgstr "à l'instant"
#: src/pages/UserPublicProfile.tsx:1253 #: src/pages/UserPublicProfile.tsx:1256
msgid "Light" msgid "Light"
msgstr "Clair" msgstr "Clair"
#: src/contexts/WSProvider.tsx:359 #: src/components/LikeButton.tsx:30
msgid "Like"
msgstr "Aimer"
#: src/contexts/WSProvider.tsx:437
msgid "Live updates are temporarily disconnected. Trying to reconnect…" msgid "Live updates are temporarily disconnected. Trying to reconnect…"
msgstr "Les mises à jour en direct sont temporairement interrompues. Tentative de reconnexion…" msgstr "Les mises à jour en direct sont temporairement interrompues. Tentative de reconnexion…"
#: src/components/AppHeader.tsx:125 #: src/components/AppHeader.tsx:130
msgid "Live updates unavailable." msgid "Live updates unavailable."
msgstr "Mises à jour en direct indisponibles." msgstr "Mises à jour en direct indisponibles."
#: src/pages/Notifications.tsx:415 #: src/components/UserListPopover.tsx:188
#: src/pages/Notifications.tsx:440
msgid "Load more" msgid "Load more"
msgstr "Charger plus" msgstr "Charger plus"
#: src/pages/Dump.tsx:194 #: src/pages/Dump.tsx:200
#: src/pages/DumpEdit.tsx:146 #: src/pages/DumpEdit.tsx:153
msgid "Loading dump…" msgid "Loading dump…"
msgstr "Chargement de la reco…" msgstr "Chargement de la reco…"
@@ -594,7 +614,7 @@ msgstr "Chargement de la reco…"
#: src/pages/index/HotFeed.tsx:64 #: src/pages/index/HotFeed.tsx:64
#: src/pages/index/JournalFeed.tsx:77 #: src/pages/index/JournalFeed.tsx:77
#: src/pages/index/NewFeed.tsx:64 #: src/pages/index/NewFeed.tsx:64
#: src/pages/Search.tsx:235 #: src/pages/Search.tsx:242
#: src/pages/UserDumps.tsx:93 #: src/pages/UserDumps.tsx:93
#: src/pages/UserPlaylists.tsx:417 #: src/pages/UserPlaylists.tsx:417
#: src/pages/UserPlaylists.tsx:452 #: src/pages/UserPlaylists.tsx:452
@@ -612,29 +632,39 @@ msgstr "Chargement du profil…"
#: src/components/PlaylistMembershipPanel.tsx:28 #: src/components/PlaylistMembershipPanel.tsx:28
#: src/components/TextEditor.tsx:289 #: src/components/TextEditor.tsx:289
#: src/components/UserListPopover.tsx:149
#: src/components/UserListPopover.tsx:187
#: src/pages/index/FollowedFeed.tsx:77 #: src/pages/index/FollowedFeed.tsx:77
#: src/pages/index/HotFeed.tsx:32 #: src/pages/index/HotFeed.tsx:32
#: src/pages/index/JournalFeed.tsx:44 #: src/pages/index/JournalFeed.tsx:44
#: src/pages/index/NewFeed.tsx:32 #: src/pages/index/NewFeed.tsx:32
#: src/pages/Notifications.tsx:338 #: src/pages/Notifications.tsx:363
#: src/pages/Notifications.tsx:414 #: src/pages/Notifications.tsx:439
#: src/pages/UserDumps.tsx:51 #: src/pages/UserDumps.tsx:51
#: src/pages/UserPlaylists.tsx:342 #: src/pages/UserPlaylists.tsx:342
#: src/pages/UserPublicProfile.tsx:1078 #: src/pages/UserPublicProfile.tsx:1081
#: src/pages/UserPublicProfile.tsx:1120 #: src/pages/UserPublicProfile.tsx:1123
#: src/pages/UserPublicProfile.tsx:1165 #: src/pages/UserPublicProfile.tsx:1168
#: src/pages/UserUpvoted.tsx:123 #: src/pages/UserUpvoted.tsx:123
msgid "Loading…" msgid "Loading…"
msgstr "Chargement…" msgstr "Chargement…"
#: src/components/AppHeader.tsx:106 #: src/components/AppHeader.tsx:111
#: src/pages/UserLogin.tsx:87 #: src/pages/UserLogin.tsx:87
#: src/pages/UserLogin.tsx:117 #: src/pages/UserLogin.tsx:117
msgid "Log in" msgid "Log in"
msgstr "Se connecter" msgstr "Se connecter"
#: src/components/LikeButton.tsx:31
msgid "Log in to like"
msgstr "Se connecter pour aimer"
#: src/components/VoteButton.tsx:29
msgid "Log in to vote"
msgstr "Se connecter pour voter"
#: src/pages/UserPublicProfile.tsx:749 #: src/pages/UserPublicProfile.tsx:749
#: src/pages/UserPublicProfile.tsx:883 #: src/pages/UserPublicProfile.tsx:886
msgid "Log out" msgid "Log out"
msgstr "Se déconnecter" msgstr "Se déconnecter"
@@ -650,7 +680,7 @@ msgstr "Connexion échouée"
msgid "Max 50 MB" msgid "Max 50 MB"
msgstr "Max 50 Mo" msgstr "Max 50 Mo"
#: src/pages/Notifications.tsx:331 #: src/pages/Notifications.tsx:356
msgid "new" msgid "new"
msgstr "nouveau" msgstr "nouveau"
@@ -658,9 +688,9 @@ msgstr "nouveau"
msgid "New" msgid "New"
msgstr "Nouveau" msgstr "Nouveau"
#: src/components/DumpCreateModal.tsx:277 #: src/components/DumpCreateModal.tsx:287
#: src/pages/UserDumps.tsx:114 #: src/pages/UserDumps.tsx:115
#: src/pages/UserPublicProfile.tsx:1308 #: src/pages/UserPublicProfile.tsx:1312
msgid "New dump" msgid "New dump"
msgstr "Nouvelle reco" msgstr "Nouvelle reco"
@@ -669,8 +699,8 @@ msgstr "Nouvelle reco"
msgid "New password" msgid "New password"
msgstr "Nouveau mot de passe" msgstr "Nouveau mot de passe"
#: src/components/NewPlaylistForm.tsx:30 #: src/components/NewPlaylistForm.tsx:33
#: src/components/NewPlaylistForm.tsx:34 #: src/components/NewPlaylistForm.tsx:40
msgid "New playlist" msgid "New playlist"
msgstr "Nouvelle collection" msgstr "Nouvelle collection"
@@ -678,7 +708,7 @@ msgstr "Nouvelle collection"
msgid "No dumps in this playlist yet." msgid "No dumps in this playlist yet."
msgstr "Aucune reco dans cette collection pour l'instant." msgstr "Aucune reco dans cette collection pour l'instant."
#: src/pages/Search.tsx:215 #: src/pages/Search.tsx:222
msgid "No dumps match \"{q}\"." msgid "No dumps match \"{q}\"."
msgstr "Aucune reco ne correspond à « {q} »." msgstr "Aucune reco ne correspond à « {q} »."
@@ -693,42 +723,46 @@ msgid "No emoji found."
msgstr "Aucun emoji trouvé." msgstr "Aucun emoji trouvé."
#: src/pages/UserPlaylists.tsx:439 #: src/pages/UserPlaylists.tsx:439
#: src/pages/UserPublicProfile.tsx:1133 #: src/pages/UserPublicProfile.tsx:1136
msgid "No followed playlists yet." msgid "No followed playlists yet."
msgstr "Pas encore de collections suivies." msgstr "Pas encore de collections suivies."
#: src/pages/UserPublicProfile.tsx:1178 #: src/pages/UserPublicProfile.tsx:1181
msgid "No invitees yet." msgid "No invitees yet."
msgstr "Aucun invité pour le moment." msgstr "Aucun invité pour le moment."
#: src/pages/Search.tsx:274 #: src/components/UserListPopover.tsx:157
msgid "No one yet."
msgstr "Personne pour le moment."
#: src/pages/Search.tsx:281
msgid "No playlists match \"{q}\"." msgid "No playlists match \"{q}\"."
msgstr "Aucune collection ne correspond à « {q} »." msgstr "Aucune collection ne correspond à « {q} »."
#: src/components/PlaylistMembershipPanel.tsx:34 #: src/components/PlaylistMembershipPanel.tsx:34
#: src/pages/UserPlaylists.tsx:397 #: src/pages/UserPlaylists.tsx:397
#: src/pages/UserPublicProfile.tsx:1044 #: src/pages/UserPublicProfile.tsx:1047
msgid "No playlists yet." msgid "No playlists yet."
msgstr "Pas encore de collections." msgstr "Pas encore de collections."
#: src/pages/Search.tsx:248 #: src/pages/Search.tsx:255
msgid "No users match \"{q}\"." msgid "No users match \"{q}\"."
msgstr "Aucun utilisateur ne correspond à « {q} »." msgstr "Aucun utilisateur ne correspond à « {q} »."
#: src/pages/UserPublicProfile.tsx:1091 #: src/pages/UserPublicProfile.tsx:1094
msgid "Not following anyone yet." msgid "Not following anyone yet."
msgstr "Aucun abonnement pour le moment." msgstr "Aucun abonnement pour le moment."
#: src/pages/Notifications.tsx:349 #: src/pages/Notifications.tsx:374
#: src/pages/UserDumps.tsx:123 #: src/pages/UserDumps.tsx:125
#: src/pages/UserPublicProfile.tsx:1318 #: src/pages/UserPublicProfile.tsx:1323
#: src/pages/UserPublicProfile.tsx:1441 #: src/pages/UserPublicProfile.tsx:1446
#: src/pages/UserUpvoted.tsx:195 #: src/pages/UserUpvoted.tsx:195
msgid "Nothing here yet." msgid "Nothing here yet."
msgstr "Rien ici pour l'instant." msgstr "Rien ici pour l'instant."
#: src/components/NotificationBell.tsx:42 #: src/components/NotificationBell.tsx:42
#: src/pages/Notifications.tsx:327 #: src/pages/Notifications.tsx:352
msgid "Notifications" msgid "Notifications"
msgstr "Notifications" msgstr "Notifications"
@@ -736,7 +770,7 @@ msgstr "Notifications"
msgid "Notifications ({unreadNotificationCount} unread)" msgid "Notifications ({unreadNotificationCount} unread)"
msgstr "Notifications ({unreadNotificationCount} non lues)" msgstr "Notifications ({unreadNotificationCount} non lues)"
#: src/components/SearchBar.tsx:83 #: src/components/SearchBar.tsx:84
msgid "Open search" msgid "Open search"
msgstr "Ouvrir la recherche" msgstr "Ouvrir la recherche"
@@ -745,7 +779,7 @@ msgid "or <0>browse files</0>"
msgstr "ou <0>parcourir les fichiers</0>" msgstr "ou <0>parcourir les fichiers</0>"
#: src/pages/UserLogin.tsx:106 #: src/pages/UserLogin.tsx:106
#: src/pages/UserPublicProfile.tsx:1198 #: src/pages/UserPublicProfile.tsx:1201
msgid "Password" msgid "Password"
msgstr "Mot de passe" msgstr "Mot de passe"
@@ -767,49 +801,49 @@ msgstr "Mot de passe mis à jour"
msgid "Passwords do not match" msgid "Passwords do not match"
msgstr "Les mots de passe ne correspondent pas" msgstr "Les mots de passe ne correspondent pas"
#: src/components/AppHeader.tsx:82 #: src/components/AppHeader.tsx:85
#: src/components/UserMenu.tsx:62 #: src/components/UserMenu.tsx:62
#: src/pages/Search.tsx:175 #: src/pages/Search.tsx:175
#: src/pages/UserPlaylists.tsx:368 #: src/pages/UserPlaylists.tsx:368
#: src/pages/UserPublicProfile.tsx:966 #: src/pages/UserPublicProfile.tsx:969
msgid "Playlists" msgid "Playlists"
msgstr "Collections" msgstr "Collections"
#. placeholder {0}: playlists.items.length #. placeholder {0}: playlists.items.length
#. placeholder {1}: playlists.hasMore ? "+" : "" #. placeholder {1}: playlists.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:1013 #: src/pages/UserPublicProfile.tsx:1016
msgid "Playlists ({0}{1})" msgid "Playlists ({0}{1})"
msgstr "Collections ({0}{1})" msgstr "Collections ({0}{1})"
#: src/components/DumpCreateModal.tsx:195 #: src/components/DumpCreateModal.tsx:204
msgid "Please select a file." msgid "Please select a file."
msgstr "Veuillez sélectionner un fichier." msgstr "Veuillez sélectionner un fichier."
#: src/components/CommentThread.tsx:499 #: src/components/CommentThread.tsx:512
msgid "Post comment" msgid "Post comment"
msgstr "Publier le commentaire" msgstr "Publier le commentaire"
#: src/components/CommentThread.tsx:362 #: src/components/CommentThread.tsx:375
msgid "Post reply" msgid "Post reply"
msgstr "Publier la réponse" msgstr "Publier la réponse"
#: src/components/CommentThread.tsx:361 #: src/components/CommentThread.tsx:374
#: src/components/CommentThread.tsx:498 #: src/components/CommentThread.tsx:511
msgid "Posting…" msgid "Posting…"
msgstr "Publication…" msgstr "Publication…"
#: src/components/DumpCard.tsx:104 #: src/components/DumpCard.tsx:104
#: src/components/JournalCard.tsx:87 #: src/components/JournalCard.tsx:105
#: src/components/PlaylistCard.tsx:73 #: src/components/PlaylistCard.tsx:73
#: src/components/PlaylistMembershipPanel.tsx:55 #: src/components/PlaylistMembershipPanel.tsx:55
#: src/pages/Dump.tsx:287 #: src/pages/Dump.tsx:389
#: src/pages/PlaylistDetail.tsx:759 #: src/pages/PlaylistDetail.tsx:759
msgid "private" msgid "private"
msgstr "privé" msgstr "privé"
#: src/components/DumpCreateModal.tsx:404 #: src/components/DumpCreateModal.tsx:450
#: src/components/PlaylistCreateForm.tsx:99 #: src/components/PlaylistCreateForm.tsx:99
#: src/pages/DumpEdit.tsx:285 #: src/pages/DumpEdit.tsx:306
#: src/pages/PlaylistDetail.tsx:746 #: src/pages/PlaylistDetail.tsx:746
msgid "Private" msgid "Private"
msgstr "Privé" msgstr "Privé"
@@ -819,18 +853,18 @@ msgstr "Privé"
msgid "public" msgid "public"
msgstr "public" msgstr "public"
#: src/components/DumpCreateModal.tsx:396 #: src/components/DumpCreateModal.tsx:442
#: src/components/PlaylistCreateForm.tsx:92 #: src/components/PlaylistCreateForm.tsx:92
#: src/pages/DumpEdit.tsx:278 #: src/pages/DumpEdit.tsx:299
#: src/pages/PlaylistDetail.tsx:739 #: src/pages/PlaylistDetail.tsx:739
msgid "Public" msgid "Public"
msgstr "Public" msgstr "Public"
#: src/pages/DumpEdit.tsx:214 #: src/pages/DumpEdit.tsx:221
msgid "Refresh metadata" msgid "Refresh metadata"
msgstr "Actualiser les métadonnées" msgstr "Actualiser les métadonnées"
#: src/pages/DumpEdit.tsx:213 #: src/pages/DumpEdit.tsx:220
msgid "Refreshing…" msgid "Refreshing…"
msgstr "Actualisation…" msgstr "Actualisation…"
@@ -855,11 +889,19 @@ msgstr "Supprimer le fichier"
msgid "Remove from playlist" msgid "Remove from playlist"
msgstr "Retirer de la collection" msgstr "Retirer de la collection"
#: src/pages/DumpEdit.tsx:251 #: src/components/LikeButton.tsx:30
msgid "Remove like"
msgstr "Retirer le j'aime"
#: src/components/VoteButton.tsx:28
msgid "Remove vote"
msgstr "Retirer le vote"
#: src/pages/DumpEdit.tsx:272
msgid "Replace file" msgid "Replace file"
msgstr "Remplacer le fichier" msgstr "Remplacer le fichier"
#: src/components/CommentThread.tsx:297 #: src/components/CommentThread.tsx:310
msgid "Reply" msgid "Reply"
msgstr "Répondre" msgstr "Répondre"
@@ -871,42 +913,44 @@ msgstr "Échec de la demande"
msgid "Reset failed" msgid "Reset failed"
msgstr "Échec de la réinitialisation" msgstr "Échec de la réinitialisation"
#: src/pages/Dump.tsx:211 #: src/pages/Dump.tsx:217
#: src/pages/DumpEdit.tsx:163 #: src/pages/DumpEdit.tsx:170
msgid "Retry" msgid "Retry"
msgstr "Réessayer" msgstr "Réessayer"
#: src/components/CommentThread.tsx:270 #: src/components/CommentThread.tsx:275
#: src/pages/DumpEdit.tsx:306 #: src/pages/Dump.tsx:322
#: src/pages/DumpEdit.tsx:329
#: src/pages/PlaylistDetail.tsx:673 #: src/pages/PlaylistDetail.tsx:673
#: src/pages/UserPublicProfile.tsx:834 #: src/pages/UserPublicProfile.tsx:834
#: src/pages/UserPublicProfile.tsx:913 #: src/pages/UserPublicProfile.tsx:916
msgid "Save" msgid "Save"
msgstr "Enregistrer" msgstr "Enregistrer"
#: src/components/ChangePasswordModal.tsx:177 #: src/components/ChangePasswordModal.tsx:177
#: src/components/CommentThread.tsx:269 #: src/components/CommentThread.tsx:274
#: src/pages/Dump.tsx:322
#: src/pages/PlaylistDetail.tsx:673 #: src/pages/PlaylistDetail.tsx:673
#: src/pages/ResetPassword.tsx:152 #: src/pages/ResetPassword.tsx:152
#: src/pages/UserPublicProfile.tsx:833 #: src/pages/UserPublicProfile.tsx:833
#: src/pages/UserPublicProfile.tsx:913 #: src/pages/UserPublicProfile.tsx:916
msgid "Saving…" msgid "Saving…"
msgstr "Enregistrement…" msgstr "Enregistrement…"
#: src/components/AppHeader.tsx:62 #: src/components/AppHeader.tsx:65
#: src/components/SearchBar.tsx:77 #: src/components/SearchBar.tsx:78
msgid "Search" msgid "Search"
msgstr "Rechercher" msgstr "Rechercher"
#: src/components/SearchBar.tsx:73 #: src/components/SearchBar.tsx:74
msgid "Search dumps, users, playlists…" msgid "Search dumps, users, playlists…"
msgstr "Rechercher des recos, utilisateurs, collections…" msgstr "Rechercher des recos, utilisateurs, collections…"
#: src/pages/Search.tsx:209 #: src/pages/Search.tsx:216
msgid "Search failed" msgid "Search failed"
msgstr "Recherche échouée" msgstr "Recherche échouée"
#: src/pages/Search.tsx:204 #: src/pages/Search.tsx:211
msgid "Searching…" msgid "Searching…"
msgstr "Recherche…" msgstr "Recherche…"
@@ -918,7 +962,7 @@ msgstr "Envoyer le lien de réinitialisation"
msgid "Sending…" msgid "Sending…"
msgstr "Envoi…" msgstr "Envoi…"
#: src/components/AppHeader.tsx:97 #: src/components/AppHeader.tsx:100
msgid "Server unreachable" msgid "Server unreachable"
msgstr "Serveur inaccessible" msgstr "Serveur inaccessible"
@@ -927,7 +971,7 @@ msgstr "Serveur inaccessible"
msgid "Set new password" msgid "Set new password"
msgstr "Définir un nouveau mot de passe" msgstr "Définir un nouveau mot de passe"
#: src/pages/UserPublicProfile.tsx:970 #: src/pages/UserPublicProfile.tsx:973
msgid "Settings" msgid "Settings"
msgstr "Paramètres" msgstr "Paramètres"
@@ -935,11 +979,11 @@ msgstr "Paramètres"
msgid "Something went wrong" msgid "Something went wrong"
msgstr "Une erreur est survenue" msgstr "Une erreur est survenue"
#: src/pages/UserPublicProfile.tsx:1217 #: src/pages/UserPublicProfile.tsx:1220
msgid "Style" msgid "Style"
msgstr "Style" msgstr "Style"
#: src/components/SearchBar.tsx:83 #: src/components/SearchBar.tsx:84
msgid "Submit search" msgid "Submit search"
msgstr "Lancer la recherche" msgstr "Lancer la recherche"
@@ -959,11 +1003,13 @@ msgstr "Rien à voir, circulez."
msgid "This reset link is missing or malformed." msgid "This reset link is missing or malformed."
msgstr "Ce lien de réinitialisation est absent ou malformé." msgstr "Ce lien de réinitialisation est absent ou malformé."
#: src/components/DumpCreateModal.tsx:384
#: src/components/PlaylistCreateForm.tsx:72 #: src/components/PlaylistCreateForm.tsx:72
#: src/pages/DumpEdit.tsx:235
msgid "Title" msgid "Title"
msgstr "Titre" msgstr "Titre"
#: src/pages/Notifications.tsx:365 #: src/pages/Notifications.tsx:390
msgid "Today" msgid "Today"
msgstr "Aujourd'hui" msgstr "Aujourd'hui"
@@ -988,26 +1034,30 @@ msgstr "Erreur inconnue"
msgid "Upload failed" msgid "Upload failed"
msgstr "Envoi échoué" msgstr "Envoi échoué"
#: src/components/DumpCreateModal.tsx:426 #: src/components/DumpCreateModal.tsx:472
msgid "Uploading…" msgid "Uploading…"
msgstr "Envoi…" msgstr "Envoi…"
#: src/components/VoteButton.tsx:28
msgid "Upvote"
msgstr "Voter"
#: src/pages/UserUpvoted.tsx:191 #: src/pages/UserUpvoted.tsx:191
msgid "Upvoted" msgid "Upvoted"
msgstr "Voté" msgstr "Voté"
#. placeholder {0}: votes.items.length #. placeholder {0}: votes.items.length
#. placeholder {1}: votes.hasMore ? "+" : "" #. placeholder {1}: votes.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:993 #: src/pages/UserPublicProfile.tsx:996
msgid "Upvoted ({0}{1})" msgid "Upvoted ({0}{1})"
msgstr "Votés ({0}{1})" msgstr "Votés ({0}{1})"
#: src/components/DumpCreateModal.tsx:325 #: src/components/DumpCreateModal.tsx:335
#: src/pages/DumpEdit.tsx:230 #: src/pages/DumpEdit.tsx:251
msgid "URL" msgid "URL"
msgstr "URL" msgstr "URL"
#: src/components/DumpCreateModal.tsx:178 #: src/components/DumpCreateModal.tsx:187
msgid "URL is required." msgid "URL is required."
msgstr "L'URL est obligatoire." msgstr "L'URL est obligatoire."
@@ -1024,42 +1074,42 @@ msgstr "Nom d'utilisateur"
msgid "Users" msgid "Users"
msgstr "Utilisateurs" msgstr "Utilisateurs"
#: src/pages/UserPublicProfile.tsx:1063 #: src/pages/UserPublicProfile.tsx:1066
#: src/pages/UserPublicProfile.tsx:1106 #: src/pages/UserPublicProfile.tsx:1109
#: src/pages/UserPublicProfile.tsx:1148 #: src/pages/UserPublicProfile.tsx:1151
#: src/pages/UserPublicProfile.tsx:1339 #: src/pages/UserPublicProfile.tsx:1344
#: src/pages/UserPublicProfile.tsx:1471 #: src/pages/UserPublicProfile.tsx:1476
msgid "View all →" msgid "View all →"
msgstr "Tout voir →" msgstr "Tout voir →"
#: src/components/DumpCreateModal.tsx:440 #: src/components/DumpCreateModal.tsx:486
msgid "View dump →" msgid "View dump →"
msgstr "Voir la reco →" msgstr "Voir la reco →"
#: src/components/DumpCreateModal.tsx:383 #: src/components/DumpCreateModal.tsx:429
#: src/pages/DumpEdit.tsx:266 #: src/pages/DumpEdit.tsx:287
msgid "What makes it worth it?" msgid "What makes it worth it?"
msgstr "Pourquoi on en voudrait ?" msgstr "Pourquoi on en voudrait ?"
#: src/pages/UserPublicProfile.tsx:901 #: src/pages/UserPublicProfile.tsx:904
#: src/pages/UserPublicProfile.tsx:950 #: src/pages/UserPublicProfile.tsx:953
msgid "Who am I?" msgid "Who am I?"
msgstr "Qui suis-je ?" msgstr "Qui suis-je ?"
#: src/components/DumpCreateModal.tsx:376 #: src/components/DumpCreateModal.tsx:422
#: src/pages/DumpEdit.tsx:260 #: src/pages/DumpEdit.tsx:281
msgid "Why?" msgid "Why?"
msgstr "Pourquoi ?" msgstr "Pourquoi ?"
#: src/components/CommentThread.tsx:342 #: src/components/CommentThread.tsx:355
msgid "Write a reply…" msgid "Write a reply…"
msgstr "Écrire une réponse…" msgstr "Écrire une réponse…"
#: src/pages/Notifications.tsx:367 #: src/pages/Notifications.tsx:392
msgid "Yesterday" msgid "Yesterday"
msgstr "Hier" msgstr "Hier"
#: src/pages/Notifications.tsx:352 #: src/pages/Notifications.tsx:377
msgid "You'll be notified when someone follows your playlists, upvotes your dumps, or posts new content." 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." msgstr "Vous serez notifié lorsque quelqu'un suit vos collections, vote pour vos recos ou publie du nouveau contenu."
@@ -1067,7 +1117,7 @@ msgstr "Vous serez notifié lorsque quelqu'un suit vos collections, vote pour vo
#: src/pages/index/HotFeed.tsx:69 #: src/pages/index/HotFeed.tsx:69
#: src/pages/index/JournalFeed.tsx:82 #: src/pages/index/JournalFeed.tsx:82
#: src/pages/index/NewFeed.tsx:69 #: src/pages/index/NewFeed.tsx:69
#: src/pages/Search.tsx:240 #: src/pages/Search.tsx:247
#: src/pages/UserDumps.tsx:98 #: src/pages/UserDumps.tsx:98
#: src/pages/UserPlaylists.tsx:422 #: src/pages/UserPlaylists.tsx:422
#: src/pages/UserPlaylists.tsx:457 #: src/pages/UserPlaylists.tsx:457