diff --git a/internal/locales/de.json b/internal/locales/de.json new file mode 100644 index 0000000..46c0254 --- /dev/null +++ b/internal/locales/de.json @@ -0,0 +1,69 @@ +{ + "page.title": "Fail2ban UI Dashboard", + "nav.dashboard": "Dashboard", + "nav.filter_debug": "Filter-Debug", + "nav.settings": "Einstellungen", + "reload_banner.message": "Konfiguration geändert!", + "reload_banner.button": "Fail2ban neu laden", + "dashboard.title": "Dashboard", + "dashboard.overview": "Aktive Jails und Blocks Übersicht", + "dashboard.search_label": "Suche gesperrte IPs", + "dashboard.search_placeholder": "Geben Sie eine IP-Adresse zum Suchen ein", + "dashboard.table.jail_name": "Jail-Name", + "dashboard.table.total_banned": "Insgesamt gesperrt", + "dashboard.table.new_last_hour": "Neu in letzter Stunde", + "dashboard.table.banned_ips": "Gesperrte IPs (Entsperren)", + "dashboard.no_jails": "Keine Jails gefunden.", + "dashboard.last_bans": "Letzte 5 Sperrvorgänge", + "dashboard.table.time": "Zeit", + "dashboard.table.jail": "Jail", + "dashboard.table.ip": "IP", + "dashboard.table.log_line": "Logzeile", + "dashboard.no_recent_bans": "Keine aktuellen Sperrvorgänge gefunden.", + "dashboard.no_banned_ips": "Keine gesperrten IPs", + "dashboard.unban": "Entsperren", + "filter_debug.title": "Filter-Debug", + "filter_debug.select_filter": "Wählen Sie einen Filter", + "filter_debug.log_lines": "Logzeilen", + "filter_debug.log_lines_placeholder": "Geben Sie die Logzeilen hier ein...", + "filter_debug.test_filter": "Filter testen", + "filter_debug.test_results_title": "Testergebnisse", + "filter_debug.no_matches": "Keine Übereinstimmungen gefunden.", + "settings.title": "Einstellungen", + "settings.general": "Allgemeine Einstellungen", + "settings.language": "Sprache", + "settings.enable_debug": "Debug-Protokoll aktivieren", + "settings.alert": "Alarm-Einstellungen", + "settings.destination_email": "Ziel-E-Mail (Alarmempfänger)", + "settings.destination_email_placeholder": "alerts@swissmakers.ch", + "settings.alert_countries": "Alarm-Länder", + "settings.alert_countries_description": "Wählen Sie die Länder aus, für die E-Mail-Alarme ausgelöst werden sollen, wenn eine Sperrung erfolgt.", + "settings.smtp": "SMTP-Konfiguration", + "settings.smtp_host": "SMTP-Host", + "settings.smtp_host_placeholder": "z.B. smtp.gmail.com", + "settings.smtp_port": "SMTP-Port", + "settings.smtp_username": "SMTP-Benutzername", + "settings.smtp_username_placeholder": "z.B. user@example.com", + "settings.smtp_password": "SMTP-Passwort", + "settings.smtp_password_placeholder": "Geben Sie das SMTP-Passwort ein", + "settings.smtp_sender": "Absender-E-Mail", + "settings.smtp_sender_placeholder": "noreply@swissmakers.ch", + "settings.smtp_tls": "TLS verwenden (empfohlen)", + "settings.send_test_email": "Test-E-Mail senden", + "settings.fail2ban": "Fail2Ban-Konfiguration", + "settings.enable_bantime_increment": "Bantime-Inkrement aktivieren", + "settings.default_bantime": "Standard-Bantime", + "settings.default_bantime_placeholder": "z.B. 48h", + "settings.default_findtime": "Standard-Findtime", + "settings.default_findtime_placeholder": "z.B. 30m", + "settings.default_max_retry": "Standard-Maximalversuche", + "settings.default_max_retry_placeholder": "Geben Sie die maximale Anzahl der Versuche ein", + "settings.ignore_ips": "IP-Adressen ignorieren", + "settings.ignore_ips_placeholder": "IP-Adressen, getrennt durch Leerzeichen", + "settings.save": "Speichern", + "modal.filter_config": "Filter-Konfiguration:", + "modal.cancel": "Abbrechen", + "modal.save": "Speichern", + "loading": "Lade..." + } + \ No newline at end of file diff --git a/internal/locales/de_ch.json b/internal/locales/de_ch.json new file mode 100644 index 0000000..3ff6061 --- /dev/null +++ b/internal/locales/de_ch.json @@ -0,0 +1,69 @@ +{ + "page.title": "Fail2ban UI Dashboard", + "nav.dashboard": "Dashboard", + "nav.filter_debug": "Filter Debug", + "nav.settings": "Istellige", + "reload_banner.message": "D'Konfiguration isch gänderet worde!", + "reload_banner.button": "Fail2ban neu lade", + "dashboard.title": "Dashboard", + "dashboard.overview": "Übersicht vo de aktive Jails und Blocks", + "dashboard.search_label": "Suech nach g'sperrte IPs", + "dashboard.search_placeholder": "Gib d'IP adrässe i, wo du suechsch", + "dashboard.table.jail_name": "Jail-Name", + "dashboard.table.total_banned": "Insgsamt g'sperrt", + "dashboard.table.new_last_hour": "Neu in dr letschte Stund", + "dashboard.table.banned_ips": "G'sperrti IPs (Entsperre)", + "dashboard.no_jails": "Kei Jails gfunde.", + "dashboard.last_bans": "Letschti 5 Sperrvorgäng", + "dashboard.table.time": "Zyt", + "dashboard.table.jail": "Jail", + "dashboard.table.ip": "IP", + "dashboard.table.log_line": "Log-Zile", + "dashboard.no_recent_bans": "Kei aktuelli Sperrvorgäng gfunde.", + "dashboard.no_banned_ips": "Kei g'sperrti IPs", + "dashboard.unban": "Entsperre", + "filter_debug.title": "Filter Debug", + "filter_debug.select_filter": "Wähl en Filter us", + "filter_debug.log_lines": "Log-Zile", + "filter_debug.log_lines_placeholder": "Gib ä Log-Zile da ii...", + "filter_debug.test_filter": "Filter teste", + "filter_debug.test_results_title": "Testergebnis", + "filter_debug.no_matches": "Kei Übereinstimmige gfunde.", + "settings.title": "Istellige", + "settings.general": "Allgemeini Istellige", + "settings.language": "Sprach", + "settings.enable_debug": "Debug-Modus aktivierä", + "settings.alert": "Alarm-Istellige", + "settings.destination_email": "Ziil-Email (Alarmempfänger)", + "settings.destination_email_placeholder": "alerts@swissmakers.ch", + "settings.alert_countries": "Alarm-Länder", + "settings.alert_countries_description": "Wähl d'Länder us, für weli du per Email ä Alarm becho wetsch, wenn e Sperrig passiert.", + "settings.smtp": "SMTP-Konfiguration", + "settings.smtp_host": "SMTP-Host", + "settings.smtp_host_placeholder": "z.B. smtp.gmail.com", + "settings.smtp_port": "SMTP-Port", + "settings.smtp_username": "SMTP-Benutzername", + "settings.smtp_username_placeholder": "z.B. user@example.com", + "settings.smtp_password": "SMTP-Passwort", + "settings.smtp_password_placeholder": "Gib s'SMTP-Passwort ii", + "settings.smtp_sender": "Absänder-Email", + "settings.smtp_sender_placeholder": "noreply@swissmakers.ch", + "settings.smtp_tls": "TLS bruuche (empfohlen)", + "settings.send_test_email": "Test-Email schicke", + "settings.fail2ban": "Fail2Ban-Konfiguration", + "settings.enable_bantime_increment": "Bantime-Inkrement aktivierä", + "settings.default_bantime": "Standard-Bantime", + "settings.default_bantime_placeholder": "z.B. 48h", + "settings.default_findtime": "Standard-Findtime", + "settings.default_findtime_placeholder": "z.B. 30m", + "settings.default_max_retry": "Standard-Maximalversüech", + "settings.default_max_retry_placeholder": "Gib d'maximal Versüech ii", + "settings.ignore_ips": "IPs ignorierä", + "settings.ignore_ips_placeholder": "IPs, getrennt dur e Leerzeichä", + "settings.save": "Speicherä", + "modal.filter_config": "Filter-Konfiguration:", + "modal.cancel": "Abbräche", + "modal.save": "Speicherä", + "loading": "Lade..." + } + \ No newline at end of file diff --git a/internal/locales/en.json b/internal/locales/en.json new file mode 100644 index 0000000..9008812 --- /dev/null +++ b/internal/locales/en.json @@ -0,0 +1,69 @@ +{ + "page.title": "Fail2ban UI Dashboard", + "nav.dashboard": "Dashboard", + "nav.filter_debug": "Filter Debug", + "nav.settings": "Settings", + "reload_banner.message": "Configuration changed!", + "reload_banner.button": "Reload Fail2ban", + "dashboard.title": "Dashboard", + "dashboard.overview": "Overview active Jails and Blocks", + "dashboard.search_label": "Search Banned IPs", + "dashboard.search_placeholder": "Enter IP address to search", + "dashboard.table.jail_name": "Jail Name", + "dashboard.table.total_banned": "Total Banned", + "dashboard.table.new_last_hour": "New Last Hour", + "dashboard.table.banned_ips": "Banned IPs (Unban)", + "dashboard.no_jails": "No jails found.", + "dashboard.last_bans": "Last 5 Ban Events", + "dashboard.table.time": "Time", + "dashboard.table.jail": "Jail", + "dashboard.table.ip": "IP", + "dashboard.table.log_line": "Log Line", + "dashboard.no_recent_bans": "No recent bans found.", + "dashboard.no_banned_ips": "No banned IPs", + "dashboard.unban": "Unban", + "filter_debug.title": "Filter Debug", + "filter_debug.select_filter": "Select a Filter", + "filter_debug.log_lines": "Log Lines", + "filter_debug.log_lines_placeholder": "Enter log lines here...", + "filter_debug.test_filter": "Test Filter", + "filter_debug.test_results_title": "Test Results", + "filter_debug.no_matches": "No matches found.", + "settings.title": "Settings", + "settings.general": "General Settings", + "settings.language": "Language", + "settings.enable_debug": "Enable Debug Log", + "settings.alert": "Alert Settings", + "settings.destination_email": "Destination Email (Alerts Receiver)", + "settings.destination_email_placeholder": "alerts@swissmakers.ch", + "settings.alert_countries": "Alert Countries", + "settings.alert_countries_description": "Choose the countries for which you want to receive email alerts when a block is triggered.", + "settings.smtp": "SMTP Configuration", + "settings.smtp_host": "SMTP Host", + "settings.smtp_host_placeholder": "e.g., smtp.gmail.com", + "settings.smtp_port": "SMTP Port", + "settings.smtp_username": "SMTP Username", + "settings.smtp_username_placeholder": "e.g., user@example.com", + "settings.smtp_password": "SMTP Password", + "settings.smtp_password_placeholder": "Enter SMTP Password", + "settings.smtp_sender": "Sender Email", + "settings.smtp_sender_placeholder": "noreply@swissmakers.ch", + "settings.smtp_tls": "Use TLS (Recommended)", + "settings.send_test_email": "Send Test Email", + "settings.fail2ban": "Fail2Ban Configuration", + "settings.enable_bantime_increment": "Enable Bantime Increment", + "settings.default_bantime": "Default Bantime", + "settings.default_bantime_placeholder": "e.g., 48h", + "settings.default_findtime": "Default Findtime", + "settings.default_findtime_placeholder": "e.g., 30m", + "settings.default_max_retry": "Default Max Retry", + "settings.default_max_retry_placeholder": "Enter maximum retries", + "settings.ignore_ips": "Ignore IPs", + "settings.ignore_ips_placeholder": "IPs to ignore, separated by spaces", + "settings.save": "Save", + "modal.filter_config": "Filter Config:", + "modal.cancel": "Cancel", + "modal.save": "Save", + "loading": "Loading..." + } + \ No newline at end of file diff --git a/internal/locales/es.json b/internal/locales/es.json new file mode 100644 index 0000000..fef403b --- /dev/null +++ b/internal/locales/es.json @@ -0,0 +1,68 @@ +{ + "page.title": "Panel de control Fail2ban UI", + "nav.dashboard": "Panel de control", + "nav.filter_debug": "Depuración de filtros", + "nav.settings": "Configuración", + "reload_banner.message": "¡La configuración ha sido modificada!", + "reload_banner.button": "Recargar Fail2ban", + "dashboard.title": "Panel de control", + "dashboard.overview": "Resumen de Jails y Bloqueos activos", + "dashboard.search_label": "Buscar IP bloqueadas", + "dashboard.search_placeholder": "Introduce la dirección IP a buscar", + "dashboard.table.jail_name": "Nombre del Jail", + "dashboard.table.total_banned": "Total bloqueadas", + "dashboard.table.new_last_hour": "Nuevas en la última hora", + "dashboard.table.banned_ips": "IPs bloqueadas (Desbloquear)", + "dashboard.no_jails": "No se encontraron jails.", + "dashboard.last_bans": "Últimos 5 eventos de bloqueo", + "dashboard.table.time": "Hora", + "dashboard.table.jail": "Jail", + "dashboard.table.ip": "IP", + "dashboard.table.log_line": "Línea de log", + "dashboard.no_recent_bans": "No se encontraron bloqueos recientes.", + "dashboard.no_banned_ips": "No hay IP bloqueadas", + "dashboard.unban": "Desbloquear", + "filter_debug.title": "Depuración de filtros", + "filter_debug.select_filter": "Selecciona un filtro", + "filter_debug.log_lines": "Líneas de log", + "filter_debug.log_lines_placeholder": "Introduce las líneas de log aquí...", + "filter_debug.test_filter": "Probar filtro", + "filter_debug.test_results_title": "Resultados de la prueba", + "filter_debug.no_matches": "No se encontraron coincidencias.", + "settings.title": "Configuración", + "settings.general": "Configuración general", + "settings.language": "Idioma", + "settings.enable_debug": "Habilitar el modo de depuración", + "settings.alert": "Configuración de alertas", + "settings.destination_email": "Correo electrónico de destino (receptor de alertas)", + "settings.destination_email_placeholder": "alerts@swissmakers.ch", + "settings.alert_countries": "Países para alerta", + "settings.alert_countries_description": "Elige los países para los que deseas recibir alertas por correo electrónico cuando se produzca un bloqueo.", + "settings.smtp": "Configuración SMTP", + "settings.smtp_host": "Host SMTP", + "settings.smtp_host_placeholder": "p.ej., smtp.gmail.com", + "settings.smtp_port": "Puerto SMTP", + "settings.smtp_username": "Nombre de usuario SMTP", + "settings.smtp_username_placeholder": "p.ej., usuario@example.com", + "settings.smtp_password": "Contraseña SMTP", + "settings.smtp_password_placeholder": "Introduce la contraseña SMTP", + "settings.smtp_sender": "Correo electrónico del remitente", + "settings.smtp_sender_placeholder": "noreply@swissmakers.ch", + "settings.smtp_tls": "Usar TLS (recomendado)", + "settings.send_test_email": "Enviar correo de prueba", + "settings.fail2ban": "Configuración de Fail2Ban", + "settings.enable_bantime_increment": "Habilitar incremento de Bantime", + "settings.default_bantime": "Bantime por defecto", + "settings.default_bantime_placeholder": "p.ej., 48h", + "settings.default_findtime": "Findtime por defecto", + "settings.default_findtime_placeholder": "p.ej., 30m", + "settings.default_max_retry": "Número máximo de reintentos por defecto", + "settings.default_max_retry_placeholder": "Introduce el número máximo de reintentos", + "settings.ignore_ips": "Ignorar IPs", + "settings.ignore_ips_placeholder": "IPs a ignorar, separadas por espacios", + "settings.save": "Guardar", + "modal.filter_config": "Configuración del filtro:", + "modal.cancel": "Cancelar", + "modal.save": "Guardar", + "loading": "Cargando..." +} diff --git a/internal/locales/fr.json b/internal/locales/fr.json new file mode 100644 index 0000000..9d175e3 --- /dev/null +++ b/internal/locales/fr.json @@ -0,0 +1,68 @@ +{ + "page.title": "Tableau de bord Fail2ban UI", + "nav.dashboard": "Tableau de bord", + "nav.filter_debug": "Débogage des filtres", + "nav.settings": "Paramètres", + "reload_banner.message": "Configuration modifiée!", + "reload_banner.button": "Recharger Fail2ban", + "dashboard.title": "Tableau de bord", + "dashboard.overview": "Vue d'ensemble des jails et blocages actifs", + "dashboard.search_label": "Rechercher des IP bloquées", + "dashboard.search_placeholder": "Entrez l'adresse IP à rechercher", + "dashboard.table.jail_name": "Nom du Jail", + "dashboard.table.total_banned": "Total bloqués", + "dashboard.table.new_last_hour": "Nouveaux dans la dernière heure", + "dashboard.table.banned_ips": "IPs bloquées (Débloquer)", + "dashboard.no_jails": "Aucun jail trouvé.", + "dashboard.last_bans": "5 derniers événements de blocage", + "dashboard.table.time": "Heure", + "dashboard.table.jail": "Jail", + "dashboard.table.ip": "IP", + "dashboard.table.log_line": "Ligne de log", + "dashboard.no_recent_bans": "Aucun blocage récent trouvé.", + "dashboard.no_banned_ips": "Aucune IP bloquée", + "dashboard.unban": "Débloquer", + "filter_debug.title": "Débogage des filtres", + "filter_debug.select_filter": "Sélectionnez un filtre", + "filter_debug.log_lines": "Lignes de log", + "filter_debug.log_lines_placeholder": "Entrez les lignes de log ici...", + "filter_debug.test_filter": "Tester le filtre", + "filter_debug.test_results_title": "Résultats du test", + "filter_debug.no_matches": "Aucune correspondance trouvée.", + "settings.title": "Paramètres", + "settings.general": "Paramètres généraux", + "settings.language": "Langue", + "settings.enable_debug": "Activer le mode débogage", + "settings.alert": "Paramètres d'alerte", + "settings.destination_email": "Email de destination (récepteur des alertes)", + "settings.destination_email_placeholder": "alerts@swissmakers.ch", + "settings.alert_countries": "Pays d'alerte", + "settings.alert_countries_description": "Choisissez les pays pour lesquels vous souhaitez recevoir des alertes par email lors d'un blocage.", + "settings.smtp": "Configuration SMTP", + "settings.smtp_host": "Hôte SMTP", + "settings.smtp_host_placeholder": "par exemple, smtp.gmail.com", + "settings.smtp_port": "Port SMTP", + "settings.smtp_username": "Nom d'utilisateur SMTP", + "settings.smtp_username_placeholder": "par exemple, utilisateur@example.com", + "settings.smtp_password": "Mot de passe SMTP", + "settings.smtp_password_placeholder": "Entrez le mot de passe SMTP", + "settings.smtp_sender": "Email de l'expéditeur", + "settings.smtp_sender_placeholder": "noreply@swissmakers.ch", + "settings.smtp_tls": "Utiliser TLS (recommandé)", + "settings.send_test_email": "Envoyer un email de test", + "settings.fail2ban": "Configuration Fail2Ban", + "settings.enable_bantime_increment": "Activer l'incrémentation du Bantime", + "settings.default_bantime": "Bantime par défaut", + "settings.default_bantime_placeholder": "par exemple, 48h", + "settings.default_findtime": "Findtime par défaut", + "settings.default_findtime_placeholder": "par exemple, 30m", + "settings.default_max_retry": "Nombre maximal de réessais par défaut", + "settings.default_max_retry_placeholder": "Entrez le nombre maximal de réessais", + "settings.ignore_ips": "Ignorer les IPs", + "settings.ignore_ips_placeholder": "IPs à ignorer, séparées par des espaces", + "settings.save": "Enregistrer", + "modal.filter_config": "Configuration du filtre:", + "modal.cancel": "Annuler", + "modal.save": "Enregistrer", + "loading": "Chargement..." +} diff --git a/internal/locales/it.json b/internal/locales/it.json new file mode 100644 index 0000000..ca1f1ca --- /dev/null +++ b/internal/locales/it.json @@ -0,0 +1,68 @@ +{ + "page.title": "Cruscotto Fail2ban UI", + "nav.dashboard": "Cruscotto", + "nav.filter_debug": "Debug Filtro", + "nav.settings": "Impostazioni", + "reload_banner.message": "Configurazione modificata!", + "reload_banner.button": "Ricarica Fail2ban", + "dashboard.title": "Cruscotto", + "dashboard.overview": "Panoramica dei jail e dei blocchi attivi", + "dashboard.search_label": "Cerca IP bloccate", + "dashboard.search_placeholder": "Inserisci l'indirizzo IP da cercare", + "dashboard.table.jail_name": "Nome del Jail", + "dashboard.table.total_banned": "Totale bloccate", + "dashboard.table.new_last_hour": "Nuove nell'ultima ora", + "dashboard.table.banned_ips": "IP bloccate (Sblocca)", + "dashboard.no_jails": "Nessun jail trovato.", + "dashboard.last_bans": "Ultimi 5 eventi di blocco", + "dashboard.table.time": "Ora", + "dashboard.table.jail": "Jail", + "dashboard.table.ip": "IP", + "dashboard.table.log_line": "Riga di log", + "dashboard.no_recent_bans": "Nessun blocco recente trovato.", + "dashboard.no_banned_ips": "Nessuna IP bloccata", + "dashboard.unban": "Sblocca", + "filter_debug.title": "Debug Filtro", + "filter_debug.select_filter": "Seleziona un filtro", + "filter_debug.log_lines": "Righe di log", + "filter_debug.log_lines_placeholder": "Inserisci qui le righe di log...", + "filter_debug.test_filter": "Testa filtro", + "filter_debug.test_results_title": "Risultati del test", + "filter_debug.no_matches": "Nessuna corrispondenza trovata.", + "settings.title": "Impostazioni", + "settings.general": "Impostazioni generali", + "settings.language": "Lingua", + "settings.enable_debug": "Abilita debug", + "settings.alert": "Impostazioni di allarme", + "settings.destination_email": "Email di destinazione (ricevente allarmi)", + "settings.destination_email_placeholder": "alerts@swissmakers.ch", + "settings.alert_countries": "Paesi per allarme", + "settings.alert_countries_description": "Seleziona i paesi per i quali desideri ricevere allarmi via email quando si verifica un blocco.", + "settings.smtp": "Configurazione SMTP", + "settings.smtp_host": "Host SMTP", + "settings.smtp_host_placeholder": "es. smtp.gmail.com", + "settings.smtp_port": "Porta SMTP", + "settings.smtp_username": "Nome utente SMTP", + "settings.smtp_username_placeholder": "es. utente@example.com", + "settings.smtp_password": "Password SMTP", + "settings.smtp_password_placeholder": "Inserisci la password SMTP", + "settings.smtp_sender": "Email del mittente", + "settings.smtp_sender_placeholder": "noreply@swissmakers.ch", + "settings.smtp_tls": "Usa TLS (raccomandato)", + "settings.send_test_email": "Invia email di test", + "settings.fail2ban": "Configurazione Fail2Ban", + "settings.enable_bantime_increment": "Abilita incremento del Bantime", + "settings.default_bantime": "Bantime predefinito", + "settings.default_bantime_placeholder": "es. 48h", + "settings.default_findtime": "Findtime predefinito", + "settings.default_findtime_placeholder": "es. 30m", + "settings.default_max_retry": "Numero massimo di tentativi predefinito", + "settings.default_max_retry_placeholder": "Inserisci il numero massimo di tentativi", + "settings.ignore_ips": "Ignora IP", + "settings.ignore_ips_placeholder": "IP da ignorare, separate da spazi", + "settings.save": "Salva", + "modal.filter_config": "Configurazione del filtro:", + "modal.cancel": "Annulla", + "modal.save": "Salva", + "loading": "Caricamento..." +} diff --git a/pkg/web/templates/index.html b/pkg/web/templates/index.html index 5513041..899b4ec 100644 --- a/pkg/web/templates/index.html +++ b/pkg/web/templates/index.html @@ -21,7 +21,7 @@
-