From e3bf2be0533f555fbb5ce7c007f4a207af358d0b Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Thu, 28 May 2026 16:17:31 -0700 Subject: [PATCH] New translations en-us.json (French) [ci skip] --- messages/fr-FR.json | 155 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 143 insertions(+), 12 deletions(-) diff --git a/messages/fr-FR.json b/messages/fr-FR.json index 02f5e0d41..617f4cb68 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -208,11 +208,33 @@ "resourcesSearch": "Chercher des ressources...", "resourceAdd": "Ajouter une ressource", "resourceErrorDelte": "Erreur lors de la de suppression de la ressource", + "resourcePoliciesTitle": "Manage Resource Policies", + "resourcePoliciesAttachedResourcesColumnTitle": "Attached resources", + "resourcePoliciesAttachedResources": "{count} resource(s)", + "resourcePoliciesAttachedResourcesEmpty": "no resources", + "resourcePoliciesDescription": "Create and manage authentication policies to control access to your resources", + "resourcePoliciesSearch": "Search policies...", + "resourcePoliciesAdd": "Add Policy", + "resourcePoliciesDefaultBadgeText": "Default policy", + "resourcePoliciesCreate": "Create Resource Policy", + "resourcePoliciesCreateDescription": "Follow the steps below to create a new policy", + "resourcePolicyName": "Policy Name", + "resourcePolicyNameDescription": "Give this policy a name to identify it across your resources", + "resourcePolicyNamePlaceholder": "e.g. Internal Access Policy", + "resourcePoliciesSeeAll": "See All Policies", + "resourcePolicyAuthMethodAdd": "Add Authentication Method", + "resourcePolicyOtpEmailAdd": "Add OTP emails", + "resourcePolicyRulesAdd": "Add Rules", + "resourcePolicyAuthMethodsDescription": "Allow access to resources via additional auth methods", + "resourcePolicyUsersRolesDescription": "Configure which users and roles can visit associated resources", + "rulesResourcePolicyDescription": "Configure rules to control access resources associated to this policy", "authentication": "Authentification", "protected": "Protégé", "notProtected": "Non Protégé", "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 ?", + "resourcePolicyMessageRemove": "Once removed, the resource policy will no longer be accessible. All resources associated with the resource will be unlinked and left without authentication.", + "resourcePolicyQuestionRemove": "Are you sure you want to remove the resource policy from the organization?", "resourceHTTP": "Ressource HTTPS", "resourceHTTPDescription": "Proxy les demandes sur HTTPS en utilisant un nom de domaine entièrement qualifié.", "resourceRaw": "Ressource TCP/UDP brute", @@ -220,8 +242,9 @@ "resourceRawDescriptionCloud": "Requêtes de proxy sur TCP/UDP brute en utilisant un numéro de port. Nécessite des sites pour se connecter à un noeud distant.", "resourceCreate": "Créer une ressource", "resourceCreateDescription": "Suivez les étapes ci-dessous pour créer une nouvelle ressource", + "resourceCreateGeneralDescription": "Configure the basic resource settings including the name and the type", "resourceSeeAll": "Voir toutes les ressources", - "resourceInfo": "Informations sur la ressource", + "resourceCreateGeneral": "General", "resourceNameDescription": "Ceci est le nom d'affichage de la ressource.", "siteSelect": "Sélectionnez un nœud", "siteSearch": "Chercher un nœud", @@ -231,12 +254,15 @@ "noCountryFound": "Aucun pays trouvé.", "siteSelectionDescription": "Ce site fournira la connectivité à la cible.", "resourceType": "Type de ressource", - "resourceTypeDescription": "Déterminer comment accéder à la ressource", + "resourceTypeDescription": "This controls the resource protocol and how it will be rendered in the browser. This can’t be changed later.", + "resourceDomainDescription": "The resource will be served at this fully qualified domain name.", "resourceHTTPSSettings": "Paramètres HTTPS", "resourceHTTPSSettingsDescription": "Configurer comment la ressource sera accédée via HTTPS", + "resourcePortDescription": "The external port on the Pangolin instance or node where the resource will be accessible.", "domainType": "Type de domaine", "subdomain": "Sous-domaine", "baseDomain": "Domaine racine", + "configure": "Configure", "subdomnainDescription": "Le sous-domaine où la ressource sera accessible.", "resourceRawSettings": "Paramètres TCP/UDP", "resourceRawSettingsDescription": "Configurer comment la ressource sera accédée via TCP/UDP", @@ -253,8 +279,27 @@ "resourceLearnRaw": "Apprenez à configurer les ressources TCP/UDP", "resourceBack": "Retour aux ressources", "resourceGoTo": "Aller à la ressource", + "resourcePolicyDelete": "Delete Resource Policy", + "resourcePolicyDeleteConfirm": "Confirm Delete Resource Policy", "resourceDelete": "Supprimer la ressource", "resourceDeleteConfirm": "Confirmer la suppression de la ressource", + "labelDelete": "Delete Label", + "labelAdd": "Add Label", + "labelCreateSuccessMessage": "Label Created Successfully", + "labelEditSuccessMessage": "Label Modified Successfully", + "labelNameField": "Label Name", + "labelColorField": "Label Color", + "labelPlaceholder": "Ex: homelab", + "labelCreate": "Create Label", + "createLabelDialogTitle": "Create Label", + "createLabelDialogDescription": "Create a new label that can be attached to this organization", + "labelEdit": "Edit Label", + "editLabelDialogTitle": "Update Label", + "editLabelDialogDescription": "Edit a new label that can be attached to this organization", + "labelDeleteConfirm": "Confirm Delete Label", + "labelErrorDelete": "Failed to delete label", + "labelMessageRemove": "This action is permanent. All sites, resources, and clients tagged with this label will be untagged.", + "labelQuestionRemove": "Are you sure you want to remove the label from the organization?", "visibility": "Visibilité", "enabled": "Activé", "disabled": "Désactivé", @@ -265,6 +310,8 @@ "rules": "Règles", "resourceSettingDescription": "Configurer les paramètres de la ressource", "resourceSetting": "Réglages de {resourceName}", + "resourcePolicySettingDescription": "Configure the settings on the resource policy", + "resourcePolicySetting": "{policyName} Settings", "alwaysAllow": "Outrepasser l'authentification", "alwaysDeny": "Bloquer l'accès", "passToAuth": "Passer à l'authentification", @@ -630,7 +677,7 @@ "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 TLS", + "proxyEnableSSL": "Enable TLS", "proxyEnableSSLDescription": "Activer le cryptage SSL/TLS pour des connexions HTTPS sécurisées vers les cibles.", "target": "Cible", "configureTarget": "Configurer les cibles", @@ -747,6 +794,16 @@ "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.", "rulesSubmit": "Enregistrer les règles", + "policyErrorCreate": "Error creating policy", + "policyErrorCreateDescription": "An error occurred when creating the policy", + "policyErrorCreateMessageDescription": "An unexpected error occurred", + "policyErrorUpdate": "Error updating policy", + "policyErrorUpdateDescription": "An error occurred when updating the policy", + "policyErrorUpdateMessageDescription": "An unexpected error occurred", + "policyCreatedSuccess": "Resource policy succesfully created", + "policyUpdatedSuccess": "Resource policy succesfully updated", + "authMethodsSave": "Save auth methods", + "rulesSave": "Save Rules", "resourceErrorCreate": "Erreur lors de la création de la ressource", "resourceErrorCreateDescription": "Une erreur s'est produite lors de la création de la ressource", "resourceErrorCreateMessage": "Erreur lors de la création de la ressource :", @@ -810,6 +867,16 @@ "pincodeAdd": "Ajouter un code PIN", "pincodeRemove": "Supprimer le code PIN", "resourceAuthMethods": "Méthodes d'authentification", + "resourcePolicyAuthMethodsEmpty": "No authentication method", + "resourcePolicyOtpEmpty": "No one time password", + "resourcePolicyReadOnly": "This policy is Read only", + "resourcePolicyReadOnlyDescription": "This resource policy is shared accross multiple resources, you cannot edit it on this page.", + "resourcePolicyTypeSave": "Save Resource type", + "resourcePolicySelect": "Select resource policy", + "resourcePolicySelectError": "Select a resource policy", + "resourcePolicyNotFound": "Policy not found", + "resourcePolicySearch": "Search policies", + "resourcePolicyRulesEmpty": "No authentication rules", "resourceAuthMethodsDescriptions": "Permettre l'accès à la ressource via des méthodes d'authentification supplémentaires", "resourceAuthSettingsSave": "Enregistré avec succès", "resourceAuthSettingsSaveDescription": "Les paramètres d'authentification ont été enregistrés", @@ -845,6 +912,12 @@ "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.", + "resourcePolicySelectTitle": "Resource Access Policy", + "resourcePolicySelectDescription": "Select the resource policy type for authentication", + "resourcePolicyInline": "Inline Resource Policy", + "resourcePolicyInlineDescription": "Access Policy scoped to only this resource", + "resourcePolicyShared": "Shared Resource Policy", + "resourcePolicySharedDescription": "Access Policy shared accross multiple resources", "resourceUsersRoles": "Contrôles d'accès", "resourceUsersRolesDescription": "Configurer quels utilisateurs et rôles peuvent visiter cette ressource", "resourceUsersRolesSubmit": "Enregistrer les contrôles d'accès", @@ -1140,6 +1213,18 @@ "idpErrorConnectingTo": "Un problème est survenu lors de la connexion à {name}. Veuillez contacter votre administrateur.", "idpErrorNotFound": "IdP introuvable", "inviteInvalid": "Invitation invalide", + "labels": "Labels", + "orgLabelsDescription": "Manage labels in this organization.", + "addLabels": "Add labels", + "siteLabelsTab": "Labels", + "siteLabelsDescription": "Manage labels associated with this site.", + "labelsNotFound": "Labels not found", + "labelSearch": "Search labels", + "accessLabelFilterCount": "{count, plural, one {# label} other {# labels}}", + "labelOverflowCount": "+{count, plural, one {# label} other {# labels}}", + "accessLabelFilterClear": "Clear label filters", + "selectColor": "Select color", + "createNewLabel": "Create new org label \"{label}\"", "inviteInvalidDescription": "Le lien d'invitation n'est pas valide.", "inviteErrorWrongUser": "L'invitation n'est pas pour cet utilisateur", "inviteErrorUserNotExists": "L'utilisateur n'existe pas. Veuillez d'abord créer un compte.", @@ -1374,6 +1459,8 @@ "sidebarResources": "Ressource", "sidebarProxyResources": "Publique", "sidebarClientResources": "Privé", + "sidebarPolicies": "Policies", + "sidebarResourcePolicies": "Resources", "sidebarAccessControl": "Contrôle d'accès", "sidebarLogsAndAnalytics": "Journaux & Analytiques", "sidebarTeam": "Equipe", @@ -1557,7 +1644,8 @@ "standaloneHcFilterSiteIdFallback": "Site {id}", "standaloneHcFilterResourceIdFallback": "Ressource {id}", "blueprints": "Configs", - "blueprintsDescription": "Appliquer les configurations déclaratives et afficher les exécutions précédentes", + "blueprintsLog": "Blueprints Log", + "blueprintsDescription": "View past blueprint applications and their results", "blueprintAdd": "Ajouter une Config", "blueprintGoBack": "Voir toutes les Configs", "blueprintCreate": "Créer une Config", @@ -1575,7 +1663,17 @@ "contents": "Contenus", "parsedContents": "Contenu analysé (lecture seule)", "enableDockerSocket": "Activer la Config Docker", - "enableDockerSocketDescription": "Activer le ramassage d'étiquettes de socket Docker pour les étiquettes de plan. Le chemin de socket doit être fourni à Newt.", + "enableDockerSocketDescription": "Enable Docker Socket label scraping for blueprint labels. Socket path must be provided to the site connector. Read about how this works in the documentation.", + "newtAutoUpdate": "Enable Site Auto-Update", + "newtAutoUpdateDescription": "When enabled, site connectors will automatically update to the latest version when a new release is available.", + "siteAutoUpdate": "Site Auto-Update", + "siteAutoUpdateLabel": "Enable Auto-Update", + "siteAutoUpdateDescription": "Control whether this site's connector automatically downloads the latest version.", + "siteAutoUpdateOrgDefault": "Organization default: {state}", + "siteAutoUpdateOverriding": "Overriding organization setting", + "siteAutoUpdateResetToOrg": "Reset to Organization Default", + "siteAutoUpdateEnabled": "enabled", + "siteAutoUpdateDisabled": "disabled", "viewDockerContainers": "Voir les conteneurs Docker", "containersIn": "Conteneurs en {siteName}", "selectContainerDescription": "Sélectionnez n'importe quel conteneur à utiliser comme nom d'hôte pour cette cible. Cliquez sur un port pour utiliser un port.", @@ -1620,6 +1718,7 @@ "certificateStatus": "Certificat", "certificateStatusAutoRefreshHint": "L'état se rafraîchit automatiquement.", "loading": "Chargement", + "loadingEllipsis": "Loading...", "loadingAnalytics": "Chargement de l'analyse", "restart": "Redémarrer", "domains": "Domaines", @@ -1846,6 +1945,7 @@ "billingManageLicenseSubscription": "Gérer votre abonnement pour les clés de licence auto-hébergées payantes", "billingCurrentKeys": "Clés actuelles", "billingModifyCurrentPlan": "Modifier le plan actuel", + "billingManageLicenseSubscriptionDescription": "Manage your subscription for paid self-hosted license keys and download invoices.", "billingConfirmUpgrade": "Confirmer la mise à niveau", "billingConfirmDowngrade": "Confirmer la rétrogradation", "billingConfirmUpgradeDescription": "Vous êtes sur le point de mettre à niveau votre offre. Examinez les nouvelles limites et les nouveaux prix ci-dessous.", @@ -1943,7 +2043,36 @@ "timeIsInSeconds": "Le temps est exprimé en secondes", "requireDeviceApproval": "Exiger les autorisations de l'appareil", "requireDeviceApprovalDescription": "Les utilisateurs ayant ce rôle ont besoin de nouveaux périphériques approuvés par un administrateur avant de pouvoir se connecter et accéder aux ressources.", - "sshAccess": "Accès SSH", + "sshSettings": "SSH Settings", + "rdpSettings": "RDP Settings", + "vncSettings": "VNC Settings", + "sshServer": "SSH Server", + "rdpServer": "RDP Server", + "vncServer": "VNC Server", + "sshServerDescription": "Set up the authentication method, daemon location, and server destination", + "rdpServerDescription": "Configure the destination and port of the RDP server", + "vncServerDescription": "Configure the destination and port of the VNC server", + "sshServerMode": "Mode", + "sshServerModeStandard": "Standard SSH Server", + "sshServerModePangolin": "Pangolin SSH", + "sshServerModeStandardDescription": "Routes commands over network to an SSH server such as OpenSSH.", + "sshServerModeNative": "Native SSH Server", + "sshServerModeNativeDescription": "Executes commands directly on the host via the Site Connector. No network config required.", + "sshAuthenticationMethod": "Authentication Method", + "sshAuthMethodManual": "Manual Authentication", + "sshAuthMethodManualDescription": "Requires existing host credentials. Bypasses automatic provisioning.", + "sshAuthMethodAutomated": "Automated Provisioning", + "sshAuthMethodAutomatedDescription": "Automatically creates users, groups, and sudo permissions on host.", + "sshAuthDaemonLocation": "Auth Daemon Location", + "sshDaemonLocationSiteDescription": "Executes locally on the machine hosting the site connector.", + "sshDaemonLocationRemote": "On Remote Host", + "sshDaemonLocationRemoteDescription": "Executes on a separate target machine on the same network.", + "sshDaemonDisclaimer": "Ensure your target host is properly configured to run the auth daemon before completing this setup, or provisioning will fail.", + "sshDaemonPort": "Daemon Port", + "sshServerDestination": "Server Destination", + "sshServerDestinationDescription": "Configure the destination and port of the SSH server", + "destination": "Destination", + "bgTargetMultiSiteDisclaimer": "Selecting multiple sites enables resilient routing and failover for high availability.", "roleAllowSsh": "Autoriser SSH", "roleAllowSshAllow": "Autoriser", "roleAllowSshDisallow": "Interdire", @@ -1957,7 +2086,7 @@ "sshSudoModeCommandsDescription": "L'utilisateur ne peut exécuter que les commandes spécifiées avec sudo.", "sshSudo": "Autoriser sudo", "sshSudoCommands": "Commandes Sudo", - "sshSudoCommandsDescription": "Liste des commandes séparées par des virgules que l'utilisateur est autorisé à exécuter avec sudo.", + "sshSudoCommandsDescription": "Comma separated list of commands the user is allowed to run with sudo. Absolute paths must be used.", "sshCreateHomeDir": "Créer un répertoire personnel", "sshUnixGroups": "Groupes Unix", "sshUnixGroupsDescription": "Groupes Unix séparés par des virgules pour ajouter l'utilisateur sur l'hôte cible.", @@ -2051,7 +2180,7 @@ "editInternalResourceDialogModeHttps": "HTTPS", "editInternalResourceDialogModeSsh": "SSH", "editInternalResourceDialogScheme": "Méthode HTTP", - "editInternalResourceDialogEnableSsl": "Activer TLS", + "editInternalResourceDialogEnableSsl": "Enable TLS", "editInternalResourceDialogEnableSslDescription": "Activer le cryptage SSL/TLS pour des connexions HTTPS sécurisées vers la destination.", "editInternalResourceDialogDestination": "Destination", "editInternalResourceDialogDestinationHostDescription": "L'adresse IP ou le nom d'hôte de la ressource sur le réseau du site.", @@ -2102,7 +2231,7 @@ "createInternalResourceDialogModeSsh": "SSH", "scheme": "Méthode HTTP", "createInternalResourceDialogScheme": "Méthode HTTP", - "createInternalResourceDialogEnableSsl": "Activer TLS", + "createInternalResourceDialogEnableSsl": "Enable TLS", "createInternalResourceDialogEnableSslDescription": "Activer le cryptage SSL/TLS pour des connexions HTTPS sécurisées vers la destination.", "createInternalResourceDialogDestination": "Destination", "createInternalResourceDialogDestinationHostDescription": "L'adresse IP ou le nom d'hôte de la ressource sur le réseau du site.", @@ -2235,7 +2364,7 @@ "description": "Serveur Pangolin auto-hébergé avec des cloches et des sifflets supplémentaires", "introTitle": "Pangolin auto-hébergé géré", "introDescription": "est une option de déploiement conçue pour les personnes qui veulent de la simplicité et de la fiabilité tout en gardant leurs données privées et auto-hébergées.", - "introDetail": "Avec cette option, vous exécutez toujours votre propre nœud Pangolin - vos tunnels, la terminaison TLS et le trafic restent sur votre serveur. La différence est que la gestion et la surveillance sont gérées via notre tableau de bord du cloud, qui déverrouille un certain nombre d'avantages :", + "introDetail": "With this option, you still run your own Pangolin node - your tunnels, TLS termination, and traffic all stay on your server. The difference is that management and monitoring are handled through our cloud dashboard, which unlocks a number of benefits:", "benefitSimplerOperations": { "title": "Opérations plus simples", "description": "Pas besoin de faire tourner votre propre serveur de messagerie ou de configurer des alertes complexes. Vous obtiendrez des contrôles de santé et des alertes de temps d'arrêt par la suite." @@ -2939,7 +3068,7 @@ "learnMore": "En savoir plus", "backToHome": "Retour à l'accueil", "needToSignInToOrg": "Besoin d'utiliser le fournisseur d'identité de votre organisation ?", - "maintenanceMode": "Mode de maintenance", + "maintenanceMode": "Maintenance Page", "maintenanceModeDescription": "Afficher une page de maintenance aux visiteurs", "maintenanceModeType": "Type de mode de maintenance", "showMaintenancePage": "Afficher une page de maintenance aux visiteurs", @@ -2969,6 +3098,7 @@ "maintenanceScreenEstimatedCompletion": "Achèvement estimé :", "createInternalResourceDialogDestinationRequired": "La destination est requise", "available": "Disponible", + "disabledResourceDescription": "When disabled, the resource will be inaccessible by everyone.", "archived": "Archivé", "noArchivedDevices": "Aucun périphérique archivé trouvé", "deviceArchived": "Appareil archivé", @@ -3298,5 +3428,6 @@ "memberPortalResourceDisabled": "Ressource désactivée", "memberPortalShowingResources": "Affichage de {start}-{end} sur {total} ressources", "memberPortalPrevious": "Précédent", - "memberPortalNext": "Suivant" + "memberPortalNext": "Suivant", + "httpSettings": "HTTP Settings" }