diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 06f0c84..5cc0640 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 91003d0..fbb42e7 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-15 17:20-0300\n" +"POT-Creation-Date: 2026-03-18 10:58-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,17 +33,17 @@ msgstr "Zurück" #: api_v2/forms.py:30 cluster/forms.py:28 dns/forms.py:69 dns/forms.py:129 #: routing_templates/forms.py:37 -#: templates/app_gateway/app_gateway_list.html:158 -#: templates/app_gateway/application_details.html:75 -#: templates/app_gateway/application_details.html:125 +#: templates/app_gateway/app_gateway_list.html:166 +#: templates/app_gateway/application_details.html:103 +#: templates/app_gateway/application_details.html:154 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/gatekeeper/gatekeeper_list.html:93 -#: templates/gatekeeper/gatekeeper_list.html:136 -#: templates/gatekeeper/gatekeeper_list.html:181 -#: templates/gatekeeper/gatekeeper_list.html:229 -#: templates/gatekeeper/gatekeeper_list.html:246 -#: templates/gatekeeper/gatekeeper_list.html:298 +#: templates/gatekeeper/gatekeeper_list.html:94 +#: templates/gatekeeper/gatekeeper_list.html:137 +#: templates/gatekeeper/gatekeeper_list.html:182 +#: templates/gatekeeper/gatekeeper_list.html:230 +#: templates/gatekeeper/gatekeeper_list.html:247 +#: templates/gatekeeper/gatekeeper_list.html:299 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -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:40 app_gateway/forms.py:92 -#: app_gateway/forms.py:136 app_gateway/forms.py:154 app_gateway/forms.py:237 -#: app_gateway/forms.py:278 cluster/forms.py:67 cluster/forms.py:124 -#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:70 -#: gatekeeper/forms.py:150 gatekeeper/forms.py:212 gatekeeper/forms.py:299 -#: gatekeeper/forms.py:329 gatekeeper/forms.py:360 +#: api_v2/forms.py:63 app_gateway/forms.py:41 app_gateway/forms.py:99 +#: app_gateway/forms.py:144 app_gateway/forms.py:162 app_gateway/forms.py:241 +#: app_gateway/forms.py:283 cluster/forms.py:67 cluster/forms.py:124 +#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:71 +#: gatekeeper/forms.py:152 gatekeeper/forms.py:239 gatekeeper/forms.py:362 +#: gatekeeper/forms.py:392 gatekeeper/forms.py:423 #: routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 @@ -82,14 +82,14 @@ msgstr "" msgid "Save" msgstr "Speichern" -#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:106 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:174 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:113 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:188 #: 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:58 -#: templates/app_gateway/app_gateway_list.html:138 -#: templates/app_gateway/application_details.html:26 +#: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:66 +#: templates/app_gateway/app_gateway_list.html:146 +#: templates/app_gateway/application_details.html:35 #: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 -#: templates/gatekeeper/gatekeeper_list.html:165 +#: templates/gatekeeper/gatekeeper_list.html:166 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -127,16 +127,16 @@ msgid "Enabled" msgstr "Aktiviert" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 -#: app_gateway/views.py:26 app_gateway/views.py:48 app_gateway/views.py:68 -#: app_gateway/views.py:112 app_gateway/views.py:135 app_gateway/views.py:170 -#: app_gateway/views.py:194 app_gateway/views.py:205 app_gateway/views.py:267 -#: app_gateway/views.py:293 app_gateway/views.py:328 app_gateway/views.py:354 -#: app_gateway/views.py:404 app_gateway/views.py:432 cluster/views.py:18 -#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:48 gatekeeper/views.py:98 gatekeeper/views.py:121 -#: gatekeeper/views.py:151 gatekeeper/views.py:174 gatekeeper/views.py:222 -#: gatekeeper/views.py:281 gatekeeper/views.py:311 gatekeeper/views.py:334 -#: gatekeeper/views.py:364 gatekeeper/views.py:387 gatekeeper/views.py:436 +#: app_gateway/views.py:28 app_gateway/views.py:52 app_gateway/views.py:83 +#: app_gateway/views.py:130 app_gateway/views.py:157 app_gateway/views.py:196 +#: app_gateway/views.py:224 app_gateway/views.py:235 app_gateway/views.py:297 +#: app_gateway/views.py:323 app_gateway/views.py:358 app_gateway/views.py:384 +#: app_gateway/views.py:434 app_gateway/views.py:462 cluster/views.py:18 +#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:25 +#: gatekeeper/views.py:52 gatekeeper/views.py:102 gatekeeper/views.py:125 +#: gatekeeper/views.py:155 gatekeeper/views.py:178 gatekeeper/views.py:226 +#: gatekeeper/views.py:297 gatekeeper/views.py:327 gatekeeper/views.py:350 +#: gatekeeper/views.py:380 gatekeeper/views.py:403 gatekeeper/views.py:452 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Zugriff verweigert" @@ -207,20 +207,19 @@ msgstr "" msgid "API Documentation" msgstr "API-Dokumentation" -#: app_gateway/forms.py:19 templates/app_gateway/application_details.html:27 -#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 -msgid "Display Name" -msgstr "Anzeigename" - -#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:59 -#: templates/app_gateway/application_details.html:28 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:67 +#: templates/app_gateway/application_details.html:36 msgid "Upstream" msgstr "Upstream" -#: app_gateway/forms.py:41 app_gateway/forms.py:93 app_gateway/forms.py:137 -#: app_gateway/forms.py:155 app_gateway/forms.py:238 app_gateway/forms.py:279 -#: gatekeeper/forms.py:71 gatekeeper/forms.py:151 gatekeeper/forms.py:213 -#: gatekeeper/forms.py:300 gatekeeper/forms.py:330 gatekeeper/forms.py:361 +#: app_gateway/forms.py:20 +msgid "Allow invalid/self-signed certificate" +msgstr "" + +#: app_gateway/forms.py:42 app_gateway/forms.py:100 app_gateway/forms.py:145 +#: app_gateway/forms.py:163 app_gateway/forms.py:242 app_gateway/forms.py:284 +#: gatekeeper/forms.py:72 gatekeeper/forms.py:153 gatekeeper/forms.py:240 +#: gatekeeper/forms.py:363 gatekeeper/forms.py:393 gatekeeper/forms.py:424 #: scheduler/forms.py:103 #: templates/app_gateway/access_policy_type_select.html:50 #: templates/generic_delete_confirmation.html:19 @@ -228,62 +227,69 @@ msgstr "Upstream" msgid "Cancel" msgstr "Abbrechen" -#: app_gateway/forms.py:54 -msgid "This is a reserved system name." -msgstr "Dies ist ein reservierter Systemname." - -#: app_gateway/forms.py:58 +#: app_gateway/forms.py:55 msgid "This upstream is reserved by the system." msgstr "Dieser Upstream ist vom System reserviert." -#: app_gateway/forms.py:61 +#: app_gateway/forms.py:58 msgid "Upstream URL cannot contain spaces." msgstr "Upstream-URL darf keine Leerzeichen enthalten." -#: app_gateway/forms.py:67 +#: app_gateway/forms.py:64 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "" "Geben Sie eine gültige Upstream-URL ein, die mit http:// oder https:// " "beginnt." -#: app_gateway/forms.py:77 cluster/forms.py:24 dns/forms.py:65 -#: templates/app_gateway/app_gateway_list.html:101 -#: templates/app_gateway/application_details.html:61 +#: app_gateway/forms.py:66 +msgid "" +"Upstream must be a bare host address with no path, query or fragment. Use " +"http://host or http://host:port" +msgstr "" + +#: app_gateway/forms.py:76 cluster/forms.py:24 dns/forms.py:65 +#: templates/app_gateway/app_gateway_list.html:109 +#: templates/app_gateway/application_details.html:75 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Hostname" -#: app_gateway/forms.py:107 templates/app_gateway/app_gateway_list.html:139 +#: app_gateway/forms.py:84 +msgid "Hostname contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:114 templates/app_gateway/app_gateway_list.html:147 msgid "Policy Type" msgstr "Richtlinientyp" -#: app_gateway/forms.py:108 +#: app_gateway/forms.py:115 msgid "Allowed Groups" msgstr "Erlaubte Gruppen" -#: app_gateway/forms.py:109 templates/gatekeeper/gatekeeper_list.html:12 +#: app_gateway/forms.py:116 templates/gatekeeper/gatekeeper_list.html:13 msgid "Authentication Methods" msgstr "Authentifizierungsmethoden" -#: app_gateway/forms.py:188 +#: app_gateway/forms.py:196 msgid "Cannot select more than one Local Password authentication method." msgstr "" "Es kann nicht mehr als eine lokale Passwort-Authentifizierungsmethode " "ausgewählt werden." -#: app_gateway/forms.py:192 +#: app_gateway/forms.py:200 msgid "" "Cannot select more than one OpenID Connect (OIDC) authentication method." msgstr "" "Es kann nicht mehr als eine OpenID Connect (OIDC)-Authentifizierungsmethode " "ausgewählt werden." -#: app_gateway/forms.py:196 +#: app_gateway/forms.py:204 msgid "Cannot select more than one TOTP authentication method." -msgstr "Es kann nicht mehr als eine TOTP-Authentifizierungsmethode ausgewählt werden." +msgstr "" +"Es kann nicht mehr als eine TOTP-Authentifizierungsmethode ausgewählt werden." -#: app_gateway/forms.py:200 +#: app_gateway/forms.py:208 msgid "" "Cannot select both Local Password and OpenID Connect (OIDC) authentication " "methods." @@ -291,15 +297,7 @@ msgstr "" "Die Authentifizierungsmethoden \"Lokales Passwort\" und OpenID Connect " "(OIDC) können nicht gleichzeitig ausgewählt werden." -#: app_gateway/forms.py:204 -msgid "" -"TOTP must be combined with a Local Password or OpenID Connect authentication " -"method." -msgstr "" -"TOTP muss mit einer lokalen Passwort- oder OpenID Connect-" -"Authentifizierungsmethode kombiniert werden." - -#: app_gateway/forms.py:208 +#: app_gateway/forms.py:212 msgid "" "At least one user group must be selected when using Local Password " "authentication." @@ -307,75 +305,102 @@ msgstr "" "Bei Verwendung der lokalen Passwort-Authentifizierung muss mindestens eine " "Benutzergruppe ausgewählt werden." -#: app_gateway/forms.py:212 +#: app_gateway/forms.py:216 msgid "User groups can only be used with Local Password authentication." msgstr "" "Benutzergruppen können nur mit der lokalen Passwort-Authentifizierung " "verwendet werden." -#: app_gateway/forms.py:222 templates/app_gateway/app_gateway_list.html:62 -#: templates/app_gateway/application_details.html:31 +#: app_gateway/forms.py:226 templates/app_gateway/app_gateway_list.html:70 +#: templates/app_gateway/application_details.html:39 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Standard‑Richtlinie" -#: app_gateway/forms.py:251 templates/app_gateway/application_details.html:105 +#: app_gateway/forms.py:255 templates/app_gateway/application_details.html:134 msgid "Route Name" msgstr "Routenname" -#: app_gateway/forms.py:252 templates/app_gateway/application_details.html:106 +#: app_gateway/forms.py:256 templates/app_gateway/application_details.html:135 msgid "Path Prefix" msgstr "Pfadpräfix" -#: app_gateway/forms.py:253 templates/app_gateway/application_details.html:107 +#: app_gateway/forms.py:257 templates/app_gateway/application_details.html:136 msgid "Policy" msgstr "Richtlinie" -#: app_gateway/forms.py:254 templates/app_gateway/application_details.html:108 +#: app_gateway/forms.py:258 templates/app_gateway/application_details.html:137 msgid "Order" msgstr "Reihenfolge" -#: app_gateway/models.py:12 +#: app_gateway/forms.py:299 +#, fuzzy +#| msgid "Invite URL must start with 'https://'." +msgid "Path prefix must start with /." +msgstr "Die Einladungs‑URL muss mit 'https://' beginnen." + +#: app_gateway/forms.py:301 +#, fuzzy +#| msgid "Upstream URL cannot contain spaces." +msgid "Path prefix cannot contain spaces." +msgstr "Upstream-URL darf keine Leerzeichen enthalten." + +#: app_gateway/forms.py:303 +msgid "Path prefix contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:308 +#, fuzzy +#| msgid "This upstream is reserved by the system." +msgid "This path prefix is reserved by the system." +msgstr "Dieser Upstream ist vom System reserviert." + +#: app_gateway/models.py:14 msgid "Upstream address, e.g.: http://10.188.18.27:3000" msgstr "Upstream-Adresse, z. B.: http://10.188.18.27:3000" -#: app_gateway/models.py:45 +#: app_gateway/models.py:15 +msgid "Allow invalid or self-signed TLS certificates from the upstream" +msgstr "" + +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:19 msgid "Public" msgstr "Öffentlich" -#: app_gateway/models.py:45 +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:30 msgid "Protected" msgstr "Geschützt" -#: app_gateway/models.py:45 gatekeeper/models.py:108 +#: app_gateway/models.py:53 gatekeeper/models.py:142 #: templates/app_gateway/access_policy_type_select.html:41 -#: templates/gatekeeper/gatekeeper_list.html:288 +#: templates/gatekeeper/gatekeeper_list.html:289 msgid "Deny" msgstr "Verweigern" -#: app_gateway/models.py:80 -msgid "Route identifier, used in export (e.g.: public_area)" -msgstr "Routen-Identifikator, verwendet im Export (z.B.: public_area)" - -#: app_gateway/views.py:60 +#: app_gateway/views.py:75 msgid "Application Details" msgstr "Anwendungsdetails" -#: app_gateway/views.py:74 templates/app_gateway/application_details.html:15 +#: app_gateway/views.py:90 app_gateway/views.py:174 app_gateway/views.py:204 +msgid "The WireGuard WebAdmin application cannot be modified." +msgstr "" + +#: app_gateway/views.py:92 templates/app_gateway/application_details.html:16 +#: templates/app_gateway/application_details.html:23 msgid "Edit Application" msgstr "Anwendung bearbeiten" -#: app_gateway/views.py:77 +#: app_gateway/views.py:95 msgid "Create Application" msgstr "Anwendung erstellen" -#: app_gateway/views.py:84 +#: app_gateway/views.py:102 msgid "Application saved successfully." msgstr "Anwendung erfolgreich gespeichert." -#: app_gateway/views.py:89 +#: app_gateway/views.py:107 msgid "" "\n" "
Application
\n" @@ -409,62 +434,67 @@ msgstr "" " \n" " " -#: app_gateway/views.py:120 +#: app_gateway/views.py:137 +msgid "The WireGuard WebAdmin application cannot be deleted." +msgstr "" + +#: app_gateway/views.py:142 msgid "Application deleted successfully." msgstr "Anwendung erfolgreich gelöscht." -#: app_gateway/views.py:125 templates/app_gateway/application_details.html:18 +#: app_gateway/views.py:147 templates/app_gateway/application_details.html:19 +#: templates/app_gateway/application_details.html:26 msgid "Delete Application" msgstr "Anwendung löschen" -#: app_gateway/views.py:127 +#: app_gateway/views.py:149 #, python-format msgid "Are you sure you want to delete the application \"%(name)s\"?" msgstr "Sind Sie sicher, dass Sie die Anwendung \"%(name)s\" löschen möchten?" -#: app_gateway/views.py:143 +#: app_gateway/views.py:165 msgid "Edit Application Host" msgstr "Anwendungshost bearbeiten" -#: app_gateway/views.py:147 +#: app_gateway/views.py:169 msgid "Add Application Host" msgstr "Anwendungshost hinzufügen" -#: app_gateway/views.py:156 +#: app_gateway/views.py:182 msgid "Application Host saved successfully." msgstr "Anwendungshost erfolgreich gespeichert." -#: app_gateway/views.py:179 +#: app_gateway/views.py:209 msgid "Application Host deleted successfully." msgstr "Anwendungshost erfolgreich gelöscht." -#: app_gateway/views.py:184 +#: app_gateway/views.py:214 msgid "Delete Application Host" msgstr "Anwendungshost löschen" -#: app_gateway/views.py:186 +#: app_gateway/views.py:216 #, python-format msgid "Are you sure you want to delete the host \"%(hostname)s\"?" msgstr "Sind Sie sicher, dass Sie den Host \"%(hostname)s\" löschen möchten?" -#: app_gateway/views.py:197 +#: app_gateway/views.py:227 #: templates/app_gateway/access_policy_type_select.html:9 msgid "Select Access Policy Type" msgstr "Zugriffsrichtlinientyp auswählen" -#: app_gateway/views.py:212 +#: app_gateway/views.py:242 msgid "Edit Access Policy" msgstr "Zugriffsrichtlinie bearbeiten" -#: app_gateway/views.py:216 +#: app_gateway/views.py:246 msgid "Create Access Policy" msgstr "Zugriffsrichtlinie erstellen" -#: app_gateway/views.py:223 +#: app_gateway/views.py:253 msgid "Access Policy saved successfully." msgstr "Zugriffsrichtlinie erfolgreich gespeichert." -#: app_gateway/views.py:229 +#: app_gateway/views.py:259 msgid "" "\n" "
Public Policy
\n" @@ -478,7 +508,7 @@ msgstr "" "Anwendung, ohne eine Authentifizierung zu erfordern.

\n" " " -#: app_gateway/views.py:237 +#: app_gateway/views.py:267 msgid "" "\n" "
Deny Policy
\n" @@ -491,7 +521,7 @@ msgstr "" "übereinstimmenden Routen.

\n" " " -#: app_gateway/views.py:245 +#: app_gateway/views.py:275 msgid "" "\n" "
Protected Policy
\n" @@ -522,11 +552,11 @@ msgstr "" " \n" " " -#: app_gateway/views.py:276 +#: app_gateway/views.py:306 msgid "Access Policy deleted successfully." msgstr "Zugriffsrichtlinie erfolgreich gelöscht." -#: app_gateway/views.py:278 +#: app_gateway/views.py:308 msgid "" "Cannot delete this Access Policy because it is currently in use by an " "Application Route or Application Default Policy." @@ -534,57 +564,57 @@ msgstr "" "Diese Zugriffsrichtlinie kann nicht gelöscht werden, da sie derzeit von " "einer Anwendungsroute oder einer Standardanwendungsrichtlinie verwendet wird." -#: app_gateway/views.py:283 +#: app_gateway/views.py:313 msgid "Delete Access Policy" msgstr "Zugriffsrichtlinie löschen" -#: app_gateway/views.py:285 +#: app_gateway/views.py:315 #, python-format msgid "Are you sure you want to delete the access policy \"%(name)s\"?" msgstr "" "Sind Sie sicher, dass Sie die Zugriffsrichtlinie \"%(name)s\" löschen " "möchten?" -#: app_gateway/views.py:301 +#: app_gateway/views.py:331 msgid "Edit Application Default Policy" msgstr "Standardrichtlinie der Anwendung bearbeiten" -#: app_gateway/views.py:305 +#: app_gateway/views.py:335 msgid "Set Application Default Policy" msgstr "Standardrichtlinie der Anwendung festlegen" -#: app_gateway/views.py:314 +#: app_gateway/views.py:344 msgid "Application Default Policy saved successfully." msgstr "Standardrichtlinie der Anwendung erfolgreich gespeichert." -#: app_gateway/views.py:337 +#: app_gateway/views.py:367 msgid "Application Default Policy deleted successfully." msgstr "Standardrichtlinie der Anwendung erfolgreich gelöscht." -#: app_gateway/views.py:342 +#: app_gateway/views.py:372 msgid "Delete Application Default Policy" msgstr "Standardrichtlinie der Anwendung löschen" -#: app_gateway/views.py:344 +#: app_gateway/views.py:374 #, python-format msgid "Are you sure you want to remove the default policy for \"%(name)s\"?" msgstr "" "Sind Sie sicher, dass Sie die Standardrichtlinie für \"%(name)s\" entfernen " "möchten?" -#: app_gateway/views.py:362 +#: app_gateway/views.py:392 msgid "Edit Application Route" msgstr "Anwendungsroute bearbeiten" -#: app_gateway/views.py:366 +#: app_gateway/views.py:396 msgid "Add Application Route" msgstr "Anwendungsroute hinzufügen" -#: app_gateway/views.py:375 +#: app_gateway/views.py:405 msgid "Application Route saved successfully." msgstr "Anwendungsroute erfolgreich gespeichert." -#: app_gateway/views.py:380 +#: app_gateway/views.py:410 msgid "" "\n" "
Application Route
\n" @@ -625,43 +655,42 @@ msgstr "" " \n" " " -#: app_gateway/views.py:413 +#: app_gateway/views.py:443 msgid "Application Route deleted successfully." msgstr "Anwendungsroute erfolgreich gelöscht." -#: app_gateway/views.py:418 +#: app_gateway/views.py:448 msgid "Delete Application Route" msgstr "Anwendungsroute löschen" -#: app_gateway/views.py:420 +#: app_gateway/views.py:450 #, python-format msgid "Are you sure you want to delete the route \"%(name)s\" (%(path)s)?" msgstr "" "Sind Sie sicher, dass Sie die Route \"%(name)s\" (%(path)s) löschen möchten?" -#: app_gateway/views.py:443 +#: app_gateway/views.py:468 +msgid "" +"Configuration export is not available because Caddy is not enabled. To use " +"App Gateway and Gatekeeper, start the application using docker-compose-" +"caddy.yml." +msgstr "" + +#: app_gateway/views.py:478 msgid "Configuration exported successfully." msgstr "Konfiguration erfolgreich exportiert." -#: app_gateway/views.py:445 -msgid "" -"Caddy is not active. Configuration files were exported for debugging " -"purposes." -msgstr "" -"Caddy ist nicht aktiv. Konfigurationsdateien wurden zu Debugging-Zwecken " -"exportiert." - #: cluster/forms.py:20 msgid "IP Lock" msgstr "IP-Sperre" -#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:271 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:315 #: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 #: templates/firewall/manage_redirect_rule.html:68 -#: templates/gatekeeper/gatekeeper_list.html:272 +#: templates/gatekeeper/gatekeeper_list.html:273 #: templates/wireguard/wireguard_status.html:45 msgid "IP Address" msgstr "IP‑Adresse" @@ -938,7 +967,7 @@ msgstr "Statischer DNS" msgid "Invalid hostname." msgstr "Ungültiger Hostname." -#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:274 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:318 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1273,13 +1302,13 @@ msgstr "Firewall‑Einstellungen verwalten" msgid "Firewall settings saved successfully" msgstr "Firewall‑Einstellungen erfolgreich gespeichert" -#: gatekeeper/forms.py:17 templates/accounts/login.html:23 +#: gatekeeper/forms.py:18 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:20 +#: gatekeeper/forms.py:21 msgid "" "Minimum 8 characters, with at least one uppercase letter, one lowercase " "letter, and one number." @@ -1287,15 +1316,15 @@ msgstr "" "Mindestens 8 Zeichen, mit mindestens einem Großbuchstaben, einem " "Kleinbuchstaben und einer Zahl." -#: gatekeeper/forms.py:23 +#: gatekeeper/forms.py:24 msgid "Confirm Password" msgstr "Passwort bestätigen" -#: gatekeeper/forms.py:28 gatekeeper/forms.py:161 +#: gatekeeper/forms.py:29 gatekeeper/forms.py:163 msgid "TOTP Validation PIN" msgstr "TOTP-Validierungs-PIN" -#: gatekeeper/forms.py:31 gatekeeper/forms.py:164 +#: gatekeeper/forms.py:32 gatekeeper/forms.py:166 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1303,193 +1332,227 @@ msgstr "" "Geben Sie eine 6-stellige PIN ein, die von Ihrer Authenticator-App generiert " "wurde, um das Geheimnis zu validieren." -#: gatekeeper/forms.py:38 templates/accounts/login.html:14 -#: templates/gatekeeper/gatekeeper_list.html:61 +#: gatekeeper/forms.py:39 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:62 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Benutzername" -#: gatekeeper/forms.py:39 gatekeeper/forms.py:344 -#: templates/gatekeeper/gatekeeper_list.html:62 -#: templates/gatekeeper/gatekeeper_list.html:220 +#: gatekeeper/forms.py:40 gatekeeper/forms.py:407 +#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:221 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "E‑Mail" -#: gatekeeper/forms.py:40 +#: gatekeeper/forms.py:41 msgid "TOTP Secret" msgstr "TOTP-Geheimnis" -#: gatekeeper/forms.py:87 +#: gatekeeper/forms.py:88 msgid "Password is required." msgstr "Passwort ist erforderlich." -#: gatekeeper/forms.py:90 user_manager/forms.py:127 +#: gatekeeper/forms.py:91 user_manager/forms.py:127 msgid "Password must be at least 8 characters long." msgstr "Das Passwort muss mindestens 8 Zeichen lang sein." -#: gatekeeper/forms.py:92 +#: gatekeeper/forms.py:93 msgid "Password must contain at least one lowercase letter." msgstr "Das Passwort muss mindestens einen Kleinbuchstaben enthalten." -#: gatekeeper/forms.py:94 +#: gatekeeper/forms.py:95 msgid "Password must contain at least one uppercase letter." msgstr "Das Passwort muss mindestens einen Großbuchstaben enthalten." -#: gatekeeper/forms.py:96 +#: gatekeeper/forms.py:97 msgid "Password must contain at least one number." msgstr "Das Passwort muss mindestens eine Zahl enthalten." -#: gatekeeper/forms.py:98 +#: gatekeeper/forms.py:99 msgid "Passwords do not match." msgstr "Passwörter stimmen nicht überein." -#: gatekeeper/forms.py:103 gatekeeper/forms.py:249 +#: gatekeeper/forms.py:104 gatekeeper/forms.py:276 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:108 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:109 gatekeeper/forms.py:281 msgid "Invalid TOTP PIN." msgstr "Ungültige TOTP-PIN." -#: gatekeeper/forms.py:110 gatekeeper/forms.py:256 +#: gatekeeper/forms.py:111 gatekeeper/forms.py:283 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:130 templates/gatekeeper/gatekeeper_list.html:120 +#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 msgid "Group Name" msgstr "Gruppenname" -#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 +#: gatekeeper/forms.py:132 templates/gatekeeper/gatekeeper_list.html:122 msgid "Members" msgstr "Mitglieder" +#: gatekeeper/forms.py:169 +#, fuzzy +#| msgid "Expiration" +msgid "Session Expiration" +msgstr "Ablauf" + #: gatekeeper/forms.py:175 +msgid "Unit" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Hour(s)" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Day(s)" +msgstr "" + +#: gatekeeper/forms.py:189 msgid "Authentication Type" msgstr "Authentifizierungstyp" -#: gatekeeper/forms.py:176 +#: gatekeeper/forms.py:190 msgid "Global TOTP Secret" msgstr "Globales TOTP-Geheimnis" -#: gatekeeper/forms.py:177 +#: gatekeeper/forms.py:191 msgid "OIDC Provider URL" msgstr "OIDC-Anbieter-URL" -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:192 msgid "OIDC Client ID" msgstr "OIDC-Client-ID" -#: gatekeeper/forms.py:179 +#: gatekeeper/forms.py:193 msgid "OIDC Client Secret" msgstr "OIDC-Client-Geheimnis" -#: gatekeeper/forms.py:230 +#: gatekeeper/forms.py:257 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:232 +#: gatekeeper/forms.py:259 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:234 +#: gatekeeper/forms.py:261 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:240 +#: gatekeeper/forms.py:267 msgid "Only one Local Password authentication method can be configured." msgstr "" "Es kann nur eine Authentifizierungsmethode mit lokalem Passwort konfiguriert " "werden." -#: gatekeeper/forms.py:243 +#: gatekeeper/forms.py:270 msgid "OIDC fields must be empty for TOTP authentication." msgstr "OIDC-Felder müssen für die TOTP-Authentifizierung leer sein." -#: gatekeeper/forms.py:245 +#: gatekeeper/forms.py:272 msgid "TOTP secret is required for TOTP authentication." msgstr "Das TOTP-Geheimnis ist für die TOTP-Authentifizierung erforderlich." -#: gatekeeper/forms.py:259 +#: gatekeeper/forms.py:285 +msgid "" +"OIDC authentication is temporarily unavailable and will be available soon." +msgstr "" + +#: gatekeeper/forms.py:287 msgid "TOTP secret must be empty for OIDC authentication." msgstr "Das TOTP-Geheimnis muss für die OIDC-Authentifizierung leer sein." -#: gatekeeper/forms.py:261 +#: gatekeeper/forms.py:289 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:270 gatekeeper/forms.py:312 gatekeeper/forms.py:343 +#: gatekeeper/forms.py:314 gatekeeper/forms.py:375 gatekeeper/forms.py:406 msgid "Authentication Method" msgstr "Authentifizierungsmethode" -#: gatekeeper/forms.py:272 templates/gatekeeper/gatekeeper_list.html:273 +#: gatekeeper/forms.py:316 templates/gatekeeper/gatekeeper_list.html:274 msgid "Prefix Length" msgstr "Präfixlänge" -#: gatekeeper/forms.py:273 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:317 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 -#: templates/gatekeeper/gatekeeper_list.html:274 +#: templates/gatekeeper/gatekeeper_list.html:275 msgid "Action" msgstr "Aktion" -#: gatekeeper/forms.py:313 templates/gatekeeper/gatekeeper_list.html:237 +#: gatekeeper/forms.py:332 +#, python-format +msgid "Prefix length for IPv%(version)d must be between 0 and %(max)d." +msgstr "" + +#: gatekeeper/forms.py:376 templates/gatekeeper/gatekeeper_list.html:238 msgid "Domain" msgstr "Domäne" -#: gatekeeper/models.py:10 +#: gatekeeper/models.py:27 msgid "Local Password" msgstr "Lokales Passwort" -#: gatekeeper/models.py:11 +#: gatekeeper/models.py:28 msgid "One-Time Password (TOTP)" msgstr "Einmalpasswort (TOTP)" -#: gatekeeper/models.py:12 +#: gatekeeper/models.py:29 msgid "OpenID Connect (OIDC)" msgstr "OpenID Connect (OIDC)" -#: gatekeeper/models.py:13 +#: gatekeeper/models.py:30 msgid "IP Address List" msgstr "IP-Adressliste" -#: gatekeeper/models.py:17 +#: gatekeeper/models.py:34 msgid "Shared/global TOTP secret key" msgstr "Gemeinsamer/globaler TOTP-Geheimschlüssel" -#: gatekeeper/models.py:68 +#: gatekeeper/models.py:39 +#, fuzzy +#| msgid "Expiration (minutes)" +msgid "Session expiration time in minutes" +msgstr "Ablauf (Minuten)" + +#: gatekeeper/models.py:96 msgid "Password for local authentication (leave blank if not using)" msgstr "" "Passwort für die lokale Authentifizierung (leer lassen, wenn nicht verwendet)" -#: gatekeeper/models.py:69 +#: gatekeeper/models.py:97 msgid "Per-user TOTP secret key" msgstr "Benutzerspezifischer TOTP-Geheimschlüssel" -#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:286 +#: gatekeeper/models.py:142 templates/gatekeeper/gatekeeper_list.html:287 msgid "Allow" msgstr "Zulassen" -#: gatekeeper/views.py:54 +#: gatekeeper/views.py:58 msgid "Edit Gatekeeper User" msgstr "Gatekeeper-Benutzer bearbeiten" -#: gatekeeper/views.py:57 +#: gatekeeper/views.py:61 msgid "Create Gatekeeper User" msgstr "Gatekeeper-Benutzer erstellen" -#: gatekeeper/views.py:64 +#: gatekeeper/views.py:68 msgid "Gatekeeper User saved successfully." msgstr "Gatekeeper-Benutzer erfolgreich gespeichert." -#: gatekeeper/views.py:69 +#: gatekeeper/views.py:73 msgid "" "\n" "

Gatekeeper User

\n" @@ -1513,76 +1576,101 @@ msgid "" msgstr "" "\n" "

Gatekeeper-Benutzer

\n" -"

Gatekeeper-Benutzer werden zur Authentifizierung gegenüber geschützten " -"Anwendungen verwendet, die von diesem Gateway verwaltet werden.

\n" +"

Gatekeeper-Benutzer werden zur Authentifizierung gegenüber " +"geschützten Anwendungen verwendet, die von diesem Gateway verwaltet werden.\n" "\n" "

Passwort
\n" -"

Erforderlich beim Erstellen eines Benutzers. Lassen Sie beim Bearbeiten beide Passwortfelder " -"leer, um das aktuelle Passwort beizubehalten.\n" -" Passwörter werden mit Argon2id-Hashing gespeichert.

\n" +"

Erforderlich beim Erstellen eines Benutzers. Lassen Sie beim " +"Bearbeiten beide Passwortfelder leer, um das aktuelle Passwort " +"beizubehalten.\n" +" Passwörter werden mit Argon2id-Hashing gespeichert." +"

\n" "\n" "
TOTP-Geheimnis
\n" -"

Optionales benutzerspezifisches TOTP-Geheimnis. Wenn festgelegt, authentifiziert sich dieser Benutzer " -"mit seinem eigenen Geheimnis anstelle des\n" -" globalen TOTP-Geheimnisses, das in der Authentifizierungsmethode konfiguriert ist. Verwenden Sie die " -"Schaltflächen unter dem Feld, um ein\n" -" zufälliges Geheimnis zu generieren und den QR-Code mit Ihrer Authentifizierungs-App zu scannen. " -"Validieren Sie das Geheimnis durch Eingabe der aktuellen\n" +"

Optionales benutzerspezifisches TOTP-Geheimnis. Wenn festgelegt, " +"authentifiziert sich dieser Benutzer mit seinem eigenen Geheimnis anstelle " +"des\n" +" globalen TOTP-Geheimnisses, das in der Authentifizierungsmethode " +"konfiguriert ist. Verwenden Sie die Schaltflächen unter dem Feld, um ein\n" +" zufälliges Geheimnis zu generieren und den QR-Code mit Ihrer " +"Authentifizierungs-App zu scannen. Validieren Sie das Geheimnis durch " +"Eingabe der aktuellen\n" " 6-stelligen PIN vor dem Speichern.

