"use strict";

/**
 * Kasy CLI i18n messages — English.
 *
 * 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': 'Create mobile apps without setup pain',
    'cli.description': 'Build Flutter apps without setup pain.',
    'cli.usage': '<command> [arguments]',
    'cli.option.version': 'Show installed version',
    'cli.option.lang': 'Language (en, pt, es)',
    'cli.help.afterError': '(run with --help for usage details)',
    'cli.help.more': 'Run "{command}" for details about a specific command.',
    'cli.help.quickStart': 'Quick start - create a new app:',
    'cli.help.optionDescription': 'Show help for command',
    'cli.help.commandDescription': 'Show help for command',
    'cli.help.inline.options': '[options]',
    'cli.help.heading.usage': 'Usage',
    'cli.help.heading.arguments': 'Arguments',
    'cli.help.heading.options': 'Options',
    'cli.help.heading.globalOptions': 'Global Options',
    'cli.help.heading.commands': 'Commands',
    'cli.help.group.start': 'Get started',
    'cli.help.group.work': 'Work on your app',
    'cli.help.group.publish': 'Publish & test',
    'cli.help.group.maintenance': 'Kasy CLI maintenance',
    'cli.help.group.advanced': 'Advanced',
    'cli.help.group.other': 'Other',
    'cli.help.tip': 'Tip: run `kasy <command> --help` for details. Use --lang pt|en|es to switch language.',
    'cli.command.setup.description': '(advanced) Set up an existing Flutter project',
    'cli.command.new.description': 'Create a new app (e.g.: kasy new my-app)',
    'cli.command.new.projectName': 'project name',
    'cli.command.new.projectNameArg': 'Project folder name',
    'prompt.projectName.enter': "What's your project name?",
    'prompt.projectName.required': 'Project name is required.',
    'prompt.projectName.default': 'my_app',
    'cli.command.setup.directoryName': 'directory',
    'cli.command.setup.directoryArg': 'Target directory (default: current folder .)',
    'cli.command.setup.langName': 'lang',
    'cli.command.setup.langOption': 'Prompt language (en, pt, es)',
    'cli.command.setup.backendOption': 'Backend adapter (firebase, supabase, api)',
    'cli.command.setup.featuresOption': 'Comma separated optional features (web,widget,llm_chat,revenuecat,ci)',
    'cli.command.help.paramName': 'command',
    'cli.command.doctor.description': 'Check if your computer is ready to run Kasy',
    'cli.command.modules.description': 'Show what comes included and what you can add',
    'cli.command.validate.description': '(advanced) Validate backend + feature combinations',
    'cli.command.validate.analyzeOnlyOption': 'Run flutter analyze only (skip builds)',
    'cli.command.version.description': 'Show the installed Kasy version',
    'cli.command.upgrade.description': 'Update the Kasy CLI to the latest version',
    'cli.command.uninstall.description': 'Uninstall Kasy from this computer',
    'cli.command.upgrade.running': 'Updating kasy CLI...',
    'cli.command.upgrade.done': 'kasy updated successfully!',
    'cli.command.uninstall.running': 'Uninstalling kasy CLI...',
    'cli.command.uninstall.done': 'kasy uninstalled. Goodbye!',
    'new.checks.environment': 'Environment checks',
    'new.checks.environment.checking': 'Checking environment',
    'new.checks.environment.done': 'Environment ready',
    'setup.checks.backend.checking': 'Checking {backend} tools',
    'setup.checks.backend.done': '{backend} tools ready',
    'new.checks.firebaseForPush': 'Note: Firebase CLI is required for push notifications (Firebase Cloud Messaging / FCM) on all backends.',
    'new.checks.requiredBlock': 'Required tools are missing. Install them to continue.',
    '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 (or brew install supabase/tap/supabase) && supabase login',
    'new.checks.installSupabase.darwin': 'Supabase: brew install supabase/tap/supabase && supabase login (or 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': 'Environment checks',
    'setup.checks.prepareFirebase': 'Firebase tooling (push, remote config)',
    'setup.checks.backend': 'Backend checks ({backend})',
    'setup.firebase.installing': 'Installing Firebase CLI...',
    'setup.supabase.installing': 'Installing Supabase CLI...',
    'setup.flutterfire.installing': 'Installing FlutterFire CLI...',
    'setup.warn.hang': 'If setup stalls, run manually: flutterfire --version',
    'setup.warn.supabase': 'Using Supabase or custom API? Firebase still helps with push notifications and remote config.',
    'doctor.title': 'Kasy Doctor',
    'doctor.baseEnvironment': 'Base environment',
    'doctor.optionalBackend': 'Optional backend tooling',
    'doctor.requiredMissing': 'Missing required dependencies. Fix the errors above and rerun doctor.',
    'doctor.requiredPassed': '✓ Required environment checks passed.',
    'modules.backends': 'Available backends:',
    'modules.featuresBase': 'Always included:',
    'modules.features': 'Optional features:',
    'modules.tag.firebaseOnly': 'Firebase only',
    'modules.tag.requiresDb': 'requires Firebase or Supabase',
    'modules.tag.enhances': 'enables {target}',
    'modules.hint.subscriptionNoRc': 'Tip: Subscriptions screen is included but inactive. Run `kasy add revenuecat` to enable real payments.',
    'modules.feature.base.authentication.description': 'Sign up, login and account management',
    'modules.feature.base.home.description': 'Main app screen after login',
    'modules.feature.base.settings.description': 'Theme, language, account and preferences',
    'modules.feature.base.notifications.description': 'Push notifications via Firebase Cloud Messaging (works with any backend)',
    'modules.feature.base.subscription.description': 'Premium subscription screen and data model (add RevenueCat to enable real payments)',
    'modules.backend.firebase.description': 'Firebase backend adapter',
    'modules.backend.supabase.description': 'Supabase backend adapter',
    'modules.backend.api.description': 'REST/GraphQL API backend adapter',
    'modules.feature.sentry.description': 'Sentry error tracking and crash reporting',
    'modules.feature.analytics.description': 'Analytics event tracking (Firebase Analytics)',
    'modules.feature.facebook.description': 'Facebook Login and Meta Ads event tracking (always bundled together)',
    'modules.feature.revenuecat.description': 'Enables real in-app payments on the Subscriptions screen',
    'modules.feature.onboarding.description': 'Welcome flow shown on first launch',
    'modules.feature.web.description': 'Web/PWA support',
    'modules.feature.widget.description': 'iOS/Android home screen widget integration',
    'modules.feature.llm_chat.description': 'AI chat screen with OpenAI or Gemini',
    'modules.feature.feedback.description': 'In-app feature requests and voting',
    'modules.feature.local_notifications.description': 'Local reminders scheduled by the user (no server required)',
    'modules.feature.ci.description': 'CI/CD: GitHub/GitLab (tests + build) + Codemagic (publish to stores)',
    'checks.checking': 'Checking {name}...',
    'checks.found': '{name} found',
    'checks.foundWithVersion': '{name} ready ({version})',
    'checks.missing': '{name} missing',
    'checks.notFound': '{name} not found',
    'checks.notFound.short': 'not found',
    'checks.runHint': 'Run',
    'checks.stillMissing': 'still not detected',
    'checks.flutter.warn': 'Flutter SDK not found. Install Flutter to build and run apps: https://docs.flutter.dev/get-started/install',
    'checks.install.failed': 'auto-install failed — run the command manually',
    'checks.waitPrompt.gcloud.install': 'After installing gcloud, press Enter to check again',
    'checks.waitPrompt.gcloud.auth': 'After running gcloud auth login, press Enter to check again',
    'error.hint.notFlutterProject': 'You\'re not inside a Flutter project. Try `kasy new` to create one, or cd into an existing one.',
    'error.hint.flutterMissing': 'Flutter is not installed or not on your PATH. Run `kasy doctor` to diagnose.',
    'error.hint.permission': 'A file or folder is read-only. Check the parent directory permissions or try again from your home folder.',
    'error.hint.noSpace': 'Disk is full. Free up space (Flutter/Xcode builds need 5-15 GB) and try again.',
    'error.hint.network': 'Network problem — check your internet connection and try again.',
    'error.hint.firebaseLogin': 'You are not logged into Firebase. Run: firebase login',
    'error.hint.supabaseLogin': 'You are not logged into Supabase. Run: supabase login',
    'error.hint.gcloudAuth': 'You need to authenticate with gcloud. Run: gcloud auth login',
    'error.hint.flutterRunFailed': 'Flutter could not run the app. Run again with --verbose to see the full Flutter output.',
    'checks.diagnostic.xcodeLicense': '{name} is installed, but Xcode needs the license accepted. Run: sudo xcodebuild -license',
    'checks.diagnostic.xcodeCli': '{name} is installed, but Xcode Command Line Tools are missing. Run: xcode-select --install',
    'banner.title': 'Kasy CLI · Flutter SaaS Generator',
    'welcome.firstRun': 'Welcome to Kasy CLI!',
    'welcome.chooseLanguage': 'First, choose your language:',
    'prompt.language.select': 'Choose your language',
    'prompt.cancelled': 'Command cancelled by user.',
    'license.required': '🔑 License key required to use Kasy CLI',
    'license.checking': 'Validating license key...',
    'license.saved': '✅ License validated successfully',
    'license.invalid': 'Invalid license key. Check your key or contact support at kasy.dev.',
    'license.expired': '❌ Your license has expired. Renew at kasy.dev.',
    'license.inactive': '❌ Your license has been deactivated. Contact support at kasy.dev.',
    'license.offlineWarning': '⚠️  Could not reach license server — continuing offline.',
    'license.subscriptionExpired': '❌ Your subscription has expired. Updates require an active plan. Renew at kasy.dev.\n   Your existing projects still work — only updates are locked.',
    'prompt.license.enter': '👉 Enter your license key (XXXX-XXXX-XXXX-XXXX)',
    'prompt.license.invalid': 'Invalid format. Use XXXX-XXXX-XXXX-XXXX.',
    'prompt.appName.enter': 'Enter the name of your app',
    'prompt.appName.required': 'App name is required.',
    'prompt.bundleId.enter': 'Enter the bundle ID (com.company.app)',
    'prompt.bundleId.required': 'Bundle ID is required.',
    'prompt.bundleId.invalid': 'Bundle ID must look like com.company.app.',
    'prompt.backend.select': 'Select backend provider',
    'prompt.features.select': 'Select optional features to include',
    'prompt.features.instructions': 'Space to toggle, enter to confirm',
    'prompt.multiselect.instructions': '\nInstructions:\n    ↑/↓: Highlight option\n    ←/→/[space]: Toggle selection\n    a: Toggle all\n    enter/return: Complete answer',
    'prompt.multiselect.warnDisabled': 'Use ↓ to go to a selectable option, then Space to select, Enter to confirm',
    'prompt.firebase.projectId.enter': 'Enter Firebase Project ID',
    'prompt.firebase.projectId.required': 'Firebase Project ID is required.',
    'prompt.supabase.url.enter': 'Enter Supabase URL',
    'prompt.supabase.url.required': 'Supabase URL is required.',
    'prompt.supabase.anonKey.enter': 'Enter Supabase anon key',
    'prompt.supabase.anonKey.required': 'Supabase anon key is required.',
    'new.supabase.q.create': 'Create new Supabase project or use existing?',
    'new.supabase.q.create.create': '✨ Create new project (recommended for beginners)',
    'new.supabase.q.create.existing': '📂 Use existing project',
    'new.firebase.q.setupMode': 'How do you want to set up Firebase?',
    'new.firebase.q.setupMode.push': 'Firebase project for push notifications (FCM):',
    'new.firebase.q.setupMode.push.explain': 'Push notifications (FCM) require a Firebase project, even when your main backend is Supabase or API REST.',
    'new.firebase.q.setupMode.create': '✨ Create from scratch (recommended for beginners)',
    'new.firebase.q.setupMode.existing': '📂 Use existing project',
    'new.firebase.q.region': 'Where are most of your app users located?',
    'new.firebase.q.region.brazil': '🇧🇷  Brazil (São Paulo)         — southamerica-east1',
    'new.firebase.q.region.us':     '🇺🇸  United States              — us-central1',
    'new.firebase.q.region.europe': '🇪🇺  Europe                     — europe-west1',
    'new.firebase.q.region.global': '🌍  Global / Not sure          — us-central1',
    'new.firebase.create.prereq': 'You need: gcloud CLI (cloud.google.com/sdk) + gcloud auth login. Blaze plan required for deploy.',
    'new.firebase.create.creating': 'Creating Firebase project…',
    'new.firebase.create.includeWeb': 'Include Web app in Firebase? (for web platform)',
    'new.firebase.create.nowDo': 'Now activate authentication (before running the app):',
    'new.firebase.create.activateEmail': 'Enable Email/Password: Firebase Console → Authentication → Sign-in method',
    'new.firebase.create.activateGoogle': 'Enable Google: same page, click Google → Enable',
    'new.firebase.create.beforeContinue.title': 'Before continuing, enable in Firebase Console:',
    'new.firebase.create.beforeContinue.step1': '1. Authentication → Sign-in method → Google (Email/Password and Anonymous were enabled automatically)',
    'new.firebase.create.beforeContinue.step1.noAuth': '1. Authentication → Sign-in method → enable Email/Password, Anonymous and Google',
    'new.firebase.create.beforeContinue.ready': 'I have enabled Google Sign-In. Continue?',
    'new.firebase.create.beforeContinue.ready.noAuth': 'I have enabled Email/Password, Anonymous and Google Sign-In. Continue?',
    'new.firebase.create.beforeContinue.secretManagerAuto': '(Secret Manager and Storage were enabled automatically)',
    'new.firebase.create.sha1Skipped': 'SHA-1 not added',
    'new.firebase.create.sha1ManualInstruction': 'Add SHA-1 manually: Firebase Console → Project settings → Your apps → Android → Add fingerprint',
    'new.firebase.create.sha1ParseError': 'Could not parse SHA1 from keytool output',
    'new.firebase.create.sha1ErrorDetail': 'Reason',
    'new.firebase.create.useExistingHint': 'Project may have been created. Try "Use existing project" with ID: {id}',
    'new.firebase.create.usingProjectId': 'Using project ID: {id} (continuing with existing project)',
    'new.firebase.create.waitPropagate': 'Waiting for project propagation (20s)…',
    'new.firebase.create.success': 'Firebase project created successfully.',
    'new.firebase.create.failed': 'Could not create project',
    'new.firebase.create.gcloudRequired': 'gcloud CLI is required for "create from scratch". Without it, the full Firebase flow cannot run.',
    'new.firebase.create.installTitle': 'To install gcloud CLI, run:',
    'new.firebase.create.installCommand': 'Command',
    'new.firebase.create.installAfter': 'Then log in',
    'new.firebase.create.installUrl': 'Or download from',
    'new.firebase.create.authCommand': 'Run: gcloud auth login',
    'new.firebase.create.fallbackHint': 'For now, enter an existing Firebase Project ID to continue (or install gcloud and run again):',
    'new.firebase.q.billingAccount': 'Which billing account to link to the project?',
    'new.firebase.q.billingAccount.hint': 'Choose the account with available quota (up to 3 projects per account)',
    'new.firebase.q.billingAccount.context': 'Limit: up to 3 projects per billing account. Choose one with available quota (remove unused projects at console.cloud.google.com/billing if needed).',
    'new.firebase.q.billingAccount.other': 'Other — enter billing account ID manually',
    'new.firebase.q.billingAccount.manualId': 'Billing account ID (e.g. 018A70-7D0548-0F84A8)',
    'new.firebase.q.billingAccount.manualId.hint': 'Find it at console.cloud.google.com/billing',
    'new.firebase.q.billingAccount.manualId.required': 'Billing account ID is required.',
    'new.firebase.q.organization': 'In which GCP organization should the project be created?',
    'new.firebase.q.organization.none': 'No organization (personal account / standalone project)',
    'new.firebase.q.organization.hint': 'Organizations linked to your gcloud account',
    'new.firebase.create.billingRetry.title': 'Link billing manually (quota exceeded or billing error):',
    'new.firebase.create.billingRetry.hint': 'Tip: Limit is 3 projects per billing account. Remove unused projects at the link above. If you just removed one, wait 2–5 min for changes to propagate, then retry.',
    'new.firebase.create.billingRetry.ready': 'Linked billing. Retry setup?',
    'new.firebase.create.billingRetry.retrying': 'Retrying setup…',
    'new.firebase.create.billingRetry.exit': 'Run again with "Use existing project" after linking billing.',
    'new.firebase.create.projectQuotaExceeded': 'Project quota exceeded (limit of projects per Google account). Delete unused projects at console.cloud.google.com or enter an existing project ID below.',
    'new.supabase.q.orgSelect': 'Which organization to create the project in?',
    'new.supabase.orgsRequired': 'No organizations found. Run supabase login and try again.',
    'new.supabase.q.region': 'Where are most of your app users located?',
    'new.supabase.q.region.brazil': '🇧🇷  Brazil (São Paulo)         — sa-east-1',
    'new.supabase.q.region.us':     '🇺🇸  United States (Virginia)   — us-east-1',
    'new.supabase.q.region.europe': '🇪🇺  Europe (Ireland)           — eu-west-1',
    'new.supabase.q.region.global': '🌍  Global / Not sure          — us-east-1',
    'new.supabase.q.dbPassword': 'Database password (min 6 chars)',
    'new.supabase.q.dbPassword.required': 'Password must be at least 6 characters.',
    'new.supabase.creating': 'Creating project on Supabase…',
    'new.supabase.created': 'Project created successfully.',
    'new.supabase.createFailed': 'Could not create project',
    'new.supabase.loginHint': 'Run: supabase login. Then enter your existing project URL and key below.',
    'new.supabase.setup': 'Linking project and deploying…',
    'new.supabase.setupManual': 'Run manually: supabase link, supabase db push, supabase functions deploy',
    'new.supabase.q.useExisting.orgSelect': 'Which organization is the project in?',
    'new.supabase.q.useExisting.projectSelect': 'Which existing Supabase project do you want to use?',
    'new.supabase.projectsRequired': 'No projects found in this organization.',
    'new.supabase.q.dbPassword.existing': 'Database password (required to link and apply migrations)',
    'new.supabase.existingLinked': 'Project ready to link and apply migrations.',
    'setup.license.loaded': '✓ License key loaded from local config.',
    'setup.license.saved': '✓ License key validated and saved.',
    'setup.license.invalid': 'Invalid license key format. Expected XXXX-XXXX-XXXX-XXXX.',
    'setup.error.targetNotEmpty': 'Target directory is not empty: {path}',
    'setup.error.targetExists': 'Target directory already exists: {path}',
    'setup.error.coreMissing': 'Core template folder not found: {path}',
    'setup.error.requiredChecksFailed': 'Required environment checks failed. Run `kasy doctor`.',
    'setup.error.generatingFailed': 'Project generation failed.',
    'setup.error.conflictHint': 'Tip: Remove the project folder and run again, or use an empty directory.',
    'setup.spinner.generating': 'Generating project files...',
    'setup.success.created': 'Project created successfully.',
    'setup.success.complete': '✓ Setup complete',
    'setup.success.location': 'Location',
    'setup.success.nextSteps': 'Next steps',
    'setup.success.stepPubGet': 'flutter pub get',
    'setup.success.stepRun': 'flutter run',
    'validate.title': 'Kasy Validate',
    'validate.success': '✓ Validation matrix passed.',
    'validate.failed': 'Validation matrix failed.',
    'validate.error': 'One or more validation combinations failed.',
    'validate.projectNotFound': 'Project not found',
    'validate.ok': 'ok',
    'validate.fail': 'fail',
    'validate.passed': 'passed',

    // ── New Firebase flow ─────────────────────────────────────────────────
    'cli.command.firebase.description': '🔥 Create a complete Flutter app with Firebase (recommended)',
    'new.banner': '✨ New Flutter app',
    'new.subtitle': 'Choose backend: Firebase, Supabase or REST API.',
    'new.subtitle2': '🔒 Setup runs on your machine with your credentials — no third-party access needed.',
    'new.q.backend': 'Where do you want to store your app data?',
    'new.q.backend.firebase.desc': 'Easiest to start — auth, database and storage included',
    'new.q.backend.supabase.desc': 'SQL database (PostgreSQL) with more control',
    'new.q.backend.api.desc': 'You already have your own backend server',

    'new.q.mode': 'How do you want to configure?',
    'new.q.mode.quick': '⚡ Quick — minimal questions, smart defaults',
    'new.q.mode.advanced': '🛠  Advanced — all options and credentials now',

    'new.q.preset': 'Which features to include?',
    'new.q.preset.starter': '⚡ Starter — analytics + crash reports + onboarding',
    'new.q.preset.saas': '💰 SaaS — subscriptions + analytics + onboarding + feedback',
    'new.q.preset.content': '📱 Content — crash reports + analytics + onboarding + AI chat',
    'new.q.preset.full': '🚀 Full — all features',
    'new.q.preset.custom': '⚙️  Custom — choose features one by one',
    'new.q.preset.none': '○  None — just the core',

    'new.firebase.success.deployStep': '• Deploy backend (from inside the project folder):',

    'cli.command.deploy.description': 'Publish the server to Firebase or Supabase',
    'cli.command.check.description': 'Check push notifications setup (use --fix to fix it)',
    'deploy.q.project': 'Firebase Project ID:',
    'deploy.q.serviceAccount': 'Path to service account JSON:',
    'deploy.detected.project': '✓ Firebase project detected:',
    'deploy.detected.serviceAccount': '✓ Service account detected:',
    'deploy.error.notProject': 'No firebase.json found in this directory. Run kasy deploy from inside the project folder.',

    'cli.command.ios.description': 'Publish the app to the App Store (Mac needed)',
    'cli.command.ios.configure.description': 'Configure Apple API credentials for local IPA upload',
    'cli.command.ios.release.description': 'Bump build, create IPA, and upload to App Store Connect',
    'cli.command.ios.build.description': 'Build IPA only (no upload)',
    'cli.command.ios.clean.description': 'Clean Flutter/Xcode caches before a failed iOS build',
    'cli.command.ios.picker.intro': 'Publish to the App Store',
    'cli.command.ios.picker.message': 'What do you want to do?',
    'cli.command.ios.help.before': 'How to publish to the App Store:\n  1) kasy ios configure  → do this once (saves Apple credentials)\n  2) kasy ios release    → run for each new version (build + upload)\n\nUse "build" to only generate the IPA, "clean" if a build fails.\n',
    'cli.command.codemagic.description': 'Build the app in the cloud (no Mac needed)',
    'cli.command.codemagic.configure.description': 'Configure Codemagic API credentials',
    'cli.command.codemagic.release.description': 'Start a Codemagic iOS workflow build',
    'cli.command.codemagic.status.description': 'Show Codemagic build status by ID',
    'cli.command.codemagic.picker.intro': 'Build in the cloud with Codemagic',
    'cli.command.codemagic.picker.message': 'What do you want to do?',
    'cli.command.codemagic.picker.statusHint': 'Asks for the build ID',
    'cli.command.codemagic.help.before': 'How to build with Codemagic (no Mac needed):\n  1) kasy codemagic configure  → do this once (saves API token)\n  2) kasy codemagic release    → starts a cloud build for each version\n\nUse "status <buildId>" to check the progress of a running build.\n',

    'ios.configure.title': 'iOS App Store — setup',
    'ios.configure.bundleId': 'Bundle ID',
    'ios.configure.doc': 'Guide',
    'ios.configure.openingLinks': 'Opening App Store Connect in your browser…',
    'ios.configure.note.title': 'I will ask 3 things from App Store Connect',
    'ios.configure.note.body': '1) API Key ID — under Users and Access → Keys.\n2) Issuer ID — at the top of the same page.\n3) The .p8 private key file you downloaded when creating the key.\n\nThe App ID is optional and only needed if you have multiple apps.',
    'ios.configure.q.apiKey': 'App Store Connect API Key ID',
    'ios.configure.q.issuerId': 'Issuer ID (UUID)',
    'ios.configure.q.p8Path': 'Path to downloaded AuthKey_XXXXX.p8 file',
    'ios.configure.q.appId': 'App Store Connect App ID (optional)',
    'ios.configure.q.required': 'Required',
    'ios.configure.q.p8NotFound': 'File not found',
    'ios.configure.cancelled': 'Setup cancelled',
    'ios.configure.success': 'Apple credentials saved',
    'ios.configure.p8Installed': 'Private key installed at',
    'ios.configure.next': 'Next',
    'ios.release.title': 'Building and uploading iOS release…',
    'ios.release.success': 'iOS release uploaded',
    'ios.release.task.building': 'Building IPA (this can take 2-5 min)…',
    'ios.release.task.uploading': 'Uploading IPA to App Store Connect…',
    'ios.release.task.done': 'Build + upload finished',
    'ios.release.task.failed': 'Build failed — see output below',
    'ios.build.title': 'Building iOS IPA…',
    'ios.build.success': 'IPA built',
    'ios.build.task.building': 'Building IPA (this can take 2-5 min)…',
    'ios.build.task.done': 'IPA built at build/ios/ipa/',
    'ios.build.task.failed': 'Build failed — see output below',
    'ios.error.notProject': 'Not a Flutter iOS project (pubspec.yaml + ios/ required).',
    'ios.error.noScript': 'scripts/release-ios.sh not found. Run: kasy update ios-release',
    'ios.error.notMac': 'iOS release requires macOS with Xcode.',
    'ios.error.useCodemagic': 'Use cloud release instead',
    'ios.error.notConfigured': 'Apple credentials not configured',
    'ios.error.runConfigure': 'Run: kasy ios configure',
    'ios.release.askConfigure': 'Want to configure Apple credentials now?',
    'ios.error.signing': 'iOS code signing is not configured (DEVELOPMENT_TEAM missing).',
    'ios.error.signingHint': 'Open ios/Runner.xcworkspace in Xcode → Runner → Signing & Capabilities → select your Team.',
    'ios.error.googleUrlScheme': 'Google Sign-In iOS URL scheme is not configured.',
    'ios.error.googleUrlSchemeHint': 'Fix: run flutterfire configure, then kasy ios clean, or re-run project setup before building.',
    'ios.warn.lowDisk': 'Low disk space ({gb} GB free; recommend at least {min} GB for Xcode builds).',
    'ios.hints.title': 'Xcode cache may be corrupted — try:',
    'ios.hints.closeXcode': 'Close Xcode completely',
    'ios.hints.retry': 'Then retry',
    'ios.hints.manual': 'Or manually',
    'ios.hints.network.title': 'Network failure while downloading iOS dependencies',
    'ios.hints.network.body': 'Your connection dropped while pod install was downloading libraries. This is usually temporary.',
    'ios.hints.network.step1': 'Check that your internet is stable',
    'ios.hints.network.step2': 'Try again',
    'ios.hints.network.step3': 'If it keeps failing',
    'ios.clean.title': 'Cleaning iOS build caches…',
    'ios.clean.success': 'Caches cleaned',
    'ios.clean.notMac': 'iOS clean is only available on macOS.',
    'ios.clean.step.flutterClean': 'flutter clean',
    'ios.clean.step.derivedData': 'Remove Xcode DerivedData (Runner)',
    'ios.clean.step.buildDir': 'Remove build folders',
    'ios.clean.step.pubGet': 'flutter pub get',
    'ios.clean.step.pods': 'pod install',

    'codemagic.configure.title': 'Codemagic — setup',
    'codemagic.configure.doc': 'Guide',
    'codemagic.configure.checklist': 'Complete signing + App Store Connect in the Codemagic dashboard (see guide).',
    'codemagic.configure.openingLinks': 'Opening Codemagic in your browser…',
    'codemagic.configure.q.token': 'Codemagic API token',
    'codemagic.configure.q.appId': 'Codemagic App ID',
    'codemagic.configure.q.workflowId': 'Workflow ID (from codemagic.yaml)',
    'codemagic.configure.q.branch': 'Git branch to build',
    'codemagic.configure.q.required': 'Required',
    'codemagic.configure.cancelled': 'Setup cancelled',
    'codemagic.configure.success': 'Codemagic credentials saved',
    'codemagic.configure.next': 'Next',
    'codemagic.release.title': 'Triggering Codemagic build…',
    'codemagic.release.triggered': 'Build started',
    'codemagic.release.spin': 'Starting build on Codemagic…',
    'codemagic.release.spinDone': 'Build queued on Codemagic',
    'codemagic.status.title': 'Build status',
    'codemagic.status.usage': 'Usage: kasy codemagic status <buildId>',
    'codemagic.status.spin': 'Fetching build status…',
    'codemagic.status.spinDone': 'Status fetched',
    'codemagic.error.notProject': 'Not a Flutter iOS project (pubspec.yaml + ios/ required).',
    'codemagic.error.notConfigured': 'Codemagic not configured',
    'codemagic.error.addCi': 'Add CI first: kasy add ci (creates codemagic.yaml)',
    'codemagic.error.runConfigure': 'Run: kasy codemagic configure',
    'codemagic.error.googleUrlScheme': 'Codemagic build blocked: Google Sign-In iOS URL scheme is not configured.',

    'doctor.ios.title': 'iOS release',
    'doctor.ios.appleOk': 'Apple credentials configured',
    'doctor.ios.appleMissing': 'Apple credentials missing — kasy ios configure',
    'doctor.ios.p8Ok': 'API key file found',
    'doctor.ios.p8Missing': 'AuthKey .p8 missing — kasy ios configure',
    'doctor.ios.codemagicOk': 'Codemagic credentials configured',
    'doctor.ios.codemagicMissing': 'Codemagic optional — kasy codemagic configure',
    'doctor.ios.notMac': 'Local iOS release requires macOS',
    'doctor.ios.doc': 'Documentation',
    'doctor.ios.signingOk': 'Xcode signing (Development Team) configured',
    'doctor.ios.signingMissing': 'Xcode signing not set — open Runner in Xcode and choose your Team',
    'doctor.ios.googleUrlSchemeOk': 'Google Sign-In iOS URL scheme configured',
    'doctor.ios.googleUrlSchemeMissing': 'Google Sign-In iOS URL scheme mismatch',
    'doctor.ios.googleUrlSchemeSkipped': 'Google Sign-In iOS URL scheme check skipped (GoogleService-Info.plist not found)',
    'doctor.ios.appleSignInEntitlementOk': 'Apple Sign-In entitlement configured',
    'doctor.ios.appleSignInEntitlementMissing': 'Apple Sign-In entitlement missing — add Sign In with Apple capability in Xcode',
    'doctor.ios.facebookOk': 'Facebook credentials configured (iOS)',
    'doctor.ios.facebookPlaceholders': 'Facebook credentials are still placeholders — update FacebookAppID and FacebookClientToken in Info.plist',
    'doctor.ios.facebookSkipped': 'Facebook credential check skipped (no FacebookAppID in Info.plist)',
    'doctor.android.facebookOk': 'Facebook credentials configured (Android)',
    'doctor.android.facebookPlaceholders': 'Facebook credentials are still placeholders — update facebook_app_id and facebook_client_token in android/app/src/main/res/values/strings.xml',

    'doctor.revenuecat.title': 'RevenueCat',
    'doctor.revenuecat.keysOk': 'API keys configured (iOS + Android)',
    'doctor.revenuecat.keysEmpty': 'No keys configured — set at least RC_TEST_KEY in .env (kasy run uses it on simulator/emulator)',
    'doctor.revenuecat.testKeyOk': 'RC_TEST_KEY configured (test_) — used on simulator/emulator',
    'doctor.revenuecat.testKeyMissing': 'RC_TEST_KEY missing — subscription flow will not work on simulator/emulator',
    'doctor.revenuecat.iosProdOk': 'RC_IOS_PROD_KEY configured (appl_) — used on physical iPhone',
    'doctor.revenuecat.iosProdMissing': 'RC_IOS_PROD_KEY missing — kasy run on physical iPhone will fall back to the test key',
    'doctor.revenuecat.androidProdOk': 'RC_ANDROID_PROD_KEY configured (goog_) — used on physical Android',
    'doctor.revenuecat.androidProdMissing': 'RC_ANDROID_PROD_KEY missing — kasy run on physical Android will fall back to the test key',
    'doctor.revenuecat.prefixMismatch': 'Key has wrong prefix: {key} should start with {expected}',
    'doctor.revenuecat.keysTest': 'Only Test Store keys (test_) configured — store releases require appl_/goog_, otherwise the app crashes',
    'doctor.revenuecat.webhookUrlSupabase': 'Webhook URL (paste in RevenueCat → Integrations → Webhooks)',
    'doctor.revenuecat.webhookUrlFirebase': 'Webhook URL: Firebase Console → Functions → subscriptionsOnRcPremiumUpdate',

    'update.iosRelease.success': 'iOS release files updated',
    'add.iosRelease.success': 'iOS release files added',
    'add.iosRelease.already': 'iOS release files already present',

    'new.api.q.baseUrl': 'What is your API base URL?',
    'new.api.q.baseUrl.hint': 'https://api.example.com',
    'new.firebase.banner': '🔥 New Flutter app — Firebase',
    'new.firebase.subtitle': 'Full project: auth, Firestore, notifications, social login and more.',
    'new.prereq.title': 'Before we start, make sure you have:',
    'new.firebase.prereq.title': 'Before we start, make sure you have:',
    'new.firebase.prereq.create.1': '1. gcloud CLI (cloud.google.com/sdk) + gcloud auth login',
    'new.firebase.prereq.create.2': '2. Blaze plan (credit card — required for Cloud Functions)',
    'new.firebase.prereq.create.billingLimit': '3. Limit: up to 3 projects per billing account. Remove unused projects or request quota increase if you\'ve reached this limit.',
    'new.firebase.prereq.create.projectQuota': '4. Project quota: Google account has a limit (e.g. 10–30 projects). Delete unused projects at console.cloud.google.com if needed.',
    'new.firebase.prereq.create.note': '   Project and APIs will be created automatically.',
    'new.firebase.prereq.create.pushNote': '   Firebase project for FCM + Remote Config will be created automatically (no service account needed).',
    'new.firebase.create.creatingPush': 'Creating Firebase project for push notifications…',
    'new.firebase.create.successPush': 'Firebase project created for FCM + Remote Config.',
    'new.firebase.prereq.1': '1. Firebase CLI installed (npm i -g firebase-tools) + firebase login',
    'new.firebase.prereq.2': '2. Firebase project created at console.firebase.google.com',
    'new.firebase.prereq.3': '3. Blaze plan activated (credit card — required for Cloud Functions)',
    'new.firebase.prereq.4': '4. gcloud CLI installed + gcloud auth login (used to enable APIs automatically)',
    'new.firebase.prereq.5': '5. Before deploy: enable Secret Manager API + Firebase Storage (see PREREQUISITES.md or links after generation)',
    'new.firebase.prereq.doc': '   Full checklist: PREREQUISITES.md',

    'new.firebase.q.appName': "What is the name of your app?",
    'new.firebase.q.appName.hint': 'e.g.: My Amazing App',
    'new.firebase.q.appName.required': 'App name is required.',

    'new.firebase.q.bundleId': 'What is the unique identifier (Bundle ID) of your app?',
    'new.firebase.q.bundleId.hint': 'It works like an address for your app, e.g.: com.mycompany.myapp',
    'new.firebase.q.bundleId.invalid': 'Invalid format. Use: com.company.app',
    'new.firebase.q.bundleId.required': 'Bundle ID is required.',

    'new.firebase.q.projectId': 'What is your Firebase Project ID?',
    'new.firebase.q.projectId.hint': 'Find it in the Firebase Console → your project → Settings',
    'new.firebase.q.projectId.required': 'Firebase Project ID is required.',

    'new.firebase.q.modules': 'Which optional features do you want to include?',
    'new.firebase.q.modules.hint': 'Space to select, Enter to confirm',
    'new.modules.header.common': '── Common (all backends) ──',
    'new.modules.header.features': '── Screens & features ──',
    'new.modules.header.feedback': '── Feedback (Firebase + Supabase) ──',
    'new.modules.header.ci': '── CI/CD ──',
    'new.modules.header.monetization': '── Monetization ──',
    'new.firebase.module.revenuecat': '💰 RevenueCat (enables 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, Firebase only)',
    'new.firebase.module.widget': '📱 Home Widget (iOS/Android)',
    'new.firebase.module.llm_chat': '🤖 AI Chat (OpenAI/Gemini)',
    'new.firebase.module.local_notifications': '🔔 Local Reminders (no server)',
    'new.firebase.module.feedback': '💬 Feature Requests (requires Firebase or Supabase)',
    'new.firebase.module.ci': '⚙️ CI/CD (GitHub + Codemagic)',
    'new.firebase.module.onboarding': '👋 Onboarding (welcome flow)',

    'new.firebase.q.secrets.configureNow': 'Configure server secrets now? (RevenueCat webhook, Meta Ads)',
    'new.firebase.q.secrets.configureNow.hint': 'If not now, see the README for commands to add them later',
    'new.firebase.q.secrets.later': '• Server secrets not configured — they will be set up during `kasy deploy`.',
    'new.firebase.q.revenuecat.webhookKey': 'Webhook secret key (a random value was suggested — press Enter to accept or type your own)',
    'new.firebase.q.revenuecat.webhookKey.hint': 'Save this value. In RevenueCat dashboard, paste as: Bearer <this-value>',
    'new.firebase.q.revenuecat.metaToken': 'Meta Access Token (for Ads Conversions API, optional)',
    'new.firebase.q.revenuecat.metaDataset': 'Meta Dataset ID / Pixel ID (optional)',
    'new.firebase.q.revenuecat.test': 'Test Store key (test_xxx) — optional, works for both iOS+Android and runs in the simulator',
    'new.firebase.q.revenuecat.test.invalid': 'Test Store key must start with test_ (e.g. test_xxxxxxxxxxxxxxxxxxxx).',
    'new.firebase.q.revenuecat.iosProd': 'iOS production key (appl_xxx) — optional, used only on physical iPhone',
    'new.firebase.q.revenuecat.iosProd.invalid': 'iOS production key must start with appl_ (e.g. appl_xxxxxxxxxxxxxxx).',
    'new.firebase.q.revenuecat.androidProd': 'Android production key (goog_xxx) — optional, used only on physical Android',
    'new.firebase.q.revenuecat.androidProd.invalid': 'Android production key must start with goog_ (e.g. goog_xxxxxxxxxxxxxxx).',
    'new.firebase.q.revenuecat.atLeastOne': 'Configure at least one key (Test, iOS prod or Android prod). You can add the others later in .env.',
    // Legacy keys — kept for projects/scripts that still reference them.
    'new.firebase.q.revenuecat.android': 'RevenueCat API key for Android',
    'new.firebase.q.revenuecat.ios': 'RevenueCat API key for iOS',
    'new.firebase.q.paywall': 'Which paywall style?',
    'new.firebase.q.paywall.hint': 'Layout of the subscription screen — you can change it later in RevenueCat',
    'new.firebase.q.revenuecat.web': 'Enable subscriptions on web (RevenueCat Web Billing)?',
    'new.firebase.q.revenuecat.web.hint': 'Requires Web Billing setup in RevenueCat dashboard + Stripe. Leave unchecked if not needed.',
    'new.firebase.q.revenuecat.webKey': 'RevenueCat Web Billing API key (rcb_xxx or rcb_sb_xxx, optional — configure later)',
    'new.firebase.success.revenuecatWeb': '• RevenueCat Web: add RC_WEB_API_KEY (launch.json) for web subscriptions',
    'new.firebase.q.sentry.dsn': 'Sentry DSN (leave blank to configure later)',
    'new.firebase.q.sentry.dsn.invalid': 'Invalid DSN. Expected format: https://key@host/project-id',
    'new.firebase.q.mixpanel.token': 'Mixpanel Token (leave blank to configure later)',
    'new.firebase.q.facebook.appId': 'Facebook App ID',
    'new.firebase.q.facebook.appId.required': 'Facebook App ID is required.',
    'new.firebase.q.facebook.appId.invalid': 'Facebook App ID must be numeric (e.g. 1234567890).',
    'new.firebase.q.facebook.token': 'Facebook App Token',
    'new.firebase.q.facebook.token.required': 'Facebook App Token is required.',
    'new.firebase.q.revenuecat.android.required': 'RevenueCat Android key is required.',
    'new.firebase.q.revenuecat.ios.required': 'RevenueCat iOS key is required.',
    'new.firebase.q.revenuecat.metaDataset.invalid': 'Pixel ID must be numeric (e.g. 1234567890).',
    'new.firebase.q.revenuecat.webKey.invalid': 'Web Billing key must start with rcb_ (e.g. rcb_sb_xxx or rcb_xxx).',

    'new.firebase.confirm.title': 'Configuration summary:',
    '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': 'none',
    'new.firebase.confirm.proceed': 'Create project now?',

    'new.firebase.step.copying': 'Setting up your project...',
    'new.firebase.step.pubGet': 'Installing Flutter packages...',
    'new.firebase.step.buildRunner': 'Generating code (Riverpod/Freezed)...',
    'new.firebase.step.flutterfire': 'Configuring Firebase (flutterfire)...',
    'new.firebase.step.deploy': 'Deploying Cloud Functions + Firestore rules...',
    'new.firebase.step.done': 'Done!',

    'new.firebase.success.title': '🎉 Your app is ready!',
    'new.firebase.success.open': 'Open the project:',
    'new.firebase.success.run': 'Run the app:',
    'new.firebase.success.runMake': 'Or use make: make run | make run-ios | make run-android',
    'new.firebase.success.deviceSetup': 'Before running on device:',
    'new.firebase.success.deviceSetup.ios': 'iOS: connect iPhone via cable → trust computer → Xcode → Window → Devices → pair',
    'new.firebase.success.deviceSetup.android': 'Android: Settings → Developer options → enable USB debugging',
    'new.firebase.success.hotReload': "Hot reload: press 'r' in terminal while app runs. Changes appear instantly.",
    'new.firebase.success.oneLiner': 'Or copy-paste to enter and run:',
    'new.firebase.success.configure': 'Configure when ready:',
    'new.firebase.success.alreadyDone': 'Already configured by CLI:',
    'new.firebase.success.manualNeeded': 'Configure manually (if needed):',
    'new.firebase.success.apn': '• APN Key (iOS push): Firebase Console → Project Settings → Cloud Messaging',
    'new.firebase.success.social': '• Enable social login in Firebase Console → Authentication (Google and Apple are already in the code; just activate them there)',
    'new.firebase.success.googleSignIn': '• Google Sign-In: 1) Enable in Firebase Console → Auth → Sign-in method → Google. 2) CLI auto-fills kGoogleWebClientId (google_auth_options.dart) from google-services.json for native (Android/iOS). Web uses signInWithPopup.',
    'new.firebase.success.sentry': '• Sentry: For production error reports. Get DSN at sentry.io. Already in launch.json for dev. For release: --dart-define=SENTRY_DSN=xxx',
    'new.firebase.success.mixpanel': '• Mixpanel: For production analytics. Already in launch.json for dev. For release: --dart-define=MIXPANEL_TOKEN=xxx',
    'new.firebase.success.web': '• Web (add-on): Android & iOS work as usual. To test on browser: "flutter run -d chrome" or "flutter run -d web-server --web-port=5000". To build: "flutter build web". Push notifications are mobile-only and disabled on web automatically.',

    'new.firebase.q.deploy': 'Deploy Cloud Functions + Firestore rules now?',
    'new.firebase.q.deploy.hint': 'Requires Blaze plan and firebase-tools installed globally',
    'new.firebase.deployFailed.hint': 'If deploy failed: create Firestore and Storage in Console first:',
    'new.firebase.deployFailed.firestore': '• Firestore: create database (Create database → Native mode)',
    'new.firebase.deployFailed.storage': '• Storage: click Get Started',
    'new.firebase.deployFailed.orGcloud': 'Or create Firestore via CLI:',
    'new.firebase.success.deployLater': '• Deploy backend when ready (from inside the project folder):',
    'new.firebase.success.beforeDeploy': 'Before firebase deploy, enable (click to open):',
    'new.firebase.success.secretManager': '• Secret Manager API',
    'new.firebase.success.firestore': '• Firestore (create database if missing)',
    'new.firebase.success.storage': '• Firebase Storage (Get Started)',
    'new.firebase.success.auth': '• Firebase Authentication (Email/Password)',
    'new.firebase.success.security': '🔒 .gitignore excludes .env and other secrets. Cloud Functions use server-side secrets.',

    'new.firebase.interactive.title': '⚠️  Cloud Configuration Required',
    'new.firebase.interactive.desc': 'For security and billing reasons, Firebase requires manual activation of these services:',
    'new.firebase.interactive.step1': '1. Create Firestore Database (Native mode): ',
    'new.firebase.interactive.step2': '2. Upgrade to Blaze Plan (Pay-as-you-go): ',
    'new.firebase.interactive.step3': '3. Enable Authentication (Email/Password): ',
    
    'new.firebase.interactive.prompt1': 'Did you create the Firestore Database and enabled Authentication?',
    'new.firebase.interactive.prompt2': 'Did you upgrade to the Blaze Plan? (Required for Cloud Functions)',
    'new.firebase.interactive.googleAuthNote': '* Enable Google Sign-In manually (Email/Password and Anonymous are already enabled): ',
    'new.firebase.interactive.billingNeeded': 'Blaze plan not yet active. Activate it at the link above, then wait.',
    'new.firebase.interactive.billingWaiting': 'Checking Blaze status...',
    'new.firebase.interactive.billingTimeout': 'Blaze plan not confirmed after timeout. Deploy skipped — run manually when ready.',
    'new.firebase.interactive.authWarn': 'Could not enable Email/Password and Anonymous auth automatically. Enable manually:',
    'new.firebase.existing.apisFailed': 'Could not activate APIs:',
    'new.firebase.existing.googleSignInManual': 'Google Sign-In: enable manually in Authentication → Sign-in method → Google',

    'new.firebase.interactive.ready': 'Ready to deploy Push Notifications + Security Rules now?',
    'new.firebase.interactive.deploying': 'Deploying Cloud Functions + Firestore/Storage rules...',
    'new.firebase.interactive.errorTitle': 'Deploy failed.',
    'new.firebase.interactive.errorHint': 'Make sure Firestore is created and the Blaze plan is active with a credit card.',
    'new.firebase.interactive.laterHint': 'You can deploy later inside the project folder using: ',
    'new.firebase.interactive.skipped': 'Deploy skipped. You can deploy later manually.',

    'new.firebase.warn.flutterfire': '⚠️  FlutterFire could not generate firebase_options_dev.dart automatically.',
    'new.firebase.warn.flutterfire.manual': 'Run manually in the project folder:',

    'new.firebase.error.templateMissing': 'Firebase template not found at: {path}. Make sure the Firebase/ folder exists.',
    'new.firebase.error.dirNotEmpty': 'Directory "{path}" already exists and is not empty.',
    'new.firebase.error.aborted': 'Setup aborted.',

    'new.supabase.prereq.1': '1. Supabase account at supabase.com',
    'new.supabase.prereq.2': '2. Supabase CLI + Firebase CLI installed (both required)',
    'new.supabase.prereq.3': '3. supabase login + firebase login (Firebase needed for push notifications)',
    'new.supabase.prereq.login': '   If creating manually: have your project URL and anon key ready',
    'new.supabase.loginRequired': '⚠️  You must be logged in to create a project. Run supabase login first.',
    'new.supabase.loginCommand': '   supabase login',
    'new.supabase.success.done.db': '• Database: tables, RLS policies',
    'new.supabase.success.done.storage': '• Storage: bucket kasy with policies',
    'new.supabase.success.done.webhook': '• Edge Function revenuecat-webhook',
    'new.supabase.success.done.secrets': '• Edge Function secrets (if provided)',
    'new.supabase.success.done.launch': '• launch.json with Sentry, Mixpanel, RevenueCat',
    'new.supabase.success.auth': '• Auth: Email already enabled. Enable Google, Apple, Facebook at: {authUrl}',
    'new.supabase.success.storage': '• Storage: Bucket kasy created with policies (ready to use)',
    'new.supabase.success.fcm': '• Push (FCM): Must configure in Firebase Console (Blaze plan). App is ready for Supabase + FCM. URL: {fcmUrl}',
    'new.supabase.success.deployLater': '• Deploy backend when ready (from inside the project folder):',

    'new.api.prereq.1': '1. Your REST API running and reachable',
    'new.api.prereq.2': '2. API base URL (e.g. https://api.yourapp.com)',
    'new.api.prereq.3': '3. Firebase CLI required for push notifications (FCM)',
    'new.api.success.backendUrl': '• Point BACKEND_URL to your running API (launch.json)',
    'new.api.success.fcm': '• Firebase is required for push notifications (FCM) — configure APNs key in Firebase console',
    'new.api.success.auth': '• Implement the social auth endpoints (Google, Apple) on your backend',

    'new.outdated.hint': "projects created now won't include the latest improvements.",
    'new.outdated.upgradeNow': 'Upgrade to the latest version before creating? (requires active subscription)',
    'new.outdated.upgraded': 'kasy updated! Run kasy new again.',
    'new.success.title': 'Project created successfully!',
    'new.success.nextSteps': 'Next steps:',
    'new.success.step.cd': 'Go to your project folder:',
    'new.success.step.deploy': 'Deploy your backend to Firebase:',
    'new.success.step.run': 'Run your app (with your configured keys):',
    'new.success.step.run.vscode': '(or F5 in VS Code)',
    'new.success.step.console': 'Open your backend console:',
    'new.fcm.generating': 'Generating push notifications key (Firebase Service Account)…',
    'new.sha1.registering': 'Registering SHA-1 for Google Sign-In (Android)…',
    'new.sha1.failed': 'SHA-1 not added automatically: {error}',
    'new.sha1.manual': 'Add it manually so Google Sign-In works on Android:',
    'new.sha1.skipped.apiFailed': 'SHA-1 not added automatically. Reason: {error}',
    'new.sha1.skipped.other': 'SHA-1 not added: {reason}',
    'new.sha1.addManually': 'Add manually: Firebase Console → Project settings → Your apps → Android → Add fingerprint',
    'new.sha1.added': '✓ SHA-1 added (Google Sign-In)',
    'new.firestore.created': '✓ Firestore created automatically',
    'new.firestore.notCreated.error': '⚠ Firestore not created. Reason: {error}',
    'new.firestore.notCreated': '⚠ Firestore not created automatically',
    'new.storage.created': '✓ Firebase Storage created automatically',
    'new.storage.notCreated.error': '⚠ Storage not created. Reason: {error}',
    'new.storage.notCreated': '⚠ Storage not created automatically',
    'new.activateManually': 'Activate manually in the console:',
    'new.fcm.serverConfig': 'Configure on your server: FIREBASE_SERVICE_ACCOUNT_JSON="$(cat .kasy/fcm-service-account.json)"',
    'new.apns.warning': '⚠  iOS Push: configure the APNs Key in Firebase Console',
    'new.apns.step1': '1. Apple Developer Portal → Keys → create APNs Key (.p8)',
    'new.apns.step2': '2. Firebase Console → Cloud Messaging → iOS app → upload APNs Key',
    'new.firebase.create.estimatedTime': '(usually 3–5 min — do not close the terminal)',
    'new.internet.warning': '📶  Make sure you have a stable internet connection — this step requires network access.',

    // run command
    'cli.command.run.description': 'Run your app on phone, simulator, or browser',
    'run.launching': 'Launching Flutter app...',
    'run.prompt.pickDevice': 'Multiple devices detected. Which one do you want to run on?',
    'run.warn.nothingSelected': 'No device selected.',
    'run.updateHint.prefix': 'Project improvements available —',
    'run.updateHint.suffix': 'to see what\'s new',
    'run.spinner.building': 'Starting Flutter…',
    'run.spinner.ready': 'Flutter ready — use r (reload), R (restart), q (quit)',
    'run.spinner.failed': 'Flutter run failed before starting',
    'run.stage.gradleFirstTime': 'Building Android (first run takes 5-15 min while Gradle downloads deps)…',
    'run.stage.gradle': 'Building Android…',
    'run.stage.xcode': 'Building iOS…',
    'run.stage.pods': 'Installing iOS pods…',
    'run.stage.installing': 'Installing on device…',
    'run.stage.syncing': 'Syncing files to device…',
    'run.stage.buildSuccess': 'Build done — launching app…',
    'run.error.notFlutterProject': 'No pubspec.yaml found. Run this command from inside a Flutter project.',
    'run.error.flutterNotFound': 'Flutter not found. Make sure Flutter is installed and on your PATH.',
    'run.rc.usingTest': 'RevenueCat: using test key (test_) — simulator/emulator',
    'run.rc.usingProd': 'RevenueCat: using production keys — physical device',
    'run.rc.fallbackToTest': 'RevenueCat: production key missing ({platform}) — falling back to test_; set RC_{var} in .env to test real in-app purchases',
    'run.rc.forcedTest': 'RevenueCat: --rc=test forced',
    'run.rc.forcedProd': 'RevenueCat: --rc=prod forced',
    'run.rc.forcedProdMissing': 'RevenueCat: --rc=prod requested but RC_IOS_PROD_KEY/RC_ANDROID_PROD_KEY not set in .env',

    // reset command
    'cli.command.reset.description': 'Uninstall the app on a simulator/emulator/device so you can test as a fresh install',
    'reset.title': 'Reset app on device',
    'reset.scanning': 'Looking for running simulators, emulators and connected devices...',
    'reset.prompt.pickDevice': 'Which one do you want to reset?',
    'reset.resetting': 'Resetting',
    'reset.reinstalling': 'Reinstalling the app...',
    'reset.success.uninstalled': 'App uninstalled. All local data and permissions cleared.',
    'reset.info.notInstalled': 'App was not installed on this device.',
    'reset.warn.noDevices': 'No matching simulator, emulator or device is running. Start one and try again.',
    'reset.warn.nothingSelected': 'No device selected.',
    'reset.warn.iosUninstallFailed': 'simctl uninstall failed.',
    'reset.warn.androidUninstallFailed': 'adb uninstall did not return success.',
    'reset.warn.iosDeviceManual': 'iOS physical device: remove the app manually (long-press the icon → Remove App), then reinstall with kasy run.',
    'reset.warn.iosDeviceUninstallFailed': 'devicectl uninstall failed. Make sure the device is unlocked and trusted by this Mac.',
    'reset.warn.webIncognito': 'Web: open the app in an incognito / private window of your browser to test as a fresh visitor.',
    'reset.warn.unknownPlatform': 'Unsupported platform',
    'reset.error.notFlutterProject': 'No pubspec.yaml found. Run this command from inside a Flutter project.',
    'reset.error.noIdentifier': 'Could not read bundle id or Android package name from this project.',
    'reset.error.noBundleId': 'iOS bundle id not found for this project.',
    'reset.error.noPackageName': 'Android applicationId not found for this project.',
    'reset.outro.skipped': 'Done. App was not uninstalled.',
    'reset.outro.uninstalledOnly': 'Done. Run kasy run to reinstall.',
    'reset.outro.cancelled': 'Cancelled. App was not uninstalled.',
    'reset.prompt.xcodeOpen': 'Xcode is open and will conflict with the install. What do you want to do?',
    'reset.prompt.xcodeOpen.close': 'Close Xcode automatically (recommended)',
    'reset.prompt.xcodeOpen.skip': 'Leave Xcode open and try anyway',
    'reset.prompt.xcodeOpen.cancel': 'Cancel reset',
    'reset.info.xcodeClosed': 'Xcode closed.',
    'reset.prompt.reinstallNow': 'App removed. Check the device, then reinstall now?',
    'reset.prompt.clearLauncherCache': 'Also clear the launcher cache ({pkg})? Fixes gray widget previews.',
    'reset.success.launcherCleared': 'Launcher cache cleared ({pkg}). Home screen kept intact.',
    'reset.warn.launcherCacheFailed': 'Could not clear the launcher cache.',
    'reset.warn.launcherNotDetected': 'Default launcher not detected — skipping cache cleanup.',

    // doctor project checks
    'doctor.project.title': 'Project',
    'doctor.project.appName': 'App name',
    'doctor.project.backend': 'Backend',
    'doctor.project.bundleId': 'Bundle ID',
    'doctor.project.pubGet': 'Dependencies installed (pubspec.lock present)',
    'doctor.project.pubGetMissing': 'Run flutter pub get — pubspec.lock not found',
    'doctor.project.modules': 'Active features',
    'doctor.project.noModules': 'No optional features active',

    // add command
    'cli.command.add.description': 'Add a new feature to your app (e.g.: kasy add ai_chat)',

    // docs command
    'cli.command.docs.description': 'Open the full documentation',

    // splash command
    'cli.command.splash.description': 'Swap splash screen logos (light/dark) and regenerate native assets',
    'splash.intro': 'Splash screen',
    'splash.validating': 'Validating PNG files...',
    'splash.validated': 'PNG files look good',
    'splash.copying': 'Copying logos to assets/images/...',
    'splash.copied': 'Logos copied',
    'splash.android12Generating': 'Generating padded variants for Android 12+...',
    'splash.android12Generated': 'Android 12+ variants generated',
    'splash.generating': 'Regenerating native splash (Android, iOS, Web)...',
    'splash.generated': 'Native splash regenerated',
    'splash.done': 'Done. Run "flutter run" to see the new splash.',
    'splash.warn.title': 'Warnings',
    'splash.warn.noAlphaLight': '{path} has no alpha channel. The logo will show with a solid background instead of being transparent.',
    'splash.warn.noAlphaDark': '{path} has no alpha channel. The logo will show with a solid background instead of being transparent.',
    'splash.warn.smallLight': 'Light logo is {w}x{h}. Recommended is at least 768x768 to avoid blurry edges.',
    'splash.warn.smallDark': 'Dark logo is {w}x{h}. Recommended is at least 768x768 to avoid blurry edges.',
    'splash.summary.title': 'Saved',
    'splash.summary.light': 'Light mode',
    'splash.summary.dark': 'Dark mode',
    'splash.skipGenerate.title': 'Skipped generation',
    'splash.skipGenerate.hint': 'Run `dart run flutter_native_splash:create` when you are ready.',
    'splash.error.notKasyProject': 'pubspec.yaml not found. Run this command from inside a Flutter/Kasy project.',
    'splash.error.bothRequired': '--light and --dark are both required.',
    'splash.error.fileNotFound': 'File not found: {path}',
    'splash.error.notPng': 'One of the files is not a valid PNG.',
    'splash.error.generateFailed': 'flutter_native_splash:create failed. Check the output above.',

    // icon command
    'cli.command.icon.description': 'Swap the app icon (iOS + Android) and regenerate native assets',
    'icon.intro': 'App icon',
    'icon.validating': 'Validating PNG file...',
    'icon.validated': 'PNG looks good',
    'icon.copying': 'Copying icon to assets/images/icon.png...',
    'icon.copied': 'Icon copied',
    'icon.adaptive.generating': 'Generating Android adaptive variant (fills the launcher circle)...',
    'icon.adaptive.generated': 'Android adaptive icon generated',
    'icon.adaptive.failed': 'Failed to generate Android adaptive icon',
    'icon.adaptive.fallbackTitle': 'Android background',
    'icon.adaptive.fallbackColor': 'Could not sample a background color from the PNG (transparent). Used white. Edit icon_android.png if you want a different color.',
    'icon.generating': 'Regenerating native icons (Android + iOS)...',
    'icon.generated': 'Native icons regenerated',
    'icon.done': 'Done. Uninstall the app from the device and reinstall to see the new icon.',
    'icon.warn.title': 'Warnings',
    'icon.warn.notSquare': 'Icon is {w}x{h} (not square). The image will be stretched. Use a square image (1024x1024 recommended).',
    'icon.warn.small': 'Icon is {w}x{h}. Recommended is at least 1024x1024 (App Store requires this size).',
    'icon.warn.hasAlpha': 'Icon has transparency. iOS rejects icons with alpha channel — flutter_launcher_icons will remove it automatically (remove_alpha_ios: true).',
    'icon.summary.title': 'Saved',
    'icon.summary.icon': 'App icon',
    'icon.skipGenerate.title': 'Skipped generation',
    'icon.skipGenerate.hint': 'Run `dart run flutter_launcher_icons` when you are ready.',
    'icon.reinstall.title': 'Important',
    'icon.reinstall.hint': 'iOS and Android cache the old icon. Uninstall the app and reinstall to see the new one.',
    'icon.error.notKasyProject': 'pubspec.yaml not found. Run this command from inside a Flutter/Kasy project.',
    'icon.error.imageRequired': '--image is required.',
    'icon.error.fileNotFound': 'File not found: {path}',
    'icon.error.notPng': 'The file is not a valid PNG.',
    'icon.error.generateFailed': 'flutter_launcher_icons failed. Check the output above.',

    // favicon command
    'cli.command.favicon.description': 'Swap the web favicon / PWA icon and regenerate web assets',
    'favicon.intro': 'Web favicon',
    'favicon.validating': 'Validating PNG file...',
    'favicon.validated': 'PNG looks good',
    'favicon.copying': 'Copying favicon to assets/images/favicon.png...',
    'favicon.copied': 'Favicon copied',
    'favicon.generating': 'Regenerating web icons (favicon + PWA sizes)...',
    'favicon.generated': 'Web icons regenerated',
    'favicon.done': 'Done. Run "flutter run -d chrome" to see the new favicon.',
    'favicon.warn.title': 'Warnings',
    'favicon.warn.notSquare': 'Favicon is {w}x{h} (not square). It will be stretched. Use a square image (512x512+ recommended).',
    'favicon.warn.small': 'Favicon is {w}x{h}. Recommended is at least 512x512 so it stays sharp on PWA install screens.',
    'favicon.summary.title': 'Saved',
    'favicon.summary.favicon': 'Favicon',
    'favicon.skipGenerate.title': 'Skipped generation',
    'favicon.skipGenerate.hint': 'Run `dart run flutter_launcher_icons` when you are ready.',
    'favicon.error.notKasyProject': 'pubspec.yaml not found. Run this command from inside a Flutter/Kasy project.',
    'favicon.error.imageRequired': '--image is required.',
    'favicon.error.fileNotFound': 'File not found: {path}',
    'favicon.error.notPng': 'The file is not a valid PNG.',
    'favicon.error.generateFailed': 'flutter_launcher_icons failed. Check the output above.',

    // notifications command
    'cli.command.notifications.description': 'Edit the text of local notifications and reminders',
    'cli.command.notifications.text.description': 'Set titles and bodies shown in local notifications',
    'cli.command.notifications.picker.intro': 'Edit notification texts',
    'cli.command.notifications.picker.message': 'What do you want to do?',
    'notifications.error.notKasyProject': 'No kit_setup.json found. Run this command from inside a Kasy project.',
    'notifications.error.noI18n': 'lib/i18n/*.i18n.json not found in this project.',
    'notifications.error.noFeatures': 'lib/core/config/features.dart not found.',
    'notifications.error.notEnabled': 'Local notifications are disabled. Run: kasy add local_notifications',
    'notifications.error.cancelled': 'Cancelled.',
    'notifications.prompt.intro': 'Local notification texts',
    'notifications.prompt.hint': 'Home demo = instant test from Features. Reminder = scheduled alert from Settings.',
    'notifications.prompt.demoTitle': 'Home demo — notification title',
    'notifications.prompt.demoBody': 'Home demo — description / body',
    'notifications.prompt.reminderTitle': 'Scheduled reminder — title',
    'notifications.prompt.reminderBody': 'Scheduled reminder — body',
    'notifications.prompt.required': 'Required.',
    'notifications.writing': 'Updating lib/i18n/*.i18n.json...',
    'notifications.written': 'Updated: {langs}',
    'notifications.slang': 'Running dart run slang...',
    'notifications.slangDone': 'Translations regenerated',
    'notifications.slangFailed': 'dart run slang failed — run it manually in the project',
    'notifications.done': 'Local notification copy updated.',
    'notifications.summary.demo': 'Home → Features (demo):',
    'notifications.summary.reminder': 'Settings → Reminders (scheduled):',

    'add.list.title': 'Project features',
    'add.error.noModule': 'Provide a feature name or use --list to see available features.',
    'add.error.notKasyProject': 'No kit_setup.json found. Run this command from inside a Kasy project.',
    'add.error.unknownModule': 'Unknown feature: {module}\nAvailable: {list}',
    'add.alreadyActive': 'Feature "{module}" is already active in this project.',
    'add.applying': 'Adding feature: {module}',
    'add.applyingPatch': 'Applying feature changes...',
    'add.patchApplied': 'Patch applied',
    'add.patchFailed': 'Patch failed — check the output above',
    'add.pubGet': 'Installing Flutter packages (flutter pub get)...',
    'add.pubGetDone': 'Dependencies updated',
    'add.pubGetFailed': 'Failed to install Flutter packages — run `flutter pub get` manually',
    'add.buildRunner': 'Generating code (Riverpod/Freezed)...',
    'add.buildRunnerDone': 'Code generation complete',
    'add.buildRunnerFailed': 'Code generation failed — run `dart run build_runner build` manually',
    'add.success': 'Feature "{module}" added successfully.',
    'add.cancelled': 'Cancelled.',
    'add.prompt.sentryDsn': 'Sentry DSN (leave blank to configure later):',
    'add.prompt.mixpanelToken': 'Mixpanel Token (leave blank to configure later):',
    'add.prompt.rcTestKey': 'Test Store key (test_xxx) — optional, works for both iOS+Android and on simulator:',
    'add.prompt.rcIosProdKey': 'iOS production key (appl_xxx) — optional, only on physical device:',
    'add.prompt.rcAndroidProdKey': 'Android production key (goog_xxx) — optional, only on physical device:',
    // Legacy keys — kept for compatibility with old scripts.
    'add.prompt.rcAndroidKey': 'RevenueCat Android API key (leave blank to configure later):',
    'add.prompt.rcIosKey': 'RevenueCat iOS API key (leave blank to configure later):',
    'add.note.facebook': 'Add your Facebook App ID and token in .vscode/launch.json (FB_APP_ID, FB_TOKEN).',
    'new.q.llm_chat.configureNow': 'Configure the LLM Chat agent now?',
    'new.q.llm_chat.configureNow.hint': 'You can skip and run "kasy add llm_chat" later',
    'add.llm_chat.reconfigure': 'Feature already active — reconfiguring credentials only.',
    'add.prompt.llmProvider': 'LLM provider:',
    'add.prompt.llmSystemPrompt': 'Agent system prompt (leave blank for none):\n  Example: "You are a support assistant for the Fitsync app. Only answer about workouts."\n >',
    'add.prompt.llmApiKey': 'API key (OpenAI or Gemini) — stored as server secret, never in the app (leave blank to set later):',
    'add.prompt.llmEndpoint': 'Your LLM endpoint URL (leave blank to configure later):',
    'add.llm_chat.settingSecret': 'Storing API key as server secret...',
    'add.llm_chat.secretSet': 'API key stored as secret',
    'add.llm_chat.secretFailed': 'Could not set secret automatically — set it manually (see instructions below)',
    'add.llm_chat.skipSecret': 'API key skipped — set it later via the server CLI before deploying',
    'add.llm_chat.deploying': 'Deploying LLM function to server...',
    'add.llm_chat.deployed': 'LLM function deployed successfully',
    'add.llm_chat.deployFailed': 'Auto-deploy failed — deploy manually (see instructions below)',
    'add.llm_chat.nextSteps.firebase': '\n  Next steps:\n  1. The LLM_CHAT_ENDPOINT in .vscode/launch.json has been pre-filled.\n  2. Run the app: kasy run\n',
    'add.llm_chat.nextSteps.firebase.deployFailed': '\n  Next steps:\n  1. Deploy manually: firebase deploy --only functions:llmChat\n  2. The LLM_CHAT_ENDPOINT in .vscode/launch.json has been pre-filled.\n  3. Run the app: kasy run\n',
    'add.llm_chat.nextSteps.supabase': '\n  Next steps:\n  1. The LLM_CHAT_ENDPOINT in .vscode/launch.json has been pre-filled.\n  2. Run the app: kasy run\n',
    'add.llm_chat.nextSteps.supabase.deployFailed': '\n  Next steps:\n  1. Deploy manually: supabase functions deploy llm-chat --no-verify-jwt\n  2. The LLM_CHAT_ENDPOINT in .vscode/launch.json has been pre-filled.\n  3. Run the app: kasy run\n',
    'add.llm_chat.nextSteps.api': '\n  Next steps:\n  1. Create an endpoint on your server that accepts {message, history} and calls your LLM.\n  2. Update LLM_CHAT_ENDPOINT in .vscode/launch.json with your endpoint URL.\n  3. Run the app: kasy run\n',
    'cli.command.remove.description': 'Remove a feature you no longer use (e.g.: kasy remove sentry)',
    'remove.error.noModule': 'Provide a feature name. Usage: kasy remove <feature>',
    'remove.error.notKasyProject': 'No kit_setup.json found. Run this command from inside a Kasy project.',
    'remove.error.unknownModule': 'Unknown feature: {module}\nAvailable: {list}',
    'remove.error.notActive': 'Feature "{module}" is not active in this project.',
    'remove.confirm': 'Remove feature "{module}"? This will delete files and dependencies.',
    'remove.cancelled': 'Cancelled.',
    'remove.removing': 'Removing feature: {module}',
    'remove.pubGet': 'Installing Flutter packages (flutter pub get)...',
    'remove.pubGetDone': 'Dependencies updated',
    'remove.pubGetFailed': 'Failed to install Flutter packages — run `flutter pub get` manually',
    'remove.buildRunner': 'Generating code (Riverpod/Freezed)...',
    'remove.buildRunnerDone': 'Code generation complete',
    'remove.buildRunnerFailed': 'Code generation failed — run `dart run build_runner build` manually',
    'remove.success': 'Feature "{module}" removed successfully.',
    'remove.warn.ci': 'CI files removed. If you had custom workflow files, restore them from git.',
    'remove.warn.sentry.shared': 'sentry_flutter kept — still required by active features (revenuecat/facebook).',
    'cli.command.update.description': 'Update parts of your app to the latest (e.g.: kasy update components)',
    'cli.command.update.targetArg': 'Target to update (e.g. revenuecat, sentry, components)',
    'update.error.noProject': 'No kit_setup.json found. Run this command from inside a Kasy project.',
    'update.error.unknownModule': 'Unknown feature: {module}\nAvailable: {list}',
    'update.error.unknownTarget': 'Unknown update target: {module}\nAvailable: {list}',
    'update.error.notActive': 'Feature "{module}" is not active in this project.',
    'update.alreadyUpToDate': 'Project is already up to date (v{version}).',
    'update.status': 'Project: v{from}  →  CLI: v{to}',
    'update.noVersion': 'Project was generated without version tracking. All features can be updated.',
    'update.changesTitle': 'Updates available:',
    'update.reapplyTitle': 'No new changes — can re-apply if needed:',
    'update.howToUpdate': 'To update a feature:',
    'update.howToUpdateComponents': 'To update base components:',
    'update.warn.commit': 'This will overwrite files from feature "{module}". Make sure you have committed your changes first.',
    'update.warn.commitComponents': 'This will overwrite base component files. Make sure you have committed your changes first.',
    'update.confirm': 'Overwrite feature "{module}" files with the latest version?',
    'update.confirmComponents': 'Overwrite base component files with the latest version?',
    'update.confirmCore': 'Overwrite core files (animations, widgets, theme, dev tools) with the latest version?',
    'update.cancelled': 'Cancelled.',
    'update.applying': 'Applying update for feature: {module}',
    'update.applyingComponents': 'Applying update for base components...',
    'update.applyingCore': 'Applying update for core files...',
    'update.applied': 'Feature {module} updated',
    'update.appliedComponents': '{count} base component files updated',
    'update.appliedCore': '{count} core files updated',
    'update.applyFailed': 'Failed to apply update for feature {module}',
    'update.applyComponentsFailed': 'Failed to apply update for base components',
    'update.noPatch': 'Feature "{module}" has no files to update (configuration-only feature).',
    'update.noComponentFiles': 'No base component files were found to update.',
    'update.pubGet': 'Installing Flutter packages (flutter pub get)...',
    'update.pubGetDone': 'Dependencies updated',
    'update.pubGetFailed': 'Failed to install Flutter packages — run `flutter pub get` manually',
    'update.buildRunner': 'Generating code (Riverpod/Freezed)...',
    'update.buildRunnerDone': 'Code generation complete',
    'update.buildRunnerFailed': 'Code generation failed — run `dart run build_runner build` manually',
    'update.success': 'Feature "{module}" updated successfully.',
    'update.componentsSuccess': 'Base components updated successfully.',
    'update.coreSuccess': 'Core files updated successfully.',
    'check.intro': 'Kasy Check — Push Notifications',
    'check.firebase.detected': 'Firebase backend',
    'check.firebase.adcInfo': 'Firebase uses Application Default Credentials — no extra setup needed.',
    'check.apns.warn': 'iOS push requires APNs Key (cannot be verified via CLI)',
    'check.apns.where': 'Firebase Console → Cloud Messaging → iOS app → APNs Authentication Key',
    'check.done': 'Done',
    'check.notKasy': 'This directory does not look like a Kasy project.',
    'check.aborted': 'Aborted',
    'check.supabase.notLinked': 'Supabase project not linked',
    'check.supabase.notLinkedHint': 'run: supabase link --project-ref YOUR_REF',
    'check.supabase.linked': 'Project linked',
    'check.spin.secrets': 'Checking secrets…',
    'check.spin.secretsDone': 'Secrets checked',
    'check.secrets.listFailed': 'Could not list secrets',
    'check.secrets.checkLogin': 'verify: supabase login',
    'check.fbProjId.ok': 'FIREBASE_PROJECT_ID configured',
    'check.fbProjId.missing': 'FIREBASE_PROJECT_ID missing',
    'check.fbProjId.fixHint': 'Fix: supabase secrets set FIREBASE_PROJECT_ID="{id}"',
    'check.fbProjId.fixed': 'FIREBASE_PROJECT_ID → set automatically',
    'check.fbProjId.fixFailed': 'FIREBASE_PROJECT_ID → failed to set',
    'check.fbSak.ok': 'FIREBASE_SERVICE_ACCOUNT_JSON configured',
    'check.fbSak.missing': 'FIREBASE_SERVICE_ACCOUNT_JSON missing',
    'check.fbSak.spin': 'Generating and setting FCM key…',
    'check.fbSak.spinDone': 'FCM key generated',
    'check.fbSak.fixed': 'FIREBASE_SERVICE_ACCOUNT_JSON → set automatically',
    'check.fbSak.fixFailed': 'FIREBASE_SERVICE_ACCOUNT_JSON → failed to set',
    'check.fbSak.genFailed': 'FIREBASE_SERVICE_ACCOUNT_JSON → could not generate key',
    'check.fbSak.manual': "Manual: Firebase Console → Settings → Service accounts → Generate key\nThen: supabase secrets set FIREBASE_SERVICE_ACCOUNT_JSON='$(cat key.json)'",
    'check.fbSak.hint': "Auto-fix: kasy check --fix\nOr manually: Firebase Console → Settings → Service accounts → Generate key\nThen: supabase secrets set FIREBASE_SERVICE_ACCOUNT_JSON='$(cat key.json)'",
    'check.fn.spin': 'Checking edge functions…',
    'check.fn.spinDone': 'Edge functions checked',
    'check.fn.listFailed': 'Could not list edge functions',
    'check.fn.deployed': 'Edge function send-push-notification deployed',
    'check.fn.missing': 'Edge function send-push-notification not deployed',
    'check.fn.deploySpin': 'Deploying send-push-notification…',
    'check.fn.deployDone': 'send-push-notification → deployed automatically',
    'check.fn.deployFailed': 'send-push-notification → deploy failed',
    'check.fn.hint': 'Auto-fix: kasy check --fix\nOr manually: supabase functions deploy send-push-notification',
    'deploy.firebase.intro': 'Deploy — Firebase',
    'deploy.firebase.spin': 'Deploying Firebase...',
    'deploy.firebase.spinDone': 'Firebase deploy completed',
    'deploy.apns.title': 'iOS push: configure the APNs Key in Firebase Console',
    'deploy.apns.step1': '1. Apple Developer Portal → Keys → create APNs Key (.p8)',
    'deploy.apns.step2': '2. Firebase Console → Cloud Messaging → iOS app → upload APNs Key',
    'deploy.supabase.intro': 'Deploy — Supabase',
    'deploy.supabase.notLinked': 'Supabase project not linked in this directory.',
    'deploy.supabase.linkHint': 'Run: supabase link --project-ref YOUR_PROJECT_REF',
    'deploy.supabase.projectRef': 'Project ref: {ref}',
    'deploy.supabase.sakAlready': 'FIREBASE_SERVICE_ACCOUNT_JSON already configured',
    'deploy.supabase.sakSpin': 'Generating FCM key (Service Account)…',
    'deploy.supabase.sakSpinDone': 'FCM key generated',
    'deploy.supabase.sakManual': "Configure manually: supabase secrets set FIREBASE_SERVICE_ACCOUNT_JSON='...'",
    'deploy.supabase.sakNoGS': 'google-services.json not found — configure manually',
    'deploy.supabase.fnSpin': 'Deploying edge functions…',
    'deploy.supabase.fnSpinDone': 'Edge functions processed',
    'deploy.supabase.fnNone': 'edge functions (none found)',
    'deploy.outro': 'Deploy completed',
};
