From 7119eacef100604ec91cc887dc740a23bb97ff9e Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Thu, 12 Mar 2026 09:47:36 -0300 Subject: [PATCH] update translations --- locale/de/LC_MESSAGES/django.po | 498 ++++++++++++++++++++++++++--- locale/es/LC_MESSAGES/django.po | 496 +++++++++++++++++++++++++--- locale/fr/LC_MESSAGES/django.po | 496 +++++++++++++++++++++++++--- locale/pt_BR/LC_MESSAGES/django.po | 496 +++++++++++++++++++++++++--- locale/sk/LC_MESSAGES/django.po | 496 +++++++++++++++++++++++++--- 5 files changed, 2227 insertions(+), 255 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 8c1a8cf..a8cc168 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-11 18:49-0300\n" +"POT-Creation-Date: 2026-03-12 09:46-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,6 +35,11 @@ msgstr "Zurück" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 +#: templates/gatekeeper/gatekeeper_list.html:71 +#: templates/gatekeeper/gatekeeper_list.html:114 +#: templates/gatekeeper/gatekeeper_list.html:159 +#: templates/gatekeeper/gatekeeper_list.html:207 +#: templates/gatekeeper/gatekeeper_list.html:224 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -54,8 +59,10 @@ msgid "" msgstr "" #: api_v2/forms.py:63 cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 -#: dns/forms.py:84 dns/forms.py:153 routing_templates/forms.py:71 -#: scheduler/forms.py:102 templates/firewall/manage_firewall_rule.html:379 +#: dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:40 +#: gatekeeper/forms.py:74 gatekeeper/forms.py:136 gatekeeper/forms.py:211 +#: gatekeeper/forms.py:242 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 #: templates/scheduler/scheduleprofile_form.html:200 @@ -67,9 +74,10 @@ msgid "Save" msgstr "Speichern" #: api_v2/models.py:10 cluster/forms.py:18 dns/forms.py:130 -#: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 -#: templates/api_v2/list.html:8 templates/cluster/workers_list.html:8 -#: templates/dns/static_host_list.html:68 +#: gatekeeper/forms.py:98 routing_templates/forms.py:28 +#: templates/api_v2/api_documentation.html:47 templates/api_v2/list.html:8 +#: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 +#: templates/gatekeeper/gatekeeper_list.html:143 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -108,6 +116,10 @@ msgstr "Aktiviert" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 #: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114 +#: gatekeeper/views.py:18 gatekeeper/views.py:42 gatekeeper/views.py:75 +#: gatekeeper/views.py:99 gatekeeper/views.py:132 gatekeeper/views.py:156 +#: gatekeeper/views.py:203 gatekeeper/views.py:227 gatekeeper/views.py:260 +#: gatekeeper/views.py:284 gatekeeper/views.py:317 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Zugriff verweigert" @@ -194,7 +206,7 @@ msgstr "" msgid "Two Factor" msgstr "" -#: app_gateway/models.py:45 +#: app_gateway/models.py:45 gatekeeper/models.py:114 msgid "Deny" msgstr "" @@ -831,28 +843,364 @@ msgstr "Firewall‑Einstellungen verwalten" msgid "Firewall settings saved successfully" msgstr "Firewall‑Einstellungen erfolgreich gespeichert" -#: gatekeeper/models.py:9 +#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:55 +#: templates/user_manager/list.html:8 user_manager/forms.py:13 +#: vpn_invite/forms.py:281 +msgid "Username" +msgstr "Benutzername" + +#: gatekeeper/forms.py:17 gatekeeper/forms.py:226 +#: templates/gatekeeper/gatekeeper_list.html:56 +#: templates/gatekeeper/gatekeeper_list.html:198 +#: templates/wireguard/peer_list/peer_preview_modal.html:103 +msgid "Email" +msgstr "E‑Mail" + +#: 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:19 +msgid "TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:41 gatekeeper/forms.py:75 gatekeeper/forms.py:137 +#: gatekeeper/forms.py:212 gatekeeper/forms.py:243 scheduler/forms.py:103 +#: templates/generic_delete_confirmation.html:19 +#: templates/scheduler/scheduleprofile_form.html:203 +msgid "Cancel" +msgstr "Abbrechen" + +#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:98 +#, fuzzy +#| msgid "Profile Name" +msgid "Group Name" +msgstr "Profilname" + +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:99 +msgid "Members" +msgstr "" + +#: gatekeeper/forms.py:85 +msgid "TOTP Validation PIN" +msgstr "" + +#: gatekeeper/forms.py:88 +msgid "" +"Enter a 6-digit PIN generated by your authenticator app to validate the " +"secret." +msgstr "" + +#: gatekeeper/forms.py:99 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Type" +msgstr "Authentifizierung" + +#: gatekeeper/forms.py:100 +msgid "Global TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:101 +msgid "OIDC Provider URL" +msgstr "" + +#: gatekeeper/forms.py:102 +msgid "OIDC Client ID" +msgstr "" + +#: gatekeeper/forms.py:103 +msgid "OIDC Client Secret" +msgstr "" + +#: gatekeeper/forms.py:154 +msgid "TOTP secret must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:156 +msgid "TOTP validation PIN must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:158 +msgid "OIDC fields must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:164 +msgid "Only one Local Password authentication method can be configured." +msgstr "" + +#: gatekeeper/forms.py:167 +msgid "OIDC fields must be empty for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:169 +msgid "TOTP secret is required for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:173 +#, fuzzy +#| msgid "Please provide a valid IP address." +msgid "Please provide a PIN to validate the TOTP secret." +msgstr "Bitte geben Sie eine gültige IP‑Adresse ein." + +#: gatekeeper/forms.py:178 +msgid "Invalid TOTP PIN." +msgstr "" + +#: gatekeeper/forms.py:180 +msgid "Invalid TOTP secret format. Must be a valid Base32 string." +msgstr "" + +#: gatekeeper/forms.py:183 +msgid "TOTP secret must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:185 +msgid "TOTP validation PIN must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:194 gatekeeper/forms.py:225 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Method" +msgstr "Authentifizierung" + +#: gatekeeper/forms.py:195 templates/gatekeeper/gatekeeper_list.html:215 +msgid "Domain" +msgstr "" + +#: gatekeeper/models.py:10 #, fuzzy #| msgid "Default Password" msgid "Local Password" msgstr "Standardpasswort" -#: gatekeeper/models.py:9 -msgid "TOTP" +#: gatekeeper/models.py:11 +msgid "One-Time Password (TOTP)" msgstr "" -#: gatekeeper/models.py:9 -msgid "OIDC" +#: gatekeeper/models.py:12 +msgid "OpenID Connect (OIDC)" msgstr "" -#: gatekeeper/models.py:66 +#: gatekeeper/models.py:13 +#, fuzzy +#| msgid "IP Address" +msgid "IP Address List" +msgstr "IP‑Adresse" + +#: gatekeeper/models.py:71 msgid "Password for local authentication (leave blank if not using)" msgstr "" -#: gatekeeper/models.py:67 +#: gatekeeper/models.py:72 msgid "Per-user TOTP secret key" msgstr "" +#: gatekeeper/models.py:112 +msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +msgstr "" + +#: gatekeeper/models.py:114 +#, fuzzy +#| msgid "Allowed IPs" +msgid "Allow" +msgstr "Erlaubte IPs" + +#: gatekeeper/views.py:48 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Gatekeeper User" +msgstr "Benutzer bearbeiten" + +#: gatekeeper/views.py:51 +#, fuzzy +#| msgid "Create Peer" +msgid "Create Gatekeeper User" +msgstr "Peer erstellen" + +#: gatekeeper/views.py:59 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Gatekeeper User saved successfully." +msgstr "API-Schlüssel erfolgreich gespeichert." + +#: gatekeeper/views.py:84 +#, fuzzy +#| msgid "Peer deleted|Peer deleted successfully." +msgid "Gatekeeper User deleted successfully." +msgstr "Peer gelöscht|Peer erfolgreich gelöscht." + +#: gatekeeper/views.py:89 +#, fuzzy +#| msgid "Delete Peer" +msgid "Delete Gatekeeper User" +msgstr "Peer löschen" + +#: gatekeeper/views.py:91 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the user \"%(username)s\"?" +msgstr "" +"Sind Sie sicher, dass Sie den API-Schlüssel \"%(name)s\" löschen möchten?" + +#: gatekeeper/views.py:105 +#, fuzzy +#| msgid "Edit Peer Group: " +msgid "Edit Gatekeeper Group" +msgstr "Peer‑Gruppe bearbeiten: " + +#: gatekeeper/views.py:108 +msgid "Create Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:116 +#, fuzzy +#| msgid "Peer reactivated successfully." +msgid "Gatekeeper Group saved successfully." +msgstr "Peer erfolgreich reaktiviert." + +#: gatekeeper/views.py:141 +#, fuzzy +#| msgid "Schedule Slot deleted successfully." +msgid "Gatekeeper Group deleted successfully." +msgstr "Zeitplan-Slot erfolgreich gelöscht." + +#: gatekeeper/views.py:146 +msgid "Delete Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:148 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the group \"%(name)s\"?" +msgstr "Sind Sie sicher, dass Sie das Profil \"%(name)s\" löschen möchten?" + +#: gatekeeper/views.py:162 +#, fuzzy +#| msgid "Authentication" +msgid "Edit Authentication Method" +msgstr "Authentifizierung" + +#: gatekeeper/views.py:165 +#, fuzzy +#| msgid "Authentication" +msgid "Create Authentication Method" +msgstr "Authentifizierung" + +#: gatekeeper/views.py:173 +#, fuzzy +#| msgid "Static DNS saved successfully" +msgid "Authentication Method saved successfully." +msgstr "Statischer DNS erfolgreich gespeichert" + +#: gatekeeper/views.py:180 +msgid "" +"\n" +"
Authentication Types
\n" +"

Select how users will authenticate through this method.

\n" +"
    \n" +"
  • Local Password: Users will authenticate " +"using a standard username and password stored locally. Only one of this type " +"can be created.
  • \n" +"
  • TOTP (Time-Based One-Time Password): Users " +"will need to enter a rotating token from an authenticator app. Requires " +"setting a Global TOTP Secret.
  • \n" +"
  • OIDC (OpenID Connect): Users will " +"authenticate via an external identity provider (like Keycloak, Google, or " +"Authelia). Requires Provider URL, Client ID, and Client Secret.
  • \n" +"
