diff --git a/messages/fr-FR.json b/messages/fr-FR.json
index 14a4a5365..f3262c3ef 100644
--- a/messages/fr-FR.json
+++ b/messages/fr-FR.json
@@ -123,6 +123,16 @@
"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",
+ "siteRestartTitle": "Redémarrer Site",
+ "siteRestartDescription": "Redémarrer le tunnel WireGuard pour ce site. Cela interrompra brièvement la connectivité.",
+ "siteRestartBody": "Utilisez cela si le tunnel du site ne fonctionne pas correctement et que vous souhaitez forcer une reconnexion sans redémarrer l'hôte.",
+ "siteRestartButton": "Redémarrer Site",
+ "siteRestartDialogMessage": "Êtes-vous sûr de vouloir redémarrer le tunnel WireGuard pour {name}? Le site perdra brièvement sa connectivité.",
+ "siteRestartWarning": "Le site sera brièvement déconnecté pendant le redémarrage du tunnel.",
+ "siteRestarted": "Site redémarré",
+ "siteRestartedDescription": "Le tunnel WireGuard a été redémarré.",
+ "siteErrorRestart": "Échec du redémarrage du site",
+ "siteErrorRestartDescription": "Une erreur s'est produite lors du redémarrage du site.",
"siteSettingDescription": "Configurer les paramètres du site",
"siteResourcesTab": "Ressources",
"siteResourcesNoneOnSite": "Ce site n'a pas encore de ressources publiques ou privées.",
@@ -1401,6 +1411,7 @@
"actionApplyBlueprint": "Appliquer la Config",
"actionListBlueprints": "Lister les plans",
"actionGetBlueprint": "Obtenez un plan",
+ "actionCreateOrgWideLauncherView": "Créer une vue de lancement au niveau de l'organisation",
"setupToken": "Jeton de configuration",
"setupTokenDescription": "Entrez le jeton de configuration depuis la console du serveur.",
"setupTokenRequired": "Le jeton de configuration est requis.",
@@ -2077,6 +2088,7 @@
"subnetPlaceholder": "Sous-réseau",
"addressDescription": "L'adresse interne du client. Doit être dans le sous-réseau de l'organisation.",
"selectSites": "Sélectionner des sites",
+ "selectLabels": "Sélectionner des étiquettes",
"sitesDescription": "Le client aura une connectivité vers les sites sélectionnés",
"clientInstallOlm": "Installer Olm",
"clientInstallOlmDescription": "Faites fonctionner Olm sur votre système",
@@ -2304,6 +2316,7 @@
"createInternalResourceDialogSite": "Site",
"selectSite": "Sélectionner un site...",
"multiSitesSelectorSitesCount": "{count, plural, one {# site} other {# sites}}",
+ "labelsSelectorLabelsCount": "{count, plural, one {# étiquette} other {# étiquettes}}",
"noSitesFound": "Aucun site trouvé.",
"createInternalResourceDialogProtocol": "Protocole",
"createInternalResourceDialogTcp": "TCP",
@@ -2378,6 +2391,21 @@
"sidebarRemoteExitNodes": "Nœuds distants",
"remoteExitNodeId": "ID",
"remoteExitNodeSecretKey": "Clé secrète",
+ "remoteExitNodeNetworkingTitle": "Paramètres du réseau",
+ "remoteExitNodeNetworkingDescription": "Configurez comment ce nœud de sortie distant acheminera le trafic et quels sites préfèrent se connecter via ce dernier. Fonctions avancées à utiliser avec les configurations réseau de retour.",
+ "remoteExitNodeNetworkingSave": "Enregistrer les paramètres",
+ "remoteExitNodeNetworkingSaveSuccessTitle": "Paramètres du réseau enregistrés",
+ "remoteExitNodeNetworkingSaveSuccessDescription": "Les paramètres du réseau ont été mis à jour avec succès.",
+ "remoteExitNodeNetworkingSaveError": "Échec de l'enregistrement des paramètres du réseau",
+ "remoteExitNodeNetworkingSubnetsTitle": "Sous-réseaux distants",
+ "remoteExitNodeNetworkingSubnetsDescription": "Définissez les plages CIDR que ce nœud de sortie distant acheminera. Saisissez un CIDR valide (par exemple 10.0.0.0/8) et appuyez sur Entrée pour ajouter.",
+ "remoteExitNodeNetworkingSubnetsPlaceholder": "Ajouter une plage CIDR (par exemple 10.0.0.0/8)",
+ "remoteExitNodeNetworkingSubnetsLoadError": "Échec du chargement des sous-réseaux",
+ "remoteExitNodeNetworkingLabelsTitle": "Étiquettes de préférences",
+ "remoteExitNodeNetworkingLabelsDescription": "Les sites avec ces étiquettes devront se connecter via ce nœud de sortie distant.",
+ "remoteExitNodeNetworkingLabelsButtonText": "Sélectionner des étiquettes...",
+ "remoteExitNodeNetworkingLabelsSearchPlaceholder": "Chercher des étiquettes...",
+ "remoteExitNodeNetworkingLabelsLoadError": "Échec du chargement des étiquettes",
"remoteExitNodeCreate": {
"title": "Créer un nœud distant",
"description": "Créez un nouveau nœud de relais et de serveur proxy distant auto-hébergé",
@@ -2556,6 +2584,7 @@
"idpGoogleDescription": "Fournisseur Google OAuth2/OIDC",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"subnet": "Sous-réseau",
+ "utilitySubnet": "Routeur utilitaire",
"subnetDescription": "Le sous-réseau de la configuration réseau de cette organisation.",
"customDomain": "Domaine personnalisé",
"authPage": "Pages d'authentification",
@@ -3541,6 +3570,55 @@
"memberPortalEmailWhitelist": "Liste blanche des e-mails",
"memberPortalResourceDisabled": "Ressource désactivée",
"memberPortalShowingResources": "Affichage de {start}-{end} sur {total} ressources",
+ "resourceLauncherTitle": "Lanceur de ressources",
+ "resourceLauncherDescription": "Afficher les détails des ressources et les lancer depuis un seul endroit",
+ "resourceLauncherSearchPlaceholder": "Rechercher sur tous les sites...",
+ "resourceLauncherDefaultView": "Par défaut",
+ "resourceLauncherSaveView": "Enregistrer la vue",
+ "resourceLauncherSaveToCurrentView": "Enregistrer dans la vue actuelle",
+ "resourceLauncherResetView": "Réinitialiser la vue",
+ "resourceLauncherSaveAsNewView": "Enregistrer comme nouvelle vue",
+ "resourceLauncherSaveAsNewViewDescription": "Donnez un nom à cette vue pour enregistrer vos filtres et mise en page actuels.",
+ "resourceLauncherSaveForEveryone": "Enregistrer pour tout le monde",
+ "resourceLauncherSaveForEveryoneDescription": "Partagez cette vue avec tous les membres de l'organisation. Lorsque décochée, la vue est visible uniquement par vous.",
+ "resourceLauncherMakePersonal": "Rendre personnel",
+ "resourceLauncherFilter": "Filtrer",
+ "resourceLauncherSort": "Trier",
+ "resourceLauncherSortAscending": "Trier par ordre croissant",
+ "resourceLauncherSortDescending": "Trier par ordre décroissant",
+ "resourceLauncherSettings": "Réglages",
+ "resourceLauncherGroupBy": "Grouper par",
+ "resourceLauncherGroupBySite": "Nœud",
+ "resourceLauncherGroupByLabel": "Étiquette",
+ "resourceLauncherLayout": "Mise en page",
+ "resourceLauncherLayoutGrid": "Grille",
+ "resourceLauncherLayoutList": "Liste",
+ "resourceLauncherShowLabels": "Afficher les étiquettes",
+ "resourceLauncherShowSiteTags": "Afficher les tags de site",
+ "resourceLauncherShowRecents": "Afficher les récents",
+ "resourceLauncherDeleteView": "Supprimer la vue",
+ "resourceLauncherViewAsAdmin": "Voir en tant qu'admin",
+ "resourceLauncherResourceDetailsDescription": "Afficher les détails pour cette ressource.",
+ "resourceLauncherUnlabeled": "Non étiqueté",
+ "resourceLauncherNoSite": "Aucun nœud",
+ "resourceLauncherNoResourcesInGroup": "Aucune ressource dans ce groupe",
+ "resourceLauncherEmptyStateTitle": "Aucune ressource disponible",
+ "resourceLauncherEmptyStateDescription": "Vous n'avez pas encore accès à des ressources. Contactez votre administrateur pour demander l'accès.",
+ "resourceLauncherEmptyStateNoResultsTitle": "Aucune ressource trouvée",
+ "resourceLauncherEmptyStateNoResultsDescription": "Aucune ressource ne correspond à votre recherche ou filtre actuel. Essayez de les ajuster pour trouver ce que vous cherchez.",
+ "resourceLauncherEmptyStateNoResultsWithQuery": "Aucune ressource ne correspond à \"{query}\". Essayez d'ajuster votre recherche ou de supprimer les filtres pour voir toutes les ressources.",
+ "resourceLauncherCopiedToClipboard": "Copié dans le presse-papiers",
+ "resourceLauncherCopiedAccessDescription": "L'accès à la ressource a été copié dans votre presse-papiers.",
+ "resourceLauncherViewNamePlaceholder": "Nom de la vue",
+ "resourceLauncherViewNameLabel": "Nom de la vue",
+ "resourceLauncherViewSaved": "Vue enregistrée",
+ "resourceLauncherViewSavedDescription": "Votre vue de lancement a été enregistrée.",
+ "resourceLauncherViewSaveFailed": "Échec de l'enregistrement de la vue",
+ "resourceLauncherViewSaveFailedDescription": "Impossible d'enregistrer la vue de lancement. Veuillez réessayer.",
+ "resourceLauncherViewDeleted": "Vue supprimée",
+ "resourceLauncherViewDeletedDescription": "La vue de lancement a été supprimée.",
+ "resourceLauncherViewDeleteFailed": "Impossible de supprimer la vue",
+ "resourceLauncherViewDeleteFailedDescription": "Impossible de supprimer la vue de lancement. Veuillez réessayer.",
"memberPortalPrevious": "Précédent",
"memberPortalNext": "Suivant",
"httpSettings": "Paramètres HTTP",
@@ -3576,7 +3654,8 @@
"sshPrivateKeyPlaceholder": "-----BEGIN OPENSSH PRIVATE KEY-----",
"sshPrivateKeyRequired": "Une clé privée est requise",
"vncTitle": "VNC",
- "vncSignInDescription": "Entrez votre mot de passe VNC pour vous connecter",
+ "vncSignInDescription": "Entrez vos identifiants VNC pour vous connecter",
+ "vncUsernameOptional": "Nom d'utilisateur (optionnel)",
"vncPasswordOptional": "Mot de passe (facultatif)",
"vncNoResourceTarget": "Aucune cible de ressource disponible",
"vncFailedToLoadNovnc": "Échec du chargement de noVNC",