diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 0b9b203..2671b0a 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-02-03 14:49-0300\n" +"POT-Creation-Date: 2026-02-09 13:51-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -73,7 +73,8 @@ msgstr "Token" #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 user_manager/forms.py:49 #: user_manager/forms.py:180 vpn_invite/forms.py:192 vpn_invite/forms.py:326 -#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:157 +#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:156 +#: wireguard_peer/forms.py:210 msgid "Back" msgstr "Zurück" @@ -81,7 +82,7 @@ msgstr "Zurück" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/scheduler/scheduleprofile_form.html:112 +#: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 #: templates/wireguard/wireguard_manage_ip.html:43 user_manager/forms.py:48 @@ -90,14 +91,15 @@ msgid "Delete" msgstr "Löschen" #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:83 -#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:61 +#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/scheduler/scheduleprofile_form.html:134 +#: templates/scheduler/scheduleprofile_form.html:200 #: templates/wireguard/wireguard_manage_ip.html:41 user_manager/forms.py:98 #: user_manager/forms.py:205 vpn_invite/forms.py:191 vpn_invite/forms.py:325 #: wireguard/forms.py:100 wireguard_peer/forms.py:26 +#: wireguard_peer/forms.py:205 msgid "Save" msgstr "Speichern" @@ -167,7 +169,7 @@ msgstr "Ein Worker-Update ist erforderlich." msgid "Access Denied" msgstr "Zugriff verweigert" -#: cluster/views.py:21 templates/template_parts/base_sidebar.html:97 +#: cluster/views.py:21 templates/template_parts/base_sidebar.html:107 msgid "Cluster" msgstr "Cluster" @@ -288,47 +290,67 @@ msgstr "" "Kombination.

\n" " " -#: console/views.py:25 console/views.py:57 user_manager/forms.py:16 +#: console/views.py:27 console/views.py:67 user_manager/forms.py:16 msgid "Console" msgstr "Konsole" -#: console/views.py:27 +#: console/views.py:29 msgid "iptables list" msgstr "iptables‑Regeln" -#: console/views.py:33 +#: console/views.py:35 msgid "running processes" msgstr "Laufende Prozesse" -#: console/views.py:36 +#: console/views.py:38 msgid "WireGuard show" msgstr "WireGuard‑Status" -#: console/views.py:39 -msgid "Memory usage" -msgstr "Speicherauslastung" - -#: console/views.py:42 -msgid "Routing table" -msgstr "Routing‑Tabelle" - -#: console/views.py:54 -msgid "DNS container test script" -msgstr "DNS‑Container‑Testskript" - -#: console/views.py:57 -msgid "Invalid command" -msgstr "Ungültiger Befehl" - -#: console/views.py:64 -msgid "Invalid target" -msgstr "Ungültiges Ziel" - -#: console/views.py:69 +#: console/views.py:40 msgid "Enhanced filter is enabled. This command is not available." msgstr "" "Der erweiterte Filter ist aktiviert. Dieser Befehl ist nicht verfügbar." +#: console/views.py:46 +msgid "Memory usage" +msgstr "Speicherauslastung" + +#: console/views.py:49 +msgid "Routing table" +msgstr "Routing‑Tabelle" + +#: console/views.py:61 +msgid "DNS container test script" +msgstr "DNS‑Container‑Testskript" + +#: console/views.py:64 +#, fuzzy +#| msgid "WireGuard Status" +msgid "Flush Wireguard status cache" +msgstr "WireGuard‑Status" + +#: console/views.py:67 +msgid "Invalid command" +msgstr "Ungültiger Befehl" + +#: console/views.py:78 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache for worker: " +msgstr "" +"Der Cluster-Modus erfordert die Aktivierung des WireGuard-Status-Caches." + +#: console/views.py:83 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache entries: " +msgstr "" +"Der Cluster-Modus erfordert die Aktivierung des WireGuard-Status-Caches." + +#: console/views.py:87 +msgid "Invalid target" +msgstr "Ungültiges Ziel" + #: dns/forms.py:22 wireguard/forms.py:24 msgid "Primary DNS" msgstr "Primärer DNS" @@ -784,7 +806,7 @@ msgstr "Routen von allen Peers" msgid "One route per line in CIDR notation." msgstr "Eine Route pro Zeile in CIDR-Notation." -#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:79 +#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:42 msgid "Routing Templates" msgstr "Routing-Vorlagen" @@ -888,100 +910,126 @@ msgstr "" "Aktivierung dieser Option eine große Anzahl von Firewall-Regeln erzeugen.p>\n" " " -#: scheduler/forms.py:14 +#: scheduler/forms.py:17 msgid "Profile Name" msgstr "Profilname" -#: scheduler/forms.py:38 templates/scheduler/scheduleprofile_form.html:92 +#: scheduler/forms.py:74 templates/scheduler/scheduleprofile_form.html:107 msgid "Start Day" msgstr "Starttag" -#: scheduler/forms.py:39 templates/scheduler/scheduleprofile_form.html:93 +#: scheduler/forms.py:75 templates/scheduler/scheduleprofile_form.html:108 msgid "Start Time" msgstr "Startzeit" -#: scheduler/forms.py:40 templates/scheduler/scheduleprofile_form.html:94 +#: scheduler/forms.py:76 templates/scheduler/scheduleprofile_form.html:109 msgid "End Day" msgstr "Endtag" -#: scheduler/forms.py:41 templates/scheduler/scheduleprofile_form.html:95 +#: scheduler/forms.py:77 templates/scheduler/scheduleprofile_form.html:110 msgid "End Time" msgstr "Endzeit" -#: scheduler/models.py:9 +#: scheduler/forms.py:122 +msgid "Unable to validate overlaps: schedule profile is missing." +msgstr "" + +#: scheduler/forms.py:129 scheduler/forms.py:132 +#, fuzzy +#| msgid "" +#| "The difference between suspend and unsuspend times must be at least 5 " +#| "minutes." +msgid "The minimum duration between start and end must be at least 10 minutes." +msgstr "" +"Die Differenz zwischen Sperr- und Reaktivierungszeit muss mindestens 5 " +"Minuten betragen." + +#: scheduler/forms.py:150 +#, python-format +msgid "This time slot overlaps with an existing slot (%(start)s → %(end)s)." +msgstr "" + +#: scheduler/forms.py:160 +#, fuzzy +#| msgid "Scheduled suspension time must be at least 10 minutes in the future." +msgid "There must be at least 10 minutes between time slots." +msgstr "" +"Die geplante Sperrzeit muss mindestens 10 Minuten in der Zukunft liegen." + +#: scheduler/models.py:11 msgid "Monday" msgstr "Montag" -#: scheduler/models.py:10 +#: scheduler/models.py:12 msgid "Tuesday" msgstr "Dienstag" -#: scheduler/models.py:11 +#: scheduler/models.py:13 msgid "Wednesday" msgstr "Mittwoch" -#: scheduler/models.py:12 +#: scheduler/models.py:14 msgid "Thursday" msgstr "Donnerstag" -#: scheduler/models.py:13 +#: scheduler/models.py:15 msgid "Friday" msgstr "Freitag" -#: scheduler/models.py:14 +#: scheduler/models.py:16 msgid "Saturday" msgstr "Samstag" -#: scheduler/models.py:15 +#: scheduler/models.py:17 msgid "Sunday" msgstr "Sonntag" -#: scheduler/views.py:26 +#: scheduler/views.py:27 msgid "Edit Schedule Profile" msgstr "Zeitplanprofil bearbeiten" -#: scheduler/views.py:30 +#: scheduler/views.py:31 msgid "Create Schedule Profile" msgstr "Zeitplanprofil erstellen" -#: scheduler/views.py:37 +#: scheduler/views.py:44 msgid "Schedule Profile saved successfully." msgstr "Zeitplanprofil erfolgreich gespeichert." -#: scheduler/views.py:58 +#: scheduler/views.py:68 msgid "Schedule Profile deleted successfully." msgstr "Zeitplanprofil erfolgreich gelöscht." -#: scheduler/views.py:63 +#: scheduler/views.py:73 msgid "Delete Schedule Profile" msgstr "Zeitplanprofil löschen" -#: scheduler/views.py:65 +#: scheduler/views.py:75 #, python-format msgid "Are you sure you want to delete the profile \"%(name)s\"?" msgstr "Sind Sie sicher, dass Sie das Profil \"%(name)s\" löschen möchten?" -#: scheduler/views.py:78 +#: scheduler/views.py:88 msgid "Edit Time Interval" msgstr "Zeitintervall bearbeiten" -#: scheduler/views.py:82 +#: scheduler/views.py:92 msgid "Add Time Interval" msgstr "Zeitintervall hinzufügen" -#: scheduler/views.py:92 +#: scheduler/views.py:102 msgid "Time Interval saved successfully." msgstr "Zeitintervall erfolgreich gespeichert." -#: scheduler/views.py:115 +#: scheduler/views.py:125 msgid "Time Interval deleted successfully." msgstr "Zeitintervall erfolgreich gelöscht." -#: scheduler/views.py:120 +#: scheduler/views.py:130 msgid "Delete Time Interval" msgstr "Zeitintervall löschen" -#: scheduler/views.py:122 +#: scheduler/views.py:132 msgid "Are you sure you want to delete this time interval?" msgstr "Sind Sie sicher, dass Sie dieses Zeitintervall löschen möchten?" @@ -1019,6 +1067,7 @@ msgid "Login again" msgstr "Erneut anmelden" #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 +#: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 #: vpn_invite/forms.py:79 vpn_invite/forms.py:80 vpn_invite/forms.py:81 #: vpn_invite/forms.py:82 @@ -1055,8 +1104,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 +#: templates/wireguard/wireguard_manage_peer.html:112 +#: templates/wireguard/wireguard_manage_peer.html:121 msgid "Not set" msgstr "Nicht gesetzt" @@ -1071,7 +1120,7 @@ msgstr "Zuletzt vor mehr als 10 Minuten gesehen oder noch nie gesehen." #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 #: templates/routing_templates/list.html:29 -#: templates/scheduler/scheduleprofile_form.html:108 +#: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 #: templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 @@ -1163,7 +1212,7 @@ msgstr "Ich verstehe" msgid "Clear" msgstr "Leeren" -#: templates/console/console.html:27 +#: templates/console/console.html:28 msgid "Destination Hostname or IP Address" msgstr "Ziel‑Hostname oder IP‑Adresse" @@ -1450,6 +1499,7 @@ msgstr "Zieltyp" #: templates/firewall/manage_redirect_rule.html:42 #: templates/firewall/manage_redirect_rule.html:48 +#: templates/scheduler/scheduleprofile_form.html:159 #: templates/vpn_invite/invite_settings.html:17 user_manager/forms.py:178 msgid "Peer" msgstr "Peer" @@ -1550,7 +1600,7 @@ msgid "Confirm Delete" msgstr "Löschen bestätigen" #: templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:137 +#: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Abbrechen" @@ -1568,31 +1618,87 @@ msgstr "Zeitplan-Visualisierung" #: templates/scheduler/scheduleprofile_form.html:70 #: templates/wireguard/apply_route_template.html:44 +#: templates/wireguard/wireguard_manage_peer.html:36 msgid "Active" msgstr "Aktiv" #: templates/scheduler/scheduleprofile_form.html:71 +#: templates/scheduler/scheduleprofile_form.html:82 msgid "Inactive" msgstr "Inaktiv" -#: templates/scheduler/scheduleprofile_form.html:82 +#: templates/scheduler/scheduleprofile_form.html:78 +#, fuzzy +#| msgid "Current Active Template:" +msgid "Current time" +msgstr "Aktuell aktive Vorlage:" + +#: templates/scheduler/scheduleprofile_form.html:79 +msgid "Becomes active at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:80 +msgid "Becomes inactive at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:97 msgid "Time Intervals" msgstr "Zeitintervalle" -#: templates/scheduler/scheduleprofile_form.html:85 +#: templates/scheduler/scheduleprofile_form.html:100 msgid "Add Interval" msgstr "Intervall hinzufügen" -#: templates/scheduler/scheduleprofile_form.html:96 +#: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Aktionen" -#: templates/scheduler/scheduleprofile_form.html:120 +#: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Keine Zeitintervalle gefunden." +#: templates/scheduler/scheduleprofile_form.html:152 +msgid "Linked Peers (Debug)" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:160 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by Schedule" +msgstr "Deaktivierte Peers" + +#: templates/scheduler/scheduleprofile_form.html:161 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next Enable" +msgstr "Neustart aktiviert" + +#: templates/scheduler/scheduleprofile_form.html:162 +#, fuzzy +#| msgid "Disabled" +msgid "Next Disable" +msgstr "Deaktiviert" + +#: templates/scheduler/scheduleprofile_form.html:175 +msgid "Yes" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:177 +msgid "No" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:185 +msgid "No peers linked to this profile." +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:207 +#, fuzzy +#| msgid "Show extras" +msgid "Show Peers" +msgstr "Extras anzeigen" + #: templates/scheduler/scheduleprofile_list.html:7 msgid "Schedule Profiles" msgstr "Zeitplanprofile" @@ -1641,20 +1747,20 @@ msgstr "Aktualisieren und Dienst neu starten" msgid "Update and reload service" msgstr "Aktualisieren und Dienst neu laden" -#: templates/template_parts/base_sidebar.html:59 user_manager/views.py:74 +#: templates/template_parts/base_sidebar.html:32 +msgid "Scheduler" +msgstr "Zeitplaner" + +#: templates/template_parts/base_sidebar.html:79 user_manager/views.py:74 msgid "User Manager" msgstr "Benutzerverwaltung" -#: templates/template_parts/base_sidebar.html:88 +#: templates/template_parts/base_sidebar.html:98 #: templates/wireguard/peer_list/peer_preview_modal.html:133 #: vpn_invite/views.py:37 msgid "VPN Invite" msgstr "VPN‑Einladung" -#: templates/template_parts/base_sidebar.html:107 -msgid "Scheduler" -msgstr "Zeitplaner" - #: templates/user_manager/list.html:9 user_manager/forms.py:20 msgid "User Level" msgstr "Benutzerstufe" @@ -1732,7 +1838,7 @@ msgstr "E‑Mail‑Einstellungen" msgid "Invite Settings" msgstr "Einladungs‑Einstellungen" -#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:390 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:400 msgid "Apply Route Template" msgstr "Routen-Vorlage anwenden" @@ -1777,7 +1883,7 @@ msgstr "Übertragen" #: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 -#: wireguard_peer/views.py:112 +#: wireguard_peer/views.py:115 msgid "Primary Server" msgstr "Primärer Server" @@ -1797,12 +1903,12 @@ msgid "Allowed IPs" msgstr "Erlaubte IPs" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:79 +#: templates/wireguard/wireguard_manage_peer.html:135 msgid "Peer Traffic" msgstr "Peer‑Traffic" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:96 +#: templates/wireguard/wireguard_manage_peer.html:152 msgid "No traffic history, please wait a few minutes" msgstr "Keine Verkehrsdaten vorhanden, bitte einige Minuten warten" @@ -1961,7 +2067,7 @@ msgstr "" "Konfiguration ist veraltet." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: templates/wireguard/wireguard_manage_peer.html:104 wireguard/forms.py:18 #: wireguard_peer/forms.py:52 msgid "Public Key" msgstr "Public Key" @@ -2005,8 +2111,8 @@ msgid "Enter Allowed IP" msgstr "Erlaubte IP eingeben" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:131 -#: templates/wireguard/wireguard_manage_peer.html:220 +#: templates/wireguard/wireguard_manage_peer.html:187 +#: templates/wireguard/wireguard_manage_peer.html:276 #: wireguard_peer/forms.py:71 msgid "Priority" msgstr "Priorität" @@ -2019,65 +2125,122 @@ msgstr "Geben Sie \\\"delete\\\" ein, um diese IP‑Adresse zu löschen." msgid "Peer Configuration" msgstr "Peer‑Konfiguration" -#: templates/wireguard/wireguard_manage_peer.html:27 wireguard_peer/forms.py:41 +#: templates/wireguard/wireguard_manage_peer.html:27 +#, fuzzy +#| msgid "Packet State" +msgid "Peer State" +msgstr "Paket‑Zustand" + +#: templates/wireguard/wireguard_manage_peer.html:31 +#, fuzzy +#| msgid "Suspend" +msgid "Suspended" +msgstr "Sperren" + +#: templates/wireguard/wireguard_manage_peer.html:40 +#, fuzzy +#| msgid "Schedule" +msgid "Scheduled suspend" +msgstr "Planen" + +#: templates/wireguard/wireguard_manage_peer.html:43 +msgid "Scheduled unsuspend" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:54 +#, fuzzy +#| msgid "Clear Schedule" +msgid "Peer Schedule" +msgstr "Zeitplan löschen" + +#: templates/wireguard/wireguard_manage_peer.html:60 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by schedule" +msgstr "Deaktivierte Peers" + +#: templates/wireguard/wireguard_manage_peer.html:62 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next enable" +msgstr "Neustart aktiviert" + +#: templates/wireguard/wireguard_manage_peer.html:65 +#, fuzzy +#| msgid "Enabled Peers" +msgid "Enabled by schedule" +msgstr "Aktivierte Peers" + +#: templates/wireguard/wireguard_manage_peer.html:67 +#, fuzzy +#| msgid "Disabled" +msgid "Next disable" +msgstr "Deaktiviert" + +#: templates/wireguard/wireguard_manage_peer.html:71 +msgid "No profile associated" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:83 wireguard_peer/forms.py:41 msgid "Persistent Keepalive" msgstr "Persistent Keepalive" -#: templates/wireguard/wireguard_manage_peer.html:40 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "Keys" msgstr "Schlüssel" -#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: templates/wireguard/wireguard_manage_peer.html:107 wireguard/forms.py:17 #: wireguard_peer/forms.py:53 msgid "Private Key" msgstr "Private Key" -#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:54 +#: templates/wireguard/wireguard_manage_peer.html:116 +#: wireguard_peer/forms.py:54 msgid "Pre-Shared Key" msgstr "Pre‑Shared Key" -#: templates/wireguard/wireguard_manage_peer.html:110 +#: templates/wireguard/wireguard_manage_peer.html:166 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs in der Peer‑Sektion von wg" -#: templates/wireguard/wireguard_manage_peer.html:111 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Peer IP Addresses and networks" msgstr "Peer‑IP‑Adressen und Netze" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "IP‑Adresse hinzufügen" -#: templates/wireguard/wireguard_manage_peer.html:129 -#: templates/wireguard/wireguard_manage_peer.html:218 +#: templates/wireguard/wireguard_manage_peer.html:185 +#: templates/wireguard/wireguard_manage_peer.html:274 msgid "Main ip address" msgstr "Haupt‑IP‑Adresse" -#: templates/wireguard/wireguard_manage_peer.html:144 +#: templates/wireguard/wireguard_manage_peer.html:200 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs in der Client-Konfigurationsdatei" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:201 msgid "Client Routing" msgstr "Client-Routing" -#: templates/wireguard/wireguard_manage_peer.html:150 +#: templates/wireguard/wireguard_manage_peer.html:206 msgid "Apply template" msgstr "Vorlage anwenden" -#: templates/wireguard/wireguard_manage_peer.html:154 +#: templates/wireguard/wireguard_manage_peer.html:210 msgid "Add Client route" msgstr "Client‑Route hinzufügen" -#: templates/wireguard/wireguard_manage_peer.html:167 +#: templates/wireguard/wireguard_manage_peer.html:223 msgid "Routing Template" msgstr "Routenvorlage" -#: templates/wireguard/wireguard_manage_peer.html:180 +#: templates/wireguard/wireguard_manage_peer.html:236 msgid "Template Route" msgstr "Vorlagenroute" -#: templates/wireguard/wireguard_manage_peer.html:191 +#: templates/wireguard/wireguard_manage_peer.html:247 msgid "" "The client is not configured to use the VPN as the default gateway." "\\n\\nOnly the specific networks listed below are routed through the VPN." @@ -2090,7 +2253,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:194 +#: templates/wireguard/wireguard_manage_peer.html:250 msgid "" "The client is configured to use the VPN as the default gateway. \\n\\nThis " "setting routes all client internet traffic through the VPN, enhancing " @@ -2100,27 +2263,27 @@ msgstr "" "gesamte Internet‑Verkehr des Clients durch das VPN geleitet, was " "Privatsphäre und Sicherheit erhöht." -#: templates/wireguard/wireguard_manage_peer.html:202 +#: templates/wireguard/wireguard_manage_peer.html:258 msgid "default route" msgstr "Standard‑Route" -#: templates/wireguard/wireguard_manage_peer.html:236 +#: templates/wireguard/wireguard_manage_peer.html:292 msgid "Peer List" msgstr "Peer-Liste" -#: templates/wireguard/wireguard_manage_peer.html:240 +#: templates/wireguard/wireguard_manage_peer.html:296 msgid "Reactivate" msgstr "Reaktivieren" -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:298 msgid "Suspend" msgstr "Sperren" -#: templates/wireguard/wireguard_manage_peer.html:246 +#: templates/wireguard/wireguard_manage_peer.html:302 msgid "Delete Peer" msgstr "Peer löschen" -#: templates/wireguard/wireguard_manage_peer.html:256 +#: templates/wireguard/wireguard_manage_peer.html:312 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Geben Sie \\\"delete\\\" ein, um die Peer‑Konfiguration zu entfernen." @@ -2779,8 +2942,10 @@ msgstr "Interne IP‑Adresse" #: wireguard/forms.py:117 msgid "Peer List Refresh Interval must be at least 5 seconds" -msgstr "Das Aktualisierungsintervall der Peer-Liste muss mindestens 5 Sekunden betragen" -"Aktualisierungsintervall der Peer‑Liste muss mindestens 5 Sekunden betragen" +msgstr "" +"Das Aktualisierungsintervall der Peer-Liste muss mindestens 5 Sekunden " +"betragenAktualisierungsintervall der Peer‑Liste muss mindestens 5 Sekunden " +"betragen" #: wireguard/forms.py:120 msgid "Invalid hostname or IP Address" @@ -2893,15 +3058,15 @@ msgstr "Jetzt reaktivieren" msgid "Suspend now" msgstr "Jetzt sperren" -#: wireguard_peer/forms.py:140 +#: wireguard_peer/forms.py:139 msgid "Schedule" msgstr "Planen" -#: wireguard_peer/forms.py:144 +#: wireguard_peer/forms.py:143 msgid "Clear Schedule" msgstr "Zeitplan löschen" -#: wireguard_peer/forms.py:182 +#: wireguard_peer/forms.py:181 msgid "" "The difference between suspend and unsuspend times must be at least 5 " "minutes." @@ -2909,73 +3074,73 @@ msgstr "" "Die Differenz zwischen Sperr- und Reaktivierungszeit muss mindestens 5 " "Minuten betragen." -#: wireguard_peer/forms.py:186 +#: wireguard_peer/forms.py:185 msgid "Scheduled suspension time must be at least 10 minutes in the future." msgstr "" "Die geplante Sperrzeit muss mindestens 10 Minuten in der Zukunft liegen." -#: wireguard_peer/forms.py:189 +#: wireguard_peer/forms.py:188 msgid "Scheduled unsuspension time must be at least 10 minutes in the future." msgstr "" "Die geplante Reaktivierungszeit muss mindestens 10 Minuten in der Zukunft " "liegen." -#: wireguard_peer/views.py:58 +#: wireguard_peer/views.py:61 msgid "Disabled WireGuard Peer List" msgstr "Liste deaktivierter WireGuard-Peers" -#: wireguard_peer/views.py:61 +#: wireguard_peer/views.py:64 msgid "WireGuard Peer List" msgstr "WireGuard‑Peer‑Liste" -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:201 msgid "Peer created|Peer created successfully." msgstr "Peer erstellt|Peer erfolgreich erstellt." -#: wireguard_peer/views.py:203 +#: wireguard_peer/views.py:206 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:226 +#: wireguard_peer/views.py:229 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer gelöscht|Peer erfolgreich gelöscht." -#: wireguard_peer/views.py:229 +#: wireguard_peer/views.py:232 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:231 +#: wireguard_peer/views.py:234 msgid "Peer Configuration: " msgstr "Peerkonfiguration: " -#: wireguard_peer/views.py:269 +#: wireguard_peer/views.py:279 msgid "Peer updated|Peer updated successfully." msgstr "Peer aktualisiert|Peer erfolgreich aktualisiert." -#: wireguard_peer/views.py:272 +#: wireguard_peer/views.py:282 msgid "Edit Peer" msgstr "Peer bearbeiten" -#: wireguard_peer/views.py:274 +#: wireguard_peer/views.py:284 msgid "Edit Peer Name" msgstr "Peernamen bearbeiten" -#: wireguard_peer/views.py:276 +#: wireguard_peer/views.py:286 msgid "Edit Keepalive" msgstr "Keepalive bearbeiten" -#: wireguard_peer/views.py:278 +#: wireguard_peer/views.py:288 msgid "Edit Keys" msgstr "Schlüssel bearbeiten" -#: wireguard_peer/views.py:310 +#: wireguard_peer/views.py:320 msgid "IP address deleted|IP address deleted successfully." msgstr "IP‑Adresse gelöscht|IP‑Adresse erfolgreich gelöscht." -#: wireguard_peer/views.py:315 +#: wireguard_peer/views.py:325 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2983,27 +3148,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:320 +#: wireguard_peer/views.py:330 msgid "Manage client route" msgstr "Client‑Route verwalten" -#: wireguard_peer/views.py:322 +#: wireguard_peer/views.py:332 msgid "Manage IP address or Network" msgstr "IP‑Adresse oder Netzwerk verwalten" -#: wireguard_peer/views.py:335 +#: wireguard_peer/views.py:345 msgid "IP address updated|IP address updated successfully." msgstr "IP‑Adresse aktualisiert|IP‑Adresse erfolgreich aktualisiert." -#: wireguard_peer/views.py:337 +#: wireguard_peer/views.py:347 msgid "IP address added|IP address added successfully." msgstr "IP‑Adresse hinzugefügt|IP‑Adresse erfolgreich hinzugefügt." -#: wireguard_peer/views.py:369 +#: wireguard_peer/views.py:379 msgid "Route template unlinked successfully." msgstr "Routen-Vorlage erfolgreich getrennt." -#: wireguard_peer/views.py:379 +#: wireguard_peer/views.py:389 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -3012,15 +3177,15 @@ msgstr "" "benutzerdefinierten Routen, aber der Peer hat benutzerdefinierte Client-" "Routen definiert." -#: wireguard_peer/views.py:386 +#: wireguard_peer/views.py:396 msgid "Route template applied successfully." msgstr "Routen-Vorlage erfolgreich angewendet." -#: wireguard_peer/views.py:419 +#: wireguard_peer/views.py:429 msgid "Peer suspension/unsuspension scheduled successfully." msgstr "Peer-Sperrung/Reaktivierung erfolgreich geplant." -#: wireguard_peer/views.py:423 +#: wireguard_peer/views.py:431 msgid "" "Error scheduling peer suspension/unsuspension. Please correct the errors " "below." @@ -3028,27 +3193,47 @@ msgstr "" "Fehler bei der Planung der Peer-Sperrung/Reaktivierung. Bitte korrigieren " "Sie die Fehler unten." -#: wireguard_peer/views.py:430 +#: wireguard_peer/views.py:438 msgid "Schedule cleared successfully." msgstr "Zeitplan erfolgreich gelöscht." -#: wireguard_peer/views.py:438 +#: wireguard_peer/views.py:452 msgid "Peer suspended successfully." msgstr "Peer erfolgreich gesperrt." -#: wireguard_peer/views.py:446 +#: wireguard_peer/views.py:454 +msgid "Peer suspended, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:464 msgid "Peer reactivated successfully." msgstr "Peer erfolgreich reaktiviert." -#: wireguard_peer/views.py:450 +#: wireguard_peer/views.py:466 +msgid "Peer reactivated, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:469 msgid "Invalid action." msgstr "Ungültige Aktion." -#: wireguard_peer/views.py:455 +#: wireguard_peer/views.py:474 msgid "Suspend / Reactivate Peer" msgstr "Peer sperren / reaktivieren" -#: wireguard_tools/views.py:181 +#: wireguard_peer/views.py:497 +#, fuzzy +#| msgid "Schedule Profile deleted successfully." +msgid "Peer scheduling profile updated successfully." +msgstr "Zeitplanprofil erfolgreich gelöscht." + +#: wireguard_peer/views.py:503 +#, fuzzy +#| msgid "Delete Schedule Profile" +msgid "Manage Peer Schedule Profile" +msgstr "Zeitplanprofil löschen" + +#: wireguard_tools/views.py:237 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -3056,7 +3241,7 @@ msgstr "" "Export erfolgreich!|WireGuard‑Konfigurationsdateien wurden nach /etc/" "wireguard/ exportiert." -#: wireguard_tools/views.py:183 +#: wireguard_tools/views.py:239 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -3064,19 +3249,19 @@ msgstr "" "Export erfolgreich!|WireGuard‑Konfigurationsdateien wurden nach /etc/" "wireguard/ exportiert. Vergessen Sie nicht, die Interfaces neu zu starten." -#: wireguard_tools/views.py:285 +#: wireguard_tools/views.py:341 msgid "Error reloading" msgstr "Fehler beim Neu laden" -#: wireguard_tools/views.py:297 +#: wireguard_tools/views.py:353 msgid "Error stopping" msgstr "Fehler beim Stoppen" -#: wireguard_tools/views.py:302 +#: wireguard_tools/views.py:358 msgid "Error starting" msgstr "Fehler beim Starten" -#: wireguard_tools/views.py:309 +#: wireguard_tools/views.py:365 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -3086,21 +3271,21 @@ msgstr "" "Sie, ob alle Peers wie erwartet funktionieren. Melden Sie eventuelle " "Probleme." -#: wireguard_tools/views.py:310 +#: wireguard_tools/views.py:366 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard neu geladen|Der WireGuard‑Dienst wurde neu geladen." -#: wireguard_tools/views.py:312 +#: wireguard_tools/views.py:368 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard neu gestartet|Der WireGuard‑Dienst wurde neu gestartet." -#: wireguard_tools/views.py:315 +#: wireguard_tools/views.py:371 msgid "Errors encountered|Error processing one or more interfaces." msgstr "" "Fehler festgestellt|Beim Verarbeiten einer oder mehrerer Schnittstellen ist " "ein Fehler aufgetreten." -#: wireguard_tools/views.py:318 +#: wireguard_tools/views.py:374 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "Keine Schnittstellen gefunden|Es wurden keine WireGuard‑Schnittstellen " diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 25cabad..11240da 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-02-03 14:49-0300\n" +"POT-Creation-Date: 2026-02-09 13:51-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -73,7 +73,8 @@ msgstr "Token" #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 user_manager/forms.py:49 #: user_manager/forms.py:180 vpn_invite/forms.py:192 vpn_invite/forms.py:326 -#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:157 +#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:156 +#: wireguard_peer/forms.py:210 msgid "Back" msgstr "Volver" @@ -81,7 +82,7 @@ msgstr "Volver" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/scheduler/scheduleprofile_form.html:112 +#: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 #: templates/wireguard/wireguard_manage_ip.html:43 user_manager/forms.py:48 @@ -90,14 +91,15 @@ msgid "Delete" msgstr "Eliminar" #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:83 -#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:61 +#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/scheduler/scheduleprofile_form.html:134 +#: templates/scheduler/scheduleprofile_form.html:200 #: templates/wireguard/wireguard_manage_ip.html:41 user_manager/forms.py:98 #: user_manager/forms.py:205 vpn_invite/forms.py:191 vpn_invite/forms.py:325 #: wireguard/forms.py:100 wireguard_peer/forms.py:26 +#: wireguard_peer/forms.py:205 msgid "Save" msgstr "Guardar" @@ -169,7 +171,7 @@ msgstr "Se requiere la actualización del worker." msgid "Access Denied" msgstr "Acceso denegado" -#: cluster/views.py:21 templates/template_parts/base_sidebar.html:97 +#: cluster/views.py:21 templates/template_parts/base_sidebar.html:107 msgid "Cluster" msgstr "Cluster" @@ -289,46 +291,68 @@ msgstr "" "por nombre, dirección del servidor, ubicación o una combinación.

