diff --git a/intl_tools/forms.py b/intl_tools/forms.py index 35d9fc2..35127b4 100644 --- a/intl_tools/forms.py +++ b/intl_tools/forms.py @@ -1,5 +1,5 @@ from crispy_forms.helper import FormHelper -from crispy_forms.layout import Column, Layout, Row, Submit +from crispy_forms.layout import Column, HTML, Layout, Row, Submit from django import forms from django.conf import settings from django.utils.translation import gettext_lazy as _ @@ -19,5 +19,13 @@ class LanguageForm(forms.Form): Row( Column('language', css_class='col-md-6'), ), - Submit('submit', _("Change Language"), css_class='btn btn-primary') + + + Submit('submit', _("Change Language"), css_class='btn btn-primary'), + + Row( + Column(HTML( + "" + _("If you find any issues with the translation or would like to request a new language, please open an") + " issue."), + css_class='col-md-12', style='padding-top: 32px;'), + ), ) \ No newline at end of file diff --git a/locale/de/LC_MESSAGES/django.mo b/locale/de/LC_MESSAGES/django.mo index be968c4..d868f36 100644 Binary files a/locale/de/LC_MESSAGES/django.mo and b/locale/de/LC_MESSAGES/django.mo differ diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index a06d358..e3fb312 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-17 08:45-0300\n" +"POT-Creation-Date: 2025-04-17 12:38-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -463,10 +463,16 @@ msgstr "Firewall‑Einstellungen erfolgreich gespeichert" msgid "Language" msgstr "Sprache" -#: intl_tools/forms.py:22 templates/base.html:80 +#: intl_tools/forms.py:24 templates/base.html:80 msgid "Change Language" msgstr "Sprache ändern" +#: intl_tools/forms.py:28 +msgid "" +"If you find any issues with the translation or would like to request a new " +"language, please open an" +msgstr "Wenn dir bei der Übersetzung Fehler auffallen oder du eine neue Sprache anfordern möchtest, öffne bitte ein" + #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Zugriff verweigert" @@ -946,7 +952,8 @@ msgstr "Port‑Weiterleitungsregel erstellen" msgid "User Level" msgstr "Benutzerstufe" -#: templates/user_manager/list.html:10 user_manager/forms.py:24 user_manager/views.py:17 +#: templates/user_manager/list.html:10 user_manager/forms.py:24 +#: user_manager/views.py:17 msgid "Peer Groups" msgstr "Peer‑Gruppen" @@ -1518,37 +1525,45 @@ msgstr "" "\n" "

Benutzerstufen

\n" "
Debug‑Analyst
\n" -"

Zugriff auf grundlegende Systeminformationen und Protokolle zur Fehlerbehebung. " -"Kein Zugriff zum Ändern von Einstellungen oder zum Einsehen sensibler Daten wie Peer‑Schlüssel.

\n" +"

Zugriff auf grundlegende Systeminformationen und Protokolle zur " +"Fehlerbehebung. Kein Zugriff zum Ändern von Einstellungen oder zum Einsehen " +"sensibler Daten wie Peer‑Schlüssel.

\n" "\n" "
Nur Ansicht
\n" -"

Vollständiger Lesezugriff, einschließlich Peer‑Schlüssel und Konfigurationsdateien. " -"Es können jedoch keine Einstellungen oder Konfigurationen geändert werden.

\n" +"

Vollständiger Lesezugriff, einschließlich Peer‑Schlüssel und " +"Konfigurationsdateien. Es können jedoch keine Einstellungen oder " +"Konfigurationen geändert werden.

\n" "\n" "
Peer‑Manager
\n" -"

Berechtigung zum Hinzufügen, Bearbeiten und Entfernen von Peers und IP‑Adressen. " -"Kein Zugriff auf die Konfiguration von WireGuard‑Instanzen oder höhere Systemeinstellungen.

\n" +"

Berechtigung zum Hinzufügen, Bearbeiten und Entfernen von Peers " +"und IP‑Adressen. Kein Zugriff auf die Konfiguration von WireGuard‑Instanzen " +"oder höhere Systemeinstellungen.

\n" "\n" "
WireGuard‑Manager
\n" -"

Befugnis zum Hinzufügen, Bearbeiten und Entfernen der Konfigurationen von WireGuard‑Instanzen.

\n" +"

Befugnis zum Hinzufügen, Bearbeiten und Entfernen der " +"Konfigurationen von WireGuard‑Instanzen.

\n" "\n" "
Administrator
\n" -"

Vollzugriff auf das gesamte System. Kann alle Einstellungen und Konfigurationen anzeigen und ändern " -"sowie Benutzer verwalten.

\n" +"

