# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-03-13 20:41-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: api_v2/forms.py:29 cluster/forms.py:27 cluster/forms.py:103 dns/forms.py:25 #: dns/forms.py:68 dns/forms.py:128 routing_templates/forms.py:36 #: templates/firewall/manage_firewall_rule.html:380 #: templates/firewall/manage_firewall_settings.html:60 #: templates/firewall/manage_redirect_rule.html:85 #: templates/wireguard/apply_route_template.html:63 #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 user_manager/forms.py:49 #: user_manager/forms.py:180 vpn_invite/forms.py:192 vpn_invite/forms.py:326 #: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:156 #: wireguard_peer/forms.py:210 msgid "Back" msgstr "Retour" #: api_v2/forms.py:30 cluster/forms.py:28 dns/forms.py:69 dns/forms.py:129 #: routing_templates/forms.py:37 #: templates/app_gateway/app_gateway_list.html:152 #: templates/app_gateway/application_details.html:75 #: templates/app_gateway/application_details.html:125 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 #: templates/gatekeeper/gatekeeper_list.html:77 #: templates/gatekeeper/gatekeeper_list.html:120 #: templates/gatekeeper/gatekeeper_list.html:165 #: templates/gatekeeper/gatekeeper_list.html:213 #: templates/gatekeeper/gatekeeper_list.html:230 #: templates/gatekeeper/gatekeeper_list.html:282 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 #: templates/wireguard/wireguard_manage_ip.html:43 user_manager/forms.py:48 #: user_manager/forms.py:181 wireguard/forms.py:52 msgid "Delete" msgstr "Supprimer" #: api_v2/forms.py:31 msgid "Regenerate Token" msgstr "Régénérer le jeton" #: api_v2/forms.py:37 msgid "" "Are you sure you want to regenerate the token? The old token will stop " "working immediately." msgstr "" "Êtes-vous sûr de vouloir régénérer le jeton ? L'ancien jeton cessera de " "fonctionner immédiatement." #: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:85 #: app_gateway/forms.py:129 app_gateway/forms.py:147 app_gateway/forms.py:195 #: app_gateway/forms.py:236 cluster/forms.py:67 cluster/forms.py:124 #: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:41 #: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224 #: gatekeeper/forms.py:254 gatekeeper/forms.py:285 #: routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 #: templates/scheduler/scheduleprofile_form.html:200 #: templates/wireguard/wireguard_manage_ip.html:41 user_manager/forms.py:98 #: user_manager/forms.py:205 vpn_invite/forms.py:191 vpn_invite/forms.py:325 #: wireguard/forms.py:100 wireguard_peer/forms.py:26 #: wireguard_peer/forms.py:205 msgid "Save" msgstr "Enregistrer" #: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:99 #: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:99 #: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 #: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:52 #: templates/app_gateway/app_gateway_list.html:132 #: templates/app_gateway/application_details.html:26 #: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 #: templates/gatekeeper/gatekeeper_list.html:149 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 #: templates/wireguard/server_detail.html:12 #: templates/wireguard/server_list.html:19 #: templates/wireguard/wireguard_manage_peer.html:15 user_manager/forms.py:177 #: wireguard_peer/forms.py:32 msgid "Name" msgstr "Nom" #: api_v2/models.py:11 cluster/forms.py:25 templates/api_v2/list.html:9 msgid "Token" msgstr "Jeton" #: api_v2/models.py:12 templates/api_v2/list.html:10 msgid "Allowed Instances" msgstr "Instances autorisées" #: api_v2/models.py:13 templates/api_v2/list.html:12 msgid "Allow Restart" msgstr "Autoriser le redémarrage" #: api_v2/models.py:14 templates/api_v2/list.html:13 msgid "Allow Reload" msgstr "Autoriser le rechargement" #: api_v2/models.py:15 templates/api_v2/list.html:14 msgid "Allow Export" msgstr "Autoriser l'exportation" #: api_v2/models.py:16 cluster/forms.py:19 templates/api_v2/list.html:11 #: templates/api_v2/list.html:41 templates/cluster/workers_list.html:96 #: vpn_invite/forms.py:49 vpn_invite/forms.py:294 msgid "Enabled" msgstr "Activé" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 #: app_gateway/views.py:21 app_gateway/views.py:43 app_gateway/views.py:63 #: app_gateway/views.py:107 app_gateway/views.py:130 app_gateway/views.py:165 #: app_gateway/views.py:189 app_gateway/views.py:200 app_gateway/views.py:262 #: app_gateway/views.py:288 app_gateway/views.py:323 app_gateway/views.py:349 #: app_gateway/views.py:399 cluster/views.py:18 cluster/views.py:45 #: cluster/views.py:114 gatekeeper/views.py:23 gatekeeper/views.py:48 #: gatekeeper/views.py:78 gatekeeper/views.py:101 gatekeeper/views.py:131 #: gatekeeper/views.py:154 gatekeeper/views.py:198 gatekeeper/views.py:257 #: gatekeeper/views.py:287 gatekeeper/views.py:310 gatekeeper/views.py:340 #: gatekeeper/views.py:363 gatekeeper/views.py:412 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Accès refusé" #: api_v2/views.py:19 templates/template_parts/base_sidebar.html:126 msgid "API Keys" msgstr "Clés d'API" #: api_v2/views.py:32 msgid "Edit API Key: " msgstr "Modifier la clé d'API : " #: api_v2/views.py:35 templates/api_v2/list.html:80 msgid "Add API Key" msgstr "Ajouter une clé d'API" #: api_v2/views.py:46 msgid "Token regenerated successfully." msgstr "Jeton régénéré avec succès." #: api_v2/views.py:51 msgid "API Key saved successfully." msgstr "Clé d'API enregistrée avec succès." #: api_v2/views.py:61 msgid "" "\n" "
API Keys
\n" "

API Keys allow external applications to interact with the " "WireGuard WebAdmin API.

\n" "

Token: The secret token used for authentication. " "Keep this secure.

\n" "

Allowed Instances: The WireGuard instances this " "key can manage. If none are selected, the key has access to ALL instances.\n" "

Permissions: specific actions allowed for this " "key.

\n" " " msgstr "" "\n" "
Clés d'API
\n" "

Les clés d'API permettent à des applications externes d'interagir " "com a API do WireGuard WebAdmin.

\n" "

Token: Le jeton secret utilisé pour " "l'authentification. Gardez-le en sécurité.

\n" "

Instances autorisées: Les instances WireGuard " "que cette clé peut gérer. Si aucune n'est sélectionnée, la clé a accès à " "TOUTES les instances.

\n" "

Permissions: actions spécifiques autorisées pour " "cette clé.

\n" " " #: api_v2/views.py:88 msgid "API Key deleted successfully." msgstr "Clé d'API supprimée avec succès." #: api_v2/views.py:93 msgid "Delete API Key" msgstr "Supprimer la clé d'API" #: api_v2/views.py:95 #, python-format msgid "Are you sure you want to delete the API Key \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer la clé d'API \"%(name)s\" ?" #: api_v2/views.py:140 templates/api_v2/list.html:83 msgid "API Documentation" msgstr "Documentation de l'API" #: app_gateway/forms.py:19 templates/app_gateway/application_details.html:27 #: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 msgid "Display Name" msgstr "Nom à afficher" #: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:53 #: templates/app_gateway/application_details.html:28 msgid "Upstream" msgstr "Upstream" #: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:130 #: app_gateway/forms.py:148 app_gateway/forms.py:196 app_gateway/forms.py:237 #: gatekeeper/forms.py:42 gatekeeper/forms.py:76 gatekeeper/forms.py:138 #: gatekeeper/forms.py:225 gatekeeper/forms.py:255 gatekeeper/forms.py:286 #: scheduler/forms.py:103 #: templates/app_gateway/access_policy_type_select.html:50 #: templates/generic_delete_confirmation.html:19 #: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Annuler" #: app_gateway/forms.py:54 msgid "Upstream URL cannot contain spaces." msgstr "L'URL upstream ne peut pas contenir d'espaces." #: app_gateway/forms.py:60 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "Entrez une URL upstream valide commençant par http:// ou https://" #: app_gateway/forms.py:70 cluster/forms.py:24 dns/forms.py:65 #: templates/app_gateway/app_gateway_list.html:95 #: templates/app_gateway/application_details.html:61 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Nom d’hôte" #: app_gateway/forms.py:100 templates/app_gateway/app_gateway_list.html:133 msgid "Policy Type" msgstr "Type de politique" #: app_gateway/forms.py:101 msgid "Allowed Groups" msgstr "Groupes autorisés" #: app_gateway/forms.py:102 templates/gatekeeper/gatekeeper_list.html:12 msgid "Authentication Methods" msgstr "Méthodes d'authentification" #: app_gateway/forms.py:170 msgid "User groups can only be used with local user authentication." msgstr "" "Les groupes d'utilisateurs ne peuvent être utilisés qu'avec " "l'authentification des utilisateurs locaux." #: app_gateway/forms.py:180 templates/app_gateway/app_gateway_list.html:56 #: templates/app_gateway/application_details.html:31 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Politique par défaut" #: app_gateway/forms.py:209 templates/app_gateway/application_details.html:105 msgid "Route Name" msgstr "Nom de la route" #: app_gateway/forms.py:210 templates/app_gateway/application_details.html:106 msgid "Path Prefix" msgstr "Préfixe de chemin" #: app_gateway/forms.py:211 templates/app_gateway/application_details.html:107 msgid "Policy" msgstr "Politique" #: app_gateway/forms.py:212 templates/app_gateway/application_details.html:108 msgid "Order" msgstr "Ordre" #: app_gateway/models.py:12 msgid "Upstream address, e.g.: http://10.188.18.27:3000" msgstr "Adresse en amont, ex : http://10.188.18.27:3000" #: app_gateway/models.py:45 #: templates/app_gateway/access_policy_type_select.html:19 msgid "Public" msgstr "Public" #: app_gateway/models.py:45 #: templates/app_gateway/access_policy_type_select.html:30 msgid "Protected" msgstr "Protégé" #: app_gateway/models.py:45 gatekeeper/models.py:108 #: templates/app_gateway/access_policy_type_select.html:41 #: templates/gatekeeper/gatekeeper_list.html:272 msgid "Deny" msgstr "Refuser" #: app_gateway/models.py:80 msgid "Route identifier, used in export (e.g.: public_area)" msgstr "Identifiant d'itinéraire, utilisé dans l'exportation (ex: public_area)" #: app_gateway/views.py:55 msgid "Application Details" msgstr "Détails de l'application" #: app_gateway/views.py:69 templates/app_gateway/application_details.html:15 msgid "Edit Application" msgstr "Modifier l'application" #: app_gateway/views.py:72 msgid "Create Application" msgstr "Créer une application" #: app_gateway/views.py:79 msgid "Application saved successfully." msgstr "Application enregistrée avec succès." #: app_gateway/views.py:84 msgid "" "\n" "
Application
\n" "

Define the main details of the application you want to expose " "through the gateway.

