{
  "common": {
    "save": "保存",
    "cancel": "取消",
    "confirm": "确认",
    "delete": "删除",
    "edit": "编辑",
    "back": "返回",
    "next": "下一步",
    "loading": "加载中...",
    "prev": "上一页",
    "public": "公开",
    "private": "私有",
    "limited": "有限访问",
    "required": "必填",
    "set": "已设置",
    "skills": "个技能",
    "skill": "个技能",
    "found": "找到",
    "by": "作者",
    "clearSearch": "清除搜索",
    "close": "关闭",
    "gotIt": "知道了",
    "remove": "移除",
    "unsavedChanges": "未保存的更改",
    "aria": {
      "dismissNotification": "关闭通知",
      "notifications": "通知",
      "categoryDescriptions": "类别说明",
      "closeDrawer": "关闭抽屉"
    }
  },
  "nav": {
    "home": "首页",
    "registry": "技能库",
    "build": "构建",
    "docs": "文档",
    "news": "动态",
    "contact": "联系",
    "signIn": "登录",
    "signOut": "退出",
    "settings": "设置",
    "adminPanel": "管理面板",
    "redeemCode": "兑换码",
    "goToNyxId": "前往 NyxID",
    "createSkill": "创建技能",
    "lightMode": "浅色模式",
    "darkMode": "深色模式",
    "myProfile": "个人资料",
    "myOrgs": "我的组织",
    "myServices": "我的服务",
    "adminServices": "平台服务",
    "admin": {
      "broadcasts": "广播通知"
    }
  },
  "breadcrumb": {
    "ornn": "ornn",
    "publicSkills": "公共技能",
    "mySkills": "我的技能",
    "createSkill": "创建技能",
    "guided": "引导式",
    "upload": "上传",
    "generate": "生成",
    "editSkill": "编辑技能",
    "playground": "试验场",
    "settings": "设置",
    "docs": "文档",
    "admin": "管理",
    "categories": "分类",
    "tags": "标签",
    "auditHistory": "审计历史"
  },
  "explore": {
    "systemSkills": "系统技能",
    "publicSkills": "公共技能",
    "mySkills": "我的技能",
    "sharedWithMe": "分享给我的",
    "noSkillsFound": "未找到技能",
    "noSharedSkills": "还没有人把技能分享给你。",
    "tryAdjusting": "尝试调整搜索条件，或上传第一个技能。",
    "noSkillsYet": "暂无技能",
    "createFirst": "创建你的第一个技能开始吧",
    "uploadSkill": "上传技能",
    "createSkill": "创建技能"
  },
  "mySkills": {
    "searchPlaceholder": "搜索你的技能…",
    "skillsFound": "找到 {{count}} {{unit}}",
    "noMatching": "没有匹配的技能",
    "tryAdjusting": "尝试调整搜索条件",
    "noSkillsYet": "暂无技能",
    "createFirst": "创建你的第一个技能开始吧",
    "deleteTitle": "删除技能?",
    "deleteConfirm": "确定要删除 <strong>{{name}}</strong> 吗？此操作不可撤销。",
    "deleteSuccess": "技能删除成功",
    "deleteFailed": "删除技能失败"
  },
  "skillInstallCard": {
    "title": "安装",
    "subtitle": "通过下面任一方式把这个技能装到你自己的 agent 里。",
    "tablistAria": "安装方式",
    "tabPrompt": "提示词",
    "tabNpx": "Npx 命令",
    "promptHelper": "复制下面这段内容粘贴到你的 agent —— 它会指引 agent 从 Ornn 拉取并安装该技能。",
    "npxHelper": "已镜像到 GitHub，可在任何 agent 环境中一行命令安装。",
    "npxNotAvailablePrivate": "不可用 —— 私有技能不会镜像到 GitHub。请改用 Via prompt。",
    "npxNotAvailableMirrorOff": "不可用 —— 当前部署未配置 GitHub 镜像。请改用 Via prompt。",
    "copy": "复制",
    "copied": "已复制",
    "copyPromptAria": "复制安装提示词",
    "copyNpxAria": "复制安装命令",
    "viewOnGithub": "在 GitHub 上查看",
    "synced": "已同步",
    "lagging": "落后",
    "pending": "等待首次同步",
    "lastSync": "最近同步",
    "commit": "Commit"
  },
  "skillDetail": {
    "packageContents": "技能内容",
    "description": "描述",
    "tags": "标签",
    "author": "作者",
    "created": "创建时间",
    "updated": "更新时间",
    "visibility": "可见范围",
    "sharedWithSummary": "分享给 {{users}} 位用户、{{orgs}} 个组织",
    "tryPlayground": "在试验场中使用",
    "managePermissions": "管理权限",
    "startAuditing": "开始审计",
    "auditStartedTitle": "审计已开始",
    "auditStartedBody": "审计正在后台运行，大约需要 20-30 秒。完成后会在下方的审计历史卡片中出现新记录。你可以关闭此对话框继续其他操作。",
    "auditDone": "审计完成 — 裁决 {{v}}，得分 {{s}}/10",
    "makePublic": "设为公开",
    "makePrivate": "设为私有",
    "saveChanges": "保存更改",
    "saveConfirm": "保存对 {{name}} 的更改？",
    "skipValidation": "跳过格式校验",
    "skipDescription": "不检查格式规则直接上传",
    "deleteTitle": "删除技能",
    "deleteConfirm": "确定要删除 <strong>{{name}}</strong> 吗？此操作不可撤销。",
    "updateSuccess": "技能已更新",
    "saveFailed": "保存技能包失败",
    "deleteSuccess": "技能已删除",
    "deleteFailed": "删除技能失败",
    "nowPublic": "技能已设为公开",
    "nowPrivate": "技能已设为私有",
    "visibilityFailed": "更新可见范围失败",
    "notFound": "未找到技能",
    "notFoundDesc": "你查找的技能不存在。",
    "backToExplore": "返回技能库",
    "failedPackage": "无法加载技能内容。",
    "noPackage": "没有可显示的技能内容。",
    "downloadSkill": "下载技能包",
    "tryWithCli": "使用 Nyx CLI",
    "version": "版本",
    "versions": "版本",
    "latest": "最新",
    "deprecated": "已废弃",
    "deprecationWarning": "作者已将此版本标记为废弃，建议改用更新的版本。",
    "deprecationBannerTitle": "版本 {{version}} 已废弃",
    "deprecationBannerBody": "作者说明：{{note}}",
    "viewLatest": "切换到最新版本（{{version}}）",
    "markDeprecated": "标记为废弃",
    "unmarkDeprecated": "取消废弃",
    "deprecationModalTitle": "废弃版本 {{version}}",
    "deprecationNoteLabel": "说明（可选）",
    "deprecationNotePlaceholder": "原因、迁移路径或替代版本…",
    "deprecationUpdated": "废弃状态已更新",
    "deprecationFailed": "更新废弃状态失败",
    "auditBannerNotAudited": "v{{v}} 还没有审计过。作者分享时审计门会读这条记录。",
    "auditBannerYellow": "v{{v}} 的审计裁决为黄色（{{score}}/10），存在一些发现，谨慎使用。",
    "auditBannerRed": "v{{v}} 的审计裁决为红色（{{score}}/10），请谨慎使用。",
    "deleteVersion": "删除此版本",
    "deleteVersionBlockedOnly": "无法删除唯一剩余的版本。请改用危险区的“删除技能”操作。",
    "deleteVersionBlockedLatest": "无法删除当前的最新版本。请先发布一个更新的版本,然后再删除这一版。",
    "deleteVersionTitle": "删除 v{{version}}？",
    "deleteVersionConfirm": "确定要删除 v{{version}} 吗？该版本的安装包和审计历史会一并移除，此操作不可撤销。",
    "versionDeleted": "版本 v{{version}} 已删除",
    "versionDeleteFailed": "删除版本失败",
    "heroAuditNone": "未审计",
    "heroAuditPass": "通过",
    "heroAuditWarn": "注意",
    "heroAuditFail": "风险",
    "heroAuditPill": "审计 {{score}} · {{label}}",
    "heroPulls7d": "{{n}} 次拉取 · 7 天",
    "heroPublishedOn": "发布于 {{date}}",
    "heroUpdatedOn": "更新于 {{date}}",
    "heroTagsMore": "+{{n}} 个",
    "heroTryPlayground": "在试验场中使用",
    "heroDownload": "下载技能包",
    "heroEditSkill": "编辑技能",
    "tabContent": "技能内容",
    "tabAuditHistory": "审计历史",
    "cardAudit": "审计",
    "cardVisibility": "可见性",
    "cardVersions": "版本",
    "cardDanger": "危险区",
    "auditLast": "最近审计 {{date}}",
    "auditNoneYet": "此版本尚未审计。",
    "auditNone": "未审计",
    "auditPassLabel": "通过 · 风险低",
    "auditWarnLabel": "注意",
    "auditFailLabel": "风险",
    "startNewAudit": "重新审计",
    "shareUsers": "位用户",
    "shareOrgs": "个组织",
    "versionsTotal": "共 {{n}} 个版本",
    "browseVersions": "浏览全部版本",
    "hideVersions": "收起版本列表",
    "dangerExplain": "彻底删除此技能及其所有版本。此操作无法撤销。",
    "deleteSkill": "删除技能",
    "metaCategory": "分类",
    "metaTags": "标签",
    "metaSource": "来源",
    "metaUpdated": "更新于",
    "metaGuid": "GUID",
    "metaLicense": "许可证",
    "metaCompatibility": "兼容性",
    "cardMetadata": "元数据",
    "cardAdvanced": "高级选项",
    "guidCopied": "GUID 已复制",
    "auditRunning": "审计进行中",
    "auditRunningHint": "正在用审计引擎评分 — 通常需要 30–60 秒。"
  },
  "editSkill": {
    "backToSkill": "返回 {{name}}",
    "titlePrefix": "编辑",
    "visibilityHeading": "可见范围",
    "currentVisibility": "当前可见范围：",
    "badgePrivate": "私有",
    "badgePublic": "公开",
    "privateDesc": "只有你能看到此技能。设为公开后其他用户才能看到。",
    "publicDesc": "所有人都能看到此技能。设为私有后将隐藏。",
    "makePublic": "设为公开",
    "makePrivate": "设为私有",
    "updatePackageHeading": "更新技能包",
    "updatePackageDesc": "上传新的 ZIP 包替换当前技能内容。标签、描述和元数据会从 ZIP 里的 SKILL.md 中提取。",
    "selectZip": "点击选择 .zip 文件",
    "zipSizeHint": ".zip 文件，最大 50 MB",
    "uploadPackage": "上传技能包",
    "nowPublic": "技能已设为公开",
    "nowPrivate": "技能已设为私有",
    "visibilityFailed": "更新可见范围失败",
    "packageUpdated": "技能包已更新",
    "packageFailed": "更新技能包失败",
    "notFound": "未找到技能"
  },
  "audit": {
    "historyHeading": "审计历史",
    "historyLoading": "加载审计历史…",
    "historyError": "无法加载审计历史。",
    "historyEmpty": "暂无审计记录。",
    "historyEmptyForVersion": "v{{v}} 还没有审计记录。",
    "historyForVersion": "v{{v}} 的 {{n}} 条审计记录",
    "historyHeadingForVersion": "审计历史 · v{{v}}",
    "historyCountWithRunning": "{{n}} 条记录 — {{r}} 条进行中",
    "versionOne": "1 个审计过的版本",
    "versionMany": "{{n}} 个审计过的版本",
    "viewHistory": "查看历史",
    "backToSkill": "返回技能",
    "notAuditedYet": "尚未审计",
    "scoresHeading": "各维度评分",
    "findingsHeading": "审计发现",
    "noFindings": "无审计发现 —— 审计引擎没有标记任何问题。",
    "findingOne": "条发现",
    "findingMany": "条发现",
    "model": "模型",
    "triggeredBy": "触发者",
    "statusRunning": "进行中",
    "statusFailed": "失败",
    "runningHint": "正在由审计引擎评分…",
    "rerun": "重新运行",
    "runFirst": "开始审计",
    "triggeredByUnknown": "未知用户"
  },
  "analytics": {
    "heading": "使用分析",
    "executions": "次执行",
    "uniqueUsers": "独立用户",
    "successRate": "成功率",
    "outcomeBreakdown": "结果分布",
    "topErrors": "主要错误",
    "loading": "加载分析数据…",
    "loadFailed": "无法加载使用分析。",
    "unavailable": "使用分析暂不可用。",
    "usageHeading": "技能使用情况",
    "usageSubtitle": "随时间变化的拉取数：api = SDK / CLI / agent · web = 详情页下载 · playground = 平台内试用。",
    "bucketHour": "小时",
    "bucketDay": "天",
    "bucketMonth": "月",
    "totalPulls": "总计",
    "noUsage": "此区间内没有使用记录。"
  },
  "cookieConsent": {
    "stamp": "[ § 产品分析 — 同意 ]",
    "title": "我们使用 Cookie 进行产品分析。",
    "body": "我们使用 Cookie 来衡量功能使用情况，以改进平台。会话回放会按比例采样，且输入字段会被遮盖。详情请见我们的<privacyLink>隐私政策</privacyLink>。你可以随时在设置中更改你的选择。",
    "decline": "拒绝",
    "accept": "接受"
  },
  "versionDiff": {
    "openButton": "对比版本",
    "title": "对比版本",
    "fromLabel": "从",
    "toLabel": "到",
    "summary": "新增 {{added}} · 删除 {{removed}} · 修改 {{modified}} · 不变 {{unchanged}}",
    "needTwoVersions": "此技能只有一个版本,暂无可对比的内容。",
    "sameVersion": "请选择两个不同的版本进行对比。",
    "loading": "正在计算差异…",
    "error": "差异计算失败。",
    "noChanges": "这两个版本的文件内容完全一致。",
    "addedHeading": "新增 ({{count}})",
    "removedHeading": "删除 ({{count}})",
    "modifiedHeading": "修改 ({{count}})",
    "added": "新增",
    "removed": "删除",
    "modified": "修改",
    "binaryHint": "二进制文件。{{from}} → {{to}}(哈希 {{fromHash}} → {{toHash}})",
    "binaryAdded": "二进制文件({{size}})。",
    "binaryRemoved": "二进制文件({{size}})。",
    "truncated": "每侧文件内容已截断至 64 KiB。"
  },
  "notifications": {
    "bellAria": "通知",
    "title": "通知",
    "empty": "暂无通知。",
    "noUnread": "没有未读通知。",
    "loading": "加载中…",
    "loadFailed": "无法加载通知。",
    "markAllRead": "全部标记为已读",
    "showUnreadOnly": "只看未读",
    "showAll": "全部显示",
    "viewAll": "查看全部",
    "broadcast": {
      "tag": "广播",
      "modal": {
        "aria": "广播通知详情"
      }
    },
    "detail": {
      "modal": {
        "aria": "通知详情"
      }
    }
  },
  "permissions": {
    "title": "权限",
    "levelPublic": "公开访问",
    "levelLimited": "有限访问",
    "levelPrivate": "私有访问",
    "publicTitle": "公开",
    "publicDesc": "Ornn 上的任何人（包括未登录的访客）都能发现并使用此技能。",
    "orgsTitle": "分享给组织",
    "orgsDesc": "被勾选的组织的所有管理员和成员都能看到并使用此技能。",
    "usersTitle": "分享给指定用户",
    "usersDesc": "按邮箱搜索。只能找到登录过 Ornn 的用户。",
    "privateTitle": "私有",
    "privateDesc": "只有你和平台管理员能看到此技能。当上面所有选项都未启用时自动生效。",
    "searchPlaceholder": "输入邮箱查找用户…",
    "removeUser": "移除",
    "noOrgs": "没有可选择的组织。",
    "noUsersYet": "还没有添加用户。",
    "notMember": "非成员",
    "noChanges": "没有需要保存的更改。",
    "saveSuccess": "权限已更新"
  },
  "platformSettings": {
    "title": "平台设置",
    "subtitle": "影响所有作者和审核者的平台级配置项。更改将在下一次审计运行时生效。",
    "loading": "加载中…",
    "loadFailed": "无法加载平台设置。",
    "auditThresholdLabel": "审计豁免阈值",
    "auditThresholdHint": "审计综合得分高于或等于此阈值时，新分享自动授权；低于阈值时，分享会变成豁免申请，需要作者提交陈述并由审核者批准。",
    "auditThresholdInvalid": "必须是 0 到 10 之间的数字。",
    "saved": "平台设置已保存。"
  },
  "playground": {
    "selectSkill": "选择一个技能在试验场中使用。",
    "browseSkills": "浏览技能",
    "clearChat": "清空对话",
    "fillEnvVars": "在右侧填入所需的环境变量后开始对话。",
    "askAbout": "可以问我任何关于「{{name}}」的问题，或让我运行它。",
    "envVars": "环境变量",
    "envVarsDesc": "此技能需要以下环境变量，请先填写后再开始对话。",
    "envVarsLockHint": "在所有必填环境变量都填好之前，对话框会保持锁定。",
    "enterValue": "输入值…",
    "noPackage": "没有技能内容",
    "fillFirst": "填写环境变量后开始对话…",
    "askPlaceholder": "询问「{{name}}」或让我运行它…",
    "heroTitle": "试用这个技能。",
    "heroSubtitle": "问我任何关于「{{name}}」的问题，或让我用示例输入跑一次。",
    "heroEnvFirst": "在右侧 Env 抽屉里填好运行时环境变量，再开始对话。",
    "starter1Label": "带我熟悉一下",
    "starter1Body": "介绍一下「{{name}}」是做什么的，以及主要用法。",
    "starter2Label": "给个示例",
    "starter2Body": "给我一个「{{name}}」的具体用法示例 —— 自己编一组示例输入跑一次。",
    "starter3Label": "列出能力",
    "starter3Body": "列出「{{name}}」对外暴露的每一项能力，每项配一句话说明。",
    "drawerHint": "右侧边栏：技能 · 环境变量 · 技能包",
    "kbHint": "回车发送 · Shift + 回车换行",
    "tabSkill": "技能",
    "tabEnv": "环境变量",
    "tabPackage": "技能包",
    "pin": "钉住",
    "unpin": "取消钉住",
    "pinned": "已钉住",
    "aboutThisSkill": "关于",
    "tags": "标签",
    "openDetail": "技能详情页",
    "openInRegistry": "在技能库中打开 →"
  },
  "upload": {
    "chooseMode": "选择创建技能的方式",
    "guidedTitle": "引导模式",
    "guidedDesc": "分步向导引导你逐步创建技能。适合新手或希望结构化创作的作者。",
    "guidedBullets": [
      "分步表单",
      "支持预览的 Markdown 编辑器",
      "基于文件夹的文件上传",
      "完整的技能包预览"
    ],
    "startGuided": "开始",
    "freeTitle": "自由模式",
    "freeDesc": "直接上传现成的技能包 ZIP 文件。适合已有技能的经验作者。",
    "freeBullets": [
      "上传 ZIP 文件",
      "结构校验",
      "自动提取元数据",
      "上传前预览"
    ],
    "startFree": "开始",
    "genTitle": "AI 生成模式",
    "genDesc": "描述你的需求，让 AI 为你生成完整的技能，可通过对话继续调整。",
    "genBullets": [
      "AI 生成",
      "实时流式输出",
      "对话迭代",
      "自动组织结构"
    ],
    "startGen": "开始",
    "githubTitle": "从 GitHub 导入",
    "githubDesc": "从公开的 GitHub 仓库拉取技能，之后可一键同步更新。",
    "githubBullets": [
      "仅支持公开仓库",
      "可按分支 / tag / commit 锁定",
      "一键重新同步",
      "无需打包成 ZIP"
    ],
    "startGithub": "导入"
  },
  "guided": {
    "backToModes": "返回模式选择",
    "header": "创建技能",
    "headerDesc": "按下方步骤创建新技能",
    "stepBasic": "基本信息",
    "stepBasicDesc": "名称、分类与标签",
    "stepContent": "内容",
    "stepContentDesc": "SKILL.md 正文",
    "stepFiles": "文件",
    "stepFilesDesc": "脚本与资源",
    "stepPreview": "预览",
    "stepPreviewDesc": "检查并创建",
    "createSkill": "创建技能",
    "saveSuccess": "技能「{{name}}」已保存到我的技能",
    "saveFailed": "创建技能失败",
    "basicTitle": "基本信息",
    "skillName": "技能名称",
    "skillNamePlaceholder": "my-awesome-skill",
    "descLabel": "描述",
    "descPlaceholder": "简要描述这个技能的功能（至少 10 个字符）",
    "categoryLabel": "分类",
    "selectCategory": "选择分类",
    "outputType": "输出类型",
    "textStdout": "文本（stdout）",
    "fileArtifact": "文件（artifact）",
    "selectOutputType": "选择输出类型",
    "runtimeDeps": "运行时依赖（可选）",
    "runtimeDepsPlaceholder": "npm 包名后按回车",
    "runtimeDepsHelper": "运行时脚本所需的 npm 包（如 axios、lodash）",
    "envVars": "环境变量（可选）",
    "envVarsPlaceholder": "ENV_VAR_NAME 后按回车",
    "envVarsHelper": "必须是 UPPER_SNAKE_CASE 格式（如 API_KEY、SECRET_TOKEN）",
    "envVarsValidation": "必须是 UPPER_SNAKE_CASE 格式",
    "license": "许可证（可选）",
    "licensePlaceholder": "MIT、Apache-2.0 等",
    "compatibilityLabel": "兼容性（可选）",
    "compatibilityPlaceholder": "claude-code >= 1.0",
    "advancedSettings": "高级设置（Claude）",
    "disableModelInvocation": "禁用模型调用",
    "disableModelInvocationDesc": "阻止 AI 把此技能作为子调用使用",
    "userInvocable": "允许用户调用",
    "userInvocableDesc": "允许用户直接调用此技能",
    "allowedTools": "允许的工具",
    "allowedToolsPlaceholder": "工具名后按回车",
    "allowedToolsHelper": "此技能允许使用的工具（Claude 规范）",
    "modelLabel": "模型",
    "modelPlaceholder": "claude-sonnet-4-20250514",
    "contextPaths": "上下文路径",
    "contextPathsPlaceholder": "./path/to/file 后按回车",
    "contextPathsHelper": "作为上下文提供给技能的文件路径",
    "agentLabel": "代理",
    "agentPlaceholder": "agent-identifier",
    "argumentHint": "参数提示",
    "argumentHintPlaceholder": "例如：文件路径或 URL",
    "contentTitle": "技能内容",
    "contentDesc": "编写 SKILL.md 的正文内容，将出现在自动生成的 YAML frontmatter 下方。",
    "contentLabel": "SKILL.md 正文",
    "contentPlaceholder": "# 我的技能\n\n介绍它的功能、如何使用，并给出示例…",
    "filesTitle": "辅助文件（可选）",
    "filesDesc": "上传脚本文件、参考文档或资源到对应文件夹。SKILL.md 会根据元数据和正文自动生成。",
    "previewTitle": "检查并创建",
    "dropHint": "拖拽文件到此处或点击选择",
    "noFiles": "（暂无文件）",
    "remove": "移除"
  },
  "generative": {
    "backToModes": "返回模式选择",
    "title": "AI 生成技能",
    "desc": "描述你需要的技能，AI 会为你生成，之后可以通过对话继续完善。",
    "note": "生成的技能只支持纯文档或基于运行时的形态。",
    "placeholder": "生成中…",
    "askPlaceholder": "描述你想创建的技能…",
    "emptyPreview": "生成一个技能后可在这里预览",
    "emptyPreviewHero": "模型草拟出技能后，技能包预览会出现在这里。",
    "emptyPreviewHint": "在左侧发送一条提示开始。",
    "startOver": "重新开始",
    "saveSkill": "保存技能",
    "fixErrors": "保存前请修复 frontmatter 校验错误",
    "saveSuccess": "技能「{{name}}」已保存到我的技能",
    "saveFailed": "创建技能失败",
    "eyebrow": "AI 技能生成器",
    "heroTitle": "描述一个技能，让我帮你构建。",
    "heroSubtitle": "告诉模型这个技能要做什么。它先草拟出技能包，你来迭代修改，最后保存即可。",
    "drawerHint": "右侧边栏：技能包预览 + 保存",
    "tabPackage": "技能包",
    "pin": "钉住",
    "unpin": "取消钉住",
    "pinned": "已钉住",
    "validationTitle": "校验错误",
    "starter1Label": "Slack 通知",
    "starter1Body": "创建一个技能，通过 Webhook 向 Slack 频道发送格式化消息。输入：频道名 + 消息内容。",
    "starter2Label": "拉取 GitHub PR",
    "starter2Body": "创建一个技能，列出指定 GitHub 仓库当前所有 open 的 PR，按最近活动时间排序。",
    "starter3Label": "CSV → JSON",
    "starter3Body": "创建一个技能，读取 CSV 文件并输出 JSON 数组，逐列推断字段类型。"
  },
  "free": {
    "backToModes": "返回模式选择",
    "title": "上传技能包",
    "subtitle": "上传现成的技能 .zip 文件",
    "dropzone": "拖拽 .zip 文件到此处或点击选择",
    "maxSize": ".zip 文件，最大 50 MB",
    "changeFile": "选择其它文件",
    "validating": "正在校验技能包结构…",
    "valid": "技能包结构有效。",
    "validWithErrors": "技能包结构有效，但 frontmatter 有校验错误，请修复后再上传。",
    "onlyZip": "只接受 .zip 文件。",
    "tooLarge": "文件超过 50 MB 上限（{{size}}）。",
    "skipValidation": "跳过校验",
    "uploadSkill": "上传技能",
    "uploadSuccess": "技能「{{name}}」上传成功",
    "uploadFailed": "上传技能失败"
  },
  "settings": {
    "title": "设置",
    "subtitle": "管理你的账户",
    "signOut": "退出登录",
    "accountMgmt": "账户管理",
    "accountDesc": "你的个人资料、LLM 凭证和安全设置通过 NyxID 管理。",
    "openNyxID": "打开 NyxID 设置",
    "redeemCode": {
      "title": "兑换码",
      "placeholder": "输入你的兑换码",
      "codeAria": "兑换码",
      "redeem": "兑换",
      "helpText": "拿到团队发的兑换码？在此输入即可为账户增加额度。",
      "added": "已添加：",
      "activeUntil": "有效期至本月末。",
      "dismissAria": "关闭",
      "dismiss": "关闭",
      "recentlyRedeemed": "最近兑换"
    }
  },
  "login": {
    "eyebrow": "[ § 入口 — NYXID ]",
    "tagline": "面向 AI 代理的技能生命周期平台",
    "desc": "使用 NyxID 账号登录以访问平台。",
    "loginBtn": "使用 NyxID 登录",
    "terms": "继续即表示你同意我们的服务条款和隐私政策。"
  },
  "notFound": {
    "eyebrow": "[ § 404 — 未找到 ]",
    "code": "404",
    "message": "这片网格区域不存在。",
    "goHome": "返回首页"
  },
  "docs": {
    "onThisPage": "本页目录",
    "notFound": "未找到",
    "loadFailed": "获取文档失败。",
    "copyMarkdown": "复制 Markdown",
    "copyMarkdownHint": "把整篇文档复制为 markdown —— 粘贴到你的 AI agent 中即可作为 skill 安装",
    "copied": "已复制"
  },
  "skillToggle": {
    "makePrivateTitle": "设为私有?",
    "makePublicTitle": "设为公开?",
    "makePrivateDesc": "确定要将此技能设为私有吗？其他用户将无法再查看。",
    "makePublicDesc": "确定要将此技能设为公开吗？所有用户都能看到。",
    "nowPrivate": "技能已设为私有，只有你能看到。",
    "nowPublic": "技能已设为公开，所有用户都能看到。",
    "failed": "更新可见范围失败"
  },
  "chatInput": {
    "model": "模型",
    "generating": "正在生成回复…",
    "awaitingTool": "等待工具授权…",
    "placeholder": "输入消息…（Enter 发送，Shift+Enter 换行）",
    "stopGeneration": "停止生成",
    "sendMessage": "发送消息"
  },
  "quota": {
    "surfacePlayground": "试验场",
    "surfaceSkillGen": "技能生成",
    "surfaceLabelPlayground": "试验场",
    "surfaceLabelSkillGen": "技能生成",
    "admin": "管理员",
    "adminUnlimited": "{{surface}}不限额",
    "chipAriaAdmin": "{{surface}}配额 — 管理员不限",
    "chipTitleAdmin": "{{surface}} · 不限额（管理员）",
    "chipAriaRemaining": "{{surface}}配额 — 剩余 {{remaining}} / {{ceiling}}",
    "chipTitleRemaining": "{{surface}}：本月剩余 {{remaining}} / {{ceiling}}",
    "groupAriaLabel": "配额使用情况",
    "warningHeading": "{{surface}} — 本月已使用 {{percent}}%",
    "warningBody": "本月{{surface}}还可调用 {{remaining}} 次{{adminGrant}}。点击导航栏的配额徽章查看完整明细。",
    "warningAdminGrantSuffix": "（含管理员追加 +{{value}}）",
    "callsLeft": "剩余",
    "grantSuffix": "+{{value}} 追加"
  },
  "modelPicker": {
    "label": "模型",
    "defaultSuffix": " — 默认",
    "defaultBadge": "默认",
    "loading": "加载模型中…",
    "unavailable": "{{surface}} — 暂不可用，请联系管理员。",
    "ariaPlayground": "试验场",
    "ariaSkillGen": "技能生成",
    "ariaTrigger": "{{label}}：{{selected}}",
    "ariaOptions": "{{label}} 候选项"
  },
  "fileTree": {
    "files": "文件",
    "noFiles": "还没有文件",
    "createFirst": "创建第一个文件",
    "newFile": "新建文件",
    "delete": "删除"
  },
  "form": {
    "name": "名称",
    "namePlaceholder": "my-skill-name",
    "nameRequired": "名称必填",
    "description": "描述",
    "descPlaceholder": "这个技能是做什么的？",
    "descRequired": "描述必填",
    "category": "分类",
    "selectCategory": "选择分类",
    "categoryRequired": "分类必填",
    "outputType": "输出类型",
    "textStdout": "文本（stdout）",
    "fileArtifact": "文件（artifact）",
    "selectOutputType": "选择输出类型",
    "license": "许可证",
    "licensePlaceholder": "MIT、Apache-2.0 等",
    "repoUrl": "仓库 URL",
    "repoPlaceholder": "https://github.com/...",
    "invalidUrl": "必须是有效的 URL",
    "uploadSkill": "上传技能",
    "saveChanges": "保存更改",
    "tools": {
      "placeholder": "输入工具名称后按回车",
      "suggested": "推荐：",
      "help": "请确保你列出的工具在目标 Claude 客户端环境中可用。引用不可用工具的技能会在运行时失败。"
    }
  },
  "landing": {
    "scrollHint": "下滑装备 ↓",
    "browseSkills": "浏览技能 →",
    "publishYours": "发布你的技能",
    "getStarted": "开始使用",
    "themeLabel": "主题",
    "themeLight": "浅色",
    "themeDark": "深色",
    "languageLabel": "语言",
    "languageEnglish": "English",
    "languageChinese": "中文",
    "launchPopup": {
      "eyebrow": "[§ LAUNCH — ORNN]",
      "date": "2026 · 05 · 13",
      "title": "为庆祝 Ornn 正式上线，我们特别为用户准备了额外的免费使用额度，以表达我们诚挚的感谢。",
      "creditsLead": "前 500 位用户可免费领取",
      "credit1Number": "200",
      "credit1Title": "Playground",
      "credit1Caption": "对话额度 · GPT-5.5",
      "credit2Number": "200",
      "credit2Title": "Skill Generation",
      "credit2Caption": "对话额度 · GPT-5.5",
      "conditionsHeading": "兑换条件",
      "step1Before": "前往",
      "step1After": "点亮 ⭐ Star。",
      "step2": "使用同一 GitHub 账号登录 Ornn，即可领取免费额度。",
      "inviteLabel": "NyxID 邀请码 · 首次登录",
      "inviteAria": "复制 NyxID 邀请码",
      "copy": "复制",
      "copied": "已复制",
      "inviteHelp": "点击 Ornn 右上角的「登录」后，会跳转到我们的身份服务 NyxID 完成登录。请在 NyxID 页面填入上方邀请码，然后选择 GitHub 登录即可完成注册。",
      "fulfillmentBefore": "完成登录并为 GitHub 仓库点亮 Star 后，您的兑换码将在 24 小时内发送至您的通知收件箱。点击 Ornn 右上角的铃铛图标即可查看，然后在个人头像下拉菜单中选择「兑换码」完成兑换。如在兑换过程中遇到任何问题，请前往",
      "fulfillmentLinkLabel": "Ornn 讨论区",
      "fulfillmentAfter": "反馈，我们将尽快协助解决。",
      "limitedSlots": "名额有限 — 先到先得。",
      "dismiss": "关闭",
      "cta": "前往 GitHub 点 Star",
      "dismissAria": "关闭上线公告"
    },
    "hero": {
      "headlineStart": "从",
      "headlineNothing": "零",
      "headlineEnd": "出发,以",
      "headlineEverything": "一切",
      "subhead": "为 AI 代理打造的技能全生命周期管理平台 —— 检索、安装、运行、构建、审计、发布,从设计到上线一站式完成,无需拼接多个工具。",
      "subheadStatic": "为 AI 代理打造的技能全生命周期管理平台 —— 检索、安装、构建、发布、审计。一个平台,任意运行时。",
      "finalLine1": "你的产品。你的 Agent。",
      "finalLine2": "全副武装。"
    },
    "why": {
      "headlineLine1": "停止复制粘贴 prompt。",
      "headlineLine2Start": "像安装软件包一样安装",
      "headlineLine2Highlight": "技能",
      "headlineLine2End": "。",
      "pillarLabel": "支柱",
      "pillar1Title": "从注册中心拉取,而非粘贴。",
      "pillar1TitleHighlight": "拉取",
      "pillar1Body": "技能存在于一个版本化、已审计的注册中心,不在 Slack 群或散落的 gist 里。在 Agent 内部按需调用 {{cmd}} 即可拉取。",
      "pillar1Proof": "// 版本化 · 已审计 · Agent-ready",
      "pillar2Title": "用一段 prompt",
      "pillar2TitleLine2": "生成技能。",
      "pillar2TitleHighlight": "一段 prompt",
      "pillar2Body": "用日常英文描述技能, {{cmd}} 会起草一份可运行的 SKILL.md,你可以反复迭代、沙箱测试、发布到注册中心。",
      "pillar2Proof": "// ornn-build 本身就是注册中心上的一项技能",
      "pillar3Title": "格式即",
      "pillar3TitleLine2": "可移植。",
      "pillar3TitleHighlight": "可移植",
      "pillar3Body": "平台无关的技能格式,发布前可在沙箱中运行(Node + Python)。需要鉴权的部分由 NyxID 保护。",
      "pillar3Proof": "// chrono-sandbox · nyxid · audited"
    },
    "compare": {
      "headlineNot": "不是",
      "headlineThat": "那个",
      "headlineThis": "是这个。",
      "subhead": "ORNN 经常被混淆的几样东西,以及它的不同之处。",
      "themHeader": "经常被混淆的产品",
      "themDescHeader": "他们做什么",
      "usHeader": "ORNN 做什么",
      "themLabel": "他们",
      "usLabel": "Ornn",
      "row1Them": "提供 Composio 自有的预制工具。",
      "row1UsPrefix": "托管由",
      "row1UsHighlight": "任何人",
      "row1UsSuffix": "创建的技能——你、你的团队、整个社区。",
      "row2Them": "分享 prompt 模板。",
      "row2UsPrefix": "分享",
      "row2UsHighlight": "可执行技能",
      "row2UsSuffix": ",带沙箱运行环境,已审计、已版本化。",
      "row3Them": "只能在 Claude 内部使用。",
      "row3UsHighlight": "开放格式",
      "row3UsSuffix": "——不绑死 Claude。技能跟随调用它的 Agent 走。",
      "row4Them": "不是运行时——执行发生在 Agent 中。",
      "row4UsPrefix": "ORNN 是",
      "row4UsHighlight": "注册中心",
      "row4UsSuffix": "。它负责发现、版本化、审计。"
    },
    "install": {
      "headlineLine1Start": "一种",
      "headlineLine1Highlight": "格式",
      "headlineLine1End": "。",
      "headlineLine2": "适配每一个 Agent。",
      "body": "技能以纯 Markdown + manifest 元数据的形式发布——天然可移植,运行时之间无需胶水代码。今天可拉入 Claude Code;格式开放且 Agent 无关。",
      "surfacesLabel": "支持的 Agent 表面",
      "statusLive": "已上线",
      "statusCompatible": "格式兼容"
    },
    "publish": {
      "headlineLine1": "60 秒",
      "headlineLine2": "发布一项技能",
      "body": "你做了一个有用的东西。别人也需要它。推送到 ORNN,它便活在注册中心——版本化、已审计,随时拉进你的 Agent。",
      "startPublishing": "开始发布 →",
      "readGuide": "阅读指南",
      "step1Title": "描述技能。",
      "step1Body": "用英文一句话说清楚。",
      "step2Title": "在沙箱中测试。",
      "step2BodyPrefix": "在",
      "step2BodySuffix": "中运行(Node + Python)。需要鉴权的部分由 NyxID 保护。",
      "step3Title": "审计 & 发布。",
      "step3Body": "一条命令。版本化、已审计、上线注册中心。"
    },
    "featured": {
      "headlineStart": "技能,",
      "headlineHighlight": "新鲜出炉",
      "seeAll": "查看全部 →",
      "alsoOnRegistry": "注册中心其它技能"
    },
    "footer": {
      "tagline": "为 AI 代理打造的技能全生命周期管理平台。",
      "productHeading": "产品",
      "developersHeading": "开发者",
      "productBrowse": "浏览",
      "productPublish": "发布",
      "productCli": "CLI",
      "productChangelog": "更新日志",
      "developersDocs": "文档",
      "developersSkillFormat": "技能格式",
      "developersGitHub": "GitHub",
      "copyright": "© 2026 Chrono AI"
    }
  },
  "advancedOptions": {
    "title": "高级选项",
    "navLabel": "高级设置",
    "nyxidServiceBinding": "绑定 NyxID 服务",
    "githubLink": "关联 GitHub"
  },
  "githubLink": {
    "intro": "将此技能指向一个公开 GitHub 仓库中的文件夹。仅保存链接不会拉取内容,需要点击 Sync 才会预览改动并发布新版本。",
    "urlLabel": "GitHub 文件夹 URL",
    "urlHelp": "请使用文件夹 URL(/tree/<ref>/<path> 形式)。该文件夹根目录下必须有 SKILL.md。默认分支或仓库根目录的 URL 同样可以。",
    "skipValidationLabel": "跳过 Ornn 包格式校验",
    "skipValidationHelp": "GitHub 上托管的技能不一定遵循 Ornn 的包规范;如果你信任上游且希望即便校验失败也能完成同步,请勾选此项。",
    "currentlyLinked": "当前已关联",
    "lastSyncedAt": "上次同步:{{when}}",
    "neverSynced": "已关联但尚未同步。",
    "syncButton": "从 GitHub 同步",
    "unlinkButton": "取消关联",
    "saveBeforeSync": "请先保存 URL 修改再同步。",
    "linkSuccess": "GitHub 链接已保存",
    "unlinkSuccess": "GitHub 链接已移除",
    "alreadyInSync": "已是最新 — GitHub 上没有新的改动可同步。",
    "syncSuccess": "已从 GitHub 同步,并发布了新版本。",
    "previewTitle": "同步预览",
    "previewSubtitle": "确认后将从已关联的 GitHub 源发布 {{name}} 的 v{{version}} 版本。",
    "applySync": "应用同步",
    "urlPlaceholder": "https://github.com/owner/repo/tree/main/path/to/skill"
  },
  "githubImport": {
    "title": "从 GitHub 导入",
    "subtitle": "从公开 GitHub 仓库的某个文件夹发布一个技能。后续更新可通过同一链接一键重新同步。",
    "urlLabel": "GitHub 文件夹 URL",
    "urlHint": "请使用文件夹 URL(/tree/<ref>/<path> 形式)。该文件夹根目录下必须有 SKILL.md。默认分支或仓库根目录的 URL 同样可以。",
    "urlInvalid": "请输入 github.com URL(例如 https://github.com/owner/repo/tree/main/path)。",
    "skipValidationLabel": "跳过 Ornn 包格式校验",
    "skipValidationHelp": "GitHub 上托管的技能不一定遵循 Ornn 的包规范;如果你信任上游且希望即便校验失败也能完成导入,请勾选此项。",
    "syncButton": "从 GitHub 同步",
    "backToModes": "返回创建模式",
    "success": "已从 GitHub 拉取技能。",
    "genericError": "从 GitHub 拉取失败。"
  },
  "contact": {
    "eyebrow": "[ § 01 — 联系 ]",
    "headlineStart": "联系",
    "headlineHighlight": "我们",
    "headlineEnd": "。",
    "subhead": "三个渠道各有用途，挑最合适的那个就好 —— 每一封我们都会读到。",
    "channelsLabel": "联系渠道",
    "cardEmailLabel": "邮箱",
    "cardEmailHint": "适用于安全披露、账户与计费咨询、GDPR / 个人数据请求 —— 任何需要保密的事项。一般两个工作日内回复。",
    "cardDiscussionsLabel": "DISCUSSIONS",
    "cardDiscussionsHint": "公开的社区空间。提问、提交功能想法，或秀一秀你做的东西。不确定去哪发的时候，从这里开始。",
    "cardIssuesLabel": "ISSUES & PRS",
    "cardIssuesHint": "用于已确认的 bug（附复现步骤）和代码贡献。新的功能想法请先在 Discussions → Ideas 讨论一下，我们一起把范围定清楚。",
    "categoriesEyebrow": "[ § 02 — 讨论分类 ]",
    "categoriesHeadline": "去 Discussions 哪里发",
    "categoriesSubhead": "每个分类对应不同形态的对话。点击任意一行直接跳过去。",
    "categoryAnnouncementsName": "Announcements",
    "categoryAnnouncementsPurpose": "只读。维护者发布的版本说明和产品更新。",
    "categoryGeneralName": "General",
    "categoryGeneralPurpose": "其它分类放不下的话题。",
    "categoryIdeasName": "Ideas",
    "categoryIdeasPurpose": "功能提案与设计讨论。功能请求在变成 Issue 之前先在这里。",
    "categoryPollsName": "Polls",
    "categoryPollsPurpose": "维护者偶尔发起的社区投票。可以参与已有投票，自己发起较少。",
    "categoryQaName": "Q&A",
    "categoryQaPurpose": "「我怎么 X？」—— 使用问题，由团队或社区回答。",
    "categoryShowAndTellName": "Show and tell",
    "categoryShowAndTellPurpose": "秀一秀你在 Ornn 上做的技能、Agent 或应用。",
    "signoff": "[ 完 · 联系 ]"
  },
  "news": {
    "eyebrow": "[ § 01 — 动态 ]",
    "headlineStart": "锻炉里的",
    "headlineHighlight": "印记",
    "headlineEnd": "。",
    "subhead": "我们发出过的所有公告 —— 发布说明、平台变更与编辑速记。按时间倒序排列。",
    "archiveLabel": "公告档案",
    "loading": "[ 正在加载档案… ]",
    "errorLabel": "档案不可达",
    "errorBody": "动态加载失败。请稍后重试，若持续异常请前往「联系」页反馈。",
    "emptyLabel": "暂无印记",
    "emptyBody": "目前还没有任何公告发布。锻炉冷却后再来看看。",
    "signoff": "[ 完 · 动态 ]"
  },
  "serviceDetail": {
    "failedToLoad": "加载服务失败: {{error}}",
    "notFound": "未找到",
    "back": "返回",
    "backToMy": "返回我的服务",
    "backToAdmin": "返回平台服务",
    "statusActive": "活跃",
    "statusInactive": "未启用",
    "generateSkillBtn": "生成技能",
    "proxyUrlHeading": "NyxID 代理 URL",
    "openapiHeading": "OpenAPI 规范 URL",
    "openapiNotConfigured": "未配置 OpenAPI 规范",
    "sourceCodeHeading": "源代码",
    "homepageHeading": "主页",
    "notConfigured": "未配置"
  },
  "announcementsAdmin": {
    "noAnnouncements": "暂无公告",
    "emptyHint": "创建第一条公告后，访客下次加载落地页时就会看到。",
    "createBtn": "创建公告"
  },
  "aria": {
    "toggleLanguage": "切换语言",
    "toggleTheme": "切换主题",
    "accountMenu": "账户菜单",
    "openMenu": "打开菜单",
    "closeMenu": "关闭菜单",
    "dismissAnnouncement": "关闭公告",
    "legal": "法律信息",
    "productOverview": "{{brand}} 产品概览",
    "playgroundSkillDrawer": "技能抽屉",
    "playgroundEnvDrawer": "环境变量抽屉",
    "skillPackageDrawer": "技能包抽屉",
    "skillPackagePreview": "技能包预览",
    "generating": "生成中",
    "brandHome": "{{brand}} 首页",
    "brandOnGitHub": "GitHub 上的 {{brand}}",
    "expandSidebar": "展开侧边栏",
    "collapseSidebar": "折叠侧边栏",
    "closeSidebar": "关闭侧边栏",
    "mirrorSetupInstructions": "镜像设置说明",
    "settingsSections": "设置分区",
    "noLifetimeUsageHistory": "暂无累计使用历史",
    "lifetimeMonthlyUsage": "累计每月使用量",
    "currentQuotaPeriod": "当前配额周期",
    "grantAmount": "授予数量",
    "copyCode": "复制代码",
    "invalidateCode": "作废代码",
    "redemptionCodeDetail": "兑换码详情",
    "chatMessageInput": "聊天消息输入",
    "quotaUsage": "配额使用",
    "adminQuotaUnlimited": "管理员 — 无限配额",
    "adminUnlimitedUsageTitle": "管理员 · 无限用量",
    "quotaUsageDetails": "配额使用详情"
  },
  "skillComponents": {
    "generateModal": {
      "title": "生成技能",
      "addRefPlaceholder": "添加参考链接...",
      "add": "添加"
    },
    "card": {
      "linkedToGithub": "已关联到 GitHub"
    },
    "grid": {
      "emptyTitle": "未找到技能",
      "emptyDesc": "尝试调整搜索或筛选条件，或上传第一个技能。"
    },
    "fileBrowser": {
      "noFiles": "没有可用的包文件"
    },
    "frontmatter": {
      "runtime": "运行时",
      "requiredTools": "必需工具",
      "dependencies": "依赖",
      "envVars": "环境变量",
      "compatibility": "兼容性"
    }
  },
  "userProfile": {
    "displayNamePlaceholder": "你的显示名称",
    "bioPlaceholder": "介绍一下你自己...",
    "newEmailPlaceholder": "your-new@email.com",
    "phoneNumberPlaceholder": "电话号码",
    "searchCountryPlaceholder": "搜索国家/地区...",
    "apiKeyGeneratedTitle": "API 密钥已生成",
    "notConnected": "未连接",
    "unlinkAccountTitle": "解除账户绑定"
  },
  "editor": {
    "startTyping": "开始输入..."
  },
  "adminPages": {
    "dashboard": {
      "heading": "仪表盘",
      "subtitle": "平台快照 —— 用户分布、技能可见性划分,以及最近 10 条活动。",
      "loadFailed": "加载统计失败",
      "users": {
        "heading": "用户",
        "ariaLabel": "用户概览",
        "total": "用户总数",
        "admin": "管理员",
        "normal": "普通用户",
        "bypassQuota": "不计配额"
      },
      "skills": {
        "heading": "技能",
        "ariaLabel": "技能概览",
        "system": "系统技能",
        "public": "公开技能",
        "private": "私有技能"
      },
      "recentActivity": {
        "heading": "近期活动",
        "body": "审计与活动事件统一记录在 PostHog。每一次 API 调用、登录、技能变更和管理员操作都会被记录为带有调用者、来源 IP、状态与耗时的结构化事件,可搜索、可筛选、可聚合成漏斗分析。",
        "notConfigured": "PostHog 尚未配置 —— 请在「设置 → 遥测」中完成配置。",
        "activityFeed": "活动信息流",
        "insights": "洞察"
      }
    },
    "announcements": {
      "eyebrow": "[§ 管理 — 公告]",
      "title": "落地页弹窗",
      "description": "营销页面同一时间只展示一条公告——当前在排期窗口内且最近创建的启用记录。已停用或超出窗口的记录留在此处供查询历史。",
      "action": {
        "new": "新建公告",
        "disable": "停用",
        "enable": "启用"
      },
      "table": {
        "title": "标题",
        "status": "状态",
        "window": "时间窗口",
        "created": "创建时间",
        "actions": "操作"
      },
      "status": {
        "live": "上线中",
        "scheduled": "已排期",
        "expired": "已过期",
        "disabled": "已停用"
      },
      "window": {
        "always": "始终（未设置排期）"
      },
      "confirm": {
        "deleteTitle": "删除公告？",
        "delete": "\"{{title}}\" 将被永久移除。"
      },
      "toast": {
        "disabled": "公告已停用",
        "enabled": "公告已启用",
        "deleted": "公告已删除",
        "updateFailed": "更新失败",
        "deleteFailed": "删除失败"
      }
    },
    "broadcasts": {
      "eyebrow": "[§ 管理 — 广播通知]",
      "title": "广播通知",
      "description": "每条广播都会即时出现在每位已登录用户的通知收件箱中。没有排期窗口——发布即上线，删除即下线。中英文均为必填项，以便每位用户都能用自己的语言阅读。",
      "action": {
        "new": "新建广播"
      },
      "table": {
        "title": "标题",
        "preview": "正文摘要",
        "recipients": "接收人",
        "created": "创建时间",
        "updated": "更新时间",
        "readCount": "已读人数",
        "actions": "操作"
      },
      "recipients": {
        "heading": "接收人",
        "audienceAll": "所有用户",
        "audienceSpecific": "指定用户",
        "summaryAll": "所有用户",
        "summaryCount": "{{count}} 位用户",
        "lockedHint": "接收人在创建后不可更改。",
        "searchPlaceholder": "输入邮箱以添加接收人",
        "searchAria": "按邮箱搜索用户",
        "loading": "搜索中…",
        "noMatches": "未找到匹配的用户。",
        "remove": "移除 {{email}}"
      },
      "empty": {
        "title": "暂无广播",
        "hint": "创建第一条广播后，所有用户在下次刷新通知铃时即可看到。"
      },
      "confirm": {
        "deleteTitle": "删除广播？",
        "delete": "\"{{title}}\" 将从所有用户的收件箱中移除，并清除对应的已读记录。"
      },
      "toast": {
        "created": "广播已创建",
        "updated": "广播已更新",
        "deleted": "广播已删除",
        "createFailed": "创建失败",
        "updateFailed": "更新失败",
        "deleteFailed": "删除失败"
      },
      "drawer": {
        "eyebrowNew": "[§ 新建 — 广播]",
        "eyebrowEdit": "[§ 编辑 — 广播]",
        "newTitle": "新建广播",
        "newAria": "新建广播",
        "editAria": "编辑广播",
        "englishHeading": "English (required)",
        "chineseHeading": "中文（必填）",
        "titleEnLabel": "标题 (EN)",
        "titleZhLabel": "标题（中文）",
        "titleEnPlaceholder": "简短、易扫读。会展示在通知铃中。",
        "titleZhPlaceholder": "简短、易扫读。会展示在通知铃中。",
        "bodyEnLabel": "正文 — EN (markdown)",
        "bodyZhLabel": "正文 — 中文（Markdown）",
        "bodyEnPlaceholder": "支持 Markdown。建议控制在一屏内 —— 此内容会直接渲染在通知铃中。",
        "bodyZhPlaceholder": "支持 Markdown。建议控制在一屏内 —— 此内容会直接渲染在通知铃中。",
        "createBtn": "创建广播",
        "saveBtn": "保存修改"
      },
      "errors": {
        "titleEnRequired": "英文标题为必填项",
        "titleZhRequired": "中文标题为必填项",
        "bodyEnRequired": "英文正文为必填项",
        "bodyZhRequired": "中文正文为必填项",
        "titleTooLong": "标题过长",
        "bodyTooLong": "正文过长",
        "recipientsRequired": "请至少添加一位接收人，或切换为「所有用户」。"
      }
    },
    "skills": {
      "title": "技能",
      "subtitle": "管理平台全部技能",
      "subtitleForUser": "所选用户的技能",
      "searchLabel": "搜索技能",
      "searchPlaceholder": "按名称或描述搜索...",
      "searchBtn": "搜索",
      "clearBtn": "清除",
      "empty": "未找到技能。",
      "loadFailed": "加载技能失败",
      "table": {
        "name": "名称",
        "author": "作者",
        "visibility": "可见性",
        "tags": "标签",
        "created": "创建时间",
        "actions": "操作"
      },
      "modal": {
        "deleteTitle": "删除技能？",
        "deleteBodyPrefix": "确认删除",
        "deleteBodySuffix": "吗？",
        "deleteWarning": "此操作不可撤销。该技能将从平台永久移除。"
      },
      "toast": {
        "deleted": "技能已删除",
        "deleteFailed": "删除技能失败"
      }
    },
    "quota": {
      "title": "配额",
      "subtitle": "按用户的月度计数，可由管理员授予额度。管理员用户不受配额限制，不会出现在此列表中。",
      "tabs": {
        "playground": "Playground",
        "skillGen": "技能生成"
      },
      "placeholder": {
        "filter": "按邮箱或显示名筛选…"
      },
      "aria": {
        "filter": "筛选用户",
        "surface": "场景"
      },
      "loadFailed": "加载用户失败"
    },
    "redemption": {
      "title": "兑换码",
      "subtitle": "生成一次性兑换码，可绑定当月一个或多个配额授予。兑换前可作废。",
      "action": {
        "mint": "生成兑换码"
      },
      "tabs": {
        "all": "全部",
        "active": "可用",
        "redeemed": "已兑换",
        "invalidated": "已作废"
      },
      "placeholder": {
        "filter": "按兑换码前缀或备注筛选…"
      },
      "aria": {
        "filter": "筛选兑换码",
        "status": "状态"
      },
      "confirm": {
        "invalidateTitle": "作废兑换码？",
        "invalidate": "{{code}} 作废后将无法再被兑换。",
        "invalidateAction": "作废"
      },
      "toast": {
        "invalidated": "兑换码 {{code}} 已作废。",
        "invalidateFailed": "作废兑换码失败。"
      },
      "loadFailed": "加载兑换码失败"
    },
    "userMgmt": {
      "title": "用户",
      "subtitle": "两个视图：管理员（不受配额限制）与普通用户。每行的\"授予配额\"链接可直达配额页面。",
      "adminTitle": "管理员用户",
      "adminDescription": "持有 ornn:admin:skill 权限——不受任何配额计数限制。",
      "normalTitle": "普通用户",
      "normalDescription": "受月度 Playground + 技能生成配额限制。"
    },
    "users": {
      "title": "用户",
      "subtitle": "平台用户及其活动",
      "empty": "未找到用户。",
      "loadFailed": "加载用户失败",
      "table": {
        "user": "用户",
        "email": "邮箱",
        "skills": "技能数",
        "activities": "活动数",
        "lastActive": "最近活跃"
      }
    }
  },
  "adminSettings": {
    "secretSentinelHint": "（未修改——保留原密钥）",
    "secretReplaceHint": "替换以覆盖。保存未修改的掩码值将保留数据库中的原值。",
    "sections": {
      "mirror": {
        "title": "GitHub 镜像",
        "description": "仓库坐标 + GitHub App 凭据 + 定时同步节奏。运行控制位于旧版镜像看板。",
        "savedToast": "镜像配置已保存",
        "label": {
          "enabled": "启用镜像",
          "owner": "Owner",
          "repo": "Repo",
          "branch": "分支",
          "appId": "App ID",
          "installationId": "Installation ID",
          "privateKey": "App 私钥 (PEM)",
          "schedule": "同步计划"
        },
        "schedule": {
          "preset": {
            "disabled": "禁用",
            "daily2am": "每日 02:00",
            "every6h": "每 6 小时",
            "every12h": "每 12 小时",
            "hourly": "每小时",
            "custom": "自定义 (cron 表达式)…"
          },
          "tzNote": "计划以新加坡时间 (UTC+8，无夏令时) 解析。",
          "disabledHint": "定时同步已暂停。发布时的 webhook 仍会触发。",
          "customHint": "5 位 cron 表达式 (分 时 日 月 周)。",
          "invalidHint": "无效的 cron 表达式。",
          "nextRun": "下次运行：{{at}}",
          "nextRunUnavailable": "下次运行：—",
          "lastRun": "上次运行：{{at}}",
          "lastRunUnavailable": "上次运行：—",
          "lastRunSucceeded": "✓ 成功",
          "lastRunFailed": "✗ 失败",
          "lastRunRunning": "⟳ 进行中…",
          "lastRunDuration": "{{seconds}} 秒"
        },
        "openDashboard": "打开镜像看板 →"
      },
      "nyxid": {
        "title": "NyxID 集成",
        "description": "OAuth 服务账号凭据 + 后端代理使用的 API 根 URL，以及 chrono-storage / chrono-sandbox 端点（在 #302 中并入此处，同属 NyxID 集成层）。浏览器侧的链接坐标位于 ornn-web 的 configmap (NYXID_WEB_BASE_URL + 路径环境变量)——请在那里修改并重新部署。",
        "savedToast": "NyxID 集成已保存",
        "label": {
          "tokenUrl": "Token URL",
          "clientId": "Client ID",
          "clientSecret": "Client Secret",
          "baseApiUrl": "API 根 URL",
          "chronoStorageUrl": "chrono-storage URL",
          "chronoStorageBucket": "chrono-storage bucket",
          "chronoSandboxUrl": "chrono-sandbox URL"
        }
      },
      "telemetry": {
        "title": "PostHog",
        "description": "PostHog 产品分析 + 单请求审计。后端在启动时读取此配置——更改后需重启 ornn-api 生效。",
        "savedToast": "PostHog 配置已保存",
        "restartBadge": "需重启 · 后端启动时读取",
        "label": {
          "enabled": "启用 PostHog",
          "apiKey": "项目 API Key",
          "host": "Host",
          "projectId": "Project ID",
          "errorSampleRate": "api.error 采样率 (0–1)"
        },
        "apiKeyHint": "来自 PostHog 控制台的项目公开 Key。留空将停用分析。",
        "hostHint": "根据所在区域选择 https://us.i.posthog.com 或 https://eu.i.posthog.com。",
        "projectIdPlaceholder": "可选——仅用于日志关联",
        "errorSampleRateHint": "作为 `api.error` 事件上报的 5xx 错误比例。`api.request` 始终以 100% 上报。",
        "frontendNote": "前端 pageview + identify 目前仍由环境变量注入的 `window.__ORNN_CONFIG__` 驱动——基于数据库的前端运行时配置将作为后续工作。"
      },
      "skillAudit": {
        "title": "技能审计",
        "description": "LLM 驱动的审计、AgentSeal 加固、风险阈值。",
        "savedToast": "技能审计配置已保存",
        "label": {
          "llmAuditEnabled": "启用 LLM 审计",
          "provider": "LLM 审计 Provider",
          "model": "LLM 审计模型（可选）",
          "riskThreshold": "风险阈值 (0..10)",
          "agentSealEnabled": "启用 AgentSeal",
          "agentSealTimeout": "AgentSeal 超时 (ms) — 1000..600000"
        },
        "option": {
          "select": "— 请选择 —",
          "providerDefault": "— Provider 默认 —"
        }
      },
      "runtime": {
        "label": {
          "defaultProvider": "默认 Provider",
          "defaultModel": "默认模型",
          "sseKeepAlive": "SSE 心跳 (ms) — 1000..600000",
          "defaultMonthlyQuota": "默认月度配额——非管理员用户 (0..1,000,000)"
        },
        "option": {
          "none": "— 无 —",
          "providerDefault": "— Provider 默认 —"
        },
        "defaultModelHint": "仅显示所选 Provider 下已启用且未移除的模型。",
        "defaultMonthlyQuotaHint": "月中提高默认值会为现有用户提供更多额度；降低不会追溯回收已用配额。"
      },
      "playground": {
        "title": "Playground",
        "description": "Playground 场景的运行时默认值。",
        "savedToast": "Playground 设置已保存"
      },
      "skillGen": {
        "title": "技能生成",
        "description": "AI 辅助技能生成场景的运行时默认值。",
        "savedToast": "技能生成设置已保存"
      },
      "extras": {
        "title": "服务绑定列表配置",
        "description": "通过 Ornn 代理的其他 NyxID 托管服务——按名称 + 根 URL + 可选 scopes 绑定。",
        "savedToast": "Extras 已保存",
        "empty": "未配置额外服务",
        "label": {
          "name": "名称",
          "baseUrl": "根 URL（可选）",
          "scopes": "Scopes（英文逗号分隔，可选）"
        },
        "aria": {
          "remove": "移除 {{name}}"
        },
        "fallbackRow": "行",
        "action": {
          "add": "添加服务"
        }
      },
      "llmProviders": {
        "eyebrow": "[§ LLM PROVIDER]",
        "title": "LLM Provider",
        "description": "按 Provider 配置的网关、认证与模型目录。点击行内的「模型」可启停模型并按场景设置默认——默认值跨 Provider 全局生效，设置一个会取消其余所有。",
        "action": {
          "new": "新建 Provider",
          "addFirst": "添加第一个 Provider",
          "models": "模型",
          "sync": "同步"
        },
        "loadFailed": "加载 Provider 失败",
        "empty": "未配置 Provider",
        "table": {
          "name": "名称",
          "auth": "认证方式",
          "models": "模型",
          "actions": "操作"
        },
        "modelCounts": "{{playground}} playground · {{skillGen}} skillGen · 共 {{total}}",
        "archivedCount": "已归档 {{count}}",
        "toast": {
          "synced": "已同步 {{name}}：新增 +{{added}}，更新 {{updated}}，移除 {{removed}}。",
          "syncFailed": "同步失败"
        }
      },
      "exportImport": {
        "eyebrow": "[§ 导出 / 导入]",
        "title": "导出 / 导入",
        "description": "将完整设置以 JSON 形式下载，或导入此前导出的配置以应用。导出文件中的密钥会被脱敏占位；导入占位值会保留数据库中现有的值。",
        "downloadTitle": "下载",
        "downloadHintPrefix": "文件名遵循",
        "uploadTitle": "上传并导入",
        "uploadSteps": "第 1 步：上传。第 2 步：预演。第 3 步：确认并应用。",
        "invalidFile": "文件不是有效的 Ornn 设置导出（缺少 schemaVersion 或 sections）",
        "parseFailed": "解析失败",
        "loaded": "已加载 · schemaVersion {{schemaVersion}} · 导出于 {{exportedAt}}",
        "dryRunTitle": "预演预览",
        "appliedTitle": "导入已应用",
        "action": {
          "export": "导出设置",
          "chooseFile": "选择文件",
          "dryRun": "运行预演",
          "apply": "应用导入",
          "applyConfirm": "应用"
        },
        "confirm": {
          "title": "应用导入？",
          "body": "将写入所有通过校验的节。校验失败的节会被跳过——其余照常应用。占位值的密钥将保留数据库中现有的值。"
        },
        "table": {
          "section": "节",
          "status": "状态",
          "detail": "详情"
        },
        "toast": {
          "exported": "已导出 {{filename}}",
          "exportFailed": "导出失败",
          "dryRunFailed": "预演失败",
          "importPartial": "导入部分成功——{{failed}} 个节失败。",
          "importApplied": "导入已应用。",
          "importFailed": "导入失败"
        }
      }
    }
  },
  "adminMirror": {
    "savedRepo": "镜像设置已保存。",
    "savedCreds": "GitHub App 凭据已保存。",
    "title": "GitHub 镜像",
    "loading": "正在加载镜像状态…",
    "loadFailed": "无法加载镜像状态。",
    "featureOn": "功能已启用",
    "featureOff": "功能未启用——切换下方开关以启用",
    "branch": "分支",
    "lastReconcile": "上次同步",
    "runningSince": "从 {{when}} 开始运行",
    "never": "从未",
    "duration": "耗时",
    "lastError": "上次错误",
    "countEligible": "符合条件",
    "countEligibleHint": "公开 + 系统技能",
    "countSynced": "已同步",
    "countSyncedHint": "镜像中的最新版本",
    "countLagging": "落后",
    "countLaggingHint": "已镜像，但版本陈旧",
    "countNeverSynced": "从未同步",
    "countNeverSyncedOldest": "最早待处理：{{when}}",
    "countNeverSyncedNone": "无待处理",
    "reconcileTitle": "手动同步",
    "reconcileRunning": "运行中…",
    "reconcileButton": "立即同步",
    "repoFormTitle": "镜像仓库",
    "fieldEnabled": "启用镜像",
    "fieldOwner": "Owner",
    "fieldRepo": "Repo",
    "fieldBranch": "分支",
    "credsTitle": "GitHub App 凭据",
    "fieldAppId": "App ID",
    "fieldAppIdHint": "数字格式，来自 GitHub 上的 App 设置页。",
    "fieldInstallationId": "Installation ID",
    "fieldPrivateKey": "App 私钥 (PEM)",
    "confirmTitle": "确认：放弃当前镜像仓库",
    "confirmConfirm": "是，更换仓库"
  },
  "errors": {
    "generic": {
      "unknown": "出错了"
    },
    "api": {
      "quota": {
        "snapshotMissing": "配额快照缺失",
        "snapshotShapeInvalid": "配额快照格式无效：{{detail}}",
        "adminListMissing": "管理员配额列表缺失",
        "lifetimeMissing": "历史配额响应缺失",
        "grantMissing": "授予响应缺失",
        "bulkGrantMissing": "批量授予响应缺失",
        "auditListMissing": "审计列表缺失"
      },
      "redemption": {
        "mintMissing": "兑换码生成响应缺失",
        "mintShapeInvalid": "兑换码生成响应格式无效：{{detail}}",
        "adminListMissing": "管理员兑换码列表缺失",
        "adminListShapeInvalid": "管理员兑换码列表格式无效：{{detail}}",
        "detailMissing": "兑换码详情缺失",
        "detailShapeInvalid": "兑换码格式无效：{{detail}}",
        "invalidateMissing": "作废响应缺失",
        "invalidateShapeInvalid": "作废响应格式无效：{{detail}}",
        "redeemMissing": "兑换响应缺失",
        "redeemShapeInvalid": "兑换响应格式无效：{{detail}}",
        "historyMissing": "兑换历史缺失",
        "historyShapeInvalid": "兑换历史格式无效：{{detail}}"
      },
      "settings": {
        "sectionMissing": "响应中缺失 {{section}} 段",
        "sectionPutMissing": "{{section}} 段更新未返回数据",
        "providerNotFound": "未找到 Provider",
        "providerCreateFailed": "创建 Provider 失败",
        "providerUpdateFailed": "更新 Provider 失败",
        "syncFailed": "同步 Provider 模型失败",
        "modelPatchFailed": "更新模型标记失败",
        "exportMissing": "导出响应缺失",
        "importMissing": "导入响应缺失"
      },
      "adminUsers": {
        "listMissing": "管理员用户列表缺失"
      },
      "models": {
        "pickerMissing": "模型选择响应缺失"
      },
      "adminDashboard": {
        "statsMissing": "仪表板统计缺失"
      },
      "audit": {
        "startMissing": "审计未返回数据"
      },
      "skillPackage": {
        "downloadFailed": "技能包下载失败：{{status}}",
        "loadFailed": "技能包加载失败"
      }
    },
    "zip": {
      "readFailed": "读取 ZIP 文件失败。文件可能已损坏。",
      "skillMdNested": "在子目录中发现 SKILL.md，但它必须位于压缩包根目录。",
      "skillMdRootRequired": "无效的技能包：根目录必须存在 SKILL.md。",
      "skillMdMultiple": "发现多个 SKILL.md 文件。不允许嵌套技能。",
      "unrecognizedDirs": "存在未识别目录：{{dirs}}。仅允许 scripts/、references/、assets/。",
      "frontmatterUnparseable": "无法从 SKILL.md frontmatter 解析元数据。请检查并修复 YAML frontmatter 块。",
      "onlyZipAccepted": "仅接受 .zip 文件。",
      "fileTooLarge": "文件过大（{{size}}）。"
    },
    "frontmatter": {
      "panelTitle": "Frontmatter 校验错误",
      "panelCount": "{{count}} 个错误。保存前请全部修复。",
      "generic": "{{detail}}",
      "unparseable": "无法解析 SKILL.md frontmatter",
      "tagFormat": "标签必须为小写字母数字，可包含连字符",
      "envVarFormat": "环境变量名必须为 UPPER_SNAKE_CASE",
      "nameFormat": "名称必须以字母或数字开头，仅允许小写字母、数字和连字符",
      "versionFormat": "版本必须为 `<主版本>.<次版本>` 格式，例如 `1.0`（非负整数，不含前导零，不含修订位）",
      "runtimeRequiredForCategory": "类别为 '{{category}}' 时必须填写 runtime",
      "runtimeForbiddenForCategory": "类别为 '{{category}}' 时不得填写 runtime",
      "toolListRequiredForCategory": "类别为 '{{category}}' 时必须填写 tool-list",
      "toolListForbiddenForCategory": "类别为 '{{category}}' 时不得填写 tool-list",
      "outputTypeRequiredForCategory": "类别为 '{{category}}' 时必须填写 output-type",
      "outputTypeForbiddenForCategory": "类别为 '{{category}}' 时不得填写 output-type",
      "runtimeDependencyForbiddenForCategory": "类别为 '{{category}}' 时不得填写 runtime-dependency",
      "runtimeEnvVarForbiddenForCategory": "类别为 '{{category}}' 时不得填写 runtime-env-var"
    }
  }
}
