From 6041fc4b89e6415576f8e58ffd41dbc0df4769ca Mon Sep 17 00:00:00 2001 From: Eduardo Silva Date: Thu, 1 Jan 2026 11:13:51 -0300 Subject: [PATCH] generate missing translations --- locale/de/LC_MESSAGES/django.mo | Bin 55082 -> 54855 bytes locale/de/LC_MESSAGES/django.po | 212 ++++++++++++++++++++--------- locale/es/LC_MESSAGES/django.mo | Bin 53329 -> 53100 bytes locale/es/LC_MESSAGES/django.po | 212 ++++++++++++++++++++--------- locale/fr/LC_MESSAGES/django.mo | Bin 55617 -> 55390 bytes locale/fr/LC_MESSAGES/django.po | 212 ++++++++++++++++++++--------- locale/pt_BR/LC_MESSAGES/django.mo | Bin 55461 -> 55233 bytes locale/pt_BR/LC_MESSAGES/django.po | 212 ++++++++++++++++++++--------- locale/sk/LC_MESSAGES/django.mo | Bin 55069 -> 54851 bytes locale/sk/LC_MESSAGES/django.po | 212 ++++++++++++++++++++--------- 10 files changed, 730 insertions(+), 330 deletions(-) diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index 6b677a50b6b5b89b5fe261c7c2cf3893c730b799..cce77a6b4c26cd60a4da0f54ead4616bc67cd790 100644 GIT binary patch delta 9284 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 delta 9454 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 diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index 750ce5e..fabe0d2 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: 2025-12-31 11:37-0300\n" +"POT-Creation-Date: 2026-01-01 11:13-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,7 @@ msgstr "" msgid "Name" msgstr "Name" -#: cluster/forms.py:18 templates/cluster/workers_list.html:96 +#: cluster/forms.py:18 templates/cluster/workers_list.html:93 #: vpn_invite/forms.py:49 vpn_invite/forms.py:294 msgid "Enabled" msgstr "Aktiviert" @@ -114,28 +114,32 @@ msgstr "Statistik-Sync-Intervall (Sekunden)" msgid "Stats Cache Interval (seconds)" msgstr "Statistik-Cache-Intervall (Sekunden)" -#: cluster/forms.py:103 templates/cluster/workers_list.html:106 +#: cluster/forms.py:103 templates/cluster/workers_list.html:103 msgid "Cluster Mode" msgstr "Cluster-Modus" -#: cluster/forms.py:104 templates/cluster/workers_list.html:122 +#: cluster/forms.py:104 templates/cluster/workers_list.html:124 msgid "Restart Mode" msgstr "Neustart-Modus" -#: cluster/forms.py:105 templates/cluster/workers_list.html:126 +#: cluster/forms.py:105 templates/cluster/workers_list.html:128 msgid "Worker Display" msgstr "Worker-Anzeige" -#: cluster/forms.py:146 +#: cluster/forms.py:147 msgid "Stats sync interval must be at least 60 seconds." msgstr "" "Das Statistik-Synchronisationsintervall muss mindestens 60 Sekunden betragen." -#: cluster/forms.py:149 +#: cluster/forms.py:150 msgid "Stats cache interval must be at least 60 seconds." msgstr "Das Statistik-Cache-Intervall muss mindestens 60 Sekunden betragen." -#: cluster/models.py:47 +#: cluster/forms.py:153 +msgid "Disabling WireGuard on the master server is currently not supported." +msgstr "" + +#: cluster/models.py:48 msgid "" "IP lock is enabled, but the worker is attempting to access from a different " "IP address." @@ -143,59 +147,63 @@ msgstr "" "Die IP-Sperre ist aktiviert, aber der Worker versucht von einer anderen IP-" "Adresse zuzugreifen." -#: cluster/models.py:48 +#: cluster/models.py:49 msgid "Worker is not enabled" msgstr "Worker ist nicht aktiviert" -#: cluster/models.py:49 +#: cluster/models.py:50 msgid "Cluster is not enabled" msgstr "Cluster ist nicht aktiviert" -#: cluster/models.py:50 +#: cluster/models.py:51 +#, fuzzy +#| msgid "" +#| "Please report worker_config_version and worker_version in the API request." msgid "" -"Please report worker_config_version and worker_version in the API request." +"Please report worker_config_version, worker_dns_version and worker_version " +"in the API request." msgstr "" "Bitte geben Sie worker_config_version und worker_version in der API-Anfrage " "an." -#: cluster/models.py:51 +#: cluster/models.py:52 msgid "Worker update is required." msgstr "Ein Worker-Update ist erforderlich." -#: cluster/views.py:15 cluster/views.py:33 cluster/views.py:102 +#: cluster/views.py:16 cluster/views.py:34 cluster/views.py:103 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Zugriff verweigert" -#: cluster/views.py:18 templates/base.html:162 +#: cluster/views.py:19 templates/base.html:162 msgid "Cluster" msgstr "Cluster" -#: cluster/views.py:39 +#: cluster/views.py:40 msgid "Edit Worker: " msgstr "Worker bearbeiten: " -#: cluster/views.py:45 +#: cluster/views.py:46 msgid "Worker deleted|Worker deleted: " msgstr "Worker gelöscht|Worker gelöscht: " -#: cluster/views.py:48 +#: cluster/views.py:49 msgid "Worker not deleted|Invalid confirmation." msgstr "Worker nicht gelöscht|Ungültige Bestätigung." -#: cluster/views.py:52 templates/cluster/workers_list.html:87 +#: cluster/views.py:53 templates/cluster/workers_list.html:84 msgid "Add Worker" msgstr "Worker hinzufügen" -#: cluster/views.py:63 +#: cluster/views.py:64 msgid "Worker updated|Worker updated: " msgstr "Worker aktualisiert|Worker aktualisiert: " -#: cluster/views.py:65 +#: cluster/views.py:66 msgid "Worker created|Worker created: " msgstr "Worker erstellt|Worker erstellt: " -#: cluster/views.py:70 +#: cluster/views.py:71 msgid "" "\n" "
Worker Configuration
\n" @@ -239,15 +247,15 @@ msgstr "" "Hostname).

