From cb3b8644c5b970057aa66ff37ad0e1e3238bc154 Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Fri, 16 Oct 2026 13:56:26 -0400 Subject: [PATCH] New translations en-us.json (French) [ci skip] --- messages/fr-FR.json | 139 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 134 insertions(+), 5 deletions(-) diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 2bd194b96..cf6f26806 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -295,7 +295,8 @@ "resourceTypeDescription": "Cela contrôle le protocole de ressource et ne peut pas être modifié ultérieurement.", "resourceTypeSearch": "Rechercher des types de ressource...", "resourceTypeNotFound": "Aucun type de ressource trouvé", - "resourceTypeHttpDescription": "Proxy du trafic web via HTTPS en utilisant un nom de domaine", + "resourceTypeHttp": "HTTP(S)", + "resourceTypeHttpDescription": "Proxy du trafic web via HTTP ou HTTPS en utilisant un nom de domaine", "resourceTypeInferenceDescription": "Acheminer les requêtes AI via les fournisseurs attachés", "resourceTypeSshDescription": "Accéder à un serveur SSH depuis le navigateur", "resourceTypeRdpDescription": "Accéder à un bureau distant depuis le navigateur", @@ -591,7 +592,7 @@ "licenseReckeckAll": "Revérifier toutes les clés", "licenseSiteUsage": "Utilisation des sites", "licenseSiteUsageDecsription": "Voir le nombre de sites utilisant cette licence.", - "licenseNoSiteLimit": "Il n'y a pas de limite sur le nombre de sites utilisant un hôte non autorisé.", + "licenseNoSiteLimit": "Il n'y a pas de limite sur le nombre de sites pour cet hôte.", "licensePurchase": "Acheter une licence", "licensePurchaseSites": "Acheter des sites supplémentaires", "licenseSitesUsedMax": "{usedSites} des {maxSites} sites utilisés", @@ -600,9 +601,9 @@ "licenseUsageDescription": "Voir le nombre d'utilisateurs et de sites licenciés pour cet hôte", "licenseUsageSites": "Nœuds", "licenseUsageUsers": "Utilisateurs", - "licenseNoUserLimit": "Il n'y a pas de limite sur le nombre d'utilisateurs utilisant un hôte non autorisé", + "licenseNoUserLimit": "Il n'y a pas de limite sur le nombre d'utilisateurs pour cet hôte.", "licenseUsersUsedMax": "{usedUsers} des {maxUsers} utilisateurs utilisés", - "licenseUsersUsed": "{count, plural, =0 {# users} one {# user} other {# users}}", + "licenseUsersUsed": "{count, plural, =0 {# utilisateurs} one {# utilisateur} other {# utilisateurs}}", "licenseUnlimited": "Illimité", "licenseTierLabel": "Niveau", "licensePurchaseDescription": "Choisissez le nombre de sites que vous voulez {selectedMode, select, license {achetez une licence. Vous pouvez toujours ajouter plus de sites plus tard.} other {ajouter à votre licence existante.}}", @@ -793,6 +794,17 @@ "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.", + "loadBalancingStrategy": "Stratégie d'équilibrage de charge", + "loadBalancingStrategySearch": "Rechercher des stratégies...", + "loadBalancingStrategyNotFound": "Aucune stratégie trouvée", + "loadBalancingStrategy_wrr": "Tourniquet", + "loadBalancingStrategy_wrr_description": "Distribuez les requêtes uniformément entre les cibles en rotation.", + "loadBalancingStrategy_p2c": "Puissance de deux choix", + "loadBalancingStrategy_p2c_description": "Choisissez deux cibles au hasard et envoyez la demande à celle qui a le moins de connexions actives.", + "loadBalancingStrategy_hrw": "Hachage de l'adresse IP du client", + "loadBalancingStrategy_hrw_description": "Hachez l'IP du client pour que le même client soit systématiquement routé vers la même cible.", + "loadBalancingStrategy_leasttime": "Temps de réponse le plus court", + "loadBalancingStrategy_leasttime_description": "Envoyer les demandes à la cible avec le temps de réponse le plus rapide et le moins de connexions actives.", "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 à l'arrière-plan.", @@ -1514,6 +1526,11 @@ "actionGetVirtualApiKey": "Obtenir une clé API virtuelle", "actionListVirtualApiKeys": "Lister les clés API virtuelles", "actionUpdateVirtualApiKey": "Mettre à jour une clé API virtuelle", + "actionCreateRedirect": "Créer une redirection", + "actionDeleteRedirect": "Supprimer la redirection", + "actionGetRedirect": "Obtenir la redirection", + "actionListRedirects": "Lister les redirections", + "actionUpdateRedirect": "Mettre à jour la redirection", "actionApplyBlueprint": "Appliquer la Config", "actionListBlueprints": "Lister les plans", "actionGetBlueprint": "Obtenez un plan", @@ -1567,6 +1584,9 @@ "actionListUsers": "Lister les utilisateurs", "actionAddUserRole": "Ajouter un rôle utilisateur", "actionSetUserOrgRoles": "Définir les rôles de l'utilisateur", + "actionAddClientRole": "Ajouter un rôle de client machine", + "actionRemoveClientRole": "Retirer un rôle de client machine", + "actionSetClientRoles": "Définir les rôles de client machine", "actionGenerateAccessToken": "Générer un jeton d'accès", "actionDeleteAccessToken": "Supprimer un jeton d'accès", "actionListAccessTokens": "Lister les jetons d'accès", @@ -2138,6 +2158,7 @@ "resourceBudgetSettingsDescription": "Configurez comment ce portail AI limite l'utilisation en fonction des dépenses ou des limites de jetons", "sidebarApiKeys": "Clés API", "sidebarOrgs": "Organisations", + "sidebarRedirects": "Redirections", "sidebarProvisioning": "Mise en place", "sidebarSettings": "Réglages", "sidebarAllUsers": "Tous les utilisateurs", @@ -2372,6 +2393,12 @@ "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", + "exportAsBlueprint": "Exporter en tant que modèle", + "exportBlueprintTitle": "Exporter un modèle", + "exportBlueprintDescription": "Télécharger un extrait YAML de modèle pour \"{name}\" qui peut être appliqué pour recréer cette ressource.", + "exportBlueprintError": "Échec de la génération du modèle", + "copy": "Copier", + "download": "Télécharger", "searchBlueprintProgress": "Rechercher des configs...", "appliedAt": "Appliqué à", "source": "Source", @@ -2439,6 +2466,7 @@ "domains": "Domaines", "domainsDescription": "Créer et gérer les domaines disponibles dans l'organisation", "domainsSearch": "Rechercher des domaines...", + "domainsNotFound": "Aucun domaine trouvé", "domainAdd": "Ajouter un domaine", "domainAddDescription": "Inscrire un nouveau domaine à l'organisation", "domainCreate": "Créer un domaine", @@ -2501,6 +2529,7 @@ "pangolinUpdateAvailableReleaseNotes": "Voir les notes de publication", "newtUpdateAvailable": "Mise à jour disponible", "newtUpdateAvailableInfo": "Une nouvelle version de Newt est disponible. Veuillez mettre à jour vers la dernière version pour une meilleure expérience.", + "cliUpdateAvailableInfo": "Une nouvelle version de l'application CLI de Pangolin est disponible. Veuillez mettre à jour vers la dernière version pour une meilleure expérience.", "pangolinNodeUpdateAvailableInfo": "Une nouvelle version de Pangolin Node est disponible. Veuillez mettre à jour vers la dernière version pour une meilleure expérience.", "domainPickerEnterDomain": "Domaine", "domainPickerPlaceholder": "monapp.exemple.com", @@ -2581,6 +2610,8 @@ "billingModifyLicenses": "Modifier l'abonnement à la licence", "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.", + "redirectDomainNotFoundDescription": "Cette redirection est désactivée car le domaine n'existe plus dans notre système. Veuillez définir un nouveau domaine pour cette redirection ou son domaine de ressource attaché.", + "redirectDomainSelectedDomainNotFound": "Cette redirection est désactivée car son domaine n'existe plus. Sélectionnez un domaine différent ou attachez la redirection à une ressource qui possède un domaine valide.", "failed": "Échec", "createNewOrgDescription": "Créer une nouvelle organisation", "organization": "Organisation", @@ -2735,6 +2766,11 @@ "clientUpdatedDescription": "Le client a été mis à jour.", "clientUpdateFailed": "Échec de la mise à jour du client", "clientUpdateError": "Une erreur s'est produite lors de la mise à jour du client.", + "machineClientRolesDescription": "Attribuer des rôles à ce client machine. Il pourra accéder aux ressources privées accordées à ces rôles.", + "machineClientRolesUpdated": "Rôles mis à jour", + "machineClientRolesUpdatedDescription": "Les rôles du client machine ont été mis à jour.", + "machineClientRolesUpdateFailed": "Échec de la mise à jour des rôles", + "machineClientRolesUpdateError": "Une erreur s'est produite lors de la mise à jour des rôles du client machine.", "sitesFetchFailed": "Échec de la récupération des sites", "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.", @@ -3543,7 +3579,7 @@ "pathMatchExactHelp": "Exemple: /api ne correspond qu'à /api", "pathMatchRegexHelp": "Exemple: ^/api/.* correspond à /api/anything", "pathRewriteModalTitle": "Configurer la réécriture du chemin", - "pathRewriteModalDescription": "Transformez le chemin correspondant avant de l'envoyer à la cible.", + "pathRewriteModalDescription": "Transformez le chemin correspondant avant de l'envoyer à la destination.", "pathRewriteType": "Type de réécriture", "pathRewritePrefixOption": "Préfixe - Remplacer le préfixe", "pathRewriteExactOption": "Exactement - Remplacer le chemin entier", @@ -3560,6 +3596,7 @@ "pathRewriteExact": "Exactement", "pathRewriteRegex": "Regex", "pathRewriteStrip": "Retirer", + "pathRewriteStripPrefix": "Enlever le préfixe", "pathRewriteStripLabel": "bande", "sidebarEnableEnterpriseLicense": "Activer la licence Entreprise", "cannotbeUndone": "Cela ne peut pas être annulé.", @@ -3589,6 +3626,7 @@ "validEmail": "Email valide", "validSSO": "SSO valide", "validVirtualAPIKey": "Clé API Virtuelle Valide", + "allowedRedirect": "Redirection autorisée", "view": "Afficher", "configManaged": "Configuration gérée", "connectedClient": "Client connecté", @@ -3899,6 +3937,39 @@ "learnMore": "En savoir plus", "backToHome": "Retour à l'accueil", "needToSignInToOrg": "Besoin d'utiliser le fournisseur d'identité de votre organisation ?", + "mtls": "mTLS", + "mtlsCaCertificates": "Certificats CA de confiance", + "mtlsCaCertificatesDescription": "Les clients doivent présenter un certificat signé par l'une de ces autorités de certification pour se connecter. Téléchargez uniquement des certificats CA publics, jamais une clé privée.", + "mtlsCertificateName": "Nom (optionnel)", + "mtlsCertificateNamePlaceholder": "Dispositif d'entreprise CA", + "mtlsCertificatePem": "Certificat CA (PEM)", + "mtlsCertificatePemDescription": "Collez un certificat encodé en PEM ou un lot de certificats, ou téléchargez un fichier .pem, .crt ou .cer.", + "mtlsUploadFile": "Télécharger un fichier", + "mtlsAddCertificate": "Ajouter un certificat CA", + "mtlsCertificateAdded": "Certificat CA ajouté", + "mtlsCertificateAddedDescription": "Les clients ayant des certificats signés par cette CA peuvent désormais être vérifiés.", + "mtlsCertificateErrorAdd": "Échec de l'ajout du certificat CA", + "mtlsCertificateErrorAddDescription": "Le certificat n'a pas pu être ajouté.", + "mtlsCertificateRemoved": "Certificat CA supprimé", + "mtlsCertificateErrorRemove": "Échec de la suppression du certificat CA", + "mtlsCertificateErrorRemoveDescription": "Le certificat n'a pas pu être supprimé.", + "mtlsLastCertificateRemoved": "mTLS a été désactivé car le dernier certificat CA a été supprimé.", + "mtlsNoCertificates": "Aucun certificat CA ajouté pour le moment", + "mtlsRemoveCertificate": "Supprimer le certificat CA", + "mtlsExpired": "Expiré", + "mtlsExpiresSoon": "Expire bientôt", + "mtlsExpiresOn": "Expire le {date}", + "mtlsIssuedBy": "Émis par {issuer}", + "mtlsFingerprint": "Empreinte SHA-256", + "mtlsEnforcement": "Application stricte des certificats clients", + "mtlsEnforcementDescription": "Contrôler si cette ressource nécessite un certificat client.", + "enableMtls": "Exiger un certificat client", + "enableMtlsDescription": "Rejeter les connexions qui ne présentent pas un certificat valide d'une CA de confiance. Cela est vérifié pendant la poignée de main TLS, avant toute autre méthode d'authentification.", + "mtlsRequiresCertificate": "Ajouter au moins un certificat CA pour activer mTLS.", + "mtlsRequiresSsl": "mTLS nécessite SSL. Activez SSL dans les paramètres HTTP de cette ressource en premier.", + "mtlsForwardedHeadersTitle": "Les détails du certificat client sont transmis", + "mtlsForwardedHeadersDescription": "Votre backend reçoit les informations vérifiées du certificat, de l'émetteur, du numéro de série et de la validité dans l'en-tête X-Forwarded-Tls-Client-Cert-Info.", + "mtlsHandshakeNote": "Les clients sans certificat valide échouent à la poignée de main TLS, donc les navigateurs affichent une erreur de connexion au lieu d'une page de connexion.", "maintenanceMode": "Page de maintenance", "maintenanceModeDescription": "Afficher une page de maintenance aux visiteurs", "maintenanceModeType": "Type de mode de maintenance", @@ -4426,6 +4497,64 @@ "sessionToolbarHide": "Masquer la barre d'outils", "actionUpdateSiteApprovals": "Mettre à jour les approbations de site", "check": "Vérifier", + "redirectsTitle": "Gérer les redirections", + "redirectsDescription": "Transférer les demandes d'un chemin de vos domaines ou ressources vers une autre URL.", + "redirectsSearch": "Rechercher des redirections...", + "redirectAdd": "Ajouter une redirection", + "redirectSource": "Source", + "redirectDestination": "Destination", + "redirectAttachedTo": "Attaché à", + "redirectFilterAnyDomain": "Tous les domaines", + "redirectFilterAnyResource": "Toutes les ressources", + "redirectFilterDomainFallback": "Domaine {id}", + "redirectFilterResourceFallback": "Ressource {id}", + "redirectType": "Type", + "redirectTypePermanent": "Permanent (308)", + "redirectTypeTemporary": "Temporaire (307)", + "redirectUpdated": "Redirection mise à jour avec succès", + "redirectErrorUpdate": "Échec de la mise à jour de la redirection", + "redirectDeleted": "Redirection supprimée avec succès", + "redirectErrorDelete": "Échec de la suppression de la redirection", + "redirectDelete": "Supprimer la redirection", + "redirectDeleteConfirm": "Confirmer la suppression de la redirection", + "redirectQuestionRemove": "Êtes-vous sûr de vouloir supprimer cette redirection ?", + "redirectMessageRemove": "Une fois supprimé, les demandes correspondant à cette redirection ne seront plus transférées.", + "redirectDestinationHost": "Destination", + "redirectDestinationHostDescription": "Où les demandes sont envoyées, y compris le schéma tel que https://exemple.com", + "redirectDestinationHostRequired": "Entrez une destination", + "redirectSameDomainAsSource": "Même domaine que la source", + "redirectSameDomainAsSourceDescription": "Garder la destination sur le domaine source et changer seulement le chemin.", + "redirectDestinationHostInvalid": "Entrez une destination valide avec un schéma, tel que https://exemple.com", + "redirectMatchPathDescription": "À quels chemins entrants cette redirection s'applique-t-elle", + "redirectRewritePathDescription": "Optionnellement, changez le chemin avant de rediriger. Laissez vide pour conserver le chemin d'origine.", + "redirectRewritePathRequired": "Entrez un chemin de réécriture ou choisissez Retirer le préfixe", + "redirectMatchPathInvalidRegex": "Le chemin correspondant doit être une expression régulière valide", + "redirectPriorityInvalid": "Entrez un nombre entier entre 1 et 1000", + "redirectPriorityDescription": "Les routes de priorité supérieure sont évaluées en premier.", + "redirectCreate": "Créer une redirection", + "redirectCreateDescription": "Transférer les demandes correspondant à un chemin vers une autre URL.", + "redirectEditDescription": "Mettre à jour la façon dont cette redirection transfère les demandes entrantes.", + "redirectGoBack": "Retour aux redirections", + "redirectCreated": "Redirection créée avec succès", + "redirectErrorCreate": "Échec de la création de la redirection", + "redirectSettings": "Règle de redirection", + "selectedRedirectDomain": "Domaine sélectionné", + "selectedRedirectResource": "Ressource sélectionnée", + "redirectResourceNoDomain": "Cette ressource n'a pas de domaine", + "redirectSourceSectionDescription": "Choisissez le domaine ou la ressource et les chemins entrants que cette redirection concerne.", + "redirectDestinationSectionDescription": "Où les demandes correspondantes sont envoyées et comment le chemin change", + "redirectSettingsDescription": "Définir quels chemins correspondent et où les envoyer.", + "redirectEnabledDescription": "Désactivez la redirection pour arrêter de transférer les demandes sans la supprimer.", + "redirectAttachDomain": "Domaine", + "redirectAttachDomainDescription": "Appliquer cette redirection à un domaine entier.", + "redirectAttachResource": "Ressource", + "redirectAttachResourceDescription": "Appliquer cette redirection à une seule ressource.", + "redirectDomainRequired": "Sélectionnez un domaine pour attacher cette redirection", + "redirectResourceRequired": "Sélectionnez une ressource à laquelle attacher cette redirection", + "redirectPermanent": "Redirection permanente", + "redirectPermanentDescription": "Répondre avec 308 au lieu de 307. Les redirections permanentes sont mises en cache par les navigateurs.", + "redirectSslDescription": "Servir cette redirection sur HTTPS. Désactivez pour correspondre aux demandes sur HTTP simple.", + "redirectSslInheritedDescription": "Hérité du paramètre TLS de la ressource attachée.", "rulesErrorInvalidMethod": "Méthode HTTP invalide", "rulesErrorInvalidMethodDescription": "Sélectionnez au moins une méthode HTTP.", "rulesSelectMethods": "Sélectionner les méthodes"