"use strict";

/**
 * Kasy CLI i18n messages — Português.
 *
 * One entry per user-facing string. Keys are dotted paths describing
 * where the string is used (cli.help.*, run.*, ios.*, etc.).
 */

module.exports = {
  'cli.tagline': 'Crie apps móveis sem dor de configuração',
    'cli.description': 'Crie apps Flutter sem dor de configuração.',
    'cli.usage': '<comando> [argumentos]',
    'cli.option.version': 'Mostrar versão instalada',
    'cli.option.lang': 'Idioma (en, pt, es)',
    'cli.help.afterError': '(execute com --help para detalhes de uso)',
    'cli.help.more': 'Execute "{command}" para detalhes de um comando específico.',
    'cli.help.quickStart': 'Criar um novo app:',
    'cli.help.optionDescription': 'Mostrar ajuda do comando',
    'cli.help.commandDescription': 'Mostrar ajuda do comando',
    'cli.help.inline.options': '[opções]',
    'cli.help.heading.usage': 'Uso',
    'cli.help.heading.arguments': 'Argumentos',
    'cli.help.heading.options': 'Opções',
    'cli.help.heading.globalOptions': 'Opções globais',
    'cli.help.heading.commands': 'Comandos',
    'cli.help.group.start': 'Para começar',
    'cli.help.group.work': 'Trabalhar no app',
    'cli.help.group.publish': 'Publicar e testar',
    'cli.help.group.maintenance': 'Manutenção da Kasy CLI',
    'cli.help.group.advanced': 'Avançado',
    'cli.help.group.other': 'Outros',
    'cli.help.tip': 'Dica: rode `kasy <comando> --help` para detalhes. Use --lang pt|en|es para mudar o idioma.',
    'cli.command.setup.description': '(avançado) Configura um projeto Flutter existente',
    'cli.command.new.description': 'Cria um app novo (ex: kasy new meu-app)',
    'cli.command.new.projectName': 'nome do projeto',
    'cli.command.new.projectNameArg': 'Nome da pasta do projeto',
    'prompt.projectName.enter': 'Qual o nome do seu projeto?',
    'prompt.projectName.required': 'O nome do projeto é obrigatório.',
    'prompt.projectName.default': 'meu_app',
    'cli.command.setup.directoryName': 'diretório',
    'cli.command.setup.directoryArg': 'Diretório de destino (padrão: pasta atual .)',
    'cli.command.setup.langName': 'idioma',
    'cli.command.setup.langOption': 'Idioma dos prompts (en, pt, es)',
    'cli.command.setup.backendOption': 'Adapter de backend (firebase, supabase, api)',
    'cli.command.setup.featuresOption': 'Features opcionais separadas por virgula (web,widget,llm_chat,revenuecat,ci)',
    'cli.command.help.paramName': 'comando',
    'cli.command.doctor.description': 'Verifica se o seu computador está pronto para rodar a Kasy',
    'cli.command.modules.description': 'Mostra o que já vem incluso e o que você pode adicionar',
    'cli.command.validate.description': '(avançado) Valida combinações de backend e features',
    'cli.command.validate.analyzeOnlyOption': 'Executa apenas flutter analyze (sem build)',
    'cli.command.version.description': 'Mostra a versão instalada da Kasy',
    'cli.command.upgrade.description': 'Atualiza a Kasy CLI para a versão mais recente',
    'cli.command.uninstall.description': 'Desinstala a Kasy deste computador',
    'cli.command.upgrade.running': 'Atualizando a CLI kasy...',
    'cli.command.upgrade.done': 'kasy atualizado com sucesso!',
    'cli.command.uninstall.running': 'Desinstalando a CLI kasy...',
    'cli.command.uninstall.done': 'kasy desinstalado. Até mais!',
    'new.checks.environment': 'Verificações de ambiente',
    'new.checks.environment.checking': 'Verificando ambiente',
    'new.checks.environment.done': 'Ambiente pronto',
    'setup.checks.backend.checking': 'Verificando ferramentas {backend}',
    'setup.checks.backend.done': 'Ferramentas {backend} prontas',
    'new.checks.firebaseForPush': 'Atenção: Firebase CLI é obrigatório para notificações push (Firebase Cloud Messaging / FCM) em todos os backends.',
    'new.checks.requiredBlock': 'Ferramentas obrigatórias não encontradas. Instale-as para continuar.',
    'new.checks.installFirebase': 'Firebase: npm i -g firebase-tools && firebase login. FlutterFire: dart pub global activate flutterfire_cli',
    'new.checks.installSupabase': 'Supabase: npm i -g supabase (ou brew install supabase/tap/supabase) && supabase login',
    'new.checks.installSupabase.darwin': 'Supabase: brew install supabase/tap/supabase && supabase login (ou npm i -g supabase)',
    'new.checks.installSupabase.win32': 'Supabase: npm i -g supabase && supabase login',
    'new.checks.installSupabase.linux': 'Supabase: npm i -g supabase && supabase login',
    'setup.checks.environment': 'Verificações de ambiente',
    'setup.checks.prepareFirebase': 'Ferramentas Firebase (push, remote config)',
    'setup.checks.backend': 'Verificações de backend ({backend})',
    'setup.firebase.installing': 'Instalando Firebase CLI...',
    'setup.supabase.installing': 'Instalando Supabase CLI...',
    'setup.flutterfire.installing': 'Instalando FlutterFire CLI...',
    'setup.warn.hang': 'Se travar, execute manualmente: flutterfire --version',
    'setup.warn.supabase': 'Usando Supabase ou API propria? O Firebase ainda ajuda com push e remote config.',
    'doctor.title': 'Kasy Doctor',
    'doctor.baseEnvironment': 'Ambiente base',
    'doctor.optionalBackend': 'Ferramentas opcionais de backend',
    'doctor.requiredMissing': 'Dependencias obrigatórias ausentes. Corrija os erros acima e execute o doctor novamente.',
    'doctor.requiredPassed': '✓ Verificações obrigatórias de ambiente aprovadas.',
    'modules.backends': 'Backends disponíveis:',
    'modules.featuresBase': 'Sempre incluído:',
    'modules.features': 'Features opcionais:',
    'modules.tag.firebaseOnly': 'somente Firebase',
    'modules.tag.requiresDb': 'requer Firebase ou Supabase',
    'modules.tag.enhances': 'ativa {target}',
    'modules.hint.subscriptionNoRc': 'Dica: a tela de Subscriptions está inclusa mas inativa. Rode `kasy add revenuecat` para habilitar pagamentos reais.',
    'modules.feature.base.authentication.description': 'Cadastro, login e gerenciamento de conta',
    'modules.feature.base.home.description': 'Tela principal do app apos o login',
    'modules.feature.base.settings.description': 'Tema, idioma, conta e preferencias',
    'modules.feature.base.notifications.description': 'Notificações push via Firebase Cloud Messaging (funciona com qualquer backend)',
    'modules.feature.base.subscription.description': 'Tela e modelo de assinatura premium (adicione RevenueCat para habilitar pagamentos reais)',
    'modules.backend.firebase.description': 'Adapter de backend Firebase',
    'modules.backend.supabase.description': 'Adapter de backend Supabase',
    'modules.backend.api.description': 'Adapter de backend API REST/GraphQL',
    'modules.feature.sentry.description': 'Rastreamento de erros e crashes com Sentry',
    'modules.feature.analytics.description': 'Rastreamento de eventos de analytics (Firebase Analytics)',
    'modules.feature.facebook.description': 'Login do Facebook e rastreamento de eventos Meta Ads (vem sempre junto)',
    'modules.feature.revenuecat.description': 'Habilita pagamentos reais na tela de Subscriptions',
    'modules.feature.onboarding.description': 'Fluxo de boas-vindas mostrado no primeiro acesso',
    'modules.feature.web.description': 'Suporte Web/PWA',
    'modules.feature.widget.description': 'Widget de tela inicial iOS/Android',
    'modules.feature.llm_chat.description': 'Tela de chat com IA usando OpenAI ou Gemini',
    'modules.feature.feedback.description': 'Pedidos e votacao de features dentro do app',
    'modules.feature.local_notifications.description': 'Lembretes locais agendados pelo usuario (sem servidor)',
    'modules.feature.ci.description': 'CI/CD: GitHub/GitLab (testes + build) + Codemagic (publicação nas lojas)',
    'checks.checking': 'Verificando {name}...',
    'checks.found': '{name} encontrado',
    'checks.foundWithVersion': '{name} pronto ({version})',
    'checks.missing': '{name} ausente',
    'checks.notFound': '{name} não encontrado',
    'checks.notFound.short': 'não encontrado',
    'checks.runHint': 'Execute',
    'checks.stillMissing': 'ainda não detectado',
    'checks.flutter.warn': 'Flutter SDK não encontrado. Instale o Flutter para compilar e executar apps: https://docs.flutter.dev/get-started/install',
    'checks.install.failed': 'instalação automática falhou — execute o comando manualmente',
    'checks.waitPrompt.gcloud.install': 'Após instalar o gcloud, pressione Enter para verificar novamente',
    'checks.waitPrompt.gcloud.auth': 'Após rodar gcloud auth login, pressione Enter para verificar novamente',
    'error.hint.notFlutterProject': 'Você não está dentro de um projeto Flutter. Use `kasy new` para criar um, ou entre na pasta de um projeto existente.',
    'error.hint.flutterMissing': 'Flutter não está instalado ou não está no PATH. Rode `kasy doctor` para diagnosticar.',
    'error.hint.permission': 'Algum arquivo/pasta está somente leitura. Verifique as permissões da pasta pai ou tente de novo a partir da sua pasta home.',
    'error.hint.noSpace': 'Disco cheio. Libere espaço (builds Flutter/Xcode precisam de 5-15 GB) e tente de novo.',
    'error.hint.network': 'Problema de rede — verifique sua conexão com a internet e tente de novo.',
    'error.hint.firebaseLogin': 'Você não está logado no Firebase. Execute: firebase login',
    'error.hint.supabaseLogin': 'Você não está logado no Supabase. Execute: supabase login',
    'error.hint.gcloudAuth': 'Você precisa autenticar com gcloud. Execute: gcloud auth login',
    'error.hint.flutterRunFailed': 'Flutter não conseguiu rodar o app. Tente de novo com --verbose para ver a saída completa.',
    'checks.diagnostic.xcodeLicense': '{name} está instalado, mas o Xcode precisa que a licenca seja aceita. Execute: sudo xcodebuild -license',
    'checks.diagnostic.xcodeCli': '{name} está instalado, mas faltam as Command Line Tools do Xcode. Execute: xcode-select --install',
    'banner.title': 'Kasy CLI · Gerador Flutter SaaS',
    'welcome.firstRun': 'Bem-vindo ao Kasy CLI!',
    'welcome.chooseLanguage': 'Primeiro, escolha seu idioma:',
    'prompt.language.select': 'Escolha seu idioma',
    'prompt.cancelled': 'Comando cancelado pelo usuario.',
    'license.required': '🔑 Chave de ativação necessária para usar o Kasy CLI',
    'license.checking': 'Validando chave de ativação...',
    'license.saved': '✅ Chave validada com sucesso',
    'license.invalid': 'Chave inválida. Verifique sua chave ou entre em contato em kasy.dev.',
    'license.expired': '❌ Sua assinatura expirou. Renove em kasy.dev.',
    'license.inactive': '❌ Sua chave foi desativada. Entre em contato em kasy.dev.',
    'license.offlineWarning': '⚠️  Servidor fora do ar — continuando no modo offline.',
    'license.subscriptionExpired': '❌ Sua assinatura expirou. Atualizações exigem plano ativo. Renove em kasy.dev.\n   Seus projetos continuam funcionando — apenas atualizações estão bloqueadas.',
    'prompt.license.enter': '👉 Digite sua chave de ativação (XXXX-XXXX-XXXX-XXXX)',
    'prompt.license.invalid': 'Formato inválido. Use XXXX-XXXX-XXXX-XXXX.',
    'prompt.appName.enter': 'Digite o nome do seu app',
    'prompt.appName.required': 'O nome do app é obrigatório.',
    'prompt.bundleId.enter': 'Digite o bundle ID (com.company.app)',
    'prompt.bundleId.required': 'O bundle ID é obrigatório.',
    'prompt.bundleId.invalid': 'O bundle ID deve seguir o formato com.company.app.',
    'prompt.backend.select': 'Escolha o provedor de backend',
    'prompt.features.select': 'Escolha as features opcionais para incluir',
    'prompt.features.instructions': 'Espaco para marcar, enter para confirmar',
    'prompt.multiselect.instructions': '\nInstrucoes:\n    ↑/↓: Destacar opção\n    ←/→/[space]: Marcar/desmarcar\n    a: Marcar/desmarcar todos\n    enter/return: Confirmar',
    'prompt.multiselect.warnDisabled': 'Use ↓ para ir a uma opção selecionavel, Space para marcar, Enter para confirmar',
    'prompt.firebase.projectId.enter': 'Digite o Firebase Project ID',
    'prompt.firebase.projectId.required': 'Firebase Project ID é obrigatório.',
    'prompt.supabase.url.enter': 'Digite a URL do Supabase',
    'prompt.supabase.url.required': 'A URL do Supabase é obrigatória.',
    'prompt.supabase.anonKey.enter': 'Digite a chave anon do Supabase',
    'prompt.supabase.anonKey.required': 'A chave anon do Supabase é obrigatória.',
    'new.supabase.q.create': 'Criar novo projeto Supabase ou usar existente?',
    'new.supabase.q.create.create': '✨ Criar novo projeto (recomendado para iniciantes)',
    'new.supabase.q.create.existing': '📂 Usar projeto existente',
    'new.firebase.q.setupMode': 'Como deseja configurar o Firebase?',
    'new.firebase.q.setupMode.push': 'Projeto Firebase para notificações push (FCM):',
    'new.firebase.q.setupMode.push.explain': 'Notificações push (FCM) precisam de um projeto Firebase, mesmo quando seu backend principal é Supabase ou API REST.',
    'new.firebase.q.setupMode.create': '✨ Criar do zero (recomendado para iniciantes)',
    'new.firebase.q.setupMode.existing': '📂 Usar projeto existente',
    'new.firebase.q.region': 'Onde está a maioria dos usuários do seu app?',
    'new.firebase.q.region.brazil': '🇧🇷  Brasil (São Paulo)           — southamerica-east1',
    'new.firebase.q.region.us':     '🇺🇸  Estados Unidos               — us-central1',
    'new.firebase.q.region.europe': '🇪🇺  Europa                       — europe-west1',
    'new.firebase.q.region.global': '🌍  Global / Não sei              — us-central1',
    'new.firebase.create.prereq': 'Você precisa: gcloud CLI (cloud.google.com/sdk) + gcloud auth login. Plano Blaze necessário para deploy.',
    'new.firebase.create.creating': 'Criando projeto Firebase…',
    'new.firebase.create.includeWeb': 'Incluir app Web no Firebase? (para plataforma web)',
    'new.firebase.create.nowDo': 'Agora ative a autenticação (antes de rodar o app):',
    'new.firebase.create.activateEmail': 'Ative Email/Senha: Firebase Console → Authentication → Sign-in method',
    'new.firebase.create.activateGoogle': 'Ative Google: mesma página, clique em Google → Ativar',
    'new.firebase.create.beforeContinue.title': 'Antes de continuar, ative no Firebase Console:',
    'new.firebase.create.beforeContinue.step1': '1. Authentication → Sign-in method → Google (Email/Senha e Anônimo já foram ativados automaticamente)',
    'new.firebase.create.beforeContinue.step1.noAuth': '1. Authentication → Sign-in method → ative Email/Senha, Anônimo e Google',
    'new.firebase.create.beforeContinue.ready': 'Ativei o Google Sign-In. Continuar?',
    'new.firebase.create.beforeContinue.ready.noAuth': 'Ativei Email/Senha, Anônimo e Google Sign-In. Continuar?',
    'new.firebase.create.beforeContinue.secretManagerAuto': '(Secret Manager e Storage já foram ativados automaticamente)',
    'new.firebase.create.sha1Skipped': 'SHA-1 não adicionado',
    'new.firebase.create.sha1ManualInstruction': 'Adicione o SHA-1 manualmente: Firebase Console → Configurações do projeto → Seus apps → Android → Adicionar impressão digital',
    'new.firebase.create.sha1ParseError': 'Não foi possível extrair o SHA-1 da saída do keytool',
    'new.firebase.create.sha1ErrorDetail': 'Motivo',
    'new.firebase.create.useExistingHint': 'O projeto pode ter sido criado. Tente "Usar projeto existente" com ID: {id}',
    'new.firebase.create.usingProjectId': 'Usando project ID: {id} (continuando com projeto existente)',
    'new.firebase.create.waitPropagate': 'Aguardando propagação do projeto (20s)…',
    'new.firebase.create.success': 'Projeto Firebase criado com sucesso.',
    'new.firebase.create.failed': 'Não foi possível criar o projeto',
    'new.firebase.create.gcloudRequired': 'gcloud CLI é obrigatório para "criar do zero". Sem ele, o fluxo completo do Firebase não pode rodar.',
    'new.firebase.create.installTitle': 'Para instalar o gcloud CLI, execute:',
    'new.firebase.create.installCommand': 'Comando',
    'new.firebase.create.installAfter': 'Depois faca login',
    'new.firebase.create.installUrl': 'Ou baixe em',
    'new.firebase.create.authCommand': 'Execute: gcloud auth login',
    'new.firebase.create.fallbackHint': 'Por enquanto, informe um Firebase Project ID existente para continuar (ou instale o gcloud e execute novamente):',
    'new.firebase.q.billingAccount': 'Qual conta de faturamento vincular ao projeto?',
    'new.firebase.q.billingAccount.hint': 'Escolha a conta com cota disponível (até 3 projetos por conta)',
    'new.firebase.q.billingAccount.context': 'Limite: até 3 projetos por conta de faturamento. Escolha uma conta com cota disponível (remova projetos não usados em console.cloud.google.com/billing se necessário).',
    'new.firebase.q.billingAccount.other': 'Outra — informar ID da conta manualmente',
    'new.firebase.q.billingAccount.manualId': 'ID da conta de faturamento (ex: 018A70-7D0548-0F84A8)',
    'new.firebase.q.billingAccount.manualId.hint': 'Encontre em console.cloud.google.com/billing',
    'new.firebase.q.billingAccount.manualId.required': 'O ID da conta de faturamento é obrigatório.',
    'new.firebase.q.organization': 'Em qual organização GCP criar o projeto?',
    'new.firebase.q.organization.none': 'Sem organização (conta pessoal / projeto avulso)',
    'new.firebase.q.organization.hint': 'Organizações vinculadas à sua conta gcloud',
    'new.firebase.create.billingRetry.title': 'Vincule o faturamento manualmente (cota excedida ou erro de billing):',
    'new.firebase.create.billingRetry.hint': 'Dica: O limite é 3 projetos por conta de faturamento. Remova projetos não usados no link acima. Se acabou de remover um, espere 2–5 min para a alteração propagar e tente novamente.',
    'new.firebase.create.billingRetry.ready': 'Vinculei o faturamento. Tentar novamente?',
    'new.firebase.create.billingRetry.retrying': 'Tentando novamente…',
    'new.firebase.create.billingRetry.exit': 'Execute novamente com "Usar projeto existente" após vincular o faturamento.',
    'new.firebase.create.projectQuotaExceeded': 'Cota de projetos excedida (limite por conta Google). Exclua projetos não usados em console.cloud.google.com ou informe um projeto existente abaixo.',
    'new.supabase.q.orgSelect': 'Em qual organização criar o projeto?',
    'new.supabase.orgsRequired': 'Nenhuma organização encontrada. Execute supabase login e tente novamente.',
    'new.supabase.q.region': 'Onde está a maioria dos usuários do seu app?',
    'new.supabase.q.region.brazil': '🇧🇷  Brasil (São Paulo)           — sa-east-1',
    'new.supabase.q.region.us':     '🇺🇸  Estados Unidos (Virginia)    — us-east-1',
    'new.supabase.q.region.europe': '🇪🇺  Europa (Irlanda)             — eu-west-1',
    'new.supabase.q.region.global': '🌍  Global / Não sei              — us-east-1',
    'new.supabase.q.dbPassword': 'Senha do banco (min 6 caracteres)',
    'new.supabase.q.dbPassword.required': 'A senha deve ter pelo menos 6 caracteres.',
    'new.supabase.creating': 'Criando projeto no Supabase…',
    'new.supabase.created': 'Projeto criado com sucesso.',
    'new.supabase.createFailed': 'Não foi possível criar o projeto',
    'new.supabase.loginHint': 'Execute: supabase login. Depois informe a URL e chave do seu projeto existente.',
    'new.supabase.setup': 'Vinculando projeto e publicando…',
    'new.supabase.setupManual': 'Execute manualmente: supabase link, supabase db push, supabase functions deploy',
    'new.supabase.q.useExisting.orgSelect': 'Em qual organização está o projeto?',
    'new.supabase.q.useExisting.projectSelect': 'Qual projeto Supabase existente deseja usar?',
    'new.supabase.projectsRequired': 'Nenhum projeto encontrado nesta organização.',
    'new.supabase.q.dbPassword.existing': 'Senha do banco do projeto (necessária para vincular e aplicar migrations)',
    'new.supabase.existingLinked': 'Projeto pronto para vincular e aplicar migrations.',
    'setup.license.loaded': '✓ Chave de licenca carregada da configuração local.',
    'setup.license.saved': '✓ Chave de licenca validada e salva.',
    'setup.license.invalid': 'Formato de licenca inválido. Esperado XXXX-XXXX-XXXX-XXXX.',
    'setup.error.targetNotEmpty': 'O diretório de destino não está vazio: {path}',
    'setup.error.targetExists': 'O diretório de destino já existe: {path}',
    'setup.error.coreMissing': 'Pasta do core template não encontrada: {path}',
    'setup.error.requiredChecksFailed': 'Falha nas verificações obrigatórias. Execute `kasy doctor`.',
    'setup.error.generatingFailed': 'Falha ao gerar o projeto.',
    'setup.error.conflictHint': 'Dica: Remova a pasta do projeto e execute novamente, ou use um diretório vazio.',
    'setup.spinner.generating': 'Gerando arquivos do projeto...',
    'setup.success.created': 'Projeto criado com sucesso.',
    'setup.success.complete': '✓ Setup concluido',
    'setup.success.location': 'Local',
    'setup.success.nextSteps': 'Proximos passos',
    'setup.success.stepPubGet': 'flutter pub get',
    'setup.success.stepRun': 'flutter run',
    'validate.title': 'Kasy Validate',
    'validate.success': '✓ Matriz de validacao aprovada.',
    'validate.failed': 'Matriz de validacao falhou.',
    'validate.error': 'Uma ou mais combinacoes de validacao falharam.',
    'validate.projectNotFound': 'Projeto não encontrado',
    'validate.ok': 'ok',
    'validate.fail': 'falhou',
    'validate.passed': 'aprovado',

    // ── Fluxo Firebase ────────────────────────────────────────────────────
    'cli.command.firebase.description': '🔥 Criar app Flutter completo com Firebase (recomendado)',
    'new.banner': '✨ Novo app Flutter',
    'new.subtitle': 'Escolha o backend: Firebase, Supabase ou API REST.',
    'new.subtitle2': '🔒 O setup roda na sua máquina com suas credenciais — sem acesso de terceiros.',
    'new.q.backend': 'Onde você quer salvar os dados do seu app?',
    'new.q.backend.firebase.desc': 'Mais fácil de começar — auth, banco e armazenamento prontos',
    'new.q.backend.supabase.desc': 'Banco SQL (PostgreSQL) com mais controle',
    'new.q.backend.api.desc': 'Você já tem seu próprio servidor',

    'new.q.mode': 'Como quer configurar?',
    'new.q.mode.quick': '⚡ Rapido — poucas perguntas, padrões inteligentes',
    'new.q.mode.advanced': '🛠  Avançado — todas as opções e credenciais agora',

    'new.q.preset': 'Quais features incluir?',
    'new.q.preset.starter': '⚡ Starter — analytics + erros + onboarding',
    'new.q.preset.saas': '💰 SaaS — assinaturas + analytics + onboarding + feedback',
    'new.q.preset.content': '📱 Conteúdo — crash reports + analytics + onboarding + AI chat',
    'new.q.preset.full': '🚀 Completo — todas as features',
    'new.q.preset.custom': '⚙️  Personalizar — escolha feature a feature',
    'new.q.preset.none': '○  Nenhum — so o core',

    'new.firebase.success.deployStep': '• Deploy do backend (de dentro da pasta do projeto):',

    'cli.command.deploy.description': 'Publica o servidor no Firebase ou Supabase',
    'cli.command.check.description': 'Confere se as notificações push estão configuradas (use --fix para corrigir)',
    'deploy.q.project': 'Firebase Project ID:',
    'deploy.q.serviceAccount': 'Caminho para o service account JSON:',
    'deploy.detected.project': '✓ Projeto Firebase detectado:',
    'deploy.detected.serviceAccount': '✓ Service account detectado:',
    'deploy.error.notProject': 'Nenhum firebase.json encontrado. Execute kasy deploy de dentro da pasta do projeto.',

    'cli.command.ios.description': 'Publica o app na App Store (precisa de Mac)',
    'cli.command.ios.configure.description': 'Configurar credenciais Apple para envio local do IPA',
    'cli.command.ios.release.description': 'Incrementa build, gera IPA e envia para App Store Connect',
    'cli.command.ios.build.description': 'Só gera o IPA (sem enviar)',
    'cli.command.ios.clean.description': 'Limpa caches Flutter/Xcode após falha no build iOS',
    'cli.command.ios.picker.intro': 'Publicar na App Store',
    'cli.command.ios.picker.message': 'O que você quer fazer?',
    'cli.command.ios.help.before': 'Como publicar na App Store:\n  1) kasy ios configure  → faça isso uma vez (salva as credenciais Apple)\n  2) kasy ios release    → rode em cada nova versão (build + envio)\n\nUse "build" se quiser só gerar o IPA, "clean" se um build falhou.\n',
    'cli.command.codemagic.description': 'Compila o app na nuvem (sem precisar de Mac)',
    'cli.command.codemagic.configure.description': 'Configurar credenciais da API Codemagic',
    'cli.command.codemagic.release.description': 'Iniciar build do workflow iOS no Codemagic',
    'cli.command.codemagic.status.description': 'Status do build Codemagic por ID',
    'cli.command.codemagic.picker.intro': 'Compilar na nuvem com Codemagic',
    'cli.command.codemagic.picker.message': 'O que você quer fazer?',
    'cli.command.codemagic.picker.statusHint': 'Pergunta o ID do build',
    'cli.command.codemagic.help.before': 'Como compilar com Codemagic (sem precisar de Mac):\n  1) kasy codemagic configure  → faça isso uma vez (salva o token da API)\n  2) kasy codemagic release    → inicia um build na nuvem a cada versão\n\nUse "status <buildId>" para acompanhar o progresso de um build.\n',

    'ios.configure.title': 'App Store iOS — configuração',
    'ios.configure.bundleId': 'Bundle ID',
    'ios.configure.doc': 'Guia',
    'ios.configure.openingLinks': 'Abrindo App Store Connect no navegador…',
    'ios.configure.note.title': 'Vou precisar de 3 coisas do App Store Connect',
    'ios.configure.note.body': '1) API Key ID — em Users and Access → Keys.\n2) Issuer ID — no topo da mesma página.\n3) O arquivo .p8 (chave privada) baixado quando você criou a key.\n\nO App ID é opcional, só usa se tiver vários apps.',
    'ios.configure.q.apiKey': 'Key ID da API App Store Connect',
    'ios.configure.q.issuerId': 'Issuer ID (UUID)',
    'ios.configure.q.p8Path': 'Caminho do arquivo AuthKey_XXXXX.p8 baixado',
    'ios.configure.q.appId': 'App ID no App Store Connect (opcional)',
    'ios.configure.q.required': 'Obrigatório',
    'ios.configure.q.p8NotFound': 'Arquivo não encontrado',
    'ios.configure.cancelled': 'Configuração cancelada',
    'ios.configure.success': 'Credenciais Apple salvas',
    'ios.configure.p8Installed': 'Chave instalada em',
    'ios.configure.next': 'Próximo passo',
    'ios.release.title': 'Gerando e enviando release iOS…',
    'ios.release.success': 'Release iOS enviada',
    'ios.release.task.building': 'Compilando IPA (pode levar 2-5 min)…',
    'ios.release.task.uploading': 'Enviando IPA para o App Store Connect…',
    'ios.release.task.done': 'Compilação + envio concluídos',
    'ios.release.task.failed': 'Compilação falhou — veja a saída abaixo',
    'ios.build.title': 'Gerando IPA iOS…',
    'ios.build.success': 'IPA gerado',
    'ios.build.task.building': 'Compilando IPA (pode levar 2-5 min)…',
    'ios.build.task.done': 'IPA pronto em build/ios/ipa/',
    'ios.build.task.failed': 'Compilação falhou — veja a saída abaixo',
    'ios.error.notProject': 'Não é um projeto Flutter iOS (pubspec.yaml + ios/ obrigatórios).',
    'ios.error.noScript': 'scripts/release-ios.sh não encontrado. Execute: kasy update ios-release',
    'ios.error.notMac': 'Release iOS local exige macOS com Xcode.',
    'ios.error.useCodemagic': 'Use release na nuvem',
    'ios.error.notConfigured': 'Credenciais Apple não configuradas',
    'ios.error.runConfigure': 'Execute: kasy ios configure',
    'ios.release.askConfigure': 'Quer configurar as credenciais Apple agora?',
    'ios.error.signing': 'Assinatura iOS não configurada (DEVELOPMENT_TEAM ausente).',
    'ios.error.signingHint': 'Abra ios/Runner.xcworkspace no Xcode → Runner → Signing & Capabilities → escolha seu Team.',
    'ios.error.googleUrlScheme': 'URL scheme iOS do Google Sign-In não configurado.',
    'ios.error.googleUrlSchemeHint': 'Correção: rode flutterfire configure, depois kasy ios clean, ou gere o projeto novamente antes do build.',
    'ios.warn.lowDisk': 'Pouco espaço em disco ({gb} GB livres; recomendado pelo menos {min} GB para builds Xcode).',
    'ios.hints.title': 'Cache do Xcode pode estar corrompido — tente:',
    'ios.hints.closeXcode': 'Feche o Xcode por completo',
    'ios.hints.retry': 'Depois tente de novo',
    'ios.hints.manual': 'Ou manualmente',
    'ios.hints.network.title': 'Falha de rede ao baixar dependências do iOS',
    'ios.hints.network.body': 'Sua conexão caiu enquanto o pod install baixava bibliotecas. Costuma ser temporário.',
    'ios.hints.network.step1': 'Confirme que sua internet está estável',
    'ios.hints.network.step2': 'Tente novamente',
    'ios.hints.network.step3': 'Se persistir',
    'ios.clean.title': 'Limpando caches do build iOS…',
    'ios.clean.success': 'Caches limpos',
    'ios.clean.notMac': 'Limpeza iOS só está disponível no macOS.',
    'ios.clean.step.flutterClean': 'flutter clean',
    'ios.clean.step.derivedData': 'Remover DerivedData do Xcode (Runner)',
    'ios.clean.step.buildDir': 'Remover pastas build',
    'ios.clean.step.pubGet': 'flutter pub get',
    'ios.clean.step.pods': 'pod install',

    'codemagic.configure.title': 'Codemagic — configuração',
    'codemagic.configure.doc': 'Guia',
    'codemagic.configure.checklist': 'Conclua assinatura + App Store Connect no painel Codemagic (veja o guia).',
    'codemagic.configure.openingLinks': 'Abrindo Codemagic no navegador…',
    'codemagic.configure.q.token': 'Token da API Codemagic',
    'codemagic.configure.q.appId': 'App ID no Codemagic',
    'codemagic.configure.q.workflowId': 'Workflow ID (do codemagic.yaml)',
    'codemagic.configure.q.branch': 'Branch Git para build',
    'codemagic.configure.q.required': 'Obrigatório',
    'codemagic.configure.cancelled': 'Configuração cancelada',
    'codemagic.configure.success': 'Credenciais Codemagic salvas',
    'codemagic.configure.next': 'Próximo passo',
    'codemagic.release.title': 'Disparando build no Codemagic…',
    'codemagic.release.triggered': 'Build iniciado',
    'codemagic.release.spin': 'Iniciando build no Codemagic…',
    'codemagic.release.spinDone': 'Build enfileirado no Codemagic',
    'codemagic.status.title': 'Status do build',
    'codemagic.status.usage': 'Uso: kasy codemagic status <buildId>',
    'codemagic.status.spin': 'Consultando status do build…',
    'codemagic.status.spinDone': 'Status obtido',
    'codemagic.error.notProject': 'Não é um projeto Flutter iOS (pubspec.yaml + ios/ obrigatórios).',
    'codemagic.error.notConfigured': 'Codemagic não configurado',
    'codemagic.error.addCi': 'Adicione CI primeiro: kasy add ci (cria codemagic.yaml)',
    'codemagic.error.runConfigure': 'Execute: kasy codemagic configure',
    'codemagic.error.googleUrlScheme': 'Build Codemagic bloqueado: URL scheme iOS do Google Sign-In não configurado.',

    'doctor.ios.title': 'Release iOS',
    'doctor.ios.appleOk': 'Credenciais Apple configuradas',
    'doctor.ios.appleMissing': 'Credenciais Apple ausentes — kasy ios configure',
    'doctor.ios.p8Ok': 'Arquivo da chave API encontrado',
    'doctor.ios.p8Missing': 'AuthKey .p8 ausente — kasy ios configure',
    'doctor.ios.codemagicOk': 'Credenciais Codemagic configuradas',
    'doctor.ios.codemagicMissing': 'Codemagic opcional — kasy codemagic configure',
    'doctor.ios.notMac': 'Release iOS local exige macOS',
    'doctor.ios.doc': 'Documentação',
    'doctor.ios.signingOk': 'Assinatura Xcode (Development Team) configurada',
    'doctor.ios.signingMissing': 'Assinatura Xcode não definida — abra Runner no Xcode e escolha seu Team',
    'doctor.ios.googleUrlSchemeOk': 'URL scheme iOS do Google Sign-In configurado',
    'doctor.ios.googleUrlSchemeMissing': 'URL scheme iOS do Google Sign-In divergente',
    'doctor.ios.googleUrlSchemeSkipped': 'Check do URL scheme iOS do Google Sign-In ignorado (GoogleService-Info.plist ausente)',
    'doctor.ios.appleSignInEntitlementOk': 'Entitlement do Apple Sign-In configurado',
    'doctor.ios.appleSignInEntitlementMissing': 'Entitlement do Apple Sign-In ausente — adicione a capability Sign In with Apple no Xcode',
    'doctor.ios.facebookOk': 'Credenciais do Facebook configuradas (iOS)',
    'doctor.ios.facebookPlaceholders': 'Credenciais do Facebook ainda são placeholders — atualize FacebookAppID e FacebookClientToken no Info.plist',
    'doctor.ios.facebookSkipped': 'Check das credenciais do Facebook ignorado (FacebookAppID ausente no Info.plist)',
    'doctor.android.facebookOk': 'Credenciais do Facebook configuradas (Android)',
    'doctor.android.facebookPlaceholders': 'Credenciais do Facebook ainda são placeholders — atualize facebook_app_id e facebook_client_token em android/app/src/main/res/values/strings.xml',

    'doctor.revenuecat.title': 'RevenueCat',
    'doctor.revenuecat.keysOk': 'Chaves de API configuradas (iOS + Android)',
    'doctor.revenuecat.keysEmpty': 'Nenhuma chave configurada — defina pelo menos RC_TEST_KEY no .env (kasy run usa em simulador/emulador)',
    'doctor.revenuecat.testKeyOk': 'RC_TEST_KEY configurada (test_) — usada em simulador/emulador',
    'doctor.revenuecat.testKeyMissing': 'RC_TEST_KEY ausente — fluxo de assinatura não funciona em simulador/emulador',
    'doctor.revenuecat.iosProdOk': 'RC_IOS_PROD_KEY configurada (appl_) — usada em iPhone físico',
    'doctor.revenuecat.iosProdMissing': 'RC_IOS_PROD_KEY ausente — kasy run em iPhone físico vai usar a chave de teste',
    'doctor.revenuecat.androidProdOk': 'RC_ANDROID_PROD_KEY configurada (goog_) — usada em Android físico',
    'doctor.revenuecat.androidProdMissing': 'RC_ANDROID_PROD_KEY ausente — kasy run em Android físico vai usar a chave de teste',
    'doctor.revenuecat.prefixMismatch': 'Chave com prefixo errado: {key} deveria começar com {expected}',
    'doctor.revenuecat.keysTest': 'Apenas chaves Test Store (test_) configuradas — releases na loja exigem appl_/goog_, senão o app crasha',
    'doctor.revenuecat.webhookUrlSupabase': 'URL do webhook (cole no RevenueCat → Integrations → Webhooks)',
    'doctor.revenuecat.webhookUrlFirebase': 'URL do webhook: Firebase Console → Functions → subscriptionsOnRcPremiumUpdate',

    'update.iosRelease.success': 'Arquivos de release iOS atualizados',
    'add.iosRelease.success': 'Arquivos de release iOS adicionados',
    'add.iosRelease.already': 'Arquivos de release iOS já existem',

    'new.api.q.baseUrl': 'Qual e a URL base da sua API?',
    'new.api.q.baseUrl.hint': 'https://api.example.com',
    'new.firebase.banner': '🔥 Novo app Flutter — Firebase',
    'new.firebase.subtitle': 'Projeto completo: auth, Firestore, notificações, login social e muito mais.',
    'new.prereq.title': 'Antes de começar, certifique-se de que você tem:',
    'new.firebase.prereq.title': 'Antes de começar, certifique-se de que você tem:',
    'new.firebase.prereq.create.1': '1. gcloud CLI (cloud.google.com/sdk) + gcloud auth login',
    'new.firebase.prereq.create.2': '2. Plano Blaze (cartão de crédito — necessário para Cloud Functions)',
    'new.firebase.prereq.create.billingLimit': '3. Limite: até 3 projetos por conta de faturamento. Remova projetos não usados ou solicite aumento de cota se já atingiu o limite.',
    'new.firebase.prereq.create.projectQuota': '4. Cota de projetos: a conta Google tem limite (ex.: 10–30 projetos). Exclua projetos não usados em console.cloud.google.com se necessário.',
    'new.firebase.prereq.create.note': '   Projeto e APIs serão criados automaticamente.',
    'new.firebase.prereq.create.pushNote': '   Projeto Firebase para FCM + Remote Config será criado automaticamente (sem conta de serviço).',
    'new.firebase.create.creatingPush': 'Criando projeto Firebase para notificações push…',
    'new.firebase.create.successPush': 'Projeto Firebase criado para FCM + Remote Config.',
    'new.firebase.prereq.1': '1. Firebase CLI instalado (npm i -g firebase-tools) + firebase login',
    'new.firebase.prereq.2': '2. Projeto Firebase criado em console.firebase.google.com',
    'new.firebase.prereq.3': '3. Plano Blaze ativado (cartao de credito — necessário para Cloud Functions)',
    'new.firebase.prereq.4': '4. gcloud CLI instalado + gcloud auth login (usado para ativar APIs automaticamente)',
    'new.firebase.prereq.5': '5. Antes do deploy: ative Secret Manager API e Firebase Storage (ver PREREQUISITES.md ou links apos gerar)',
    'new.firebase.prereq.doc': '   Checklist completo: PREREQUISITES.md',

    'new.firebase.q.appName': 'Qual e o nome do seu app?',
    'new.firebase.q.appName.hint': 'ex: Meu App Incrivel',
    'new.firebase.q.appName.required': 'O nome do app é obrigatório.',

    'new.firebase.q.bundleId': 'Qual e o identificador único (Bundle ID) do seu app?',
    'new.firebase.q.bundleId.hint': 'Funciona como um endereço para o seu app, ex: com.minhaempresa.meuapp',
    'new.firebase.q.bundleId.invalid': 'Formato inválido. Use: com.empresa.app',
    'new.firebase.q.bundleId.required': 'O Bundle ID é obrigatório.',

    'new.firebase.q.projectId': 'Qual e o ID do seu projeto Firebase?',
    'new.firebase.q.projectId.hint': 'Encontre no Firebase Console → seu projeto → Configurações',
    'new.firebase.q.projectId.required': 'O Firebase Project ID é obrigatório.',

    'new.firebase.q.modules': 'Quais features opcionais você quer incluir?',
    'new.firebase.q.modules.hint': 'Espaco para selecionar, Enter para confirmar',
    'new.modules.header.common': '── Comuns (todos os backends) ──',
    'new.modules.header.features': '── Telas e features ──',
    'new.modules.header.feedback': '── Feedback (Firebase + Supabase) ──',
    'new.modules.header.ci': '── CI/CD ──',
    'new.modules.header.monetization': '── Monetizacao ──',
    'new.firebase.module.revenuecat': '💰 RevenueCat (ativa Subscriptions)',
    'new.firebase.module.sentry': '🚨 Crash Reports (Sentry)',
    'new.firebase.module.analytics': '📊 Analytics (Mixpanel)',
    'new.firebase.module.facebook': '👤 Facebook (Login + Ads)',
    'new.firebase.module.web': '🌐 Web Support (PWA, somente Firebase)',
    'new.firebase.module.widget': '📱 Home Widget (iOS/Android)',
    'new.firebase.module.llm_chat': '🤖 AI Chat (OpenAI/Gemini)',
    'new.firebase.module.local_notifications': '🔔 Local Reminders (sem servidor)',
    'new.firebase.module.feedback': '💬 Feature Requests (requer Firebase ou Supabase)',
    'new.firebase.module.ci': '⚙️ CI/CD (GitHub + Codemagic)',
    'new.firebase.module.onboarding': '👋 Onboarding (fluxo de boas-vindas)',

    'new.firebase.q.secrets.configureNow': 'Configurar as secrets do servidor agora? (webhook RevenueCat, Meta Ads)',
    'new.firebase.q.secrets.configureNow.hint': 'Se não agora, veja o README para os comandos de configuração depois',
    'new.firebase.q.secrets.later': '• Secrets do servidor não configuradas — serão configuradas durante `kasy deploy`.',
    'new.firebase.q.revenuecat.webhookKey': 'Chave secreta do webhook (um valor aleatorio foi sugerido — pressione Enter para aceitar ou digite o seu)',
    'new.firebase.q.revenuecat.webhookKey.hint': 'Salve esse valor. No painel RevenueCat, cole como: Bearer <esse-valor>',
    'new.firebase.q.revenuecat.metaToken': 'Meta Access Token (Conversions API, opcional)',
    'new.firebase.q.revenuecat.metaDataset': 'Meta Dataset ID / Pixel ID (opcional)',
    'new.firebase.q.revenuecat.test': 'Chave Test Store (test_xxx) — opcional, serve pra iOS+Android e funciona em simulador',
    'new.firebase.q.revenuecat.test.invalid': 'Chave Test Store deve começar com test_ (ex: test_xxxxxxxxxxxxxxxxxxxx).',
    'new.firebase.q.revenuecat.iosProd': 'Chave iOS de produção (appl_xxx) — opcional, usada só em dispositivo físico',
    'new.firebase.q.revenuecat.iosProd.invalid': 'Chave iOS de produção deve começar com appl_ (ex: appl_xxxxxxxxxxxxxxx).',
    'new.firebase.q.revenuecat.androidProd': 'Chave Android de produção (goog_xxx) — opcional, usada só em dispositivo físico',
    'new.firebase.q.revenuecat.androidProd.invalid': 'Chave Android de produção deve começar com goog_ (ex: goog_xxxxxxxxxxxxxxx).',
    'new.firebase.q.revenuecat.atLeastOne': 'Configure pelo menos uma chave (Test, iOS prod ou Android prod). Você pode adicionar as outras depois no .env.',
    // Legacy keys — kept for projects/scripts that still reference them.
    'new.firebase.q.revenuecat.android': 'Chave de API RevenueCat para Android',
    'new.firebase.q.revenuecat.ios': 'Chave de API RevenueCat para iOS',
    'new.firebase.q.paywall': 'Qual estilo de paywall?',
    'new.firebase.q.paywall.hint': 'Layout da tela de assinaturas — pode alterar depois no RevenueCat',
    'new.firebase.q.revenuecat.web': 'Habilitar assinaturas na web (RevenueCat Web Billing)?',
    'new.firebase.q.revenuecat.web.hint': 'Requer Web Billing no dashboard RevenueCat + Stripe. Deixe desmarcado se não precisar.',
    'new.firebase.q.revenuecat.webKey': 'Chave API RevenueCat Web Billing (rcb_xxx ou rcb_sb_xxx, opcional — configure depois)',
    'new.firebase.success.revenuecatWeb': '• RevenueCat Web: adicione RC_WEB_API_KEY (launch.json) para assinaturas na web',
    'new.firebase.q.sentry.dsn': 'DSN do Sentry (deixe em branco para configurar depois)',
    'new.firebase.q.sentry.dsn.invalid': 'DSN inválido. Formato esperado: https://chave@host/project-id',
    'new.firebase.q.mixpanel.token': 'Token do Mixpanel (deixe em branco para configurar depois)',
    'new.firebase.q.facebook.appId': 'App ID do Facebook',
    'new.firebase.q.facebook.appId.required': 'App ID do Facebook é obrigatório.',
    'new.firebase.q.facebook.appId.invalid': 'App ID do Facebook deve ser numerico (ex: 1234567890).',
    'new.firebase.q.facebook.token': 'Token do App Facebook',
    'new.firebase.q.facebook.token.required': 'Token do App Facebook é obrigatório.',
    'new.firebase.q.revenuecat.android.required': 'Chave Android do RevenueCat é obrigatória.',
    'new.firebase.q.revenuecat.ios.required': 'Chave iOS do RevenueCat é obrigatória.',
    'new.firebase.q.revenuecat.metaDataset.invalid': 'Pixel ID deve ser numerico (ex: 1234567890).',
    'new.firebase.q.revenuecat.webKey.invalid': 'Chave Web Billing deve começar com rcb_ (ex: rcb_sb_xxx ou rcb_xxx).',

    'new.firebase.confirm.title': 'Resumo da configuração:',
    'new.firebase.confirm.app': 'App',
    'new.firebase.confirm.bundleId': 'Bundle ID',
    'new.firebase.confirm.project': 'Firebase',
    'new.firebase.confirm.modules': 'Features',
    'new.firebase.confirm.none': 'nenhum',
    'new.firebase.confirm.proceed': 'Criar o projeto agora?',

    'new.firebase.step.copying': 'Criando seu projeto...',
    'new.firebase.step.pubGet': 'Instalando pacotes Flutter...',
    'new.firebase.step.buildRunner': 'Gerando código (Riverpod/Freezed)...',
    'new.firebase.step.flutterfire': 'Configurando Firebase (flutterfire)...',
    'new.firebase.step.deploy': 'Fazendo deploy das Cloud Functions + regras do Firestore...',
    'new.firebase.step.done': 'Pronto!',

    'new.firebase.success.title': '🎉 Seu app está pronto!',
    'new.firebase.success.open': 'Abra o projeto:',
    'new.firebase.success.run': 'Rode o app:',
    'new.firebase.success.runMake': 'Ou use make: make run | make run-ios | make run-android',
    'new.firebase.success.deviceSetup': 'Antes de rodar em dispositivo:',
    'new.firebase.success.deviceSetup.ios': 'iOS: conecte o iPhone por cabo → confie neste computador → Xcode → Window → Devices → parear',
    'new.firebase.success.deviceSetup.android': 'Android: Configurações → Opções do desenvolvedor → ativar depuração USB',
    'new.firebase.success.hotReload': "Hot reload: pressione 'r' no terminal enquanto o app roda. Mudanças aparecem na hora.",
    'new.firebase.success.oneLiner': 'Ou copie e cole para entrar e executar:',
    'new.firebase.success.configure': 'Configure quando quiser:',
    'new.firebase.success.alreadyDone': 'Já configurado pela CLI:',
    'new.firebase.success.manualNeeded': 'Configure manualmente (se necessário):',
    'new.firebase.success.apn': '• Chave APN (push iOS): Firebase Console → Config. do Projeto → Cloud Messaging',
    'new.firebase.success.social': '• Ative o login social no Firebase Console → Authentication (Google e Apple já estão no código; so ative la)',
    'new.firebase.success.googleSignIn': '• Login com Gmail: 1) Ative em Firebase Console → Auth → Sign-in method → Google. 2) O CLI preenche kGoogleWebClientId (google_auth_options.dart) do google-services.json para Android/iOS. Web usa signInWithPopup.',
    'new.firebase.success.sentry': '• Sentry: Para relatórios de erro em produção. Pegue o DSN em sentry.io. Já no launch.json para dev. Para release: --dart-define=SENTRY_DSN=xxx',
    'new.firebase.success.mixpanel': '• Mixpanel: Para analytics em produção. Já no launch.json para dev. Para release: --dart-define=MIXPANEL_TOKEN=xxx',
    'new.firebase.success.web': '• Web (adicional): Android e iOS funcionam normalmente. Para testar no browser: "flutter run -d chrome" ou "flutter run -d web-server --web-port=5000". Para publicar: "flutter build web". Notificações push são exclusivas de mobile e desativadas automaticamente na web.',

    'new.firebase.q.deploy': 'Fazer deploy das Cloud Functions + regras do Firestore agora?',
    'new.firebase.q.deploy.hint': 'Requer plano Blaze e firebase-tools instalado globalmente',
    'new.firebase.deployFailed.hint': 'Se o deploy falhou: crie Firestore e Storage no Console primeiro:',
    'new.firebase.deployFailed.firestore': '• Firestore: crie o banco (Criar banco → Modo Nativo)',
    'new.firebase.deployFailed.storage': '• Storage: clique em Começar',
    'new.firebase.deployFailed.orGcloud': 'Ou crie o Firestore via CLI:',
    'new.firebase.success.deployLater': '• Deploy do backend quando estiver pronto (de dentro da pasta do projeto):',
    'new.firebase.success.beforeDeploy': 'Antes do firebase deploy, ative (clique para abrir):',
    'new.firebase.success.secretManager': '• Secret Manager API',
    'new.firebase.success.firestore': '• Firestore (crie o banco se não existir)',
    'new.firebase.success.storage': '• Firebase Storage (Começar)',
    'new.firebase.success.auth': '• Firebase Authentication (Email/Senha)',
    'new.firebase.success.security': '🔒 .gitignore exclui .env e outros segredos. Cloud Functions usam secrets no servidor.',

    'new.firebase.interactive.title': '⚠️  Configuração de Nuvem Requerida',
    'new.firebase.interactive.desc': 'Por motivos de segurança e faturamento, o Firebase exige aprovação manual:',
    'new.firebase.interactive.step1': '1. Crie o Banco de Dados (Firestore): ',
    'new.firebase.interactive.step2': '2. Faça upgrade para o plano Blaze (Pay-as-you-go): ',
    'new.firebase.interactive.step3': '3. Confirme que habilitou Auth (Email/Senha): ',
    
    'new.firebase.interactive.prompt1': 'Você já criou o banco Firestore e habilitou a Autenticação no link acima?',
    'new.firebase.interactive.prompt2': 'Você já fez o upgrade pro Plano Blaze? (Obrigatório para deploy de funções)',
    'new.firebase.interactive.googleAuthNote': '* Ative o Google Sign-In manualmente (Email/Senha e Anônimo já foram ativados): ',
    'new.firebase.interactive.billingNeeded': 'Plano Blaze ainda não ativo. Ative no link acima e aguarde a detecção automática.',
    'new.firebase.interactive.billingWaiting': 'Verificando status do Blaze...',
    'new.firebase.interactive.billingTimeout': 'Plano Blaze não confirmado apos o tempo limite. Deploy ignorado — rode manualmente quando estiver pronto.',
    'new.firebase.interactive.authWarn': 'Não foi possível ativar Email/Senha e Anônimo automaticamente. Ative manualmente:',
    'new.firebase.existing.apisFailed': 'Não foi possível ativar APIs:',
    'new.firebase.existing.googleSignInManual': 'Google Sign-In: ative manualmente em Authentication → Sign-in method → Google',

    'new.firebase.interactive.ready': 'Pronto para publicar Push Notifications + Regras agora?',
    'new.firebase.interactive.deploying': 'Fazendo deploy das Cloud Functions + Regras (Storage e Firestore)...',
    'new.firebase.interactive.errorTitle': 'Ocorreu um erro durante o deploy.',
    'new.firebase.interactive.errorHint': 'Verifique se você ativou o Firestore e vinculou um cartão de crédito para o Plano Blaze.',
    'new.firebase.interactive.laterHint': 'Você pode publicar depois abrindo o terminal na pasta do projeto e rodando: ',
    'new.firebase.interactive.skipped': 'Deploy de Funções ignorado. Você pode publicar depois quando quiser.',

    'new.firebase.warn.flutterfire': '⚠️  FlutterFire não conseguiu gerar firebase_options_dev.dart automaticamente.',
    'new.firebase.warn.flutterfire.manual': 'Execute manualmente na pasta do projeto:',

    'new.firebase.error.templateMissing': 'Template Firebase não encontrado em: {path}. Certifique-se de que a pasta Firebase/ existe.',
    'new.firebase.error.dirNotEmpty': 'O diretório "{path}" já existe e não está vazio.',
    'new.firebase.error.aborted': 'Setup cancelado.',

    'new.supabase.prereq.1': '1. Conta Supabase em supabase.com',
    'new.supabase.prereq.2': '2. Supabase CLI + Firebase CLI instalados (ambos obrigatórios)',
    'new.supabase.prereq.3': '3. supabase login + firebase login (Firebase necessário para push)',
    'new.supabase.prereq.login': '   Se criar manualmente: tenha URL e anon key do projeto prontos',
    'new.supabase.loginRequired': '⚠️  Você precisa estar logado para criar projeto. Execute supabase login primeiro.',
    'new.supabase.loginCommand': '   supabase login',
    'new.supabase.success.done.db': '• Banco: tabelas, politicas RLS',
    'new.supabase.success.done.storage': '• Storage: bucket kasy com politicas',
    'new.supabase.success.done.webhook': '• Edge Function revenuecat-webhook',
    'new.supabase.success.done.secrets': '• Secrets da Edge Function (se informados)',
    'new.supabase.success.done.launch': '• launch.json com Sentry, Mixpanel, RevenueCat',
    'new.supabase.success.auth': '• Auth: Email já vem ativado. Ative Google, Apple e Facebook em: {authUrl}',
    'new.supabase.success.storage': '• Storage: Bucket kasy criado com politicas (já pronto)',
    'new.supabase.success.fcm': '• Push (FCM): Configure no Firebase Console (plano Blaze). App já pronto para Supabase + FCM. URL: {fcmUrl}',
    'new.supabase.success.deployLater': '• Deploy do backend quando estiver pronto (de dentro da pasta do projeto):',

    'new.api.prereq.1': '1. Sua API REST rodando e acessivel',
    'new.api.prereq.2': '2. URL base da API (ex: https://api.yourapp.com)',
    'new.api.prereq.3': '3. Firebase CLI obrigatório para notificações push (FCM)',
    'new.api.success.backendUrl': '• Aponte o BACKEND_URL para sua API (launch.json)',
    'new.api.success.fcm': '• Firebase e necessário para notificações push (FCM) — configure a chave APNs no console do Firebase',
    'new.api.success.auth': '• Implemente os endpoints de auth social (Google, Apple) no seu backend',

    'new.outdated.hint': 'projetos criados agora não terão as últimas melhorias.',
    'new.outdated.upgradeNow': 'Atualizar antes de criar? (requer assinatura ativa)',
    'new.outdated.upgraded': 'kasy atualizado! Rode kasy new novamente.',
    'new.success.title': 'Projeto criado com sucesso!',
    'new.success.nextSteps': 'Proximos passos:',
    'new.success.step.cd': 'Entre na pasta do projeto:',
    'new.success.step.deploy': 'Publique o backend no Firebase:',
    'new.success.step.run': 'Execute o app (com suas chaves configuradas):',
    'new.success.step.run.vscode': '(ou F5 no VS Code)',
    'new.success.step.console': 'Abra o console do backend:',
    'new.fcm.generating': 'Gerando chave de Service Account FCM…',
    'new.sha1.registering': 'Registrando SHA-1 para Google Sign-In (Android)…',
    'new.sha1.failed': 'SHA-1 não adicionado automaticamente: {error}',
    'new.sha1.manual': 'Adicione manualmente para o Google Sign-In funcionar no Android:',
    'new.sha1.skipped.apiFailed': 'SHA-1 não adicionado automaticamente. Motivo: {error}',
    'new.sha1.skipped.other': 'SHA-1 não adicionado: {reason}',
    'new.sha1.addManually': 'Adicione manualmente: Firebase Console → Configurações do projeto → Seus apps → Android → Adicionar impressão digital',
    'new.sha1.added': '✓ SHA-1 adicionado (Google Sign-In)',
    'new.firestore.created': '✓ Firestore criado automaticamente',
    'new.firestore.notCreated.error': '⚠ Firestore não criado. Motivo: {error}',
    'new.firestore.notCreated': '⚠ Firestore não criado automaticamente',
    'new.storage.created': '✓ Firebase Storage criado automaticamente',
    'new.storage.notCreated.error': '⚠ Storage não criado. Motivo: {error}',
    'new.storage.notCreated': '⚠ Storage não criado automaticamente',
    'new.activateManually': 'Ative manualmente no console:',
    'new.fcm.serverConfig': 'Configure no servidor: FIREBASE_SERVICE_ACCOUNT_JSON="$(cat .kasy/fcm-service-account.json)"',
    'new.apns.warning': '⚠  Push iOS: configure a APNs Key no Firebase Console',
    'new.apns.step1': '1. Apple Developer Portal → Keys → criar APNs Key (.p8)',
    'new.apns.step2': '2. Firebase Console → Cloud Messaging → app iOS → fazer upload da APNs Key',
    'new.firebase.create.estimatedTime': '(geralmente 3-5 min — não feche o terminal)',
    'new.internet.warning': '📶  Verifique se você está com uma internet estável — esta etapa precisa de conexão.',

    // run command
    'cli.command.run.description': 'Roda o app no celular, simulador ou navegador',
    'cli.command.reset.description': 'Desinstala o app no simulador/emulador/dispositivo pra testar como primeira instalação',
    'reset.title': 'Resetar app no dispositivo',
    'reset.scanning': 'Procurando simuladores, emuladores e dispositivos conectados...',
    'reset.prompt.pickDevice': 'Em qual deles você quer resetar?',
    'reset.resetting': 'Resetando',
    'reset.reinstalling': 'Reinstalando o app...',
    'reset.success.uninstalled': 'App desinstalado. Todos os dados e permissões foram limpos.',
    'reset.info.notInstalled': 'O app não estava instalado neste dispositivo.',
    'reset.warn.noDevices': 'Nenhum simulador, emulador ou dispositivo em execução. Inicie um e tente de novo.',
    'reset.warn.nothingSelected': 'Nenhum dispositivo selecionado.',
    'reset.warn.iosUninstallFailed': 'simctl uninstall falhou.',
    'reset.warn.androidUninstallFailed': 'adb uninstall não retornou sucesso.',
    'reset.warn.iosDeviceManual': 'iPhone físico: apague o app manualmente (segure o ícone → Remover app), depois reinstale com kasy run.',
    'reset.warn.iosDeviceUninstallFailed': 'devicectl não conseguiu desinstalar. Verifique se o iPhone está desbloqueado e confia neste Mac.',
    'reset.warn.webIncognito': 'Web: abra o app em uma janela anônima/privada do navegador pra testar como visitante novo.',
    'reset.warn.unknownPlatform': 'Plataforma não suportada',
    'reset.error.notFlutterProject': 'Nenhum pubspec.yaml encontrado. Execute este comando dentro de um projeto Flutter.',
    'reset.error.noIdentifier': 'Não consegui ler o bundle id nem o package name Android deste projeto.',
    'reset.error.noBundleId': 'Bundle id do iOS não encontrado.',
    'reset.error.noPackageName': 'applicationId do Android não encontrado.',
    'reset.outro.skipped': 'Pronto. O app não foi desinstalado.',
    'reset.outro.uninstalledOnly': 'Pronto. Rode kasy run pra reinstalar.',
    'reset.outro.cancelled': 'Cancelado. O app não foi desinstalado.',
    'reset.prompt.xcodeOpen': 'O Xcode está aberto e vai atrapalhar a instalação. O que você quer fazer?',
    'reset.prompt.xcodeOpen.close': 'Fechar o Xcode automaticamente (recomendado)',
    'reset.prompt.xcodeOpen.skip': 'Deixar o Xcode aberto e tentar mesmo assim',
    'reset.prompt.xcodeOpen.cancel': 'Cancelar o reset',
    'reset.info.xcodeClosed': 'Xcode fechado.',
    'reset.prompt.reinstallNow': 'App removido. Confere no dispositivo e reinstala agora?',
    'reset.prompt.clearLauncherCache': 'Limpar também o cache do launcher ({pkg})? Resolve preview cinza de widgets.',
    'reset.success.launcherCleared': 'Cache do launcher limpo ({pkg}). Tela inicial mantida.',
    'reset.warn.launcherCacheFailed': 'Não foi possível limpar o cache do launcher.',
    'reset.warn.launcherNotDetected': 'Launcher padrão não detectado — pulando limpeza de cache.',
    'run.launching': 'Iniciando app Flutter...',
    'run.prompt.pickDevice': 'Vários dispositivos detectados. Em qual deles rodar?',
    'run.warn.nothingSelected': 'Nenhum dispositivo selecionado.',
    'run.updateHint.prefix': 'Melhorias disponíveis para o projeto —',
    'run.updateHint.suffix': 'para ver o que há de novo',
    'run.spinner.building': 'Iniciando Flutter…',
    'run.spinner.ready': 'Flutter pronto — use r (reload), R (restart), q (sair)',
    'run.spinner.failed': 'Flutter run falhou antes de iniciar',
    'run.stage.gradleFirstTime': 'Compilando Android (1ª vez leva 5-15 min — Gradle baixando dependências)…',
    'run.stage.gradle': 'Compilando Android…',
    'run.stage.xcode': 'Compilando iOS…',
    'run.stage.pods': 'Instalando pods iOS…',
    'run.stage.installing': 'Instalando no dispositivo…',
    'run.stage.syncing': 'Sincronizando arquivos com o dispositivo…',
    'run.stage.buildSuccess': 'Build pronto — abrindo o app…',
    'run.error.notFlutterProject': 'Nenhum pubspec.yaml encontrado. Execute este comando dentro de um projeto Flutter.',
    'run.error.flutterNotFound': 'Flutter não encontrado. Verifique se o Flutter está instalado e no PATH.',
    'run.rc.usingTest': 'RevenueCat: usando chave de teste (test_) — simulador/emulador',
    'run.rc.usingProd': 'RevenueCat: usando chaves de produção — dispositivo físico',
    'run.rc.fallbackToTest': 'RevenueCat: chave de produção ausente ({platform}) — caindo para test_; configure RC_{var} no .env para testar in-app purchase real',
    'run.rc.forcedTest': 'RevenueCat: --rc=test forçado',
    'run.rc.forcedProd': 'RevenueCat: --rc=prod forçado',
    'run.rc.forcedProdMissing': 'RevenueCat: --rc=prod pedido mas RC_IOS_PROD_KEY/RC_ANDROID_PROD_KEY não configuradas no .env',

    // doctor project checks
    'doctor.project.title': 'Projeto',
    'doctor.project.appName': 'Nome do app',
    'doctor.project.backend': 'Backend',
    'doctor.project.bundleId': 'Bundle ID',
    'doctor.project.pubGet': 'Dependencias instaladas (pubspec.lock presente)',
    'doctor.project.pubGetMissing': 'Execute flutter pub get — pubspec.lock não encontrado',
    'doctor.project.modules': 'Features ativas',
    'doctor.project.noModules': 'Nenhuma feature opcional ativa',

    // add command
    'cli.command.add.description': 'Adiciona algo novo ao app (ex: kasy add ai_chat)',

    // docs command
    'cli.command.docs.description': 'Abre a documentação completa',

    // splash command
    'cli.command.splash.description': 'Troca os logos da splash (claro/escuro) e regenera os assets nativos',
    'splash.intro': 'Splash screen',
    'splash.validating': 'Validando arquivos PNG...',
    'splash.validated': 'PNGs estão bons',
    'splash.copying': 'Copiando logos para assets/images/...',
    'splash.copied': 'Logos copiados',
    'splash.android12Generating': 'Gerando variantes com padding para Android 12+...',
    'splash.android12Generated': 'Variantes Android 12+ geradas',
    'splash.generating': 'Regenerando splash nativa (Android, iOS, Web)...',
    'splash.generated': 'Splash nativa regenerada',
    'splash.done': 'Pronto. Rode "flutter run" para ver a nova splash.',
    'splash.warn.title': 'Avisos',
    'splash.warn.noAlphaLight': '{path} não tem canal alpha (fundo transparente). O logo vai aparecer com fundo sólido em vez de transparente.',
    'splash.warn.noAlphaDark': '{path} não tem canal alpha (fundo transparente). O logo vai aparecer com fundo sólido em vez de transparente.',
    'splash.warn.smallLight': 'Logo claro tem {w}x{h}. Recomendado pelo menos 768x768 para evitar bordas borradas.',
    'splash.warn.smallDark': 'Logo escuro tem {w}x{h}. Recomendado pelo menos 768x768 para evitar bordas borradas.',
    'splash.summary.title': 'Salvo',
    'splash.summary.light': 'Modo claro',
    'splash.summary.dark': 'Modo escuro',
    'splash.skipGenerate.title': 'Geração pulada',
    'splash.skipGenerate.hint': 'Rode `dart run flutter_native_splash:create` quando quiser regenerar.',
    'splash.error.notKasyProject': 'pubspec.yaml não encontrado. Rode este comando dentro de um projeto Flutter/Kasy.',
    'splash.error.bothRequired': '--light e --dark são obrigatórios.',
    'splash.error.fileNotFound': 'Arquivo não encontrado: {path}',
    'splash.error.notPng': 'Um dos arquivos não é um PNG válido.',
    'splash.error.generateFailed': 'flutter_native_splash:create falhou. Veja a saída acima.',

    // icon command
    'cli.command.icon.description': 'Troca o ícone do app (iOS + Android) e regenera os assets nativos',
    'icon.intro': 'Ícone do app',
    'icon.validating': 'Validando arquivo PNG...',
    'icon.validated': 'PNG está bom',
    'icon.copying': 'Copiando ícone para assets/images/icon.png...',
    'icon.copied': 'Ícone copiado',
    'icon.adaptive.generating': 'Gerando versão adaptive para Android (preenche o círculo do launcher)...',
    'icon.adaptive.generated': 'Adaptive icon Android gerado',
    'icon.adaptive.failed': 'Falha ao gerar adaptive icon Android',
    'icon.adaptive.fallbackTitle': 'Fundo Android',
    'icon.adaptive.fallbackColor': 'Não consegui amostrar a cor de fundo do PNG (transparente). Usei branco. Se quiser outra cor, edite icon_android.png à mão.',
    'icon.generating': 'Regenerando ícones nativos (Android + iOS)...',
    'icon.generated': 'Ícones nativos regenerados',
    'icon.done': 'Pronto. Desinstale o app do dispositivo e reinstale para ver o novo ícone.',
    'icon.warn.title': 'Avisos',
    'icon.warn.notSquare': 'Ícone tem {w}x{h} (não é quadrado). A imagem vai ser esticada. Use uma imagem quadrada (1024x1024 recomendado).',
    'icon.warn.small': 'Ícone tem {w}x{h}. Recomendado pelo menos 1024x1024 (App Store exige esse tamanho).',
    'icon.warn.hasAlpha': 'Ícone tem transparência. iOS rejeita ícones com canal alpha — flutter_launcher_icons remove automaticamente (remove_alpha_ios: true).',
    'icon.summary.title': 'Salvo',
    'icon.summary.icon': 'Ícone do app',
    'icon.skipGenerate.title': 'Geração pulada',
    'icon.skipGenerate.hint': 'Rode `dart run flutter_launcher_icons` quando quiser regenerar.',
    'icon.reinstall.title': 'Importante',
    'icon.reinstall.hint': 'iOS e Android cacheiam o ícone antigo. Desinstale o app e reinstale para ver o novo.',
    'icon.error.notKasyProject': 'pubspec.yaml não encontrado. Rode este comando dentro de um projeto Flutter/Kasy.',
    'icon.error.imageRequired': '--image é obrigatório.',
    'icon.error.fileNotFound': 'Arquivo não encontrado: {path}',
    'icon.error.notPng': 'O arquivo não é um PNG válido.',
    'icon.error.generateFailed': 'flutter_launcher_icons falhou. Veja a saída acima.',

    // favicon command
    'cli.command.favicon.description': 'Troca o favicon / ícone PWA da web e regenera os assets web',
    'favicon.intro': 'Favicon web',
    'favicon.validating': 'Validando arquivo PNG...',
    'favicon.validated': 'PNG está bom',
    'favicon.copying': 'Copiando favicon para assets/images/favicon.png...',
    'favicon.copied': 'Favicon copiado',
    'favicon.generating': 'Regenerando ícones web (favicon + tamanhos PWA)...',
    'favicon.generated': 'Ícones web regenerados',
    'favicon.done': 'Pronto. Rode "flutter run -d chrome" para ver o novo favicon.',
    'favicon.warn.title': 'Avisos',
    'favicon.warn.notSquare': 'Favicon tem {w}x{h} (não é quadrado). Vai ser esticado. Use uma imagem quadrada (512x512+ recomendado).',
    'favicon.warn.small': 'Favicon tem {w}x{h}. Recomendado pelo menos 512x512 para ficar nítido nas telas de instalação da PWA.',
    'favicon.summary.title': 'Salvo',
    'favicon.summary.favicon': 'Favicon',
    'favicon.skipGenerate.title': 'Geração pulada',
    'favicon.skipGenerate.hint': 'Rode `dart run flutter_launcher_icons` quando quiser regenerar.',
    'favicon.error.notKasyProject': 'pubspec.yaml não encontrado. Rode este comando dentro de um projeto Flutter/Kasy.',
    'favicon.error.imageRequired': '--image é obrigatório.',
    'favicon.error.fileNotFound': 'Arquivo não encontrado: {path}',
    'favicon.error.notPng': 'O arquivo não é um PNG válido.',
    'favicon.error.generateFailed': 'flutter_launcher_icons falhou. Veja a saída acima.',

    // notifications command
    'cli.command.notifications.description': 'Edita os textos das notificações locais e lembretes',
    'cli.command.notifications.text.description': 'Define títulos e mensagens das notificações locais',
    'cli.command.notifications.picker.intro': 'Editar textos das notificações',
    'cli.command.notifications.picker.message': 'O que você quer fazer?',
    'notifications.error.notKasyProject': 'kit_setup.json não encontrado. Execute dentro de um projeto Kasy.',
    'notifications.error.noI18n': 'lib/i18n/*.i18n.json não encontrado neste projeto.',
    'notifications.error.noFeatures': 'lib/core/config/features.dart não encontrado.',
    'notifications.error.notEnabled': 'Notificações locais desativadas. Execute: kasy add local_notifications',
    'notifications.error.cancelled': 'Cancelado.',
    'notifications.prompt.intro': 'Textos de notificação local',
    'notifications.prompt.hint': 'Demo Home = teste instantâneo em Features. Lembrete = alerta agendado em Configurações.',
    'notifications.prompt.demoTitle': 'Demo Home — título da notificação',
    'notifications.prompt.demoBody': 'Demo Home — descrição / corpo',
    'notifications.prompt.reminderTitle': 'Lembrete agendado — título',
    'notifications.prompt.reminderBody': 'Lembrete agendado — corpo',
    'notifications.prompt.required': 'Obrigatório.',
    'notifications.writing': 'Atualizando lib/i18n/*.i18n.json...',
    'notifications.written': 'Atualizado: {langs}',
    'notifications.slang': 'Executando dart run slang...',
    'notifications.slangDone': 'Traducoes regeneradas',
    'notifications.slangFailed': 'dart run slang falhou — execute manualmente no projeto',
    'notifications.done': 'Textos de notificação local atualizados.',
    'notifications.summary.demo': 'Home → Features (demo):',
    'notifications.summary.reminder': 'Configurações → Lembretes (agendado):',

    'add.list.title': 'Features do projeto',
    'add.error.noModule': 'Informe o nome da feature ou use --list para ver as disponíveis.',
    'add.error.notKasyProject': 'kit_setup.json não encontrado. Execute este comando dentro de um projeto Kasy.',
    'add.error.unknownModule': 'Feature desconhecida: {module}\nDisponiveis: {list}',
    'add.alreadyActive': 'A feature "{module}" já está ativa neste projeto.',
    'add.applying': 'Adicionando feature: {module}',
    'add.applyingPatch': 'Aplicando mudanças da feature...',
    'add.patchApplied': 'Patch aplicado',
    'add.patchFailed': 'Patch falhou — verifique a saída acima',
    'add.pubGet': 'Instalando pacotes do Flutter (flutter pub get)...',
    'add.pubGetDone': 'Dependencias atualizadas',
    'add.pubGetFailed': 'Falha ao instalar pacotes do Flutter — execute `flutter pub get` manualmente',
    'add.buildRunner': 'Gerando código (Riverpod/Freezed)...',
    'add.buildRunnerDone': 'Geração de código concluída',
    'add.buildRunnerFailed': 'Geração de código falhou — execute `dart run build_runner build` manualmente',
    'add.success': 'Feature "{module}" adicionada com sucesso.',
    'add.cancelled': 'Cancelado.',
    'add.prompt.sentryDsn': 'Sentry DSN (deixe em branco para configurar depois):',
    'add.prompt.mixpanelToken': 'Mixpanel Token (deixe em branco para configurar depois):',
    'add.prompt.rcTestKey': 'Chave Test Store (test_xxx) — opcional, serve pra iOS+Android e simulador:',
    'add.prompt.rcIosProdKey': 'Chave iOS de produção (appl_xxx) — opcional, só em dispositivo físico:',
    'add.prompt.rcAndroidProdKey': 'Chave Android de produção (goog_xxx) — opcional, só em dispositivo físico:',
    // Legacy keys — kept for compatibility with old scripts.
    'add.prompt.rcAndroidKey': 'RevenueCat Android API key (deixe em branco para configurar depois):',
    'add.prompt.rcIosKey': 'RevenueCat iOS API key (deixe em branco para configurar depois):',
    'add.note.facebook': 'Adicione seu Facebook App ID e token no .vscode/launch.json (FB_APP_ID, FB_TOKEN).',
    'new.q.llm_chat.configureNow': 'Configurar o agente de Chat LLM agora?',
    'new.q.llm_chat.configureNow.hint': 'Pode pular e executar "kasy add llm_chat" depois',
    'add.llm_chat.reconfigure': 'Feature já ativa — reconfigurando apenas as credenciais.',
    'add.prompt.llmProvider': 'Provedor de LLM:',
    'add.prompt.llmSystemPrompt': 'Instrução do agente — system prompt (deixe em branco para nenhuma):\n  Exemplo: "Você e um assistente de suporte do app Fitsync. Responda apenas sobre treinos."\n >',
    'add.prompt.llmApiKey': 'Chave de API (OpenAI ou Gemini) — fica no servidor, nunca no app (deixe em branco para configurar depois):',
    'add.prompt.llmEndpoint': 'URL do seu endpoint LLM (deixe em branco para configurar depois):',
    'add.llm_chat.settingSecret': 'Salvando chave de API como secret no servidor...',
    'add.llm_chat.secretSet': 'Chave de API salva como secret',
    'add.llm_chat.secretFailed': 'Não foi possível salvar o secret automaticamente — configure manualmente (veja instruções abaixo)',
    'add.llm_chat.skipSecret': 'Chave de API ignorada — configure antes do deploy via CLI do servidor',
    'add.llm_chat.deploying': 'Fazendo deploy da função LLM no servidor...',
    'add.llm_chat.deployed': 'Função LLM deployada com sucesso',
    'add.llm_chat.deployFailed': 'Deploy automático falhou — faca o deploy manualmente (veja instruções abaixo)',
    'add.llm_chat.nextSteps.firebase': '\n  Proximos passos:\n  1. O LLM_CHAT_ENDPOINT no .vscode/launch.json já foi preenchido.\n  2. Rode o app: kasy run\n',
    'add.llm_chat.nextSteps.firebase.deployFailed': '\n  Proximos passos:\n  1. Deploy manual: firebase deploy --only functions:llmChat\n  2. O LLM_CHAT_ENDPOINT no .vscode/launch.json já foi preenchido.\n  3. Rode o app: kasy run\n',
    'add.llm_chat.nextSteps.supabase': '\n  Proximos passos:\n  1. O LLM_CHAT_ENDPOINT no .vscode/launch.json já foi preenchido.\n  2. Rode o app: kasy run\n',
    'add.llm_chat.nextSteps.supabase.deployFailed': '\n  Proximos passos:\n  1. Deploy manual: supabase functions deploy llm-chat --no-verify-jwt\n  2. O LLM_CHAT_ENDPOINT no .vscode/launch.json já foi preenchido.\n  3. Rode o app: kasy run\n',
    'add.llm_chat.nextSteps.api': '\n  Proximos passos:\n  1. Crie um endpoint no seu servidor que aceite {message, history} e chame sua LLM.\n  2. Atualize LLM_CHAT_ENDPOINT no .vscode/launch.json com a URL do seu endpoint.\n  3. Rode o app: kasy run\n',
    'cli.command.remove.description': 'Remove algo que você não usa mais (ex: kasy remove sentry)',
    'remove.error.noModule': 'Informe o nome da feature. Uso: kasy remove <feature>',
    'remove.error.notKasyProject': 'kit_setup.json não encontrado. Execute este comando dentro de um projeto Kasy.',
    'remove.error.unknownModule': 'Feature desconhecida: {module}\nDisponiveis: {list}',
    'remove.error.notActive': 'A feature "{module}" não está ativa neste projeto.',
    'remove.confirm': 'Remover a feature "{module}"? Isso vai deletar arquivos e dependências.',
    'remove.cancelled': 'Cancelado.',
    'remove.removing': 'Removendo feature: {module}',
    'remove.pubGet': 'Instalando pacotes do Flutter (flutter pub get)...',
    'remove.pubGetDone': 'Dependencias atualizadas',
    'remove.pubGetFailed': 'Falha ao instalar pacotes do Flutter — execute `flutter pub get` manualmente',
    'remove.buildRunner': 'Gerando código (Riverpod/Freezed)...',
    'remove.buildRunnerDone': 'Geração de código concluída',
    'remove.buildRunnerFailed': 'Geração de código falhou — execute `dart run build_runner build` manualmente',
    'remove.success': 'Feature "{module}" removida com sucesso.',
    'remove.warn.ci': 'Arquivos de CI removidos. Se tinha workflows customizados, restaure-os pelo git.',
    'remove.warn.sentry.shared': 'sentry_flutter mantido — ainda necessário para features ativas (revenuecat/facebook).',
    'cli.command.update.description': 'Atualiza partes do app para a última versão (ex: kasy update components)',
    'cli.command.update.targetArg': 'Alvo para atualizar (ex.: revenuecat, sentry, components)',
    'update.error.noProject': 'kit_setup.json não encontrado. Execute dentro de um projeto Kasy.',
    'update.error.unknownModule': 'Feature desconhecida: {module}\nDisponíveis: {list}',
    'update.error.unknownTarget': 'Alvo de atualização desconhecido: {module}\nDisponiveis: {list}',
    'update.error.notActive': 'A feature "{module}" não está ativa neste projeto.',
    'update.alreadyUpToDate': 'Projeto já está atualizado (v{version}).',
    'update.status': 'Projeto: v{from}  →  CLI: v{to}',
    'update.noVersion': 'Projeto foi gerado sem rastreamento de versão. Todas as features podem ser atualizadas.',
    'update.changesTitle': 'Atualizações disponíveis:',
    'update.reapplyTitle': 'Sem mudancas novas — pode reaplicar se precisar:',
    'update.howToUpdate': 'Para atualizar uma feature:',
    'update.howToUpdateComponents': 'Para atualizar componentes base:',
    'update.warn.commit': 'Isso vai sobrescrever os arquivos da feature "{module}". Faca commit de tudo antes de continuar.',
    'update.warn.commitComponents': 'Isso vai sobrescrever arquivos dos componentes base. Faca commit de tudo antes de continuar.',
    'update.confirm': 'Sobrescrever arquivos da feature "{module}" com a versão mais recente?',
    'update.confirmComponents': 'Sobrescrever arquivos dos componentes base com a versão mais recente?',
    'update.confirmCore': 'Sobrescrever arquivos do core (animacoes, widgets, tema, ferramentas de dev) com a versão mais recente?',
    'update.cancelled': 'Cancelado.',
    'update.applying': 'Aplicando atualização da feature: {module}',
    'update.applyingComponents': 'Aplicando atualização dos componentes base...',
    'update.applyingCore': 'Aplicando atualização dos arquivos de core...',
    'update.applied': 'Feature {module} atualizada',
    'update.appliedComponents': '{count} arquivos de componentes base atualizados',
    'update.appliedCore': '{count} arquivos de core atualizados',
    'update.applyFailed': 'Falha ao aplicar atualização da feature {module}',
    'update.applyComponentsFailed': 'Falha ao aplicar atualização dos componentes base',
    'update.noPatch': 'Feature "{module}" não tem arquivos para atualizar (feature so de configuração).',
    'update.noComponentFiles': 'Nenhum arquivo de componente base foi encontrado para atualizar.',
    'update.pubGet': 'Instalando pacotes do Flutter (flutter pub get)...',
    'update.pubGetDone': 'Dependencias atualizadas',
    'update.pubGetFailed': 'Falha ao instalar pacotes do Flutter — execute `flutter pub get` manualmente',
    'update.buildRunner': 'Gerando código (Riverpod/Freezed)...',
    'update.buildRunnerDone': 'Geração de código concluída',
    'update.buildRunnerFailed': 'Geração de código falhou — execute `dart run build_runner build` manualmente',
    'update.success': 'Feature "{module}" atualizada com sucesso.',
    'update.componentsSuccess': 'Componentes base atualizados com sucesso.',
    'update.coreSuccess': 'Arquivos de core atualizados com sucesso.',
    'check.intro': 'Kasy Check — Notificações Push',
    'check.firebase.detected': 'Backend Firebase',
    'check.firebase.adcInfo': 'Firebase usa Application Default Credentials — nenhuma configuração extra necessária.',
    'check.apns.warn': 'Push iOS requer APNs Key (não verificável via CLI)',
    'check.apns.where': 'Firebase Console → Cloud Messaging → app iOS → Chave de autenticação APNs',
    'check.done': 'Pronto',
    'check.notKasy': 'Esse diretório não parece ser um projeto Kasy.',
    'check.aborted': 'Cancelado',
    'check.supabase.notLinked': 'Projeto Supabase não vinculado',
    'check.supabase.notLinkedHint': 'execute: supabase link --project-ref SEU_REF',
    'check.supabase.linked': 'Projeto vinculado',
    'check.spin.secrets': 'Verificando secrets…',
    'check.spin.secretsDone': 'Secrets verificados',
    'check.secrets.listFailed': 'Não foi possível listar secrets',
    'check.secrets.checkLogin': 'verifique: supabase login',
    'check.fbProjId.ok': 'FIREBASE_PROJECT_ID configurado',
    'check.fbProjId.missing': 'FIREBASE_PROJECT_ID ausente',
    'check.fbProjId.fixHint': 'Corrija: supabase secrets set FIREBASE_PROJECT_ID="{id}"',
    'check.fbProjId.fixed': 'FIREBASE_PROJECT_ID → configurado automaticamente',
    'check.fbProjId.fixFailed': 'FIREBASE_PROJECT_ID → falhou ao configurar',
    'check.fbSak.ok': 'FIREBASE_SERVICE_ACCOUNT_JSON configurado',
    'check.fbSak.missing': 'FIREBASE_SERVICE_ACCOUNT_JSON ausente',
    'check.fbSak.spin': 'Gerando e configurando chave FCM…',
    'check.fbSak.spinDone': 'Chave FCM gerada',
    'check.fbSak.fixed': 'FIREBASE_SERVICE_ACCOUNT_JSON → configurado automaticamente',
    'check.fbSak.fixFailed': 'FIREBASE_SERVICE_ACCOUNT_JSON → falhou ao configurar',
    'check.fbSak.genFailed': 'FIREBASE_SERVICE_ACCOUNT_JSON → não foi possível gerar chave',
    'check.fbSak.manual': "Manual: Firebase Console → Configurações → Contas de serviço → Gerar chave\nDepois: supabase secrets set FIREBASE_SERVICE_ACCOUNT_JSON='$(cat chave.json)'",
    'check.fbSak.hint': "Corrija automaticamente: kasy check --fix\nOu manualmente: Firebase Console → Configurações → Contas de serviço → Gerar chave\nDepois: supabase secrets set FIREBASE_SERVICE_ACCOUNT_JSON='$(cat chave.json)'",
    'check.fn.spin': 'Verificando edge functions…',
    'check.fn.spinDone': 'Edge functions verificadas',
    'check.fn.listFailed': 'Não foi possível listar edge functions',
    'check.fn.deployed': 'Edge function send-push-notification deployada',
    'check.fn.missing': 'Edge function send-push-notification não deployada',
    'check.fn.deploySpin': 'Publicando send-push-notification…',
    'check.fn.deployDone': 'send-push-notification → deployada automaticamente',
    'check.fn.deployFailed': 'send-push-notification → falhou no deploy',
    'check.fn.hint': 'Corrija automaticamente: kasy check --fix\nOu manualmente: supabase functions deploy send-push-notification',
    'deploy.firebase.intro': 'Deploy — Firebase',
    'deploy.firebase.spin': 'Publicando no Firebase...',
    'deploy.firebase.spinDone': 'Deploy do Firebase concluído',
    'deploy.apns.title': 'Push iOS: configure a APNs Key no Firebase Console',
    'deploy.apns.step1': '1. Apple Developer Portal → Keys → criar APNs Key (.p8)',
    'deploy.apns.step2': '2. Firebase Console → Cloud Messaging → app iOS → upload da APNs Key',
    'deploy.supabase.intro': 'Deploy — Supabase',
    'deploy.supabase.notLinked': 'Projeto Supabase não está vinculado neste diretório.',
    'deploy.supabase.linkHint': 'Execute: supabase link --project-ref SEU_PROJECT_REF',
    'deploy.supabase.projectRef': 'Project ref: {ref}',
    'deploy.supabase.sakAlready': 'FIREBASE_SERVICE_ACCOUNT_JSON já configurado',
    'deploy.supabase.sakSpin': 'Gerando chave FCM (Service Account)…',
    'deploy.supabase.sakSpinDone': 'Chave FCM gerada',
    'deploy.supabase.sakManual': "Configure manualmente: supabase secrets set FIREBASE_SERVICE_ACCOUNT_JSON='...'",
    'deploy.supabase.sakNoGS': 'google-services.json não encontrado — configure manualmente',
    'deploy.supabase.fnSpin': 'Publicando edge functions…',
    'deploy.supabase.fnSpinDone': 'Edge functions processadas',
    'deploy.supabase.fnNone': 'edge functions (nenhuma encontrada)',
    'deploy.outro': 'Deploy concluído',
};
