From dd129c4a3164a775cd9024718529c74a962c3214 Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Thu, 12 Mar 2026 15:23:39 -0300 Subject: [PATCH] update translations --- locale/de/LC_MESSAGES/django.mo | Bin 87722 -> 87502 bytes locale/de/LC_MESSAGES/django.po | 244 +++++++++++++++------------- locale/es/LC_MESSAGES/django.mo | Bin 86118 -> 85899 bytes locale/es/LC_MESSAGES/django.po | 245 ++++++++++++++++------------- locale/fr/LC_MESSAGES/django.mo | Bin 88490 -> 88270 bytes locale/fr/LC_MESSAGES/django.po | 244 +++++++++++++++------------- locale/pt_BR/LC_MESSAGES/django.mo | Bin 88052 -> 87829 bytes locale/pt_BR/LC_MESSAGES/django.po | 245 ++++++++++++++++------------- locale/sk/LC_MESSAGES/django.mo | Bin 87372 -> 87144 bytes locale/sk/LC_MESSAGES/django.po | 245 ++++++++++++++++------------- 10 files changed, 675 insertions(+), 548 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index bf897f85161cb3aecef2b2391fbb1036ed8ea1d6..0046c8825589c468b5f3d6bdcba868a925a5b822 100644 GIT binary patch delta 15257 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\n" "Language-Team: LANGUAGE \n" @@ -64,12 +64,12 @@ msgstr "" "Sind Sie sicher, dass Sie das Token neu generieren möchten? Das alte Token " "wird sofort ungültig." -#: api_v2/forms.py:63 app_gateway/forms.py:42 app_gateway/forms.py:89 -#: app_gateway/forms.py:127 app_gateway/forms.py:158 app_gateway/forms.py:201 +#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:87 +#: app_gateway/forms.py:125 app_gateway/forms.py:156 app_gateway/forms.py:199 #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84 -#: dns/forms.py:153 gatekeeper/forms.py:40 gatekeeper/forms.py:74 -#: gatekeeper/forms.py:136 gatekeeper/forms.py:223 gatekeeper/forms.py:253 -#: gatekeeper/forms.py:284 routing_templates/forms.py:71 scheduler/forms.py:102 +#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75 +#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 @@ -81,8 +81,8 @@ msgstr "" msgid "Save" msgstr "Speichern" -#: api_v2/models.py:10 app_gateway/forms.py:20 app_gateway/forms.py:103 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:98 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:101 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:99 #: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 #: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:60 #: templates/app_gateway/app_gateway_list.html:165 @@ -130,10 +130,10 @@ msgstr "Aktiviert" #: app_gateway/views.py:180 app_gateway/views.py:203 app_gateway/views.py:234 #: app_gateway/views.py:259 app_gateway/views.py:289 cluster/views.py:18 #: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:49 gatekeeper/views.py:82 gatekeeper/views.py:106 -#: gatekeeper/views.py:139 gatekeeper/views.py:163 gatekeeper/views.py:210 -#: gatekeeper/views.py:270 gatekeeper/views.py:303 gatekeeper/views.py:327 -#: gatekeeper/views.py:360 gatekeeper/views.py:384 gatekeeper/views.py:417 +#: gatekeeper/views.py:48 gatekeeper/views.py:78 gatekeeper/views.py:101 +#: gatekeeper/views.py:131 gatekeeper/views.py:154 gatekeeper/views.py:198 +#: gatekeeper/views.py:257 gatekeeper/views.py:287 gatekeeper/views.py:310 +#: gatekeeper/views.py:340 gatekeeper/views.py:363 gatekeeper/views.py:412 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Zugriff verweigert" @@ -204,33 +204,33 @@ msgstr "" msgid "API Documentation" msgstr "API-Dokumentation" -#: app_gateway/forms.py:21 templates/app_gateway/app_gateway_list.html:61 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:61 #: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 msgid "Display Name" msgstr "Anzeigename" -#: app_gateway/forms.py:22 templates/app_gateway/app_gateway_list.html:62 +#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:62 msgid "Upstream" msgstr "" -#: app_gateway/forms.py:43 app_gateway/forms.py:90 app_gateway/forms.py:128 -#: app_gateway/forms.py:159 app_gateway/forms.py:202 gatekeeper/forms.py:41 -#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224 -#: gatekeeper/forms.py:254 gatekeeper/forms.py:285 scheduler/forms.py:103 +#: app_gateway/forms.py:41 app_gateway/forms.py:88 app_gateway/forms.py:126 +#: app_gateway/forms.py:157 app_gateway/forms.py:200 gatekeeper/forms.py:42 +#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225 +#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103 #: templates/generic_delete_confirmation.html:19 #: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Abbrechen" -#: app_gateway/forms.py:56 +#: app_gateway/forms.py:54 msgid "Upstream URL cannot contain spaces." msgstr "" -#: app_gateway/forms.py:62 +#: app_gateway/forms.py:60 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "" -#: app_gateway/forms.py:72 app_gateway/forms.py:141 app_gateway/forms.py:172 +#: app_gateway/forms.py:70 app_gateway/forms.py:139 app_gateway/forms.py:170 #: templates/app_gateway/app_gateway_list.html:122 #: templates/app_gateway/app_gateway_list.html:212 #, fuzzy @@ -238,49 +238,49 @@ msgstr "" msgid "Application" msgstr "Aktion" -#: app_gateway/forms.py:73 cluster/forms.py:24 dns/forms.py:65 +#: app_gateway/forms.py:71 cluster/forms.py:24 dns/forms.py:65 #: templates/app_gateway/app_gateway_list.html:121 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Hostname" -#: app_gateway/forms.py:104 templates/app_gateway/app_gateway_list.html:166 +#: app_gateway/forms.py:102 templates/app_gateway/app_gateway_list.html:166 msgid "Policy Type" msgstr "" -#: app_gateway/forms.py:105 +#: app_gateway/forms.py:103 #, fuzzy #| msgid "Allowed IPs" msgid "Allowed Groups" msgstr "Erlaubte IPs" -#: app_gateway/forms.py:106 templates/gatekeeper/gatekeeper_list.html:18 +#: app_gateway/forms.py:104 templates/gatekeeper/gatekeeper_list.html:12 msgid "Authentication Methods" msgstr "Authentifizierungsmethoden" -#: app_gateway/forms.py:142 templates/app_gateway/app_gateway_list.html:63 +#: app_gateway/forms.py:140 templates/app_gateway/app_gateway_list.html:63 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Standard‑Richtlinie" -#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:213 +#: app_gateway/forms.py:171 templates/app_gateway/app_gateway_list.html:213 #, fuzzy #| msgid "Route Type" msgid "Route Name" msgstr "Routentyp" -#: app_gateway/forms.py:174 templates/app_gateway/app_gateway_list.html:214 +#: app_gateway/forms.py:172 templates/app_gateway/app_gateway_list.html:214 msgid "Path Prefix" msgstr "" -#: app_gateway/forms.py:175 templates/app_gateway/app_gateway_list.html:215 +#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:215 #, fuzzy #| msgid "Default Policy" msgid "Policy" msgstr "Standard‑Richtlinie" -#: app_gateway/forms.py:176 +#: app_gateway/forms.py:174 #, fuzzy #| msgid "Sort Order" msgid "Priority Order" @@ -302,7 +302,7 @@ msgstr "Ein Faktor" msgid "Two Factor" msgstr "Zwei Faktoren" -#: app_gateway/models.py:48 gatekeeper/models.py:111 +#: app_gateway/models.py:48 gatekeeper/models.py:108 #: templates/gatekeeper/gatekeeper_list.html:272 msgid "Deny" msgstr "Ablehnen" @@ -495,7 +495,8 @@ msgstr "Sind Sie sicher, dass Sie die Gruppe \"%(name)s\" löschen möchten?" msgid "IP Lock" msgstr "IP-Sperre" -#: cluster/forms.py:21 dns/forms.py:67 templates/cluster/workers_list.html:10 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:196 +#: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 @@ -777,7 +778,7 @@ msgstr "Statischer DNS" msgid "Invalid hostname." msgstr "Ungültiger Hostname." -#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:198 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:199 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1112,43 +1113,43 @@ msgstr "Firewall‑Einstellungen verwalten" msgid "Firewall settings saved successfully" msgstr "Firewall‑Einstellungen erfolgreich gespeichert" -#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: gatekeeper/forms.py:17 templates/accounts/login.html:14 #: templates/gatekeeper/gatekeeper_list.html:61 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Benutzername" -#: gatekeeper/forms.py:17 gatekeeper/forms.py:268 +#: gatekeeper/forms.py:18 gatekeeper/forms.py:269 #: templates/gatekeeper/gatekeeper_list.html:62 #: templates/gatekeeper/gatekeeper_list.html:204 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "E‑Mail" -#: gatekeeper/forms.py:18 templates/accounts/login.html:23 +#: gatekeeper/forms.py:19 templates/accounts/login.html:23 #: templates/vpn_invite/invite_settings.html:19 user_manager/forms.py:14 #: vpn_invite/forms.py:282 msgid "Password" msgstr "Passwort" -#: gatekeeper/forms.py:19 +#: gatekeeper/forms.py:20 msgid "TOTP Secret" msgstr "TOTP-Geheimnis" -#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:104 +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:104 msgid "Group Name" msgstr "Gruppenname" -#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:105 +#: gatekeeper/forms.py:56 templates/gatekeeper/gatekeeper_list.html:105 msgid "Members" msgstr "Mitglieder" -#: gatekeeper/forms.py:85 +#: gatekeeper/forms.py:86 msgid "TOTP Validation PIN" msgstr "TOTP-Validierungs-PIN" -#: gatekeeper/forms.py:88 +#: gatekeeper/forms.py:89 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1156,98 +1157,94 @@ msgstr "" "Geben Sie eine 6-stellige PIN ein, die von Ihrer Authenticator-App generiert " "wurde, um das Geheimnis zu validieren." -#: gatekeeper/forms.py:99 +#: gatekeeper/forms.py:100 msgid "Authentication Type" msgstr "Authentifizierungstyp" -#: gatekeeper/forms.py:100 +#: gatekeeper/forms.py:101 msgid "Global TOTP Secret" msgstr "Globales TOTP-Geheimnis" -#: gatekeeper/forms.py:101 +#: gatekeeper/forms.py:102 msgid "OIDC Provider URL" msgstr "OIDC-Anbieter-URL" -#: gatekeeper/forms.py:102 +#: gatekeeper/forms.py:103 msgid "OIDC Client ID" msgstr "OIDC-Client-ID" -#: gatekeeper/forms.py:103 +#: gatekeeper/forms.py:104 msgid "OIDC Client Secret" msgstr "OIDC-Client-Geheimnis" -#: gatekeeper/forms.py:154 +#: gatekeeper/forms.py:155 msgid "TOTP secret must be empty for Local Password authentication." msgstr "" "Das TOTP-Geheimnis muss für die Authentifizierung mit lokalem Passwort leer " "sein." -#: gatekeeper/forms.py:156 +#: gatekeeper/forms.py:157 msgid "TOTP validation PIN must be empty for Local Password authentication." msgstr "" "Die TOTP-Validierungs-PIN muss für die Authentifizierung mit lokalem " "Passwort leer sein." -#: gatekeeper/forms.py:158 +#: gatekeeper/forms.py:159 msgid "OIDC fields must be empty for Local Password authentication." msgstr "" "OIDC-Felder müssen für die Authentifizierung mit lokalem Passwort leer sein." -#: gatekeeper/forms.py:164 +#: gatekeeper/forms.py:165 msgid "Only one Local Password authentication method can be configured." msgstr "" "Es kann nur eine Authentifizierungsmethode mit lokalem Passwort konfiguriert " "werden." -#: gatekeeper/forms.py:167 +#: gatekeeper/forms.py:168 msgid "OIDC fields must be empty for TOTP authentication." msgstr "OIDC-Felder müssen für die TOTP-Authentifizierung leer sein." -#: gatekeeper/forms.py:169 +#: gatekeeper/forms.py:170 msgid "TOTP secret is required for TOTP authentication." msgstr "Das TOTP-Geheimnis ist für die TOTP-Authentifizierung erforderlich." -#: gatekeeper/forms.py:173 +#: gatekeeper/forms.py:174 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Bitte geben Sie eine PIN an, um das TOTP-Geheimnis zu validieren." -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:179 msgid "Invalid TOTP PIN." msgstr "Ungültige TOTP-PIN." -#: gatekeeper/forms.py:180 +#: gatekeeper/forms.py:181 msgid "Invalid TOTP secret format. Must be a valid Base32 string." msgstr "" "Ungültiges TOTP-Geheimnisformat. Muss eine gültige Base32-Zeichenfolge sein." -#: gatekeeper/forms.py:183 +#: gatekeeper/forms.py:184 msgid "TOTP secret must be empty for OIDC authentication." msgstr "Das TOTP-Geheimnis muss für die OIDC-Authentifizierung leer sein." -#: gatekeeper/forms.py:185 +#: gatekeeper/forms.py:186 msgid "TOTP validation PIN must be empty for OIDC authentication." msgstr "" "Die TOTP-Validierungs-PIN muss für die OIDC-Authentifizierung leer sein." -#: gatekeeper/forms.py:194 gatekeeper/forms.py:236 gatekeeper/forms.py:267 +#: gatekeeper/forms.py:195 gatekeeper/forms.py:237 gatekeeper/forms.py:268 msgid "Authentication Method" msgstr "Authentifizierungsmethode" -#: gatekeeper/forms.py:195 -msgid "IP/Network Address" -msgstr "IP/Netzwerkadresse" - -#: gatekeeper/forms.py:196 templates/gatekeeper/gatekeeper_list.html:257 +#: gatekeeper/forms.py:197 templates/gatekeeper/gatekeeper_list.html:257 msgid "Prefix Length" msgstr "Präfixlänge" -#: gatekeeper/forms.py:197 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:198 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 #: templates/gatekeeper/gatekeeper_list.html:258 msgid "Action" msgstr "Aktion" -#: gatekeeper/forms.py:237 templates/gatekeeper/gatekeeper_list.html:221 +#: gatekeeper/forms.py:238 templates/gatekeeper/gatekeeper_list.html:221 msgid "Domain" msgstr "Domäne" @@ -1280,79 +1277,74 @@ msgstr "" msgid "Per-user TOTP secret key" msgstr "Benutzerspezifischer TOTP-Geheimschlüssel" -#: gatekeeper/models.py:109 -msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." -msgstr "" -"CIDR-Präfixlänge (z. B.: 24 für /24). Leer lassen für einen einzelnen Host." - -#: gatekeeper/models.py:111 templates/gatekeeper/gatekeeper_list.html:270 +#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:270 msgid "Allow" msgstr "Zulassen" -#: gatekeeper/views.py:55 +#: gatekeeper/views.py:54 msgid "Edit Gatekeeper User" msgstr "Gatekeeper-Benutzer bearbeiten" -#: gatekeeper/views.py:58 +#: gatekeeper/views.py:57 msgid "Create Gatekeeper User" msgstr "Gatekeeper-Benutzer erstellen" -#: gatekeeper/views.py:66 +#: gatekeeper/views.py:64 msgid "Gatekeeper User saved successfully." msgstr "Gatekeeper-Benutzer erfolgreich gespeichert." -#: gatekeeper/views.py:91 +#: gatekeeper/views.py:86 msgid "Gatekeeper User deleted successfully." msgstr "Gatekeeper-Benutzer erfolgreich gelöscht." -#: gatekeeper/views.py:96 +#: gatekeeper/views.py:91 msgid "Delete Gatekeeper User" msgstr "Gatekeeper-Benutzer löschen" -#: gatekeeper/views.py:98 +#: gatekeeper/views.py:93 #, python-format msgid "Are you sure you want to delete the user \"%(username)s\"?" msgstr "" "Sind Sie sicher, dass Sie den Benutzer \"%(username)s\" löschen möchten?" -#: gatekeeper/views.py:112 +#: gatekeeper/views.py:107 msgid "Edit Gatekeeper Group" msgstr "Gatekeeper-Gruppe bearbeiten" -#: gatekeeper/views.py:115 +#: gatekeeper/views.py:110 msgid "Create Gatekeeper Group" msgstr "Gatekeeper-Gruppe erstellen" -#: gatekeeper/views.py:123 +#: gatekeeper/views.py:117 msgid "Gatekeeper Group saved successfully." msgstr "Gatekeeper-Gruppe erfolgreich gespeichert." -#: gatekeeper/views.py:148 +#: gatekeeper/views.py:139 msgid "Gatekeeper Group deleted successfully." msgstr "Gatekeeper-Gruppe erfolgreich gelöscht." -#: gatekeeper/views.py:153 +#: gatekeeper/views.py:144 msgid "Delete Gatekeeper Group" msgstr "Gatekeeper-Gruppe löschen" -#: gatekeeper/views.py:155 +#: gatekeeper/views.py:146 #, python-format msgid "Are you sure you want to delete the group \"%(name)s\"?" msgstr "Sind Sie sicher, dass Sie die Gruppe \"%(name)s\" löschen möchten?" -#: gatekeeper/views.py:169 +#: gatekeeper/views.py:160 msgid "Edit Authentication Method" msgstr "Authentifizierungsmethode bearbeiten" -#: gatekeeper/views.py:172 +#: gatekeeper/views.py:163 msgid "Create Authentication Method" msgstr "Authentifizierungsmethode erstellen" -#: gatekeeper/views.py:180 +#: gatekeeper/views.py:170 msgid "Authentication Method saved successfully." msgstr "Authentifizierungsmethode erfolgreich gespeichert." -#: gatekeeper/views.py:187 +#: gatekeeper/views.py:175 msgid "" "\n" "
Authentication Types
\n" @@ -1388,96 +1380,121 @@ msgstr "" " \n" " " -#: gatekeeper/views.py:219 +#: gatekeeper/views.py:206 msgid "Authentication Method deleted successfully." msgstr "Authentifizierungsmethode erfolgreich gelöscht." -#: gatekeeper/views.py:224 +#: gatekeeper/views.py:211 msgid "Delete Authentication Method" msgstr "Authentifizierungsmethode löschen" -#: gatekeeper/views.py:226 +#: gatekeeper/views.py:213 #, python-format msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" msgstr "" "Sind Sie sicher, dass Sie die Authentifizierungsmethode \"%(name)s\" löschen " "möchten?" -#: gatekeeper/views.py:276 +#: gatekeeper/views.py:263 msgid "Edit Allowed Domain" msgstr "Zulässige Domäne bearbeiten" -#: gatekeeper/views.py:279 templates/gatekeeper/gatekeeper_list.html:186 +#: gatekeeper/views.py:266 templates/gatekeeper/gatekeeper_list.html:186 msgid "Add Allowed Domain" msgstr "Zulässige Domäne hinzufügen" -#: gatekeeper/views.py:287 +#: gatekeeper/views.py:273 msgid "Allowed Domain saved successfully." msgstr "Zulässige Domäne erfolgreich gespeichert." -#: gatekeeper/views.py:312 +#: gatekeeper/views.py:295 msgid "Allowed Domain deleted successfully." msgstr "Zulässige Domäne erfolgreich gelöscht." -#: gatekeeper/views.py:317 +#: gatekeeper/views.py:300 msgid "Delete Allowed Domain" msgstr "Zulässige Domäne löschen" -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:302 #, python-format msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" msgstr "" "Sind Sie sicher, dass Sie die zulässige Domäne \"%(domain)s\" löschen " "möchten?" -#: gatekeeper/views.py:333 +#: gatekeeper/views.py:316 msgid "Edit Allowed Email" msgstr "Zulässige E-Mail bearbeiten" -#: gatekeeper/views.py:336 templates/gatekeeper/gatekeeper_list.html:183 +#: gatekeeper/views.py:319 templates/gatekeeper/gatekeeper_list.html:183 msgid "Add Allowed Email" msgstr "Zulässige E-Mail hinzufügen" -#: gatekeeper/views.py:344 +#: gatekeeper/views.py:326 msgid "Allowed Email saved successfully." msgstr "Zulässige E-Mail erfolgreich gespeichert." -#: gatekeeper/views.py:369 +#: gatekeeper/views.py:348 msgid "Allowed Email deleted successfully." msgstr "Zulässige E-Mail erfolgreich gelöscht." -#: gatekeeper/views.py:374 +#: gatekeeper/views.py:353 msgid "Delete Allowed Email" msgstr "Zulässige E-Mail löschen" -#: gatekeeper/views.py:376 +#: gatekeeper/views.py:355 #, python-format msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" msgstr "" "Sind Sie sicher, dass Sie die zulässige E-Mail \"%(email)s\" löschen möchten?" -#: gatekeeper/views.py:390 +#: gatekeeper/views.py:369 msgid "Edit IP Address" msgstr "IP-Adresse bearbeiten" -#: gatekeeper/views.py:393 templates/gatekeeper/gatekeeper_list.html:247 +#: gatekeeper/views.py:372 templates/gatekeeper/gatekeeper_list.html:247 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "IP‑Adresse hinzufügen" -#: gatekeeper/views.py:401 +#: gatekeeper/views.py:379 msgid "IP Address saved successfully." msgstr "IP-Adresse erfolgreich gespeichert." -#: gatekeeper/views.py:426 +#: gatekeeper/views.py:384 +msgid "" +"\n" +"
IP Address List
\n" +"

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

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

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

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

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

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

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