\n" " " -#: gatekeeper/views.py:106 +#: gatekeeper/views.py:110 msgid "Gatekeeper User deleted successfully." msgstr "Gatekeeper-Benutzer erfolgreich gelöscht." -#: gatekeeper/views.py:111 +#: gatekeeper/views.py:115 msgid "Delete Gatekeeper User" msgstr "Gatekeeper-Benutzer löschen" -#: gatekeeper/views.py:113 +#: gatekeeper/views.py:117 #, 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:127 +#: gatekeeper/views.py:131 msgid "Edit Gatekeeper Group" msgstr "Gatekeeper-Gruppe bearbeiten" -#: gatekeeper/views.py:130 +#: gatekeeper/views.py:134 msgid "Create Gatekeeper Group" msgstr "Gatekeeper-Gruppe erstellen" -#: gatekeeper/views.py:137 +#: gatekeeper/views.py:141 msgid "Gatekeeper Group saved successfully." msgstr "Gatekeeper-Gruppe erfolgreich gespeichert." -#: gatekeeper/views.py:159 +#: gatekeeper/views.py:163 msgid "Gatekeeper Group deleted successfully." msgstr "Gatekeeper-Gruppe erfolgreich gelöscht." -#: gatekeeper/views.py:164 +#: gatekeeper/views.py:168 msgid "Delete Gatekeeper Group" msgstr "Gatekeeper-Gruppe löschen" -#: gatekeeper/views.py:166 +#: gatekeeper/views.py:170 #, 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:180 +#: gatekeeper/views.py:184 msgid "Edit Authentication Method" msgstr "Authentifizierungsmethode bearbeiten" -#: gatekeeper/views.py:183 +#: gatekeeper/views.py:187 msgid "Create Authentication Method" msgstr "Authentifizierungsmethode erstellen" -#: gatekeeper/views.py:190 +#: gatekeeper/views.py:194 msgid "Authentication Method saved successfully." msgstr "Authentifizierungsmethode erfolgreich gespeichert." -#: gatekeeper/views.py:195 +#: gatekeeper/views.py:199 +#, fuzzy +#| msgid "" +#| "\n" +#| "

Authentication Types

\n" +#| "

Select how users will authenticate through this method.

\n" +#| " \n" +#| "
Local Password
\n" +#| "

Users will authenticate using a standard username and password " +#| "stored locally. Only one of this type can be created.

\n" +#| " \n" +#| "
OIDC (OpenID Connect)
\n" +#| "

Users will authenticate via an external identity provider " +#| "(like Keycloak, Google, or Authelia). Requires Provider URL, Client ID, " +#| "and Client Secret.

\n" +#| " \n" +#| "
TOTP (Time-Based One-Time Password)
\n" +#| "

Users will need to enter a rotating token from an " +#| "authenticator app. If a user does not have a personal TOTP configured, " +#| "the Global TOTP Secret will be used instead.

\n" +#| " " msgid "" "\n" "

Authentication Types

\n" @@ -1594,8 +1682,8 @@ msgid "" " \n" "
OIDC (OpenID Connect)
\n" "

Users will authenticate via an external identity provider (like " -"Keycloak, Google, or Authelia). Requires Provider URL, Client ID, and Client " -"Secret.

\n" +"Keycloak or Google). Requires Provider URL, Client ID, and Client Secret.\n" " \n" "
TOTP (Time-Based One-Time Password)
\n" "

Users will need to enter a rotating token from an authenticator " @@ -1605,103 +1693,115 @@ msgid "" msgstr "" "\n" "

Authentifizierungstypen

\n" -"

Wählen Sie aus, wie sich Benutzer über diese Methode authentifizieren sollen.

\n" +"

Wählen Sie aus, wie sich Benutzer über diese Methode " +"authentifizieren sollen.

\n" "\n" "
Lokales Passwort
\n" -"

Benutzer authentifizieren sich mit einem standardmäßigen Benutzernamen und Passwort, " -"das lokal gespeichert ist. Es kann nur eine davon erstellt werden.

\n" +"

Benutzer authentifizieren sich mit einem standardmäßigen " +"Benutzernamen und Passwort, das lokal gespeichert ist. Es kann nur eine " +"davon erstellt werden.

\n" "\n" "
OIDC (OpenID Connect)
\n" -"

Benutzer authentifizieren sich über einen externen Identitätsanbieter " -"(wie Keycloak, Google oder Authelia). Erfordert Provider-URL, Client-ID und Client-Secret.

\n" +"

Benutzer authentifizieren sich über einen externen " +"Identitätsanbieter (wie Keycloak, Google oder Authelia). Erfordert Provider-" +"URL, Client-ID und Client-Secret.

\n" "\n" "
TOTP (Zeitbasiertes Einmalpasswort)
\n" -"

Benutzer müssen ein rotierendes Token aus einer Authentifizierungs-App eingeben. " -"Wenn ein Benutzer kein persönliches TOTP konfiguriert hat, wird stattdessen das globale TOTP-Geheimnis verwendet.

\n" +"

Benutzer müssen ein rotierendes Token aus einer " +"Authentifizierungs-App eingeben. Wenn ein Benutzer kein persönliches TOTP " +"konfiguriert hat, wird stattdessen das globale TOTP-Geheimnis verwendet.

\n" " " -#: gatekeeper/views.py:230 +#: gatekeeper/views.py:237 +#, python-format +msgid "" +"Cannot delete authentication method \"%(method)s\" because it is used by the " +"following policies: %(policies)s." +msgstr "" + +#: gatekeeper/views.py:243 msgid "Authentication Method deleted successfully." msgstr "Authentifizierungsmethode erfolgreich gelöscht." -#: gatekeeper/views.py:235 +#: gatekeeper/views.py:248 msgid "Delete Authentication Method" msgstr "Authentifizierungsmethode löschen" -#: gatekeeper/views.py:237 +#: gatekeeper/views.py:250 #, 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:287 +#: gatekeeper/views.py:303 msgid "Edit Allowed Domain" msgstr "Zulässige Domäne bearbeiten" -#: gatekeeper/views.py:290 templates/gatekeeper/gatekeeper_list.html:202 +#: gatekeeper/views.py:306 templates/gatekeeper/gatekeeper_list.html:203 msgid "Add Allowed Domain" msgstr "Zulässige Domäne hinzufügen" -#: gatekeeper/views.py:297 +#: gatekeeper/views.py:313 msgid "Allowed Domain saved successfully." msgstr "Zulässige Domäne erfolgreich gespeichert." -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:335 msgid "Allowed Domain deleted successfully." msgstr "Zulässige Domäne erfolgreich gelöscht." -#: gatekeeper/views.py:324 +#: gatekeeper/views.py:340 msgid "Delete Allowed Domain" msgstr "Zulässige Domäne löschen" -#: gatekeeper/views.py:326 +#: gatekeeper/views.py:342 #, 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:340 +#: gatekeeper/views.py:356 msgid "Edit Allowed Email" msgstr "Zulässige E-Mail bearbeiten" -#: gatekeeper/views.py:343 templates/gatekeeper/gatekeeper_list.html:199 +#: gatekeeper/views.py:359 templates/gatekeeper/gatekeeper_list.html:200 msgid "Add Allowed Email" msgstr "Zulässige E-Mail hinzufügen" -#: gatekeeper/views.py:350 +#: gatekeeper/views.py:366 msgid "Allowed Email saved successfully." msgstr "Zulässige E-Mail erfolgreich gespeichert." -#: gatekeeper/views.py:372 +#: gatekeeper/views.py:388 msgid "Allowed Email deleted successfully." msgstr "Zulässige E-Mail erfolgreich gelöscht." -#: gatekeeper/views.py:377 +#: gatekeeper/views.py:393 msgid "Delete Allowed Email" msgstr "Zulässige E-Mail löschen" -#: gatekeeper/views.py:379 +#: gatekeeper/views.py:395 #, 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:393 +#: gatekeeper/views.py:409 msgid "Edit IP Address" msgstr "IP-Adresse bearbeiten" -#: gatekeeper/views.py:396 templates/gatekeeper/gatekeeper_list.html:263 +#: gatekeeper/views.py:412 templates/gatekeeper/gatekeeper_list.html:264 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "IP‑Adresse hinzufügen" -#: gatekeeper/views.py:403 +#: gatekeeper/views.py:419 msgid "IP Address saved successfully." msgstr "IP-Adresse erfolgreich gespeichert." -#: gatekeeper/views.py:408 +#: gatekeeper/views.py:424 msgid "" "\n" "
IP Address List
\n" @@ -1748,25 +1848,26 @@ msgstr "" "„Büronetzwerk“, „Blockierter Angreifer“).

\n" " " -#: gatekeeper/views.py:444 +#: gatekeeper/views.py:460 msgid "IP Address deleted successfully." msgstr "IP-Adresse erfolgreich gelöscht." -#: gatekeeper/views.py:449 +#: gatekeeper/views.py:465 msgid "Delete IP Address" msgstr "IP-Adresse löschen" -#: gatekeeper/views.py:451 +#: gatekeeper/views.py:467 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "" "Sind Sie sicher, dass Sie die IP-Adresse \"%(address)s\" löschen möchten?" -#: intl_tools/forms.py:11 templates/accounts/login.html:36 +#: intl_tools/forms.py:11 msgid "Language" msgstr "Sprache" -#: intl_tools/forms.py:24 templates/template_parts/base_navbar.html:14 +#: intl_tools/forms.py:24 templates/accounts/login.html:35 +#: templates/template_parts/base_navbar.html:19 msgid "Change Language" msgstr "Sprache ändern" @@ -2102,6 +2203,11 @@ msgstr "" msgid "Login" msgstr "Anmelden" +#: templates/accounts/login.html:40 +#: templates/template_parts/base_navbar.html:14 +msgid "Toggle Dark Mode" +msgstr "" + #: templates/accounts/logout.html:11 msgid "You have been successfully logged out." msgstr "Sie wurden erfolgreich abgemeldet." @@ -2124,8 +2230,8 @@ msgid "In" msgstr "Eingehend" #: templates/api_v2/api_documentation.html:49 -#: templates/gatekeeper/gatekeeper_list.html:166 -#: templates/gatekeeper/gatekeeper_list.html:211 +#: templates/gatekeeper/gatekeeper_list.html:167 +#: templates/gatekeeper/gatekeeper_list.html:212 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Typ" @@ -2135,13 +2241,13 @@ msgid "Required" msgstr "Erforderlich" #: templates/api_v2/api_documentation.html:62 -#: templates/gatekeeper/gatekeeper_list.html:75 +#: templates/gatekeeper/gatekeeper_list.html:76 #: templates/scheduler/scheduleprofile_form.html:175 msgid "Yes" msgstr "Ja" #: templates/api_v2/api_documentation.html:64 -#: templates/gatekeeper/gatekeeper_list.html:77 +#: templates/gatekeeper/gatekeeper_list.html:78 #: templates/scheduler/scheduleprofile_form.html:177 msgid "No" msgstr "Nein" @@ -2180,17 +2286,17 @@ msgid "Disabled" msgstr "Deaktiviert" #: templates/api_v2/list.html:68 -#: templates/app_gateway/app_gateway_list.html:154 -#: templates/app_gateway/application_details.html:71 -#: templates/app_gateway/application_details.html:121 +#: templates/app_gateway/app_gateway_list.html:162 +#: templates/app_gateway/application_details.html:99 +#: templates/app_gateway/application_details.html:150 #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 -#: templates/gatekeeper/gatekeeper_list.html:89 -#: templates/gatekeeper/gatekeeper_list.html:132 -#: templates/gatekeeper/gatekeeper_list.html:177 -#: templates/gatekeeper/gatekeeper_list.html:225 -#: templates/gatekeeper/gatekeeper_list.html:242 -#: templates/gatekeeper/gatekeeper_list.html:294 +#: templates/gatekeeper/gatekeeper_list.html:90 +#: templates/gatekeeper/gatekeeper_list.html:133 +#: templates/gatekeeper/gatekeeper_list.html:178 +#: templates/gatekeeper/gatekeeper_list.html:226 +#: templates/gatekeeper/gatekeeper_list.html:243 +#: templates/gatekeeper/gatekeeper_list.html:295 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -2223,78 +2329,83 @@ msgstr "Authentifizierung mit bestimmten Methoden oder Gruppen anfordern." msgid "Deny all access." msgstr "Gesamten Zugriff verweigern." -#: templates/app_gateway/app_gateway_list.html:12 -#: templates/app_gateway/app_gateway_list.html:30 +#: templates/app_gateway/app_gateway_list.html:13 +#: templates/app_gateway/app_gateway_list.html:31 msgid "Applications" msgstr "Anwendungen" -#: templates/app_gateway/app_gateway_list.html:18 +#: templates/app_gateway/app_gateway_list.html:19 msgid "Access Policies" msgstr "Zugriffsrichtlinien" -#: templates/app_gateway/app_gateway_list.html:34 -#: templates/app_gateway/app_gateway_list.html:60 +#: templates/app_gateway/app_gateway_list.html:35 +#: templates/app_gateway/app_gateway_list.html:68 #: templates/dns/static_host_list.html:70 msgid "Hosts" msgstr "Hosts" -#: templates/app_gateway/app_gateway_list.html:42 +#: templates/app_gateway/app_gateway_list.html:44 +#: templates/app_gateway/app_gateway_list.html:50 msgid "Export Configuration" msgstr "Konfiguration exportieren" -#: templates/app_gateway/app_gateway_list.html:46 +#: templates/app_gateway/app_gateway_list.html:49 +msgid "Export is not available because Caddy is not enabled." +msgstr "" + +#: templates/app_gateway/app_gateway_list.html:54 msgid "Add Application" msgstr "Anwendung hinzufügen" -#: templates/app_gateway/app_gateway_list.html:61 +#: templates/app_gateway/app_gateway_list.html:69 msgid "Routes" msgstr "Routen" -#: templates/app_gateway/app_gateway_list.html:80 -#: templates/app_gateway/application_details.html:39 +#: templates/app_gateway/app_gateway_list.html:88 +#: templates/app_gateway/application_details.html:47 msgid "Default (Deny)" msgstr "Standard (Verweigern)" -#: templates/app_gateway/app_gateway_list.html:90 +#: templates/app_gateway/app_gateway_list.html:98 msgid "No Applications found." msgstr "Keine Anwendungen gefunden." -#: templates/app_gateway/app_gateway_list.html:102 +#: templates/app_gateway/app_gateway_list.html:110 msgid "Application" msgstr "Anwendung" -#: templates/app_gateway/app_gateway_list.html:121 +#: templates/app_gateway/app_gateway_list.html:129 msgid "No Hosts found." msgstr "Keine Hosts gefunden." -#: templates/app_gateway/app_gateway_list.html:129 +#: templates/app_gateway/app_gateway_list.html:137 msgid "Add Access Policy" msgstr "Zugriffsrichtlinie hinzufügen" -#: templates/app_gateway/app_gateway_list.html:140 -#: templates/gatekeeper/gatekeeper_list.html:43 -#: templates/gatekeeper/gatekeeper_list.html:64 +#: templates/app_gateway/app_gateway_list.html:148 +#: templates/gatekeeper/gatekeeper_list.html:44 +#: templates/gatekeeper/gatekeeper_list.html:65 msgid "Groups" msgstr "Gruppen" -#: templates/app_gateway/app_gateway_list.html:141 +#: templates/app_gateway/app_gateway_list.html:149 msgid "Auth Methods" msgstr "Authentifizierungsmethoden" -#: templates/app_gateway/app_gateway_list.html:142 -#: templates/app_gateway/application_details.html:62 -#: templates/app_gateway/application_details.html:109 -#: templates/gatekeeper/gatekeeper_list.html:65 -#: templates/gatekeeper/gatekeeper_list.html:122 -#: templates/gatekeeper/gatekeeper_list.html:167 -#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/app_gateway/app_gateway_list.html:150 +#: templates/app_gateway/application_details.html:76 +#: templates/app_gateway/application_details.html:138 +#: templates/gatekeeper/gatekeeper_list.html:66 +#: templates/gatekeeper/gatekeeper_list.html:123 +#: templates/gatekeeper/gatekeeper_list.html:168 +#: templates/gatekeeper/gatekeeper_list.html:215 #: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Aktionen" -#: templates/app_gateway/app_gateway_list.html:169 +#: templates/app_gateway/app_gateway_list.html:177 msgid "No Access Policies found." msgstr "Keine Zugriffsrichtlinien gefunden." @@ -2303,34 +2414,79 @@ msgstr "Keine Zugriffsrichtlinien gefunden." msgid "Back to List" msgstr "Zurück zur Liste" -#: templates/app_gateway/application_details.html:41 +#: templates/app_gateway/application_details.html:15 +#: templates/app_gateway/application_details.html:59 +#: templates/app_gateway/application_details.html:91 +#: templates/app_gateway/application_details.html:94 +msgid "This application cannot be modified" +msgstr "" + +#: templates/app_gateway/application_details.html:18 +#, fuzzy +#| msgid "Application Route deleted successfully." +msgid "This application cannot be deleted" +msgstr "Anwendungsroute erfolgreich gelöscht." + +#: templates/app_gateway/application_details.html:49 msgid "Set Policy" msgstr "Richtlinie festlegen" -#: templates/app_gateway/application_details.html:48 +#: templates/app_gateway/application_details.html:56 msgid "Application Hosts" msgstr "Anwendungshosts" -#: templates/app_gateway/application_details.html:52 +#: templates/app_gateway/application_details.html:60 +#: templates/app_gateway/application_details.html:65 msgid "Add Host" msgstr "Host hinzufügen" -#: templates/app_gateway/application_details.html:86 +#: templates/app_gateway/application_details.html:115 msgid "No Hosts configured for this application." msgstr "Keine Hosts für diese Anwendung konfiguriert." -#: templates/app_gateway/application_details.html:92 +#: templates/app_gateway/application_details.html:121 msgid "Application Routes" msgstr "Anwendungsrouten" -#: templates/app_gateway/application_details.html:96 +#: templates/app_gateway/application_details.html:125 msgid "Add Route" msgstr "Route hinzufügen" -#: templates/app_gateway/application_details.html:136 +#: templates/app_gateway/application_details.html:165 msgid "No Routes configured for this application." msgstr "Keine Routen für diese Anwendung konfiguriert." +#: templates/app_gateway/caddy_disabled_alert.html:5 +#, fuzzy +#| msgid "Cluster is not enabled" +msgid "Caddy is not enabled" +msgstr "Cluster ist nicht aktiviert" + +#: templates/app_gateway/caddy_disabled_alert.html:6 +msgid "" +"The App Gateway and Gatekeeper modules require Caddy and the auth-gateway " +"container to be running. Please start the application using docker-" +"compose-caddy.yml." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:7 +msgid "" +"Depending on your custom firewall or proxy rules, the way you access " +"wireguard_webadmin may change slightly after enabling Caddy." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:8 +msgid "" +"Switching to Caddy is simple, but it may require a bit of time and attention " +"to review your current setup." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:9 +#, fuzzy +#| msgid "For more information, please visit:" +msgid "For more information, see the discussion:" +msgstr "Für weitere Informationen besuchen Sie bitte:" + #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 #: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 @@ -2841,86 +2997,93 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Port‑Weiterleitungsregel erstellen" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:63 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:67 #: templates/gatekeeper/gatekeeper_user_form.html:43 msgid "View QR Code" msgstr "QR-Code anzeigen" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:64 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:68 #: templates/gatekeeper/gatekeeper_user_form.html:44 msgid "Generate TOTP Secret" msgstr "TOTP-Geheimnis generieren" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:93 -#: templates/gatekeeper/gatekeeper_user_form.html:73 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:105 +#: templates/gatekeeper/gatekeeper_user_form.html:81 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:18 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:127 +#: templates/gatekeeper/gatekeeper_user_form.html:103 +#, fuzzy +#| msgid "Error creating invite." +msgid "Error generating QR code." +msgstr "Fehler beim Erstellen der Einladung." + +#: templates/gatekeeper/gatekeeper_list.html:19 msgid "Gatekeeper Users" msgstr "Gatekeeper-Benutzer" -#: templates/gatekeeper/gatekeeper_list.html:24 +#: templates/gatekeeper/gatekeeper_list.html:25 msgid "Allowed Emails & Domains" msgstr "Zulässige E-Mails und Domänen" -#: templates/gatekeeper/gatekeeper_list.html:30 +#: templates/gatekeeper/gatekeeper_list.html:31 msgid "IP Addresses" msgstr "IP-Adressen" -#: templates/gatekeeper/gatekeeper_list.html:40 +#: templates/gatekeeper/gatekeeper_list.html:41 #: templates/user_manager/peer_group_list.html:11 msgid "Users" msgstr "Benutzer" -#: templates/gatekeeper/gatekeeper_list.html:51 +#: templates/gatekeeper/gatekeeper_list.html:52 #: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 msgid "Add User" msgstr "Benutzer hinzufügen" -#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:64 msgid "TOTP" msgstr "TOTP" -#: templates/gatekeeper/gatekeeper_list.html:104 +#: templates/gatekeeper/gatekeeper_list.html:105 msgid "No Gatekeeper Users found." msgstr "Keine Gatekeeper-Benutzer gefunden." -#: templates/gatekeeper/gatekeeper_list.html:111 +#: templates/gatekeeper/gatekeeper_list.html:112 msgid "Add Group" msgstr "Gruppe hinzufügen" -#: templates/gatekeeper/gatekeeper_list.html:147 +#: templates/gatekeeper/gatekeeper_list.html:148 msgid "No Gatekeeper Groups found." msgstr "Keine Gatekeeper-Gruppen gefunden." -#: templates/gatekeeper/gatekeeper_list.html:156 +#: templates/gatekeeper/gatekeeper_list.html:157 msgid "Add Auth Method" msgstr "Authentifizierungsmethode hinzufügen" -#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/gatekeeper/gatekeeper_list.html:193 msgid "No Authentication Methods found." msgstr "Keine Authentifizierungsmethoden gefunden." -#: templates/gatekeeper/gatekeeper_list.html:212 +#: templates/gatekeeper/gatekeeper_list.html:213 msgid "Identity" msgstr "Identität" -#: templates/gatekeeper/gatekeeper_list.html:213 -#: templates/gatekeeper/gatekeeper_list.html:275 +#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/gatekeeper/gatekeeper_list.html:276 msgid "Auth Method" msgstr "Authentifizierungsmethode" -#: templates/gatekeeper/gatekeeper_list.html:257 +#: templates/gatekeeper/gatekeeper_list.html:258 msgid "No Allowed Emails or Domains found." msgstr "Keine zulässigen E-Mails oder Domänen gefunden." -#: templates/gatekeeper/gatekeeper_list.html:276 +#: templates/gatekeeper/gatekeeper_list.html:277 msgid "Manage" msgstr "Verwalten" -#: templates/gatekeeper/gatekeeper_list.html:309 +#: templates/gatekeeper/gatekeeper_list.html:310 msgid "No IP Addresses found." msgstr "Keine IP-Adressen gefunden." @@ -3543,6 +3706,10 @@ msgstr "Peer löschen" msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Geben Sie \\\"delete\\\" ein, um die Peer‑Konfiguration zu entfernen." +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Anzeigename" + #: templates/wireguard/wireguard_manage_server.html:27 msgid "" "\n" @@ -4542,5 +4709,25 @@ msgstr "" "Keine Schnittstellen gefunden|Es wurden keine WireGuard‑Schnittstellen " "gefunden." +#~ msgid "This is a reserved system name." +#~ msgstr "Dies ist ein reservierter Systemname." + +#~ msgid "" +#~ "TOTP must be combined with a Local Password or OpenID Connect " +#~ "authentication method." +#~ msgstr "" +#~ "TOTP muss mit einer lokalen Passwort- oder OpenID Connect-" +#~ "Authentifizierungsmethode kombiniert werden." + +#~ msgid "Route identifier, used in export (e.g.: public_area)" +#~ msgstr "Routen-Identifikator, verwendet im Export (z.B.: public_area)" + +#~ msgid "" +#~ "Caddy is not active. Configuration files were exported for debugging " +#~ "purposes." +#~ msgstr "" +#~ "Caddy ist nicht aktiv. Konfigurationsdateien wurden zu Debugging-Zwecken " +#~ "exportiert." + #~ msgid "Global TOTP Before Authentication" #~ msgstr "Globales TOTP vor der Authentifizierung" diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo index 145e5d1..578a10f 100644 Binary files a/locale/es/LC_MESSAGES/django.mo and b/locale/es/LC_MESSAGES/django.mo differ diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 25b85eb..62324d6 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-15 17:20-0300\n" +"POT-Creation-Date: 2026-03-18 10:58-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,17 +33,17 @@ msgstr "Volver" #: api_v2/forms.py:30 cluster/forms.py:28 dns/forms.py:69 dns/forms.py:129 #: routing_templates/forms.py:37 -#: templates/app_gateway/app_gateway_list.html:158 -#: templates/app_gateway/application_details.html:75 -#: templates/app_gateway/application_details.html:125 +#: templates/app_gateway/app_gateway_list.html:166 +#: templates/app_gateway/application_details.html:103 +#: templates/app_gateway/application_details.html:154 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/gatekeeper/gatekeeper_list.html:93 -#: templates/gatekeeper/gatekeeper_list.html:136 -#: templates/gatekeeper/gatekeeper_list.html:181 -#: templates/gatekeeper/gatekeeper_list.html:229 -#: templates/gatekeeper/gatekeeper_list.html:246 -#: templates/gatekeeper/gatekeeper_list.html:298 +#: templates/gatekeeper/gatekeeper_list.html:94 +#: templates/gatekeeper/gatekeeper_list.html:137 +#: templates/gatekeeper/gatekeeper_list.html:182 +#: templates/gatekeeper/gatekeeper_list.html:230 +#: templates/gatekeeper/gatekeeper_list.html:247 +#: templates/gatekeeper/gatekeeper_list.html:299 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -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:40 app_gateway/forms.py:92 -#: app_gateway/forms.py:136 app_gateway/forms.py:154 app_gateway/forms.py:237 -#: app_gateway/forms.py:278 cluster/forms.py:67 cluster/forms.py:124 -#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:70 -#: gatekeeper/forms.py:150 gatekeeper/forms.py:212 gatekeeper/forms.py:299 -#: gatekeeper/forms.py:329 gatekeeper/forms.py:360 +#: api_v2/forms.py:63 app_gateway/forms.py:41 app_gateway/forms.py:99 +#: app_gateway/forms.py:144 app_gateway/forms.py:162 app_gateway/forms.py:241 +#: app_gateway/forms.py:283 cluster/forms.py:67 cluster/forms.py:124 +#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:71 +#: gatekeeper/forms.py:152 gatekeeper/forms.py:239 gatekeeper/forms.py:362 +#: gatekeeper/forms.py:392 gatekeeper/forms.py:423 #: routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 @@ -82,14 +82,14 @@ msgstr "" msgid "Save" msgstr "Guardar" -#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:106 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:174 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:113 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:188 #: 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:58 -#: templates/app_gateway/app_gateway_list.html:138 -#: templates/app_gateway/application_details.html:26 +#: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:66 +#: templates/app_gateway/app_gateway_list.html:146 +#: templates/app_gateway/application_details.html:35 #: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 -#: templates/gatekeeper/gatekeeper_list.html:165 +#: templates/gatekeeper/gatekeeper_list.html:166 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -127,16 +127,16 @@ msgid "Enabled" msgstr "Habilitado" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 -#: app_gateway/views.py:26 app_gateway/views.py:48 app_gateway/views.py:68 -#: app_gateway/views.py:112 app_gateway/views.py:135 app_gateway/views.py:170 -#: app_gateway/views.py:194 app_gateway/views.py:205 app_gateway/views.py:267 -#: app_gateway/views.py:293 app_gateway/views.py:328 app_gateway/views.py:354 -#: app_gateway/views.py:404 app_gateway/views.py:432 cluster/views.py:18 -#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:48 gatekeeper/views.py:98 gatekeeper/views.py:121 -#: gatekeeper/views.py:151 gatekeeper/views.py:174 gatekeeper/views.py:222 -#: gatekeeper/views.py:281 gatekeeper/views.py:311 gatekeeper/views.py:334 -#: gatekeeper/views.py:364 gatekeeper/views.py:387 gatekeeper/views.py:436 +#: app_gateway/views.py:28 app_gateway/views.py:52 app_gateway/views.py:83 +#: app_gateway/views.py:130 app_gateway/views.py:157 app_gateway/views.py:196 +#: app_gateway/views.py:224 app_gateway/views.py:235 app_gateway/views.py:297 +#: app_gateway/views.py:323 app_gateway/views.py:358 app_gateway/views.py:384 +#: app_gateway/views.py:434 app_gateway/views.py:462 cluster/views.py:18 +#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:25 +#: gatekeeper/views.py:52 gatekeeper/views.py:102 gatekeeper/views.py:125 +#: gatekeeper/views.py:155 gatekeeper/views.py:178 gatekeeper/views.py:226 +#: gatekeeper/views.py:297 gatekeeper/views.py:327 gatekeeper/views.py:350 +#: gatekeeper/views.py:380 gatekeeper/views.py:403 gatekeeper/views.py:452 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acceso denegado" @@ -206,20 +206,19 @@ 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:19 templates/app_gateway/application_details.html:27 -#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 -msgid "Display Name" -msgstr "Nombre para mostrar" - -#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:59 -#: templates/app_gateway/application_details.html:28 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:67 +#: templates/app_gateway/application_details.html:36 msgid "Upstream" msgstr "Upstream" -#: app_gateway/forms.py:41 app_gateway/forms.py:93 app_gateway/forms.py:137 -#: app_gateway/forms.py:155 app_gateway/forms.py:238 app_gateway/forms.py:279 -#: gatekeeper/forms.py:71 gatekeeper/forms.py:151 gatekeeper/forms.py:213 -#: gatekeeper/forms.py:300 gatekeeper/forms.py:330 gatekeeper/forms.py:361 +#: app_gateway/forms.py:20 +msgid "Allow invalid/self-signed certificate" +msgstr "" + +#: app_gateway/forms.py:42 app_gateway/forms.py:100 app_gateway/forms.py:145 +#: app_gateway/forms.py:163 app_gateway/forms.py:242 app_gateway/forms.py:284 +#: gatekeeper/forms.py:72 gatekeeper/forms.py:153 gatekeeper/forms.py:240 +#: gatekeeper/forms.py:363 gatekeeper/forms.py:393 gatekeeper/forms.py:424 #: scheduler/forms.py:103 #: templates/app_gateway/access_policy_type_select.html:50 #: templates/generic_delete_confirmation.html:19 @@ -227,61 +226,67 @@ msgstr "Upstream" msgid "Cancel" msgstr "Cancelar" -#: app_gateway/forms.py:54 -msgid "This is a reserved system name." -msgstr "Este es un nombre de sistema reservado." - -#: app_gateway/forms.py:58 +#: app_gateway/forms.py:55 msgid "This upstream is reserved by the system." msgstr "Este upstream está reservado por el sistema." -#: app_gateway/forms.py:61 +#: app_gateway/forms.py:58 msgid "Upstream URL cannot contain spaces." msgstr "La URL de upstream no puede contener espacios." -#: app_gateway/forms.py:67 +#: app_gateway/forms.py:64 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "" "Introduzca una URL de upstream válida que empiece por http:// o https://" -#: app_gateway/forms.py:77 cluster/forms.py:24 dns/forms.py:65 -#: templates/app_gateway/app_gateway_list.html:101 -#: templates/app_gateway/application_details.html:61 +#: app_gateway/forms.py:66 +msgid "" +"Upstream must be a bare host address with no path, query or fragment. Use " +"http://host or http://host:port" +msgstr "" + +#: app_gateway/forms.py:76 cluster/forms.py:24 dns/forms.py:65 +#: templates/app_gateway/app_gateway_list.html:109 +#: templates/app_gateway/application_details.html:75 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Nombre de host" -#: app_gateway/forms.py:107 templates/app_gateway/app_gateway_list.html:139 +#: app_gateway/forms.py:84 +msgid "Hostname contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:114 templates/app_gateway/app_gateway_list.html:147 msgid "Policy Type" msgstr "Tipo de política" -#: app_gateway/forms.py:108 +#: app_gateway/forms.py:115 msgid "Allowed Groups" msgstr "Grupos permitidos" -#: app_gateway/forms.py:109 templates/gatekeeper/gatekeeper_list.html:12 +#: app_gateway/forms.py:116 templates/gatekeeper/gatekeeper_list.html:13 msgid "Authentication Methods" msgstr "Métodos de autenticación" -#: app_gateway/forms.py:188 +#: app_gateway/forms.py:196 msgid "Cannot select more than one Local Password authentication method." msgstr "" "No se puede seleccionar más de un método de autenticación de Contraseña " "Local." -#: app_gateway/forms.py:192 +#: app_gateway/forms.py:200 msgid "" "Cannot select more than one OpenID Connect (OIDC) authentication method." msgstr "" "No se puede seleccionar más de un método de autenticação OpenID Connect " "(OIDC)." -#: app_gateway/forms.py:196 +#: app_gateway/forms.py:204 msgid "Cannot select more than one TOTP authentication method." msgstr "No se puede seleccionar más de un método de autenticación TOTP." -#: app_gateway/forms.py:200 +#: app_gateway/forms.py:208 msgid "" "Cannot select both Local Password and OpenID Connect (OIDC) authentication " "methods." @@ -289,15 +294,7 @@ msgstr "" "No se pueden seleccionar simultáneamente los métodos de autenticación de " "Contraseña Local y OpenID Connect (OIDC)." -#: app_gateway/forms.py:204 -msgid "" -"TOTP must be combined with a Local Password or OpenID Connect authentication " -"method." -msgstr "" -"TOTP debe combinarse con un método de autenticación de Contraseña Local o " -"OpenID Connect." - -#: app_gateway/forms.py:208 +#: app_gateway/forms.py:212 msgid "" "At least one user group must be selected when using Local Password " "authentication." @@ -305,75 +302,102 @@ msgstr "" "Se debe seleccionar al menos um grupo de usuarios al usar la autenticación " "de Contraseña Local." -#: app_gateway/forms.py:212 +#: app_gateway/forms.py:216 msgid "User groups can only be used with Local Password authentication." msgstr "" "Los grupos de usuarios solo se pueden usar con la autenticación de " "Contraseña Local." -#: app_gateway/forms.py:222 templates/app_gateway/app_gateway_list.html:62 -#: templates/app_gateway/application_details.html:31 +#: app_gateway/forms.py:226 templates/app_gateway/app_gateway_list.html:70 +#: templates/app_gateway/application_details.html:39 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Política predeterminada" -#: app_gateway/forms.py:251 templates/app_gateway/application_details.html:105 +#: app_gateway/forms.py:255 templates/app_gateway/application_details.html:134 msgid "Route Name" msgstr "Nombre de la ruta" -#: app_gateway/forms.py:252 templates/app_gateway/application_details.html:106 +#: app_gateway/forms.py:256 templates/app_gateway/application_details.html:135 msgid "Path Prefix" msgstr "Prefijo de ruta" -#: app_gateway/forms.py:253 templates/app_gateway/application_details.html:107 +#: app_gateway/forms.py:257 templates/app_gateway/application_details.html:136 msgid "Policy" msgstr "Política" -#: app_gateway/forms.py:254 templates/app_gateway/application_details.html:108 +#: app_gateway/forms.py:258 templates/app_gateway/application_details.html:137 msgid "Order" msgstr "Orden" -#: app_gateway/models.py:12 +#: app_gateway/forms.py:299 +#, fuzzy +#| msgid "Invite URL must start with 'https://'." +msgid "Path prefix must start with /." +msgstr "La URL debe empezar con 'https://'." + +#: app_gateway/forms.py:301 +#, fuzzy +#| msgid "Upstream URL cannot contain spaces." +msgid "Path prefix cannot contain spaces." +msgstr "La URL de upstream no puede contener espacios." + +#: app_gateway/forms.py:303 +msgid "Path prefix contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:308 +#, fuzzy +#| msgid "This upstream is reserved by the system." +msgid "This path prefix is reserved by the system." +msgstr "Este upstream está reservado por el sistema." + +#: app_gateway/models.py:14 msgid "Upstream address, e.g.: http://10.188.18.27:3000" msgstr "Dirección de origen (upstream), ej.: http://10.188.18.27:3000" -#: app_gateway/models.py:45 +#: app_gateway/models.py:15 +msgid "Allow invalid or self-signed TLS certificates from the upstream" +msgstr "" + +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:19 msgid "Public" msgstr "Público" -#: app_gateway/models.py:45 +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:30 msgid "Protected" msgstr "Protegido" -#: app_gateway/models.py:45 gatekeeper/models.py:108 +#: app_gateway/models.py:53 gatekeeper/models.py:142 #: templates/app_gateway/access_policy_type_select.html:41 -#: templates/gatekeeper/gatekeeper_list.html:288 +#: templates/gatekeeper/gatekeeper_list.html:289 msgid "Deny" msgstr "Denegar" -#: app_gateway/models.py:80 -msgid "Route identifier, used in export (e.g.: public_area)" -msgstr "Identificador de ruta, usado en la exportación (ej.: public_area)" - -#: app_gateway/views.py:60 +#: app_gateway/views.py:75 msgid "Application Details" msgstr "Detalles de la aplicación" -#: app_gateway/views.py:74 templates/app_gateway/application_details.html:15 +#: app_gateway/views.py:90 app_gateway/views.py:174 app_gateway/views.py:204 +msgid "The WireGuard WebAdmin application cannot be modified." +msgstr "" + +#: app_gateway/views.py:92 templates/app_gateway/application_details.html:16 +#: templates/app_gateway/application_details.html:23 msgid "Edit Application" msgstr "Editar aplicación" -#: app_gateway/views.py:77 +#: app_gateway/views.py:95 msgid "Create Application" msgstr "Crear aplicación" -#: app_gateway/views.py:84 +#: app_gateway/views.py:102 msgid "Application saved successfully." msgstr "Aplicación guardada correctamente." -#: app_gateway/views.py:89 +#: app_gateway/views.py:107 msgid "" "\n" "
Application
\n" @@ -407,62 +431,67 @@ msgstr "" " \n" " " -#: app_gateway/views.py:120 +#: app_gateway/views.py:137 +msgid "The WireGuard WebAdmin application cannot be deleted." +msgstr "" + +#: app_gateway/views.py:142 msgid "Application deleted successfully." msgstr "Aplicación eliminada correctamente." -#: app_gateway/views.py:125 templates/app_gateway/application_details.html:18 +#: app_gateway/views.py:147 templates/app_gateway/application_details.html:19 +#: templates/app_gateway/application_details.html:26 msgid "Delete Application" msgstr "Eliminar aplicación" -#: app_gateway/views.py:127 +#: app_gateway/views.py:149 #, python-format msgid "Are you sure you want to delete the application \"%(name)s\"?" msgstr "¿Está seguro de que desea eliminar la aplicación \"%(name)s\"?" -#: app_gateway/views.py:143 +#: app_gateway/views.py:165 msgid "Edit Application Host" msgstr "Editar host de aplicación" -#: app_gateway/views.py:147 +#: app_gateway/views.py:169 msgid "Add Application Host" msgstr "Añadir host de aplicación" -#: app_gateway/views.py:156 +#: app_gateway/views.py:182 msgid "Application Host saved successfully." msgstr "Host de aplicación guardado correctamente." -#: app_gateway/views.py:179 +#: app_gateway/views.py:209 msgid "Application Host deleted successfully." msgstr "Host de aplicación eliminado correctamente." -#: app_gateway/views.py:184 +#: app_gateway/views.py:214 msgid "Delete Application Host" msgstr "Eliminar host de aplicación" -#: app_gateway/views.py:186 +#: app_gateway/views.py:216 #, python-format msgid "Are you sure you want to delete the host \"%(hostname)s\"?" msgstr "¿Está seguro de que desea eliminar el host \"%(hostname)s\"?" -#: app_gateway/views.py:197 +#: app_gateway/views.py:227 #: templates/app_gateway/access_policy_type_select.html:9 msgid "Select Access Policy Type" msgstr "Seleccionar tipo de política de acceso" -#: app_gateway/views.py:212 +#: app_gateway/views.py:242 msgid "Edit Access Policy" msgstr "Editar política de acceso" -#: app_gateway/views.py:216 +#: app_gateway/views.py:246 msgid "Create Access Policy" msgstr "Crear política de acceso" -#: app_gateway/views.py:223 +#: app_gateway/views.py:253 msgid "Access Policy saved successfully." msgstr "Política de acceso guardada correctamente." -#: app_gateway/views.py:229 +#: app_gateway/views.py:259 msgid "" "\n" "
Public Policy
\n" @@ -476,7 +505,7 @@ msgstr "" "requerir ninguna autenticación.

