export default {
	common: {
		search: 'Search',
		delete: 'Delete',
		edit: 'Edit',
		add: 'Add',
		save: 'Save',
		cancel: 'Cancel',
		confirm: 'Confirm',
		close: 'Close',
		back: 'Back',
		refresh: 'Refresh',
		reset: 'Reset',
		open: 'Open',
		view: 'View',
		details: 'Details',
		retry: 'Retry',
		publish: 'Publish',
		rename: 'Rename',
		description: 'Description',
		reuse: 'Reuse',
		all: 'All',
		loading: 'Loading...',
		noMore: 'No more',
		status: {
			success: 'Success',
			failed: 'Failed',
			running: 'Running',
			unknown: 'Unknown',
			active: 'Active',
			info: 'Info',
			warning: 'Warning',
			error: 'Error'
		},
		date: {
			rangeSeparator: 'to',
			start: 'Start',
			end: 'End',
			startDate: 'Start Date',
			endDate: 'End Date',
			recent: 'Recent',
			justNow: 'Just now',
			minutesAgo: '{count}m ago',
			hoursAgo: '{count}h ago',
			daysAgo: '{count}d ago',
			yesterday: 'Yesterday'
		},
		dialog: {
			tip: 'Notice'
		},
		confirmDelete: {
			title: 'Notice',
			message: 'Are you sure you want to delete this item?'
		},
		nodeBase: {
			retryConfig: {
				title: 'Retry on Failure',
				maxRetries: 'Max Retries',
				retryInterval: 'Retry Interval (ms)'
			},
			inputVariables: {
				title: 'Input Variables',
				addVariable: 'Add Variable',
				variableNamePlaceholder: 'Variable name',
				setValuePlaceholder: '{x} Set variable value'
			},
			outputVariables: {
				title: 'Output Variables',
				addOutput: 'Add Output',
				namePlaceholder: 'result',
				setValuePlaceholder: '{x} Set variable value'
			},
			errorHandling: {
				title: 'Error Handling',
				tooltip: 'Triggered when an exception occurs',
				none: 'None',
				defaultValue: 'Default Value',
				failBranch: 'Fail Branch',
				defaultValueDescription: 'Specify the default output when an exception occurs',
				failBranchDescription: 'Define custom fail branch logic on the canvas.',
				failBranchHint:
					'When a node throws an exception, the fail branch runs automatically. You can use it to provide error messages, reports, fixes, or skip actions.'
			},
			varSelect: {
				selectVariable: 'Select a variable',
				searchVariable: 'Search variables',
				empty: 'No matching variables'
			},
			codeEditor: {
				switchLanguage: 'Switch language',
				enterFullscreen: 'Expand',
				exitFullscreen: 'Restore',
				copy: 'Copy',
				theme: 'Theme',
				jsonSyntaxError: 'Invalid JSON syntax',
				copySuccess: 'Copied successfully'
			},
			branchCard: {
				deleteCondition: 'Delete condition',
				ifBranch: 'IF',
				elseIfBranch: 'ELIF',
				elseBranch: 'ELSE'
			},
			condition: {
				setVariableValue: '{x} Set variable value',
				inputValueWithVariable: 'Enter a value, or type / to select a variable',
				inputValue: 'Enter a value',
				constant: 'Constant',
				variable: 'Variable',
				addCondition: '+ Add Condition',
				operatorAnd: 'AND',
				operatorOr: 'OR',
				operators: {
					contains: 'Contains',
					notContains: 'Does Not Contain',
					startsWith: 'Starts With',
					endsWith: 'Ends With',
					is: 'Is',
					isNot: 'Is Not',
					empty: 'Is Empty',
					notEmpty: 'Is Not Empty'
				}
			},
			promptEditor: {
				searchVariable: 'Search variables',
				empty: 'No matching variables',
				customVariables: 'Custom Variables'
			},
			valueTypes: {
				string: 'String',
				number: 'Number',
				boolean: 'Boolean',
				object: 'Object',
				arrayString: 'Array[String]',
				arrayNumber: 'Array[Number]',
				arrayBoolean: 'Array[Boolean]',
				arrayObject: 'Array[Object]',
				arrayFile: 'Array[File]'
			}
		}
	},
	dashboard: {
		title: 'AI Agent',
		subtitle: 'Overview',
		workflows: 'Workflows',
		certificates: 'Certificates',
		executions: 'Executions',
		variables: 'Variables',
		dataTables: 'Data Tables'
	},
	statistics: {
		title: 'Statistics',
		subtitle: 'All Projects',
		productionExecutions: 'Production Executions',
		failedExecutions: 'Failed Production Executions',
		failureRate: 'Failure Rate',
		timeSaved: 'Time Saved',
		avgRuntime: 'Average Runtime',
		last7Days: 'Last 7 Days'
	},
	sidebar: {
		createWorkflow: 'Workflow',
		createCertificate: 'Credential',
		certificateComingSoon: 'Credential support is under development',
		shortcuts: {
			quickSearch: 'Quick Search',
			toggleSidebar: 'Toggle Sidebar'
		},
		theme: {
			switchToLight: 'Light Mode',
			switchToDark: 'Dark Mode'
		},
		menu: {
			overview: 'Overview',
			orchestration: 'Intelligent Orchestration',
			management: 'Agents',
			execution: 'Execution',
			chat: 'Chat',
			ollama: 'Ollama',
			models: 'Model Management',
			webSearch: 'Web Search',
			storage: 'Storage Engine',
			mcp: 'MCP Services',
			prompts: 'Prompt Templates',
			skills: 'Skills',
			templates: 'Templates',
			statistics: 'Statistics',
			help: 'Help',
			settings: 'Settings',
			knowledge: 'Knowledge',
			resource: 'Resource',
			workspace: 'Workspace'
		}
	},
	settings: {
		quickStart: 'Quick Start',
		docs: 'Docs',
		about: 'About AI Agent',
		userCenter: 'User Center',
		logStream: 'Agent Logs',
		modelLog: 'Model Invocation Logs',
		logout: 'Log Out',
		language: 'Language',
		languageDescription: 'Display language',
		languages: {
			'zh-cn': '简体中文',
			'en-us': 'English'
		}
	},
	shared: {
		templateModal: {
			title: 'Featured Templates',
			viewTemplate: 'View Template'
		},
		templates: {
			catalog: [
				{
					id: '1',
					title: 'Gmail + GPT-4o-mini',
					description:
						'Automatically classify and summarize emails with Gmail, GPT-4o-mini, and Notion',
					icon: '✉️'
				},
				{
					id: '2',
					title: 'Telegram + OpenAI',
					description:
						'Use Telegram, OpenAI, and Google Drive to classify chats and generate PDF files',
					icon: '💬'
				},
				{
					id: '3',
					title: 'Gmail + Memo RAG',
					description: 'Analyze email content with Gmail, Memo, and a lightweight RAG workflow',
					icon: '📧'
				},
				{
					id: '4',
					title: 'Mistral + OpenRouter',
					description: 'Process workflows with Mistral models routed through OpenRouter',
					icon: '🤖'
				},
				{
					id: '5',
					title: 'RAG Architecture',
					description: 'A RAG architecture powered by Supabase, TogetherAI, and OpenRouter',
					icon: '🔍'
				},
				{
					id: '6',
					title: 'LINE + Supabase',
					description: 'Combine LINE Messaging, Supabase Vector DB, and Gmail into one AI workflow',
					icon: '💌'
				}
			]
		},
		createWorkflow: {
			title: 'Create Workflow',
			fields: {
				name: 'Name',
				tags: 'Tags',
				description: 'Description',
				remark: 'Remark',
				cover: 'Cover'
			},
			placeholders: {
				name: 'Enter workflow name',
				tags: 'Press Enter to add tags',
				description: 'Optional. Briefly describe what this workflow does',
				remark: 'Add notes',
				cover: 'Cover image'
			},
			tagLimit: 'Up to 5 tags',
			validation: {
				nameRequired: 'Please enter a name'
			},
			success: 'Workflow created successfully',
			error: 'Failed to create workflow'
		},
		searchDialog: {
			placeholder: 'Type to search',
			sections: {
				projects: 'Projects',
				workflows: 'Workflows',
				results: 'Search Results'
			},
			createWorkflow: 'Create Workflow',
			noResults: 'No matching results found',
			recentItems: [
				'Parse invoice files with Gemini AI, OCR, and Google Sheets',
				'Open my workflows',
				'Review recent news summaries'
			],
			projectItems: ['Create Project', 'Open Project']
		}
	},
	pages: {
		dashboard: {
			welcomeTitle: 'Welcome back!',
			welcomeSubtitle: 'Today is {date}. Let’s build your next automation flow.',
			createWorkflow: 'Create Workflow',
			stats: {
				workflowTotal: 'Total Workflows',
				todayExecutions: 'Today’s Runs',
				successRate: 'Success Rate',
				avgResponse: 'Avg Response'
			},
			quickActions: {
				title: 'Quick Actions',
				newWorkflow: { title: 'New Workflow', desc: 'Start from scratch' },
				useTemplate: { title: 'Use Template', desc: 'Get started faster' },
				viewLogs: { title: 'View Logs', desc: 'Execution history' },
				viewDocs: { title: 'Read Docs', desc: 'Learn the product' }
			},
			recentWorkflows: {
				title: 'Recent Workflows',
				viewAll: 'View all →'
			},
			recentActivities: {
				title: 'Recent Activity',
				viewAll: 'View all →'
			},
			recommendedTemplates: {
				title: 'Recommended Templates',
				viewMore: 'See more →'
			},
			deleteConfirm: {
				message: 'Delete this workflow?',
				success: 'Workflow deleted'
			},
			activities: [
				{
					id: 1,
					icon: 'check-circle',
					type: 'success',
					text: 'Workflow “Customer Intent Detection” completed successfully',
					time: '5m ago'
				},
				{
					id: 2,
					icon: 'workflow',
					type: 'info',
					text: 'Created a new workflow “Daily Report Generator”',
					time: '1h ago'
				},
				{
					id: 3,
					icon: 'play',
					type: 'info',
					text: 'Workflow “Contract Review” started running',
					time: '2h ago'
				},
				{
					id: 4,
					icon: 'check-circle',
					type: 'success',
					text: 'Workflow “Lead Tagging” completed successfully',
					time: '3h ago'
				},
				{
					id: 5,
					icon: 'users',
					type: 'info',
					text: 'User @ZhangSan joined the team',
					time: 'Yesterday'
				}
			],
			templates: [
				{
					id: 1,
					name: 'Customer Intent Detection',
					desc: 'Analyze customer message intent automatically',
					icon: 'service',
					category: 'Support'
				},
				{
					id: 2,
					name: 'Daily Report Generator',
					desc: 'Compile daily updates automatically',
					icon: 'efficiency',
					category: 'Productivity'
				},
				{
					id: 3,
					name: 'Contract Review',
					desc: 'Review key contract clauses with AI',
					icon: 'legal',
					category: 'Legal'
				},
				{
					id: 4,
					name: 'Lead Tagging',
					desc: 'Tag sales leads automatically',
					icon: 'growth',
					category: 'Marketing'
				}
			]
		},
		orchestration: {
			title: 'Workflow Design',
			subtitle: 'Turn a list of tasks into an automated flow with order, conditions, and rules',
			createWorkflow: 'Create Workflow',
			importTemplate: 'Import Template',
			concepts: [
				{
					key: 'sequence',
					title: 'Sequence',
					desc: 'Node A → Node B → Node C, executed in order',
					example: 'Start → HTTP Request → Data Processing → Send Notification'
				},
				{
					key: 'condition',
					title: 'Conditions',
					desc: 'Branch into different paths based on evaluation results',
					example: 'if (status=success) → Path A else → Path B'
				},
				{
					key: 'rule',
					title: 'Rules',
					desc: 'Run automatically from triggers, schedules, and events',
					example: 'Every day at 9:00 | Webhook trigger | On data changes'
				}
			],
			stats: {
				workflowTotal: 'Total Workflows',
				updatedLast7Days: 'Updated in 7 Days',
				templatesAvailable: 'Templates Available',
				nodeTypes: 'Node Types'
			},
			recentTitle: 'Recent Designs',
			nodeTypesTitle: 'Available Node Types',
			recommendedTemplatesTitle: 'Recommended Templates',
			open: 'Open',
			viewTemplate: 'View Template',
			recentWorkflows: [
				{
					id: '1',
					name: 'Customer Support Auto Routing',
					updatedAt: 'Today 10:12',
					owner: 'Zhang Wei',
					tag: 'Support'
				},
				{
					id: '2',
					name: 'Content Creation and Review',
					updatedAt: 'Yesterday 18:20',
					owner: 'Li Na',
					tag: 'Content'
				},
				{
					id: '3',
					name: 'RAG Knowledge Sync',
					updatedAt: 'Jan 27',
					owner: 'Wang Qiang',
					tag: 'Knowledge Base'
				},
				{
					id: '4',
					name: 'Financial Report Summary',
					updatedAt: 'Jan 26',
					owner: 'Zhao Min',
					tag: 'Finance'
				}
			],
			nodeGroups: [
				{
					label: 'Flow Control',
					tags: ['Start Node', 'Conditional Branch', 'Loop Node', 'End Node']
				},
				{
					label: 'Data Operations',
					tags: ['HTTP Request', 'Database Query', 'Code Execution', 'Data Transformation']
				},
				{ label: 'Trigger Rules', tags: ['Scheduled Trigger', 'Webhook', 'Event Listener'] }
			],
			templates: [
				{
					id: 't1',
					name: 'Customer Intent Detection',
					desc: 'Receive message → AI intent analysis → condition check → route to support or bot',
					category: 'Support'
				},
				{
					id: 't2',
					name: 'Daily Summary Automation',
					desc: 'Scheduled trigger → query data tables → aggregate → generate report → notify team',
					category: 'Operations'
				},
				{
					id: 't3',
					name: 'Contract Review Assistant',
					desc: 'Upload contract → OCR → AI review → risk classification → report generation',
					category: 'Legal'
				},
				{
					id: 't4',
					name: 'Lead Tagging',
					desc: 'Webhook input → clean data → rule matching → tag leads → write to CRM',
					category: 'Growth'
				}
			]
		},
		execution: {
			title: 'Execution',
			subtitle: 'Track status, duration, and failure reasons in one place',
			stats: {
				todayExecutions: 'Today’s Runs',
				successRate: 'Success Rate',
				avgDuration: 'Avg Duration',
				failedCount: 'Failures'
			},
			filters: {
				keyword: 'Search by workflow or execution ID',
				status: 'Status'
			},
			table: {
				workflow: 'Workflow',
				executionId: 'Execution ID',
				startedAt: 'Start Time',
				duration: 'Duration',
				trigger: 'Trigger',
				status: 'Status',
				actions: 'Actions'
			},
			panels: {
				summary: 'Execution Summary',
				tips: 'Alerts and Suggestions'
			},
			tips: [
				'Enable retry and timeout strategies for workflows with high failure rates',
				'Split expensive nodes into asynchronous execution where possible',
				'Add notification nodes to critical paths for better observability'
			],
			summary: [
				{ label: 'Running', value: '3' },
				{ label: 'Queued', value: '8' },
				{ label: 'Runs in 24h', value: '412' },
				{ label: 'P95 Duration', value: '5.9s' }
			],
			executions: [
				{
					workflow: 'Customer Support Auto Routing',
					executionId: 'EXE-20260129001',
					startedAt: '2026-01-29 09:12:03',
					duration: '2.1s',
					trigger: 'Schedule',
					status: 'success'
				},
				{
					workflow: 'Content Creation and Review',
					executionId: 'EXE-20260129002',
					startedAt: '2026-01-29 09:15:45',
					duration: '4.3s',
					trigger: 'Manual',
					status: 'running'
				},
				{
					workflow: 'RAG Knowledge Sync',
					executionId: 'EXE-20260129003',
					startedAt: '2026-01-29 08:58:12',
					duration: '3.9s',
					trigger: 'Webhook',
					status: 'failed'
				},
				{
					workflow: 'Financial Report Summary',
					executionId: 'EXE-20260129004',
					startedAt: '2026-01-29 08:40:30',
					duration: '1.6s',
					trigger: 'Schedule',
					status: 'success'
				}
			]
		},
		management: {
			title: 'Agent Management',
			stats: {
				totalAgents: 'Total Agents',
				currentPageCount: 'Items on Page',
				conversationVariables: 'Conversation Vars',
				envVariables: 'Environment Vars'
			},
			searchPlaceholder: 'Search current page by agent name or ID',
			pageInfo: 'Page {current} / {total}',
			pageSize: '{size} per page',
			badges: {
				agent: 'Agent',
				envVariables: '{count} env vars'
			},
			fallback: {
				unnamed: 'Untitled Agent',
				notConfiguredConversation: 'No conversation variables configured',
				notConfiguredEnv: 'No environment variables configured'
			},
			empty: {
				default: 'No agents found yet',
				filtered: 'No agents match the current filter'
			},
			errors: {
				fetchFailed: 'Failed to fetch agents',
				loadFailed: 'Failed to load agent list'
			}
		},
		about: {
			version: 'Version 1.0.0',
			aboutUs: 'About Us',
			description:
				'AI Agent is a powerful and flexible automation workflow platform that helps teams and individuals build intelligent business processes. We aim to make automation simple, efficient, and easy to maintain.',
			features: [
				{
					icon: 'zap',
					title: 'High Performance',
					desc: 'An optimized execution engine for fast and reliable workflows'
				},
				{
					icon: 'shield',
					title: 'Secure and Reliable',
					desc: 'Enterprise-grade security to protect your data and credentials'
				},
				{
					icon: 'users',
					title: 'Team Collaboration',
					desc: 'Work together to build and maintain workflows'
				},
				{
					icon: 'code',
					title: 'Open and Extensible',
					desc: 'Custom nodes and integrations for personalized needs'
				}
			]
		},
		userCenter: {
			title: 'User Center',
			changeAvatar: 'Change Avatar',
			profile: 'Profile',
			fields: {
				username: 'Username',
				email: 'Email',
				phone: 'Phone',
				company: 'Company'
			},
			placeholders: {
				username: 'Enter username',
				email: 'Enter email',
				phone: 'Enter phone number',
				company: 'Enter company name'
			},
			saveChanges: 'Save Changes',
			stats: {
				workflows: 'Workflows',
				executions: 'Executions',
				savedHours: 'Hours Saved'
			},
			security: {
				title: 'Account Security',
				password: {
					title: 'Login Password',
					desc: 'Rotate your password regularly to improve account security',
					action: 'Change'
				},
				twoFactor: { title: 'Two-Factor Authentication', desc: 'Disabled', action: 'Enable' },
				boundPhone: { title: 'Bound Phone', action: 'Replace' }
			}
		},
		logStream: {
			title: 'Agent Log Stream',
			searchPlaceholder: 'Search logs...',
			levelPlaceholder: 'Log Level',
			logs: [
				{
					id: 1,
					level: 'info',
					timestamp: '2026-01-28 14:23:45',
					workflowName: 'Data Sync Workflow',
					message: 'Workflow completed successfully',
					details: { executionTime: '2.5s', nodesExecuted: 5 }
				},
				{
					id: 2,
					level: 'warning',
					timestamp: '2026-01-28 14:20:12',
					workflowName: 'API Request Workflow',
					message: 'Response time exceeded threshold',
					details: { responseTime: '3200ms', threshold: '3000ms' }
				},
				{
					id: 3,
					level: 'error',
					timestamp: '2026-01-28 14:15:33',
					workflowName: 'Email Delivery Workflow',
					message: 'Email delivery failed: SMTP connection timeout',
					details: { error: 'Connection timeout', host: 'xxxxx.com' }
				},
				{
					id: 4,
					level: 'info',
					timestamp: '2026-01-28 14:10:08',
					workflowName: 'Data Processing Workflow',
					message: 'Processed 1000 records',
					details: { processed: 1000, failed: 0 }
				},
				{
					id: 5,
					level: 'info',
					timestamp: '2026-01-28 14:05:22',
					workflowName: 'Scheduled Workflow',
					message: 'Scheduled task triggered',
					details: { schedule: '*/5 * * * *', triggeredBy: 'cron' }
				}
			]
		},
		modelLog: {
			title: 'Model Invocation Logs',
			stats: {
				successCalls: 'Successful Calls',
				failedCalls: 'Failed Calls',
				avgResponse: 'Avg Response Time',
				todayCost: 'Today’s Cost'
			},
			table: {
				timestamp: 'Time',
				model: 'Model',
				workflow: 'Workflow',
				status: 'Status',
				tokens: 'Tokens',
				cost: 'Cost',
				responseTime: 'Response Time',
				actions: 'Actions'
			},
			dialog: {
				title: 'Invocation Details',
				basicInfo: 'Basic Info',
				request: 'Request',
				response: 'Response',
				usage: 'Usage',
				inputTokens: 'Input Tokens',
				outputTokens: 'Output Tokens',
				total: 'Total',
				time: 'Time',
				model: 'Model',
				workflow: 'Workflow',
				status: 'Status',
				cost: 'Cost'
			},
			logs: [
				{
					id: 1,
					timestamp: '2026-01-28 14:25:33',
					model: 'GPT-4',
					workflowName: 'AI Article Generation',
					status: 'success',
					tokens: '1,250',
					cost: '$0.025',
					responseTime: '1.8s',
					inputTokens: 450,
					outputTokens: 800,
					prompt: 'Help me write an article about the development of AI...',
					response: 'The history of artificial intelligence can be traced back to...'
				},
				{
					id: 2,
					timestamp: '2026-01-28 14:23:15',
					model: 'Claude-3',
					workflowName: 'Smart Customer Service',
					status: 'success',
					tokens: '680',
					cost: '$0.014',
					responseTime: '0.9s',
					inputTokens: 280,
					outputTokens: 400,
					prompt: 'User asks: how do I return a product?',
					response: 'Hello, here is the return process...'
				},
				{
					id: 3,
					timestamp: '2026-01-28 14:20:42',
					model: 'GPT-4',
					workflowName: 'Code Review Assistant',
					status: 'success',
					tokens: '2,100',
					cost: '$0.042',
					responseTime: '2.3s',
					inputTokens: 1200,
					outputTokens: 900,
					prompt: 'Please review the following code...',
					response: 'Code review result: overall structure looks solid...'
				},
				{
					id: 4,
					timestamp: '2026-01-28 14:18:05',
					model: 'GPT-3.5',
					workflowName: 'Data Analysis',
					status: 'failed',
					tokens: '0',
					cost: '$0.000',
					responseTime: '5.0s',
					inputTokens: 0,
					outputTokens: 0,
					prompt: 'Analyze sales data...',
					response: 'Error: API rate limit exceeded'
				}
			]
		},
		statisticsPage: {
			legend: { successful: 'Successful', failed: 'Failed' },
			table: {
				name: 'Name',
				totalExecutions: 'Production Runs ↓',
				failedExecutions: 'Failed Production Runs',
				failureRate: 'Failure Rate',
				timeSaved: 'Time Saved',
				avgRuntime: 'Avg Runtime',
				projectName: 'Project'
			},
			cards: [
				{ title: 'Production Runs', value: 12, subtitle: 'Last 7 Days' },
				{ title: 'Failed Production Runs', value: 3, subtitle: 'Last 7 Days' },
				{ title: 'Failure Rate', value: '25%', subtitle: 'Last 7 Days' },
				{ title: 'Time Saved', value: '8.2h', subtitle: 'Last 7 Days' },
				{ title: 'Avg Runtime', value: '5.1s', subtitle: 'Last 7 Days' }
			],
			cardData: [
				{
					chartTitle: 'Production Runs Over Time',
					tableTitle: 'Production Run Details',
					tableData: [
						{
							name: 'Project 1',
							totalExecutions: 12,
							failedExecutions: 1,
							failureRate: '8.3%',
							timeSaved: '2.5h',
							avgRuntime: '5.1s',
							projectName: 'Data Processing Project'
						},
						{
							name: 'Project 2',
							totalExecutions: 18,
							failedExecutions: 1,
							failureRate: '5.6%',
							timeSaved: '4.2h',
							avgRuntime: '4.8s',
							projectName: 'AI Analytics Project'
						},
						{
							name: 'Project 3',
							totalExecutions: 12,
							failedExecutions: 1,
							failureRate: '8.3%',
							timeSaved: '2.5h',
							avgRuntime: '5.3s',
							projectName: 'Image Recognition Project'
						}
					]
				},
				{
					chartTitle: 'Failed Production Runs Over Time',
					tableTitle: 'Failed Run Details',
					tableData: [
						{
							name: 'Project 1',
							totalExecutions: 1,
							failedExecutions: 1,
							failureRate: '100%',
							timeSaved: '0h',
							avgRuntime: '2.1s',
							projectName: 'Data Processing Project'
						},
						{
							name: 'Project 2',
							totalExecutions: 1,
							failedExecutions: 1,
							failureRate: '100%',
							timeSaved: '0h',
							avgRuntime: '1.8s',
							projectName: 'AI Analytics Project'
						},
						{
							name: 'Project 3',
							totalExecutions: 1,
							failedExecutions: 1,
							failureRate: '100%',
							timeSaved: '0h',
							avgRuntime: '3.3s',
							projectName: 'Image Recognition Project'
						}
					]
				},
				{
					chartTitle: 'Failure Rate Over Time',
					tableTitle: 'Failure Rate Details',
					tableData: [
						{
							name: 'Project 1',
							totalExecutions: 12,
							failedExecutions: 1,
							failureRate: '8.3%',
							timeSaved: '2.5h',
							avgRuntime: '5.1s',
							projectName: 'Data Processing Project'
						},
						{
							name: 'Project 2',
							totalExecutions: 18,
							failedExecutions: 1,
							failureRate: '5.6%',
							timeSaved: '4.2h',
							avgRuntime: '4.8s',
							projectName: 'AI Analytics Project'
						}
					]
				},
				{
					chartTitle: 'Time Saved Over Time',
					tableTitle: 'Time Saved Details',
					tableData: [
						{
							name: 'Project 1',
							totalExecutions: 12,
							failedExecutions: 1,
							failureRate: '8.3%',
							timeSaved: '2.5h',
							avgRuntime: '5.1s',
							projectName: 'Data Processing Project'
						},
						{
							name: 'Project 3',
							totalExecutions: 12,
							failedExecutions: 1,
							failureRate: '8.3%',
							timeSaved: '2.5h',
							avgRuntime: '5.3s',
							projectName: 'Image Recognition Project'
						}
					]
				},
				{
					chartTitle: 'Average Runtime Over Time',
					tableTitle: 'Runtime Details',
					tableData: [
						{
							name: 'Project 2',
							totalExecutions: 18,
							failedExecutions: 1,
							failureRate: '5.6%',
							timeSaved: '4.2h',
							avgRuntime: '4.8s',
							projectName: 'AI Analytics Project'
						},
						{
							name: 'Project 3',
							totalExecutions: 12,
							failedExecutions: 1,
							failureRate: '8.3%',
							timeSaved: '2.5h',
							avgRuntime: '5.3s',
							projectName: 'Image Recognition Project'
						},
						{
							name: 'Project 1',
							totalExecutions: 12,
							failedExecutions: 1,
							failureRate: '8.3%',
							timeSaved: '2.5h',
							avgRuntime: '5.1s',
							projectName: 'Data Processing Project'
						}
					]
				}
			]
		},
		templateDetail: {
			breadcrumb: 'Templates',
			useWorkflow: 'Use This Workflow',
			diagramPlaceholder: 'Workflow diagram placeholder',
			detailText:
				'This workflow connects email services, AI models, and databases through automation so you can process large volumes of information efficiently.'
		},
		quickStart: {
			title: 'Quick Start',
			subtitle: 'Welcome to AI Agent. Let’s build your first workflow.',
			video: 'Tutorial Video',
			stepsTitle: 'Getting Started',
			resourcesTitle: 'More Resources',
			steps: [
				{
					title: 'Create a Workflow',
					desc: 'Click the “+” button in the sidebar and choose “Workflow” to create your first flow'
				},
				{
					title: 'Add Nodes',
					desc: 'Use start, end, HTTP request, conditional branch, code execution, data query, and more to assemble your business logic'
				},
				{
					title: 'Configure and Test',
					desc: 'Set node parameters and run tests to confirm everything works as expected'
				},
				{
					title: 'Deploy',
					desc: 'Save and activate your workflow so it can work for you automatically'
				}
			],
			resources: [
				{ icon: 'book', title: 'Read Docs', desc: 'Explore every product capability in depth' },
				{ icon: 'box', title: 'Browse Templates', desc: 'Start from a ready-made workflow' },
				{ icon: 'help', title: 'Get Help', desc: 'Need help? Reach out to us' }
			]
		},
		docs: {
			sidebarTitle: 'Documentation',
			navSections: [
				{
					title: 'Quick Start',
					items: [
						{ key: 'intro', label: 'Introduction' },
						{ key: 'installation', label: 'Installation' }
					]
				},
				{
					title: 'Core Concepts',
					items: [
						{ key: 'workflow', label: 'Workflow' },
						{ key: 'nodes', label: 'Nodes' },
						{ key: 'credentials', label: 'Credentials' }
					]
				},
				{
					title: 'Node Docs',
					items: [
						{ key: 'http', label: 'HTTP Node' },
						{ key: 'code', label: 'Code Node' },
						{ key: 'database', label: 'Database Node' }
					]
				}
			],
			docMap: {
				intro: {
					title: 'About AI Agent',
					description: 'Learn the core concepts and basic usage of AI Agent'
				},
				installation: {
					title: 'Installation and Deployment',
					description: 'Install and configure AI Agent in your environment'
				},
				workflow: {
					title: 'Workflow Concepts',
					description: 'Understand design patterns and best practices for workflows'
				},
				nodes: {
					title: 'Node System',
					description: 'Understand how the node system works and how to use it'
				},
				credentials: {
					title: 'Credential Management',
					description: 'Manage and use third-party credentials securely'
				},
				http: { title: 'HTTP Node', description: 'Use the HTTP node to work with REST APIs' },
				code: { title: 'Code Node', description: 'Write custom code for advanced business logic' },
				database: {
					title: 'Database Node',
					description: 'Connect to and operate on database systems'
				}
			},
			sections: {
				overview: 'Overview',
				features: 'Key Features',
				example: 'Quick Example',
				next: 'Next Steps'
			},
			overviewText:
				'AI Agent is a powerful automation workflow platform that lets you build complex automation flows. With the visual workflow editor, you can easily add nodes, connect services and apps, and automate data processing and delivery.',
			features: [
				'Visual editor - Design workflows intuitively with start, end, HTTP request, conditional branch, code execution, data query, and more',
				'Rich node library - Support for HTTP, database, code execution, and many more node types',
				'Real-time debugging - Step-by-step execution and breakpoints supported',
				'Data transformation - Powerful data mapping and transformation capabilities'
			],
			nextSteps: [
				{ icon: 'video', label: 'Watch the tutorial' },
				{ icon: 'box', label: 'Browse sample templates' }
			]
		},
		chat: {
			newChat: '+ New Chat',
			history: 'History',
			rename: 'Rename',
			delete: 'Delete',
			newConversation: 'New Conversation',
			targetKnowledge: 'Knowledge Q&A',
			targetAgent: 'Agent Q&A',
			targetModel: 'Model Chat',
			emptyTitle: 'Start chatting',
			emptySubtitle: 'Ask a question and let AI help you',
			senderPlaceholder: 'Type your question and press Enter to send',
			renameDialogTitle: 'Rename Conversation',
			renamePlaceholder: 'Enter a new conversation name',
			settingsTitle: 'Conversation Settings',
			settingsKnowledgeBase: 'Knowledge Base',
			settingsKnowledge: 'Knowledge',
			settingsAgent: 'Agent',
			settingsSummaryModel: 'Summary Model',
			settingsSessionParams: 'Session Settings',
			settingsAgentSwitches: 'Agent Options',
			selectPlaceholder: 'Select',
			selectAgentPlaceholder: 'Select an agent',
			selectSummaryModelPlaceholder: 'Select a summary model',
			enableMemory: 'Enable memory',
			disableTitle: 'Disable auto title',
			enableAgentMode: 'Enable Agent mode',
			enableWebSearch: 'Enable web search',
			agentImageUploadEnabled: 'This agent supports image upload',
			agentImageUploadDisabled: 'This agent does not support image upload',
			imageUploadTitle: 'Upload Image',
			imageUploadTip:
				'Only image upload is supported. Uploaded files will be used as this conversation’s image input.',
			imageUploadClose: 'Close',
			imageUploadDone: 'Done',
			cancel: 'Cancel',
			save: 'Save',
			deleteConfirm: 'Delete this conversation?',
			deleteSuccess: 'Conversation deleted',
			renameEmpty: 'Conversation name cannot be empty',
			renameSuccess: 'Conversation updated',
			requestFailed: 'Request failed',
			referenceTitle: 'References',
			toolCallTitle: 'Tool Call',
			toolResultTitle: 'Tool Result',
			failedTag: 'Failed',
			thinkTitle: 'Thinking',
			selectConversationFirst: 'Please select a conversation first',
			createSuccess: 'Created successfully',
			selectAgentFirst: 'Please select an agent first',
			selectKnowledgeBaseFirst: 'Please select a knowledge base first',
			selectSummaryModelFirst: 'Please select a summary model first',
			requestInProgress: 'A request is already in progress',
			retrySourceNotFound: 'No original question found for retry',
			copySuccess: 'Copied successfully!',
			mockResponse: 'This is a sample AI response.',
			noHistory: 'No history found.'
		},
		editor: {
			workspace: 'Workspace',
			tagPlaceholder: 'Press Enter to add tags',
			tagButton: 'Tags',
			publish: 'Publish',
			status: {
				published: 'Published',
				unpublished: 'Unpublished'
			},
			menu: {
				description: 'Description',
				reuse: 'Reuse',
				rename: 'Rename',
				delete: 'Delete'
			},
			messages: {
				loadFailed: 'Failed to load agent workflow',
				saveFailed: 'Failed to save agent',
				saved: 'Agent saved',
				varsSaved: 'Variables saved',
				publishSuccess: 'Agent published'
			},
			selectPublishNode: 'Please select a node to publish'
		},
		nodeView: {
			messages: {
				selectNodeFirst: 'Please select a node to run',
				runFailed: 'Failed to run node',
				missingTrigger: 'No runnable trigger node was found',
				loopEndOnlyInside: 'The loop-exit node can only be added inside loop or iteration nodes',
				noNestedLoop:
					'Loop and iteration nodes cannot be nested inside another loop or iteration node',
				nodeAdded: 'Node added',
				addNodeFailed: 'Failed to add node',
				edgeCreated: 'Connection created',
				createEdgeFailed: 'Failed to create connection',
				updateNodeFailed: 'Failed to update node',
				envSaved: 'Environment variables saved',
				saveEnvFailed: 'Failed to save environment variables'
			},
			stickyNote: {
				name: 'Note',
				content: 'Write notes here. Markdown is supported. Double-click to edit.'
			}
		},
		setter: {
			titlePlaceholder: 'Add title...',
			descriptionPlaceholder: 'Add description...',
			runNode: 'Run node',
			setting: 'Settings',
			lastRun: 'Last run',
			nodeLog: {
				notRun: 'Not run',
				running: 'Running',
				success: 'Succeeded',
				failed: 'Failed',
				noNode: 'No node is currently selected.',
				noLog: 'This node has no run records yet.',
				unnamedNode: 'Untitled node',
				lastUpdated: 'Last updated: ',
				input: 'Input',
				output: 'Output',
				rawDetail: 'Run details (raw data)',
				copy: 'Copy',
				copySuccess: 'Copied successfully'
			}
		},
		toolbar: {
			nodes: 'Nodes',
			note: 'Note',
			env: 'Environment Variables',
			runEntry: 'Choose run entry',
			envDialog: {
				title: 'Environment Variables',
				description:
					'Environment variables are used to configure runtime values required by the agent, such as API_KEY and SECRET_KEY.',
				addVariable: 'Add Variable',
				empty: 'No environment variables yet. Click "Add Variable" to create one.',
				unnamedVariable: 'Untitled Variable',
				edit: 'Edit',
				delete: 'Delete',
				addDialogTitle: 'Add Environment Variable',
				editDialogTitle: 'Edit Environment Variable',
				nameLabel: 'Variable Name',
				namePlaceholder: 'For example API_KEY',
				typeLabel: 'Variable Type',
				typePlaceholder: 'Select a variable type',
				valueLabel: 'Variable Value',
				valuePlaceholder: 'Enter a variable value',
				nameRequired: 'Please enter a variable name',
				nameDuplicate: 'Variable name must be unique',
				typeRequired: 'Please select a variable type',
				valueRequired: 'Please enter a variable value'
			}
		},
		editorFooter: {
			logs: 'Logs',
			empty: 'No run logs yet. Run a node to view logs.',
			nodeName: 'Node Name',
			type: 'Type',
			status: 'Status',
			lastTime: 'Last Time',
			detail: 'Details',
			input: 'Input',
			output: 'Output',
			runId: 'Run ID',
			startedAt: 'Start Time',
			finishedAt: 'End Time',
			nodeCount: 'Nodes',
			ready: 'Ready',
			running: 'Running',
			success: 'Succeeded',
			finished: 'Finished',
			failed: 'Failed',
			error: 'Error'
		},
		runWorkflow: {
			metaStatus: 'Status',
			metaRunId: 'Run ID',
			metaStartedAt: 'Start Time',
			metaFinishedAt: 'End Time',
			metaDuration: 'Duration',
			metaSteps: 'Steps',
			invalidJson: 'Please enter a valid JSON object',
			fieldRequired: '{name} cannot be empty',
			fieldTooLong: '{name} cannot exceed {max} characters',
			missingStartNode: 'Missing start node',
			runStartFailed: 'Failed to start run',
			runFailed: 'Run failed',
			running: 'Running',
			connecting: 'Connecting',
			idle: 'Not run',
			success: 'Success',
			failed: 'Failed',
			error: 'Error',
			suspended: 'Suspended',
			drawerTitle: 'Run Workflow',
			inputTab: 'Input',
			triggerTab: 'Trigger',
			resultTab: 'Result',
			detailTab: 'Details',
			traceTab: 'Trace',
			inputPanel: {
				noStart: 'No start node was found, so this workflow cannot run.',
				noInputs: 'The start node has no configured user inputs, so you can run it directly.',
				enter: 'Please enter ',
				select: 'Please select ',
				run: 'Run Workflow'
			},
			triggerPanel: {
				listening: 'Listening for trigger events...',
				stopped: 'Trigger listener stopped',
				scheduleListening: 'Listening for scheduled trigger events.',
				scheduleStopped: 'Scheduled trigger listener stopped.',
				webhookListening:
					'You can now send a test request to the HTTP webhook trigger endpoint, or use it as a callback URL for real-time event debugging.',
				webhookStopped: 'Webhook listener stopped.',
				copySuccess: 'Test URL copied',
				copyFailed: 'Copy failed',
				nextRun: 'Next scheduled run: ',
				webhookHint: 'Always use this URL for test runs',
				stop: 'Stop'
			},
			resultPanel: {
				empty: 'No result',
				runningTitle: 'Workflow Running',
				runningDesc: 'Execution in progress, please wait...',
				output: 'Output'
			},
			detailPanel: {
				empty: 'No execution details yet',
				status: 'Status',
				duration: 'Duration',
				input: 'Input',
				output: 'Output'
			},
			tracePanel: {
				unnamedNode: 'Untitled node',
				empty: 'No node execution records yet',
				input: 'Input',
				output: 'Output'
			}
		},
		nodeLibrary: {
			groups: {
				start: 'Start',
				data: 'Data Processing',
				logic: 'Logic',
				tool: 'Tool',
				other: 'Other',
				custom: 'Custom'
			}
		},
		startSetter: {
			input: 'Input',
			empty: 'Click the plus button in the top-right corner to add workflow input fields.',
			field: 'Field',
			maxLength: 'Max Length',
			none: 'None',
			hidden: 'Hidden',
			required: 'Required',
			addVariableTitle: 'Add Variable',
			editVariableTitle: 'Edit Variable',
			fieldType: 'Field Type',
			fieldTypePlaceholder: 'Select a field type',
			variableName: 'Variable Name',
			variableNamePlaceholder: 'Enter a variable name',
			displayName: 'Display Name',
			displayNamePlaceholder: 'Enter a display name',
			options: 'Options',
			optionsPlaceholder: 'Type and press Enter to add an option',
			fileTypes: 'File Types',
			fileTypesPlaceholder: 'Select allowed file types',
			fileExtensions: 'Allowed Extensions',
			fileExtensionsPlaceholder: 'For example .zip, .sql, .json',
			fileExtensionsAria: 'Enter allowed file extensions',
			defaultValue: 'Default Value',
			defaultValuePlaceholder: 'Enter a default value',
			text: 'Text',
			textarea: 'Multiline Text',
			select: 'Select',
			number: 'Number',
			boolean: 'Boolean',
			file: 'File',
			fileList: 'File List',
			jsonObject: 'JSON Object',
			document: 'Document',
			image: 'Image',
			audio: 'Audio',
			video: 'Video',
			custom: 'Custom',
			selectShort: 'Dropdown',
			selectFieldType: 'Please select a field type',
			enterVariableName: 'Please enter a variable name',
			variableNamePattern:
				'Variable names must start with a letter and contain only letters, numbers, and underscores',
			variableNameDuplicate: 'Variable names must be unique',
			enterDisplayName: 'Please enter a display name',
			displayNameDuplicate: 'Display names must be unique',
			atLeastOneOption: 'Please add at least one option',
			customExtensionRequired: 'When "Custom" is selected, specify at least one file extension',
			defaultJsonInvalid: 'Default value must be a valid JSON object',
			jsonConfigInvalid: 'JSON config must be a valid JSON object',
			variableAdded: 'Variable added',
			variableUpdated: 'Variable updated',
			jsonSchema: 'JSON Schema',
			fieldFallback: 'Field {index}',
			booleanTrue: 'true',
			booleanFalse: 'false',
			legacyBadge: 'LEGACY',
			valueTypeString: 'string',
			valueTypeNumber: 'number',
			valueTypeBoolean: 'boolean',
			valueTypeFile: 'File',
			valueTypeFileArray: 'Array[File]',
			valueTypeObject: 'object'
		},
		loopSetter: {
			variables: 'Loop Variables',
			conditions: 'Filter Conditions',
			maxLoopCount: 'Max Loop Count',
			loopVar: {
				name: 'Variable Name',
				type: 'Variable Type',
				valueType: 'Value Source',
				setValue: '{x} Set variable value',
				value: 'Variable Value',
				addValue: 'Add Value'
			}
		},
		iterationSetter: {
			input: 'Input',
			output: 'Output',
			selectInput: 'Select an input variable',
			parallelMode: 'Parallel Mode',
			maxParallel: 'Max Parallelism',
			maxParallelTip:
				'Use max parallelism to control how many tasks run at the same time in one iteration.',
			errorHandling: 'Error Handling',
			flattenOutput: 'Flatten Output',
			stop: 'Stop',
			continueOnError: 'Continue on Error',
			removeAbnormal: 'Remove Error Output'
		},
		webhookSetter: {
			webhookDebugHint: 'Always use this URL for test runs',
			testUrl: 'Test URL',
			contentType: 'Content Type',
			queryParams: 'Query Parameters',
			headerParams: 'Header Parameters',
			bodyParams: 'Request Body Parameters',
			variableName: 'Variable Name',
			variablePlaceholder: 'Enter variable name...',
			type: 'Type',
			required: 'Required',
			response: 'Response',
			statusCode: 'Status Code',
			responseBody: 'Response Body',
			outputVariables: 'Output Variables',
			rawRequestBody: 'Raw Webhook Request Body',
			defaultTitle: 'Webhook Trigger',
			emptySuffix: 'is empty',
			copiedSuffix: 'copied',
			copyFailedSuffix: 'copy failed'
		},
		httpSetter: {
			urlRequired: 'Please enter a URL'
		},
		databaseSetter: {
			connection: 'Connection',
			query: 'Query',
			dbType: 'Type',
			dbTypePlaceholder: 'Select a database type',
			dbHost: 'Host',
			dbHostPlaceholder: 'Enter the database host',
			dbPort: 'Port',
			dbPortPlaceholder: 'Enter the database port',
			dbUsername: 'Username',
			dbUsernamePlaceholder: 'Enter the database username',
			dbEncryptPassword: 'Encrypted Password',
			dbEncryptPasswordPlaceholder: 'Enter the AES-encrypted password',
			dbPasswordRsaAesKey: 'RSA Encrypted AES Key',
			dbPasswordRsaAesKeyPlaceholder: 'Enter the AES key encrypted with RSA',
			dbName: 'Database Name',
			dbNamePlaceholder: 'Enter the database name',
			dbProperties: 'Properties',
			dbPropertiesPlaceholder: 'Optional connection properties',
			querySql: 'SQL Query',
			querySqlPlaceholder: 'Enter the SQL query statement',
			dbTypeRequired: 'Please select a database type',
			dbHostRequired: 'Please enter the database host',
			dbPortRequired: 'Please enter the database port',
			dbUsernameRequired: 'Please enter the database username',
			dbEncryptPasswordRequired: 'Please enter the AES-encrypted password',
			dbPasswordRsaAesKeyRequired: 'Please enter the RSA-encrypted AES key',
			dbNameRequired: 'Please enter the database name',
			querySqlRequired: 'Please enter the SQL query statement',
			types: {
				mysql: 'MySQL',
				sqlserver: 'SQL Server',
				oracle: 'Oracle',
				postgresql: 'PostgreSQL'
			}
		},
		moduleInvokeSetter: {
			interfaceCode: 'Interface Code',
			interfaceCodeRequired: 'Please enter the interface code'
		},
		basicDatasetSetter: {
			datasetConfig: 'Dataset Config',
			path: 'Path',
			pathPlaceholder: 'Enter the basic dataset path',
			group: 'Group',
			groupPlaceholder: 'Enter filter groups, separated by commas',
			key: 'Key',
			keyPlaceholder: 'Enter a specified id',
			pathRequired: 'Please enter the basic dataset path'
		},
		knowledgeRetrievalSetter: {
			queryVariable: 'Query Variable',
			queryVariablePlaceholder: 'Select a query text variable',
			queryVariableTip:
				'The query text used for knowledge retrieval, usually from user input or upstream output.',
			queryDescribe: 'Query text',
			knowledgeBases: 'Knowledge Base',
			knowledgeBasesPlaceholder: 'Enter a knowledge base and press Enter',
			knowledgeBasesTip:
				'Multiple knowledge bases will be searched together. If knowledge is also set, it takes precedence.',
			knowledgeIds: 'Knowledge',
			knowledgeIdsPlaceholder: 'Enter a knowledge item and press Enter',
			knowledgeIdsTip:
				'Used to limit the search to specific knowledge records or files. If empty, search runs across selected knowledge bases.',
			topK: 'Top K',
			scoreThreshold: 'Score Threshold',
			outputs: 'Outputs',
			queryRequired: 'Please select a query variable',
			knowledgeRequired:
				'At least one of knowledge_base_ids or knowledge_ids must be specified'
		},
		workflowApprovalSetter: {
			basicConfig: 'Approval Config',
			usn: 'User Account',
			usnPlaceholder: 'User account / phone / email',
			jobId: 'Job ID',
			jobIdPlaceholder: 'Enter job id',
			workflowCode: 'Workflow Code',
			workflowCodePlaceholder: 'Enter workflow code'
		},
		viewDataSetter: {
			basicConfig: 'View Config',
			code: 'View Name',
			codePlaceholder: 'Enter the view name',
			codeRequired: 'Please enter the view name',
			resultType: 'Result Type',
			resultTypeObject: 'Object',
			resultTypeArray: 'Array',
			resultTypeTree: 'Tree',
			pageSize: 'Page Size',
			treeConfig: 'Tree Config',
			treeFieldId: 'ID Field',
			treeFieldIdPlaceholder: 'Enter the mapped id field name',
			treeFieldParentId: 'Parent ID Field',
			treeFieldParentIdPlaceholder: 'Enter the mapped parentId field name',
			treeFieldChildren: 'Children Field',
			treeFieldChildrenPlaceholder: 'Enter the mapped children field name',
			treeFieldText: 'Text Field',
			treeFieldTextPlaceholder: 'Enter the mapped text field name',
			treeFieldRequired: 'Please complete id, parentId and children fields in tree config',
			indexVariable: 'Index Variable',
			indexVariableDefaultDescribe: 'Index',
			variableName: 'Name',
			variableDescribe: 'Description',
			variableType: 'Type',
			variableValue: 'Value',
			outputs: 'Outputs',
			outputPreview: 'Output Structure Preview'
		},
		questionClassifierSetter: {
			classes: 'Categories',
			addClass: '+ Add Category',
			empty: 'No categories yet. Click the button above to add one.',
			classPrefix: 'Category',
			classNamePlaceholder: 'Enter a category name, e.g. Pre-sales Question',
			classInstructionPlaceholder: 'Write the main topic or description for this category',
			modelSettings: 'Model Settings',
			model: 'Chat Model',
			modelPlaceholder: 'Select a chat model',
			modelTip: 'Question classification only supports chat models.',
			temperature: 'Temperature',
			temperatureTip: 'Controls randomness during classification. Lower values are more stable.',
			maxTokens: 'Max Tokens',
			maxTokensTip: 'Limits the maximum number of tokens the model can return for one classification.',
			thinking: 'Thinking Mode',
			thinkingTip: 'Enables the model extended reasoning mode if the selected model supports it.',
			advancedSettings: 'Advanced Settings',
			instruction: 'Instruction',
			instructionPlaceholder:
				"Write your prompt here. Type '{' to insert variables, or '/' to insert prompt blocks."
		},
		scheduleSetter: {
			title: 'Schedule Trigger',
			modeCron: 'Use Cron Expression',
			modeVisual: 'Use Visual Builder',
			frequency: 'Frequency',
			minute: 'Minute',
			time: 'Time',
			weekday: 'Weekday',
			monthDay: 'Day',
			lastDay: 'Last Day',
			lastDayTip: 'Run on the natural last day of each month',
			nextRuns: 'Next 5 run times',
			previewEmpty: 'The current configuration cannot calculate run times yet',
			cronLabel: 'Cron Expression',
			cronPlaceholder: 'For example: 0 0 0 * * ? *',
			cronSupport: 'Supports 5 to 7-part Cron expressions',
			cronUsing: 'Will trigger using the entered Cron expression',
			cronInvalid: 'Invalid Cron expression. Please enter 5 to 7 parts',
			hourly: 'Hourly',
			daily: 'Daily',
			weekly: 'Weekly',
			monthly: 'Monthly'
		},
		listSetter: {
			inputVariable: 'Input Variable',
			selectInputVariable: 'Select an input variable',
			filterConditions: 'Filter Conditions',
			insertVariable: "Type '/' to quickly insert a variable",
			takeNth: 'Take Nth Item',
			takeFirstN: 'Take First N Items',
			sort: 'Sort',
			ascending: 'Ascending',
			descending: 'Descending',
			fileFieldId: 'ID',
			fileFieldName: 'Name',
			fileFieldExtensionName: 'Extension Name',
			fileFieldSize: 'Size',
			fileFieldPath: 'Path'
		},
		conditionSetter: {
			casePrefix: 'Condition_',
			delete: 'Delete',
			elseDescription: 'Used to define the handling logic when none of the conditions match'
		}
	},
	nodes: {
		groups: {
			start: 'Start',
			data: 'Data Processing',
			logic: 'Logic',
			tool: 'Tool',
			other: 'Other'
		},
		meta: {
			start: {
				displayName: 'User Input',
				description: 'Collect user input when the workflow starts'
			},
			end: { displayName: 'Output', description: 'Finish the workflow and output the result' },
			'http-request': {
				displayName: 'HTTP Request',
				description: 'Fetch data through an HTTP request'
			},
			'if-else': {
				displayName: 'Condition',
				description: 'Route to different branches based on conditions'
			},
			database: { displayName: 'Database Query', description: 'Query data through a database' },
			code: { displayName: 'Code', description: 'Process data with code' },
			'module-invoke': {
				displayName: 'Module Invoke',
				description: 'Invoke a module through interface code'
			},
			'basic-dataset': {
				displayName: 'Basic Dataset',
				description: 'Read data from a configured basic dataset'
			},
			'knowledge-retrieval': {
				displayName: 'Knowledge Retrieval',
				description: 'Retrieve relevant text chunks from knowledge bases or specific knowledge files'
			},
			'view-data': {
				displayName: 'View Data',
				description: 'Read data from a configured view'
			},
			iteration: { displayName: 'Iteration', description: 'Iteration node' },
			loop: { displayName: 'Loop', description: 'Loop node' },
			'list-operator': { displayName: 'List Operations', description: 'List operation node' },
			'question-classifier': {
				displayName: 'Question Classifier',
				description: 'Classify questions into predefined categories'
			},
			'loop-end': { displayName: 'Exit Loop', description: 'Exit the current iteration or loop' },
			'trigger-schedule': {
				displayName: 'Schedule Trigger',
				description: 'Trigger the workflow on a schedule'
			},
			'trigger-webhook': {
				displayName: 'Webhook Trigger',
				description: 'Receive third-party webhook requests and trigger the workflow'
			},
			'loop-start': { displayName: 'Loop Start' },
			'iteration-start': { displayName: 'Iteration Start' },
			stickyNote: { displayName: 'Note', description: 'Markdown note block' },
			'mail-sender': {
				displayName: 'Mail Sender',
				description: 'Send emails to specified recipients'
			},
			'sms-sender': {
				displayName: 'SMS Sender',
				description: 'Send SMS messages to specified phone numbers'
			},
			'workflow-approval': {
				displayName: 'Workflow Approval',
				description: 'Submit workflow approval request with user and job information'
			}
		},
		outputs: {
			http: {
				body: 'Response body',
				statusCode: 'Response status code',
				headers: 'Response headers JSON'
			},
			webhook: {
				rawRequestBody: 'Raw webhook request body'
			},
			database: {
				rows: 'Query result rows',
				rowCount: 'Query result row count'
			},
			'view-data': {
				viewTable: 'View data result',
				viewName: 'View name',
				totalCount: 'Total count'
			},
			'knowledge-retrieval': {
				result: 'Matched text chunks',
				content: 'Concatenated retrieval content'
			},
			list: {
				result: 'Filtered results',
				firstRecord: 'First record',
				lastRecord: 'Last record'
			},
			condition: {
				casePrefix: 'Condition_'
			},
			'question-classifier': {
				classPrefix: 'Class '
			}
		}
	}
}