\n" " " -#: console/views.py:25 console/views.py:57 user_manager/forms.py:16 +#: console/views.py:27 console/views.py:67 user_manager/forms.py:16 msgid "Console" msgstr "Consola" -#: console/views.py:27 +#: console/views.py:29 msgid "iptables list" msgstr "Lista de reglas de iptables" -#: console/views.py:33 +#: console/views.py:35 msgid "running processes" msgstr "Procesos en ejecución" -#: console/views.py:36 +#: console/views.py:38 msgid "WireGuard show" msgstr "Estado de WireGuard" -#: console/views.py:39 +#: console/views.py:40 +msgid "Enhanced filter is enabled. This command is not available." +msgstr "El filtro mejorado está habilitado. Este comando no está disponible." + +#: console/views.py:46 msgid "Memory usage" msgstr "Uso de memoria" -#: console/views.py:42 +#: console/views.py:49 msgid "Routing table" msgstr "Tabla de enrutamiento" -#: console/views.py:54 +#: console/views.py:61 msgid "DNS container test script" msgstr "Script de prueba del contenedor DNS" -#: console/views.py:57 +#: console/views.py:64 +#, fuzzy +#| msgid "WireGuard Status" +msgid "Flush Wireguard status cache" +msgstr "Estado de WireGuard" + +#: console/views.py:67 msgid "Invalid command" msgstr "Comando inválido" -#: console/views.py:64 +#: console/views.py:78 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache for worker: " +msgstr "" +"El modo de clúster requiere que el caché de estado de WireGuard esté " +"habilitado." + +#: console/views.py:83 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache entries: " +msgstr "" +"El modo de clúster requiere que el caché de estado de WireGuard esté " +"habilitado." + +#: console/views.py:87 msgid "Invalid target" msgstr "Destino inválido" -#: console/views.py:69 -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:24 msgid "Primary DNS" msgstr "DNS primario" @@ -780,7 +804,7 @@ msgstr "Rutas de Todos los Pares" msgid "One route per line in CIDR notation." msgstr "Una ruta por línea en notación CIDR." -#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:79 +#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:42 msgid "Routing Templates" msgstr "Plantillas de Enrutamiento" @@ -882,100 +906,126 @@ msgstr "" "opción puede generar un gran número de reglas de cortafuegos.

