feat: calendar invitations RSVP, trust assessment, file preview

This commit is contained in:
Linus Rath
2026-03-16 22:00:11 +01:00
parent cde1d61d02
commit 0f5d030d5f
32 changed files with 21143 additions and 279 deletions
+61 -2
View File
@@ -289,6 +289,12 @@
"calendar_invitation": {
"loading": "Chargement des détails…",
"title": "Invitation calendrier",
"published_title": "Événement publié",
"response_title": "Réponse à l'événement",
"update_title": "Mise à jour de l'événement",
"counter_title": "Contre-proposition",
"refresh_title": "Demande d'actualisation",
"declined_counter_title": "Contre-proposition refusée",
"cancelled_title": "Événement annulé",
"organizer": "Organisé par {name}",
"attendees": "{count, plural, one {# participant} other {# participants}}",
@@ -299,9 +305,54 @@
"added": "Ajouté au calendrier",
"rsvp_sent": "Réponse envoyée",
"parse_error": "Impossible de lire l'invitation",
"action_failed": "Impossible d'effectuer cette action de calendrier.",
"no_calendar": "Calendrier non disponible",
"published_info": "Cet événement a été partagé à titre informatif.",
"response_info": "Ce message contient la réponse d'un participant.",
"response_info_organizer": "Cette réponse met à jour votre événement.",
"update_info": "Ce message met à jour un événement existant.",
"counter_info": "Ce message propose des modifications à un événement.",
"counter_info_organizer": "Ce participant a proposé des modifications à votre événement.",
"refresh_info": "Ce message demande les derniers détails de l'événement.",
"refresh_info_organizer": "Un participant a demandé les derniers détails de l'événement.",
"declined_counter_info": "L'organisateur a refusé une contre-proposition.",
"authentication_failed_info": "Les contrôles d'authentification de cette invitation ont échoué. Traitez les actions de calendrier avec prudence.",
"authentication_missing_info": "Cette invitation ne comporte pas d'authentification de messagerie vérifiée. Vérifiez les détails avec l'organisateur si quelque chose semble inhabituel.",
"sender_mismatch_info": "Cette invitation a été envoyée depuis {sender}, alors que l'organisateur indiqué dans les données du calendrier est {organizer}.",
"sender_mismatch_unverified_info": "Cette invitation a été envoyée depuis {sender}, alors que l'organisateur indiqué dans les données du calendrier est {organizer}, et le message n'a pas pu être vérifié.",
"organizer_role": "Vous organisez cet événement",
"your_response": "Votre réponse : {status}",
"response_needed": "Réponse requise",
"response_accepted": "Acceptée",
"response_tentative": "Provisoire",
"response_declined": "Refusée",
"response_delegated": "Déléguée",
"actor_sent_info": "Envoyé par {name}.",
"actor_response_info": "{name} a répondu {status}.",
"actor_counter_info": "{name} a proposé des modifications à cet événement.",
"actor_refresh_info": "{name} a demandé les derniers détails de l'événement.",
"actor_declined_counter_info": "{name} a refusé la contre-proposition.",
"actor_note": "Note : {comment}",
"actor_unknown": "Quelqu'un",
"proposed_changes": "Modifications proposées",
"change_title": "Titre",
"change_time": "Horaire",
"change_location": "Lieu",
"change_description": "Description",
"change_empty": "Aucune",
"change_from_to": "{before} -> {after}",
"apply_proposal": "Appliquer les modifications proposées",
"proposal_applied": "Les modifications proposées ont été appliquées.",
"review_proposal": "Examiner la proposition",
"review_request": "Examiner la demande",
"view_in_calendar": "Voir dans le calendrier",
"select_calendar": "Choisir un calendrier",
"already_in_calendar": "Déjà dans votre calendrier"
"already_in_calendar": "Déjà dans votre calendrier",
"request_info": "Vous êtes invité à cet événement. Répondez pour informer l'organisateur de votre disponibilité.",
"cancel_info": "L'organisateur a annulé cet événement.",
"event_updated": "Mise à jour #{sequence}",
"event_status_tentative": "Provisoire",
"event_status_cancelled": "Annulé"
},
"previous": "Précédent",
"next": "Suivant",
@@ -621,6 +672,12 @@
"label": "Afficher l'aperçu",
"description": "Afficher l'aperçu de l'email dans la liste"
},
"attachment_click_action": {
"label": "Action au clic sur les pièces jointes",
"description": "Choisissez si un clic sur une pièce jointe ouvre un aperçu ou lance immédiatement le téléchargement",
"preview": "Aperçu si possible",
"download": "Télécharger immédiatement"
},
"emails_per_page": {
"25": "25 emails",
"50": "50 emails",
@@ -1634,7 +1691,9 @@
"notifications_enabled": "Notifications d'événements",
"notifications_enabled_desc": "Afficher les alertes pour les événements à venir",
"notification_sound": "Son de notification",
"notification_sound_desc": "Jouer un son pour les alertes de calendrier"
"notification_sound_desc": "Jouer un son pour les alertes de calendrier",
"invitation_parsing": "Analyser les invitations par e-mail",
"invitation_parsing_desc": "Détecter les invitations de calendrier dans les pièces jointes des e-mails et afficher les actions du calendrier"
},
"days": {
"monday": "Lundi",