Vollzugriff auf das gesamte System. Kann alle Einstellungen und " +"Konfigurationen anzeigen und ändern sowie Benutzer verwalten.

\n" "\n" "
\n" "

Peer‑Gruppen

\n" -"

Wählen Sie aus, auf welche Peer‑Gruppen dieser Benutzer zugreifen darf. " -"Wenn keine Gruppe ausgewählt ist, hat der Benutzer Zugriff auf alle Peers.

\n" +"

Wählen Sie aus, auf welche Peer‑Gruppen dieser Benutzer zugreifen " +"darf. Wenn keine Gruppe ausgewählt ist, hat der Benutzer Zugriff auf alle " +"Peers.

\n" "\n" "

Konsole

\n" -"

Aktivieren oder deaktivieren Sie den Zugriff auf die Web‑Konsole für diesen Benutzer.

\n" +"

Aktivieren oder deaktivieren Sie den Zugriff auf die Web‑Konsole " +"für diesen Benutzer.

\n" "\n" "

Erweiterter Filter

\n" -"

Diese Option filtert die API‑Statusantwort, sodass nur Peers angezeigt werden, " -"auf die der Benutzer Zugriff hat. Je nach Größe Ihrer Umgebung kann das Aktivieren dieser Option " -"die Leistung beeinträchtigen. Um dem entgegenzuwirken, erhöhen Sie gegebenenfalls das " -"„Web‑Aktualisierungsintervall“, um die Anzahl der Anfragen zu reduzieren.

\n" +"

Diese Option filtert die API‑Statusantwort, sodass nur Peers " +"angezeigt werden, auf die der Benutzer Zugriff hat. Je nach Größe Ihrer " +"Umgebung kann das Aktivieren dieser Option die Leistung beeinträchtigen. Um " +"dem entgegenzuwirken, erhöhen Sie gegebenenfalls das " +"„Web‑Aktualisierungsintervall“, um die Anzahl der Anfragen zu reduzieren.\n" "\n" " " diff --git a/locale/es/LC_MESSAGES/django.mo b/locale/es/LC_MESSAGES/django.mo index 79eb150..b26372b 100644 Binary files a/locale/es/LC_MESSAGES/django.mo and b/locale/es/LC_MESSAGES/django.mo differ diff --git a/locale/es/LC_MESSAGES/django.po b/locale/es/LC_MESSAGES/django.po index 138d1a2..bc6495d 100644 --- a/locale/es/LC_MESSAGES/django.po +++ b/locale/es/LC_MESSAGES/django.po @@ -6,10 +6,9 @@ #, fuzzy msgid "" msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-16 15:55-0300\n" +"POT-Creation-Date: 2025-04-17 12:38-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -460,10 +459,16 @@ msgstr "Configuración de firewall guardada correctamente" msgid "Language" msgstr "Idioma" -#: intl_tools/forms.py:22 templates/base.html:80 +#: intl_tools/forms.py:24 templates/base.html:80 msgid "Change Language" msgstr "Cambiar idioma" +#: intl_tools/forms.py:28 +msgid "" +"If you find any issues with the translation or would like to request a new " +"language, please open an" +msgstr "Si encuentra algún problema con la traducción o desea solicitar un nuevo idioma, por favor abra un" + #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acceso denegado" diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo index 8da9cce..e8df52d 100644 Binary files a/locale/fr/LC_MESSAGES/django.mo and b/locale/fr/LC_MESSAGES/django.mo differ diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index 91a0736..771eb8b 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -6,10 +6,9 @@ #, fuzzy msgid "" msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-17 09:04-0300\n" +"POT-Creation-Date: 2025-04-17 12:38-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -462,10 +461,16 @@ msgstr "Paramètres du pare‑feu enregistrés avec succès" msgid "Language" msgstr "Langue" -#: intl_tools/forms.py:22 templates/base.html:80 +#: intl_tools/forms.py:24 templates/base.html:80 msgid "Change Language" msgstr "Changer de langue" +#: intl_tools/forms.py:28 +msgid "" +"If you find any issues with the translation or would like to request a new " +"language, please open an" +msgstr "Si vous constatez un problème dans la traduction ou souhaitez demander une nouvelle langue, veuillez ouvrir une" + #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Accès refusé" @@ -660,8 +665,7 @@ msgstr "Règle automatique: trafic Peer ↔ Peer (paramètres du pare‑feu)" #: templates/firewall/firewall_rule_list.html:179 msgid "Automatic Rule: Firewall Settings Instance to Instance" -msgstr "" -"Règle automatique: trafic Instance ↔ Instance (paramètres du pare‑feu)" +msgstr "Règle automatique: trafic Instance ↔ Instance (paramètres du pare‑feu)" #: templates/firewall/firewall_rule_list.html:194 msgid "Create Firewall Rule" @@ -889,13 +893,12 @@ msgid "" msgstr "" "\n" "

