743 lines
31 KiB
TypeScript
743 lines
31 KiB
TypeScript
import {
|
||
CompassIcon,
|
||
GraduationCapIcon,
|
||
ImageIcon,
|
||
MicroscopeIcon,
|
||
PenLineIcon,
|
||
ShapesIcon,
|
||
SparklesIcon,
|
||
VideoIcon,
|
||
} from "lucide-react";
|
||
|
||
import type { Translations } from "./types";
|
||
|
||
export const zhCN: Translations = {
|
||
// Locale meta
|
||
locale: {
|
||
localName: "中文",
|
||
},
|
||
|
||
// Common
|
||
common: {
|
||
home: "首页",
|
||
settings: "设置",
|
||
delete: "删除",
|
||
edit: "编辑",
|
||
rename: "重命名",
|
||
share: "分享",
|
||
pin: "置顶",
|
||
unpin: "取消置顶",
|
||
favorite: "收藏",
|
||
unfavorite: "取消收藏",
|
||
openInNewWindow: "在新窗口打开",
|
||
close: "关闭",
|
||
more: "更多",
|
||
search: "搜索",
|
||
download: "下载",
|
||
thinking: "思考",
|
||
artifacts: "文件",
|
||
public: "公共",
|
||
custom: "自定义",
|
||
notAvailableInDemoMode: "在演示模式下不可用",
|
||
loading: "加载中...",
|
||
version: "版本",
|
||
lastUpdated: "最后更新",
|
||
code: "代码",
|
||
preview: "预览",
|
||
cancel: "取消",
|
||
confirm: "确定",
|
||
save: "保存",
|
||
install: "安装",
|
||
create: "创建",
|
||
import: "导入",
|
||
export: "导出",
|
||
exportAsMarkdown: "导出为 Markdown",
|
||
exportAsJSON: "导出为 JSON",
|
||
exportAsWord: "导出为 Word",
|
||
exportSuccess: "对话已导出",
|
||
},
|
||
|
||
// Home
|
||
home: {
|
||
docs: "文档",
|
||
blog: "博客",
|
||
},
|
||
|
||
// Welcome
|
||
welcome: {
|
||
greeting: "你好,欢迎使用CM助手",
|
||
description:
|
||
"欢迎使用 CM 助手",
|
||
|
||
createYourOwnSkill: "创建你自己的 Agent SKill",
|
||
createYourOwnSkillDescription:
|
||
"创建你的 Agent Skill 来释放 CM 助手的潜力。通过自定义技能,CM 助手\n可以帮你搜索网络、分析数据,还能为你生成幻灯片、\n网页等作品,几乎可以做任何事情。",
|
||
},
|
||
|
||
// Clipboard
|
||
clipboard: {
|
||
copyToClipboard: "复制到剪贴板",
|
||
copiedToClipboard: "已复制到剪贴板",
|
||
failedToCopyToClipboard: "复制到剪贴板失败",
|
||
linkCopied: "链接已复制到剪贴板",
|
||
},
|
||
|
||
// Input Box
|
||
inputBox: {
|
||
placeholder: "今天我能为你做些什么?",
|
||
editQuestion: "编辑问题",
|
||
deleteMessage: "删除提问及回答",
|
||
deleteMessageConfirmTitle: "删除该提问及其回答?",
|
||
deleteMessageConfirmDescription: "该提问及对应的回答都会被删除,且无法恢复。",
|
||
createSkillPrompt:
|
||
"我们一起用 skill-creator 技能来创建一个技能吧。先问问我希望这个技能能做什么。",
|
||
addAttachments: "添加附件",
|
||
mode: "模式",
|
||
flashMode: "快速",
|
||
flashModeDescription: "快速且高效的完成任务,但可能不够精准",
|
||
reasoningMode: "思考",
|
||
reasoningModeDescription: "思考后再行动,在时间与准确性之间取得平衡",
|
||
proMode: "专业问答",
|
||
proModeDescription: "思考、计划再执行,获得更精准的结果,可能需要更多时间",
|
||
ultraMode: "多智能体问答",
|
||
ultraModeDescription:
|
||
"继承自专业问答模式,可调用子代理分工协作,适合复杂多步骤任务,能力最强",
|
||
reasoningEffort: "推理深度",
|
||
reasoningEffortMinimal: "最低",
|
||
reasoningEffortMinimalDescription: "检索 + 直接输出",
|
||
reasoningEffortLow: "低",
|
||
reasoningEffortLowDescription: "简单逻辑校验 + 浅层推演",
|
||
reasoningEffortMedium: "中",
|
||
reasoningEffortMediumDescription: "多层逻辑分析 + 基础验证",
|
||
reasoningEffortHigh: "高",
|
||
reasoningEffortHighDescription: "全维度逻辑推演 + 多路径验证 + 反推校验",
|
||
searchModels: "搜索模型...",
|
||
surpriseMe: "小惊喜",
|
||
surpriseMePrompt: "给我一个小惊喜吧",
|
||
followupLoading: "正在生成可能的后续问题...",
|
||
followupConfirmTitle: "发送建议问题?",
|
||
followupConfirmDescription: "当前输入框已有内容,选择发送方式。",
|
||
followupConfirmAppend: "追加并发送",
|
||
followupConfirmReplace: "替换并发送",
|
||
suggestions: [
|
||
{
|
||
suggestion: "写作",
|
||
prompt: "撰写一篇关于[主题]的博客文章",
|
||
icon: PenLineIcon,
|
||
},
|
||
{
|
||
suggestion: "研究",
|
||
prompt: "深入浅出的研究一下[主题],并总结发现。",
|
||
icon: MicroscopeIcon,
|
||
},
|
||
{
|
||
suggestion: "收集",
|
||
prompt: "从[来源]收集数据并创建报告。",
|
||
icon: ShapesIcon,
|
||
},
|
||
{
|
||
suggestion: "学习",
|
||
prompt: "学习关于[主题]并创建教程。",
|
||
icon: GraduationCapIcon,
|
||
},
|
||
],
|
||
suggestionsCreate: [
|
||
{
|
||
suggestion: "网页",
|
||
prompt: "生成一个关于[主题]的网页",
|
||
icon: CompassIcon,
|
||
},
|
||
{
|
||
suggestion: "图片",
|
||
prompt: "生成一个关于[主题]的图片",
|
||
icon: ImageIcon,
|
||
},
|
||
{
|
||
suggestion: "视频",
|
||
prompt: "生成一个关于[主题]的视频",
|
||
icon: VideoIcon,
|
||
},
|
||
{
|
||
type: "separator",
|
||
},
|
||
{
|
||
suggestion: "技能",
|
||
prompt:
|
||
"我们一起用 skill-creator 技能来创建一个技能吧。先问问我希望这个技能能做什么。",
|
||
icon: SparklesIcon,
|
||
},
|
||
],
|
||
},
|
||
|
||
// Sidebar
|
||
sidebar: {
|
||
newChat: "新对话",
|
||
chats: "对话",
|
||
recentChats: "最近的对话",
|
||
demoChats: "演示对话",
|
||
agents: "智能体",
|
||
users: "用户管理",
|
||
},
|
||
|
||
// Agents
|
||
agents: {
|
||
title: "智能体",
|
||
description: "创建和管理具有专属 Prompt 与能力的自定义智能体。",
|
||
newAgent: "新建智能体",
|
||
emptyTitle: "还没有自定义智能体",
|
||
emptyDescription: "创建你的第一个自定义智能体,设置专属系统提示词。",
|
||
chat: "对话",
|
||
delete: "删除",
|
||
deleteConfirm: "确定要删除该智能体吗?此操作不可撤销。",
|
||
deleteSuccess: "智能体已删除",
|
||
newChat: "新对话",
|
||
createPageTitle: "设计你的智能体",
|
||
createPageSubtitle: "描述你想要的智能体,我来帮你通过对话创建。",
|
||
nameStepTitle: "给新智能体起个名字",
|
||
nameStepHint:
|
||
"只允许字母、数字和连字符,存储时自动转为小写(例如 code-reviewer)",
|
||
nameStepPlaceholder: "例如 code-reviewer",
|
||
nameStepContinue: "继续",
|
||
nameStepInvalidError: "名称无效,只允许字母、数字和连字符",
|
||
nameStepAlreadyExistsError: "已存在同名智能体",
|
||
nameStepNetworkError: "网络请求失败,请检查网络或后端连接",
|
||
nameStepCheckError: "无法验证名称可用性,请稍后重试",
|
||
nameStepBootstrapMessage:
|
||
"新智能体的名称是 {name},现在开始为它生成 **SOUL**。",
|
||
save: "保存智能体",
|
||
saving: "正在保存智能体...",
|
||
saveRequested:
|
||
"已提交保存请求,CM 助手 正在根据当前对话生成并保存初版智能体。",
|
||
saveHint:
|
||
"你可以在右上角的菜单里随时保存这个智能体,就算目前还只是初稿也可以。",
|
||
saveCommandMessage:
|
||
"请现在根据我们目前已经讨论的全部内容保存这个自定义智能体。这就是我明确的保存确认。如果仍有少量细节缺失,请根据上下文做出合理假设,生成一份简洁的英文初始 SOUL.md,并直接调用 setup_agent,不要再向我索要额外确认。",
|
||
agentCreatedPendingRefresh:
|
||
"智能体已创建,但 CM 助手 暂时还无法读取到它。请稍后刷新当前页面。",
|
||
more: "更多操作",
|
||
agentCreated: "智能体已创建!",
|
||
startChatting: "开始对话",
|
||
backToGallery: "返回 Gallery",
|
||
},
|
||
|
||
// Breadcrumb
|
||
breadcrumb: {
|
||
workspace: "工作区",
|
||
chats: "对话",
|
||
},
|
||
|
||
// Workspace
|
||
workspace: {
|
||
officialWebsite: "访问 CM 助手 官方网站",
|
||
githubTooltip: "访问 CM 助手 的 Github 仓库",
|
||
settingsAndMore: "设置和更多",
|
||
visitGithub: "在 Github 上查看 CM 助手",
|
||
reportIssue: "报告问题",
|
||
contactUs: "联系我们",
|
||
about: "关于 CM 助手",
|
||
},
|
||
|
||
// Conversation
|
||
conversation: {
|
||
noMessages: "还没有消息",
|
||
startConversation: "开始新的对话以查看消息",
|
||
},
|
||
|
||
// Chats
|
||
chats: {
|
||
searchChats: "搜索对话",
|
||
pinnedSection: "置顶",
|
||
allChats: "全部",
|
||
favorites: "收藏",
|
||
onlyFavorites: "只看收藏",
|
||
prevPage: "上一页",
|
||
nextPage: "下一页",
|
||
noChats: "暂无对话",
|
||
noFavorites: "暂无收藏的对话",
|
||
},
|
||
|
||
// Conversation sharing
|
||
threadShare: {
|
||
importChats: "导入对话",
|
||
shareTitle: "分享对话",
|
||
shareDescription:
|
||
"把这个对话分享给他人。对方在「导入对话」里填入分享码,即可把它复制一份到自己账号并继续聊天。",
|
||
generating: "生成分享码中...",
|
||
shareCodeLabel: "分享码",
|
||
copyCode: "复制",
|
||
codeCopied: "分享码已复制",
|
||
shareHint: "知道分享码的人都能复制这个对话,请谨慎分享。",
|
||
revoke: "撤销分享",
|
||
revokeConfirm: "撤销后该分享码立即失效,确定撤销?",
|
||
revokeSuccess: "已撤销分享",
|
||
importTitle: "导入对话",
|
||
importDescription: "填入对方给你的分享码,把 TA 分享的那个对话复制到你的账号。",
|
||
codeInputPlaceholder: "粘贴分享码",
|
||
preview: "预览",
|
||
previewConversation: "对话:{title}",
|
||
previewFrom: "来自用户 {user}",
|
||
doImport: "导入",
|
||
importing: "导入中...",
|
||
importSuccess: "对话已导入",
|
||
alreadyImported: "你已经导入过这个对话了",
|
||
emptyCode: "请先填入分享码",
|
||
},
|
||
|
||
// Page titles (document title)
|
||
pages: {
|
||
appName: "CM 助手",
|
||
brandSubtitle: "Smart CM Platform",
|
||
chats: "对话",
|
||
newChat: "新对话",
|
||
untitled: "未命名",
|
||
},
|
||
|
||
// Tool calls
|
||
toolCalls: {
|
||
moreSteps: (count: number) => `查看其他 ${count} 个步骤`,
|
||
lessSteps: "隐藏步骤",
|
||
executeCommand: "执行命令",
|
||
presentFiles: "展示文件",
|
||
needYourHelp: "需要你的协助",
|
||
useTool: (toolName: string) => `使用 “${toolName}” 工具`,
|
||
searchFor: (query: string) => `搜索 “${query}”`,
|
||
searchForRelatedInfo: "搜索相关信息",
|
||
searchForRelatedImages: "搜索相关图片",
|
||
searchForRelatedImagesFor: (query: string) => `搜索相关图片 “${query}”`,
|
||
searchOnWebFor: (query: string) => `在网络上搜索 “${query}”`,
|
||
viewWebPage: "查看网页",
|
||
listFolder: "列出文件夹",
|
||
readFile: "读取文件",
|
||
writeFile: "写入文件",
|
||
clickToViewContent: "点击查看文件内容",
|
||
writeTodos: "更新 To-do 列表",
|
||
skillInstallTooltip: "安装技能并使其可在 CM 助手 中使用",
|
||
},
|
||
|
||
uploads: {
|
||
uploading: "上传中...",
|
||
uploadingFiles: "文件上传中,请稍候...",
|
||
},
|
||
|
||
subtasks: {
|
||
subtask: "子任务",
|
||
executing: (count: number) =>
|
||
`${count > 1 ? "并行" : ""}执行 ${count} 个子任务`,
|
||
in_progress: "子任务运行中",
|
||
completed: "子任务已完成",
|
||
failed: "子任务失败",
|
||
},
|
||
|
||
// Token Usage
|
||
tokenUsage: {
|
||
title: "Token 用量",
|
||
label: "Tokens",
|
||
input: "输入",
|
||
output: "输出",
|
||
total: "总计",
|
||
unavailable:
|
||
"暂无 Token 用量。只有模型成功返回且供应商提供 usage_metadata 时才会显示。",
|
||
unavailableShort: "未返回用量",
|
||
},
|
||
|
||
// Shortcuts
|
||
shortcuts: {
|
||
searchActions: "搜索操作...",
|
||
noResults: "未找到结果。",
|
||
actions: "操作",
|
||
keyboardShortcuts: "键盘快捷键",
|
||
keyboardShortcutsDescription: "使用键盘快捷键更快地操作 CM 助手。",
|
||
openCommandPalette: "打开命令面板",
|
||
toggleSidebar: "切换侧边栏",
|
||
},
|
||
|
||
// Settings
|
||
settings: {
|
||
title: "设置",
|
||
description: "根据你的偏好调整 CM 助手 的界面和行为。",
|
||
sections: {
|
||
appearance: "外观",
|
||
memory: "记忆",
|
||
tools: "工具",
|
||
skills: "技能",
|
||
notification: "通知",
|
||
about: "关于",
|
||
},
|
||
memory: {
|
||
title: "记忆",
|
||
description:
|
||
"CM 助手 的记忆分两类:用户画像跨所有助手共享,工作笔记按当前助手隔离。你可以在这里查看和管理。",
|
||
loadError: "加载记忆失败",
|
||
usageLabel: "用量",
|
||
entryEmpty: "还没有记忆条目。",
|
||
userProfileTitle: "用户画像",
|
||
userProfileDesc: "关于你的事实 —— 姓名、角色、偏好、沟通风格,所有助手共享。",
|
||
workNotesTitle: "工作笔记",
|
||
workNotesDesc: "按专家隔离的工作笔记 —— 环境事实、约定、踩过的坑。选择专家查看对应笔记。",
|
||
workNotesAgentLabel: "专家",
|
||
workNotesDefaultAgent: "默认助手",
|
||
addEntry: "添加条目",
|
||
addEntryTitle: "添加记忆条目",
|
||
editEntryTitle: "编辑记忆条目",
|
||
entryContentLabel: "内容",
|
||
entryContentPlaceholder: "描述你想保存的记忆内容",
|
||
entrySaveSuccess: "条目已保存",
|
||
entryValidationContent: "条目内容不能为空。",
|
||
deleteEntryTitle: "要删除这条记忆吗?",
|
||
deleteEntryDesc: "这条记忆会立即删除。此操作无法撤销。",
|
||
deleteEntrySuccess: "条目已删除",
|
||
entryToDeleteLabel: "即将删除的条目",
|
||
save: "保存",
|
||
settingsTitle: "记忆设置",
|
||
settingsDesc: "调整记忆的注入与检索行为。修改即时生效。",
|
||
injectionEnabled: "注入记忆到对话",
|
||
injectionEnabledDesc: "记忆功能的总开关。开启后,助手回答时会参考它记住的关于你的信息和过往对话;关闭后,助手在对话中看不到任何记忆,每次都像第一次和你交流。下面几项都需要此开关开启才会生效。",
|
||
includeBuiltin: "注入本地记忆",
|
||
includeBuiltinDesc: "把保存在本机的记忆作为背景知识提供给助手,包括「用户画像」(你的身份、习惯、偏好等长期信息)和「工作笔记」(助手在协作中为你记下的要点)。这类记忆存在服务器本地文件里,不依赖任何外部服务。",
|
||
includeHindsight: "注入 Hindsight 召回",
|
||
includeHindsightDesc: "每次回答前,自动从 Hindsight 长期记忆库中检索与当前话题相关的历史记忆,临时补充给助手参考。需要已部署并连通 Hindsight 服务才会生效。",
|
||
maxTokens: "注入 token 上限",
|
||
maxTokensDesc: "每次注入的记忆最多占用多少篇幅(单位 token,中文大致相当于字数)。设得越大,助手能看到的记忆越多,但会挤占对话本身的可用空间。可填 100–8000。",
|
||
memoryMode: "Hindsight 工具模式",
|
||
memoryModeDesc: "决定助手如何使用 Hindsight 记忆库:由系统在后台自动检索、把检索工具交给助手按需自己调用、或两者都启用。",
|
||
memoryModeContext: "context —— 仅后台自动召回,助手无需操作",
|
||
memoryModeTools: "tools —— 仅提供检索工具,由助手按需自己查",
|
||
memoryModeHybrid: "hybrid —— 后台自动召回 + 检索工具,两者都启用",
|
||
recallBudget: "召回深度",
|
||
recallBudgetDesc: "Hindsight 每次检索的彻底程度。越高找得越全面,但响应越慢、计算开销越大;越低越快,但可能漏掉相关记忆。",
|
||
recallBudgetLow: "低",
|
||
recallBudgetMid: "中",
|
||
recallBudgetHigh: "高",
|
||
bankMission: "Hindsight 综合推理设定",
|
||
bankMissionDesc: "使用「综合」模式检索时,告诉 Hindsight 以什么身份、从什么角度来归纳整理记忆。留空则使用默认设定。",
|
||
bankMissionPlaceholder: "例如:你是用户的长期助手,关注其工作偏好。",
|
||
settingsSaved: "设置已保存",
|
||
searchTitle: "Hindsight 记忆检索",
|
||
searchDesc: "在 Hindsight 长期记忆库里检索历史记忆。",
|
||
searchPlaceholder: "搜索历史记忆…",
|
||
searchModeRecall: "检索",
|
||
searchModeReflect: "综合",
|
||
searchButton: "搜索",
|
||
searchUnavailable: "Hindsight 未配置或不可用。",
|
||
searchNoResults: "没有找到相关记忆。",
|
||
searchResultsTitle: "检索结果",
|
||
searchEmpty: "输入关键词检索 Hindsight 记忆。",
|
||
},
|
||
appearance: {
|
||
themeTitle: "主题",
|
||
themeDescription: "跟随系统或选择固定的界面模式。",
|
||
system: "系统",
|
||
light: "浅色",
|
||
dark: "深色",
|
||
lightblue: "浅蓝",
|
||
lightgreen: "绿色",
|
||
iceblue: "冰川蓝",
|
||
lightyellow: "浅黄色",
|
||
systemDescription: "自动跟随系统主题。",
|
||
lightDescription: "更明亮的配色,适合日间使用。",
|
||
darkDescription: "更暗的配色,减少眩光方便专注。",
|
||
lightblueDescription: "以蓝色为主色的清爽浅色配色。",
|
||
lightgreenDescription: "采用清新绿色的浅色配色。",
|
||
iceblueDescription: "以 #9BCEF1 为主色,搭配冰蓝留白与沉稳交互色。",
|
||
lightyellowDescription: "以 #F3FBD9 为主色,搭配柔和浅黄留白与深橄榄交互色。",
|
||
languageTitle: "语言",
|
||
languageDescription: "在不同语言之间切换。",
|
||
},
|
||
tools: {
|
||
title: "工具",
|
||
description: "管理 MCP 工具的配置和启用状态。",
|
||
},
|
||
skills: {
|
||
title: "技能",
|
||
description: "管理 Agent Skill 配置和启用状态。",
|
||
createSkill: "新建技能",
|
||
installSkill: "安装技能",
|
||
rescanSkills: "重新扫描技能目录",
|
||
rescanSkillsRunning: "扫描中…",
|
||
rescanSkillsAdopted: "已收纳 {count} 个新技能",
|
||
rescanSkillsNoop: "没有发现需要收纳的新技能",
|
||
goToEvolution: "自我进化",
|
||
paginationPrev: "上一页",
|
||
paginationNext: "下一页",
|
||
paginationPageOf: "第 {page} / {total} 页",
|
||
emptyTitle: "还没有技能",
|
||
emptyDescription:
|
||
"将你的 Agent Skill 文件夹放在 CM 助手 根目录下的 `/skills/custom` 文件夹中。",
|
||
emptyButton: "创建你的第一个技能",
|
||
badgeBuiltin: "内置",
|
||
badgeMine: "我的",
|
||
badgeFromOthers: "来自他人",
|
||
badgeFromOthersTitle: "来自用户 {user_id}",
|
||
badgePublished: "已发布",
|
||
badgePublishedTitle: "该技能已对所有用户可见",
|
||
badgeUnpublished: "未发布",
|
||
badgeUnpublishedTitle: "该技能尚未发布,仅所有者可见",
|
||
badgeStale: "过时",
|
||
badgeStaleTitle: "长期未使用,已被策展程序标记",
|
||
badgeArchived: "归档",
|
||
badgeArchivedTitle: "已被归档,可在归档抽屉中恢复",
|
||
badgePinned: "钉选",
|
||
badgePinnedTitle: "已钉选,策展程序不会自动归档此技能",
|
||
badgeFeatured: "置顶",
|
||
badgeFeaturedTitle: "已置顶,固定显示在列表顶部",
|
||
badgeSourceAgent: "Agent 创建",
|
||
badgeSourceAgentTitle: "在对话中由 Agent 自动生成",
|
||
badgeSourceUpload: "用户上传",
|
||
badgeSourceUploadTitle: "由用户手动上传或编辑",
|
||
tabAll: "广场",
|
||
tabMine: "我的",
|
||
entryStale: "过时 {count}",
|
||
entryArchived: "归档 {count}",
|
||
useCountInline: "调用 {count} 次",
|
||
useCountInlineZero: "尚未调用",
|
||
publishAction: "发布",
|
||
unpublishAction: "取消发布",
|
||
publishSuccess: "已发布",
|
||
unpublishSuccess: "已取消发布",
|
||
pinAction: "钉选(防止被自动归档)",
|
||
unpinAction: "取消钉选",
|
||
pinSuccess: "已钉选",
|
||
unpinSuccess: "已取消钉选",
|
||
featureAction: "置顶",
|
||
unfeatureAction: "取消置顶",
|
||
featureSuccess: "已置顶",
|
||
unfeatureSuccess: "已取消置顶",
|
||
deleteAction: "删除技能",
|
||
deleteConfirm: "确认删除技能 “{name}”?该操作不可恢复,且会从引用它的所有智能体中自动移除。",
|
||
deleteSuccess: "技能已删除",
|
||
detailSectionTitle: "详情",
|
||
detailEmpty: "暂无详情说明。",
|
||
detailEditAction: "编辑详情",
|
||
detailPlaceholder: "用 Markdown 补充技能的用途、适用场景、使用说明等。",
|
||
detailSaveSuccess: "详情已更新",
|
||
detailAdminOnlyHint: "仅管理员或技能发布者可编辑详情。",
|
||
contentSectionTitle: "SKILL.md 原文",
|
||
filesSectionTitle: "文件",
|
||
filesEmpty: "该技能目录下没有可显示的文件。",
|
||
filesLoadError: "加载文件失败",
|
||
filesPreviewBinary: "二进制文件无法预览,可点击下载查看。",
|
||
filesPreviewUnsupported: "该文件类型暂不支持预览。",
|
||
filesPreviewTooLarge: "文件过大,无法在线预览。",
|
||
filesEditAction: "编辑",
|
||
filesSaveAction: "保存",
|
||
filesCancelEditAction: "取消",
|
||
filesDownloadAction: "下载",
|
||
filesCopyPathAction: "复制路径",
|
||
filesDiscardConfirm: "有未保存的修改,确定放弃吗?",
|
||
filesSaveSuccess: "文件已保存",
|
||
filesDeleteAction: "删除",
|
||
filesDeleteConfirm: "确定删除“{path}”?该操作不可撤销。",
|
||
filesDeleteSuccess: "文件已删除",
|
||
filesReadOnlyHint: "仅管理员可以编辑或删除内置技能文件。",
|
||
viewDetailAction: "查看技能详情",
|
||
stateSheet: {
|
||
archivedTitle: "归档的技能",
|
||
archivedDescription: "这些技能已被你或策展程序归档,可随时恢复。",
|
||
staleTitle: "过时的技能",
|
||
staleDescription: "这些技能长期未被使用,已被策展程序标记。重新使用一次会自动恢复活跃,你也可以主动处理。",
|
||
empty: "暂无内容",
|
||
actionRestore: "恢复",
|
||
actionArchiveNow: "立即归档",
|
||
actionView: "查看详情",
|
||
actionPin: "钉选",
|
||
actionUnpin: "取消钉选",
|
||
actionDelete: "永久删除",
|
||
moreMenu: "更多操作",
|
||
archivedAt: "归档于 {when}",
|
||
lastUsedAt: "最近使用 {when}",
|
||
neverUsed: "尚未使用",
|
||
restoreSuccess: "已恢复",
|
||
archiveSuccess: "已归档",
|
||
pinSuccess: "已钉选",
|
||
unpinSuccess: "已取消钉选",
|
||
},
|
||
viewDialog: {
|
||
title: "技能详情",
|
||
descriptionLabel: "描述",
|
||
stateLabel: "状态",
|
||
sourceLabel: "来源",
|
||
useCountLabel: "调用次数",
|
||
lastUsedLabel: "最近使用",
|
||
close: "关闭",
|
||
},
|
||
installDialog: {
|
||
title: "安装技能",
|
||
dropHint: "拖拽 .zip 或 .skill 文件到此处,或者",
|
||
chooseFile: "选择文件",
|
||
validating: "正在校验文件…",
|
||
installing: "安装中…",
|
||
replace: "覆盖已有",
|
||
install: "安装",
|
||
cancel: "取消",
|
||
nameLabel: "名称",
|
||
descriptionLabel: "描述",
|
||
licenseLabel: "许可证",
|
||
toolsLabel: "允许的工具",
|
||
warningsLabel: "警告",
|
||
conflictCustom:
|
||
"已存在同名自定义技能 “{name}”。点击「覆盖已有」可替换(原启用状态保留)。",
|
||
conflictPublic: `存在同名内置技能 '{name}',无法覆盖。`,
|
||
conflictPublicAdminHint: `存在同名内置技能 '{name}'。切换到「内置技能」并点击「覆盖已有」可替换。`,
|
||
installSuccess: `技能 '{name}' 已安装。`,
|
||
installSuccessReplaced: `技能 '{name}' 已替换。`,
|
||
rejectInvalidExt: `只接受 .zip 或 .skill 文件。`,
|
||
targetCategoryLabel: `安装到`,
|
||
categoryCustom: `自定义技能`,
|
||
categoryPublic: `内置技能(管理员)`,
|
||
nameZhStepTitle: "设置中文名",
|
||
nameZhStepHint:
|
||
"技能 “{name}” 已安装。你可以为它填写一个中文名,或让大模型自动生成一个默认中文名(留空则使用英文名)。",
|
||
nameZhPlaceholder: "请输入中文名(可留空)",
|
||
nameZhGenerate: "AI 生成",
|
||
nameZhSkip: "跳过",
|
||
nameZhGenerated: "已生成中文名称",
|
||
nameZhSaved: "已保存中文名",
|
||
},
|
||
},
|
||
skillEvolution: {
|
||
title: "自我进化",
|
||
description:
|
||
"管理技能 curator:让 agent 在后台对自创建的技能做老化标记、归档和合并建议。",
|
||
backToSkills: "返回技能",
|
||
status: {
|
||
title: "当前状态",
|
||
enabled: "已启用",
|
||
disabled: "已停用",
|
||
paused: "已暂停",
|
||
runCount: "累计运行",
|
||
runCountUnit: "次",
|
||
lastRunAt: "上次运行",
|
||
lastRunNever: "尚未运行",
|
||
lastRunSummary: "上次摘要",
|
||
lastRunSummaryEmpty: "—",
|
||
skillCounts: "技能",
|
||
active: "活跃",
|
||
stale: "陈旧",
|
||
archived: "已归档",
|
||
total: "合计",
|
||
pinned: "被钉住",
|
||
runNow: "立即执行",
|
||
runStarted: "已触发后台执行",
|
||
runBlockedEvolutionDisabled: "自我进化未开启 —— 请先在下方打开开关。",
|
||
runBlockedCuratorDisabled: "curator 未开启 —— 请先在下方打开 curator 开关。",
|
||
runBlockedAlreadyRunning: "已有一次 curator 运行进行中。",
|
||
runDisabledHint: "请先在下方开启自我进化与 curator 开关。",
|
||
lastActions: "最近一次运行",
|
||
llmSuggested: "LLM 建议(自述)",
|
||
actuallyDid: "实际执行(工具调用)",
|
||
noActions: "无",
|
||
},
|
||
config: {
|
||
title: "配置",
|
||
description:
|
||
"保存后会写入 skill_evolution.json 并热更新,无需重启。",
|
||
enabledLabel: "启用自我进化",
|
||
enabledHelper:
|
||
"自我进化的总开关。开启后会给 agent 注册 skill_manage 工具 —— 它就能在对话中创建、修改、删除 custom/ 目录下的技能,并在完成复杂任务后主动提议把流程沉淀为技能。关闭后这些写技能的能力全部收起,agent 只能查看和使用已有技能。下方 curator 的所有设置都需要此开关开启才生效。",
|
||
curatorEnabledLabel: "curator 自动运行",
|
||
curatorEnabledHelper:
|
||
"curator 是后台的技能策展程序,会定期巡检技能库:把长期不用的技能标记为陈旧、再归档,并用 LLM 评审是否该合并重复技能。开启后按下面的运行间隔自动运行;关闭后只能在本页面手动点「立即执行」触发。",
|
||
intervalHoursLabel: "运行间隔(小时)",
|
||
intervalHoursHelper:
|
||
"两次 curator 自动运行之间至少间隔的小时数,默认 168 小时(一周)。手动触发不受此限制。",
|
||
staleAfterDaysLabel: "陈旧阈值(天)",
|
||
staleAfterDaysHelper:
|
||
"一个技能连续这么多天没被使用,就会被 curator 标记为「陈旧」。陈旧技能不再注入 agent 的提示词,但文件仍保留;被重新用到时会自动恢复为活跃。",
|
||
archiveAfterDaysLabel: "归档阈值(天)",
|
||
archiveAfterDaysHelper:
|
||
"一个技能从最后一次使用算起连续闲置这么多天,就会被 curator 自动「归档」(按总闲置天数计算,不是在标记陈旧之后再单独累加)。归档是软删除,文件仍留在 custom/ 目录、可随时手动恢复;此值需大于陈旧阈值。",
|
||
curatorModelLabel: "技能优化模型",
|
||
curatorModelHelper:
|
||
"curator 做技能评审(判断能否合并、精简)和技能安全审核时使用的模型。留空则使用主模型。",
|
||
curatorModelDefault: "主模型(默认)",
|
||
save: "保存修改",
|
||
saveSuccess: "配置已更新",
|
||
reset: "重置",
|
||
},
|
||
logs: {
|
||
title: "最近运行日志",
|
||
description: "展示最近一次 curator 运行的日志,服务重启会清空。",
|
||
empty: "暂无日志。点击「立即执行」会写入新的运行记录。",
|
||
autoRefresh: "自动刷新 (2s)",
|
||
refresh: "立即刷新",
|
||
},
|
||
},
|
||
notification: {
|
||
title: "通知",
|
||
description:
|
||
"CM 助手 只会在窗口不活跃时发送完成通知,特别适合长时间任务:你可以先去做别的事,完成后会收到提醒。",
|
||
requestPermission: "请求通知权限",
|
||
deniedHint:
|
||
"通知权限已被拒绝。可在浏览器的网站设置中重新开启,以接收完成提醒。",
|
||
testButton: "发送测试通知",
|
||
testTitle: "CM 助手",
|
||
testBody: "这是一条测试通知。",
|
||
notSupported: "当前浏览器不支持通知功能。",
|
||
disableNotification: "关闭通知",
|
||
},
|
||
acknowledge: {
|
||
emptyTitle: "致谢",
|
||
emptyDescription: "相关的致谢信息会展示在这里。",
|
||
},
|
||
},
|
||
|
||
adminUsers: {
|
||
title: "用户管理",
|
||
description: "查看所有注册用户及其关联的技能和智能体数量。",
|
||
email: "邮箱",
|
||
role: "角色",
|
||
userId: "用户 ID",
|
||
skillCount: "技能数",
|
||
agentCount: "智能体数",
|
||
roleAdmin: "管理员",
|
||
roleUser: "普通用户",
|
||
empty: "暂无用户",
|
||
},
|
||
|
||
adminTags: {
|
||
title: "标签管理",
|
||
description: "为智能体、技能和定时任务创建并管理标签。标签只能用于其所属类型的资源。",
|
||
typeAgent: "智能体标签",
|
||
typeSkill: "技能标签",
|
||
typeScheduledTask: "定时任务标签",
|
||
name: "名称",
|
||
color: "颜色",
|
||
tagDescription: "描述",
|
||
usageCount: "使用数",
|
||
actions: "操作",
|
||
empty: "暂无标签",
|
||
createButton: "新建标签",
|
||
createTitle: "创建标签",
|
||
editTitle: "编辑标签",
|
||
deleteConfirm: "确认删除此标签?它将从所有已打标签的资源上移除。",
|
||
namePlaceholder: "标签名称",
|
||
descriptionPlaceholder: "描述(可选)",
|
||
save: "保存",
|
||
cancel: "取消",
|
||
edit: "编辑",
|
||
delete: "删除",
|
||
pickerTitle: "编辑标签",
|
||
pickerHint: "点击标签即可绑定或解绑,修改实时保存。",
|
||
pickerEmpty: "该类型暂无可用标签,请先在标签管理中创建。",
|
||
pickerSelectedCount: "已选 {count} 个",
|
||
saving: "保存中…",
|
||
done: "完成",
|
||
manageTags: "标签",
|
||
searchPlaceholder: "按名称搜索",
|
||
filterByTag: "按标签筛选",
|
||
allTags: "全部标签",
|
||
},
|
||
|
||
notifications: {
|
||
title: "通知",
|
||
bellAria: "打开通知",
|
||
unreadShort: "{count} 条未读",
|
||
markAllRead: "全部已读",
|
||
empty: "暂无通知",
|
||
deleteAria: "删除通知",
|
||
settingsAria: "通知设置",
|
||
backAria: "返回",
|
||
settingsTitle: "通知设置",
|
||
},
|
||
};
|