PageSourceSearch

https://catellix.com/static/js/i18n.js?v=11&_cb=1789769345

js catellix.com collected 2026-09-24 12:57:06 UTC 358,671 bytes, 3,907 lines download raw bytes

1/**
2 * Catellix i18n – EN e PT-BR (todas as páginas)
3 * Idioma padrão: PT-BR. Para ver em inglês, use o botão de idioma (EN) no canto inferior direito.
4 * Use data-i18n="key" nos elementos, data-i18n-placeholder="key" em inputs.
5 */
6(function() {
7  var _dbg = function() {};
8  var ptBR = {
9    lang_pt: "Português", lang_en: "English",
10    theme_goto_dark: "Ativar tema escuro",
11    theme_goto_light: "Ativar tema claro",
12    nav_back_dashboard: "Voltar ao Dashboard", nav_home: "Início", nav_logout: "Sair", nav_menu: "Menu", nav_recent_pages: "Últimas páginas", nav_search_menu: "Pesquisar no menu…",
13    nav_section_visao: "Visão", nav_section_conta: "Conta", nav_section_inventario: "Inventário", nav_section_rede: "Rede", nav_section_diagnostico: "Diagnóstico", nav_section_experiencia: "Experiência", nav_section_admin: "Administração",
14    nav_menu_painel: "Painel", nav_menu_impacto: "Impacto", nav_menu_meus_paineis: "Meus painéis", nav_menu_mapas: "Mapas", nav_menu_wifi: "Wi‑Fi", nav_menu_detector: "Detector", nav_menu_perfil: "Perfil", nav_menu_definicoes: "Definições", nav_menu_hosts: "Hosts", nav_menu_pops: "POPs", nav_menu_backup: "Backup", nav_tasks: "Tarefas", nav_menu_camaras: "Câmaras", nav_menu_endpoints: "Endpoints", nav_menu_lg: "LG", nav_menu_latencia: "Latência", nav_menu_relatorios: "Relatórios", nav_menu_mudancas: "Mudanças", nav_menu_sub_contas: "Sub-contas",     nav_menu_cupons: "Cupons", nav_menu_whatsapp: "WhatsApp", nav_menu_auditoria: "Auditoria", nav_menu_erp: "ERP", nav_search_aria: "Pesquisar item do menu",
15    nav_menu_detector_hint: "Latência, histórico e relatos da comunidade",
16    mfa_title: "Verificação em duas etapas",
17    mfa_title_short: "Área protegida",
18    mfa_sub_totp: "Google Authenticator",
19    mfa_sub_legacy: "PIN de segurança da conta",
20    mfa_sub_generic: "Código de 6 dígitos",
21    mfa_message_legacy: "Esta conta ainda usa um PIN antigo de 6 dígitos (não é o código do Google Authenticator). Digite esse PIN ou solicite um código por e-mail abaixo.",
22    constructor_title: "Constructor", constructor_offline: "Constructor offline. Conecte o Catellix Desktop (Proxy) para usar.",
23    nav_analise_hosts: "Análise de Hosts", nav_servidores: "Servidores",
24    nav_bgp: "BGP", nav_ipam: "IPAM", nav_ospf: "OSPF", nav_layer2: "Layer 2", nav_mpls: "MPLS", nav_gmud: "Gestão de Mudanças (GMUD)", nav_settings: "Configurações",
25    nav_bgp_routes_link: "Análise de Rotas", nav_bgp_tables_link: "Análise de Tabelas", nav_tools_link: "Ferramentas", nav_settings_link: "Configurações",
26    login_title: "Acessar Plataforma", login_email: "Email", login_password: "Senha", login_enter: "Entrar", login_manter_conectado: "Manter conectado por mais tempo (até clicar em Sair)",
27    login_or: "ou", login_create_account: "Criar conta", login_forgot: "Esqueci a senha",
28    register_title: "Criar conta", register_name: "Nome completo", register_email: "Email", register_password: "Senha",
29    register_confirm_password: "Confirmar senha", register_btn: "Cadastrar", register_has_account: "Já tem conta? Entrar", register_resend_confirm: "Não recebeu o email de confirmação? Reenviar",
30    index_construction: "Em Construção", index_working: "Estamos trabalhando em algo incrível!",
31    index_paragraph: "Nossa equipe está desenvolvendo novas funcionalidades para melhorar sua experiência. Em breve você terá acesso a um dashboard completo.",
32    index_progress: "Progresso estimado:", index_hosts: "Cadastro de Hosts", index_login: "Login",
33    index_redirect: "Redirecionando para o dashboard em",
34    index_aurix_intelligence: "Aurix intelligence",
35    index_welcome_title: "Bem-vindo ao Catellix",
36    dash_title: "Dashboard", dash_welcome: "Bem-vindo ao AuriX by Catellix", dash_hosts: "Cadastro de Hosts",
37    dash_plan_free: "FREE",
38    trial_time_remaining: "Trial:",
39    license_time_remaining: "Licença:",
40    license_expired_message: "Sua licença expirou. Renove seu plano para continuar usando todas as funcionalidades.",
41    license_expired_action: "Renovar",
42    license_expired_badge: "Expirado", 
43    dash_plan_unlimited: "Conta Unlimited",
44    dash_plan_basic_30: "Conta Basic 30",
45    dash_plan_basic_90: "Conta Basic 90",
46    dash_plan_basic_60: "Conta Basic 60",
47    dash_plan_pro_200: "Conta Pro 200",
48    dash_plan_pro_400: "Conta Pro 400",
49    dash_plan_pro_800: "Conta Pro 800",
50    dash_plan_advanced_1200: "Conta Advanced 1200",
51    dash_plan_advanced_2400: "Conta Advanced 2400",
52    dash_plan_advanced_3600: "Conta Advanced 3600",
53    dash_plan_basic_10: "Conta Basic 10",
54    dash_plan_pro_100: "Conta Pro 100",
55    dash_plan_advanced_800: "Conta Advanced 800",
56    dash_plan_advanced_1600: "Conta Advanced 1600",
57    dash_plan_premium: "Conta Premium",
58    dash_backup: "Backup e Coleta", dash_user: "Usuário",
59    dash_hosts_active: "Hosts Ativos", dash_monitored: "monitorados", dash_uptime: "Uptime Médio", dash_last30: "últimos 30 dias",
60    dash_alerts: "Alertas Hoje", dash_attention: "requerem atenção", dash_scans: "Scans (24h)", dash_runs: "execuções",
61    dash_error_rate: "Taxa de erro (%)", dash_ok: "Ok", dash_low: "Baixo", dash_medium: "Médio", dash_critical: "Crítico",
62    dash_topology: "Topologia de rede", dash_view_topo: "Ver topologia ▼", dash_uptime_avail: "Uptime & Disponibilidade (últimos 7 dias)",
63    dash_status_hosts: "Status dos Hosts", dash_traffic: "Tráfego / Requisições por Hora",
64    dash_by_vendor: "Distribuição por Vendor", dash_firmware_by_vendor: "Distribuição por firmware por vendor", dash_recent: "Atividade Recente",
65    dash_latency: "Tendência de Latência (ms)",
66    dash_status_scans: "Status dos hosts (scans)", dash_backup_dr: "Backup DR",
67    kpi_executions_30d: "Execuções (30d)", kpi_success_rate: "Taxa de sucesso", kpi_backup_dr_pct: "Backup DR", kpi_backup_24h: "Backup 24h", kpi_uptime: "Uptime",
68    kpi_tasks_run: "tasks executadas", kpi_exec_ok: "execuções ok", kpi_hosts_backup: "hosts com backup", kpi_updated_24h: "atualizado nas últimas 24h", kpi_hosts_online: "hosts online",
69    kpi_license: "Uso de licença", kpi_license_sublabel: "hosts + servidores + câmeras",
70    kpi_backups_30d: "Backups (30d)", kpi_backups_sublabel: "coletas no histórico",
71    kpi_agendamentos: "Agendamentos", kpi_agendamentos_sublabel: "coletas ativas",
72    kpi_tasks_ativas: "Tarefas ativas", kpi_tasks_sublabel: "comandos agendados",
73    kpi_cameras: "Câmeras", kpi_pop_monitoring: "POP Monitoring",
74    kpi_servidores: "Servidores", kpi_servidores_sublabel: "Linux + Windows",
75    kpi_exec_per_device: "Exec./dispositivo", kpi_exec_per_device_sublabel: "média (30d)",
76    dash_online: "online", dash_offline: "offline",
77    dash_vendors_count: "Fabricantes", dash_vendors_sublabel: "identificados nos seus hosts",
78    dash_scan_ok: "Ok", dash_scan_partial: "Parcial", dash_scan_fail: "Falha", dash_scan_pending: "Pendente",
79    dash_backup_has: "Com backup DR", dash_backup_no: "Sem backup DR", dash_backup_scheduled: "Backup agendado",
80    dash_topo_parque: "Meu parque", dash_no_data: "Sem dados",
81    dash_no_activity: "Nenhuma atividade", dash_activity_count: "{0}–{1} de {2}", dash_activity_count_one: "1 atividade", dash_page_of: "Página",
82    dash_tab_main: "Dash - Main", dash_tab_alerts: "Dash - Alerts", dash_tab_dashban: "DashBan", dash_alert_title: "Alertas – Hosts offline",
83    dash_alert_none: "Nenhum host offline no momento.", dash_alert_offline_at: "Offline em", dash_alert_recovered_at: "Recuperado em", dash_alert_last_update: "Último Update:", dash_alert_error: "Erro ao carregar alertas.", dash_loading: "Carregando…",
84    dash_incident_popup_title: "Incidente detectado", dash_incident_popup_body: "O seguinte equipamento está offline:", dash_incident_popup_ver: "Ver alertas", dash_incident_popup_fechar: "Fechar",
85    dash_via_client: "Acesso via",
86    dash_catellix_source_badge_title: "Você está acessando via este cliente",
87    sidebar_analise_rede_title: "Análise de Hosts - Gráficos",
88    sidebar_analise_rede_ping_title: "Análise de Rede - Gráficos de ping",
89    sidebar_fasttask_title: "Fast Task - comando rápido (CMD)",
90    sidebar_subbrowser_title: "Aurix Intelligence browser - navegação rápida",
91    sidebar_reports_title: "Relatórios - Ping e latência",
92    sidebar_aurix_aria_constructor: "Constructor",
93    sidebar_aurix_aria_weather: "Clima",
94    sidebar_aurix_aria_analise: "Análise",
95    sidebar_aurix_aria_fasttask: "CMD",
96    sidebar_aurix_aria_browser: "Browser",
97    sidebar_aurix_aria_reports: "Relatórios",
98    sidebar_settings_title: "Configurações",
99    sidebar_weather_title: "Previsão do tempo - 15 dias",
100    fp_back_dash: "Voltar ao Dashboard",
101    fp_back_welcome: "Voltar à página inicial",
102    fp_title: "Catellix / AuriX – Todas as funções da plataforma",
103    fp_intro: "A plataforma Catellix (com o motor de análise AuriX) centraliza o gerenciamento de equipamentos de rede (roteadores, switches, firewalls) de vários fabricantes em um só lugar. Este documento lista todas as funções disponíveis até o momento.",
104    fp_agent_proxy_heading: "🖥️ Agent e Proxy — O poder de operar na sua rede",
105    fp_agent_proxy_intro: "Para quem não é técnico: o Proxy e o Agent permitem que a Catellix funcione dentro da sua empresa, com acesso direto aos equipamentos de rede, sem depender só da nuvem.",
106    fp_proxy_title: "Proxy (Catellix Proxy Engine)",
107    fp_proxy_desc: "É como um hub local instalado no seu escritório ou datacenter. Ele fica na mesma rede dos seus roteadores, switches e firewalls, então consegue se conectar neles, fazer backup, coletar BGP, OSPF e executar c
107omandos — tudo na sua rede. Os dados são enviados para a nuvem (SaaS) para que você veja tudo na web ou no celular. O titular da conta faz login no Proxy. Funciona mesmo offline: salva os dados localmente e reenvia quando a internet voltar.",
108    fp_agent_title: "Agent (Catellix Agent Engine)",
109    fp_agent_desc: "É um app leve que sua equipe usa no PC. Ele conecta ao Proxy (que está na sua rede) e mostra a mesma interface da Catellix. Sub-usuários fazem login no Agent com suas credenciais. O Agent não precisa ter acesso direto aos equipamentos — ele pede ao Proxy para fazer o trabalho. Ideal para quem quer apenas operar, visualizar ou executar tarefas sem instalar o Proxy completo em cada máquina.",
110    fp_resumo: "Resumo: Proxy = faz o trabalho pesado na sua rede; Agent = interface leve que se conecta ao Proxy. Juntos, permitem usar a Catellix em modo híbrido (local + nuvem) com toda a segurança e controle na sua infraestrutura.",
111    fp_indice: "Índice",
112    fp_toc_agent: "Agent e Proxy", fp_toc_visao: "Visão geral e Dashboard", fp_toc_hosts: "Gestão de hosts", fp_toc_backup: "Backup e coleta", fp_toc_tasks: "Tasks (tarefas agendadas)", fp_toc_protocolos: "Protocolos de rede (BGP, OSPF, Layer 2, MPLS)", fp_toc_ferramentas: "Ferramentas de rede", fp_toc_analise: "Análise de rede e AuriX", fp_toc_lg: "Looking Glass", fp_toc_gmud: "GMUD (mudanças)", fp_toc_ipam: "IPAM", fp_toc_servidores: "Servidores (Linux e Windows/RDP)", fp_toc_relatorios: "Relatórios e Subbrowser", fp_toc_integracoes: "Integrações", fp_toc_admin: "Área administrativa",
113    fp_h2_visao: "Visão geral e Dashboard", fp_h2_hosts: "Gestão de hosts", fp_h2_backup: "Backup e coleta", fp_h2_tasks: "Tasks (tarefas agendadas)", fp_h2_protocolos: "Protocolos de rede (BGP, OSPF, Layer 2, MPLS)", fp_h2_ferramentas: "Ferramentas de rede", fp_h2_analise: "Análise de rede e AuriX", fp_h2_lg: "Looking Glass", fp_h2_gmud: "GMUD (Gestão de mudanças)", fp_h2_ipam: "IPAM", fp_h2_servidores: "Servidores (Linux e Windows / RDP)", fp_h2_relatorios: "Relatórios e Subbrowser", fp_h2_integracoes: "Integrações", fp_h2_admin: "Área administrativa (para gestores)",
114    fp_ferramentas_intro: "Cada ferramenta está disponível na tela \"Ferramentas\" da plataforma. Abaixo, o que cada uma faz e seu diferencial.",
115    fp_footer: "Catellix - Functions",
116    pagination_prev: "Anterior", pagination_next: "Próxima",
117    backup_title: "Backup e Coleta", backup_hint: "Liste os hosts, crie grupos e agende horários. Clique no grupo ou em Gerenciar. Grupos no navegador.",
118    backup_job_queue_title: "Status das coletas",
119    groups_title: "Grupos de hosts", groups_new_placeholder: "Nome do grupo", groups_create_btn: "Criar grupo com selecionados",
120    schedule_title: "Agendamento de coleta", schedule_time: "Horário", schedule_keep: "Guardar por", schedule_days: "dias",
121    schedule_name_placeholder: "Nome (opcional)", schedule_type_hosts: "Hosts selecionados", schedule_type_group: "Grupo",
122    schedule_btn: "Agendar coleta", schedule_cron_hint: "Agendamentos gravados no servidor. Configure cron com BACKUP_CRON_SECRET.",
123    batch_selected: "selecionados", batch_collect: "Coletar backup dos selecionados", batch_schedule: "Agendar horário para seleção",
124    filter_name: "Filtrar por nome", filter_ip: "Filtrar por IP", filter_vendor: "Filtrar por vendor",
125    table_check: "Selecionar todos", table_name: "Nome", table_ip: "IP", table_vendor: "Vendor", table_backup: "Backup",
126    table_next: "Próx. coleta", table_actions: "Ações",
127    btn_view_dr: "Ver DR", btn_historico: "Histórico", btn_collect: "Coletar", btn_schedule: "Agendar", manage_group: "Gerenciar",
128    timezone_label: "Fuso", language_label: "Idioma",
129    table_scroll_aria: "Tabela — deslize horizontalmente para ver todas as colunas",
130    ctrl_nav_licenses: "Licenças", ctrl_nav_install_app: "Instalar o app", ctrl_nav_verification: "Verificação", ctrl_nav_change_password: "Alterar senha", ctrl_nav_duvidas: "Dúvidas",
131    ctrl_sidebar_det_latency_kicker: "Catellix Detector",
132    ctrl_sidebar_det_latency_suf: "ms média",
133    ctrl_sidebar_det_latency_open: "Abrir Monitoring →",
134    ctrl_sidebar_det_latency_title: "Latência média das sondas OK no catálogo público. Abre o Monitoring (dashboard).",
135    ctrl_hero_kicker: "Painel simples e guiado para famílias", ctrl_hero_subtitle: "Acompanhe o celular da criança de forma clara e segura. Escolha um dispositivo, toque na ação desejada e o Catellix cuida do restante.",
136    ctrl_hero_step1: "Escolha o dispositivo", ctrl_hero_step2: "Toque na ação desejada", ctrl_hero_step3: "Aguarde a sincronização",
137    ctrl_hero_how_toggle: "Como usar o painel (passos 1 · 2 · 3)",
138    ctrl_missions_btn: "🎯 Conhecer métodos de missões",
139    ctrl_missions_hint: "Abre um guia sobre videoteca, quizzes e recompensas Aurix.",
140    ctrl_missions_modal_title: "Missões, vídeos e recompensas",
141    ctrl_missions_modal_intro: "Veja como usar a biblioteca de conteúdos para criar missões e motivar a criança com Aurix.",
142    ctrl_missions_tab_overview: "Visão geral",
143    ctrl_missions_tab_video: "Videoteca",
144    ctrl_missions_tab_quiz: "Quizzes",
145    ctrl_missions_tab_aurix: "Aurix e tempo",
146    ctrl_missions_close_aria: "Fechar guia de missões",
147    ctrl_missions_body_overview: "<p class=\"missions-p\">No Catellix Kids, você pode <strong>orientar o aprendizado</strong> combinando bloqueios e recompensas. A <strong>biblioteca de conteúdos</strong> (vídeos educativos e quizzes) pode ser usada como base para <strong>missões</strong>: você define o que a criança deve assistir ou completar.</p><p class=\"missions-p\">Quando ela conclui, ganha <strong>Aurix</strong> — moedas que podem ser trocadas por <strong>tempo extra de tela</strong>, conforme a regra que você configurar no app.</p>",
148    ctrl_missions_body_video: "<p class=\"missions-p\">A <strong>
148videoteca</strong> reúne vídeos educativos dentro do app da criança. Use-os para sugerir temas (ciências, história, saúde digital) e transforme em missão — por exemplo: <em>assistir ao vídeo X</em> antes de liberar tempo de lazer.</p><p class=\"missions-p\">É um jeito <strong>lúdico e guiado</strong> de aprender: no estilo gamificado, com objetivos claros.</p>",
149    ctrl_missions_body_quiz: "<p class=\"missions-p\">Os <strong>quizzes e jogos rápidos</strong> reforçam o que foi aprendido. Você pode propor missões do tipo <em>completar o quiz sobre Y</em> — divertido, no estilo gamificado, com recompensa em Aurix ao acertar ou concluir.</p><p class=\"missions-p\">Assim, estudo e tela se conectam: a criança <strong>joga para aprender</strong> e você acompanha o progresso.</p>",
150    ctrl_missions_body_aurix: "<p class=\"missions-p\"><strong>Aurix</strong> é a moeda de recompensa: a criança acumula ao cumprir missões. No painel e no app, o responsável define como o Aurix se converte em <strong>minutos extras de tela</strong> — educação e diversão na mesma conta.</p><p class=\"missions-p\">O objetivo é <strong>reconhecer o esforço</strong> e ensinar equilíbrio entre obrigações e lazer.</p>",
151    ctrl_sidebar_collapse: "Recolher menu", ctrl_sidebar_expand: "Expandir menu",
152    ctrl_back_plans: "Planos Mobile", ctrl_welcome: "Bem-vindo ao Catellix", ctrl_welcome_logged: "Bem-vindo ao Catellix, {0}, que logou.",     ctrl_license_days_left: "dias restantes", ctrl_license_day_left: "dia restante", ctrl_license_active: "Sua licença está ativa.", ctrl_license_expires_soon: "Sua licença expira em breve. Renove para não perder o acesso.",
153    ctrl_trial_min_left: "Período grátis — {0} min restantes", ctrl_trial_intro: "Você tem 7 dias grátis para testar o Catellix Kids.",
154    ctrl_trial_ended: "Período grátis encerrado", ctrl_license_expired: "Licença expirada",
155    ctrl_trial_ended_detail: "Seu período grátis de 7 dias terminou. Adquira um plano para continuar usando o controle parental.",
156    ctrl_license_expired_detail: "Sua licença Catellix Kids expirou. Renove para continuar usando o controle parental.",
157    ctrl_tag_trial_ended: "Free expirado", ctrl_tag_expired: "Expirada", ctrl_btn_add_disabled_expired: "Licença expirada — renove para parear dispositivos",
158    ctrl_devices_title: "Seus dispositivos",
159    ctrl_devices_hint: "Toque em um cartão para abrir o painel do dispositivo. Use Localizar, Tempo de tela e Encontrar para ações rápidas.",
160    ctrl_add_device: "Adicionar dispositivo", ctrl_add_device_btn: "+ Adicionar dispositivo", ctrl_locate: "Localizar", ctrl_block: "Bloquear", ctrl_find: "Encontrar", ctrl_screen_time_quick: "Tempo de tela", ctrl_screen_time_quick_title: "Tempo de tela — relatório do dia, histórico e ranking de apps",     ctrl_open_panel: "Abrir painel",
161    ctrl_setup_steps_btn: "Passo a passo", ctrl_setup_steps_aria: "Abrir configuração passo a passo (plano, tempo de tela, cerca, sites, apps, Aurix, missões)", ctrl_setup_wizard_close_backdrop: "Fechar e voltar ao painel",
162    ctrl_pending_title: "Ações pendentes", ctrl_pending_time: "Pedido de tempo extra da criança", ctrl_pending_apps: "Apps aguardando sua aprovação para instalar (%n)", ctrl_pending_missions: "Missões aguardando sua aprovação (%n)", ctrl_pending_chat: "Mensagens no chat não lidas (%n)", ctrl_pending_fallback: "Solicitações da criança pendentes", ctrl_pending_go_device: "Ir ao dispositivo",
163    ctrl_alert_recover: "Celular travado na tela \"Ops, tempo limite\" ou sem sincronizar? Clique para ver como recuperar",
164    ctrl_renew_plan: "Renovar plano", ctrl_push_title: "Receba alertas no navegador", ctrl_push_text: "Quando a criança pedir para instalar um app ou acessar um site bloqueado, você será avisado na hora.",
165    ctrl_push_activate: "Ativar notificações", ctrl_push_modal_title: "Ativar alertas neste navegador?", ctrl_push_modal_intro: "Você receberá notificações instantâneas quando a criança:",
166    ctrl_push_yes: "Sim, ativar", ctrl_push_no: "Agora não",
167    ctrl_poll_notif_sos_title: "Catellix Kids — SOS", ctrl_poll_notif_sos_body: "{0}: alerta SOS.",
168    ctrl_poll_notif_time_title: "Catellix Kids — Tempo de tela", ctrl_poll_notif_time_body: "{0}: pediu mais tempo de tela.",
169    ctrl_poll_notif_install_title: "Catellix Kids — App para aprovar", ctrl_poll_notif_install_body: "{0}: {1} novo(s) pedido(s) de instalação.",
170    ctrl_poll_notif_mission_title: "Catellix Kids — Missão", ctrl_poll_notif_mission_body: "{0}: missão aguardando aprovação.",
171    ctrl_poll_notif_chat_title: "Catellix Kids — Chat", ctrl_poll_notif_chat_body: "{0}: nova mensagem no chat.",
172    ctrl_back_devices: "← Voltar aos dispositivos", ctrl_back_devices_aria: "Voltar à lista de dispositivos",
173    ctrl_empty_devices_expired: "Nenhum dispositivo vinculado. Sua licença expirou — renove para parear dispositivos.",
174    ctrl_empty_devices_pair: "Nenhum dispositivo vinculado. Pareie um dispositivo pelo app Catellix Kids.",
175    ctrl_group_security_blocks: "Segurança e bloqueio", ctrl_group_location: "Localização", ctrl_group_activity: "Atividade",
176    ctrl_group_camera_screen: "Câmera e tela", ctrl_group_apps_password: "Apps e senha", ctrl_group_contacts_comms: "Contatos e comunicadores",
177    ctrl_group_communication: "Comunicação", ctrl_group_update_maint: "Atualização e manutenção",
178    ctrl_action_policy_sites: "Gerenciar sites", ctrl_action_location_map: "Ver localização no mapa", ctrl_action_displacement: "Relatório de deslocamento",
179    ctrl_action_ring_alarm: "Encontrar celular (alarme)", ctrl_action_events: "Ver eventos", ctrl_action_screentime_smart: "Tempo de Tela / Controle Inteligente",
180    ctrl_action_keylog_report: "Relatório do que foi digitado", ctrl_action_cam_front: "Tirar foto (câmera frontal)", ctrl_action_cam_back: "Tirar foto (câmera traseira)",
181    ctrl_action_screenshot: "Capturar tela do celular", ctrl_action_apps_installed: "Apps instalados", ctrl_action_kids_password: "Senha do app",
182    ctrl_action_contacts_alerts: "Contatos e alertas", ctrl_action_sms_log: "Registro de SMS", ctrl_action_call_log: "Registro de chamadas",
183    ctrl_action_chat_child: "Chat com a criança", ctrl_action_missions: "Missões", ctrl_action_missions_hist: "Histórico de missões",
184    ctrl_action_donate_aurix: "Doar Aurix ao filho", ctrl_action_clear_cache: "Limpar cache no celular",
185    ctrl_action_update_ps: "Verificar atualização (Play Store)", ctrl_action_update_apk: "Atualizar app no celular",
186    ctrl_device_actions_intro: "O que você pode fazer com este dispositivo:", ctrl_device_sync_hint_q: "Quanto tempo demora?",
187    ctrl_device_sync_hint_p1: "As alterações que você fizer aqui chegam ao celular da criança em até", ctrl_device_sync_hint_p2: "~1 minuto", ctrl_device_sync_hint_p3: ". Tudo sincroniza automaticamente.",
188    ctrl_status_active: "Ativo", ctrl_status_online: "Online", ctrl_status_offline: "Offline", ctrl_last_sync_short: "Última sync:",
189    ctrl_meta_status: "Status:", ctrl_meta_last_sync: "Última sincronização:", ctrl_never_synced: "Nunca",
190    ctrl_revise_plan: "Revise o plano", ctrl_revise_plan_aria: "Revisar plano do dispositivo", ctrl_choose_plan_tag: "Escolher plano",
191    ctrl_demo_action_unavailable: "Não disponível na demo",
192    ctrl_demo_camera_hint: "Na demo: toque para ver imagem de exemplo (sem celular real).",
193    ctrl_demo_camera_caption: "Cena fictícia para demonstração. Na versão com aparelho vinculado, a foto vem do celular da criança.",
194    ctrl_open_device_aria: "Abrir painel do dispositivo",
195    ctrl_device_panel_aria: "Painel de ações do dispositivo",
196    ctrl_autoconf_tag: "Start autoconf", ctrl_quick_config_tag: "Config. rápida",
197    ctrl_device_removed_badge: "Dispositivo removido", ctrl_status_repairing: "🔄 Aguardando re-vinculação",
198    ctrl_status_pending_pairing: "Aguardando pareamento", ctrl_device_numbered: "Dispositivo %n",
199    ctrl_safe_zone: "Zona Segura / Safe Zone",
200    ctrl_safe_zone_radius: "Raio (metros)", ctrl_safe_zone_active: "Ativa", ctrl_safe_zone_save: "Salvar / Save", ctrl_safe_zone_delete: "Desativar / Remover",
201    ctrl_safe_zone_hint: "Defina a área segura no mapa. Clique para escolher o centro. A criança receberá alertas se sair da área.",
202    ctrl_safe_zone_success: "Zona segura salva com sucesso! / Safe zone saved!",
203    ctrl_safe_zone_removed: "Zona segura removida. / Safe zone removed.",
204    privacy_title_pt: "Política de Privacidade – Catellix Kids", privacy_title_en: "Privacy Policy – Catellix Kids",
205    privacy_back_pt: "Voltar aos planos", privacy_back_en: "Back to plans", privacy_slogan_pt: "Política de Privacidade", privacy_slogan_en: "Privacy Policy",
206    privacy_intro_pt: "O Catellix Kids é um aplicativo de controle parental desenvolvido para ajudar pais e responsáveis a proteger crianças e adolescentes no ambiente digital.",
207    privacy_intro_pt2: "Esta política de privacidade explica como os dados são coletados, utilizados e protegidos pelo serviço.",
208    privacy_intro_en: "Catellix Kids is a parental control application developed to help parents and guardians protect children and adolescents in the digital environment.",
209    privacy_intro_en2: "This privacy policy explains how data is collected, used, and protected by the service.",
210    privacy_section_intro: "Introdução", privacy_section_data: "Dados que podem ser coletados", privacy_section_use: "Uso das informações",
211    privacy_section_sharing: "Compartilhamento de dados", privacy_section_security: "Segurança", privacy_section_consent: "Consentimento", privacy_section_deletion: "Exclusão de Dados", privacy_section_contact: "Contato",
212    privacy_footer_pt: "© 2026 Catellix · Todos os direitos reservados", privacy_footer_en: "© 2026 Catellix · All rights reserved",
213    privacy_title: "Política de Privacidade – Catellix Kids", privacy_back: "← Voltar aos planos", privacy_slogan: "Política de Privacidade", privacy_footer: "© 2026 Catellix · Todos os direitos reservados",
214    reset_title: "Esqueci a senha", reset_email: "Email", reset_btn: "Enviar", reset_btn_link: "Enviar link", reset_back: "Voltar ao login",
215    reset_alert_email: "Preencha o email.", reset_alert_invalid: "Dados inválidos: ", reset_alert_sent: "Se o email existir, enviamos instruções de recuperação!",
216    reset_alert_fail: "Não foi possível enviar o link.", reset_alert_connect: "Erro ao conectar com o servidor.",
217    setpw_title: "Definir nova senha", setpw_new: "Nova senha", setpw_confirm: "Confirmar senha", setpw_btn: "Alterar senha",
218    register_placeholder_name: "Seu nome", register_placeholder_email: "[email protected]", register_placeholder_password: "••••••••",
219    register_req_len: "8 ou mais caracteres", register_req_maius: "Uma letra maiúscula", register_req_minus: "Uma letra minúscula",
220    register_req_num: "Um número", register_req_simb: "Um símbolo (!@#$%&*…)",
221    register_alert_name: "Preencha o nome completo.", register_alert_email: "Preencha o email.",
222    register_alert_weak: "Senha fraca. Necessário: ", register_alert_success: "Usuário registrado com sucesso!",
223    register_alert_fail: "Falha ao registrar.", register_alert_connect: "Erro ao conectar com o servidor.",
224    register_alert_invalid: "Dados inválidos: ",
225    setpw_req_len: "8 ou mais caracteres", setpw_req_maius: "Uma letra maiúscula", setpw_req_minus: "Uma letra minúscula",
226    setpw_req_num: "Um número", setpw_req_simb: "Um símbolo (!@#$%&*…)",
227    setpw_err_link: "Link inválido ou expirado. Solicite uma nova recuperação de senha.",
228    setpw_err_weak: "Senha fraca. Necessário: ", setpw_success: "Senha atualizada com sucesso!",
229    setpw_err_update: "Erro ao atualizar senha.", setpw_err_request: "Erro na requisição. Tente novamente.",
230    setpw_err_invalid: "Dados inválidos: ", setpw_err_token: "Token inválido ou expirado.",
231    index_second: "segundo", index_seconds: "segundos",
232    cad_title: "Cadastro de Hosts", cad_back: "Voltar ao Dashboard", cad_add: "+",
233    cad_scan_now: "ScanNOW", cad_add_section: "Adicionar Host", cad_filter_name: "Filtrar por nome", cad_filter_ip: "Filtrar por IP", cad_filter_vendor: "Filtrar por vendor",
234    cad_filter_clear: "Limpar filtros", cad_filters_label: "Filtros:", cad_hosts_count: "hosts", cad_name: "Nome", cad_ip: "IP", cad_vendor: "Vendor",
235    cad_user_host: "Usuário Host", cad_pass_host: "Senha Host", cad_port: "Porta", cad_port23_warning: "A porta 23 (Telnet) é um protocolo inseguro. O tráfego é enviado sem criptografia. Deseja realmente continuar?", cad_status: "Status", cad_firmware: "Firmware",
236    cad_actions: "Ações", cad_edit: "Editar", cad_remove: "Remover", cad_btn_confirm: "Confirmar", cad_btn_discard: "Descartar", cad_none: "Nenhum host encontrado.",
237    cad_none_empty: "Nenhum host cadastrado.", cad_none_filter: "Nenhum host corresponde aos filtros.",
238    cad_btn_view: "Ver DR", cad_btn_scan: "Scan", cad_btn_delete: "Excluir", cad_btn_remote_title: "Acesso remoto via SSH/Telnet (Aurix Remote)",
239    cad_btn_constructor_title: "Constructor — comandos sugeridos para este equipamento",
240    cad_btn_dr_title: "Backup de disaster recovery",
241    cad_snmp_test_error: "Teste SNMP", cad_snmp_test_network_error: "Erro ao testar SNMP. Verifique a conexão.",
242    cad_auto_detect: "Vendor e firmware são detectados automaticamente no scan.",
243    scancad_back: "Voltar ao Cadastro de Hosts", scancad_title: "Scan Cad Host", scancad_subtitle: "Digite um IP ou rede (CIDR) e inicie o scan.",
244    scancad_play: "Iniciar Scan", scancad_status: "Status", scancad_http_access: "HTTP/HTTPS", scancad_ssh_22: "SSH (22)", scancad_telnet_23: "Telnet (23)", scancad_add_to_cad: "Adicionar ao cadastro",
245    scancad_no_results: "Nenhum resultado. Digite um IP ou CIDR e clique em Iniciar Scan.",
246    scancad_host_added_scan_bg: "Host adicionado. Scan em background iniciado.",
247    scancad_modal_title: "Adicionar host ao cadastro", scancad_ip_locked: "IP (do scan)",
248    scancad_online: "Online", scancad_down: "Offline",
249    scancad_add_all: "Adicionar Todos",
250    scancad_modal_add_all_title: "Adicionar todos ao cadastro",
251    scancad_modal_add_all_subtitle: "Os mesmos usuário, senha e porta serão usados para todos os IPs online listados.",
252    scancad_modal_add_all_subtitle_ports: "Usuário e senha para todos; a porta (22 SSH ou 23 Telnet) será escolhida automaticamente conforme o que estiver aberta em cada IP (prioridade SSH).",
253    scancad_add_all_confirm: "Adicionar todos",
254    scancad_add_all_loading: "Carregando os hosts na base... (não feche esta janela)",
255    scancad_add_all_progress: "Adicionando %1/%2...",
256    scancad_add_all_done: "%1 host(s) adicionados. Redirecionando...",
257    scancad_add_all_done_partial: "Concluído: %1 adicionados, %2 falha(s).",
258    scancad_add_all_err_user: "Preencha o usuário do host.",
259    scancad_add_all_err_pass: "Preencha a senha do host.",
260    scancad_add_all_err_port: "Porta deve ser entre 1 e 65535.",
261    scancad_add_all_err_no_ips: "Nenhum IP com SSH ou Telnet aberto para adicionar.",
262    tools_title: "Ferramentas de Rede", tools_ping: "Ping", tools_ping_desc: "Latência e perda de pacotes",
263    tools_traceroute: "Traceroute", tools_traceroute_desc: "Rota até o destino",
264    tools_dns: "DNS Lookup", tools_dns_desc: "Domínio → A, AAAA, MX, NS",
265    tools_portcheck: "Port Check", tools_portcheck_desc: "Porta TCP aberta?",
266    tools_http: "HTTP Check", tools_http_desc: "Status e tempo de resposta",
267    tools_portscanner: "Port Scanner", tools_portscanner_desc: "Portas comuns",
268    tools_banner: "Banner Grabber", tools_banner_desc: "Serviço na porta",
269    tools_ssl: "SSL Checker", tools_ssl_desc: "Certificado HTTPS",
270    tools_reversedns: "Reverse DNS", tools_reversedns_desc: "IP → nome",
271    tools_blacklist: "Blacklist Check", tools_blacklist_desc: "IP em lista de bloqueio?",
272    tools_rpki: "RPKI Validation", tools_rpki_desc: "Prefixo válido/inválido",
273    tools_ipv4calc: "Calculadora IPv4", tools_ipv4calc_desc: "CIDR, máscara, /31·/32, lote, export TXT",
274    tools_ipv6calc: "Calculadora IPv6", tools_ipv6calc_desc: "Rede, último, comprimido, lote, export TXT",
275    tools_ipv4_input: "IP/CIDR ou IP e máscara", tools_ipv6_input: "Endereço IPv6 / prefixo",
276    tools_calc: "Calcular", tools_network: "Rede", tools_broadcast: "Broadcast", tools_mask: "Máscara",
277    tools_wildcard: "Wildcard", tools_first_host: "Primeiro host", tools_last_host: "Último host",
278    tools_hosts_total: "Total de endereços", tools_hosts_usable: "Hosts utilizáveis",
279    tools_first_addr: "Primeiro endereço", tools_last_addr: "Último endereço",
280    tools_prefix_length: "Comprimento do prefixo", tools_total_addresses: "Total de endereços",
281    tools_ipv4_invalid: "IP ou máscara IPv4 inválidos.", tools_ipv6_invalid: "Endereço IPv6 inválido.",
282    tools_ipcalc_v4_lead: "Um bloco (CIDR ou IP + máscara) ou várias linhas — ideal para montar relatórios de prefixos.",
283    tools_ipcalc_v6_lead: "Prefixo IPv6 completo: rede, último endereço, totais e exportação em TXT (expandido + comprimido).",
284    tools_ipcalc_presets: "Atalhos CIDR",
285    tools_ipcalc_batch_label: "Vários prefixos (um por linha)",
286    tools_ipcalc_batch_ph: "192.168.10.0/24\n10.0.0.0/16\n172.16.5.
2860 255.255.255.0",
287    tools_ipcalc_export_txt: "Exportar TXT",
288    tools_ipcalc_export_batch: "Exportar lista (TXT)",
289    tools_ipcalc_binary: "IP e máscara (binário)",
290    tools_ipcalc_class: "Classe (legado)",
291    tools_ipcalc_note: "Nota",
292    tools_ipcalc_hosts_p2p: "/31 ponto a ponto: 2 endereços utilizáveis (RFC 3021).",
293    tools_ipcalc_hosts_single: "/32: um único endereço (host loopback ou rota).",
294    tools_ipcalc_list_title: "Resultados em lote",
295    tools_ipcalc_v6_expanded: "Rede (expandida)",
296    tools_ipcalc_v6_compressed: "Rede (comprimida)",
297    tools_ipcalc_v6_last_c: "Último (comprimido)",
298    tools_ipcalc_v6_scope: "Âmbito",
299    tools_ipcalc_v6_batch_ph: "2001:db8::/32\nfe80::/10",
300    tools_ipcalc_copy_hint: "O ficheiro inclui data/hora e todos os campos visíveis.",
301    tools_ipcalc_empty_hint: "Introduza um bloco (IP/CIDR ou IP + máscara) ou preencha a área em lote.",
302    tools_ipcalc_batch_none: "Nenhuma linha válida no lote (comentários com # são ignorados).",
303    tools_ipcalc_reserved_title: "IPv4 — prefixos reservados / usuais (passe o rato para ler; clique para calcular)",
304    tools_ipcalc_reserved_v6_title: "IPv6 — prefixos reservados / usuais (passe o rato para ler; clique para calcular)",
305    tools_ipcalc_v4_ref_10: "Privado RFC 1918 (classe A). Não deve aparecer como origem na Internet pública.",
306    tools_ipcalc_v4_ref_172: "Privado RFC 1918 (bloco 172.16.0.0–172.31.255.255).",
307    tools_ipcalc_v4_ref_192: "Privado RFC 1918 (típico em casa/escritório).",
308    tools_ipcalc_v4_ref_cgnat: "Carrier-Grade NAT (RFC 6598): espaço entre ISP e router do cliente; partilhado.",
309    tools_ipcalc_v4_ref_loop: "Loopback (RFC 1122): tráfego local à máquina (ex.: 127.0.0.1).",
310    tools_ipcalc_v4_ref_apipa: "Link-local / APIPA (RFC 3927): autoconfiguração quando não há DHCP.",
311    tools_ipcalc_v4_ref_mc: "Multicast (RFC 3171): não usar como endereço unicast de origem na Internet.",
312    tools_ipcalc_v4_ref_disc: "Reservado para uso futuro ou políticas especiais (RFC 1112).",
313    tools_ipcalc_v4_ref_zero: "Reservado: “esta rede” (0.0.0.0) e bloco 0.0.0.0/8 (RFC 1122).",
314    tools_ipcalc_v4_ref_bench: "Testes de desempenho entre dois equipamentos (RFC 2544); não na Internet.",
315    tools_ipcalc_v4_ref_testnet: "Redes de documentação (RFC 5737): 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 — exemplo TEST-NET-1.",
316    tools_ipcalc_v6_ref_doc: "Documentação (RFC 3849): só para manuais e labs; nunca em produção na Internet.",
317    tools_ipcalc_v6_ref_ula: "ULA — faixa fc00::/7 (RFC 4193): endereço local único; privado, não roteável na Internet global.",
318    tools_ipcalc_v6_ref_ula_ex: "Exemplo de site ULA /48 (prefixo fd… atribuído localmente; dentro de fc00::/7).",
319    tools_ipcalc_v6_ref_ll: "Link-local (RFC 4291): só na mesma ligação L2; começa tipicamente por fe80::.",
320    tools_ipcalc_v6_ref_mc: "Multicast (RFC 4291): todo o bloco ff00::/8.",
321    tools_ipcalc_v6_ref_loop: "Loopback IPv6 (::1/128).",
322    tools_ipcalc_v6_ref_6to4: "6to4 (RFC 3056): túnel automático 2002::/16 — legado.",
323    tools_ipcalc_v6_ref_teredo: "Teredo (RFC 4380): prefixo 2001::/32 — túnel sobre IPv4; hoje pouco usado.",
324    tools_ipcalc_v6_ref_v4map: "IPv4 mapeado em IPv6 (::ffff:0:0/96).",
325    tools_ipcalc_v6_ref_discard: "Prefixo de descarte (RFC 6666): 100::/64 — tráfego deve ser ignorado.",
326    tools_ipcalc_v6_ref_sitelocal: "Site-local antigo fec0::/10 — deprecado (RFC 3879); não usar em redes novas.",
327    tools_ipcalc_cheat_v4_summary: "Tabela IPv4 /0–/32: máscara, wildcard, contagem e binário (clique numa linha para calcular)",
328    tools_ipcalc_cheat_v6_summary: "Tabela IPv6 /0–/128: bits rede/host, total de endereços e sub-redes /64 (clique numa linha)",
329    tools_ipcalc_cheat_rowhint: "Clique na linha para preencher 0.0.0.0/n ou ::/n e calcular.",
330    tools_ipcalc_cheat_v4_cidr: "CIDR",
331    tools_ipcalc_cheat_v4_mask: "Máscara",
332    tools_ipcalc_cheat_v4_wc: "Wildcard",
333    tools_ipcalc_cheat_v4_ips: "Endereços",
334    tools_ipcalc_cheat_v4_binm: "Máscara (bin)",
335    tools_ipcalc_cheat_v4_binw: "Wildcard (bin)",
336    tools_ipcalc_cheat_v6_prefix: "CIDR",
337    tools_ipcalc_cheat_v6_net: "Rede",
338    tools_ipcalc_cheat_v6_host: "Host",
339    tools_ipcalc_cheat_v6_total: "Total end.",
340    tools_ipcalc_cheat_v6_sub64: "/64 no bloco",
341    tools_ipcalc_fastscan: "Fast scan (subnet)",
342    tools_ipcalc_fastscan_busy: "A analisar…",
343    tools_ipcalc_fastscan_hint: "Ping rápido + TCP 80, 443, 8080, 25 e 3389 em paralelo sobre uma amostra do prefixo (até 32 endereços).",
344    tools_ipcalc_scan_need_cidr: "Calcule ou introduza um CIDR válido no campo (ou primeira linha do lote).",
345    tools_ipcalc_scan_found_title: "Encontrámos endereços em uso",
346    tools_ipcalc_scan_none_title: "Nenhuma resposta rápida",
347    tools_ipcalc_scan_none_body: "Nenhum dos endereços amostrados respondeu a ICMP ou abriu TCP nas portas testadas.",
348    tools_ipcalc_scan_found_intro: "Comunicação detetada (links quando aplicável):",
349    tools_ipcalc_scan_duration: "Tempo total",
350    tools_ipcalc_scan_error: "Erro no fast scan",
351    tools_ipcalc_scan_sampled: "Amostra analisada:",
352    tools_ipcalc_scan_close: "Fechar",
353    tools_click_above: "Clique em uma ferramenta acima para usar.",
354    tools_host_search: "Buscar host", tools_host_search_placeholder: "Nome ou IP do host",
355    tools_target: "Alvo (IP ou hostname)", tools_domain: "Domínio", tools_host: "Host", tools_port: "Porta",
356    tools_run: "Executar", tools_running: "Executando",
357    tools_port_open: "Porta aberta", tools_port_closed: "Porta fechada",
358    tools_open_ports: "Portas abertas", tools_none: "nenhuma",
359    tools_listed_in: "Listado em", tools_not_listed: "Não listado em RBLs conhecidas.",
360    tools_prefix: "Prefixo (ex: 193.0.0.0/21)", tools_no_ptr: "(sem PTR)",
361    tools_asn_country: "ASN / País",
362    tools_asn_holder: "Detentor",
363    tools_tr_table_aurix: "Tabela AuriX",
364    tools_tr_linux_output: "Traceroute (Linux)",
365    tools_tr_enriching: "Consultando hops e enriquecendo ASN/país...",
366    tools_nav: "Ferramentas",
367    lg_title: "Looking Glass", lg_subtitle: "Consultar rotas BGP (received/advertised) em um Looking Glass",
368    lg_subtitle_new: "Consultar prefixo BGP em Looking Glasses", lg_info_new: "Consulte rotas BGP em Looking Glasses públicos (Brasil e internacionais). Informe o prefixo (ex: 200.160.0.0/16) e escolha Brasil, Internacional ou Todos.",
369    lg_prefix: "Prefixo BGP", lg_mode: "Modo", lg_mode_br: "Brasil", lg_mode_intl: "Internacional", lg_mode_all: "Todos",
370    lg_prefix_required: "Informe o prefixo BGP.", lg_consult: "Consultar", lg_consulting: "Consultando", lg_ok: "Ok", lg_fail: "Falha", lg_no_output: "Sem saída", lg_show_logs: "Ver logs da conexão", lg_error: "Erro",
371    lg_info: "Conecte a um Looking Glass (SSH ou Telnet), detecte o vendor automaticamente e execute o comando BGP para o peer informado. Informe o IP do vizinho BGP (neighbor) e escolha Received ou Advertised.",
372    lg_select_lg: "Looking Glass", lg_neighbor_ip: "IP do peer (neighbor)", lg_direction: "Tipo", lg_start: "Iniciar",
373    lg_received: "Received", lg_advertised: "Advertised",
374    bgp_title: "BGP – Sessões e ASNs", bgp_subtitle: "Colete sessões BGP do equipamento e consulte whois (nome e blocos IP alocados ao ASN via LACNIC).",
375    bgp_collect_section: "Coletar sessões BGP", bgp_host_label: "Host", bgp_select_host: "Selecione um host",
376    bgp_btn_collect: "Coletar BGP", bgp_hint_cmd: "O comando BGP é escolhido automaticamente conforme o vendor (Cisco, Juniper, MikroTik, Huawei, Nokia, Arista, etc.).",
377    bgp_tree_title: "Árvore de saídas BGP", bgp_tree_hint: "Equipamento (raiz) e vizinhos BGP estabelecidos (saídas por ASN). Clique em ▶ nos ASNs públicos para expandir até 3 níveis.", bgp_tree_root: "Equipamento", bgp_tree_link: "Exibir árvore", bgp_tree_link_title: "Exibir árvore de saídas BGP em nova página",
378    bgp_tree_prefixes: "Prefixos", bgp_tree_error: "Erro ao carregar",
379    bgp_established_section: "Sessões estabelecidas", bgp_other_section: "Sessões não estabelecidas",
380    bgp_hint_select_collect: "Selecione um host e clique em Coletar BGP.", bgp_hint_other: "Sessões em Idle, Active, Connect, etc.",
381    bgp_table_asn: "ASN", bgp_table_neighbor: "Vizinho", bgp_table_state: "Estado", bgp_table_actions: "Ações",
382    bgp_loading_title: "Coletando BGP", bgp_loading_sessions: "Coletando sessões BGP", bgp_loading_states: "Processando estados (Established / outras)",
383    bgp_done: "BGP coletado com sucesso", bgp_fail: "Falha na coleta.", bgp_sessions_established: "sessão(ões) estabelecida(s).",
384    bgp_modal_asn: "Detalhes do ASN", bgp_modal_prefixes: "Prefixos IP do ASN (RDAP LACNIC):",
385    bgp_routes_title: "Análise de Rotas BGP", bgp_routes_subtitle: "Execute received-routes ou advertised-routes por peer. Use os peers encontrados na descoberta anterior (página BGP).",
386    bgp_tables_title: "Análise de Tabelas (ASN)", bgp_tables_subtitle: "Informe um ASN para buscar os prefixos (whois/RDAP). Escolha um peer estabelecido e valide quais prefixos desse ASN foram recebidos no BGP (received). Prefixos mais específicos contidos em um bloco também são considerados.",
387    nav_bgp_back: "← BGP", nav_bgp_routes: "Análise de Rotas", nav_bgp_tables: "Análise de Tabelas",
388    perfil_title: "Meu perfil",
389    perfil_back: "Voltar ao Dashboard",
390    perfil_data_plan: "Dados e plano",
391    perfil_name_label: "Nome",
392    perfil_plan_current: "Plano atual",
393    perfil_license_time: "Tempo restante",
394    perfil_hosts_usage: "Uso de hosts",
395    perfil_expired_alert: "Sua conta está expirada. Para continuar usando scans, backup e cadastro de hosts, assine um plano abaixo.",
396    perfil_trial_7d_title: "Teste grátis de 7 dias",
397    perfil_trial_7d_intro: "Seu período de teste de 1 hora acabou. Solicite um teste de 7 dias; validaremos e liberaremos por e-mail.",
398    perfil_trial_7d_pending: "Solicitação em análise. Entraremos em contato por e-mail.",
399    perfil_trial_7d_rejected: "Sua solicitação não foi aprovada. Você pode assinar um plano abaixo.",
400    perfil_trial_7d_btn: "Solicitar teste grátis de 7 dias",
401    perfil_trial_7d_sent: "Solicitação enviada. Validaremos e entraremos em contato.",
402    perfil_trial_7d_fail: "Não foi possível enviar. Tente novamente.",
403    perfil_plans: "Planos", perfil_plans_intro: "Plano gratuito para testar. Planos pagos com cobrança mensal (PIX e cartão via Mercado Pago).",
404    perfil_plan_free_name: "Free", perfil_plan_free_price: "Grátis", perfil_plan_free_per: "teste",
405    perfil_plan_free_desc: "5 hosts · teste 7 dias · depois assine um plano pago",
406    perfil_btn_iniciar_free: "Iniciar Free", perfil_plans_paid: "Planos pagos",
407    perfil_desktop_download: "Download do Desktop",
408    perfil_desktop_download_desc: "Baixe os instaladores do Catellix Proxy e Agent para Windows. Cada link é exclusivo da sua conta e expira em 3 dias.",
409    perfil_dl_proxy: "Proxy Engine", perfil_dl_agent: "Agent Engine",
410    perfil_dl_expires: "Links expiram em 3 dias. Volte aqui para gerar novos se necessário.",
411    perfil_dl_error: "Erro ao carregar links de download.",
412    perfil_payments: "Histórico de pagamentos", perfil_payments_loading: "Carregando…",
413    perfil_payments_empty: "Nenhum pagamento registrado.", perfil_table_date: "Data", perfil_table_plan: "Plano",
414    perfil_table_amount: "Valor", perfil_table_status: "Status",
415    perfil_assinar: "Assinar",
416    perfil_flow_name: "Fast Flow - 30d",
417    perfil_flow_license_time: "Licença Fast Flow",
418    perfil_flow_desc: "NetFlow/IPFIX no Proxy. Preço conforme seu plano. Retém 15 dias para análise.",
419    perfil_flow_comprar: "Comprar Flow",
420    flow_title: "Fast Flow - 30d",
421    flow_subtitle: "NetFlow/IPFIX/sFlow no Proxy",
422    flow_hosts_online: "Equipamentos online",
423    flow_toggle_enable: "Habilitar Flow",
424    flow_toggle_disable: "Desabilitar Flow",
425    flow_status_awaiting: "Aguardando flow do host",
426    flow_status_receiving: "Recebendo flow",
427    flow_script_modal_title: "Script de configuração",
428    flow_script_vendor: "Vendor",
429    flow_script_copy: "Copiar",
430    flow_loading_ip: "Carregando IP do coletor...",
431    flow_scan_triggered: "Coleta do equipamento em andamento...",
432    flow_no_hosts_online: "Nenhum equipamento online",
433    flow_license_required: "Licença Fast Flow necessária",
434    flow_iface_limit_reached: "Limite de 5 interfaces por host atingido. Remova uma antes de adicionar.",
435    flow_iface_add_placeholder: "Ex: GigabitEthernet0/0",
436    flow_graph_title: "Tráfego agregado",
437    flow_graph_host_hint: "Selecione o host (exporter) e o período. Dados retidos por 15 dias no SaaS.",
438    flow_period: "Período",
439    flow_filter_prefix: "Prefixo (CIDR)",
440    flow_filter_prefix_placeholder: "ex: 10.0.0.0/8",
441    flow_filter_asn: "ASN",
442    flow_filter_asn_placeholder: "ex: 26599",
443    flow_no_data: "Nenhum dado de flow no período. Ative o flow em um host e envie NetFlow para o IP do Proxy na porta 2055. Dados retidos por 15 dias.",
444    nav_flow: "Fast Flow",
445    welcome_plans_intro: "Plano Free para testar. Planos pagos com cobrança mensal (PIX e cartão).",
446    welcome_plan_free: "Free", welcome_plan_free_price: "Grátis", welcome_plan_free_per: "teste",
447    welcome_plan_free_desc: "5 hosts · teste 7 dias · depois assine um plano pago",
448    welcome_btn_iniciar_free: "Iniciar Free", welcome_plans_paid: "Planos pagos", welcome_assinar: "Assinar",
449    welcome_modal_whatsapp_ok: "Número com WhatsApp.",
450    welcome_modal_whatsapp_nao: "Este número não está no WhatsApp. Por favor, informe um número com comunicação via WhatsApp.",
451    welcome_modal_whatsapp_unavailable: "Não foi possível verificar WhatsApp no momento. Você pode enviar mesmo assim.",
452    welcome_modal_whatsapp_verificando: "Verificando…",
453    welcome_demo_tooltip: "Usado %1 vezes · %2 cliques no botão para ver a plataforma",
454    welcome_btn_mapa_wireless: "Wi-Fi MAP",
455    welcome_btn_detector: "Catellix Detector",
456    welcome_detector_title: "Catellix Detector — estado de serviços, incidentes e tendências",
457    welcome_detector_aria: "Catellix Detector",
458    welcome_quem_somos: "Quem somos",
459    welcome_bottom_nav_aria: "Institucional e redes sociais",
460    mapa_wireless_doc_title: "Wi-Fi MAP",
461    mapa_wireless_back: "← Voltar à welcome",
462    mapa_wireless_menu_open: "Abrir filtros do mapa",
463    mapa_wireless_menu_close: "Fechar filtros do mapa",
464    mapa_wireless_title: "Wi-Fi MAP",
465    mapa_wireless_sub: "OpenStreetMap + Leaflet: vários estilos de mapa ou globo 3D com sinais. Toque para navegar.",
466    mapa_wireless_filter_period: "Período",
467    mapa_wireless_period_7d: "Últimos 7 dias",
468    mapa_wireless_period_15d: "Últimos 15 dias",
469    mapa_wireless_period_30d: "Últimos 30 dias",
470    mapa_wireless_period_60d: "Últimos 60 dias",
471    mapa_wireless_period_6m: "Últimos 6 meses",
472    mapa_wireless_period_1y: "Último ano",
473    mapa_wireless_period_all: "Todo o histórico",
474    mapa_wireless_band_label: "Frequência",
475    mapa_wireless_band_24: "2,4 GHz",
476    mapa_wireless_band_5: "5 GHz",
477    mapa_wireless_points_count: "Pontos: %1",
478    mapa_wireless_loading: "Carregando pontos…",
479    mapa_wireless_load_error: "Não foi possível carregar os pontos.",
480    mapa_wireless_auto_refresh: "Mapa: próxima atualização em %1 s",
481    mapa_wireless_auto_refresh_loading: "Mapa: a atualizar dados…",
482    mapa_wireless_tooltip_band_24: "Wi‑Fi 2,4 GHz",
483    mapa_wireless_tooltip_band_5: "Wi‑Fi 5 GHz",
484    mapa_wireless_tooltip_test: "Teste",
485    mapa_wireless_tooltip_channel: "Canal %1",
486    mapa_wireless_tooltip_updated: "Última atualização no mapa: %1",
487    mapa_wireless_tooltip_samples: "Amostras agregadas (célula): %1",
488    mapa_wireless_confidence_low: "confiança baixa",
489    mapa_wireless_confidence_medium: "confiança média",
490    mapa_wireless_confidence_high: "confiança alta",
491    mapa_wireless_demo_notice: "Pontos enviados pelo Catellix Monitoring a partir de scans Wi‑Fi: coordenadas GPS do momento do teste, banda e canal/frequência do AP mais forte (sem SSID). O envio é automático enquanto o analisador está em uso; «Guardar no mapa» envia um ponto extra já.",
492    mapa_wireless_no_points_in_period: "Nenhum ponto neste período nesta vista. O mapa só lê a tabela pública `mapa_wireless_public_points` (envios do app com consentimento). Abra o analisador Wi‑Fi no Monitoring com GPS; ou alargue o período para «Todo o histórico».",
493    mapa_wireless_filter_state: "Estado",
494    mapa_wireless_filter_city: "Cidade",
495    mapa_wireless_all_brazil: "Mundo (sem filtro por estado)",
496    mapa_wireless_all_cities_state: "Todas as cidades (estado)",
497    mapa_wireless_pick_state: "Escolha o estado primeiro",
498    mapa_wireless_city_hint: "A lista de cidades aparece ao selecionar um estado.",
499    mapa_wireless_points_filtered: "Na área: %1 · No período: %2",
500    mapa_wireless_loc_section: "Área no mapa",
501    mapa_wireless_loc_tab_address: "Morada",
502    mapa_wireless_loc_tab_manual: "Estado / cidade",
503    mapa_wireless_addr_label: "Pesquisar morada",
504    mapa_wireless_addr_placeholder: "Rua, número, bairro ou cidade…",
505    mapa_wireless_addr_clear: "Limpar morada",
506    mapa_wireless_addr_osm_hint:
507        "Sugestões automáticas (OpenStreetMap). Escolha um resultado para mostrar pontos num raio de cerca de 22 km.",
508    mapa_wireless_addr_loading: "A pesquisar…",
509    mapa_wireless_addr_empty: "Sem resultados. Experimente outra morada.",
510    mapa_wireless_addr_rate: "Muitas pesquisas — aguarde um pouco e tente de novo.",
511    mapa_wireless_section_layers: "Camadas e insights",
512    mapa_wireless_section_view: "Vista",
513    mapa_wireless_show_markers: "Pontos no local do teste (GPS)",
514    mapa_wireless_show_pollution: "Polos de concentração",
515    mapa_wireless_show_heat: "Mapa de calor (densidade)",
516    mapa_wireless_heat_hint: "Gradiente de intensidade no mapa 2D; combine com marcadores e polos.",
517    mapa_wireless_pollution_hint: "Círculos amarelos, laranja ou vermelho: mais leituras próximas (ajustam com o zoom).",
518    mapa_wireless_legend_title: "Legenda — concentração",
519    mapa_wireless_legend_low: "Amarelo: poucas leituras próximas",
520    mapa_wireless_legend_mid: "Laranja: concentração média",
521    mapa_wireless_legend_high: "Vermelho claro: maior concentração",
522    mapa_wireless_dark_map: "Mapa base escuro",
523    mapa_wireless_map_tiles_loading: "A carregar mapa e ruas…",
524    mapa_wireless_map_skin: "Estilo do mapa",
525    mapa_wireless_skin_osm: "Padrão OSM (ruas e locais ao aproximar)",
526    mapa_wireless_skin_carto_light: "Claro (poucas etiquetas de rua)",
527    mapa_wireless_skin_carto_dark: "Escuro (CARTO)",
528    mapa_wireless_skin_carto_voyager: "Colorido (vias e nomes)",
529    mapa_wireless_skin_opentopo: "Relevo (OpenTopoMap)",
530    mapa_wireless_skin_esri_sat: "Satélite (Esri)",
531    mapa_wireless_skin_globe: "Globo 3D (sinais + anéis)",
532    mapa_wireless_globe_hint:
533        "Arraste para girar o globo. O fundo usa mosaicos OpenStreetMap: ao aproximar aparecem países, estradas e cidades com mais detalhe (também no telemóvel). Pequenos marcadores = leituras Wi‑Fi; anéis = pulso (amostra).",
534    mapa_wireless_globe_osm_suffix: " — mapa detalhado ao aproximar (como no 2D).",
535    mapa_wireless_fab_toolbar_aria: "Atalhos do mapa: abrir globo 3D ou voltar ao mapa 2D",
536    mapa_wireless_fab_3d: "Globo 3D",
537    mapa_wireless_fab_2d: "Mapa 2D",
538    mapa_wireless_fab_3d_aria: "Abrir visualização em globo 3D com os mesmos pontos",
539    mapa_wireless_fab_2d_aria: "Voltar ao mapa plano 2D (mantém o estilo de mapa que escolheu antes)",
540    mapa_wireless_fab_search_aria: "Pesquisar endereço e centrar o mapa",
541    mapa_wireless_btn_view_address: "Ver endereço",
542    mapa_wireless_btn_view_address_aria: "Abrir pesquisa de morada e centrar o mapa",
543    mapa_wireless_insight_title: "Interferência no centro da vista",
544    mapa_wireless_insight_hint:
545        "Indicativo regional a ~4 km com base em leituras colaborativas (período e bandas iguais aos filtros). O ambiente na sua casa pode variar.",
546    mapa_wireless_insight_level_low: "Baixa",
547    mapa_wireless_insight_level_moderate: "Média",
548    mapa_wireless_insight_level_high: "Alta",
549    mapa_wireless_insight_level_unknown: "Sem dados",
550    mapa_wireless_insight_loading: "A atualizar…",
551    mapa_wireless_insight_error: "Indisponível agora",
552    mapa_wireless_addr_modal_title: "Ir para um endereço",
553    mapa_wireless_addr_modal_sub: "Escreva e escolha um resultado; o mapa centra-se aí com animação.",
554    mapa_wireless_addr_modal_close: "Fechar",
555    mapa_wireless_download_btn: ".: Baixar agora! .:",
556    mapa_wireless_download_aria: "Baixar agora — download do monitor Catellix",
557    mapa_wireless_download_thanks_title: "Obrigado por colaborar!",
558    mapa_wireless_download_thanks_msg: "Ótima escolha — parabéns!",
559    mapa_wireless_download_thanks_sub: "Venha colaborar conosco por um Brasil digital melhor!",
560    mapa_wireless_download_close: "Fechar",
561    mapa_wireless_btn_public_api: "API pública",
562    mapa_wireless_btn_science: "Insights do mapa",
563    mapa_wireless_btn_science_aria: "Abrir painel de insights e estatísticas do mapa colaborativo",
564    mapa_wireless_science_modal_title: "Ciência colaborativa",
565    mapa_wireless_science_modal_intro:
566        "Números agregados em tempo real: quantas leituras já entraram na base científica, quantas células da grelha têm dados fiáveis e como as bandas 2,4 / 5 GHz contribuem. Não contamos — nem armazenamos — identidade de utilizador.",
567    mapa_wireless_science_reload: "Atualizar dados",
568    mapa_wireless_science_loading: "A carregar estatísticas…",
569    mapa_wireless_science_error: "Não foi possível carregar as estatísticas. Tente de novo.",
570    mapa_wireless_science_close: "Fechar",
571    mapa_wireless_science_label_total_readings: "Leituras contributivas (histórico)",
572    mapa_wireless_science_label_gps_points: "Locais únicos no mapa público (GPS)",
573    mapa_wireless_science_label_grid_cells: "Células geográficas com dados (~%1 m de lado)",
574    mapa_wireless_science_label_cell_layers: "Séries célula × banda (agregados)",
575    mapa_wireless_science_conf_section: "Fiabilidade por área (linhas agregadas: alta = ≥5 leituras na célula)",
576    mapa_wireless_science_conf_high: "Alta confiança na célula",
577    mapa_wireless_science_conf_med: "Confiança média (2–4 leituras)",
578    mapa_wireless_science_conf_low: "Confiança inicial (1 leitura)",
579    mapa_wireless_science_band_section: "Distribuição de leituras por banda",
580    mapa_wireless_science_timespan: "Primeira e última leitura registadas (UTC)",
581    mapa_wireless_science_geo_section: "Cobertura geográfica (estimada a partir das coordenadas)",
582    mapa_wireless_science_countries: "Países com pelo menos um ponto",
583    mapa_wireless_science_br_states_caption: "UFs brasileiras com dados (total 27)",
584    mapa_wireless_science_country_codes: "Países (ISO 3166-1 alpha-2):",
585    mapa_wireless_science_uf_codes: "UFs estimadas:",
586    mapa_wireless_science_unclassified:
587        "%1 posição(ões) não couberam nas caixas de país conhecidas (ex.: oceano ou limite impreciso).",
588    mapa_wireless_science_charts_heading: "Visualização analítica (gráficos)",
589    mapa_wireless_science_chart_conf_title: "Confiança estatística por tipo de célula agregada",
590    mapa_wireless_science_chart_band_title: "Distribuição de amostras por banda ISM",
591    mapa_wireless_science_chart_samples_title: "Volumes brutos do conjunto de dados",
592    mapa_wireless_science_chart_geo_title: "Indicadores de cobertura geográfica",
593    mapa_wireless_science_chart_conf_high_short: "Alta (n ≥ 5)",
594    mapa_wireless_science_chart_conf_med_short: "Média (2–4)",
595    mapa_wireless_science_chart_conf_low_short: "Inicial (1)",
596    mapa_wireless_science_chart_conf_ylabel: "Séries (célula × banda)",
597    mapa_wireless_science_chart_lab_samples: "Amostras",
598    mapa_wireless_science_chart_lab_public: "Pontos GPS únicos",
599    mapa_wireless_science_chart_lab_cell_series: "Séries agregadas",
600    mapa_wireless_science_chart_lab_agg_reads: "Σ leituras nas células",
601    mapa_wireless_science_chart_count_short: "Contagem",
602    mapa_wireless_science_chart_lab_countries: "Países (estim.)",
603    mapa_wireless_science_chart_lab_ufs: "UFs BR (estim.)",
604    mapa_wireless_science_footer:
605        "Cada envio aumenta o valor estatístico regional (repetibilidade). O servidor nunca guarda SSID, BSSID nem identificação pessoal — só posição, banda, canal, frequência e metadados técnicos.",
606    mapa_wireless_api_modal_title: "API pública — interferência wireless",
607    mapa_wireless_api_modal_intro:
608        "Integre o seu site ou ferramenta com dados agregados do map
608a colaborativo Catellix. Respostas em JSON, sem chave de API; há limites por IP. A conversão de moradas usa o Nominatim (OpenStreetMap) — use com moderação.",
609    mapa_wireless_api_modal_close: "Fechar",
610    mapa_wireless_api_modal_html:
611        '<h3>1. Morada → coordenadas</h3><p>Com <code>limit=1</code> (omissão) devolve <code>lat</code>, <code>lng</code> e <code>display_name</code>. Com <code>limit=2…8</code> devolve <code>results</code> (lista de sugestões).</p><pre>GET %ORIGIN%/api/public/mapa-wireless/geocode?q=Lisboa%2C%20Portugal\nGET %ORIGIN%/api/public/mapa-wireless/geocode?q=Av.%20Paulista%201000&limit=6</pre><h3>2. Interferência próxima e canais sugeridos</h3><p>Precisa de latitude e longitude (ou use o passo 1). Parâmetros: <code>radius_km</code> (0,5–50), <code>period</code> (7d, 15d, 30d, 60d, 6m, 1y), <code>bands</code> (ex.: 2.4,5), <code>include_points=1</code> para incluir pontos brutos.</p><pre>GET %ORIGIN%/api/public/mapa-wireless/insight?lat=-23.5505&lng=-46.6333&radius_km=4&period=30d&bands=2.4%2C5</pre><p>Em <code>bands → 2.4 → recommended_channels</code> a ordem reflete os canais 1, 6 e 11 com menor carga estimada por sobreposição. Em 5 GHz listam-se canais com menos leituras na área. O campo <code>interference_level</code> vale <code>low</code>, <code>moderate</code>, <code>high</code> ou <code>insufficient_data</code>.</p><h3>3. Morada + análise num só pedido</h3><pre>GET %ORIGIN%/api/public/mapa-wireless/lookup?q=Av.%20Paulista%2C%20S%C3%A3o%20Paulo&radius_km=3&period=30d</pre><p>O corpo combina <code>geocode</code> com a mesma estrutura do insight. O endpoint <code>POST …/contribuir</code> destina-se ao app Catellix Monitoring (novas leituras), não a consultas automatizadas em massa.</p>',
612    mapa_wireless_globe_load_error: "Não foi possível carregar o globo 3D. Voltámos ao mapa padrão.",
613    mapa_wireless_fit_brazil: "Vista mundial",
614    mapa_wireless_my_location: "Usar minha localização",
615    mapa_wireless_your_location_label: "Seu local",
616    mapa_wireless_your_location_tooltip: "Seu local • precisão ±%1",
617    mapa_wireless_your_location_tooltip_manual: "Seu local (aproximado)",
618    mapa_wireless_geo_prompt: "O navegador vai pedir permissão para usar a sua posição e aproximar o mapa.",
619    mapa_wireless_geo_unsupported: "Geolocalização não disponível neste navegador.",
620    mapa_wireless_geo_denied: "Permissão de localização recusada. Ative nas definições do navegador se quiser usar esta função.",
621    mapa_wireless_geo_error: "Não foi possível obter a localização. Tente de novo.",
622    mapa_wireless_geo_outside_br: "Localização aplicada no mapa.",
623    mapa_wireless_precision_note: "No mapa, cada marca tem um deslocamento fixo de alguns metros em relação ao GPS real (menos sobreposição com a via). No servidor mantém‑se precisão total para estatísticas.",
624    mapa_wireless_cluster_tip: "%1 leituras agregadas nesta zona (o zoom muda o agrupamento).",
625    /* Modal genérico de feedback (busca de morada / minha localização) */
626    mapa_wireless_feedback_close: "Fechar",
627    mapa_wireless_feedback_continue: "Continuar",
628    mapa_wireless_feedback_geo_locating_title: "A localizar você no mapa…",
629    mapa_wireless_feedback_geo_locating_msg: "Estamos a obter a sua posição via <strong>GPS / Wi-Fi</strong>. Isto pode demorar alguns segundos consoante o sinal.",
630    mapa_wireless_feedback_geo_ok_title: "Localização confirmada",
631    mapa_wireless_feedback_geo_ok_msg: "Centramos o mapa na sua posição com <strong>%1 m</strong> de precisão estimada.",
632    mapa_wireless_feedback_geo_ok_sub: "O ponto azul \"Você está aqui\" continua visível enquanto navega.",
633    mapa_wireless_feedback_geo_unsupported_title: "Geolocalização indisponível",
634    mapa_wireless_feedback_geo_denied_title: "Permissão recusada",
635    mapa_wireless_feedback_geo_error_title: "Não foi possível localizar",
636    mapa_wireless_feedback_geo_denied_sub: "Ative a permissão de localização nas definições do seu navegador e tente novamente.",
637    mapa_wireless_feedback_geo_error_sub: "Verifique se o GPS está ativo. Em interiores, junto a uma janela costuma ajudar.",
638    mapa_wireless_feedback_addr_searching_title: "A procurar endereço…",
639    mapa_wireless_feedback_addr_searching_msg: "Consultando o <strong>OpenStreetMap (Nominatim)</strong> e a base do Catellix.",
640    mapa_wireless_feedback_addr_ok_title: "Endereço aplicado",
641    mapa_wireless_feedback_addr_ok_msg: "Centramos o mapa em <strong>%1</strong>.",
642    mapa_wireless_feedback_addr_ok_sub: "Mostramos as leituras Wi-Fi num raio de cerca de <strong>%1 km</strong> em volta deste ponto.",
643    mapa_wireless_feedback_addr_empty_title: "Endereço não encontrado",
644    mapa_wireless_feedback_addr_empty_sub: "Tente escrever de outra forma — rua, número, bairro, cidade ou código postal.",
645    mapa_wireless_feedback_addr_rate_title: "Aguarde um momento",
646    mapa_wireless_feedback_addr_rate_sub: "Demasiadas pesquisas em sequência. O OpenStreetMap pediu-nos para abrandar.",
647    mapa_wireless_feedback_stat_radius: "Raio",
648    mapa_wireless_feedback_stat_points: "Leituras",
649    mapa_wireless_feedback_stat_accuracy: "Precisão",
650    mapa_wireless_feedback_stat_lat: "Latitude",
651    mapa_wireless_feedback_stat_lng: "Longitude",
652    /* Painel científico do polo de concentração */
653    mapa_wireless_cluster_pop_title_low: "Polo de concentração — densidade baixa",
654    mapa_wireless_cluster_pop_title_mid: "Polo de concentração — densidade média",
655    mapa_wireless_cluster_pop_title_high: "Polo de concentração — densidade alta",
656    mapa_wireless_cluster_pop_sub: "Análise científica de %1 leituras Wi-Fi colaborativas agregadas em torno deste ponto.",
657    mapa_wireless_cluster_stat_samples: "Amostras",
658    mapa_wireless_cluster_stat_samples_hint: "Leituras independentes (BSSID + timestamp) somadas neste polo.",
659    mapa_wireless_cluster_stat_radius: "Raio do polo",
660    mapa_wireless_cluster_stat_radius_hint: "Raio estimado do agrupamento espacial em metros (grade adaptativa ao zoom).",
661    mapa_wireless_cluster_stat_density: "Densidade",
662    mapa_wireless_cluster_stat_density_hint: "Leituras por km² na vizinhança imediata.",
663    mapa_wireless_cluster_stat_dominant: "Banda dominante",
664    mapa_wireless_cluster_stat_dominant_hint: "Banda 2,4 GHz vs 5 GHz com maior número de leituras.",
665    mapa_wireless_cluster_quality_ok: "<strong>Interferência baixa.</strong> A relação amostras/área e a distribuição em canais 1, 6 e 11 (2,4 GHz) ou 36–165 (5 GHz) sugerem um ambiente <strong>com pouca sobreposição</strong>. Recomenda-se preferir 5 GHz onde houver cobertura.",
666    mapa_wireless_cluster_quality_mid: "<strong>Interferência moderada.</strong> Há sinais suficientes a sobrepor canais adjacentes em 2,4 GHz (Hz/Δf não-ortogonais). Aconselha-se análise via API <code>/insight</code> para canais com menor carga estimada.",
667    mapa_wireless_cluster_quality_bad: "<strong>Interferência alta.</strong> Densidade elevada de redes em canais sobrepostos: a SNR efetiva tende a degradar (modelo Shannon-Hartley com noise floor agregado). Forte recomendação para migrar tráfego crítico para 5 GHz/6 GHz com canais 80 MHz.",
668    mapa_wireless_cluster_quality_insufficient: "<strong>Dados insuficientes.</strong> Esta zona ainda tem poucas amostras para um diagnóstico robusto. Continue a colaborar com o app Catellix Monitoring para aumentarmos a confiança estatística (n ≥ 20 por polo é o alvo do dataset).",
669    mapa_wireless_cluster_bar_24: "<strong>%1</strong> leituras 2,4 GHz",
670    mapa_wireless_cluster_bar_5: "<strong>%1</strong> leituras 5 GHz",
671    mapa_wireless_cluster_foot: "Confiança estatística <strong>%1</strong>. Metodologia: agregação por grade <em>quadtree-like</em> + média ponderada por amostras (n_samples). Conjunto aberto disponível em <strong>/api/public/mapa-wireless/insight</strong> para reprodutibilidade científica.",
672    mapa_wireless_cluster_confidence_high: "alta (n ≥ 20)",
673    mapa_wireless_cluster_confidence_med: "média (10 ≤ n < 20)",
674    mapa_wireless_cluster_confidence_low: "baixa (n < 10)",
675    mapa_wireless_cluster_close: "Fechar painel",
676    mapa_wireless_cluster_dominant_24: "2,4 GHz",
677    mapa_wireless_cluster_dominant_5: "5 GHz",
678    mapa_wireless_cluster_dominant_mixed: "Mista",
679    mapa_wireless_tester_strip:
680        "<strong>Catellix Kids (APK):</strong> faça o download do nosso app — estamos em <strong>homologação na Play Store</strong>. Quer ser <strong>tester oficial</strong>?",
681    mapa_wireless_tester_cta: "Clique aqui",
682    mapa_wireless_tester_open_link: "Quer ser testador oficial do APK?",
683    mapa_wireless_tester_modal_title: "Ser tester oficial do APK",
684    mapa_wireless_tester_modal_intro:
685        "Informe seu <strong>e-mail @gmail.com</strong> (o mesmo da sua conta Google). Enviaremos o pedido à equipa para o cadastro na lista de testadores da Play Store.",
686    mapa_wireless_tester_email_label: "Seu Gmail",
687    mapa_wireless_tester_email_placeholder: "[email protected]",
688    mapa_wireless_tester_gmail_hint: "Apenas endereços @gmail.com. Não enviamos spam.",
689    mapa_wireless_tester_submit: "Enviar pedido",
690    mapa_wireless_tester_modal_close: "Fechar",
691    mapa_wireless_tester_success_title: "Parabéns pela escolha!",
692    mapa_wireless_tester_success_body:
693        "Você acaba de dar um passo que faz diferença: <strong>testar antes de todos</strong> ajuda a melhorar o produto para milhares de pessoas. Quem colabora com <strong>comunidades</strong> e compartilha feedback sincero constrói tecnologia mais humana — <strong>obrigado por caminhar com a gente nisso.</strong>",
694    mapa_wireless_tester_success_deadline:
695        "⏱️ Nosso time responde por e-mail e <strong>insere o seu Gmail no grupo de testes da Play Store em até 24 horas</strong> (dias úteis). Confira caixa de entrada, promoções e spam.",
696    mapa_wireless_tester_success_cta: "Combinado — mal posso esperar!",
697    mapa_wireless_tester_success:
698        "Obrigado! Em até <strong>24 horas</strong> você receberá as instruções por e-mail. Verifique a caixa de entrada e o spam.",
699    mapa_wireless_tester_err_gmail: "Use um endereço que termine em @gmail.com.",
700    mapa_wireless_tester_err_rate: "Muitas tentativas. Aguarde um minuto e tente novamente.",
701    mapa_wireless_tester_err_generic: "Não foi possível enviar. Tente de novo em instantes.",
702    mapa_wireless_tester_err_network: "Erro de rede. Verifique a ligação e tente novamente.",
703    err_expired_message: "Sua conta está expirada.", err_expired_cta: "Acesse Perfil para assinar um plano e continuar.",
704    err_expired_link: "Acesse Perfil", err_expired_after: "para assinar um plano e continuar.",
705    settings_title: "Configurações", settings_backup_reports: "Relatórios de backup",
706    settings_email_label: "Email para relatório", settings_email_hint: "Usado ao fim de ca
706da coleta agendada. Se deixar em branco, usa o email de login.",
707    settings_phone_label: "Telefone (opcional)", settings_phone_hint: "Contato opcional. Informe com código do país.",
708    settings_slack_label: "Slack – Webhook do canal", settings_slack_hint: "Crie um Incoming Webhook no Slack (App > Incoming Webhooks) e cole a URL aqui. O relatório de backup será enviado para o canal que você escolher.",
709    settings_slack_test: "Enviar teste para o Slack",
710    settings_telegram_label: "Telegram – Bot e grupo", settings_telegram_token_hint: "Token do Bot (obtido com @BotFather no Telegram).",
711    settings_telegram_chat_hint: "ID do grupo ou canal (use @userinfobot para ver seu ID; para grupo, use um número negativo). Quando o backup terminar, o relatório será enviado também para este grupo.",
712    settings_telegram_test: "Enviar teste para o Telegram",
713    settings_integrations: "Integrações API", settings_zabbix_label: "Zabbix – Usuário e senha",
714    settings_zabbix_url_hint: "URL da API JSON-RPC do Zabbix (ex.: https://zabbix.servidor.com/api_jsonrpc.php).",
715    settings_zabbix_user_placeholder: "Usuário (ex: Admin)", settings_zabbix_password_placeholder: "Senha (deixe em branco para não alterar)",
716    settings_zabbix_password_hint: "Autenticação por usuário e senha. A senha é armazenada criptografada. Algumas versões do Zabbix não aceitam token.",
717    settings_netbox_label: "NetBox – Token", settings_netbox_url_hint: "URL base da API do NetBox (ex.: https://netbox.servidor.com/api/).",
718    settings_netbox_token_placeholder: "Cole o token aqui (deixe em branco para não alterar)",
719    settings_netbox_token_hint: "Conexão apenas por token. Cole o token de autenticação; ele será armazenado criptografado.",
720    settings_save: "Salvar", settings_timezone_label: "Fuso horário", settings_language_label: "Idioma",
721    settings_country_detected: "País detectado pelo IP do acesso",
722    settings_email_too_long: "Email muito longo.", settings_email_invalid: "Informe um email válido (ex: [email protected]).",
723    settings_phone_too_short: "Número muito curto. Use código do país + DDD + número (mín. 10 dígitos).",
724    settings_phone_too_long: "Número muito longo (máx. 15 dígitos).",
725    settings_saved: "Configurações salvas com sucesso!", settings_error: "Erro ao salvar configurações.",
726    pin_protected_title: "Página protegida por PIN",
727    pin_protected_message: "Solicite um código por e-mail ou digite seu PIN de 6 dígitos. O desbloqueio vale por 45 minutos.",
728    pin_placeholder: "PIN (6 dígitos)",
729    pin_btn_continue: "Continuar",
730    pin_btn_send_email: "Enviar PIN por e-mail",
731    pin_btn_cancel: "Cancelar",
732    pin_continue: "Continuar",
733    pin_send_email: "Enviar PIN por e-mail",
734    pin_error: "PIN incorreto ou expirado. Solicite um novo código por e-mail.",
735    pin_error_code_wrong: "Código incorreto. Verifique o número recebido por e-mail.",
736    pin_error_code_expired: "Código expirado. Solicite um novo por e-mail.",
737    pin_error_pin_wrong: "PIN incorreto. Tente novamente ou solicite um código por e-mail.",
738    pin_error_no_pin: "Solicite um código por e-mail (botão acima) ou defina um PIN no Perfil.",
739    pin_6_digits: "O PIN deve ter exatamente 6 dígitos numéricos.",
740    pin_session_expired: "Sessão expirada. Faça login novamente.",
741    pin_sent_message: "Código enviado para seu e-mail. Digite abaixo.",
742    pin_unlocked_45min: "Desbloqueado por 45 minutos.",
743    pin_wait_minute: "Aguarde 1 minuto para solicitar outro código.",
744    ospf_title: "OSPF – Vizinhos", ospf_subtitle: "Colete vizinhos OSPF do equipamento. Adjacências em estado Full e demais estados (2-Way, Init, Down, etc.) são exibidas por vendor.",
745    ospf_collect_section: "Coletar vizinhos OSPF", ospf_select_host: "Selecione um host", ospf_btn_collect: "Coletar OSPF",
746    ospf_btn_diagram: "Gerar desenho da rede", ospf_hint_cmd: "O comando OSPF é escolhido automaticamente conforme o vendor (Cisco, Juniper, MikroTik, Huawei, Nokia, Arista, Fortinet, etc.). Após coletar, use «Gerar desenho da rede» para exportar um .drawio com a topologia.",
747    ospf_loading_title: "Coletando OSPF", ospf_loading_status: "Preparando...", ospf_step_connect: "Conectando ao equipamento",
748    ospf_step_collect: "Coletando vizinhos OSPF", ospf_step_process: "Processando estados (Full / outras)", ospf_step_finish: "Finalizando",
749    ospf_done: "OSPF coletado com sucesso", ospf_fail: "Falha na coleta.", ospf_hint_select: "Selecione um host e clique em Coletar OSPF.",
750    ospf_neighbors_full: "vizinho(s) em Full.",
751    ospf_topo_title: "Topologia OSPF – Roteadores conectados",
752    ospf_topo_subtitle: "Visualização da mesma topologia que você exporta para Draw.io. Host no centro, vizinhos OSPF ao redor.",
753    layer2_title: "Layer 2", layer2_subtitle: "VLANs e interfaces (estatísticas, taxa de erro). Comandos por vendor para dados de rede Layer 2.",
754    layer2_collect_section: "Coletar Layer 2", layer2_btn_collect: "Coletar Layer 2",
755    layer2_hint_cmd: "VLANs criadas e informações de interfaces (erros, CRC). Cisco, Juniper, Huawei, Nokia, Arista, MikroTik, etc.",
756    layer2_vlans_section: "VLANs", layer2_interfaces_section: "Interfaces (description / erros / CRC)", layer2_hint_vlans: "Execute a coleta para listar as VLANs.",
757    layer2_hint_interfaces: "Interfaces com dados de erro quando disponíveis.",
758    layer2_col_description: "Description", layer2_col_status: "Status", layer2_status_up: "Up", layer2_status_down: "Down",
759    layer2_lacp_section: "LACP / Port-Channel (validação)", layer2_lacp_members: "Members", layer2_lacp_status: "Status", layer2_hint_lacp: "Execute a coleta para listar e validar LACP/EtherChannel (Cisco, Arista, Juniper, Huawei, Dell).",
760    layer2_loading_title: "Coletando Layer 2", layer2_loading_status: "Coletando…", layer2_loading_done: "Concluído",
761    layer2_step_connect: "Conectando ao equipamento", layer2_step_collect: "Coletando VLANs / interfaces", layer2_step_process: "Processando dados",
762    mpls_title: "MPLS", mpls_subtitle: "Validação do protocolo MPLS: LDP, interfaces MPLS e comandos por vendor (Cisco, Juniper, Huawei, Nokia, Fortinet, MikroTik, etc.).",
763    mpls_collect_section: "Coletar MPLS", mpls_btn_collect: "Coletar MPLS", mpls_hint_cmd: "Executa comandos MPLS (LDP neighbor, interfaces MPLS) conforme o vendor do equipamento.",
764    mpls_raw_section: "Saída MPLS (raw)", mpls_hint_raw: "Execute a coleta para exibir a saída dos comandos MPLS.",
765    mpls_hint_chars: "caracteres.", mpls_hint_logs: "Logs da sessão SSH e coleta.", mpls_log_count: "log(s).",
766    mpls_source_label: "Fonte: ", mpls_source_snmp: "SNMP", mpls_source_ssh: "SSH/CLI",
767    mpls_dashboard: "Resumo MPLS", mpls_peers_operational: "Sessões LDP operacionais", mpls_peers_total: "Total de peers LDP", mpls_interfaces_count: "Interfaces MPLS",
768    mpls_ldp_sessions: "Sessões LDP (vizinhos)", mpls_peer_address: "Peer / Endereço", mpls_ldp_id: "LDP ID", mpls_state: "Estado", mpls_interface: "Interface", mpls_holdtime: "Hold time",
769    mpls_interfaces_section: "Interfaces MPLS", mpls_enabled: "Habilitada", mpls_labels: "Labels", mpls_raw_toggle: "Ver saída bruta do equipamento",
770    mpls_loading_title: "Coletando MPLS", mpls_loading_status: "Coletando…", mpls_loading_done: "Concluído",
771    mpls_step_connect: "Conectando ao equipamento", mpls_step_collect: "Coletando LDP / MPLS", mpls_step_process: "Processando dados",
772    aurix_intelligence_label: "Aurix Intelligence",
773    gmud_title: "Gestão de Mudanças (GMUD)", gmud_back: "Voltar ao Dashboard",
774    gmud_step1_title: "Passo 1 – Host (obrigatório)", gmud_step1_desc: "A GMUD deve estar atrelada a um equipamento. Selecione o host.",
775    gmud_step1_label: "Equipamento", gmud_step1_select: "— Selecione um host —", gmud_step1_btn: "Continuar",
776    gmud_step2_title: "Passo 2 – Dados da GMUD", gmud_step2_tecnico_nome: "Contato do técnico local (nome)",
777    gmud_step2_tecnico_contato: "Contato do técnico (e-mail ou telefone)", gmud_step2_nome_gmud: "Nome da GMUD",
778    gmud_step2_nome_pop: "Nome do POP", gmud_step2_equipamentos: "Equipamentos envolvidos",
779    gmud_step2_horario: "Horário previsto", gmud_step2_descricao: "Descrição da mudança (opcional)",
780    gmud_step2_justificativa: "Justificativa (opcional)", gmud_step2_impacto: "Análise de impacto (opcional)",
781    gmud_step2_rollback: "Plano de rollback (opcional)", gmud_step2_btn_back: "Voltar",
782    gmud_step2_btn_review: "Revisar e gerar",
783    gmud_step3_title: "Passo 3 – Revisão e downloads", gmud_step3_desc: "Confira os dados e baixe o documento GMUD (HTML/PDF) e o backup atual do equipamento.",
784    gmud_step3_doc_title: "Documento GMUD", gmud_step3_doc_desc: "HTML com logo Catellix, pronto para imprimir ou salvar como PDF.",
785    gmud_step3_doc_download: "Baixar GMUD (HTML)", gmud_step3_doc_print: "Abrir e imprimir / PDF",
786    gmud_step3_backup_title: "Backup do equipamento", gmud_step3_backup_desc: "Backup provisório atual (não gravado em banco). Para anexar à GMUD.",
787    gmud_step3_backup_download: "Baixar backup", gmud_step3_btn_back: "Voltar aos dados",
788    gmud_placeholder_nome: "Nome completo", gmud_placeholder_contato: "e-mail e/ou telefone",
789    gmud_placeholder_gmud: "Ex: GMUD-2024-001", gmud_placeholder_pop: "Ex: POP-SP-Centro",
790    gmud_placeholder_equipamentos: "Lista de equipamentos ou links",
791    gmud_placeholder_horario: "Ex: 02/12/2024 02:00–04:00 (janela)", gmud_placeholder_descricao: "Descreva o escopo da mudança",
792    gmud_placeholder_justificativa: "Motivo da mudança", gmud_placeholder_impacto: "Impacto esperado",
793    gmud_placeholder_rollback: "Como reverter em caso de falha",
794    gmud_alert_select_host: "Selecione um host.", gmud_alert_generating: "Gerando...",
795    gmud_alert_error_doc: "Erro ao gerar documento.", gmud_alert_getting_backup: "Obtendo backup...",
796    gmud_alert_error_backup: "Erro ao obter backup.",
797    welcome_hero_title: "Toda a sua rede em um só painel.",
798    welcome_hero_what_we_do: "Roteadores, switches e firewalls — monitoramento centralizado e confiável.",
799    welcome_hero_desc: "<strong>Aurix</strong>: dados de rede em informação clara para decisões rápidas.",
800    welcome_hero_ecosystem_label: "MULTI-VENDOR",
801    welcome_hero_vendors_aria: "Fabricantes e plataformas suportados",
802    welcome_hero_vendor_camera_title: "Câmeras IP",
803    welcome_deco_kw_alertas: "Alertas",
804    welcome_cta_platform: "Ir para plataforma →",
805    welcome_cta_diferencial: "Conheça nosso diferencial",
806    welcome_btn_ver_planos: "Ver planos",
807    welcome_plans_modal_title: "Planos Catellix",
808    welcome_plans_modal_intro: "Compare mensal e anual em cada cartão. Use o interruptor ou clique em <strong>Mensal</strong> / <strong>Anual</strong> em qualquer cartão — o período vale ao assinar. No anual: <strong>10% OFF</strong> sobre 12 mensalidades.",
809    welcome_plans_modal_close_aria: "Fechar janela de planos",
810    welcome_plans_teaser_hint: "Planos pagos, valores mensal e anual e add-on Fast Flow — abra para comparar.",
811    welcome_check_updates: "Procurar atualizações",
812    welcome_checking: "Verificando...",
813    welcome_update_available: "Nova versão disponível: {0}",
814    welcome_update_download: "Deseja abrir a página de download?",
815    welcome_update_ok: "Você está com a versão mais recente.",
816    welcome_update_error: "Não foi possível verificar atualizações. Verifique sua conexão.",
817    welcome_what_we_do_block: "A Catellix vende um <strong>
817serviço de software por assinatura</strong> para empresas que operam redes corporativas. Sua equipe de engenharia usa um só lugar para fazer backup dos equipamentos, rodar diagnósticos e automatizar checagens repetitivas — para poder focar no que realmente importa.",
818    welcome_benefits_section_title: "✨ Por que importa",
819    welcome_benefits_title: "Benefícios para sua equipe",
820    welcome_benefits_1_title: "Troubleshooting mais fácil",
821    welcome_benefits_1_desc: "Encontre e corrija problemas de rede mais rápido.",
822    welcome_benefits_2_title: "Economia de hora-homem",
823    welcome_benefits_2_desc: "Menos tempo em tarefas manuais e repetitivas.",
824    welcome_benefits_3_title: "Foco no que importa",
825    welcome_benefits_3_desc: "A engenharia pode priorizar resultados e projetos em vez de rotinas operacionais.",
826    welcome_benefits_4_title: "Menos trabalho repetitivo",
827    welcome_benefits_4_desc: "Backups, checagens e coletas rodam de forma automática.",
828    welcome_features_intro: "Centralize a gestão de ambientes multivendor — Cisco, Juniper, Huawei, Nokia, Arista, MikroTik, Fortinet e outros — em um único lugar.",
829    welcome_software_features_section: "✨ Recursos do software",
830    welcome_software_features_heading: "O que a plataforma oferece",
831    welcome_features_multivendor: "Gerencie hosts, backups, protocolos, tarefas agendadas e diagnósticos, com informações claras e acesso via desktop ou mobile.",
832    welcome_new_features_title: "🆕 Novas funcionalidades implementadas",
833    welcome_new_feature_tasks_title: "Tasks",
834    welcome_new_feature_tasks_desc: "Agende comandos SSH por host (uma vez ou diariamente).",
835    welcome_new_feature_lg_title: "Looking Glass",
836    welcome_new_feature_lg_desc: "Consulta de prefixos BGP em LGs do Brasil e internacionais.",
837    welcome_new_feature_flow_title: "Flow (análise de tráfego)",
838    welcome_new_feature_dashban_title: "DashBan (Kanban)",
839    welcome_new_feature_cameras_sync_title: "Sincronismo de câmeras externas",
840    welcome_feature_1: "<strong>Gestão de hosts</strong> — Scan automático e detecção de vendor/firmware",
841    welcome_feature_2: "<strong>Backup e coleta</strong> — Por host, agendamento diário, retenção configurável e relatório por e-mail",
842    welcome_feature_3: "<strong>Disaster recovery</strong> — Backup no primeiro scan, disponível para restore",
843    welcome_feature_4: "<strong>Tarefas</strong> — Comandos SSH agendados (única vez ou diário), relatório de execução",
844    welcome_feature_5: "<strong>BGP</strong> — Vizinhos, rotas e análise por host, múltiplos vendors",
845    welcome_feature_6: "<strong>OSPF</strong> — Vizinhos, custos, topologia e diagrama",
846    welcome_feature_7: "<strong>Layer 2</strong> — VLANs e interfaces (estatísticas, erros) por vendor",
847    welcome_feature_8: "<strong>MPLS</strong> — LDP, interfaces MPLS por vendor",
848    welcome_feature_9: "<strong>Ferramentas</strong> — Ping, traceroute, DNS, porta, HTTP, SSL, RPKI e outras checagens",
849    welcome_feature_10: "<strong>Relatório Ping/traceroute (Aurix)</strong> — Conectividade e rota com interpretação inteligente",
850    welcome_feature_11: "<strong>Port scanner</strong> — Portas abertas e serviço por host",
851    welcome_feature_12: "<strong>GMUD</strong> — Gestão de Mudanças com documento e expansão de texto opcional",
852    welcome_feature_13: "<strong>Dashboard</strong> — Visão geral, gráficos e topologia",
853    welcome_feature_14: "<strong>Planos e assinatura</strong> — Limite de hosts por plano",
854    welcome_feature_15: "<strong>Sub-usuários</strong> — Até 6 vinculados à conta com herança de licença",
855    welcome_feature_16: "<strong>Multi timezone e idioma</strong> — Fuso e locale por usuário",
856    welcome_feature_17: "<strong>Login</strong> — E-mail/senha e Google OAuth",
857    welcome_feature_18: "<strong>Integrações</strong> — Telegram, Slack, Zabbix e NetBox",
858    welcome_section_heart: "⚙️ O coração da plataforma",
859    welcome_aurix_title: "Aurix",
860    welcome_aurix_intro: "Nem todo dado tem valor. Valor nasce da interpretação.",
861    welcome_aurix_badge: "Aurix ← Aurion · aurum",
862    welcome_aurix_origin: "<strong>Aurix</strong> vem de <em>Aurion</em>, palavra de raiz latina ligada a <em>aurum</em> — ouro. Desde a antiguidade, o ouro simboliza:",
863    welcome_aurix_gold1: "valor real",
864    welcome_aurix_gold2: "permanência",
865    welcome_aurix_gold3: "confiança",
866    welcome_aurix_desc: "Aurix é o motor analítico da Catellix. É ele que transforma dados brutos da rede em valor real.",
867    welcome_aurix_does: "Aurix:",
868    welcome_aurix_feat1: "correlaciona logs",
869    welcome_aurix_feat2: "analisa estados de rede",
870    welcome_aurix_feat3: "cruza eventos",
871    welcome_aurix_feat4: "apoia troubleshooting",
872    welcome_aurix_feat5: "revela padrões invisíveis no dia a dia",
873    welcome_section_story: "🌐 A história por trás do nome",
874    welcome_catellix_title: "Catellix",
875    welcome_catellix_intro: "A Catellix nasceu de raízes familiares e se consolidou como uma startup criada para impactar o mundo.",
876    welcome_catellix_origin: "O nome <strong>Catellix</strong> deriva do sobrenome Catellani, transformado propositalmente para:",
877    welcome_catellix_feat1: "perder o caráter pessoal",
878    welcome_catellix_feat2: "ganhar sonoridade técnica",
879    welcome_catellix_feat3: "se tornar universal",
880    welcome_catellix_suffix: "O sufixo <strong>\"-ix\"</strong> foi escolhido por sua forte associação histórica com sistemas Unix, engenharia, infraestrutura e confiabilidade.",
881    welcome_catellix_base: "<strong>Catellix</strong> representa a base — a estrutura onde dados de rede são coletados, preservados e organizados com precisão.",
882    welcome_tagline_pt: "Catellix fornece a base. Aurix revela o valor.",
883    welcome_tagline_en: "Catellix is the foundation. Aurix is the intelligence.",
884    welcome_section_plans: "📋 Planos",
885    welcome_plans_title: "Escolha seu plano",
886    welcome_req_agent_title: "Requisitos – Catellix Agent",
887    welcome_req_proxy_title: "Requisitos – Catellix Proxy",
888    welcome_preview_title: "📊 Preview da Plataforma",
889    welcome_preview_subtitle: "Veja como funciona",
890    welcome_preview_dashboard_label: "Dashboard",
891    welcome_preview_hosts_label: "Cadastro de Hosts",
892    welcome_preview_backup_label: "Backup e Coleta",
893    welcome_preview_bgp_label: "BGP",
894    welcome_preview_gmud_label: "Gestão de Mudanças",
895    welcome_preview_settings_label: "Configurações",
896    welcome_preview_ospf_label: "OSPF",
897    welcome_preview_tools_label: "Ferramentas",
898    welcome_preview_traceroute_label: "Traceroute",
899    welcome_preview_prev_aria: "Slide anterior",
900    welcome_preview_next_aria: "Próximo slide",
901    welcome_contact_title: "✉️ Fale conosco",
902    welcome_contact_subtitle: "Dúvidas ou sugestões",
903    welcome_contact_name: "Nome",
904    welcome_contact_email: "E-mail",
905    welcome_contact_message: "Mensagem",
906    welcome_contact_placeholder_name: "Seu nome",
907    welcome_contact_placeholder_email: "[email protected]",
908    welcome_contact_placeholder_msg: "Dúvidas, sugestões ou feedback...",
909    welcome_contact_send: "Enviar",
910    welcome_accessing_from: "Acessando de: ",
911    welcome_contact_sent: "Mensagem enviada. Obrigado pelo contato!",
912    welcome_contact_error: "Erro ao enviar. Tente de novo.",
913    welcome_ticket_modal_hint: "Ao enviar, você recebe um <strong>código de abertura</strong> por e-mail e nossa equipe é notificada automaticamente. Origem: página de monitoramento (Catellix).",
914    welcome_ticket_success_code: "Seu código de abertura:",
915    welcome_footer_dev: "Catellix © 2026",
916    welcome_chat_ticket_hint: "Para abrir um ticket oficial (com protocolo), use o botão «Abrir ticket» no final da página.",
917    welcome_tagline_social: "— Conectando o futuro, hoje.",
918    welcome_page_title: "Catellix — Soluções em Rede",
919    login_alert_error: "Erro ao fazer login.",
920    login_alert_fill_email: "Preencha o email.",
921    login_alert_fill_password: "Preencha a senha.",
922    login_alert_invalid: "Dados inválidos: ",
923    login_alert_check: "verifique email e senha.",
924    login_alert_connect: "Erro ao conectar com o servidor.",
925    login_alert_google_token: "Erro: Token não recebido do Google",
926    login_alert_google_error: "Erro ao fazer login com Google: ",
927    login_google_not_configured: "Login Google não configurado",
928    login_google_load_error: "Erro ao carregar Google",
929    welcome_plan_basic30_name: "Basic 30", welcome_plan_basic30_desc: "Até 30 hosts.",
930    welcome_plan_basic90_name: "Basic 90", welcome_plan_basic90_desc: "Até 90 hosts.",
931    welcome_plan_pro200_name: "Pro 200", welcome_plan_pro200_desc: "Até 200 hosts.",
932    welcome_plan_pro400_name: "Pro 400", welcome_plan_pro400_desc: "Até 400 hosts.",
933    welcome_plan_pro800_name: "Pro 800", welcome_plan_pro800_desc: "Até 800 hosts.",
934    welcome_plan_advanced1200_name: "Advanced 1200", welcome_plan_advanced1200_desc: "Até 1200 hosts.",
935    welcome_plan_advanced2400_name: "Advanced 2400", welcome_plan_advanced2400_desc: "Até 2400 hosts.",
936    welcome_plan_advanced3600_name: "Advanced 3600", welcome_plan_advanced3600_desc: "Até 3600 hosts.",
937    welcome_plan_unlimited_name: "Unlimited", welcome_plan_unlimited_desc: "Ilimitado.",
938    welcome_plan_month: "/ mês",
939    welcome_plan_year: "/ ano",
940    welcome_plan_flag_monthly: "Mensal",
941    welcome_plan_flag_annual: "Anual",
942    welcome_plan_annual_pct_badge: "Economize 10%",
943    welcome_plan_row_aria_monthly: "Selecionar cobrança mensal para todos os planos",
944    welcome_plan_row_aria_annual: "Selecionar cobrança anual com 10% de desconto (equivalente a 10% off nas 12 mensalidades)",
945    welcome_back_inicio: "← Voltar ao início",
946    welcome_billing_annual_badge: "10% off no anual · Inclui Fast Flow 365 no anual",
947    welcome_billing_annual_flow365: "10% off no anual + Fast Flow 365",
948    welcome_flow_addon_title: "〰 Fast Flow - 30d",
949    welcome_flow_addon_desc: "NetFlow, IPFIX e sFlow no Proxy. Coleta de tráfego agregado por equipamento. O Flow pode ser ativado após adquirir uma licença. O preço varia conforme seu plano:",
950    welcome_flow_annual_hero_badge: "Benefício enterprise",
951    welcome_flow_addon_title_annual: "Fast Flow 365 incluído no plano anual",
952    welcome_flow_addon_desc_annual: "Na cobrança anual, o módulo <strong>Fast Flow</strong> entra em bundle com retenção estendida (<strong>365 dias</strong>) no tier correspondente à sua licença — tráfego agregado (NetFlow, IPFIX, sFlow) no Proxy, sem precisar assinar o add-on à parte.",
953    welcome_flow_included_in_annual: "Incluído no anual",
954    welcome_plan_flow_addon_label: "Add-on do módulo",
955    welcome_plan_flow_included_annual_short: "Fast Flow 365 incluso no anual — add-on absorvido no bundle.",
956    welcome_flow_card_365_note: "Plano anual: retenção <strong>365 dias</strong> — Fast Flow em bundle neste tier.",
957    welcome_flow_addon_cta: "Ver no Perfil",
958    welcome_flow_per_month: "/ mês",
959    welcome_flow_tag_15d: "15d retido",
960    welcome_flow_tag_15d_title: "Retém apenas 15 dias de dados para análise de Flow",
961    welcome_flow_tier_basic: "Basic", welcome_flow_tier_basic_per: "Para licença Basic",
962    welcome_flow_tier_pro: "Pro", welcome_flow_tier_pro_per: "Para licença Pro",
963    welcome_flow_tier_advanced: "Advanced", welcome_flow_tier_advanced_per: "Para licença Advanced",
964    welcome_flow_tier_unlimited: "Unlimited", welcome_flow_tier_unlimited_per: "Para licença Unlimited",
965    welcome_plan_contract_badge: "+ Vendido",
966    perfil_plan_basic30_desc: "Até 30 hosts", perfil_plan_basic90_desc: "Até 90 hosts",
967    perfil_plan_pro200_desc: "Até 200 hosts", perfil_plan_pro400_desc: "Até 400 hosts",
968    perfil_plan_pro800_desc: "Até 800 hosts", perfil_plan_advanced1200_desc: "Até 1200 hosts",
969    perfil_plan_advanced2400_desc: "Até 2400 hosts", perfil_plan_advanced3600_desc: "Até 3600 hosts",
970    perfil_plan_unlimited_desc: "Ilimitado",
971    welcome_plan_basic10_name: "Basic 10", welcome_plan_basic10_desc: "Até 10 hosts.",
972    welcome_plan_pro100_name: "Pro 100", welcome_plan_pro100_desc: "Até 100 hosts.",
973    welcome_plan_advanced800_name: "Advanced 800", welcome_plan_advanced800_desc: "Até 800 hosts.",
974    welcome_plan_advanced1600_name: "Advanced 1600", welcome_plan_advanced1600_desc: "Até 1600 hosts.",
975    perfil_plan_basic10_desc: "Até 10 hosts", perfil_plan_pro100_desc: "Até 100 hosts",
976    perfil_plan_advanced800_desc: "Até 800 hosts", perfil_plan_advanced1600_desc: "Até 1600 hosts",
977    perfil_plan_month: "/ mês", perfil_unlimited_text: "Ilimitado",
978    perfil_alert_plan_not_found: "Erro: Plano não identificado. Recarregue a página e tente novamente.",
979    perfil_alert_session_expired: "Sessão expirada. Redirecionando para login...",
980    perfil_alert_msg_not_found: "Erro: Elemento de mensagem não encontrado. Recarregue a página.",
981    perfil_redirecting: "Redirecionando para o pagamento…",
982    perfil_processing: "Processando...",
983    perfil_payments_error: "Erro ao carregar.",
984    perfil_email_label: "E-mail:",
985    perfil_error_mp_token: "Token do Mercado Pago inválido. Entre em contato com o suporte.",
986    perfil_error_session_expired: "Sessão expirada. Faça login novamente.",
987    perfil_error_connect: "Não foi possível conectar ao servidor. Verifique sua conexão.",
988    perfil_error_mp_comm: "Erro ao comunicar com Mercado Pago. ",
989    perfil_error_mp_check: "Verifique se o token está configurado no servidor.",
990    perfil_error_unavailable: "Serviço temporariamente indisponível. Tente novamente em alguns instantes.",
991    perfil_error_server: "Erro no servidor. Tente novamente mais tarde.",
992    perfil_error_checkout: "Erro ao criar checkout. ",
993    perfil_error_mp_config: "Integração com Mercado Pago em configuração. Em breve você poderá assinar aqui.",
994    perfil_error_connect_server: "Erro ao conectar com o servidor. ",
995    perfil_error_connect_check: "Não foi possível conectar ao servidor. Verifique:",
996    perfil_error_connect_check1: "1. Se o servidor está rodando",
997    perfil_error_connect_check2: "2. Sua conexão com a internet",
998    perfil_error_connect_check3: "3. Se há bloqueio de firewall",
999    perfil_error_unknown: "Erro desconhecido. Verifique o console para mais detalhes.",
1000    perfil_error_details: "Detalhes: ",
1001    perfil_senha_conta: "Senha da conta",
1002    perfil_senha_atual: "Senha atual",
1003    perfil_senha_nova: "Nova senha",
1004    perfil_senha_confirm: "Confirmar nova senha",
1005    perfil_salvar_senha: "Salvar senha",
1006    cad_lock_title: "🔒 Senha do host",
1007    cad_lock_label: "Nova senha do host:",
1008    cad_lock_placeholder: "Digite a senha",
1009    cad_lock_cancel: "Cancelar",
1010    cad_lock_save: "Salvar",
1011    cad_lock_alert_empty: "Digite uma senha.",
1012    cad_lock_saving: "Salvando...",
1013    cad_lock_saved: "Senha salva.",
1014    cad_lock_error: "Erro ao salvar.",
1015    cad_logs_title: "📋 Logs do Scan - ",
1016    cad_logs_result: "Resultado:",
1017    cad_logs_last_scan: "Último scan:",
1018    cad_status_last_check: "Última verificação:",
1019    cad_status_interval: "Verificação: sob demanda (botão Escanear).",
1020    cad_logs_none: "Nenhum scan realizado ainda. Clique em \"Atualizar\" para escanear.",
1021    cad_logs_no_logs: "Nenhum log disponível. Execute um scan para ver os logs detalhados.",
1022    cad_backup_title: "📄 Configuração do Host",
1023    cad_backup_dr: "Disaster Recovery:",
1024    cad_backup_last_update: "Este backup é mantido automaticamente para recuperação de desastres. Última atualização:",
1025    cad_backup_lines: "linhas",
1026    cad_backup_chars: "caracteres",
1027    cad_backup_copy: "📋 Copiar",
1028    cad_backup_download: "💾 Download",
1029    cad_backup_close: "Fechar",
1030    cad_backup_loading: "Carregando backup...",
1031    cad_backup_none_title: "Nenhum backup disponível",
1032    cad_backup_none_desc: "Execute um scan para criar o backup da configuração deste equipamento.",
1033    cad_backup_none_scan: "🔍 Executar Scan",
1034    cad_backup_error_title: "Erro ao carregar backup",
1035    cad_backup_error_desc: "Não foi possível carregar o backup. Tente novamente.",
1036    cad_backup_copy_success: "Backup copiado para a área de transferência!",
1037    cad_backup_copy_error: "Erro ao copiar backup.",
1038    cad_backup_download: "💾 Baixar",
1039    cad_backup_download_error: "Nenhum backup para download.",
1040    cad_logs_copy_success: "Logs copiados para a área de transferência!",
1041    cad_logs_copy_error: "Erro ao copiar logs.",
1042    cad_delete_confirm: "Remover este host?\nEsta ação não pode ser desfeita.",
1043    cad_delete_selected_confirm: "Remover %1 host(s) selecionado(s)?\nEsta ação não pode ser desfeita.",
1044    cad_btn_delete_selected: "selecionados · Excluir",
1045    cad_delete_selected_progress: "Excluindo...",
1046    cad_delete_selected_done: "%1 host(s) removido(s).",
1047    cad_msg_saved: "Alterações salvas.",
1048    cad_msg_host_removed: "Host removido.",
1049    cad_scan_started_bg: "Scan iniciado em background. O status será atualizado quando concluir.",
1050    cad_scan_running: "Scan em andamento",
1051    cad_scan_finished: "Scan finalizado.",
1052    cad_scan_timeout: "Scan em background. Atualize a página para ver o resultado.",
1053    cad_msg_host_remove_error: "Erro ao remover host.",
1054    cad_msg_host_added: "Host adicionado e configurado com sucesso!",
1055    cad_msg_host_added_scan_issue: "⚠ Host adicionado, mas o scan teve problemas.",
1056    cad_msg_host_added_no_id: "Host adicionado, mas não foi possível obter o ID para scan.",
1057    cad_msg_error_add: "Erro ao adicionar host: ",
1058    cad_filter_count: "de",
1059    tasks_title: "Tarefas", tasks_back: "Voltar ao Dashboard", tasks_menu: "Menu", tasks_dashboard: "Dashboard", tasks_cad_hosts: "Cadastro de Hosts", tasks_backup: "Backup e Coleta", tasks_tasks: "Tarefas", tasks_tools: "Ferramentas", tasks_settings: "Configurações", tasks_logout: "Sair",
1060    tasks_hint: "Agende comandos SSH para executar em um host uma vez ou diariamente. Edição permitida até 10 min antes da execução.",
1061    tasks_schedule_title: "Agendamento", tasks_host: "Host", tasks_select_host: "Selecione um host", tasks_commands_label: "Comandos (um por linha)", tasks_commands_placeholder: "Ex: show run...", tasks_type: "Tipo", tasks_once: "Uma vez", tasks_daily: "Diariamente", tasks_datetime: "Data e hora", tasks_time_daily: "Horário (diário)", tasks_drag_hint: "↑↓ arraste, scroll ou clique", tasks_timezone: "Timezone", tasks_btn_schedule: "Agendar",
1062    tasks_scheduled_title: "Tasks agendadas", tasks_th_host: "Host", tasks_th_next: "Próxima execução", tasks_th_type: "Tipo", tasks_th_commands: "Comandos", tasks_th_actions: "Ações", tasks_empty: "Nenhuma task agendada. Use o card acima para criar uma.",
1063    tasks_report_btn: "Relatório", tasks_report_title: "Relatório de tasks", tasks_report_close: "Fechar", tasks_report_hint: "Histórico de execuções. Clique em «Ver comandos» ou «Ver saída» para o conteúdo completo.", tasks_report_empty: "Nenhuma execução registrada ainda.", tasks_th_date: "Data/Hora", tasks_th_status: "Status", tasks_th_output: "Saída", tasks_ver_comandos: "Ver comandos", tasks_ver_saida: "Ver saída", tasks_retorno_btn: "Retorno", tasks_retorno_aguardando: "Aguardando...", tasks_historico_title: "Histórico de execuções", tasks_historico_hint: "Tasks já realizadas. Histórico permanente. Use os botões para ver o comando envi
1063ado e a resposta do equipamento.", tasks_th_cmd_executed: "Comando executado", tasks_th_response: "Resposta recebida", tasks_cmd_executed: "Comando executado", tasks_response_received: "Resposta recebida",
1064    tasks_modal_comandos_title: "Comandos da task", tasks_modal_no_edit: "Não é possível editar", tasks_modal_no_edit_desc: "A execução está em menos de 10 minutos. Você pode cancelar esta task e agendar outra com os comandos desejados.", tasks_modal_edit_commands: "Editar comandos (um por linha)", tasks_modal_close: "Fechar", tasks_modal_save: "Salvar",
1065    tasks_modal_report_title: "Detalhe do relatório", tasks_modal_commands_sent: "Comandos enviados", tasks_modal_output: "Saída do equipamento",
1066    tasks_ver_editar: "Ver / Editar comandos", tasks_btn_edit: "Editar", tasks_btn_cancel: "Cancelar", tasks_confirm_cancel: "Cancelar esta task? Ela sairá da lista de agendadas.",
1067    tasks_run_now: "Executar agora", tasks_status_running: "Executando task em {{host}}…", tasks_status_done: "Execução concluída.", tasks_status_fail: "Execução falhou.",
1068    tasks_status_cancelling: "Cancelando…", tasks_status_cancelled: "Task cancelada.", tasks_status_saving: "Salvando…", tasks_status_updated: "Comandos atualizados.", tasks_status_scheduling: "Agendando…", tasks_status_scheduled: "Task agendada.", tasks_status_loading_report: "Carregando relatório…",
1069    tasks_err_save: "Erro ao salvar.", tasks_err_create: "Erro ao criar task.", tasks_err_edit_msg: "Não é possível editar: a execução está em menos de 10 minutos. Você pode cancelar esta task e agendar outra com os comandos desejados.", tasks_alert_one_command: "Informe pelo menos um comando.", tasks_alert_host_and_commands: "Selecione um host e informe pelo menos um comando (um por linha).", tasks_alert_datetime: "Informe a data e hora para execução única.", tasks_badge_success: "Sucesso", tasks_badge_fail: "Falha",
1070    admin_back_dash: "Voltar ao Dashboard", admin_reload: "Recarregar página", admin_denied: "Acesso negado. Apenas administradores podem acessar esta página.",
1071    admin_cupons_title: "Manager – Cupons e licenças expiradas", admin_cupons_section1: "Usuários com licença expirada", admin_cupons_section1_desc: "Lista de titulares com licença expirada (possíveis clientes para envio de cupom).", admin_cupons_load: "Carregar lista",
1072    admin_cupons_section2: "Criar cupom", admin_cupons_section2_desc: "Gere um cupom de desconto para um plano específico.", admin_cupons_create: "Criar cupom",
1073    admin_whatsapp_title: "Manager – Vendas WhatsApp (Provedores)", admin_whatsapp_section1: "Mensagem para contato", admin_whatsapp_section1_desc: "Digite a mensagem que será pré-preenchida ao abrir o WhatsApp. Você pode editar antes de enviar.",
1074    admin_quick_template: "Modelo rápido:", admin_whatsapp_manager_cupons: "Manager – Cupons",
1075    relatorio_investidor_title: "Relatório Investidor", relatorio_manager_title: "Relatório – Funções Manager e Chat",
1076    fp_back_inicio: "← Voltar ao início",
1077    fp_toc_constructor: "Aurix Constructor", fp_toc_flow: "Flow (análise de tráfego)", fp_toc_dashban: "DashBan (Kanban)", fp_toc_pop: "POP Monitoring (Câmeras IP)",
1078    fp_visao_li1: "Dashboard: Visão geral com KPIs (números de hosts, backups, etc.), gráficos e topologia da rede.",
1079    fp_visao_li2: "Atividade: Últimas ações e eventos na plataforma.",
1080    fp_visao_li4: "Dash$ (Impact): Aba do dashboard que mostra métricas de impacto e custos — quanto as falhas ou eventos da rede representam em tempo e dinheiro. Em linguagem simples: você vê o \"custo\" dos problemas por período ou por local, para tomar decisões com base em números.",
1081    fp_visao_li5: "Configurações (Settings): Página onde você define suas preferências: fuso horário, idioma (Português/Inglês) e integrações (Telegram, Slack, etc.). Tudo em um só lugar, sem precisar ser técnico.",
1082    fp_visao_li3: "Página de boas-vindas (welcome): Acesso ao site pode registrar localização aproximada por IP; opcionalmente o visitante pode compartilhar localização por GPS para relatórios do gestor.",
1083    fp_constructor_title: "🧠 Aurix Constructor", fp_constructor_intro: "Assistente especializado em comandos de rede. O Constructor entrega comandos prontos e personalizados para diversos fabricantes de equipamentos de rede, com contexto dos seus próprios backups e histórico de interações.",
1084    fp_constructor_ready: "Comandos prontos por fabricante", fp_constructor_ready_desc: "Pergunte em linguagem natural sobre comandos de rede e receba respostas específicas para Cisco, Juniper, MikroTik, Huawei, Arista, Aruba, Fortinet, Palo Alto, Nokia e outros fabricantes. O Constructor entende o contexto da sua pergunta e entrega comandos prontos para uso.",
1085    fp_constructor_context: "Contexto dos seus equipamentos", fp_constructor_context_desc: "O Constructor utiliza os backups das configurações dos seus equipamentos cadastrados para fornecer comandos precisos e compatíveis com o seu ambiente. Filtre por fabricante para respostas ainda mais específicas.",
1086    fp_constructor_history: "Histórico de interações", fp_constructor_history_desc: "O sistema aprende com cada conversa, melhorando continuamente as respostas baseadas no histórico de interações anteriores. Quanto mais você usa, mais preciso fica.",
1087    fp_constructor_soon: "Execução nos hosts (em breve)", fp_constructor_soon_desc: "Em breve, você poderá executar os comandos gerados diretamente nos seus equipamentos cadastrados, sem precisar copiar e colar manualmente. O Constructor se integrará com o sistema de Tasks para execução automática e segura.",
1088    fp_flow_title: "〰 Flow — Análise de tráfego da sua rede", fp_flow_intro: "Para quem não é técnico: Flow é como um contador de carros numa rodovia, mas para pacotes de dados na sua rede. A Catellix coleta e analisa o tráfego que passa pelos seus equipamentos e mostra, em linguagem simples, quem está falando com quem, quais aplicações consomem mais banda e se há algo fora do comum.",
1089    fp_flow_what: "O que Flow faz na prática", fp_flow_what_desc: "Você enxerga o tráfego da sua rede sem precisar ser especialista. A plataforma agrupa conexões por origem, destino, aplicação (ex.: streaming, navegação, VPN) e exibe gráficos e tabelas. Dá para saber, por exemplo, qual equipamento ou usuário está consumindo mais banda, quais serviços estão ativos e se há tráfego suspeito ou não autorizado.",
1090    fp_flow_why: "Por que isso é poderoso", fp_flow_why_desc: "Antes, você precisava de ferramentas caras e complexas para entender o tráfego. Agora, a Catellix integra essa análise na mesma plataforma onde você já gerencia hosts, backups e câmeras. Tudo em um só lugar: veja o que está acontecendo na sua rede, identifique gargalos e tome decisões baseadas em dados reais.",
1091    fp_flow_source: "De onde vêm os dados", fp_flow_source_desc: "O Flow usa dados de NetFlow, sFlow ou IPFIX exportados pelos seus roteadores e switches. Basta habilitar a exportação no equipamento e apontar para o Proxy ou para a plataforma. A Catellix agrega, processa e apresenta as informações de forma clara e acionável.",
1092    fp_dashban_title: "📋 DashBan — Kanban da sua operação", fp_dashban_intro: "Para quem não é técnico: Kanban é um quadro com colunas — como aqueles quadros de post-its que muitas empresas usam. No DashBan, cada \"post-it\" é uma atividade ou tarefa. Você arrasta os cards de uma coluna para outra conforme o progresso (ex.: Pendente → Em execução → Concluído). Simples de usar e extremamente eficaz para organizar o trabalho da equipe.",
1093    fp_dashban_what: "O que o DashBan oferece", fp_dashban_what_desc: "Crie cards com título, descrição, checklist e responsável. Associe cada atividade a um host do cadastro ou a um alerta (ex.: equipamento offline). Use tags para organizar por tema. Acompanhe o progresso com barra de conclusão e cronômetro de tempo por card. Tudo integrado ao resto da plataforma: hosts, alertas e equipe em um só fluxo de trabalho.",
1094    fp_dashban_why: "Por que isso é poderoso", fp_dashban_why_desc: "Você não precisa de outra ferramenta para gerenciar tarefas. Quando um host cai, o alerta aparece no dashboard e você pode criar um card no DashBan na hora, vinculando a atividade ao equipamento. Quando termina, marca como concluído e acompanha o tempo gasto. A Catellix unifica operação de rede e gestão de atividades em uma única experiência.",
1095    fp_dashban_stats: "Estatísticas e visão do time", fp_dashban_stats_desc: "Veja quanto tempo cada membro da equipe gastou em atividades, quantos cards foram finalizados e a distribuição por tags. O DashBan oferece métricas claras para entender a produtividade e o volume de trabalho, ajudando gestores a tomar decisões baseadas em dados reais.",
1096    fp_pop_title: "POP Monitoring (Câmeras IP)", fp_pop_intro: "Módulo de monitoramento visual dos POPs (Pontos de Presença) via câmeras IP. Permite cadastrar, visualizar e acompanhar câmeras em tempo real diretamente pela plataforma — tanto na rede local quanto remotamente pela web.",
1097    fp_pop_cad: "Cadastro de câmeras", fp_pop_cad_desc: "Cadastro de câmeras IP com nome, POP, protocolo (MJPEG, HLS, RTSP, ONVIF), URL, MAC, usuário e senha. Suporta qualquer câmera IP com protocolo padrão.",
1098    fp_pop_live: "Visualização ao vivo (MJPEG, HLS e RTSP)", fp_pop_live_desc: "Stream ao vivo diretamente no navegador. Para câmeras MJPEG e HLS, o proxy repassa o stream direto. Para câmeras RTSP (incluindo H.265/HEVC), o Proxy converte para MJPEG usando PyAV ou OpenCV, permitindo visualização mesmo de câmeras que o navegador não suporta nativamente.",
1099    fp_pop_status: "Monitoramento de status (UP/DOWN)", fp_pop_status_desc: "Verificação periódica do status de cada câmera em background. Detecta câmeras offline e exibe alertas com resolução e tempo de inatividade. Indicadores visuais na tela com contagem de câmeras online e offline.",
1100    fp_pop_onvif: "ONVIF Discovery", fp_pop_onvif_desc: "Resolução automática de câmeras ONVIF: a plataforma descobre a URL RTSP real da câmera a partir do protocolo ONVIF, sem necessidade de configuração manual.",
1101    fp_pop_remote: "Acesso remoto às câmeras (de qualquer lugar)", fp_pop_remote_desc: "Veja suas câmeras de qualquer lugar do mundo, direto pelo navegador — mesmo que elas estejam na rede interna da empresa. Basta ter o Desktop Proxy rodando na mesma rede das câmeras. Não precisa abrir portas, c
1101onfigurar VPN ou ter IP público. O Proxy cria uma conexão segura com a nuvem e entrega as imagens para você onde estiver.",
1102    fp_pop_proxy: "Indicador de conexão do Proxy", fp_pop_proxy_desc: "A interface web exibe em tempo real se o Desktop Proxy está conectado ao cloud via tunnel. Quando conectado, as câmeras em rede local ficam acessíveis remotamente. Quando desconectado, a plataforma informa que o Desktop App precisa estar ativo.",
1103    fp_pop_sync: "Sincronismo de câmeras externas", fp_pop_sync_desc: "O Proxy verifica periodicamente o status (UP/DOWN) de cada câmera na rede local e envia o resultado para a nuvem via tunnel. A plataforma exibe o estado sincronizado de todas as câmeras, alertas de indisponibilidade e tempo de inatividade, permitindo monitorar câmeras externas de forma centralizada.",
1104    fp_toc_pop_funcoes: "Funções de POP (cadastro, endereço e custos)",
1105    fp_pop_funcoes_title: "Funções de POP — cadastro, endereço e custos de incidentes",
1106    fp_pop_funcoes_intro: "Além das câmeras, a plataforma permite cadastrar cada ponto de presença (POP) com nome e endereço, e levantar os custos dos incidentes por local. Em linguagem simples: você organiza onde está cada unidade e consegue mostrar para a gestão quanto cada falha custou em tempo e dinheiro.",
1107    fp_pop_cadastro_pop: "Cadastro de POP",
1108    fp_pop_cadastro_pop_desc: "Você cadastra cada ponto de presença (POP) com um nome e um endereço. Assim, toda a equipe sabe onde fica cada unidade e consegue organizar câmeras, equipamentos e alertas por local. Fica fácil saber \"qual POP\" quando algo acontece.",
1109    fp_pop_endereco: "Endereço do POP",
1110    fp_pop_endereco_desc: "Cada POP tem seu endereço completo (rua, cidade, CEP). Isso ajuda na documentação, no deslocamento da equipe e em relatórios para a diretoria ou parceiros. Tudo fica registrado em um só lugar.",
1111    fp_pop_custos_incidentes: "Custos de incidentes",
1112    fp_pop_custos_incidentes_desc: "Quando acontece um incidente (queda de link, equipamento fora do ar, etc.), você pode registrar e associar ao POP. A plataforma ajuda a levantar quanto cada evento custou em tempo, deslocamento e impacto. Assim você mostra para a gestão o custo real das falhas por local e toma decisões com base em números — por exemplo, onde vale mais investir em redundância ou manutenção.",
1113    fp_hosts_li1: "Cadastro de hosts: Inclusão de roteadores, switches e firewalls (IP, credenciais, tipo de acesso SSH/Telnet).",
1114    fp_hosts_li2: "Scan automático: Detecção de fabricante (vendor) e versão de firmware ao conectar no equipamento.",
1115    fp_hosts_li3: "Scan Cad Host: Fluxo guiado para cadastrar e escanear hosts passo a passo.",
1116    fp_hosts_li4: "Análise de hosts: Visão consolidada dos hosts cadastrados e seu estado.",
1117    fp_hosts_li5: "Latência por host: Medição de tempo de resposta (ping) por equipamento.",
1118    fp_hosts_li6: "Histórico de latência: Gráficos e relatórios de latência ao longo do tempo.",
1119    fp_backup_li1: "Backup por host: Cópia da configuração de cada equipamento (por fabricante: Cisco, Juniper, Huawei, Nokia, MikroTik, Fortinet, etc.).",
1120    fp_backup_li2: "Agendamento diário: Backups podem ser programados para rodar todo dia em horário definido.",
1121    fp_backup_li3: "Retenção configurável: Quantos backups antigos manter (ex.: últimos 30 dias).",
1122    fp_backup_li4: "Relatório por e-mail: Envio de resumo dos backups por e-mail.",
1123    fp_backup_li5: "Disaster recovery (restore): Restauração da configuração a partir de um backup salvo. Backup no primeiro scan fica disponível para restore.",
1124    fp_backup_li6: "Histórico de backups: Lista de todos os backups por host com data e conteúdo (quando aplicável).",
1125    fp_tasks_li1: "Comandos SSH agendados: Execução de um comando em um host em data/hora marcada (uma vez) ou repetida (ex.: diariamente).",
1126    fp_tasks_li2: "Relatório de execução: Registro do resultado de cada execução (sucesso ou falha, saída do comando).",
1127    fp_tasks_li3: "Fast Task: Execução rápida de comando em um host, sem agendar.",
1128    fp_proto_li1: "BGP: Sessões e vizinhos BGP por host; rotas anunciadas/recebidas; árvore de exits (BGP exits tree); análise por ASN (tabelas). Vários fabricantes.",
1129    fp_proto_li2: "OSPF: Vizinhos OSPF, custos, topologia e diagrama da rede.",
1130    fp_proto_li3: "Layer 2: VLANs e interfaces (estatísticas, erros) por equipamento e fabricante.",
1131    fp_proto_li4: "MPLS: LDP e interfaces MPLS por fabricante.",
1132    fp_tools_ping: "Ping", fp_tools_ping_desc: "Testa se um host ou IP está respondendo; mostra latência (tempo de ida e volta) e perda de pacotes. Pode usar um host já cadastrado (busca por nome) e definir quantos pacotes enviar (1 a 20). Resultado com cores por faixa de latência (verde, amarelo, laranja, vermelho).",
1133    fp_tools_tr: "Traceroute", fp_tools_tr_desc: "Mostra o caminho (saltos) da sua rede até o destino. Diferencial AuriX: além do resultado \"cru\" do Linux, exibe uma tabela inteligente com cada salto, RTT e cores por latência; ajuda a ver onde está o atraso ou a falha na rota. Pode usar host cadastrado como origem.",
1134    fp_tools_dns: "DNS Lookup", fp_tools_dns_desc: "Consulta DNS: você digita um domínio e obtém registros A (IPv4), AAAA (IPv6), MX (e-mail), NS (servidores de nome). Útil para conferir se o DNS está correto antes de apontar um serviço.",
1135    fp_tools_port: "Port Check", fp_tools_port_desc: "Verifica se uma porta TCP específica (ex.: 22, 80, 443) está aberta em um IP ou host. Resposta: aberta ou fechada. Ideal para checar SSH, web, banco, etc.",
1136    fp_tools_http: "HTTP Check", fp_tools_http_desc: "Acessa uma URL (HTTP ou HTTPS) e devolve o código de status (200, 404, 500…) e o tempo de resposta. Serve para saber se o site está no ar e quão rápido responde.",
1137    fp_tools_scan: "Port Scanner", fp_tools_scan_desc: "Varre várias portas comuns (ex.: 21, 22, 23, 80, 443, 3306…) em um host e indica quais estão abertas e qual serviço costuma rodar em cada uma. Diferencial: visão consolidada \"quais portas estão abertas nesse equipamento\".",
1138    fp_tools_banner: "Banner Grabber", fp_tools_banner_desc: "Conecta em uma porta TCP e lê o banner que o serviço envi
1138a (ex.: versão do SSH, do Apache). Ajuda a identificar o software e a versão que está rodando naquela porta.",
1139    fp_tools_ssl: "SSL Checker", fp_tools_ssl_desc: "Analisa o certificado SSL/TLS de um servidor HTTPS (validade, emissor, domínios). Mostra se o certificado está válido, próximo de vencer ou com problema.",
1140    fp_tools_rdns: "Reverse DNS", fp_tools_rdns_desc: "Dado um IP, retorna o nome (registro PTR) configurado para ele. Útil para conferir se o IP está com PTR correto (ex.: para e-mail não cair em spam).",
1141    fp_tools_bl: "Blacklist Check", fp_tools_bl_desc: "Verifica se um IP está em listas de bloqueio (blacklists) usadas por anti-spam. Indica em quais listas o IP aparece, se aparecer.",
1142    fp_tools_rpki: "RPKI Validation", fp_tools_rpki_desc: "Valida se um prefixo de IP (BGP) está autorizado (ROA) para o AS que anuncia. Resposta: válido ou inválido. Ajuda a detectar vazamentos ou anúncios não autorizados.",
1143    fp_tools_ipv4: "Calculadora IPv4", fp_tools_ipv4_desc: "Calculadora de rede: a partir de um IP e máscara (ou CIDR), mostra rede, broadcast, primeiro e último IP utilizável, quantidade de hosts. Roda no navegador (não usa servidor).",
1144    fp_tools_ipv6: "Calculadora IPv6", fp_tools_ipv6_desc: "Calculadora para IPv6: prefixo e range (ex.: /64). Ajuda a conferir blocos e intervalos. Também local (navegador).",
1145    fp_analise_li1: "Análise de rede: Ping e traceroute com interpretação inteligente (AuriX): conectividade e rota com leitura clara do resultado.",
1146    fp_analise_li2: "Análise periódica: Medições de ping e/ou traceroute agendadas (ex.: a cada X minutos); histórico e relatório.",
1147    fp_analise_li3: "Relatório de conectividade e rota: Resumo das medições para diagnóstico rápido.",
1148    fp_lg_li1: "Consulta de prefixos BGP: Consulta em Looking Glasses (LGs) do Brasil e internacionais: você informa um prefixo ou IP e vê como a rota aparece nesses pontos da rede.",
1149    fp_gmud_li1: "Documento de mudança: Geração de documento de mudança (GMUD) com os dados da alteração planejada.",
1150    fp_gmud_li2: "Backup provisório: Backup da configuração antes da mudança, vinculado ao GMUD.",
1151    fp_gmud_li3: "Expansão de texto: Opção de expandir ou enriquecer o texto do documento com sugestões automáticas.",
1152    fp_ipam_li1: "Estrutura ASN / prefixo / alocação: Organização de blocos de IP por ASN, prefixos e alocações (quem usa qual faixa).",
1153    fp_ipam_li2: "Sugestão de IPs livres: A plataforma sugere endereços ou blocos livres dentro de um prefixo.",
1154    fp_ipam_li3: "Exportar Excel: Exportação da estrutura IPAM para planilha.",
1155    fp_ipam_li4: "RPKI (opcional): Integração com validação RPKI no contexto do IPAM.",
1156    fp_srv_li1: "Servidores Linux: Cadastro de servidores Linux; execução de comandos via terminal integrado (conectar e rodar comandos sem sair da plataforma).",
1157    fp_srv_li2: "Servidores Windows: Cadastro com host (IP ou nome), porta RDP (ex.: 3389 ou personalizada), usuário e senha. Acesso à área de trabalho do Windows via navegador (RDP via Guacamole): na mesma janela ou em nova aba. Nome da conexão no Guacamole aparece como \"Nome (IP:porta)\" (ex.: \"DC-01 (192.168.1.10:3389)\").",
1158    fp_srv_li3: "Conta Guacamole por usuário: Cada usuário da plataforma pode ter uma conta no Guacamole com o mesmo e-mail e senha; as conexões RDP que ele tem permissão aparecem ao abrir o Guacamole.",
1159    fp_rel_li1: "Relatórios: Relatórios da plataforma (ex.: relatório de tasks, de ping/latência, etc.).",
1160    fp_rel_li2: "Subbrowser (AuriX Intelligence browser): Navegador interno que abre uma página configurável (ex.: página de documentação ou ferramenta interna); símbolo \"AuriX\" na interface.",
1161    fp_int_li1: "Telegram: Envio de notificações para um grupo ou canal no Telegram.",
1162    fp_int_li2: "Slack: Envio de mensagens para um canal no Slack.",
1163    fp_int_li3: "Zabbix: Integração com Zabbix (monitoramento).",
1164    fp_int_li4: "NetBox: Integração com NetBox (inventário e DCIM).",
1165    fp_admin_li1: "Usuários: Lista de usuários; alteração de licença (plano); exclusão de usuário.",
1166    fp_admin_li2: "Hosts: Visão geral de todos os hosts da plataforma; detalhe por host.",
1167    fp_admin_li3: "Tasks: Visão das tasks agendadas na plataforma.",
1168    fp_admin_li4: "Histórico de login: Registro de acessos (login) dos usuários.",
1169    fp_admin_li5: "Perfil: Visualização e edição dos dados da conta e do plano contratado.",
1170    fp_admin_li6: "Assinatura: Contratação e renovação via Mercado Pago (PIX e cartão); planos com limite de hosts (Basic 10, Basic 30, Pro 100, Pro 200, Pro 400, Unlimited).",
1171    fp_admin_li7: "Histórico de pagamentos: Listagem dos pagamentos realizados.",
1172    fp_admin_li8: "Sub-usuários: Até 6 sub-usuários vinculados à conta principal; herdam a licença (limite de hosts do plano).",
1173    fp_admin_li9: "PIN: Proteção extra: PIN configurável; pode ser enviado por e-mail; verificação antes de acessar certas áreas sensíveis.",
1174    fp_admin_li10: "Alterar senha: Troca de senha na própria conta (logado).",
1175    fp_admin_li11: "Preferências: Fuso horário e idioma por usuário.",
1176    fp_admin_li12: "Recuperar / redefinir senha: Solicitação de redefinição por e-mail e tela para definir nova senha.",
1177    w2_hero: "Tudo que sua rede precisa, em um só lugar",
1178    w2_sub: "A Catellix ajuda você a cuidar dos equipamentos da sua rede: backup automático, alertas no celular e uma tela única para ver o que está funcionando — sem precisar ser expert em tecnologia.",
1179    w2_cta: "Entrar na plataforma →",
1180    w2_what_title: "O que a Catellix faz por você",
1181    w2_what_p: "Pense na Catellix como um assistente para sua rede: ela guarda cópias das configurações dos seus equipamentos, avisa quando algo sai do ar e de
1181ixa tudo organizado em um único painel. Funciona com as marcas que você já usa (Cisco, Juniper, Huawei e outras) e pode ser acessada pelo celular ou pelo computador.",
1182    w2_ben1_title: "Nunca perca a configuração dos seus equipamentos",
1183    w2_ben1_desc: "Backup automático e agendado. Se algo der errado, você tem uma cópia segura para restaurar.",
1184    w2_ben2_title: "Saiba quando algo sai do ar",
1185    w2_ben2_desc: "Monitoramento e alertas por e-mail, Telegram ou Slack. Você é avisado antes que vire problema.",
1186    w2_ben3_title: "Tudo na mesma tela",
1187    w2_ben3_desc: "Um painel único com status dos equipamentos, gráficos e visão da sua rede — sem abrir várias telas.",
1188    w2_ben4_title: "Tarefas que rodam sozinhas",
1189    w2_ben4_desc: "Agende comandos e relatórios para rodar no horário que você escolher. O resultado chega no seu e-mail.",
1190    w2_ben5_title: "Funciona com o que você já tem",
1191    w2_ben5_desc: "Cisco, Juniper, Huawei, Nokia, MikroTik, Fortinet e outras marcas. Um só lugar para todos.",
1192    w2_ben6_title: "Documente mudanças com um clique",
1193    w2_ben6_desc: "Gere documentos de mudança (GMUD) e guarde o backup do equipamento junto, para auditoria ou histórico.",
1194    w2_tagline_pt: "Catellix é a base onde sua rede fica organizada. Aurix é a inteligência que transforma os dados em informação útil.",
1195    w2_tagline_en: "Catellix is the foundation. Aurix is the intelligence.",
1196    w2_plans_title: "Comece quando quiser",
1197    w2_plans_intro: "Plano grátis para testar. Planos pagos com cobrança mensal (PIX ou cartão).",
1198    w2_plan_free: "Free", w2_plan_free_price: "Grátis", w2_plan_free_per: "/ teste",
1199    w2_plan_free_desc: "5 equipamentos · 7 dias de teste · depois você escolhe um plano pago.",
1200    w2_plan_cta_free: "Começar grátis",
1201    w2_plans_paid: "Planos pagos",
1202    w2_plan_basic10: "Basic 10", w2_plan_basic30: "Basic 30", w2_plan_pro100: "Pro 100", w2_plan_pro200: "Pro 200", w2_plan_pro400: "Pro 400", w2_plan_unlimited: "Unlimited",
1203    w2_plan_desc_10: "Até 10 equipamentos.", w2_plan_desc_30: "Até 30 equipamentos.", w2_plan_desc_100: "Até 100 equipamentos.", w2_plan_desc_200: "Até 200 equipamentos.", w2_plan_desc_400: "Até 400 equipamentos.", w2_plan_desc_unl: "Ilimitado.",
1204    w2_plan_month: "/ mês", w2_assinar: "Assinar",
1205    w2_link_tech: "Ver versão técnica da página →",
1206    w2_contact_title: "Fale conosco",
1207    w2_contact_desc: "Dúvidas ou sugestões? Envie uma mensagem.",
1208    w2_contact_name: "Nome", w2_contact_email: "E-mail", w2_contact_msg: "Mensagem",
1209    w2_contact_ph_name: "Seu nome", w2_contact_ph_email: "[email protected]", w2_contact_ph_msg: "Como podemos ajudar?",
1210    w2_btn_send: "Enviar",
1211    w2_contact_ok: "Mensagem enviada. Obrigado pelo contato!",
1212    w2_contact_err: "Erro ao enviar. Tente novamente.",
1213    begin_topbar_label: "Conheça nossos produtos",
1214    begin_desktop_download: "Catellix Desktop",
1215    begin_desktop_download_title: "Obter instalador Catellix Desktop (Windows)",
1216    begin_terminal_label: "Catellix AI Terminal",
1217    begin_terminal_title: "Baixar Catellix AI Terminal (Windows)",
1218    begin_terminal_hint: "Grátis para Windows",
1219    begin_terminal_badge: "",
1220    welcome_lite_download_btn_title: "Catellix Lite para desktop — obter o instalador",
1221    welcome_lite_download_btn_aria: "Catellix Lite para desktop — obter o instalador",
1222    begin_btn_monitoring: "Catellix - Monitoring",
1223    begin_btn_detector: "Detector",
1224    begin_detector_title: "Detector — estado de serviços, incidentes e tendências",
1225    begin_detector_aria: "Detector",
1226    begin_btn_kids: "Catellix - <span class=\"kids\">Kids</span>",
1227    begin_btn_demo: "Demo",
1228    begin_btn_demo_mobile: "Demo",
1229    begin_btn_trial: "Teste grátis 1h",
1230    begin_product_sub_monitoring: "empresas",
1231    begin_product_sub_kids: "famílias",
1232    begin_product_sub_public: "Público · comunidade",
1233    begin_product_sub_free_community: "Free · comunidade",
1234    begin_comm_label_detector: "Detector",
1235    begin_comm_label_map: "Wi‑Fi MAP",
1236    begin_comm_label_mobile: "Catellix Mobile",
1237    begin_comm_mobile_title: "Baixar APK — Catellix Mobile (Android)",
1238    begin_comm_mobile_aria: "Download do app Catellix Mobile para Android",
1239    begin_hero_kicker: "Infraestrutura e operações",
1240    begin_hero_title:
1241        "Monitoramento de rede para empresas. Segurança digital para famílias — num ecossistema Catellix.",
1242    begin_video_card_title: "Identidade visual — vídeo institucional",
1243    begin_video_card_badge: "Aurix",
1244    begin_video_fallback_p: "Toque para assistir ao vídeo",
1245    begin_video_fallback_btn: "Reproduzir",
1246    begin_social_label: "Redes sociais",
1247    begin_footer_seo_summary:
1248        "Termos e páginas relacionadas — toque para expandir",
1249    begin_about_btn: "Quem somos?",
1250    about_title_origin: "Catellix — Conectando o futuro, hoje.",
1251    about_text_origin_1: "A <strong>Catellix</strong> nasceu de uma origem familiar, mas foi projetada para o mundo. O nome deriva do sobrenome <strong>Catellani</strong>, intencionalmente transformado para perder o caráter pessoal, ganhar sonoridade técnica e se tornar universal.",
1252    about_text_origin_2: "O sufixo <strong>\"-ix\"</strong> foi escolhido pela forte associação histórica com sistemas Unix, engenharia, infraestrutura e confiabilidade. <strong>Catellix</strong> representa a fundação — a estrutura onde os dados de rede são coletados, preservados e organizados com precisão.",
1253    about_title_aurix: "Aurix — A inteligência por trás dos dados",
1254    about_text_aurix_1: "Nem todo dado tem valor. O valor vem da <em>interpretação</em>.",
1255    about_text_aurix_2: "<strong>Aurix</strong> vem de <em>Aurion</em>, palavra de raiz latina ligada a <em>aurum</em> — ouro. Desde a antiguidade, o ouro simboliza: valor real, permanência e confiança.",
1256    about_text_aurix_3: "Aurix é o motor analítico da Catellix. Ele correlaciona logs, analisa estados de rede, cruza eventos, auxilia troubleshooting e revela padrões invisíveis na operação diária. Transforma dados brutos de rede em <strong>informação clara</strong> para decisões rápidas e seguras.",
1257    about_aurix_motto: "<strong>Catellix</strong> é a fundação. <strong>Aurix</strong> revela o valor.",
1258    about_title_products: "Três soluções, uma missão",
1259    about_text_products: "A Catellix oferece três plataformas complementares, cada uma projetada para resolver desafios distintos com excelência:",
1260    about_product_monitoring_title: "Catellix Monitoring",
1261    about_product_monitoring_desc: "Plataforma de monitoramento de rede para empresas. Gerencie roteadores, switches e firewalls de forma centralizada e confiável.",
1262    about_mon_feat_1: "<strong>Multivendor</strong> — Cisco, Juniper, Huawei, Nokia, Arista, MikroTik, Fortinet",
1263    about_mon_feat_2: "<strong>Backup automático</strong> e disaster recovery",
1264    about_mon_feat_3: "<strong>BGP, OSPF, MPLS, Layer 2</strong> — protocolos em tempo real",
1265    about_mon_feat_4: "<strong>Aurix</strong> — relatórios inteligentes de ping, traceroute e diagnósticos",
1266    about_mon_feat_5: "<strong>Flow</strong> — análise de tráfego NetFlow, IPFIX, sFlow",
1267    about_product_kids_title_kids: "Kids",
1268    about_product_kids_desc: "Solução de controle parental e segurança digital para crianças. Proteja quem você ama com monitoramento inteligente e não invasivo.",
1269    about_kids_feat_1: "<strong>Controle de apps</strong> — gerencie o que a criança acessa",
1270    about_kids_feat_2: "<strong>Tempo de tela</strong> — defina limites saudáveis",
1271    about_kids_feat_3: "<strong>Localização</strong> — saiba onde seu filho está em tempo real",
1272    about_kids_feat_4: "<strong>Relatórios</strong> — entenda os hábitos digitais",
1273    about_kids_feat_5: "<strong>Biblioteca segura</strong> — conteúdo educativo e apropriado",
1274    about_product_desktop_title: "Catellix Desktop",
1275    about_product_desktop_desc: "App para Windows que observa o PC local: internet, inventário e privacidade da máquina, com diagnóstico claro para decidir rápido.",
1276    about_desktop_feat_1: "<strong>Diagnóstico de internet</strong> — ping, DNS e traceroute com ASN",
1277    about_desktop_feat_2: "<strong>Privacidade</strong> — câmera, microfone e lockdown local",
1278    about_desktop_feat_3: "<strong>Inventário</strong>
1278 — hardware, software, SO e patches",
1279    about_desktop_feat_4: "<strong>EDR</strong> — evidência de processos e conexões suspeitas",
1280    about_desktop_feat_5: "<strong>Windows</strong> — instalador oficial na home",
1281    about_product_terminal_title: "Catellix Terminal",
1282    about_product_terminal_desc: "Terminal com IA para Windows: sessões remotas, comandos e automação no mesmo lugar, com menos erro em roteador e servidor.",
1283    about_terminal_feat_1: "<strong>Abas remotas</strong> — SSH e Telnet em uma só janela",
1284    about_terminal_feat_2: "<strong>IA para comandos</strong> — o NOUS sugere e explica o próximo passo",
1285    about_terminal_feat_3: "<strong>Menos retrabalho</strong> — menos erro em roteador e servidor",
1286    about_terminal_feat_4: "<strong>Automação no PC</strong> — tarefas repetitivas saem do copy-paste",
1287    about_terminal_feat_5: "<strong>Grátis para Windows</strong> — instalador na home",
1288    about_br_origin_kicker: "Brasil",
1289    about_br_origin_title: "Empresa brasileira de tecnologia",
1290    about_br_origin_sub:
1291        "Foco em soluções que facilitam a vida de brasileiros — com visão de escala global e suporte próximo.",
1292    about_ceo_intro:
1293        "À frente da Catellix está nossa CEO, <strong>Ana Flávia Catellani</strong>, com raízes em <strong>Andradina-SP</strong>. Reforçamos o propósito de ser uma empresa brasileira de tecnologia para <strong>facilitar a vida de brasileiros</strong>.",
1294    about_mission_observability:
1295        "<strong>Missão:</strong> ser referência mundial em <strong>observabilidade</strong> — da infraestrutura ao cotidiano digital.",
1296    about_ceo_form_title: "Mensagem à CEO",
1297    about_ceo_form_hint:
1298        "Seu e-mail e uma mensagem curta chegam à nossa equipe ([email protected]) para retornarmos o contato.",
1299    about_ceo_form_email: "Seu e-mail",
1300    about_ceo_form_message: "Mensagem",
1301    about_ceo_placeholder_email: "[email protected]",
1302    about_ceo_placeholder_message: "Sua mensagem…",
1303    about_ceo_form_send: "Enviar",
1304    about_ceo_form_sent: "Mensagem enviada. Em breve retornamos pelo seu e-mail.",
1305    about_ceo_form_error:
1306        "Não foi possível enviar. Tente de novo ou escreva para [email protected].",
1307    about_badge_public: "Free · comunidade",
1308    about_title_public_projects: "Projetos abertos à comunidade",
1309    about_text_public_intro:
1310        "Além dos produtos, disponibilizamos o <strong>Detector</strong> de forma <strong>gratuita</strong>, sem cadastro obrigatório — pensado para o <strong>público em geral</strong>, estudantes, profissionais e para quem precisa de transparência sobre serviços online.",
1311    about_public_detector_title: "Detector",
1312    about_public_detector_p1:
1313        "Painel público que reúne sinais sobre o estado de <strong>serviços online</strong> (sites, plataformas e APIs): tendências, histórico e uma visão partilhada de incidentes.",
1314    about_public_detector_p2:
1315        "<strong>Contribuição para a sociedade:</strong> aumenta a transparência em dias de instabilidade, ajuda a separar <em>fato</em> de rumor, apoia jornalistas e equipas pequenas com contexto em tempo real e promove compreensão pública sobre disponibilidade e resiliência da internet.",
1316    about_public_mapar_title: "Wi-Fi MAP",
1317    about_public_mapar_p1:
1318        "Mapa interativo com leituras de espectro <strong>Wi‑Fi</strong> (banda e canal), agregadas com consentimento a partir do ecossistema Catellix — incluindo camadas de calor e densidade, <strong>sem expor dados pessoais nem nomes de redes (SSID)</strong>.",
1319    about_public_mapar_p2:
1320        "<strong>Contribuição para a sociedade:</strong> educa sobre poluição de canal e uso do espectro, ajuda moradores e técnicos a perceber ambientes wireless saturados (condomínios, bairros) e fomenta consciência coletiva sobre a qualidade do ambiente de comunicações onde todos convivem.",
1321    about_public_link_detector: "Ver Detector →",
1322    about_public_link_mapar: "Ver Wi-Fi MAP →",
1323    about_title_media: "Catellix na imprensa",
1324    about_text_media: "Fomos convidados a compartilhar nossa história e propósito. Confira as matérias publicadas:",
1325    about_media_1_title: "Catellix Kids propõe liberdade digital com segurança para crianças",
1326    about_media_2_title: "Startup criada por Ana Flávia Catelani une tecnologia e propósito familiar para proteger empresas e crianças no ambiente digital",
1327    about_media_read: "Ler matéria completa",
1328    pm_title: "Planos Mobile",
1329    pm_subtitle: "Controle parental para famílias e licenças em lote para empresas.",
1330    pm_btn_ver_planos: "Ver planos",
1331    pm_plans_modal_title: "Planos Catellix Kids",
1332    pm_plans_modal_brand_catellix: "Catellix",
1333    pm_plans_journey_banner: "Inicie já sua jornada no Catellix Kids!",
1334    pm_plans_modal_close_aria: "Fechar planos",
1335    pm_platform_info_title: "Painel e app no celular da criança",
1336    pm_platform_controller: "Painel Controller disponível em:",
1337    pm_platform_controller_ios_android: "iOS e Android",
1338    pm_platform_access: "Acessar Plataforma",
1339    pm_platform_panel_note: "Você acompanha o celular do seu filho pelo seu celular ou tablet (pode ser Android ou iPhone).",
1340    pm_platform_kids_label: "App no celular da criança:",
1341    pm_platform_android: "Disponível apenas para Android",
1342    pm_platform_kids_note: "O celular do seu filho precisa ser Android para instalar o Catellix Kids. iOS em construção.",
1343    pm_platform_ios_note: "iOS em construção para o Catellix Kids (controlar iPhones). Estamos trabalhando nisso.",
1344    pm_platform_leigo: "Você acompanha o celular do seu filho pelo seu celular ou tablet (pode ser Android ou iPhone). O celular do seu filho precisa ser Android.",
1345    pm_tts_lang_label: "Idioma da página e da explicação em voz — escolha PT ou EN:",
1346    pm_tts_lang_group_aria: "Idioma da página e da narração",
1347    pm_hero_hint_caption: "Toque nas bolinhas coloridas; use o ícone de som para ouvir na língua escolhida abaixo.",
1348    pm_hero_click_here: "Clique aqui",
1349    pm_bubble_intro_title: "Estoure as bolinhas",
1350    pm_bubble_intro_body: "Clique nas bolinhas para descobrir recursos do Catellix Kids. Cada bolinha estourada desaparece.",
1351    pm_bubble_progress: "Bolhas estouradas: {popped}/{total}",
1352    pm_bubble_done_title: "Parabens! Voce concluiu o painel interativo",
1353    pm_bubble_done_body: "Voce viu como o Catellix Kids protege, organiza e simplifica sua rotina. Crie sua conta e venha ser nosso cliente.",
1354    pm_hero_modal_close_aria: "Fechar explicação",
1355    pm_hero_b1_title: "Tempo de tela e apps (TV / painel)",
1356    pm_hero_b1_body: "Veja quanto tempo de uso ainda resta no dia e o tempo gasto em cada app — vídeos, jogos, redes sociais — num painel claro, na TV ou no navegador.",
1357    pm_hero_b2_title: "Bloqueios em tempo real",
1358    pm_hero_b2_body: "Apps ou sites bloqueados não abrem no celular da criança. Ela vê na hora que o conteúdo não está liberado pelo responsável.",
1359    pm_hero_b3_title: "Segurança, controle e família",
1360    pm_hero_b3_body: "No tablet, o painel reúne o essencial: proteção digital, regras de uso e visão da família num só lugar para você decidir com calma.",
1361    pm_hero_b4_title: "Começar a proteger",
1362    pm_hero_b4_body: "Teste grátis, sem cartão de crédito: você cria a conta, instala o app no celular da criança e acompanha tudo pelo painel.",
1363    pm_hero_b5_title: "App no celular da criança",
1364    pm_hero_b5_body: "O Catellix Kids no Android recebe as regras do painel: pareamento, missões, tempo de tela e bloqueios — sempre sincronizados.",
1365    pm_hero_b6_title: "Recompensas e rotina",
1366    pm_hero_b6_body: "Missões, AuriX e lembretes ajudam a combinar educação financeira e hábitos saudáveis com o uso do celular.",
1367    pm_hero_b1_aria: "Explicar: tempo de tela e apps",
1368    pm_hero_b2_aria: "Explicar: bloqueios",
1369    pm_hero_b3_aria: "Explicar: segurança e família",
1370    pm_hero_b4_aria: "Explicar: começar a proteger",
1371    pm_hero_b5_aria: "Explicar: app no celular da criança",
1372    pm_hero_b6_aria: "Explicar: recompensas e rotina",
1373    pm_what_dots_hint: "Todas as funções estão nas bolinhas coloridas na imagem acima — toque para ler e ouvir em português.",
1374    pm_shortcuts_title: "Atalhos rápidos (download e painel)",
1375    pm_hero_listen: "Ouvir explicação em voz",
1376    pm_hero_stop: "Parar áudio",
1377    pm_tagline_play_link: "Play Store",
1378    pm_header_tts_title: "Ouvir resumo da página em voz",
1379    pm_header_tts_aria: "Ouvir resumo da página em voz alta",
1380    pm_page_tts_combined: "Catellix Kids é controle parental para famílias e licenças para empresas. O painel Controller no seu celular ou tablet e o aplicativo no Android da criança trabalham juntos: tempo de tela, bloqueio de sites e apps, localização e alertas, conforme as regras que você definir.",
1381    pm_hero_b7_title: "Pareamento por código",
1382    pm_hero_b7_body: "Você gera um código no painel Controller; a criança digita no app Catellix Kids. Em segundos o celular fica vinculado à sua conta, sem c
1382omplicação.",
1383    pm_hero_b8_title: "Vínculo seguro com a família",
1384    pm_hero_b8_body: "Depois do pareamento, o painel e o app ficam sempre conectados: as regras que você definir chegam ao celular da criança de forma segura.",
1385    pm_hero_b9_title: "Bloquear sites",
1386    pm_hero_b9_body: "Informe o endereço do site no painel e ele deixa de abrir no celular da criança. Ideal para bloquear distrações ou conteúdos inadequados.",
1387    pm_hero_b10_title: "Alerta sem bloquear",
1388    pm_hero_b10_body: "Você pode só ser avisado quando a criança acessar determinado site, sem bloquear o acesso — útil para acompanhar hábitos sem impedir por completo.",
1389    pm_hero_b11_title: "Bloquear ou ocultar apps",
1390    pm_hero_b11_body: "Bloquear impede o app de abrir; ocultar tira o ícone da tela. Funciona com jogos, redes sociais e qualquer aplicativo que você escolher.",
1391    pm_hero_b12_title: "Senha e aprovação de apps",
1392    pm_hero_b12_body: "Uma senha protege as configurações do app na criança. Novas instalações podem exigir sua aprovação, negação ou liberação temporária pelo painel.",
1393    pm_hero_b13_title: "Onde está agora",
1394    pm_hero_b13_body: "Veja no mapa a última localização enviada pelo celular. Com um toque você abre no mapa para entender onde seu filho está com mais contexto.",
1395    pm_hero_b14_title: "Rota dos últimos dias",
1396    pm_hero_b14_body: "Acompanhe por onde o celular passou recentemente — escola, casa de amigos, deslocamentos — com histórico útil para conversar sobre rotina e segurança.",
1397    pm_hero_b15_title: "Tempo de tela e apps mais usados",
1398    pm_hero_b15_body: "Veja quanto tempo o celular foi usado hoje e na semana, e quais apps lideram o ranking. Ajuda a combinar limites com conversa e hábitos saudáveis.",
1399    pm_hero_b16_title: "Resumo por e-mail",
1400    pm_hero_b16_body: "Receba resumos periódicos no seu e-mail com o uso do dispositivo, para acompanhar mesmo quando não abre o painel todos os dias.",
1401    pm_hero_b17_title: "Dashboard e evolução",
1402    pm_hero_b17_body: "Indicadores, gráficos e visão geral da rotina digital da criança: metas, consistência e tendências em um só lugar para decisões mais tranquilas.",
1403    pm_hero_b18_title: "Linha do tempo de eventos",
1404    pm_hero_b18_body: "Registro de eventos importantes: tentativas de acesso bloqueado, pedidos de app, mudanças relevantes — um histórico claro do que aconteceu no dispositivo.",
1405    pm_hero_b19_title: "Missões e AuriX",
1406    pm_hero_b19_body: "Crie tarefas e hábitos; a criança pode enviar prova (foto ou relato). AuriX é a moeda do app para recompensas e educação financeira ligada ao cumprimento das metas.",
1407    pm_hero_b20_title: "Biblioteca educativa",
1408    pm_hero_b20_body: "Vídeos e livros educativos integrados à rotina: o responsável pode orientar conteúdos adequados à idade e às atividades do dia a dia.",
1409    pm_hero_b7_aria: "Explicar: pareamento por código",
1410    pm_hero_b8_aria: "Explicar: vínculo seguro",
1411    pm_hero_b9_aria: "Explicar: bloquear sites",
1412    pm_hero_b10_aria: "Explicar: alertas",
1413    pm_hero_b11_aria: "Explicar: bloquear ou ocultar apps",
1414    pm_hero_b12_aria: "Explicar: senha e aprovação",
1415    pm_hero_b13_aria: "Explicar: localização",
1416    pm_hero_b14_aria: "Explicar: rota e histórico",
1417    pm_hero_b15_aria: "Explicar: tempo de tela",
1418    pm_hero_b16_aria: "Explicar: resumo por e-mail",
1419    pm_hero_b17_aria: "Explicar: dashboard",
1420    pm_hero_b18_aria: "Explicar: linha do tempo",
1421    pm_hero_b19_aria: "Explicar: missões e AuriX",
1422    pm_hero_b20_aria: "Explicar: biblioteca",
1423    pm_what_short_footer: "Atalhos: instale pelo Google Play, use o painel no iPhone com perfil de atalho ou abra o Controller no Android.",
1424    pm_hero_link_again: "Ver imagem interativa de novo",
1425    pm_btn_empresas: "Empresas",
1426    pm_btn_login: "Login",
1427    pm_btn_register: "Criar conta",
1428    pm_btn_profile: "Ir para perfil",
1429    pm_btn_contact: "Falar com a Catellix",
1430    pm_back: "Voltar ao início",
1431    cg_back: "Voltar aos planos",
1432    cg_login: "Já tem conta? Acessar",
1433    cg_cta: "Começar grátis",
1434    cg_badge: "Catellix Kids",
1435    cg_title: "Inicie <span class=\"accent\">grátis por 7 dias</span>",
1436    cg_subtitle: "Controle parental completo para o celular do seu filho. Sem cartão de crédito.",
1437    cg_feature_1: "<span class=\"check\">✓</span> Bloqueio de apps e sites",
1438    cg_feature_2: "<span class=\"check\">✓</span> Localização em tempo real",
1439    cg_feature_3: "<span class=\"check\">✓</span> Tempo de tela e limites diários",
1440    cg_feature_4: "<span class=\"check\">✓</span> Painel web completo para pais",
1441    cg_note: "Planos a partir de R$ 6,99/mês após o trial.",
1442    dk_title: "Obter Catellix <span class=\"kids\">Kids</span> para Android com recursos avançados",
1443    dk_policy_notice: "Devido às políticas do Google Play, <strong>recursos avançados de controle parental</strong> — como gerenciamento de contatos, registro de chamadas e SMS — <strong>não estão disponíveis</strong> na versão da loja.<br><br>Se você deseja o <strong>controle parental completo</strong>, instale o Catellix Kids diretamente pelo nosso site.",
1444    dk_card_title: "Baixe o Catellix Kids direto do nosso site",
1445    dk_card_desc: "Será instalado pelo <strong>Catellix Installer</strong>, que configura automaticamente todas as permissões necessárias para os recursos avançados de controle parental funcionarem corretamente no celular da criança.",
1446    dk_btn_download: "Baixar",
1447    dk_hint_android: "O Catellix Kids funciona em dispositivos Android 8.0 e superior.",
1448    dk_version_label: "Versão atual do app (site):",
1449    dk_version_code_label: "código",
1450    dk_hint_build: "É a <strong>mesma app e o mesmo visual</strong> que na Play Store, com <strong>mais funções e permissões</strong> na build do site (ex.: captura remota de câmera), que a loja não permite. O arquivo é maior por incluir esses módulos.",
1451    dk_back_playstore: "Não, obrigado. Leve-me de volta à Play Store.",
1452    dk_help: "Tem alguma dúvida? <a href=\"/ajuda-kids\">Acesse a Central de Ajuda.</a>",
1453    ak_back: "← Voltar aos planos",
1454    ak_slogan: "Central de Ajuda e Suporte",
1455    ak_title: "Central de Ajuda",
1456    ak_intro1: "Catellix Kids é uma ferramenta de controle parental desenvolvida para ajudar pais e responsáveis a proteger crianças e adolescentes no ambiente digital.",
1457    ak_intro2: "O aplicativo permite acompanhar atividades importantes do dispositivo e aplicar proteções para garantir uma navegação mais segura.",
1458    ak_intro3: "Se você precisar de ajuda com instalação, configuração ou uso do sistema, abra um ticket de suporte abaixo.",
1459    ak_ticket_title: "Abrir ticket de suporte",
1460    ak_label_name: "Nome",
1461    ak_placeholder_name: "Seu nome",
1462    ak_label_email: "Email",
1463    ak_label_message: "Mensagem",
1464    ak_placeholder_message: "Descreva sua dúvida ou problema...",
1465    ak_label_device: "Dispositivo",
1466    ak_optional: "(opcional)",
1467    ak_placeholder_device: "Ex.: Samsung Galaxy, modelo do celular",
1468    ak_btn_ticket: "Abrir ticket de suporte",
1469    ak_msg_success: "Ticket aberto com sucesso.",
1470    ak_section_videos: "Vídeos tutoriais (Instagram)",
1471    ak_videos_intro: "Você pode assistir direto aqui pela incorporação do Instagram e também abrir o post original para referência no perfil da Catellix.",
1472    ak_video_1_title: "Episódio 01",
1473    ak_video_2_title: "Episódio 02",
1474    ak_video_3_title: "Episódio 03",
1475    ak_video_4_title: "Episódio 04",
1476    ak_videos_watch_ig: "Ver post original no Instagram",
1477    ak_videos_profile: "Ver perfil e todos os Reels no Instagram",
1478    ak_section_faq: "Dúvidas frequentes",
1479    ak_faq1_summary: "Celular travado na tela \"Ops, tempo limite\" ou sem sincronizar — como recuperar?",
1480    ak_faq1_p1: "Se o celular está preso na tela de tempo limite e o dispositivo não aparece mais na lista (por exemplo, você excluiu o dispositivo por engano), faça o seguinte:",
1481    ak_faq1_li1: "Desligue o celular da criança.",
1482    ak_faq1_li2: "Ligue novamente e, ao aparecer a logo, segure o botão de diminuir volume até entrar no Modo seguro (no Xiaomi/Redmi: ligar segurando volume para baixo).",
1483    ak_faq1_li3: "No modo seguro, abra Configurações → Apps → Catellix Kids → Desinstalar (ou \"Forçar parada\" e \"Limpar dados\" se desinstalar não aparecer).",
1484    ak_faq1_li4: "Reinicie o celular normalmente. A tela de tempo limite some.",
1485    ak_faq1_li5: "Instale novamente o app Catellix Kids pela Play Store. Abra o app e digite o código de pareamento que você gera no painel ao clicar em \"+ Adicionar dispositivo\".",
1486    ak_faq1_p2: "O dispositivo voltará a aparecer na lista e você poderá controlar tempo de tela e bloqueios novamente.",
1487    ak_faq2_summary: "Como adicionar o primeiro celular da criança?",
1488    ak_faq2_body: "No painel (Controller), clique em \"+ Adicionar dispositivo\". Um código de 8 caracteres será exibido. No celular da criança, instale o Catellix Kids pela Google Play, abra o app e digite esse código quando solicitado. O dispositivo será vinculado à sua conta em segundos.",
1489    ak_faq3_summary: "O app pede muitas permissões. Por quê?",
1490    ak_faq3_body: "O Catellix Kids usa as permissões do Android apenas para as funções de controle parental descritas na loja: bloqueio de apps e sites, tempo de tela, localização e painel para os pais. Todas as permissões são solicitadas de forma transparente e em conformidade com as políticas do Google Play.",
1491    ak_faq4_summary: "Posso usar em mais de um celular?",
1492    ak_faq4_body: "Sim. O número de dispositivos depende do seu plano (1, 3 ou 5 crianças). Cada plano permite vincular até esse número de celulares ao seu painel. Você adiciona cada dispositivo pelo código de pareamento.",
1493    ak_section_enterprise: "Para empresas",
1494    ak_enterprise_1: "O Catellix Kids está disponível na Google Play como aplicativo de controle parental para famílias. Empresas e provedores que desejem oferecer o serviço em escala (licenças em lote) podem entrar em contato conosco pelo formulário de ticket acima ou pela página ",
1495    ak_contact_link: "Falar com a Catellix",
1496    ak_enterprise_2: ". Todas as ofertas e funcionalidades estão em conformidade com as políticas do Google Play.",
1497    ak_section_tester: "App oficial na Play Store",
1498    ak_tester_title: "App oficial na Google Play",
1499    ak_tester_desc1: "O Catellix Kids agora esta oficialmente publicado na Play Store. Controle parental feito por brasileiros, com download direto e seguro pela loja oficial.",
1500    ak_tester_desc2: "Download oficial: use o link abaixo para instalar agora mesmo.",
1501    ak_tester_label_email: "Seu e-mail",
1502    ak_btn_tester: "Receber novidades por e-mail",
1503    ak_tester_playstore_btn: "Baixar Catellix Kids na Play Store",
1504    ak_tester_success: "Cadastro enviado. Entraremos em contato em breve.",
1505    ak_footer: "© 2026 Catellix · Todos os direitos reservados",
1506    ak_sending: "Enviando...",
1507    ak_validate_fill: "Preencha nome, email e mensagem.",
1508    ak_error_send: "Erro ao enviar. Tente novamente.",
1509    ak_error_connection: "Erro de conexão. Verifique sua internet e tente novamente.",
1510    ak_protocol: "Protocolo: ",
1511    ak_tester_validate_email: "Informe seu e-mail.",
1512    pm_families_title: "Para famílias",
1513    pm_box_b2b_title: "Para empresas que querem agregar valor",
1514    pm_box_b2b_price_note: "R$ 1,00 por licença para redistribuir. Faturamento mensal ou anual com <strong>20% OFF</strong> no anual (vs. 12 mensalidades).",
1515    pm_families_subtitle: "Escolha quantas crianças deseja monitorar. Pagamento via Mercado Pago. <strong>20% OFF</strong> no plano anual (vs. 12 mensalidades).",
1516    pm_plan_1_name: "1 licença",
1517    pm_plan_1_desc: "Um dispositivo Catellix Kids vinculado à sua conta. Licença de 31 dias.",
1518    pm_plan_3_name: "3 licenças",
1519    pm_plan_3_desc: "Até três dispositivos com melhor custo-benefício. Licença de 31 dias.",
1520    pm_plan_5_name: "5 licenças",
1521    pm_plan_5_desc: "Família grande: até cinco dispositivos. Licença de 31 dias.",
1522    pm_btn_buy: "Comprar",
1523    pm_btn_renew: "Renovar",
1524    pm_btn_renew_31: "Renovar (+31 dias)",
1525    pm_btn_renew_365: "Renovar (+365 dias)",
1526    pm_billing_mensal: "Mensal",
1527    pm_billing_anual: "Anual",
1528    pm_billing_suffix_monthly: "/mês",
1529    pm_billing_suffix_annual: "/ano",
1530    pm_discount_spotlight_monthly: "No <strong>plano anual</strong>: <span class=\"pm-disco-pct\">{{pct}}% OFF</span> — você economiza <strong>{{save}}</strong>.",
1531    pm_discount_spotlight_annual: "✨ <strong>{{pct}}% de desconto</strong> ativo — economia de <strong>{{save}}</strong> em relação a 12 mensalidades.",
1532    pm_price_compare_head: "comparativo mensal × anual",
1533    pm_price_compare_foot: "O preço grande acima segue o toggle (mensal ou anual). O anual já inclui <strong>{{pct}}% OFF</strong> em relação a 12 mensalidades.",
1534    pm_price_compare_col_m: "Mensal",
1535    pm_price_compare_col_a: "Anual · {{pct}}% OFF",
1536    pm_price_compare_12x: "12 mensalidades = <strong>{{total}}</strong>",
1537    pm_price_compare_equiv: "Equivale a <strong>{{per}}</strong> /mês",
1538    pm_price_compare_save: "Você economiza <strong>{{save}}</strong> ({{pct}}%)",
1539    pm_badge_annual_off: "{{pct}}% OFF",
1540    pm_badge_active: "Seu plano",
1541    pm_badge_expired: "Expirada",
1542    pm_days_remaining: "dia(s) restante(s)",
1543    pm_other_plan_tooltip: "Você já possui outro plano ativo. Renove o seu plano atual.",
1544    pm_plan_switch_hint: "Mudar para este plano (upgrade ou redução).",
1545    pm_downgrade_title: "Reduzir seu plano",
1546    pm_downgrade_desc: "O novo plano permite menos dispositivos ativos. Marque quais aparelhos continuam na plataforma;
1546 os demais serão desvinculados após o pagamento aprovado.",
1547    pm_downgrade_counter: "Selecionados: {n} de {m}",
1548    pm_downgrade_next: "Próximo — ir para pagamento",
1549    pm_downgrade_cancel: "Cancelar",
1550    pm_downgrade_pick_exact: "Selecione exatamente {m} dispositivo(s) para continuar.",
1551    pm_downgrade_intro_short: "Você está reduzindo o plano: na próxima tela, escolha quais dispositivos continuam na plataforma. Os demais serão desvinculados após o pagamento aprovado.",
1552    pm_b2b_title: "É provedor de acesso, ISP ou empresa?",
1553    pm_b2b_desc: "Deseja oferecer como benefício para o seu cliente? Compre licenças em lote por apenas <strong>1 real</strong> por licença e revenda como quiser — agregado à internet ou como produto à parte.",
1554    pm_b2b_highlight: "Compre licenças em lote por apenas R$ 1,00 cada",
1555    pm_b2b_plans_title: "Provedores e empresas",
1556    pm_b2b_100_name: "100 licenças",
1557    pm_b2b_100_desc: "Entrada acessível para pilotos e primeiros clientes.",
1558    pm_b2b_price_period: "/mês",
1559    pm_b2b_1k_name: "1.000 licenças",
1560    pm_b2b_1k_desc: "Ideal para começar. Distribua para seus clientes como benefício.",
1561    pm_b2b_10k_name: "10.000 licenças",
1562    pm_b2b_10k_desc: "Para empresas em crescimento.",
1563    pm_b2b_50k_name: "50.000 licenças",
1564    pm_b2b_50k_desc: "Escala média. Ideal para provedores em expansão.",
1565    pm_b2b_500k_name: "500.000 licenças",
1566    pm_b2b_500k_desc: "Para grandes empresas.",
1567    pm_b2b_100k_name: "100.000 licenças",
1568    pm_b2b_100k_desc: "Escala para grandes bases.",
1569    pm_b2b_1m_name: "1.000.000 licenças",
1570    pm_b2b_1m_desc: "Pacote máximo para grandes empresas.",
1571    pm_aria_prev: "Anterior",
1572    pm_aria_next: "Próximo",
1573    pm_plans_trail_headline: "Trilha: Free → famílias → empresas.",
1574    pm_trail_badge_free: "1 · Free",
1575    pm_trail_badge_b2b: "3 · B2B",
1576    pm_trail_badge_b2c: "2 · B2C",
1577    pm_card_popular_badge: "Recomendado",
1578    pm_card_free_feat_1: "Acesso completo ao painel e ao app por 7 dias",
1579    pm_card_free_feat_2: "Sem cartão de crédito para começar",
1580    pm_card_free_feat_3: "Ideal para conhecer o Catellix Kids com segurança",
1581    pm_card_family_feat_1: "PIX e cartão com checkout seguro",
1582    pm_card_family_feat_2: "Planos de 1 a 5 licenças no mesmo painel",
1583    pm_card_family_feat_3: "Licença de 31 dias; opção mensal ou anual",
1584    pm_card_b2b_feat_1: "Pacotes a partir de 100 licenças",
1585    pm_card_b2b_feat_2: "Escale até 1 milhão de licenças",
1586    pm_card_b2b_feat_3: "Painel de revenda e suporte comercial",
1587    pm_plan_free_title: "Plano Free",
1588    pm_plan_free_subtitle: "Experimente sem compromisso.",
1589    pm_plan_free_badge: "7 dias de teste grátis",
1590    pm_plan_free_desc: "Crie sua conta e use o Catellix Kids por 7 dias sem pagar. Depois, escolha o plano Família ou licenças para empresas nos passos seguintes.",
1591    pm_plan_free_btn: "Criar conta e testar grátis",
1592    pm_social_label: "Redes sociais",
1593    pm_footer: "Soluções em Rede",
1594    pm_support_title: "Suporte",
1595    pm_support_desc: "Precisa de ajuda? Abra um ticket e nossa equipe responderá no e-mail informado.",
1596    pm_support_btn: "Abrir ticket",
1597    pm_support_modal_title: "Abrir ticket de suporte",
1598    pm_support_modal_protocol: "O protocolo será gerado ao enviar. O ticket será enviado para [email protected].",
1599    pm_support_name: "Nome",
1600    pm_support_email: "E-mail *",
1601    pm_support_subject: "Assunto (opcional)",
1602    pm_support_message: "Mensagem *",
1603    pm_support_cancel: "Cancelar",
1604    pm_support_submit: "Enviar ticket",
1605    pm_support_success_title: "Ticket enviado!",
1606    pm_support_success_protocol: "Seu protocolo é:",
1607    pm_support_error_fields: "Preencha e-mail e mensagem (mín. 5 caracteres).",
1608    pm_support_error_send: "Erro ao enviar. Tente novamente.",
1609    pm_what_title: "O que é o Catellix <span class=\"kids\">Kids</span>?",
1610    pm_what_intro: "É um aplicativo de controle parental: você instala o app no celular da criança e controla tudo pelo seu painel na web. Assim você acompanha o uso do celular com segurança, sem precisar ser expert em tecnologia.",
1611    pm_what_functions_title: "Quem faz o que no Catellix:",
1612    pm_duo_swipe_hint: "<span class=\"kids-duo-hint-arrows\" aria-hidden=\"true\">«</span> Deslize para ver o painel, o app no celular e o app na TV <span class=\"kids-duo-hint-arrows\" aria-hidden=\"true\">»</span>",
1613    pm_duo_controller_title: "Responsável (Controller Catellix)",
1614    pm_duo_controller_platform: "Android e iOS (web/app)",
1615    pm_duo_kids_title: "Criança (app Catellix Kids)",
1616    pm_duo_kids_platform: "Somente Android",
1617    pm_duo_label_link: "Vincular",
1618    pm_duo_label_protect: "Proteção",
1619    pm_duo_label_first: "Primeiro acesso",
1620    pm_duo_label_phone_protect: "Proteção no celular",
1621    pm_duo_ctrl_pair_name: "Pareamento por código",
1622    pm_duo_ctrl_pair_desc: "Você gera o código no painel e a criança digita no app — vínculo em segundos.",
1623    pm_duo_tag_rapido: "Rápido",
1624    pm_duo_tag_sem_complicacao: "Sem complicação",
1625    pm_duo_ctrl_sites_name: "Bloquear sites",
1626    pm_duo_ctrl_sites_desc: "Defina endereços no painel; sites indesejados deixam de abrir no celular.",
1627    pm_duo_kids_pair_name: "Digita o código de pareamento",
1628    pm_duo_kids_pair_desc: "A criança insere no app o código que você gerou no painel.",
1629    pm_duo_tag_facil: "Fácil",
1630    pm_duo_kids_block_name: "Bloqueios em tempo real",
1631    pm_duo_kids_block_desc: "Sites e apps bloqueados não abrem; o aviso aparece na hora.",
1632    pm_duo_tv_title: "TV da criança (Catellix Kids na TV)",
1633    pm_duo_tv_platform: "Somente Android TV",
1634    pm_duo_label_tv_setup: "Na TV",
1635    pm_duo_label_tv_control: "Monitoramento na TV",
1636    pm_duo_tv_setup_name: "Interface simples com controle remoto",
1637    pm_duo_tv_setup_desc: "App na Android TV com leitura à distância e o mesmo pareamento por código do celular.",
1638    pm_duo_tag_tv_focus: "Foco na sala",
1639    pm_duo_tv_time_name: "Limite de tempo de tela",
1640    pm_duo_tv_time_desc: "Define uso diário na TV — sem a lista enorme de recursos do app no celular.",
1641    pm_duo_tv_apps_name: "Bloquear apps da TV",
1642    pm_duo_tv_apps_desc: "Libera ou bloqueia só os apps instalados na TV (streaming, jogos etc.).",
1643    pm_duo_tag_reduzido: "Menos opções que no celular",
1644    pm_duo_kids_feature_link: "Digita o código de pareamento no app para vincular o celular à conta do responsável.",
1645    pm_duo_kids_feature_rules: "Recebe as regras do responsável (bloqueio de sites, apps e limites de uso).",
1646    pm_duo_kids_feature_blocked_view: "Quando algo está bloqueado, o app/site não abre e o bloqueio aparece na hora.",
1647    pm_duo_kids_feature_install_request: "Ao instalar novo app, pode aparecer pedido de autorização para o responsável aprovar.",
1648    pm_duo_kids_feature_location_sync: "Envia localização e eventos de uso para o painel, conforme permissões aceitas.",
1649    pm_duo_kids_feature_same_password: "Usa a mesma senha definida pelo responsável para proteger configurações sensíveis.",
1650    pm_duo_kids_feature_timeline: "Toda ação importante entra na linha do tempo vista pelo responsável.",
1651    pm_duo_ctrl_feature_dashboard: "Acompanhar o dashboard da criança com indicadores de rotina, uso e comportamento digital ao longo da semana.",
1652    pm_duo_ctrl_feature_evolution_graphs: "Ver gráficos de evolução (tempo de tela, metas cumpridas, apps mais usados e consistência da rotina).",
1653    pm_duo_ctrl_feature_missions: "Criar e aprovar missões (ex.: tarefa de casa, escovar os dentes, arrumar o quarto) com foto/relato enviado pela criança.",
1654    pm_duo_ctrl_feature_aurix: "Gerenciar o sistema AuriX: definir recompensas, acompanhar saldo e incentivar hábitos com metas.",
1655    pm_duo_ctrl_feature_library: "Cadastrar e organizar conteúdos da Biblioteca (vídeos/livros) para compor missões educativas.",
1656    pm_duo_ctrl_feature_plans: "Ajustar plano de rotina (tempo base + missões, monitoramento etc.) conforme idade e necessidade da família.",
1657    pm_duo_kids_feature_missions: "Recebe missões do dia, envia conclusão com foto/relato e aguarda aprovação do responsável.",
1658    pm_duo_kids_feature_aurix_wallet: "Ganha AuriX ao cumprir metas e acompanha o próprio saldo no app.",
1659    pm_duo_kids_feature_library: "Acessa conteúdos da Biblioteca (quando liberados) como parte da rotina e das missões.",
1660    pm_duo_kids_feature_progress: "Visualiza progresso de hábitos, sequência de tarefas e desempenho semanal.",
1661    pm_duo_link_ios_profile: "iOS: baixar perfil",
1662    pm_duo_link_android_shortcut: "Android: instalar atalho no Chrome",
1663    pm_duo_link_site_home: "Início Catellix — ver estes atalhos de novo",
1664    pm_duo_library_tag_videos: "Vídeos",
1665    pm_duo_library_tag_books: "Livros",
1666    pm_duo_modal_ios_title: "Atalho no iPhone — o que acontece ao tocar",
1667    pm_duo_modal_ios_body: "<p><strong>Ao tocar em «Baixar perfil»</strong>, o Safari descarrega um ficheiro <code>.mobileconfig</code>. Isso <em>não</em> instala sozinho: é preciso ir a <strong>Ajustes</strong> no iPhone.</p><p><strong>Depois do download:</strong></p><ol><li>Abra <strong>Ajustes</strong> (ícone da engrenagem ⚙️).</li><li>No topo, toque em <strong>«Perfil descarregado»</strong> ou <strong>«Perfil transferido»</strong>.</li><li>Toque em <strong>Instalar</strong> (canto superior direito) e confirme com o código do telefone, se pedir.</li><li>Volte ao ecrã inicial: deve aparecer o ícone <strong>Catellix</strong>. Abra por esse ícone para o painel do responsável.</li></ol><p style=\"margin-top:10px;font-size:0.82rem;color:#64748b;\">
1667Se o iOS mostrar «não assinado» ou «não verificado», é normal para perfis descarregados de um site. O ficheiro é gerado pelo Catellix para criar o atalho ao painel web.</p>",
1668    pm_duo_modal_ios_download: "Baixar perfil agora",
1669    pm_duo_modal_android_title: "Atalho no Android (Chrome)",
1670    pm_duo_modal_android_body: "<p><strong>Ao abrir o painel</strong>, inicie sessão se for pedido. No <strong>Google Chrome</strong>, pode aparecer o aviso <strong>«Instalar app»</strong> ou use o menu <strong>⋮</strong> → <strong>«Instalar aplicação»</strong> / <strong>«Adicionar à tela inicial»</strong>.</p><p><strong>Se o botão de instalar desaparecer</strong> depois de já ter usado uma vez, é comportamento do Chrome: o convite nativo só aparece uma vez por site. Pode sempre adicionar de novo pelo menu <strong>⋮</strong>, ou volte a esta página pelo link <strong>Início Catellix</strong> abaixo dos botões.</p><p style=\"margin-top:10px;font-size:0.82rem;color:#64748b;\"><strong>Recomendado:</strong> instalar o app <strong>Catellix Kids</strong> na Play Store e escolher «Celular do responsável» — o mesmo painel, com notificações nativas.</p>",
1671    pm_duo_modal_android_open: "Abrir painel e ver o guia completo",
1672    pm_duo_modal_close: "Fechar",
1673    pm_duo_link_playstore: "Criança: abrir na Play Store",
1674    pm_what_feature_pairing: "Pareamento simples: você gera um código no painel e a criança digita no app — em segundos o celular fica vinculado à sua conta.",
1675    pm_what_feature_sites: "Bloquear sites que não quer que a criança acesse. Você só coloca o endereço (ex.: pudim.com.br) e o site deixa de abrir.",
1676    pm_what_feature_sites_alert: "Receber só um aviso quando a criança entrar em certo site, em vez de bloquear. Assim você fica sabendo sem impedir.",
1677    pm_what_feature_apps: "Bloquear ou desativar aplicativos (jogos, redes sociais, etc.). Bloquear = app não abre. Desativar = ícone some da tela.",
1678    pm_what_feature_screentime: "Ver quanto tempo a criança usou o celular hoje e na semana, e quais apps mais usou.",
1679    pm_what_feature_weekly_report: "Receber todo início de semana um e-mail com resumo do uso do celular nos últimos 7 dias.",
1680    pm_what_feature_keylog: "Opcionalmente, registrar o que a criança digita em apps (mensagens, buscas). Ajuda a acompanhar conversas e evitar riscos.",
1681    pm_what_feature_password: "Colocar senha para abrir o app no celular da criança. Só quem souber a senha mexe nas configurações do app.",
1682    pm_what_feature_location: "Ver no mapa onde está o celular. Um clique e abre no Google Maps com a última localização enviada.",
1683    pm_what_feature_displacement: "Ver no mapa por onde o celular passou nos últimos 7 dias (rota de deslocamento).",
1684    pm_what_feature_camera: "Pedir uma foto à distância: câmera frontal ou de trás. A foto aparece no seu painel na hora.",
1685    pm_what_feature_apps_list: "Ver lista de todos os apps instalados no celular e pedir para desativar (esconder) ou desinstalar qualquer um.",
1686    pm_what_feature_install_approval: "Quando a criança for instalar um app novo, você pode permitir ou negar. Ou liberar \"por 1 hora\" para ela instalar sem pedir.",
1687    pm_what_feature_events: "Ver linha do tempo: quando acessou site bloqueado, abriu app bloqueado, instalou algo, etc. Tudo num só lugar.",
1688    pm_play_disclaimer: "A versão disponível na Play Store inclui controle parental (bloqueio de apps e sites, tempo de tela, localização, etc.). Funcionalidades como registro do que foi digitado, foto remota e ocultar ícone do app estão disponíveis apenas na instalação manual (APK), fora da Play Store.",
1689    pm_what_feature_apps_list_play: "Ver lista de todos os apps instalados no celular e pedir para desativar ou desinstalar qualquer um.",
1690    pm_apk_extra_line: "Na instalação manual (APK) também estão disponíveis: registro do que foi digitado, foto remota e ocultar ícone do app.",
1691    pm_examples_title: "Como funciona na prática",
1692    pm_example_painel: "No seu painel você vê os celulares vinculados e ativa bloqueios, tempo de tela e outras opções.",
1693    pm_example_bloqueio: "No celular da criança, apps ou sites bloqueados não abrem — ela vê que o controle está ativo.",
1694    pm_example_pareamento: "Pareamento: você passa o código (ou o link do app) para a criança; ela instala, digita o código e pronto.",
1695    pm_steps_title: "Passo a passo",
1696    pm_step1_num: "Passo 1",
1697    pm_step2_num: "Passo 2",
1698    pm_step3_num: "Passo 3",
1699    pm_step4_num: "Passo 4",
1700    pm_step5_num: "Passo 5",
1701    pm_step1_title: "Como instalar o app",
1702    pm_step1_desc: "O responsável acessa o painel e instala o Catellix Kids no celular da criança pela Play Store.",
1703    pm_step1_screen: "Instalar no celular da criança",
1704    pm_step2_title: "Permissões que devem ser aceitas",
1705    pm_step2_desc: "Para o controle parental funcionar, o app solicita permissões no Android (acessibilidade, uso em segundo plano, etc.). Todas devem ser aceitas pelo responsável no dispositivo da criança.",
1706    pm_step2_screen: "Permissões do app",
1707    pm_step2_screen_hint: "Desative temporariamente nas configurações da Play Store",
1708    pm_step3_title: "App ligado e sinal ativo",
1709    pm_step3_desc: "Quando a licença está ativa, o app mostra \"Proteção ativa\" e envia os dados para o painel. Se a licença expirar, aparece a tag vermelha \"Expirado\" e o app para de enviar informações ao SaaS até o responsável renovar em Planos Mobile.",
1710    pm_step3_screen: "Permissões do app",
1711    pm_step3_screen_ok: "Proteção ativa",
1712    pm_step3_badge_ok: "Ativo",
1713    pm_step4_title: "Quando a licença expira",
1714    pm_step4_desc: "O app exibe a tag vermelha \"Expirado\" e deixa de enviar eventos ao servidor. Após o responsável comprar nova licença (Planos Mobile), o app reconhece na próxima sincronização e volta a enviar dados.",
1715    pm_step4_screen_ok: "Proteção ativa",
1716    pm_step4_badge_ok: "Ativo",
1717    pm_step4_screen: "Licença expirada",
1718    pm_step5_title: "Se a instalação falhou — Play Protect",
1719    pm_step5_desc: "Só use este passo se o app não instalou. Em alguns celulares o Play Protect pode bloquear: desative-o temporariamente (Play Store → perfil → Play Protect → engrenagem), instale de novo e depois reative o Play Protect.",
1720    pm_step5_screen: "Instalação bloqueada?",
1721    pm_step5_screen_hint: "Desative temporariamente nas configurações da Play Store e tente de novo",
1722    pm_step5_video_label: "Só se precisar: como desativar o Play Protect",
1723    // Portal Conta — /conta/login
1724    clogin_hero_h1: "Tudo da Catellix em um só lugar.",
1725    clogin_hero_p: "Entre para ver seus produtos, licenças, perfil, currículo e seu Kanban — sincronizado com o Catellix Terminal.",
1726    clogin_perk1: "Veja e compre produtos com licenças e validade em tempo real.",
1727    clogin_perk2: "Kanban online sincronizado com o seu Catellix Terminal.",
1728    clogin_perk3: "Perfil profissional com foto e exportação de currículo.",
1729    clogin_perk4: "Auditoria das suas ações nos últimos 7 dias.",
1730    clogin_tab_login: "Entrar",
1731    clogin_tab_reg: "Criar conta",
1732    clogin_google_loading: "Carregando…",
1733    clogin_or_email: "ou entre com e-mail",
1734    clogin_welcome: "Bem-vindo de volta",
1735    clogin_welcome_sub: "Use o mesmo e-mail e senha da sua conta Catellix.",
1736    clogin_email: "E-mail",
1737    clogin_email_ph: "[email protected]",
1738    clogin_password: "Senha",
1739    clogin_password_ph: "Sua senha",
1740    clogin_keep: "Manter conectado",
1741    clogin_forgot: "Esqueci a senha",
1742    clogin_enter: "Entrar",
1743    clogin_reg_h2: "Criar sua conta",
1744    clogin_reg_sub: "Leva menos de um minuto. Confirme o e-mail para ativar.",
1745    clogin_name: "Nome completo",
1746    clogin_name_ph: "Seu nome",
1747    clogin_phone: "Telefone (opcional)",
1748    clogin_phone_ph: "(11) 99999-9999",
1749    clogin_reg_pass_ph: "Mínimo 8 caracteres",
1750    clogin_reg_btn: "Criar conta",
1751    clogin_foot: "Ao continuar você concorda com os Termos e a Política de Privacidade da Catellix."
1752  };
1753  var en = {
1754    lang_pt: "Português", lang_en: "English",
1755    theme_goto_dark: "Use dark theme",
1756    theme_goto_light: "Use light theme",
1757    nav_back_dashboard: "Back to Dashboard", nav_home: "Home", nav_logout: "Logout", nav_menu: "Menu", nav_recent_pages: "Recent pages", nav_search_menu: "Search menu…",
1758    nav_section_visao: "Overview", nav_section_conta: "Account", nav_section_inventario: "Inventory", nav_section_rede: "Network", nav_section_diagnostico: "Diagnostics", nav_section_experiencia: "Experience", nav_section_admin: "Administration",
1759    nav_menu_painel: "Home", nav_menu_impacto: "Impact", nav_menu_meus_paineis: "My dashboards", nav_menu_mapas: "Maps", nav_menu_wifi: "Wi‑Fi", nav_menu_detector: "Detector", nav_menu_perfil: "Profile", nav_menu_definicoes: "Settings", nav_menu_hosts: "Hosts", nav_menu_pops: "POPs", nav_menu_backup: "Backup", nav_tasks: "Tasks", nav_menu_camaras: "Cameras", nav_menu_endpoints: "Endpoints", nav_menu_lg: "LG", nav_menu_latencia: "Latency", nav_menu_relatorios: "Reports", nav_menu_mudancas: "Changes", nav_menu_sub_contas: "Sub-accounts",     nav_menu_cupons: "Coupons", nav_menu_whatsapp: "WhatsApp", nav_menu_auditoria: "Audit", nav_menu_erp: "ERP", nav_search_aria: "Search menu items",
1760    nav_menu_detector_hint: "Latency, history and community reports",
1761    mfa_title: "Two-step verification",
1762    mfa_title_short: "Protected area",
1763    mfa_sub_totp: "Google Authenticator",
1764    mfa_sub_legacy: "Account security PIN",
1765    mfa_sub_generic: "6-digit code",
1766    mfa_message_legacy: "This account still uses a legacy 6-digit PIN (not your Google Authenticator code). Enter that PIN or request an email code below.",
1767    constructor_title: "Constructor", constructor_offline: "Constructor offline. Connect Catellix Desktop (Proxy) to use.",
1768    nav_analise_hosts: "Host Analysis", nav_servidores: "Servers",
1769    nav_bgp: "BGP", nav_ipam: "IPAM", nav_ospf: "OSPF", nav_layer2: "Layer 2", nav_mpls: "MPLS", nav_gmud: "Change Management (GMUD)", nav_settings: "Settings",
1770    nav_bgp_routes_link: "Route Analysis", nav_bgp_tables_link: "Table Analysis", nav_tools_link: "Tools", nav_settings_link: "Settings",
1771    login_title: "Sign in", login_email: "Email", login_password: "Password", login_enter: "Sign in", login_manter_conectado: "Stay connected longer (until you click Sign out)",
1772    login_or: "or", login_create_account: "Create account", login_forgot: "Forgot password",
1773    register_title: "Create account", register_name: "Full name", register_email: "Email", register_password: "Password",
1774    register_confirm_password: "Confirm password", register_btn: "Register", register_has_account: "Already have an account? Sign in", register_resend_confirm: "Didn't receive the confirmation email? Resend",
1775    index_construction: "Under construction", index_working: "We're working on something great!",
1776    index_paragraph: "Our team is developing new features. Soon you'll have access to a full dashboard.",
1777    index_progress: "Estimated progress:", index_hosts: "Host Management", index_login: "Login",
1778    index_redirect: "Redirecting to dashboard in",
1779    index_aurix_intelligence: "Aurix intelligence",
1780    index_welcome_title: "Welcome to Catellix",
1781    dash_title: "Dashboard", dash_welcome: "Welcome to AuriX by Catellix", dash_hosts: "Host Management",
1782    dash_plan_free: "FREE",
1783    trial_time_remaining: "Trial:",
1784    license_time_remaining: "License:",
1785    license_expired_message: "Your license has expired. Renew your plan to continue using all features.",
1786    license_expired_action: "Renew",
1787    license_expired_badge: "Expired",
1788    dash_plan_unlimited: "Unlimited Account",
1789    dash_plan_basic_30: "Basic 30 Account",
1790    dash_plan_basic_90: "Basic 90 Account",
1791    dash_plan_basic_60: "Basic 60 Account",
1792    dash_plan_pro_200: "Pro 200 Account",
1793    dash_plan_pro_400: "Pro 400 Account",
1794    dash_plan_pro_800: "Pro 800 Account",
1795    dash_plan_advanced_1200: "Advanced 1200 Account",
1796    dash_plan_advanced_2400: "Advanced 2400 Account",
1797    dash_plan_advanced_3600: "Advanced 3600 Account",
1798    dash_plan_basic_10: "Basic 10 Account",
1799    dash_plan_pro_100: "Pro 100 Account",
1800    dash_plan_advanced_800: "Advanced 800 Account",
1801    dash_plan_advanced_1600: "Advanced 1600 Account",
1802    dash_plan_premium: "Premium Account",
1803    dash_backup: "Backup & Collection", dash_user: "User",
1804    dash_hosts_active: "Active Hosts", dash_monitored: "monitored", dash_uptime: "Uptime", dash_last30: "last 30 days",
1805    dash_alerts: "Alerts Today", dash_attention: "need attention", dash_scans: "Scans (24h)", dash_runs: "runs",
1806    dash_error_rate: "Error rate (%)", dash_ok: "Ok", dash_low: "Low", dash_medium: "Medium", dash_critical: "Critical",
1807    dash_topology: "Network topology", dash_view_topo: "View topology ▼", dash_uptime_avail: "Uptime & Availability (last 7 days)",
1808    dash_status_hosts: "Host Status", dash_traffic: "Traffic / Requests per Hour",
1809    dash_by_vendor: "By Vendor", dash_firmware_by_vendor: "Distribution by firmware per vendor", dash_recent: "Recent Activity",
1810    dash_latency: "Latency trend (ms)",
1811    dash_status_scans: "Host status (scans)", dash_backup_dr: "Backup DR",
1812    kpi_executions_30d: "Executions (30d)", kpi_success_rate: "Success rate", kpi_backup_dr_pct: "Backup DR", kpi_backup_24h: "Backup 24h", kpi_uptime: "Uptime",
1813    kpi_tasks_run: "tasks run", kpi_exec_ok: "executions ok", kpi_hosts_backup: "hosts with backup", kpi_updated_24h: "updated in last 24h", kpi_hosts_online: "hosts online",
1814    kpi_license: "License usage", kpi_license_sublabel: "hosts + servers + cameras",
1815    kpi_backups_30d: "Backups (30d)", kpi_backups_sublabel: "collections in history",
1816    kpi_agendamentos: "Schedules", kpi_agendamentos_sublabel: "active collections",
1817    kpi_tasks_ativas: "Active tasks", kpi_tasks_sublabel: "scheduled commands",
1818    kpi_cameras: "Cameras", kpi_pop_monitoring: "POP Monitoring",
1819    kpi_servidores: "Servers", kpi_servidores_sublabel: "Linux + Windows",
1820    kpi_exec_per_device: "Exec./device", kpi_exec_per_device_sublabel: "avg (30d)",
1821    dash_online: "online", dash_offline: "offline",
1822    dash_vendors_count: "Vendors", dash_vendors_sublabel: "identified in your hosts",
1823    dash_scan_ok: "Ok", dash_scan_partial: "Partial", dash_scan_fail: "Failed", dash_scan_pending: "Pending",
1824    dash_backup_has: "With backup DR", dash_backup_no: "No backup DR", dash_backup_scheduled: "Backup scheduled",
1825    dash_topo_parque: "My network", dash_no_data: "No data",
1826    dash_no_activity: "No activity", dash_activity_count: "{0}–{1} of {2}", dash_activity_count_one: "1 activity", dash_page_of: "Page",
1827    dash_tab_main: "Dash - Main", dash_tab_alerts: "Dash - Alerts", dash_tab_dashban: "DashBan", dash_alert_title: "Alerts – Offline hosts",
1828    dash_alert_none: "No offline hosts at the moment.", dash_alert_offline_at: "Offline at", dash_alert_recovered_at: "Recovered at", dash_alert_last_update: "Last update:", dash_alert_error: "Error loading alerts.", dash_loading: "Loading…",
1829    dash_incident_popup_title: "Incident detected", dash_incident_popup_body: "The following equipment is offline:", dash_incident_popup_ver: "View alerts", dash_incident_popup_fechar: "Close",
1830    dash_via_client: "Access via",
1831    dash_catellix_source_badge_title: "You are accessing via this client",
1832    sidebar_analise_rede_title: "Host Analysis - Charts",
1833    sidebar_analise_rede_ping_title: "Network Analysis - Ping charts",
1834    sidebar_fasttask_title: "Fast Task - quick command (CMD)",
1835    sidebar_subbrowser_title: "Aurix Intelligence browser - quick navigation",
1836    sidebar_reports_title: "Reports - Ping and latency",
1837    sidebar_aurix_aria_constructor: "Constructor",
1838    sidebar_aurix_aria_weather: "Weather",
1839    sidebar_aurix_aria_analise: "Analysis",
1840    sidebar_aurix_aria_fasttask: "CMD",
1841    sidebar_aurix_aria_browser: "Browser",
1842    sidebar_aurix_aria_reports: "Reports",
1843    sidebar_settings_title: "Settings",
1844    sidebar_weather_title: "Weather forecast - 15 days",
1845    fp_back_dash: "Back to Dashboard",
1846    fp_back_welcome: "Back to home page",
1847    fp_title: "Catellix / AuriX – All platform features",
1848    fp_intro: "The Catellix platform (with the AuriX analysis engine) centralizes the management of network equipment (routers, switches, firewalls) from multiple vendors in one place. This document lists all features currently available.",
1849    fp_agent_proxy_heading: "🖥️ Agent and Proxy — The power to operate on your network",
1850    fp_agent_proxy_intro: "In simple terms: the Proxy and the Agent let Catellix run inside your company, with direct access to network equipment, without relying only on the cloud.",
1851    fp_proxy_title: "Proxy (Catellix Proxy Engine)",
1852    fp_proxy_desc: "It acts as a local hub installed in your office or datacenter. It sits on the same network as your routers, switches and firewalls, so it can connect to them, run backups, collect BGP, OSPF and run commands — all on your network. Data is sent to the cloud (SaaS) so you can see everything on the web or on your phone. The account owner logs in on the Proxy. It works offline too: it saves data locally and resends when the internet is back.",
1853    fp_agent_title: "Agent (Catellix Agent Engine)",
1854    fp_agent_desc: "It is a lightweight app that your team uses on their PC. It connects to the Proxy (on your network) and shows the same Catellix interface. Sub-users log in to the Agent with their credentials. The Agent does not need direct access to equipment — it asks the Proxy to do the work. Ideal for those who only want to operate, view or run tasks without installing the full Proxy on every machine.",
1855    fp_resumo: "Summary: Proxy = does the heavy lifting on your network; Agent = lightweight interface that connects to the Proxy. Together they let you use Catellix in hybrid mode (local + cloud) with full security and control on your infrastructure.",
1856    fp_indice: "Index",
1857    fp_toc_agent: "Agent and Proxy", fp_toc_visao: "Overview and Dashboard", fp_toc_hosts: "Host management", fp_toc_backup: "Backup and collection", fp_toc_tasks: "Tasks (scheduled)", fp_toc_protocolos: "Network protocols (BGP, OSPF, Layer 2, MPLS)", fp_toc_ferramentas: "Network tools", fp_toc_analise: "Network analysis and AuriX", fp_toc_lg: "Looking Glass", fp_toc_gmud: "GMUD (changes)", fp_toc_ipam: "IPAM", fp_toc_servidores: "Servers (Linux and Windows/RDP)", fp_toc_relatorios: "Reports and Subbrowser", fp_toc_integracoes: "Integrations", fp_toc_admin: "Admin area",
1858    fp_h2_visao: "Overview and Dashboard", fp_h2_hosts: "Host management", fp_h2_backup: "Backup and collection", fp_h2_tasks: "Tasks (scheduled)", fp_h2_protocolos: "Network protocols (BGP, OSPF, Layer 2, MPLS)", fp_h2_ferramentas: "Network tools", fp_h2_analise: "Network analysis and AuriX", fp_h2_lg: "Looking Glass", fp_h2_gmud: "GMUD (Change management)", fp_h2_ipam: "IPAM", fp_h2_servidores: "Servers (Linux and Windows / RDP)", fp_h2_relatorios: "Reports and Subbrowser", fp_h2_integracoes: "Integrations", fp_h2_admin: "Admin area (for managers)",
1859    fp_ferramentas_intro: "Each tool is available on the \"Tools\" screen of the platform. Below, what each one does and what makes it stand out.",
1860    fp_footer: "Catellix - Functions",
1861    pagination_prev: "Previous", pagination_next: "Next",
1862    backup_title: "Backup and Collection", backup_hint: "List hosts, create groups, schedule collection. Click group or Manage. Groups in browser.",
1863    backup_job_queue_title: "Collection status",
1864    groups_title: "Host groups", groups_new_placeholder: "Group name", groups_create_btn: "Create group with selected",
1865    schedule_title: "Collection schedule", schedule_time: "Time", schedule_keep: "Keep for", schedule_days: "days",
1866    schedule_name_placeholder: "Name (optional)", schedule_type_hosts: "Selected hosts", schedule_type_group: "Group",
1867    schedule_btn: "Schedule collection", schedule_cron_hint: "Schedules on server. Configure cron with BACKUP_CRON_SECRET.",
1868    batch_selected: "selected", batch_collect: "Collect backup from selected", batch_schedule: "Schedule time for selection",
1869    filter_name: "Filter by name", filter_ip: "Filter by IP", filter_vendor: "Filter by vendor",
1870    table_check: "Select all", table_name: "Name", table_ip: "IP", table_vendor: "Vendor", table_backup: "Backup",
1871    table_next: "Next run", table_actions: "Actions",
1872    btn_view_dr: "View DR", btn_historico: "History", btn_collect: "Collect", btn_schedule: "Schedule", manage_group: "Manage",
1873    timezone_label: "Timezone", language_label: "Language",
1874    table_scroll_aria: "Table — swipe horizontally to see all c
1874olumns",
1875    ctrl_nav_licenses: "Licenses", ctrl_nav_install_app: "Install app", ctrl_nav_verification: "Verification", ctrl_nav_change_password: "Change password", ctrl_nav_duvidas: "Help",
1876    ctrl_sidebar_det_latency_kicker: "Catellix Detector",
1877    ctrl_sidebar_det_latency_suf: "ms avg",
1878    ctrl_sidebar_det_latency_open: "Open Monitoring →",
1879    ctrl_sidebar_det_latency_title: "Average latency of OK probes in the public catalog. Opens Monitoring (dashboard).",
1880    ctrl_safe_zone: "Safe Zone / Zona Segura",
1881    ctrl_safe_zone_radius: "Radius (meters)", ctrl_safe_zone_active: "Active", ctrl_safe_zone_save: "Save / Salvar", ctrl_safe_zone_delete: "Disable / Remove",
1882    ctrl_safe_zone_hint: "Define the safe area on the map. Click to choose the center. The child will receive alerts if they leave the area.",
1883    ctrl_safe_zone_success: "Safe zone saved successfully! / Zona segura salva!",
1884    ctrl_safe_zone_removed: "Safe zone removed. / Zona segura removida.",
1885    ctrl_hero_kicker: "Simple, guided panel for families", ctrl_hero_subtitle: "Monitor your child's phone clearly and safely. Choose a device, tap the action you want, and Catellix does the rest.",
1886    ctrl_hero_step1: "Choose the device", ctrl_hero_step2: "Tap the desired action", ctrl_hero_step3: "Wait for sync",
1887    ctrl_hero_how_toggle: "How to use the panel (steps 1 · 2 · 3)",
1888    ctrl_missions_btn: "🎯 Learn how missions work",
1889    ctrl_missions_hint: "Opens a guide to the video library, quizzes, and Aurix rewards.",
1890    ctrl_missions_modal_title: "Missions, videos & rewards",
1891    ctrl_missions_modal_intro: "See how to use the content library to create missions and motivate your child with Aurix.",
1892    ctrl_missions_tab_overview: "Overview",
1893    ctrl_missions_tab_video: "Video library",
1894    ctrl_missions_tab_quiz: "Quizzes",
1895    ctrl_missions_tab_aurix: "Aurix & screen time",
1896    ctrl_missions_close_aria: "Close missions guide",
1897    ctrl_missions_body_overview: "<p class=\"missions-p\">In Catellix Kids, you can <strong>guide learning</strong> by combining blocking and rewards. The <strong>content library</strong> (educational videos and quizzes) can be used as the basis for <strong>missions</strong>: you choose what the child should watch or complete.</p><p class=\"missions-p\">When they finish, they earn <strong>Aurix</strong> — coins that can be exchanged for <strong>extra screen time</strong>, according to the rules you set in the app.</p>",
1898    ctrl_missions_body_video: "<p class=\"missions-p\">The <strong>video library</strong> brings educational videos inside the child’s app. Use them to suggest topics (science, history, digital wellbeing) and turn them into missions — for example: “watch video X” before leisure screen time.</p><p class=\"missions-p\">It’s a <strong>playful, guided</strong> way to learn — gamified, with clear goals.</p>",
1899    ctrl_missions_body_quiz: "<p class=\"missions-p\"><strong>Quizzes and quick games</strong> reinforce what was learned. You can assign missions like “complete the quiz about Y” — fun and gamified, with Aurix rewards for finishing or doing well.</p><p class=\"missions-p\">Study and screen time connect: the child <strong>plays to learn</strong> and you track progress.</p>",
1900    ctrl_missions_body_aurix: "<p class=\"missions-p\"><strong>Aurix</strong> is the reward currency: children earn it by completing missions. In the panel and app, parents set how Aurix converts into <strong>extra screen minutes</strong> — education and fun in one place.</p><p class=\"missions-p\">The goal is to <strong>recognize effort</strong> and teach balance between duties and leisure.</p>",
1901    ctrl_sidebar_collapse: "Collapse menu", ctrl_sidebar_expand: "Expand menu",
1902    ctrl_back_plans: "Mobile plans", ctrl_welcome: "Welcome to Catellix", ctrl_welcome_logged: "Welcome to Catellix, {0}, you are logged in.",     ctrl_license_days_left: "days left", ctrl_license_day_left: "day left", ctrl_license_active: "Your license is active.", ctrl_license_expires_soon: "Your license expires soon. Renew to keep access.",
1903    ctrl_trial_min_left: "Free trial — {0} min left", ctrl_trial_intro: "You have 7 free days to try Catellix Kids.",
1904    ctrl_trial_ended: "Free trial ended", ctrl_license_expired: "License expired",
1905    ctrl_trial_ended_detail: "Your 7-day free trial has ended. Get a plan to keep using parental control.",
1906    ctrl_license_expired_detail: "Your Catellix Kids license has expired. Renew to keep using parental control.",
1907    ctrl_tag_trial_ended: "Free ended", ctrl_tag_expired: "Expired", ctrl_btn_add_disabled_expired: "License expired — renew to pair devices",
1908    ctrl_devices_title: "Your devices",
1909    ctrl_devices_hint: "Tap a card to open the device panel. Use Locate, Screen time and Find for quick actions.",
1910    ctrl_add_device: "Add device", ctrl_add_device_btn: "+ Add device", ctrl_locate: "Locate", ctrl_block: "Block", ctrl_find: "Find", ctrl_screen_time_quick: "Screen time", ctrl_screen_time_quick_title: "Screen time — daily report, history and app ranking",     ctrl_open_panel: "Open panel",
1911    ctrl_setup_steps_btn: "Step-by-step", ctrl_setup_steps_aria: "Open step-by-step setup (plan, screen time, fence, sites, apps, Aurix, missions)", ctrl_setup_wizard_close_backdrop: "Close and return to panel",
1912    ctrl_pending_title: "Pending actions", ctrl_pending_time: "Extra screen time request from child", ctrl_pending_apps: "App install(s) awaiting your approval (%n)", ctrl_pending_missions: "Mission(s) awaiting your approval (%n)", ctrl_pending_chat: "Unread chat message(s) (%n)", ctrl_pending_fallback: "Pending requests from child", ctrl_pending_go_device: "Go to device",
1913    ctrl_alert_recover: "Phone stuck on \"Oops, time limit\" screen or not syncing? Click to see how to recover",
1914    ctrl_renew_plan: "Renew plan", ctrl_push_title: "Get alerts in your browser", ctrl_push_text: "When your child requests to install an app or access a blocked site, you'll be notified right away.",
1915    ctrl_push_activate: "Enable notifications", ctrl_push_modal_title: "Enable alerts in this browser?", ctrl_push_modal_intro: "You'll receive instant notifications when your child:",
1916    ctrl_push_yes: "Yes, enable", ctrl_push_no: "Not now",
1917    ctrl_poll_notif_sos_title: "Catellix Kids — SOS", ctrl_poll_notif_sos_body: "{0}: SOS alert.",
1918    ctrl_poll_notif_time_title: "Catellix Kids — Screen time", ctrl_poll_notif_time_body: "{0}: asked for more screen time.",
1919    ctrl_poll_notif_install_title: "Catellix Kids — App to approve", ctrl_poll_notif_install_body: "{0}: {1} new install request(s).",
1920    ctrl_poll_notif_mission_title: "Catellix Kids — Mission", ctrl_poll_notif_mission_body: "{0}: mission awaiting approval.",
1921    ctrl_poll_notif_chat_title: "Catellix Kids — Chat", ctrl_poll_notif_chat_body: "{0}: new chat message.",
1922    ctrl_back_devices: "← Back to devices", ctrl_back_devices_aria: "Back to device list",
1923    ctrl_empty_devices_expired: "No linked devices. Your license has expired — renew to pair devices.",
1924    ctrl_empty_devices_pair: "No linked devices. Pair a device using the Catellix Kids app.",
1925    ctrl_group_security_blocks: "Security & blocking", ctrl_group_location: "Location", ctrl_group_activity: "Activity",
1926    ctrl_group_camera_screen: "Camera & screen", ctrl_group_apps_password: "Apps & password", ctrl_group_contacts_comms: "Contacts & messengers",
1927    ctrl_group_communication: "Communication", ctrl_group_update_maint: "Updates & maintenance",
1928    ctrl_action_policy_sites: "Manage blocked sites", ctrl_action_location_map: "View location on map", ctrl_action_displacement: "Movement report",
1929    ctrl_action_ring_alarm: "Find phone (alarm)", ctrl_action_events: "View events", ctrl_action_screentime_smart: "Screen time / Smart controls",
1930    ctrl_action_keylog_report: "Typed text report", ctrl_action_cam_front: "Take photo (front camera)", ctrl_action_cam_back: "Take photo (rear camera)",
1931    ctrl_action_screenshot: "Capture phone screen", ctrl_action_apps_installed: "Installed apps", ctrl_action_kids_password: "App password",
1932    ctrl_action_contacts_alerts: "Contacts & alerts", ctrl_action_sms_log: "SMS log", ctrl_action_call_log: "Call log",
1933    ctrl_action_chat_child: "Chat with child", ctrl_action_missions: "Missions", ctrl_action_missions_hist: "Mission history",
1934    ctrl_action_donate_aurix: "Donate Aurix to child", ctrl_action_clear_cache: "Clear cache on phone",
1935    ctrl_action_update_ps: "Check for update (Play Store)", ctrl_action_update_apk: "Update app on phone",
1936    ctrl_device_actions_intro: "What you can do with this device:", ctrl_device_sync_hint_q: "How long does it take?",
1937    ctrl_device_sync_hint_p1: "Changes you make here reach the child's ph
1937one within about", ctrl_device_sync_hint_p2: "~1 minute", ctrl_device_sync_hint_p3: ". Everything syncs automatically.",
1938    ctrl_status_active: "Active", ctrl_status_online: "Online", ctrl_status_offline: "Offline", ctrl_last_sync_short: "Last sync:",
1939    ctrl_meta_status: "Status:", ctrl_meta_last_sync: "Last sync:", ctrl_never_synced: "Never",
1940    ctrl_revise_plan: "Review plan", ctrl_revise_plan_aria: "Review device plan", ctrl_choose_plan_tag: "Choose plan",
1941    ctrl_demo_action_unavailable: "Not available in demo",
1942    ctrl_demo_camera_hint: "In demo: tap to see a sample image (no real phone).",
1943    ctrl_demo_camera_caption: "Fictional scene for demonstration. With a linked device, the photo comes from the child's phone.",
1944    ctrl_open_device_aria: "Open device panel",
1945    ctrl_device_panel_aria: "Device action panel",
1946    ctrl_autoconf_tag: "Setup complete", ctrl_quick_config_tag: "Quick setup",
1947    ctrl_device_removed_badge: "Device removed", ctrl_status_repairing: "🔄 Awaiting re-pairing",
1948    ctrl_status_pending_pairing: "Awaiting pairing", ctrl_device_numbered: "Device %n",
1949    privacy_title_pt: "Política de Privacidade – Catellix Kids", privacy_title_en: "Privacy Policy – Catellix Kids",
1950    privacy_back_pt: "Voltar aos planos", privacy_back_en: "Back to plans", privacy_slogan_pt: "Política de Privacidade", privacy_slogan_en: "Privacy Policy",
1951    privacy_intro_pt: "O Catellix Kids é um aplicativo de controle parental desenvolvido para ajudar pais e responsáveis a proteger crianças e adolescentes no ambiente digital.",
1952    privacy_intro_pt2: "Esta política de privacidade explica como os dados são coletados, utilizados e protegidos pelo serviço.",
1953    privacy_intro_en: "Catellix Kids is a parental control application developed to help parents and guardians protect children and adolescents in the digital environment.",
1954    privacy_intro_en2: "This privacy policy explains how data is collected, used, and protected by the service.",
1955    privacy_section_intro: "Introduction", privacy_section_data: "Data that may be collected", privacy_section_use: "Use of information",
1956    privacy_section_sharing: "Data sharing", privacy_section_security: "Security", privacy_section_consent: "Consent", privacy_section_deletion: "Data deletion", privacy_section_contact: "Contact",
1957    privacy_footer_pt: "© 2026 Catellix · Todos os direitos reservados", privacy_footer_en: "© 2026 Catellix · All rights reserved",
1958    privacy_title: "Privacy Policy – Catellix Kids", privacy_back: "← Back to plans", privacy_slogan: "Privacy Policy", privacy_footer: "© 2026 Catellix · All rights reserved",
1959    reset_title: "Forgot password", reset_email: "Email", reset_btn: "Send", reset_btn_link: "Send link", reset_back: "Back to login",
1960    reset_alert_email: "Please enter your email.", reset_alert_invalid: "Invalid data: ", reset_alert_sent: "If the email exists, we sent recovery instructions!",
1961    reset_alert_fail: "Could not send the link.", reset_alert_connect: "Error connecting to server.",
1962    setpw_title: "Set new password", setpw_new: "New password", setpw_confirm: "Confirm password", setpw_btn: "Change password",
1963    register_placeholder_name: "Your name", register_placeholder_email: "[email protected]", register_placeholder_password: "••••••••",
1964    register_req_len: "8+ characters", register_req_maius: "One uppercase letter", register_req_minus: "One lowercase letter",
1965    register_req_num: "One number", register_req_simb: "One symbol (!@#$%&*…)",
1966    register_alert_name: "Please enter your full name.", register_alert_email: "Please enter your email.",
1967    register_alert_weak: "Weak password. Required: ", register_alert_success: "User registered successfully!",
1968    register_alert_fail: "Registration failed.", register_alert_connect: "Error connecting to server.",
1969    register_alert_invalid: "Invalid data: ",
1970    setpw_req_len: "8+ characters", setpw_req_maius: "One uppercase letter", setpw_req_minus: "One lowercase letter",
1971    setpw_req_num: "One number", setpw_req_simb: "One symbol (!@#$%&*…)",
1972    setpw_err_link: "Invalid or expired link. Request a new password reset.",
1973    setpw_err_weak: "Weak password. Required: ", setpw_success: "Password updated successfully!",
1974    setpw_err_update: "Error updating password.", setpw_err_request: "Request error. Please try again.",
1975    setpw_err_invalid: "Invalid data: ", setpw_err_token: "Invalid or expired token.",
1976    index_second: "second", index_seconds: "seconds",
1977    cad_title: "Host Management", cad_back: "Back to Dashboard", cad_add: "+",
1978    cad_scan_now: "ScanNOW", cad_add_section: "Add Host", cad_filter_name: "Filter by name", cad_filter_ip: "Filter by IP", cad_filter_vendor: "Filter by vendor",
1979    cad_filter_clear: "Clear filters", cad_filters_label: "Filters:", cad_hosts_count: "hosts", cad_name: "Name", cad_ip: "IP", cad_vendor: "Vendor",
1980    cad_user_host: "Host User", cad_pass_host: "Host Password", cad_port: "Port", cad_port23_warning: "Port 23 (Telnet) is an insecure protocol. Traffic is sent unencrypted. Do you really want to continue?", cad_status: "Status", cad_firmware: "Firmware",
1981    cad_actions: "Actions", cad_edit: "Edit", cad_remove: "Remove", cad_btn_confirm: "Confirm", cad_btn_discard: "Discard", cad_none: "No hosts found.",
1982    cad_none_empty: "No hosts registered.", cad_none_filter: "No hosts match the filters.",
1983    cad_btn_view: "View DR", cad_btn_scan: "Scan", cad_btn_delete: "Delete", cad_btn_remote_title: "Remote access via SSH/Telnet (Aurix Remote)",
1984    cad_btn_constructor_title: "Constructor — suggested commands for this equipment",
1985    cad_btn_dr_title: "Disaster recovery backup",
1986    cad_snmp_test_error: "SNMP test", cad_snmp_test_network_error: "Error testing SNMP. Check connection.",
1987    cad_auto_detect: "Vendor and firmware are detected automatically on scan.",
1988    scancad_back: "Back to Host Management", scancad_title: "Scan Cad Host", scancad_subtitle: "Enter an IP or network (CIDR) and start the scan.",
1989    scancad_play: "Start Scan", scancad_status: "Status", scancad_http_access: "HTTP/HTTPS", scancad_ssh_22: "SSH (22)", scancad_telnet_23: "Telnet (23)", scancad_add_to_cad: "Add to registration",
1990    scancad_no_results: "No results. Enter an IP or CIDR and click Start Scan.",
1991    scancad_host_added_scan_bg: "Host added. Background scan started.",
1992    scancad_modal_title: "Add host to registration", scancad_ip_locked: "IP (from scan)",
1993    scancad_online: "Online", scancad_down: "Offline",
1994    scancad_add_all: "Add All",
1995    scancad_modal_add_all_title: "Add all to registration",
1996    scancad_modal_add_all_subtitle: "The same user, password and port will be used for all listed online IPs.",
1997    scancad_modal_add_all_subtitle_ports: "User and password for all; port (22 SSH or 23 Telnet) will be chosen automatically per IP based on what is open (SSH preferred).",
1998    scancad_add_all_confirm: "Add all",
1999    scancad_add_all_loading: "Loading hosts into database... (do not close this window)",
2000    scancad_add_all_progress: "Adding %1/%2...",
2001    scancad_add_all_done: "%1 host(s) added. Redirecting...",
2002    scancad_add_all_done_partial: "Done: %1 added, %2 failed.",
2003    scancad_add_all_err_user: "Enter host user.",
2004    scancad_add_all_err_pass: "Enter host password.",
2005    scancad_add_all_err_port: "Port must be between 1 and 65535.",
2006    scancad_add_all_err_no_ips: "No IPs with SSH or Telnet open to add.",
2007    tools_title: "Network Tools", tools_ping: "Ping", tools_ping_desc: "Latency and packet loss",
2008    tools_traceroute: "Traceroute", tools_traceroute_desc: "Route to destination",
2009    tools_dns: "DNS Lookup", tools_dns_desc: "Domain → A, AAAA, MX, NS",
2010    tools_portcheck: "Port Check", tools_portcheck_desc: "TCP port open?",
2011    tools_http: "HTTP Check", tools_http_desc: "Status and response time",
2012    tools_portscanner: "Port Scanner", tools_portscanner_desc: "Common ports",
2013    tools_banner: "Banner Grabber", tools_banner_desc: "Service on port",
2014    tools_ssl: "SSL Checker", tools_ssl_desc: "HTTPS certificate",
2015    tools_reversedns: "Reverse DNS", tools_reversedns_desc: "IP → name",
2016    tools_blacklist: "Blacklist Check", tools_blacklist_desc: "IP on blocklist?",
2017    tools_rpki: "RPKI Validation", tools_rpki_desc: "Prefix valid/invalid",
2018    tools_ipv4calc: "IPv4 Calculator", tools_ipv4calc_desc: "CIDR, mask, /31·/32, batch, TXT export",
2019    tools_ipv6calc: "IPv6 Calculator", tools_ipv6calc_desc: "Network, last, compressed, batch, TXT export",
2020    tools_ipv4_input: "IP/CIDR or IP and mask", tools_ipv6_input: "IPv6 address / prefix",
2021    tools_calc: "Calculate", tools_network: "Network", tools_broadcast: "Broadcast", tools_mask: "Mask",
2022    tools_wildcard: "Wildcard", tools_first_host: "First host", tools_last_host: "Last host",
2023    tools_hosts_total: "Total addresses", tools_hosts_usable: "Usable hosts",
2024    tools_first_addr: "First address", tools_last_addr: "Last address",
2025    tools_prefix_length: "Prefix length", tools_total_addresses: "Total addresses",
2026    tools_ipv4_invalid: "Invalid IPv4 address or mask.", tools_ipv6_invalid: "Invalid IPv6 address.",
2027    tools_ipcalc_v4_lead: "Single block (CIDR or IP + mask) or multiple lines — great for prefix reports.",
2028    tools_ipcalc_v6_lead: "Full IPv6 prefix: network, last address, totals, and TXT export (expanded + compressed).",
2029    tools_ipcalc_presets: "CIDR shortcuts",
2030    tools_ipcalc_batch_label: "Multiple prefixes (one per line)",
2031    tools_ipcalc_batch_ph: "192.168.10.0/24\n10.0.0.0/16\n172.16.5.0 255.255.255.0",
2032    tools_ipcalc_export_txt: "Export TXT",
2033    tools_ipcalc_export_batch: "Export list (TXT)",
2034    tools_ipcalc_binary: "IP and mask (binary)",
2035    tools_ipcalc_class: "Class (legacy)",
2036    tools_ipcalc_note: "Note",
2037    tools_ipcalc_hosts_p2p: "/31 point-to-point: 2 usable addresses (RFC 3021).",
2038    tools_ipcalc_hosts_single: "/32: single address (host or route).",
2039    tools_ipcalc_list_title: "Batch results",
2040    tools_ipcalc_v6_expanded: "Network (expanded)",
2041    tools_ipcalc_v6_compressed: "Network (compressed)",
2042    tools_ipcalc_v6_last_c: "Last (compressed)",
2043    tools_ipcalc_v6_scope: "Scope",
2044    tools_ipcalc_v6_batch_ph: "2001:db8::/32\nfe80::/10",
2045    tools_ipcalc_copy_hint: "The file includes a timestamp and every visible field.",
2046    tools_ipcalc_empty_hint: "Enter a block (IP/CIDR or IP + mask) or use the batch area.",
2047    tools_ipcalc_batch_none: "No valid lines in the batch (# comments are skipped).",
2048    tools_ipcalc_reserved_title: "IPv4 — reserved / well-known prefixes (hover to read; click to calculate)",
2049    tools_ipcalc_reserved_v6_title: "IPv6 — reserved / well-known prefixes (hover to read; click to calculate)",
2050    tools_ipcalc_v4_ref_10: "Private RFC 1918 (class A). Should not appear as a source on the public Internet.",
2051    tools_ipcalc_v4_ref_172: "Private RFC 1918 (172.16.0.0–172.31.255.255).",
2052    tools_ipcalc_v4_ref_192: "Private RFC 1918 (typical home/office).",
2053    tools_ipcalc_v4_ref_cgnat: "Carrier-Grade NAT (RFC 6598): space between ISP and CPE; shared.",
2054    tools_ipcalc_v4_ref_loop: "Loopback (RFC 1122): local to the host (e.g. 127.0.0.1).",
2055    tools_ipcalc_v4_ref_apipa: "Link-local / APIPA (RFC 3927): autoconfig when no DHCP.",
2056    tools_ipcalc_v4_ref_mc: "Multicast (RFC 3171): not a unicast source on the Internet.",
2057    tools_ipcalc_v4_ref_disc: "Reserved for future or special use (RFC 1112).",
2058    tools_ipcalc_v4_ref_zero: "Reserved: “this host” (0.0.0.0) and 0.0.0.0/8 (RFC 1122).",
2059    tools_ipcalc_v4_ref_bench: "Inter-device benchmarking (RFC 2544); not on the Internet.",
2060    tools_ipcalc_v4_ref_testnet: "Documentation networks (RFC 5737): 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 — TEST-NET-1 example.",
2061    tools_ipcalc_v6_ref_doc: "Documentation (RFC 3849): manuals and labs only; never production on the Internet.",
2062    tools_ipcalc_v6_ref_ula: "ULA — fc00::/7 range (RFC 4193): unique local; private, not globally routed on the Internet.",
2063    tools_ipcalc_v6_ref_ula_ex: "Example site ULA /48 (locally assigned fd… prefix; within fc00::/7).",
2064    tools_ipcalc_v6_ref_ll: "Link-local (RFC 4291): same L2 link only; typically fe80::/10.",
2065    tools_ipcalc_v6_ref_mc: "Multicast (RFC 4291): entire ff00::/8 block.",
2066    tools_ipcalc_v6_ref_loop: "IPv6 loopback (::1/128).",
2067    tools_ipcalc_v6_ref_6to4: "6to4 (RFC 3056): automatic tunnel 2002::/16 — legacy.",
2068    tools_ipcalc_v6_ref_teredo: "Teredo (RFC 4380): 2001::/32 — IPv4 tunnel; rarely used today.",
2069    tools_ipcalc_v6_ref_v4map: "IPv4-mapped IPv6 (::ffff:0:0/96).",
2070    tools_ipcalc_v6_ref_discard: "Discard prefix (RFC 6666): 100::/64 — traffic should be dropped.",
2071    tools_ipcalc_v6_ref_sitelocal: "Old site-local fec0::/10 — deprecated (RFC 3879); do not use on new networks.",
2072    tools_ipcalc_cheat_v4_summary: "IPv4 /0–/32 reference: mask, wildcard, count, and binary (click a row to calculate)",
2073    tools_ipcalc_cheat_v6_summary: "IPv6 /0–/128 reference: prefix/host bits, address count, and /64 subnets (click a row)",
2074    tools_ipcalc_cheat_rowhint: "Click a row to fill 0.0.0.0/n or ::/n and run the calculator.",
2075    tools_ipcalc_cheat_v4_cidr: "CIDR",
2076    tools_ipcalc_cheat_v4_mask: "Mask",
2077    tools_ipcalc_cheat_v4_wc: "Wildcard",
2078    tools_ipcalc_cheat_v4_ips: "Addresses",
2079    tools_ipcalc_cheat_v4_binm: "Mask (bin)",
2080    tools_ipcalc_cheat_v4_binw: "Wildcard (bin)",
2081    tools_ipcalc_cheat_v6_prefix: "CIDR",
2082    tools_ipcalc_cheat_v6_net: "Net bits",
2083    tools_ipcalc_cheat_v6_host: "Host bits",
2084    tools_ipcalc_cheat_v6_total: "Total addr.",
2085    tools_ipcalc_cheat_v6_sub64: "/64 in block",
2086    tools_ipcalc_fastscan: "Fast scan (subnet)",
2087    tools_ipcalc_fastscan_busy: "Scanning…",
2088    tools_ipcalc_fastscan_hint: "Quick ping + TCP 80, 443, 8080, 25, and 3389 in parallel on a sample of the prefix (up to 32 addresses).",
2089    tools_ipcalc_scan_need_cidr: "Calculate or enter a valid CIDR (or first batch line).",
2090    tools_ipcalc_scan_found_title: "Live addresses found",
2091    tools_ipcalc_scan_none_title: "No quick response",
2092    tools_ipcalc_scan_none_body: "None of the sampled addresses replied to ICMP or accepted TCP on the tested ports.",
2093    tools_ipcalc_scan_found_intro: "Communication detected (links where applicable):",
2094    tools_ipcalc_scan_duration: "Total time",
2095    tools_ipcalc_scan_error: "Fast scan error",
2096    tools_ipcalc_scan_sampled: "Sampled:",
2097    tools_ipcalc_scan_close: "Close",
2098    tools_click_above: "Click a tool above to use it.",
2099    tools_host_search: "Search host", tools_host_search_placeholder: "Host name or IP",
2100    tools_target: "Target (IP or hostname)", tools_domain: "Domain", tools_host: "Host", tools_port: "Port",
2101    tools_run: "Run", tools_running: "Running",
2102    tools_port_open: "Port open", tools_port_closed: "Port closed",
2103    tools_open_ports: "Open ports", tools_none: "none",
2104    tools_listed_in: "Listed in", tools_not_listed: "Not listed on known RBLs.",
2105    tools_prefix: "Prefix (e.g. 193.0.0.0/21)", tools_no_ptr: "(no PTR)",
2106    tools_asn_country: "ASN / Country",
2107    tools_asn_holder: "Holder",
2108    tools_tr_table_aurix: "AuriX Table",
2109    tools_tr_linux_output: "Traceroute (Linux)",
2110    tools_tr_enriching: "Querying hops and enriching ASN/country...",
2111    tools_nav: "Tools",
2112    lg_title: "Looking Glass", lg_subtitle: "Query BGP routes (received/advertised) on a Looking Glass",
2113    lg_subtitle_new: "Query BGP prefix on Looking Glasses", lg_info_new: "Query BGP routes on public Looking Glasses (Brazil and international). Enter the prefix (e.g. 200.160.0.0/16) and choose Brazil, International or All.",
2114    lg_prefix: "BGP prefix", lg_mode: "Mode", lg_mode_br: "Brazil", lg_mode_intl: "International", lg_mode_all: "All",
2115    lg_prefix_required: "Enter the BGP prefix.", lg_consult: "Query", lg_consulting: "Querying", lg_ok: "Ok", lg_fail: "Fail", lg_no_output: "No output", lg_show_logs: "Show connection logs", lg_error: "Error",
2116    lg_info: "Connect to a Looking Glass (SSH or Telnet), auto-detect vendor and run BGP command for the given peer. Enter the BGP neighbor IP and choose Received or Advertised.",
2117    lg_select_lg: "Looking Glass", lg_neighbor_ip: "Peer IP (neighbor)", lg_direction: "Type", lg_start: "Start",
2118    lg_received: "Received", lg_advertised: "Advertised",
2119    bgp_title: "BGP – Sessions and ASNs", bgp_subtitle: "Collect BGP sessions from the device and query whois (name and IP blocks for the ASN via LACNIC).",
2120    bgp_collect_section: "Collect BGP sessions", bgp_host_label: "Host", bgp_select_host: "Select a host",
2121    bgp_btn_collect: "Collect BGP", bgp_hint_cmd: "BGP command is chosen automatically by vendor (Cisco, Juniper, MikroTik, Huawei, Nokia, Arista, etc.).",
2122    bgp_tree_title: "BGP exits tree", bgp_tree_hint: "Device (root) and BGP established neighbors (exits by ASN). Click ▶ on public ASNs to expand up to 3 levels.", bgp_tree_root: "Device", bgp_tree_link: "Show tree", bgp_tree_link_title: "Show BGP exits tree in new page",
2123    bgp_tree_prefixes: "Prefixes", bgp_tree_error: "Error loading",
2124    bgp_established_section: "Established sessions", bgp_other_section: "Other (non-established) sessions",
2125    bgp_hint_select_collect: "Select a host and click Collect BGP.", bgp_hint_other: "Sessions in Idle, Active, Connect, etc.",
2126    bgp_table_asn: "ASN", bgp_table_neighbor: "Neighbor", bgp_table_state: "State", bgp_table_actions: "Actions",
2127    bgp_loading_title: "Collecting BGP", bgp_loading_sessions: "Collecting BGP sessions", bgp_loading_states: "Processing states (Established / other)",
2128    bgp_done: "BGP collected successfully", bgp_fail: "Collection failed.", bgp_sessions_established: "session(s) established.",
2129    bgp_modal_asn: "ASN details", bgp_modal_prefixes: "ASN IP prefixes (RDAP LACNIC):",
2130    bgp_routes_title: "BGP Route Analysis", bgp_routes_subtitle: "Execute received-routes or advertised-routes per peer. Use peers found in previous discovery (BGP page).",
2131    bgp_tables_title: "Table Analysis (ASN)", bgp_tables_subtitle: "Enter an ASN to search for prefixes (whois/RDAP). Choose an established peer and validate which prefixes from this ASN were received in BGP (received). More specific prefixes contained in a block are also considered.",
2132    nav_bgp_back: "← BGP", nav_bgp_routes: "Route Analysis", nav_bgp_tables: "Table Analysis",
2133    perfil_title: "My profile",
2134    perfil_back: "Back to Dashboard",
2135    perfil_data_plan: "Account & plan",
2136    perfil_name_label: "Name",
2137    perfil_plan_current: "Current plan",
2138    perfil_license_time: "Time remaining",
2139    perfil_hosts_usage: "Host usage",
2140    perfil_expired_alert: "Your account has expired. To continue using scans, backup and host registration, subscribe to a plan below.",
2141    perfil_trial_7d_title: "7-day free trial",
2142    perfil_trial_7d_intro: "Your 1-hour trial has ended. Request a 7-day trial; we will validate and enable it via email.",
2143    perfil_trial_7d_pending: "Request under review. We will contact you by email.",
2144    perfil_trial_7d_rejected: "Your request was not approved. You can subscribe to a plan below.",
2145    perfil_trial_7d_btn: "Request 7-day free trial",
2146    perfil_trial_7d_sent: "Request sent. We will validate and contact you.",
2147    perfil_trial_7d_fail: "Could not send. Please try again.",
2148    perfil_plans: "Plans", perfil_plans_intro: "Free plan to try. Paid plans with monthly billing (PIX and card via Mercado Pago).",
2149    perfil_plan_free_name: "Free", perfil_plan_free_price: "Free", perfil_plan_free_per: "trial",
2150    perfil_plan_free_desc: "5 hosts · 7-day trial · then subscribe to a paid plan",
2151    perfil_btn_iniciar_free: "Start Free", perfil_plans_paid: "Paid plans",
2152    perfil_desktop_download: "Desktop Download",
2153    perfil_desktop_download_desc: "Download the Catellix Proxy and Agent installers for Windows. Each link is unique to your account and expires in 3 days.",
2154    perfil_dl_proxy: "Proxy Engine", perfil_dl_agent: "Agent Engine",
2155    perfil_dl_expires: "Links expire in 3 days. Come back here to generate new ones if needed.",
2156    perfil_dl_error: "Failed to load download links.",
2157    perfil_payments: "Payment history", perfil_payments_loading: "Loading…",
2158    perfil_payments_empty: "No payments recorded.", perfil_table_date: "Date", perfil_table_plan: "Plan",
2159    perfil_table_amount: "Amount", perfil_table_status: "Status",
2160    perfil_assinar: "Subscribe",
2161    perfil_flow_name: "Fast Flow - 30d",
2162    perfil_flow_license_time: "Fast Flow license",
2163    perfil_flow_desc: "NetFlow/IPFIX on Proxy. Price per your plan. Retains 15 days for analysis.",
2164    perfil_flow_comprar: "Buy Flow",
2165    flow_title: "Fast Flow - 30d",
2166    flow_subtitle: "NetFlow/IPFIX/sFlow on Proxy",
2167    flow_hosts_online: "Online devices",
2168    flow_toggle_enable: "Enable Flow",
2169    flow_toggle_disable: "Disable Flow",
2170    flow_status_awaiting: "Awaiting flow from host",
2171    flow_status_receiving: "Receiving flow",
2172    flow_script_modal_title: "Configuration script",
2173    flow_script_vendor: "Vendor",
2174    flow_script_copy: "Copy",
2175    flow_loading_ip: "Loading collector IP...",
2176    flow_scan_triggered: "Equipment collection in progress...",
2177    flow_no_hosts_online: "No online devices",
2178    flow_license_required: "Flow license required",
2179    flow_iface_limit_reached: "Limit of 5 interfaces per host reached. Remove one before adding.",
2180    flow_iface_add_placeholder: "E.g. GigabitEthernet0/0",
2181    flow_graph_title: "Aggregated traffic",
2182    flow_graph_host_hint: "Select the host (exporter) and period. Data retained for 15 days on SaaS.",
2183    flow_period: "Period",
2184    flow_filter_prefix: "Prefix (CIDR)",
2185    flow_filter_prefix_placeholder: "e.g. 10.0.0.0/8",
2186    flow_filter_asn: "ASN",
2187    flow_filter_asn_placeholder: "e.g. 26599",
2188    flow_no_data: "No flow data in the period. Enable flow on a host and send NetFlow to the Proxy IP on port 2055. Data retained for 15 days.",
2189    nav_flow: "Fast Flow",
2190    welcome_plans_intro: "Free plan to try. Paid plans with monthly billing (PIX and card).",
2191    welcome_plan_free: "Free", welcome_plan_free_price: "Free", welcome_plan_free_per: "trial",
2192    welcome_plan_free_desc: "5 hosts · 7-day trial · then subscribe to a paid plan",
2193    welcome_btn_iniciar_free: "Start Free", welcome_plans_paid: "Paid plans", welcome_assinar: "Subscribe",
2194    welcome_modal_whatsapp_ok: "Number has WhatsApp.",
2195    welcome_modal_whatsapp_nao: "This number is not on WhatsApp. Please provide a number with WhatsApp.",
2196    welcome_modal_whatsapp_unavailable: "Could not verify WhatsApp at this time. You can still submit.",
2197    welcome_modal_whatsapp_verificando: "Checking…",
2198    welcome_demo_tooltip: "Used %1 times · %2 clicks on the button to see the platform",
2199    err_expired_message: "Your account has expired.", err_expired_cta: "Go to Profile to subscribe to a plan and continue.",
2200    err_expired_link: "Go to Profile", err_expired_after: "to subscribe to a plan and continue.",
2201    settings_title: "Settings", settings_backup_reports: "Backup reports",
2202    settings_email_label: "Email for reports", settings_email_hint: "Used at the end of each scheduled collection. If left blank, uses login email.",
2203    settings_phone_label: "Phone (optional)", settings_phone_hint: "Optional contact. Include country code.",
2204    settings_slack_label: "Slack – Channel Webhook", settings_slack_hint: "Create an Incoming Webhook in Slack (App > Incoming Webhooks) and paste the URL here. Backup reports will be sent to the channel you choose.",
2205    settings_slack_test: "Send test to Slack",
2206    settings_telegram_label: "Telegram – Bot and group", settings_telegram_token_hint: "Bot token (obtained from @BotFather on Telegram).",
2207    settings_telegram_chat_hint: "Group or channel ID (use @userinfobot to see your ID; for groups, use a negative number). When backup finishes, the report will also be sent to this group.",
2208    settings_telegram_test: "Send test to Telegram",
2209    settings_integrations: "API Integrations", settings_zabbix_label: "Zabbix – User and password",
2210    settings_zabbix_url_hint: "Zabbix JSON-RPC API URL (e.g.: https://zabbix.server.com/api_jsonrpc.php).",
2211    settings_zabbix_user_placeholder: "User (e.g: Admin)", settings_zabbix_password_placeholder: "Password (leave blank to not change)",
2212    settings_zabbix_password_hint: "Authentication by user and password. Password is stored encrypted. Some Zabbix versions do not accept tokens.",
2213    settings_netbox_label: "NetBox – Token", settings_netbox_url_hint: "NetBox API base URL (e.g.: https://netbox.server.com/api/).",
2214    settings_netbox_token_placeholder: "Paste token here (leave blank to not change)",
2215    settings_netbox_token_hint: "Token-only connection. Paste the authentication token; it will be stored encrypted.",
2216    settings_save: "Save", settings_timezone_label: "Timezone", settings_language_label: "Language",
2217    settings_country_detected: "Country detected by access IP",
2218    settings_email_too_long: "Email too long.", settings_email_invalid: "Enter a valid email (e.g: [email protected]).",
2219    settings_phone_too_short: "Number too short. Use country code + area code + number (min. 10 digits).",
2220    settings_phone_too_long: "Number too long (max. 15 digits).",
2221    settings_saved: "Settings saved successfully!", settings_error: "Error saving settings.",
2222    pin_protected_title: "PIN protected page",
2223    pin_protected_message: "Request a code by email or enter your 6-digit PIN. Unlock lasts 45 minutes.",
2224    pin_placeholder: "PIN (6 digits)",
2225    pin_btn_continue: "Continue",
2226    pin_btn_send_email: "Send PIN by email",
2227    pin_btn_cancel: "Cancel",
2228    pin_continue: "Continue",
2229    pin_send_email: "Send PIN by email",
2230    pin_error: "PIN incorrect or expired. Request a new code by email.",
2231    pin_error_code_wrong: "Code incorrect. Check the number received by email.",
2232    pin_error_code_expired: "Code expired. Request a new one by email.",
2233    pin_error_pin_wrong: "PIN incorrect. Try again or request a code by email.",
2234    pin_error_no_pin: "Request a code by email (button above) or set a PIN in Profile.",
2235    pin_6_digits: "PIN must be exactly 6 numeric digits.",
2236    pin_session_expired: "Session expired. Please log in again.",
2237    pin_sent_message: "Code sent to your email. Enter it below.",
2238    pin_unlocked_45min: "Unlocked for 45 minutes.",
2239    pin_wait_minute: "Wait 1 minute to request another code.",
2240    ospf_title: "OSPF – Neighbors", ospf_subtitle: "Collect OSPF neighbors from the device. Adjacencies in Full state and other states (2-Way, Init, Down, etc.) are displayed by vend
2240or.",
2241    ospf_collect_section: "Collect OSPF neighbors", ospf_select_host: "Select a host", ospf_btn_collect: "Collect OSPF",
2242    ospf_btn_diagram: "Generate network diagram", ospf_hint_cmd: "OSPF command is chosen automatically by vendor (Cisco, Juniper, MikroTik, Huawei, Nokia, Arista, Fortinet, etc.). After collecting, use «Generate network diagram» to export a .drawio file with the topology.",
2243    ospf_loading_title: "Collecting OSPF", ospf_loading_status: "Preparing...", ospf_step_connect: "Connecting to device",
2244    ospf_step_collect: "Collecting OSPF neighbors", ospf_step_process: "Processing states (Full / other)", ospf_step_finish: "Finishing",
2245    ospf_done: "OSPF collected successfully", ospf_fail: "Collection failed.", ospf_hint_select: "Select a host and click Collect OSPF.",
2246    ospf_neighbors_full: "neighbor(s) in Full.",
2247    ospf_topo_title: "OSPF Topology – Connected routers",
2248    ospf_topo_subtitle: "Same topology as the Draw.io export. Host in the center, OSPF neighbors around it.",
2249    layer2_title: "Layer 2", layer2_subtitle: "VLANs and interfaces (statistics, error rate). Commands by vendor for Layer 2 network data.",
2250    layer2_collect_section: "Collect Layer 2", layer2_btn_collect: "Collect Layer 2",
2251    layer2_hint_cmd: "Created VLANs and interface information (errors, CRC). Cisco, Juniper, Huawei, Nokia, Arista, MikroTik, etc.",
2252    layer2_vlans_section: "VLANs", layer2_interfaces_section: "Interfaces (description / errors / CRC)", layer2_hint_vlans: "Run collection to list VLANs.",
2253    layer2_hint_interfaces: "Interfaces with error data when available.",
2254    layer2_col_description: "Description", layer2_col_status: "Status", layer2_status_up: "Up", layer2_status_down: "Down",
2255    layer2_lacp_section: "LACP / Port-Channel (validation)", layer2_lacp_members: "Members", layer2_lacp_status: "Status", layer2_hint_lacp: "Run collection to list and validate LACP/EtherChannel (Cisco, Arista, Juniper, Huawei, Dell).",
2256    layer2_loading_title: "Collecting Layer 2", layer2_loading_status: "Collecting…", layer2_loading_done: "Done",
2257    layer2_step_connect: "Connecting to equipment", layer2_step_collect: "Collecting VLANs / interfaces", layer2_step_process: "Processing data",
2258    mpls_title: "MPLS", mpls_subtitle: "MPLS protocol validation: LDP, MPLS interfaces and commands by vendor (Cisco, Juniper, Huawei, Nokia, Fortinet, MikroTik, etc.).",
2259    mpls_collect_section: "Collect MPLS", mpls_btn_collect: "Collect MPLS", mpls_hint_cmd: "Executes MPLS commands (LDP neighbor, MPLS interfaces) according to the device vendor.",
2260    mpls_raw_section: "MPLS output (raw)", mpls_hint_raw: "Run collection to display MPLS command output.",
2261    mpls_hint_chars: "characters.", mpls_hint_logs: "SSH session and collection logs.", mpls_log_count: "log(s).",
2262    mpls_source_label: "Source: ", mpls_source_snmp: "SNMP", mpls_source_ssh: "SSH/CLI",
2263    mpls_dashboard: "MPLS summary", mpls_peers_operational: "LDP sessions operational", mpls_peers_total: "Total LDP peers", mpls_interfaces_count: "MPLS interfaces",
2264    mpls_ldp_sessions: "LDP sessions (neighbors)", mpls_peer_address: "Peer / Address", mpls_ldp_id: "LDP ID", mpls_state: "State", mpls_interface: "Interface", mpls_holdtime: "Hold time",
2265    mpls_interfaces_section: "MPLS interfaces", mpls_enabled: "Enabled", mpls_labels: "Labels", mpls_raw_toggle: "View raw equipment output",
2266    mpls_loading_title: "Collecting MPLS", mpls_loading_status: "Collecting…", mpls_loading_done: "Done",
2267    mpls_step_connect: "Connecting to equipment", mpls_step_collect: "Collecting LDP / MPLS", mpls_step_process: "Processing data",
2268    aurix_intelligence_label: "Aurix Intelligence",
2269    gmud_title: "Change Management (GMUD)", gmud_back: "Back to Dashboard",
2270    gmud_step1_title: "Step 1 – Host (required)", gmud_step1_desc: "The GMUD must be linked to a device. Select the host.",
2271    gmud_step1_label: "Device", gmud_step1_select: "— Select a host —", gmud_step1_btn: "Continue",
2272    gmud_step2_title: "Step 2 – GMUD Data", gmud_step2_tecnico_nome: "Local technician contact (name)",
2273    gmud_step2_tecnico_contato: "Technician contact (email or phone)", gmud_step2_nome_gmud: "GMUD name",
2274    gmud_step2_nome_pop: "POP name", gmud_step2_equipamentos: "Involved equipment",
2275    gmud_step2_horario: "Scheduled time", gmud_step2_descricao: "Change description (optional)",
2276    gmud_step2_justificativa: "Justification (optional)", gmud_step2_impacto: "Impact analysis (optional)",
2277    gmud_step2_rollback: "Rollback plan (optional)", gmud_step2_btn_back: "Back",
2278    gmud_step2_btn_review: "Review and generate",
2279    gmud_step3_title: "Step 3 – Review and downloads", gmud_step3_desc: "Check the data and download the GMUD document (HTML/PDF) and the current device backup.",
2280    gmud_step3_doc_title: "GMUD Document", gmud_step3_doc_desc: "HTML with Catellix logo, ready to print or save as PDF.",
2281    gmud_step3_doc_download: "Download GMUD (HTML)", gmud_step3_doc_print: "Open and print / PDF",
2282    gmud_step3_backup_title: "Device backup", gmud_step3_backup_desc: "Current provisional backup (not saved to database). To attach to GMUD.",
2283    gmud_step3_backup_download: "Download backup", gmud_step3_btn_back: "Back to data",
2284    gmud_placeholder_nome: "Full name", gmud_placeholder_contato: "email and/or phone",
2285    gmud_placeholder_gmud: "e.g: GMUD-2024-001", gmud_placeholder_pop: "e.g: POP-SP-Centro",
2286    gmud_placeholder_equipamentos: "List of equipment or links",
2287    gmud_placeholder_horario: "e.g: 02/12/2024 02:00–04:00 (window)", gmud_placeholder_descricao: "Describe the scope of the change",
2288    gmud_placeholder_justificativa: "Reason for change", gmud_placeholder_impacto: "Expected impact",
2289    gmud_placeholder_rollback: "How to revert in case of failure",
2290    gmud_alert_select_host: "Select a host.", gmud_alert_generating: "Generating...",
2291    gmud_alert_error_doc: "Error generating document.", gmud_alert_getting_backup: "Getting backup...",
2292    gmud_alert_error_backup: "Error getting backup.",
2293    welcome_btn_mapa_wireless: "Wi-Fi MAP",
2294    welcome_btn_detector: "Catellix Detector",
2295    welcome_detector_title: "Catellix Detector — service status, incidents and trends",
2296    welcome_detector_aria: "Catellix Detector",
2297    welcome_quem_somos: "About us",
2298    welcome_bottom_nav_aria: "About the company and social media",
2299    mapa_wireless_doc_title: "Wi-Fi MAP",
2300    mapa_wireless_back: "← Back to welcome",
2301    mapa_wireless_menu_open: "Open map filters",
2302    mapa_wireless_menu_close: "Close map filters",
2303    mapa_wireless_title: "Wi-Fi MAP",
2304    mapa_wireless_sub: "OpenStreetMap + Leaflet: multiple map styles or a 3D globe with signals. Pan and zoom to explore.",
2305    mapa_wireless_filter_period: "Period",
2306    mapa_wireless_period_7d: "Last 7 days",
2307    mapa_wireless_period_15d: "Last 15 days",
2308    mapa_wireless_period_30d: "Last 30 days",
2309    mapa_wireless_period_60d: "Last 60 days",
2310    mapa_wireless_period_6m: "Last 6 months",
2311    mapa_wireless_period_1y: "Last year",
2312    mapa_wireless_period_all: "All history",
2313    mapa_wireless_band_label: "Band",
2314    mapa_wireless_band_24: "2.4 GHz",
2315    mapa_wireless_band_5: "5 GHz",
2316    mapa_wireless_points_count: "Points: %1",
2317    mapa_wireless_loading: "Loading points…",
2318    mapa_wireless_load_error: "Could not load points.",
2319    mapa_wireless_auto_refresh: "Map: next refresh in %1 s",
2320    mapa_wireless_auto_refresh_loading: "Map: refreshing data…",
2321    mapa_wireless_tooltip_band_24: "Wi‑Fi 2.4 GHz",
2322    mapa_wireless_tooltip_band_5: "Wi‑Fi 5 GHz",
2323    mapa_wireless_tooltip_test: "Test",
2324    mapa_wireless_tooltip_channel: "Channel %1",
2325    mapa_wireless_tooltip_updated: "Last map update: %1",
2326    mapa_wireless_tooltip_samples: "Aggregated samples (cell): %1",
2327    mapa_wireless_confidence_low: "low confidence",
2328    mapa_wireless_confidence_medium: "medium confidence",
2329    mapa_wireless_confidence_high: "high confidence",
2330    mapa_wireless_demo_notice: "Points are sent by Catellix Monitoring from Wi‑Fi scans: GPS coordinates at test time, band and channel/frequency of the strongest AP (no SSID). Sending is automatic while the analyser is in use; “Save to map” sends an extra point immediately.",
2331    mapa_wireless_no_points_in_period: "No points in this period in this view. The map only reads the public table `mapa_wireless_public_points` (app uploads with consent). Open the Wi‑Fi analyser in Monitoring with GPS; or widen the period to «All history».",
2332    mapa_wireless_filter_state: "State",
2333    mapa_wireless_filter_city: "City",
2334    mapa_wireless_all_brazil: "World (no state filter)",
2335    mapa_wireless_all_cities_state: "All cities in this state",
2336    mapa_wireless_pick_state: "Choose a state first",
2337    mapa_wireless_city_hint: "The city list appears after you select a state.",
2338    mapa_wireless_points_filtered: "In area: %1 · In period: %2",
2339    mapa_wireless_loc_section: "Map area",
2340    mapa_wireless_loc_tab_address: "Address",
2341    mapa_wireless_loc_tab_manual: "State / city",
2342    mapa_wireless_addr_label: "Search address",
2343    mapa_wireless_addr_placeholder: "Street, number, neighbourhood or city…",
2344    mapa_wireless_addr_clear: "Clear address",
2345    mapa_wireless_addr_osm_hint:
2346        "Auto-suggestions (OpenStreetMap). Pick a result to show points within ~22 km.",
2347    mapa_wireless_addr_loading: "Searching…",
2348    mapa_wireless_addr_empty: "No results. Try a different address.",
2349    mapa_wireless_addr_rate: "Too many searches — wait a moment and try again.",
2350    mapa_wireless_section_layers: "Layers & insights",
2351    mapa_wireless_section_view: "View",
2352    mapa_wireless_show_markers: "Points at test location (GPS)",
2353    mapa_wireless_show_pollution: "Concentration halos",
2354    mapa_wireless_show_heat: "Heat map (density)",
2355    mapa_wireless_heat_hint: "Intensity gradient on the 2D map; combine with markers and halos.",
2356    mapa_wireless_pollution_hint: "Yellow, orange or light red circles: more readings nearby (changes when you zoom).",
2357    mapa_wireless_legend_title: "Legend — concentration",
2358    mapa_wireless_legend_low: "Yellow: few nearby readings",
2359    mapa_wireless_legend_mid: "Orange: medium density",
2360    mapa_wireless_legend_high: "Light red: highest density",
2361    mapa_wireless_dark_map: "Dark basemap",
2362    mapa_wireless_map_tiles_loading: "Loading map and streets…",
2363    mapa_wireless_map_skin: "Map style",
2364    mapa_wireless_skin_osm: "Default OSM (streets & places when zoomed in)",
2365    mapa_wireless_skin_carto_light: "Light (fewer street labels)",
2366    mapa_wireless_skin_carto_dark: "Dark (CARTO)",
2367    mapa_wireless_skin_carto_voyager: "Colorful (roads & names)",
2368    mapa_wireless_skin_opentopo: "Terrain (OpenTopoMap)",
2369    mapa_wireless_skin_esri_sat: "Satellite (Esri)",
2370    mapa_wireless_skin_globe: "3D globe (signals + rings)",
2371    mapa_wireless_globe_hint:
2372        "Drag to rotate the globe. The base map uses OpenStreetMap tiles: zoom in to see countries, roads and cities in higher detail (including on phones). Small markers = Wi‑Fi readings; rings = pulse (sampled).",
2373    mapa_wireless_globe_osm_suffix: " — detailed map when you zoom in (same idea as 2D).",
2374    mapa_wireless_fab_toolbar_aria: "Map shortcuts: open 3D globe or return to 2D map",
2375    mapa_wireless_fab_3d: "3D globe",
2376    mapa_wireless_fab_2d: "2D map",
2377    mapa_wireless_fab_3d_aria: "Open 3D globe view with the same data points",
2378    mapa_wireless_fab_2d_aria: "Return to flat 2D map (restores the map style you used before)",
2379    mapa_wireless_fab_search_aria: "Search address and center the map",
2380    mapa_wireless_btn_view_address: "View address",
2381    mapa_wireless_btn_view_address_aria: "Open address search and centre the map",
2382    mapa_wireless_insight_title: "Interference at view centre",
2383    mapa_wireless_insight_hint:
2384        "Regional estimate (~4 km) from collaborative readings (same period and bands as your filters). Your local Wi‑Fi may differ.",
2385    mapa_wireless_insight_level_low: "Low",
2386    mapa_wireless_insight_level_moderate: "Moderate",
2387    mapa_wireless_insight_level_high: "High",
2388    mapa_wireless_insight_level_unknown: "No data",
2389    mapa_wireless_insight_loading: "Updating…",
2390    mapa_wireless_insight_error: "Unavailable now",
2391    mapa_wireless_addr_modal_title: "Go to an address",
2392    mapa_wireless_addr_modal_sub: "Type and pick a result; the map animates to that place.",
2393    mapa_wireless_addr_modal_close: "Close",
2394    mapa_wireless_download_btn: ".: Download now! .:",
2395    mapa_wireless_download_aria: "Download now — Catellix Desktop installer",
2396    mapa_wireless_download_thanks_title: "Thanks for helping out!",
2397    mapa_wireless_download_thanks_msg: "Great choice — well done!",
2398    mapa_wireless_download_thanks_sub: "Join us in building a better digital future.",
2399    mapa_wireless_download_close: "Close",
2400    mapa_wireless_btn_public_api: "Public API",
2401    mapa_wireless_btn_science: "Map insights",
2402    mapa_wireless_btn_science_aria: "Open collaborative map statistics panel",
2403    mapa_wireless_science_modal_title: "Collaborative science",
2404    mapa_wireless_science_modal_intro:
2405        "Live aggregated figures: how many readings are in the scientific dataset, how many grid cells have reliable coverage, and how 2.4 / 5 GHz bands contribute. We do not count or store user identities.",
2406    mapa_wireless_science_reload: "Refresh",
2407    mapa_wireless_science_loading: "Loading statistics…",
2408    mapa_wireless_science_error: "Could not load statistics. Try again.",
2409    mapa_wireless_science_close: "Close",
2410    mapa_wireless_science_label_total_readings: "Contributory readings (all time)",
2411    mapa_wireless_science_label_gps_points: "Unique public-map locations (GPS)",
2412    mapa_wireless_science_label_grid_cells: "Geographic cells with data (~%1 m edge)",
2413    mapa_wireless_science_label_cell_layers: "Cell × band aggregate series",
2414    mapa_wireless_science_conf_section: "Per-area reliability (aggregate rows: high = ≥5 readings in cell)",
2415    mapa_wireless_science_conf_high: "High confidence cells",
2416    mapa_wireless_science_conf_med: "Medium confidence (2–4 readings)",
2417    mapa_wireless_science_conf_low: "Initial confidence (1 reading)",
2418    mapa_wireless_science_band_section: "Readings by band",
2419    mapa_wireless_science_timespan: "First and last recorded reading (UTC)",
2420    mapa_wireless_science_geo_section: "Geographic coverage (estimated from coordinates)",
2421    mapa_wireless_science_countries: "Countries with at least one point",
2422    mapa_wireless_science_br_states_caption: "Brazilian federative units with data (27 total)",
2423    mapa_wireless_science_country_codes: "Countries (ISO 3166-1 alpha-2):",
2424    mapa_wireless_science_uf_codes: "Estimated state codes:",
2425    mapa_wireless_science_unclassified:
2426        "%1 position(s) did not fall inside any known country box (e.g. ocean or coarse limits).",
2427    mapa_wireless_science_charts_heading: "Analytic charts",
2428    mapa_wireless_science_chart_conf_title: "Statistical confidence of aggregate cells",
2429    mapa_wireless_science_chart_band_title: "Sample distribution by ISM band",
2430    mapa_wireless_science_chart_samples_title: "Raw dataset volumes",
2431    mapa_wireless_science_chart_geo_title: "Geographic coverage indicators",
2432    mapa_wireless_science_chart_conf_high_short: "High (n ≥ 5)",
2433    mapa_wireless_science_chart_conf_med_short: "Medium (2–4)",
2434    mapa_wireless_science_chart_conf_low_short: "Initial (1)",
2435    mapa_wireless_science_chart_conf_ylabel: "Series (cell × band)",
2436    mapa_wireless_science_chart_lab_samples: "Samples",
2437    mapa_wireless_science_chart_lab_public: "Unique GPS points",
2438    mapa_wireless_science_chart_lab_cell_series: "Aggregate series",
2439    mapa_wireless_science_chart_lab_agg_reads: "Σ reads in cells",
2440    mapa_wireless_science_chart_count_short: "Count",
2441    mapa_wireless_science_chart_lab_countries: "Countries (est.)",
2442    mapa_wireless_science_chart_lab_ufs: "BR states (est.)",
2443    mapa_wireless_science_footer:
2444        "Each submission improves regional statistical strength (repeatability). We never store SSID, BSSID, or personal IDs—only position, band, channel, frequency, and technical metadata.",
2445    mapa_wireless_api_modal_title: "Public API — wireless interference",
2446    mapa_wireless_api_modal_intro:
2447        "Integrate your site or tools with aggregated data from the Catellix collaborative map. JSON responses, no API key;
2447 per-IP limits apply. Address search uses Nominatim (OpenStreetMap) — please use responsibly.",
2448    mapa_wireless_api_modal_close: "Close",
2449    mapa_wireless_api_modal_html:
2450        '<h3>1. Address → coordinates</h3><p>With <code>limit=1</code> (default) returns <code>lat</code>, <code>lng</code> and <code>display_name</code>. With <code>limit=2…8</code> returns <code>results</code> (suggestion list).</p><pre>GET %ORIGIN%/api/public/mapa-wireless/geocode?q=Lisbon%2C%20Portugal\nGET %ORIGIN%/api/public/mapa-wireless/geocode?q=Main%20St%20100&limit=6</pre><h3>2. Nearby interference and suggested channels</h3><p>Requires latitude and longitude (or use step 1). Parameters: <code>radius_km</code> (0.5–50), <code>period</code> (7d, 15d, 30d, 60d, 6m, 1y), <code>bands</code> (e.g. 2.4,5), optional <code>include_points=1</code> for raw samples.</p><pre>GET %ORIGIN%/api/public/mapa-wireless/insight?lat=-23.5505&lng=-46.6333&radius_km=4&period=30d&bands=2.4%2C5</pre><p>Under <code>bands → 2.4 → recommended_channels</code>, order follows channels 1, 6 and 11 with lowest estimated overlap load. On 5 GHz, channels with fewer readings in the area are listed first. <code>interference_level</code> is <code>low</code>, <code>moderate</code>, <code>high</code> or <code>insufficient_data</code>.</p><h3>3. Address + analysis in one request</h3><pre>GET %ORIGIN%/api/public/mapa-wireless/lookup?q=Av.%20Paulista%2C%20Sao%20Paulo&radius_km=3&period=30d</pre><p>Combines <code>geocode</code> with the same insight fields. <code>POST …/contribuir</code> is for the Catellix Monitoring app (new readings), not for bulk automated queries.</p>',
2451    mapa_wireless_globe_load_error: "Could not load the 3D globe. Switched back to the default map.",
2452    mapa_wireless_fit_brazil: "World view",
2453    mapa_wireless_my_location: "Use my current location",
2454    mapa_wireless_your_location_label: "Your location",
2455    mapa_wireless_your_location_tooltip: "Your location • accuracy ±%1",
2456    mapa_wireless_your_location_tooltip_manual: "Your location (approximate)",
2457    mapa_wireless_geo_prompt: "The browser will ask for permission to use your position and zoom the map.",
2458    mapa_wireless_geo_unsupported: "Geolocation is not available in this browser.",
2459    mapa_wireless_geo_denied: "Location permission denied. Enable it in the browser settings to use this.",
2460    mapa_wireless_geo_error: "Could not get your location. Please try again.",
2461    mapa_wireless_geo_outside_br: "Location applied on the map.",
2462    mapa_wireless_precision_note: "On the map, each marker is offset a few metres from the true GPS (less overlap with the roadway). The server keeps full precision for statistics.",
2463    mapa_wireless_cluster_tip: "%1 readings grouped in this zone (zoom changes grouping).",
2464    /* Generic feedback modal (address search / my location) */
2465    mapa_wireless_feedback_close: "Close",
2466    mapa_wireless_feedback_continue: "Continue",
2467    mapa_wireless_feedback_geo_locating_title: "Locating you on the map…",
2468    mapa_wireless_feedback_geo_locating_msg: "We are getting your position via <strong>GPS / Wi-Fi</strong>. This can take a few seconds depending on signal.",
2469    mapa_wireless_feedback_geo_ok_title: "Location confirmed",
2470    mapa_wireless_feedback_geo_ok_msg: "We centred the map on your position with an estimated accuracy of <strong>%1 m</strong>.",
2471    mapa_wireless_feedback_geo_ok_sub: "The blue \"You are here\" dot stays visible while you browse.",
2472    mapa_wireless_feedback_geo_unsupported_title: "Geolocation unavailable",
2473    mapa_wireless_feedback_geo_denied_title: "Permission denied",
2474    mapa_wireless_feedback_geo_error_title: "Could not get your location",
2475    mapa_wireless_feedback_geo_denied_sub: "Enable location permission in your browser settings and try again.",
2476    mapa_wireless_feedback_geo_error_sub: "Make sure GPS is on. Indoors, near a window usually helps.",
2477    mapa_wireless_feedback_addr_searching_title: "Looking up address…",
2478    mapa_wireless_feedback_addr_searching_msg: "Querying <strong>OpenStreetMap (Nominatim)</strong> and the Catellix dataset.",
2479    mapa_wireless_feedback_addr_ok_title: "Address applied",
2480    mapa_wireless_feedback_addr_ok_msg: "Map centred on <strong>%1</strong>.",
2481    mapa_wireless_feedback_addr_ok_sub: "Showing Wi-Fi readings within roughly <strong>%1 km</strong> around this point.",
2482    mapa_wireless_feedback_addr_empty_title: "Address not found",
2483    mapa_wireless_feedback_addr_empty_sub: "Try rewording — street, number, district, city or postal code.",
2484    mapa_wireless_feedback_addr_rate_title: "Hold on a moment",
2485    mapa_wireless_feedback_addr_rate_sub: "Too many searches in a row. OpenStreetMap asked us to slow down.",
2486    mapa_wireless_feedback_stat_radius: "Radius",
2487    mapa_wireless_feedback_stat_points: "Readings",
2488    mapa_wireless_feedback_stat_accuracy: "Accuracy",
2489    mapa_wireless_feedback_stat_lat: "Latitude",
2490    mapa_wireless_feedback_stat_lng: "Longitude",
2491    /* Scientific concentration cluster panel */
2492    mapa_wireless_cluster_pop_title_low: "Concentration cluster — low density",
2493    mapa_wireless_cluster_pop_title_mid: "Concentration cluster — medium density",
2494    mapa_wireless_cluster_pop_title_high: "Concentration cluster — high density",
2495    mapa_wireless_cluster_pop_sub: "Scientific analysis of %1 collaborative Wi-Fi readings aggregated around this point.",
2496    mapa_wireless_cluster_stat_samples: "Samples",
2497    mapa_wireless_cluster_stat_samples_hint: "Independent readings (BSSID + timestamp) summed inside this cluster.",
2498    mapa_wireless_cluster_stat_radius: "Cluster radius",
2499    mapa_wireless_cluster_stat_radius_hint: "Estimated spatial-cluster radius in metres (zoom-adaptive grid).",
2500    mapa_wireless_cluster_stat_density: "Density",
2501    mapa_wireless_cluster_stat_density_hint: "Readings per km² in the immediate neighbourhood.",
2502    mapa_wireless_cluster_stat_dominant: "Dominant band",
2503    mapa_wireless_cluster_stat_dominant_hint: "2.4 GHz vs 5 GHz with the larger reading count.",
2504    mapa_wireless_cluster_quality_ok: "<strong>Low interference.</strong> The samples-to-area ratio and the distribution across channels 1, 6 and 11 (2.4 GHz) or 36–165 (5 GHz) suggest a <strong>low-overlap</strong> environment. Prefer 5 GHz where coverage exists.",
2505    mapa_wireless_cluster_quality_mid: "<strong>Moderate interference.</strong> Enough signals overlapping adjacent 2.4 GHz channels (non-orthogonal Hz/Δf). Consider the <code>/insight</code> API to get channels with lower estimated load.",
2506    mapa_wireless_cluster_quality_bad: "<strong>High interference.</strong> Dense network presence on overlapping channels: effective SNR tends to degrade (Shannon-Hartley model with aggregated noise floor). Strong recommendation to migrate critical traffic to 5 GHz/6 GHz with 80 MHz channels.",
2507    mapa_wireless_cluster_quality_insufficient: "<strong>Insufficient data.</strong> This area still has too few samples for a robust diagnosis. Keep collaborating with the Catellix Monitoring app to raise the dataset's statistical confidence (target n ≥ 20 per cluster).",
2508    mapa_wireless_cluster_bar_24: "<strong>%1</strong> readings 2.4 GHz",
2509    mapa_wireless_cluster_bar_5: "<strong>%1</strong> readings 5 GHz",
2510    mapa_wireless_cluster_foot: "Statistical confidence <strong>%1</strong>. Methodology: <em>quadtree-like</em> grid aggregation + sample-weighted average (n_samples). Open dataset available at <strong>/api/public/mapa-wireless/insight</strong> for scientific reproducibility.",
2511    mapa_wireless_cluster_confidence_high: "high (n ≥ 20)",
2512    mapa_wireless_cluster_confidence_med: "medium (10 ≤ n < 20)",
2513    mapa_wireless_cluster_confidence_low: "low (n < 10)",
2514    mapa_wireless_cluster_close: "Close panel",
2515    mapa_wireless_cluster_dominant_24: "2.4 GHz",
2516    mapa_wireless_cluster_dominant_5: "5 GHz",
2517    mapa_wireless_cluster_dominant_mixed: "Mixed",
2518    mapa_wireless_tester_strip:
2519        "<strong>Catellix Kids (APK):</strong> download our app — we are in <strong>Play Store review</strong>. Want to be an <strong>official tester</strong>?",
2520    mapa_wireless_tester_cta: "Tap here",
2521    mapa_wireless_tester_open_link: "Want to be an official APK tester?",
2522    mapa_wireless_tester_modal_title: "Become an official APK tester",
2523    mapa_wireless_tester_modal_intro:
2524        "Enter your <strong>@gmail.com</strong> address (the same as your Google account). We will forward the request so you can be added to the Play Store testers list.",
2525    mapa_wireless_tester_email_label: "Your Gmail",
2526    mapa_wireless_tester_email_placeholder: "[email protected]",
2527    mapa_wireless_tester_gmail_hint: "Only @gmail.com addresses. We do not send spam.",
2528    mapa_wireless_tester_submit: "Send request",
2529    mapa_wireless_tester_modal_close: "Close",
2530    mapa_wireless_tester_success_title: "Congratulations on joining!",
2531    mapa_wireless_tester_success_body:
2532        "You just took a meaningful step: <strong>testing early</strong> helps improve the product for thousands of people. Those who show up for <strong>communities</strong> and share honest feedback help build more human technology — <strong>thank you for doing this with us.</strong>",
2533    mapa_wireless_tester_success_deadline:
2534        "⏱️ Our team will email you and <strong>add your Gmail to the Play Store test group within 24 hours</strong> (business days). Check inbox, promotions, and spam.",
2535    mapa_wireless_tester_success_cta: "Love it — can't wait!",
2536    mapa_wireless_tester_success:
2537        "Thank you! Within <strong>24 hours</strong> you will receive instructions by email. Check your inbox and spam folder.",
2538    mapa_wireless_tester_err_gmail: "Please use an address that ends with @gmail.com.",
2539    mapa_wireless_tester_err_rate: "Too many attempts. Wait a minute and try again.",
2540    mapa_wireless_tester_err_generic: "Could not send. Please try again shortly.",
2541    mapa_wireless_tester_err_network: "Network error. Check your connection and try again.",
2542    welcome_hero_title: "Your whole network in one dashboard.",
2543    welcome_hero_what_we_do: "Routers, switches and firewalls — centralized, reliable monitoring.",
2544    welcome_hero_desc: "<strong>Aurix</strong>: network data as clear insight for fast decisions.",
2545    welcome_hero_ecosystem_label: "MULTI-VENDOR",
2546    welcome_hero_vendors_aria: "Supported vendors and platforms",
2547    welcome_hero_vendor_camera_title: "IP cameras",
2548    welcome_deco_kw_alertas: "Alerts",
2549    welcome_cta_platform: "Go to platform →",
2550    welcome_cta_diferencial: "See our differentiators",
2551    welcome_btn_ver_planos: "View plans",
2552    welcome_plans_modal_title: "Catellix plans",
2553    welcome_plans_modal_intro: "Compare monthly and annual on each card. Use the toggle or click <strong>Monthly</strong> / <strong>Annual</strong> on any card — that billing period applies when you subscribe. Annual: <strong>10% off</strong> vs. 12 monthly payments.",
2554    welcome_plans_modal_close_aria: "Close plans dialog",
2555    welcome_plans_teaser_hint: "Paid plans, monthly and annual prices, and Fast Flow add-on — open to compare.",
2556    welcome_check_updates: "Check for updates",
2557    welcome_checking: "Checking...",
2558    welcome_update_available: "New version available: {0}",
2559    welcome_update_download: "Open download page?",
2560    welcome_update_ok: "You have the latest version.",
2561    welcome_update_error: "Could not check for updates. Check your connection.",
2562    welcome_what_we_do_block: "Catellix sells a <strong>subscription-based software service</strong> for companies that operate corporate networks. Your engineering team uses one place to back up devices, run diagnostics, and automate repetitive checks — so they can focus on what really matters.",
2563    welcome_benefits_section_title: "✨ Why it matters",
2564    welcome_benefits_title: "Benefits for your team",
2565    welcome_benefits_1_title: "Easier troubleshooting",
2566    welcome_benefits_1_desc: "Find and fix network issues faster.",
2567    welcome_benefits_2_title: "Save man-hours",
2568    welcome_benefits_2_desc: "Less time on manual, repetitive tasks.",
2569    welcome_benefits_3_title: "Focus on what matters",
2570    welcome_benefits_3_desc: "Engineering can prioritize results and projects instead of routine operations.",
2571    welcome_benefits_4_title: "Less repetitive work",
2572    welcome_benefits_4_desc: "Backups, checks and collections run automatically.",
2573    welcome_features_intro: "Centralize multivendor environment management — Cisco, Juniper, Huawei, Nokia, Arista, MikroTik, Fortinet and others — in one place.",
2574    welcome_software_features_section: "✨ Software features",
2575    welcome_software_features_heading: "What the platform offers",
2576    welcome_features_multivendor: "Manage hosts, backups, protocols, scheduled tasks and diagnostics, with clear information and access via desktop or mobile.",
2577    welcome_new_features_title: "🆕 New features implemented",
2578    welcome_new_feature_tasks_title: "Tasks",
2579    welcome_new_feature_tasks_desc: "Schedule SSH commands per host (once or daily).",
2580    welcome_new_feature_lg_title: "Looking Glass",
2581    welcome_new_feature_lg_desc: "BGP prefix lookup on LGs in Brazil and international.",
2582    welcome_new_feature_flow_title: "Flow (traffic analysis)",
2583    welcome_new_feature_dashban_title: "DashBan (Kanban)",
2584    welcome_new_feature_cameras_sync_title: "External camera synchronization",
2585    welcome_feature_1: "<strong>Host management</strong> — Auto scan and vendor/firmware detection",
2586    welcome_feature_2: "<strong>Backup &amp; collection</strong> — Per host, daily schedule, configurable retention and email report",
2587    welcome_feature_3: "<strong>Disaster recovery</strong> — Backup on first scan, available for restore",
2588    welcome_feature_4: "<strong>Tasks</strong> — Scheduled SSH commands (once or daily), execution report",
2589    welcome_feature_5: "<strong>BGP</strong> — Neighbors, routes and analysis per host, multiple vendors",
2590    welcome_feature_6: "<strong>OSPF</strong> — Neighbors, costs, topology and diagram",
2591    welcome_feature_7: "<strong>Layer 2</strong> — VLANs and interfaces (stats, errors) per vendor",
2592    welcome_feature_8: "<strong>MPLS</strong> — LDP, MPLS interfaces per vendor",
2593    welcome_feature_9: "<strong>Tools</strong> — Ping, traceroute, DNS, port, HTTP, SSL, RPKI and other checks",
2594    welcome_feature_10: "<strong>Ping/traceroute report (Aurix)</strong> — Connectivity and route with smart interpretation",
2595    welcome_feature_11: "<strong>Port scanner</strong> — Open ports and service per host",
2596    welcome_feature_12: "<strong>GMUD</strong> — Change Management with document and optional text expansion",
2597    welcome_feature_13: "<strong>Dashboard</strong> — Overview, charts and topology",
2598    welcome_feature_14: "<strong>Plans &amp; subscription</strong> — Host limit per plan",
2599    welcome_feature_15: "<strong>Sub-users</strong> — Up to 6 linked to account with license inheritance",
2600    welcome_feature_16: "<strong>Multi timezone &amp; language</strong> — Timezone and locale per user",
2601    welcome_feature_17: "<strong>Login</strong> — Email/password and Google OAuth",
2602    welcome_feature_18: "<strong>Integrations</strong> — Telegram, Slack, Zabbix and NetBox",
2603    welcome_section_heart: "⚙️ The platform's heart",
2604    welcome_aurix_title: "Aurix",
2605    welcome_aurix_intro: "Not all data has value. Value comes from interpretation.",
2606    welcome_aurix_badge: "Aurix ← Aurion · aurum",
2607    welcome_aurix_origin: "<strong>Aurix</strong> comes from <em>Aurion</em>, a Latin-rooted word linked to <em>aurum</em> — gold. Since antiquity, gold symbolizes:",
2608    welcome_aurix_gold1: "real value",
2609    welcome_aurix_gold2: "permanence",
2610    welcome_aurix_gold3: "trust",
2611    welcome_aurix_desc: "Aurix is Catellix's analytical engine. It transforms raw network data into real value.",
2612    welcome_aurix_does: "Aurix:",
2613    welcome_aurix_feat1: "correlates logs",
2614    welcome_aurix_feat2: "analyzes network states",
2615    welcome_aurix_feat3: "cross-references events",
2616    welcome_aurix_feat4: "supports troubleshooting",
2617    welcome_aurix_feat5: "reveals invisible patterns in daily operations",
2618    welcome_section_story: "🌐 The story behind the name",
2619    welcome_catellix_title: "Catellix",
2620    welcome_catellix_intro: "Catellix was born from a family origin but designed for the world.",
2621    welcome_catellix_origin: "The name <strong>Catellix</strong> derives from the surname Catellani, intentionally transformed to:",
2622    welcome_catellix_feat1: "lose personal character",
2623    welcome_catellix_feat2: "gain technical sound",
2624    welcome_catellix_feat3: "become universal",
2625    welcome_catellix_suffix: "The suffix <strong>\"-ix\"</strong> was chosen for its strong historical association with Unix systems, engineering, infrastructure, and reliability.",
2626    welcome_catellix_base: "<strong>Catellix</strong> represents the foundation — the structure where network data is collected, preserved, and organized with precision.",
2627    welcome_tagline_pt: "Catellix is the foundation. Aurix reveals the value.",
2628    welcome_tagline_en: "Catellix is the foundation. Aurix is the intelligence.",
2629    welcome_section_plans: "📋 Plans",
2630    welcome_plans_title: "Choose your plan",
2631    welcome_req_agent_title: "Requirements – Catellix Agent",
2632    welcome_req_proxy_title: "Requirements – Catellix Proxy",
2633    welcome_preview_title: "📊 Platform Preview",
2634    welcome_preview_subtitle: "See how it works",
2635    welcome_preview_dashboard_label: "Dashboard",
2636    welcome_preview_hosts_label: "Host Management",
2637    welcome_preview_backup_label: "Backup & Collection",
2638    welcome_preview_bgp_label: "BGP",
2639    welcome_preview_gmud_label: "Change Management",
2640    welcome_preview_settings_label: "Settings",
2641    welcome_preview_ospf_label: "OSPF",
2642    welcome_preview_tools_label: "Tools",
2643    welcome_preview_traceroute_label: "Traceroute",
2644    welcome_preview_prev_aria: "Previous slide",
2645    welcome_preview_next_aria: "Next slide",
2646    welcome_contact_title: "✉️ Contact us",
2647    welcome_contact_subtitle: "Questions or suggestions",
2648    welcome_contact_name: "Name",
2649    welcome_contact_email: "Email",
2650    welcome_contact_message: "Message",
2651    welcome_contact_placeholder_name: "Your name",
2652    welcome_contact_placeholder_email: "[email protected]",
2653    welcome_contact_placeholder_msg: "Questions, suggestions or feedback...",
2654    welcome_contact_send: "Send",
2655    welcome_accessing_from: "Accessing from: ",
2656    welcome_contact_sent: "Message sent. Thank you for contacting us!",
2657    welcome_contact_error: "Error sending. Please try again.",
2658    welcome_ticket_modal_hint: "When you submit, you receive an <strong>opening code</strong> by email and our team is notified automatically. Source: monitoring page (Catellix).",
2659    welcome_ticket_success_code: "Your opening code:",
2660    welcome_footer_dev: "Catellix © 2026",
2661    welcome_chat_ticket_hint: "To open an official ticket (with a protocol), use the «Open ticket» button at the bottom of the page.",
2662    welcome_tagline_social: "— Connecting the future, today.",
2663    welcome_page_title: "Catellix — Network Solutions",
2664    login_alert_error: "Error signing in.",
2665    login_alert_fill_email: "Please enter your email.",
2666    login_alert_fill_password: "Please enter your password.",
2667    login_alert_invalid: "Invalid data: ",
2668    login_alert_check: "check email and password.",
2669    login_alert_connect: "Error connecting to server.",
2670    login_alert_google_token: "Error: Token not received from Google",
2671    login_alert_google_error: "Error signing in with Google: ",
2672    login_google_not_configured: "Google login not configured",
2673    login_google_load_error: "Error loading Google",
2674    welcome_plan_basic30_name: "Basic 30", welcome_plan_basic30_desc: "Up to 30 hosts.",
2675    welcome_plan_basic90_name: "Basic 90", welcome_plan_basic90_desc: "Up to 90 hosts.",
2676    welcome_plan_pro200_name: "Pro 200", welcome_plan_pro200_desc: "Up to 200 hosts.",
2677    welcome_plan_pro400_name: "Pro 400", welcome_plan_pro400_desc: "Up to 400 hosts.",
2678    welcome_plan_pro800_name: "Pro 800", welcome_plan_pro800_desc: "Up to 800 hosts.",
2679    welcome_plan_advanced1200_name: "Advanced 1200", welcome_plan_advanced1200_desc: "Up to 1200 hosts.",
2680    welcome_plan_advanced2400_name: "Advanced 2400", welcome_plan_advanced2400_desc: "Up to 2400 hosts.",
2681    welcome_plan_advanced3600_name: "Advanced 3600", welcome_plan_advanced3600_desc: "Up to 3600 hosts.",
2682    welcome_plan_unlimited_name: "Unlimited", welcome_plan_unlimited_desc: "Unlimited.",
2683    welcome_plan_month: "/ month",
2684    welcome_plan_year: "/ year",
2685    welcome_plan_flag_monthly: "Monthly",
2686    welcome_plan_flag_annual: "Annual",
2687    welcome_plan_annual_pct_badge: "Save 10%",
2688    welcome_plan_row_aria_monthly: "Select monthly billing for all plans",
2689    welcome_plan_row_aria_annual: "Select annual billing with 10% discount versus 12 monthly payments",
2690    welcome_back_inicio: "← Back to homepage",
2691    welcome_billing_annual_badge: "10% off on annual · Includes Fast Flow 365 on annual",
2692    welcome_billing_annual_flow365: "10% off on annual + Fast Flow 365",
2693    welcome_flow_addon_title: "〰 Fast Flow - 30d",
2694    welcome_flow_addon_desc: "NetFlow, IPFIX and sFlow on the Proxy. Aggregated traffic collection per device. Flow can be activated after purchasing a license. Price varies by plan:",
2695    welcome_flow_annual_hero_badge: "Enterprise benefit",
2696    welcome_flow_addon_title_annual: "Fast Flow 365 included on annual billing",
2697    welcome_flow_addon_desc_annual: "With <strong>annual billing</strong>, the <strong>Fast Flow</strong> module is bundled with <strong>365-day</strong> retention at the tier that matches your license — aggregated flows (NetFlow, IPFIX, sFlow) on the Proxy, with no separate add-on subscription.",
2698    welcome_flow_included_in_annual: "Included annually",
2699    welcome_plan_flow_addon_label: "Module add-on",
2700    welcome_plan_flow_included_annual_short: "Fast Flow 365 included on annual — add-on bundled in.",
2701    welcome_flow_card_365_note: "Annual plan: <strong>365-day</strong> retention — Fast Flow bundled for this tier.",
2702    welcome_flow_addon_cta: "View in Profile",
2703    welcome_flow_per_month: "/ month",
2704    welcome_flow_tag_15d: "15d retained",
2705    welcome_flow_tag_15d_title: "Retains only 15 days of data for Flow analysis",
2706    welcome_flow_tier_basic: "Basic", welcome_flow_tier_basic_per: "For Basic license",
2707    welcome_flow_tier_pro: "Pro", welcome_flow_tier_pro_per: "For Pro license",
2708    welcome_flow_tier_advanced: "Advanced", welcome_flow_tier_advanced_per: "For Advanced license",
2709    welcome_flow_tier_unlimited: "Unlimited", welcome_flow_tier_unlimited_per: "For Unlimited license",
2710    welcome_plan_contract_badge: "+ Sold",
2711    perfil_plan_basic30_desc: "Up to 30 hosts", perfil_plan_basic90_desc: "Up to 90 hosts",
2712    perfil_plan_pro200_desc: "Up to 200 hosts", perfil_plan_pro400_desc: "Up to 400 hosts",
2713    perfil_plan_pro800_desc: "Up to 800 hosts", perfil_plan_advanced1200_desc: "Up to 1200 hosts",
2714    perfil_plan_advanced2400_desc: "Up to 2400 hosts", perfil_plan_advanced3600_desc: "Up to 3600 hosts",
2715    perfil_plan_unlimited_desc: "Unlimited",
2716    welcome_plan_basic10_name: "Basic 10", welcome_plan_basic10_desc: "Up to 10 hosts.",
2717    welcome_plan_pro100_name: "Pro 100", welcome_plan_pro100_desc: "Up to 100 hosts.",
2718    welcome_plan_advanced800_name: "Advanced 800", welcome_plan_advanced800_desc: "Up to 800 hosts.",
2719    welcome_plan_advanced1600_name: "Advanced 1600", welcome_plan_advanced1600_desc: "Up to 1600 hosts.",
2720    perfil_plan_basic10_desc: "Up to 10 hosts", perfil_plan_pro100_desc: "Up to 100 hosts",
2721    perfil_plan_advanced800_desc: "Up to 800 hosts", perfil_plan_advanced1600_desc: "Up to 1600 hosts",
2722    perfil_plan_month: "/ month", perfil_unlimited_text: "Unlimited",
2723    perfil_alert_plan_not_found: "Error: Plan not identified. Reload the page and try again.",
2724    perfil_alert_session_expired: "Session expired. Redirecting to login...",
2725    perfil_alert_msg_not_found: "Error: Message element not found. Reload the page.",
2726    perfil_redirecting: "Redirecting to payment…",
2727    perfil_processing: "Processing...",
2728    perfil_payments_error: "Error loading.",
2729    perfil_email_label: "Email:",
2730    perfil_error_mp_token: "Invalid Mercado Pago token. Contact support.",
2731    perfil_error_session_expired: "Session expired. Please sign in again.",
2732    perfil_error_connect: "Could not connect to server. Check your connection.",
2733    perfil_error_mp_comm: "Error communicating with Mercado Pago. ",
2734    perfil_error_mp_check: "Check if the token is configured on the server.",
2735    perfil_error_unavailable: "Service temporarily unavailable. Try again in a few moments.",
2736    perfil_error_server: "Server error. Try again later.",
2737    perfil_error_checkout: "Error creating checkout. ",
2738    perfil_error_mp_config: "Mercado Pago integration under configuration. You'll be able to subscribe here soon.",
2739    perfil_error_connect_server: "Error connecting to server. ",
2740    perfil_error_connect_check: "Could not connect to server. Check:",
2741    perfil_error_connect_check1: "1. If the server is running",
2742    perfil_error_connect_check2: "2. Your internet connection",
2743    perfil_error_connect_check3: "3. If there's a firewall block",
2744    perfil_error_unknown: "Unknown error. Check the console for more details.",
2745    perfil_error_details: "Details: ",
2746    perfil_senha_conta: "Account password",
2747    perfil_senha_atual: "Current password",
2748    perfil_senha_nova: "New password",
2749    perfil_senha_confirm: "Confirm new password",
2750    perfil_salvar_senha: "Save password",
2751    cad_lock_title: "🔒 Host password",
2752    cad_lock_label: "New host password:",
2753    cad_lock_placeholder: "Enter password",
2754    cad_lock_cancel: "Cancel",
2755    cad_lock_save: "Save",
2756    cad_lock_alert_empty: "Enter a password.",
2757    cad_lock_saving: "Saving...",
2758    cad_lock_saved: "Password saved.",
2759    cad_lock_error: "Error saving.",
2760    cad_logs_title: "📋 Scan Logs - ",
2761    cad_logs_result: "Result:",
2762    cad_logs_last_scan: "Last scan:",
2763    cad_status_last_check: "Last check:",
2764    cad_status_interval: "Check: on demand (Scan button).",
2765    cad_logs_none: "No scan performed yet. Click \"Refresh\" to scan.",
2766    cad_logs_no_logs: "No logs available. Run a scan to see detailed logs.",
2767    cad_backup_title: "📄 Host Configuration",
2768    cad_backup_dr: "Disaster Recovery:",
2769    cad_backup_last_update: "This backup is automatically maintained for disaster recovery. Last update:",
2770    cad_backup_lines: "lines",
2771    cad_backup_chars: "characters",
2772    cad_backup_copy: "📋 Copy",
2773    cad_backup_download: "💾 Download",
2774    cad_backup_close: "Close",
2775    cad_backup_loading: "Loading backup...",
2776    cad_backup_none_title: "No backup available",
2777    cad_backup_none_desc: "Run a scan to create the backup of this device configuration.",
2778    cad_backup_none_scan: "🔍 Run Scan",
2779    cad_backup_error_title: "Error loading backup",
2780    cad_backup_error_desc: "Could not load backup. Please try again.",
2781    cad_backup_copy_success: "Backup copied to clipboard!",
2782    cad_backup_copy_error: "Error copying backup.",
2783    cad_backup_download_error: "No backup to download.",
2784    cad_logs_copy_success: "Logs copied to clipboard!",
2785    cad_logs_copy_error: "Error copying logs.",
2786    cad_delete_confirm: "Remove this host?\nThis action cannot be undone.",
2787    cad_delete_selected_confirm: "Remove %1 selected host(s)?\nThis action cannot be undone.",
2788    cad_btn_delete_selected: "selected · Delete",
2789    cad_delete_selected_progress: "Deleting...",
2790    cad_delete_selected_done: "%1 host(s) removed.",
2791    cad_msg_saved: "Changes saved.",
2792    cad_msg_host_removed: "Host removed.",
2793    cad_scan_started_bg: "Scan started in background. Status will update when complete.",
2794    cad_scan_running: "Scan in progress",
2795    cad_scan_finished: "Scan finished.",
2796    cad_scan_timeout: "Scan in background. Refresh the page to see the result.",
2797    cad_msg_host_remove_error: "Error removing host.",
2798    cad_msg_host_added: "Host added and configured successfully!",
2799    cad_msg_host_added_scan_issue: "⚠ Host added, but scan had issues.",
2800    cad_msg_host_added_no_id: "Host added, but could not get ID for scan.",
2801    cad_msg_error_add: "Error adding host: ",
2802    cad_filter_count: "of",
2803    tasks_title: "Tasks", tasks_back: "Back to Dashboard", tasks_menu: "Menu", tasks_dashboard: "Dashboard", tasks_cad_hosts: "Host Management", tasks_backup: "Backup & Collection", tasks_tasks: "Tasks", tasks_tools: "Tools", tasks_settings: "Settings", tasks_logout: "Logout",
2804    tasks_hint: "Schedule SSH commands to run on a host once or daily. Editing allowed until 10 min before execution.",
2805    tasks_schedule_title: "Schedule", tasks_host: "Host", tasks_select_host: "Select a host", tasks_commands_label: "Commands (one per line)", tasks_commands_placeholder: "E.g. show run...", tasks_type: "Type", tasks_once: "Once", tasks_daily: "Daily", tasks_datetime: "Date and time", tasks_time_daily: "Time (daily)", tasks_drag_hint: "↑↓ drag, scroll or click", tasks_timezone: "Timezone", tasks_btn_schedule: "Schedule",
2806    tasks_scheduled_title: "Scheduled tasks", tasks_th_host: "Host", tasks_th_next: "Next run", tasks_th_type: "Type", tasks_th_commands: "Commands", tasks_th_actions: "Actions", tasks_empty: "No tasks scheduled. Use the form above to create one.",
2807    tasks_report_btn: "Report", tasks_report_title: "Tasks report", tasks_report_close: "Close", tasks_report_hint: "Execution history. Click «View commands» or «View output» for full content.", tasks_report_empty: "No executions recorded yet.", tasks_th_date: "Date/Time", tasks_th_status: "Status", tasks_th_output: "Output", tasks_ver_comandos: "View commands", tasks_ver_saida: "View output", tasks_retorno_btn: "Output", tasks_retorno_aguardando: "Waiting...", tasks_historico_title: "Execution history", tasks_historico_hint: "Completed tasks. Permanent history. Use the buttons to view the command sent and the device response.", tasks_th_cmd_executed: "Command executed", tasks_th_response: "Response received", tasks_cmd_executed: "Command executed", tasks_response_received: "Response received",
2808    tasks_modal_comandos_title: "Task commands", tasks_modal_no_edit: "Cannot edit", tasks_modal_no_edit_desc: "Execution is in less than 10 minutes. You can cancel this task and schedule another with the desired commands.", tasks_modal_edit_commands: "Edit commands (one per line)", tasks_modal_close: "Close", tasks_modal_save: "Save",
2809    tasks_modal_report_title: "Report detail", tasks_modal_commands_sent: "Commands sent", tasks_modal_output: "Device output",
2810    tasks_ver_editar: "View / Edit commands", tasks_btn_edit: "Edit", tasks_btn_cancel: "Cancel", tasks_confirm_cancel: "Cancel this task? It will be removed from the schedule.",
2811    tasks_run_now: "Run now", tasks_status_running: "Executing task on {{host}}…", tasks_status_done: "Execution completed.", tasks_status_fail: "Execution failed.",
2812    tasks_status_cancelling: "Cancelling…", tasks_status_cancelled: "Task cancelled.", tasks_status_saving: "Saving…", tasks_status_updated: "Commands updated.", tasks_status_scheduling: "Scheduling…", tasks_status_scheduled: "Task scheduled.", tasks_status_loading_report: "Loading report…",
2813    tasks_err_save: "Error saving.", tasks_err_create: "Error creating task.", tasks_err_edit_msg: "Cannot edit: execution is in less than 10 minutes. You can cancel this task and schedule another with the desired commands.", tasks_alert_one_command: "Enter at least one command.", tasks_alert_host_and_commands: "Select a host and enter at least one command (one per line).", tasks_alert_datetime: "Enter date and time for one-time execution.", tasks_badge_success: "Success", tasks_badge_fail: "Failed",
2814    admin_back_dash: "Back to Dashboard", admin_reload: "Reload page", admin_denied: "Access denied. Only administrators can access this page.",
2815    admin_cupons_title: "Manager – Coupons and expired licenses", admin_cupons_section1: "Users with expired license", admin_cupons_section1_desc: "List of holders with expired license (potential customers for coupon).", admin_cupons_load: "Load list",
2816    admin_cupons_section2: "Create coupon", admin_cupons_section2_desc: "Generate a discount coupon for a specific plan.", admin_cupons_create: "Create coupon",
2817    admin_whatsapp_title: "Manager – WhatsApp Sales (Providers)", admin_whatsapp_section1: "Message for contact", admin_whatsapp_section1_desc: "Enter the message that will be pre-filled when opening WhatsApp. You can edit before sending.",
2818    admin_quick_template: "Quick template:", admin_whatsapp_manager_cupons: "Manager – Coupons",
2819    relatorio_investidor_title: "Investor Report", relatorio_manager_title: "Report – Manager and Chat Functions",
2820    fp_back_inicio: "← Back to home",
2821    fp_toc_constructor: "Aurix Constructor", fp_toc_flow: "Flow (traffic analysis)", fp_toc_dashban: "DashBan (Kanban)", fp_toc_pop: "POP Monitoring (IP Cameras)",
2822    fp_visao_li1: "Dashboard: Overview with KPIs (host counts, backups, etc.), charts and network topology.",
2823    fp_visao_li2: "Activity: Latest actions and events on the platform.",
2824    fp_visao_li4: "Dash$ (Impact): Dashboard tab that shows impact and cost metrics — how much failures or network events represent in time and money. In simple terms: you see the \"cost\" of issues by period or location, to make decisions based on numbers.",
2825    fp_visao_li5: "Settings: Page where you set your preferences: timezone, language (Portuguese/English) and integrations (Telegram, Slack, etc.). All in one place, no technical knowledge required.",
2826    fp_visao_li3: "Welcome page: Site access may register approximate location by IP; optionally the visitor can share GPS location for manager reports.",
2827    fp_constructor_title: "🧠 Aurix Constructor", fp_constructor_intro: "Assistant specialized in network commands. The Constructor delivers ready, customized commands for various network equipment vendors, with context from your own backups and interaction history.",
2828    fp_constructor_ready: "Ready commands by vendor", fp_constructor_ready_desc: "Ask in natural language about network commands and get vendor-specific answers for Cisco, Juniper, MikroTik, Huawei, Arista, Aruba, Fortinet, Palo Alto, Nokia and others. The Constructor understands your question context and delivers ready-to-use commands.",
2829    fp_constructor_context: "Context from your equipment", fp_constructor_context_desc: "The Constructor uses configuration backups from your registered equipment to provide precise, environment-compatible commands. Filter by vendor for even more specific answers.",
2830    fp_constructor_history: "Interaction history", fp_constructor_history_desc: "The system learns from each conversation, continuously improving answers based on previous interaction history. The more you use it, the more precise it gets.",
2831    fp_constructor_soon: "Execution on hosts (coming soon)", fp_constructor_soon_desc: "Soon you will be able to run generated commands directly on your registered equipment, without manual copy-paste. The Constructor will integrate with the Tasks system for automatic, secure execution.",
2832    fp_flow_title: "〰 Flow — Your network traffic analysis", fp_flow_intro: "For non-technical users: Flow is like a traffic counter on a highway, but for data packets on your network. Catellix collects and analyzes the traffic passing through your equipment and shows, in plain language, who is talking to whom, which applications consume the most bandwidth, and whether anything is out of the ordinary.",
2833    fp_flow_what: "What Flow does in practice", fp_flow_what_desc: "You see your network traffic without being an expert. The platform groups connections by source, destination, and application (e.g. streaming, browsing, VPN) and displays graphs and tables. You can find out, for example, which device or user is consuming the most bandwidth, which services are active, and whether there is suspicious or unauthorized traffic.",
2834    fp_flow_why: "Why this is powerful", fp_flow_why_desc: "Before, you needed expensive and complex tools to understand traffic. Now, Catellix integrates this analysis into the same platform where you already manage hosts, backups, and cameras. Everything in one place: see what's happening on your network, identify bottlenecks, and make decisions based on real data.",
2835    fp_flow_source: "Where the data comes from", fp_flow_source_desc: "Flow uses NetFlow, sFlow, or IPFIX data exported by your routers and switches. Just enable export on the equipment and point it to the Proxy or the platform. Catellix aggregates, processes, and presents the information in a clear, actionable way.",
2836    fp_dashban_title: "📋 DashBan — Your operation's Kanban", fp_dashban_intro: "For non-technical users: Kanban is a board with columns — like those post-it boards many companies use. In DashBan, each \"post-it\" is an activity or task. You drag cards from one column to another as progress changes (e.g. Pending → In progress → Done). Simple to use and very effective for organizing your team's work.",
2837    fp_dashban_what: "What DashBan offers", fp_dashban_what_desc: "Create cards with title, description, checklist, and assignee. Link each activity to a host in your catalog or to an alert (e.g. offline equipment). Use tags to organize by theme. Track progress with a completion bar and a per-card timer. All integrated with the rest of the platform: hosts, alerts, and team in a single workflow.",
2838    fp_dashban_why: "Why this is powerful", fp_dashban_why_desc: "You don't need another tool to manage tasks. When a host goes down, the alert appears on the dashboard and you can create a DashBan card right away, linking the activity to the equipment. When you finish, mark it as done and track the time spent. Catellix unifies network operations and activity management in one experience.",
2839    fp_dashban_stats: "Statistics and team view", fp_dashban_stats_desc: "See how much time each team member spent on activities, how many cards were completed, and the distribution by tags. DashBan offers clear metrics to understand productivity and workload, helping managers make decisions based on real data.",
2840    fp_pop_title: "POP Monitoring (IP Cameras)", fp_pop_intro: "Visual monitoring module for POPs (Points of Presence) via IP cameras. Register, view and monitor cameras in real time directly from the platform — both locally and remotely via web.",
2841    fp_pop_cad: "Camera registration", fp_pop_cad_desc: "IP camera registration with name, POP, protocol (MJPEG, HLS, RTSP, ONVIF), URL, MAC, user and password. Supports any IP camera with standard protocol.",
2842    fp_pop_live: "Live viewing (MJPEG, HLS and RTSP)", fp_pop_live_desc: "Live stream directly in the browser. For MJPEG and HLS cameras, the proxy forwards the stream. For RTSP cameras (including H.265/HEVC), the Proxy converts to MJPEG using PyAV or OpenCV, enabling viewing of cameras the browser does not natively support.",
2843    fp_pop_status: "Status monitoring (UP/DOWN)", fp_pop_status_desc: "Periodic background status check for each camera. Detects offline cameras and displays alerts with resolution and downtime. On-screen indicators with online/offline camera count.",
2844    fp_pop_onvif: "ONVIF Discovery", fp_pop_onvif_desc: "Automatic ONVIF camera resolution: the platform discovers the camera's real RTSP URL from the ONVIF protocol, without manual configuration.",
2845    fp_pop_remote: "Remote camera access (from anywhere)", fp_pop_remote_desc: "Vie
2845w your cameras from anywhere in the world, straight from the browser — even if they are on the company's internal network. Just have the Desktop Proxy running on the same network as the cameras. No need to open ports, configure VPN or have a public IP. The Proxy creates a secure cloud connection and delivers the images to you wherever you are.",
2846    fp_pop_proxy: "Proxy connection indicator", fp_pop_proxy_desc: "The web interface displays in real time whether the Desktop Proxy is connected to the cloud via tunnel. When connected, local network cameras are remotely accessible. When disconnected, the platform informs that the Desktop App needs to be active.",
2847    fp_pop_sync: "External camera sync", fp_pop_sync_desc: "The Proxy periodically checks the status (UP/DOWN) of each camera on the local network and sends the result to the cloud via tunnel. The platform displays the synchronized state of all cameras, unavailability alerts and downtime, enabling centralized monitoring of external cameras.",
2848    fp_toc_pop_funcoes: "POP functions (registration, address and incident costs)",
2849    fp_pop_funcoes_title: "POP functions — registration, address and incident costs",
2850    fp_pop_funcoes_intro: "Beyond cameras, the platform lets you register each point of presence (POP) with a name and address, and track incident costs per location. In simple terms: you organize where each site is and can show management how much each failure cost in time and money.",
2851    fp_pop_cadastro_pop: "POP registration",
2852    fp_pop_cadastro_pop_desc: "You register each point of presence (POP) with a name and an address. That way the whole team knows where each site is and can organize cameras, equipment and alerts by location. It's easy to know \"which POP\" when something happens.",
2853    fp_pop_endereco: "POP address",
2854    fp_pop_endereco_desc: "Each POP has its full address (street, city, postal code). This helps with documentation, team dispatch and reports to management or partners. Everything is recorded in one place.",
2855    fp_pop_custos_incidentes: "Incident costs",
2856    fp_pop_custos_incidentes_desc: "When an incident occurs (link down, equipment out, etc.), you can log it and link it to the POP. The platform helps you track how much each event cost in time, travel and impact. So you can show management the real cost of failures per location and make decisions based on numbers — for example, where it pays to invest in redundancy or maintenance.",
2857    fp_hosts_li1: "Host registration: Inclusion of routers, switches and firewalls (IP, credentials, SSH/Telnet access type).",
2858    fp_hosts_li2: "Auto scan: Vendor and firmware version detection when connecting to the device.",
2859    fp_hosts_li3: "Scan Cad Host: Guided flow to register and scan hosts step by step.",
2860    fp_hosts_li4: "Host analysis: Consolidated view of registered hosts and their status.",
2861    fp_hosts_li5: "Latency per host: Response time (ping) measurement per device.",
2862    fp_hosts_li6: "Latency history: Latency charts and reports over time.",
2863    fp_backup_li1: "Backup per host: Copy of each device's configuration (by vendor: Cisco, Juniper, Huawei, Nokia, MikroTik, Fortinet, etc.).",
2864    fp_backup_li2: "Daily scheduling: Backups can be scheduled to run every day at a set time.",
2865    fp_backup_li3: "Configurable retention: How many old backups to keep (e.g. last 30 days).",
2866    fp_backup_li4: "Email report: Backup summary sent by email.",
2867    fp_backup_li5: "Disaster recovery (restore): Configuration restoration from a saved backup. First-scan backup is available for restore.",
2868    fp_backup_li6: "Backup history: List of all backups per host with date and content (when applicable).",
2869    fp_tasks_li1: "Scheduled SSH commands: Run a command on a host at a set date/time (once) or repeated (e.g. daily).",
2870    fp_tasks_li2: "Execution report: Record of each execution outcome (success or failure, command output).",
2871    fp_tasks_li3: "Fast Task: Quick command execution on a host, without scheduling.",
2872    fp_proto_li1: "BGP: Sessions and BGP neighbors per host; advertised/received routes; exits tree; ASN analysis (tables). Multiple vendors.",
2873    fp_proto_li2: "OSPF: OSPF neighbors, costs, topology and network diagram.",
2874    fp_proto_li3: "Layer 2: VLANs and interfaces (statistics, errors) per device and vendor.",
2875    fp_proto_li4: "MPLS: LDP and MPLS interfaces per vendor.",
2876    fp_tools_ping: "Ping", fp_tools_ping_desc: "Tests if a host or IP is responding;
2876 shows latency (round-trip time) and packet loss. Can use a registered host (search by name) and set packets to send (1–20). Result with colors by latency range (green, yellow, orange, red).",
2877    fp_tools_tr: "Traceroute", fp_tools_tr_desc: "Shows the path (hops) from your network to the destination. AuriX plus: besides raw Linux output, displays an intelligent table with each hop, RTT and latency colors; helps locate delay or route failure. Can use registered host as origin.",
2878    fp_tools_dns: "DNS Lookup", fp_tools_dns_desc: "DNS query: enter a domain and get A (IPv4), AAAA (IPv6), MX (email), NS (nameservers) records. Useful to verify DNS before pointing a service.",
2879    fp_tools_port: "Port Check", fp_tools_port_desc: "Checks if a specific TCP port (e.g. 22, 80, 443) is open on an IP or host. Response: open or closed. Ideal for SSH, web, database, etc.",
2880    fp_tools_http: "HTTP Check", fp_tools_http_desc: "Accesses a URL (HTTP or HTTPS) and returns status code (200, 404, 500…) and response time. Tells you if the site is up and how fast it responds.",
2881    fp_tools_scan: "Port Scanner", fp_tools_scan_desc: "Scans common ports (e.g. 21, 22, 23, 80, 443, 3306…) on a host and indicates which are open and which service typically runs on each. Plus: consolidated view of \"which ports are open on this device\".",
2882    fp_tools_banner: "Banner Grabber", fp_tools_banner_desc: "Connects to a TCP port and reads the banner the service sends (e.g. SSH version, Apache). Helps identify the software and version running on that port.",
2883    fp_tools_ssl: "SSL Checker", fp_tools_ssl_desc: "Analyzes the SSL/TLS certificate of an HTTPS server (validity, issuer, domains). Shows if the certificate is valid, near expiry or has issues.",
2884    fp_tools_rdns: "Reverse DNS", fp_tools_rdns_desc: "Given an IP, returns the name (PTR record) configured for it. Useful to verify correct PTR (e.g. to avoid email spam).",
2885    fp_tools_bl: "Blacklist Check", fp_tools_bl_desc: "Checks if an IP is on blocklists used by anti-spam. Indicates which lists the IP appears on, if any.",
2886    fp_tools_rpki: "RPKI Validation", fp_tools_rpki_desc: "Validates if an IP prefix (BGP) is authorized (ROA) for the announcing AS. Response: valid or invalid. Helps detect leaks or unauthorized announcements.",
2887    fp_tools_ipv4: "IPv4 Calculator", fp_tools_ipv4_desc: "Network calculator: from an IP and mask (or CIDR), shows network, broadcast, first and last usable IP, host count. Runs in browser (no server).",
2888    fp_tools_ipv6: "IPv6 Calculator", fp_tools_ipv6_desc: "IPv6 calculator: prefix and range (e.g. /64). Helps verify blocks and ranges. Also local (browser).",
2889    fp_analise_li1: "Network analysis: Ping and traceroute with intelligent interpretation (AuriX): connectivity and route with clear result reading.",
2890    fp_analise_li2: "Periodic analysis: Scheduled ping and/or traceroute measurements (e.g. every X minutes); history and report.",
2891    fp_analise_li3: "Connectivity and route report: Measurement summary for quick diagnosis.",
2892    fp_lg_li1: "BGP prefix query: Query on Looking Glasses (LGs) in Brazil and international: enter a prefix or IP and see how the route appears at those network points.",
2893    fp_gmud_li1: "Change document: Generation of change document (GMUD) with planned change data.",
2894    fp_gmud_li2: "Provisional backup: Configuration backup before the change, linked to the GMUD.",
2895    fp_gmud_li3: "Text expansion: Option to expand or enrich the document text with automatic suggestions.",
2896    fp_ipam_li1: "ASN / prefix / allocation structure: Organization of IP blocks by ASN, prefixes and allocations (who uses which range).",
2897    fp_ipam_li2: "Free IP suggestion: The platform suggests free addresses or blocks within a prefix.",
2898    fp_ipam_li3: "Export Excel: IPAM structure export to spreadsheet.",
2899    fp_ipam_li4: "RPKI (optional): Integration with RPKI validation in the IPAM context.",
2900    fp_srv_li1: "Linux servers: Linux server registration; command execution via integrated terminal (connect and run commands without leaving the platform).",
2901    fp_srv_li2: "Windows servers: Registration with host (IP or name), RDP port (e.g. 3389 or custom), user and password. Windows desktop access via browser (RDP via Guacamole): same window or new tab. Guacamole connection name appears as \"Name (IP:port)\" (e.g. \"DC-01 (192.168.1.10:3389)\").",
2902    fp_srv_li3: "Guacamole account per user: Each platform user can have a Guacamole account with the same email and password;
2902 RDP connections they have permission for appear when opening Guacamole.",
2903    fp_rel_li1: "Reports: Platform reports (e.g. tasks report, ping/latency, etc.).",
2904    fp_rel_li2: "Subbrowser (AuriX Intelligence browser): Internal browser that opens a configurable page (e.g. documentation or internal tool); \"AuriX\" symbol in the interface.",
2905    fp_int_li1: "Telegram: Send notifications to a Telegram group or channel.",
2906    fp_int_li2: "Slack: Send messages to a Slack channel.",
2907    fp_int_li3: "Zabbix: Integration with Zabbix (monitoring).",
2908    fp_int_li4: "NetBox: Integration with NetBox (inventory and DCIM).",
2909    fp_admin_li1: "Users: User list; license (plan) change; user deletion.",
2910    fp_admin_li2: "Hosts: Overview of all platform hosts; detail per host.",
2911    fp_admin_li3: "Tasks: View of scheduled tasks on the platform.",
2912    fp_admin_li4: "Login history: Record of user access (login).",
2913    fp_admin_li5: "Profile: View and edit account data and contracted plan.",
2914    fp_admin_li6: "Subscription: Hiring and renewal via Mercado Pago (PIX and card); plans with host limits (Basic 10, Basic 30, Pro 100, Pro 200, Pro 400, Unlimited).",
2915    fp_admin_li7: "Payment history: List of payments made.",
2916    fp_admin_li8: "Sub-users: Up to 6 sub-users linked to the main account; inherit license (plan host limit).",
2917    fp_admin_li9: "PIN: Extra protection: configurable PIN; can be sent by email; verification before accessing certain sensitive areas.",
2918    fp_admin_li10: "Change password: Password change on your own account (logged in).",
2919    fp_admin_li11: "Preferences: Timezone and language per user.",
2920    fp_admin_li12: "Recover / reset password: Reset request by email and screen to set new password.",
2921    w2_hero: "Everything your network needs, in one place",
2922    w2_sub: "Catellix helps you take care of your network equipment: automatic backup, alerts on your phone and a single screen to see what's working — no need to be a tech expert.",
2923    w2_cta: "Go to platform →",
2924    w2_what_title: "What Catellix does for you",
2925    w2_what_p: "Think of Catellix as an assistant for your network: it stores copies of your equipment configurations, alerts you when something goes down and keeps everything organized in one panel. Works with the brands you already use (Cisco, Juniper, Huawei and others) and can be accessed from your phone or computer.",
2926    w2_ben1_title: "Never lose your equipment configuration",
2927    w2_ben1_desc: "Automatic scheduled backup. If something goes wrong, you have a safe copy to restore.",
2928    w2_ben2_title: "Know when something goes down",
2929    w2_ben2_desc: "Monitoring and alerts by email, Telegram or Slack. You're notified before it becomes a problem.",
2930    w2_ben3_title: "Everything on one screen",
2931    w2_ben3_desc: "A single panel with equipment status, charts and your network view — without opening multiple screens.",
2932    w2_ben4_title: "Tasks that run on their own",
2933    w2_ben4_desc: "Schedule commands and reports to run at your chosen time. The result arrives in your email.",
2934    w2_ben5_title: "Works with what you already have",
2935    w2_ben5_desc: "Cisco, Juniper, Huawei, Nokia, MikroTik, Fortinet and other brands. One place for all.",
2936    w2_ben6_title: "Document changes with one click",
2937    w2_ben6_desc: "Generate change documents (GMUD) and store the equipment backup with it, for audit or history.",
2938    w2_tagline_pt: "Catellix is the foundation where your network stays organized. Aurix is the intelligence that turns data into useful information.",
2939    w2_tagline_en: "Catellix is the foundation. Aurix is the intelligence.",
2940    w2_plans_title: "Start whenever you want",
2941    w2_plans_intro: "Free plan to try. Paid plans with monthly billing (PIX or card).",
2942    w2_plan_free: "Free", w2_plan_free_price: "Free", w2_plan_free_per: "/ trial",
2943    w2_plan_free_desc: "5 devices · 7-day trial · then you choose a paid plan.",
2944    w2_plan_cta_free: "Start free",
2945    w2_plans_paid: "Paid plans",
2946    w2_plan_basic10: "Basic 10", w2_plan_basic30: "Basic 30", w2_plan_pro100: "Pro 100", w2_plan_pro200: "Pro 200", w2_plan_pro400: "Pro 400", w2_plan_unlimited: "Unlimited",
2947    w2_plan_desc_10: "Up to 10 devices.", w2_plan_desc_30: "Up to 30 devices.", w2_plan_desc_100: "Up to 100 devices.", w2_plan_desc_200: "Up to 200 devices.", w2_plan_desc_400: "Up to 400 devices.", w2_plan_desc_unl: "Unlimited.",
2948    w2_plan_month: "/ month", w2_assinar: "Subscribe",
2949    w2_link_tech: "View technical version of page →",
2950    w2_contact_title: "Contact us",
2951    w2_contact_desc: "Questions or suggestions? Send a message.",
2952    w2_contact_name: "Name", w2_contact_email: "Email", w2_contact_msg: "Message",
2953    w2_contact_ph_name: "Your name", w2_contact_ph_email: "[email protected]", w2_contact_ph_msg: "How can we help?",
2954    w2_btn_send: "Send",
2955    w2_contact_ok: "Message sent. Thank you for contacting us!",
2956    w2_contact_err: "Error sending. Please try again.",
2957    begin_topbar_label: "Discover our products",
2958    begin_desktop_download: "Catellix Desktop",
2959    begin_desktop_download_title: "Get Catellix Desktop installer (Windows)",
2960    begin_terminal_label: "Catellix AI Terminal",
2961    begin_terminal_title: "Download Catellix AI Terminal (Windows)",
2962    begin_terminal_hint: "Free for Windows",
2963    begin_terminal_badge: "",
2964    welcome_lite_download_btn_title: "Catellix Lite for desktop — get the installer",
2965    welcome_lite_download_btn_aria: "Catellix Lite for desktop — get the installer",
2966    begin_btn_monitoring: "Catellix - Monitoring",
2967    begin_btn_detector: "Detector",
2968    begin_detector_title: "Detector — service status, incidents and trends",
2969    begin_detector_aria: "Detector",
2970    begin_btn_kids: "Catellix - <span class=\"kids\">Kids</span>",
2971    begin_btn_demo: "Demo",
2972    begin_btn_demo_mobile: "Demo",
2973    begin_btn_trial: "Free trial 1h",
2974    begin_product_sub_monitoring: "businesses",
2975    begin_product_sub_kids: "families",
2976    begin_product_sub_public: "Public · community",
2977    begin_product_sub_free_community: "Free · community",
2978    begin_comm_label_detector: "Detector",
2979    begin_comm_label_map: "Wi‑Fi MAP",
2980    begin_comm_label_mobile: "Catellix Mobile",
2981    begin_comm_mobile_title: "Download APK — Catellix Mobile (Android)",
2982    begin_comm_mobile_aria: "Download the Catellix Mobile app for Android",
2983    begin_hero_kicker: "Infrastructure & operations",
2984    begin_hero_title:
2985        "Network monitoring for businesses. Digital safety for families — one Catellix ecosystem.",
2986    begin_video_card_title: "Brand video — institutional reel",
2987    begin_video_card_badge: "Aurix",
2988    begin_video_fallback_p: "Tap to watch the video",
2989    begin_video_fallback_btn: "Play",
2990    begin_social_label: "Social media",
2991    begin_footer_seo_summary:
2992        "Related terms and pages — tap to expand",
2993    begin_about_btn: "About us",
2994    about_title_origin: "Catellix — Connecting the future, today.",
2995    about_text_origin_1: "<strong>Catellix</strong> was born from a family origin but designed for the world. The name derives from the surname <strong>Catellani</strong>, intentionally transformed to lose its personal character, gain a technical sound and become universal.",
2996    about_text_origin_2: "The suffix <strong>\"-ix\"</strong> was chosen for its strong historical association with Unix systems, engineering, infrastructure and reliability. <strong>Catellix</strong> represents the foundation — the structure where network data is collected, preserved and organized with precision.",
2997    about_title_aurix: "Aurix — The intelligence behind the data",
2998    about_text_aurix_1: "Not all data has value. Value comes from <em>interpretation</em>.",
2999    about_text_aurix_2: "<strong>Aurix</strong> comes from <em>Aurion</em>, a Latin-rooted word linked to <em>aurum</em> — gold. Since antiquity, gold symbolizes: real value, permanence and trust.",
3000    about_text_aurix_3: "Aurix is Catellix's analytical engine. It correlates logs, analyzes network states, cross-references events, supports troubleshooting and reveals invisible patterns in daily operations. It transforms raw network data into <strong>clear information</strong> for quick and secure decisions.",
3001    about_aurix_motto: "<strong>Catellix</strong> is the foundation. <strong>Aurix</strong> reveals the value.",
3002    about_title_products: "Three solutions, one mission",
3003    about_text_products: "Catellix offers three complementary platforms, each designed to solve distinct challenges with excellence:",
3004    about_product_monitoring_title: "Catellix Monitoring",
3005    about_product_monitoring_desc: "Network monitoring platform for businesses. Manage routers, switches and firewalls in a centralized and reliable way.",
3006    about_mon_feat_1: "<strong>Multivendor</strong> — Cisco, Juniper, Huawei, Nokia, Arista, MikroTik, Fortinet",
3007    about_mon_feat_2: "<strong>Automatic backup</strong> and disaster recovery",
3008    about_mon_feat_3: "<strong>BGP, OSPF, MPLS, Layer 2</strong> — real-time protocols",
3009    about_mon_feat_4: "<strong>Aurix</strong> — intelligent ping, traceroute and diagnostic reports",
3010    about_mon_feat_5: "<strong>Flow</strong> — NetFlow, IPFIX, sFlow traffic analysis",
3011    about_product_kids_title_kids: "Kids",
3012    about_product_kids_desc: "Parental control and digital safety solution for children. Protect the ones you love with intelligent, non-invasive monitoring.",
3013    about_kids_feat_1: "<strong>App control</strong> — manage what the child can access",
3014    about_kids_feat_2: "<strong>Screen time</strong> — set healthy limits",
3015    about_kids_feat_3: "<strong>Location</strong> — know where your child is in real time",
3016    about_kids_feat_4: "<strong>Reports</strong> — understand digital habits",
3017    about_kids_feat_5: "<strong>Safe library</strong> — educational and age-appropriate content",
3018    about_product_desktop_title: "Catellix Desktop",
3019    about_product_desktop_desc: "Windows app that watches the local PC: internet, inventory and machine privacy, with clear diagnostics for faster decisions.",
3020    about_desktop_feat_1: "<strong>Internet diagnostics</strong> — ping, DNS and traceroute with ASN",
3021    about_desktop_feat_2: "<strong>Privacy</strong> — camera, microphone and local lockdown",
3022    about_desktop_feat_3: "<strong>Inventory</strong> — hardware, software, OS and patches",
3023    about_desktop_feat_4: "<strong>EDR</strong> — evidence of suspicious processes and connections",
3024    about_desktop_feat_5: "<strong>Windows</strong> — official installer on the homepage",
3025    about_product_terminal_title: "Catellix Terminal",
3026    about_product_terminal_desc: "AI terminal for Windows: remote sessions, commands and automation in one place, with fewer mistakes on routers and servers.",
3027    about_terminal_feat_1: "<strong>Remote tabs</strong> — SSH and Telnet in a single window",
3028    about_terminal_feat_2: "<strong>AI for commands</strong> — NOUS suggests and explains the next step",
3029    about_terminal_feat_3: "<strong>Less rework</strong> — fewer mistakes on routers and servers",
3030    about_terminal_feat_4: "<strong>
3030PC automation</strong> — repetitive tasks leave copy-paste behind",
3031    about_terminal_feat_5: "<strong>Free for Windows</strong> — installer on the homepage",
3032    about_br_origin_kicker: "Brazil",
3033    about_br_origin_title: "Brazilian technology company",
3034    about_br_origin_sub:
3035        "We focus on solutions that make life easier for people in Brazil — with global reach and human support.",
3036    about_ceo_intro:
3037        "Catellix is led by our CEO, <strong>Ana Flavia Catellani</strong>, with roots in <strong>Andradina, SP</strong>. We are a Brazilian tech company focused on <strong>making Brazilians' lives easier</strong>.",
3038    about_mission_observability:
3039        "<strong>Mission:</strong> to be a worldwide reference in <strong>observability</strong> — from infrastructure to everyday digital life.",
3040    about_ceo_form_title: "Message to the CEO",
3041    about_ceo_form_hint:
3042        "Your email and a short message go to our team ([email protected]) so we can reply.",
3043    about_ceo_form_email: "Your email",
3044    about_ceo_form_message: "Message",
3045    about_ceo_placeholder_email: "[email protected]",
3046    about_ceo_placeholder_message: "Your message…",
3047    about_ceo_form_send: "Send",
3048    about_ceo_form_sent: "Message sent. We'll get back to you by email soon.",
3049    about_ceo_form_error:
3050        "Could not send. Try again or write to [email protected].",
3051    about_badge_public: "Free · community",
3052    about_title_public_projects: "Community-facing projects",
3053    about_text_public_intro:
3054        "Besides our products, we offer <strong>Detector</strong> for <strong>free</strong>, with no mandatory signup — for the <strong>general public</strong>, students, professionals and anyone who needs transparency about online services.",
3055    about_public_detector_title: "Detector",
3056    about_public_detector_p1:
3057        "A public dashboard that aggregates signals about <strong>online services</strong> (sites, platforms and APIs): trends, history and a shared view of incidents.",
3058    about_public_detector_p2:
3059        "<strong>Contribution to society:</strong> improves transparency during outages, helps separate <em>fact</em> from rumor, gives journalists and small teams real-time context and builds public understanding of internet availability and resilience.",
3060    about_public_mapar_title: "Wi-Fi MAP",
3061    about_public_mapar_p1:
3062        "An interactive map of <strong>Wi‑Fi</strong> spectrum readings (band and channel), aggregated with consent from the Catellix ecosystem — including heat and density layers, <strong>without exposing personal data or network names (SSID)</strong>.",
3063    about_public_mapar_p2:
3064        "<strong>Contribution to society:</strong> teaches channel crowding and spectrum use, helps residents and technicians understand congested wireless environments (buildings, neighborhoods) and fosters collective awareness of the quality of the communications environment we all share.",
3065    about_public_link_detector: "Open Detector →",
3066    about_public_link_mapar: "Open Wi-Fi MAP →",
3067    about_title_media: "Catellix in the press",
3068    about_text_media: "We were invited to share our story and purpose. Check out the published articles:",
3069    about_media_1_title: "Catellix Kids proposes digital freedom with safety for children",
3070    about_media_2_title: "Startup created by Ana Flávia Catelani combines technology and family purpose to protect businesses and children in the digital environment",
3071    about_media_read: "Read full article",
3072    pm_title: "Mobile Plans",
3073    pm_subtitle: "Parental control for families and bulk licenses for businesses.",
3074    pm_btn_ver_planos: "See plans",
3075    pm_plans_modal_title: "Catellix Kids plans",
3076    pm_plans_modal_brand_catellix: "Catellix",
3077    pm_plans_journey_banner: "Start your Catellix Kids journey now!",
3078    pm_plans_modal_close_aria: "Close plans",
3079    pm_platform_info_title: "Dashboard and app on the child's phone",
3080    pm_platform_controller: "Controller Panel available on:",
3081    pm_platform_controller_ios_android: "iOS and Android",
3082    pm_platform_access: "Access Platform",
3083    pm_platform_panel_note: "You monitor your child's phone from your own phone or tablet (Android or iPhone).",
3084    pm_platform_kids_label: "App on the child's phone:",
3085    pm_platform_android: "Available for Android only",
3086    pm_platform_kids_note: "Your child's phone must be Android to install Catellix Kids. iOS under construction.",
3087    pm_platform_ios_note: "iOS under construction for Catellix Kids (to control iPhones). We are working on it.",
3088    pm_platform_leigo: "You monitor your child's phone from your own phone or tablet (Android or iPhone). Your child's phone must be Android.",
3089    pm_tts_lang_label: "Page language and voice explanation — choose PT or EN:",
3090    pm_tts_lang_group_aria: "Page language and narration",
3091    pm_hero_hint_caption: "Tap the colored dots; use the speaker icon to hear in the language selected below.",
3092    pm_hero_click_here: "Tap here",
3093    pm_bubble_intro_title: "Pop the bubbles",
3094    pm_bubble_intro_body: "Click the bubbles to discover Catellix Kids features. Each popped bubble disappears.",
3095    pm_bubble_progress: "Popped bubbles: {popped}/{total}",
3096    pm_bubble_done_title: "Great! You completed the interactive panel",
3097    pm_bubble_done_body: "You saw how Catellix Kids protects and simplifies family routines. Create your account and become our customer.",
3098    pm_hero_modal_close_aria: "Close explanation",
3099    pm_hero_b1_title: "Screen time and apps (TV / dashboard)",
3100    pm_hero_b1_body: "See how much daily time is left and how long each app was used — videos, games, social — in one clear dashboard on TV or browser.",
3101    pm_hero_b2_title: "Real-time blocking",
3102    pm_hero_b2_body: "Blocked apps or sites won't open on the child's phone. They see right away that content isn't allowed.",
3103    pm_hero_b3_title: "Safety, control, and family",
3104    pm_hero_b3_body: "On the tablet, the dashboard brings together digital protection, usage rules, and a family view so you can decide calmly.",
3105    pm_hero_b4_title: "Start protecting",
3106    pm_hero_b4_body: "Free trial, no credit card: create your account, install the app on the child's phone, and monitor everything from the dashboard.",
3107    pm_hero_b5_title: "App on the child's phone",
3108    pm_hero_b5_body: "Catellix Kids on Android receives rules from the dashboard: pairing, missions, screen time, and blocks — always in sync.",
3109    pm_hero_b6_title: "Rewards and routine",
3110    pm_hero_b6_body: "Missions, AuriX, and reminders help combine financial education and healthy habits with phone use.",
3111    pm_hero_b1_aria: "Explain: screen time and apps",
3112    pm_hero_b2_aria: "Explain: blocking",
3113    pm_hero_b3_aria: "Explain: safety and family",
3114    pm_hero_b4_aria: "Explain: start protecting",
3115    pm_hero_b5_aria: "Explain: app on child's phone",
3116    pm_hero_b6_aria: "Explain: rewards and routine",
3117    pm_what_dots_hint: "Every feature is in the colored dots on the image above — tap to read and listen.",
3118    pm_shortcuts_title: "Quick shortcuts (download and dashboard)",
3119    pm_hero_listen: "Listen to explanation",
3120    pm_hero_stop: "Stop audio",
3121    pm_tagline_play_link: "Google Play",
3122    pm_header_tts_title: "Listen to page summary",
3123    pm_header_tts_aria: "Listen to page summary aloud",
3124    pm_page_tts_combined: "Catellix Kids is parental control for families and bulk licensing for businesses. The Controller dashboard on your phone or tablet and the app on your child's Android work together: screen time, blocking sites and apps, location and alerts, following the rules you set.",
3125    pm_hero_b7_title: "Pairing code",
3126    pm_hero_b7_body: "You generate a code in the Controller dashboard; the child enters it in the Catellix Kids app. The phone links to your account in seconds.",
3127    pm_hero_b8_title: "Secure family link",
3128    pm_hero_b8_body: "After pairing, the dashboard and app stay connected: the rules you set reach the child's phone securely.",
3129    pm_hero_b9_title: "Block websites",
3130    pm_hero_b9_body: "Enter the site address in the dashboard and it won't open on the child's phone — useful for distractions or inappropriate content.",
3131    pm_hero_b10_title: "Alert without blocking",
3132    pm_hero_b10_body: "You can be notified when the child visits a site without blocking access — helpful to monitor habits without full restriction.",
3133    pm_hero_b11_title: "Block or hide apps",
3134    pm_hero_b11_body: "Block stops the app from opening; hide removes the icon from the home screen. Works for games, social apps, and more.",
3135    pm_hero_b12_title: "Password and app approval",
3136    pm_hero_b12_body: "A password protects settings on the child's device. New installs can require your approval, denial, or temporary allowance from the dashboard.",
3137    pm_hero_b13_title: "Where they are now",
3138    pm_hero_b13_body: "See the last location sent by the phone on the map. One tap opens the map for more context about where your child is.",
3139    pm_hero_b14_title: "Recent route",
3140    pm_hero_b14_body: "Follow where the phone has been lately — school, friends' houses, trips — useful for routine and safety conversations.",
3141    pm_hero_b15_title: "Screen time and top apps",
3142    pm_hero_b15_body: "See how long the phone was used today and this week, and which apps rank highest — to align limits with healthy habits.",
3143    pm_hero_b16_title: "Email summary",
3144    pm_hero_b16_body: "Get periodic summaries in your inbox so you can follow usage even when you don't open the dashboard every day.",
3145    pm_hero_b17_title: "Dashboard and progress",
3146    pm_hero_b17_body: "Indicators, charts, and an overview of your child's digital routine: goals, consistency, and trends in one place.",
3147    pm_hero_b18_title: "Event timeline",
3148    pm_hero_b18_body: "A clear log of important events: blocked access attempts, app requests, and relevant changes on the device.",
3149    pm_hero_b19_title: "Missions and AuriX",
3150    pm_hero_b19_body: "Create tasks and habits; the child can send proof (photo or note). AuriX is the in-app currency for rewards and practical financial education.",
3151    pm_hero_b20_title: "Educational library",
3152    pm_hero_b20_body: "Educational videos and books integrated into the routine — parents can guide age-appropriate content and daily activities.",
3153    pm_hero_b7_aria: "Explain: pairing code",
3154    pm_hero_b8_aria: "Explain: secure link",
3155    pm_hero_b9_aria: "Explain: block sites",
3156    pm_hero_b10_aria: "Explain: alerts",
3157    pm_hero_b11_aria: "Explain: block or hide apps",
3158    pm_hero_b12_aria: "Explain: password and approval",
3159    pm_hero_b13_aria: "Explain: location",
3160    pm_hero_b14_aria: "Explain: route",
3161    pm_hero_b15_aria: "Explain: screen time",
3162    pm_hero_b16_aria: "Explain: email summary",
3163    pm_hero_b17_aria: "Explain: dashboard",
3164    pm_hero_b18_aria: "Explain: timeline",
3165    pm_hero_b19_aria: "Explain: missions and AuriX",
3166    pm_hero_b20_aria: "Explain: library",
3167    pm_what_short_footer: "Shortcuts: install from Google Play, use the dashboard on iPhone with the profile shortcut, or open Controller on Android.",
3168    pm_hero_link_again: "See the interactive image again",
3169    pm_btn_empresas: "Business",
3170    pm_btn_login: "Login",
3171    pm_btn_register: "Create account",
3172    pm_btn_profile: "Go to profile",
3173    pm_btn_contact: "Contact Catellix",
3174    pm_back: "Back to home",
3175    cg_back: "Back to plans",
3176    cg_login: "Already have an account? Sign in",
3177    cg_cta: "Start Free",
3178    cg_badge: "Catellix Kids",
3179    cg_title: "Start <span class=\"accent\">free for 7 days</span>",
3180    cg_subtitle: "Complete parental control for your child's phone. No credit card required.",
3181    cg_feature_1: "<span class=\"check\">✓</span> App and website blocking",
3182    cg_feature_2: "<span class=\"check\">✓</span> Real-time location",
3183    cg_feature_3: "<span class=\"check\">✓</span> Screen time and daily limits",
3184    cg_feature_4: "<span class=\"check\">✓</span> Complete web dashboard for parents",
3185    cg_note: "Plans starting at R$ 6.99/month after trial.",
3186    dk_title: "Get Catellix <span class=\"kids\">Kids</span> for Android with advanced features",
3187    dk_policy_notice: "Due to Google Play policies, <strong>advanced parental control features</strong> — such as contact management, call logs, and SMS — are <strong>not available</strong> in the store version.<br><br>If you want <strong>full parental control</strong>, install Catellix Kids directly from our website.",
3188    dk_card_title: "Download Catellix Kids directly from our website",
3189    dk_card_desc: "It will be installed via <strong>Catellix Installer</strong>, which automatically configures all required permissions so advanced parental control features work correctly on the child's phone.",
3190    dk_btn_download: "Download",
3191    dk_hint_android: "Catellix Kids works on Android 8.0 and higher.",
3192    dk_version_label: "Current app version (website):",
3193    dk_version_code_label: "code",
3194    dk_hint_build: "It is the <strong>same app and same look</strong> as Play Store, with <strong>more features and permissions</strong> in the website build (e.g., remote camera capture), which the store does not allow. The file is larger because it includes these modules.",
3195    dk_back_playstore: "No thanks. Take me back to Play Store.",
3196    dk_help: "Need help? <a href=\"/ajuda-kids\">Open the Help Center.</a>",
3197    ak_back: "← Back to plans",
3198    ak_slogan: "Help and Support Center",
3199    ak_title: "Help Center",
3200    ak_intro1: "Catellix Kids is a parental control tool designed to help parents and guardians protect children and teens in the digital environment.",
3201    ak_intro2: "The app lets you monitor important device activity and apply protections for safer browsing.",
3202    ak_intro3: "If you need help with installation, setup, or using the system, open a supp
3202ort ticket below.",
3203    ak_ticket_title: "Open support ticket",
3204    ak_label_name: "Name",
3205    ak_placeholder_name: "Your name",
3206    ak_label_email: "Email",
3207    ak_label_message: "Message",
3208    ak_placeholder_message: "Describe your question or issue...",
3209    ak_label_device: "Device",
3210    ak_optional: "(optional)",
3211    ak_placeholder_device: "E.g. Samsung Galaxy, phone model",
3212    ak_btn_ticket: "Open support ticket",
3213    ak_msg_success: "Ticket opened successfully.",
3214    ak_section_videos: "Tutorial videos (Instagram)",
3215    ak_videos_intro: "You can watch directly here via Instagram embed and also open the original post for reference on Catellix profile.",
3216    ak_video_1_title: "Episode 01",
3217    ak_video_2_title: "Episode 02",
3218    ak_video_3_title: "Episode 03",
3219    ak_video_4_title: "Episode 04",
3220    ak_videos_watch_ig: "Open original post on Instagram",
3221    ak_videos_profile: "View profile and all Reels on Instagram",
3222    ak_section_faq: "Frequently asked questions",
3223    ak_faq1_summary: "Phone stuck on \"Oops, time limit\" screen or not syncing — how to recover?",
3224    ak_faq1_p1: "If the phone is stuck on the time limit screen and the device no longer appears in the list (e.g. you removed the device by mistake), do the following:",
3225    ak_faq1_li1: "Turn off the child's phone.",
3226    ak_faq1_li2: "Turn it on again and when the logo appears, hold the volume down button until you enter Safe mode (on Xiaomi/Redmi: power on while holding volume down).",
3227    ak_faq1_li3: "In safe mode, open Settings → Apps → Catellix Kids → Uninstall (or \"Force stop\" and \"Clear data\" if uninstall is not available).",
3228    ak_faq1_li4: "Restart the phone normally. The time limit screen will disappear.",
3229    ak_faq1_li5: "Reinstall the Catellix Kids app from the Play Store. Open the app and enter the pairing code that you generate in the panel by clicking \"+ Add device\".",
3230    ak_faq1_p2: "The device will appear in the list again and you can control screen time and blocks again.",
3231    ak_faq2_summary: "How do I add the child's first phone?",
3232    ak_faq2_body: "In the panel (Controller), click \"+ Add device\". An 8-character code will be shown. On the child's phone, install Catellix Kids from Google Play, open the app and enter that code when prompted. The device will be linked to your account in seconds.",
3233    ak_faq3_summary: "Why does the app ask for so many permissions?",
3234    ak_faq3_body: "Catellix Kids uses Android permissions only for the parental control features described in the store: app and site blocking, screen time, location, and parent panel. All permissions are requested transparently and in compliance with Google Play policies.",
3235    ak_faq4_summary: "Can I use it on more than one phone?",
3236    ak_faq4_body: "Yes. The number of devices depends on your plan (1, 3 or 5 children). Each plan allows you to link that many phones to your panel. You add each device using the pairing code.",
3237    ak_section_enterprise: "For businesses",
3238    ak_enterprise_1: "Catellix Kids is available on Google Play as a parental control app for families. Businesses and providers who want to offer the service at scale (bulk licenses) can contact us via the ticket form above or the ",
3239    ak_contact_link: "Contact Catellix",
3240    ak_enterprise_2: " page. All offers and features comply with Google Play policies.",
3241    ak_section_tester: "Official app on Play Store",
3242    ak_tester_title: "Official app on Google Play",
3243    ak_tester_desc1: "Catellix Kids is now officially published on the Play Store. Parental control made by Brazilians, with direct and secure download from the official store.",
3244    ak_tester_desc2: "Official download: use the link below to install now.",
3245    ak_tester_label_email: "Your email",
3246    ak_btn_tester: "Receive updates by email",
3247    ak_tester_playstore_btn: "Download Catellix Kids on Play Store",
3248    ak_tester_success: "Signup sent. We will contact you shortly.",
3249    ak_footer: "© 2026 Catellix · All rights reserved",
3250    ak_sending: "Sending...",
3251    ak_validate_fill: "Please fill in name, email and message.",
3252    ak_error_send: "Error sending. Please try again.",
3253    ak_error_connection: "Connection error. Check your internet and try again.",
3254    ak_protocol: "Protocol: ",
3255    ak_tester_validate_email: "Enter your email.",
3256    pm_families_title: "For families",
3257    pm_box_b2b_title: "For businesses that want to add value",
3258    pm_box_b2b_price_note: "$1 per license to redistribute. Monthly or annual billing with <strong>20% OFF</strong> on annual (vs. 12 monthly payments).",
3259    pm_families_subtitle: "Choose how many children to monitor. Pay via Mercado Pago. <strong>20% OFF</strong> on annual billing (vs. 12 monthly payments).",
3260    pm_plan_1_name: "1 license",
3261    pm_plan_1_desc: "One Catellix Kids device linked to your account. 31-day license.",
3262    pm_plan_3_name: "3 licenses",
3263    pm_plan_3_desc: "Up to three devices with better value. 31-day license.",
3264    pm_plan_5_name: "5 licenses",
3265    pm_plan_5_desc: "Large family: up to five devices. 31-day license.",
3266    pm_btn_buy: "Buy",
3267    pm_btn_renew: "Renew",
3268    pm_btn_renew_31: "Renew (+31 days)",
3269    pm_btn_renew_365: "Renew (+365 days)",
3270    pm_billing_mensal: "Monthly",
3271    pm_billing_anual: "Annual",
3272    pm_billing_suffix_monthly: "/mo",
3273    pm_billing_suffix_annual: "/yr",
3274    pm_discount_spotlight_monthly: "With <strong>annual billing</strong>: <span class=\"pm-disco-pct\">{{pct}}% OFF</span> — you save <strong>{{save}}</strong>.",
3275    pm_discount_spotlight_annual: "✨ <strong>{{pct}}% discount</strong> applied — <strong>{{save}}</strong> less than 12 monthly payments.",
3276    pm_price_compare_head: "monthly × annual comparison",
3277    pm_price_compare_foot: "The large price follows your toggle. Annual billing includes <strong>{{pct}}% OFF</strong> vs. 12 monthly payments.",
3278    pm_price_compare_col_m: "Monthly",
3279    pm_price_compare_col_a: "Annual · {{pct}}% OFF",
3280    pm_price_compare_12x: "12 monthly payments = <strong>{{total}}</strong>",
3281    pm_price_compare_equiv: "Averages <strong>{{per}}</strong> /mo",
3282    pm_price_compare_save: "You save <strong>{{save}}</strong> ({{pct}}%)",
3283    pm_badge_annual_off: "{{pct}}% OFF",
3284    pm_badge_active: "Your plan",
3285    pm_badge_expired: "Expired",
3286    pm_days_remaining: "day(s) remaining",
3287    pm_other_plan_tooltip: "You already have another active plan. Renew your current plan.",
3288    pm_plan_switch_hint: "Switch to this plan (upgrade or downgrade).",
3289    pm_downgrade_title: "Reduce your plan",
3290    pm_downgrade_desc: "The new plan allows fewer active devices. Choose which devices stay on the platform; the rest will be unlinked after payment is approved.",
3291    pm_downgrade_counter: "Selected: {n} of {m}",
3292    pm_downgrade_next: "Next — go to payment",
3293    pm_downgrade_cancel: "Cancel",
3294    pm_downgrade_pick_exact: "Select exactly {m} device(s) to continue.",
3295    pm_downgrade_intro_short: "You are reducing your plan: on the next screen, choose which devices stay on the platform. The rest will be unlinked after payment is approved.",
3296    pm_b2b_title: "Are you an ISP or business?",
3297    pm_b2b_desc: "Want to offer as a benefit to your customers? Buy bulk licenses for just <strong>$1</strong> each and resell as you like — bundled with internet or as a standalone product.",
3298    pm_b2b_highlight: "Buy bulk licenses for just $1.00 each",
3299    pm_b2b_plans_title: "ISPs and businesses",
3300    pm_b2b_100_name: "100 licenses",
3301    pm_b2b_100_desc: "Affordable entry for pilots and first customers.",
3302    pm_b2b_price_period: "/mo",
3303    pm_b2b_1k_name: "1,000 licenses",
3304    pm_b2b_1k_desc: "Ideal to start. Distribute to your customers as a benefit.",
3305    pm_b2b_10k_name: "10,000 licenses",
3306    pm_b2b_10k_desc: "For growing businesses.",
3307    pm_b2b_50k_name: "50,000 licenses",
3308    pm_b2b_50k_desc: "Mid-scale. Ideal for expanding providers.",
3309    pm_b2b_500k_name: "500,000 licenses",
3310    pm_b2b_500k_desc: "For large businesses.",
3311    pm_b2b_100k_name: "100,000 licenses",
3312    pm_b2b_100k_desc: "Scale for large bases.",
3313    pm_b2b_1m_name: "1,000,000 licenses",
3314    pm_b2b_1m_desc: "Maximum package for large businesses.",
3315    pm_aria_prev: "Previous",
3316    pm_aria_next: "Next",
3317    pm_plans_trail_headline: "Path: Free → families (B2C) → business (B2B).",
3318    pm_trail_badge_free: "1 · Free",
3319    pm_trail_badge_b2b: "3 · B2B",
3320    pm_trail_badge_b2c: "2 · B2C",
3321    pm_card_popular_badge: "Recommended",
3322    pm_card_free_feat_1: "Full access to panel and app for 7 days",
3323    pm_card_free_feat_2: "No credit card required to start",
3324    pm_card_free_feat_3: "Ideal to try Catellix Kids safely",
3325    pm_card_family_feat_1: "PIX and card with secure checkout",
3326    pm_card_family_feat_2: "Plans for 1 to 5 licenses on the same panel",
3327    pm_card_family_feat_3: "31-day license; monthly or annual billing",
3328    pm_card_b2b_feat_1: "Packages starting at 100 licenses",
3329    pm_card_b2b_feat_2: "Scale up to 1 million licenses",
3330    pm_card_b2b_feat_3: "Reseller dashboard and sales support",
3331    pm_plan_free_title: "Free plan",
3332    pm_plan_free_subtitle: "Try with no commitment.",
3333    pm_plan_free_badge: "7-day free trial",
3334    pm_plan_free_desc: "Create your account and use Catellix Kids for 7 days at no cost. Then choose the Family plan or business licenses in the following steps.",
3335    pm_plan_free_btn: "Create account and try free",
3336    pm_social_label: "Social media",
3337    pm_footer: "Network Solutions",
3338    pm_support_title: "Support",
3339    pm_support_desc: "Need help? Open a ticket and our team will reply to the email you provide.",
3340    pm_support_btn: "Open ticket",
3341    pm_support_modal_title: "Open support ticket",
3342    pm_support_modal_protocol: "A protocol number will be generated 
3342when you submit. The ticket will be sent to [email protected].",
3343    pm_support_name: "Name",
3344    pm_support_email: "Email *",
3345    pm_support_subject: "Subject (optional)",
3346    pm_support_message: "Message *",
3347    pm_support_cancel: "Cancel",
3348    pm_support_submit: "Submit ticket",
3349    pm_support_success_title: "Ticket sent!",
3350    pm_support_success_protocol: "Your protocol is:",
3351    pm_support_error_fields: "Please fill in email and message (min. 5 characters).",
3352    pm_support_error_send: "Error sending. Please try again.",
3353    pm_what_title: "What is Catellix <span class=\"kids\">Kids</span>?",
3354    pm_what_intro: "It is a parental control app: you install the app on your child's phone and control everything from your web dashboard. You can monitor phone use safely, without being a tech expert.",
3355    pm_what_functions_title: "Who does what in Catellix:",
3356    pm_duo_swipe_hint: "<span class=\"kids-duo-hint-arrows\" aria-hidden=\"true\">«</span> Swipe to see the dashboard, the phone app, and the TV app <span class=\"kids-duo-hint-arrows\" aria-hidden=\"true\">»</span>",
3357    pm_duo_controller_title: "Guardian (Catellix Controller)",
3358    pm_duo_controller_platform: "Android and iOS (web/app)",
3359    pm_duo_kids_title: "Child (Catellix Kids app)",
3360    pm_duo_kids_platform: "Android only",
3361    pm_duo_label_link: "Link",
3362    pm_duo_label_protect: "Protection",
3363    pm_duo_label_first: "First-time setup",
3364    pm_duo_label_phone_protect: "Protection on the phone",
3365    pm_duo_ctrl_pair_name: "Pairing with a code",
3366    pm_duo_ctrl_pair_desc: "You generate the code in the dashboard and your child enters it in the app — linked in seconds.",
3367    pm_duo_tag_rapido: "Fast",
3368    pm_duo_tag_sem_complicacao: "No hassle",
3369    pm_duo_ctrl_sites_name: "Block websites",
3370    pm_duo_ctrl_sites_desc: "Add addresses in the dashboard; unwanted sites stop opening on the phone.",
3371    pm_duo_kids_pair_name: "Enter the pairing code",
3372    pm_duo_kids_pair_desc: "Your child enters in the app the code you generated in the dashboard.",
3373    pm_duo_tag_facil: "Easy",
3374    pm_duo_kids_block_name: "Real-time blocks",
3375    pm_duo_kids_block_desc: "Blocked sites and apps do not open; the notice appears right away.",
3376    pm_duo_tv_title: "Child TV (Catellix Kids on TV)",
3377    pm_duo_tv_platform: "Android TV only",
3378    pm_duo_label_tv_setup: "On the TV",
3379    pm_duo_label_tv_control: "TV monitoring",
3380    pm_duo_tv_setup_name: "Simple interface with the remote",
3381    pm_duo_tv_setup_desc: "Android TV app with easy reading from the couch and the same pairing code as on the phone.",
3382    pm_duo_tag_tv_focus: "Living-room friendly",
3383    pm_duo_tv_time_name: "Screen time limit",
3384    pm_duo_tv_time_desc: "Set daily TV use — without the long feature list of the phone app.",
3385    pm_duo_tv_apps_name: "Block TV apps",
3386    pm_duo_tv_apps_desc: "Allow or block only apps installed on the TV (streaming, games, etc.).",
3387    pm_duo_tag_reduzido: "Fewer options than on the phone",
3388    pm_duo_kids_feature_link: "Enters the pairing code in the app to link the phone to the guardian account.",
3389    pm_duo_kids_feature_rules: "Receives the guardian rules (site/app blocks and usage limits).",
3390    pm_duo_kids_feature_blocked_view: "When something is blocked, the app/site does not open and the block is shown immediately.",
3391    pm_duo_kids_feature_install_request: "When installing a new app, an approval request may appear for the guardian.",
3392    pm_duo_kids_feature_location_sync: "Sends location and usage events to the dashboard, according to accepted permissions.",
3393    pm_duo_kids_feature_same_password: "Uses the same password set by the guardian to protect sensitive settings.",
3394    pm_duo_kids_feature_timeline: "Every important action appears in the timeline seen by the guardian.",
3395    pm_duo_ctrl_feature_dashboard: "Track the child's dashboard with routine, usage, and digital behavior indicators throughout the week.",
3396    pm_duo_ctrl_feature_evolution_graphs: "View progress charts (screen time, completed goals, most used apps, and routine consistency).",
3397    pm_duo_ctrl_feature_missions: "Create and approve missions (e.g., homework, brushing teeth, cleaning the room) with photo/report sent by the child.",
3398    pm_duo_ctrl_feature_aurix: "Manage the AuriX system: set rewards, track balance, and encourage habits through goals.",
3399    pm_duo_ctrl_feature_library: "Register and organize Library content (videos/books) to build educational missions.",
3400    pm_duo_ctrl_feature_plans: "Adjust routine plans (base time + missions, monitoring-only, etc.) according to family needs.",
3401    pm_duo_kids_feature_missions: "Receives daily missions, sends completion with photo/report, and waits for guardian approval.",
3402    pm_duo_kids_feature_aurix_wallet: "Earns AuriX by completing goals and tracks personal balance in the app.",
3403    pm_duo_kids_feature_library: "Accesses Library content (when allowed) as part of routine and missions.",
3404    pm_duo_kids_feature_progress: "Sees habit progress, task streaks, and weekly performance.",
3405    pm_duo_link_ios_profile: "iOS: download profile",
3406    pm_duo_link_android_shortcut: "Android: install Chrome shortcut",
3407    pm_duo_link_site_home: "Catellix home — open these shortcuts again",
3408    pm_duo_library_tag_videos: "Videos",
3409    pm_duo_library_tag_books: "Books",
3410    pm_duo_modal_ios_title: "iPhone shortcut — what happens when you tap",
3411    pm_duo_modal_ios_body: "<p><strong>When you tap «Download profile»</strong>, Safari downloads a <code>.mobileconfig</code> file. It does <em>not</em> install by itself — you must open <strong>Settings</strong> on the iPhone.</p><p><strong>After the download:</strong></p><ol><li>Open <strong>Settings</strong> (gear icon ⚙️).</li><li>At the top, tap <strong>«Downloaded Profile»</strong> or <strong>«Profile Downloaded»</strong>.</li><li>Tap <strong>Install</strong> (top right) and confirm with your passcode if asked.</li><li>Return to the Home Screen: you should see the <strong>Catellix</strong> icon. Open it to reach the parent dashboard.</li></ol><p style=\"margin-top:10px;font-size:0.82rem;color:#64748b;\">If iOS shows «unsigned» or «unverified», that is common for profiles downloaded from a website. The file is generated by Catellix to add a shortcut to the web dashboard.</p>",
3412    pm_duo_modal_ios_download: "Download profile now",
3413    pm_duo_modal_android_title: "Android shortcut (Chrome)",
3414    pm_duo_modal_android_body: "<p><strong>When you open the dashboard</strong>, sign in if prompted. In <strong>Google Chrome</strong>, you may see <strong>«Install app»</strong> or use the <strong>⋮</strong> menu → <strong>«Install app»</strong> / <strong>«Add to Home screen»</strong>.</p><p><strong>If the install option disappears</strong> after you used it once, that is normal Chrome behavior: the native prompt is only offered once per site. You can still add the shortcut from the <strong>⋮</strong> menu, or return to this page using the <strong>
3414Catellix home</strong> link below the buttons.</p><p style=\"margin-top:10px;font-size:0.82rem;color:#64748b;\"><strong>Recommended:</strong> install the <strong>Catellix Kids</strong> app from the Play Store and choose «Parent phone» — same dashboard with native notifications.</p>",
3415    pm_duo_modal_android_open: "Open dashboard and full guide",
3416    pm_duo_modal_close: "Close",
3417    pm_duo_link_playstore: "Child: open in Play Store",
3418    pm_what_feature_pairing: "Simple pairing: you generate a code in the dashboard and your child enters it in the app — the phone is linked to your account in seconds.",
3419    pm_what_feature_sites: "Block sites you don't want your child to access. You just add the address (e.g. pudim.com.br) and the site won't open.",
3420    pm_what_feature_sites_alert: "Get an alert when your child visits a certain site instead of blocking it. You stay informed without blocking.",
3421    pm_what_feature_apps: "Block or disable apps (games, social media, etc.). Block = app won't open. Disable = icon disappears from the screen.",
3422    pm_what_feature_screentime: "See how long your child used the phone today and this week, and which apps they used most.",
3423    pm_what_feature_weekly_report: "Receive an email at the start of each week with a summary of phone use over the last 7 days.",
3424    pm_what_feature_keylog: "Optionally, record what your child types in apps (messages, searches). Helps you monitor conversations and reduce risks.",
3425    pm_what_feature_password: "Set a password to open the app on your child's phone. Only someone who knows the password can change app settings.",
3426    pm_what_feature_location: "See where the phone is on a map. One click opens Google Maps with the last location sent.",
3427    pm_what_feature_displacement: "See on a map where the phone has been over the last 7 days (displacement route).",
3428    pm_what_feature_camera: "Request a photo remotely: front or back camera. The photo appears in your dashboard right away.",
3429    pm_what_feature_apps_list: "See a list of all apps installed on the phone and ask to disable (hide) or uninstall any of them.",
3430    pm_what_feature_install_approval: "When your child tries to install a new app, you can allow or deny it. Or allow \"for 1 hour\" so they can install without asking.",
3431    pm_what_feature_events: "See a timeline: when they accessed a blocked site, opened a blocked app, installed something, etc. All in one place.",
3432    pm_play_disclaimer: "The version on the Play Store includes parental controls (app and site blocking, screen time, location, etc.). Features such as keystroke logging, remote photo, and hiding the app icon are available only in the manual installation (APK), outside the Play Store.",
3433    pm_what_feature_apps_list_play: "View all apps installed on the phone and ask to disable or uninstall any of them.",
3434    pm_apk_extra_line: "In the manual installation (APK) you also get: keystroke logging, remote photo, and hiding the app icon.",
3435    pm_examples_title: "How it works in practice",
3436    pm_example_painel: "In your dashboard you see linked devices and turn on blocks, screen time, and other options.",
3437    pm_example_bloqueio: "On your child's phone, blocked apps or sites won't open — they see that parental control is active.",
3438    pm_example_pareamento: "Pairing: you share the code (or app link) with your child; they install, enter the code, and that's it.",
3439    pm_steps_title: "Step by step",
3440    pm_step1_num: "Step 1",
3441    pm_step2_num: "Step 2",
3442    pm_step3_num: "Step 3",
3443    pm_step4_num: "Step 4",
3444    pm_step5_num: "Step 5",
3445    pm_step1_title: "How to install the app",
3446    pm_step1_desc: "The parent accesses the dashboard and installs Catellix Kids on the child's phone via the Play Store.",
3447    pm_step1_screen: "Install on child's phone",
3448    pm_step2_title: "Permissions that must be accepted",
3449    pm_step2_desc: "For parental control to work, the app requests permissions on Android (accessibility, background usage, etc.). All must be accepted by the parent on the child's device.",
3450    pm_step2_screen: "App permissions",
3451    pm_step2_screen_hint: "Disable temporarily in Play Store settings and try again",
3452    pm_step3_title: "App on and signal active",
3453    pm_step3_desc: "When the license is active, the app shows \"Protection active\" and sends data to the dashboard. If the license expires, the red \"Expired\" tag appears and the app stops sending information until the parent renews in Mobile Plans.",
3454    pm_step3_screen: "App permissions",
3455    pm_step3_screen_ok: "Protection active",
3456    pm_step3_badge_ok: "Active",
3457    pm_step4_title: "When the license expires",
3458    pm_step4_desc: "The app displays the red \"Expired\" tag and stops sending events to the server. After the parent purchases a new license (Mobile Plans), the app recognizes it on the next sync and resumes sending data.",
3459    pm_step4_screen_ok: "Protection active",
3460    pm_step4_badge_ok: "Active",
3461    pm_step4_screen: "License expired",
3462    pm_step5_title: "If installation failed — Play Protect",
3463    pm_step5_desc: "Only use this step if the app did not install. On some phones Play Protect may block: disable it temporarily (Play Store → profile → Play Protect → gear), install again, then turn Play Protect back on.",
3464    pm_step5_screen: "Installation blocked?",
3465    pm_step5_screen_hint: "Disable temporarily in Play Store settings and try again",
3466    pm_step5_video_label: "Only if needed: how to disable Play Protect",
3467    // Account portal — /conta/login
3468    clogin_hero_h1: "Everything Catellix in one place.",
3469    clogin_hero_p: "Sign in to see your products, licenses, profile, résumé and Kanban — synced with Catellix Terminal.",
3470    clogin_perk1: "View and buy products with licenses and real-time validity.",
3471    clogin_perk2: "Online Kanban synced with your Catellix Terminal.",
3472    clogin_perk3: "Professional profile with photo and résumé export.",
3473    clogin_perk4: "Audit of your actions in the last 7 days.",
3474    clogin_tab_login: "Sign in",
3475    clogin_tab_reg: "Create account",
3476    clogin_google_loading: "Loading…",
3477    clogin_or_email: "or sign in with email",
3478    clogin_welcome: "Welcome back",
3479    clogin_welcome_sub: "Use the same email and password as your Catellix account.",
3480    clogin_email: "Email",
3481    clogin_email_ph: "[email protected]",
3482    clogin_password: "Password",
3483    clogin_password_ph: "Your password",
3484    clogin_keep: "Keep me signed in",
3485    clogin_forgot: "Forgot password",
3486    clogin_enter: "Sign in",
3487    clogin_reg_h2: "Create your account",
3488    clogin_reg_sub: "Takes less than a minute. Confirm your email to activate.",
3489    clogin_name: "Full name",
3490    clogin_name_ph: "Your name",
3491    clogin_phone: "Phone (optional)",
3492    clogin_phone_ph: "(11) 99999-9999",
3493    clogin_reg_pass_ph: "At least 8 characters",
3494    clogin_reg_btn: "Create account",
3495    clogin_foot: "By continuing you agree to Catellix Terms and Privacy Policy."
3496  };
3497  // Verifica se os objetos foram criados corretamente
3498  try {
3499    if (!ptBR || typeof ptBR !== 'object') throw new Error("ptBR inválido");
3500    if (!en || typeof en !== 'object') throw new Error("en inválido");
3501    if (!ptBR.hasOwnProperty('welcome_hero_title')) { /* fallback abaixo */ }
3502    if (!en.hasOwnProperty('welcome_hero_title')) { /* fallback abaixo */ }
3503  } catch(e) { /* silencioso */ }
3504  
3505  var M = { ptBR: ptBR, en: en };
3506  
3507  // Fallback: Garantir que as chaves perfil_name_label e perfil_license_time existam
3508  if (!ptBR.hasOwnProperty('perfil_name_label')) ptBR.perfil_name_label = "Nome";
3509  if (!ptBR.hasOwnProperty('perfil_license_time')) ptBR.perfil_license_time = "Tempo restante";
3510  if (!en.hasOwnProperty('perfil_name_label')) en.perfil_name_label = "Name";
3511  if (!en.hasOwnProperty('perfil_license_time')) en.perfil_license_time = "Time remaining";
3512  
3513  window.I18N = M;
3514  window.__locale = window.__locale || localStorage.getItem("catellix_locale") || "ptBR";
3515  if (window.__locale !== "ptBR" && window.__locale !== "en") window.__locale = "ptBR";
3516  window.I18N._current = window.__locale === "en" ? M.en : M.ptBR;
3517  
3518  _dbg("i18n: Objetos criados");
3519  _dbg("  ptBR['welcome_hero_title']:", ptBR['welcome_hero_title']);
3520  _dbg("  en['welcome_hero_title']:", en['welcome_hero_title']);
3521  _dbg("  M.en['welcome_hero_title']:", M.en['welcome_hero_title']);
3522  _dbg("  M.ptBR['welcome_hero_title']:", M.ptBR['welcome_hero_title']);
3523  _dbg("  window.__locale:", window.__locale);
3524  _dbg("  window.I18N._current === M.en?", window.I18N._current === M.en);
3525  _dbg("  window.I18N._current === M.ptBR?", window.I18N._current === M.ptBR);
3526  _dbg("  Total de chaves em ptBR:", Object.keys(ptBR).length);
3527  _dbg("  Total de chaves em en:", Object.keys(en).length);
3528  _dbg("  Chaves welcome_* em ptBR:", Object.keys(ptBR).filter(function(k) { return k.indexOf('welcome_') === 0; }).length);
3529  _dbg("  Chaves welcome_* em en:", Object.keys(en).filter(function(k) { return k.indexOf('welcome_') === 0; }).length);
3530  _dbg("  === DEBUG PERFIL KEYS ===");
3531  _dbg("  ptBR.hasOwnProperty('perfil_name_label'):", ptBR.hasOwnProperty('perfil_name_label'));
3532  _dbg("  ptBR.hasOwnProperty('perfil_license_time'):", ptBR.hasOwnProperty('perfil_license_time'));
3533  _dbg("  en.hasOwnProperty('perfil_name_label'):", en.hasOwnProperty('perfil_name_label'));
3534  _dbg("  en.hasOwnProperty('perfil_license_time'):", en.hasOwnProperty('perfil_license_time'));
3535  _dbg("  ptBR['perfil_name_label']:", ptBR['perfil_name_label']);
3536  _dbg("  ptBR['perfil_license_time']:", ptBR['perfil_license_time']);
3537  _dbg("  en['perfil_name_label']:", en['perfil_name_label']);
3538  _dbg("  en['perfil_license_time']:", en['perfil_license_time']);
3539  _dbg("  M.en['perfil_name_label']:", M.en['perfil_name_label']);
3540  _dbg("  M.en['perfil_license_time']:", M.en['perfil_license_time']);
3541  _dbg("  M.ptBR['perfil_name_label']:", M.ptBR['perfil_name_label']);
3542  _dbg("  M.ptBR['perfil_license_time']:", M.ptBR['perfil_license_time']);
3543  var perfilKeysPtBR = Object.keys(ptBR).filter(function(k) { return k.indexOf('perfil_') === 0; });
3544  var perfilKeysEn = Object.keys(en).filter(function(k) { return k.indexOf('perfil_') === 0; });
3545  _dbg("  Chaves perfil_* em ptBR:", perfilKeysPtBR);
3546  _dbg("  Chaves perfil_* em en:", perfilKeysEn);
3547  _dbg("  === FIM DEBUG PERFIL KEYS ===");
3548
3549  // Expõe os objetos globalmente para debug
3550  window._i18n_debug = { en: en, ptBR: ptBR, M: M };
3551  
3552  window.t = function(k) {
3553    // Define variáveis no início para garantir que sempre estejam disponíveis
3554    var c = null;
3555    var M_ref = typeof M !== 'undefined' ? M : window.I18N || {};
3556    
3557    if (!window._t_debug_done) {
3558      window._t_debug_done = true;
3559      _dbg("=== DEBUG window.t() PRIMEIRA CHAMADA ===");
3560      _dbg("Chave:", k);
3561      _dbg("window.__locale:", window.__locale);
3562      _dbg("window.I18N:", window.I18N);
3563      _dbg("window.I18N._current:", window.I18N ? window.I18N._current : 'I18N não existe');
3564      _dbg("M existe?", typeof M !== 'undefined');
3565      if (typeof M !== 'undefined' && M.en) {
3566        _dbg("M.en existe?", true);
3567        _dbg("M.ptBR existe?", !!M.ptBR);
3568        _dbg("M.en['welcome_hero_title']:", M.en['welcome_hero_title']);
3569        _dbg("M.ptBR['welcome_hero_title']:", M.ptBR ? M.ptBR['welcome_hero_title'] : 'ptBR não existe');
3570      }
3571    }
3572    
3573    // Garante que I18N está inicializado
3574    if (!window.I18N) {
3575      if (typeof M !== 'undefined' && M.en && M.ptBR) {
3576        window.I18N = M;
3577      } else {
3578        window.I18N = { en: {}, ptBR: {}, _current: {} };
3579      }
3580    }
3581    
3582    if (!window.I18N._current) {
3583      window.__locale = window.__locale || localStorage.getItem("catellix_locale") || "ptBR";
3584      if (window.__locale !== "ptBR" && window.__locale !== "en") window.__locale = "ptBR";
3585      if (typeof M !== 'undefined' && M.en && M.ptBR) {
3586        window.I18N._current = window.__locale === "en" ? M.en : M.ptBR;
3587      } else if (window.I18N.en && window.I18N.ptBR) {
3588        window.I18N._current = window.__locale === "en" ? window.I18N.en : window.I18N.ptBR;
3589      } else {
3590        window.I18N._current = {};
3591      }
3592      _dbg("i18n: Inicializado com locale:", window.__locale);
3593    }
3594    
3595    // Define c SEMPRE antes de qualquer uso
3596    c = window.I18N._current || (typeof M !== 'undefined' && M && M.ptBR ? M.ptBR : null);
3597    
3598    // Fallback direto para chaves específicas que podem estar faltando - EXECUTA PRIMEIRO
3599    if (k === 'perfil_name_label' || k === 'perfil_license_time') {
3600      var locale = window.__locale || (typeof localStorage !== 'undefined' ? localStorage.getItem("catellix_locale") : null) || 'ptBR';
3601      if (locale !== "ptBR" && locale !== "en") locale = "ptBR";
3602      _dbg("i18n: FALLBACK ATIVADO para chave:", k, "locale:", locale);
3603      var I18N = window.I18N || {};
3604      
3605      if (k === 'perfil_name_label') {
3606        if (locale === 'en') {
3607          if (!I18N.en) I18N.en = {};
3608          if (!I18N.en.perfil_name_label) {
3609            I18N.en.perfil_name_label = "Name";
3610            _dbg("i18n: ✓ Adicionado perfil_name_label = 'Name' em I18N.en");
3611          }
3612          if (I18N._current && I18N._current === I18N.en) {
3613            I18N._current.perfil_name_label = "Name";
3614          }
3615          return I18N.en.perfil_name_label;
3616        } else {
3617          if (!I18N.ptBR) I18N.ptBR = {};
3618          if (!I18N.ptBR.perfil_name_label) {
3619            I18N.ptBR.perfil_name_label = "Nome";
3620            _dbg("i18n: ✓ Adicionado perfil_name_label = 'Nome' em I18N.ptBR");
3621          }
3622          if (I18N._current && I18N._current === I18N.ptBR) {
3623            I18N._current.perfil_name_label = "Nome";
3624          }
3625          return I18N.ptBR.perfil_name_label;
3626        }
3627      } else if (k === 'perfil_license_time') {
3628        if (locale === 'en') {
3629          if (!I18N.en) I18N.en = {};
3630          if (!I18N.en.perfil_license_time) {
3631            I18N.en.perfil_license_time = "Time remaining";
3632            _dbg("i18n: ✓ Adicionado perfil_license_time = 'Time remaining' em I18N.en");
3633          }
3634          if (I18N._current && I18N._current === I18N.en) {
3635            I18N._current.perfil_license_time = "Time remaining";
3636          }
3637          return I18N.en.perfil_license_time;
3638        } else {
3639          if (!I18N.ptBR) I18N.ptBR = {};
3640          if (!I18N.ptBR.perfil_license_time) {
3641            I18N.ptBR.perfil_license_time = "Tempo restante";
3642            _dbg("i18n: ✓ Adicionado perfil_license_time = 'Tempo restante' em I18N.ptBR");
3643          }
3644          if (I18N._current && I18N._current === I18N.ptBR) {
3645            I18N._current.perfil_license_time = "Tempo restante";
3646          }
3647          return I18N.ptBR.perfil_license_time;
3648        }
3649      }
3650    }
3651    
3652    // Resolve locale sempre a partir de __locale e localStorage (fonte única da verdade)
3653    var loc = window.__locale || (typeof localStorage !== 'undefined' ? localStorage.getItem("catellix_locale") : null) || "ptBR";
3654    if (loc !== "ptBR" && loc !== "en") loc = "ptBR";
3655
3656    // Escolhe o dicionário do idioma atual (não depende de _current)
3657    var dict = null;
3658    if (typeof M !== 'undefined' && M && M.en && M.ptBR) {
3659      dict = loc === "en" ? M.en : M.ptBR;
3660    } else if (window.I18N && window.I18N.en && window.I18N.ptBR) {
3661      dict = loc === "en" ? window.I18N.en : window.I18N.ptBR;
3662    }
3663
3664    var translated = null;
3665    try {
3666      if (dict && typeof dict === 'object' && typeof dict[k] !== 'undefined' && dict[k] !== null) {
3667        translated = dict[k];
3668      } else {
3669        // Fallback: outro idioma
3670        var other = (typeof M !== 'undefined' && M && M.en && M.ptBR) ? (loc === "en" ? M.ptBR : M.en) : (window.I18N && window.I18N.en && window.I18N.ptBR ? (loc === "en" ? window.I18N.ptBR : window.I18N.en) : null);
3671        if (other && typeof other[k] !== 'undefined' && other[k] !== null) translated = other[k];
3672        else translated = k;
3673      }
3674    } catch(e) {
3675      translated = k;
3676    }
3677    return translated;
3678  };
3679  /** Tradução para um locale fixo (ptBR | en), útil p.ex. voz PT/EN independente do idioma da página. */
3680  window.tLocale = function(locale, k) {
3681    if (!k) return "";
3682    var loc = locale === "en" ? "en" : "ptBR";
3683    var dict = null;
3684    if (typeof M !== "undefined" && M && M.en && M.ptBR) {
3685      dict = loc === "en" ? M.en : M.ptBR;
3686    } else if (window.I18N && window.I18N.en && window.I18N.ptBR) {
3687      dict = loc === "en" ? window.I18N.en : window.I18N.ptBR;
3688    }
3689    if (!dict || typeof dict[k] === "undefined" || dict[k] === null || dict[k] === "") return k;
3690    return dict[k];
3691  };
3692  window.setLocale = function(loc) {
3693    loc = (loc === "en" || loc === "ptBR") ? loc : "ptBR";
3694    window.__locale = loc;
3695    if (window.I18N && window.I18N.en && window.I18N.ptBR) {
3696      window.I18N._current = loc === "en" ? window.I18N.en : window.I18N.ptBR;
3697    }
3698    try { localStorage.setItem("catellix_locale", loc); } catch (e) {}
3699  };
3700  window.applyI18n = function() {
3701    _dbg("=== applyI18n CHAMADA ===");
3702    try {
3703      // Usa mesma fonte que t(): __locale e localStorage
3704      var loc = window.__locale || (typeof localStorage !== 'undefined' ? localStorage.getItem("catellix_locale") : null) || "ptBR";
3705      if (loc !== "ptBR" && loc !== "en") loc = "ptBR";
3706      if (document.documentElement) document.documentElement.lang = (loc === "ptBR") ? "pt-BR" : "en";
3707      if (window.I18N && window.I18N.en && window.I18N.ptBR) {
3708        window.I18N._current = loc === "en" ? window.I18N.en : window.I18N.ptBR;
3709      }
3710      if (typeof window.t !== "function") return;
3711      if (!document.body || !document.querySelectorAll) return;
3712      var count = 0;
3713      var elements = document.querySelectorAll("[data-i18n]");
3714      _dbg("i18n: Encontrados " + elements.length + " elementos com data-i18n");
3715
3716      if (elements.length === 0) {
3717        _dbg("i18n: document.body existe?", !!document.body);
3718        _dbg("i18n: document.querySelectorAll existe?", typeof document.querySelectorAll === 'function');
3719      }
3720
3721      elements.forEach(function(el, idx) {
3722        var k = el.getAttribute("data-i18n");
3723        if (k) {
3724          var originalText = el.textContent || el.innerText || '';
3725          var translated = window.t(k);
3726
3727          if (idx < 5) {
3728            _dbg("i18n [" + idx + "]: '" + k + "'");
3729            _dbg("  Original: '" + originalText.substring(0, 50) + "'");
3730            _dbg("  Traduzido: '" + translated.substring(0, 50) + "'");
3731            _dbg("  São diferentes?", translated !== k);
3732          }
3733
3734          if (translated !== k && /<[^>]+>/.test(translated)) {
3735            el.innerHTML = translated;
3736            if (idx < 5) _dbg("  ✓ Aplicado (innerHTML)");
3737          } else if (translated !== k) {
3738            el.textContent = translated;
3739            if (idx < 5) _dbg("  ✓ Aplicado (textContent)");
3740          } else {
3741            /* tradução não encontrada: mantém texto original */
3742          }
3743          count++;
3744        }
3745      });
3746    document.querySelectorAll("[data-i18n-placeholder]").forEach(function(el) {
3747      var k = el.getAttribute("data-i18n-placeholder");
3748      if (k) el.placeholder = window.t(k);
3749    });
3750    document.querySelectorAll("[data-i18n-title]").forEach(function(el) {
3751      var k = el.getAttribute("data-i18n-title");
3752      if (k) el.title = window.t(k);
3753    });
3754    document.querySelectorAll("[data-i18n-aria-label]").forEach(function(el) {
3755      var k = el.getAttribute("data-i18n-aria-label");
3756      if (k) el.setAttribute("aria-label", window.t(k));
3757    });
3758    _dbg("i18n: Aplicadas " + count + " traduções");
3759    } catch(e) { /* silencioso */ }
3760  };
3761  window.renderLangSwitcher = function() {
3762    function ensureDefaultLangSwitcherStyle() {
3763      if (document.getElementById("catellix-lang-switcher-default-style")) return;
3764      var st = document.createElement("style");
3765      st.id = "catellix-lang-switcher-default-style";
3766      st.textContent =
3767        "#catellix-lang-switcher.catellix-lang-switcher-default{" +
3768        "position:fixed;left:max(8px, env(safe-area-inset-left, 8px));bottom:max(8px, env(safe-area-inset-bottom, 8px));" +
3769        "z-index:99999;display:inline-flex;align-items:center;gap:4px;padding:5px 7px;border-radius:999px;" +
3770        "background:rgba(15,23,42,.74);backdrop-filter:blur(6px);border:1px solid rgba(148,163,184,.28);" +
3771        "box-shadow:0 4px 14px rgba(2,6,23,.22);font-family:inherit}" +
3772        "#catellix-lang-switcher.catellix-lang-switcher-default>span{" +
3773        "font-size:10px;color:rgba(226,232,240,.92);margin-right:2px;line-height:1}" +
3774        "#catellix-lang-switcher.catellix-lang-switcher-default .catellix-lang-btn{" +
3775        "min-height:24px;min-width:28px;padding:3px 7px;border-radius:999px;border:1px solid rgba(148,163,184,.45);" +
3776        "background:transparent;color:#e2e8f0;font-size:10px;font-weight:700;line-height:1;cursor:pointer}" +
3777        "#catellix-lang-switcher.catellix-lang-switcher-default .catellix-lang-btn.active{" +
3778        "background:#0284c7;border-color:#0284c7;color:#fff}" +
3779        "@media (max-width:480px){" +
3780        "#catellix-lang-switcher.catellix-lang-switcher-default{padding:4px 6px;left:max(6px, env(safe-area-inset-left, 6px));bottom:max(6px, env(safe-area-inset-bottom, 6px))}" +
3781        "#catellix-lang-switcher.catellix-lang-switcher-default>span{display:none}" +
3782        "#catellix-lang-switcher.catellix-lang-switcher-default .catellix-lang-btn{min-height:22px;min-width:26px;font-size:10px;padding:2px 6px}" +
3783        "}";
3784      (document.head || document.documentElement).appendChild(st);
3785    }
3786    var div = document.getElementById("catellix-lang-switcher");
3787    if (div) {
3788      /* Container já existe (ex.: sidebar do controller): preencher e não criar outro */
3789      if (div.children.length === 0) {
3790        div.innerHTML = "<span>" + (window.t("language_label") || "Idioma") + ":</span><button type=\"button\" class=\"catellix-lang-btn\" data-lang=\"ptBR\">PT</button><button type=\"button\" class=\"catellix-lang-btn\" data-lang=\"en\">EN</button>";
3791        div.querySelectorAll(".catellix-lang-btn").forEach(function(btn
3791) {
3792          btn.classList.toggle("active", btn.getAttribute("data-lang") === (window.__locale || "ptBR"));
3793          btn.addEventListener("click", function() {
3794            var lang = btn.getAttribute("data-lang");
3795            window.setLocale(lang);
3796            div.querySelectorAll(".catellix-lang-btn").forEach(function(b) { b.classList.toggle("active", b.getAttribute("data-lang") === lang); });
3797            if (window.applyI18n) window.applyI18n();
3798            if (window.onLocaleChange) window.onLocaleChange();
3799            requestAnimationFrame(function() { if (window.applyI18n) window.applyI18n(); });
3800            setTimeout(function() { if (window.applyI18n) window.applyI18n(); }, 150);
3801            setTimeout(function() { if (window.applyI18n) window.applyI18n(); }, 400);
3802          });
3803        });
3804      }
3805      return;
3806    }
3807    div = document.createElement("div");
3808    div.id = "catellix-lang-switcher";
3809    div.className = "catellix-lang-switcher-default";
3810    ensureDefaultLangSwitcherStyle();
3811    div.style.cssText = "";
3812    div.innerHTML = "<span>" + (window.t("language_label") || "Idioma") + ":</span><button type=\"button\" class=\"catellix-lang-btn\" data-lang=\"ptBR\">PT</button><button type=\"button\" class=\"catellix-lang-btn\" data-lang=\"en\">EN</button>";
3813    document.body.appendChild(div);
3814    div.querySelectorAll(".catellix-lang-btn").forEach(function(btn) {
3815      btn.classList.toggle("active", btn.getAttribute("data-lang") === (window.__locale || "ptBR"));
3816      btn.addEventListener("click", function() {
3817        var lang = btn.getAttribute("data-lang");
3818        window.setLocale(lang);
3819        div.querySelectorAll(".catellix-lang-btn").forEach(function(b) { b.classList.toggle("active", b.getAttribute("data-lang") === lang); });
3820        if (window.applyI18n) window.applyI18n();
3821        if (window.onLocaleChange) window.onLocaleChange();
3822        requestAnimationFrame(function() { if (window.applyI18n) window.applyI18n(); });
3823        setTimeout(function() { if (window.applyI18n) window.applyI18n(); }, 150);
3824        setTimeout(function() { if (window.applyI18n) window.applyI18n(); }, 400);
3825      });
3826    });
3827  };
3828  window.catellixWrapTablesForScroll = function() {
3829    try {
3830      if (!document.querySelectorAll) return;
3831      var skip =
3832        ".catellix-table-scroll, .table-glow-wrap, .table-scroll-wrap, .reports-table-wrap, " +
3833        ".report-table-wrap, .stats-table-wrap, .stats-ranking-wrap, .flow-talkers-table-wrap, " +
3834        ".ipam-table-wrap, .history-table-wrap, .admin-table-wrap, .admin-escolas-table-wrap, " +
3835        ".clients-table-wrap, .sub-users-wrap, .aurix-content, .snmp-modal-box, .modal-box, " +
3836        ".info-modal-box, .payment-method-modal, .modal-box-sub";
3837      var label =
3838        window.t && typeof window.t === "function"
3839          ? window.t("table_scroll_aria")
3840          : "Tabela — deslize horizontalmente";
3841      if (label === "table_scroll_aria") label = "Tabela — deslize horizontalmente";
3842      document.querySelectorAll("table").forEach(function(tb) {
3843        if (tb.closest(skip)) return;
3844        if (tb.classList.contains("no-table-scroll")) return;
3845        var p = tb.parentElement;
3846        if (!p || p.classList.contains("catellix-table-scroll")) return;
3847        var w = document.createElement("div");
3848        w.className = "catellix-table-scroll";
3849        w.setAttribute("role", "region");
3850        w.setAttribute("aria-label", label);
3851        p.insertBefore(w, tb);
3852        w.appendChild(tb);
3853      });
3854    } catch (e) { /* silencioso */ }
3855  };
3856  window.initI18n = function() {
3857    _dbg("i18n: initI18n chamado, locale atual:", window.__locale);
3858    if (window.renderLangSwitcher) window.renderLangSwitcher();
3859    if (window.catellixWrapTablesForScroll) window.catellixWrapTablesForScroll();
3860    if (window.applyI18n) window.applyI18n();
3861  };
3862  function autoInit() {
3863    if (document.body && document.querySelectorAll) {
3864      _dbg("i18n: DOM pronto, inicializando...");
3865      _dbg("i18n: Verificando antes de initI18n - window.t('welcome_hero_title'):", window.t('welcome_hero_title'));
3866      window.initI18n();
3867    } else {
3868      _dbg("i18n: Aguardando DOM...");
3869      setTimeout(autoInit, 50);
3870    }
3871  }
3872  function forceInit() {
3873    _dbg("i18n: Script carregado, forçando inicialização");
3874    autoInit();
3875    setTimeout(function() {
3876      if (window.applyI18n) {
3877        _dbg("i18n: Reaplicando traduções após delay");
3878        window.applyI18n();
3879      }
3880    }, 500);
3881  }
3882  if (document.readyState === "loading") {
3883    document.addEventListener("DOMContentLoaded", function() {
3884      _dbg("i18n: DOMContentLoaded disparado");
3885      forceInit();
3886    });
3887  } else {
3888    _dbg("i18n: DOM já carregado, inicializando imediatamente");
3889    forceInit();
3890  }
3891  window.addEventListener('load', function() {
3892    _dbg("i18n: Window load disparado, reaplicando traduções");
3893    setTimeout(function() {
3894      if (window.applyI18n) {
3895        window.applyI18n();
3896      }
3897    }, 300);
3898  });
3899
3900  _dbg("=== i18n.js CARREGADO COMPLETAMENTE ===");
3901  _dbg("window.t disponível?", typeof window.t === 'function');
3902  _dbg("window.applyI18n disponível?", typeof window.applyI18n === 'function');
3903  _dbg("window.initI18n disponível?", typeof window.initI18n === 'function');
3904  _dbg("M.en['welcome_hero_title']:", M.en['welcome_hero_title']);
3905  _dbg("M.ptBR['welcome_hero_title']:", M.ptBR['welcome_hero_title']);
3906  _dbg("Teste window.t('welcome_hero_title'):", window.t('welcome_hero_title'));
3907})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.