\n" +" " +msgstr "" + +#: gatekeeper/views.py:212 +#, fuzzy +#| msgid "Static DNS deleted successfully" +msgid "Authentication Method deleted successfully." +msgstr "Statischer DNS erfolgreich gelöscht" + +#: gatekeeper/views.py:217 +#, fuzzy +#| msgid "Authentication" +msgid "Delete Authentication Method" +msgstr "Authentifizierung" + +#: gatekeeper/views.py:219 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" +msgstr "" +"Sind Sie sicher, dass Sie den API-Schlüssel \"%(name)s\" löschen möchten?" + +#: gatekeeper/views.py:233 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Domain" +msgstr "Erlaubte IP eingeben" + +#: gatekeeper/views.py:236 templates/gatekeeper/gatekeeper_list.html:180 +msgid "Add Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:244 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Domain saved successfully." +msgstr "API-Schlüssel erfolgreich gespeichert." + +#: gatekeeper/views.py:269 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Domain deleted successfully." +msgstr "API-Schlüssel erfolgreich gelöscht." + +#: gatekeeper/views.py:274 +msgid "Delete Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:276 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" +msgstr "Sind Sie sicher, dass Sie das Profil \"%(name)s\" löschen möchten?" + +#: gatekeeper/views.py:290 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Email" +msgstr "Erlaubte IP eingeben" + +#: gatekeeper/views.py:293 templates/gatekeeper/gatekeeper_list.html:177 +msgid "Add Allowed Email" +msgstr "" + +#: gatekeeper/views.py:301 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Email saved successfully." +msgstr "API-Schlüssel erfolgreich gespeichert." + +#: gatekeeper/views.py:326 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Email deleted successfully." +msgstr "API-Schlüssel erfolgreich gelöscht." + +#: gatekeeper/views.py:331 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Delete Allowed Email" +msgstr "Erlaubte IP eingeben" + +#: gatekeeper/views.py:333 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" +msgstr "Sind Sie sicher, dass Sie das Profil \"%(name)s\" löschen möchten?" + #: intl_tools/forms.py:11 templates/accounts/login.html:36 msgid "Language" msgstr "Sprache" @@ -1082,11 +1430,6 @@ msgstr "Endtag" msgid "End Time" msgstr "Endzeit" -#: scheduler/forms.py:103 templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:203 -msgid "Cancel" -msgstr "Abbrechen" - #: scheduler/forms.py:122 msgid "Unable to validate overlaps: schedule profile is missing." msgstr "Überlappungen konnten nicht validiert werden: Zeitplanprofil fehlt." @@ -1194,17 +1537,6 @@ msgid "" msgstr "" "Wenden Sie sich an Ihren Systemadministrator, wenn Sie einen Fehler vermuten." -#: templates/accounts/login.html:14 templates/user_manager/list.html:8 -#: user_manager/forms.py:13 vpn_invite/forms.py:281 -msgid "Username" -msgstr "Benutzername" - -#: 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" - #: templates/accounts/login.html:32 msgid "Login" msgstr "Anmelden" @@ -1231,6 +1563,8 @@ msgid "In" msgstr "Eingehend" #: templates/api_v2/api_documentation.html:49 +#: templates/gatekeeper/gatekeeper_list.html:144 +#: templates/gatekeeper/gatekeeper_list.html:189 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Typ" @@ -1284,6 +1618,11 @@ msgstr "Deaktiviert" #: templates/api_v2/list.html:68 templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 +#: templates/gatekeeper/gatekeeper_list.html:67 +#: templates/gatekeeper/gatekeeper_list.html:110 +#: templates/gatekeeper/gatekeeper_list.html:155 +#: templates/gatekeeper/gatekeeper_list.html:203 +#: templates/gatekeeper/gatekeeper_list.html:220 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -1816,6 +2155,84 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Port‑Weiterleitungsregel erstellen" +#: templates/gatekeeper/gatekeeper_list.html:12 +msgid "Gatekeeper Users" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:18 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Methods" +msgstr "Authentifizierung" + +#: templates/gatekeeper/gatekeeper_list.html:24 +msgid "Allowed Emails & Domains" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:34 +#: templates/user_manager/peer_group_list.html:11 +msgid "Users" +msgstr "Benutzer" + +#: templates/gatekeeper/gatekeeper_list.html:37 +#, fuzzy +#| msgid "Peer Groups" +msgid "Groups" +msgstr "Peer‑Gruppen" + +#: templates/gatekeeper/gatekeeper_list.html:45 +#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 +msgid "Add User" +msgstr "Benutzer hinzufügen" + +#: templates/gatekeeper/gatekeeper_list.html:57 +#: templates/gatekeeper/gatekeeper_list.html:100 +#: templates/gatekeeper/gatekeeper_list.html:145 +#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/scheduler/scheduleprofile_form.html:111 +#: templates/scheduler/scheduleprofile_list.html:15 +#: templates/wireguard/apply_route_template.html:28 +msgid "Actions" +msgstr "Aktionen" + +#: templates/gatekeeper/gatekeeper_list.html:82 +#, fuzzy +#| msgid "No time intervals found." +msgid "No Gatekeeper Users found." +msgstr "Keine Zeitintervalle gefunden." + +#: templates/gatekeeper/gatekeeper_list.html:89 +#, fuzzy +#| msgid "Add Peer Group" +msgid "Add Group" +msgstr "Peer‑Gruppe hinzufügen" + +#: templates/gatekeeper/gatekeeper_list.html:125 +msgid "No Gatekeeper Groups found." +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:134 +msgid "Add Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:170 +#, fuzzy +#| msgid "Authentication" +msgid "No Authentication Methods found." +msgstr "Authentifizierung" + +#: templates/gatekeeper/gatekeeper_list.html:190 +msgid "Identity" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:191 +msgid "Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:235 +msgid "No Allowed Emails or Domains found." +msgstr "" + #: templates/generic_delete_confirmation.html:16 msgid "Confirm Delete" msgstr "Löschen bestätigen" @@ -1863,12 +2280,6 @@ msgstr "Zeitintervalle" msgid "Add Interval" msgstr "Intervall hinzufügen" -#: templates/scheduler/scheduleprofile_form.html:111 -#: templates/scheduler/scheduleprofile_list.html:15 -#: templates/wireguard/apply_route_template.html:28 -msgid "Actions" -msgstr "Aktionen" - #: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Keine Zeitintervalle gefunden." @@ -1988,10 +2399,6 @@ msgstr "Konsole aktiviert" msgid "Enhanced Filter Enabled" msgstr "Erweiterter Filter aktiviert" -#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 -msgid "Add User" -msgstr "Benutzer hinzufügen" - #: templates/user_manager/list_buttons.html:3 msgid "List Users" msgstr "Benutzer auflisten" @@ -2008,10 +2415,6 @@ msgstr "Peer‑Gruppe hinzufügen" msgid "Server Instance" msgstr "Server‑Instanz" -#: templates/user_manager/peer_group_list.html:11 -msgid "Users" -msgstr "Benutzer" - #: templates/vpn_invite/invite_settings.html:18 msgid "Expiration" msgstr "Ablauf" @@ -2130,10 +2533,6 @@ msgstr "E‑Mail oder Telefonnummer" msgid "Copy Text" msgstr "Text kopieren" -#: templates/wireguard/peer_list/peer_preview_modal.html:103 -msgid "Email" -msgstr "E‑Mail" - #: templates/wireguard/peer_list/peer_preview_modal.html:106 msgid "WhatsApp" msgstr "WhatsApp" @@ -3483,9 +3882,6 @@ msgstr "" #~ msgid "Add Schedule Slot" #~ msgstr "Zeitplan-Slot hinzufügen" -#~ msgid "Schedule Slot deleted successfully." -#~ msgstr "Zeitplan-Slot erfolgreich gelöscht." - #~ msgid "Delete Schedule Slot" #~ msgstr "Zeitplan-Slot löschen" diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 3b7c85e..3417551 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-11 18:49-0300\n" +"POT-Creation-Date: 2026-03-12 09:46-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,6 +35,11 @@ msgstr "Volver" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 +#: templates/gatekeeper/gatekeeper_list.html:71 +#: templates/gatekeeper/gatekeeper_list.html:114 +#: templates/gatekeeper/gatekeeper_list.html:159 +#: templates/gatekeeper/gatekeeper_list.html:207 +#: templates/gatekeeper/gatekeeper_list.html:224 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -54,8 +59,10 @@ msgid "" msgstr "" #: api_v2/forms.py:63 cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 -#: dns/forms.py:84 dns/forms.py:153 routing_templates/forms.py:71 -#: scheduler/forms.py:102 templates/firewall/manage_firewall_rule.html:379 +#: dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:40 +#: gatekeeper/forms.py:74 gatekeeper/forms.py:136 gatekeeper/forms.py:211 +#: gatekeeper/forms.py:242 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 #: templates/scheduler/scheduleprofile_form.html:200 @@ -67,9 +74,10 @@ msgid "Save" msgstr "Guardar" #: api_v2/models.py:10 cluster/forms.py:18 dns/forms.py:130 -#: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 -#: templates/api_v2/list.html:8 templates/cluster/workers_list.html:8 -#: templates/dns/static_host_list.html:68 +#: gatekeeper/forms.py:98 routing_templates/forms.py:28 +#: templates/api_v2/api_documentation.html:47 templates/api_v2/list.html:8 +#: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 +#: templates/gatekeeper/gatekeeper_list.html:143 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -108,6 +116,10 @@ msgstr "Habilitado" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 #: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114 +#: gatekeeper/views.py:18 gatekeeper/views.py:42 gatekeeper/views.py:75 +#: gatekeeper/views.py:99 gatekeeper/views.py:132 gatekeeper/views.py:156 +#: gatekeeper/views.py:203 gatekeeper/views.py:227 gatekeeper/views.py:260 +#: gatekeeper/views.py:284 gatekeeper/views.py:317 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acceso denegado" @@ -193,7 +205,7 @@ msgstr "" msgid "Two Factor" msgstr "" -#: app_gateway/models.py:45 +#: app_gateway/models.py:45 gatekeeper/models.py:114 msgid "Deny" msgstr "" @@ -827,28 +839,362 @@ msgstr "Gestionar configuración de firewall" msgid "Firewall settings saved successfully" msgstr "Configuración de firewall guardada correctamente" -#: gatekeeper/models.py:9 +#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:55 +#: templates/user_manager/list.html:8 user_manager/forms.py:13 +#: vpn_invite/forms.py:281 +msgid "Username" +msgstr "Usuario" + +#: gatekeeper/forms.py:17 gatekeeper/forms.py:226 +#: templates/gatekeeper/gatekeeper_list.html:56 +#: templates/gatekeeper/gatekeeper_list.html:198 +#: templates/wireguard/peer_list/peer_preview_modal.html:103 +msgid "Email" +msgstr "Email" + +#: 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:19 +msgid "TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:41 gatekeeper/forms.py:75 gatekeeper/forms.py:137 +#: gatekeeper/forms.py:212 gatekeeper/forms.py:243 scheduler/forms.py:103 +#: templates/generic_delete_confirmation.html:19 +#: templates/scheduler/scheduleprofile_form.html:203 +msgid "Cancel" +msgstr "Cancelar" + +#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:98 +#, fuzzy +#| msgid "Profile Name" +msgid "Group Name" +msgstr "Nombre del Perfil" + +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:99 +msgid "Members" +msgstr "" + +#: gatekeeper/forms.py:85 +msgid "TOTP Validation PIN" +msgstr "" + +#: gatekeeper/forms.py:88 +msgid "" +"Enter a 6-digit PIN generated by your authenticator app to validate the " +"secret." +msgstr "" + +#: gatekeeper/forms.py:99 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Type" +msgstr "Autenticación" + +#: gatekeeper/forms.py:100 +msgid "Global TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:101 +msgid "OIDC Provider URL" +msgstr "" + +#: gatekeeper/forms.py:102 +msgid "OIDC Client ID" +msgstr "" + +#: gatekeeper/forms.py:103 +msgid "OIDC Client Secret" +msgstr "" + +#: gatekeeper/forms.py:154 +msgid "TOTP secret must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:156 +msgid "TOTP validation PIN must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:158 +msgid "OIDC fields must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:164 +msgid "Only one Local Password authentication method can be configured." +msgstr "" + +#: gatekeeper/forms.py:167 +msgid "OIDC fields must be empty for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:169 +msgid "TOTP secret is required for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:173 +#, fuzzy +#| msgid "Please provide a valid IP address." +msgid "Please provide a PIN to validate the TOTP secret." +msgstr "Por favor proporciona una IP válida." + +#: gatekeeper/forms.py:178 +msgid "Invalid TOTP PIN." +msgstr "" + +#: gatekeeper/forms.py:180 +msgid "Invalid TOTP secret format. Must be a valid Base32 string." +msgstr "" + +#: gatekeeper/forms.py:183 +msgid "TOTP secret must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:185 +msgid "TOTP validation PIN must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:194 gatekeeper/forms.py:225 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Method" +msgstr "Autenticación" + +#: gatekeeper/forms.py:195 templates/gatekeeper/gatekeeper_list.html:215 +msgid "Domain" +msgstr "" + +#: gatekeeper/models.py:10 #, fuzzy #| msgid "Default Password" msgid "Local Password" msgstr "Contraseña predeterminada" -#: gatekeeper/models.py:9 -msgid "TOTP" +#: gatekeeper/models.py:11 +msgid "One-Time Password (TOTP)" msgstr "" -#: gatekeeper/models.py:9 -msgid "OIDC" +#: gatekeeper/models.py:12 +msgid "OpenID Connect (OIDC)" msgstr "" -#: gatekeeper/models.py:66 +#: gatekeeper/models.py:13 +#, fuzzy +#| msgid "IP Address" +msgid "IP Address List" +msgstr "Dirección IP" + +#: gatekeeper/models.py:71 msgid "Password for local authentication (leave blank if not using)" msgstr "" -#: gatekeeper/models.py:67 +#: gatekeeper/models.py:72 msgid "Per-user TOTP secret key" msgstr "" +#: gatekeeper/models.py:112 +msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +msgstr "" + +#: gatekeeper/models.py:114 +#, fuzzy +#| msgid "Allowed IPs" +msgid "Allow" +msgstr "IPs permitidas" + +#: gatekeeper/views.py:48 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Gatekeeper User" +msgstr "Editar usuario" + +#: gatekeeper/views.py:51 +#, fuzzy +#| msgid "Create Peer" +msgid "Create Gatekeeper User" +msgstr "Crear peer" + +#: gatekeeper/views.py:59 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Gatekeeper User saved successfully." +msgstr "Clave de API guardada con éxito." + +#: gatekeeper/views.py:84 +#, fuzzy +#| msgid "Peer deleted|Peer deleted successfully." +msgid "Gatekeeper User deleted successfully." +msgstr "Peer eliminado|Peer eliminado correctamente." + +#: gatekeeper/views.py:89 +#, fuzzy +#| msgid "Delete Peer" +msgid "Delete Gatekeeper User" +msgstr "Eliminar peer" + +#: gatekeeper/views.py:91 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the user \"%(username)s\"?" +msgstr "¿Está seguro de que desea eliminar la clave de API \"%(name)s\"?" + +#: gatekeeper/views.py:105 +#, fuzzy +#| msgid "Edit Peer Group: " +msgid "Edit Gatekeeper Group" +msgstr "Editar grupo de peers: " + +#: gatekeeper/views.py:108 +msgid "Create Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:116 +#, fuzzy +#| msgid "Peer reactivated successfully." +msgid "Gatekeeper Group saved successfully." +msgstr "Peer reactivado con éxito." + +#: gatekeeper/views.py:141 +#, fuzzy +#| msgid "Schedule Slot deleted successfully." +msgid "Gatekeeper Group deleted successfully." +msgstr "Franja de programación eliminada con éxito." + +#: gatekeeper/views.py:146 +msgid "Delete Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:148 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the group \"%(name)s\"?" +msgstr "¿Está seguro de que desea eliminar el perfil \"%(name)s\"?" + +#: gatekeeper/views.py:162 +#, fuzzy +#| msgid "Authentication" +msgid "Edit Authentication Method" +msgstr "Autenticación" + +#: gatekeeper/views.py:165 +#, fuzzy +#| msgid "Authentication" +msgid "Create Authentication Method" +msgstr "Autenticación" + +#: gatekeeper/views.py:173 +#, fuzzy +#| msgid "Static DNS saved successfully" +msgid "Authentication Method saved successfully." +msgstr "DNS estático guardado correctamente" + +#: gatekeeper/views.py:180 +msgid "" +"\n" +"
Authentication Types
\n" +"

