{ "common": { "submit": "Soumettre", "cancel": "Annuler", "save": "Enregistrer", "save_changes": "Enregistrer les modifications", "delete": "Supprimer", "edit": "Modifier", "search": "Rechercher", "add": "Ajouter", "remove": "Retirer", "create": "Créer", "update": "Mettre à jour", "confirm": "Confirmer", "close": "Fermer", "yes": "Oui", "no": "Non", "ok": "OK", "loading": "Chargement...", "empty": "Vide", "noData": "Aucune donnée", "table": { "noResults": "Aucun résultat." }, "failed": "Échec", "notFound": "Introuvable", "back": "Retour", "goBack": "Retourner", "backToHome": "Retour à l'accueil", "tryAgain": "Réessayer", "more": "Plus", "actions": "Actions", "filter": "Filtrer", "reset": "Réinitialiser", "clear": "Effacer", "error": "Erreur", "apply": "Appliquer", "select": "Sélectionner", "selectAll": "Tout sélectionner", "deselectAll": "Tout désélectionner", "all": "Tout", "none": "Aucun", "showLess": "Afficher moins", "showMore": "Afficher plus...", "project_description": "Bichon est un projet open-source.", "view_on_github_button": "Voir sur GitHub", "op_failed": "L'opération a échoué", "na": "N/A", "retry": "Réessayer", "deleting": "Suppression..." }, "navigation": { "home": "Accueil", "settings": "Paramètres", "accounts": "Comptes", "dashboard": "Tableau de bord", "mailbox": "Boîte aux lettres", "oauth2": "OAuth2", "accessTokens": "Jetons d'accès", "apiDocs": "Documentation API", "general": "Général", "auth": "Authentification", "other": "Autre", "users": "Utilisateurs du système" }, "auth": { "welcome": "Bienvenue sur Bichon", "username": "Nom d'utilisateur", "password": "Mot de passe", "login": "Se connecter", "loginFailed": "Échec de la Connexion", "invalidPassword": "Mot de passe non valide. Veuillez réessayer.", "somethingWentWrong": "Quelque chose s'est mal passé", "sessionExpired": "Session expirée !", "sessionExpiredDesc": "Votre session a été fermée en raison de l'inactivité. Veuillez vous reconnecter pour continuer.", "logout": "Se déconnecter", "areYouSureYouWantToLogOut": "Êtes-vous sûr de vouloir vous déconnecter ?", "youWillNeedToLogInAgain": "Vous devrez vous reconnecter pour accéder à votre compte." }, "errors": { "pageNotFound": "Oups ! Page non trouvée !", "pageNotFoundDesc": "Il semble que la page que vous recherchez n'existe pas ou a été supprimée.", "somethingWentWrong": "Oups ! Quelque chose s'est mal passé :')", "somethingWentWrongDesc": "Nous nous excusons pour le désagrément. Veuillez réessayer plus tard.", "internalServerError": "Erreur Interne du Serveur !", "contentNotModified": "Contenu non modifié !", "networkError": "Erreur Réseau", "networkErrorDesc": "Impossible de se connecter au serveur. Veuillez vérifier votre connexion Internet et réessayer.", "forbidden": "Interdit", "forbiddenTitle": "Accès Interdit", "forbiddenDesc": "Vous n'avez pas l'autorisation de visualiser cette ressource.", "unauthorized": "Non autorisé", "unauthorizedTitle": "Accès Non Autorisé", "unauthorizedDesc": "Veuillez vous connecter avec les informations d'identification appropriées pour accéder à cette ressource.", "maintenance": "Maintenance", "maintenanceTitle": "Le site est en maintenance !", "maintenanceDesc": "Le site est temporairement indisponible. Nous serons bientôt de retour en ligne.", "learnMore": "En savoir plus" }, "dashboard": { "title": "Tableau de bord", "mailAccounts": "Comptes de messagerie", "connected": "Connecté", "totalEmails": "Total des e-mails", "syncedLocally": "Synchronisés localement", "totalEmailSize": "Taille totale des e-mails", "logicalVolume": "Volume logique", "localDataFiles": "Fichiers de données locaux", "actualDiskUsage": "Utilisation réelle du disque", "metadataSize": "Taille des métadonnées", "duckdbDatabase": "Basé sur le stockage DuckDB", "dayTrend": "Tendance sur 30 jours", "attachments": "Pièces jointes", "topLists": "Top Listes", "newEmails": "Nouveaux e-mails", "messageDistribution": "Distribution des messages", "attachmentRatio": "Ratio de pièces jointes", "attachmentRatioDesc": "{{percent}}% des e-mails ont des pièces jointes", "noEmailsSynced": "Aucun e-mail synchronisé pour l'instant", "withAttachments": "Avec Pièces Jointes", "noAttachments": "Sans Pièces Jointes", "top10Senders": "Top 10 des Expéditeurs", "byMessageCount": "Par nombre de messages", "sender": "Expéditeur", "count": "Compte", "top10LargestEmails": "Top 10 des E-mails les Plus Volumineux", "byMessageSize": "Par taille de message", "subject": "Objet", "size": "Taille", "noSubject": "(Aucun Objet)", "top10Accounts": "Top 10 des Comptes", "emails": "E-mails", "account": "Compte", "noRecentActivity": "Aucune activité récente", "noSendersData": "Aucune donnée d'expéditeurs", "noLargeEmails": "Aucun gros e-mail", "noAccountData": "Aucune donnée de compte", "systemVersion": "Version du système" }, "accounts": { "beforeRelativeValue": "Synchroniser les e-mails datant de plus de {{value}} {{unit}}", "sinceRelativeValue": "Synchroniser les e-mails des derniers {{value}} {{unit}}", "syncBatchSize": "Taille du lot de synchronisation", "syncBatchSizeDescription": "Nombre de messages récupérés par requête IMAP", "incrementalSyncDescription": "Fréquence de synchronisation incrémentielle (en minutes)", "syncScope": "Stratégie de synchronisation", "syncScopeDescription": "Choisissez les e-mails à indexer et à archiver.", "selectMode": "Sélectionner le mode de filtrage", "syncAll": "Synchroniser tous les e-mails", "sinceFixed": "Depuis une date spécifique", "sinceRelative": "Synchroniser uniquement les e-mails récents", "beforeRelative": "Archiver uniquement les anciens e-mails", "duration": "Durée", "unit": "Unité", "accessControl": "Contrôle d'accès", "owner": "Créateur", "access_control": { "title": "Attribution d'accès au compte", "description": "Attribuer des rôles et des utilisateurs autorisés à {{email}}", "role_label": "Rôle d'accès", "role_placeholder": "Sélectionner un rôle", "role_loading": "Chargement des rôles...", "user_label": "Sélectionner les utilisateurs autorisés", "user_search_placeholder": "Rechercher par nom d'utilisateur ou e-mail...", "user_empty": "Aucun utilisateur trouvé", "user_selected_count": "Sélectionné : {{count}} utilisateur(s)", "buttons": { "cancel": "Annuler", "save": "Enregistrer l'attribution" }, "validation": { "user_required": "Veuillez sélectionner au moins un utilisateur", "role_required": "Veuillez sélectionner un rôle à attribuer" }, "toast": { "success_title": "Attribution réussie", "success_desc": "Les autorisations ont été attribuées avec succès à {{email}}", "failed_title": "Échec de l'attribution" } }, "title": "Comptes de Messagerie", "description": "Gérez et configurez vos comptes de messagerie.", "addImap": "Ajouter IMAP", "addNoSync": "Ajouter NoSync", "moreAccountTypes": "Plus de types de compte", "noAccountConfigurations": "Aucune Configuration de Compte", "noAccountConfigurationsDesc": "Vous n'avez pas encore ajouté de Configuration de Compte. Veuillez en ajouter une pour commencer à utiliser les fonctionnalités du Compte.", "addConfiguration": "Ajouter Configuration", "name": "Nom de connexion", "email": "E-mail", "status": "Statut", "type": "Type", "lastSync": "Dernière Synchronisation", "actions": "Actions", "edit": "Modifier", "delete": "Supprimer", "detail": "Détail", "syncFolders": "Synchroniser les Dossiers", "oauth2Tokens": "Jetons OAuth2", "id": "ID", "enabled": "Activé", "auth": "Auth.", "incSync": "Sync. Inc.", "state": "État", "createdAt": "Créé le", "updatedAt": "Mis à jour le", "openMenu": "Ouvrir le menu", "emailAccountRegistration": "Enregistrement de Compte E-mail", "emailAccountRegistrationDesc": "Veuillez entrer votre adresse e-mail. Vous configurerez les détails IMAP/SMTP dans les étapes suivantes. Nous essaierons de trouver automatiquement les adresses des serveurs SMTP/IMAP en utilisant l'adresse e-mail fournie.", "emailAddress": "Adresse E-mail", "emailPlaceholder": "ex. jean.dupont@exemple.com", "namePlaceholder": "ex. jean.dupont", "optional": "Facultatif", "nameDescription": "Nom d'utilisateur de connexion IMAP. Laissez ce champ vide si vous utilisez votre adresse e-mail complète comme nom d'utilisateur de connexion.", "emailCannotBeModified": "L'adresse e-mail du compte ne peut pas être modifiée lors de l'édition.", "addAccount": "Ajouter un Compte", "updateAccount": "Mettre à jour le Compte", "accountUpdated": "Compte Mis à Jour", "accountCreated": "Compte Créé", "accountUpdatedDesc": "Votre compte a été mis à jour avec succès.", "accountCreatedDesc": "Votre compte a été créé avec succès.", "accountUpdateFailed": "Échec de la Mise à Jour du Compte", "accountCreationFailed": "Échec de la Création du Compte", "updateFailed": "La mise à jour a échoué, veuillez réessayer plus tard", "creationFailed": "La création a échoué, veuillez réessayer plus tard", "selectSyncFolders": "Sélectionner les Dossiers de Synchronisation", "allMailFolderSelected": "Attention : Dossier 'Tous les messages' sélectionné", "accountSyncFoldersUpdated": "Dossiers de Synchronisation de Compte Mis à Jour", "accountSyncFoldersUpdateFailed": "Échec de la Mise à Jour des Dossiers de Synchronisation de Compte", "serverConfiguration": "Configuration du Serveur (IMAP)", "syncFoldersTitle": "Synchroniser les Dossiers", "allMailFolderSelectedDesc": "La sélection de dossiers avec l'attribut 'Tous les messages' entraînera probablement la duplication des messages déjà synchronisés à partir de dossiers tels que Boîte de réception et Éléments envoyés. Cela peut consommer beaucoup plus d'espace de stockage.", "allMailSkipped": "Dossiers par défaut sélectionnés. 'Tous les messages' a été ignoré pour éviter les doublons.", "selectAtLeastOneFolder": "Veuillez sélectionner au moins un dossier", "chooseFoldersToSync": "Choisissez les dossiers à synchroniser pour {{email}}. Les dossiers nouvellement ajoutés commenceront à être téléchargés lors du prochain cycle de synchronisation.", "accountDetails": "Détails du Compte", "capabilities": "Capacités", "folderLimit": "Limite de Dossiers", "incrementalSyncInterval": "Intervalle de Synchronisation Incrémentielle", "everyMinutes": "toutes les {{minutes}} minutes", "foldersConfiguredForSync": "{{count}} dossier(s) configuré(s) pour la synchronisation", "foldersSelected": "{{count}} dossier(s) sélectionné(s)", "imapHost": "Hôte IMAP", "imapHostPlaceholder": "ex. imap.exemple.com", "imapPort": "Port IMAP", "imapPortPlaceholder": "ex. 993", "imapEncryption": "Chiffrement IMAP", "selectEncryptionMethod": "Sélectionner une méthode de chiffrement", "chooseEncryptionMethod": "Choisissez la méthode de chiffrement à utiliser pour IMAP.", "imapAuthMethod": "Méthode d'Authentification IMAP", "selectAuthMethod": "Sélectionner une méthode d'authentification", "chooseAuthMethod": "Choisissez la méthode d'authentification à utiliser pour IMAP.", "imapPassword": "Mot de passe IMAP", "leaveEmptyToKeepPassword": "Laisser vide pour conserver le mot de passe actuel", "enterPassword": "Entrez votre mot de passe", "leaveEmptyToKeepExisting": "Laissez vide pour conserver le mot de passe existant, ou entrez-en un nouveau pour le mettre à jour.", "useProxy": "Utiliser un Proxy", "selectProxy": "Sélectionner un proxy", "incrementalSync": "Synchronisation Incrémentielle (minutes)", "incrementalSyncPlaceholder": "ex. 300", "enabledDescription": "Détermine si ce compte est actif. S'il est désactivé, les synchronisations associées ne seront pas exécutées.", "dateSince": "Date Depuis", "none": "Aucune", "fixed": "Fixe", "relative": "Relative", "selectDate": "Sélectionner une date", "selectUnit": "Sélectionner une unité", "days": "Jours", "months": "Mois", "years": "Années", "enterValue": "Entrez une valeur", "mustBeAtLeast1": "Doit être au moins 1", "dateSelection": "Sélection de Date", "since": "depuis", "recent": "récent", "notAvailable": "n.d.", "host": "hôte", "port": "port", "encryption": "chiffrement", "authType": "type_auth", "password": "mot_de_passe", "useProxyField": "utiliser un proxy", "clickSaveWhenDone": "Cliquez sur Enregistrer lorsque vous avez terminé.", "step": "Étape {{index}}", "goBack": "Retourner", "autoConfiguring": "Configuration automatique...", "continue": "Continuer", "saveChanges": "Enregistrer les Modifications", "submit": "Soumettre", "field": "Champ", "value": "Valeur", "refreshToken": "Jeton de Rafraîchissement", "accessTokenCopiedToClipboard": "Jeton d'accès copié dans le presse-papiers", "refreshTokenCopiedToClipboard": "Jeton de rafraîchissement copié dans le presse-papiers", "noOAuth2Tokens": "Aucun Jeton OAuth2", "theAccountHasNotCompletedTheAuthorizationProcess": "Le compte n'a pas terminé le processus d'autorisation. Veuillez ", "clickHere": "cliquer ici", "toAuthorizeTheAccount": " pour autoriser le compte.", "detailsOfTheOAuth2TokensForTheAccount": "Détails des jetons OAuth2 pour le compte.", "updateTheEmailAccountHere": "Mettez à jour le compte e-mail ici. ", "addNewEmailAccountHere": "Ajoutez un nouveau compte e-mail ici. ", "thisAccountIsUsedForIdentificationPurposesOnly": "Ce compte est utilisé uniquement à des fins d'identification et ne nécessite pas de synchronisation avec un serveur de messagerie. Il est utile pour l'importation de données d'e-mails.", "determinesWhetherThisAccountIsActiveNoSync": "Détermine si ce compte est actif. S’il est désactivé, il ne pourra pas importer de données.", "folderSync": { "noData": "Aucune Donnée", "noFolders": "Aucun dossier à synchroniser", "batches": "lots", "autoSelectDescendants": "Sélectionner automatiquement les descendants", "autoSelectParents": "Sélectionner automatiquement les parents", "expandAll": "Tout développer", "collapseAll": "Tout réduire", "loadingMailboxFolders": "Chargement des dossiers de la boîte…" }, "viewDetails": "voir les détails", "runningState": { "notStarted": "Non Démarré", "inProgress": "En Cours", "calculating": "Calcul en cours...", "initialSync": "Synchronisation Initiale", "completed": "Terminé", "duration": "Durée", "startTime": "Heure de Début :", "endTime": "Heure de Fin :", "syncProgress": "Progression de la Synchronisation", "incrementalSync": "Synchronisation Incrémentielle", "syncInterval": "Intervalle de Synchronisation :", "everyMinutes": "Toutes les {{minutes}} minutes", "errorLogs": "Journaux d'Erreurs", "noErrorLogs": "Aucun journal d'erreurs disponible.", "noActiveState": "Aucun état actif disponible", "accountNotStarted": "La synchronisation du compte n'a peut-être pas encore démarré", "close": "Fermer" }, "steps": { "complete": "Terminé", "emailAddress": "Adresse E-mail", "imap": "IMAP", "syncPreferences": "Préférences de Synchronisation", "summary": "Résumé" }, "imapProxy": "Utiliser un proxy SOCKS5 pour les connexions IMAP.", "syncStartDateDescription": "Définit la date de début de la synchronisation - fixe ou relative à l'heure actuelle. Les e-mails antérieurs à cette date seront exclus, {{fixedPart}}.", "syncAfterDate": "synchroniser les données après une date définie", "syncRecentData": "faire glisser la date de synchronisation dans le temps, en ne synchronisant que les données récentes", "folderLimitDescription": "Limite le nombre d'e-mails à synchroniser par dossier (minimum 100). Laissez vide pour aucune limite.", "folderLimitPlaceholder": "ex. 1000", "imap": "IMAP", "minutes": "minutes", "accountHasBeenSuccessfully": "Le compte a été {{action}} avec succès", "enableAccount": "Activer le compte", "disableAccount": "Désactiver le compte", "areYouSureYouWantTo": "Êtes-vous sûr de vouloir {{action}} ce compte ?", "enable": "Activer", "disable": "Désactiver", "thisWillPreventTheAccountFromBeingUsed": "Ce compte ne synchronisera plus les données depuis le serveur IMAP, mais les données existantes resteront accessibles.", "disabled": "Désactivé", "useDangerous": "Faire confiance à n’importe quel certificat TLS", "useDangerousDescription": "Activez cette option seulement si vous vous connectez à un serveur IMAP utilisant un certificat public ou auto‑signé que votre système pourrait ne pas reconnaître. Cette option contourne la vérification standard des certificats, ce qui peut vous exposer à des attaques de type homme‑du‑milieu — n’activez que si vous comprenez les risques." }, "mailbox": { "deleteMailboxDialog": { "title": "Supprimer le dossier de messagerie", "desc": "Êtes-vous sûr de vouloir supprimer ce dossier de messagerie ? Cette action est irréversible.", "warningTitle": "Avertissement", "warningDesc": "La suppression de ce dossier supprimera également de façon permanente tous les e-mails archivés et sous-dossiers qu'il contient.", "confirm": "Supprimer définitivement", "successTitle": "Suppression réussie", "successDesc": "Le dossier de messagerie et son contenu ont été supprimés avec succès.", "errorTitle": "Échec de la suppression" }, "title": "Boîte aux lettres", "folders": "Dossiers", "messages": "Messages", "noMessages": "Aucun message", "selectFolder": "Sélectionnez un dossier pour voir les messages", "deleteDialog": { "title": "Supprimer l'E-mail", "desc": "Êtes-vous sûr de vouloir supprimer {{countText}} ? Cette action supprimera définitivement le(s) e-mail(s) sélectionné(s) de la base de données locale. L'e-mail/les e-mails seront perdus à jamais et ne pourront pas être récupérés.", "descCountSingle": "cet e-mail", "descCountMultiple": "ces {{count}} e-mails", "warningTitle": "Attention !", "warningDesc": "Veuillez procéder avec prudence.", "confirm": "Supprimer", "successTitle": "Messages supprimés avec succès", "successDesc": "Les messages ont été supprimés.", "errorTitle": "Échec de la suppression des messages" }, "thread": { "title": "Fil de discussion ({{count}} {{messageLabel}})", "message": "message", "messages": "messages", "noSubject": "(Aucun objet)", "invalidDate": "Date invalide", "empty": "Aucun message dans ce fil de discussion.", "loadError": "Échec du chargement du fil de discussion", "loadingMore": "Chargement en cours...", "loadMore": "Charger plus" }, "bulkActions": { "ariaLabel": "Actions de masse pour {{count}} {{emailLabel}} sélectionné(s)", "email": "e-mail", "emails": "e-mails", "selected": "sélectionné(s)", "clearSelection": "Effacer la sélection", "clearSelectionWithKey": "Effacer la sélection ({{key}})", "delete": "Supprimer", "deleteTooltip": "Supprimer les e-mails sélectionnés" } }, "search": { "size": "Taille", "any": "Toutes", "tiny": "Très petite (<15 KB)", "small": "Petite (<2 MB)", "medium": "Moyenne (2 - 10 MB)", "large": "Grande (10 - 20 MB)", "huge": "Énorme (≥20 Mo)", "sort": "Trier", "sizeDescription": "La taille correspond à la taille totale de l’e-mail, pièces jointes incluses.", "title": "Recherche", "searching": "Recherche en cours, veuillez patienter...", "noEmailsFound": "Aucun e-mail trouvé", "startSearching": "Commencez à rechercher en utilisant un mot-clé, un expéditeur ou des filtres avancés.", "adjustSearch": "Essayez d'ajuster vos critères de recherche ou d'effacer les filtres.", "tagFilter": "Filtre par Étiquette", "from": "De", "to": "À", "subject": "Objet", "date": "Date", "editTag": "Modifier l'Étiquette", "keyword": "Mot-clé", "sender": "Expéditeur", "recipient": "Destinataire", "hasAttachment": "Contient une Pièce Jointe", "yes": "Oui", "no": "Non", "dateRange": "Plage de Dates", "startDate": "Date de Début", "endDate": "Date de Fin", "advancedFilters": "Filtres Avancés", "searchArchivedEmails": "Rechercher dans les E-mails Archivés", "fullTextMultiAccount": "Texte intégral · Multi-comptes · Filtres avancés", "account": "Compte", "mailbox": "Boîte aux lettres", "selectAccount": "Sélectionner un compte", "selectMailbox": "Sélectionner une boîte aux lettres", "noActiveEmailAccount": "Aucun compte e-mail actif.", "addEmailAccount": "Ajouter un Compte E-mail", "noMailboxSelectAccount": "Aucune boîte aux lettres. Veuillez sélectionner un compte d'abord.", "searchInSubjectBody": "Rechercher dans l'objet, le corps, les pièces jointes...", "searchingButton": "Recherche en cours...", "searchButton": "Rechercher", "advanced": "Avancé", "clear": "Effacer", "since": "Depuis :", "before": "Avant :", "selectDate": "Sélectionner une date", "pleaseSelectAtLeastOne": "Veuillez sélectionner au moins un critère de recherche", "cc": "Cc", "bcc": "Cci", "attachmentName": "Nom de la Pièce Jointe", "messageId": "ID du Message", "minSize": "Taille Min", "maxSize": "Taille Max", "senderRecipients": "Expéditeur / Destinataires", "attachmentsSize": "Pièces Jointes et Taille", "minimumBytes": "Minimum (octets)", "maximumBytes": "Maximum (octets)", "originalMessageIdHeader": "En-tête Message-ID de l'e-mail original", "addTags": { "title": "Modifier les Étiquettes", "none": "Aucune étiquette ajoutée pour l'instant", "searchPlaceholder": "Rechercher ou créer des étiquettes...", "createHint": "Créer une nouvelle étiquette : {{tag}}", "invalidTitle": "Étiquette Non Valide", "updatedTitle": "Étiquettes Mises à Jour", "updatedDesc": "Les étiquettes ont été mises à jour avec succès", "updateFailedTitle": "Échec de la Mise à Jour", "tryAgain": "Veuillez réessayer plus tard", "selectedCount": "{{count}} étiquette(s) sélectionnée(s)", "cancel": "Annuler", "save": "Enregistrer", "saving": "Enregistrement en cours..." }, "updateTags": { "overwriteWarning": "Avertissement : cela écrasera tous les tags existants sur les éléments sélectionnés.", "title": "Modifier les tags", "none": "Aucun tag sélectionné", "searchPlaceholder": "Rechercher ou créer un tag...", "createHint": "Appuyez sur Entrée pour créer le tag : \"{{tag}}\"", "selectedCount": "{{count}} tag(s) à appliquer", "cancel": "Annuler", "invalidTitle": "Tag invalide", "updatedTitle": "Tags mis à jour", "updatedDesc": "Les tags ont été mis à jour avec succès.", "updateFailedTitle": "Échec de la mise à jour", "tryAgain": "Veuillez réessayer plus tard.", "actionAdd": "Ajouter", "actionRemove": "Retirer", "actionOverwrite": "Écraser", "submitAdd": "Ajouter les tags", "submitRemove": "Retirer les tags", "submitOverwrite": "Écraser les tags", "savingAdd": "Ajout...", "savingRemove": "Retrait...", "savingOverwrite": "Écrasement..." }, "thread": { "title": "Fil de discussion · {{count}} messages", "error": "Échec du chargement du fil de discussion", "empty": "Aucun message dans ce fil de discussion", "invalidDate": "Date invalide", "noSubject": "(Aucun objet)", "loadingMore": "Chargement en cours...", "loadMore": "Charger plus" }, "bulkActions": { "ariaLabel": "{{count}} messages sélectionnés. Barre d'actions groupées", "delete": "Supprimer", "deleteDesc": "Supprimer les messages sélectionnés", "selected": "{{count}} sélectionné(s)", "clear": "Effacer la sélection", "manageTags": "Gérer les tags" }, "delete": { "title": "Supprimer les messages", "confirmPrefix": "Êtes-vous sûr de vouloir supprimer", "countLabel": "{{count}} message(s)", "confirmDetail": "Cette action est irréversible.", "confirmButton": "Supprimer", "warningTitle": "Avertissement", "warningDesc": "Les messages supprimés seront définitivement retirés.", "successTitle": "Messages supprimés", "successDesc": "Les messages ont été supprimés avec succès.", "errorTitle": "Échec de la suppression" } }, "mail": { "emailViewer": "Afficheur d'E-mail", "noMessageSelected": "Aucun message sélectionné", "account": "Compte", "from": "De", "to": "À", "subject": "Objet", "date": "Date", "tags": "Étiquettes", "noTagsYet": "Aucune étiquette pour l'instant", "id": "ID", "cc": "Cc", "bcc": "Cci", "attachments": "Pièces jointes", "download": "Télécharger", "delete": "Supprimer", "viewThread": "Voir le Fil de Discussion", "downloadStarted": "Téléchargement démarré", "downloadComplete": "Téléchargement terminé", "downloadFailed": "Échec du téléchargement", "failedToDownloadFile": "Échec du téléchargement du fichier", "failedToLoadEmail": "Échec du chargement du message e-mail.", "isBeingDownloaded": "{{id}} en cours de téléchargement", "downloaded": "{{id}} téléchargé", "showLess": "afficher moins", "showMore": "afficher plus...", "onlyNonInlineAttachments": "Seules les pièces jointes non intégrées sont affichées ici.", "noAttachments": "Aucune pièce jointe" }, "oauth2": { "title": "OAuth2", "addConfiguration": "Ajouter Configuration", "id": "ID", "provider": "Fournisseur", "clientId": "ID Client", "clientSecret": "Secret Client", "redirectUri": "URI de Redirection", "scopes": "Portées", "status": "Statut", "enabled": "Activé", "disabled": "Désactivé", "edit": "Modifier", "delete": "Supprimer", "enable": "Activer", "disable": "Désactiver", "noConfigurations": "Aucune Configuration OAuth2", "noConfigurationsDesc": "Vous n'avez pas encore ajouté de configuration OAuth2. Veuillez en ajouter une pour commencer à utiliser les fonctionnalités OAuth2.", "description": "Gère automatiquement la récupération, le stockage et le rafraîchissement des jetons d'accès, garantissant une expérience d'authentification transparente et toujours disponible.", "addNew": "Ajouter Nouveau", "updateHere": "Mettez à jour ici.", "createNewHere": "Créez-en un nouveau ici.", "clickSaveWhenDone": "Cliquez sur Enregistrer lorsque vous avez terminé.", "quickPresets": "Préréglages rapides :", "gmail": "Gmail", "outlook": "Outlook", "whenDisabled": "Si désactivé : - Les nouveaux flux d'autorisation seront immédiatement refusés - Les jetons d'accès et de rafraîchissement existants seront révoqués dans la minute - Les utilisateurs devront réautoriser lors de la réactivation", "clientIdLabel": "ID Client :", "enterYourClientId": "Entrez votre ID client", "theUniqueIdentifierForYourApplication": "L'identifiant unique de votre application, fourni par le fournisseur OAuth.", "clientSecretLabel": "Secret Client :", "leaveEmptyToKeepExistingSecret": "Laisser vide pour conserver le secret existant", "enterYourClientSecret": "Entrez votre secret client", "leaveEmptyToKeepTheExistingSecret": "Laissez vide pour conserver le secret existant, entrez une nouvelle valeur seulement pour mettre à jour.", "aSecretKeyProvidedByTheOAuthProvider": "Une clé secrète fournie par le fournisseur OAuth pour authentifier votre application.", "authUrlLabel": "URL d'Autorisation :", "enterTheAuthorizationUrl": "Entrez l'URL d'autorisation", "theUrlWhereUsersWillBeRedirected": "L'URL vers laquelle les utilisateurs seront redirigés pour autoriser votre application.", "tokenUrlLabel": "URL du Jeton :", "enterTheTokenUrl": "Entrez l'URL du jeton", "theUrlUsedToExchange": "L'URL utilisée pour échanger le code d'autorisation contre un jeton d'accès.", "redirectUrlLabel": "URI de Redirection :", "enterYourRedirectUrl": "Entrez votre URI de redirection", "theRedirectUrlAfterAuthorization": "L'URI de redirection après autorisation. Doit correspondre à celui enregistré auprès du fournisseur OAuth. Utilise le format http://[host]:[port]/oauth2/callback (ou https://), où [host] et [port] doivent correspondre à votre déploiement RustMailer. Le chemin /oauth2/callback est fixe.", "scope": "Portée :", "enterTheScopeHere": "Entrez la portée ici.", "addScope": "Ajouter une Portée", "key": "Clé :", "enterTheKeyHere": "Entrez la clé ici.", "value": "Valeur :", "enterTheValueHere": "Entrez la valeur ici.", "addExtraParams": "Ajouter des Paramètres Supplémentaires", "useProxyOptional": "Utiliser un Proxy (facultatif) :", "selectAProxy": "Sélectionner un proxy", "noProxyAvailable": "Aucun proxy disponible", "useSocks5ProxyForOAuthRequests": "Utilise le proxy SOCKS5 pour les requêtes OAuth lorsque l'accès direct est bloqué.", "descriptionLabel": "Description :", "describeThePurposeOfTheOauth2Application": "Décrivez le but de l'application OAuth2", "optional": "Facultatif", "saving": "Enregistrement en cours...", "creating": "Création en cours...", "saveChanges": "Enregistrer les Modifications", "save": "Enregistrer", "updated": "Mis à jour", "created": "Créé", "yourOAuth2ApplicationHasBeenSuccessfully": "Votre application OAuth2 a été {{action}} avec succès.", "updateFailed": "Échec de la Mise à Jour", "creationFailed": "Échec de la Création", "updateOrCreationFailed": "La {{action}} a échoué, veuillez réessayer plus tard", "clientSecretIsRequired": "Le Secret Client est obligatoire", "clientSecretCannotBeEmpty": "Le Secret Client ne peut pas être vide", "keyIsRequired": "La Clé est obligatoire", "keyCannotBeEmpty": "La Clé ne peut pas être vide", "valueIsRequired": "La Valeur est obligatoire", "valueCannotBeEmpty": "La Valeur ne peut pas être vide", "descriptionMustNotExceed255Characters": "La description ne doit pas dépasser 255 caractères.", "clientIdIsRequired": "L'ID Client est obligatoire", "clientIdCannotBeEmpty": "L'ID Client ne peut pas être vide", "authorizationUrlIsRequired": "L'URL d'Autorisation est obligatoire", "authorizationUrlCannotBeEmpty": "L'URL d'Autorisation ne peut pas être vide", "invalidAuthorizationUrlFormat": "Format d'URL d'autorisation invalide", "tokenUrlIsRequired": "L'URL du Jeton est obligatoire", "tokenUrlCannotBeEmpty": "L'URL du Jeton ne peut pas être vide", "invalidTokenUrlFormat": "Format d'URL de jeton invalide", "redirectUriIsRequired": "L'URI de Redirection est obligatoire", "redirectUriCannotBeEmpty": "L'URI de Redirection ne peut pas être vide", "invalidRedirectUriFormat": "Format d'URI de redirection invalide", "authorizeEmailAccount": "Autoriser le Compte E-mail", "authorizeAnEmailAccountToStartTheOAuth2AuthorizationProcess": "Autorisez un compte e-mail pour démarrer le processus d'autorisation OAuth2.", "loadingAccounts": "Chargement des comptes...", "selectAnAccount": "Sélectionner un compte", "noEmailAccountsRegistered": "Aucun compte e-mail enregistré. Veuillez en créer un.", "pleaseCreateOne": "Veuillez en créer un.", "createAccount": "Créer un Compte", "authorize": "Autoriser", "getAuthorizeUrlFailed": "Échec de la Récupération de l'URL d'Autorisation", "getAuthorizeUrlFailedDesc": "Échec de la récupération de l'URL d'autorisation, veuillez réessayer plus tard", "oauth2ClientUpdated": "Client OAuth2 Mis à Jour", "oauth2ClientHasBeenSuccessfully": "Le client OAuth2 a été {{action}} avec succès.", "statusUpdateFailed": "Échec de la mise à jour du statut, veuillez réessayer plus tard", "disableOAuth2Client": "Désactiver le Client OAuth2", "enableOAuth2Client": "Activer le Client OAuth2", "areYouSureYouWantTo": "Êtes-vous sûr de vouloir {{action}} ce client OAuth2 ?", "thisWillPreventTheOAuth2ClientFromBeingUsed": "Cela empêchera l'utilisation du client OAuth2.", "deleteToken": "Supprimer le Jeton", "areYouSureYouWantToDelete": "Êtes-vous sûr de vouloir supprimer", "thisActionWillPermanentlyRemoveTheOauth2Record": "Cette action supprimera définitivement l'enregistrement OAuth2 du système. Cela ne peut pas être annulé.", "enterIdToConfirmDeletion": "Entrez l'ID pour confirmer la suppression.", "warning": "Attention !", "pleaseBeCareful": "Soyez prudent, cette opération ne peut pas être annulée.", "deleteSuccess": "Suppression Réussie", "yourOAuth2ApplicationHasBeenSuccessfullyDeleted": "Votre application OAuth2 a été supprimée avec succès.", "oauth2DeleteFailed": "Échec de la Suppression OAuth2", "deleteFailed": "La suppression a échoué, veuillez réessayer plus tard", "actions": { "openMenu": "Ouvrir le menu", "edit": "Modifier", "authorize": "Autoriser", "delete": "Supprimer" }, "authFailed": "Échec de l'Authentification OAuth2", "error": "Erreur", "unknownError": "Une erreur inconnue s'est produite.", "tryAgain": "Réessayer", "goHome": "Aller à l'Accueil", "authSuccess": "Authentification OAuth2 Réussie", "success": "Succès", "successMessage": "Votre compte e-mail a été authentifié avec succès via OAuth2. Le jeton d'accès a été enregistré par le système et sera rafraîchi automatiquement si nécessaire.", "goToAccounts": "Aller aux Comptes", "authAtatus": "Statut de l'Authentification OAuth2", "information": "Information", "noStatus": "Cette page affiche le résultat de votre authentification OAuth2. Aucun statut spécifique n'est disponible actuellement. Veuillez réessayer si nécessaire.", "backToLogin": "Retour à la Connexion" }, "accessTokens": { "title": "Jetons d'Accès", "name": "Nom", "accounts": "Comptes", "token": "Jeton", "createdAt": "Créé le", "expiresAt": "Expire le", "edit": "Modifier", "delete": "Supprimer", "create": "Créer", "noTokens": "Aucun Jeton d'Accès", "noTokensDesc": "Vous n'avez pas encore créé de jeton d'accès. Veuillez en créer un pour utiliser les fonctionnalités API.", "description": "Gérez vos jetons d'accès, leurs règles ACL, les listes blanches IP et les paramètres de limitation de débit ici.", "editToken": "Modifier le Jeton", "addNew": "Ajouter Nouveau", "updateTheAccessTokenHere": "Mettez à jour le jeton d'accès ici.", "createNewAccessTokenHere": "Créez un nouveau jeton d'accès ici.", "selectAccounts": "Sélectionner des comptes", "selectMultipleAccountsForTheAccessToken": "Sélectionnez plusieurs comptes pour l'autorisation du jeton d'accès.", "enterOneIpAddressPerLine": "Entrez une adresse IP par ligne, ex. :\n192.168.1.1\n192.168.1.2", "aListOfIpAddressesAllowed": "Une liste d'adresses IP autorisées à accéder à la ressource. Entrez une adresse IP par ligne. (Facultatif)", "enterQuota": "Entrez le quota, ex. 100", "theMaximumNumberOfRequestsAllowed": "Le nombre maximum de requêtes autorisées dans l'intervalle. (Facultatif)", "enterIntervalInSeconds": "Entrez l'intervalle en secondes, ex. 60", "theTimeWindowForTheRateLimit": "La fenêtre de temps (en secondes) pour la limitation de débit. (Facultatif)", "describeThePurposeOfTheAccessToken": "Décrivez le but du jeton d'accès", "updating": "Mise à jour en cours...", "saving": "Enregistrement en cours...", "creating": "Création en cours...", "saveChanges": "Enregistrer les Modifications", "save": "Enregistrer", "updated": "Mis à jour", "created": "Créé", "yourAccessTokenHasBeenSuccessfully": "Votre jeton d'accès a été {{action}} avec succès.", "updateFailed": "Échec de la Mise à Jour", "creationFailed": "Échec de la Création", "updateOrCreationFailed": "La {{action}} a échoué, veuillez réessayer plus tard", "quotaMustBeAPositiveInteger": "Le quota doit être un entier positif.", "intervalMustBeAPositiveInteger": "L'intervalle doit être un entier positif.", "invalidIpAddressesFound": "Adresses IP non valides trouvées. Veuillez entrer des adresses IPv4 ou IPv6 valides.", "atLeastOneAccountIsRequired": "Au moins un compte est requis.", "descriptionMustNotExceed255Characters": "La description ne doit pas dépasser 255 caractères.", "notUsedYet": "Pas encore utilisé", "theListOfAccountsThatCanBeQueried": "La liste des comptes qui peuvent être interrogés à l'aide du jeton d'accès.", "accountId": "ID Compte", "filterByEmailAddressOrAccountId": "Filtrer par adresse e-mail ou ID de compte...", "aclRulesForAccessTokens": "Les règles ACL pour les jetons d'accès incluent la vérification de la liste blanche IP et l'application de la limite de débit.", "actions": { "openMenu": "Ouvrir le menu", "edit": "Modifier", "delete": "Supprimer" }, "quota": "Quota", "interval": "Intervalle" }, "settings": { "appearance": { "title": "Apparence", "field": { "language": "Langue de l'interface", "theme": "Thème de l'interface" }, "description": { "language": "Choisissez la langue de l'interface web.", "theme": "Choisissez entre le mode clair ou sombre." }, "placeholder": { "select_language": "Choisir une langue" }, "command": { "search": "Rechercher une langue...", "no_results": "Aucune langue trouvée." }, "theme": { "light": "Clair", "dark": "Sombre" }, "button": { "update": "Mettre à jour les préférences" }, "validation": { "language": { "required": "Veuillez sélectionner une langue." }, "theme": { "required": "Veuillez sélectionner un thème." } } }, "title": "Paramètres", "general": "Général", "proxy": "Proxy", "name": "Nom", "host": "Hôte", "port": "Port", "username": "Nom d'utilisateur", "password": "Mot de passe", "type": "Type", "actions": "Actions", "edit": "Modifier", "delete": "Supprimer", "add": "Ajouter", "noProxies": "Aucun Proxy", "noProxiesDesc": "Vous n'avez pas encore ajouté de configuration de proxy. Veuillez en ajouter une pour utiliser les fonctionnalités de proxy.", "root": "Root", "rootTitle": "Root", "rootDesc": "Gérez les informations d'identification d'accès root, y compris le jeton et le mot de passe.", "rootAccessManagement": "Gestion de l'Accès Root", "manageRootTokenAndPassword": "Gérez en toute sécurité le jeton et le mot de passe root.", "resetRootToken": "Réinitialiser le Jeton Root", "generateNewToken": "Génère un nouveau jeton, l'ancien expirera immédiatement.", "reset": "Réinitialiser", "resetRootPassword": "Réinitialiser le Mot de Passe Root", "changePasswordForFutureLogins": "Change le mot de passe pour les futures connexions.", "youAreAboutToResetTheRootToken": "Vous êtes sur le point de réinitialiser le jeton root. Cette action ne peut pas être annulée.", "confirmReset": "Confirmer la Réinitialisation", "youAreAboutToResetTheRootPassword": "Vous êtes sur le point de réinitialiser le mot de passe root. Assurez-vous de le conserver en lieu sûr.", "enterNewRootPassword": "Entrez le nouveau mot de passe root", "theRootTokenHasBeenReset": "Le jeton root a été réinitialisé", "yourLoginInformationHasBeenUpdated": "Vos informations de connexion ont été mises à jour. Il n'est pas nécessaire de vous reconnecter.", "invalidPassword": "Mot de passe non valide", "rootPasswordMustBeAtLeast6Characters": "Le mot de passe root doit contenir au moins 6 caractères.", "theRootPasswordHasBeenReset": "Le mot de passe root a été réinitialisé", "useNewPasswordForNextLogin": "Utilisez le nouveau mot de passe pour la prochaine connexion.", "failedToCopyText": "Échec de la copie du texte", "filterProxy": "Filtrer les Proxys...", "filterOauth2": "Filtrer OAuth2...", "filterAccount": "Filtrer les Comptes...", "filterAccessToken": "Filtrer les Jetons d'Accès...", "selectAll": "Tout sélectionner", "theme": "Thème", "id": "Id", "url": "Url", "createdAt": "Créé le", "updatedAt": "Mis à jour le", "enabled": "Activé", "useProxy": "Utiliser un Proxy", "authUrl": "URL d'Autorisation", "tokenUrl": "URL du Jeton", "description": "Description", "token": "Jeton", "accounts": "Comptes", "acl": "Acl", "lastAccess": "Dernier Accès", "enterProxyIdToConfirmDeletion": "Entrez l'ID Proxy pour confirmer la suppression.", "updateTheProxyHere": "Mettez à jour le Proxy ici. ", "addNewProxyHere": "Ajoutez un nouveau Proxy ici. ", "pleaseUseAnIpAddressForBetterReliability": "Veuillez utiliser une adresse IP (ex. 127.0.0.1) au lieu d'un nom d'hôte ou de domaine pour une meilleure fiabilité.", "adding": "Ajout en cours...", "yourProxyHasBeenSuccessfully": "Votre Proxy a été {{action}} avec succès.", "proxyUpdateOrAddFailed": "La {{action}} a échoué, veuillez réessayer plus tard", "sidebar": { "profile": "Profil", "apiTokens": "Jetons API", "proxy": "Proxy réseau", "configurations": "Configurations système" }, "profile": { "loadError": "Impossible de charger les informations de l’utilisateur.", "uploadTitle": "Téléverser un avatar", "maxSize": "Jusqu’à {{size}}", "avatarAlt": "Avatar", "removeAvatar": "Supprimer l’avatar", "uploadError": "Erreur(s) lors du téléversement du fichier", "field": { "username": "Nom d’utilisateur", "email": "E-mail", "password": "Mot de passe" }, "placeholder": { "password_keep": "Laissez vide pour conserver le mot de passe actuel" }, "button": { "update_profile": "Mettre à jour le profil", "permissions": "Autorisations", "view_global_permissions": "Voir les autorisations globales" }, "section": { "roles": "Rôles", "accounts": "{{count}} comptes liés" }, "account": { "id": "ID du compte : {{id}}" }, "toast": { "updated": "Profil mis à jour avec succès", "update_failed": "Échec de la mise à jour du profil" }, "validation": { "username": { "required": "Le nom d’utilisateur est requis", "min": "Le nom d’utilisateur doit contenir au moins 5 caractères", "max": "Le nom d’utilisateur doit contenir au maximum 32 caractères" }, "email": { "required": "L’adresse e-mail est requise", "invalid": "Veuillez saisir une adresse e-mail valide" }, "password": { "min": "Le mot de passe doit contenir au moins 8 caractères", "max": "Le mot de passe doit contenir au maximum 256 caractères" } } } }, "apiDocs": { "choosePreferredType": "Choisissez votre type de documentation API préféré", "swaggerUI": "Swagger UI", "reDoc": "ReDoc", "openAPIExplorer": "Explorateur OpenAPI", "scalar": "Scalar", "downloadSpecYAML": "Télécharger la Spécification YAML" }, "dialogs": { "confirmDelete": "Confirmer la Suppression", "confirmDeleteDesc": "Êtes-vous sûr de vouloir supprimer cet élément ? Cette action ne peut pas être annulée.", "deleteSuccess": "Supprimé avec succès", "deleteFailed": "Échec de la suppression", "saveSuccess": "Enregistré avec succès", "saveFailed": "Échec de l'enregistrement", "createSuccess": "Créé avec succès", "createFailed": "Échec de la création", "updateSuccess": "Mis à jour avec succès", "updateFailed": "Échec de la mise à jour", "continue": "Continuer", "deleting": "Suppression en cours...", "accountDeleted": "Compte Supprimé", "accountDeletedDesc": "Votre compte a été supprimé avec succès.", "accountDeleteFailed": "Échec de la suppression du compte", "deleteAccountPermanently": "Supprimer le Compte Définitivement", "youAreDeleting": "Vous êtes en train de supprimer {{email}}. Cela supprimera définitivement :", "accountCredentials": "Les informations d'identification et les paramètres du compte", "localCachedMetadata": "Les métadonnées et l'état de synchronisation mis en cache localement", "imapSyncData": "Les données de synchronisation IMAP", "oauthTokens": "Les jetons OAuth et les informations d'identification API", "typeEmailToConfirm": "Tapez l'adresse e-mail du compte pour confirmer :", "typeToConfirm": "Tapez \"{{email}}\" pour confirmer", "cannotBeUndone": "Cette action ne peut pas être annulée !", "allResourcesErased": "Toutes les ressources associées seront effacées définitivement.", "permanentlyDeleteAccount": "Supprimer Définitivement le Compte" }, "command": { "typeCommandOrSearch": "Tapez une commande ou recherchez...", "noResultsFound": "Aucun résultat trouvé.", "theme": "Thème", "light": "Clair", "dark": "Sombre" }, "validation": { "required": "Ce champ est obligatoire", "invalidEmail": "Adresse e-mail non valide", "invalidUrl": "URL non valide", "passwordMinLength": "Le mot de passe doit contenir au moins {{min}} caractères", "pleaseEnterPassword": "Veuillez entrer votre mot de passe", "passwordRequired": "Le mot de passe est obligatoire lorsque la méthode d'authentification est Mot de passe", "emailRequired": "L'adresse e-mail est obligatoire", "imapHostRequired": "L'hôte IMAP est obligatoire", "imapHostCannotBeEmpty": "L'hôte IMAP ne peut pas être vide", "imapPortMustBePositive": "Le port IMAP doit être un entier positif", "imapPortMustBeLessThan65536": "Le port IMAP doit être inférieur à 65536", "folderLimitMustBeNumber": "La limite de dossiers doit être un nombre", "folderLimitMustBeAtLeast100": "La limite de dossiers doit être d'au moins 100", "incrementalSyncMustBeNumber": "L'intervalle de synchronisation incrémentielle doit être un nombre", "incrementalSyncMustBeAtLeast10": "L'intervalle de synchronisation incrémentielle doit être d'au moins 10 minutes", "pleaseEnterUsernameOrEmail": "Veuillez entrer votre nom d'utilisateur ou votre courriel", "singleRequestBatchSizeMustBeNumber": "La taille du lot doit être un nombre", "singleRequestBatchSizeTooSmall": "La taille du lot doit être au moins 10", "singleRequestBatchSizeTooLarge": "La taille du lot doit être au plus 200" }, "table": { "noResults": "Aucun résultat trouvé", "loading": "Chargement...", "page": "Page", "of": "de", "rowsPerPage": "Lignes par page", "showing": "Affichage", "to": "à", "results": "résultats", "asc": "Asc", "desc": "Desc", "hide": "Masquer", "edit": "Modifier", "delete": "Supprimer", "pagination": { "selected": "{{selected}} / {{total}} ligne(s) sélectionnée(s).", "fixed_page_size": "{{size}} lignes par page.", "rows_per_page": "Lignes per page", "page_info": "Page {{page}} sur {{total}}", "first": "Première page", "previous": "Page précédente", "next": "Page suivante", "last": "Dernière page" } }, "proxyDelete": { "title": "Supprimer le Proxy", "successTitle": "Suppression Réussie", "successDesc": "Le Proxy a été supprimé avec succès.", "close": "Fermer", "failedTitle": "Échec de la suppression du Proxy", "failedDesc": "La suppression a échoué, veuillez réessayer plus tard", "tryAgain": "Réessayer", "confirmText": "Êtes-vous sûr de vouloir supprimer", "permanent": "Cette action supprimera définitivement le Proxy du système. Cela ne peut pas être annulé.", "proxyIdLabel": "ID Proxy :", "proxyIdPlaceholder": "Entrez l'ID Proxy pour confirmer la suppression.", "warningTitle": "Attention !", "warningDesc": "Soyez prudent, cette opération ne peut pas être annulée.", "deleteBtn": "Supprimer" }, "systemConfig": { "pageTitle": "Configurations au niveau système", "pageDescription": "Ces paramètres sont initialisés via des drapeaux CLI ou des variables d'environnement. Ils sont en lecture seule pour garantir la cohérence de l'environnement.", "status": { "enabled": "Activé", "disabled": "Désactivé", "configured": "Configuré", "missing": "Manquant", "auto": "Auto", "notSet": "Non défini" }, "sections": { "network": { "title": "Réseau", "desc": "Accès HTTP et public" }, "cors": { "title": "CORS", "desc": "Règles d'accès cross-origin" }, "logging": { "title": "Journalisation", "desc": "Comportement de sortie des logs" }, "storage": { "title": "Stockage et Cache", "desc": "Chemins de base de données et limites" }, "security": { "title": "Sécurité", "desc": "Authentification et chiffrement" }, "performance": { "title": "Performance", "desc": "Concurrence et compression" }, "smtp": { "title": "Serveur SMTP", "desc": "Paramètres de réception du courrier entrant pour l'archivage en temps réel" } } }, "apiTokens": { "page": { "loadError": "Échec du chargement des jetons API.", "emptyTitle": "Aucun jeton API", "emptyDescription": "Vous n'avez pas encore créé de jetons API. Cliquez ci-dessous pour en créer un.", "addBtn": "Ajouter un jeton" }, "list": { "unnamedToken": "Jeton sans nom", "statusActive": "Actif", "statusExpired": "Expiré", "neverExpires": "N'expire jamais", "expiresOnShort": "Expire le {{date}}", "tokenLabel": "Jeton", "createdLabel": "Créé le", "lastUsedLabel": "Dernière utilisation", "expiresOnLabel": "Expire le", "neverUsed": "Jamais", "neverLabel": "Jamais", "deleteBtn": "Supprimer le jeton" }, "dialog": { "createTitle": "Créer un jeton d'accès", "editTitle": "Modifier le jeton d'accès", "description": "Cliquez sur enregistrer lorsque vous avez terminé.", "save": "Enregistrer", "saveChanges": "Enregistrer les modifications" }, "deleteDialog": { "title": "Supprimer le jeton d'accès ?", "description": "Cette action est irréversible. Toute application utilisant ce jeton perdra immédiatement son accès.", "cancel": "Annuler", "confirm": "Supprimer", "deleting": "Suppression..." }, "form": { "nameLabel": "Nom", "namePlaceholder": "Donnez un nom court à ce jeton", "nameDescription": "Optionnel · Max 32 caractères", "expirationLabel": "Expiration", "expirationPlaceholder": "Sélectionner l'expiration", "expirationDescription": "Les jetons expireront automatiquement après le délai sélectionné.", "never": "Jamais", "1day": "1 jour", "7days": "7 jours", "30days": "30 jours", "errorMax": "Max 32 caractères", "errorNumber": "Doit être un nombre", "errorInt": "Doit être un entier", "errorPositive": "Doit être supérieur à 0" }, "notifications": { "createSuccess": "Jeton d'accès créé", "createSuccessDesc": "Le jeton d'accès a été créé avec succès.", "updateSuccess": "Jeton d'accès mis à jour", "updateSuccessDesc": "Le jeton d'accès a été mis à jour avec succès.", "createFailed": "Échec de la création", "updateFailed": "Échec de la mise à jour", "deleteSuccess": "Jeton d'accès supprimé avec succès", "deleteFailed": "Échec de la suppression du jeton", "copied": "Copié dans le presse-papiers", "genericError": "L'opération a échoué. Veuillez réessayer.", "close": "Fermer", "tryAgain": "Réessayer" } }, "permission": { "scope": { "global": "Global", "account": "Compte #{{id}}" }, "dialog": { "global_title": "Autorisations globales", "account_title": "Autorisations du compte", "global_description": "Autorisations système accordées à cet utilisateur.", "account_description": "Autorisations limitées au compte sélectionné." }, "category": { "system_identity": "Système et identité", "global_data": "Données globales (Admin)", "account": "Autorisations du compte" }, "system": { "access": "Accès système de base", "root": "Contrôle système complet" }, "user": { "manage": "Gérer tous les utilisateurs", "view": "Lister les noms d'utilisateur" }, "token": { "manage": "Gérer les jetons d'accès" }, "account": { "create": "Créer des comptes e-mail", "manage": "Gérer les comptes attribués", "manage_all": "Gérer toutes les configurations de compte", "read_details": "Lire les détails du compte" }, "data": { "read": "Lire les données e-mail attribuées", "read_all": "Lire toutes les données e-mail", "manage": "Gérer les métadonnées e-mail attribuées", "manage_all": "Gérer toutes les métadonnées e-mail", "raw_download": "Télécharger les e-mails bruts attribués", "raw_download_all": "Télécharger tous les e-mails bruts", "delete": "Supprimer les e-mails attribués", "delete_all": "Supprimer les e-mails de tous les comptes", "export_batch": "Exporter les données attribuées par lot", "export_batch_all": "Exporter toutes les données par lot", "import_batch": "Importer des données e-mail par lot", "smtp_ingest": "Ingérer des e-mails via le protocole SMTP" } }, "users": { "columns": { "id": "ID", "avatar": "Avatar", "username": "Nom d'utilisateur", "email": "Adresse e-mail", "roles": "Rôles et permissions", "created_at": "Créé le", "updated_at": "Mis à jour le", "actions": "Actions" }, "buttons": { "add": "Ajouter un utilisateur", "add_new": "Créer un utilisateur" }, "empty": { "title": "Aucun utilisateur trouvé", "description": "Cliquez sur le bouton ci-dessous pour ajouter votre premier utilisateur." }, "nav": { "users": "Utilisateurs", "roles": "Rôles", "api_tokens": "Jetons API" }, "api_tokens": { "empty": { "title": "Aucun jeton API trouvé", "description": "Aucun jeton API n'a encore été généré dans le système." }, "button": { "generate": "Générer un nouveau jeton" }, "toolbar": { "search_placeholder": "Rechercher par nom, propriétaire ou jeton..." }, "table": { "name": "Nom", "type": "Type", "last_used": "Dernière utilisation", "expires_at": "Expire le", "owner": "Propriétaire", "created": "Créé", "api_key": "Clé API", "web_ui": "Interface Web", "never": "Jamais", "permanent": "Permanent", "expired": "Expiré", "unnamed": "Jeton sans nom" }, "unnamed": "Jeton sans nom", "delete": { "title": "Supprimer le jeton API", "desc": "Vous êtes sur le point de supprimer définitivement ce jeton API", "prefix": "Préfixe du jeton", "irreversible": "Cette action est irréversible. Toutes les applications utilisant ce jeton perdront immédiatement l'accès.", "confirm_label": "Pour confirmer, saisissez {{word}} ci-dessous :", "confirm_placeholder": "Saisissez \"{{word}}\" pour confirmer", "warning_title": "Avertissement", "warning_desc": "Tous les scripts ou services utilisant ce jeton échoueront. Assurez-vous d'avoir mis à jour vos systèmes.", "confirm_button": "Supprimer le jeton", "deleting": "Suppression..." }, "toast": { "deleted_title": "Jeton API supprimé", "deleted_desc": "Le jeton \"{{name}}\" a été supprimé avec succès.", "delete_failed_title": "Échec de la suppression", "delete_failed": "Impossible de supprimer le jeton, veuillez réessayer." } }, "tokens": { "schema": { "name_max": "Max 32 caractères", "expire_number": "Doit être un nombre", "expire_int": "Doit être un entier", "expire_positive": "Doit être supérieur à 0" }, "toast": { "update_success_title": "Jeton mis à jour", "update_success_desc": "Le jeton d'accès a été mis à jour avec succès.", "create_success_title": "Jeton créé", "create_success_desc": "Le jeton d'accès a été créé avec succès.", "update_failed_title": "Échec de la mise à jour", "create_failed_title": "Échec de la création" }, "error": { "fallback": "L'opération a échoué, veuillez réessayer plus tard." }, "dialog": { "edit_title": "Modifier le jeton", "create_title": "Créer un jeton d'accès", "description": "Cliquez sur enregistrer lorsque vous avez terminé." }, "fields": { "name_label": "Nom", "name_placeholder": "Donnez un nom court à ce jeton", "name_hint": "Optionnel · Max 32 caractères", "expire_label": "Expiration", "expire_placeholder": "Choisir l'expiration", "expire_hint": "Le jeton expirera automatiquement après le délai choisi." }, "expire_options": { "never": "N'expire jamais", "1_day": "1 jour", "7_days": "7 jours", "30_days": "30 jours" } }, "tokens_action": { "dialog": { "title": "Jetons API", "description": "Gérer les jetons API pour cet utilisateur." }, "empty": { "title": "Aucun jeton API", "description": "Cet utilisateur n'a aucun jeton API pour le moment." }, "buttons": { "add": "Ajouter un jeton" }, "list": { "unnamed_token": "Jeton sans nom", "status_expired": "Expiré", "status_active": "Actif", "expires_on_brief": "Expire le {{date}}", "never_expires": "N'expire jamais", "label_token": "Jeton", "label_created": "Créé le", "label_last_used": "Dernière utilisation", "label_expires_at": "Expire le", "never": "Jamais", "button_delete": "Supprimer le jeton" }, "delete_dialog": { "title": "Supprimer le jeton d'accès ?", "description": "Cette action est irréversible." } }, "actions": { "schema": { "account_required": "Veuillez sélectionner un compte", "role_required": "Veuillez sélectionner un rôle", "username_required": "Le nom d'utilisateur est requis", "username_min": "Le nom d'utilisateur doit contenir au moins 3 caractères", "username_max": "Le nom d'utilisateur ne peut pas dépasser 32 caractères", "email_required": "L'adresse e-mail est requise", "email_invalid": "Veuillez saisir une adresse e-mail valide", "global_role_required": "Attribuez au moins un rôle global", "description_max": "La description ne peut pas dépasser 256 caractères", "ip_invalid": "Adresse IP invalide détectée", "password_required": "Le mot de passe est requis", "password_min": "Le mot de passe doit contenir au moins 8 caractères", "password_max": "Le mot de passe ne peut pas dépasser 256 caractères" }, "toast": { "updated": "Utilisateur mis à jour", "created": "Utilisateur créé" }, "dialog": { "edit_title": "Modifier l'utilisateur : {{name}}", "create_title": "Créer un utilisateur", "subtitle": "Configurez l'identité, les accès et les politiques de sécurité." }, "tabs": { "general": "Général", "permissions": "Permissions compte", "security": "Sécurité & ACL" }, "sections": { "basic": "Identité de base", "global": "Permissions globales", "mail_access": "Contrôle d'accès mail", "mail_access_subtitle": "Définissez les comptes mail gérables par cet utilisateur.", "policy": "Politiques" }, "fields": { "username": "Nom d'utilisateur", "username_hint": "Identifiant unique pour la connexion.", "email": "Adresse e-mail", "email_hint": "Contact principal et notifications.", "password": "Mot de passe", "password_placeholder_create": "Au moins 8 caractères", "password_placeholder_edit": "Laisser vide pour conserver l'actuel", "password_hint_create": "Mot de passe sécurisé pour la configuration initiale.", "password_hint_edit": "Saisissez un nouveau mot de passe uniquement si vous souhaitez le changer.", "global_roles_hint": "Attribuez des permissions système.", "description": "Description (optionnel)", "description_placeholder": "Notes sur cet utilisateur...", "description_hint": "Notes internes (max 256 caractères).", "select_account": "Choisir un compte", "assign_role": "Attribuer un rôle", "ip_whitelist": "Liste blanche IP", "ip_whitelist_hint": "Limiter la connexion à ces IP (une par ligne).", "rate_quota": "Quota de débit", "burst_interval": "Intervalle de rafale (sec)" }, "buttons": { "add_account": "Ajouter un compte", "update": "Mettre à jour", "create": "Créer" }, "states": { "full_access": "Mode accès complet", "full_access_desc": "Les administrateurs ont un accès inhérent à tous les comptes.", "no_accounts": "Aucun compte spécifique attribué.", "security_disabled": "Les politiques de sécurité sont désactivées." }, "api_tokens": "Jetons API", "placeholder": { "filter": "Rechercher des utilisateurs..." }, "delete": { "title": "Supprimer l'utilisateur", "confirm_msg": "Vous supprimez définitivement l'utilisateur {{name}} (ID : {{id}}).", "irreversible": "Cette action est irréversible.", "input_label": "Saisissez l'ID de l'utilisateur pour confirmer :", "placeholder": "Saisissez \"{{id}}\"", "alert_title": "Attention : action définitive.", "alert_desc": "L'utilisateur et toutes ses données seront supprimés.", "button_confirm": "Supprimer l'utilisateur", "button_deleting": "Suppression...", "toast": { "success_title": "Utilisateur supprimé", "success_desc": "L'utilisateur \"{{name}}\" a été supprimé.", "failed_title": "Échec de la suppression", "failed_fallback": "Impossible de supprimer l'utilisateur." } } } }, "roles": { "title": { "create": "Créer un rôle", "edit": "Modifier le rôle : {{name}}" }, "description_hint": "Définissez la portée des accès et les permissions.", "form": { "name_label": "Nom du rôle", "type_label": "Type de rôle", "desc_label": "Description", "matrix_label": "Matrice des permissions ({{type}})", "builtin_badge": "Rôle intégré", "builtin_desc": "Ce rôle est prédéfini et en lecture seule." }, "types": { "Global": "Global", "Account": "Compte" }, "categories": { "identity": "Identité & Gestion", "global_data": "Accès données globales", "account_resource": "Accès ressources compte" }, "actions": { "cancel": "Annuler", "submit_create": "Créer le rôle", "submit_update": "Mettre à jour le rôle", "success_create": "Rôle créé avec succès", "success_update": "Rôle mis à jour avec succès", "failed": "L'opération a échoué", "close": "Fermer", "retry": "Réessayer", "add": "Ajouter un rôle" }, "validation": { "name_required": "Le nom du rôle est requis", "perm_required": "Sélectionnez au moins une permission" }, "columns": { "id": "ID", "name": "Nom", "role_type": "Type", "permissions": "Permissions", "created_at": "Créé le", "updated_at": "Mis à jour le" }, "placeholder": { "filter": "Rechercher des rôles..." }, "delete": { "dialog_title": "Supprimer le rôle", "warning_text": "Vous supprimez définitivement le rôle {{name}} (ID : {{id}}).", "irreversible": "Cette action est irréversible.", "confirm_label": "Saisissez l'ID du rôle pour confirmer :", "placeholder": "Saisissez \"{{id}}\"", "alert_title": "Attention : action définitive.", "alert_desc": "La suppression de ce rôle le retirera de tous les utilisateurs assignés.", "confirm_btn": "Supprimer le rôle", "deleting": "Suppression...", "success_title": "Rôle supprimé", "success_desc": "Le rôle \"{{name}}\" a été supprimé.", "error_title": "Échec de la suppression", "error_fallback": "Impossible de supprimer le rôle." }, "details": { "title": "Permissions : {{name}}", "unknown": "Rôle inconnu", "role_badge": "Rôle {{type}}", "desc_global": "Gestion globale et accès système.", "desc_account": "Accès et opérations sur les comptes individuels.", "close_btn": "Fermer", "view_permissions": "Détails des permissions" }, "empty": { "title": "Aucun rôle trouvé", "desc": "Vous n'avez pas encore créé de rôles personnalisés." } }, "profile": { "avatar_alt": "Avatar", "menu": { "profile": "Profil", "settings": "Paramètres", "sign_out": "Se déconnecter" } }, "sign_out": { "title": "Déconnexion", "desc": "Êtes-vous sûr de vouloir vous déconnecter ? Vous devrez vous reconnecter pour accéder à votre compte.", "confirm": "Déconnexion" }, "restore_message": { "title": "Restaurer un message", "bulkTitle": "Restaurer plusieurs messages", "bulkWarning": "Remarque : les messages seront restaurés dans leurs dossiers d'origine.", "accountsInvolved": "Comptes concernés", "summary": "Détails de la restauration", "messages": "messages", "desc": "Cette action va re-télécharger les messages sélectionnés depuis Bichon et les restaurer dans leurs boîtes aux lettres correspondantes sur le serveur IMAP.", "confirm": "Exécuter la restauration", "restore_to_imap": "Restaurer le message", "success": "Restauration réussie", "successDesc": "Les messages sélectionnés ont été restaurés avec succès sur le serveur IMAP.", "failed": "Échec de la restauration", "failedTitle": "Erreur de restauration" }, "time": { "label": "Temps", "since": "Depuis", "before": "Avant", "recent_range": "Période récente (depuis...)", "historical": "Période historique (avant...)", "absolute_range": "Plage de dates absolue", "last_day": "Dernier jour", "last_days": "Derniers {{count}} jours", "last_months": "Derniers {{count}} mois", "over_years_ago": "Il y a {{count}} {{unit}}", "year": "an", "years": "ans", "recent_prefix": "Récent :", "days_ago_to_now": "jours jusqu’à aujourd’hui", "apply": "Appliquer", "start_date": "Date de début", "end_date": "Date de fin", "clear_filters": "Effacer les filtres de temps", "format": "yyyy-MM-dd" }, "tag": { "label": "Étiquettes", "search_placeholder": "Rechercher des étiquettes...", "clear_all": "Effacer toutes les étiquettes", "no_tags_found": "Aucune étiquette trouvée" }, "search_accounts": { "label": "Comptes e-mail", "search_placeholder": "Rechercher des comptes e-mail...", "clear_accounts": "Effacer les comptes sélectionnés", "no_accounts_found": "Aucun compte trouvé" }, "search_mailbox": { "label": "Boîtes mail", "search_placeholder": "Rechercher des dossiers", "clear_mailboxes": "Effacer les dossiers sélectionnés", "select_account_first": "Veuillez d’abord sélectionner un compte e-mail", "no_mailbox_found": "Aucun dossier trouvé" }, "search_contacts": { "label": "Contacts", "label_with_count": "Contacts ({{count}})", "any": "Tous", "search_placeholder": "Rechercher {{field}}...", "reset_all": "Réinitialiser tous les contacts", "no_contact_found": "Aucun contact trouvé", "loading": "Chargement...", "showing_limit": "Affichage des 100 premiers résultats uniquement • Total {{total}}" }, "search_more": { "trigger_label": "Avancé", "title": "Filtres avancés", "reset": "Réinitialiser", "has_attachment": "Contient une pièce jointe", "attachment_name_label": "Nom de la pièce jointe", "attachment_name_placeholder": "Ex. : invoice.pdf", "message_size_label": "Taille du message", "message_id_label": "Message-ID d’origine", "message_id_description": "Recherche via l’en-tête Message-ID de l’e-mail", "apply": "Appliquer les filtres", "size_presets": { "any": "Toutes tailles", "tiny": "Très petite (< 15 Ko)", "small": "Petite (< 2 Mo)", "medium": "Moyenne (2 – 10 Mo)", "large": "Grande (10 – 20 Mo)", "huge": "Très grande (> 20 Mo)" }, "any": "Tous", "search_placeholder": "Rechercher {{field}}...", "extension": "Extension de fichier", "category": "Catégorie de pièce jointe", "content_types": "Type spécifique" }, "search_view": { "button_label": "Affichage", "menu_title": "Paramètres des colonnes" }, "search_reset": { "label": "Réinitialiser", "tooltip": "Effacer tous les filtres" }, "search_input": { "placeholder": "Rechercher des e-mails... (Regex supporté)", "button": "Rechercher", "recent_title": "Recherches récentes", "clear_history": "Effacer l’historique", "no_history": "Aucun historique de recherche", "all": "Tous les champs", "all_fields_desc": "Recherche dans l'objet, le corps, l'expéditeur et les destinataires", "subject": "Objet", "body": "Corps du message" } }