@plumeai/plugin-sdk 0.0.0-stage → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/LICENSE +21 -0
  2. package/bin/plume-plugin.mjs +70 -0
  3. package/dist/client/styles/src/index.d.ts +123 -0
  4. package/dist/client/ui/src/avatar/AgentAvatar.d.ts +42 -0
  5. package/dist/client/ui/src/avatar/AvatarPile.d.ts +36 -0
  6. package/dist/client/ui/src/avatar/AvatarStack.d.ts +26 -0
  7. package/dist/client/ui/src/avatar/art.d.ts +32 -0
  8. package/dist/client/ui/src/fileIcon.d.ts +33 -0
  9. package/dist/client/ui/src/hooks/useCopied.d.ts +16 -0
  10. package/dist/client/ui/src/hooks/useLiveRefresh.d.ts +22 -0
  11. package/dist/client/ui/src/hooks/useNarrow.d.ts +16 -0
  12. package/dist/client/ui/src/i18n/context.d.ts +17 -0
  13. package/dist/client/ui/src/i18n/index.d.ts +2 -0
  14. package/dist/client/ui/src/i18n/list.d.ts +20 -0
  15. package/dist/client/ui/src/i18n/locales.d.ts +10 -0
  16. package/dist/client/ui/src/i18n/messages/en.d.ts +1418 -0
  17. package/dist/client/ui/src/i18n/messages/index.d.ts +6 -0
  18. package/dist/client/ui/src/i18n/messages/zh-CN.d.ts +1263 -0
  19. package/dist/client/ui/src/i18n/plural.d.ts +16 -0
  20. package/dist/client/ui/src/i18n/translate.d.ts +43 -0
  21. package/dist/client/ui/src/icons/index.d.ts +5 -0
  22. package/dist/client/ui/src/image/AnnotateCanvas.d.ts +29 -0
  23. package/dist/client/ui/src/image/AnnotateToolbar.d.ts +73 -0
  24. package/dist/client/ui/src/image/Annotator.d.ts +154 -0
  25. package/dist/client/ui/src/image/annotate.d.ts +227 -0
  26. package/dist/client/ui/src/image/paint.d.ts +35 -0
  27. package/dist/client/ui/src/image/screenshot-geometry.d.ts +112 -0
  28. package/dist/client/ui/src/image/useBarDrag.d.ts +31 -0
  29. package/dist/client/ui/src/image/useMovableBar.d.ts +26 -0
  30. package/dist/client/ui/src/image/useToolbarPlacement.d.ts +42 -0
  31. package/dist/client/ui/src/index.d.ts +140 -0
  32. package/dist/client/ui/src/inputs/ColorField.d.ts +9 -0
  33. package/dist/client/ui/src/inputs/ComposerToggle.d.ts +23 -0
  34. package/dist/client/ui/src/inputs/DateRangeField.d.ts +25 -0
  35. package/dist/client/ui/src/inputs/NativeField.d.ts +5 -0
  36. package/dist/client/ui/src/inputs/SearchField.d.ts +21 -0
  37. package/dist/client/ui/src/inputs/Segmented.d.ts +23 -0
  38. package/dist/client/ui/src/inputs/Select.d.ts +32 -0
  39. package/dist/client/ui/src/inputs/ShortcutRecorder.d.ts +8 -0
  40. package/dist/client/ui/src/inputs/Slider.d.ts +13 -0
  41. package/dist/client/ui/src/inputs/TextArea.d.ts +30 -0
  42. package/dist/client/ui/src/inputs/Toggle.d.ts +10 -0
  43. package/dist/client/ui/src/inputs/WorktreeToggle.d.ts +19 -0
  44. package/dist/client/ui/src/inputs/day-range.d.ts +57 -0
  45. package/dist/client/ui/src/inputs/pickers.d.ts +40 -0
  46. package/dist/client/ui/src/inputs/useFieldFade.d.ts +1 -0
  47. package/dist/client/ui/src/keyboard.d.ts +21 -0
  48. package/dist/client/ui/src/layout/ApprovalFrame.d.ts +33 -0
  49. package/dist/client/ui/src/layout/Collapse.d.ts +9 -0
  50. package/dist/client/ui/src/layout/CopyMark.d.ts +19 -0
  51. package/dist/client/ui/src/layout/Disclosure.d.ts +66 -0
  52. package/dist/client/ui/src/layout/ErrorBoundary.d.ts +26 -0
  53. package/dist/client/ui/src/layout/PageTopRow.d.ts +19 -0
  54. package/dist/client/ui/src/layout/PanelEmpty.d.ts +17 -0
  55. package/dist/client/ui/src/layout/ResizeHandle.d.ts +24 -0
  56. package/dist/client/ui/src/layout/RetainedViews.d.ts +32 -0
  57. package/dist/client/ui/src/layout/Settings.d.ts +41 -0
  58. package/dist/client/ui/src/layout/Splitter.d.ts +25 -0
  59. package/dist/client/ui/src/lib/agent-avatar.d.ts +58 -0
  60. package/dist/client/ui/src/lib/code/font-stack.d.ts +12 -0
  61. package/dist/client/ui/src/lib/code/themes.d.ts +35 -0
  62. package/dist/client/ui/src/lib/date-format.d.ts +8 -0
  63. package/dist/client/ui/src/lib/dispatches.d.ts +8 -0
  64. package/dist/client/ui/src/lib/hour-style.d.ts +13 -0
  65. package/dist/client/ui/src/lib/number-draft.d.ts +24 -0
  66. package/dist/client/ui/src/lib/relative-time.d.ts +18 -0
  67. package/dist/client/ui/src/lib/tiling.d.ts +89 -0
  68. package/dist/client/ui/src/lib/typing.d.ts +19 -0
  69. package/dist/client/ui/src/motion/RollWords.d.ts +26 -0
  70. package/dist/client/ui/src/motion/RollingText.d.ts +43 -0
  71. package/dist/client/ui/src/motion/TypedText.d.ts +9 -0
  72. package/dist/client/ui/src/motion/freeze.d.ts +22 -0
  73. package/dist/client/ui/src/motion/held.d.ts +17 -0
  74. package/dist/client/ui/src/motion/loaders.d.ts +65 -0
  75. package/dist/client/ui/src/motion/reduced.d.ts +13 -0
  76. package/dist/client/ui/src/motion/ticked.d.ts +24 -0
  77. package/dist/client/ui/src/motion/ticker.d.ts +31 -0
  78. package/dist/client/ui/src/motion/tokens.d.ts +29 -0
  79. package/dist/client/ui/src/motion/useNow.d.ts +6 -0
  80. package/dist/client/ui/src/overlay/Confirm.d.ts +96 -0
  81. package/dist/client/ui/src/overlay/ContextMenu.d.ts +40 -0
  82. package/dist/client/ui/src/overlay/Dialog.d.ts +60 -0
  83. package/dist/client/ui/src/overlay/Menu.d.ts +90 -0
  84. package/dist/client/ui/src/overlay/Overlay.d.ts +17 -0
  85. package/dist/client/ui/src/overlay/Popover.d.ts +127 -0
  86. package/dist/client/ui/src/overlay/Tooltip.d.ts +14 -0
  87. package/dist/client/ui/src/overlay/afterimage.d.ts +20 -0
  88. package/dist/client/ui/src/overlay/chrome-top.d.ts +8 -0
  89. package/dist/client/ui/src/overlay/hover-layers.d.ts +41 -0
  90. package/dist/client/ui/src/overlay/portal.d.ts +21 -0
  91. package/dist/client/ui/src/overlay/scrims.d.ts +20 -0
  92. package/dist/client/ui/src/overlay/tooltip-attribute.d.ts +62 -0
  93. package/dist/client/ui/src/primitives/Button.d.ts +64 -0
  94. package/dist/client/ui/src/primitives/Caret.d.ts +25 -0
  95. package/dist/client/ui/src/primitives/ChoiceMark.d.ts +12 -0
  96. package/dist/client/ui/src/primitives/ClosableTab.d.ts +23 -0
  97. package/dist/client/ui/src/primitives/CountUp.d.ts +21 -0
  98. package/dist/client/ui/src/primitives/GitHubMark.d.ts +12 -0
  99. package/dist/client/ui/src/primitives/IconButton.d.ts +55 -0
  100. package/dist/client/ui/src/primitives/MarkNumber.d.ts +12 -0
  101. package/dist/client/ui/src/primitives/RowDeleteButton.d.ts +6 -0
  102. package/dist/client/ui/src/primitives/Skeleton.d.ts +36 -0
  103. package/dist/client/ui/src/primitives/TabStrip.d.ts +29 -0
  104. package/dist/client/ui/src/primitives/Text.d.ts +341 -0
  105. package/dist/client/ui/src/primitives/TimeAgo.d.ts +13 -0
  106. package/dist/client/ui/src/primitives/useCountUp.d.ts +23 -0
  107. package/dist/client/ui/src/row/FlowRow.d.ts +31 -0
  108. package/dist/client/ui/src/row/HoverRow.d.ts +28 -0
  109. package/dist/client/ui/src/scroll/BackToLatest.d.ts +19 -0
  110. package/dist/client/ui/src/scroll/OverlayScrollbar.d.ts +9 -0
  111. package/dist/client/ui/src/scroll/ScrollText.d.ts +24 -0
  112. package/dist/client/ui/src/scroll/Scroller.d.ts +66 -0
  113. package/dist/client/ui/src/scroll/Sideways.d.ts +30 -0
  114. package/dist/client/ui/src/scroll/fade.d.ts +2 -0
  115. package/dist/client/ui/src/scroll/follow.d.ts +157 -0
  116. package/dist/client/ui/src/scroll/measure-batch.d.ts +13 -0
  117. package/dist/client/ui/src/scroll/memory.d.ts +22 -0
  118. package/dist/client/ui/src/scroll/signature.d.ts +24 -0
  119. package/dist/client/ui/src/scroll/useFollowBottom.d.ts +80 -0
  120. package/dist/client/ui/src/scroll/useSideways.d.ts +29 -0
  121. package/dist/contract/src/app.d.ts +16 -0
  122. package/dist/contract/src/changes.d.ts +50 -0
  123. package/dist/contract/src/diagnostics.d.ts +86 -0
  124. package/dist/contract/src/index.d.ts +18 -0
  125. package/dist/contract/src/plugin.d.ts +1391 -0
  126. package/dist/contract/src/resources.d.ts +79 -0
  127. package/dist/contract/src/service.d.ts +806 -0
  128. package/dist/contract/src/ui.d.ts +1039 -0
  129. package/dist/contract/src/usage.d.ts +102 -0
  130. package/dist/core/llm/ai/anthropic-messages-request.d.ts +82 -0
  131. package/dist/core/llm/ai/anthropic-messages.d.ts +43 -0
  132. package/dist/core/llm/ai/cache-routing.d.ts +53 -0
  133. package/dist/core/llm/ai/chat-delta.d.ts +107 -0
  134. package/dist/core/llm/ai/compat-key.d.ts +19 -0
  135. package/dist/core/llm/ai/endpoint.d.ts +57 -0
  136. package/dist/core/llm/ai/failure.d.ts +181 -0
  137. package/dist/core/llm/ai/index.d.ts +16 -0
  138. package/dist/core/llm/ai/openai-chat-completions-request.d.ts +49 -0
  139. package/dist/core/llm/ai/openai-chat-completions.d.ts +37 -0
  140. package/dist/core/llm/ai/openai-responses-request.d.ts +63 -0
  141. package/dist/core/llm/ai/openai-responses.d.ts +11 -0
  142. package/dist/core/llm/ai/prefix-fingerprint.d.ts +20 -0
  143. package/dist/core/llm/ai/reasoning-compat.d.ts +69 -0
  144. package/dist/core/llm/ai/request-params-compat.d.ts +39 -0
  145. package/dist/core/llm/ai/retry.d.ts +130 -0
  146. package/dist/core/llm/ai/sanitize-history.d.ts +23 -0
  147. package/dist/core/llm/ai/think-tag.d.ts +37 -0
  148. package/dist/core/llm/ai/thinking-options.d.ts +35 -0
  149. package/dist/core/llm/ai/tool-names.d.ts +17 -0
  150. package/dist/core/llm/ai/tool-pairing-compat.d.ts +53 -0
  151. package/dist/core/llm/ai/tool-result-images-compat.d.ts +24 -0
  152. package/dist/core/llm/ai/tool-schema.d.ts +20 -0
  153. package/dist/core/llm/ai/usage-fields.d.ts +30 -0
  154. package/dist/core/llm/ai/vendors/index.d.ts +20 -0
  155. package/dist/core/llm/ai/vendors/thinking.d.ts +39 -0
  156. package/dist/core/llm/ai/vendors/types.d.ts +47 -0
  157. package/dist/core/llm/config/image-models.d.ts +34 -0
  158. package/dist/core/llm/config/retry-policy.d.ts +35 -0
  159. package/dist/core/llm/images/chat-images.d.ts +11 -0
  160. package/dist/core/llm/images/dimensions.d.ts +15 -0
  161. package/dist/core/llm/images/generate.d.ts +15 -0
  162. package/dist/core/llm/images/openai-images.d.ts +11 -0
  163. package/dist/core/llm/images/quota.d.ts +9 -0
  164. package/dist/core/llm/images/shape.d.ts +44 -0
  165. package/dist/core/llm/images/types.d.ts +118 -0
  166. package/dist/core/llm/model-catalog-format.d.ts +50 -0
  167. package/dist/core/llm/model-catalog.d.ts +51 -0
  168. package/dist/core/llm/types/message.d.ts +450 -0
  169. package/dist/core/llm/types/provider.d.ts +169 -0
  170. package/dist/core/llm/types/tool.d.ts +23 -0
  171. package/dist/core/llm/types.d.ts +10 -0
  172. package/dist/core/llm/utils/pricing.d.ts +18 -0
  173. package/dist/core/llm/utils/record.d.ts +2 -0
  174. package/dist/core/llm/utils/sse.d.ts +69 -0
  175. package/dist/infra/rpc/src/endpoint.d.ts +36 -0
  176. package/dist/infra/rpc/src/index.d.ts +2 -0
  177. package/dist/infra/rpc/src/rpc.d.ts +54 -0
  178. package/dist/theme.css +336 -0
  179. package/dist/ui.d.ts +2 -0
  180. package/lib/build.mjs +143 -0
  181. package/lib/check.mjs +23 -0
  182. package/lib/dev.mjs +52 -0
  183. package/lib/icons.mjs +2 -0
  184. package/lib/init.mjs +109 -0
  185. package/lib/install.mjs +80 -0
  186. package/lib/link.mjs +44 -0
  187. package/lib/lint/i18n.mjs +149 -0
  188. package/lib/lint/imports.mjs +83 -0
  189. package/lib/lint/index.mjs +54 -0
  190. package/lib/lint/styles.mjs +160 -0
  191. package/lib/manifest.d.mts +9 -0
  192. package/lib/manifest.mjs +99 -0
  193. package/lib/targets.mjs +60 -0
  194. package/package.json +34 -4
  195. package/skill/SKILL.md +150 -0
  196. package/skill/references/components.md +2830 -0
  197. package/skill/references/logic.md +526 -0
  198. package/skill/references/style-i18n.md +70 -0
  199. package/skill/references/ui.md +532 -0
  200. package/template/AGENTS.md +17 -0
  201. package/template/CLAUDE.md +1 -0
  202. package/template/README.md +12 -0
  203. package/template/gitignore +2 -0
  204. package/template/src/index.ts +28 -0
  205. package/template/src/messages.ts +16 -0
  206. package/template/src/types.ts +8 -0
  207. package/template/src/ui.tsx +30 -0
  208. package/template/tsconfig.json +7 -0
  209. package/tsconfig.json +25 -0
  210. package/README.md +0 -3