Select how users will authenticate through this method.

\n" +"
    \n" +"
  • Local Password: Users will authenticate " +"using a standard username and password stored locally. Only one of this type " +"can be created.
  • \n" +"
  • TOTP (Time-Based One-Time Password): Users " +"will need to enter a rotating token from an authenticator app. Requires " +"setting a Global TOTP Secret.
  • \n" +"
  • OIDC (OpenID Connect): Users will " +"authenticate via an external identity provider (like Keycloak, Google, or " +"Authelia). Requires Provider URL, Client ID, and Client Secret.
  • \n" +"
\n" +" " +msgstr "" + +#: gatekeeper/views.py:212 +#, fuzzy +#| msgid "Static DNS deleted successfully" +msgid "Authentication Method deleted successfully." +msgstr "DNS estático eliminado correctamente" + +#: gatekeeper/views.py:217 +#, fuzzy +#| msgid "Authentication" +msgid "Delete Authentication Method" +msgstr "Autenticación" + +#: gatekeeper/views.py:219 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" +msgstr "¿Está seguro de que desea eliminar la clave de API \"%(name)s\"?" + +#: gatekeeper/views.py:233 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Domain" +msgstr "Ingresar IP permitida" + +#: gatekeeper/views.py:236 templates/gatekeeper/gatekeeper_list.html:180 +msgid "Add Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:244 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Domain saved successfully." +msgstr "Clave de API guardada con éxito." + +#: gatekeeper/views.py:269 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Domain deleted successfully." +msgstr "Clave de API eliminada con éxito." + +#: gatekeeper/views.py:274 +msgid "Delete Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:276 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" +msgstr "¿Está seguro de que desea eliminar el perfil \"%(name)s\"?" + +#: gatekeeper/views.py:290 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Email" +msgstr "Ingresar IP permitida" + +#: gatekeeper/views.py:293 templates/gatekeeper/gatekeeper_list.html:177 +msgid "Add Allowed Email" +msgstr "" + +#: gatekeeper/views.py:301 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Email saved successfully." +msgstr "Clave de API guardada con éxito." + +#: gatekeeper/views.py:326 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Email deleted successfully." +msgstr "Clave de API eliminada con éxito." + +#: gatekeeper/views.py:331 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Delete Allowed Email" +msgstr "Ingresar IP permitida" + +#: gatekeeper/views.py:333 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" +msgstr "¿Está seguro de que desea eliminar el perfil \"%(name)s\"?" + #: intl_tools/forms.py:11 templates/accounts/login.html:36 msgid "Language" msgstr "Idioma" @@ -1075,11 +1421,6 @@ msgstr "Día de Fin" msgid "End Time" msgstr "Hora de Fin" -#: scheduler/forms.py:103 templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:203 -msgid "Cancel" -msgstr "Cancelar" - #: scheduler/forms.py:122 msgid "Unable to validate overlaps: schedule profile is missing." msgstr "" @@ -1189,17 +1530,6 @@ msgstr "" "Por favor, contacta a tu administrador del sistema si crees que esto es un " "error." -#: templates/accounts/login.html:14 templates/user_manager/list.html:8 -#: user_manager/forms.py:13 vpn_invite/forms.py:281 -msgid "Username" -msgstr "Usuario" - -#: 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" - #: templates/accounts/login.html:32 msgid "Login" msgstr "Iniciar sesión" @@ -1226,6 +1556,8 @@ msgid "In" msgstr "Entrada" #: templates/api_v2/api_documentation.html:49 +#: templates/gatekeeper/gatekeeper_list.html:144 +#: templates/gatekeeper/gatekeeper_list.html:189 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Tipo" @@ -1280,6 +1612,11 @@ msgstr "Deshabilitado" #: templates/api_v2/list.html:68 templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 +#: templates/gatekeeper/gatekeeper_list.html:67 +#: templates/gatekeeper/gatekeeper_list.html:110 +#: templates/gatekeeper/gatekeeper_list.html:155 +#: templates/gatekeeper/gatekeeper_list.html:203 +#: templates/gatekeeper/gatekeeper_list.html:220 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -1807,6 +2144,84 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Crear regla de reenvío de puerto" +#: templates/gatekeeper/gatekeeper_list.html:12 +msgid "Gatekeeper Users" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:18 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Methods" +msgstr "Autenticación" + +#: templates/gatekeeper/gatekeeper_list.html:24 +msgid "Allowed Emails & Domains" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:34 +#: templates/user_manager/peer_group_list.html:11 +msgid "Users" +msgstr "Usuarios" + +#: templates/gatekeeper/gatekeeper_list.html:37 +#, fuzzy +#| msgid "Peer Groups" +msgid "Groups" +msgstr "Grupos de peers" + +#: templates/gatekeeper/gatekeeper_list.html:45 +#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 +msgid "Add User" +msgstr "Añadir usuario" + +#: templates/gatekeeper/gatekeeper_list.html:57 +#: templates/gatekeeper/gatekeeper_list.html:100 +#: templates/gatekeeper/gatekeeper_list.html:145 +#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/scheduler/scheduleprofile_form.html:111 +#: templates/scheduler/scheduleprofile_list.html:15 +#: templates/wireguard/apply_route_template.html:28 +msgid "Actions" +msgstr "Acciones" + +#: templates/gatekeeper/gatekeeper_list.html:82 +#, fuzzy +#| msgid "No time intervals found." +msgid "No Gatekeeper Users found." +msgstr "No se encontraron intervalos de tiempo." + +#: templates/gatekeeper/gatekeeper_list.html:89 +#, fuzzy +#| msgid "Add Peer Group" +msgid "Add Group" +msgstr "Añadir grupo de peers" + +#: templates/gatekeeper/gatekeeper_list.html:125 +msgid "No Gatekeeper Groups found." +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:134 +msgid "Add Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:170 +#, fuzzy +#| msgid "Authentication" +msgid "No Authentication Methods found." +msgstr "Autenticación" + +#: templates/gatekeeper/gatekeeper_list.html:190 +msgid "Identity" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:191 +msgid "Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:235 +msgid "No Allowed Emails or Domains found." +msgstr "" + #: templates/generic_delete_confirmation.html:16 msgid "Confirm Delete" msgstr "Confirmar Eliminación" @@ -1854,12 +2269,6 @@ msgstr "Intervalos de Tiempo" msgid "Add Interval" msgstr "Añadir Intervalo" -#: templates/scheduler/scheduleprofile_form.html:111 -#: templates/scheduler/scheduleprofile_list.html:15 -#: templates/wireguard/apply_route_template.html:28 -msgid "Actions" -msgstr "Acciones" - #: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "No se encontraron intervalos de tiempo." @@ -1979,10 +2388,6 @@ msgstr "Consola habilitada" msgid "Enhanced Filter Enabled" msgstr "Filtro mejorado habilitado" -#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 -msgid "Add User" -msgstr "Añadir usuario" - #: templates/user_manager/list_buttons.html:3 msgid "List Users" msgstr "Listar usuarios" @@ -1999,10 +2404,6 @@ msgstr "Añadir grupo de peers" msgid "Server Instance" msgstr "Instancia de WireGuard" -#: templates/user_manager/peer_group_list.html:11 -msgid "Users" -msgstr "Usuarios" - #: templates/vpn_invite/invite_settings.html:18 msgid "Expiration" msgstr "Caduca en" @@ -2120,10 +2521,6 @@ msgstr "Email o teléfono" msgid "Copy Text" msgstr "Copiar texto" -#: templates/wireguard/peer_list/peer_preview_modal.html:103 -msgid "Email" -msgstr "Email" - #: templates/wireguard/peer_list/peer_preview_modal.html:106 msgid "WhatsApp" msgstr "WhatsApp" @@ -3449,9 +3846,6 @@ msgstr "" #~ msgid "Add Schedule Slot" #~ msgstr "Añadir Franja de Programación" -#~ msgid "Schedule Slot deleted successfully." -#~ msgstr "Franja de programación eliminada con éxito." - #~ msgid "Delete Schedule Slot" #~ msgstr "Eliminar Franja de Programación" diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 31a7a8e..a71fda6 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-11 18:49-0300\n" +"POT-Creation-Date: 2026-03-12 09:46-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,6 +35,11 @@ msgstr "Retour" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 +#: templates/gatekeeper/gatekeeper_list.html:71 +#: templates/gatekeeper/gatekeeper_list.html:114 +#: templates/gatekeeper/gatekeeper_list.html:159 +#: templates/gatekeeper/gatekeeper_list.html:207 +#: templates/gatekeeper/gatekeeper_list.html:224 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -54,8 +59,10 @@ msgid "" msgstr "" #: api_v2/forms.py:63 cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 -#: dns/forms.py:84 dns/forms.py:153 routing_templates/forms.py:71 -#: scheduler/forms.py:102 templates/firewall/manage_firewall_rule.html:379 +#: dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:40 +#: gatekeeper/forms.py:74 gatekeeper/forms.py:136 gatekeeper/forms.py:211 +#: gatekeeper/forms.py:242 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 #: templates/scheduler/scheduleprofile_form.html:200 @@ -67,9 +74,10 @@ msgid "Save" msgstr "Enregistrer" #: api_v2/models.py:10 cluster/forms.py:18 dns/forms.py:130 -#: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 -#: templates/api_v2/list.html:8 templates/cluster/workers_list.html:8 -#: templates/dns/static_host_list.html:68 +#: gatekeeper/forms.py:98 routing_templates/forms.py:28 +#: templates/api_v2/api_documentation.html:47 templates/api_v2/list.html:8 +#: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 +#: templates/gatekeeper/gatekeeper_list.html:143 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -108,6 +116,10 @@ msgstr "Activé" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 #: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114 +#: gatekeeper/views.py:18 gatekeeper/views.py:42 gatekeeper/views.py:75 +#: gatekeeper/views.py:99 gatekeeper/views.py:132 gatekeeper/views.py:156 +#: gatekeeper/views.py:203 gatekeeper/views.py:227 gatekeeper/views.py:260 +#: gatekeeper/views.py:284 gatekeeper/views.py:317 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Accès refusé" @@ -193,7 +205,7 @@ msgstr "" msgid "Two Factor" msgstr "" -#: app_gateway/models.py:45 +#: app_gateway/models.py:45 gatekeeper/models.py:114 msgid "Deny" msgstr "" @@ -828,28 +840,362 @@ 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/models.py:9 +#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:55 +#: templates/user_manager/list.html:8 user_manager/forms.py:13 +#: vpn_invite/forms.py:281 +msgid "Username" +msgstr "Nom d’utilisateur" + +#: gatekeeper/forms.py:17 gatekeeper/forms.py:226 +#: templates/gatekeeper/gatekeeper_list.html:56 +#: templates/gatekeeper/gatekeeper_list.html:198 +#: templates/wireguard/peer_list/peer_preview_modal.html:103 +msgid "Email" +msgstr "E‑mail" + +#: 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:19 +msgid "TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:41 gatekeeper/forms.py:75 gatekeeper/forms.py:137 +#: gatekeeper/forms.py:212 gatekeeper/forms.py:243 scheduler/forms.py:103 +#: templates/generic_delete_confirmation.html:19 +#: templates/scheduler/scheduleprofile_form.html:203 +msgid "Cancel" +msgstr "Annuler" + +#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:98 +#, fuzzy +#| msgid "Profile Name" +msgid "Group Name" +msgstr "Nom du Profil" + +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:99 +msgid "Members" +msgstr "" + +#: gatekeeper/forms.py:85 +msgid "TOTP Validation PIN" +msgstr "" + +#: gatekeeper/forms.py:88 +msgid "" +"Enter a 6-digit PIN generated by your authenticator app to validate the " +"secret." +msgstr "" + +#: gatekeeper/forms.py:99 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Type" +msgstr "Authentification" + +#: gatekeeper/forms.py:100 +msgid "Global TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:101 +msgid "OIDC Provider URL" +msgstr "" + +#: gatekeeper/forms.py:102 +msgid "OIDC Client ID" +msgstr "" + +#: gatekeeper/forms.py:103 +msgid "OIDC Client Secret" +msgstr "" + +#: gatekeeper/forms.py:154 +msgid "TOTP secret must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:156 +msgid "TOTP validation PIN must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:158 +msgid "OIDC fields must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:164 +msgid "Only one Local Password authentication method can be configured." +msgstr "" + +#: gatekeeper/forms.py:167 +msgid "OIDC fields must be empty for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:169 +msgid "TOTP secret is required for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:173 +#, fuzzy +#| msgid "Please provide a valid IP address." +msgid "Please provide a PIN to validate the TOTP secret." +msgstr "Veuillez fournir une adresse IP valide." + +#: gatekeeper/forms.py:178 +msgid "Invalid TOTP PIN." +msgstr "" + +#: gatekeeper/forms.py:180 +msgid "Invalid TOTP secret format. Must be a valid Base32 string." +msgstr "" + +#: gatekeeper/forms.py:183 +msgid "TOTP secret must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:185 +msgid "TOTP validation PIN must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:194 gatekeeper/forms.py:225 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Method" +msgstr "Authentification" + +#: gatekeeper/forms.py:195 templates/gatekeeper/gatekeeper_list.html:215 +msgid "Domain" +msgstr "" + +#: gatekeeper/models.py:10 #, fuzzy #| msgid "Default Password" msgid "Local Password" msgstr "Mot de passe par défaut" -#: gatekeeper/models.py:9 -msgid "TOTP" +#: gatekeeper/models.py:11 +msgid "One-Time Password (TOTP)" msgstr "" -#: gatekeeper/models.py:9 -msgid "OIDC" +#: gatekeeper/models.py:12 +msgid "OpenID Connect (OIDC)" msgstr "" -#: gatekeeper/models.py:66 +#: gatekeeper/models.py:13 +#, fuzzy +#| msgid "IP Address" +msgid "IP Address List" +msgstr "Adresse IP" + +#: gatekeeper/models.py:71 msgid "Password for local authentication (leave blank if not using)" msgstr "" -#: gatekeeper/models.py:67 +#: gatekeeper/models.py:72 msgid "Per-user TOTP secret key" msgstr "" +#: gatekeeper/models.py:112 +msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +msgstr "" + +#: gatekeeper/models.py:114 +#, fuzzy +#| msgid "Allowed IPs" +msgid "Allow" +msgstr "IPs autorisées" + +#: gatekeeper/views.py:48 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Gatekeeper User" +msgstr "Modifier l’utilisateur" + +#: gatekeeper/views.py:51 +#, fuzzy +#| msgid "Create Peer" +msgid "Create Gatekeeper User" +msgstr "Créer un peer" + +#: gatekeeper/views.py:59 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Gatekeeper User saved successfully." +msgstr "Clé d'API enregistrée avec succès." + +#: gatekeeper/views.py:84 +#, fuzzy +#| msgid "Peer deleted|Peer deleted successfully." +msgid "Gatekeeper User deleted successfully." +msgstr "Peer supprimé | Peer supprimé avec succès." + +#: gatekeeper/views.py:89 +#, fuzzy +#| msgid "Delete Peer" +msgid "Delete Gatekeeper User" +msgstr "Supprimer le peer" + +#: gatekeeper/views.py:91 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the user \"%(username)s\"?" +msgstr "Êtes-vous sûr de vouloir supprimer la clé d'API \"%(name)s\" ?" + +#: gatekeeper/views.py:105 +#, fuzzy +#| msgid "Edit Peer Group: " +msgid "Edit Gatekeeper Group" +msgstr "Modifier le groupe de peers: " + +#: gatekeeper/views.py:108 +msgid "Create Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:116 +#, fuzzy +#| msgid "Peer reactivated successfully." +msgid "Gatekeeper Group saved successfully." +msgstr "Peer réactivé avec succès." + +#: gatekeeper/views.py:141 +#, fuzzy +#| msgid "Schedule Slot deleted successfully." +msgid "Gatekeeper Group deleted successfully." +msgstr "Créneau de planification supprimé avec succès." + +#: gatekeeper/views.py:146 +msgid "Delete Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:148 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the group \"%(name)s\"?" +msgstr "Êtes-vous sûr de vouloir supprimer le profil \"%(name)s\" ?" + +#: gatekeeper/views.py:162 +#, fuzzy +#| msgid "Authentication" +msgid "Edit Authentication Method" +msgstr "Authentification" + +#: gatekeeper/views.py:165 +#, fuzzy +#| msgid "Authentication" +msgid "Create Authentication Method" +msgstr "Authentification" + +#: gatekeeper/views.py:173 +#, fuzzy +#| msgid "Static DNS saved successfully" +msgid "Authentication Method saved successfully." +msgstr "DNS statique enregistré avec succès" + +#: gatekeeper/views.py:180 +msgid "" +"\n" +"
Authentication Types
\n" +"