Ports par défaut
\n" -"

Le fichier docker-compose.yml " -"par défaut définit la plage de ports TCP 8080‑8089. " -"Si vous souhaitez rediriger vers une autre plage, modifiez ce " -"fichier manuellement, puis relancez l’étape Docker Compose décrite dans les " -"instructions de " -"déploiement.

\n" +"

Le fichier docker-compose.yml par " +"défaut définit la plage de ports TCP 8080‑8089. Si vous " +"souhaitez rediriger vers une autre plage, modifiez ce fichier manuellement, " +"puis relancez l’étape Docker Compose décrite dans les instructions de déploiement.

\n" "
Type de destination: Peer
\n" "

La redirection de port privilégiera la première " "adresse IP du peer dont la priorité est zéro.

\n" @@ -1551,9 +1554,8 @@ msgstr "" "

Filtre avancé

\n" "

Limite la réponse de l’API aux seuls peers autorisés pour " "l’utilisateur. Selon la taille de votre environnement, cette option peut " -"affecter les performances. Pour compenser, augmentez éventuellement " -"l’« intervalle d’actualisation Web » afin de réduire le nombre de requêtes.\n" +"affecter les performances. Pour compenser, augmentez éventuellement l’« " +"intervalle d’actualisation Web » afin de réduire le nombre de requêtes.