\n" " " -#: cluster/views.py:105 templates/cluster/workers_list.html:88 +#: cluster/views.py:106 templates/cluster/workers_list.html:85 msgid "Cluster Settings" msgstr "Cluster-Einstellungen" -#: cluster/views.py:111 +#: cluster/views.py:112 msgid "Cluster settings updated successfully." msgstr "Cluster-Einstellungen erfolgreich aktualisiert." -#: cluster/views.py:118 +#: cluster/views.py:120 msgid "" "\n" "
Cluster Mode
\n" @@ -360,24 +368,24 @@ msgstr "Listen‑URL" msgid "DNS Filter List Details" msgstr "Details der DNS‑Filterliste" -#: dns/views.py:33 +#: dns/views.py:34 msgid "DNS settings applied successfully" msgstr "DNS‑Einstellungen erfolgreich angewendet" -#: dns/views.py:68 +#: dns/views.py:69 msgid "Default DNS Filter List created successfully" msgstr "Standard‑DNS‑Filterliste erfolgreich erstellt" -#: dns/views.py:71 +#: dns/views.py:72 msgid "" "Pending Changes|There are pending DNS changes that have not been applied" msgstr "Ausstehende Änderungen|Es liegen nicht angewendete DNS‑Änderungen vor" -#: dns/views.py:90 +#: dns/views.py:91 msgid "DNS Forwarders" msgstr "DNS‑Forwarder" -#: dns/views.py:91 +#: dns/views.py:92 msgid "" "All DNS queries will be forwarded to the primary resolver. If the primary " "resolver is not available, the secondary resolver will be used." @@ -385,63 +393,63 @@ msgstr "" "Alle DNS‑Anfragen werden an den primären Resolver weitergeleitet. Ist dieser " "nicht verfügbar, wird der sekundäre Resolver verwendet." -#: dns/views.py:118 +#: dns/views.py:119 msgid "Static DNS deleted successfully" msgstr "Statischer DNS erfolgreich gelöscht" -#: dns/views.py:121 +#: dns/views.py:122 msgid "Static DNS not deleted|Invalid confirmation" msgstr "Statischer DNS nicht gelöscht|Ungültige Bestätigung" -#: dns/views.py:131 +#: dns/views.py:132 msgid "Static DNS saved successfully" msgstr "Statischer DNS erfolgreich gespeichert" -#: dns/views.py:154 +#: dns/views.py:155 msgid "DNS Filter List not deleted | Filter List is enabled" msgstr "DNS‑Filterliste nicht gelöscht | Filterliste ist aktiviert" -#: dns/views.py:161 +#: dns/views.py:162 msgid "Error removing config file: " msgstr "Fehler beim Entfernen der Konfigurationsdatei: " -#: dns/views.py:164 +#: dns/views.py:165 msgid "DNS Filter List deleted successfully" msgstr "DNS‑Filterliste erfolgreich gelöscht" -#: dns/views.py:167 +#: dns/views.py:168 msgid "DNS Filter List not deleted | Invalid confirmation" msgstr "DNS‑Filterliste nicht gelöscht | Ungültige Bestätigung" -#: dns/views.py:177 +#: dns/views.py:178 msgid "DNS Filter List saved successfully" msgstr "DNS‑Filterliste erfolgreich gespeichert" -#: dns/views.py:204 +#: dns/views.py:205 msgid "Failed to read existing config file: " msgstr "Fehler beim Lesen der vorhandenen Konfigurationsdatei: " -#: dns/views.py:222 +#: dns/views.py:223 msgid "Failed to fetch the host list: " msgstr "Fehler beim Abrufen der Hostliste: " -#: dns/views.py:232 +#: dns/views.py:233 msgid "Failed to write config file: " msgstr "Fehler beim Schreiben der Konfigurationsdatei: " -#: dns/views.py:257 +#: dns/views.py:258 msgid "DNS Filter List updated successfully" msgstr "DNS‑Filterliste erfolgreich aktualisiert" -#: dns/views.py:274 +#: dns/views.py:275 msgid "DNS Filter List enabled successfully" msgstr "DNS‑Filterliste erfolgreich aktiviert" -#: dns/views.py:276 +#: dns/views.py:277 msgid "DNS Filter List not enabled | No valid hosts found" msgstr "DNS‑Filterliste nicht aktiviert | Keine gültigen Hosts gefunden" -#: dns/views.py:281 +#: dns/views.py:282 msgid "DNS Filter List disabled successfully" msgstr "DNS‑Filterliste erfolgreich deaktiviert" @@ -781,7 +789,7 @@ msgid "Last Seen" msgstr "Zuletzt gesehen" #: templates/cluster/workers_list.html:13 -#: templates/cluster/workers_list.html:110 +#: templates/cluster/workers_list.html:107 msgid "Config Version" msgstr "Konfigurationsversion" @@ -807,38 +815,107 @@ msgstr "Nicht gesetzt" msgid "Never" msgstr "Niemals" -#: templates/cluster/workers_list.html:68 -msgid "Config Pending" -msgstr "Konfiguration ausstehend" - -#: templates/cluster/workers_list.html:77 +#: templates/cluster/workers_list.html:74 #: templates/dns/static_host_list.html:74 templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 #: templates/wireguard/wireguard_peer_list.html:196 msgid "Edit" msgstr "Bearbeiten" -#: templates/cluster/workers_list.html:82 +#: templates/cluster/workers_list.html:79 msgid "No workers configured" msgstr "Keine Worker konfiguriert" +#: templates/cluster/workers_list.html:86 #: templates/cluster/workers_list.html:89 -#: templates/cluster/workers_list.html:92 msgid "Cluster Information" msgstr "Cluster-Informationen" -#: templates/cluster/workers_list.html:114 +#: templates/cluster/workers_list.html:111 +#, fuzzy +#| msgid "Version" +msgid "DNS Version" +msgstr "Version" + +#: templates/cluster/workers_list.html:116 msgid "Stats Sync Interval" msgstr "Statistik-Sync-Intervall" -#: templates/cluster/workers_list.html:118 +#: templates/cluster/workers_list.html:120 msgid "Stats Cache Interval" msgstr "Statistik-Cache-Intervall" -#: templates/cluster/workers_list.html:130 +#: templates/cluster/workers_list.html:132 msgid "Primary WireGuard" msgstr "Primäres WireGuard aktivieren" +#: templates/cluster/workers_list.html:150 +#, fuzzy +#| msgid "Cluster Settings" +msgid "Cluster Feature – Testing Phase" +msgstr "Cluster-Einstellungen" + +#: templates/cluster/workers_list.html:157 +msgid "The cluster functionality is currently released as experimental." +msgstr "" + +#: templates/cluster/workers_list.html:158 +msgid "At this stage, only core features are implemented:" +msgstr "" + +#: templates/cluster/workers_list.html:160 +#, fuzzy +#| msgid "Configuration sync in progress" +msgid "Configuration synchronization service" +msgstr "Konfigurationssynchronisierung läuft" + +#: templates/cluster/workers_list.html:161 +msgid "Primary node mirroring (WireGuard and firewall rules)" +msgstr "" + +#: templates/cluster/workers_list.html:162 +msgid "DNS rules mirroring" +msgstr "" + +#: templates/cluster/workers_list.html:165 +msgid "Warning:" +msgstr "" + +#: templates/cluster/workers_list.html:167 +msgid "" +"In the current version, peer state information is not collected by the " +"master server." +msgstr "" + +#: templates/cluster/workers_list.html:168 +msgid "" +"Traffic data, IP address, handshake status, and online/offline state will " +"not be visible for peers connected to cluster nodes." +msgstr "" + +#: templates/cluster/workers_list.html:170 +msgid "Next priority features (coming soon):" +msgstr "" + +#: templates/cluster/workers_list.html:172 +msgid "Traffic data synchronization" +msgstr "" + +#: templates/cluster/workers_list.html:173 +msgid "" +"Server selection dropdown before downloading peer configs or VPN invites" +msgstr "" + +#: templates/cluster/workers_list.html:177 +msgid "For more information, please visit:" +msgstr "" + +#: templates/cluster/workers_list.html:181 +#, fuzzy +#| msgid "Instance" +msgid "I Understand" +msgstr "Instanz" + #: templates/console/console.html:12 msgid "Clear" msgstr "Leeren" @@ -2312,7 +2389,7 @@ msgstr "IP‑Adresse aktualisiert|IP‑Adresse erfolgreich aktualisiert." msgid "IP address added|IP address added successfully." msgstr "IP‑Adresse hinzugefügt|IP‑Adresse erfolgreich hinzugefügt." -#: wireguard_tools/views.py:167 +#: wireguard_tools/views.py:165 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -2320,7 +2397,7 @@ msgstr "" "Export erfolgreich!|WireGuard‑Konfigurationsdateien wurden nach /etc/" "wireguard/ exportiert." -#: wireguard_tools/views.py:169 +#: wireguard_tools/views.py:167 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -2328,19 +2405,19 @@ msgstr "" "Export erfolgreich!|WireGuard‑Konfigurationsdateien wurden nach /etc/" "wireguard/ exportiert. Vergessen Sie nicht, die Interfaces neu zu starten." -#: wireguard_tools/views.py:262 +#: wireguard_tools/views.py:260 msgid "Error reloading" msgstr "Fehler beim Neu laden" -#: wireguard_tools/views.py:274 +#: wireguard_tools/views.py:272 msgid "Error stopping" msgstr "Fehler beim Stoppen" -#: wireguard_tools/views.py:279 +#: wireguard_tools/views.py:277 msgid "Error starting" msgstr "Fehler beim Starten" -#: wireguard_tools/views.py:286 +#: wireguard_tools/views.py:284 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -2350,26 +2427,29 @@ msgstr "" "Sie, ob alle Peers wie erwartet funktionieren. Melden Sie eventuelle " "Probleme." -#: wireguard_tools/views.py:287 +#: wireguard_tools/views.py:285 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard neu geladen|Der WireGuard‑Dienst wurde neu geladen." -#: wireguard_tools/views.py:289 +#: wireguard_tools/views.py:287 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard neu gestartet|Der WireGuard‑Dienst wurde neu gestartet." -#: wireguard_tools/views.py:292 +#: wireguard_tools/views.py:290 msgid "Errors encountered|Error processing one or more interfaces." msgstr "" "Fehler festgestellt|Beim Verarbeiten einer oder mehrerer Schnittstellen ist " "ein Fehler aufgetreten." -#: wireguard_tools/views.py:295 +#: wireguard_tools/views.py:293 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "Keine Schnittstellen gefunden|Es wurden keine WireGuard‑Schnittstellen " "gefunden." +#~ msgid "Config Pending" +#~ msgstr "Konfiguration ausstehend" + #~ msgid "Force Reload" #~ msgstr "Neu laden erzwingen" diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo index e456cea20a7da2ec794cec0a4d827817681391a8..fc0f25c56ca03353acdbbdda3b8b5f3abc935e24 100644 GIT binary patch delta 9284 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 delta 9477 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\n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,7 @@ msgstr "" msgid "Name" msgstr "Nombre" -#: cluster/forms.py:18 templates/cluster/workers_list.html:96 +#: cluster/forms.py:18 templates/cluster/workers_list.html:93 #: vpn_invite/forms.py:49 vpn_invite/forms.py:294 msgid "Enabled" msgstr "Habilitado" @@ -115,30 +115,34 @@ msgstr "Intervalo de sincronización de estadísticas (segundos)" msgid "Stats Cache Interval (seconds)" msgstr "Intervalo de caché de estadísticas (segundos)" -#: cluster/forms.py:103 templates/cluster/workers_list.html:106 +#: cluster/forms.py:103 templates/cluster/workers_list.html:103 msgid "Cluster Mode" msgstr "Modo de cluster" -#: cluster/forms.py:104 templates/cluster/workers_list.html:122 +#: cluster/forms.py:104 templates/cluster/workers_list.html:124 msgid "Restart Mode" msgstr "Modo de reinicio" -#: cluster/forms.py:105 templates/cluster/workers_list.html:126 +#: cluster/forms.py:105 templates/cluster/workers_list.html:128 msgid "Worker Display" msgstr "Visualización del worker" -#: cluster/forms.py:146 +#: cluster/forms.py:147 msgid "Stats sync interval must be at least 60 seconds." msgstr "" "El intervalo de sincronización de estadísticas debe ser de al menos 60 " "segundos." -#: cluster/forms.py:149 +#: cluster/forms.py:150 msgid "Stats cache interval must be at least 60 seconds." msgstr "" "El intervalo de caché de estadísticas debe ser de al menos 60 segundos." -#: cluster/models.py:47 +#: cluster/forms.py:153 +msgid "Disabling WireGuard on the master server is currently not supported." +msgstr "" + +#: cluster/models.py:48 msgid "" "IP lock is enabled, but the worker is attempting to access from a different " "IP address." @@ -146,59 +150,63 @@ msgstr "" "El bloqueo de IP está habilitado, pero el worker está intentando acceder " "desde una dirección IP diferente." -#: cluster/models.py:48 +#: cluster/models.py:49 msgid "Worker is not enabled" msgstr "Worker no está habilitado" -#: cluster/models.py:49 +#: cluster/models.py:50 msgid "Cluster is not enabled" msgstr "Cluster no está habilitado" -#: cluster/models.py:50 +#: cluster/models.py:51 +#, fuzzy +#| msgid "" +#| "Please report worker_config_version and worker_version in the API request." msgid "" -"Please report worker_config_version and worker_version in the API request." +"Please report worker_config_version, worker_dns_version and worker_version " +"in the API request." msgstr "" "Por favor, informe worker_config_version y worker_version en la solicitud de " "API." -#: cluster/models.py:51 +#: cluster/models.py:52 msgid "Worker update is required." msgstr "Se requiere la actualización del worker." -#: cluster/views.py:15 cluster/views.py:33 cluster/views.py:102 +#: cluster/views.py:16 cluster/views.py:34 cluster/views.py:103 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acceso denegado" -#: cluster/views.py:18 templates/base.html:162 +#: cluster/views.py:19 templates/base.html:162 msgid "Cluster" msgstr "Cluster" -#: cluster/views.py:39 +#: cluster/views.py:40 msgid "Edit Worker: " msgstr "Editar Worker: " -#: cluster/views.py:45 +#: cluster/views.py:46 msgid "Worker deleted|Worker deleted: " msgstr "Worker eliminado|Worker eliminado: " -#: cluster/views.py:48 +#: cluster/views.py:49 msgid "Worker not deleted|Invalid confirmation." msgstr "Worker no eliminado|Confirmación inválida." -#: cluster/views.py:52 templates/cluster/workers_list.html:87 +#: cluster/views.py:53 templates/cluster/workers_list.html:84 msgid "Add Worker" msgstr "Agregar Worker" -#: cluster/views.py:63 +#: cluster/views.py:64 msgid "Worker updated|Worker updated: " msgstr "Worker actualizado|Worker actualizado: " -#: cluster/views.py:65 +#: cluster/views.py:66 msgid "Worker created|Worker created: " msgstr "Worker creado|Worker creado: " -#: cluster/views.py:70 +#: cluster/views.py:71 msgid "" "\n" "
Worker Configuration
\n" @@ -242,15 +250,15 @@ msgstr "" "nombre de host).