Select how users will authenticate through this method.

\n" +"
    \n" +"
  • Local Password: Users will authenticate " +"using a standard username and password stored locally. Only one of this type " +"can be created.
  • \n" +"
  • TOTP (Time-Based One-Time Password): Users " +"will need to enter a rotating token from an authenticator app. Requires " +"setting a Global TOTP Secret.
  • \n" +"
  • OIDC (OpenID Connect): Users will " +"authenticate via an external identity provider (like Keycloak, Google, or " +"Authelia). Requires Provider URL, Client ID, and Client Secret.
  • \n" +"
\n" +" " +msgstr "" + +#: gatekeeper/views.py:212 +#, fuzzy +#| msgid "Static DNS deleted successfully" +msgid "Authentication Method deleted successfully." +msgstr "Entrée DNS statique supprimée avec succès" + +#: gatekeeper/views.py:217 +#, fuzzy +#| msgid "Authentication" +msgid "Delete Authentication Method" +msgstr "Authentification" + +#: gatekeeper/views.py:219 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" +msgstr "Êtes-vous sûr de vouloir supprimer la clé d'API \"%(name)s\" ?" + +#: gatekeeper/views.py:233 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Domain" +msgstr "Saisir l’IP autorisée" + +#: gatekeeper/views.py:236 templates/gatekeeper/gatekeeper_list.html:180 +msgid "Add Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:244 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Domain saved successfully." +msgstr "Clé d'API enregistrée avec succès." + +#: gatekeeper/views.py:269 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Domain deleted successfully." +msgstr "Clé d'API supprimée avec succès." + +#: gatekeeper/views.py:274 +msgid "Delete Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:276 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" +msgstr "Êtes-vous sûr de vouloir supprimer le profil \"%(name)s\" ?" + +#: gatekeeper/views.py:290 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Email" +msgstr "Saisir l’IP autorisée" + +#: gatekeeper/views.py:293 templates/gatekeeper/gatekeeper_list.html:177 +msgid "Add Allowed Email" +msgstr "" + +#: gatekeeper/views.py:301 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Email saved successfully." +msgstr "Clé d'API enregistrée avec succès." + +#: gatekeeper/views.py:326 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Email deleted successfully." +msgstr "Clé d'API supprimée avec succès." + +#: gatekeeper/views.py:331 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Delete Allowed Email" +msgstr "Saisir l’IP autorisée" + +#: gatekeeper/views.py:333 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" +msgstr "Êtes-vous sûr de vouloir supprimer le profil \"%(name)s\" ?" + #: intl_tools/forms.py:11 templates/accounts/login.html:36 msgid "Language" msgstr "Langue" @@ -1075,11 +1421,6 @@ msgstr "Jour de Fin" msgid "End Time" msgstr "Heure de Fin" -#: scheduler/forms.py:103 templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:203 -msgid "Cancel" -msgstr "Annuler" - #: scheduler/forms.py:122 msgid "Unable to validate overlaps: schedule profile is missing." msgstr "" @@ -1189,17 +1530,6 @@ msgstr "" "Veuillez contacter votre administrateur système si vous pensez qu’il s’agit " "d’une erreur." -#: templates/accounts/login.html:14 templates/user_manager/list.html:8 -#: user_manager/forms.py:13 vpn_invite/forms.py:281 -msgid "Username" -msgstr "Nom d’utilisateur" - -#: 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" - #: templates/accounts/login.html:32 msgid "Login" msgstr "Connexion" @@ -1226,6 +1556,8 @@ msgid "In" msgstr "Entrée" #: templates/api_v2/api_documentation.html:49 +#: templates/gatekeeper/gatekeeper_list.html:144 +#: templates/gatekeeper/gatekeeper_list.html:189 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Type" @@ -1280,6 +1612,11 @@ msgstr "Désactivé" #: templates/api_v2/list.html:68 templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 +#: templates/gatekeeper/gatekeeper_list.html:67 +#: templates/gatekeeper/gatekeeper_list.html:110 +#: templates/gatekeeper/gatekeeper_list.html:155 +#: templates/gatekeeper/gatekeeper_list.html:203 +#: templates/gatekeeper/gatekeeper_list.html:220 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -1808,6 +2145,84 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Créer une règle de redirection de port" +#: templates/gatekeeper/gatekeeper_list.html:12 +msgid "Gatekeeper Users" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:18 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Methods" +msgstr "Authentification" + +#: templates/gatekeeper/gatekeeper_list.html:24 +msgid "Allowed Emails & Domains" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:34 +#: templates/user_manager/peer_group_list.html:11 +msgid "Users" +msgstr "Utilisateurs" + +#: templates/gatekeeper/gatekeeper_list.html:37 +#, fuzzy +#| msgid "Peer Groups" +msgid "Groups" +msgstr "Groupes de peers" + +#: templates/gatekeeper/gatekeeper_list.html:45 +#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 +msgid "Add User" +msgstr "Ajouter un utilisateur" + +#: templates/gatekeeper/gatekeeper_list.html:57 +#: templates/gatekeeper/gatekeeper_list.html:100 +#: templates/gatekeeper/gatekeeper_list.html:145 +#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/scheduler/scheduleprofile_form.html:111 +#: templates/scheduler/scheduleprofile_list.html:15 +#: templates/wireguard/apply_route_template.html:28 +msgid "Actions" +msgstr "Actions" + +#: templates/gatekeeper/gatekeeper_list.html:82 +#, fuzzy +#| msgid "No time intervals found." +msgid "No Gatekeeper Users found." +msgstr "Aucun intervalle de temps trouvé." + +#: templates/gatekeeper/gatekeeper_list.html:89 +#, fuzzy +#| msgid "Add Peer Group" +msgid "Add Group" +msgstr "Ajouter un groupe de peers" + +#: templates/gatekeeper/gatekeeper_list.html:125 +msgid "No Gatekeeper Groups found." +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:134 +msgid "Add Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:170 +#, fuzzy +#| msgid "Authentication" +msgid "No Authentication Methods found." +msgstr "Authentification" + +#: templates/gatekeeper/gatekeeper_list.html:190 +msgid "Identity" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:191 +msgid "Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:235 +msgid "No Allowed Emails or Domains found." +msgstr "" + #: templates/generic_delete_confirmation.html:16 msgid "Confirm Delete" msgstr "Confirmer la Suppression" @@ -1855,12 +2270,6 @@ msgstr "Intervalles de Temps" msgid "Add Interval" msgstr "Ajouter um Intervalle" -#: templates/scheduler/scheduleprofile_form.html:111 -#: templates/scheduler/scheduleprofile_list.html:15 -#: templates/wireguard/apply_route_template.html:28 -msgid "Actions" -msgstr "Actions" - #: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Aucun intervalle de temps trouvé." @@ -1980,10 +2389,6 @@ msgstr "Console autorisée" msgid "Enhanced Filter Enabled" msgstr "Filtre avancé activé" -#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 -msgid "Add User" -msgstr "Ajouter un utilisateur" - #: templates/user_manager/list_buttons.html:3 msgid "List Users" msgstr "Lister les utilisateurs" @@ -2000,10 +2405,6 @@ msgstr "Ajouter un groupe de peers" msgid "Server Instance" msgstr "Instance serveur" -#: templates/user_manager/peer_group_list.html:11 -msgid "Users" -msgstr "Utilisateurs" - #: templates/vpn_invite/invite_settings.html:18 msgid "Expiration" msgstr "Expiration" @@ -2121,10 +2522,6 @@ msgstr "E‑mail ou numéro de téléphone" msgid "Copy Text" msgstr "Copier le texte" -#: templates/wireguard/peer_list/peer_preview_modal.html:103 -msgid "Email" -msgstr "E‑mail" - #: templates/wireguard/peer_list/peer_preview_modal.html:106 msgid "WhatsApp" msgstr "WhatsApp" @@ -3467,9 +3864,6 @@ msgstr "Aucune interface trouvée | Aucune interface WireGuard à traiter." #~ msgid "Add Schedule Slot" #~ msgstr "Ajouter un Créneau de Planification" -#~ msgid "Schedule Slot deleted successfully." -#~ msgstr "Créneau de planification supprimé avec succès." - #~ msgid "Delete Schedule Slot" #~ msgstr "Supprimer le Créneau de Planification" diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index dfec13b..9b6a0c1 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-11 18:49-0300\n" +"POT-Creation-Date: 2026-03-12 09:46-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -35,6 +35,11 @@ msgstr "Voltar" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 +#: templates/gatekeeper/gatekeeper_list.html:71 +#: templates/gatekeeper/gatekeeper_list.html:114 +#: templates/gatekeeper/gatekeeper_list.html:159 +#: templates/gatekeeper/gatekeeper_list.html:207 +#: templates/gatekeeper/gatekeeper_list.html:224 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -54,8 +59,10 @@ msgid "" msgstr "" #: api_v2/forms.py:63 cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 -#: dns/forms.py:84 dns/forms.py:153 routing_templates/forms.py:71 -#: scheduler/forms.py:102 templates/firewall/manage_firewall_rule.html:379 +#: dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:40 +#: gatekeeper/forms.py:74 gatekeeper/forms.py:136 gatekeeper/forms.py:211 +#: gatekeeper/forms.py:242 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 #: templates/scheduler/scheduleprofile_form.html:200 @@ -67,9 +74,10 @@ msgid "Save" msgstr "Salvar" #: api_v2/models.py:10 cluster/forms.py:18 dns/forms.py:130 -#: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 -#: templates/api_v2/list.html:8 templates/cluster/workers_list.html:8 -#: templates/dns/static_host_list.html:68 +#: gatekeeper/forms.py:98 routing_templates/forms.py:28 +#: templates/api_v2/api_documentation.html:47 templates/api_v2/list.html:8 +#: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 +#: templates/gatekeeper/gatekeeper_list.html:143 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -108,6 +116,10 @@ msgstr "Habilitado" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 #: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114 +#: gatekeeper/views.py:18 gatekeeper/views.py:42 gatekeeper/views.py:75 +#: gatekeeper/views.py:99 gatekeeper/views.py:132 gatekeeper/views.py:156 +#: gatekeeper/views.py:203 gatekeeper/views.py:227 gatekeeper/views.py:260 +#: gatekeeper/views.py:284 gatekeeper/views.py:317 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acesso Negado" @@ -193,7 +205,7 @@ msgstr "" msgid "Two Factor" msgstr "" -#: app_gateway/models.py:45 +#: app_gateway/models.py:45 gatekeeper/models.py:114 msgid "Deny" msgstr "" @@ -828,28 +840,362 @@ msgstr "Gerenciar Configurações de Firewall" msgid "Firewall settings saved successfully" msgstr "Configurações de Firewall salvas com sucesso" -#: gatekeeper/models.py:9 +#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:55 +#: templates/user_manager/list.html:8 user_manager/forms.py:13 +#: vpn_invite/forms.py:281 +msgid "Username" +msgstr "Usuário" + +#: gatekeeper/forms.py:17 gatekeeper/forms.py:226 +#: templates/gatekeeper/gatekeeper_list.html:56 +#: templates/gatekeeper/gatekeeper_list.html:198 +#: templates/wireguard/peer_list/peer_preview_modal.html:103 +msgid "Email" +msgstr "Email" + +#: 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:19 +msgid "TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:41 gatekeeper/forms.py:75 gatekeeper/forms.py:137 +#: gatekeeper/forms.py:212 gatekeeper/forms.py:243 scheduler/forms.py:103 +#: templates/generic_delete_confirmation.html:19 +#: templates/scheduler/scheduleprofile_form.html:203 +msgid "Cancel" +msgstr "Cancelar" + +#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:98 +#, fuzzy +#| msgid "Profile Name" +msgid "Group Name" +msgstr "Nome do Perfil" + +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:99 +msgid "Members" +msgstr "" + +#: gatekeeper/forms.py:85 +msgid "TOTP Validation PIN" +msgstr "" + +#: gatekeeper/forms.py:88 +msgid "" +"Enter a 6-digit PIN generated by your authenticator app to validate the " +"secret." +msgstr "" + +#: gatekeeper/forms.py:99 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Type" +msgstr "Autenticação" + +#: gatekeeper/forms.py:100 +msgid "Global TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:101 +msgid "OIDC Provider URL" +msgstr "" + +#: gatekeeper/forms.py:102 +msgid "OIDC Client ID" +msgstr "" + +#: gatekeeper/forms.py:103 +msgid "OIDC Client Secret" +msgstr "" + +#: gatekeeper/forms.py:154 +msgid "TOTP secret must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:156 +msgid "TOTP validation PIN must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:158 +msgid "OIDC fields must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:164 +msgid "Only one Local Password authentication method can be configured." +msgstr "" + +#: gatekeeper/forms.py:167 +msgid "OIDC fields must be empty for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:169 +msgid "TOTP secret is required for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:173 +#, fuzzy +#| msgid "Please provide a valid IP address." +msgid "Please provide a PIN to validate the TOTP secret." +msgstr "Por favor, forneça um endereço IP válido." + +#: gatekeeper/forms.py:178 +msgid "Invalid TOTP PIN." +msgstr "" + +#: gatekeeper/forms.py:180 +msgid "Invalid TOTP secret format. Must be a valid Base32 string." +msgstr "" + +#: gatekeeper/forms.py:183 +msgid "TOTP secret must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:185 +msgid "TOTP validation PIN must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:194 gatekeeper/forms.py:225 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Method" +msgstr "Autenticação" + +#: gatekeeper/forms.py:195 templates/gatekeeper/gatekeeper_list.html:215 +msgid "Domain" +msgstr "" + +#: gatekeeper/models.py:10 #, fuzzy #| msgid "Default Password" msgid "Local Password" msgstr "Senha Padrão" -#: gatekeeper/models.py:9 -msgid "TOTP" +#: gatekeeper/models.py:11 +msgid "One-Time Password (TOTP)" msgstr "" -#: gatekeeper/models.py:9 -msgid "OIDC" +#: gatekeeper/models.py:12 +msgid "OpenID Connect (OIDC)" msgstr "" -#: gatekeeper/models.py:66 +#: gatekeeper/models.py:13 +#, fuzzy +#| msgid "IP Address" +msgid "IP Address List" +msgstr "Endereço IP" + +#: gatekeeper/models.py:71 msgid "Password for local authentication (leave blank if not using)" msgstr "" -#: gatekeeper/models.py:67 +#: gatekeeper/models.py:72 msgid "Per-user TOTP secret key" msgstr "" +#: gatekeeper/models.py:112 +msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +msgstr "" + +#: gatekeeper/models.py:114 +#, fuzzy +#| msgid "Allowed IPs" +msgid "Allow" +msgstr "IPs Permitidos" + +#: gatekeeper/views.py:48 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Gatekeeper User" +msgstr "Editar Usuário" + +#: gatekeeper/views.py:51 +#, fuzzy +#| msgid "Create Peer" +msgid "Create Gatekeeper User" +msgstr "Criar Peer" + +#: gatekeeper/views.py:59 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Gatekeeper User saved successfully." +msgstr "Chave de API salva com sucesso." + +#: gatekeeper/views.py:84 +#, fuzzy +#| msgid "Peer deleted|Peer deleted successfully." +msgid "Gatekeeper User deleted successfully." +msgstr "Peer excluído|Peer excluído com sucesso." + +#: gatekeeper/views.py:89 +#, fuzzy +#| msgid "Delete Peer" +msgid "Delete Gatekeeper User" +msgstr "Excluir Peer" + +#: gatekeeper/views.py:91 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the user \"%(username)s\"?" +msgstr "Tem certeza de que deseja excluir a Chave de API \"%(name)s\"?" + +#: gatekeeper/views.py:105 +#, fuzzy +#| msgid "Edit Peer Group: " +msgid "Edit Gatekeeper Group" +msgstr "Editar Grupo de Peers: " + +#: gatekeeper/views.py:108 +msgid "Create Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:116 +#, fuzzy +#| msgid "Peer reactivated successfully." +msgid "Gatekeeper Group saved successfully." +msgstr "Peer reativado com sucesso." + +#: gatekeeper/views.py:141 +#, fuzzy +#| msgid "Schedule Slot deleted successfully." +msgid "Gatekeeper Group deleted successfully." +msgstr "Slot de agendamento excluído com sucesso." + +#: gatekeeper/views.py:146 +msgid "Delete Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:148 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the group \"%(name)s\"?" +msgstr "Tem certeza de que deseja excluir o perfil \"%(name)s\"?" + +#: gatekeeper/views.py:162 +#, fuzzy +#| msgid "Authentication" +msgid "Edit Authentication Method" +msgstr "Autenticação" + +#: gatekeeper/views.py:165 +#, fuzzy +#| msgid "Authentication" +msgid "Create Authentication Method" +msgstr "Autenticação" + +#: gatekeeper/views.py:173 +#, fuzzy +#| msgid "Static DNS saved successfully" +msgid "Authentication Method saved successfully." +msgstr "DNS Estático salvo com sucesso" + +#: gatekeeper/views.py:180 +msgid "" +"\n" +"
Authentication Types
\n" +"