\n" +" " +msgstr "" + +#: gatekeeper/views.py:420 msgid "IP Address deleted successfully." msgstr "IP-Adresse erfolgreich gelöscht." -#: gatekeeper/views.py:431 +#: gatekeeper/views.py:425 msgid "Delete IP Address" msgstr "IP-Adresse löschen" -#: gatekeeper/views.py:433 +#: gatekeeper/views.py:427 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "" @@ -2556,7 +2573,7 @@ msgid "Please enter a TOTP Secret first to generate the QR code." msgstr "" "Bitte geben Sie zuerst ein TOTP-Geheimnis ein, um den QR-Code zu generieren." -#: templates/gatekeeper/gatekeeper_list.html:12 +#: templates/gatekeeper/gatekeeper_list.html:18 msgid "Gatekeeper Users" msgstr "Gatekeeper-Benutzer" @@ -4245,6 +4262,15 @@ msgstr "" "Keine Schnittstellen gefunden|Es wurden keine WireGuard‑Schnittstellen " "gefunden." +#~ msgid "IP/Network Address" +#~ msgstr "IP/Netzwerkadresse" + +#~ msgid "" +#~ "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +#~ msgstr "" +#~ "CIDR-Präfixlänge (z. B.: 24 für /24). Leer lassen für einen einzelnen " +#~ "Host." + #~ msgid "Intervals Count" #~ msgstr "Anzahl Intervalle" diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo index 4b44b6a0acf09181616856db9ab346d5319c35cd..42b3749feb72ffc3f400a5c70493b55d6ea2f4f3 100644 GIT binary patch delta 15256 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

