{
"cli.bundle.init.creating": "Creating bundle at {}...",
"cli.bundle.init.created": "Bundle created at {}",
"cli.bundle.init.exists": "Bundle already exists at {}",
"cli.bundle.init.next_steps": "Next steps:",
"cli.bundle.init.step_add": " 1. greentic-setup bundle add <pack.gtpack> --bundle {}",
"cli.bundle.init.step_setup": " 2. greentic-setup bundle setup --bundle {} --answers answers.yaml",
"cli.bundle.add.adding": "Adding pack to bundle...",
"cli.bundle.add.pack_ref": " Pack ref: {}",
"cli.bundle.add.bundle": " Bundle: {}",
"cli.bundle.add.tenant": " Tenant: {}",
"cli.bundle.add.team": " Team: {}",
"cli.bundle.add.env": " Env: {}",
"cli.bundle.add.created_structure": "Created bundle structure at {}",
"cli.bundle.add.dry_run": "[dry-run] Would add pack to bundle",
"cli.bundle.add.success": "Pack added to bundle successfully.",
"cli.bundle.add.resolved": " Resolved packs: {}",
"cli.bundle.add.version_warning": "Warning: Version {} validation failed: {}",
"cli.bundle.setup.setting_up": "Setting up provider...",
"cli.bundle.setup.provider": " Provider: {}",
"cli.bundle.setup.domain": " Domain: {}",
"cli.bundle.setup.interactive_not_impl": "Interactive setup not yet implemented.",
"cli.bundle.setup.use_answers": "Use --answers <file> to provide setup answers.",
"cli.bundle.setup.use_emit_answers": "Or use --emit-answers <file> to generate answers template.",
"cli.bundle.setup.dry_run": "[dry-run] Would setup provider: {}",
"cli.bundle.setup.complete": "Provider setup complete: {}",
"cli.bundle.setup.emit_written": "Answers template written to: {}",
"cli.bundle.setup.emit_usage": "Edit and use with: greentic-setup bundle setup --answers {}",
"cli.bundle.update.updating": "Updating provider configuration...",
"cli.bundle.update.dry_run": "[dry-run] Would update provider: {}",
"cli.bundle.update.complete": "Provider update complete: {}",
"cli.bundle.update.emit_usage": "Edit and use with: greentic-setup bundle update --answers {}",
"cli.bundle.remove.removing": "Removing provider...",
"cli.bundle.remove.confirm": "This will remove the provider configuration.",
"cli.bundle.remove.use_force": "Use --force to confirm.",
"cli.bundle.remove.cancelled": "removal cancelled - use --force to confirm",
"cli.bundle.remove.complete": "Provider removed: {}",
"cli.bundle.build.building": "Building portable bundle...",
"cli.bundle.build.output": " Output: {}",
"cli.bundle.build.running_doctor": "Running doctor validation...",
"cli.bundle.build.success": "Bundle built successfully at {}",
"cli.bundle.list.bundle": "Bundle: {}",
"cli.bundle.list.domain": "Domain: {}",
"cli.bundle.list.packs_found": "Packs found: {}",
"cli.bundle.status.not_found": "Bundle not found: {}",
"cli.bundle.status.valid_yes": "yes",
"cli.bundle.status.valid_no": "no (missing greentic.demo.yaml)",
"cli.bundle.status.packs": "Packs: {} installed",
"cli.bundle.status.tenants": "Tenants: {}",
"cli.error.answers_required": "--answers required in non-interactive mode",
"cli.error.interactive_required": "interactive setup requires --answers file",
"cli.error.invalid_bundle": "invalid bundle directory",
"cli.error.failed_create_bundle": "failed to create bundle structure",
"cli.error.failed_read_answers": "failed to read answers file",
"cli.error.failed_build_plan": "failed to build plan",
"cli.error.failed_execute_plan": "failed to execute plan",
"cli.error.failed_emit_answers": "failed to emit answers template",
"setup.discovering_packs": "Discovering packs in bundle...",
"setup.found_packs": "Found {} pack(s): {}",
"setup.plan.header": "Setup plan:",
"setup.plan.step.discover": "Discover packs",
"setup.plan.step.collect_answers": "Collect answers for {}",
"setup.plan.step.seed_secrets": "Seed secrets for {}",
"setup.plan.step.write_config": "Write config for {}",
"setup.plan.step.run_setup": "Run setup flow for {}",
"setup.plan.step.webhooks": "Register webhooks for {}",
"setup.plan.step.resolve": "Generate resolved manifest",
"setup.plan.step.validate": "Validate bundle",
"setup.execute.success": "Setup complete: {}",
"setup.execute.failed": "Setup failed: {}",
"setup.answers.emitted": "Answers template written to {}",
"setup.answers.loaded": "Loaded answers from {}",
"setup.dry_run.header": "Setup plan (dry-run):",
"setup.error.bundle_not_found": "Bundle not found: {}",
"setup.error.protocol_not_supported": "Protocol not yet supported: {}",
"setup.error.version_mismatch": "Tag version ({}) does not match crate version ({})",
"setup.secrets.seeded": "Seeded {} secret(s) for provider={} tenant={}",
"setup.secrets.failed": "Failed to seed secrets for provider={} tenant={}: {}",
"setup.capability.resolved": "Resolved capability: pack_id={} stable_id={}",
"setup.capability.not_found": "No capability '{}' found",
"setup.state_store.upgraded": "State store upgraded to Redis: {}",
"setup.state_store.fallback": "Using in-memory state store (no Redis URL available)",
"setup.qa.question_prompt": "{}",
"setup.qa.required_field": "This field is required",
"setup.qa.invalid_choice": "Invalid choice. Options: {}",
"setup.qa.secret_input": "Enter secret value (hidden):",
"cli.bundle.status.bundle_label": "Bundle: {}",
"cli.simple.bundle_required": "Bundle path required. Usage: greentic-setup [OPTIONS] <BUNDLE>",
"cli.simple.header": "Greentic Setup",
"cli.simple.interactive_mode": "Interactive wizard mode",
"cli.simple.wizard_not_impl": "interactive wizard not yet implemented - use --answers <file>",
"cli.simple.emit_usage": "Edit and use with: greentic-setup --answers {} {}",
"cli.simple.dry_run": "[dry-run] Would setup bundle: {}",
"cli.simple.extracting": "Extracting .gtbundle archive...",
"cli.simple.extracted_to": " Extracted to: {}",
"cli.simple.expected_bundle_format": "expected directory or .gtbundle file: {}",
"cli.help.for_help": "For help: greentic-setup --help",
"ui.title": "Greentic Setup",
"ui.description": "Configure {} provider(s) in {}",
"ui.no_providers": "No providers found in bundle.",
"ui.nothing_to_configure": "Nothing to configure.",
"ui.discovering": "Discovering providers...",
"ui.discovering_sub": "Reading bundle configuration",
"ui.start_config": "Start Configuration",
"ui.configure": "Configure {}",
"ui.review_execute": "Review & Execute",
"ui.close": "Close",
"ui.back": "Back",
"ui.continue": "Continue",
"ui.execute_setup": "Execute Setup",
"ui.new_setup": "New Setup",
"ui.pending": "Pending",
"ui.done": "Done",
"ui.questions": "questions",
"ui.scope.title": "Setup Scope",
"ui.scope.description": "Configure the target tenant, environment, and team for this setup.",
"ui.scope.hint": "These values determine where secrets and configuration are stored. Make sure they match your runtime settings.",
"ui.scope.tenant": "Tenant",
"ui.scope.env": "Environment",
"ui.scope.env_help": "Must match GREENTIC_ENV used by the runtime (dev, local, test).",
"ui.scope.team": "Team",
"ui.scope.team_help": "Leave empty for default. Used to scope secrets per team.",
"ui.scope.detected_tenant": "Detected from bundle: {}",
"ui.dashboard.description": "Configure {} provider(s) in {}. Create multiple scopes for different tenants/environments.",
"ui.dashboard.add_scope": "Add Scope",
"ui.dashboard.export": "Export Answers",
"ui.dashboard.delete": "Delete",
"ui.dashboard.configured": "configured",
"ui.dashboard.executed": "Executed",
"ui.dashboard.back": "Back to Dashboard",
"ui.export.title": "Export Answers",
"ui.export.description": "Download configuration as a JSON answers file compatible with --answers mode.",
"ui.export.password": "Encryption Password",
"ui.export.password_hint": "Leave empty for no encryption",
"ui.export.password_help": "If set, secret values will be encrypted with AES-256-GCM. You will need this password when using --answers --key.",
"ui.export.download": "Download answers.json",
"ui.import.dropzone": "Drop answers.json here or click to import",
"ui.import.password_prompt": "This file contains encrypted secrets. Enter the decryption password:",
"ui.import.parse_error": "Failed to parse file",
"ui.import.decrypt_failed": "Decryption failed",
"ui.import.no_scopes": "No valid scopes found in file.",
"ui.shared.title": "Shared Configuration",
"ui.shared.description": "These questions apply to all providers.",
"ui.provider.configure": "Configure {}",
"ui.review.title": "Review & Execute",
"ui.review.description": "Review configuration before applying to bundle.",
"ui.review.secret_mask": "********",
"ui.review.yes": "Yes",
"ui.review.no": "No",
"ui.executing.title": "Running setup...",
"ui.executing.sub": "Applying configuration to bundle",
"ui.result.success.title": "Setup Complete",
"ui.result.success.description": "Bundle configured successfully.",
"ui.result.fail.title": "Setup Failed",
"ui.result.fail.description": "Something went wrong during setup.",
"ui.result.output": "Output",
"ui.result.log": "Log",
"ui.result.manual_steps": "Manual Steps Required",
"ui.result.closed": "Setup closed.",
"ui.result.closed_sub": "You can close this tab.",
"ui.field.required": "{} is required.",
"ui.select_action": "Select an action to get started.",
"ui.q.public_base_url": "Public base URL",
"ui.q.public_base_url.help": "Public-facing URL for webhook callbacks (e.g. https://xxxx.trycloudflare.com)",
"ui.q.api_base_url": "API base URL",
"ui.q.mode": "Mode",
"ui.q.route": "Route",
"ui.q.enabled": "Enable provider",
"ui.q.base_url": "Base URL",
"ui.q.default_channel": "Default channel",
"ui.q.team_id": "Team ID",
"ui.q.channel_id": "Channel ID",
"ui.q.tenant_channel_id": "Tenant channel ID",
"ui.q.default_room_id": "Default room ID",
"ui.q.default_to_person_email": "Default person email",
"ui.q.jwt_signing_key": "JWT signing key",
"ui.q.jwt_signing_key.help": "Secret key used to sign Direct Line tokens. Use any random string (e.g. openssl rand -hex 32).",
"ui.q.slack_bot_token": "Slack bot token",
"ui.q.slack_app_id": "Slack App ID",
"ui.q.slack_configuration_token": "Slack Configuration Token",
"ui.q.ms_bot_app_id": "Bot App ID",
"ui.q.ms_bot_app_id.help": "Microsoft Bot App ID from Azure Bot Service registration",
"ui.q.ms_bot_app_password": "Bot App Password",
"ui.q.webex_bot_token": "Webex bot token",
"ui.q.oauth_enabled": "Enable OAuth login",
"ui.q.oauth_enabled.help": "Require users to sign in before accessing the chat",
"ui.q.oauth_enable_google": "Enable Google login",
"ui.q.oauth_google_client_id": "Google Client ID",
"ui.q.oauth_google_client_secret": "Google Client Secret",
"ui.q.oauth_enable_microsoft": "Enable Microsoft login",
"ui.q.oauth_microsoft_client_id": "Microsoft Client ID",
"ui.q.oauth_microsoft_client_secret": "Microsoft Client Secret",
"ui.q.oauth_enable_github": "Enable GitHub login",
"ui.q.oauth_github_client_id": "GitHub Client ID",
"ui.q.oauth_github_client_secret": "GitHub Client Secret",
"ui.q.oauth_enable_custom": "Enable custom OIDC provider",
"ui.q.oauth_custom_label": "Provider display name",
"ui.q.oauth_custom_auth_url": "Authorization URL",
"ui.q.oauth_custom_token_url": "Token URL",
"ui.q.oauth_custom_client_id": "Client ID",
"ui.q.oauth_custom_scopes": "Scopes"
}