diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo
index 2627059..d62f7ad 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 e6a64ce..0d68af4 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-12 18:41-0300\n"
+"POT-Creation-Date: 2026-03-13 20:12-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -65,11 +65,12 @@ msgstr ""
"wird sofort ungültig."
#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:85
-#: app_gateway/forms.py:123 app_gateway/forms.py:152 app_gateway/forms.py:193
-#: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84
-#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75
-#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254
-#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102
+#: app_gateway/forms.py:129 app_gateway/forms.py:147 app_gateway/forms.py:195
+#: app_gateway/forms.py:236 cluster/forms.py:67 cluster/forms.py:124
+#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:41
+#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224
+#: gatekeeper/forms.py:254 gatekeeper/forms.py:285
+#: routing_templates/forms.py:71 scheduler/forms.py:102
#: templates/firewall/manage_firewall_rule.html:379
#: templates/firewall/manage_firewall_settings.html:59
#: templates/firewall/manage_redirect_rule.html:84
@@ -126,16 +127,17 @@ 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:20 app_gateway/views.py:42 app_gateway/views.py:62
-#: app_gateway/views.py:92 app_gateway/views.py:115 app_gateway/views.py:150
-#: app_gateway/views.py:174 app_gateway/views.py:204 app_gateway/views.py:227
-#: app_gateway/views.py:262 app_gateway/views.py:288 app_gateway/views.py:338
-#: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114
-#: gatekeeper/views.py:23 gatekeeper/views.py:48 gatekeeper/views.py:78
-#: gatekeeper/views.py:101 gatekeeper/views.py:131 gatekeeper/views.py:154
-#: gatekeeper/views.py:198 gatekeeper/views.py:257 gatekeeper/views.py:287
-#: gatekeeper/views.py:310 gatekeeper/views.py:340 gatekeeper/views.py:363
-#: gatekeeper/views.py:412 templates/access_denied.html:9
+#: app_gateway/views.py:21 app_gateway/views.py:43 app_gateway/views.py:63
+#: app_gateway/views.py:107 app_gateway/views.py:130 app_gateway/views.py:165
+#: app_gateway/views.py:189 app_gateway/views.py:200 app_gateway/views.py:262
+#: app_gateway/views.py:288 app_gateway/views.py:323 app_gateway/views.py:349
+#: app_gateway/views.py:399 cluster/views.py:18 cluster/views.py:45
+#: cluster/views.py:114 gatekeeper/views.py:23 gatekeeper/views.py:48
+#: gatekeeper/views.py:78 gatekeeper/views.py:101 gatekeeper/views.py:131
+#: gatekeeper/views.py:154 gatekeeper/views.py:198 gatekeeper/views.py:257
+#: gatekeeper/views.py:287 gatekeeper/views.py:310 gatekeeper/views.py:340
+#: gatekeeper/views.py:363 gatekeeper/views.py:412
+#: templates/access_denied.html:9
msgid "Access Denied"
msgstr "Zugriff verweigert"
@@ -215,10 +217,12 @@ msgstr "Anzeigename"
msgid "Upstream"
msgstr "Upstream"
-#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:124
-#: app_gateway/forms.py:153 app_gateway/forms.py:194 gatekeeper/forms.py:42
-#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225
-#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103
+#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:130
+#: app_gateway/forms.py:148 app_gateway/forms.py:196 app_gateway/forms.py:237
+#: gatekeeper/forms.py:42 gatekeeper/forms.py:76 gatekeeper/forms.py:138
+#: gatekeeper/forms.py:225 gatekeeper/forms.py:255 gatekeeper/forms.py:286
+#: scheduler/forms.py:103
+#: templates/app_gateway/access_policy_type_select.html:50
#: templates/generic_delete_confirmation.html:19
#: templates/scheduler/scheduleprofile_form.html:203
msgid "Cancel"
@@ -230,7 +234,9 @@ msgstr "Upstream-URL darf keine Leerzeichen enthalten."
#: app_gateway/forms.py:60
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."
+msgstr ""
+"Geben Sie eine gültige Upstream-URL ein, die mit http:// oder https:// "
+"beginnt."
#: app_gateway/forms.py:70 cluster/forms.py:24 dns/forms.py:65
#: templates/app_gateway/app_gateway_list.html:95
@@ -252,25 +258,33 @@ msgstr "Erlaubte Gruppen"
msgid "Authentication Methods"
msgstr "Authentifizierungsmethoden"
-#: app_gateway/forms.py:137 templates/app_gateway/app_gateway_list.html:56
+#: app_gateway/forms.py:170
+#, fuzzy
+#| msgid "TOTP secret must be empty for Local Password authentication."
+msgid "User groups can only be used with local user authentication."
+msgstr ""
+"Das TOTP-Geheimnis muss für die Authentifizierung mit lokalem Passwort leer "
+"sein."
+
+#: app_gateway/forms.py:180 templates/app_gateway/app_gateway_list.html:56
#: templates/app_gateway/application_details.html:31
#: templates/firewall/firewall_nav_tabs.html:15
msgid "Default Policy"
msgstr "Standard‑Richtlinie"
-#: app_gateway/forms.py:166 templates/app_gateway/application_details.html:105
+#: app_gateway/forms.py:209 templates/app_gateway/application_details.html:105
msgid "Route Name"
msgstr "Routenname"
-#: app_gateway/forms.py:167 templates/app_gateway/application_details.html:106
+#: app_gateway/forms.py:210 templates/app_gateway/application_details.html:106
msgid "Path Prefix"
msgstr "Pfadpräfix"
-#: app_gateway/forms.py:168 templates/app_gateway/application_details.html:107
+#: app_gateway/forms.py:211 templates/app_gateway/application_details.html:107
msgid "Policy"
msgstr "Richtlinie"
-#: app_gateway/forms.py:169 templates/app_gateway/application_details.html:108
+#: app_gateway/forms.py:212 templates/app_gateway/application_details.html:108
msgid "Order"
msgstr "Reihenfolge"
@@ -279,143 +293,214 @@ 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
-msgid "Bypass (public)"
-msgstr "Bypass (öffentlich)"
+#: templates/app_gateway/access_policy_type_select.html:19
+#, fuzzy
+#| msgid "Public Key"
+msgid "Public"
+msgstr "Public Key"
-#: app_gateway/models.py:46
-msgid "One Factor"
-msgstr "Ein Faktor"
+#: app_gateway/models.py:45
+#: templates/app_gateway/access_policy_type_select.html:30
+msgid "Protected"
+msgstr ""
-#: app_gateway/models.py:47
-msgid "Two Factor"
-msgstr "Zwei Faktoren"
-
-#: app_gateway/models.py:48 gatekeeper/models.py:108
+#: app_gateway/models.py:45 gatekeeper/models.py:108
+#: templates/app_gateway/access_policy_type_select.html:41
#: templates/gatekeeper/gatekeeper_list.html:272
msgid "Deny"
msgstr "Ablehnen"
-#: app_gateway/models.py:87
+#: app_gateway/models.py:80
msgid "Route identifier, used in export (e.g.: public_area)"
msgstr "Routen-ID, verwendet im Export (z. B.: public_area)"
-#: app_gateway/views.py:54
+#: app_gateway/views.py:55
msgid "Application Details"
msgstr "Anwendungsdetails"
-#: app_gateway/views.py:68 templates/app_gateway/application_details.html:15
+#: app_gateway/views.py:69 templates/app_gateway/application_details.html:15
msgid "Edit Application"
msgstr "Anwendung bearbeiten"
-#: app_gateway/views.py:71
+#: app_gateway/views.py:72
msgid "Create Application"
msgstr "Anwendung erstellen"
-#: app_gateway/views.py:78
+#: app_gateway/views.py:79
msgid "Application saved successfully."
msgstr "Anwendung erfolgreich gespeichert."
-#: app_gateway/views.py:100
+#: app_gateway/views.py:84
+msgid ""
+"\n"
+" Application
\n"
+" Define the main details of the application you want to expose "
+"through the gateway.
\n"
+" \n"
+" - Name: A unique internal identifier for this "
+"application (e.g., \"wiki\", \"crm\"). Contains only letters, numbers, "
+"hyphens, or underscores.
\n"
+" - Display Name: A friendly, human-readable "
+"name for display purposes.
\n"
+" - Upstream: The destination URL where "
+"requests will be forwarded (e.g.,
http://10.188.18.27:3000). "
+"Must start with http:// or https://. \n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:115
msgid "Application deleted successfully."
msgstr "Anwendung erfolgreich gelöscht."
-#: app_gateway/views.py:105 templates/app_gateway/application_details.html:18
+#: app_gateway/views.py:120 templates/app_gateway/application_details.html:18
msgid "Delete Application"
msgstr "Anwendung löschen"
-#: app_gateway/views.py:107
+#: app_gateway/views.py:122
#, 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:123
+#: app_gateway/views.py:138
msgid "Edit Application Host"
msgstr "Anwendungshost bearbeiten"
-#: app_gateway/views.py:127
+#: app_gateway/views.py:142
msgid "Add Application Host"
msgstr "Anwendungshost hinzufügen"
-#: app_gateway/views.py:136
+#: app_gateway/views.py:151
msgid "Application Host saved successfully."
msgstr "Anwendungshost erfolgreich gespeichert."
-#: app_gateway/views.py:159
+#: app_gateway/views.py:174
msgid "Application Host deleted successfully."
msgstr "Anwendungshost erfolgreich gelöscht."
-#: app_gateway/views.py:164
+#: app_gateway/views.py:179
msgid "Delete Application Host"
msgstr "Anwendungshost löschen"
-#: app_gateway/views.py:166
+#: app_gateway/views.py:181
#, 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:180
+#: app_gateway/views.py:192
+#: templates/app_gateway/access_policy_type_select.html:9
+#, fuzzy
+#| msgid "Delete Access Policy"
+msgid "Select Access Policy Type"
+msgstr "Zugriffsrichtlinie löschen"
+
+#: app_gateway/views.py:207
msgid "Edit Access Policy"
msgstr "Zugriffsrichtlinie bearbeiten"
-#: app_gateway/views.py:183
+#: app_gateway/views.py:211
msgid "Create Access Policy"
msgstr "Zugriffsrichtlinie erstellen"
-#: app_gateway/views.py:190
+#: app_gateway/views.py:218
msgid "Access Policy saved successfully."
msgstr "Zugriffsrichtlinie erfolgreich gespeichert."
-#: app_gateway/views.py:212
+#: app_gateway/views.py:224
+msgid ""
+"\n"
+" Public Policy
\n"
+" A Public policy allows access to the application without "
+"requiring any authentication.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:232
+msgid ""
+"\n"
+" Deny Policy
\n"
+" A Deny policy blocks all access to the matched routes.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:240
+msgid ""
+"\n"
+" Protected Policy
\n"
+" A Protected policy requires users to authenticate before "
+"accessing the application.
\n"
+" \n"
+" - Allowed Groups: Limits access to "
+"specific user groups. Note: Using groups requires selecting an "
+"Authentication Method of type \"Local Password\".
\n"
+" - Authentication Methods: Specify which "
+"methods users can use to authenticate (e.g., Local Password, TOTP, OIDC)."
+"li>\n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:271
msgid "Access Policy deleted successfully."
msgstr "Zugriffsrichtlinie erfolgreich gelöscht."
-#: app_gateway/views.py:217
+#: app_gateway/views.py:273
+msgid ""
+"Cannot delete this Access Policy because it is currently in use by an "
+"Application Route or Application Default Policy."
+msgstr ""
+
+#: app_gateway/views.py:278
msgid "Delete Access Policy"
msgstr "Zugriffsrichtlinie löschen"
-#: app_gateway/views.py:219
+#: app_gateway/views.py:280
#, 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?"
+msgstr ""
+"Sind Sie sicher, dass Sie die Zugriffsrichtlinie \"%(name)s\" löschen "
+"möchten?"
-#: app_gateway/views.py:235
+#: app_gateway/views.py:296
msgid "Edit Application Default Policy"
msgstr "Standardrichtlinie der Anwendung bearbeiten"
-#: app_gateway/views.py:239
+#: app_gateway/views.py:300
msgid "Set Application Default Policy"
msgstr "Standardrichtlinie der Anwendung festlegen"
-#: app_gateway/views.py:248
+#: app_gateway/views.py:309
msgid "Application Default Policy saved successfully."
msgstr "Standardrichtlinie der Anwendung erfolgreich gespeichert."
-#: app_gateway/views.py:271
+#: app_gateway/views.py:332
msgid "Application Default Policy deleted successfully."
msgstr "Standardrichtlinie der Anwendung erfolgreich gelöscht."
-#: app_gateway/views.py:276
+#: app_gateway/views.py:337
msgid "Delete Application Default Policy"
msgstr "Standardrichtlinie der Anwendung löschen"
-#: app_gateway/views.py:278
+#: app_gateway/views.py:339
#, 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?"
+msgstr ""
+"Sind Sie sicher, dass Sie die Standardrichtlinie für \"%(name)s\" entfernen "
+"möchten?"
-#: app_gateway/views.py:296
+#: app_gateway/views.py:357
msgid "Edit Application Route"
msgstr "Anwendungsroute bearbeiten"
-#: app_gateway/views.py:300
+#: app_gateway/views.py:361
msgid "Add Application Route"
msgstr "Anwendungsroute hinzufügen"
-#: app_gateway/views.py:309
+#: app_gateway/views.py:370
msgid "Application Route saved successfully."
msgstr "Anwendungsroute erfolgreich gespeichert."
-#: app_gateway/views.py:314
+#: app_gateway/views.py:375
msgid ""
"\n"
" Application Route
\n"
@@ -456,18 +541,19 @@ msgstr ""
" \n"
" "
-#: app_gateway/views.py:347
+#: app_gateway/views.py:408
msgid "Application Route deleted successfully."
msgstr "Anwendungsroute erfolgreich gelöscht."
-#: app_gateway/views.py:352
+#: app_gateway/views.py:413
msgid "Delete Application Route"
msgstr "Anwendungsroute löschen"
-#: app_gateway/views.py:354
+#: app_gateway/views.py:415
#, 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?"
+msgstr ""
+"Sind Sie sicher, dass Sie die Route \"%(name)s\" (%(path)s) löschen möchten?"
#: cluster/forms.py:20
msgid "IP Lock"
@@ -1466,8 +1552,8 @@ msgstr ""
"\n"
" IP-Adressliste
\n"
" Verwalten Sie spezifische IP-Adressen oder Netzwerke, denen der "
-"Zugriff erlaubt oder verweigert wird, wenn Sie die "
-"Authentifizierungsmethode „IP-Adressliste“ verwenden.
\n"
+"Zugriff erlaubt oder verweigert wird, wenn Sie die Authentifizierungsmethode "
+"„IP-Adressliste“ verwenden.
\n"
" \n"
" IP-Adresse & Präfix
\n"
" Geben Sie eine einzelne IP-Adresse (z. B. 192.168.1.50) oder eine "
@@ -1936,6 +2022,28 @@ msgstr "Deaktiviert"
msgid "Edit"
msgstr "Bearbeiten"
+#: templates/app_gateway/access_policy_type_select.html:12
+msgid "Choose the type of access policy you want to create."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:20
+msgid "Allow access to everyone without authentication."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:21
+#: templates/app_gateway/access_policy_type_select.html:32
+#: templates/app_gateway/access_policy_type_select.html:43
+msgid "Select"
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:31
+msgid "Require authentication using specified methods or groups."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:42
+msgid "Deny all access."
+msgstr ""
+
#: templates/app_gateway/app_gateway_list.html:12
#: templates/app_gateway/app_gateway_list.html:30
msgid "Applications"
@@ -4243,6 +4351,15 @@ msgstr ""
"Keine Schnittstellen gefunden|Es wurden keine WireGuard‑Schnittstellen "
"gefunden."
+#~ msgid "Bypass (public)"
+#~ msgstr "Bypass (öffentlich)"
+
+#~ msgid "One Factor"
+#~ msgstr "Ein Faktor"
+
+#~ msgid "Two Factor"
+#~ msgstr "Zwei Faktoren"
+
#, fuzzy
#~| msgid "Sort Order"
#~ msgid "Priority Order"
diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo
index 85191e0..c7975ef 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 5ff8490..5e085d9 100644
--- a/locale/es/LC_MESSAGES/django.po
+++ b/locale/es/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-12 18:41-0300\n"
+"POT-Creation-Date: 2026-03-13 20:12-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -65,11 +65,12 @@ msgstr ""
"funcionar inmediatamente."
#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:85
-#: app_gateway/forms.py:123 app_gateway/forms.py:152 app_gateway/forms.py:193
-#: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84
-#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75
-#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254
-#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102
+#: app_gateway/forms.py:129 app_gateway/forms.py:147 app_gateway/forms.py:195
+#: app_gateway/forms.py:236 cluster/forms.py:67 cluster/forms.py:124
+#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:41
+#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224
+#: gatekeeper/forms.py:254 gatekeeper/forms.py:285
+#: routing_templates/forms.py:71 scheduler/forms.py:102
#: templates/firewall/manage_firewall_rule.html:379
#: templates/firewall/manage_firewall_settings.html:59
#: templates/firewall/manage_redirect_rule.html:84
@@ -126,16 +127,17 @@ 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:20 app_gateway/views.py:42 app_gateway/views.py:62
-#: app_gateway/views.py:92 app_gateway/views.py:115 app_gateway/views.py:150
-#: app_gateway/views.py:174 app_gateway/views.py:204 app_gateway/views.py:227
-#: app_gateway/views.py:262 app_gateway/views.py:288 app_gateway/views.py:338
-#: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114
-#: gatekeeper/views.py:23 gatekeeper/views.py:48 gatekeeper/views.py:78
-#: gatekeeper/views.py:101 gatekeeper/views.py:131 gatekeeper/views.py:154
-#: gatekeeper/views.py:198 gatekeeper/views.py:257 gatekeeper/views.py:287
-#: gatekeeper/views.py:310 gatekeeper/views.py:340 gatekeeper/views.py:363
-#: gatekeeper/views.py:412 templates/access_denied.html:9
+#: app_gateway/views.py:21 app_gateway/views.py:43 app_gateway/views.py:63
+#: app_gateway/views.py:107 app_gateway/views.py:130 app_gateway/views.py:165
+#: app_gateway/views.py:189 app_gateway/views.py:200 app_gateway/views.py:262
+#: app_gateway/views.py:288 app_gateway/views.py:323 app_gateway/views.py:349
+#: app_gateway/views.py:399 cluster/views.py:18 cluster/views.py:45
+#: cluster/views.py:114 gatekeeper/views.py:23 gatekeeper/views.py:48
+#: gatekeeper/views.py:78 gatekeeper/views.py:101 gatekeeper/views.py:131
+#: gatekeeper/views.py:154 gatekeeper/views.py:198 gatekeeper/views.py:257
+#: gatekeeper/views.py:287 gatekeeper/views.py:310 gatekeeper/views.py:340
+#: gatekeeper/views.py:363 gatekeeper/views.py:412
+#: templates/access_denied.html:9
msgid "Access Denied"
msgstr "Acceso denegado"
@@ -214,10 +216,12 @@ msgstr "Nombre para mostrar"
msgid "Upstream"
msgstr "Upstream"
-#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:124
-#: app_gateway/forms.py:153 app_gateway/forms.py:194 gatekeeper/forms.py:42
-#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225
-#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103
+#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:130
+#: app_gateway/forms.py:148 app_gateway/forms.py:196 app_gateway/forms.py:237
+#: gatekeeper/forms.py:42 gatekeeper/forms.py:76 gatekeeper/forms.py:138
+#: gatekeeper/forms.py:225 gatekeeper/forms.py:255 gatekeeper/forms.py:286
+#: scheduler/forms.py:103
+#: templates/app_gateway/access_policy_type_select.html:50
#: templates/generic_delete_confirmation.html:19
#: templates/scheduler/scheduleprofile_form.html:203
msgid "Cancel"
@@ -229,7 +233,8 @@ msgstr "La URL de upstream no puede contener espacios."
#: app_gateway/forms.py:60
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://"
+msgstr ""
+"Introduzca una URL de upstream válida que empiece por http:// o https://"
#: app_gateway/forms.py:70 cluster/forms.py:24 dns/forms.py:65
#: templates/app_gateway/app_gateway_list.html:95
@@ -251,25 +256,32 @@ msgstr "Grupos permitidos"
msgid "Authentication Methods"
msgstr "Métodos de autenticación"
-#: app_gateway/forms.py:137 templates/app_gateway/app_gateway_list.html:56
+#: app_gateway/forms.py:170
+#, fuzzy
+#| msgid "TOTP secret must be empty for Local Password authentication."
+msgid "User groups can only be used with local user authentication."
+msgstr ""
+"El secreto TOTP debe estar vacío para la autenticación por contraseña local."
+
+#: app_gateway/forms.py:180 templates/app_gateway/app_gateway_list.html:56
#: templates/app_gateway/application_details.html:31
#: templates/firewall/firewall_nav_tabs.html:15
msgid "Default Policy"
msgstr "Política predeterminada"
-#: app_gateway/forms.py:166 templates/app_gateway/application_details.html:105
+#: app_gateway/forms.py:209 templates/app_gateway/application_details.html:105
msgid "Route Name"
msgstr "Nombre de la ruta"
-#: app_gateway/forms.py:167 templates/app_gateway/application_details.html:106
+#: app_gateway/forms.py:210 templates/app_gateway/application_details.html:106
msgid "Path Prefix"
msgstr "Prefijo de ruta"
-#: app_gateway/forms.py:168 templates/app_gateway/application_details.html:107
+#: app_gateway/forms.py:211 templates/app_gateway/application_details.html:107
msgid "Policy"
msgstr "Política"
-#: app_gateway/forms.py:169 templates/app_gateway/application_details.html:108
+#: app_gateway/forms.py:212 templates/app_gateway/application_details.html:108
msgid "Order"
msgstr "Orden"
@@ -278,143 +290,212 @@ 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
-msgid "Bypass (public)"
-msgstr "Bypass (público)"
+#: templates/app_gateway/access_policy_type_select.html:19
+#, fuzzy
+#| msgid "Public Key"
+msgid "Public"
+msgstr "Clave pública"
-#: app_gateway/models.py:46
-msgid "One Factor"
-msgstr "Un factor"
+#: app_gateway/models.py:45
+#: templates/app_gateway/access_policy_type_select.html:30
+msgid "Protected"
+msgstr ""
-#: app_gateway/models.py:47
-msgid "Two Factor"
-msgstr "Dos factores"
-
-#: app_gateway/models.py:48 gatekeeper/models.py:108
+#: app_gateway/models.py:45 gatekeeper/models.py:108
+#: templates/app_gateway/access_policy_type_select.html:41
#: templates/gatekeeper/gatekeeper_list.html:272
msgid "Deny"
msgstr "Denegar"
-#: app_gateway/models.py:87
+#: 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:54
+#: app_gateway/views.py:55
msgid "Application Details"
msgstr "Detalles de la aplicación"
-#: app_gateway/views.py:68 templates/app_gateway/application_details.html:15
+#: app_gateway/views.py:69 templates/app_gateway/application_details.html:15
msgid "Edit Application"
msgstr "Editar aplicación"
-#: app_gateway/views.py:71
+#: app_gateway/views.py:72
msgid "Create Application"
msgstr "Crear aplicación"
-#: app_gateway/views.py:78
+#: app_gateway/views.py:79
msgid "Application saved successfully."
msgstr "Aplicación guardada correctamente."
-#: app_gateway/views.py:100
+#: app_gateway/views.py:84
+msgid ""
+"\n"
+" Application
\n"
+" Define the main details of the application you want to expose "
+"through the gateway.
\n"
+" \n"
+" - Name: A unique internal identifier for this "
+"application (e.g., \"wiki\", \"crm\"). Contains only letters, numbers, "
+"hyphens, or underscores.
\n"
+" - Display Name: A friendly, human-readable "
+"name for display purposes.
\n"
+" - Upstream: The destination URL where "
+"requests will be forwarded (e.g.,
http://10.188.18.27:3000). "
+"Must start with http:// or https://. \n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:115
msgid "Application deleted successfully."
msgstr "Aplicación eliminada correctamente."
-#: app_gateway/views.py:105 templates/app_gateway/application_details.html:18
+#: app_gateway/views.py:120 templates/app_gateway/application_details.html:18
msgid "Delete Application"
msgstr "Eliminar aplicación"
-#: app_gateway/views.py:107
+#: app_gateway/views.py:122
#, 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:123
+#: app_gateway/views.py:138
msgid "Edit Application Host"
msgstr "Editar host de aplicación"
-#: app_gateway/views.py:127
+#: app_gateway/views.py:142
msgid "Add Application Host"
msgstr "Añadir host de aplicación"
-#: app_gateway/views.py:136
+#: app_gateway/views.py:151
msgid "Application Host saved successfully."
msgstr "Host de aplicación guardado correctamente."
-#: app_gateway/views.py:159
+#: app_gateway/views.py:174
msgid "Application Host deleted successfully."
msgstr "Host de aplicación eliminado correctamente."
-#: app_gateway/views.py:164
+#: app_gateway/views.py:179
msgid "Delete Application Host"
msgstr "Eliminar host de aplicación"
-#: app_gateway/views.py:166
+#: app_gateway/views.py:181
#, 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:180
+#: app_gateway/views.py:192
+#: templates/app_gateway/access_policy_type_select.html:9
+#, fuzzy
+#| msgid "Delete Access Policy"
+msgid "Select Access Policy Type"
+msgstr "Eliminar política de acceso"
+
+#: app_gateway/views.py:207
msgid "Edit Access Policy"
msgstr "Editar política de acceso"
-#: app_gateway/views.py:183
+#: app_gateway/views.py:211
msgid "Create Access Policy"
msgstr "Crear política de acceso"
-#: app_gateway/views.py:190
+#: app_gateway/views.py:218
msgid "Access Policy saved successfully."
msgstr "Política de acceso guardada correctamente."
-#: app_gateway/views.py:212
+#: app_gateway/views.py:224
+msgid ""
+"\n"
+" Public Policy
\n"
+" A Public policy allows access to the application without "
+"requiring any authentication.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:232
+msgid ""
+"\n"
+" Deny Policy
\n"
+" A Deny policy blocks all access to the matched routes.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:240
+msgid ""
+"\n"
+" Protected Policy
\n"
+" A Protected policy requires users to authenticate before "
+"accessing the application.
\n"
+" \n"
+" - Allowed Groups: Limits access to "
+"specific user groups. Note: Using groups requires selecting an "
+"Authentication Method of type \"Local Password\".
\n"
+" - Authentication Methods: Specify which "
+"methods users can use to authenticate (e.g., Local Password, TOTP, OIDC)."
+"li>\n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:271
msgid "Access Policy deleted successfully."
msgstr "Política de acceso eliminada correctamente."
-#: app_gateway/views.py:217
+#: app_gateway/views.py:273
+msgid ""
+"Cannot delete this Access Policy because it is currently in use by an "
+"Application Route or Application Default Policy."
+msgstr ""
+
+#: app_gateway/views.py:278
msgid "Delete Access Policy"
msgstr "Eliminar política de acceso"
-#: app_gateway/views.py:219
+#: app_gateway/views.py:280
#, 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:235
+#: app_gateway/views.py:296
msgid "Edit Application Default Policy"
msgstr "Editar política predeterminada de la aplicación"
-#: app_gateway/views.py:239
+#: app_gateway/views.py:300
msgid "Set Application Default Policy"
msgstr "Establecer política predeterminada de la aplicación"
-#: app_gateway/views.py:248
+#: app_gateway/views.py:309
msgid "Application Default Policy saved successfully."
msgstr "Política predeterminada de la aplicación guardada correctamente."
-#: app_gateway/views.py:271
+#: app_gateway/views.py:332
msgid "Application Default Policy deleted successfully."
msgstr "Política predeterminada de la aplicación eliminada correctamente."
-#: app_gateway/views.py:276
+#: app_gateway/views.py:337
msgid "Delete Application Default Policy"
msgstr "Eliminar política predeterminada de la aplicación"
-#: app_gateway/views.py:278
+#: app_gateway/views.py:339
#, 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\"?"
+msgstr ""
+"¿Está seguro de que desea eliminar la política predeterminada para "
+"\"%(name)s\"?"
-#: app_gateway/views.py:296
+#: app_gateway/views.py:357
msgid "Edit Application Route"
msgstr "Editar ruta de la aplicación"
-#: app_gateway/views.py:300
+#: app_gateway/views.py:361
msgid "Add Application Route"
msgstr "Añadir ruta de la aplicación"
-#: app_gateway/views.py:309
+#: app_gateway/views.py:370
msgid "Application Route saved successfully."
msgstr "Ruta de la aplicación guardada correctamente."
-#: app_gateway/views.py:314
+#: app_gateway/views.py:375
msgid ""
"\n"
" Application Route
\n"
@@ -444,8 +525,8 @@ msgstr ""
"para esta ruta (ej: \"public_api\", \"admin_area\"). Se usa para referencias "
"y exportaciones.\n"
" Prefijo de Ruta: La ruta de la URL que "
-"activa esta ruta (ej: /api/ o /admin/). Use "
-"/ para coincidir con todas las rutas restantes.\n"
+"activa esta ruta (ej: /api/ o /admin/). Use /"
+" para coincidir con todas las rutas restantes.\n"
" Política: La Política de Acceso que se "
"aplicará cuando un usuario acceda a esta ruta.\n"
" Orden: Determina la prioridad de esta ruta "
@@ -454,15 +535,15 @@ msgstr ""
" \n"
" "
-#: app_gateway/views.py:347
+#: app_gateway/views.py:408
msgid "Application Route deleted successfully."
msgstr "Ruta de la aplicación eliminada correctamente."
-#: app_gateway/views.py:352
+#: app_gateway/views.py:413
msgid "Delete Application Route"
msgstr "Eliminar ruta de la aplicación"
-#: app_gateway/views.py:354
+#: app_gateway/views.py:415
#, 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)?"
@@ -1468,8 +1549,8 @@ msgstr ""
" Acción
\n"
" Permitir: Otorga acceso a la red/IP especificada."
"
\n"
-" Denegar: Bloqueia especificamente el acceso desde la "
-"red/IP especificada.
\n"
+" Denegar: Bloqueia especificamente el acceso desde "
+"la red/IP especificada.
\n"
" \n"
" Descripción
\n"
" Una nota opcional para ayudar a identificar esta entrada (ej: "
@@ -1925,6 +2006,28 @@ msgstr "Deshabilitado"
msgid "Edit"
msgstr "Editar"
+#: templates/app_gateway/access_policy_type_select.html:12
+msgid "Choose the type of access policy you want to create."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:20
+msgid "Allow access to everyone without authentication."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:21
+#: templates/app_gateway/access_policy_type_select.html:32
+#: templates/app_gateway/access_policy_type_select.html:43
+msgid "Select"
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:31
+msgid "Require authentication using specified methods or groups."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:42
+msgid "Deny all access."
+msgstr ""
+
#: templates/app_gateway/app_gateway_list.html:12
#: templates/app_gateway/app_gateway_list.html:30
msgid "Applications"
@@ -4202,6 +4305,15 @@ msgid "No interfaces found|No WireGuard interfaces were found to process."
msgstr ""
"No se encontraron interfaces|No hay interfaces WireGuard para procesar."
+#~ msgid "Bypass (public)"
+#~ msgstr "Bypass (público)"
+
+#~ msgid "One Factor"
+#~ msgstr "Un factor"
+
+#~ msgid "Two Factor"
+#~ msgstr "Dos factores"
+
#, fuzzy
#~| msgid "Sort Order"
#~ msgid "Priority Order"
diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo
index 4f7da4c..1f68bdb 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 aa9cc4c..f31e868 100644
--- a/locale/fr/LC_MESSAGES/django.po
+++ b/locale/fr/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-12 18:41-0300\n"
+"POT-Creation-Date: 2026-03-13 20:12-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -65,11 +65,12 @@ msgstr ""
"fonctionner immédiatement."
#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:85
-#: app_gateway/forms.py:123 app_gateway/forms.py:152 app_gateway/forms.py:193
-#: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84
-#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75
-#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254
-#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102
+#: app_gateway/forms.py:129 app_gateway/forms.py:147 app_gateway/forms.py:195
+#: app_gateway/forms.py:236 cluster/forms.py:67 cluster/forms.py:124
+#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:41
+#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224
+#: gatekeeper/forms.py:254 gatekeeper/forms.py:285
+#: routing_templates/forms.py:71 scheduler/forms.py:102
#: templates/firewall/manage_firewall_rule.html:379
#: templates/firewall/manage_firewall_settings.html:59
#: templates/firewall/manage_redirect_rule.html:84
@@ -126,16 +127,17 @@ 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:20 app_gateway/views.py:42 app_gateway/views.py:62
-#: app_gateway/views.py:92 app_gateway/views.py:115 app_gateway/views.py:150
-#: app_gateway/views.py:174 app_gateway/views.py:204 app_gateway/views.py:227
-#: app_gateway/views.py:262 app_gateway/views.py:288 app_gateway/views.py:338
-#: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114
-#: gatekeeper/views.py:23 gatekeeper/views.py:48 gatekeeper/views.py:78
-#: gatekeeper/views.py:101 gatekeeper/views.py:131 gatekeeper/views.py:154
-#: gatekeeper/views.py:198 gatekeeper/views.py:257 gatekeeper/views.py:287
-#: gatekeeper/views.py:310 gatekeeper/views.py:340 gatekeeper/views.py:363
-#: gatekeeper/views.py:412 templates/access_denied.html:9
+#: app_gateway/views.py:21 app_gateway/views.py:43 app_gateway/views.py:63
+#: app_gateway/views.py:107 app_gateway/views.py:130 app_gateway/views.py:165
+#: app_gateway/views.py:189 app_gateway/views.py:200 app_gateway/views.py:262
+#: app_gateway/views.py:288 app_gateway/views.py:323 app_gateway/views.py:349
+#: app_gateway/views.py:399 cluster/views.py:18 cluster/views.py:45
+#: cluster/views.py:114 gatekeeper/views.py:23 gatekeeper/views.py:48
+#: gatekeeper/views.py:78 gatekeeper/views.py:101 gatekeeper/views.py:131
+#: gatekeeper/views.py:154 gatekeeper/views.py:198 gatekeeper/views.py:257
+#: gatekeeper/views.py:287 gatekeeper/views.py:310 gatekeeper/views.py:340
+#: gatekeeper/views.py:363 gatekeeper/views.py:412
+#: templates/access_denied.html:9
msgid "Access Denied"
msgstr "Accès refusé"
@@ -214,10 +216,12 @@ msgstr "Nom à afficher"
msgid "Upstream"
msgstr "Upstream"
-#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:124
-#: app_gateway/forms.py:153 app_gateway/forms.py:194 gatekeeper/forms.py:42
-#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225
-#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103
+#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:130
+#: app_gateway/forms.py:148 app_gateway/forms.py:196 app_gateway/forms.py:237
+#: gatekeeper/forms.py:42 gatekeeper/forms.py:76 gatekeeper/forms.py:138
+#: gatekeeper/forms.py:225 gatekeeper/forms.py:255 gatekeeper/forms.py:286
+#: scheduler/forms.py:103
+#: templates/app_gateway/access_policy_type_select.html:50
#: templates/generic_delete_confirmation.html:19
#: templates/scheduler/scheduleprofile_form.html:203
msgid "Cancel"
@@ -251,25 +255,32 @@ msgstr "Groupes autorisés"
msgid "Authentication Methods"
msgstr "Méthodes d'authentification"
-#: app_gateway/forms.py:137 templates/app_gateway/app_gateway_list.html:56
+#: app_gateway/forms.py:170
+#, fuzzy
+#| msgid "TOTP secret must be empty for Local Password authentication."
+msgid "User groups can only be used with local user authentication."
+msgstr ""
+"Le secret TOTP doit être vide pour l'authentification par mot de passe local."
+
+#: app_gateway/forms.py:180 templates/app_gateway/app_gateway_list.html:56
#: templates/app_gateway/application_details.html:31
#: templates/firewall/firewall_nav_tabs.html:15
msgid "Default Policy"
msgstr "Politique par défaut"
-#: app_gateway/forms.py:166 templates/app_gateway/application_details.html:105
+#: app_gateway/forms.py:209 templates/app_gateway/application_details.html:105
msgid "Route Name"
msgstr "Nom de la route"
-#: app_gateway/forms.py:167 templates/app_gateway/application_details.html:106
+#: app_gateway/forms.py:210 templates/app_gateway/application_details.html:106
msgid "Path Prefix"
msgstr "Préfixe de chemin"
-#: app_gateway/forms.py:168 templates/app_gateway/application_details.html:107
+#: app_gateway/forms.py:211 templates/app_gateway/application_details.html:107
msgid "Policy"
msgstr "Politique"
-#: app_gateway/forms.py:169 templates/app_gateway/application_details.html:108
+#: app_gateway/forms.py:212 templates/app_gateway/application_details.html:108
msgid "Order"
msgstr "Ordre"
@@ -278,144 +289,213 @@ 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
-msgid "Bypass (public)"
-msgstr "Bypass (public)"
+#: templates/app_gateway/access_policy_type_select.html:19
+#, fuzzy
+#| msgid "Public Key"
+msgid "Public"
+msgstr "Clé publique"
-#: app_gateway/models.py:46
-msgid "One Factor"
-msgstr "Un facteur"
+#: app_gateway/models.py:45
+#: templates/app_gateway/access_policy_type_select.html:30
+msgid "Protected"
+msgstr ""
-#: app_gateway/models.py:47
-msgid "Two Factor"
-msgstr "Deux facteurs"
-
-#: app_gateway/models.py:48 gatekeeper/models.py:108
+#: app_gateway/models.py:45 gatekeeper/models.py:108
+#: templates/app_gateway/access_policy_type_select.html:41
#: templates/gatekeeper/gatekeeper_list.html:272
msgid "Deny"
msgstr "Refuser"
-#: app_gateway/models.py:87
+#: app_gateway/models.py:80
msgid "Route identifier, used in export (e.g.: public_area)"
msgstr ""
"Identifiant de l'itinéraire, utilisé dans l'exportation (ex : public_area)"
-#: app_gateway/views.py:54
+#: app_gateway/views.py:55
msgid "Application Details"
msgstr "Détails de l'application"
-#: app_gateway/views.py:68 templates/app_gateway/application_details.html:15
+#: app_gateway/views.py:69 templates/app_gateway/application_details.html:15
msgid "Edit Application"
msgstr "Modifier l'application"
-#: app_gateway/views.py:71
+#: app_gateway/views.py:72
msgid "Create Application"
msgstr "Créer une application"
-#: app_gateway/views.py:78
+#: app_gateway/views.py:79
msgid "Application saved successfully."
msgstr "Application enregistrée avec succès."
-#: app_gateway/views.py:100
+#: app_gateway/views.py:84
+msgid ""
+"\n"
+" Application
\n"
+" Define the main details of the application you want to expose "
+"through the gateway.
\n"
+" \n"
+" - Name: A unique internal identifier for this "
+"application (e.g., \"wiki\", \"crm\"). Contains only letters, numbers, "
+"hyphens, or underscores.
\n"
+" - Display Name: A friendly, human-readable "
+"name for display purposes.
\n"
+" - Upstream: The destination URL where "
+"requests will be forwarded (e.g.,
http://10.188.18.27:3000). "
+"Must start with http:// or https://. \n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:115
msgid "Application deleted successfully."
msgstr "Application supprimée avec succès."
-#: app_gateway/views.py:105 templates/app_gateway/application_details.html:18
+#: app_gateway/views.py:120 templates/app_gateway/application_details.html:18
msgid "Delete Application"
msgstr "Supprimer l'application"
-#: app_gateway/views.py:107
+#: app_gateway/views.py:122
#, python-format
msgid "Are you sure you want to delete the application \"%(name)s\"?"
msgstr "Êtes-vous sûr de vouloir supprimer l'application \"%(name)s\" ?"
-#: app_gateway/views.py:123
+#: app_gateway/views.py:138
msgid "Edit Application Host"
msgstr "Modifier l'hôte d'application"
-#: app_gateway/views.py:127
+#: app_gateway/views.py:142
msgid "Add Application Host"
msgstr "Ajouter un hôte d'application"
-#: app_gateway/views.py:136
+#: app_gateway/views.py:151
msgid "Application Host saved successfully."
msgstr "Hôte d'application enregistré avec succès."
-#: app_gateway/views.py:159
+#: app_gateway/views.py:174
msgid "Application Host deleted successfully."
msgstr "Hôte d'application supprimé avec succès."
-#: app_gateway/views.py:164
+#: app_gateway/views.py:179
msgid "Delete Application Host"
msgstr "Supprimer l'hôte d'application"
-#: app_gateway/views.py:166
+#: app_gateway/views.py:181
#, python-format
msgid "Are you sure you want to delete the host \"%(hostname)s\"?"
msgstr "Êtes-vous sûr de vouloir supprimer l'hôte \"%(hostname)s\" ?"
-#: app_gateway/views.py:180
+#: app_gateway/views.py:192
+#: templates/app_gateway/access_policy_type_select.html:9
+#, fuzzy
+#| msgid "Delete Access Policy"
+msgid "Select Access Policy Type"
+msgstr "Supprimer la politique d'accès"
+
+#: app_gateway/views.py:207
msgid "Edit Access Policy"
msgstr "Modifier la politique d'accès"
-#: app_gateway/views.py:183
+#: app_gateway/views.py:211
msgid "Create Access Policy"
msgstr "Créer une politique d'accès"
-#: app_gateway/views.py:190
+#: app_gateway/views.py:218
msgid "Access Policy saved successfully."
msgstr "Politique d'accès enregistrée avec succès."
-#: app_gateway/views.py:212
+#: app_gateway/views.py:224
+msgid ""
+"\n"
+" Public Policy
\n"
+" A Public policy allows access to the application without "
+"requiring any authentication.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:232
+msgid ""
+"\n"
+" Deny Policy
\n"
+" A Deny policy blocks all access to the matched routes.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:240
+msgid ""
+"\n"
+" Protected Policy
\n"
+" A Protected policy requires users to authenticate before "
+"accessing the application.
\n"
+" \n"
+" - Allowed Groups: Limits access to "
+"specific user groups. Note: Using groups requires selecting an "
+"Authentication Method of type \"Local Password\".
\n"
+" - Authentication Methods: Specify which "
+"methods users can use to authenticate (e.g., Local Password, TOTP, OIDC)."
+"li>\n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:271
msgid "Access Policy deleted successfully."
msgstr "Politique d'accès supprimée avec succès."
-#: app_gateway/views.py:217
+#: app_gateway/views.py:273
+msgid ""
+"Cannot delete this Access Policy because it is currently in use by an "
+"Application Route or Application Default Policy."
+msgstr ""
+
+#: app_gateway/views.py:278
msgid "Delete Access Policy"
msgstr "Supprimer la politique d'accès"
-#: app_gateway/views.py:219
+#: app_gateway/views.py:280
#, python-format
msgid "Are you sure you want to delete the access policy \"%(name)s\"?"
msgstr "Êtes-vous sûr de vouloir supprimer la politique d'accès \"%(name)s\" ?"
-#: app_gateway/views.py:235
+#: app_gateway/views.py:296
msgid "Edit Application Default Policy"
msgstr "Modifier la politique par défaut de l'application"
-#: app_gateway/views.py:239
+#: app_gateway/views.py:300
msgid "Set Application Default Policy"
msgstr "Définir la politique par défaut de l'application"
-#: app_gateway/views.py:248
+#: app_gateway/views.py:309
msgid "Application Default Policy saved successfully."
msgstr "Politique par défaut de l'application enregistrée avec succès."
-#: app_gateway/views.py:271
+#: app_gateway/views.py:332
msgid "Application Default Policy deleted successfully."
msgstr "Politique par défaut de l'application supprimée avec succès."
-#: app_gateway/views.py:276
+#: app_gateway/views.py:337
msgid "Delete Application Default Policy"
msgstr "Supprimer la politique par défaut de l'application"
-#: app_gateway/views.py:278
+#: app_gateway/views.py:339
#, python-format
msgid "Are you sure you want to remove the default policy for \"%(name)s\"?"
-msgstr "Êtes-vous sûr de vouloir supprimer la politique par défaut pour \"%(name)s\" ?"
+msgstr ""
+"Êtes-vous sûr de vouloir supprimer la politique par défaut pour "
+"\"%(name)s\" ?"
-#: app_gateway/views.py:296
+#: app_gateway/views.py:357
msgid "Edit Application Route"
msgstr "Modifier la route de l'application"
-#: app_gateway/views.py:300
+#: app_gateway/views.py:361
msgid "Add Application Route"
msgstr "Ajouter une route d'application"
-#: app_gateway/views.py:309
+#: app_gateway/views.py:370
msgid "Application Route saved successfully."
msgstr "Route d'application enregistrée avec succès."
-#: app_gateway/views.py:314
+#: app_gateway/views.py:375
msgid ""
"\n"
" Application Route
\n"
@@ -457,15 +537,15 @@ msgstr ""
" \n"
" "
-#: app_gateway/views.py:347
+#: app_gateway/views.py:408
msgid "Application Route deleted successfully."
msgstr "Route d'application supprimée avec succès."
-#: app_gateway/views.py:352
+#: app_gateway/views.py:413
msgid "Delete Application Route"
msgstr "Supprimer la route d'application"
-#: app_gateway/views.py:354
+#: app_gateway/views.py:415
#, python-format
msgid "Are you sure you want to delete the route \"%(name)s\" (%(path)s)?"
msgstr "Êtes-vous sûr de vouloir supprimer la route \"%(name)s\" (%(path)s) ?"
@@ -1931,6 +2011,28 @@ msgstr "Désactivé"
msgid "Edit"
msgstr "Modifier"
+#: templates/app_gateway/access_policy_type_select.html:12
+msgid "Choose the type of access policy you want to create."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:20
+msgid "Allow access to everyone without authentication."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:21
+#: templates/app_gateway/access_policy_type_select.html:32
+#: templates/app_gateway/access_policy_type_select.html:43
+msgid "Select"
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:31
+msgid "Require authentication using specified methods or groups."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:42
+msgid "Deny all access."
+msgstr ""
+
#: templates/app_gateway/app_gateway_list.html:12
#: templates/app_gateway/app_gateway_list.html:30
msgid "Applications"
@@ -4225,6 +4327,15 @@ msgstr ""
msgid "No interfaces found|No WireGuard interfaces were found to process."
msgstr "Aucune interface trouvée | Aucune interface WireGuard à traiter."
+#~ msgid "Bypass (public)"
+#~ msgstr "Bypass (public)"
+
+#~ msgid "One Factor"
+#~ msgstr "Un facteur"
+
+#~ msgid "Two Factor"
+#~ msgstr "Deux facteurs"
+
#, fuzzy
#~| msgid "Sort Order"
#~ msgid "Priority Order"
diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo
index 7095988..f29a8a3 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 6fb9006..10e010b 100644
--- a/locale/pt_BR/LC_MESSAGES/django.po
+++ b/locale/pt_BR/LC_MESSAGES/django.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-03-12 18:41-0300\n"
+"POT-Creation-Date: 2026-03-13 20:12-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -65,11 +65,12 @@ msgstr ""
"funcionar imediatamente."
#: api_v2/forms.py:63 app_gateway/forms.py:40 app_gateway/forms.py:85
-#: app_gateway/forms.py:123 app_gateway/forms.py:152 app_gateway/forms.py:193
-#: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84
-#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75
-#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254
-#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102
+#: app_gateway/forms.py:129 app_gateway/forms.py:147 app_gateway/forms.py:195
+#: app_gateway/forms.py:236 cluster/forms.py:67 cluster/forms.py:124
+#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:41
+#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224
+#: gatekeeper/forms.py:254 gatekeeper/forms.py:285
+#: routing_templates/forms.py:71 scheduler/forms.py:102
#: templates/firewall/manage_firewall_rule.html:379
#: templates/firewall/manage_firewall_settings.html:59
#: templates/firewall/manage_redirect_rule.html:84
@@ -126,16 +127,17 @@ 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:20 app_gateway/views.py:42 app_gateway/views.py:62
-#: app_gateway/views.py:92 app_gateway/views.py:115 app_gateway/views.py:150
-#: app_gateway/views.py:174 app_gateway/views.py:204 app_gateway/views.py:227
-#: app_gateway/views.py:262 app_gateway/views.py:288 app_gateway/views.py:338
-#: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114
-#: gatekeeper/views.py:23 gatekeeper/views.py:48 gatekeeper/views.py:78
-#: gatekeeper/views.py:101 gatekeeper/views.py:131 gatekeeper/views.py:154
-#: gatekeeper/views.py:198 gatekeeper/views.py:257 gatekeeper/views.py:287
-#: gatekeeper/views.py:310 gatekeeper/views.py:340 gatekeeper/views.py:363
-#: gatekeeper/views.py:412 templates/access_denied.html:9
+#: app_gateway/views.py:21 app_gateway/views.py:43 app_gateway/views.py:63
+#: app_gateway/views.py:107 app_gateway/views.py:130 app_gateway/views.py:165
+#: app_gateway/views.py:189 app_gateway/views.py:200 app_gateway/views.py:262
+#: app_gateway/views.py:288 app_gateway/views.py:323 app_gateway/views.py:349
+#: app_gateway/views.py:399 cluster/views.py:18 cluster/views.py:45
+#: cluster/views.py:114 gatekeeper/views.py:23 gatekeeper/views.py:48
+#: gatekeeper/views.py:78 gatekeeper/views.py:101 gatekeeper/views.py:131
+#: gatekeeper/views.py:154 gatekeeper/views.py:198 gatekeeper/views.py:257
+#: gatekeeper/views.py:287 gatekeeper/views.py:310 gatekeeper/views.py:340
+#: gatekeeper/views.py:363 gatekeeper/views.py:412
+#: templates/access_denied.html:9
msgid "Access Denied"
msgstr "Acesso Negado"
@@ -214,10 +216,12 @@ msgstr "Nome de Exibição"
msgid "Upstream"
msgstr "Upstream"
-#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:124
-#: app_gateway/forms.py:153 app_gateway/forms.py:194 gatekeeper/forms.py:42
-#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225
-#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103
+#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:130
+#: app_gateway/forms.py:148 app_gateway/forms.py:196 app_gateway/forms.py:237
+#: gatekeeper/forms.py:42 gatekeeper/forms.py:76 gatekeeper/forms.py:138
+#: gatekeeper/forms.py:225 gatekeeper/forms.py:255 gatekeeper/forms.py:286
+#: scheduler/forms.py:103
+#: templates/app_gateway/access_policy_type_select.html:50
#: templates/generic_delete_confirmation.html:19
#: templates/scheduler/scheduleprofile_form.html:203
msgid "Cancel"
@@ -251,25 +255,31 @@ msgstr "Grupos Permitidos"
msgid "Authentication Methods"
msgstr "Métodos de Autenticação"
-#: app_gateway/forms.py:137 templates/app_gateway/app_gateway_list.html:56
+#: app_gateway/forms.py:170
+#, fuzzy
+#| msgid "TOTP secret must be empty for Local Password authentication."
+msgid "User groups can only be used with local user authentication."
+msgstr "O segredo TOTP deve estar vazio para autenticação por Senha Local."
+
+#: app_gateway/forms.py:180 templates/app_gateway/app_gateway_list.html:56
#: templates/app_gateway/application_details.html:31
#: templates/firewall/firewall_nav_tabs.html:15
msgid "Default Policy"
msgstr "Política Padrão"
-#: app_gateway/forms.py:166 templates/app_gateway/application_details.html:105
+#: app_gateway/forms.py:209 templates/app_gateway/application_details.html:105
msgid "Route Name"
msgstr "Nome da Rota"
-#: app_gateway/forms.py:167 templates/app_gateway/application_details.html:106
+#: app_gateway/forms.py:210 templates/app_gateway/application_details.html:106
msgid "Path Prefix"
msgstr "Prefixo do Caminho"
-#: app_gateway/forms.py:168 templates/app_gateway/application_details.html:107
+#: app_gateway/forms.py:211 templates/app_gateway/application_details.html:107
msgid "Policy"
msgstr "Política"
-#: app_gateway/forms.py:169 templates/app_gateway/application_details.html:108
+#: app_gateway/forms.py:212 templates/app_gateway/application_details.html:108
msgid "Order"
msgstr "Ordem"
@@ -278,143 +288,210 @@ 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
-msgid "Bypass (public)"
-msgstr "Bypass (público)"
+#: templates/app_gateway/access_policy_type_select.html:19
+#, fuzzy
+#| msgid "Public Key"
+msgid "Public"
+msgstr "Chave Pública"
-#: app_gateway/models.py:46
-msgid "One Factor"
-msgstr "Um Fator"
+#: app_gateway/models.py:45
+#: templates/app_gateway/access_policy_type_select.html:30
+msgid "Protected"
+msgstr ""
-#: app_gateway/models.py:47
-msgid "Two Factor"
-msgstr "Dois Fatores"
-
-#: app_gateway/models.py:48 gatekeeper/models.py:108
+#: app_gateway/models.py:45 gatekeeper/models.py:108
+#: templates/app_gateway/access_policy_type_select.html:41
#: templates/gatekeeper/gatekeeper_list.html:272
msgid "Deny"
msgstr "Negar"
-#: app_gateway/models.py:87
+#: 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:54
+#: app_gateway/views.py:55
msgid "Application Details"
msgstr "Detalhes da Aplicação"
-#: app_gateway/views.py:68 templates/app_gateway/application_details.html:15
+#: app_gateway/views.py:69 templates/app_gateway/application_details.html:15
msgid "Edit Application"
msgstr "Editar Aplicação"
-#: app_gateway/views.py:71
+#: app_gateway/views.py:72
msgid "Create Application"
msgstr "Criar Aplicação"
-#: app_gateway/views.py:78
+#: app_gateway/views.py:79
msgid "Application saved successfully."
msgstr "Aplicação salva com sucesso."
-#: app_gateway/views.py:100
+#: app_gateway/views.py:84
+msgid ""
+"\n"
+" Application
\n"
+" Define the main details of the application you want to expose "
+"through the gateway.
\n"
+" \n"
+" - Name: A unique internal identifier for this "
+"application (e.g., \"wiki\", \"crm\"). Contains only letters, numbers, "
+"hyphens, or underscores.
\n"
+" - Display Name: A friendly, human-readable "
+"name for display purposes.
\n"
+" - Upstream: The destination URL where "
+"requests will be forwarded (e.g.,
http://10.188.18.27:3000). "
+"Must start with http:// or https://. \n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:115
msgid "Application deleted successfully."
msgstr "Aplicação excluída com sucesso."
-#: app_gateway/views.py:105 templates/app_gateway/application_details.html:18
+#: app_gateway/views.py:120 templates/app_gateway/application_details.html:18
msgid "Delete Application"
msgstr "Excluir Aplicação"
-#: app_gateway/views.py:107
+#: app_gateway/views.py:122
#, 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:123
+#: app_gateway/views.py:138
msgid "Edit Application Host"
msgstr "Editar Host da Aplicação"
-#: app_gateway/views.py:127
+#: app_gateway/views.py:142
msgid "Add Application Host"
msgstr "Adicionar Host da Aplicação"
-#: app_gateway/views.py:136
+#: app_gateway/views.py:151
msgid "Application Host saved successfully."
msgstr "Host da Aplicação salvo com sucesso."
-#: app_gateway/views.py:159
+#: app_gateway/views.py:174
msgid "Application Host deleted successfully."
msgstr "Host da Aplicação excluído com sucesso."
-#: app_gateway/views.py:164
+#: app_gateway/views.py:179
msgid "Delete Application Host"
msgstr "Excluir Host da Aplicação"
-#: app_gateway/views.py:166
+#: app_gateway/views.py:181
#, 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:180
+#: app_gateway/views.py:192
+#: templates/app_gateway/access_policy_type_select.html:9
+#, fuzzy
+#| msgid "Delete Access Policy"
+msgid "Select Access Policy Type"
+msgstr "Excluir Política de Acesso"
+
+#: app_gateway/views.py:207
msgid "Edit Access Policy"
msgstr "Editar Política de Acesso"
-#: app_gateway/views.py:183
+#: app_gateway/views.py:211
msgid "Create Access Policy"
msgstr "Criar Política de Acesso"
-#: app_gateway/views.py:190
+#: app_gateway/views.py:218
msgid "Access Policy saved successfully."
msgstr "Política de Acesso salva com sucesso."
-#: app_gateway/views.py:212
+#: app_gateway/views.py:224
+msgid ""
+"\n"
+" Public Policy
\n"
+" A Public policy allows access to the application without "
+"requiring any authentication.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:232
+msgid ""
+"\n"
+" Deny Policy
\n"
+" A Deny policy blocks all access to the matched routes.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:240
+msgid ""
+"\n"
+" Protected Policy
\n"
+" A Protected policy requires users to authenticate before "
+"accessing the application.
\n"
+" \n"
+" - Allowed Groups: Limits access to "
+"specific user groups. Note: Using groups requires selecting an "
+"Authentication Method of type \"Local Password\".
\n"
+" - Authentication Methods: Specify which "
+"methods users can use to authenticate (e.g., Local Password, TOTP, OIDC)."
+"li>\n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:271
msgid "Access Policy deleted successfully."
msgstr "Política de Acesso excluída com sucesso."
-#: app_gateway/views.py:217
+#: app_gateway/views.py:273
+msgid ""
+"Cannot delete this Access Policy because it is currently in use by an "
+"Application Route or Application Default Policy."
+msgstr ""
+
+#: app_gateway/views.py:278
msgid "Delete Access Policy"
msgstr "Excluir Política de Acesso"
-#: app_gateway/views.py:219
+#: app_gateway/views.py:280
#, 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:235
+#: app_gateway/views.py:296
msgid "Edit Application Default Policy"
msgstr "Editar Política Padrão da Aplicação"
-#: app_gateway/views.py:239
+#: app_gateway/views.py:300
msgid "Set Application Default Policy"
msgstr "Configurar Política Padrão da Aplicação"
-#: app_gateway/views.py:248
+#: app_gateway/views.py:309
msgid "Application Default Policy saved successfully."
msgstr "Política Padrão da Aplicação salva com sucesso."
-#: app_gateway/views.py:271
+#: app_gateway/views.py:332
msgid "Application Default Policy deleted successfully."
msgstr "Política Padrão da Aplicação excluída com sucesso."
-#: app_gateway/views.py:276
+#: app_gateway/views.py:337
msgid "Delete Application Default Policy"
msgstr "Excluir Política Padrão da Aplicação"
-#: app_gateway/views.py:278
+#: app_gateway/views.py:339
#, 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:296
+#: app_gateway/views.py:357
msgid "Edit Application Route"
msgstr "Editar Rota da Aplicação"
-#: app_gateway/views.py:300
+#: app_gateway/views.py:361
msgid "Add Application Route"
msgstr "Adicionar Rota da Aplicação"
-#: app_gateway/views.py:309
+#: app_gateway/views.py:370
msgid "Application Route saved successfully."
msgstr "Rota da Aplicação salva com sucesso."
-#: app_gateway/views.py:314
+#: app_gateway/views.py:375
msgid ""
"\n"
" Application Route
\n"
@@ -454,15 +531,15 @@ msgstr ""
" \n"
" "
-#: app_gateway/views.py:347
+#: app_gateway/views.py:408
msgid "Application Route deleted successfully."
msgstr "Rota da Aplicação excluída com sucesso."
-#: app_gateway/views.py:352
+#: app_gateway/views.py:413
msgid "Delete Application Route"
msgstr "Excluir Rota da Aplicação"
-#: app_gateway/views.py:354
+#: app_gateway/views.py:415
#, 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)?"
@@ -1453,9 +1530,9 @@ msgstr ""
" \n"
" Endereço IP e Prefixo
\n"
" Insira um único endereço IP (ex: 192.168.1.50) ou um endereço de "
-"rede. Use o comprimento do prefixo para notação CIDR (ex: 24 para uma rede "
-"/24). Deixe o prefixo em branco para um único host (/32 para IPv4, /128 "
-"para IPv6).
\n"
+"rede. Use o comprimento do prefixo para notação CIDR (ex: 24 para uma rede /"
+"24). Deixe o prefixo em branco para um único host (/32 para IPv4, /128 para "
+"IPv6).
\n"
" \n"
" Ação
\n"
" Permitir: Concede acesso à rede/IP especificado."
@@ -1919,6 +1996,28 @@ msgstr "Desabilitado"
msgid "Edit"
msgstr "Editar"
+#: templates/app_gateway/access_policy_type_select.html:12
+msgid "Choose the type of access policy you want to create."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:20
+msgid "Allow access to everyone without authentication."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:21
+#: templates/app_gateway/access_policy_type_select.html:32
+#: templates/app_gateway/access_policy_type_select.html:43
+msgid "Select"
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:31
+msgid "Require authentication using specified methods or groups."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:42
+msgid "Deny all access."
+msgstr ""
+
#: templates/app_gateway/app_gateway_list.html:12
#: templates/app_gateway/app_gateway_list.html:30
msgid "Applications"
@@ -4213,6 +4312,15 @@ msgstr ""
"Nenhuma interface encontrada|Nenhuma interface WireGuard foi encontrada para "
"processar."
+#~ msgid "Bypass (public)"
+#~ msgstr "Bypass (público)"
+
+#~ msgid "One Factor"
+#~ msgstr "Um Fator"
+
+#~ msgid "Two Factor"
+#~ msgstr "Dois Fatores"
+
#, fuzzy
#~| msgid "Sort Order"
#~ msgid "Priority Order"
diff --git a/locale/sk/LC_MESSAGES/django.mo b/locale/sk/LC_MESSAGES/django.mo
index f1578d6..5ba55fd 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 8d56541..5e5b3d9 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-12 18:41-0300\n"
+"POT-Creation-Date: 2026-03-13 20:12-0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -65,11 +65,12 @@ 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:85
-#: app_gateway/forms.py:123 app_gateway/forms.py:152 app_gateway/forms.py:193
-#: cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 dns/forms.py:84
-#: dns/forms.py:153 gatekeeper/forms.py:41 gatekeeper/forms.py:75
-#: gatekeeper/forms.py:137 gatekeeper/forms.py:224 gatekeeper/forms.py:254
-#: gatekeeper/forms.py:285 routing_templates/forms.py:71 scheduler/forms.py:102
+#: app_gateway/forms.py:129 app_gateway/forms.py:147 app_gateway/forms.py:195
+#: app_gateway/forms.py:236 cluster/forms.py:67 cluster/forms.py:124
+#: dns/forms.py:37 dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:41
+#: gatekeeper/forms.py:75 gatekeeper/forms.py:137 gatekeeper/forms.py:224
+#: gatekeeper/forms.py:254 gatekeeper/forms.py:285
+#: routing_templates/forms.py:71 scheduler/forms.py:102
#: templates/firewall/manage_firewall_rule.html:379
#: templates/firewall/manage_firewall_settings.html:59
#: templates/firewall/manage_redirect_rule.html:84
@@ -126,16 +127,17 @@ 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:20 app_gateway/views.py:42 app_gateway/views.py:62
-#: app_gateway/views.py:92 app_gateway/views.py:115 app_gateway/views.py:150
-#: app_gateway/views.py:174 app_gateway/views.py:204 app_gateway/views.py:227
-#: app_gateway/views.py:262 app_gateway/views.py:288 app_gateway/views.py:338
-#: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114
-#: gatekeeper/views.py:23 gatekeeper/views.py:48 gatekeeper/views.py:78
-#: gatekeeper/views.py:101 gatekeeper/views.py:131 gatekeeper/views.py:154
-#: gatekeeper/views.py:198 gatekeeper/views.py:257 gatekeeper/views.py:287
-#: gatekeeper/views.py:310 gatekeeper/views.py:340 gatekeeper/views.py:363
-#: gatekeeper/views.py:412 templates/access_denied.html:9
+#: app_gateway/views.py:21 app_gateway/views.py:43 app_gateway/views.py:63
+#: app_gateway/views.py:107 app_gateway/views.py:130 app_gateway/views.py:165
+#: app_gateway/views.py:189 app_gateway/views.py:200 app_gateway/views.py:262
+#: app_gateway/views.py:288 app_gateway/views.py:323 app_gateway/views.py:349
+#: app_gateway/views.py:399 cluster/views.py:18 cluster/views.py:45
+#: cluster/views.py:114 gatekeeper/views.py:23 gatekeeper/views.py:48
+#: gatekeeper/views.py:78 gatekeeper/views.py:101 gatekeeper/views.py:131
+#: gatekeeper/views.py:154 gatekeeper/views.py:198 gatekeeper/views.py:257
+#: gatekeeper/views.py:287 gatekeeper/views.py:310 gatekeeper/views.py:340
+#: gatekeeper/views.py:363 gatekeeper/views.py:412
+#: templates/access_denied.html:9
msgid "Access Denied"
msgstr "Prístup zamietnutý"
@@ -214,10 +216,12 @@ msgstr "Zobrazovací názov"
msgid "Upstream"
msgstr "Upstream"
-#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:124
-#: app_gateway/forms.py:153 app_gateway/forms.py:194 gatekeeper/forms.py:42
-#: gatekeeper/forms.py:76 gatekeeper/forms.py:138 gatekeeper/forms.py:225
-#: gatekeeper/forms.py:255 gatekeeper/forms.py:286 scheduler/forms.py:103
+#: app_gateway/forms.py:41 app_gateway/forms.py:86 app_gateway/forms.py:130
+#: app_gateway/forms.py:148 app_gateway/forms.py:196 app_gateway/forms.py:237
+#: gatekeeper/forms.py:42 gatekeeper/forms.py:76 gatekeeper/forms.py:138
+#: gatekeeper/forms.py:225 gatekeeper/forms.py:255 gatekeeper/forms.py:286
+#: scheduler/forms.py:103
+#: templates/app_gateway/access_policy_type_select.html:50
#: templates/generic_delete_confirmation.html:19
#: templates/scheduler/scheduleprofile_form.html:203
msgid "Cancel"
@@ -229,7 +233,8 @@ msgstr "URL adresa upstream nemôže obsahovať medzery."
#: app_gateway/forms.py:60
msgid "Enter a valid upstream URL starting with http:// or https://"
-msgstr "Zadajte platnú URL adresu upstream začínajúcu na http:// alebo https://"
+msgstr ""
+"Zadajte platnú URL adresu upstream začínajúcu na http:// alebo https://"
#: app_gateway/forms.py:70 cluster/forms.py:24 dns/forms.py:65
#: templates/app_gateway/app_gateway_list.html:95
@@ -251,25 +256,31 @@ msgstr "Povolené skupiny"
msgid "Authentication Methods"
msgstr "Metódy autentifikácie"
-#: app_gateway/forms.py:137 templates/app_gateway/app_gateway_list.html:56
+#: app_gateway/forms.py:170
+#, fuzzy
+#| msgid "TOTP secret must be empty for Local Password authentication."
+msgid "User groups can only be used with local user authentication."
+msgstr "TOTP tajomstvo musí byť prázdne pre autentifikáciu miestnym heslom."
+
+#: app_gateway/forms.py:180 templates/app_gateway/app_gateway_list.html:56
#: templates/app_gateway/application_details.html:31
#: templates/firewall/firewall_nav_tabs.html:15
msgid "Default Policy"
msgstr "Predvolená politika"
-#: app_gateway/forms.py:166 templates/app_gateway/application_details.html:105
+#: app_gateway/forms.py:209 templates/app_gateway/application_details.html:105
msgid "Route Name"
msgstr "Názov trasy"
-#: app_gateway/forms.py:167 templates/app_gateway/application_details.html:106
+#: app_gateway/forms.py:210 templates/app_gateway/application_details.html:106
msgid "Path Prefix"
msgstr "Prefix cesty"
-#: app_gateway/forms.py:168 templates/app_gateway/application_details.html:107
+#: app_gateway/forms.py:211 templates/app_gateway/application_details.html:107
msgid "Policy"
msgstr "Politika"
-#: app_gateway/forms.py:169 templates/app_gateway/application_details.html:108
+#: app_gateway/forms.py:212 templates/app_gateway/application_details.html:108
msgid "Order"
msgstr "Poradie"
@@ -278,143 +289,210 @@ 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
-msgid "Bypass (public)"
-msgstr "Bypass (verejné)"
+#: templates/app_gateway/access_policy_type_select.html:19
+#, fuzzy
+#| msgid "Public Key"
+msgid "Public"
+msgstr "Verejný kľúč"
-#: app_gateway/models.py:46
-msgid "One Factor"
-msgstr "Jeden faktor"
+#: app_gateway/models.py:45
+#: templates/app_gateway/access_policy_type_select.html:30
+msgid "Protected"
+msgstr ""
-#: app_gateway/models.py:47
-msgid "Two Factor"
-msgstr "Dva faktory"
-
-#: app_gateway/models.py:48 gatekeeper/models.py:108
+#: app_gateway/models.py:45 gatekeeper/models.py:108
+#: templates/app_gateway/access_policy_type_select.html:41
#: templates/gatekeeper/gatekeeper_list.html:272
msgid "Deny"
msgstr "Odmietnuť"
-#: app_gateway/models.py:87
+#: app_gateway/models.py:80
msgid "Route identifier, used in export (e.g.: public_area)"
msgstr "Identifikátor trasy používaný pri exporte (napr.: public_area)"
-#: app_gateway/views.py:54
+#: app_gateway/views.py:55
msgid "Application Details"
msgstr "Detaily aplikácie"
-#: app_gateway/views.py:68 templates/app_gateway/application_details.html:15
+#: app_gateway/views.py:69 templates/app_gateway/application_details.html:15
msgid "Edit Application"
msgstr "Upraviť aplikáciu"
-#: app_gateway/views.py:71
+#: app_gateway/views.py:72
msgid "Create Application"
msgstr "Vytvoriť aplikáciu"
-#: app_gateway/views.py:78
+#: app_gateway/views.py:79
msgid "Application saved successfully."
msgstr "Aplikácia bola úspešne uložená."
-#: app_gateway/views.py:100
+#: app_gateway/views.py:84
+msgid ""
+"\n"
+" Application
\n"
+" Define the main details of the application you want to expose "
+"through the gateway.
\n"
+" \n"
+" - Name: A unique internal identifier for this "
+"application (e.g., \"wiki\", \"crm\"). Contains only letters, numbers, "
+"hyphens, or underscores.
\n"
+" - Display Name: A friendly, human-readable "
+"name for display purposes.
\n"
+" - Upstream: The destination URL where "
+"requests will be forwarded (e.g.,
http://10.188.18.27:3000). "
+"Must start with http:// or https://. \n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:115
msgid "Application deleted successfully."
msgstr "Aplikácia bola úspešne odstránená."
-#: app_gateway/views.py:105 templates/app_gateway/application_details.html:18
+#: app_gateway/views.py:120 templates/app_gateway/application_details.html:18
msgid "Delete Application"
msgstr "Odstrániť aplikáciu"
-#: app_gateway/views.py:107
+#: app_gateway/views.py:122
#, 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:123
+#: app_gateway/views.py:138
msgid "Edit Application Host"
msgstr "Upraviť hostiteľa aplikácie"
-#: app_gateway/views.py:127
+#: app_gateway/views.py:142
msgid "Add Application Host"
msgstr "Pridať hostiteľa aplikácie"
-#: app_gateway/views.py:136
+#: app_gateway/views.py:151
msgid "Application Host saved successfully."
msgstr "Hostiteľ aplikácie bol úspešne uložený."
-#: app_gateway/views.py:159
+#: app_gateway/views.py:174
msgid "Application Host deleted successfully."
msgstr "Hostiteľ aplikácie bol úspešne odstránený."
-#: app_gateway/views.py:164
+#: app_gateway/views.py:179
msgid "Delete Application Host"
msgstr "Odstrániť hostiteľa aplikácie"
-#: app_gateway/views.py:166
+#: app_gateway/views.py:181
#, 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:180
+#: app_gateway/views.py:192
+#: templates/app_gateway/access_policy_type_select.html:9
+#, fuzzy
+#| msgid "Delete Access Policy"
+msgid "Select Access Policy Type"
+msgstr "Odstrániť politiku prístupu"
+
+#: app_gateway/views.py:207
msgid "Edit Access Policy"
msgstr "Upraviť politiku prístupu"
-#: app_gateway/views.py:183
+#: app_gateway/views.py:211
msgid "Create Access Policy"
msgstr "Vytvoriť politiku prístupu"
-#: app_gateway/views.py:190
+#: app_gateway/views.py:218
msgid "Access Policy saved successfully."
msgstr "Politika prístupu bola úspešne uložená."
-#: app_gateway/views.py:212
+#: app_gateway/views.py:224
+msgid ""
+"\n"
+" Public Policy
\n"
+" A Public policy allows access to the application without "
+"requiring any authentication.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:232
+msgid ""
+"\n"
+" Deny Policy
\n"
+" A Deny policy blocks all access to the matched routes.
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:240
+msgid ""
+"\n"
+" Protected Policy
\n"
+" A Protected policy requires users to authenticate before "
+"accessing the application.
\n"
+" \n"
+" - Allowed Groups: Limits access to "
+"specific user groups. Note: Using groups requires selecting an "
+"Authentication Method of type \"Local Password\".
\n"
+" - Authentication Methods: Specify which "
+"methods users can use to authenticate (e.g., Local Password, TOTP, OIDC)."
+"li>\n"
+"
\n"
+" "
+msgstr ""
+
+#: app_gateway/views.py:271
msgid "Access Policy deleted successfully."
msgstr "Politika prístupu bola úspešne odstránená."
-#: app_gateway/views.py:217
+#: app_gateway/views.py:273
+msgid ""
+"Cannot delete this Access Policy because it is currently in use by an "
+"Application Route or Application Default Policy."
+msgstr ""
+
+#: app_gateway/views.py:278
msgid "Delete Access Policy"
msgstr "Odstrániť politiku prístupu"
-#: app_gateway/views.py:219
+#: app_gateway/views.py:280
#, 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:235
+#: app_gateway/views.py:296
msgid "Edit Application Default Policy"
msgstr "Upraviť predvolenú politiku aplikácie"
-#: app_gateway/views.py:239
+#: app_gateway/views.py:300
msgid "Set Application Default Policy"
msgstr "Nastaviť predvolenú politiku aplikácie"
-#: app_gateway/views.py:248
+#: app_gateway/views.py:309
msgid "Application Default Policy saved successfully."
msgstr "Predvolená politika aplikácie bola úspešne uložená."
-#: app_gateway/views.py:271
+#: app_gateway/views.py:332
msgid "Application Default Policy deleted successfully."
msgstr "Predvolená politika aplikácie bola úspešne odstránená."
-#: app_gateway/views.py:276
+#: app_gateway/views.py:337
msgid "Delete Application Default Policy"
msgstr "Odstrániť predvolenú politiku aplikácie"
-#: app_gateway/views.py:278
+#: app_gateway/views.py:339
#, 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:296
+#: app_gateway/views.py:357
msgid "Edit Application Route"
msgstr "Upraviť trasu aplikácie"
-#: app_gateway/views.py:300
+#: app_gateway/views.py:361
msgid "Add Application Route"
msgstr "Pridať trasu aplikácie"
-#: app_gateway/views.py:309
+#: app_gateway/views.py:370
msgid "Application Route saved successfully."
msgstr "Trasa aplikácie bola úspešne uložená."
-#: app_gateway/views.py:314
+#: app_gateway/views.py:375
msgid ""
"\n"
" Application Route
\n"
@@ -441,11 +519,11 @@ msgstr ""
"vyžaduje špecifickú politiku prístupu.
\n"
" \n"
" - Názov trasy: Interný identifikátor pre túto "
-"trasu (napr. „public_api“, „admin_area“). Používa sa na referenciu a "
-"exporty.
\n"
+"trasu (napr. „public_api“, „admin_area“). Používa sa na referenciu a exporty."
+"\n"
" - Prefix cesty: Cesta URL, ktorá spúšťa túto "
-"trasu (napr.
/api/ alebo /admin/). Použite "
-"/ na zhodu so všetkými zostávajúcimi cestami. \n"
+"trasu (napr. /api/ alebo /admin/). Použite /"
+" na zhodu so všetkými zostávajúcimi cestami.\n"
" - Politika: Politika prístupu, ktorá sa "
"vynúti, keď používateľ pristúpi k tejto ceste.
\n"
" - Poradie: Určuje prioritu tejto trasy pri "
@@ -454,15 +532,15 @@ msgstr ""
"
\n"
" "
-#: app_gateway/views.py:347
+#: app_gateway/views.py:408
msgid "Application Route deleted successfully."
msgstr "Trasa aplikácie bola úspešne odstránená."
-#: app_gateway/views.py:352
+#: app_gateway/views.py:413
msgid "Delete Application Route"
msgstr "Odstrániť trasu aplikácie"
-#: app_gateway/views.py:354
+#: app_gateway/views.py:415
#, 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)?"
@@ -1450,7 +1528,8 @@ msgstr ""
"IPv6).\n"
" \n"
" Akcia
\n"
-" Povoliť: Udeľuje prístup k zadanej IP/sieti.
\n"
+"
Povoliť: Udeľuje prístup k zadanej IP/sieti."
+"
\n"
" Odmietnuť: Špecificky blokuje prístup zo zadanej IP/"
"siete.
\n"
" \n"
@@ -1896,6 +1975,28 @@ msgstr "Zakázané"
msgid "Edit"
msgstr "Upraviť"
+#: templates/app_gateway/access_policy_type_select.html:12
+msgid "Choose the type of access policy you want to create."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:20
+msgid "Allow access to everyone without authentication."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:21
+#: templates/app_gateway/access_policy_type_select.html:32
+#: templates/app_gateway/access_policy_type_select.html:43
+msgid "Select"
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:31
+msgid "Require authentication using specified methods or groups."
+msgstr ""
+
+#: templates/app_gateway/access_policy_type_select.html:42
+msgid "Deny all access."
+msgstr ""
+
#: templates/app_gateway/app_gateway_list.html:12
#: templates/app_gateway/app_gateway_list.html:30
msgid "Applications"
@@ -4180,6 +4281,15 @@ msgstr ""
"Neboli nájdené rozhrania|Neboli nájdené žiadne WireGuard rozhrania na "
"spracovanie."
+#~ msgid "Bypass (public)"
+#~ msgstr "Bypass (verejné)"
+
+#~ msgid "One Factor"
+#~ msgstr "Jeden faktor"
+
+#~ msgid "Two Factor"
+#~ msgstr "Dva faktory"
+
#, fuzzy
#~| msgid "Sort Order"
#~ msgid "Priority Order"