\n" " " -#: app_gateway/views.py:237 +#: app_gateway/views.py:267 msgid "" "\n" "
Deny Policy
\n" @@ -489,7 +518,7 @@ msgstr "" "coincidentes.

\n" " " -#: app_gateway/views.py:245 +#: app_gateway/views.py:275 msgid "" "\n" "
Protected Policy
\n" @@ -519,11 +548,11 @@ msgstr "" " \n" " " -#: app_gateway/views.py:276 +#: app_gateway/views.py:306 msgid "Access Policy deleted successfully." msgstr "Política de acceso eliminada correctamente." -#: app_gateway/views.py:278 +#: app_gateway/views.py:308 msgid "" "Cannot delete this Access Policy because it is currently in use by an " "Application Route or Application Default Policy." @@ -531,55 +560,55 @@ msgstr "" "No se puede eliminar esta política de acceso porque está actualmente en uso " "por una ruta de aplicación o una política predeterminada de aplicación." -#: app_gateway/views.py:283 +#: app_gateway/views.py:313 msgid "Delete Access Policy" msgstr "Eliminar política de acceso" -#: app_gateway/views.py:285 +#: app_gateway/views.py:315 #, python-format msgid "Are you sure you want to delete the access policy \"%(name)s\"?" msgstr "¿Está seguro de que desea eliminar la política de acceso \"%(name)s\"?" -#: app_gateway/views.py:301 +#: app_gateway/views.py:331 msgid "Edit Application Default Policy" msgstr "Editar política predeterminada de la aplicación" -#: app_gateway/views.py:305 +#: app_gateway/views.py:335 msgid "Set Application Default Policy" msgstr "Establecer política predeterminada de la aplicación" -#: app_gateway/views.py:314 +#: app_gateway/views.py:344 msgid "Application Default Policy saved successfully." msgstr "Política predeterminada de la aplicación guardada correctamente." -#: app_gateway/views.py:337 +#: app_gateway/views.py:367 msgid "Application Default Policy deleted successfully." msgstr "Política predeterminada de la aplicación eliminada correctamente." -#: app_gateway/views.py:342 +#: app_gateway/views.py:372 msgid "Delete Application Default Policy" msgstr "Eliminar política predeterminada de la aplicación" -#: app_gateway/views.py:344 +#: app_gateway/views.py:374 #, python-format msgid "Are you sure you want to remove the default policy for \"%(name)s\"?" msgstr "" "¿Está seguro de que desea eliminar la política predeterminada para " "\"%(name)s\"?" -#: app_gateway/views.py:362 +#: app_gateway/views.py:392 msgid "Edit Application Route" msgstr "Editar ruta de la aplicación" -#: app_gateway/views.py:366 +#: app_gateway/views.py:396 msgid "Add Application Route" msgstr "Añadir ruta de la aplicación" -#: app_gateway/views.py:375 +#: app_gateway/views.py:405 msgid "Application Route saved successfully." msgstr "Ruta de la aplicación guardada correctamente." -#: app_gateway/views.py:380 +#: app_gateway/views.py:410 msgid "" "\n" "
Application Route
\n" @@ -619,42 +648,41 @@ msgstr "" " \n" " " -#: app_gateway/views.py:413 +#: app_gateway/views.py:443 msgid "Application Route deleted successfully." msgstr "Ruta de la aplicación eliminada correctamente." -#: app_gateway/views.py:418 +#: app_gateway/views.py:448 msgid "Delete Application Route" msgstr "Eliminar ruta de la aplicación" -#: app_gateway/views.py:420 +#: app_gateway/views.py:450 #, python-format msgid "Are you sure you want to delete the route \"%(name)s\" (%(path)s)?" msgstr "¿Está seguro de que desea eliminar la ruta \"%(name)s\" (%(path)s)?" -#: app_gateway/views.py:443 +#: app_gateway/views.py:468 +msgid "" +"Configuration export is not available because Caddy is not enabled. To use " +"App Gateway and Gatekeeper, start the application using docker-compose-" +"caddy.yml." +msgstr "" + +#: app_gateway/views.py:478 msgid "Configuration exported successfully." msgstr "Configuración exportada con éxito." -#: app_gateway/views.py:445 -msgid "" -"Caddy is not active. Configuration files were exported for debugging " -"purposes." -msgstr "" -"Caddy no está activo. Los archivos de configuração se exportaron con fines " -"de depuración." - #: cluster/forms.py:20 msgid "IP Lock" msgstr "Bloqueo de IP" -#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:271 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:315 #: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 #: templates/firewall/manage_redirect_rule.html:68 -#: templates/gatekeeper/gatekeeper_list.html:272 +#: templates/gatekeeper/gatekeeper_list.html:273 #: templates/wireguard/wireguard_status.html:45 msgid "IP Address" msgstr "Dirección IP" @@ -931,7 +959,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:274 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:318 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1263,13 +1291,13 @@ msgstr "Gestionar configuración de firewall" msgid "Firewall settings saved successfully" msgstr "Configuración de firewall guardada correctamente" -#: gatekeeper/forms.py:17 templates/accounts/login.html:23 +#: gatekeeper/forms.py:18 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:20 +#: gatekeeper/forms.py:21 msgid "" "Minimum 8 characters, with at least one uppercase letter, one lowercase " "letter, and one number." @@ -1277,15 +1305,15 @@ msgstr "" "Mínimo de 8 caracteres, con al menos una letra mayúscula, una letra " "minúscula y un número." -#: gatekeeper/forms.py:23 +#: gatekeeper/forms.py:24 msgid "Confirm Password" msgstr "Confirmar Contraseña" -#: gatekeeper/forms.py:28 gatekeeper/forms.py:161 +#: gatekeeper/forms.py:29 gatekeeper/forms.py:163 msgid "TOTP Validation PIN" msgstr "PIN de validación TOTP" -#: gatekeeper/forms.py:31 gatekeeper/forms.py:164 +#: gatekeeper/forms.py:32 gatekeeper/forms.py:166 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1293,189 +1321,223 @@ msgstr "" "Introduzca un PIN de 6 dígitos generado por su aplicación de autenticación " "para validar el secreto." -#: gatekeeper/forms.py:38 templates/accounts/login.html:14 -#: templates/gatekeeper/gatekeeper_list.html:61 +#: gatekeeper/forms.py:39 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:62 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Usuario" -#: gatekeeper/forms.py:39 gatekeeper/forms.py:344 -#: templates/gatekeeper/gatekeeper_list.html:62 -#: templates/gatekeeper/gatekeeper_list.html:220 +#: gatekeeper/forms.py:40 gatekeeper/forms.py:407 +#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:221 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "Email" -#: gatekeeper/forms.py:40 +#: gatekeeper/forms.py:41 msgid "TOTP Secret" msgstr "Secreto TOTP" -#: gatekeeper/forms.py:87 +#: gatekeeper/forms.py:88 msgid "Password is required." msgstr "La contraseña es obligatoria." -#: gatekeeper/forms.py:90 user_manager/forms.py:127 +#: gatekeeper/forms.py:91 user_manager/forms.py:127 msgid "Password must be at least 8 characters long." msgstr "La contraseña debe tener al menos 8 caracteres." -#: gatekeeper/forms.py:92 +#: gatekeeper/forms.py:93 msgid "Password must contain at least one lowercase letter." msgstr "La contraseña debe contener al menos una letra minúscula." -#: gatekeeper/forms.py:94 +#: gatekeeper/forms.py:95 msgid "Password must contain at least one uppercase letter." msgstr "La contraseña debe contener al menos una letra mayúscula." -#: gatekeeper/forms.py:96 +#: gatekeeper/forms.py:97 msgid "Password must contain at least one number." msgstr "La contraseña debe contener al menos un número." -#: gatekeeper/forms.py:98 +#: gatekeeper/forms.py:99 msgid "Passwords do not match." msgstr "Las contraseñas no coinciden." -#: gatekeeper/forms.py:103 gatekeeper/forms.py:249 +#: gatekeeper/forms.py:104 gatekeeper/forms.py:276 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Proporcione un PIN para validar el secreto TOTP." -#: gatekeeper/forms.py:108 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:109 gatekeeper/forms.py:281 msgid "Invalid TOTP PIN." msgstr "PIN TOTP no válido." -#: gatekeeper/forms.py:110 gatekeeper/forms.py:256 +#: gatekeeper/forms.py:111 gatekeeper/forms.py:283 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:130 templates/gatekeeper/gatekeeper_list.html:120 +#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 msgid "Group Name" msgstr "Nombre del grupo" -#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 +#: gatekeeper/forms.py:132 templates/gatekeeper/gatekeeper_list.html:122 msgid "Members" msgstr "Miembros" +#: gatekeeper/forms.py:169 +#, fuzzy +#| msgid "Expiration" +msgid "Session Expiration" +msgstr "Caduca en" + #: gatekeeper/forms.py:175 +msgid "Unit" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Hour(s)" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Day(s)" +msgstr "" + +#: gatekeeper/forms.py:189 msgid "Authentication Type" msgstr "Tipo de autenticación" -#: gatekeeper/forms.py:176 +#: gatekeeper/forms.py:190 msgid "Global TOTP Secret" msgstr "Secreto TOTP global" -#: gatekeeper/forms.py:177 +#: gatekeeper/forms.py:191 msgid "OIDC Provider URL" msgstr "URL del proveedor OIDC" -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:192 msgid "OIDC Client ID" msgstr "ID de cliente OIDC" -#: gatekeeper/forms.py:179 +#: gatekeeper/forms.py:193 msgid "OIDC Client Secret" msgstr "Secreto de cliente OIDC" -#: gatekeeper/forms.py:230 +#: gatekeeper/forms.py:257 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:232 +#: gatekeeper/forms.py:259 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:234 +#: gatekeeper/forms.py:261 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:240 +#: gatekeeper/forms.py:267 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:243 +#: gatekeeper/forms.py:270 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:245 +#: gatekeeper/forms.py:272 msgid "TOTP secret is required for TOTP authentication." msgstr "El secreto TOTP es obligatorio para la autenticación TOTP." -#: gatekeeper/forms.py:259 +#: gatekeeper/forms.py:285 +msgid "" +"OIDC authentication is temporarily unavailable and will be available soon." +msgstr "" + +#: gatekeeper/forms.py:287 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:261 +#: gatekeeper/forms.py:289 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:270 gatekeeper/forms.py:312 gatekeeper/forms.py:343 +#: gatekeeper/forms.py:314 gatekeeper/forms.py:375 gatekeeper/forms.py:406 msgid "Authentication Method" msgstr "Método de autenticación" -#: gatekeeper/forms.py:272 templates/gatekeeper/gatekeeper_list.html:273 +#: gatekeeper/forms.py:316 templates/gatekeeper/gatekeeper_list.html:274 msgid "Prefix Length" msgstr "Longitud del prefijo" -#: gatekeeper/forms.py:273 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:317 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 -#: templates/gatekeeper/gatekeeper_list.html:274 +#: templates/gatekeeper/gatekeeper_list.html:275 msgid "Action" msgstr "Acción" -#: gatekeeper/forms.py:313 templates/gatekeeper/gatekeeper_list.html:237 +#: gatekeeper/forms.py:332 +#, python-format +msgid "Prefix length for IPv%(version)d must be between 0 and %(max)d." +msgstr "" + +#: gatekeeper/forms.py:376 templates/gatekeeper/gatekeeper_list.html:238 msgid "Domain" msgstr "Dominio" -#: gatekeeper/models.py:10 +#: gatekeeper/models.py:27 msgid "Local Password" msgstr "Contraseña local" -#: gatekeeper/models.py:11 +#: gatekeeper/models.py:28 msgid "One-Time Password (TOTP)" msgstr "Contraseña de un solo uso (TOTP)" -#: gatekeeper/models.py:12 +#: gatekeeper/models.py:29 msgid "OpenID Connect (OIDC)" msgstr "OpenID Connect (OIDC)" -#: gatekeeper/models.py:13 +#: gatekeeper/models.py:30 msgid "IP Address List" msgstr "Lista de direcciones IP" -#: gatekeeper/models.py:17 +#: gatekeeper/models.py:34 msgid "Shared/global TOTP secret key" msgstr "Clave secreta TOTP compartida/global" -#: gatekeeper/models.py:68 +#: gatekeeper/models.py:39 +#, fuzzy +#| msgid "Expiration (minutes)" +msgid "Session expiration time in minutes" +msgstr "Expira en (minutos)" + +#: gatekeeper/models.py:96 msgid "Password for local authentication (leave blank if not using)" msgstr "Contraseña para autenticación local (dejar en blanco si no se usa)" -#: gatekeeper/models.py:69 +#: gatekeeper/models.py:97 msgid "Per-user TOTP secret key" msgstr "Clave secreta TOTP por usuario" -#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:286 +#: gatekeeper/models.py:142 templates/gatekeeper/gatekeeper_list.html:287 msgid "Allow" msgstr "Permitir" -#: gatekeeper/views.py:54 +#: gatekeeper/views.py:58 msgid "Edit Gatekeeper User" msgstr "Editar usuario de Gatekeeper" -#: gatekeeper/views.py:57 +#: gatekeeper/views.py:61 msgid "Create Gatekeeper User" msgstr "Crear usuario de Gatekeeper" -#: gatekeeper/views.py:64 +#: gatekeeper/views.py:68 msgid "Gatekeeper User saved successfully." msgstr "Usuario de Gatekeeper guardado correctamente." -#: gatekeeper/views.py:69 +#: gatekeeper/views.py:73 msgid "" "\n" "

Gatekeeper User

\n" @@ -1499,75 +1561,96 @@ msgid "" msgstr "" "\n" "

Usuario de Gatekeeper

\n" -"

Los usuarios de Gatekeeper se utilizan para autenticarse en aplicaciones protegidas " -"gestionadas por este gateway.

\n" +"

Los usuarios de Gatekeeper se utilizan para autenticarse en " +"aplicaciones protegidas gestionadas por este gateway.

\n" "\n" "
Contraseña
\n" -"

Obligatorio al crear un usuario. Al editar, deje ambos campos de contraseña " -"en blanco para mantener la contraseña actual.\n" -" Las contraseñas se almacenan mediante el hash Argon2id.

\n" +"

Obligatorio al crear un usuario. Al editar, deje ambos campos de " +"contraseña en blanco para mantener la contraseña actual.\n" +" Las contraseñas se almacenan mediante el hash Argon2id.

\n" "\n" "
Secreto TOTP
\n" -"

Secreto TOTP opcional por usuario. Cuando está configurado, este usuario se " -"autenticará usando su propio secreto en lugar del\n" -" secreto TOTP global configurado en el Método de Autenticación. Utilice los " -"botones debajo del campo para generar un\n" -" secreto aleatorio y escanee el código QR con su aplicación de autenticación. " -"Valide el secreto ingresando el PIN actual de\n" +"

Secreto TOTP opcional por usuario. Cuando está configurado, este " +"usuario se autenticará usando su propio secreto en lugar del\n" +" secreto TOTP global configurado en el Método de Autenticación. " +"Utilice los botones debajo del campo para generar un\n" +" secreto aleatorio y escanee el código QR con su aplicación de " +"autenticación. Valide el secreto ingresando el PIN actual de\n" " 6 dígitos antes de guardar.

\n" " " -#: gatekeeper/views.py:106 +#: gatekeeper/views.py:110 msgid "Gatekeeper User deleted successfully." msgstr "Usuario de Gatekeeper eliminado correctamente." -#: gatekeeper/views.py:111 +#: gatekeeper/views.py:115 msgid "Delete Gatekeeper User" msgstr "Eliminar usuario de Gatekeeper" -#: gatekeeper/views.py:113 +#: gatekeeper/views.py:117 #, 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:127 +#: gatekeeper/views.py:131 msgid "Edit Gatekeeper Group" msgstr "Editar grupo de Gatekeeper" -#: gatekeeper/views.py:130 +#: gatekeeper/views.py:134 msgid "Create Gatekeeper Group" msgstr "Crear grupo Gatekeeper" -#: gatekeeper/views.py:137 +#: gatekeeper/views.py:141 msgid "Gatekeeper Group saved successfully." msgstr "Grupo de Gatekeeper guardado correctamente." -#: gatekeeper/views.py:159 +#: gatekeeper/views.py:163 msgid "Gatekeeper Group deleted successfully." msgstr "Grupo de Gatekeeper eliminado correctamente." -#: gatekeeper/views.py:164 +#: gatekeeper/views.py:168 msgid "Delete Gatekeeper Group" msgstr "Eliminar grupo Gatekeeper" -#: gatekeeper/views.py:166 +#: gatekeeper/views.py:170 #, 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:180 +#: gatekeeper/views.py:184 msgid "Edit Authentication Method" msgstr "Editar método de autenticación" -#: gatekeeper/views.py:183 +#: gatekeeper/views.py:187 msgid "Create Authentication Method" msgstr "Crear método de autenticación" -#: gatekeeper/views.py:190 +#: gatekeeper/views.py:194 msgid "Authentication Method saved successfully." msgstr "Método de autenticación guardado correctamente." -#: gatekeeper/views.py:195 +#: gatekeeper/views.py:199 +#, fuzzy +#| msgid "" +#| "\n" +#| "

Authentication Types

\n" +#| "

Select how users will authenticate through this method.

\n" +#| " \n" +#| "
Local Password
\n" +#| "

Users will authenticate using a standard username and password " +#| "stored locally. Only one of this type can be created.

\n" +#| " \n" +#| "
OIDC (OpenID Connect)
\n" +#| "

Users will authenticate via an external identity provider " +#| "(like Keycloak, Google, or Authelia). Requires Provider URL, Client ID, " +#| "and Client Secret.

\n" +#| " \n" +#| "
TOTP (Time-Based One-Time Password)
\n" +#| "

Users will need to enter a rotating token from an " +#| "authenticator app. If a user does not have a personal TOTP configured, " +#| "the Global TOTP Secret will be used instead.

\n" +#| " " msgid "" "\n" "

Authentication Types

\n" @@ -1579,8 +1662,8 @@ msgid "" " \n" "
OIDC (OpenID Connect)
\n" "

Users will authenticate via an external identity provider (like " -"Keycloak, Google, or Authelia). Requires Provider URL, Client ID, and Client " -"Secret.

\n" +"Keycloak or Google). Requires Provider URL, Client ID, and Client Secret.\n" " \n" "
TOTP (Time-Based One-Time Password)
\n" "

Users will need to enter a rotating token from an authenticator " @@ -1590,102 +1673,113 @@ msgid "" msgstr "" "\n" "

Tipos de Autenticación

\n" -"

Seleccione cómo se autenticarán los usuarios a través de este método.

\n" +"

Seleccione cómo se autenticarán los usuarios a través de este " +"método.

\n" "\n" "
Contraseña Local
\n" -"

Los usuarios se autenticarán utilizando un nombre de usuario y contraseña " -"estándar almacenados localmente. Solo se puede crear uno de este tipo.

\n" +"

Los usuarios se autenticarán utilizando un nombre de usuario y " +"contraseña estándar almacenados localmente. Solo se puede crear uno de este " +"tipo.

\n" "\n" "
OIDC (OpenID Connect)
\n" -"

Los usuarios se autenticarán a través de un proveedor de identidad externo " -"(como Keycloak, Google o Authelia). Requiere URL del Proveedor, ID de Cliente y Secreto de Cliente.

\n" +"

Los usuarios se autenticarán a través de un proveedor de " +"identidad externo (como Keycloak, Google o Authelia). Requiere URL del " +"Proveedor, ID de Cliente y Secreto de Cliente.

\n" "\n" "
TOTP (Contraseña de un Solo Uso Basada en Tiempo)
\n" -"

Los usuarios deberán ingresar un token rotativo de una aplicación de autenticación. " -"Si un usuario no tiene configurado un TOTP personal, se utilizará el Secreto TOTP Global en su lugar.

\n" +"

Los usuarios deberán ingresar un token rotativo de una aplicación " +"de autenticación. Si un usuario no tiene configurado un TOTP personal, se " +"utilizará el Secreto TOTP Global en su lugar.

\n" " " -#: gatekeeper/views.py:230 +#: gatekeeper/views.py:237 +#, python-format +msgid "" +"Cannot delete authentication method \"%(method)s\" because it is used by the " +"following policies: %(policies)s." +msgstr "" + +#: gatekeeper/views.py:243 msgid "Authentication Method deleted successfully." msgstr "Método de autenticación eliminado correctamente." -#: gatekeeper/views.py:235 +#: gatekeeper/views.py:248 msgid "Delete Authentication Method" msgstr "Eliminar método de autenticación" -#: gatekeeper/views.py:237 +#: gatekeeper/views.py:250 #, 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:287 +#: gatekeeper/views.py:303 msgid "Edit Allowed Domain" msgstr "Editar dominio permitido" -#: gatekeeper/views.py:290 templates/gatekeeper/gatekeeper_list.html:202 +#: gatekeeper/views.py:306 templates/gatekeeper/gatekeeper_list.html:203 msgid "Add Allowed Domain" msgstr "Añadir dominio permitido" -#: gatekeeper/views.py:297 +#: gatekeeper/views.py:313 msgid "Allowed Domain saved successfully." msgstr "Dominio permitido guardado correctamente." -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:335 msgid "Allowed Domain deleted successfully." msgstr "Dominio permitido eliminado correctamente." -#: gatekeeper/views.py:324 +#: gatekeeper/views.py:340 msgid "Delete Allowed Domain" msgstr "Eliminar dominio permitido" -#: gatekeeper/views.py:326 +#: gatekeeper/views.py:342 #, 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:340 +#: gatekeeper/views.py:356 msgid "Edit Allowed Email" msgstr "Editar correo electrónico permitido" -#: gatekeeper/views.py:343 templates/gatekeeper/gatekeeper_list.html:199 +#: gatekeeper/views.py:359 templates/gatekeeper/gatekeeper_list.html:200 msgid "Add Allowed Email" msgstr "Añadir correo electrónico permitido" -#: gatekeeper/views.py:350 +#: gatekeeper/views.py:366 msgid "Allowed Email saved successfully." msgstr "Correo electrónico permitido guardado correctamente." -#: gatekeeper/views.py:372 +#: gatekeeper/views.py:388 msgid "Allowed Email deleted successfully." msgstr "Correo electrónico permitido eliminado correctamente." -#: gatekeeper/views.py:377 +#: gatekeeper/views.py:393 msgid "Delete Allowed Email" msgstr "Eliminar correo electrónico permitido" -#: gatekeeper/views.py:379 +#: gatekeeper/views.py:395 #, 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:393 +#: gatekeeper/views.py:409 msgid "Edit IP Address" msgstr "Editar dirección IP" -#: gatekeeper/views.py:396 templates/gatekeeper/gatekeeper_list.html:263 +#: gatekeeper/views.py:412 templates/gatekeeper/gatekeeper_list.html:264 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Añadir IP" -#: gatekeeper/views.py:403 +#: gatekeeper/views.py:419 msgid "IP Address saved successfully." msgstr "Dirección IP guardada correctamente." -#: gatekeeper/views.py:408 +#: gatekeeper/views.py:424 msgid "" "\n" "
IP Address List
\n" @@ -1732,24 +1826,25 @@ msgstr "" "\"Red de la Oficina\", \"Atacante Bloqueado\").