\n" " " -#: scheduler/forms.py:14 +#: scheduler/forms.py:17 msgid "Profile Name" msgstr "Nombre del Perfil" -#: scheduler/forms.py:38 templates/scheduler/scheduleprofile_form.html:92 +#: scheduler/forms.py:74 templates/scheduler/scheduleprofile_form.html:107 msgid "Start Day" msgstr "Día de Inicio" -#: scheduler/forms.py:39 templates/scheduler/scheduleprofile_form.html:93 +#: scheduler/forms.py:75 templates/scheduler/scheduleprofile_form.html:108 msgid "Start Time" msgstr "Hora de Inicio" -#: scheduler/forms.py:40 templates/scheduler/scheduleprofile_form.html:94 +#: scheduler/forms.py:76 templates/scheduler/scheduleprofile_form.html:109 msgid "End Day" msgstr "Día de Fin" -#: scheduler/forms.py:41 templates/scheduler/scheduleprofile_form.html:95 +#: scheduler/forms.py:77 templates/scheduler/scheduleprofile_form.html:110 msgid "End Time" msgstr "Hora de Fin" -#: scheduler/models.py:9 +#: scheduler/forms.py:122 +msgid "Unable to validate overlaps: schedule profile is missing." +msgstr "" + +#: scheduler/forms.py:129 scheduler/forms.py:132 +#, fuzzy +#| msgid "" +#| "The difference between suspend and unsuspend times must be at least 5 " +#| "minutes." +msgid "The minimum duration between start and end must be at least 10 minutes." +msgstr "" +"La diferencia entre el horario de suspensión y el de reactivación debe ser " +"de al menos 5 minutos." + +#: scheduler/forms.py:150 +#, python-format +msgid "This time slot overlaps with an existing slot (%(start)s → %(end)s)." +msgstr "" + +#: scheduler/forms.py:160 +#, fuzzy +#| msgid "Scheduled suspension time must be at least 10 minutes in the future." +msgid "There must be at least 10 minutes between time slots." +msgstr "" +"La programación de la suspensión debe ser al menos 10 minutos en el futuro." + +#: scheduler/models.py:11 msgid "Monday" msgstr "Lunes" -#: scheduler/models.py:10 +#: scheduler/models.py:12 msgid "Tuesday" msgstr "Martes" -#: scheduler/models.py:11 +#: scheduler/models.py:13 msgid "Wednesday" msgstr "Miércoles" -#: scheduler/models.py:12 +#: scheduler/models.py:14 msgid "Thursday" msgstr "Jueves" -#: scheduler/models.py:13 +#: scheduler/models.py:15 msgid "Friday" msgstr "Viernes" -#: scheduler/models.py:14 +#: scheduler/models.py:16 msgid "Saturday" msgstr "Sábado" -#: scheduler/models.py:15 +#: scheduler/models.py:17 msgid "Sunday" msgstr "Domingo" -#: scheduler/views.py:26 +#: scheduler/views.py:27 msgid "Edit Schedule Profile" msgstr "Editar Perfil de Programación" -#: scheduler/views.py:30 +#: scheduler/views.py:31 msgid "Create Schedule Profile" msgstr "Crear Perfil de Programación" -#: scheduler/views.py:37 +#: scheduler/views.py:44 msgid "Schedule Profile saved successfully." msgstr "Perfil de programación guardado con éxito." -#: scheduler/views.py:58 +#: scheduler/views.py:68 msgid "Schedule Profile deleted successfully." msgstr "Perfil de programación eliminado con éxito." -#: scheduler/views.py:63 +#: scheduler/views.py:73 msgid "Delete Schedule Profile" msgstr "Eliminar Perfil de Programación" -#: scheduler/views.py:65 +#: scheduler/views.py:75 #, python-format msgid "Are you sure you want to delete the profile \"%(name)s\"?" msgstr "¿Está seguro de que desea eliminar el perfil \"%(name)s\"?" -#: scheduler/views.py:78 +#: scheduler/views.py:88 msgid "Edit Time Interval" msgstr "Editar Intervalo de Tiempo" -#: scheduler/views.py:82 +#: scheduler/views.py:92 msgid "Add Time Interval" msgstr "Añadir Intervalo de Tiempo" -#: scheduler/views.py:92 +#: scheduler/views.py:102 msgid "Time Interval saved successfully." msgstr "Intervalo de tiempo guardado con éxito." -#: scheduler/views.py:115 +#: scheduler/views.py:125 msgid "Time Interval deleted successfully." msgstr "Intervalo de tiempo eliminado con éxito." -#: scheduler/views.py:120 +#: scheduler/views.py:130 msgid "Delete Time Interval" msgstr "Eliminar Intervalo de Tiempo" -#: scheduler/views.py:122 +#: scheduler/views.py:132 msgid "Are you sure you want to delete this time interval?" msgstr "¿Está seguro de que desea eliminar este intervalo de tiempo?" @@ -1014,6 +1064,7 @@ msgid "Login again" msgstr "Iniciar sesión de nuevo" #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 +#: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 #: vpn_invite/forms.py:79 vpn_invite/forms.py:80 vpn_invite/forms.py:81 #: vpn_invite/forms.py:82 @@ -1050,8 +1101,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 +#: templates/wireguard/wireguard_manage_peer.html:112 +#: templates/wireguard/wireguard_manage_peer.html:121 msgid "Not set" msgstr "No establecido" @@ -1066,7 +1117,7 @@ msgstr "Visto por última vez hace más de 10 minutos o nunca visto." #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 #: templates/routing_templates/list.html:29 -#: templates/scheduler/scheduleprofile_form.html:108 +#: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 #: templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 @@ -1159,7 +1210,7 @@ msgstr "Lo entiendo" msgid "Clear" msgstr "Limpiar" -#: templates/console/console.html:27 +#: templates/console/console.html:28 msgid "Destination Hostname or IP Address" msgstr "Nombre de host o IP de destino" @@ -1444,6 +1495,7 @@ msgstr "Tipo de destino" #: templates/firewall/manage_redirect_rule.html:42 #: templates/firewall/manage_redirect_rule.html:48 +#: templates/scheduler/scheduleprofile_form.html:159 #: templates/vpn_invite/invite_settings.html:17 user_manager/forms.py:178 msgid "Peer" msgstr "Peer" @@ -1540,7 +1592,7 @@ msgid "Confirm Delete" msgstr "Confirmar Eliminación" #: templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:137 +#: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Cancelar" @@ -1558,31 +1610,87 @@ msgstr "Visualización de Programación" #: templates/scheduler/scheduleprofile_form.html:70 #: templates/wireguard/apply_route_template.html:44 +#: templates/wireguard/wireguard_manage_peer.html:36 msgid "Active" msgstr "Activo" #: templates/scheduler/scheduleprofile_form.html:71 +#: templates/scheduler/scheduleprofile_form.html:82 msgid "Inactive" msgstr "Inactivo" -#: templates/scheduler/scheduleprofile_form.html:82 +#: templates/scheduler/scheduleprofile_form.html:78 +#, fuzzy +#| msgid "Current Active Template:" +msgid "Current time" +msgstr "Plantilla Activa Actual:" + +#: templates/scheduler/scheduleprofile_form.html:79 +msgid "Becomes active at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:80 +msgid "Becomes inactive at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:97 msgid "Time Intervals" msgstr "Intervalos de Tiempo" -#: templates/scheduler/scheduleprofile_form.html:85 +#: templates/scheduler/scheduleprofile_form.html:100 msgid "Add Interval" msgstr "Añadir Intervalo" -#: templates/scheduler/scheduleprofile_form.html:96 +#: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Acciones" -#: templates/scheduler/scheduleprofile_form.html:120 +#: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "No se encontraron intervalos de tiempo." +#: templates/scheduler/scheduleprofile_form.html:152 +msgid "Linked Peers (Debug)" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:160 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by Schedule" +msgstr "Peers deshabilitados" + +#: templates/scheduler/scheduleprofile_form.html:161 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next Enable" +msgstr "Reinicio habilitado" + +#: templates/scheduler/scheduleprofile_form.html:162 +#, fuzzy +#| msgid "Disabled" +msgid "Next Disable" +msgstr "Deshabilitado" + +#: templates/scheduler/scheduleprofile_form.html:175 +msgid "Yes" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:177 +msgid "No" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:185 +msgid "No peers linked to this profile." +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:207 +#, fuzzy +#| msgid "Show extras" +msgid "Show Peers" +msgstr "Mostrar extras" + #: templates/scheduler/scheduleprofile_list.html:7 msgid "Schedule Profiles" msgstr "Perfiles de Programación" @@ -1631,20 +1739,20 @@ msgstr "Actualizar y reiniciar servicio" msgid "Update and reload service" msgstr "Actualizar y recargar servicio" -#: templates/template_parts/base_sidebar.html:59 user_manager/views.py:74 +#: templates/template_parts/base_sidebar.html:32 +msgid "Scheduler" +msgstr "Programador" + +#: templates/template_parts/base_sidebar.html:79 user_manager/views.py:74 msgid "User Manager" msgstr "Gestión de usuarios" -#: templates/template_parts/base_sidebar.html:88 +#: templates/template_parts/base_sidebar.html:98 #: templates/wireguard/peer_list/peer_preview_modal.html:133 #: vpn_invite/views.py:37 msgid "VPN Invite" msgstr "Invitación VPN" -#: templates/template_parts/base_sidebar.html:107 -msgid "Scheduler" -msgstr "Programador" - #: templates/user_manager/list.html:9 user_manager/forms.py:20 msgid "User Level" msgstr "Nivel de acceso" @@ -1722,7 +1830,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:390 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:400 msgid "Apply Route Template" msgstr "Aplicar Plantilla de Enrutamiento" @@ -1766,7 +1874,7 @@ msgstr "Transferencia" #: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 -#: wireguard_peer/views.py:112 +#: wireguard_peer/views.py:115 msgid "Primary Server" msgstr "Servidor primario" @@ -1786,12 +1894,12 @@ msgid "Allowed IPs" msgstr "IPs permitidas" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:79 +#: templates/wireguard/wireguard_manage_peer.html:135 msgid "Peer Traffic" msgstr "Tráfico del peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:96 +#: templates/wireguard/wireguard_manage_peer.html:152 msgid "No traffic history, please wait a few minutes" msgstr "Sin historial de tráfico, espera unos minutos" @@ -1947,7 +2055,7 @@ msgstr "" "indicar un IP solapada o un archivo desactualizado." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: templates/wireguard/wireguard_manage_peer.html:104 wireguard/forms.py:18 #: wireguard_peer/forms.py:52 msgid "Public Key" msgstr "Clave pública" @@ -1991,8 +2099,8 @@ msgid "Enter Allowed IP" msgstr "Ingresar IP permitida" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:131 -#: templates/wireguard/wireguard_manage_peer.html:220 +#: templates/wireguard/wireguard_manage_peer.html:187 +#: templates/wireguard/wireguard_manage_peer.html:276 #: wireguard_peer/forms.py:71 msgid "Priority" msgstr "Prioridad" @@ -2005,65 +2113,122 @@ msgstr "Por favor escribe \\\"delete\\\" para eliminar esta IP." msgid "Peer Configuration" msgstr "Configuración de peer" -#: templates/wireguard/wireguard_manage_peer.html:27 wireguard_peer/forms.py:41 +#: templates/wireguard/wireguard_manage_peer.html:27 +#, fuzzy +#| msgid "Packet State" +msgid "Peer State" +msgstr "Estado del paquete" + +#: templates/wireguard/wireguard_manage_peer.html:31 +#, fuzzy +#| msgid "Suspend" +msgid "Suspended" +msgstr "Suspender" + +#: templates/wireguard/wireguard_manage_peer.html:40 +#, fuzzy +#| msgid "Schedule" +msgid "Scheduled suspend" +msgstr "Programar" + +#: templates/wireguard/wireguard_manage_peer.html:43 +msgid "Scheduled unsuspend" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:54 +#, fuzzy +#| msgid "Clear Schedule" +msgid "Peer Schedule" +msgstr "Limpiar programación" + +#: templates/wireguard/wireguard_manage_peer.html:60 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by schedule" +msgstr "Peers deshabilitados" + +#: templates/wireguard/wireguard_manage_peer.html:62 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next enable" +msgstr "Reinicio habilitado" + +#: templates/wireguard/wireguard_manage_peer.html:65 +#, fuzzy +#| msgid "Enabled Peers" +msgid "Enabled by schedule" +msgstr "Peers habilitados" + +#: templates/wireguard/wireguard_manage_peer.html:67 +#, fuzzy +#| msgid "Disabled" +msgid "Next disable" +msgstr "Deshabilitado" + +#: templates/wireguard/wireguard_manage_peer.html:71 +msgid "No profile associated" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:83 wireguard_peer/forms.py:41 msgid "Persistent Keepalive" msgstr "Keepalive persistente" -#: templates/wireguard/wireguard_manage_peer.html:40 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "Keys" msgstr "Claves" -#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: templates/wireguard/wireguard_manage_peer.html:107 wireguard/forms.py:17 #: wireguard_peer/forms.py:53 msgid "Private Key" msgstr "Clave privada" -#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:54 +#: templates/wireguard/wireguard_manage_peer.html:116 +#: wireguard_peer/forms.py:54 msgid "Pre-Shared Key" msgstr "Clave precompartida" -#: templates/wireguard/wireguard_manage_peer.html:110 +#: templates/wireguard/wireguard_manage_peer.html:166 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs en sección peer de wg" -#: templates/wireguard/wireguard_manage_peer.html:111 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Peer IP Addresses and networks" msgstr "IPs y redes del peer" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Añadir IP" -#: templates/wireguard/wireguard_manage_peer.html:129 -#: templates/wireguard/wireguard_manage_peer.html:218 +#: templates/wireguard/wireguard_manage_peer.html:185 +#: templates/wireguard/wireguard_manage_peer.html:274 msgid "Main ip address" msgstr "IP principal" -#: templates/wireguard/wireguard_manage_peer.html:144 +#: templates/wireguard/wireguard_manage_peer.html:200 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs en el archivo de configuración del cliente" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:201 msgid "Client Routing" msgstr "Enrutamiento del Cliente" -#: templates/wireguard/wireguard_manage_peer.html:150 +#: templates/wireguard/wireguard_manage_peer.html:206 msgid "Apply template" msgstr "Aplicar plantilla" -#: templates/wireguard/wireguard_manage_peer.html:154 +#: templates/wireguard/wireguard_manage_peer.html:210 msgid "Add Client route" msgstr "Añadir ruta cliente" -#: templates/wireguard/wireguard_manage_peer.html:167 +#: templates/wireguard/wireguard_manage_peer.html:223 msgid "Routing Template" msgstr "Plantilla de Enrutamiento" -#: templates/wireguard/wireguard_manage_peer.html:180 +#: templates/wireguard/wireguard_manage_peer.html:236 msgid "Template Route" msgstr "Ruta de la plantilla" -#: templates/wireguard/wireguard_manage_peer.html:191 +#: templates/wireguard/wireguard_manage_peer.html:247 msgid "" "The client is not configured to use the VPN as the default gateway." "\\n\\nOnly the specific networks listed below are routed through the VPN." @@ -2076,7 +2241,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:194 +#: templates/wireguard/wireguard_manage_peer.html:250 msgid "" "The client is configured to use the VPN as the default gateway. \\n\\nThis " "setting routes all client internet traffic through the VPN, enhancing " @@ -2086,27 +2251,27 @@ 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:202 +#: templates/wireguard/wireguard_manage_peer.html:258 msgid "default route" msgstr "ruta predeterminada" -#: templates/wireguard/wireguard_manage_peer.html:236 +#: templates/wireguard/wireguard_manage_peer.html:292 msgid "Peer List" msgstr "Lista de Peers" -#: templates/wireguard/wireguard_manage_peer.html:240 +#: templates/wireguard/wireguard_manage_peer.html:296 msgid "Reactivate" msgstr "Reactivar" -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:298 msgid "Suspend" msgstr "Suspender" -#: templates/wireguard/wireguard_manage_peer.html:246 +#: templates/wireguard/wireguard_manage_peer.html:302 msgid "Delete Peer" msgstr "Eliminar peer" -#: templates/wireguard/wireguard_manage_peer.html:256 +#: templates/wireguard/wireguard_manage_peer.html:312 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "" "Por favor escribe \\\"delete\\\" para eliminar la configuración del peer." @@ -2758,7 +2923,9 @@ msgstr "Dirección IP interna" #: wireguard/forms.py:117 msgid "Peer List Refresh Interval must be at least 5 seconds" -msgstr "El intervalo de actualización de la lista de peers debe ser de al menos 5 segundos" +msgstr "" +"El intervalo de actualización de la lista de peers debe ser de al menos 5 " +"segundos" #: wireguard/forms.py:120 msgid "Invalid hostname or IP Address" @@ -2867,15 +3034,15 @@ msgstr "Reactivar ahora" msgid "Suspend now" msgstr "Suspender ahora" -#: wireguard_peer/forms.py:140 +#: wireguard_peer/forms.py:139 msgid "Schedule" msgstr "Programar" -#: wireguard_peer/forms.py:144 +#: wireguard_peer/forms.py:143 msgid "Clear Schedule" msgstr "Limpiar programación" -#: wireguard_peer/forms.py:182 +#: wireguard_peer/forms.py:181 msgid "" "The difference between suspend and unsuspend times must be at least 5 " "minutes." @@ -2883,72 +3050,72 @@ msgstr "" "La diferencia entre el horario de suspensión y el de reactivación debe ser " "de al menos 5 minutos." -#: wireguard_peer/forms.py:186 +#: wireguard_peer/forms.py:185 msgid "Scheduled suspension time must be at least 10 minutes in the future." msgstr "" "La programación de la suspensión debe ser al menos 10 minutos en el futuro." -#: wireguard_peer/forms.py:189 +#: wireguard_peer/forms.py:188 msgid "Scheduled unsuspension time must be at least 10 minutes in the future." msgstr "" "La programación de la reactivación debe ser al menos 10 minutos en el futuro." -#: wireguard_peer/views.py:58 +#: wireguard_peer/views.py:61 msgid "Disabled WireGuard Peer List" msgstr "Lista de peers de WireGuard desactivados" -#: wireguard_peer/views.py:61 +#: wireguard_peer/views.py:64 msgid "WireGuard Peer List" msgstr "Lista de peers WireGuard" -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:201 msgid "Peer created|Peer created successfully." msgstr "Peer creado|Peer creado correctamente." -#: wireguard_peer/views.py:203 +#: wireguard_peer/views.py:206 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:226 +#: wireguard_peer/views.py:229 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer eliminado|Peer eliminado correctamente." -#: wireguard_peer/views.py:229 +#: wireguard_peer/views.py:232 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:231 +#: wireguard_peer/views.py:234 msgid "Peer Configuration: " msgstr "Configuración de peer: " -#: wireguard_peer/views.py:269 +#: wireguard_peer/views.py:279 msgid "Peer updated|Peer updated successfully." msgstr "Peer actualizado|Peer actualizado correctamente." -#: wireguard_peer/views.py:272 +#: wireguard_peer/views.py:282 msgid "Edit Peer" msgstr "Editar Usuario" -#: wireguard_peer/views.py:274 +#: wireguard_peer/views.py:284 msgid "Edit Peer Name" msgstr "Editar Nombre de Peer" -#: wireguard_peer/views.py:276 +#: wireguard_peer/views.py:286 msgid "Edit Keepalive" msgstr "Editar Keepalive" -#: wireguard_peer/views.py:278 +#: wireguard_peer/views.py:288 msgid "Edit Keys" msgstr "Editar Chaves" -#: wireguard_peer/views.py:310 +#: wireguard_peer/views.py:320 msgid "IP address deleted|IP address deleted successfully." msgstr "IP eliminada|IP eliminada correctamente." -#: wireguard_peer/views.py:315 +#: wireguard_peer/views.py:325 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2956,27 +3123,27 @@ msgstr "" "Error al eliminar IP|Confirmación inválida. Escribe \"delete\" para " "confirmar." -#: wireguard_peer/views.py:320 +#: wireguard_peer/views.py:330 msgid "Manage client route" msgstr "Gestionar ruta cliente" -#: wireguard_peer/views.py:322 +#: wireguard_peer/views.py:332 msgid "Manage IP address or Network" msgstr "Gestionar IP o red" -#: wireguard_peer/views.py:335 +#: wireguard_peer/views.py:345 msgid "IP address updated|IP address updated successfully." msgstr "IP actualizada|IP actualizada correctamente." -#: wireguard_peer/views.py:337 +#: wireguard_peer/views.py:347 msgid "IP address added|IP address added successfully." msgstr "IP añadida|IP añadida correctamente." -#: wireguard_peer/views.py:369 +#: wireguard_peer/views.py:379 msgid "Route template unlinked successfully." msgstr "Plantilla de enrutamiento desvinculada exitosamente." -#: wireguard_peer/views.py:379 +#: wireguard_peer/views.py:389 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -2984,15 +3151,15 @@ 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:386 +#: wireguard_peer/views.py:396 msgid "Route template applied successfully." msgstr "Plantilla de enrutamiento aplicada exitosamente." -#: wireguard_peer/views.py:419 +#: wireguard_peer/views.py:429 msgid "Peer suspension/unsuspension scheduled successfully." msgstr "Suspensión/reactivación programada con éxito." -#: wireguard_peer/views.py:423 +#: wireguard_peer/views.py:431 msgid "" "Error scheduling peer suspension/unsuspension. Please correct the errors " "below." @@ -3000,27 +3167,47 @@ msgstr "" "Error al programar la suspensión/reactivación del peer. Por favor, corrija " "los errores abajo." -#: wireguard_peer/views.py:430 +#: wireguard_peer/views.py:438 msgid "Schedule cleared successfully." msgstr "Programación limpiada con éxito." -#: wireguard_peer/views.py:438 +#: wireguard_peer/views.py:452 msgid "Peer suspended successfully." msgstr "Peer suspendido con éxito." -#: wireguard_peer/views.py:446 +#: wireguard_peer/views.py:454 +msgid "Peer suspended, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:464 msgid "Peer reactivated successfully." msgstr "Peer reactivado con éxito." -#: wireguard_peer/views.py:450 +#: wireguard_peer/views.py:466 +msgid "Peer reactivated, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:469 msgid "Invalid action." msgstr "Acción inválida." -#: wireguard_peer/views.py:455 +#: wireguard_peer/views.py:474 msgid "Suspend / Reactivate Peer" msgstr "Suspender / Reactivar Peer" -#: wireguard_tools/views.py:181 +#: wireguard_peer/views.py:497 +#, fuzzy +#| msgid "Schedule Profile deleted successfully." +msgid "Peer scheduling profile updated successfully." +msgstr "Perfil de programación eliminado con éxito." + +#: wireguard_peer/views.py:503 +#, fuzzy +#| msgid "Delete Schedule Profile" +msgid "Manage Peer Schedule Profile" +msgstr "Eliminar Perfil de Programación" + +#: wireguard_tools/views.py:237 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -3028,7 +3215,7 @@ msgstr "" "Exportación exitosa!|Los archivos de configuración se exportaron a /etc/" "wireguard/." -#: wireguard_tools/views.py:183 +#: wireguard_tools/views.py:239 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -3036,19 +3223,19 @@ msgstr "" "Exportación exitosa!|Los archivos de configuración se exportaron a /etc/" "wireguard/. No olvides reiniciar las interfaces." -#: wireguard_tools/views.py:285 +#: wireguard_tools/views.py:341 msgid "Error reloading" msgstr "Error al recargar" -#: wireguard_tools/views.py:297 +#: wireguard_tools/views.py:353 msgid "Error stopping" msgstr "Error al detener" -#: wireguard_tools/views.py:302 +#: wireguard_tools/views.py:358 msgid "Error starting" msgstr "Error al iniciar" -#: wireguard_tools/views.py:309 +#: wireguard_tools/views.py:365 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -3057,19 +3244,19 @@ msgstr "" "ADVERTENCIA|La interfaz se recargó, no reinició. Verifica que los peers " "funcionen correctamente. Si hay problemas, repórtalos." -#: wireguard_tools/views.py:310 +#: wireguard_tools/views.py:366 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard recargado|El servicio WireGuard se ha recargado." -#: wireguard_tools/views.py:312 +#: wireguard_tools/views.py:368 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard reiniciado|El servicio WireGuard se ha reiniciado." -#: wireguard_tools/views.py:315 +#: wireguard_tools/views.py:371 msgid "Errors encountered|Error processing one or more interfaces." msgstr "Errores encontrados|Error al procesar una o más interfaces." -#: wireguard_tools/views.py:318 +#: wireguard_tools/views.py:374 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "No se encontraron interfaces|No hay interfaces WireGuard para procesar." diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index eaa08ac..988f335 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-02-03 14:49-0300\n" +"POT-Creation-Date: 2026-02-09 13:51-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -73,7 +73,8 @@ msgstr "Jeton" #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 user_manager/forms.py:49 #: user_manager/forms.py:180 vpn_invite/forms.py:192 vpn_invite/forms.py:326 -#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:157 +#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:156 +#: wireguard_peer/forms.py:210 msgid "Back" msgstr "Retour" @@ -81,7 +82,7 @@ msgstr "Retour" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/scheduler/scheduleprofile_form.html:112 +#: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 #: templates/wireguard/wireguard_manage_ip.html:43 user_manager/forms.py:48 @@ -90,14 +91,15 @@ msgid "Delete" msgstr "Supprimer" #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:83 -#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:61 +#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/scheduler/scheduleprofile_form.html:134 +#: templates/scheduler/scheduleprofile_form.html:200 #: templates/wireguard/wireguard_manage_ip.html:41 user_manager/forms.py:98 #: user_manager/forms.py:205 vpn_invite/forms.py:191 vpn_invite/forms.py:325 #: wireguard/forms.py:100 wireguard_peer/forms.py:26 +#: wireguard_peer/forms.py:205 msgid "Save" msgstr "Enregistrer" @@ -167,7 +169,7 @@ msgstr "La mise à jour du worker est requise." msgid "Access Denied" msgstr "Accès refusé" -#: cluster/views.py:21 templates/template_parts/base_sidebar.html:97 +#: cluster/views.py:21 templates/template_parts/base_sidebar.html:107 msgid "Cluster" msgstr "Cluster" @@ -288,46 +290,66 @@ msgstr "" "combinaison.

