From a4884f90a9bf9d6d9d1f54915bc747deee9034f9 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Sat, 6 Dec 2025 15:43:12 -0500 Subject: [PATCH] New translations en-us.json (French) --- messages/fr-FR.json | 386 +++++++++++++++++++++++++++++--------------- 1 file changed, 259 insertions(+), 127 deletions(-) diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 276fa9bd..e5bd2088 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -1,12 +1,12 @@ { - "setupCreate": "Créez votre organisation, vos nœuds et vos ressources", + "setupCreate": "Créer l'organisation, le site et les ressources", "setupNewOrg": "Nouvelle organisation", "setupCreateOrg": "Créer une organisation", "setupCreateResources": "Créer des ressources", "setupOrgName": "Nom de l'organisation", - "orgDisplayName": "Ceci est le nom affiché de votre organisation.", + "orgDisplayName": "Ceci est le nom d'affichage de l'organisation.", "orgId": "ID de l'organisation", - "setupIdentifierMessage": "Ceci est l'identifiant unique de votre organisation. Il est différent du nom.", + "setupIdentifierMessage": "C'est l'identifiant unique de l'organisation.", "setupErrorIdentifier": "Cet ID est déjà utilisé. Veuillez en choisir un autre.", "componentsErrorNoMemberCreate": "Vous n'êtes actuellement membre d'aucune organisation. Créez une organisation pour commencer.", "componentsErrorNoMember": "Vous n'êtes actuellement membre d'aucune organisation.", @@ -50,10 +50,10 @@ "siteMessageRemove": "Une fois supprimé, le nœud ne sera plus accessible. Toutes les cibles associées au nœud seront également supprimées.", "siteQuestionRemove": "Êtes-vous sûr de vouloir supprimer ce nœud de l'organisation ?", "siteManageSites": "Gérer les nœuds", - "siteDescription": "Autoriser la connexion à votre réseau via des tunnels sécurisés", + "siteDescription": "Créer et gérer des sites pour activer la connectivité aux réseaux privés", "siteCreate": "Créer un nœud", "siteCreateDescription2": "Suivez les étapes ci-dessous pour créer et connecter un nouveau nœud", - "siteCreateDescription": "Créez un nouveau nœud pour commencer à connecter vos ressources", + "siteCreateDescription": "Créer un nouveau site pour commencer à connecter des ressources", "close": "Fermer", "siteErrorCreate": "Erreur lors de la création du nœud", "siteErrorCreateKeyPair": "Clés ou nœud par défaut introuvable", @@ -74,7 +74,7 @@ "siteInstallNewt": "Installer Newt", "siteInstallNewtDescription": "Faites fonctionner Newt sur votre système", "WgConfiguration": "Configuration WireGuard", - "WgConfigurationDescription": "Utilisez la configuration suivante pour vous connecter à votre réseau", + "WgConfigurationDescription": "Utilisez la configuration suivante pour vous connecter au réseau", "operatingSystem": "Système d'exploitation", "commands": "Commandes", "recommended": "Recommandé", @@ -87,32 +87,32 @@ "siteUpdated": "Nœud mis à jour", "siteUpdatedDescription": "Le nœud a été mis à jour.", "siteGeneralDescription": "Configurer les paramètres par défaut de ce nœud", - "siteSettingDescription": "Configurer les paramètres de votre nœud", + "siteSettingDescription": "Configurer les paramètres du site", "siteSetting": "Paramètres de {siteName}", - "siteNewtTunnel": "Tunnel Newt (Recommandé)", - "siteNewtTunnelDescription": "La façon la plus simple de créer un point d'entrée dans votre réseau. Pas de configuration supplémentaire.", + "siteNewtTunnel": "Site Newt (Recommandé)", + "siteNewtTunnelDescription": "La façon la plus simple de créer un point d'entrée dans n'importe quel réseau. Pas de configuration supplémentaire.", "siteWg": "WireGuard basique", "siteWgDescription": "Utilisez n'importe quel client WireGuard pour établir un tunnel. Configuration NAT manuelle requise.", "siteWgDescriptionSaas": "Utilisez n'importe quel client WireGuard pour établir un tunnel. Configuration NAT manuelle requise.", "siteLocalDescription": "Ressources locales seulement. Pas de tunneling.", "siteLocalDescriptionSaas": "Ressources locales uniquement. Pas de tunneling. Disponible uniquement sur les nœuds distants.", "siteSeeAll": "Voir tous les nœuds", - "siteTunnelDescription": "Déterminez comment vous voulez vous connecter à votre nœud", - "siteNewtCredentials": "Identifiants Newt", - "siteNewtCredentialsDescription": "C'est comme ça que Newt s'authentifiera avec le serveur", - "siteCredentialsSave": "Enregistrez vos identifiants", + "siteTunnelDescription": "Déterminer comment vous voulez vous connecter au site", + "siteNewtCredentials": "Identifiants", + "siteNewtCredentialsDescription": "Voici comment le site s'authentifiera avec le serveur", + "siteCredentialsSave": "Enregistrer les informations d'identification", "siteCredentialsSaveDescription": "Vous ne pourrez voir cela qu'une seule fois. Assurez-vous de l'enregistrer dans un endroit sécurisé.", "siteInfo": "Informations du nœud", "status": "Statut", "shareTitle": "Gérer les liens partageables", - "shareDescription": "Créez des liens partageables pour accorder un accès temporaire ou permanent à vos ressources", + "shareDescription": "Créez des liens partageables pour accorder un accès temporaire ou permanent aux ressources de proxy", "shareSearch": "Rechercher des liens partageables...", "shareCreate": "Créer un lien partageable", "shareErrorDelete": "Impossible de supprimer le lien", "shareErrorDeleteMessage": "Une erreur s'est produite lors de la suppression du lien", "shareDeleted": "Lien supprimé", "shareDeletedDescription": "Le lien a été supprimé", - "shareTokenDescription": "Votre jeton d'accès peut être fourni de deux façons : en tant que paramètre de requête ou dans les en-têtes de la requête. Il doit être transmis par le client à chaque demande d'accès authentifié.", + "shareTokenDescription": "Le jeton d'accès peut être passé de deux façons : en tant que paramètre de requête ou dans les en-têtes de la requête. Elles doivent être transmises par le client à chaque demande d'accès authentifié.", "accessToken": "Jeton d'accès", "usageExamples": "Exemples d'utilisation", "tokenId": "ID du jeton", @@ -121,7 +121,7 @@ "importantNote": "Note importante", "shareImportantDescription": "Pour des raisons de sécurité, l'utilisation des en-têtes est recommandée par rapport aux paramètres de la requête, dans la mesure du possible, car les paramètres de requête peuvent être enregistrés dans les journaux du serveur ou dans l'historique du navigateur.", "token": "Jeton", - "shareTokenSecurety": "Gardez votre jeton d'accès sécurisé. Ne le partagez pas dans des zones accessibles au public ou dans du code côté client.", + "shareTokenSecurety": "Gardez le jeton d'accès sécurisé. Ne le partagez pas dans des zones accessibles au public ou dans du code côté client.", "shareErrorFetchResource": "Impossible de récupérer les ressources", "shareErrorFetchResourceDescription": "Une erreur est survenue lors de la récupération des ressources", "shareErrorCreate": "Impossible de créer le lien partageable", @@ -144,8 +144,10 @@ "expires": "Expire", "never": "Jamais", "shareErrorSelectResource": "Veuillez sélectionner une ressource", - "resourceTitle": "Gérer les ressources", - "resourceDescription": "Créez des proxys sécurisés pour vos applications privées", + "proxyResourceTitle": "Gérer les ressources publiques", + "proxyResourceDescription": "Créer et gérer des ressources accessibles au public via un navigateur web", + "clientResourceTitle": "Gérer les ressources privées", + "clientResourceDescription": "Créer et gérer des ressources qui ne sont accessibles que via un client connecté", "resourcesSearch": "Chercher des ressources...", "resourceAdd": "Ajouter une ressource", "resourceErrorDelte": "Erreur lors de la de suppression de la ressource", @@ -155,9 +157,9 @@ "resourceMessageRemove": "Une fois supprimée, la ressource ne sera plus accessible. Toutes les cibles associées à la ressource seront également supprimées.", "resourceQuestionRemove": "Êtes-vous sûr de vouloir retirer la ressource de l'organisation ?", "resourceHTTP": "Ressource HTTPS", - "resourceHTTPDescription": "Requêtes de proxy vers votre application via HTTPS en utilisant un sous-domaine ou un domaine racine.", + "resourceHTTPDescription": "Requêtes de proxy à l'application via HTTPS en utilisant un sous-domaine ou un domaine de base.", "resourceRaw": "Ressource TCP/UDP brute", - "resourceRawDescription": "Demandes de proxy vers votre application via TCP/UDP en utilisant un port.", + "resourceRawDescription": "Demandes de proxy à l'application via TCP/UDP en utilisant un numéro de port. Cela ne fonctionne que lorsque les sites sont connectés à des nœuds.", "resourceCreate": "Créer une ressource", "resourceCreateDescription": "Suivez les étapes ci-dessous pour créer une nouvelle ressource", "resourceSeeAll": "Voir toutes les ressources", @@ -171,22 +173,22 @@ "noCountryFound": "Aucun pays trouvé.", "siteSelectionDescription": "Ce site fournira la connectivité à la cible.", "resourceType": "Type de ressource", - "resourceTypeDescription": "Détermine comment vous voulez accéder à votre ressource", + "resourceTypeDescription": "Déterminer comment accéder à la ressource", "resourceHTTPSSettings": "Paramètres HTTPS", - "resourceHTTPSSettingsDescription": "Configure comment votre ressource sera accédée via HTTPS", + "resourceHTTPSSettingsDescription": "Configurer comment la ressource sera accédée via HTTPS", "domainType": "Type de domaine", "subdomain": "Sous-domaine", "baseDomain": "Domaine racine", - "subdomnainDescription": "Le sous-domaine depuis lequel cette ressource sera accessible.", + "subdomnainDescription": "Le sous-domaine où la ressource sera accessible.", "resourceRawSettings": "Paramètres TCP/UDP", - "resourceRawSettingsDescription": "Configurer comment votre ressource sera accédée via TCP/UDP. Vous mappez la ressource à un port sur le serveur Pangolin, de sorte que vous puissiez accéder à la ressource depuis ip-publique-du-serveur:port-mappé.", + "resourceRawSettingsDescription": "Configurer comment la ressource sera accédée via TCP/UDP. Vous mappez la ressource à un port sur le serveur Pangolin, de sorte que vous puissiez accéder à la ressource depuis server-public-ip:mapped-port.", "protocol": "Protocole", "protocolSelect": "Choisir un protocole", "resourcePortNumber": "Numéro de port", "resourcePortNumberDescription": "Le numéro de port externe pour les requêtes de proxy.", "cancel": "Abandonner", "resourceConfig": "Snippets de configuration", - "resourceConfigDescription": "Copiez et collez ces modules de configuration pour configurer votre ressource TCP/UDP", + "resourceConfigDescription": "Copiez et collez ces extraits de configuration pour configurer la ressource TCP/UDP", "resourceAddEntrypoints": "Traefik: Ajouter des points d'entrée", "resourceExposePorts": "Gerbil: Exposer des ports dans Docker Compose", "resourceLearnRaw": "Apprenez à configurer les ressources TCP/UDP", @@ -202,14 +204,14 @@ "proxy": "Proxy", "internal": "Interne", "rules": "Règles", - "resourceSettingDescription": "Configurer les paramètres de votre ressource", + "resourceSettingDescription": "Configurer les paramètres de la ressource", "resourceSetting": "Réglages de {resourceName}", - "alwaysAllow": "Toujours autoriser", - "alwaysDeny": "Toujours refuser", + "alwaysAllow": "Outrepasser l'authentification", + "alwaysDeny": "Bloquer l'accès", "passToAuth": "Passer à l'authentification", - "orgSettingsDescription": "Configurer les paramètres de votre organisation", + "orgSettingsDescription": "Configurer les paramètres de l'organisation", "orgGeneralSettings": "Paramètres de l'organisation", - "orgGeneralSettingsDescription": "Gérer les détails et la configuration de votre organisation", + "orgGeneralSettingsDescription": "Gérer les détails et la configuration de l'organisation", "saveGeneralSettings": "Enregistrer les paramètres généraux", "saveSettings": "Enregistrer les paramètres", "orgDangerZone": "Zone dangereuse", @@ -232,7 +234,7 @@ "orgMissing": "ID d'organisation manquant", "orgMissingMessage": "Impossible de régénérer l'invitation sans un ID d'organisation.", "accessUsersManage": "Gérer les utilisateurs", - "accessUsersDescription": "Invitez des utilisateurs et ajoutez-les aux rôles pour gérer l'accès à votre organisation", + "accessUsersDescription": "Inviter et gérer les utilisateurs ayant accès à cette organisation", "accessUsersSearch": "Chercher des utilisateurs...", "accessUserCreate": "Créer un utilisateur", "accessUserRemove": "Supprimer un utilisateur", @@ -241,13 +243,13 @@ "role": "Rôle", "nameRequired": "Le nom est requis", "accessRolesManage": "Gérer les rôles", - "accessRolesDescription": "Configurer les rôles pour gérer l'accès à votre organisation", + "accessRolesDescription": "Créer et gérer des rôles pour les utilisateurs de l'organisation", "accessRolesSearch": "Chercher des rôles...", "accessRolesAdd": "Ajouter un rôle", "accessRoleDelete": "Supprimer le rôle", "description": "Libellé", "inviteTitle": "Invitations actives", - "inviteDescription": "Gérez les invitations des autres utilisateurs", + "inviteDescription": "Gérer les invitations des autres utilisateurs à rejoindre l'organisation", "inviteSearch": "Rechercher des invitations...", "minutes": "Minutes", "hours": "Heures", @@ -261,13 +263,13 @@ "apiKeysErrorCreate": "Erreur lors de la création de la clé API", "apiKeysErrorSetPermission": "Erreur lors de la définition des permissions", "apiKeysCreate": "Générer une clé d'API", - "apiKeysCreateDescription": "Générer une nouvelle clé d'API pour votre organisation", + "apiKeysCreateDescription": "Générer une nouvelle clé API pour l'organisation", "apiKeysGeneralSettings": "Permissions", "apiKeysGeneralSettingsDescription": "Déterminez ce que cette clé d\"API peut faire", - "apiKeysList": "Votre clé d\"API", - "apiKeysSave": "Enregistrer votre clé API", + "apiKeysList": "Nouvelle clé API", + "apiKeysSave": "Enregistrer la clé API", "apiKeysSaveDescription": "Vous ne pourrez la voir qu'une seule fois. Assurez-vous de la copier dans un endroit sécurisé.", - "apiKeysInfo": "Votre clé d'API est :", + "apiKeysInfo": "La clé API est :", "apiKeysConfirmCopy": "J'ai copié la clé d\"API", "generate": "Générer", "done": "Terminé", @@ -424,7 +426,7 @@ "userCreated": "Utilisateur créé", "userCreatedDescription": "L'utilisateur a été créé avec succès.", "userTypeInternal": "Utilisateur interne", - "userTypeInternalDescription": "Inviter un utilisateur à rejoindre votre organisation directement.", + "userTypeInternalDescription": "Invitez un utilisateur à rejoindre l'organisation directement.", "userTypeExternal": "Utilisateur externe", "userTypeExternalDescription": "Créer un utilisateur avec un fournisseur d'identité externe.", "accessUserCreateDescription": "Suivez les étapes ci-dessous pour créer un nouvel utilisateur", @@ -436,6 +438,16 @@ "inviteEmailSent": "Envoyer un e-mail d'invitation à l'utilisateur", "inviteValid": "Valide pour", "selectDuration": "Sélectionner la durée", + "selectResource": "Sélectionner une ressource", + "filterByResource": "Filtrer par ressource", + "resetFilters": "Réinitialiser les filtres", + "totalBlocked": "Demandes bloquées par le Pangolin", + "totalRequests": "Total des demandes", + "requestsByCountry": "Requêtes par pays", + "requestsByDay": "Requêtes par jour", + "blocked": "Bloqué", + "allowed": "Autorisé", + "topCountries": "Meilleurs pays", "accessRoleSelect": "Sélectionner un rôle", "inviteEmailSentDescription": "Un e-mail a été envoyé à l'utilisateur avec le lien d'accès ci-dessous. Ils doivent accéder au lien pour accepter l'invitation.", "inviteSentDescription": "L'utilisateur a été invité. Ils doivent accéder au lien ci-dessous pour accepter l'invitation.", @@ -458,13 +470,13 @@ "accessControlsSubmit": "Enregistrer les contrôles d'accès", "roles": "Rôles", "accessUsersRoles": "Gérer les utilisateurs et les rôles", - "accessUsersRolesDescription": "Invitez des utilisateurs et ajoutez-les aux rôles pour gérer l'accès à votre organisation", + "accessUsersRolesDescription": "Invitez des utilisateurs et ajoutez-les aux rôles pour gérer l'accès à l'organisation", "key": "Clé", "createdAt": "Créé le", "proxyErrorInvalidHeader": "Valeur d'en-tête Host personnalisée invalide. Utilisez le format de nom de domaine, ou laissez vide pour désactiver l'en-tête Host personnalisé.", "proxyErrorTls": "Nom de serveur TLS invalide. Utilisez le format de nom de domaine, ou laissez vide pour supprimer le nom de serveur TLS.", "proxyEnableSSL": "Activer SSL", - "proxyEnableSSLDescription": "Activez le cryptage SSL/TLS pour des connexions HTTPS sécurisées vers vos cibles.", + "proxyEnableSSLDescription": "Activer le cryptage SSL/TLS pour des connexions HTTPS sécurisées vers les cibles.", "target": "Cible", "configureTarget": "Configurer les cibles", "targetErrorFetch": "Échec de la récupération des cibles", @@ -480,29 +492,29 @@ "targetsErrorUpdate": "Échec de la mise à jour des cibles", "targetsErrorUpdateDescription": "Une erreur s'est produite lors de la mise à jour des cibles", "targetTlsUpdate": "Paramètres TLS mis à jour", - "targetTlsUpdateDescription": "Vos paramètres TLS ont été mis à jour avec succès", + "targetTlsUpdateDescription": "Les paramètres TLS ont été mis à jour avec succès", "targetErrorTlsUpdate": "Échec de la mise à jour des paramètres TLS", "targetErrorTlsUpdateDescription": "Une erreur s'est produite lors de la mise à jour des paramètres TLS", "proxyUpdated": "Paramètres du proxy mis à jour", - "proxyUpdatedDescription": "Vos paramètres de proxy ont été mis à jour avec succès", + "proxyUpdatedDescription": "Les paramètres du proxy ont été mis à jour avec succès", "proxyErrorUpdate": "Échec de la mise à jour des paramètres du proxy", "proxyErrorUpdateDescription": "Une erreur s'est produite lors de la mise à jour des paramètres du proxy", "targetAddr": "IP / Nom d'hôte", "targetPort": "Port", "targetProtocol": "Protocole", "targetTlsSettings": "Configuration sécurisée de connexion", - "targetTlsSettingsDescription": "Configurer les paramètres SSL/TLS pour votre ressource", + "targetTlsSettingsDescription": "Configurer les paramètres SSL/TLS pour la ressource", "targetTlsSettingsAdvanced": "Paramètres TLS avancés", "targetTlsSni": "Nom du serveur TLS", "targetTlsSniDescription": "Le nom de serveur TLS à utiliser pour SNI. Laissez vide pour utiliser la valeur par défaut.", "targetTlsSubmit": "Enregistrer les paramètres", "targets": "Configuration des cibles", - "targetsDescription": "Configurez les cibles pour router le trafic vers vos services.", + "targetsDescription": "Définir des cibles pour acheminer le trafic vers les services backend", "targetStickySessions": "Activer les sessions persistantes", "targetStickySessionsDescription": "Maintenir les connexions sur la même cible backend pendant toute leur session.", "methodSelect": "Sélectionner la méthode", "targetSubmit": "Ajouter une cible", - "targetNoOne": "Cette ressource n'a aucune cible. Ajoutez une cible pour configurer où envoyer des requêtes à votre backend.", + "targetNoOne": "Cette ressource n'a aucune cible. Ajoutez une cible pour configurer où envoyer des requêtes à l'arrière-plan.", "targetNoOneDescription": "L'ajout de plus d'une cible ci-dessus activera l'équilibrage de charge.", "targetsSubmit": "Enregistrer les cibles", "addTarget": "Ajouter une cible", @@ -516,9 +528,11 @@ "targetCreatedDescription": "La cible a été créée avec succès", "targetErrorCreate": "Impossible de créer la cible", "targetErrorCreateDescription": "Une erreur s'est produite lors de la création de la cible", + "tlsServerName": "Nom du serveur TLS", + "tlsServerNameDescription": "Le nom du serveur TLS à utiliser pour la SNI", "save": "Enregistrer", "proxyAdditional": "Paramètres de proxy supplémentaires", - "proxyAdditionalDescription": "Configurer la façon dont votre ressource gère les paramètres de proxy", + "proxyAdditionalDescription": "Configurer comment la ressource gère les paramètres du proxy", "proxyCustomHeader": "En-tête Host personnalisé", "proxyCustomHeaderDescription": "L'en-tête host à définir lors du proxy des requêtes. Laissez vide pour utiliser la valeur par défaut.", "proxyAdditionalSubmit": "Enregistrer les paramètres de proxy", @@ -558,7 +572,7 @@ "rulesMatchType": "Type de correspondance", "value": "Valeur", "rulesAbout": "À propos des règles", - "rulesAboutDescription": "Les règles vous permettent de contrôler l'accès à votre ressource en fonction d'un ensemble de critères. Vous pouvez créer des règles pour autoriser ou refuser l'accès basé sur l'adresse IP ou le chemin URL.", + "rulesAboutDescription": "Les règles vous permettent de contrôler l'accès à la ressource en fonction d'un ensemble de critères. Vous pouvez créer des règles pour autoriser ou refuser l'accès en fonction de l'adresse IP ou du chemin d'URL.", "rulesActions": "Actions", "rulesActionAlwaysAllow": "Toujours autoriser : Contourner toutes les méthodes d'authentification", "rulesActionAlwaysDeny": "Toujours refuser : Bloquer toutes les requêtes ; aucune authentification ne peut être tentée", @@ -570,7 +584,7 @@ "rulesEnable": "Activer les règles", "rulesEnableDescription": "Activer ou désactiver l'évaluation des règles pour cette ressource", "rulesResource": "Configuration des règles de ressource", - "rulesResourceDescription": "Configurer les règles pour contrôler l'accès à votre ressource", + "rulesResourceDescription": "Configurer les règles pour contrôler l'accès à la ressource", "ruleSubmit": "Ajouter une règle", "rulesNoOne": "Aucune règle. Ajoutez une règle en utilisant le formulaire.", "rulesOrder": "Les règles sont évaluées par priorité dans l'ordre croissant.", @@ -586,7 +600,7 @@ "none": "Aucun", "unknown": "Inconnu", "resources": "Ressources", - "resourcesDescription": "Les ressources sont des proxys vers des applications exécutées sur votre réseau privé. Créez une ressource pour tout service HTTP/HTTPS ou TCP/UDP brut sur votre réseau privé. Chaque ressource doit être connectée à un site pour permettre une connectivité privée et sécurisée via un tunnel WireGuard chiffré.", + "resourcesDescription": "Les ressources sont des proxy pour les applications exécutées sur le réseau privé. Créez une ressource pour tous les services HTTP/HTTPS ou TCP/UDP bruts sur votre réseau privé. Chaque ressource doit être connectée à un site pour permettre une connectivité privée et sécurisée via un tunnel WireGuard chiffré.", "resourcesWireGuardConnect": "Connectivité sécurisée avec chiffrement WireGuard", "resourcesMultipleAuthenticationMethods": "Configurer plusieurs méthodes d'authentification", "resourcesUsersRolesAccess": "Contrôle d'accès basé sur les utilisateurs et les rôles", @@ -597,7 +611,7 @@ "resourceSelect": "Sélectionner une ressource", "shareLinks": "Liens de partage", "share": "Liens partageables", - "shareDescription2": "Créez des liens partageables vers vos ressources. Les liens fournissent un accès temporaire ou illimité à votre ressource. Vous pouvez configurer la durée d'expiration du lien lors de sa création.", + "shareDescription2": "Créez des liens partageables vers des ressources. Les liens fournissent un accès temporaire ou illimité à votre ressource. Vous pouvez configurer la durée d'expiration du lien lorsque vous en créez un.", "shareEasyCreate": "Facile à créer et à partager", "shareConfigurableExpirationDuration": "Durée d'expiration configurable", "shareSecureAndRevocable": "Sécurisé et révocable", @@ -607,19 +621,19 @@ "unknownCommand": "Commande inconnue", "newtErrorFetchReleases": "Échec de la récupération des informations de version : {err}", "newtErrorFetchLatest": "Erreur lors de la récupération de la dernière version : {err}", - "newtEndpoint": "Point de terminaison Newt", - "newtId": "ID Newt", - "newtSecretKey": "Clé secrète Newt", + "newtEndpoint": "Endpoint", + "newtId": "ID", + "newtSecretKey": "Secrète", "architecture": "Architecture", "sites": "Nœuds", - "siteWgAnyClients": "Utilisez n'importe quel client WireGuard pour vous connecter. Vous devrez adresser vos ressources internes en utilisant l'IP du pair.", + "siteWgAnyClients": "Utilisez n'importe quel client WireGuard pour vous connecter. Vous devrez adresser des ressources internes en utilisant l'adresse IP du pair.", "siteWgCompatibleAllClients": "Compatible avec tous les clients WireGuard", "siteWgManualConfigurationRequired": "Configuration manuelle requise", "userErrorNotAdminOrOwner": "L'utilisateur n'est pas un administrateur ou un propriétaire", "pangolinSettings": "Paramètres - Pangolin", "accessRoleYour": "Votre rôle :", - "accessRoleSelect2": "Sélectionner un rôle", - "accessUserSelect": "Sélectionner un utilisateur", + "accessRoleSelect2": "Sélectionner les rôles", + "accessUserSelect": "Sélectionner les utilisateurs", "otpEmailEnter": "Entrer un e-mail", "otpEmailEnterDescription": "Appuyez sur Entrée pour ajouter un e-mail après l'avoir saisi dans le champ.", "otpEmailErrorInvalid": "Adresse e-mail invalide. Le caractère générique (*) doit être la partie locale entière.", @@ -671,7 +685,7 @@ "resourcePincodeSetupTitle": "Définir le code PIN", "resourcePincodeSetupTitleDescription": "Définir un code PIN pour protéger cette ressource", "resourceRoleDescription": "Les administrateurs peuvent toujours accéder à cette ressource.", - "resourceUsersRoles": "Utilisateurs et rôles", + "resourceUsersRoles": "Contrôles d'accès", "resourceUsersRolesDescription": "Configurer quels utilisateurs et rôles peuvent visiter cette ressource", "resourceUsersRolesSubmit": "Enregistrer les utilisateurs et les rôles", "resourceWhitelistSave": "Enregistré avec succès", @@ -702,6 +716,7 @@ "resourceTransferSubmit": "Transférer la ressource", "siteDestination": "Site de destination", "searchSites": "Rechercher des sites", + "countries": "Pays", "accessRoleCreate": "Créer un rôle", "accessRoleCreateDescription": "Créer un nouveau rôle pour regrouper les utilisateurs et gérer leurs permissions.", "accessRoleCreateSubmit": "Créer un rôle", @@ -766,15 +781,15 @@ "idpOidcConfigure": "Configuration OAuth2/OIDC", "idpOidcConfigureDescription": "Configurer les points de terminaison et les identifiants du fournisseur OAuth2/OIDC", "idpClientId": "ID Client", - "idpClientIdDescription": "L'ID client OAuth2 de votre fournisseur d'identité", + "idpClientIdDescription": "L'identifiant client OAuth2 du fournisseur d'identité", "idpClientSecret": "Secret Client", - "idpClientSecretDescription": "Le secret client OAuth2 de votre fournisseur d'identité", + "idpClientSecretDescription": "Le secret du client OAuth2 du fournisseur d'identité", "idpAuthUrl": "URL d'autorisation", "idpAuthUrlDescription": "L'URL du point de terminaison d'autorisation OAuth2", "idpTokenUrl": "URL du jeton", "idpTokenUrlDescription": "L'URL du point de terminaison du jeton OAuth2", "idpOidcConfigureAlert": "Information importante", - "idpOidcConfigureAlertDescription": "Après avoir créé le fournisseur d'identité, vous devrez configurer l'URL de rappel dans les paramètres de votre fournisseur d'identité. L'URL de rappel sera fournie après la création réussie.", + "idpOidcConfigureAlertDescription": "Après avoir créé le fournisseur d'identité, vous devrez configurer l'URL de rappel dans les paramètres du fournisseur d'identité. L'URL de rappel sera fournie après la création réussie.", "idpToken": "Configuration du jeton", "idpTokenDescription": "Configurer comment extraire les informations utilisateur du jeton ID", "idpJmespathAbout": "À propos de JMESPath", @@ -791,7 +806,7 @@ "idpSubmit": "Créer le fournisseur d'identité", "orgPolicies": "Politiques d'organisation", "idpSettings": "Paramètres de {idpName}", - "idpCreateSettingsDescription": "Configurer les paramètres de votre fournisseur d'identité", + "idpCreateSettingsDescription": "Configurer les paramètres du fournisseur d'identité", "roleMapping": "Mappage des rôles", "orgMapping": "Mappage d'organisation", "orgPoliciesSearch": "Rechercher des politiques d'organisation...", @@ -826,7 +841,7 @@ "idpUpdatedDescription": "Fournisseur d'identité mis à jour avec succès", "redirectUrl": "URL de redirection", "redirectUrlAbout": "À propos de l'URL de redirection", - "redirectUrlAboutDescription": "C'est l'URL vers laquelle les utilisateurs seront redirigés après l'authentification. Vous devez configurer cette URL dans les paramètres de votre fournisseur d'identité.", + "redirectUrlAboutDescription": "C'est l'URL vers laquelle les utilisateurs seront redirigés après l'authentification. Vous devez configurer cette URL dans les paramètres du fournisseur d'identité.", "pangolinAuth": "Auth - Pangolin", "verificationCodeLengthRequirements": "Votre code de vérification doit comporter 8 caractères.", "errorOccurred": "Une erreur s'est produite", @@ -909,6 +924,10 @@ "passwordResetSent": "Nous allons envoyer un code de réinitialisation à cette adresse e-mail.", "passwordResetCode": "Code de réinitialisation", "passwordResetCodeDescription": "Vérifiez votre e-mail pour le code de réinitialisation.", + "generatePasswordResetCode": "Générer le code de réinitialisation du mot de passe", + "passwordResetCodeGenerated": "Code de réinitialisation du mot de passe généré", + "passwordResetCodeGeneratedDescription": "Partagez ce code avec l'utilisateur. Il peut l'utiliser pour réinitialiser son mot de passe.", + "passwordResetUrl": "Reset URL", "passwordNew": "Nouveau mot de passe", "passwordNewConfirm": "Confirmer le nouveau mot de passe", "changePassword": "Changer le mot de passe", @@ -926,6 +945,9 @@ "pincodeAuth": "Code d'authentification", "pincodeSubmit2": "Soumettre le code", "passwordResetSubmit": "Demander la réinitialisation", + "passwordResetAlreadyHaveCode": "Entrez le code de réinitialisation du mot de passe", + "passwordResetSmtpRequired": "Veuillez contacter votre administrateur", + "passwordResetSmtpRequiredDescription": "Un code de réinitialisation du mot de passe est requis pour réinitialiser votre mot de passe. Veuillez contacter votre administrateur pour obtenir de l'aide.", "passwordBack": "Retour au mot de passe", "loginBack": "Retour à la connexion", "signup": "S'inscrire", @@ -1091,12 +1113,15 @@ "actionListSiteResources": "Lister les ressources de site", "actionUpdateSiteResource": "Mettre à jour une ressource de site", "actionListInvitations": "Lister les invitations", + "actionExportLogs": "Exporter les journaux", + "actionViewLogs": "Voir les logs", "noneSelected": "Aucune sélection", "orgNotFound2": "Aucune organisation trouvée.", "searchProgress": "Rechercher...", "create": "Créer", "orgs": "Organisations", "loginError": "Une erreur s'est produite lors de la connexion", + "loginRequiredForDevice": "La connexion est requise pour authentifier votre appareil.", "passwordForgot": "Mot de passe oublié ?", "otpAuth": "Authentification à deux facteurs", "otpAuthDescription": "Entrez le code de votre application d'authentification ou l'un de vos codes de secours à usage unique.", @@ -1151,19 +1176,29 @@ "sidebarHome": "Domicile", "sidebarSites": "Nœuds", "sidebarResources": "Ressource", + "sidebarProxyResources": "Publique", + "sidebarClientResources": "Privé", "sidebarAccessControl": "Contrôle d'accès", + "sidebarLogsAndAnalytics": "Journaux & Analytiques", "sidebarUsers": "Utilisateurs", + "sidebarAdmin": "Administrateur", "sidebarInvitations": "Invitations", "sidebarRoles": "Rôles", - "sidebarShareableLinks": "Liens partagables", + "sidebarShareableLinks": "Liens", "sidebarApiKeys": "Clés API", "sidebarSettings": "Réglages", "sidebarAllUsers": "Tous les utilisateurs", "sidebarIdentityProviders": "Fournisseurs d'identité", "sidebarLicense": "Licence", "sidebarClients": "Clients", + "sidebarUserDevices": "Utilisateurs", + "sidebarMachineClients": "Machines", "sidebarDomains": "Domaines", + "sidebarGeneral": "Généraux", + "sidebarLogAndAnalytics": "Journaux & Analytiques", "sidebarBluePrints": "Configs", + "sidebarOrganization": "Organisation", + "sidebarLogsAnalytics": "Analyses", "blueprints": "Configs", "blueprintsDescription": "Appliquer les configurations déclaratives et afficher les exécutions précédentes", "blueprintAdd": "Ajouter une Config", @@ -1174,7 +1209,7 @@ "blueprintDetailsDescription": "Voir le résultat du plan appliqué et les erreurs qui se sont produites", "blueprintInfo": "Informations sur la Config", "message": "Message", - "blueprintContentsDescription": "Définissez le contenu YAML décrivant votre infrastructure", + "blueprintContentsDescription": "Définir le contenu YAML décrivant l'infrastructure", "blueprintErrorCreateDescription": "Une erreur s'est produite lors de l'application de la config", "blueprintErrorCreate": "Erreur lors de la création de la config", "searchBlueprintProgress": "Rechercher des configs...", @@ -1230,15 +1265,15 @@ "loading": "Chargement", "restart": "Redémarrer", "domains": "Domaines", - "domainsDescription": "Gérer les domaines de votre organisation", + "domainsDescription": "Créer et gérer les domaines disponibles dans l'organisation", "domainsSearch": "Rechercher des domaines...", "domainAdd": "Ajouter un domaine", - "domainAddDescription": "Enregistrez un nouveau domaine avec votre organisation", + "domainAddDescription": "Inscrire un nouveau domaine à l'organisation", "domainCreate": "Créer un domaine", "domainCreatedDescription": "Domaine créé avec succès", "domainDeletedDescription": "Domaine supprimé avec succès", - "domainQuestionRemove": "Êtes-vous sûr de vouloir supprimer le domaine de votre compte ?", - "domainMessageRemove": "Une fois supprimé, le domaine ne sera plus associé à votre compte.", + "domainQuestionRemove": "Êtes-vous sûr de vouloir supprimer le domaine ?", + "domainMessageRemove": "Une fois supprimé, le domaine ne sera plus associé à l'organisation.", "domainConfirmDelete": "Confirmer la suppression du domaine", "domainDelete": "Supprimer le domaine", "domain": "Domaine", @@ -1257,7 +1292,7 @@ "pending": "En attente", "sidebarBilling": "Facturation", "billing": "Facturation", - "orgBillingDescription": "Gérez vos informations de facturation et vos abonnements", + "orgBillingDescription": "Gérer les informations de facturation et les abonnements", "github": "GitHub", "pangolinHosted": "Pangolin Hébergement", "fossorial": "Fossorial", @@ -1300,7 +1335,7 @@ "domainPickerSortAsc": "A-Z", "domainPickerSortDesc": "Z-A", "domainPickerCheckingAvailability": "Vérification de la disponibilité...", - "domainPickerNoMatchingDomains": "Aucun domaine correspondant trouvé. Essayez un autre domaine ou vérifiez les paramètres de domaine de votre organisation.", + "domainPickerNoMatchingDomains": "Aucun domaine correspondant trouvé. Essayez un autre domaine ou vérifiez les paramètres de domaine de l'organisation.", "domainPickerOrganizationDomains": "Domaines de l'organisation", "domainPickerProvidedDomains": "Domaines fournis", "domainPickerSubdomain": "Sous-domaine : {subdomain}", @@ -1334,7 +1369,7 @@ "billingModifySubscription": "Modifier l'abonnement", "billingStartSubscription": "Démarrer l'abonnement", "billingRecurringCharge": "Frais récurrents", - "billingManageSubscriptionSettings": "Gérez les paramètres et préférences de votre abonnement", + "billingManageSubscriptionSettings": "Gérer les paramètres et préférences d'abonnement", "billingNoActiveSubscription": "Vous n'avez pas d'abonnement actif. Commencez votre abonnement pour augmenter les limites d'utilisation.", "billingFailedToLoadSubscription": "Échec du chargement de l'abonnement", "billingFailedToLoadUsage": "Échec du chargement de l'utilisation", @@ -1345,9 +1380,9 @@ "billingPortalError": "Erreur du portail", "billingDataUsageInfo": "Vous êtes facturé pour toutes les données transférées via vos tunnels sécurisés lorsque vous êtes connecté au cloud. Cela inclut le trafic entrant et sortant sur tous vos sites. Lorsque vous atteignez votre limite, vos sites se déconnecteront jusqu'à ce que vous mettiez à niveau votre plan ou réduisiez l'utilisation. Les données ne sont pas facturées lors de l'utilisation de nœuds.", "billingOnlineTimeInfo": "Vous êtes facturé en fonction de la durée de connexion de vos sites au cloud. Par exemple, 44 640 minutes équivaut à un site fonctionnant 24/7 pendant un mois complet. Lorsque vous atteignez votre limite, vos sites se déconnecteront jusqu'à ce que vous mettiez à niveau votre forfait ou réduisiez votre consommation. Le temps n'est pas facturé lors de l'utilisation de nœuds.", - "billingUsersInfo": "Vous êtes facturé pour chaque utilisateur dans votre organisation. La facturation est calculée quotidiennement en fonction du nombre de comptes utilisateurs actifs dans votre organisation.", - "billingDomainInfo": "Vous êtes facturé pour chaque domaine dans votre organisation. La facturation est calculée quotidiennement en fonction du nombre de comptes de domaine actifs dans votre organisation.", - "billingRemoteExitNodesInfo": "Vous êtes facturé pour chaque nœud géré dans votre organisation. La facturation est calculée quotidiennement en fonction du nombre de nœuds gérés actifs dans votre organisation.", + "billingUsersInfo": "Vous êtes facturé pour chaque utilisateur de l'organisation. La facturation est calculée quotidiennement en fonction du nombre de comptes d'utilisateurs actifs dans votre organisation.", + "billingDomainInfo": "Vous êtes facturé pour chaque domaine de l'organisation. La facturation est calculée quotidiennement en fonction du nombre de comptes de domaine actifs dans votre organisation.", + "billingRemoteExitNodesInfo": "Vous êtes facturé pour chaque noeud géré dans l'organisation. La facturation est calculée quotidiennement en fonction du nombre de nœuds gérés actifs dans votre organisation.", "domainNotFound": "Domaine introuvable", "domainNotFoundDescription": "Cette ressource est désactivée car le domaine n'existe plus dans notre système. Veuillez définir un nouveau domaine pour cette ressource.", "failed": "Échec", @@ -1430,29 +1465,32 @@ "and": "et", "privacyPolicy": "la politique de confidentialité" }, + "signUpMarketing": { + "keepMeInTheLoop": "Gardez-moi dans la boucle avec des nouvelles, des mises à jour et de nouvelles fonctionnalités par courriel." + }, "siteRequired": "Le site est requis.", "olmTunnel": "Tunnel Olm", "olmTunnelDescription": "Utilisez Olm pour la connectivité client", "errorCreatingClient": "Erreur lors de la création du client", "clientDefaultsNotFound": "Les paramètres par défaut du client sont introuvables", "createClient": "Créer un client", - "createClientDescription": "Créez un nouveau client pour vous connecter à vos sites", + "createClientDescription": "Créer un nouveau client pour accéder aux ressources privées", "seeAllClients": "Voir tous les clients", "clientInformation": "Informations client", "clientNamePlaceholder": "Nom du client", "address": "Adresse", "subnetPlaceholder": "Sous-réseau", - "addressDescription": "L'adresse que ce client utilisera pour la connectivité", + "addressDescription": "L'adresse interne du client. Doit être dans le sous-réseau de l'organisation.", "selectSites": "Sélectionner des sites", "sitesDescription": "Le client aura une connectivité vers les sites sélectionnés", "clientInstallOlm": "Installer Olm", "clientInstallOlmDescription": "Faites fonctionner Olm sur votre système", - "clientOlmCredentials": "Identifiants Olm", - "clientOlmCredentialsDescription": "C'est ainsi qu'Olm s'authentifiera auprès du serveur", - "olmEndpoint": "Point de terminaison Olm", - "olmId": "ID Olm", - "olmSecretKey": "Clé secrète Olm", - "clientCredentialsSave": "Enregistrez vos identifiants", + "clientOlmCredentials": "Identifiants", + "clientOlmCredentialsDescription": "C'est ainsi que le client s'authentifie avec le serveur", + "olmEndpoint": "Endpoint", + "olmId": "ID", + "olmSecretKey": "Secrète", + "clientCredentialsSave": "Enregistrer les informations d'identification", "clientCredentialsSaveDescription": "Vous ne pourrez voir cela qu'une seule fois. Assurez-vous de la copier dans un endroit sécurisé.", "generalSettingsDescription": "Configurez les paramètres généraux pour ce client", "clientUpdated": "Client mis à jour", @@ -1463,9 +1501,7 @@ "sitesFetchError": "Une erreur s'est produite lors de la récupération des sites.", "olmErrorFetchReleases": "Une erreur s'est produite lors de la récupération des versions d'Olm.", "olmErrorFetchLatest": "Une erreur s'est produite lors de la récupération de la dernière version d'Olm.", - "remoteSubnets": "Sous-réseaux distants", "enterCidrRange": "Entrez la plage CIDR", - "remoteSubnetsDescription": "Ajoutez des plages CIDR accessibles à distance depuis ce site à l'aide de clients. Utilisez le format comme 10.0.0.0/24. Cela s'applique UNIQUEMENT à la connectivité des clients VPN.", "resourceEnableProxy": "Activer le proxy public", "resourceEnableProxyDescription": "Activez le proxy public vers cette ressource. Cela permet d'accéder à la ressource depuis l'extérieur du réseau via le cloud sur un port ouvert. Nécessite la configuration de Traefik.", "externalProxyEnabled": "Proxy externe activé", @@ -1483,14 +1519,15 @@ "enableHealthChecksDescription": "Surveiller la vie de cette cible. Vous pouvez surveiller un point de terminaison différent de la cible si nécessaire.", "healthScheme": "Méthode", "healthSelectScheme": "Sélectionnez la méthode", + "healthCheckPortInvalid": "Le port du bilan de santé doit être compris entre 1 et 65535", "healthCheckPath": "Chemin d'accès", "healthHostname": "IP / Hôte", "healthPort": "Port", "healthCheckPathDescription": "Le chemin à vérifier pour le statut de santé.", - "healthyIntervalSeconds": "Intervalle sain", - "unhealthyIntervalSeconds": "Intervalle en mauvaise santé", + "healthyIntervalSeconds": "Intervalle de santé (sec)", + "unhealthyIntervalSeconds": "Intervalle malsain (sec)", "IntervalSeconds": "Intervalle sain", - "timeoutSeconds": "Délai", + "timeoutSeconds": "Délai d'attente (sec)", "timeIsInSeconds": "Le temps est exprimé en secondes", "retryAttempts": "Tentatives de réessai", "expectedResponseCodes": "Codes de réponse attendus", @@ -1526,12 +1563,12 @@ "resourceEditDomain": "Modifier le domaine", "siteName": "Nom du site", "proxyPort": "Port", - "resourcesTableProxyResources": "Ressources proxy", - "resourcesTableClientResources": "Ressources client", + "resourcesTableProxyResources": "Publique", + "resourcesTableClientResources": "Privé", "resourcesTableNoProxyResourcesFound": "Aucune ressource proxy trouvée.", "resourcesTableNoInternalResourcesFound": "Aucune ressource interne trouvée.", "resourcesTableDestination": "Destination", - "resourcesTableTheseResourcesForUseWith": "Ces ressources sont à utiliser avec", + "resourcesTableAlias": "Alias", "resourcesTableClients": "Clients", "resourcesTableAndOnlyAccessibleInternally": "et sont uniquement accessibles en interne lorsqu'elles sont connectées avec un client.", "resourcesTableNoTargets": "Aucune cible", @@ -1540,8 +1577,8 @@ "resourcesTableOffline": "Hors ligne", "resourcesTableUnknown": "Inconnu", "resourcesTableNotMonitored": "Non-monitoré", - "editInternalResourceDialogEditClientResource": "Modifier la ressource client", - "editInternalResourceDialogUpdateResourceProperties": "Mettez à jour les propriétés de la ressource et la configuration de la cible pour {resourceName}.", + "editInternalResourceDialogEditClientResource": "Modifier une ressource privée", + "editInternalResourceDialogUpdateResourceProperties": "Mettre à jour la configuration de la ressource et les contrôles d'accès pour {resourceName}", "editInternalResourceDialogResourceProperties": "Propriétés de la ressource", "editInternalResourceDialogName": "Nom", "editInternalResourceDialogProtocol": "Protocole", @@ -1560,11 +1597,22 @@ "editInternalResourceDialogInvalidIPAddressFormat": "Format d'adresse IP invalide", "editInternalResourceDialogDestinationPortMin": "Le port de destination doit être d'au moins 1", "editInternalResourceDialogDestinationPortMax": "Le port de destination doit être inférieur à 65536", + "editInternalResourceDialogPortModeRequired": "Protocole, port proxy et port de destination sont requis pour le mode port", + "editInternalResourceDialogMode": "Mode", + "editInternalResourceDialogModePort": "Port", + "editInternalResourceDialogModeHost": "Hôte", + "editInternalResourceDialogModeCidr": "CIDR", + "editInternalResourceDialogDestination": "Destination", + "editInternalResourceDialogDestinationHostDescription": "L'adresse IP ou le nom d'hôte de la ressource sur le réseau du site.", + "editInternalResourceDialogDestinationIPDescription": "L'adresse IP ou le nom d'hôte de la ressource sur le réseau du site.", + "editInternalResourceDialogDestinationCidrDescription": "La gamme CIDR de la ressource sur le réseau du site.", + "editInternalResourceDialogAlias": "Alias", + "editInternalResourceDialogAliasDescription": "Un alias DNS interne optionnel pour cette ressource.", "createInternalResourceDialogNoSitesAvailable": "Aucun site disponible", "createInternalResourceDialogNoSitesAvailableDescription": "Vous devez avoir au moins un site Newt avec un sous-réseau configuré pour créer des ressources internes.", "createInternalResourceDialogClose": "Fermer", - "createInternalResourceDialogCreateClientResource": "Créer une ressource client", - "createInternalResourceDialogCreateClientResourceDescription": "Créez une ressource accessible aux clients connectés au site sélectionné.", + "createInternalResourceDialogCreateClientResource": "Créer une ressource privée", + "createInternalResourceDialogCreateClientResourceDescription": "Créer une nouvelle ressource qui ne sera accessible qu'aux clients connectés à l'organisation", "createInternalResourceDialogResourceProperties": "Propriétés de la ressource", "createInternalResourceDialogName": "Nom", "createInternalResourceDialogSite": "Site", @@ -1593,11 +1641,22 @@ "createInternalResourceDialogInvalidIPAddressFormat": "Format d'adresse IP invalide", "createInternalResourceDialogDestinationPortMin": "Le port de destination doit être d'au moins 1", "createInternalResourceDialogDestinationPortMax": "Le port de destination doit être inférieur à 65536", + "createInternalResourceDialogPortModeRequired": "Protocole, port proxy et port de destination sont requis pour le mode port", + "createInternalResourceDialogMode": "Mode", + "createInternalResourceDialogModePort": "Port", + "createInternalResourceDialogModeHost": "Hôte", + "createInternalResourceDialogModeCidr": "CIDR", + "createInternalResourceDialogDestination": "Destination", + "createInternalResourceDialogDestinationHostDescription": "L'adresse IP ou le nom d'hôte de la ressource sur le réseau du site.", + "createInternalResourceDialogDestinationCidrDescription": "La gamme CIDR de la ressource sur le réseau du site.", + "createInternalResourceDialogAlias": "Alias", + "createInternalResourceDialogAliasDescription": "Un alias DNS interne optionnel pour cette ressource.", "siteConfiguration": "Configuration", "siteAcceptClientConnections": "Accepter les connexions client", - "siteAcceptClientConnectionsDescription": "Permet à d'autres appareils de se connecter via cette instance de Newt en tant que passerelle utilisant des clients.", - "siteAddress": "Adresse du site", - "siteAddressDescription": "Spécifiez l'adresse IP de l'hôte pour que les clients puissent s'y connecter. C'est l'adresse interne du site dans le réseau Pangolin pour que les clients puissent s'adresser. Doit être dans le sous-réseau de l'organisation.", + "siteAcceptClientConnectionsDescription": "Autoriser les utilisateurs et les clients à accéder aux ressources de ce site. Cela peut être modifié plus tard.", + "siteAddress": "Adresse du site (Avancé)", + "siteAddressDescription": "L'adresse interne du site. Doit être dans le sous-réseau de l'organisation.", + "siteNameDescription": "Le nom d'affichage du site qui peut être modifié plus tard.", "autoLoginExternalIdp": "Connexion automatique avec IDP externe", "autoLoginExternalIdpDescription": "Rediriger immédiatement l'utilisateur vers l'IDP externe pour l'authentification.", "selectIdp": "Sélectionner l'IDP", @@ -1611,7 +1670,7 @@ "autoLoginErrorNoRedirectUrl": "Aucune URL de redirection reçue du fournisseur d'identité.", "autoLoginErrorGeneratingUrl": "Échec de la génération de l'URL d'authentification.", "remoteExitNodeManageRemoteExitNodes": "Nœuds distants", - "remoteExitNodeDescription": "Héberger un ou plusieurs nœuds distants pour étendre votre connectivité réseau et réduire la dépendance sur le cloud", + "remoteExitNodeDescription": "Héberger un ou plusieurs nœuds distants pour étendre la connectivité réseau et réduire la dépendance sur le cloud", "remoteExitNodes": "Nœuds", "searchRemoteExitNodes": "Rechercher des nœuds...", "remoteExitNodeAdd": "Ajouter un noeud", @@ -1623,11 +1682,11 @@ "sidebarRemoteExitNodes": "Nœuds distants", "remoteExitNodeCreate": { "title": "Créer un noeud", - "description": "Créer un nouveau nœud pour étendre votre connectivité réseau", + "description": "Créer un nouveau nœud pour étendre la connectivité réseau", "viewAllButton": "Voir tous les nœuds", "strategy": { "title": "Stratégie de création", - "description": "Choisissez ceci pour configurer manuellement votre nœud ou générer de nouveaux identifiants.", + "description": "Choisissez ceci pour configurer manuellement le noeud ou générer de nouveaux identifiants.", "adopt": { "title": "Adopter un nœud", "description": "Choisissez ceci si vous avez déjà les identifiants pour le noeud." @@ -1648,7 +1707,7 @@ }, "generate": { "title": "Informations d'identification générées", - "description": "Utilisez ces identifiants générés pour configurer votre noeud", + "description": "Utilisez ces identifiants générés pour configurer le noeud", "nodeIdTitle": "Nœud ID", "secretTitle": "Secret", "saveCredentialsTitle": "Ajouter des identifiants à la config", @@ -1724,16 +1783,16 @@ "idpTypeLabel": "Type de fournisseur d'identité", "roleMappingExpressionPlaceholder": "ex: contenu(groupes) && 'admin' || 'membre'", "idpGoogleConfiguration": "Configuration Google", - "idpGoogleConfigurationDescription": "Configurer vos identifiants Google OAuth2", - "idpGoogleClientIdDescription": "Votre identifiant client Google OAuth2", - "idpGoogleClientSecretDescription": "Votre secret client Google OAuth2", + "idpGoogleConfigurationDescription": "Configurer les identifiants Google OAuth2", + "idpGoogleClientIdDescription": "Google OAuth2 Client ID", + "idpGoogleClientSecretDescription": "Secret client OAuth2 de Google", "idpAzureConfiguration": "Configuration de l'entra ID Azure", - "idpAzureConfigurationDescription": "Configurer vos identifiants OAuth2 Azure Entra", + "idpAzureConfigurationDescription": "Configurer les identifiants OAuth2 Azure Entra ID", "idpTenantId": "ID du locataire", - "idpTenantIdPlaceholder": "votre-locataire-id", - "idpAzureTenantIdDescription": "Votre ID de locataire Azure (trouvé dans l'aperçu Azure Active Directory)", - "idpAzureClientIdDescription": "Votre ID client d'enregistrement de l'application Azure", - "idpAzureClientSecretDescription": "Le secret de votre client d'enregistrement Azure App", + "idpTenantIdPlaceholder": "tenant-id", + "idpAzureTenantIdDescription": "ID du locataire Azure (trouvé dans l'aperçu Azure Active Directory)", + "idpAzureClientIdDescription": "ID client d'enregistrement de l'application Azure", + "idpAzureClientSecretDescription": "Secret du client d'enregistrement de l'application Azure", "idpGoogleTitle": "Google", "idpGoogleAlt": "Google", "idpAzureTitle": "Azure Entra ID", @@ -1741,14 +1800,14 @@ "idpGoogleConfigurationTitle": "Configuration Google", "idpAzureConfigurationTitle": "Configuration de l'entra ID Azure", "idpTenantIdLabel": "ID du locataire", - "idpAzureClientIdDescription2": "Votre ID client d'enregistrement de l'application Azure", - "idpAzureClientSecretDescription2": "Le secret de votre client d'enregistrement Azure App", + "idpAzureClientIdDescription2": "ID client d'enregistrement de l'application Azure", + "idpAzureClientSecretDescription2": "Secret du client d'enregistrement de l'application Azure", "idpGoogleDescription": "Fournisseur Google OAuth2/OIDC", "idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider", "subnet": "Sous-réseau", "subnetDescription": "Le sous-réseau de la configuration réseau de cette organisation.", "authPage": "Page d'authentification", - "authPageDescription": "Configurer la page d'authentification de votre organisation", + "authPageDescription": "Configurer la page d'authentification de l'organisation", "authPageDomain": "Domaine de la page d'authentification", "noDomainSet": "Aucun domaine défini", "changeDomain": "Changer de domaine", @@ -1758,7 +1817,7 @@ "setAuthPageDomain": "Définir le domaine de la page d'authentification", "failedToFetchCertificate": "Impossible de récupérer le certificat", "failedToRestartCertificate": "Échec du redémarrage du certificat", - "addDomainToEnableCustomAuthPages": "Ajouter un domaine pour activer les pages d'authentification personnalisées pour votre organisation", + "addDomainToEnableCustomAuthPages": "Ajouter un domaine pour activer les pages d'authentification personnalisées pour l'organisation", "selectDomainForOrgAuthPage": "Sélectionnez un domaine pour la page d'authentification de l'organisation", "domainPickerProvidedDomain": "Domaine fourni", "domainPickerFreeProvidedDomain": "Domaine fourni gratuitement", @@ -1773,7 +1832,7 @@ "domainPickerInvalidSubdomainCannotMakeValid": "La «{sub}» n'a pas pu être validée pour {domain}.", "domainPickerSubdomainSanitized": "Sous-domaine nettoyé", "domainPickerSubdomainCorrected": "\"{sub}\" a été corrigé à \"{sanitized}\"", - "orgAuthSignInTitle": "Connectez-vous à votre organisation", + "orgAuthSignInTitle": "Se connecter à l'organisation", "orgAuthChooseIdpDescription": "Choisissez votre fournisseur d'identité pour continuer", "orgAuthNoIdpConfigured": "Cette organisation n'a aucun fournisseur d'identité configuré. Vous pouvez vous connecter avec votre identité Pangolin à la place.", "orgAuthSignInWithPangolin": "Se connecter avec Pangolin", @@ -1791,7 +1850,7 @@ "enableTwoFactorAuthentication": "Activer l'authentification à deux facteurs", "completeSecuritySteps": "Compléter les étapes de sécurité", "securitySettings": "Paramètres de sécurité", - "securitySettingsDescription": "Configurer les politiques de sécurité de votre organisation", + "securitySettingsDescription": "Configurer les politiques de sécurité de l'organisation", "requireTwoFactorForAllUsers": "Exiger une authentification à deux facteurs pour tous les utilisateurs", "requireTwoFactorDescription": "Lorsque cette option est activée, tous les utilisateurs internes de cette organisation doivent avoir l'authentification à deux facteurs pour accéder à l'organisation.", "requireTwoFactorDisabledDescription": "Cette fonctionnalité nécessite une licence valide (Entreprise) ou un abonnement actif (SaaS)", @@ -1854,8 +1913,12 @@ "enterpriseEdition": "Édition Entreprise", "unlicensed": "Sans licence", "beta": "Bêta", - "manageClients": "Gérer les clients", - "manageClientsDescription": "Les clients sont des appareils qui peuvent se connecter à vos sites", + "manageUserDevices": "Périphériques utilisateur", + "manageUserDevicesDescription": "Voir et gérer les appareils que les utilisateurs utilisent pour se connecter en privé aux ressources", + "manageMachineClients": "Gérer les clients de la machine", + "manageMachineClientsDescription": "Créer et gérer des clients que les serveurs et les systèmes utilisent pour se connecter en privé aux ressources", + "clientsTableUserClients": "Utilisateur", + "clientsTableMachineClients": "Machine", "licenseTableValidUntil": "Valable jusqu'au", "saasLicenseKeysSettingsTitle": "Licences Entreprise", "saasLicenseKeysSettingsDescription": "Générer et gérer les clés de licence Entreprise pour les instances Pangolin auto-hébergées", @@ -1990,11 +2053,12 @@ "pathRewriteStripLabel": "bande", "sidebarEnableEnterpriseLicense": "Activer la licence Entreprise", "cannotbeUndone": "Cela ne peut pas être annulé.", - "toConfirm": "pour confirmer", + "toConfirm": "pour confirmer.", "deleteClientQuestion": "Êtes-vous sûr de vouloir supprimer le client du site et de l'organisation ?", "clientMessageRemove": "Une fois supprimé, le client ne pourra plus se connecter au site.", "sidebarLogs": "Journaux", "request": "Demander", + "requests": "Requêtes", "logs": "Journaux", "logsSettingsDescription": "Surveiller les logs collectés à partir de cette organisation", "searchLogs": "Rechercher dans les journaux...", @@ -2020,6 +2084,7 @@ "ip": "IP", "reason": "Raison", "requestLogs": "Journal des requêtes", + "requestAnalytics": "Demander des analyses", "host": "Hôte", "location": "Localisation", "actionLogs": "Journaux des actions", @@ -2029,6 +2094,7 @@ "logRetention": "Journaliser la rétention", "logRetentionDescription": "Gérer la durée de conservation des différents types de logs pour cette organisation ou les désactiver", "requestLogsDescription": "Voir les journaux détaillés des requêtes pour les ressources de cette organisation", + "requestAnalyticsDescription": "Voir les analyses détaillées des demandes pour les ressources de cette organisation", "logRetentionRequestLabel": "Demander la rétention des journaux", "logRetentionRequestDescription": "Durée de conservation des journaux de requêtes", "logRetentionAccessLabel": "Rétention du journal d'accès", @@ -2052,7 +2118,7 @@ "preferWildcardCert": "Préférez le certificat Wildcard", "unverified": "Non vérifié", "domainSetting": "Paramètres de domaine", - "domainSettingDescription": "Configurer les paramètres de votre domaine", + "domainSettingDescription": "Configurer les paramètres du domaine", "preferWildcardCertDescription": "Tentative de génération d'un certificat générique (nécessite un résolveur de certificat correctement configuré).", "recordName": "Nom de l'enregistrement", "auto": "Automatique", @@ -2066,15 +2132,15 @@ "olmUpdateAvailableInfo": "Une version mise à jour de Olm est disponible. Veuillez mettre à jour vers la dernière version pour la meilleure expérience.", "client": "Client", "proxyProtocol": "Paramètres du protocole proxy", - "proxyProtocolDescription": "Configurer le protocole Proxy pour préserver les adresses IP du client pour les services TCP/UDP.", + "proxyProtocolDescription": "Configurer le protocole Proxy pour préserver les adresses IP du client pour les services TCP.", "enableProxyProtocol": "Activer le protocole Proxy", - "proxyProtocolInfo": "Conserver les adresses IP du client pour les backends TCP/UDP", + "proxyProtocolInfo": "Conserver les adresses IP du client pour les backends TCP", "proxyProtocolVersion": "Version du protocole proxy", "version1": " Version 1 (Recommandé)", "version2": "Version 2", "versionDescription": "La version 1 est basée sur du texte et est largement supportée. La version 2 est binaire et plus efficace mais moins compatible.", "warning": "Avertissement", - "proxyProtocolWarning": "Votre application backend doit être configurée pour accepter les connexions Proxy Protocol. Si votre backend ne prend pas en charge le protocole Proxy, activer ceci va casser toutes les connexions. Assurez-vous de configurer votre backend pour faire confiance aux en-têtes du protocole Proxy de Traefik.", + "proxyProtocolWarning": "L'application backend doit être configurée pour accepter les connexions Proxy Protocol. Si votre backend ne prend pas en charge le protocole Proxy, l'activation de cette option va perturber toutes les connexions, donc n'activez cette option que si vous savez ce que vous faites. Assurez-vous de configurer votre backend pour faire confiance aux en-têtes du protocole Proxy de Traefik.", "restarting": "Redémarrage...", "manual": "Manuel", "messageSupport": "Soutien aux messages", @@ -2097,6 +2163,43 @@ "supportMessageSent": "Message envoyé !", "supportWillContact": "Nous vous contacterons sous peu!", "selectLogRetention": "Sélectionner la durée de rétention des logs", + "terms": "Conditions générales de vente", + "privacy": "Confidentialité", + "security": "Sécurité", + "docs": "Documents", + "deviceActivation": "Activation de l'appareil", + "deviceCodeInvalidFormat": "Le code doit contenir 9 caractères (par exemple, A1AJ-N5JD)", + "deviceCodeInvalidOrExpired": "Code invalide ou expiré", + "deviceCodeVerifyFailed": "Impossible de vérifier le code de l'appareil", + "signedInAs": "Connecté en tant que", + "deviceCodeEnterPrompt": "Entrez le code affiché sur l'appareil", + "continue": "Continuer", + "deviceUnknownLocation": "Lieu inconnu", + "deviceAuthorizationRequested": "Cette autorisation a été demandée à {location} sur {date}. Assurez-vous que vous faites confiance à cet appareil car il aura accès au compte.", + "deviceLabel": "Appareil : {deviceName}", + "deviceWantsAccess": "veut accéder à votre compte", + "deviceExistingAccess": "Accès existant:", + "deviceFullAccess": "Accès complet à votre compte", + "deviceOrganizationsAccess": "Accès à toutes les organisations auxquelles votre compte a accès", + "deviceAuthorize": "Autoriser {applicationName}", + "deviceConnected": "Appareil connecté !", + "deviceAuthorizedMessage": "L'appareil est autorisé à accéder à votre compte.", + "pangolinCloud": "Nuage de Pangolin", + "viewDevices": "Voir les appareils", + "viewDevicesDescription": "Gérer vos appareils connectés", + "noDevices": "Aucun appareil trouvé", + "dateCreated": "Date de création", + "unnamedDevice": "Appareil sans nom", + "deviceQuestionRemove": "Êtes-vous sûr de vouloir supprimer cet appareil ?", + "deviceMessageRemove": "Cette action ne peut être annulée.", + "deviceDeleteConfirm": "Supprimer l'appareil", + "deleteDevice": "Supprimer l'appareil", + "errorLoadingDevices": "Erreur lors du chargement des appareils", + "failedToLoadDevices": "Impossible de charger les appareils", + "deviceDeleted": "Appareil supprimé", + "deviceDeletedDescription": "L'appareil a été supprimé avec succès.", + "errorDeletingDevice": "Erreur lors de la suppression de l'appareil", + "failedToDeleteDevice": "Échec de la suppression de l'appareil", "showColumns": "Afficher les colonnes", "hideColumns": "Cacher les colonnes", "columnVisibility": "Visibilité des colonnes", @@ -2111,10 +2214,14 @@ "enableSelected": "Activer la sélection", "disableSelected": "Désactiver la sélection", "checkSelectedStatus": "Vérifier le statut de la sélection", + "clients": "Clients", + "accessClientSelect": "Sélectionnez les clients de machine", + "resourceClientDescription": "Les clients qui peuvent accéder à cette ressource", + "regenerate": "Régénérer", "credentials": "Identifiants", "savecredentials": "Enregistrer les identifiants", - "regeneratecredentials": "Re-claver", - "regenerateCredentials": "Régénérer et enregistrer les identifiants", + "regenerateCredentialsButton": "Régénérer les identifiants", + "regenerateCredentials": "Régénérer les identifiants", "generatedcredentials": "Identifiants générés", "copyandsavethesecredentials": "Copier et enregistrer ces identifiants", "copyandsavethesecredentialsdescription": "Ces identifiants ne seront pas affichés à nouveaux une fois cette page fermée. Enregistrez-les maintenant.", @@ -2122,13 +2229,12 @@ "credentialsSavedDescription": "Les identifiants ont été régénérés et enregistrés avec succès.", "credentialsSaveError": "Erreur lors de l'enregistrement des identifiants", "credentialsSaveErrorDescription": "Une erreur s'est produite lors de la régénération et l'enregistrement des identifiants.", - "regenerateCredentialsWarning": "La régénération de ces identifiants invalidera ceux actuellement utilisés. Assurez-vous de mettre à jour toutes les configurations qui les utilisent.", + "regenerateCredentialsWarning": "La régénération des identifiants invalidera les identifiants précédents et provoquera une déconnexion. Assurez-vous de mettre à jour toutes les configurations qui utilisent ces identifiants.", "confirm": "Confirmer", "regenerateCredentialsConfirmation": "Voulez-vous vraiment régénérer les identifiants ?", "endpoint": "Endpoint", "Id": "Id", "SecretKey": "Clé privée", - "featureDisabledTooltip": "Cette fonctionnalité n'est disponible que dans la version entreprise et nécessite une licence pour être utilisée.", "niceId": "Joli ID", "niceIdUpdated": "Joli ID mis à jour", "niceIdUpdatedSuccessfully": "Joli ID mis à jour avec succès", @@ -2136,5 +2242,31 @@ "niceIdUpdateErrorDescription": "Erreur lors de la mise à jour du joli ID.", "niceIdCannotBeEmpty": "Merci de renseigner un joli ID", "enterIdentifier": "Entrez l'identifiant", - "identifier": "Identifiant" + "identifier": "Identifiant", + "deviceLoginUseDifferentAccount": "Pas vous ? Utilisez un autre compte.", + "deviceLoginDeviceRequestingAccessToAccount": "Un appareil demande l'accès à ce compte.", + "noData": "Aucune donnée", + "machineClients": "Clients Machines", + "install": "Installer", + "run": "Exécuter", + "clientNameDescription": "Le nom d'affichage du client qui peut être modifié plus tard.", + "clientAddress": "Adresse du client (Avancé)", + "setupFailedToFetchSubnet": "Impossible de récupérer le sous-réseau par défaut", + "setupSubnetAdvanced": "Sous-réseau (Avancé)", + "setupSubnetDescription": "Le sous-réseau du réseau interne de cette organisation.", + "siteRegenerateAndDisconnect": "Régénérer et déconnecter", + "siteRegenerateAndDisconnectConfirmation": "Êtes-vous sûr de vouloir régénérer les identifiants et déconnecter ce site ?", + "siteRegenerateAndDisconnectWarning": "Cela va régénérer les identifiants et déconnecter immédiatement le site. Le site devra être redémarré avec les nouveaux identifiants.", + "siteRegenerateCredentialsConfirmation": "Êtes-vous sûr de vouloir régénérer les identifiants pour ce site ?", + "siteRegenerateCredentialsWarning": "Cela va régénérer les identifiants. Le site restera connecté jusqu'à ce que vous le redémarriez manuellement et utilisez les nouveaux identifiants.", + "clientRegenerateAndDisconnect": "Régénérer et déconnecter", + "clientRegenerateAndDisconnectConfirmation": "Êtes-vous sûr de vouloir régénérer les identifiants et déconnecter ce client?", + "clientRegenerateAndDisconnectWarning": "Cela va régénérer les identifiants et déconnecter immédiatement le client. Le client devra être redémarré avec les nouveaux identifiants.", + "clientRegenerateCredentialsConfirmation": "Êtes-vous sûr de vouloir régénérer les identifiants pour ce client ?", + "clientRegenerateCredentialsWarning": "Cela va régénérer les identifiants. Le client restera connecté jusqu'à ce que vous le redémarriez manuellement et utilisiez les nouveaux identifiants.", + "remoteExitNodeRegenerateAndDisconnect": "Régénérer et déconnecter", + "remoteExitNodeRegenerateAndDisconnectConfirmation": "Êtes-vous sûr de vouloir régénérer les identifiants et déconnecter ce noeud de sortie distant ?", + "remoteExitNodeRegenerateAndDisconnectWarning": "Cela va régénérer les identifiants et déconnecter immédiatement le noeud de sortie distant. Le noeud de sortie distant devra être redémarré avec les nouveaux identifiants.", + "remoteExitNodeRegenerateCredentialsConfirmation": "Êtes-vous sûr de vouloir régénérer les informations d'identification pour ce noeud de sortie distant ?", + "remoteExitNodeRegenerateCredentialsWarning": "Cela va régénérer les identifiants. Le noeud de sortie distant restera connecté jusqu'à ce que vous le redémarriez manuellement et utilisez les nouveaux identifiants." }