\n" " " -#: gatekeeper/views.py:444 +#: gatekeeper/views.py:460 msgid "IP Address deleted successfully." msgstr "Dirección IP eliminada correctamente." -#: gatekeeper/views.py:449 +#: gatekeeper/views.py:465 msgid "Delete IP Address" msgstr "Eliminar dirección IP" -#: gatekeeper/views.py:451 +#: gatekeeper/views.py:467 #, 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\"?" -#: intl_tools/forms.py:11 templates/accounts/login.html:36 +#: intl_tools/forms.py:11 msgid "Language" msgstr "Idioma" -#: intl_tools/forms.py:24 templates/template_parts/base_navbar.html:14 +#: intl_tools/forms.py:24 templates/accounts/login.html:35 +#: templates/template_parts/base_navbar.html:19 msgid "Change Language" msgstr "Cambiar idioma" @@ -2084,6 +2179,11 @@ msgstr "" msgid "Login" msgstr "Iniciar sesión" +#: templates/accounts/login.html:40 +#: templates/template_parts/base_navbar.html:14 +msgid "Toggle Dark Mode" +msgstr "" + #: templates/accounts/logout.html:11 msgid "You have been successfully logged out." msgstr "Has cerrado sesión correctamente." @@ -2106,8 +2206,8 @@ msgid "In" msgstr "Entrada" #: templates/api_v2/api_documentation.html:49 -#: templates/gatekeeper/gatekeeper_list.html:166 -#: templates/gatekeeper/gatekeeper_list.html:211 +#: templates/gatekeeper/gatekeeper_list.html:167 +#: templates/gatekeeper/gatekeeper_list.html:212 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Tipo" @@ -2117,13 +2217,13 @@ msgid "Required" msgstr "Obligatorio" #: templates/api_v2/api_documentation.html:62 -#: templates/gatekeeper/gatekeeper_list.html:75 +#: templates/gatekeeper/gatekeeper_list.html:76 #: templates/scheduler/scheduleprofile_form.html:175 msgid "Yes" msgstr "Sí" #: templates/api_v2/api_documentation.html:64 -#: templates/gatekeeper/gatekeeper_list.html:77 +#: templates/gatekeeper/gatekeeper_list.html:78 #: templates/scheduler/scheduleprofile_form.html:177 msgid "No" msgstr "No" @@ -2163,17 +2263,17 @@ msgid "Disabled" msgstr "Deshabilitado" #: templates/api_v2/list.html:68 -#: templates/app_gateway/app_gateway_list.html:154 -#: templates/app_gateway/application_details.html:71 -#: templates/app_gateway/application_details.html:121 +#: templates/app_gateway/app_gateway_list.html:162 +#: templates/app_gateway/application_details.html:99 +#: templates/app_gateway/application_details.html:150 #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 -#: templates/gatekeeper/gatekeeper_list.html:89 -#: templates/gatekeeper/gatekeeper_list.html:132 -#: templates/gatekeeper/gatekeeper_list.html:177 -#: templates/gatekeeper/gatekeeper_list.html:225 -#: templates/gatekeeper/gatekeeper_list.html:242 -#: templates/gatekeeper/gatekeeper_list.html:294 +#: templates/gatekeeper/gatekeeper_list.html:90 +#: templates/gatekeeper/gatekeeper_list.html:133 +#: templates/gatekeeper/gatekeeper_list.html:178 +#: templates/gatekeeper/gatekeeper_list.html:226 +#: templates/gatekeeper/gatekeeper_list.html:243 +#: templates/gatekeeper/gatekeeper_list.html:295 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -2205,78 +2305,83 @@ msgstr "Requerir autenticación utilizando métodos o grupos especificados." msgid "Deny all access." msgstr "Denegar todo el acceso." -#: templates/app_gateway/app_gateway_list.html:12 -#: templates/app_gateway/app_gateway_list.html:30 +#: templates/app_gateway/app_gateway_list.html:13 +#: templates/app_gateway/app_gateway_list.html:31 msgid "Applications" msgstr "Aplicaciones" -#: templates/app_gateway/app_gateway_list.html:18 +#: templates/app_gateway/app_gateway_list.html:19 msgid "Access Policies" msgstr "Políticas de acceso" -#: templates/app_gateway/app_gateway_list.html:34 -#: templates/app_gateway/app_gateway_list.html:60 +#: templates/app_gateway/app_gateway_list.html:35 +#: templates/app_gateway/app_gateway_list.html:68 #: templates/dns/static_host_list.html:70 msgid "Hosts" msgstr "Hosts" -#: templates/app_gateway/app_gateway_list.html:42 +#: templates/app_gateway/app_gateway_list.html:44 +#: templates/app_gateway/app_gateway_list.html:50 msgid "Export Configuration" msgstr "Exportar configuración" -#: templates/app_gateway/app_gateway_list.html:46 +#: templates/app_gateway/app_gateway_list.html:49 +msgid "Export is not available because Caddy is not enabled." +msgstr "" + +#: templates/app_gateway/app_gateway_list.html:54 msgid "Add Application" msgstr "Añadir aplicación" -#: templates/app_gateway/app_gateway_list.html:61 +#: templates/app_gateway/app_gateway_list.html:69 msgid "Routes" msgstr "Rutas" -#: templates/app_gateway/app_gateway_list.html:80 -#: templates/app_gateway/application_details.html:39 +#: templates/app_gateway/app_gateway_list.html:88 +#: templates/app_gateway/application_details.html:47 msgid "Default (Deny)" msgstr "Predeterminado (Denegar)" -#: templates/app_gateway/app_gateway_list.html:90 +#: templates/app_gateway/app_gateway_list.html:98 msgid "No Applications found." msgstr "No se han encontrado aplicaciones." -#: templates/app_gateway/app_gateway_list.html:102 +#: templates/app_gateway/app_gateway_list.html:110 msgid "Application" msgstr "Aplicación" -#: templates/app_gateway/app_gateway_list.html:121 +#: templates/app_gateway/app_gateway_list.html:129 msgid "No Hosts found." msgstr "No se han encontrado hosts." -#: templates/app_gateway/app_gateway_list.html:129 +#: templates/app_gateway/app_gateway_list.html:137 msgid "Add Access Policy" msgstr "Añadir política de acceso" -#: templates/app_gateway/app_gateway_list.html:140 -#: templates/gatekeeper/gatekeeper_list.html:43 -#: templates/gatekeeper/gatekeeper_list.html:64 +#: templates/app_gateway/app_gateway_list.html:148 +#: templates/gatekeeper/gatekeeper_list.html:44 +#: templates/gatekeeper/gatekeeper_list.html:65 msgid "Groups" msgstr "Grupos" -#: templates/app_gateway/app_gateway_list.html:141 +#: templates/app_gateway/app_gateway_list.html:149 msgid "Auth Methods" msgstr "Métodos de autenticación" -#: templates/app_gateway/app_gateway_list.html:142 -#: templates/app_gateway/application_details.html:62 -#: templates/app_gateway/application_details.html:109 -#: templates/gatekeeper/gatekeeper_list.html:65 -#: templates/gatekeeper/gatekeeper_list.html:122 -#: templates/gatekeeper/gatekeeper_list.html:167 -#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/app_gateway/app_gateway_list.html:150 +#: templates/app_gateway/application_details.html:76 +#: templates/app_gateway/application_details.html:138 +#: templates/gatekeeper/gatekeeper_list.html:66 +#: templates/gatekeeper/gatekeeper_list.html:123 +#: templates/gatekeeper/gatekeeper_list.html:168 +#: templates/gatekeeper/gatekeeper_list.html:215 #: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Acciones" -#: templates/app_gateway/app_gateway_list.html:169 +#: templates/app_gateway/app_gateway_list.html:177 msgid "No Access Policies found." msgstr "No se han encontrado políticas de acceso." @@ -2285,34 +2390,79 @@ msgstr "No se han encontrado políticas de acceso." msgid "Back to List" msgstr "Volver a la lista" -#: templates/app_gateway/application_details.html:41 +#: templates/app_gateway/application_details.html:15 +#: templates/app_gateway/application_details.html:59 +#: templates/app_gateway/application_details.html:91 +#: templates/app_gateway/application_details.html:94 +msgid "This application cannot be modified" +msgstr "" + +#: templates/app_gateway/application_details.html:18 +#, fuzzy +#| msgid "Application Route deleted successfully." +msgid "This application cannot be deleted" +msgstr "Ruta de la aplicación eliminada correctamente." + +#: templates/app_gateway/application_details.html:49 msgid "Set Policy" msgstr "Establecer política" -#: templates/app_gateway/application_details.html:48 +#: templates/app_gateway/application_details.html:56 msgid "Application Hosts" msgstr "Hosts de la aplicación" -#: templates/app_gateway/application_details.html:52 +#: templates/app_gateway/application_details.html:60 +#: templates/app_gateway/application_details.html:65 msgid "Add Host" msgstr "Añadir host" -#: templates/app_gateway/application_details.html:86 +#: templates/app_gateway/application_details.html:115 msgid "No Hosts configured for this application." msgstr "No hay hosts configurados para esta aplicación." -#: templates/app_gateway/application_details.html:92 +#: templates/app_gateway/application_details.html:121 msgid "Application Routes" msgstr "Rutas de la aplicación" -#: templates/app_gateway/application_details.html:96 +#: templates/app_gateway/application_details.html:125 msgid "Add Route" msgstr "Añadir ruta" -#: templates/app_gateway/application_details.html:136 +#: templates/app_gateway/application_details.html:165 msgid "No Routes configured for this application." msgstr "No hay rutas configuradas para esta aplicación." +#: templates/app_gateway/caddy_disabled_alert.html:5 +#, fuzzy +#| msgid "Cluster is not enabled" +msgid "Caddy is not enabled" +msgstr "Cluster no está habilitado" + +#: templates/app_gateway/caddy_disabled_alert.html:6 +msgid "" +"The App Gateway and Gatekeeper modules require Caddy and the auth-gateway " +"container to be running. Please start the application using docker-" +"compose-caddy.yml." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:7 +msgid "" +"Depending on your custom firewall or proxy rules, the way you access " +"wireguard_webadmin may change slightly after enabling Caddy." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:8 +msgid "" +"Switching to Caddy is simple, but it may require a bit of time and attention " +"to review your current setup." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:9 +#, fuzzy +#| msgid "For more information, please visit:" +msgid "For more information, see the discussion:" +msgstr "Para obtener más información, visite:" + #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 #: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 @@ -2818,86 +2968,93 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Crear regla de reenvío de puerto" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:63 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:67 #: templates/gatekeeper/gatekeeper_user_form.html:43 msgid "View QR Code" msgstr "Ver código QR" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:64 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:68 #: templates/gatekeeper/gatekeeper_user_form.html:44 msgid "Generate TOTP Secret" msgstr "Generar Secreto TOTP" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:93 -#: templates/gatekeeper/gatekeeper_user_form.html:73 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:105 +#: templates/gatekeeper/gatekeeper_user_form.html:81 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:18 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:127 +#: templates/gatekeeper/gatekeeper_user_form.html:103 +#, fuzzy +#| msgid "Error creating invite." +msgid "Error generating QR code." +msgstr "Error al crear invitación." + +#: templates/gatekeeper/gatekeeper_list.html:19 msgid "Gatekeeper Users" msgstr "Usuarios de Gatekeeper" -#: templates/gatekeeper/gatekeeper_list.html:24 +#: templates/gatekeeper/gatekeeper_list.html:25 msgid "Allowed Emails & Domains" msgstr "Correos electrónicos y dominios permitidos" -#: templates/gatekeeper/gatekeeper_list.html:30 +#: templates/gatekeeper/gatekeeper_list.html:31 msgid "IP Addresses" msgstr "Direcciones IP" -#: templates/gatekeeper/gatekeeper_list.html:40 +#: templates/gatekeeper/gatekeeper_list.html:41 #: templates/user_manager/peer_group_list.html:11 msgid "Users" msgstr "Usuarios" -#: templates/gatekeeper/gatekeeper_list.html:51 +#: templates/gatekeeper/gatekeeper_list.html:52 #: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 msgid "Add User" msgstr "Añadir usuario" -#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:64 msgid "TOTP" msgstr "TOTP" -#: templates/gatekeeper/gatekeeper_list.html:104 +#: templates/gatekeeper/gatekeeper_list.html:105 msgid "No Gatekeeper Users found." msgstr "No se han encontrado usuarios de Gatekeeper." -#: templates/gatekeeper/gatekeeper_list.html:111 +#: templates/gatekeeper/gatekeeper_list.html:112 msgid "Add Group" msgstr "Añadir grupo" -#: templates/gatekeeper/gatekeeper_list.html:147 +#: templates/gatekeeper/gatekeeper_list.html:148 msgid "No Gatekeeper Groups found." msgstr "No se han encontrado grupos de Gatekeeper." -#: templates/gatekeeper/gatekeeper_list.html:156 +#: templates/gatekeeper/gatekeeper_list.html:157 msgid "Add Auth Method" msgstr "Añadir método de autenticación" -#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/gatekeeper/gatekeeper_list.html:193 msgid "No Authentication Methods found." msgstr "No se han encontrado métodos de autenticación." -#: templates/gatekeeper/gatekeeper_list.html:212 +#: templates/gatekeeper/gatekeeper_list.html:213 msgid "Identity" msgstr "Identidad" -#: templates/gatekeeper/gatekeeper_list.html:213 -#: templates/gatekeeper/gatekeeper_list.html:275 +#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/gatekeeper/gatekeeper_list.html:276 msgid "Auth Method" msgstr "Método de autenticación" -#: templates/gatekeeper/gatekeeper_list.html:257 +#: templates/gatekeeper/gatekeeper_list.html:258 msgid "No Allowed Emails or Domains found." msgstr "No se han encontrado correos electrónicos o dominios permitidos." -#: templates/gatekeeper/gatekeeper_list.html:276 +#: templates/gatekeeper/gatekeeper_list.html:277 msgid "Manage" msgstr "Gestionar" -#: templates/gatekeeper/gatekeeper_list.html:309 +#: templates/gatekeeper/gatekeeper_list.html:310 msgid "No IP Addresses found." msgstr "No se han encontrado direcciones IP." @@ -3517,6 +3674,10 @@ msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "" "Por favor escribe \\\"delete\\\" para eliminar la configuración del peer." +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Nombre para mostrar" + #: templates/wireguard/wireguard_manage_server.html:27 msgid "" "\n" @@ -4494,5 +4655,25 @@ msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "No se encontraron interfaces|No hay interfaces WireGuard para procesar." +#~ msgid "This is a reserved system name." +#~ msgstr "Este es un nombre de sistema reservado." + +#~ msgid "" +#~ "TOTP must be combined with a Local Password or OpenID Connect " +#~ "authentication method." +#~ msgstr "" +#~ "TOTP debe combinarse con un método de autenticación de Contraseña Local o " +#~ "OpenID Connect." + +#~ msgid "Route identifier, used in export (e.g.: public_area)" +#~ msgstr "Identificador de ruta, usado en la exportación (ej.: public_area)" + +#~ msgid "" +#~ "Caddy is not active. Configuration files were exported for debugging " +#~ "purposes." +#~ msgstr "" +#~ "Caddy no está activo. Los archivos de configuração se exportaron con " +#~ "fines de depuración." + #~ msgid "Global TOTP Before Authentication" #~ msgstr "TOTP global antes de la autenticación" diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 7f58257..6a2dd5f 100644 Binary files a/locale/fr/LC_MESSAGES/django.mo and b/locale/fr/LC_MESSAGES/django.mo differ diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 7a3e052..a5f79c0 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-15 17:28-0300\n" +"POT-Creation-Date: 2026-03-18 10:58-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,17 +33,17 @@ msgstr "Retour" #: api_v2/forms.py:30 cluster/forms.py:28 dns/forms.py:69 dns/forms.py:129 #: routing_templates/forms.py:37 -#: templates/app_gateway/app_gateway_list.html:158 -#: templates/app_gateway/application_details.html:75 -#: templates/app_gateway/application_details.html:125 +#: templates/app_gateway/app_gateway_list.html:166 +#: templates/app_gateway/application_details.html:103 +#: templates/app_gateway/application_details.html:154 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/gatekeeper/gatekeeper_list.html:93 -#: templates/gatekeeper/gatekeeper_list.html:136 -#: templates/gatekeeper/gatekeeper_list.html:181 -#: templates/gatekeeper/gatekeeper_list.html:229 -#: templates/gatekeeper/gatekeeper_list.html:246 -#: templates/gatekeeper/gatekeeper_list.html:298 +#: templates/gatekeeper/gatekeeper_list.html:94 +#: templates/gatekeeper/gatekeeper_list.html:137 +#: templates/gatekeeper/gatekeeper_list.html:182 +#: templates/gatekeeper/gatekeeper_list.html:230 +#: templates/gatekeeper/gatekeeper_list.html:247 +#: templates/gatekeeper/gatekeeper_list.html:299 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -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:40 app_gateway/forms.py:92 -#: app_gateway/forms.py:136 app_gateway/forms.py:154 app_gateway/forms.py:237 -#: app_gateway/forms.py:278 cluster/forms.py:67 cluster/forms.py:124 -#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:70 -#: gatekeeper/forms.py:150 gatekeeper/forms.py:212 gatekeeper/forms.py:299 -#: gatekeeper/forms.py:329 gatekeeper/forms.py:360 +#: api_v2/forms.py:63 app_gateway/forms.py:41 app_gateway/forms.py:99 +#: app_gateway/forms.py:144 app_gateway/forms.py:162 app_gateway/forms.py:241 +#: app_gateway/forms.py:283 cluster/forms.py:67 cluster/forms.py:124 +#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:71 +#: gatekeeper/forms.py:152 gatekeeper/forms.py:239 gatekeeper/forms.py:362 +#: gatekeeper/forms.py:392 gatekeeper/forms.py:423 #: routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 @@ -82,14 +82,14 @@ msgstr "" msgid "Save" msgstr "Enregistrer" -#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:106 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:174 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:113 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:188 #: 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:58 -#: templates/app_gateway/app_gateway_list.html:138 -#: templates/app_gateway/application_details.html:26 +#: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:66 +#: templates/app_gateway/app_gateway_list.html:146 +#: templates/app_gateway/application_details.html:35 #: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 -#: templates/gatekeeper/gatekeeper_list.html:165 +#: templates/gatekeeper/gatekeeper_list.html:166 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -127,16 +127,16 @@ msgid "Enabled" msgstr "Activé" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 -#: app_gateway/views.py:26 app_gateway/views.py:48 app_gateway/views.py:68 -#: app_gateway/views.py:112 app_gateway/views.py:135 app_gateway/views.py:170 -#: app_gateway/views.py:194 app_gateway/views.py:205 app_gateway/views.py:267 -#: app_gateway/views.py:293 app_gateway/views.py:328 app_gateway/views.py:354 -#: app_gateway/views.py:404 app_gateway/views.py:432 cluster/views.py:18 -#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:48 gatekeeper/views.py:98 gatekeeper/views.py:121 -#: gatekeeper/views.py:151 gatekeeper/views.py:174 gatekeeper/views.py:222 -#: gatekeeper/views.py:281 gatekeeper/views.py:311 gatekeeper/views.py:334 -#: gatekeeper/views.py:364 gatekeeper/views.py:387 gatekeeper/views.py:436 +#: app_gateway/views.py:28 app_gateway/views.py:52 app_gateway/views.py:83 +#: app_gateway/views.py:130 app_gateway/views.py:157 app_gateway/views.py:196 +#: app_gateway/views.py:224 app_gateway/views.py:235 app_gateway/views.py:297 +#: app_gateway/views.py:323 app_gateway/views.py:358 app_gateway/views.py:384 +#: app_gateway/views.py:434 app_gateway/views.py:462 cluster/views.py:18 +#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:25 +#: gatekeeper/views.py:52 gatekeeper/views.py:102 gatekeeper/views.py:125 +#: gatekeeper/views.py:155 gatekeeper/views.py:178 gatekeeper/views.py:226 +#: gatekeeper/views.py:297 gatekeeper/views.py:327 gatekeeper/views.py:350 +#: gatekeeper/views.py:380 gatekeeper/views.py:403 gatekeeper/views.py:452 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Accès refusé" @@ -206,20 +206,19 @@ 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:19 templates/app_gateway/application_details.html:27 -#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 -msgid "Display Name" -msgstr "Nom à afficher" - -#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:59 -#: templates/app_gateway/application_details.html:28 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:67 +#: templates/app_gateway/application_details.html:36 msgid "Upstream" msgstr "Upstream" -#: app_gateway/forms.py:41 app_gateway/forms.py:93 app_gateway/forms.py:137 -#: app_gateway/forms.py:155 app_gateway/forms.py:238 app_gateway/forms.py:279 -#: gatekeeper/forms.py:71 gatekeeper/forms.py:151 gatekeeper/forms.py:213 -#: gatekeeper/forms.py:300 gatekeeper/forms.py:330 gatekeeper/forms.py:361 +#: app_gateway/forms.py:20 +msgid "Allow invalid/self-signed certificate" +msgstr "" + +#: app_gateway/forms.py:42 app_gateway/forms.py:100 app_gateway/forms.py:145 +#: app_gateway/forms.py:163 app_gateway/forms.py:242 app_gateway/forms.py:284 +#: gatekeeper/forms.py:72 gatekeeper/forms.py:153 gatekeeper/forms.py:240 +#: gatekeeper/forms.py:363 gatekeeper/forms.py:393 gatekeeper/forms.py:424 #: scheduler/forms.py:103 #: templates/app_gateway/access_policy_type_select.html:50 #: templates/generic_delete_confirmation.html:19 @@ -227,60 +226,66 @@ msgstr "Upstream" msgid "Cancel" msgstr "Annuler" -#: app_gateway/forms.py:54 -msgid "This is a reserved system name." -msgstr "Il s'agit d'un nom de système réservé." - -#: app_gateway/forms.py:58 +#: app_gateway/forms.py:55 msgid "This upstream is reserved by the system." msgstr "Cet upstream est réservé par le système." -#: app_gateway/forms.py:61 +#: app_gateway/forms.py:58 msgid "Upstream URL cannot contain spaces." msgstr "L'URL upstream ne peut pas contenir d'espaces." -#: app_gateway/forms.py:67 +#: app_gateway/forms.py:64 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "Entrez une URL upstream valide commençant par http:// ou https://" -#: app_gateway/forms.py:77 cluster/forms.py:24 dns/forms.py:65 -#: templates/app_gateway/app_gateway_list.html:101 -#: templates/app_gateway/application_details.html:61 +#: app_gateway/forms.py:66 +msgid "" +"Upstream must be a bare host address with no path, query or fragment. Use " +"http://host or http://host:port" +msgstr "" + +#: app_gateway/forms.py:76 cluster/forms.py:24 dns/forms.py:65 +#: templates/app_gateway/app_gateway_list.html:109 +#: templates/app_gateway/application_details.html:75 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Nom d’hôte" -#: app_gateway/forms.py:107 templates/app_gateway/app_gateway_list.html:139 +#: app_gateway/forms.py:84 +msgid "Hostname contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:114 templates/app_gateway/app_gateway_list.html:147 msgid "Policy Type" msgstr "Type de politique" -#: app_gateway/forms.py:108 +#: app_gateway/forms.py:115 msgid "Allowed Groups" msgstr "Groupes autorisés" -#: app_gateway/forms.py:109 templates/gatekeeper/gatekeeper_list.html:12 +#: app_gateway/forms.py:116 templates/gatekeeper/gatekeeper_list.html:13 msgid "Authentication Methods" msgstr "Méthodes d'authentification" -#: app_gateway/forms.py:188 +#: app_gateway/forms.py:196 msgid "Cannot select more than one Local Password authentication method." msgstr "" "Impossible de sélectionner plus d'une méthode d'authentification par mot de " "passe local." -#: app_gateway/forms.py:192 +#: app_gateway/forms.py:200 msgid "" "Cannot select more than one OpenID Connect (OIDC) authentication method." msgstr "" "Impossible de sélectionner plus d'une méthode d'authentification OpenID " "Connect (OIDC)." -#: app_gateway/forms.py:196 +#: app_gateway/forms.py:204 msgid "Cannot select more than one TOTP authentication method." msgstr "Impossible de sélectionner plus d'une méthode d'authentification TOTP." -#: app_gateway/forms.py:200 +#: app_gateway/forms.py:208 msgid "" "Cannot select both Local Password and OpenID Connect (OIDC) authentication " "methods." @@ -288,15 +293,7 @@ msgstr "" "Impossible de sélectionner à la fois les méthodes d'authentification par mot " "de passe local et OpenID Connect (OIDC)." -#: app_gateway/forms.py:204 -msgid "" -"TOTP must be combined with a Local Password or OpenID Connect authentication " -"method." -msgstr "" -"Le TOTP doit être combiné avec une méthode d'authentification par Mot de " -"passe local ou OpenID Connect." - -#: app_gateway/forms.py:208 +#: app_gateway/forms.py:212 msgid "" "At least one user group must be selected when using Local Password " "authentication." @@ -304,75 +301,102 @@ msgstr "" "Au moins un groupe d'utilisateurs doit être sélectionné lors de " "l'utilisation de l'authentification par mot de passe local." -#: app_gateway/forms.py:212 +#: app_gateway/forms.py:216 msgid "User groups can only be used with Local Password authentication." msgstr "" "Les groupes d'utilisateurs ne peuvent être utilisés qu'avec " "l'authentification par mot de passe local." -#: app_gateway/forms.py:222 templates/app_gateway/app_gateway_list.html:62 -#: templates/app_gateway/application_details.html:31 +#: app_gateway/forms.py:226 templates/app_gateway/app_gateway_list.html:70 +#: templates/app_gateway/application_details.html:39 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Politique par défaut" -#: app_gateway/forms.py:251 templates/app_gateway/application_details.html:105 +#: app_gateway/forms.py:255 templates/app_gateway/application_details.html:134 msgid "Route Name" msgstr "Nom de la route" -#: app_gateway/forms.py:252 templates/app_gateway/application_details.html:106 +#: app_gateway/forms.py:256 templates/app_gateway/application_details.html:135 msgid "Path Prefix" msgstr "Préfixe de chemin" -#: app_gateway/forms.py:253 templates/app_gateway/application_details.html:107 +#: app_gateway/forms.py:257 templates/app_gateway/application_details.html:136 msgid "Policy" msgstr "Politique" -#: app_gateway/forms.py:254 templates/app_gateway/application_details.html:108 +#: app_gateway/forms.py:258 templates/app_gateway/application_details.html:137 msgid "Order" msgstr "Ordre" -#: app_gateway/models.py:12 +#: app_gateway/forms.py:299 +#, fuzzy +#| msgid "Invite URL must start with 'https://'." +msgid "Path prefix must start with /." +msgstr "L’URL d’invitation doit commencer par « https:// »." + +#: app_gateway/forms.py:301 +#, fuzzy +#| msgid "Upstream URL cannot contain spaces." +msgid "Path prefix cannot contain spaces." +msgstr "L'URL upstream ne peut pas contenir d'espaces." + +#: app_gateway/forms.py:303 +msgid "Path prefix contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:308 +#, fuzzy +#| msgid "This upstream is reserved by the system." +msgid "This path prefix is reserved by the system." +msgstr "Cet upstream est réservé par le système." + +#: app_gateway/models.py:14 msgid "Upstream address, e.g.: http://10.188.18.27:3000" msgstr "Adresse en amont, ex : http://10.188.18.27:3000" -#: app_gateway/models.py:45 +#: app_gateway/models.py:15 +msgid "Allow invalid or self-signed TLS certificates from the upstream" +msgstr "" + +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:19 msgid "Public" msgstr "Public" -#: app_gateway/models.py:45 +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:30 msgid "Protected" msgstr "Protégé" -#: app_gateway/models.py:45 gatekeeper/models.py:108 +#: app_gateway/models.py:53 gatekeeper/models.py:142 #: templates/app_gateway/access_policy_type_select.html:41 -#: templates/gatekeeper/gatekeeper_list.html:288 +#: templates/gatekeeper/gatekeeper_list.html:289 msgid "Deny" msgstr "Refuser" -#: app_gateway/models.py:80 -msgid "Route identifier, used in export (e.g.: public_area)" -msgstr "Identifiant d'itinéraire, utilisé dans l'exportation (ex: public_area)" - -#: app_gateway/views.py:60 +#: app_gateway/views.py:75 msgid "Application Details" msgstr "Détails de l'application" -#: app_gateway/views.py:74 templates/app_gateway/application_details.html:15 +#: app_gateway/views.py:90 app_gateway/views.py:174 app_gateway/views.py:204 +msgid "The WireGuard WebAdmin application cannot be modified." +msgstr "" + +#: app_gateway/views.py:92 templates/app_gateway/application_details.html:16 +#: templates/app_gateway/application_details.html:23 msgid "Edit Application" msgstr "Modifier l'application" -#: app_gateway/views.py:77 +#: app_gateway/views.py:95 msgid "Create Application" msgstr "Créer une application" -#: app_gateway/views.py:84 +#: app_gateway/views.py:102 msgid "Application saved successfully." msgstr "Application enregistrée avec succès." -#: app_gateway/views.py:89 +#: app_gateway/views.py:107 msgid "" "\n" "
Application
\n" @@ -407,62 +431,67 @@ msgstr "" " \n" " " -#: app_gateway/views.py:120 +#: app_gateway/views.py:137 +msgid "The WireGuard WebAdmin application cannot be deleted." +msgstr "" + +#: app_gateway/views.py:142 msgid "Application deleted successfully." msgstr "Application supprimée avec succès." -#: app_gateway/views.py:125 templates/app_gateway/application_details.html:18 +#: app_gateway/views.py:147 templates/app_gateway/application_details.html:19 +#: templates/app_gateway/application_details.html:26 msgid "Delete Application" msgstr "Supprimer l'application" -#: app_gateway/views.py:127 +#: app_gateway/views.py:149 #, python-format msgid "Are you sure you want to delete the application \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'application \"%(name)s\" ?" -#: app_gateway/views.py:143 +#: app_gateway/views.py:165 msgid "Edit Application Host" msgstr "Modifier l'hôte d'application" -#: app_gateway/views.py:147 +#: app_gateway/views.py:169 msgid "Add Application Host" msgstr "Ajouter un hôte d'application" -#: app_gateway/views.py:156 +#: app_gateway/views.py:182 msgid "Application Host saved successfully." msgstr "Hôte d'application enregistré avec succès." -#: app_gateway/views.py:179 +#: app_gateway/views.py:209 msgid "Application Host deleted successfully." msgstr "Hôte d'application supprimé avec succès." -#: app_gateway/views.py:184 +#: app_gateway/views.py:214 msgid "Delete Application Host" msgstr "Supprimer l'hôte d'application" -#: app_gateway/views.py:186 +#: app_gateway/views.py:216 #, python-format msgid "Are you sure you want to delete the host \"%(hostname)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'hôte \"%(hostname)s\" ?" -#: app_gateway/views.py:197 +#: app_gateway/views.py:227 #: templates/app_gateway/access_policy_type_select.html:9 msgid "Select Access Policy Type" msgstr "Sélectionner le type de politique d'accès" -#: app_gateway/views.py:212 +#: app_gateway/views.py:242 msgid "Edit Access Policy" msgstr "Modifier la politique d'accès" -#: app_gateway/views.py:216 +#: app_gateway/views.py:246 msgid "Create Access Policy" msgstr "Créer une politique d'accès" -#: app_gateway/views.py:223 +#: app_gateway/views.py:253 msgid "Access Policy saved successfully." msgstr "Politique d'accès enregistrée avec succès." -#: app_gateway/views.py:229 +#: app_gateway/views.py:259 msgid "" "\n" "
Public Policy
\n" @@ -476,7 +505,7 @@ msgstr "" "nécessiter d'authentification.

\n" " " -#: app_gateway/views.py:237 +#: app_gateway/views.py:267 msgid "" "\n" "
Deny Policy
\n" @@ -489,7 +518,7 @@ msgstr "" "correspondants.

\n" " " -#: app_gateway/views.py:245 +#: app_gateway/views.py:275 msgid "" "\n" "
Protected Policy
\n" @@ -520,11 +549,11 @@ msgstr "" " \n" " " -#: app_gateway/views.py:276 +#: app_gateway/views.py:306 msgid "Access Policy deleted successfully." msgstr "Politique d'accès supprimée avec succès." -#: app_gateway/views.py:278 +#: app_gateway/views.py:308 msgid "" "Cannot delete this Access Policy because it is currently in use by an " "Application Route or Application Default Policy." @@ -533,55 +562,55 @@ msgstr "" "utilisée par un itinéraire d'application ou une politique par défaut " "d'application." -#: app_gateway/views.py:283 +#: app_gateway/views.py:313 msgid "Delete Access Policy" msgstr "Supprimer la politique d'accès" -#: app_gateway/views.py:285 +#: app_gateway/views.py:315 #, python-format msgid "Are you sure you want to delete the access policy \"%(name)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer la politique d'accès \"%(name)s\" ?" -#: app_gateway/views.py:301 +#: app_gateway/views.py:331 msgid "Edit Application Default Policy" msgstr "Modifier la politique par défaut de l'application" -#: app_gateway/views.py:305 +#: app_gateway/views.py:335 msgid "Set Application Default Policy" msgstr "Définir la politique par défaut de l'application" -#: app_gateway/views.py:314 +#: app_gateway/views.py:344 msgid "Application Default Policy saved successfully." msgstr "Politique par défaut de l'application enregistrée avec succès." -#: app_gateway/views.py:337 +#: app_gateway/views.py:367 msgid "Application Default Policy deleted successfully." msgstr "Politique par défaut de l'application supprimée avec succès." -#: app_gateway/views.py:342 +#: app_gateway/views.py:372 msgid "Delete Application Default Policy" msgstr "Supprimer la politique par défaut de l'application" -#: app_gateway/views.py:344 +#: app_gateway/views.py:374 #, python-format msgid "Are you sure you want to remove the default policy for \"%(name)s\"?" msgstr "" "Êtes-vous sûr de vouloir supprimer la politique par défaut pour " "\"%(name)s\" ?" -#: app_gateway/views.py:362 +#: app_gateway/views.py:392 msgid "Edit Application Route" msgstr "Modifier la route de l'application" -#: app_gateway/views.py:366 +#: app_gateway/views.py:396 msgid "Add Application Route" msgstr "Ajouter une route d'application" -#: app_gateway/views.py:375 +#: app_gateway/views.py:405 msgid "Application Route saved successfully." msgstr "Route d'application enregistrée avec succès." -#: app_gateway/views.py:380 +#: app_gateway/views.py:410 msgid "" "\n" "
Application Route
\n" @@ -623,42 +652,41 @@ msgstr "" " \n" " " -#: app_gateway/views.py:413 +#: app_gateway/views.py:443 msgid "Application Route deleted successfully." msgstr "Route d'application supprimée avec succès." -#: app_gateway/views.py:418 +#: app_gateway/views.py:448 msgid "Delete Application Route" msgstr "Supprimer la route d'application" -#: app_gateway/views.py:420 +#: app_gateway/views.py:450 #, python-format msgid "Are you sure you want to delete the route \"%(name)s\" (%(path)s)?" msgstr "Êtes-vous sûr de vouloir supprimer la route \"%(name)s\" (%(path)s) ?" -#: app_gateway/views.py:443 +#: app_gateway/views.py:468 +msgid "" +"Configuration export is not available because Caddy is not enabled. To use " +"App Gateway and Gatekeeper, start the application using docker-compose-" +"caddy.yml." +msgstr "" + +#: app_gateway/views.py:478 msgid "Configuration exported successfully." msgstr "Configuration exportée avec succès." -#: app_gateway/views.py:445 -msgid "" -"Caddy is not active. Configuration files were exported for debugging " -"purposes." -msgstr "" -"Caddy n'est pas actif. Les fichiers de configuration ont été exportés à des " -"fins de débogage." - #: cluster/forms.py:20 msgid "IP Lock" msgstr "Verrouillage IP" -#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:271 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:315 #: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 #: templates/firewall/manage_redirect_rule.html:68 -#: templates/gatekeeper/gatekeeper_list.html:272 +#: templates/gatekeeper/gatekeeper_list.html:273 #: templates/wireguard/wireguard_status.html:45 msgid "IP Address" msgstr "Adresse IP" @@ -934,7 +962,7 @@ msgstr "DNS statique" msgid "Invalid hostname." msgstr "Nom d'hôte invalide." -#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:274 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:318 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1268,13 +1296,13 @@ 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:17 templates/accounts/login.html:23 +#: gatekeeper/forms.py:18 templates/accounts/login.html:23 #: templates/vpn_invite/invite_settings.html:19 user_manager/forms.py:14 #: vpn_invite/forms.py:282 msgid "Password" msgstr "Mot de passe" -#: gatekeeper/forms.py:20 +#: gatekeeper/forms.py:21 msgid "" "Minimum 8 characters, with at least one uppercase letter, one lowercase " "letter, and one number." @@ -1282,15 +1310,15 @@ msgstr "" "Minimum 8 caractères, avec au moins une lettre majuscule, une lettre " "minuscule et un chiffre." -#: gatekeeper/forms.py:23 +#: gatekeeper/forms.py:24 msgid "Confirm Password" msgstr "Confirmer le mot de passe" -#: gatekeeper/forms.py:28 gatekeeper/forms.py:161 +#: gatekeeper/forms.py:29 gatekeeper/forms.py:163 msgid "TOTP Validation PIN" msgstr "Code de validation TOTP" -#: gatekeeper/forms.py:31 gatekeeper/forms.py:164 +#: gatekeeper/forms.py:32 gatekeeper/forms.py:166 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1298,193 +1326,227 @@ msgstr "" "Saisissez un code à 6 chiffres généré par votre application " "d'authentification pour valider le secret." -#: gatekeeper/forms.py:38 templates/accounts/login.html:14 -#: templates/gatekeeper/gatekeeper_list.html:61 +#: gatekeeper/forms.py:39 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:62 #: 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:39 gatekeeper/forms.py:344 -#: templates/gatekeeper/gatekeeper_list.html:62 -#: templates/gatekeeper/gatekeeper_list.html:220 +#: gatekeeper/forms.py:40 gatekeeper/forms.py:407 +#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:221 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "E‑mail" -#: gatekeeper/forms.py:40 +#: gatekeeper/forms.py:41 msgid "TOTP Secret" msgstr "Secret TOTP" -#: gatekeeper/forms.py:87 +#: gatekeeper/forms.py:88 msgid "Password is required." msgstr "Le mot de passe est obligatoire." -#: gatekeeper/forms.py:90 user_manager/forms.py:127 +#: gatekeeper/forms.py:91 user_manager/forms.py:127 msgid "Password must be at least 8 characters long." msgstr "Le mot de passe doit comporter au moins 8 caractères." -#: gatekeeper/forms.py:92 +#: gatekeeper/forms.py:93 msgid "Password must contain at least one lowercase letter." msgstr "Le mot de passe doit contenir au moins une lettre minuscule." -#: gatekeeper/forms.py:94 +#: gatekeeper/forms.py:95 msgid "Password must contain at least one uppercase letter." msgstr "Le mot de passe doit contenir au moins une lettre majuscule." -#: gatekeeper/forms.py:96 +#: gatekeeper/forms.py:97 msgid "Password must contain at least one number." msgstr "Le mot de passe doit contenir au moins un chiffre." -#: gatekeeper/forms.py:98 +#: gatekeeper/forms.py:99 msgid "Passwords do not match." msgstr "Les mots de passe ne correspondent pas." -#: gatekeeper/forms.py:103 gatekeeper/forms.py:249 +#: gatekeeper/forms.py:104 gatekeeper/forms.py:276 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Veuillez fournir un code pour valider le secret TOTP." -#: gatekeeper/forms.py:108 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:109 gatekeeper/forms.py:281 msgid "Invalid TOTP PIN." msgstr "Code TOTP invalide." -#: gatekeeper/forms.py:110 gatekeeper/forms.py:256 +#: gatekeeper/forms.py:111 gatekeeper/forms.py:283 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:130 templates/gatekeeper/gatekeeper_list.html:120 +#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 msgid "Group Name" msgstr "Nom du groupe" -#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 +#: gatekeeper/forms.py:132 templates/gatekeeper/gatekeeper_list.html:122 msgid "Members" msgstr "Membres" +#: gatekeeper/forms.py:169 +#, fuzzy +#| msgid "Expiration" +msgid "Session Expiration" +msgstr "Expiration" + #: gatekeeper/forms.py:175 +msgid "Unit" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Hour(s)" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Day(s)" +msgstr "" + +#: gatekeeper/forms.py:189 msgid "Authentication Type" msgstr "Type d'authentification" -#: gatekeeper/forms.py:176 +#: gatekeeper/forms.py:190 msgid "Global TOTP Secret" msgstr "Secret TOTP mondial" -#: gatekeeper/forms.py:177 +#: gatekeeper/forms.py:191 msgid "OIDC Provider URL" msgstr "URL du fournisseur OIDC" -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:192 msgid "OIDC Client ID" msgstr "ID client OIDC" -#: gatekeeper/forms.py:179 +#: gatekeeper/forms.py:193 msgid "OIDC Client Secret" msgstr "Secret client OIDC" -#: gatekeeper/forms.py:230 +#: gatekeeper/forms.py:257 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:232 +#: gatekeeper/forms.py:259 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:234 +#: gatekeeper/forms.py:261 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:240 +#: gatekeeper/forms.py:267 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:243 +#: gatekeeper/forms.py:270 msgid "OIDC fields must be empty for TOTP authentication." msgstr "Les champs OIDC doivent être vides pour l'authentification TOTP." -#: gatekeeper/forms.py:245 +#: gatekeeper/forms.py:272 msgid "TOTP secret is required for TOTP authentication." msgstr "Le secret TOTP est requis pour l'authentification TOTP." -#: gatekeeper/forms.py:259 +#: gatekeeper/forms.py:285 +msgid "" +"OIDC authentication is temporarily unavailable and will be available soon." +msgstr "" + +#: gatekeeper/forms.py:287 msgid "TOTP secret must be empty for OIDC authentication." msgstr "Le secret TOTP doit être vide pour l'authentification OIDC." -#: gatekeeper/forms.py:261 +#: gatekeeper/forms.py:289 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:270 gatekeeper/forms.py:312 gatekeeper/forms.py:343 +#: gatekeeper/forms.py:314 gatekeeper/forms.py:375 gatekeeper/forms.py:406 msgid "Authentication Method" msgstr "Méthode d'authentification" -#: gatekeeper/forms.py:272 templates/gatekeeper/gatekeeper_list.html:273 +#: gatekeeper/forms.py:316 templates/gatekeeper/gatekeeper_list.html:274 msgid "Prefix Length" msgstr "Longueur du préfixe" -#: gatekeeper/forms.py:273 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:317 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 -#: templates/gatekeeper/gatekeeper_list.html:274 +#: templates/gatekeeper/gatekeeper_list.html:275 msgid "Action" msgstr "Action" -#: gatekeeper/forms.py:313 templates/gatekeeper/gatekeeper_list.html:237 +#: gatekeeper/forms.py:332 +#, python-format +msgid "Prefix length for IPv%(version)d must be between 0 and %(max)d." +msgstr "" + +#: gatekeeper/forms.py:376 templates/gatekeeper/gatekeeper_list.html:238 msgid "Domain" msgstr "Domaine" -#: gatekeeper/models.py:10 +#: gatekeeper/models.py:27 msgid "Local Password" msgstr "Mot de passe local" -#: gatekeeper/models.py:11 +#: gatekeeper/models.py:28 msgid "One-Time Password (TOTP)" msgstr "Mot de passe à usage unique (TOTP)" -#: gatekeeper/models.py:12 +#: gatekeeper/models.py:29 msgid "OpenID Connect (OIDC)" msgstr "OpenID Connect (OIDC)" -#: gatekeeper/models.py:13 +#: gatekeeper/models.py:30 msgid "IP Address List" msgstr "Liste d'adresses IP" -#: gatekeeper/models.py:17 +#: gatekeeper/models.py:34 msgid "Shared/global TOTP secret key" msgstr "Clé secrète TOTP partagée/globale" -#: gatekeeper/models.py:68 +#: gatekeeper/models.py:39 +#, fuzzy +#| msgid "Expiration (minutes)" +msgid "Session expiration time in minutes" +msgstr "Expiration (minutes)" + +#: gatekeeper/models.py:96 msgid "Password for local authentication (leave blank if not using)" msgstr "" "Mot de passe pour l'authentification locale (laissez vide si vous ne " "l'utilisez pas)" -#: gatekeeper/models.py:69 +#: gatekeeper/models.py:97 msgid "Per-user TOTP secret key" msgstr "Clé secrète TOTP par utilisateur" -#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:286 +#: gatekeeper/models.py:142 templates/gatekeeper/gatekeeper_list.html:287 msgid "Allow" msgstr "Autoriser" -#: gatekeeper/views.py:54 +#: gatekeeper/views.py:58 msgid "Edit Gatekeeper User" msgstr "Modifier l'utilisateur Gatekeeper" -#: gatekeeper/views.py:57 +#: gatekeeper/views.py:61 msgid "Create Gatekeeper User" msgstr "Créer un utilisateur Gatekeeper" -#: gatekeeper/views.py:64 +#: gatekeeper/views.py:68 msgid "Gatekeeper User saved successfully." msgstr "Utilisateur Gatekeeper enregistré avec succès." -#: gatekeeper/views.py:69 +#: gatekeeper/views.py:73 msgid "" "\n" "

