{
  "healthConsent": {
    "title": "Consentimento para seus dados de saúde",
    "body": "Sua recuperação (sono, energia, humor) e medições corporais como peso são consideradas dados de saúde. Só as processamos com o seu consentimento, para podermos acompanhar sua carga, recuperação e desenvolvimento.",
    "point1": "Dados pessoais sensíveis (art. 9 do RGPD). Apenas para você e os treinadores com quem você mesmo compartilhar.",
    "point2": "Você os preenche de forma voluntária. Pode parar a qualquer momento.",
    "point3": "Você pode excluir seus dados sempre que quiser.",
    "accept": "Eu dou meu consentimento",
    "once": "Você confirma isto uma única vez. Vale para todos os seus dados de saúde no JudoLytics.",
    "readMore": "Leia nossa política de privacidade"
  },
  "save": "Salvar",
  "cancel": "Cancelar",
  "delete": "Excluir",
  "edit": "Editar",
  "back": "Voltar",
  "editedAgo": "Editado {{time}}",
  "lastUpdatedAgo": "Última atualização {{time}}",
  "more": "Mais",
  "settings": "Configurações",
  "signOut": "Sair",
  "copy": {
    "button": "Copiar",
    "copied": "Copiado",
    "success": "Copiado para a área de transferência",
    "failed": "Falha ao copiar"
  },
  "actions": {
    "save": "Salvar",
    "cancel": "Cancelar",
    "delete": "Excluir",
    "edit": "Editar",
    "add": "Adicionar",
    "close": "Fechar",
    "confirm": "Confirmar",
    "back": "Voltar",
    "next": "Próximo",
    "search": "Buscar",
    "filter": "Filtrar",
    "export": "Exportar",
    "import": "Importar",
    "retry": "Tentar novamente",
    "changeLanguage": "Mudar idioma",
    "exportCsv": "Exportar CSV",
    "menu": "Ações",
    "clearSearch": "Limpar busca",
    "undo": "Desfazer"
  },
  "errors": {
    "generic": "Algo deu errado",
    "unauthorized": "Sem acesso"
  },
  "error": {
    "title": "Algo deu errado",
    "profileLoad": "Não foi possível carregar seu perfil. Tente novamente.",
    "retry": "Tentar novamente"
  },
  "roles": {
    "coach": "Treinador",
    "judoka": "Judoca",
    "beheerder": "Administrador"
  },
  "status": {
    "loading": "Carregando...",
    "saving": "Salvando...",
    "deleting": "Excluindo...",
    "noResults": "Nenhum resultado encontrado",
    "error": "Algo deu errado",
    "success": "Salvo com sucesso",
    "unexpectedError": "Ocorreu um erro inesperado",
    "errorRetry": "Ocorreu um erro. Tente novamente.",
    "noConnection": "Sem conexão com a internet. Tente novamente assim que estiver online."
  },
  "nav": {
    "dashboard": "Painel",
    "home": "Início",
    "new": "Novo",
    "newAnalysis": "Adicionar combate",
    "myMatches": "Meus combates",
    "matches": "Combates",
    "import": "Importar",
    "opponents": "Adversários",
    "tournaments": "Torneios",
    "stats": "Estatísticas",
    "training": "Treinos",
    "loadMonitor": "Carga",
    "tracking": "Medições",
    "developmentPlan": "Plano de desenvolvimento",
    "myClubs": "Clubes",
    "referral": "Ganhe um mês grátis",
    "settings": "Configurações",
    "settingsProfile": "Perfil",
    "settingsSecurity": "Segurança",
    "settingsBilling": "Assinatura",
    "settingsNotifications": "Notificações",
    "settingsApp": "Preferências do app",
    "settingsModules": "Módulos",
    "settingsPrivacy": "Privacidade e compartilhamento",
    "settingsData": "Meus dados",
    "dataIntegrity": "Verificação de dados",
    "adminCockpit": "Cockpit do administrador",
    "usersAndSubs": "Usuários e assinaturas",
    "tournamentsAdmin": "Gestão de torneios",
    "manageClubs": "Gerenciar clubes",
    "feedback": "Feedback",
    "analytics": "Analytics da plataforma",
    "emailAdmin": "Gestão de e-mails",
    "stripeInsights": "Insights do Stripe",
    "helpOffline": "Ajuda — Modo offline",
    "helpMfa": "Ajuda — Verificação em duas etapas",
    "systemHealth": "Status do sistema",
    "badges": "Conquistas",
    "pushNotifications": "Notificações push",
    "adminOnboarding": "Gestão de onboarding",
    "freePlan": "Grátis",
    "tierRequired": "{{tier}} necessário para {{feature}}",
    "personal": "Pessoal",
    "personalDesc": "Seu painel pessoal",
    "clubOverview": "Visão geral",
    "clubMembers": "Membros",
    "clubGroups": "Grupos",
    "clubStats": "Estatísticas",
    "clubPrivacy": "Privacidade",
    "coachCockpit": "Cockpit",
    "coachTeamSessions": "Visão geral dos treinos",
    "coachPlanner": "Planejador semanal",
    "coachLoad": "Carga",
    "coachTracking": "Medições",
    "coachDevelopment": "Desenvolvimento",
    "clubSettings": "Configurações",
    "clubSubscription": "Assinatura",
    "sections": {
      "matches": "Combates",
      "training": "Treino",
      "development": "Desenvolvimento",
      "insights": "Insights",
      "more": "Mais",
      "admin": "Administração",
      "coach": "Treinador",
      "personal": "Pessoal",
      "general": "Geral",
      "clubCore": "Geral",
      "clubs": "Meus clubes",
      "account": "Conta"
    },
    "searchPlaceholder": "Buscar no menu...",
    "searchEmpty": "Nenhuma página encontrada",
    "searchClear": "Limpar busca",
    "tabs": {
      "personal": "Pessoal",
      "clubs": "Clubes",
      "admin": "Administração"
    },
    "menu": {
      "title": "Menu",
      "a11yDescription": "Navegação para páginas, clubes e configurações",
      "settings": "Configurações",
      "notifications": "Notificações",
      "logout": "Sair",
      "search": "Buscar combates, adversários e mais…",
      "sections": {
        "today": "Hoje"
      },
      "smartTile": {
        "recovery": "Recuperação",
        "trainingNow": "Treino · {{time}}",
        "matchTomorrow": "Combate amanhã",
        "matchTomorrowSub": "{{name}}",
        "popDue": "Revisão do PDP",
        "reflection": "Reflexão"
      },
      "clubsub": {
        "core": "Geral",
        "coach": "Treinador",
        "admin": "Administração"
      }
    },
    "adminOpponents": "Adversários (admin)",
    "autoOptimization": "Otimização automática"
  },
  "validation": {
    "required": "Este campo é obrigatório",
    "invalidEmail": "E-mail inválido",
    "tooShort": "Deve ter no mínimo {{min}} caracteres",
    "tooLong": "Deve ter no máximo {{max}} caracteres"
  },
  "confirm": {
    "deleteTitle": "Você tem certeza?",
    "deleteMessage": "Esta ação não pode ser desfeita.",
    "deleteConfirm": "Sim, excluir",
    "deleteCancel": "Cancelar"
  },
  "select": {
    "placeholder": "Selecione...",
    "searchPlaceholder": "Buscar...",
    "selectAll": "Selecionar tudo",
    "selected": "{{count}} selecionado",
    "country": "Selecione o país...",
    "searchCountry": "Buscar país...",
    "noCountryFound": "Nenhum país encontrado.",
    "opponent": "Selecione o adversário...",
    "searchOpponent": "Buscar adversário...",
    "noOpponentFound": "Nenhum adversário encontrado",
    "addNew": "Adicionar novo",
    "addNewOpponent": "Adicionar novo adversário",
    "weightCategory": "Selecione a categoria de peso",
    "countryAIN": "Atleta individual neutro (AIN)",
    "countryEOR": "Equipe de refugiados (EOR)"
  },
  "gender": {
    "male": "Masculino",
    "female": "Feminino",
    "prefer_not_to_say": "Prefiro não informar"
  },
  "weightClass": {
    "label": "Categoria de peso",
    "nonStandard": "Categoria fora do padrão",
    "otherCategories": "Outras categorias",
    "otherGender": "Outro gênero",
    "kg": "{{weight}} kg"
  },
  "command": {
    "searchPlaceholder": "Buscar páginas, combates, adversários...",
    "navigation": "Navegação",
    "actions": "Ações",
    "addNewMatch": "Adicionar novo combate",
    "signOut": "Sair",
    "admin": "Administração",
    "adminCockpit": "Cockpit do administrador",
    "adminUsers": "Usuários e assinaturas",
    "adminTournaments": "Gestão de torneios",
    "adminFeedback": "Feedback",
    "adminClubs": "Gestão de clubes",
    "adminAnalytics": "Analytics",
    "adminEmail": "Gestão de e-mails",
    "adminSystemHealth": "Status do sistema",
    "adminBadges": "Gestão de conquistas",
    "searching": "Buscando...",
    "groups": {
      "matches": "Combates",
      "opponents": "Adversários",
      "trainings": "Treinos",
      "goals": "Metas",
      "members": "Membros do clube",
      "recent": "Recente"
    },
    "search": {
      "vs": "vs."
    },
    "removeRecentSearch": "Remover busca recente"
  },
  "withdrawalWaiver": {
    "title": "Acesso imediato ao JudoLytics",
    "description": "Você está solicitando a entrega imediata de um serviço digital. Para isso, precisamos do seu consentimento expresso.",
    "checkboxLabel": "Concordo expressamente com a entrega imediata e confirmo que, com isso, renuncio ao meu direito legal de arrependimento de 14 dias. O cancelamento permanece possível a qualquer momento, com efeito ao fim do período em curso.",
    "termsLink": "Saiba mais sobre o direito de arrependimento nos nossos Termos de Serviço",
    "confirm": "Continuar para o pagamento"
  },
  "paywall": {
    "availableFrom": "Disponível a partir de {{tier}}",
    "upgrade": "Fazer upgrade",
    "upgradeTo": "Fazer upgrade para {{tier}}",
    "availableIn": "Faz parte do {{tier}}.",
    "from": "a partir de",
    "perMonth": "/mês",
    "changeTo": "Mudar para {{tier}}",
    "subscribeTo": "Assinar o {{tier}}",
    "loading": "Carregando...",
    "viewAllPlans": "Ver todos os planos",
    "monthly": "Mensal",
    "yearly": "Anual",
    "discount": "Desconto",
    "mostChosen": "Mais escolhido",
    "yourPlan": "Seu plano",
    "perYear": "/ano faturado",
    "savePerYear": "Economize €{{amount}}/ano",
    "yearlyBadge": "2+ meses grátis",
    "tryFree": "Experimente o {{plan}} grátis",
    "currentPlan": "Plano atual",
    "payAfterTrial": "Você só paga após o período de teste",
    "lessFeatures": "Menos recursos",
    "moreFeatures": "+ {{count}} recursos a mais",
    "subscriptionExpired": "Sua assinatura expirou. Renove sua assinatura para aplicar as alterações.",
    "allOfPlanPlus": "Tudo do {{plan}}, mais:",
    "bestValue": "Melhor custo-benefício",
    "compareAll": "Comparar todos os recursos",
    "hideComparison": "Ocultar comparação",
    "includedFeatures": "Recursos incluídos",
    "states": {
      "neverTrialedDescription": "{{days}} dias de acesso completo. Sem necessidade de cartão de crédito.",
      "postTrialDescription": "Seus dados ficam preservados. Escolha uma assinatura para continuar.",
      "paidLowerDescription": "Este recurso faz parte do {{tier}}. Faça upgrade quando estiver pronto."
    },
    "cta": {
      "viewPlans": "Ver planos",
      "comparePlans": "Comparar planos",
      "managePlan": "Gerenciar assinatura"
    },
    "featurePreview": {
      "intro": "O que você ganha no seu período de teste:"
    },
    "dataSummary": {
      "matches_one": "combate",
      "matches_many": "combates",
      "matches_other": "combates",
      "opponents_one": "adversário",
      "opponents_many": "adversários",
      "opponents_other": "adversários",
      "trainings_one": "treino",
      "trainings_many": "treinos",
      "trainings_other": "treinos",
      "retention": "Tudo fica preservado. Faça upgrade para voltar a usar."
    }
  },
  "plans": {
    "basis": {
      "description": "Registre seus combates, acompanhe seu progresso e conheça seus adversários"
    },
    "pro": {
      "description": "Descubra padrões no seu judô, evite o overtraining e cresça de forma direcionada como judoca"
    },
    "max": {
      "description": "Controle total: painéis para treinadores, planos táticos e, em breve, insights com IA"
    }
  },
  "tierNames": {
    "free": "Grátis",
    "basis": "Starter",
    "pro": "Pro",
    "max": "Elite"
  },
  "featureGroups": {
    "basic": "Básico",
    "analysis": "Análise e reflexão",
    "clubSocial": "Clube e social",
    "advanced": "Avançado",
    "limits": "Limites",
    "matches": "Combates e adversários",
    "stats": "Estatísticas e análise",
    "training": "Treino e carga",
    "development": "Desenvolvimento e reflexão",
    "tracking": "Medições e clube"
  },
  "featureNames": {
    "matches_add": "Registre cada combate",
    "matches_view": "Veja seus resultados e sua evolução",
    "stats_basic": "Veja sua taxa de vitórias/derrotas",
    "opponents_simple": "Conheça seus adversários",
    "reflections": "Construa seu caderno de aprendizado pessoal",
    "data_integrity": "Mantenha seus dados em ordem",
    "club_membership": "Treine junto com seu clube",
    "match_plans": "Plano + pontos de aprendizado por adversário",
    "grip_tracking": "Melhore sua kumi-kata",
    "tracking_basic": "Acompanhe suas medições corporais",
    "tracking_full": "Veja tendências nas suas medições",
    "pop_basic": "Defina suas metas de desenvolvimento",
    "pop_full": "Conecte metas a resultados",
    "pop_coach": "Oriente seus judocas de forma direcionada",
    "training_basic": "Registre seus treinos",
    "training_load": "Evite o overtraining",
    "training_coach": "Monitore todos os seus judocas",
    "stats_advanced": "Descubra padrões no seu judô",
    "stats_explorer": "Analise todos os seus dados do seu jeito",
    "coach_cockpit": "Painel de visão geral da equipe"
  },
  "featureDescriptions": {
    "matches_add": "Registre cada combate com projeção, pontuação e adversário",
    "matches_view": "Veja seus resultados, percentuais de vitória e evolução por torneio",
    "stats_basic": "Visão geral da sua taxa de vitórias/derrotas por torneio e período",
    "stats_advanced": "Descubra padrões nas suas projeções, ne-waza e shidos ao longo do tempo",
    "stats_explorer": "Filtre, combine e analise todos os seus dados de combate exatamente como você quiser",
    "opponents_simple": "Anote pontos fortes, fracos e o estilo dos seus adversários",
    "reflections": "Escreva pontos de aprendizado após cada combate e construa um caderno pessoal",
    "data_integrity": "Avisos automáticos quando faltam dados de combate ou há informações contraditórias",
    "club_membership": "Torne-se membro de um clube de judô e compartilhe dados com sua equipe",
    "match_plans": "Escreva sua abordagem antes do combate. Registre seus aprendizados depois. Compartilhável com seu clube ou treinadores.",
    "grip_tracking": "Registre e analise sua kumi-kata por combate",
    "tracking_basic": "Acompanhe seu peso, altura e outras medições",
    "tracking_full": "Acompanhe tendências nas suas medições com gráficos e comparações",
    "pop_basic": "Defina metas de desenvolvimento e trabalhe rumo a elas passo a passo",
    "pop_full": "Veja na hora como suas metas se relacionam com seus resultados de combate",
    "pop_coach": "Veja o progresso e as metas dos seus judocas em um único lugar",
    "training_basic": "Registre seus treinos com duração, intensidade e tipo",
    "training_load": "Evite o overtraining acompanhando carga versus recuperação",
    "training_coach": "Veja a carga de treino e a evolução de todos os seus judocas",
    "coach_cockpit": "Um painel com KPIs, alertas vermelhos e monitoramento de todos os seus judocas"
  },
  "limitNames": {
    "max_clubs": "Filiações a clubes",
    "max_matches_per_month": "Máx. de combates por mês",
    "max_matches_total": "Máx. de combates no total",
    "max_opponents": "Máx. de adversários",
    "max_training_logs_per_month": "Máx. de treinos por mês",
    "max_pop_goals": "Máx. de metas do PDP"
  },
  "limitValues": {
    "unlimited": "Ilimitado"
  },
  "comingSoon": {
    "badge": "Em breve",
    "statsExplorer": "Analise todos os seus dados do seu jeito",
    "statsExplorerDescription": "Filtre, combine e analise todos os seus dados de combate exatamente como você quiser",
    "customReports": "Crie seus próprios relatórios",
    "customReportsDescription": "Escolha seus dados, período e tipo de gráfico, total liberdade para descobrir insights",
    "aiInsights": "Insights com IA",
    "aiInsightsDescription": "Deixe a IA descobrir padrões que você talvez não perceba"
  },
  "limits": {
    "atLimitTitle": "Limite atingido",
    "atLimitDescription": "Você atingiu o máximo de {{max}} para {{limit}} ({{current}}/{{max}}). Faça upgrade da sua assinatura para adicionar mais.",
    "approachingTitle": "Quase no seu limite",
    "approachingDescription": "Você usou {{current}} de {{max}} para {{limit}}. Ainda pode adicionar {{remaining}}."
  },
  "freeLimit": {
    "freeTitle": "Experimente o JudoLytics com {{max}} combates grátis",
    "freeDescription": "Registre até {{max}} combates e descubra o que o JudoLytics pode fazer por você.",
    "matchProgress": "{{current}} de {{max}} combates grátis",
    "matchesRemaining": "Restam {{remaining}} combates grátis",
    "limitReached": "Você já registrou {{max}} combates grátis",
    "limitReachedDescription": "Inicie um período de teste para registrar combates de forma ilimitada.",
    "addFirstMatch": "Registre seu primeiro combate",
    "freeMatches": "{{max}} combates grátis · sem necessidade de cartão de crédito",
    "continueMatches": "Ou registre mais um combate grátis ({{remaining}} restantes)"
  },
  "loading": "Carregando...",
  "feedback": {
    "toast": {
      "notLoggedIn": "Não conectado",
      "thankYou": "Obrigado pelo seu feedback!",
      "sendError": "Falha ao enviar o feedback",
      "submitted": "Vamos analisar seu relato o mais rápido possível.",
      "tryAgainLater": "Tente novamente mais tarde."
    },
    "giveFeedback": "Enviar feedback",
    "types": {
      "bug": "Bug",
      "feature": "Ideia",
      "other": "Outro"
    },
    "dialog": {
      "whatToReport": "O que você quer relatar?",
      "describeLabel": "Descreva seu feedback",
      "placeholder": "Seja o mais específico possível. O que você esperava? O que aconteceu?",
      "minChars": "No mínimo {{min}} caracteres (faltam {{remaining}})",
      "autoInfo": "Enviamos automaticamente sua página, navegador e informações da conta",
      "screenshotLabel": "Captura de tela (opcional)",
      "dropzoneText": "Arraste uma imagem, cole (Ctrl+V) ou clique para enviar",
      "sending": "Enviando...",
      "submit": "Enviar feedback",
      "helpImprove": "Ajude-nos a melhorar o JudoLytics"
    }
  },
  "invitations": {
    "toast": {
      "sent": "Convite enviado",
      "sendError": "Falha no convite",
      "joined": "Agora você é membro do {{club}}!",
      "acceptError": "Não foi possível aceitar o convite",
      "revoked": "Convite revogado",
      "revokeError": "Não foi possível revogar o convite",
      "emailFailed": "E-mail não enviado",
      "emailFailedDescription": "O convite foi criado, mas o e-mail não pôde ser enviado. Verifique a configuração de e-mail."
    },
    "status": {
      "pending": "Pendente",
      "accepted": "Aceito",
      "expired": "Expirado",
      "revoked": "Revogado"
    },
    "invalidEmail": "Informe um e-mail válido",
    "emailPlaceholder": "nome@exemplo.com",
    "send": "Enviar",
    "sentInvitations": "Convites enviados",
    "revoke": "Revogar",
    "showMore": "Mostrar mais {{count}}"
  },
  "layout": {
    "shortcutsTooltip": "Atalhos (?)",
    "logout": "Sair",
    "loggingOut": "Saindo...",
    "logoHome": "Ir para o painel",
    "searchTrigger": {
      "placeholder": "Buscar combates, adversários e mais…",
      "ariaLabel": "Abrir busca ({{shortcut}})"
    },
    "roleBadge": {
      "admin": "Admin",
      "support": "Suporte"
    },
    "planLabel": "Plano {{tier}}",
    "menu": "Menu",
    "userMenu": {
      "trigger": "Menu da conta",
      "settings": "Configurações",
      "language": "Idioma",
      "help": "Ajuda e instruções",
      "feedback": "Enviar feedback",
      "logout": "Sair",
      "loggingOut": "Saindo..."
    },
    "sidebar": {
      "collapse": "Recolher",
      "expand": "Expandir"
    },
    "shortcuts": {
      "label": "Atalhos",
      "toggle": "Mostrar/ocultar atalhos",
      "newMatch": "Novo combate",
      "goToDashboard": "Ir para o painel",
      "goToMatches": "Ir para Combates",
      "goToStats": "Ir para Estatísticas",
      "goToOpponents": "Ir para Adversários",
      "search": "Buscar (se disponível)",
      "closeDialog": "Fechar diálogo",
      "pressToOpen": "Pressione ? para abrir esta janela"
    }
  },
  "quickCreate": {
    "trigger": "Adicionar rápido",
    "title": "O que você quer adicionar?",
    "description": "Escolha o que deseja registrar.",
    "match": "Combate",
    "matchDescription": "Analisar novo combate",
    "training": "Treino",
    "trainingDescription": "Registrar sessão de treino",
    "measurement": "Medição",
    "measurementDescription": "Medição corporal ou teste",
    "recovery": "Recuperação",
    "recoveryDescription": "Preencher check de recuperação",
    "coachSection": "Para seu grupo",
    "personalSection": "Para você"
  },
  "notifications": {
    "toast": {
      "paymentFailed": "Pagamento recusado",
      "subscriptionCanceling": "A assinatura está sendo cancelada",
      "clubInvite": "Você foi convidado como {{role}} para o clube {{name}}.",
      "freeAccount": "Conta grátis"
    },
    "trialEnding": "O período de teste termina em {{count}} dia",
    "trialEnding_many": "O período de teste termina em {{count}} dias",
    "trialEnding_other": "O período de teste termina em {{count}} dias",
    "trialEndingDescription": "Após o período de teste, seu primeiro pagamento será processado.",
    "trialExpired": "Seu período de teste expirou",
    "trialExpiredDescription": "Escolha uma assinatura para manter os recursos premium.",
    "pastDueDescription": "Atualize seus dados de pagamento para manter o acesso.",
    "cancelPendingDescription": "Sua assinatura termina em {{date}}.",
    "planChangeScheduled": "Mudança de plano agendada",
    "planChangeDescription": "Seu plano será alterado para {{plan}} em {{date}}.",
    "clubInviteTitle": "Convite para {{name}}",
    "freeAccountDescription": "Faça upgrade para uma assinatura paga e tenha todos os recursos.",
    "title": "Notificações",
    "typeWarning": "Aviso",
    "typeAction": "Ação",
    "typeInfo": "Info",
    "actionsRequired": "{{count}} ação necessária",
    "actionsRequired_many": "{{count}} ações necessárias",
    "actionsRequired_other": "{{count}} ações necessárias",
    "noActions": "Nenhuma ação pendente",
    "empty": "Nenhuma notificação",
    "emptyTitle": "Você está em dia",
    "emptyDescription": "Não há novas notificações. Avisaremos você se algo surgir.",
    "manageSettings": "Configurações de notificações",
    "markAllRead": "Marcar tudo como lido",
    "dismiss": "Remover",
    "timeJustNow": "Agora mesmo",
    "timeMinutes": "há {{count}} min",
    "timeHours": "há {{count}} h",
    "timeDays": "há {{count}} dia",
    "timeDays_many": "há {{count}} dias",
    "timeDays_other": "há {{count}} dias",
    "groupToday": "Hoje",
    "groupYesterday": "Ontem",
    "groupEarlier": "Anteriores",
    "orphanedPushHint": "As notificações push estão ativadas, mas nenhum dispositivo está conectado. Ative novamente"
  },
  "referral": {
    "extendedTrial": "Você ganha {{days}} dias de período de teste grátis (normalmente 7 dias)",
    "welcomeBanner": "{{name}} convidou você para o JudoLytics!"
  },
  "trial": {
    "startButton": "Iniciar período de teste grátis ({{days}} dias)",
    "startTitle": "Experimente o JudoLytics Pro grátis",
    "startDescription": "{{days}} dias de acesso grátis a todos os recursos Pro. Sem necessidade de cartão de crédito.",
    "skipButton": "Decidir depois",
    "noCreditCard": "Sem necessidade de cartão de crédito",
    "startedTitle": "Período de teste iniciado!",
    "startedDescription": "Você tem {{days}} dias de acesso Pro.",
    "errorNotLoggedIn": "Faça login para iniciar um período de teste.",
    "features": {
      "matches": "Analisar combates",
      "opponents": "Acompanhar adversários",
      "stats": "Estatísticas e insights",
      "training": "Acompanhar treinos"
    },
    "freeTitle": "Experimente todos os recursos",
    "freeDescription": "Inicie um período de teste grátis e descubra o que o JudoLytics pode fazer por você.",
    "postTrialTitle": "Seu período de teste acabou",
    "postTrialDescription": "Seus dados ficam preservados. Escolha uma assinatura para continuar.",
    "upgradeButton": "Ver planos",
    "bannerDays": "Seu período de teste ainda dura {{count}} dia",
    "bannerDays_many": "Seu período de teste ainda dura {{count}} dias",
    "bannerDays_other": "Seu período de teste ainda dura {{count}} dias",
    "bannerUrgent": "Seu período de teste expira em {{hours}} horas!",
    "subscribeNow": "Assinar agora",
    "bannerPayAfter": "Assine agora, pague só após o período de teste",
    "waitlistBonusTitle": "Bônus da lista de espera",
    "waitlistBonusDescription": "Você ganhou dias extras de teste por ter se inscrito pela lista de espera!",
    "notNowExplore": "Agora não, quero dar uma olhada primeiro"
  },
  "subscriptionStatus": {
    "noSubscription": "Sem assinatura"
  },
  "not_found": {
    "message": "Opa! Página não encontrada",
    "return_home": "Voltar ao início"
  },
  "errorPages": {
    "notFound": {
      "title": "Página não encontrada",
      "code": "404",
      "subtitle": "A página que você procura não existe ou foi movida.",
      "subtitleDashboard": "Esta página não existe. Verifique a URL ou volte.",
      "goHome": "Ir para o início",
      "goDashboard": "Ir para o painel",
      "goBack": "Voltar",
      "viewMatches": "Ver combates",
      "viewOpponents": "Ver adversários"
    },
    "serverError": {
      "title": "Algo deu errado",
      "code": "500",
      "subtitle": "Ocorreu um erro inesperado. Tente novamente mais tarde.",
      "reportProblem": "Relatar um problema",
      "retry": "Tentar novamente",
      "reloadPage": "Recarregar a página"
    },
    "accessDenied": {
      "title": "Sem acesso",
      "code": "403",
      "subtitle": "Você não tem acesso a esta página.",
      "requiredRole": "Esta página está disponível apenas para {{role}}.",
      "contactAdmin": "Entre em contato com o administrador do seu clube",
      "upgradePlan": "Faça upgrade da sua assinatura",
      "goBack": "Voltar",
      "goDashboard": "Ir para o painel"
    },
    "roleTimeout": {
      "title": "Conexão lenta",
      "subtitle": "Não foi possível verificar seu papel devido a uma conexão lenta ou inexistente. Tente novamente.",
      "retry": "Tentar novamente"
    },
    "maintenance": {
      "title": "Estamos fazendo uma atualização",
      "subtitle": "O JudoLytics está temporariamente indisponível devido a uma manutenção programada. Voltaremos a ficar online o mais rápido possível.",
      "estimatedReturn": "Previsão de volta: {{time}}",
      "statusPage": "Ver página de status",
      "contactUs": "Entre em contato"
    }
  },
  "externalLinks": {
    "viewMatchOnJudoTV": "Ver este combate no JudoTV",
    "viewVideosOnJudoTV": "Ver vídeos no JudoTV",
    "viewMatchDataOnJudobase": "Ver dados do combate no Judobase",
    "viewCompetitionOnIJF": "Ver competição no IJF.org",
    "opponentLabel": "Adversário",
    "viewOpponentOnIJF": "Ver adversário no IJF.org",
    "viewCompetitionOnJM": "Ver competição no JudoManager",
    "viewProfileOnJudobase": "Ver perfil no Judobase",
    "ijfProfileLabel": "Perfil IJF",
    "viewProfileOnIJF": "Ver perfil no IJF.org",
    "viewProfileOnJM": "Ver perfil no JudoManager",
    "viewAltProfileOnJM": "Ver perfil alternativo no JudoManager"
  },
  "offlineBanner": {
    "title": {
      "offline": "Você está offline",
      "slow": "Conexão lenta"
    },
    "lastSynced": "Última sincronização {{relativeTime}}",
    "noCache": "Sem dados locais. Conecte-se à internet para carregar.",
    "helpLink": "O que isso significa?",
    "dataAge": {
      "updatedAt": "Dados atualizados pela última vez às {{time}}"
    }
  },
  "mfa": {
    "help": {
      "intro": "Perdeu o acesso ao seu app autenticador? Abaixo você lê o que fazer em cada cenário. Configure os códigos de backup com antecedência para sempre conseguir fazer login novamente."
    }
  },
  "offline": {
    "prepare": {
      "button": "Pronto para offline",
      "preparing": "Preparando...",
      "done": "Pronto — {{n}} itens salvos localmente",
      "partial": "Pronto — {{n}} de {{total}} concluídos",
      "skippedSlowConnection": "Ignorado — conexão lenta demais para o prefetch",
      "error": "Falha na preparação. Tente novamente com uma conexão melhor."
    },
    "storage": {
      "nearlyFull": "Armazenamento local quase cheio ({{usageMB}} / {{quotaMB}} MB). O cache mais antigo será limpo."
    },
    "queued": {
      "message": "Será enviado assim que você tiver conexão novamente"
    },
    "permanentFail": {
      "description": "Não foi possível salvar a alteração: {{reason}}",
      "discard": "Remover"
    },
    "pending": {
      "badge": "{{count}} aguardando conexão",
      "badgeOne": "1 alteração aguardando conexão",
      "title": "Alterações não enviadas",
      "empty": "Todas as alterações foram sincronizadas",
      "retry": "Tentar novamente",
      "retrying": "Reenviando…",
      "remove": "Remover da fila",
      "statusPending": "Aguardando conexão",
      "statusSyncing": "Enviando",
      "statusFailed": "Falhou",
      "statusConflict": "Conflito"
    },
    "reloginRequired": {
      "title": "Sessão expirada",
      "description": "Você tem {{count}} alterações não enviadas. Faça login novamente para preservá-las.",
      "descriptionOne": "Você tem 1 alteração não enviada. Faça login novamente para preservá-la.",
      "loginButton": "Fazer login novamente",
      "later": "Depois"
    },
    "label": {
      "recoveryUpsert": "Check de recuperação {{date}}",
      "measurementInsert": "Medição {{metric}}",
      "measurementDelete": "Excluir medição",
      "opponentNoteInsert": "Nota sobre o adversário",
      "opponentNoteUpdate": "Atualizar nota",
      "opponentInsert": "Adversário {{name}}",
      "tournamentInsert": "Torneio {{name}}",
      "matchInsert": "Salvar combate",
      "matchUpdate": "Atualizar combate",
      "matchDelete": "Excluir combate",
      "matchFields": "Atualizar campos do combate",
      "matchPlanInsert": "Salvar plano de combate",
      "matchPlanUpdate": "Atualizar plano de combate",
      "matchPlanDelete": "Excluir plano de combate",
      "matchReflectionUpsert": "Salvar reflexão do combate",
      "reflectionInsert": "Salvar reflexão",
      "reflectionUpdate": "Atualizar reflexão",
      "measurementSessionInsert": "Salvar sessão de medição",
      "measurementSessionUpdate": "Atualizar sessão de medição",
      "measurementSessionDelete": "Excluir sessão de medição",
      "trainingSessionInsert": "Salvar treino",
      "trainingSessionUpdate": "Atualizar treino",
      "trainingSessionDelete": "Excluir treino",
      "trainingSeriesDelete": "Excluir série de treinos",
      "trainingSeriesTruncate": "Encurtar série de treinos",
      "popIndicatorUpdate": "Atualizar indicador do PDP",
      "scoreInsert": "Adicionar pontuação",
      "scoreDelete": "Excluir pontuação"
    },
    "swUpdate": {
      "title": "Atualização do app disponível",
      "description": "Você tem {{count}} alterações não sincronizadas. Toque para atualizar assim que estiverem sincronizadas.",
      "applyNow": "Atualizar agora"
    },
    "help": {
      "title": "Trabalhar offline no JudoLytics",
      "intro": "O JudoLytics também funciona sem internet. Útil em dojos e ginásios de torneio, onde o wi-fi costuma ser ruim. Abaixo explicamos como reconhecer se você está offline, o que funciona e como gerenciar seus dados.",
      "statusIcons": {
        "heading": "O que significam os ícones de status?",
        "online": {
          "title": "Online — tudo é salvo na hora",
          "body": "Nenhum banner visível. As alterações vão direto para o servidor."
        },
        "offline": {
          "title": "Offline — suas alterações aguardam em uma fila local",
          "body": "Um banner amarelo aparece no topo. Você pode registrar combates, registrar treinos e adicionar medições normalmente. Tudo é enviado automaticamente assim que a conexão volta."
        },
        "pending": {
          "title": "Alterações não enviadas",
          "body": "Um marcador no cabeçalho mostra quantas alterações estão aguardando. Toque nele para ver a lista e a opção de sincronizar manualmente."
        },
        "stale": {
          "title": "Alterações com mais de 3 a 5 dias",
          "body": "Um aviso vermelho aparece se você ficar offline por mais tempo do que o iOS permite (3 dias) ou do que nossa margem de segurança (5 dias). Sincronize o quanto antes para evitar perda de dados."
        }
      },
      "worksOffline": {
        "heading": "O que funciona offline?",
        "items": [
          "Registrar combates pelo assistente de combate (todas as 5 etapas)",
          "Registrar e editar treinos",
          "Adicionar ou excluir medições",
          "Preencher o check de recuperação",
          "Criar adversários e adicionar notas",
          "Escrever e editar planos de combate",
          "Atualizar indicadores do PDP e salvar reflexões",
          "Ver dados sincronizados anteriormente (listas, estatísticas, perfil)"
        ],
        "note": "Não funciona offline: pagamentos, convites de clube, configurações de notificações push e outras ações que precisam se comunicar diretamente com o servidor."
      },
      "faq": {
        "heading": "Perguntas frequentes",
        "q1": {
          "question": "Como sei se meu treino foi salvo?",
          "answer": "Um aviso verde confirma que a alteração foi sincronizada. No uso offline, em vez disso você vê um aviso 'Será enviado assim que você tiver conexão novamente' e a alteração aparece no marcador de pendências no cabeçalho. Assim que a conexão volta, o JudoLytics sincroniza automaticamente e o marcador some."
        },
        "q2": {
          "question": "O que acontece se eu desligar o celular enquanto ainda há alterações aguardando?",
          "answer": "Suas alterações ficam guardadas com segurança no armazenamento local do seu dispositivo. Quando você abre o JudoLytics de novo, o app retoma a sincronização assim que você tiver internet. No iOS, recomendamos não usar o PWA offline por mais de 3 dias. O Safari pode apagar o armazenamento por conta própria nesse prazo."
        },
        "q3": {
          "question": "E se eu fechar o PWA sem querer durante um torneio?",
          "answer": "Sem pânico. Seu último rascunho do assistente de combate fica guardado: ao reabrir o assistente, você volta automaticamente para a etapa em que estava. Os combates já registrados que ainda aguardam sincronização também são preservados."
        },
        "q4": {
          "question": "Meu treinador não vê minhas alterações. E agora?",
          "answer": "Confira o marcador de pendências no seu cabeçalho. Se houver um número, suas alterações ainda aguardam conexão. Toque no ícone de raio para sincronizar manualmente. Se isso não funcionar, verifique se você está mesmo online (o banner sumiu?) e, se preciso, saia e entre novamente."
        },
        "q5": {
          "question": "Quanto espaço o JudoLytics usa no meu dispositivo?",
          "answer": "O PWA armazena cerca de 7 a 10 MB para o app em si, além dos seus próprios dados. No iOS, o máximo é 50 MB para PWAs. O JudoLytics avisa automaticamente quando o armazenamento está quase cheio e limpa o cache mais antigo."
        },
        "q6": {
          "question": "Uma página fica em branco ou mostra um carregamento enquanto estou offline. Por quê?",
          "answer": "Offline, só conseguimos mostrar páginas que você abriu antes estando online. Em uma instalação nova ou em uma página que você nunca visitou sem rede, ela fica em branco até a conexão voltar. Dica: antes de um torneio ou treino, abra todas as páginas que você espera precisar (combates, medições, adversários). Assim elas ficam disponíveis no ginásio."
        }
      },
      "clearData": {
        "heading": "Apagar dados locais",
        "body": "Quer passar seu dispositivo para outra pessoa ou começar do zero? Apague o cache offline local. Se você ainda tiver alterações não sincronizadas, avisamos você antes que elas desapareçam.",
        "cta": "Abrir configurações de privacidade"
      }
    },
    "stale": {
      "title": "Alterações não sincronizadas",
      "description": "Você tem {{count}} alterações com {{oldestAgeDays}} dias. Conecte-se à internet para preservá-las, caso contrário podem ser perdidas.",
      "syncNow": "Sincronizar agora"
    },
    "clearData": {
      "trigger": "Apagar dados salvos localmente",
      "title": "Apagar dados locais?",
      "description": "Isso remove o cache offline e todas as páginas que ficavam visíveis sem conexão.",
      "warningPending": "Você tem {{count}} alterações não sincronizadas que serão perdidas com isso. Sincronize primeiro se quiser preservá-las.",
      "confirm": "Apagar",
      "cancel": "Cancelar",
      "success": "Dados locais apagados",
      "error": "Não foi possível apagar os dados locais. Tente novamente."
    },
    "fallback": {
      "title": "Nenhum dado local para mostrar",
      "titleForPage": "Nenhum(a) {{page}} salvo(a) localmente ainda",
      "bodyOffline": "Você ainda não abriu esta página online, então não há nada para mostrar offline. Conecte-se à internet para carregar o conteúdo. Assim que a página carregar, ela continua disponível mesmo sem rede.",
      "bodyOnline": "Ainda estamos buscando seus dados. Isso às vezes demora um pouco mais em uma conexão lenta.",
      "retry": "Tentar novamente",
      "learnMore": "Como funciona o offline?"
    },
    "audit": {
      "loading": "Carregando registro de auditoria…",
      "heading": "Correções sobrescritas por outras pessoas",
      "intro": "Quando alguém faz uma alteração offline em uma linha que você atualizou online nesse meio-tempo, essa pessoa pode optar, pelo resolvedor de conflitos, por sobrescrever a sua versão. Abaixo você vê de quais correções se trata.",
      "rowDescription": "Linha {{rowId}}",
      "partOfBatch": "(parte de uma escolha em lote)",
      "retentionNotice": "Os registros de auditoria são mantidos por 90 dias e depois excluídos automaticamente.",
      "tables": {
        "matches": "Combate",
        "match_plans": "Plano de combate",
        "opponent_notes": "Nota do adversário",
        "opponents": "Adversário",
        "measurements": "Medição",
        "measurement_sessions": "Sessão de medição",
        "training_sessions": "Treino",
        "goal_check_ins": "Reflexão",
        "goal_indicators": "Indicador do PDP",
        "recovery_checkins": "Check de recuperação"
      }
    },
    "lww": {
      "title": "A alteração foi revertida",
      "description": "Alguém já tinha atualizado {{domain}} online. A versão online voltou a aparecer.",
      "undo": "Manter minha versão mesmo assim",
      "undoApplied": "Sua versão foi restaurada",
      "undoFailed": "Não foi possível restaurar. Tente novamente.",
      "domain": {
        "recovery": "seu check de recuperação",
        "measurements": "esta medição",
        "measurementSessions": "esta sessão de medição",
        "opponentNotes": "esta nota do adversário",
        "opponents": "este adversário",
        "matches": "este combate",
        "matchPlans": "este plano de combate",
        "reflections": "esta reflexão",
        "training": "este treino",
        "pop": "este item do PDP"
      }
    },
    "conflict": {
      "title": "A alteração entra em conflito com outra atualização",
      "description_one": "Há {{count}} conflito para revisar",
      "description_many": "Há {{count}} conflitos para revisar",
      "description_other": "Há {{count}} conflitos para revisar",
      "description": "Há {{count}} conflitos para revisar",
      "empty": "Todos os conflitos resolvidos",
      "queueProgress": "{{current}} de {{total}}",
      "resolve": "Revisar",
      "serverHeading": "Versão online:",
      "localHeading": "Sua versão:",
      "editedBy": "Editado por {{name}}, há {{time}}",
      "fields": {
        "local": "Minha alteração offline",
        "server": "Versão online atual"
      },
      "fieldNotes": "nota",
      "fieldReflection": "reflexão",
      "matchPlanFields": {
        "strategy_notes": "Estratégia",
        "strengths_to_exploit": "Pontos fortes",
        "risks_to_avoid": "Riscos"
      },
      "reflectionFields": {
        "reflection_good": "O que deu certo?",
        "reflection_improve": "O que pode melhorar?",
        "reflection_actions": "Pontos de ação e aprendizados"
      },
      "merge": {
        "fieldChooser": "Qual versão para {{field}}?"
      },
      "actions": {
        "keepLocal": "Minha versão",
        "keepLocalHint": "Criado há {{time}} ({{device}})",
        "keepServer": "Versão online",
        "keepServerHint": "Editado por {{name}}, há {{time}}",
        "merge": "Mesclar",
        "saveMerge": "Salvar versão mesclada",
        "cancel": "Cancelar",
        "someoneElse": "outra pessoa"
      },
      "batch": {
        "heading": "{{count}} conflitos na fila",
        "description": "Resolva todos de uma vez ou trate um por um.",
        "keepAllLocal": "Manter todas as minhas alterações ({{count}})",
        "keepAllServer": "Manter todas as versões online ({{count}})"
      },
      "resolveFailed": "Não foi possível salvar sua escolha. O item permanece na fila como falho. Tente novamente mais tarde.",
      "batchPartialFail": "{{resolved}} resolvidos, {{failed}} com falha. Os itens com falha permanecem na fila.",
      "resolveRetryLater": "Ainda não foi possível salvar sua escolha (problema de rede). O conflito permanece. Tente novamente mais tarde.",
      "unknownDomain": "Domínio desconhecido: {{domain}}"
    }
  },
  "voiceInput": {
    "startAriaLabel": "Iniciar ditado por voz",
    "stopAriaLabel": "Parar ditado por voz",
    "consentTitle": "Usar ditado por voz?",
    "consentDescription": "Seu microfone será ativado e o áudio será processado pelo reconhecimento de voz do seu navegador (Apple/Google). O JudoLytics nunca vê o áudio bruto. Deseja continuar?",
    "consentAccept": "Ativar",
    "consentCancel": "Cancelar",
    "interimPrefix": "Ouvindo…",
    "errors": {
      "permissionDenied": "Acesso ao microfone negado. Permita nas configurações do seu navegador e tente novamente.",
      "noMicrophone": "Nenhum microfone encontrado neste dispositivo.",
      "network": "O reconhecimento de voz exige uma conexão com a internet.",
      "langUnsupported": "O ditado por voz ainda não está disponível no seu idioma.",
      "unsupported": "Seu navegador não suporta ditado por voz. Experimente o Chrome ou o Safari.",
      "insecureContext": "O ditado por voz funciona apenas em uma conexão segura (HTTPS).",
      "startFailed": "Não foi possível iniciar o ditado por voz. Tente novamente.",
      "generic": "O ditado por voz parou de forma inesperada."
    }
  },
  "errorBoundary": {
    "networkTitle": "Problema de rede",
    "networkDescription": "Há um problema com a conexão de rede. Verifique sua conexão com a internet e tente novamente.",
    "autoRetried": "Tentado novamente de forma automática: {{count}}/{{max}}",
    "retry": "Tentar novamente",
    "updateTitle": "Atualização disponível",
    "updateDescription": "Há uma nova versão do aplicativo disponível. Recarregue a página para usar a versão mais recente.",
    "reloadPage": "Recarregar a página",
    "generalTitle": "Algo deu errado",
    "generalDescription": "Ocorreu um erro inesperado. Tente recarregar a página ou entre em contato com o suporte se o problema persistir.",
    "goToDashboard": "Ir para o painel",
    "showDetails": "Mostrar detalhes técnicos"
  },
  "videoPlayer": {
    "ijfLocked": "Vídeo IJF (assinatura necessária)",
    "externalVideo": "Vídeo externo",
    "open": "Abrir"
  },
  "badges": {
    "title": "Conquistas",
    "newBadgeEarned": "Nova conquista desbloqueada!",
    "newBadgeEarned_one": "{{count}} nova conquista desbloqueada!",
    "newBadgeEarned_many": "{{count}} novas conquistas desbloqueadas!",
    "newBadgeEarned_other": "{{count}} novas conquistas desbloqueadas!",
    "names": {
      "first_match": "Primeiro combate",
      "profile_complete": "Perfil completo",
      "first_club_join": "Membro de clube",
      "match_10": "10 combates",
      "match_50": "50 combates",
      "match_100": "100 combates",
      "match_250": "250 combates",
      "streak_7": "Sequência de 7 dias",
      "streak_30": "Sequência de 30 dias",
      "streak_100": "Sequência de 100 dias",
      "recovery_streak_7": "Sequência de recuperação: 7 dias",
      "recovery_streak_14": "Sequência de recuperação: 14 dias",
      "recovery_streak_30": "Sequência de recuperação: 30 dias",
      "recovery_streak_60": "Sequência de recuperação: 60 dias",
      "recovery_streak_100": "Sequência de recuperação: 100 dias",
      "technique_variety": "Mestre das técnicas",
      "opponent_variety": "Judoca versátil",
      "first_reflection": "Primeiro ponto de aprendizado",
      "reflection_10": "Autoconhecedor",
      "team_player": "Espírito de equipe",
      "mentor": "Mentor",
      "growing_club": "Clube em crescimento",
      "thriving_club": "Clube próspero",
      "powerhouse": "Potência",
      "recruiter": "Recrutador",
      "ambassador": "Embaixador"
    },
    "descriptions": {
      "first_match": "Você registrou seu primeiro combate",
      "profile_complete": "Seu perfil está totalmente preenchido",
      "first_club_join": "Tornou-se membro do seu primeiro clube",
      "match_10": "10 combates registrados",
      "match_50": "50 combates registrados",
      "match_100": "100 combates registrados",
      "match_250": "250 combates registrados",
      "streak_7": "7 dias seguidos registrados",
      "streak_30": "30 dias seguidos registrados",
      "streak_100": "100 dias seguidos registrados",
      "recovery_streak_7": "7 dias seguidos preenchendo seu check de recuperação",
      "recovery_streak_14": "14 dias seguidos preenchendo seu check de recuperação",
      "recovery_streak_30": "30 dias seguidos preenchendo seu check de recuperação",
      "recovery_streak_60": "60 dias seguidos preenchendo seu check de recuperação",
      "recovery_streak_100": "100 dias seguidos preenchendo seu check de recuperação",
      "technique_variety": "10 projeções diferentes usadas",
      "opponent_variety": "Combateu contra 20 adversários diferentes",
      "first_reflection": "Você registrou seu primeiro ponto de aprendizado",
      "reflection_10": "10 pontos de aprendizado registrados",
      "team_player": "Contribuiu ativamente para o seu clube",
      "mentor": "Compartilhou dados com sua equipe",
      "growing_club": "O clube tem mais de 10 membros",
      "thriving_club": "O clube tem mais de 25 membros",
      "powerhouse": "O clube tem mais de 50 membros",
      "recruiter": "5 indicações bem-sucedidas",
      "ambassador": "10 indicações bem-sucedidas"
    },
    "categories": {
      "onboarding": "Onboarding",
      "activity": "Atividade",
      "streak": "Sequências",
      "diversity": "Diversidade",
      "reflection": "Reflexão",
      "community": "Comunidade",
      "club": "Clube",
      "referral": "Indicação"
    },
    "progressLabel": "{{earned}} de {{total}} conquistas desbloqueadas",
    "categoryProgressLabel": "Progresso da conquista: {{current}} de {{target}}"
  },
  "streaks": {
    "title": "Sequências",
    "types": {
      "match_logging": "Registrar combates",
      "training_logging": "Registrar treinos",
      "reflection": "Escrever pontos de aprendizado",
      "recovery_checkin": "Fazer check de recuperação"
    },
    "days": "dias",
    "best": "Recorde: {{count}} dias"
  },
  "gamification": {
    "dashboardTitle": "Desempenho",
    "recentBadges": "Conquistas recentes",
    "almostEarned": "Quase desbloqueadas",
    "viewAll": "Ver todas as conquistas",
    "freshSealLabel": "NOVA",
    "freshSealSublabel": "CONQUISTA",
    "overallProgressLabel": "Progresso total das conquistas: {{pct}}%",
    "badgeProgressLabel": "Progresso para a conquista {{name}}"
  },
  "edgeErrors": {
    "RATE_LIMIT": "Solicitações em excesso. Tente novamente mais tarde.",
    "AUTH_FAILED": "Falha na autenticação. Faça login novamente e tente mais uma vez.",
    "NOT_AUTHORIZED": "Você não tem permissão para esta ação.",
    "INTERNAL_ERROR": "Ocorreu um erro interno. Tente novamente mais tarde.",
    "ALREADY_SUBSCRIBED": "Você já tem uma assinatura ativa. Use o portal do cliente para alterar sua assinatura.",
    "INVALID_PRICE": "Preço inválido. Entre em contato com o suporte.",
    "NO_SUBSCRIPTION": "Você ainda não tem uma assinatura. Inicie uma assinatura primeiro pela página de preços.",
    "NO_SCHEDULED_CHANGE": "Não há nenhuma mudança agendada para cancelar.",
    "CANCEL_SCHEDULE_FAILED": "Erro ao cancelar a mudança agendada. Tente novamente.",
    "TRIAL_ALREADY_USED": "Você já teve um período de teste antes.",
    "EMAIL_NOT_VERIFIED": "Confirme seu e-mail antes de poder iniciar um período de teste.",
    "EMAIL_ALREADY_VERIFIED": "Seu e-mail já foi verificado.",
    "VERIFICATION_TOKEN_INVALID": "Este link de verificação é inválido ou expirou.",
    "TRIAL_START_FAILED": "Não foi possível iniciar o período de teste. Tente novamente.",
    "SUBSCRIPTION_UPDATE_FAILED": "Falha ao atualizar a assinatura.",
    "SYNC_FAILED": "Erro ao sincronizar. Tente novamente.",
    "UNKNOWN_STRIPE_PRODUCT": "Produto do Stripe desconhecido.",
    "NO_STRIPE_PRODUCTS": "A assinatura do Stripe não tem produtos.",
    "FETCH_SUBSCRIPTION_FAILED": "Erro ao buscar a assinatura.",
    "CAPTCHA_REQUIRED": "Verificação por CAPTCHA necessária. Atualize a página e tente novamente.",
    "CAPTCHA_FAILED": "Falha na verificação por CAPTCHA. Tente novamente.",
    "EMAIL_ALREADY_REGISTERED": "Este e-mail já está cadastrado.",
    "REGISTRATION_FAILED": "Falha no cadastro. Tente novamente.",
    "PROFILE_CREATION_FAILED": "Falha no cadastro: não foi possível criar o perfil.",
    "USER_CREATION_FAILED": "Falha ao criar o usuário. Verifique os dados e tente novamente.",
    "CANNOT_INVITE_SELF": "Você não pode convidar a si mesmo.",
    "NO_INVITE_PERMISSION": "Você não tem permissão para convidar membros para este clube.",
    "CLUB_NOT_FOUND": "Clube não encontrado.",
    "ALREADY_CLUB_MEMBER": "Esta pessoa já tem uma conta e já é membro deste clube.",
    "ALREADY_HAS_ACCOUNT": "Esta pessoa já tem uma conta no JudoLytics.",
    "INVITATION_CREATE_FAILED": "Não foi possível criar o convite.",
    "INVITATION_NOT_FOUND": "Convite não encontrado.",
    "INVITATION_NOT_FOR_YOU": "Este convite não é para a sua conta.",
    "MAX_INVITATIONS_TODAY": "Você atingiu o número máximo de convites de hoje. Tente novamente amanhã.",
    "PROFILE_UPDATE_FAILED": "Falha ao atualizar o perfil.",
    "EMAIL_UPDATE_FAILED": "Falha ao atualizar o e-mail.",
    "PASSWORD_UPDATE_FAILED": "Falha ao atualizar a senha.",
    "ROLE_UPDATE_FAILED": "Falha ao atualizar o papel.",
    "USER_DELETE_FAILED": "Falha ao excluir o usuário.",
    "SUBSCRIPTION_SETTING_FAILED": "Falha ao atualizar a assinatura.",
    "FREE_ACCOUNT_FAILED": "Falha ao configurar a conta grátis.",
    "MAX_CLUBS_REACHED": "Você já é membro do número máximo de clubes para a sua assinatura. Faça upgrade da sua assinatura ou saia de um clube primeiro.",
    "MEMBERSHIP_ACTIVATION_FAILED": "Não foi possível ativar a filiação.",
    "MEMBERSHIP_CREATION_FAILED": "Não foi possível criar a filiação.",
    "INVITATION_UPDATE_FAILED": "Não foi possível atualizar o convite.",
    "INVALID_OR_EXPIRED_LINK": "Link inválido ou expirado.",
    "PREFERENCES_SAVE_FAILED": "Não foi possível salvar as preferências.",
    "PREFERENCES_FETCH_FAILED": "Não foi possível buscar as preferências.",
    "MISSING_REQUIRED_FIELDS": "Nem todos os campos obrigatórios foram preenchidos."
  },
  "reactivation": {
    "banner": "Sua conta será excluída em {{days}} dias. Reative sua conta para evitar isso.",
    "banner_0": "Sua conta será excluída hoje. Reative sua conta para evitar isso.",
    "reactivate": "Reativar",
    "reactivating": "Reativando...",
    "success": "Sua conta foi reativada com sucesso!",
    "error": "Falha na reativação. Tente novamente."
  },
  "tosReconsent": {
    "title": "Nossos termos foram atualizados",
    "description": "Confira os atualizados",
    "tosLink": "Termos de Serviço",
    "and": "e",
    "privacyLink": "Política de Privacidade",
    "accept": "Concordo",
    "accepting": "Processando...",
    "accepted": "Obrigado! Você aceitou os termos atualizados.",
    "error": "Não foi possível aceitar os termos. Tente novamente."
  },
  "pushPrimer": {
    "title": "Fique por dentro",
    "description": "Receba notificações para não perder nada da sua evolução no judô.",
    "benefitReminders": "Lembrete para registrar seus combates após um torneio",
    "benefitLoad": "Aviso quando sua carga de treino ficar alta demais",
    "benefitMotivation": "Motivação a cada novo recorde pessoal e sequência",
    "enable": "Ativar notificações",
    "notNow": "Agora não",
    "contextual": {
      "settings": {
        "title": "Os lembretes de check-in funcionam por push",
        "description": "Ative as notificações push para receber um aviso a cada manhã para o seu check-in, mesmo com o app fechado."
      },
      "tournament": {
        "title": "Lembrete depois do seu torneio?",
        "description": "Receba uma notificação no dia seguinte ao torneio para registrar seus combates enquanto está tudo fresco."
      },
      "training": {
        "title": "Quer registrar como foi seu treino?",
        "description": "Receba uma notificação curta após cada treino programado para registrar como foi."
      },
      "club": {
        "title": "Fique por dentro do seu clube",
        "description": "Receba uma notificação assim que sua solicitação for aprovada e quando seu treinador der feedback."
      },
      "standalone": {
        "title": "Complete seu app",
        "description": "Ative as notificações para que lembretes e feedback do treinador cheguem direto neste dispositivo."
      }
    }
  },
  "pushBanner": {
    "title": "Não perca nenhum lembrete",
    "description": "Ative as notificações para receber lembretes e atualizações.",
    "benefitMatches": "Lembretes de combate",
    "benefitLoad": "Lembretes de treino",
    "enable": "Ativar",
    "later": "Depois"
  },
  "progress": {
    "percentage": "{{value}}% de progresso"
  },
  "pwaInstall": {
    "bannerTitle": "Instale o JudoLytics no seu dispositivo",
    "bannerDescription": "Adicione o JudoLytics à sua tela inicial para a melhor experiência.",
    "benefitFast": "Carregamento mais rápido",
    "benefitNotifications": "Notificações push",
    "benefitOffline": "Funciona offline",
    "benefitHomeScreen": "Ícone de app próprio",
    "installButton": "Instalar",
    "later": "Depois",
    "iosTitle": "Instale o JudoLytics",
    "iosDescription": "Adicione o JudoLytics à sua tela inicial em três passos. Aí ele funciona como um app de verdade.",
    "iosStep1Title": "Toque no ícone de Compartilhar",
    "iosStep1Desc": "O ícone quadrado com a setinha para cima na barra na parte de baixo da sua tela.",
    "iosStep2Title": "Escolha 'Adicionar à Tela de Início'",
    "iosStep2Desc": "Role o menu de compartilhamento para baixo e toque em 'Adicionar à Tela de Início'.",
    "iosStep3Title": "Confirme com 'Adicionar'",
    "iosStep3Desc": "Toque em 'Adicionar' no canto superior direito. O JudoLytics aparece agora na sua tela inicial.",
    "iosShareLabel": "Compartilhar",
    "iosAddLabel": "Adicionar à Tela de Início",
    "iosDoneHint": "Após a instalação, o JudoLytics abre como um app completo, com notificações push e acesso offline.",
    "openInAppTitle": "O app JudoLytics está instalado",
    "openInAppDescription": "Abra o app para a melhor experiência, com notificações push e acesso offline.",
    "openApp": "Abrir app"
  },
  "table": {
    "sortBy": "Ordenar por {{column}}",
    "sortedAscending": "Ordenado de forma crescente",
    "sortedDescending": "Ordenado de forma decrescente",
    "notSorted": "Não ordenado"
  },
  "optionalFields": {
    "show_one": "+ mostrar {{count}} campo",
    "show_many": "+ mostrar {{count}} campos",
    "show_other": "+ mostrar {{count}} campos",
    "hide": "Mostrar menos",
    "seenInlineToast": "Quer ver este campo com mais frequência?",
    "seenInlineAction": "Mostrar sempre"
  },
  "forms": {
    "draftRestored": {
      "text": "Rascunho não salvo restaurado.",
      "discard": "Esvaziar"
    }
  },
  "sharing": {
    "title": "Quem pode ver isto?",
    "change": "alterar",
    "changeAria": "Alterar quem pode ver isto",
    "shareWithClubs": "Compartilhar com clubes",
    "privateOnlyHint": "Visível apenas para você",
    "saveAsDefault": "Tornar este meu padrão",
    "updateDefault": "Atualizar padrão",
    "saveAsDefaultHint": "Use esta escolha como padrão para novos itens",
    "saveDefaultSuccess": "Padrão de compartilhamento salvo",
    "saveDefaultError": "Padrão de compartilhamento não salvo",
    "applyChange": "Aplicar",
    "defaultScopeHint": "Este é o seu padrão para este tipo. A alteração vale para todos os seus itens desse tipo.",
    "advancedPerClub": "Configurar por clube",
    "clearDefault": "Perguntar sempre",
    "clearDefaultSuccess": "Padrão de compartilhamento removido",
    "overrideLabel": "personalizado",
    "overrideTooltip": "Difere do seu padrão",
    "scopes": {
      "private": {
        "label": "Só eu",
        "description": "Apenas você vê isto. Treinadores e colegas de clube não veem."
      },
      "coaches": {
        "label": "Treinadores",
        "description": "Os treinadores dos clubes selecionados veem isto. Colegas de clube não."
      },
      "club": {
        "label": "Clube",
        "description": "Treinadores e colegas de clube dos clubes selecionados veem isto."
      }
    },
    "summary": {
      "private": "Visível apenas para você",
      "coachesWith": "Compartilhado com os treinadores de {{clubs}}",
      "clubWith": "Compartilhado com {{clubs}}",
      "popCoaches": "Visível para seus treinadores",
      "popClubMembers": "Visível para treinadores e colegas de clube",
      "noClubs": "nenhum clube selecionado",
      "clubsCount": "{{first}} +{{count}} a mais"
    },
    "pop": {
      "visibleToCoaches": "Treinadores",
      "visibleToCoachesHint": "Seus treinadores podem ler suas metas e feedback.",
      "visibleToMembers": "Colegas de clube",
      "visibleToMembersHint": "Outros membros do clube podem ver suas metas."
    },
    "measurements": {
      "all": "Todos os clubes",
      "none": "Só eu",
      "allHint": "As novas medições são compartilhadas automaticamente com todos os seus clubes ativos.",
      "noneHint": "As novas medições permanecem privadas. Seus treinadores não as veem.",
      "selectedHint": "As novas medições são compartilhadas apenas com os clubes que você escolher abaixo."
    },
    "settings": {
      "title": "Preferências de compartilhamento",
      "description": "Defina uma única vez como você quer compartilhar novos itens. Você ainda pode ajustar item por item.",
      "domains": {
        "matches": "Planos de combate",
        "opponents": "Notas de adversários",
        "pop": "Plano de desenvolvimento (PDP)",
        "measurements": "Medições"
      },
      "noClubs": "Torne-se membro de um clube ou crie um para compartilhar itens com treinadores e colegas de clube.",
      "notSetYet": "Ainda não configurado. O valor padrão será usado.",
      "resetButton": "Perguntar sempre",
      "trackedSummary": "Agora: {{summary}}"
    },
    "visibilityPrefix": "Visibilidade",
    "variesPerClub": "Varia por clube"
  },
  "subscription": {
    "source": {
      "personal": "Pessoal",
      "club": "Via {{clubName}}",
      "adminGrant": "Concedido",
      "none": "—"
    },
    "lifecycle": {
      "active": "Ativo",
      "trial": "Período de teste",
      "pastDue": "Em atraso",
      "canceledActive": "Termina em {{date}}",
      "expired": "Expirado",
      "none": "Inativo"
    },
    "trial": {
      "daysLeft": "{{count}} d.",
      "hoursLeft": "{{count}} h.",
      "hoursLeftLastHour": "<1 h."
    },
    "paymentMode": {
      "stripe": "Stripe",
      "manual": "Manual"
    }
  },
  "wizard": {
    "progressAriaLabel": "Progresso do assistente"
  },
  "a11y": {
    "refresh": "Atualizar",
    "close": "Fechar",
    "toggleSidebar": "Recolher/expandir a barra de navegação",
    "breadcrumb": "Caminho de navegação"
  },
  "brand": {
    "logoAltText": "JudoLytics início"
  }
}