#46D>wf;UUxr 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 PF|AWmcIPeX8dc?giE+aV diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index b5eb96f..435318f 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-03-12 14:14-0300\n" +"POT-Creation-Date: 2026-03-12 15:23-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -64,12 +64,12 @@ msgstr "" "¿Está seguro de que desea regenerar el token? El antiguo token dejará de " "funcionar inmediatamente." -#: api_v2/forms.py:63 app_gateway/forms.py:42 app_gateway/forms.py:89 -#: app_gateway/forms.py:127 app_gateway/forms.py:158 app_gateway/forms.py:201 +#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:87 +#: app_gateway/forms.py:125 app_gateway/forms.py:156 app_gateway/forms.py:199 #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84 -#: dns/forms.py:153 gatekeeper/forms.py:40 gatekeeper/forms.py:74 -#: gatekeeper/forms.py:136 gatekeeper/forms.py:223 gatekeeper/forms.py:253 -#: gatekeeper/forms.py:284 routing_templates/forms.py:71 scheduler/forms.py:102 +#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75 +#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 @@ -81,8 +81,8 @@ msgstr "" msgid "Save" msgstr "Guardar" -#: api_v2/models.py:10 app_gateway/forms.py:20 app_gateway/forms.py:103 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:98 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:101 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:99 #: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 #: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:60 #: templates/app_gateway/app_gateway_list.html:165 @@ -130,10 +130,10 @@ msgstr "Habilitado" #: app_gateway/views.py:180 app_gateway/views.py:203 app_gateway/views.py:234 #: app_gateway/views.py:259 app_gateway/views.py:289 cluster/views.py:18 #: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:49 gatekeeper/views.py:82 gatekeeper/views.py:106 -#: gatekeeper/views.py:139 gatekeeper/views.py:163 gatekeeper/views.py:210 -#: gatekeeper/views.py:270 gatekeeper/views.py:303 gatekeeper/views.py:327 -#: gatekeeper/views.py:360 gatekeeper/views.py:384 gatekeeper/views.py:417 +#: gatekeeper/views.py:48 gatekeeper/views.py:78 gatekeeper/views.py:101 +#: gatekeeper/views.py:131 gatekeeper/views.py:154 gatekeeper/views.py:198 +#: gatekeeper/views.py:257 gatekeeper/views.py:287 gatekeeper/views.py:310 +#: gatekeeper/views.py:340 gatekeeper/views.py:363 gatekeeper/views.py:412 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acceso denegado" @@ -203,33 +203,33 @@ msgstr "¿Está seguro de que desea eliminar la clave de API \"%(name)s\"?" msgid "API Documentation" msgstr "Documentación de la API" -#: app_gateway/forms.py:21 templates/app_gateway/app_gateway_list.html:61 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:61 #: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 msgid "Display Name" msgstr "Nombre para mostrar" -#: app_gateway/forms.py:22 templates/app_gateway/app_gateway_list.html:62 +#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:62 msgid "Upstream" msgstr "" -#: app_gateway/forms.py:43 app_gateway/forms.py:90 app_gateway/forms.py:128 -#: app_gateway/forms.py:159 app_gateway/forms.py:202 gatekeeper/forms.py:41 -#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224 -#: gatekeeper/forms.py:254 gatekeeper/forms.py:285 scheduler/forms.py:103 +#: app_gateway/forms.py:41 app_gateway/forms.py:88 app_gateway/forms.py:126 +#: app_gateway/forms.py:157 app_gateway/forms.py:200 gatekeeper/forms.py:42 +#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225 +#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103 #: templates/generic_delete_confirmation.html:19 #: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Cancelar" -#: app_gateway/forms.py:56 +#: app_gateway/forms.py:54 msgid "Upstream URL cannot contain spaces." msgstr "" -#: app_gateway/forms.py:62 +#: app_gateway/forms.py:60 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "" -#: app_gateway/forms.py:72 app_gateway/forms.py:141 app_gateway/forms.py:172 +#: app_gateway/forms.py:70 app_gateway/forms.py:139 app_gateway/forms.py:170 #: templates/app_gateway/app_gateway_list.html:122 #: templates/app_gateway/app_gateway_list.html:212 #, fuzzy @@ -237,49 +237,49 @@ msgstr "" msgid "Application" msgstr "Acción" -#: app_gateway/forms.py:73 cluster/forms.py:24 dns/forms.py:65 +#: app_gateway/forms.py:71 cluster/forms.py:24 dns/forms.py:65 #: templates/app_gateway/app_gateway_list.html:121 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Nombre de host" -#: app_gateway/forms.py:104 templates/app_gateway/app_gateway_list.html:166 +#: app_gateway/forms.py:102 templates/app_gateway/app_gateway_list.html:166 msgid "Policy Type" msgstr "" -#: app_gateway/forms.py:105 +#: app_gateway/forms.py:103 #, fuzzy #| msgid "Allowed IPs" msgid "Allowed Groups" msgstr "IPs permitidas" -#: app_gateway/forms.py:106 templates/gatekeeper/gatekeeper_list.html:18 +#: app_gateway/forms.py:104 templates/gatekeeper/gatekeeper_list.html:12 msgid "Authentication Methods" msgstr "Métodos de autenticación" -#: app_gateway/forms.py:142 templates/app_gateway/app_gateway_list.html:63 +#: app_gateway/forms.py:140 templates/app_gateway/app_gateway_list.html:63 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Política predeterminada" -#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:213 +#: app_gateway/forms.py:171 templates/app_gateway/app_gateway_list.html:213 #, fuzzy #| msgid "Route Type" msgid "Route Name" msgstr "Tipo de Ruta" -#: app_gateway/forms.py:174 templates/app_gateway/app_gateway_list.html:214 +#: app_gateway/forms.py:172 templates/app_gateway/app_gateway_list.html:214 msgid "Path Prefix" msgstr "" -#: app_gateway/forms.py:175 templates/app_gateway/app_gateway_list.html:215 +#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:215 #, fuzzy #| msgid "Default Policy" msgid "Policy" msgstr "Política predeterminada" -#: app_gateway/forms.py:176 +#: app_gateway/forms.py:174 #, fuzzy #| msgid "Sort Order" msgid "Priority Order" @@ -301,7 +301,7 @@ msgstr "Un factor" msgid "Two Factor" msgstr "Dos factores" -#: app_gateway/models.py:48 gatekeeper/models.py:111 +#: app_gateway/models.py:48 gatekeeper/models.py:108 #: templates/gatekeeper/gatekeeper_list.html:272 msgid "Deny" msgstr "Denegar" @@ -494,7 +494,8 @@ msgstr "¿Está seguro de que desea eliminar el grupo \"%(name)s\"?" msgid "IP Lock" msgstr "Bloqueo de IP" -#: cluster/forms.py:21 dns/forms.py:67 templates/cluster/workers_list.html:10 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:196 +#: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 @@ -776,7 +777,7 @@ msgstr "DNS estático" msgid "Invalid hostname." msgstr "Nombre de host inválido." -#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:198 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:199 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1108,43 +1109,43 @@ msgstr "Gestionar configuración de firewall" msgid "Firewall settings saved successfully" msgstr "Configuración de firewall guardada correctamente" -#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: gatekeeper/forms.py:17 templates/accounts/login.html:14 #: templates/gatekeeper/gatekeeper_list.html:61 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Usuario" -#: gatekeeper/forms.py:17 gatekeeper/forms.py:268 +#: gatekeeper/forms.py:18 gatekeeper/forms.py:269 #: templates/gatekeeper/gatekeeper_list.html:62 #: templates/gatekeeper/gatekeeper_list.html:204 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "Email" -#: gatekeeper/forms.py:18 templates/accounts/login.html:23 +#: gatekeeper/forms.py:19 templates/accounts/login.html:23 #: templates/vpn_invite/invite_settings.html:19 user_manager/forms.py:14 #: vpn_invite/forms.py:282 msgid "Password" msgstr "Contraseña" -#: gatekeeper/forms.py:19 +#: gatekeeper/forms.py:20 msgid "TOTP Secret" msgstr "Secreto TOTP" -#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:104 +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:104 msgid "Group Name" msgstr "Nombre del grupo" -#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:105 +#: gatekeeper/forms.py:56 templates/gatekeeper/gatekeeper_list.html:105 msgid "Members" msgstr "Miembros" -#: gatekeeper/forms.py:85 +#: gatekeeper/forms.py:86 msgid "TOTP Validation PIN" msgstr "PIN de validación TOTP" -#: gatekeeper/forms.py:88 +#: gatekeeper/forms.py:89 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1152,95 +1153,91 @@ msgstr "" "Introduzca un PIN de 6 dígitos generado por su aplicación de autenticación " "para validar el secreto." -#: gatekeeper/forms.py:99 +#: gatekeeper/forms.py:100 msgid "Authentication Type" msgstr "Tipo de autenticación" -#: gatekeeper/forms.py:100 +#: gatekeeper/forms.py:101 msgid "Global TOTP Secret" msgstr "Secreto TOTP global" -#: gatekeeper/forms.py:101 +#: gatekeeper/forms.py:102 msgid "OIDC Provider URL" msgstr "URL del proveedor OIDC" -#: gatekeeper/forms.py:102 +#: gatekeeper/forms.py:103 msgid "OIDC Client ID" msgstr "ID de cliente OIDC" -#: gatekeeper/forms.py:103 +#: gatekeeper/forms.py:104 msgid "OIDC Client Secret" msgstr "Secreto de cliente OIDC" -#: gatekeeper/forms.py:154 +#: gatekeeper/forms.py:155 msgid "TOTP secret must be empty for Local Password authentication." msgstr "" "El secreto TOTP debe estar vacío para la autenticación por contraseña local." -#: gatekeeper/forms.py:156 +#: gatekeeper/forms.py:157 msgid "TOTP validation PIN must be empty for Local Password authentication." msgstr "" "El PIN de validación TOTP debe estar vacío para la autenticación por " "contraseña local." -#: gatekeeper/forms.py:158 +#: gatekeeper/forms.py:159 msgid "OIDC fields must be empty for Local Password authentication." msgstr "" "Los campos OIDC deben estar vacíos para la autenticación por contraseña " "local." -#: gatekeeper/forms.py:164 +#: gatekeeper/forms.py:165 msgid "Only one Local Password authentication method can be configured." msgstr "" "Sólo se puede configurar un método de autenticación por contraseña local." -#: gatekeeper/forms.py:167 +#: gatekeeper/forms.py:168 msgid "OIDC fields must be empty for TOTP authentication." msgstr "Los campos OIDC deben estar vacíos para la autenticación TOTP." -#: gatekeeper/forms.py:169 +#: gatekeeper/forms.py:170 msgid "TOTP secret is required for TOTP authentication." msgstr "El secreto TOTP es obligatorio para la autenticación TOTP." -#: gatekeeper/forms.py:173 +#: gatekeeper/forms.py:174 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Proporcione un PIN para validar el secreto TOTP." -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:179 msgid "Invalid TOTP PIN." msgstr "PIN TOTP no válido." -#: gatekeeper/forms.py:180 +#: gatekeeper/forms.py:181 msgid "Invalid TOTP secret format. Must be a valid Base32 string." msgstr "Formato de secreto TOTP no válido. Debe ser una cadena Base32 válida." -#: gatekeeper/forms.py:183 +#: gatekeeper/forms.py:184 msgid "TOTP secret must be empty for OIDC authentication." msgstr "El secreto TOTP debe estar vacío para la autenticación OIDC." -#: gatekeeper/forms.py:185 +#: gatekeeper/forms.py:186 msgid "TOTP validation PIN must be empty for OIDC authentication." msgstr "El PIN de validación TOTP debe estar vacío para la autenticación OIDC." -#: gatekeeper/forms.py:194 gatekeeper/forms.py:236 gatekeeper/forms.py:267 +#: gatekeeper/forms.py:195 gatekeeper/forms.py:237 gatekeeper/forms.py:268 msgid "Authentication Method" msgstr "Método de autenticación" -#: gatekeeper/forms.py:195 -msgid "IP/Network Address" -msgstr "Dirección IP/Red" - -#: gatekeeper/forms.py:196 templates/gatekeeper/gatekeeper_list.html:257 +#: gatekeeper/forms.py:197 templates/gatekeeper/gatekeeper_list.html:257 msgid "Prefix Length" msgstr "Longitud del prefijo" -#: gatekeeper/forms.py:197 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:198 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 #: templates/gatekeeper/gatekeeper_list.html:258 msgid "Action" msgstr "Acción" -#: gatekeeper/forms.py:237 templates/gatekeeper/gatekeeper_list.html:221 +#: gatekeeper/forms.py:238 templates/gatekeeper/gatekeeper_list.html:221 msgid "Domain" msgstr "Dominio" @@ -1272,79 +1269,73 @@ msgstr "Contraseña para autenticación local (dejar en blanco si no se usa)" msgid "Per-user TOTP secret key" msgstr "Clave secreta TOTP por usuario" -#: gatekeeper/models.py:109 -msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." -msgstr "" -"Longitud de prefijo CIDR (ej.: 24 para /24). Dejar en blanco para un solo " -"host." - -#: gatekeeper/models.py:111 templates/gatekeeper/gatekeeper_list.html:270 +#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:270 msgid "Allow" msgstr "Permitir" -#: gatekeeper/views.py:55 +#: gatekeeper/views.py:54 msgid "Edit Gatekeeper User" msgstr "Editar usuario de Gatekeeper" -#: gatekeeper/views.py:58 +#: gatekeeper/views.py:57 msgid "Create Gatekeeper User" msgstr "Crear usuario de Gatekeeper" -#: gatekeeper/views.py:66 +#: gatekeeper/views.py:64 msgid "Gatekeeper User saved successfully." msgstr "Usuario de Gatekeeper guardado correctamente." -#: gatekeeper/views.py:91 +#: gatekeeper/views.py:86 msgid "Gatekeeper User deleted successfully." msgstr "Usuario de Gatekeeper eliminado correctamente." -#: gatekeeper/views.py:96 +#: gatekeeper/views.py:91 msgid "Delete Gatekeeper User" msgstr "Eliminar usuario de Gatekeeper" -#: gatekeeper/views.py:98 +#: gatekeeper/views.py:93 #, python-format msgid "Are you sure you want to delete the user \"%(username)s\"?" msgstr "¿Está seguro de que desea eliminar al usuario \"%(username)s\"?" -#: gatekeeper/views.py:112 +#: gatekeeper/views.py:107 msgid "Edit Gatekeeper Group" msgstr "Editar grupo de Gatekeeper" -#: gatekeeper/views.py:115 +#: gatekeeper/views.py:110 msgid "Create Gatekeeper Group" msgstr "Crear grupo Gatekeeper" -#: gatekeeper/views.py:123 +#: gatekeeper/views.py:117 msgid "Gatekeeper Group saved successfully." msgstr "Grupo de Gatekeeper guardado correctamente." -#: gatekeeper/views.py:148 +#: gatekeeper/views.py:139 msgid "Gatekeeper Group deleted successfully." msgstr "Grupo de Gatekeeper eliminado correctamente." -#: gatekeeper/views.py:153 +#: gatekeeper/views.py:144 msgid "Delete Gatekeeper Group" msgstr "Eliminar grupo Gatekeeper" -#: gatekeeper/views.py:155 +#: gatekeeper/views.py:146 #, python-format msgid "Are you sure you want to delete the group \"%(name)s\"?" msgstr "¿Está seguro de que desea eliminar el grupo \"%(name)s\"?" -#: gatekeeper/views.py:169 +#: gatekeeper/views.py:160 msgid "Edit Authentication Method" msgstr "Editar método de autenticación" -#: gatekeeper/views.py:172 +#: gatekeeper/views.py:163 msgid "Create Authentication Method" msgstr "Crear método de autenticación" -#: gatekeeper/views.py:180 +#: gatekeeper/views.py:170 msgid "Authentication Method saved successfully." msgstr "Método de autenticación guardado correctamente." -#: gatekeeper/views.py:187 +#: gatekeeper/views.py:175 msgid "" "\n" "