Gatekeeper User

\n" @@ -1528,57 +1590,77 @@ msgstr "" " 6 chiffres avant d'enregistrer.

\n" " " -#: gatekeeper/views.py:106 +#: gatekeeper/views.py:110 msgid "Gatekeeper User deleted successfully." msgstr "Utilisateur Gatekeeper supprimé avec succès." -#: gatekeeper/views.py:111 +#: gatekeeper/views.py:115 msgid "Delete Gatekeeper User" msgstr "Supprimer l'utilisateur Gatekeeper" -#: gatekeeper/views.py:113 +#: gatekeeper/views.py:117 #, 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:127 +#: gatekeeper/views.py:131 msgid "Edit Gatekeeper Group" msgstr "Modifier le groupe Gatekeeper" -#: gatekeeper/views.py:130 +#: gatekeeper/views.py:134 msgid "Create Gatekeeper Group" msgstr "Créer un groupe Gatekeeper" -#: gatekeeper/views.py:137 +#: gatekeeper/views.py:141 msgid "Gatekeeper Group saved successfully." msgstr "Groupe Gatekeeper enregistré avec succès." -#: gatekeeper/views.py:159 +#: gatekeeper/views.py:163 msgid "Gatekeeper Group deleted successfully." msgstr "Groupe Gatekeeper supprimé avec succès." -#: gatekeeper/views.py:164 +#: gatekeeper/views.py:168 msgid "Delete Gatekeeper Group" msgstr "Supprimer le groupe Gatekeeper" -#: gatekeeper/views.py:166 +#: gatekeeper/views.py:170 #, 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:180 +#: gatekeeper/views.py:184 msgid "Edit Authentication Method" msgstr "Modifier la méthode d'authentification" -#: gatekeeper/views.py:183 +#: gatekeeper/views.py:187 msgid "Create Authentication Method" msgstr "Créer une méthode d'authentification" -#: gatekeeper/views.py:190 +#: gatekeeper/views.py:194 msgid "Authentication Method saved successfully." msgstr "Méthode d'authentification enregistrée avec succès." -#: gatekeeper/views.py:195 +#: gatekeeper/views.py:199 +#, fuzzy +#| msgid "" +#| "\n" +#| "

Authentication Types

\n" +#| "

Select how users will authenticate through this method.

\n" +#| " \n" +#| "
Local Password
\n" +#| "

Users will authenticate using a standard username and password " +#| "stored locally. Only one of this type can be created.

\n" +#| " \n" +#| "
OIDC (OpenID Connect)
\n" +#| "

Users will authenticate via an external identity provider " +#| "(like Keycloak, Google, or Authelia). Requires Provider URL, Client ID, " +#| "and Client Secret.

\n" +#| " \n" +#| "
TOTP (Time-Based One-Time Password)
\n" +#| "

Users will need to enter a rotating token from an " +#| "authenticator app. If a user does not have a personal TOTP configured, " +#| "the Global TOTP Secret will be used instead.

\n" +#| " " msgid "" "\n" "

Authentication Types

\n" @@ -1590,8 +1672,8 @@ msgid "" " \n" "
OIDC (OpenID Connect)
\n" "

Users will authenticate via an external identity provider (like " -"Keycloak, Google, or Authelia). Requires Provider URL, Client ID, and Client " -"Secret.

\n" +"Keycloak or Google). Requires Provider URL, Client ID, and Client Secret.\n" " \n" "
TOTP (Time-Based One-Time Password)
\n" "

Users will need to enter a rotating token from an authenticator " @@ -1601,101 +1683,113 @@ msgid "" msgstr "" "\n" "

Types d'authentification

\n" -"

Sélectionnez la manière dont les utilisateurs s'authentifieront via cette méthode.

\n" +"

Sélectionnez la manière dont les utilisateurs s'authentifieront " +"via cette méthode.

\n" "\n" "
Mot de passe local
\n" -"

Les utilisateurs s'authentifieront à l'aide d'un nom d'utilisateur et d'un mot de passe " -"standard stockés localement. Un seul de ce type peut être créé.

\n" +"

Les utilisateurs s'authentifieront à l'aide d'un nom " +"d'utilisateur et d'un mot de passe standard stockés localement. Un seul de " +"ce type peut être créé.

\n" "\n" "
OIDC (OpenID Connect)
\n" -"

Les utilisateurs s'authentifieront via un fournisseur d'identité externe " -"(comme Keycloak, Google ou Authelia). Nécessite l'URL du fournisseur, l'ID client et le secret client.

\n" +"

Les utilisateurs s'authentifieront via un fournisseur d'identité " +"externe (comme Keycloak, Google ou Authelia). Nécessite l'URL du " +"fournisseur, l'ID client et le secret client.

\n" "\n" "
TOTP (Mot de passe à usage unique basé sur le temps)
\n" -"

Les utilisateurs devront saisir un jeton rotatif à partir d'une application d'authentification. " -"Si un utilisateur n'a pas configuré de TOTP personnel, le secret TOTP global sera utilisé à la place.

\n" +"

Les utilisateurs devront saisir un jeton rotatif à partir d'une " +"application d'authentification. Si un utilisateur n'a pas configuré de TOTP " +"personnel, le secret TOTP global sera utilisé à la place.\n" " " -#: gatekeeper/views.py:230 +#: gatekeeper/views.py:237 +#, python-format +msgid "" +"Cannot delete authentication method \"%(method)s\" because it is used by the " +"following policies: %(policies)s." +msgstr "" + +#: gatekeeper/views.py:243 msgid "Authentication Method deleted successfully." msgstr "Méthode d'authentification supprimée avec succès." -#: gatekeeper/views.py:235 +#: gatekeeper/views.py:248 msgid "Delete Authentication Method" msgstr "Supprimer la méthode d'authentification" -#: gatekeeper/views.py:237 +#: gatekeeper/views.py:250 #, 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:287 +#: gatekeeper/views.py:303 msgid "Edit Allowed Domain" msgstr "Modifier le domaine autorisé" -#: gatekeeper/views.py:290 templates/gatekeeper/gatekeeper_list.html:202 +#: gatekeeper/views.py:306 templates/gatekeeper/gatekeeper_list.html:203 msgid "Add Allowed Domain" msgstr "Ajouter un domaine autorisé" -#: gatekeeper/views.py:297 +#: gatekeeper/views.py:313 msgid "Allowed Domain saved successfully." msgstr "Domaine autorisé enregistré avec succès." -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:335 msgid "Allowed Domain deleted successfully." msgstr "Domaine autorisé supprimé avec succès." -#: gatekeeper/views.py:324 +#: gatekeeper/views.py:340 msgid "Delete Allowed Domain" msgstr "Supprimer le domaine autorisé" -#: gatekeeper/views.py:326 +#: gatekeeper/views.py:342 #, 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:340 +#: gatekeeper/views.py:356 msgid "Edit Allowed Email" msgstr "Modifier l'e-mail autorisé" -#: gatekeeper/views.py:343 templates/gatekeeper/gatekeeper_list.html:199 +#: gatekeeper/views.py:359 templates/gatekeeper/gatekeeper_list.html:200 msgid "Add Allowed Email" msgstr "Ajouter un e-mail autorisé" -#: gatekeeper/views.py:350 +#: gatekeeper/views.py:366 msgid "Allowed Email saved successfully." msgstr "E-mail autorisé enregistré avec succès." -#: gatekeeper/views.py:372 +#: gatekeeper/views.py:388 msgid "Allowed Email deleted successfully." msgstr "E-mail autorisé supprimé avec succès." -#: gatekeeper/views.py:377 +#: gatekeeper/views.py:393 msgid "Delete Allowed Email" msgstr "Supprimer l'e-mail autorisé" -#: gatekeeper/views.py:379 +#: gatekeeper/views.py:395 #, 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:393 +#: gatekeeper/views.py:409 msgid "Edit IP Address" msgstr "Modifier l'adresse IP" -#: gatekeeper/views.py:396 templates/gatekeeper/gatekeeper_list.html:263 +#: gatekeeper/views.py:412 templates/gatekeeper/gatekeeper_list.html:264 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Ajouter une adresse IP" -#: gatekeeper/views.py:403 +#: gatekeeper/views.py:419 msgid "IP Address saved successfully." msgstr "Adresse IP enregistrée avec succès." -#: gatekeeper/views.py:408 +#: gatekeeper/views.py:424 msgid "" "\n" "

IP Address List
\n" @@ -1742,24 +1836,25 @@ msgstr "" "\"Réseau de bureau\", \"Attaquant bloqué\").

\n" " " -#: gatekeeper/views.py:444 +#: gatekeeper/views.py:460 msgid "IP Address deleted successfully." msgstr "Adresse IP supprimée avec succès." -#: gatekeeper/views.py:449 +#: gatekeeper/views.py:465 msgid "Delete IP Address" msgstr "Supprimer l'adresse IP" -#: gatekeeper/views.py:451 +#: gatekeeper/views.py:467 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "Êtes-vous sûr de vouloir supprimer l'adresse IP \"%(address)s\" ?" -#: intl_tools/forms.py:11 templates/accounts/login.html:36 +#: intl_tools/forms.py:11 msgid "Language" msgstr "Langue" -#: intl_tools/forms.py:24 templates/template_parts/base_navbar.html:14 +#: intl_tools/forms.py:24 templates/accounts/login.html:35 +#: templates/template_parts/base_navbar.html:19 msgid "Change Language" msgstr "Changer de langue" @@ -2093,6 +2188,11 @@ msgstr "" msgid "Login" msgstr "Connexion" +#: templates/accounts/login.html:40 +#: templates/template_parts/base_navbar.html:14 +msgid "Toggle Dark Mode" +msgstr "" + #: templates/accounts/logout.html:11 msgid "You have been successfully logged out." msgstr "Vous avez été déconnecté avec succès." @@ -2115,8 +2215,8 @@ msgid "In" msgstr "Entrée" #: templates/api_v2/api_documentation.html:49 -#: templates/gatekeeper/gatekeeper_list.html:166 -#: templates/gatekeeper/gatekeeper_list.html:211 +#: templates/gatekeeper/gatekeeper_list.html:167 +#: templates/gatekeeper/gatekeeper_list.html:212 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Type" @@ -2126,13 +2226,13 @@ msgid "Required" msgstr "Obligatoire" #: templates/api_v2/api_documentation.html:62 -#: templates/gatekeeper/gatekeeper_list.html:75 +#: templates/gatekeeper/gatekeeper_list.html:76 #: templates/scheduler/scheduleprofile_form.html:175 msgid "Yes" msgstr "Oui" #: templates/api_v2/api_documentation.html:64 -#: templates/gatekeeper/gatekeeper_list.html:77 +#: templates/gatekeeper/gatekeeper_list.html:78 #: templates/scheduler/scheduleprofile_form.html:177 msgid "No" msgstr "Non" @@ -2172,17 +2272,17 @@ msgid "Disabled" msgstr "Désactivé" #: templates/api_v2/list.html:68 -#: templates/app_gateway/app_gateway_list.html:154 -#: templates/app_gateway/application_details.html:71 -#: templates/app_gateway/application_details.html:121 +#: templates/app_gateway/app_gateway_list.html:162 +#: templates/app_gateway/application_details.html:99 +#: templates/app_gateway/application_details.html:150 #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 -#: templates/gatekeeper/gatekeeper_list.html:89 -#: templates/gatekeeper/gatekeeper_list.html:132 -#: templates/gatekeeper/gatekeeper_list.html:177 -#: templates/gatekeeper/gatekeeper_list.html:225 -#: templates/gatekeeper/gatekeeper_list.html:242 -#: templates/gatekeeper/gatekeeper_list.html:294 +#: templates/gatekeeper/gatekeeper_list.html:90 +#: templates/gatekeeper/gatekeeper_list.html:133 +#: templates/gatekeeper/gatekeeper_list.html:178 +#: templates/gatekeeper/gatekeeper_list.html:226 +#: templates/gatekeeper/gatekeeper_list.html:243 +#: templates/gatekeeper/gatekeeper_list.html:295 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -2215,78 +2315,83 @@ msgstr "" msgid "Deny all access." msgstr "Refuser tout accès." -#: templates/app_gateway/app_gateway_list.html:12 -#: templates/app_gateway/app_gateway_list.html:30 +#: templates/app_gateway/app_gateway_list.html:13 +#: templates/app_gateway/app_gateway_list.html:31 msgid "Applications" msgstr "Applications" -#: templates/app_gateway/app_gateway_list.html:18 +#: templates/app_gateway/app_gateway_list.html:19 msgid "Access Policies" msgstr "Politiques d'accès" -#: templates/app_gateway/app_gateway_list.html:34 -#: templates/app_gateway/app_gateway_list.html:60 +#: templates/app_gateway/app_gateway_list.html:35 +#: templates/app_gateway/app_gateway_list.html:68 #: templates/dns/static_host_list.html:70 msgid "Hosts" msgstr "Hôtes" -#: templates/app_gateway/app_gateway_list.html:42 +#: templates/app_gateway/app_gateway_list.html:44 +#: templates/app_gateway/app_gateway_list.html:50 msgid "Export Configuration" msgstr "Exporter la configuration" -#: templates/app_gateway/app_gateway_list.html:46 +#: templates/app_gateway/app_gateway_list.html:49 +msgid "Export is not available because Caddy is not enabled." +msgstr "" + +#: templates/app_gateway/app_gateway_list.html:54 msgid "Add Application" msgstr "Ajouter une application" -#: templates/app_gateway/app_gateway_list.html:61 +#: templates/app_gateway/app_gateway_list.html:69 msgid "Routes" msgstr "Routes" -#: templates/app_gateway/app_gateway_list.html:80 -#: templates/app_gateway/application_details.html:39 +#: templates/app_gateway/app_gateway_list.html:88 +#: templates/app_gateway/application_details.html:47 msgid "Default (Deny)" msgstr "Par défaut (Refuser)" -#: templates/app_gateway/app_gateway_list.html:90 +#: templates/app_gateway/app_gateway_list.html:98 msgid "No Applications found." msgstr "Aucune application trouvée." -#: templates/app_gateway/app_gateway_list.html:102 +#: templates/app_gateway/app_gateway_list.html:110 msgid "Application" msgstr "Application" -#: templates/app_gateway/app_gateway_list.html:121 +#: templates/app_gateway/app_gateway_list.html:129 msgid "No Hosts found." msgstr "Aucun hôte trouvé." -#: templates/app_gateway/app_gateway_list.html:129 +#: templates/app_gateway/app_gateway_list.html:137 msgid "Add Access Policy" msgstr "Ajouter une politique d'accès" -#: templates/app_gateway/app_gateway_list.html:140 -#: templates/gatekeeper/gatekeeper_list.html:43 -#: templates/gatekeeper/gatekeeper_list.html:64 +#: templates/app_gateway/app_gateway_list.html:148 +#: templates/gatekeeper/gatekeeper_list.html:44 +#: templates/gatekeeper/gatekeeper_list.html:65 msgid "Groups" msgstr "Groupes" -#: templates/app_gateway/app_gateway_list.html:141 +#: templates/app_gateway/app_gateway_list.html:149 msgid "Auth Methods" msgstr "Méthodes d'authentification" -#: templates/app_gateway/app_gateway_list.html:142 -#: templates/app_gateway/application_details.html:62 -#: templates/app_gateway/application_details.html:109 -#: templates/gatekeeper/gatekeeper_list.html:65 -#: templates/gatekeeper/gatekeeper_list.html:122 -#: templates/gatekeeper/gatekeeper_list.html:167 -#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/app_gateway/app_gateway_list.html:150 +#: templates/app_gateway/application_details.html:76 +#: templates/app_gateway/application_details.html:138 +#: templates/gatekeeper/gatekeeper_list.html:66 +#: templates/gatekeeper/gatekeeper_list.html:123 +#: templates/gatekeeper/gatekeeper_list.html:168 +#: templates/gatekeeper/gatekeeper_list.html:215 #: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Actions" -#: templates/app_gateway/app_gateway_list.html:169 +#: templates/app_gateway/app_gateway_list.html:177 msgid "No Access Policies found." msgstr "Aucune politique d'accès trouvée." @@ -2295,34 +2400,79 @@ msgstr "Aucune politique d'accès trouvée." msgid "Back to List" msgstr "Retour à la liste" -#: templates/app_gateway/application_details.html:41 +#: templates/app_gateway/application_details.html:15 +#: templates/app_gateway/application_details.html:59 +#: templates/app_gateway/application_details.html:91 +#: templates/app_gateway/application_details.html:94 +msgid "This application cannot be modified" +msgstr "" + +#: templates/app_gateway/application_details.html:18 +#, fuzzy +#| msgid "Application Route deleted successfully." +msgid "This application cannot be deleted" +msgstr "Route d'application supprimée avec succès." + +#: templates/app_gateway/application_details.html:49 msgid "Set Policy" msgstr "Définir la politique" -#: templates/app_gateway/application_details.html:48 +#: templates/app_gateway/application_details.html:56 msgid "Application Hosts" msgstr "Hôtes d'application" -#: templates/app_gateway/application_details.html:52 +#: templates/app_gateway/application_details.html:60 +#: templates/app_gateway/application_details.html:65 msgid "Add Host" msgstr "Ajouter un hôte" -#: templates/app_gateway/application_details.html:86 +#: templates/app_gateway/application_details.html:115 msgid "No Hosts configured for this application." msgstr "Aucun hôte configuré pour cette application." -#: templates/app_gateway/application_details.html:92 +#: templates/app_gateway/application_details.html:121 msgid "Application Routes" msgstr "Routes d'application" -#: templates/app_gateway/application_details.html:96 +#: templates/app_gateway/application_details.html:125 msgid "Add Route" msgstr "Ajouter une route" -#: templates/app_gateway/application_details.html:136 +#: templates/app_gateway/application_details.html:165 msgid "No Routes configured for this application." msgstr "Aucune route configurée pour cette application." +#: templates/app_gateway/caddy_disabled_alert.html:5 +#, fuzzy +#| msgid "Cluster is not enabled" +msgid "Caddy is not enabled" +msgstr "Le cluster n'est pas activé" + +#: templates/app_gateway/caddy_disabled_alert.html:6 +msgid "" +"The App Gateway and Gatekeeper modules require Caddy and the auth-gateway " +"container to be running. Please start the application using docker-" +"compose-caddy.yml." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:7 +msgid "" +"Depending on your custom firewall or proxy rules, the way you access " +"wireguard_webadmin may change slightly after enabling Caddy." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:8 +msgid "" +"Switching to Caddy is simple, but it may require a bit of time and attention " +"to review your current setup." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:9 +#, fuzzy +#| msgid "For more information, please visit:" +msgid "For more information, see the discussion:" +msgstr "Pour plus d'informations, veuillez visiter :" + #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 #: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 @@ -2829,85 +2979,92 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Créer une règle de redirection de port" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:63 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:67 #: templates/gatekeeper/gatekeeper_user_form.html:43 msgid "View QR Code" msgstr "Voir le code QR" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:64 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:68 #: templates/gatekeeper/gatekeeper_user_form.html:44 msgid "Generate TOTP Secret" msgstr "Générer un secret TOTP" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:93 -#: templates/gatekeeper/gatekeeper_user_form.html:73 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:105 +#: templates/gatekeeper/gatekeeper_user_form.html:81 msgid "Please enter a TOTP Secret first to generate the QR code." msgstr "Veuillez d'abord saisir un secret TOTP pour générer le code QR." -#: templates/gatekeeper/gatekeeper_list.html:18 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:127 +#: templates/gatekeeper/gatekeeper_user_form.html:103 +#, fuzzy +#| msgid "Error creating invite." +msgid "Error generating QR code." +msgstr "Erreur lors de la création de l’invitation." + +#: templates/gatekeeper/gatekeeper_list.html:19 msgid "Gatekeeper Users" msgstr "Utilisateurs de Gatekeeper" -#: templates/gatekeeper/gatekeeper_list.html:24 +#: templates/gatekeeper/gatekeeper_list.html:25 msgid "Allowed Emails & Domains" msgstr "E-mails et domaines autorisés" -#: templates/gatekeeper/gatekeeper_list.html:30 +#: templates/gatekeeper/gatekeeper_list.html:31 msgid "IP Addresses" msgstr "Adresses IP" -#: templates/gatekeeper/gatekeeper_list.html:40 +#: templates/gatekeeper/gatekeeper_list.html:41 #: templates/user_manager/peer_group_list.html:11 msgid "Users" msgstr "Utilisateurs" -#: templates/gatekeeper/gatekeeper_list.html:51 +#: templates/gatekeeper/gatekeeper_list.html:52 #: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 msgid "Add User" msgstr "Ajouter un utilisateur" -#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:64 msgid "TOTP" msgstr "TOTP" -#: templates/gatekeeper/gatekeeper_list.html:104 +#: templates/gatekeeper/gatekeeper_list.html:105 msgid "No Gatekeeper Users found." msgstr "Aucun utilisateur Gatekeeper trouvé." -#: templates/gatekeeper/gatekeeper_list.html:111 +#: templates/gatekeeper/gatekeeper_list.html:112 msgid "Add Group" msgstr "Ajouter un groupe" -#: templates/gatekeeper/gatekeeper_list.html:147 +#: templates/gatekeeper/gatekeeper_list.html:148 msgid "No Gatekeeper Groups found." msgstr "Aucun groupe Gatekeeper trouvé." -#: templates/gatekeeper/gatekeeper_list.html:156 +#: templates/gatekeeper/gatekeeper_list.html:157 msgid "Add Auth Method" msgstr "Ajouter une méthode d'authentification" -#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/gatekeeper/gatekeeper_list.html:193 msgid "No Authentication Methods found." msgstr "Aucune méthode d'authentification trouvée." -#: templates/gatekeeper/gatekeeper_list.html:212 +#: templates/gatekeeper/gatekeeper_list.html:213 msgid "Identity" msgstr "Identité" -#: templates/gatekeeper/gatekeeper_list.html:213 -#: templates/gatekeeper/gatekeeper_list.html:275 +#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/gatekeeper/gatekeeper_list.html:276 msgid "Auth Method" msgstr "Méthode d'authentification" -#: templates/gatekeeper/gatekeeper_list.html:257 +#: templates/gatekeeper/gatekeeper_list.html:258 msgid "No Allowed Emails or Domains found." msgstr "Aucun e-mail ou domaine autorisé trouvé." -#: templates/gatekeeper/gatekeeper_list.html:276 +#: templates/gatekeeper/gatekeeper_list.html:277 msgid "Manage" msgstr "Gérer" -#: templates/gatekeeper/gatekeeper_list.html:309 +#: templates/gatekeeper/gatekeeper_list.html:310 msgid "No IP Addresses found." msgstr "Aucune adresse IP trouvée." @@ -3528,6 +3685,10 @@ msgstr "Supprimer le peer" msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Tapez \\\"delete\\\" pour supprimer la configuration du peer." +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Nom à afficher" + #: templates/wireguard/wireguard_manage_server.html:27 msgid "" "\n" @@ -4521,5 +4682,26 @@ msgstr "" msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "Aucune interface trouvée | Aucune interface WireGuard à traiter." +#~ msgid "This is a reserved system name." +#~ msgstr "Il s'agit d'un nom de système réservé." + +#~ msgid "" +#~ "TOTP must be combined with a Local Password or OpenID Connect " +#~ "authentication method." +#~ msgstr "" +#~ "Le TOTP doit être combiné avec une méthode d'authentification par Mot de " +#~ "passe local ou OpenID Connect." + +#~ msgid "Route identifier, used in export (e.g.: public_area)" +#~ msgstr "" +#~ "Identifiant d'itinéraire, utilisé dans l'exportation (ex: public_area)" + +#~ msgid "" +#~ "Caddy is not active. Configuration files were exported for debugging " +#~ "purposes." +#~ msgstr "" +#~ "Caddy n'est pas actif. Les fichiers de configuration ont été exportés à " +#~ "des fins de débogage." + #~ msgid "Global TOTP Before Authentication" #~ msgstr "TOTP global avant l'authentification" diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo index 37e6e5d..3df1ff5 100644 Binary files a/locale/pt_BR/LC_MESSAGES/django.mo and b/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index 6243e99..f85ab0d 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-15 17:20-0300\n" +"POT-Creation-Date: 2026-03-18 10:58-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -33,17 +33,17 @@ msgstr "Voltar" #: api_v2/forms.py:30 cluster/forms.py:28 dns/forms.py:69 dns/forms.py:129 #: routing_templates/forms.py:37 -#: templates/app_gateway/app_gateway_list.html:158 -#: templates/app_gateway/application_details.html:75 -#: templates/app_gateway/application_details.html:125 +#: templates/app_gateway/app_gateway_list.html:166 +#: templates/app_gateway/application_details.html:103 +#: templates/app_gateway/application_details.html:154 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/gatekeeper/gatekeeper_list.html:93 -#: templates/gatekeeper/gatekeeper_list.html:136 -#: templates/gatekeeper/gatekeeper_list.html:181 -#: templates/gatekeeper/gatekeeper_list.html:229 -#: templates/gatekeeper/gatekeeper_list.html:246 -#: templates/gatekeeper/gatekeeper_list.html:298 +#: templates/gatekeeper/gatekeeper_list.html:94 +#: templates/gatekeeper/gatekeeper_list.html:137 +#: templates/gatekeeper/gatekeeper_list.html:182 +#: templates/gatekeeper/gatekeeper_list.html:230 +#: templates/gatekeeper/gatekeeper_list.html:247 +#: templates/gatekeeper/gatekeeper_list.html:299 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -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:40 app_gateway/forms.py:92 -#: app_gateway/forms.py:136 app_gateway/forms.py:154 app_gateway/forms.py:237 -#: app_gateway/forms.py:278 cluster/forms.py:67 cluster/forms.py:124 -#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:70 -#: gatekeeper/forms.py:150 gatekeeper/forms.py:212 gatekeeper/forms.py:299 -#: gatekeeper/forms.py:329 gatekeeper/forms.py:360 +#: api_v2/forms.py:63 app_gateway/forms.py:41 app_gateway/forms.py:99 +#: app_gateway/forms.py:144 app_gateway/forms.py:162 app_gateway/forms.py:241 +#: app_gateway/forms.py:283 cluster/forms.py:67 cluster/forms.py:124 +#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:71 +#: gatekeeper/forms.py:152 gatekeeper/forms.py:239 gatekeeper/forms.py:362 +#: gatekeeper/forms.py:392 gatekeeper/forms.py:423 #: routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 @@ -82,14 +82,14 @@ msgstr "" msgid "Save" msgstr "Salvar" -#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:106 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:174 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:113 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:188 #: 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:58 -#: templates/app_gateway/app_gateway_list.html:138 -#: templates/app_gateway/application_details.html:26 +#: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:66 +#: templates/app_gateway/app_gateway_list.html:146 +#: templates/app_gateway/application_details.html:35 #: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 -#: templates/gatekeeper/gatekeeper_list.html:165 +#: templates/gatekeeper/gatekeeper_list.html:166 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -127,16 +127,16 @@ msgid "Enabled" msgstr "Habilitado" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 -#: app_gateway/views.py:26 app_gateway/views.py:48 app_gateway/views.py:68 -#: app_gateway/views.py:112 app_gateway/views.py:135 app_gateway/views.py:170 -#: app_gateway/views.py:194 app_gateway/views.py:205 app_gateway/views.py:267 -#: app_gateway/views.py:293 app_gateway/views.py:328 app_gateway/views.py:354 -#: app_gateway/views.py:404 app_gateway/views.py:432 cluster/views.py:18 -#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:48 gatekeeper/views.py:98 gatekeeper/views.py:121 -#: gatekeeper/views.py:151 gatekeeper/views.py:174 gatekeeper/views.py:222 -#: gatekeeper/views.py:281 gatekeeper/views.py:311 gatekeeper/views.py:334 -#: gatekeeper/views.py:364 gatekeeper/views.py:387 gatekeeper/views.py:436 +#: app_gateway/views.py:28 app_gateway/views.py:52 app_gateway/views.py:83 +#: app_gateway/views.py:130 app_gateway/views.py:157 app_gateway/views.py:196 +#: app_gateway/views.py:224 app_gateway/views.py:235 app_gateway/views.py:297 +#: app_gateway/views.py:323 app_gateway/views.py:358 app_gateway/views.py:384 +#: app_gateway/views.py:434 app_gateway/views.py:462 cluster/views.py:18 +#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:25 +#: gatekeeper/views.py:52 gatekeeper/views.py:102 gatekeeper/views.py:125 +#: gatekeeper/views.py:155 gatekeeper/views.py:178 gatekeeper/views.py:226 +#: gatekeeper/views.py:297 gatekeeper/views.py:327 gatekeeper/views.py:350 +#: gatekeeper/views.py:380 gatekeeper/views.py:403 gatekeeper/views.py:452 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acesso Negado" @@ -206,20 +206,19 @@ 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:19 templates/app_gateway/application_details.html:27 -#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 -msgid "Display Name" -msgstr "Nome de Exibição" - -#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:59 -#: templates/app_gateway/application_details.html:28 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:67 +#: templates/app_gateway/application_details.html:36 msgid "Upstream" msgstr "Upstream" -#: app_gateway/forms.py:41 app_gateway/forms.py:93 app_gateway/forms.py:137 -#: app_gateway/forms.py:155 app_gateway/forms.py:238 app_gateway/forms.py:279 -#: gatekeeper/forms.py:71 gatekeeper/forms.py:151 gatekeeper/forms.py:213 -#: gatekeeper/forms.py:300 gatekeeper/forms.py:330 gatekeeper/forms.py:361 +#: app_gateway/forms.py:20 +msgid "Allow invalid/self-signed certificate" +msgstr "" + +#: app_gateway/forms.py:42 app_gateway/forms.py:100 app_gateway/forms.py:145 +#: app_gateway/forms.py:163 app_gateway/forms.py:242 app_gateway/forms.py:284 +#: gatekeeper/forms.py:72 gatekeeper/forms.py:153 gatekeeper/forms.py:240 +#: gatekeeper/forms.py:363 gatekeeper/forms.py:393 gatekeeper/forms.py:424 #: scheduler/forms.py:103 #: templates/app_gateway/access_policy_type_select.html:50 #: templates/generic_delete_confirmation.html:19 @@ -227,59 +226,65 @@ msgstr "Upstream" msgid "Cancel" msgstr "Cancelar" -#: app_gateway/forms.py:54 -msgid "This is a reserved system name." -msgstr "Este é um nome de sistema reservado." - -#: app_gateway/forms.py:58 +#: app_gateway/forms.py:55 msgid "This upstream is reserved by the system." msgstr "Este upstream é reservado pelo sistema." -#: app_gateway/forms.py:61 +#: app_gateway/forms.py:58 msgid "Upstream URL cannot contain spaces." msgstr "URL de Upstream não pode conter espaços." -#: app_gateway/forms.py:67 +#: app_gateway/forms.py:64 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "Insira uma URL de upstream válida começando com http:// ou https://" -#: app_gateway/forms.py:77 cluster/forms.py:24 dns/forms.py:65 -#: templates/app_gateway/app_gateway_list.html:101 -#: templates/app_gateway/application_details.html:61 +#: app_gateway/forms.py:66 +msgid "" +"Upstream must be a bare host address with no path, query or fragment. Use " +"http://host or http://host:port" +msgstr "" + +#: app_gateway/forms.py:76 cluster/forms.py:24 dns/forms.py:65 +#: templates/app_gateway/app_gateway_list.html:109 +#: templates/app_gateway/application_details.html:75 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Endereço do Host" -#: app_gateway/forms.py:107 templates/app_gateway/app_gateway_list.html:139 +#: app_gateway/forms.py:84 +msgid "Hostname contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:114 templates/app_gateway/app_gateway_list.html:147 msgid "Policy Type" msgstr "Tipo de Política" -#: app_gateway/forms.py:108 +#: app_gateway/forms.py:115 msgid "Allowed Groups" msgstr "Grupos Permitidos" -#: app_gateway/forms.py:109 templates/gatekeeper/gatekeeper_list.html:12 +#: app_gateway/forms.py:116 templates/gatekeeper/gatekeeper_list.html:13 msgid "Authentication Methods" msgstr "Métodos de Autenticação" -#: app_gateway/forms.py:188 +#: app_gateway/forms.py:196 msgid "Cannot select more than one Local Password authentication method." msgstr "" "Não é possível selecionar mais de um método de autenticação por Senha Local." -#: app_gateway/forms.py:192 +#: app_gateway/forms.py:200 msgid "" "Cannot select more than one OpenID Connect (OIDC) authentication method." msgstr "" "Não é possível selecionar mais de um método de autenticação OpenID Connect " "(OIDC)." -#: app_gateway/forms.py:196 +#: app_gateway/forms.py:204 msgid "Cannot select more than one TOTP authentication method." msgstr "Não é possível selecionar mais de um método de autenticação TOTP." -#: app_gateway/forms.py:200 +#: app_gateway/forms.py:208 msgid "" "Cannot select both Local Password and OpenID Connect (OIDC) authentication " "methods." @@ -287,15 +292,7 @@ msgstr "" "Não é possível selecionar simultaneamente os métodos de autenticação por " "Senha Local e OpenID Connect (OIDC)." -#: app_gateway/forms.py:204 -msgid "" -"TOTP must be combined with a Local Password or OpenID Connect authentication " -"method." -msgstr "" -"O TOTP deve ser combinado com um método de autenticação de Senha Local ou " -"OpenID Connect." - -#: app_gateway/forms.py:208 +#: app_gateway/forms.py:212 msgid "" "At least one user group must be selected when using Local Password " "authentication." @@ -303,74 +300,101 @@ msgstr "" "Pelo menos um grupo de usuários deve ser selecionado ao usar a autenticação " "por Senha Local." -#: app_gateway/forms.py:212 +#: app_gateway/forms.py:216 msgid "User groups can only be used with Local Password authentication." msgstr "" "Grupos de usuários só podem ser usados com autenticação por Senha Local." -#: app_gateway/forms.py:222 templates/app_gateway/app_gateway_list.html:62 -#: templates/app_gateway/application_details.html:31 +#: app_gateway/forms.py:226 templates/app_gateway/app_gateway_list.html:70 +#: templates/app_gateway/application_details.html:39 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Política Padrão" -#: app_gateway/forms.py:251 templates/app_gateway/application_details.html:105 +#: app_gateway/forms.py:255 templates/app_gateway/application_details.html:134 msgid "Route Name" msgstr "Nome da Rota" -#: app_gateway/forms.py:252 templates/app_gateway/application_details.html:106 +#: app_gateway/forms.py:256 templates/app_gateway/application_details.html:135 msgid "Path Prefix" msgstr "Prefixo do Caminho" -#: app_gateway/forms.py:253 templates/app_gateway/application_details.html:107 +#: app_gateway/forms.py:257 templates/app_gateway/application_details.html:136 msgid "Policy" msgstr "Política" -#: app_gateway/forms.py:254 templates/app_gateway/application_details.html:108 +#: app_gateway/forms.py:258 templates/app_gateway/application_details.html:137 msgid "Order" msgstr "Ordem" -#: app_gateway/models.py:12 +#: app_gateway/forms.py:299 +#, fuzzy +#| msgid "Invite URL must start with 'https://'." +msgid "Path prefix must start with /." +msgstr "Endereço do convite deve começar com 'https://'." + +#: app_gateway/forms.py:301 +#, fuzzy +#| msgid "Upstream URL cannot contain spaces." +msgid "Path prefix cannot contain spaces." +msgstr "URL de Upstream não pode conter espaços." + +#: app_gateway/forms.py:303 +msgid "Path prefix contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:308 +#, fuzzy +#| msgid "This upstream is reserved by the system." +msgid "This path prefix is reserved by the system." +msgstr "Este upstream é reservado pelo sistema." + +#: app_gateway/models.py:14 msgid "Upstream address, e.g.: http://10.188.18.27:3000" msgstr "Endereço upstream, ex: http://10.188.18.27:3000" -#: app_gateway/models.py:45 +#: app_gateway/models.py:15 +msgid "Allow invalid or self-signed TLS certificates from the upstream" +msgstr "" + +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:19 msgid "Public" msgstr "Público" -#: app_gateway/models.py:45 +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:30 msgid "Protected" msgstr "Protegido" -#: app_gateway/models.py:45 gatekeeper/models.py:108 +#: app_gateway/models.py:53 gatekeeper/models.py:142 #: templates/app_gateway/access_policy_type_select.html:41 -#: templates/gatekeeper/gatekeeper_list.html:288 +#: templates/gatekeeper/gatekeeper_list.html:289 msgid "Deny" msgstr "Negar" -#: app_gateway/models.py:80 -msgid "Route identifier, used in export (e.g.: public_area)" -msgstr "Identificador da rota, usado na exportação (ex: public_area)" - -#: app_gateway/views.py:60 +#: app_gateway/views.py:75 msgid "Application Details" msgstr "Detalhes da Aplicação" -#: app_gateway/views.py:74 templates/app_gateway/application_details.html:15 +#: app_gateway/views.py:90 app_gateway/views.py:174 app_gateway/views.py:204 +msgid "The WireGuard WebAdmin application cannot be modified." +msgstr "" + +#: app_gateway/views.py:92 templates/app_gateway/application_details.html:16 +#: templates/app_gateway/application_details.html:23 msgid "Edit Application" msgstr "Editar Aplicação" -#: app_gateway/views.py:77 +#: app_gateway/views.py:95 msgid "Create Application" msgstr "Criar Aplicação" -#: app_gateway/views.py:84 +#: app_gateway/views.py:102 msgid "Application saved successfully." msgstr "Aplicação salva com sucesso." -#: app_gateway/views.py:89 +#: app_gateway/views.py:107 msgid "" "\n" "
Application
\n" @@ -404,62 +428,67 @@ msgstr "" " \n" " " -#: app_gateway/views.py:120 +#: app_gateway/views.py:137 +msgid "The WireGuard WebAdmin application cannot be deleted." +msgstr "" + +#: app_gateway/views.py:142 msgid "Application deleted successfully." msgstr "Aplicação excluída com sucesso." -#: app_gateway/views.py:125 templates/app_gateway/application_details.html:18 +#: app_gateway/views.py:147 templates/app_gateway/application_details.html:19 +#: templates/app_gateway/application_details.html:26 msgid "Delete Application" msgstr "Excluir Aplicação" -#: app_gateway/views.py:127 +#: app_gateway/views.py:149 #, python-format msgid "Are you sure you want to delete the application \"%(name)s\"?" msgstr "Tem certeza de que deseja excluir a aplicação \"%(name)s\"?" -#: app_gateway/views.py:143 +#: app_gateway/views.py:165 msgid "Edit Application Host" msgstr "Editar Host da Aplicação" -#: app_gateway/views.py:147 +#: app_gateway/views.py:169 msgid "Add Application Host" msgstr "Adicionar Host da Aplicação" -#: app_gateway/views.py:156 +#: app_gateway/views.py:182 msgid "Application Host saved successfully." msgstr "Host da Aplicação salvo com sucesso." -#: app_gateway/views.py:179 +#: app_gateway/views.py:209 msgid "Application Host deleted successfully." msgstr "Host da Aplicação excluído com sucesso." -#: app_gateway/views.py:184 +#: app_gateway/views.py:214 msgid "Delete Application Host" msgstr "Excluir Host da Aplicação" -#: app_gateway/views.py:186 +#: app_gateway/views.py:216 #, python-format msgid "Are you sure you want to delete the host \"%(hostname)s\"?" msgstr "Tem certeza de que deseja excluir o host \"%(hostname)s\"?" -#: app_gateway/views.py:197 +#: app_gateway/views.py:227 #: templates/app_gateway/access_policy_type_select.html:9 msgid "Select Access Policy Type" msgstr "Selecionar Tipo de Política de Acesso" -#: app_gateway/views.py:212 +#: app_gateway/views.py:242 msgid "Edit Access Policy" msgstr "Editar Política de Acesso" -#: app_gateway/views.py:216 +#: app_gateway/views.py:246 msgid "Create Access Policy" msgstr "Criar Política de Acesso" -#: app_gateway/views.py:223 +#: app_gateway/views.py:253 msgid "Access Policy saved successfully." msgstr "Política de Acesso salva com sucesso." -#: app_gateway/views.py:229 +#: app_gateway/views.py:259 msgid "" "\n" "
Public Policy
\n" @@ -473,7 +502,7 @@ msgstr "" "exigir nenhuma autenticação.

