feat(i18n): add shared translation files and language registry

This commit is contained in:
ghostubborn 2026-04-01 15:20:49 +08:00
parent 1536a79334
commit c8a1bd5cbf
3 changed files with 706 additions and 0 deletions

338
locales/en.json Normal file
View File

@ -0,0 +1,338 @@
{
"common": {
"confirm": "Confirm",
"cancel": "Cancel",
"loading": "Loading...",
"error": "Error",
"success": "Success",
"completed": "Completed",
"processing": "Generating",
"pending": "Pending",
"ready": "Ready",
"running": "Running",
"failed": "Failed",
"unknown": "Unknown",
"unknownError": "Unknown error",
"none": "None",
"close": "Close",
"back": "Back",
"next": "Next",
"retry": "Retry",
"noData": "No data available",
"hours": "hours",
"minutes": "minutes",
"rounds": "rounds",
"items": "items",
"files": "files"
},
"meta": {
"title": "MiroFish - Predict Everything",
"description": "MiroFish - Social Media Opinion Simulation System"
},
"nav": {
"visitGithub": "Visit our Github page"
},
"home": {
"tagline": "Concise & Universal Swarm Intelligence Engine",
"version": "/ v0.1-Preview",
"heroTitle1": "Upload Any Report",
"heroTitle2": "Simulate the Future Instantly",
"heroDesc": "Even from a single paragraph, {brand} can extract reality seeds and auto-generate a parallel world of up to {agentScale}. Inject variables from a god's-eye view to find the {optimalSolution} amid complex group interactions in dynamic environments.",
"heroDescBrand": "MiroFish",
"heroDescAgentScale": "millions of Agents",
"heroDescOptimalSolution": "\"local optimum\"",
"slogan": "Let the future rehearse among Agents, let decisions prevail after a hundred battles",
"systemStatus": "System Status",
"systemReady": "Ready",
"systemReadyDesc": "Prediction engine on standby. Upload unstructured data to initialize a simulation sequence.",
"metricLowCost": "Low Cost",
"metricLowCostDesc": "Avg. $5 per simulation",
"metricHighAvail": "High Availability",
"metricHighAvailDesc": "Up to millions of Agents",
"workflowSequence": "Workflow Sequence",
"step01Title": "Graph Build",
"step01Desc": "Reality seed extraction & individual/group memory injection & GraphRAG construction",
"step02Title": "Environment Setup",
"step02Desc": "Entity-relation extraction & persona generation & environment config with Agent injection",
"step03Title": "Run Simulation",
"step03Desc": "Dual-platform parallel simulation & auto-parse prediction requirements & dynamic temporal memory",
"step04Title": "Report Generation",
"step04Desc": "ReportAgent with a rich toolset interacts deeply with the post-simulation environment",
"step05Title": "Deep Interaction",
"step05Desc": "Chat with any individual in the simulated world & converse with ReportAgent",
"realitySeed": "01 / Reality Seed",
"supportedFormats": "Formats: PDF, MD, TXT",
"dragToUpload": "Drag files to upload",
"orBrowse": "or click to browse files",
"inputParams": "Input Parameters",
"simulationPrompt": ">_ 02 / Simulation Prompt",
"promptPlaceholder": "// Describe your simulation or prediction requirement in natural language",
"engineBadge": "Engine: MiroFish-V1.0",
"startEngine": "Start Engine",
"initializing": "Initializing..."
},
"main": {
"layoutGraph": "Graph",
"layoutSplit": "Split",
"layoutWorkbench": "Workbench",
"stepNames": ["Graph Build", "Env Setup", "Run Simulation", "Report Generation", "Deep Interaction"]
},
"step1": {
"ontologyGeneration": "Ontology Generation",
"ontologyCompleted": "Completed",
"ontologyGenerating": "Generating",
"ontologyPending": "Pending",
"ontologyDesc": "LLM analyzes document content and simulation requirements, extracts reality seeds, and auto-generates a suitable ontology structure",
"analyzingDocs": "Analyzing documents...",
"graphRagBuild": "GraphRAG Build",
"graphRagDesc": "Based on the generated ontology, documents are auto-chunked and sent to Zep to build a knowledge graph, extracting entities and relations, forming temporal memory and community summaries",
"entityNodes": "Entity Nodes",
"relationEdges": "Relation Edges",
"schemaTypes": "Schema Types",
"buildComplete": "Build Complete",
"buildCompleteDesc": "Graph build is complete. Proceed to the next step for simulation environment setup.",
"inProgress": "In Progress",
"creating": "Creating...",
"enterEnvSetup": "Enter Environment Setup",
"createSimulationFailed": "Failed to create simulation: {error}",
"createSimulationException": "Simulation creation error: {error}"
},
"step2": {
"simInstanceInit": "Simulation Instance Initialization",
"simInstanceDesc": "Create a new simulation instance and pull world parameter templates",
"asyncTaskDone": "Async task completed",
"generateAgentPersona": "Generate Agent Personas",
"generateAgentPersonaDesc": "Combine context to auto-extract entities and relations from the knowledge graph, initialize simulated individuals, and assign unique behaviors and memories based on reality seeds",
"currentAgentCount": "Current Agents",
"expectedAgentTotal": "Expected Total Agents",
"relatedTopicsCount": "Reality Seed Related Topics",
"generatedAgentPersonas": "Generated Agent Personas",
"unknownProfession": "Unknown profession",
"noBio": "No bio available",
"dualPlatformConfig": "Generate Dual-Platform Config",
"dualPlatformConfigDesc": "LLM intelligently sets world time flow, recommendation algorithms, each individual's active hours, posting frequency, event triggers, and more based on requirements and reality seeds",
"simulationDuration": "Simulation Duration",
"roundDuration": "Round Duration",
"totalRounds": "Total Rounds",
"activePerHour": "Active Per Hour",
"peakHours": "Peak Hours",
"workHours": "Work Hours",
"morningHours": "Morning Hours",
"offPeakHours": "Off-Peak Hours",
"agentConfig": "Agent Config",
"activeTimePeriod": "Active Hours",
"postsPerHour": "Posts/hr",
"commentsPerHour": "Comments/hr",
"responseDelay": "Response Delay",
"activityLevel": "Activity Level",
"sentimentBias": "Sentiment Bias",
"influenceWeight": "Influence",
"recommendAlgoConfig": "Recommendation Algorithm Config",
"platform1Name": "Platform 1: Plaza / Feed",
"platform2Name": "Platform 2: Topic / Community",
"recencyWeight": "Recency Weight",
"popularityWeight": "Popularity Weight",
"relevanceWeight": "Relevance Weight",
"viralThreshold": "Viral Threshold",
"echoChamberStrength": "Echo Chamber Strength",
"llmConfigReasoning": "LLM Config Reasoning",
"initialActivation": "Initial Activation Orchestration",
"initialActivationDesc": "Auto-generate initial activation events and hot topics based on narrative direction to guide the simulation world's initial state",
"orchestrating": "Orchestrating",
"narrativeDirection": "Narrative Direction",
"initialHotTopics": "Initial Hot Topics",
"initialActivationSeq": "Initial Activation Sequence ({count})",
"setupComplete": "Setup Complete",
"setupCompleteDesc": "Simulation environment is ready. You can now start the simulation.",
"roundsConfig": "Simulation Rounds Configuration",
"roundsConfigDesc": "MiroFish auto-plans to simulate {hours} real-world hours, each round representing {minutesPerRound} minutes of elapsed time",
"customToggle": "Custom",
"roundsUnit": "rounds",
"estimatedDuration": "For 100 Agents: est. ~{minutes} minutes",
"estimatedDurationFull": "For 100 Agents: est. {minutes} minutes",
"recommendedRounds": "{rounds} (recommended)",
"customTip": "For first-time runs, we strongly recommend switching to 'Custom Mode' to reduce rounds for a quick preview and lower error risk",
"backToGraphBuild": "Back to Graph Build",
"startDualWorldSim": "Start Dual-World Parallel Simulation",
"profileModalAge": "Apparent Age",
"profileModalGender": "Apparent Gender",
"profileModalCountry": "Country/Region",
"profileModalMbti": "Apparent MBTI",
"profileModalBio": "Persona Bio",
"profileModalTopics": "Reality Seed Related Topics",
"profileModalPersona": "Detailed Persona Background",
"personaDimExperience": "Full Event Experience",
"personaDimExperienceDesc": "Complete behavioral trajectory in this event",
"personaDimBehavior": "Behavioral Profile",
"personaDimBehaviorDesc": "Experience summary and behavioral preferences",
"personaDimMemory": "Unique Memory Imprint",
"personaDimMemoryDesc": "Memories formed from reality seeds",
"personaDimSocial": "Social Network",
"personaDimSocialDesc": "Individual connections and interaction graph",
"genderMale": "Male",
"genderFemale": "Female",
"genderOther": "Other",
"yearsOld": "years old"
},
"step3": {
"startGenerateReport": "Generate Result Report",
"generatingReport": "Starting...",
"waitingForActions": "Waiting for agent actions...",
"errorMissingSimId": "Error: missing simulationId",
"startingDualSim": "Starting dual-platform parallel simulation...",
"graphMemoryUpdateEnabled": "Dynamic graph memory update enabled",
"setMaxRounds": "Max simulation rounds set to: {rounds}",
"oldSimCleared": "Old simulation logs cleared, restarting simulation",
"engineStarted": "Simulation engine started successfully",
"startFailed": "Start failed: {error}",
"startException": "Start error: {error}",
"stoppingSim": "Stopping simulation...",
"simStopped": "Simulation stopped",
"stopFailed": "Stop failed: {error}",
"stopException": "Stop error: {error}",
"allPlatformsCompleted": "All platform simulations have ended",
"simCompleted": "Simulation completed",
"graphRealtimeRefresh": "Graph real-time refresh enabled (30s)",
"graphRefreshStopped": "Graph real-time refresh stopped",
"preparingGoBack": "Preparing to return to Step 2, closing simulation...",
"closingSimEnv": "Closing simulation environment...",
"simEnvClosed": "Simulation environment closed",
"closeFailed": "Failed to close simulation environment, attempting force stop...",
"stoppingProcess": "Stopping simulation process...",
"checkStatusFailed": "Failed to check simulation status: {error}",
"forceStopSuccess": "Simulation force stopped",
"forceStopFailed": "Force stop failed: {error}"
},
"step4": {
"generatingSection": "Generating {title}...",
"goToInteraction": "Enter Deep Interaction",
"waitingForReportAgent": "Waiting for Report Agent..."
},
"step5": {
"interactiveTools": "Interactive Tools",
"agentsAvailable": "{count} agents available",
"chatWithReportAgent": "Chat with Report Agent",
"chatWithAgent": "Chat with any individual in the world",
"selectChatTarget": "Select chat target",
"sendSurvey": "Send survey to the world",
"reportAgentChat": "Report Agent - Chat",
"reportAgentDesc": "A conversational version of the report generation agent with access to 4 professional tools and MiroFish's complete memory",
"toolInsightForge": "InsightForge Deep Attribution",
"toolInsightForgeDesc": "Aligns real-world seed data with simulation state, combining Global/Local Memory for cross-temporal deep attribution analysis",
"toolPanoramaSearch": "PanoramaSearch Full Tracking",
"toolPanoramaSearchDesc": "Graph-based BFS algorithm that reconstructs event propagation paths, capturing the full topology of information flow",
"toolQuickSearch": "QuickSearch Fast Retrieval",
"toolQuickSearchDesc": "GraphRAG-based instant query interface with optimized indexing for fast extraction of node attributes and discrete facts",
"toolInterviewSubAgent": "InterviewSubAgent Virtual Interview",
"toolInterviewSubAgentDesc": "Autonomous interviews that conduct parallel multi-round dialogues with simulated individuals, collecting unstructured opinion data and psychological states",
"profileBio": "Bio",
"chatEmptyReportAgent": "Chat with Report Agent to explore report content in depth",
"chatEmptyAgent": "Chat with simulated individuals to understand their perspectives",
"chatInputPlaceholder": "Type your question...",
"selectSurveyTarget": "Select survey targets",
"selectedCount": "Selected {selected} / {total}",
"surveyQuestions": "Survey Questions",
"surveyInputPlaceholder": "Enter the question you want to ask all selected targets...",
"submitSurvey": "Send Survey",
"surveyResults": "Survey Results",
"surveyResultsCount": "{count} responses",
"selectAll": "Select All",
"clearSelection": "Clear"
},
"graph": {
"panelTitle": "Graph Relationship Visualization",
"refreshGraph": "Refresh Graph",
"graphMemoryRealtime": "GraphRAG short/long-term memory updating in real-time",
"realtimeUpdating": "Updating in real-time...",
"pendingContentHint": "Some content is still processing. Consider refreshing the graph manually later.",
"nodeDetails": "Node Details",
"relationship": "Relationship"
},
"history": {
"title": "Simulation History",
"graphBuild": "Graph Build",
"envSetup": "Env Setup",
"analysisReport": "Analysis Report",
"moreFiles": "+{count} files",
"noFiles": "No files",
"loadingText": "Loading...",
"simRequirement": "Simulation Requirement",
"relatedFiles": "Related Files",
"noRelatedFiles": "No related files",
"replayTitle": "Simulation Replay",
"step1Button": "Graph Build",
"step2Button": "Env Setup",
"step4Button": "Analysis Report",
"replayHint": "Step 3 'Run Simulation' and Step 5 'Deep Interaction' must be started during runtime and do not support history replay"
},
"api": {
"projectNotFound": "Project not found: {id}",
"projectDeleteFailed": "Project not found or deletion failed: {id}",
"projectDeleted": "Project deleted: {id}",
"projectReset": "Project reset: {id}",
"requireSimulationRequirement": "Please provide a simulation requirement (simulation_requirement)",
"requireFileUpload": "Please upload at least one document file",
"noDocProcessed": "No documents were processed successfully. Please check file formats.",
"requireProjectId": "Please provide project_id",
"configError": "Configuration error: {details}",
"zepApiKeyMissing": "ZEP_API_KEY not configured",
"ontologyNotGenerated": "Ontology not yet generated. Please call /ontology/generate first.",
"graphBuilding": "Graph build in progress. Do not resubmit. To force rebuild, add force: true.",
"textNotFound": "Extracted text content not found",
"ontologyNotFound": "Ontology definition not found",
"graphBuildStarted": "Graph build task started. Query progress via /task/{taskId}.",
"graphBuildComplete": "Graph build complete",
"buildFailed": "Build failed: {error}",
"taskNotFound": "Task not found: {id}",
"graphDeleted": "Graph deleted: {id}",
"entityNotFound": "Entity not found: {id}",
"graphNotBuilt": "Graph not yet built. Please call /api/graph/build first.",
"requireSimulationId": "Please provide simulation_id",
"simulationNotFound": "Simulation not found: {id}",
"projectMissingRequirement": "Project missing simulation requirement (simulation_requirement)",
"prepareStarted": "Preparation task started. Query progress via /api/simulation/prepare/status.",
"alreadyPrepared": "Preparation already complete. No need to regenerate.",
"notStartedPrepare": "Preparation not started. Please call /api/simulation/prepare.",
"taskCompletedPrepared": "Task completed (preparation already exists)",
"requireTaskOrSimId": "Please provide task_id or simulation_id",
"configNotFound": "Simulation config not found. Please call /prepare first.",
"configFileNotFound": "Config file not found. Please call /prepare first.",
"unknownScript": "Unknown script: {name}. Available: {allowed}",
"scriptFileNotFound": "Script file not found: {name}",
"requireGraphId": "Please provide graph_id",
"noMatchingEntities": "No matching entities found",
"maxRoundsPositive": "max_rounds must be a positive integer",
"maxRoundsInvalid": "max_rounds must be a valid integer",
"invalidPlatform": "Invalid platform type: {platform}. Options: twitter/reddit/parallel",
"simRunningForceHint": "Simulation is running. Stop it first via /stop, or use force=true to restart.",
"simNotReady": "Simulation not ready. Current status: {status}. Please call /prepare first.",
"graphIdRequiredForMemory": "Graph memory update requires a valid graph_id. Ensure the graph is built.",
"dbNotExist": "Database does not exist. The simulation may not have run yet.",
"requireMessage": "Please provide a message",
"missingGraphId": "Missing graph ID",
"missingGraphIdEnsure": "Missing graph ID. Please ensure the graph has been built.",
"missingSimRequirement": "Missing simulation requirement description",
"reportAlreadyExists": "Report already exists",
"reportGenerateStarted": "Report generation task started. Query progress via /api/report/generate/status.",
"reportGenerated": "Report generated",
"reportNotFound": "Report not found: {id}",
"noReportForSim": "No report found for this simulation: {id}",
"reportDeleted": "Report deleted: {id}",
"reportGenerateFailed": "Report generation failed",
"sectionNotFound": "Section not found: section_{index}.md",
"reportProgressNotAvail": "Report not found or progress unavailable: {id}",
"requireAgentId": "Please provide agent_id",
"requirePrompt": "Please provide a prompt (interview question)",
"invalidInterviewPlatform": "Platform must be either 'twitter' or 'reddit'",
"envNotRunning": "Simulation environment not running or closed. Ensure simulation is complete and in command-wait mode.",
"interviewTimeout": "Interview response timed out: {error}",
"requireInterviews": "Please provide interviews (interview list)",
"interviewListMissingAgentId": "Interview list item {index} missing agent_id",
"interviewListMissingPrompt": "Interview list item {index} missing prompt",
"interviewListInvalidPlatform": "Interview list item {index} platform must be 'twitter' or 'reddit'",
"batchInterviewTimeout": "Batch interview response timed out: {error}",
"globalInterviewTimeout": "Global interview response timed out: {error}",
"envRunning": "Environment is running and ready for Interview commands",
"initReportAgent": "Initializing Report Agent..."
}
}