\n" " " -#: console/views.py:25 console/views.py:57 user_manager/forms.py:16 +#: console/views.py:27 console/views.py:67 user_manager/forms.py:16 msgid "Console" msgstr "Console" -#: console/views.py:27 +#: console/views.py:29 msgid "iptables list" msgstr "liste iptables" -#: console/views.py:33 +#: console/views.py:35 msgid "running processes" msgstr "processus en cours" -#: console/views.py:36 +#: console/views.py:38 msgid "WireGuard show" msgstr "état WireGuard" -#: console/views.py:39 +#: console/views.py:40 +msgid "Enhanced filter is enabled. This command is not available." +msgstr "Le filtre avancé est activé. Cette commande n’est pas disponible." + +#: console/views.py:46 msgid "Memory usage" msgstr "Utilisation de la mémoire" -#: console/views.py:42 +#: console/views.py:49 msgid "Routing table" msgstr "Table de routage" -#: console/views.py:54 +#: console/views.py:61 msgid "DNS container test script" msgstr "Script de test du conteneur DNS" -#: console/views.py:57 +#: console/views.py:64 +#, fuzzy +#| msgid "WireGuard Status" +msgid "Flush Wireguard status cache" +msgstr "Statut WireGuard" + +#: console/views.py:67 msgid "Invalid command" msgstr "Commande invalide" -#: console/views.py:64 +#: console/views.py:78 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache for worker: " +msgstr "" +"Le mode cluster nécessite que le cache d'état de WireGuard soit activé." + +#: console/views.py:83 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache entries: " +msgstr "" +"Le mode cluster nécessite que le cache d'état de WireGuard soit activé." + +#: console/views.py:87 msgid "Invalid target" msgstr "Cible invalide" -#: console/views.py:69 -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:24 msgid "Primary DNS" msgstr "DNS primaire" @@ -781,7 +803,7 @@ msgstr "Routes de Tous les Pairs" msgid "One route per line in CIDR notation." msgstr "Une route par ligne en notation CIDR." -#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:79 +#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:42 msgid "Routing Templates" msgstr "Modèles de Routage" @@ -882,100 +904,126 @@ msgstr "" "cette option peut générer un grand nombre de règles de pare-feu.

\n" " " -#: scheduler/forms.py:14 +#: scheduler/forms.py:17 msgid "Profile Name" msgstr "Nom du Profil" -#: scheduler/forms.py:38 templates/scheduler/scheduleprofile_form.html:92 +#: scheduler/forms.py:74 templates/scheduler/scheduleprofile_form.html:107 msgid "Start Day" msgstr "Jour de Début" -#: scheduler/forms.py:39 templates/scheduler/scheduleprofile_form.html:93 +#: scheduler/forms.py:75 templates/scheduler/scheduleprofile_form.html:108 msgid "Start Time" msgstr "Heure de Début" -#: scheduler/forms.py:40 templates/scheduler/scheduleprofile_form.html:94 +#: scheduler/forms.py:76 templates/scheduler/scheduleprofile_form.html:109 msgid "End Day" msgstr "Jour de Fin" -#: scheduler/forms.py:41 templates/scheduler/scheduleprofile_form.html:95 +#: scheduler/forms.py:77 templates/scheduler/scheduleprofile_form.html:110 msgid "End Time" msgstr "Heure de Fin" -#: scheduler/models.py:9 +#: scheduler/forms.py:122 +msgid "Unable to validate overlaps: schedule profile is missing." +msgstr "" + +#: scheduler/forms.py:129 scheduler/forms.py:132 +#, fuzzy +#| msgid "" +#| "The difference between suspend and unsuspend times must be at least 5 " +#| "minutes." +msgid "The minimum duration between start and end must be at least 10 minutes." +msgstr "" +"La différence entre les heures de suspension et de réactivation doit être " +"d'au moins 5 minutes." + +#: scheduler/forms.py:150 +#, python-format +msgid "This time slot overlaps with an existing slot (%(start)s → %(end)s)." +msgstr "" + +#: scheduler/forms.py:160 +#, fuzzy +#| msgid "Scheduled suspension time must be at least 10 minutes in the future." +msgid "There must be at least 10 minutes between time slots." +msgstr "" +"L'heure de suspension programmée doit être au moins 10 minutes dans le futur." + +#: scheduler/models.py:11 msgid "Monday" msgstr "Lundi" -#: scheduler/models.py:10 +#: scheduler/models.py:12 msgid "Tuesday" msgstr "Mardi" -#: scheduler/models.py:11 +#: scheduler/models.py:13 msgid "Wednesday" msgstr "Mercredi" -#: scheduler/models.py:12 +#: scheduler/models.py:14 msgid "Thursday" msgstr "Jeudi" -#: scheduler/models.py:13 +#: scheduler/models.py:15 msgid "Friday" msgstr "Vendredi" -#: scheduler/models.py:14 +#: scheduler/models.py:16 msgid "Saturday" msgstr "Samedi" -#: scheduler/models.py:15 +#: scheduler/models.py:17 msgid "Sunday" msgstr "Dimanche" -#: scheduler/views.py:26 +#: scheduler/views.py:27 msgid "Edit Schedule Profile" msgstr "Modifier le Profil de Planification" -#: scheduler/views.py:30 +#: scheduler/views.py:31 msgid "Create Schedule Profile" msgstr "Créer un Profil de Planification" -#: scheduler/views.py:37 +#: scheduler/views.py:44 msgid "Schedule Profile saved successfully." msgstr "Profil de planification enregistré avec succès." -#: scheduler/views.py:58 +#: scheduler/views.py:68 msgid "Schedule Profile deleted successfully." msgstr "Profil de planification supprimé avec succès." -#: scheduler/views.py:63 +#: scheduler/views.py:73 msgid "Delete Schedule Profile" msgstr "Supprimer le Profil de Planification" -#: scheduler/views.py:65 +#: scheduler/views.py:75 #, python-format msgid "Are you sure you want to delete the profile \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer le profil \"%(name)s\" ?" -#: scheduler/views.py:78 +#: scheduler/views.py:88 msgid "Edit Time Interval" msgstr "Modifier l'Intervalle de Temps" -#: scheduler/views.py:82 +#: scheduler/views.py:92 msgid "Add Time Interval" msgstr "Ajouter um Intervalle de Temps" -#: scheduler/views.py:92 +#: scheduler/views.py:102 msgid "Time Interval saved successfully." msgstr "Intervalle de temps enregistré avec succès." -#: scheduler/views.py:115 +#: scheduler/views.py:125 msgid "Time Interval deleted successfully." msgstr "Intervalle de temps supprimé avec succès." -#: scheduler/views.py:120 +#: scheduler/views.py:130 msgid "Delete Time Interval" msgstr "Supprimer l'Intervalle de Temps" -#: scheduler/views.py:122 +#: scheduler/views.py:132 msgid "Are you sure you want to delete this time interval?" msgstr "Êtes-vous sûr de vouloir supprimer cet intervalle de temps ?" @@ -1014,6 +1062,7 @@ msgid "Login again" msgstr "Se reconnecter" #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 +#: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 #: vpn_invite/forms.py:79 vpn_invite/forms.py:80 vpn_invite/forms.py:81 #: vpn_invite/forms.py:82 @@ -1050,8 +1099,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 +#: templates/wireguard/wireguard_manage_peer.html:112 +#: templates/wireguard/wireguard_manage_peer.html:121 msgid "Not set" msgstr "Non défini" @@ -1066,7 +1115,7 @@ msgstr "Vu pour la dernière fois il y a plus de 10 minutes ou jamais vu." #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 #: templates/routing_templates/list.html:29 -#: templates/scheduler/scheduleprofile_form.html:108 +#: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 #: templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 @@ -1158,7 +1207,7 @@ msgstr "Je comprends" msgid "Clear" msgstr "Effacer" -#: templates/console/console.html:27 +#: templates/console/console.html:28 msgid "Destination Hostname or IP Address" msgstr "Nom d’hôte ou adresse IP de destination" @@ -1443,6 +1492,7 @@ msgstr "Type de destination" #: templates/firewall/manage_redirect_rule.html:42 #: templates/firewall/manage_redirect_rule.html:48 +#: templates/scheduler/scheduleprofile_form.html:159 #: templates/vpn_invite/invite_settings.html:17 user_manager/forms.py:178 msgid "Peer" msgstr "Pair" @@ -1541,7 +1591,7 @@ msgid "Confirm Delete" msgstr "Confirmer la Suppression" #: templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:137 +#: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Annuler" @@ -1559,31 +1609,87 @@ msgstr "Visualisation de la planification" #: templates/scheduler/scheduleprofile_form.html:70 #: templates/wireguard/apply_route_template.html:44 +#: templates/wireguard/wireguard_manage_peer.html:36 msgid "Active" msgstr "Actif" #: templates/scheduler/scheduleprofile_form.html:71 +#: templates/scheduler/scheduleprofile_form.html:82 msgid "Inactive" msgstr "Inactif" -#: templates/scheduler/scheduleprofile_form.html:82 +#: templates/scheduler/scheduleprofile_form.html:78 +#, fuzzy +#| msgid "Current Active Template:" +msgid "Current time" +msgstr "Modèle actif actuel :" + +#: templates/scheduler/scheduleprofile_form.html:79 +msgid "Becomes active at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:80 +msgid "Becomes inactive at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:97 msgid "Time Intervals" msgstr "Intervalles de Temps" -#: templates/scheduler/scheduleprofile_form.html:85 +#: templates/scheduler/scheduleprofile_form.html:100 msgid "Add Interval" msgstr "Ajouter um Intervalle" -#: templates/scheduler/scheduleprofile_form.html:96 +#: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Actions" -#: templates/scheduler/scheduleprofile_form.html:120 +#: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Aucun intervalle de temps trouvé." +#: templates/scheduler/scheduleprofile_form.html:152 +msgid "Linked Peers (Debug)" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:160 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by Schedule" +msgstr "Peers désactivés" + +#: templates/scheduler/scheduleprofile_form.html:161 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next Enable" +msgstr "Redémarrage autorisé" + +#: templates/scheduler/scheduleprofile_form.html:162 +#, fuzzy +#| msgid "Disabled" +msgid "Next Disable" +msgstr "Désactivé" + +#: templates/scheduler/scheduleprofile_form.html:175 +msgid "Yes" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:177 +msgid "No" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:185 +msgid "No peers linked to this profile." +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:207 +#, fuzzy +#| msgid "Show extras" +msgid "Show Peers" +msgstr "Afficher les extras" + #: templates/scheduler/scheduleprofile_list.html:7 msgid "Schedule Profiles" msgstr "Profils de Planification" @@ -1632,20 +1738,20 @@ msgstr "Mettre à jour et redémarrer le service" msgid "Update and reload service" msgstr "Mettre à jour et recharger le service" -#: templates/template_parts/base_sidebar.html:59 user_manager/views.py:74 +#: templates/template_parts/base_sidebar.html:32 +msgid "Scheduler" +msgstr "Planificateur" + +#: templates/template_parts/base_sidebar.html:79 user_manager/views.py:74 msgid "User Manager" msgstr "Gestion des utilisateurs" -#: templates/template_parts/base_sidebar.html:88 +#: templates/template_parts/base_sidebar.html:98 #: templates/wireguard/peer_list/peer_preview_modal.html:133 #: vpn_invite/views.py:37 msgid "VPN Invite" msgstr "Invitation VPN" -#: templates/template_parts/base_sidebar.html:107 -msgid "Scheduler" -msgstr "Planificateur" - #: templates/user_manager/list.html:9 user_manager/forms.py:20 msgid "User Level" msgstr "Niveau utilisateur" @@ -1723,7 +1829,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:390 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:400 msgid "Apply Route Template" msgstr "Appliquer le modèle de routage" @@ -1767,7 +1873,7 @@ msgstr "Transfert" #: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 -#: wireguard_peer/views.py:112 +#: wireguard_peer/views.py:115 msgid "Primary Server" msgstr "Serveur primaire" @@ -1787,12 +1893,12 @@ msgid "Allowed IPs" msgstr "IPs autorisées" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:79 +#: templates/wireguard/wireguard_manage_peer.html:135 msgid "Peer Traffic" msgstr "Trafic du peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:96 +#: templates/wireguard/wireguard_manage_peer.html:152 msgid "No traffic history, please wait a few minutes" msgstr "Aucun historique de trafic ; veuillez patienter quelques minutes" @@ -1950,7 +2056,7 @@ msgstr "" "est obsolète." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: templates/wireguard/wireguard_manage_peer.html:104 wireguard/forms.py:18 #: wireguard_peer/forms.py:52 msgid "Public Key" msgstr "Clé publique" @@ -1994,8 +2100,8 @@ msgid "Enter Allowed IP" msgstr "Saisir l’IP autorisée" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:131 -#: templates/wireguard/wireguard_manage_peer.html:220 +#: templates/wireguard/wireguard_manage_peer.html:187 +#: templates/wireguard/wireguard_manage_peer.html:276 #: wireguard_peer/forms.py:71 msgid "Priority" msgstr "Priorité" @@ -2008,65 +2114,122 @@ msgstr "Tapez \\\"delete\\\" pour supprimer cette adresse IP." msgid "Peer Configuration" msgstr "Configuration du peer" -#: templates/wireguard/wireguard_manage_peer.html:27 wireguard_peer/forms.py:41 +#: templates/wireguard/wireguard_manage_peer.html:27 +#, fuzzy +#| msgid "Packet State" +msgid "Peer State" +msgstr "État du paquet" + +#: templates/wireguard/wireguard_manage_peer.html:31 +#, fuzzy +#| msgid "Suspend" +msgid "Suspended" +msgstr "Suspendre" + +#: templates/wireguard/wireguard_manage_peer.html:40 +#, fuzzy +#| msgid "Schedule" +msgid "Scheduled suspend" +msgstr "Programmer" + +#: templates/wireguard/wireguard_manage_peer.html:43 +msgid "Scheduled unsuspend" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:54 +#, fuzzy +#| msgid "Clear Schedule" +msgid "Peer Schedule" +msgstr "Effacer la programmation" + +#: templates/wireguard/wireguard_manage_peer.html:60 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by schedule" +msgstr "Peers désactivés" + +#: templates/wireguard/wireguard_manage_peer.html:62 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next enable" +msgstr "Redémarrage autorisé" + +#: templates/wireguard/wireguard_manage_peer.html:65 +#, fuzzy +#| msgid "Enabled Peers" +msgid "Enabled by schedule" +msgstr "Peers activés" + +#: templates/wireguard/wireguard_manage_peer.html:67 +#, fuzzy +#| msgid "Disabled" +msgid "Next disable" +msgstr "Désactivé" + +#: templates/wireguard/wireguard_manage_peer.html:71 +msgid "No profile associated" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:83 wireguard_peer/forms.py:41 msgid "Persistent Keepalive" msgstr "Keep‑alive persistant" -#: templates/wireguard/wireguard_manage_peer.html:40 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "Keys" msgstr "Clés" -#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: templates/wireguard/wireguard_manage_peer.html:107 wireguard/forms.py:17 #: wireguard_peer/forms.py:53 msgid "Private Key" msgstr "Clé privée" -#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:54 +#: templates/wireguard/wireguard_manage_peer.html:116 +#: wireguard_peer/forms.py:54 msgid "Pre-Shared Key" msgstr "Clé pré‑partagée" -#: templates/wireguard/wireguard_manage_peer.html:110 +#: templates/wireguard/wireguard_manage_peer.html:166 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs dans la section Peer de wg" -#: templates/wireguard/wireguard_manage_peer.html:111 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Peer IP Addresses and networks" msgstr "Adresses IP et réseaux du peer" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Ajouter une adresse IP" -#: templates/wireguard/wireguard_manage_peer.html:129 -#: templates/wireguard/wireguard_manage_peer.html:218 +#: templates/wireguard/wireguard_manage_peer.html:185 +#: templates/wireguard/wireguard_manage_peer.html:274 msgid "Main ip address" msgstr "Adresse IP principale" -#: templates/wireguard/wireguard_manage_peer.html:144 +#: templates/wireguard/wireguard_manage_peer.html:200 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs dans le fichier de configuration client" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:201 msgid "Client Routing" msgstr "Routage client" -#: templates/wireguard/wireguard_manage_peer.html:150 +#: templates/wireguard/wireguard_manage_peer.html:206 msgid "Apply template" msgstr "Appliquer le modèle" -#: templates/wireguard/wireguard_manage_peer.html:154 +#: templates/wireguard/wireguard_manage_peer.html:210 msgid "Add Client route" msgstr "Ajouter une route client" -#: templates/wireguard/wireguard_manage_peer.html:167 +#: templates/wireguard/wireguard_manage_peer.html:223 msgid "Routing Template" msgstr "Modèle de Routage" -#: templates/wireguard/wireguard_manage_peer.html:180 +#: templates/wireguard/wireguard_manage_peer.html:236 msgid "Template Route" msgstr "Route du modèle" -#: templates/wireguard/wireguard_manage_peer.html:191 +#: templates/wireguard/wireguard_manage_peer.html:247 msgid "" "The client is not configured to use the VPN as the default gateway." "\\n\\nOnly the specific networks listed below are routed through the VPN." @@ -2079,7 +2242,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:194 +#: templates/wireguard/wireguard_manage_peer.html:250 msgid "" "The client is configured to use the VPN as the default gateway. \\n\\nThis " "setting routes all client internet traffic through the VPN, enhancing " @@ -2089,27 +2252,27 @@ 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:202 +#: templates/wireguard/wireguard_manage_peer.html:258 msgid "default route" msgstr "route par défaut" -#: templates/wireguard/wireguard_manage_peer.html:236 +#: templates/wireguard/wireguard_manage_peer.html:292 msgid "Peer List" msgstr "Liste des Peers" -#: templates/wireguard/wireguard_manage_peer.html:240 +#: templates/wireguard/wireguard_manage_peer.html:296 msgid "Reactivate" msgstr "Réactiver" -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:298 msgid "Suspend" msgstr "Suspendre" -#: templates/wireguard/wireguard_manage_peer.html:246 +#: templates/wireguard/wireguard_manage_peer.html:302 msgid "Delete Peer" msgstr "Supprimer le peer" -#: templates/wireguard/wireguard_manage_peer.html:256 +#: templates/wireguard/wireguard_manage_peer.html:312 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Tapez \\\"delete\\\" pour supprimer la configuration du peer." @@ -2882,90 +3045,89 @@ msgstr "Réactiver maintenant" msgid "Suspend now" msgstr "Suspendre maintenant" -#: wireguard_peer/forms.py:140 +#: wireguard_peer/forms.py:139 msgid "Schedule" msgstr "Programmer" -#: wireguard_peer/forms.py:144 +#: wireguard_peer/forms.py:143 msgid "Clear Schedule" msgstr "Effacer la programmation" -#: wireguard_peer/forms.py:182 +#: wireguard_peer/forms.py:181 msgid "" "The difference between suspend and unsuspend times must be at least 5 " "minutes." msgstr "" -"La différence entre les heures de suspension et de réactivation doit être d'au " -"moins 5 minutes." +"La différence entre les heures de suspension et de réactivation doit être " +"d'au moins 5 minutes." -#: wireguard_peer/forms.py:186 +#: wireguard_peer/forms.py:185 msgid "Scheduled suspension time must be at least 10 minutes in the future." msgstr "" -"L'heure de suspension programmée doit être au moins 10 minutes dans le " -"futur." +"L'heure de suspension programmée doit être au moins 10 minutes dans le futur." -#: wireguard_peer/forms.py:189 +#: wireguard_peer/forms.py:188 msgid "Scheduled unsuspension time must be at least 10 minutes in the future." msgstr "" "L'heure de réactivation programmée doit être au moins 10 minutes dans le " "futur." -#: wireguard_peer/views.py:58 +#: wireguard_peer/views.py:61 msgid "Disabled WireGuard Peer List" msgstr "Liste des peers WireGuard désactivés" -#: wireguard_peer/views.py:61 +#: wireguard_peer/views.py:64 msgid "WireGuard Peer List" msgstr "Liste des peers WireGuard" -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:201 msgid "Peer created|Peer created successfully." msgstr "Peer créé | Peer créé avec succès." -#: wireguard_peer/views.py:203 +#: wireguard_peer/views.py:206 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:226 +#: wireguard_peer/views.py:229 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer supprimé | Peer supprimé avec succès." -#: wireguard_peer/views.py:229 +#: wireguard_peer/views.py:232 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:231 +#: wireguard_peer/views.py:234 msgid "Peer Configuration: " msgstr "Configuration du peer: " -#: wireguard_peer/views.py:269 +#: wireguard_peer/views.py:279 msgid "Peer updated|Peer updated successfully." msgstr "Peer mis à jour | Peer mis à jour avec succès." -#: wireguard_peer/views.py:272 +#: wireguard_peer/views.py:282 msgid "Edit Peer" msgstr "Modifier le Peer" -#: wireguard_peer/views.py:274 +#: wireguard_peer/views.py:284 msgid "Edit Peer Name" msgstr "Modifier le Nom du Peer" -#: wireguard_peer/views.py:276 +#: wireguard_peer/views.py:286 msgid "Edit Keepalive" msgstr "Modifier le Keepalive" -#: wireguard_peer/views.py:278 +#: wireguard_peer/views.py:288 msgid "Edit Keys" msgstr "Modifier les Clés" -#: wireguard_peer/views.py:310 +#: wireguard_peer/views.py:320 msgid "IP address deleted|IP address deleted successfully." msgstr "Adresse IP supprimée | Suppression réussie." -#: wireguard_peer/views.py:315 +#: wireguard_peer/views.py:325 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2973,27 +3135,27 @@ msgstr "" "Erreur de suppression de l’IP | Message de confirmation invalide. Tapez « " "delete » pour confirmer." -#: wireguard_peer/views.py:320 +#: wireguard_peer/views.py:330 msgid "Manage client route" msgstr "Gérer la route client" -#: wireguard_peer/views.py:322 +#: wireguard_peer/views.py:332 msgid "Manage IP address or Network" msgstr "Gérer l’adresse IP ou le réseau" -#: wireguard_peer/views.py:335 +#: wireguard_peer/views.py:345 msgid "IP address updated|IP address updated successfully." msgstr "Adresse IP mise à jour | Mise à jour réussie." -#: wireguard_peer/views.py:337 +#: wireguard_peer/views.py:347 msgid "IP address added|IP address added successfully." msgstr "Adresse IP ajoutée | Ajout réussi." -#: wireguard_peer/views.py:369 +#: wireguard_peer/views.py:379 msgid "Route template unlinked successfully." msgstr "Modèle de routage dissocié avec succès." -#: wireguard_peer/views.py:379 +#: wireguard_peer/views.py:389 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -3001,15 +3163,15 @@ 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:386 +#: wireguard_peer/views.py:396 msgid "Route template applied successfully." msgstr "Modèle de routage appliqué avec succès." -#: wireguard_peer/views.py:419 +#: wireguard_peer/views.py:429 msgid "Peer suspension/unsuspension scheduled successfully." msgstr "Suspension/réactivation du peer programmée avec succès." -#: wireguard_peer/views.py:423 +#: wireguard_peer/views.py:431 msgid "" "Error scheduling peer suspension/unsuspension. Please correct the errors " "below." @@ -3017,27 +3179,47 @@ msgstr "" "Erreur lors de la programmation de la suspension/réactivation du peer. " "Veuillez corriger les erreurs ci-dessous." -#: wireguard_peer/views.py:430 +#: wireguard_peer/views.py:438 msgid "Schedule cleared successfully." msgstr "Programmation effacée avec succès." -#: wireguard_peer/views.py:438 +#: wireguard_peer/views.py:452 msgid "Peer suspended successfully." msgstr "Peer suspendu avec succès." -#: wireguard_peer/views.py:446 +#: wireguard_peer/views.py:454 +msgid "Peer suspended, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:464 msgid "Peer reactivated successfully." msgstr "Peer réactivé avec succès." -#: wireguard_peer/views.py:450 +#: wireguard_peer/views.py:466 +msgid "Peer reactivated, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:469 msgid "Invalid action." msgstr "Action invalide." -#: wireguard_peer/views.py:455 +#: wireguard_peer/views.py:474 msgid "Suspend / Reactivate Peer" msgstr "Suspendre / Réactiver le Peer" -#: wireguard_tools/views.py:181 +#: wireguard_peer/views.py:497 +#, fuzzy +#| msgid "Schedule Profile deleted successfully." +msgid "Peer scheduling profile updated successfully." +msgstr "Profil de planification supprimé avec succès." + +#: wireguard_peer/views.py:503 +#, fuzzy +#| msgid "Delete Schedule Profile" +msgid "Manage Peer Schedule Profile" +msgstr "Supprimer le Profil de Planification" + +#: wireguard_tools/views.py:237 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -3045,7 +3227,7 @@ msgstr "" "Exportation réussie! | Les fichiers de configuration WireGuard ont été " "exportés vers /etc/wireguard/." -#: wireguard_tools/views.py:183 +#: wireguard_tools/views.py:239 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -3053,19 +3235,19 @@ msgstr "" "Exportation réussie! | Les fichiers WireGuard ont été exportés vers /etc/" "wireguard/. N’oubliez pas de redémarrer les interfaces." -#: wireguard_tools/views.py:285 +#: wireguard_tools/views.py:341 msgid "Error reloading" msgstr "Erreur de rechargement" -#: wireguard_tools/views.py:297 +#: wireguard_tools/views.py:353 msgid "Error stopping" msgstr "Erreur à l’arrêt" -#: wireguard_tools/views.py:302 +#: wireguard_tools/views.py:358 msgid "Error starting" msgstr "Erreur au démarrage" -#: wireguard_tools/views.py:309 +#: wireguard_tools/views.py:365 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -3074,21 +3256,21 @@ msgstr "" "AVERTISSEMENT | L’interface a été rechargée, pas redémarrée. Vérifiez que " "les peers fonctionnent comme prévu ; signalez tout problème rencontré." -#: wireguard_tools/views.py:310 +#: wireguard_tools/views.py:366 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard rechargé | Le service WireGuard a été rechargé." -#: wireguard_tools/views.py:312 +#: wireguard_tools/views.py:368 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard redémarré | Le service WireGuard a été redémarré." -#: wireguard_tools/views.py:315 +#: wireguard_tools/views.py:371 msgid "Errors encountered|Error processing one or more interfaces." msgstr "" "Erreurs rencontrées | Problème lors du traitement d’une ou plusieurs " "interfaces." -#: wireguard_tools/views.py:318 +#: wireguard_tools/views.py:374 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "Aucune interface trouvée | Aucune interface WireGuard à traiter." diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index 467f235..c11135a 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-02-03 14:49-0300\n" +"POT-Creation-Date: 2026-02-09 13:51-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -73,7 +73,8 @@ msgstr "Token" #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 user_manager/forms.py:49 #: user_manager/forms.py:180 vpn_invite/forms.py:192 vpn_invite/forms.py:326 -#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:157 +#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:156 +#: wireguard_peer/forms.py:210 msgid "Back" msgstr "Voltar" @@ -81,7 +82,7 @@ msgstr "Voltar" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/scheduler/scheduleprofile_form.html:112 +#: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 #: templates/wireguard/wireguard_manage_ip.html:43 user_manager/forms.py:48 @@ -90,14 +91,15 @@ msgid "Delete" msgstr "Excluir" #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:83 -#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:61 +#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/scheduler/scheduleprofile_form.html:134 +#: templates/scheduler/scheduleprofile_form.html:200 #: templates/wireguard/wireguard_manage_ip.html:41 user_manager/forms.py:98 #: user_manager/forms.py:205 vpn_invite/forms.py:191 vpn_invite/forms.py:325 #: wireguard/forms.py:100 wireguard_peer/forms.py:26 +#: wireguard_peer/forms.py:205 msgid "Save" msgstr "Salvar" @@ -131,8 +133,9 @@ msgstr "Exibição do Worker" #: cluster/forms.py:136 msgid "Cluster mode requires WireGuard status cache to be enabled." -msgstr "O modo cluster requer que o cache de status do WireGuard esteja habilitado." -"O modo cluster requer que o cache de status do WireGuard esteja habilitado." +msgstr "" +"O modo cluster requer que o cache de status do WireGuard esteja habilitado.O " +"modo cluster requer que o cache de status do WireGuard esteja habilitado." #: cluster/models.py:46 msgid "" @@ -140,9 +143,8 @@ msgid "" "IP address." msgstr "" "O bloqueio de IP está habilitado, mas o worker está tentando acessar de um " -"endereço IP diferente." -"O bloqueio de IP está habilitado, mas o worker está tentando acessar de um " -"endereço IP diferente." +"endereço IP diferente.O bloqueio de IP está habilitado, mas o worker está " +"tentando acessar de um endereço IP diferente." #: cluster/models.py:47 msgid "Worker is not enabled" @@ -158,9 +160,9 @@ msgid "" "in the API request." msgstr "" "Por favor, informe worker_config_version, worker_dns_version e " -"worker_version na requisição da API." -"Por favor, informe worker_config_version, worker_dns_version e " -"worker_version na requisição da API." +"worker_version na requisição da API.Por favor, informe " +"worker_config_version, worker_dns_version e worker_version na requisição da " +"API." #: cluster/models.py:50 msgid "Worker update is required." @@ -171,7 +173,7 @@ msgstr "A atualização do worker é necessária." msgid "Access Denied" msgstr "Acesso Negado" -#: cluster/views.py:21 templates/template_parts/base_sidebar.html:97 +#: cluster/views.py:21 templates/template_parts/base_sidebar.html:107 msgid "Cluster" msgstr "Cluster" @@ -241,8 +243,7 @@ msgstr "" "
Informações de Localização
\n" "