\n" " " -#: app_gateway/views.py:237 +#: app_gateway/views.py:267 msgid "" "\n" "
Deny Policy
\n" @@ -486,7 +515,7 @@ msgstr "" "correspondentes.

\n" " " -#: app_gateway/views.py:245 +#: app_gateway/views.py:275 msgid "" "\n" "
Protected Policy
\n" @@ -516,11 +545,11 @@ msgstr "" " \n" " " -#: app_gateway/views.py:276 +#: app_gateway/views.py:306 msgid "Access Policy deleted successfully." msgstr "Política de Acesso excluída com sucesso." -#: app_gateway/views.py:278 +#: app_gateway/views.py:308 msgid "" "Cannot delete this Access Policy because it is currently in use by an " "Application Route or Application Default Policy." @@ -528,53 +557,53 @@ msgstr "" "Não é possível excluir esta Política de Acesso porque ela está em uso por " "uma Rota de Aplicativo ou Política Padrão de Aplicativo." -#: app_gateway/views.py:283 +#: app_gateway/views.py:313 msgid "Delete Access Policy" msgstr "Excluir Política de Acesso" -#: app_gateway/views.py:285 +#: app_gateway/views.py:315 #, python-format msgid "Are you sure you want to delete the access policy \"%(name)s\"?" msgstr "Tem certeza de que deseja excluir a política de acesso \"%(name)s\"?" -#: app_gateway/views.py:301 +#: app_gateway/views.py:331 msgid "Edit Application Default Policy" msgstr "Editar Política Padrão da Aplicação" -#: app_gateway/views.py:305 +#: app_gateway/views.py:335 msgid "Set Application Default Policy" msgstr "Configurar Política Padrão da Aplicação" -#: app_gateway/views.py:314 +#: app_gateway/views.py:344 msgid "Application Default Policy saved successfully." msgstr "Política Padrão da Aplicação salva com sucesso." -#: app_gateway/views.py:337 +#: app_gateway/views.py:367 msgid "Application Default Policy deleted successfully." msgstr "Política Padrão da Aplicação excluída com sucesso." -#: app_gateway/views.py:342 +#: app_gateway/views.py:372 msgid "Delete Application Default Policy" msgstr "Excluir Política Padrão da Aplicação" -#: app_gateway/views.py:344 +#: app_gateway/views.py:374 #, python-format msgid "Are you sure you want to remove the default policy for \"%(name)s\"?" msgstr "Tem certeza de que deseja remover a política padrão para \"%(name)s\"?" -#: app_gateway/views.py:362 +#: app_gateway/views.py:392 msgid "Edit Application Route" msgstr "Editar Rota da Aplicação" -#: app_gateway/views.py:366 +#: app_gateway/views.py:396 msgid "Add Application Route" msgstr "Adicionar Rota da Aplicação" -#: app_gateway/views.py:375 +#: app_gateway/views.py:405 msgid "Application Route saved successfully." msgstr "Rota da Aplicação salva com sucesso." -#: app_gateway/views.py:380 +#: app_gateway/views.py:410 msgid "" "\n" "
Application Route
\n" @@ -614,42 +643,41 @@ msgstr "" " \n" " " -#: app_gateway/views.py:413 +#: app_gateway/views.py:443 msgid "Application Route deleted successfully." msgstr "Rota da Aplicação excluída com sucesso." -#: app_gateway/views.py:418 +#: app_gateway/views.py:448 msgid "Delete Application Route" msgstr "Excluir Rota da Aplicação" -#: app_gateway/views.py:420 +#: app_gateway/views.py:450 #, python-format msgid "Are you sure you want to delete the route \"%(name)s\" (%(path)s)?" msgstr "Tem certeza de que deseja excluir a rota \"%(name)s\" (%(path)s)?" -#: app_gateway/views.py:443 +#: app_gateway/views.py:468 +msgid "" +"Configuration export is not available because Caddy is not enabled. To use " +"App Gateway and Gatekeeper, start the application using docker-compose-" +"caddy.yml." +msgstr "" + +#: app_gateway/views.py:478 msgid "Configuration exported successfully." msgstr "Configuração exportada com sucesso." -#: app_gateway/views.py:445 -msgid "" -"Caddy is not active. Configuration files were exported for debugging " -"purposes." -msgstr "" -"O Caddy não está ativo. Os arquivos de configuração foram exportados para " -"fins de depuração." - #: cluster/forms.py:20 msgid "IP Lock" msgstr "Bloqueio de IP" -#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:271 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:315 #: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 #: templates/firewall/manage_redirect_rule.html:68 -#: templates/gatekeeper/gatekeeper_list.html:272 +#: templates/gatekeeper/gatekeeper_list.html:273 #: templates/wireguard/wireguard_status.html:45 msgid "IP Address" msgstr "Endereço IP" @@ -924,7 +952,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:274 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:318 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1259,13 +1287,13 @@ msgstr "Gerenciar Configurações de Firewall" msgid "Firewall settings saved successfully" msgstr "Configurações de Firewall salvas com sucesso" -#: gatekeeper/forms.py:17 templates/accounts/login.html:23 +#: gatekeeper/forms.py:18 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:20 +#: gatekeeper/forms.py:21 msgid "" "Minimum 8 characters, with at least one uppercase letter, one lowercase " "letter, and one number." @@ -1273,15 +1301,15 @@ msgstr "" "Mínimo de 8 caracteres, com pelo menos uma letra maiúscula, uma letra " "minúscula e um número." -#: gatekeeper/forms.py:23 +#: gatekeeper/forms.py:24 msgid "Confirm Password" msgstr "Confirmar Senha" -#: gatekeeper/forms.py:28 gatekeeper/forms.py:161 +#: gatekeeper/forms.py:29 gatekeeper/forms.py:163 msgid "TOTP Validation PIN" msgstr "PIN de Validação TOTP" -#: gatekeeper/forms.py:31 gatekeeper/forms.py:164 +#: gatekeeper/forms.py:32 gatekeeper/forms.py:166 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1289,184 +1317,218 @@ msgstr "" "Insira um PIN de 6 dígitos gerado pelo seu aplicativo autenticador para " "validar o segredo." -#: gatekeeper/forms.py:38 templates/accounts/login.html:14 -#: templates/gatekeeper/gatekeeper_list.html:61 +#: gatekeeper/forms.py:39 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:62 #: templates/user_manager/list.html:8 user_manager/forms.py:13 #: vpn_invite/forms.py:281 msgid "Username" msgstr "Usuário" -#: gatekeeper/forms.py:39 gatekeeper/forms.py:344 -#: templates/gatekeeper/gatekeeper_list.html:62 -#: templates/gatekeeper/gatekeeper_list.html:220 +#: gatekeeper/forms.py:40 gatekeeper/forms.py:407 +#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:221 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "Email" -#: gatekeeper/forms.py:40 +#: gatekeeper/forms.py:41 msgid "TOTP Secret" msgstr "Segredo TOTP" -#: gatekeeper/forms.py:87 +#: gatekeeper/forms.py:88 msgid "Password is required." msgstr "A senha é obrigatória." -#: gatekeeper/forms.py:90 user_manager/forms.py:127 +#: gatekeeper/forms.py:91 user_manager/forms.py:127 msgid "Password must be at least 8 characters long." msgstr "Senha deve ter pelo menos 8 caracteres." -#: gatekeeper/forms.py:92 +#: gatekeeper/forms.py:93 msgid "Password must contain at least one lowercase letter." msgstr "A senha deve conter pelo menos uma letra minúscula." -#: gatekeeper/forms.py:94 +#: gatekeeper/forms.py:95 msgid "Password must contain at least one uppercase letter." msgstr "A senha deve conter pelo menos uma letra maiúscula." -#: gatekeeper/forms.py:96 +#: gatekeeper/forms.py:97 msgid "Password must contain at least one number." msgstr "A senha deve conter pelo menos um número." -#: gatekeeper/forms.py:98 +#: gatekeeper/forms.py:99 msgid "Passwords do not match." msgstr "As senhas não coincidem." -#: gatekeeper/forms.py:103 gatekeeper/forms.py:249 +#: gatekeeper/forms.py:104 gatekeeper/forms.py:276 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:108 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:109 gatekeeper/forms.py:281 msgid "Invalid TOTP PIN." msgstr "PIN TOTP inválido." -#: gatekeeper/forms.py:110 gatekeeper/forms.py:256 +#: gatekeeper/forms.py:111 gatekeeper/forms.py:283 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:130 templates/gatekeeper/gatekeeper_list.html:120 +#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 msgid "Group Name" msgstr "Nome do Grupo" -#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 +#: gatekeeper/forms.py:132 templates/gatekeeper/gatekeeper_list.html:122 msgid "Members" msgstr "Membros" +#: gatekeeper/forms.py:169 +#, fuzzy +#| msgid "Expiration" +msgid "Session Expiration" +msgstr "Expira em" + #: gatekeeper/forms.py:175 +msgid "Unit" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Hour(s)" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Day(s)" +msgstr "" + +#: gatekeeper/forms.py:189 msgid "Authentication Type" msgstr "Tipo de Autenticação" -#: gatekeeper/forms.py:176 +#: gatekeeper/forms.py:190 msgid "Global TOTP Secret" msgstr "Segredo TOTP Global" -#: gatekeeper/forms.py:177 +#: gatekeeper/forms.py:191 msgid "OIDC Provider URL" msgstr "URL do Provedor OIDC" -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:192 msgid "OIDC Client ID" msgstr "ID do Cliente OIDC" -#: gatekeeper/forms.py:179 +#: gatekeeper/forms.py:193 msgid "OIDC Client Secret" msgstr "Segredo do Cliente OIDC" -#: gatekeeper/forms.py:230 +#: gatekeeper/forms.py:257 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:232 +#: gatekeeper/forms.py:259 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:234 +#: gatekeeper/forms.py:261 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:240 +#: gatekeeper/forms.py:267 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:243 +#: gatekeeper/forms.py:270 msgid "OIDC fields must be empty for TOTP authentication." msgstr "Os campos OIDC devem estar vazios para autenticação por TOTP." -#: gatekeeper/forms.py:245 +#: gatekeeper/forms.py:272 msgid "TOTP secret is required for TOTP authentication." msgstr "O segredo TOTP é obrigatório para autenticação por TOTP." -#: gatekeeper/forms.py:259 +#: gatekeeper/forms.py:285 +msgid "" +"OIDC authentication is temporarily unavailable and will be available soon." +msgstr "" + +#: gatekeeper/forms.py:287 msgid "TOTP secret must be empty for OIDC authentication." msgstr "O segredo TOTP deve estar vazio para autenticação por OIDC." -#: gatekeeper/forms.py:261 +#: gatekeeper/forms.py:289 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:270 gatekeeper/forms.py:312 gatekeeper/forms.py:343 +#: gatekeeper/forms.py:314 gatekeeper/forms.py:375 gatekeeper/forms.py:406 msgid "Authentication Method" msgstr "Método de Autenticação" -#: gatekeeper/forms.py:272 templates/gatekeeper/gatekeeper_list.html:273 +#: gatekeeper/forms.py:316 templates/gatekeeper/gatekeeper_list.html:274 msgid "Prefix Length" msgstr "Comprimento do Prefixo" -#: gatekeeper/forms.py:273 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:317 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 -#: templates/gatekeeper/gatekeeper_list.html:274 +#: templates/gatekeeper/gatekeeper_list.html:275 msgid "Action" msgstr "Ação" -#: gatekeeper/forms.py:313 templates/gatekeeper/gatekeeper_list.html:237 +#: gatekeeper/forms.py:332 +#, python-format +msgid "Prefix length for IPv%(version)d must be between 0 and %(max)d." +msgstr "" + +#: gatekeeper/forms.py:376 templates/gatekeeper/gatekeeper_list.html:238 msgid "Domain" msgstr "Domínio" -#: gatekeeper/models.py:10 +#: gatekeeper/models.py:27 msgid "Local Password" msgstr "Senha Local" -#: gatekeeper/models.py:11 +#: gatekeeper/models.py:28 msgid "One-Time Password (TOTP)" msgstr "Senha de Uso Único (TOTP)" -#: gatekeeper/models.py:12 +#: gatekeeper/models.py:29 msgid "OpenID Connect (OIDC)" msgstr "OpenID Connect (OIDC)" -#: gatekeeper/models.py:13 +#: gatekeeper/models.py:30 msgid "IP Address List" msgstr "Lista de Endereços IP" -#: gatekeeper/models.py:17 +#: gatekeeper/models.py:34 msgid "Shared/global TOTP secret key" msgstr "Chave secreta TOTP compartilhada/global" -#: gatekeeper/models.py:68 +#: gatekeeper/models.py:39 +#, fuzzy +#| msgid "Expiration (minutes)" +msgid "Session expiration time in minutes" +msgstr "Expira em (minutos)" + +#: gatekeeper/models.py:96 msgid "Password for local authentication (leave blank if not using)" msgstr "Senha para autenticação local (deixe em branco se não estiver usando)" -#: gatekeeper/models.py:69 +#: gatekeeper/models.py:97 msgid "Per-user TOTP secret key" msgstr "Chave secreta TOTP por usuário" -#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:286 +#: gatekeeper/models.py:142 templates/gatekeeper/gatekeeper_list.html:287 msgid "Allow" msgstr "Permitir" -#: gatekeeper/views.py:54 +#: gatekeeper/views.py:58 msgid "Edit Gatekeeper User" msgstr "Editar Usuário Gatekeeper" -#: gatekeeper/views.py:57 +#: gatekeeper/views.py:61 msgid "Create Gatekeeper User" msgstr "Criar Usuário Gatekeeper" -#: gatekeeper/views.py:64 +#: gatekeeper/views.py:68 msgid "Gatekeeper User saved successfully." msgstr "Usuário Gatekeeper salvo com sucesso." -#: gatekeeper/views.py:69 +#: gatekeeper/views.py:73 msgid "" "\n" "

Gatekeeper User

\n" @@ -1490,17 +1552,18 @@ msgid "" msgstr "" "\n" "

Usuário do Gatekeeper

\n" -"

Usuários do Gatekeeper são usados para autenticação em aplicações protegidas " -"gerenciadas por este gateway.

\n" +"

Usuários do Gatekeeper são usados para autenticação em aplicações " +"protegidas gerenciadas por este gateway.

\n" "\n" "
Senha
\n" -"

Obrigatório ao criar um usuário. Ao editar, deixe ambos os campos de senha " -"em branco para manter a senha atual.\n" -" As senhas são armazenadas usando hash Argon2id.

\n" +"

Obrigatório ao criar um usuário. Ao editar, deixe ambos os campos " +"de senha em branco para manter a senha atual.\n" +" As senhas são armazenadas usando hash Argon2id.\n" "\n" "

Segredo TOTP
\n" -"

Segredo TOTP opcional por usuário. Quando definido, este usuário irá " -"se autenticar usando seu próprio segredo em vez do\n" +"

Segredo TOTP opcional por usuário. Quando definido, este usuário " +"irá se autenticar usando seu próprio segredo em vez do\n" " segredo TOTP global configurado no Método de Autenticação. Use os " "botões abaixo do campo para gerar um\n" " segredo aleatório e ler o código QR com seu aplicativo autenticador. " @@ -1508,57 +1571,77 @@ msgstr "" " 6 dígitos antes de salvar.

\n" " " -#: gatekeeper/views.py:106 +#: gatekeeper/views.py:110 msgid "Gatekeeper User deleted successfully." msgstr "Usuário Gatekeeper excluído com sucesso." -#: gatekeeper/views.py:111 +#: gatekeeper/views.py:115 msgid "Delete Gatekeeper User" msgstr "Excluir Usuário Gatekeeper" -#: gatekeeper/views.py:113 +#: gatekeeper/views.py:117 #, 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:127 +#: gatekeeper/views.py:131 msgid "Edit Gatekeeper Group" msgstr "Editar Grupo Gatekeeper" -#: gatekeeper/views.py:130 +#: gatekeeper/views.py:134 msgid "Create Gatekeeper Group" msgstr "Criar Grupo Gatekeeper" -#: gatekeeper/views.py:137 +#: gatekeeper/views.py:141 msgid "Gatekeeper Group saved successfully." msgstr "Grupo Gatekeeper salvo com sucesso." -#: gatekeeper/views.py:159 +#: gatekeeper/views.py:163 msgid "Gatekeeper Group deleted successfully." msgstr "Grupo Gatekeeper excluído com sucesso." -#: gatekeeper/views.py:164 +#: gatekeeper/views.py:168 msgid "Delete Gatekeeper Group" msgstr "Excluir Grupo Gatekeeper" -#: gatekeeper/views.py:166 +#: gatekeeper/views.py:170 #, 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:180 +#: gatekeeper/views.py:184 msgid "Edit Authentication Method" msgstr "Editar Método de Autenticação" -#: gatekeeper/views.py:183 +#: gatekeeper/views.py:187 msgid "Create Authentication Method" msgstr "Criar Método de Autenticação" -#: gatekeeper/views.py:190 +#: gatekeeper/views.py:194 msgid "Authentication Method saved successfully." msgstr "Método de Autenticação salvo com sucesso." -#: gatekeeper/views.py:195 +#: gatekeeper/views.py:199 +#, fuzzy +#| msgid "" +#| "\n" +#| "

Authentication Types

\n" +#| "

Select how users will authenticate through this method.

\n" +#| " \n" +#| "
Local Password
\n" +#| "

Users will authenticate using a standard username and password " +#| "stored locally. Only one of this type can be created.

\n" +#| " \n" +#| "
OIDC (OpenID Connect)
\n" +#| "

Users will authenticate via an external identity provider " +#| "(like Keycloak, Google, or Authelia). Requires Provider URL, Client ID, " +#| "and Client Secret.

\n" +#| " \n" +#| "
TOTP (Time-Based One-Time Password)
\n" +#| "

Users will need to enter a rotating token from an " +#| "authenticator app. If a user does not have a personal TOTP configured, " +#| "the Global TOTP Secret will be used instead.

\n" +#| " " msgid "" "\n" "

Authentication Types

\n" @@ -1570,8 +1653,8 @@ msgid "" " \n" "
OIDC (OpenID Connect)
\n" "

Users will authenticate via an external identity provider (like " -"Keycloak, Google, or Authelia). Requires Provider URL, Client ID, and Client " -"Secret.

\n" +"Keycloak or Google). Requires Provider URL, Client ID, and Client Secret.\n" " \n" "
TOTP (Time-Based One-Time Password)
\n" "

Users will need to enter a rotating token from an authenticator " @@ -1599,84 +1682,91 @@ msgstr "" "Segredo TOTP Global será usado em seu lugar.

\n" " " -#: gatekeeper/views.py:230 +#: gatekeeper/views.py:237 +#, python-format +msgid "" +"Cannot delete authentication method \"%(method)s\" because it is used by the " +"following policies: %(policies)s." +msgstr "" + +#: gatekeeper/views.py:243 msgid "Authentication Method deleted successfully." msgstr "Método de Autenticação excluído com sucesso." -#: gatekeeper/views.py:235 +#: gatekeeper/views.py:248 msgid "Delete Authentication Method" msgstr "Excluir Método de Autenticação" -#: gatekeeper/views.py:237 +#: gatekeeper/views.py:250 #, 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:287 +#: gatekeeper/views.py:303 msgid "Edit Allowed Domain" msgstr "Editar Domínio Permitido" -#: gatekeeper/views.py:290 templates/gatekeeper/gatekeeper_list.html:202 +#: gatekeeper/views.py:306 templates/gatekeeper/gatekeeper_list.html:203 msgid "Add Allowed Domain" msgstr "Adicionar Domínio Permitido" -#: gatekeeper/views.py:297 +#: gatekeeper/views.py:313 msgid "Allowed Domain saved successfully." msgstr "Domínio Permitido salvo com sucesso." -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:335 msgid "Allowed Domain deleted successfully." msgstr "Domínio Permitido excluído com sucesso." -#: gatekeeper/views.py:324 +#: gatekeeper/views.py:340 msgid "Delete Allowed Domain" msgstr "Excluir Domínio Permitido" -#: gatekeeper/views.py:326 +#: gatekeeper/views.py:342 #, 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:340 +#: gatekeeper/views.py:356 msgid "Edit Allowed Email" msgstr "Editar E-mail Permitido" -#: gatekeeper/views.py:343 templates/gatekeeper/gatekeeper_list.html:199 +#: gatekeeper/views.py:359 templates/gatekeeper/gatekeeper_list.html:200 msgid "Add Allowed Email" msgstr "Adicionar E-mail Permitido" -#: gatekeeper/views.py:350 +#: gatekeeper/views.py:366 msgid "Allowed Email saved successfully." msgstr "E-mail Permitido salvo com sucesso." -#: gatekeeper/views.py:372 +#: gatekeeper/views.py:388 msgid "Allowed Email deleted successfully." msgstr "E-mail Permitido excluído com sucesso." -#: gatekeeper/views.py:377 +#: gatekeeper/views.py:393 msgid "Delete Allowed Email" msgstr "Excluir E-mail Permitido" -#: gatekeeper/views.py:379 +#: gatekeeper/views.py:395 #, 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:393 +#: gatekeeper/views.py:409 msgid "Edit IP Address" msgstr "Editar Endereço IP" -#: gatekeeper/views.py:396 templates/gatekeeper/gatekeeper_list.html:263 +#: gatekeeper/views.py:412 templates/gatekeeper/gatekeeper_list.html:264 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Adicionar IP" -#: gatekeeper/views.py:403 +#: gatekeeper/views.py:419 msgid "IP Address saved successfully." msgstr "Endereço IP salvo com sucesso." -#: gatekeeper/views.py:408 +#: gatekeeper/views.py:424 msgid "" "\n" "
IP Address List
\n" @@ -1723,24 +1813,25 @@ msgstr "" "\"Rede do Escritório\", \"Atacante Bloqueado\").

