// English Language Pack for IronClaw

I18n.register('en', {
  // Auth Page
  'auth.title': 'IronClaw',
  'auth.tagline': 'Secure AI Assistant',
  'auth.tokenLabel': 'Gateway Token',
  'auth.tokenPlaceholder': 'Paste your token',
  'auth.connect': 'Connect',
  'auth.errorRequired': 'Token required',
  'auth.errorInvalid': 'Invalid token',
  'auth.hint': 'Enter the GATEWAY_AUTH_TOKEN from your .env file',
  
  // Chat
  'chat.inputPlaceholder': 'Message or / for commands...',
  
  // Restart Modal
  'restart.title': 'Restart IronClaw Instance',
  'restart.description': 'Are you sure you want to restart IronClaw? This will gracefully restart the process.',
  'restart.warning': 'Running tasks may be interrupted. Restart will complete in a few seconds.',
  'restart.cancel': 'Cancel',
  'restart.confirm': 'Confirm Restart',
  'restart.progressTitle': 'Restarting IronClaw',
  'restart.progressSubtitle': 'Please wait for the process to restart...',
  'restart.checkLogs': 'Check the Logs tab for details after restart completes.',
  
  // Tabs
  'tab.chat': 'Chat',
  'tab.memory': 'Memory',
  'tab.jobs': 'Jobs',
  'tab.routines': 'Routines',
  'tab.settings': 'Settings',
  'tab.extensions': 'Extensions',
  'tab.skills': 'Skills',
  'tab.logs': 'Logs',
  'settings.inference': 'Inference',
  'settings.agent': 'Agent',
  'settings.channels': 'Channels',
  'settings.networking': 'Networking',
  'settings.mcp': 'MCP',
  
  // Status
  'status.connected': 'Connected',
  'status.disconnected': 'Disconnected',
  'status.connecting': 'Connecting...',
  'status.reconnecting': 'Reconnecting...',
  'status.teeVerified': 'TEE Verified',
  'status.restart': 'Restart',
  'status.active': 'Active',
  'status.installed': 'Installed',
  'status.awaitingPairing': 'Awaiting Pairing',
  
  // Dashboard
  'dashboard.connections': 'Connections',
  'dashboard.uptime': 'Uptime',
  'dashboard.costToday': 'Cost Today',
  'dashboard.spent': 'Spent',
  'dashboard.actionsPerHour': 'Actions/hr',
  'dashboard.sse': 'SSE',
  'dashboard.websocket': 'WebSocket',
  
  // Chat Tab
  'chat.newThread': 'New Thread',
  'chat.toggleSidebar': 'Toggle Sidebar',
  'chat.assistant': 'Assistant',
  'chat.conversations': 'Conversations',
  'chat.send': 'Send',
  'chat.attachImages': 'Attach Images',
  'chat.empty': 'Select a file to view content',
  'chat.loading': 'Loading...',
  'chat.loadingOlder': 'Loading older messages...',
  'chat.noFiles': 'No files in workspace',
  'chat.noResults': 'No results',
  
  // Thread Sidebar
  'thread.assistant': 'Assistant',
  'thread.new': 'New Thread',
  
  // Memory Tab
  'memory.searchPlaceholder': 'Search memory...',
  'memory.workspace': 'workspace',
  'memory.edit': 'Edit',
  'memory.save': 'Save',
  'memory.cancel': 'Cancel',
  'memory.selectFile': 'Select a file to view content',
  
  // Jobs Tab
  'jobs.summary': 'Jobs Summary',
  'jobs.id': 'ID',
  'jobs.title': 'Title',
  'jobs.source': 'Source',
  'jobs.status': 'Status',
  'jobs.created': 'Created',
  'jobs.actions': 'Actions',
  'jobs.empty': 'No jobs',
  'jobs.statusRunning': 'Running',
  'jobs.statusCompleted': 'Completed',
  'jobs.statusFailed': 'Failed',
  'jobs.statusPending': 'Pending',
  'jobs.jobId': 'Job ID',
  'jobs.description': 'Description',
  'jobs.stateTransitions': 'State Transitions',
  'jobs.projectFiles': 'Project Files',
  'jobs.noProjectFiles': 'No project files',
  'jobs.viewJob': 'View Job',
  'jobs.browse': 'Browse',
  
  // Routines Tab
  'routines.summary': 'Routines Summary',
  'routines.name': 'Name',
  'routines.trigger': 'Trigger',
  'routines.action': 'Action',
  'routines.lastRun': 'Last Run',
  'routines.nextRun': 'Next Run',
  'routines.runs': 'Runs',
  'routines.status': 'Status',
  'routines.actions': 'Actions',
  'routines.runsToday': 'Runs Today',
  'routines.empty': 'No routines',
  'routines.noConfigured': 'No routines configured. Ask the assistant to create one.',
  'routines.triggerFailed': 'Trigger failed: {message}',
  
  // Logs Tab
  'logs.serverLevel': 'Server: ERROR',
  'logs.clientLevel': 'Client Log Level',
  'logs.pause': 'Pause',
  'logs.resume': 'Resume',
  'logs.clear': 'Clear',
  'logs.autoScroll': 'Auto-scroll',
  'logs.filter': 'Filter logs...',
  'logs.empty': 'No logs',
  'logs.allLevels': 'All Levels',
  'logs.error': 'Error',
  'logs.warn': 'Warn',
  'logs.info': 'Info',
  'logs.debug': 'Debug',
  
  // Extensions Tab
  'extensions.installed': 'Installed Extensions',
  'extensions.available': 'Available Extensions',
  'extensions.installWasm': 'Install Extension',
  'extensions.noInstalled': 'No extensions installed',
  'extensions.noAvailable': 'No additional extensions available',
  'extensions.loading': 'Loading...',
  'extensions.install': 'Install',
  'extensions.installing': 'Installing...',
  'extensions.installedSuccess': 'Installed {name}',
  'extensions.remove': 'Remove',
  'extensions.activate': 'Activate',
  'extensions.reconfigure': 'Reconfigure',
  'extensions.tools': 'Tools',
  'extensions.noConfigNeeded': 'No configuration needed for {name}',
  'extensions.configure': 'Configure {name}',
  'extensions.optional': ' (optional)',
  'extensions.autoGenerated': 'Auto-generated if empty',
  'extensions.pendingPairing': 'Pending pairing requests',
  'extensions.from': 'from',
  
  // MCP Servers
  'mcp.servers': 'MCP Servers',
  'mcp.noServers': 'No MCP servers available',
  'mcp.addCustom': 'Add Custom MCP Server',
  'mcp.add': 'Add',
  'mcp.addedSuccess': 'Added MCP server {name}',


  // Skills Tab
  'skills.installed': 'Installed Skills',
  'skills.noInstalled': 'No skills installed',
  'skills.searchClawHub': 'Search ClawHub',
  'skills.searchPlaceholder': 'Search...',
  'skills.installByUrl': 'Install Skill by URL',
  'skills.namePlaceholder': 'Skill name or slug',
  'skills.urlPlaceholder': 'HTTPS URL to SKILL.md (optional)',
  'skills.search': 'Search',
  'skills.searching': 'Searching...',
  'skills.noResults': 'No skills found for "{query}"',
  'skills.searchFailed': 'Search failed: {message}',
  'skills.install': 'Install',
  'skills.installing': 'Installing...',
  'skills.installedSuccess': 'Installed skill "{name}"',
  'skills.remove': 'Remove',
  'skills.activatesOn': 'Activates on',
  'skills.registryError': 'Could not reach ClawHub registry: {message}',
  'skills.by': 'by',
  'skills.updated': 'updated',
  'skills.loading': 'Loading skills...',
  'skills.loadFailed': 'Failed to load skills: {message}',
  'skills.confirmRemove': 'Remove skill "{name}"?',
  'skills.removeFailed': 'Remove failed: {message}',
  'skills.removed': 'Removed skill "{name}"',

  // Jobs Summary
  'jobs.summary.total': 'Total',
  'jobs.summary.inProgress': 'In Progress',
  'jobs.summary.completed': 'Completed',
  'jobs.summary.failed': 'Failed',
  'jobs.summary.stuck': 'Stuck',
  
  // Routines Summary
  'routines.summary.total': 'Total',
  'routines.summary.enabled': 'Enabled',
  'routines.summary.disabled': 'Disabled',
  'routines.summary.failing': 'Failing',
  'routines.summary.runsToday': 'Runs Today',
  
  // Buttons
  'btn.close': 'Close',
  'btn.cancel': 'Cancel',
  'btn.save': 'Save',
  'btn.edit': 'Edit',
  'btn.confirm': 'Confirm',
  'btn.send': 'Send',
  'btn.refresh': 'Refresh',
  'btn.loadMore': 'Load More',
  'btn.copy': 'Copy',
  'btn.copied': 'Copied!',
  'btn.submit': 'Submit',
  'btn.setup': 'Setup',
  
  // Time
  'time.lessThan1MinuteAgo': '<1m ago',
  'time.lessThan1MinuteFromNow': 'in <1m',
  'time.minutesAgo': '{n}m ago',
  'time.minutesFromNow': 'in {n}m',
  'time.hoursAgo': '{n}h ago',
  'time.hoursFromNow': 'in {n}h',
  'time.daysAgo': '{n}d ago',
  'time.daysFromNow': 'in {n}d',
  
  // Tool Approval
  'approval.title': 'Tool requires approval',
  'approval.description': 'A tool is requesting permission to run.',
  'approval.approve': 'Approve',
  'approval.deny': 'Deny',
  'approval.always': 'Always',
  'approval.approved': 'Approved',
  'approval.alwaysApproved': 'Always approved',
  'approval.denied': 'Denied',
  'approval.showParams': 'Show parameters',
  'approval.hideParams': 'Hide parameters',
  
  // Authentication Required
  'authRequired.title': 'Authentication required for {name}',
  'authRequired.authenticateWith': 'Authenticate with {name}',
  'authRequired.getToken': 'Get your token',
  'authRequired.instructions': 'Instructions',
  
  // Sandbox Jobs
  'sandbox.job': 'Sandbox Job',
  'sandbox.doneSignal': 'Done signal sent',
  
  // Error Messages
  'error.startConversation': 'Please start a conversation first',
  'error.restartFailed': 'Restart failed: {message}',
  'error.tokenRequired': 'Token required',
  'error.tokenInvalid': 'Invalid token',
  'error.connectionFailed': 'Connection failed',
  'error.unknown': 'Unknown error',
  'error.loadFailed': 'Failed to load: {message}',
  
  // Success Messages
  'success.restartInitiated': 'Restart initiated',
  'success.saved': 'Saved successfully',
  
  // Slash Commands
  'cmd.status.desc': 'Show all jobs, or /status <id> for a specific job',
  'cmd.list.desc': 'List all jobs',
  'cmd.cancel.desc': '/cancel <job-id> — Cancel a running job',
  'cmd.undo.desc': 'Undo last action',
  'cmd.redo.desc': 'Redo undone action',
  'cmd.compact.desc': 'Compact context window',
  'cmd.clear.desc': 'Clear conversation and start fresh',
  'cmd.interrupt.desc': 'Stop current operation',
  'cmd.heartbeat.desc': 'Trigger manual heartbeat check',
  'cmd.summarize.desc': 'Summarize current conversation',
  'cmd.suggest.desc': 'Suggest next actions',
  'cmd.help.desc': 'Show help',
  'cmd.version.desc': 'Show version info',
  'cmd.tools.desc': 'List available tools',
  'cmd.skills.desc': 'List installed skills',
  'cmd.model.desc': 'Show or switch LLM model',
  'cmd.threadNew.desc': 'Create new conversation thread',
  
  // Language Switcher
  'language.title': 'Language',
  'language.en': 'English',
  'language.zhCN': '简体中文',
  'language.switch': 'Switch Language',
  
  // Tool Activity
  'tool.thinking': 'Thinking...',
  'tool.completed': 'Completed',
  'tool.failed': 'Failed',
  'tool.running': 'Running',
  'tool.used': '{count} tool(s) used',
  'tool.requiresApproval': 'Tool requires approval',
  
  
  // TEE
  'tee.loadingReport': 'Loading attestation report...',
  'tee.loadFailed': 'Could not load attestation report',
  
  // Common
  'common.loading': 'Loading...',
  'common.loadFailed': 'Failed to load',
  'common.noData': 'No data',
  'common.search': 'Search',
  'common.add': 'Add',
  'common.remove': 'Remove',
  'common.install': 'Install',
  'common.activate': 'Activate',
  'common.deactivate': 'Deactivate',
  'common.configure': 'Configure',
  'common.save': 'Save',
  'common.cancel': 'Cancel',
  'common.confirm': 'Confirm',
  'common.close': 'Close',
  'common.edit': 'Edit',
  'common.delete': 'Delete',
  'common.refresh': 'Refresh',
  'common.searchPlaceholder': 'Search...',
  'common.name': 'Name',
  'common.description': 'Description',
  'common.status': 'Status',
  'common.actions': 'Actions',
  'common.version': 'Version',
  'common.owner': 'Owner',
  'common.tags': 'Tags',
  
  // Extensions
  'ext.active': 'Active',
  'ext.inactive': 'Inactive',
  'ext.builtin': 'Built-in',
  'ext.remove': 'Remove',
  'ext.install': 'Install',
  'ext.installing': 'Installing...',
  'ext.installed': 'Installed',
  'ext.setup': 'Setup',
  'ext.reconfigure': 'Reconfigure',
  'ext.configure': 'Configure',
  'ext.confirmRemove': 'Remove extension "{name}"?',
  'ext.removeFailed': 'Remove failed: {message}',
  'ext.removed': 'Removed {name}',
  'ext.installFailed': 'Install failed: {message}',
  
  // Configure
  'config.title': 'Configure {name}',
  'config.telegramOwnerHint': 'After saving, IronClaw will show a one-time code. Send `/start CODE` to your bot in Telegram and IronClaw will finish setup automatically.',
  'config.telegramChallengeTitle': 'Telegram owner verification',
  'config.telegramOwnerWaiting': 'Waiting for Telegram owner verification...',
  'config.telegramCommandLabel': 'Send this in Telegram:',
  'config.telegramStartOver': 'Start over',
  'config.telegramStartOverHint': 'Telegram verification did not complete. Click Start over to generate a new code and try again.',
  'config.telegramOpenBot': 'Open bot in Telegram',
  'config.optional': ' (optional)',
  'config.alreadySet': '(already set — leave empty to keep)',
  'config.alreadyConfigured': 'Already configured',
  'config.autoGenerate': 'Auto-generated if empty',
  'config.save': 'Save',
  'config.cancel': 'Cancel',

  // Settings toolbar
  'settings.export': 'Export',
  'settings.import': 'Import',
  'settings.searchPlaceholder': 'Search settings...',
  'settings.exportSuccess': 'Settings exported',
  'settings.exportFailed': 'Export failed: {message}',
  'settings.importSuccess': 'Settings imported successfully',
  'settings.importFailed': 'Import failed: {message}',
  'settings.restartRequired': 'Restart required for changes to take effect.',
  'settings.restartNow': 'Restart Now',
  'settings.noMatchingSettings': 'No settings matching "{query}"',
  'settings.noSettings': 'No settings found',
  'settings.saved': 'Saved',
  'settings.on': 'On',
  'settings.off': 'Off',
  'settings.envValue': 'env: {value}',
  'settings.envDefault': 'env default',
  'settings.useEnvDefault': 'use env default',

  // Settings groups
  'cfg.group.llm': 'LLM Provider',
  'cfg.group.embeddings': 'Embeddings',
  'cfg.group.agent': 'Agent',
  'cfg.group.heartbeat': 'Heartbeat',
  'cfg.group.sandbox': 'Sandbox',
  'cfg.group.routines': 'Routines',
  'cfg.group.safety': 'Safety',
  'cfg.group.skills': 'Skills',
  'cfg.group.search': 'Search',
  'cfg.group.tunnel': 'Tunnel',
  'cfg.group.gateway': 'Gateway',

  // Inference settings
  'cfg.llm_backend.label': 'Backend',
  'cfg.llm_backend.desc': 'LLM inference provider',
  'cfg.selected_model.label': 'Model',
  'cfg.selected_model.desc': 'Model name or ID for the selected backend',
  'cfg.ollama_base_url.label': 'Ollama URL',
  'cfg.ollama_base_url.desc': 'Base URL for Ollama API',
  'cfg.openai_compatible_base_url.label': 'OpenAI-compatible URL',
  'cfg.openai_compatible_base_url.desc': 'Base URL for OpenAI-compatible API',
  'cfg.bedrock_region.label': 'Bedrock Region',
  'cfg.bedrock_region.desc': 'AWS region for Bedrock',
  'cfg.bedrock_cross_region.label': 'Cross-Region',
  'cfg.bedrock_cross_region.desc': 'Enable cross-region inference',
  'cfg.bedrock_profile.label': 'AWS Profile',
  'cfg.bedrock_profile.desc': 'AWS profile for Bedrock auth',
  'cfg.embeddings_enabled.label': 'Enabled',
  'cfg.embeddings_enabled.desc': 'Enable vector embeddings for memory search',
  'cfg.embeddings_provider.label': 'Provider',
  'cfg.embeddings_provider.desc': 'Embeddings API provider',
  'cfg.embeddings_model.label': 'Model',
  'cfg.embeddings_model.desc': 'Embedding model name',

  // Agent settings
  'cfg.agent_name.label': 'Name',
  'cfg.agent_name.desc': 'Agent display name',
  'cfg.agent_max_parallel_jobs.label': 'Max Parallel Jobs',
  'cfg.agent_max_parallel_jobs.desc': 'Maximum concurrent background jobs',
  'cfg.agent_job_timeout.label': 'Job Timeout',
  'cfg.agent_job_timeout.desc': 'Max duration per job in seconds',
  'cfg.agent_max_tool_iterations.label': 'Max Tool Iterations',
  'cfg.agent_max_tool_iterations.desc': 'Max tool calls per turn',
  'cfg.agent_use_planning.label': 'Planning',
  'cfg.agent_use_planning.desc': 'Enable multi-step planning before execution',
  'cfg.agent_auto_approve.label': 'Auto-approve Tools',
  'cfg.agent_auto_approve.desc': 'Skip manual approval for tool calls',
  'cfg.agent_timezone.label': 'Timezone',
  'cfg.agent_timezone.desc': 'Default timezone (IANA)',
  'cfg.agent_session_idle.label': 'Session Idle Timeout',
  'cfg.agent_session_idle.desc': 'Seconds before idle session expires',
  'cfg.agent_stuck_threshold.label': 'Stuck Threshold',
  'cfg.agent_stuck_threshold.desc': 'Seconds before a job is considered stuck',
  'cfg.agent_max_repair.label': 'Max Repair Attempts',
  'cfg.agent_max_repair.desc': 'Auto-recovery attempts for stuck jobs',
  'cfg.agent_max_cost.label': 'Max Daily Cost',
  'cfg.agent_max_cost.desc': 'Daily LLM spend cap in cents (0 = unlimited)',
  'cfg.agent_max_actions.label': 'Max Actions/Hour',
  'cfg.agent_max_actions.desc': 'Hourly tool call rate limit (0 = unlimited)',
  'cfg.agent_allow_local.label': 'Allow Local Tools',
  'cfg.agent_allow_local.desc': 'Enable local filesystem tool execution',

  // Heartbeat settings
  'cfg.heartbeat_enabled.label': 'Enabled',
  'cfg.heartbeat_enabled.desc': 'Run periodic background checks',
  'cfg.heartbeat_interval.label': 'Interval',
  'cfg.heartbeat_interval.desc': 'Seconds between heartbeats (default: 1800)',
  'cfg.heartbeat_notify_channel.label': 'Notify Channel',
  'cfg.heartbeat_notify_channel.desc': 'Channel to send heartbeat findings to',
  'cfg.heartbeat_notify_user.label': 'Notify User',
  'cfg.heartbeat_notify_user.desc': 'User ID to notify',
  'cfg.heartbeat_quiet_start.label': 'Quiet Hours Start',
  'cfg.heartbeat_quiet_start.desc': 'Hour (0-23) to stop heartbeats',
  'cfg.heartbeat_quiet_end.label': 'Quiet Hours End',
  'cfg.heartbeat_quiet_end.desc': 'Hour (0-23) to resume heartbeats',
  'cfg.heartbeat_timezone.label': 'Timezone',
  'cfg.heartbeat_timezone.desc': 'Timezone for quiet hours (IANA)',

  // Sandbox settings
  'cfg.sandbox_enabled.label': 'Enabled',
  'cfg.sandbox_enabled.desc': 'Enable Docker sandbox for background jobs',
  'cfg.sandbox_policy.label': 'Policy',
  'cfg.sandbox_policy.desc': 'Sandbox security policy',
  'cfg.sandbox_timeout.label': 'Timeout',
  'cfg.sandbox_timeout.desc': 'Max job duration in seconds',
  'cfg.sandbox_memory.label': 'Memory Limit',
  'cfg.sandbox_memory.desc': 'Container memory limit (MB)',
  'cfg.sandbox_image.label': 'Docker Image',
  'cfg.sandbox_image.desc': 'Container image for sandbox jobs',

  // Routines settings
  'cfg.routines_max_concurrent.label': 'Max Concurrent',
  'cfg.routines_max_concurrent.desc': 'Maximum routines running simultaneously',
  'cfg.routines_cooldown.label': 'Default Cooldown',
  'cfg.routines_cooldown.desc': 'Minimum seconds between routine fires',

  // Safety settings
  'cfg.safety_max_output.label': 'Max Output Length',
  'cfg.safety_max_output.desc': 'Maximum output tokens per response',
  'cfg.safety_injection_check.label': 'Injection Check',
  'cfg.safety_injection_check.desc': 'Enable prompt injection detection',

  // Skills settings
  'cfg.skills_max_active.label': 'Max Active Skills',
  'cfg.skills_max_active.desc': 'Maximum skills active simultaneously',
  'cfg.skills_max_tokens.label': 'Max Context Tokens',
  'cfg.skills_max_tokens.desc': 'Token budget for skill prompts',

  // Search settings
  'cfg.search_fusion.label': 'Fusion Strategy',
  'cfg.search_fusion.desc': 'Hybrid search ranking method',

  // Networking settings
  'cfg.tunnel_provider.label': 'Provider',
  'cfg.tunnel_provider.desc': 'Public URL tunnel provider',
  'cfg.tunnel_public_url.label': 'Public URL',
  'cfg.tunnel_public_url.desc': 'Static public URL (if not using tunnel provider)',
  'cfg.gateway_rate_limit.label': 'Rate Limit',
  'cfg.gateway_rate_limit.desc': 'Max chat messages per minute',
  'cfg.gateway_max_connections.label': 'Max Connections',
  'cfg.gateway_max_connections.desc': 'Max simultaneous SSE/WS connections',

  // Channels subtab
  'channels.builtin': 'Built-in Channels',
  'channels.messaging': 'Messaging Channels',
  'channels.webGateway': 'Web Gateway',
  'channels.webGatewayDesc': 'Browser-based chat interface',
  'channels.httpWebhook': 'HTTP Webhook',
  'channels.httpWebhookDesc': 'Incoming webhook endpoint for external integrations',
  'channels.cli': 'CLI',
  'channels.cliDesc': 'Terminal UI with Ratatui',
  'channels.repl': 'REPL',
  'channels.replDesc': 'Simple read-eval-print loop for testing',
  'channels.configureVia': 'Configure via {env}',
  'channels.runWith': 'Run with: {cmd}',
});