Detalhes de localização opcionais para este worker (país, cidade, " "hostname).

\n" -" " -"\n" +" \n" "
Configuração do Worker
\n" "

Configure um nó worker do cluster que irá sincronizar com esta " "instância primária.

\n" @@ -309,8 +310,7 @@ msgstr "" "
Exibição do Worker
\n" "

Selecione como os workers devem ser identificados na interface - " "por nome, endereço do servidor, localização ou uma combinação.

\n" -" " -"\n" +" \n" "
Modo do Cluster
\n" "

Configure como o cluster opera e sincroniza as configurações " "entre os nós.

\n" @@ -329,46 +329,68 @@ msgstr "" "por nome, endereço do servidor, localização ou uma combinação.

\n" " " -#: console/views.py:25 console/views.py:57 user_manager/forms.py:16 +#: console/views.py:27 console/views.py:67 user_manager/forms.py:16 msgid "Console" msgstr "Console" -#: console/views.py:27 +#: console/views.py:29 msgid "iptables list" msgstr "Lista de regras do iptables" -#: console/views.py:33 +#: console/views.py:35 msgid "running processes" msgstr "Processos em execução" -#: console/views.py:36 +#: console/views.py:38 msgid "WireGuard show" msgstr "Estado do WireGuard" -#: console/views.py:39 +#: console/views.py:40 +msgid "Enhanced filter is enabled. This command is not available." +msgstr "Filtro aprimorado está habilitado. Este comando não está disponível." + +#: console/views.py:46 msgid "Memory usage" msgstr "Uso de Memória" -#: console/views.py:42 +#: console/views.py:49 msgid "Routing table" msgstr "Tabela de Roteamento" -#: console/views.py:54 +#: console/views.py:61 msgid "DNS container test script" msgstr "Script de teste do contêiner DNS" -#: console/views.py:57 +#: console/views.py:64 +#, fuzzy +#| msgid "WireGuard Status" +msgid "Flush Wireguard status cache" +msgstr "Estado do WireGuard" + +#: console/views.py:67 msgid "Invalid command" msgstr "Comando inválido" -#: console/views.py:64 +#: console/views.py:78 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache for worker: " +msgstr "" +"O modo cluster requer que o cache de status do WireGuard esteja habilitado.O " +"modo cluster requer que o cache de status do WireGuard esteja habilitado." + +#: console/views.py:83 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache entries: " +msgstr "" +"O modo cluster requer que o cache de status do WireGuard esteja habilitado.O " +"modo cluster requer que o cache de status do WireGuard esteja habilitado." + +#: console/views.py:87 msgid "Invalid target" msgstr "Destino inválido" -#: console/views.py:69 -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:24 msgid "Primary DNS" msgstr "DNS Primário" @@ -412,8 +434,9 @@ msgstr "Lista de Filtro de DNS padrão criada com sucesso" msgid "" "Pending Changes|There are pending DNS changes that have not been applied" msgstr "" -"Alterações Pendentes|Há alterações de DNS pendentes que não foram aplicadas" -"Alterações Pendentes|Há alterações de DNS pendentes que não foram aplicadas" +"Alterações Pendentes|Há alterações de DNS pendentes que não foram " +"aplicadasAlterações Pendentes|Há alterações de DNS pendentes que não foram " +"aplicadas" #: dns/views.py:91 msgid "DNS Forwarders" @@ -683,9 +706,9 @@ msgid "" "rule was not deleted." msgstr "" "Erro ao excluir a regra de Encaminhamento de porta|Confirmação inválida. A " -"regra de Encaminhamento de porta não foi excluída." -"Erro ao excluir a regra de Encaminhamento de porta|Confirmação inválida. A " -"regra de Encaminhamento de porta não foi excluída." +"regra de Encaminhamento de porta não foi excluída.Erro ao excluir a regra de " +"Encaminhamento de porta|Confirmação inválida. A regra de Encaminhamento de " +"porta não foi excluída." #: firewall/views.py:54 msgid "Port Forward rule saved successfully" @@ -709,9 +732,8 @@ msgid "" "not deleted." msgstr "" "Erro ao excluir a regra de Firewall|Confirmação inválida. A regra de " -"Firewall não foi removida." -"Erro ao excluir a regra de Firewall|Confirmação inválida. A regra de " -"Firewall não foi removida." +"Firewall não foi removida.Erro ao excluir a regra de Firewall|Confirmação " +"inválida. A regra de Firewall não foi removida." #: firewall/views.py:125 msgid "Firewall rule saved successfully" @@ -739,9 +761,8 @@ msgid "" "language, please open an" msgstr "" "Se encontrar algum problema na tradução ou quiser solicitar um novo idioma, " -"por favor abra uma" -"Se encontrar algum problema na tradução ou quiser solicitar um novo idioma, " -"por favor abra uma" +"por favor abra umaSe encontrar algum problema na tradução ou quiser " +"solicitar um novo idioma, por favor abra uma" #: routing_templates/forms.py:29 #: templates/firewall/manage_redirect_rule.html:57 @@ -774,9 +795,8 @@ msgstr "Forçar Política de Roteamento" msgid "Custom routes should be empty when Route Type is 'Default Route'." msgstr "" "As rotas personalizadas devem estar vazias quando o Tipo de Rota é 'Rota " -"Padrão'." -"As rotas personalizadas devem estar vazias quando o Tipo de Rota é 'Rota " -"Padrão'." +"Padrão'.As rotas personalizadas devem estar vazias quando o Tipo de Rota é " +"'Rota Padrão'." #: routing_templates/forms.py:95 msgid "" @@ -784,17 +804,15 @@ msgid "" "Route'." msgstr "" "Permitir rotas personalizadas do peer não é aplicável quando o Tipo de Rota " -"é 'Rota Padrão'." -"Permitir rotas personalizadas do peer não é aplicável quando o Tipo de Rota " -"é 'Rota Padrão'." +"é 'Rota Padrão'.Permitir rotas personalizadas do peer não é aplicável 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'." -"Pelo menos uma rota deve ser fornecida quando o Tipo de Rota é " -"'Personalizada'." +"'Personalizada'.Pelo menos uma rota deve ser fornecida quando o Tipo de Rota " +"é 'Personalizada'." #: routing_templates/forms.py:113 routing_templates/forms.py:123 #, python-format @@ -803,9 +821,8 @@ msgid "" "10.0.0.0/24)." msgstr "" "Formato de rota inválido: '%(line)s'. Por favor, use a notação CIDR (ex: " -"10.0.0.0/24)." -"Formato de rota inválido: '%(line)s'. Por favor, use a notação CIDR (ex: " -"10.0.0.0/24)." +"10.0.0.0/24).Formato de rota inválido: '%(line)s'. Por favor, use a notação " +"CIDR (ex: 10.0.0.0/24)." #: routing_templates/forms.py:131 #, python-format @@ -819,8 +836,9 @@ msgid "" "'%(line)s' is not a network address. Use the network address (e.g., " "'%(net)s')." msgstr "" -"'%(line)s' não é um endereço de rede. Use o endereço da rede (ex: '%(net)s')." -"'%(line)s' não é um endereço de rede. Use o endereço da rede (ex: '%(net)s')." +"'%(line)s' não é um endereço de rede. Use o endereço da rede (ex: " +"'%(net)s').'%(line)s' não é um endereço de rede. Use o endereço da rede (ex: " +"'%(net)s')." #: routing_templates/models.py:13 msgid "Default Route (0.0.0.0/0)" @@ -838,7 +856,7 @@ msgstr "Rotas de Todos os Peers" msgid "One route per line in CIDR notation." msgstr "Uma rota por linha em notação CIDR." -#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:79 +#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:42 msgid "Routing Templates" msgstr "Modelos de Roteamento" @@ -937,100 +955,125 @@ msgstr "" "pode gerar um grande número de regras de firewall.