\n" " " -#: cluster/views.py:105 templates/cluster/workers_list.html:88 +#: cluster/views.py:106 templates/cluster/workers_list.html:85 msgid "Cluster Settings" msgstr "Configuración del Cluster" -#: cluster/views.py:111 +#: cluster/views.py:112 msgid "Cluster settings updated successfully." msgstr "Configuración del cluster actualizada exitosamente." -#: cluster/views.py:118 +#: cluster/views.py:120 msgid "" "\n" "
Cluster Mode
\n" @@ -361,24 +369,24 @@ msgstr "URL de la lista" msgid "DNS Filter List Details" msgstr "Detalles de la lista de filtro DNS" -#: dns/views.py:33 +#: dns/views.py:34 msgid "DNS settings applied successfully" msgstr "Configuración DNS aplicada correctamente" -#: dns/views.py:68 +#: dns/views.py:69 msgid "Default DNS Filter List created successfully" msgstr "Lista de filtro DNS predeterminada creada correctamente" -#: dns/views.py:71 +#: dns/views.py:72 msgid "" "Pending Changes|There are pending DNS changes that have not been applied" msgstr "Cambios pendientes|Hay cambios DNS pendientes que no se han aplicado" -#: dns/views.py:90 +#: dns/views.py:91 msgid "DNS Forwarders" msgstr "Encaminadores DNS" -#: dns/views.py:91 +#: dns/views.py:92 msgid "" "All DNS queries will be forwarded to the primary resolver. If the primary " "resolver is not available, the secondary resolver will be used." @@ -386,63 +394,63 @@ msgstr "" "Todas las consultas DNS se enviarán al resolvedor primario. Si el primario " "no está disponible, se usará el secundario." -#: dns/views.py:118 +#: dns/views.py:119 msgid "Static DNS deleted successfully" msgstr "DNS estático eliminado correctamente" -#: dns/views.py:121 +#: dns/views.py:122 msgid "Static DNS not deleted|Invalid confirmation" msgstr "DNS estático no eliminado|Confirmación inválida" -#: dns/views.py:131 +#: dns/views.py:132 msgid "Static DNS saved successfully" msgstr "DNS estático guardado correctamente" -#: dns/views.py:154 +#: dns/views.py:155 msgid "DNS Filter List not deleted | Filter List is enabled" msgstr "Lista de filtro DNS no eliminada | La lista está habilitada" -#: dns/views.py:161 +#: dns/views.py:162 msgid "Error removing config file: " msgstr "Error al eliminar archivo de configuración: " -#: dns/views.py:164 +#: dns/views.py:165 msgid "DNS Filter List deleted successfully" msgstr "Lista de filtro DNS eliminada correctamente" -#: dns/views.py:167 +#: dns/views.py:168 msgid "DNS Filter List not deleted | Invalid confirmation" msgstr "Lista de filtro DNS no eliminada | Confirmación inválida" -#: dns/views.py:177 +#: dns/views.py:178 msgid "DNS Filter List saved successfully" msgstr "Lista de filtro DNS guardada correctamente" -#: dns/views.py:204 +#: dns/views.py:205 msgid "Failed to read existing config file: " msgstr "Error al leer archivo de configuración existente: " -#: dns/views.py:222 +#: dns/views.py:223 msgid "Failed to fetch the host list: " msgstr "Error al obtener lista de hosts: " -#: dns/views.py:232 +#: dns/views.py:233 msgid "Failed to write config file: " msgstr "Error al escribir archivo de configuración: " -#: dns/views.py:257 +#: dns/views.py:258 msgid "DNS Filter List updated successfully" msgstr "Lista de filtro DNS actualizada correctamente" -#: dns/views.py:274 +#: dns/views.py:275 msgid "DNS Filter List enabled successfully" msgstr "Lista de filtro DNS habilitada correctamente" -#: dns/views.py:276 +#: dns/views.py:277 msgid "DNS Filter List not enabled | No valid hosts found" msgstr "Lista de filtro DNS no habilitada | No se encontraron hosts válidos" -#: dns/views.py:281 +#: dns/views.py:282 msgid "DNS Filter List disabled successfully" msgstr "Lista de filtro DNS deshabilitada correctamente" @@ -780,7 +788,7 @@ msgid "Last Seen" msgstr "Visto por última vez" #: templates/cluster/workers_list.html:13 -#: templates/cluster/workers_list.html:110 +#: templates/cluster/workers_list.html:107 msgid "Config Version" msgstr "Versión de configuración" @@ -806,38 +814,107 @@ msgstr "No establecido" msgid "Never" msgstr "Nunca" -#: templates/cluster/workers_list.html:68 -msgid "Config Pending" -msgstr "Configuración pendiente" - -#: templates/cluster/workers_list.html:77 +#: templates/cluster/workers_list.html:74 #: templates/dns/static_host_list.html:74 templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 #: templates/wireguard/wireguard_peer_list.html:196 msgid "Edit" msgstr "Editar" -#: templates/cluster/workers_list.html:82 +#: templates/cluster/workers_list.html:79 msgid "No workers configured" msgstr "No hay workers configurados" +#: templates/cluster/workers_list.html:86 #: templates/cluster/workers_list.html:89 -#: templates/cluster/workers_list.html:92 msgid "Cluster Information" msgstr "Información del clúster" -#: templates/cluster/workers_list.html:114 +#: templates/cluster/workers_list.html:111 +#, fuzzy +#| msgid "Version" +msgid "DNS Version" +msgstr "Versión" + +#: templates/cluster/workers_list.html:116 msgid "Stats Sync Interval" msgstr "Intervalo de sincronización de estadísticas" -#: templates/cluster/workers_list.html:118 +#: templates/cluster/workers_list.html:120 msgid "Stats Cache Interval" msgstr "Intervalo de caché de estadísticas" -#: templates/cluster/workers_list.html:130 +#: templates/cluster/workers_list.html:132 msgid "Primary WireGuard" msgstr "Habilitar WireGuard primario" +#: templates/cluster/workers_list.html:150 +#, fuzzy +#| msgid "Cluster Settings" +msgid "Cluster Feature – Testing Phase" +msgstr "Configuración del Cluster" + +#: templates/cluster/workers_list.html:157 +msgid "The cluster functionality is currently released as experimental." +msgstr "" + +#: templates/cluster/workers_list.html:158 +msgid "At this stage, only core features are implemented:" +msgstr "" + +#: templates/cluster/workers_list.html:160 +#, fuzzy +#| msgid "Configuration sync in progress" +msgid "Configuration synchronization service" +msgstr "Sincronización de configuración en curso" + +#: templates/cluster/workers_list.html:161 +msgid "Primary node mirroring (WireGuard and firewall rules)" +msgstr "" + +#: templates/cluster/workers_list.html:162 +msgid "DNS rules mirroring" +msgstr "" + +#: templates/cluster/workers_list.html:165 +msgid "Warning:" +msgstr "" + +#: templates/cluster/workers_list.html:167 +msgid "" +"In the current version, peer state information is not collected by the " +"master server." +msgstr "" + +#: templates/cluster/workers_list.html:168 +msgid "" +"Traffic data, IP address, handshake status, and online/offline state will " +"not be visible for peers connected to cluster nodes." +msgstr "" + +#: templates/cluster/workers_list.html:170 +msgid "Next priority features (coming soon):" +msgstr "" + +#: templates/cluster/workers_list.html:172 +msgid "Traffic data synchronization" +msgstr "" + +#: templates/cluster/workers_list.html:173 +msgid "" +"Server selection dropdown before downloading peer configs or VPN invites" +msgstr "" + +#: templates/cluster/workers_list.html:177 +msgid "For more information, please visit:" +msgstr "" + +#: templates/cluster/workers_list.html:181 +#, fuzzy +#| msgid "Instance" +msgid "I Understand" +msgstr "Instancia" + #: templates/console/console.html:12 msgid "Clear" msgstr "Limpiar" @@ -2290,7 +2367,7 @@ msgstr "IP actualizada|IP actualizada correctamente." msgid "IP address added|IP address added successfully." msgstr "IP añadida|IP añadida correctamente." -#: wireguard_tools/views.py:167 +#: wireguard_tools/views.py:165 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -2298,7 +2375,7 @@ msgstr "" "Exportación exitosa!|Los archivos de configuración se exportaron a /etc/" "wireguard/." -#: wireguard_tools/views.py:169 +#: wireguard_tools/views.py:167 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -2306,19 +2383,19 @@ msgstr "" "Exportación exitosa!|Los archivos de configuración se exportaron a /etc/" "wireguard/. No olvides reiniciar las interfaces." -#: wireguard_tools/views.py:262 +#: wireguard_tools/views.py:260 msgid "Error reloading" msgstr "Error al recargar" -#: wireguard_tools/views.py:274 +#: wireguard_tools/views.py:272 msgid "Error stopping" msgstr "Error al detener" -#: wireguard_tools/views.py:279 +#: wireguard_tools/views.py:277 msgid "Error starting" msgstr "Error al iniciar" -#: wireguard_tools/views.py:286 +#: wireguard_tools/views.py:284 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -2327,23 +2404,26 @@ msgstr "" "ADVERTENCIA|La interfaz se recargó, no reinició. Verifica que los peers " "funcionen correctamente. Si hay problemas, repórtalos." -#: wireguard_tools/views.py:287 +#: wireguard_tools/views.py:285 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard recargado|El servicio WireGuard se ha recargado." -#: wireguard_tools/views.py:289 +#: wireguard_tools/views.py:287 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard reiniciado|El servicio WireGuard se ha reiniciado." -#: wireguard_tools/views.py:292 +#: wireguard_tools/views.py:290 msgid "Errors encountered|Error processing one or more interfaces." msgstr "Errores encontrados|Error al procesar una o más interfaces." -#: wireguard_tools/views.py:295 +#: wireguard_tools/views.py:293 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "No se encontraron interfaces|No hay interfaces WireGuard para procesar." +#~ msgid "Config Pending" +#~ msgstr "Configuración pendiente" + #~ msgid "Force Reload" #~ msgstr "Forzar recarga" diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 43121a10615eff2c19525b1dad692ab3d5b47a79..aaeee0d3523a7202b82816a39d151149355456e4 100644 GIT binary patch delta 9284 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 D+&AZg delta 9486 zcmZA62YgjU+Q;#M6cR#7p(NB0AhZApZK)D^hk$e`i6Mkg5=a5T#S2md6j?e*2Wg>% zCZb3Yr09xBS1hO~;({Uwt61Ru{qIcnWp_TGC*PSl=bkh3%$$=O_;Q!eyL)^*UxxZF zHk4fjj46jJiyG6aAoa59H72r(F^6bZ!u3AJT#Gj5Y1%K=G-eF#%Q41G^E0MxtTDNG zx}h;sIG)vvYjDl`EsPmVJEWyC^|@X~D`VQzzX9tS<1zngZA>i=lxbs3HEfUmn2wCa z*xfG5o>#8wSuW)Yh0%7>tFvzo|w=H>!s|7>~2D zt?T~?%h3KDL-AKEkA>SAQxdCV5I%*G*cttB6l!AQFb`K@Bkb1RIvvY%e{+yZ9Da(v z7}UYeBpB6>L|w2dYKdw&JG%Z9)C5LhA)JWH#8eE!`B(%uqB6G!m4V~viKcRuia!?U zXj2y8ER7ZDkH$jS4t3#f7>I*ie=3%so#Bp8M`dIYY8$P^O85>|#4oWlKI%yRt57M` ziP>Q@R67Y9;7qKC2c17*6zxi#?RjlcGfG3P^(2hI*{B z{ObadUF-$oP&bZ8_KV3u&NXi#t7Ck-+Dvsp&A1l^VJhmzS*|_Txg0g%ji>>hM&0iU zYJfLAuA^`_d!Q_8DPk}H>thjYj!Ic4)CH1o4`!lfShc&IVNDFA-5iTzd(__P?b-vK zBTyOejHgnJ%3Q34D^VXjjoRIpQEPu23*&v%4IZQRLSPR&un25QI}SC#(Wt#M8TGl9 zsOxP;-S`l;)$@OmNG<)KjnwwYlCvEyX!3hBurK zkav*r?PZrJ9yO4zsPp?_te*eT?!YS4K(-*=yyonQQ?Me<#i&jC2I~3$40XeY7>WVC z?Gltlt$A&X#01o)9*0`WC8&&Uz+l~I8tg=a38gXf1zgJ)0bB? z7Q?!jfV$um^k&HQFT?uupLYIVgNb1fIrl`~tNJ|BcE>*fZ8@7(%-lY7cZnWp=FVpNx83=b;9?$U{XpUWxkUvmQ&~ zCe#fMVFX^q)_5P4slN?kmN*DY;vCdK*P>>)3zeyZs2iO?UH=T~@jizdnCBW5W#BgI zLJu$&g9h6aHb<>hB5LGwQM-KsR>O_%_!(46e@Csk{}5vuVpY_Qo^g)A#H zTQQfNk5Czj9?HhT7}SMxP)jfsJK+-48h?d#(Kpeiya9Hm-4E;GdTfA~Fb)eR*$g&E zUp?qaR5YUDsK;duYQz^%YxxywQ{F?RKH^#1{}d|438)kgMD6ltQ3D=_+AEV$*I9zf z^cJjzyD^CSn=jmfA5a&#hg!n|$@aoUP`?vOpw_r7mcd%6z0w|)>cQ9y7orAq7InQV z7>qYi1Ns#!VDK>VuiaahiZ)prT!({EBYup!VMvP2NF`K%9n|^psLeDGHRBPeOl6}l zu5icKqOP+Om4U;k^G~Ia|3*|U(4iR@9&Tq^5|!F=s1u{H9M(fW?14JJ4_3rPR7$5{ zdEAbg@dv0q^BHQ!KcgmGJk_38IhFj!(b0+y?fNYA$JbFa*oN8*yHHQZA#8yca5{#J z;F~Zm!L}HY#v_MAP_OhdBaNv+yVWRO?>GvZV)fC+G{IyKm8w)$VM{!YB*XZOF{UP_ z;Z9tH&taQ%GQfr3L1o}rhW#RO29=pRs1!dyAAE$(vEW#{R4q}N?S`7DryrGIDnn4I z%0R8@bS#bwP;0&3`3`FHT}BQ3E@~j9$JtCpVOiRBon0`RcB*T?iW*=pGGLF{OGOuW z3-w}o54A>Dun^utjrbST!2ZHb7?f$3WDjcKr%@OF0)z2}^H0;7L3^x2I}2;#dTfSgoPq23%a?XL)OpjLd$A<#Z%|LwZ&(on*W2$6 zHIT>NV|r52iG#2qW?~d>LCyG|sN>&aYy2IPu*C*r2H+YTh7VC|JLGly*o{Cf)ijL6 z#TbP9oyV}Ip8t=i=){Mp6a{Uxsi}x+cXSTI0NP_w7n+Dl^$e_pi&1O(CVqhzQ0MR7 zWFO$W-+=BJdZ=1bQ z6V%>Fz&LybYv5tjL~c6&!rrt)x0C-uR8qIw-vJq@6DMIj&ci_b7}M}7zJzUgX7!YO zh#J5T*aXY(wBPmmp)&CbYSXR92t0-{_&L_Wz&!G=3pCENn`SiXhA*KW$N4zA05e6c zS;^h@xv!4OTpjes=E!a~ZLlYH$9Pw6s!6+P#JFcs(GSbTuW z%<#ST#_1S9d#Y>CK@D&fYQXzk|6$a5=dcZ4#SpBp&u-FK>_@v7Y9O9mD#fUr#WMIM z>Vpq46kELE))bZESFiz|#D@3>Dg$x*?bFg2HL$Lz8z-YClH=Nwu{!N}$R_ug15}iv zi>MTRi+W-Fi9uNOO*_K~)IckvQe6*AVhgN*Porj(iIs6FmdArw3O_|n@MqL{K?l@k z{bQ+w(a{Bca42d<$w6n1h=Akd%KxO0>Y9Iv;+E;rW zR7MA)o`z945MM@*K5&DIQu`-%!=QKUJ9+@tracwoFc1CkYfQlJQBOhRLw2U^F_HEV z)BuiPQ@oAUu-ak1oL~=Zfol$v|0YzvphGt(eZ1&O3=(Ds$AXc?r}2 z>tkI^!f>3A+B>qk9yP5s}sCq`j?4#c2NOmzKYP$`^%n(-{u zo><~sjautX7>$QfoA5jAhJnZIAFcgRpIe98lv_PiG^3-aU3?L>JAc6l3_otyz8>zP z-2>Hc-m@1dgC%Ijp=Q_~BXJOFz>`sX>s3^S7o#$B3bo{(3siLCH}1eMr~y63ju>{r zuK6I;g`P#FG!1p3EYwUr=!Y9nncIpnxF2KjI#$IJC+%a{6szd@??Xi|gh^NjH()(H zkDbu(l=olaOb_(earDDn)Kct1t@&Z>k5_O3#-3&$;BoAXectE&k83fu0FUNy-$X(ot8tB@O?XKU9 z8t_?E<}RTRUcQ6iNxc6^I^+(Y5l%~>?N_Xsp zNmvN)<4;5`p)!TO!T6@P#e0BuP2xEsn^2iSl=s$nUAsOl!+7d%;m_{a-<=!y7hiLY zMmtV;7dv1z;sxsMiN@4b{vuLc-P^&BowTby(f15>t*J^Sq8V*Ho=4O{S-fz5xzZs$ z=pAo6ykG2!E&Mt%%rk=CNMa?io1;$?+AsNK9hE)A0FJAaM0SYx|0nbWs??&d6K?mm z__B*H(zgVg5o~eq3lq#h`csGs#4maYsx$K9s0V{O0~y{8fF&pJJE<^2T?^2)i=8TGCC&^bLn_iN1iCXsGoH0e)tU0 zfOA!b5+jL3+GFu!B8U2740Gqq!4TRWEQ~7I7Vl4AJAeLmbRW1!cYk6N(Sgw0Riz`b zlUU=Z`CNs(3!*$3N(Jn&?S=fO;t< zh%NN}op^=d`;PZtPW19q`HIk+^kt6qB~7KWHx{ zY7p!Azyo)@F18`65n03*;vrFwb0*<9{2rTPIpPBK{8ETRNiJEuPN9z+_U5=x9C;)pEH z*@b~bLF%1}+O24;C%O?TQFLx4R5n`v^D}wjUEUZ|T>B38;>=eu+VdBQDfQVz zP2zR>`d|!Z64j|E5+4u~X;&tWQD2HaSO8U8JNr^^PV_6_-WW4D(3aRmoa4X?co;`v ze(CP&<>;8_>Uq@TiEXsE;!GmHw4>6I{za}Mn))T`tzA0+@9O^P9H>vcM@LD*pSmCM zkvs8kSd?f%Usu;xk$PL|FS+(8r?~9u37nJhME_ChkBJdPB%$(#cFZGJ6SZAmAN-d)n32E!Y9|w~ zaqu7btvXy8jdk3ICsL249!j*JeuEfJs7xnbqJKScoqBOp*^W(d4l$L8A^yMYeN_2w zW&ebf^kHe~dvA2;6y7>BWo$-fcI1SN%uy+sLz6Soho_|u9iNh!m6nknnUp>(|44pU zT6$#mh?K}y37sM{Q^w__WM%J-PHga0cpL90b25{%^}!TAo1LAKo}IFH!0P0R34K#? z(ngO?nG~7Eo%vK|{$>B?hAICUN&fwYC8cLYj!yF4?09ar_s(_9!XCNddoLcEQ|A8w Dff+Ea diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index d62a19d..6dcfe12 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: 2025-12-31 11:37-0300\n" +"POT-Creation-Date: 2026-01-01 11:13-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,7 @@ msgstr "" msgid "Name" msgstr "Nom" -#: cluster/forms.py:18 templates/cluster/workers_list.html:96 +#: cluster/forms.py:18 templates/cluster/workers_list.html:93 #: vpn_invite/forms.py:49 vpn_invite/forms.py:294 msgid "Enabled" msgstr "Activé" @@ -114,30 +114,34 @@ msgstr "Intervalle de synchronisation des stats (secondes)" msgid "Stats Cache Interval (seconds)" msgstr "Intervalle de cache des stats (secondes)" -#: cluster/forms.py:103 templates/cluster/workers_list.html:106 +#: cluster/forms.py:103 templates/cluster/workers_list.html:103 msgid "Cluster Mode" msgstr "Mode du cluster" -#: cluster/forms.py:104 templates/cluster/workers_list.html:122 +#: cluster/forms.py:104 templates/cluster/workers_list.html:124 msgid "Restart Mode" msgstr "Mode de redémarrage" -#: cluster/forms.py:105 templates/cluster/workers_list.html:126 +#: cluster/forms.py:105 templates/cluster/workers_list.html:128 msgid "Worker Display" msgstr "Affichage du Worker" -#: cluster/forms.py:146 +#: cluster/forms.py:147 msgid "Stats sync interval must be at least 60 seconds." msgstr "" "L'intervalle de synchronisation des statistiques doit être d'au moins 60 " "secondes." -#: cluster/forms.py:149 +#: cluster/forms.py:150 msgid "Stats cache interval must be at least 60 seconds." msgstr "" "L'intervalle de cache des statistiques doit être d'au moins 60 secondes." -#: cluster/models.py:47 +#: cluster/forms.py:153 +msgid "Disabling WireGuard on the master server is currently not supported." +msgstr "" + +#: cluster/models.py:48 msgid "" "IP lock is enabled, but the worker is attempting to access from a different " "IP address." @@ -145,59 +149,63 @@ msgstr "" "Le verrouillage IP est activé, mais le worker tente d'accéder à partir d'une " "adresse IP différente." -#: cluster/models.py:48 +#: cluster/models.py:49 msgid "Worker is not enabled" msgstr "Le worker n'est pas activé" -#: cluster/models.py:49 +#: cluster/models.py:50 msgid "Cluster is not enabled" msgstr "Le cluster n'est pas activé" -#: cluster/models.py:50 +#: cluster/models.py:51 +#, fuzzy +#| msgid "" +#| "Please report worker_config_version and worker_version in the API request." msgid "" -"Please report worker_config_version and worker_version in the API request." +"Please report worker_config_version, worker_dns_version and worker_version " +"in the API request." msgstr "" "Veuillez indiquer worker_config_version et worker_version dans la requête " "API." -#: cluster/models.py:51 +#: cluster/models.py:52 msgid "Worker update is required." msgstr "La mise à jour du worker est requise." -#: cluster/views.py:15 cluster/views.py:33 cluster/views.py:102 +#: cluster/views.py:16 cluster/views.py:34 cluster/views.py:103 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Accès refusé" -#: cluster/views.py:18 templates/base.html:162 +#: cluster/views.py:19 templates/base.html:162 msgid "Cluster" msgstr "Cluster" -#: cluster/views.py:39 +#: cluster/views.py:40 msgid "Edit Worker: " msgstr "Modifier Worker : " -#: cluster/views.py:45 +#: cluster/views.py:46 msgid "Worker deleted|Worker deleted: " msgstr "Worker supprimé|Worker supprimé : " -#: cluster/views.py:48 +#: cluster/views.py:49 msgid "Worker not deleted|Invalid confirmation." msgstr "Worker non supprimé|Confirmation invalide." -#: cluster/views.py:52 templates/cluster/workers_list.html:87 +#: cluster/views.py:53 templates/cluster/workers_list.html:84 msgid "Add Worker" msgstr "Ajouter Worker" -#: cluster/views.py:63 +#: cluster/views.py:64 msgid "Worker updated|Worker updated: " msgstr "Worker mis à jour|Worker mis à jour : " -#: cluster/views.py:65 +#: cluster/views.py:66 msgid "Worker created|Worker created: " msgstr "Worker créé|Worker créé : " -#: cluster/views.py:70 +#: cluster/views.py:71 msgid "" "\n" "
Worker Configuration
\n" @@ -241,15 +249,15 @@ msgstr "" "nom d’hôte).

