From 2e7bdc3e9e95d58c400cddcee92f55825100789b Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Tue, 27 Jan 2026 15:08:59 -0300 Subject: [PATCH] update translations --- locale/de/LC_MESSAGES/django.mo | Bin 64036 -> 62304 bytes locale/de/LC_MESSAGES/django.po | 473 ++++++++++++++++++----------- locale/es/LC_MESSAGES/django.mo | Bin 62355 -> 60697 bytes locale/es/LC_MESSAGES/django.po | 471 ++++++++++++++++++---------- locale/fr/LC_MESSAGES/django.mo | Bin 64619 -> 62864 bytes locale/fr/LC_MESSAGES/django.po | 473 ++++++++++++++++++----------- locale/pt_BR/LC_MESSAGES/django.mo | Bin 64158 -> 62486 bytes locale/pt_BR/LC_MESSAGES/django.po | 471 ++++++++++++++++++---------- locale/sk/LC_MESSAGES/django.mo | Bin 63942 -> 62243 bytes locale/sk/LC_MESSAGES/django.po | 470 ++++++++++++++++++---------- 10 files changed, 1516 insertions(+), 842 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index b0063104ecd45141846124c9c7198b51bf3c1ef5..fca0d793b6876dd412f4148efc3b41ea0b348c9d 100644 GIT binary patch delta 10483 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 diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 8d41d81..5f18fb4 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-26 10:41-0300\n" +"POT-Creation-Date: 2026-01-27 15:08-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,8 +22,9 @@ msgstr "" #: templates/routing_templates/list.html:8 #: templates/user_manager/peer_group_list.html:8 #: templates/wireguard/server_detail.html:12 -#: templates/wireguard/server_list.html:19 user_manager/forms.py:177 -#: wireguard_peer/forms.py:10 +#: templates/wireguard/server_list.html:19 +#: templates/wireguard/wireguard_manage_peer.html:15 user_manager/forms.py:177 +#: wireguard_peer/forms.py:27 msgid "Name" msgstr "Name" @@ -70,10 +71,9 @@ msgstr "Token" #: templates/wireguard/apply_route_template.html:63 #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 -#: templates/wireguard/wireguard_manage_peer.html:203 -#: templates/wireguard/wireguard_manage_server.html:119 -#: user_manager/forms.py:49 user_manager/forms.py:180 vpn_invite/forms.py:192 -#: vpn_invite/forms.py:326 +#: templates/wireguard/wireguard_manage_peer.html:236 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:22 msgid "Back" msgstr "Zurück" @@ -83,7 +83,7 @@ msgstr "Zurück" #: templates/firewall/manage_redirect_rule.html:86 #: 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 +#: user_manager/forms.py:181 wireguard/forms.py:52 msgid "Delete" msgstr "Löschen" @@ -92,11 +92,9 @@ msgstr "Löschen" #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/wireguard/wireguard_manage_ip.html:41 -#: templates/wireguard/wireguard_manage_peer.html:201 -#: templates/wireguard/wireguard_manage_server.html:117 -#: user_manager/forms.py:98 user_manager/forms.py:205 vpn_invite/forms.py:191 -#: vpn_invite/forms.py:325 +#: 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:21 msgid "Save" msgstr "Speichern" @@ -328,11 +326,11 @@ msgid "Enhanced filter is enabled. This command is not available." msgstr "" "Der erweiterte Filter ist aktiviert. Dieser Befehl ist nicht verfügbar." -#: dns/forms.py:22 wireguard/forms.py:22 +#: dns/forms.py:22 wireguard/forms.py:24 msgid "Primary DNS" msgstr "Primärer DNS" -#: dns/forms.py:23 wireguard/forms.py:23 +#: dns/forms.py:23 wireguard/forms.py:25 msgid "Secondary DNS" msgstr "Sekundärer DNS" @@ -493,8 +491,8 @@ msgstr "Ausgangs‑Interface" msgid "Source IP" msgstr "Quell‑IP" -#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:18 -#: wireguard_peer/forms.py:30 +#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:22 +#: wireguard_peer/forms.py:65 msgid "Netmask" msgstr "Netzmaske" @@ -610,15 +608,15 @@ msgstr "WAN‑Interface" msgid "MASQUERADE" msgstr "MASQUERADE" -#: firewall/tools.py:44 +#: firewall/tools.py:45 msgid "Masquerade traffic from VPN to WAN" msgstr "VPN‑Verkehr zum WAN maskieren" -#: firewall/tools.py:54 firewall/tools.py:58 firewall/tools.py:62 +#: firewall/tools.py:55 firewall/tools.py:59 firewall/tools.py:63 msgid "Reject traffic to private networks exiting on WAN interface" msgstr "Verkehr zu privaten Netzen über das WAN‑Interface zurückweisen" -#: firewall/tools.py:66 +#: firewall/tools.py:67 msgid "Allow traffic from VPN to WAN" msgstr "Verkehr von VPN zum WAN zulassen" @@ -717,44 +715,60 @@ msgid "Allow Peer Custom Routes" msgstr "Benutzerdefinierte Routen für Peers erlauben" #: routing_templates/forms.py:34 +#: templates/wireguard/wireguard_manage_server.html:69 wireguard/forms.py:26 msgid "Enforce Route Policy" msgstr "Routenrichtlinie erzwingen" -#: routing_templates/forms.py:86 -msgid "" -"You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' is " -"checked." +#: routing_templates/forms.py:90 +msgid "Custom routes should be empty when Route Type is 'Default Route'." msgstr "" -"Sie können 'Routenrichtlinie erzwingen' nicht aktivieren, wenn " -"'Benutzerdefinierte Routen für Peers erlauben' ausgewählt ist." +"Benutzerdefinierte Routen sollten leer sein, wenn der Routentyp " +"'Standardroute' ist." -#: routing_templates/forms.py:89 +#: routing_templates/forms.py:95 +#, fuzzy +#| msgid "Custom routes should be empty when Route Type is 'Default Route'." +msgid "" +"Allowing peer custom routes is not applicable when Route Type is 'Default " +"Route'." +msgstr "" +"Benutzerdefinierte Routen sollten leer sein, wenn der Routentyp " +"'Standardroute' ist." + +#: routing_templates/forms.py:102 msgid "At least one route must be provided when Route Type is 'Custom'." msgstr "" "Mindestens eine Route muss angegeben werden, wenn der Routentyp " "'Benutzerdefiniert' ist." -#: routing_templates/forms.py:101 -msgid "" -"The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." -msgstr "" -"Die Route 0.0.0.0/0 ist nicht zulässig. Verwenden Sie stattdessen den Typ " -"'Standardroute'." - -#: routing_templates/forms.py:105 -#, python-format +#: routing_templates/forms.py:113 routing_templates/forms.py:123 +#, fuzzy, python-format +#| msgid "" +#| "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " +#| "192.168.1.0/24)." msgid "" "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " -"192.168.1.0/24)." +"10.0.0.0/24)." msgstr "" "Ungültiges Routenformat: '%(line)s'. Bitte verwenden Sie die CIDR-Notation " "(z. B. 192.168.1.0/24)." -#: routing_templates/forms.py:112 -msgid "Custom routes should be empty when Route Type is 'Default Route'." +#: routing_templates/forms.py:131 +#, fuzzy, python-format +#| msgid "" +#| "The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." +msgid "" +"The route %(route)s is not allowed. Use the 'Default Route' type instead." +msgstr "" +"Die Route 0.0.0.0/0 ist nicht zulässig. Verwenden Sie stattdessen den Typ " +"'Standardroute'." + +#: routing_templates/forms.py:139 +#, python-format +msgid "" +"'%(line)s' is not a network address. Use the network address (e.g., " +"'%(net)s')." msgstr "" -"Benutzerdefinierte Routen sollten leer sein, wenn der Routentyp " -"'Standardroute' ist." #: routing_templates/models.py:13 msgid "Default Route (0.0.0.0/0)" @@ -917,7 +931,7 @@ msgid "Status" msgstr "Status" #: templates/cluster/workers_list.html:11 -#: templates/wireguard/peer_list/peer_data.html:36 +#: templates/wireguard/peer_list/peer_data.html:43 #: templates/wireguard/peer_list/peer_preview_modal.html:28 msgid "Location" msgstr "Standort" @@ -946,6 +960,8 @@ msgstr "IP-Sperre aktiviert" #: templates/cluster/workers_list.html:47 #: templates/cluster/workers_list.html:54 +#: templates/wireguard/wireguard_manage_peer.html:56 +#: templates/wireguard/wireguard_manage_peer.html:65 msgid "Not set" msgstr "Nicht gesetzt" @@ -1561,7 +1577,7 @@ msgstr "E‑Mail‑Einstellungen" msgid "Invite Settings" msgstr "Einladungs‑Einstellungen" -#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:332 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:368 msgid "Apply Route Template" msgstr "Routen-Vorlage anwenden" @@ -1598,44 +1614,48 @@ msgstr "Verknüpfung aufheben" msgid "No routing templates available for this interface." msgstr "Keine Routen-Vorlagen für diese Schnittstelle verfügbar." -#: templates/wireguard/peer_list/peer_data.html:29 +#: templates/wireguard/peer_list/peer_data.html:30 +msgid "Route policy enforced" +msgstr "" + +#: templates/wireguard/peer_list/peer_data.html:36 #: templates/wireguard/peer_list/peer_preview_modal.html:16 msgid "Throughput" msgstr "Durchsatz" -#: templates/wireguard/peer_list/peer_data.html:32 +#: templates/wireguard/peer_list/peer_data.html:39 #: templates/wireguard/peer_list/peer_preview_modal.html:20 msgid "Transfer" msgstr "Übertragen" -#: templates/wireguard/peer_list/peer_data.html:37 +#: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 #: wireguard_peer/views.py:91 msgid "Primary Server" msgstr "Primärer Server" -#: templates/wireguard/peer_list/peer_data.html:40 +#: templates/wireguard/peer_list/peer_data.html:47 #: templates/wireguard/peer_list/peer_preview_modal.html:24 msgid "Latest Handshake" msgstr "Letzter Handshake" -#: templates/wireguard/peer_list/peer_data.html:54 +#: templates/wireguard/peer_list/peer_data.html:61 #: templates/wireguard/peer_list/peer_preview_modal.html:32 msgid "Endpoints" msgstr "Endpoints" -#: templates/wireguard/peer_list/peer_data.html:59 +#: templates/wireguard/peer_list/peer_data.html:66 #: templates/wireguard/peer_list/peer_preview_modal.html:36 msgid "Allowed IPs" msgstr "Erlaubte IPs" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:57 +#: templates/wireguard/wireguard_manage_peer.html:79 msgid "Peer Traffic" msgstr "Peer‑Traffic" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:73 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "No traffic history, please wait a few minutes" msgstr "Keine Verkehrsdaten vorhanden, bitte einige Minuten warten" @@ -1696,7 +1716,7 @@ msgid "Hide extras" msgstr "Extras ausblenden" #: templates/wireguard/peer_list/script_peer_extras_toggle.html:10 -#: templates/wireguard/wireguard_peer_list.html:38 +#: templates/wireguard/wireguard_peer_list.html:39 msgid "Show extras" msgstr "Extras anzeigen" @@ -1794,13 +1814,13 @@ msgstr "" "Konfiguration ist veraltet." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:29 wireguard/forms.py:14 -#: wireguard_peer/forms.py:11 +#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: wireguard_peer/forms.py:47 msgid "Public Key" msgstr "Public Key" #: templates/wireguard/server_detail.html:31 -#: templates/wireguard/server_list.html:20 wireguard/forms.py:16 +#: templates/wireguard/server_list.html:20 wireguard/forms.py:20 msgid "Listen Port" msgstr "Listen‑Port" @@ -1821,7 +1841,7 @@ msgstr "Zurück zur Liste" msgid "Traffic Graph" msgstr "Verkehrsgrafik" -#: templates/wireguard/server_list.html:7 wireguard/views.py:214 +#: templates/wireguard/server_list.html:7 wireguard/views.py:224 msgid "WireGuard Instances" msgstr "WireGuard-Instanzen" @@ -1838,9 +1858,9 @@ msgid "Enter Allowed IP" msgstr "Erlaubte IP eingeben" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:103 -#: templates/wireguard/wireguard_manage_peer.html:186 -#: wireguard_peer/forms.py:31 +#: templates/wireguard/wireguard_manage_peer.html:131 +#: templates/wireguard/wireguard_manage_peer.html:220 +#: wireguard_peer/forms.py:66 msgid "Priority" msgstr "Priorität" @@ -1852,66 +1872,65 @@ msgstr "Geben Sie \\\"delete\\\" ein, um diese IP‑Adresse zu löschen." msgid "Peer Configuration" msgstr "Peer‑Konfiguration" -#: templates/wireguard/wireguard_manage_peer.html:17 -msgid "Enter Name" -msgstr "Name eingeben" - -#: templates/wireguard/wireguard_manage_peer.html:23 wireguard_peer/forms.py:14 +#: templates/wireguard/wireguard_manage_peer.html:27 wireguard_peer/forms.py:36 msgid "Persistent Keepalive" msgstr "Persistent Keepalive" -#: templates/wireguard/wireguard_manage_peer.html:36 wireguard/forms.py:13 -#: wireguard_peer/forms.py:12 +#: templates/wireguard/wireguard_manage_peer.html:40 +msgid "Keys" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: wireguard_peer/forms.py:48 msgid "Private Key" msgstr "Private Key" -#: templates/wireguard/wireguard_manage_peer.html:46 wireguard_peer/forms.py:13 +#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:49 msgid "Pre-Shared Key" msgstr "Pre‑Shared Key" -#: templates/wireguard/wireguard_manage_peer.html:85 +#: templates/wireguard/wireguard_manage_peer.html:110 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs in der Peer‑Sektion von wg" -#: templates/wireguard/wireguard_manage_peer.html:86 +#: templates/wireguard/wireguard_manage_peer.html:111 msgid "Peer IP Addresses and networks" msgstr "Peer‑IP‑Adressen und Netze" -#: templates/wireguard/wireguard_manage_peer.html:88 -#: templates/wireguard/wireguard_manage_peer.html:202 +#: templates/wireguard/wireguard_manage_peer.html:115 msgid "Add IP Address" msgstr "IP‑Adresse hinzufügen" -#: templates/wireguard/wireguard_manage_peer.html:101 -#: templates/wireguard/wireguard_manage_peer.html:184 +#: templates/wireguard/wireguard_manage_peer.html:129 +#: templates/wireguard/wireguard_manage_peer.html:218 msgid "Main ip address" msgstr "Haupt‑IP‑Adresse" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:144 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs in der Client-Konfigurationsdatei" -#: templates/wireguard/wireguard_manage_peer.html:116 +#: templates/wireguard/wireguard_manage_peer.html:145 msgid "Client Routing" msgstr "Client-Routing" -#: templates/wireguard/wireguard_manage_peer.html:119 +#: templates/wireguard/wireguard_manage_peer.html:150 msgid "Apply template" msgstr "Vorlage anwenden" -#: templates/wireguard/wireguard_manage_peer.html:120 +#: templates/wireguard/wireguard_manage_peer.html:154 msgid "Add Client route" msgstr "Client‑Route hinzufügen" -#: templates/wireguard/wireguard_manage_peer.html:132 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Routing Template" msgstr "Routenvorlage" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:180 msgid "Template Route" msgstr "Vorlagenroute" -#: templates/wireguard/wireguard_manage_peer.html:156 +#: templates/wireguard/wireguard_manage_peer.html:191 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." @@ -1924,7 +1943,7 @@ msgstr "" "geroutet.\\n\\nHinweis: Diese Routen werden nicht automatisch zum Client " "übertragen; Sie müssen die Client‑Konfigurationsdatei manuell anpassen." -#: templates/wireguard/wireguard_manage_peer.html:159 +#: templates/wireguard/wireguard_manage_peer.html:194 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 " @@ -1934,58 +1953,134 @@ msgstr "" "gesamte Internet‑Verkehr des Clients durch das VPN geleitet, was " "Privatsphäre und Sicherheit erhöht." -#: templates/wireguard/wireguard_manage_peer.html:168 +#: templates/wireguard/wireguard_manage_peer.html:202 msgid "default route" msgstr "Standard‑Route" -#: templates/wireguard/wireguard_manage_peer.html:204 +#: templates/wireguard/wireguard_manage_peer.html:239 msgid "Delete Peer" msgstr "Peer löschen" -#: templates/wireguard/wireguard_manage_peer.html:221 -msgid "Action Required!" -msgstr "Aktion erforderlich!" - -#: templates/wireguard/wireguard_manage_peer.html:222 -msgid "" -"When manually updating the \"Public Key\", \"Pre-Shared Key\", or \"Private " -"Key\", please ensure the configuration is correct." -msgstr "" -"Wenn Sie \"Public Key\", \"Pre‑Shared Key\" oder \"Private Key\" manuell " -"ändern, stellen Sie sicher, dass die Konfiguration korrekt ist." - -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:249 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Geben Sie \\\"delete\\\" ein, um die Peer‑Konfiguration zu entfernen." -#: templates/wireguard/wireguard_manage_peer.html:290 -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 "" -"Der private Schlüssel ist leer. Die Konfigurationsdatei und der QR-Code des " -"Peers werden ohne den privaten Schlüssel generiert.\\n Er muss beim Import " -"manuell eingefügt werden.\\n\\n Möchten Sie fortfahren?" +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Anzeigename" -#: templates/wireguard/wireguard_manage_server.html:120 -msgid "Delete Configuration" +#: templates/wireguard/wireguard_manage_server.html:27 +msgid "" +"\n" +" Optional name used only for display in the " +"web interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:31 wireguard/forms.py:23 +msgid "Web Refresh Interval" +msgstr "Web‑Aktualisierungsintervall" + +#: templates/wireguard/wireguard_manage_server.html:33 +msgid "" +"\n" +" Interval used to refresh WireGuard status " +"information in the web UI.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:37 +#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:19 +msgid "Public Address" +msgstr "Öffentliche Adresse" + +#: 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 "" + +#: templates/wireguard/wireguard_manage_server.html:45 +#, fuzzy +#| msgid "Interface" +msgid "Interface Keys" +msgstr "Schnittstelle" + +#: 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 "" + +#: templates/wireguard/wireguard_manage_server.html:54 +msgid "Internal Network" +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:56 +msgid "" +"\n" +" Internal IP address and netmask used by the " +"WireGuard interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:60 +#, fuzzy +#| msgid "Delete Configuration" +msgid "DNS Configuration" msgstr "Konfiguration löschen" -#: templates/wireguard/wireguard_peer_list.html:32 +#: 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 "" + +#: 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 "" + +#: templates/wireguard/wireguard_peer_list.html:33 msgid "Are you sure you want to create a new peer?" msgstr "Sind Sie sicher, dass Sie einen neuen Peer erstellen möchten?" -#: templates/wireguard/wireguard_peer_list.html:33 -#: templates/wireguard/wireguard_peer_list.html:36 +#: templates/wireguard/wireguard_peer_list.html:34 +#: templates/wireguard/wireguard_peer_list.html:37 msgid "Create Peer" msgstr "Peer erstellen" -#: templates/wireguard/wireguard_peer_list.html:49 +#: templates/wireguard/wireguard_peer_list.html:50 msgid "No WireGuard Instances Found" msgstr "Keine WireGuard‑Instanzen gefunden" -#: templates/wireguard/wireguard_peer_list.html:51 +#: templates/wireguard/wireguard_peer_list.html:52 msgid "" "There are no WireGuard instances configured. You can add a new instance by " "clicking the button below." @@ -1993,7 +2088,7 @@ msgstr "" "Es sind keine WireGuard‑Instanzen konfiguriert. Sie können eine neue Instanz " "hinzufügen, indem Sie unten auf die Schaltfläche klicken." -#: templates/wireguard/wireguard_peer_list.html:55 +#: templates/wireguard/wireguard_peer_list.html:56 msgid "Add WireGuard Instance" msgstr "WireGuard‑Instanz hinzufügen" @@ -2013,10 +2108,6 @@ msgstr "WireGuard‑Dienst neu laden" msgid "Instance Traffic" msgstr "Instanz‑Traffic" -#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:15 -msgid "Public Address" -msgstr "Öffentliche Adresse" - #: user_manager/forms.py:15 msgid "Password Confirmation" msgstr "Passwortbestätigung" @@ -2470,40 +2561,24 @@ msgstr "VPN‑Einladungs‑Einstellungen" msgid "Email Settings|Settings saved successfully." msgstr "E‑Mail‑Einstellungen|Einstellungen erfolgreich gespeichert." -#: wireguard/forms.py:11 -msgid "Display Name" -msgstr "Anzeigename" - -#: wireguard/forms.py:12 +#: wireguard/forms.py:16 msgid "Instance ID" msgstr "Instanz‑ID" -#: wireguard/forms.py:17 +#: wireguard/forms.py:21 msgid "Internal IP Address" msgstr "Interne IP‑Adresse" -#: wireguard/forms.py:19 -msgid "Post Up" -msgstr "Post‑Up" - -#: wireguard/forms.py:20 -msgid "Post Down" -msgstr "Post‑Down" - -#: wireguard/forms.py:21 -msgid "Web Refresh Interval" -msgstr "Web‑Aktualisierungsintervall" - -#: wireguard/forms.py:42 +#: wireguard/forms.py:117 msgid "Peer List Refresh Interval must be at least 5 seconds" msgstr "" "Aktualisierungsintervall der Peer‑Liste muss mindestens 5 Sekunden betragen" -#: wireguard/forms.py:45 +#: wireguard/forms.py:120 msgid "Invalid hostname or IP Address" msgstr "Ungültiger Hostname oder ungültige IP‑Adresse" -#: wireguard/forms.py:54 +#: wireguard/forms.py:130 msgid "The selected network range overlaps with another instance." msgstr "Der gewählte Netzbereich überschneidet sich mit einer anderen Instanz." @@ -2549,23 +2624,23 @@ msgstr "Neue WireGuard‑Instanz erstellen" msgid "New WireGuard Instance" msgstr "Neue WireGuard‑Instanz" -#: wireguard_peer/forms.py:29 +#: wireguard_peer/forms.py:64 msgid "Allowed IP or Network" msgstr "Erlaubte IP oder Netzwerk" -#: wireguard_peer/forms.py:39 +#: wireguard_peer/forms.py:74 msgid "Please provide a valid IP address." msgstr "Bitte geben Sie eine gültige IP‑Adresse ein." -#: wireguard_peer/forms.py:48 +#: wireguard_peer/forms.py:83 msgid "A peer can have only one IP with priority zero." msgstr "Ein Peer kann nur eine IP mit Priorität 0 haben." -#: wireguard_peer/forms.py:54 +#: wireguard_peer/forms.py:89 msgid "This IP is already in use by another peer." msgstr "Diese IP wird bereits von einem anderen Peer verwendet." -#: wireguard_peer/forms.py:56 +#: wireguard_peer/forms.py:91 msgid "" "The IP address does not belong to the Peer's WireGuard instance network " "range. Please check the IP address or change the priority." @@ -2573,16 +2648,16 @@ msgstr "" "Die IP‑Adresse liegt nicht im Netzbereich der WireGuard‑Instanz des Peers. " "Bitte prüfen Sie die IP oder ändern Sie die Priorität." -#: wireguard_peer/forms.py:58 +#: wireguard_peer/forms.py:93 msgid "The netmask for priority 0 IP must be 32." msgstr "Die Netzmaske für eine IP mit Priorität 0 muss 32 sein." -#: wireguard_peer/forms.py:60 +#: wireguard_peer/forms.py:95 msgid "The IP address is the same as the Peer's WireGuard instance address." msgstr "" "Die IP‑Adresse ist identisch mit der Adresse der WireGuard‑Instanz des Peers." -#: wireguard_peer/forms.py:63 +#: wireguard_peer/forms.py:98 msgid "" "The IP address belongs to the Peer's WireGuard instance network range. " "Please check the IP address or change use priority 0 instead." @@ -2590,15 +2665,15 @@ msgstr "" "Die IP‑Adresse gehört zum Netzbereich der WireGuard‑Instanz des Peers. Bitte " "prüfen Sie die IP oder verwenden Sie stattdessen Priorität 0." -#: wireguard_peer/forms.py:66 +#: wireguard_peer/forms.py:101 msgid "The peer's routing template does not allow custom routes." msgstr "Die Routenvorlage des Peers lässt keine benutzerdefinierten Routes zu." -#: wireguard_peer/forms.py:68 +#: wireguard_peer/forms.py:103 msgid "Priority must be greater than or equal to 1" msgstr "Die Priorität muss größer oder gleich 1 sein" -#: wireguard_peer/forms.py:70 +#: wireguard_peer/forms.py:105 msgid "Invalid config file" msgstr "Ungültige Konfigurationsdatei" @@ -2606,42 +2681,64 @@ msgstr "Ungültige Konfigurationsdatei" msgid "WireGuard Peer List" msgstr "WireGuard‑Peer‑Liste" -#: wireguard_peer/views.py:161 -msgid "Create a new Peer for instance wg" -msgstr "Neuen Peer für Instanz wg erstellen" - -#: wireguard_peer/views.py:180 +#: wireguard_peer/views.py:176 msgid "Peer created|Peer created successfully." msgstr "Peer erstellt|Peer erfolgreich erstellt." -#: wireguard_peer/views.py:185 +#: wireguard_peer/views.py:181 msgid "Error creating peer|No available IP address found for peer creation." msgstr "Fehler beim Erstellen des Peers|Keine freie IP‑Adresse verfügbar." -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:204 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer gelöscht|Peer erfolgreich gelöscht." -#: wireguard_peer/views.py:201 +#: wireguard_peer/views.py:207 msgid "" "Error deleting peer|Invalid confirmation message. Type \"delete\" to confirm." msgstr "" "Fehler beim Löschen des Peers|Ungültige Bestätigung. Geben Sie \"delete\" " "ein, um zu bestätigen." -#: wireguard_peer/views.py:203 -msgid "Update Peer: " -msgstr "Peer aktualisieren: " +#: wireguard_peer/views.py:209 +#, fuzzy +#| msgid "Peer Configuration" +msgid "Peer Configuration: " +msgstr "Peer‑Konfiguration" -#: wireguard_peer/views.py:214 +#: wireguard_peer/views.py:247 msgid "Peer updated|Peer updated successfully." msgstr "Peer aktualisiert|Peer erfolgreich aktualisiert." +#: wireguard_peer/views.py:250 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Peer" +msgstr "Benutzer bearbeiten" + #: wireguard_peer/views.py:252 +#, fuzzy +#| msgid "Enter Name" +msgid "Edit Peer Name" +msgstr "Name eingeben" + +#: wireguard_peer/views.py:254 +#, fuzzy +#| msgid "Persistent Keepalive" +msgid "Edit Keepalive" +msgstr "Persistent Keepalive" + +#: wireguard_peer/views.py:256 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Keys" +msgstr "Benutzer bearbeiten" + +#: wireguard_peer/views.py:288 msgid "IP address deleted|IP address deleted successfully." msgstr "IP‑Adresse gelöscht|IP‑Adresse erfolgreich gelöscht." -#: wireguard_peer/views.py:257 +#: wireguard_peer/views.py:293 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2649,27 +2746,27 @@ msgstr "" "Fehler beim Löschen der IP‑Adresse|Ungültige Bestätigung. Geben Sie " "\"delete\" ein, um zu bestätigen." -#: wireguard_peer/views.py:262 +#: wireguard_peer/views.py:298 msgid "Manage client route" msgstr "Client‑Route verwalten" -#: wireguard_peer/views.py:264 +#: wireguard_peer/views.py:300 msgid "Manage IP address or Network" msgstr "IP‑Adresse oder Netzwerk verwalten" -#: wireguard_peer/views.py:277 +#: wireguard_peer/views.py:313 msgid "IP address updated|IP address updated successfully." msgstr "IP‑Adresse aktualisiert|IP‑Adresse erfolgreich aktualisiert." -#: wireguard_peer/views.py:279 +#: wireguard_peer/views.py:315 msgid "IP address added|IP address added successfully." msgstr "IP‑Adresse hinzugefügt|IP‑Adresse erfolgreich hinzugefügt." -#: wireguard_peer/views.py:311 +#: wireguard_peer/views.py:347 msgid "Route template unlinked successfully." msgstr "Routen-Vorlage erfolgreich getrennt." -#: wireguard_peer/views.py:321 +#: wireguard_peer/views.py:357 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -2678,7 +2775,7 @@ msgstr "" "benutzerdefinierten Routen, aber der Peer hat benutzerdefinierte Client-" "Routen definiert." -#: wireguard_peer/views.py:328 +#: wireguard_peer/views.py:364 msgid "Route template applied successfully." msgstr "Routen-Vorlage erfolgreich angewendet." @@ -2740,6 +2837,44 @@ msgstr "" "Keine Schnittstellen gefunden|Es wurden keine WireGuard‑Schnittstellen " "gefunden." +#~ msgid "" +#~ "You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' " +#~ "is checked." +#~ msgstr "" +#~ "Sie können 'Routenrichtlinie erzwingen' nicht aktivieren, wenn " +#~ "'Benutzerdefinierte Routen für Peers erlauben' ausgewählt ist." + +#~ msgid "Action Required!" +#~ msgstr "Aktion erforderlich!" + +#~ msgid "" +#~ "When manually updating the \"Public Key\", \"Pre-Shared Key\", or " +#~ "\"Private Key\", please ensure the configuration is correct." +#~ msgstr "" +#~ "Wenn Sie \"Public Key\", \"Pre‑Shared Key\" oder \"Private Key\" manuell " +#~ "ändern, stellen Sie sicher, dass die Konfiguration korrekt ist." + +#~ 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 "" +#~ "Der private Schlüssel ist leer. Die Konfigurationsdatei und der QR-Code " +#~ "des Peers werden ohne den privaten Schlüssel generiert.\\n Er muss beim " +#~ "Import manuell eingefügt werden.\\n\\n Möchten Sie fortfahren?" + +#~ msgid "Post Up" +#~ msgstr "Post‑Up" + +#~ msgid "Post Down" +#~ msgstr "Post‑Down" + +#~ msgid "Create a new Peer for instance wg" +#~ msgstr "Neuen Peer für Instanz wg erstellen" + +#~ msgid "Update Peer: " +#~ msgstr "Peer aktualisieren: " + #~ msgid "Warning:" #~ msgstr "Warnung:" diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo index 6c459bc17a0e21651c70fd6ce14edf2fbbf7ce68..c3d10f8800e87444b96356038dd1d40efce47981 100644 GIT binary patch delta 10491 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 delta 11955 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 diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 7e82348..d5dff8b 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-26 10:41-0300\n" +"POT-Creation-Date: 2026-01-27 15:08-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,8 +22,9 @@ msgstr "" #: templates/routing_templates/list.html:8 #: templates/user_manager/peer_group_list.html:8 #: templates/wireguard/server_detail.html:12 -#: templates/wireguard/server_list.html:19 user_manager/forms.py:177 -#: wireguard_peer/forms.py:10 +#: templates/wireguard/server_list.html:19 +#: templates/wireguard/wireguard_manage_peer.html:15 user_manager/forms.py:177 +#: wireguard_peer/forms.py:27 msgid "Name" msgstr "Nombre" @@ -70,10 +71,9 @@ msgstr "Token" #: templates/wireguard/apply_route_template.html:63 #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 -#: templates/wireguard/wireguard_manage_peer.html:203 -#: templates/wireguard/wireguard_manage_server.html:119 -#: user_manager/forms.py:49 user_manager/forms.py:180 vpn_invite/forms.py:192 -#: vpn_invite/forms.py:326 +#: templates/wireguard/wireguard_manage_peer.html:236 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:22 msgid "Back" msgstr "Volver" @@ -83,7 +83,7 @@ msgstr "Volver" #: templates/firewall/manage_redirect_rule.html:86 #: 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 +#: user_manager/forms.py:181 wireguard/forms.py:52 msgid "Delete" msgstr "Eliminar" @@ -92,11 +92,9 @@ msgstr "Eliminar" #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/wireguard/wireguard_manage_ip.html:41 -#: templates/wireguard/wireguard_manage_peer.html:201 -#: templates/wireguard/wireguard_manage_server.html:117 -#: user_manager/forms.py:98 user_manager/forms.py:205 vpn_invite/forms.py:191 -#: vpn_invite/forms.py:325 +#: 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:21 msgid "Save" msgstr "Guardar" @@ -328,11 +326,11 @@ msgstr "Destino inválido" msgid "Enhanced filter is enabled. This command is not available." msgstr "El filtro mejorado está habilitado. Este comando no está disponible." -#: dns/forms.py:22 wireguard/forms.py:22 +#: dns/forms.py:22 wireguard/forms.py:24 msgid "Primary DNS" msgstr "DNS primario" -#: dns/forms.py:23 wireguard/forms.py:23 +#: dns/forms.py:23 wireguard/forms.py:25 msgid "Secondary DNS" msgstr "DNS secundario" @@ -490,8 +488,8 @@ msgstr "Interfaz de salida" msgid "Source IP" msgstr "IP origen" -#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:18 -#: wireguard_peer/forms.py:30 +#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:22 +#: wireguard_peer/forms.py:65 msgid "Netmask" msgstr "Máscara de red" @@ -607,15 +605,15 @@ msgstr "Interfaz WAN" msgid "MASQUERADE" msgstr "MASCARAR" -#: firewall/tools.py:44 +#: firewall/tools.py:45 msgid "Masquerade traffic from VPN to WAN" msgstr "Mascarar tráfico de VPN a WAN" -#: firewall/tools.py:54 firewall/tools.py:58 firewall/tools.py:62 +#: firewall/tools.py:55 firewall/tools.py:59 firewall/tools.py:63 msgid "Reject traffic to private networks exiting on WAN interface" msgstr "Rechazar tráfico a redes privadas saliendo por la interfaz WAN" -#: firewall/tools.py:66 +#: firewall/tools.py:67 msgid "Allow traffic from VPN to WAN" msgstr "Permitir tráfico de VPN a WAN" @@ -714,43 +712,59 @@ msgid "Allow Peer Custom Routes" msgstr "Permitir Rutas Personalizadas del Par" #: routing_templates/forms.py:34 +#: templates/wireguard/wireguard_manage_server.html:69 wireguard/forms.py:26 msgid "Enforce Route Policy" msgstr "Forzar Política de Enrutamiento" -#: routing_templates/forms.py:86 -msgid "" -"You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' is " -"checked." +#: routing_templates/forms.py:90 +msgid "Custom routes should be empty when Route Type is 'Default Route'." msgstr "" -"No puede habilitar 'Forzar Política de Enrutamiento' cuando 'Permitir Rutas " -"Personalizadas del Par' está marcado." +"Las rutas personalizadas deben estar vacías cuando el Tipo de Ruta es 'Ruta " +"Predeterminada'." -#: routing_templates/forms.py:89 +#: routing_templates/forms.py:95 +#, fuzzy +#| msgid "Custom routes should be empty when Route Type is 'Default Route'." +msgid "" +"Allowing peer custom routes is not applicable when Route Type is 'Default " +"Route'." +msgstr "" +"Las rutas personalizadas deben estar vacías cuando el Tipo de Ruta es 'Ruta " +"Predeterminada'." + +#: routing_templates/forms.py:102 msgid "At least one route must be provided when Route Type is 'Custom'." msgstr "" "Se debe proporcionar al menos una ruta cuando el Tipo de Ruta es " "'Personalizada'." -#: routing_templates/forms.py:101 -msgid "" -"The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." -msgstr "" -"La ruta 0.0.0.0/0 no está permitida. Use el tipo 'Ruta Predeterminada'." - -#: routing_templates/forms.py:105 -#, python-format +#: routing_templates/forms.py:113 routing_templates/forms.py:123 +#, fuzzy, python-format +#| msgid "" +#| "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " +#| "192.168.1.0/24)." msgid "" "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " -"192.168.1.0/24)." +"10.0.0.0/24)." msgstr "" "Formato de ruta inválido: '%(line)s'. Use la notación CIDR (ej: " "192.168.1.0/24)." -#: routing_templates/forms.py:112 -msgid "Custom routes should be empty when Route Type is 'Default Route'." +#: routing_templates/forms.py:131 +#, fuzzy, python-format +#| msgid "" +#| "The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." +msgid "" +"The route %(route)s is not allowed. Use the 'Default Route' type instead." +msgstr "" +"La ruta 0.0.0.0/0 no está permitida. Use el tipo 'Ruta Predeterminada'." + +#: routing_templates/forms.py:139 +#, python-format +msgid "" +"'%(line)s' is not a network address. Use the network address (e.g., " +"'%(net)s')." msgstr "" -"Las rutas personalizadas deben estar vacías cuando el Tipo de Ruta es 'Ruta " -"Predeterminada'." #: routing_templates/models.py:13 msgid "Default Route (0.0.0.0/0)" @@ -912,7 +926,7 @@ msgid "Status" msgstr "Estado" #: templates/cluster/workers_list.html:11 -#: templates/wireguard/peer_list/peer_data.html:36 +#: templates/wireguard/peer_list/peer_data.html:43 #: templates/wireguard/peer_list/peer_preview_modal.html:28 msgid "Location" msgstr "Ubicación" @@ -941,6 +955,8 @@ msgstr "Bloqueo de IP habilitado" #: templates/cluster/workers_list.html:47 #: templates/cluster/workers_list.html:54 +#: templates/wireguard/wireguard_manage_peer.html:56 +#: templates/wireguard/wireguard_manage_peer.html:65 msgid "Not set" msgstr "No establecido" @@ -1551,7 +1567,7 @@ msgstr "Configuración de correo" msgid "Invite Settings" msgstr "Configuración de invitación" -#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:332 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:368 msgid "Apply Route Template" msgstr "Aplicar Plantilla de Enrutamiento" @@ -1587,44 +1603,48 @@ msgstr "Desvincular" msgid "No routing templates available for this interface." msgstr "No hay plantillas de enrutamiento disponibles para esta interfaz." -#: templates/wireguard/peer_list/peer_data.html:29 +#: templates/wireguard/peer_list/peer_data.html:30 +msgid "Route policy enforced" +msgstr "" + +#: templates/wireguard/peer_list/peer_data.html:36 #: templates/wireguard/peer_list/peer_preview_modal.html:16 msgid "Throughput" msgstr "Rendimiento" -#: templates/wireguard/peer_list/peer_data.html:32 +#: templates/wireguard/peer_list/peer_data.html:39 #: templates/wireguard/peer_list/peer_preview_modal.html:20 msgid "Transfer" msgstr "Transferencia" -#: templates/wireguard/peer_list/peer_data.html:37 +#: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 #: wireguard_peer/views.py:91 msgid "Primary Server" msgstr "Servidor primario" -#: templates/wireguard/peer_list/peer_data.html:40 +#: templates/wireguard/peer_list/peer_data.html:47 #: templates/wireguard/peer_list/peer_preview_modal.html:24 msgid "Latest Handshake" msgstr "Último handshake" -#: templates/wireguard/peer_list/peer_data.html:54 +#: templates/wireguard/peer_list/peer_data.html:61 #: templates/wireguard/peer_list/peer_preview_modal.html:32 msgid "Endpoints" msgstr "Endpoints" -#: templates/wireguard/peer_list/peer_data.html:59 +#: templates/wireguard/peer_list/peer_data.html:66 #: templates/wireguard/peer_list/peer_preview_modal.html:36 msgid "Allowed IPs" msgstr "IPs permitidas" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:57 +#: templates/wireguard/wireguard_manage_peer.html:79 msgid "Peer Traffic" msgstr "Tráfico del peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:73 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "No traffic history, please wait a few minutes" msgstr "Sin historial de tráfico, espera unos minutos" @@ -1685,7 +1705,7 @@ msgid "Hide extras" msgstr "Ocultar extras" #: templates/wireguard/peer_list/script_peer_extras_toggle.html:10 -#: templates/wireguard/wireguard_peer_list.html:38 +#: templates/wireguard/wireguard_peer_list.html:39 msgid "Show extras" msgstr "Mostrar extras" @@ -1780,13 +1800,13 @@ msgstr "" "indicar un IP solapada o un archivo desactualizado." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:29 wireguard/forms.py:14 -#: wireguard_peer/forms.py:11 +#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: wireguard_peer/forms.py:47 msgid "Public Key" msgstr "Clave pública" #: templates/wireguard/server_detail.html:31 -#: templates/wireguard/server_list.html:20 wireguard/forms.py:16 +#: templates/wireguard/server_list.html:20 wireguard/forms.py:20 msgid "Listen Port" msgstr "Puerto" @@ -1807,7 +1827,7 @@ msgstr "Volver a la lista" msgid "Traffic Graph" msgstr "Gráfico de tráfico" -#: templates/wireguard/server_list.html:7 wireguard/views.py:214 +#: templates/wireguard/server_list.html:7 wireguard/views.py:224 msgid "WireGuard Instances" msgstr "Instancias de WireGuard" @@ -1824,9 +1844,9 @@ msgid "Enter Allowed IP" msgstr "Ingresar IP permitida" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:103 -#: templates/wireguard/wireguard_manage_peer.html:186 -#: wireguard_peer/forms.py:31 +#: templates/wireguard/wireguard_manage_peer.html:131 +#: templates/wireguard/wireguard_manage_peer.html:220 +#: wireguard_peer/forms.py:66 msgid "Priority" msgstr "Prioridad" @@ -1838,66 +1858,65 @@ msgstr "Por favor escribe \\\"delete\\\" para eliminar esta IP." msgid "Peer Configuration" msgstr "Configuración de peer" -#: templates/wireguard/wireguard_manage_peer.html:17 -msgid "Enter Name" -msgstr "Ingresar nombre" - -#: templates/wireguard/wireguard_manage_peer.html:23 wireguard_peer/forms.py:14 +#: templates/wireguard/wireguard_manage_peer.html:27 wireguard_peer/forms.py:36 msgid "Persistent Keepalive" msgstr "Keepalive persistente" -#: templates/wireguard/wireguard_manage_peer.html:36 wireguard/forms.py:13 -#: wireguard_peer/forms.py:12 +#: templates/wireguard/wireguard_manage_peer.html:40 +msgid "Keys" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: wireguard_peer/forms.py:48 msgid "Private Key" msgstr "Clave privada" -#: templates/wireguard/wireguard_manage_peer.html:46 wireguard_peer/forms.py:13 +#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:49 msgid "Pre-Shared Key" msgstr "Clave precompartida" -#: templates/wireguard/wireguard_manage_peer.html:85 +#: templates/wireguard/wireguard_manage_peer.html:110 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs en sección peer de wg" -#: templates/wireguard/wireguard_manage_peer.html:86 +#: templates/wireguard/wireguard_manage_peer.html:111 msgid "Peer IP Addresses and networks" msgstr "IPs y redes del peer" -#: templates/wireguard/wireguard_manage_peer.html:88 -#: templates/wireguard/wireguard_manage_peer.html:202 +#: templates/wireguard/wireguard_manage_peer.html:115 msgid "Add IP Address" msgstr "Añadir IP" -#: templates/wireguard/wireguard_manage_peer.html:101 -#: templates/wireguard/wireguard_manage_peer.html:184 +#: templates/wireguard/wireguard_manage_peer.html:129 +#: templates/wireguard/wireguard_manage_peer.html:218 msgid "Main ip address" msgstr "IP principal" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:144 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs en el archivo de configuración del cliente" -#: templates/wireguard/wireguard_manage_peer.html:116 +#: templates/wireguard/wireguard_manage_peer.html:145 msgid "Client Routing" msgstr "Enrutamiento del Cliente" -#: templates/wireguard/wireguard_manage_peer.html:119 +#: templates/wireguard/wireguard_manage_peer.html:150 msgid "Apply template" msgstr "Aplicar plantilla" -#: templates/wireguard/wireguard_manage_peer.html:120 +#: templates/wireguard/wireguard_manage_peer.html:154 msgid "Add Client route" msgstr "Añadir ruta cliente" -#: templates/wireguard/wireguard_manage_peer.html:132 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Routing Template" msgstr "Plantilla de Enrutamiento" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:180 msgid "Template Route" msgstr "Ruta de la plantilla" -#: templates/wireguard/wireguard_manage_peer.html:156 +#: templates/wireguard/wireguard_manage_peer.html:191 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." @@ -1910,7 +1929,7 @@ msgstr "" "\\n\\nNota: Estas rutas no se envían automáticamente al cliente. Debes " "actualizar manualmente su archivo de configuración para reflejarlas." -#: templates/wireguard/wireguard_manage_peer.html:159 +#: templates/wireguard/wireguard_manage_peer.html:194 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 " @@ -1920,59 +1939,135 @@ msgstr "" "\\n\\nEsta opción enruta todo el tráfico de Internet del cliente por la VPN, " "mejorando privacidad y seguridad." -#: templates/wireguard/wireguard_manage_peer.html:168 +#: templates/wireguard/wireguard_manage_peer.html:202 msgid "default route" msgstr "ruta predeterminada" -#: templates/wireguard/wireguard_manage_peer.html:204 +#: templates/wireguard/wireguard_manage_peer.html:239 msgid "Delete Peer" msgstr "Eliminar peer" -#: templates/wireguard/wireguard_manage_peer.html:221 -msgid "Action Required!" -msgstr "¡Acción requerida!" - -#: templates/wireguard/wireguard_manage_peer.html:222 -msgid "" -"When manually updating the \"Public Key\", \"Pre-Shared Key\", or \"Private " -"Key\", please ensure the configuration is correct." -msgstr "" -"Al actualizar manualmente \"Clave pública\", \"Clave precompartida\" o " -"\"Clave privada\", asegúrate de que la configuración sea correcta." - -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:249 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "" "Por favor escribe \\\"delete\\\" para eliminar la configuración del peer." -#: templates/wireguard/wireguard_manage_peer.html:290 -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 clave privada está vacía. El archivo de configuración y el código QR del " -"peer se generarán sin la clave privada.\\n Debe insertarse manualmente al " -"importar.\\n\\n ¿Deseas continuar?" +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Nombre para mostrar" -#: templates/wireguard/wireguard_manage_server.html:120 -msgid "Delete Configuration" +#: templates/wireguard/wireguard_manage_server.html:27 +msgid "" +"\n" +" Optional name used only for display in the " +"web interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:31 wireguard/forms.py:23 +msgid "Web Refresh Interval" +msgstr "Intervalo de actualización web" + +#: templates/wireguard/wireguard_manage_server.html:33 +msgid "" +"\n" +" Interval used to refresh WireGuard status " +"information in the web UI.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:37 +#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:19 +msgid "Public Address" +msgstr "Dirección pública" + +#: 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 "" + +#: templates/wireguard/wireguard_manage_server.html:45 +#, fuzzy +#| msgid "Interface" +msgid "Interface Keys" +msgstr "Interfaz" + +#: 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 "" + +#: templates/wireguard/wireguard_manage_server.html:54 +msgid "Internal Network" +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:56 +msgid "" +"\n" +" Internal IP address and netmask used by the " +"WireGuard interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:60 +#, fuzzy +#| msgid "Delete Configuration" +msgid "DNS Configuration" msgstr "Eliminar configuración" -#: templates/wireguard/wireguard_peer_list.html:32 +#: 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 "" + +#: 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 "" + +#: templates/wireguard/wireguard_peer_list.html:33 msgid "Are you sure you want to create a new peer?" msgstr "¿Seguro que quieres crear un nuevo peer?" -#: templates/wireguard/wireguard_peer_list.html:33 -#: templates/wireguard/wireguard_peer_list.html:36 +#: templates/wireguard/wireguard_peer_list.html:34 +#: templates/wireguard/wireguard_peer_list.html:37 msgid "Create Peer" msgstr "Crear peer" -#: templates/wireguard/wireguard_peer_list.html:49 +#: templates/wireguard/wireguard_peer_list.html:50 msgid "No WireGuard Instances Found" msgstr "No se encontraron instancias WireGuard" -#: templates/wireguard/wireguard_peer_list.html:51 +#: templates/wireguard/wireguard_peer_list.html:52 msgid "" "There are no WireGuard instances configured. You can add a new instance by " "clicking the button below." @@ -1980,7 +2075,7 @@ msgstr "" "No hay instancias WireGuard configuradas. Puedes añadir una nueva haciendo " "clic en el botón abajo." -#: templates/wireguard/wireguard_peer_list.html:55 +#: templates/wireguard/wireguard_peer_list.html:56 msgid "Add WireGuard Instance" msgstr "Añadir instancia WireGuard" @@ -2000,10 +2095,6 @@ msgstr "Recargar servicio WireGuard" msgid "Instance Traffic" msgstr "Tráfico de la instancia" -#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:15 -msgid "Public Address" -msgstr "Dirección pública" - #: user_manager/forms.py:15 msgid "Password Confirmation" msgstr "Confirmación de contraseña" @@ -2449,39 +2540,23 @@ msgstr "Configuración de invitación VPN" msgid "Email Settings|Settings saved successfully." msgstr "Configuración de correo|Configuración guardada correctamente." -#: wireguard/forms.py:11 -msgid "Display Name" -msgstr "Nombre para mostrar" - -#: wireguard/forms.py:12 +#: wireguard/forms.py:16 msgid "Instance ID" msgstr "Instancia" -#: wireguard/forms.py:17 +#: wireguard/forms.py:21 msgid "Internal IP Address" msgstr "Dirección IP interna" -#: wireguard/forms.py:19 -msgid "Post Up" -msgstr "Post Up" - -#: wireguard/forms.py:20 -msgid "Post Down" -msgstr "Post Down" - -#: wireguard/forms.py:21 -msgid "Web Refresh Interval" -msgstr "Intervalo de actualización web" - -#: wireguard/forms.py:42 +#: wireguard/forms.py:117 msgid "Peer List Refresh Interval must be at least 5 seconds" msgstr "El intervalo de actualización de peers debe ser al menos 5 segundos" -#: wireguard/forms.py:45 +#: wireguard/forms.py:120 msgid "Invalid hostname or IP Address" msgstr "Nombre de host o IP inválido" -#: wireguard/forms.py:54 +#: wireguard/forms.py:130 msgid "The selected network range overlaps with another instance." msgstr "El rango de red seleccionado se solapa con otra instancia." @@ -2524,23 +2599,23 @@ msgstr "Crear nueva instancia WireGuard" msgid "New WireGuard Instance" msgstr "Nueva instancia WireGuard" -#: wireguard_peer/forms.py:29 +#: wireguard_peer/forms.py:64 msgid "Allowed IP or Network" msgstr "IP o red permitida" -#: wireguard_peer/forms.py:39 +#: wireguard_peer/forms.py:74 msgid "Please provide a valid IP address." msgstr "Por favor proporciona una IP válida." -#: wireguard_peer/forms.py:48 +#: wireguard_peer/forms.py:83 msgid "A peer can have only one IP with priority zero." msgstr "Un peer solo puede tener una IP con prioridad cero." -#: wireguard_peer/forms.py:54 +#: wireguard_peer/forms.py:89 msgid "This IP is already in use by another peer." msgstr "Esta IP ya la usa otro peer." -#: wireguard_peer/forms.py:56 +#: wireguard_peer/forms.py:91 msgid "" "The IP address does not belong to the Peer's WireGuard instance network " "range. Please check the IP address or change the priority." @@ -2548,15 +2623,15 @@ msgstr "" "La IP no pertenece al rango de la instancia WireGuard del peer. Verifica la " "IP o cambia la prioridad." -#: wireguard_peer/forms.py:58 +#: wireguard_peer/forms.py:93 msgid "The netmask for priority 0 IP must be 32." msgstr "La máscara para IP con prioridad 0 debe ser 32." -#: wireguard_peer/forms.py:60 +#: wireguard_peer/forms.py:95 msgid "The IP address is the same as the Peer's WireGuard instance address." msgstr "La IP es la misma que la instancia WireGuard del peer." -#: wireguard_peer/forms.py:63 +#: wireguard_peer/forms.py:98 msgid "" "The IP address belongs to the Peer's WireGuard instance network range. " "Please check the IP address or change use priority 0 instead." @@ -2564,15 +2639,15 @@ msgstr "" "La IP pertenece al rango de la instancia WireGuard del peer. Verifica la IP " "o usa prioridad 0." -#: wireguard_peer/forms.py:66 +#: wireguard_peer/forms.py:101 msgid "The peer's routing template does not allow custom routes." msgstr "La plantilla de enrutamiento del par no permite rutas personalizadas." -#: wireguard_peer/forms.py:68 +#: wireguard_peer/forms.py:103 msgid "Priority must be greater than or equal to 1" msgstr "La prioridad debe ser ≥ 1" -#: wireguard_peer/forms.py:70 +#: wireguard_peer/forms.py:105 msgid "Invalid config file" msgstr "Archivo de configuración inválido" @@ -2580,42 +2655,64 @@ msgstr "Archivo de configuración inválido" msgid "WireGuard Peer List" msgstr "Lista de peers WireGuard" -#: wireguard_peer/views.py:161 -msgid "Create a new Peer for instance wg" -msgstr "Crear nuevo peer para instancia wg" - -#: wireguard_peer/views.py:180 +#: wireguard_peer/views.py:176 msgid "Peer created|Peer created successfully." msgstr "Peer creado|Peer creado correctamente." -#: wireguard_peer/views.py:185 +#: wireguard_peer/views.py:181 msgid "Error creating peer|No available IP address found for peer creation." msgstr "Error al crear peer|No hay IP disponible para asignar." -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:204 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer eliminado|Peer eliminado correctamente." -#: wireguard_peer/views.py:201 +#: wireguard_peer/views.py:207 msgid "" "Error deleting peer|Invalid confirmation message. Type \"delete\" to confirm." msgstr "" "Error al eliminar peer|Confirmación inválida. Escribe \"delete\" para " "confirmar." -#: wireguard_peer/views.py:203 -msgid "Update Peer: " -msgstr "Actualizar peer: " +#: wireguard_peer/views.py:209 +#, fuzzy +#| msgid "Peer Configuration" +msgid "Peer Configuration: " +msgstr "Configuración de peer" -#: wireguard_peer/views.py:214 +#: wireguard_peer/views.py:247 msgid "Peer updated|Peer updated successfully." msgstr "Peer actualizado|Peer actualizado correctamente." +#: wireguard_peer/views.py:250 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Peer" +msgstr "Editar usuario" + #: wireguard_peer/views.py:252 +#, fuzzy +#| msgid "Enter Name" +msgid "Edit Peer Name" +msgstr "Ingresar nombre" + +#: wireguard_peer/views.py:254 +#, fuzzy +#| msgid "Persistent Keepalive" +msgid "Edit Keepalive" +msgstr "Keepalive persistente" + +#: wireguard_peer/views.py:256 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Keys" +msgstr "Editar usuario" + +#: wireguard_peer/views.py:288 msgid "IP address deleted|IP address deleted successfully." msgstr "IP eliminada|IP eliminada correctamente." -#: wireguard_peer/views.py:257 +#: wireguard_peer/views.py:293 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2623,27 +2720,27 @@ msgstr "" "Error al eliminar IP|Confirmación inválida. Escribe \"delete\" para " "confirmar." -#: wireguard_peer/views.py:262 +#: wireguard_peer/views.py:298 msgid "Manage client route" msgstr "Gestionar ruta cliente" -#: wireguard_peer/views.py:264 +#: wireguard_peer/views.py:300 msgid "Manage IP address or Network" msgstr "Gestionar IP o red" -#: wireguard_peer/views.py:277 +#: wireguard_peer/views.py:313 msgid "IP address updated|IP address updated successfully." msgstr "IP actualizada|IP actualizada correctamente." -#: wireguard_peer/views.py:279 +#: wireguard_peer/views.py:315 msgid "IP address added|IP address added successfully." msgstr "IP añadida|IP añadida correctamente." -#: wireguard_peer/views.py:311 +#: wireguard_peer/views.py:347 msgid "Route template unlinked successfully." msgstr "Plantilla de enrutamiento desvinculada exitosamente." -#: wireguard_peer/views.py:321 +#: wireguard_peer/views.py:357 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -2651,7 +2748,7 @@ msgstr "" "No se puede aplicar la plantilla: esta plantilla no permite rutas " "personalizadas, pero el peer tiene rutas de cliente personalizadas definidas." -#: wireguard_peer/views.py:328 +#: wireguard_peer/views.py:364 msgid "Route template applied successfully." msgstr "Plantilla de enrutamiento aplicada exitosamente." @@ -2709,6 +2806,44 @@ msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "No se encontraron interfaces|No hay interfaces WireGuard para procesar." +#~ msgid "" +#~ "You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' " +#~ "is checked." +#~ msgstr "" +#~ "No puede habilitar 'Forzar Política de Enrutamiento' cuando 'Permitir " +#~ "Rutas Personalizadas del Par' está marcado." + +#~ msgid "Action Required!" +#~ msgstr "¡Acción requerida!" + +#~ msgid "" +#~ "When manually updating the \"Public Key\", \"Pre-Shared Key\", or " +#~ "\"Private Key\", please ensure the configuration is correct." +#~ msgstr "" +#~ "Al actualizar manualmente \"Clave pública\", \"Clave precompartida\" o " +#~ "\"Clave privada\", asegúrate de que la configuración sea correcta." + +#~ 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 clave privada está vacía. El archivo de configuración y el código QR " +#~ "del peer se generarán sin la clave privada.\\n Debe insertarse " +#~ "manualmente al importar.\\n\\n ¿Deseas continuar?" + +#~ msgid "Post Up" +#~ msgstr "Post Up" + +#~ msgid "Post Down" +#~ msgstr "Post Down" + +#~ msgid "Create a new Peer for instance wg" +#~ msgstr "Crear nuevo peer para instancia wg" + +#~ msgid "Update Peer: " +#~ msgstr "Actualizar peer: " + #~ msgid "" #~ "