Select how users will authenticate through this method.

\n" +"
    \n" +"
  • Local Password: Users will authenticate " +"using a standard username and password stored locally. Only one of this type " +"can be created.
  • \n" +"
  • TOTP (Time-Based One-Time Password): Users " +"will need to enter a rotating token from an authenticator app. Requires " +"setting a Global TOTP Secret.
  • \n" +"
  • OIDC (OpenID Connect): Users will " +"authenticate via an external identity provider (like Keycloak, Google, or " +"Authelia). Requires Provider URL, Client ID, and Client Secret.
  • \n" +"
\n" +" " +msgstr "" + +#: gatekeeper/views.py:212 +#, fuzzy +#| msgid "Static DNS deleted successfully" +msgid "Authentication Method deleted successfully." +msgstr "DNS Estático excluído com sucesso" + +#: gatekeeper/views.py:217 +#, fuzzy +#| msgid "Authentication" +msgid "Delete Authentication Method" +msgstr "Autenticação" + +#: gatekeeper/views.py:219 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" +msgstr "Tem certeza de que deseja excluir a Chave de API \"%(name)s\"?" + +#: gatekeeper/views.py:233 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Domain" +msgstr "Inserir IP Permitido" + +#: gatekeeper/views.py:236 templates/gatekeeper/gatekeeper_list.html:180 +msgid "Add Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:244 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Domain saved successfully." +msgstr "Chave de API salva com sucesso." + +#: gatekeeper/views.py:269 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Domain deleted successfully." +msgstr "Chave de API excluída com sucesso." + +#: gatekeeper/views.py:274 +msgid "Delete Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:276 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" +msgstr "Tem certeza de que deseja excluir o perfil \"%(name)s\"?" + +#: gatekeeper/views.py:290 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Email" +msgstr "Inserir IP Permitido" + +#: gatekeeper/views.py:293 templates/gatekeeper/gatekeeper_list.html:177 +msgid "Add Allowed Email" +msgstr "" + +#: gatekeeper/views.py:301 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Email saved successfully." +msgstr "Chave de API salva com sucesso." + +#: gatekeeper/views.py:326 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Email deleted successfully." +msgstr "Chave de API excluída com sucesso." + +#: gatekeeper/views.py:331 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Delete Allowed Email" +msgstr "Inserir IP Permitido" + +#: gatekeeper/views.py:333 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" +msgstr "Tem certeza de que deseja excluir o perfil \"%(name)s\"?" + #: intl_tools/forms.py:11 templates/accounts/login.html:36 msgid "Language" msgstr "Idioma" @@ -1076,11 +1422,6 @@ msgstr "Dia de Término" msgid "End Time" msgstr "Hora de Término" -#: scheduler/forms.py:103 templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:203 -msgid "Cancel" -msgstr "Cancelar" - #: scheduler/forms.py:122 msgid "Unable to validate overlaps: schedule profile is missing." msgstr "" @@ -1192,17 +1533,6 @@ msgstr "" "que isto é um erro.Por favor, entre em contato com o administrador do " "sistema se você acredita que isto é um erro." -#: templates/accounts/login.html:14 templates/user_manager/list.html:8 -#: user_manager/forms.py:13 vpn_invite/forms.py:281 -msgid "Username" -msgstr "Usuário" - -#: 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" - #: templates/accounts/login.html:32 msgid "Login" msgstr "Acessar" @@ -1229,6 +1559,8 @@ msgid "In" msgstr "Entrada" #: templates/api_v2/api_documentation.html:49 +#: templates/gatekeeper/gatekeeper_list.html:144 +#: templates/gatekeeper/gatekeeper_list.html:189 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Tipo" @@ -1283,6 +1615,11 @@ msgstr "Desabilitado" #: templates/api_v2/list.html:68 templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 +#: templates/gatekeeper/gatekeeper_list.html:67 +#: templates/gatekeeper/gatekeeper_list.html:110 +#: templates/gatekeeper/gatekeeper_list.html:155 +#: templates/gatekeeper/gatekeeper_list.html:203 +#: templates/gatekeeper/gatekeeper_list.html:220 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -1818,6 +2155,84 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Criar Regra de Encaminhamento de Porta" +#: templates/gatekeeper/gatekeeper_list.html:12 +msgid "Gatekeeper Users" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:18 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Methods" +msgstr "Autenticação" + +#: templates/gatekeeper/gatekeeper_list.html:24 +msgid "Allowed Emails & Domains" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:34 +#: templates/user_manager/peer_group_list.html:11 +msgid "Users" +msgstr "Usuários" + +#: templates/gatekeeper/gatekeeper_list.html:37 +#, fuzzy +#| msgid "Peer Groups" +msgid "Groups" +msgstr "Grupos de Peers" + +#: templates/gatekeeper/gatekeeper_list.html:45 +#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 +msgid "Add User" +msgstr "Adicionar Usuário" + +#: templates/gatekeeper/gatekeeper_list.html:57 +#: templates/gatekeeper/gatekeeper_list.html:100 +#: templates/gatekeeper/gatekeeper_list.html:145 +#: templates/gatekeeper/gatekeeper_list.html:192 +#: 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/gatekeeper/gatekeeper_list.html:82 +#, fuzzy +#| msgid "No time intervals found." +msgid "No Gatekeeper Users found." +msgstr "Nenhum intervalo de horário encontrado." + +#: templates/gatekeeper/gatekeeper_list.html:89 +#, fuzzy +#| msgid "Add Peer Group" +msgid "Add Group" +msgstr "Adicionar Grupo de Peers" + +#: templates/gatekeeper/gatekeeper_list.html:125 +msgid "No Gatekeeper Groups found." +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:134 +msgid "Add Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:170 +#, fuzzy +#| msgid "Authentication" +msgid "No Authentication Methods found." +msgstr "Autenticação" + +#: templates/gatekeeper/gatekeeper_list.html:190 +msgid "Identity" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:191 +msgid "Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:235 +msgid "No Allowed Emails or Domains found." +msgstr "" + #: templates/generic_delete_confirmation.html:16 msgid "Confirm Delete" msgstr "Confirmar Exclusão" @@ -1865,12 +2280,6 @@ msgstr "Intervalos de Horário" msgid "Add Interval" msgstr "Adicionar Intervalo" -#: templates/scheduler/scheduleprofile_form.html:111 -#: templates/scheduler/scheduleprofile_list.html:15 -#: templates/wireguard/apply_route_template.html:28 -msgid "Actions" -msgstr "Ações" - #: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Nenhum intervalo de horário encontrado." @@ -1990,10 +2399,6 @@ msgstr "Console Habilitado" msgid "Enhanced Filter Enabled" msgstr "Filtro Aprimorado Habilitado" -#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 -msgid "Add User" -msgstr "Adicionar Usuário" - #: templates/user_manager/list_buttons.html:3 msgid "List Users" msgstr "Lista de Usuários" @@ -2010,10 +2415,6 @@ msgstr "Adicionar Grupo de Peers" msgid "Server Instance" msgstr "Instância do WireGuard" -#: templates/user_manager/peer_group_list.html:11 -msgid "Users" -msgstr "Usuários" - #: templates/vpn_invite/invite_settings.html:18 msgid "Expiration" msgstr "Expira em" @@ -2131,10 +2532,6 @@ msgstr "Email ou número de telefone" msgid "Copy Text" msgstr "Copiar Texto" -#: templates/wireguard/peer_list/peer_preview_modal.html:103 -msgid "Email" -msgstr "Email" - #: templates/wireguard/peer_list/peer_preview_modal.html:106 msgid "WhatsApp" msgstr "WhatsApp" @@ -3470,9 +3867,6 @@ msgstr "" #~ msgid "Add Schedule Slot" #~ msgstr "Adicionar Slot de Agendamento" -#~ msgid "Schedule Slot deleted successfully." -#~ msgstr "Slot de agendamento excluído com sucesso." - #~ msgid "Delete Schedule Slot" #~ msgstr "Excluir Slot de Agendamento" diff --git a/locale/sk/LC_MESSAGES/django.po b/locale/sk/LC_MESSAGES/django.po index 5eeec96..e1852e0 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-11 18:49-0300\n" +"POT-Creation-Date: 2026-03-12 09:46-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -36,6 +36,11 @@ msgstr "Späť" #: routing_templates/forms.py:37 #: templates/firewall/manage_firewall_rule.html:382 #: templates/firewall/manage_redirect_rule.html:86 +#: templates/gatekeeper/gatekeeper_list.html:71 +#: templates/gatekeeper/gatekeeper_list.html:114 +#: templates/gatekeeper/gatekeeper_list.html:159 +#: templates/gatekeeper/gatekeeper_list.html:207 +#: templates/gatekeeper/gatekeeper_list.html:224 #: templates/scheduler/scheduleprofile_form.html:127 #: templates/scheduler/scheduleprofile_list.html:29 #: templates/wireguard/peer_list/peer_preview_modal.html:109 @@ -55,8 +60,10 @@ msgid "" msgstr "" #: api_v2/forms.py:63 cluster/forms.py:67 cluster/forms.py:124 dns/forms.py:37 -#: dns/forms.py:84 dns/forms.py:153 routing_templates/forms.py:71 -#: scheduler/forms.py:102 templates/firewall/manage_firewall_rule.html:379 +#: dns/forms.py:84 dns/forms.py:153 gatekeeper/forms.py:40 +#: gatekeeper/forms.py:74 gatekeeper/forms.py:136 gatekeeper/forms.py:211 +#: gatekeeper/forms.py:242 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 #: templates/scheduler/scheduleprofile_form.html:200 @@ -68,9 +75,10 @@ msgid "Save" msgstr "Uložiť" #: api_v2/models.py:10 cluster/forms.py:18 dns/forms.py:130 -#: routing_templates/forms.py:28 templates/api_v2/api_documentation.html:47 -#: templates/api_v2/list.html:8 templates/cluster/workers_list.html:8 -#: templates/dns/static_host_list.html:68 +#: gatekeeper/forms.py:98 routing_templates/forms.py:28 +#: templates/api_v2/api_documentation.html:47 templates/api_v2/list.html:8 +#: templates/cluster/workers_list.html:8 templates/dns/static_host_list.html:68 +#: templates/gatekeeper/gatekeeper_list.html:143 #: templates/routing_templates/list.html:8 #: templates/scheduler/scheduleprofile_list.html:13 #: templates/user_manager/peer_group_list.html:8 @@ -109,6 +117,10 @@ msgstr "Povolené" #: api_v2/views.py:17 api_v2/views.py:27 api_v2/views.py:82 api_v2/views.py:106 #: cluster/views.py:18 cluster/views.py:45 cluster/views.py:114 +#: gatekeeper/views.py:18 gatekeeper/views.py:42 gatekeeper/views.py:75 +#: gatekeeper/views.py:99 gatekeeper/views.py:132 gatekeeper/views.py:156 +#: gatekeeper/views.py:203 gatekeeper/views.py:227 gatekeeper/views.py:260 +#: gatekeeper/views.py:284 gatekeeper/views.py:317 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Prístup zamietnutý" @@ -194,7 +206,7 @@ msgstr "" msgid "Two Factor" msgstr "" -#: app_gateway/models.py:45 +#: app_gateway/models.py:45 gatekeeper/models.py:114 msgid "Deny" msgstr "" @@ -821,28 +833,362 @@ msgstr "Spravovať nastavenia firewall" msgid "Firewall settings saved successfully" msgstr "Nastavenia firewall boli úspešne uložené" -#: gatekeeper/models.py:9 +#: gatekeeper/forms.py:16 templates/accounts/login.html:14 +#: templates/gatekeeper/gatekeeper_list.html:55 +#: templates/user_manager/list.html:8 user_manager/forms.py:13 +#: vpn_invite/forms.py:281 +msgid "Username" +msgstr "Používateľské meno" + +#: gatekeeper/forms.py:17 gatekeeper/forms.py:226 +#: templates/gatekeeper/gatekeeper_list.html:56 +#: templates/gatekeeper/gatekeeper_list.html:198 +#: templates/wireguard/peer_list/peer_preview_modal.html:103 +msgid "Email" +msgstr "E-mail" + +#: 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:19 +msgid "TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:41 gatekeeper/forms.py:75 gatekeeper/forms.py:137 +#: gatekeeper/forms.py:212 gatekeeper/forms.py:243 scheduler/forms.py:103 +#: templates/generic_delete_confirmation.html:19 +#: templates/scheduler/scheduleprofile_form.html:203 +msgid "Cancel" +msgstr "Zrušiť" + +#: gatekeeper/forms.py:54 templates/gatekeeper/gatekeeper_list.html:98 +#, fuzzy +#| msgid "Profile Name" +msgid "Group Name" +msgstr "Názov profilu" + +#: gatekeeper/forms.py:55 templates/gatekeeper/gatekeeper_list.html:99 +msgid "Members" +msgstr "" + +#: gatekeeper/forms.py:85 +msgid "TOTP Validation PIN" +msgstr "" + +#: gatekeeper/forms.py:88 +msgid "" +"Enter a 6-digit PIN generated by your authenticator app to validate the " +"secret." +msgstr "" + +#: gatekeeper/forms.py:99 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Type" +msgstr "Autentifikácia" + +#: gatekeeper/forms.py:100 +msgid "Global TOTP Secret" +msgstr "" + +#: gatekeeper/forms.py:101 +msgid "OIDC Provider URL" +msgstr "" + +#: gatekeeper/forms.py:102 +msgid "OIDC Client ID" +msgstr "" + +#: gatekeeper/forms.py:103 +msgid "OIDC Client Secret" +msgstr "" + +#: gatekeeper/forms.py:154 +msgid "TOTP secret must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:156 +msgid "TOTP validation PIN must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:158 +msgid "OIDC fields must be empty for Local Password authentication." +msgstr "" + +#: gatekeeper/forms.py:164 +msgid "Only one Local Password authentication method can be configured." +msgstr "" + +#: gatekeeper/forms.py:167 +msgid "OIDC fields must be empty for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:169 +msgid "TOTP secret is required for TOTP authentication." +msgstr "" + +#: gatekeeper/forms.py:173 +#, fuzzy +#| msgid "Please provide a valid IP address." +msgid "Please provide a PIN to validate the TOTP secret." +msgstr "Prosím zadajte platnú IP adresu." + +#: gatekeeper/forms.py:178 +msgid "Invalid TOTP PIN." +msgstr "" + +#: gatekeeper/forms.py:180 +msgid "Invalid TOTP secret format. Must be a valid Base32 string." +msgstr "" + +#: gatekeeper/forms.py:183 +msgid "TOTP secret must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:185 +msgid "TOTP validation PIN must be empty for OIDC authentication." +msgstr "" + +#: gatekeeper/forms.py:194 gatekeeper/forms.py:225 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Method" +msgstr "Autentifikácia" + +#: gatekeeper/forms.py:195 templates/gatekeeper/gatekeeper_list.html:215 +msgid "Domain" +msgstr "" + +#: gatekeeper/models.py:10 #, fuzzy #| msgid "Default Password" msgid "Local Password" msgstr "Predvolené heslo" -#: gatekeeper/models.py:9 -msgid "TOTP" +#: gatekeeper/models.py:11 +msgid "One-Time Password (TOTP)" msgstr "" -#: gatekeeper/models.py:9 -msgid "OIDC" +#: gatekeeper/models.py:12 +msgid "OpenID Connect (OIDC)" msgstr "" -#: gatekeeper/models.py:66 +#: gatekeeper/models.py:13 +#, fuzzy +#| msgid "IP Address" +msgid "IP Address List" +msgstr "IP adresa" + +#: gatekeeper/models.py:71 msgid "Password for local authentication (leave blank if not using)" msgstr "" -#: gatekeeper/models.py:67 +#: gatekeeper/models.py:72 msgid "Per-user TOTP secret key" msgstr "" +#: gatekeeper/models.py:112 +msgid "CIDR prefix length (e.g.: 24 for /24). Leave blank for a single host." +msgstr "" + +#: gatekeeper/models.py:114 +#, fuzzy +#| msgid "Allowed IPs" +msgid "Allow" +msgstr "Povolené IP adresy" + +#: gatekeeper/views.py:48 +#, fuzzy +#| msgid "Edit User" +msgid "Edit Gatekeeper User" +msgstr "Upraviť používateľa" + +#: gatekeeper/views.py:51 +#, fuzzy +#| msgid "Create Peer" +msgid "Create Gatekeeper User" +msgstr "Vytvoriť peer" + +#: gatekeeper/views.py:59 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Gatekeeper User saved successfully." +msgstr "Kľúč API bol úspešne uložený." + +#: gatekeeper/views.py:84 +#, fuzzy +#| msgid "Peer deleted|Peer deleted successfully." +msgid "Gatekeeper User deleted successfully." +msgstr "Peer vymazaný|Peer bol úspešne vymazaný." + +#: gatekeeper/views.py:89 +#, fuzzy +#| msgid "Delete Peer" +msgid "Delete Gatekeeper User" +msgstr "Vymazať peer" + +#: gatekeeper/views.py:91 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the user \"%(username)s\"?" +msgstr "Ste si istí, že chcete odstrániť kľúč API \"%(name)s\"?" + +#: gatekeeper/views.py:105 +#, fuzzy +#| msgid "Edit Peer Group: " +msgid "Edit Gatekeeper Group" +msgstr "Upraviť peer skupinu: " + +#: gatekeeper/views.py:108 +msgid "Create Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:116 +#, fuzzy +#| msgid "Peer reactivated successfully." +msgid "Gatekeeper Group saved successfully." +msgstr "Peer úspešne reaktivovaný." + +#: gatekeeper/views.py:141 +#, fuzzy +#| msgid "Schedule Slot deleted successfully." +msgid "Gatekeeper Group deleted successfully." +msgstr "Slot plánovania bol úspešne vymazaný." + +#: gatekeeper/views.py:146 +msgid "Delete Gatekeeper Group" +msgstr "" + +#: gatekeeper/views.py:148 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the group \"%(name)s\"?" +msgstr "Ste si istí, že chcete odstrániť profil \"%(name)s\"?" + +#: gatekeeper/views.py:162 +#, fuzzy +#| msgid "Authentication" +msgid "Edit Authentication Method" +msgstr "Autentifikácia" + +#: gatekeeper/views.py:165 +#, fuzzy +#| msgid "Authentication" +msgid "Create Authentication Method" +msgstr "Autentifikácia" + +#: gatekeeper/views.py:173 +#, fuzzy +#| msgid "Static DNS saved successfully" +msgid "Authentication Method saved successfully." +msgstr "Statický DNS bol úspešne uložený" + +#: gatekeeper/views.py:180 +msgid "" +"\n" +"
Authentication Types
\n" +"