\n" " " -#: cluster/views.py:105 templates/cluster/workers_list.html:88 +#: cluster/views.py:106 templates/cluster/workers_list.html:85 msgid "Cluster Settings" msgstr "Paramètres du Cluster" -#: cluster/views.py:111 +#: cluster/views.py:112 msgid "Cluster settings updated successfully." msgstr "Paramètres du cluster mis à jour avec succès." -#: cluster/views.py:118 +#: cluster/views.py:120 msgid "" "\n" "
Cluster Mode
\n" @@ -361,25 +369,25 @@ msgstr "URL de la liste" msgid "DNS Filter List Details" msgstr "Détails de la liste de filtres DNS" -#: dns/views.py:33 +#: dns/views.py:34 msgid "DNS settings applied successfully" msgstr "Paramètres DNS appliqués avec succès" -#: dns/views.py:68 +#: dns/views.py:69 msgid "Default DNS Filter List created successfully" msgstr "Liste de filtres DNS par défaut créée avec succès" -#: dns/views.py:71 +#: dns/views.py:72 msgid "" "Pending Changes|There are pending DNS changes that have not been applied" msgstr "" "Modifications en attente|Des changements DNS n’ont pas encore été appliqués" -#: dns/views.py:90 +#: dns/views.py:91 msgid "DNS Forwarders" msgstr "Redirecteurs DNS" -#: dns/views.py:91 +#: dns/views.py:92 msgid "" "All DNS queries will be forwarded to the primary resolver. If the primary " "resolver is not available, the secondary resolver will be used." @@ -387,63 +395,63 @@ msgstr "" "Toutes les requêtes DNS seront transmises au résolveur primaire. Si celui‑ci " "est indisponible, le résolveur secondaire sera utilisé." -#: dns/views.py:118 +#: dns/views.py:119 msgid "Static DNS deleted successfully" msgstr "Entrée DNS statique supprimée avec succès" -#: dns/views.py:121 +#: dns/views.py:122 msgid "Static DNS not deleted|Invalid confirmation" msgstr "DNS statique non supprimé|Confirmation invalide" -#: dns/views.py:131 +#: dns/views.py:132 msgid "Static DNS saved successfully" msgstr "DNS statique enregistré avec succès" -#: dns/views.py:154 +#: dns/views.py:155 msgid "DNS Filter List not deleted | Filter List is enabled" msgstr "Liste de filtres DNS non supprimée | La liste est activée" -#: dns/views.py:161 +#: dns/views.py:162 msgid "Error removing config file: " msgstr "Erreur lors de la suppression du fichier de configuration: " -#: dns/views.py:164 +#: dns/views.py:165 msgid "DNS Filter List deleted successfully" msgstr "Liste de filtres DNS supprimée avec succès" -#: dns/views.py:167 +#: dns/views.py:168 msgid "DNS Filter List not deleted | Invalid confirmation" msgstr "Liste de filtres DNS non supprimée | Confirmation invalide" -#: dns/views.py:177 +#: dns/views.py:178 msgid "DNS Filter List saved successfully" msgstr "Liste de filtres DNS enregistrée avec succès" -#: dns/views.py:204 +#: dns/views.py:205 msgid "Failed to read existing config file: " msgstr "Impossible de lire le fichier de configuration existant: " -#: dns/views.py:222 +#: dns/views.py:223 msgid "Failed to fetch the host list: " msgstr "Échec du téléchargement de la liste d’hôtes: " -#: dns/views.py:232 +#: dns/views.py:233 msgid "Failed to write config file: " msgstr "Impossible d’écrire le fichier de configuration: " -#: dns/views.py:257 +#: dns/views.py:258 msgid "DNS Filter List updated successfully" msgstr "Liste de filtres DNS mise à jour avec succès" -#: dns/views.py:274 +#: dns/views.py:275 msgid "DNS Filter List enabled successfully" msgstr "Liste de filtres DNS activée avec succès" -#: dns/views.py:276 +#: dns/views.py:277 msgid "DNS Filter List not enabled | No valid hosts found" msgstr "Liste de filtres DNS non activée | Aucun hôte valide trouvé" -#: dns/views.py:281 +#: dns/views.py:282 msgid "DNS Filter List disabled successfully" msgstr "Liste de filtres DNS désactivée avec succès" @@ -782,7 +790,7 @@ msgid "Last Seen" msgstr "Dernière connexion" #: templates/cluster/workers_list.html:13 -#: templates/cluster/workers_list.html:110 +#: templates/cluster/workers_list.html:107 msgid "Config Version" msgstr "Version de configuration" @@ -808,38 +816,107 @@ msgstr "Non défini" msgid "Never" msgstr "Jamais" -#: templates/cluster/workers_list.html:68 -msgid "Config Pending" -msgstr "Configuration en attente" - -#: templates/cluster/workers_list.html:77 +#: templates/cluster/workers_list.html:74 #: templates/dns/static_host_list.html:74 templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 #: templates/wireguard/wireguard_peer_list.html:196 msgid "Edit" msgstr "Modifier" -#: templates/cluster/workers_list.html:82 +#: templates/cluster/workers_list.html:79 msgid "No workers configured" msgstr "Aucun worker configuré" +#: templates/cluster/workers_list.html:86 #: templates/cluster/workers_list.html:89 -#: templates/cluster/workers_list.html:92 msgid "Cluster Information" msgstr "Informations sur le cluster" -#: templates/cluster/workers_list.html:114 +#: templates/cluster/workers_list.html:111 +#, fuzzy +#| msgid "Version" +msgid "DNS Version" +msgstr "Version" + +#: templates/cluster/workers_list.html:116 msgid "Stats Sync Interval" msgstr "Intervalle de synchronisation des statistiques" -#: templates/cluster/workers_list.html:118 +#: templates/cluster/workers_list.html:120 msgid "Stats Cache Interval" msgstr "Intervalle de cache des statistiques" -#: templates/cluster/workers_list.html:130 +#: templates/cluster/workers_list.html:132 msgid "Primary WireGuard" msgstr "Activer WireGuard principal" +#: templates/cluster/workers_list.html:150 +#, fuzzy +#| msgid "Cluster Settings" +msgid "Cluster Feature – Testing Phase" +msgstr "Paramètres du Cluster" + +#: templates/cluster/workers_list.html:157 +msgid "The cluster functionality is currently released as experimental." +msgstr "" + +#: templates/cluster/workers_list.html:158 +msgid "At this stage, only core features are implemented:" +msgstr "" + +#: templates/cluster/workers_list.html:160 +#, fuzzy +#| msgid "Configuration sync in progress" +msgid "Configuration synchronization service" +msgstr "Synchronisation de la configuration en cours" + +#: templates/cluster/workers_list.html:161 +msgid "Primary node mirroring (WireGuard and firewall rules)" +msgstr "" + +#: templates/cluster/workers_list.html:162 +msgid "DNS rules mirroring" +msgstr "" + +#: templates/cluster/workers_list.html:165 +msgid "Warning:" +msgstr "" + +#: templates/cluster/workers_list.html:167 +msgid "" +"In the current version, peer state information is not collected by the " +"master server." +msgstr "" + +#: templates/cluster/workers_list.html:168 +msgid "" +"Traffic data, IP address, handshake status, and online/offline state will " +"not be visible for peers connected to cluster nodes." +msgstr "" + +#: templates/cluster/workers_list.html:170 +msgid "Next priority features (coming soon):" +msgstr "" + +#: templates/cluster/workers_list.html:172 +msgid "Traffic data synchronization" +msgstr "" + +#: templates/cluster/workers_list.html:173 +msgid "" +"Server selection dropdown before downloading peer configs or VPN invites" +msgstr "" + +#: templates/cluster/workers_list.html:177 +msgid "For more information, please visit:" +msgstr "" + +#: templates/cluster/workers_list.html:181 +#, fuzzy +#| msgid "Instance" +msgid "I Understand" +msgstr "Instance" + #: templates/console/console.html:12 msgid "Clear" msgstr "Effacer" @@ -2309,7 +2386,7 @@ msgstr "Adresse IP mise à jour | Mise à jour réussie." msgid "IP address added|IP address added successfully." msgstr "Adresse IP ajoutée | Ajout réussi." -#: wireguard_tools/views.py:167 +#: wireguard_tools/views.py:165 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -2317,7 +2394,7 @@ msgstr "" "Exportation réussie! | Les fichiers de configuration WireGuard ont été " "exportés vers /etc/wireguard/." -#: wireguard_tools/views.py:169 +#: wireguard_tools/views.py:167 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -2325,19 +2402,19 @@ msgstr "" "Exportation réussie! | Les fichiers WireGuard ont été exportés vers /etc/" "wireguard/. N’oubliez pas de redémarrer les interfaces." -#: wireguard_tools/views.py:262 +#: wireguard_tools/views.py:260 msgid "Error reloading" msgstr "Erreur de rechargement" -#: wireguard_tools/views.py:274 +#: wireguard_tools/views.py:272 msgid "Error stopping" msgstr "Erreur à l’arrêt" -#: wireguard_tools/views.py:279 +#: wireguard_tools/views.py:277 msgid "Error starting" msgstr "Erreur au démarrage" -#: wireguard_tools/views.py:286 +#: wireguard_tools/views.py:284 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -2346,24 +2423,27 @@ msgstr "" "AVERTISSEMENT | L’interface a été rechargée, pas redémarrée. Vérifiez que " "les peers fonctionnent comme prévu ; signalez tout problème rencontré." -#: wireguard_tools/views.py:287 +#: wireguard_tools/views.py:285 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard rechargé | Le service WireGuard a été rechargé." -#: wireguard_tools/views.py:289 +#: wireguard_tools/views.py:287 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard redémarré | Le service WireGuard a été redémarré." -#: wireguard_tools/views.py:292 +#: wireguard_tools/views.py:290 msgid "Errors encountered|Error processing one or more interfaces." msgstr "" "Erreurs rencontrées | Problème lors du traitement d’une ou plusieurs " "interfaces." -#: wireguard_tools/views.py:295 +#: wireguard_tools/views.py:293 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "Aucune interface trouvée | Aucune interface WireGuard à traiter." +#~ msgid "Config Pending" +#~ msgstr "Configuration en attente" + #~ msgid "Force Reload" #~ msgstr "Forcer le rechargement" diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo index a5e748c7bddd4d7c491316dccd6244e5ecfe992d..941614f58544de4b04724d27030b744c52549127 100644 GIT binary patch delta 9284 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 oStGJ@#$^