Authentication Types
\n" @@ -1381,95 +1372,120 @@ msgstr "" " \n" " " -#: gatekeeper/views.py:219 +#: gatekeeper/views.py:206 msgid "Authentication Method deleted successfully." msgstr "Método de autenticación eliminado correctamente." -#: gatekeeper/views.py:224 +#: gatekeeper/views.py:211 msgid "Delete Authentication Method" msgstr "Eliminar método de autenticación" -#: gatekeeper/views.py:226 +#: gatekeeper/views.py:213 #, python-format msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" msgstr "" "¿Está seguro de que desea eliminar el método de autenticación \"%(name)s\"?" -#: gatekeeper/views.py:276 +#: gatekeeper/views.py:263 msgid "Edit Allowed Domain" msgstr "Editar dominio permitido" -#: gatekeeper/views.py:279 templates/gatekeeper/gatekeeper_list.html:186 +#: gatekeeper/views.py:266 templates/gatekeeper/gatekeeper_list.html:186 msgid "Add Allowed Domain" msgstr "Añadir dominio permitido" -#: gatekeeper/views.py:287 +#: gatekeeper/views.py:273 msgid "Allowed Domain saved successfully." msgstr "Dominio permitido guardado correctamente." -#: gatekeeper/views.py:312 +#: gatekeeper/views.py:295 msgid "Allowed Domain deleted successfully." msgstr "Dominio permitido eliminado correctamente." -#: gatekeeper/views.py:317 +#: gatekeeper/views.py:300 msgid "Delete Allowed Domain" msgstr "Eliminar dominio permitido" -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:302 #, python-format msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" msgstr "" "¿Está seguro de que desea eliminar el dominio permitido \"%(domain)s\"?" -#: gatekeeper/views.py:333 +#: gatekeeper/views.py:316 msgid "Edit Allowed Email" msgstr "Editar correo electrónico permitido" -#: gatekeeper/views.py:336 templates/gatekeeper/gatekeeper_list.html:183 +#: gatekeeper/views.py:319 templates/gatekeeper/gatekeeper_list.html:183 msgid "Add Allowed Email" msgstr "Añadir correo electrónico permitido" -#: gatekeeper/views.py:344 +#: gatekeeper/views.py:326 msgid "Allowed Email saved successfully." msgstr "Correo electrónico permitido guardado correctamente." -#: gatekeeper/views.py:369 +#: gatekeeper/views.py:348 msgid "Allowed Email deleted successfully." msgstr "Correo electrónico permitido eliminado correctamente." -#: gatekeeper/views.py:374 +#: gatekeeper/views.py:353 msgid "Delete Allowed Email" msgstr "Eliminar correo electrónico permitido" -#: gatekeeper/views.py:376 +#: gatekeeper/views.py:355 #, python-format msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" msgstr "" "¿Está seguro de que desea eliminar el correo electrónico permitido " "\"%(email)s\"?" -#: gatekeeper/views.py:390 +#: gatekeeper/views.py:369 msgid "Edit IP Address" msgstr "Editar dirección IP" -#: gatekeeper/views.py:393 templates/gatekeeper/gatekeeper_list.html:247 +#: gatekeeper/views.py:372 templates/gatekeeper/gatekeeper_list.html:247 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Añadir IP" -#: gatekeeper/views.py:401 +#: gatekeeper/views.py:379 msgid "IP Address saved successfully." msgstr "Dirección IP guardada correctamente." -#: gatekeeper/views.py:426 +#: gatekeeper/views.py:384 +msgid "" +"\n" +"
IP Address List
\n" +"

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

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

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

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

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

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

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

\n" +" " +msgstr "" + +#: gatekeeper/views.py:420 msgid "IP Address deleted successfully." msgstr "Dirección IP eliminada correctamente." -#: gatekeeper/views.py:431 +#: gatekeeper/views.py:425 msgid "Delete IP Address" msgstr "Eliminar dirección IP" -#: gatekeeper/views.py:433 +#: gatekeeper/views.py:427 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "¿Está seguro de que desea eliminar la dirección IP \"%(address)s\"?" @@ -2542,7 +2558,7 @@ msgid "Please enter a TOTP Secret first to generate the QR code." msgstr "" "Por favor, introduzca primero un secreto TOTP para generar el código QR." -#: templates/gatekeeper/gatekeeper_list.html:12 +#: templates/gatekeeper/gatekeeper_list.html:18 msgid "Gatekeeper Users" msgstr "Usuarios de Gatekeeper" @@ -4206,6 +4222,15 @@ msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "No se encontraron interfaces|No hay interfaces WireGuard para procesar." +#~ msgid "IP/Network Address" +#~ msgstr "Dirección IP/Red" + +#~ msgid "" +#~ "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +#~ msgstr "" +#~ "Longitud de prefijo CIDR (ej.: 24 para /24). Dejar en blanco para un solo " +#~ "host." + #~ msgid "Intervals Count" #~ msgstr "Número de intervalos" diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 9f094861198b86b3e962f0b1ce96c51bfd3493a4..21da9564039acae1f7423795a2a4d0d420996d50 100644 GIT binary patch delta 15257 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 n(w^0d+4X delta 15475 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 B)N23$ diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index b93e9c0..017e999 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-03-12 14:14-0300\n" +"POT-Creation-Date: 2026-03-12 15:23-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -64,12 +64,12 @@ msgstr "" "Êtes-vous sûr de vouloir régénérer le jeton ? L'ancien jeton cessera de " "fonctionner immédiatement." -#: api_v2/forms.py:63 app_gateway/forms.py:42 app_gateway/forms.py:89 -#: app_gateway/forms.py:127 app_gateway/forms.py:158 app_gateway/forms.py:201 +#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:87 +#: app_gateway/forms.py:125 app_gateway/forms.py:156 app_gateway/forms.py:199 #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84 -#: dns/forms.py:153 gatekeeper/forms.py:40 gatekeeper/forms.py:74 -#: gatekeeper/forms.py:136 gatekeeper/forms.py:223 gatekeeper/forms.py:253 -#: gatekeeper/forms.py:284 routing_templates/forms.py:71 scheduler/forms.py:102 +#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75 +#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 @@ -81,8 +81,8 @@ msgstr "" msgid "Save" msgstr "Enregistrer" -#: api_v2/models.py:10 app_gateway/forms.py:20 app_gateway/forms.py:103 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:98 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:101 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:99 #: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 #: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:60 #: templates/app_gateway/app_gateway_list.html:165 @@ -130,10 +130,10 @@ msgstr "Activé" #: app_gateway/views.py:180 app_gateway/views.py:203 app_gateway/views.py:234 #: app_gateway/views.py:259 app_gateway/views.py:289 cluster/views.py:18 #: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:49 gatekeeper/views.py:82 gatekeeper/views.py:106 -#: gatekeeper/views.py:139 gatekeeper/views.py:163 gatekeeper/views.py:210 -#: gatekeeper/views.py:270 gatekeeper/views.py:303 gatekeeper/views.py:327 -#: gatekeeper/views.py:360 gatekeeper/views.py:384 gatekeeper/views.py:417 +#: gatekeeper/views.py:48 gatekeeper/views.py:78 gatekeeper/views.py:101 +#: gatekeeper/views.py:131 gatekeeper/views.py:154 gatekeeper/views.py:198 +#: gatekeeper/views.py:257 gatekeeper/views.py:287 gatekeeper/views.py:310 +#: gatekeeper/views.py:340 gatekeeper/views.py:363 gatekeeper/views.py:412 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Accès refusé" @@ -203,33 +203,33 @@ msgstr "Êtes-vous sûr de vouloir supprimer la clé d'API \"%(name)s\" ?" msgid "API Documentation" msgstr "Documentation de l'API" -#: app_gateway/forms.py:21 templates/app_gateway/app_gateway_list.html:61 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:61 #: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 msgid "Display Name" msgstr "Nom à afficher" -#: app_gateway/forms.py:22 templates/app_gateway/app_gateway_list.html:62 +#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:62 msgid "Upstream" msgstr "" -#: app_gateway/forms.py:43 app_gateway/forms.py:90 app_gateway/forms.py:128 -#: app_gateway/forms.py:159 app_gateway/forms.py:202 gatekeeper/forms.py:41 -#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224 -#: gatekeeper/forms.py:254 gatekeeper/forms.py:285 scheduler/forms.py:103 +#: app_gateway/forms.py:41 app_gateway/forms.py:88 app_gateway/forms.py:126 +#: app_gateway/forms.py:157 app_gateway/forms.py:200 gatekeeper/forms.py:42 +#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225 +#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103 #: templates/generic_delete_confirmation.html:19 #: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Annuler" -#: app_gateway/forms.py:56 +#: app_gateway/forms.py:54 msgid "Upstream URL cannot contain spaces." msgstr "" -#: app_gateway/forms.py:62 +#: app_gateway/forms.py:60 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "" -#: app_gateway/forms.py:72 app_gateway/forms.py:141 app_gateway/forms.py:172 +#: app_gateway/forms.py:70 app_gateway/forms.py:139 app_gateway/forms.py:170 #: templates/app_gateway/app_gateway_list.html:122 #: templates/app_gateway/app_gateway_list.html:212 #, fuzzy @@ -237,49 +237,49 @@ msgstr "" msgid "Application" msgstr "Action" -#: app_gateway/forms.py:73 cluster/forms.py:24 dns/forms.py:65 +#: app_gateway/forms.py:71 cluster/forms.py:24 dns/forms.py:65 #: templates/app_gateway/app_gateway_list.html:121 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Nom d’hôte" -#: app_gateway/forms.py:104 templates/app_gateway/app_gateway_list.html:166 +#: app_gateway/forms.py:102 templates/app_gateway/app_gateway_list.html:166 msgid "Policy Type" msgstr "" -#: app_gateway/forms.py:105 +#: app_gateway/forms.py:103 #, fuzzy #| msgid "Allowed IPs" msgid "Allowed Groups" msgstr "IPs autorisées" -#: app_gateway/forms.py:106 templates/gatekeeper/gatekeeper_list.html:18 +#: app_gateway/forms.py:104 templates/gatekeeper/gatekeeper_list.html:12 msgid "Authentication Methods" msgstr "Méthodes d'authentification" -#: app_gateway/forms.py:142 templates/app_gateway/app_gateway_list.html:63 +#: app_gateway/forms.py:140 templates/app_gateway/app_gateway_list.html:63 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Politique par défaut" -#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:213 +#: app_gateway/forms.py:171 templates/app_gateway/app_gateway_list.html:213 #, fuzzy #| msgid "Route Type" msgid "Route Name" msgstr "Type de Route" -#: app_gateway/forms.py:174 templates/app_gateway/app_gateway_list.html:214 +#: app_gateway/forms.py:172 templates/app_gateway/app_gateway_list.html:214 msgid "Path Prefix" msgstr "" -#: app_gateway/forms.py:175 templates/app_gateway/app_gateway_list.html:215 +#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:215 #, fuzzy #| msgid "Default Policy" msgid "Policy" msgstr "Politique par défaut" -#: app_gateway/forms.py:176 +#: app_gateway/forms.py:174 #, fuzzy #| msgid "Sort Order" msgid "Priority Order" @@ -301,7 +301,7 @@ msgstr "Un facteur" msgid "Two Factor" msgstr "Deux facteurs" -#: app_gateway/models.py:48 gatekeeper/models.py:111 +#: app_gateway/models.py:48 gatekeeper/models.py:108 #: templates/gatekeeper/gatekeeper_list.html:272 msgid "Deny" msgstr "Refuser" @@ -496,7 +496,8 @@ msgstr "Êtes-vous sûr de vouloir supprimer le groupe \"%(name)s\" ?" msgid "IP Lock" msgstr "Verrouillage IP" -#: cluster/forms.py:21 dns/forms.py:67 templates/cluster/workers_list.html:10 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:196 +#: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 @@ -777,7 +778,7 @@ msgstr "DNS statique" msgid "Invalid hostname." msgstr "Nom d'hôte invalide." -#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:198 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:199 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1111,43 +1112,43 @@ msgstr "Gérer les paramètres du pare‑feu" msgid "Firewall settings saved successfully" msgstr "Paramètres du pare‑feu enregistrés avec succès" -#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: gatekeeper/forms.py:17 templates/accounts/login.html:14 #: templates/gatekeeper/gatekeeper_list.html:61 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Nom d’utilisateur" -#: gatekeeper/forms.py:17 gatekeeper/forms.py:268 +#: gatekeeper/forms.py:18 gatekeeper/forms.py:269 #: templates/gatekeeper/gatekeeper_list.html:62 #: templates/gatekeeper/gatekeeper_list.html:204 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "E‑mail" -#: gatekeeper/forms.py:18 templates/accounts/login.html:23 +#: gatekeeper/forms.py:19 templates/accounts/login.html:23 #: templates/vpn_invite/invite_settings.html:19 user_manager/forms.py:14 #: vpn_invite/forms.py:282 msgid "Password" msgstr "Mot de passe" -#: gatekeeper/forms.py:19 +#: gatekeeper/forms.py:20 msgid "TOTP Secret" msgstr "Secret TOTP" -#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:104 +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:104 msgid "Group Name" msgstr "Nom du groupe" -#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:105 +#: gatekeeper/forms.py:56 templates/gatekeeper/gatekeeper_list.html:105 msgid "Members" msgstr "Membres" -#: gatekeeper/forms.py:85 +#: gatekeeper/forms.py:86 msgid "TOTP Validation PIN" msgstr "Code de validation TOTP" -#: gatekeeper/forms.py:88 +#: gatekeeper/forms.py:89 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1155,97 +1156,93 @@ msgstr "" "Saisissez un code à 6 chiffres généré par votre application " "d'authentification pour valider le secret." -#: gatekeeper/forms.py:99 +#: gatekeeper/forms.py:100 msgid "Authentication Type" msgstr "Type d'authentification" -#: gatekeeper/forms.py:100 +#: gatekeeper/forms.py:101 msgid "Global TOTP Secret" msgstr "Secret TOTP mondial" -#: gatekeeper/forms.py:101 +#: gatekeeper/forms.py:102 msgid "OIDC Provider URL" msgstr "URL du fournisseur OIDC" -#: gatekeeper/forms.py:102 +#: gatekeeper/forms.py:103 msgid "OIDC Client ID" msgstr "ID client OIDC" -#: gatekeeper/forms.py:103 +#: gatekeeper/forms.py:104 msgid "OIDC Client Secret" msgstr "Secret client OIDC" -#: gatekeeper/forms.py:154 +#: gatekeeper/forms.py:155 msgid "TOTP secret must be empty for Local Password authentication." msgstr "" "Le secret TOTP doit être vide pour l'authentification par mot de passe local." -#: gatekeeper/forms.py:156 +#: gatekeeper/forms.py:157 msgid "TOTP validation PIN must be empty for Local Password authentication." msgstr "" "Le code de validation TOTP doit être vide pour l'authentification par mot de " "passe local." -#: gatekeeper/forms.py:158 +#: gatekeeper/forms.py:159 msgid "OIDC fields must be empty for Local Password authentication." msgstr "" "Les champs OIDC doivent être vides pour l'authentification par mot de passe " "local." -#: gatekeeper/forms.py:164 +#: gatekeeper/forms.py:165 msgid "Only one Local Password authentication method can be configured." msgstr "" "Un seul système d'authentification par mot de passe local peut être " "configuré." -#: gatekeeper/forms.py:167 +#: gatekeeper/forms.py:168 msgid "OIDC fields must be empty for TOTP authentication." msgstr "Les champs OIDC doivent être vides pour l'authentification TOTP." -#: gatekeeper/forms.py:169 +#: gatekeeper/forms.py:170 msgid "TOTP secret is required for TOTP authentication." msgstr "Le secret TOTP est requis pour l'authentification TOTP." -#: gatekeeper/forms.py:173 +#: gatekeeper/forms.py:174 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Veuillez fournir un code pour valider le secret TOTP." -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:179 msgid "Invalid TOTP PIN." msgstr "Code TOTP invalide." -#: gatekeeper/forms.py:180 +#: gatekeeper/forms.py:181 msgid "Invalid TOTP secret format. Must be a valid Base32 string." msgstr "Format du secret TOTP invalide. Doit être une chaîne Base32 valide." -#: gatekeeper/forms.py:183 +#: gatekeeper/forms.py:184 msgid "TOTP secret must be empty for OIDC authentication." msgstr "Le secret TOTP doit être vide pour l'authentification OIDC." -#: gatekeeper/forms.py:185 +#: gatekeeper/forms.py:186 msgid "TOTP validation PIN must be empty for OIDC authentication." msgstr "" "Le code de validation TOTP doit être vide pour l'authentification OIDC." -#: gatekeeper/forms.py:194 gatekeeper/forms.py:236 gatekeeper/forms.py:267 +#: gatekeeper/forms.py:195 gatekeeper/forms.py:237 gatekeeper/forms.py:268 msgid "Authentication Method" msgstr "Méthode d'authentification" -#: gatekeeper/forms.py:195 -msgid "IP/Network Address" -msgstr "Adresse IP/Réseau" - -#: gatekeeper/forms.py:196 templates/gatekeeper/gatekeeper_list.html:257 +#: gatekeeper/forms.py:197 templates/gatekeeper/gatekeeper_list.html:257 msgid "Prefix Length" msgstr "Longueur du préfixe" -#: gatekeeper/forms.py:197 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:198 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 #: templates/gatekeeper/gatekeeper_list.html:258 msgid "Action" msgstr "Action" -#: gatekeeper/forms.py:237 templates/gatekeeper/gatekeeper_list.html:221 +#: gatekeeper/forms.py:238 templates/gatekeeper/gatekeeper_list.html:221 msgid "Domain" msgstr "Domaine" @@ -1279,78 +1276,73 @@ msgstr "" msgid "Per-user TOTP secret key" msgstr "Clé secrète TOTP par utilisateur" -#: gatekeeper/models.py:109 -msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." -msgstr "" -"Longueur du préfixe CIDR (ex : 24 pour /24). Laissez vide pour un seul hôte." - -#: gatekeeper/models.py:111 templates/gatekeeper/gatekeeper_list.html:270 +#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:270 msgid "Allow" msgstr "Autoriser" -#: gatekeeper/views.py:55 +#: gatekeeper/views.py:54 msgid "Edit Gatekeeper User" msgstr "Modifier l'utilisateur Gatekeeper" -#: gatekeeper/views.py:58 +#: gatekeeper/views.py:57 msgid "Create Gatekeeper User" msgstr "Créer un utilisateur Gatekeeper" -#: gatekeeper/views.py:66 +#: gatekeeper/views.py:64 msgid "Gatekeeper User saved successfully." msgstr "Utilisateur Gatekeeper enregistré avec succès." -#: gatekeeper/views.py:91 +#: gatekeeper/views.py:86 msgid "Gatekeeper User deleted successfully." msgstr "Utilisateur Gatekeeper supprimé avec succès." -#: gatekeeper/views.py:96 +#: gatekeeper/views.py:91 msgid "Delete Gatekeeper User" msgstr "Supprimer l'utilisateur Gatekeeper" -#: gatekeeper/views.py:98 +#: gatekeeper/views.py:93 #, python-format msgid "Are you sure you want to delete the user \"%(username)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'utilisateur \"%(username)s\" ?" -#: gatekeeper/views.py:112 +#: gatekeeper/views.py:107 msgid "Edit Gatekeeper Group" msgstr "Modifier le groupe Gatekeeper" -#: gatekeeper/views.py:115 +#: gatekeeper/views.py:110 msgid "Create Gatekeeper Group" msgstr "Créer un groupe Gatekeeper" -#: gatekeeper/views.py:123 +#: gatekeeper/views.py:117 msgid "Gatekeeper Group saved successfully." msgstr "Groupe Gatekeeper enregistré avec succès." -#: gatekeeper/views.py:148 +#: gatekeeper/views.py:139 msgid "Gatekeeper Group deleted successfully." msgstr "Groupe Gatekeeper supprimé avec succès." -#: gatekeeper/views.py:153 +#: gatekeeper/views.py:144 msgid "Delete Gatekeeper Group" msgstr "Supprimer le groupe Gatekeeper" -#: gatekeeper/views.py:155 +#: gatekeeper/views.py:146 #, python-format msgid "Are you sure you want to delete the group \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer le groupe \"%(name)s\" ?" -#: gatekeeper/views.py:169 +#: gatekeeper/views.py:160 msgid "Edit Authentication Method" msgstr "Modifier la méthode d'authentification" -#: gatekeeper/views.py:172 +#: gatekeeper/views.py:163 msgid "Create Authentication Method" msgstr "Créer une méthode d'authentification" -#: gatekeeper/views.py:180 +#: gatekeeper/views.py:170 msgid "Authentication Method saved successfully." msgstr "Méthode d'authentification enregistrée avec succès." -#: gatekeeper/views.py:187 +#: gatekeeper/views.py:175 msgid "" "\n" "
Authentication Types
\n" @@ -1387,94 +1379,119 @@ msgstr "" " \n" " " -#: gatekeeper/views.py:219 +#: gatekeeper/views.py:206 msgid "Authentication Method deleted successfully." msgstr "Méthode d'authentification supprimée avec succès." -#: gatekeeper/views.py:224 +#: gatekeeper/views.py:211 msgid "Delete Authentication Method" msgstr "Supprimer la méthode d'authentification" -#: gatekeeper/views.py:226 +#: gatekeeper/views.py:213 #, python-format msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" msgstr "" "Êtes-vous sûr de vouloir supprimer la méthode d'authentification " "\"%(name)s\" ?" -#: gatekeeper/views.py:276 +#: gatekeeper/views.py:263 msgid "Edit Allowed Domain" msgstr "Modifier le domaine autorisé" -#: gatekeeper/views.py:279 templates/gatekeeper/gatekeeper_list.html:186 +#: gatekeeper/views.py:266 templates/gatekeeper/gatekeeper_list.html:186 msgid "Add Allowed Domain" msgstr "Ajouter un domaine autorisé" -#: gatekeeper/views.py:287 +#: gatekeeper/views.py:273 msgid "Allowed Domain saved successfully." msgstr "Domaine autorisé enregistré avec succès." -#: gatekeeper/views.py:312 +#: gatekeeper/views.py:295 msgid "Allowed Domain deleted successfully." msgstr "Domaine autorisé supprimé avec succès." -#: gatekeeper/views.py:317 +#: gatekeeper/views.py:300 msgid "Delete Allowed Domain" msgstr "Supprimer le domaine autorisé" -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:302 #, python-format msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" msgstr "" "Êtes-vous sûr de vouloir supprimer le domaine autorisé \"%(domain)s\" ?" -#: gatekeeper/views.py:333 +#: gatekeeper/views.py:316 msgid "Edit Allowed Email" msgstr "Modifier l'e-mail autorisé" -#: gatekeeper/views.py:336 templates/gatekeeper/gatekeeper_list.html:183 +#: gatekeeper/views.py:319 templates/gatekeeper/gatekeeper_list.html:183 msgid "Add Allowed Email" msgstr "Ajouter un e-mail autorisé" -#: gatekeeper/views.py:344 +#: gatekeeper/views.py:326 msgid "Allowed Email saved successfully." msgstr "E-mail autorisé enregistré avec succès." -#: gatekeeper/views.py:369 +#: gatekeeper/views.py:348 msgid "Allowed Email deleted successfully." msgstr "E-mail autorisé supprimé avec succès." -#: gatekeeper/views.py:374 +#: gatekeeper/views.py:353 msgid "Delete Allowed Email" msgstr "Supprimer l'e-mail autorisé" -#: gatekeeper/views.py:376 +#: gatekeeper/views.py:355 #, python-format msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'e-mail autorisé \"%(email)s\" ?" -#: gatekeeper/views.py:390 +#: gatekeeper/views.py:369 msgid "Edit IP Address" msgstr "Modifier l'adresse IP" -#: gatekeeper/views.py:393 templates/gatekeeper/gatekeeper_list.html:247 +#: gatekeeper/views.py:372 templates/gatekeeper/gatekeeper_list.html:247 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Ajouter une adresse IP" -#: gatekeeper/views.py:401 +#: gatekeeper/views.py:379 msgid "IP Address saved successfully." msgstr "Adresse IP enregistrée avec succès." -#: gatekeeper/views.py:426 +#: gatekeeper/views.py:384 +msgid "" +"\n" +"
IP Address List
\n" +"

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

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

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

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

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

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

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