\n" "\n" " " @@ -1673,15 +1675,20 @@ msgstr "L’expiration (en minutes) doit être comprise entre 1 et 1440." #: vpn_invite/forms.py:222 msgid "Default password must not be provided when random password is enabled." -msgstr "Le mot de passe par défaut ne doit pas être fourni lorsque le mot de passe aléatoire est activé." +msgstr "" +"Le mot de passe par défaut ne doit pas être fourni lorsque le mot de passe " +"aléatoire est activé." #: vpn_invite/forms.py:224 msgid "Random password length must be at least 6 characters." -msgstr "La longueur du mot de passe aléatoire doit être d’au moins 6 caractères." +msgstr "" +"La longueur du mot de passe aléatoire doit être d’au moins 6 caractères." #: vpn_invite/forms.py:229 msgid "Default password must be provided when random password is disabled." -msgstr "Un mot de passe par défaut doit être fourni lorsque le mot de passe aléatoire est désactivé." +msgstr "" +"Un mot de passe par défaut doit être fourni lorsque le mot de passe " +"aléatoire est désactivé." #: vpn_invite/forms.py:231 msgid "Default password must be at least 6 characters long." @@ -1689,16 +1696,22 @@ msgstr "Le mot de passe par défaut doit comporter au moins 6 caractères." #: vpn_invite/forms.py:241 msgid "Text field must not be empty when download button is enabled." -msgstr "Le champ texte ne doit pas être vide lorsque le bouton de téléchargement est activé." +msgstr "" +"Le champ texte ne doit pas être vide lorsque le bouton de téléchargement est " +"activé." #: vpn_invite/forms.py:243 msgid "URL field must not be empty when download button is enabled." -msgstr "Le champ URL ne doit pas être vide lorsque le bouton de téléchargement est activé." +msgstr "" +"Le champ URL ne doit pas être vide lorsque le bouton de téléchargement est " +"activé." #: vpn_invite/forms.py:252 msgid "" "Default password must not be contained in any message template. Found at: " -msgstr "Le mot de passe par défaut ne doit figurer dans aucun modèle de message. Trouvé dans: " +msgstr "" +"Le mot de passe par défaut ne doit figurer dans aucun modèle de message. " +"Trouvé dans: " #: vpn_invite/forms.py:259 #, python-brace-format @@ -1737,13 +1750,14 @@ msgstr "" "Bonjour,\n" "\n" "Vous êtes invité·e à rejoindre notre réseau VPN WireGuard sécurisé. Cliquez " -"sur le lien ci‑dessous pour accéder à votre configuration VPN personnalisée:\n" +"sur le lien ci‑dessous pour accéder à votre configuration VPN " +"personnalisée:\n" "\n" "{invite_url}\n" "\n" -"Remarque: ce lien d’invitation expirera dans {expire_minutes} minutes. " -"Si vous avez besoin d’un nouveau lien après expiration, veuillez demander " -"une nouvelle invitation." +"Remarque: ce lien d’invitation expirera dans {expire_minutes} minutes. Si " +"vous avez besoin d’un nouveau lien après expiration, veuillez demander une " +"nouvelle invitation." #: vpn_invite/models.py:16 msgid "" @@ -1833,7 +1847,9 @@ msgstr "Intervalle d’actualisation Web" #: wireguard/forms.py:42 msgid "Peer List Refresh Interval must be at least 5 seconds" -msgstr "L’intervalle d’actualisation de la liste des peers doit être d’au moins 5 secondes." +msgstr "" +"L’intervalle d’actualisation de la liste des peers doit être d’au moins 5 " +"secondes." #: wireguard/forms.py:45 msgid "Invalid hostname or IP Address" @@ -1860,8 +1876,12 @@ msgid "Error removing instance: wg" msgstr "Erreur lors de la suppression de l’instance: wg" #: wireguard/views.py:136 -msgid "|Cannot delete the requested WireGuard instance. There are still peers associated with this instance." -msgstr "|Impossible de supprimer l’instance WireGuard demandée ; des peers y sont encore associés." +msgid "" +"|Cannot delete the requested WireGuard instance. There are still peers " +"associated with this instance." +msgstr "" +"|Impossible de supprimer l’instance WireGuard demandée ; des peers y sont " +"encore associés." #: wireguard/views.py:139 msgid "|WireGuard instance deleted: wg" @@ -1869,7 +1889,9 @@ msgstr "|Instance WireGuard supprimée: wg" #: wireguard/views.py:142 msgid "Invalid confirmation|Please confirm deletion of WireGuard instance: wg" -msgstr "Confirmation invalide | Veuillez confirmer la suppression de l’instance WireGuard: wg" +msgstr "" +"Confirmation invalide | Veuillez confirmer la suppression de l’instance " +"WireGuard: wg" #: wireguard/views.py:146 msgid "Create a new WireGuard Instance" @@ -1909,7 +1931,8 @@ msgstr "Le masque de sous‑réseau pour une IP de priorité 0 doit être 32." #: wireguard_peer/forms.py:60 msgid "The IP address is the same as the Peer's WireGuard instance address." -msgstr "Cette adresse IP est identique à celle de l’instance WireGuard du peer." +msgstr "" +"Cette adresse IP est identique à celle de l’instance WireGuard du peer." #: wireguard_peer/forms.py:63 msgid "" @@ -1971,8 +1994,8 @@ msgid "" "Error deleting IP address|Invalid confirmation message. Type \"delete\" to " "confirm." msgstr "" -"Erreur de suppression de l’IP | Message de confirmation invalide. Tapez " -"« delete » pour confirmer." +"Erreur de suppression de l’IP | Message de confirmation invalide. Tapez « " +"delete » pour confirmer." #: wireguard_peer/views.py:230 msgid "Manage client route" @@ -2018,15 +2041,14 @@ msgstr "Erreur à l’arrêt" msgid "Error starting" msgstr "Erreur au démarrage" - #: wireguard_tools/views.py:279 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, " "please report them." 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é." +"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:280 msgid "WireGuard reloaded|The WireGuard service has been reloaded." @@ -2038,7 +2060,9 @@ msgstr "WireGuard redémarré | Le service WireGuard a été redémarré." #: wireguard_tools/views.py:285 msgid "Errors encountered|Error processing one or more interfaces." -msgstr "Erreurs rencontrées | Problème lors du traitement d’une ou plusieurs interfaces." +msgstr "" +"Erreurs rencontrées | Problème lors du traitement d’une ou plusieurs " +"interfaces." #: wireguard_tools/views.py:288 msgid "No interfaces found|No WireGuard interfaces were found to process." diff --git a/locale/pt_BR/LC_MESSAGES/django.mo b/locale/pt_BR/LC_MESSAGES/django.mo index 56e14c8..5288828 100644 Binary files a/locale/pt_BR/LC_MESSAGES/django.mo and b/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/locale/pt_BR/LC_MESSAGES/django.po b/locale/pt_BR/LC_MESSAGES/django.po index 77c33ca..af096ae 100644 --- a/locale/pt_BR/LC_MESSAGES/django.po +++ b/locale/pt_BR/LC_MESSAGES/django.po @@ -6,10 +6,9 @@ #, fuzzy msgid "" msgstr "" - "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-04-16 14:32-0300\n" +"POT-Creation-Date: 2025-04-17 12:38-0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -461,10 +460,16 @@ msgstr "Configurações de Firewall salvas com sucesso" msgid "Language" msgstr "Idioma" -#: intl_tools/forms.py:22 templates/base.html:80 +#: intl_tools/forms.py:24 templates/base.html:80 msgid "Change Language" msgstr "Alterar Idioma" +#: intl_tools/forms.py:28 +msgid "" +"If you find any issues with the translation or would like to request a new " +"language, please open an" +msgstr "Se encontrar algum problema na tradução ou quiser solicitar um novo idioma, por favor abra uma" + #: templates/access_denied.html:9 msgid "Access Denied" msgstr "Acesso Negado"