export const dashboardEn = { processing: 'Processing...', executingWith: (action: string) => `Executing: ${action}`, executing: 'Nanobot is executing tools...', thinkingWith: (action: string) => `Thinking: ${action}`, thinking: 'Nanobot is thinking...', fileReadFail: 'Failed to read file.', workspaceLoadFail: 'Failed to load workspace tree.', channelSaved: 'Channel saved (effective after bot restart).', channelSaveFail: 'Failed to save channel.', channelAddFail: 'Failed to add channel.', channelDeleteConfirm: (channelType: string) => `Delete channel ${channelType}?`, channelDeleteFail: 'Failed to delete channel.', stopFail: 'Stop failed. Check backend logs.', startFail: 'Start failed. Check backend logs.', backendDeliverFail: 'Backend failed to deliver command.', sendFail: 'Send failed.', uploadFile: 'Upload file', uploadingFile: 'Uploading...', uploadFail: 'File upload failed.', attachmentAdded: (count: number) => `${count} attachment(s) added.`, uploadTooLarge: (files: string, limitMb: number) => `These files exceed the upload limit (${limitMb}MB): ${files}`, attachmentMessage: '[attachment message]', removeAttachment: 'Remove attachment', copyPrompt: 'Copy prompt', copyPromptDone: 'Prompt copied.', copyPromptFail: 'Failed to copy prompt.', copyReply: 'Copy reply', copyReplyDone: 'Reply copied.', copyReplyFail: 'Failed to copy reply.', quoteReply: 'Quote reply', quotedReplyLabel: 'Quoted reply', clearQuote: 'Clear quote', quoteOnlyMessage: '[quoted reply]', goodReply: 'Good reply', badReply: 'Bad reply', feedbackUpSaved: 'Marked as good reply.', feedbackDownSaved: 'Marked as bad reply.', feedbackCleared: 'Feedback removed.', feedbackSaveFail: 'Failed to save feedback.', feedbackMessagePending: 'Message is not synced yet. Please retry in a moment.', sendFailMsg: (msg: string) => `Command delivery failed: ${msg}`, providerRequired: 'Set provider/model/new API key before testing.', connOk: (preview: string) => (preview ? `Connection passed, models: ${preview}` : 'Connection passed'), connFail: (msg: string) => `Failed: ${msg}`, configUpdated: 'Configuration updated (effective after bot restart).', saveFail: 'Save failed.', deleteBotConfirm: (id: string) => `Delete bot ${id}? Workspace will be removed.`, deleteBotDone: 'Bot and workspace deleted.', deleteFail: 'Delete failed.', titleBots: 'Bots', botSearchPlaceholder: 'Search by bot name or ID', botSearchNoResult: 'No matching bots.', paginationPrev: 'Prev', paginationNext: 'Next', paginationPage: (current: number, total: number) => `${current} / ${total}`, newBot: 'New Bot', manageImages: 'Image Manager', image: 'Image', stop: 'Stop', start: 'Start', restart: 'Restart Bot', restartFail: 'Restart failed. Check backend logs.', delete: 'Delete', noConversation: 'No conversation yet. Send a command and bot replies will appear here.', clearHistory: 'Clear history', clearHistoryConfirm: (name: string) => `Clear dashboard conversation history for ${name}?`, clearHistoryDone: 'Conversation history cleared.', clearHistoryFail: 'Failed to clear conversation history.', exportHistory: 'Export JSON', exportHistoryFail: 'Failed to export conversation.', you: 'You', user: 'User', inputPlaceholder: 'Type a command and press Enter (Shift+Enter for newline)', disabledPlaceholder: 'Bot is not running. Command input is disabled.', sending: 'Sending...', send: 'Send', interrupt: 'Interrupt', interruptSent: 'Interrupt command sent.', botStarting: 'Bot is starting...', botStopping: 'Bot is stopping...', chatDisabled: 'Bot is stopped. Chat area is disabled.', selectBot: 'Select a bot to inspect', runtime: 'Runtime Status', base: 'Base', params: 'Model', channels: 'Channels', skills: 'Skills', tools: 'Tools', skillsPanel: 'Skills Panel', skillsEmpty: 'No skills.', addSkill: 'Add skill', removeSkill: 'Remove skill', uploadZipSkill: 'Upload ZIP Skill Pack', zipOnlyHint: 'Only .zip files are supported', invalidZipFile: 'Only .zip files are allowed', envParams: 'Env Params', envParamsDesc: 'Configure runtime env vars for this bot container.', noEnvParams: 'No env vars configured.', envKey: 'Key (e.g. BRAVE_API_KEY)', envValue: 'Value', showEnvValue: 'Show value', hideEnvValue: 'Hide value', addEnvParam: 'Add env var', removeEnvParam: 'Remove env var', envParamsSaved: 'Env params saved.', envParamsSaveFail: 'Failed to save env params.', envParamsHint: 'Restart bot to apply updated env vars.', toolsLoadFail: 'Failed to load tool skills.', toolsAddFail: 'Failed to add tool.', toolsRemoveFail: 'Failed to remove tool.', toolsRemoveConfirm: (name: string) => `Remove skill ${name}?`, agent: 'Agent', container: 'Container', current: 'Current', lastAction: 'Last action', workspaceOutputs: 'Workspace', autoRefresh: 'Auto refresh', loadingDir: 'Loading directory...', emptyDir: 'Current directory is empty.', openingPreview: 'Opening file preview...', workspaceHint: 'Click folder to enter; click .md/.json to preview.', noPreviewFile: 'No previewable files in this directory.', noTelemetry: 'No telemetry selected', goUpTitle: 'Click to go up', goUp: 'Go up', openFolderTitle: 'Click to open folder', folder: 'Folder', previewTitle: 'Click to preview', fileNotPreviewable: 'File type not previewable', baseConfig: 'Base Configuration', baseConfigSub: 'Edit name, access password, and resource limits', accessPassword: 'Access Password', accessPasswordPlaceholder: 'Leave blank to disable password', botIdReadonly: 'Bot ID (Read-only)', botName: 'Bot Name', botNamePlaceholder: 'Bot name', baseImageReadonly: 'Base Image', modelName: 'Model Name', modelNamePlaceholder: 'e.g. qwen-plus', newApiKey: 'New API Key (optional)', newApiKeyPlaceholder: 'Only updated when filled', testing: 'Testing...', testModelConnection: 'Test model connection', cancel: 'Cancel', save: 'Save', modelParams: 'Model', saveParams: 'Save Params', agentFiles: 'Agent Files', saveFiles: 'Save Files', filePreview: 'File Preview', fileTruncated: 'Large file: preview is truncated.', download: 'Download', copyAddress: 'Copy URL', urlCopied: 'URL copied.', urlCopyFail: 'Failed to copy URL.', close: 'Close', cronViewer: 'Scheduled Jobs', cronReload: 'Reload jobs', cronLoading: 'Loading jobs...', cronEmpty: 'No scheduled jobs.', cronEnabled: 'Enabled', cronDisabled: 'Disabled', cronStop: 'Stop job', cronDelete: 'Delete job', cronStopFail: 'Failed to stop job.', cronDeleteFail: 'Failed to delete job.', cronDeleteConfirm: (id: string) => `Delete scheduled job ${id}?`, };