\n" " " -#: gatekeeper/views.py:444 +#: gatekeeper/views.py:460 msgid "IP Address deleted successfully." msgstr "Endereço IP excluído com sucesso." -#: gatekeeper/views.py:449 +#: gatekeeper/views.py:465 msgid "Delete IP Address" msgstr "Excluir Endereço IP" -#: gatekeeper/views.py:451 +#: gatekeeper/views.py:467 #, 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\"?" -#: intl_tools/forms.py:11 templates/accounts/login.html:36 +#: intl_tools/forms.py:11 msgid "Language" msgstr "Idioma" -#: intl_tools/forms.py:24 templates/template_parts/base_navbar.html:14 +#: intl_tools/forms.py:24 templates/accounts/login.html:35 +#: templates/template_parts/base_navbar.html:19 msgid "Change Language" msgstr "Alterar Idioma" @@ -2077,6 +2168,11 @@ msgstr "" msgid "Login" msgstr "Acessar" +#: templates/accounts/login.html:40 +#: templates/template_parts/base_navbar.html:14 +msgid "Toggle Dark Mode" +msgstr "" + #: templates/accounts/logout.html:11 msgid "You have been successfully logged out." msgstr "Você foi desconectado com sucesso." @@ -2099,8 +2195,8 @@ msgid "In" msgstr "Entrada" #: templates/api_v2/api_documentation.html:49 -#: templates/gatekeeper/gatekeeper_list.html:166 -#: templates/gatekeeper/gatekeeper_list.html:211 +#: templates/gatekeeper/gatekeeper_list.html:167 +#: templates/gatekeeper/gatekeeper_list.html:212 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Tipo" @@ -2110,13 +2206,13 @@ msgid "Required" msgstr "Obrigatório" #: templates/api_v2/api_documentation.html:62 -#: templates/gatekeeper/gatekeeper_list.html:75 +#: templates/gatekeeper/gatekeeper_list.html:76 #: templates/scheduler/scheduleprofile_form.html:175 msgid "Yes" msgstr "Sim" #: templates/api_v2/api_documentation.html:64 -#: templates/gatekeeper/gatekeeper_list.html:77 +#: templates/gatekeeper/gatekeeper_list.html:78 #: templates/scheduler/scheduleprofile_form.html:177 msgid "No" msgstr "Não" @@ -2156,17 +2252,17 @@ msgid "Disabled" msgstr "Desabilitado" #: templates/api_v2/list.html:68 -#: templates/app_gateway/app_gateway_list.html:154 -#: templates/app_gateway/application_details.html:71 -#: templates/app_gateway/application_details.html:121 +#: templates/app_gateway/app_gateway_list.html:162 +#: templates/app_gateway/application_details.html:99 +#: templates/app_gateway/application_details.html:150 #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 -#: templates/gatekeeper/gatekeeper_list.html:89 -#: templates/gatekeeper/gatekeeper_list.html:132 -#: templates/gatekeeper/gatekeeper_list.html:177 -#: templates/gatekeeper/gatekeeper_list.html:225 -#: templates/gatekeeper/gatekeeper_list.html:242 -#: templates/gatekeeper/gatekeeper_list.html:294 +#: templates/gatekeeper/gatekeeper_list.html:90 +#: templates/gatekeeper/gatekeeper_list.html:133 +#: templates/gatekeeper/gatekeeper_list.html:178 +#: templates/gatekeeper/gatekeeper_list.html:226 +#: templates/gatekeeper/gatekeeper_list.html:243 +#: templates/gatekeeper/gatekeeper_list.html:295 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -2198,78 +2294,83 @@ msgstr "Exigir autenticação usando métodos ou grupos especificados." msgid "Deny all access." msgstr "Negar todo o acesso." -#: templates/app_gateway/app_gateway_list.html:12 -#: templates/app_gateway/app_gateway_list.html:30 +#: templates/app_gateway/app_gateway_list.html:13 +#: templates/app_gateway/app_gateway_list.html:31 msgid "Applications" msgstr "Aplicações" -#: templates/app_gateway/app_gateway_list.html:18 +#: templates/app_gateway/app_gateway_list.html:19 msgid "Access Policies" msgstr "Políticas de Acesso" -#: templates/app_gateway/app_gateway_list.html:34 -#: templates/app_gateway/app_gateway_list.html:60 +#: templates/app_gateway/app_gateway_list.html:35 +#: templates/app_gateway/app_gateway_list.html:68 #: templates/dns/static_host_list.html:70 msgid "Hosts" msgstr "Endereços" -#: templates/app_gateway/app_gateway_list.html:42 +#: templates/app_gateway/app_gateway_list.html:44 +#: templates/app_gateway/app_gateway_list.html:50 msgid "Export Configuration" msgstr "Exportar Configuração" -#: templates/app_gateway/app_gateway_list.html:46 +#: templates/app_gateway/app_gateway_list.html:49 +msgid "Export is not available because Caddy is not enabled." +msgstr "" + +#: templates/app_gateway/app_gateway_list.html:54 msgid "Add Application" msgstr "Adicionar Aplicação" -#: templates/app_gateway/app_gateway_list.html:61 +#: templates/app_gateway/app_gateway_list.html:69 msgid "Routes" msgstr "Rotas" -#: templates/app_gateway/app_gateway_list.html:80 -#: templates/app_gateway/application_details.html:39 +#: templates/app_gateway/app_gateway_list.html:88 +#: templates/app_gateway/application_details.html:47 msgid "Default (Deny)" msgstr "Padrão (Negar)" -#: templates/app_gateway/app_gateway_list.html:90 +#: templates/app_gateway/app_gateway_list.html:98 msgid "No Applications found." msgstr "Nenhuma Aplicação encontrada." -#: templates/app_gateway/app_gateway_list.html:102 +#: templates/app_gateway/app_gateway_list.html:110 msgid "Application" msgstr "Aplicação" -#: templates/app_gateway/app_gateway_list.html:121 +#: templates/app_gateway/app_gateway_list.html:129 msgid "No Hosts found." msgstr "Nenhum Host encontrado." -#: templates/app_gateway/app_gateway_list.html:129 +#: templates/app_gateway/app_gateway_list.html:137 msgid "Add Access Policy" msgstr "Adicionar Política de Acesso" -#: templates/app_gateway/app_gateway_list.html:140 -#: templates/gatekeeper/gatekeeper_list.html:43 -#: templates/gatekeeper/gatekeeper_list.html:64 +#: templates/app_gateway/app_gateway_list.html:148 +#: templates/gatekeeper/gatekeeper_list.html:44 +#: templates/gatekeeper/gatekeeper_list.html:65 msgid "Groups" msgstr "Grupos" -#: templates/app_gateway/app_gateway_list.html:141 +#: templates/app_gateway/app_gateway_list.html:149 msgid "Auth Methods" msgstr "Métodos de Autenticação" -#: templates/app_gateway/app_gateway_list.html:142 -#: templates/app_gateway/application_details.html:62 -#: templates/app_gateway/application_details.html:109 -#: templates/gatekeeper/gatekeeper_list.html:65 -#: templates/gatekeeper/gatekeeper_list.html:122 -#: templates/gatekeeper/gatekeeper_list.html:167 -#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/app_gateway/app_gateway_list.html:150 +#: templates/app_gateway/application_details.html:76 +#: templates/app_gateway/application_details.html:138 +#: templates/gatekeeper/gatekeeper_list.html:66 +#: templates/gatekeeper/gatekeeper_list.html:123 +#: templates/gatekeeper/gatekeeper_list.html:168 +#: templates/gatekeeper/gatekeeper_list.html:215 #: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Ações" -#: templates/app_gateway/app_gateway_list.html:169 +#: templates/app_gateway/app_gateway_list.html:177 msgid "No Access Policies found." msgstr "Nenhuma Política de Acesso encontrada." @@ -2278,34 +2379,79 @@ msgstr "Nenhuma Política de Acesso encontrada." msgid "Back to List" msgstr "Voltar para a Lista" -#: templates/app_gateway/application_details.html:41 +#: templates/app_gateway/application_details.html:15 +#: templates/app_gateway/application_details.html:59 +#: templates/app_gateway/application_details.html:91 +#: templates/app_gateway/application_details.html:94 +msgid "This application cannot be modified" +msgstr "" + +#: templates/app_gateway/application_details.html:18 +#, fuzzy +#| msgid "Application Route deleted successfully." +msgid "This application cannot be deleted" +msgstr "Rota da Aplicação excluída com sucesso." + +#: templates/app_gateway/application_details.html:49 msgid "Set Policy" msgstr "Configurar Política" -#: templates/app_gateway/application_details.html:48 +#: templates/app_gateway/application_details.html:56 msgid "Application Hosts" msgstr "Hosts da Aplicação" -#: templates/app_gateway/application_details.html:52 +#: templates/app_gateway/application_details.html:60 +#: templates/app_gateway/application_details.html:65 msgid "Add Host" msgstr "Adicionar Host" -#: templates/app_gateway/application_details.html:86 +#: templates/app_gateway/application_details.html:115 msgid "No Hosts configured for this application." msgstr "Nenhum Host configurado para esta aplicação." -#: templates/app_gateway/application_details.html:92 +#: templates/app_gateway/application_details.html:121 msgid "Application Routes" msgstr "Rotas da Aplicação" -#: templates/app_gateway/application_details.html:96 +#: templates/app_gateway/application_details.html:125 msgid "Add Route" msgstr "Adicionar Rota" -#: templates/app_gateway/application_details.html:136 +#: templates/app_gateway/application_details.html:165 msgid "No Routes configured for this application." msgstr "Nenhuma Rota configurada para esta aplicação." +#: templates/app_gateway/caddy_disabled_alert.html:5 +#, fuzzy +#| msgid "Cluster is not enabled" +msgid "Caddy is not enabled" +msgstr "Cluster não está habilitado" + +#: templates/app_gateway/caddy_disabled_alert.html:6 +msgid "" +"The App Gateway and Gatekeeper modules require Caddy and the auth-gateway " +"container to be running. Please start the application using docker-" +"compose-caddy.yml." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:7 +msgid "" +"Depending on your custom firewall or proxy rules, the way you access " +"wireguard_webadmin may change slightly after enabling Caddy." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:8 +msgid "" +"Switching to Caddy is simple, but it may require a bit of time and attention " +"to review your current setup." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:9 +#, fuzzy +#| msgid "For more information, please visit:" +msgid "For more information, see the discussion:" +msgstr "Para mais informações, visite:" + #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 #: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 @@ -2819,85 +2965,92 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Criar Regra de Encaminhamento de Porta" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:63 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:67 #: templates/gatekeeper/gatekeeper_user_form.html:43 msgid "View QR Code" msgstr "Ver Código QR" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:64 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:68 #: templates/gatekeeper/gatekeeper_user_form.html:44 msgid "Generate TOTP Secret" msgstr "Gerar Segredo TOTP" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:93 -#: templates/gatekeeper/gatekeeper_user_form.html:73 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:105 +#: templates/gatekeeper/gatekeeper_user_form.html:81 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:18 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:127 +#: templates/gatekeeper/gatekeeper_user_form.html:103 +#, fuzzy +#| msgid "Error creating invite." +msgid "Error generating QR code." +msgstr "Erro ao criar convite." + +#: templates/gatekeeper/gatekeeper_list.html:19 msgid "Gatekeeper Users" msgstr "Usuários Gatekeeper" -#: templates/gatekeeper/gatekeeper_list.html:24 +#: templates/gatekeeper/gatekeeper_list.html:25 msgid "Allowed Emails & Domains" msgstr "E-mails e Domínios Permitidos" -#: templates/gatekeeper/gatekeeper_list.html:30 +#: templates/gatekeeper/gatekeeper_list.html:31 msgid "IP Addresses" msgstr "Endereços IP" -#: templates/gatekeeper/gatekeeper_list.html:40 +#: templates/gatekeeper/gatekeeper_list.html:41 #: templates/user_manager/peer_group_list.html:11 msgid "Users" msgstr "Usuários" -#: templates/gatekeeper/gatekeeper_list.html:51 +#: templates/gatekeeper/gatekeeper_list.html:52 #: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 msgid "Add User" msgstr "Adicionar Usuário" -#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:64 msgid "TOTP" msgstr "TOTP" -#: templates/gatekeeper/gatekeeper_list.html:104 +#: templates/gatekeeper/gatekeeper_list.html:105 msgid "No Gatekeeper Users found." msgstr "Nenhum Usuário Gatekeeper encontrado." -#: templates/gatekeeper/gatekeeper_list.html:111 +#: templates/gatekeeper/gatekeeper_list.html:112 msgid "Add Group" msgstr "Adicionar Grupo" -#: templates/gatekeeper/gatekeeper_list.html:147 +#: templates/gatekeeper/gatekeeper_list.html:148 msgid "No Gatekeeper Groups found." msgstr "Nenhum Grupo Gatekeeper encontrado." -#: templates/gatekeeper/gatekeeper_list.html:156 +#: templates/gatekeeper/gatekeeper_list.html:157 msgid "Add Auth Method" msgstr "Adicionar Método de Autenticação" -#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/gatekeeper/gatekeeper_list.html:193 msgid "No Authentication Methods found." msgstr "Nenhum Método de Autenticação encontrado." -#: templates/gatekeeper/gatekeeper_list.html:212 +#: templates/gatekeeper/gatekeeper_list.html:213 msgid "Identity" msgstr "Identidade" -#: templates/gatekeeper/gatekeeper_list.html:213 -#: templates/gatekeeper/gatekeeper_list.html:275 +#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/gatekeeper/gatekeeper_list.html:276 msgid "Auth Method" msgstr "Método de Autenticação" -#: templates/gatekeeper/gatekeeper_list.html:257 +#: templates/gatekeeper/gatekeeper_list.html:258 msgid "No Allowed Emails or Domains found." msgstr "Nenhum E-mail ou Domínio Permitido encontrado." -#: templates/gatekeeper/gatekeeper_list.html:276 +#: templates/gatekeeper/gatekeeper_list.html:277 msgid "Manage" msgstr "Gerenciar" -#: templates/gatekeeper/gatekeeper_list.html:309 +#: templates/gatekeeper/gatekeeper_list.html:310 msgid "No IP Addresses found." msgstr "Nenhum Endereço IP encontrado." @@ -3519,6 +3672,10 @@ msgstr "Excluir Peer" msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Por favor, digite \\\"delete\\\" para remover a configuração do peer." +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Nome de Exibição" + #: templates/wireguard/wireguard_manage_server.html:27 msgid "" "\n" @@ -4504,5 +4661,25 @@ msgstr "" "Nenhuma interface encontrada|Nenhuma interface WireGuard foi encontrada para " "processar." +#~ msgid "This is a reserved system name." +#~ msgstr "Este é um nome de sistema reservado." + +#~ msgid "" +#~ "TOTP must be combined with a Local Password or OpenID Connect " +#~ "authentication method." +#~ msgstr "" +#~ "O TOTP deve ser combinado com um método de autenticação de Senha Local ou " +#~ "OpenID Connect." + +#~ msgid "Route identifier, used in export (e.g.: public_area)" +#~ msgstr "Identificador da rota, usado na exportação (ex: public_area)" + +#~ msgid "" +#~ "Caddy is not active. Configuration files were exported for debugging " +#~ "purposes." +#~ msgstr "" +#~ "O Caddy não está ativo. Os arquivos de configuração foram exportados para " +#~ "fins de depuração." + #~ msgid "Global TOTP Before Authentication" #~ msgstr "TOTP Global Antes da Autenticação" diff --git a/locale/sk/LC_MESSAGES/django.mo b/locale/sk/LC_MESSAGES/django.mo index e22bd8a..e4e1d9c 100644 Binary files a/locale/sk/LC_MESSAGES/django.mo and b/locale/sk/LC_MESSAGES/django.mo differ diff --git a/locale/sk/LC_MESSAGES/django.po b/locale/sk/LC_MESSAGES/django.po index 16052cf..48b0de5 100644 --- a/locale/sk/LC_MESSAGES/django.po +++ b/locale/sk/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-15 17:20-0300\n" +"POT-Creation-Date: 2026-03-18 10:58-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -34,17 +34,17 @@ msgstr "Späť" #: api_v2/forms.py:30 cluster/forms.py:28 dns/forms.py:69 dns/forms.py:129 #: routing_templates/forms.py:37 -#: templates/app_gateway/app_gateway_list.html:158 -#: templates/app_gateway/application_details.html:75 -#: templates/app_gateway/application_details.html:125 +#: templates/app_gateway/app_gateway_list.html:166 +#: templates/app_gateway/application_details.html:103 +#: templates/app_gateway/application_details.html:154 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 -#: templates/gatekeeper/gatekeeper_list.html:93 -#: templates/gatekeeper/gatekeeper_list.html:136 -#: templates/gatekeeper/gatekeeper_list.html:181 -#: templates/gatekeeper/gatekeeper_list.html:229 -#: templates/gatekeeper/gatekeeper_list.html:246 -#: templates/gatekeeper/gatekeeper_list.html:298 +#: templates/gatekeeper/gatekeeper_list.html:94 +#: templates/gatekeeper/gatekeeper_list.html:137 +#: templates/gatekeeper/gatekeeper_list.html:182 +#: templates/gatekeeper/gatekeeper_list.html:230 +#: templates/gatekeeper/gatekeeper_list.html:247 +#: templates/gatekeeper/gatekeeper_list.html:299 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -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:40 app_gateway/forms.py:92 -#: app_gateway/forms.py:136 app_gateway/forms.py:154 app_gateway/forms.py:237 -#: app_gateway/forms.py:278 cluster/forms.py:67 cluster/forms.py:124 -#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:70 -#: gatekeeper/forms.py:150 gatekeeper/forms.py:212 gatekeeper/forms.py:299 -#: gatekeeper/forms.py:329 gatekeeper/forms.py:360 +#: api_v2/forms.py:63 app_gateway/forms.py:41 app_gateway/forms.py:99 +#: app_gateway/forms.py:144 app_gateway/forms.py:162 app_gateway/forms.py:241 +#: app_gateway/forms.py:283 cluster/forms.py:67 cluster/forms.py:124 +#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:71 +#: gatekeeper/forms.py:152 gatekeeper/forms.py:239 gatekeeper/forms.py:362 +#: gatekeeper/forms.py:392 gatekeeper/forms.py:423 #: routing_templates/forms.py:71 scheduler/forms.py:102 #: templates/firewall/manage_firewall_rule.html:379 #: templates/firewall/manage_firewall_settings.html:59 @@ -82,14 +82,14 @@ msgstr "" msgid "Save" msgstr "Uložiť" -#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:106 -#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:174 +#: api_v2/models.py:10 app_gateway/forms.py:18 app_gateway/forms.py:113 +#: cluster/forms.py:18 dns/forms.py:130 gatekeeper/forms.py:188 #: 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:58 -#: templates/app_gateway/app_gateway_list.html:138 -#: templates/app_gateway/application_details.html:26 +#: templates/api_v2/list.html:8 templates/app_gateway/app_gateway_list.html:66 +#: templates/app_gateway/app_gateway_list.html:146 +#: templates/app_gateway/application_details.html:35 #: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 -#: templates/gatekeeper/gatekeeper_list.html:165 +#: templates/gatekeeper/gatekeeper_list.html:166 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -127,16 +127,16 @@ msgid "Enabled" msgstr "Povolené" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 -#: app_gateway/views.py:26 app_gateway/views.py:48 app_gateway/views.py:68 -#: app_gateway/views.py:112 app_gateway/views.py:135 app_gateway/views.py:170 -#: app_gateway/views.py:194 app_gateway/views.py:205 app_gateway/views.py:267 -#: app_gateway/views.py:293 app_gateway/views.py:328 app_gateway/views.py:354 -#: app_gateway/views.py:404 app_gateway/views.py:432 cluster/views.py:18 -#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:23 -#: gatekeeper/views.py:48 gatekeeper/views.py:98 gatekeeper/views.py:121 -#: gatekeeper/views.py:151 gatekeeper/views.py:174 gatekeeper/views.py:222 -#: gatekeeper/views.py:281 gatekeeper/views.py:311 gatekeeper/views.py:334 -#: gatekeeper/views.py:364 gatekeeper/views.py:387 gatekeeper/views.py:436 +#: app_gateway/views.py:28 app_gateway/views.py:52 app_gateway/views.py:83 +#: app_gateway/views.py:130 app_gateway/views.py:157 app_gateway/views.py:196 +#: app_gateway/views.py:224 app_gateway/views.py:235 app_gateway/views.py:297 +#: app_gateway/views.py:323 app_gateway/views.py:358 app_gateway/views.py:384 +#: app_gateway/views.py:434 app_gateway/views.py:462 cluster/views.py:18 +#: cluster/views.py:45 cluster/views.py:114 gatekeeper/views.py:25 +#: gatekeeper/views.py:52 gatekeeper/views.py:102 gatekeeper/views.py:125 +#: gatekeeper/views.py:155 gatekeeper/views.py:178 gatekeeper/views.py:226 +#: gatekeeper/views.py:297 gatekeeper/views.py:327 gatekeeper/views.py:350 +#: gatekeeper/views.py:380 gatekeeper/views.py:403 gatekeeper/views.py:452 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Prístup zamietnutý" @@ -206,20 +206,19 @@ msgstr "Ste si istí, že chcete odstrániť kľúč API \"%(name)s\"?" msgid "API Documentation" msgstr "Dokumentácia API" -#: app_gateway/forms.py:19 templates/app_gateway/application_details.html:27 -#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 -msgid "Display Name" -msgstr "Zobrazovací názov" - -#: app_gateway/forms.py:20 templates/app_gateway/app_gateway_list.html:59 -#: templates/app_gateway/application_details.html:28 +#: app_gateway/forms.py:19 templates/app_gateway/app_gateway_list.html:67 +#: templates/app_gateway/application_details.html:36 msgid "Upstream" msgstr "Upstream" -#: app_gateway/forms.py:41 app_gateway/forms.py:93 app_gateway/forms.py:137 -#: app_gateway/forms.py:155 app_gateway/forms.py:238 app_gateway/forms.py:279 -#: gatekeeper/forms.py:71 gatekeeper/forms.py:151 gatekeeper/forms.py:213 -#: gatekeeper/forms.py:300 gatekeeper/forms.py:330 gatekeeper/forms.py:361 +#: app_gateway/forms.py:20 +msgid "Allow invalid/self-signed certificate" +msgstr "" + +#: app_gateway/forms.py:42 app_gateway/forms.py:100 app_gateway/forms.py:145 +#: app_gateway/forms.py:163 app_gateway/forms.py:242 app_gateway/forms.py:284 +#: gatekeeper/forms.py:72 gatekeeper/forms.py:153 gatekeeper/forms.py:240 +#: gatekeeper/forms.py:363 gatekeeper/forms.py:393 gatekeeper/forms.py:424 #: scheduler/forms.py:103 #: templates/app_gateway/access_policy_type_select.html:50 #: templates/generic_delete_confirmation.html:19 @@ -227,58 +226,64 @@ msgstr "Upstream" msgid "Cancel" msgstr "Zrušiť" -#: app_gateway/forms.py:54 -msgid "This is a reserved system name." -msgstr "Toto je vyhradený systémový názov." - -#: app_gateway/forms.py:58 +#: app_gateway/forms.py:55 msgid "This upstream is reserved by the system." msgstr "Tento upstream je vyhradený systémom." -#: app_gateway/forms.py:61 +#: app_gateway/forms.py:58 msgid "Upstream URL cannot contain spaces." msgstr "URL adresa upstream nemôže obsahovať medzery." -#: app_gateway/forms.py:67 +#: app_gateway/forms.py:64 msgid "Enter a valid upstream URL starting with http:// or https://" msgstr "" "Zadajte platnú URL adresu upstream začínajúcu na http:// alebo https://" -#: app_gateway/forms.py:77 cluster/forms.py:24 dns/forms.py:65 -#: templates/app_gateway/app_gateway_list.html:101 -#: templates/app_gateway/application_details.html:61 +#: app_gateway/forms.py:66 +msgid "" +"Upstream must be a bare host address with no path, query or fragment. Use " +"http://host or http://host:port" +msgstr "" + +#: app_gateway/forms.py:76 cluster/forms.py:24 dns/forms.py:65 +#: templates/app_gateway/app_gateway_list.html:109 +#: templates/app_gateway/application_details.html:75 #: templates/dns/static_host_list.html:17 #: templates/wireguard/server_detail.html:39 msgid "Hostname" msgstr "Názov hostiteľa" -#: app_gateway/forms.py:107 templates/app_gateway/app_gateway_list.html:139 +#: app_gateway/forms.py:84 +msgid "Hostname contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:114 templates/app_gateway/app_gateway_list.html:147 msgid "Policy Type" msgstr "Typ politiky" -#: app_gateway/forms.py:108 +#: app_gateway/forms.py:115 msgid "Allowed Groups" msgstr "Povolené skupiny" -#: app_gateway/forms.py:109 templates/gatekeeper/gatekeeper_list.html:12 +#: app_gateway/forms.py:116 templates/gatekeeper/gatekeeper_list.html:13 msgid "Authentication Methods" msgstr "Metódy autentifikácie" -#: app_gateway/forms.py:188 +#: app_gateway/forms.py:196 msgid "Cannot select more than one Local Password authentication method." msgstr "Nemožno vybrať viac ako jednu metódu autentifikácie lokálnym heslom." -#: app_gateway/forms.py:192 +#: app_gateway/forms.py:200 msgid "" "Cannot select more than one OpenID Connect (OIDC) authentication method." msgstr "" "Nemožno vybrať viac ako jednu metódu autentifikácie OpenID Connect (OIDC)." -#: app_gateway/forms.py:196 +#: app_gateway/forms.py:204 msgid "Cannot select more than one TOTP authentication method." msgstr "Nemožno vybrať viac ako jednu metódu autentifikácie TOTP." -#: app_gateway/forms.py:200 +#: app_gateway/forms.py:208 msgid "" "Cannot select both Local Password and OpenID Connect (OIDC) authentication " "methods." @@ -286,15 +291,7 @@ msgstr "" "Nemožno vybrať súčasne metódy autentifikácie lokálnym heslom a OpenID " "Connect (OIDC)." -#: app_gateway/forms.py:204 -msgid "" -"TOTP must be combined with a Local Password or OpenID Connect authentication " -"method." -msgstr "" -"TOTP musí byť kombinované s metódou autentifikácie Lokálne heslo alebo OpenID " -"Connect." - -#: app_gateway/forms.py:208 +#: app_gateway/forms.py:212 msgid "" "At least one user group must be selected when using Local Password " "authentication." @@ -302,74 +299,101 @@ msgstr "" "Pri použití autentifikácie lokálnym heslom musí byť vybraná aspoň jedna " "skupina používateľov." -#: app_gateway/forms.py:212 +#: app_gateway/forms.py:216 msgid "User groups can only be used with Local Password authentication." msgstr "" "Skupiny používateľov možno použiť len s autentifikáciou lokálnym heslom." -#: app_gateway/forms.py:222 templates/app_gateway/app_gateway_list.html:62 -#: templates/app_gateway/application_details.html:31 +#: app_gateway/forms.py:226 templates/app_gateway/app_gateway_list.html:70 +#: templates/app_gateway/application_details.html:39 #: templates/firewall/firewall_nav_tabs.html:15 msgid "Default Policy" msgstr "Predvolená politika" -#: app_gateway/forms.py:251 templates/app_gateway/application_details.html:105 +#: app_gateway/forms.py:255 templates/app_gateway/application_details.html:134 msgid "Route Name" msgstr "Názov trasy" -#: app_gateway/forms.py:252 templates/app_gateway/application_details.html:106 +#: app_gateway/forms.py:256 templates/app_gateway/application_details.html:135 msgid "Path Prefix" msgstr "Prefix cesty" -#: app_gateway/forms.py:253 templates/app_gateway/application_details.html:107 +#: app_gateway/forms.py:257 templates/app_gateway/application_details.html:136 msgid "Policy" msgstr "Politika" -#: app_gateway/forms.py:254 templates/app_gateway/application_details.html:108 +#: app_gateway/forms.py:258 templates/app_gateway/application_details.html:137 msgid "Order" msgstr "Poradie" -#: app_gateway/models.py:12 +#: app_gateway/forms.py:299 +#, fuzzy +#| msgid "Invite URL must start with 'https://'." +msgid "Path prefix must start with /." +msgstr "URL pozvánky musí začínať na 'https://'." + +#: app_gateway/forms.py:301 +#, fuzzy +#| msgid "Upstream URL cannot contain spaces." +msgid "Path prefix cannot contain spaces." +msgstr "URL adresa upstream nemôže obsahovať medzery." + +#: app_gateway/forms.py:303 +msgid "Path prefix contains invalid characters." +msgstr "" + +#: app_gateway/forms.py:308 +#, fuzzy +#| msgid "This upstream is reserved by the system." +msgid "This path prefix is reserved by the system." +msgstr "Tento upstream je vyhradený systémom." + +#: app_gateway/models.py:14 msgid "Upstream address, e.g.: http://10.188.18.27:3000" msgstr "Upstream adresa, napr.: http://10.188.18.27:3000" -#: app_gateway/models.py:45 +#: app_gateway/models.py:15 +msgid "Allow invalid or self-signed TLS certificates from the upstream" +msgstr "" + +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:19 msgid "Public" msgstr "Verejné" -#: app_gateway/models.py:45 +#: app_gateway/models.py:53 #: templates/app_gateway/access_policy_type_select.html:30 msgid "Protected" msgstr "Chránené" -#: app_gateway/models.py:45 gatekeeper/models.py:108 +#: app_gateway/models.py:53 gatekeeper/models.py:142 #: templates/app_gateway/access_policy_type_select.html:41 -#: templates/gatekeeper/gatekeeper_list.html:288 +#: templates/gatekeeper/gatekeeper_list.html:289 msgid "Deny" msgstr "Odmietnuť" -#: app_gateway/models.py:80 -msgid "Route identifier, used in export (e.g.: public_area)" -msgstr "Identifikátor trasy, použitý v exporte (napr.: public_area)" - -#: app_gateway/views.py:60 +#: app_gateway/views.py:75 msgid "Application Details" msgstr "Podrobnosti o aplikácii" -#: app_gateway/views.py:74 templates/app_gateway/application_details.html:15 +#: app_gateway/views.py:90 app_gateway/views.py:174 app_gateway/views.py:204 +msgid "The WireGuard WebAdmin application cannot be modified." +msgstr "" + +#: app_gateway/views.py:92 templates/app_gateway/application_details.html:16 +#: templates/app_gateway/application_details.html:23 msgid "Edit Application" msgstr "Upraviť aplikáciu" -#: app_gateway/views.py:77 +#: app_gateway/views.py:95 msgid "Create Application" msgstr "Vytvoriť aplikáciu" -#: app_gateway/views.py:84 +#: app_gateway/views.py:102 msgid "Application saved successfully." msgstr "Aplikácia bola úspešne uložená." -#: app_gateway/views.py:89 +#: app_gateway/views.py:107 msgid "" "\n" "
Application
\n" @@ -403,62 +427,67 @@ msgstr "" " \n" " " -#: app_gateway/views.py:120 +#: app_gateway/views.py:137 +msgid "The WireGuard WebAdmin application cannot be deleted." +msgstr "" + +#: app_gateway/views.py:142 msgid "Application deleted successfully." msgstr "Aplikácia bola úspešne odstránená." -#: app_gateway/views.py:125 templates/app_gateway/application_details.html:18 +#: app_gateway/views.py:147 templates/app_gateway/application_details.html:19 +#: templates/app_gateway/application_details.html:26 msgid "Delete Application" msgstr "Odstrániť aplikáciu" -#: app_gateway/views.py:127 +#: app_gateway/views.py:149 #, python-format msgid "Are you sure you want to delete the application \"%(name)s\"?" msgstr "Ste si istí, že chcete odstrániť aplikáciu \"%(name)s\"?" -#: app_gateway/views.py:143 +#: app_gateway/views.py:165 msgid "Edit Application Host" msgstr "Upraviť hostiteľa aplikácie" -#: app_gateway/views.py:147 +#: app_gateway/views.py:169 msgid "Add Application Host" msgstr "Pridať hostiteľa aplikácie" -#: app_gateway/views.py:156 +#: app_gateway/views.py:182 msgid "Application Host saved successfully." msgstr "Hostiteľ aplikácie bol úspešne uložený." -#: app_gateway/views.py:179 +#: app_gateway/views.py:209 msgid "Application Host deleted successfully." msgstr "Hostiteľ aplikácie bol úspešne odstránený." -#: app_gateway/views.py:184 +#: app_gateway/views.py:214 msgid "Delete Application Host" msgstr "Odstrániť hostiteľa aplikácie" -#: app_gateway/views.py:186 +#: app_gateway/views.py:216 #, python-format msgid "Are you sure you want to delete the host \"%(hostname)s\"?" msgstr "Naozaj chcete odstrániť hostiteľa \"%(hostname)s\"?" -#: app_gateway/views.py:197 +#: app_gateway/views.py:227 #: templates/app_gateway/access_policy_type_select.html:9 msgid "Select Access Policy Type" msgstr "Vyberte typ prístupovej politiky" -#: app_gateway/views.py:212 +#: app_gateway/views.py:242 msgid "Edit Access Policy" msgstr "Upraviť politiku prístupu" -#: app_gateway/views.py:216 +#: app_gateway/views.py:246 msgid "Create Access Policy" msgstr "Vytvoriť politiku prístupu" -#: app_gateway/views.py:223 +#: app_gateway/views.py:253 msgid "Access Policy saved successfully." msgstr "Politika prístupu bola úspešne uložená." -#: app_gateway/views.py:229 +#: app_gateway/views.py:259 msgid "" "\n" "
Public Policy
\n" @@ -472,7 +501,7 @@ msgstr "" "akéhokoľvek overenia.

\n" " " -#: app_gateway/views.py:237 +#: app_gateway/views.py:267 msgid "" "\n" "
Deny Policy
\n" @@ -485,7 +514,7 @@ msgstr "" "trasám.