\n" " " -#: scheduler/forms.py:14 +#: scheduler/forms.py:17 msgid "Profile Name" msgstr "Nome do Perfil" -#: scheduler/forms.py:38 templates/scheduler/scheduleprofile_form.html:92 +#: scheduler/forms.py:74 templates/scheduler/scheduleprofile_form.html:107 msgid "Start Day" msgstr "Dia de Início" -#: scheduler/forms.py:39 templates/scheduler/scheduleprofile_form.html:93 +#: scheduler/forms.py:75 templates/scheduler/scheduleprofile_form.html:108 msgid "Start Time" msgstr "Hora de Início" -#: scheduler/forms.py:40 templates/scheduler/scheduleprofile_form.html:94 +#: scheduler/forms.py:76 templates/scheduler/scheduleprofile_form.html:109 msgid "End Day" msgstr "Dia de Término" -#: scheduler/forms.py:41 templates/scheduler/scheduleprofile_form.html:95 +#: scheduler/forms.py:77 templates/scheduler/scheduleprofile_form.html:110 msgid "End Time" msgstr "Hora de Término" -#: scheduler/models.py:9 +#: scheduler/forms.py:122 +msgid "Unable to validate overlaps: schedule profile is missing." +msgstr "" + +#: scheduler/forms.py:129 scheduler/forms.py:132 +#, fuzzy +#| msgid "" +#| "The difference between suspend and unsuspend times must be at least 5 " +#| "minutes." +msgid "The minimum duration between start and end must be at least 10 minutes." +msgstr "" +"A diferença entre os horários de suspensão e reativação deve ser de pelo " +"menos 5 minutos." + +#: scheduler/forms.py:150 +#, python-format +msgid "This time slot overlaps with an existing slot (%(start)s → %(end)s)." +msgstr "" + +#: scheduler/forms.py:160 +#, fuzzy +#| msgid "Scheduled suspension time must be at least 10 minutes in the future." +msgid "There must be at least 10 minutes between time slots." +msgstr "O agendamento de suspensão deve ser pelo menos 10 minutos no futuro." + +#: scheduler/models.py:11 msgid "Monday" msgstr "Segunda-feira" -#: scheduler/models.py:10 +#: scheduler/models.py:12 msgid "Tuesday" msgstr "Terça-feira" -#: scheduler/models.py:11 +#: scheduler/models.py:13 msgid "Wednesday" msgstr "Quarta-feira" -#: scheduler/models.py:12 +#: scheduler/models.py:14 msgid "Thursday" msgstr "Quinta-feira" -#: scheduler/models.py:13 +#: scheduler/models.py:15 msgid "Friday" msgstr "Sexta-feira" -#: scheduler/models.py:14 +#: scheduler/models.py:16 msgid "Saturday" msgstr "Sábado" -#: scheduler/models.py:15 +#: scheduler/models.py:17 msgid "Sunday" msgstr "Domingo" -#: scheduler/views.py:26 +#: scheduler/views.py:27 msgid "Edit Schedule Profile" msgstr "Editar Perfil de Agendamento" -#: scheduler/views.py:30 +#: scheduler/views.py:31 msgid "Create Schedule Profile" msgstr "Criar Perfil de Agendamento" -#: scheduler/views.py:37 +#: scheduler/views.py:44 msgid "Schedule Profile saved successfully." msgstr "Perfil de agendamento salvo com sucesso." -#: scheduler/views.py:58 +#: scheduler/views.py:68 msgid "Schedule Profile deleted successfully." msgstr "Perfil de agendamento excluído com sucesso." -#: scheduler/views.py:63 +#: scheduler/views.py:73 msgid "Delete Schedule Profile" msgstr "Excluir Perfil de Agendamento" -#: scheduler/views.py:65 +#: scheduler/views.py:75 #, python-format msgid "Are you sure you want to delete the profile \"%(name)s\"?" msgstr "Tem certeza de que deseja excluir o perfil \"%(name)s\"?" -#: scheduler/views.py:78 +#: scheduler/views.py:88 msgid "Edit Time Interval" msgstr "Editar Intervalo de Horário" -#: scheduler/views.py:82 +#: scheduler/views.py:92 msgid "Add Time Interval" msgstr "Adicionar Intervalo de Horário" -#: scheduler/views.py:92 +#: scheduler/views.py:102 msgid "Time Interval saved successfully." msgstr "Intervalo de horário salvo com sucesso." -#: scheduler/views.py:115 +#: scheduler/views.py:125 msgid "Time Interval deleted successfully." msgstr "Intervalo de horário excluído com sucesso." -#: scheduler/views.py:120 +#: scheduler/views.py:130 msgid "Delete Time Interval" msgstr "Excluir Intervalo de Horário" -#: scheduler/views.py:122 +#: scheduler/views.py:132 msgid "Are you sure you want to delete this time interval?" msgstr "Tem certeza de que deseja excluir este intervalo de horário?" @@ -1043,9 +1086,8 @@ msgid "" "Please contact your system administrator if you believe this is an error." msgstr "" "Por favor, entre em contato com o administrador do sistema se você acredita " -"que isto é um erro." -"Por favor, entre em contato com o administrador do sistema se você acredita " -"que isto é um erro." +"que isto é um erro.Por favor, entre em contato com o administrador do " +"sistema se você acredita que isto é um erro." #: templates/accounts/login.html:14 templates/user_manager/list.html:8 #: user_manager/forms.py:13 vpn_invite/forms.py:281 @@ -1071,6 +1113,7 @@ msgid "Login again" msgstr "Acessar novamente" #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 +#: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 #: vpn_invite/forms.py:79 vpn_invite/forms.py:80 vpn_invite/forms.py:81 #: vpn_invite/forms.py:82 @@ -1100,9 +1143,8 @@ msgstr "Sincronização de configuração em andamento" msgid "The worker is outdated. Please update it to the latest version." msgstr "" "O worker está desatualizado. Por favor, atualize-o para a versão mais " -"recente." -"O worker está desatualizado. Por favor, atualize-o para a versão mais " -"recente." +"recente.O worker está desatualizado. Por favor, atualize-o para a versão " +"mais recente." #: templates/cluster/workers_list.html:44 msgid "IP Lock Enabled" @@ -1110,8 +1152,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 +#: templates/wireguard/wireguard_manage_peer.html:112 +#: templates/wireguard/wireguard_manage_peer.html:121 msgid "Not set" msgstr "Não definido" @@ -1126,7 +1168,7 @@ msgstr "Visto pela última vez há mais de 10 minutos ou nunca visto." #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 #: templates/routing_templates/list.html:29 -#: templates/scheduler/scheduleprofile_form.html:108 +#: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 #: templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 @@ -1217,7 +1259,7 @@ msgstr "Eu Entendo" msgid "Clear" msgstr "Limpar" -#: templates/console/console.html:27 +#: templates/console/console.html:28 msgid "Destination Hostname or IP Address" msgstr "Endereço ou IP do Destino" @@ -1506,6 +1548,7 @@ msgstr "Tipo de Destino" #: templates/firewall/manage_redirect_rule.html:42 #: templates/firewall/manage_redirect_rule.html:48 +#: templates/scheduler/scheduleprofile_form.html:159 #: templates/vpn_invite/invite_settings.html:17 user_manager/forms.py:178 msgid "Peer" msgstr "Peer" @@ -1606,7 +1649,7 @@ msgid "Confirm Delete" msgstr "Confirmar Exclusão" #: templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:137 +#: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Cancelar" @@ -1624,31 +1667,87 @@ msgstr "Visualização de Agendamento" #: templates/scheduler/scheduleprofile_form.html:70 #: templates/wireguard/apply_route_template.html:44 +#: templates/wireguard/wireguard_manage_peer.html:36 msgid "Active" msgstr "Ativo" #: templates/scheduler/scheduleprofile_form.html:71 +#: templates/scheduler/scheduleprofile_form.html:82 msgid "Inactive" msgstr "Inativo" -#: templates/scheduler/scheduleprofile_form.html:82 +#: templates/scheduler/scheduleprofile_form.html:78 +#, fuzzy +#| msgid "Current Active Template:" +msgid "Current time" +msgstr "Modelo Ativo Atual:" + +#: templates/scheduler/scheduleprofile_form.html:79 +msgid "Becomes active at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:80 +msgid "Becomes inactive at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:97 msgid "Time Intervals" msgstr "Intervalos de Horário" -#: templates/scheduler/scheduleprofile_form.html:85 +#: templates/scheduler/scheduleprofile_form.html:100 msgid "Add Interval" msgstr "Adicionar Intervalo" -#: templates/scheduler/scheduleprofile_form.html:96 +#: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Ações" -#: templates/scheduler/scheduleprofile_form.html:120 +#: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Nenhum intervalo de horário encontrado." +#: templates/scheduler/scheduleprofile_form.html:152 +msgid "Linked Peers (Debug)" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:160 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by Schedule" +msgstr "Peers Inativos" + +#: templates/scheduler/scheduleprofile_form.html:161 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next Enable" +msgstr "Reiniciar Habilitado" + +#: templates/scheduler/scheduleprofile_form.html:162 +#, fuzzy +#| msgid "Disabled" +msgid "Next Disable" +msgstr "Desabilitado" + +#: templates/scheduler/scheduleprofile_form.html:175 +msgid "Yes" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:177 +msgid "No" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:185 +msgid "No peers linked to this profile." +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:207 +#, fuzzy +#| msgid "Show extras" +msgid "Show Peers" +msgstr "Exibir extras" + #: templates/scheduler/scheduleprofile_list.html:7 msgid "Schedule Profiles" msgstr "Perfis de Agendamento" @@ -1697,20 +1796,20 @@ msgstr "Atualizar e reiniciar o serviço" msgid "Update and reload service" msgstr "Atualizar e recarregar o serviço" -#: templates/template_parts/base_sidebar.html:59 user_manager/views.py:74 +#: templates/template_parts/base_sidebar.html:32 +msgid "Scheduler" +msgstr "Agendador" + +#: templates/template_parts/base_sidebar.html:79 user_manager/views.py:74 msgid "User Manager" msgstr "Configurar Usuários" -#: templates/template_parts/base_sidebar.html:88 +#: templates/template_parts/base_sidebar.html:98 #: templates/wireguard/peer_list/peer_preview_modal.html:133 #: vpn_invite/views.py:37 msgid "VPN Invite" msgstr "Convite para VPN" -#: templates/template_parts/base_sidebar.html:107 -msgid "Scheduler" -msgstr "Agendador" - #: templates/user_manager/list.html:9 user_manager/forms.py:20 msgid "User Level" msgstr "Nível de Acesso" @@ -1788,7 +1887,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:390 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:400 msgid "Apply Route Template" msgstr "Aplicar Modelo de Roteamento" @@ -1832,7 +1931,7 @@ msgstr "Transferência" #: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 -#: wireguard_peer/views.py:112 +#: wireguard_peer/views.py:115 msgid "Primary Server" msgstr "Servidor Primário" @@ -1852,12 +1951,12 @@ msgid "Allowed IPs" msgstr "IPs Permitidos" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:79 +#: templates/wireguard/wireguard_manage_peer.html:135 msgid "Peer Traffic" msgstr "Tráfego do Peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:96 +#: templates/wireguard/wireguard_manage_peer.html:152 msgid "No traffic history, please wait a few minutes" msgstr "Sem histórico de tráfego, por favor aguarde alguns minutos" @@ -2015,7 +2114,7 @@ msgstr "" "configuração está desatualizado." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: templates/wireguard/wireguard_manage_peer.html:104 wireguard/forms.py:18 #: wireguard_peer/forms.py:52 msgid "Public Key" msgstr "Chave Pública" @@ -2059,8 +2158,8 @@ msgid "Enter Allowed IP" msgstr "Inserir IP Permitido" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:131 -#: templates/wireguard/wireguard_manage_peer.html:220 +#: templates/wireguard/wireguard_manage_peer.html:187 +#: templates/wireguard/wireguard_manage_peer.html:276 #: wireguard_peer/forms.py:71 msgid "Priority" msgstr "Prioridade" @@ -2073,65 +2172,122 @@ 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:27 wireguard_peer/forms.py:41 +#: templates/wireguard/wireguard_manage_peer.html:27 +#, fuzzy +#| msgid "Packet State" +msgid "Peer State" +msgstr "Estado do Pacote" + +#: templates/wireguard/wireguard_manage_peer.html:31 +#, fuzzy +#| msgid "Suspend" +msgid "Suspended" +msgstr "Suspender" + +#: templates/wireguard/wireguard_manage_peer.html:40 +#, fuzzy +#| msgid "Schedule" +msgid "Scheduled suspend" +msgstr "Agendar" + +#: templates/wireguard/wireguard_manage_peer.html:43 +msgid "Scheduled unsuspend" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:54 +#, fuzzy +#| msgid "Clear Schedule" +msgid "Peer Schedule" +msgstr "Limpar Agendamento" + +#: templates/wireguard/wireguard_manage_peer.html:60 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by schedule" +msgstr "Peers Inativos" + +#: templates/wireguard/wireguard_manage_peer.html:62 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next enable" +msgstr "Reiniciar Habilitado" + +#: templates/wireguard/wireguard_manage_peer.html:65 +#, fuzzy +#| msgid "Enabled Peers" +msgid "Enabled by schedule" +msgstr "Peers Ativos" + +#: templates/wireguard/wireguard_manage_peer.html:67 +#, fuzzy +#| msgid "Disabled" +msgid "Next disable" +msgstr "Desabilitado" + +#: templates/wireguard/wireguard_manage_peer.html:71 +msgid "No profile associated" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:83 wireguard_peer/forms.py:41 msgid "Persistent Keepalive" msgstr "Conexão Persistente" -#: templates/wireguard/wireguard_manage_peer.html:40 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "Keys" msgstr "Chaves" -#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: templates/wireguard/wireguard_manage_peer.html:107 wireguard/forms.py:17 #: wireguard_peer/forms.py:53 msgid "Private Key" msgstr "Chave Privada" -#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:54 +#: templates/wireguard/wireguard_manage_peer.html:116 +#: wireguard_peer/forms.py:54 msgid "Pre-Shared Key" msgstr "Chave Pré-Compartilhada" -#: templates/wireguard/wireguard_manage_peer.html:110 +#: templates/wireguard/wireguard_manage_peer.html:166 msgid "AllowedIPs at Peer section of wg" msgstr "AllowedIPs na seção Peer do wg" -#: templates/wireguard/wireguard_manage_peer.html:111 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Peer IP Addresses and networks" msgstr "Endereços IP e redes do Peer" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Adicionar IP" -#: templates/wireguard/wireguard_manage_peer.html:129 -#: templates/wireguard/wireguard_manage_peer.html:218 +#: templates/wireguard/wireguard_manage_peer.html:185 +#: templates/wireguard/wireguard_manage_peer.html:274 msgid "Main ip address" msgstr "Endereço IP principal" -#: templates/wireguard/wireguard_manage_peer.html:144 +#: templates/wireguard/wireguard_manage_peer.html:200 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs no arquivo de configuração do cliente" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:201 msgid "Client Routing" msgstr "Roteamento do Cliente" -#: templates/wireguard/wireguard_manage_peer.html:150 +#: templates/wireguard/wireguard_manage_peer.html:206 msgid "Apply template" msgstr "Aplicar modelo" -#: templates/wireguard/wireguard_manage_peer.html:154 +#: templates/wireguard/wireguard_manage_peer.html:210 msgid "Add Client route" msgstr "Adicionar rota" -#: templates/wireguard/wireguard_manage_peer.html:167 +#: templates/wireguard/wireguard_manage_peer.html:223 msgid "Routing Template" msgstr "Modelo de Roteamento" -#: templates/wireguard/wireguard_manage_peer.html:180 +#: templates/wireguard/wireguard_manage_peer.html:236 msgid "Template Route" msgstr "Rota do Modelo" -#: templates/wireguard/wireguard_manage_peer.html:191 +#: templates/wireguard/wireguard_manage_peer.html:247 msgid "" "The client is not configured to use the VPN as the default gateway." "\\n\\nOnly the specific networks listed below are routed through the VPN." @@ -2145,7 +2301,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:194 +#: templates/wireguard/wireguard_manage_peer.html:250 msgid "" "The client is configured to use the VPN as the default gateway. \\n\\nThis " "setting routes all client internet traffic through the VPN, enhancing " @@ -2155,27 +2311,27 @@ 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:202 +#: templates/wireguard/wireguard_manage_peer.html:258 msgid "default route" msgstr "rota padrão" -#: templates/wireguard/wireguard_manage_peer.html:236 +#: templates/wireguard/wireguard_manage_peer.html:292 msgid "Peer List" msgstr "Lista de Peers" -#: templates/wireguard/wireguard_manage_peer.html:240 +#: templates/wireguard/wireguard_manage_peer.html:296 msgid "Reactivate" msgstr "Reativar" -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:298 msgid "Suspend" msgstr "Suspender" -#: templates/wireguard/wireguard_manage_peer.html:246 +#: templates/wireguard/wireguard_manage_peer.html:302 msgid "Delete Peer" msgstr "Excluir Peer" -#: templates/wireguard/wireguard_manage_peer.html:256 +#: templates/wireguard/wireguard_manage_peer.html:312 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Por favor, digite \\\"delete\\\" para remover a configuração do peer." @@ -2944,15 +3100,15 @@ msgstr "Reativar agora" msgid "Suspend now" msgstr "Suspender agora" -#: wireguard_peer/forms.py:140 +#: wireguard_peer/forms.py:139 msgid "Schedule" msgstr "Agendar" -#: wireguard_peer/forms.py:144 +#: wireguard_peer/forms.py:143 msgid "Clear Schedule" msgstr "Limpar Agendamento" -#: wireguard_peer/forms.py:182 +#: wireguard_peer/forms.py:181 msgid "" "The difference between suspend and unsuspend times must be at least 5 " "minutes." @@ -2960,71 +3116,71 @@ msgstr "" "A diferença entre os horários de suspensão e reativação deve ser de pelo " "menos 5 minutos." -#: wireguard_peer/forms.py:186 +#: wireguard_peer/forms.py:185 msgid "Scheduled suspension time must be at least 10 minutes in the future." msgstr "O agendamento de suspensão deve ser pelo menos 10 minutos no futuro." -#: wireguard_peer/forms.py:189 +#: wireguard_peer/forms.py:188 msgid "Scheduled unsuspension time must be at least 10 minutes in the future." msgstr "O agendamento de reativação deve ser pelo menos 10 minutos no futuro." -#: wireguard_peer/views.py:58 +#: wireguard_peer/views.py:61 msgid "Disabled WireGuard Peer List" msgstr "Lista de Peers do WireGuard Desativados" -#: wireguard_peer/views.py:61 +#: wireguard_peer/views.py:64 msgid "WireGuard Peer List" msgstr "Lista de Peers do WireGuard" -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:201 msgid "Peer created|Peer created successfully." msgstr "Peer adicionado|Peer adicionado com sucesso." -#: wireguard_peer/views.py:203 +#: wireguard_peer/views.py:206 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:226 +#: wireguard_peer/views.py:229 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer excluído|Peer excluído com sucesso." -#: wireguard_peer/views.py:229 +#: wireguard_peer/views.py:232 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:231 +#: wireguard_peer/views.py:234 msgid "Peer Configuration: " msgstr "Configuração do Peer: " -#: wireguard_peer/views.py:269 +#: wireguard_peer/views.py:279 msgid "Peer updated|Peer updated successfully." msgstr "Peer atualizado|Peer atualizado com sucesso." -#: wireguard_peer/views.py:272 +#: wireguard_peer/views.py:282 msgid "Edit Peer" msgstr "Editar Peer" -#: wireguard_peer/views.py:274 +#: wireguard_peer/views.py:284 msgid "Edit Peer Name" msgstr "Editar Nome do Peer" -#: wireguard_peer/views.py:276 +#: wireguard_peer/views.py:286 msgid "Edit Keepalive" msgstr "Editar Keepalive" -#: wireguard_peer/views.py:278 +#: wireguard_peer/views.py:288 msgid "Edit Keys" msgstr "Editar Chaves" -#: wireguard_peer/views.py:310 +#: wireguard_peer/views.py:320 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:315 +#: wireguard_peer/views.py:325 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -3032,27 +3188,27 @@ msgstr "" "Erro ao excluir endereço IP|Mensagem de confirmação inválida. Digite " "\"delete\" para confirmar." -#: wireguard_peer/views.py:320 +#: wireguard_peer/views.py:330 msgid "Manage client route" msgstr "Gerenciar rota do cliente" -#: wireguard_peer/views.py:322 +#: wireguard_peer/views.py:332 msgid "Manage IP address or Network" msgstr "Gerenciar Endereço IP ou Rede" -#: wireguard_peer/views.py:335 +#: wireguard_peer/views.py:345 msgid "IP address updated|IP address updated successfully." msgstr "Endereço IP atualizado|Endereço IP atualizado com sucesso." -#: wireguard_peer/views.py:337 +#: wireguard_peer/views.py:347 msgid "IP address added|IP address added successfully." msgstr "Endereço IP adicionado|Endereço IP adicionado com sucesso." -#: wireguard_peer/views.py:369 +#: wireguard_peer/views.py:379 msgid "Route template unlinked successfully." msgstr "Modelo de roteamento desvinculado com sucesso." -#: wireguard_peer/views.py:379 +#: wireguard_peer/views.py:389 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -3060,15 +3216,15 @@ 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:386 +#: wireguard_peer/views.py:396 msgid "Route template applied successfully." msgstr "Modelo de roteamento aplicado com sucesso." -#: wireguard_peer/views.py:419 +#: wireguard_peer/views.py:429 msgid "Peer suspension/unsuspension scheduled successfully." msgstr "Suspensão/reativação de peer agendada com sucesso." -#: wireguard_peer/views.py:423 +#: wireguard_peer/views.py:431 msgid "" "Error scheduling peer suspension/unsuspension. Please correct the errors " "below." @@ -3076,27 +3232,47 @@ msgstr "" "Erro ao agendar a suspensão/reativação do peer. Por favor, corrija os erros " "abaixo." -#: wireguard_peer/views.py:430 +#: wireguard_peer/views.py:438 msgid "Schedule cleared successfully." msgstr "Agendamento limpo com sucesso." -#: wireguard_peer/views.py:438 +#: wireguard_peer/views.py:452 msgid "Peer suspended successfully." msgstr "Peer suspenso com sucesso." -#: wireguard_peer/views.py:446 +#: wireguard_peer/views.py:454 +msgid "Peer suspended, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:464 msgid "Peer reactivated successfully." msgstr "Peer reativado com sucesso." -#: wireguard_peer/views.py:450 +#: wireguard_peer/views.py:466 +msgid "Peer reactivated, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:469 msgid "Invalid action." msgstr "Ação inválida." -#: wireguard_peer/views.py:455 +#: wireguard_peer/views.py:474 msgid "Suspend / Reactivate Peer" msgstr "Suspender / Reativar Peer" -#: wireguard_tools/views.py:181 +#: wireguard_peer/views.py:497 +#, fuzzy +#| msgid "Schedule Profile deleted successfully." +msgid "Peer scheduling profile updated successfully." +msgstr "Perfil de agendamento excluído com sucesso." + +#: wireguard_peer/views.py:503 +#, fuzzy +#| msgid "Delete Schedule Profile" +msgid "Manage Peer Schedule Profile" +msgstr "Excluir Perfil de Agendamento" + +#: wireguard_tools/views.py:237 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -3104,7 +3280,7 @@ msgstr "" "Exportação bem-sucedida!|Os arquivos de configuração do WireGuard foram " "exportados para /etc/wireguard/." -#: wireguard_tools/views.py:183 +#: wireguard_tools/views.py:239 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -3112,19 +3288,19 @@ msgstr "" "Exportação bem-sucedida!|Os arquivos de configuração do WireGuard foram " "exportados para /etc/wireguard/. Não se esqueça de reiniciar as interfaces." -#: wireguard_tools/views.py:285 +#: wireguard_tools/views.py:341 msgid "Error reloading" msgstr "Erro ao recarregar" -#: wireguard_tools/views.py:297 +#: wireguard_tools/views.py:353 msgid "Error stopping" msgstr "Erro ao parar" -#: wireguard_tools/views.py:302 +#: wireguard_tools/views.py:358 msgid "Error starting" msgstr "Erro ao iniciar" -#: wireguard_tools/views.py:309 +#: wireguard_tools/views.py:365 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -3134,19 +3310,19 @@ msgstr "" "Verifique se os peers estão funcionando como esperado. Se você encontrar " "algum problema, por favor, relate-o." -#: wireguard_tools/views.py:310 +#: wireguard_tools/views.py:366 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard recarregado|O serviço WireGuard foi recarregado." -#: wireguard_tools/views.py:312 +#: wireguard_tools/views.py:368 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard reiniciado|O serviço WireGuard foi reiniciado." -#: wireguard_tools/views.py:315 +#: wireguard_tools/views.py:371 msgid "Errors encountered|Error processing one or more interfaces." msgstr "Erros encontrados|Erro ao processar uma ou mais interfaces." -#: wireguard_tools/views.py:318 +#: wireguard_tools/views.py:374 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "Nenhuma interface encontrada|Nenhuma interface WireGuard foi encontrada para " diff --git a/locale/sk/LC_MESSAGES/django.po b/locale/sk/LC_MESSAGES/django.po index 14d5d6e..0499e47 100644 --- a/locale/sk/LC_MESSAGES/django.po +++ b/locale/sk/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-02-03 14:49-0300\n" +"POT-Creation-Date: 2026-02-09 13:51-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -74,7 +74,8 @@ msgstr "Token" #: templates/wireguard/peer_list/peer_preview_modal.html:79 #: templates/wireguard/wireguard_manage_ip.html:42 user_manager/forms.py:49 #: user_manager/forms.py:180 vpn_invite/forms.py:192 vpn_invite/forms.py:326 -#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:157 +#: wireguard/forms.py:51 wireguard_peer/forms.py:27 wireguard_peer/forms.py:156 +#: wireguard_peer/forms.py:210 msgid "Back" msgstr "Späť" @@ -82,7 +83,7 @@ msgstr "Späť" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/scheduler/scheduleprofile_form.html:112 +#: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 #: templates/wireguard/wireguard_manage_ip.html:43 user_manager/forms.py:48 @@ -91,14 +92,15 @@ msgid "Delete" msgstr "Vymazať" #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:83 -#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:61 +#: dns/forms.py:134 routing_templates/forms.py:70 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 -#: templates/scheduler/scheduleprofile_form.html:134 +#: templates/scheduler/scheduleprofile_form.html:200 #: templates/wireguard/wireguard_manage_ip.html:41 user_manager/forms.py:98 #: user_manager/forms.py:205 vpn_invite/forms.py:191 vpn_invite/forms.py:325 #: wireguard/forms.py:100 wireguard_peer/forms.py:26 +#: wireguard_peer/forms.py:205 msgid "Save" msgstr "Uložiť" @@ -165,7 +167,7 @@ msgstr "Vyžaduje sa aktualizácia workera." msgid "Access Denied" msgstr "Prístup zamietnutý" -#: cluster/views.py:21 templates/template_parts/base_sidebar.html:97 +#: cluster/views.py:21 templates/template_parts/base_sidebar.html:107 msgid "Cluster" msgstr "Cluster" @@ -284,46 +286,64 @@ msgstr "" "názvu, adresy servera, umiestnenia alebo ich kombinácie.