\n" "
    \n" "
  • Name: A unique internal identifier for this " "application (e.g., \"wiki\", \"crm\"). Contains only letters, numbers, " "hyphens, or underscores.
  • \n" "
  • Display Name: A friendly, human-readable " "name for display purposes.
  • \n" "
  • Upstream: The destination URL where " "requests will be forwarded (e.g., http://10.188.18.27:3000). " "Must start with http:// or https://.
  • \n" "
\n" " " msgstr "" "\n" "
Application
\n" "

Définissez les principaux détails de l'application que vous " "souhaitez exposer via la passerelle.

\n" "
    \n" "
  • Nom : Un identifiant interne unique pour " "cette application (ex: \"wiki\", \"crm\"). Contient uniquement des lettres, " "des chiffres, des traits d'union ou des traits de soulignement.
  • \n" "
  • Nom d'affichage : Un nom convivial et " "lisible pour l'affichage.
  • \n" "
  • Amont (Upstream) : L'URL de destination " "vers laquelle les requêtes seront transférées (ex: http://" "10.188.18.27:3000). Doit commencer par http:// ou " "https://.
  • \n" "
\n" " " #: app_gateway/views.py:115 msgid "Application deleted successfully." msgstr "Application supprimée avec succès." #: app_gateway/views.py:120 templates/app_gateway/application_details.html:18 msgid "Delete Application" msgstr "Supprimer l'application" #: app_gateway/views.py:122 #, python-format msgid "Are you sure you want to delete the application \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'application \"%(name)s\" ?" #: app_gateway/views.py:138 msgid "Edit Application Host" msgstr "Modifier l'hôte d'application" #: app_gateway/views.py:142 msgid "Add Application Host" msgstr "Ajouter un hôte d'application" #: app_gateway/views.py:151 msgid "Application Host saved successfully." msgstr "Hôte d'application enregistré avec succès." #: app_gateway/views.py:174 msgid "Application Host deleted successfully." msgstr "Hôte d'application supprimé avec succès." #: app_gateway/views.py:179 msgid "Delete Application Host" msgstr "Supprimer l'hôte d'application" #: app_gateway/views.py:181 #, python-format msgid "Are you sure you want to delete the host \"%(hostname)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'hôte \"%(hostname)s\" ?" #: app_gateway/views.py:192 #: templates/app_gateway/access_policy_type_select.html:9 msgid "Select Access Policy Type" msgstr "Sélectionner le type de politique d'accès" #: app_gateway/views.py:207 msgid "Edit Access Policy" msgstr "Modifier la politique d'accès" #: app_gateway/views.py:211 msgid "Create Access Policy" msgstr "Créer une politique d'accès" #: app_gateway/views.py:218 msgid "Access Policy saved successfully." msgstr "Politique d'accès enregistrée avec succès." #: app_gateway/views.py:224 msgid "" "\n" "
Public Policy
\n" "

A Public policy allows access to the application without " "requiring any authentication.

\n" " " msgstr "" "\n" "
Politique publique
\n" "

Une politique publique permet l'accès à l'application sans " "nécessiter d'authentification.

\n" " " #: app_gateway/views.py:232 msgid "" "\n" "
Deny Policy
\n" "

A Deny policy blocks all access to the matched routes.

\n" " " msgstr "" "\n" "
Politique de refus
\n" "

Une politique de refus bloque tout accès aux itinéraires " "correspondants.

\n" " " #: app_gateway/views.py:240 msgid "" "\n" "
Protected Policy
\n" "

A Protected policy requires users to authenticate before " "accessing the application.

\n" "
    \n" "
  • Allowed Groups: Limits access to " "specific user groups. Note: Using groups requires selecting an " "Authentication Method of type \"Local Password\".
  • \n" "
  • Authentication Methods: Specify which " "methods users can use to authenticate (e.g., Local Password, TOTP, OIDC).\n" "
\n" " " msgstr "" "\n" "
Politique protégée
\n" "

Une politique protégée exige que les utilisateurs " "s'authentifient avant d'accéder à l'application.

\n" "
    \n" "
  • Groupes autorisés : Limite l'accès à " "des groupes d'utilisateurs spécifiques. Remarque : L'utilisation de groupes " "nécessite la sélection d'une méthode d'authentification de type \"Mot de " "passe local\".
  • \n" "
  • Méthodes d'authentification : Indiquez " "les méthodes que les utilisateurs peuvent utiliser pour s'authentifier (par " "exemple, Mot de passe local, TOTP, OIDC).
  • \n" "
\n" " " #: app_gateway/views.py:271 msgid "Access Policy deleted successfully." msgstr "Politique d'accès supprimée avec succès." #: app_gateway/views.py:273 msgid "" "Cannot delete this Access Policy because it is currently in use by an " "Application Route or Application Default Policy." msgstr "" "Impossible de supprimer cette politique d'accès car elle est actuellement " "utilisée par un itinéraire d'application ou une politique par défaut " "d'application." #: app_gateway/views.py:278 msgid "Delete Access Policy" msgstr "Supprimer la politique d'accès" #: app_gateway/views.py:280 #, python-format msgid "Are you sure you want to delete the access policy \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer la politique d'accès \"%(name)s\" ?" #: app_gateway/views.py:296 msgid "Edit Application Default Policy" msgstr "Modifier la politique par défaut de l'application" #: app_gateway/views.py:300 msgid "Set Application Default Policy" msgstr "Définir la politique par défaut de l'application" #: app_gateway/views.py:309 msgid "Application Default Policy saved successfully." msgstr "Politique par défaut de l'application enregistrée avec succès." #: app_gateway/views.py:332 msgid "Application Default Policy deleted successfully." msgstr "Politique par défaut de l'application supprimée avec succès." #: app_gateway/views.py:337 msgid "Delete Application Default Policy" msgstr "Supprimer la politique par défaut de l'application" #: app_gateway/views.py:339 #, python-format msgid "Are you sure you want to remove the default policy for \"%(name)s\"?" msgstr "" "Êtes-vous sûr de vouloir supprimer la politique par défaut pour " "\"%(name)s\" ?" #: app_gateway/views.py:357 msgid "Edit Application Route" msgstr "Modifier la route de l'application" #: app_gateway/views.py:361 msgid "Add Application Route" msgstr "Ajouter une route d'application" #: app_gateway/views.py:370 msgid "Application Route saved successfully." msgstr "Route d'application enregistrée avec succès." #: app_gateway/views.py:375 msgid "" "\n" "
Application Route
\n" "

A Route defines a path prefix within this Application that " "requires a specific Access Policy.

\n" "
    \n" "
  • Route Name: An internal identifier for this " "route (e.g., \"public_api\", \"admin_area\"). Used for reference and exports." "
  • \n" "
  • Path Prefix: The URL path that triggers " "this route (e.g., /api/ or /admin/). Use / to match all remaining paths.
  • \n" "
  • Policy: The Access Policy that will be " "enforced when a user accesses this path.
  • \n" "
  • Order: Determines the priority of this " "route when evaluating the request. Lower numbers are evaluated first. If " "multiple routes match a path, the one with the lowest order wins.
  • \n" "
\n" " " msgstr "" "\n" "
Route d'application
\n" "

Une route définit un préfixe de chemin au sein de cette " "application qui nécessite une politique d'accès spécifique.

\n" "
    \n" "
  • Nom de la route : Un identifiant interne " "pour cette route (ex : \"public_api\", \"admin_area\"). Utilisé pour " "référence et exportations.
  • \n" "
  • Préfixe de chemin : Le chemin d'URL qui " "déclenche cette route (ex : /api/ ou /admin/). " "Utilisez / pour faire correspondre tous les chemins restants.\n" "
  • Politique : La politique d'accès qui sera " "appliquée lorsqu'un utilisateur accède à ce chemin.
  • \n" "
  • Ordre : Détermine la priorité de cette " "route lors de l'évaluation de la demande. Les nombres les plus bas sont " "évalués en premier. Si plusieurs routes correspondent à un chemin, celle " "avec l'ordre le plus bas l'emporte.
  • \n" "
\n" " " #: app_gateway/views.py:408 msgid "Application Route deleted successfully." msgstr "Route d'application supprimée avec succès." #: app_gateway/views.py:413 msgid "Delete Application Route" msgstr "Supprimer la route d'application" #: app_gateway/views.py:415 #, python-format msgid "Are you sure you want to delete the route \"%(name)s\" (%(path)s)?" msgstr "Êtes-vous sûr de vouloir supprimer la route \"%(name)s\" (%(path)s) ?" #: cluster/forms.py:20 msgid "IP Lock" msgstr "Verrouillage IP" #: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:196 #: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 #: templates/firewall/manage_redirect_rule.html:68 #: templates/gatekeeper/gatekeeper_list.html:256 #: templates/wireguard/wireguard_status.html:45 msgid "IP Address" msgstr "Adresse IP" #: cluster/forms.py:22 msgid "Country" msgstr "Pays" #: cluster/forms.py:23 msgid "City" msgstr "Ville" #: cluster/forms.py:82 msgid "A worker with that name already exists." msgstr "Un worker avec ce nom existe déjà." #: cluster/forms.py:85 msgid "IP Address is required when IP Lock is enabled." msgstr "L'adresse IP est requise lorsque le verrouillage IP est activé." #: cluster/forms.py:97 msgid "Cluster Enabled" msgstr "Cluster activé" #: cluster/forms.py:98 msgid "Primary Enable WireGuard" msgstr "Habilitation primaire de WireGuard" #: cluster/forms.py:99 templates/cluster/workers_list.html:106 msgid "Cluster Mode" msgstr "Mode du cluster" #: cluster/forms.py:100 templates/cluster/workers_list.html:145 msgid "Restart Mode" msgstr "Mode de redémarrage" #: cluster/forms.py:101 templates/cluster/workers_list.html:149 msgid "Worker Display" msgstr "Affichage du Worker" #: cluster/forms.py:136 msgid "Cluster mode requires WireGuard status cache to be enabled." msgstr "" "Le mode cluster nécessite que le cache d'état de WireGuard soit activé." #: cluster/models.py:46 msgid "" "IP lock is enabled, but the worker is attempting to access from a different " "IP address." msgstr "" "Le verrouillage IP est activé, mais le worker tente d'accéder à partir d'une " "adresse IP différente." #: cluster/models.py:47 msgid "Worker is not enabled" msgstr "Le worker n'est pas activé" #: cluster/models.py:48 msgid "Cluster is not enabled" msgstr "Le cluster n'est pas activé" #: cluster/models.py:49 msgid "" "Please report worker_config_version, worker_dns_version and worker_version " "in the API request." msgstr "" "Veuillez indiquer worker_config_version, worker_dns_version et " "worker_version dans la requête API." #: cluster/models.py:50 msgid "Worker update is required." msgstr "La mise à jour du worker est requise." #: cluster/views.py:21 templates/template_parts/base_sidebar.html:135 msgid "Cluster" msgstr "Cluster" #: cluster/views.py:51 msgid "Edit Worker: " msgstr "Modifier Worker : " #: cluster/views.py:57 msgid "Worker deleted|Worker deleted: " msgstr "Worker supprimé|Worker supprimé : " #: cluster/views.py:60 msgid "Worker not deleted|Invalid confirmation." msgstr "Worker non supprimé|Confirmation invalide." #: cluster/views.py:64 templates/cluster/workers_list.html:87 msgid "Add Worker" msgstr "Ajouter Worker" #: cluster/views.py:75 msgid "Worker updated|Worker updated: " msgstr "Worker mis à jour|Worker mis à jour : " #: cluster/views.py:77 msgid "Worker created|Worker created: " msgstr "Worker créé|Worker créé : " #: cluster/views.py:82 msgid "" "\n" "
Worker Configuration
\n" "

Configure a cluster worker node that will synchronize with this " "primary instance.

\n" " \n" "
Name
\n" "

A unique name to identify this worker.

\n" " \n" "
IP Address
\n" "

The IP address of the worker node. Leave empty if IP lock is " "disabled.

\n" " \n" "
IP Lock
\n" "

When enabled, the worker can only connect from the specified IP " "address.

\n" " \n" "
Location Information
\n" "

Optional location details for this worker (country, city, " "hostname).

\n" " " msgstr "" "\n" "
Configuration du Worker
\n" "

Configurez un nœud worker de cluster qui se synchronisera avec " "cette instance primaire.

\n" " \n" "
Nom
\n" "

Un nom unique pour identifier ce worker.

\n" " \n" "
Adresse IP
\n" "

L’adresse IP du nœud worker. Laissez vide si le verrouillage IP " "est désactivé.

\n" " \n" "
Verrouillage IP
\n" "

Lorsqu’il est activé, le worker ne peut se connecter qu’à partir " "de l’adresse IP spécifiée.

\n" " \n" "
Informations de localisation
\n" "

Détails de localisation facultatifs pour ce worker (pays, ville, " "nom d’hôte).

\n" " " #: cluster/views.py:117 templates/cluster/workers_list.html:88 msgid "Cluster Settings" msgstr "Paramètres du Cluster" #: cluster/views.py:123 msgid "Cluster settings updated successfully." msgstr "Paramètres du cluster mis à jour avec succès." #: cluster/views.py:135 msgid "" "\n" "
Cluster Mode
\n" "

Configure how the cluster operates and synchronizes " "configurations between nodes.

\n" " \n" "
Sync Intervals
\n" "

Configure how frequently statistics and cache data are " "synchronized between cluster nodes.

\n" " \n" "
Restart Mode
\n" "

Choose whether WireGuard services should be automatically " "restarted when configurations change, or if manual intervention is required." "

\n" " \n" "
Worker Display
\n" "

Select how workers should be identified in the interface - by " "name, server address, location, or a combination.

\n" " " msgstr "" "\n" "
Mode de cluster
\n" "

Configurez le fonctionnement du cluster et la synchronisation des " "configurations entre les nœuds.

\n" " \n" "
Intervalle de synchronisation
\n" "

Configurez la fréquence à laquelle les statistiques et les " "données de cache sont synchronisées entre les nœuds du cluster.

\n" " \n" "
Mode de redémarrage
\n" "

Choisissez si les services WireGuard doivent être redémarrés " "automatiquement lorsque les configurations changent, ou si une intervention " "manuelle est requise.

\n" " \n" "
Affichage du worker
\n" "

Sélectionnez la manière dont les workers doivent être identifiés " "dans l’interface - par nom, adresse du serveur, emplacement ou une " "combinaison.

\n" " " #: console/views.py:27 console/views.py:67 user_manager/forms.py:16 msgid "Console" msgstr "Console" #: console/views.py:29 msgid "iptables list" msgstr "liste iptables" #: console/views.py:35 msgid "running processes" msgstr "processus en cours" #: console/views.py:38 msgid "WireGuard show" msgstr "état WireGuard" #: console/views.py:40 msgid "Enhanced filter is enabled. This command is not available." msgstr "Le filtre avancé est activé. Cette commande n’est pas disponible." #: console/views.py:46 msgid "Memory usage" msgstr "Utilisation de la mémoire" #: console/views.py:49 msgid "Routing table" msgstr "Table de routage" #: console/views.py:61 msgid "DNS container test script" msgstr "Script de test du conteneur DNS" #: console/views.py:64 msgid "Flush Wireguard status cache" msgstr "Vider le cache d'état de WireGuard" #: console/views.py:67 msgid "Invalid command" msgstr "Commande invalide" #: console/views.py:78 msgid "Flushed WireGuard status cache for worker: " msgstr "Cache d'état de WireGuard vidé pour le worker : " #: console/views.py:83 msgid "Flushed WireGuard status cache entries: " msgstr "Entrées du cache d'état de WireGuard vidées : " #: console/views.py:87 msgid "Invalid target" msgstr "Cible invalide" #: dns/forms.py:22 wireguard/forms.py:24 msgid "Primary DNS" msgstr "DNS primaire" #: dns/forms.py:23 wireguard/forms.py:25 msgid "Secondary DNS" msgstr "DNS secondaire" #: dns/forms.py:29 msgid "Resolver Settings" msgstr "Paramètres du résolveur" #: dns/forms.py:66 msgid "" "Exact hostname or domain rule (e.g. *.example.com matches example.com and " "all subdomains)" msgstr "" "Nom d'hôte exact ou règle de domaine (ex: *.exemple.com correspond à " "exemple.com et tous les sous-domaines)" #: dns/forms.py:76 msgid "Static DNS" msgstr "DNS statique" #: dns/forms.py:94 dns/forms.py:98 dns/forms.py:104 dns/forms.py:108 #: dns/forms.py:110 dns/forms.py:112 msgid "Invalid hostname." msgstr "Nom d'hôte invalide." #: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:199 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 #: templates/firewall/manage_redirect_rule.html:19 msgid "Description" msgstr "Description" #: dns/forms.py:132 msgid "List URL" msgstr "URL de la liste" #: dns/forms.py:144 msgid "DNS Filter List Details" msgstr "Détails de la liste de filtres DNS" #: dns/views.py:34 msgid "DNS settings applied successfully" msgstr "Paramètres DNS appliqués avec succès" #: dns/views.py:69 msgid "Default DNS Filter List created successfully" msgstr "Liste de filtres DNS par défaut créée avec succès" #: dns/views.py:72 msgid "" "Pending Changes|There are pending DNS changes that have not been applied" msgstr "" "Modifications en attente|Des changements DNS n’ont pas encore été appliqués" #: dns/views.py:91 msgid "DNS Forwarders" msgstr "Redirecteurs DNS" #: dns/views.py:92 msgid "" "All DNS queries will be forwarded to the primary resolver. If the primary " "resolver is not available, the secondary resolver will be used." msgstr "" "Toutes les requêtes DNS seront transmises au résolveur primaire. Si celui‑ci " "est indisponible, le résolveur secondaire sera utilisé." #: dns/views.py:119 msgid "Static DNS deleted successfully" msgstr "Entrée DNS statique supprimée avec succès" #: dns/views.py:122 msgid "Static DNS not deleted|Invalid confirmation" msgstr "DNS statique non supprimé|Confirmation invalide" #: dns/views.py:132 msgid "Static DNS saved successfully" msgstr "DNS statique enregistré avec succès" #: dns/views.py:155 msgid "DNS Filter List not deleted | Filter List is enabled" msgstr "Liste de filtres DNS non supprimée | La liste est activée" #: dns/views.py:162 msgid "Error removing config file: " msgstr "Erreur lors de la suppression du fichier de configuration: " #: dns/views.py:165 msgid "DNS Filter List deleted successfully" msgstr "Liste de filtres DNS supprimée avec succès" #: dns/views.py:168 msgid "DNS Filter List not deleted | Invalid confirmation" msgstr "Liste de filtres DNS non supprimée | Confirmation invalide" #: dns/views.py:178 msgid "DNS Filter List saved successfully" msgstr "Liste de filtres DNS enregistrée avec succès" #: dns/views.py:205 msgid "Failed to read existing config file: " msgstr "Impossible de lire le fichier de configuration existant: " #: dns/views.py:223 msgid "Failed to fetch the host list: " msgstr "Échec du téléchargement de la liste d’hôtes: " #: dns/views.py:233 msgid "Failed to write config file: " msgstr "Impossible d’écrire le fichier de configuration: " #: dns/views.py:258 msgid "DNS Filter List updated successfully" msgstr "Liste de filtres DNS mise à jour avec succès" #: dns/views.py:275 msgid "DNS Filter List enabled successfully" msgstr "Liste de filtres DNS activée avec succès" #: dns/views.py:277 msgid "DNS Filter List not enabled | No valid hosts found" msgstr "Liste de filtres DNS non activée | Aucun hôte valide trouvé" #: dns/views.py:282 msgid "DNS Filter List disabled successfully" msgstr "Liste de filtres DNS désactivée avec succès" #: firewall/forms.py:41 msgid "Port is required." msgstr "Le port est obligatoire." #: firewall/forms.py:44 msgid "Port 8000 (tcp) is reserved for wireguard-webadmin." msgstr "Le port 8000 (TCP) est réservé à wireguard‑webadmin." #: firewall/forms.py:48 #, python-format msgid "Port %s is already in use by another WireGuard instance." msgstr "Le port %s est déjà utilisé par une autre instance WireGuard." #: firewall/forms.py:51 msgid "Invalid Destination. Either Peer or IP Address must be informed." msgstr "Destination invalide: renseignez soit un Peer, soit une adresse IP." #: firewall/forms.py:54 msgid "Peer and IP Address cannot be selected at the same time." msgstr "" "Le Peer et l’adresse IP ne peuvent pas être sélectionnés simultanément." #: firewall/forms.py:57 msgid "IP Address cannot be used without selecting a WireGuard instance." msgstr "" "Une adresse IP ne peut être utilisée sans sélectionner d’instance WireGuard." #: firewall/forms.py:81 msgid "wg+ (Any WireGuard Interface)" msgstr "wg+ (n’importe quelle interface WireGuard)" #: firewall/forms.py:112 msgid "Firewall Chain" msgstr "Chaîne du pare‑feu" #: firewall/forms.py:113 msgid "In Interface" msgstr "Interface entrante" #: firewall/forms.py:114 msgid "Out Interface" msgstr "Interface sortante" #: firewall/forms.py:115 msgid "Source IP" msgstr "IP source" #: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:22 #: wireguard_peer/forms.py:70 msgid "Netmask" msgstr "Masque" #: firewall/forms.py:117 msgid "Source Peer" msgstr "Peer source" #: firewall/forms.py:118 msgid "Source Peer Include Networks" msgstr "Inclure les réseaux du Peer source" #: firewall/forms.py:119 msgid "Not Source" msgstr "Non‑source" #: firewall/forms.py:120 msgid "Destination IP" msgstr "IP de destination" #: firewall/forms.py:122 msgid "Destination Peer" msgstr "Peer de destination" #: firewall/forms.py:123 msgid "Destination Peer Include Networks" msgstr "Inclure les réseaux du Peer destination" #: firewall/forms.py:124 msgid "Not Destination" msgstr "Non‑destination" #: firewall/forms.py:125 templates/firewall/firewall_rule_list.html:44 #: templates/firewall/manage_firewall_rule.html:263 #: templates/firewall/manage_redirect_rule.html:22 #: templates/firewall/redirect_rule_list.html:13 msgid "Protocol" msgstr "Protocole" #: firewall/forms.py:126 templates/firewall/manage_redirect_rule.html:35 msgid "Destination Port" msgstr "Port de destination" #: firewall/forms.py:127 templates/firewall/firewall_rule_list.html:155 msgid "New" msgstr "Nouveau" #: firewall/forms.py:128 templates/firewall/firewall_rule_list.html:60 #: templates/firewall/firewall_rule_list.html:156 msgid "Related" msgstr "Connexe" #: firewall/forms.py:129 templates/firewall/firewall_rule_list.html:61 #: templates/firewall/firewall_rule_list.html:157 msgid "Established" msgstr "Établi" #: firewall/forms.py:130 templates/firewall/firewall_rule_list.html:158 msgid "Invalid" msgstr "Invalide" #: firewall/forms.py:131 templates/firewall/firewall_rule_list.html:159 msgid "Untracked" msgstr "Non suivi" #: firewall/forms.py:132 msgid "Not State" msgstr "Sans état" #: firewall/forms.py:133 msgid "Rule Action" msgstr "Action" #: firewall/forms.py:134 msgid "Sort Order" msgstr "Ordre" #: firewall/forms.py:182 msgid "Default Forward Policy" msgstr "Politique de transfert par défaut" #: firewall/forms.py:182 firewall/models.py:62 firewall/models.py:75 #: firewall/models.py:76 templates/firewall/firewall_rule_list.html:63 #: templates/firewall/firewall_rule_list.html:105 #: templates/firewall/firewall_rule_list.html:182 #: templates/firewall/firewall_rule_list.html:201 msgid "ACCEPT" msgstr "Accepter" #: firewall/forms.py:182 firewall/models.py:62 #: templates/firewall/firewall_rule_list.html:184 #: templates/firewall/firewall_rule_list.html:201 msgid "REJECT" msgstr "Rejeter" #: firewall/forms.py:182 firewall/models.py:62 firewall/models.py:75 #: firewall/models.py:76 msgid "DROP" msgstr "Abandonner" #: firewall/forms.py:183 msgid "Allow Peer to Peer" msgstr "Autoriser Peer ↔ Peer" #: firewall/forms.py:184 msgid "Allow Instance to Instance" msgstr "Autoriser Instance ↔ Instance" #: firewall/forms.py:185 msgid "WAN Interface" msgstr "Interface WAN" #: firewall/models.py:62 msgid "MASQUERADE" msgstr "MASQUERADE" #: firewall/tools.py:46 msgid "Masquerade traffic from VPN to WAN" msgstr "Masquer le trafic du VPN vers le WAN" #: firewall/tools.py:56 firewall/tools.py:60 firewall/tools.py:64 msgid "Reject traffic to private networks exiting on WAN interface" msgstr "Rejeter le trafic vers les réseaux privés sortant sur l’interface WAN" #: firewall/tools.py:68 msgid "Allow traffic from VPN to WAN" msgstr "Autoriser le trafic du VPN vers le WAN" #: firewall/views.py:21 msgid "Port Forward List" msgstr "Liste des redirections de port" #: firewall/views.py:32 msgid "Manage Port Forward" msgstr "Gérer la redirection de port" #: firewall/views.py:42 msgid "Port Forward rule deleted successfully" msgstr "Règle de redirection supprimée avec succès" #: firewall/views.py:44 msgid "" "Error deleting Port Forward rule|Confirmation did not match. Port Forward " "rule was not deleted." msgstr "" "Erreur de suppression|La confirmation ne correspond pas ; la règle de " "redirection n’a pas été supprimée." #: firewall/views.py:54 msgid "Port Forward rule saved successfully" msgstr "Règle de redirection enregistrée avec succès" #: firewall/views.py:79 msgid "Firewall Rule List" msgstr "Liste des règles du pare‑feu" #: firewall/views.py:93 msgid "Manage Firewall Rule" msgstr "Gérer la règle du pare‑feu" #: firewall/views.py:111 msgid "Firewall rule deleted successfully" msgstr "Règle du pare‑feu supprimée avec succès" #: firewall/views.py:113 msgid "" "Error deleting Firewall rule|Confirmation did not match. Firewall rule was " "not deleted." msgstr "" "Erreur de suppression de la règle|La confirmation ne correspond pas ; la " "règle n’a pas été supprimée." #: firewall/views.py:125 msgid "Firewall rule saved successfully" msgstr "Règle du pare‑feu enregistrée avec succès" #: firewall/views.py:157 msgid "Manage Firewall Settings" msgstr "Gérer les paramètres du pare‑feu" #: firewall/views.py:173 msgid "Firewall settings saved successfully" msgstr "Paramètres du pare‑feu enregistrés avec succès" #: gatekeeper/forms.py:17 templates/accounts/login.html:14 #: templates/gatekeeper/gatekeeper_list.html:61 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Nom d’utilisateur" #: gatekeeper/forms.py:18 gatekeeper/forms.py:269 #: templates/gatekeeper/gatekeeper_list.html:62 #: templates/gatekeeper/gatekeeper_list.html:204 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "E‑mail" #: gatekeeper/forms.py:19 templates/accounts/login.html:23 #: templates/vpn_invite/invite_settings.html:19 user_manager/forms.py:14 #: vpn_invite/forms.py:282 msgid "Password" msgstr "Mot de passe" #: gatekeeper/forms.py:20 msgid "TOTP Secret" msgstr "Secret TOTP" #: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:104 msgid "Group Name" msgstr "Nom du groupe" #: gatekeeper/forms.py:56 templates/gatekeeper/gatekeeper_list.html:105 msgid "Members" msgstr "Membres" #: gatekeeper/forms.py:86 msgid "TOTP Validation PIN" msgstr "Code de validation TOTP" #: gatekeeper/forms.py:89 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." msgstr "" "Saisissez un code à 6 chiffres généré par votre application " "d'authentification pour valider le secret." #: gatekeeper/forms.py:100 msgid "Authentication Type" msgstr "Type d'authentification" #: gatekeeper/forms.py:101 msgid "Global TOTP Secret" msgstr "Secret TOTP mondial" #: gatekeeper/forms.py:102 msgid "OIDC Provider URL" msgstr "URL du fournisseur OIDC" #: gatekeeper/forms.py:103 msgid "OIDC Client ID" msgstr "ID client OIDC" #: gatekeeper/forms.py:104 msgid "OIDC Client Secret" msgstr "Secret client OIDC" #: gatekeeper/forms.py:155 msgid "TOTP secret must be empty for Local Password authentication." msgstr "" "Le secret TOTP doit être vide pour l'authentification par mot de passe local." #: gatekeeper/forms.py:157 msgid "TOTP validation PIN must be empty for Local Password authentication." msgstr "" "Le code de validation TOTP doit être vide pour l'authentification par mot de " "passe local." #: gatekeeper/forms.py:159 msgid "OIDC fields must be empty for Local Password authentication." msgstr "" "Les champs OIDC doivent être vides pour l'authentification par mot de passe " "local." #: gatekeeper/forms.py:165 msgid "Only one Local Password authentication method can be configured." msgstr "" "Un seul système d'authentification par mot de passe local peut être " "configuré." #: gatekeeper/forms.py:168 msgid "OIDC fields must be empty for TOTP authentication." msgstr "Les champs OIDC doivent être vides pour l'authentification TOTP." #: gatekeeper/forms.py:170 msgid "TOTP secret is required for TOTP authentication." msgstr "Le secret TOTP est requis pour l'authentification TOTP." #: gatekeeper/forms.py:174 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Veuillez fournir un code pour valider le secret TOTP." #: gatekeeper/forms.py:179 msgid "Invalid TOTP PIN." msgstr "Code TOTP invalide." #: gatekeeper/forms.py:181 msgid "Invalid TOTP secret format. Must be a valid Base32 string." msgstr "Format du secret TOTP invalide. Doit être une chaîne Base32 valide." #: gatekeeper/forms.py:184 msgid "TOTP secret must be empty for OIDC authentication." msgstr "Le secret TOTP doit être vide pour l'authentification OIDC." #: gatekeeper/forms.py:186 msgid "TOTP validation PIN must be empty for OIDC authentication." msgstr "" "Le code de validation TOTP doit être vide pour l'authentification OIDC." #: gatekeeper/forms.py:195 gatekeeper/forms.py:237 gatekeeper/forms.py:268 msgid "Authentication Method" msgstr "Méthode d'authentification" #: gatekeeper/forms.py:197 templates/gatekeeper/gatekeeper_list.html:257 msgid "Prefix Length" msgstr "Longueur du préfixe" #: gatekeeper/forms.py:198 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 #: templates/gatekeeper/gatekeeper_list.html:258 msgid "Action" msgstr "Action" #: gatekeeper/forms.py:238 templates/gatekeeper/gatekeeper_list.html:221 msgid "Domain" msgstr "Domaine" #: gatekeeper/models.py:10 msgid "Local Password" msgstr "Mot de passe local" #: gatekeeper/models.py:11 msgid "One-Time Password (TOTP)" msgstr "Mot de passe à usage unique (TOTP)" #: gatekeeper/models.py:12 msgid "OpenID Connect (OIDC)" msgstr "OpenID Connect (OIDC)" #: gatekeeper/models.py:13 msgid "IP Address List" msgstr "Liste d'adresses IP" #: gatekeeper/models.py:17 msgid "Shared/global TOTP secret key" msgstr "Clé secrète TOTP partagée/globale" #: gatekeeper/models.py:68 msgid "Password for local authentication (leave blank if not using)" msgstr "" "Mot de passe pour l'authentification locale (laissez vide si vous ne " "l'utilisez pas)" #: gatekeeper/models.py:69 msgid "Per-user TOTP secret key" msgstr "Clé secrète TOTP par utilisateur" #: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:270 msgid "Allow" msgstr "Autoriser" #: gatekeeper/views.py:54 msgid "Edit Gatekeeper User" msgstr "Modifier l'utilisateur Gatekeeper" #: gatekeeper/views.py:57 msgid "Create Gatekeeper User" msgstr "Créer un utilisateur Gatekeeper" #: gatekeeper/views.py:64 msgid "Gatekeeper User saved successfully." msgstr "Utilisateur Gatekeeper enregistré avec succès." #: gatekeeper/views.py:86 msgid "Gatekeeper User deleted successfully." msgstr "Utilisateur Gatekeeper supprimé avec succès." #: gatekeeper/views.py:91 msgid "Delete Gatekeeper User" msgstr "Supprimer l'utilisateur Gatekeeper" #: gatekeeper/views.py:93 #, python-format msgid "Are you sure you want to delete the user \"%(username)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'utilisateur \"%(username)s\" ?" #: gatekeeper/views.py:107 msgid "Edit Gatekeeper Group" msgstr "Modifier le groupe Gatekeeper" #: gatekeeper/views.py:110 msgid "Create Gatekeeper Group" msgstr "Créer un groupe Gatekeeper" #: gatekeeper/views.py:117 msgid "Gatekeeper Group saved successfully." msgstr "Groupe Gatekeeper enregistré avec succès." #: gatekeeper/views.py:139 msgid "Gatekeeper Group deleted successfully." msgstr "Groupe Gatekeeper supprimé avec succès." #: gatekeeper/views.py:144 msgid "Delete Gatekeeper Group" msgstr "Supprimer le groupe Gatekeeper" #: gatekeeper/views.py:146 #, python-format msgid "Are you sure you want to delete the group \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer le groupe \"%(name)s\" ?" #: gatekeeper/views.py:160 msgid "Edit Authentication Method" msgstr "Modifier la méthode d'authentification" #: gatekeeper/views.py:163 msgid "Create Authentication Method" msgstr "Créer une méthode d'authentification" #: gatekeeper/views.py:170 msgid "Authentication Method saved successfully." msgstr "Méthode d'authentification enregistrée avec succès." #: gatekeeper/views.py:175 msgid "" "\n" "
Authentication Types
\n" "

Select how users will authenticate through this method.

\n" "
    \n" "
  • Local Password: Users will authenticate " "using a standard username and password stored locally. Only one of this type " "can be created.
  • \n" "
  • TOTP (Time-Based One-Time Password): Users " "will need to enter a rotating token from an authenticator app. Requires " "setting a Global TOTP Secret.
  • \n" "
  • OIDC (OpenID Connect): Users will " "authenticate via an external identity provider (like Keycloak, Google, or " "Authelia). Requires Provider URL, Client ID, and Client Secret.
  • \n" "
\n" " " msgstr "" "\n" "
Types d'authentification
\n" "

Sélectionnez la façon dont les utilisateurs s'authentifieront via " "cette méthode.

\n" "
    \n" "
  • Mot de passe local : les utilisateurs " "s'authentifieront à l'aide d'un nom d'utilisateur et d'un mot de passe " "standard stockés localement. Un seul de ce type peut être créé.
  • \n" "
  • TOTP (Time-Based One-Time Password) : les " "utilisateurs devront saisir un jeton rotatif à partir d'une application " "d'authentification. Nécessite la configuration d'un secret TOTP global.\n" "
  • OIDC (OpenID Connect) : les utilisateurs " "s'authentifieront via un fournisseur d'identité externe (comme Keycloak, " "Google ou Authelia). Nécessite l'URL du fournisseur, l'ID client et le " "secret client.
  • \n" "
\n" " " #: gatekeeper/views.py:206 msgid "Authentication Method deleted successfully." msgstr "Méthode d'authentification supprimée avec succès." #: gatekeeper/views.py:211 msgid "Delete Authentication Method" msgstr "Supprimer la méthode d'authentification" #: gatekeeper/views.py:213 #, python-format msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" msgstr "" "Êtes-vous sûr de vouloir supprimer la méthode d'authentification " "\"%(name)s\" ?" #: gatekeeper/views.py:263 msgid "Edit Allowed Domain" msgstr "Modifier le domaine autorisé" #: gatekeeper/views.py:266 templates/gatekeeper/gatekeeper_list.html:186 msgid "Add Allowed Domain" msgstr "Ajouter un domaine autorisé" #: gatekeeper/views.py:273 msgid "Allowed Domain saved successfully." msgstr "Domaine autorisé enregistré avec succès." #: gatekeeper/views.py:295 msgid "Allowed Domain deleted successfully." msgstr "Domaine autorisé supprimé avec succès." #: gatekeeper/views.py:300 msgid "Delete Allowed Domain" msgstr "Supprimer le domaine autorisé" #: gatekeeper/views.py:302 #, python-format msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" msgstr "" "Êtes-vous sûr de vouloir supprimer le domaine autorisé \"%(domain)s\" ?" #: gatekeeper/views.py:316 msgid "Edit Allowed Email" msgstr "Modifier l'e-mail autorisé" #: gatekeeper/views.py:319 templates/gatekeeper/gatekeeper_list.html:183 msgid "Add Allowed Email" msgstr "Ajouter un e-mail autorisé" #: gatekeeper/views.py:326 msgid "Allowed Email saved successfully." msgstr "E-mail autorisé enregistré avec succès." #: gatekeeper/views.py:348 msgid "Allowed Email deleted successfully." msgstr "E-mail autorisé supprimé avec succès." #: gatekeeper/views.py:353 msgid "Delete Allowed Email" msgstr "Supprimer l'e-mail autorisé" #: gatekeeper/views.py:355 #, python-format msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'e-mail autorisé \"%(email)s\" ?" #: gatekeeper/views.py:369 msgid "Edit IP Address" msgstr "Modifier l'adresse IP" #: gatekeeper/views.py:372 templates/gatekeeper/gatekeeper_list.html:247 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Ajouter une adresse IP" #: gatekeeper/views.py:379 msgid "IP Address saved successfully." msgstr "Adresse IP enregistrée avec succès." #: gatekeeper/views.py:384 msgid "" "\n" "
IP Address List
\n" "

Manage specific IP addresses or networks that are allowed or " "denied access when using the IP Address List authentication method.

\n" " \n" "
IP Address & Prefix
\n" "

Enter a single IP address (e.g., 192.168.1.50) or a network " "address. Use the prefix length for CIDR notation (e.g., 24 for a /24 " "network). Leave prefix blank for a single host (/32 for IPv4, /128 for IPv6)." "

\n" " \n" "
Action
\n" "

Allow: Grants access to the specified IP/network." "
\n" " Deny: Specifically blocks access from the specified " "IP/network.

\n" " \n" "
Description
\n" "

An optional note to help identify this entry (e.g., \"Office " "Network\", \"Blocked Attacker\").

\n" " " msgstr "" "\n" "
Liste d'adresses IP
\n" "

Gérez les adresses IP ou les réseaux spécifiques dont l'accès est " "autorisé ou refusé lors de l'utilisation de la méthode d'authentification " "par liste d'adresses IP.

\n" " \n" "
Adresse IP et préfixe
\n" "

Saisissez une adresse IP unique (ex : 192.168.1.50) ou une " "adresse réseau. Utilisez la longueur du préfixe pour la notation CIDR (ex : " "24 pour un réseau /24). Laissez le préfixe vide pour un hôte unique (/32 " "pour IPv4, /128 pour IPv6).

\n" " \n" "
Action
\n" "

Autoriser : Accorde l'accès à l'IP/au réseau " "spécifié.
\n" " Refuser : Bloque spécifiquement l'accès à partir de " "l'IP/du réseau spécifié.

\n" " \n" "
Description
\n" "

Une note facultative pour aider à identifier cette entrée (ex : " "\"Réseau de bureau\", \"Attaquant bloqué\").

\n" " " #: gatekeeper/views.py:420 msgid "IP Address deleted successfully." msgstr "Adresse IP supprimée avec succès." #: gatekeeper/views.py:425 msgid "Delete IP Address" msgstr "Supprimer l'adresse IP" #: gatekeeper/views.py:427 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'adresse IP \"%(address)s\" ?" #: intl_tools/forms.py:11 templates/accounts/login.html:36 msgid "Language" msgstr "Langue" #: intl_tools/forms.py:24 templates/template_parts/base_navbar.html:14 msgid "Change Language" msgstr "Changer de langue" #: intl_tools/forms.py:28 msgid "" "If you find any issues with the translation or would like to request a new " "language, please open an" msgstr "" "Si vous constatez un problème dans la traduction ou souhaitez demander une " "nouvelle langue, veuillez ouvrir une" #: routing_templates/forms.py:29 #: templates/firewall/manage_redirect_rule.html:57 #: templates/routing_templates/list.html:9 msgid "WireGuard Instance" msgstr "Instance WireGuard" #: routing_templates/forms.py:30 templates/routing_templates/list.html:24 msgid "Default Template" msgstr "Modèle par Défaut" #: routing_templates/forms.py:31 templates/routing_templates/list.html:10 msgid "Route Type" msgstr "Type de Route" #: routing_templates/forms.py:32 routing_templates/models.py:16 msgid "Custom Routes" msgstr "Routes Personnalisées" #: routing_templates/forms.py:33 msgid "Allow Peer Custom Routes" msgstr "Autoriser les Routes Personnalisées des Pairs" #: routing_templates/forms.py:34 #: templates/wireguard/wireguard_manage_server.html:69 wireguard/forms.py:26 msgid "Enforce Route Policy" msgstr "Appliquer la politique de routage" #: routing_templates/forms.py:91 msgid "Custom routes should be empty when Route Type is 'Default Route'." msgstr "" "Les routes personnalisées doivent être vides lorsque le Type de Route est " "'Route par Défaut'." #: routing_templates/forms.py:96 msgid "" "Allowing peer custom routes is not applicable when Route Type is 'Default " "Route'." msgstr "" "L'autorisation de routes personnalisées de pairs n'est pas applicable " "lorsque le Type de Route est 'Route par Défaut'." #: routing_templates/forms.py:103 msgid "At least one route must be provided when Route Type is 'Custom'." msgstr "" "Au moins une route doit être fournie lorsque le Type de Route est " "'Personnalisée'." #: routing_templates/forms.py:114 routing_templates/forms.py:124 #, python-format msgid "" "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " "10.0.0.0/24)." msgstr "" "Format de route invalide : '%(line)s'. Veuillez utiliser la notation CIDR " "(ex : 10.0.0.0/24)." #: routing_templates/forms.py:132 #, python-format msgid "" "The route %(route)s is not allowed. Use the 'Default Route' type instead." msgstr "" "La route %(route)s n'est pas autorisée. Utilisez le type 'Route par Défaut'." #: routing_templates/forms.py:140 #, python-format msgid "" "'%(line)s' is not a network address. Use the network address (e.g., " "'%(net)s')." msgstr "" "'%(line)s' n'est pas une adresse de réseau. Utilisez l'adresse de réseau " "(ex : '%(net)s')." #: routing_templates/models.py:13 msgid "Default Route (0.0.0.0/0)" msgstr "Route par Défaut (0.0.0.0/0)" #: routing_templates/models.py:14 msgid "Routes from Peers on same Interface" msgstr "Routes des Pairs sur la même Interface" #: routing_templates/models.py:15 msgid "Routes from All Peers" msgstr "Routes de Tous les Pairs" #: routing_templates/models.py:25 msgid "One route per line in CIDR notation." msgstr "Une route par ligne en notation CIDR." #: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:42 msgid "Routing Templates" msgstr "Modèles de Routage" #: routing_templates/views.py:31 msgid "Edit Routing Template: " msgstr "Modifier le Modèle de Routage: " #: routing_templates/views.py:37 msgid "Routing Template deleted|Routing Template deleted: " msgstr "Modèle de Routage supprimé|Modèle de Routage supprimé: " #: routing_templates/views.py:40 msgid "Routing Template not deleted|Invalid confirmation." msgstr "Modèle de Routage non supprimé|Confirmation invalide." #: routing_templates/views.py:44 templates/routing_templates/list.html:38 msgid "Add Routing Template" msgstr "Ajouter un Modèle de Routage" #: routing_templates/views.py:58 msgid "" "\n" "
Routing Templates
\n" "

Define routing configurations that can be applied to peers.

\n" " \n" "
Default Template
\n" "

If checked, this template will be the default for the selected " "WireGuard instance. Only one default template is allowed per instance.

\n" "\n" "
Route Type
\n" "

Select the type of routes to push to the client.

\n" "
    \n" "
  • Default Route (0.0.0.0/0): Redirects all " "traffic through the VPN.
  • \n" "
  • Routes from Peers on same Interface: Pushes " "routes for other peers on the same WireGuard interface.
  • \n" "
  • Routes from All Peers: Pushes routes for " "all peers across all interfaces.
  • \n" "
  • Custom Routes: Allows you to specify custom " "CIDR ranges.
  • \n" "
\n" "\n" "
Custom Routes
\n" "

Enter custom routes in CIDR notation, one per line (e.g., " "192.168.1.0/24).

\n" " \n" "
Allow Peer Custom Routes
\n" "

If checked, allows specific peers to add their own custom routes " "on top of this template.

\n" " \n" "
Enforce Route Policy
\n" "

If enabled, firewall rules will be applied to strictly enforce " "this routing policy.
The peer will only be able to access networks " "explicitly defined by the assigned routing template.
Any traffic to " "destinations outside these routes will be blocked.

\n" "

Note: depending on the number of routes and peers, enabling this " "option may generate a large number of firewall rules.

\n" " " msgstr "" "\n" "
Modèles de Routage
\n" "

Définir des configurations de routage pouvant être appliquées aux " "peers.

\n" " \n" "
Modèle par Défaut
\n" "

Si coché, ce modèle sera le modèle par défaut pour l'instance " "WireGuard sélectionnée. Un seul modèle par défaut est autorisé par instance." "

\n" "\n" "
Type de Route
\n" "

Sélectionnez le type de routes à envoyer au client.

\n" "
    \n" "
  • Route par Défaut (0.0.0.0/0): Redirige tout " "le trafic via le VPN.
  • \n" "
  • Routes des Peers sur la même Interface: " "Envoie les routes des autres peers sur la même interface WireGuard.
  • \n" "
  • Routes de Tous les Peers: Envoie les routes " "de tous les peers sur toutes les interfaces.
  • \n" "
  • Routes Personnalisées: Permet de spécifier " "des plages CIDR personnalisées.
  • \n" "
\n" "\n" "
Routes Personnalisées
\n" "

Entrez des routes personnalisées en notation CIDR, une par ligne " "(ex: 192.168.1.0/24).

\n" " \n" "
Autoriser les Routes Personnalisées des Peers
\n" "

Si coché, permet à des peers spécifiques d'ajouter leurs propres " "routes personnalisées en plus de ce modèle.

\n" " \n" "
Appliquer la politique de routage
\n" "

Si activé, des règles de pare-feu seront appliquées pour faire " "respecter strictement cette politique de routage.
Le pair ne pourra " "accéder qu'aux réseaux explicitement définis par le modèle de routage " "attribué.
Tout trafic vers des destinations en dehors de ces routes sera " "bloqué.

\n" "

Note : selon le nombre de routes et de pairs, l'activation de " "cette option peut générer un grand nombre de règles de pare-feu.

\n" " " #: scheduler/forms.py:17 msgid "Profile Name" msgstr "Nom du Profil" #: scheduler/forms.py:74 templates/scheduler/scheduleprofile_form.html:107 msgid "Start Day" msgstr "Jour de Début" #: scheduler/forms.py:75 templates/scheduler/scheduleprofile_form.html:108 msgid "Start Time" msgstr "Heure de Début" #: scheduler/forms.py:76 templates/scheduler/scheduleprofile_form.html:109 msgid "End Day" msgstr "Jour de Fin" #: scheduler/forms.py:77 templates/scheduler/scheduleprofile_form.html:110 msgid "End Time" msgstr "Heure de Fin" #: scheduler/forms.py:122 msgid "Unable to validate overlaps: schedule profile is missing." msgstr "" "Impossible de valider les chevauchements : le profil de planification est " "manquant." #: scheduler/forms.py:129 scheduler/forms.py:132 msgid "The minimum duration between start and end must be at least 10 minutes." msgstr "" "La durée minimale entre le début et la fin doit être d'au moins 10 minutes." #: scheduler/forms.py:150 #, python-format msgid "This time slot overlaps with an existing slot (%(start)s → %(end)s)." msgstr "" "Ce créneau horaire chevauche un créneau existant (%(start)s → %(end)s)." #: scheduler/forms.py:160 msgid "There must be at least 10 minutes between time slots." msgstr "Il doit y avoir au moins 10 minutes entre les créneaux horaires." #: scheduler/models.py:11 msgid "Monday" msgstr "Lundi" #: scheduler/models.py:12 msgid "Tuesday" msgstr "Mardi" #: scheduler/models.py:13 msgid "Wednesday" msgstr "Mercredi" #: scheduler/models.py:14 msgid "Thursday" msgstr "Jeudi" #: scheduler/models.py:15 msgid "Friday" msgstr "Vendredi" #: scheduler/models.py:16 msgid "Saturday" msgstr "Samedi" #: scheduler/models.py:17 msgid "Sunday" msgstr "Dimanche" #: scheduler/views.py:27 msgid "Edit Schedule Profile" msgstr "Modifier le Profil de Planification" #: scheduler/views.py:31 msgid "Create Schedule Profile" msgstr "Créer un Profil de Planification" #: scheduler/views.py:44 msgid "Schedule Profile saved successfully." msgstr "Profil de planification enregistré avec succès." #: scheduler/views.py:68 msgid "Schedule Profile deleted successfully." msgstr "Profil de planification supprimé avec succès." #: scheduler/views.py:73 msgid "Delete Schedule Profile" msgstr "Supprimer le Profil de Planification" #: scheduler/views.py:75 #, python-format msgid "Are you sure you want to delete the profile \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer le profil \"%(name)s\" ?" #: scheduler/views.py:88 msgid "Edit Time Interval" msgstr "Modifier l'Intervalle de Temps" #: scheduler/views.py:92 msgid "Add Time Interval" msgstr "Ajouter um Intervalle de Temps" #: scheduler/views.py:102 msgid "Time Interval saved successfully." msgstr "Intervalle de temps enregistré avec succès." #: scheduler/views.py:125 msgid "Time Interval deleted successfully." msgstr "Intervalle de temps supprimé avec succès." #: scheduler/views.py:130 msgid "Delete Time Interval" msgstr "Supprimer l'Intervalle de Temps" #: scheduler/views.py:132 msgid "Are you sure you want to delete this time interval?" msgstr "Êtes-vous sûr de vouloir supprimer cet intervalle de temps ?" #: templates/access_denied.html:12 msgid "Sorry, you do not have permission to access this page." msgstr "Désolé, vous n’avez pas l’autorisation d’accéder à cette page." #: templates/access_denied.html:12 msgid "" "Please contact your system administrator if you believe this is an error." msgstr "" "Veuillez contacter votre administrateur système si vous pensez qu’il s’agit " "d’une erreur." #: templates/accounts/login.html:32 msgid "Login" msgstr "Connexion" #: templates/accounts/logout.html:11 msgid "You have been successfully logged out." msgstr "Vous avez été déconnecté avec succès." #: templates/accounts/logout.html:14 msgid "Login again" msgstr "Se reconnecter" #: templates/api_v2/api_documentation.html:33 msgid "Authentication" msgstr "Authentification" #: templates/api_v2/api_documentation.html:41 msgid "Parameters" msgstr "Paramètres" #: templates/api_v2/api_documentation.html:48 #: templates/firewall/firewall_rule_list.html:40 msgid "In" msgstr "Entrée" #: templates/api_v2/api_documentation.html:49 #: templates/gatekeeper/gatekeeper_list.html:150 #: templates/gatekeeper/gatekeeper_list.html:195 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Type" #: templates/api_v2/api_documentation.html:50 msgid "Required" msgstr "Obligatoire" #: templates/api_v2/api_documentation.html:62 #: templates/scheduler/scheduleprofile_form.html:175 msgid "Yes" msgstr "Oui" #: templates/api_v2/api_documentation.html:64 #: templates/scheduler/scheduleprofile_form.html:177 msgid "No" msgstr "Non" #: templates/api_v2/api_documentation.html:72 msgid "Example" msgstr "Exemple" #: templates/api_v2/api_documentation.html:90 msgid "Returns" msgstr "Retourne" #: templates/api_v2/api_documentation.html:111 msgid "Examples" msgstr "Exemples" #: templates/api_v2/api_documentation.html:135 msgid "This API is a work in progress and new endpoints are added as needed." msgstr "" "Cette API est en cours de développement et de nouveaux points de terminaison " "sont ajoutés au besoin." #: templates/api_v2/api_documentation.html:136 msgid "Missing a method or feature?" msgstr "Une méthode ou une fonctionnalité manquante ?" #: templates/api_v2/api_documentation.html:138 msgid "Open an issue on GitHub" msgstr "Ouvrir un ticket sur GitHub" #: templates/api_v2/list.html:36 templates/user_manager/list.html:26 msgid "All" msgstr "Tous" #: templates/api_v2/list.html:43 vpn_invite/forms.py:49 msgid "Disabled" msgstr "Désactivé" #: templates/api_v2/list.html:68 #: templates/app_gateway/app_gateway_list.html:148 #: templates/app_gateway/application_details.html:71 #: templates/app_gateway/application_details.html:121 #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 #: templates/gatekeeper/gatekeeper_list.html:73 #: templates/gatekeeper/gatekeeper_list.html:116 #: templates/gatekeeper/gatekeeper_list.html:161 #: templates/gatekeeper/gatekeeper_list.html:209 #: templates/gatekeeper/gatekeeper_list.html:226 #: templates/gatekeeper/gatekeeper_list.html:278 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 #: templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 #: templates/wireguard/peer_list/peer_preview_modal.html:137 msgid "Edit" msgstr "Modifier" #: templates/app_gateway/access_policy_type_select.html:12 msgid "Choose the type of access policy you want to create." msgstr "Choisissez le type de politique d'accès que vous souhaitez créer." #: templates/app_gateway/access_policy_type_select.html:20 msgid "Allow access to everyone without authentication." msgstr "Autoriser l'accès à tout le monde sans authentification." #: templates/app_gateway/access_policy_type_select.html:21 #: templates/app_gateway/access_policy_type_select.html:32 #: templates/app_gateway/access_policy_type_select.html:43 msgid "Select" msgstr "Sélectionner" #: templates/app_gateway/access_policy_type_select.html:31 msgid "Require authentication using specified methods or groups." msgstr "" "Nécessite une authentification à l'aide de méthodes ou de groupes spécifiés." #: templates/app_gateway/access_policy_type_select.html:42 msgid "Deny all access." msgstr "Refuser tout accès." #: templates/app_gateway/app_gateway_list.html:12 #: templates/app_gateway/app_gateway_list.html:30 msgid "Applications" msgstr "Applications" #: templates/app_gateway/app_gateway_list.html:18 msgid "Access Policies" msgstr "Politiques d'accès" #: templates/app_gateway/app_gateway_list.html:34 #: templates/app_gateway/app_gateway_list.html:54 #: templates/dns/static_host_list.html:70 msgid "Hosts" msgstr "Hôtes" #: templates/app_gateway/app_gateway_list.html:40 msgid "Add Application" msgstr "Ajouter une application" #: templates/app_gateway/app_gateway_list.html:55 msgid "Routes" msgstr "Routes" #: templates/app_gateway/app_gateway_list.html:74 #: templates/app_gateway/application_details.html:39 msgid "Default (Deny)" msgstr "Par défaut (Refuser)" #: templates/app_gateway/app_gateway_list.html:84 msgid "No Applications found." msgstr "Aucune application trouvée." #: templates/app_gateway/app_gateway_list.html:96 msgid "Application" msgstr "Application" #: templates/app_gateway/app_gateway_list.html:115 msgid "No Hosts found." msgstr "Aucun hôte trouvé." #: templates/app_gateway/app_gateway_list.html:123 msgid "Add Access Policy" msgstr "Ajouter une politique d'accès" #: templates/app_gateway/app_gateway_list.html:134 #: templates/gatekeeper/gatekeeper_list.html:43 msgid "Groups" msgstr "Groupes" #: templates/app_gateway/app_gateway_list.html:135 msgid "Auth Methods" msgstr "Méthodes d'authentification" #: templates/app_gateway/app_gateway_list.html:136 #: templates/app_gateway/application_details.html:62 #: templates/app_gateway/application_details.html:109 #: templates/gatekeeper/gatekeeper_list.html:63 #: templates/gatekeeper/gatekeeper_list.html:106 #: templates/gatekeeper/gatekeeper_list.html:151 #: templates/gatekeeper/gatekeeper_list.html:198 #: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Actions" #: templates/app_gateway/app_gateway_list.html:163 msgid "No Access Policies found." msgstr "Aucune politique d'accès trouvée." #: templates/app_gateway/application_details.html:12 #: templates/wireguard/server_detail.html:53 msgid "Back to List" msgstr "Retour à la liste" #: templates/app_gateway/application_details.html:41 msgid "Set Policy" msgstr "Définir la politique" #: templates/app_gateway/application_details.html:48 msgid "Application Hosts" msgstr "Hôtes d'application" #: templates/app_gateway/application_details.html:52 msgid "Add Host" msgstr "Ajouter un hôte" #: templates/app_gateway/application_details.html:86 msgid "No Hosts configured for this application." msgstr "Aucun hôte configuré pour cette application." #: templates/app_gateway/application_details.html:92 msgid "Application Routes" msgstr "Routes d'application" #: templates/app_gateway/application_details.html:96 msgid "Add Route" msgstr "Ajouter une route" #: templates/app_gateway/application_details.html:136 msgid "No Routes configured for this application." msgstr "Aucune route configurée pour cette application." #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 #: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 #: vpn_invite/forms.py:79 vpn_invite/forms.py:80 vpn_invite/forms.py:81 #: vpn_invite/forms.py:82 msgid "Status" msgstr "Statut" #: templates/cluster/workers_list.html:11 #: templates/wireguard/peer_list/peer_data.html:43 #: templates/wireguard/peer_list/peer_preview_modal.html:28 msgid "Location" msgstr "Emplacement" #: templates/cluster/workers_list.html:12 msgid "Last Seen" msgstr "Dernière connexion" #: templates/cluster/workers_list.html:13 #: templates/cluster/workers_list.html:110 msgid "Config Version" msgstr "Version de configuration" #: templates/cluster/workers_list.html:28 msgid "Configuration sync in progress" msgstr "Synchronisation de la configuration en cours" #: templates/cluster/workers_list.html:37 msgid "The worker is outdated. Please update it to the latest version." msgstr "" "Le worker est obsolète. Veuillez le mettre à jour vers la dernière version." #: templates/cluster/workers_list.html:44 msgid "IP Lock Enabled" msgstr "Verrouillage IP activé" #: templates/cluster/workers_list.html:47 #: templates/cluster/workers_list.html:54 #: templates/wireguard/wireguard_manage_peer.html:112 #: templates/wireguard/wireguard_manage_peer.html:121 msgid "Not set" msgstr "Non défini" #: templates/cluster/workers_list.html:61 msgid "Never" msgstr "Jamais" #: templates/cluster/workers_list.html:64 msgid "Last seen more than 10 minutes ago or never seen." msgstr "Vu pour la dernière fois il y a plus de 10 minutes ou jamais vu." #: templates/cluster/workers_list.html:82 msgid "No workers configured" msgstr "Aucun worker configuré" #: templates/cluster/workers_list.html:89 #: templates/cluster/workers_list.html:92 msgid "Cluster Information" msgstr "Informations sur le cluster" #: templates/cluster/workers_list.html:114 msgid "DNS Version" msgstr "Version du DNS" #: templates/cluster/workers_list.html:119 msgid "Stats Cache Refresh Interval" msgstr "Intervalle de rafraîchissement du cache des statistiques" #: templates/cluster/workers_list.html:123 msgid "Cache Enabled" msgstr "Cache activé" #: templates/cluster/workers_list.html:133 msgid "Cache Web Load Previous Count" msgstr "Nombre de chargements précédents du cache Web" #: templates/cluster/workers_list.html:137 msgid "Master Cache Processing Time" msgstr "Temps de traitement du cache maître" #: templates/cluster/workers_list.html:141 msgid "Cluster Cache Processing Time" msgstr "Temps de traitement du cache du cluster" #: templates/cluster/workers_list.html:153 msgid "Primary WireGuard" msgstr "Activer WireGuard principal" #: templates/cluster/workers_list.html:171 msgid "Cluster Feature – Testing Phase" msgstr "Fonctionnalité de Cluster – Phase de test" #: templates/cluster/workers_list.html:178 msgid "The cluster functionality is currently released as experimental." msgstr "La fonctionnalité de cluster est actuellement en phase expérimentale." #: templates/cluster/workers_list.html:179 msgid "At this stage, only core features are implemented:" msgstr "À ce stade, seules les fonctionnalités de base sont implémentées :" #: templates/cluster/workers_list.html:181 msgid "Configuration synchronization service" msgstr "Service de synchronisation de la configuration" #: templates/cluster/workers_list.html:182 msgid "Primary node mirroring (WireGuard and firewall rules)" msgstr "Mise en miroir du nœud primaire (WireGuard et règles de pare-feu)" #: templates/cluster/workers_list.html:183 msgid "DNS rules mirroring" msgstr "Mise en miroir des règles DNS" #: templates/cluster/workers_list.html:184 msgid "Traffic data synchronization" msgstr "Synchronisation des données de trafic" #: templates/cluster/workers_list.html:185 msgid "" "Server selection dropdown before downloading peer configs or VPN invites" msgstr "" "Menu déroulant de sélection de serveur avant de télécharger les " "configurations des pairs ou les invitations VPN" #: templates/cluster/workers_list.html:191 msgid "For more information, please visit:" msgstr "Pour plus d'informations, veuillez visiter :" #: templates/cluster/workers_list.html:195 msgid "I Understand" msgstr "Je comprends" #: templates/console/console.html:12 msgid "Clear" msgstr "Effacer" #: templates/console/console.html:28 msgid "Destination Hostname or IP Address" msgstr "Nom d’hôte ou adresse IP de destination" #: templates/dns/static_host_list.html:9 msgid "Static Host List" msgstr "Liste d’hôtes statiques" #: templates/dns/static_host_list.html:45 msgid "Add" msgstr "Ajouter" #: templates/dns/static_host_list.html:46 msgid "Settings" msgstr "Paramètres" #: templates/dns/static_host_list.html:47 #: templates/wireguard/apply_route_template.html:41 msgid "Apply" msgstr "Appliquer" #: templates/dns/static_host_list.html:59 msgid "DNS Filter Lists" msgstr "Listes de filtres DNS" #: templates/dns/static_host_list.html:71 msgid "Last Update" msgstr "Dernière mise à jour" #: templates/dns/static_host_list.html:73 msgid "Update" msgstr "Mettre à jour" #: templates/dns/static_host_list.html:116 msgid "Add Filter List" msgstr "Ajouter une liste de filtres" #: templates/firewall/firewall_nav_tabs.html:11 msgid "Port Forward" msgstr "Redirection de port" #: templates/firewall/firewall_rule_list.html:41 msgid "Out" msgstr "Sortie" #: templates/firewall/firewall_rule_list.html:42 #: templates/firewall/manage_firewall_rule.html:141 msgid "Source" msgstr "Source" #: templates/firewall/firewall_rule_list.html:43 #: templates/firewall/manage_firewall_rule.html:202 #: templates/firewall/redirect_rule_list.html:15 msgid "Destination" msgstr "Destination" #: templates/firewall/firewall_rule_list.html:45 #: templates/firewall/manage_redirect_rule.html:30 #: templates/firewall/redirect_rule_list.html:14 #: templates/wireguard/wireguard_status.html:47 vpn_invite/forms.py:284 msgid "Port" msgstr "Port" #: templates/firewall/firewall_rule_list.html:46 msgid "State" msgstr "État" #: templates/firewall/firewall_rule_list.html:53 msgid "Automatic rule: Allow established/related traffic" msgstr "Règle automatique: autoriser le trafic établi/associé" #: templates/firewall/firewall_rule_list.html:58 #: templates/firewall/firewall_rule_list.html:74 #: templates/firewall/firewall_rule_list.html:152 msgid "all" msgstr "tous" #: templates/firewall/firewall_rule_list.html:69 msgid "Automatic rule: Route Policy" msgstr "Règle automatique : politique de routage" #: templates/firewall/firewall_rule_list.html:77 msgid "RETURN" msgstr "RETOUR" #: templates/firewall/firewall_rule_list.html:85 #: templates/firewall/firewall_rule_list.html:111 msgid "Automatic Rule: Port forward." msgstr "Règle automatique: redirection de port." #: templates/firewall/firewall_rule_list.html:172 msgid "Automatic Rule: Firewall Settings Peer to Peer traffic" msgstr "Règle automatique: trafic Peer ↔ Peer (paramètres du pare‑feu)" #: templates/firewall/firewall_rule_list.html:193 msgid "Automatic Rule: Firewall Settings Instance to Instance" msgstr "Règle automatique: trafic Instance ↔ Instance (paramètres du pare‑feu)" #: templates/firewall/firewall_rule_list.html:208 msgid "Create Firewall Rule" msgstr "Créer une règle de pare‑feu" #: templates/firewall/firewall_rule_list.html:209 #: templates/firewall/redirect_rule_list.html:59 msgid "Firewall Settings" msgstr "Paramètres du pare‑feu" #: templates/firewall/firewall_rule_list.html:210 msgid "Display automatic rules" msgstr "Afficher les règles automatiques" #: templates/firewall/manage_firewall_rule.html:18 msgid "General" msgstr "Général" #: templates/firewall/manage_firewall_rule.html:79 msgid "" "\n" "
Advanced VPN Firewall Configuration\n" "

\n" " This interface serves as a " "comprehensive tool for managing firewall rules, enabling users to implement " "advanced traffic policies between VPN peers and networks. It simplifies " "establishing firewall rules, packet filtering, and NAT configurations, " "allowing for precise control over network security. Users can define source " "and destination IP addresses, ports, protocols, and actions to tailor " "traffic flow, ensuring a secure and efficient networking environment.\n" "

\n" " " msgstr "" "\n" "
Configuration avancée du pare‑feu " "VPN
\n" "

\n" " Cette interface est un outil complet " "de gestion des règles de pare‑feu ; elle permet de définir des politiques de " "trafic avancées entre pairs VPN et réseaux. Elle simplifie la création de " "règles, le filtrage de paquets et les configurations NAT afin d’offrir un " "contrôle précis sur la sécurité. Les utilisateurs peuvent spécifier adresses " "IP source et destination, ports, protocoles et actions pour ajuster le flux " "de trafic, garantissant ainsi un environnement réseau sûr et efficace.\n" "

\n" " " #: templates/firewall/manage_firewall_rule.html:100 msgid "Interface" msgstr "Interface" #: templates/firewall/manage_firewall_rule.html:179 msgid "" "\n" "
Source Selection
\n" "

\n" " You have the option to apply this " "rule to a specific IP address or network and/or to multiple peers.

\n" " Enabling the \"Include peer " "networks\" option will automatically include all Allowed IPs associated with " "each selected peer.

\n" " Please note that selecting multiple " "peers with included networks on both the source and destination ends may " "result in a rapid increase in the number of firewall rules generated, " "depending on your configuration.

\n" " The \"Not Source\" option negates " "the selected source IP, network, or peer(s).\n" "

\n" " " msgstr "" "\n" "
Sélection de la source
\n" "

\n" " Vous pouvez appliquer cette règle à " "une adresse IP ou un réseau précis et/ou à plusieurs peers.

\n" " L’option « Inclure les réseaux du " "peer » ajoute automatiquement toutes les IP autorisées associées à chaque " "peer sélectionné.

\n" " Attention: choisir plusieurs peers " "avec réseaux inclus en source et en destination peut rapidement augmenter le " "nombre de règles générées.

\n" " L’option « Non‑source » annule la " "source IP, le réseau ou le/les peer(s) sélectionné(s).\n" "

\n" " " #: templates/firewall/manage_firewall_rule.html:240 msgid "" "\n" "
Destination Selection
\n" "

\n" " You have the option to apply this " "rule to a specific IP address or network and/or to multiple peers as the " "destination.

\n" " Enabling the \"Include peer " "networks\" option will automatically include all Allowed IPs associated with " "each selected peer as the destination.

\n" " Please note that selecting multiple " "peers with included networks on both the source and destination ends may " "result in a rapid increase in the number of firewall rules generated, " "depending on your configuration.

\n" " The \"Not Destination\" option " "negates the selected destination IP, network, or peer(s).\n" "

\n" " " msgstr "" "\n" "
Sélection de la destination
\n" "

\n" " Cette règle peut s’appliquer à une " "adresse IP ou à un réseau précis et/ou à plusieurs peers comme destination." "

\n" " « Inclure les réseaux du peer » " "ajoute automatiquement toutes les IP autorisées de chaque peer sélectionné " "en destination.

\n" " Le choix de plusieurs peers avec " "réseaux inclus en source et destination peut générer un grand nombre de " "règles.

\n" " L’option « Non‑destination » annule " "la destination IP, le réseau ou le/les peer(s) sélectionné(s).\n" "

\n" " " #: templates/firewall/manage_firewall_rule.html:297 msgid "" "\n" "
Protocol and Port
\n" "

\n" " Only the most commonly used " "protocols are listed here. If you require a specific protocol, please open " "an issue on GitHub.

\n" " Selecting TCP+UDP will result in the " "duplication of generated rules.

\n" " Ports can be specified as single " "numbers (e.g., 8080) or as ranges (e.g., 8001:8999).\n" "

\n" " " msgstr "" "\n" "
Protocole et port
\n" "

\n" " Seuls les protocoles les plus " "courants sont listés. Si vous en avez besoin d’un autre, ouvrez une issue " "sur GitHub.

\n" " Choisir TCP+UDP dupliquera les " "règles générées.

\n" " Les ports peuvent être indiqués " "individuellement (ex. 8080) ou en plages (ex. 8001:8999).\n" "

\n" " " #: templates/firewall/manage_firewall_rule.html:320 msgid "Packet State" msgstr "État du paquet" #: templates/firewall/manage_firewall_rule.html:471 msgid "Please type 'delete' to remove this firewall rule." msgstr "Tapez « delete » pour supprimer cette règle de pare‑feu." #: templates/firewall/manage_firewall_settings.html:61 msgid "Reset firewall to default" msgstr "Réinitialiser le pare‑feu" #: templates/firewall/manage_firewall_settings.html:77 msgid "" "Reseting the firewall to default will remove all rules and settings. Are you " "sure you want to continue?\\n\\nType 'delete all rules and reset firewall' " "to confirm." msgstr "" "Réinitialiser le pare‑feu supprimera toutes les règles et paramètres. " "Voulez‑vous vraiment continuer ?\\n\\nTapez « delete all rules and reset " "firewall » pour confirmer." #: templates/firewall/manage_redirect_rule.html:40 msgid "Destination Type" msgstr "Type de destination" #: templates/firewall/manage_redirect_rule.html:42 #: templates/firewall/manage_redirect_rule.html:48 #: templates/scheduler/scheduleprofile_form.html:159 #: templates/vpn_invite/invite_settings.html:17 user_manager/forms.py:178 msgid "Peer" msgstr "Pair" #: templates/firewall/manage_redirect_rule.html:74 msgid "Add Forward Rule (allow)" msgstr "Ajouter une règle Forward (allow)" #: templates/firewall/manage_redirect_rule.html:80 #: templates/firewall/redirect_rule_list.html:17 msgid "Masquerade Source" msgstr "Masquer l’adresse source" #: templates/firewall/manage_redirect_rule.html:91 msgid "" "\n" "
Default Ports
\n" "

The default docker-compose.yml file " "specifies the TCP port range 8080-8089. If you wish to change " "the port forwarding to a different range, you must manually edit the " "docker-compose.yml file and rerun the Docker Compose step " "outlined in the deployment instructions.

\n" "
Destination Type: Peer
\n" "

Port redirection will prioritize the first Peer " "IP address assigned a priority of Zero.

\n" "
Destination Type: IP Address
\n" "

Port forwarding rules will redirect to the " "specified IP address. Remember to allocate the IP address or network to a " "Peer.

\n" "
Adding a Forward Rule
\n" "

Automatically generates a forwarding rule to " "accommodate stricter firewall settings.

\n" "
Masquerade Source
\n" "

This serves as a temporary solution when a peer " "does not use the VPN as its default gateway. It's important to note that " "this configuration is not recommended, as it alters the source address of " "all connections to match the IP address of the WireGuard instance.

\n" " " msgstr "" "\n" "
Ports par défaut
\n" "

Le fichier docker-compose.yml par " "défaut définit la plage de ports TCP 8080‑8089. Si vous " "souhaitez rediriger vers une autre plage, modifiez ce fichier manuellement, " "puis relancez l’étape Docker Compose décrite dans les instructions de déploiement.

\n" "
Type de destination: Peer
\n" "

La redirection de port privilégiera la première " "adresse IP du peer dont la priorité est zéro.

\n" "
Type de destination: Adresse IP
\n" "

Les règles de transfert de port pointeront vers " "l’adresse IP spécifiée. N’oubliez pas d’associer cette IP ou ce réseau à un " "peer.

\n" "
Ajouter une règle Forward
\n" "

Génère automatiquement une règle de transfert " "afin de respecter des paramètres de pare‑feu plus stricts.

\n" "
Masquer l’adresse source
\n" "

Solution temporaire lorsque le peer n’utilise pas " "le VPN comme passerelle par défaut. Cette configuration est déconseillée, " "car elle remplace l’adresse source de toutes les connexions par l’IP de " "l’instance WireGuard.

\n" " " #: templates/firewall/manage_redirect_rule.html:143 msgid "To delete this rule, please type:" msgstr "Pour supprimer cette règle, saisissez:" #: templates/firewall/redirect_rule_list.html:12 msgid "Instance" msgstr "Instance" #: templates/firewall/redirect_rule_list.html:16 msgid "Allow Forward" msgstr "Autoriser Forward" #: templates/firewall/redirect_rule_list.html:46 msgid "" "This serves as a temporary solution when a peer does not use the VPN as its " "default gateway. It's important to note that this configuration is not " "recommended, as it alters the source address of all connections to match the " "IP address of the WireGuard instance." msgstr "" "Ceci est une solution temporaire lorsqu’un peer n’utilise pas le VPN comme " "passerelle par défaut. Cette configuration est déconseillée ; elle remplace " "l’adresse source de toutes les connexions par l’IP de l’instance WireGuard." #: templates/firewall/redirect_rule_list.html:58 msgid "Create Port forwarding Rule" msgstr "Créer une règle de redirection de port" #: templates/gatekeeper/gatekeeper_auth_method_form.html:63 msgid "View QR Code" msgstr "Voir le code QR" #: templates/gatekeeper/gatekeeper_auth_method_form.html:74 msgid "Please enter a TOTP Secret first to generate the QR code." msgstr "Veuillez d'abord saisir un secret TOTP pour générer le code QR." #: templates/gatekeeper/gatekeeper_list.html:18 msgid "Gatekeeper Users" msgstr "Utilisateurs de Gatekeeper" #: templates/gatekeeper/gatekeeper_list.html:24 msgid "Allowed Emails & Domains" msgstr "E-mails et domaines autorisés" #: templates/gatekeeper/gatekeeper_list.html:30 msgid "IP Addresses" msgstr "Adresses IP" #: templates/gatekeeper/gatekeeper_list.html:40 #: templates/user_manager/peer_group_list.html:11 msgid "Users" msgstr "Utilisateurs" #: templates/gatekeeper/gatekeeper_list.html:51 #: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 msgid "Add User" msgstr "Ajouter un utilisateur" #: templates/gatekeeper/gatekeeper_list.html:88 msgid "No Gatekeeper Users found." msgstr "Aucun utilisateur Gatekeeper trouvé." #: templates/gatekeeper/gatekeeper_list.html:95 msgid "Add Group" msgstr "Ajouter un groupe" #: templates/gatekeeper/gatekeeper_list.html:131 msgid "No Gatekeeper Groups found." msgstr "Aucun groupe Gatekeeper trouvé." #: templates/gatekeeper/gatekeeper_list.html:140 msgid "Add Auth Method" msgstr "Ajouter une méthode d'authentification" #: templates/gatekeeper/gatekeeper_list.html:176 msgid "No Authentication Methods found." msgstr "Aucune méthode d'authentification trouvée." #: templates/gatekeeper/gatekeeper_list.html:196 msgid "Identity" msgstr "Identité" #: templates/gatekeeper/gatekeeper_list.html:197 #: templates/gatekeeper/gatekeeper_list.html:259 msgid "Auth Method" msgstr "Méthode d'authentification" #: templates/gatekeeper/gatekeeper_list.html:241 msgid "No Allowed Emails or Domains found." msgstr "Aucun e-mail ou domaine autorisé trouvé." #: templates/gatekeeper/gatekeeper_list.html:260 msgid "Manage" msgstr "Gérer" #: templates/gatekeeper/gatekeeper_list.html:293 msgid "No IP Addresses found." msgstr "Aucune adresse IP trouvée." #: templates/generic_delete_confirmation.html:16 msgid "Confirm Delete" msgstr "Confirmer la Suppression" #: templates/routing_templates/list.html:11 msgid "Default" msgstr "Politique par défaut" #: templates/routing_templates/list.html:12 msgid "Updated" msgstr "Mettre à jour" #: templates/scheduler/scheduleprofile_form.html:33 msgid "Schedule Visualization" msgstr "Visualisation de la planification" #: templates/scheduler/scheduleprofile_form.html:70 #: templates/wireguard/apply_route_template.html:44 #: templates/wireguard/wireguard_manage_peer.html:36 msgid "Active" msgstr "Actif" #: templates/scheduler/scheduleprofile_form.html:71 #: templates/scheduler/scheduleprofile_form.html:82 msgid "Inactive" msgstr "Inactif" #: templates/scheduler/scheduleprofile_form.html:78 msgid "Current time" msgstr "Heure actuelle" #: templates/scheduler/scheduleprofile_form.html:79 msgid "Becomes active at" msgstr "Devient actif à" #: templates/scheduler/scheduleprofile_form.html:80 msgid "Becomes inactive at" msgstr "Devient inactif à" #: templates/scheduler/scheduleprofile_form.html:97 msgid "Time Intervals" msgstr "Intervalles de Temps" #: templates/scheduler/scheduleprofile_form.html:100 msgid "Add Interval" msgstr "Ajouter um Intervalle" #: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Aucun intervalle de temps trouvé." #: templates/scheduler/scheduleprofile_form.html:152 msgid "Linked Peers (Debug)" msgstr "Peers liés (Debug)" #: templates/scheduler/scheduleprofile_form.html:160 msgid "Disabled by Schedule" msgstr "Désactivé par la planification" #: templates/scheduler/scheduleprofile_form.html:161 msgid "Next Enable" msgstr "Prochaine activation" #: templates/scheduler/scheduleprofile_form.html:162 msgid "Next Disable" msgstr "Prochaine désactivation" #: templates/scheduler/scheduleprofile_form.html:185 msgid "No peers linked to this profile." msgstr "Aucun peer lié à ce profil." #: templates/scheduler/scheduleprofile_form.html:207 msgid "Show Peers" msgstr "Afficher les Peers" #: templates/scheduler/scheduleprofile_list.html:7 msgid "Schedule Profiles" msgstr "Profils de Planification" #: templates/scheduler/scheduleprofile_list.html:14 #: templates/user_manager/peer_group_list.html:9 #: templates/wireguard/server_detail.html:43 #: templates/wireguard/server_list.html:22 #: templates/wireguard/wireguard_status.html:48 msgid "Peers" msgstr "Peers" #: templates/scheduler/scheduleprofile_list.html:36 msgid "No schedule profiles found." msgstr "Aucun profil de planification trouvé." #: templates/scheduler/scheduleprofile_list.html:44 msgid "Add Profile" msgstr "Ajouter un Profil" #: templates/template_parts/base_footer.html:4 msgid "Update Available" msgstr "Mise à jour disponible" #: templates/template_parts/base_footer.html:7 msgid "Version" msgstr "Version" #: templates/template_parts/base_pending_changes_warning.html:4 msgid "Update Required" msgstr "Mise à jour requise" #: templates/template_parts/base_pending_changes_warning.html:6 msgid "" "Your WireGuard settings have been modified. To apply these changes, please " "update the configuration and reload the WireGuard service." msgstr "" "Les paramètres WireGuard ont été modifiés. Pour appliquer ces changements, " "mettez à jour la configuration et rechargez le service WireGuard." #: templates/template_parts/base_pending_changes_warning.html:15 msgid "Update and restart service" msgstr "Mettre à jour et redémarrer le service" #: templates/template_parts/base_pending_changes_warning.html:23 msgid "Update and reload service" msgstr "Mettre à jour et recharger le service" #: templates/template_parts/base_sidebar.html:32 msgid "Scheduler" msgstr "Planificateur" #: templates/template_parts/base_sidebar.html:97 user_manager/views.py:74 msgid "User Manager" msgstr "Gestion des utilisateurs" #: templates/template_parts/base_sidebar.html:116 #: templates/wireguard/peer_list/peer_preview_modal.html:133 #: vpn_invite/views.py:37 msgid "VPN Invite" msgstr "Invitation VPN" #: templates/user_manager/list.html:9 user_manager/forms.py:20 msgid "User Level" msgstr "Niveau utilisateur" #: templates/user_manager/list.html:10 user_manager/forms.py:24 #: user_manager/views.py:17 msgid "Peer Groups" msgstr "Groupes de peers" #: templates/user_manager/list.html:11 msgid "Permissions" msgstr "Autorisations" #: templates/user_manager/list.html:31 msgid "Restart Enabled" msgstr "Redémarrage autorisé" #: templates/user_manager/list.html:36 msgid "Reload Enabled" msgstr "Rechargement autorisé" #: templates/user_manager/list.html:42 msgid "Console Enabled" msgstr "Console autorisée" #: templates/user_manager/list.html:48 msgid "Enhanced Filter Enabled" msgstr "Filtre avancé activé" #: templates/user_manager/list_buttons.html:3 msgid "List Users" msgstr "Lister les utilisateurs" #: templates/user_manager/list_buttons.html:4 msgid "List Peer Groups" msgstr "Lister les groupes de peers" #: templates/user_manager/list_buttons.html:5 user_manager/views.py:43 msgid "Add Peer Group" msgstr "Ajouter un groupe de peers" #: templates/user_manager/peer_group_list.html:10 user_manager/forms.py:179 msgid "Server Instance" msgstr "Instance serveur" #: templates/vpn_invite/invite_settings.html:18 msgid "Expiration" msgstr "Expiration" #: templates/vpn_invite/invite_settings.html:31 msgid "Remove VPN invitation for peer" msgstr "Supprimer l’invitation VPN du peer" #: templates/vpn_invite/invite_settings.html:38 msgid "No active VPN invitations" msgstr "Aucune invitation VPN active" #: templates/vpn_invite/invite_settings.html:49 vpn_invite/views.py:77 msgid "Email Settings" msgstr "Paramètres e‑mail" #: templates/vpn_invite/invite_settings.html:50 msgid "Invite Settings" msgstr "Paramètres d’invitation" #: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:350 msgid "Apply Route Template" msgstr "Appliquer le modèle de routage" #: templates/wireguard/apply_route_template.html:13 msgid "Select a routing template to apply to the peer" msgstr "Sélectionnez un modèle de routage à appliquer au peer" #: templates/wireguard/apply_route_template.html:16 msgid "Current Active Template:" msgstr "Modèle actif actuel :" #: templates/wireguard/apply_route_template.html:26 msgid "Template Name" msgstr "Nom du modèle" #: templates/wireguard/apply_route_template.html:48 msgid "Unlink" msgstr "Dissocier" #: templates/wireguard/apply_route_template.html:55 msgid "No routing templates available for this interface." msgstr "Aucun modèle de routage disponible pour cette interface." #: templates/wireguard/peer_list/peer_data.html:30 msgid "Route policy enforced" msgstr "Politique de routage appliquée" #: templates/wireguard/peer_list/peer_data.html:36 #: templates/wireguard/peer_list/peer_preview_modal.html:16 msgid "Throughput" msgstr "Débit" #: templates/wireguard/peer_list/peer_data.html:39 #: templates/wireguard/peer_list/peer_preview_modal.html:20 msgid "Transfer" msgstr "Transfert" #: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 #: wireguard_peer/views.py:82 msgid "Primary Server" msgstr "Serveur primaire" #: templates/wireguard/peer_list/peer_data.html:47 #: templates/wireguard/peer_list/peer_preview_modal.html:24 msgid "Latest Handshake" msgstr "Dernier handshake" #: templates/wireguard/peer_list/peer_data.html:61 #: templates/wireguard/peer_list/peer_preview_modal.html:32 msgid "Endpoints" msgstr "Points de terminaison" #: templates/wireguard/peer_list/peer_data.html:66 #: templates/wireguard/peer_list/peer_preview_modal.html:36 msgid "Allowed IPs" msgstr "IPs autorisées" #: templates/wireguard/peer_list/peer_preview_modal.html:45 #: templates/wireguard/wireguard_manage_peer.html:135 msgid "Peer Traffic" msgstr "Trafic du peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 #: templates/wireguard/wireguard_manage_peer.html:152 msgid "No traffic history, please wait a few minutes" msgstr "Aucun historique de trafic ; veuillez patienter quelques minutes" #: templates/wireguard/peer_list/peer_preview_modal.html:69 msgid "Close QR Code" msgstr "Fermer le QR Code" #: templates/wireguard/peer_list/peer_preview_modal.html:82 msgid "VPN Invite Details" msgstr "Détails de l’invitation VPN" #: templates/wireguard/peer_list/peer_preview_modal.html:88 msgid "Expires on" msgstr "Expire le" #: templates/wireguard/peer_list/peer_preview_modal.html:90 msgid "Refresh Invite" msgstr "Actualiser l'invitation" #: templates/wireguard/peer_list/peer_preview_modal.html:94 msgid "Enter Email or WhatsApp Number" msgstr "Saisir l’e‑mail ou le numéro WhatsApp" #: templates/wireguard/peer_list/peer_preview_modal.html:96 msgid "Email or phone number" msgstr "E‑mail ou numéro de téléphone" #: templates/wireguard/peer_list/peer_preview_modal.html:100 msgid "Copy Text" msgstr "Copier le texte" #: templates/wireguard/peer_list/peer_preview_modal.html:106 msgid "WhatsApp" msgstr "WhatsApp" #: templates/wireguard/peer_list/peer_preview_modal.html:121 msgid "Close" msgstr "Fermer" #: templates/wireguard/peer_list/peer_preview_modal.html:125 msgid "Config" msgstr "Config" #: templates/wireguard/peer_list/peer_preview_modal.html:129 msgid "QR Code" msgstr "QR Code" #: templates/wireguard/peer_list/peer_preview_modal.html:145 msgid "Server" msgstr "Serveur primaire" #: templates/wireguard/peer_list/script_peer_extras_toggle.html:7 msgid "Hide extras" msgstr "Masquer les extras" #: templates/wireguard/peer_list/script_peer_extras_toggle.html:10 #: templates/wireguard/wireguard_peer_list.html:39 msgid "Show extras" msgstr "Afficher les extras" #: templates/wireguard/peer_list/script_peer_modal.html:50 msgid "" "This configuration does not contain a private key. You must add the private " "key manually in your client before using it." msgstr "" "Cette configuration ne contient pas de clé privée. Vous devez ajouter la clé " "privée manuellement dans votre client avant de l'utiliser." #: templates/wireguard/peer_list/script_vpn_invite.html:36 #: templates/wireguard/peer_list/script_vpn_invite.html:170 msgid "Access Password" msgstr "Mot de passe d’accès" #: templates/wireguard/peer_list/script_vpn_invite.html:36 #: templates/wireguard/peer_list/script_vpn_invite.html:170 msgid "(Share this password via a separate secure channel)" msgstr "(Partagez ce mot de passe via un canal sécurisé distinct)" #: templates/wireguard/peer_list/script_vpn_invite.html:39 msgid "Unknown error" msgstr "Erreur inconnue" #: templates/wireguard/peer_list/script_vpn_invite.html:43 msgid "Error creating invite." msgstr "Erreur lors de la création de l’invitation." #: templates/wireguard/peer_list/script_vpn_invite.html:80 msgid "Invite text copied to clipboard." msgstr "Texte d’invitation copié dans le presse‑papiers." #: templates/wireguard/peer_list/script_vpn_invite.html:82 msgid "Failed to copy text." msgstr "Échec de la copie du texte." #: templates/wireguard/peer_list/script_vpn_invite.html:85 msgid "Clipboard API not supported." msgstr "API Clipboard non prise en charge." #: templates/wireguard/peer_list/script_vpn_invite.html:94 msgid "Please enter a valid phone number for WhatsApp." msgstr "Veuillez saisir un numéro de téléphone WhatsApp valide." #: templates/wireguard/peer_list/script_vpn_invite.html:106 #: templates/wireguard/peer_list/script_vpn_invite.html:152 msgid "Invite data is not available." msgstr "Les données d’invitation ne sont pas disponibles." #: templates/wireguard/peer_list/script_vpn_invite.html:115 msgid "Please enter a valid email address." msgstr "Veuillez saisir une adresse e‑mail valide." #: templates/wireguard/peer_list/script_vpn_invite.html:137 msgid "Error sending email." msgstr "Erreur lors de l’envoi de l’e‑mail." #: templates/wireguard/peer_list/script_vpn_invite.html:172 msgid "Invite refreshed." msgstr "Invitation actualisée." #: templates/wireguard/peer_list/script_vpn_invite.html:174 #: templates/wireguard/peer_list/script_vpn_invite.html:178 msgid "Error refreshing invite." msgstr "Erreur lors de l’actualisation de l’invitation." #: templates/wireguard/peer_list/script_vpn_invite.html:193 msgid "No invite data available to refresh." msgstr "Aucune donnée d’invitation à actualiser." #: templates/wireguard/peer_list/script_vpn_invite.html:213 msgid "Error closing invite:" msgstr "Erreur lors de la fermeture de l’invitation:" #: templates/wireguard/peer_list/script_wireguard_status_update.html:267 msgid "" "This address does not appear in the wg show command output, likely " "indicating that another peer has an IP overlapping this network or that the " "configuration file is outdated." msgstr "" "Cette adresse n’apparaît pas dans la sortie de la commande « wg show ». Il " "est probable qu’un autre peer utilise un IP chevauchant ce réseau ou que le " "fichier de configuration soit obsolète." #: templates/wireguard/peer_list/script_wireguard_status_update.html:282 msgid "" "At least one address does not appear in the wg show command output, which " "may indicate that another peer is using an overlapping IP or that the " "configuration file is outdated." msgstr "" "Au moins une adresse n’apparaît pas dans la sortie « wg show » ; cela peut " "signifier qu’un autre peer utilise un IP chevauchant ou que la configuration " "est obsolète." #: templates/wireguard/server_detail.html:17 #: templates/wireguard/wireguard_manage_peer.html:104 wireguard/forms.py:18 #: wireguard_peer/forms.py:52 msgid "Public Key" msgstr "Clé publique" #: templates/wireguard/server_detail.html:31 #: templates/wireguard/server_list.html:20 wireguard/forms.py:20 msgid "Listen Port" msgstr "Port d’écoute" #: templates/wireguard/server_detail.html:35 #: templates/wireguard/server_list.html:21 msgid "Address" msgstr "Adresse" #: templates/wireguard/server_detail.html:50 msgid "Edit Instance" msgstr "Modifier l'instance" #: templates/wireguard/server_detail.html:62 msgid "Traffic Graph" msgstr "Graphique de trafic" #: templates/wireguard/server_list.html:7 wireguard/views.py:224 msgid "WireGuard Instances" msgstr "Instances WireGuard" #: templates/wireguard/server_list.html:10 msgid "Create Instance" msgstr "Créer une instance" #: templates/wireguard/server_list.html:61 msgid "No WireGuard instances found." msgstr "Aucune instance WireGuard trouvée." #: templates/wireguard/wireguard_manage_ip.html:18 msgid "Enter Allowed IP" msgstr "Saisir l’IP autorisée" #: templates/wireguard/wireguard_manage_ip.html:34 #: templates/wireguard/wireguard_manage_peer.html:187 #: templates/wireguard/wireguard_manage_peer.html:276 #: wireguard_peer/forms.py:71 msgid "Priority" msgstr "Priorité" #: templates/wireguard/wireguard_manage_ip.html:58 msgid "Please type \\\"delete\\\" to remove this IP address." msgstr "Tapez \\\"delete\\\" pour supprimer cette adresse IP." #: templates/wireguard/wireguard_manage_peer.html:8 msgid "Peer Configuration" msgstr "Configuration du peer" #: templates/wireguard/wireguard_manage_peer.html:27 msgid "Peer State" msgstr "État du Peer" #: templates/wireguard/wireguard_manage_peer.html:31 msgid "Suspended" msgstr "Suspendu" #: templates/wireguard/wireguard_manage_peer.html:40 msgid "Scheduled suspend" msgstr "Suspension agendée" #: templates/wireguard/wireguard_manage_peer.html:43 msgid "Scheduled unsuspend" msgstr "Réactivation agendée" #: templates/wireguard/wireguard_manage_peer.html:54 msgid "Peer Schedule" msgstr "Calendrier du Peer" #: templates/wireguard/wireguard_manage_peer.html:60 msgid "Disabled by schedule" msgstr "Désactivé par le calendrier" #: templates/wireguard/wireguard_manage_peer.html:62 msgid "Next enable" msgstr "Prochaine activation" #: templates/wireguard/wireguard_manage_peer.html:65 msgid "Enabled by schedule" msgstr "Activé par le calendrier" #: templates/wireguard/wireguard_manage_peer.html:67 msgid "Next disable" msgstr "Prochaine désactivation" #: templates/wireguard/wireguard_manage_peer.html:71 msgid "No profile associated" msgstr "Aucun profil associé" #: templates/wireguard/wireguard_manage_peer.html:83 wireguard_peer/forms.py:41 msgid "Persistent Keepalive" msgstr "Keep‑alive persistant" #: templates/wireguard/wireguard_manage_peer.html:96 msgid "Keys" msgstr "Clés" #: templates/wireguard/wireguard_manage_peer.html:107 wireguard/forms.py:17 #: wireguard_peer/forms.py:53 msgid "Private Key" msgstr "Clé privée" #: templates/wireguard/wireguard_manage_peer.html:116 #: wireguard_peer/forms.py:54 msgid "Pre-Shared Key" msgstr "Clé pré‑partagée" #: templates/wireguard/wireguard_manage_peer.html:166 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs dans la section Peer de wg" #: templates/wireguard/wireguard_manage_peer.html:167 msgid "Peer IP Addresses and networks" msgstr "Adresses IP et réseaux du peer" #: templates/wireguard/wireguard_manage_peer.html:185 #: templates/wireguard/wireguard_manage_peer.html:274 msgid "Main ip address" msgstr "Adresse IP principale" #: templates/wireguard/wireguard_manage_peer.html:200 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs dans le fichier de configuration client" #: templates/wireguard/wireguard_manage_peer.html:201 msgid "Client Routing" msgstr "Routage client" #: templates/wireguard/wireguard_manage_peer.html:206 msgid "Apply template" msgstr "Appliquer le modèle" #: templates/wireguard/wireguard_manage_peer.html:210 msgid "Add Client route" msgstr "Ajouter une route client" #: templates/wireguard/wireguard_manage_peer.html:223 msgid "Routing Template" msgstr "Modèle de Routage" #: templates/wireguard/wireguard_manage_peer.html:236 msgid "Template Route" msgstr "Route du modèle" #: templates/wireguard/wireguard_manage_peer.html:247 msgid "" "The client is not configured to use the VPN as the default gateway." "\\n\\nOnly the specific networks listed below are routed through the VPN." "\\n\\nNote: These routes are not automatically pushed to the client. You " "will need to manually update the client configuration file to reflect these " "settings." msgstr "" "Le client n’est pas configuré pour utiliser le VPN comme passerelle par " "défaut.\\n\\nSeuls les réseaux indiqués ci‑dessous sont routés via le VPN." "\\n\\nRemarque: ces routes ne sont pas poussées automatiquement vers le " "client ; vous devrez mettre à jour manuellement son fichier de configuration." #: templates/wireguard/wireguard_manage_peer.html:250 msgid "" "The client is configured to use the VPN as the default gateway. \\n\\nThis " "setting routes all client internet traffic through the VPN, enhancing " "privacy and security across all connections." msgstr "" "Le client est configuré pour utiliser le VPN comme passerelle par défaut." "\\n\\nTout son trafic Internet passe donc par le VPN, améliorant la " "confidentialité et la sécurité de ses connexions." #: templates/wireguard/wireguard_manage_peer.html:258 msgid "default route" msgstr "route par défaut" #: templates/wireguard/wireguard_manage_peer.html:292 msgid "Peer List" msgstr "Liste des Peers" #: templates/wireguard/wireguard_manage_peer.html:296 msgid "Reactivate" msgstr "Réactiver" #: templates/wireguard/wireguard_manage_peer.html:298 msgid "Suspend" msgstr "Suspendre" #: templates/wireguard/wireguard_manage_peer.html:302 msgid "Delete Peer" msgstr "Supprimer le peer" #: templates/wireguard/wireguard_manage_peer.html:312 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Tapez \\\"delete\\\" pour supprimer la configuration du peer." #: templates/wireguard/wireguard_manage_server.html:27 msgid "" "\n" " Optional name used only for display in the " "web interface.\n" " " msgstr "" "\n" " Nom facultatif utilisé uniquement pour " "l'affichage dans l'interface web.\n" " " #: templates/wireguard/wireguard_manage_server.html:31 wireguard/forms.py:23 msgid "Web Refresh Interval" msgstr "Intervalle d’actualisation Web" #: templates/wireguard/wireguard_manage_server.html:33 msgid "" "\n" " Interval used to refresh WireGuard status " "information in the web UI.\n" " " msgstr "" "\n" " Intervalle utilisé pour rafraîchir les " "informations d'état de WireGuard dans l'interface web.\n" " " #: templates/wireguard/wireguard_manage_server.html:37 #: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:19 msgid "Public Address" msgstr "Adresse publique" #: templates/wireguard/wireguard_manage_server.html:39 msgid "" "\n" " Public hostname or IP address and UDP port " "used by peers to connect.\n" "
\n" " The listen port must be exposed and " "mapped in your Docker compose (YAML) file.\n" " " msgstr "" "\n" " Nom d'hôte public ou adresse IP et port UDP " "utilisés par les pairs pour se connecter.\n" "
\n" " Le port d'écoute doit être exposé et " "mappé dans votre fichier Docker compose (YAML).\n" " " #: templates/wireguard/wireguard_manage_server.html:45 msgid "Interface Keys" msgstr "Clés de l'interface" #: templates/wireguard/wireguard_manage_server.html:47 msgid "" "\n" " WireGuard private and public keys for this " "interface.\n" "
\n" " The private key must remain secret.\n" " Changing it requires updating all peer " "configurations.\n" " " msgstr "" "\n" " Clés privée et publique WireGuard pour cette " "interface.\n" "
\n" " La clé privée doit rester secrète.\n" " Le changer nécessite la mise à jour de " "toutes les configurations des pairs.\n" " " #: templates/wireguard/wireguard_manage_server.html:54 msgid "Internal Network" msgstr "Réseau Interne" #: templates/wireguard/wireguard_manage_server.html:56 msgid "" "\n" " Internal IP address and netmask used by the " "WireGuard interface.\n" " " msgstr "" "\n" " Adresse IP interne et masque de réseau " "utilisés par l'interface WireGuard.\n" " " #: templates/wireguard/wireguard_manage_server.html:60 msgid "DNS Configuration" msgstr "Configuration DNS" #: templates/wireguard/wireguard_manage_server.html:62 msgid "" "\n" " DNS servers pushed to peers.\n" "
\n" " Using the internal IP as primary DNS enables " "internal name resolution\n" " and DNS filtering.\n" " " msgstr "" "\n" " Serveurs DNS poussés vers les pairs.\n" "
\n" " L'utilisation de l'IP interne comme DNS " "primaire permet la résolution de noms interne\n" " et le filtrage DNS.\n" " " #: templates/wireguard/wireguard_manage_server.html:71 msgid "" "\n" " Enforces routing rules defined by routing " "templates using firewall rules.\n" "
\n" " Peers with a default route (0.0.0.0/0) are " "not restricted.\n" "

\n" " Note: depending on the number of routes and " "peers, this option may generate\n" " a large number of firewall rules.\n" " " msgstr "" "\n" " Applique les règles de routage définies par " "les modèles de routage à l'aide de règles de pare-feu.\n" "
\n" " Les pairs avec une route par défaut " "(0.0.0.0/0) ne sont pas restreints.\n" "

\n" " Remarque : selon le nombre de routes et de " "pairs, cette option peut générer\n" " un grand nombre de règles de pare-feu.\n" " " #: templates/wireguard/wireguard_peer_list.html:33 msgid "Are you sure you want to create a new peer?" msgstr "Voulez‑vous vraiment créer un nouveau peer ?" #: templates/wireguard/wireguard_peer_list.html:34 #: templates/wireguard/wireguard_peer_list.html:37 msgid "Create Peer" msgstr "Créer un peer" #: templates/wireguard/wireguard_peer_list.html:43 msgid "Enabled Peers" msgstr "Peers activés" #: templates/wireguard/wireguard_peer_list.html:48 msgid "Disabled Peers" msgstr "Peers désactivés" #: templates/wireguard/wireguard_peer_list.html:61 msgid "No WireGuard Instances Found" msgstr "Aucune instance WireGuard trouvée" #: templates/wireguard/wireguard_peer_list.html:63 msgid "" "There are no WireGuard instances configured. You can add a new instance by " "clicking the button below." msgstr "" "Aucune instance WireGuard n’est configurée. Vous pouvez en ajouter une en " "cliquant sur le bouton ci‑dessous." #: templates/wireguard/wireguard_peer_list.html:67 msgid "Add WireGuard Instance" msgstr "Ajouter une instance WireGuard" #: templates/wireguard/wireguard_status.html:9 msgid "Update Configuration" msgstr "Mettre à jour la configuration" #: templates/wireguard/wireguard_status.html:16 msgid "Restart Wireguard service" msgstr "Redémarrer le service WireGuard" #: templates/wireguard/wireguard_status.html:24 msgid "Reload Wireguard service" msgstr "Recharger le service WireGuard" #: templates/wireguard/wireguard_status.html:42 msgid "Instance Traffic" msgstr "Trafic de l’instance" #: user_manager/forms.py:15 msgid "Password Confirmation" msgstr "Confirmation du mot de passe" #: user_manager/forms.py:17 msgid "Reload WireGuard" msgstr "Recharger WireGuard" #: user_manager/forms.py:18 msgid "Restart WireGuard" msgstr "Redémarrer WireGuard" #: user_manager/forms.py:19 msgid "Enhanced Filter" msgstr "Filtre avancé" #: user_manager/forms.py:119 msgid "Password is required for new users." msgstr "Le mot de passe est requis pour les nouveaux utilisateurs." #: user_manager/forms.py:121 msgid "Password confirmation is required for new users." msgstr "" "La confirmation du mot de passe est requise pour les nouveaux utilisateurs." #: user_manager/forms.py:125 msgid "The two password fields didn't match." msgstr "Les deux champs de mot de passe ne correspondent pas." #: user_manager/forms.py:127 msgid "Password must be at least 8 characters long." msgstr "Le mot de passe doit comporter au moins 8 caractères." #: user_manager/forms.py:220 msgid "A peer group with that name already exists." msgstr "Un groupe de peers portant ce nom existe déjà." #: user_manager/models.py:13 msgid "Debugging Analyst" msgstr "Analyste de débogage" #: user_manager/models.py:14 vpn_invite/models.py:25 msgid "View Only" msgstr "Lecture seule" #: user_manager/models.py:15 vpn_invite/models.py:25 msgid "Peer Manager" msgstr "Gestionnaire de peers" #: user_manager/models.py:16 vpn_invite/models.py:25 msgid "WireGuard Manager" msgstr "Gestionnaire WireGuard" #: user_manager/models.py:17 vpn_invite/models.py:25 msgid "Administrator" msgstr "Administrateur" #: user_manager/views.py:31 msgid "Edit Peer Group: " msgstr "Modifier le groupe de peers: " #: user_manager/views.py:36 msgid "Peer Group deleted|Peer Group deleted: " msgstr "Groupe de peers supprimé|Groupe supprimé: " #: user_manager/views.py:39 msgid "Peer Group not deleted|Invalid confirmation." msgstr "Groupe non supprimé|Confirmation invalide." #: user_manager/views.py:58 msgid "" "\n" "
Peers
\n" "

Select which peers can be managed by users with this peer group.\n" "\n" "

WireGuard Instances
\n" "

All peers in this WireGuard instance can be managed by users with " "this peer group, including adding or removing peers.

\n" " " msgstr "" "\n" "
Peers
\n" "

Sélectionnez les peers que les utilisateurs de ce groupe peuvent " "gérer.

\n" "\n" "
Instances WireGuard
\n" "

Tous les peers de cette instance WireGuard pourront être gérés " "par les utilisateurs du groupe, y compris l’ajout et la suppression.

\n" " " #: user_manager/views.py:98 msgid "Edit User" msgstr "Modifier l’utilisateur" #: user_manager/views.py:104 msgid "User deleted|User deleted: " msgstr "Utilisateur supprimé|Utilisateur supprimé: " #: user_manager/views.py:107 msgid "User not deleted|Invalid confirmation." msgstr "Utilisateur non supprimé|Confirmation invalide." #: user_manager/views.py:128 msgid "User Disconnected|User Disconnected: " msgstr "Utilisateur déconnecté|Utilisateur déconnecté: " #: user_manager/views.py:132 msgid "User updated|User updated: " msgstr "Utilisateur mis à jour|Utilisateur mis à jour: " #: user_manager/views.py:134 msgid "User created|User created: " msgstr "Utilisateur créé|Utilisateur créé: " #: user_manager/views.py:139 msgid "" "\n" "

User Levels

\n" "
Debugging Analyst
\n" "

Access to basic system information and logs for troubleshooting. " "No access to modify settings or view sensitive data such as peer keys.

\n" "\n" "
View Only
\n" "

Full view access, including peer keys and configuration files. " "Cannot modify any settings or configurations.

\n" "\n" "
Peer Manager
\n" "

Permissions to add, edit, and remove peers and IP addresses. Does " "not include access to modify WireGuard instance configurations or higher-" "level settings.

\n" "\n" "
Wireguard Manager
\n" "

Authority to add, edit, and remove configurations of WireGuard " "instances.

\n" "\n" "
Administrator
\n" "

Full access across the system. Can view and modify all settings, " "configurations and manage users.

\n" "\n" "
\n" "

Peer Groups

\n" "

Select which peer groups this user can access. If no peer groups " "are selected, the user will have access to all peers.

\n" "\n" "

Console

\n" "

Enable or disable web console access for this user.

\n" "\n" "

Enhanced Filter

\n" "

This option filters the API status response to include only peers " "that the user has access to. Depending on the size of your environment, " "enabling this option may impact performance. To mitigate this, consider " "increasing the \"Web Refresh Interval\" to reduce the number of requests.\n" "\n" " " msgstr "" "\n" "

Niveaux d’utilisateur

\n" "
Analyste de débogage
\n" "

Accès aux informations système de base et aux journaux pour le " "dépannage. Aucun droit de modifier les paramètres ni de consulter des " "données sensibles (comme les clés des peers).

\n" "\n" "
Lecture seule
\n" "

Droit de tout visualiser, y compris les clés des peers et les " "fichiers de configuration. Impossible de modifier quoi que ce soit.

\n" "\n" "
Gestionnaire de peers
\n" "

Peut ajouter, modifier et supprimer des peers et des adresses IP, " "sans toutefois modifier la configuration des instances WireGuard ni d’autres " "paramètres avancés.

\n" "\n" "
Gestionnaire WireGuard
\n" "

Autorisé à ajouter, modifier et supprimer les configurations des " "instances WireGuard.

\n" "\n" "
Administrateur
\n" "

Accès complet au système: peut consulter et modifier tous les " "paramètres, configurations et gérer les utilisateurs.

\n" "\n" "
\n" "

Groupes de peers

\n" "

Sélectionnez les groupes de peers accessibles à cet utilisateur. " "Sans sélection, il aura accès à tous les peers.

\n" "\n" "

Console

\n" "

Activer ou désactiver l’accès à la console Web pour cet " "utilisateur.

\n" "\n" "

Filtre avancé

\n" "

Limite la réponse de l’API aux seuls peers autorisés pour " "l’utilisateur. Selon la taille de votre environnement, cette option peut " "affecter les performances. Pour compenser, augmentez éventuellement " "l’« intervalle d’actualisation Web » afin de réduire le nombre de requêtes.\n" "\n" " " #: user_manager/views.py:175 msgid "Please type the username to proceed." msgstr "Veuillez saisir le nom d’utilisateur pour continuer." #: vpn_invite/forms.py:68 vpn_invite/forms.py:69 vpn_invite/forms.py:70 #: vpn_invite/forms.py:71 vpn_invite/forms.py:72 msgid "URL" msgstr "URL" #: vpn_invite/forms.py:73 vpn_invite/forms.py:74 vpn_invite/forms.py:75 #: vpn_invite/forms.py:76 vpn_invite/forms.py:77 msgid "Text" msgstr "Texte" #: vpn_invite/forms.py:83 msgid "Web Page Instructions" msgstr "Instructions de la page Web" #: vpn_invite/forms.py:84 msgid "Email Subject" msgstr "Objet de l’e‑mail" #: vpn_invite/forms.py:85 msgid "Email Message" msgstr "Message e‑mail" #: vpn_invite/forms.py:86 msgid "Email Enabled" msgstr "E‑mail activé" #: vpn_invite/forms.py:87 msgid "WhatsApp Message" msgstr "Message WhatsApp" #: vpn_invite/forms.py:88 msgid "WhatsApp Enabled" msgstr "WhatsApp activé" #: vpn_invite/forms.py:89 msgid "Text Message" msgstr "Message texte" #: vpn_invite/forms.py:90 msgid "Expiration (minutes)" msgstr "Expiration (minutes)" #: vpn_invite/forms.py:91 msgid "Random Password" msgstr "Mot de passe aléatoire" #: vpn_invite/forms.py:92 msgid "Invite URL" msgstr "URL d’invitation" #: vpn_invite/forms.py:93 msgid "Required User Level" msgstr "Niveau utilisateur requis" #: vpn_invite/forms.py:94 msgid "Default Password" msgstr "Mot de passe par défaut" #: vpn_invite/forms.py:95 msgid "Random Password Length" msgstr "Longueur du mot de passe aléatoire" #: vpn_invite/forms.py:96 msgid "Random Password Complexity" msgstr "Complexité du mot de passe aléatoire" #: vpn_invite/forms.py:103 msgid "General Settings" msgstr "Paramètres généraux" #: vpn_invite/forms.py:125 msgid "Download Buttons" msgstr "Boutons de téléchargement" #: vpn_invite/forms.py:158 msgid "Message templates" msgstr "Modèles de message" #: vpn_invite/forms.py:165 msgid "Email Message Template" msgstr "Modèle de message e‑mail" #: vpn_invite/forms.py:176 msgid "WhatsApp Message Template" msgstr "Modèle de message WhatsApp" #: vpn_invite/forms.py:183 msgid "Text Message Template" msgstr "Modèle de message texte" #: vpn_invite/forms.py:205 msgid "Invite URL must start with 'https://'." msgstr "L’URL d’invitation doit commencer par « https:// »." #: vpn_invite/forms.py:207 msgid "Invite URL must end with '/invite/'." msgstr "L’URL d’invitation doit se terminer par « /invite/ »." #: vpn_invite/forms.py:213 msgid "Expiration (minutes) must be between 1 and 1440." msgstr "L’expiration (en minutes) doit être comprise entre 1 et 1440." #: vpn_invite/forms.py:222 msgid "Default password must not be provided when random password is enabled." msgstr "" "Le mot de passe par défaut ne doit pas être fourni lorsque le mot de passe " "aléatoire est activé." #: vpn_invite/forms.py:224 msgid "Random password length must be at least 6 characters." msgstr "" "La longueur du mot de passe aléatoire doit être d’au moins 6 caractères." #: vpn_invite/forms.py:229 msgid "Default password must be provided when random password is disabled." msgstr "" "Un mot de passe par défaut doit être fourni lorsque le mot de passe " "aléatoire est désactivé." #: vpn_invite/forms.py:231 msgid "Default password must be at least 6 characters long." msgstr "Le mot de passe par défaut doit comporter au moins 6 caractères." #: vpn_invite/forms.py:241 msgid "Text field must not be empty when download button is enabled." msgstr "" "Le champ texte ne doit pas être vide lorsque le bouton de téléchargement est " "activé." #: vpn_invite/forms.py:243 msgid "URL field must not be empty when download button is enabled." msgstr "" "Le champ URL ne doit pas être vide lorsque le bouton de téléchargement est " "activé." #: vpn_invite/forms.py:252 msgid "" "Default password must not be contained in any message template. Found at: " msgstr "" "Le mot de passe par défaut ne doit figurer dans aucun modèle de message. " "Trouvé dans: " #: vpn_invite/forms.py:259 #, python-brace-format msgid "The template must include the placeholder '{invite_url}'." msgstr "Le modèle doit contenir l’espace réservé « {invite_url} »." #: vpn_invite/forms.py:283 msgid "Host" msgstr "Hôte" #: vpn_invite/forms.py:285 msgid "Encryption" msgstr "Chiffrement" #: vpn_invite/forms.py:286 msgid "From Address" msgstr "Adresse de l’expéditeur" #: vpn_invite/forms.py:337 msgid "SMTP port must be between 1 and 65535." msgstr "Le port SMTP doit être compris entre 1 et 65535." #: vpn_invite/models.py:8 #, python-brace-format msgid "" "Hello,\n" "\n" "You're invited to join our secure WireGuard VPN network. Please click the " "link below to access your personalized VPN configuration:\n" "\n" "{invite_url}\n" "\n" "Note: This invitation link will expire in {expire_minutes} minutes. If you " "need a new link after expiration, please request another invite." msgstr "" "Bonjour,\n" "\n" "Vous êtes invité·e à rejoindre notre réseau VPN WireGuard sécurisé. Cliquez " "sur le lien ci‑dessous pour accéder à votre configuration VPN " "personnalisée:\n" "\n" "{invite_url}\n" "\n" "Remarque: ce lien d’invitation expirera dans {expire_minutes} minutes. Si " "vous avez besoin d’un nouveau lien après expiration, veuillez demander une " "nouvelle invitation." #: vpn_invite/models.py:16 msgid "" "

Welcome to Your VPN Setup

\n" "

Begin by downloading the WireGuard app for your device using one of the " "links below.

\n" "

Once installed, you can either scan the QR code or " "download the configuration file to quickly import your " "settings and start using your secure VPN connection.

" msgstr "" "

Bienvenue dans votre configuration VPN

\n" "

Commencez par télécharger l’application WireGuard pour votre appareil à " "l’aide de l’un des liens ci‑dessous.

\n" "

Une fois installée, vous pouvez scanner le QR Code ou " "télécharger le fichier de configuration pour importer " "rapidement vos paramètres et profiter de votre connexion VPN sécurisée.

" #: vpn_invite/models.py:30 msgid "Letters, Digits, Special Characters" msgstr "Lettres, chiffres, caractères spéciaux" #: vpn_invite/models.py:31 msgid "Letters, Digits" msgstr "Lettres, chiffres" #: vpn_invite/models.py:31 msgid "Letters" msgstr "Lettres" #: vpn_invite/models.py:31 msgid "Digits" msgstr "Chiffres" #: vpn_invite/models.py:55 msgid "" "Download the WireGuard app for your device using one of the links below. " "After installation, you can scan the QR code or download the configuration " "file to import on your device." msgstr "" "Téléchargez l’application WireGuard pour votre appareil via l’un des liens " "ci‑dessous. Après l’installation, scannez le QR Code ou téléchargez le " "fichier de configuration pour l’importer sur votre appareil." #: vpn_invite/models.py:61 msgid "WireGuard VPN Invite" msgstr "Invitation VPN WireGuard" #: vpn_invite/views.py:53 msgid "Invite Settings|Settings saved successfully." msgstr "Paramètres d’invitation | Paramètres enregistrés avec succès." #: vpn_invite/views.py:57 msgid "VPN Invite Settings" msgstr "Paramètres de l’invitation VPN" #: vpn_invite/views.py:73 msgid "Email Settings|Settings saved successfully." msgstr "Paramètres e‑mail | Paramètres enregistrés avec succès." #: wireguard/forms.py:16 msgid "Instance ID" msgstr "ID de l’instance" #: wireguard/forms.py:21 msgid "Internal IP Address" msgstr "Adresse IP interne" #: wireguard/forms.py:117 msgid "Peer List Refresh Interval must be at least 5 seconds" msgstr "" "L'intervalle d'actualisation de la liste des peers doit être d'au moins 5 " "secondes." #: wireguard/forms.py:120 msgid "Invalid hostname or IP Address" msgstr "Nom d’hôte ou adresse IP invalide" #: wireguard/forms.py:130 msgid "The selected network range overlaps with another instance." msgstr "La plage réseau sélectionnée chevauche une autre instance." #: wireguard/views.py:98 msgid "WireGuard Status" msgstr "Statut WireGuard" #: wireguard/views.py:131 msgid "Update WireGuard Instance" msgstr "Mettre à jour l’instance WireGuard" #: wireguard/views.py:135 msgid "Delete WireGuard Instance" msgstr "Supprimer l’instance WireGuard" #: wireguard/views.py:138 msgid "Error removing instance: wg" msgstr "Erreur lors de la suppression de l’instance: wg" #: wireguard/views.py:138 msgid "" "|Cannot delete the requested WireGuard instance. There are still peers " "associated with this instance." msgstr "" "|Impossible de supprimer l’instance WireGuard demandée ; des peers y sont " "encore associés." #: wireguard/views.py:141 msgid "|WireGuard instance deleted: wg" msgstr "|Instance WireGuard supprimée: wg" #: wireguard/views.py:144 msgid "Invalid confirmation|Please confirm deletion of WireGuard instance: wg" msgstr "" "Confirmation invalide | Veuillez confirmer la suppression de l’instance " "WireGuard: wg" #: wireguard/views.py:148 msgid "Create a new WireGuard Instance" msgstr "Créer une nouvelle instance WireGuard" #: wireguard/views.py:149 msgid "New WireGuard Instance" msgstr "Nouvelle instance WireGuard" #: wireguard_peer/forms.py:69 msgid "Allowed IP or Network" msgstr "IP ou réseau autorisé" #: wireguard_peer/forms.py:79 msgid "Please provide a valid IP address." msgstr "Veuillez fournir une adresse IP valide." #: wireguard_peer/forms.py:88 msgid "A peer can have only one IP with priority zero." msgstr "Un peer ne peut avoir qu’une seule IP de priorité zéro." #: wireguard_peer/forms.py:94 msgid "This IP is already in use by another peer." msgstr "Cette adresse IP est déjà utilisée par un autre peer." #: wireguard_peer/forms.py:96 msgid "" "The IP address does not belong to the Peer's WireGuard instance network " "range. Please check the IP address or change the priority." msgstr "" "L’adresse IP n’appartient pas à la plage réseau de l’instance WireGuard du " "peer. Veuillez vérifier l’adresse ou modifier la priorité." #: wireguard_peer/forms.py:98 msgid "The netmask for priority 0 IP must be 32." msgstr "Le masque de sous‑réseau pour une IP de priorité 0 doit être 32." #: wireguard_peer/forms.py:100 msgid "The IP address is the same as the Peer's WireGuard instance address." msgstr "" "Cette adresse IP est identique à celle de l’instance WireGuard du peer." #: wireguard_peer/forms.py:103 msgid "" "The IP address belongs to the Peer's WireGuard instance network range. " "Please check the IP address or change use priority 0 instead." msgstr "" "L’adresse IP se trouve déjà dans la plage réseau de l’instance WireGuard du " "peer. Vérifiez l’adresse ou utilisez plutôt la priorité 0." #: wireguard_peer/forms.py:106 msgid "The peer's routing template does not allow custom routes." msgstr "Le modèle de routage du pair n'autorise pas les routes personnalisées." #: wireguard_peer/forms.py:108 msgid "Priority must be greater than or equal to 1" msgstr "La priorité doit être supérieure ou égale à 1." #: wireguard_peer/forms.py:110 msgid "Invalid config file" msgstr "Fichier de configuration invalide" #: wireguard_peer/forms.py:125 msgid "Reactivate now" msgstr "Réactiver maintenant" #: wireguard_peer/forms.py:128 msgid "Suspend now" msgstr "Suspendre maintenant" #: wireguard_peer/forms.py:139 msgid "Schedule" msgstr "Programmer" #: wireguard_peer/forms.py:143 msgid "Clear Schedule" msgstr "Effacer la programmation" #: wireguard_peer/forms.py:181 msgid "" "The difference between suspend and unsuspend times must be at least 5 " "minutes." msgstr "" "La différence entre les heures de suspension et de réactivation doit être " "d'au moins 5 minutes." #: wireguard_peer/forms.py:185 msgid "Scheduled suspension time must be at least 10 minutes in the future." msgstr "" "L'heure de suspension programmée doit être au moins 10 minutes dans le futur." #: wireguard_peer/forms.py:188 msgid "Scheduled unsuspension time must be at least 10 minutes in the future." msgstr "" "L'heure de réactivation programmée doit être au moins 10 minutes dans le " "futur." #: wireguard_peer/functions.py:58 msgid "Error creating peer|The specified IP address is not available." msgstr "" "Erreur lors de la création du peer | L'adresse IP spécifiée n'est pas " "disponible." #: wireguard_peer/functions.py:84 wireguard_peer/views.py:150 msgid "Peer created|Peer created successfully." msgstr "Peer créé | Peer créé avec succès." #: wireguard_peer/functions.py:87 msgid "Error creating peer|No available IP address found for peer creation." msgstr "Erreur de création | Aucune adresse IP disponible pour créer le peer." #: wireguard_peer/views.py:28 msgid "Disabled WireGuard Peer List" msgstr "Liste des peers WireGuard désactivés" #: wireguard_peer/views.py:31 msgid "WireGuard Peer List" msgstr "Liste des peers WireGuard" #: wireguard_peer/views.py:158 msgid "Peer not created|Missing instance parameter." msgstr "Peer non créé|Paramètre d'instance manquant." #: wireguard_peer/views.py:179 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer supprimé | Peer supprimé avec succès." #: wireguard_peer/views.py:182 msgid "" "Error deleting peer|Invalid confirmation message. Type \"delete\" to confirm." msgstr "" "Erreur de suppression | Message de confirmation invalide. Tapez « delete » " "pour confirmer." #: wireguard_peer/views.py:184 msgid "Peer Configuration: " msgstr "Configuration du peer: " #: wireguard_peer/views.py:229 msgid "Peer updated|Peer updated successfully." msgstr "Peer mis à jour | Peer mis à jour avec succès." #: wireguard_peer/views.py:232 msgid "Edit Peer" msgstr "Modifier le Peer" #: wireguard_peer/views.py:234 msgid "Edit Peer Name" msgstr "Modifier le Nom du Peer" #: wireguard_peer/views.py:236 msgid "Edit Keepalive" msgstr "Modifier le Keepalive" #: wireguard_peer/views.py:238 msgid "Edit Keys" msgstr "Modifier les Clés" #: wireguard_peer/views.py:270 msgid "IP address deleted|IP address deleted successfully." msgstr "Adresse IP supprimée | Suppression réussie." #: wireguard_peer/views.py:275 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." msgstr "" "Erreur de suppression de l’IP | Message de confirmation invalide. Tapez " "« delete » pour confirmer." #: wireguard_peer/views.py:280 msgid "Manage client route" msgstr "Gérer la route client" #: wireguard_peer/views.py:282 msgid "Manage IP address or Network" msgstr "Gérer l’adresse IP ou le réseau" #: wireguard_peer/views.py:295 msgid "IP address updated|IP address updated successfully." msgstr "Adresse IP mise à jour | Mise à jour réussie." #: wireguard_peer/views.py:297 msgid "IP address added|IP address added successfully." msgstr "Adresse IP ajoutée | Ajout réussi." #: wireguard_peer/views.py:329 msgid "Route template unlinked successfully." msgstr "Modèle de routage dissocié avec succès." #: wireguard_peer/views.py:339 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." msgstr "" "Impossible d'appliquer le modèle : ce modèle n'autorise pas les routes " "personnalisées, mais le peer a des routes client personnalisées définies." #: wireguard_peer/views.py:346 msgid "Route template applied successfully." msgstr "Modèle de routage appliqué avec succès." #: wireguard_peer/views.py:379 msgid "Peer suspension/unsuspension scheduled successfully." msgstr "Suspension/réactivation du peer programmée avec succès." #: wireguard_peer/views.py:381 msgid "" "Error scheduling peer suspension/unsuspension. Please correct the errors " "below." msgstr "" "Erreur lors de la programmation de la suspension/réactivation du peer. " "Veuillez corriger les erreurs ci-dessous." #: wireguard_peer/views.py:388 msgid "Schedule cleared successfully." msgstr "Programmation effacée avec succès." #: wireguard_peer/views.py:402 msgid "Peer suspended successfully." msgstr "Peer suspendu avec succès." #: wireguard_peer/views.py:404 msgid "Peer suspended, but failed to reload WireGuard interface: " msgstr "Peer suspendu, mais échec du rechargement de l'interface WireGuard : " #: wireguard_peer/views.py:414 msgid "Peer reactivated successfully." msgstr "Peer réactivé avec succès." #: wireguard_peer/views.py:416 msgid "Peer reactivated, but failed to reload WireGuard interface: " msgstr "Peer réactivé, mais échec du rechargement de l'interface WireGuard : " #: wireguard_peer/views.py:419 msgid "Invalid action." msgstr "Action invalide." #: wireguard_peer/views.py:424 msgid "Suspend / Reactivate Peer" msgstr "Suspendre / Réactiver le Peer" #: wireguard_peer/views.py:447 msgid "Peer scheduling profile updated successfully." msgstr "Profil de planification du peer mis à jour avec succès." #: wireguard_peer/views.py:460 msgid "Manage Peer Schedule Profile" msgstr "Gérer le Profil de Planification du Peer" #: wireguard_tools/views.py:237 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." msgstr "" "Exportation réussie! | Les fichiers de configuration WireGuard ont été " "exportés vers /etc/wireguard/." #: wireguard_tools/views.py:239 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." msgstr "" "Exportation réussie! | Les fichiers WireGuard ont été exportés vers /etc/" "wireguard/. N’oubliez pas de redémarrer les interfaces." #: wireguard_tools/views.py:341 msgid "Error reloading" msgstr "Erreur de rechargement" #: wireguard_tools/views.py:353 msgid "Error stopping" msgstr "Erreur à l’arrêt" #: wireguard_tools/views.py:358 msgid "Error starting" msgstr "Erreur au démarrage" #: wireguard_tools/views.py:365 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " "please report them." msgstr "" "AVERTISSEMENT | L’interface a été rechargée, pas redémarrée. Vérifiez que " "les peers fonctionnent comme prévu ; signalez tout problème rencontré." #: wireguard_tools/views.py:366 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard rechargé | Le service WireGuard a été rechargé." #: wireguard_tools/views.py:368 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard redémarré | Le service WireGuard a été redémarré." #: wireguard_tools/views.py:371 msgid "Errors encountered|Error processing one or more interfaces." msgstr "" "Erreurs rencontrées | Problème lors du traitement d’une ou plusieurs " "interfaces." #: wireguard_tools/views.py:374 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "Aucune interface trouvée | Aucune interface WireGuard à traiter." #~ msgid "" #~ "\n" #~ "
Access Policy
\n" #~ "

Access policies define HOW and WHO can access your " #~ "applications and routes.

\n" #~ "
    \n" #~ "
  • Public: No authentication required.\n" #~ "
  • Protected: Requires authentication " #~ "(optional: limit to specific groups).
  • \n" #~ "
  • Deny: Blocks all access.
  • \n" #~ "
\n" #~ " " #~ msgstr "" #~ "\n" #~ "
Politique d'accès
\n" #~ "

Les politiques d'accès définissent COMMENT et QUI peut " #~ "accéder à vos applications et itinéraires.

\n" #~ "
    \n" #~ "
  • Public : Aucune authentification " #~ "requise.
  • \n" #~ "
  • Protégé : Nécessite une " #~ "authentification (facultatif : limite à des groupes spécifiques).
  • \n" #~ "
  • Refuser : Bloque tout accès.
  • \n" #~ "
\n" #~ " " #~ msgid "Bypass (public)" #~ msgstr "Bypass (public)" #~ msgid "One Factor" #~ msgstr "Un facteur" #~ msgid "Two Factor" #~ msgstr "Deux facteurs" #, fuzzy #~| msgid "Sort Order" #~ msgid "Priority Order" #~ msgstr "Ordre" #~ msgid "Evaluation order — lower value means higher priority" #~ msgstr "" #~ "Ordre d'évaluation — une valeur plus faible signifie une priorité plus " #~ "élevée" #, fuzzy #~| msgid "Default Policy" #~ msgid "Set Default Policy" #~ msgstr "Politique par défaut" #, fuzzy #~| msgid "Default Policy" #~ msgid "Edit Default Policy" #~ msgstr "Politique par défaut" #, fuzzy #~| msgid "Default Policy" #~ msgid "Remove Default Policy" #~ msgstr "Politique par défaut" #, fuzzy #~| msgid "No time intervals found." #~ msgid "No Routes found." #~ msgstr "Aucun intervalle de temps trouvé." #~ msgid "IP/Network Address" #~ msgstr "Adresse IP/Réseau" #~ msgid "" #~ "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." #~ msgstr "" #~ "Longueur du préfixe CIDR (ex : 24 pour /24). Laissez vide pour un seul " #~ "hôte." #~ msgid "Intervals Count" #~ msgstr "Nombre d'intervalles" #~ msgid "Created" #~ msgstr "Créé" #~ msgid "Slots Count" #~ msgstr "Nombre de Créneaux" #~ msgid "Edit Schedule Slot" #~ msgstr "Modifier le Créneau de Planification" #~ msgid "Add Schedule Slot" #~ msgstr "Ajouter un Créneau de Planification" #~ msgid "Delete Schedule Slot" #~ msgstr "Supprimer le Créneau de Planification" #~ msgid "Delete?" #~ msgstr "Supprimer ?" #~ msgid "" #~ "You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' " #~ "is checked." #~ msgstr "" #~ "Vous ne pouvez pas activer « Appliquer la politique de routage » lorsque " #~ "« Autoriser les routes personnalisées des pairs » est coché." #~ msgid "Action Required!" #~ msgstr "Action requise!" #~ msgid "" #~ "When manually updating the \"Public Key\", \"Pre-Shared Key\", or " #~ "\"Private Key\", please ensure the configuration is correct." #~ msgstr "" #~ "Lorsque vous modifiez manuellement la « Clé publique », la « Clé " #~ "pré‑partagée » ou la « Clé privée », vérifiez que la configuration est " #~ "correcte." #~ msgid "" #~ "The private key is empty. The peer’s configuration file and QR code will " #~ "be generated without the private key.\\n It must be inserted manually " #~ "when importing.\\n\\n Do you want to continue?" #~ msgstr "" #~ "La clé privée est vide. Le fichier de configuration et le QR code du peer " #~ "seront générés sans la clé privée.\\n Elle doit être insérée manuellement " #~ "lors de l'importation.\\n\\n Voulez-vous continuer ?" #~ msgid "Post Up" #~ msgstr "Post‑Up" #~ msgid "Post Down" #~ msgstr "Post‑Down" #~ msgid "Create a new Peer for instance wg" #~ msgstr "Créer un nouveau peer pour l’instance wg" #~ msgid "Update Peer: " #~ msgstr "Mettre à jour le peer: " #~ msgid "Warning:" #~ msgstr "Avertissement :" #~ msgid "Next priority features (coming soon):" #~ msgstr "Prochaines fonctionnalités prioritaires (bientôt) :" #~ msgid "Stats Sync Interval" #~ msgstr "Intervalle de synchronisation des statistiques" #~ msgid "" #~ "In the current version, peer state information is not collected by the " #~ "master server." #~ msgstr "" #~ "Dans la version actuelle, les informations d'état des pairs ne sont pas " #~ "collectées par le serveur maître." #~ msgid "" #~ "Traffic data, IP address, handshake status, and online/offline state will " #~ "not be visible for peers connected to cluster nodes." #~ msgstr "" #~ "Les données de trafic, l'adresse IP, le statut du handshake et l'état en " #~ "ligne/hors ligne ne seront pas visibles pour les pairs connectés aux " #~ "nœuds du cluster." #~ msgid "Disabling WireGuard on the master server is currently not supported." #~ msgstr "" #~ "La désactivation de WireGuard sur le serveur maître n'est pas prise en " #~ "charge pour le moment." #~ msgid "Stats Sync Interval (seconds)" #~ msgstr "Intervalle de synchronisation des stats (secondes)" #~ msgid "Stats Cache Interval (seconds)" #~ msgstr "Intervalle de cache des stats (secondes)" #~ msgid "Stats sync interval must be at least 60 seconds." #~ msgstr "" #~ "L'intervalle de synchronisation des statistiques doit être d'au moins 60 " #~ "secondes." #~ msgid "Stats cache interval must be at least 60 seconds." #~ msgstr "" #~ "L'intervalle de cache des statistiques doit être d'au moins 60 secondes." #~ msgid "Config Pending" #~ msgstr "Configuration en attente" #~ msgid "Force Reload" #~ msgstr "Forcer le rechargement" #~ msgid "Options" #~ msgstr "Options"