If enabled, firewall rules will be applied to strictly enforce this " #~ "routing policy.
The peer will only be able to access networks " diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index db72f628b82e48dad3fc381c27d5c6b0b76025f6..38502fe23829bd9ed84a5497a81edc0d9729fd01 100644 GIT binary patch delta 10483 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 C8s7x~ delta 12009 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 diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index d36ac9b..b524bff 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-26 10:41-0300\n" +"POT-Creation-Date: 2026-01-27 15:08-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,8 +22,9 @@ msgstr "" #: templates/routing_templates/list.html:8 #: templates/user_manager/peer_group_list.html:8 #: templates/wireguard/server_detail.html:12 -#: templates/wireguard/server_list.html:19 user_manager/forms.py:177 -#: wireguard_peer/forms.py:10 +#: templates/wireguard/server_list.html:19 +#: templates/wireguard/wireguard_manage_peer.html:15 user_manager/forms.py:177 +#: wireguard_peer/forms.py:27 msgid "Name" msgstr "Nom" @@ -70,10 +71,9 @@ msgstr "Jeton" #: templates/wireguard/apply_route_template.html:63 #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 -#: templates/wireguard/wireguard_manage_peer.html:203 -#: templates/wireguard/wireguard_manage_server.html:119 -#: user_manager/forms.py:49 user_manager/forms.py:180 vpn_invite/forms.py:192 -#: vpn_invite/forms.py:326 +#: templates/wireguard/wireguard_manage_peer.html:236 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:22 msgid "Back" msgstr "Retour" @@ -83,7 +83,7 @@ msgstr "Retour" #: templates/firewall/manage_redirect_rule.html:86 #: 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 +#: user_manager/forms.py:181 wireguard/forms.py:52 msgid "Delete" msgstr "Supprimer" @@ -92,11 +92,9 @@ msgstr "Supprimer" #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/wireguard/wireguard_manage_ip.html:41 -#: templates/wireguard/wireguard_manage_peer.html:201 -#: templates/wireguard/wireguard_manage_server.html:117 -#: user_manager/forms.py:98 user_manager/forms.py:205 vpn_invite/forms.py:191 -#: vpn_invite/forms.py:325 +#: 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:21 msgid "Save" msgstr "Enregistrer" @@ -327,11 +325,11 @@ msgstr "Cible invalide" msgid "Enhanced filter is enabled. This command is not available." msgstr "Le filtre avancé est activé. Cette commande n’est pas disponible." -#: dns/forms.py:22 wireguard/forms.py:22 +#: dns/forms.py:22 wireguard/forms.py:24 msgid "Primary DNS" msgstr "DNS primaire" -#: dns/forms.py:23 wireguard/forms.py:23 +#: dns/forms.py:23 wireguard/forms.py:25 msgid "Secondary DNS" msgstr "DNS secondaire" @@ -491,8 +489,8 @@ msgstr "Interface sortante" msgid "Source IP" msgstr "IP source" -#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:18 -#: wireguard_peer/forms.py:30 +#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:22 +#: wireguard_peer/forms.py:65 msgid "Netmask" msgstr "Masque" @@ -608,15 +606,15 @@ msgstr "Interface WAN" msgid "MASQUERADE" msgstr "MASQUERADE" -#: firewall/tools.py:44 +#: firewall/tools.py:45 msgid "Masquerade traffic from VPN to WAN" msgstr "Masquer le trafic du VPN vers le WAN" -#: firewall/tools.py:54 firewall/tools.py:58 firewall/tools.py:62 +#: firewall/tools.py:55 firewall/tools.py:59 firewall/tools.py:63 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:66 +#: firewall/tools.py:67 msgid "Allow traffic from VPN to WAN" msgstr "Autoriser le trafic du VPN vers le WAN" @@ -715,43 +713,59 @@ 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:86 -msgid "" -"You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' is " -"checked." +#: routing_templates/forms.py:90 +msgid "Custom routes should be empty when Route Type is 'Default Route'." msgstr "" -"Vous ne pouvez pas activer « Appliquer la politique de routage » lorsque « " -"Autoriser les routes personnalisées des pairs » est coché." +"Les routes personnalisées doivent être vides lorsque le Type de Route est " +"'Route par Défaut'." -#: routing_templates/forms.py:89 +#: routing_templates/forms.py:95 +#, fuzzy +#| msgid "Custom routes should be empty when Route Type is 'Default Route'." +msgid "" +"Allowing peer custom routes is not applicable 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:102 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:101 -msgid "" -"The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." -msgstr "" -"La route 0.0.0.0/0 n'est pas autorisée. Utilisez le type 'Route par Défaut'." - -#: routing_templates/forms.py:105 -#, python-format +#: routing_templates/forms.py:113 routing_templates/forms.py:123 +#, fuzzy, python-format +#| msgid "" +#| "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " +#| "192.168.1.0/24)." msgid "" "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " -"192.168.1.0/24)." +"10.0.0.0/24)." msgstr "" "Format de route invalide : '%(line)s'. Utilisez la notation CIDR (ex : " "192.168.1.0/24)." -#: routing_templates/forms.py:112 -msgid "Custom routes should be empty when Route Type is 'Default Route'." +#: routing_templates/forms.py:131 +#, fuzzy, python-format +#| msgid "" +#| "The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." +msgid "" +"The route %(route)s is not allowed. Use the 'Default Route' type instead." +msgstr "" +"La route 0.0.0.0/0 n'est pas autorisée. Utilisez le type 'Route par Défaut'." + +#: routing_templates/forms.py:139 +#, python-format +msgid "" +"'%(line)s' is not a network address. Use the network address (e.g., " +"'%(net)s')." msgstr "" -"Les routes personnalisées doivent être vides lorsque le Type de Route est " -"'Route par Défaut'." #: routing_templates/models.py:13 msgid "Default Route (0.0.0.0/0)" @@ -912,7 +926,7 @@ msgid "Status" msgstr "Statut" #: templates/cluster/workers_list.html:11 -#: templates/wireguard/peer_list/peer_data.html:36 +#: templates/wireguard/peer_list/peer_data.html:43 #: templates/wireguard/peer_list/peer_preview_modal.html:28 msgid "Location" msgstr "Emplacement" @@ -941,6 +955,8 @@ msgstr "Verrouillage IP activé" #: templates/cluster/workers_list.html:47 #: templates/cluster/workers_list.html:54 +#: templates/wireguard/wireguard_manage_peer.html:56 +#: templates/wireguard/wireguard_manage_peer.html:65 msgid "Not set" msgstr "Non défini" @@ -1552,7 +1568,7 @@ msgstr "Paramètres e‑mail" msgid "Invite Settings" msgstr "Paramètres d’invitation" -#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:332 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:368 msgid "Apply Route Template" msgstr "Appliquer le modèle de routage" @@ -1588,44 +1604,48 @@ msgstr "Dissocier" 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:29 +#: templates/wireguard/peer_list/peer_data.html:30 +msgid "Route policy enforced" +msgstr "" + +#: 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:32 +#: 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:37 +#: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 #: wireguard_peer/views.py:91 msgid "Primary Server" msgstr "Serveur primaire" -#: templates/wireguard/peer_list/peer_data.html:40 +#: 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:54 +#: 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:59 +#: 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:57 +#: templates/wireguard/wireguard_manage_peer.html:79 msgid "Peer Traffic" msgstr "Trafic du peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:73 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "No traffic history, please wait a few minutes" msgstr "Aucun historique de trafic ; veuillez patienter quelques minutes" @@ -1686,7 +1706,7 @@ msgid "Hide extras" msgstr "Masquer les extras" #: templates/wireguard/peer_list/script_peer_extras_toggle.html:10 -#: templates/wireguard/wireguard_peer_list.html:38 +#: templates/wireguard/wireguard_peer_list.html:39 msgid "Show extras" msgstr "Afficher les extras" @@ -1783,13 +1803,13 @@ msgstr "" "est obsolète." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:29 wireguard/forms.py:14 -#: wireguard_peer/forms.py:11 +#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: wireguard_peer/forms.py:47 msgid "Public Key" msgstr "Clé publique" #: templates/wireguard/server_detail.html:31 -#: templates/wireguard/server_list.html:20 wireguard/forms.py:16 +#: templates/wireguard/server_list.html:20 wireguard/forms.py:20 msgid "Listen Port" msgstr "Port d’écoute" @@ -1810,7 +1830,7 @@ msgstr "Retour à la liste" msgid "Traffic Graph" msgstr "Graphique de trafic" -#: templates/wireguard/server_list.html:7 wireguard/views.py:214 +#: templates/wireguard/server_list.html:7 wireguard/views.py:224 msgid "WireGuard Instances" msgstr "Instances WireGuard" @@ -1827,9 +1847,9 @@ msgid "Enter Allowed IP" msgstr "Saisir l’IP autorisée" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:103 -#: templates/wireguard/wireguard_manage_peer.html:186 -#: wireguard_peer/forms.py:31 +#: templates/wireguard/wireguard_manage_peer.html:131 +#: templates/wireguard/wireguard_manage_peer.html:220 +#: wireguard_peer/forms.py:66 msgid "Priority" msgstr "Priorité" @@ -1841,66 +1861,65 @@ msgstr "Tapez \\\"delete\\\" pour supprimer cette adresse IP." msgid "Peer Configuration" msgstr "Configuration du peer" -#: templates/wireguard/wireguard_manage_peer.html:17 -msgid "Enter Name" -msgstr "Saisir le nom" - -#: templates/wireguard/wireguard_manage_peer.html:23 wireguard_peer/forms.py:14 +#: templates/wireguard/wireguard_manage_peer.html:27 wireguard_peer/forms.py:36 msgid "Persistent Keepalive" msgstr "Keep‑alive persistant" -#: templates/wireguard/wireguard_manage_peer.html:36 wireguard/forms.py:13 -#: wireguard_peer/forms.py:12 +#: templates/wireguard/wireguard_manage_peer.html:40 +msgid "Keys" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: wireguard_peer/forms.py:48 msgid "Private Key" msgstr "Clé privée" -#: templates/wireguard/wireguard_manage_peer.html:46 wireguard_peer/forms.py:13 +#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:49 msgid "Pre-Shared Key" msgstr "Clé pré‑partagée" -#: templates/wireguard/wireguard_manage_peer.html:85 +#: templates/wireguard/wireguard_manage_peer.html:110 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs dans la section Peer de wg" -#: templates/wireguard/wireguard_manage_peer.html:86 +#: templates/wireguard/wireguard_manage_peer.html:111 msgid "Peer IP Addresses and networks" msgstr "Adresses IP et réseaux du peer" -#: templates/wireguard/wireguard_manage_peer.html:88 -#: templates/wireguard/wireguard_manage_peer.html:202 +#: templates/wireguard/wireguard_manage_peer.html:115 msgid "Add IP Address" msgstr "Ajouter une adresse IP" -#: templates/wireguard/wireguard_manage_peer.html:101 -#: templates/wireguard/wireguard_manage_peer.html:184 +#: templates/wireguard/wireguard_manage_peer.html:129 +#: templates/wireguard/wireguard_manage_peer.html:218 msgid "Main ip address" msgstr "Adresse IP principale" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:144 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs dans le fichier de configuration client" -#: templates/wireguard/wireguard_manage_peer.html:116 +#: templates/wireguard/wireguard_manage_peer.html:145 msgid "Client Routing" msgstr "Routage client" -#: templates/wireguard/wireguard_manage_peer.html:119 +#: templates/wireguard/wireguard_manage_peer.html:150 msgid "Apply template" msgstr "Appliquer le modèle" -#: templates/wireguard/wireguard_manage_peer.html:120 +#: templates/wireguard/wireguard_manage_peer.html:154 msgid "Add Client route" msgstr "Ajouter une route client" -#: templates/wireguard/wireguard_manage_peer.html:132 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Routing Template" msgstr "Modèle de Routage" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:180 msgid "Template Route" msgstr "Route du modèle" -#: templates/wireguard/wireguard_manage_peer.html:156 +#: templates/wireguard/wireguard_manage_peer.html:191 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." @@ -1913,7 +1932,7 @@ msgstr "" "\\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:159 +#: templates/wireguard/wireguard_manage_peer.html:194 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 " @@ -1923,59 +1942,134 @@ msgstr "" "\\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:168 +#: templates/wireguard/wireguard_manage_peer.html:202 msgid "default route" msgstr "route par défaut" -#: templates/wireguard/wireguard_manage_peer.html:204 +#: templates/wireguard/wireguard_manage_peer.html:239 msgid "Delete Peer" msgstr "Supprimer le peer" -#: templates/wireguard/wireguard_manage_peer.html:221 -msgid "Action Required!" -msgstr "Action requise!" - -#: templates/wireguard/wireguard_manage_peer.html:222 -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." - -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:249 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Tapez \\\"delete\\\" pour supprimer la configuration du peer." -#: templates/wireguard/wireguard_manage_peer.html:290 -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 ?" +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Nom à afficher" -#: templates/wireguard/wireguard_manage_server.html:120 -msgid "Delete Configuration" +#: templates/wireguard/wireguard_manage_server.html:27 +msgid "" +"\n" +" Optional name used only for display in the " +"web interface.\n" +" " +msgstr "" + +#: 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 "" + +#: 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 "" + +#: templates/wireguard/wireguard_manage_server.html:45 +#, fuzzy +#| msgid "Interface" +msgid "Interface Keys" +msgstr "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 "" + +#: templates/wireguard/wireguard_manage_server.html:54 +msgid "Internal Network" +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:56 +msgid "" +"\n" +" Internal IP address and netmask used by the " +"WireGuard interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:60 +#, fuzzy +#| msgid "Delete Configuration" +msgid "DNS Configuration" msgstr "Supprimer la configuration" -#: templates/wireguard/wireguard_peer_list.html:32 +#: 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 "" + +#: 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 "" + +#: 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:33 -#: templates/wireguard/wireguard_peer_list.html:36 +#: 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:49 +#: templates/wireguard/wireguard_peer_list.html:50 msgid "No WireGuard Instances Found" msgstr "Aucune instance WireGuard trouvée" -#: templates/wireguard/wireguard_peer_list.html:51 +#: templates/wireguard/wireguard_peer_list.html:52 msgid "" "There are no WireGuard instances configured. You can add a new instance by " "clicking the button below." @@ -1983,7 +2077,7 @@ 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:55 +#: templates/wireguard/wireguard_peer_list.html:56 msgid "Add WireGuard Instance" msgstr "Ajouter une instance WireGuard" @@ -2003,10 +2097,6 @@ msgstr "Recharger le service WireGuard" msgid "Instance Traffic" msgstr "Trafic de l’instance" -#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:15 -msgid "Public Address" -msgstr "Adresse publique" - #: user_manager/forms.py:15 msgid "Password Confirmation" msgstr "Confirmation du mot de passe" @@ -2459,41 +2549,25 @@ msgstr "Paramètres de l’invitation VPN" msgid "Email Settings|Settings saved successfully." msgstr "Paramètres e‑mail | Paramètres enregistrés avec succès." -#: wireguard/forms.py:11 -msgid "Display Name" -msgstr "Nom à afficher" - -#: wireguard/forms.py:12 +#: wireguard/forms.py:16 msgid "Instance ID" msgstr "ID de l’instance" -#: wireguard/forms.py:17 +#: wireguard/forms.py:21 msgid "Internal IP Address" msgstr "Adresse IP interne" -#: wireguard/forms.py:19 -msgid "Post Up" -msgstr "Post‑Up" - -#: wireguard/forms.py:20 -msgid "Post Down" -msgstr "Post‑Down" - -#: wireguard/forms.py:21 -msgid "Web Refresh Interval" -msgstr "Intervalle d’actualisation Web" - -#: wireguard/forms.py:42 +#: 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:45 +#: wireguard/forms.py:120 msgid "Invalid hostname or IP Address" msgstr "Nom d’hôte ou adresse IP invalide" -#: wireguard/forms.py:54 +#: 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." @@ -2539,23 +2613,23 @@ msgstr "Créer une nouvelle instance WireGuard" msgid "New WireGuard Instance" msgstr "Nouvelle instance WireGuard" -#: wireguard_peer/forms.py:29 +#: wireguard_peer/forms.py:64 msgid "Allowed IP or Network" msgstr "IP ou réseau autorisé" -#: wireguard_peer/forms.py:39 +#: wireguard_peer/forms.py:74 msgid "Please provide a valid IP address." msgstr "Veuillez fournir une adresse IP valide." -#: wireguard_peer/forms.py:48 +#: wireguard_peer/forms.py:83 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:54 +#: wireguard_peer/forms.py:89 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:56 +#: wireguard_peer/forms.py:91 msgid "" "The IP address does not belong to the Peer's WireGuard instance network " "range. Please check the IP address or change the priority." @@ -2563,16 +2637,16 @@ 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:58 +#: wireguard_peer/forms.py:93 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:60 +#: wireguard_peer/forms.py:95 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:63 +#: wireguard_peer/forms.py:98 msgid "" "The IP address belongs to the Peer's WireGuard instance network range. " "Please check the IP address or change use priority 0 instead." @@ -2580,15 +2654,15 @@ 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:66 +#: wireguard_peer/forms.py:101 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:68 +#: wireguard_peer/forms.py:103 msgid "Priority must be greater than or equal to 1" msgstr "La priorité doit être supérieure ou égale à 1." -#: wireguard_peer/forms.py:70 +#: wireguard_peer/forms.py:105 msgid "Invalid config file" msgstr "Fichier de configuration invalide" @@ -2596,42 +2670,64 @@ msgstr "Fichier de configuration invalide" msgid "WireGuard Peer List" msgstr "Liste des peers WireGuard" -#: wireguard_peer/views.py:161 -msgid "Create a new Peer for instance wg" -msgstr "Créer un nouveau peer pour l’instance wg" - -#: wireguard_peer/views.py:180 +#: wireguard_peer/views.py:176 msgid "Peer created|Peer created successfully." msgstr "Peer créé | Peer créé avec succès." -#: wireguard_peer/views.py:185 +#: wireguard_peer/views.py:181 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:198 +#: wireguard_peer/views.py:204 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer supprimé | Peer supprimé avec succès." -#: wireguard_peer/views.py:201 +#: wireguard_peer/views.py:207 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:203 -msgid "Update Peer: " -msgstr "Mettre à jour le peer: " +#: wireguard_peer/views.py:209 +#, fuzzy +#| msgid "Peer Configuration" +msgid "Peer Configuration: " +msgstr "Configuration du peer" -#: wireguard_peer/views.py:214 +#: wireguard_peer/views.py:247 msgid "Peer updated|Peer updated successfully." msgstr "Peer mis à jour | Peer mis à jour avec succès." +#: wireguard_peer/views.py:250 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Peer" +msgstr "Modifier l’utilisateur" + #: wireguard_peer/views.py:252 +#, fuzzy +#| msgid "Enter Name" +msgid "Edit Peer Name" +msgstr "Saisir le nom" + +#: wireguard_peer/views.py:254 +#, fuzzy +#| msgid "Persistent Keepalive" +msgid "Edit Keepalive" +msgstr "Keep‑alive persistant" + +#: wireguard_peer/views.py:256 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Keys" +msgstr "Modifier l’utilisateur" + +#: wireguard_peer/views.py:288 msgid "IP address deleted|IP address deleted successfully." msgstr "Adresse IP supprimée | Suppression réussie." -#: wireguard_peer/views.py:257 +#: wireguard_peer/views.py:293 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2639,27 +2735,27 @@ msgstr "" "Erreur de suppression de l’IP | Message de confirmation invalide. Tapez « " "delete » pour confirmer." -#: wireguard_peer/views.py:262 +#: wireguard_peer/views.py:298 msgid "Manage client route" msgstr "Gérer la route client" -#: wireguard_peer/views.py:264 +#: wireguard_peer/views.py:300 msgid "Manage IP address or Network" msgstr "Gérer l’adresse IP ou le réseau" -#: wireguard_peer/views.py:277 +#: wireguard_peer/views.py:313 msgid "IP address updated|IP address updated successfully." msgstr "Adresse IP mise à jour | Mise à jour réussie." -#: wireguard_peer/views.py:279 +#: wireguard_peer/views.py:315 msgid "IP address added|IP address added successfully." msgstr "Adresse IP ajoutée | Ajout réussi." -#: wireguard_peer/views.py:311 +#: wireguard_peer/views.py:347 msgid "Route template unlinked successfully." msgstr "Modèle de routage dissocié avec succès." -#: wireguard_peer/views.py:321 +#: wireguard_peer/views.py:357 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -2667,7 +2763,7 @@ 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:328 +#: wireguard_peer/views.py:364 msgid "Route template applied successfully." msgstr "Modèle de routage appliqué avec succès." @@ -2726,6 +2822,45 @@ msgstr "" msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "Aucune interface trouvée | Aucune interface WireGuard à traiter." +#~ 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 :" diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo index 419f75645b181511139829e91a695ef51c7f02d1..469dab1b25d929f06e93c31b46cb599dda87620d 100644 GIT binary patch delta 10487 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 delta 11957 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 L05<8rcjWs&EYQbG diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index 1924dde..f9faa80 100644 --- a/locale/pt_BR/LC_MESSAGES/django.po +++ b/locale/pt_BR/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-01-26 10:41-0300\n" +"POT-Creation-Date: 2026-01-27 15:08-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -22,8 +22,9 @@ msgstr "" #: templates/routing_templates/list.html:8 #: templates/user_manager/peer_group_list.html:8 #: templates/wireguard/server_detail.html:12 -#: templates/wireguard/server_list.html:19 user_manager/forms.py:177 -#: wireguard_peer/forms.py:10 +#: templates/wireguard/server_list.html:19 +#: templates/wireguard/wireguard_manage_peer.html:15 user_manager/forms.py:177 +#: wireguard_peer/forms.py:27 msgid "Name" msgstr "Nome" @@ -70,10 +71,9 @@ msgstr "Token" #: templates/wireguard/apply_route_template.html:63 #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 -#: templates/wireguard/wireguard_manage_peer.html:203 -#: templates/wireguard/wireguard_manage_server.html:119 -#: user_manager/forms.py:49 user_manager/forms.py:180 vpn_invite/forms.py:192 -#: vpn_invite/forms.py:326 +#: templates/wireguard/wireguard_manage_peer.html:236 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:22 msgid "Back" msgstr "Voltar" @@ -83,7 +83,7 @@ msgstr "Voltar" #: templates/firewall/manage_redirect_rule.html:86 #: 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 +#: user_manager/forms.py:181 wireguard/forms.py:52 msgid "Delete" msgstr "Excluir" @@ -92,11 +92,9 @@ msgstr "Excluir" #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/wireguard/wireguard_manage_ip.html:41 -#: templates/wireguard/wireguard_manage_peer.html:201 -#: templates/wireguard/wireguard_manage_server.html:117 -#: user_manager/forms.py:98 user_manager/forms.py:205 vpn_invite/forms.py:191 -#: vpn_invite/forms.py:325 +#: 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:21 msgid "Save" msgstr "Salvar" @@ -326,11 +324,11 @@ msgstr "Destino inválido" msgid "Enhanced filter is enabled. This command is not available." msgstr "Filtro aprimorado está habilitado. Este comando não está disponível." -#: dns/forms.py:22 wireguard/forms.py:22 +#: dns/forms.py:22 wireguard/forms.py:24 msgid "Primary DNS" msgstr "DNS Primário" -#: dns/forms.py:23 wireguard/forms.py:23 +#: dns/forms.py:23 wireguard/forms.py:25 msgid "Secondary DNS" msgstr "DNS Secundário" @@ -489,8 +487,8 @@ msgstr "Interface de Saída" msgid "Source IP" msgstr "IP de Origem" -#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:18 -#: wireguard_peer/forms.py:30 +#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:22 +#: wireguard_peer/forms.py:65 msgid "Netmask" msgstr "Máscara de Rede" @@ -606,15 +604,15 @@ msgstr "Interface WAN" msgid "MASQUERADE" msgstr "MASCARAR" -#: firewall/tools.py:44 +#: firewall/tools.py:45 msgid "Masquerade traffic from VPN to WAN" msgstr "Mascarar tráfego da VPN para a WAN" -#: firewall/tools.py:54 firewall/tools.py:58 firewall/tools.py:62 +#: firewall/tools.py:55 firewall/tools.py:59 firewall/tools.py:63 msgid "Reject traffic to private networks exiting on WAN interface" msgstr "Rejeitar tráfego para redes privadas saindo pela interface WAN" -#: firewall/tools.py:66 +#: firewall/tools.py:67 msgid "Allow traffic from VPN to WAN" msgstr "Permitir tráfego da VPN para a WAN" @@ -713,42 +711,58 @@ msgid "Allow Peer Custom Routes" msgstr "Permitir Rotas Personalizadas do Peer" #: routing_templates/forms.py:34 +#: templates/wireguard/wireguard_manage_server.html:69 wireguard/forms.py:26 msgid "Enforce Route Policy" msgstr "Forçar Política de Roteamento" -#: routing_templates/forms.py:86 -msgid "" -"You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' is " -"checked." +#: routing_templates/forms.py:90 +msgid "Custom routes should be empty when Route Type is 'Default Route'." msgstr "" -"Você não pode ativar 'Forçar Política de Roteamento' quando 'Permitir Rotas " -"Personalizadas do Peer' está marcado." +"As rotas personalizadas devem estar vazias quando o Tipo de Rota é 'Rota " +"Padrão'." -#: routing_templates/forms.py:89 +#: routing_templates/forms.py:95 +#, fuzzy +#| msgid "Custom routes should be empty when Route Type is 'Default Route'." +msgid "" +"Allowing peer custom routes is not applicable when Route Type is 'Default " +"Route'." +msgstr "" +"As rotas personalizadas devem estar vazias quando o Tipo de Rota é 'Rota " +"Padrão'." + +#: routing_templates/forms.py:102 msgid "At least one route must be provided when Route Type is 'Custom'." msgstr "" "Pelo menos uma rota deve ser fornecida quando o Tipo de Rota é " "'Personalizada'." -#: routing_templates/forms.py:101 -msgid "" -"The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." -msgstr "A rota 0.0.0.0/0 não é permitida. Use o tipo 'Rota Padrão'." - -#: routing_templates/forms.py:105 -#, python-format +#: routing_templates/forms.py:113 routing_templates/forms.py:123 +#, fuzzy, python-format +#| msgid "" +#| "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " +#| "192.168.1.0/24)." msgid "" "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " -"192.168.1.0/24)." +"10.0.0.0/24)." msgstr "" "Formato de rota inválido: '%(line)s'. Use a notação CIDR (ex: " "192.168.1.0/24)." -#: routing_templates/forms.py:112 -msgid "Custom routes should be empty when Route Type is 'Default Route'." +#: routing_templates/forms.py:131 +#, fuzzy, python-format +#| msgid "" +#| "The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." +msgid "" +"The route %(route)s is not allowed. Use the 'Default Route' type instead." +msgstr "A rota 0.0.0.0/0 não é permitida. Use o tipo 'Rota Padrão'." + +#: routing_templates/forms.py:139 +#, python-format +msgid "" +"'%(line)s' is not a network address. Use the network address (e.g., " +"'%(net)s')." msgstr "" -"As rotas personalizadas devem estar vazias quando o Tipo de Rota é 'Rota " -"Padrão'." #: routing_templates/models.py:13 msgid "Default Route (0.0.0.0/0)" @@ -907,7 +921,7 @@ msgid "Status" msgstr "Estado" #: templates/cluster/workers_list.html:11 -#: templates/wireguard/peer_list/peer_data.html:36 +#: templates/wireguard/peer_list/peer_data.html:43 #: templates/wireguard/peer_list/peer_preview_modal.html:28 msgid "Location" msgstr "Localização" @@ -937,6 +951,8 @@ msgstr "Bloqueio de IP Habilitado" #: templates/cluster/workers_list.html:47 #: templates/cluster/workers_list.html:54 +#: templates/wireguard/wireguard_manage_peer.html:56 +#: templates/wireguard/wireguard_manage_peer.html:65 msgid "Not set" msgstr "Não definido" @@ -1553,7 +1569,7 @@ msgstr "Configurações de Email" msgid "Invite Settings" msgstr "Configurações de Convite" -#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:332 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:368 msgid "Apply Route Template" msgstr "Aplicar Modelo de Roteamento" @@ -1589,44 +1605,48 @@ msgstr "Desvincular" msgid "No routing templates available for this interface." msgstr "Nenhum modelo de roteamento disponível para esta interface." -#: templates/wireguard/peer_list/peer_data.html:29 +#: templates/wireguard/peer_list/peer_data.html:30 +msgid "Route policy enforced" +msgstr "" + +#: templates/wireguard/peer_list/peer_data.html:36 #: templates/wireguard/peer_list/peer_preview_modal.html:16 msgid "Throughput" msgstr "Taxa de transferência" -#: templates/wireguard/peer_list/peer_data.html:32 +#: templates/wireguard/peer_list/peer_data.html:39 #: templates/wireguard/peer_list/peer_preview_modal.html:20 msgid "Transfer" msgstr "Transferência" -#: templates/wireguard/peer_list/peer_data.html:37 +#: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 #: wireguard_peer/views.py:91 msgid "Primary Server" msgstr "Servidor Primário" -#: templates/wireguard/peer_list/peer_data.html:40 +#: templates/wireguard/peer_list/peer_data.html:47 #: templates/wireguard/peer_list/peer_preview_modal.html:24 msgid "Latest Handshake" msgstr "Último Handshake" -#: templates/wireguard/peer_list/peer_data.html:54 +#: templates/wireguard/peer_list/peer_data.html:61 #: templates/wireguard/peer_list/peer_preview_modal.html:32 msgid "Endpoints" msgstr "Endereço Remoto" -#: templates/wireguard/peer_list/peer_data.html:59 +#: templates/wireguard/peer_list/peer_data.html:66 #: templates/wireguard/peer_list/peer_preview_modal.html:36 msgid "Allowed IPs" msgstr "IPs Permitidos" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:57 +#: templates/wireguard/wireguard_manage_peer.html:79 msgid "Peer Traffic" msgstr "Tráfego do Peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:73 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "No traffic history, please wait a few minutes" msgstr "Sem histórico de tráfego, por favor aguarde alguns minutos" @@ -1687,7 +1707,7 @@ msgid "Hide extras" msgstr "Ocultar extras" #: templates/wireguard/peer_list/script_peer_extras_toggle.html:10 -#: templates/wireguard/wireguard_peer_list.html:38 +#: templates/wireguard/wireguard_peer_list.html:39 msgid "Show extras" msgstr "Exibir extras" @@ -1784,13 +1804,13 @@ msgstr "" "configuração está desatualizado." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:29 wireguard/forms.py:14 -#: wireguard_peer/forms.py:11 +#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: wireguard_peer/forms.py:47 msgid "Public Key" msgstr "Chave Pública" #: templates/wireguard/server_detail.html:31 -#: templates/wireguard/server_list.html:20 wireguard/forms.py:16 +#: templates/wireguard/server_list.html:20 wireguard/forms.py:20 msgid "Listen Port" msgstr "Porta" @@ -1811,7 +1831,7 @@ msgstr "Voltar para a Lista" msgid "Traffic Graph" msgstr "Gráfico de Tráfego" -#: templates/wireguard/server_list.html:7 wireguard/views.py:214 +#: templates/wireguard/server_list.html:7 wireguard/views.py:224 msgid "WireGuard Instances" msgstr "Instâncias do WireGuard" @@ -1828,9 +1848,9 @@ msgid "Enter Allowed IP" msgstr "Inserir IP Permitido" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:103 -#: templates/wireguard/wireguard_manage_peer.html:186 -#: wireguard_peer/forms.py:31 +#: templates/wireguard/wireguard_manage_peer.html:131 +#: templates/wireguard/wireguard_manage_peer.html:220 +#: wireguard_peer/forms.py:66 msgid "Priority" msgstr "Prioridade" @@ -1842,66 +1862,65 @@ msgstr "Por favor, digite \\\"delete\\\" para remover este endereço IP." msgid "Peer Configuration" msgstr "Configuração do Peer" -#: templates/wireguard/wireguard_manage_peer.html:17 -msgid "Enter Name" -msgstr "Digite um Nome" - -#: templates/wireguard/wireguard_manage_peer.html:23 wireguard_peer/forms.py:14 +#: templates/wireguard/wireguard_manage_peer.html:27 wireguard_peer/forms.py:36 msgid "Persistent Keepalive" msgstr "Conexão Persistente" -#: templates/wireguard/wireguard_manage_peer.html:36 wireguard/forms.py:13 -#: wireguard_peer/forms.py:12 +#: templates/wireguard/wireguard_manage_peer.html:40 +msgid "Keys" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: wireguard_peer/forms.py:48 msgid "Private Key" msgstr "Chave Privada" -#: templates/wireguard/wireguard_manage_peer.html:46 wireguard_peer/forms.py:13 +#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:49 msgid "Pre-Shared Key" msgstr "Chave Pré-Compartilhada" -#: templates/wireguard/wireguard_manage_peer.html:85 +#: templates/wireguard/wireguard_manage_peer.html:110 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs na seção Peer do wg" -#: templates/wireguard/wireguard_manage_peer.html:86 +#: templates/wireguard/wireguard_manage_peer.html:111 msgid "Peer IP Addresses and networks" msgstr "Endereços IP e redes do Peer" -#: templates/wireguard/wireguard_manage_peer.html:88 -#: templates/wireguard/wireguard_manage_peer.html:202 +#: templates/wireguard/wireguard_manage_peer.html:115 msgid "Add IP Address" msgstr "Adicionar IP" -#: templates/wireguard/wireguard_manage_peer.html:101 -#: templates/wireguard/wireguard_manage_peer.html:184 +#: templates/wireguard/wireguard_manage_peer.html:129 +#: templates/wireguard/wireguard_manage_peer.html:218 msgid "Main ip address" msgstr "Endereço IP principal" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:144 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs no arquivo de configuração do cliente" -#: templates/wireguard/wireguard_manage_peer.html:116 +#: templates/wireguard/wireguard_manage_peer.html:145 msgid "Client Routing" msgstr "Roteamento do Cliente" -#: templates/wireguard/wireguard_manage_peer.html:119 +#: templates/wireguard/wireguard_manage_peer.html:150 msgid "Apply template" msgstr "Aplicar modelo" -#: templates/wireguard/wireguard_manage_peer.html:120 +#: templates/wireguard/wireguard_manage_peer.html:154 msgid "Add Client route" msgstr "Adicionar rota" -#: templates/wireguard/wireguard_manage_peer.html:132 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Routing Template" msgstr "Modelo de Roteamento" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:180 msgid "Template Route" msgstr "Rota do Modelo" -#: templates/wireguard/wireguard_manage_peer.html:156 +#: templates/wireguard/wireguard_manage_peer.html:191 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." @@ -1915,7 +1934,7 @@ msgstr "" "cliente. Você precisará atualizar manualmente o arquivo de configuração do " "cliente para refletir essas configurações." -#: templates/wireguard/wireguard_manage_peer.html:159 +#: templates/wireguard/wireguard_manage_peer.html:194 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 " @@ -1925,59 +1944,134 @@ msgstr "" "configuração direciona todo o tráfego de internet do cliente através da VPN, " "aprimorando a privacidade e a segurança em todas as conexões." -#: templates/wireguard/wireguard_manage_peer.html:168 +#: templates/wireguard/wireguard_manage_peer.html:202 msgid "default route" msgstr "rota padrão" -#: templates/wireguard/wireguard_manage_peer.html:204 +#: templates/wireguard/wireguard_manage_peer.html:239 msgid "Delete Peer" msgstr "Excluir Peer" -#: templates/wireguard/wireguard_manage_peer.html:221 -msgid "Action Required!" -msgstr "Ação Necessária!" - -#: templates/wireguard/wireguard_manage_peer.html:222 -msgid "" -"When manually updating the \"Public Key\", \"Pre-Shared Key\", or \"Private " -"Key\", please ensure the configuration is correct." -msgstr "" -"Ao atualizar manualmente a \"Chave Pública\", \"Chave Pré-compartilhada\" ou " -"\"Chave Privada\", por favor, certifique-se de que a configuração esteja " -"correta." - -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:249 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Por favor, digite \\\"delete\\\" para remover a configuração do peer." -#: templates/wireguard/wireguard_manage_peer.html:290 -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 "" -"A chave privada está vazia. O arquivo de configuração e o código QR do peer " -"serão gerados sem a chave privada.\\n Ela deve ser inserida manualmente ao " -"importar.\\n\\n Deseja continuar?" +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Nome de Exibição" -#: templates/wireguard/wireguard_manage_server.html:120 -msgid "Delete Configuration" +#: templates/wireguard/wireguard_manage_server.html:27 +msgid "" +"\n" +" Optional name used only for display in the " +"web interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:31 wireguard/forms.py:23 +msgid "Web Refresh Interval" +msgstr "Intervalo de Atualização Web" + +#: templates/wireguard/wireguard_manage_server.html:33 +msgid "" +"\n" +" Interval used to refresh WireGuard status " +"information in the web UI.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:37 +#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:19 +msgid "Public Address" +msgstr "Endereço Público" + +#: 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 "" + +#: templates/wireguard/wireguard_manage_server.html:45 +#, fuzzy +#| msgid "Interface" +msgid "Interface Keys" +msgstr "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 "" + +#: templates/wireguard/wireguard_manage_server.html:54 +msgid "Internal Network" +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:56 +msgid "" +"\n" +" Internal IP address and netmask used by the " +"WireGuard interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:60 +#, fuzzy +#| msgid "Delete Configuration" +msgid "DNS Configuration" msgstr "Excluir Configuração" -#: templates/wireguard/wireguard_peer_list.html:32 +#: 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 "" + +#: 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 "" + +#: templates/wireguard/wireguard_peer_list.html:33 msgid "Are you sure you want to create a new peer?" msgstr "Você tem certeza que deseja criar um novo peer?" -#: templates/wireguard/wireguard_peer_list.html:33 -#: templates/wireguard/wireguard_peer_list.html:36 +#: templates/wireguard/wireguard_peer_list.html:34 +#: templates/wireguard/wireguard_peer_list.html:37 msgid "Create Peer" msgstr "Criar Peer" -#: templates/wireguard/wireguard_peer_list.html:49 +#: templates/wireguard/wireguard_peer_list.html:50 msgid "No WireGuard Instances Found" msgstr "Nenhuma Instância do WireGuard Encontrada" -#: templates/wireguard/wireguard_peer_list.html:51 +#: templates/wireguard/wireguard_peer_list.html:52 msgid "" "There are no WireGuard instances configured. You can add a new instance by " "clicking the button below." @@ -1985,7 +2079,7 @@ msgstr "" "Não há instâncias do WireGuard configuradas. Você pode adicionar uma nova " "instância clicando no botão abaixo." -#: templates/wireguard/wireguard_peer_list.html:55 +#: templates/wireguard/wireguard_peer_list.html:56 msgid "Add WireGuard Instance" msgstr "Adicionar Instância do WireGuard" @@ -2005,10 +2099,6 @@ msgstr "Recarregar o serviço Wireguard" msgid "Instance Traffic" msgstr "Tráfego da Instância" -#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:15 -msgid "Public Address" -msgstr "Endereço Público" - #: user_manager/forms.py:15 msgid "Password Confirmation" msgstr "Confirmação de Senha" @@ -2459,40 +2549,24 @@ msgstr "Configurações de Convite para VPN" msgid "Email Settings|Settings saved successfully." msgstr "Configurações de Email|Configurações salvas com sucesso." -#: wireguard/forms.py:11 -msgid "Display Name" -msgstr "Nome de Exibição" - -#: wireguard/forms.py:12 +#: wireguard/forms.py:16 msgid "Instance ID" msgstr "Instância" -#: wireguard/forms.py:17 +#: wireguard/forms.py:21 msgid "Internal IP Address" msgstr "Endereço IP Interno" -#: wireguard/forms.py:19 -msgid "Post Up" -msgstr "Post Up" - -#: wireguard/forms.py:20 -msgid "Post Down" -msgstr "Post Down" - -#: wireguard/forms.py:21 -msgid "Web Refresh Interval" -msgstr "Intervalo de Atualização Web" - -#: wireguard/forms.py:42 +#: wireguard/forms.py:117 msgid "Peer List Refresh Interval must be at least 5 seconds" msgstr "" "Intervalo de Atualização da Lista de Peers deve ser de pelo menos 5 segundos" -#: wireguard/forms.py:45 +#: wireguard/forms.py:120 msgid "Invalid hostname or IP Address" msgstr "Endereço ou IP inválido" -#: wireguard/forms.py:54 +#: wireguard/forms.py:130 msgid "The selected network range overlaps with another instance." msgstr "A faixa de rede selecionada se sobrepõe a outra instância." @@ -2538,23 +2612,23 @@ msgstr "Adicionar uma nova Instância do WireGuard" msgid "New WireGuard Instance" msgstr "Nova Instância do WireGuard" -#: wireguard_peer/forms.py:29 +#: wireguard_peer/forms.py:64 msgid "Allowed IP or Network" msgstr "Endereço IP ou Rede Permitida" -#: wireguard_peer/forms.py:39 +#: wireguard_peer/forms.py:74 msgid "Please provide a valid IP address." msgstr "Por favor, forneça um endereço IP válido." -#: wireguard_peer/forms.py:48 +#: wireguard_peer/forms.py:83 msgid "A peer can have only one IP with priority zero." msgstr "Um peer pode ter apenas um IP com prioridade zero." -#: wireguard_peer/forms.py:54 +#: wireguard_peer/forms.py:89 msgid "This IP is already in use by another peer." msgstr "Este IP já está em uso por outro peer." -#: wireguard_peer/forms.py:56 +#: wireguard_peer/forms.py:91 msgid "" "The IP address does not belong to the Peer's WireGuard instance network " "range. Please check the IP address or change the priority." @@ -2562,15 +2636,15 @@ msgstr "" "O endereço IP não pertence à faixa de rede da instância WireGuard do Peer. " "Por favor, verifique o endereço IP ou altere a prioridade." -#: wireguard_peer/forms.py:58 +#: wireguard_peer/forms.py:93 msgid "The netmask for priority 0 IP must be 32." msgstr "A máscara de rede para IP de prioridade 0 deve ser 32." -#: wireguard_peer/forms.py:60 +#: wireguard_peer/forms.py:95 msgid "The IP address is the same as the Peer's WireGuard instance address." msgstr "O endereço IP é o mesmo que o endereço da instância WireGuard do Peer." -#: wireguard_peer/forms.py:63 +#: wireguard_peer/forms.py:98 msgid "" "The IP address belongs to the Peer's WireGuard instance network range. " "Please check the IP address or change use priority 0 instead." @@ -2578,15 +2652,15 @@ msgstr "" "O endereço IP pertence à faixa de rede da instância WireGuard do Peer. Por " "favor, verifique o endereço IP ou use a prioridade 0 em vez disso." -#: wireguard_peer/forms.py:66 +#: wireguard_peer/forms.py:101 msgid "The peer's routing template does not allow custom routes." msgstr "O modelo de roteamento do peer não permite rotas personalizadas." -#: wireguard_peer/forms.py:68 +#: wireguard_peer/forms.py:103 msgid "Priority must be greater than or equal to 1" msgstr "Prioridade deve ser maior ou igual a 1" -#: wireguard_peer/forms.py:70 +#: wireguard_peer/forms.py:105 msgid "Invalid config file" msgstr "Arquivo de configuração inválido" @@ -2594,43 +2668,65 @@ msgstr "Arquivo de configuração inválido" msgid "WireGuard Peer List" msgstr "Lista de Peers do WireGuard" -#: wireguard_peer/views.py:161 -msgid "Create a new Peer for instance wg" -msgstr "Criar um novo Peer para a instância wg" - -#: wireguard_peer/views.py:180 +#: wireguard_peer/views.py:176 msgid "Peer created|Peer created successfully." msgstr "Peer adicionado|Peer adicionado com sucesso." -#: wireguard_peer/views.py:185 +#: wireguard_peer/views.py:181 msgid "Error creating peer|No available IP address found for peer creation." msgstr "" "Erro ao criar peer|Nenhum endereço IP disponível encontrado para alocação. " -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:204 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer excluído|Peer excluído com sucesso." -#: wireguard_peer/views.py:201 +#: wireguard_peer/views.py:207 msgid "" "Error deleting peer|Invalid confirmation message. Type \"delete\" to confirm." msgstr "" "Erro ao excluir peer|Mensagem de confirmação inválida. Digite \"delete\" " "para confirmar." -#: wireguard_peer/views.py:203 -msgid "Update Peer: " -msgstr "Atualizar Peer: " +#: wireguard_peer/views.py:209 +#, fuzzy +#| msgid "Peer Configuration" +msgid "Peer Configuration: " +msgstr "Configuração do Peer" -#: wireguard_peer/views.py:214 +#: wireguard_peer/views.py:247 msgid "Peer updated|Peer updated successfully." msgstr "Peer atualizado|Peer atualizado com sucesso." +#: wireguard_peer/views.py:250 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Peer" +msgstr "Editar Usuário" + #: wireguard_peer/views.py:252 +#, fuzzy +#| msgid "Enter Name" +msgid "Edit Peer Name" +msgstr "Digite um Nome" + +#: wireguard_peer/views.py:254 +#, fuzzy +#| msgid "Persistent Keepalive" +msgid "Edit Keepalive" +msgstr "Conexão Persistente" + +#: wireguard_peer/views.py:256 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Keys" +msgstr "Editar Usuário" + +#: wireguard_peer/views.py:288 msgid "IP address deleted|IP address deleted successfully." msgstr "Endereço IP excluído|Endereço IP excluído com sucesso." -#: wireguard_peer/views.py:257 +#: wireguard_peer/views.py:293 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2638,27 +2734,27 @@ msgstr "" "Erro ao excluir endereço IP|Mensagem de confirmação inválida. Digite " "\"delete\" para confirmar." -#: wireguard_peer/views.py:262 +#: wireguard_peer/views.py:298 msgid "Manage client route" msgstr "Gerenciar rota do cliente" -#: wireguard_peer/views.py:264 +#: wireguard_peer/views.py:300 msgid "Manage IP address or Network" msgstr "Gerenciar Endereço IP ou Rede" -#: wireguard_peer/views.py:277 +#: wireguard_peer/views.py:313 msgid "IP address updated|IP address updated successfully." msgstr "Endereço IP atualizado|Endereço IP atualizado com sucesso." -#: wireguard_peer/views.py:279 +#: wireguard_peer/views.py:315 msgid "IP address added|IP address added successfully." msgstr "Endereço IP adicionado|Endereço IP adicionado com sucesso." -#: wireguard_peer/views.py:311 +#: wireguard_peer/views.py:347 msgid "Route template unlinked successfully." msgstr "Modelo de roteamento desvinculado com sucesso." -#: wireguard_peer/views.py:321 +#: wireguard_peer/views.py:357 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -2666,7 +2762,7 @@ msgstr "" "Não é possível aplicar o modelo: Este modelo não permite rotas " "personalizadas, mas o peer possui rotas de cliente personalizadas definidas." -#: wireguard_peer/views.py:328 +#: wireguard_peer/views.py:364 msgid "Route template applied successfully." msgstr "Modelo de roteamento aplicado com sucesso." @@ -2726,6 +2822,45 @@ msgstr "" "Nenhuma interface encontrada|Nenhuma interface WireGuard foi encontrada para " "processar." +#~ msgid "" +#~ "You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' " +#~ "is checked." +#~ msgstr "" +#~ "Você não pode ativar 'Forçar Política de Roteamento' quando 'Permitir " +#~ "Rotas Personalizadas do Peer' está marcado." + +#~ msgid "Action Required!" +#~ msgstr "Ação Necessária!" + +#~ msgid "" +#~ "When manually updating the \"Public Key\", \"Pre-Shared Key\", or " +#~ "\"Private Key\", please ensure the configuration is correct." +#~ msgstr "" +#~ "Ao atualizar manualmente a \"Chave Pública\", \"Chave Pré-compartilhada\" " +#~ "ou \"Chave Privada\", por favor, certifique-se de que a configuração " +#~ "esteja correta." + +#~ 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 "" +#~ "A chave privada está vazia. O arquivo de configuração e o código QR do " +#~ "peer serão gerados sem a chave privada.\\n Ela deve ser inserida " +#~ "manualmente ao importar.\\n\\n Deseja continuar?" + +#~ msgid "Post Up" +#~ msgstr "Post Up" + +#~ msgid "Post Down" +#~ msgstr "Post Down" + +#~ msgid "Create a new Peer for instance wg" +#~ msgstr "Criar um novo Peer para a instância wg" + +#~ msgid "Update Peer: " +#~ msgstr "Atualizar Peer: " + #~ msgid "Warning:" #~ msgstr "Aviso:" diff --git a/locale/sk/LC_MESSAGES/django.mo b/locale/sk/LC_MESSAGES/django.mo index 824c6cf6f659d4c21bc5ac600c6f70aba594cabf..d101762c2253e0363aebab371478d32456ed319c 100644 GIT binary patch delta 10483 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 delta 11989 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\n" "Language-Team: LANGUAGE \n" @@ -23,8 +23,9 @@ msgstr "" #: templates/routing_templates/list.html:8 #: templates/user_manager/peer_group_list.html:8 #: templates/wireguard/server_detail.html:12 -#: templates/wireguard/server_list.html:19 user_manager/forms.py:177 -#: wireguard_peer/forms.py:10 +#: templates/wireguard/server_list.html:19 +#: templates/wireguard/wireguard_manage_peer.html:15 user_manager/forms.py:177 +#: wireguard_peer/forms.py:27 msgid "Name" msgstr "Názov" @@ -71,10 +72,9 @@ msgstr "Token" #: templates/wireguard/apply_route_template.html:63 #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 -#: templates/wireguard/wireguard_manage_peer.html:203 -#: templates/wireguard/wireguard_manage_server.html:119 -#: user_manager/forms.py:49 user_manager/forms.py:180 vpn_invite/forms.py:192 -#: vpn_invite/forms.py:326 +#: templates/wireguard/wireguard_manage_peer.html:236 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:22 msgid "Back" msgstr "Späť" @@ -84,7 +84,7 @@ msgstr "Späť" #: templates/firewall/manage_redirect_rule.html:86 #: 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 +#: user_manager/forms.py:181 wireguard/forms.py:52 msgid "Delete" msgstr "Vymazať" @@ -93,11 +93,9 @@ msgstr "Vymazať" #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/wireguard/wireguard_manage_ip.html:41 -#: templates/wireguard/wireguard_manage_peer.html:201 -#: templates/wireguard/wireguard_manage_server.html:117 -#: user_manager/forms.py:98 user_manager/forms.py:205 vpn_invite/forms.py:191 -#: vpn_invite/forms.py:325 +#: 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:21 msgid "Save" msgstr "Uložiť" @@ -323,11 +321,11 @@ msgstr "Neplatný cieľ" msgid "Enhanced filter is enabled. This command is not available." msgstr "Rozšírený filter je povolený. Tento príkaz nie je dostupný." -#: dns/forms.py:22 wireguard/forms.py:22 +#: dns/forms.py:22 wireguard/forms.py:24 msgid "Primary DNS" msgstr "Primárny DNS" -#: dns/forms.py:23 wireguard/forms.py:23 +#: dns/forms.py:23 wireguard/forms.py:25 msgid "Secondary DNS" msgstr "Sekundárny DNS" @@ -484,8 +482,8 @@ msgstr "Výstupné rozhranie" msgid "Source IP" msgstr "Zdrojová IP" -#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:18 -#: wireguard_peer/forms.py:30 +#: firewall/forms.py:116 firewall/forms.py:121 wireguard/forms.py:22 +#: wireguard_peer/forms.py:65 msgid "Netmask" msgstr "Sieťová maska" @@ -601,15 +599,15 @@ msgstr "WAN rozhranie" msgid "MASQUERADE" msgstr "MASKOVANIE" -#: firewall/tools.py:44 +#: firewall/tools.py:45 msgid "Masquerade traffic from VPN to WAN" msgstr "Maskovať komunikáciu z VPN do WAN" -#: firewall/tools.py:54 firewall/tools.py:58 firewall/tools.py:62 +#: firewall/tools.py:55 firewall/tools.py:59 firewall/tools.py:63 msgid "Reject traffic to private networks exiting on WAN interface" msgstr "Odmietnuť komunikáciu do privátnych sietí cez WAN rozhranie" -#: firewall/tools.py:66 +#: firewall/tools.py:67 msgid "Allow traffic from VPN to WAN" msgstr "Povoliť komunikáciu z VPN do WAN" @@ -708,39 +706,53 @@ msgid "Allow Peer Custom Routes" msgstr "Povoliť Vlastné Trasy Peera" #: routing_templates/forms.py:34 +#: templates/wireguard/wireguard_manage_server.html:69 wireguard/forms.py:26 msgid "Enforce Route Policy" msgstr "Vynútiť Smerovaciu Politiku" -#: routing_templates/forms.py:86 -msgid "" -"You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' is " -"checked." -msgstr "" -"Nemôžete povoliť 'Vynútiť Smerovaciu Politiku', ak je zaškrtnuté 'Povoliť " -"Vlastné Trasy Peera'." +#: routing_templates/forms.py:90 +msgid "Custom routes should be empty when Route Type is 'Default Route'." +msgstr "Vlastné trasy by mali byť prázdne, ak je Typ trasy 'Predvolená trasa'." -#: routing_templates/forms.py:89 +#: routing_templates/forms.py:95 +#, fuzzy +#| msgid "Custom routes should be empty when Route Type is 'Default Route'." +msgid "" +"Allowing peer custom routes is not applicable when Route Type is 'Default " +"Route'." +msgstr "Vlastné trasy by mali byť prázdne, ak je Typ trasy 'Predvolená trasa'." + +#: routing_templates/forms.py:102 msgid "At least one route must be provided when Route Type is 'Custom'." msgstr "Pri type trasy 'Vlastná' musí byť zadaná aspoň jedna trasa." -#: routing_templates/forms.py:101 -msgid "" -"The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." -msgstr "" -"Trasa 0.0.0.0/0 nie je povolená. Použite radšej typ 'Predvolená trasa'." - -#: routing_templates/forms.py:105 -#, python-format +#: routing_templates/forms.py:113 routing_templates/forms.py:123 +#, fuzzy, python-format +#| msgid "" +#| "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " +#| "192.168.1.0/24)." msgid "" "Invalid route format: '%(line)s'. Please use CIDR notation (e.g., " -"192.168.1.0/24)." +"10.0.0.0/24)." msgstr "" "Neplatný formát trasy: '%(line)s'. Použite prosím notáciu CIDR (napr. " "192.168.1.0/24)." -#: routing_templates/forms.py:112 -msgid "Custom routes should be empty when Route Type is 'Default Route'." -msgstr "Vlastné trasy by mali byť prázdne, ak je Typ trasy 'Predvolená trasa'." +#: routing_templates/forms.py:131 +#, fuzzy, python-format +#| msgid "" +#| "The route 0.0.0.0/0 is not allowed. Use the 'Default Route' type instead." +msgid "" +"The route %(route)s is not allowed. Use the 'Default Route' type instead." +msgstr "" +"Trasa 0.0.0.0/0 nie je povolená. Použite radšej typ 'Predvolená trasa'." + +#: routing_templates/forms.py:139 +#, python-format +msgid "" +"'%(line)s' is not a network address. Use the network address (e.g., " +"'%(net)s')." +msgstr "" #: routing_templates/models.py:13 msgid "Default Route (0.0.0.0/0)" @@ -898,7 +910,7 @@ msgid "Status" msgstr "Stav" #: templates/cluster/workers_list.html:11 -#: templates/wireguard/peer_list/peer_data.html:36 +#: templates/wireguard/peer_list/peer_data.html:43 #: templates/wireguard/peer_list/peer_preview_modal.html:28 msgid "Location" msgstr "Umiestnenie" @@ -926,6 +938,8 @@ msgstr "IP zámok povolený" #: templates/cluster/workers_list.html:47 #: templates/cluster/workers_list.html:54 +#: templates/wireguard/wireguard_manage_peer.html:56 +#: templates/wireguard/wireguard_manage_peer.html:65 msgid "Not set" msgstr "Nenastavené" @@ -1541,7 +1555,7 @@ msgstr "Nastavenia e-mailu" msgid "Invite Settings" msgstr "Nastavenia pozvánky" -#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:332 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:368 msgid "Apply Route Template" msgstr "Použiť smerovaciu šablónu" @@ -1577,44 +1591,48 @@ msgstr "Zrušiť prepojenie" msgid "No routing templates available for this interface." msgstr "Pre toto rozhranie nie sú k dispozícii žiadne smerovacie šablóny." -#: templates/wireguard/peer_list/peer_data.html:29 +#: templates/wireguard/peer_list/peer_data.html:30 +msgid "Route policy enforced" +msgstr "" + +#: templates/wireguard/peer_list/peer_data.html:36 #: templates/wireguard/peer_list/peer_preview_modal.html:16 msgid "Throughput" msgstr "Priepustnosť" -#: templates/wireguard/peer_list/peer_data.html:32 +#: templates/wireguard/peer_list/peer_data.html:39 #: templates/wireguard/peer_list/peer_preview_modal.html:20 msgid "Transfer" msgstr "Prenos" -#: templates/wireguard/peer_list/peer_data.html:37 +#: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 #: wireguard_peer/views.py:91 msgid "Primary Server" msgstr "Primárny server" -#: templates/wireguard/peer_list/peer_data.html:40 +#: templates/wireguard/peer_list/peer_data.html:47 #: templates/wireguard/peer_list/peer_preview_modal.html:24 msgid "Latest Handshake" msgstr "Posledný handshake" -#: templates/wireguard/peer_list/peer_data.html:54 +#: templates/wireguard/peer_list/peer_data.html:61 #: templates/wireguard/peer_list/peer_preview_modal.html:32 msgid "Endpoints" msgstr "Koncové body" -#: templates/wireguard/peer_list/peer_data.html:59 +#: templates/wireguard/peer_list/peer_data.html:66 #: templates/wireguard/peer_list/peer_preview_modal.html:36 msgid "Allowed IPs" msgstr "Povolené IP adresy" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:57 +#: templates/wireguard/wireguard_manage_peer.html:79 msgid "Peer Traffic" msgstr "Komunikácia peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:73 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "No traffic history, please wait a few minutes" msgstr "Žiadna história komunikácie, počkajte niekoľko minút" @@ -1675,7 +1693,7 @@ msgid "Hide extras" msgstr "Skryť dodatky" #: templates/wireguard/peer_list/script_peer_extras_toggle.html:10 -#: templates/wireguard/wireguard_peer_list.html:38 +#: templates/wireguard/wireguard_peer_list.html:39 msgid "Show extras" msgstr "Zobraziť dodatky" @@ -1772,13 +1790,13 @@ msgstr "" "súbor je zastaraný." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:29 wireguard/forms.py:14 -#: wireguard_peer/forms.py:11 +#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: wireguard_peer/forms.py:47 msgid "Public Key" msgstr "Verejný kľúč" #: templates/wireguard/server_detail.html:31 -#: templates/wireguard/server_list.html:20 wireguard/forms.py:16 +#: templates/wireguard/server_list.html:20 wireguard/forms.py:20 msgid "Listen Port" msgstr "Počúvací port" @@ -1799,7 +1817,7 @@ msgstr "Späť na zoznam" msgid "Traffic Graph" msgstr "Graf prevádzky" -#: templates/wireguard/server_list.html:7 wireguard/views.py:214 +#: templates/wireguard/server_list.html:7 wireguard/views.py:224 msgid "WireGuard Instances" msgstr "WireGuard inštancie" @@ -1816,9 +1834,9 @@ msgid "Enter Allowed IP" msgstr "Zadajte povolenú IP" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:103 -#: templates/wireguard/wireguard_manage_peer.html:186 -#: wireguard_peer/forms.py:31 +#: templates/wireguard/wireguard_manage_peer.html:131 +#: templates/wireguard/wireguard_manage_peer.html:220 +#: wireguard_peer/forms.py:66 msgid "Priority" msgstr "Priorita" @@ -1830,66 +1848,65 @@ msgstr "Prosím napíšte \\\"delete\\\" pre odstránenie tejto IP adresy." msgid "Peer Configuration" msgstr "Konfigurácia peer" -#: templates/wireguard/wireguard_manage_peer.html:17 -msgid "Enter Name" -msgstr "Zadajte názov" - -#: templates/wireguard/wireguard_manage_peer.html:23 wireguard_peer/forms.py:14 +#: templates/wireguard/wireguard_manage_peer.html:27 wireguard_peer/forms.py:36 msgid "Persistent Keepalive" msgstr "Trvalý keepalive" -#: templates/wireguard/wireguard_manage_peer.html:36 wireguard/forms.py:13 -#: wireguard_peer/forms.py:12 +#: templates/wireguard/wireguard_manage_peer.html:40 +msgid "Keys" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: wireguard_peer/forms.py:48 msgid "Private Key" msgstr "Súkromný kľúč" -#: templates/wireguard/wireguard_manage_peer.html:46 wireguard_peer/forms.py:13 +#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:49 msgid "Pre-Shared Key" msgstr "Vopred zdieľaný kľúč" -#: templates/wireguard/wireguard_manage_peer.html:85 +#: templates/wireguard/wireguard_manage_peer.html:110 msgid "AllowedIPs at Peer section of wg" msgstr "Povolené IP adresy v peer sekcii wg" -#: templates/wireguard/wireguard_manage_peer.html:86 +#: templates/wireguard/wireguard_manage_peer.html:111 msgid "Peer IP Addresses and networks" msgstr "IP adresy a siete peer" -#: templates/wireguard/wireguard_manage_peer.html:88 -#: templates/wireguard/wireguard_manage_peer.html:202 +#: templates/wireguard/wireguard_manage_peer.html:115 msgid "Add IP Address" msgstr "Pridať IP adresu" -#: templates/wireguard/wireguard_manage_peer.html:101 -#: templates/wireguard/wireguard_manage_peer.html:184 +#: templates/wireguard/wireguard_manage_peer.html:129 +#: templates/wireguard/wireguard_manage_peer.html:218 msgid "Main ip address" msgstr "Hlavná IP adresa" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:144 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs v konfiguračnom súbore klienta" -#: templates/wireguard/wireguard_manage_peer.html:116 +#: templates/wireguard/wireguard_manage_peer.html:145 msgid "Client Routing" msgstr "Smerovanie klienta" -#: templates/wireguard/wireguard_manage_peer.html:119 +#: templates/wireguard/wireguard_manage_peer.html:150 msgid "Apply template" msgstr "Použiť šablónu" -#: templates/wireguard/wireguard_manage_peer.html:120 +#: templates/wireguard/wireguard_manage_peer.html:154 msgid "Add Client route" msgstr "Pridať klientskú trasu" -#: templates/wireguard/wireguard_manage_peer.html:132 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Routing Template" msgstr "Smerovacia šablóna" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:180 msgid "Template Route" msgstr "Trasa šablóny" -#: templates/wireguard/wireguard_manage_peer.html:156 +#: templates/wireguard/wireguard_manage_peer.html:191 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." @@ -1903,7 +1920,7 @@ msgstr "" "musieť manuálne aktualizovať konfiguračný súbor klienta, aby odrážal tieto " "nastavenia." -#: templates/wireguard/wireguard_manage_peer.html:159 +#: templates/wireguard/wireguard_manage_peer.html:194 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 " @@ -1913,58 +1930,134 @@ msgstr "" "nastavenie smeruje všetku internetovú komunikáciu klienta cez VPN, čím " "zvyšuje súkromie a bezpečnosť všetkých pripojení." -#: templates/wireguard/wireguard_manage_peer.html:168 +#: templates/wireguard/wireguard_manage_peer.html:202 msgid "default route" msgstr "predvolená trasa" -#: templates/wireguard/wireguard_manage_peer.html:204 +#: templates/wireguard/wireguard_manage_peer.html:239 msgid "Delete Peer" msgstr "Vymazať peer" -#: templates/wireguard/wireguard_manage_peer.html:221 -msgid "Action Required!" -msgstr "Akcia vyžadovaná!" - -#: templates/wireguard/wireguard_manage_peer.html:222 -msgid "" -"When manually updating the \"Public Key\", \"Pre-Shared Key\", or \"Private " -"Key\", please ensure the configuration is correct." -msgstr "" -"Pri manuálnej aktualizácii \"Verejného kľúča\", \"Vopred zdieľaného kľúča\" " -"alebo \"Súkromného kľúča\", prosím uistite sa, že konfigurácia je správna." - -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:249 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Prosím napíšte \\\"delete\\\" pre odstránenie konfigurácie peer." -#: templates/wireguard/wireguard_manage_peer.html:290 -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 "" -"Súkromný kľúč je prázdny. Konfiguračný súbor a QR kód peer-a budú " -"vygenerované bez súkromného kľúča.\\n Musí byť vložený manuálne pri " -"importovaní.\\n\\n Chcete pokračovať?" +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Zobrazovací názov" -#: templates/wireguard/wireguard_manage_server.html:120 -msgid "Delete Configuration" +#: templates/wireguard/wireguard_manage_server.html:27 +msgid "" +"\n" +" Optional name used only for display in the " +"web interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:31 wireguard/forms.py:23 +msgid "Web Refresh Interval" +msgstr "Interval obnovenia webu" + +#: templates/wireguard/wireguard_manage_server.html:33 +msgid "" +"\n" +" Interval used to refresh WireGuard status " +"information in the web UI.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:37 +#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:19 +msgid "Public Address" +msgstr "Verejná adresa" + +#: 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 "" + +#: templates/wireguard/wireguard_manage_server.html:45 +#, fuzzy +#| msgid "Interface" +msgid "Interface Keys" +msgstr "Rozhranie" + +#: 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 "" + +#: templates/wireguard/wireguard_manage_server.html:54 +msgid "Internal Network" +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:56 +msgid "" +"\n" +" Internal IP address and netmask used by the " +"WireGuard interface.\n" +" " +msgstr "" + +#: templates/wireguard/wireguard_manage_server.html:60 +#, fuzzy +#| msgid "Delete Configuration" +msgid "DNS Configuration" msgstr "Vymazať konfiguráciu" -#: templates/wireguard/wireguard_peer_list.html:32 +#: 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 "" + +#: 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 "" + +#: templates/wireguard/wireguard_peer_list.html:33 msgid "Are you sure you want to create a new peer?" msgstr "Ste si istí, že chcete vytvoriť nový peer?" -#: templates/wireguard/wireguard_peer_list.html:33 -#: templates/wireguard/wireguard_peer_list.html:36 +#: templates/wireguard/wireguard_peer_list.html:34 +#: templates/wireguard/wireguard_peer_list.html:37 msgid "Create Peer" msgstr "Vytvoriť peer" -#: templates/wireguard/wireguard_peer_list.html:49 +#: templates/wireguard/wireguard_peer_list.html:50 msgid "No WireGuard Instances Found" msgstr "Nenašli sa žiadne WireGuard inštancie" -#: templates/wireguard/wireguard_peer_list.html:51 +#: templates/wireguard/wireguard_peer_list.html:52 msgid "" "There are no WireGuard instances configured. You can add a new instance by " "clicking the button below." @@ -1972,7 +2065,7 @@ msgstr "" "Nie sú nakonfigurované žiadne WireGuard inštancie. Môžete pridať novú " "inštanciu kliknutím na tlačidlo nižšie." -#: templates/wireguard/wireguard_peer_list.html:55 +#: templates/wireguard/wireguard_peer_list.html:56 msgid "Add WireGuard Instance" msgstr "Pridať WireGuard inštanciu" @@ -1992,10 +2085,6 @@ msgstr "Znovu načítať službu WireGuard" msgid "Instance Traffic" msgstr "Komunikácia inštancie" -#: templates/wireguard/wireguard_status.html:46 wireguard/forms.py:15 -msgid "Public Address" -msgstr "Verejná adresa" - #: user_manager/forms.py:15 msgid "Password Confirmation" msgstr "Potvrdenie hesla" @@ -2440,39 +2529,23 @@ msgstr "Nastavenia VPN pozvánky" msgid "Email Settings|Settings saved successfully." msgstr "Nastavenia e-mailu|Nastavenia boli úspešne uložené." -#: wireguard/forms.py:11 -msgid "Display Name" -msgstr "Zobrazovací názov" - -#: wireguard/forms.py:12 +#: wireguard/forms.py:16 msgid "Instance ID" msgstr "ID inštancie" -#: wireguard/forms.py:17 +#: wireguard/forms.py:21 msgid "Internal IP Address" msgstr "Interná IP adresa" -#: wireguard/forms.py:19 -msgid "Post Up" -msgstr "Post Up" - -#: wireguard/forms.py:20 -msgid "Post Down" -msgstr "Post Down" - -#: wireguard/forms.py:21 -msgid "Web Refresh Interval" -msgstr "Interval obnovenia webu" - -#: wireguard/forms.py:42 +#: wireguard/forms.py:117 msgid "Peer List Refresh Interval must be at least 5 seconds" msgstr "Interval obnovenia zoznamu peerov musí byť aspoň 5 sekúnd" -#: wireguard/forms.py:45 +#: wireguard/forms.py:120 msgid "Invalid hostname or IP Address" msgstr "Neplatný názov hostiteľa alebo IP adresa" -#: wireguard/forms.py:54 +#: wireguard/forms.py:130 msgid "The selected network range overlaps with another instance." msgstr "Vybraný rozsah siete sa prekrýva s inou inštanciou." @@ -2516,23 +2589,23 @@ msgstr "Vytvoriť novú WireGuard inštanciu" msgid "New WireGuard Instance" msgstr "Nová WireGuard inštancia" -#: wireguard_peer/forms.py:29 +#: wireguard_peer/forms.py:64 msgid "Allowed IP or Network" msgstr "Povolená IP alebo sieť" -#: wireguard_peer/forms.py:39 +#: wireguard_peer/forms.py:74 msgid "Please provide a valid IP address." msgstr "Prosím zadajte platnú IP adresu." -#: wireguard_peer/forms.py:48 +#: wireguard_peer/forms.py:83 msgid "A peer can have only one IP with priority zero." msgstr "Peer môže mať iba jednu IP adresu s prioritou nula." -#: wireguard_peer/forms.py:54 +#: wireguard_peer/forms.py:89 msgid "This IP is already in use by another peer." msgstr "Táto IP adresa je už používaná iným peerom." -#: wireguard_peer/forms.py:56 +#: wireguard_peer/forms.py:91 msgid "" "The IP address does not belong to the Peer's WireGuard instance network " "range. Please check the IP address or change the priority." @@ -2540,15 +2613,15 @@ msgstr "" "IP adresa nepatrí do rozsahu siete WireGuard inštancie peer. Prosím " "skontrolujte IP adresu alebo zmeňte prioritu." -#: wireguard_peer/forms.py:58 +#: wireguard_peer/forms.py:93 msgid "The netmask for priority 0 IP must be 32." msgstr "Sieťová maska pre IP s prioritou 0 musí byť 32." -#: wireguard_peer/forms.py:60 +#: wireguard_peer/forms.py:95 msgid "The IP address is the same as the Peer's WireGuard instance address." msgstr "IP adresa je rovnaká ako adresa WireGuard inštancie peer." -#: wireguard_peer/forms.py:63 +#: wireguard_peer/forms.py:98 msgid "" "The IP address belongs to the Peer's WireGuard instance network range. " "Please check the IP address or change use priority 0 instead." @@ -2556,15 +2629,15 @@ msgstr "" "IP adresa patrí do rozsahu siete WireGuard inštancie peer. Prosím " "skontrolujte IP adresu alebo namiesto toho použite prioritu 0." -#: wireguard_peer/forms.py:66 +#: wireguard_peer/forms.py:101 msgid "The peer's routing template does not allow custom routes." msgstr "Smerovacia šablóna peera nepovoľuje vlastné trasy." -#: wireguard_peer/forms.py:68 +#: wireguard_peer/forms.py:103 msgid "Priority must be greater than or equal to 1" msgstr "Priorita musí byť väčšia alebo rovná 1" -#: wireguard_peer/forms.py:70 +#: wireguard_peer/forms.py:105 msgid "Invalid config file" msgstr "Neplatný konfiguračný súbor" @@ -2572,44 +2645,66 @@ msgstr "Neplatný konfiguračný súbor" msgid "WireGuard Peer List" msgstr "Zoznam WireGuard peerov" -#: wireguard_peer/views.py:161 -msgid "Create a new Peer for instance wg" -msgstr "Vytvoriť nový peer pre inštanciu wg" - -#: wireguard_peer/views.py:180 +#: wireguard_peer/views.py:176 msgid "Peer created|Peer created successfully." msgstr "Peer vytvorený|Peer bol úspešne vytvorený." -#: wireguard_peer/views.py:185 +#: wireguard_peer/views.py:181 msgid "Error creating peer|No available IP address found for peer creation." msgstr "" "Chyba pri vytváraní peer|Nebola nájdená dostupná IP adresa pre vytvorenie " "peer." -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:204 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer vymazaný|Peer bol úspešne vymazaný." -#: wireguard_peer/views.py:201 +#: wireguard_peer/views.py:207 msgid "" "Error deleting peer|Invalid confirmation message. Type \"delete\" to confirm." msgstr "" "Chyba pri vymazávaní peer|Neplatná potvrdzovacia správa. Napíšte \"delete\" " "pre potvrdenie." -#: wireguard_peer/views.py:203 -msgid "Update Peer: " -msgstr "Aktualizovať peer: " +#: wireguard_peer/views.py:209 +#, fuzzy +#| msgid "Peer Configuration" +msgid "Peer Configuration: " +msgstr "Konfigurácia peer" -#: wireguard_peer/views.py:214 +#: wireguard_peer/views.py:247 msgid "Peer updated|Peer updated successfully." msgstr "Peer aktualizovaný|Peer bol úspešne aktualizovaný." +#: wireguard_peer/views.py:250 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Peer" +msgstr "Upraviť používateľa" + #: wireguard_peer/views.py:252 +#, fuzzy +#| msgid "Enter Name" +msgid "Edit Peer Name" +msgstr "Zadajte názov" + +#: wireguard_peer/views.py:254 +#, fuzzy +#| msgid "Persistent Keepalive" +msgid "Edit Keepalive" +msgstr "Trvalý keepalive" + +#: wireguard_peer/views.py:256 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Keys" +msgstr "Upraviť používateľa" + +#: wireguard_peer/views.py:288 msgid "IP address deleted|IP address deleted successfully." msgstr "IP adresa vymazaná|IP adresa bola úspešne vymazaná." -#: wireguard_peer/views.py:257 +#: wireguard_peer/views.py:293 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2617,27 +2712,27 @@ msgstr "" "Chyba pri vymazávaní IP adresy|Neplatná potvrdzovacia správa. Napíšte " "\"delete\" pre potvrdenie." -#: wireguard_peer/views.py:262 +#: wireguard_peer/views.py:298 msgid "Manage client route" msgstr "Spravovať klientskú trasu" -#: wireguard_peer/views.py:264 +#: wireguard_peer/views.py:300 msgid "Manage IP address or Network" msgstr "Spravovať IP adresu alebo sieť" -#: wireguard_peer/views.py:277 +#: wireguard_peer/views.py:313 msgid "IP address updated|IP address updated successfully." msgstr "IP adresa aktualizovaná|IP adresa bola úspešne aktualizovaná." -#: wireguard_peer/views.py:279 +#: wireguard_peer/views.py:315 msgid "IP address added|IP address added successfully." msgstr "IP adresa pridaná|IP adresa bola úspešne pridaná." -#: wireguard_peer/views.py:311 +#: wireguard_peer/views.py:347 msgid "Route template unlinked successfully." msgstr "Prepojenie so smerovacou šablónou bolo úspešne zrušené." -#: wireguard_peer/views.py:321 +#: wireguard_peer/views.py:357 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -2645,7 +2740,7 @@ msgstr "" "Nemožno použiť šablónu: Táto šablóna nepovoľuje vlastné trasy, ale peer má " "definované vlastné klientske trasy." -#: wireguard_peer/views.py:328 +#: wireguard_peer/views.py:364 msgid "Route template applied successfully." msgstr "Smerovacia šablóna bola úspešne použitá." @@ -2706,6 +2801,45 @@ msgstr "" "Neboli nájdené rozhrania|Neboli nájdené žiadne WireGuard rozhrania na " "spracovanie." +#~ msgid "" +#~ "You cannot enable 'Enforce Route Policy' when 'Allow Peer Custom Routes' " +#~ "is checked." +#~ msgstr "" +#~ "Nemôžete povoliť 'Vynútiť Smerovaciu Politiku', ak je zaškrtnuté 'Povoliť " +#~ "Vlastné Trasy Peera'." + +#~ msgid "Action Required!" +#~ msgstr "Akcia vyžadovaná!" + +#~ msgid "" +#~ "When manually updating the \"Public Key\", \"Pre-Shared Key\", or " +#~ "\"Private Key\", please ensure the configuration is correct." +#~ msgstr "" +#~ "Pri manuálnej aktualizácii \"Verejného kľúča\", \"Vopred zdieľaného " +#~ "kľúča\" alebo \"Súkromného kľúča\", prosím uistite sa, že konfigurácia je " +#~ "správna." + +#~ 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 "" +#~ "Súkromný kľúč je prázdny. Konfiguračný súbor a QR kód peer-a budú " +#~ "vygenerované bez súkromného kľúča.\\n Musí byť vložený manuálne pri " +#~ "importovaní.\\n\\n Chcete pokračovať?" + +#~ msgid "Post Up" +#~ msgstr "Post Up" + +#~ msgid "Post Down" +#~ msgstr "Post Down" + +#~ msgid "Create a new Peer for instance wg" +#~ msgstr "Vytvoriť nový peer pre inštanciu wg" + +#~ msgid "Update Peer: " +#~ msgstr "Aktualizovať peer: " + #~ msgid "Warning:" #~ msgstr "Upozornenie:"