{
  "agent": {
    "title": "Agent",
    "create": "Create Agent",
    "createSuccess": "Created successfully",
    "createFailed": "Failed to create",
    "saveSuccess": "Saved successfully",
    "saveFailed": "Failed to save",
    "publishSuccess": "Published successfully",
    "publishFailed": "Failed to publish",
    "disableSuccess": "Disabled",
    "deleteSuccess": "Deleted successfully",
    "deleteFailed": "Failed to delete",
    "deleteConfirm": "Are you sure to delete agent \"{name}\"?",
    "deleteTitle": "Delete Confirmation",
    "unpublishMenuSuccess": "Menu unpublished successfully",
    "operationFailed": "Operation failed",
    "fillNameAndCode": "Please fill in name and code",
    "codeFormatError": "Code must start with a letter and contain only letters, numbers and underscores",
    "searchPlaceholder": "Search agent name",
    "search": "Search",
    "noDescription": "No description",
    "empty": "No agents",
    "mainApp": "Main App",
    "edit": "Edit",
    "delete": "Delete",
    "chat": "Chat",
    "publish": "Publish",
    "publishToMenu": "Publish Agent to Menu",
    "unpublishMenu": "Unpublish Menu",
    "disable": "Disable",
    "back": "Back",
    "save": "Save",
    "cancel": "Cancel",
    "loading": "Loading...",
    "status": {
      "draft": "Draft",
      "published": "Published",
      "disabled": "Disabled"
    },
    "mode": {
      "autonomous": "Autonomous",
      "dialogFlow": "Dialog Flow",
      "autonomousLabel": "Autonomous Mode",
      "dialogFlowLabel": "Dialog Flow Mode",
      "autonomousDesc": "Agent automatically decomposes and executes tasks",
      "dialogFlowDesc": "Interact with users following predefined workflow"
    },
    "form": {
      "name": "Name",
      "namePlaceholder": "Please enter agent name",
      "code": "Code",
      "codePlaceholder": "Please enter unique code",
      "appCode": "App Code",
      "mode": "Mode",
      "description": "Description",
      "descriptionPlaceholder": "Please enter description",
      "globalVisible": "Visible to Sub-apps"
    },
    "importExport": {
      "export": "Export",
      "import": "Import Config",
      "exportSuccess": "Agent config exported",
      "exportFailed": "Export failed",
      "importTitle": "Import Agent Config",
      "dragOrClick": "Drag a JSON file here or click to upload",
      "onlyJson": "Only .json files are supported",
      "fileParseError": "Failed to parse file. Please check the format",
      "checking": "Checking...",
      "codeConflictTip": "Agent code already exists. Please change the code before importing",
      "codeAvailable": "Agent code is available",
      "newCodePlaceholder": "Enter a new agent code",
      "importSuccess": "Agent config imported successfully",
      "importFailed": "Import failed",
      "confirmImport": "Confirm Import",
      "reselect": "Reselect",
      "agentInfo": "Agent Info",
      "modelName": "Model",
      "workflowCode": "Workflow",
      "appTip": "Imported agent will belong to the current application as draft",
      "refTip": "Model, workflow and knowledge bases are matched by name/code; reconfigure in editor if missing in target environment"
    },
    "basicInfo": "Basic Info",
    "runMode": "Run Mode",
    "runModeTooltip": "Autonomous Mode: Agent automatically understands user intent and responds, suitable for general Q&A; Dialog Flow Mode: Interacts with users following predefined workflow steps, suitable for fixed process scenarios",
    "relatedWorkflow": "Related Workflow",
    "relatedWorkflowTooltip": "Select a published workflow. In dialog flow mode, the agent will interact with users following the workflow steps",
    "selectWorkflow": "Please select workflow",
    "dialogFlowHint": "Dialog flow mode requires a linked workflow. The workflow can use interactive nodes like Q&A, choice, etc.",
    "conversationMemory": "Conversation Memory",
    "conversationMemoryTooltip": "When enabled, LLM nodes in the workflow can access conversation history for more coherent responses",
    "enabled": "Enabled",
    "notEnabled": "Not Enabled",
    "memoryWindow": "Memory Window",
    "memoryWindowTooltip": "LLM nodes can access the last N rounds of conversation history. Larger values mean longer memory but more token consumption",
    "rounds": "rounds",
    "agentDescription": "Agent description...",
    "persona": {
      "title": "Persona",
      "role": "Role",
      "roleTooltip": "Define the core identity and responsibilities of the agent, e.g. 'You are a professional data analyst'. This affects the AI's response style and expertise",
      "rolePlaceholder": "e.g. You are a professional data analyst, skilled at handling complex data problems...",
      "personality": "Personality",
      "personalityTooltip": "Set personality traits like 'rigorous', 'friendly', 'humorous', etc. to influence the tone and style of responses",
      "personalityPlaceholder": "Enter personality trait, press Enter to add",
      "skills": "Skills",
      "skillsTooltip": "List the agent's expertise areas like 'data analysis', 'code review', etc. to help AI understand its capability boundaries",
      "skillsPlaceholder": "Enter skill, press Enter to add",
      "constraints": "Constraints",
      "constraintsTooltip": "Set rules the agent must follow, like 'no political topics', 'answers must be fact-based', etc. to prevent AI from overstepping",
      "constraintsPlaceholder": "Enter constraint, press Enter to add",
      "background": "Background",
      "backgroundTooltip": "Provide detailed background info like company, business domain, target audience, etc. to help AI better understand the business context",
      "backgroundPlaceholder": "Detailed background...",
      "add": "Add"
    },
    "prompt": {
      "title": "System Prompt",
      "tooltip": "Direct instruction text for AI, higher priority than persona config. Leave empty to auto-generate from persona",
      "placeholder": "Write system prompt directly, or leave empty to auto-generate from persona..."
    },
    "model": {
      "title": "Model Config",
      "label": "Model",
      "tooltip": "Select the LLM for the agent. Different models vary in capability, speed, and cost",
      "placeholder": "Please select model",
      "temperature": "Temperature",
      "temperatureTooltip": "Controls response randomness. Lower values give more stable responses, higher values are more creative but may be inaccurate. Recommended: strict 0.1~0.3, general 0.5~0.7, creative 0.8~1.2",
      "maxToken": "Max Tokens",
      "maxTokenTooltip": "Maximum output length per response (in tokens). ~1 token ≈ 4 English characters. Larger values allow longer responses but cost more",
      "maxIterations": "Max Iterations",
      "maxIterationsTooltip": "Maximum think-act cycles per conversation. Prevents infinite loops. Usually 5~10 is sufficient",
      "streaming": "Streaming Output",
      "streamingTooltip": "When enabled, AI responses stream character by character for a smoother experience"
    },
    "knowledgeBase": {
      "title": "Knowledge Base",
      "label": "Linked Knowledge Bases",
      "placeholder": "Select knowledge bases to link",
      "hint": "After selecting knowledge bases, relevant content will be automatically retrieved as context for each question, improving answer accuracy",
      "documents": "documents",
      "retrievalMode": "Retrieval Mode",
      "retrievalModeTooltip": "Hybrid: Uses both semantic vectors and keyword matching, best for most scenarios; Vector: Based on semantic similarity, good at understanding synonyms; Full-text: Based on exact keyword matching, good for technical terms",
      "hybridRecommended": "Hybrid (Recommended)",
      "vectorSearch": "Vector Semantic Search",
      "fulltextSearch": "Full-text Keyword Search",
      "topK": "Top K",
      "topKTooltip": "Number of most relevant segments returned per retrieval. Larger values provide richer context but may introduce noise. Recommended 3~5",
      "scoreThreshold": "Score Threshold",
      "scoreThresholdTooltip": "Only return results above this similarity threshold. Higher values mean more precise but may miss relevant content. Recommended 0.5~0.7"
    },
    "welcome": {
      "title": "Welcome Message",
      "tooltip": "Auto-displayed greeting when users first enter the conversation. Can introduce agent capabilities or guide users",
      "placeholder": "Welcome message when starting conversation..."
    },
    "suggestions": {
      "title": "Suggested Questions",
      "hint": "Suggested questions are shown at the start of conversation to help users get started quickly",
      "placeholder": "Enter suggested question",
      "inputPlaceholder": "Enter suggested question, press Enter to add",
      "add": "Add",
      "empty": "No suggested questions. Add some to help users get started"
    },
    "debug": {
      "inputPlaceholder": "Enter message to debug...",
      "publishFirst": "Please publish the agent first"
    },
    "chatPanel": {
      "inputPlaceholder": "Enter message...",
      "sendToStart": "Send a message to start conversation",
      "publishFirst": "Please publish the agent before chatting",
      "executionFailed": "Execution failed",
      "waitingInput": "Waiting for input...",
      "selectPrompt": "Please select:",
      "confirm": "Confirm",
      "confirmContinue": "Please confirm to continue?",
      "inputPrompt": "Please input:",
      "feedbackThanks": "Thanks for your feedback",
      "confirmDesign": "Confirm Design",
      "confirmAppDesign": "Confirm App Design",
      "appDesignTitle": "App Design Plan",
      "designPreview": "Design Preview",
      "designPanelHint": "Please confirm or edit the design in the right panel",
      "aiDeveloping": "AI is developing...",
      "analyzingAndGenerating": "Analyzing requirements and generating code",
      "cancelText": "Cancel"
    },
    "codeRequired": "Agent code is required",
    "loadFailed": "Failed to load agent",
    "notFound": "Agent not found",
    "knowledge": {
      "annotationReply": "Annotation Direct Reply",
      "annotationReplyTip": "When enabled, if user question matches an annotation above the threshold, the annotation answer is returned directly without calling LLM. Zero token cost, faster response. Falls back to normal RAG when no match.",
      "annotationThreshold": "Annotation Match Threshold",
      "annotationThresholdTip": "Directly return annotation answer when similarity exceeds this threshold. Recommend 0.9+ to avoid false matches."
    }
  },
  "conversation": {
    "history": "History",
    "new": "New Chat",
    "empty": "No conversations yet",
    "untitled": "Untitled",
    "messages": "messages",
    "loadFailed": "Failed to load conversations",
    "deleteConfirm": "Are you sure to delete this conversation?",
    "deleteSuccess": "Deleted successfully",
    "deleteFailed": "Failed to delete"
  },
  "appSettings": {
    "title": "App Settings",
    "appConfig": "App Config",
    "logoConfig": "Logo Config",
    "themeConfig": "Theme Config",
    "layoutConfig": "Layout Config",
    "appName": "App Name",
    "appNamePlaceholder": "Please enter app name",
    "defaultHomePath": "Default Home",
    "defaultHomePathPlaceholder": "Please enter default home path",
    "enablePreferences": "Enable Preferences",
    "logoEnable": "Enable Logo",
    "logoSource": "Logo Image",
    "logoSourcePlaceholder": "Please enter logo image URL or upload",
    "logoFit": "Fit Mode",
    "builtinTheme": "Built-in Theme",
    "primaryColor": "Primary Color",
    "themeMode": "Theme Mode",
    "layout": "Layout Mode",
    "layoutOptions": {
      "sidebar-nav": "Sidebar Navigation",
      "sidebar-mixed-nav": "Sidebar Mixed Navigation",
      "header-nav": "Header Navigation",
      "mixed-nav": "Mixed Navigation",
      "full-content": "Full Content"
    },
    "themeOptions": {
      "default": "Default",
      "violet": "Violet",
      "pink": "Pink",
      "rose": "Rose",
      "sky": "Sky",
      "cyan": "Cyan",
      "green": "Green",
      "orange": "Orange",
      "yellow": "Yellow",
      "zinc": "Zinc",
      "neutral": "Neutral",
      "slate": "Slate",
      "gray": "Gray",
      "deep-blue": "Deep Blue",
      "deep-green": "Deep Green"
    },
    "themeModeOptions": {
      "light": "Light",
      "dark": "Dark",
      "auto": "Follow System"
    },
    "fitOptions": {
      "contain": "Contain",
      "cover": "Cover",
      "fill": "Fill",
      "none": "None",
      "scale-down": "Scale Down"
    }
  },
  "dashboard": {
    "basicInfo": {
      "title": "Dashboard Basic Info",
      "name": "Dashboard Name",
      "namePlaceholder": "Please enter dashboard name",
      "code": "Dashboard Code",
      "codePlaceholder": "Please enter dashboard code",
      "category": "Category",
      "categoryPlaceholder": "Please select category",
      "description": "Description",
      "descriptionPlaceholder": "Please enter description",
      "sort": "Sort",
      "requireConfirmation": "Require Confirmation",
      "categoryOptions": {
        "dashboard": "Dashboard",
        "portal": "Portal",
        "databoard": "Data Board",
        "other": "Other"
      }
    },
    "design": {
      "title": "Dashboard Design",
      "designTitle": "Design Title",
      "designSuggestion": "Design Suggestion",
      "requireConfirmation": "Require Confirmation"
    },
    "create": {
      "title": "Dashboard Create",
      "basicInfo": "Basic Info",
      "pageConfig": "Page Config",
      "applicationId": "Application ID",
      "updateIfExists": "Update If Exists"
    },
    "publish": {
      "title": "Dashboard Publish",
      "dashboardId": "Dashboard ID",
      "menuName": "Menu Name",
      "menuParentId": "Parent Menu ID",
      "menuIcon": "Menu Icon",
      "menuOrder": "Menu Order"
    }
  },
  "systemSummary": {
    "title": "System Created Successfully",
    "subtitle": "Here are the modules AI created for you",
    "app": "Application",
    "formModules": "Form Modules",
    "dashboard": "Dashboard",
    "appInfo": "Application Info",
    "formModulesTitle": "Feature Modules",
    "dashboardTitle": "Data Dashboard",
    "visit": "Visit",
    "complete": "Complete",
    "noData": "No modules created"
  },
  "knowledge": {
    "title": "Knowledge Base",
    "create": "Create Knowledge Base",
    "edit": "Edit Knowledge Base",
    "delete": "Delete Knowledge Base",
    "deleteConfirm": "Are you sure to delete this knowledge base? All documents and segments will be permanently lost.",
    "deleteSuccess": "Deleted successfully",
    "createSuccess": "Created successfully",
    "saveSuccess": "Saved successfully",
    "name": "Name",
    "namePlaceholder": "Please enter knowledge base name",
    "code": "Code",
    "codePlaceholder": "Please enter unique code",
    "description": "Description",
    "descriptionPlaceholder": "Please enter description",
    "embeddingModel": "Embedding Model",
    "embeddingModelPlaceholder": "Please select embedding model",
    "dimensions": "Dimensions",
    "chunkStrategy": "Chunk Strategy",
    "chunkSize": "Chunk Size",
    "chunkOverlap": "Chunk Overlap",
    "retrievalMode": "Retrieval Mode",
    "topK": "Top K",
    "scoreThreshold": "Score Threshold",
    "rerank": "Rerank",
    "status": "Status",
    "active": "Active",
    "disabled": "Disabled",
    "globalVisible": "Visible to Sub-apps",
    "documents": "Documents",
    "segments": "Segments",
    "tokens": "Tokens",
    "noDescription": "No description",
    "mainApp": "Main App",
    "search": "Search",
    "searchPlaceholder": "Search knowledge base name",
    "document": {
      "title": "Document Management",
      "add": "Add Document",
      "batchAdd": "Batch Add",
      "delete": "Delete Document",
      "deleteConfirm": "Are you sure to delete this document?",
      "deleteSuccess": "Deleted successfully",
      "reindex": "Reindex",
      "reindexSuccess": "Reindexing started",
      "reindexAll": "Reindex All",
      "reindexAllConfirm": "Are you sure to reindex all documents? This may take a while.",
      "reindexAllSuccess": "Started reindexing all documents",
      "duplicateWarning": "Duplicate content warning",
      "enable": "Enable",
      "disable": "Disable",
      "pending": "Pending",
      "indexing": "Indexing",
      "completed": "Completed",
      "failed": "Failed",
      "searchPlaceholder": "Search document name",
      "selectFile": "Select Files",
      "addSuccess": "Documents added, indexing in background",
      "uploadPlaceholder": "Click to upload or drag files, supports PDF, Word, TXT, Markdown, etc."
    },
    "segment": {
      "title": "Segment Management",
      "add": "Add Segment",
      "edit": "Edit Segment",
      "delete": "Delete Segment",
      "deleteConfirm": "Are you sure to delete this segment?",
      "deleteSuccess": "Deleted successfully",
      "content": "Content",
      "contentPlaceholder": "Please enter segment content",
      "keywords": "Keywords",
      "enabled": "Enabled",
      "disabled": "Disabled",
      "searchPlaceholder": "Search segment content",
      "embeddingCompleted": "Embedding OK",
      "embeddingFailed": "Embedding Failed"
    },
    "annotation": {
      "title": "Annotations",
      "add": "Add Annotation",
      "edit": "Edit Annotation",
      "delete": "Delete Annotation",
      "deleteConfirm": "Are you sure to delete this annotation?",
      "deleteSuccess": "Deleted successfully",
      "createSuccess": "Created successfully",
      "saveSuccess": "Saved successfully",
      "question": "Question",
      "questionPlaceholder": "Please enter question",
      "answer": "Answer",
      "answerPlaceholder": "Please enter answer",
      "searchPlaceholder": "Search annotations",
      "hitCount": "Hit Count",
      "enabled": "Enabled",
      "disabled": "Disabled",
      "reindex": "Re-vectorize",
      "reindexSuccess": "Vectorization task submitted",
      "vectorizing": "Vectorizing"
    },
    "hitStats": {
      "title": "Hit Statistics",
      "totalHits": "Total Hits",
      "totalSegments": "Total Segments",
      "zeroHitCount": "Zero-hit Segments",
      "hitCount": "Hit Count",
      "hitPercentage": "Hit Percentage",
      "includeZero": "Include Zero-hit",
      "topN": "Display Count",
      "noData": "No hit data yet"
    },
    "retrievalLog": {
      "title": "Retrieval Logs",
      "query": "Query",
      "resultCount": "Results",
      "elapsed": "Elapsed",
      "mode": "Mode",
      "rerank": "Rerank",
      "source": "Source",
      "time": "Time",
      "searchPlaceholder": "Search query content",
      "noData": "No retrieval logs yet",
      "sourceAgent": "Agent",
      "sourceAnnotation": "Annotation Reply",
      "sourceApi": "Recall Test"
    },
    "retrieval": {
      "title": "Retrieval Test",
      "query": "Query",
      "queryPlaceholder": "Please enter query text",
      "test": "Test",
      "results": "Results",
      "noResults": "No results found",
      "score": "Score",
      "source": "Source",
      "elapsed": "Elapsed",
      "metadataFilterPlaceholder": "Metadata filter (JSON, e.g. {\"author\": \"xxx\"})",
      "invalidMetadataFilter": "Invalid metadata filter format, please enter valid JSON",
      "matchSource": {
        "vector": "Vector Match",
        "fulltext": "Fulltext Match",
        "annotation": "Annotation Match"
      },
      "showParent": "Show Parent Segment",
      "hideParent": "Hide Parent Segment"
    },
    "chunkPreview": {
      "title": "Chunk Preview",
      "totalChunks": "Total Chunks",
      "selectFile": "Please select a file to preview chunking",
      "loading": "Loading chunk preview...",
      "noFileId": "This document has no associated file",
      "error": "Chunk preview failed"
    },
    "metadata": {
      "editTitle": "Edit Metadata",
      "key": "Key",
      "value": "Value",
      "add": "Add Metadata",
      "addPair": "Add Row",
      "addFilter": "Add Metadata Filter",
      "filter": "Filter",
      "filterKeyPlaceholder": "Metadata Key",
      "filterValuePlaceholder": "Metadata Value"
    },
    "settings": {
      "title": "Knowledge Base Settings",
      "basic": "Basic Info",
      "indexing": "Indexing Config",
      "retrieval": "Retrieval Config",
      "advanced": "Advanced",
      "embeddingModelChangeTitle": "Embedding Model Changed",
      "embeddingModelChangeWarning": "Changing the embedding model will make existing vectors incompatible. All documents need to be re-indexed. Save and re-index?",
      "saveAndReindex": "Save & Re-index"
    },
    "indexingTechnique": "Indexing Mode",
    "indexingTechniques": {
      "high_quality": "High Quality",
      "economy": "Economy"
    },
    "indexingTechniqueHint": {
      "high_quality": "Vector indexing + keyword extraction, best retrieval quality",
      "economy": "Keyword-only indexing, no Embedding cost"
    },
    "retrievalWeight": "Retrieval Weight",
    "retrievalWeightHint": "Weight coefficient for multi-KB retrieval (0.1-10.0), higher value ranks results higher",
    "processRules": "Process Rules",
    "processRulesHint": "Text cleaning rules before document indexing",
    "removeExtraSpaces": "Remove extra spaces",
    "removeUrlsEmails": "Remove URLs and emails",
    "chunkStrategies": {
      "recursive": "Recursive",
      "markdown": "Markdown",
      "fixed": "Fixed Size",
      "sentence": "Sentence",
      "auto": "Auto (Recommended)",
      "qa": "Q&A"
    },
    "retrievalModes": {
      "vector": "Vector Search",
      "fulltext": "Full-text Search",
      "hybrid": "Hybrid Search"
    },
    "embeddingModelTooltip": "Model for converting text to vectors, directly affects semantic search quality. Different models support different languages and dimensions",
    "embeddingModelSettingsTooltip": "Model for converting text to vectors, directly affects semantic search quality. Documents need to be re-indexed after changing the model",
    "chunkStrategyTooltip": "Document chunking strategy. auto: automatically select best strategy; recursive: recursive splitting, versatile; markdown: split by headings; fixed: fixed length; sentence: by sentence; qa: AI auto-split into Q&A pairs",
    "chunkStrategySettingsTooltip": "Document chunking strategy. auto: auto select; recursive: recursive splitting; markdown: split by headings; fixed: fixed length; sentence: by sentence; qa: AI split into Q&A pairs",
    "indexingTechniqueTooltip": "High quality: uses Embedding vectorization, high retrieval accuracy but resource-intensive; Economy: keyword-only indexing, low resource usage but limited accuracy",
    "retrievalModeTooltip": "Hybrid: uses both semantic vectors and keyword matching, recommended for most scenarios; Vector: based on semantic similarity; Full-text: based on exact keyword matching",
    "chunkSizeTooltip": "Maximum characters per document chunk. Larger chunks preserve more context but may introduce noise, smaller chunks are more precise but may lose context. Recommended: 300~800",
    "chunkSizeSettingsTooltip": "Maximum characters per chunk, larger preserves more context but may introduce noise. Recommended: 300~800",
    "chunkOverlapTooltip": "Overlapping characters between adjacent chunks to ensure information at chunk boundaries is not lost. Recommended: 10%~20% of chunk size",
    "chunkOverlapSettingsTooltip": "Overlapping characters between adjacent chunks to preserve boundary information. Recommended: 10%~20% of chunk size",
    "globalVisibleTooltip": "When enabled, all applications can use this knowledge base; otherwise only the current application",
    "dimensionsTooltip": "Embedding vector dimensions, must match the selected Embedding model. Higher dimensions provide richer semantic representation but increase storage and computation costs",
    "topKTooltip": "Number of most relevant segments returned per retrieval. Higher values provide richer context but may introduce noise. Recommended: 3~5",
    "scoreThresholdTooltip": "Only return results with similarity above this threshold. Higher values mean more precise matches but may miss relevant content. Recommended: 0.5~0.7",
    "rerankTooltip": "When enabled, performs secondary ranking on initial retrieval results, significantly improving accuracy but adding latency and cost",
    "retrievalWeightTooltip": "Weight coefficient for this knowledge base in multi-KB retrieval. Higher values rank this KB's results higher",
    "processRulesTooltip": "Text cleaning rules before document indexing. Removes extra spaces, URLs, emails and other irrelevant content to improve retrieval quality"
  },
  "knowledgeNode": {
    "selectKb": "Select knowledge base",
    "queryText": "Query Text",
    "queryPlaceholder": "Enter query text or use variable reference",
    "queryHint": "Leave empty to use user input, supports {'{{variable}}'} references",
    "retrievalMode": "Retrieval Mode",
    "useKbDefault": "Use knowledge base default",
    "vector": "Vector Search",
    "fulltext": "Full-text Search",
    "hybrid": "Hybrid Search",
    "outputVar": "Result Variable",
    "contextVar": "Context Variable",
    "rerankEnabled": "Enable Rerank",
    "rerankHint": "Use Rerank model to reorder results after retrieval for better relevance",
    "rerankModel": "Rerank Model",
    "noRerankModel": "No Rerank model configured, please add one in Model Management",
    "outputVariables": "Output Variables",
    "resultsArrayDesc": "Array of retrieval results with segment_id, content, score, etc.",
    "contextTextDesc": "Concatenated context text, ready for LLM node prompts",
    "totalCountDesc": "Total count of retrieval results"
  },
  "workflow": {
    "title": "Workflow",
    "create": "Create Workflow",
    "createSuccess": "Created successfully",
    "saveSuccess": "Saved successfully",
    "published": "Published",
    "unpublished": "Unpublished",
    "editing": "Editing",
    "publishSuccess": "Published successfully",
    "publishFailed": "Failed to publish",
    "copySuccess": "Copied successfully",
    "deleteSuccess": "Deleted successfully",
    "deleteConfirm": "Are you sure to delete workflow \"{name}\"?",
    "deleteTitle": "Delete Confirmation",
    "operationFailed": "Operation failed",
    "searchPlaceholder": "Search workflow name",
    "search": "Search",
    "noDescription": "No description",
    "empty": "No workflows",
    "mainApp": "Main App",
    "edit": "Edit",
    "editInfo": "Edit Info",
    "design": "Design",
    "publish": "Publish",
    "run": "Run",
    "copy": "Copy",
    "delete": "Delete",
    "disable": "Disable",
    "form": {
      "name": "Name",
      "namePlaceholder": "Please enter workflow name",
      "nameRequired": "Please enter name",
      "code": "Code",
      "codePlaceholder": "Please enter unique code",
      "codeRequired": "Please enter code",
      "codeFormat": "Code must start with a letter and contain only letters, numbers and underscores",
      "type": "Type",
      "description": "Description",
      "descriptionPlaceholder": "Please enter description",
      "globalVisible": "Visible to Sub-apps"
    },
    "status": {
      "draft": "Draft",
      "published": "Published",
      "disabled": "Disabled"
    },
    "type": {
      "general": "General",
      "application": "Application",
      "form": "Form",
      "report": "Report",
      "dataProcess": "Data Process",
      "automation": "Automation"
    },
    "deleteConfirmSimple": "Are you sure to delete this workflow? This action cannot be undone.",
    "copyConfirm": "Are you sure to copy workflow \"{name}\"?",
    "copyTitle": "Copy Confirmation",
    "deleteButton": "Delete",
    "cancelButton": "Cancel",
    "copyButton": "Copy",
    "editWorkflow": "Edit Workflow",
    "importExport": {
      "export": "Export",
      "import": "Import Config",
      "exportSuccess": "Workflow config exported",
      "exportFailed": "Export failed",
      "importTitle": "Import Workflow Config",
      "dragOrClick": "Drag a JSON file here or click to upload",
      "onlyJson": "Only .json files are supported",
      "fileParseError": "Failed to parse file. Please check the format",
      "checking": "Checking...",
      "codeConflictTip": "Workflow code already exists. Please change the code before importing",
      "codeAvailable": "Workflow code is available",
      "newCodePlaceholder": "Enter a new workflow code",
      "importSuccess": "Workflow config imported successfully",
      "importFailed": "Import failed",
      "confirmImport": "Confirm Import",
      "reselect": "Reselect",
      "workflowInfo": "Workflow Info",
      "appTip": "Imported workflow will belong to the current application as draft",
      "subflowTip": "Subflow nodes are matched by code; re-select in editor if subflows are missing in target environment"
    },
    "nodeLabel": "Node Name",
    "nodes": {
      "knowledge_retrieval": "Knowledge Retrieval",
      "common": {
        "configured": "Configured",
        "notConfigured": "Not configured",
        "yes": "Yes",
        "no": "No",
        "output": "Output:",
        "outputVariable": "Output variable:",
        "inputVariablesCount": "{count} input variable(s) configured",
        "noInputVariables": "No input variables",
        "outputVariablesCount": "{count} output variable(s) configured",
        "noOutputVariables": "No output variables",
        "addNextNode": "Add next node",
        "question": "Question:",
        "configureQuestion": "Please configure question",
        "conditions": "Conditions: {count}",
        "selectModel": "Select model"
      },
      "start": {
        "label": "Start",
        "desc": "Starting node of the flow"
      },
      "end": {
        "label": "End",
        "desc": "End flow and output results"
      },
      "llm": {
        "label": "LLM",
        "desc": "Call large language model for processing",
        "systemPrompt": "System prompt:",
        "userPrompt": "User prompt:"
      },
      "code": {
        "label": "Code Execution",
        "desc": "Execute Python/JavaScript code",
        "language": "Language:",
        "input": "Input:"
      },
      "condition": {
        "label": "Condition Branch",
        "desc": "Execute different branches based on conditions",
        "unnamed": "Unnamed"
      },
      "http": {
        "label": "HTTP Request",
        "desc": "Call external API"
      },
      "template": {
        "label": "Template Render",
        "desc": "Combine text using Jinja2 syntax"
      },
      "variable": {
        "label": "Variable Assignment",
        "desc": "Set or transform variable values"
      },
      "question": {
        "label": "Question Node",
        "desc": "Ask user a question and wait for answer",
        "inputType": "Input type:"
      },
      "choice": {
        "label": "Choice Node",
        "desc": "Let user choose from options",
        "options": "Options:",
        "noOptions": "No options configured",
        "multiple": "Multiple",
        "single": "Single"
      },
      "message": {
        "label": "Message Node",
        "desc": "Send message to user",
        "content": "Message content:",
        "configureContent": "Please configure message content",
        "messageType": "Message type:"
      },
      "confirm": {
        "label": "Confirm Node",
        "desc": "Wait for user to confirm or cancel",
        "confirmText": "Confirm",
        "cancelText": "Cancel",
        "configureContent": "Please configure confirm content"
      },
      "intent": {
        "label": "Intent Recognition",
        "desc": "AI intelligent intent recognition",
        "noMatch": "No match",
        "confidenceThreshold": "Confidence threshold:"
      },
      "parallel": {
        "label": "Parallel Branch",
        "desc": "Execute multiple branches simultaneously",
        "branch": "Branch {index}"
      },
      "merge": {
        "label": "Merge",
        "desc": "Wait for all branches to complete and merge",
        "mergeMode": "Merge mode",
        "array": "Array",
        "concat": "Concat",
        "first": "First",
        "object": "Object"
      },
      "loop": {
        "label": "Loop",
        "forEach": "For Each",
        "whileLoop": "While Loop",
        "nodeCount": "{count} node(s)",
        "iteration": "Iteration {current}/{total}",
        "iterationNoTotal": "Iteration {current}",
        "maxIterations": "Max {max} iterations",
        "loopCondition": "Loop condition",
        "availableVariables": "Available variables:",
        "dragNodeHere": "Drag nodes here as loop body"
      },
      "subflow": {
        "label": "Subflow",
        "desc": "Call sub-workflow",
        "subflowLabel": "Subflow:",
        "notSelected": "No subflow selected",
        "varPassMode": "Variable passing:",
        "all": "All",
        "selected": "Selected",
        "none": "None",
        "progress": "Progress:",
        "current": "Current: {label}",
        "subflowNodes": "Subflow nodes",
        "loading": "Loading...",
        "emptySubflow": "Subflow is empty",
        "selectSubflow": "Please select a subflow"
      },
      "db_query": {
        "label": "Query",
        "desc": "Query data from database",
        "noTable": "No table selected",
        "returnMode": "Return:",
        "limit": "Limit: {count} rows"
      },
      "db_insert": {
        "label": "Insert",
        "desc": "Insert data into database",
        "noTable": "No table selected",
        "fieldMapping": "Field mapping:",
        "upsert": "Upsert:"
      },
      "db_update": {
        "label": "Update",
        "desc": "Update database records",
        "noTable": "No table selected",
        "updateFields": "Update fields:"
      },
      "db_delete": {
        "label": "Delete",
        "desc": "Delete data from database",
        "noTable": "No table selected",
        "mustSetCondition": "Conditions required"
      },
      "db_sql": {
        "label": "SQL Execute",
        "desc": "Execute custom SQL statements",
        "query": "Query",
        "execute": "Execute",
        "notConfigured": "Not configured"
      },
      "app_create": {
        "label": "Create App",
        "desc": "Create a new app/sub-app",
        "appName": "App name:",
        "appCode": "App code:",
        "updateIfExists": "Update if exists:"
      },
      "app_design": {
        "label": "App Design",
        "desc": "Display app design, support confirm or edit",
        "designTitle": "Design title:",
        "needConfirm": "Need confirm:"
      },
      "app_settings": {
        "label": "App Settings",
        "desc": "Configure app settings including theme and layout",
        "appName": "App name:",
        "layoutMode": "Layout mode:",
        "builtinTheme": "Built-in theme:",
        "needConfirm": "Need confirm:"
      },
      "app_update": {
        "label": "App Update",
        "desc": "Execute app configuration update",
        "settingsSource": "Settings source:",
        "app": "App:",
        "target": "Target:",
        "mainApp": "Main app"
      },
      "form_basic_info": {
        "label": "Form Basic Info",
        "desc": "Process form basic information",
        "formName": "Form name:",
        "formCode": "Form code:",
        "autoGenerate": "Auto generate",
        "formType": "Form type:",
        "workflow": "Workflow",
        "normal": "Normal"
      },
      "form_create": {
        "label": "Form Create",
        "desc": "Save form config to database",
        "updateIfExists": "Update if exists:"
      },
      "form_data": {
        "label": "Form Data",
        "desc": "Form data operations",
        "create": "Create Form Data",
        "createDesc": "Create new form data record",
        "read": "Read Form Data",
        "readDesc": "Read specified form data record",
        "update": "Update Form Data",
        "updateDesc": "Update existing form data record",
        "delete": "Delete Form Data",
        "deleteDesc": "Delete specified form data record",
        "list": "Query Form Data",
        "listDesc": "Query form data list",
        "schemaToLLM": "Form to LLM Schema",
        "schemaToLLMDesc": "Convert form config to LLM structured output",
        "formCode": "Form code:",
        "recordId": "Record ID:",
        "updateData": "Update data:",
        "createData": "Create data:",
        "filterCondition": "Filter condition:"
      },
      "form_db_create": {
        "label": "DB Table Create",
        "desc": "Create database and tables",
        "operation": "Operation:",
        "createTable": "Create table",
        "tableExists": "Table exists:",
        "dropRecreate": "Drop & recreate",
        "error": "Error",
        "skip": "Skip",
        "autoCreateSchema": "Auto create:",
        "schemaIfNotExists": "Schema:"
      },
      "form_db_design": {
        "label": "DB Table Design",
        "desc": "Validate and standardize DB table structure",
        "database": "Database:",
        "mainTable": "Main table:",
        "subTable": "Sub table:",
        "noSubTable": "None",
        "systemFields": "System fields:",
        "autoAdd": "Auto add",
        "noAdd": "No add"
      },
      "form_list_design": {
        "label": "List UI Design",
        "desc": "Generate list config from form UI design",
        "containerType": "Container type:",
        "drawer": "Drawer",
        "dialog": "Dialog",
        "page": "Page",
        "pageSize": "Page size:",
        "autoQueryFields": "Auto query fields:",
        "autoColumns": "Auto columns:"
      },
      "form_publish": {
        "label": "Form Publish",
        "desc": "Publish form to menu system",
        "menuName": "Menu name:",
        "notSet": "Not set",
        "menuIcon": "Menu icon:"
      },
      "form_ui_design": {
        "label": "Form UI Design",
        "desc": "Generate form UI config from DB structure",
        "layoutMode": "Layout mode:",
        "auto": "Auto",
        "singleCol": "Single column",
        "doubleCol": "Double column",
        "tripleCol": "Triple column",
        "formName": "Form name:",
        "enableGrouping": "Enable grouping:",
        "hideSystemFields": "Hide system fields:"
      },
      "dashboard_basic_info": {
        "label": "Dashboard Basic Info",
        "desc": "Configure dashboard basic info",
        "name": "Name:",
        "code": "Code:",
        "category": "Category:"
      },
      "dashboard_create": {
        "label": "Dashboard Create",
        "desc": "Save dashboard config to database",
        "basicInfo": "Basic info:",
        "pageConfig": "Page config:",
        "updateIfExists": "Update if exists:"
      },
      "dashboard_design": {
        "label": "Dashboard Design",
        "desc": "Design dashboard layout and components",
        "title": "Title:",
        "needConfirm": "Confirm:",
        "need": "Required",
        "notNeed": "Not required"
      },
      "dashboard_publish": {
        "label": "Dashboard Publish",
        "desc": "Publish dashboard to menu system",
        "dashboard": "Dashboard:",
        "menuName": "Menu name:",
        "icon": "Icon:"
      },
      "knowledge_retrieval_node": {
        "label": "Knowledge Retrieval",
        "desc": "Retrieve relevant documents from knowledge base",
        "kbCount": "{count} knowledge base(s)",
        "topKThreshold": "Top {topK} · Threshold {threshold}",
        "vector": "Vector search",
        "fulltext": "Full-text search",
        "hybrid": "Hybrid search"
      },
      "system_summary": {
        "label": "System Summary",
        "desc": "Collect and display AI-created system info",
        "title": "Title:",
        "showStatistics": "Show statistics:",
        "appInfo": "App info:",
        "formResult": "Form result:",
        "dashboard": "Dashboard:"
      },
      "snowflake_cortex_llm": {
        "label": "Snowflake Cortex LLM",
        "desc": "Snowflake Cortex AI functions",
        "function": "Function:",
        "complete": "LLM Complete",
        "summarize": "Summarize",
        "translate": "Translate",
        "sentiment": "Sentiment",
        "extractAnswer": "Extract Answer",
        "selectFunction": "Select",
        "model": "Model:",
        "prompt": "Prompt:",
        "translateLabel": "Translate:",
        "inputText": "Input text:"
      },
      "snowflake_cortex_analyst": {
        "label": "Snowflake Cortex Analyst",
        "desc": "Natural language data query",
        "nlQuery": "Natural language query",
        "questionLabel": "Question:",
        "semanticModel": "Semantic model:"
      },
      "text_to_sql": {
        "label": "Text to SQL",
        "desc": "Natural language to SQL query",
        "notConfigured": "Query not configured",
        "chartRecommend": "Chart recommendation"
      }
    },
    "editor": {
      "categories": {
        "basic": "Basic Nodes",
        "formDesign": "Form Design",
        "formData": "Form Data",
        "dialog": "Dialog Interaction",
        "database": "Database",
        "flowControl": "Flow Control",
        "appManage": "App Management",
        "dashboard": "Dashboard",
        "knowledge": "Knowledge Base"
      },
      "nodeLabels": {
        "start": "Start",
        "end": "End",
        "llm": "LLM Model",
        "http": "HTTP Request",
        "code": "Code Execution",
        "condition": "Condition Branch",
        "template": "Template Render",
        "parallel": "Parallel Branch",
        "merge": "Merge",
        "loop": "Loop",
        "intent": "Intent Recognition",
        "subflow": "Subflow",
        "db_insert": "DB Insert",
        "db_update": "DB Update",
        "db_query": "DB Query",
        "db_delete": "DB Delete",
        "db_sql": "SQL Execute",
        "text_to_sql": "Text-to-SQL",
        "message": "Send Message",
        "question": "Question Input",
        "choice": "Choice Select",
        "confirm": "Confirm Action",
        "form_basic_info": "Form Basic Info",
        "form_database_design": "Table Structure Design",
        "form_database_create": "Database Table Create",
        "form_ui_design": "Form UI Design",
        "form_list_design": "List UI Design",
        "form_create": "Form Create",
        "form_publish": "Form Publish",
        "form_data_create": "Create Data",
        "form_data_read": "Read Data",
        "form_data_update": "Update Data",
        "form_data_delete": "Delete Data",
        "form_data_list": "Query List",
        "form_schema_to_llm": "Form to LLM Schema",
        "app_create": "Create App",
        "app_design": "App Design",
        "app_settings": "App Settings",
        "app_update": "App Update",
        "dashboard_basic_info": "Dashboard Basic Info",
        "dashboard_design": "Dashboard Design",
        "dashboard_create": "Dashboard Create",
        "dashboard_publish": "Dashboard Publish",
        "system_summary": "System Summary",
        "knowledge_retrieval": "Knowledge Retrieval",
        "snowflake_cortex_llm": "Cortex LLM",
        "snowflake_cortex_analyst": "Cortex Analyst"
      },
      "rename": "Rename",
      "renamePrompt": "Please enter new node name",
      "confirmBtn": "OK",
      "cancelBtn": "Cancel",
      "addedToLoop": "Added to loop body",
      "autoInserted": "Node auto-inserted",
      "saveFailed": "Save failed",
      "publishFailed": "Publish failed",
      "publishPrompt": "Enter version description (optional)",
      "publishTitle": "Publish Workflow",
      "publishBtn": "Publish",
      "publishPlaceholder": "e.g.: Fixed XX issue, added XX feature",
      "publishVersionSuccess": "Published successfully! Version: v{version}",
      "workflowHasIssues": "Workflow has issues:",
      "workflowIncomplete": "Workflow configuration is incomplete, please fix issues first",
      "validation": {
        "missingStart": "Missing start node",
        "multipleStart": "Only one start node allowed",
        "missingEnd": "Missing end node",
        "startNoConnection": "Start node is not connected to other nodes",
        "endNoConnection": "End node is not connected",
        "llmNoModel": "LLM node has no model configured",
        "httpNoUrl": "HTTP node has no URL configured",
        "parallelMinBranches": "Parallel node requires at least 2 branches",
        "mergeMinInputs": "Merge node requires at least 2 inputs"
      },
      "toolbar": {
        "save": "Save",
        "publish": "Publish",
        "run": "Run",
        "chat": "Chat Test",
        "versions": "Version History",
        "back": "Back",
        "undo": "Undo",
        "redo": "Redo",
        "zoomIn": "Zoom In",
        "zoomOut": "Zoom Out",
        "fitView": "Fit View",
        "minimap": "Minimap",
        "addNode": "Add Node",
        "searchNode": "Search nodes...",
        "saved": "Saved",
        "saving": "Saving...",
        "unsaved": "Unsaved"
      },
      "contextMenu": {
        "rename": "Rename",
        "duplicate": "Duplicate",
        "delete": "Delete"
      },
      "panel": {
        "propertyConfig": "Properties",
        "noConfig": "No configuration available"
      },
      "dbConnection": {
        "connectionLabel": "Database Connection",
        "databaseHint": "Leave empty to use the connection default; variables like {'{{target_db}}'} are supported",
        "databaseInputPlaceholder": "Type manually or insert a variable",
        "databaseLabel": "Target Database",
        "databaseOracleHint": "For Oracle, the database/service is defined in the connection settings",
        "databaseOraclePlaceholder": "Usually leave empty",
        "databasePlaceholder": "Select target database (optional)",
        "defaultWriteWarning": "Write operation uses the platform default database. Please verify the environment."
      },
      "confirmMode": {
        "always": "Always Confirm",
        "never": "Never Confirm",
        "variable": "Variable Control",
        "placeholder": "Select or enter variable, e.g. {'{{need_confirm}}'}",
        "hint": "Confirm when value is true/1/yes, skip when false/0/no"
      },
      "smartInput": {
        "insertVariable": "Insert Variable"
      },
      "schemaConfigDialog": {
        "title": "Structured Output Config",
        "visual": "Visual",
        "addField": "Add Field",
        "emptyHint": "Click \"Add Field\" to define data structure, or switch to JSON mode to paste directly",
        "fieldName": "Field Name",
        "description": "Description",
        "required": "Required",
        "advancedConfig": "Advanced",
        "advancedConfigEnumDefault": "Advanced (enum, default)",
        "advancedConfigMinMaxDefault": "Advanced (min, max, default)",
        "enumValues": "Enum Values (enum)",
        "enumValuesShort": "Enum:",
        "addOption": "Add Option",
        "add": "Add",
        "enumHint": "Optional, restrict field to one of the specified values",
        "optionValue": "Option value",
        "defaultValue": "Default:",
        "defaultShort": "Default:",
        "optional": "Optional",
        "minValue": "Min:",
        "maxValue": "Max:",
        "minShort": "Min:",
        "maxShort": "Max:",
        "noLimit": "No limit",
        "childProperties": "Child Properties",
        "noChildProperties": "No child properties",
        "nestedProperties": "Nested Properties",
        "arrayItemType": "Array Item Type:",
        "objectPropertyDef": "Object Property Definition",
        "addProperty": "Add Property",
        "jsonPreview": "JSON Schema Preview",
        "cancel": "Cancel",
        "confirm": "OK",
        "jsonFormatError": "Invalid JSON format, must contain properties field",
        "jsonParseError": "JSON parse error: {message}",
        "typeString": "String (string)",
        "typeNumber": "Number (number)",
        "typeInteger": "Integer (integer)",
        "typeBoolean": "Boolean (boolean)",
        "typeArray": "Array (array)",
        "typeObject": "Object (object)"
      },
      "tableSelectModal": {
        "title": "Table Selection",
        "step1": "Select Tables",
        "step2": "Design Relations",
        "prevStep": "Previous",
        "nextStep": "Next",
        "confirmSelect": "Confirm Selection",
        "close": "Close",
        "database": "Database",
        "refresh": "Refresh",
        "refreshSuccess": "Refreshed successfully",
        "loading": "Loading...",
        "fieldOf": "{table} Fields",
        "fieldPreview": "Field Preview",
        "clickToPreview": "Click a table to preview fields",
        "noFields": "No field information",
        "selectedTables": "Selected Tables",
        "clearAll": "Clear All",
        "clickCheckboxHint": "Click the checkbox on the left to add tables",
        "fieldsCount": "{count} fields",
        "sameDbWarning": "Can only select tables from the same database/schema",
        "selectAtLeastTwo": "Please select at least two tables to add a relation",
        "selectAtLeastOne": "Please select at least one table",
        "completeRelations": "Please complete all relation configurations",
        "tableRelations": "Table Relations",
        "addRelation": "Add Relation",
        "selectTwoTablesFirst": "Please select at least two tables first",
        "noRelations": "No table relations",
        "addRelationHint": "Click \"Add Relation\" to create associations between tables",
        "relationIndex": "Relation {index}",
        "delete": "Delete",
        "sourceTable": "Source Table",
        "selectTable": "Select Table",
        "selectField": "Select Field",
        "relationType": "Relation Type",
        "oneToOne": "One-to-One (1:1)",
        "oneToMany": "One-to-Many (1:N)",
        "manyToOne": "Many-to-One (N:1)",
        "manyToMany": "Many-to-Many (M:N)",
        "targetTable": "Target Table",
        "hint": "Tip: Table relations help AI understand associations between tables for more accurate JOIN queries"
      },
      "tableSelectDialog": {
        "title": "Select Table",
        "loadConfigFailed": "Failed to load database config",
        "selectTableFirst": "Please select a table first",
        "refreshSuccess": "Refreshed successfully",
        "database": "Database",
        "refresh": "Refresh",
        "loading": "Loading...",
        "current": "Current",
        "fieldList": "{table} Field List",
        "fieldPreview": "Field Preview",
        "clickToPreview": "Click a table to preview fields, double-click to select",
        "noFields": "No field information",
        "cancel": "Cancel",
        "confirmSelect": "Confirm Selection"
      },
      "runPanel": {
        "runPreview": "Run Preview",
        "inputVariables": "Input Variables",
        "noVariablesHint": "No input variables, please configure in the \"Start\" node",
        "inputPlaceholder": "Please enter {type}",
        "startRun": "Start Run",
        "stopRun": "Stop Run",
        "clearStatus": "Clear Status",
        "execStatus": "Execution Status",
        "running": "Running",
        "nodes": "Nodes",
        "llmOutput": "LLM Output",
        "parallelBranches": "Parallel Branches ({count})",
        "branchResults": "Branch Results:",
        "parallelExec": "Parallel Execution",
        "input": "Input",
        "output": "Output",
        "runResult": "Run Result",
        "success": "Success",
        "failed": "Failed",
        "execFailed": "Execution failed",
        "workflowExecFailed": "Workflow execution failed",
        "userStopped": "User stopped"
      },
      "chatPanel": {
        "runPreview": "Run Preview",
        "configVariables": "Configure Input Variables",
        "assistantName": "Workflow",
        "placeholder": "Enter message to run workflow...",
        "emptyText": "Enter a message to start running workflow",
        "execFailed": "Execution failed",
        "workflowExecFailed": "Workflow execution failed",
        "workflowComplete": "Workflow execution completed",
        "resumeFailed": "Resume failed",
        "resumeWorkflowFailed": "Resume workflow execution failed",
        "waitingInput": "Waiting for input...",
        "pleaseSelect": "Please select:",
        "confirm": "Confirm",
        "pleaseConfirm": "Please confirm to continue?",
        "pleaseInput": "Please input:",
        "cancel": "Cancel",
        "userStopped": "User stopped",
        "confirmDesign": "Confirm Design",
        "confirmAppDesign": "Confirm App Design",
        "confirmAppSettings": "Confirm App Settings",
        "confirmDashboardBasicInfo": "Confirm Dashboard Basic Info",
        "confirmDashboardDesign": "Confirm Dashboard Design",
        "publishToMenu": "Publish to menu: {name}",
        "complete": "Complete",
        "startRun": "Start Run",
        "inputVariable": "Please enter {variable}",
        "appDesignTitle": "App Design Plan",
        "appSettingsTitle": "App Settings",
        "dashboardBasicInfoTitle": "Dashboard Basic Info",
        "dashboardDesignTitle": "Dashboard Design",
        "dashboardPublishTitle": "Dashboard Publish Confirmation",
        "systemSummaryTitle": "System Creation Complete",
        "designPreviewTitle": "Design Preview",
        "designPreviewHint": "Please confirm or edit the design in the right panel"
      },
      "nodeResultCard": {
        "failed": "Failed",
        "pending": "Pending",
        "running": "Running",
        "success": "Completed",
        "unknown": "Unknown",
        "noOutput": "(No output)",
        "execFailed": "Execution failed",
        "elapsed": "Elapsed:",
        "iteration": "Iteration:",
        "fullscreen": "Fullscreen",
        "input": "Input",
        "output": "Output",
        "errorInfo": "Error Info"
      },
      "variableSelector": {
        "searchPlaceholder": "Search variables...",
        "noVariables": "No available variables",
        "system": "System",
        "field": "Field",
        "structured": "Structured",
        "userChoice": "User Choice",
        "choiceText": "Choice Text",
        "execResult": "Execution Result (result)",
        "confirmed": "Confirmed (true/false)",
        "deleteResult": "Delete Result",
        "affectedRows": "Affected Rows",
        "insertResult": "Insert Result",
        "insertId": "Insert ID",
        "queryResult": "Query Result",
        "resultCount": "Result Count",
        "sqlResult": "SQL Result",
        "updateResult": "Update Result",
        "responseBody": "Response Body",
        "statusCode": "Status Code",
        "jsonString": "JSON String",
        "structuredData": "Structured Data Object",
        "tokenUsage": "Token Usage",
        "llmResponse": "LLM Response Text",
        "currentLoopItem": "Current Loop Item",
        "currentIndex": "Current Index",
        "loopResults": "Loop Results Array",
        "mergeResult": "Merge Result",
        "branchCount": "Branch Count",
        "userAnswer": "User Answer",
        "isValid": "Is Valid",
        "queryResultData": "Query Result Data",
        "generatedSql": "Generated SQL",
        "rawResponse": "Raw Response",
        "cortexLlmResponse": "Cortex LLM Response",
        "userInput": "User Input",
        "appId": "Sub-App ID",
        "appCode": "Sub-App Code",
        "formCode": "Form Code",
        "renderResult": "Render Result",
        "generatedSqlStatement": "Generated SQL Statement",
        "sqlThought": "SQL Generation Thought",
        "formBasicInfoObj": "Form Basic Info Object",
        "formName": "Form Name",
        "formType": "Form Type",
        "formDescription": "Form Description",
        "formSort": "Sort Value",
        "dbDesignObj": "Database Design Object",
        "tableName": "Table Name",
        "fieldCount": "Field Count",
        "creationResult": "Creation Result Object",
        "allTablesReady": "All Tables Ready",
        "createdCount": "Created Table Count",
        "errorCount": "Error Count",
        "schemaName": "Schema Name",
        "formUiDesign": "Form UI Design Config",
        "groupCount": "Group Count",
        "listConfig": "List Config",
        "queryFieldCount": "Query Field Count",
        "columnCount": "Column Count",
        "formId": "Form ID",
        "formMeta": "Form Metadata",
        "menuId": "Menu ID",
        "routePath": "Route Path",
        "publishResult": "Publish Result",
        "appName": "App Name",
        "createSuccess": "Created Successfully",
        "designContent": "Design Content",
        "designTitle": "Design Title",
        "isConfirmed": "Is Confirmed",
        "appSettings": "App Settings Config",
        "updateSuccess": "Update Successful",
        "configId": "Config Record ID",
        "updateMessage": "Update Result Message",
        "dashboardBasicInfo": "Dashboard Basic Info",
        "dashboardName": "Dashboard Name",
        "dashboardCode": "Dashboard Code",
        "pageConfig": "Page Design Config",
        "dashboardId": "Dashboard ID",
        "pageMeta": "Page Metadata",
        "summaryData": "Summary Data",
        "totalForms": "Total Forms",
        "hasApp": "Has App",
        "hasDashboard": "Has Dashboard",
        "subflowFullResult": "Subflow Full Result",
        "execSuccess": "Execution Successful",
        "subflowOutputVars": "Subflow Output Variables",
        "allSubflowVars": "(All Subflow Output Variables)",
        "fromSubflow": "From Subflow",
        "output": "Output",
        "knowledgeResults": "Retrieval Results Array",
        "knowledgeContext": "Concatenated Context Text",
        "knowledgeResultsTotal": "Total Results Count"
      },
      "versionHistory": {
        "title": "Version History",
        "loadFailed": "Failed to load version history",
        "rollbackConfirm": "Are you sure to rollback to v{version}? The current draft will be overwritten.",
        "rollbackTitle": "Rollback Confirmation",
        "rollbackBtn": "Confirm Rollback",
        "rollbackSuccess": "Rolled back to v{version}",
        "rollbackFailed": "Rollback failed",
        "rollback": "Rollback",
        "noDescription": "No description",
        "runCount": "Runs: {count}",
        "successCount": "Success: {count}",
        "empty": "No version history"
      }
    },
    "panels": {
      "common": {
        "nodeName": "Node Name",
        "add": "Add",
        "delete": "Delete",
        "noInputVars": "No input variables",
        "noOutputVarsClickAdd": "No output variables, click above to add",
        "noVars": "No variables",
        "noCustomVarsClickAdd": "No custom variables, click above to add",
        "inputVars": "Input Variables",
        "outputVars": "Output Variables",
        "outputVarName": "Output Variable Name",
        "variableName": "Variable name",
        "defaultValue": "Default value",
        "customVars": "Custom Variables",
        "sysVar": "System variable (cannot delete)",
        "configured": "Configured",
        "notConfigured": "Not configured",
        "yes": "Yes",
        "no": "No",
        "output": "Output",
        "selectModel": "Select model",
        "model": "Model",
        "usage": "Usage",
        "usageTips": "Usage Tips",
        "confirmMode": "Confirm Mode",
        "varRef": "Supports variable reference, e.g.: ",
        "selectTable": "Select Table",
        "targetTable": "Target Table",
        "tablePlaceholder": "Click the button on the right to select a table",
        "tableFields": "Table Fields",
        "availableFields": "Available Fields",
        "fieldMapping": "Field Mapping",
        "addField": "Add Field",
        "addCondition": "Add Condition",
        "queryConditions": "Query Conditions",
        "field": "Field",
        "value": "Value",
        "variable": "Variable",
        "noConditionQueryAll": "No conditions will query all data",
        "noCondition": "No conditions",
        "returnFields": "Return Fields",
        "returnFieldsHint": "* for all fields, separate multiple fields with commas",
        "orderBy": "Order By",
        "limitRows": "Limit Rows",
        "resultSavedTo": "Query results (array) will be saved to this variable",
        "insertResultSavedTo": "Insert result will be saved to this variable",
        "updateResultSavedTo": "Update result will be saved to this variable",
        "deleteResultSavedTo": "Delete result will be saved to this variable",
        "sqlResultSavedTo": "SQL execution result will be saved to this variable",
        "clickFieldToAdd": "Click field to quickly add to mapping",
        "clickAddField": "Click \"Add Field\" or click table fields above to add",
        "selectField": "Select field",
        "dbField": "Database field",
        "varValue": "Variable value",
        "upsert": "Update if exists (UPSERT)",
        "upsertHint": "If checked, update existing records, otherwise insert",
        "judgeCondition": "Match Condition",
        "addJudgeConditionHint": "Please add conditions to check if record exists",
        "outputVarTitle": "Output Variables",
        "advancedSettings": "Advanced Settings",
        "tableFieldsRef": "Table Fields Reference"
      },
      "template": {
        "label": "Template",
        "placeholder": "Template",
        "templateContent": "Template Content"
      },
      "end": {
        "outputContent": "Output Content",
        "outputPlaceholder": "Enter content to return to user, use {'{{variable}}'} to reference context variables",
        "outputHint": "This content will be displayed in the chat, click / to select variables",
        "noOutputVars": "No output variables, click above to add",
        "type": "Type"
      },
      "message": {
        "label": "Message Node",
        "placeholder": "Message Node",
        "content": "Message Content",
        "contentPlaceholder": "Enter message content to send to user, supports variables like {'{{variable}}'}",
        "contentHint": "This message will be sent to the user, workflow will not pause",
        "messageType": "Message Type",
        "plainText": "Plain Text"
      },
      "confirm": {
        "label": "Confirm Node",
        "placeholder": "Confirm Node",
        "dialogTitle": "Dialog Title",
        "titlePlaceholder": "Confirm",
        "content": "Confirm Content",
        "contentPlaceholder": "Enter content for user confirmation, supports variables like {'{{variable}}'}",
        "contentHint": "Workflow will pause, waiting for user to click confirm or cancel",
        "confirmBtnText": "Confirm Button Text",
        "cancelBtnText": "Cancel Button Text",
        "confirmPlaceholder": "Confirm",
        "cancelPlaceholder": "Cancel",
        "outputHint": "User confirm returns true, cancel returns false",
        "smartIntent": "Smart Intent Recognition",
        "smartIntentHint": "When user inputs text (instead of clicking buttons), use LLM to determine user intent.\nBy default, keyword matching is used (e.g. \"ok\", \"yes\" for confirm, \"no\", \"cancel\" for cancel).",
        "intentModel": "Intent Recognition Model",
        "intentModelHint": "When keyword matching fails, use this model for intent recognition"
      },
      "merge": {
        "label": "Merge",
        "placeholder": "Merge",
        "mergeMode": "Merge Mode",
        "objectMode": "Object (by branch ID)",
        "arrayMode": "Array",
        "firstMode": "First Only",
        "concatMode": "String Concat",
        "objectDesc": "Merge branch results into object, keyed by branch ID",
        "arrayDesc": "Merge branch results into array",
        "firstDesc": "Take only the first completed branch result",
        "concatDesc": "Concatenate branch results into string",
        "separator": "Separator",
        "usageTip1": "Merge node waits for all parallel branches to complete",
        "usageTip2": "Merged results are stored in the output variable",
        "usageTip3": "Reference merged results via {template}"
      },
      "parallel": {
        "label": "Parallel Branch",
        "placeholder": "Parallel Branch",
        "title": "Parallel Branches",
        "addBranch": "Add Branch",
        "branchHint": "All branches execute simultaneously, converging at the merge node",
        "branchName": "Branch name",
        "branch": "Branch {index}",
        "usageTip1": "Connect each branch output to different nodes",
        "usageTip2": "All branches must connect to the same merge node",
        "usageTip3": "Nodes within branches execute in parallel"
      },
      "start": {
        "userInputDesc": "User input from the chat box, automatically passed to this variable",
        "appIdDesc": "Auto-injected actual ID in sub-app, 'main' in main app mode",
        "appCodeDesc": "Auto-injected app code in sub-app, empty in main app mode",
        "formCodeDesc": "Auto-injected form code when called from form list, empty otherwise"
      },
      "choice": {
        "label": "Choice Node",
        "placeholder": "Choice Node",
        "questionContent": "Question Content",
        "questionPlaceholder": "Enter question or prompt text",
        "outputHint": "User's selection will be saved to this variable",
        "optionList": "Option List",
        "addOption": "Add Option",
        "optionValue": "Option value",
        "displayText": "Display text",
        "optionDesc": "Option description (optional)",
        "option": "Option {index}",
        "allowMultiple": "Allow Multiple",
        "minSelect": "Min Select",
        "maxSelect": "Max Select"
      },
      "question": {
        "label": "Question Node",
        "placeholder": "Question Node",
        "questionContent": "Question Content",
        "questionPlaceholder": "Enter question to ask user, supports variables like {'{{variable}}'}",
        "outputHint": "User's answer will be saved to this variable",
        "renderInput": "Render Input Box",
        "renderInputHint": "When off, user types in chat box; when on, shows dedicated input",
        "inputType": "Input Type",
        "text": "Text",
        "number": "Number",
        "email": "Email",
        "phone": "Phone",
        "date": "Date",
        "placeholderText": "Placeholder Text",
        "placeholderHint": "Input placeholder text",
        "defaultValueLabel": "Default Value",
        "defaultValueHint": "Optional default value",
        "required": "Required",
        "validationRegex": "Validation Regex",
        "validationRegexHint": "Regular expression for validating user input format",
        "validationMessage": "Validation Error Message",
        "validationDefault": "Invalid input format"
      },
      "http": {
        "label": "HTTP Request",
        "placeholder": "HTTP Request",
        "addParam": "Add Param",
        "addHeader": "Add Header",
        "bodyHint": "JSON format only, supports variable references like {'{{ variable }}'}",
        "settings": "Settings",
        "timeout": "Timeout (seconds)"
      },
      "code": {
        "label": "Code Execution",
        "placeholder": "Code Execution",
        "timeout": "Timeout (seconds)",
        "noInputVars": "No input variables",
        "noOutputVars": "No output variables, code return fields will be used as output",
        "codePython": "Code (Python)",
        "codePlaceholder": "Write code here...",
        "expandEditor": "Expand editor"
      },
      "llm": {
        "label": "LLM",
        "placeholder": "LLM",
        "systemPrompt": "System Prompt",
        "optional": "(optional)",
        "systemPromptPlaceholder": "Define AI role and behavior rules, e.g.: You are a professional translator...",
        "systemPromptHint": "Set AI role, behavior rules and constraints",
        "userPrompt": "User Prompt",
        "userPromptPlaceholder": "Enter user question or instruction, supports variables like {'{{variable}}'}...",
        "userPromptHint": "User's actual question or instruction, can reference upstream node outputs",
        "ragTip": "RAG Tip: Use with Knowledge Retrieval node, reference retrieval results with {knowledgeContext} in prompt",
        "outputVarHint": "LLM response will be saved to this variable for downstream nodes",
        "outputMode": "Output Mode",
        "textOutput": "Text Output",
        "structuredOutput": "Structured Output",
        "structuredDesc": "Use Function Calling to extract structured JSON data",
        "textDesc": "Plain text response",
        "schemaSource": "Schema Source",
        "staticConfig": "Static Config",
        "fromVariable": "From Variable",
        "fromVariableDesc": "Get schema config from upstream node (e.g. Form-to-LLM-Schema node)",
        "staticConfigDesc": "Manually configure output schema",
        "schemaVariable": "Schema Variable",
        "schemaVarPlaceholder": "Enter variable name, e.g. {'{{llm_output_schema}}'}",
        "schemaVarHint": "Variable value should be a structured output config array, can be generated by Form-to-LLM-Schema node",
        "configSchema": "Configure Schema",
        "configSchemaHint": "Click Configure Schema to define data structure (supports nested)",
        "schemaPreviewHint": "Click JSON above to reconfigure, extracted data will be saved as",
        "streaming": "Streaming Output",
        "streamingHint": "Enable real-time LLM response output",
        "conversationHistory": "Use Conversation History",
        "conversationHistoryHint": "Include conversation history as context (requires Agent memory enabled)",
        "configStructure": "Config Structure"
      },
      "condition": {
        "label": "Condition Branch",
        "placeholder": "Condition Branch",
        "booleanHint": "Boolean check",
        "emptyStringHint": "Empty string",
        "mainAppHint": "Main app check",
        "numberCompareHint": "Number comparison",
        "branchList": "Branch List",
        "addBranch": "Add Branch",
        "branch": "Branch {index}",
        "conditions": "Conditions",
        "elseBranch": "ELSE (default branch)",
        "equals": "Equals",
        "notEquals": "Not equals",
        "gt": "Greater than",
        "gte": "Greater or equal",
        "lt": "Less than",
        "lte": "Less or equal",
        "contains": "Contains",
        "notContains": "Not contains",
        "startsWith": "Starts with",
        "endsWith": "Ends with",
        "isEmpty": "Is empty",
        "isNotEmpty": "Is not empty",
        "numberCompare": "Supports greater than, less than operators",
        "noCondition": "No Condition"
      },
      "intent": {
        "label": "Intent Recognition",
        "placeholder": "Intent Recognition",
        "selectModelHint": "Select model for intent recognition",
        "modelHint": "Select LLM model for analyzing user intent",
        "inputVariable": "Input Variable",
        "inputVarHint": "Variable containing user input, supports variable reference like {'{{ variable }}'}",
        "intentList": "Intent List",
        "addIntent": "Add Intent",
        "intentIndex": "Intent {index}",
        "intentNamePlaceholder": "Intent name (e.g.: consult)",
        "name": "Name",
        "intentDescPlaceholder": "Intent description (e.g.: User wants to consult product info)",
        "description": "Description",
        "branchIdPlaceholder": "Branch ID (defaults to name)",
        "branchLabel": "Branch",
        "exampleSentences": "Example sentences (helps AI recognize more accurately)",
        "examplePlaceholder": "Enter example sentence",
        "otherBranch": "OTHER (when no intent matches)",
        "outputHint": "Recognition result will be saved to this variable, containing intent and confidence",
        "confidenceThreshold": "Confidence Threshold",
        "confidenceHint": "Below this threshold will go to OTHER branch",
        "intentLabel": "Intent"
      },
      "loop": {
        "label": "Loop",
        "placeholder": "Loop",
        "loopMode": "Loop Mode",
        "forEach": "For Each (Array)",
        "whileLoop": "While (Condition)",
        "arrayVariable": "Array Variable",
        "arrayVarHint": "Array variable to iterate, supports {'{{NodeID.key}}'} format or direct JSON array",
        "itemVarName": "Item Variable Name",
        "indexVarName": "Index Variable Name",
        "loopCondition": "Loop Condition",
        "conditionLogic": "Condition Logic",
        "allMatch": "All match (AND)",
        "anyMatch": "Any match (OR)",
        "conditionIndex": "Condition {index}",
        "varPlaceholder": "Variable, e.g.: {'{{counter}}'}",
        "compareValue": "Compare value",
        "addConditionHint": "Click \"Add Condition\" to set loop continuation conditions",
        "maxIterations": "Max Iterations",
        "maxIterationsHint": "Prevent infinite loops, force stop after this count",
        "outputVarHint": "Array variable name storing all loop results",
        "usageTip1": "Drag nodes into the loop container as loop body",
        "usageTip2": "Nodes in loop body will be executed repeatedly",
        "usageTip3ForEach": "Use {item} and {index} inside loop body",
        "usageTip3While": "Conditions are re-evaluated after each iteration",
        "usageTip4": "After loop completes, results stored in {output}",
        "eq": "Equals",
        "ne": "Not equals",
        "gt": "Greater than",
        "gte": "Greater or equal",
        "lt": "Less than",
        "lte": "Less or equal",
        "is_empty": "Is empty",
        "is_not_empty": "Is not empty",
        "is_true": "Is true",
        "is_false": "Is false",
        "loopBodyHint1": "In loop body you can use",
        "loopBodyHint2": "and"
      },
      "subflow": {
        "label": "Subflow",
        "placeholder": "Subflow",
        "selectSubflow": "Select Subflow",
        "selectSubflowPlaceholder": "Select subflow to call",
        "openInNewTab": "Open in new tab",
        "publishedOnly": "Only published workflows shown",
        "varPass": "Variable Passing",
        "passMode": "Pass Mode",
        "passAll": "Pass all variables",
        "passSelected": "Select variables",
        "passNone": "None",
        "varMapping": "Variable Mapping",
        "addVarMappingHint": "Click \"Add\" to configure variable passing",
        "varIndex": "Variable {index}",
        "subflowVarName": "Subflow variable name",
        "mainflowVarValue": "Main flow variable value",
        "selectVarPlaceholder": "Click variable button to select",
        "varMappingHint1": "Subflow variable name: variable name used in subflow",
        "varMappingHint2": "Main flow variable value: value passed from main flow (select variable)",
        "resultHandling": "Result Handling",
        "resultPassMode": "Result Pass Mode",
        "resultPassAll": "Pass all results",
        "resultPassSelected": "Select results",
        "resultPassNone": "None",
        "selectResultVars": "Select Result Variables",
        "resultVarPlaceholder": "Enter subflow variable name",
        "resultVarHint": "Enter variable names to pass back from subflow (variables produced inside subflow)",
        "resultVarName": "Result Variable Name",
        "resultVarSavedHint": "Complete subflow result stored in this variable, access via {template}",
        "maxNestDepth": "Max Nesting Depth",
        "maxNestDepthHint": "Prevent infinite recursion, max 5 levels by default",
        "showSubflowMessages": "Show Subflow Messages",
        "showSubflowMessagesHint": "When enabled, message nodes in subflow will display in main flow chat",
        "forwardInteractive": "Forward Interactive Nodes",
        "forwardInteractiveHint": "When enabled, Q&A, choice, confirm nodes in subflow will display in main flow",
        "usageTip1": "Subflow must be a published workflow",
        "usageTip2": "Subflow inherits main flow user context",
        "usageTip3": "Pass data between main flow and subflow via variable passing",
        "usageTip4": "After subflow completes, results stored in specified variable",
        "usageTip5": "Supports nested subflow calls, but avoid circular dependencies"
      },
      "appCreate": {
        "label": "Create App",
        "placeholder": "Create App",
        "appName": "App Name",
        "appNamePlaceholder": "Enter app name or use variable",
        "appNameHint": "Supports variable reference, e.g.: ",
        "appCode": "App Code",
        "appCodePlaceholder": "Enter app code or use variable",
        "appCodeHint": "Unique identifier for URL routing. Only letters, numbers, underscores and hyphens, must start with letter",
        "appDesc": "App Description",
        "appDescPlaceholder": "Enter app description",
        "appIcon": "App Icon",
        "appIconPlaceholder": "Enter icon name, e.g. app-window",
        "appType": "App Type",
        "appTypePlaceholder": "Select app type",
        "mixedApp": "Mixed App",
        "formApp": "Form App",
        "workflowApp": "Workflow App",
        "dashboardApp": "Dashboard App",
        "screenApp": "Screen App",
        "updateIfExists": "Update if exists",
        "updateIfExistsHint": "When enabled, update existing app instead of error if code exists",
        "createdAppId": "Created app ID",
        "appCodeOutput": "App code",
        "appNameOutput": "App name",
        "successOutput": "Whether created successfully (false if exists)"
      },
      "appDesign": {
        "label": "App Design",
        "placeholder": "App Design",
        "designContent": "Design Content",
        "designContentPlaceholder": "Enter design content or use variable to reference LLM output",
        "designContentHint": "Supports Markdown format, can use variable references, e.g.: ",
        "designTitle": "Design Title",
        "designTitlePlaceholder": "Enter title, defaults to 'App Design Plan'",
        "designContentOutput": "Confirmed design content",
        "designTitleOutput": "Design title",
        "confirmedOutput": "Whether confirmed"
      },
      "appSettings": {
        "label": "App Settings",
        "placeholder": "App Settings",
        "varRefHint": "Supports variable reference, e.g.: ",
        "homePath": "Home Path",
        "homePathHint": "App home path, supports variable reference",
        "logoHint": "Logo image URL or file ID, supports variable reference",
        "primaryColorHint": "Theme primary color, e.g. hsl(212 100% 45%)",
        "settingsOutput": "Complete app settings config",
        "confirmedOutput": "Whether confirmed"
      },
      "appUpdate": {
        "label": "App Update",
        "placeholder": "App Update",
        "appSettingsLabel": "App Settings",
        "appSettingsPlaceholder": "Use variable to reference app settings node output",
        "appSettingsHint": "Use variable to reference app settings node output, e.g.: ",
        "appId": "App ID",
        "appIdPlaceholder": "Leave empty to update main app config",
        "appIdHint": "Target app ID, leave empty to update main app config. Supports variable reference, e.g.: ",
        "updateSuccess": "Whether update succeeded",
        "configId": "Config record ID",
        "updateMessage": "Update result message"
      },
      "dbQuery": {
        "label": "DB Query",
        "placeholder": "DB Query",
        "eqOp": "Equals (=)",
        "neOp": "Not equals (!=)",
        "gtOp": "Greater than (>)",
        "gteOp": "Greater or equal (>=)",
        "ltOp": "Less than (<)",
        "lteOp": "Less or equal (<=)",
        "likeOp": "Like (LIKE)",
        "inOp": "In list (IN)",
        "isNullOp": "Is null (IS NULL)",
        "isNotNullOp": "Is not null (IS NOT NULL)"
      },
      "dbInsert": {
        "label": "DB Insert",
        "placeholder": "DB Insert"
      },
      "dbUpdate": {
        "label": "DB Update",
        "placeholder": "DB Update",
        "updateConditions": "Update Conditions",
        "addUpdateConditionHint": "Please add update conditions, otherwise all records will be updated",
        "mustAddCondition": "Must add conditions to prevent updating all rows",
        "updateFields": "Update Fields"
      },
      "dbDelete": {
        "label": "DB Delete",
        "placeholder": "DB Delete",
        "deleteConditions": "Delete Conditions",
        "addDeleteConditionHint": "Please add delete conditions, otherwise all records will be deleted",
        "dangerWarning": "Danger: No conditions will delete ALL data in the table!",
        "mustAddCondition": "Must add conditions to prevent deleting all rows"
      },
      "dbSql": {
        "label": "SQL Execute",
        "placeholder": "SQL Execute",
        "sqlStatement": "SQL Statement",
        "sqlPlaceholder": "SELECT * FROM users WHERE status = :status LIMIT :limit",
        "sqlHint": "Supports variable references. Ensure SQL safety, avoid SQL injection",
        "sqlParams": "SQL Parameters",
        "addParam": "Add Parameter",
        "paramName": "Param name",
        "paramType": "Type",
        "paramValue": "Param value",
        "noParams": "No parameters. Click \"Add Parameter\"",
        "paramsHint": "Param name maps to :param_name in SQL; use variable selector for values",
        "affectedRowsHint": "Affected rows count will be saved to this variable",
        "cautionWarning": "Use with caution, SQL will be executed directly",
        "examples": "Examples",
        "execType": "Execution Type",
        "executeType": "Execute (No Result)",
        "insertExample": "Insert Example",
        "paramList": "Parameter List",
        "paramOrderHint": "The :param_name placeholders in SQL are bound by parameter name",
        "paramValuePlaceholder": "Select or enter upstream variable",
        "queryExample": "Query Example",
        "queryResultHint": "Query results (array) will be saved to this variable",
        "queryType": "Query (Returns Result)",
        "sqlParamHint": "Use :param_name as named parameter placeholders; supports variable references",
        "statsExample": "Statistics Example",
        "updateExample": "Update Example"
      },
      "textToSql": {
        "desc": "Convert natural language to SQL query",
        "queryQuestion": "Query Question",
        "queryPlaceholder": "Enter natural language question, e.g.: Show sales comparison by department for last 7 days",
        "dataTable": "Data Tables",
        "modifySelection": "Modify Selection",
        "selectDataTable": "Select Data Tables",
        "selectedTables": "{count} tables selected",
        "clear": "Clear",
        "noTableHint": "When no tables selected, all tables will be analyzed (max 20)",
        "includeRelations": "Include Table Relations",
        "includeRelationsHint": "Auto-detect foreign key relations to improve multi-table JOIN accuracy",
        "llmModel": "LLM Model",
        "selectLlmModel": "Select LLM Model",
        "sqlSavedHint": "Generated SQL will be saved to this variable",
        "sqlOutput": "Generated SQL statement",
        "thoughtOutput": "SQL generation reasoning",
        "autoAnalyzeHint": "When no table selected, all tables will be auto-analyzed (max 20)",
        "dataTables": "Data Tables",
        "description": "Convert natural language to SQL query",
        "modelRecommendation": "Recommend using GPT-4 or equivalent model for better SQL generation quality",
        "outputVarHint": "Generated SQL will be saved to this variable",
        "reasoningOutput": "SQL Generation Reasoning",
        "selectTables": "Select Tables",
        "varRefHint": "Supports variable reference, e.g.:"
      },
      "systemSummary": {
        "label": "System Summary",
        "placeholder": "System Summary",
        "formResults": "Form Results List",
        "formResultsHint": "Result array from loop node or single form publish node output",
        "appName": "App Name",
        "appNameHint": "App name, can be variable reference or direct text",
        "dashboardName": "Dashboard Name",
        "dashboardNameHint": "Dashboard name, can be variable reference or direct text",
        "summaryTitle": "Summary Title",
        "summaryTitleDefault": "System Creation Complete",
        "showStatistics": "Show Statistics",
        "showStatisticsHint": "Whether to show module count statistics",
        "baseUrl": "Base URL",
        "baseUrlPlaceholder": "Leave empty for relative paths",
        "baseUrlHint": "Base URL for generating full links (optional)",
        "summaryOutput": "Complete summary data",
        "totalForms": "Total forms",
        "hasApp": "Has app",
        "hasDashboard": "Has dashboard",
        "useCase": "Use Cases",
        "fullAppCreate": "Full app creation: ",
        "subAppCreate": "Sub-app module creation: ",
        "singleFormCreate": "Single form creation: ",
        "formCountOutput": "Form Count",
        "formResultList": "Form Result List",
        "formResultListHint": "Result array from loop node or output from single form publish node",
        "hasAppOutput": "Has App",
        "hasDashboardOutput": "Has Dashboard",
        "summaryDataOutput": "Full Summary Data",
        "showStats": "Show Statistics",
        "showStatsHint": "Whether to show module count and other statistics",
        "usageScenarios": "Usage Scenarios"
      },
      "dashboardBasicInfo": {
        "label": "Dashboard Basic Info",
        "placeholder": "Dashboard Basic Info",
        "name": "Dashboard Name",
        "namePlaceholder": "Enter dashboard name or use variable",
        "code": "Dashboard Code",
        "codePlaceholder": "Enter code or use variable",
        "codeHint": "Unique identifier for internal reference",
        "category": "Category",
        "categoryPlaceholder": "e.g.: Operations Analysis, Sales Report",
        "catDashboard": "Dashboard",
        "catDataboard": "Data Board",
        "catOther": "Other",
        "catPortal": "Portal",
        "dashboardCode": "Dashboard Code",
        "dashboardCodePlaceholder": "Leave empty to auto-generate",
        "description": "Description",
        "descPlaceholder": "Enter description",
        "sort": "Sort",
        "dashboardName": "Dashboard Name",
        "dashboardNamePlaceholder": "Enter name or select variable"
      },
      "dashboardCreate": {
        "label": "Create Dashboard",
        "placeholder": "Create Dashboard",
        "basicInfo": "Basic Info",
        "basicInfoPlaceholder": "Use variable to reference basic info node output",
        "basicInfoHint": "From dashboard basic info node output",
        "pageConfig": "Page Config",
        "pageConfigPlaceholder": "Use variable to reference design node output",
        "pageConfigHint": "From dashboard design node output",
        "updateIfExists": "Update if exists",
        "updateIfExistsHint": "When enabled, update existing dashboard instead of error if code exists",
        "dashboardId": "Created dashboard ID",
        "dashboardCode": "Dashboard code",
        "appId": "App ID (Optional)",
        "appIdPlaceholder": "Leave empty to not associate with app",
        "dashboardCodeOutput": "Dashboard Code",
        "dashboardIdOutput": "Dashboard ID",
        "pageMetaOutput": "Full Page Metadata"
      },
      "dashboardDesign": {
        "label": "Dashboard Design",
        "placeholder": "Dashboard Design",
        "designContent": "Design Content",
        "designContentPlaceholder": "Enter design content or use variable to reference LLM output",
        "designContentHint": "Supports Markdown format, can use variable references",
        "designTitle": "Design Title",
        "designTitlePlaceholder": "Enter title",
        "pageConfigOutput": "Page config data",
        "dashboardCode": "Dashboard Code",
        "dashboardCodePlaceholder": "From basic info node",
        "designSuggestion": "Design Suggestion (Optional)",
        "designSuggestionPlaceholder": "LLM-generated design suggestion",
        "designTitleLabel": "Design Title",
        "usageTip1": "This node will open the dashboard designer",
        "usageTip2": "Users can drag and drop charts, cards and other components",
        "usageTip3": "Page config will be output after confirmation"
      },
      "dashboardPublish": {
        "label": "Publish Dashboard",
        "placeholder": "Publish Dashboard",
        "dashboardId": "Dashboard ID",
        "dashboardIdPlaceholder": "Use variable to reference create node output",
        "dashboardIdHint": "From dashboard create node output",
        "menuName": "Menu Name",
        "menuNamePlaceholder": "Enter menu name",
        "menuIcon": "Menu Icon",
        "menuIconPlaceholder": "e.g. LayoutDashboard",
        "menuIdOutput": "Menu ID",
        "routePathOutput": "Route path",
        "appId": "App ID (Optional)",
        "appIdPlaceholder": "Leave empty to use dashboard's app ID",
        "menuSort": "Menu Sort",
        "parentMenuId": "Parent Menu ID (Optional)",
        "parentMenuIdPlaceholder": "Leave empty for top-level menu",
        "publishResultOutput": "Publish Result"
      },
      "formBasicInfo": {
        "label": "Form Basic Info",
        "placeholder": "Form Basic Info",
        "formName": "Form Name",
        "formNamePlaceholder": "Enter form name or use variable",
        "formCode": "Form Code",
        "formCodePlaceholder": "Enter code or use variable",
        "formCodeHint": "Used to generate access route",
        "autoGenerate": "Auto generate",
        "autoGenCode": "Auto Generate Code",
        "autoGenCodeHint": "When enabled, code will be auto-generated from form name (pinyin conversion)",
        "formCodeOutput": "Form Code",
        "formDesc": "Form Description",
        "formDescOutput": "Form Description",
        "formDescPlaceholder": "Enter form description",
        "formNameHint": "Supports variable reference, e.g.:",
        "formNameOutput": "Form Name",
        "formTypeOutput": "Form Type",
        "formCategoryOutput": "Form Category",
        "fullConfigOutput": "Full Basic Info Object",
        "confirmedConfigOutput": "Confirmed Full Config",
        "normalForm": "Normal Form",
        "workflowForm": "Workflow Form",
        "sort": "Sort",
        "sortHint": "Smaller number comes first",
        "sortOutput": "Sort Value",
        "sortPlaceholder": "Enter sort value",
        "confirmedOutput": "Is Confirmed",
        "formType": "Form Type",
        "formTypePlaceholder": "Select form type"
      },
      "formCreate": {
        "label": "Create Form",
        "placeholder": "Create Form",
        "formConfig": "Form Config",
        "formConfigPlaceholder": "Use variable to reference form UI design node output",
        "formConfigHint": "From form UI design node output",
        "listConfig": "List Config",
        "listConfigPlaceholder": "Use variable to reference list design node output",
        "listConfigHint": "From list design node output",
        "formCodeLabel": "Form Code",
        "formCodeOptional": "(optional)",
        "formCodeHint": "Used to generate access route",
        "appId": "App ID",
        "appIdPlaceholder": "Leave empty for main app",
        "appIdHint": "Leave empty to not associate with app",
        "basicInfoHint": "Output from form basic info node",
        "dbCreate": "Database Create",
        "dbDesign": "Database Design",
        "dbDesignConfig": "Database Design Config",
        "dbDesignHint": "Output from database design node",
        "formBasicInfo": "Form Basic Info",
        "formCodeOutput": "Form Code",
        "formCreateStep": "Form Create",
        "formIdOutput": "Created Form ID",
        "formMetaOutput": "Full Form Metadata",
        "formPublish": "Form Publish",
        "fullWorkflow": "Full Workflow",
        "listDesign": "List UI Design",
        "listDesignConfig": "List Config",
        "listDesignHint": "Output from list UI design node",
        "uiDesign": "Form UI Design",
        "uiDesignConfig": "Form UI Design Config",
        "uiDesignHint": "Output from form UI design node",
        "updateIfExists": "Update If Exists",
        "updateIfExistsHint": "Whether to update existing form when code exists"
      },
      "formData": {
        "label": "Form Data",
        "placeholder": "Form Data",
        "createLabel": "Create Form Data",
        "data": "Data",
        "dataHint": "Supports single object or array (batch operation)",
        "dataPlaceholder": "Enter JSON data or variable, e.g.",
        "deleteLabel": "Delete Form Data",
        "filterConditions": "Filter Conditions",
        "formCode": "Form Code",
        "formCodeHint": "Published form code",
        "formCodeInputHint": "Supports direct input or variable reference",
        "formCodeInputPlaceholder": "Enter form code or use variable, e.g.",
        "formCodePlaceholder": "Enter form code or use variable",
        "generateArray": "Generate Array Type",
        "generateArrayHint": "When checked, generated structure will be wrapped as array for extracting multiple records",
        "hardDelete": "Hard Delete (Irreversible)",
        "hardDeleteHint": "Default is soft delete, check to permanently delete data",
        "listLabel": "Query Form Data",
        "operationType": "Operation Type",
        "create": "Create",
        "read": "Read",
        "update": "Update",
        "delete": "Delete",
        "list": "Query List",
        "readLabel": "Read Form Data",
        "recordId": "Record ID",
        "recordIdHint": "Record ID to read",
        "recordIdPlaceholder": "Enter record ID, supports variable e.g.",
        "schemaToLlmLabel": "Form to LLM Schema",
        "selectFormPlaceholder": "Select form from list",
        "selectedFormHint": "Select from published forms (code: {code})",
        "unknownOp": "Unknown Operation",
        "updateFieldData": "Update Field Data",
        "updateFieldDataHint": "Field data to update (JSON object)",
        "updateLabel": "Update Form Data",
        "updateRecordIdHint": "Record ID to update",
        "deleteRecordIdHint": "Record ID to delete",
        "fieldData": "Field Data",
        "createFieldDataHint": "Field data for creating record (JSON object)",
        "queryConditions": "Query Conditions",
        "queryConditionsHint": "Query filter conditions (JSON object)",
        "pageSize": "Page Size",
        "pageNum": "Page Number",
        "outputVarHint": "Operation result will be saved to this variable",
        "createdRecordId": "Created Record ID",
        "recordDetail": "Record Detail",
        "variableInput": "Variable Input",
        "selectFromList": "Select from List"
      },
      "formDatabaseCreate": {
        "label": "Form Database Create",
        "placeholder": "Form Database Create"
      },
      "formDatabaseDesign": {
        "label": "Form Database Design",
        "placeholder": "Form Database Design"
      },
      "formListDesign": {
        "label": "List Design",
        "placeholder": "List Design",
        "autoGenColumns": "Auto Generate Columns",
        "autoGenColumnsHint": "Auto generate list columns from form fields",
        "autoGenQuery": "Auto Generate Query Fields",
        "autoGenQueryHint": "Auto generate query conditions from form fields",
        "columnCountOutput": "Column Count",
        "containerType": "Container Type",
        "containerTypeHint": "Container type for form editing",
        "containerTypePlaceholder": "Select container type",
        "dbDesignConfig": "Database Design Config",
        "dbDesignConfigHint": "Output from database design node, for supplementing field type info",
        "dbDesignConfigPlaceholder": "Optional, for supplementing field type info",
        "dialog": "Dialog",
        "drawer": "Drawer",
        "enableExport": "Enable Export",
        "enableImport": "Enable Import",
        "fullConfigOutput": "Full List Config",
        "inferRules": "Smart Inference Rules",
        "inferRule1": "Query fields: name/status/type etc.",
        "inferRule2": "Query type: selector→in, option→eq, date→range, text→like",
        "inferRule3": "Column sort: backend sort by default, file/image not supported",
        "inferRule4": "Column align: number→right, date→center, other→left",
        "inferRule5": "Tag display: option fields auto use Tag",
        "page": "Page",
        "pageSize": "Page Size",
        "pageSizePlaceholder": "Select page size",
        "queryFieldCountOutput": "Query Field Count",
        "showIndex": "Show Index Column",
        "showSelection": "Show Selection Column",
        "uiDesignConfig": "Form UI Design Config",
        "uiDesignConfigHint": "Output config from form UI design node",
        "uiDesignConfigPlaceholder": "Use variable to reference form UI design node output",
        "perPage": "{count} per page"
      },
      "formPublish": {
        "label": "Form Publish",
        "placeholder": "Form Publish",
        "formCode": "Form Code",
        "formCodeHint": "Used to generate access route",
        "formId": "Form ID",
        "formIdHint": "Output from form create node",
        "menuIdOutput": "Created Menu ID",
        "publishResultOutput": "Publish Result Details",
        "routePathOutput": "Form Access Path",
        "usageTip1": "This node is used to publish created forms to the menu system.",
        "usageTip2": "During execution, a publish config editor will be shown in the right panel, where users can set menu name, icon, etc."
      },
      "formUIDesign": {
        "label": "Form UI Design",
        "placeholder": "Form UI Design",
        "dbDesignConfig": "Database Design Config",
        "dbDesignPlaceholder": "Use variable to reference database design node output {'{{form_database_design.database_design}}'}",
        "dbDesignHint": "From database design node output config",
        "formNameLabel": "Form Name",
        "formNamePlaceholder": "Leave empty to use table alias",
        "formNameHint": "Form display name, e.g.: Employee Info Form",
        "formCodeLabel": "Form Code",
        "formCodePlaceholder": "Leave empty to use table name",
        "formCodeHint": "Unique form code for system identification",
        "layoutMode": "Layout Mode",
        "layoutModePlaceholder": "Select layout mode",
        "autoLayout": "Auto (by field count)",
        "singleColumn": "Single Column",
        "doubleColumn": "Double Column",
        "tripleColumn": "Triple Column",
        "autoLayoutHint": "Auto mode: <=6 fields single, 7-12 double, >12 triple",
        "labelWidth": "Label Width",
        "labelWidthHint": "Form label width (px), default 120px",
        "enableGrouping": "Enable Grouping",
        "enableGroupingHint": "Auto-group by field type (basic info, contact, system info, etc.)",
        "hideSystemFields": "Hide System Fields",
        "hideSystemFieldsHint": "Hide system fields (id, sys_create_datetime, is_deleted, etc.)",
        "formDesignOutput": "Complete form UI design config",
        "formCodeOutput": "Form code",
        "fieldCountOutput": "Field count",
        "groupCountOutput": "Group count",
        "smartMapping": "Smart Mapping Rules",
        "dbDesignConfigHint": "Output config from database design node",
        "dbDesignConfigPlaceholder": "Use variable to reference database design node output",
        "formCode": "Form Code",
        "formName": "Form Name",
        "fullConfigOutput": "Full Form UI Design Config",
        "mappingRules": "Smart Mapping Rules",
        "mappingRule1": "varchar → Input / Textarea (length>200)",
        "mappingRule2": "int/decimal → Number Input / Currency Input",
        "mappingRule3": "datetime → DateTime Picker",
        "mappingRule4": "boolean → Switch",
        "mappingRule5": "*_id → Select / User/Dept Selector",
        "mappingRule6": "email/phone → Input with validation",
        "layoutAuto": "Auto (by field count)",
        "layoutAutoHint": "Auto mode: ≤6 fields single, 7-12 double, >12 triple column",
        "layoutDouble": "Double Column",
        "layoutSingle": "Single Column",
        "layoutTriple": "Triple Column"
      },
      "snowflakeAnalyst": {
        "label": "Snowflake Cortex Analyst",
        "placeholder": "Snowflake Cortex Analyst",
        "authPassword": "Username/Password",
        "authKeyPair": "Key Pair",
        "authSSO": "External Browser SSO",
        "fillRequired": "Please fill in required connection info first",
        "fillPassword": "Please fill in password",
        "fillPrivateKey": "Please fill in private key content or private key file path",
        "connectionFailed": "Connection test failed",
        "snowflakeConnection": "Snowflake Connection",
        "authMethod": "Auth Method",
        "authMethodPlaceholder": "Select auth method",
        "username": "Username",
        "password": "Password, supports variables",
        "privateKeyContent": "Private Key Content",
        "privateKeyPlaceholder": "RSA private key content (PEM format), or use file path below",
        "privateKeyPath": "Or Private Key File Path",
        "privateKeyPassword": "Private Key Password",
        "privateKeyPasswordHint": "Fill in if private key is password protected",
        "ssoHint": "External browser SSO authentication will open browser for identity verification at execution.",
        "database": "Database name",
        "schemaOptional": "Optional",
        "testing": "Testing...",
        "testConnection": "Test Connection",
        "snowflakeVersion": "Snowflake version",
        "queryConfig": "Query Config",
        "semanticModel": "Semantic Model",
        "semanticModelHint1": "Two formats supported:",
        "semanticModelHint2": "Stage file",
        "queryQuestion": "Query Question",
        "queryPlaceholder": "Describe the data you want to query in natural language, e.g.: What was last month's total sales?",
        "queryHint": "Cortex Analyst will automatically convert natural language to SQL query",
        "resultVarName": "Result Variable Name",
        "resultVarHint": "Query result data will be saved to this variable",
        "sqlVarName": "SQL Variable Name",
        "sqlVarHint": "Generated SQL statement will be saved to this variable",
        "databaseName": "Database Name",
        "optional": "Optional",
        "passwordPlaceholder": "Password, supports variables",
        "privateKeyPasswordPlaceholder": "Fill in if private key is password protected",
        "selectAuthMethod": "Select auth method",
        "twoFormats": "Supports two formats"
      },
      "snowflakeLLM": {
        "label": "Snowflake Cortex LLM",
        "placeholder": "Snowflake Cortex LLM",
        "complete": "LLM Generation (COMPLETE)",
        "summarize": "Text Summary (SUMMARIZE)",
        "translate": "Translate (TRANSLATE)",
        "sentiment": "Sentiment Analysis (SENTIMENT)",
        "extractAnswer": "Q&A Extraction (EXTRACT_ANSWER)",
        "langEn": "English",
        "langZh": "Chinese",
        "langJa": "Japanese",
        "langKo": "Korean",
        "langFr": "French",
        "langDe": "German",
        "langEs": "Spanish",
        "langRu": "Russian",
        "langPt": "Portuguese",
        "langIt": "Italian",
        "ssoHintFull": "External Browser SSO\nAuthentication will open browser for identity verification at execution, suitable for interactive scenarios.",
        "varHint": "Supports variables like",
        "functionConfig": "Function Config",
        "functionType": "Function Type",
        "selectFunction": "Select function",
        "selectModelLabel": "Select model",
        "systemPrompt": "System Prompt",
        "promptRequired": "Prompt",
        "promptPlaceholder": "Enter prompt, supports variables like {'{{user_input}}'}",
        "defineAiRole": "Define AI role and behavior rules",
        "textToSummarize": "Text to Summarize",
        "textToSummarizePlaceholder": "Enter text to summarize, supports variables",
        "textToTranslate": "Text to Translate",
        "textToTranslatePlaceholder": "Enter text to translate, supports variables",
        "sourceLang": "Source Language",
        "targetLang": "Target Language",
        "textToAnalyze": "Text to Analyze",
        "textToAnalyzePlaceholder": "Enter text for sentiment analysis, supports variables",
        "sentimentRange": "Return range: -1 (negative) to 1 (positive)",
        "documentContent": "Document Content",
        "documentPlaceholder": "Enter document content, supports variables",
        "questionLabel": "Question",
        "questionPlaceholder": "Enter question to extract answer from document",
        "outputVarHint": "Cortex output will be saved to this variable for downstream nodes",
        "funcComplete": "LLM Generate (COMPLETE)",
        "funcExtractAnswer": "Q&A Extract (EXTRACT_ANSWER)",
        "funcSentiment": "Sentiment Analysis (SENTIMENT)",
        "funcSummarize": "Text Summary (SUMMARIZE)",
        "funcTranslate": "Translate (TRANSLATE)",
        "passwordPlaceholder": "Password, supports variable e.g.",
        "prompt": "Prompt",
        "question": "Question",
        "sentimentPlaceholder": "Enter text for sentiment analysis, supports variables",
        "sentimentText": "Text to Analyze",
        "sourceLanguage": "Source Language",
        "summarizePlaceholder": "Enter text to summarize, supports variables",
        "summarizeText": "Text to Summarize",
        "systemPromptPlaceholder": "Define AI role and behavior rules",
        "targetLanguage": "Target Language",
        "translatePlaceholder": "Enter text to translate, supports variables",
        "translateText": "Text to Translate",
        "varRefHint": "Supports variable e.g."
      },
      "formDbCreate": {
        "allReadyOutput": "All Tables Ready",
        "autoCreateSchema": "Auto Create Schema",
        "autoCreateSchemaHint": "Auto create when Schema doesn't exist (PostgreSQL/SQL Server only)",
        "cautionWarning": "This node will actually create database tables, please operate with caution",
        "database": "Target Database (optional)",
        "databaseHint": "If set, overrides the design node; leave empty to use the connection default",
        "databasePlaceholder": "e.g. my_app_db, supports {'{{database}}'}",
        "dbDesignConfig": "Database Design Config",
        "dbDesignConfigHint": "Database design config from previous node (table structure design)",
        "dbDesignConfigPlaceholder": "Please use variable",
        "errorCountOutput": "Error Count",
        "ifExists": "When Table Exists",
        "ifExistsHint": "How to handle when table exists, recommended: skip",
        "ifExistsPlaceholder": "Select handling method",
        "label": "Database Table Create",
        "note1": "This node will actually execute DDL statements to create tables",
        "note2": "Recommend verifying SQL in test environment first",
        "note3": "Choosing \"replace\" will lose all data in the table",
        "note4": "Ensure database user has CREATE TABLE permission",
        "notes": "Notes",
        "placeholder": "Database Table Create",
        "replaceDanger": "Replace (Dangerous)",
        "resultOutput": "Creation Result Object",
        "schema": "Database Schema (Optional)",
        "schemaHint": "PostgreSQL/SQL Server schema name. If configured, this value takes priority, otherwise uses design node's schema",
        "schemaPlaceholder": "e.g. public, app, supports variables",
        "skipRecommended": "Skip (Recommended)",
        "successCountOutput": "Successfully Created Table Count",
        "throwError": "Throw Error"
      },
      "formDbDesign": {
        "autoAddSystemFields": "Auto Add System Fields",
        "autoAddSystemFieldsHint": "Auto add system fields (id, sys_create_datetime, sys_update_datetime, etc.)",
        "dbConfig": "Database Config",
        "dbConfigHint": "Database config name, default is 'default'",
        "dbConfigPlaceholder": "Enter database config name",
        "dbSchema": "Database Schema",
        "dbSchemaHint": "PostgreSQL schema name, empty uses database default schema",
        "dbSchemaPlaceholder": "PostgreSQL schema name, e.g. public, app (optional)",
        "dbType": "Database Type",
        "dbTypePlaceholder": "Select database type",
        "dbTypeHint": "Select target database type, affects field type mapping",
        "designMode": "Design Mode",
        "designModeHint": "Choose to design main or sub table, sub table needs to specify related main table",
        "fieldCountOutput": "Field Count",
        "fieldConfigExample": "Field Config Example (array)",
        "fieldList": "Field List",
        "fieldListHint": "Field config array, each field contains name, type, comment, etc.",
        "fieldListPlaceholder": "Enter field list or use variable",
        "foreignKey": "Foreign Key Field",
        "foreignKeyHint": "Foreign key field name for main table, auto-generated if empty",
        "foreignKeyPlaceholder": "Default is {main_table}_id",
        "fullDesignOutput": "Full Database Design Object",
        "label": "Database Table Structure Design",
        "mainTable": "Main Table",
        "placeholder": "Database Table Structure Design",
        "relatedMainTable": "Related Main Table",
        "relatedMainTableHint": "Main table name that sub table relates to",
        "relatedMainTablePlaceholder": "Enter related main table name or use variable",
        "subFieldListPlaceholder": "Enter sub table field list or use variable",
        "subFieldListHint": "Sub table field config array",
        "subTable": "Sub Table",
        "subTableName": "Sub Table Name",
        "subTableNameHint": "Database table name for sub table",
        "subTableNamePlaceholder": "Enter sub table name or use variable",
        "tableName": "Table Name",
        "tableNameHint": "Database table name, e.g.: employee, order_info",
        "tableNameOutput": "Table Name",
        "tableNamePlaceholder": "Enter table name or use variable"
      }
    }
  },
  "workflowRuns": {
    "title": "Run History",
    "description": "View AI workflow execution records and node logs",
    "search": "Search",
    "refresh": "Refresh",
    "filters": {
      "workflow": "Workflow",
      "status": "Status",
      "trigger": "Trigger",
      "allWorkflows": "All workflows",
      "allStatus": "All statuses",
      "allTriggers": "All triggers"
    },
    "columns": {
      "workflow": "Workflow",
      "status": "Status",
      "trigger": "Trigger",
      "steps": "Steps",
      "tokens": "Tokens",
      "duration": "Duration",
      "startedAt": "Started at",
      "error": "Error",
      "actions": "Actions"
    },
    "status": {
      "pending": "Pending",
      "running": "Running",
      "waiting": "Waiting",
      "completed": "Completed",
      "failed": "Failed",
      "stopped": "Stopped"
    },
    "trigger": {
      "editor_draft": "Editor draft",
      "editor_published": "Editor published",
      "agent": "Agent",
      "api": "API",
      "form_button": "Form button"
    },
    "detail": {
      "back": "Back to list",
      "runId": "Run ID",
      "openEditor": "Open workflow",
      "snapshotMissing": "Definition snapshot is missing; canvas replay may be incomplete",
      "completedAt": "Completed at",
      "version": "Version",
      "draft": "Draft",
      "timeline": "Execution timeline",
      "noLogs": "No execution logs",
      "inputsOutputs": "Inputs / Outputs"
    }
  }
}