Select how users will authenticate through this method.

\n" +"
    \n" +"
  • Local Password: Users will authenticate " +"using a standard username and password stored locally. Only one of this type " +"can be created.
  • \n" +"
  • TOTP (Time-Based One-Time Password): Users " +"will need to enter a rotating token from an authenticator app. Requires " +"setting a Global TOTP Secret.
  • \n" +"
  • OIDC (OpenID Connect): Users will " +"authenticate via an external identity provider (like Keycloak, Google, or " +"Authelia). Requires Provider URL, Client ID, and Client Secret.
  • \n" +"
\n" +" " +msgstr "" + +#: gatekeeper/views.py:212 +#, fuzzy +#| msgid "Static DNS deleted successfully" +msgid "Authentication Method deleted successfully." +msgstr "Statický DNS bol úspešne vymazaný" + +#: gatekeeper/views.py:217 +#, fuzzy +#| msgid "Authentication" +msgid "Delete Authentication Method" +msgstr "Autentifikácia" + +#: gatekeeper/views.py:219 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the API Key \"%(name)s\"?" +msgid "Are you sure you want to delete the authentication method \"%(name)s\"?" +msgstr "Ste si istí, že chcete odstrániť kľúč API \"%(name)s\"?" + +#: gatekeeper/views.py:233 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Domain" +msgstr "Zadajte povolenú IP" + +#: gatekeeper/views.py:236 templates/gatekeeper/gatekeeper_list.html:180 +msgid "Add Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:244 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Domain saved successfully." +msgstr "Kľúč API bol úspešne uložený." + +#: gatekeeper/views.py:269 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Domain deleted successfully." +msgstr "Kľúč API bol úspešne vymazaný." + +#: gatekeeper/views.py:274 +msgid "Delete Allowed Domain" +msgstr "" + +#: gatekeeper/views.py:276 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed domain \"%(domain)s\"?" +msgstr "Ste si istí, že chcete odstrániť profil \"%(name)s\"?" + +#: gatekeeper/views.py:290 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Edit Allowed Email" +msgstr "Zadajte povolenú IP" + +#: gatekeeper/views.py:293 templates/gatekeeper/gatekeeper_list.html:177 +msgid "Add Allowed Email" +msgstr "" + +#: gatekeeper/views.py:301 +#, fuzzy +#| msgid "API Key saved successfully." +msgid "Allowed Email saved successfully." +msgstr "Kľúč API bol úspešne uložený." + +#: gatekeeper/views.py:326 +#, fuzzy +#| msgid "API Key deleted successfully." +msgid "Allowed Email deleted successfully." +msgstr "Kľúč API bol úspešne vymazaný." + +#: gatekeeper/views.py:331 +#, fuzzy +#| msgid "Enter Allowed IP" +msgid "Delete Allowed Email" +msgstr "Zadajte povolenú IP" + +#: gatekeeper/views.py:333 +#, fuzzy, python-format +#| msgid "Are you sure you want to delete the profile \"%(name)s\"?" +msgid "Are you sure you want to delete the allowed email \"%(email)s\"?" +msgstr "Ste si istí, že chcete odstrániť profil \"%(name)s\"?" + #: intl_tools/forms.py:11 templates/accounts/login.html:36 msgid "Language" msgstr "Jazyk" @@ -1062,11 +1408,6 @@ msgstr "Deň ukončenia" msgid "End Time" msgstr "Čas ukončenia" -#: scheduler/forms.py:103 templates/generic_delete_confirmation.html:19 -#: templates/scheduler/scheduleprofile_form.html:203 -msgid "Cancel" -msgstr "Zrušiť" - #: scheduler/forms.py:122 msgid "Unable to validate overlaps: schedule profile is missing." msgstr "Nepodarilo sa overiť prekrývanie: profil plánovania chýba." @@ -1171,17 +1512,6 @@ msgid "" "Please contact your system administrator if you believe this is an error." msgstr "Prosím kontaktujte správcu systému ak si myslíte, že je to chyba." -#: templates/accounts/login.html:14 templates/user_manager/list.html:8 -#: user_manager/forms.py:13 vpn_invite/forms.py:281 -msgid "Username" -msgstr "Používateľské meno" - -#: 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" - #: templates/accounts/login.html:32 msgid "Login" msgstr "Prihlásiť sa" @@ -1208,6 +1538,8 @@ msgid "In" msgstr "Vstup" #: templates/api_v2/api_documentation.html:49 +#: templates/gatekeeper/gatekeeper_list.html:144 +#: templates/gatekeeper/gatekeeper_list.html:189 #: templates/wireguard/apply_route_template.html:27 msgid "Type" msgstr "Typ" @@ -1262,6 +1594,11 @@ msgstr "Zakázané" #: templates/api_v2/list.html:68 templates/cluster/workers_list.html:77 #: templates/dns/static_host_list.html:74 +#: templates/gatekeeper/gatekeeper_list.html:67 +#: templates/gatekeeper/gatekeeper_list.html:110 +#: templates/gatekeeper/gatekeeper_list.html:155 +#: templates/gatekeeper/gatekeeper_list.html:203 +#: templates/gatekeeper/gatekeeper_list.html:220 #: templates/routing_templates/list.html:29 #: templates/scheduler/scheduleprofile_form.html:123 #: templates/scheduler/scheduleprofile_list.html:25 @@ -1793,6 +2130,84 @@ msgstr "" msgid "Create Port forwarding Rule" msgstr "Vytvoriť pravidlo presmerovania portov" +#: templates/gatekeeper/gatekeeper_list.html:12 +msgid "Gatekeeper Users" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:18 +#, fuzzy +#| msgid "Authentication" +msgid "Authentication Methods" +msgstr "Autentifikácia" + +#: templates/gatekeeper/gatekeeper_list.html:24 +msgid "Allowed Emails & Domains" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:34 +#: templates/user_manager/peer_group_list.html:11 +msgid "Users" +msgstr "Používatelia" + +#: templates/gatekeeper/gatekeeper_list.html:37 +#, fuzzy +#| msgid "Peer Groups" +msgid "Groups" +msgstr "Peer skupiny" + +#: templates/gatekeeper/gatekeeper_list.html:45 +#: 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:57 +#: templates/gatekeeper/gatekeeper_list.html:100 +#: templates/gatekeeper/gatekeeper_list.html:145 +#: templates/gatekeeper/gatekeeper_list.html:192 +#: templates/scheduler/scheduleprofile_form.html:111 +#: templates/scheduler/scheduleprofile_list.html:15 +#: templates/wireguard/apply_route_template.html:28 +msgid "Actions" +msgstr "Akcie" + +#: templates/gatekeeper/gatekeeper_list.html:82 +#, fuzzy +#| msgid "No time intervals found." +msgid "No Gatekeeper Users found." +msgstr "Nenašli sa žiadne časové intervaly." + +#: templates/gatekeeper/gatekeeper_list.html:89 +#, fuzzy +#| msgid "Add Peer Group" +msgid "Add Group" +msgstr "Pridať peer skupinu" + +#: templates/gatekeeper/gatekeeper_list.html:125 +msgid "No Gatekeeper Groups found." +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:134 +msgid "Add Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:170 +#, fuzzy +#| msgid "Authentication" +msgid "No Authentication Methods found." +msgstr "Autentifikácia" + +#: templates/gatekeeper/gatekeeper_list.html:190 +msgid "Identity" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:191 +msgid "Auth Method" +msgstr "" + +#: templates/gatekeeper/gatekeeper_list.html:235 +msgid "No Allowed Emails or Domains found." +msgstr "" + #: templates/generic_delete_confirmation.html:16 msgid "Confirm Delete" msgstr "Potvrdiť odstránenie" @@ -1840,12 +2255,6 @@ msgstr "Časové intervaly" msgid "Add Interval" msgstr "Pridať interval" -#: templates/scheduler/scheduleprofile_form.html:111 -#: templates/scheduler/scheduleprofile_list.html:15 -#: templates/wireguard/apply_route_template.html:28 -msgid "Actions" -msgstr "Akcie" - #: templates/scheduler/scheduleprofile_form.html:135 msgid "No time intervals found." msgstr "Nenašli sa žiadne časové intervaly." @@ -1965,10 +2374,6 @@ msgstr "Konzola povolená" msgid "Enhanced Filter Enabled" msgstr "Rozšírený filter povolený" -#: templates/user_manager/list_buttons.html:2 user_manager/views.py:111 -msgid "Add User" -msgstr "Pridať používateľa" - #: templates/user_manager/list_buttons.html:3 msgid "List Users" msgstr "Zoznam používateľov" @@ -1985,10 +2390,6 @@ msgstr "Pridať peer skupinu" msgid "Server Instance" msgstr "Inštancia servera" -#: templates/user_manager/peer_group_list.html:11 -msgid "Users" -msgstr "Používatelia" - #: templates/vpn_invite/invite_settings.html:18 msgid "Expiration" msgstr "Expirácia" @@ -2106,10 +2507,6 @@ msgstr "E-mail alebo telefónne číslo" msgid "Copy Text" msgstr "Kopírovať text" -#: templates/wireguard/peer_list/peer_preview_modal.html:103 -msgid "Email" -msgstr "E-mail" - #: templates/wireguard/peer_list/peer_preview_modal.html:106 msgid "WhatsApp" msgstr "WhatsApp" @@ -3439,9 +3836,6 @@ msgstr "" #~ msgid "Add Schedule Slot" #~ msgstr "Pridať Slot Plánovania" -#~ msgid "Schedule Slot deleted successfully." -#~ msgstr "Slot plánovania bol úspešne vymazaný." - #~ msgid "Delete Schedule Slot" #~ msgstr "Odstrániť Slot Plánovania"