const zhCN = {
  // ── Top Bar ──────────────────────────────────────────────
  "topBar.openUserMenu": "打开用户菜单",
  "topBar.openMenu": "打开菜单",
  "topBar.theme": "主题",
  "topBar.language": "语言",
  "topBar.checkUpdates": "检查更新",
  "topBar.moreSettings": "更多设置",
  "topBar.logout": "退出登录",
  "topBar.collapseSidebar": "收拢 sidebar",
  "topBar.expandSidebar": "展开 sidebar",
  "topBar.collapseTerminal": "收起 terminal 面板",
  "topBar.expandTerminal": "展开 terminal 面板",
  "topBar.collapseDrawer": "收拢右侧面板",
  "topBar.expandDrawer": "展开右侧面板",
  "topBar.minimize": "最小化",
  "topBar.maximize": "最大化",
  "topBar.restore": "还原",
  "topBar.close": "关闭",

  // ── Theme Options ────────────────────────────────────────
  "theme.system": "跟随系统",
  "theme.light": "明亮",
  "theme.dark": "暗黑",

  // ── Thread Status ────────────────────────────────────────
  "threadStatus.running": "进行中",
  "threadStatus.completed": "已完成",
  "threadStatus.needsReply": "待回应",
  "threadStatus.failed": "已失败",
  "threadStatus.interrupted": "已中断",

  // ── Time Labels ──────────────────────────────────────────
  "time.justNow": "刚刚",
  "time.minutesAgo": "{{count}} 分钟前",
  "time.today": "今天",
  "time.yesterday": "昨天",
  "time.daysAgo": "{{count}} 天前",
  "time.lastWeek": "上周",

  // ── Dashboard ────────────────────────────────────────────
  "dashboard.newThread": "新对话",
  "dashboard.moreActions": "更多操作",
  "dashboard.deletingThread": "正在删除会话",
  "dashboard.confirmDeleteThread": "确认删除会话",
  "dashboard.deleteThread": "删除会话",
  "dashboard.fileTree": "文件树",
  "dashboard.fileTreePanel": "文件树 · Project Panel",
  "dashboard.sourceControl": "版本控制",
  "dashboard.sourceControlPanel": "版本控制 · Git Panel",
  "dashboard.terminalDisabledHint": "选择workspace后可进入 Terminal",
  "dashboard.upToDate": "当前已是最新版本 v{{version}}",

  // ── Dashboard Errors ─────────────────────────────────────
  "dashboard.error.refreshThreadList": "刷新会话列表失败",
  "dashboard.error.workspaceInit": "工作区初始化失败",
  "dashboard.error.refreshWorkspaceList": "刷新工作区列表失败",
  "dashboard.error.addWorkspace": "添加工作区失败",
  "dashboard.error.updateDefaultWorkspace": "更新默认工作区失败",
  "dashboard.error.loadMoreThreads": "加载更多会话失败",
  "dashboard.error.deleteThread": "删除会话失败",
  "dashboard.error.createThread": "创建会话失败",
"dashboard.error.switchProfile": "切换 Agent 配置文件失败",

  // ── Composer ─────────────────────────────────────────────
  "composer.removeAttachment": "移除附件 {{name}}",
  "composer.attachmentCount": "{{count}} 个附件",
  "composer.unnamedAttachment": "未命名附件",
  "composer.attachmentFallback": "附件 {{index}}",
  "composer.fileReferenceCount": "{{count}} 个文件引用",
  "composer.removeFileReference": "移除文件引用 {{path}}",
  "composer.uploadFileOrImage": "上传文件或图片",
  "composer.noProfileAvailable": "未找到可用的 profile。",
  "composer.agentProfilesTitle": "智能体配置",
  "composer.profileSelectLabel": "切换当前 Profile",
  "composer.activeProfileLabel": "当前 Profile",
  "composer.editProfiles": "在设置中编辑 Profile",
  "composer.profileDetailsTitle": "Profile 详情",
  "composer.profileQuickEditFailed": "更新 Profile 失败。",
  "composer.profileThinkingLevel": "推理级别",
  "composer.profileAgentTeam": "Agent 团队",
  "composer.profileAgentTeamDesc": "此 Profile 可以委派工作的 Agent。",
  "composer.profileAgentTeamBuiltIn": "内置 Agent",
  "composer.profileAgentTeamCustom": "自定义 Agent",
  "composer.profileAgentTeamLoading": "正在加载 Profile 访问权限…",
  "composer.profileAgentTeamEmpty": "此 Profile 暂未允许任何自定义 Agent。",
  "composer.profileAgentTeamUnavailable": "当前运行环境无法读取自定义 Agent 访问权限。",
  "composer.profileResponseStyle": "风格",
  "composer.profileResponseLanguage": "语言",
  "composer.responseStyle.balanced": "均衡",
  "composer.responseStyle.concise": "简洁",
  "composer.responseStyle.guide": "引导",
  "composer.profileDeleted": "Profile 已删除",
  "composer.profileDeletedHint": "当前 thread 绑定的 profile 已被删除，请手动切换到其他 profile 后继续。",
  "composer.profileTier.primary": "主力",
  "composer.profileTier.auxiliary": "辅助",
  "composer.profileTier.lightweight": "轻量",
  "composer.profileTier.notConfigured": "未配置",
  "composer.fileSearchError": "文件搜索失败，请稍后重试。",
  "composer.noWorkspaceBound": "当前未绑定 workspace，暂时无法搜索文件。",
  "composer.typeFileNameHint": "继续输入文件名或路径以搜索文件。",
  "composer.searchingFiles": "正在搜索文件…",
  "composer.noMatchingFiles": "没有找到匹配的文件。",
  "composer.typeSkillHint":
    "继续输入 skill 名称、标签或触发词以搜索已启用 skill。",
  "composer.noMatchingSkills": "没有找到匹配的已启用 skill。",
  "composer.queueMode.ariaLabel": "排队新输入模式",
  "composer.queueMode.tooltip": "选择此输入如何排队到运行中的线程",
  "composer.queueMode.panelTitle": "请选择追加消息时所采用的消息类型",
  "composer.queueMode.steer": "引导",
  "composer.queueMode.followUp": "排队",
  "composer.queueMode.steerLabel": "引导",
  "composer.queueMode.steerDesc": "在当前会话过程中插入消息以便引导当前会话方向",
  "composer.queueMode.followUpLabel": "排队",
  "composer.queueMode.followUpDesc": "在当前会话完成后发送消息以便进入下一轮会话",

  // ── Runtime Queue ────────────────────────────────────────
  "queue.title": "运行时队列",
  "queue.steer": "引导",
  "queue.followUp": "排队",
  "queue.status.pending": "待处理",
  "queue.status.consumed": "已消费",
  "queue.status.cleared": "已清除",
  "queue.status.cancelled": "已取消",
  "queue.cancelMessage": "取消排队消息",
  "queue.cancellingMessage": "正在取消排队消息",
  "queue.promoteMessage": "提升为引导消息",
  "queue.promotingMessage": "正在提升为引导消息",
  "queue.editMessage": "编辑排队消息",
  "queue.editingMessage": "正在编辑排队消息",
  "queue.pendingCount": "{{count}} 个待处理",
  "queue.deferringSteer": "暂缓引导",
  "queue.steeringQueued": "引导 · {{count}} 个排队",
  "queue.followUpQueued": "排队 · {{count}} 个排队",
  "queue.waitingApprovalError": "此线程正在等待审批，无法接受排队指令。",

  // ── Runtime Thread Surface (Plan Approval) ───────────────
  "plan.implementAsPlan": "按计划实施",
  "plan.clearAndImplement": "清理上下文后按计划实施",
  "plan.approvedClearAndImplement": "已批准：清理上下文后按计划实施",
  "plan.approvedImplement": "已批准：按计划实施",
  "plan.approvedToImplement": "已批准进入实施",
  "plan.superseded": "该计划已被新的规划版本替代。",
  "plan.awaitingApproval": "等待实施审批",

  // ── Tool UI ─────────────────────────────────────────────
  "tool.status.awaitingApproval": "等待批准",
  "tool.status.responded": "已响应",
  "tool.status.running": "进行中",
  "tool.status.pending": "待处理",
  "tool.status.completed": "已完成",
  "tool.status.denied": "已拒绝",
  "tool.status.error": "错误",
  "tool.label.parameters": "参数",
  "tool.label.result": "结果",
  "tool.label.error": "错误",
  "tool.label.input": "输入",
  "tool.label.output": "输出",
  "tool.action.approve": "批准",
  "tool.action.reject": "拒绝",
  "tool.approval.request": "此工具需要先获得批准后才能继续执行。",
  "tool.approval.granted": "已批准，执行已恢复。",
  "tool.approval.denied": "已拒绝批准。",
  "tool.tag.approval": "待批准",
  "tool.tag.approved": "已批准",
  "tool.tag.denied": "已拒绝",
  "tool.runtimeStatus.approval": "待批准",
  "tool.runtimeStatus.approved": "已批准",
  "tool.runtimeStatus.reply": "待回复",
  "tool.runtimeStatus.running": "进行中",
  "tool.runtimeStatus.pending": "待处理",
  "tool.runtimeStatus.done": "完成",
  "tool.runtimeStatus.denied": "已拒绝",
  "tool.runtimeStatus.error": "错误",
  "tool.discarded.title": "已丢弃",
  "tool.discarded.description": "这段部分回复因流在协议完成前结束，已从模型历史中丢弃。",

  // ── Terminal ─────────────────────────────────────────────
  "terminal.noThread": "未选择会话",
  "terminal.restartTerminal": "重启 terminal",
  "terminal.closeTerminal": "关闭 terminal",
  "terminal.collapseTerminal": "收起 terminal",
  "terminal.sendFirstMessageHint": "发送第一条消息后可进入 Terminal",
  "terminal.noAttachableThread": "当前没有可附着的会话。",
  "terminal.connecting": "Terminal 正在连接…",
  "terminal.onlyTauri": "Terminal 仅在 Tauri 桌面环境中可用。",
  "terminal.connectionFailed": "Terminal 连接失败。",
  "terminal.resizeFailed": "Terminal 尺寸同步失败。",

  // ── Project Panel ────────────────────────────────────────
  "projectPanel.error.readFileTree": "读取文件树失败",
  "projectPanel.error.filterFiles": "过滤文件失败",
  "projectPanel.error.readDirectory": "读取目录内容失败",
  "projectPanel.error.loadMoreDirectory": "继续加载目录内容失败",
  "projectPanel.error.expandFilterPath": "无法展开筛选结果路径",

  // ── Source Control ───────────────────────────────────────
  "sourceControl.generateCommitMessage": "智能生成 Commit Message",
  "sourceControl.requestFailed": "请求失败",
  "sourceControl.commitEmpty": "Commit 消息不能为空",
  "sourceControl.noStagedChanges": "没有暂存的更改可提交",
  "sourceControl.statusAdded": "新添加",
  "sourceControl.statusDeleted": "已删除",
  "sourceControl.statusRenamed": "重命名",
  "sourceControl.statusTypeChanged": "类型已更改",
  "sourceControl.statusConflict": "冲突",
  "sourceControl.statusModified": "已修改",
  "sourceControl.actionCommit": "提交",
  "sourceControl.actionFetch": "拉取元数据",
  "sourceControl.actionPull": "拉取",
  "sourceControl.actionPush": "推送",
  "sourceControl.unstageAll": "取消全部暂存",
  "sourceControl.stageAll": "暂存全部",
  "sourceControl.unstage": "取消暂存",
  "sourceControl.stage": "暂存",
  "sourceControl.failedLoadGit": "加载 Git 状态失败",
  "sourceControl.failedSubscribeGit": "订阅 Git 更新失败",
  "sourceControl.noBranch": "无分支",
  "sourceControl.failedRefreshSnapshot": "刷新 Git 快照失败",
  "sourceControl.gitActionFailed": "Git 操作失败",
  "sourceControl.failedGenerateCommitMsg": "生成 Commit 消息失败",
  "sourceControl.commitFailed": "提交失败",
  "sourceControl.drawerUnavailable": "Git 面板不可用",
  "sourceControl.selectWorkspaceFirst": "请先选择工作区",
  "sourceControl.preparingGitContext": "正在准备 Git 上下文",
  "sourceControl.failedLoadGitState": "加载 Git 状态失败",
  "sourceControl.notGitRepo": "此工作区不是 Git 仓库",
  "sourceControl.commitMsgPlaceholder": "为暂存的更改编写 Commit 消息",
  "sourceControl.installGitHint": "安装 Git CLI 以启用提交、拉取、推送等功能",
  "sourceControl.commitMsgLabel": "Commit 消息",
  "sourceControl.confirmAction": "确认{{action}}",
  "sourceControl.confirmActionDefault": "确认操作",
  "sourceControl.mockModeUnavailable": "模拟模式下无法生成 Commit 消息",
  "sourceControl.workspaceRequired": "需要工作区",
  "sourceControl.selectModelFirst":
    "请先在当前 Profile 中选择一个已启用的轻量、辅助或主模型",
  "sourceControl.noChangesToSummarize": "没有可总结的更改",
  "sourceControl.generatingCommitMsg": "正在生成 Commit 消息",
  "sourceControl.generateFromProfile": "根据当前 Profile 生成 Commit 消息",
  "sourceControl.commitLabel": "提交",
  "sourceControl.gitCliRequired": "需要安装 Git CLI",
  "sourceControl.stageChangesFirst": "提交前请先暂存更改",
  "sourceControl.writeCommitMsgFirst": "请先编写 Commit 消息",
  "sourceControl.commitInProgress": "正在提交",
  "sourceControl.commitStagedChanges": "提交暂存的更改",
  "sourceControl.refreshSnapshot": "刷新 Git 快照",
  "sourceControl.staged": "已暂存",
  "sourceControl.tracked": "已跟踪",
  "sourceControl.untracked": "未跟踪",
  "sourceControl.conflicts": "冲突",
  "sourceControl.failedLoadFileDiff": "加载文件差异失败",
  "sourceControl.discardChanges": "撤销更改",
  "sourceControl.deleteFile": "删除文件",
  "sourceControl.discardTrackedTitle": "撤销已跟踪更改",
  "sourceControl.discardTrackedDescription": "此操作将把文件还原到最后一次提交的版本，且不可撤销。",
  "sourceControl.discardUntrackedTitle": "删除未跟踪文件",
  "sourceControl.discardUntrackedDescription": "此操作将永久删除该文件，且不可撤销。",
  "sourceControl.discardButton": "撤销更改",
  "sourceControl.deleteButton": "删除文件",
  "sourceControl.discardFailed": "撤销更改失败",

  // ── Branch Selector ────────────────────────────────────────
  "sourceControl.branch.search": "搜索分支...",
  "sourceControl.branch.localBranches": "本地分支",
  "sourceControl.branch.remoteBranches": "远程分支",
  "sourceControl.branch.createBranch": "创建分支",
  "sourceControl.branch.smartCreate": "创建分支",
  "sourceControl.branch.newBranchName": "新分支名称",
  "sourceControl.branch.create": "创建",
  "sourceControl.branch.cancel": "取消",
  "sourceControl.branch.confirm": "确认",
  "sourceControl.branch.detachedHead": "游离 HEAD",
  "sourceControl.branch.loading": "正在加载分支...",
  "sourceControl.branch.checkoutFailed": "切换分支失败",
  "sourceControl.branch.createFailed": "创建分支失败",
  "sourceControl.branch.noResults": "没有匹配的分支",

  // ── Workspace Apps ───────────────────────────────────────
  "workspaceApps.error.readApps": "读取可用应用失败",

  // ── System Info ──────────────────────────────────────────
  "systemInfo.error.readRuntime": "读取运行时信息失败",

  // ── Sidebar ────────────────────────────────────────────────
  "sidebar.newThread": "新对话",
  "sidebar.extensions": "扩展中心",
  "sidebar.workspace": "工作区",
  "sidebar.addWorkspace": "添加工作区",
  "sidebar.newThreadForWorkspace": "新对话",
  "sidebar.openInFileManager": "在文件管理器中打开",
  "sidebar.remove": "移除",
  "sidebar.showMore": "显示更多",
  "sidebar.delete": "删除",
  "sidebar.deleting": "正在删除",
  "sidebar.regenerateTitle": "智能生成",
  "sidebar.regenerateTitleFailed": "标题生成失败",
"sidebar.renameThread": "重命名对话",
  "sidebar.noLiteModel": "请先配置轻量模型",

  // ── New Thread Empty State ─────────────────────────────────
  "newThread.headline": "一切所需，聊聊即达。",
  "newThread.description":
    "直接开始对话，或选择一个本地工作区后开启对话",
  "newThread.chooseProject": "选择项目",
  "newThread.selectFolderHint": "选择一个文件夹作为工作区，或直接开启对话",
  "newThread.recentProjects": "最近的项目",
  "newThread.current": "当前",
  "newThread.chooseNewFolder": "选择新文件夹",
  "newThread.browseHint": "浏览不在最近列表中的本地工作区",
  "newThread.chooseFolderTitle": "选择项目文件夹",

  // ── Composer Placeholder ───────────────────────────────────
  "composer.placeholder":
    "问 Tiy 任何问题，@ 添加文件，/ 使用命令，$ 使用 Skills",

  // ── Settings: Navigation ───────────────────────────────────
  "settings.backToApp": "返回应用",
  "settings.category.account": "账户",
  "settings.category.accountDesc":
    "管理本地会话、账户身份、当前计划和可用订阅层级。",
  "settings.category.general": "通用配置",
  "settings.category.generalDesc":
    "设置主题、语言、启动行为和 composer 默认行为等应用级偏好。",
  "settings.category.profiles": "Profile 配置",
  "settings.category.profilesDesc":
    "管理 Agent Profile、切换当前 Profile、配置模型分层和 Profile 级指令。",
  "settings.category.providers": "模型服务",
  "settings.category.providersDesc":
    "配置模型供应商、API 访问、请求设置以及 Agent 可用的模型。",
  "settings.category.commands": "快捷命令",
  "settings.category.commandsDesc":
    "创建在聊天中输入 / 时出现的可复用提示快捷方式。",
  "settings.category.terminal": "终端",
  "settings.category.terminalDesc":
    "配置内嵌终端的 Shell、外观和行为设置。",
  "settings.category.permissions": "权限配置",
  "settings.category.permissionsDesc":
    "控制审批模式、允许和拒绝规则、沙盒访问、网络访问和可写路径。",
  "settings.category.agents": "Agents",
  "settings.category.agentsDesc": "创建和管理自定义子 Agent。",
  "settings.category.workspace": "工作区",
  "settings.category.workspaceDesc":
    "管理项目目录并选择新对话应在哪个工作区中启动。",
  "settings.category.about": "关于我们",
  "settings.category.aboutDesc":
    "查看产品详情、跳转关键项目链接，检查桌面构建是否为最新。",
  "settings.category.gateway": "消息通道",
  "settings.category.gatewayDesc": "连接微信或企微消息通道，通过 IM 与 TiyCode 交互。",
  "settings.gateway.platform": "平台",
  "settings.gateway.platformDesc": "选择要连接的消息平台。",
  "settings.gateway.status": "Gateway 状态",
  "settings.gateway.weixin": "微信",
  "settings.gateway.wecom": "企业微信",
  "settings.gateway.weixinLogin": "微信登录",
  "settings.gateway.weixinLoginDesc": "使用微信扫码完成认证。",
  "settings.gateway.scanQr": "获取二维码",
  "settings.gateway.logout": "退出登录",
  "settings.gateway.loggedIn": "已登录",
  "settings.gateway.notLoggedIn": "未登录",
  "settings.gateway.sessionExpired": "登录已过期",
  "settings.gateway.sessionExpiredDesc": "微信登录已过期，请重新扫码登录。",
  "settings.gateway.reLogin": "重新登录",
  "settings.gateway.wecomBotId": "Bot ID",
  "settings.gateway.wecomSecret": "Secret",
  "settings.gateway.wecomWsUrl": "WebSocket 地址",
  "settings.gateway.start": "启动",
  "settings.gateway.stop": "停止",
  "settings.gateway.restart": "重启",
  "settings.gateway.running": "运行中",
  "settings.gateway.stopped": "已停止",
  "settings.gateway.save": "保存",
  "settings.gateway.notRunning": "Gateway 进程未运行。",
  "settings.gateway.qrExpired": "二维码已过期或登录失败，请重试。",
  "settings.gateway.scanning": "等待扫码…",
  "settings.gateway.wecomDesc": "连接企业微信 AI Bot 平台的 WebSocket 服务。",
  "settings.gateway.wecomBotIdDesc": "企业微信 AI Bot 平台分配的 Bot ID。",
  "settings.gateway.enterBotId": "输入 Bot ID",
  "settings.gateway.enterBotSecret": "输入 Bot Secret。",
  "settings.gateway.saving": "保存中…",
  "settings.gateway.loading": "加载中…",
  "settings.gateway.saveFailed": "保存失败",
  "settings.gateway.qrLoginFailed": "二维码登录失败",

  // Shared gateway secrets/policies
  "settings.gateway.secretConfigured": "密钥已配置，留空则保持不变。",
  "settings.gateway.enterSecret": "输入密钥",
  "settings.gateway.enterAccessToken": "输入 Access Token",
  "settings.gateway.enterAppSecret": "输入 App Secret",
  "settings.gateway.enterVerifyToken": "输入 Verify Token",
  "settings.gateway.policyOpen": "开放",
  "settings.gateway.policyAllowlist": "白名单",
  "settings.gateway.policyBlacklist": "黑名单",
  "settings.gateway.policyDisabled": "禁用",

  // ── Settings: Account Panel ────────────────────────────────
  "settings.account.guest": "访客",
  "settings.account.signInHint": "登录以同步账户身份和计划用量。",
  "settings.account.signOut": "退出登录",
  "settings.account.signIn": "登录",
  "settings.account.nextReset": "下次重置",
  "settings.account.creditsRemaining": "当前周期剩余额度。",
  "settings.account.currentBadge": "当前",
  "settings.account.trialBadge": "试用",
  "settings.account.timeHeader": "时间",
  "settings.account.amountHeader": "金额",
  "settings.account.paymentMethodHeader": "支付方式",
  "settings.account.invoiceHeader": "发票",
  "settings.account.currentPlan": "当前计划",
  "settings.account.guestAccess": "访客访问",
  "settings.account.signInForPlan":
    "登录以查看当前计划、额度用量以及下一个计费周期的具体重置时间。",
  "settings.account.planComparison": "计划对比",
  "settings.account.billingHistory": "账单历史",
  "settings.account.billingAfterSignIn": "登录后可查看账单记录",
  "settings.account.signInForBilling":
    "登录以查看账户的扣费历史、支付方式和发票引用。",

  // ── Settings: General Panel ────────────────────────────────
  "settings.general.newProfile": "新 Profile",
  "settings.general.preferences": "偏好设置",
  "settings.general.cliLabel": "CLI 命令注册",
  "settings.general.cliDesc": "注册 `tiycode` 命令，以便在任意终端通过 `tiycode acp --stdio` 启动 ACP (Agent Communication Protocol) 服务。",
  "settings.general.acpServerTitle": "ACP 服务",
  "settings.general.acpServerCliLabel": "CLI 命令注册",
  "settings.general.acpServerCliDesc": "注册 `tiycode` 命令，以便在任意终端启动 ACP 服务。用法：`tiycode acp --stdio`（stdio 传输）或 `tiycode acp --http <addr>`（HTTP 传输）。",
  "settings.general.cliInstall": "安装",
  "settings.general.cliUninstall": "卸载",
  "settings.general.themeLabel": "主题",
  "settings.general.themeDesc": "使用系统外观或将应用锁定为亮色或暗色模式。",
  "settings.general.languageLabel": "语言",
  "settings.general.languageDesc": "选择应用界面使用的语言。",
  "settings.general.startupLabel": "开机启动",
  "settings.general.startupDesc": "登录时自动启动应用。",
  "settings.general.preventSleepLabel": "运行时防止休眠",
  "settings.general.preventSleepDesc": "Agent 运行时保持系统唤醒。",
  "settings.general.closeToTrayLabel": "关闭到托盘",
  "settings.general.closeToTrayDesc": "关闭窗口时最小化到系统托盘而非退出。",
  "settings.general.defaultAppendKindLabel": "追加消息默认类型",
  "settings.general.defaultAppendKindDesc": "选择 composer 追加输入默认使用引导还是排队。",
  "settings.general.webSearchTitle": "Web Search",
  "settings.general.webSearchEnabledLabel": "启用 Web Search",
  "settings.general.webSearchEnabledDesc": "启用后，主 Agent 默认可使用内建 web_search 工具；自定义 Agent 仍按各自允许工具配置生效。",
  "settings.general.webSearchEngineLabel": "搜索引擎",
  "settings.general.webSearchEngineDesc": "选择应用调用的搜索 API。模型只会看到统一的 web_search 工具。",
  "settings.general.webSearchBaseUrlLabel": "自定义 Base URL",
  "settings.general.webSearchBaseUrlDesc": "留空时使用所选引擎的官方默认 API 地址。",
  "settings.general.webSearchBaseUrlPlaceholder": "使用默认地址",
  "settings.general.optionalBadge": "可选",
  "settings.general.webSearchApiKeyLabel": "API Key",
  "settings.general.webSearchApiKeyDesc": "输入所选搜索引擎的 API Key。密钥会按引擎分别保存。",
  "settings.general.webSearchApiKeyConfiguredDesc": "所选搜索引擎已保存 API Key。输入并保存新密钥可替换。",
  "settings.general.webSearchApiKeyPlaceholder": "输入 API Key",
  "settings.general.webSearchApiKeySave": "保存",
  "settings.general.webSearchApiKeyClear": "清除已保存密钥",
  "settings.general.webSearchApiKeySaveError": "保存 Web Search API Key 失败",
  "settings.general.webSearchMaxResultsLabel": "默认结果数量",
  "settings.general.webSearchMaxResultsDesc": "限制每次搜索返回给模型的结果数量，范围为 1 到 20。",
  "settings.general.webSearchRawContentLabel": "包含正文内容",
  "settings.general.webSearchRawContentDesc": "在搜索 API 支持时返回网页正文或更长片段，会增加延迟和上下文用量。",
  "settings.general.agentProfiles": "Agent Profiles",
  "settings.general.addProfile": "添加 Profile",
  "settings.general.responseStyle": "回复风格",
  "settings.general.responseLanguage": "回复语言",
  "settings.general.responseLanguageDesc": "Agent 回复使用的语言。",
  "settings.general.commitLanguage": "Commit 消息语言",
  "settings.general.commitLanguageDesc":
    "Git 面板生成 Commit 消息时使用的语言。",
  "settings.general.primaryModel": "主模型",
  "settings.general.primaryModelDesc": "处理主任务流、深度推理和 Plan Agent。",
  "settings.general.thinkingLevel": "推理级别",
  "settings.general.thinkingLevelDesc": "控制主模型的推理深度，级别越高消耗 token 越多。",
  "settings.general.auxiliaryModel": "辅助模型",
  "settings.general.auxiliaryModelDesc":
    "支持 Explore 和 Review 辅助 Agent，未设置时回退到主模型。",
  "settings.general.lightweightModel": "轻量模型",
  "settings.general.lightweightModelDesc":
    "使用更小更快的模型处理标题生成和快速内部摘要。",
  "settings.general.customInstructions": "自定义指令",
  "settings.general.customInstructionsDesc":
    "应用于每个会话的常驻指令。用于定义 Agent 的个性、约束和默认行为。",
  "settings.general.commitPrompt": "Commit 消息提示词",
  "settings.general.commitPromptDesc":
    "Git 面板为当前 Profile 生成 Commit 消息时使用的提示词。",
  "settings.general.notSet": "未设置",
  "settings.general.noModelsAvailable": "没有可用模型。请先启用供应商和模型。",

  // ── Settings: Profiles Panel ───────────────────────────────
  "settings.profiles.newProfile": "新 Profile",
  "settings.profiles.addProfile": "添加 Profile",
  "settings.profiles.profileLibrary": "Profile 库",
  "settings.profiles.profileLibraryDesc": "从下方卡片选择当前 Profile，然后配置它的行为、模型路由、Agent 访问和指令。",
  "settings.profiles.currentProfileLabel": "当前 Profile",
  "settings.profiles.behaviorSection": "行为偏好",
  "settings.profiles.behaviorSectionDesc": "控制此 Profile 的回复方式以及推理深度。",
  "settings.profiles.modelRoutingSection": "模型与推理",
  "settings.profiles.modelRoutingSectionDesc": "选择此 Profile 使用的模型层级，并设置主模型的推理深度。",
  "settings.profiles.agentAccessSection": "Agent 访问",
  "settings.profiles.agentAccessSectionDesc": "选择此 Profile 可以委派工作的 Agent。",
  "settings.profiles.instructionsSection": "指令",
  "settings.profiles.instructionsSectionDesc": "定义此 Profile 的常驻指令和 Commit 消息提示词。",

  // ── Settings: Agents Panel ─────────────────────────────────
  "settings.agents.builtInAgents": "内置 Agent",
  "settings.agents.customAgents": "自定义 Agent",
  "settings.agents.newAgent": "新建 Agent",
  "settings.agents.createAgent": "创建 Agent",
  "settings.agents.newAgentName": "新 Agent",
  "settings.agents.defaultSystemPrompt": "你是一个有帮助的助手。",
  "settings.agents.defaultInvocationDescription": "描述主 Agent 应在什么场景下使用此子 Agent。",
  "settings.agents.builtIn.explore.name": "Explore",
  "settings.agents.builtIn.explore.desc": "在实现前以只读方式调研代码，梳理文件、依赖和当前行为。",
  "settings.agents.builtIn.review.name": "Review",
  "settings.agents.builtIn.review.desc": "在实现完成后进行代码审查、回归探测并报告验证状态。",
  "settings.agents.alwaysAvailable": "始终可用",
  "settings.agents.builtInBadge": "内置",
  "settings.agents.delegation": "Agent 委派",
  "settings.agents.delegationDesc": "控制此自定义 Agent 是否可以将工作委派给其他 Agent。",
  "settings.agents.canDelegate": "允许委派其他 Agent",
  "settings.agents.canDelegateDesc": "启用后，此 Agent 将拥有 agent_* 工具，可生成子 Agent 进行探索、审查或并行工作。",
  "settings.agents.maxDelegationDepth": "最大被委派深度",
  "settings.agents.maxDelegationDepthDesc": "此 Agent 在委派链中可处于的最深层级。第 1 层为主 Agent，第 2 层为直接子 Agent，以此类推。默认：3。",
  "settings.agents.delegationBadge": "可委派 · 深度 {{depth}}",
  "settings.agents.cannotDelegateBadge": "不可委派",
  "settings.agents.unsavedChanges": "有未保存修改",
  "settings.agents.unsaved": "未保存",
  "settings.agents.saved": "已保存",
  "settings.agents.saving": "保存中...",
  "settings.agents.saveChanges": "保存修改",
  "settings.agents.editorDescription": "配置此自定义 Agent 的展示方式、使用场景、模型级别以及可调用工具。",
  "settings.agents.identity": "身份信息",
  "settings.agents.identityDesc": "命名 Agent，并定义暴露给主 Agent 的工具标识。",
  "settings.agents.name": "名称",
  "settings.agents.slug": "Slug",
  "settings.agents.toolName": "工具名称：agent_{{slug}}",
  "settings.agents.enabled": "已启用",
  "settings.agents.disabled": "已禁用",
  "settings.agents.enabledDesc": "禁用后会保留配置，但不会出现在可委派列表中。",
  "settings.agents.modelLevel": "模型级别",
  "settings.agents.modelLevelDesc": "选择此自定义 Agent 运行时使用当前 Profile 的哪一层模型。",
  "settings.agents.modelRole.primary": "主模型",
  "settings.agents.modelRole.primaryDesc": "使用当前 Profile 中能力最强的模型处理复杂委派任务。",
  "settings.agents.modelRole.auxiliary": "辅助模型",
  "settings.agents.modelRole.auxiliaryDesc": "使用辅助 Agent 模型层级；未设置时回退到主模型。",
  "settings.agents.modelRole.lightweight": "轻量模型",
  "settings.agents.modelRole.lightweightDesc": "使用更快的轻量模型；未设置时依次回退到辅助模型和主模型。",
  "settings.agents.behavior": "行为",
  "settings.agents.behaviorDesc": "描述何时调用此 Agent，以及委派后它应如何工作。",
  "settings.agents.invocationDescription": "调用描述",
  "settings.agents.invocationDescriptionHint": "这会告诉主 Agent 何时应使用此专家 Agent。",
  "settings.agents.systemPrompt": "系统提示词",
  "settings.agents.allowedTools": "允许的工具",
  "settings.agents.allowedToolsDesc": "选择此 Agent 在委派工作中可以调用的工具。",
  "settings.agents.toolCategory.fileRead": "文件系统（读取）",
  "settings.agents.toolCategory.web": "网页搜索",
  "settings.agents.toolCategory.fileWrite": "文件系统（写入）",
  "settings.agents.toolCategory.terminal": "终端",
  "settings.agents.toolCategory.git": "Git",
  "settings.agents.collapse": "收起",
  "settings.agents.edit": "编辑",
  "settings.agents.deleteAgent": "删除 {{name}}",
  "settings.agents.emptyTitle": "还没有自定义 Agent",
  "settings.agents.emptyDesc": "创建一个拥有独立指令、模型级别和允许工具的专用助手。",
  "settings.agents.discardTitle": "丢弃未保存的 Agent 修改？",
  "settings.agents.discardDesc": "此自定义 Agent 中存在未保存编辑。继续前丢弃会导致这些修改丢失。",
  "settings.agents.continueEditing": "继续编辑",
  "settings.agents.discardChanges": "丢弃修改",
"settings.agents.unsavedChangesTitle": "不保存就离开？",
"settings.agents.unsavedChangesLeaveDesc": "你有未保存的自定义 Agent 修改。离开将丢弃这些更改。",
  "settings.agents.errorCreate": "创建 Agent 失败",
  "settings.agents.errorDelete": "删除 Agent 失败",
  "settings.agents.errorSave": "保存 Agent 失败",
  "settings.agents.errorSlugConflict": "Slug 为“{{slug}}”的自定义 Agent 已存在",

  // ── Settings: Profile Agent Access ─────────────────────────
  "settings.profileAgentAccess.title": "可用 Agent",
  "settings.profileAgentAccess.description": "选择此 Profile 可以委派给哪些自定义 Agent。内置 Agent 对每个 Profile 始终启用。",
  "settings.profileAgentAccess.customAgents": "自定义 Agent",
  "settings.profileAgentAccess.profileLevelAccess": "Profile 级访问",
  "settings.profileAgentAccess.allowed": "允许",
  "settings.profileAgentAccess.toggleAccess": "切换 {{name}} 的访问权限",
  "settings.profileAgentAccess.noDescription": "尚未提供委派描述。",
  "settings.profileAgentAccess.toolCount": "{{count}} 个工具",
  "settings.profileAgentAccess.emptyTitle": "尚未配置自定义 Agent",
  "settings.profileAgentAccess.emptyDesc": "前往 Settings → Agents 创建拥有独立指令、模型级别和工具的专用助手。",
  "settings.profileAgentAccess.builtIn.explore.name": "Explore",
  "settings.profileAgentAccess.builtIn.explore.desc": "在实现决策前梳理文件、依赖和当前行为。",
  "settings.profileAgentAccess.builtIn.explore.scope": "只读调研",
  "settings.profileAgentAccess.builtIn.review.name": "Review",
  "settings.profileAgentAccess.builtIn.review.desc": "审查已实现的更改、探测回归并报告验证状态。",
  "settings.profileAgentAccess.builtIn.review.scope": "变更后审查",
  "settings.profileAgentAccess.capability.fileDiscovery": "文件发现",
  "settings.profileAgentAccess.capability.architectureNotes": "架构记录",
  "settings.profileAgentAccess.capability.currentStateSummary": "现状总结",
  "settings.profileAgentAccess.capability.diffReview": "Diff 审查",
  "settings.profileAgentAccess.capability.riskScan": "风险扫描",
  "settings.profileAgentAccess.capability.verificationReport": "验证报告",

  // ── Settings: Response Style Options ───────────────────────
  "settings.responseStyle.concise": "简洁",
  "settings.responseStyle.conciseDesc": "极简回复，答案优先，最少解释。",
  "settings.responseStyle.balanced": "均衡",
  "settings.responseStyle.balancedDesc": "默认紧凑，仅在有帮助时补充细节。",
  "settings.responseStyle.guided": "引导",
  "settings.responseStyle.guidedDesc":
    "解释性回复，包含推理、权衡和下一步建议。",

  // ── Settings: Thinking Level Options ─────────────────────
  "settings.thinkingLevel.off": "关闭",
  "settings.thinkingLevel.offDesc": "不使用扩展思考，标准回复。",
  "settings.thinkingLevel.minimal": "极简",
  "settings.thinkingLevel.minimalDesc": "轻量推理，适合简单任务。",
  "settings.thinkingLevel.low": "低",
  "settings.thinkingLevel.lowDesc": "基础推理，适度消耗 token。",
  "settings.thinkingLevel.medium": "中",
  "settings.thinkingLevel.mediumDesc": "均衡推理，适合大多数任务。",
  "settings.thinkingLevel.high": "高",
  "settings.thinkingLevel.highDesc": "深度推理，适合复杂任务。",
  "settings.thinkingLevel.xhigh": "极高",
  "settings.thinkingLevel.xhighDesc": "最大推理深度，消耗最多 token。",

  // ── Settings: Profile Actions ──────────────────────────────
  "settings.profile.rename": "重命名",
  "settings.profile.duplicate": "复制",
  "settings.profile.delete": "删除",

  // ── Settings: About Panel ──────────────────────────────────
  "settings.about.description": "一款践行 AI First 理念的桌面版 Vibe-Coding Agent。",
  "settings.about.officialWebsite": "官方网站",
  "settings.about.license": "许可证",
  "settings.about.feedback": "反馈",
  "settings.about.contactEmail": "联系邮箱",
  "settings.about.checkingUpdates": "正在检查更新...",
  "settings.about.checkForUpdates": "检查更新",
  "settings.about.copyright": "Copyright © 2026 Tiy.Ai All Rights Reserved.",
  "settings.about.termsOfService": "服务条款",
  "settings.about.privacyPolicy": "隐私政策",

  // ── In-app Updater ───────────────────────────────────────────
  "update.newVersionAvailable": "发现新版本",
  "update.currentVersion": "当前版本: v{{version}}",
  "update.newVersion": "v{{version}}",
  "update.releaseNotes": "更新日志",
  "update.downloadAndInstall": "下载并安装",
  "update.later": "稍后",
  "update.brewDetected": "检测到当前应用通过 Homebrew 安装，请在终端中运行以下命令更新：",
  "update.downloading": "正在下载更新...",
  "update.downloadProgress": "已完成 {{progress}}%",
  "update.readyToRestart": "更新就绪",
  "update.readyToRestartDesc": "更新已下载并安装完成，重启应用以生效。",
  "update.restartNow": "立即重启",
  "update.restartLater": "稍后重启",
  "update.errorTitle": "更新失败",
  "update.retry": "重试",
  "update.close": "关闭",

  // ── Settings: Commands Panel ───────────────────────────────
  "settings.commands.addPrompt": "添加提示词",
  "settings.commands.createHint": "创建在聊天中输入 / 时可触发的快捷提示词",
  "settings.commands.untitled": "未命名",
  "settings.commands.noDescription": "无描述",
  "settings.commands.noArgumentHint": "无参数提示",
  "settings.commands.saveChanges": "保存更改",
  "settings.commands.cancelEditing": "取消编辑",
  "settings.commands.editCommand": "编辑命令",
  "settings.commands.removeCommand": "删除命令",
  "settings.commands.nameLabel": "名称",
  "settings.commands.descriptionLabel": "描述",
  "settings.commands.descriptionPlaceholder": "描述这条命令在选择器中的用途",
  "settings.commands.argumentHintLabel": "参数提示",
  "settings.commands.commandPromptLabel": "命令提示词",
  "settings.commands.commandPromptPlaceholder":
    "编写此命令被使用时发送给模型的展开提示词...",

  // ── Settings: Terminal Panel ──────────────────────────────
  "settings.terminal.shell": "Shell",
  "settings.terminal.shellLabel": "默认 Shell",
  "settings.terminal.shellDesc": "选择内嵌终端使用的 Shell。保留为自动将使用系统默认值。",
  "settings.terminal.shellAutoDetect": "自动（系统默认）",
  "settings.terminal.shellCustom": "自定义",
  "settings.terminal.shellArgsLabel": "Shell 参数",
  "settings.terminal.shellArgsDesc": "启动 Shell 时传递的额外参数（如 --login）。",
  "settings.terminal.shellArgsPlaceholder": "例如 --login",
  "settings.terminal.appearance": "外观",
  "settings.terminal.fontFamilyLabel": "字体",
  "settings.terminal.fontFamilyDesc": "用于渲染终端文本的字体系列。",
  "settings.terminal.fontSizeLabel": "字号",
  "settings.terminal.fontSizeDesc": "终端文本大小，单位像素（8 - 32）。",
  "settings.terminal.lineHeightLabel": "行高",
  "settings.terminal.lineHeightDesc": "终端行间距倍数（1.0 - 2.0）。",
  "settings.terminal.cursorStyleLabel": "光标样式",
  "settings.terminal.cursorStyleDesc": "终端光标的形状。",
  "settings.terminal.cursorStyleBlock": "方块",
  "settings.terminal.cursorStyleUnderline": "下划线",
  "settings.terminal.cursorStyleBar": "竖线",
  "settings.terminal.cursorBlinkLabel": "光标闪烁",
  "settings.terminal.cursorBlinkDesc": "终端光标是否闪烁。",
  "settings.terminal.behavior": "行为",
  "settings.terminal.scrollbackLabel": "回滚行数",
  "settings.terminal.scrollbackDesc": "滚动缓冲区保留的最大行数（500 - 100,000）。",
  "settings.terminal.copyOnSelectLabel": "选中即复制",
  "settings.terminal.copyOnSelectDesc": "自动将选中的文本复制到剪贴板。",
  "settings.terminal.environment": "环境变量",
  "settings.terminal.termEnvLabel": "TERM 变量",
  "settings.terminal.termEnvDesc": "发送给 Shell 的 TERM 环境变量值。",

  // ── Settings: Permissions Panel ────────────────────────────
  "settings.permissions.execution": "执行",
  "settings.permissions.approvalPolicy": "审批策略",
  "settings.permissions.allowed": "允许列表",
  "settings.permissions.allowedDesc": "Agent 可无需审批使用的模式。可用 `shell:` 或 `tool:<name> ` 前缀，例如 `shell:rm -rf /` 或 `tool:read .env.*`。模式内部使用简单 glob 语义：`*` 表示任意字符，`\\*` 表示字面星号，`*foo*` 表示包含匹配。",
  "settings.permissions.denied": "拒绝列表",
  "settings.permissions.deniedDesc": "Agent 永远不能使用的模式。可用 `shell:` 或 `tool:<name> ` 前缀，例如 `shell:rm -rf /` 或 `tool:read .env.*`。模式内部使用简单 glob 语义：`*` 表示任意字符，`\\*` 表示字面星号，`*foo*` 表示包含匹配。",
  "settings.permissions.add": "添加",
  "settings.permissions.empty": "空",
  "settings.permissions.confirm": "确认",
  "settings.permissions.cancel": "取消",
  "settings.permissions.editPattern": "编辑规则",
  "settings.permissions.removePattern": "删除规则",
  "settings.permissions.patternPlaceholder": "例如 tool:read .env.*、shell:rm -rf /、any:*tmp*",
  "settings.permissions.patternRequired": "保存这条规则前请先输入模式。",
  "settings.permissions.shellPatternRequired": "请使用 `shell:<pattern>`，例如 `shell:rm -rf /`。",
  "settings.permissions.anyPatternRequired": "请使用 `any:<pattern>`，例如 `any:*tmp*`。",
  "settings.permissions.toolPatternFormat": "请使用 `tool:<name> <pattern>`，例如 `tool:read .env.*`。",
  "settings.permissions.writableRoots": "可写目录",
  "settings.permissions.writableRootsDesc": "沙盒允许写入的额外目录。",
  "settings.permissions.emptyPath": "空路径",
  "settings.permissions.editPath": "编辑路径",
  "settings.permissions.removePath": "删除路径",

  // ── Settings: Approval Policy Options ──────────────────────
  "settings.policy.untrusted": "不信任",
  "settings.policy.untrustedDesc": "逐一审批每个工具调用和命令。",
  "settings.policy.onRequest": "按需审批",
  "settings.policy.onRequestDesc": "自动批准安全操作，对风险操作进行询问。",
  "settings.policy.never": "无需审批",
  "settings.policy.neverDesc": "让 Agent 无需审批提示即可运行。",

  // ── Settings: Providers Panel ──────────────────────────────
  "settings.providers.customProvider": "自定义供应商",
  "settings.providers.catalogUpdated": "已从供应商 API 更新模型目录。",
  "settings.providers.fetchFailed": "获取供应商模型失败。",
  "settings.providers.connectionTestFailed": "连接测试失败。",
  "settings.providers.addProvider": "添加供应商",
  "settings.providers.searchProviders": "搜索供应商...",
  "settings.providers.customBadge": "自定义",
  "settings.providers.builtInBadge": "内置",
  "settings.providers.activeBadge": "已启用",
  "settings.providers.deleteProvider": "删除供应商",
  "settings.providers.toggleProvider": "切换供应商",
  "settings.providers.providerName": "供应商名称",
  "settings.providers.baseUrl": "Base URL",
  "settings.providers.customBaseUrl": "自定义 Base URL",
  "settings.providers.baseUrlHelper": "选择推荐的端点或输入自定义 Base URL。",
  "settings.providers.apiKey": "API Key",
  "settings.providers.apiKeySaved": "已保存到应用",
  "settings.providers.apiKeyNotSet": "未设置",
  "settings.providers.hideApiKey": "隐藏 API Key",
  "settings.providers.showApiKey": "显示 API Key",
  "settings.providers.providerType": "供应商类型",
  "settings.providers.providerSettings": "供应商设置",
  "settings.providers.builtInMappingLocked":
    "内置供应商固定映射到其 tiy-core 供应商类型。",
  "settings.providers.customMappingHelper":
    "选择该自定义供应商对应的 tiy-core 供应商类型。",
  "settings.providers.customHeaders": "自定义 HTTP Headers",
  "settings.providers.customHeadersHelper":
    "使用 JSON 对象格式。Header 值必须为字符串。",
  "settings.providers.savedOnValidJson": "JSON 有效时自动保存。",
  "settings.providers.models": "模型",
  "settings.providers.modelIdPlaceholder": "模型 ID（如 gpt-4o）",
  "settings.providers.displayNamePlaceholder": "显示名称（可选）",
  "settings.providers.addModelHelper": "手动添加模型或使用 Fetch 从 API 加载",
  "settings.providers.searchModels": "搜索模型...",
  "settings.providers.fetching": "获取中...",
  "settings.providers.fetch": "Fetch",
  "settings.providers.enabledModelsFirst": "（已启用模型优先显示）",
  "settings.providers.selectProvider": "选择要配置的供应商",
  "settings.providers.manualBadge": "手动添加",
  "settings.providers.testingConnection": "正在测试连接",
  "settings.providers.testConnection": "测试连接",
  "settings.providers.settingsButton": "设置",
  "settings.providers.removeModel": "删除模型",
  "settings.providers.testingConnectionStatus": "正在测试连接...",
  "settings.providers.modelId": "模型 ID",
  "settings.providers.displayName": "显示名称",
  "settings.providers.modelCapabilities": "模型能力",
  "settings.providers.modelCapabilitiesDesc": "覆盖此模型的自动检测能力。",
  "settings.providers.auto": "（自动）",
  "settings.providers.contextWindow": "上下文窗口",
  "settings.providers.maxOutputTokens": "最大输出 Token",
  "settings.providers.modelOptionsJson": "模型选项 (JSON)",
  "settings.providers.headerValidationError":
    "自定义 HTTP Headers 必须是 JSON 对象。",
  "settings.providers.headerValueError": 'Header "{{key}}" 的值必须是字符串。',
  "settings.providers.headerJsonError":
    '无效的 JSON。示例：{"HTTP-Referer": "https://example.com"}',
  "settings.providers.optionsValidationError":
    "Provider Options 必须是 JSON 对象。",
  "settings.providers.optionsJsonError":
    '无效的 JSON。示例：{"thinking": {"type": "disabled"}}',

  // ── Settings: Model Capabilities ───────────────────────────
  "settings.capability.vision": "视觉",
  "settings.capability.imageOutput": "图像输出",
  "settings.capability.toolCalling": "工具调用",
  "settings.capability.reasoning": "推理",
  "settings.capability.embedding": "嵌入",

  // ── Settings: Workspace Panel ──────────────────────────────
  "settings.workspace.openInFileManager": "在文件管理器中打开",
  "settings.workspace.newWorkspace": "新工作区",
  "settings.workspace.chooseFolderTitle": "选择工作区文件夹",
  "settings.workspace.addWorkspace": "添加工作区",
  "settings.workspace.noWorkspaces": "未配置工作区。",
  "settings.workspace.addToGetStarted": "添加工作区以开始使用。",
  "settings.workspace.defaultBadge": "默认",
  "settings.workspace.gitBadge": "Git",
  "settings.workspace.setAsDefault": "设为默认",
  "settings.workspace.openingFolder": "正在打开文件夹",
  "settings.workspace.removeWorkspace": "移除工作区",

  // ── Extensions Center ──────────────────────────────────────
  "extensions.backToApp": "返回应用",
  "extensions.title": "扩展中心",
  "extensions.tab.plugins": "插件",
  "extensions.tab.pluginsDesc":
    "带有工具、钩子、命令和可选 Skill 包的本地扩展包。",
  "extensions.tab.mcpServers": "MCP 服务",
  "extensions.tab.mcpServersDesc":
    "带有传输状态、阶段、快照和重连控制的托管连接器条目。",
  "extensions.tab.skills": "Skills",
  "extensions.tab.skillsDesc":
    "来自内置、工作区和插件源的已索引提示资产，带有启用控制。",
  "extensions.searchPlaceholder": "搜索{{label}}",
  "extensions.refresh": "刷新",
  "extensions.addSource": "添加源",
  "extensions.addMcp": "添加 MCP",
  "extensions.configIssuesDetected": "检测到配置文件异常",
  "extensions.rescanSkills": "重新扫描 Skills",
  "extensions.install": "安装",
  "extensions.disable": "禁用",
  "extensions.enable": "启用",
  "extensions.remove": "移除",
  "extensions.edit": "编辑",
  "extensions.restart": "重启",
"extensions.actionFailed": "操作失败",
"extensions.processing": "处理中…",
  "extensions.commandsBadge": "命令",
  "extensions.mcpsBadge": "MCP",
  "extensions.skillsBadge": "Skills",
  "extensions.hooksBadge": "钩子",
  "extensions.toolsBadge": "工具",
  "extensions.resourcesBadge": "资源",
  "extensions.staleSnapshot": "快照已过期",
  "extensions.triggersBadge": "触发器",
  "extensions.noMatch": "没有{{label}}匹配当前搜索。",
  "extensions.capabilities": "能力",
  "extensions.permissions": "权限",
  "extensions.tools": "工具",
  "extensions.commands": "命令",
  "extensions.noBundledCommands": "无打包命令。",
  "extensions.mcps": "MCP",
  "extensions.noBundledMcps": "无打包 MCP 服务。",
  "extensions.skills": "Skills",
  "extensions.noBundledSkills": "无打包 Skills。",
  "extensions.hooks": "钩子",
  "extensions.noHooksDeclared": "未声明钩子。",
  "extensions.source": "来源",
  "extensions.marketplaceSources": "市场源",
  "extensions.pluginsBadge": "插件",
  "extensions.noMarketplaceSources": "未配置市场源。",
  "extensions.pluginBadge": "插件",
  "extensions.actions": "操作",
  "extensions.parameters": "参数",
  "extensions.requiredBadge": "必填",
  "extensions.noDiscoveredTools": "暂未发现工具。",
  "extensions.skillBadge": "Skill",
  "extensions.previewSkillMarkdown": "预览 Skill Markdown",
  "extensions.noTriggersDefined": "未定义触发器。",
  "extensions.noToolRequirements": "未声明工具要求。",
  "extensions.loadingDetails": "正在加载{{label}}详情...",
  "extensions.selectToInspect": "选择一个{{label}}项以查看详情。",
  "extensions.builtinBadge": "内置",
  "extensions.enabledBadge": "已启用",
  "extensions.disabledBadge": "已禁用",

  // ── Extensions: Skill Preview Dialog ───────────────────────
  "extensions.skillPreview": "Skill 预览",
  "extensions.skillPreviewDesc": "Skill Markdown 预览",
  "extensions.closeSkillPreview": "关闭 Skill 预览",
  "extensions.skillMdPreview": "SKILL.md 预览",
  "extensions.frontmatter": "Frontmatter",

  // ── Extensions: MCP Dialog ─────────────────────────────────
  "extensions.addMcpServer": "添加 MCP 服务",
  "extensions.editMcpServer": "编辑 MCP 服务",
  "extensions.mcpDialogDesc":
    "管理基于设置的 MCP 条目。敏感字段在运行时视图和活动日志中保持掩码。",
  "extensions.serverIdPlaceholder": "服务 ID",
  "extensions.displayNamePlaceholder": "显示名称",
  "extensions.transportPlaceholder": "传输方式",
  "extensions.timeoutPlaceholder": "超时时间 (ms)",
  "extensions.commandPlaceholder": "命令",
  "extensions.argsPlaceholder": "以空格分隔的参数",
  "extensions.headersHelper":
    "每行一个 `Header: value`。掩码值会保留，除非你替换或删除它们。",
  "extensions.envLabel": "环境变量",
  "extensions.envHelper": "每行一个 `KEY: value`。变量会传递给服务器进程。",
  "extensions.enableOnSave": "保存时启用",
  "extensions.disabledEntryHint": "禁用的条目保持注册但不会启动。",
  "extensions.cancelButton": "取消",
  "extensions.createButton": "创建",
  "extensions.saveButton": "保存",

  // ── Extensions: Marketplace Source Dialog ───────────────────
  "extensions.addMarketplaceSource": "添加市场源",
  "extensions.marketplaceSourceDesc":
    "注册一个基于 Git 的插件市场，让 Tiy 动态扫描其插件目录。",
  "extensions.addingSourceStatus": "正在添加源并同步仓库...",
  "extensions.addingSourceHelper": "源将在保存并同步后出现在插件目录中。",
  "extensions.addingSource": "正在添加源...",

  // ── Extensions: Remove Source Dialog ───────────────────────
  "extensions.cantRemoveSource": "无法移除源",
  "extensions.removeSource": "移除源",
  "extensions.checkingRemovable": "正在检查此源是否可移除。",
  "extensions.hasEnabledPlugins":
    "此源仍有已启用的插件。请先禁用它们再移除源。",
  "extensions.removeWarning": "移除此源将同时删除从中安装的未启用插件。",
  "extensions.loadingRemovalDetails": "正在加载源移除详情...",
  "extensions.enabledPluginsBlocking": "阻止移除的已启用插件",
  "extensions.enabledPluginBadge": "已启用",
  "extensions.pluginsToRemove": "将被移除的插件",
  "extensions.installedBadge": "已安装",
  "extensions.noPluginsToRemove": "此源没有已安装的插件会被移除。",
  "extensions.closeButton": "关闭",
  "extensions.removeSourceConfirm": "移除源",

  // ── Marketplace ────────────────────────────────────────────
  "marketplace.backToApp": "返回应用",
  "marketplace.title": "市场",
  "marketplace.subtitle":
    "在一个目录视图中浏览 Skills、MCP 服务、插件和定时自动化。",
  "marketplace.tab.skills": "Skills",
  "marketplace.tab.skillsDesc": "面向日常编码任务的聚焦指令和可复用工作流。",
  "marketplace.tab.mcp": "MCP",
  "marketplace.tab.mcpDesc": "将助手连接到工具、API 和实时数据的在线服务。",
  "marketplace.tab.plugins": "插件",
  "marketplace.tab.pluginsDesc":
    "扩展桌面界面和面向任务的实用程序的工作台附加组件。",
  "marketplace.tab.automations": "自动化",
  "marketplace.tab.automationsDesc":
    "以最少人工操作运行的定时任务和周期性工作流。",
  "marketplace.empty.installedSkills": "没有已安装的 Skills 匹配此搜索。",
  "marketplace.empty.installedMcp": "没有已安装的 MCP 匹配此搜索。",
  "marketplace.empty.installedPlugins": "没有已安装的插件匹配此搜索。",
  "marketplace.empty.installedAutomations": "没有已安装的自动化匹配此搜索。",
  "marketplace.empty.recommendedSkills": "没有推荐的 Skills 匹配当前搜索。",
  "marketplace.empty.recommendedMcp": "没有推荐的 MCP 匹配当前搜索。",
  "marketplace.empty.recommendedPlugins": "没有推荐的插件匹配当前搜索。",
  "marketplace.empty.recommendedAutomations": "没有推荐的自动化匹配当前搜索。",
  "marketplace.search.skills": "搜索 Skills、工作流和提示包",
  "marketplace.search.mcp": "搜索 MCP、集成和工具",
  "marketplace.search.plugins": "搜索插件、附加组件和桌面扩展",
  "marketplace.search.automations": "搜索自动化、计划和周期性任务",
  "marketplace.status.available": "可用",
  "marketplace.status.installedEnabled": "已安装 + 已启用",
  "marketplace.status.installedDisabled": "已安装 + 已禁用",
  "marketplace.uninstall": "卸载",
  "marketplace.installed": "已安装",
  "marketplace.recommended": "推荐",
  "marketplace.addSource": "添加源",
  "marketplace.addSourceSubtitle": "准备自定义源和基于 URL 的安装流程",
  "marketplace.recommendedBadge": "推荐",
  "marketplace.actionsSection": "操作",
  "marketplace.detailsSection": "详情",
  "marketplace.publisher": "发布者",
  "marketplace.sourceLabel": "来源",
  "marketplace.category": "分类",
  "marketplace.capabilitiesSection": "能力",
  "marketplace.emptyDrawerDesc":
    "准备策划的团队目录或直接包安装，无需离开工作台。",
  "marketplace.customSource": "自定义源",
  "marketplace.customSourceDesc": "注册组织目录、内部包源或策划的团队包集合。",
  "marketplace.installFromUrl": "从 URL 安装",
  "marketplace.installFromUrlDesc":
    "粘贴包 URL、Git 仓库或托管源端点以直接安装。",

  // ── Onboarding Wizard ──────────────────────────────────
  "onboarding.welcome": "欢迎使用 TiyCode",
  "onboarding.welcomeDesc": "让我们花一分钟完成初始配置，以获得最佳体验。",
  "onboarding.skip": "跳过引导",
  "onboarding.next": "下一步",
  "onboarding.back": "上一步",
  "onboarding.finish": "开始使用",
  "onboarding.stepOf": "第 {{current}} 步，共 {{total}} 步",

  // ── Step 1: Language & Theme ───────────────────────────
  "onboarding.langTheme.title": "语言 & 主题",
  "onboarding.langTheme.desc": "选择界面语言和外观主题。回复语言将自动与界面语言保持一致。",
  "onboarding.langTheme.languageLabel": "界面语言",
  "onboarding.langTheme.themeLabel": "外观主题",
  "onboarding.langTheme.themeAuto": "跟随系统",
  "onboarding.langTheme.themeDark": "暗黑",
  "onboarding.langTheme.themeLight": "明亮",

  // ── Step 2: Configure Provider ─────────────────────────
  "onboarding.provider.title": "配置模型服务商",
  "onboarding.provider.desc": "选择一个服务商，输入 API Key，然后加载并启用模型。",
  "onboarding.provider.selectProvider": "选择服务商",
  "onboarding.provider.addCustom": "新建自定义服务商",
  "onboarding.provider.apiKeyLabel": "API Key",
  "onboarding.provider.apiKeyPlaceholder": "输入你的 API Key",
  "onboarding.provider.baseUrlLabel": "Base URL",
  "onboarding.provider.saveKey": "保存 Key",
  "onboarding.provider.fetchModels": "加载模型列表",
  "onboarding.provider.fetchingModels": "加载中...",
  "onboarding.provider.fetchSuccess": "成功加载 {{count}} 个模型",
  "onboarding.provider.fetchError": "加载模型失败：{{message}}",
  "onboarding.provider.modelsLabel": "模型列表",
  "onboarding.provider.searchModels": "搜索模型",
  "onboarding.provider.noModels": "暂无模型，请先加载模型列表。",
  "onboarding.provider.enableAtLeastOne": "请至少启用一个模型后继续。",
  "onboarding.provider.providerTypeLabel": "服务商类型",
  "onboarding.provider.displayNameLabel": "显示名称",

  // ── Step 3: Configure Profile ──────────────────────────
  "onboarding.profile.title": "配置模型方案",
  "onboarding.profile.desc": "为默认方案分配三级模型。你可以稍后在设置中修改。",
  "onboarding.profile.primaryLabel": "主力模型 (Primary)",
  "onboarding.profile.primaryDesc": "执行核心任务的主要模型，如代码生成、复杂推理和多步骤编排。",
  "onboarding.profile.auxiliaryLabel": "辅助模型 (Auxiliary)",
  "onboarding.profile.auxiliaryDesc": "协助主力模型的辅助模型，用于代码审查、测试生成和上下文摘要。",
  "onboarding.profile.liteLabel": "轻量模型 (Light)",
  "onboarding.profile.liteDesc": "用于快速操作的轻量模型，如 commit message 生成、简短问答和格式化。",
  "onboarding.profile.selectModel": "选择模型",
  "onboarding.profile.noEnabledModels": "暂无已启用的模型，请返回上一步启用模型。",

  // ── Step 4: Complete ───────────────────────────────────
  "onboarding.complete.title": "一切就绪！",
  "onboarding.complete.desc": "配置已完成。你可以随时在设置中调整这些选项。",
  "onboarding.complete.tip": "提示：使用顶部菜单栏快速切换主题和语言。",

  // ── Worktree ───────────────────────────────────────────
  "worktree.createTitle": "新建 Worktree",
  "worktree.createDescription": "为当前 Git 仓库创建一个新的 worktree。",
  "worktree.field.branch": "新分支名",
  "worktree.field.branchPlaceholder": "输入新分支名称",
  "worktree.field.baseBranch": "基于分支",
  "worktree.field.baseBranchHint": "新分支将基于 {{branch}} 创建",
  "worktree.field.path": "worktree 目录",
  "worktree.field.pathPlaceholder": "自动生成路径",
  "worktree.field.pathBrowse": "选择...",
  "worktree.field.pathHint": "留空将自动生成在 ~/.tiy/workspace/<hash>/<repo>",
  "worktree.submit": "创建 Worktree",
  "worktree.submitting": "创建中...",
  "worktree.cancel": "取消",
  "worktree.menu.newWorktree": "新建 Worktree…",
  "worktree.removeConfirm": "删除此 worktree 将同时删除磁盘目录与相关对话记录，确定继续？",
  "worktree.error.branchRequired": "请填写分支名",
  "worktree.error.selectRepo": "仅 Git 仓库 workspace 支持创建 worktree",
  "worktree.empty.branches": "暂无分支",
  "worktree.loading.branches": "加载中…",
  "worktree.tag.label": "Worktree",
  "worktree.mode.newBranch": "新建分支",
  "worktree.mode.existingBranch": "已有分支",
  "worktree.field.selectBranch": "选择分支",
  "worktree.field.selectBranchHint": "将检出此已有分支到新 worktree",
  "worktree.error.selectBranch": "请选择一个分支",
  "contextCompressing": "正在压缩上下文…",
  "run.retrying": "正在重新生成当前回复… {{attempt}}/{{maxAttempts}}",
  "requestRetry.reconnecting": "正在重新连接… {{attempt}}/{{maxRetries}}",
  "requestRetry.status": "HTTP {{status}}",
  "requestRetry.delay": "{{seconds}} 秒后重试",

  // ── Artifact Card ─────────────────────────────────────────
  "artifact.collapseCode": "收起代码",
  "artifact.expandCode": "展开代码",
  "artifact.preview": "点击预览",

  // ── Message actions ───────────────────────────────────────
  "message.copy": "复制消息",
  "message.copied": "已复制",

  // ── Long message preview ──────────────────────────────────
  "longMessage.collapseAll": "收起全文",
  "longMessage.expandAll": "展开全文",
  "longMessage.hiddenLines": "已折叠约 {{count}} 行内容",
  "longMessage.hiddenContent": "已折叠部分长内容以优化加载与滚动性能",

  // ── File Context Menu ─────────────────────────────────────
  "fileContextMenu.newFolder": "新建文件夹",
  "fileContextMenu.newFile": "新建文件",
  "fileContextMenu.createIn": "创建于：",
  "fileContextMenu.folderPlaceholder": "文件夹名称",
  "fileContextMenu.filePlaceholder": "文件名称.扩展名",
  "fileContextMenu.file": "文件",
  "fileContextMenu.folder": "文件夹",
  "fileContextMenu.creating": "创建中…",
  "fileContextMenu.create": "创建",
  "fileContextMenu.rename": "重命名",
  "fileContextMenu.renaming": "重命名中…",
  "fileContextMenu.deleteAction": "删除",
  "fileContextMenu.cancel": "取消",
  "fileContextMenu.deleting": "删除中…",
  "fileContextMenu.deleteFileTitle": "删除文件",
  "fileContextMenu.deleteFolderTitle": "删除文件夹",
  "fileContextMenu.deleteConfirm": "确定要删除 {{path}} 吗？",
  "fileContextMenu.deleteRecursive": "这将递归删除所有内容。",
  "fileContextMenu.fileActions": "文件操作",
  "fileContextMenu.copyRelativePath": "复制相对路径",
  "fileContextMenu.copyPath": "复制路径",
  "fileContextMenu.openInExternalApp": "在外部应用中打开",

  // ── File Editor ──────────────────────────────────────────
  "fileEditor.loading": "加载中…",
  "fileEditor.save": "保存",
  "fileEditor.saveShortcut": "保存 (Ctrl/Cmd + S)",
  "fileEditor.htmlPreview": "HTML 预览",
  "fileEditor.editor": "编辑器",
  "fileEditor.preview": "预览",
  "fileEditor.refresh": "从磁盘刷新预览",
  "fileEditor.refreshDisabledDirty": "请先保存修改再刷新",
  "fileEditor.closePreview": "关闭预览",
  "fileEditor.binaryFile": "二进制文件 — 无法编辑",

  // ── Dashboard (extended) ─────────────────────────────────
  "dashboard.preparingTerminal": "正在准备终端…",
  "dashboard.filePreviewEditor": "文件预览 / 编辑器",

  // ── Goal ──────────────────────────────────────────────────
  "goal.status.active": "活跃",
  "goal.status.paused": "已暂停",
  "goal.status.budgetLimited": "预算耗尽",
  "goal.status.complete": "已完成",
  "goal.status.verified": "已验收通过",
  "goal.time.elapsed": "已持续运行{{time}}",
  "goal.time.hoursMinutes": "{{hours}}小时{{minutes}}分",
  "goal.time.minutesSeconds": "{{minutes}}分{{seconds}}秒",
  "goal.time.seconds": "{{seconds}}秒",
  "goal.action.pause": "暂停目标",
  "goal.action.resume": "恢复目标",
  "goal.action.clear": "清除目标",
} as const;

export type TranslationKey = keyof typeof zhCN;
export default zhCN;