;GNlKmA45$V&H}J2N-ao@{u!uD84Pp%s<>4dvJ&0ssI2 diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index 057e0ab..f12932d 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: 2025-12-31 11:37-0300\n" +"POT-Creation-Date: 2026-01-01 11:13-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,7 @@ msgstr "" msgid "Name" msgstr "Nome" -#: cluster/forms.py:18 templates/cluster/workers_list.html:96 +#: cluster/forms.py:18 templates/cluster/workers_list.html:93 #: vpn_invite/forms.py:49 vpn_invite/forms.py:294 msgid "Enabled" msgstr "Habilitado" @@ -114,29 +114,33 @@ msgstr "Intervalo de Sincronização de Estatísticas (segundos)" msgid "Stats Cache Interval (seconds)" msgstr "Intervalo de Cache de Estatísticas (segundos)" -#: cluster/forms.py:103 templates/cluster/workers_list.html:106 +#: cluster/forms.py:103 templates/cluster/workers_list.html:103 msgid "Cluster Mode" msgstr "Modo do Cluster" -#: cluster/forms.py:104 templates/cluster/workers_list.html:122 +#: cluster/forms.py:104 templates/cluster/workers_list.html:124 msgid "Restart Mode" msgstr "Modo de Reinicialização" -#: cluster/forms.py:105 templates/cluster/workers_list.html:126 +#: cluster/forms.py:105 templates/cluster/workers_list.html:128 msgid "Worker Display" msgstr "Exibição do Worker" -#: cluster/forms.py:146 +#: cluster/forms.py:147 msgid "Stats sync interval must be at least 60 seconds." msgstr "" "Intervalo de sincronização de estatísticas deve ser de pelo menos 60 " "segundos." -#: cluster/forms.py:149 +#: cluster/forms.py:150 msgid "Stats cache interval must be at least 60 seconds." msgstr "Intervalo de cache de estatísticas deve ser de pelo menos 60 segundos." -#: cluster/models.py:47 +#: cluster/forms.py:153 +msgid "Disabling WireGuard on the master server is currently not supported." +msgstr "" + +#: cluster/models.py:48 msgid "" "IP lock is enabled, but the worker is attempting to access from a different " "IP address." @@ -144,59 +148,63 @@ msgstr "" "O bloqueio de IP está habilitado, mas o worker está tentando acessar de um " "endereço IP diferente." -#: cluster/models.py:48 +#: cluster/models.py:49 msgid "Worker is not enabled" msgstr "Worker não está habilitado" -#: cluster/models.py:49 +#: cluster/models.py:50 msgid "Cluster is not enabled" msgstr "Cluster não está habilitado" -#: cluster/models.py:50 +#: cluster/models.py:51 +#, fuzzy +#| msgid "" +#| "Please report worker_config_version and worker_version in the API request." msgid "" -"Please report worker_config_version and worker_version in the API request." +"Please report worker_config_version, worker_dns_version and worker_version " +"in the API request." msgstr "" "Por favor, informe worker_config_version e worker_version na requisição da " "API." -#: cluster/models.py:51 +#: cluster/models.py:52 msgid "Worker update is required." msgstr "A atualização do worker é necessária." -#: cluster/views.py:15 cluster/views.py:33 cluster/views.py:102 +#: cluster/views.py:16 cluster/views.py:34 cluster/views.py:103 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acesso Negado" -#: cluster/views.py:18 templates/base.html:162 +#: cluster/views.py:19 templates/base.html:162 msgid "Cluster" msgstr "Cluster" -#: cluster/views.py:39 +#: cluster/views.py:40 msgid "Edit Worker: " msgstr "Editar Worker: " -#: cluster/views.py:45 +#: cluster/views.py:46 msgid "Worker deleted|Worker deleted: " msgstr "Worker excluído|Worker excluído: " -#: cluster/views.py:48 +#: cluster/views.py:49 msgid "Worker not deleted|Invalid confirmation." msgstr "Worker não foi excluído|Confirmação inválida." -#: cluster/views.py:52 templates/cluster/workers_list.html:87 +#: cluster/views.py:53 templates/cluster/workers_list.html:84 msgid "Add Worker" msgstr "Adicionar Worker" -#: cluster/views.py:63 +#: cluster/views.py:64 msgid "Worker updated|Worker updated: " msgstr "Worker atualizado|Worker atualizado: " -#: cluster/views.py:65 +#: cluster/views.py:66 msgid "Worker created|Worker created: " msgstr "Worker criado|Worker criado: " -#: cluster/views.py:70 +#: cluster/views.py:71 msgid "" "\n" "

Worker Configuration
\n" @@ -240,15 +248,15 @@ msgstr "" "hostname).

