v3: added a chatbox
Some checks failed
Build and Publish Docker Image / build-and-push (push) Has been cancelled

This commit is contained in:
khannurien
2026-06-29 20:25:10 +00:00
parent f171027673
commit 6c4f410d9b
35 changed files with 1800 additions and 152 deletions

View File

@@ -47,8 +47,8 @@ msgstr "{visibleCount, plural, one {# commentaire} other {# commentaires}}"
msgid "← Back"
msgstr "← Retour"
#: src/pages/Dump.tsx:261
#: src/pages/Dump.tsx:491
#: src/pages/Dump.tsx:264
#: src/pages/Dump.tsx:494
#: src/pages/DumpEdit.tsx:179
msgid "← Back to all dumps"
msgstr "← Retour à toutes les recos"
@@ -67,61 +67,61 @@ msgstr "+ Inviter quelqu'un"
msgid "+ New playlist"
msgstr "+ Nouvelle collection"
#: src/pages/Dump.tsx:332
#: src/pages/Dump.tsx:335
msgid "+ Playlist"
msgstr "+ Collection"
#. placeholder {0}: d.commenterUsername
#. placeholder {1}: d.dumpTitle
#: src/pages/Notifications.tsx:195
#: src/pages/Notifications.tsx:196
msgid "<0>{0}</0> commented on <1>{1}</1>"
msgstr "<0>{0}</0> a commenté sur <1>{1}</1>"
#. placeholder {0}: d.followerUsername
#. placeholder {1}: d.playlistTitle
#: src/pages/Notifications.tsx:155
#: src/pages/Notifications.tsx:156
msgid "<0>{0}</0> followed your playlist <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:205
#: src/pages/Notifications.tsx:206
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
#: src/pages/Notifications.tsx:217
#: src/pages/Notifications.tsx:222
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:165
#: src/pages/Notifications.tsx:166
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:146
#: src/pages/Notifications.tsx:147
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:185
#: src/pages/Notifications.tsx:186
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:175
#: src/pages/Notifications.tsx:176
msgid "<0>{0}</0> was added to <1>{1}</1>"
msgstr "<0>{0}</0> a été ajouté à <1>{1}</1>"
#: src/pages/Notifications.tsx:215
#: src/pages/Notifications.tsx:217
msgid "a comment"
msgstr "un commentaire"
#: src/pages/Notifications.tsx:215
#: src/pages/Notifications.tsx:220
msgid "a post"
msgstr "une publication"
@@ -180,17 +180,18 @@ msgstr "Auto"
msgid "Back to login"
msgstr "Retour à la connexion"
#: src/contexts/WSProvider.tsx:211
#: src/contexts/WSProvider.tsx:438
#: src/contexts/WSProvider.tsx:268
#: src/contexts/WSProvider.tsx:570
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/CategoryManager.tsx:210
#: src/components/CategoryManager.tsx:211
#: src/components/ChatModal.tsx:158
#: src/components/CommentThread.tsx:124
#: src/components/ConfirmModal.tsx:32
#: src/components/form/FormActions.tsx:32
#: src/pages/Dump.tsx:373
#: src/pages/Dump.tsx:376
#: src/pages/DumpEdit.tsx:463
#: src/pages/PlaylistDetail.tsx:920
#: src/pages/UserPublicProfile.tsx:1674
@@ -202,7 +203,7 @@ msgstr "Annuler"
msgid "Cancel removal"
msgstr "Annuler la suppression"
#: src/components/AppHeader.tsx:65
#: src/components/AppHeader.tsx:66
msgid "Cancel search"
msgstr "Annuler la recherche"
@@ -228,6 +229,18 @@ msgstr "Changer le mot de passe"
msgid "Change password…"
msgstr "Changer le mot de passe…"
#: src/components/ChatButton.tsx:17
#: src/components/ChatFab.tsx:49
#: src/components/ChatFab.tsx:50
#: src/components/ChatModal.tsx:308
msgid "Chat"
msgstr "Tribune"
#: src/components/ChatButton.tsx:16
#: src/components/ChatFab.tsx:48
msgid "Chat ({unreadChatCount} unread)"
msgstr "{unreadChatCount} messages non lus"
#: src/pages/UserRegister.tsx:85
msgid "Checking invite…"
msgstr "Vérification de l'invitation…"
@@ -298,6 +311,9 @@ msgstr "Onglet par défaut"
#: src/components/CategoryManager.tsx:221
#: src/components/CategoryManager.tsx:222
#: src/components/ChatModal.tsx:112
#: src/components/ChatModal.tsx:113
#: src/components/ChatModal.tsx:168
#: src/components/CommentThread.tsx:376
#: src/components/CommentThread.tsx:382
#: src/components/ConfirmModal.tsx:16
@@ -333,6 +349,10 @@ msgstr "Supprimer ce commentaire ?"
msgid "Delete this dump? This cannot be undone."
msgstr "Supprimer cette reco ? Cette action est irréversible."
#: src/components/ChatModal.tsx:167
msgid "Delete this message?"
msgstr "Supprimer ce message ?"
#: src/pages/PlaylistDetail.tsx:757
#: src/pages/UserPlaylists.tsx:467
msgid "Delete this playlist? This cannot be undone."
@@ -355,7 +375,7 @@ msgstr "Déposez un fichier ici"
msgid "Drop a replacement here"
msgstr "Déposez un fichier de remplacement ici"
#: src/components/AppHeader.tsx:103
#: src/components/AppHeader.tsx:105
msgid "Dump"
msgstr "Reco"
@@ -379,12 +399,14 @@ msgstr "Recos"
msgid "Dumps ({0}{1})"
msgstr "Recos ({0}{1})"
#: src/pages/Notifications.tsx:395
#: src/pages/Notifications.tsx:400
msgid "Earlier"
msgstr "Plus tôt"
#: src/components/ChatModal.tsx:101
#: src/components/ChatModal.tsx:102
#: src/components/CommentThread.tsx:367
#: src/pages/Dump.tsx:487
#: src/pages/Dump.tsx:490
#: src/pages/PlaylistDetail.tsx:625
msgid "Edit"
msgstr "Modifier"
@@ -400,18 +422,20 @@ msgstr "Modifier le titre"
#. placeholder {0}: relativeTime(comment.updatedAt)
#. placeholder {0}: relativeTime(dump.updatedAt)
#. placeholder {0}: relativeTime(playlist.updatedAt)
#. placeholder {0}: relativeTime(message.updatedAt)
#: src/components/ChatModal.tsx:90
#: src/components/CommentThread.tsx:317
#: src/pages/Dump.tsx:426
#: src/pages/Dump.tsx:429
#: src/pages/PlaylistDetail.tsx:664
msgid "edited {0}"
msgstr "modifié {0}"
#. placeholder {0}: comment.updatedAt.toLocaleString()
#. placeholder {0}: dump.updatedAt.toLocaleString()
#. placeholder {0}: playlist.updatedAt.toLocaleString()
#. placeholder {0}: message.updatedAt.toLocaleString()
#: src/components/ChatModal.tsx:88
#: src/components/CommentThread.tsx:315
#: src/pages/Dump.tsx:424
#: src/pages/Dump.tsx:427
#: src/pages/PlaylistDetail.tsx:661
msgid "Edited {0}"
msgstr "Modifié le {0}"
@@ -455,7 +479,7 @@ msgstr "Impossible de générer une invitation"
#: src/pages/index/HotFeed.tsx:36
#: src/pages/index/JournalFeed.tsx:33
#: src/pages/index/NewFeed.tsx:36
#: src/pages/Notifications.tsx:369
#: src/pages/Notifications.tsx:374
#: src/pages/UserPublicProfile.tsx:1022
#: src/pages/UserPublicProfile.tsx:1064
#: src/pages/UserPublicProfile.tsx:1109
@@ -619,20 +643,24 @@ msgstr "Clair"
msgid "Like"
msgstr "Aimer"
#: src/contexts/WSProvider.tsx:437
#: src/contexts/WSProvider.tsx:569
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:130
#: src/components/AppHeader.tsx:132
msgid "Live updates unavailable."
msgstr "Mises à jour en direct indisponibles."
#: src/components/UserListPopover.tsx:231
#: src/pages/Notifications.tsx:442
#: src/pages/Notifications.tsx:447
msgid "Load more"
msgstr "Charger plus"
#: src/pages/Dump.tsx:237
#: src/components/ChatModal.tsx:321
msgid "Load older messages"
msgstr "Charger les messages plus anciens"
#: src/pages/Dump.tsx:240
#: src/pages/DumpEdit.tsx:155
msgid "Loading dump…"
msgstr "Chargement de la reco…"
@@ -658,6 +686,7 @@ msgid "Loading profile…"
msgstr "Chargement du profil…"
#: src/components/CategoryManager.tsx:52
#: src/components/ChatModal.tsx:320
#: src/components/PlaylistMembershipPanel.tsx:28
#: src/components/TextEditor.tsx:289
#: src/components/UserListPopover.tsx:192
@@ -666,8 +695,8 @@ msgstr "Chargement du profil…"
#: src/pages/index/HotFeed.tsx:32
#: src/pages/index/JournalFeed.tsx:29
#: src/pages/index/NewFeed.tsx:32
#: src/pages/Notifications.tsx:365
#: src/pages/Notifications.tsx:441
#: src/pages/Notifications.tsx:370
#: src/pages/Notifications.tsx:446
#: src/pages/UserDumps.tsx:54
#: src/pages/UserPlaylists.tsx:345
#: src/pages/UserPublicProfile.tsx:1016
@@ -677,7 +706,7 @@ msgstr "Chargement du profil…"
msgid "Loading…"
msgstr "Chargement…"
#: src/components/AppHeader.tsx:111
#: src/components/AppHeader.tsx:113
#: src/pages/UserLogin.tsx:34
#: src/pages/UserLogin.tsx:59
#: src/pages/UserLogin.tsx:78
@@ -722,7 +751,7 @@ msgstr "Modérateur"
msgid "Name"
msgstr "Nom"
#: src/pages/Notifications.tsx:358
#: src/pages/Notifications.tsx:363
msgid "new"
msgstr "nouveau"
@@ -776,6 +805,10 @@ msgstr "Pas encore de collections suivies."
msgid "No invitees yet."
msgstr "Aucun invité pour le moment."
#: src/components/ChatModal.tsx:328
msgid "No messages yet. Say hello!"
msgstr "Aucun message pour l'instant. Dites bonjour !"
#: src/components/UserListPopover.tsx:200
msgid "No one yet."
msgstr "Personne pour le moment."
@@ -798,7 +831,7 @@ msgstr "Aucun utilisateur ne correspond à « {q} »."
msgid "Not following anyone yet."
msgstr "Aucun abonnement pour le moment."
#: src/pages/Notifications.tsx:376
#: src/pages/Notifications.tsx:381
#: src/pages/UserDumps.tsx:99
#: src/pages/UserPublicProfile.tsx:1338
#: src/pages/UserPublicProfile.tsx:1460
@@ -807,8 +840,8 @@ msgid "Nothing here yet."
msgstr "Rien ici pour l'instant."
#: src/components/NotificationBell.tsx:42
#: src/pages/Notifications.tsx:260
#: src/pages/Notifications.tsx:354
#: src/pages/Notifications.tsx:265
#: src/pages/Notifications.tsx:359
msgid "Notifications"
msgstr "Notifications"
@@ -855,7 +888,7 @@ msgstr "Les mots de passe ne correspondent pas"
msgid "Playlist title"
msgstr "Titre de la collection"
#: src/components/AppHeader.tsx:85
#: src/components/AppHeader.tsx:86
#: src/components/UserMenu.tsx:62
#: src/pages/Search.tsx:177
#: src/pages/UserPlaylists.tsx:371
@@ -890,7 +923,7 @@ msgstr "Publication…"
#: src/components/JournalCard.tsx:121
#: src/components/PlaylistCard.tsx:73
#: src/components/PlaylistMembershipPanel.tsx:55
#: src/pages/Dump.tsx:432
#: src/pages/Dump.tsx:435
#: src/pages/PlaylistDetail.tsx:644
msgid "private"
msgstr "privé"
@@ -932,7 +965,7 @@ msgstr "Inscription…"
msgid "Registration failed"
msgstr "Inscription échouée"
#: src/pages/Dump.tsx:499
#: src/pages/Dump.tsx:502
msgid "Related"
msgstr "Connexe"
@@ -977,7 +1010,7 @@ msgstr "Réinitialiser le mot de passe"
msgid "Reset to default"
msgstr "Réinitialiser par défaut"
#: src/pages/Dump.tsx:254
#: src/pages/Dump.tsx:257
#: src/pages/DumpEdit.tsx:172
msgid "Retry"
msgstr "Réessayer"
@@ -986,8 +1019,9 @@ msgstr "Réessayer"
msgid "Role"
msgstr "Rôle"
#: src/components/ChatModal.tsx:151
#: src/components/CommentThread.tsx:328
#: src/pages/Dump.tsx:365
#: src/pages/Dump.tsx:368
#: src/pages/DumpEdit.tsx:466
#: src/pages/PlaylistDetail.tsx:927
#: src/pages/UserPublicProfile.tsx:1666
@@ -997,7 +1031,7 @@ msgstr "Enregistrer"
#: src/components/ChangePasswordModal.tsx:100
#: src/components/CommentThread.tsx:329
#: src/pages/Dump.tsx:364
#: src/pages/Dump.tsx:367
#: src/pages/PlaylistDetail.tsx:923
#: src/pages/ResetPassword.tsx:126
#: src/pages/UserPublicProfile.tsx:1663
@@ -1005,7 +1039,7 @@ msgstr "Enregistrer"
msgid "Saving…"
msgstr "Enregistrement…"
#: src/components/AppHeader.tsx:65
#: src/components/AppHeader.tsx:66
#: src/components/SearchBar.tsx:78
#: src/pages/Search.tsx:50
msgid "Search"
@@ -1023,6 +1057,10 @@ msgstr "Recherche échouée"
msgid "Searching…"
msgstr "Recherche…"
#: src/components/ChatModal.tsx:369
msgid "Send"
msgstr "Envoyer"
#: src/pages/UserLogin.tsx:141
msgid "Send reset link"
msgstr "Envoyer le lien de réinitialisation"
@@ -1031,7 +1069,7 @@ msgstr "Envoyer le lien de réinitialisation"
msgid "Sending…"
msgstr "Envoi…"
#: src/components/AppHeader.tsx:100
#: src/components/AppHeader.tsx:102
msgid "Server unreachable"
msgstr "Serveur inaccessible"
@@ -1061,6 +1099,10 @@ msgstr "Style"
msgid "Submit search"
msgstr "Lancer la recherche"
#: src/pages/Notifications.tsx:219
msgid "the chat"
msgstr "la tribune"
#: src/pages/UserRegister.tsx:97
msgid "This invite link is missing, expired, or already used."
msgstr "Ce lien d'invitation est manquant, expiré ou déjà utilisé."
@@ -1091,10 +1133,14 @@ msgstr "Titre"
msgid "Title is required."
msgstr "Un titre est requis."
#: src/pages/Notifications.tsx:392
#: src/pages/Notifications.tsx:397
msgid "Today"
msgstr "Aujourd'hui"
#: src/components/ChatModal.tsx:350
msgid "Type a message…"
msgstr "Écrivez un message…"
#: src/pages/PlaylistDetail.tsx:747
msgid "Undo"
msgstr "Annuler"
@@ -1194,11 +1240,11 @@ msgstr "Pourquoi ?"
msgid "Write a reply…"
msgstr "Écrire une réponse…"
#: src/pages/Notifications.tsx:394
#: src/pages/Notifications.tsx:399
msgid "Yesterday"
msgstr "Hier"
#: src/pages/Notifications.tsx:379
#: src/pages/Notifications.tsx:384
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."