{
  "app": {
    "title": "Covel",
    "description": "插件式文字 RPG 框架"
  },
  "home": {
    "startPlaying": "开始游玩",
    "viewRepository": "查看仓库",
    "heroEyebrow": "v0.1.0 · 插件式文字 RPG 框架",
    "heroLine1": "构建世界，",
    "heroLine2": "运行回合。",
    "heroBody": "Covel 是一套用于构建和运行文字 RPG 的插件式框架。世界设定、规则系统、角色状态和叙事流程都可以独立组织，也可以直接组合成可玩的产品。",
    "heroFootnote": "同一套内核同时服务游玩、调试和扩展。",
    "scrollHint": "下滑",
    "pipeline": {
      "eyebrow": "回合流程",
      "title": "一条可以追踪、可以扩展的执行链路。",
      "subtitle": "玩家输入进入后，系统按固定顺序分发运行时、装配上下文、执行插件，再把结果写回状态和界面。",
      "diagramAria": "回合管线阶段图",
      "triggerTitle": "触发路由",
      "triggerBody": "所有输入先进入同一个入口，由这里决定这一回合该由哪些运行时接手。",
      "triggerDetail": "输入抵达 → 命中 4 个运行时",
      "contextTitle": "上下文装配",
      "contextBody": "系统把世界文档、近期消息、角色状态和插件数据装配成这一回合的上下文。",
      "contextDetail": "提示: 8.3k tokens · 缓存命中 71%",
      "runtimeTitle": "运行时执行",
      "runtimeBody": "运行时按照插件声明执行逻辑。需要模型的部分走模型，需要工具的部分走工具。",
      "runtimeDetail": "claude-sonnet-4-6 · 流式输出中…",
      "proposalsTitle": "提案",
      "proposalsBody": "插件把输出整理成类型化提案，再交给内核统一处理叙事、状态变化和界面更新。",
      "proposalsDetail": "narrative.append · state.patch · ui.render",
      "commitTitle": "校验与提交",
      "commitBody": "提交链负责校验、补写和落库，让会话状态始终保持一致。",
      "commitDetail": "5 个钩子通过 · 提交 12ms",
      "renderTitle": "渲染",
      "renderBody": "提交完成后，聊天区、侧栏和插件面板会一起刷新到最新结果。",
      "renderDetail": "叙事流式输出 · 3 个面板更新"
    },
    "plugins": {
      "eyebrow": "插件系统",
      "title": "把玩法、规则和面板拆成独立模块。",
      "subtitle": "插件声明自己的触发条件、优先级和工具范围。内核负责调度，产品层可以随时替换实现。",
      "narratorBand": "叙事者 · 500",
      "narratorBlurb": "负责主叙事输出，生成这一回合真正展示给玩家的正文。",
      "worldInitBand": "Pre-Game · 0–99",
      "worldInitBlurb": "在开局阶段准备世界结构和基础数据，给后续运行时提供统一入口。",
      "imageBand": "After-Turn · 700",
      "imageBlurb": "负责捕捉叙事里的视觉片段，把图片生成接到回合后处理。",
      "memoryBand": "Audit · 1000",
      "memoryBlurb": "整理长期记忆和归档信息，让长会话依然保留可追溯的上下文。",
      "rulesBand": "Pre-Turn · 200",
      "rulesBlurb": "处理规则计算、骰子和修正值，适合承载确定性的纯逻辑。",
      "charactersBand": "After-Turn · 600",
      "charactersBlurb": "追踪 NPC、关系和角色字段，把叙事里的变化沉淀成结构化记录。",
      "footnote": "内置插件可以直接启用，自定义插件也沿用同一份接口。",
      "unfilledSlot": "等待插件认领此能力。"
    },
    "demo": {
      "eyebrow": "产品界面",
      "title": "首页展示的就是实际工作区。",
      "subtitle": "中间是会话，侧边是插件面板，模型和世界配置都在同一个界面里完成。",
      "videoAria": "Covel 会话进行中的录像",
      "stat1Label": "活跃插件",
      "stat1Value": "8",
      "stat2Label": "首 token 平均",
      "stat2Value": "~640ms",
      "stat3Label": "支持后端",
      "stat3Value": "4",
      "stat4Label": "插件代码量",
      "stat4Value": "由你决定"
    },
    "cta": {
      "eyebrow": "下一步",
      "line1": "开始一个会话，",
      "line2": "或开始一个项目。",
      "playLabel": "开始游玩",
      "playBody": "选择一个世界，配置模型，即可进入会话。",
      "playAction": "进入工作室",
      "authorLabel": "写一个插件",
      "authorBody": "从 PLUGIN.md 和 manifest 开始，把规则、工具和面板接进产品里。",
      "authorAction": "阅读指南",
      "contribLabel": "查看架构",
      "contribBody": "仓库按包和插件拆分，入口清楚，适合继续开发和二次集成。",
      "contribAction": "浏览仓库"
    },
    "forPlayersEyebrow": "面向玩家",
    "forPlayersTitle": "进入一个会倾听你的故事。",
    "playerPointStart": "片刻开始冒险。",
    "playerPointStartDesc": "无需配置。选一个世界，点击开始游玩，叙事者便会回应你说的每一句话。",
    "playerPointWorld": "挑选契合心情的世界。",
    "playerPointWorldDesc": "赛博朋克、高魔奇幻，或是慢节奏悬疑 —— 每个世界都是一套独立的基调与设定。",
    "playerPointModel": "自选 AI 的思考方式。",
    "playerPointModelDesc": "按槽位切换底层模型 —— 快速草稿、深度推理，或带上你自己的 API 密钥。",
    "underTheHoodEyebrow": "底层架构",
    "underTheHoodHint": "仅供好奇的访客 —— 玩游戏无需关心。",
    "debuggerLink": "打开调试器"
  },
  "nav": {
    "home": "首页",
    "play": "游玩",
    "world": "世界",
    "worlds": "世界观",
    "session": "会话",
    "plugins": "插件",
    "images": "图像",
    "settings": "设置",
    "studio": "工作室",
    "debug": "调试",
    "primary": "主导航",
    "getStarted": "开始使用"
  },
  "session": {
    "config": "工作室配置",
    "status": "会话状态",
    "providers": "激活的模型",
    "plugins": "加载的插件",
    "editConfig": "编辑配置",
    "executionStream": "执行流",
    "inputPlaceholder": "输入动作或命令...",
    "inputPlaceholderAny": "发送消息...",
    "inputAriaLabel": "故事输入框,按回车发送",
    "inputKbdHint": "发送",
    "ended": "本次会话已结束。",
    "game": "游戏",
    "events": "事件",
    "codex": "图鉴",
    "eventsTitle": "事件",
    "codexTitle": "图鉴",
    "state": "状态",
    "world": "世界观",
    "lore": "知识库",
    "activeModels": "活跃模型",
    "noGameState": "暂无游戏状态，故事推进后将在此显示。",
    "worldState": "世界状态",
    "characters": "角色",
    "quests": "任务",
    "inventory": "背包",
    "combat": "战斗",
    "memoryArchive": "记忆档案",
    "noCharacters": "角色信息将在创建角色后显示。",
    "noQuests": "暂无任务。",
    "statePatchesTitle": "状态变更",
    "noStatePatches": "暂无状态变更。",
    "recordsTitle": "记录",
    "noRecords": "随着故事推进，长期记录将在此显示。",
    "npcInitComplete": "NPC 初始化完成",
    "npcInitCount": "已创建 {{count}} 个 NPC",
    "slotDefault": "默认",
    "slotFast": "快速",
    "slotBalance": "均衡",
    "slotImage": "图像",
    "emptyInit": "正在准备冒险...",
    "beginAdventure": "开始冒险",
    "beginAdventureHint": "准备好了吗？点击下方按钮，让故事开始。",
    "emptyCharCreate": "等待角色创建完成...",
    "emptyPlaying": "冒险等待着你，输入消息开始吧。",
    "emptyEnded": "本次会话已结束。",
    "noModelsConfigured": "未配置模型",
    "preparation": "会话配置",
    "history": "历史会话",
    "worldLore": "世界文档",
    "worldTab": "世界",
    "worldDocumentEmpty": "暂无世界文档",
    "database": "数据库",
    "dbTables": "张表",
    "dbVolumes": "共 {{count}} 卷",
    "dbCoreSection": "核心",
    "dbPluginsSection": "插件",
    "dbLoadError": "加载失败",
    "dbEmpty": "尚无任何状态表。插件产生数据后会在这里显示。",
    "refresh": "刷新",
    "retry": "重试",
    "resetLore": "重置为原始",
    "configureKeys": "配置 API 密钥和预设",
    "startGame": "开始游戏",
    "selectWorld": "选择一个世界",
    "worldSelectDesc": "每一个世界都自成一体 —— 独立的基调、角色与规则。挑一个，从这里开始。",
    "loadingWorlds": "正在加载世界...",
    "worldsHeaderEyebrow": "{{count}} 个世界 可选",
    "worldsHeaderEyebrow_one": "{{count}} 个世界 可选",
    "aiCreateTeaser": "用一句概念，让 AI 起一个全新世界。",
    "aiCreateAction": "描述你的想法",
    "enter": "进入",
    "worldsEmptyTitle": "还没有可用的世界",
    "worldsEmptyDesc": "让 AI 生成一个新世界,或把世界包放入 worlds/ 目录。",
    "worldsEmptyViewExamples": "查看示例",
    "pluginsLoaded": "{{count}} 个插件已加载",
    "noPluginsLoaded": "未加载插件",
    "resume": "继续",
    "modified": "已修改",
    "priority": "优先级",
    "reset": "重置",
    "noRuntimes": "无运行时",
    "loreModified": "已修改（{{count}} 字符）",
    "loreOriginal": "原始（{{count}} 字符）",
    "lorePlaceholder": "用 Markdown 输入世界传说...",
    "switchSession": "切换会话",
    "currentWorld": "当前会话",
    "sessions": "会话",
    "noOtherSessions": "没有其他会话",
    "commands": "命令",
    "startingUp": "正在启动...",
    "retryFrom": "从 {{label}} 重试",
    "executionSummary": "执行 · {{count}} 个运行时",
    "executionFlow": "执行流程",
    "executionFlowHint": "回合内的执行顺序 — 优先级越低越先跑。",
    "executionFlowTitle": "插件按优先级顺序每回合执行。Pre-Turn 与 After-Turn 分列叙事前后。",
    "retryAll": "重试全部",
    "retryAllTitle": "重新执行所有",
    "statusLlm": "调用模型",
    "statusPreparing": "准备中",
    "breadcrumbWorldSelect": "选择世界",
    "breadcrumbPrep": "配置",
    "breadcrumbGame": "游戏中",
    "runtimePersona": "角色设定",
    "runtimeNarrator": "叙事生成",
    "runtimeInitWizard": "角色创建",
    "runtimeGuide": "引导系统",
    "runtimeCharTracker": "角色追踪",
    "runtimeBindings": "模型绑定",
    "needsConfig": "待配置",
    "allBound": "已全部绑定",
    "unboundRuntimes": "存在未绑定",
    "noCompatibleSlot": "无兼容插槽",
    "selectSlot": "-- 选择插槽 --",
    "autoAssign": "自动分配",
    "deleteConfirmTitle": "删除会话",
    "deleteConfirmDesc": "此操作将永久删除该会话及其所有数据（消息、游戏状态等），无法撤销。",
    "slotsConfigured": "{{count}} 个插槽已配置",
    "slotsUnconfigured": "未配置",
    "bindingsAllBound": "全部已绑定",
    "bindingsPartial": "部分未绑定",
    "historySummary": "{{count}} 个历史存档",
    "loreSummary": "{{count}} 字符",
    "loreSummaryHint": "{{count}} 字符 · 点此编辑世界观文档",
    "pluginsSummary": "{{pluginCount}} 个插件，共 {{runtimeCount}} 个 runtime",
    "pluginsSelected": "个插件已选择",
    "searchPlugins": "搜索插件、标签、能力",
    "pluginGroups": {
      "core": "核心",
      "setup": "开局准备",
      "traditional": "传统故事",
      "dialogue": "对话模式",
      "characters": "角色",
      "memory": "记忆与检索",
      "guidance": "引导",
      "utility": "工具"
    },
    "pluginPacks": {
      "traditional-story": {
        "label": "传统故事模式",
        "description": "主叙事器、行动建议、图鉴和关系图，适合长篇探索。"
      },
      "dialogue-mode": {
        "label": "对话模式",
        "description": "对话优先叙事、场景演员、快速短句和角色资料。"
      },
      "low-cost": {
        "label": "低成本",
        "description": "保留核心流程和函数型插件，减少下游 LLM 调用。"
      }
    },
    "recommendationReasons": {
      "requiredByWorld": "世界必需",
      "packOptional": "组合包可选",
      "recommendedByWorld": "世界推荐"
    },
    "exportDimensions": "导出维度",
    "importDimensions": "导入维度",
    "dimensionsImported": "导入成功",
    "reasonConnectionClosed": "连接结束但后端未上报结束",
    "selectionsReady": "已选择 {{count}} 项",
    "confirmSelections": "发送选择",
    "viewParsed": "解析",
    "viewDetailed": "详情",
    "viewRaw": "原始",
    "viewParsedAria": "解析视图",
    "viewDetailedAria": "详情视图",
    "viewRawAria": "原始视图",
    "stateStreaming": "生成中",
    "statePlaying": "进行中",
    "toggleStoryPanel": "切换故事侧栏",
    "debugTraces": "调试追踪",
    "toggleContextPanel": "切换状态与世界上下文",
    "removeDraft": "移除该选择",
    "composerBlockedPlaceholder": "请先完成当前交互",
    "composerBlockedHint": "请先提交或移除当前插件交互，再继续发送消息。",
    "suspensionsBadge": "{{count}} 个等待中",
    "suspensionsTitle": "挂起的执行",
    "suspensionsDescription": "插件暂停等待外部数据，在下方输入 resume 数据以继续执行。",
    "suspensionsEmpty": "没有等待中的执行。",
    "suspensionResumeLabel": "继续执行",
    "suspensionCancelLabel": "放弃",
    "suspensionResumePlaceholder": "resume 数据（JSON 或文本）",
    "suspensionAgoSeconds": "{{count}} 秒前",
    "suspensionAgoMinutes": "{{count}} 分钟前",
    "suspensionAgoHours": "{{count}} 小时前",
    "suspensionAgoDays": "{{count}} 天前",
    "memoryStoreWarning": "重启后数据将丢失",
    "worldDataPreflight": {
      "title": "世界数据",
      "loading": "检查中",
      "ready": "将导入 {{count}} 项",
      "empty": "无导入计划",
      "emptyDetail": "此世界没有 worldData 导入计划。",
      "warnings": "{{count}} 个警告",
      "errors": "{{count}} 个错误",
      "failed": "检查失败",
      "retry": "重试",
      "moreTargets": "另有 {{count}} 项"
    },
    "dbSchema": "结构",
    "dbValues": "数据",
    "provider": "提供方",
    "store": "存储",
    "dbPluginData": "插件数据",
    "dbValueEmpty": "（空）",
    "worldStorage": "世界存储",
    "system": "系统",
    "player": "玩家",
    "assistant": "助手",
    "storage": {
      "browserIndexedDb": "浏览器 IndexedDB",
      "serverFile": "服务端文件",
      "serverBackend": "服务端 {{backend}}",
      "builtIn": "内置",
      "serverStore": "服务端存储",
      "server": "服务端"
    }
  },
  "blocks": {
    "actionPlaceholder": "或输入自定义行动...",
    "actionGo": "执行",
    "actions": "行动"
  },
  "world": {
    "dimensions": "世界维度",
    "viewDetails": "查看详情",
    "backToList": "返回列表",
    "noData": "暂无数据",
    "noStructuredData": "暂无结构化数据",
    "dimensionsEmpty": "尚未生成世界维度数据。",
    "geography": "地理",
    "geographyOverview": "地理概述",
    "regions": "区域",
    "climate": "气候",
    "landmarks": "地标",
    "factions": "势力与组织",
    "factionType": "类型",
    "influence": "影响力",
    "leader": "首领",
    "headquarters": "据点",
    "relations": "关系",
    "powerSystem": "力量体系",
    "powerType": "体系类型",
    "rules": "规则",
    "tiers": "等级",
    "history": "历史",
    "era": "纪元",
    "economy": "经济",
    "currencies": "货币",
    "resources": "资源",
    "tradeNotes": "贸易备注",
    "socialStructure": "社会结构",
    "classes": "阶层",
    "races": "种族",
    "tone": "基调与风格",
    "genres": "类型",
    "contentRating": "内容分级",
    "narrativeStyle": "叙事风格",
    "themes": "主题",
    "mechanics": "游戏机制",
    "combatStyle": "战斗方式",
    "skillSystem": "技能体系",
    "difficulty": "难度",
    "customRules": "自定义规则",
    "startingConditions": "起始条件",
    "openingScenario": "开局场景",
    "playerConstraints": "玩家约束",
    "startingLocation": "起始位置",
    "startingResources": "起始资源",
    "influenceMajor": "主要",
    "influenceMinor": "次要",
    "ratingAllAges": "全年龄",
    "ratingTeen": "青少年",
    "ratingMature": "成人",
    "combatTurnBased": "回合制",
    "combatRealTime": "即时制",
    "combatNarrative": "叙事式",
    "combatNone": "无战斗",
    "difficultyEasy": "简单",
    "difficultyNormal": "普通",
    "difficultyHard": "困难",
    "difficultyAdaptive": "自适应",
    "factionTypePolitical": "政治",
    "factionTypeGuild": "公会",
    "factionTypeCorporate": "企业",
    "factionTypeReligious": "宗教",
    "factionTypeCriminal": "犯罪",
    "factionTypeMilitary": "军事",
    "factionTypeOther": "其他",
    "relationAllied": "同盟",
    "relationNeutral": "中立",
    "relationHostile": "敌对",
    "relationVassal": "附庸",
    "name": "名称",
    "description": "描述",
    "year": "年份",
    "significance": "重要性",
    "significanceMajor": "重大",
    "significanceMinor": "次要",
    "symbol": "符号",
    "rank": "等级",
    "notes": "备注",
    "key": "键",
    "value": "值",
    "add": "添加",
    "remove": "移除",
    "addRegion": "添加区域",
    "addLandmark": "添加地标",
    "addFaction": "添加势力",
    "addRule": "添加规则",
    "addTier": "添加等级",
    "addEvent": "添加事件",
    "addCurrency": "添加货币",
    "addResource": "添加资源",
    "addClass": "添加阶层",
    "addRace": "添加种族",
    "addCustomRule": "添加自定义规则",
    "addConstraint": "添加约束",
    "addResource_kv": "添加资源项",
    "saveFailed": "保存失败",
    "powerTypeMagic": "魔法",
    "powerTypeTechnology": "科技",
    "powerTypeCultivation": "修炼",
    "powerTypePsychic": "灵能",
    "powerTypeHybrid": "混合",
    "powerTypeOther": "其他",
    "aiCreate": "AI 创建世界",
    "aiCreateTitle": "描述你想要的世界。",
    "aiCreateDesc": "一句话就够。模型会自动写完背景设定、维度模式与初始状态。",
    "aiPromptLabel": "世界概念",
    "aiPromptPlaceholder": "描述你想要的世界，例如：一个蒸汽朋克风格的空中城市...",
    "aiPromptPlaceholderFull": "描述你想要的世界，例如：一个蒸汽朋克风格的空中城市，居民依靠飞艇在云层间的岛屿间贸易...",
    "aiPromptExamples": [
      "一个蒸汽朋克风格的空中城市，居民依靠飞艇在云层间的岛屿间贸易",
      "赛博朋克末世，人类与AI共存的地下城市，充满霓虹灯和黑客文化",
      "东方仙侠世界，修仙者在浮空山脉间修炼，妖魔横行",
      "后启示录废土，幸存者在辐射荒原中建立部落"
    ],
    "aiExamples": "试试这些灵感：",
    "aiGenerate": "生成世界",
    "aiRetry": "重试",
    "aiGenerating": "AI 正在构建世界...",
    "aiValidating": "验证世界数据...",
    "aiSaving": "保存世界...",
    "aiDone": "世界创建完成！",
    "aiError": "生成失败",
    "delete": "删除世界",
    "deleteConfirmTitle": "删除世界？",
    "deleteConfirmDesc": "将永久删除「{{name}}」，此操作无法撤销。",
    "deleteConfirmAction": "删除"
  },
  "settings": {
    "storageMode": "数据存储",
    "storageLocal": "本地",
    "storageRemote": "远程",
    "configuredDesc": "llm.toml 已配置。管理 API 密钥和高级参数。",
    "unconfiguredDesc": "配置模型插槽、API 密钥和高级参数。所有数据仅存储在浏览器本地。",
    "configuredByToml": "基础 slot 来自 llm.toml。前端选择的 preset 覆盖会保存在当前客户端。",
    "slotPingMovedHint": "连通性测试已统一到 API 密钥面板（或活跃模型列表）。",
    "language": "界面语言",
    "langZh": "简体中文",
    "langEn": "English",
    "appearance": "外观风格",
    "appearanceModern": "Modern · 现代",
    "appearancePaper": "Paper · 纸本",
    "themeLibraryTitle": "主题库",
    "themeLibraryDesc": "导入自定义主题包，自动保存在本地，并在外观选择器里长期复用。",
    "themeImportButton": "导入主题",
    "themeImportHint": "主题 CSS 需要以 html[data-theme=\"your-theme\"] 为选择器，并覆盖语义 token。",
    "themeImported": "已导入 {{name}}",
    "themeDeleted": "主题已移除",
    "themeDeleteFailed": "移除主题失败",
    "themeImportInvalid": "主题包无效",
    "themeSourceBuiltin": "内置",
    "themeSourceCustom": "自定义",
    "themeActive": "当前",
    "themeApply": "应用",
    "themeSchemeLabel": "颜色模式",
    "themeScheme": {
      "light": "亮色",
      "dark": "暗色"
    },
    "modelDefault": "默认模型",
    "modelFast": "快速模型",
    "modelBalance": "均衡模型",
    "modelImage": "图像模型",
    "descDefault": "主叙事、复杂推理",
    "descFast": "插件默认、轻量判断",
    "descBalance": "裁判插件、复杂逻辑",
    "descImage": "图像生成（可选）",
    "collapseCapability": "收起",
    "editCapability": "编辑能力",
    "resetOverride": "重置",
    "overrideApplied": "已覆盖",
    "modelDatabase": "模型数据库",
    "updateFromGitHub": "从 GitHub 更新",
    "modelCount": "{{count}} 个模型 (LiteLLM)",
    "updatedAt": "更新于: {{date}}",
    "dbUnavailable": "数据库不可用",
    "selectPreset": "请选择预设",
    "noPresetFallback": "未配置（回退到 Heavy）",
    "keysConfiguredDesc": "填写 llm.toml 中配置的 provider 对应的 API 密钥。也可通过 .env.llm 文件配置。",
    "keysLocalDesc": "密钥仅存储在浏览器 localStorage 中，不会发送至服务器存储。",
    "keyConfigured": "已配置",
    "keyUnconfigured": "未配置",
    "pingTest": "连通测试",
    "noProvidersTitle": "尚未注册任何提供商",
    "noProvidersDesktopDesc": "打开本机 llm.toml,添加至少一个 [covel.<slot>] 区块并重新打开此面板。",
    "noProvidersWebDesc": "网页版读取服务端 llm.toml 的插槽定义。请联系管理员配置,或运行桌面版以在本地直接编辑。",
    "openLlmToml": "打开 llm.toml",
    "advancedDesc": "留空则使用模型提供商默认值。",
    "selectSlot": "选择插槽",
    "hasApiKey": "有密钥",
    "noCustomPresets": "暂无自定义预设",
    "addPreset": "添加预设",
    "add": "添加",
    "export": "导出",
    "import": "导入",
    "namePlaceholder": "名称",
    "baseUrlPlaceholder": "Base URL（可选）",
    "inputModalities": "输入模态（模型接受什么）",
    "outputModalities": "输出模态（模型产出什么）",
    "featureTags": "功能标签",
    "pricing": "价格（USD / 百万 tokens）",
    "pricingInput": "输入",
    "pricingOutput": "输出",
    "modalInText": "文本输入",
    "modalInImage": "图片输入",
    "modalInAudio": "音频输入",
    "modalInVideo": "视频输入",
    "modalInFile": "文件输入",
    "modalOutText": "文本输出",
    "modalOutImage": "图片生成",
    "modalOutAudio": "语音合成",
    "modalOutEmbedding": "Embedding",
    "featFunctionCalling": "工具调用",
    "featStructuredOutput": "结构化输出",
    "featStreaming": "流式",
    "featReasoning": "推理",
    "featVision": "视觉",
    "featPromptCaching": "缓存",
    "featWebSearch": "搜索",
    "featComputerUse": "电脑使用",
    "title": "设置",
    "searchPlaceholder": "搜索设置...",
    "noResults": "没有匹配 \"{{query}}\" 的设置",
    "noGroupSelected": "未选择分组",
    "groupEmpty": "当前分组暂无可调项",
    "groupGeneral": "通用",
    "groupLlm": "模型",
    "groupPlugins": "插件",
    "groupDesktop": "桌面",
    "groupData": "数据",
    "llmSlots": "Slots",
    "llmKeys": "API 密钥",
    "llmPresets": "自定义 Preset",
    "llmAdvanced": "高级参数",
    "customWidgetUnavailable": "这项设置使用专属面板，请在对应的 LLM / Plugin 分区中编辑。",
    "show": "显示",
    "hide": "隐藏",
    "exportHeader": "导出",
    "exportDownload": "导出设置",
    "exportIncludeKeys": "包含 API 密钥（敏感）",
    "exported": "已导出",
    "importHeader": "导入",
    "importChoose": "选择文件...",
    "importInvalid": "文件无效",
    "imported": "已导入",
    "importPreview": "预览 — 选择要导入的项",
    "importKeysCount": "导入 {{count}} 个 API 密钥",
    "importApply": "应用（{{count}}）",
    "resetHeader": "重置",
    "resetAll": "重置所有设置",
    "resetAllConfirm": "将所有设置重置为默认？此操作无法撤销。",
    "reset": "已重置",
    "packages": {
      "navLabel": "导入包",
      "title": "导入包",
      "description": "拖拽 .zip 安装世界包 / 插件包；新插件需要重启服务生效。",
      "pluginLabel": "插件包",
      "pluginHint": ".zip，需包含 PLUGIN.md（或 runtimes/<sub>/PLUGIN.md）+ package.json",
      "worldLabel": "世界包",
      "worldHint": ".zip，需包含 world.yaml 与 WORLD.md",
      "chooseFile": "选择文件",
      "uploading": "上传中…",
      "uploadFailed": "安装失败",
      "invalidFileType": "请选择 .zip 文件",
      "installed": "已安装 {{id}}",
      "installedRestart": "已安装 {{id}}（需重启服务生效）",
      "restartHint": "新插件已写入用户插件目录。请重启服务端 / 桌面应用以加载。",
      "restartNow": "立即重启",
      "reloadFailed": "重新加载失败"
    },
    "desktopDataLocations": "数据位置",
    "desktopDataConfig": "配置",
    "desktopDataData": "数据",
    "desktopDataDb": "数据库",
    "desktopDataLogs": "日志",
    "desktopOpenConfig": "打开配置目录 (~/.covel)",
    "desktopOpenData": "打开数据目录",
    "desktopOpenLogs": "打开日志目录",
    "desktopChangeData": "更改数据位置…",
    "desktopEditFiles": "编辑配置文件",
    "desktopEditFilesHint": "在默认编辑器中打开。保存后请重启 Covel 使改动生效。",
    "desktopEditLlm": "编辑 llm.toml",
    "desktopEditKeys": "编辑 keys.env",
    "desktopServer": "后端服务器",
    "desktopServerPort": "本地 API 服务器运行于端口 ",
    "desktopRestart": "重启服务器",
    "desktopApplyConfigChanges": "应用配置变更",
    "desktopRestartElectronOnly": "此操作仅在 Electron 桌面端可用",
    "desktopRestartHint": "重启本地后端并刷新界面：会重新加载插件代码 / 提示词 / UI、llm.toml 与 keys.env。修改这些文件或调试插件后点此即可。正在进行的回合会断开。",
    "desktopRestartWebHint": "当前非桌面端运行。请刷新浏览器手动重载。",
    "desktopRefresh": "刷新信息",
    "desktopTutorial": "教程",
    "desktopResetOnboardingHint": "下次启动 Covel 时重新进入引导。",
    "desktopResetOnboarding": "重置引导",
    "desktopAbout": "关于",
    "desktopVersion": "版本",
    "desktopPlatform": "平台",
    "desktopMode": "模式",
    "desktopModeDev": "开发",
    "desktopModeProd": "生产",
    "desktopKeysNote": "API 密钥存储于 {{path}}，以明文保存。使用操作系统权限保护该文件；应用写入时会设为 mode 600。",
    "presetProviderPlaceholder": "Provider（如 openai）",
    "presetModelPlaceholder": "Model ID（如 deepseek-chat）",
    "slotChainSummary": "插件 → Slot → 预设 → API 密钥。更换预设即可切换模型；密钥在「Keys」标签管理。",
    "chainRuntime": "运行时",
    "chainSlot": "Slot",
    "chainPreset": "预设",
    "chainKey": "API 密钥",
    "desktopLlmMissingTitle": "尚未配置任何 LLM slot",
    "desktopLlmMissingHint": "点击下方按钮打开 ~/.covel/llm.toml，至少添加一个 [covel.<slot>] 片段。",
    "autoBindSlots": "自动绑定",
    "runtimeSlotsDiscovered": "运行时声明的 Slot",
    "temperature": "温度",
    "topP": "Top P",
    "maxOutputTokens": "最大输出 Tokens",
    "numberPlaceholder": "例如 4096",
    "frequencyPenalty": "频率惩罚",
    "presencePenalty": "存在惩罚",
    "resetToDefaults": "重置为默认值",
    "apiKeyPlaceholder": "API 密钥 (sk-...)",
    "required": "必需",
    "default": "默认",
    "runtime": "运行时",
    "frontendOverlay": "前端覆盖",
    "fallbackSlot": "回退: {{slot}}",
    "useBaseSlotConfig": "使用基础 slot 配置",
    "builtInPresets": "内置",
    "customPresets": "自定义",
    "providerLabel": "提供商",
    "modelLabel": "模型",
    "presetCustom": "Preset: 自定义",
    "presetOverride": "Preset: 覆盖",
    "protocolLabel": "协议: {{protocol}}",
    "contextWindow": "上下文窗口",
    "contextWindowShort": "ctx",
    "maxOutputTokensShort": "out",
    "pricingInputOutputTitle": "价格（输入/输出，每百万 tokens）",
    "pricePerImage": "单张图片价格",
    "contextWindowTokens": "上下文窗口 (tokens)",
    "desktopRestartFailed": "重启失败",
    "desktopDataDirPrompt": "请输入新数据目录的绝对路径:\n\n示例:\n  /Users/me/Documents/covel\n  /Volumes/External/covel-data\n\n更改此项不会移动现有数据，新位置会从空目录开始。",
    "desktopDataRootSet": "数据根目录已设为 {{path}}。请重启应用以生效。",
    "desktopChangeDataRootFailed": "无法更改数据根目录",
    "desktopOnboardingResetToast": "下次启动时将显示引导流程",
    "ping": "测试",
    "pingTooltip": "测试连接和延迟",
    "pingTtfb": "{{ms}}ms TTFB",
    "pingErrorTooltip": "错误: {{error}}",
    "pingResolvedVia": "通过 {{resolvedVia}} 解析",
    "pingSlotFallbackTitle": "Slot 回退到 {{resolvedVia}}；请求的 slot 尚未配置。",
    "pingFailed": "失败"
  },
  "plugin": {
    "runtimes": "运行时",
    "tools": "工具",
    "requires": "依赖",
    "triggerAlways": "每回合",
    "triggerInterval": "间隔",
    "triggerManual": "手动",
    "triggerEvent": "事件触发",
    "locked": "核心插件 — 不可关闭",
    "core": "核心",
    "enable": "开启插件",
    "disable": "关闭插件",
    "emptyPlaceholder": "{{label}} 暂无数据，等待游戏推进……",
    "useDefault": "使用默认",
    "useDefaultWith": "使用默认（{{value}}）",
    "modelBindingAria": "该插件运行时将使用的模型 Slot，除非需要特别覆盖否则保持默认即可。",
    "modelBindingSource": "模型绑定 — 在「会话准备」中修改",
    "modelBindingFallback": "模型绑定：前往「会话准备」查看",
    "modelBinding": "模型",
    "modelOverrideHint": "已覆盖 — 下一回合将使用该模型",
    "defaultSlot": "默认",
    "autoSlot": "自动（系统默认）",
    "config": "配置",
    "loadError": "加载失败",
    "unknownError": "未知错误",
    "slotsMissing": "请在 llm.toml 中配置模型 Slot 后再覆盖",
    "useRuntimeDefault": "运行时默认: {{slot}}",
    "useRuntimeDefaultWith": "运行时默认: {{slot}} ({{value}})",
    "providerSlot": "提供方 slot",
    "providerSlotMissingTitle": "请在 llm.toml 添加 [covel.{{slot}}]，或在 设置 > 插件 中修改 {{plugin}}.modelPresetId。",
    "providerSlotMissingDetail": "请在 llm.toml 配置 [covel.{{slot}}]，或在 设置 > 插件 > {{plugin}} 中修改 modelPresetId。",
    "providerSlotSettingDetail": "来自插件设置 modelPresetId；可在 设置 > 插件 > {{plugin}} 修改",
    "slotMissingTitle": "请在 llm.toml 添加 [covel.{{slot}}]",
    "slotMissingShort": "缺少 [covel.{{slot}}]",
    "runtimeDefaultSummary": "运行时默认 · {{slot}}",
    "runtimeDefaultSummaryWithModel": "运行时默认 · {{slot}} · {{model}}",
    "runtimeDefaultMissing": "运行时默认 · {{slot}} (缺少配置)",
    "invalidPanelSpec": "面板规范无效",
    "source": {
      "builtin": {
        "label": "核心",
        "tooltip": "Covel 框架内置的核心插件"
      },
      "official": {
        "label": "官方",
        "tooltip": "Covel 官方收录的插件"
      },
      "community": {
        "label": "第三方",
        "tooltip": "安装在 ~/.covel/plugins 下的第三方插件"
      }
    },
    "approval": {
      "title": "授权插件操作",
      "confirmMessage": "插件 {{pluginId}} 请求执行 {{action}}。是否在本次会话内授权所有同类调用？",
      "allow": "授权",
      "deny": "拒绝",
      "denied": "已拒绝 {{action}}",
      "submitFailed": "审批提交失败：{{error}}",
      "unexpectedRequired": "授权后仍返回 approval-required，请检查审批后端"
    },
    "invokeRuntime": {
      "submitted": "已提交 {{count}} 个后台任务：{{ids}}，等待返回…",
      "noFollowerEvents": "{{runtimeId}} 已完成，但未触发任何后台任务（缺少匹配的 events[]）。请检查模型是否输出了正确的 JSON 包络。",
      "failedJobs": "{{count}} 个后台任务失败。请在任务面板查看详情。"
    },
    "jobs": {
      "imagePromptGenerating": "正在生成图像 Prompt...",
      "imagePromptQueued": "图像 Prompt 已生成，图像任务已入队。"
    },
    "runtimeErrors": {
      "title": "最近的插件错误",
      "dismiss": "关闭插件错误"
    }
  },
  "pluginJob": {
    "completed": "{{target}} 已完成（耗时 {{duration}}）",
    "failed": "{{target}} 失败：{{error}}",
    "unknownError": "未知错误"
  },
  "coreImage": {
    "generateButton": "生成插画",
    "panel": {
      "noImagesYet": "还没有生成过图片。",
      "galleryHint": "生成结果（最新在前）。Prompt 请在「任务」页查看。",
      "viewLarge": "查看大图",
      "noJobs": "当前没有图像生成任务。",
      "jobsHint": "Prompt 与任务状态。点击任务 ID 展开详情。",
      "promptHeader": "Prompt",
      "promptCopied": "Prompt 已复制",
      "copy": "复制",
      "linkedImages": "此 Prompt 的图片 · {{count}}",
      "rerunWithPrompt": "按此 Prompt 重抽（保留原图）",
      "rerunSubmitted": "已提交重抽任务：{{id}}",
      "rerunSubmittedSimple": "已提交重抽任务",
      "viewLargeAction": "大图",
      "download": "下载",
      "downloadImage": "下载图片",
      "rerun": "重抽",
      "authorizeConfirm": "是否在本会话内授权 {{runtimeId}}？"
    },
    "settings": {
      "title": "插画生成设置",
      "style": "画面风格",
      "multiPanel": "多格组图",
      "includeText": "图中含文字",
      "promptLanguage": "Prompt 语言"
    },
    "style": {
      "cinematic": "电影感",
      "anime": "动漫风格",
      "oil-painting": "油画风格",
      "watercolor": "水彩风格",
      "pixel-art": "像素艺术",
      "photoreal": "超写实摄影"
    },
    "promptLang": {
      "auto": "自动（跟随语言设置）",
      "zh": "中文（推荐 DashScope）",
      "en": "英文（推荐 GPT/Gemini）"
    },
    "generationFailed": "图像生成失败"
  },
  "onboarding": {
    "welcome": "欢迎来到 Covel",
    "tagline": "AI 驱动的 RPG 引擎。用大语言模型构建交互式故事。",
    "language": "语言",
    "getStarted": "开始使用",
    "configureProvider": "配置 AI 提供商",
    "providerDesc": "Covel 需要一个 LLM API 密钥来生成故事。选择提供商并粘贴你的密钥。",
    "selectProvider": "提供商",
    "customProvider": "自定义（OpenAI 兼容）",
    "providerName": "提供商名称",
    "modelId": "模型 ID",
    "modelIdHint": "可以从检测到的模型里选，也可以直接输入模型 ID。",
    "apiKey": "API 密钥",
    "testConnection": "测试连接",
    "narratorModel": "叙事模型",
    "narratorModelDesc": "驱动主线故事的核心模型。选择一个提供商并粘贴密钥。",
    "pluginModel": "插件模型",
    "pluginModelDesc": "插件（角色追踪、世界生成、知识库等）可以与叙事模型共用，也可以使用更便宜的模型。",
    "pluginSame": "与叙事模型相同",
    "pluginDifferent": "使用不同的模型",
    "pluginDifferentHint": "为插件单独指定一个更快/更便宜的提供商。",
    "skip": "稍后配置",
    "skipTitle": "可以稍后在设置里配置。",
    "disabledHint": "请填写 API 密钥和模型 ID 后继续,或点「稍后配置」跳过。",
    "localeZh": "切换到中文",
    "localeEn": "切换到英文",
    "back": "上一步",
    "continue": "继续",
    "ready": "一切就绪",
    "readyDesc": "选择一个世界开始你的冒险。你可以随时在顶部栏调整设置。",
    "step1Label": "选择世界",
    "step1Desc": "从内置世界中选择，或创建你自己的。",
    "step2Label": "开始冒险",
    "step2Desc": "AI 叙事员将围绕你构建故事。",
    "enter": "进入 Covel",
    "baseUrl": "Base URL"
  },
  "character": {
    "noCharacters": "角色信息将在创建角色后显示。",
    "noAttributes": "无属性数据",
    "defaultName": "角色 {{index}}",
    "categories": {
      "stats": "数值",
      "bio": "基本",
      "abilities": "能力",
      "equipment": "装备",
      "social": "社交",
      "custom": "其他"
    },
    "type": {
      "player": "玩家",
      "npc": "NPC",
      "companion": "同伴",
      "ally": "盟友",
      "enemy": "敌人"
    }
  },
  "lorebook": {
    "title": "知识库",
    "refresh": "刷新",
    "deleteConfirm": "删除词条 \"{{id}}\"？此操作无法撤销。",
    "noEntries": "尚无 session lorebook 词条",
    "enable": "启用",
    "disable": "禁用",
    "delete": "删除",
    "expand": "展开",
    "collapse": "收起"
  },
  "graph": {
    "empty": "关系图当前为空——等待 NPC 出现。",
    "clearSelection": "清除选中",
    "loading": "加载关系图……",
    "stats": "{{nodes}} 个节点 · {{links}} 条关系"
  },
  "form": {
    "defaultTitle": "表单",
    "submit": "提交",
    "submitted": "已提交",
    "submittedHint": "已选择",
    "selectPrefix": "选择{{label}}",
    "selectPlaceholder": "请选择..."
  },
  "interaction": {
    "playerSelected": "你的选择：",
    "playerLabel": "你"
  },
  "toast": {
    "copy": "复制详情",
    "dismiss": "关闭",
    "errorTitle": "出错了",
    "networkError": "网络异常 — 请检查网络连接",
    "bootFailed": "会话初始化失败",
    "sendMessageFailed": "消息发送失败"
  },
  "error": {
    "plugin": {
      "loadFailed": "插件加载失败"
    },
    "boundary": {
      "messageRenderingError": "消息渲染失败",
      "copyError": "复制错误",
      "unexpectedError": "意外错误",
      "appTitle": "渲染此视图时发生错误。",
      "appDescription": "请尝试下方操作。如果问题仍然存在，请复制错误并提交 issue。",
      "tryAgain": "重试",
      "reloadApp": "重新加载应用"
    }
  },
  "common": {
    "loading": "加载中...",
    "error": "出错了",
    "save": "保存",
    "cancel": "取消",
    "confirm": "确认",
    "close": "关闭",
    "delete": "删除",
    "deleting": "删除中...",
    "edit": "编辑",
    "create": "创建",
    "search": "搜索",
    "execute": "执行",
    "newSession": "新建会话",
    "refresh": "刷新",
    "expand": "展开",
    "collapse": "收起",
    "enable": "启用",
    "disable": "禁用",
    "confirmDelete": "确认删除",
    "noData": "暂无数据",
    "noMatch": "没有匹配的条目",
    "yes": "是",
    "no": "否",
    "toggleTheme": "切换主题",
    "copy": "复制",
    "new": "新增",
    "newUpper": "新增",
    "retry": "重试"
  },
  "debugger": {
    "title": "追踪检查器",
    "toSession": "会话",
    "live": "实时",
    "auto": "自动",
    "refresh": "刷新",
    "sessions": "会话列表",
    "noSessions": "未找到会话",
    "traces": "追踪",
    "sessionData": "会话数据",
    "all": "全部",
    "selectSessionToInspect": "选择一个会话以查看追踪",
    "noTraceEvents": "尚未记录追踪事件",
    "eventsWillAppear": "回合执行后事件将在此处显示",
    "turn": "回合 {{count}}",
    "pluginInvocation": "插件调用",
    "turn_one": "回合 {{count}}",
    "nRuntimes": "{{count}} 个运行时",
    "nRuntimes_one": "{{count}} 个运行时",
    "error": "错误",
    "running": "运行中",
    "runtimes": "运行时",
    "flowEvents": "流程事件",
    "noEventsMatchingFilter": "没有匹配过滤器的事件",
    "selectSession": "选择一个会话",
    "loadingSessionData": "正在加载会话数据…",
    "dataSection": {
      "session": "会话",
      "characters": "角色",
      "messages": "消息",
      "gameState": "游戏状态",
      "executionSteps": "执行步骤",
      "frameworkCapabilities": "框架能力",
      "pluginContracts": "插件契约",
      "pluginDataIndex": "插件数据索引"
    },
    "noCharactersCreated": "未创建角色",
    "noMessages": "暂无消息",
    "noStateData": "暂无状态数据",
    "noExecutionTraces": "暂无执行追踪",
    "noFrameworkCapabilities": "暂无框架能力快照",
    "noPluginContracts": "暂无插件契约",
    "noPluginDataIndex": "暂无插件数据索引",
    "eventDetail": "事件详情",
    "close": "关闭",
    "promptMessages": "提示消息 ({{count}})",
    "inputTokens": "输入",
    "outputTokens": "输出",
    "responseText": "响应文本",
    "toolCalls": "工具调用 ({{count}})",
    "toolResult": "工具结果",
    "toolInput": "工具输入",
    "blockType": "块",
    "rawPayload": "原始载荷",
    "category": {
      "flow": "流程",
      "runtime": "运行时",
      "llm": "LLM",
      "tool": "工具",
      "message": "消息",
      "block": "块",
      "state": "状态"
    },
    "view": "视图",
    "session": "会话",
    "tokenCount": "{{count}} tokens",
    "discovery": {
      "manifest": "manifest",
      "triggers": "{{count}} 个触发器",
      "outputs": "{{count}} 个输出",
      "noSlots": "无 slot",
      "writes": "{{count}} 个写入",
      "reads": "{{count}} 个读取",
      "sources": "{{count}} 个来源",
      "mergeModes": "{{count}} 个合并模式",
      "targets": "{{count}} 个目标",
      "runtimeCount": "{{count}} 个运行时",
      "capabilities": "能力",
      "tools": "工具",
      "extension": "扩展",
      "rpc": "{{count}} 个 RPC",
      "ui": "{{count}} 个 UI",
      "schemas": "{{count}} 个 schema",
      "namespaces": "{{count}} 个命名空间",
      "keys": "{{count}} 个键",
      "empty": "空"
    }
  },
  "reload": {
    "reloading": "正在重启服务…",
    "reloadingServer": "正在重启后端…",
    "reloadingHint": "通常耗时几秒。"
  },
  "media": {
    "audio": "音频",
    "audioUnavailable": "音频不可用",
    "audioUnavailableAria": "{{label}} 不可用",
    "play": "播放",
    "pause": "暂停",
    "seek": "拖动进度",
    "playbackSpeed": "播放速度",
    "downloadAudio": "下载音频"
  },
  "branchReply": {
    "replyCandidates": "回复候选",
    "draft": "草稿",
    "send": "发送",
    "accept": "采纳",
    "regenerate": "重新生成",
    "jobSubmitted": "已提交 branch-reply 任务: {{jobId}}",
    "approvalRequired": "Branch reply 操作需要授权。",
    "actionFailed": "Branch reply 操作失败"
  }
}
