mirror of
https://github.com/swissmakers/fail2ban-ui.git
synced 2026-04-11 13:47:05 +02:00
@@ -12,36 +12,43 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
// Get application settings from the config package.
|
||||
settings := config.GetSettings()
|
||||
|
||||
// Set Gin mode based on settings
|
||||
// Set Gin mode based on the debug flag in settings.
|
||||
if settings.Debug {
|
||||
gin.SetMode(gin.DebugMode)
|
||||
} else {
|
||||
gin.SetMode(gin.ReleaseMode)
|
||||
}
|
||||
|
||||
// Create a new Gin router.
|
||||
router := gin.Default()
|
||||
|
||||
// To detect if running inside a container or not
|
||||
// Load HTML templates depending on whether the application is running inside a container.
|
||||
_, container := os.LookupEnv("CONTAINER")
|
||||
if container {
|
||||
router.LoadHTMLGlob("/app/templates/*") // Load HTML templates
|
||||
// In container, templates are assumed to be in /app/templates
|
||||
router.LoadHTMLGlob("/app/templates/*")
|
||||
} else {
|
||||
router.LoadHTMLGlob("pkg/web/templates/*") // Load HTML templates
|
||||
// When running locally, load templates from pkg/web/templates
|
||||
router.LoadHTMLGlob("pkg/web/templates/*")
|
||||
}
|
||||
|
||||
// Register all application routes, including the static file serving route for locales.
|
||||
web.RegisterRoutes(router)
|
||||
|
||||
printWelcomeBanner()
|
||||
log.Println("--- Fail2Ban-UI started in", gin.Mode(), "mode ---")
|
||||
log.Println("Server listening on port :8080.")
|
||||
|
||||
// Start the server on port 8080.
|
||||
if err := router.Run(":8080"); err != nil {
|
||||
log.Fatalf("Server crashed: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// printWelcomeBanner prints a cool Tux banner with startup info
|
||||
// printWelcomeBanner prints a cool Tux banner with startup info.
|
||||
func printWelcomeBanner() {
|
||||
greeting := getGreeting()
|
||||
const tuxBanner = `
|
||||
@@ -64,7 +71,7 @@ Listening on: http://0.0.0.0:8080
|
||||
fmt.Printf(tuxBanner, greeting, gin.Mode())
|
||||
}
|
||||
|
||||
// getGreeting returns a friendly greeting based on the time of day
|
||||
// getGreeting returns a friendly greeting based on the time of day.
|
||||
func getGreeting() string {
|
||||
hour := time.Now().Hour()
|
||||
switch {
|
||||
|
||||
69
internal/locales/de.json
Normal file
69
internal/locales/de.json
Normal file
@@ -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..."
|
||||
}
|
||||
|
||||
69
internal/locales/de_ch.json
Normal file
69
internal/locales/de_ch.json
Normal file
@@ -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..."
|
||||
}
|
||||
|
||||
69
internal/locales/en.json
Normal file
69
internal/locales/en.json
Normal file
@@ -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..."
|
||||
}
|
||||
|
||||
68
internal/locales/es.json
Normal file
68
internal/locales/es.json
Normal file
@@ -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..."
|
||||
}
|
||||
68
internal/locales/fr.json
Normal file
68
internal/locales/fr.json
Normal file
@@ -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..."
|
||||
}
|
||||
68
internal/locales/it.json
Normal file
68
internal/locales/it.json
Normal file
@@ -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..."
|
||||
}
|
||||
@@ -22,6 +22,10 @@ import (
|
||||
|
||||
// RegisterRoutes sets up the routes for the Fail2ban UI.
|
||||
func RegisterRoutes(r *gin.Engine) {
|
||||
// Serve static files for locales from the "internal/locales" directory.
|
||||
// (This makes the translation files available under the /locales/ URL.)
|
||||
r.Static("/locales", "./internal/locales")
|
||||
|
||||
// Render the dashboard
|
||||
r.GET("/", IndexHandler)
|
||||
|
||||
@@ -30,19 +34,19 @@ func RegisterRoutes(r *gin.Engine) {
|
||||
api.GET("/summary", SummaryHandler)
|
||||
api.POST("/jails/:jail/unban/:ip", UnbanIPHandler)
|
||||
|
||||
// config endpoints
|
||||
// Config endpoints
|
||||
api.GET("/jails/:jail/config", GetJailFilterConfigHandler)
|
||||
api.POST("/jails/:jail/config", SetJailFilterConfigHandler)
|
||||
|
||||
// settings
|
||||
// Settings endpoints
|
||||
api.GET("/settings", GetSettingsHandler)
|
||||
api.POST("/settings", UpdateSettingsHandler)
|
||||
api.POST("/settings/test-email", TestEmailHandler)
|
||||
|
||||
// filter debugger
|
||||
// Filter debugger endpoints
|
||||
api.GET("/filters", ListFiltersHandler)
|
||||
api.POST("/filters/test", TestFilterHandler)
|
||||
// TODO create or generate new filters
|
||||
// TODO: create or generate new filters
|
||||
// api.POST("/filters/generate", GenerateFilterHandler)
|
||||
|
||||
// Reload endpoint
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user