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/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..."
}
}