\n" " " -#: cluster/views.py:105 templates/cluster/workers_list.html:88 +#: cluster/views.py:106 templates/cluster/workers_list.html:85 msgid "Cluster Settings" msgstr "Configurações do Cluster" -#: cluster/views.py:111 +#: cluster/views.py:112 msgid "Cluster settings updated successfully." msgstr "Configurações do cluster atualizadas com sucesso." -#: cluster/views.py:118 +#: cluster/views.py:120 msgid "" "\n" "
Cluster Mode
\n" @@ -359,25 +367,25 @@ msgstr "Endereço da Lista" msgid "DNS Filter List Details" msgstr "Detalhes da Lista de Filtro de DNS" -#: dns/views.py:33 +#: dns/views.py:34 msgid "DNS settings applied successfully" msgstr "Configurações de DNS aplicadas com sucesso" -#: dns/views.py:68 +#: dns/views.py:69 msgid "Default DNS Filter List created successfully" msgstr "Lista de Filtro de DNS padrão criada com sucesso" -#: dns/views.py:71 +#: dns/views.py:72 msgid "" "Pending Changes|There are pending DNS changes that have not been applied" msgstr "" "Alterações Pendentes|Há alterações de DNS pendentes que não foram aplicadas" -#: dns/views.py:90 +#: dns/views.py:91 msgid "DNS Forwarders" msgstr "Servidores DNS" -#: dns/views.py:91 +#: dns/views.py:92 msgid "" "All DNS queries will be forwarded to the primary resolver. If the primary " "resolver is not available, the secondary resolver will be used." @@ -385,63 +393,63 @@ msgstr "" "Todas as consultas DNS serão encaminhadas para o DNS primário. Se ele não " "estiver disponível, o DNS secundário será usado." -#: dns/views.py:118 +#: dns/views.py:119 msgid "Static DNS deleted successfully" msgstr "DNS Estático excluído com sucesso" -#: dns/views.py:121 +#: dns/views.py:122 msgid "Static DNS not deleted|Invalid confirmation" msgstr "DNS Estático não excluído|Confirmação inválida" -#: dns/views.py:131 +#: dns/views.py:132 msgid "Static DNS saved successfully" msgstr "DNS Estático salvo com sucesso" -#: dns/views.py:154 +#: dns/views.py:155 msgid "DNS Filter List not deleted | Filter List is enabled" msgstr "Lista de Filtro de DNS não excluída | Lista de Filtro está habilitada" -#: dns/views.py:161 +#: dns/views.py:162 msgid "Error removing config file: " msgstr "Erro ao remover o arquivo de configuração: " -#: dns/views.py:164 +#: dns/views.py:165 msgid "DNS Filter List deleted successfully" msgstr "Lista de Filtro de DNS excluída com sucesso" -#: dns/views.py:167 +#: dns/views.py:168 msgid "DNS Filter List not deleted | Invalid confirmation" msgstr "Lista de Filtro de DNS não excluída | Confirmação inválida" -#: dns/views.py:177 +#: dns/views.py:178 msgid "DNS Filter List saved successfully" msgstr "Lista de Filtro de DNS salva com sucesso" -#: dns/views.py:204 +#: dns/views.py:205 msgid "Failed to read existing config file: " msgstr "Erro ao ler o arquivo de configuração existente: " -#: dns/views.py:222 +#: dns/views.py:223 msgid "Failed to fetch the host list: " msgstr "Erro ao buscar a lista de hosts: " -#: dns/views.py:232 +#: dns/views.py:233 msgid "Failed to write config file: " msgstr "Falha ao escrever o arquivo de configuração: " -#: dns/views.py:257 +#: dns/views.py:258 msgid "DNS Filter List updated successfully" msgstr "Lista de Filtro de DNS atualizada com sucesso" -#: dns/views.py:274 +#: dns/views.py:275 msgid "DNS Filter List enabled successfully" msgstr "Lista de Filtro de DNS habilitada com sucesso" -#: dns/views.py:276 +#: dns/views.py:277 msgid "DNS Filter List not enabled | No valid hosts found" msgstr "Lista de Filtro de DNS não habilitada | Nenhum host válido encontrado" -#: dns/views.py:281 +#: dns/views.py:282 msgid "DNS Filter List disabled successfully" msgstr "Lista de Filtro de DNS desabilitada com sucesso" @@ -779,7 +787,7 @@ msgid "Last Seen" msgstr "Visto pela Última Vez" #: templates/cluster/workers_list.html:13 -#: templates/cluster/workers_list.html:110 +#: templates/cluster/workers_list.html:107 msgid "Config Version" msgstr "Versão da Configuração" @@ -806,38 +814,107 @@ msgstr "Não definido" msgid "Never" msgstr "Nunca" -#: templates/cluster/workers_list.html:68 -msgid "Config Pending" -msgstr "Configuração Pendente" - -#: templates/cluster/workers_list.html:77 +#: templates/cluster/workers_list.html:74 #: templates/dns/static_host_list.html:74 templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 #: templates/wireguard/wireguard_peer_list.html:196 msgid "Edit" msgstr "Editar" -#: templates/cluster/workers_list.html:82 +#: templates/cluster/workers_list.html:79 msgid "No workers configured" msgstr "Nenhum worker configurado" +#: templates/cluster/workers_list.html:86 #: templates/cluster/workers_list.html:89 -#: templates/cluster/workers_list.html:92 msgid "Cluster Information" msgstr "Informações do Cluster" -#: templates/cluster/workers_list.html:114 +#: templates/cluster/workers_list.html:111 +#, fuzzy +#| msgid "Version" +msgid "DNS Version" +msgstr "Versão" + +#: templates/cluster/workers_list.html:116 msgid "Stats Sync Interval" msgstr "Intervalo de Sincronização de Estatísticas" -#: templates/cluster/workers_list.html:118 +#: templates/cluster/workers_list.html:120 msgid "Stats Cache Interval" msgstr "Intervalo de Cache de Estatísticas" -#: templates/cluster/workers_list.html:130 +#: templates/cluster/workers_list.html:132 msgid "Primary WireGuard" msgstr "WireGuard Principal" +#: templates/cluster/workers_list.html:150 +#, fuzzy +#| msgid "Cluster Settings" +msgid "Cluster Feature – Testing Phase" +msgstr "Configurações do Cluster" + +#: templates/cluster/workers_list.html:157 +msgid "The cluster functionality is currently released as experimental." +msgstr "" + +#: templates/cluster/workers_list.html:158 +msgid "At this stage, only core features are implemented:" +msgstr "" + +#: templates/cluster/workers_list.html:160 +#, fuzzy +#| msgid "Configuration sync in progress" +msgid "Configuration synchronization service" +msgstr "Sincronização de configuração em andamento" + +#: templates/cluster/workers_list.html:161 +msgid "Primary node mirroring (WireGuard and firewall rules)" +msgstr "" + +#: templates/cluster/workers_list.html:162 +msgid "DNS rules mirroring" +msgstr "" + +#: templates/cluster/workers_list.html:165 +msgid "Warning:" +msgstr "" + +#: templates/cluster/workers_list.html:167 +msgid "" +"In the current version, peer state information is not collected by the " +"master server." +msgstr "" + +#: templates/cluster/workers_list.html:168 +msgid "" +"Traffic data, IP address, handshake status, and online/offline state will " +"not be visible for peers connected to cluster nodes." +msgstr "" + +#: templates/cluster/workers_list.html:170 +msgid "Next priority features (coming soon):" +msgstr "" + +#: templates/cluster/workers_list.html:172 +msgid "Traffic data synchronization" +msgstr "" + +#: templates/cluster/workers_list.html:173 +msgid "" +"Server selection dropdown before downloading peer configs or VPN invites" +msgstr "" + +#: templates/cluster/workers_list.html:177 +msgid "For more information, please visit:" +msgstr "" + +#: templates/cluster/workers_list.html:181 +#, fuzzy +#| msgid "Instance" +msgid "I Understand" +msgstr "Instância" + #: templates/console/console.html:12 msgid "Clear" msgstr "Limpar" @@ -2311,7 +2388,7 @@ msgstr "Endereço IP atualizado|Endereço IP atualizado com sucesso." msgid "IP address added|IP address added successfully." msgstr "Endereço IP adicionado|Endereço IP adicionado com sucesso." -#: wireguard_tools/views.py:167 +#: wireguard_tools/views.py:165 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -2319,7 +2396,7 @@ msgstr "" "Exportação bem-sucedida!|Os arquivos de configuração do WireGuard foram " "exportados para /etc/wireguard/." -#: wireguard_tools/views.py:169 +#: wireguard_tools/views.py:167 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -2327,19 +2404,19 @@ msgstr "" "Exportação bem-sucedida!|Os arquivos de configuração do WireGuard foram " "exportados para /etc/wireguard/. Não se esqueça de reiniciar as interfaces." -#: wireguard_tools/views.py:262 +#: wireguard_tools/views.py:260 msgid "Error reloading" msgstr "Erro ao recarregar" -#: wireguard_tools/views.py:274 +#: wireguard_tools/views.py:272 msgid "Error stopping" msgstr "Erro ao parar" -#: wireguard_tools/views.py:279 +#: wireguard_tools/views.py:277 msgid "Error starting" msgstr "Erro ao iniciar" -#: wireguard_tools/views.py:286 +#: wireguard_tools/views.py:284 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -2349,24 +2426,27 @@ msgstr "" "Verifique se os peers estão funcionando como esperado. Se você encontrar " "algum problema, por favor, relate-o." -#: wireguard_tools/views.py:287 +#: wireguard_tools/views.py:285 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard recarregado|O serviço WireGuard foi recarregado." -#: wireguard_tools/views.py:289 +#: wireguard_tools/views.py:287 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard reiniciado|O serviço WireGuard foi reiniciado." -#: wireguard_tools/views.py:292 +#: wireguard_tools/views.py:290 msgid "Errors encountered|Error processing one or more interfaces." msgstr "Erros encontrados|Erro ao processar uma ou mais interfaces." -#: wireguard_tools/views.py:295 +#: wireguard_tools/views.py:293 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "Nenhuma interface encontrada|Nenhuma interface WireGuard foi encontrada para " "processar." +#~ msgid "Config Pending" +#~ msgstr "Configuração Pendente" + #~ msgid "Force Reload" #~ msgstr "Forçar Recarga" diff --git a/locale/sk/LC_MESSAGES/django.mo b/locale/sk/LC_MESSAGES/django.mo index a86e681bd7875f8b0bf0e21e6349be2db3a556d7..4b3d44ee99428853038ed42f0d6304a1925f5d97 100644 GIT binary patch delta 9284 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 delta 9468 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 diff --git a/locale/sk/LC_MESSAGES/django.po b/locale/sk/LC_MESSAGES/django.po index 458cd06..5b64cc4 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: 2025-12-31 11:37-0300\n" +"POT-Creation-Date: 2026-01-01 11:13-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -25,7 +25,7 @@ msgstr "" msgid "Name" msgstr "Názov" -#: cluster/forms.py:18 templates/cluster/workers_list.html:96 +#: cluster/forms.py:18 templates/cluster/workers_list.html:93 #: vpn_invite/forms.py:49 vpn_invite/forms.py:294 msgid "Enabled" msgstr "Povolené" @@ -115,84 +115,92 @@ msgstr "Interval synchronizácie štatistík (sekundy)" msgid "Stats Cache Interval (seconds)" msgstr "Interval cache štatistík (sekundy)" -#: cluster/forms.py:103 templates/cluster/workers_list.html:106 +#: cluster/forms.py:103 templates/cluster/workers_list.html:103 msgid "Cluster Mode" msgstr "Režim clustra" -#: cluster/forms.py:104 templates/cluster/workers_list.html:122 +#: cluster/forms.py:104 templates/cluster/workers_list.html:124 msgid "Restart Mode" msgstr "Režim reštartu" -#: cluster/forms.py:105 templates/cluster/workers_list.html:126 +#: cluster/forms.py:105 templates/cluster/workers_list.html:128 msgid "Worker Display" msgstr "Zobrazenie workera" -#: cluster/forms.py:146 +#: cluster/forms.py:147 msgid "Stats sync interval must be at least 60 seconds." msgstr "Interval synchronizácie štatistík musí byť aspoň 60 sekúnd." -#: cluster/forms.py:149 +#: cluster/forms.py:150 msgid "Stats cache interval must be at least 60 seconds." msgstr "Interval cache štatistík musí byť aspoň 60 sekúnd." -#: cluster/models.py:47 +#: cluster/forms.py:153 +msgid "Disabling WireGuard on the master server is currently not supported." +msgstr "" + +#: cluster/models.py:48 msgid "" "IP lock is enabled, but the worker is attempting to access from a different " "IP address." msgstr "IP zámok je povolený, ale worker sa pokúša o prístup z inej IP adresy." -#: cluster/models.py:48 +#: cluster/models.py:49 msgid "Worker is not enabled" msgstr "Worker nie je povolený" -#: cluster/models.py:49 +#: cluster/models.py:50 msgid "Cluster is not enabled" msgstr "Cluster nie je povolený" -#: cluster/models.py:50 +#: cluster/models.py:51 +#, fuzzy +#| msgid "" +#| "Please report worker_config_version and worker_version in the API request." msgid "" -"Please report worker_config_version and worker_version in the API request." +"Please report worker_config_version, worker_dns_version and worker_version " +"in the API request." msgstr "" "Prosím, uveďte worker_config_version a worker_version v požiadavke API." -#: cluster/models.py:51 +#: cluster/models.py:52 msgid "Worker update is required." msgstr "Vyžaduje sa aktualizácia workera." -#: cluster/views.py:15 cluster/views.py:33 cluster/views.py:102 +#: cluster/views.py:16 cluster/views.py:34 cluster/views.py:103 #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Prístup zamietnutý" -#: cluster/views.py:18 templates/base.html:162 +#: cluster/views.py:19 templates/base.html:162 msgid "Cluster" msgstr "Cluster" -#: cluster/views.py:39 +#: cluster/views.py:40 msgid "Edit Worker: " msgstr "Upraviť Worker: " -#: cluster/views.py:45 +#: cluster/views.py:46 msgid "Worker deleted|Worker deleted: " msgstr "Worker vymazaný|Worker vymazaný: " -#: cluster/views.py:48 +#: cluster/views.py:49 msgid "Worker not deleted|Invalid confirmation." msgstr "Worker nebol vymazaný|Neplatné potvrdenie." -#: cluster/views.py:52 templates/cluster/workers_list.html:87 +#: cluster/views.py:53 templates/cluster/workers_list.html:84 msgid "Add Worker" msgstr "Pridať Worker" -#: cluster/views.py:63 +#: cluster/views.py:64 msgid "Worker updated|Worker updated: " msgstr "Worker aktualizovaný|Worker aktualizovaný: " -#: cluster/views.py:65 +#: cluster/views.py:66 msgid "Worker created|Worker created: " msgstr "Worker vytvorený|Worker vytvorený: " -#: cluster/views.py:70 +#: cluster/views.py:71 msgid "" "\n" "
Worker Configuration
\n" @@ -236,15 +244,15 @@ msgstr "" "mesto, názov hostiteľa).

