diff --git a/internal/locales/ca.json b/internal/locales/ca.json new file mode 100644 index 0000000..539bc98 --- /dev/null +++ b/internal/locales/ca.json @@ -0,0 +1,563 @@ +{ + "page.title": "Tauler de Fail2ban UI", + "nav.dashboard": "Tauler", + "nav.filter_debug": "Depuració de Filtres", + "nav.settings": "Configuració", + "restart_banner.message": "La configuració de Fail2ban ha canviat. Per aplicar els canvis, si us plau ", + "restart_banner.button": "Reinicieu el Servei", + "restart_banner.restart_success": "El servei de Fail2ban s'ha reiniciat i ha passat la comprovació d'estat", + "restart_banner.reload_success": "La configuració de Fail2ban s'ha recarregat correctament (sense reinici del servei systemd)", + "dashboard.title": "Tauler", + "dashboard.overview": "Visió general de Jails i Bloquejos actius", + "dashboard.overview_hint": "Utilitzeu la cerca per filtrar les IP bloquejades i feu clic a un jail per editar-ne la configuració.", + "dashboard.search_label": "Cerca IP bloquejades", + "dashboard.search_placeholder": "Introduïu l'adreça IP a cercar", + "dashboard.external_ip": "La vostra IP ext.:", + "dashboard.manage_servers": "Gestiona els Servidors", + "dashboard.no_servers_title": "No hi ha servidors Fail2ban configurats", + "dashboard.no_servers_body": "Afegiu un servidor per començar a supervisar i controlar les instàncies de Fail2ban.", + "dashboard.loading_summary": "Carregant les dades de resum...", + "dashboard.errors.summary_failed": "No s'ha pogut carregar el resum del servidor.", + "dashboard.no_enabled_servers_title": "No hi ha connectors actius", + "dashboard.no_enabled_servers_body": "Habiliteu el connector local o registreu un servidor Fail2ban remot per veure dades en directe.", + "dashboard.jail_local_warning_title": "El fitxer jail.local d'aquest servidor no està gestionat per Fail2ban-UI", + "dashboard.jail_local_warning_body": "El fitxer /etc/fail2ban/jail.local al servidor seleccionat existeix però no està gestionat per Fail2ban-UI. L'acció de devolució de trucada (ui-custom-action) falta, el que significa que no es registraran esdeveniments de bloqueig/desbloqueig i no s'enviaran alertes de correu electrònic. Per solucionar-ho, moveu cada secció de jail del vostre jail.local al seu propi fitxer sota /etc/fail2ban/jail.d/ (useu jailname.conf per mantenir un valor per defecte o jailname.local per anul·lar un .conf existent). Després elimineu jail.local perquè Fail2ban-UI pugui crear la seva pròpia versió gestionada (premeu una vegada a desar a la pàgina de configuració per escriure el fitxer). Assegureu-vos també que Fail2ban-UI tingui permisos d'escriptura a /etc/fail2ban/ -> vegeu la documentació per a més detalls.", + "dashboard.cards.active_jails": "Jails Actius", + "dashboard.cards.total_banned": "Total d'IP Bloquejades", + "dashboard.cards.new_last_hour": "Noves en l'Última Hora", + "dashboard.cards.total_logged": "Esdeveniments de Bloqueig Emmagatzemats", + "dashboard.cards.recurring_week": "IP Recurrents (7 dies)", + "dashboard.cards.recurring_hint": "Mireu els infractors reincidents detectats en els darrers set dies.", + "dashboard.table.jail_name": "Nom del Jail", + "dashboard.table.total_banned": "Total Bloquejades", + "dashboard.table.new_last_hour": "Noves a l'Última Hora", + "dashboard.table.banned_ips": "IP Bloquejades (Desbloqueja)", + "dashboard.no_jails": "No s'han trobat jails.", + "dashboard.overview_detail": "Les llistes no s'han d'expandir per cercar una IP.", + "dashboard.table.time": "Data/Hora", + "dashboard.table.jail": "Jail", + "dashboard.table.ip": "IP", + "dashboard.table.log_line": "Línia de Registre", + "dashboard.no_banned_ips": "Cap IP bloquejada", + "dashboard.unban": "Desbloqueja", + "dashboard.manual_block.title": "Bloqueig Manual d'IP", + "dashboard.manual_block.subtitle": "Bloqueja manualment una adreça IP en un jail específic.", + "dashboard.manual_block.expand_hint": "Feu clic per expandir i bloquejar una adreça IP", + "dashboard.manual_block.jail_label": "Seleccioneu el Jail", + "dashboard.manual_block.jail_placeholder": "Trieu un jail...", + "dashboard.manual_block.ip_label": "Adreça IP", + "dashboard.manual_block.ip_placeholder": "p. ex., 88.76.21.123", + "dashboard.manual_block.button": "Bloqueja la IP", + "dashboard.manual_block.confirm": "Voleu bloquejar la IP {ip} al jail {jail}?", + "dashboard.manual_block.success": "IP bloquejada correctament", + "dashboard.manual_block.error": "Error en bloquejar la IP", + "dashboard.manual_block.jail_required": "Si us plau, seleccioneu un jail", + "dashboard.manual_block.ip_required": "Si us plau, introduïu una adreça IP", + "dashboard.manual_block.invalid_ip": "Si us plau, introduïu una adreça IP vàlida", + "dashboard.banned.show_more": "Mostra'n més", + "dashboard.banned.show_less": "Amaga l'addicional", + "logs.overview.title": "Visió General dels Registres Interns", + "logs.overview.subtitle": "Esdeveniments emmagatzemats per Fail2ban-UI a través de tots els connectors.", + "logs.overview.refresh": "Actualitza les dades", + "logs.overview.total_events": "Total d'esdeveniments emmagatzemats", + "logs.overview.per_server": "Esdeveniments per servidor", + "logs.overview.recent_events_title": "Esdeveniments recents emmagatzemats", + "logs.overview.clear_events": "Neteja", + "logs.overview.clear_events_confirm": "Això eliminarà permanentment tots els esdeveniments de bloqueig emmagatzemats. Les estadístiques, dades i l'historial d'esdeveniments es restabliran a zero.\n\nAquesta acció no es pot desfer. Voleu continuar?", + "logs.overview.clear_events_success": "S'han esborrat tots els esdeveniments de bloqueig emmagatzemats.", + "logs.overview.recent_empty": "No s'han trobat esdeveniments emmagatzemats.", + "logs.overview.empty": "Encara no s'han registrat esdeveniments de bloqueig.", + "logs.overview.open_insights": "Obre les estadístiques", + "logs.overview.total_today": "Avui", + "logs.overview.total_week": "Últims 7 dies", + "logs.overview.per_server_empty": "Encara no hi ha dades per servidor disponibles.", + "logs.overview.recent_filtered_empty": "Cap esdeveniment emmagatzemat coincideix amb els filtres actuals.", + "logs.overview.recent_count_label": "Esdeveniments mostrats", + "logs.overview.load_more": "Carrega'n més", + "logs.overview.country_unknown": "Desconegut", + "logs.overview.last_seen": "Vist per última vegada", + "logs.table.server": "Servidor", + "logs.table.count": "Recompte", + "logs.table.jail": "Jail", + "logs.table.ip": "IP", + "logs.table.time": "Data/Hora", + "logs.table.country": "País", + "logs.table.actions": "Accions", + "logs.actions.whois": "Whois", + "logs.actions.logs": "Registres", + "logs.search.label": "Cerca esdeveniments", + "logs.search.placeholder": "Cerca per IP, jail o servidor", + "logs.search.country_label": "País", + "logs.search.country_all": "Tots els països", + "logs.search.country_unknown": "Desconegut", + "logs.badge.recurring": "Recurrent", + "logs.modal.whois_title": "Informació Whois", + "logs.modal.logs_title": "Registres", + "logs.modal.jail": "Jail", + "logs.modal.insights_title": "Estadístiques de Bloquejos", + "logs.modal.insights_description": "Distribució per país i infractors reincidents.", + "logs.modal.insights_countries": "Bloquejos per país", + "logs.modal.insights_countries_empty": "No s'han registrat bloquejos en aquest període.", + "logs.modal.insights_countries_hint": "Principals orígens per a l'interval de temps seleccionat.", + "logs.modal.insights_recurring_hint": "Adreces IP que activen repetidament Fail2ban.", + "logs.modal.total_overall_note": "Bloquejos totals registrats històricament", + "logs.modal.total_today_note": "Últimes 24 hores", + "logs.modal.total_week_note": "Activitat setmanal", + "logs.modal.insights_recurring": "IP Recurrents", + "logs.modal.insights_recurring_empty": "No s'han detectat IP recurrents.", + "logs.modal.threat_map_title": "Mapa d'Amenaces Globals", + "logs.modal.threat_map_hint": "Arrossegueu per girar, feu scroll per fer zoom.", + "logs.modal.threat_map_empty": "No hi ha dades d'ubicació disponibles.", + "threat.modal.title": "Intel·ligència d'amenaces", + "threat.modal.subtitle": "Dades d'intel·ligència d'amenaces per a aquesta IP.", + "threat.modal.loading": "Carregant les dades d'intel·ligència d'amenaces...", + "threat.modal.invalid_ip": "Adreça IP invàlida", + "threat.modal.error_generic": "No s'han pogut carregar les dades d'intel·ligència d'amenaces.", + "threat.modal.error_http": "La sol·licitud d'intel·ligència d'amenaces ha fallat", + "threat.metric.reputation": "Reputació", + "threat.metric.confidence": "Confiança", + "threat.metric.background_noise": "Soroll de fons", + "threat.metric.overall_score": "Puntuació global", + "threat.metric.provider": "Proveïdor", + "threat.metric.risk": "Risc", + "threat.metric.pulses": "Pulsacions (Pulses)", + "threat.metric.country": "País", + "threat.metric.asn": "ASN", + "threat.metric.abuse_confidence": "Confiança d'abús", + "threat.metric.total_reports": "Total d'informes", + "threat.metric.distinct_users": "Usuaris únics", + "threat.provider.alienvault": "AlienVault OTX", + "threat.provider.abuseipdb": "AbuseIPDB", + "threat.modal.provider_unknown": "Proveïdor desconegut", + "threat.section.overview": "Visió general", + "threat.section.network_location": "Xarxa i ubicació", + "threat.section.history_activity": "Historial i activitat", + "threat.section.activity_level": "Nivell d'activitat", + "threat.section.pulses": "Pulsacions (Pulses)", + "threat.section.reports": "Informes", + "threat.section.scores": "Puntuacions", + "threat.section.behaviors": "Comportaments", + "threat.section.attack_details": "Detalls de l'atac", + "threat.section.classifications": "Classificacions", + "threat.section.mitre": "Tècniques MITRE", + "threat.section.references": "Referències", + "threat.section.cves": "CVEs", + "threat.section.target_countries": "Països objectiu", + "threat.field.ip": "IP", + "threat.field.type": "Tipus", + "threat.field.asn": "ASN", + "threat.field.as_name": "Nom AS", + "threat.field.proxy_vpn": "Proxy/VPN", + "threat.field.reverse_dns": "DNS Invers", + "threat.field.ip_range": "Rang d'IP", + "threat.field.ip_range_24": "Rang /24", + "threat.field.country": "País", + "threat.field.city": "Ciutat", + "threat.field.isp": "ISP", + "threat.field.domain": "Domini", + "threat.field.usage_type": "Tipus d'ús", + "threat.field.whitelisted": "Llista blanca", + "threat.field.latitude": "Latitud", + "threat.field.longitude": "Longitud", + "threat.field.first_seen": "Vist per primera vegada", + "threat.field.last_seen": "Vist per última vegada", + "threat.field.full_age": "Edat completa", + "threat.field.days_age": "Dies d'antiguitat", + "threat.field.continent": "Continent", + "threat.field.accuracy_radius": "Radi de precisió", + "threat.field.subdivision": "Subdivisió", + "threat.field.validation_source": "Origen", + "threat.field.validation_name": "Regla", + "threat.field.industries": "Indústries", + "threat.field.adversary": "Adversari", + "threat.field.malware_families": "Famílies de codi maliciós", + "threat.field.ip_version": "Versió d'IP", + "threat.field.public_ip": "IP pública", + "threat.field.tor": "Node de sortida de Tor", + "threat.field.hostnames": "Noms d'amfitrió", + "threat.field.reporter": "Informador", + "threat.field.reporter_id": "ID de l'informador", + "threat.field.categories": "Categories", + "threat.field.tlp": "TLP", + "threat.field.author": "Autor", + "threat.field.subscribers": "Subscriptors", + "threat.field.indicators": "Indicadors", + "threat.field.tags": "Etiquetes", + "threat.section.validation": "Validació", + "threat.section.related_context": "Context relacionat", + "threat.score.overall": "Global", + "threat.score.last_day": "Últim dia", + "threat.score.last_week": "Última setmana", + "threat.score.last_month": "Últim mes", + "threat.empty.list": "No hi ha dades disponibles.", + "threat.empty.target_countries": "No hi ha dades de països objectiu disponibles.", + "threat.boolean.yes": "Sí", + "threat.boolean.no": "No", + "filter_debug.title": "Depuració de Filtres", + "filter_debug.select_filter": "Seleccioneu un Filtre", + "filter_debug.filter_content": "Contingut del Filtre", + "filter_debug.filter_content_hint": "Editeu la regex del filtre a continuació per fer proves. Els canvis són temporals i no es desen.", + "filter_debug.filter_content_hint_readonly": "El contingut del filtre es mostra només de lectura. Feu clic a 'Edita' per modificar-lo i provar-lo. Els canvis són temporals i no es desen.", + "filter_debug.edit_filter": "Edita", + "filter_debug.cancel_edit": "Cancel·la", + "filter_debug.log_lines": "Línies de Registre", + "filter_debug.log_lines_placeholder": "Introduïu aquí les línies de registre...", + "filter_debug.test_filter": "Prova el Filtre", + "filter_debug.test_results_title": "Resultats de la Prova", + "filter_debug.no_matches": "No s'han trobat coincidències.", + "settings.title": "Configuració", + "settings.general": "Configuració General", + "settings.language": "Idioma", + "settings.server_port": "Port del Servidor", + "settings.server_port_placeholder": "p. ex., 8080", + "settings.port_env_set": "El port està configurat mitjançant la variable d'entorn PORT:", + "settings.port_env_hint": "Per canviar el port mitjançant la interfície d'usuari web, elimineu la variable d'entorn PORT i reinicieu el contenidor.", + "settings.port_restart_hint": "⚠️ Els canvis de port requereixen reiniciar el contenidor perquè tinguin efecte.", + "settings.enable_debug": "Activa el Registre de Depuració", + "settings.enable_console": "Activa la Sortida de la Consola", + "settings.console.title": "Sortida de la Consola", + "settings.console.clear": "Neteja", + "settings.console.save_hint": "Si us plau, deseu la vostra configuració primer abans que es mostrin aquí els registres.", + "settings.alert": "Configuració d'Alertes", + "settings.callback_url": "URL de Devolució de Trucada (Callback) de Fail2ban", + "settings.callback_url_placeholder": "http://127.0.0.1:8080", + "settings.callback_url_hint": "Totes les instàncies de Fail2Ban utilitzen aquesta URL per enviar alertes de bloqueig a la UI de Fail2Ban. Per a desplegaments locals, utilitzeu el mateix port que la UI de Fail2Ban (p. ex., http://127.0.0.1:8080). Per a configuracions de proxy invers, utilitzeu el vostre punt final xifrat amb TLS (p. ex., https://fail2ban.example.com).", + "settings.callback_url_env_set": "La URL de Callback està configurada a través de la variable d'entorn CALLBACK_URL:", + "settings.callback_url_env_hint": "Per canviar la URL de Callback a través de la UI web, traieu la variable d'entorn CALLBACK_URL i reinicieu el contenidor.", + "settings.callback_secret": "Secret de la URL de Callback de Fail2ban", + "settings.callback_secret_placeholder": "Secret autogenerat de 42 caràcters", + "settings.callback_secret.description": "Aquest secret s'utilitza per autenticar les peticions API de bloquejos. S'inclou automàticament a la configuració de l'acció de fail2ban.", + "settings.destination_email": "Correu de Destinació (Receptor d'Alertes)", + "settings.destination_email_placeholder": "alertes@exemple.cat", + "settings.alert_countries": "Països d'Alerta", + "settings.alert_countries_description": "Trieu els països per als quals voleu rebre alertes per correu electrònic quan s'activa un bloqueig.", + "settings.alerts": "Preferències d'Alerta", + "settings.alerts_for_bans": "Activa les alertes per als bloquejos", + "settings.alerts_for_unbans": "Activa les alertes per als desbloquejos", + "settings.alert_provider": "Proveïdor d'Alertes", + "settings.alert_provider_email": "Correu electrònic (SMTP)", + "settings.alert_provider_webhook": "Webhook", + "settings.alert_provider_elasticsearch": "Elasticsearch", + "settings.threat_intel.title": "Intel·ligència d'amenaces", + "settings.threat_intel.provider": "Proveïdor d'Intel·ligència d'amenaces", + "settings.threat_intel.provider_none": "Cap (desactivat)", + "settings.threat_intel.provider_alienvault": "AlienVault OTX", + "settings.threat_intel.provider_abuseipdb": "AbuseIPDB", + "settings.threat_intel.provider_hint": "El proveïdor seleccionat s'utilitzarà per al modal d'Intel·ligència d'Amenaces.", + "settings.threat_intel.alienvault_api_key": "Clau API d'AlienVault", + "settings.threat_intel.alienvault_api_key_hint": "Creeu la vostra clau OTX al perfil del vostre compte d'AlienVault.", + "settings.threat_intel.abuseipdb_api_key": "Clau API d'AbuseIPDB", + "settings.threat_intel.abuseipdb_api_key_hint": "Genereu la vostra clau API a la configuració del compte d'AbuseIPDB.", + "settings.webhook.title": "Configuració del Webhook", + "settings.webhook.url": "URL del Webhook", + "settings.webhook.url_placeholder": "https://el-meu-servidor-ntfy/fail2ban-topic", + "settings.webhook.method": "Mètode HTTP", + "settings.webhook.headers": "Capçaleres Personalitzades", + "settings.webhook.headers_placeholder": "Authorization: Bearer el-vostre-token", + "settings.webhook.headers_hint": "Una capçalera per línia en format Clau: Valor.", + "settings.webhook.skip_tls": "Omet la Verificació del Certificat TLS", + "settings.webhook.test": "Envia Webhook de Prova", + "settings.webhook.test_hint": "Si us plau, deseu la vostra configuració del webhook primer abans de provar-la.", + "settings.elasticsearch.title": "Configuració d'Elasticsearch", + "settings.elasticsearch.url": "URL d'Elasticsearch", + "settings.elasticsearch.url_placeholder": "https://elasticsearch.exemple.cat:9200", + "settings.elasticsearch.index": "Nom de l'Índex", + "settings.elasticsearch.index_placeholder": "fail2ban-events", + "settings.elasticsearch.index_hint": "S'afegeix automàticament un sufix de data diari (-AAAA.MM.DD) per a la gestió del cicle de vida de l'índex.", + "settings.elasticsearch.api_key": "Clau API", + "settings.elasticsearch.api_key_placeholder": "Clau API codificada en Base64", + "settings.elasticsearch.api_key_hint": "Mètode d'autenticació preferit. Deixeu-ho en blanc per utilitzar un nom d'usuari i una contrasenya en el seu lloc.", + "settings.elasticsearch.username": "Nom d'usuari", + "settings.elasticsearch.username_placeholder": "elastic", + "settings.elasticsearch.password": "Contrasenya", + "settings.elasticsearch.skip_tls": "Omet la Verificació del Certificat TLS", + "settings.elasticsearch.test": "Prova de Connexió", + "settings.elasticsearch.test_hint": "Deseu la configuració d'Elasticsearch abans de fer-ne proves.", + "settings.elasticsearch.help_title": "Guia de Configuració d'Elasticsearch", + "settings.elasticsearch.help_template_title": "1. Creeu una Plantilla d'Índex", + "settings.elasticsearch.help_template_desc": "Creeu una plantilla d'índex a les eines de desenvolupament de Kibana o mitjançant l'API perquè Elasticsearch assigni tots els camps correctament. La plantilla inclou els camps bàsics d'esdeveniments, camps de registre enriquits (HTTP, SSH, etc.) i camps WHOIS analitzats:", + "settings.elasticsearch.help_doc_title": "2. Estructura del Document", + "settings.elasticsearch.help_doc_desc": "Fail2ban-UI envia documents compatibles amb ECS amb enriquiment automàtic de registres i WHOIS. Les línies de registre s'analitzen mitjançant patrons grok (Apache, Nginx, sshd, Postfix, etc.) i el text de WHOIS s'extreu en camps estructurats. Cada esdeveniment s'indexa a fail2ban-events-AAAA.MM.DD:", + "settings.elasticsearch.help_auth_title": "3. Autenticació", + "settings.elasticsearch.help_auth_desc": "Utilitzeu una clau API (preferit) o l'autenticació bàsica amb un usuari que tingui accés d'escriptura als índexs fail2ban-events-*. Creeu una clau API al Kibana a Gestió de la Pila (Stack Management) → Claus API.", + "settings.elasticsearch.help_savetest_title": "4. Desa i Prova", + "settings.elasticsearch.help_savetest_desc": "Deseu la configuració de Fail2ban-UI i proveu la connexió amb Elasticsearch fent clic al botó Prova. (Això crearà l'índex fail2ban-events-* i introduirà també el primer esdeveniment).", + "settings.elasticsearch.help_dataview_title": "5. Vista de Dades de Kibana", + "settings.elasticsearch.help_dataview_desc": "Al Kibana, aneu a Gestió de la Pila → Vistes de Dades → Crea una vista de dades. Utilitzeu el patró fail2ban-events-* com a nom i com a patró d'índex i seleccioneu @timestamp com a camp de temps.", + "settings.elasticsearch.help_review_title": "6. Reviseu les Dades", + "settings.elasticsearch.help_review_desc": "Al Kibana, aneu a Discover → Seleccioneu l'índex fail2ban-events-* i hauríeu de veure el primer esdeveniment ingerit.", + "settings.smtp": "Configuració SMTP", + "settings.smtp_host": "Servidor SMTP", + "settings.smtp_host_placeholder": "p. ex., smtp.gmail.com", + "settings.smtp_port": "Port SMTP", + "settings.smtp_port_placeholder": "587", + "settings.smtp_port_hint": "Ports habituals: 25 (pla), 587 (STARTTLS), 465 (SMTPS), 2525 (STARTTLS alternatiu)", + "settings.smtp_auth_method": "Mètode d'Autenticació", + "settings.smtp_auth_method_auto": "Automàtic (preferit LOGIN)", + "settings.smtp_auth_method_login": "LOGIN", + "settings.smtp_auth_method_plain": "PLAIN", + "settings.smtp_auth_method_cram_md5": "CRAM-MD5", + "settings.smtp_auth_method_hint": "LOGIN és recomanat per a Office365/Gmail. PLAIN és l'autenticació SMTP estàndard. CRAM-MD5 està basat en repte-resposta.", + "settings.smtp_insecure_skip_verify": "Omet la Verificació del Certificat TLS", + "settings.smtp_insecure_skip_verify_warning": "No recomanat en producció", + "settings.smtp_username": "Nom d'usuari SMTP", + "settings.smtp_username_placeholder": "p. ex., usuari@exemple.cat", + "settings.smtp_password": "Contrasenya SMTP", + "settings.smtp_password_placeholder": "Introduïu la Contrasenya SMTP", + "settings.smtp_sender": "Correu del Remitent", + "settings.smtp_sender_placeholder": "noreply@exemple.cat", + "settings.smtp_tls": "Utilitza TLS (Recomanat)", + "settings.send_test_email": "Envia un Correu de Prova", + "settings.send_test_email_hint": "Si us plau, deseu la vostra configuració SMTP primer abans d'enviar un correu de prova.", + "settings.fail2ban": "Configuracions Globals per Defecte de Fail2Ban", + "settings.fail2ban.description": "Aquesta configuració s'aplicarà a tots els servidors Fail2Ban habilitats i es desarà a la seva secció jail.local [DEFAULT].", + "settings.enable_bantime_increment": "Activa l'Increment del Temps de Bloqueig (Bantime)", + "settings.enable_bantime_increment.description": "Si es defineix a vertader, el temps de bloqueig es calcularà utilitzant la fórmula: bantime = findtime * (nombre de fallades / maxretry) * (1 + bantime.rndtime).", + "settings.default_jail_enable": "Habilita Jails per Defecte", + "settings.default_jail_enable.description": "Si s'habilita, tots els jails estaran habilitats per defecte. Quan està desactivat, els jails s'han d'habilitar explícitament.", + "settings.default_bantime": "Temps de Bloqueig per Defecte (Bantime)", + "settings.default_bantime.description": "El nombre de segons que un amfitrió està bloquejat. Format de temps: 1m = 1 minut, 1h = 1 hora, 1d = 1 dia, 1w = 1 setmana, 1mo = 1 mes, 1y = 1 any.", + "settings.default_bantime_placeholder": "p. ex., 48h", + "settings.bantime_rndtime": "Temps Aleatori (Bantime Rndtime)", + "settings.bantime_rndtime.description": "Opcional. Segons aleatoris màxims afegits a la fórmula d'increment del temps de bloqueig (p. ex. 2048). Deixeu-ho en blanc per utilitzar el valor predeterminat de Fail2ban.", + "settings.bantime_rndtime_placeholder": "p. ex., 2048", + "settings.default_chain": "Cadena per Defecte (Chain)", + "settings.default_chain.description": "Cadena iptables/nftables utilitzada per al bloqueig (p. ex. INPUT per a l'amfitrió, DOCKER-USER per als contenidors Docker).", + "settings.chain_help_title": "Cadena per defecte", + "settings.chain_docker_user": "DOCKER-USER", + "settings.chain_help_docker_user": "S'utilitza per a aplicacions que s'executen a Docker. Els bloquejos s'apliquen a tots els contenidors de l'amfitrió.", + "settings.chain_input": "INPUT", + "settings.chain_help_input": "S'utilitza per a aplicacions de l'amfitrió. Els bloquejos només s'apliquen a la xarxa de l'amfitrió, no a les xarxes de Docker.", + "settings.chain_forward": "FORWARD", + "settings.chain_help_forward": "Només per a configuracions de Docker més antigues on DOCKER-USER no està disponible.", + "settings.banaction": "Acció de Bloqueig (Banaction)", + "settings.banaction.description": "Acció de bloqueig per defecte (p. ex., nftables-multiport, nftables-allports, firewallcmd-rich-rules, etc.). S'utilitza per definir les variables action_*.", + "settings.banaction_allports": "Acció de Bloqueig a Tots els Ports (Banaction Allports)", + "settings.banaction_allports.description": "Acció de bloqueig per a tots els ports (p. ex., nftables-allports, firewallcmd-allports, etc.). S'utilitza quan un jail necessita bloquejar tots els ports en comptes d'específics.", + "settings.default_findtime": "Temps de Cerca per Defecte (Findtime)", + "settings.default_findtime.description": "Es bloqueja un amfitrió si ha generat un nombre 'maxretry' de fallades en els darrers 'findtime' segons. Format de temps: 1m = 1 minut, 1h = 1 hora, 1d = 1 dia, 1w = 1 setmana, 1mo = 1 mes, 1y = 1 any.", + "settings.default_findtime_placeholder": "p. ex., 30m", + "settings.default_max_retry": "Reintents Màxims per Defecte (Max Retry)", + "settings.default_max_retry.description": "Nombre de fallades abans que un amfitrió sigui bloquejat.", + "settings.default_max_retry_placeholder": "Introduïu el màxim de reintents", + "settings.geoip_provider": "Proveïdor GeoIP", + "settings.geoip_provider.description": "Trieu el proveïdor de cerca GeoIP. MaxMind requereix un fitxer de base de dades local, mentre que l'integrat utilitza una API gratuïta en línia.", + "settings.geoip_provider.maxmind": "MaxMind (Base de dades local)", + "settings.geoip_provider.builtin": "Integrat (ip-api.com)", + "settings.geoip_database_path": "Ruta a la Base de Dades GeoIP", + "settings.geoip_database_path.description": "Ruta al fitxer de la base de dades MaxMind GeoLite2-Country.", + "settings.max_log_lines": "Màxim de Línies de Registre", + "settings.max_log_lines.description": "Nombre màxim de línies de registre per incloure en les notificacions de bloqueig. Les línies més rellevants se seleccionen automàticament.", + "settings.ignore_ips": "IP a Ignorar", + "settings.ignore_ips.description": "Llista d'adreces IP, màscares CIDR o amfitrions DNS separats per espais. Fail2ban no bloquejarà un amfitrió que coincideixi amb una adreça d'aquesta llista.", + "settings.ignore_ips_placeholder": "IPs a ignorar, separades per espais", + "settings.advanced.title": "Accions Avançades per a Infractors Reincidents", + "settings.advanced.description": "Sincronitza automàticament els infractors reincidents a un tallafoc o llista de bloqueig externa.", + "settings.advanced.refresh_log": "Actualitza el Registre", + "settings.advanced.test_button": "Bloqueig Manual / Prova", + "settings.advanced.enable": "Habilita el bloqueig permanent automàtic", + "settings.advanced.threshold": "Llindar abans d'un bloqueig permanent", + "settings.advanced.threshold_hint": "Un cop una IP assoleixi aquest nombre de bloquejos s'enviarà a la integració.", + "settings.advanced.integration": "Integració", + "settings.advanced.integration_none": "Selecciona la integració", + "settings.advanced.integration_hint": "Trieu el tallafoc o aparell on s'haurien de crear els bloquejos permanents.", + "settings.advanced.mikrotik.note": "Proporcioneu accés SSH al vostre router Mikrotik i la llista d'adreces que hauria de contenir les IP bloquejades.", + "settings.advanced.mikrotik.host": "Amfitrió", + "settings.advanced.mikrotik.port": "Port", + "settings.advanced.mikrotik.username": "Usuari SSH", + "settings.advanced.mikrotik.password": "Contrasenya SSH", + "settings.advanced.mikrotik.key": "Ruta de la Clau SSH (opcional)", + "settings.advanced.mikrotik.list": "Nom de la Llista d'Adreces", + "settings.advanced.pfsense.note": "Requereix el paquet pfSense REST API. Introduïu la clau API i l'àlies per gestionar-ho.", + "settings.advanced.pfsense.install_link": "Instal·la el Paquet REST API", + "settings.advanced.pfsense.api_key_setup": "Configura la Clau API", + "settings.advanced.pfsense.base_url": "URL Base", + "settings.advanced.pfsense.token": "Clau API", + "settings.advanced.pfsense.token_hint": "Genereu-ho a Sistema > REST API > Claus al webConfigurator de pfSense", + "settings.advanced.pfsense.alias": "Nom de l'Àlies", + "settings.advanced.pfsense.skip_tls": "Omet la verificació TLS (autosignat)", + "settings.advanced.opnsense.note": "Introduïu les credencials de l'API OPNsense i l'àlies per gestionar.", + "settings.advanced.opnsense.api_docs": "Documentació de l'API", + "settings.advanced.opnsense.api_key_setup": "Configura la Clau API", + "settings.advanced.opnsense.base_url": "URL Base", + "settings.advanced.opnsense.key": "Clau API", + "settings.advanced.opnsense.key_hint": "Genereu-ho a Sistema > Accés > Usuaris > Claus API", + "settings.advanced.opnsense.secret": "Secret de l'API", + "settings.advanced.opnsense.secret_hint": "Genereu-ho juntament amb la clau API", + "settings.advanced.opnsense.alias": "Nom de l'Àlies", + "settings.advanced.opnsense.skip_tls": "Omet la verificació TLS (autosignat)", + "settings.advanced.log_title": "Registre de Bloquejos Permanents", + "settings.advanced.clear_log": "Neteja", + "settings.advanced.clear_log_confirm": "Això esborrarà permanentment tot el registre de bloquejos. Fail2ban UI assumirà que actualment no hi ha cap IP bloquejada al tallafoc extern.\n\nAquesta acció no es pot desfer. Voleu continuar?", + "settings.advanced.clear_log_success": "S'ha netejat el registre de bloquejos permanents.", + "settings.advanced.log_empty": "Encara no s'han registrat bloquejos permanents.", + "settings.advanced.log_ip": "IP", + "settings.advanced.log_integration": "Integració", + "settings.advanced.log_status": "Estat", + "settings.advanced.log_message": "Missatge", + "settings.advanced.log_server": "Servidor", + "settings.advanced.log_updated": "Actualitzat", + "settings.advanced.log_actions": "Accions", + "settings.advanced.unblock_btn": "Elimina", + "settings.advanced.test_title": "Bloqueig Manual / Prova", + "settings.advanced.test_ip": "Adreça IP", + "settings.advanced.test_server": "Servidor opcional", + "settings.advanced.test_server_none": "Utilitza la configuració global de la integració", + "settings.advanced.test_block": "Bloqueja la IP", + "settings.advanced.test_unblock": "Elimina la IP", + "settings.save": "Desa", + "modal.filter_config": "Configuració de Filtre / Jail:", + "modal.filter_config_edit": "Edita el Filtre / Jail", + "modal.filter_config_label": "Configuració del Filtre", + "modal.filter_config_hint": "Si es deixa en blanc, es crearà un fitxer de filtre buit.", + "modal.filter_name": "Nom del Filtre", + "modal.filter_name_hint": "Només es permeten caràcters alfanumèrics, guions i guions baixos.", + "modal.jail_config": "Configuració del Jail", + "modal.jail_config_hint": "La configuració del jail s'emplenarà automàticament quan seleccioneu un filtre.", + "modal.jail_config_label": "Configuració del Jail", + "modal.jail_filter": "Filtre (opcional)", + "modal.jail_filter_hint": "Seleccionar un filtre emplenarà automàticament la configuració del jail.", + "modal.jail_name": "Nom del Jail", + "modal.jail_name_hint": "Només es permeten caràcters alfanumèrics, guions i guions baixos.", + "modal.test_logpath": "Prova de la Ruta del Registre (Logpath)", + "modal.local_server_logpath_note": "⚠️ Nota:", + "modal.local_server_logpath_text_prefix": "Per a un servidor local de fail2ban (p. ex., instal·lat al sistema amfitrió del contenidor o en un contenidor al mateix amfitrió), els fitxers de registre també s'han de muntar al contenidor de fail2ban-ui (p. ex.,", + "modal.local_server_logpath_text_suffix": ") això és necessari perquè el fail2ban-ui pugui verificar les variables logpath o rutes en actualitzar els jails.", + "modal.create": "Crea", + "modal.create_filter": "Crea un Nou Filtre", + "modal.create_filter_title": "Crea un Nou Filtre", + "modal.create_jail": "Crea un Nou Jail", + "modal.create_jail_title": "Crea un Nou Jail", + "modal.cancel": "Cancel·la", + "modal.save": "Desa", + "modal.close": "Tanca", + "loading": "Carregant...", + "dashboard.manage_jails": "Gestiona els Jails", + "modal.manage_jails_title": "Gestiona els Jails", + "servers.selector.label": "Servidor Actiu", + "servers.selector.empty": "No hi ha servidors configurats", + "servers.selector.none": "No hi ha cap servidor configurat. Si us plau, afegiu un servidor Fail2ban.", + "servers.modal.title": "Gestiona els Servidors Fail2ban", + "servers.modal.description": "Registreu instàncies remotes de Fail2ban i trieu com s'hi connecta la interfície d'usuari.", + "servers.modal.list_title": "Servidors Registrats", + "servers.modal.list_empty": "Encara no hi ha servidors configurats. Afegiu el vostre primer servidor Fail2ban mitjançant el formulari de la dreta.", + "servers.modal.form_title": "Afegeix o Actualitza un Servidor", + "servers.form.name": "Nom a Mostrar", + "servers.form.name_placeholder": "El meu servidor Fail2ban", + "servers.form.type": "Tipus de Connexió", + "servers.type.local": "Local (mateix amfitrió)", + "servers.type.ssh": "SSH", + "servers.type.agent": "Agent API", + "servers.form.host": "Nom d'amfitrió / IP", + "servers.form.host_placeholder": "fail2ban.exemple.cat", + "servers.form.port": "Port", + "servers.form.port_placeholder": "22", + "servers.form.socket_path": "Ruta del Sòcol de Fail2ban", + "servers.form.socket_path_placeholder": "/var/run/fail2ban/fail2ban.sock", + "servers.form.log_path": "Ruta del Registre de Fail2ban", + "servers.form.hostname": "Nom d'amfitrió del Servidor", + "servers.form.hostname_placeholder": "opcional", + "servers.form.ssh_user": "Usuari SSH", + "servers.form.ssh_user_placeholder": "sa_fail2ban", + "servers.form.ssh_key": "Ruta de la Clau Privada SSH", + "servers.form.ssh_key_placeholder": "/config/.ssh/id_rsa", + "servers.form.ssh_key_help": "Col·loqueu la vostra clau privada SSH al directori /config/.ssh/ (volum de configuració muntat). El fitxer de la clau ha de tenir permisos 600 (chmod 600). Exemple: /config/.ssh/id_rsa", + "servers.form.agent_url": "URL de l'Agent", + "servers.form.agent_url_placeholder": "https://amfitrió:9443", + "servers.form.agent_secret": "Secret de l'Agent", + "servers.form.agent_secret_placeholder": "token secret compartit", + "servers.form.tags": "Etiquetes", + "servers.form.tags_placeholder": "etiquetes,separades,per,comes", + "servers.form.set_default": "Defineix com a servidor per defecte", + "servers.form.enabled": "Activa el connector", + "servers.form.submit": "Desa el Servidor", + "servers.form.reset": "Restableix", + "servers.form.new_server": "Nou Servidor", + "servers.form.success": "Servidor desat correctament.", + "servers.badge.default": "Per defecte", + "servers.badge.enabled": "Habilitat", + "servers.badge.disabled": "Deshabilitat", + "servers.badge.restart_needed": "Requereix reinici", + "servers.actions.edit": "Edita", + "servers.actions.set_default": "Defineix per defecte", + "servers.actions.enable": "Habilita", + "servers.actions.disable": "Deshabilita", + "servers.actions.test": "Prova la connexió", + "servers.actions.test_success": "Connexió correcta", + "servers.actions.test_failure": "La connexió ha fallat", + "servers.jail_local_warning": "Avís: jail.local no està gestionat per Fail2ban-UI. Moveu cada jail al seu propi fitxer a jail.d/ i suprimiu jail.local perquè Fail2ban-UI el pugui tornar a crear (premeu una vegada Desar a la pàgina de configuració per escriure el fitxer). Vegeu la documentació per a temes de permisos.", + "servers.actions.restart": "Reinicia Fail2ban", + "servers.actions.reload": "Recarrega Fail2ban", + "servers.actions.reload_tooltip": "Per a connectors locals, només és possible recarregar la configuració mitjançant la connexió del sòcol (socket). El contenidor no pot reiniciar el servei Fail2ban utilitzant systemctl. Per fer un reinici complet, executeu 'systemctl restart fail2ban' directament al sistema amfitrió.", + "servers.actions.delete": "Suprimeix", + "servers.actions.delete_confirm": "Voleu suprimir aquesta entrada del servidor?", + "servers.form.select_key": "Seleccioneu la Clau Privada", + "servers.form.select_key_placeholder": "Entrada manual", + "servers.form.no_keys": "No s'han trobat claus SSH; introduïu la ruta manualment", + "filter_debug.not_available": "La depuració de filtres només està disponible quan almenys un servidor Fail2ban registrat està habilitat.", + "filter_debug.local_missing": "No s'ha trobat el directori local de filtres de Fail2ban en aquest amfitrió.", + "filter_debug.save_success": "La configuració del filtre i el jail s'ha desat i recarregat", + "filter_debug.save_reload_warning": "La configuració s'ha desat, però la recàrrega de fail2ban ha fallat", + "filter_debug.jail_auto_disabled": "El jail '%s' s'ha desactivat automàticament.", + "email.ban.title": "Alerta de seguretat: Fail2Ban ha bloquejat una nova adreça IP", + "email.ban.intro": "Fail2Ban-UI ha detectat una petició dolenta o fallades d'autenticació repetides i ha bloquejat automàticament la IP d'origen. Reviseu les metadades i els fragments del registre a continuació.", + "email.ban.subject.banned": "Bloquejada", + "email.ban.subject.from": "de", + "email.ban.details.banned_ip": "IP Bloquejada", + "email.ban.details.jail": "Jail", + "email.ban.details.hostname": "Nom d'amfitrió", + "email.ban.details.failed_attempts": "Intents fallits", + "email.ban.details.country": "País", + "email.ban.details.timestamp": "Marca de temps", + "email.ban.whois_title": "Empremta WHOIS", + "email.ban.logs_title": "Fragments de registre rellevants", + "email.test.title": "Prova de lliurament de correu", + "email.test.intro": "Aquest missatge confirma que la vostra configuració SMTP funciona correctament i pot lliurar correus amb format HTML.", + "email.test.subject": "Correu de prova des de Fail2Ban UI", + "email.test.details.recipient": "Destinatari", + "email.test.details.smtp_host": "Servidor SMTP", + "email.test.details.triggered_at": "Activat el", + "email.test.whois_no_data": "No s'executa cap cerca WHOIS per als correus de prova.", + "email.test.sample_logs": "2025-01-01T12:00:00Z Entrada de registre de prova de Fail2ban-UI.", + "email.whois.no_data": "Les dades de WHOIS no s'han capturat per a aquest esdeveniment.", + "email.logs.no_data": "No s'han capturat entrades de registre per a aquest bloqueig.", + "email.footer.text": "Aquest missatge ha estat generat automàticament per Fail2Ban-UI", + "email.unban.title": "Adreça IP Desbloquejada", + "email.unban.intro": "S'ha desbloquejat una adreça IP d'un jail de Fail2Ban.", + "email.unban.subject.unbanned": "Desbloquejada", + "email.unban.subject.from": "de", + "email.unban.details.unbanned_ip": "IP Desbloquejada", + "email.unban.details.jail": "Jail", + "email.unban.details.hostname": "Nom d'amfitrió", + "email.unban.details.country": "País", + "email.unban.details.timestamp": "Marca de temps", + "lotr.email.title": "Un Servent Fosc ha estat Bandejat", + "lotr.email.intro": "Els guardians de la Terra Mitjana han detectat una amenaça i l'han bandejat del regne.", + "lotr.email.you_shall_not_pass": "NO PASSARÀS!", + "lotr.email.footer": "Que els servidors estiguin protegits. Un bloqueig per governar-los a tots.", + "lotr.email.details.dark_servant_location": "La Ubicació del Servent Fosc", + "lotr.email.details.realm_protection": "El Regne de Protecció", + "lotr.email.details.origins": "Orígens a la", + "lotr.email.details.banished_at": "Bandejat el", + "lotr.email.unban.title": "El presoner retingut ha estat alliberat", + "lotr.email.unban.intro": "Els guardians de la Terra Mitjana han restaurat l'accés al regne.", + "lotr.email.unban.details.restored_ip": "IP Restaurada", + "lotr.banished": "Bandejat del regne", + "lotr.realms_protected": "Regnes Protegits", + "lotr.threats_banished": "Amenaces Bandejades", + "toast.ban.title": "Nou bloqueig detectat", + "toast.ban.action": "bloquejada a", + "toast.unban.title": "IP desbloquejada", + "toast.unban.action": "desbloquejada de", + "auth.login_title": "Inicieu sessió a Fail2ban UI", + "auth.login_description": "Si us plau, autentiqueu-vos per accedir a la interfície de gestió", + "auth.login_button": "Inicia sessió amb OIDC", + "auth.logging_in": "Redirigint a l'inici de sessió...", + "auth.logout": "Tanca la sessió", + "auth.user_info": "Informació de l'usuari", + "auth.session_expired": "La vostra sessió ha caducat. Si us plau, torneu a iniciar sessió.", + "auth.login_required": "Es requereix autenticació", + "footer.version": "Fail2ban-UI v{version}", + "footer.latest": "Més recent", + "footer.update_available": "Actualització disponible: v{version}" +}