@@ -0,0 +1,1263 @@
1
+ export declare const zhCN: {
2
+ readonly "notice.project-config-not-object": "{path} 的内容不是一个对象。";
3
+ readonly "notice.project-config-invalid-json": "{path} 不是合法的 JSON:{error}";
4
+ readonly "common.refresh": "刷新";
5
+ readonly "common.paste": "粘贴";
6
+ readonly "common.cut": "剪切";
7
+ readonly "fileMenu.theseN": "这 {n} 项";
8
+ readonly "fileMenu.cut": "剪切{what}";
9
+ readonly "fileMenu.copy": "复制{what}";
10
+ readonly "fileMenu.delete": "删除{what}";
11
+ readonly "fileMenu.deleteForever": "永久删除{what}";
12
+ readonly "fileMenu.clipboardEmpty": "剪贴板里没有文件";
13
+ readonly "fileMenu.openInTerminal": "在终端中打开";
14
+ readonly "fileMenu.newFile": "新建文件";
15
+ readonly "fileMenu.newFolder": "新建文件夹";
16
+ readonly "fileMenu.duplicate": "创建副本";
17
+ readonly "fileMenu.searchHere": "在此文件夹中搜索";
18
+ readonly "fileMenu.collapseAll": "全部折叠";
19
+ readonly "common.replace": "替换";
20
+ readonly "override.replaced": "整体替换";
21
+ readonly "override.overrode": "覆盖";
22
+ readonly "override.projectConfig": "{name} 的项目配置";
23
+ readonly "override.nothingOverridden": "它没有改写任何全局值——里面的键要么全局没设过,要么两边一样。";
24
+ readonly "override.projectValue": "项目值";
25
+ readonly "override.globalValue": "全局值";
26
+ readonly "override.overriddenNote": "⚠ 被项目值{mode},不生效";
27
+ readonly "override.repoBanned": "不允许放在仓库文件里,已被忽略";
28
+ readonly "fileAction.exists": "「{name}」已存在";
29
+ readonly "fileAction.noTerminal": "请先安装并启用终端插件。";
30
+ readonly "codeBlock.runInTerminal": "在终端运行";
31
+ readonly "fileAction.replaceDetail": "替换会覆盖那里已有的内容,无法撤销。";
32
+ readonly "fileAction.one": "「{name}」";
33
+ readonly "fileAction.deleteForeverConfirm": "永久删除{what}?";
34
+ readonly "fileAction.deleteConfirm": "删除{what}?";
35
+ readonly "fileAction.noUndo": "无法恢复。";
36
+ readonly "fileAction.toTrash": "移到废纸篓,可以在访达里找回。";
37
+ readonly "fileAction.toTrashWin": "移到回收站,可以从回收站里还原。";
38
+ readonly "fileAction.toTrashLinux": "移到回收站,可以在文件管理器里找回。";
39
+ readonly "fileAction.deleteForever": "永久删除";
40
+ readonly "fileAction.moveToTrash": "移到废纸篓";
41
+ readonly "fileAction.moveToTrashWin": "移到回收站";
42
+ readonly "fileAction.moveToTrashLinux": "移到回收站";
43
+ readonly "fileTree.searchIn": "搜索 {name} 内的文件";
44
+ readonly "fileTree.onlyThis": "只看 {name}";
45
+ readonly "fileTree.noMatch": "没有匹配的文件";
46
+ readonly "fileTree.emptyDir": "这个目录是空的";
47
+ readonly "path.emptyName": "名字不能为空";
48
+ readonly "path.dotName": "不能用 . 或 .. 作为名字";
49
+ readonly "path.slashInName": "名字里不能有 / 或 \\";
50
+ readonly "path.spaceAround": "名字前后不能有空格";
51
+ readonly "nameEditor.name": "名字";
52
+ readonly "fileTree.projectFiles": "项目文件";
53
+ readonly "common.cancel": "取消";
54
+ readonly "common.delete": "删除";
55
+ readonly "common.hide": "隐藏";
56
+ readonly "secretInput.saved": "已保存,留空则不修改";
57
+ readonly "common.save": "保存";
58
+ readonly "common.show": "显示";
59
+ readonly "app.backWorkspace": "返回工作区";
60
+ readonly "app.sidebar": "侧边栏";
61
+ readonly "app.hideSettingsNavigation": "隐藏设置导航 {shortcut}";
62
+ readonly "app.showSettingsNavigation": "显示设置导航 {shortcut}";
63
+ readonly "language.title": "界面语言";
64
+ readonly "language.detail": "切换 Plume 的菜单、设置和操作提示。会话内容、代码与终端输出保持原文。";
65
+ readonly "language.system": "跟随系统";
66
+ readonly "language.systemDetected": "当前系统语言";
67
+ readonly "language.zh-CN": "简体中文";
68
+ readonly "language.en": "English";
69
+ readonly "settings.group.basic": "基础设置";
70
+ readonly "settings.group.agent": "Agent 能力";
71
+ readonly "settings.general": "常规";
72
+ readonly "settings.appearance": "外观";
73
+ readonly "settings.models": "模型设置";
74
+ readonly "settings.about": "关于";
75
+ readonly "settings.personalization": "个性化";
76
+ readonly "settings.agents": "智能体";
77
+ readonly "agents.title": "智能体";
78
+ readonly "agents.intro": "把一类任务交给单独配置了模型、工具和指令的子智能体。";
79
+ readonly "agents.imageModel": "生图模型";
80
+ readonly "agents.imageModelDetail": "对话里画图、改图时用它,除非另外点名";
81
+ readonly "agents.imageModelNone": "还没有生图模型。在「模型设置」里给供应商添加一个,比如 gpt-image-1 或 gemini-3.1-flash-image。";
82
+ readonly "agents.imageModelAuto": "自动(第一个生图模型)";
83
+ readonly "agents.imageModelAutoShort": "自动";
84
+ readonly "common.saved": "已保存";
85
+ readonly "tone.title": "语气风格";
86
+ readonly "tone.detail": "选择适合您开发习惯的助手交流风格";
87
+ readonly "tone.warm": "亲和温和 (默认)";
88
+ readonly "tone.professional": "专业严谨";
89
+ readonly "tone.terse": "极度精炼 (少废话)";
90
+ readonly "tone.blunt": "直接坦率 (直指缺陷)";
91
+ readonly "tone.playful": "幽默风趣";
92
+ readonly "tone.section": "个性与语气偏好";
93
+ readonly "tone.customInstructions": "自定义指令";
94
+ readonly "tone.customDetail": "支持 Markdown 格式。系统会自动读取项目根目录的 PLUME.md / AGENTS.md / CLAUDE.md 作为项目级指令。";
95
+ readonly "tone.sampleRules": "# 全局 Agent 规则与偏好\n\n- 默认使用中文回答;代码、命令与错误日志保留原文。\n- 遵循最小改动原则,标准库与原生依赖优先,不做过度抽象。\n- 遇到问题主动检索本地代码与文档,给出经过验证的方案。";
96
+ readonly "personalization.globalRules": "向 Agent 提供适用于此主机上所有聊天的额外说明和全局规则,会自动与项目中的 AGENTS.md / CLAUDE.md 组合生效。";
97
+ readonly "personalization.toneIntro": "调整 Agent 回复的默认语调与工程风格。";
98
+ readonly "about.environment": "运行环境";
99
+ readonly "about.title": "关于 Plume";
100
+ readonly "general.permissions": "权限";
101
+ readonly "thinking.off": "关";
102
+ readonly "thinking.minimal": "极简";
103
+ readonly "thinking.low": "低";
104
+ readonly "thinking.medium": "中";
105
+ readonly "thinking.high": "高";
106
+ readonly "thinking.xhigh": "超高";
107
+ readonly "thinking.max": "最高";
108
+ readonly "thinking.ultra": "极致";
109
+ readonly "thinking.title": "推理强度";
110
+ readonly "thinking.unsupported": "不支持";
111
+ readonly "thinking.help": "各档位说明";
112
+ readonly "thinking.faster": "更快";
113
+ readonly "thinking.smarter": "更聪明";
114
+ readonly "thinking.detail.off": "不推理,直接作答。最快。";
115
+ readonly "thinking.detail.minimal": "只做最低限度的思考。";
116
+ readonly "thinking.detail.low": "简单任务够用。";
117
+ readonly "thinking.detail.medium": "日常编码的默认档。";
118
+ readonly "thinking.detail.high": "复杂重构、疑难排查。";
119
+ readonly "thinking.detail.xhigh": "更深层次的逻辑推演。";
120
+ readonly "thinking.detail.max": "把预算拉满,最慢也最稳。";
121
+ readonly "thinking.detail.ultra": "极致推理模式,算力全开。";
122
+ readonly "thinking.newDefault": "作为新会话的默认档位";
123
+ readonly "thinking.providerSupport": "供应商对推理档位的支持不一;「关闭」始终显式要求不要推理。";
124
+ readonly "thinking.unsupportedDetail": "当前模型不支持推理,这项设置不会生效。";
125
+ readonly "sidebar.newChat": "新对话";
126
+ readonly "sidebar.noSessions": "还没有会话。";
127
+ readonly "sidebar.newChatHint": "点击「新对话」开始。";
128
+ readonly "sidebar.listSettings": "列表设置";
129
+ readonly "sidebar.sortBy": "排序方式";
130
+ readonly "sidebar.updated": "最近更新";
131
+ readonly "sidebar.manual": "手动排序";
132
+ readonly "sessionRow.collapseFollowUps": "收起后续会话";
133
+ readonly "sessionRow.expandFollowUps": "展开后续会话";
134
+ readonly "sessionRow.collapseFollowUpsOne": "收起「{title}」的后续会话";
135
+ readonly "sessionRow.expandFollowUpsOne": "展开「{title}」的后续会话";
136
+ readonly "projectCard.chats": "{n} 个聊天";
137
+ readonly "sessionCard.yesterday": "昨天";
138
+ readonly "sessionCard.daysAgo": "{n} 天前";
139
+ readonly "sessionCard.turns": "轮次";
140
+ readonly "sessionCard.turnsSteps": "{turns} 轮 · {n} 步";
141
+ readonly "sessionCard.tokens": "tokens";
142
+ readonly "sessionCard.mainCache": "主会话缓存命中";
143
+ readonly "sessionCard.unpriced": "未定价";
144
+ readonly "sessionCard.input": "输入";
145
+ readonly "sessionCard.output": "输出";
146
+ readonly "sessionCard.partMain": "主会话";
147
+ readonly "sessionCard.partSide": "侧边聊天";
148
+ readonly "sessionCard.partSubagents": "子智能体";
149
+ readonly "sessionCard.started": "{at} 开始";
150
+ readonly "sessionCard.readCache": "读缓存 {n}";
151
+ readonly "reorder.saveFailed": "排序未能保存:{reason}";
152
+ readonly "sidebar.created": "最近创建";
153
+ readonly "sidebar.expandProjects": "展开全部项目";
154
+ readonly "sidebar.collapseProjects": "收起全部项目";
155
+ readonly "projectMenu.archiveChats": "归档聊天";
156
+ readonly "workspace.archived": "已归档 {n} 个聊天";
157
+ readonly "workspace.archiveFailed": "有会话没能归档:{reason}";
158
+ readonly "projectList.pinned": "置顶";
159
+ readonly "projectList.projects": "项目";
160
+ readonly "projectList.recent": "聊天";
161
+ readonly "projectList.newLooseChat": "新对话(不在项目中)";
162
+ readonly "empty.chat": "想聊点什么?";
163
+ readonly "empty.projectQuestion": "要在 {project} 内开发什么?";
164
+ readonly "empty.explore": "理解代码";
165
+ readonly "empty.explorePrompt": "帮我梳理这个项目的整体架构:入口在哪里、核心模块怎么划分、数据是怎么流动的。";
166
+ readonly "empty.build": "开发功能";
167
+ readonly "empty.buildPrompt": "我想新增一个功能,先帮我确认现有代码里应该改哪些文件,再给出实现方案。";
168
+ readonly "empty.review": "审查改动";
169
+ readonly "empty.reviewPrompt": "审查当前工作区未提交的改动,指出其中的缺陷和风险,按严重程度排序。";
170
+ readonly "empty.fix": "报错修复";
171
+ readonly "empty.fixPrompt": "帮我定位一个问题的根因。先复现,再定位,最后给出最小改动的修复。";
172
+ readonly "project.switch": "切换项目";
173
+ readonly "project.search": "搜索项目";
174
+ readonly "project.without": "不在项目中工作";
175
+ readonly "project.none": "还没有项目";
176
+ readonly "project.new": "新建项目";
177
+ readonly "project.create": "创建项目";
178
+ readonly "project.edit": "编辑项目";
179
+ readonly "project.namePlaceholder": "项目名称";
180
+ readonly "project.mainFolder": "主文件夹";
181
+ readonly "project.mainFolderHint": "新对话在这个文件夹里运行,git 也读这里;已有的对话留在原来的文件夹里";
182
+ readonly "project.makeMain": "设为主文件夹";
183
+ readonly "project.makeMainNamed": "把 {name} 设为主文件夹";
184
+ readonly "project.addFolder": "添加文件夹";
185
+ readonly "project.sourceFolders": "源文件夹";
186
+ readonly "project.thisComputer": "此电脑";
187
+ readonly "project.addFolderOnThisComputer": "在此电脑上添加文件夹";
188
+ readonly "project.add": "添加";
189
+ readonly "project.removeFolderNamed": "把 {name} 从这个项目里拿掉";
190
+ readonly "project.removeLocal": "移除本地项目";
191
+ readonly "projectHead.newSession": "在这个项目里新建会话";
192
+ readonly "projectHead.newSessionIn": "在「{name}」里新建会话";
193
+ readonly "projectHead.actions": "项目操作";
194
+ readonly "projectHead.actionsFor": "「{name}」的项目操作";
195
+ readonly "projectMenu.newSessionHere": "在这里新建会话";
196
+ readonly "projectMenu.editProject": "编辑项目";
197
+ readonly "projectMenu.actionsFor": "{name} 的操作";
198
+ readonly "projectMenu.removeConfirm": "移除 {name}?";
199
+ readonly "projectMenu.removeDetail": "它的聊天会一并归档,之后能在设置 › 已归档的聊天里找回。磁盘上的目录和里面的文件都不动。";
200
+ readonly "showMore.expand": "展开显示({n})";
201
+ readonly "common.collapse": "收起";
202
+ readonly "groupActivity.running": "{n} 个会话正在执行";
203
+ readonly "sessionStatus.running": "正在执行";
204
+ readonly "sessionStatus.unread": "未读";
205
+ readonly "sessionStatus.done": "已完成 · 未查看";
206
+ readonly "sessionStatus.failed": "执行失败 · 未查看";
207
+ readonly "sidebar.search": "搜索会话";
208
+ readonly "sidebar.notifications": "通知";
209
+ readonly "sidebar.settings": "设置";
210
+ readonly "composer.message": "消息";
211
+ readonly "composer.send": "发送";
212
+ readonly "composer.stop": "停止";
213
+ readonly "composer.selectModel": "选择模型";
214
+ readonly "composer.thinking": "推理强度:{level}";
215
+ readonly "composer.followParent": "跟随主会话";
216
+ readonly "composer.worktree": "工作树";
217
+ readonly "composer.worktreeOff": "在新工作树里开始";
218
+ readonly "composer.worktreeOn": "会在新工作树里开始,不动主工作区。再点一下取消";
219
+ readonly "model.unavailable": "模型不可用";
220
+ readonly "model.notSet": "未配置模型";
221
+ readonly "common.copy": "复制";
222
+ readonly "common.details": "详情";
223
+ readonly "common.zoomOut": "缩小";
224
+ readonly "common.zoomIn": "放大";
225
+ readonly "common.actualSize": "实际大小";
226
+ readonly "common.fitWindow": "适应窗口";
227
+ readonly "fileMenu.copyRelativePath": "复制相对路径";
228
+ readonly "markdown.fileChoices": "项目里有 {n} 个同名文件";
229
+ readonly "dock.fileContents": "文件内容";
230
+ readonly "filePanel.unreadableAt": "读不到 {path}";
231
+ readonly "markdown.tableWrap": "自动换行";
232
+ readonly "markdown.tableNowrap": "取消换行";
233
+ readonly "fileActions.wrap": "自动换行";
234
+ readonly "common.copied": "已复制";
235
+ readonly "common.system": "系统";
236
+ readonly "common.default": "默认";
237
+ readonly "appearance.theme": "主题";
238
+ readonly "appearance.currentSkin": "当前皮肤";
239
+ readonly "appearance.skinManaged": "配色与深浅模式由换肤工坊管理;停用皮肤后恢复你的偏好,字体、代码外观和背景仍可调整。";
240
+ readonly "appearance.light": "浅色";
241
+ readonly "appearance.dark": "深色";
242
+ readonly "appearance.darkTheme": "深色主题";
243
+ readonly "appearance.lightTheme": "浅色主题";
244
+ readonly "appearance.preset": "预设";
245
+ readonly "appearance.accent": "强调色";
246
+ readonly "appearance.background": "背景";
247
+ readonly "appearance.foreground": "前景";
248
+ readonly "appearance.uiFont": "UI 字体";
249
+ readonly "appearance.contrast": "对比度";
250
+ readonly "common.restore": "恢复";
251
+ readonly "common.on": "开启";
252
+ readonly "common.off": "关闭";
253
+ readonly "common.standard": "标准";
254
+ readonly "appearance.codeSection": "代码外观 (Code appearance)";
255
+ readonly "appearance.lightSyntax": "浅色代码高亮";
256
+ readonly "appearance.lightSyntaxDetail": "浅色模式下文件预览与代码块的高亮主题";
257
+ readonly "appearance.darkSyntax": "深色代码高亮";
258
+ readonly "appearance.darkSyntaxDetail": "深色模式下文件预览与代码块的高亮主题";
259
+ readonly "appearance.inlineCode": "行内代码";
260
+ readonly "appearance.inlineCodeDetail": "正文里那一小块代码的底色和字色从哪儿来";
261
+ readonly "appearance.inlineCodeApp": "跟界面";
262
+ readonly "appearance.inlineCodeSyntax": "跟代码主题";
263
+ readonly "appearance.inlineCodeLightBg": "浅色底色";
264
+ readonly "appearance.inlineCodeDarkBg": "深色底色";
265
+ readonly "appearance.inlineCodeLightFg": "浅色字色";
266
+ readonly "appearance.inlineCodeDarkFg": "深色字色";
267
+ readonly "appearance.inlineCodeFollowsBg": "跟着底色";
268
+ readonly "appearance.inlineCodeBorder": "描边";
269
+ readonly "appearance.inlineCodeBorderDetail": "底色和正文接近时,给它描一圈细边";
270
+ readonly "appearance.codeFont": "代码字体 (Code font)";
271
+ readonly "appearance.codeFontDetail": "用于文件预览、代码编辑器与终端的等宽字体";
272
+ readonly "appearance.fontNotInstalled": "{name}(本机不可用)";
273
+ readonly "appearance.custom": "自定义…";
274
+ readonly "appearance.customStack": "自定义字体栈";
275
+ readonly "appearance.fontStack": "按 CSS 写法,逗号分隔,带空格的名字要加引号;靠后的是装不上时的退路";
276
+ readonly "appearance.codeFontSize": "代码字体大小";
277
+ readonly "appearance.codeFontSizeDetail": "调整聊天和差异视图中代码使用的基础字号";
278
+ readonly "appearance.lineHeight": "行高";
279
+ readonly "appearance.lineHeightSection": "行高 (Line height)";
280
+ readonly "appearance.lineHeightDetail": "倍数,不是像素,换字号时不用重调";
281
+ readonly "appearance.compact": "紧凑";
282
+ readonly "appearance.relaxed": "宽松";
283
+ readonly "appearance.widest": "最宽";
284
+ readonly "appearance.tracking": "字距";
285
+ readonly "appearance.trackingSection": "字距 (Tracking)";
286
+ readonly "appearance.trackingDetail": "以 em 为单位,跟着字号缩放";
287
+ readonly "appearance.tighten": "收紧";
288
+ readonly "appearance.loosen": "放宽";
289
+ readonly "appearance.wider": "更宽";
290
+ readonly "appearance.resetDefaults": "恢复默认";
291
+ readonly "appearance.resetDefaultsDetail": "清除手动调整,恢复当前皮肤或默认外观";
292
+ readonly "codePreview.light": "浅色预览";
293
+ readonly "codePreview.dark": "深色预览";
294
+ readonly "codePreview.inlineSentence": "已推送到 `origin/main`,最新提交 `f36a74b`";
295
+ readonly "codePreview.restore": "还原示例内容";
296
+ readonly "codePreview.editable": "{label},可以改成你自己的代码";
297
+ readonly "codeFonts.systemMono": "系统等宽";
298
+ readonly "appearance.preferences": "偏好设置";
299
+ readonly "appearance.pointerCursor": "使用指针光标";
300
+ readonly "appearance.pointerCursorDetail": "悬停交互元素时切换为指针光标";
301
+ readonly "appearance.reduceMotion": "减少动态效果";
302
+ readonly "appearance.reduceMotionDetail": "减少动画效果或匹配系统设置";
303
+ readonly "appearance.uiScale": "UI 字号";
304
+ readonly "appearance.uiScaleDetail": "调整 Plume 界面使用的基准字号";
305
+ readonly "appearance.diffMarks": "差异标记";
306
+ readonly "appearance.diffMarksDetail": "使用颜色或 +/− 标记显示更改";
307
+ readonly "appearance.colour": "颜色";
308
+ readonly "appearance.fontSmoothing": "字体平滑";
309
+ readonly "appearance.fontSmoothingDetail": "使用 macOS 原生字体抗锯齿";
310
+ readonly "appearance.vibrancy": "窗口毛玻璃";
311
+ readonly "appearance.vibrancyDetail": "主窗口的侧栏和四周透出 macOS 的窗口材质,关掉后用不透明的主题色";
312
+ readonly "appearance.chatBackground": "会话背景";
313
+ readonly "appearance.chatBackgroundOnNewChat": "新对话里显示";
314
+ readonly "appearance.chatBackgroundInChat": "对话中显示";
315
+ readonly "appearance.chatBackgroundChoose": "选择图片";
316
+ readonly "appearance.chatBackgroundTooLarge": "图片超过 20 MB,换一张小一点的。";
317
+ readonly "appearance.chatBackgroundDrop": "拖拽图片到这里,或点下方按钮选择";
318
+ readonly "appearance.chatBackgroundErrorInvalid": "图片无法识别,请换一张 PNG、JPEG、GIF 或 WebP 图片。";
319
+ readonly "appearance.chatBackgroundErrorFailed": "图片导入失败,原背景图未改变。";
320
+ readonly "appearance.chatBackgroundEmpty": "尚未设置背景图";
321
+ readonly "appearance.chatBackgroundShow": "显示位置";
322
+ readonly "appearance.chatBackgroundOpacityStep": "浓度 {percent}%";
323
+ readonly "appearance.chatBackgroundFit": "铺放方式";
324
+ readonly "appearance.chatBackgroundFitCover": "铺满";
325
+ readonly "appearance.chatBackgroundFitTile": "平铺";
326
+ readonly "appearance.chatBackgroundOpacity": "浓度";
327
+ readonly "appearance.chatBackgroundEffect": "背景效果";
328
+ readonly "appearance.chatBackgroundEffectNone": "原图";
329
+ readonly "appearance.chatBackgroundEffectDither": "抖动";
330
+ readonly "appearance.chatBackgroundEffectAscii": "ASCII";
331
+ readonly "appearance.chatBackgroundEffectHalftone": "网点";
332
+ readonly "appearance.chatBackgroundEffectScanlines": "扫描线";
333
+ readonly "appearance.chatBackgroundEffectHaze": "雾化";
334
+ readonly "usage.noPrice": "暂无价格";
335
+ readonly "week.mon": "一";
336
+ readonly "week.tue": "二";
337
+ readonly "week.wed": "三";
338
+ readonly "week.thu": "四";
339
+ readonly "week.fri": "五";
340
+ readonly "week.sat": "六";
341
+ readonly "week.sun": "日";
342
+ readonly "cleanup.allTime": "全部时间";
343
+ readonly "cleanup.olderThan": "{n} 天前";
344
+ readonly "cleanup.since": "{date} 起";
345
+ readonly "cleanup.until": "{date} 止";
346
+ readonly "cleanup.pickRange": "选择时间范围";
347
+ readonly "cleanup.yearMonth": "{year} 年 {month} 月";
348
+ readonly "cleanup.prevMonth": "上个月";
349
+ readonly "cleanup.nextMonth": "下个月";
350
+ readonly "common.session": "会话";
351
+ readonly "market.title": "插件市场";
352
+ readonly "market.skills": "技能";
353
+ readonly "market.connectors": "连接器";
354
+ readonly "market.fromMarket": "从市场添加";
355
+ readonly "market.autoUpdate": "自动更新";
356
+ readonly "market.updatesN": "{n} 个有新版本";
357
+ readonly "market.updatingN": "正在更新 {n} 个…";
358
+ readonly "market.updateAll": "全部更新";
359
+ readonly "market.allCategories": "全部分类";
360
+ readonly "market.emptyCategory": "这个分类里暂时没有";
361
+ readonly "market.noneInstalled": "还没有装插件";
362
+ readonly "market.browseAll": "看看能装什么";
363
+ readonly "market.empty": "市场里暂时是空的";
364
+ readonly "market.localOnly": "本机添加";
365
+ readonly "market.localOnlyNote": "不在任何市场里,是直接放进目录的";
366
+ readonly "market.noTagline": "作者没有写介绍";
367
+ readonly "market.tryAsking": "试试这样问";
368
+ readonly "market.installing": "安装中";
369
+ readonly "market.updating": "更新中";
370
+ readonly "market.enabled": "已启用";
371
+ readonly "market.disabled": "未启用";
372
+ readonly "market.enableNamed": "启用 {name}";
373
+ readonly "plugins.builtinNote": "随 Plume 提供,不能停用或卸载";
374
+ readonly "sidebar.pluginUpdates": "{n} 个可更新";
375
+ readonly "common.notSet": "未设置";
376
+ readonly "settingsDialog.optional": "可选";
377
+ readonly "modelEditor.edit": "编辑模型";
378
+ readonly "modelEditor.add": "添加模型";
379
+ readonly "modelEditor.id": "模型 ID";
380
+ readonly "modelEditor.idDetail": "发送给供应商的实际模型名,例如 deepseek-v4-flash";
381
+ readonly "modelEditor.displayName": "显示名称";
382
+ readonly "modelEditor.displayNameDetail": "留空则使用模型 ID";
383
+ readonly "modelEditor.context": "上下文窗口(token)";
384
+ readonly "modelEditor.maxOutput": "最大输出(token)";
385
+ readonly "modelEditor.inputPrice": "输入价格($/百万 token)";
386
+ readonly "modelEditor.outputPrice": "输出价格($/百万 token)";
387
+ readonly "modelEditor.cacheReadPrice": "缓存命中价格($/百万 token)";
388
+ readonly "modelEditor.cacheWritePrice": "缓存写入价格($/百万 token)";
389
+ readonly "modelEditor.noPriceDetail": "未设置价格;未匹配的模型只统计 token,不估算费用";
390
+ readonly "modelEditor.catalogPrice": "价格从 pi.dev 模型目录填入(参考估算)";
391
+ readonly "modelEditor.manualPrice": "当前使用手动填写的价格";
392
+ readonly "modelEditor.thinking": "支持思考 / 推理";
393
+ readonly "modelEditor.thinkingLevels": "推理档位";
394
+ readonly "modelEditor.thinkingLevelsDetail": "推理强度菜单里可选的档位。从模型目录选中时自动勾好;不勾「关」表示这个模型关不掉思考。";
395
+ readonly "modelEditor.images": "支持图片输入";
396
+ readonly "modelEditor.imageOutput": "生图模型";
397
+ readonly "modelEditor.imageOutputDetail": "用来画图和改图,不出现在对话模型列表里";
398
+ readonly "modelEditor.toolCalls": "支持工具调用";
399
+ readonly "modelEditor.catalogTiers": ",含 {n} 档长上下文价格";
400
+ readonly "mcp.uninstall": "卸载";
401
+ readonly "providerModels.fetchDetail": "从当前 Base URL 端点自动获取可用模型列表";
402
+ readonly "providerModels.fetching": "获取中…";
403
+ readonly "providerModels.fetch": "拉取模型";
404
+ readonly "providerModels.testing": "测试中…";
405
+ readonly "providerModels.testPassed": "测试通过";
406
+ readonly "providerModels.testFailed": "测试失败";
407
+ readonly "providerModels.connecting": "正在测试连接…";
408
+ readonly "providerModels.testOne": "测试此模型";
409
+ readonly "providerModels.makeDefault": "设为默认模型";
410
+ readonly "providerModels.makeDefaultImage": "设为默认生图模型";
411
+ readonly "providerModels.testDraw": "画一张小图测试(会计费)";
412
+ readonly "providerModels.editOne": "编辑模型";
413
+ readonly "providerModels.deleteOne": "删除模型";
414
+ readonly "providerModels.deleteConfirm": "删除 {id}?";
415
+ readonly "providerModels.deleteDefaultDetail": "它是当前的默认模型,删掉之后要另选一个。";
416
+ readonly "providerModels.select": "选择";
417
+ readonly "providerModels.deleteSelected": "删除 {n} 个";
418
+ readonly "providerModels.deleteManyConfirm": "删除选中的 {n} 个模型?";
419
+ readonly "providerModels.deleteManyDefaultDetail": "其中有当前的默认模型,删掉之后要另选一个。";
420
+ readonly "providerModels.list": "模型";
421
+ readonly "providerModels.empty": "还没有模型。可以从接口拉取,也可以手动添加。";
422
+ readonly "providerModels.connectFailed": "连接失败:";
423
+ readonly "common.search": "搜索";
424
+ readonly "common.more": "更多操作";
425
+ readonly "common.plugins": "插件";
426
+ readonly "plugins.uninstallConfirm": "卸载 {name}?";
427
+ readonly "common.selectAll": "全选";
428
+ readonly "common.deselectAll": "取消全选";
429
+ readonly "fetchModels.search": "搜索,或输入模型名添加…";
430
+ readonly "fetchModels.title": "拉取并选择模型";
431
+ readonly "fetchModels.noMatch": "没有找到匹配的模型";
432
+ readonly "catalog.search": "搜索模型目录";
433
+ readonly "catalog.searchPlaceholder": "搜索目录:GPT、Gemini、Kimi、Qwen、HY、GLM、Claude…";
434
+ readonly "catalog.results": "模型目录搜索结果";
435
+ readonly "catalog.price": "${input} / ${output} 每百万 token";
436
+ readonly "catalog.fill": "从模型目录填入";
437
+ readonly "catalog.fillDetail": "搜索 pi.dev 模型目录,选中后填入上下文、输出上限、能力和价格,之后可以随意修改;不会改动模型 ID。";
438
+ readonly "catalog.suggested": "按模型 ID 找到:";
439
+ readonly "catalog.missing": "目录暂无该型号,请手动填写。";
440
+ readonly "common.local": "本地";
441
+ readonly "common.installed": "已安装";
442
+ readonly "common.other": "其他";
443
+ readonly "common.openFolder": "打开目录";
444
+ readonly "market.reload": "重新读取";
445
+ readonly "market.readingPlugins": "正在读取插件目录";
446
+ readonly "pluginDetail.settings": "设置";
447
+ readonly "pluginDetail.settingsAt": "去 设置 › {place}";
448
+ readonly "pluginDetail.extensionsAt": "去 插件市场 › {place}";
449
+ readonly "pluginDetail.homepage": "打开主页";
450
+ readonly "pluginDetail.category": "类别";
451
+ readonly "pluginDetail.website": "网站";
452
+ readonly "pluginDetail.installPluginWarning": "插件的代码和 agent 跑在同一个进程里,能读写你的文件;市场不做代码审核,装之前先看看它的介绍和来源。";
453
+ readonly "readme.note": "说明";
454
+ readonly "readme.tip": "提示";
455
+ readonly "readme.important": "重要";
456
+ readonly "readme.warning": "注意";
457
+ readonly "readme.caution": "警告";
458
+ readonly "readme.done": "已完成";
459
+ readonly "readme.todo": "未完成";
460
+ readonly "readme.details": "详情";
461
+ readonly "market.unreadable": "{n} 个插件有问题,去设置里看看";
462
+ readonly "market.notInCatalog": "插件目录里已经没有它了";
463
+ readonly "market.unreachable": "连不上插件市场({reason}),列出的是已装的和上次读到的";
464
+ readonly "market.localOwned": "这是本机直接放进目录的插件,到它的目录里删";
465
+ readonly "market.builtinOwned": "这是随应用发的插件,不能卸载、停用";
466
+ readonly "market.notAPlugin": "这个文件夹不是构建好的插件:文件夹名只能用小写字母、数字和连字符,里面要有 dist/index.mjs";
467
+ readonly "market.pickPluginFolder": "选择插件文件夹";
468
+ readonly "market.create": "创建插件";
469
+ readonly "market.createNew": "新建插件";
470
+ readonly "market.createNewDetail": "开一个新对话,让 Plume 用 plume-plugin 技能照你说的写";
471
+ readonly "market.installFolder": "从本地上传";
472
+ readonly "market.installFolderDetail": "装上本机一个构建好的插件文件夹";
473
+ readonly "market.uninstallDetail": "它会立即停用,目录被删除。它自己存的数据留着,重新安装可以接着用。";
474
+ readonly "common.install": "安装";
475
+ readonly "common.done": "完成";
476
+ readonly "common.close": "关闭";
477
+ readonly "common.remove": "移除";
478
+ readonly "common.update": "更新";
479
+ readonly "modelMenu.favourite": "收藏";
480
+ readonly "modelMenu.unfavourite": "取消收藏";
481
+ readonly "modelMenu.favouriteOne": "收藏 {name}";
482
+ readonly "modelMenu.unfavouriteOne": "取消收藏 {name}";
483
+ readonly "modelMenu.switchFailed": "切换模型失败:{reason}";
484
+ readonly "modelMenu.midConfirm": "确定要中途切换模型吗?";
485
+ readonly "modelMenu.midDetail1": "当前会话已产生对话记录。各家模型的上下文格式、推理习惯与工具调用规范存在差异:";
486
+ readonly "modelMenu.midDetail2": "1. 之前的推理上下文和思维链无法跨模型沿用,后续回答效果可能变差;";
487
+ readonly "modelMenu.midDetail3": "2. 原有 Prompt Cache(提示词缓存)将失效,导致首轮延迟和 Token 消耗上升;";
488
+ readonly "modelMenu.midDetail4": "3. 若遇到意外格式异常,建议开启新对话体验最佳效果。";
489
+ readonly "modelMenu.confirmSwitch": "确认切换";
490
+ readonly "modelMenu.pick": "选择模型";
491
+ readonly "modelMenu.search": "搜索模型或供应商";
492
+ readonly "modelMenu.noModels": "还没有可用模型,去添加供应商";
493
+ readonly "modelMenu.noMatch": "没有匹配的模型";
494
+ readonly "modelMenu.allModels": "全部模型";
495
+ readonly "modelMenu.otherHouse": "其他";
496
+ readonly "modelMenu.houses": "按模型厂商筛选";
497
+ readonly "catalogCard.disabled": "已停用";
498
+ readonly "catalogCard.updateTo": "更新到 {version}";
499
+ readonly "catalogCard.updateToLatest": "更新到最新版本";
500
+ readonly "catalogCard.tryNow": "立即试用";
501
+ readonly "install.failedWith": "{name}:{message}";
502
+ readonly "common.disabled": "已禁用";
503
+ readonly "provider.apiFormat": "API 格式";
504
+ readonly "provider.apiFormatDetail": "按供应商文档选:OpenAI 官方用 Responses,Anthropic 用 Messages,其他兼容 OpenAI 的服务一般是 Chat Completions。";
505
+ readonly "provider.connection": "连接";
506
+ readonly "provider.summary": "{api} · {n} 个模型";
507
+ readonly "provider.test": "测试";
508
+ readonly "provider.rename": "重命名供应商";
509
+ readonly "provider.enable": "启用";
510
+ readonly "provider.delete": "删除供应商";
511
+ readonly "provider.deleteConfirm": "删除 {name}?";
512
+ readonly "provider.deleteDetail": "它的地址、密钥,以及配置在它下面的 {n} 个模型都会一起删掉。";
513
+ readonly "pane.closeOne": "关闭{label}";
514
+ readonly "pane.tabs": "面板标签";
515
+ readonly "pane.addTab": "添加面板";
516
+ readonly "modelSettings.title": "模型设置";
517
+ readonly "modelSettings.catalogStatus": "模型目录:{source} · 更新于 {date} · {count} 个模型";
518
+ readonly "modelSettings.catalogUpdate": "立即更新";
519
+ readonly "modelSettings.catalogUpdating": "正在更新…";
520
+ readonly "modelSettings.catalogUpdated": "已更新";
521
+ readonly "modelSettings.catalogUnchanged": "已是最新";
522
+ readonly "modelSettings.catalogFailed": "更新失败:{error}";
523
+ readonly "modelSettings.testConnection": "测试当前供应商连接";
524
+ readonly "modelSettings.addProvider": "添加供应商";
525
+ readonly "modelSettings.noProviders": "还没有配置任何供应商";
526
+ readonly "modelSettings.addFirst": "添加第一个供应商";
527
+ readonly "modelSettings.magpieManaged": "这个供应商由 Magpie 管理:换模型、断开都在 Magpie 的 Agent 页操作。在这里可以测试连接、设为默认。";
528
+ readonly "providerTransfer.importTip": "从 JSON 文件导入供应商";
529
+ readonly "providerTransfer.exportTip": "把供应商导出为 JSON 文件";
530
+ readonly "providerTransfer.exportConfirm": "导出供应商配置?";
531
+ readonly "providerTransfer.exportConfirmDetail": "文件里会带上每个供应商的 API Key,明文。拿到它的人就能用你的额度——不要提交进仓库、发到聊天里或放进共享网盘。";
532
+ readonly "providerTransfer.exportAction": "导出";
533
+ readonly "providerTransfer.exported": "已导出 {n} 个供应商";
534
+ readonly "providerTransfer.exportedWithKeys": "已导出 {n} 个供应商,文件含 API Key,请妥善保管";
535
+ readonly "providerTransfer.importTitle": "导入供应商";
536
+ readonly "providerTransfer.willAdd": "新增";
537
+ readonly "providerTransfer.willReplace": "覆盖";
538
+ readonly "providerTransfer.modelCount": "{n} 个模型";
539
+ readonly "providerTransfer.keyIncluded": "文件里带着这个供应商的 API Key";
540
+ readonly "providerTransfer.keyKept": "文件里没有密钥,沿用本机已配置的那个";
541
+ readonly "providerTransfer.keyMissing": "文件里没有密钥,导入后要自己填";
542
+ readonly "providerTransfer.importPlan": "新增 {add} 个,覆盖 {replace} 个";
543
+ readonly "providerTransfer.importAction": "导入 {n} 个";
544
+ readonly "providerTransfer.imported": "已导入 {n} 个供应商";
545
+ readonly "providerTransfer.dropped": "文件里有 {n} 条读不出来,已跳过。";
546
+ readonly "providerTransfer.errorNotJson": "这不是一个 JSON 文件";
547
+ readonly "providerTransfer.errorNotBundle": "这不是 Plume 导出的供应商文件";
548
+ readonly "providerTransfer.errorTooNew": "这个文件来自更新的版本,先升级 Plume 再导入";
549
+ readonly "providerTransfer.errorNoProviders": "文件里没有可以导入的供应商";
550
+ readonly "time.ago": "{span}前";
551
+ readonly "time.justNow": "刚刚";
552
+ readonly "time.minutes": "{n} 分钟";
553
+ readonly "time.hours": "{n} 小时";
554
+ readonly "time.days": "{n} 天";
555
+ readonly "time.months": "{n} 个月";
556
+ readonly "time.years": "{n} 年";
557
+ readonly "turn.thinkingFailed": "推理等级设置失败:{reason}";
558
+ readonly "permission.reject": "拒绝";
559
+ readonly "common.comma": ",";
560
+ readonly "common.clear": "清除";
561
+ readonly "shortcut.press": "按下快捷键";
562
+ readonly "shortcut.pressHint": "请在键盘上按下快捷键...";
563
+ readonly "errorBoundary.title": "这个界面崩了";
564
+ readonly "errorBoundary.detail": "渲染进程抛了一个没人接住的错误。会话和设置都还在,重新加载这个窗口就能回去。";
565
+ readonly "errorBoundary.errorStack": "错误栈";
566
+ readonly "errorBoundary.stack": "组件栈";
567
+ readonly "errorBoundary.reload": "重新加载";
568
+ readonly "errorBoundary.devHint": "改过主进程或 core 的话,要重启 dev server";
569
+ readonly "errorBoundary.issueHint": "提交 issue 或反馈问题时,请把组件栈一并复制上。";
570
+ readonly "backToLatest.unread": "有新内容";
571
+ readonly "backToLatest.latest": "回到最新";
572
+ readonly "thinking.process": "思考过程";
573
+ readonly "thinking.live": "正在思考";
574
+ readonly "thinking.live2": "头脑风暴中";
575
+ readonly "thinking.live3": "琢磨一下";
576
+ readonly "thinking.live4": "理理思路";
577
+ readonly "thinking.live5": "掂量掂量";
578
+ readonly "thinking.live6": "想想怎么办";
579
+ readonly "thinking.forSeconds": "思考了 {n} 秒";
580
+ readonly "thinking.forMinutes": "思考了 {m} 分 {s} 秒";
581
+ readonly "thinking.forAWhile": "思考了一会儿";
582
+ readonly "thinking.redacted": "思考内容已被安全过滤";
583
+ readonly "thinking.earlier": "前面还有 {n} 字,想完后可看全文";
584
+ readonly "common.reading": "正在读取";
585
+ readonly "common.clearSearch": "清除搜索";
586
+ readonly "fetchModels.totalCount": "共 {n} 个";
587
+ readonly "fetchModels.added": "已添加";
588
+ readonly "fetchModels.available": "可添加";
589
+ readonly "fetchModels.willRemove": "将移除";
590
+ readonly "fetchModels.typed": "手动添加";
591
+ readonly "fetchModels.unlisted": "未列出";
592
+ readonly "fetchModels.unlistedDetail": "这次拉取的列表里没有它:可能已下线,也可能只是没被列出";
593
+ readonly "fetchModels.addTyped": "添加这个模型";
594
+ readonly "fetchModels.noneListed": "端点没有列出模型,在上面输入模型名就能添加";
595
+ readonly "fetchModels.nothingNew": "列出的模型都已添加。要用没列出的模型,在上面输入名字";
596
+ readonly "fetchModels.noChanges": "没有改动";
597
+ readonly "fetchModels.toAdd": "新增 {n} 个";
598
+ readonly "fetchModels.toRemove": "移除 {n} 个";
599
+ readonly "fetchModels.apply": "应用";
600
+ readonly "fetchModels.applyAdd": "添加 {n} 个";
601
+ readonly "fetchModels.applyRemove": "移除 {n} 个";
602
+ readonly "fetchModels.applyBoth": "应用 {n} 项更改";
603
+ readonly "pluginIcon.plugin": "插件";
604
+ readonly "providerAdd.title": "添加模型供应商";
605
+ readonly "providerAdd.name": "名称";
606
+ readonly "providerAdd.namePlaceholder": "例如 公司内网网关";
607
+ readonly "providerAdd.urlInvalid": "要以 http:// 或 https:// 开头";
608
+ readonly "providerAdd.keyOptionalHint": "服务不要求 Key 时留空";
609
+ readonly "providerAdd.fetch": "添加后拉取模型列表";
610
+ readonly "providerAdd.fetchDetail": "从 /models 读一遍,再挑要用的那几个";
611
+ readonly "providers.newProvider": "新供应商";
612
+ readonly "providers.fetchFailed": "获取模型列表失败";
613
+ readonly "effort.title": "推理强度";
614
+ readonly "theme.plumeDefault": "Plume 默认";
615
+ readonly "modelGrouping.pick": "选择模型";
616
+ readonly "panes.resizeSidebar": "调整侧边栏宽度";
617
+ readonly "splitter.resizePane": "调整面板大小";
618
+ readonly "sideways.left": "往左滚";
619
+ readonly "sideways.right": "往右滚";
620
+ readonly "providerModels.add": "添加模型";
621
+ readonly "modelGrouping.contextSuffix": "上下文";
622
+ readonly "sessionOps.newSession": "新会话";
623
+ readonly "common.rename": "重命名";
624
+ readonly "common.archive": "归档";
625
+ readonly "sessionMenu.actions": "会话操作";
626
+ readonly "sessionMenu.openIn": "打开方式";
627
+ readonly "sessionMenu.newWindow": "新窗口";
628
+ readonly "sessionMenu.openInMainWindow": "在主窗口中打开";
629
+ readonly "window.keepOnTop": "窗口置顶";
630
+ readonly "window.releaseTop": "取消窗口置顶";
631
+ readonly "common.back": "返回";
632
+ readonly "sessionMenu.pin": "置顶";
633
+ readonly "sessionMenu.unpin": "取消置顶";
634
+ readonly "sessionMenu.pinned": "已置顶会话";
635
+ readonly "sessionMenu.unpinned": "已取消置顶会话";
636
+ readonly "sessionMenu.markUnread": "标记为未读";
637
+ readonly "sessionMenu.markRead": "标记为已读";
638
+ readonly "sessionMenu.markedUnread": "已标记为未读";
639
+ readonly "sessionMenu.markedRead": "已标记为已读";
640
+ readonly "sessionMenu.project": "项目";
641
+ readonly "sessionMenu.moveToProject": "移动到项目";
642
+ readonly "sessionMenu.currentProject": "当前项目";
643
+ readonly "sessionMenu.removeFrom": "从 {name} 中移除";
644
+ readonly "sessionMenu.exportRecords": "导出原始记录";
645
+ readonly "sessionMenu.recordsExported": "已导出原始记录";
646
+ readonly "sessionMenu.exportMarkdown": "导出为 Markdown";
647
+ readonly "sessionMenu.markdownExported": "已导出为 Markdown";
648
+ readonly "sessionMenu.options": "会话选项";
649
+ readonly "sessionMenu.rename": "重命名会话";
650
+ readonly "sessionMenu.titleLabel": "会话标题";
651
+ readonly "sessionMenu.copyCwd": "复制工作目录";
652
+ readonly "sessionMenu.cwdCopied": "已复制工作目录路径";
653
+ readonly "sessionMenu.copySessionId": "复制会话 ID";
654
+ readonly "sessionMenu.sessionIdCopied": "已复制会话 ID";
655
+ readonly "panel.failed": "这个面板出错了,详情见开发者工具的日志。";
656
+ readonly "page.failed": "这个页面出错了,详情见开发者工具的日志。";
657
+ readonly "app.agentExited": "agent 进程已退出(退出码 {code}),请重启 Plume。";
658
+ readonly "shell.hideSidebar": "隐藏侧边栏 ⌘B";
659
+ readonly "shell.showSidebar": "显示侧边栏 ⌘B";
660
+ readonly "toolbar.back": "后退";
661
+ readonly "toolbar.forward": "前进";
662
+ readonly "panel.start": "开始";
663
+ readonly "panel.startHeading": "打开面板";
664
+ readonly "panel.area": "面板";
665
+ readonly "panel.resize": "调整面板宽度";
666
+ readonly "panel.hide": "收起面板";
667
+ readonly "panel.show": "打开面板";
668
+ readonly "pane.openInNewWindow": "在新窗口中打开";
669
+ readonly "pane.exitFullScreen": "退出全屏";
670
+ readonly "common.fullScreen": "全屏";
671
+ readonly "pane.dockBack": "收回";
672
+ readonly "pane.openFailed": "无法打开面板窗口,原标签已保留。";
673
+ readonly "session.running": "运行中";
674
+ readonly "chat.noModel": "还没有可用的模型。先在「模型设置」里添加供应商,填好服务地址、API key 和模型。";
675
+ readonly "toolCard.stopped": "已停止";
676
+ readonly "toolCard.args": "参数";
677
+ readonly "toolCard.outputRunning": "输出(进行中)";
678
+ readonly "toolCard.waiting": "等待输出…";
679
+ readonly "toolCard.writtenLines": "已写 {n} 行";
680
+ readonly "toolCard.image": "{summary} 的第 {n} 张图片";
681
+ readonly "diffView.truncated": "… 差异过长,已截断显示";
682
+ readonly "commands.title": "命令";
683
+ readonly "common.result": "结果";
684
+ readonly "common.error": "错误";
685
+ readonly "tools.create": "创建文件";
686
+ readonly "tools.edit": "修改文件";
687
+ readonly "tools.read": "读取文件";
688
+ readonly "tools.bash": "执行命令";
689
+ readonly "tools.monitor": "监视命令";
690
+ readonly "tools.output": "查看输出";
691
+ readonly "tools.outputOf": "查看「{what}」的输出";
692
+ readonly "tools.outputOfTimes": "查看「{what}」的输出 {n} 次";
693
+ readonly "tools.outputTimes": "查看输出 {n} 次";
694
+ readonly "tools.stopJob": "停止命令";
695
+ readonly "peers.from": "来自 {name}";
696
+ readonly "peers.answerFrom": "{name} 的答复";
697
+ readonly "peers.letter": "其他会话的消息";
698
+ readonly "peers.open": "打开这个会话";
699
+ readonly "peers.sessionGone": "这个会话已经不在了";
700
+ readonly "jobReturn.done": "后台命令完成";
701
+ readonly "jobReturn.failed": "后台命令失败";
702
+ readonly "jobReturn.exitCode": "退出码 {code}";
703
+ readonly "jobReturn.killed": "被终止";
704
+ readonly "jobReturn.many": "{n} 个后台命令结束";
705
+ readonly "jobReturn.failedCount": "{n} 个失败";
706
+ readonly "jobReturn.monitorLines": "监视到 {n} 行新输出";
707
+ readonly "jobReturn.monitorStopped": "监视已停止";
708
+ readonly "jobReturn.monitorIdle": "长时间没有输出";
709
+ readonly "jobReturn.monitorMaxEvents": "达到行数上限";
710
+ readonly "jobReturn.manyUpdates": "{n} 个后台命令有新输出";
711
+ readonly "wakeupReturn.fired": "定时唤醒";
712
+ readonly "sessionReturn.from": "来自新会话";
713
+ readonly "sessionReturn.failed": "没跑完";
714
+ readonly "tools.find": "查找文件";
715
+ readonly "tools.grep": "搜索内容";
716
+ readonly "tools.ls": "列出目录";
717
+ readonly "tools.todo": "更新清单";
718
+ readonly "tools.todoOf": "更新清单 {done}/{total}";
719
+ readonly "tools.todoAt": "更新清单 {done}/{total} · {task}";
720
+ readonly "tools.using": "使用工具";
721
+ readonly "tools.countOf": "{kind} {count} 个";
722
+ readonly "tools.countTimes": "{kind} {count} 次";
723
+ readonly "tools.run": "工具调用";
724
+ readonly "step.thinking": "思考 {n} 次";
725
+ readonly "step.separator": " · ";
726
+ readonly "conversation.showEarlier": "显示更早的 {n} 轮(共 {total} 轮)";
727
+ readonly "conversation.showEarlierRest": "显示更早的 {n} 轮";
728
+ readonly "conversation.showLaterN": "显示后面的 {n} 轮";
729
+ readonly "recency.today": "今天";
730
+ readonly "recency.yesterday": "昨天";
731
+ readonly "questionNav.label": "用户问题导航";
732
+ readonly "questionNav.pick": "选择问题";
733
+ readonly "questionNav.goTo": "跳转到第 {n} 个问题:{text}";
734
+ readonly "questionNav.imageMessage": "图片消息";
735
+ readonly "userMessage.showMore": "展开全文";
736
+ readonly "userMessage.fromSideChat": "来自侧边聊天";
737
+ readonly "userMessage.showLess": "收起";
738
+ readonly "conversation.quoteToComposer": "引用到输入框";
739
+ readonly "composer.quotesTitle": "对话引用";
740
+ readonly "composer.quoteFromAssistant": "助手消息";
741
+ readonly "composer.quoteFromUser": "你的消息";
742
+ readonly "composer.removeQuote": "删除这条引用";
743
+ readonly "conversation.modelSwitched": "模型已切换 {from} → {to}";
744
+ readonly "messageActions.copyThis": "复制这条消息";
745
+ readonly "messageActions.spanTip": "这一轮 {total},模型应答 {model},{n} 次请求";
746
+ readonly "messageActions.rateTip": "{n} tokens ÷ 纯出字 {decode}";
747
+ readonly "common.send": "发送";
748
+ readonly "userMessage.turnRunning": "回合进行中,无法编辑";
749
+ readonly "userMessage.editResend": "编辑并重新发送";
750
+ readonly "taskStrip.queued": "排队中";
751
+ readonly "taskStrip.mainBusy": "主会话执行中";
752
+ readonly "taskStrip.done": "已完成";
753
+ readonly "taskStrip.failedWith": "失败 · {error} · 可重试";
754
+ readonly "taskStrip.failed": "失败 · 可重试";
755
+ readonly "taskStrip.stalled": "没做完 · 反复做同一个调用后停下 · 可重试";
756
+ readonly "taskStrip.maxTurns": "没做完 · 到了轮数上限 · 可重试";
757
+ readonly "taskStrip.interrupted": "主会话已暂停,任务一并中断 · 可继续";
758
+ readonly "taskStrip.withdrawn": "已撤回";
759
+ readonly "taskStrip.runNow": "立即执行";
760
+ readonly "taskStrip.withdraw": "撤回,内容回到输入框";
761
+ readonly "taskStrip.withdrawOne": "撤回这个任务,内容回到输入框";
762
+ readonly "taskStrip.retryOne": "重试这个任务";
763
+ readonly "taskStrip.resumeOne": "继续这个任务";
764
+ readonly "taskStrip.remove": "从列表移除";
765
+ readonly "taskStrip.removeOne": "把这条从列表移除";
766
+ readonly "sideMessage.reask": "重新提问";
767
+ readonly "sideMessage.busy": "回答进行中,无法编辑";
768
+ readonly "sideMessage.editAndReask": "编辑并重新提问";
769
+ readonly "userMessage.editNotLast": "只能编辑最后一条消息";
770
+ readonly "userMessage.undo": "撤回并重新编辑";
771
+ readonly "userMessage.undoRunning": "回合进行中,无法撤销";
772
+ readonly "userMessage.undoConfirmTitle": "撤销这轮对话?";
773
+ readonly "userMessage.undoConfirmDetail": "撤销此消息将同时清除该消息之后的所有回复与操作记录。";
774
+ readonly "userMessage.undoConfirm": "撤销";
775
+ readonly "revert.filesDetail": "撤销此消息将同时清除该消息之后的所有回复与操作记录。之后改过的 {n} 个文件可以一起退回到这条消息之前的样子。";
776
+ readonly "revert.filesBlocked": "撤销此消息将同时清除该消息之后的所有回复与操作记录。下面有文件不能安全退回,这次只撤回对话,文件一个都不动。";
777
+ readonly "revert.withFiles": "撤回对话和文件";
778
+ readonly "revert.conversationOnly": "只撤回对话";
779
+ readonly "revert.editTitle": "重新发送这条消息?";
780
+ readonly "revert.editDetail": "重新发送将清除该消息之后的所有回复与操作记录。之后改过的 {n} 个文件可以一起退回到这条消息之前的样子。";
781
+ readonly "revert.editBlocked": "重新发送将清除该消息之后的所有回复与操作记录。下面有文件不能安全退回,这次只重新发送,文件一个都不动。";
782
+ readonly "revert.editWithFiles": "退回文件并发送";
783
+ readonly "revert.editOnly": "只重新发送";
784
+ readonly "revert.problem.command": "由命令改动,需手动处理";
785
+ readonly "revert.problem.interleaved": "中途被别处改过";
786
+ readonly "revert.problem.outside": "不在项目内";
787
+ readonly "revert.problem.modified": "之后被改过";
788
+ readonly "revert.unrecorded": "有改动没有记录下来,没法完整退回。";
789
+ readonly "turn.resendFailed": "编辑重发失败:{reason}";
790
+ readonly "turn.revertFailed": "撤销失败:{reason}";
791
+ readonly "messageActions.fork": "从这里分叉";
792
+ readonly "messageActions.forkTitle": "{title}(分叉)";
793
+ readonly "messageActions.forkFailed": "分叉失败";
794
+ readonly "transcript.damagedRecord": "这条记录读不出来,已跳过";
795
+ readonly "running.turnTokens": "本轮 {n} tokens";
796
+ readonly "sessionStatus.waiting": "等待你的批准";
797
+ readonly "general.showThinking": "显示思考过程";
798
+ readonly "general.showThinkingDetail": "在对话里显示模型的推理,点开能看全文。关闭时只在底部看到它正在思考。";
799
+ readonly "compact.autoTitle": "自动压缩";
800
+ readonly "compact.autoSummarizing": "正在生成摘要…";
801
+ readonly "compact.autoDone": "已压缩上下文:{before} 条消息整理为 {after} 条";
802
+ readonly "compact.autoRetrying": "遇到故障,等待第 {count} 次重试…";
803
+ readonly "compact.autoFallback": "摘要失败,正在本地整理…";
804
+ readonly "compact.autoFallbackDone": "摘要失败,已在本地压缩上下文:{before} 条消息整理为 {after} 条";
805
+ readonly "compact.autoFailed": "压缩失败,保留最近已保存的上下文";
806
+ readonly "compact.autoInterrupted": "压缩中断,保留最近已保存的上下文;未自动重试";
807
+ readonly "compact.autoRetries": "重试 {n} 次";
808
+ readonly "compactNote.running": "正在压缩会话…";
809
+ readonly "compactNote.done": "已压缩上下文:{before} 条消息整理为 {after} 条,完整对话仍可查看。";
810
+ readonly "compactNote.too-short": "对话还太短,没什么可压缩的。";
811
+ readonly "compactNote.already-tight": "已经够紧凑了,这次压缩不会更小。";
812
+ readonly "compactNote.prune-only": "只裁掉了几段过长的工具输出,没有需要总结的历史。";
813
+ readonly "compactNote.cancelled": "压缩已取消,原上下文保持不变。";
814
+ readonly "compactNote.failed": "压缩失败:{error}";
815
+ readonly "composer.queueLabel": "排队中的消息";
816
+ readonly "composer.queueWaiting": "等这一轮结束后发出";
817
+ readonly "composer.queueNow": "现在就发:停下正在跑的这一轮,拿这条重新开始";
818
+ readonly "composer.queueSendNow": "现在就发";
819
+ readonly "composer.queueRemove": "删除这一条";
820
+ readonly "composer.queueMore": "更多";
821
+ readonly "composer.queueEdit": "编辑消息";
822
+ readonly "composer.queueReorder": "拖动调整顺序,也可以用 ↑↓";
823
+ readonly "composer.queueHeld": "这一轮已停止;点「现在就发」,或再说一句把队伍推起来";
824
+ readonly "common.paused": "已暂停";
825
+ readonly "common.goSettings": "去设置";
826
+ readonly "common.continue": "继续";
827
+ readonly "resume.lastFailed": "上次请求失败,进度已保留";
828
+ readonly "resume.lastAborted": "上次执行被中断";
829
+ readonly "resume.unfinished": "计划还有 {n} 项未完成";
830
+ readonly "resume.carryOn": "接着做完没做完的部分";
831
+ readonly "resume.continueLabel": "继续";
832
+ readonly "resume.retryLabel": "重试";
833
+ readonly "resume.regenerateHint": "丢掉这次的回答,重新生成";
834
+ readonly "resume.regenerateConfirm": "重新生成这次回答?";
835
+ readonly "resume.regenerate": "重新生成";
836
+ readonly "resume.retryDetail": "这会丢掉本轮已经做过的工作——读过的文件、跑过的命令、写到一半的回答——并从你最后一条消息重新开始,重新消耗一次 token。";
837
+ readonly "resume.retryKeep": "想保留这些、只把没做完的做完,请选「继续」。";
838
+ readonly "composer.finishUnfinished": "接着做完没做完的部分";
839
+ readonly "hiccup.recovered": "断了一下,已恢复";
840
+ readonly "hiccup.recoveredAfter": "重试 {n} 次后恢复";
841
+ readonly "hiccup.switchedTo": "重试 {n} 次后换成 {model} 接着问";
842
+ readonly "hiccup.switched": "重试 {n} 次后换了模型接着问";
843
+ readonly "hiccup.stopped": "重试 {n} 次时停下了";
844
+ readonly "hiccup.retryIn": "{n} 秒后重试";
845
+ readonly "hiccup.retrying": "正在重试";
846
+ readonly "hiccup.dropped": "连接中断";
847
+ readonly "hiccup.serverFault": "服务端故障";
848
+ readonly "hiccup.sameErrorEvery": "{what},已重试 {n} 次,一直是同一个错误";
849
+ readonly "hiccup.attemptN": "{what},{wait}(第 {n} 次)";
850
+ readonly "hiccup.tookNTries": "重试了 {n} 次才接上。";
851
+ readonly "hiccup.hintKey": "去「设置 › 模型设置」确认这个服务商的密钥。";
852
+ readonly "hiccup.hintModel": "去「设置 › 模型设置」确认模型名和接口地址。";
853
+ readonly "hiccup.hintQuota": "多半是账户余额或额度,去服务商后台看一眼。";
854
+ readonly "hiccup.hintRequest": "这次请求本身不被接受,换个说法或先压缩上下文。";
855
+ readonly "hiccup.hintSafety": "内容被服务商的安全策略拦下了。";
856
+ readonly "composer.permissionAsk": "请求批准";
857
+ readonly "composer.permissionAuto": "帮我批准";
858
+ readonly "composer.permissionFull": "完全访问";
859
+ readonly "permission.mode": "权限模式";
860
+ readonly "permission.question": "应如何批准 Plume 操作?";
861
+ readonly "permission.askDetail": "编辑文件和运行会改动东西的命令时始终询问";
862
+ readonly "permission.autoDetail": "仅对检测到的风险操作请求批准";
863
+ readonly "permission.fullDetail": "可不受限制地访问网络和你电脑上的任何文件";
864
+ readonly "permission.confirmTitle": "开启完全访问?";
865
+ readonly "permission.confirmSummary": "Plume 将直接执行操作,不再逐项请求批准。";
866
+ readonly "permission.files": "文件和文件夹";
867
+ readonly "permission.filesDetail": "读写、上传或删除此电脑上的文件,不限于当前项目。";
868
+ readonly "permission.terminal": "终端与 Git";
869
+ readonly "permission.terminalDetail": "运行命令、安装软件、更改系统设置与 Git 历史。";
870
+ readonly "permission.network": "网络与插件";
871
+ readonly "permission.networkDetail": "访问网络、发送数据及调用已连接的工具。";
872
+ readonly "permission.risk": "可能造成数据丢失或泄露。可随时切回「帮我批准」。";
873
+ readonly "permission.confirmEnable": "确认开启";
874
+ readonly "permission.neverAskFor": "以后不再问:{subject}";
875
+ readonly "permission.neverAsk": "以后不再问这一项";
876
+ readonly "permission.never": "以后不再问";
877
+ readonly "permission.once": "允许一次";
878
+ readonly "approval.fromChild": "来自「{title}」的请求";
879
+ readonly "approval.childUntitled": "未命名";
880
+ readonly "approval.bash": "执行命令";
881
+ readonly "approval.write": "写入文件";
882
+ readonly "approval.edit": "修改文件";
883
+ readonly "approval.read": "读取文件";
884
+ readonly "approval.expiresIn": "{time} 后失效";
885
+ readonly "running.waitingForAnswer": "等待你的回答";
886
+ readonly "composer.plumePlaceholder": "输入消息,/ 命令,@ 引用";
887
+ readonly "command.slash": "斜杠命令";
888
+ readonly "command.builtin": "命令";
889
+ readonly "command.custom": "自定义命令";
890
+ readonly "command.clear": "开一个新对话";
891
+ readonly "command.noArgs": "这条命令不接收参数,输入内容已保留。";
892
+ readonly "command.noFiles": "这条内置命令不接收附件,请先移除附件或单独发送消息。";
893
+ readonly "commands.readFailed": "读取命令失败:{reason}";
894
+ readonly "common.builtin": "内置";
895
+ readonly "settings.sections": "设置章节";
896
+ readonly "general.defaultPermission": "默认权限";
897
+ readonly "general.defaultPermissionDetail": "Plume 始终可以读取当前工作区内的文件。需要时它会请求额外的访问权限。";
898
+ readonly "general.alwaysEnabled": "始终开启";
899
+ readonly "general.autoReview": "自动审核";
900
+ readonly "general.autoReviewDetail": "开启后命令在沙箱里直接运行,只对检测到的风险操作请求批准,比如递归删除、强制推送、写到项目外。关闭时,只读命令以外的操作都要你批准。";
901
+ readonly "general.fullAccess": "完全访问";
902
+ readonly "general.fullAccessDetail": "开启后 Plume 无需批准即可修改文件、执行命令并访问网络。这会显著提高数据丢失或意外行为的风险。";
903
+ readonly "general.section": "常规";
904
+ readonly "general.hideEmptiedProjects": "归档后收起项目";
905
+ readonly "general.hideEmptiedProjectsDetail": "项目下的会话全部归档后,连项目一起从列表收起。从没有过会话的项目始终保留。";
906
+ readonly "general.keepAwake": "运行期间不让电脑休眠";
907
+ readonly "general.keepAwakeDetail": "Plume 开着的时候不息屏、不因为闲置而休眠,长任务跑一夜也不会中断。合盖仍然会睡——两个系统的合盖动作都由系统电源策略决定,应用改不了。";
908
+ readonly "general.platform": "平台";
909
+ readonly "general.platformDetail": "当前运行环境";
910
+ readonly "general.fileTarget": "默认文件打开目标";
911
+ readonly "general.fileTargetDetail": "点击文件路径时用哪个应用打开";
912
+ readonly "openTarget.terminal": "终端";
913
+ readonly "openTarget.windowsTerminal": "Windows 终端";
914
+ readonly "openTarget.notepad": "记事本";
915
+ readonly "openTarget.openIn": "在 {app} 中打开";
916
+ readonly "pathMenu.openWith": "打开方式";
917
+ readonly "general.thinking": "默认推理强度";
918
+ readonly "general.thinkingDetail": "新会话使用的思考预算。每个会话都可以在输入框右侧单独调整,互不影响。";
919
+ readonly "common.seconds": "秒";
920
+ readonly "common.times": "次";
921
+ readonly "common.unlimited": "不限";
922
+ readonly "retry.title": "请求重试";
923
+ readonly "retry.intro": "网络中断、限流或服务暂时不可用时自动重试,次数不含首次请求。改动立即生效,正在重试的请求从下一次等待起就用新值;已执行的工具不会重做,点击停止可立即取消等待。";
924
+ readonly "retry.network": "网络中断";
925
+ readonly "retry.networkDetail": "连接失败、超时、传输中断";
926
+ readonly "retry.upstream": "上游故障";
927
+ readonly "retry.upstreamDetail": "限流、服务过载、暂时不可用";
928
+ readonly "retry.forever": "无限重试";
929
+ readonly "retry.never": "不重试";
930
+ readonly "retry.count": "重试 {count} 次";
931
+ readonly "retry.everyN": "每 {n} 秒";
932
+ readonly "retry.backoff": "{from} 秒起递增,最长 {max} 秒";
933
+ readonly "retry.times": "重试次数";
934
+ readonly "retry.timesAria": "{fault}重试次数";
935
+ readonly "retry.unlimitedAria": "{fault}不限次数";
936
+ readonly "retry.spacing": "间隔方式";
937
+ readonly "retry.spacingAria": "{fault}间隔方式";
938
+ readonly "retry.fixed": "固定间隔";
939
+ readonly "retry.growing": "逐次递增";
940
+ readonly "retry.firstWait": "初始间隔";
941
+ readonly "retry.interval": "间隔";
942
+ readonly "retry.intervalAria": "{fault}重试间隔秒数";
943
+ readonly "retry.maxWait": "最长间隔";
944
+ readonly "retry.maxWaitAria": "{fault}最长间隔秒数";
945
+ readonly "retry.failFast": "失败后立即报错。";
946
+ readonly "retry.growingDetail": "等待按初始间隔逐次增加——{a}、{b}、{c} 秒——到 {max} 秒后保持不变。";
947
+ readonly "retry.fixedDetail": "每次大致等这么久,上下浮动两成,免得断线后大家同时重连;服务端明确要求等更久时按服务端(最多 5 分钟)。";
948
+ readonly "plugins.failed": "加载失败";
949
+ readonly "plugins.waiting": "等待服务:{services}";
950
+ readonly "about.intro": "查看当前版本、更新内容,手动检查更新、设置自动检查的频率。";
951
+ readonly "about.checking": "正在检查…";
952
+ readonly "about.checkInterval": "自动检查更新";
953
+ readonly "about.checkUpdate": "检查更新";
954
+ readonly "about.every1h": "每 1 小时";
955
+ readonly "about.every4h": "每 4 小时";
956
+ readonly "about.every6h": "每 6 小时(默认)";
957
+ readonly "about.every8h": "每 8 小时";
958
+ readonly "about.every12h": "每 12 小时";
959
+ readonly "about.every24h": "每 24 小时";
960
+ readonly "about.latest": "已是最新版本";
961
+ readonly "about.offline": "暂时查不到新版本,稍后再试";
962
+ readonly "about.publishedOn": "发布于 {date}";
963
+ readonly "about.releaseNotes": "v{version} 更新内容";
964
+ readonly "about.releases": "版本发布";
965
+ readonly "about.tagline": "自己配模型的独立 agent";
966
+ readonly "about.checkPrompt": "点击上方「检查更新」获取最新版本详情与更新日志";
967
+ readonly "about.updateDetails": "v{version} 更新详情";
968
+ readonly "about.updateNow": "立即更新到 v{version}";
969
+ readonly "update.download": "下载安装";
970
+ readonly "update.downloadingPercent": "下载中 {percent}%";
971
+ readonly "update.failed": "下载失败";
972
+ readonly "update.goInstall": "去安装";
973
+ readonly "update.newVersion": "新版本 {version}";
974
+ readonly "update.pausedPercent": "已暂停 {percent}%";
975
+ readonly "update.preparing": "准备中";
976
+ readonly "update.reading": "正在读取版本…";
977
+ readonly "update.readyInstaller": "已下载完成,安装程序已经打开。按它的提示装完,再重新启动 Plume 就是新版本了。";
978
+ readonly "update.readyRestart": "已下载完成。重启 Plume 即可用上新版本,正在进行的对话会中断。";
979
+ readonly "update.reopenInstaller": "重新打开安装包";
980
+ readonly "update.restartNow": "立即重启";
981
+ readonly "update.restartToUpdate": "重启更新";
982
+ readonly "update.resume": "继续下载";
983
+ readonly "update.retry": "重试";
984
+ readonly "updateDialog.available": "有新版本可以更新";
985
+ readonly "updateDialog.cancel": "取消下载";
986
+ readonly "updateDialog.current": "当前 {version}";
987
+ readonly "updateDialog.downloadedSoFar": "(已下 {size})";
988
+ readonly "updateDialog.downloading": "正在下载";
989
+ readonly "updateDialog.failedTitle": "这次没能写完";
990
+ readonly "updateDialog.installerMissing": "没找到下载好的安装包,重新下载一次";
991
+ readonly "updateDialog.notReady": "更新没有准备好,重新下载一次再试";
992
+ readonly "updateDialog.pause": "暂停";
993
+ readonly "updateDialog.paused": "已暂停";
994
+ readonly "updateDialog.preparing": "正在准备…";
995
+ readonly "updateDialog.releasePage": "查看发布页";
996
+ readonly "updateDialog.whatsNew": "这个版本改了什么";
997
+ readonly "appearance.chatBackgroundPick": "选择会话背景图";
998
+ readonly "picker.increase": "{label}:增加";
999
+ readonly "picker.decrease": "{label}:减少";
1000
+ readonly "picker.hours": "{label}:小时";
1001
+ readonly "picker.minutes": "{label}:分钟";
1002
+ readonly "annotate.attachmentName": "标注图.png";
1003
+ readonly "annotate.arrow": "箭头";
1004
+ readonly "annotate.black": "黑色";
1005
+ readonly "annotate.blue": "蓝色";
1006
+ readonly "annotate.clear": "清空";
1007
+ readonly "annotate.deleteSelected": "删除选中 ⌫";
1008
+ readonly "annotate.doneTip": "放进输入框,让它照着改";
1009
+ readonly "annotate.download": "下载截图";
1010
+ readonly "annotate.dragWidth": "拖动调整宽度";
1011
+ readonly "annotate.ellipse": "圆形";
1012
+ readonly "annotate.exit": "退出标注";
1013
+ readonly "annotate.fontSize": "字号";
1014
+ readonly "annotate.green": "绿色";
1015
+ readonly "annotate.line": "直线";
1016
+ readonly "annotate.medium": "中";
1017
+ readonly "annotate.mosaic": "马赛克";
1018
+ readonly "annotate.mosaicSize": "马赛克大小";
1019
+ readonly "annotate.paleYellow": "浅黄";
1020
+ readonly "annotate.pen": "画笔";
1021
+ readonly "annotate.pinToDesktop": "置顶在桌面";
1022
+ readonly "annotate.rectangle": "矩形";
1023
+ readonly "annotate.red": "红色";
1024
+ readonly "annotate.redo": "重做 ⇧⌘Z";
1025
+ readonly "annotate.saveCopy": "保存副本";
1026
+ readonly "annotate.saveCopyTip": "导出一份带标注的副本";
1027
+ readonly "annotate.saveOver": "保存并替换原图";
1028
+ readonly "annotate.sizeIs": "{what} {label}";
1029
+ readonly "annotate.step": "步骤标号";
1030
+ readonly "annotate.stepSize": "标号大小";
1031
+ readonly "annotate.text": "文字";
1032
+ readonly "annotate.textBackground": "文字底色 {label}";
1033
+ readonly "annotate.textPlaceholder": "输入文字";
1034
+ readonly "annotate.textWidth": "调整文字宽度";
1035
+ readonly "annotate.thick": "粗";
1036
+ readonly "annotate.thin": "细";
1037
+ readonly "annotate.transparent": "透明";
1038
+ readonly "annotate.undo": "撤销 ⌘Z";
1039
+ readonly "annotate.weight": "粗细";
1040
+ readonly "annotate.white": "白色";
1041
+ readonly "annotate.yellow": "黄色";
1042
+ readonly "viewer.actualSize": "恢复原始大小";
1043
+ readonly "viewer.annotate": "标注";
1044
+ readonly "viewer.close": "关闭预览";
1045
+ readonly "viewer.closeEsc": "关闭 Esc";
1046
+ readonly "viewer.copy": "复制图片";
1047
+ readonly "viewer.copied": "已复制到剪贴板,可以直接粘贴";
1048
+ readonly "viewer.clipboardUnavailable": "剪贴板不可用,已改为下载";
1049
+ readonly "viewer.exportFailed": "这张图读不出来,没能导出";
1050
+ readonly "attachment.pathCopied": "路径已复制";
1051
+ readonly "fileAction.pathCopied": "已复制路径";
1052
+ readonly "fileAction.relativePathCopied": "已复制相对路径";
1053
+ readonly "viewer.fit": "适应窗口";
1054
+ readonly "viewer.next": "下一张 →";
1055
+ readonly "viewer.prev": "上一张 ←";
1056
+ readonly "viewer.saveAs": "另存为";
1057
+ readonly "viewer.title": "图片预览";
1058
+ readonly "viewer.zoomIn": "放大";
1059
+ readonly "viewer.zoomIs": "当前缩放 {percent}%,点击恢复";
1060
+ readonly "viewer.zoomOut": "缩小";
1061
+ readonly "composer.addAttachment": "添加附件文件或图片";
1062
+ readonly "composer.tooManyFiles": "一次最多带 {count} 个,余下 {dropped} 个没放进来";
1063
+ readonly "composer.scannedDocument": "{name} 是扫描件,里面没有可提取的文字";
1064
+ readonly "composer.textTruncated": "[……后面还有约 {n} 个字符没有附上]";
1065
+ readonly "subAgent.fileUnreadable": "无法读取文件 {name} 的内容";
1066
+ readonly "composer.removeAttachment": "移除 {name}";
1067
+ readonly "composer.dropToAdd": "松开即可添加";
1068
+ readonly "plugin.sessionGone": "这个对话已经不在了";
1069
+ readonly "plugin.mainWindowOnly": "只能在主窗口里打开对话";
1070
+ readonly "composer.history": "历史 {current}/{total}";
1071
+ readonly "composer.regionShot": "页面区域.png";
1072
+ readonly "composer.filenameOnly": "仅文件名";
1073
+ readonly "attachment.preview": "预览";
1074
+ readonly "attachment.copyImage": "复制图片";
1075
+ readonly "attachment.cut": "剪切";
1076
+ readonly "attachment.gone": "「{name}」已经不在原来的位置了";
1077
+ readonly "attachment.revealedInstead": "直接打开「{name}」可能会运行它,已改为在文件夹中显示";
1078
+ readonly "attachment.openHint": "双击打开";
1079
+ readonly "common.open": "打开";
1080
+ readonly "fileMenu.copyPath": "复制路径";
1081
+ readonly "link.openIn": "在 {name} 中打开";
1082
+ readonly "link.openInSystem": "在系统浏览器中打开";
1083
+ readonly "link.copy": "复制链接";
1084
+ readonly "link.copied": "已复制链接";
1085
+ readonly "openTarget.reveal": "在文件管理器中显示";
1086
+ readonly "openTarget.revealFinder": "在访达中显示";
1087
+ readonly "openTarget.revealExplorer": "在资源管理器中显示";
1088
+ readonly "fileKind.image": "图片";
1089
+ readonly "fileKind.video": "视频";
1090
+ readonly "fileKind.audio": "音频";
1091
+ readonly "fileKind.pdf": "PDF";
1092
+ readonly "fileKind.word": "Word 文档";
1093
+ readonly "fileKind.spreadsheet": "表格";
1094
+ readonly "fileKind.slides": "演示文稿";
1095
+ readonly "fileKind.archive": "压缩包";
1096
+ readonly "fileKind.design": "设计稿";
1097
+ readonly "fileKind.font": "字体";
1098
+ readonly "fileKind.binary": "二进制文件";
1099
+ readonly "fileKind.text": "文本";
1100
+ readonly "fileKind.folder": "文件夹";
1101
+ readonly "filePanel.pickOne": "选择一个文件查看内容";
1102
+ readonly "filePanel.unreadable": "读不到这个文件";
1103
+ readonly "common.loadingShort": "读取中…";
1104
+ readonly "fileActions.tooBig": "只显示了开头";
1105
+ readonly "fileActions.viewSource": "查看源码";
1106
+ readonly "common.preview": "预览";
1107
+ readonly "fileViewer.binary": "二进制文件,无法以文本显示。";
1108
+ readonly "fileViewer.noPreview": "这类文件还不能在这里预览,可以用默认应用打开。";
1109
+ readonly "openTarget.defaultApp": "用默认应用打开";
1110
+ readonly "common.next": "下一个";
1111
+ readonly "common.previous": "上一个";
1112
+ readonly "common.all": "全部";
1113
+ readonly "common.line": "行";
1114
+ readonly "find.find": "查找";
1115
+ readonly "find.selectAll": "选中全部匹配";
1116
+ readonly "find.closeEsc": "关闭 (Esc)";
1117
+ readonly "find.matchCase": "区分大小写";
1118
+ readonly "find.regex": "正则";
1119
+ readonly "find.regexFull": "正则表达式";
1120
+ readonly "find.wholeWord": "全词匹配";
1121
+ readonly "find.currentMatch": "当前匹配";
1122
+ readonly "toastHelp.screenRecording": "截图需要屏幕录制权限";
1123
+ readonly "toastHelp.screenRecordingFix": "在系统设置 › 隐私与安全性 › 屏幕录制里勾选 Plume,然后重启应用";
1124
+ readonly "toastHelp.noAccess": "没有权限访问这个文件";
1125
+ readonly "toastHelp.noAccessFix": "检查文件的读写权限,或换一个位置";
1126
+ readonly "toastHelp.notFound": "找不到这个文件或目录";
1127
+ readonly "toastHelp.notFoundFix": "它可能已经被移动或删除";
1128
+ readonly "toastHelp.diskFull": "磁盘空间不足";
1129
+ readonly "toastHelp.diskFullFix": "腾出一些空间后再试";
1130
+ readonly "toastHelp.refused": "连接被拒绝";
1131
+ readonly "toastHelp.refusedFix": "对方服务可能没有启动,或者地址和端口不对";
1132
+ readonly "toastHelp.timeout": "请求超时";
1133
+ readonly "toastHelp.timeoutFix": "网络或中继不稳定,稍后会自动重试";
1134
+ readonly "toastHelp.dns": "域名解析失败";
1135
+ readonly "toastHelp.dnsFix": "检查网络连接,或确认地址拼写正确";
1136
+ readonly "toastHelp.reset": "连接被中断";
1137
+ readonly "toastHelp.resetFix": "网络抖动,稍后会自动重试";
1138
+ readonly "toastHelp.upstream": "模型服务暂时不可用";
1139
+ readonly "toastHelp.upstreamFix": "对方返回了服务端错误,稍后会自动重试";
1140
+ readonly "toastHelp.rateLimited": "请求太频繁,被限流了";
1141
+ readonly "toastHelp.rateLimitedFix": "等一会儿再试,或换一个供应商";
1142
+ readonly "toastHelp.badKey": "凭证被拒绝";
1143
+ readonly "toastHelp.badKeyFix": "检查设置里这个供应商的 API Key 是否正确、是否过期";
1144
+ readonly "toaster.project": "项目:{name}";
1145
+ readonly "toaster.investigate": "Plume 界面报了一个错误,帮我查清原因并给出可执行的解决办法。";
1146
+ readonly "toaster.errorLabel": "错误信息:";
1147
+ readonly "toaster.newSessionToDebug": "新开一个对话来排查";
1148
+ readonly "toaster.goToSession": "跳转到该会话";
1149
+ readonly "toaster.sessionDone": "「{title}」已完成";
1150
+ readonly "toaster.sessionFailed": "「{title}」执行失败";
1151
+ readonly "archived.chatCount": "{n} 个聊天";
1152
+ readonly "archived.deleteAll": "删除全部 {n} 个归档会话";
1153
+ readonly "archived.deleteAllAction": "全部删除";
1154
+ readonly "archived.deleteAllConfirm": "删除全部 {n} 个归档会话?";
1155
+ readonly "archived.deleteAllDetail": "所有对话记录会被永久删除,拿不回来;使用统计里的数不受影响。取消归档只能一个一个来,这个不能。";
1156
+ readonly "archived.deleteN": "删除 {n} 个";
1157
+ readonly "archived.deleteNamed": "删除「{title}」";
1158
+ readonly "archived.empty": "还没有归档的聊天";
1159
+ readonly "archived.emptyDetail": "在侧边栏把鼠标移到某个会话上,点归档图标即可";
1160
+ readonly "archived.messageCount": " · {n} 条消息";
1161
+ readonly "archived.intro": "归档只是把会话移出侧边栏,记录和用量都还在。取消归档即可放回原来的项目下。";
1162
+ readonly "archived.noMatch": "没有匹配的聊天";
1163
+ readonly "archived.projectCount": "{name}({count})";
1164
+ readonly "archived.search": "搜索已归档的聊天";
1165
+ readonly "archived.title": "已归档的聊天";
1166
+ readonly "archived.toggleGroup": "{name},{n} 个会话";
1167
+ readonly "cleanup.clear": "清除";
1168
+ readonly "cleanup.clearing": "正在清除…";
1169
+ readonly "cleanup.confirmAll": "删除全部 {n} 条会话?";
1170
+ readonly "cleanup.confirmDetail": "{range} 内最后活动过的会话,连同它们的对话记录一起删除,约释放 {size}。这个操作无法撤销。";
1171
+ readonly "cleanup.confirmSome": "删除 {n} 条会话?";
1172
+ readonly "cleanup.doneRemoved": "已删除 {n} 条会话,释放 {size}";
1173
+ readonly "cleanup.doneSkipped": "{n} 条正在运行,没有删除";
1174
+ readonly "cleanup.empty": "暂无记录";
1175
+ readonly "cleanup.nothing": "这段时间里没有会话";
1176
+ readonly "cleanup.range": "时间范围";
1177
+ readonly "cleanup.warn": "删除的是会话本身,对话记录一并消失,**无法撤销**。";
1178
+ readonly "cleanup.willRemove": "{n} 条 · {size}";
1179
+ readonly "common.allProjects": "所有项目";
1180
+ readonly "common.unarchive": "取消归档";
1181
+ readonly "sessionRow.pin": "置顶会话";
1182
+ readonly "sessionRow.unpin": "取消置顶";
1183
+ readonly "sessionRow.archive": "归档会话";
1184
+ readonly "sessionRow.fileOne": "{what}「{title}」";
1185
+ readonly "settings.archived": "已归档的聊天";
1186
+ readonly "settings.group.about": "关于与归档";
1187
+ readonly "settings.group.data": "数据与统计";
1188
+ readonly "settings.group.vcs": "代码与版本控制";
1189
+ readonly "settings.storage": "存储";
1190
+ readonly "sidebarList.deleteConfirm": "删除这个会话?";
1191
+ readonly "sidebarList.deleteDetail": "「{title}」的 {n} 条消息会被永久删除,拿不回来。";
1192
+ readonly "sidebarList.deleteNested": "它下面嵌套着 {n} 个会话。只删这一个的话,它们会留下,成为独立的会话。";
1193
+ readonly "sidebarList.deleteOnlyThis": "删除此会话";
1194
+ readonly "sidebarList.deleteWithNested": "删除 {n} 个会话";
1195
+ readonly "storage.clearTitle": "清除会话记录";
1196
+ readonly "storage.export": "导出";
1197
+ readonly "storage.exportDetail": "把所有会话另存为一个 SQLite 文件(.db),任何 SQLite 工具都能打开";
1198
+ readonly "storage.exportDialogTitle": "导出会话记录";
1199
+ readonly "storage.exportFailed": "导出失败:{reason}";
1200
+ readonly "storage.exportTitle": "导出会话记录";
1201
+ readonly "storage.exported": "已导出到 {path}";
1202
+ readonly "storage.exporting": "正在导出…";
1203
+ readonly "storage.intro": "会话记录占了多少,怎么导出,以及怎么清掉一段。";
1204
+ readonly "storage.rangeDetail": "选一段要清理的日子,按会话最后活动的时间算";
1205
+ readonly "storage.records": "会话记录";
1206
+ readonly "storage.sessionLogs": "会话记录";
1207
+ readonly "storage.sessionLogsDetail": "~/.plume/sessions/sessions.db 里的对话记录";
1208
+ readonly "storage.sizeAndCount": "{size} · {n} 条";
1209
+ readonly "storage.title": "存储";
1210
+ readonly "sidebar.searchPlaceholder": "搜索会话或命令…";
1211
+ readonly "palette.recent": "最近会话";
1212
+ readonly "palette.sessions": "会话";
1213
+ readonly "palette.chat": "对话";
1214
+ readonly "palette.goTo": "前往";
1215
+ readonly "palette.toggleSidebar": "显示/隐藏侧边栏";
1216
+ readonly "palette.pinCurrent": "置顶当前会话";
1217
+ readonly "palette.unpinCurrent": "取消置顶当前会话";
1218
+ readonly "palette.archiveCurrent": "归档当前会话";
1219
+ readonly "palette.noMatches": "没有匹配的会话或命令";
1220
+ readonly "mention.pickFile": "选择文件";
1221
+ readonly "mention.pickFolder": "选择文件夹";
1222
+ readonly "mention.compact": "压缩上下文";
1223
+ readonly "mention.agents": "智能体";
1224
+ readonly "mention.untitled": "未命名会话";
1225
+ readonly "mention.pastSessions": "历史会话";
1226
+ readonly "mention.projectPaths": "项目路径";
1227
+ readonly "composer.removeSessionRef": "移除会话引用:{title}";
1228
+ readonly "mention.actions": "操作";
1229
+ readonly "mention.filesAndFolders": "文件和文件夹";
1230
+ readonly "mention.pluginsAndSkills": "插件与技能";
1231
+ readonly "mention.sessions": "会话";
1232
+ readonly "mention.menu": "提及菜单";
1233
+ readonly "notifications.waiting": "等你批准";
1234
+ readonly "notifications.empty": "没有新通知";
1235
+ readonly "common.workspace": "工作区";
1236
+ readonly "toolbar.panels": "面板";
1237
+ readonly "common.project": "项目";
1238
+ };
1239
+ export type MessageKey = keyof typeof zhCN;
1240
+ /**
1241
+ * A sentence that changes with the number it counts: one form per CLDR plural category the language
1242
+ * uses, picked with `Intl.PluralRules` (`i18n/plural.ts`). English gives `one` and `other`; Chinese
1243
+ * only has `other`, so this source catalogue stays plain strings and `MessageKey` stays readable off it.
1244
+ */
1245
+ export interface PluralForms {
1246
+ readonly zero?: string;
1247
+ readonly one?: string;
1248
+ readonly two?: string;
1249
+ readonly few?: string;
1250
+ readonly many?: string;
1251
+ readonly other: string;
1252
+ }
1253
+ /**
1254
+ * The keys that count something: the source sentence has an `{n}`. Only these may take plural
1255
+ * forms — on any other key nothing passes a count, so a form there could never be picked.
1256
+ */
1257
+ type CountedKey = {
1258
+ [K in MessageKey]: (typeof zhCN)[K] extends `${string}{n}${string}` ? K : never;
1259
+ }[MessageKey];
1260
+ export type MessageCatalog = {
1261
+ readonly [K in MessageKey]: K extends CountedKey ? string | PluralForms : string;
1262
+ };
1263
+ export {};