\n" " " -#: console/views.py:25 console/views.py:57 user_manager/forms.py:16 +#: console/views.py:27 console/views.py:67 user_manager/forms.py:16 msgid "Console" msgstr "Konzola" -#: console/views.py:27 +#: console/views.py:29 msgid "iptables list" msgstr "Zoznam iptables pravidiel" -#: console/views.py:33 +#: console/views.py:35 msgid "running processes" msgstr "Bežiace procesy" -#: console/views.py:36 +#: console/views.py:38 msgid "WireGuard show" msgstr "Stav WireGuard" -#: console/views.py:39 +#: console/views.py:40 +msgid "Enhanced filter is enabled. This command is not available." +msgstr "Rozšírený filter je povolený. Tento príkaz nie je dostupný." + +#: console/views.py:46 msgid "Memory usage" msgstr "Využitie pamäte" -#: console/views.py:42 +#: console/views.py:49 msgid "Routing table" msgstr "Smerovacia tabuľka" -#: console/views.py:54 +#: console/views.py:61 msgid "DNS container test script" msgstr "Testovací skript DNS kontajnera" -#: console/views.py:57 +#: console/views.py:64 +#, fuzzy +#| msgid "WireGuard Status" +msgid "Flush Wireguard status cache" +msgstr "Stav WireGuard" + +#: console/views.py:67 msgid "Invalid command" msgstr "Neplatný príkaz" -#: console/views.py:64 +#: console/views.py:78 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache for worker: " +msgstr "Režim klastra vyžaduje povolenie vyrovnávacej pamäte stavu WireGuard." + +#: console/views.py:83 +#, fuzzy +#| msgid "Cluster mode requires WireGuard status cache to be enabled." +msgid "Flushed WireGuard status cache entries: " +msgstr "Režim klastra vyžaduje povolenie vyrovnávacej pamäte stavu WireGuard." + +#: console/views.py:87 msgid "Invalid target" msgstr "Neplatný cieľ" -#: console/views.py:69 -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:24 msgid "Primary DNS" msgstr "Primárny DNS" @@ -769,7 +789,7 @@ msgstr "Trasy od Všetkých Peerov" msgid "One route per line in CIDR notation." msgstr "Jedna trasa na riadok v notácii CIDR." -#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:79 +#: routing_templates/views.py:16 templates/template_parts/base_sidebar.html:42 msgid "Routing Templates" msgstr "Smerovacie Šablóny" @@ -869,100 +889,123 @@ msgstr "" "tejto možnosti vygenerovať veľký počet pravidiel firewallu.