\n" +" " +msgstr "" + +#: gatekeeper/views.py:420 msgid "IP Address deleted successfully." msgstr "Adresse IP supprimée avec succès." -#: gatekeeper/views.py:431 +#: gatekeeper/views.py:425 msgid "Delete IP Address" msgstr "Supprimer l'adresse IP" -#: gatekeeper/views.py:433 +#: gatekeeper/views.py:427 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'adresse IP \"%(address)s\" ?" @@ -2546,7 +2563,7 @@ msgstr "Voir le code QR" msgid "Please enter a TOTP Secret first to generate the QR code." msgstr "Veuillez d'abord saisir un secret TOTP pour générer le code QR." -#: templates/gatekeeper/gatekeeper_list.html:12 +#: templates/gatekeeper/gatekeeper_list.html:18 msgid "Gatekeeper Users" msgstr "Utilisateurs de Gatekeeper" @@ -4227,6 +4244,15 @@ msgstr "" msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "Aucune interface trouvée | Aucune interface WireGuard à traiter." +#~ msgid "IP/Network Address" +#~ msgstr "Adresse IP/Réseau" + +#~ msgid "" +#~ "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +#~ msgstr "" +#~ "Longueur du préfixe CIDR (ex : 24 pour /24). Laissez vide pour un seul " +#~ "hôte." + #~ msgid "Intervals Count" #~ msgstr "Nombre d'intervalles" diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo index 2c0d621fdcb55b3c55a2d9e939ffbc98fccdc71c..0cd86627f778f3eec64eeba2229a278203957519 100644 GIT binary patch delta 15257 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 delta 15478 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 diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index 9df716a..8147ee6 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-03-12 14:14-0300\n" +"POT-Creation-Date: 2026-03-12 15:23-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -64,12 +64,12 @@ msgstr "" "Tem certeza de que deseja regenerar o token? O token antigo parará de " "funcionar imediatamente." -#: api_v2/forms.py:63 app_gateway/forms.py:42 app_gateway/forms.py:89 -#: app_gateway/forms.py:127 app_gateway/forms.py:158 app_gateway/forms.py:201 +#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:87 +#: app_gateway/forms.py:125 app_gateway/forms.py:156 app_gateway/forms.py:199 #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84 -#: dns/forms.py:153 gatekeeper/forms.py:40 gatekeeper/forms.py:74 -#: gatekeeper/forms.py:136 gatekeeper/forms.py:223 gatekeeper/forms.py:253 -#: gatekeeper/forms.py:284 routing_templates/forms.py:71 scheduler/forms.py:102 +#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75 +#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 @@ -81,8 +81,8 @@ msgstr "" msgid "Save" msgstr "Salvar" -#: api_v2/models.py:10 app_gateway/forms.py:20 app_gateway/forms.py:103 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:98 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:101 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:99 #: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 #: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:60 #: templates/app_gateway/app_gateway_list.html:165 @@ -130,10 +130,10 @@ msgstr "Habilitado" #: app_gateway/views.py:180 app_gateway/views.py:203 app_gateway/views.py:234 #: app_gateway/views.py:259 app_gateway/views.py:289 cluster/views.py:18 #: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:49 gatekeeper/views.py:82 gatekeeper/views.py:106 -#: gatekeeper/views.py:139 gatekeeper/views.py:163 gatekeeper/views.py:210 -#: gatekeeper/views.py:270 gatekeeper/views.py:303 gatekeeper/views.py:327 -#: gatekeeper/views.py:360 gatekeeper/views.py:384 gatekeeper/views.py:417 +#: gatekeeper/views.py:48 gatekeeper/views.py:78 gatekeeper/views.py:101 +#: gatekeeper/views.py:131 gatekeeper/views.py:154 gatekeeper/views.py:198 +#: gatekeeper/views.py:257 gatekeeper/views.py:287 gatekeeper/views.py:310 +#: gatekeeper/views.py:340 gatekeeper/views.py:363 gatekeeper/views.py:412 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acesso Negado" @@ -203,33 +203,33 @@ msgstr "Tem certeza de que deseja excluir a Chave de API \"%(name)s\"?" msgid "API Documentation" msgstr "Documentação da API" -#: app_gateway/forms.py:21 templates/app_gateway/app_gateway_list.html:61 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:61 #: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 msgid "Display Name" msgstr "Nome de Exibição" -#: app_gateway/forms.py:22 templates/app_gateway/app_gateway_list.html:62 +#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:62 msgid "Upstream" msgstr "" -#: app_gateway/forms.py:43 app_gateway/forms.py:90 app_gateway/forms.py:128 -#: app_gateway/forms.py:159 app_gateway/forms.py:202 gatekeeper/forms.py:41 -#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224 -#: gatekeeper/forms.py:254 gatekeeper/forms.py:285 scheduler/forms.py:103 +#: app_gateway/forms.py:41 app_gateway/forms.py:88 app_gateway/forms.py:126 +#: app_gateway/forms.py:157 app_gateway/forms.py:200 gatekeeper/forms.py:42 +#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225 +#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103 #: templates/generic_delete_confirmation.html:19 #: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Cancelar" -#: app_gateway/forms.py:56 +#: app_gateway/forms.py:54 msgid "Upstream URL cannot contain spaces." msgstr "" -#: app_gateway/forms.py:62 +#: app_gateway/forms.py:60 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "" -#: app_gateway/forms.py:72 app_gateway/forms.py:141 app_gateway/forms.py:172 +#: app_gateway/forms.py:70 app_gateway/forms.py:139 app_gateway/forms.py:170 #: templates/app_gateway/app_gateway_list.html:122 #: templates/app_gateway/app_gateway_list.html:212 #, fuzzy @@ -237,49 +237,49 @@ msgstr "" msgid "Application" msgstr "Ação" -#: app_gateway/forms.py:73 cluster/forms.py:24 dns/forms.py:65 +#: app_gateway/forms.py:71 cluster/forms.py:24 dns/forms.py:65 #: templates/app_gateway/app_gateway_list.html:121 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Endereço do Host" -#: app_gateway/forms.py:104 templates/app_gateway/app_gateway_list.html:166 +#: app_gateway/forms.py:102 templates/app_gateway/app_gateway_list.html:166 msgid "Policy Type" msgstr "" -#: app_gateway/forms.py:105 +#: app_gateway/forms.py:103 #, fuzzy #| msgid "Allowed IPs" msgid "Allowed Groups" msgstr "IPs Permitidos" -#: app_gateway/forms.py:106 templates/gatekeeper/gatekeeper_list.html:18 +#: app_gateway/forms.py:104 templates/gatekeeper/gatekeeper_list.html:12 msgid "Authentication Methods" msgstr "Métodos de Autenticação" -#: app_gateway/forms.py:142 templates/app_gateway/app_gateway_list.html:63 +#: app_gateway/forms.py:140 templates/app_gateway/app_gateway_list.html:63 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Política Padrão" -#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:213 +#: app_gateway/forms.py:171 templates/app_gateway/app_gateway_list.html:213 #, fuzzy #| msgid "Route Type" msgid "Route Name" msgstr "Tipo de Rota" -#: app_gateway/forms.py:174 templates/app_gateway/app_gateway_list.html:214 +#: app_gateway/forms.py:172 templates/app_gateway/app_gateway_list.html:214 msgid "Path Prefix" msgstr "" -#: app_gateway/forms.py:175 templates/app_gateway/app_gateway_list.html:215 +#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:215 #, fuzzy #| msgid "Default Policy" msgid "Policy" msgstr "Política Padrão" -#: app_gateway/forms.py:176 +#: app_gateway/forms.py:174 #, fuzzy #| msgid "Sort Order" msgid "Priority Order" @@ -301,7 +301,7 @@ msgstr "Um Fator" msgid "Two Factor" msgstr "Dois Fatores" -#: app_gateway/models.py:48 gatekeeper/models.py:111 +#: app_gateway/models.py:48 gatekeeper/models.py:108 #: templates/gatekeeper/gatekeeper_list.html:272 msgid "Deny" msgstr "Negar" @@ -494,7 +494,8 @@ msgstr "Tem certeza de que deseja excluir o grupo \"%(name)s\"?" msgid "IP Lock" msgstr "Bloqueio de IP" -#: cluster/forms.py:21 dns/forms.py:67 templates/cluster/workers_list.html:10 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:196 +#: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 @@ -774,7 +775,7 @@ msgstr "DNS Estático" msgid "Invalid hostname." msgstr "Nome de host inválido." -#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:198 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:199 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1109,43 +1110,43 @@ msgstr "Gerenciar Configurações de Firewall" msgid "Firewall settings saved successfully" msgstr "Configurações de Firewall salvas com sucesso" -#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: gatekeeper/forms.py:17 templates/accounts/login.html:14 #: templates/gatekeeper/gatekeeper_list.html:61 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Usuário" -#: gatekeeper/forms.py:17 gatekeeper/forms.py:268 +#: gatekeeper/forms.py:18 gatekeeper/forms.py:269 #: templates/gatekeeper/gatekeeper_list.html:62 #: templates/gatekeeper/gatekeeper_list.html:204 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "Email" -#: gatekeeper/forms.py:18 templates/accounts/login.html:23 +#: gatekeeper/forms.py:19 templates/accounts/login.html:23 #: templates/vpn_invite/invite_settings.html:19 user_manager/forms.py:14 #: vpn_invite/forms.py:282 msgid "Password" msgstr "Senha" -#: gatekeeper/forms.py:19 +#: gatekeeper/forms.py:20 msgid "TOTP Secret" msgstr "Segredo TOTP" -#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:104 +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:104 msgid "Group Name" msgstr "Nome do Grupo" -#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:105 +#: gatekeeper/forms.py:56 templates/gatekeeper/gatekeeper_list.html:105 msgid "Members" msgstr "Membros" -#: gatekeeper/forms.py:85 +#: gatekeeper/forms.py:86 msgid "TOTP Validation PIN" msgstr "PIN de Validação TOTP" -#: gatekeeper/forms.py:88 +#: gatekeeper/forms.py:89 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1153,90 +1154,86 @@ msgstr "" "Insira um PIN de 6 dígitos gerado pelo seu aplicativo autenticador para " "validar o segredo." -#: gatekeeper/forms.py:99 +#: gatekeeper/forms.py:100 msgid "Authentication Type" msgstr "Tipo de Autenticação" -#: gatekeeper/forms.py:100 +#: gatekeeper/forms.py:101 msgid "Global TOTP Secret" msgstr "Segredo TOTP Global" -#: gatekeeper/forms.py:101 +#: gatekeeper/forms.py:102 msgid "OIDC Provider URL" msgstr "URL do Provedor OIDC" -#: gatekeeper/forms.py:102 +#: gatekeeper/forms.py:103 msgid "OIDC Client ID" msgstr "ID do Cliente OIDC" -#: gatekeeper/forms.py:103 +#: gatekeeper/forms.py:104 msgid "OIDC Client Secret" msgstr "Segredo do Cliente OIDC" -#: gatekeeper/forms.py:154 +#: gatekeeper/forms.py:155 msgid "TOTP secret must be empty for Local Password authentication." msgstr "O segredo TOTP deve estar vazio para autenticação por Senha Local." -#: gatekeeper/forms.py:156 +#: gatekeeper/forms.py:157 msgid "TOTP validation PIN must be empty for Local Password authentication." msgstr "" "O PIN de validação TOTP deve estar vazio para autenticação por Senha Local." -#: gatekeeper/forms.py:158 +#: gatekeeper/forms.py:159 msgid "OIDC fields must be empty for Local Password authentication." msgstr "Os campos OIDC devem estar vazios para autenticação por Senha Local." -#: gatekeeper/forms.py:164 +#: gatekeeper/forms.py:165 msgid "Only one Local Password authentication method can be configured." msgstr "Apenas um método de autenticação por Senha Local pode ser configurado." -#: gatekeeper/forms.py:167 +#: gatekeeper/forms.py:168 msgid "OIDC fields must be empty for TOTP authentication." msgstr "Os campos OIDC devem estar vazios para autenticação por TOTP." -#: gatekeeper/forms.py:169 +#: gatekeeper/forms.py:170 msgid "TOTP secret is required for TOTP authentication." msgstr "O segredo TOTP é obrigatório para autenticação por TOTP." -#: gatekeeper/forms.py:173 +#: gatekeeper/forms.py:174 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Por favor, forneça um PIN para validar o segredo TOTP." -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:179 msgid "Invalid TOTP PIN." msgstr "PIN TOTP inválido." -#: gatekeeper/forms.py:180 +#: gatekeeper/forms.py:181 msgid "Invalid TOTP secret format. Must be a valid Base32 string." msgstr "Formato de segredo TOTP inválido. Deve ser uma string Base32 válida." -#: gatekeeper/forms.py:183 +#: gatekeeper/forms.py:184 msgid "TOTP secret must be empty for OIDC authentication." msgstr "O segredo TOTP deve estar vazio para autenticação por OIDC." -#: gatekeeper/forms.py:185 +#: gatekeeper/forms.py:186 msgid "TOTP validation PIN must be empty for OIDC authentication." msgstr "O PIN de validação TOTP deve estar vazio para autenticação por OIDC." -#: gatekeeper/forms.py:194 gatekeeper/forms.py:236 gatekeeper/forms.py:267 +#: gatekeeper/forms.py:195 gatekeeper/forms.py:237 gatekeeper/forms.py:268 msgid "Authentication Method" msgstr "Método de Autenticação" -#: gatekeeper/forms.py:195 -msgid "IP/Network Address" -msgstr "Endereço IP/Rede" - -#: gatekeeper/forms.py:196 templates/gatekeeper/gatekeeper_list.html:257 +#: gatekeeper/forms.py:197 templates/gatekeeper/gatekeeper_list.html:257 msgid "Prefix Length" msgstr "Comprimento do Prefixo" -#: gatekeeper/forms.py:197 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:198 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 #: templates/gatekeeper/gatekeeper_list.html:258 msgid "Action" msgstr "Ação" -#: gatekeeper/forms.py:237 templates/gatekeeper/gatekeeper_list.html:221 +#: gatekeeper/forms.py:238 templates/gatekeeper/gatekeeper_list.html:221 msgid "Domain" msgstr "Domínio" @@ -1268,79 +1265,73 @@ msgstr "Senha para autenticação local (deixe em branco se não estiver usando) msgid "Per-user TOTP secret key" msgstr "Chave secreta TOTP por usuário" -#: gatekeeper/models.py:109 -msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." -msgstr "" -"Comprimento do prefixo CIDR (ex: 24 para /24). Deixe em branco para um único " -"host." - -#: gatekeeper/models.py:111 templates/gatekeeper/gatekeeper_list.html:270 +#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:270 msgid "Allow" msgstr "Permitir" -#: gatekeeper/views.py:55 +#: gatekeeper/views.py:54 msgid "Edit Gatekeeper User" msgstr "Editar Usuário Gatekeeper" -#: gatekeeper/views.py:58 +#: gatekeeper/views.py:57 msgid "Create Gatekeeper User" msgstr "Criar Usuário Gatekeeper" -#: gatekeeper/views.py:66 +#: gatekeeper/views.py:64 msgid "Gatekeeper User saved successfully." msgstr "Usuário Gatekeeper salvo com sucesso." -#: gatekeeper/views.py:91 +#: gatekeeper/views.py:86 msgid "Gatekeeper User deleted successfully." msgstr "Usuário Gatekeeper excluído com sucesso." -#: gatekeeper/views.py:96 +#: gatekeeper/views.py:91 msgid "Delete Gatekeeper User" msgstr "Excluir Usuário Gatekeeper" -#: gatekeeper/views.py:98 +#: gatekeeper/views.py:93 #, python-format msgid "Are you sure you want to delete the user \"%(username)s\"?" msgstr "Tem certeza de que deseja excluir o usuário \"%(username)s\"?" -#: gatekeeper/views.py:112 +#: gatekeeper/views.py:107 msgid "Edit Gatekeeper Group" msgstr "Editar Grupo Gatekeeper" -#: gatekeeper/views.py:115 +#: gatekeeper/views.py:110 msgid "Create Gatekeeper Group" msgstr "Criar Grupo Gatekeeper" -#: gatekeeper/views.py:123 +#: gatekeeper/views.py:117 msgid "Gatekeeper Group saved successfully." msgstr "Grupo Gatekeeper salvo com sucesso." -#: gatekeeper/views.py:148 +#: gatekeeper/views.py:139 msgid "Gatekeeper Group deleted successfully." msgstr "Grupo Gatekeeper excluído com sucesso." -#: gatekeeper/views.py:153 +#: gatekeeper/views.py:144 msgid "Delete Gatekeeper Group" msgstr "Excluir Grupo Gatekeeper" -#: gatekeeper/views.py:155 +#: gatekeeper/views.py:146 #, python-format msgid "Are you sure you want to delete the group \"%(name)s\"?" msgstr "Tem certeza de que deseja excluir o grupo \"%(name)s\"?" -#: gatekeeper/views.py:169 +#: gatekeeper/views.py:160 msgid "Edit Authentication Method" msgstr "Editar Método de Autenticação" -#: gatekeeper/views.py:172 +#: gatekeeper/views.py:163 msgid "Create Authentication Method" msgstr "Criar Método de Autenticação" -#: gatekeeper/views.py:180 +#: gatekeeper/views.py:170 msgid "Authentication Method saved successfully." msgstr "Método de Autenticação salvo com sucesso." -#: gatekeeper/views.py:187 +#: gatekeeper/views.py:175 msgid "" "\n" "
Authentication Types
\n" @@ -1376,92 +1367,117 @@ msgstr "" " \n" " " -#: gatekeeper/views.py:219 +#: gatekeeper/views.py:206 msgid "Authentication Method deleted successfully." msgstr "Método de Autenticação excluído com sucesso." -#: gatekeeper/views.py:224 +#: gatekeeper/views.py:211 msgid "Delete Authentication Method" msgstr "Excluir Método de Autenticação" -#: gatekeeper/views.py:226 +#: gatekeeper/views.py:213 #, python-format msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" msgstr "" "Tem certeza de que deseja excluir o método de autenticação \"%(name)s\"?" -#: gatekeeper/views.py:276 +#: gatekeeper/views.py:263 msgid "Edit Allowed Domain" msgstr "Editar Domínio Permitido" -#: gatekeeper/views.py:279 templates/gatekeeper/gatekeeper_list.html:186 +#: gatekeeper/views.py:266 templates/gatekeeper/gatekeeper_list.html:186 msgid "Add Allowed Domain" msgstr "Adicionar Domínio Permitido" -#: gatekeeper/views.py:287 +#: gatekeeper/views.py:273 msgid "Allowed Domain saved successfully." msgstr "Domínio Permitido salvo com sucesso." -#: gatekeeper/views.py:312 +#: gatekeeper/views.py:295 msgid "Allowed Domain deleted successfully." msgstr "Domínio Permitido excluído com sucesso." -#: gatekeeper/views.py:317 +#: gatekeeper/views.py:300 msgid "Delete Allowed Domain" msgstr "Excluir Domínio Permitido" -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:302 #, python-format msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" msgstr "Tem certeza de que deseja excluir o domínio permitido \"%(domain)s\"?" -#: gatekeeper/views.py:333 +#: gatekeeper/views.py:316 msgid "Edit Allowed Email" msgstr "Editar E-mail Permitido" -#: gatekeeper/views.py:336 templates/gatekeeper/gatekeeper_list.html:183 +#: gatekeeper/views.py:319 templates/gatekeeper/gatekeeper_list.html:183 msgid "Add Allowed Email" msgstr "Adicionar E-mail Permitido" -#: gatekeeper/views.py:344 +#: gatekeeper/views.py:326 msgid "Allowed Email saved successfully." msgstr "E-mail Permitido salvo com sucesso." -#: gatekeeper/views.py:369 +#: gatekeeper/views.py:348 msgid "Allowed Email deleted successfully." msgstr "E-mail Permitido excluído com sucesso." -#: gatekeeper/views.py:374 +#: gatekeeper/views.py:353 msgid "Delete Allowed Email" msgstr "Excluir E-mail Permitido" -#: gatekeeper/views.py:376 +#: gatekeeper/views.py:355 #, python-format msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" msgstr "Tem certeza de que deseja excluir o e-mail permitido \"%(email)s\"?" -#: gatekeeper/views.py:390 +#: gatekeeper/views.py:369 msgid "Edit IP Address" msgstr "Editar Endereço IP" -#: gatekeeper/views.py:393 templates/gatekeeper/gatekeeper_list.html:247 +#: gatekeeper/views.py:372 templates/gatekeeper/gatekeeper_list.html:247 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Adicionar IP" -#: gatekeeper/views.py:401 +#: gatekeeper/views.py:379 msgid "IP Address saved successfully." msgstr "Endereço IP salvo com sucesso." -#: gatekeeper/views.py:426 +#: gatekeeper/views.py:384 +msgid "" +"\n" +"
IP Address List
\n" +"

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

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

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

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

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

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

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

