v3: added localization, use global player for uploaded audio/video files

This commit is contained in:
khannurien
2026-04-03 15:29:33 +00:00
parent 378b3ffa46
commit 0ce80398a4
64 changed files with 4248 additions and 941 deletions

870
src/locales/fr.po Normal file
View File

@@ -0,0 +1,870 @@
msgid ""
msgstr ""
"POT-Creation-Date: 2026-04-01 16:55+0000\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: @lingui/cli\n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: src/components/CommentThread.tsx:170
msgid "[deleted]"
msgstr "[supprimé]"
#. placeholder {0}: dump.commentCount
#: src/components/DumpCard.tsx:82
msgid "{0, plural, one {# comment} other {# comments}}"
msgstr "{0, plural, one {# commentaire} other {# commentaires}}"
#. placeholder {0}: playlist.dumpCount
#: src/components/PlaylistCard.tsx:84
msgid "{0, plural, one {# dump} other {# dumps}}"
msgstr "{0, plural, one {# reco} other {# recos}}"
#. placeholder {0}: VALIDATION.USERNAME_MIN
#. placeholder {1}: VALIDATION.USERNAME_MAX
#: src/pages/UserRegister.tsx:128
msgid "{0}{1} characters: letters, numbers, or underscores"
msgstr "{0}{1} caractères : lettres, chiffres ou tirets bas"
#: src/pages/Notifications.tsx:184
msgid "{days}d ago"
msgstr "il y a {days}j"
#: src/pages/Notifications.tsx:182
msgid "{hrs}h ago"
msgstr "il y a {hrs}h"
#: src/pages/Search.tsx:176
msgid "{label} ({count})"
msgstr "{label} ({count})"
#: src/pages/Notifications.tsx:180
msgid "{mins}m ago"
msgstr "il y a {mins}min"
#: src/components/CommentThread.tsx:436
msgid "{visibleCount, plural, one {# comment} other {# comments}}"
msgstr "{visibleCount, plural, one {# commentaire} other {# commentaires}}"
#: src/pages/PlaylistDetail.tsx:605
#: src/pages/UserPublicProfile.tsx:606
msgid "← Back"
msgstr "← Retour"
#: src/pages/Dump.tsx:216
#: src/pages/Dump.tsx:318
#: src/pages/DumpEdit.tsx:166
msgid "← Back to all dumps"
msgstr "← Retour à toutes les recos"
#: src/pages/UserDumps.tsx:61
#: src/pages/UserPlaylists.tsx:352
#: src/pages/UserUpvoted.tsx:130
msgid "← Back to profile"
msgstr "← Retour au profil"
#: src/pages/UserPublicProfile.tsx:90
msgid "+ Invite someone"
msgstr "+ Inviter quelqu'un"
#: src/components/AppHeader.tsx:63
msgid "+ New"
msgstr "+ Nouveau"
#: src/pages/UserDumps.tsx:82
#: src/pages/UserPublicProfile.tsx:922
msgid "+ New dump"
msgstr "+ Nouvelle reco"
#: src/components/PlaylistMembershipPanel.tsx:72
msgid "+ New playlist"
msgstr "+ Nouvelle collection"
#: src/pages/Dump.tsx:248
msgid "+ Playlist"
msgstr "+ Collection"
#. placeholder {0}: d.followerUsername
#. placeholder {1}: d.playlistTitle
#: src/pages/Notifications.tsx:124
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:166
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:134
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:115
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:154
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:144
msgid "<0>{0}</0> was added to <1>{1}</1>"
msgstr "<0>{0}</0> a été ajouté à <1>{1}</1>"
#: src/pages/Notifications.tsx:164
msgid "a comment"
msgstr "un commentaire"
#: src/pages/Notifications.tsx:164
msgid "a post"
msgstr "une publication"
#: src/pages/UserPublicProfile.tsx:802
msgid "Add a bio…"
msgstr "Ajouter une bio…"
#: src/components/CommentThread.tsx:456
msgid "Add a comment…"
msgstr "Ajouter un commentaire…"
#: src/pages/UserPublicProfile.tsx:718
msgid "Add email…"
msgstr "Ajouter un e-mail…"
#: src/components/AddToPlaylistModal.tsx:64
#: src/components/DumpCreateModal.tsx:262
msgid "Add to playlist"
msgstr "Ajouter à la collection"
#. placeholder {0}: dumps.length
#: src/pages/UserDumps.tsx:114
msgid "All {0, plural, one {# dump} other {# dumps}} loaded."
msgstr "Toutes les {0, plural, one {# reco} other {# recos}} chargées."
#. placeholder {0}: votes.length
#: src/pages/UserUpvoted.tsx:184
msgid "All {0, plural, one {# upvoted dump} other {# upvoted dumps}} loaded."
msgstr "Toutes les {0, plural, one {# reco votée} other {# recos votées}} chargées."
#: src/pages/UserRegister.tsx:160
msgid "Already have an account? <0>Log in</0>"
msgstr "Vous avez déjà un compte ? <0>Se connecter</0>"
#: src/contexts/WSProvider.tsx:168
#: src/contexts/WSProvider.tsx:360
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."
#: src/components/CommentThread.tsx:268
#: src/components/CommentThread.tsx:353
#: src/components/CommentThread.tsx:483
#: src/components/ConfirmModal.tsx:32
#: src/components/DumpCreateModal.tsx:394
#: src/components/PlaylistCreateForm.tsx:105
#: src/pages/DumpEdit.tsx:288
#: src/pages/PlaylistDetail.tsx:672
#: src/pages/UserPublicProfile.tsx:700
#: src/pages/UserPublicProfile.tsx:773
msgid "Cancel"
msgstr "Annuler"
#: src/pages/PlaylistDetail.tsx:848
msgid "Cancel removal"
msgstr "Annuler la suppression"
#: src/pages/UserPublicProfile.tsx:633
msgid "Change avatar"
msgstr "Changer l'avatar"
#: src/pages/UserRegister.tsx:94
msgid "Checking invite…"
msgstr "Vérification de l'invitation…"
#: src/components/Modal.tsx:45
msgid "Close"
msgstr "Fermer"
#: src/pages/UserPublicProfile.tsx:81
msgid "Copied!"
msgstr "Copié !"
#: src/pages/UserPublicProfile.tsx:81
msgid "Copy"
msgstr "Copier"
#: src/components/CommentThread.tsx:108
#: src/components/CommentThread.tsx:147
#: src/components/CommentThread.tsx:425
msgid "Could not reach the server. Please try again."
msgstr "Impossible de contacter le serveur. Veuillez réessayer."
#: src/components/PlaylistCreateForm.tsx:116
msgid "Create"
msgstr "Créer"
#: src/components/PlaylistCreateForm.tsx:115
msgid "Create & Add"
msgstr "Créer et ajouter"
#. placeholder {0}: created.items.length
#. placeholder {1}: created.hasMore ? "+" : ""
#: src/pages/UserPlaylists.tsx:386
msgid "Created ({0}{1})"
msgstr "Créées ({0}{1})"
#: src/components/PlaylistCreateForm.tsx:113
msgid "Creating…"
msgstr "Création…"
#: src/components/CommentThread.tsx:306
#: src/components/CommentThread.tsx:312
#: src/components/ConfirmModal.tsx:16
#: src/pages/PlaylistDetail.tsx:679
msgid "Delete"
msgstr "Supprimer"
#: src/pages/DumpEdit.tsx:284
#: src/pages/DumpEdit.tsx:300
msgid "Delete dump"
msgstr "Supprimer la reco"
#: src/components/PlaylistCard.tsx:107
#: src/pages/PlaylistDetail.tsx:861
#: src/pages/UserPlaylists.tsx:443
msgid "Delete playlist"
msgstr "Supprimer la collection"
#: src/components/CommentThread.tsx:311
msgid "Delete this comment?"
msgstr "Supprimer ce commentaire ?"
#: src/pages/DumpEdit.tsx:299
msgid "Delete this dump? This cannot be undone."
msgstr "Supprimer cette reco ? Cette action est irréversible."
#: src/pages/PlaylistDetail.tsx:860
#: src/pages/UserPlaylists.tsx:442
msgid "Delete this playlist? This cannot be undone."
msgstr "Supprimer cette collection ? Cette action est irréversible."
#: src/components/PlaylistCreateForm.tsx:76
#: src/pages/PlaylistDetail.tsx:710
msgid "Description (optional)"
msgstr "Description (facultatif)"
#: src/components/DumpCreateModal.tsx:439
msgid "Done"
msgstr "Terminé"
#: src/components/FileDropZone.tsx:32
msgid "Drop a file here"
msgstr "Déposez un fichier ici"
#: src/pages/DumpEdit.tsx:242
msgid "Drop a replacement here"
msgstr "Déposez un fichier de remplacement ici"
#: src/components/DumpCreateModal.tsx:405
msgid "Dump it"
msgstr "Recommander"
#: src/components/DumpCreateModal.tsx:416
msgid "Dumped!"
msgstr "Recommandé !"
#: src/pages/Search.tsx:172
#: src/pages/UserDumps.tsx:75
msgid "Dumps"
msgstr "Recos"
#. placeholder {0}: dumps.items.length
#. placeholder {1}: dumps.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:817
msgid "Dumps ({0}{1})"
msgstr "Recos ({0}{1})"
#: src/pages/Notifications.tsx:341
msgid "Earlier"
msgstr "Plus tôt"
#: src/components/CommentThread.tsx:297
#: src/pages/Dump.tsx:315
#: src/pages/PlaylistDetail.tsx:698
msgid "Edit"
msgstr "Modifier"
#. placeholder {0}: relativeTime(comment.updatedAt)
#. placeholder {0}: relativeTime(dump.updatedAt)
#. placeholder {0}: relativeTime(playlist.updatedAt)
#: src/components/CommentThread.tsx:231
#: src/pages/Dump.tsx:276
#: src/pages/PlaylistDetail.tsx:768
msgid "edited {0}"
msgstr "modifié {0}"
#. placeholder {0}: comment.updatedAt.toLocaleString()
#. placeholder {0}: dump.updatedAt.toLocaleString()
#. placeholder {0}: playlist.updatedAt.toLocaleString()
#: src/components/CommentThread.tsx:229
#: src/pages/Dump.tsx:274
#: src/pages/PlaylistDetail.tsx:765
msgid "Edited {0}"
msgstr "Modifié le {0}"
#: src/pages/DumpEdit.tsx:180
msgid "Editing"
msgstr "Modification"
#: src/pages/UserRegister.tsx:135
msgid "Email address"
msgstr "Adresse e-mail"
#: src/pages/Search.tsx:206
msgid "Enter a query to search."
msgstr "Saisissez une recherche."
#: src/components/PlaylistCreateForm.tsx:59
#: src/components/PlaylistCreateForm.tsx:97
msgid "Failed to create playlist"
msgstr "Impossible de créer la collection"
#: src/pages/UserPublicProfile.tsx:62
#: src/pages/UserPublicProfile.tsx:65
#: src/pages/UserPublicProfile.tsx:92
msgid "Failed to generate invite"
msgstr "Impossible de générer une invitation"
#: src/pages/index/FollowedFeed.tsx:77
#: src/pages/index/HotFeed.tsx:30
#: src/pages/index/JournalFeed.tsx:42
#: src/pages/index/NewFeed.tsx:30
#: src/pages/Notifications.tsx:321
msgid "Failed to load"
msgstr "Chargement échoué"
#: src/components/DumpCreateModal.tsx:300
msgid "Failed to post"
msgstr "Publication échouée"
#: src/components/CommentThread.tsx:462
msgid "Failed to post comment"
msgstr "Impossible de publier le commentaire"
#: src/components/CommentThread.tsx:334
msgid "Failed to post reply"
msgstr "Impossible de publier la réponse"
#: src/pages/PlaylistDetail.tsx:776
#: src/pages/UserPublicProfile.tsx:546
#: src/pages/UserPublicProfile.tsx:581
#: src/pages/UserPublicProfile.tsx:704
#: src/pages/UserPublicProfile.tsx:776
msgid "Failed to save"
msgstr "Enregistrement échoué"
#: src/components/CommentThread.tsx:249
msgid "Failed to save edit"
msgstr "Impossible d'enregistrer la modification"
#: src/pages/UserPublicProfile.tsx:726
msgid "Failed to update avatar"
msgstr "Impossible de mettre à jour l'avatar"
#: src/components/DumpCreateModal.tsx:333
msgid "Fetching preview…"
msgstr "Récupération de l'aperçu…"
#: src/components/DumpCreateModal.tsx:403
msgid "Fetching…"
msgstr "Récupération…"
#: src/components/DumpCreateModal.tsx:293
#: src/components/FileDropZone.tsx:31
msgid "File"
msgstr "Fichier"
#: src/components/DumpCreateModal.tsx:187
msgid "File too large (max 50 MB)."
msgstr "Fichier trop volumineux (max 50 Mo)."
#: src/components/FollowButton.tsx:37
#: src/components/FollowButton.tsx:64
msgid "Follow"
msgstr "Suivre"
#: src/components/FollowButton.tsx:35
msgid "Follow {targetUsername}"
msgstr "Suivre {targetUsername}"
#: src/components/FollowButton.tsx:62
msgid "Follow playlist"
msgstr "Suivre la collection"
#: src/pages/index/FollowedFeed.tsx:359
msgid "Follow some public playlists to see their dumps here."
msgstr "Suivez des collections publiques pour voir leurs recos ici."
#: src/pages/index/FollowedFeed.tsx:345
msgid "Follow some users to see their dumps here."
msgstr "Suivez des utilisateurs pour voir leurs recos ici."
#: src/components/FeedTabBar.tsx:47
msgid "Followed"
msgstr "Suivi"
#. placeholder {0}: followed.items.length
#. placeholder {1}: followed.hasMore ? "+" : ""
#: src/pages/UserPlaylists.tsx:416
msgid "Followed ({0}{1})"
msgstr "Suivies ({0}{1})"
#: src/components/FollowButton.tsx:37
#: src/components/FollowButton.tsx:64
msgid "Following"
msgstr "Abonné"
#: src/pages/index/FollowedFeed.tsx:325
msgid "From people"
msgstr "De personnes"
#: src/pages/index/FollowedFeed.tsx:332
msgid "From playlists"
msgstr "De collections"
#: src/components/FeedTabBar.tsx:25
msgid "Hot"
msgstr "Tendances"
#: src/pages/UserRegister.tsx:104
msgid "Invalid invite"
msgstr "Invitation invalide"
#: src/pages/UserPublicProfile.tsx:651
msgid "invited by"
msgstr "invité par"
#: src/components/FeedTabBar.tsx:39
msgid "Journal"
msgstr "Journal"
#: src/pages/Notifications.tsx:178
msgid "just now"
msgstr "à l'instant"
#: src/contexts/WSProvider.tsx:359
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:79
msgid "Live updates unavailable."
msgstr "Mises à jour en direct indisponibles."
#: src/pages/Notifications.tsx:386
msgid "Load more"
msgstr "Charger plus"
#: src/pages/Dump.tsx:193
#: src/pages/DumpEdit.tsx:143
msgid "Loading dump…"
msgstr "Chargement de la reco…"
#: src/pages/index/FollowedFeed.tsx:103
#: src/pages/index/HotFeed.tsx:52
#: src/pages/index/JournalFeed.tsx:65
#: src/pages/index/NewFeed.tsx:52
#: src/pages/Search.tsx:239
#: src/pages/UserDumps.tsx:111
#: src/pages/UserPlaylists.tsx:409
#: src/pages/UserPlaylists.tsx:436
#: src/pages/UserUpvoted.tsx:180
msgid "Loading more…"
msgstr "Chargement…"
#: src/pages/PlaylistDetail.tsx:590
msgid "Loading playlist…"
msgstr "Chargement de la collection…"
#: src/pages/UserPublicProfile.tsx:590
msgid "Loading profile…"
msgstr "Chargement du profil…"
#: src/components/PlaylistMembershipPanel.tsx:26
#: src/components/TextEditor.tsx:273
#: src/pages/index/FollowedFeed.tsx:74
#: src/pages/index/HotFeed.tsx:29
#: src/pages/index/JournalFeed.tsx:41
#: src/pages/index/NewFeed.tsx:29
#: src/pages/Notifications.tsx:318
#: src/pages/Notifications.tsx:386
#: src/pages/UserDumps.tsx:50
#: src/pages/UserPlaylists.tsx:341
#: src/pages/UserUpvoted.tsx:119
msgid "Loading…"
msgstr "Chargement…"
#: src/components/AppHeader.tsx:70
#: src/pages/UserLogin.tsx:62
#: src/pages/UserLogin.tsx:91
msgid "Log in"
msgstr "Se connecter"
#: src/pages/UserPublicProfile.tsx:610
#: src/pages/UserPublicProfile.tsx:738
msgid "Log out"
msgstr "Se déconnecter"
#: src/pages/UserLogin.tsx:90
msgid "Logging in…"
msgstr "Connexion…"
#: src/pages/UserLogin.tsx:65
msgid "Login failed"
msgstr "Connexion échouée"
#: src/components/FileDropZone.tsx:141
msgid "Max 50 MB"
msgstr "Max 50 Mo"
#: src/pages/Notifications.tsx:312
msgid "new"
msgstr "nouveau"
#: src/components/FeedTabBar.tsx:32
msgid "New"
msgstr "Nouveau"
#: src/components/DumpCreateModal.tsx:262
msgid "New dump"
msgstr "Nouvelle reco"
#: src/pages/PlaylistDetail.tsx:783
msgid "No dumps in this playlist yet."
msgstr "Aucune reco dans cette collection pour l'instant."
#: src/pages/Search.tsx:220
msgid "No dumps match \"{q}\"."
msgstr "Aucune reco ne correspond à « {q} »."
#: src/pages/index/HotFeed.tsx:32
#: src/pages/index/JournalFeed.tsx:44
#: src/pages/index/NewFeed.tsx:32
msgid "No dumps yet. Be the first!"
msgstr "Pas encore de recos. Soyez le premier !"
#: src/components/TextEditor.tsx:274
msgid "No emoji found."
msgstr "Aucun emoji trouvé."
#: src/pages/UserPlaylists.tsx:424
msgid "No followed playlists yet."
msgstr "Pas encore de collections suivies."
#: src/pages/Search.tsx:273
msgid "No playlists match \"{q}\"."
msgstr "Aucune collection ne correspond à « {q} »."
#: src/components/PlaylistMembershipPanel.tsx:28
#: src/pages/UserPlaylists.tsx:392
#: src/pages/UserPublicProfile.tsx:865
msgid "No playlists yet."
msgstr "Pas encore de collections."
#: src/pages/Search.tsx:249
msgid "No users match \"{q}\"."
msgstr "Aucun utilisateur ne correspond à « {q} »."
#: src/pages/Notifications.tsx:327
#: src/pages/UserDumps.tsx:92
#: src/pages/UserPublicProfile.tsx:930
#: src/pages/UserPublicProfile.tsx:1049
#: src/pages/UserUpvoted.tsx:151
msgid "Nothing here yet."
msgstr "Rien ici pour l'instant."
#: src/components/NotificationBell.tsx:42
#: src/pages/Notifications.tsx:308
msgid "Notifications"
msgstr "Notifications"
#: src/components/NotificationBell.tsx:41
msgid "Notifications ({unreadNotificationCount} unread)"
msgstr "Notifications ({unreadNotificationCount} non lues)"
#: src/components/SearchBar.tsx:71
msgid "Open search"
msgstr "Ouvrir la recherche"
#: src/components/FileDropZone.tsx:139
msgid "or <0>browse files</0>"
msgstr "ou <0>parcourir les fichiers</0>"
#: src/pages/UserLogin.tsx:80
msgid "Password"
msgstr "Mot de passe"
#. placeholder {0}: VALIDATION.PASSWORD_MIN
#: src/pages/UserRegister.tsx:142
msgid "Password (min. {0} characters)"
msgstr "Mot de passe (min. {0} caractères)"
#: src/components/AppHeader.tsx:46
#: src/components/UserMenu.tsx:62
#: src/pages/Search.tsx:175
#: src/pages/UserPlaylists.tsx:366
msgid "Playlists"
msgstr "Collections"
#. placeholder {0}: playlists.items.length
#. placeholder {1}: playlists.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:845
msgid "Playlists ({0}{1})"
msgstr "Collections ({0}{1})"
#: src/components/DumpCreateModal.tsx:180
msgid "Please select a file."
msgstr "Veuillez sélectionner un fichier."
#: src/components/CommentThread.tsx:472
msgid "Post comment"
msgstr "Publier le commentaire"
#: src/components/CommentThread.tsx:342
msgid "Post reply"
msgstr "Publier la réponse"
#: src/components/CommentThread.tsx:342
#: src/components/CommentThread.tsx:472
msgid "Posting…"
msgstr "Publication…"
#: src/components/DumpCard.tsx:91
#: src/components/PlaylistCard.tsx:71
#: src/components/PlaylistMembershipPanel.tsx:47
#: src/pages/Dump.tsx:282
#: src/pages/PlaylistDetail.tsx:748
msgid "private"
msgstr "privé"
#: src/components/DumpCreateModal.tsx:383
#: src/components/PlaylistCreateForm.tsx:94
#: src/pages/DumpEdit.tsx:274
#: src/pages/PlaylistDetail.tsx:737
msgid "Private"
msgstr "Privé"
#: src/components/PlaylistCard.tsx:71
#: src/pages/PlaylistDetail.tsx:748
msgid "public"
msgstr "public"
#: src/components/DumpCreateModal.tsx:375
#: src/components/PlaylistCreateForm.tsx:87
#: src/pages/DumpEdit.tsx:267
#: src/pages/PlaylistDetail.tsx:730
msgid "Public"
msgstr "Public"
#: src/pages/DumpEdit.tsx:206
msgid "Refresh metadata"
msgstr "Actualiser les métadonnées"
#: src/pages/DumpEdit.tsx:206
msgid "Refreshing…"
msgstr "Actualisation…"
#: src/pages/UserRegister.tsx:115
#: src/pages/UserRegister.tsx:155
msgid "Register"
msgstr "S'inscrire"
#: src/pages/UserRegister.tsx:154
msgid "Registering…"
msgstr "Inscription…"
#: src/pages/UserRegister.tsx:118
msgid "Registration failed"
msgstr "Inscription échouée"
#: src/components/FileDropZone.tsx:115
msgid "Remove file"
msgstr "Supprimer le fichier"
#: src/pages/PlaylistDetail.tsx:838
msgid "Remove from playlist"
msgstr "Retirer de la collection"
#: src/pages/DumpEdit.tsx:241
msgid "Replace file"
msgstr "Remplacer le fichier"
#: src/components/CommentThread.tsx:284
msgid "Reply"
msgstr "Répondre"
#: src/pages/Dump.tsx:209
#: src/pages/DumpEdit.tsx:159
msgid "Retry"
msgstr "Réessayer"
#: src/components/CommentThread.tsx:257
#: src/pages/DumpEdit.tsx:291
#: src/pages/PlaylistDetail.tsx:665
#: src/pages/UserPublicProfile.tsx:692
#: src/pages/UserPublicProfile.tsx:765
msgid "Save"
msgstr "Enregistrer"
#: src/components/CommentThread.tsx:257
#: src/pages/PlaylistDetail.tsx:665
#: src/pages/UserPublicProfile.tsx:692
#: src/pages/UserPublicProfile.tsx:765
msgid "Saving…"
msgstr "Enregistrement…"
#: src/components/SearchBar.tsx:65
msgid "Search"
msgstr "Rechercher"
#: src/components/SearchBar.tsx:61
msgid "Search dumps, users, playlists…"
msgstr "Rechercher des recos, utilisateurs, collections…"
#: src/pages/Search.tsx:214
msgid "Search failed"
msgstr "Recherche échouée"
#: src/pages/Search.tsx:210
msgid "Searching…"
msgstr "Recherche…"
#: src/components/AppHeader.tsx:61
msgid "Server unreachable"
msgstr "Serveur inaccessible"
#: src/components/PageError.tsx:13
msgid "Something went wrong"
msgstr "Une erreur est survenue"
#: src/components/SearchBar.tsx:71
msgid "Submit search"
msgstr "Lancer la recherche"
#: src/pages/UserPublicProfile.tsx:755
msgid "Tell people about yourself…"
msgstr "Parlez de vous…"
#: src/components/DumpCreateModal.tsx:363
#: src/pages/DumpEdit.tsx:256
msgid "Tell the community what makes this worth their time..."
msgstr "Dites à la communauté pourquoi ça vaut le coup…"
#: src/pages/UserRegister.tsx:105
msgid "This invite link is missing, expired, or already used."
msgstr "Ce lien d'invitation est manquant, expiré ou déjà utilisé."
#: src/pages/UserLogin.tsx:96
msgid "This is a mirage."
msgstr "C'est un mirage."
#: src/components/PlaylistCreateForm.tsx:69
msgid "Title"
msgstr "Titre"
#: src/pages/Notifications.tsx:341
msgid "Today"
msgstr "Aujourd'hui"
#: src/pages/PlaylistDetail.tsx:850
msgid "Undo"
msgstr "Annuler"
#: src/components/FollowButton.tsx:34
msgid "Unfollow {targetUsername}"
msgstr "Ne plus suivre {targetUsername}"
#: src/components/FollowButton.tsx:62
msgid "Unfollow playlist"
msgstr "Ne plus suivre la collection"
#: src/pages/UserPublicProfile.tsx:515
msgid "Upload failed"
msgstr "Envoi échoué"
#: src/components/DumpCreateModal.tsx:404
msgid "Uploading…"
msgstr "Envoi…"
#: src/pages/UserUpvoted.tsx:147
msgid "Upvoted"
msgstr "Voté"
#. placeholder {0}: votes.items.length
#. placeholder {1}: votes.hasMore ? "+" : ""
#: src/pages/UserPublicProfile.tsx:829
msgid "Upvoted ({0}{1})"
msgstr "Votés ({0}{1})"
#: src/components/DumpCreateModal.tsx:309
#: src/pages/DumpEdit.tsx:221
msgid "URL"
msgstr "URL"
#: src/components/DumpCreateModal.tsx:164
msgid "URL is required."
msgstr "L'URL est obligatoire."
#: src/components/UserMenu.tsx:37
msgid "User menu"
msgstr "Menu utilisateur"
#: src/pages/UserLogin.tsx:72
#: src/pages/UserRegister.tsx:125
msgid "Username"
msgstr "Nom d'utilisateur"
#: src/pages/Search.tsx:174
msgid "Users"
msgstr "Utilisateurs"
#: src/pages/UserPublicProfile.tsx:878
#: src/pages/UserPublicProfile.tsx:948
#: src/pages/UserPublicProfile.tsx:1076
msgid "View all →"
msgstr "Tout voir →"
#: src/components/DumpCreateModal.tsx:418
msgid "View dump →"
msgstr "Voir la reco →"
#: src/components/DumpCreateModal.tsx:356
#: src/pages/DumpEdit.tsx:250
msgid "Why are you dumping this?"
msgstr "Pourquoi recommandez-vous ça ?"
#: src/components/CommentThread.tsx:329
msgid "Write a reply…"
msgstr "Écrire une réponse…"
#: src/pages/Notifications.tsx:341
msgid "Yesterday"
msgstr "Hier"
#: src/pages/Notifications.tsx:329
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."
#: src/pages/index/HotFeed.tsx:54
#: src/pages/index/JournalFeed.tsx:67
#: src/pages/index/NewFeed.tsx:54
#: src/pages/Search.tsx:242
msgid "You've reached the end."
msgstr "Vous avez tout lu, tout vu, tout bu."