30
locales/languages.json Normal file
View File

@ -0,0 +1,30 @@
{
"zh": {
"label": "中文",
"llmInstruction": "请使用中文回答。"
},
"en": {
"label": "English",
"llmInstruction": "Please respond in English."
},
"es": {
"label": "Español",
"llmInstruction": "Por favor, responde en español."
},
"fr": {
"label": "Français",
"llmInstruction": "Veuillez répondre en français."
},
"pt": {
"label": "Português",
"llmInstruction": "Por favor, responda em português."
},
"ru": {
"label": "Русский",
"llmInstruction": "Пожалуйста, отвечайте на русском языке."
},
"de": {
"label": "Deutsch",
"llmInstruction": "Bitte antworten Sie auf Deutsch."
}
}

338
locales/zh.json Normal file
View File

@ -0,0 +1,338 @@
{
"common": {
"confirm": "确认",
"cancel": "取消",
"loading": "加载中...",
"error": "错误",
"success": "成功",
"completed": "已完成",
"processing": "生成中",
"pending": "等待",
"ready": "就绪",
"running": "运行中",
"failed": "失败",
"unknown": "未知",
"unknownError": "未知错误",
"none": "无",
"close": "关闭",
"back": "返回",
"next": "下一步",
"retry": "重试",
"noData": "暂无数据",
"hours": "小时",
"minutes": "分钟",
"rounds": "轮",
"items": "个",
"files": "个文件"
},
"meta": {
"title": "MiroFish - 预测万物",
"description": "MiroFish - 社交媒体舆论模拟系统"
},
"nav": {
"visitGithub": "访问我们的Github主页"
},
"home": {
"tagline": "简洁通用的群体智能引擎",
"version": "/ v0.1-预览版",
"heroTitle1": "上传任意报告",
"heroTitle2": "即刻推演未来",
"heroDesc": "即使只有一段文字,{brand} 也能基于其中的现实种子,全自动生成与之对应的至多{agentScale}构成的平行世界。通过上帝视角注入变量,在复杂的群体交互中寻找动态环境下的{optimalSolution}",
"heroDescBrand": "MiroFish",
"heroDescAgentScale": "百万级Agent",
"heroDescOptimalSolution": "\"局部最优解\"",
"slogan": "让未来在 Agent 群中预演,让决策在百战后胜出",
"systemStatus": "系统状态",
"systemReady": "准备就绪",
"systemReadyDesc": "预测引擎待命中,可上传多份非结构化数据以初始化模拟序列",
"metricLowCost": "低成本",
"metricLowCostDesc": "常规模拟平均5$/次",
"metricHighAvail": "高可用",
"metricHighAvailDesc": "最多百万级Agent模拟",
"workflowSequence": "工作流序列",
"step01Title": "图谱构建",
"step01Desc": "现实种子提取 & 个体与群体记忆注入 & GraphRAG构建",
"step02Title": "环境搭建",
"step02Desc": "实体关系抽取 & 人设生成 & 环境配置Agent注入仿真参数",
"step03Title": "开始模拟",
"step03Desc": "双平台并行模拟 & 自动解析预测需求 & 动态更新时序记忆",
"step04Title": "报告生成",
"step04Desc": "ReportAgent拥有丰富的工具集与模拟后环境进行深度交互",
"step05Title": "深度互动",
"step05Desc": "与模拟世界中的任意一位进行对话 & 与ReportAgent进行对话",
"realitySeed": "01 / 现实种子",
"supportedFormats": "支持格式: PDF, MD, TXT",
"dragToUpload": "拖拽文件上传",
"orBrowse": "或点击浏览文件系统",
"inputParams": "输入参数",
"simulationPrompt": ">_ 02 / 模拟提示词",
"promptPlaceholder": "// 用自然语言输入模拟或预测需求(例.武大若发布撤销肖某处分的公告,会引发什么舆情走向)",
"engineBadge": "引擎: MiroFish-V1.0",
"startEngine": "启动引擎",
"initializing": "初始化中..."
},
"main": {
"layoutGraph": "图谱",
"layoutSplit": "双栏",
"layoutWorkbench": "工作台",
"stepNames": ["图谱构建", "环境搭建", "开始模拟", "报告生成", "深度互动"]
},
"step1": {
"ontologyGeneration": "本体生成",
"ontologyCompleted": "已完成",
"ontologyGenerating": "生成中",
"ontologyPending": "等待",
"ontologyDesc": "LLM分析文档内容与模拟需求提取出现实种子自动生成合适的本体结构",
"analyzingDocs": "正在分析文档...",
"graphRagBuild": "GraphRAG构建",
"graphRagDesc": "基于生成的本体,将文档自动分块后调用 Zep 构建知识图谱,提取实体和关系,并形成时序记忆与社区摘要",
"entityNodes": "实体节点",
"relationEdges": "关系边",
"schemaTypes": "SCHEMA类型",
"buildComplete": "构建完成",
"buildCompleteDesc": "图谱构建已完成,请进入下一步进行模拟环境搭建",
"inProgress": "进行中",
"creating": "创建中...",
"enterEnvSetup": "进入环境搭建",
"createSimulationFailed": "创建模拟失败: {error}",
"createSimulationException": "创建模拟异常: {error}"
},
"step2": {
"simInstanceInit": "模拟实例初始化",
"simInstanceDesc": "新建simulation实例拉取模拟世界参数模版",
"asyncTaskDone": "异步任务已完成",
"generateAgentPersona": "生成 Agent 人设",
"generateAgentPersonaDesc": "结合上下文,自动调用工具从知识图谱梳理实体与关系,初始化模拟个体,并基于现实种子赋予他们独特的行为与记忆",
"currentAgentCount": "当前Agent数",
"expectedAgentTotal": "预期Agent总数",
"relatedTopicsCount": "现实种子当前关联话题数",
"generatedAgentPersonas": "已生成的 Agent 人设",
"unknownProfession": "未知职业",
"noBio": "暂无简介",
"dualPlatformConfig": "生成双平台模拟配置",
"dualPlatformConfigDesc": "LLM 根据模拟需求与现实种子,智能设置世界时间流速、推荐算法、每个个体的活跃时间段、发言频率、事件触发等参数",
"simulationDuration": "模拟时长",
"roundDuration": "每轮时长",
"totalRounds": "总轮次",
"activePerHour": "每小时活跃",
"peakHours": "高峰时段",
"workHours": "工作时段",
"morningHours": "早间时段",
"offPeakHours": "低谷时段",
"agentConfig": "Agent 配置",
"activeTimePeriod": "活跃时段",
"postsPerHour": "发帖/时",
"commentsPerHour": "评论/时",
"responseDelay": "响应延迟",
"activityLevel": "活跃度",
"sentimentBias": "情感倾向",
"influenceWeight": "影响力",
"recommendAlgoConfig": "推荐算法配置",
"platform1Name": "平台 1广场 / 信息流",
"platform2Name": "平台 2话题 / 社区",
"recencyWeight": "时效权重",
"popularityWeight": "热度权重",
"relevanceWeight": "相关性权重",
"viralThreshold": "病毒阈值",
"echoChamberStrength": "回音室强度",
"llmConfigReasoning": "LLM 配置推理",
"initialActivation": "初始激活编排",
"initialActivationDesc": "基于叙事方向,自动生成初始激活事件与热点话题,引导模拟世界的初始状态",
"orchestrating": "编排中",
"narrativeDirection": "叙事引导方向",
"initialHotTopics": "初始热点话题",
"initialActivationSeq": "初始激活序列 ({count})",
"setupComplete": "准备完成",
"setupCompleteDesc": "模拟环境已准备完成,可以开始运行模拟",
"roundsConfig": "模拟轮数设定",
"roundsConfigDesc": "MiroFish 自动规划推演现实 {hours} 小时,每轮代表现实 {minutesPerRound} 分钟时间流逝",
"customToggle": "自定义",
"roundsUnit": "轮",
"estimatedDuration": "若Agent规模为100预计耗时约 {minutes} 分钟",
"estimatedDurationFull": "若Agent规模为100预计耗时 {minutes} 分钟",
"recommendedRounds": "{rounds} (推荐)",
"customTip": "若首次运行,强烈建议切换至'自定义模式'减少模拟轮数,以便快速预览效果并降低报错风险",
"backToGraphBuild": "返回图谱构建",
"startDualWorldSim": "开始双世界并行模拟",
"profileModalAge": "事件外显年龄",
"profileModalGender": "事件外显性别",
"profileModalCountry": "国家/地区",
"profileModalMbti": "事件外显MBTI",
"profileModalBio": "人设简介",
"profileModalTopics": "现实种子关联话题",
"profileModalPersona": "详细人设背景",
"personaDimExperience": "事件全景经历",
"personaDimExperienceDesc": "在此事件中的完整行为轨迹",
"personaDimBehavior": "行为模式侧写",
"personaDimBehaviorDesc": "经验总结与行事风格偏好",
"personaDimMemory": "独特记忆印记",
"personaDimMemoryDesc": "基于现实种子形成的记忆",
"personaDimSocial": "社会关系网络",
"personaDimSocialDesc": "个体链接与交互图谱",
"genderMale": "男",
"genderFemale": "女",
"genderOther": "其他",
"yearsOld": "岁"
},
"step3": {
"startGenerateReport": "开始生成结果报告",
"generatingReport": "启动中...",
"waitingForActions": "Waiting for agent actions...",
"errorMissingSimId": "错误:缺少 simulationId",
"startingDualSim": "正在启动双平台并行模拟...",
"graphMemoryUpdateEnabled": "已开启动态图谱更新模式",
"setMaxRounds": "设置最大模拟轮数: {rounds}",
"oldSimCleared": "已清理旧的模拟日志,重新开始模拟",
"engineStarted": "模拟引擎启动成功",
"startFailed": "启动失败: {error}",
"startException": "启动异常: {error}",
"stoppingSim": "正在停止模拟...",
"simStopped": "模拟已停止",
"stopFailed": "停止失败: {error}",
"stopException": "停止异常: {error}",
"allPlatformsCompleted": "检测到所有平台模拟已结束",
"simCompleted": "模拟已完成",
"graphRealtimeRefresh": "开启图谱实时刷新 (30s)",
"graphRefreshStopped": "停止图谱实时刷新",
"preparingGoBack": "准备返回 Step 2正在关闭模拟...",
"closingSimEnv": "正在关闭模拟环境...",
"simEnvClosed": "模拟环境已关闭",
"closeFailed": "关闭模拟环境失败,尝试强制停止...",
"stoppingProcess": "正在停止模拟进程...",
"checkStatusFailed": "检查模拟状态失败: {error}",
"forceStopSuccess": "模拟已强制停止",
"forceStopFailed": "强制停止失败: {error}"
},
"step4": {
"generatingSection": "正在生成{title}...",
"goToInteraction": "进入深度互动",
"waitingForReportAgent": "Waiting for Report Agent..."
},
"step5": {
"interactiveTools": "Interactive Tools",
"agentsAvailable": "{count} agents available",
"chatWithReportAgent": "与Report Agent对话",
"chatWithAgent": "与世界中任意个体对话",
"selectChatTarget": "选择对话对象",
"sendSurvey": "发送问卷调查到世界中",
"reportAgentChat": "Report Agent - Chat",
"reportAgentDesc": "报告生成智能体的快速对话版本,可调用 4 种专业工具拥有MiroFish的完整记忆",
"toolInsightForge": "InsightForge 深度归因",
"toolInsightForgeDesc": "对齐现实世界种子数据与模拟环境状态结合Global/Local Memory机制提供跨时空的深度归因分析",
"toolPanoramaSearch": "PanoramaSearch 全景追踪",
"toolPanoramaSearchDesc": "基于图结构的广度遍历算法,重构事件传播路径,捕获全量信息流动的拓扑结构",
"toolQuickSearch": "QuickSearch 快速检索",
"toolQuickSearchDesc": "基于 GraphRAG 的即时查询接口,优化索引效率,用于快速提取具体的节点属性与离散事实",
"toolInterviewSubAgent": "InterviewSubAgent 虚拟访谈",
"toolInterviewSubAgentDesc": "自主式访谈,能够并行与模拟世界中个体进行多轮对话,采集非结构化的观点数据与心理状态",
"profileBio": "简介",
"chatEmptyReportAgent": "与 Report Agent 对话,深入了解报告内容",
"chatEmptyAgent": "与模拟个体对话,了解他们的观点",
"chatInputPlaceholder": "输入您的问题...",
"selectSurveyTarget": "选择调查对象",
"selectedCount": "已选 {selected} / {total}",
"surveyQuestions": "问卷问题",
"surveyInputPlaceholder": "输入您想问所有被选中对象的问题...",
"submitSurvey": "发送问卷",
"surveyResults": "调查结果",
"surveyResultsCount": "{count} 条回复",
"selectAll": "全选",
"clearSelection": "清空"
},
"graph": {
"panelTitle": "Graph Relationship Visualization",
"refreshGraph": "刷新图谱",
"graphMemoryRealtime": "GraphRAG长短期记忆实时更新中",
"realtimeUpdating": "实时更新中...",
"pendingContentHint": "还有少量内容处理中,建议稍后手动刷新图谱",
"nodeDetails": "Node Details",
"relationship": "Relationship"
},
"history": {
"title": "推演记录",
"graphBuild": "图谱构建",
"envSetup": "环境搭建",
"analysisReport": "分析报告",
"moreFiles": "+{count} 个文件",
"noFiles": "暂无文件",
"loadingText": "加载中...",
"simRequirement": "模拟需求",
"relatedFiles": "关联文件",
"noRelatedFiles": "暂无关联文件",
"replayTitle": "推演回放",
"step1Button": "图谱构建",
"step2Button": "环境搭建",
"step4Button": "分析报告",
"replayHint": "Step3「开始模拟」与 Step5「深度互动」需在运行中启动不支持历史回放"
},
"api": {
"projectNotFound": "项目不存在: {id}",
"projectDeleteFailed": "项目不存在或删除失败: {id}",
"projectDeleted": "项目已删除: {id}",
"projectReset": "项目已重置: {id}",
"requireSimulationRequirement": "请提供模拟需求描述 (simulation_requirement)",
"requireFileUpload": "请至少上传一个文档文件",
"noDocProcessed": "没有成功处理任何文档,请检查文件格式",
"requireProjectId": "请提供 project_id",
"configError": "配置错误: {details}",
"zepApiKeyMissing": "ZEP_API_KEY未配置",
"ontologyNotGenerated": "项目尚未生成本体,请先调用 /ontology/generate",
"graphBuilding": "图谱正在构建中,请勿重复提交。如需强制重建,请添加 force: true",
"textNotFound": "未找到提取的文本内容",
"ontologyNotFound": "未找到本体定义",
"graphBuildStarted": "图谱构建任务已启动,请通过 /task/{taskId} 查询进度",
"graphBuildComplete": "图谱构建完成",
"buildFailed": "构建失败: {error}",
"taskNotFound": "任务不存在: {id}",
"graphDeleted": "图谱已删除: {id}",
"entityNotFound": "实体不存在: {id}",
"graphNotBuilt": "项目尚未构建图谱,请先调用 /api/graph/build",
"requireSimulationId": "请提供 simulation_id",
"simulationNotFound": "模拟不存在: {id}",
"projectMissingRequirement": "项目缺少模拟需求描述 (simulation_requirement)",
"prepareStarted": "准备任务已启动,请通过 /api/simulation/prepare/status 查询进度",
"alreadyPrepared": "已有完成的准备工作,无需重复生成",
"notStartedPrepare": "尚未开始准备,请调用 /api/simulation/prepare 开始",
"taskCompletedPrepared": "任务已完成(准备工作已存在)",
"requireTaskOrSimId": "请提供 task_id 或 simulation_id",
"configNotFound": "模拟配置不存在,请先调用 /prepare 接口",
"configFileNotFound": "配置文件不存在,请先调用 /prepare 接口",
"unknownScript": "未知脚本: {name},可选: {allowed}",
"scriptFileNotFound": "脚本文件不存在: {name}",
"requireGraphId": "请提供 graph_id",
"noMatchingEntities": "没有找到符合条件的实体",
"maxRoundsPositive": "max_rounds 必须是正整数",
"maxRoundsInvalid": "max_rounds 必须是有效的整数",
"invalidPlatform": "无效的平台类型: {platform},可选: twitter/reddit/parallel",
"simRunningForceHint": "模拟正在运行中,请先调用 /stop 接口停止,或使用 force=true 强制重新开始",
"simNotReady": "模拟未准备好,当前状态: {status},请先调用 /prepare 接口",
"graphIdRequiredForMemory": "启用图谱记忆更新需要有效的 graph_id请确保项目已构建图谱",
"dbNotExist": "数据库不存在,模拟可能尚未运行",
"requireMessage": "请提供 message",
"missingGraphId": "缺少图谱ID",
"missingGraphIdEnsure": "缺少图谱ID请确保已构建图谱",
"missingSimRequirement": "缺少模拟需求描述",
"reportAlreadyExists": "报告已存在",
"reportGenerateStarted": "报告生成任务已启动,请通过 /api/report/generate/status 查询进度",
"reportGenerated": "报告已生成",
"reportNotFound": "报告不存在: {id}",
"noReportForSim": "该模拟暂无报告: {id}",
"reportDeleted": "报告已删除: {id}",
"reportGenerateFailed": "报告生成失败",
"sectionNotFound": "章节不存在: section_{index}.md",
"reportProgressNotAvail": "报告不存在或进度信息不可用: {id}",
"requireAgentId": "请提供 agent_id",
"requirePrompt": "请提供 prompt采访问题",
"invalidInterviewPlatform": "platform 参数只能是 'twitter' 或 'reddit'",
"envNotRunning": "模拟环境未运行或已关闭。请确保模拟已完成并进入等待命令模式。",
"interviewTimeout": "等待Interview响应超时: {error}",
"requireInterviews": "请提供 interviews采访列表",
"interviewListMissingAgentId": "采访列表第{index}项缺少 agent_id",
"interviewListMissingPrompt": "采访列表第{index}项缺少 prompt",
"interviewListInvalidPlatform": "采访列表第{index}项的platform只能是 'twitter' 或 'reddit'",
"batchInterviewTimeout": "等待批量Interview响应超时: {error}",
"globalInterviewTimeout": "等待全局Interview响应超时: {error}",
"envRunning": "环境正在运行可以接收Interview命令",
"initReportAgent": "初始化Report Agent..."
}
}