\n" " " -#: cluster/views.py:105 templates/cluster/workers_list.html:88 +#: cluster/views.py:106 templates/cluster/workers_list.html:85 msgid "Cluster Settings" msgstr "Nastavenia Clustra" -#: cluster/views.py:111 +#: cluster/views.py:112 msgid "Cluster settings updated successfully." msgstr "Nastavenia clustra úspešne aktualizované." -#: cluster/views.py:118 +#: cluster/views.py:120 msgid "" "\n" "
Cluster Mode
\n" @@ -354,24 +362,24 @@ msgstr "URL zoznamu" msgid "DNS Filter List Details" msgstr "Podrobnosti DNS filter zoznamu" -#: dns/views.py:33 +#: dns/views.py:34 msgid "DNS settings applied successfully" msgstr "DNS nastavenia boli úspešne aplikované" -#: dns/views.py:68 +#: dns/views.py:69 msgid "Default DNS Filter List created successfully" msgstr "Predvolený DNS filter zoznam bol úspešne vytvorený" -#: dns/views.py:71 +#: dns/views.py:72 msgid "" "Pending Changes|There are pending DNS changes that have not been applied" msgstr "Čakajúce zmeny|Existujú čakajúce DNS zmeny, ktoré neboli aplikované" -#: dns/views.py:90 +#: dns/views.py:91 msgid "DNS Forwarders" msgstr "DNS servery" -#: dns/views.py:91 +#: dns/views.py:92 msgid "" "All DNS queries will be forwarded to the primary resolver. If the primary " "resolver is not available, the secondary resolver will be used." @@ -379,63 +387,63 @@ msgstr "" "Všetky DNS dotazy budú presmerované na primárny DNS server. Ak primárny " "server nebude dostupný, použije sa sekundárny DNS server." -#: dns/views.py:118 +#: dns/views.py:119 msgid "Static DNS deleted successfully" msgstr "Statický DNS bol úspešne vymazaný" -#: dns/views.py:121 +#: dns/views.py:122 msgid "Static DNS not deleted|Invalid confirmation" msgstr "Statický DNS nebol vymazaný|Neplatné potvrdenie" -#: dns/views.py:131 +#: dns/views.py:132 msgid "Static DNS saved successfully" msgstr "Statický DNS bol úspešne uložený" -#: dns/views.py:154 +#: dns/views.py:155 msgid "DNS Filter List not deleted | Filter List is enabled" msgstr "DNS filter zoznam nebol vymazaný | Filter zoznam je povolený" -#: dns/views.py:161 +#: dns/views.py:162 msgid "Error removing config file: " msgstr "Chyba pri odstraňovaní konfiguračného súboru: " -#: dns/views.py:164 +#: dns/views.py:165 msgid "DNS Filter List deleted successfully" msgstr "DNS filter zoznam bol úspešne vymazaný" -#: dns/views.py:167 +#: dns/views.py:168 msgid "DNS Filter List not deleted | Invalid confirmation" msgstr "DNS filter zoznam nebol vymazaný | Neplatné potvrdenie" -#: dns/views.py:177 +#: dns/views.py:178 msgid "DNS Filter List saved successfully" msgstr "DNS filter zoznam bol úspešne uložený" -#: dns/views.py:204 +#: dns/views.py:205 msgid "Failed to read existing config file: " msgstr "Nepodarilo sa čítať existujúci konfiguračný súbor: " -#: dns/views.py:222 +#: dns/views.py:223 msgid "Failed to fetch the host list: " msgstr "Nepodarilo sa získať zoznam hostiteľov: " -#: dns/views.py:232 +#: dns/views.py:233 msgid "Failed to write config file: " msgstr "Nepodarilo sa zapísať konfiguračný súbor: " -#: dns/views.py:257 +#: dns/views.py:258 msgid "DNS Filter List updated successfully" msgstr "DNS filter zoznam bol úspešne aktualizovaný" -#: dns/views.py:274 +#: dns/views.py:275 msgid "DNS Filter List enabled successfully" msgstr "DNS filter zoznam bol úspešne povolený" -#: dns/views.py:276 +#: dns/views.py:277 msgid "DNS Filter List not enabled | No valid hosts found" msgstr "DNS filter zoznam nebol povolený | Neboli nájdení platní hostiteľia" -#: dns/views.py:281 +#: dns/views.py:282 msgid "DNS Filter List disabled successfully" msgstr "DNS filter zoznam bol úspešne zakázaný" @@ -770,7 +778,7 @@ msgid "Last Seen" msgstr "Naposledy videný" #: templates/cluster/workers_list.html:13 -#: templates/cluster/workers_list.html:110 +#: templates/cluster/workers_list.html:107 msgid "Config Version" msgstr "Verzia konfigurácie" @@ -795,38 +803,107 @@ msgstr "Nenastavené" msgid "Never" msgstr "Nikdy" -#: templates/cluster/workers_list.html:68 -msgid "Config Pending" -msgstr "Konfigurácia čaká" - -#: templates/cluster/workers_list.html:77 +#: templates/cluster/workers_list.html:74 #: templates/dns/static_host_list.html:74 templates/user_manager/list.html:53 #: templates/user_manager/peer_group_list.html:35 #: templates/wireguard/wireguard_peer_list.html:196 msgid "Edit" msgstr "Upraviť" -#: templates/cluster/workers_list.html:82 +#: templates/cluster/workers_list.html:79 msgid "No workers configured" msgstr "Nie sú nakonfigurovaní žiadni workery" +#: templates/cluster/workers_list.html:86 #: templates/cluster/workers_list.html:89 -#: templates/cluster/workers_list.html:92 msgid "Cluster Information" msgstr "Informácie o klastri" -#: templates/cluster/workers_list.html:114 +#: templates/cluster/workers_list.html:111 +#, fuzzy +#| msgid "Version" +msgid "DNS Version" +msgstr "Verzia" + +#: templates/cluster/workers_list.html:116 msgid "Stats Sync Interval" msgstr "Interval synchronizácie štatistík" -#: templates/cluster/workers_list.html:118 +#: templates/cluster/workers_list.html:120 msgid "Stats Cache Interval" msgstr "Interval cache štatistík" -#: templates/cluster/workers_list.html:130 +#: templates/cluster/workers_list.html:132 msgid "Primary WireGuard" msgstr "Povoliť primárny WireGuard" +#: templates/cluster/workers_list.html:150 +#, fuzzy +#| msgid "Cluster Settings" +msgid "Cluster Feature – Testing Phase" +msgstr "Nastavenia Clustra" + +#: templates/cluster/workers_list.html:157 +msgid "The cluster functionality is currently released as experimental." +msgstr "" + +#: templates/cluster/workers_list.html:158 +msgid "At this stage, only core features are implemented:" +msgstr "" + +#: templates/cluster/workers_list.html:160 +#, fuzzy +#| msgid "Configuration sync in progress" +msgid "Configuration synchronization service" +msgstr "Synchronizácia konfigurácie prebieha" + +#: templates/cluster/workers_list.html:161 +msgid "Primary node mirroring (WireGuard and firewall rules)" +msgstr "" + +#: templates/cluster/workers_list.html:162 +msgid "DNS rules mirroring" +msgstr "" + +#: templates/cluster/workers_list.html:165 +msgid "Warning:" +msgstr "" + +#: templates/cluster/workers_list.html:167 +msgid "" +"In the current version, peer state information is not collected by the " +"master server." +msgstr "" + +#: templates/cluster/workers_list.html:168 +msgid "" +"Traffic data, IP address, handshake status, and online/offline state will " +"not be visible for peers connected to cluster nodes." +msgstr "" + +#: templates/cluster/workers_list.html:170 +msgid "Next priority features (coming soon):" +msgstr "" + +#: templates/cluster/workers_list.html:172 +msgid "Traffic data synchronization" +msgstr "" + +#: templates/cluster/workers_list.html:173 +msgid "" +"Server selection dropdown before downloading peer configs or VPN invites" +msgstr "" + +#: templates/cluster/workers_list.html:177 +msgid "For more information, please visit:" +msgstr "" + +#: templates/cluster/workers_list.html:181 +#, fuzzy +#| msgid "Instance" +msgid "I Understand" +msgstr "Inštancia" + #: templates/console/console.html:12 msgid "Clear" msgstr "Vymazať" @@ -2289,7 +2366,7 @@ msgstr "IP adresa aktualizovaná|IP adresa bola úspešne aktualizovaná." msgid "IP address added|IP address added successfully." msgstr "IP adresa pridaná|IP adresa bola úspešne pridaná." -#: wireguard_tools/views.py:167 +#: wireguard_tools/views.py:165 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/." @@ -2297,7 +2374,7 @@ msgstr "" "Export úspešný!|WireGuard konfiguračné súbory boli exportované do /etc/" "wireguard/." -#: wireguard_tools/views.py:169 +#: wireguard_tools/views.py:167 msgid "" "Export successful!|WireGuard configuration files have been exported to /etc/" "wireguard/. Don't forget to restart the interfaces." @@ -2305,19 +2382,19 @@ msgstr "" "Export úspešný!|WireGuard konfiguračné súbory boli exportované do /etc/" "wireguard/. Nezabudnite reštartovať rozhrania." -#: wireguard_tools/views.py:262 +#: wireguard_tools/views.py:260 msgid "Error reloading" msgstr "Chyba pri opätovnom načítaní" -#: wireguard_tools/views.py:274 +#: wireguard_tools/views.py:272 msgid "Error stopping" msgstr "Chyba pri zastavovaní" -#: wireguard_tools/views.py:279 +#: wireguard_tools/views.py:277 msgid "Error starting" msgstr "Chyba pri spúšťaní" -#: wireguard_tools/views.py:286 +#: wireguard_tools/views.py:284 msgid "" "WARNING|Please note that the interface was reloaded, not restarted. Double-" "check if the the peers are working as expected. If you find any issues, " @@ -2327,25 +2404,28 @@ msgstr "" "reštartované. Dôkladne skontrolujte či peeri fungujú podľa očakávania. Ak " "nájdete problémy, prosím nahláste ich." -#: wireguard_tools/views.py:287 +#: wireguard_tools/views.py:285 msgid "WireGuard reloaded|The WireGuard service has been reloaded." msgstr "WireGuard znovu načítaný|Služba WireGuard bola znovu načítaná." -#: wireguard_tools/views.py:289 +#: wireguard_tools/views.py:287 msgid "WireGuard restarted|The WireGuard service has been restarted." msgstr "WireGuard reštartovaný|Služba WireGuard bola reštartovaná." -#: wireguard_tools/views.py:292 +#: wireguard_tools/views.py:290 msgid "Errors encountered|Error processing one or more interfaces." msgstr "" "Vyskytli sa chyby|Chyba pri spracovaní jedného alebo viacerých rozhraní." -#: wireguard_tools/views.py:295 +#: wireguard_tools/views.py:293 msgid "No interfaces found|No WireGuard interfaces were found to process." msgstr "" "Neboli nájdené rozhrania|Neboli nájdené žiadne WireGuard rozhrania na " "spracovanie." +#~ msgid "Config Pending" +#~ msgstr "Konfigurácia čaká" + #~ msgid "Force Reload" #~ msgstr "Vynútiť načítanie"