\n" +" " +msgstr "" + +#: gatekeeper/views.py:420 msgid "IP Address deleted successfully." msgstr "Endereço IP excluído com sucesso." -#: gatekeeper/views.py:431 +#: gatekeeper/views.py:425 msgid "Delete IP Address" msgstr "Excluir Endereço IP" -#: gatekeeper/views.py:433 +#: gatekeeper/views.py:427 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "Tem certeza de que deseja excluir o endereço IP \"%(address)s\"?" @@ -2543,7 +2559,7 @@ msgstr "Ver Código QR" msgid "Please enter a TOTP Secret first to generate the QR code." msgstr "Por favor, insira um Segredo TOTP primeiro para gerar o código QR." -#: templates/gatekeeper/gatekeeper_list.html:12 +#: templates/gatekeeper/gatekeeper_list.html:18 msgid "Gatekeeper Users" msgstr "Usuários Gatekeeper" @@ -4217,6 +4233,15 @@ msgstr "" "Nenhuma interface encontrada|Nenhuma interface WireGuard foi encontrada para " "processar." +#~ msgid "IP/Network Address" +#~ msgstr "Endereço IP/Rede" + +#~ msgid "" +#~ "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +#~ msgstr "" +#~ "Comprimento do prefixo CIDR (ex: 24 para /24). Deixe em branco para um " +#~ "único host." + #~ msgid "Intervals Count" #~ msgstr "Contagem de Intervalos" diff --git a/locale/sk/LC_MESSAGES/django.mo b/locale/sk/LC_MESSAGES/django.mo index a9a66c0e2a4e5d416565dc39c31deb5a1618ebcb..b51a1ca108a0c4d098da1f538e117ef269deaed3 100644 GIT binary patch delta 15257 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 delta 15482 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\n" "Language-Team: LANGUAGE \n" @@ -64,12 +64,12 @@ msgid "" msgstr "" "Naozaj chcete regenerovať token? Starý token okamžite prestane fungovať." -#: api_v2/forms.py:63 app_gateway/forms.py:42 app_gateway/forms.py:89 -#: app_gateway/forms.py:127 app_gateway/forms.py:158 app_gateway/forms.py:201 +#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:87 +#: app_gateway/forms.py:125 app_gateway/forms.py:156 app_gateway/forms.py:199 #: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84 -#: dns/forms.py:153 gatekeeper/forms.py:40 gatekeeper/forms.py:74 -#: gatekeeper/forms.py:136 gatekeeper/forms.py:223 gatekeeper/forms.py:253 -#: gatekeeper/forms.py:284 routing_templates/forms.py:71 scheduler/forms.py:102 +#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75 +#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 #: templates/firewall/manage_redirect_rule.html:84 @@ -81,8 +81,8 @@ msgstr "" msgid "Save" msgstr "Uložiť" -#: api_v2/models.py:10 app_gateway/forms.py:20 app_gateway/forms.py:103 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:98 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:101 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:99 #: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 #: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:60 #: templates/app_gateway/app_gateway_list.html:165 @@ -130,10 +130,10 @@ msgstr "Povolené" #: app_gateway/views.py:180 app_gateway/views.py:203 app_gateway/views.py:234 #: app_gateway/views.py:259 app_gateway/views.py:289 cluster/views.py:18 #: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:49 gatekeeper/views.py:82 gatekeeper/views.py:106 -#: gatekeeper/views.py:139 gatekeeper/views.py:163 gatekeeper/views.py:210 -#: gatekeeper/views.py:270 gatekeeper/views.py:303 gatekeeper/views.py:327 -#: gatekeeper/views.py:360 gatekeeper/views.py:384 gatekeeper/views.py:417 +#: gatekeeper/views.py:48 gatekeeper/views.py:78 gatekeeper/views.py:101 +#: gatekeeper/views.py:131 gatekeeper/views.py:154 gatekeeper/views.py:198 +#: gatekeeper/views.py:257 gatekeeper/views.py:287 gatekeeper/views.py:310 +#: gatekeeper/views.py:340 gatekeeper/views.py:363 gatekeeper/views.py:412 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Prístup zamietnutý" @@ -203,33 +203,33 @@ msgstr "Ste si istí, že chcete odstrániť kľúč API \"%(name)s\"?" msgid "API Documentation" msgstr "Dokumentácia API" -#: app_gateway/forms.py:21 templates/app_gateway/app_gateway_list.html:61 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:61 #: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 msgid "Display Name" msgstr "Zobrazovací názov" -#: app_gateway/forms.py:22 templates/app_gateway/app_gateway_list.html:62 +#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:62 msgid "Upstream" msgstr "" -#: app_gateway/forms.py:43 app_gateway/forms.py:90 app_gateway/forms.py:128 -#: app_gateway/forms.py:159 app_gateway/forms.py:202 gatekeeper/forms.py:41 -#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224 -#: gatekeeper/forms.py:254 gatekeeper/forms.py:285 scheduler/forms.py:103 +#: app_gateway/forms.py:41 app_gateway/forms.py:88 app_gateway/forms.py:126 +#: app_gateway/forms.py:157 app_gateway/forms.py:200 gatekeeper/forms.py:42 +#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225 +#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103 #: templates/generic_delete_confirmation.html:19 #: templates/scheduler/scheduleprofile_form.html:203 msgid "Cancel" msgstr "Zrušiť" -#: app_gateway/forms.py:56 +#: app_gateway/forms.py:54 msgid "Upstream URL cannot contain spaces." msgstr "" -#: app_gateway/forms.py:62 +#: app_gateway/forms.py:60 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "" -#: app_gateway/forms.py:72 app_gateway/forms.py:141 app_gateway/forms.py:172 +#: app_gateway/forms.py:70 app_gateway/forms.py:139 app_gateway/forms.py:170 #: templates/app_gateway/app_gateway_list.html:122 #: templates/app_gateway/app_gateway_list.html:212 #, fuzzy @@ -237,49 +237,49 @@ msgstr "" msgid "Application" msgstr "Akcia" -#: app_gateway/forms.py:73 cluster/forms.py:24 dns/forms.py:65 +#: app_gateway/forms.py:71 cluster/forms.py:24 dns/forms.py:65 #: templates/app_gateway/app_gateway_list.html:121 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Názov hostiteľa" -#: app_gateway/forms.py:104 templates/app_gateway/app_gateway_list.html:166 +#: app_gateway/forms.py:102 templates/app_gateway/app_gateway_list.html:166 msgid "Policy Type" msgstr "" -#: app_gateway/forms.py:105 +#: app_gateway/forms.py:103 #, fuzzy #| msgid "Allowed IPs" msgid "Allowed Groups" msgstr "Povolené IP adresy" -#: app_gateway/forms.py:106 templates/gatekeeper/gatekeeper_list.html:18 +#: app_gateway/forms.py:104 templates/gatekeeper/gatekeeper_list.html:12 msgid "Authentication Methods" msgstr "Metódy autentifikácie" -#: app_gateway/forms.py:142 templates/app_gateway/app_gateway_list.html:63 +#: app_gateway/forms.py:140 templates/app_gateway/app_gateway_list.html:63 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Predvolená politika" -#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:213 +#: app_gateway/forms.py:171 templates/app_gateway/app_gateway_list.html:213 #, fuzzy #| msgid "Route Type" msgid "Route Name" msgstr "Typ Trasy" -#: app_gateway/forms.py:174 templates/app_gateway/app_gateway_list.html:214 +#: app_gateway/forms.py:172 templates/app_gateway/app_gateway_list.html:214 msgid "Path Prefix" msgstr "" -#: app_gateway/forms.py:175 templates/app_gateway/app_gateway_list.html:215 +#: app_gateway/forms.py:173 templates/app_gateway/app_gateway_list.html:215 #, fuzzy #| msgid "Default Policy" msgid "Policy" msgstr "Predvolená politika" -#: app_gateway/forms.py:176 +#: app_gateway/forms.py:174 #, fuzzy #| msgid "Sort Order" msgid "Priority Order" @@ -301,7 +301,7 @@ msgstr "Jeden faktor" msgid "Two Factor" msgstr "Dva faktory" -#: app_gateway/models.py:48 gatekeeper/models.py:111 +#: app_gateway/models.py:48 gatekeeper/models.py:108 #: templates/gatekeeper/gatekeeper_list.html:272 msgid "Deny" msgstr "Odmietnuť" @@ -494,7 +494,8 @@ msgstr "Naozaj chcete odstrániť skupinu \"%(name)s\"?" msgid "IP Lock" msgstr "IP zámok" -#: cluster/forms.py:21 dns/forms.py:67 templates/cluster/workers_list.html:10 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:196 +#: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 @@ -770,7 +771,7 @@ msgstr "Statický DNS" msgid "Invalid hostname." msgstr "Neplatný názov hostiteľa." -#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:198 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:199 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1101,43 +1102,43 @@ msgstr "Spravovať nastavenia firewall" msgid "Firewall settings saved successfully" msgstr "Nastavenia firewall boli úspešne uložené" -#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: gatekeeper/forms.py:17 templates/accounts/login.html:14 #: templates/gatekeeper/gatekeeper_list.html:61 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Používateľské meno" -#: gatekeeper/forms.py:17 gatekeeper/forms.py:268 +#: gatekeeper/forms.py:18 gatekeeper/forms.py:269 #: templates/gatekeeper/gatekeeper_list.html:62 #: templates/gatekeeper/gatekeeper_list.html:204 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "E-mail" -#: gatekeeper/forms.py:18 templates/accounts/login.html:23 +#: gatekeeper/forms.py:19 templates/accounts/login.html:23 #: templates/vpn_invite/invite_settings.html:19 user_manager/forms.py:14 #: vpn_invite/forms.py:282 msgid "Password" msgstr "Heslo" -#: gatekeeper/forms.py:19 +#: gatekeeper/forms.py:20 msgid "TOTP Secret" msgstr "TOTP tajomstvo" -#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:104 +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:104 msgid "Group Name" msgstr "Názov skupiny" -#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:105 +#: gatekeeper/forms.py:56 templates/gatekeeper/gatekeeper_list.html:105 msgid "Members" msgstr "Členovia" -#: gatekeeper/forms.py:85 +#: gatekeeper/forms.py:86 msgid "TOTP Validation PIN" msgstr "Validačný PIN TOTP" -#: gatekeeper/forms.py:88 +#: gatekeeper/forms.py:89 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1145,91 +1146,87 @@ msgstr "" "Zadajte 6-miestny PIN vygenerovaný vašou autentifikačnou aplikáciou na " "overenie tajomstva." -#: gatekeeper/forms.py:99 +#: gatekeeper/forms.py:100 msgid "Authentication Type" msgstr "Typ autentifikácie" -#: gatekeeper/forms.py:100 +#: gatekeeper/forms.py:101 msgid "Global TOTP Secret" msgstr "Globálne TOTP tajomstvo" -#: gatekeeper/forms.py:101 +#: gatekeeper/forms.py:102 msgid "OIDC Provider URL" msgstr "URL poskytovateľa OIDC" -#: gatekeeper/forms.py:102 +#: gatekeeper/forms.py:103 msgid "OIDC Client ID" msgstr "ID klienta OIDC" -#: gatekeeper/forms.py:103 +#: gatekeeper/forms.py:104 msgid "OIDC Client Secret" msgstr "Secret klienta OIDC" -#: gatekeeper/forms.py:154 +#: gatekeeper/forms.py:155 msgid "TOTP secret must be empty for Local Password authentication." msgstr "TOTP tajomstvo musí byť prázdne pre autentifikáciu miestnym heslom." -#: gatekeeper/forms.py:156 +#: gatekeeper/forms.py:157 msgid "TOTP validation PIN must be empty for Local Password authentication." msgstr "" "Validačný PIN TOTP musí byť prázdny pre autentifikáciu miestnym heslom." -#: gatekeeper/forms.py:158 +#: gatekeeper/forms.py:159 msgid "OIDC fields must be empty for Local Password authentication." msgstr "Polia OIDC musia byť prázdne pre autentifikáciu miestnym heslom." -#: gatekeeper/forms.py:164 +#: gatekeeper/forms.py:165 msgid "Only one Local Password authentication method can be configured." msgstr "" "Je možné nakonfigurovať iba jednu metódu autentifikácie miestnym heslom." -#: gatekeeper/forms.py:167 +#: gatekeeper/forms.py:168 msgid "OIDC fields must be empty for TOTP authentication." msgstr "Polia OIDC musia byť prázdne pre autentifikáciu TOTP." -#: gatekeeper/forms.py:169 +#: gatekeeper/forms.py:170 msgid "TOTP secret is required for TOTP authentication." msgstr "TOTP tajomstvo je povinné pre autentifikáciu TOTP." -#: gatekeeper/forms.py:173 +#: gatekeeper/forms.py:174 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Na overenie tajomstva TOTP zadajte PIN." -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:179 msgid "Invalid TOTP PIN." msgstr "Neplatný PIN TOTP." -#: gatekeeper/forms.py:180 +#: gatekeeper/forms.py:181 msgid "Invalid TOTP secret format. Must be a valid Base32 string." msgstr "Neplatný formát tajomstva TOTP. Musí to byť platný reťazec Base32." -#: gatekeeper/forms.py:183 +#: gatekeeper/forms.py:184 msgid "TOTP secret must be empty for OIDC authentication." msgstr "TOTP tajomstvo musí byť prázdne pre autentifikáciu OIDC." -#: gatekeeper/forms.py:185 +#: gatekeeper/forms.py:186 msgid "TOTP validation PIN must be empty for OIDC authentication." msgstr "Validačný PIN TOTP musí byť prázdny pre autentifikáciu OIDC." -#: gatekeeper/forms.py:194 gatekeeper/forms.py:236 gatekeeper/forms.py:267 +#: gatekeeper/forms.py:195 gatekeeper/forms.py:237 gatekeeper/forms.py:268 msgid "Authentication Method" msgstr "Metóda autentifikácie" -#: gatekeeper/forms.py:195 -msgid "IP/Network Address" -msgstr "IP/Adresa siete" - -#: gatekeeper/forms.py:196 templates/gatekeeper/gatekeeper_list.html:257 +#: gatekeeper/forms.py:197 templates/gatekeeper/gatekeeper_list.html:257 msgid "Prefix Length" msgstr "Dĺžka prefixu" -#: gatekeeper/forms.py:197 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:198 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 #: templates/gatekeeper/gatekeeper_list.html:258 msgid "Action" msgstr "Akcia" -#: gatekeeper/forms.py:237 templates/gatekeeper/gatekeeper_list.html:221 +#: gatekeeper/forms.py:238 templates/gatekeeper/gatekeeper_list.html:221 msgid "Domain" msgstr "Doména" @@ -1261,79 +1258,73 @@ msgstr "Heslo pre miestnu autentifikáciu (ak nepoužívate, nechajte prázdne)" msgid "Per-user TOTP secret key" msgstr "Tajný kľúč TOTP pre jednotlivých používateľov" -#: gatekeeper/models.py:109 -msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." -msgstr "" -"Dĺžka prefixu CIDR (napr.: 24 pre /24). Ak ide o jedného hostiteľa, nechajte " -"prázdne." - -#: gatekeeper/models.py:111 templates/gatekeeper/gatekeeper_list.html:270 +#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:270 msgid "Allow" msgstr "Povoliť" -#: gatekeeper/views.py:55 +#: gatekeeper/views.py:54 msgid "Edit Gatekeeper User" msgstr "Upraviť používateľa Gatekeeper" -#: gatekeeper/views.py:58 +#: gatekeeper/views.py:57 msgid "Create Gatekeeper User" msgstr "Vytvoriť používateľa Gatekeeper" -#: gatekeeper/views.py:66 +#: gatekeeper/views.py:64 msgid "Gatekeeper User saved successfully." msgstr "Používateľ Gatekeeper bol úspešne uložený." -#: gatekeeper/views.py:91 +#: gatekeeper/views.py:86 msgid "Gatekeeper User deleted successfully." msgstr "Používateľ Gatekeeper bol úspešne odstránený." -#: gatekeeper/views.py:96 +#: gatekeeper/views.py:91 msgid "Delete Gatekeeper User" msgstr "Odstrániť používateľa Gatekeeper" -#: gatekeeper/views.py:98 +#: gatekeeper/views.py:93 #, python-format msgid "Are you sure you want to delete the user \"%(username)s\"?" msgstr "Naozaj chcete odstrániť používateľa \"%(username)s\"?" -#: gatekeeper/views.py:112 +#: gatekeeper/views.py:107 msgid "Edit Gatekeeper Group" msgstr "Upraviť skupinu Gatekeeper" -#: gatekeeper/views.py:115 +#: gatekeeper/views.py:110 msgid "Create Gatekeeper Group" msgstr "Vytvoriť skupinu Gatekeeper" -#: gatekeeper/views.py:123 +#: gatekeeper/views.py:117 msgid "Gatekeeper Group saved successfully." msgstr "Skupina Gatekeeper bola úspešne uložená." -#: gatekeeper/views.py:148 +#: gatekeeper/views.py:139 msgid "Gatekeeper Group deleted successfully." msgstr "Skupina Gatekeeper bola úspešne odstránená." -#: gatekeeper/views.py:153 +#: gatekeeper/views.py:144 msgid "Delete Gatekeeper Group" msgstr "Odstrániť skupinu Gatekeeper" -#: gatekeeper/views.py:155 +#: gatekeeper/views.py:146 #, python-format msgid "Are you sure you want to delete the group \"%(name)s\"?" msgstr "Naozaj chcete odstrániť skupinu \"%(name)s\"?" -#: gatekeeper/views.py:169 +#: gatekeeper/views.py:160 msgid "Edit Authentication Method" msgstr "Upraviť metódu autentifikácie" -#: gatekeeper/views.py:172 +#: gatekeeper/views.py:163 msgid "Create Authentication Method" msgstr "Vytvoriť metódu autentifikácie" -#: gatekeeper/views.py:180 +#: gatekeeper/views.py:170 msgid "Authentication Method saved successfully." msgstr "Metóda autentifikácie bola úspešne uložená." -#: gatekeeper/views.py:187 +#: gatekeeper/views.py:175 msgid "" "\n" "
Authentication Types
\n" @@ -1369,91 +1360,116 @@ msgstr "" " \n" " " -#: gatekeeper/views.py:219 +#: gatekeeper/views.py:206 msgid "Authentication Method deleted successfully." msgstr "Metóda autentifikácie bola úspešne odstránená." -#: gatekeeper/views.py:224 +#: gatekeeper/views.py:211 msgid "Delete Authentication Method" msgstr "Odstrániť metódu autentifikácie" -#: gatekeeper/views.py:226 +#: gatekeeper/views.py:213 #, python-format msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" msgstr "Naozaj chcete odstrániť metódu autentifikácie \"%(name)s\"?" -#: gatekeeper/views.py:276 +#: gatekeeper/views.py:263 msgid "Edit Allowed Domain" msgstr "Upraviť povolenú doménu" -#: gatekeeper/views.py:279 templates/gatekeeper/gatekeeper_list.html:186 +#: gatekeeper/views.py:266 templates/gatekeeper/gatekeeper_list.html:186 msgid "Add Allowed Domain" msgstr "Pridať povolenú doménu" -#: gatekeeper/views.py:287 +#: gatekeeper/views.py:273 msgid "Allowed Domain saved successfully." msgstr "Povolená doména bola úspešne uložená." -#: gatekeeper/views.py:312 +#: gatekeeper/views.py:295 msgid "Allowed Domain deleted successfully." msgstr "Povolená doména bola úspešne odstránená." -#: gatekeeper/views.py:317 +#: gatekeeper/views.py:300 msgid "Delete Allowed Domain" msgstr "Odstrániť povolenú doménu" -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:302 #, python-format msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" msgstr "Naozaj chcete odstrániť povolenú doménu \"%(domain)s\"?" -#: gatekeeper/views.py:333 +#: gatekeeper/views.py:316 msgid "Edit Allowed Email" msgstr "Upraviť povolený e-mail" -#: gatekeeper/views.py:336 templates/gatekeeper/gatekeeper_list.html:183 +#: gatekeeper/views.py:319 templates/gatekeeper/gatekeeper_list.html:183 msgid "Add Allowed Email" msgstr "Pridať povolený e-mail" -#: gatekeeper/views.py:344 +#: gatekeeper/views.py:326 msgid "Allowed Email saved successfully." msgstr "Povolený e-mail bol úspešne uložený." -#: gatekeeper/views.py:369 +#: gatekeeper/views.py:348 msgid "Allowed Email deleted successfully." msgstr "Povolený e-mail bol úspešne odstránený." -#: gatekeeper/views.py:374 +#: gatekeeper/views.py:353 msgid "Delete Allowed Email" msgstr "Odstrániť povolený e-mail" -#: gatekeeper/views.py:376 +#: gatekeeper/views.py:355 #, python-format msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" msgstr "Naozaj chcete odstrániť povolený e-mail \"%(email)s\"?" -#: gatekeeper/views.py:390 +#: gatekeeper/views.py:369 msgid "Edit IP Address" msgstr "Upraviť IP adresu" -#: gatekeeper/views.py:393 templates/gatekeeper/gatekeeper_list.html:247 +#: gatekeeper/views.py:372 templates/gatekeeper/gatekeeper_list.html:247 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Pridať IP adresu" -#: gatekeeper/views.py:401 +#: gatekeeper/views.py:379 msgid "IP Address saved successfully." msgstr "IP adresa bola úspešne uložená." -#: gatekeeper/views.py:426 +#: gatekeeper/views.py:384 +msgid "" +"\n" +"
IP Address List
\n" +"

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

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

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

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

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

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

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

