{
  "nav": {
    "home": "Início",
    "about": "Sobre mim",
    "tech": "Stack Tecnológico",
    "projects": "Projetos",
    "services": "Serviços",
    "experience": "Experiência",
    "skills": "Soft Skills",
    "contact": "Contato",
    "blog": "Blog",
    "more": "Mais",
    "login": "Entrar",
    "admin": "Admin",
    "dashboard": "Dashboard",
    "ai_tools": "IA & Ferramentas",
    "testimonials": "Depoimentos",
    "search": "Pesquisar",
    "open_menu": "Abrir menu",
    "back_to_top": "Voltar ao topo",
    "main_aria": "Navegação principal",
    "bottom_aria": "Navegação rápida"
  },
  "sidebar": {
    "collapse_menu": "Recolher o menu lateral",
    "expand_menu": "Expandir o menu lateral",
    "collapse_icons": "Recolher (ícones)",
    "expand_icons": "Expandir (ícones + texto)",
    "close_menu": "Fechar menu",
    "brand_admin": "Admin",
    "brand_tools": "IA & Ferramentas",
    "explore_lab": "Explorar o Lab",
    "items_available": "{{count}} ferramentas disponíveis",
    "lab": "Lab",
    "command_palette_placeholder": "Ir para...",
    "command_palette_aria": "Pesquisar e ir para uma seção",
    "command_palette_no_results": "Nenhum resultado",
    "groups": {
      "overview": "Visão geral",
      "content": "Conteúdo",
      "ai": "IA",
      "workspace": "Fluxo de trabalho",
      "tools": "Ferramentas",
      "account": "Conta"
    },
    "items": {
      "dashboard": "Dashboard",
      "projects": "Projetos",
      "blog": "Blog",
      "experiences": "Experiência",
      "about": "Sobre mim",
      "testimonials": "Depoimentos",
      "newsletter": "Newsletter",
      "notes": "Notas",
      "pdf_search": "Buscar PDF",
      "library": "Biblioteca",
      "pdf_summary": "Resumo de PDF",
      "ai_formatter": "Formatador IA",
      "pdf_translate": "Tradução de PDF",
      "ai_ppt": "Gerar Slides",
      "workspace": "Workspace",
      "pdf_editor": "Organizar PDF",
      "viewer": "Visualizador de PDF",
      "editor": "Editor de Texto",
      "convert": "Conversor de Arquivos",
      "ocr": "Texto de Imagem (OCR)",
      "scanner": "Scanner de Documentos",
      "my_files": "Os meus ficheiros",
      "contacts": "Contactos",
      "users": "Utilizadores",
      "ai_assistant": "Assistente IA",
      "live_chat": "Chat ao vivo"
    }
  },
  "lang": {
    "label": "Idioma",
    "it": "Italiano",
    "en": "English",
    "sq": "Shqip",
    "es": "Español",
    "pt": "Português",
    "fr": "Français",
    "de": "Deutsch"
  },
  "search": {
    "trigger": "Pesquisar no site",
    "dialog_label": "Pesquisa no site",
    "placeholder": "Pesquisar artigos, projetos...",
    "min_chars": "Digite pelo menos {{count}} caracteres",
    "loading": "Pesquisando...",
    "tap_outside_close": "Toque fora para fechar",
    "no_results": "Nenhum resultado",
    "view_all": "Ver todos os resultados",
    "results_for": "Resultados para",
    "results_count": "resultados encontrados",
    "filters": {
      "all": "Todos",
      "post": "Blog",
      "project": "Projetos",
      "page": "Seções"
    }
  },
  "hero": {
    "role": "Desenvolvedor Sênior Front-End & API",
    "tagline1": "Angular",
    "tagline2": "Aplicações Web",
    "tagline3": "UI/UX & Data Visualization 3D Web",
    "description": "Projeto e desenvolvo aplicações e interfaces escaláveis com Angular, JavaScript e as principais bibliotecas frontend. Otimizo a performance reduzindo a latência e melhorando a capacidade de resposta dos sistemas. Entrego soluções confiáveis e estáveis prontas para ambientes enterprise de missão crítica. Atuo como Angular Developer e TypeScript Developer para equipes enterprise.",
    "kpi_years": "Anos de experiência",
    "kpi_projects": "Projetos concluídos",
    "kpi_companies": "Empresas enterprise",
    "kpi_latency": "Redução de latência (típica)",
    "scroll": "Rolar"
  },
  "about": {
    "tag": "about",
    "title": "Sobre mim",
    "subtitle": "Desenvolvedor sênior com mais de 8 anos em web enterprise",
    "bio1": "Sou um <strong>Desenvolvedor Front-End Sênior & API</strong> com sólida experiência no desenvolvimento de aplicações enterprise baseadas em Angular, TypeScript e arquiteturas modernas. Ao longo de minha carreira colaborei com importantes organizações nos setores aeroespacial, defesa, telecomunicações e banking, contextos onde confiabilidade e qualidade são requisitos imprescindíveis.",
    "bio2": "Interesso-me por todo o ecossistema de desenvolvimento de software: desde a arquitetura de aplicações até o design de APIs, desde a otimização de performance até a construção de experiências de usuário eficazes. Transformo processos complexos e grandes volumes de dados em soluções simples, robustas e fáceis de usar.",
    "bio3": "Uma parte importante do meu crescimento está ligada à minha família e às minhas origens em Blinisht. Os anos passados lá, junto com minha experiência com os Embaixadores da Paz (2000-2012), me ensinaram o valor do diálogo, colaboração e sensibilidade às diferenças.",
    "bio4": "Acredito que o verdadeiro valor de um profissional reside na união de competência técnica e sensibilidade humana. Esta abordagem orienta cada projeto que realizo, enfrentando problemas com responsabilidade, visão e espírito construtivo.",
    "bio5": "Hoje carrego comigo tudo que aprendi: as raízes de minha terra, os valores da família, as experiências que me formaram e a contínua curiosidade pela tecnologia. Desta união de competência e sensibilidade nascem as soluções mais eficazes e duradouras.",
    "birth": "Nascido em Blinisht-Lezhe (Albânia) em 25/04/1988",
    "vision": {
      "title": "Visão End-to-End",
      "desc": "Uma abordagem arquitetural completa, desde o planejamento do design system até a entrega em produção. Sólida experiência em traduzir requisitos de negócio complexos em interfaces intuitivas."
    },
    "perf": {
      "title": "Performance & Escalabilidade",
      "desc": "Foco constante na otimização de performance, lazy loading estratégico, change detection otimizada e arquiteturas modulares para contextos de alto tráfego."
    },
    "lead": {
      "title": "Liderança & Mentoria",
      "desc": "Orientação técnica de times front-end, definição de boas práticas, code reviews estruturadas e sessões de mentoria para desenvolvedores junior e mid-level."
    },
    "card_philosophy": "Arquitetura",
    "card_philosophy_desc": "Módulos escaláveis, SOLID, clean code e performance-first em cada projeto enterprise.",
    "card_ecosystem": "Ecossistema Angular",
    "card_ecosystem_desc": "Do bootstrap de apps greenfield ao refactoring de legacy, domino o ciclo completo.",
    "card_data": "Data Visualization",
    "card_data_desc": "Cesium.js, Chart.js, Looker Embedded, Photo Sphere Viewer para interfaces ricas em dados."
  },
  "tech": {
    "tag": "tech-stack",
    "title": "Tecnologias",
    "subtitle": "Stack tecnológico utilizado em produção em projetos enterprise",
    "frontend": "Frontend",
    "dataviz": "Data Visualization",
    "backend": "Backend & API",
    "devops": "DevOps & Tools"
  },
  "projects": {
    "tag": "projects",
    "title": "Projetos",
    "subtitle": "Seleção de projetos enterprise entregues em produção",
    "features_label": "Funcionalidades principais",
    "geo": {
      "title": "Visualização 3D Geoespacial",
      "desc": "Plataforma interativa para visualização geoespacial 3D com dados em tempo real sobre um globo interativo.",
      "f1": "Globo 3D interativo",
      "f2": "Streaming de dados em tempo real",
      "f3": "Gerenciamento avançado de camadas",
      "f4": "Performance otimizada"
    },
    "vr": {
      "title": "Tour Virtual 360°",
      "desc": "Aplicação imersiva para tours virtuais com navegação fluida entre ambientes 360°.",
      "f1": "Navegação imersiva 360°",
      "f2": "Hotspots interativos",
      "f3": "Multi-dispositivo responsivo",
      "f4": "Transições suaves"
    },
    "dash": {
      "title": "Dashboard Analytics",
      "desc": "Suite de dashboards analíticos com Looker Embedded e visualizações customizadas de alta performance.",
      "f1": "Integração Looker Embedded",
      "f2": "KPIs em tempo real",
      "f3": "Drill-down multinível",
      "f4": "Visualizações customizadas"
    },
    "lib": {
      "title": "Libraria",
      "desc": "Plataforma digital para gestão completa de bibliotecas, catálogo e empréstimos.",
      "f1": "Catálogo centralizado de livros",
      "f2": "Gestão de empréstimos e prazos",
      "f3": "Busca avançada e filtros",
      "f4": "Dashboard em tempo real"
    },
    "ins": {
      "title": "Plataforma de Seguros",
      "desc": "Solução web para o setor de seguros com gestão de apólices, sinistros e fluxos de aprovação.",
      "f1": "Gestão de apólices end-to-end",
      "f2": "Fluxo de sinistros digitalizado",
      "f3": "Integração de serviços externos",
      "f4": "Audit trail e segurança"
    },
    "discover": "Descobrir mais",
    "read_case_study": "Ler o estudo de caso",
    "filter_label": "Filtrar por tecnologia",
    "filter_all": "Todos",
    "filter_empty": "Nenhum projeto com esta tecnologia."
  },
  "experience": {
    "tag": "experience",
    "title": "Experiência",
    "subtitle": "Trajetória profissional em empresas de tecnologia italianas e internacionais"
  },
  "exp": {
    "1": {
      "title": "Arquitetura Angular & 3D Web Enterprise",
      "role": "Desenvolvedor Front-End Sênior",
      "desc": "Liderança técnica em projetos enterprise nos setores aeroespacial e defesa. Arquitetura Angular avançada, visualização 3D geoespacial com Cesium.js e dashboards analíticos de alta performance."
    },
    "2": {
      "title": "Plataformas Digitais & Data Visualization",
      "role": "Desenvolvedor Front-End · Especialista Data Viz",
      "desc": "Desenvolvimento de plataformas digitais inovadoras nos setores telco e mídia. Dashboards analíticos com Looker Embedded, tours virtuais imersivos com Photo Sphere Viewer."
    },
    "3": {
      "title": "Consultoria Enterprise & Ecossistema Microsoft",
      "role": "Desenvolvedor Front-End · Consultor Angular",
      "desc": "Consultoria enterprise em projetos baseados em Microsoft para clientes bancários. Desenvolvimento de portais web complexos, integração Azure e migração de arquiteturas legacy para Angular moderno."
    },
    "4": {
      "title": "Desenvolvimento Full-Stack & Arquiteturas de Software",
      "role": "Desenvolvedor Full-Stack",
      "desc": "Desenvolvimento full-stack com tecnologias .NET e Angular. Design de arquiteturas de software, APIs RESTful e interfaces para os setores financeiro e de seguros."
    },
    "5": {
      "title": "Fundamentos de Software & Metodologias Ágeis",
      "role": "Desenvolvedor Júnior",
      "desc": "Início da trajetória profissional. Primeiras experiências com .NET e Angular, formação em metodologias Ágeis e boas práticas de desenvolvimento de software."
    },
    "current": "Atual",
    "previous": "Anterior"
  },
  "skills": {
    "tag": "skills",
    "title": "Soft Skills",
    "subtitle": "Competências transversais que fazem a diferença em times enterprise",
    "leadership": "Liderança Técnica",
    "leadership_desc": "Oriento times de desenvolvimento em direção a arquiteturas escaláveis e boas práticas compartilhadas.",
    "mentoring": "Mentoria & Treinamento",
    "mentoring_desc": "Suporte ativo a juniores, code reviews construtivas e transferência de conhecimento.",
    "problem": "Resolução de Problemas",
    "problem_desc": "Análise rápida de problemas complexos, debug metódico e soluções pragmáticas.",
    "communication": "Comunicação",
    "communication_desc": "Interação eficaz com stakeholders técnicos e não técnicos, documentação clara."
  },
  "faq": {
    "tag": "faq",
    "title": "FAQ",
    "subtitle": "Perguntas frequentes",
    "q1": "Com o que você trabalha principalmente?",
    "a1": "Trabalho com desenvolvimento web enterprise, interfaces Angular, APIs REST, data visualization e aplicações 3D web com Cesium.js e WebGL.",
    "q2": "Você também trabalha com backend?",
    "a2": "Sim, também tenho experiência com .NET, Django, Python, NestJS e integração de serviços de API REST e GraphQL.",
    "q4": "Como posso entrar em contato?",
    "a4": "Você pode me enviar um email, me ligar ou me contatar no LinkedIn usando as informações na seção de contato acima."
  },
  "contact": {
    "tag": "contact",
    "title": "Contato",
    "subtitle": "Perguntas, comentários ou apenas um olá",
    "card": {
      "email": {
        "title": "Email",
        "desc": "gentsallaku@gmail.com"
      },
      "phone": {
        "title": "Telefone",
        "desc": "+39 389 235 2291"
      },
      "pec": {
        "title": "PEC",
        "desc": "gent.sallaku@pec.it"
      },
      "linkedin": {
        "title": "LinkedIn",
        "desc": "/in/gent-sallaku"
      },
      "github": {
        "title": "GitHub",
        "desc": "/gentsallaku"
      }
    },
    "form": {
      "title": "Enviar uma mensagem",
      "name": "Nome completo",
      "name_ph": "João Silva",
      "name_err": "O nome é obrigatório",
      "email": "Email",
      "email_ph": "joao@exemplo.com",
      "email_err": "Email válido é obrigatório",
      "subject": "Assunto",
      "subject_ph": "Assunto da mensagem",
      "subject_err": "O assunto é obrigatório",
      "message": "Mensagem",
      "message_ph": "Olá, gostaria de falar sobre…",
      "message_err": "A mensagem deve ter pelo menos 10 caracteres",
      "send": "Enviar mensagem",
      "sending": "Enviando…",
      "sent": "Mensagem enviada!",
      "name_placeholder": "Escreva seu nome",
      "email_placeholder": "Escreva seu email para que eu possa entrar em contato",
      "submit": "Enviar mensagem",
      "note": "A mensagem é enviada diretamente do site, sem abrir aplicativos externos.",
      "privacy_checkbox": "Li e aceito a política de privacidade para o tratamento dos meus dados.",
      "privacy_link_text": "Política de Privacidade",
      "privacy_err": "Tem de aceitar a política de privacidade para enviar a mensagem",
      "disabled_notice": "O formulário de contacto está temporariamente desativado. Podes escrever-me no LinkedIn ou por email."
    },
    "info": {
      "title": "Vamos nos conectar",
      "desc": "Escreve-me para perguntas sobre os projetos, o blogue ou as ferramentas do site."
    },
    "form_name": "Seu nome",
    "form_email": "Seu email",
    "form_message": "Sua mensagem",
    "form_send": "Enviar mensagem",
    "form_sent": "Mensagem enviada! Entrarei em contato em breve.",
    "form_error": "Não foi possível enviar a mensagem agora. Tente novamente em breve.",
    "form_invalid": "Verifique nome, email e mensagem. A mensagem deve ter pelo menos 10 caracteres.",
    "popup": {
      "title": "Mensagem enviada",
      "body": "A solicitação foi enviada com sucesso ao servidor. Se os emails ainda não chegarem, o próximo passo é verificar os logs de email do backend."
    },
    "form_name_req": "O nome é obrigatório",
    "form_email_req": "Email inválido",
    "form_msg_req": "A mensagem é obrigatória (mín. 10 caracteres)"
  },
  "consent": {
    "title": "Preferências de cookies",
    "desc": "Utilizamos cookies para funcionalidades necessárias do site e analytics e marketing opcionais. Gerencie suas preferências.",
    "accept_all": "Aceitar tudo",
    "reject_all": "Rejeitar tudo",
    "manage_preferences": "Gerenciar preferências",
    "necessary": "Necessários",
    "analytics": "Analytics",
    "marketing": "Marketing",
    "preferences": "Preferências",
    "save": "Salvar preferências",
    "settings_title": "Configurações de cookies",
    "settings_desc": "Ative ou desative categorias. Os cookies necessários estão sempre ativos.",
    "consent_saved": "Preferências salvas",
    "default_denied_note": "Padrão: apenas cookies funcionais (consentimento necessário para analytics e marketing).",
    "necessary_desc": "Indispensáveis para o funcionamento do site: segurança, início de sessão e memorização destas escolhas.",
    "analytics_desc": "Ajudam-nos a perceber como o site é usado, com estatísticas agregadas (Google Analytics).",
    "marketing_desc": "Servem para medir campanhas publicitárias e mostrar anúncios relevantes (Google Ads).",
    "preferences_desc": "Lembram as suas escolhas, como o idioma e o aspeto, para personalizar a sua experiência.",
    "always_active": "Sempre ativos"
  },
  "skip": {
    "link": "Ir para o conteúdo principal"
  },
  "footer": {
    "designed": "Projetado & Desenvolvido por",
    "rights": "Todos os direitos reservados.",
    "privacy_link": "Política de Privacidade",
    "cookie_link": "Política de Cookies",
    "manage_cookies": "Gerir consentimento de cookies",
    "legal": "Legal",
    "navigation": "Navegação do rodapé",
    "guide": "Guia"
  },
  "auth": {
    "login_title": "Entrar no Dashboard",
    "login_subtitle": "Acesse seu portfolio",
    "email": "Email",
    "password": "Senha",
    "login_btn": "Entrar",
    "logging_in": "Entrando…",
    "no_account": "Não tem conta?",
    "create_one": "Criar uma",
    "register_title": "Criar Conta",
    "register_subtitle": "Cadastre-se no dashboard do portfolio",
    "name": "Nome",
    "confirm_password": "Confirmar senha",
    "register_btn": "Cadastrar",
    "registering": "Cadastrando…",
    "register_verify_sent": "Conta criada! Verifique seu email — enviamos um código para confirmá-lo.",
    "have_account": "Já tem conta?",
    "sign_in": "Entrar",
    "email_required": "Email válido obrigatório",
    "password_required": "A senha deve ter pelo menos 6 caracteres",
    "name_required": "O nome é obrigatório",
    "passwords_mismatch": "As senhas não coincidem",
    "login_with_otp": "Entrar com OTP (telefone ou email)",
    "login_with_email": "Entrar com email",
    "otp_subtitle": "Login sem senha por SMS ou email",
    "phone": "Número de telefone",
    "phone_required": "Insira um telefone válido no formato E.164, ex. +55XXXXXXXXXXX",
    "phone_or_email": "Telefone ou endereço de email",
    "phone_or_email_required": "Insira um telefone válido (ex. +55XXXXXXXXXXX) ou endereço de email",
    "send_otp": "Enviar código",
    "sending": "Enviando…",
    "otp_sent_to": "Código enviado por SMS para",
    "otp_sent_to_email": "Código enviado por email para",
    "otp_code": "Código de verificação",
    "otp_required": "Insira o código de 6 dígitos",
    "otp_expires_in": "Expira em",
    "otp_expired": "Código expirado. Solicite um novo.",
    "verify_otp": "Verificar",
    "verifying": "Verificando…",
    "resend_code": "Reenviar código",
    "resend_in": "Reenviar em",
    "change_identifier": "Mudar telefone / email",
    "change_phone": "Mudar número",
    "otp_resent": "Novo código enviado!",
    "otp_send_failed": "Falha ao enviar o código. Tente novamente.",
    "otp_invalid": "Código inválido ou expirado.",
    "login_error": "Email ou senha inválidos.",
    "login_with_email_password": "Entrar com email e senha",
    "or": "ou",
    "show_password": "Mostrar palavra-passe",
    "hide_password": "Ocultar palavra-passe",
    "login_chip_admin": "Acesso Admin",
    "login_title_generic": "Iniciar sessão",
    "tab_password": "Senha",
    "tab_code": "Sem senha",
    "code_hint": "Enviamos um código de 6 dígitos por email. Se for o seu primeiro acesso, a conta é criada automaticamente.",
    "code_hint_sms": "Enviamos um código de 6 dígitos por SMS. Se for o seu primeiro acesso, a conta é criada automaticamente.",
    "code_channel_label": "Receber o código por",
    "channel_email": "Email",
    "channel_sms": "Celular",
    "mobile_number": "Número de celular",
    "mobile_placeholder": "+55 11 91234 5678",
    "mobile_invalid": "Insira um número de celular válido, ex. +55 11 91234 5678",
    "mobile_hint": "Números sem código do país são considerados italianos (+39).",
    "err_sms_unavailable": "O envio por SMS não está disponível no momento. Use o email.",
    "forgot_password": "Esqueceu a senha?",
    "forgot_hint": "Sem problema: receba um código por email e entre sem senha.",
    "remember_email": "Lembrar meu email",
    "caps_lock_on": "Caps Lock ativado",
    "email_placeholder": "nome@exemplo.com",
    "identifier_placeholder": "nome@exemplo.com ou +55…",
    "change": "Alterar",
    "code_digits_label": "Código de 6 dígitos",
    "verify_and_login": "Verificar e entrar",
    "success_title": "Sessão iniciada",
    "success_hello": "Olá, {{name}}!",
    "success_redirect": "Um momento…",
    "verify_email_action": "Enviar código de confirmação",
    "err_email_not_verified": "Primeiro confirme o seu email.",
    "err_network": "Sem conexão. Verifique sua rede e tente novamente.",
    "err_too_many": "Muitas tentativas. Aguarde um minuto e tente novamente.",
    "err_otp_wrong": "Código incorreto. Tentativas restantes: {{count}}.",
    "err_otp_locked": "Muitas tentativas incorretas. Solicite um novo código.",
    "err_server": "O servidor não está respondendo. Tente novamente em instantes.",
    "registration_closed": "Os registos estão temporariamente fechados."
  },
  "admin": {
    "dashboard": "Dashboard",
    "welcome": "Bem-vindo",
    "projects": "Projetos",
    "experiences": "Experiências",
    "blog_posts": "Posts do Blog",
    "published": "Publicados",
    "drafts": "Rascunhos",
    "contacts": "Contatos",
    "users": "Usuários",
    "visits": "Visitas",
    "visitors": "Visitantes",
    "manage_projects": "Gerenciar Projetos",
    "manage_experiences": "Gerenciar Experiências",
    "manage_blog": "Gerenciar Blog",
    "manage_notes": "Moderar Notas",
    "edit_about": "Editar About",
    "logout": "Sair",
    "loading": "Carregando…",
    "recent_activity": "Atividade recente",
    "no_activity": "Sem atividade recente",
    "recent_contacts_chart": "Gráfico de contatos recentes",
    "visits_chart": "Gráfico de visitas reais",
    "last_7_days": "Últimos 7 dias",
    "content_mix": "Conteúdo publicado vs rascunho",
    "content_status": "Status editorial do conteúdo",
    "public_traffic": "Tráfego público registrado pelo backend",
    "quick_actions": "Ações rápidas",
    "mark_read": "Marcar como lido",
    "mark_unread": "Marcar como não lido",
    "status_read": "Lido",
    "status_unread": "Não lido",
    "open_email": "Abrir email",
    "reply": "Responder",
    "reply_placeholder": "Escreva sua resposta a esta mensagem...",
    "reply_send": "Enviar resposta",
    "reply_sent": "Resposta enviada com sucesso!",
    "reply_error": "Falha ao enviar resposta. Verifique as configurações de email.",
    "message_deleted": "Mensagem excluída.",
    "messages_deleted": "Mensagens selecionadas excluídas.",
    "marked_read": "Mensagem marcada como lida.",
    "marked_unread": "Mensagem marcada como não lida.",
    "new_badge": "NOVO",
    "select_all": "Selecionar tudo",
    "selected": "selecionados",
    "delete_selected": "Excluir selecionados",
    "confirm_delete_title": "Confirmar exclusão",
    "confirm_delete_message": "Deseja excluir permanentemente esta mensagem? Esta ação não pode ser desfeita.",
    "confirm_delete_bulk": "Deseja excluir permanentemente {{count}} mensagem(s) selecionada(s)? Esta ação não pode ser desfeita.",
    "visitor_analytics": "Análise de Visitantes",
    "visitor_overview": "Visão Geral de Visitantes",
    "visitor_overview_desc": "Hoje, total e visitantes únicos",
    "today_visitors": "Hoje",
    "traffic_sources": "Fontes de Tráfego",
    "traffic_sources_desc": "Como os visitantes encontram seu site",
    "device_breakdown": "Dispositivos",
    "device_breakdown_desc": "Distribuição Desktop, Celular, Tablet",
    "top_locations": "Cidades e Regiões",
    "top_locations_desc": "Localizações de visitantes resolvidas a partir de IP público e cabeçalhos proxy",
    "geo_ip_note": "Derivado de IP público e cabeçalhos proxy",
    "top_countries": "Principais Países",
    "top_countries_desc": "Visitantes por país (geolocalização de IP)",
    "browser_breakdown": "Navegadores",
    "browser_breakdown_desc": "Distribuição por navegador",
    "os_breakdown": "Sistema Operacional",
    "os_breakdown_desc": "Distribuição por sistema operacional",
    "monthly_vs_total_views": "Visualizações mensais vs totais",
    "monthly_views_desc": "Mês atual comparado ao total acumulado",
    "total_views_all_time": "Total (todo o tempo)",
    "monthly_views_this_month": "Este mês",
    "last_reset": "Último reset",
    "reset_monthly_stats": "Resetar estatísticas mensais",
    "confirm_reset_monthly_stats": "Resetar as visualizações, localizações e dispositivos mensais? Esta ação não pode ser desfeita.",
    "monthly_stats_reset": "Estatísticas mensais foram resetadas.",
    "monthly_devices": "Dispositivos (este mês)",
    "monthly_devices_desc": "Distribuição de dispositivos do mês atual",
    "total_devices": "Dispositivos (total)",
    "total_devices_desc": "Distribuição acumulada de dispositivos",
    "monthly_locations": "Localizações (este mês)",
    "monthly_locations_desc": "Distribuição por país do mês atual",
    "total_locations": "Localizações (total)",
    "total_locations_desc": "Distribuição acumulada por país",
    "kpi_section": "KPIs de Performance",
    "conversion_rate": "Taxa de Conversão",
    "conversion_rate_desc": "Contatos gerados por visualização total de página",
    "conversion_rate_label": "Conversão",
    "growth_velocity": "Crescimento Mensal",
    "growth_velocity_desc": "Mês atual vs mês anterior",
    "growth_vs_prev_month": "vs mês ant.",
    "growth_no_history": "Sem histórico ainda",
    "system_health": "Saúde do Sistema",
    "system_health_desc": "Status e versão do backend",
    "system_status": "Status",
    "system_version": "Versão",
    "system_env": "Ambiente",
    "monthly_trend": "Tendência de Visualizações Mensais",
    "monthly_trend_desc": "Visualizações históricas por mês",
    "chatbot_stats": "Chatbot",
    "chatbot_stats_desc": "Conversas com o assistente AI",
    "chatbot_total_sessions": "Sessões totais",
    "chatbot_total_messages": "Mensagens totais",
    "consent": {
      "title": "Visão Geral de Consentimento",
      "desc": "Resumo do consentimento de cookies coletado dos visitantes",
      "total": "Total de consentimentos"
    },
    "chatbot_today": "Hoje",
    "chatbot_this_month": "Este mês",
    "chatbot_fallback_today": "Fallback hoje",
    "chatbot_fallback_desc": "Respostas de reserva usadas hoje porque a IA não respondeu corretamente",
    "top_pages": "Páginas Principais",
    "top_pages_desc": "Páginas mais visitadas por visualizações totais",
    "seo_title": "SEO – Search Console",
    "seo_desc": "Últimos 28 dias · Google Search Console",
    "seo_clicks": "Cliques",
    "seo_impressions": "Impressões",
    "seo_avg_position": "Posição média",
    "seo_avg_ctr": "CTR médio",
    "seo_not_configured": "Search Console não configurado. Adicione GSC_CLIENT_EMAIL, GSC_PRIVATE_KEY e GSC_SITE_URL ao .env do backend.",
    "utility_section": "Utilitários admin",
    "utility_deployment": "Status do deployment",
    "utility_deployment_desc": "Informações rápidas sobre o backend e o release atual",
    "utility_security": "Status de segurança",
    "utility_security_desc": "Verificação rápida de mensagens, auditoria e sessão ativa",
    "utility_content": "Status do conteúdo",
    "utility_content_desc": "Resumo rápido de blog, páginas e tendência",
    "utility_operations": "Operações rápidas",
    "utility_operations_desc": "Ações de manutenção mais comuns",
    "utility_ops_live": "Saúde ao vivo",
    "utility_ops_live_desc": "Indicadores rápidos para backend, email e cron",
    "utility_uptime": "Uptime",
    "utility_memory": "Memória RSS",
    "utility_node": "Node",
    "utility_mail": "Provedor de email",
    "utility_running": "Ativo",
    "utility_stopped": "Parado",
    "utility_not_scheduled": "Não agendado",
    "utility_started_at": "Iniciado em",
    "utility_admin_user": "Admin ativo",
    "utility_admin_email": "Email do admin",
    "unread_contacts": "Contatos não lidos",
    "audit_log_section": "Atividade Admin",
    "audit_log": "Registro de Atividade",
    "audit_log_desc": "Últimas 10 operações de escrita admin",
    "audit_log_empty": "Nenhuma ação admin registrada ainda.",
    "chat_sessions_section": "Chat ao Vivo",
    "chat_sessions_today": "Sessões de Chat de Hoje",
    "chat_sessions_today_desc": "Conversas iniciadas hoje (TTL 24 h)",
    "chat_sessions_load": "Carregar sessões",
    "chat_sessions_empty": "Sem sessões de chat hoje, ou ainda não carregadas.",
    "chat_messages_count": "mensagens",
    "top_posts_title": "Artigos mais vistos",
    "top_posts_desc_card": "Posts ordenados por número total de visualizações",
    "top_posts_empty": "Nenhuma visualização registrada ainda.",
    "logout_desc": "Fechar esta sessão admin e voltar à página de login.",
    "export_csv": "Exportar CSV",
    "no_chart_data": "Sem dados para este período.",
    "refresh_data": "Atualizar",
    "last_updated": "Atualizado",
    "tool_conversion": "Ferramentas IA → Leads",
    "tool_conversion_desc": "Visitantes únicos por ferramenta nos últimos 30 dias e quantos depois se tornaram um contacto ou chat ao vivo",
    "tool_conversion_col_tool": "Ferramenta",
    "tool_conversion_col_visitors": "Visitantes",
    "tool_conversion_col_leads": "Tornaram-se lead",
    "tool_conversion_col_rate": "Taxa",
    "overview_core": "Estatísticas principais",
    "overview_load_error": "Não foi possível carregar o painel.",
    "overview_refresh_error": "A atualização falhou: está a ver os dados anteriores.",
    "overview_partial_error": "Alguns painéis não foram atualizados:",
    "retry": "Tentar novamente"
  },
  "session": {
    "warning_title": "A sessão está prestes a expirar",
    "warning_body": "Por sua segurança, sua sessão admin encerrará em breve a menos que você confirme que ainda está ativo.",
    "seconds_remaining": "segundos restantes",
    "stay_logged_in": "Continuar conectado",
    "logout_now": "Sair agora",
    "eyebrow": "Tempo limite de segurança",
    "warning_body_user": "Por segurança, a sua sessão terminará em breve se não confirmar que ainda está ativo."
  },
  "common": {
    "loading": "Carregando…",
    "error": "Erro ao carregar os dados.",
    "save": "Salvar",
    "cancel": "Cancelar",
    "delete": "Excluir",
    "edit": "Editar",
    "create": "Criar",
    "back": "Voltar",
    "close": "Fechar",
    "confirm": "Confirmar",
    "yes": "Sim",
    "no": "Não",
    "unsaved_confirm": "Tem alterações não guardadas. Sair e perdê-las?"
  },
  "services": {
    "tag": "services",
    "title": "Meus Serviços",
    "subtitle": "O que construo e entrego — soluções enterprise do conceito à produção",
    "pdf": {
      "title": "Ferramentas PDF & IA",
      "desc": "Suite gratuita de ferramentas online: conversão de arquivos, editor e visualizador de PDF, OCR, scanner de documentos, tradução de PDF com IA, gerador de apresentações e resumos automáticos.",
      "cta": "Experimente grátis"
    },
    "frontend": {
      "title": "Desenvolvimento Front-End",
      "desc": "Aplicações Angular escaláveis com TypeScript, RxJS e arquitetura de boas práticas. De projetos greenfield a migrações legacy. O serviço certo se você procura um Angular Developer ou TypeScript Developer para sua equipe.",
      "cta": "Saiba mais"
    },
    "web3d": {
      "title": "Aplicações 3D Web",
      "desc": "Experiências geoespaciais e 3D imersivas com Cesium.js, WebGL e Three.js para os setores aeroespacial, defesa e mapeamento.",
      "cta": "Saiba mais"
    },
    "dataviz": {
      "title": "Data Visualization",
      "desc": "Dashboards interativos e gráficos com Chart.js, Looker Embedded e D3 — transformando dados complexos em insights acionáveis.",
      "cta": "Saiba mais"
    },
    "uiux": {
      "title": "Design UI/UX",
      "desc": "Interfaces pixel-perfect, acessíveis e responsivas alinhadas a design systems modernos e testes de usabilidade com usuários reais.",
      "cta": "Saiba mais"
    },
    "perf": {
      "title": "Otimização de Performance",
      "desc": "Lazy loading estratégico, change detection otimizada, ajuste de Core Web Vitals e revisões de arquitetura para sistemas de missão crítica.",
      "cta": "Saiba mais"
    },
    "api": {
      "title": "Integração de API",
      "desc": "Integrações REST e GraphQL perfeitas com NestJS, .NET e serviços de terceiros, com tratamento sólido de erros.",
      "cta": "Saiba mais"
    }
  },
  "blog": {
    "readMore": "Ler mais",
    "loadMore": "Carregar mais",
    "tags_more": "Mostrar todas as tags (+{{count}})",
    "tags_less": "Mostrar menos tags",
    "views_singular": "{{count}} visualização",
    "views_plural": "{{count}} visualizações",
    "empty": {
      "title": "Nenhum artigo encontrado",
      "message": "Tente uma palavra-chave diferente ou navegue por todos os artigos.",
      "reset": "Limpar filtros"
    },
    "share": {
      "title": "Compartilhe este artigo",
      "preview_alt": "Prévia do artigo como aparece quando você o compartilha",
      "facebook": "Compartilhar no Facebook",
      "linkedin": "Compartilhar no LinkedIn",
      "twitter": "Compartilhar no X",
      "whatsapp": "Compartilhar no WhatsApp",
      "telegram": "Compartilhar no Telegram",
      "instagram": "Compartilhar no Instagram",
      "copyLink": "Copiar link",
      "linkCopied": "Link copiado!"
    },
    "reading_time": "{{count}} min de leitura",
    "toc_title": "Neste artigo",
    "related_title": "Leia também",
    "related_subtitle": "Mais artigos sobre os mesmos temas",
    "copy_code": "Copiar",
    "copied": "Copiado!",
    "copy_failed": "Falha ao copiar",
    "copy_section_link": "Copiar link da seção",
    "link_copied": "Link da seção copiado",
    "eyebrow": "Artigos e guias",
    "lead": "Guias práticos e análises aprofundadas sobre Angular, TypeScript, Node.js, desempenho, SEO e desenvolvimento web moderno.",
    "stats": "{{posts}} artigos · {{topics}} temas",
    "search_placeholder": "Pesquisar artigos…",
    "clear_search": "Limpar pesquisa",
    "topics": "Temas",
    "all_topics": "Todos",
    "results": "Resultados: {{count}}",
    "latest": "Artigo mais recente",
    "all_posts": "Todos os artigos",
    "not_found": "Artigo não encontrado",
    "back_to_blog": "Voltar ao blog"
  },
  "notes": {
    "title": "Notas dos leitores",
    "count_singular": "{{count}} nota",
    "count_plural": "{{count}} notas",
    "form": {
      "title": "Escreva uma nota",
      "description": "Partilhe a sua opinião, uma sugestão ou um elogio",
      "name": "Nome",
      "name_ph": "O seu nome",
      "email": "Email",
      "email_ph": "O seu email",
      "content": "Nota",
      "content_ph": "Escreva a sua mensagem...",
      "optional": "(opcional)",
      "submit": "Publicar nota",
      "submitting": "A enviar...",
      "success": "A sua nota foi publicada com sucesso!",
      "error_generic": "Ocorreu um erro. Tente novamente mais tarde."
    },
    "errors": {
      "required": "Este campo é obrigatório",
      "minlength": "Mínimo {{count}} caracteres",
      "maxlength": "Máximo {{count}} caracteres",
      "email": "Email inválido",
      "invalid": "Campo inválido"
    },
    "list": {
      "title": "Notas recentes",
      "loading": "A carregar notas...",
      "empty": "Ainda não há notas. Seja o primeiro a comentar!",
      "anonymous": "Anónimo"
    }
  },
  "notes_manage": {
    "title": "Moderar notas dos leitores",
    "status_pending": "Pendentes",
    "status_approved": "Aprovadas",
    "status_spam": "Spam",
    "status_all": "Todas",
    "empty": "Nenhuma nota nesta categoria.",
    "load_error": "Não foi possível carregar as notas.",
    "action_error": "Ação falhou. Tente novamente.",
    "approve": "Aprovar",
    "reject": "Rejeitar",
    "mark_spam": "Marcar como spam",
    "approved": "Nota aprovada.",
    "rejected": "Nota rejeitada.",
    "marked_spam": "Nota marcada como spam.",
    "deleted": "Nota eliminada.",
    "confirm_delete": "Eliminar definitivamente esta nota?",
    "spam_score": "Pontuação de spam",
    "spam_score_tooltip": "Pontuação automática de deteção de spam (0-100, quanto maior mais suspeito)",
    "prev_page": "Anterior",
    "next_page": "Seguinte"
  },
  "testimonials": {
    "tag": "Depoimentos",
    "title": "O que dizem sobre mim",
    "subtitle": "Experiências reais de clientes e colaboradores sobre trabalhar juntos: projetos, resultados e histórias contadas por eles.",
    "rating": "Avaliação",
    "verified_badge": "Verificada",
    "verified_tooltip": "Identidade do autor verificada pelo administrador",
    "view_linkedin": "Perfil do LinkedIn de {{name}}",
    "form": {
      "title": "Deixe um depoimento",
      "author_name": "Nome",
      "author_name_ph": "O seu nome completo",
      "role": "Cargo / Empresa",
      "role_ph": "ex. CTO @ Acme (opcional)",
      "company_url": "Link da empresa ou projeto",
      "company_url_ph": "ex. acme.com (opcional)",
      "email": "Email",
      "email_ph": "O seu email (opcional, nunca publicado)",
      "linkedin": "Perfil do LinkedIn (opcional)",
      "linkedin_ph": "linkedin.com/in/o-teu-nome",
      "linkedin_hint": "Serve apenas para confirmar que és mesmo o autor. A ligação só aparece junto ao testemunho se o administrador o verificar.",
      "rating": "Avaliação",
      "content": "O seu depoimento",
      "content_ph": "Conte a sua experiência a trabalhar comigo...",
      "submit": "Enviar depoimento",
      "submitting": "A enviar...",
      "success": "Obrigado! O seu depoimento está em revisão e aparecerá em breve.",
      "error_generic": "Ocorreu um erro. Tente novamente mais tarde."
    },
    "errors": {
      "required": "Este campo é obrigatório",
      "minlength": "Mínimo de {{count}} caracteres",
      "maxlength": "Máximo de {{count}} caracteres",
      "email": "Email inválido",
      "linkedin": "Introduz a ligação ao teu perfil pessoal (linkedin.com/in/…)",
      "rating_required": "Selecione uma avaliação de 1 a 5 estrelas",
      "invalid": "Campo inválido"
    },
    "list": {
      "loading": "A carregar depoimentos...",
      "empty": "Ainda não há depoimentos publicados."
    },
    "wall": {
      "tag": "Depoimentos",
      "title": "O que dizem sobre mim",
      "cta": "Deixe o seu depoimento"
    }
  },
  "testimonials_manage": {
    "title": "Moderar depoimentos",
    "status_pending": "Pendentes",
    "status_approved": "Aprovados",
    "status_spam": "Spam",
    "status_all": "Todos",
    "empty": "Não há depoimentos nesta categoria.",
    "load_error": "Não foi possível carregar os depoimentos.",
    "action_error": "A ação falhou. Tente novamente.",
    "approve": "Aprovar",
    "reject": "Rejeitar",
    "mark_spam": "Marcar como spam",
    "toggle_featured": "Mostrar/ocultar na página inicial",
    "verify": "Verificar identidade",
    "unverify": "Remover verificação",
    "verify_tooltip": "Confirma que verificaste que o autor é quem diz ser: o selo e a ligação do LinkedIn aparecem no site",
    "approved": "Depoimento aprovado.",
    "rejected": "Depoimento rejeitado.",
    "marked_spam": "Depoimento marcado como spam.",
    "featured_on": "Em destaque",
    "featured_off": "Removido da página inicial.",
    "verified_on": "Testemunho verificado",
    "verified_off": "Verificação removida",
    "verified_badge": "Verificada",
    "linkedin_open": "Abrir o perfil do LinkedIn indicado pelo autor",
    "deleted": "Depoimento eliminado.",
    "confirm_delete": "Eliminar definitivamente este depoimento?",
    "spam_score": "Pontuação de spam",
    "spam_score_tooltip": "Pontuação automática de deteção de spam (0-100, quanto mais alto, mais suspeito)",
    "prev_page": "Anterior",
    "next_page": "Seguinte",
    "edit_content": "Editar texto",
    "content_updated": "Texto atualizado."
  },
  "newsletter": {
    "title": "Não perca os novos artigos",
    "subtitle": "Um email quando publico algo novo no blog. Sem spam.",
    "email_placeholder": "Seu email",
    "subscribe_btn": "Inscrever-se",
    "subscribe_success": "Verifique seu email: enviamos um link para confirmar a inscrição.",
    "subscribe_error": "A inscrição falhou. Tente novamente.",
    "confirm_loading": "Confirmando sua inscrição…",
    "confirm_success_title": "Inscrição confirmada!",
    "confirm_success_message": "Agora você receberá um email sempre que eu publicar um novo artigo.",
    "confirm_error_title": "Link inválido",
    "confirm_error_message": "Este link de confirmação é inválido ou expirou. Tente se inscrever novamente.",
    "unsubscribe_loading": "Cancelando a inscrição…",
    "unsubscribe_success_title": "Inscrição cancelada",
    "unsubscribe_success_message": "Você não receberá mais emails da newsletter. Pode se inscrever novamente quando quiser.",
    "unsubscribe_error_title": "Link inválido",
    "unsubscribe_error_message": "Este link é inválido ou a inscrição não existe mais.",
    "back_to_blog": "Voltar ao blog"
  },
  "newsletter_manage": {
    "title": "Newsletter",
    "export_csv": "Exportar CSV",
    "status_all": "Todos",
    "status_pending": "Pendentes",
    "status_confirmed": "Confirmados",
    "status_unsubscribed": "Cancelados",
    "empty": "Nenhum inscrito nesta categoria.",
    "load_error": "Não foi possível carregar os inscritos.",
    "confirm_delete": "Excluir definitivamente {{email}}?",
    "deleted": "Inscrito excluído.",
    "delete_error": "Falha ao excluir. Tente novamente.",
    "export_error": "Falha na exportação. Tente novamente.",
    "prev_page": "Anterior",
    "next_page": "Próxima"
  },
  "chatbot_ui": {
    "title": "Assistente do Gent",
    "online": "Online",
    "typing": "Digitando…",
    "placeholder": "Digite uma mensagem…",
    "welcome_title": "Olá! 👋",
    "welcome_text": "Sou o assistente AI no portfolio de <strong>Gent Sallaku</strong>. Pergunte-me sobre seus projetos, habilidades ou as ferramentas do site! Se quiser falar com ele ao vivo, escreva-me algumas mensagens aqui: ele receberá o pedido (ele ainda não sabe quem você é, então apresente-se).",
    "info_banner": "Gent lê as mensagens enviadas pelo chatbot. Se você gostaria de uma resposta, por favor use a seção 'Enviar Email'.",
    "info_cta": "Ir para a seção de Email →",
    "close": "Fechar chat",
    "open": "Abrir assistente AI",
    "clear": "Limpar conversa",
    "send": "Enviar mensagem",
    "back": "Voltar ao chat",
    "transcript_title": "Receber transcrição",
    "transcript_desc": "Insira seu email e enviaremos a conversa completa.",
    "transcript_email_label": "Seu endereço de email",
    "transcript_send": "Enviar transcrição",
    "transcript_sending": "Enviando…",
    "transcript_success": "Transcrição enviada com sucesso!",
    "transcript_error": "Falha ao enviar. Por favor, tente novamente mais tarde.",
    "email_error": "Por favor, insira um endereço de email válido.",
    "server_error": "Não consegui contatar o servidor agora. Por favor, tente novamente em um momento.",
    "chip_who": "👋 Quem é Gent?",
    "chip_skills": "🛠 Quais são suas habilidades?",
    "chip_projects": "📁 Mostre-me seus projetos",
    "chip_contact": "📬 Como posso contatá-lo?",
    "live_offer_cta": "Fale com o Gent agora",
    "unread_badge": "{{count}} mensagens não lidas",
    "new_messages": "Novas mensagens",
    "instant": "Responde na hora",
    "notice_short": "Para uma resposta pessoal, escreva para o Gent.",
    "notice_cta": "Email →",
    "notice_dismiss": "Ocultar aviso",
    "welcome_heading": "Olá! O que você quer saber sobre o Gent?",
    "card_who_title": "Quem é o Gent?",
    "card_who_desc": "Trajetória e experiência",
    "card_who_ask": "Quem é o Gent?",
    "card_skills_title": "Habilidades",
    "card_skills_desc": "Angular, APIs, Data Viz",
    "card_skills_ask": "Quais são as habilidades dele?",
    "card_projects_title": "Projetos",
    "card_projects_desc": "O que ele construiu",
    "card_projects_ask": "Mostre os projetos dele",
    "card_contact_title": "Contato",
    "card_contact_desc": "Email ou chat ao vivo",
    "card_contact_ask": "Como posso entrar em contato com ele?",
    "link_blog": "Artigo",
    "link_project": "Projeto",
    "copy": "Copiar mensagem",
    "copied": "Copiado",
    "live_offer_desc": "Chat ao vivo: ele recebe uma notificação",
    "input_hint": "Enter para enviar · Shift+Enter para nova linha",
    "teaser_title": "Dúvidas sobre o Gent?",
    "teaser_text": "Pode perguntar: projetos, competências, ferramentas.",
    "teaser_close": "Fechar convite"
  },
  "live_handoff": {
    "prompt_title": "Quer falar diretamente com o Gent?",
    "accept": "Sim, contatá-lo",
    "decline": "Não, continuar com o assistente",
    "dismiss": "Fechar",
    "pill_label": "Falar com o Gent",
    "waiting": "Aguardando o Gent…",
    "agent_joining": "O Gent está entrando…",
    "live_subtitle": "Você está falando com o Gent",
    "expired_notice": "O Gent não está disponível no momento, mas recebeu seu pedido. Enquanto isso, você pode continuar conversando com o assistente.",
    "admin_title": "Chat ao vivo com o visitante",
    "admin_connecting": "Conectando…",
    "admin_joining": "Entrando no chat…",
    "admin_live": "Chat ao vivo ativo",
    "admin_expired": "Este pedido expirou.",
    "admin_closed": "Esta sessão foi encerrada.",
    "admin_visitor_typing": "O visitante está a escrever…",
    "admin_role_visitor": "Visitante",
    "admin_role_ai": "IA",
    "admin_error": "Não foi possível conectar. Verifique se você está autenticado como admin.",
    "admin_send_placeholder": "Escrever como Gent…",
    "admin_history_loading": "Carregando conversa…",
    "admin_back": "Voltar ao painel",
    "card_title": "Chat ao vivo",
    "card_badge_active": "em andamento",
    "card_badge_waiting": "aguardando",
    "card_waiting": "Aguardando resposta",
    "card_open": "Entrar",
    "card_empty": "Nenhum pedido de chat ao vivo no momento.",
    "list_subtitle": "Pedidos abertos e chats das últimas 24 horas: são apagados ao fim de um dia.",
    "list_refresh": "Atualizar",
    "list_load_error": "Não foi possível atualizar a lista. Tente novamente daqui a pouco.",
    "list_open": "Abertas",
    "list_past": "Fechadas ou expiradas",
    "list_past_empty": "Nenhum chat fechado nas últimas 24 horas.",
    "list_status_expired": "Expirada sem resposta",
    "list_status_closed": "Fechada",
    "list_reopen": "Reabrir",
    "list_responded_in": "respondida em {{minutes}} min",
    "list_no_message": "Sem mensagem",
    "exit_ask_resolved_title": "Resolveu o seu problema?",
    "exit_ask_resolved_yes": "Sim",
    "exit_ask_resolved_no": "Não, continuar",
    "exit_ask_close_title": "Queres encerrar a sessão com o Gent?",
    "exit_ask_close_yes": "Sim, encerrar",
    "exit_ask_close_no": "Não, voltar ao chat",
    "exit_ask_leave_title": "Queres fechar o chat?",
    "closed_notice": "A conversa com o Gent foi encerrada. Podes continuar a conversar com o assistente.",
    "admin_close_chat": "Encerrar chat"
  },
  "ai_ppt": {
    "title": "Gerador de Slides",
    "badge": "Gerador de Slides com IA",
    "hero_title_1": "Transforme Qualquer Ideia em uma",
    "hero_title_2": "Apresentação Profissional",
    "hero_subtitle": "Insira um tema e nossa IA constrói imediatamente um deck completo — títulos, pontos, notas do apresentador e fluxo lógico — pronto para apresentar.",
    "cta_primary": "Gerar Slides Grátis",
    "cta_demo": "Ver Demo →",
    "stat_max_slides": "Slides Máx",
    "stat_style_themes": "Estilos",
    "stat_powered": "Com IA",
    "feature_ai_title": "Gerado por IA",
    "feature_ai_desc": "Estrutura completa de apresentação criada a partir de um único tema em segundos.",
    "feature_styles_title": "5 Temas de Estilo",
    "feature_styles_desc": "Estilos Business, Educação, Minimal, Moderno e Pitch Deck.",
    "feature_slides_title": "Até 20 Slides",
    "feature_slides_desc": "Escolha 5, 10, 15 ou 20 slides de acordo com suas necessidades.",
    "feature_export_title": "Pronto para Exportar",
    "feature_export_desc": "Baixe seu deck como arquivo de texto estruturado instantaneamente.",
    "section_title": "Gerador de Apresentações com IA",
    "section_subtitle": "Descreva seu tema e configure seu deck abaixo",
    "label_topic": "Tema da Apresentação",
    "label_style": "Estilo da Apresentação",
    "label_slides_count": "Número de Slides",
    "label_context": "Arquivo de Contexto",
    "label_optional": "(opcional)",
    "context_hint": "Faça upload de um PDF ou TXT para dar contexto extra à IA a partir do seu conteúdo",
    "drop_text": "Arraste PDF/TXT ou",
    "drop_browse": "procurar",
    "btn_sample": "💡 Exemplo",
    "btn_generating": "Gerando apresentação…",
    "btn_generate": "Gerar {{count}} Slides",
    "loading_title": "A IA está construindo sua apresentação",
    "loading_sub": "Criando slides, estrutura e notas do apresentador…",
    "btn_carousel": "Carrossel",
    "btn_grid": "Grade",
    "btn_export": "Exportar",
    "btn_exporting": "A exportar…",
    "btn_new": "Novo",
    "btn_copy_slide": "Copiar Slide",
    "btn_copied": "✓ Copiado",
    "btn_fullscreen": "Tela Cheia",
    "btn_exit_fullscreen": "Sair",
    "notes_label": "Notas",
    "btn_generate_another": "↩ Gerar Outra Apresentação",
    "style_business_label": "Negócios",
    "style_business_desc": "Estilo corporativo profissional",
    "style_education_label": "Educação",
    "style_education_desc": "Foco acadêmico e de aprendizado",
    "style_minimal_label": "Minimal",
    "style_minimal_desc": "Layout limpo e simples",
    "style_modern_label": "Moderno",
    "style_modern_desc": "Design contemporâneo e vibrante",
    "style_pitch_deck_label": "Pitch Deck",
    "style_pitch_deck_desc": "Deck pronto para investidores startup",
    "workspace_send": "Enviar para o Workspace",
    "workspace_sent": "Enviado ✓",
    "err_topic_short": "Introduza um tema com pelo menos 3 caracteres.",
    "err_file_type": "Apenas ficheiros PDF, TXT ou DOCX são suportados como contexto.",
    "err_file_too_large": "Ficheiro demasiado grande (máx {{max}}MB): {{name}}",
    "err_generic": "Ocorreu um erro. Tente novamente.",
    "err_truncated": "O conteúdo de alguns slides foi cortado por falta de espaço ao exportar o PDF. Tente encurtar o texto e gerar novamente.",
    "remove_context_file": "Remover ficheiro",
    "prev_slide": "Diapositivo anterior",
    "next_slide": "Diapositivo seguinte",
    "seo_title": "Gerador de Apresentações com IA — Crie Slides com Inteligência Artificial",
    "seo_description": "Gere uma apresentação profissional completa sobre qualquer tema em segundos. Até 20 slides com títulos, tópicos, notas do apresentador e 5 estilos. Grátis online."
  },
  "ai_formatter": {
    "title": "Formatador IA",
    "badge": "Alimentado por IA",
    "hero_title_1": "Formate Texto Simples em",
    "hero_title_2": "Documentos Refinados",
    "hero_subtitle": "Transforme notas brutas, atas de reuniões ou conteúdo de IA em documentos estruturados e profissionais em segundos.",
    "cta_primary": "✨ Começar a Formatar Grátis",
    "cta_demo": "Ver Demo →",
    "stat_faster": "Mais Rápido",
    "stat_doc_types": "Tipos Doc.",
    "stat_powered": "Com IA",
    "feature_instant_title": "Formatação Instantânea",
    "feature_instant_desc": "Transforme notas brutas ou conteúdo de IA em documentos estruturados em segundos.",
    "feature_smart_title": "Estrutura Inteligente",
    "feature_smart_desc": "A IA detecta inteligentemente títulos, marcadores e parágrafos de texto não formatado.",
    "feature_multiple_title": "Múltiplos Tipos de Documento",
    "feature_multiple_desc": "Formate propostas, relatórios, atas, currículos e artigos com estilo contextual.",
    "feature_preview_title": "Pré-visualização em Tempo Real",
    "feature_preview_desc": "Alterne entre uma visualização formatada e a saída Markdown bruta instantaneamente.",
    "section_title": "Formatador de Documentos com IA",
    "section_subtitle": "Cole seu texto abaixo e deixe a IA estruturá-lo instantaneamente",
    "panel_input": "Entrada",
    "panel_output": "Saída",
    "drop_text": "Arraste um arquivo .txt ou .md aqui",
    "drop_sub": "ou clique para procurar",
    "btn_sample": "📝 Usar Exemplo",
    "btn_clear": "✕ Limpar",
    "btn_formatting": "Formatando…",
    "btn_format": "✨ Formatar Texto",
    "view_formatted": "Formatado",
    "view_markdown": "Markdown",
    "empty_title": "Seu documento formatado aparece aqui",
    "empty_sub": "Insira texto à esquerda e clique em \"Formatar Texto\"",
    "doctype_general": "Geral",
    "doctype_business_proposal": "Proposta de Negócio",
    "doctype_report": "Relatório",
    "doctype_meeting_notes": "Ata de Reunião",
    "doctype_resume": "Currículo",
    "doctype_article": "Artigo",
    "draft_restored": "O seu rascunho anterior foi restaurado",
    "workspace_banner_title": "Texto recebido do Workspace",
    "workspace_banner_use": "Usar este texto",
    "workspace_banner_dismiss": "Ignorar",
    "workspace_send": "Enviar para o Workspace",
    "workspace_sent": "Enviado ✓",
    "truncated_warning": "Documento muito longo: apenas a primeira parte foi processada, o resto não está incluído.",
    "err_too_short": "Introduza pelo menos 10 caracteres de texto para formatar.",
    "err_generic": "Ocorreu um erro. Tente novamente.",
    "err_file_type": "Apenas ficheiros .txt ou .md são suportados para colagem rápida.",
    "dismiss_draft": "Ignorar rascunho",
    "textarea_placeholder": "Cole aqui o texto não formatado...\n\n✦ Notas de reunião, conteúdo bruto, output de IA, emails...\n✦ Ou clique em \"Usar exemplo\" para uma demonstração",
    "copied": "Copiado",
    "copy": "Copiar",
    "seo_title": "Formatador de Texto com IA — De Notas a Documento Profissional",
    "seo_description": "Transforme anotações, texto bruto ou conteúdo de IA em documentos profissionais estruturados instantaneamente. Relatórios, propostas, currículos, artigos e mais. Formatador de IA gratuito online."
  },
  "pdf_summary": {
    "title": "AI Summarizer",
    "subtitle": "Envie um PDF, Word ou TXT — a IA lê o ficheiro e gera um resumo em segundos",
    "lang_label": "Idioma",
    "drop_title": "Arraste o seu ficheiro aqui",
    "drop_sub": "ou clique para selecionar",
    "drop_formats": "PDF · Word (.docx/.doc) · TXT · HTML — máx. 20 MB",
    "mode_short": "Breve",
    "mode_detailed": "Detalhado",
    "mode_bullets": "Pontos-chave",
    "mode_insights": "Insights",
    "btn_generate": "Gerar resumo",
    "btn_analysing": "A analisar…",
    "section_short": "Resumo breve",
    "section_detailed": "Resumo detalhado",
    "section_bullets": "Pontos-chave",
    "section_insights": "Palavras-chave",
    "btn_copy": "Copiar",
    "btn_copied": "Copiado!",
    "btn_download": "Transferir",
    "btn_regenerate": "Regenerar",
    "btn_new_file": "Novo ficheiro",
    "workspace_banner_title": "Ficheiro recebido do Workspace",
    "workspace_banner_use": "Usar este ficheiro",
    "workspace_banner_dismiss": "Ignorar",
    "btn_send_workspace": "Enviar para o Workspace",
    "btn_sent": "Enviado ✓",
    "truncated_warning": "Documento muito longo: apenas a primeira parte foi processada, o resto não está incluído.",
    "err_file_type": "Formato não suportado. São permitidos PDF, Word (.docx/.doc), TXT e HTML.",
    "err_file_too_large": "Ficheiro demasiado grande (máx {{max}}MB): {{name}}",
    "err_generic": "Ocorreu um erro ao analisar o ficheiro.",
    "remove_file": "Remover ficheiro",
    "seo_title": "Resumo de PDF com IA — Extraia os Pontos-Chave de Qualquer Documento",
    "seo_description": "Envie um PDF, Word ou TXT e obtenha um resumo gerado por IA instantaneamente. Resumo curto, análise detalhada ou pontos-chave. Resumidor de documentos com IA grátis online."
  },
  "workspace": {
    "badge": "Novo",
    "title": "Fluxo de trabalho",
    "subtitle": "Envie o resultado de uma ferramenta diretamente para a seguinte, sem descarregar e voltar a carregar ficheiros.",
    "empty_title": "Nada em trânsito ainda",
    "empty_hint": "Comece por uma destas ferramentas e depois envie aqui o resultado para continuar com outra.",
    "received_from": "Recebido de {{tool}}",
    "btn_clear": "Limpar",
    "btn_download": "Transferir",
    "next_steps": "Continuar com",
    "history_title": "Histórico da sessão",
    "kind_file": "Ficheiro",
    "kind_text": "Texto",
    "start_here": "Ferramentas iniciais",
    "persistence_hint": "Não guardado: perde-se ao recarregar ou fechar esta aba.",
    "feedback_cleared": "Removido do Workspace",
    "feedback_downloaded": "Transferência iniciada",
    "seo_title": "Fluxo de Trabalho — Encadeie Ferramentas de IA e PDF",
    "seo_description": "Envie um arquivo ou texto de uma ferramenta para a próxima sem reenviá-lo. Digitalize, extraia, traduza e resuma em um fluxo conectado."
  },
  "pdf_translate": {
    "title": "Tradução de PDF",
    "badge": "Tradução de PDF com IA",
    "hero_title_1": "Traduza Qualquer PDF",
    "hero_title_2": "Com Layout Preservado",
    "hero_subtitle": "Tradução de IA de nível empresarial que mantém o número e formato de páginas do seu documento.",
    "cta_primary": "🌍 Traduzir PDF Grátis",
    "stat_languages": "Idiomas",
    "stat_scanned": "PDFs Escaneados",
    "stat_quality": "Qualidade",
    "stat_max_size": "Tamanho Máx",
    "feature_layout_title": "Layout Fiel à Página",
    "feature_layout_desc": "Mantém o mesmo número de páginas e tamanho do original, página por página — não as fontes ou imagens originais.",
    "feature_ai_title": "Tradução Qualidade IA",
    "feature_ai_desc": "Tradução com IA bloco a bloco com prompts conscientes da estrutura.",
    "feature_ocr_title": "OCR para PDFs Escaneados",
    "feature_ocr_desc": "Detecta automaticamente PDFs baseados em imagem e os processa via pipeline OCR.",
    "feature_langs_title": "12 Idiomas",
    "feature_langs_desc": "Inglês, Italiano, Albanês, Espanhol, Alemão, Francês + 6 mais.",
    "feature_fast_title": "Processamento Rápido",
    "feature_fast_desc": "Desempenho de nível empresarial com preservação de layout.",
    "feature_enterprise_title": "Confiabilidade Empresarial",
    "feature_enterprise_desc": "Limite 50 MB, escalonamento inteligente de fontes, proteção contra overflow, modo fallback.",
    "section_title": "Tradutor de PDF",
    "section_subtitle": "Tradução de IA empresarial com preservação de layout",
    "label_mode": "Modo de Tradução",
    "mode_high_fidelity": "Alta Fidelidade",
    "mode_high_fidelity_desc": "Mantém o número e tamanho de página originais",
    "mode_standard": "Padrão",
    "mode_standard_desc": "Processamento mais rápido, saída de texto limpo",
    "label_language": "Idioma de Destino",
    "drop_title": "Arraste seu arquivo aqui ou",
    "drop_browse": "procurar",
    "drop_hint": "PDF, DOCX, TXT — máx 50 MB",
    "btn_translating": "Traduzindo…",
    "btn_translate_to": "Traduzir para",
    "badge_high_fidelity": "Alta Fidelidade",
    "switch_language": "Mudar idioma:",
    "pane_original": "Original",
    "pane_translated": "Traduzido",
    "pill_layout_preserved": "Layout Preservado",
    "pill_fallback": "Modo Fallback",
    "pill_scanned": "PDF Escaneado",
    "page": "página",
    "pages": "páginas",
    "download_title": "Baixe sua tradução",
    "dl_pdf_name": "PDF Traduzido",
    "dl_pdf_sub_preserved": "Layout preservado",
    "dl_pdf_sub_clean": "Layout limpo",
    "dl_txt_name": "Texto Traduzido",
    "dl_txt_sub": "Arquivo .txt simples",
    "dl_copy_name": "Copiar Texto",
    "dl_copied_name": "Copiado!",
    "dl_copy_sub": "Para área de transferência",
    "btn_translate_another": "Traduzir outro arquivo",
    "step_extracting": "A extrair texto…",
    "step_translating": "A traduzir…",
    "step_rebuilding": "A reconstruir o documento…",
    "workspace_banner_title": "Ficheiro recebido do Workspace",
    "workspace_banner_use": "Usar este ficheiro",
    "workspace_banner_dismiss": "Ignorar",
    "dl_send_workspace_name": "Enviar para o Workspace",
    "dl_send_workspace_sub": "Passe o resultado para outra ferramenta",
    "dl_sent_name": "Enviado ✓",
    "guide_link": "Guia: como funciona a tradução de PDF com IA",
    "truncated_warning": "Documento muito longo: apenas a primeira parte foi processada, o resto não está incluído.",
    "pill_clean_layout": "Esquema limpo",
    "err_file_type": "Apenas ficheiros PDF, DOCX ou TXT são suportados.",
    "err_file_too_large": "Ficheiro demasiado grande (máx {{max}}MB): {{name}}",
    "err_no_file": "Selecione um ficheiro.",
    "err_generic": "Falha na tradução. Tente novamente.",
    "upload_aria": "Carregar um ficheiro PDF",
    "remove_file": "Remover ficheiro",
    "seo_title": "Tradutor de PDF com IA — Tradução Mantendo as Páginas Originais",
    "seo_description": "Traduza qualquer PDF para 12 idiomas mantendo o mesmo número de páginas e formatação. Tradução com IA de nível empresarial. Grátis online, sem cadastro."
  },
  "pdf_search": {
    "title": "Pesquisa de PDF",
    "badge": "Pesquisa de PDF de Domínio Público",
    "hero_title_1": "Encontre Livros e Documentos",
    "hero_title_2": "Em PDF, Legalmente",
    "hero_subtitle": "Pesquise entre milhões de livros de domínio público e obras de acesso aberto do Internet Archive e do Project Gutenberg. Sem problemas de direitos autorais.",
    "search_placeholder": "Pesquise um título, ex. \"O Pequeno Príncipe\"…",
    "search_button": "Pesquisar",
    "searching": "Pesquisando…",
    "empty_title": "Pesquise um livro ou documento",
    "empty_subtitle": "Os resultados vêm apenas de arquivos de domínio público e acesso aberto.",
    "no_results_title": "Nenhum resultado",
    "no_results_subtitle": "Tente outro título ou autor.",
    "result_by": "de",
    "preview_close": "Fechar",
    "preview_loading": "Carregando pré-visualização…",
    "btn_download": "Baixar PDF",
    "btn_source_page": "Ver página de origem",
    "legal_note": "Todos os resultados vêm de arquivos de domínio público ou com licença aberta.",
    "feature_legal_title": "100% Legal",
    "feature_legal_desc": "Apenas obras de domínio público e acesso aberto, nunca conteúdo pirata.",
    "feature_sources_title": "Fontes Verificadas",
    "feature_sources_desc": "Internet Archive, Project Gutenberg, arXiv e PubMed Central — milhões de livros e artigos catalogados.",
    "feature_preview_title": "Pré-visualização Instantânea",
    "feature_preview_desc": "Veja o PDF diretamente no navegador antes de baixá-lo.",
    "preview_unavailable": "Pré-visualização não disponível para esta fonte. Baixe o PDF para lê-lo.",
    "filter_all": "Todos",
    "filter_books": "Livros",
    "filter_papers": "Artigos",
    "filter_no_results": "Nenhum resultado para este filtro. Tente \"Todos\".",
    "sort_label": "Ordenar por",
    "sort_relevance": "Relevância",
    "sort_year_desc": "Ano (mais recente)",
    "sort_year_asc": "Ano (mais antigo)",
    "btn_send_workspace": "Enviar para o Workspace",
    "workspace_sent": "Enviado",
    "recent_searches_title": "Pesquisas recentes",
    "recent_clear": "Limpar",
    "faq_title": "Perguntas frequentes",
    "faq_q1": "Como funciona este motor de busca de PDF?",
    "faq_a1": "Pesquisa simultaneamente no Internet Archive, Project Gutenberg, arXiv e PubMed Central e mostra apenas resultados com um PDF realmente disponível, com pré-visualização direta no navegador antes de baixar.",
    "faq_q2": "É legal baixar esses PDFs?",
    "faq_a2": "Sim. Cada fonte indexada publica apenas material de domínio público ou de acesso aberto: livros com direitos expirados, artigos científicos e trabalhos com licença de distribuição livre. Nenhum conteúdo pirata.",
    "faq_q3": "Quais fontes esta busca de PDF sem direitos autorais cobre?",
    "faq_a3": "Internet Archive e Project Gutenberg para livros e clássicos de domínio público, arXiv e PubMed Central para artigos científicos e acadêmicos de acesso aberto.",
    "faq_q4": "Posso buscar livros PDF de domínio público em português?",
    "faq_a4": "Sim, o Internet Archive inclui muitas digitalizações de domínio público em dezenas de idiomas, além do catálogo majoritariamente em inglês do Project Gutenberg.",
    "faq_q5": "Por que alguns resultados não têm pré-visualização?",
    "faq_a5": "Algumas fontes (ex. PubMed Central) impedem a incorporação direta da página por motivos técnicos do próprio servidor — nesse caso, o download continua disponível.",
    "faq_q6": "O motor de busca de PDF é gratuito?",
    "faq_a6": "Sim, totalmente gratuito, sem cadastro nem limites de uso, exceto um limite técnico antiabuso de 20 buscas por minuto.",
    "quality_hd": "Alta resolução",
    "quality_low": "Baixa resolução",
    "group_similar_label": "Agrupar edições semelhantes",
    "duplicate_count": "+{{count}} outras edições",
    "favorites_title": "Seus favoritos",
    "btn_favorite_add": "Adicionar aos favoritos",
    "btn_favorite_remove": "Remover dos favoritos",
    "btn_save_library": "Guardar na biblioteca",
    "library_saved": "Na biblioteca",
    "preview_timeout": "A pré-visualização está a demorar muito a carregar. Descarregue o PDF para o ler.",
    "err_search": "A pesquisa falhou. Tente novamente.",
    "err_workspace_send": "Falha ao enviar para o Workspace. Tente novamente.",
    "err_library_save": "Falha ao guardar na Biblioteca. Tente novamente.",
    "preview_prev_page": "Página anterior",
    "preview_next_page": "Página seguinte",
    "seo_title": "Buscador de PDF de Domínio Público — Livros sem Direitos Autorais",
    "seo_description": "Busque e baixe livros de domínio público, artigos científicos e publicações de acesso aberto, sem problemas de direitos autorais. Busque no Internet Archive, Project Gutenberg, arXiv e PubMed Central com pré-visualização antes de baixar."
  },
  "convert": {
    "title": "Conversor",
    "subtitle": "conversões disponíveis",
    "search_placeholder": "Pesquisar por formato ou tipo…",
    "favorites": "Favoritos",
    "favorites_desc": "Conversões fixadas",
    "no_results": "Sem resultados para \"{{ query }}\"",
    "show_all": "Mostrar tudo",
    "group_docs": "Documentos",
    "group_docs_desc": "PDF, DOCX, TXT, HTML, Markdown",
    "group_sheets": "Planilha",
    "group_sheets_desc": "CSV, Excel, JSON",
    "group_images": "Imagens",
    "group_images_desc": "PNG, JPG, WebP, PDF",
    "group_structured": "Estruturado",
    "group_structured_desc": "PDF, JSON, CSV",
    "group_base64": "Base64",
    "group_base64_desc": "Codificar e decodificar Base64",
    "group_utils": "Utilitários",
    "group_utils_desc": "Unir e ferramentas avançadas",
    "remove_fav": "Remover dos favoritos",
    "add_fav": "Adicionar aos favoritos",
    "step": "Passo",
    "step_of": "de",
    "step1_label": "Carregar ficheiro",
    "step2_label": "Converter",
    "close": "Fechar",
    "drop_prompt": "Clique ou arraste o ficheiro aqui",
    "accepted_formats": "Formatos aceites",
    "change_file": "Clique para alterar",
    "meta_name": "Nome",
    "meta_size": "Tamanho",
    "meta_type": "Tipo",
    "meta_pages": "Páginas",
    "preview_title": "Pré-visualização",
    "preview_unavailable": "Pré-visualização não disponível para este tipo de ficheiro.",
    "cancel": "Cancelar",
    "continue_btn": "Continuar",
    "selected_file": "Ficheiro selecionado",
    "conversion_label": "Conversão",
    "format_warning": "O ficheiro não corresponde ao formato esperado ({{ accept }}).",
    "in_progress": "A processar…",
    "back": "Voltar",
    "converting": "A converter…",
    "convert_now": "Converter agora",
    "close_confirm": "Fechar o conversor? O ficheiro ainda não foi convertido.",
    "hint_invoice": "💡 Parece uma fatura. Recomendado: PDF → JSON estruturado.",
    "hint_contract": "💡 Parece um contrato. Recomendado: PDF → DOCX.",
    "hint_pdf": "💡 PDF detetado. Recomendado: PDF → DOCX ou PDF → JSON.",
    "hint_image": "💡 Imagem detetada. Recomendado: converter para WebP para a web.",
    "hint_csv": "💡 Dados tabulares detetados. Recomendado: CSV → relatório PDF.",
    "hint_json": "💡 JSON detetado. Recomendado: JSON → relatório PDF.",
    "err_unauthorized": "Não autorizado.",
    "err_too_large": "Ficheiro demasiado grande: o limite é {{max}}MB.",
    "err_unsupported": "Formato de ficheiro não suportado.",
    "err_invalid": "Pedido inválido. Verifique o ficheiro.",
    "err_failed": "Conversão falhou. Tente novamente.",
    "success": "✅ Conversão concluída. Download iniciado.",
    "no_file": "Nenhum ficheiro selecionado.",
    "payload_not_downloadable": "Conversão concluída mas o resultado não é descarregável.",
    "type_pdf_to_docx": "PDF → Word (DOCX)",
    "type_docx_to_pdf": "Word → PDF",
    "type_pdf_to_txt": "PDF → Texto",
    "type_pdf_to_html": "PDF → HTML",
    "type_html_to_pdf": "HTML → PDF",
    "type_html_to_docx": "HTML → Word",
    "type_docx_to_txt": "Word → Texto",
    "type_docx_to_html": "Word → HTML",
    "type_txt_to_pdf": "Texto → PDF",
    "type_txt_to_docx": "Texto → Word",
    "type_md_to_html": "Markdown → HTML",
    "type_md_to_pdf": "Markdown → PDF",
    "type_csv_to_excel": "CSV → Excel",
    "type_excel_to_csv": "Excel → CSV",
    "type_excel_to_json": "Excel → JSON",
    "type_excel_to_html": "Excel → HTML",
    "type_excel_to_pdf": "Excel → PDF",
    "type_csv_to_pdf": "CSV → PDF",
    "type_csv_to_json": "CSV → JSON",
    "type_json_to_csv": "JSON → CSV",
    "type_jpg_to_png": "JPG → PNG",
    "type_png_to_jpg": "PNG → JPG",
    "type_png_to_webp": "PNG/JPG → WebP",
    "type_webp_to_png": "WebP → PNG",
    "type_image_to_pdf": "Imagens → PDF",
    "type_pdf_to_images": "PDF → Páginas (ZIP)",
    "type_pdf_to_json": "PDF → JSON estruturado",
    "type_json_to_pdf": "JSON → PDF",
    "type_pdf_to_csv": "PDF → CSV",
    "type_b64_to_png": "Base64 → PNG",
    "type_b64_to_jpg": "Base64 → JPG",
    "type_b64_to_pdf": "Base64 → PDF",
    "type_file_to_b64": "Ficheiro → Base64",
    "type_merge_pdf": "Unir PDFs",
    "drop_prompt_multi": "Clique ou arraste os ficheiros aqui",
    "remove_file": "Remover ficheiro",
    "files_selected_count": "{{count}} ficheiros selecionados",
    "merge_min_files": "Selecione pelo menos 2 ficheiros PDF para combinar.",
    "selected_files": "Ficheiros selecionados",
    "batch_combine_note": "Estes ficheiros serão combinados num único resultado.",
    "batch_pending": "Em fila",
    "batch_done": "Incluído",
    "batch_error": "Falhou",
    "workspace_banner_title": "Ficheiro recebido do Workspace",
    "workspace_banner_use": "Usar este ficheiro",
    "workspace_banner_dismiss": "Ignorar",
    "workspace_send": "Enviar para o Workspace",
    "workspace_sent": "Enviado ✓",
    "blog_link": "Guia: como converter PDF para Word sem perder a formatação",
    "seo_title": "Conversor de Arquivos Gratuito — PDF, Word, Excel, Imagens",
    "seo_description": "Converta entre PDF, DOCX, TXT, HTML, XLSX, CSV, JSON, PNG, JPG e mais — {{count}} tipos de conversão, grátis, no navegador. Sem cadastro."
  },
  "ocr": {
    "title": "OCR — Reconhecimento de texto",
    "subtitle": "Extraia texto de imagens e PDFs digitalizados",
    "drop_prompt": "Arraste o arquivo aqui ou clique para selecioná-lo",
    "accepted": "PNG, JPG, WEBP, BMP, TIFF, PDF",
    "change_file": "Clique para trocar o arquivo",
    "lang_label": "Idioma do documento",
    "clear": "Limpar",
    "start": "Iniciar OCR",
    "processing": "Processando…",
    "preparing": "Preparando página",
    "recognizing": "Reconhecendo texto…",
    "results_title": "Resultado",
    "copy": "Copiar",
    "copied": "Copiado!",
    "download_txt": "Baixar .txt",
    "no_text": "Nenhum texto detectado",
    "page": "Página",
    "text_layer": "camada de texto do PDF",
    "success": "Texto extraído com sucesso",
    "err_failed": "Falha no processamento OCR",
    "err_rate_limit": "Muitas solicitações, aguarde um momento e tente novamente",
    "err_too_large": "Arquivo muito grande",
    "pages_truncated": "Apenas as primeiras {{max}} páginas foram processadas",
    "files_selected": "{{count}} ficheiro(s) selecionado(s)",
    "add_more": "Clique para adicionar mais ficheiros",
    "remove_file": "Remover ficheiro",
    "err_too_many_files": "Demasiados ficheiros selecionados (máx. {{max}})",
    "err_file_too_large": "Ficheiro demasiado grande (máx. {{max}}MB): {{names}}",
    "err_too_many_pages": "Demasiadas páginas precisam de OCR ({{count}}, máx. {{max}}). Remova alguns ficheiros e tente novamente.",
    "low_confidence_hint": "Confiança baixa — considere digitalizar novamente esta página ou usar uma imagem de melhor qualidade",
    "workspace_banner_title": "Ficheiro recebido do Workspace",
    "workspace_banner_use": "Usar este ficheiro",
    "workspace_banner_dismiss": "Ignorar",
    "send_workspace": "Enviar para o Workspace",
    "sent": "Enviado ✓",
    "save_library": "Guardar na biblioteca",
    "saved_library": "Guardado na biblioteca",
    "seo_title": "OCR Online Gratuito — Extraia Texto de Imagens e PDFs Digitalizados",
    "seo_description": "Extraia texto de fotos, documentos digitalizados e PDFs em 7 idiomas. OCR online grátis, sem cadastro."
  },
  "tools": {
    "badge": "AI & PDF Tools",
    "heading": "A sua Suite de Produtividade",
    "subtitle": "Ferramentas documentais com IA e utilitários PDF, tudo num só lugar.",
    "section_ai": "Ferramentas de IA",
    "section_tools": "Ferramentas PDF",
    "pdf_summary_title": "Resumo de PDF",
    "pdf_summary_desc": "Carregue um PDF, Word ou TXT e obtenha um resumo gerado por IA em segundos.",
    "ai_formatter_title": "AI Formatter",
    "ai_formatter_desc": "Transforme notas brutas e texto sem formatação em documentos elegantes.",
    "pdf_translate_title": "Traduzir PDF",
    "pdf_translate_desc": "Traduza qualquer PDF ou documento para 12 idiomas com qualidade de IA.",
    "ai_slides_title": "AI Slides",
    "ai_slides_desc": "Transforme qualquer tema numa apresentação completa com notas do orador.",
    "pdf_editor_title": "Editor de PDF",
    "pdf_editor_desc": "Una, divida, rode e elimine páginas, adicione marcas de água a qualquer PDF.",
    "viewer_title": "Visualizador",
    "viewer_desc": "Visualize, navegue e pesquise documentos PDF no navegador.",
    "editor_title": "Editor",
    "editor_desc": "Editor de texto rico com exportação para PDF e DOCX.",
    "convert_title": "Converter",
    "convert_desc": "Converta entre PDF, Word, Excel, imagens e muito mais.",
    "ocr_title": "OCR",
    "ocr_desc": "Extraia texto de PDFs e imagens digitalizadas com OCR.",
    "scanner_title": "Scanner",
    "scanner_desc": "Digitalize documentos físicos com a câmara e converta-os em PDF.",
    "pdf_search_title": "Pesquisa de PDF",
    "pdf_search_desc": "Pesquise livros e documentos PDF de domínio público, com pré-visualização antes de baixar.",
    "library_title": "A minha biblioteca",
    "library_desc": "Guarda os PDF no navegador, procura no conteúdo, anota-os e faz perguntas aos teus documentos.",
    "my_files_title": "Os meus ficheiros",
    "my_files_desc": "Encontra os resultados que guardaste das ferramentas de IA",
    "seo_title": "Ferramentas PDF e IA Gratuitas — Tradução, Resumo, Apresentações",
    "seo_description": "Ferramentas online gratuitas com IA: tradutor de PDF, gerador de apresentações, formatador de texto e resumidor de PDF. Ferramentas profissionais para documentos. Sem cadastro."
  },
  "about_manage": {
    "title": "Secção About",
    "saving": "A guardar…",
    "headline_label": "Título",
    "headline_placeholder": "Full-Stack Developer & Open Source Enthusiast",
    "bio_label": "Biografia",
    "location_label": "Localização",
    "location_placeholder": "Remoto / Nova Iorque",
    "avatar_label": "URL do avatar",
    "resume_label": "URL do currículo",
    "skills_label": "Competências (prima Enter)",
    "social_links_title": "Redes sociais",
    "github_label": "URL do GitHub",
    "linkedin_label": "URL do LinkedIn",
    "twitter_label": "URL do Twitter",
    "email_label": "Email de contacto",
    "update_success": "Secção About atualizada!",
    "update_error": "Falha ao atualizar."
  },
  "experiences_manage": {
    "title": "Experiências",
    "new": "Nova Experiência",
    "entity": "Experiência",
    "required": "Obrigatório",
    "company_label": "Empresa",
    "role_label": "Cargo",
    "start_date_label": "Data de início (ex. 2022-01)",
    "end_date_label": "Data de fim",
    "current_label": "Trabalho aqui atualmente",
    "description_label": "Descrição",
    "location_label": "Localização",
    "location_placeholder": "Remoto",
    "order_label": "Ordem",
    "tech_label": "Tecnologias (prima Enter)",
    "empty": "Ainda não há experiências.",
    "present": "Atual",
    "saved": "Experiência guardada!",
    "save_error": "Falha ao guardar.",
    "confirm_delete": "Eliminar esta experiência?",
    "deleted": "Eliminada."
  },
  "projects_manage": {
    "title": "Projetos",
    "new": "Novo Projeto",
    "entity": "Projeto",
    "required": "Obrigatório",
    "title_label": "Título",
    "order_label": "Ordem",
    "description_label": "Descrição",
    "live_url_label": "URL em direto",
    "repo_url_label": "URL do repositório",
    "tech_label": "Tecnologias (prima Enter)",
    "images_label": "URLs de imagens (prima Enter)",
    "featured_label": "Projeto em destaque",
    "save_project": "Guardar Projeto",
    "empty": "Ainda não há projetos. Crie o primeiro!",
    "featured_badge": "Em destaque",
    "saved": "Projeto guardado!",
    "save_error": "Falha ao guardar o projeto.",
    "confirm_delete": "Eliminar este projeto?",
    "deleted": "Projeto eliminado.",
    "case_study": "Estudo de caso",
    "case_study_hint": "Ao preencher pelo menos um campo, o projeto ganha uma página própria /projects/<slug>.",
    "problem_label": "Problema do cliente",
    "solution_label": "Solução realizada",
    "results_label": "Resultados (mensuráveis)",
    "reorder_hint": "Arraste as linhas ou use as setas para mudar a ordem: é guardada de imediato.",
    "move_up": "Mover para cima",
    "move_down": "Mover para baixo",
    "reorder_error": "Ordem não guardada, a anterior foi reposta."
  },
  "editor": {
    "title": "Editor de Documentos",
    "subtitle": "Escreva e formate documentos no navegador, exporte para PDF, DOCX ou HTML",
    "doc_name_placeholder": "Nome do documento",
    "import": "Importar",
    "exporting": "A exportar…",
    "style": "Estilo",
    "paragraph": "Parágrafo",
    "code": "Código",
    "link": "Link",
    "words": "palavras",
    "placeholder": "Comece a escrever…",
    "link_prompt": "Introduza o URL do link",
    "bold": "Negrito",
    "italic": "Itálico",
    "underline": "Sublinhado",
    "strike": "Rasurado",
    "ul": "Lista com marcadores",
    "ol": "Lista numerada",
    "quote": "Citação",
    "align_left": "Alinhar à esquerda",
    "align_center": "Centralizar",
    "align_right": "Alinhar à direita",
    "undo": "Desfazer",
    "redo": "Refazer",
    "clear_format": "Limpar formatação",
    "err_format": "Formato de ficheiro não suportado",
    "err_import": "Falha na importação",
    "err_empty": "O documento está vazio",
    "err_export": "Falha na exportação",
    "err_timeout": "Isto está a demorar muito. Tente um ficheiro mais pequeno ou verifique a ligação.",
    "success": "Documento exportado com sucesso",
    "workspace_banner_title": "Texto recebido do Workspace",
    "workspace_banner_use": "Usar este texto",
    "workspace_banner_dismiss": "Ignorar",
    "workspace_send": "Enviar para o Workspace",
    "workspace_sent": "Enviado ✓",
    "err_file_too_large": "Ficheiro demasiado grande (máx {{max}}MB): {{name}}",
    "seo_title": "Editor de Documentos Online Gratuito — Exporte para PDF e DOCX",
    "seo_description": "Escreva e formate documentos no navegador, importe arquivos Word e exporte para PDF, DOCX ou HTML. Grátis, sem cadastro."
  },
  "pdf_editor": {
    "title": "Editor de PDF",
    "subtitle": "Una, divida, rode e elimine páginas, adicione marcas de água",
    "drop_prompt": "Arraste os PDFs aqui ou clique para selecioná-los",
    "drop_hint": "Pode selecionar vários ficheiros para os unir",
    "add_more": "Adicionar mais PDFs",
    "pages_title": "Páginas",
    "pages_hint": "Arraste para reordenar, rodar ou eliminar páginas individuais",
    "watermark_label": "Marca de água",
    "watermark_placeholder": "Texto da marca de água (opcional)",
    "range_label": "Intervalo de páginas",
    "range_placeholder": "ex. 1-3,5",
    "clear": "Limpar",
    "exporting": "A exportar…",
    "export": "Exportar PDF",
    "err_range": "Intervalo de páginas inválido",
    "success": "PDF exportado com sucesso",
    "err_failed": "Falha na exportação",
    "err_open": "Não foi possível abrir o PDF",
    "workspace_banner_title": "Ficheiro recebido do Workspace",
    "workspace_banner_use": "Usar este ficheiro",
    "workspace_banner_dismiss": "Ignorar",
    "workspace_send": "Enviar para o Workspace",
    "workspace_sent": "Enviado ✓",
    "page_moved": "Página movida para a posição {{position}}",
    "err_no_valid_pdf": "Nenhum PDF válido encontrado entre os ficheiros largados.",
    "drag_to_reorder": "Arraste para reordenar",
    "rotate": "Rodar",
    "move_left": "Mover para a esquerda",
    "move_right": "Mover para a direita",
    "delete": "Eliminar",
    "persistence_hint": "As alterações não são guardadas: perdem-se ao recarregar ou fechar este separador.",
    "seo_title": "Editor de PDF Gratuito — Junte, Divida, Gire e Adicione Marca d'Água",
    "seo_description": "Junte PDFs, divida e extraia páginas, gire ou exclua páginas e adicione marcas d'água — tudo no navegador, os arquivos nunca saem do seu dispositivo."
  },
  "viewer": {
    "title": "Visualizador de PDF",
    "subtitle": "Visualize, navegue e pesquise em documentos PDF",
    "drop_prompt": "Arraste o seu PDF aqui ou clique para selecioná-lo",
    "fit_width": "Ajustar à largura",
    "search_placeholder": "Pesquisar no documento…",
    "no_matches": "Sem resultados",
    "close_file": "Fechar ficheiro",
    "err_open": "Não foi possível abrir o PDF",
    "ocr_hint": "Este documento não parece conter texto extraível — pode ser um PDF digitalizado.",
    "ocr_hint_cta": "Experimentar OCR",
    "trust_badge": "Os ficheiros são processados inteiramente no seu navegador — nunca enviados",
    "annotations_title": "Anotações",
    "annotate_on": "Destacar",
    "annotate_off": "Terminar de destacar",
    "annotate_hint": "Arrasta sobre a página para destacar.",
    "annotations_empty": "Ainda não há anotações. Ativa Destacar e arrasta sobre o texto.",
    "note_placeholder": "Adicionar uma nota…",
    "delete_annotation": "Eliminar anotação",
    "export_annotations": "Exportar notas",
    "from_library": "Da biblioteca",
    "err_load_doc": "Não foi possível abrir o documento da tua biblioteca.",
    "save_to_library": "Guardar na biblioteca",
    "workspace_banner_title": "Ficheiro recebido do Workspace",
    "workspace_banner_use": "Usar este ficheiro",
    "workspace_banner_dismiss": "Ignorar",
    "opening": "A abrir o documento…",
    "prev_page": "Página anterior",
    "next_page": "Página seguinte",
    "zoom_out": "Diminuir zoom",
    "zoom_in": "Aumentar zoom",
    "prev_match": "Resultado anterior",
    "next_match": "Resultado seguinte",
    "seo_title": "Visualizador de PDF Online Gratuito — Zoom, Busca e Miniaturas",
    "seo_description": "Visualize documentos PDF no navegador: navegação de páginas, zoom, busca em texto completo e visualização de miniaturas. Grátis, privado, sem upload."
  },
  "scanner": {
    "title": "Scanner de Documentos",
    "subtitle": "Digitalize documentos com a câmara e converta-os em PDF",
    "capture": "Capturar",
    "start_camera": "Iniciar câmara",
    "stop_camera": "Parar câmara",
    "upload_image": "Carregar imagem",
    "placeholder": "Inicie a câmara ou carregue uma imagem para começar",
    "drop_hint": "Arraste uma imagem para aqui, ou use a câmara ou carregue um ficheiro",
    "limits_hint": "PNG, JPG, WEBP · máx. {{size}}MB por imagem · até {{max}} páginas",
    "filter": "Filtro",
    "filter_none": "Nenhum",
    "filter_grayscale": "Escala de cinzentos",
    "filter_bw": "Preto e branco",
    "filter_enhance": "Melhorar",
    "rotate": "Rodar",
    "reset_crop": "Repor recorte",
    "cancel": "Cancelar",
    "add_page": "Adicionar página",
    "crop_hint": "Arraste sobre a imagem para recortar",
    "edit_canvas_label": "Área de recorte. Arraste para selecionar, ou use o teclado: Enter para selecionar, setas para mover, Shift+setas para redimensionar, Esc para cancelar.",
    "pages_title": "Páginas capturadas",
    "clear": "Limpar",
    "confirm_clear": "Eliminar todas as {{count}} páginas capturadas? Não é possível desfazer.",
    "confirm_delete_page": "Eliminar a página {{n}}?",
    "exporting": "A exportar…",
    "uploading": "A carregar… {{pct}}%",
    "processing_pdf": "A gerar PDF…",
    "export_pdf": "Exportar PDF",
    "err_camera": "Não foi possível aceder à câmara",
    "err_camera_denied": "Permissão da câmara negada. Ative-a nas definições do navegador e tente novamente.",
    "err_camera_notfound": "Nenhuma câmara encontrada neste dispositivo.",
    "err_camera_inuse": "A câmara já está a ser usada por outra aplicação.",
    "success": "PDF exportado com sucesso",
    "err_failed": "A operação falhou",
    "err_file_type": "Formato não suportado: {{name}}",
    "err_file_too_large": "Ficheiro demasiado grande (máx. {{max}}MB): {{name}}",
    "err_offline": "Estás offline. Verifica a ligação e tenta novamente.",
    "err_too_many_pages": "Podes ter no máximo {{max}} páginas: alguns ficheiros não foram adicionados.",
    "run_ocr": "Executar OCR",
    "ocr_results_title": "Texto extraído (OCR)",
    "trust_badge": "Captura, recorte e filtros permanecem no seu navegador — apenas o OCR e a exportação para PDF são enviados ao servidor",
    "workspace_send_pdf": "Enviar PDF para o Workspace",
    "workspace_send_text": "Enviar texto para o Workspace",
    "workspace_sent": "Enviado ✓",
    "move_left": "Mover para a esquerda",
    "move_right": "Mover para a direita",
    "delete": "Eliminar",
    "page_alt": "página {{n}}",
    "err_camera_unsupported": "Câmara indisponível neste navegador ou ligação insegura (é necessário HTTPS). Ainda pode carregar uma imagem.",
    "persistence_hint": "As páginas capturadas não são guardadas: perdem-se ao recarregar ou fechar este separador.",
    "seo_title": "Scanner de Documentos Gratuito — Da Câmera ao PDF Online",
    "seo_description": "Digitalize documentos com a webcam ou a câmera do celular, corte e melhore-os, exporte como PDF. Grátis, sem cadastro."
  },
  "library": {
    "badge": "Novo",
    "title": "A minha biblioteca",
    "subtitle": "Os PDF que guardas ficam no teu navegador: procura no conteúdo, anota-os e faz perguntas aos teus documentos.",
    "search_placeholder": "Procurar dentro dos teus documentos…",
    "search_clear": "Limpar a pesquisa",
    "search_btn": "Procurar",
    "searching": "A procurar…",
    "chat_all": "Perguntar à biblioteca",
    "hint_index_first": "Indexa pelo menos um documento para procurar no conteúdo ou fazer perguntas.",
    "hits_title": "{{count}} resultados no conteúdo",
    "hits_empty": "Nenhuma página contém esses termos.",
    "page_n": "pág. {{n}}",
    "pages_n": "{{n}} páginas",
    "stat_docs": "{{count}} documentos",
    "stat_indexed": "{{count}} indexados",
    "index_all": "Indexar os {{count}} em falta",
    "import": "Carregar PDF",
    "importing": "A carregar…",
    "sort": "Ordenar por",
    "sort_recent": "Mais recentes",
    "sort_title": "Título",
    "sort_size": "Tamanho",
    "tag_all": "Todos",
    "tag_placeholder": "etiquetas separadas por vírgulas",
    "empty_title": "A tua biblioteca está vazia",
    "empty_hint": "Guarda aqui os PDF que encontras na Pesquisa de PDF, ou carrega os teus.",
    "empty_cta_search": "Procurar um PDF",
    "indexing": "A indexar {{pct}}%",
    "not_indexed": "Por indexar",
    "indexed": "Indexado",
    "scanned": "Digitalização",
    "scanned_hint": "Este PDF não tem texto selecionável: envia-o para o OCR para o tornar pesquisável.",
    "open": "Abrir",
    "chat_doc": "Perguntar a este documento",
    "send_to": "Enviar para",
    "edit_tags": "Editar etiquetas",
    "download": "Descarregar",
    "remove": "Eliminar",
    "source_upload": "Carregado",
    "err_import": "O carregamento falhou. Tenta de novo.",
    "err_index": "A extração do texto falhou.",
    "chat_title": "Pergunta aos teus documentos",
    "chat_scope_all": "Toda a biblioteca",
    "chat_close": "Fechar",
    "chat_intro": "Faz uma pergunta: procuro as passagens relevantes nos teus documentos e respondo a citar as páginas.",
    "chat_privacy": "Os teus documentos ficam no navegador. Ao servidor chegam apenas as poucas passagens relevantes para a pergunta.",
    "chat_ungrounded": "Resposta não encontrada nos teus documentos.",
    "chat_sources": "Fontes:",
    "chat_clear": "Limpar a conversa",
    "chat_placeholder": "Faz uma pergunta…",
    "chat_send": "Enviar",
    "chat_no_context": "Não encontrei nada relevante nos documentos indexados.",
    "chat_error": "A resposta falhou. Tenta de novo.",
    "import_skipped": "{{count}} ficheiro(s) ignorado(s): só é possível importar PDFs para a Biblioteca.",
    "seo_title": "Minha Biblioteca PDF — Arquivo Pessoal com Busca e Chat IA",
    "seo_description": "Salve os PDFs que encontrar, pesquise-os página por página, anote-os e faça perguntas sobre seus documentos. Tudo permanece no seu navegador, nada é enviado."
  },
  "blog_manage": {
    "title": "Artigos do blog",
    "new_post": "Novo artigo",
    "form_title_edit": "Editar artigo",
    "form_title_new": "Novo artigo",
    "helper_copy": "O conteúdo em italiano é obrigatório. As traduções são opcionais — usa o botão Traduzir para as preencher automaticamente.",
    "autosave_saving": "A guardar rascunho…",
    "autosave_saved": "Guardado",
    "autosave_error": "Falha ao guardar automaticamente",
    "hide_preview": "Ocultar pré-visualização",
    "show_preview": "Mostrar pré-visualização",
    "pdf_import_label": "Importar de PDF",
    "pdf_import_hint": "Extrai o texto, revê e depois traduz",
    "upload_pdf": "Carregar PDF",
    "extracting_text": "A extrair texto…",
    "remove_pdf_preview": "Remover pré-visualização do PDF",
    "pages_words": "{{pages}} páginas · {{words}} palavras",
    "use_as_italian": "Usar como conteúdo italiano",
    "translating": "A traduzir…",
    "translate_all": "Traduzir IT → TODAS",
    "title_label": "Título",
    "title_placeholder": "Título do artigo…",
    "title_required_error": "O título é obrigatório (mín. 3 caracteres)",
    "toolbar_aria_label": "Opções de formatação",
    "toolbar_bold": "Negrito",
    "toolbar_italic": "Itálico",
    "toolbar_h2": "Título 2",
    "toolbar_h3": "Título 3",
    "toolbar_bullet_list": "Lista com marcadores",
    "toolbar_numbered_list": "Lista numerada",
    "toolbar_inline_code": "Código em linha",
    "toolbar_code_block": "Bloco de código",
    "toolbar_blockquote": "Citação",
    "toolbar_link": "Link",
    "toolbar_divider": "Divisor",
    "content_label": "Conteúdo",
    "content_placeholder": "<p>Começa a escrever…</p>",
    "content_required_error": "O conteúdo é obrigatório (mín. 10 caracteres)",
    "content_hint": "Conteúdo HTML — usa a barra acima para formatação",
    "preview_label": "Pré-visualização",
    "close_preview": "Fechar pré-visualização",
    "cover_image_alt": "Imagem de capa",
    "excerpt_label": "Excerto",
    "excerpt_placeholder": "Gerado automaticamente a partir do conteúdo se ficar vazio",
    "advanced_options": "Opções avançadas",
    "advanced_hint": "opcionais, preenchidas automaticamente se vazias",
    "tags_label": "Etiquetas",
    "tags_placeholder": "ex. typescript, nestjs… (Enter ou vírgula)",
    "tags_hint": "Prime Enter ou vírgula para adicionar uma etiqueta",
    "cover_image_label": "URL da imagem de capa",
    "cover_image_placeholder": "https://exemplo.com/capa.jpg",
    "subtitle_label": "Subtítulo",
    "subtitle_placeholder": "Subtítulo opcional",
    "slug_label": "Slug do URL",
    "slug_placeholder": "gerado-automaticamente-a-partir-do-titulo",
    "slug_hint": "Gerado automaticamente a partir do título",
    "meta_title_label": "Meta Title (SEO)",
    "meta_title_placeholder": "Por defeito: título do artigo",
    "meta_description_label": "Meta Description (SEO)",
    "meta_description_placeholder": "Por defeito: excerto",
    "image_suggestion_label": "Sugestão de imagem:",
    "saving": "A guardar…",
    "save_draft": "Guardar rascunho",
    "publishing": "A publicar…",
    "publish": "Publicar",
    "empty": "Ainda sem artigos. Escreve o primeiro!",
    "published": "Publicado",
    "draft": "Rascunho",
    "action_preview": "Pré-visualização",
    "err_it_required": "O título e o conteúdo em italiano são obrigatórios.",
    "err_fields_too_long": "Excerto/subtítulo/campos meta demasiado longos (máx. {{max}} carateres para o excerto).",
    "published_msg": "Artigo publicado!",
    "draft_saved_msg": "Rascunho guardado!",
    "confirm_delete": "Eliminar este artigo?",
    "deleted_msg": "Artigo eliminado.",
    "draft_generated": "Rascunho gerado a partir do PDF.",
    "generate_failed_default": "Falha ao processar o PDF.",
    "only_pdf_allowed": "Só são permitidos ficheiros PDF.",
    "pdf_too_large": "O PDF deve ter menos de 10 MB.",
    "extract_failed_default": "Não foi possível extrair texto deste PDF.",
    "content_applied": "Conteúdo aplicado. Revê e traduz quando estiveres pronto.",
    "add_it_title_first": "Adiciona primeiro o título em italiano.",
    "translated_success": "Traduzido para EN, SQ, PT, ES, FR, DE. Revê antes de publicar.",
    "translation_failed": "Falha na tradução. Verifica a tua ligação e tenta novamente.",
    "cover_data_url_unsupported": "Usa um URL de imagem para a capa. O carregamento direto de ficheiros não é suportado.",
    "err_payload_too_large": "Conteúdo demasiado grande. Remove as imagens incorporadas e usa URLs de imagem.",
    "err_session_expired": "Sessão expirada. Inicia sessão novamente.",
    "err_save_failed_default": "Falha ao guardar. Verifica título, conteúdo e slug.",
    "action_unpublish": "Mover para rascunho",
    "unpublished_msg": "Artigo movido para rascunho (visualizações mantidas)",
    "filter_label": "Filtrar por estado",
    "filter_all": "Todos",
    "empty_drafts": "Sem rascunhos.",
    "empty_published": "Nenhum artigo publicado.",
    "schedule_label": "Publicação agendada",
    "schedule_hint": "À hora definida o artigo fica público sozinho (verificação a cada minuto). Vazio = sem agendamento.",
    "schedule_btn": "Agendar",
    "schedule_clear": "Remover agendamento",
    "notify_label": "Quando sair, enviar uma newsletter aos subscritores",
    "scheduled_badge": "Agendado",
    "scheduled_msg": "Artigo agendado.",
    "schedule_past": "Escolhe uma data e hora no futuro."
  },
  "privacy": {
    "title": "Política de Privacidade",
    "meta_description": "Política de privacidade e tratamento de dados pessoais do gentsallaku.it.",
    "updated_label": "Última atualização",
    "updated_date": "23/08/2026",
    "intro": "Este aviso descreve como são tratados os dados pessoais dos utilizadores do gentsallaku.it, nos termos do Regulamento (UE) 2016/679 (RGPD).",
    "see_cookie_policy": "Ver a Política de Cookies →",
    "s1_title": "Titular do tratamento",
    "s1_body": "O titular do tratamento dos dados recolhidos através deste site é Gent Sallaku, contactável através do email gentsallaku@gmail.com. Não estando este site associado a uma atividade empresarial registada, não são indicados dados fiscais nem sede social.",
    "s2_title": "Dados recolhidos através do formulário de contacto",
    "s2_body": "Se utilizar o formulário \"Contacto\", recolhemos o seu nome, endereço de email, assunto e texto da mensagem. Estes dados são tratados exclusivamente para responder ao seu pedido e nunca são utilizados para fins de marketing sem o seu consentimento explícito. O envio do formulário está protegido pelo Cloudflare Turnstile, um serviço anti-spam que analisa automaticamente a interação com a página.",
    "s3_title": "Chatbot e assistente de inteligência artificial",
    "s3_body": "As mensagens que envia para o chatbot do site são processadas por um modelo de inteligência artificial fornecido pela Google (API Gemini), com o único objetivo de gerar uma resposta relevante. O texto da mensagem é assim transmitido para os servidores da Google, que atua como subcontratante para esta finalidade específica. Recomendamos que não partilhe no chat dados sensíveis ou desnecessários.",
    "s4_title": "Chat ao vivo com o operador",
    "s4_body": "Se solicitar uma conversa ao vivo, o seu endereço de email (se fornecido) e as mensagens trocadas são guardados na nossa base de dados para permitir a continuação da conversa e para efeitos de suporte. Estes dados não são cedidos a terceiros.",
    "s5_title": "Cookies e tecnologias semelhantes",
    "s5_body": "O site utiliza cookies técnicos necessários ao seu funcionamento e, mediante o seu consentimento, cookies de análise. Para a lista completa dos cookies utilizados, a sua finalidade e duração, consulte a nossa Política de Cookies.",
    "s6_title": "Google Analytics",
    "s6_body": "Se consentir a categoria \"análise\" no banner de cookies, o site carrega o Google Analytics 4 para recolher estatísticas de navegação agregadas e anónimas (páginas visitadas, origem do tráfego, dispositivo). Este serviço é fornecido pela Google Ireland Limited/Google LLC e os dados podem ser transferidos para servidores nos Estados Unidos, ao abrigo das cláusulas contratuais-tipo da Comissão Europeia. Pode revogar o consentimento a qualquer momento.",
    "s7_title": "Ferramentas \"Lab\" (PDF, tradução, OCR e outras ferramentas baseadas em IA)",
    "s7_body": "As ferramentas disponíveis na secção \"Lab\" processam os ficheiros que carrega (PDF, imagens, texto) exclusivamente para lhe fornecer o resultado solicitado (por exemplo, resumo, tradução, conversão). Os ficheiros são processados nos nossos servidores e/ou enviados a fornecedores de IA terceiros (Google Gemini) para processamento, e não são conservados além do tempo necessário à operação, exceto se optar por guardá-los numa área pessoal do site.",
    "s8_title": "Destinatários e transferência de dados",
    "s8_body": "Os dados recolhidos podem ser tratados pelos seguintes fornecedores terceiros, na qualidade de subcontratantes: Railway (alojamento de backend e base de dados, infraestrutura cloud), Google LLC (Gemini AI, Analytics, envio de email via Gmail SMTP), Cloudflare Inc. (proteção anti-spam Turnstile). Alguns destes fornecedores podem tratar dados fora do Espaço Económico Europeu; nesse caso, a transferência baseia-se em cláusulas contratuais-tipo ou noutras garantias adequadas previstas na lei.",
    "s9_title": "Prazo de conservação",
    "s9_body": "Os dados do formulário de contacto e das conversas em chat ao vivo são conservados pelo tempo necessário para gerir o seu pedido, e em qualquer caso não superior a 24 meses, salvo prazo diferente exigido por lei. As preferências de cookies são conservadas até serem revogadas pelo utilizador.",
    "s10_title": "Os seus direitos",
    "s10_body": "Enquanto titular dos dados, tem direito de acesso, retificação, apagamento, limitação do tratamento, portabilidade e oposição, nos termos dos artigos 15.º a 22.º do Regulamento (UE) 2016/679 (RGPD). Pode exercer estes direitos escrevendo para gentsallaku@gmail.com. Tem ainda o direito de apresentar reclamação junto da autoridade de proteção de dados competente.",
    "s11_title": "Segurança dos dados",
    "s11_body": "Adotamos medidas técnicas e organizativas adequadas (ligações cifradas HTTPS, autenticação, acesso restrito aos dados) para proteger os seus dados contra acessos não autorizados, perda ou divulgação.",
    "s12_title": "Alterações a esta política",
    "s12_body": "Esta política pode ser atualizada ao longo do tempo para refletir alterações normativas ou do site. A data da última atualização é indicada no topo da página."
  },
  "cookie_policy": {
    "title": "Política de Cookies",
    "meta_description": "Lista dos cookies utilizados pelo gentsallaku.it, a sua finalidade e como gerir as suas preferências.",
    "updated_label": "Última atualização",
    "updated_date": "23/08/2026",
    "intro": "Esta página descreve os cookies e tecnologias semelhantes utilizados pelo gentsallaku.it, em conformidade com o Regulamento (UE) 2016/679 (RGPD) e as diretrizes aplicáveis sobre cookies.",
    "what_title": "O que são cookies",
    "what_body": "Os cookies são pequenos ficheiros de texto que os sites visitados enviam para o seu dispositivo, onde ficam armazenados para serem reenviados aos mesmos sites na sua próxima visita.",
    "categories_title": "Categorias de cookies utilizadas",
    "necessary_title": "Cookies necessários",
    "necessary_body": "Essenciais para o funcionamento do site (por exemplo, memorizar o idioma escolhido, o estado da barra lateral, a sessão de autenticação na área reservada e a sua escolha de consentimento de cookies). Não requerem consentimento e não podem ser desativados.",
    "analytics_title": "Cookies de análise",
    "analytics_body": "Utilizados, apenas mediante consentimento, pelo Google Analytics 4 (_ga, _ga_*) para recolher estatísticas de navegação agregadas e anónimas. Duração: até 13 meses. Carregados apenas depois de aceitar esta categoria no banner.",
    "marketing_title": "Cookies de marketing",
    "marketing_body": "Atualmente não utilizamos cookies de marketing/publicidade: o Google Tag Manager e o Google AdSense estão presentes no código mas desativados. Se forem ativados no futuro, será solicitado um novo consentimento específico.",
    "preferences_title": "Cookies de preferências",
    "preferences_body": "Utilizados para memorizar algumas das suas preferências de visualização (por exemplo, tema claro/escuro), mediante consentimento.",
    "third_party_title": "Serviços de terceiros",
    "third_party_body": "O Cloudflare Turnstile é carregado nos formulários do site para prevenir spam automatizado e é considerado tecnicamente necessário para a segurança do serviço; a Cloudflare pode definir os seus próprios cookies técnicos de acordo com a sua política.",
    "manage_title": "Como gerir as suas preferências",
    "manage_body": "Pode alterar ou revogar o seu consentimento a qualquer momento através do link \"Gerir consentimento de cookies\" no rodapé do site, ou eliminando os cookies do seu navegador.",
    "browser_title": "Definições do navegador",
    "browser_body": "Também pode gerir ou eliminar cookies diretamente nas definições do seu navegador (Chrome, Firefox, Safari, Edge)."
  },
  "saved_results": {
    "save_cta": "Guardar na tua conta",
    "save_cta_short": "Guardar",
    "saving_cta": "A guardar...",
    "saved_cta": "Guardado ✓",
    "save_sub": "Encontra-o depois em \"Os meus ficheiros\"",
    "save_error": "Não foi possível guardar. Tenta novamente.",
    "login_prompt_title": "Inicia sessão para guardar os teus resultados",
    "login_prompt_body": "Cria uma conta gratuita para encontrares os teus ficheiros gerados quando quiseres.",
    "page_title": "Os meus ficheiros",
    "page_subtitle": "Resultados que guardaste das ferramentas de IA",
    "empty_title": "Ainda não há ficheiros guardados",
    "empty_body": "Os resultados que guardares das ferramentas de IA vão aparecer aqui.",
    "login_required_title": "Inicia sessão para veres os teus ficheiros",
    "login_required_body": "Os ficheiros que guardas ficam ligados à tua conta.",
    "login_button": "Iniciar sessão",
    "open": "Abrir",
    "delete": "Eliminar",
    "confirm_delete": "Eliminar este ficheiro guardado?",
    "seo_title": "Meus Arquivos — Resultados Salvos das Ferramentas de IA",
    "seo_description": "Encontre os arquivos e resultados que você salvou das ferramentas de IA do gentsallaku.it."
  },
  "account_modal": {
    "badge_admin": "Admin",
    "status_label": "Estado",
    "status_active": "Sessão ativa",
    "role_label": "Função",
    "role_admin": "Administrador",
    "role_user": "Utilizador"
  },
  "ai_assistant": {
    "clear_chat": "Limpar conversa",
    "messages_log": "Mensagens",
    "suggested_prompts": "Perguntas sugeridas",
    "copy": "Copiar",
    "copied": "Copiado!",
    "copy_message": "Copiar mensagem",
    "typing": "A IA está a escrever",
    "message_input": "Campo de mensagem",
    "send_message": "Enviar mensagem"
  },
  "request": {
    "uploading": "A carregar o ficheiro…",
    "processing": "A processar…",
    "cancel": "Cancelar",
    "retry": "Tentar novamente",
    "cancelled": "Operação cancelada."
  },
  "project_detail": {
    "not_found": "Projeto não encontrado",
    "load_error": "Não foi possível carregar o projeto.",
    "back": "Todos os projetos",
    "stack": "Tecnologias utilizadas",
    "live": "Ver online",
    "repo": "Código-fonte",
    "problem": "O problema",
    "solution": "A solução",
    "results": "Os resultados",
    "related_title": "Outros estudos de caso"
  },
  "translations_editor": {
    "title": "Traduções",
    "hint": "Os campos vazios mostram o texto italiano no site.",
    "auto": "Traduzir os campos vazios do italiano",
    "translating": "A traduzir…",
    "error": "A tradução automática falhou: tente de novo ou preencha à mão."
  },
  "contacts_inbox": {
    "title": "Mensagens de contacto",
    "total": "{{count}} mensagens",
    "search_placeholder": "Pesquisar por nome, email, assunto ou texto…",
    "filter_label": "Filtrar mensagens",
    "filter_all": "Todas",
    "load_error": "Não foi possível carregar as mensagens.",
    "empty": "Nenhuma mensagem recebida.",
    "empty_filtered": "Nenhuma mensagem corresponde aos filtros.",
    "select_all": "Selecionar todas na página",
    "select": "Selecionar",
    "pagination": "Paginação",
    "replied_at": "Respondido em {{date}}",
    "action_error": "A operação falhou, tente novamente.",
    "filter_status": "Estado",
    "filter_followups": "Follow-ups a vencer",
    "lead_box": "Gestão do lead",
    "status_label": "Estado",
    "followup_label": "Lembrar-me a",
    "note_label": "Nota interna",
    "note_placeholder": "Só para ti: orçamento, próximos passos…",
    "save_lead": "Guardar",
    "lead_saved": "Lead atualizado."
  },
  "users_manage": {
    "title": "Utilizadores registados",
    "total": "{{count}} utilizadores",
    "search_placeholder": "Pesquisar por nome, email ou telefone…",
    "role_filter": "Filtrar por função",
    "all_roles": "Todas as funções",
    "load_error": "Não foi possível carregar os utilizadores.",
    "empty": "Nenhum utilizador encontrado.",
    "col_name": "Nome",
    "col_contact": "Email / telefone",
    "col_role": "Função",
    "col_created": "Registado em",
    "col_actions": "Ações",
    "you": "você",
    "verified": "Email verificado",
    "confirm_role": "Alterar a função de {{name}} para \"{{role}}\"?",
    "confirm_delete": "Eliminar definitivamente o utilizador {{name}}?",
    "action_error": "A operação falhou.",
    "new": "Novo utilizador",
    "edit_title": "Editar utilizador",
    "phone": "Telefone (opcional)",
    "password_optional": "Palavra-passe (opcional)",
    "password_hint": "Pelo menos 8 caracteres com maiúscula, minúscula, número e símbolo. Sem palavra-passe o utilizador entra com um código por email.",
    "save": "Guardar",
    "created": "Utilizador criado.",
    "updated": "Utilizador atualizado.",
    "password_title": "Nova palavra-passe para {{name}}",
    "password_effect": "O utilizador será desligado de todos os dispositivos.",
    "new_password": "Nova palavra-passe",
    "set_password": "Definir palavra-passe",
    "password_short": "Palavra-passe",
    "password_set": "Palavra-passe de {{name}} atualizada.",
    "revoke": "Desligar",
    "confirm_revoke": "Desligar {{name}} de todos os dispositivos?",
    "sessions_revoked": "{{name}} foi desligado.",
    "err_name": "O nome é obrigatório.",
    "err_email": "Introduza um email válido.",
    "err_phone": "Telefone em formato internacional, ex. +393331234567.",
    "err_password": "A palavra-passe não cumpre os requisitos."
  },
  "notifications": {
    "label": "Notificações",
    "recent": "Eventos recentes",
    "empty": "Nada pendente.",
    "offline": "Atualizações em tempo real indisponíveis: as contagens atualizam ao abrir.",
    "live_waiting": "Chats ao vivo em espera",
    "contacts_unread": "Mensagens por ler",
    "testimonials_pending": "Testemunhos por moderar",
    "notes_pending": "Notas por moderar",
    "type_contact": "Nova mensagem",
    "type_testimonial": "Novo testemunho",
    "type_note": "Nova nota",
    "type_live_handoff": "Chat ao vivo pedido",
    "followups_due": "Follow-ups a fazer"
  },
  "newsletter_campaigns": {
    "title": "Campanhas",
    "new": "Nova campanha",
    "subject": "Assunto",
    "body": "Conteúdo (HTML)",
    "body_placeholder": "<h1>Título</h1><p>Texto…</p>",
    "body_hint": "Scripts e formulários são removidos. O link de cancelamento é adicionado automaticamente.",
    "preview": "Pré-visualização",
    "save_draft": "Guardar rascunho",
    "saved": "Rascunho guardado.",
    "err_incomplete": "São necessários um assunto (mín. 3 caracteres) e um conteúdo (mín. 10).",
    "err_schedule_past": "Escolha uma data futura para agendar.",
    "send_test": "Enviar teste",
    "test_email": "Email de teste",
    "test_sent": "Teste enviado para {{email}}.",
    "test_failed": "O envio de teste falhou: verifique a configuração de email.",
    "test_done": "teste enviado",
    "send_now": "Enviar agora",
    "schedule": "Agendar",
    "schedule_at": "Data e hora de envio",
    "confirm_send": "Enviar agora \"{{subject}}\" a todos os subscritores confirmados?",
    "confirm_schedule": "Agendar \"{{subject}}\" para todos os subscritores confirmados?",
    "confirm_cancel": "Cancelar a campanha \"{{subject}}\"? Os emails já enviados não podem ser recolhidos.",
    "confirm_delete": "Eliminar o rascunho \"{{subject}}\"?",
    "queued": "Campanha em fila para {{count}} subscritores.",
    "cancelled": "Campanha cancelada.",
    "cancel": "Cancelar envio",
    "load_error": "Não foi possível carregar as campanhas.",
    "empty": "Ainda não há campanhas. Crie uma para escrever aos subscritores.",
    "action_error": "A operação falhou.",
    "progress": "Progresso do envio",
    "stats": "{{sent}} enviados, {{failed}} falhados de {{total}}",
    "scheduled_for": "Agendada para {{date}}",
    "sent_at": "Enviada em {{date}}",
    "status_draft": "Rascunho",
    "status_scheduled": "Agendada",
    "status_sending": "A enviar",
    "status_sent": "Enviada",
    "status_cancelled": "Cancelada"
  },
  "palette": {
    "placeholder": "Pesquisar páginas, artigos, ações…",
    "section_actions": "Ações",
    "section_pages": "Páginas",
    "section_content": "Conteúdos",
    "section_admin": "Painel",
    "action_theme": "Alternar tema claro/escuro",
    "action_contact": "Fale comigo",
    "action_lab": "Abrir o Lab (ferramentas IA e PDF)",
    "action_new_post": "Novo artigo",
    "action_new_project": "Novo projeto",
    "action_inbox": "Abrir mensagens de contacto",
    "action_logout": "Terminar sessão",
    "footer_hint": "↑↓ para escolher · Enter para abrir · Ctrl+K ou / para abrir",
    "action_copy_link": "Copiar o link desta página",
    "action_install": "Instalar o site como app",
    "action_language": "Idioma: {{lang}}",
    "action_language_detail": "Mudar idioma · language",
    "link_copied": "Link copiado",
    "copy_failed": "Falha ao copiar"
  },
  "theme": {
    "name_light": "tema claro",
    "name_dark": "tema escuro",
    "name_system": "tema do sistema",
    "current_light": "Tema claro ativo. Mudar para {{next}}",
    "current_dark": "Tema escuro ativo. Mudar para {{next}}",
    "current_system": "Tema do sistema ativo. Mudar para {{next}}"
  },
  "onboarding": {
    "progress": "{{current}} de {{total}}",
    "next": "Seguinte",
    "back": "Voltar",
    "skip": "Saltar tutorial",
    "done": "Concluir",
    "steps": {
      "welcome": {
        "title": "Bem-vindo!",
        "body": "Em poucos passos mostro-te como navegar no site: menu, conteúdos e assistente. Podes saltar o guia a qualquer momento."
      },
      "navigation": {
        "title": "Navegação",
        "body": "A partir deste menu chegas às secções do site e a todas as ferramentas gratuitas do Lab."
      },
      "group_ai": {
        "title": "Ferramentas de IA",
        "body": "Pesquisa de PDF, Biblioteca, Resumo, Formatador, Tradução e Gerador de diapositivos: a inteligência artificial a trabalhar nos teus documentos."
      },
      "group_workspace": {
        "title": "Workspace",
        "body": "Passa o resultado de uma ferramenta diretamente para a seguinte, sem descarregar e voltar a carregar ficheiros."
      },
      "group_account": {
        "title": "Os meus ficheiros",
        "body": "Aqui encontras os resultados que guardaste a partir das ferramentas, associados à tua conta."
      },
      "group_tools": {
        "title": "Ferramentas PDF e documentos",
        "body": "Organiza e visualiza PDF, escreve no editor, converte formatos, extrai texto com OCR e digitaliza documentos com a câmara."
      },
      "main": {
        "title": "Conteúdo principal",
        "body": "Ao centro vês o conteúdo da página onde estás: projetos, serviços e artigos na página inicial; a área de trabalho da ferramenta escolhida no Lab."
      },
      "chatbot": {
        "title": "Assistente virtual",
        "body": "Tens uma pergunta? Toca aqui para conversar com o assistente sobre serviços, projetos e ferramentas. Se precisares, podes pedir para falar diretamente com o Gent."
      },
      "finish": {
        "title": "Tudo pronto!",
        "body": "Podes rever este guia quando quiseres a partir da ligação «Guia» no fundo da página."
      }
    }
  },
  "offline": {
    "banner": "Você está offline. Os artigos que já leu continuam disponíveis.",
    "see_articles": "Ver artigos",
    "back_online": "Online novamente",
    "tool_needs_connection": "Esta ferramenta processa os ficheiros no servidor, por isso precisa de ligação. Tenta novamente quando voltares a estar online.",
    "list_unavailable": "Você está offline: a lista de artigos não está disponível",
    "load_error": "Não foi possível carregar os artigos",
    "recent_title": "Você já leu estes e pode abri-los mesmo sem conexão:",
    "no_recent": "Os artigos que você abre ficam salvos para leitura offline.",
    "retry": "Tentar novamente"
  },
  "install": {
    "title": "Instale o Lab como app",
    "text": "Abra as ferramentas de PDF e IA com um toque, em tela cheia e offline para as páginas já visitadas.",
    "ios_text_before": "Toque em",
    "ios_share": "Compartilhar",
    "ios_text_after": "e depois «Adicionar à Tela de Início».",
    "cta": "Instalar",
    "later": "Agora não"
  },
  "lab_next": {
    "ready": "«{{name}}» está pronto.",
    "continue_with": "Continue com:",
    "close": "Fechar sugestões",
    "resume_title": "Continue de onde parou",
    "pending": "Você tem «{{name}}» pronto no workspace. Abra em:"
  },
  "lab_drop": {
    "hint": "Arraste um arquivo para qualquer ponto da página e eu sugiro as ferramentas certas. Ele fica no seu navegador.",
    "pick": "Escolher arquivo",
    "release": "Solte o arquivo para ver o que pode fazer com ele",
    "only_first": "Só o primeiro arquivo é usado ({{count}} ignorados)."
  },
  "feature_flags": {
    "title": "Funcionalidades do site",
    "desc": "Liga e desliga partes do site sem deploy",
    "maintenanceMode": "Modo de manutenção",
    "maintenanceMode_desc": "Os visitantes veem um aviso de página inteira; tu continuas a ver o site.",
    "aiEnabled": "Ferramentas de IA",
    "aiEnabled_desc": "As ferramentas de IA do Lab. Desligadas, o chatbot responde com as mensagens predefinidas.",
    "chatbotEnabled": "Chatbot",
    "chatbotEnabled_desc": "O balão do chat no canto inferior direito.",
    "liveHandoffEnabled": "Chat ao vivo",
    "liveHandoffEnabled_desc": "A proposta \"Queres falar com o Gent?\" dentro do chatbot.",
    "contactFormEnabled": "Formulário de contacto",
    "contactFormEnabled_desc": "Útil durante uma vaga de spam.",
    "newsletterSignupEnabled": "Inscrições na newsletter",
    "newsletterSignupEnabled_desc": "O formulário de inscrição no fundo do blog.",
    "registrationEnabled": "Registo de utilizadores",
    "registrationEnabled_desc": "Criação de novas contas a partir da página de registo.",
    "maintenance_message": "Mensagem de manutenção",
    "save_message": "Guardar mensagem",
    "save_error": "Não foi possível guardar, tenta de novo."
  },
  "maintenance": {
    "title": "Site em manutenção",
    "default_message": "Estou a fazer alguns trabalhos no site. Volta daqui a pouco!",
    "admin_login": "Acesso de administrador",
    "admin_notice": "Manutenção ativa: os visitantes veem o aviso"
  },
  "ops_health": {
    "section": "Saúde operacional"
  },
  "ai_usage": {
    "title": "Consumo de IA",
    "desc": "Hoje (UTC) e últimos 7 dias",
    "switch_on": "Ferramentas de IA ligadas",
    "switch_off": "Ferramentas de IA desligadas (interruptor de emergência)",
    "tokens_today": "Tokens usados hoje",
    "calls_today": "Pedidos às ferramentas",
    "chatbot_tokens": "Tokens do chatbot",
    "rejected_ip": "Bloqueados por IP (mais de {{cap}} por dia)",
    "rejected_budget": "Bloqueados, orçamento esgotado",
    "capped_ips": "{{n}} IPs diferentes atingiram o limite hoje.",
    "last_7_days": "Tokens, últimos 7 dias",
    "by_tool": "Pedidos por ferramenta",
    "no_calls": "Nenhum pedido hoje."
  },
  "server_errors": {
    "title": "Erros do servidor",
    "desc": "Erros 5xx agrupados, últimos 30 dias",
    "open": "Grupos abertos",
    "today": "Ocorrências hoje",
    "week": "Últimos 7 dias",
    "total": "Ocorrências totais",
    "last_seen": "Última vez:",
    "today_count": "{{n}} hoje",
    "show_stack": "Mostrar stack",
    "hide_stack": "Ocultar stack",
    "resolve": "Marcar como resolvido",
    "resolve_all": "Marcar todos como resolvidos",
    "none": "Nenhum erro aberto. Um erro resolvido volta aqui se se repetir."
  },
  "server_health": {
    "title": "Servidor e backups",
    "desc": "Dumps do MongoDB, recursos do servidor, verificações externas",
    "all_ok": "Tudo em ordem.",
    "warn_backup_stale": "O último dump da base de dados tem mais de 26 horas (ou não existe): verifica o cron das 03:30.",
    "warn_memory_low": "RAM quase esgotada: o servidor não tem swap, um processo pode ser terminado.",
    "warn_disk_low": "Espaço em disco abaixo de 10%.",
    "warn_offsite_backup_failed": "O último backup externo cifrado (GitHub Actions) falhou.",
    "warn_uptime_failed": "A última verificação externa de uptime falhou.",
    "backup_age": "Idade do último dump ({{size}})",
    "backup_none": "Nenhum dump encontrado",
    "backup_not_configured": "Pasta de backups inexistente (normal em desenvolvimento)",
    "ram_free": "RAM disponível de {{total}} MB",
    "disk_free": "Disco livre (usado {{pct}}%)",
    "mongo_ram": "RAM do MongoDB",
    "ram_used": "RAM usada",
    "external": "Verificações externas (GitHub Actions)",
    "offsite_backup": "Backup externo cifrado",
    "running": "em curso",
    "uptime": "Uptime",
    "uptime_checks": "em {{n}} verificações (cerca de 25 horas)",
    "github_unavailable": "O GitHub não está acessível neste momento.",
    "load": "Carga média (1, 5, 15 min)"
  },
  "translation_health": {
    "title": "Traduções do blog",
    "desc": "As 6 línguas comparadas com o italiano",
    "missing": "Em falta",
    "stale": "Desatualizadas",
    "structure": "Estrutura diferente",
    "legend": "✕ em falta · ⟳ traduzida antes da última alteração ao texto italiano · ≠ blocos (títulos, código, tabelas, listas) ou extensão diferentes do italiano. Passa por cima de uma etiqueta para ver os detalhes.",
    "all_ok": "Todos os {{n}} artigos estão traduzidos e alinhados com o italiano."
  },
  "content_health": {
    "section": "Conteúdos"
  },
  "scheduled_posts": {
    "title": "Publicações agendadas",
    "desc": "Artigos que saem sozinhos à hora definida",
    "none": "Nenhum artigo agendado.",
    "notify": "+ newsletter",
    "new_post": "Agendar um artigo"
  },
  "leads": {
    "title": "Leads",
    "desc": "As mensagens de contacto como oportunidades",
    "status_new": "Novo",
    "status_in_progress": "Em negociação",
    "status_won": "Fechado, ganho",
    "status_lost": "Fechado, perdido",
    "avg_response": "Primeira resposta, em média",
    "avg_response_hint": "Últimos 90 dias",
    "no_replies": "Nenhuma resposta nos últimos 90 dias",
    "win_rate": "Taxa de fecho ganho",
    "followups_due": "Follow-ups a fazer",
    "followups_none": "Nenhum follow-up a vencer.",
    "overdue": "atrasado",
    "due_today": "hoje",
    "open_followups": "Ver todos os follow-ups"
  },
  "not_found": {
    "title": "Links quebrados (404)",
    "desc": "Páginas e artigos inexistentes vistos pelos visitantes, últimos 90 dias",
    "open": "Caminhos a corrigir",
    "kind_route": "página",
    "kind_blog": "artigo",
    "kind_project": "projeto",
    "from": "de",
    "dismiss": "Ignorar",
    "none": "Nenhum link quebrado registado."
  },
  "security_panel": {
    "title": "Segurança e sessões",
    "desc": "Acessos falhados, reutilização de tokens e quem está ligado agora",
    "failed_logins": "Acessos falhados (24 h)",
    "otp_failed": "Códigos OTP errados (24 h)",
    "token_reuse": "Tokens reutilizados (3 d)",
    "active_sessions": "Sessões ativas",
    "suspicious_ips": "IPs suspeitos",
    "suspicious_hint": "5 ou mais tentativas falhadas nas últimas 24 horas",
    "reuse_hint": "Um token já usado foi apresentado de novo: pode indicar o roubo de uma sessão.",
    "sessions": "Sessões ativas",
    "events": "Últimos eventos",
    "no_sessions": "Nenhuma sessão ativa.",
    "no_events": "Nenhum evento registado.",
    "events_retention": "O histórico é apagado automaticamente após {{days}} dias.",
    "you": "Você",
    "started": "iniciada",
    "last_active": "última atividade",
    "close_session": "Encerrar sessão",
    "this_device": "Este dispositivo",
    "close_confirm": "Encerrar a sessão de {{name}}? Terá de iniciar sessão novamente (em 15 minutos).",
    "close_error": "Não foi possível encerrar a sessão.",
    "ev_login_success": "Acesso",
    "ev_login_failed": "Acesso falhado",
    "ev_otp_failed": "Código OTP errado",
    "ev_refresh_reuse": "Token reutilizado",
    "ev_session_revoked": "Sessão encerrada"
  }
}
