v3: chatbox improvements (typing indicators, answer to previous messages, backlog days separators, scroll to last message position, visual tweaks)
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 41s

This commit is contained in:
2026-06-30 12:27:03 +02:00
parent 124866ad4f
commit d2d086831e
17 changed files with 857 additions and 86 deletions

View File

@@ -28,6 +28,17 @@ msgstr "{0, plural, one {# commentaire} other {# commentaires}}"
msgid "{0, plural, one {# dump} other {# dumps}}"
msgstr "{0, plural, one {# reco} other {# recos}}"
#. placeholder {0}: names[0]
#. placeholder {1}: names[1]
#: src/components/ChatModal.tsx:528
msgid "{0} and {1} are typing…"
msgstr "{0} et {1} sont en train d'écrire…"
#. placeholder {0}: names[0]
#: src/components/ChatModal.tsx:527
msgid "{0} is typing…"
msgstr "{0} est en train d'écrire…"
#. placeholder {0}: VALIDATION.USERNAME_MIN
#. placeholder {1}: VALIDATION.USERNAME_MAX
#: src/pages/UserRegister.tsx:126
@@ -180,14 +191,14 @@ msgstr "Auto"
msgid "Back to login"
msgstr "Retour à la connexion"
#: src/contexts/WSProvider.tsx:268
#: src/contexts/WSProvider.tsx:570
#: src/contexts/WSProvider.tsx:270
#: src/contexts/WSProvider.tsx:576
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/ChatModal.tsx:229
#: src/components/CommentThread.tsx:124
#: src/components/ConfirmModal.tsx:32
#: src/components/form/FormActions.tsx:32
@@ -203,6 +214,11 @@ msgstr "Annuler"
msgid "Cancel removal"
msgstr "Annuler la suppression"
#: src/components/ChatModal.tsx:619
#: src/components/ChatModal.tsx:620
msgid "Cancel reply"
msgstr "Annuler la réponse"
#: src/components/AppHeader.tsx:66
msgid "Cancel search"
msgstr "Annuler la recherche"
@@ -232,7 +248,7 @@ 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
#: src/components/ChatModal.tsx:533
msgid "Chat"
msgstr "Tribune"
@@ -311,9 +327,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/ChatModal.tsx:183
#: src/components/ChatModal.tsx:184
#: src/components/ChatModal.tsx:239
#: src/components/CommentThread.tsx:376
#: src/components/CommentThread.tsx:382
#: src/components/ConfirmModal.tsx:16
@@ -349,7 +365,7 @@ 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
#: src/components/ChatModal.tsx:238
msgid "Delete this message?"
msgstr "Supprimer ce message ?"
@@ -358,6 +374,10 @@ msgstr "Supprimer ce message ?"
msgid "Delete this playlist? This cannot be undone."
msgstr "Supprimer cette collection ? Cette action est irréversible."
#: src/components/ChatModal.tsx:129
msgid "deleted message"
msgstr "message supprimé"
#: src/components/PlaylistCreateForm.tsx:78
#: src/pages/PlaylistDetail.tsx:877
msgid "Description (optional)"
@@ -403,8 +423,8 @@ msgstr "Recos ({0}{1})"
msgid "Earlier"
msgstr "Plus tôt"
#: src/components/ChatModal.tsx:101
#: src/components/ChatModal.tsx:102
#: src/components/ChatModal.tsx:172
#: src/components/ChatModal.tsx:173
#: src/components/CommentThread.tsx:367
#: src/pages/Dump.tsx:490
#: src/pages/PlaylistDetail.tsx:625
@@ -423,7 +443,7 @@ msgstr "Modifier le titre"
#. placeholder {0}: relativeTime(comment.updatedAt)
#. placeholder {0}: relativeTime(dump.updatedAt)
#. placeholder {0}: relativeTime(message.updatedAt)
#: src/components/ChatModal.tsx:90
#: src/components/ChatModal.tsx:152
#: src/components/CommentThread.tsx:317
#: src/pages/Dump.tsx:429
#: src/pages/PlaylistDetail.tsx:664
@@ -433,7 +453,7 @@ msgstr "modifié {0}"
#. placeholder {0}: comment.updatedAt.toLocaleString()
#. placeholder {0}: dump.updatedAt.toLocaleString()
#. placeholder {0}: message.updatedAt.toLocaleString()
#: src/components/ChatModal.tsx:88
#: src/components/ChatModal.tsx:150
#: src/components/CommentThread.tsx:315
#: src/pages/Dump.tsx:427
#: src/pages/PlaylistDetail.tsx:661
@@ -643,7 +663,7 @@ msgstr "Clair"
msgid "Like"
msgstr "Aimer"
#: src/contexts/WSProvider.tsx:569
#: src/contexts/WSProvider.tsx:575
msgid "Live updates are temporarily disconnected. Trying to reconnect…"
msgstr "Les mises à jour en direct sont temporairement interrompues. Tentative de reconnexion…"
@@ -656,7 +676,7 @@ msgstr "Mises à jour en direct indisponibles."
msgid "Load more"
msgstr "Charger plus"
#: src/components/ChatModal.tsx:321
#: src/components/ChatModal.tsx:546
msgid "Load older messages"
msgstr "Charger les messages plus anciens"
@@ -686,7 +706,7 @@ msgid "Loading profile…"
msgstr "Chargement du profil…"
#: src/components/CategoryManager.tsx:52
#: src/components/ChatModal.tsx:320
#: src/components/ChatModal.tsx:545
#: src/components/PlaylistMembershipPanel.tsx:28
#: src/components/TextEditor.tsx:289
#: src/components/UserListPopover.tsx:192
@@ -805,7 +825,7 @@ msgstr "Pas encore de collections suivies."
msgid "No invitees yet."
msgstr "Aucun invité pour le moment."
#: src/components/ChatModal.tsx:328
#: src/components/ChatModal.tsx:553
msgid "No messages yet. Say hello!"
msgstr "Aucun message pour l'instant. Dites bonjour !"
@@ -989,10 +1009,16 @@ msgstr "Retirer le vote"
msgid "Replace file"
msgstr "Remplacer le fichier"
#: src/components/ChatModal.tsx:162
#: src/components/ChatModal.tsx:163
#: src/components/CommentThread.tsx:355
msgid "Reply"
msgstr "Répondre"
#: src/components/ChatModal.tsx:609
msgid "Replying to"
msgstr "En réponse à"
#: src/pages/UserLogin.tsx:132
msgid "Request failed"
msgstr "Échec de la demande"
@@ -1019,7 +1045,7 @@ msgstr "Réessayer"
msgid "Role"
msgstr "Rôle"
#: src/components/ChatModal.tsx:151
#: src/components/ChatModal.tsx:222
#: src/components/CommentThread.tsx:328
#: src/pages/Dump.tsx:368
#: src/pages/DumpEdit.tsx:466
@@ -1057,7 +1083,7 @@ msgstr "Recherche échouée"
msgid "Searching…"
msgstr "Recherche…"
#: src/components/ChatModal.tsx:369
#: src/components/ChatModal.tsx:655
msgid "Send"
msgstr "Envoyer"
@@ -1082,6 +1108,10 @@ msgstr "Définir un nouveau mot de passe"
msgid "Settings"
msgstr "Paramètres"
#: src/components/ChatModal.tsx:529
msgid "Several people are typing…"
msgstr "Plusieurs personnes écrivent…"
#: src/components/CategoryManager.tsx:191
msgid "slug"
msgstr "identifiant"
@@ -1133,11 +1163,12 @@ msgstr "Titre"
msgid "Title is required."
msgstr "Un titre est requis."
#: src/components/ChatModal.tsx:262
#: src/pages/Notifications.tsx:397
msgid "Today"
msgstr "Aujourd'hui"
#: src/components/ChatModal.tsx:350
#: src/components/ChatModal.tsx:632
msgid "Type a message…"
msgstr "Écrivez un message…"
@@ -1240,6 +1271,7 @@ msgstr "Pourquoi ?"
msgid "Write a reply…"
msgstr "Écrire une réponse…"
#: src/components/ChatModal.tsx:265
#: src/pages/Notifications.tsx:399
msgid "Yesterday"
msgstr "Hier"