\n" " " -#: scheduler/forms.py:14 +#: scheduler/forms.py:17 msgid "Profile Name" msgstr "Názov profilu" -#: scheduler/forms.py:38 templates/scheduler/scheduleprofile_form.html:92 +#: scheduler/forms.py:74 templates/scheduler/scheduleprofile_form.html:107 msgid "Start Day" msgstr "Deň začiatku" -#: scheduler/forms.py:39 templates/scheduler/scheduleprofile_form.html:93 +#: scheduler/forms.py:75 templates/scheduler/scheduleprofile_form.html:108 msgid "Start Time" msgstr "Čas začiatku" -#: scheduler/forms.py:40 templates/scheduler/scheduleprofile_form.html:94 +#: scheduler/forms.py:76 templates/scheduler/scheduleprofile_form.html:109 msgid "End Day" msgstr "Deň ukončenia" -#: scheduler/forms.py:41 templates/scheduler/scheduleprofile_form.html:95 +#: scheduler/forms.py:77 templates/scheduler/scheduleprofile_form.html:110 msgid "End Time" msgstr "Čas ukončenia" -#: scheduler/models.py:9 +#: scheduler/forms.py:122 +msgid "Unable to validate overlaps: schedule profile is missing." +msgstr "" + +#: scheduler/forms.py:129 scheduler/forms.py:132 +#, fuzzy +#| msgid "" +#| "The difference between suspend and unsuspend times must be at least 5 " +#| "minutes." +msgid "The minimum duration between start and end must be at least 10 minutes." +msgstr "Rozdiel medzi časom pozastavenia a reaktivácie musí byť aspoň 5 minút." + +#: scheduler/forms.py:150 +#, python-format +msgid "This time slot overlaps with an existing slot (%(start)s → %(end)s)." +msgstr "" + +#: scheduler/forms.py:160 +#, fuzzy +#| msgid "Scheduled suspension time must be at least 10 minutes in the future." +msgid "There must be at least 10 minutes between time slots." +msgstr "Plánovaný čas pozastavenia musí byť aspoň 10 minút v budúcnosti." + +#: scheduler/models.py:11 msgid "Monday" msgstr "Pondelok" -#: scheduler/models.py:10 +#: scheduler/models.py:12 msgid "Tuesday" msgstr "Utorok" -#: scheduler/models.py:11 +#: scheduler/models.py:13 msgid "Wednesday" msgstr "Streda" -#: scheduler/models.py:12 +#: scheduler/models.py:14 msgid "Thursday" msgstr "Štvrtok" -#: scheduler/models.py:13 +#: scheduler/models.py:15 msgid "Friday" msgstr "Piatok" -#: scheduler/models.py:14 +#: scheduler/models.py:16 msgid "Saturday" msgstr "Sobota" -#: scheduler/models.py:15 +#: scheduler/models.py:17 msgid "Sunday" msgstr "Nedeľa" -#: scheduler/views.py:26 +#: scheduler/views.py:27 msgid "Edit Schedule Profile" msgstr "Upraviť profil plánovania" -#: scheduler/views.py:30 +#: scheduler/views.py:31 msgid "Create Schedule Profile" msgstr "Vytvoriť profil plánovania" -#: scheduler/views.py:37 +#: scheduler/views.py:44 msgid "Schedule Profile saved successfully." msgstr "Profil plánovania bol úspešne uložený." -#: scheduler/views.py:58 +#: scheduler/views.py:68 msgid "Schedule Profile deleted successfully." msgstr "Profil plánovania bol úspešne vymazaný." -#: scheduler/views.py:63 +#: scheduler/views.py:73 msgid "Delete Schedule Profile" msgstr "Odstrániť profil plánovania" -#: scheduler/views.py:65 +#: scheduler/views.py:75 #, python-format msgid "Are you sure you want to delete the profile \"%(name)s\"?" msgstr "Ste si istí, že chcete odstrániť profil \"%(name)s\"?" -#: scheduler/views.py:78 +#: scheduler/views.py:88 msgid "Edit Time Interval" msgstr "Upraviť časový interval" -#: scheduler/views.py:82 +#: scheduler/views.py:92 msgid "Add Time Interval" msgstr "Pridať časový interval" -#: scheduler/views.py:92 +#: scheduler/views.py:102 msgid "Time Interval saved successfully." msgstr "Časový interval bol úspešne uložený." -#: scheduler/views.py:115 +#: scheduler/views.py:125 msgid "Time Interval deleted successfully." msgstr "Časový interval bol úspešne vymazaný." -#: scheduler/views.py:120 +#: scheduler/views.py:130 msgid "Delete Time Interval" msgstr "Vymazať časový interval" -#: scheduler/views.py:122 +#: scheduler/views.py:132 msgid "Are you sure you want to delete this time interval?" msgstr "Naozaj chcete odstrániť tento časový interval?" @@ -999,6 +1042,7 @@ msgid "Login again" msgstr "Prihlásiť sa znovu" #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 +#: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 #: vpn_invite/forms.py:79 vpn_invite/forms.py:80 vpn_invite/forms.py:81 #: vpn_invite/forms.py:82 @@ -1034,8 +1078,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 +#: templates/wireguard/wireguard_manage_peer.html:112 +#: templates/wireguard/wireguard_manage_peer.html:121 msgid "Not set" msgstr "Nenastavené" @@ -1050,7 +1094,7 @@ msgstr "Naposledy videný pred viac ako 10 minútami alebo nikdy videný." #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 #: templates/routing_templates/list.html:29 -#: templates/scheduler/scheduleprofile_form.html:108 +#: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 #: templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 @@ -1142,7 +1186,7 @@ msgstr "Rozumiem" msgid "Clear" msgstr "Vymazať" -#: templates/console/console.html:27 +#: templates/console/console.html:28 msgid "Destination Hostname or IP Address" msgstr "Cieľové meno hostiteľa alebo IP adresa" @@ -1430,6 +1474,7 @@ msgstr "Typ cieľa" #: templates/firewall/manage_redirect_rule.html:42 #: templates/firewall/manage_redirect_rule.html:48 +#: templates/scheduler/scheduleprofile_form.html:159 #: templates/vpn_invite/invite_settings.html:17 user_manager/forms.py:178 msgid "Peer" msgstr "Peer" @@ -1529,7 +1574,7 @@ msgid "Confirm Delete" msgstr "Potvrdiť odstránenie" #: templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:137 +#: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Zrušiť" @@ -1547,31 +1592,87 @@ msgstr "Vizualizácia plánovania" #: templates/scheduler/scheduleprofile_form.html:70 #: templates/wireguard/apply_route_template.html:44 +#: templates/wireguard/wireguard_manage_peer.html:36 msgid "Active" msgstr "Aktívne" #: templates/scheduler/scheduleprofile_form.html:71 +#: templates/scheduler/scheduleprofile_form.html:82 msgid "Inactive" msgstr "Neaktívne" -#: templates/scheduler/scheduleprofile_form.html:82 +#: templates/scheduler/scheduleprofile_form.html:78 +#, fuzzy +#| msgid "Current Active Template:" +msgid "Current time" +msgstr "Aktuálna aktívna šablóna:" + +#: templates/scheduler/scheduleprofile_form.html:79 +msgid "Becomes active at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:80 +msgid "Becomes inactive at" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:97 msgid "Time Intervals" msgstr "Časové intervaly" -#: templates/scheduler/scheduleprofile_form.html:85 +#: templates/scheduler/scheduleprofile_form.html:100 msgid "Add Interval" msgstr "Pridať interval" -#: templates/scheduler/scheduleprofile_form.html:96 +#: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Akcie" -#: templates/scheduler/scheduleprofile_form.html:120 +#: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Nenašli sa žiadne časové intervaly." +#: templates/scheduler/scheduleprofile_form.html:152 +msgid "Linked Peers (Debug)" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:160 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by Schedule" +msgstr "Zakázané Peery" + +#: templates/scheduler/scheduleprofile_form.html:161 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next Enable" +msgstr "Reštart povolený" + +#: templates/scheduler/scheduleprofile_form.html:162 +#, fuzzy +#| msgid "Disabled" +msgid "Next Disable" +msgstr "Zakázané" + +#: templates/scheduler/scheduleprofile_form.html:175 +msgid "Yes" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:177 +msgid "No" +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:185 +msgid "No peers linked to this profile." +msgstr "" + +#: templates/scheduler/scheduleprofile_form.html:207 +#, fuzzy +#| msgid "Show extras" +msgid "Show Peers" +msgstr "Zobraziť dodatky" + #: templates/scheduler/scheduleprofile_list.html:7 msgid "Schedule Profiles" msgstr "Profily plánovania" @@ -1620,20 +1721,20 @@ msgstr "Aktualizovať a reštartovať službu" msgid "Update and reload service" msgstr "Aktualizovať a znovu načítať službu" -#: templates/template_parts/base_sidebar.html:59 user_manager/views.py:74 +#: templates/template_parts/base_sidebar.html:32 +msgid "Scheduler" +msgstr "Plánovač" + +#: templates/template_parts/base_sidebar.html:79 user_manager/views.py:74 msgid "User Manager" msgstr "Správa používateľov" -#: templates/template_parts/base_sidebar.html:88 +#: templates/template_parts/base_sidebar.html:98 #: templates/wireguard/peer_list/peer_preview_modal.html:133 #: vpn_invite/views.py:37 msgid "VPN Invite" msgstr "VPN pozvánka" -#: templates/template_parts/base_sidebar.html:107 -msgid "Scheduler" -msgstr "Plánovač" - #: templates/user_manager/list.html:9 user_manager/forms.py:20 msgid "User Level" msgstr "Úroveň používateľa" @@ -1711,7 +1812,7 @@ msgstr "Nastavenia e-mailu" msgid "Invite Settings" msgstr "Nastavenia pozvánky" -#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:390 +#: templates/wireguard/apply_route_template.html:8 wireguard_peer/views.py:400 msgid "Apply Route Template" msgstr "Použiť smerovaciu šablónu" @@ -1755,7 +1856,7 @@ msgstr "Prenos" #: templates/wireguard/peer_list/peer_data.html:44 #: templates/wireguard/peer_list/script_wireguard_status_update.html:146 -#: wireguard_peer/views.py:112 +#: wireguard_peer/views.py:115 msgid "Primary Server" msgstr "Primárny server" @@ -1775,12 +1876,12 @@ msgid "Allowed IPs" msgstr "Povolené IP adresy" #: templates/wireguard/peer_list/peer_preview_modal.html:45 -#: templates/wireguard/wireguard_manage_peer.html:79 +#: templates/wireguard/wireguard_manage_peer.html:135 msgid "Peer Traffic" msgstr "Komunikácia peer" #: templates/wireguard/peer_list/peer_preview_modal.html:61 -#: templates/wireguard/wireguard_manage_peer.html:96 +#: templates/wireguard/wireguard_manage_peer.html:152 msgid "No traffic history, please wait a few minutes" msgstr "Žiadna história komunikácie, počkajte niekoľko minút" @@ -1938,7 +2039,7 @@ msgstr "" "súbor je zastaraný." #: templates/wireguard/server_detail.html:17 -#: templates/wireguard/wireguard_manage_peer.html:48 wireguard/forms.py:18 +#: templates/wireguard/wireguard_manage_peer.html:104 wireguard/forms.py:18 #: wireguard_peer/forms.py:52 msgid "Public Key" msgstr "Verejný kľúč" @@ -1977,14 +2078,13 @@ msgstr "Vytvoriť inštanciu" msgid "No WireGuard instances found." msgstr "Nenašli sa žiadne inštancie WireGuard." - #: templates/wireguard/wireguard_manage_ip.html:18 msgid "Enter Allowed IP" msgstr "Zadajte povolenú IP" #: templates/wireguard/wireguard_manage_ip.html:34 -#: templates/wireguard/wireguard_manage_peer.html:131 -#: templates/wireguard/wireguard_manage_peer.html:220 +#: templates/wireguard/wireguard_manage_peer.html:187 +#: templates/wireguard/wireguard_manage_peer.html:276 #: wireguard_peer/forms.py:71 msgid "Priority" msgstr "Priorita" @@ -1997,65 +2097,122 @@ 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:27 wireguard_peer/forms.py:41 +#: templates/wireguard/wireguard_manage_peer.html:27 +#, fuzzy +#| msgid "Packet State" +msgid "Peer State" +msgstr "Stav paketu" + +#: templates/wireguard/wireguard_manage_peer.html:31 +#, fuzzy +#| msgid "Suspend" +msgid "Suspended" +msgstr "Pozastaviť" + +#: templates/wireguard/wireguard_manage_peer.html:40 +#, fuzzy +#| msgid "Schedule" +msgid "Scheduled suspend" +msgstr "Naplánovať" + +#: templates/wireguard/wireguard_manage_peer.html:43 +msgid "Scheduled unsuspend" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:54 +#, fuzzy +#| msgid "Clear Schedule" +msgid "Peer Schedule" +msgstr "Vymazať plán" + +#: templates/wireguard/wireguard_manage_peer.html:60 +#, fuzzy +#| msgid "Disabled Peers" +msgid "Disabled by schedule" +msgstr "Zakázané Peery" + +#: templates/wireguard/wireguard_manage_peer.html:62 +#, fuzzy +#| msgid "Restart Enabled" +msgid "Next enable" +msgstr "Reštart povolený" + +#: templates/wireguard/wireguard_manage_peer.html:65 +#, fuzzy +#| msgid "Enabled Peers" +msgid "Enabled by schedule" +msgstr "Povolené Peery" + +#: templates/wireguard/wireguard_manage_peer.html:67 +#, fuzzy +#| msgid "Disabled" +msgid "Next disable" +msgstr "Zakázané" + +#: templates/wireguard/wireguard_manage_peer.html:71 +msgid "No profile associated" +msgstr "" + +#: templates/wireguard/wireguard_manage_peer.html:83 wireguard_peer/forms.py:41 msgid "Persistent Keepalive" msgstr "Trvalý keepalive" -#: templates/wireguard/wireguard_manage_peer.html:40 +#: templates/wireguard/wireguard_manage_peer.html:96 msgid "Keys" msgstr "Kľúče" -#: templates/wireguard/wireguard_manage_peer.html:51 wireguard/forms.py:17 +#: templates/wireguard/wireguard_manage_peer.html:107 wireguard/forms.py:17 #: wireguard_peer/forms.py:53 msgid "Private Key" msgstr "Súkromný kľúč" -#: templates/wireguard/wireguard_manage_peer.html:60 wireguard_peer/forms.py:54 +#: templates/wireguard/wireguard_manage_peer.html:116 +#: wireguard_peer/forms.py:54 msgid "Pre-Shared Key" msgstr "Vopred zdieľaný kľúč" -#: templates/wireguard/wireguard_manage_peer.html:110 +#: templates/wireguard/wireguard_manage_peer.html:166 msgid "AllowedIPs at Peer section of wg" msgstr "Povolené IP adresy v peer sekcii wg" -#: templates/wireguard/wireguard_manage_peer.html:111 +#: templates/wireguard/wireguard_manage_peer.html:167 msgid "Peer IP Addresses and networks" msgstr "IP adresy a siete peer" -#: templates/wireguard/wireguard_manage_peer.html:115 +#: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Pridať IP adresu" -#: templates/wireguard/wireguard_manage_peer.html:129 -#: templates/wireguard/wireguard_manage_peer.html:218 +#: templates/wireguard/wireguard_manage_peer.html:185 +#: templates/wireguard/wireguard_manage_peer.html:274 msgid "Main ip address" msgstr "Hlavná IP adresa" -#: templates/wireguard/wireguard_manage_peer.html:144 +#: templates/wireguard/wireguard_manage_peer.html:200 msgid "AllowedIPs at client configuration file" msgstr "AllowedIPs v konfiguračnom súbore klienta" -#: templates/wireguard/wireguard_manage_peer.html:145 +#: templates/wireguard/wireguard_manage_peer.html:201 msgid "Client Routing" msgstr "Smerovanie klienta" -#: templates/wireguard/wireguard_manage_peer.html:150 +#: templates/wireguard/wireguard_manage_peer.html:206 msgid "Apply template" msgstr "Použiť šablónu" -#: templates/wireguard/wireguard_manage_peer.html:154 +#: templates/wireguard/wireguard_manage_peer.html:210 msgid "Add Client route" msgstr "Pridať klientskú trasu" -#: templates/wireguard/wireguard_manage_peer.html:167 +#: templates/wireguard/wireguard_manage_peer.html:223 msgid "Routing Template" msgstr "Smerovacia šablóna" -#: templates/wireguard/wireguard_manage_peer.html:180 +#: templates/wireguard/wireguard_manage_peer.html:236 msgid "Template Route" msgstr "Trasa šablóny" -#: templates/wireguard/wireguard_manage_peer.html:191 +#: templates/wireguard/wireguard_manage_peer.html:247 msgid "" "The client is not configured to use the VPN as the default gateway." "\\n\\nOnly the specific networks listed below are routed through the VPN." @@ -2069,7 +2226,7 @@ msgstr "" "musieť manuálne aktualizovať konfiguračný súbor klienta, aby odrážal tieto " "nastavenia." -#: templates/wireguard/wireguard_manage_peer.html:194 +#: templates/wireguard/wireguard_manage_peer.html:250 msgid "" "The client is configured to use the VPN as the default gateway. \\n\\nThis " "setting routes all client internet traffic through the VPN, enhancing " @@ -2079,27 +2236,27 @@ 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:202 +#: templates/wireguard/wireguard_manage_peer.html:258 msgid "default route" msgstr "predvolená trasa" -#: templates/wireguard/wireguard_manage_peer.html:236 +#: templates/wireguard/wireguard_manage_peer.html:292 msgid "Peer List" msgstr "Zoznam Peerov" -#: templates/wireguard/wireguard_manage_peer.html:240 +#: templates/wireguard/wireguard_manage_peer.html:296 msgid "Reactivate" msgstr "Reaktivovať" -#: templates/wireguard/wireguard_manage_peer.html:242 +#: templates/wireguard/wireguard_manage_peer.html:298 msgid "Suspend" msgstr "Pozastaviť" -#: templates/wireguard/wireguard_manage_peer.html:246 +#: templates/wireguard/wireguard_manage_peer.html:302 msgid "Delete Peer" msgstr "Vymazať peer" -#: templates/wireguard/wireguard_manage_peer.html:256 +#: templates/wireguard/wireguard_manage_peer.html:312 msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Prosím napíšte \\\"delete\\\" pre odstránenie konfigurácie peer." @@ -2859,89 +3016,86 @@ msgstr "Reaktivovať teraz" msgid "Suspend now" msgstr "Pozastaviť teraz" -#: wireguard_peer/forms.py:140 +#: wireguard_peer/forms.py:139 msgid "Schedule" msgstr "Naplánovať" -#: wireguard_peer/forms.py:144 +#: wireguard_peer/forms.py:143 msgid "Clear Schedule" msgstr "Vymazať plán" -#: wireguard_peer/forms.py:182 +#: wireguard_peer/forms.py:181 msgid "" "The difference between suspend and unsuspend times must be at least 5 " "minutes." -msgstr "" -"Rozdiel medzi časom pozastavenia a reaktivácie musí byť aspoň 5 minút." +msgstr "Rozdiel medzi časom pozastavenia a reaktivácie musí byť aspoň 5 minút." -#: wireguard_peer/forms.py:186 +#: wireguard_peer/forms.py:185 msgid "Scheduled suspension time must be at least 10 minutes in the future." -msgstr "" -"Plánovaný čas pozastavenia musí byť aspoň 10 minút v budúcnosti." +msgstr "Plánovaný čas pozastavenia musí byť aspoň 10 minút v budúcnosti." -#: wireguard_peer/forms.py:189 +#: wireguard_peer/forms.py:188 msgid "Scheduled unsuspension time must be at least 10 minutes in the future." -msgstr "" -"Plánovaný čas reaktivácie musí byť aspoň 10 minút v budúcnosti." +msgstr "Plánovaný čas reaktivácie musí byť aspoň 10 minút v budúcnosti." -#: wireguard_peer/views.py:58 +#: wireguard_peer/views.py:61 msgid "Disabled WireGuard Peer List" msgstr "Zoznam zakázaných WireGuard peerov" -#: wireguard_peer/views.py:61 +#: wireguard_peer/views.py:64 msgid "WireGuard Peer List" msgstr "Zoznam WireGuard peerov" -#: wireguard_peer/views.py:198 +#: wireguard_peer/views.py:201 msgid "Peer created|Peer created successfully." msgstr "Peer vytvorený|Peer bol úspešne vytvorený." -#: wireguard_peer/views.py:203 +#: wireguard_peer/views.py:206 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:226 +#: wireguard_peer/views.py:229 msgid "Peer deleted|Peer deleted successfully." msgstr "Peer vymazaný|Peer bol úspešne vymazaný." -#: wireguard_peer/views.py:229 +#: wireguard_peer/views.py:232 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:231 +#: wireguard_peer/views.py:234 msgid "Peer Configuration: " msgstr "Konfigurácia peera: " -#: wireguard_peer/views.py:269 +#: wireguard_peer/views.py:279 msgid "Peer updated|Peer updated successfully." msgstr "Peer aktualizovaný|Peer bol úspešne aktualizovaný." -#: wireguard_peer/views.py:272 +#: wireguard_peer/views.py:282 msgid "Edit Peer" msgstr "Upraviť Peera" -#: wireguard_peer/views.py:274 +#: wireguard_peer/views.py:284 msgid "Edit Peer Name" msgstr "Upraviť Názov Peera" -#: wireguard_peer/views.py:276 +#: wireguard_peer/views.py:286 msgid "Edit Keepalive" msgstr "Upraviť Keepalive" -#: wireguard_peer/views.py:278 +#: wireguard_peer/views.py:288 msgid "Edit Keys" msgstr "Upraviť Kľúče" -#: wireguard_peer/views.py:310 +#: wireguard_peer/views.py:320 msgid "IP address deleted|IP address deleted successfully." msgstr "IP adresa vymazaná|IP adresa bola úspešne vymazaná." -#: wireguard_peer/views.py:315 +#: wireguard_peer/views.py:325 msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." @@ -2949,27 +3103,27 @@ msgstr "" "Chyba pri vymazávaní IP adresy|Neplatná potvrdzovacia správa. Napíšte " "\"delete\" pre potvrdenie." -#: wireguard_peer/views.py:320 +#: wireguard_peer/views.py:330 msgid "Manage client route" msgstr "Spravovať klientskú trasu" -#: wireguard_peer/views.py:322 +#: wireguard_peer/views.py:332 msgid "Manage IP address or Network" msgstr "Spravovať IP adresu alebo sieť" -#: wireguard_peer/views.py:335 +#: wireguard_peer/views.py:345 msgid "IP address updated|IP address updated successfully." msgstr "IP adresa aktualizovaná|IP adresa bola úspešne aktualizovaná." -#: wireguard_peer/views.py:337 +#: wireguard_peer/views.py:347 msgid "IP address added|IP address added successfully." msgstr "IP adresa pridaná|IP adresa bola úspešne pridaná." -#: wireguard_peer/views.py:369 +#: wireguard_peer/views.py:379 msgid "Route template unlinked successfully." msgstr "Prepojenie so smerovacou šablónou bolo úspešne zrušené." -#: wireguard_peer/views.py:379 +#: wireguard_peer/views.py:389 msgid "" "Cannot apply template: This template does not allow custom routes, but the " "peer has custom client routes defined." @@ -2977,42 +3131,62 @@ 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:386 +#: wireguard_peer/views.py:396 msgid "Route template applied successfully." msgstr "Smerovacia šablóna bola úspešne použitá." -#: wireguard_peer/views.py:419 +#: wireguard_peer/views.py:429 msgid "Peer suspension/unsuspension scheduled successfully." msgstr "Pozastavenie/reaktivácia peera úspešne naplánovaná." -#: wireguard_peer/views.py:423 +#: wireguard_peer/views.py:431 msgid "" "Error scheduling peer suspension/unsuspension. Please correct the errors " "below." msgstr "" "Chyba pri plánovaní pozastavenia/reaktivácie peera. Opravte chyby nižšie." -#: wireguard_peer/views.py:430 +#: wireguard_peer/views.py:438 msgid "Schedule cleared successfully." msgstr "Plán úspešne vymazaný." -#: wireguard_peer/views.py:438 +#: wireguard_peer/views.py:452 msgid "Peer suspended successfully." msgstr "Peer úspešne pozastavený." -#: wireguard_peer/views.py:446 +#: wireguard_peer/views.py:454 +msgid "Peer suspended, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:464 msgid "Peer reactivated successfully." msgstr "Peer úspešne reaktivovaný." -#: wireguard_peer/views.py:450 +#: wireguard_peer/views.py:466 +msgid "Peer reactivated, but failed to reload WireGuard interface: " +msgstr "" + +#: wireguard_peer/views.py:469 msgid "Invalid action." msgstr "Neplatná akcia." -#: wireguard_peer/views.py:455 +#: wireguard_peer/views.py:474 msgid "Suspend / Reactivate Peer" msgstr "Pozastaviť / Reaktivovať Peer" -#: wireguard_tools/views.py:181 +#: wireguard_peer/views.py:497 +#, fuzzy +#| msgid "Schedule Profile deleted successfully." +msgid "Peer scheduling profile updated successfully." +msgstr "Profil plánovania bol úspešne vymazaný." + +#: wireguard_peer/views.py:503 +#, fuzzy +#| msgid "Delete Schedule Profile" +msgid "Manage Peer Schedule Profile" +msgstr "Odstrániť profil plánovania" + +#: wireguard_tools/views.py:237 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -3020,7 +3194,7 @@ msgstr "" "Export úspešný!|WireGuard konfiguračné súbory boli exportované do /etc/" "wireguard/." -#: wireguard_tools/views.py:183 +#: wireguard_tools/views.py:239 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -3028,19 +3202,19 @@ msgstr "" "Export úspešný!|WireGuard konfiguračné súbory boli exportované do /etc/" "wireguard/. Nezabudnite reštartovať rozhrania." -#: wireguard_tools/views.py:285 +#: wireguard_tools/views.py:341 msgid "Error reloading" msgstr "Chyba pri opätovnom načítaní" -#: wireguard_tools/views.py:297 +#: wireguard_tools/views.py:353 msgid "Error stopping" msgstr "Chyba pri zastavovaní" -#: wireguard_tools/views.py:302 +#: wireguard_tools/views.py:358 msgid "Error starting" msgstr "Chyba pri spúšťaní" -#: wireguard_tools/views.py:309 +#: wireguard_tools/views.py:365 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -3050,20 +3224,20 @@ msgstr "" "reštartované. Dôkladne skontrolujte či peeri fungujú podľa očakávania. Ak " "nájdete problémy, prosím nahláste ich." -#: wireguard_tools/views.py:310 +#: wireguard_tools/views.py:366 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard znovu načítaný|Služba WireGuard bola znovu načítaná." -#: wireguard_tools/views.py:312 +#: wireguard_tools/views.py:368 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard reštartovaný|Služba WireGuard bola reštartovaná." -#: wireguard_tools/views.py:315 +#: wireguard_tools/views.py:371 msgid "Errors encountered|Error processing one or more interfaces." msgstr "" "Vyskytli sa chyby|Chyba pri spracovaní jedného alebo viacerých rozhraní." -#: wireguard_tools/views.py:318 +#: wireguard_tools/views.py:374 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "Neboli nájdené rozhrania|Neboli nájdené žiadne WireGuard rozhrania na "