\n" +" " +msgstr "" + +#: gatekeeper/views.py:420 msgid "IP Address deleted successfully." msgstr "IP adresa bola úspešne odstránená." -#: gatekeeper/views.py:431 +#: gatekeeper/views.py:425 msgid "Delete IP Address" msgstr "Odstrániť IP adresu" -#: gatekeeper/views.py:433 +#: gatekeeper/views.py:427 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "Naozaj chcete odstrániť IP adresu \"%(address)s\"?" @@ -2517,7 +2533,7 @@ msgstr "Zobraziť QR kód" msgid "Please enter a TOTP Secret first to generate the QR code." msgstr "Najprv zadajte TOTP tajomstvo, aby ste vygenerovali QR kód." -#: templates/gatekeeper/gatekeeper_list.html:12 +#: templates/gatekeeper/gatekeeper_list.html:18 msgid "Gatekeeper Users" msgstr "Používatelia Gatekeeper" @@ -4185,6 +4201,15 @@ msgstr "" "Neboli nájdené rozhrania|Neboli nájdené žiadne WireGuard rozhrania na " "spracovanie." +#~ msgid "IP/Network Address" +#~ msgstr "IP/Adresa siete" + +#~ msgid "" +#~ "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +#~ msgstr "" +#~ "Dĺžka prefixu CIDR (napr.: 24 pre /24). Ak ide o jedného hostiteľa, " +#~ "nechajte prázdne." + #~ msgid "Intervals Count" #~ msgstr "Počet intervalov"