mirror of
https://github.com/LogicLabs-OU/OpenArchiver.git
synced 2026-04-06 00:31:57 +02:00
* OpenAPI root url fix
* Journaling OSS setup
* feat: add preserve-original-file mode for email ingestion for GoBD compliance
- Add `preserveOriginalFile` option to ingestion sources and connectors
- Stream original EML/MBOX/PST emails to temp files instead of holding
full buffers in memory, reducing memory allocation during ingestion
- Skip attachment binary extraction and EML re-serialization when
preserve mode is enabled; use raw file on disk as source of truth
- Update `EmailObject` to use `tempFilePath` instead of in-memory `eml`
buffer across all connectors (EML, MBOX, PST)
- Add new database migration (0032) for `preserve_original_file` column
- Add frontend UI toggle with tooltip (tippy.js) for the new option
- Replace console.warn calls with structured pino logger in connectors
* add isjournaled property to archived_email
* feat(ingestion): add unmerge ingestion source functionality
Introduces the ability to detach a child ingestion source from its
merge group, making it a standalone root source. Changes include:
- Add `unmerge` controller method with auth and error handling
- Add POST `/v1/ingestion-sources/{id}/unmerge` route with OpenAPI docs
- Implement `IngestionService.unmerge` backend logic
- Add unmerge UI action and handler in the frontend ingestion view
- Fix bulk delete to also remove children of deleted root sources
- Update docs with new API operation and merging sources user guide
* code formatting
* Database migration file for enum `partially_active`
* Error handling improvement
727 lines
39 KiB
JSON
727 lines
39 KiB
JSON
{
|
|
"app": {
|
|
"auth": {
|
|
"login": "Connexion",
|
|
"login_tip": "Entrez votre email ci-dessous pour vous connecter à votre compte.",
|
|
"email": "Email",
|
|
"password": "Mot de passe"
|
|
},
|
|
"common": {
|
|
"working": "Travail en cours",
|
|
"read_docs": "Lire la documentation"
|
|
},
|
|
"archive": {
|
|
"title": "Archive",
|
|
"no_subject": "Pas de sujet",
|
|
"from": "De",
|
|
"sent": "Envoyé",
|
|
"recipients": "Destinataires",
|
|
"to": "À",
|
|
"meta_data": "Métadonnées",
|
|
"folder": "Dossier",
|
|
"tags": "Tags",
|
|
"size": "Taille",
|
|
"email_preview": "Aperçu de l'email",
|
|
"attachments": "Pièces jointes",
|
|
"download": "Télécharger",
|
|
"actions": "Actions",
|
|
"download_eml": "Télécharger l'email (.eml)",
|
|
"delete_email": "Supprimer l'email",
|
|
"email_thread": "Fil de discussion",
|
|
"delete_confirmation_title": "Êtes-vous sûr de vouloir supprimer cet email ?",
|
|
"delete_confirmation_description": "Cette action est irréversible et supprimera définitivement l'email et ses pièces jointes.",
|
|
"deleting": "Suppression en cours",
|
|
"confirm": "Confirmer",
|
|
"cancel": "Annuler",
|
|
"not_found": "Email non trouvé.",
|
|
"integrity_report": "Rapport d'intégrité",
|
|
"download_integrity_report_pdf": "Télécharger le rapport d'intégrité (PDF)",
|
|
"downloading_integrity_report": "Génération en cours...",
|
|
"integrity_report_download_error": "Échec de la génération du rapport d'intégrité.",
|
|
"email_eml": "Email (.eml)",
|
|
"valid": "Valide",
|
|
"invalid": "Non valide",
|
|
"integrity_check_failed_title": "Échec de la vérification d'intégrité",
|
|
"integrity_check_failed_message": "Impossible de vérifier l'intégrité de l'email et de ses pièces jointes.",
|
|
"integrity_report_description": "Ce rapport vérifie que le contenu de vos emails archivés n'a pas été modifié.",
|
|
"retention_policy": "Politique de conservation",
|
|
"retention_policy_description": "Indique quelle politique de conservation régit cet email et quand sa suppression est prévue.",
|
|
"retention_no_policy": "Aucune politique applicable — cet email ne sera pas supprimé automatiquement.",
|
|
"retention_period": "Durée de conservation",
|
|
"retention_action": "Action à l'expiration",
|
|
"retention_matching_policies": "Politiques applicables",
|
|
"retention_delete_permanently": "Suppression définitive",
|
|
"retention_scheduled_deletion": "Suppression planifiée",
|
|
"retention_policy_overridden_by_label": "Cette politique est remplacée par l'étiquette de conservation ",
|
|
"embedded_attachments": "Pièces jointes intégrées",
|
|
"embedded": "Intégré",
|
|
"embedded_attachment_title": "Pièce jointe intégrée",
|
|
"embedded_attachment_description": "Cette pièce jointe est intégrée dans le fichier email d'origine et ne peut pas être téléchargée séparément. Pour l'obtenir, téléchargez le fichier email complet (.eml)."
|
|
},
|
|
"ingestions": {
|
|
"title": "Sources d'ingestion",
|
|
"ingestion_sources": "Sources d'ingestion",
|
|
"bulk_actions": "Actions en masse",
|
|
"force_sync": "Forcer la synchronisation",
|
|
"delete": "Supprimer",
|
|
"create_new": "Créer",
|
|
"name": "Nom",
|
|
"provider": "Fournisseur",
|
|
"status": "Statut",
|
|
"active": "Actif",
|
|
"created_at": "Créé le",
|
|
"actions": "Actions",
|
|
"last_sync_message": "Dernier message de synchronisation",
|
|
"empty": "Vide",
|
|
"open_menu": "Ouvrir le menu",
|
|
"edit": "Modifier",
|
|
"create": "Créer",
|
|
"ingestion_source": "Source d'ingestion",
|
|
"edit_description": "Modifiez votre source d'ingestion ici.",
|
|
"create_description": "Ajoutez une nouvelle source d'ingestion pour commencer à archiver les emails.",
|
|
"read": "Lire",
|
|
"docs_here": "docs ici",
|
|
"delete_confirmation_title": "Êtes-vous sûr de vouloir supprimer cette ingestion ?",
|
|
"delete_confirmation_description": "Cela supprimera tous les emails archivés, les pièces jointes, l'indexation et les fichiers associés à cette ingestion. Si vous souhaitez uniquement arrêter la synchronisation des nouveaux emails, vous pouvez suspendre l'ingestion à la place.",
|
|
"deleting": "Suppression en cours",
|
|
"confirm": "Confirmer",
|
|
"cancel": "Annuler",
|
|
"bulk_delete_confirmation_title": "Êtes-vous sûr de vouloir supprimer {{count}} ingestions sélectionnées ?",
|
|
"bulk_delete_confirmation_description": "Cela supprimera tous les emails archivés, les pièces jointes, l'indexation et les fichiers associés à ces ingestions. Si vous souhaitez uniquement arrêter la synchronisation des nouveaux emails, vous pouvez suspendre les ingestions à la place.",
|
|
"merged_sources": "sources fusionnées",
|
|
"unmerge": "Dissocier",
|
|
"unmerge_success": "La source a été dissociée de son groupe.",
|
|
"unmerge_confirmation_title": "Dissocier cette source ?",
|
|
"unmerge_confirmation_description": "Cela dissociera la source secondaire du groupe et en fera une ingestion indépendante. Veuillez noter ce qui suit :",
|
|
"unmerge_warning_emails": "Les emails déjà ingérés par cette source sont stockés sous la source racine. Ils y resteront et ne seront pas déplacés.",
|
|
"unmerge_warning_future": "Seuls les nouveaux emails ingérés après la dissociation seront stockés sous cette source.",
|
|
"unmerge_confirm": "Dissocier",
|
|
"unmerging": "Dissociation en cours",
|
|
"delete_root_warning": "Cette ingestion possède {{count}} source(s) fusionnée(s). Sa suppression entraînera également la suppression de toutes les sources fusionnées et de leurs données.",
|
|
"expand": "Développer",
|
|
"collapse": "Réduire"
|
|
},
|
|
"search": {
|
|
"title": "Recherche",
|
|
"description": "Rechercher des emails archivés.",
|
|
"email_search": "Recherche d'emails",
|
|
"placeholder": "Rechercher par mot-clé, expéditeur, destinataire...",
|
|
"search_button": "Rechercher",
|
|
"search_options": "Options de recherche",
|
|
"strategy_fuzzy": "Floue",
|
|
"strategy_verbatim": "Textuelle",
|
|
"strategy_frequency": "Fréquence",
|
|
"select_strategy": "Sélectionnez une stratégie",
|
|
"error": "Erreur",
|
|
"found_results_in": "{{total}} résultats trouvés en {{seconds}}s",
|
|
"found_results": "{{total}} résultats trouvés",
|
|
"from": "De",
|
|
"to": "À",
|
|
"in_email_body": "Dans le corps de l'email",
|
|
"in_attachment": "Dans la pièce jointe : {{filename}}",
|
|
"prev": "Préc",
|
|
"next": "Suiv"
|
|
},
|
|
"roles": {
|
|
"title": "Gestion des rôles",
|
|
"role_management": "Gestion des rôles",
|
|
"create_new": "Créer",
|
|
"name": "Nom",
|
|
"created_at": "Créé le",
|
|
"actions": "Actions",
|
|
"open_menu": "Ouvrir le menu",
|
|
"view_policy": "Voir la politique",
|
|
"edit": "Modifier",
|
|
"delete": "Supprimer",
|
|
"no_roles_found": "Aucun rôle trouvé.",
|
|
"role_policy": "Politique de rôle",
|
|
"viewing_policy_for_role": "Affichage de la politique pour le rôle : {{name}}",
|
|
"create": "Créer",
|
|
"role": "Rôle",
|
|
"edit_description": "Modifiez le rôle ici.",
|
|
"create_description": "Ajoutez un nouveau rôle au système.",
|
|
"delete_confirmation_title": "Êtes-vous sûr de vouloir supprimer ce rôle ?",
|
|
"delete_confirmation_description": "Cette action est irréversible. Cela supprimera définitivement le rôle.",
|
|
"deleting": "Suppression en cours",
|
|
"confirm": "Confirmer",
|
|
"cancel": "Annuler"
|
|
},
|
|
"account": {
|
|
"title": "Paramètres du compte",
|
|
"description": "Gérez votre profil et vos paramètres de sécurité.",
|
|
"personal_info": "Informations personnelles",
|
|
"personal_info_desc": "Mettez à jour vos données personnelles.",
|
|
"security": "Sécurité",
|
|
"security_desc": "Gérez votre mot de passe et vos préférences de sécurité.",
|
|
"edit_profile": "Modifier le profil",
|
|
"change_password": "Changer le mot de passe",
|
|
"edit_profile_desc": "Modifiez votre profil ici.",
|
|
"change_password_desc": "Changez votre mot de passe. Vous devrez saisir votre mot de passe actuel.",
|
|
"current_password": "Mot de passe actuel",
|
|
"new_password": "Nouveau mot de passe",
|
|
"confirm_new_password": "Confirmer le nouveau mot de passe",
|
|
"operation_successful": "Opération réussie",
|
|
"passwords_do_not_match": "Les mots de passe ne correspondent pas"
|
|
},
|
|
"system_settings": {
|
|
"title": "Paramètres système",
|
|
"system_settings": "Paramètres système",
|
|
"description": "Gérer les paramètres globaux de l'application.",
|
|
"language": "Langue",
|
|
"default_theme": "Thème par défaut",
|
|
"light": "Clair",
|
|
"dark": "Sombre",
|
|
"system": "Système",
|
|
"support_email": "Email de support",
|
|
"saving": "Enregistrement",
|
|
"save_changes": "Enregistrer les modifications"
|
|
},
|
|
"users": {
|
|
"title": "Gestion des utilisateurs",
|
|
"user_management": "Gestion des utilisateurs",
|
|
"create_new": "Créer",
|
|
"name": "Nom",
|
|
"email": "Email",
|
|
"role": "Rôle",
|
|
"created_at": "Créé le",
|
|
"actions": "Actions",
|
|
"open_menu": "Ouvrir le menu",
|
|
"edit": "Modifier",
|
|
"delete": "Supprimer",
|
|
"no_users_found": "Aucun utilisateur trouvé.",
|
|
"create": "Créer",
|
|
"user": "Utilisateur",
|
|
"edit_description": "Modifiez l'utilisateur ici.",
|
|
"create_description": "Ajoutez un nouvel utilisateur au système.",
|
|
"delete_confirmation_title": "Êtes-vous sûr de vouloir supprimer cet utilisateur ?",
|
|
"delete_confirmation_description": "Cette action est irréversible. Cela supprimera définitivement l'utilisateur et ses données de nos serveurs.",
|
|
"deleting": "Suppression en cours",
|
|
"confirm": "Confirmer",
|
|
"cancel": "Annuler"
|
|
},
|
|
"components": {
|
|
"charts": {
|
|
"emails_ingested": "E-mails ingérés",
|
|
"storage_used": "Stockage utilisé",
|
|
"emails": "E-mails"
|
|
},
|
|
"common": {
|
|
"submitting": "Soumission...",
|
|
"submit": "Soumettre",
|
|
"save": "Enregistrer"
|
|
},
|
|
"email_preview": {
|
|
"loading": "Chargement de l'aperçu de l'email...",
|
|
"render_error": "Impossible de rendre l'aperçu de l'email.",
|
|
"not_available": "Le fichier .eml brut n'est pas disponible pour cet email."
|
|
},
|
|
"footer": {
|
|
"all_rights_reserved": "Tous droits réservés.",
|
|
"new_version_available": "Nouvelle version disponible"
|
|
},
|
|
"ingestion_source_form": {
|
|
"provider_generic_imap": "IMAP générique",
|
|
"provider_google_workspace": "Google Workspace",
|
|
"provider_microsoft_365": "Microsoft 365",
|
|
"provider_pst_import": "Importation PST",
|
|
"provider_eml_import": "Importation EML",
|
|
"provider_mbox_import": "Importation Mbox",
|
|
"select_provider": "Sélectionnez un fournisseur",
|
|
"import_method": "Méthode d'importation",
|
|
"upload_file": "Téléverser un fichier",
|
|
"local_path": "Chemin local (recommandé pour les fichiers volumineux)",
|
|
"local_file_path": "Chemin de fichier local",
|
|
"service_account_key": "Clé de compte de service (JSON)",
|
|
"service_account_key_placeholder": "Collez le contenu JSON de votre clé de compte de service",
|
|
"impersonated_admin_email": "Email de l'administrateur impersonné",
|
|
"client_id": "ID de l'application (client)",
|
|
"client_secret": "Valeur secrète du client",
|
|
"client_secret_placeholder": "Entrez la valeur secrète, pas l'ID secret",
|
|
"tenant_id": "ID du répertoire (locataire)",
|
|
"host": "Hôte",
|
|
"port": "Port",
|
|
"username": "Nom d'utilisateur",
|
|
"use_tls": "Utiliser TLS",
|
|
"allow_insecure_cert": "Autoriser les certificats non sécurisés",
|
|
"pst_file": "Fichier PST",
|
|
"eml_file": "Fichier EML",
|
|
"mbox_file": "Fichier Mbox",
|
|
"heads_up": "Attention !",
|
|
"org_wide_warning": "Veuillez noter qu'il s'agit d'une opération à l'échelle de l'organisation. Ce type d'ingestion importera et indexera <b>toutes</b> les boîtes de réception de votre organisation. Si vous souhaitez importer uniquement des boîtes de réception spécifiques, utilisez le connecteur IMAP.",
|
|
"upload_failed": "Échec du téléversement, veuillez réessayer",
|
|
"upload_network_error": "Le serveur n'a pas pu traiter le téléversement. Le fichier dépasse peut-être la limite de taille configurée (BODY_SIZE_LIMIT). Pour les fichiers très volumineux, utilisez l'option Chemin local.",
|
|
"merge_into": "Fusionner avec une ingestion existante",
|
|
"merge_into_description": "Les emails de cette source seront regroupés avec l'ingestion sélectionnée. Les deux sources se synchronisent indépendamment mais les emails apparaissent ensemble.",
|
|
"merge_into_tooltip": "Lors de la fusion, cette nouvelle source devient une source secondaire de l'ingestion racine sélectionnée. Tous les emails récupérés par cette source seront physiquement stockés sous l'ingestion racine, pas sous celle-ci.<br><br>Le paramètre <b>Conserver le fichier original</b> (conformité GoBD) de l'ingestion racine s'applique à l'ensemble du groupe. Le paramètre de ce formulaire est ignoré si la fusion est activée.<br><br>Les deux sources se synchronisent indépendamment selon leur propre calendrier.",
|
|
"merge_into_select": "Sélectionner l'ingestion à fusionner",
|
|
"advanced_options": "Options avancées",
|
|
"preserve_original_file": "Conserver le fichier original",
|
|
"preserve_original_file_tooltip": "Si coché : Stocke le fichier email exact et non modifié tel que reçu du serveur. Aucune pièce jointe n'est supprimée. Requis pour la conformité GoBD (Allemagne) et SEC 17a-4.<br><br>Si décoché : Supprime les pièces jointes non intégrées et les stocke séparément avec déduplication, économisant de l'espace de stockage."
|
|
},
|
|
"role_form": {
|
|
"policies_json": "Politiques (JSON)",
|
|
"invalid_json": "Format JSON invalide pour les politiques."
|
|
},
|
|
"theme_switcher": {
|
|
"toggle_theme": "Changer de thème"
|
|
},
|
|
"user_form": {
|
|
"select_role": "Sélectionnez un rôle"
|
|
}
|
|
},
|
|
"setup": {
|
|
"title": "Configuration",
|
|
"description": "Configurez le compte administrateur initial pour Open Archiver.",
|
|
"welcome": "Bienvenue",
|
|
"create_admin_account": "Créez le premier compte administrateur pour commencer.",
|
|
"first_name": "Prénom",
|
|
"last_name": "Nom de famille",
|
|
"email": "Email",
|
|
"password": "Mot de passe",
|
|
"creating_account": "Création du compte",
|
|
"create_account": "Créer un compte"
|
|
},
|
|
"layout": {
|
|
"dashboard": "Tableau de bord",
|
|
"ingestions": "Ingestions",
|
|
"archived_emails": "E-mails archivés",
|
|
"search": "Recherche",
|
|
"settings": "Paramètres",
|
|
"system": "Système",
|
|
"users": "Utilisateurs",
|
|
"roles": "Rôles",
|
|
"api_keys": "Clés API",
|
|
"account": "Compte",
|
|
"logout": "Déconnexion",
|
|
"admin": "Admin"
|
|
},
|
|
"api_keys_page": {
|
|
"title": "Clés API",
|
|
"header": "Clés API",
|
|
"generate_new_key": "Générer une nouvelle clé",
|
|
"name": "Nom",
|
|
"key": "Clé",
|
|
"expires_at": "Expire le",
|
|
"created_at": "Créé le",
|
|
"actions": "Actions",
|
|
"delete": "Supprimer",
|
|
"no_keys_found": "Aucune clé API trouvée.",
|
|
"generate_modal_title": "Générer une nouvelle clé API",
|
|
"generate_modal_description": "Veuillez fournir un nom et une date d'expiration pour votre nouvelle clé API.",
|
|
"expires_in": "Expire dans",
|
|
"select_expiration": "Sélectionnez une expiration",
|
|
"30_days": "30 jours",
|
|
"60_days": "60 jours",
|
|
"6_months": "6 mois",
|
|
"12_months": "12 mois",
|
|
"24_months": "24 mois",
|
|
"generate": "Générer",
|
|
"new_api_key": "Nouvelle clé API",
|
|
"failed_to_delete": "Échec de la suppression de la clé API",
|
|
"api_key_deleted": "Clé API supprimée",
|
|
"generated_title": "Clé API générée",
|
|
"generated_message": "Votre clé API a été générée. Veuillez la copier et la sauvegarder dans un endroit sécurisé. Cette clé ne sera affichée qu'une seule fois."
|
|
},
|
|
"archived_emails_page": {
|
|
"title": "E-mails archivés",
|
|
"header": "E-mails archivés",
|
|
"select_ingestion_source": "Sélectionnez une source d'ingestion",
|
|
"date": "Date",
|
|
"subject": "Sujet",
|
|
"sender": "Expéditeur",
|
|
"inbox": "Boîte de réception",
|
|
"path": "Chemin",
|
|
"actions": "Actions",
|
|
"view": "Voir",
|
|
"no_emails_found": "Aucun e-mail archivé trouvé.",
|
|
"prev": "Préc",
|
|
"next": "Suiv"
|
|
},
|
|
"dashboard_page": {
|
|
"title": "Tableau de bord",
|
|
"meta_description": "Aperçu de vos archives d'e-mails.",
|
|
"header": "Tableau de bord",
|
|
"create_ingestion": "Créer une ingestion",
|
|
"no_ingestion_header": "Vous n'avez aucune source d'ingestion configurée.",
|
|
"no_ingestion_text": "Ajoutez une source d'ingestion pour commencer à archiver vos boîtes de réception.",
|
|
"total_emails_archived": "Total des e-mails archivés",
|
|
"total_storage_used": "Stockage total utilisé",
|
|
"failed_ingestions": "Ingestions échouées (7 derniers jours)",
|
|
"ingestion_history": "Historique d'ingestion",
|
|
"no_ingestion_history": "Aucun historique d'ingestion disponible.",
|
|
"storage_by_source": "Stockage par source d'ingestion",
|
|
"no_ingestion_sources": "Aucune source d'ingestion disponible.",
|
|
"indexed_insights": "Informations indexées",
|
|
"top_10_senders": "Top 10 des expéditeurs",
|
|
"no_indexed_insights": "Aucune information indexée disponible."
|
|
},
|
|
"retention_policies": {
|
|
"title": "Politiques de conservation",
|
|
"header": "Politiques de conservation",
|
|
"meta_description": "Gérez les politiques de conservation des données pour automatiser le cycle de vie des emails et la conformité.",
|
|
"create_new": "Créer une nouvelle politique",
|
|
"no_policies_found": "Aucune politique de conservation trouvée.",
|
|
"name": "Nom",
|
|
"description": "Description",
|
|
"priority": "Priorité",
|
|
"retention_period": "Durée de conservation",
|
|
"retention_period_days": "Durée de conservation (jours)",
|
|
"action_on_expiry": "Action à l'expiration",
|
|
"delete_permanently": "Supprimer définitivement",
|
|
"status": "Statut",
|
|
"active": "Actif",
|
|
"inactive": "Inactif",
|
|
"conditions": "Conditions",
|
|
"conditions_description": "Définissez des règles pour faire correspondre les emails. Si aucune condition n'est définie, la politique s'applique à tous les emails.",
|
|
"logical_operator": "Opérateur logique",
|
|
"and": "ET",
|
|
"or": "OU",
|
|
"add_rule": "Ajouter une règle",
|
|
"remove_rule": "Supprimer la règle",
|
|
"field": "Champ",
|
|
"field_sender": "Expéditeur",
|
|
"field_recipient": "Destinataire",
|
|
"field_subject": "Sujet",
|
|
"field_attachment_type": "Type de pièce jointe",
|
|
"operator": "Opérateur",
|
|
"operator_equals": "Égal à",
|
|
"operator_not_equals": "Différent de",
|
|
"operator_contains": "Contient",
|
|
"operator_not_contains": "Ne contient pas",
|
|
"operator_starts_with": "Commence par",
|
|
"operator_ends_with": "Se termine par",
|
|
"operator_domain_match": "Correspondance de domaine",
|
|
"operator_regex_match": "Correspondance regex",
|
|
"value": "Valeur",
|
|
"value_placeholder": "ex. utilisateur@exemple.com",
|
|
"edit": "Modifier",
|
|
"delete": "Supprimer",
|
|
"create": "Créer",
|
|
"save": "Enregistrer les modifications",
|
|
"cancel": "Annuler",
|
|
"create_description": "Créez une nouvelle politique de conservation pour gérer le cycle de vie des emails archivés.",
|
|
"edit_description": "Mettez à jour les paramètres de cette politique de conservation.",
|
|
"delete_confirmation_title": "Supprimer cette politique de conservation ?",
|
|
"delete_confirmation_description": "Cette action est irréversible. Les emails correspondant à cette politique ne seront plus soumis à la suppression automatique.",
|
|
"deleting": "Suppression en cours",
|
|
"confirm": "Confirmer",
|
|
"days": "jours",
|
|
"no_conditions": "Tous les emails (sans filtre)",
|
|
"rules": "règles",
|
|
"simulator_title": "Simulateur de politique",
|
|
"simulator_description": "Testez les métadonnées d'un email contre toutes les politiques actives pour voir quelle durée de conservation s'appliquerait.",
|
|
"simulator_sender": "Email de l'expéditeur",
|
|
"simulator_sender_placeholder": "ex. jean@finances.entreprise.fr",
|
|
"simulator_recipients": "Destinataires",
|
|
"simulator_recipients_placeholder": "Séparés par des virgules, ex. marie@entreprise.fr, paul@entreprise.fr",
|
|
"simulator_subject": "Sujet",
|
|
"simulator_subject_placeholder": "ex. Rapport fiscal T4",
|
|
"simulator_attachment_types": "Types de pièces jointes",
|
|
"simulator_attachment_types_placeholder": "Séparés par des virgules, ex. .pdf, .xlsx",
|
|
"simulator_run": "Lancer la simulation",
|
|
"simulator_running": "En cours...",
|
|
"simulator_result_title": "Résultat de la simulation",
|
|
"simulator_no_match": "Aucune politique active ne correspond à cet email. Il ne sera pas soumis à une suppression automatique.",
|
|
"simulator_matched": "Correspondance — durée de conservation de {{days}} jours applicable.",
|
|
"simulator_matching_policies": "IDs des politiques correspondantes",
|
|
"simulator_no_result": "Lancez une simulation pour voir quelles politiques s'appliquent à un email donné.",
|
|
"simulator_ingestion_source": "Simuler pour la source d'ingestion",
|
|
"simulator_ingestion_source_description": "Sélectionnez une source d'ingestion pour tester les politiques limitées. Laissez vide pour évaluer toutes les politiques quel que soit leur périmètre.",
|
|
"simulator_ingestion_all": "Toutes les sources (ignorer le périmètre)",
|
|
"ingestion_scope": "Périmètre d'ingestion",
|
|
"ingestion_scope_description": "Limitez cette politique à des sources d'ingestion spécifiques. Laissez tout décoché pour l'appliquer à toutes les sources.",
|
|
"ingestion_scope_all": "Toutes les sources d'ingestion",
|
|
"ingestion_scope_selected": "{{count}} source(s) sélectionnée(s) — cette politique s'appliquera uniquement aux emails de ces sources.",
|
|
"create_success": "Politique de conservation créée avec succès.",
|
|
"update_success": "Politique de conservation mise à jour avec succès.",
|
|
"delete_success": "Politique de conservation supprimée avec succès.",
|
|
"delete_error": "Échec de la suppression de la politique de conservation."
|
|
},
|
|
"retention_labels": {
|
|
"title": "Étiquettes de conservation",
|
|
"header": "Étiquettes de conservation",
|
|
"meta_description": "Gérez les étiquettes de conservation pour les remplacements de conformité au niveau des éléments sur les emails archivés individuels.",
|
|
"create_new": "Créer une étiquette",
|
|
"no_labels_found": "Aucune étiquette de conservation trouvée.",
|
|
"name": "Nom",
|
|
"description": "Description",
|
|
"retention_period": "Durée de conservation",
|
|
"retention_period_days": "Durée de conservation (jours)",
|
|
"applied_count": "Emails appliqués",
|
|
"status": "Statut",
|
|
"enabled": "Activé",
|
|
"disabled": "Désactivé",
|
|
"created_at": "Créé le",
|
|
"actions": "Actions",
|
|
"create": "Créer",
|
|
"edit": "Modifier",
|
|
"delete": "Supprimer",
|
|
"disable": "Désactiver",
|
|
"save": "Enregistrer les modifications",
|
|
"cancel": "Annuler",
|
|
"days": "jours",
|
|
"create_description": "Créez une nouvelle étiquette de conservation. Une fois appliquée aux emails, la durée de conservation de l'étiquette ne peut pas être modifiée.",
|
|
"edit_description": "Mettez à jour les détails de cette étiquette de conservation.",
|
|
"delete_confirmation_title": "Supprimer cette étiquette de conservation ?",
|
|
"delete_confirmation_description": "Cette action supprimera définitivement l'étiquette. Elle ne pourra plus être appliquée aux nouveaux emails.",
|
|
"disable_confirmation_title": "Désactiver cette étiquette de conservation ?",
|
|
"disable_confirmation_description": "Cette étiquette est actuellement appliquée à des emails archivés et ne peut pas être supprimée. Elle sera désactivée afin de ne plus pouvoir être appliquée aux nouveaux emails, mais les emails déjà étiquetés conserveront cette étiquette même si elle n'aura plus d'effet.",
|
|
"force_delete_confirmation_title": "Supprimer définitivement cette étiquette désactivée ?",
|
|
"force_delete_confirmation_description": "Cette étiquette est désactivée mais possède encore des associations d'emails. Sa suppression effacera toutes ces associations et supprimera définitivement l'étiquette. Cette action est irréversible.",
|
|
"deleting": "Traitement en cours",
|
|
"confirm": "Confirmer",
|
|
"create_success": "Étiquette de conservation créée avec succès.",
|
|
"update_success": "Étiquette de conservation mise à jour avec succès.",
|
|
"delete_success": "Étiquette de conservation supprimée avec succès.",
|
|
"disable_success": "Étiquette de conservation désactivée avec succès.",
|
|
"delete_error": "Échec de la suppression de l'étiquette de conservation.",
|
|
"create_error": "Échec de la création de l'étiquette de conservation.",
|
|
"update_error": "Échec de la mise à jour de l'étiquette de conservation.",
|
|
"retention_period_locked": "La durée de conservation ne peut pas être modifiée tant que l'étiquette est appliquée à des emails.",
|
|
"name_placeholder": "ex. Document fiscal - 10 ans",
|
|
"description_placeholder": "ex. Appliqué aux documents fiscaux nécessitant une conservation prolongée."
|
|
},
|
|
"archive_labels": {
|
|
"section_title": "Étiquette de conservation",
|
|
"section_description": "Remplacez le calendrier de conservation de cet email par une étiquette spécifique.",
|
|
"current_label": "Étiquette actuelle",
|
|
"no_label": "Aucune étiquette appliquée",
|
|
"select_label": "Sélectionner une étiquette",
|
|
"select_label_placeholder": "Choisir une étiquette de conservation...",
|
|
"apply": "Appliquer l'étiquette",
|
|
"applying": "Application en cours...",
|
|
"remove": "Supprimer l'étiquette",
|
|
"removing": "Suppression en cours...",
|
|
"apply_success": "Étiquette de conservation appliquée avec succès.",
|
|
"remove_success": "Étiquette de conservation supprimée avec succès.",
|
|
"apply_error": "Échec de l'application de l'étiquette de conservation.",
|
|
"remove_error": "Échec de la suppression de l'étiquette de conservation.",
|
|
"label_overrides_policy": "Cette étiquette remplace les politiques de conservation générales pour cet email.",
|
|
"no_labels_available": "Aucune étiquette de conservation disponible. Créez des étiquettes dans les paramètres de conformité.",
|
|
"label_inactive": "Inactif",
|
|
"label_inactive_note": "Cette étiquette a été désactivée. Elle ne fournit plus de remplacement de conservation ni de date de suppression planifiée pour cet email. Vous pouvez la supprimer et appliquer une étiquette active si nécessaire."
|
|
},
|
|
"legal_holds": {
|
|
"title": "Conservations légales",
|
|
"header": "Conservations légales",
|
|
"meta_description": "Gérez les conservations légales pour préserver les emails de la suppression automatique pendant les litiges ou enquêtes réglementaires.",
|
|
"header_description": "Les conservations légales suspendent la suppression automatique des enregistrements spécifiques pertinents pour les litiges ou enquêtes réglementaires.",
|
|
"create_new": "Créer une conservation",
|
|
"no_holds_found": "Aucune conservation légale trouvée.",
|
|
"name": "Nom",
|
|
"reason": "Motif / Description",
|
|
"no_reason": "Aucun motif fourni",
|
|
"email_count": "Emails protégés",
|
|
"status": "Statut",
|
|
"active": "Actif",
|
|
"inactive": "Inactif",
|
|
"created_at": "Créé le",
|
|
"actions": "Actions",
|
|
"create": "Créer",
|
|
"edit": "Modifier",
|
|
"delete": "Supprimer",
|
|
"activate": "Activer",
|
|
"deactivate": "Désactiver",
|
|
"bulk_apply": "Application en masse via recherche",
|
|
"release_all": "Libérer tous les emails",
|
|
"save": "Enregistrer les modifications",
|
|
"cancel": "Annuler",
|
|
"confirm": "Confirmer la suppression",
|
|
"name_placeholder": "ex. Litige Projet Titan - 2026",
|
|
"reason_placeholder": "ex. Litige en cours lié au Projet Titan. Toutes les communications doivent être conservées.",
|
|
"create_description": "Créez une nouvelle conservation légale pour empêcher la suppression automatique des emails pertinents.",
|
|
"edit_description": "Mettez à jour le nom ou la description de cette conservation légale.",
|
|
"delete_confirmation_title": "Supprimer définitivement cette conservation légale ?",
|
|
"delete_confirmation_description": "Cela supprimera définitivement la conservation et toutes les associations d'emails. Les emails précédemment protégés seront soumis aux règles de conservation normales lors de la prochaine exécution du worker du cycle de vie.",
|
|
"bulk_apply_title": "Appliquer la conservation légale en masse via recherche",
|
|
"bulk_apply_description": "Recherchez des emails en utilisant des filtres de texte intégral et de métadonnées. Tous les emails correspondants seront placés sous cette conservation légale. La requête exacte est sauvegardée dans le journal d'audit comme preuve du périmètre.",
|
|
"bulk_query": "Mots-clés de recherche",
|
|
"bulk_query_placeholder": "ex. Projet Titan confidentiel",
|
|
"bulk_query_hint": "Recherche dans le corps de l'email, le sujet et le contenu des pièces jointes via l'index de texte intégral.",
|
|
"bulk_from": "De (email de l'expéditeur)",
|
|
"bulk_date_start": "Date de début",
|
|
"bulk_date_end": "Date de fin",
|
|
"bulk_apply_warning": "Cette action s'appliquera à TOUS les emails correspondant à votre recherche dans l'ensemble de l'archive. La requête de recherche sera enregistrée définitivement dans le journal d'audit.",
|
|
"bulk_apply_confirm": "Appliquer la conservation aux emails correspondants",
|
|
"release_all_title": "Libérer tous les emails de cette conservation ?",
|
|
"release_all_description": "Tous les emails perdront leur immunité de conservation légale. Ils seront évalués par rapport aux politiques de conservation standard lors de la prochaine exécution du worker du cycle de vie et pourront être supprimés définitivement.",
|
|
"release_all_confirm": "Libérer tous les emails",
|
|
"create_success": "Conservation légale créée avec succès.",
|
|
"update_success": "Conservation légale mise à jour avec succès.",
|
|
"delete_success": "Conservation légale supprimée avec succès.",
|
|
"activated_success": "Conservation légale activée. Les emails protégés sont désormais immunisés contre la suppression.",
|
|
"deactivated_success": "Conservation légale désactivée. Les emails ne sont plus protégés par cette conservation.",
|
|
"bulk_apply_success": "Conservation légale appliquée avec succès.",
|
|
"release_all_success": "Tous les emails libérés de la conservation.",
|
|
"create_error": "Échec de la création de la conservation légale.",
|
|
"update_error": "Échec de la mise à jour de la conservation légale.",
|
|
"delete_error": "Échec de la suppression de la conservation légale.",
|
|
"bulk_apply_error": "Échec de l'application en masse.",
|
|
"release_all_error": "Échec de la libération des emails de la conservation."
|
|
},
|
|
"archive_legal_holds": {
|
|
"section_title": "Conservations légales",
|
|
"section_description": "Suspendez la suppression automatique de cet email en le plaçant sous une conservation légale.",
|
|
"no_holds": "Aucune conservation légale appliquée à cet email.",
|
|
"hold_name": "Nom de la conservation",
|
|
"hold_status": "Statut",
|
|
"applied_at": "Appliqué le",
|
|
"apply_hold": "Appliquer une conservation",
|
|
"apply_hold_placeholder": "Sélectionner une conservation légale...",
|
|
"apply": "Appliquer la conservation",
|
|
"applying": "Application en cours...",
|
|
"remove": "Supprimer",
|
|
"removing": "Suppression en cours...",
|
|
"apply_success": "Conservation légale appliquée à cet email.",
|
|
"remove_success": "Conservation légale supprimée de cet email.",
|
|
"apply_error": "Échec de l'application de la conservation légale.",
|
|
"remove_error": "Échec de la suppression de la conservation légale.",
|
|
"immune_notice": "Cet email est protégé par une conservation légale active et ne peut pas être supprimé.",
|
|
"no_active_holds": "Aucune conservation légale active disponible. Créez des conservations dans les paramètres de conformité."
|
|
},
|
|
"audit_log": {
|
|
"title": "Journal d'audit",
|
|
"header": "Journal d'audit",
|
|
"verify_integrity": "Vérifier l'intégrité du journal",
|
|
"log_entries": "Entrées du journal",
|
|
"timestamp": "Horodatage",
|
|
"actor": "Acteur",
|
|
"action": "Action",
|
|
"target": "Cible",
|
|
"details": "Détails",
|
|
"ip_address": "Adresse IP",
|
|
"target_type": "Type de cible",
|
|
"target_id": "ID de cible",
|
|
"no_logs_found": "Aucun journal d'audit trouvé.",
|
|
"prev": "Préc",
|
|
"next": "Suiv",
|
|
"log_entry_details": "Détails de l'entrée du journal",
|
|
"viewing_details_for": "Affichage des détails complets de l'entrée du journal #",
|
|
"actor_id": "ID de l'acteur",
|
|
"previous_hash": "Hash précédent",
|
|
"current_hash": "Hash actuel",
|
|
"close": "Fermer",
|
|
"verification_successful_title": "Vérification réussie",
|
|
"verification_successful_message": "Intégrité du journal d'audit vérifiée avec succès.",
|
|
"verification_failed_title": "Échec de la vérification",
|
|
"verification_failed_message": "La vérification d'intégrité du journal d'audit a échoué. Veuillez consulter les journaux système pour plus de détails.",
|
|
"verification_error_message": "Une erreur inattendue s'est produite lors de la vérification. Veuillez réessayer."
|
|
},
|
|
"jobs": {
|
|
"title": "Files de travaux",
|
|
"queues": "Files de travaux",
|
|
"active": "Actif",
|
|
"completed": "Terminé",
|
|
"failed": "Échoué",
|
|
"delayed": "Retardé",
|
|
"waiting": "En attente",
|
|
"paused": "En pause",
|
|
"back_to_queues": "Retour aux files",
|
|
"queue_overview": "Aperçu des files",
|
|
"jobs": "Travaux",
|
|
"id": "ID",
|
|
"name": "Nom",
|
|
"state": "État",
|
|
"created_at": "Créé le",
|
|
"processed_at": "Traité le",
|
|
"finished_at": "Terminé le",
|
|
"showing": "Affichage",
|
|
"of": "sur",
|
|
"previous": "Précédent",
|
|
"next": "Suivant",
|
|
"ingestion_source": "Source d'ingestion"
|
|
},
|
|
"journaling": {
|
|
"title": "Journalisation SMTP",
|
|
"header": "Sources de journalisation SMTP",
|
|
"meta_description": "Configurez des points de terminaison de journalisation SMTP en temps réel pour l'archivage d'emails sans interruption depuis les MTA d'entreprise.",
|
|
"header_description": "Recevez une copie en temps réel de chaque email directement depuis votre serveur de messagerie via la journalisation SMTP, garantissant zéro perte de données.",
|
|
"create_new": "Créer une source",
|
|
"no_sources_found": "Aucune source de journalisation configurée.",
|
|
"name": "Nom",
|
|
"allowed_ips": "IPs autorisées / CIDR",
|
|
"require_tls": "Exiger TLS",
|
|
"smtp_username": "Nom d'utilisateur SMTP",
|
|
"smtp_password": "Mot de passe SMTP",
|
|
"status": "Statut",
|
|
"active": "Actif",
|
|
"paused": "En pause",
|
|
"total_received": "Emails reçus",
|
|
"last_received_at": "Dernier reçu",
|
|
"created_at": "Créé le",
|
|
"actions": "Actions",
|
|
"create": "Créer",
|
|
"edit": "Modifier",
|
|
"delete": "Supprimer",
|
|
"pause": "Mettre en pause",
|
|
"activate": "Activer",
|
|
"save": "Enregistrer les modifications",
|
|
"cancel": "Annuler",
|
|
"confirm": "Confirmer la suppression",
|
|
"name_placeholder": "ex. Récepteur journal MS365",
|
|
"allowed_ips_placeholder": "ex. 40.107.0.0/16, 52.100.0.0/14",
|
|
"allowed_ips_hint": "Adresses IP ou blocs CIDR séparés par des virgules de vos serveurs de messagerie autorisés à envoyer des rapports de journal.",
|
|
"smtp_username_placeholder": "ex. journal-tenant-123",
|
|
"smtp_password_placeholder": "Entrez un mot de passe fort pour l'authentification SMTP",
|
|
"smtp_auth_hint": "Optionnel. Si configuré, le MTA doit s'authentifier avec ces identifiants lors de la connexion.",
|
|
"create_description": "Configurez un nouveau point de terminaison de journalisation SMTP. Votre MTA enverra des rapports de journal à ce point pour l'archivage en temps réel.",
|
|
"edit_description": "Mettez à jour la configuration de cette source de journalisation.",
|
|
"delete_confirmation_title": "Supprimer cette source de journalisation ?",
|
|
"delete_confirmation_description": "Cela supprimera définitivement le point de terminaison de journalisation et tous les emails archivés associés. Votre MTA ne pourra plus envoyer de rapports de journal à ce point.",
|
|
"deleting": "Suppression en cours",
|
|
"smtp_connection_info": "Informations de connexion SMTP",
|
|
"smtp_host": "Hôte",
|
|
"smtp_port": "Port",
|
|
"routing_address": "Adresse de routage",
|
|
"routing_address_hint": "Configurez cette adresse comme destinataire du journal dans votre MTA (Exchange, MS365, Postfix).",
|
|
"regenerate_address": "Régénérer l'adresse",
|
|
"regenerate_address_warning": "Cela invalidera l'adresse actuelle. Vous devez mettre à jour votre configuration MTA pour utiliser la nouvelle adresse.",
|
|
"regenerate_address_confirm": "Êtes-vous sûr de vouloir régénérer l'adresse de routage ? L'adresse actuelle cessera de fonctionner immédiatement et vous devrez mettre à jour votre configuration MTA.",
|
|
"regenerate_address_success": "Adresse de routage régénérée avec succès. Mettez à jour votre configuration MTA avec la nouvelle adresse.",
|
|
"regenerate_address_error": "Échec de la régénération de l'adresse de routage.",
|
|
"create_success": "Source de journalisation créée avec succès.",
|
|
"update_success": "Source de journalisation mise à jour avec succès.",
|
|
"delete_success": "Source de journalisation supprimée avec succès.",
|
|
"create_error": "Échec de la création de la source de journalisation.",
|
|
"update_error": "Échec de la mise à jour de la source de journalisation.",
|
|
"delete_error": "Échec de la suppression de la source de journalisation.",
|
|
"health_listening": "Listener SMTP : Actif",
|
|
"health_down": "Listener SMTP : Inactif",
|
|
"never": "Jamais"
|
|
},
|
|
"license_page": {
|
|
"title": "Statut de la licence Enterprise",
|
|
"meta_description": "Consultez le statut actuel de votre licence Open Archiver Enterprise.",
|
|
"revoked_title": "Licence non valide",
|
|
"revoked_message": "Votre licence a été révoquée ou votre période de grâce pour dépassement de sièges a expiré. Toutes les fonctionnalités Enterprise sont désormais désactivées. Veuillez contacter votre gestionnaire de compte pour obtenir de l'aide.",
|
|
"notice_title": "Avis",
|
|
"seat_limit_exceeded_title": "Limite de sièges dépassée",
|
|
"seat_limit_exceeded_message": "Votre licence couvre {{planSeats}} sièges mais {{activeSeats}} sont actuellement utilisés. Veuillez réduire l'utilisation ou mettre à niveau votre plan.",
|
|
"seat_limit_grace_deadline": "Les fonctionnalités Enterprise seront désactivées le {{date}} à moins que le nombre de sièges ne soit réduit.",
|
|
"customer": "Client",
|
|
"license_details": "Détails de la licence",
|
|
"license_status": "Statut de la licence",
|
|
"active": "Actif",
|
|
"expired": "Expiré",
|
|
"revoked": "Révoqué",
|
|
"overage": "Dépassement de sièges",
|
|
"unknown": "Inconnu",
|
|
"expires": "Expire",
|
|
"last_checked": "Dernière vérification",
|
|
"seat_usage": "Utilisation des sièges",
|
|
"seats_used": "{{activeSeats}} sur {{planSeats}} sièges utilisés",
|
|
"enabled_features": "Fonctionnalités activées",
|
|
"enabled_features_description": "Les fonctionnalités Enterprise suivantes sont actuellement activées.",
|
|
"feature": "Fonctionnalité",
|
|
"status": "Statut",
|
|
"enabled": "Activé",
|
|
"disabled": "Désactivé",
|
|
"could_not_load_title": "Impossible de charger la licence",
|
|
"could_not_load_message": "Une erreur inattendue s'est produite.",
|
|
"revalidate": "Revalider la licence",
|
|
"revalidating": "Revalidation en cours...",
|
|
"revalidate_success": "Licence revalidée avec succès."
|
|
}
|
|
}
|
|
}
|