\n" " " -#: app_gateway/views.py:245 +#: app_gateway/views.py:275 msgid "" "\n" "
Protected Policy
\n" @@ -515,11 +544,11 @@ msgstr "" " \n" " " -#: app_gateway/views.py:276 +#: app_gateway/views.py:306 msgid "Access Policy deleted successfully." msgstr "Politika prístupu bola úspešne odstránená." -#: app_gateway/views.py:278 +#: app_gateway/views.py:308 msgid "" "Cannot delete this Access Policy because it is currently in use by an " "Application Route or Application Default Policy." @@ -527,53 +556,53 @@ msgstr "" "Túto prístupovú politiku nie je možné odstrániť, pretože sa momentálne " "používa v trase aplikácie alebo v predvolenej politike aplikácie." -#: app_gateway/views.py:283 +#: app_gateway/views.py:313 msgid "Delete Access Policy" msgstr "Odstrániť politiku prístupu" -#: app_gateway/views.py:285 +#: app_gateway/views.py:315 #, python-format msgid "Are you sure you want to delete the access policy \"%(name)s\"?" msgstr "Ste si istí, že chcete odstrániť politiku prístupu \"%(name)s\"?" -#: app_gateway/views.py:301 +#: app_gateway/views.py:331 msgid "Edit Application Default Policy" msgstr "Upraviť predvolenú politiku aplikácie" -#: app_gateway/views.py:305 +#: app_gateway/views.py:335 msgid "Set Application Default Policy" msgstr "Nastaviť predvolenú politiku aplikácie" -#: app_gateway/views.py:314 +#: app_gateway/views.py:344 msgid "Application Default Policy saved successfully." msgstr "Predvolená politika aplikácie bola úspešne uložená." -#: app_gateway/views.py:337 +#: app_gateway/views.py:367 msgid "Application Default Policy deleted successfully." msgstr "Predvolená politika aplikácie bola úspešne odstránená." -#: app_gateway/views.py:342 +#: app_gateway/views.py:372 msgid "Delete Application Default Policy" msgstr "Odstrániť predvolenú politiku aplikácie" -#: app_gateway/views.py:344 +#: app_gateway/views.py:374 #, python-format msgid "Are you sure you want to remove the default policy for \"%(name)s\"?" msgstr "Ste si istí, že chcete odstrániť predvolenú politiku pre \"%(name)s\"?" -#: app_gateway/views.py:362 +#: app_gateway/views.py:392 msgid "Edit Application Route" msgstr "Upraviť trasu aplikácie" -#: app_gateway/views.py:366 +#: app_gateway/views.py:396 msgid "Add Application Route" msgstr "Pridať trasu aplikácie" -#: app_gateway/views.py:375 +#: app_gateway/views.py:405 msgid "Application Route saved successfully." msgstr "Trasa aplikácie bola úspešne uložená." -#: app_gateway/views.py:380 +#: app_gateway/views.py:410 msgid "" "\n" "
Application Route
\n" @@ -613,41 +642,41 @@ msgstr "" " \n" " " -#: app_gateway/views.py:413 +#: app_gateway/views.py:443 msgid "Application Route deleted successfully." msgstr "Trasa aplikácie bola úspešne odstránená." -#: app_gateway/views.py:418 +#: app_gateway/views.py:448 msgid "Delete Application Route" msgstr "Odstrániť trasu aplikácie" -#: app_gateway/views.py:420 +#: app_gateway/views.py:450 #, python-format msgid "Are you sure you want to delete the route \"%(name)s\" (%(path)s)?" msgstr "Naozaj chcete odstrániť trasu \"%(name)s\" (%(path)s)?" -#: app_gateway/views.py:443 +#: app_gateway/views.py:468 +msgid "" +"Configuration export is not available because Caddy is not enabled. To use " +"App Gateway and Gatekeeper, start the application using docker-compose-" +"caddy.yml." +msgstr "" + +#: app_gateway/views.py:478 msgid "Configuration exported successfully." msgstr "Konfigurácia bola úspešne exportovaná." -#: app_gateway/views.py:445 -msgid "" -"Caddy is not active. Configuration files were exported for debugging " -"purposes." -msgstr "" -"Caddy nie je aktívny. Konfiguračné súbory boli exportované na účely ladenia." - #: cluster/forms.py:20 msgid "IP Lock" msgstr "IP zámok" -#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:271 +#: cluster/forms.py:21 dns/forms.py:67 gatekeeper/forms.py:315 #: templates/cluster/workers_list.html:10 #: templates/dns/static_host_list.html:18 #: templates/firewall/manage_redirect_rule.html:43 #: templates/firewall/manage_redirect_rule.html:67 #: templates/firewall/manage_redirect_rule.html:68 -#: templates/gatekeeper/gatekeeper_list.html:272 +#: templates/gatekeeper/gatekeeper_list.html:273 #: templates/wireguard/wireguard_status.html:45 msgid "IP Address" msgstr "IP adresa" @@ -918,7 +947,7 @@ msgstr "Statický DNS" msgid "Invalid hostname." msgstr "Neplatný názov hostiteľa." -#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:274 +#: dns/forms.py:131 firewall/forms.py:111 gatekeeper/forms.py:318 #: templates/api_v2/api_documentation.html:51 #: templates/dns/static_host_list.html:69 #: templates/firewall/manage_redirect_rule.html:18 @@ -1249,13 +1278,13 @@ msgstr "Spravovať nastavenia firewall" msgid "Firewall settings saved successfully" msgstr "Nastavenia firewall boli úspešne uložené" -#: gatekeeper/forms.py:17 templates/accounts/login.html:23 +#: gatekeeper/forms.py:18 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:20 +#: gatekeeper/forms.py:21 msgid "" "Minimum 8 characters, with at least one uppercase letter, one lowercase " "letter, and one number." @@ -1263,15 +1292,15 @@ msgstr "" "Minimálne 8 znakov, aspoň jedno veľké písmeno, jedno malé písmeno a jedno " "číslo." -#: gatekeeper/forms.py:23 +#: gatekeeper/forms.py:24 msgid "Confirm Password" msgstr "Potvrdiť heslo" -#: gatekeeper/forms.py:28 gatekeeper/forms.py:161 +#: gatekeeper/forms.py:29 gatekeeper/forms.py:163 msgid "TOTP Validation PIN" msgstr "Validačný PIN TOTP" -#: gatekeeper/forms.py:31 gatekeeper/forms.py:164 +#: gatekeeper/forms.py:32 gatekeeper/forms.py:166 msgid "" "Enter a 6-digit PIN generated by your authenticator app to validate the " "secret." @@ -1279,185 +1308,219 @@ msgstr "" "Zadajte 6-miestny PIN vygenerovaný vašou autentifikačnou aplikáciou na " "overenie tajomstva." -#: gatekeeper/forms.py:38 templates/accounts/login.html:14 -#: templates/gatekeeper/gatekeeper_list.html:61 +#: gatekeeper/forms.py:39 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:62 #: 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:39 gatekeeper/forms.py:344 -#: templates/gatekeeper/gatekeeper_list.html:62 -#: templates/gatekeeper/gatekeeper_list.html:220 +#: gatekeeper/forms.py:40 gatekeeper/forms.py:407 +#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:221 #: templates/wireguard/peer_list/peer_preview_modal.html:103 msgid "Email" msgstr "E-mail" -#: gatekeeper/forms.py:40 +#: gatekeeper/forms.py:41 msgid "TOTP Secret" msgstr "TOTP tajomstvo" -#: gatekeeper/forms.py:87 +#: gatekeeper/forms.py:88 msgid "Password is required." msgstr "Heslo je povinné." -#: gatekeeper/forms.py:90 user_manager/forms.py:127 +#: gatekeeper/forms.py:91 user_manager/forms.py:127 msgid "Password must be at least 8 characters long." msgstr "Heslo musí mať aspoň 8 znakov." -#: gatekeeper/forms.py:92 +#: gatekeeper/forms.py:93 msgid "Password must contain at least one lowercase letter." msgstr "Heslo musí obsahovať aspoň jedno malé písmeno." -#: gatekeeper/forms.py:94 +#: gatekeeper/forms.py:95 msgid "Password must contain at least one uppercase letter." msgstr "Heslo musí obsahovať aspoň jedno veľké písmeno." -#: gatekeeper/forms.py:96 +#: gatekeeper/forms.py:97 msgid "Password must contain at least one number." msgstr "Heslo musí obsahovať aspoň jedno číslo." -#: gatekeeper/forms.py:98 +#: gatekeeper/forms.py:99 msgid "Passwords do not match." msgstr "Heslá sa nezhodujú." -#: gatekeeper/forms.py:103 gatekeeper/forms.py:249 +#: gatekeeper/forms.py:104 gatekeeper/forms.py:276 msgid "Please provide a PIN to validate the TOTP secret." msgstr "Na overenie tajomstva TOTP zadajte PIN." -#: gatekeeper/forms.py:108 gatekeeper/forms.py:254 +#: gatekeeper/forms.py:109 gatekeeper/forms.py:281 msgid "Invalid TOTP PIN." msgstr "Neplatný PIN TOTP." -#: gatekeeper/forms.py:110 gatekeeper/forms.py:256 +#: gatekeeper/forms.py:111 gatekeeper/forms.py:283 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:130 templates/gatekeeper/gatekeeper_list.html:120 +#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 msgid "Group Name" msgstr "Názov skupiny" -#: gatekeeper/forms.py:131 templates/gatekeeper/gatekeeper_list.html:121 +#: gatekeeper/forms.py:132 templates/gatekeeper/gatekeeper_list.html:122 msgid "Members" msgstr "Členovia" +#: gatekeeper/forms.py:169 +#, fuzzy +#| msgid "Expiration" +msgid "Session Expiration" +msgstr "Expirácia" + #: gatekeeper/forms.py:175 +msgid "Unit" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Hour(s)" +msgstr "" + +#: gatekeeper/forms.py:176 +msgid "Day(s)" +msgstr "" + +#: gatekeeper/forms.py:189 msgid "Authentication Type" msgstr "Typ autentifikácie" -#: gatekeeper/forms.py:176 +#: gatekeeper/forms.py:190 msgid "Global TOTP Secret" msgstr "Globálne TOTP tajomstvo" -#: gatekeeper/forms.py:177 +#: gatekeeper/forms.py:191 msgid "OIDC Provider URL" msgstr "URL poskytovateľa OIDC" -#: gatekeeper/forms.py:178 +#: gatekeeper/forms.py:192 msgid "OIDC Client ID" msgstr "ID klienta OIDC" -#: gatekeeper/forms.py:179 +#: gatekeeper/forms.py:193 msgid "OIDC Client Secret" msgstr "Secret klienta OIDC" -#: gatekeeper/forms.py:230 +#: gatekeeper/forms.py:257 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:232 +#: gatekeeper/forms.py:259 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:234 +#: gatekeeper/forms.py:261 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:240 +#: gatekeeper/forms.py:267 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:243 +#: gatekeeper/forms.py:270 msgid "OIDC fields must be empty for TOTP authentication." msgstr "Polia OIDC musia byť prázdne pre autentifikáciu TOTP." -#: gatekeeper/forms.py:245 +#: gatekeeper/forms.py:272 msgid "TOTP secret is required for TOTP authentication." msgstr "TOTP tajomstvo je povinné pre autentifikáciu TOTP." -#: gatekeeper/forms.py:259 +#: gatekeeper/forms.py:285 +msgid "" +"OIDC authentication is temporarily unavailable and will be available soon." +msgstr "" + +#: gatekeeper/forms.py:287 msgid "TOTP secret must be empty for OIDC authentication." msgstr "TOTP tajomstvo musí byť prázdne pre autentifikáciu OIDC." -#: gatekeeper/forms.py:261 +#: gatekeeper/forms.py:289 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:270 gatekeeper/forms.py:312 gatekeeper/forms.py:343 +#: gatekeeper/forms.py:314 gatekeeper/forms.py:375 gatekeeper/forms.py:406 msgid "Authentication Method" msgstr "Metóda autentifikácie" -#: gatekeeper/forms.py:272 templates/gatekeeper/gatekeeper_list.html:273 +#: gatekeeper/forms.py:316 templates/gatekeeper/gatekeeper_list.html:274 msgid "Prefix Length" msgstr "Dĺžka prefixu" -#: gatekeeper/forms.py:273 templates/firewall/firewall_rule_list.html:47 +#: gatekeeper/forms.py:317 templates/firewall/firewall_rule_list.html:47 #: templates/firewall/manage_firewall_rule.html:360 -#: templates/gatekeeper/gatekeeper_list.html:274 +#: templates/gatekeeper/gatekeeper_list.html:275 msgid "Action" msgstr "Akcia" -#: gatekeeper/forms.py:313 templates/gatekeeper/gatekeeper_list.html:237 +#: gatekeeper/forms.py:332 +#, python-format +msgid "Prefix length for IPv%(version)d must be between 0 and %(max)d." +msgstr "" + +#: gatekeeper/forms.py:376 templates/gatekeeper/gatekeeper_list.html:238 msgid "Domain" msgstr "Doména" -#: gatekeeper/models.py:10 +#: gatekeeper/models.py:27 msgid "Local Password" msgstr "Miestne heslo" -#: gatekeeper/models.py:11 +#: gatekeeper/models.py:28 msgid "One-Time Password (TOTP)" msgstr "Jednorazové heslo (TOTP)" -#: gatekeeper/models.py:12 +#: gatekeeper/models.py:29 msgid "OpenID Connect (OIDC)" msgstr "OpenID Connect (OIDC)" -#: gatekeeper/models.py:13 +#: gatekeeper/models.py:30 msgid "IP Address List" msgstr "Zoznam IP adries" -#: gatekeeper/models.py:17 +#: gatekeeper/models.py:34 msgid "Shared/global TOTP secret key" msgstr "Zdieľaný/globálny tajný kľúč TOTP" -#: gatekeeper/models.py:68 +#: gatekeeper/models.py:39 +#, fuzzy +#| msgid "Expiration (minutes)" +msgid "Session expiration time in minutes" +msgstr "Expirácia (minúty)" + +#: gatekeeper/models.py:96 msgid "Password for local authentication (leave blank if not using)" msgstr "Heslo pre miestnu autentifikáciu (ak nepoužívate, nechajte prázdne)" -#: gatekeeper/models.py:69 +#: gatekeeper/models.py:97 msgid "Per-user TOTP secret key" msgstr "Tajný kľúč TOTP pre jednotlivých používateľov" -#: gatekeeper/models.py:108 templates/gatekeeper/gatekeeper_list.html:286 +#: gatekeeper/models.py:142 templates/gatekeeper/gatekeeper_list.html:287 msgid "Allow" msgstr "Povoliť" -#: gatekeeper/views.py:54 +#: gatekeeper/views.py:58 msgid "Edit Gatekeeper User" msgstr "Upraviť používateľa Gatekeeper" -#: gatekeeper/views.py:57 +#: gatekeeper/views.py:61 msgid "Create Gatekeeper User" msgstr "Vytvoriť používateľa Gatekeeper" -#: gatekeeper/views.py:64 +#: gatekeeper/views.py:68 msgid "Gatekeeper User saved successfully." msgstr "Používateľ Gatekeeper bol úspešne uložený." -#: gatekeeper/views.py:69 +#: gatekeeper/views.py:73 msgid "" "\n" "

Gatekeeper User

\n" @@ -1481,75 +1544,96 @@ msgid "" msgstr "" "\n" "

Používateľ Gatekeeper

\n" -"

Používatelia Gatekeeper sa používajú na autentifikáciu voči chráneným " -"aplikáciám spravovaným touto bránou.

\n" +"

Používatelia Gatekeeper sa používajú na autentifikáciu voči " +"chráneným aplikáciám spravovaným touto bránou.

\n" "\n" "
Heslo
\n" -"

Vyžaduje sa pri vytváraní používateľa. Pri úprave ponechajte obe polia pre heslo " -"prázdne, aby sa zachovalo aktuálne heslo.\n" +"

Vyžaduje sa pri vytváraní používateľa. Pri úprave ponechajte obe " +"polia pre heslo prázdne, aby sa zachovalo aktuálne heslo.\n" " Heslá sa ukladajú pomocou hašovania Argon2id.

\n" "\n" "
TOTP tajomstvo
\n" -"

Voliteľné TOTP tajomstvo pre konkrétneho používateľa. Keď je nastavené, tento používateľ sa " -"bude autentifikovať pomocou vlastného tajomstva namiesto\n" -" globálneho TOTP tajomstva konfigurovaného v metóde autentifikácie. Pomocou " -"tlačidiel pod poľom vygenerujte\n" -" náhodné tajomstvo a naskenujte QR kód pomocou vašej aplikácie autentifikátora. " -"Pred uložením overte tajomstvo zadaním aktuálneho\n" +"

Voliteľné TOTP tajomstvo pre konkrétneho používateľa. Keď je " +"nastavené, tento používateľ sa bude autentifikovať pomocou vlastného " +"tajomstva namiesto\n" +" globálneho TOTP tajomstva konfigurovaného v metóde autentifikácie. " +"Pomocou tlačidiel pod poľom vygenerujte\n" +" náhodné tajomstvo a naskenujte QR kód pomocou vašej aplikácie " +"autentifikátora. Pred uložením overte tajomstvo zadaním aktuálneho\n" " 6-miestneho kódu PIN.

\n" " " -#: gatekeeper/views.py:106 +#: gatekeeper/views.py:110 msgid "Gatekeeper User deleted successfully." msgstr "Používateľ Gatekeeper bol úspešne odstránený." -#: gatekeeper/views.py:111 +#: gatekeeper/views.py:115 msgid "Delete Gatekeeper User" msgstr "Odstrániť používateľa Gatekeeper" -#: gatekeeper/views.py:113 +#: gatekeeper/views.py:117 #, 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:127 +#: gatekeeper/views.py:131 msgid "Edit Gatekeeper Group" msgstr "Upraviť skupinu Gatekeeper" -#: gatekeeper/views.py:130 +#: gatekeeper/views.py:134 msgid "Create Gatekeeper Group" msgstr "Vytvoriť skupinu Gatekeeper" -#: gatekeeper/views.py:137 +#: gatekeeper/views.py:141 msgid "Gatekeeper Group saved successfully." msgstr "Skupina Gatekeeper bola úspešne uložená." -#: gatekeeper/views.py:159 +#: gatekeeper/views.py:163 msgid "Gatekeeper Group deleted successfully." msgstr "Skupina Gatekeeper bola úspešne odstránená." -#: gatekeeper/views.py:164 +#: gatekeeper/views.py:168 msgid "Delete Gatekeeper Group" msgstr "Odstrániť skupinu Gatekeeper" -#: gatekeeper/views.py:166 +#: gatekeeper/views.py:170 #, 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:180 +#: gatekeeper/views.py:184 msgid "Edit Authentication Method" msgstr "Upraviť metódu autentifikácie" -#: gatekeeper/views.py:183 +#: gatekeeper/views.py:187 msgid "Create Authentication Method" msgstr "Vytvoriť metódu autentifikácie" -#: gatekeeper/views.py:190 +#: gatekeeper/views.py:194 msgid "Authentication Method saved successfully." msgstr "Metóda autentifikácie bola úspešne uložená." -#: gatekeeper/views.py:195 +#: gatekeeper/views.py:199 +#, fuzzy +#| msgid "" +#| "\n" +#| "

Authentication Types

\n" +#| "

Select how users will authenticate through this method.

\n" +#| " \n" +#| "
Local Password
\n" +#| "

Users will authenticate using a standard username and password " +#| "stored locally. Only one of this type can be created.

\n" +#| " \n" +#| "
OIDC (OpenID Connect)
\n" +#| "

Users will authenticate via an external identity provider " +#| "(like Keycloak, Google, or Authelia). Requires Provider URL, Client ID, " +#| "and Client Secret.

\n" +#| " \n" +#| "
TOTP (Time-Based One-Time Password)
\n" +#| "

Users will need to enter a rotating token from an " +#| "authenticator app. If a user does not have a personal TOTP configured, " +#| "the Global TOTP Secret will be used instead.

\n" +#| " " msgid "" "\n" "

Authentication Types

\n" @@ -1561,8 +1645,8 @@ msgid "" " \n" "
OIDC (OpenID Connect)
\n" "

Users will authenticate via an external identity provider (like " -"Keycloak, Google, or Authelia). Requires Provider URL, Client ID, and Client " -"Secret.

\n" +"Keycloak or Google). Requires Provider URL, Client ID, and Client Secret.\n" " \n" "
TOTP (Time-Based One-Time Password)
\n" "

Users will need to enter a rotating token from an authenticator " @@ -1588,83 +1672,90 @@ msgstr "" "p>\n" " " -#: gatekeeper/views.py:230 +#: gatekeeper/views.py:237 +#, python-format +msgid "" +"Cannot delete authentication method \"%(method)s\" because it is used by the " +"following policies: %(policies)s." +msgstr "" + +#: gatekeeper/views.py:243 msgid "Authentication Method deleted successfully." msgstr "Metóda autentifikácie bola úspešne odstránená." -#: gatekeeper/views.py:235 +#: gatekeeper/views.py:248 msgid "Delete Authentication Method" msgstr "Odstrániť metódu autentifikácie" -#: gatekeeper/views.py:237 +#: gatekeeper/views.py:250 #, 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:287 +#: gatekeeper/views.py:303 msgid "Edit Allowed Domain" msgstr "Upraviť povolenú doménu" -#: gatekeeper/views.py:290 templates/gatekeeper/gatekeeper_list.html:202 +#: gatekeeper/views.py:306 templates/gatekeeper/gatekeeper_list.html:203 msgid "Add Allowed Domain" msgstr "Pridať povolenú doménu" -#: gatekeeper/views.py:297 +#: gatekeeper/views.py:313 msgid "Allowed Domain saved successfully." msgstr "Povolená doména bola úspešne uložená." -#: gatekeeper/views.py:319 +#: gatekeeper/views.py:335 msgid "Allowed Domain deleted successfully." msgstr "Povolená doména bola úspešne odstránená." -#: gatekeeper/views.py:324 +#: gatekeeper/views.py:340 msgid "Delete Allowed Domain" msgstr "Odstrániť povolenú doménu" -#: gatekeeper/views.py:326 +#: gatekeeper/views.py:342 #, 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:340 +#: gatekeeper/views.py:356 msgid "Edit Allowed Email" msgstr "Upraviť povolený e-mail" -#: gatekeeper/views.py:343 templates/gatekeeper/gatekeeper_list.html:199 +#: gatekeeper/views.py:359 templates/gatekeeper/gatekeeper_list.html:200 msgid "Add Allowed Email" msgstr "Pridať povolený e-mail" -#: gatekeeper/views.py:350 +#: gatekeeper/views.py:366 msgid "Allowed Email saved successfully." msgstr "Povolený e-mail bol úspešne uložený." -#: gatekeeper/views.py:372 +#: gatekeeper/views.py:388 msgid "Allowed Email deleted successfully." msgstr "Povolený e-mail bol úspešne odstránený." -#: gatekeeper/views.py:377 +#: gatekeeper/views.py:393 msgid "Delete Allowed Email" msgstr "Odstrániť povolený e-mail" -#: gatekeeper/views.py:379 +#: gatekeeper/views.py:395 #, 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:393 +#: gatekeeper/views.py:409 msgid "Edit IP Address" msgstr "Upraviť IP adresu" -#: gatekeeper/views.py:396 templates/gatekeeper/gatekeeper_list.html:263 +#: gatekeeper/views.py:412 templates/gatekeeper/gatekeeper_list.html:264 #: templates/wireguard/wireguard_manage_peer.html:171 msgid "Add IP Address" msgstr "Pridať IP adresu" -#: gatekeeper/views.py:403 +#: gatekeeper/views.py:419 msgid "IP Address saved successfully." msgstr "IP adresa bola úspešne uložená." -#: gatekeeper/views.py:408 +#: gatekeeper/views.py:424 msgid "" "\n" "

IP Address List
\n" @@ -1711,24 +1802,25 @@ msgstr "" "(napr. „Kancelárska sieť“, „Blokovaný útočník“).

\n" " " -#: gatekeeper/views.py:444 +#: gatekeeper/views.py:460 msgid "IP Address deleted successfully." msgstr "IP adresa bola úspešne odstránená." -#: gatekeeper/views.py:449 +#: gatekeeper/views.py:465 msgid "Delete IP Address" msgstr "Odstrániť IP adresu" -#: gatekeeper/views.py:451 +#: gatekeeper/views.py:467 #, python-format msgid "Are you sure you want to delete the IP address \"%(address)s\"?" msgstr "Naozaj chcete odstrániť IP adresu \"%(address)s\"?" -#: intl_tools/forms.py:11 templates/accounts/login.html:36 +#: intl_tools/forms.py:11 msgid "Language" msgstr "Jazyk" -#: intl_tools/forms.py:24 templates/template_parts/base_navbar.html:14 +#: intl_tools/forms.py:24 templates/accounts/login.html:35 +#: templates/template_parts/base_navbar.html:19 msgid "Change Language" msgstr "Zmeniť jazyk" @@ -2051,6 +2143,11 @@ msgstr "Prosím kontaktujte správcu systému ak si myslíte, že je to chyba." msgid "Login" msgstr "Prihlásiť sa" +#: templates/accounts/login.html:40 +#: templates/template_parts/base_navbar.html:14 +msgid "Toggle Dark Mode" +msgstr "" + #: templates/accounts/logout.html:11 msgid "You have been successfully logged out." msgstr "Boli ste úspešne odhlásený." @@ -2073,8 +2170,8 @@ msgid "In" msgstr "Vstup" #: templates/api_v2/api_documentation.html:49 -#: templates/gatekeeper/gatekeeper_list.html:166 -#: templates/gatekeeper/gatekeeper_list.html:211 +#: templates/gatekeeper/gatekeeper_list.html:167 +#: templates/gatekeeper/gatekeeper_list.html:212 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Typ" @@ -2084,13 +2181,13 @@ msgid "Required" msgstr "Povinné" #: templates/api_v2/api_documentation.html:62 -#: templates/gatekeeper/gatekeeper_list.html:75 +#: templates/gatekeeper/gatekeeper_list.html:76 #: templates/scheduler/scheduleprofile_form.html:175 msgid "Yes" msgstr "Áno" #: templates/api_v2/api_documentation.html:64 -#: templates/gatekeeper/gatekeeper_list.html:77 +#: templates/gatekeeper/gatekeeper_list.html:78 #: templates/scheduler/scheduleprofile_form.html:177 msgid "No" msgstr "Nie" @@ -2130,17 +2227,17 @@ msgid "Disabled" msgstr "Zakázané" #: templates/api_v2/list.html:68 -#: templates/app_gateway/app_gateway_list.html:154 -#: templates/app_gateway/application_details.html:71 -#: templates/app_gateway/application_details.html:121 +#: templates/app_gateway/app_gateway_list.html:162 +#: templates/app_gateway/application_details.html:99 +#: templates/app_gateway/application_details.html:150 #: templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 -#: templates/gatekeeper/gatekeeper_list.html:89 -#: templates/gatekeeper/gatekeeper_list.html:132 -#: templates/gatekeeper/gatekeeper_list.html:177 -#: templates/gatekeeper/gatekeeper_list.html:225 -#: templates/gatekeeper/gatekeeper_list.html:242 -#: templates/gatekeeper/gatekeeper_list.html:294 +#: templates/gatekeeper/gatekeeper_list.html:90 +#: templates/gatekeeper/gatekeeper_list.html:133 +#: templates/gatekeeper/gatekeeper_list.html:178 +#: templates/gatekeeper/gatekeeper_list.html:226 +#: templates/gatekeeper/gatekeeper_list.html:243 +#: templates/gatekeeper/gatekeeper_list.html:295 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -2172,78 +2269,83 @@ msgstr "Vyžadovať overenie pomocou špecifikovaných metód alebo skupín." msgid "Deny all access." msgstr "Odmietnuť všetok prístup." -#: templates/app_gateway/app_gateway_list.html:12 -#: templates/app_gateway/app_gateway_list.html:30 +#: templates/app_gateway/app_gateway_list.html:13 +#: templates/app_gateway/app_gateway_list.html:31 msgid "Applications" msgstr "Aplikácie" -#: templates/app_gateway/app_gateway_list.html:18 +#: templates/app_gateway/app_gateway_list.html:19 msgid "Access Policies" msgstr "Politiky prístupu" -#: templates/app_gateway/app_gateway_list.html:34 -#: templates/app_gateway/app_gateway_list.html:60 +#: templates/app_gateway/app_gateway_list.html:35 +#: templates/app_gateway/app_gateway_list.html:68 #: templates/dns/static_host_list.html:70 msgid "Hosts" msgstr "Hostiteľia" -#: templates/app_gateway/app_gateway_list.html:42 +#: templates/app_gateway/app_gateway_list.html:44 +#: templates/app_gateway/app_gateway_list.html:50 msgid "Export Configuration" msgstr "Exportovať konfiguráciu" -#: templates/app_gateway/app_gateway_list.html:46 +#: templates/app_gateway/app_gateway_list.html:49 +msgid "Export is not available because Caddy is not enabled." +msgstr "" + +#: templates/app_gateway/app_gateway_list.html:54 msgid "Add Application" msgstr "Pridať aplikáciu" -#: templates/app_gateway/app_gateway_list.html:61 +#: templates/app_gateway/app_gateway_list.html:69 msgid "Routes" msgstr "Trasy" -#: templates/app_gateway/app_gateway_list.html:80 -#: templates/app_gateway/application_details.html:39 +#: templates/app_gateway/app_gateway_list.html:88 +#: templates/app_gateway/application_details.html:47 msgid "Default (Deny)" msgstr "Predvolené (Zamietnuť)" -#: templates/app_gateway/app_gateway_list.html:90 +#: templates/app_gateway/app_gateway_list.html:98 msgid "No Applications found." msgstr "Nenašli sa žiadne aplikácie." -#: templates/app_gateway/app_gateway_list.html:102 +#: templates/app_gateway/app_gateway_list.html:110 msgid "Application" msgstr "Aplikácia" -#: templates/app_gateway/app_gateway_list.html:121 +#: templates/app_gateway/app_gateway_list.html:129 msgid "No Hosts found." msgstr "Nenašli sa žiadni hostitelia." -#: templates/app_gateway/app_gateway_list.html:129 +#: templates/app_gateway/app_gateway_list.html:137 msgid "Add Access Policy" msgstr "Pridať politiku prístupu" -#: templates/app_gateway/app_gateway_list.html:140 -#: templates/gatekeeper/gatekeeper_list.html:43 -#: templates/gatekeeper/gatekeeper_list.html:64 +#: templates/app_gateway/app_gateway_list.html:148 +#: templates/gatekeeper/gatekeeper_list.html:44 +#: templates/gatekeeper/gatekeeper_list.html:65 msgid "Groups" msgstr "Skupiny" -#: templates/app_gateway/app_gateway_list.html:141 +#: templates/app_gateway/app_gateway_list.html:149 msgid "Auth Methods" msgstr "Metódy autentifikácie" -#: templates/app_gateway/app_gateway_list.html:142 -#: templates/app_gateway/application_details.html:62 -#: templates/app_gateway/application_details.html:109 -#: templates/gatekeeper/gatekeeper_list.html:65 -#: templates/gatekeeper/gatekeeper_list.html:122 -#: templates/gatekeeper/gatekeeper_list.html:167 -#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/app_gateway/app_gateway_list.html:150 +#: templates/app_gateway/application_details.html:76 +#: templates/app_gateway/application_details.html:138 +#: templates/gatekeeper/gatekeeper_list.html:66 +#: templates/gatekeeper/gatekeeper_list.html:123 +#: templates/gatekeeper/gatekeeper_list.html:168 +#: templates/gatekeeper/gatekeeper_list.html:215 #: templates/scheduler/scheduleprofile_form.html:111 #: templates/scheduler/scheduleprofile_list.html:15 #: templates/wireguard/apply_route_template.html:28 msgid "Actions" msgstr "Akcie" -#: templates/app_gateway/app_gateway_list.html:169 +#: templates/app_gateway/app_gateway_list.html:177 msgid "No Access Policies found." msgstr "Nenašli sa žiadne politiky prístupu." @@ -2252,34 +2354,79 @@ msgstr "Nenašli sa žiadne politiky prístupu." msgid "Back to List" msgstr "Späť na zoznam" -#: templates/app_gateway/application_details.html:41 +#: templates/app_gateway/application_details.html:15 +#: templates/app_gateway/application_details.html:59 +#: templates/app_gateway/application_details.html:91 +#: templates/app_gateway/application_details.html:94 +msgid "This application cannot be modified" +msgstr "" + +#: templates/app_gateway/application_details.html:18 +#, fuzzy +#| msgid "Application Route deleted successfully." +msgid "This application cannot be deleted" +msgstr "Trasa aplikácie bola úspešne odstránená." + +#: templates/app_gateway/application_details.html:49 msgid "Set Policy" msgstr "Nastaviť politiku" -#: templates/app_gateway/application_details.html:48 +#: templates/app_gateway/application_details.html:56 msgid "Application Hosts" msgstr "Hostitelia aplikácie" -#: templates/app_gateway/application_details.html:52 +#: templates/app_gateway/application_details.html:60 +#: templates/app_gateway/application_details.html:65 msgid "Add Host" msgstr "Pridať hostiteľa" -#: templates/app_gateway/application_details.html:86 +#: templates/app_gateway/application_details.html:115 msgid "No Hosts configured for this application." msgstr "Pre túto aplikáciu nie sú konfigurovaní žiadni hostitelia." -#: templates/app_gateway/application_details.html:92 +#: templates/app_gateway/application_details.html:121 msgid "Application Routes" msgstr "Trasy aplikácie" -#: templates/app_gateway/application_details.html:96 +#: templates/app_gateway/application_details.html:125 msgid "Add Route" msgstr "Pridať trasu" -#: templates/app_gateway/application_details.html:136 +#: templates/app_gateway/application_details.html:165 msgid "No Routes configured for this application." msgstr "Pre túto aplikáciu nie sú konfigurované žiadne trasy." +#: templates/app_gateway/caddy_disabled_alert.html:5 +#, fuzzy +#| msgid "Cluster is not enabled" +msgid "Caddy is not enabled" +msgstr "Cluster nie je povolený" + +#: templates/app_gateway/caddy_disabled_alert.html:6 +msgid "" +"The App Gateway and Gatekeeper modules require Caddy and the auth-gateway " +"container to be running. Please start the application using docker-" +"compose-caddy.yml." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:7 +msgid "" +"Depending on your custom firewall or proxy rules, the way you access " +"wireguard_webadmin may change slightly after enabling Caddy." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:8 +msgid "" +"Switching to Caddy is simple, but it may require a bit of time and attention " +"to review your current setup." +msgstr "" + +#: templates/app_gateway/caddy_disabled_alert.html:9 +#, fuzzy +#| msgid "For more information, please visit:" +msgid "For more information, see the discussion:" +msgstr "Pre viac informácií navštívte prosím:" + #: templates/cluster/workers_list.html:9 templates/dns/static_host_list.html:72 #: templates/scheduler/scheduleprofile_form.html:82 #: templates/template_parts/base_sidebar.html:13 vpn_invite/forms.py:78 @@ -2789,85 +2936,92 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Vytvoriť pravidlo presmerovania portov" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:63 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:67 #: templates/gatekeeper/gatekeeper_user_form.html:43 msgid "View QR Code" msgstr "Zobraziť QR kód" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:64 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:68 #: templates/gatekeeper/gatekeeper_user_form.html:44 msgid "Generate TOTP Secret" msgstr "Generovať TOTP tajomstvo" -#: templates/gatekeeper/gatekeeper_auth_method_form.html:93 -#: templates/gatekeeper/gatekeeper_user_form.html:73 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:105 +#: templates/gatekeeper/gatekeeper_user_form.html:81 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:18 +#: templates/gatekeeper/gatekeeper_auth_method_form.html:127 +#: templates/gatekeeper/gatekeeper_user_form.html:103 +#, fuzzy +#| msgid "Error creating invite." +msgid "Error generating QR code." +msgstr "Chyba pri vytváraní pozvánky." + +#: templates/gatekeeper/gatekeeper_list.html:19 msgid "Gatekeeper Users" msgstr "Používatelia Gatekeeper" -#: templates/gatekeeper/gatekeeper_list.html:24 +#: templates/gatekeeper/gatekeeper_list.html:25 msgid "Allowed Emails & Domains" msgstr "Povolené e-maily a domény" -#: templates/gatekeeper/gatekeeper_list.html:30 +#: templates/gatekeeper/gatekeeper_list.html:31 msgid "IP Addresses" msgstr "IP adresy" -#: templates/gatekeeper/gatekeeper_list.html:40 +#: templates/gatekeeper/gatekeeper_list.html:41 #: templates/user_manager/peer_group_list.html:11 msgid "Users" msgstr "Používatelia" -#: templates/gatekeeper/gatekeeper_list.html:51 +#: templates/gatekeeper/gatekeeper_list.html:52 #: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 msgid "Add User" msgstr "Pridať používateľa" -#: templates/gatekeeper/gatekeeper_list.html:63 +#: templates/gatekeeper/gatekeeper_list.html:64 msgid "TOTP" msgstr "TOTP" -#: templates/gatekeeper/gatekeeper_list.html:104 +#: templates/gatekeeper/gatekeeper_list.html:105 msgid "No Gatekeeper Users found." msgstr "Nenašli sa žiadni používatelia Gatekeeper." -#: templates/gatekeeper/gatekeeper_list.html:111 +#: templates/gatekeeper/gatekeeper_list.html:112 msgid "Add Group" msgstr "Pridať skupinu" -#: templates/gatekeeper/gatekeeper_list.html:147 +#: templates/gatekeeper/gatekeeper_list.html:148 msgid "No Gatekeeper Groups found." msgstr "Nenašli sa žiadne skupiny Gatekeeper." -#: templates/gatekeeper/gatekeeper_list.html:156 +#: templates/gatekeeper/gatekeeper_list.html:157 msgid "Add Auth Method" msgstr "Pridať metódu autentifikácie" -#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/gatekeeper/gatekeeper_list.html:193 msgid "No Authentication Methods found." msgstr "Nenašli sa žiadne metódy autentifikácie." -#: templates/gatekeeper/gatekeeper_list.html:212 +#: templates/gatekeeper/gatekeeper_list.html:213 msgid "Identity" msgstr "Identita" -#: templates/gatekeeper/gatekeeper_list.html:213 -#: templates/gatekeeper/gatekeeper_list.html:275 +#: templates/gatekeeper/gatekeeper_list.html:214 +#: templates/gatekeeper/gatekeeper_list.html:276 msgid "Auth Method" msgstr "Metóda autentifikácie" -#: templates/gatekeeper/gatekeeper_list.html:257 +#: templates/gatekeeper/gatekeeper_list.html:258 msgid "No Allowed Emails or Domains found." msgstr "Nenašli sa žiadne povolené e-maily ani domény." -#: templates/gatekeeper/gatekeeper_list.html:276 +#: templates/gatekeeper/gatekeeper_list.html:277 msgid "Manage" msgstr "Spravovať" -#: templates/gatekeeper/gatekeeper_list.html:309 +#: templates/gatekeeper/gatekeeper_list.html:310 msgid "No IP Addresses found." msgstr "Nenašli sa žiadne IP adresy." @@ -3489,6 +3643,10 @@ msgstr "Vymazať peer" msgid "Please type \\\"delete\\\" to remove peer configuration." msgstr "Prosím napíšte \\\"delete\\\" pre odstránenie konfigurácie peer." +#: templates/wireguard/wireguard_manage_server.html:25 wireguard/forms.py:15 +msgid "Display Name" +msgstr "Zobrazovací názov" + #: templates/wireguard/wireguard_manage_server.html:27 msgid "" "\n" @@ -4468,5 +4626,25 @@ msgstr "" "Neboli nájdené rozhrania|Neboli nájdené žiadne WireGuard rozhrania na " "spracovanie." +#~ msgid "This is a reserved system name." +#~ msgstr "Toto je vyhradený systémový názov." + +#~ msgid "" +#~ "TOTP must be combined with a Local Password or OpenID Connect " +#~ "authentication method." +#~ msgstr "" +#~ "TOTP musí byť kombinované s metódou autentifikácie Lokálne heslo alebo " +#~ "OpenID Connect." + +#~ msgid "Route identifier, used in export (e.g.: public_area)" +#~ msgstr "Identifikátor trasy, použitý v exporte (napr.: public_area)" + +#~ msgid "" +#~ "Caddy is not active. Configuration files were exported for debugging " +#~ "purposes." +#~ msgstr "" +#~ "Caddy nie je aktívny. Konfiguračné súbory boli exportované na účely " +#~ "ladenia." + #~ msgid "Global TOTP Before Authentication" #~ msgstr "Globálne TOTP pred autentifikáciou"