codexmate 0.0.41 → 0.0.43
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.
- package/README.md +168 -168
- package/README.zh.md +168 -168
- package/cli/agents-files.js +230 -230
- package/cli/analytics-export-args.js +68 -68
- package/cli/archive-helpers.js +453 -453
- package/cli/auth-profiles.js +375 -375
- package/cli/builtin-proxy.js +2144 -2144
- package/cli/claude-proxy.js +1022 -1022
- package/cli/config-bootstrap.js +407 -407
- package/cli/config-health.js +454 -454
- package/cli/doctor-core.js +903 -903
- package/cli/import-skills-url.js +356 -356
- package/cli/local-bridge.js +556 -556
- package/cli/openai-bridge.js +1984 -1984
- package/cli/openclaw-config.js +629 -629
- package/cli/session-convert-args.js +69 -69
- package/cli/session-convert-io.js +82 -82
- package/cli/session-convert.js +150 -150
- package/cli/session-usage.concurrent.js +28 -28
- package/cli/session-usage.js +304 -304
- package/cli/session-usage.models.js +176 -176
- package/cli/skills.js +1141 -1141
- package/cli/update.js +171 -171
- package/cli/zip-commands.js +510 -510
- package/cli.js +16495 -16458
- package/lib/automation.js +404 -404
- package/lib/cli-file-utils.js +151 -151
- package/lib/cli-models-utils.js +440 -440
- package/lib/cli-network-utils.js +190 -190
- package/lib/cli-path-utils.js +85 -85
- package/lib/cli-session-utils.js +121 -121
- package/lib/cli-sessions.js +427 -427
- package/lib/cli-utils.js +155 -155
- package/lib/cli-webhook.js +154 -154
- package/lib/download-artifacts.js +92 -92
- package/lib/mcp-stdio.js +453 -453
- package/lib/task-orchestrator.js +869 -869
- package/lib/text-diff.js +303 -303
- package/lib/win-tray.js +119 -119
- package/lib/workflow-engine.js +340 -340
- package/package.json +77 -77
- package/plugins/README.md +20 -20
- package/plugins/README.zh-CN.md +20 -20
- package/plugins/prompt-templates/comment-polish/index.mjs +25 -25
- package/plugins/prompt-templates/computed.mjs +311 -311
- package/plugins/prompt-templates/index.mjs +8 -8
- package/plugins/prompt-templates/manifest.mjs +18 -18
- package/plugins/prompt-templates/methods.mjs +553 -553
- package/plugins/prompt-templates/overview.mjs +91 -91
- package/plugins/prompt-templates/ownership.mjs +19 -19
- package/plugins/prompt-templates/rule-ack/index.mjs +21 -21
- package/plugins/prompt-templates/storage.mjs +64 -64
- package/plugins/registry.mjs +16 -16
- package/web-ui/app.js +705 -695
- package/web-ui/index.html +37 -37
- package/web-ui/logic.agents-diff.mjs +386 -386
- package/web-ui/logic.claude.mjs +172 -172
- package/web-ui/logic.codex.mjs +69 -69
- package/web-ui/logic.mjs +5 -5
- package/web-ui/logic.runtime.mjs +128 -128
- package/web-ui/logic.session-convert.mjs +70 -70
- package/web-ui/logic.sessions.mjs +782 -782
- package/web-ui/modules/api.mjs +90 -90
- package/web-ui/modules/app.computed.dashboard.mjs +252 -252
- package/web-ui/modules/app.computed.index.mjs +17 -17
- package/web-ui/modules/app.computed.main-tabs.mjs +214 -214
- package/web-ui/modules/app.computed.session.mjs +876 -876
- package/web-ui/modules/app.constants.mjs +15 -15
- package/web-ui/modules/app.methods.agents.mjs +651 -651
- package/web-ui/modules/app.methods.claude-config.mjs +412 -412
- package/web-ui/modules/app.methods.codex-config.mjs +869 -869
- package/web-ui/modules/app.methods.index.mjs +96 -96
- package/web-ui/modules/app.methods.install.mjs +205 -205
- package/web-ui/modules/app.methods.navigation.mjs +804 -804
- package/web-ui/modules/app.methods.openclaw-core.mjs +814 -814
- package/web-ui/modules/app.methods.openclaw-editing.mjs +420 -420
- package/web-ui/modules/app.methods.openclaw-persist.mjs +375 -375
- package/web-ui/modules/app.methods.providers.mjs +602 -601
- package/web-ui/modules/app.methods.runtime.mjs +426 -420
- package/web-ui/modules/app.methods.session-actions.mjs +617 -591
- package/web-ui/modules/app.methods.session-browser.mjs +1018 -1018
- package/web-ui/modules/app.methods.session-timeline.mjs +479 -479
- package/web-ui/modules/app.methods.session-trash.mjs +468 -468
- package/web-ui/modules/app.methods.startup-claude.mjs +557 -554
- package/web-ui/modules/app.methods.task-orchestration.mjs +556 -556
- package/web-ui/modules/app.methods.tool-config-permissions.mjs +90 -87
- package/web-ui/modules/app.methods.webhook.mjs +87 -87
- package/web-ui/modules/config-mode.computed.mjs +124 -124
- package/web-ui/modules/config-template-confirm-pref.mjs +33 -33
- package/web-ui/modules/i18n/locales/en.mjs +1187 -1140
- package/web-ui/modules/i18n/locales/ja.mjs +1178 -1130
- package/web-ui/modules/i18n/locales/vi.mjs +294 -239
- package/web-ui/modules/i18n/locales/zh.mjs +1190 -1143
- package/web-ui/modules/i18n.dict.mjs +14 -14
- package/web-ui/modules/i18n.mjs +111 -111
- package/web-ui/modules/plugins.computed.mjs +3 -3
- package/web-ui/modules/plugins.methods.mjs +3 -3
- package/web-ui/modules/plugins.storage.mjs +11 -11
- package/web-ui/modules/provider-url-display.mjs +17 -17
- package/web-ui/modules/sessions-filters-url.mjs +138 -138
- package/web-ui/modules/skills.computed.mjs +107 -107
- package/web-ui/modules/skills.methods.mjs +513 -513
- package/web-ui/partials/index/layout-footer.html +13 -13
- package/web-ui/partials/index/layout-header.html +478 -478
- package/web-ui/partials/index/modal-config-template-agents.html +185 -185
- package/web-ui/partials/index/modal-confirm-toast.html +32 -32
- package/web-ui/partials/index/modal-health-check.html +45 -45
- package/web-ui/partials/index/modal-openclaw-config.html +344 -344
- package/web-ui/partials/index/modal-skills.html +200 -200
- package/web-ui/partials/index/modal-webhook.html +42 -42
- package/web-ui/partials/index/modals-basic.html +263 -263
- package/web-ui/partials/index/panel-config-claude.html +187 -187
- package/web-ui/partials/index/panel-config-codex.html +205 -205
- package/web-ui/partials/index/panel-config-openclaw.html +89 -89
- package/web-ui/partials/index/panel-dashboard.html +171 -171
- package/web-ui/partials/index/panel-docs.html +114 -114
- package/web-ui/partials/index/panel-market.html +104 -104
- package/web-ui/partials/index/panel-orchestration.html +391 -391
- package/web-ui/partials/index/panel-plugins.html +253 -253
- package/web-ui/partials/index/panel-sessions.html +325 -319
- package/web-ui/partials/index/panel-settings.html +181 -181
- package/web-ui/partials/index/panel-trash.html +82 -82
- package/web-ui/partials/index/panel-usage.html +181 -181
- package/web-ui/res/json5.min.js +1 -1
- package/web-ui/res/vue.global.prod.js +13 -13
- package/web-ui/res/vue.runtime.global.prod.js +7 -7
- package/web-ui/res/web-ui-render.precompiled.js +7671 -7666
- package/web-ui/session-helpers.mjs +602 -602
- package/web-ui/source-bundle.cjs +305 -305
- package/web-ui/styles/base-theme.css +291 -291
- package/web-ui/styles/bridge-pool.css +266 -266
- package/web-ui/styles/controls-forms.css +532 -532
- package/web-ui/styles/dashboard.css +438 -438
- package/web-ui/styles/docs-panel.css +245 -245
- package/web-ui/styles/feedback.css +108 -108
- package/web-ui/styles/health-check-dialog.css +144 -144
- package/web-ui/styles/layout-shell.css +711 -711
- package/web-ui/styles/modals-core.css +499 -499
- package/web-ui/styles/navigation-panels.css +399 -399
- package/web-ui/styles/openclaw-structured.css +616 -616
- package/web-ui/styles/plugins-panel.css +564 -564
- package/web-ui/styles/responsive.css +501 -501
- package/web-ui/styles/sessions-list.css +683 -683
- package/web-ui/styles/sessions-preview.css +407 -407
- package/web-ui/styles/sessions-toolbar-trash.css +518 -518
- package/web-ui/styles/sessions-usage.css +849 -849
- package/web-ui/styles/settings-panel.css +419 -419
- package/web-ui/styles/skills-list.css +305 -305
- package/web-ui/styles/skills-market.css +723 -723
- package/web-ui/styles/task-orchestration.css +822 -822
- package/web-ui/styles/titles-cards.css +492 -486
- package/web-ui/styles/trash-panel.css +90 -90
- package/web-ui/styles/webhook.css +115 -115
- package/web-ui/styles.css +24 -24
- package/web-ui.html +17 -17
|
@@ -1,1143 +1,1190 @@
|
|
|
1
|
-
const zh = Object.freeze({
|
|
2
|
-
// Global
|
|
3
|
-
'lang.zh': '中文',
|
|
4
|
-
'lang.en': 'English',
|
|
5
|
-
'lang.vi': '越南语',
|
|
6
|
-
'lang.label': '语言',
|
|
7
|
-
'nav.topTabs.aria': '导航',
|
|
8
|
-
|
|
9
|
-
// Common
|
|
10
|
-
'common.all': '全部',
|
|
11
|
-
'common.copy': '复制',
|
|
12
|
-
'common.paste': '粘贴',
|
|
13
|
-
'common.edit': '编辑',
|
|
14
|
-
'common.install': '安装',
|
|
15
|
-
'common.update': '升级',
|
|
16
|
-
'common.uninstall': '卸载',
|
|
17
|
-
'common.official': '官方',
|
|
18
|
-
'common.custom': '自定义',
|
|
19
|
-
'common.rules': '规则',
|
|
20
|
-
'common.troubleshooting': '排障提示',
|
|
21
|
-
'common.command': '命令',
|
|
22
|
-
'common.mirror': '镜像源',
|
|
23
|
-
'common.packageManager': '包管理器',
|
|
24
|
-
'common.action': '操作',
|
|
25
|
-
'common.targets': '目标数',
|
|
26
|
-
'common.currentPm': '当前包管理器',
|
|
27
|
-
'common.currentAction': '当前操作',
|
|
28
|
-
'common.mirrorActive': '镜像',
|
|
29
|
-
'common.defaultOfficial': '官方默认',
|
|
30
|
-
'common.cancel': '取消',
|
|
31
|
-
'common.confirm': '确认',
|
|
32
|
-
'common.add': '添加',
|
|
33
|
-
'common.save': '保存',
|
|
34
|
-
'common.saveApply': '保存并应用',
|
|
35
|
-
'common.close': '关闭',
|
|
36
|
-
'common.delete': '删除',
|
|
37
|
-
'common.clear': '清空',
|
|
38
|
-
'common.show': '显示',
|
|
39
|
-
'common.hide': '隐藏',
|
|
40
|
-
'common.detail': '详情',
|
|
41
|
-
'common.refresh': '刷新',
|
|
42
|
-
'common.refreshing': '刷新中...',
|
|
43
|
-
'common.loading': '加载中...',
|
|
44
|
-
'common.saving': '保存中...',
|
|
45
|
-
'common.sending': '发送中...',
|
|
46
|
-
'common.scanning': '扫描中...',
|
|
47
|
-
'common.export': '导出',
|
|
48
|
-
'common.import': '导入',
|
|
49
|
-
'common.apply': '应用',
|
|
50
|
-
'common.applying': '应用中...',
|
|
51
|
-
'common.confirming': '确认中...',
|
|
52
|
-
'common.refreshFromText': '从文本刷新',
|
|
53
|
-
'common.backToEdit': '返回编辑',
|
|
54
|
-
'common.selectAll': '全选',
|
|
55
|
-
'common.unselectAll': '取消全选',
|
|
56
|
-
'common.resetFilters': '重置筛选',
|
|
57
|
-
'common.notEditable': '不可编辑',
|
|
58
|
-
'common.notDeletable': '不可删除',
|
|
59
|
-
'common.notLoaded': '未加载',
|
|
60
|
-
'common.exists': '已存在',
|
|
61
|
-
'common.notExistsWillCreateOnApply': '不存在,将在应用时创建',
|
|
62
|
-
'common.notExistsWillCreateOnSave': '不存在,将在保存时创建',
|
|
63
|
-
'common.none': '暂无',
|
|
64
|
-
'
|
|
65
|
-
'
|
|
66
|
-
'cli.missing.
|
|
67
|
-
'cli.missing.
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
'confirm.
|
|
77
|
-
'confirm.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
'field.
|
|
83
|
-
'field.
|
|
84
|
-
'field.
|
|
85
|
-
'field.
|
|
86
|
-
'field.
|
|
87
|
-
'field.
|
|
88
|
-
'field.
|
|
89
|
-
'field.
|
|
90
|
-
'field.
|
|
91
|
-
'field.
|
|
92
|
-
'field.
|
|
93
|
-
'field.
|
|
94
|
-
'field.
|
|
95
|
-
'field.
|
|
96
|
-
'field.
|
|
97
|
-
'field.
|
|
98
|
-
'field.
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
'placeholder.
|
|
104
|
-
'placeholder.
|
|
105
|
-
'
|
|
106
|
-
'placeholder.
|
|
107
|
-
'
|
|
108
|
-
'placeholder.
|
|
109
|
-
'placeholder.
|
|
110
|
-
'placeholder.
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
'
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
'tab.
|
|
121
|
-
'tab.
|
|
122
|
-
'tab.config
|
|
123
|
-
'tab.config.
|
|
124
|
-
'tab.
|
|
125
|
-
'tab.
|
|
126
|
-
'tab.
|
|
127
|
-
'tab.
|
|
128
|
-
'tab.
|
|
129
|
-
'tab.
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
'side.
|
|
135
|
-
'side.
|
|
136
|
-
'side.
|
|
137
|
-
'side.
|
|
138
|
-
'side.
|
|
139
|
-
'side.
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
'side.
|
|
145
|
-
'side.
|
|
146
|
-
'side.
|
|
147
|
-
'side.
|
|
148
|
-
'side.config.
|
|
149
|
-
'side.config.
|
|
150
|
-
'side.config.
|
|
151
|
-
'side.config.
|
|
152
|
-
'side.
|
|
153
|
-
'side.
|
|
154
|
-
'side.
|
|
155
|
-
'side.
|
|
156
|
-
'side.plugins.
|
|
157
|
-
'side.
|
|
158
|
-
'side.
|
|
159
|
-
'side.
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
'kicker.
|
|
165
|
-
'kicker.
|
|
166
|
-
'kicker.
|
|
167
|
-
'kicker.
|
|
168
|
-
'kicker.
|
|
169
|
-
'kicker.
|
|
170
|
-
'kicker.
|
|
171
|
-
'kicker.
|
|
172
|
-
|
|
173
|
-
'
|
|
174
|
-
|
|
175
|
-
'title.
|
|
176
|
-
'title.
|
|
177
|
-
'title.
|
|
178
|
-
'title.
|
|
179
|
-
'title.
|
|
180
|
-
'title.
|
|
181
|
-
'title.
|
|
182
|
-
|
|
183
|
-
'
|
|
184
|
-
|
|
185
|
-
'subtitle.
|
|
186
|
-
'subtitle.
|
|
187
|
-
'subtitle.
|
|
188
|
-
'subtitle.
|
|
189
|
-
'subtitle.
|
|
190
|
-
'subtitle.
|
|
191
|
-
'subtitle.
|
|
192
|
-
'
|
|
193
|
-
'
|
|
194
|
-
'dashboard.doctor.
|
|
195
|
-
'dashboard.doctor.
|
|
196
|
-
'dashboard.doctor.
|
|
197
|
-
'dashboard.doctor.export
|
|
198
|
-
'dashboard.doctor.
|
|
199
|
-
'doctor.
|
|
200
|
-
'doctor.
|
|
201
|
-
'doctor.action.
|
|
202
|
-
'doctor.action.
|
|
203
|
-
'doctor.action.
|
|
204
|
-
'doctor.action.
|
|
205
|
-
'doctor.action.
|
|
206
|
-
'doctor.
|
|
207
|
-
'doctor.
|
|
208
|
-
'doctor.issue.
|
|
209
|
-
'doctor.issue.
|
|
210
|
-
'doctor.issue.providerUnreachable.problem.remote-model-probe-
|
|
211
|
-
'doctor.issue.providerUnreachable.problem.remote-model-probe-
|
|
212
|
-
'doctor.issue.providerUnreachable.problem.remote-model-probe-
|
|
213
|
-
'doctor.issue.providerUnreachable.problem.
|
|
214
|
-
'doctor.issue.providerUnreachable.
|
|
215
|
-
'doctor.issue.providerUnreachable.
|
|
216
|
-
'doctor.issue.
|
|
217
|
-
'doctor.issue.
|
|
218
|
-
'doctor.issue.
|
|
219
|
-
'doctor.issue.
|
|
220
|
-
'doctor.issue.
|
|
221
|
-
'doctor.issue.
|
|
222
|
-
'doctor.issue.
|
|
223
|
-
'doctor.issue.
|
|
224
|
-
'doctor.issue.
|
|
225
|
-
'doctor.issue.
|
|
226
|
-
'doctor.issue.
|
|
227
|
-
'doctor.issue.
|
|
228
|
-
'doctor.issue.
|
|
229
|
-
'doctor.issue.
|
|
230
|
-
'doctor.issue.
|
|
231
|
-
'doctor.issue.
|
|
232
|
-
'
|
|
233
|
-
'
|
|
234
|
-
'dashboard.card.
|
|
235
|
-
'dashboard.card.
|
|
236
|
-
'dashboard.card.
|
|
237
|
-
'dashboard.
|
|
238
|
-
'dashboard.
|
|
239
|
-
'dashboard.kv.
|
|
240
|
-
'dashboard.kv.
|
|
241
|
-
'dashboard.kv.
|
|
242
|
-
'dashboard.kv.
|
|
243
|
-
'dashboard.kv.
|
|
244
|
-
'dashboard.kv.
|
|
245
|
-
'dashboard.kv.
|
|
246
|
-
'dashboard.
|
|
247
|
-
'dashboard.
|
|
248
|
-
'dashboard.status.
|
|
249
|
-
'dashboard.busy
|
|
250
|
-
'dashboard.
|
|
251
|
-
'dashboard.busy.
|
|
252
|
-
'dashboard.busy.
|
|
253
|
-
'dashboard.busy.
|
|
254
|
-
'dashboard.busy.
|
|
255
|
-
'dashboard.busy.
|
|
256
|
-
'dashboard.busy.
|
|
257
|
-
'dashboard.
|
|
258
|
-
'dashboard.
|
|
259
|
-
'dashboard.
|
|
260
|
-
'dashboard.sessionSource.
|
|
261
|
-
'dashboard.sessionSource.
|
|
262
|
-
'dashboard.sessionSource.
|
|
263
|
-
'dashboard.
|
|
264
|
-
'dashboard.
|
|
265
|
-
'dashboard.
|
|
266
|
-
'dashboard.
|
|
267
|
-
'dashboard.
|
|
268
|
-
'dashboard.healthStatus.
|
|
269
|
-
'dashboard.
|
|
270
|
-
'dashboard.
|
|
271
|
-
'dashboard.modelStatus.
|
|
272
|
-
'dashboard.
|
|
273
|
-
'dashboard.
|
|
274
|
-
'dashboard.health.
|
|
275
|
-
'dashboard.
|
|
276
|
-
'dashboard.
|
|
277
|
-
'dashboard.
|
|
278
|
-
'dashboard.state.
|
|
279
|
-
'dashboard.
|
|
280
|
-
'dashboard.
|
|
281
|
-
'dashboard.
|
|
282
|
-
'dashboard.
|
|
283
|
-
'dashboard.
|
|
284
|
-
'dashboard.
|
|
285
|
-
'dashboard.
|
|
286
|
-
'dashboard.providersHealth.
|
|
287
|
-
'dashboard.providersHealth.
|
|
288
|
-
'dashboard.providersHealth.
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
'plugins.sidebar.
|
|
294
|
-
'plugins.
|
|
295
|
-
'plugins.
|
|
296
|
-
'plugins.
|
|
297
|
-
'plugins.
|
|
298
|
-
'plugins.
|
|
299
|
-
'plugins.
|
|
300
|
-
'plugins.
|
|
301
|
-
'plugins.
|
|
302
|
-
'plugins.promptTemplates.
|
|
303
|
-
'plugins.promptTemplates.
|
|
304
|
-
'plugins.promptTemplates.mode.
|
|
305
|
-
'plugins.promptTemplates.compose
|
|
306
|
-
'plugins.promptTemplates.
|
|
307
|
-
'plugins.promptTemplates.compose.
|
|
308
|
-
'plugins.promptTemplates.compose.
|
|
309
|
-
'plugins.promptTemplates.compose.
|
|
310
|
-
'plugins.promptTemplates.compose.
|
|
311
|
-
'plugins.promptTemplates.compose.
|
|
312
|
-
'plugins.promptTemplates.compose.
|
|
313
|
-
'plugins.promptTemplates.compose.
|
|
314
|
-
'plugins.promptTemplates.compose.
|
|
315
|
-
'plugins.promptTemplates.compose.
|
|
316
|
-
'plugins.promptTemplates.compose.
|
|
317
|
-
'plugins.promptTemplates.compose.
|
|
318
|
-
'plugins.promptTemplates.
|
|
319
|
-
'plugins.promptTemplates.
|
|
320
|
-
'plugins.promptTemplates.manage.
|
|
321
|
-
'plugins.promptTemplates.manage.
|
|
322
|
-
'plugins.promptTemplates.manage.
|
|
323
|
-
'plugins.promptTemplates.manage.
|
|
324
|
-
'plugins.promptTemplates.manage.
|
|
325
|
-
'plugins.promptTemplates.manage.
|
|
326
|
-
'plugins.promptTemplates.manage.
|
|
327
|
-
'plugins.promptTemplates.manage.
|
|
328
|
-
'plugins.promptTemplates.manage.
|
|
329
|
-
'plugins.promptTemplates.
|
|
330
|
-
'plugins.promptTemplates.
|
|
331
|
-
'plugins.promptTemplates.editor.
|
|
332
|
-
'plugins.promptTemplates.editor.
|
|
333
|
-
'plugins.promptTemplates.editor.
|
|
334
|
-
'plugins.promptTemplates.editor.
|
|
335
|
-
'plugins.promptTemplates.editor.
|
|
336
|
-
'plugins.promptTemplates.editor.
|
|
337
|
-
'plugins.promptTemplates.editor.
|
|
338
|
-
'plugins.promptTemplates.editor.
|
|
339
|
-
'plugins.promptTemplates.editor.
|
|
340
|
-
'plugins.promptTemplates.editor.
|
|
341
|
-
'plugins.promptTemplates.
|
|
342
|
-
'plugins.promptTemplates.
|
|
343
|
-
'plugins.promptTemplates.vars.
|
|
344
|
-
'plugins.promptTemplates.vars.
|
|
345
|
-
'plugins.promptTemplates.vars.
|
|
346
|
-
'plugins.promptTemplates.
|
|
347
|
-
'plugins.promptTemplates.
|
|
348
|
-
'plugins.promptTemplates.preview.
|
|
349
|
-
'plugins.promptTemplates.preview.
|
|
350
|
-
'plugins.promptTemplates.
|
|
351
|
-
|
|
352
|
-
'plugins.
|
|
353
|
-
|
|
354
|
-
'plugins.meta.
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
'plugins.builtin.commentPolish.
|
|
360
|
-
'plugins.builtin.
|
|
361
|
-
'plugins.builtin.
|
|
362
|
-
'plugins.builtin.ruleAck.
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
'toast.copy.
|
|
368
|
-
'toast.
|
|
369
|
-
'toast.
|
|
370
|
-
'toast.
|
|
371
|
-
'toast.
|
|
372
|
-
'toast.
|
|
373
|
-
'toast.
|
|
374
|
-
'toast.export.
|
|
375
|
-
'toast.
|
|
376
|
-
'toast.
|
|
377
|
-
'toast.import.
|
|
378
|
-
'toast.import.
|
|
379
|
-
'toast.import.
|
|
380
|
-
'toast.import.
|
|
381
|
-
'toast.
|
|
382
|
-
'toast.
|
|
383
|
-
'toast.
|
|
384
|
-
'toast.
|
|
385
|
-
'toast.templates.
|
|
386
|
-
'toast.templates.
|
|
387
|
-
'toast.templates.
|
|
388
|
-
'toast.templates.
|
|
389
|
-
'toast.templates.
|
|
390
|
-
'toast.templates.
|
|
391
|
-
'toast.templates.
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
'
|
|
395
|
-
'
|
|
396
|
-
'
|
|
397
|
-
'
|
|
398
|
-
'
|
|
399
|
-
'
|
|
400
|
-
'
|
|
401
|
-
'
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
'
|
|
405
|
-
'
|
|
406
|
-
'
|
|
407
|
-
'
|
|
408
|
-
'
|
|
409
|
-
'
|
|
410
|
-
'
|
|
411
|
-
'
|
|
412
|
-
'
|
|
413
|
-
'
|
|
414
|
-
'
|
|
415
|
-
|
|
416
|
-
'
|
|
417
|
-
'
|
|
418
|
-
'
|
|
419
|
-
'
|
|
420
|
-
'
|
|
421
|
-
'
|
|
422
|
-
'
|
|
423
|
-
'
|
|
424
|
-
'
|
|
425
|
-
'
|
|
426
|
-
'
|
|
427
|
-
'
|
|
428
|
-
'
|
|
429
|
-
'
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
'
|
|
433
|
-
'
|
|
434
|
-
'modal.
|
|
435
|
-
'modal.
|
|
436
|
-
'modal.
|
|
437
|
-
'modal.
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
'modal.
|
|
441
|
-
'modal.
|
|
442
|
-
'modal.
|
|
443
|
-
'modal.
|
|
444
|
-
'modal.
|
|
445
|
-
'modal.
|
|
446
|
-
'
|
|
447
|
-
'
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
'modal.
|
|
451
|
-
'modal.
|
|
452
|
-
'modal.
|
|
453
|
-
'
|
|
454
|
-
'
|
|
455
|
-
'
|
|
456
|
-
'
|
|
457
|
-
'
|
|
458
|
-
'
|
|
459
|
-
'
|
|
460
|
-
'
|
|
461
|
-
|
|
462
|
-
'modal.
|
|
463
|
-
'modal.
|
|
464
|
-
'modal.
|
|
465
|
-
'modal.
|
|
466
|
-
'modal.
|
|
467
|
-
'modal.
|
|
468
|
-
'modal.
|
|
469
|
-
'modal.
|
|
470
|
-
'modal.
|
|
471
|
-
'modal.
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
'
|
|
475
|
-
'
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
'modal.
|
|
479
|
-
'modal.
|
|
480
|
-
'modal.
|
|
481
|
-
'modal.
|
|
482
|
-
'modal.
|
|
483
|
-
'modal.
|
|
484
|
-
'modal.
|
|
485
|
-
'modal.
|
|
486
|
-
'
|
|
487
|
-
'modal.
|
|
488
|
-
'
|
|
489
|
-
'
|
|
490
|
-
'
|
|
491
|
-
'
|
|
492
|
-
'
|
|
493
|
-
'modal.
|
|
494
|
-
'modal.
|
|
495
|
-
'modal.
|
|
496
|
-
'modal.
|
|
497
|
-
'modal.
|
|
498
|
-
'modal.
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
'
|
|
502
|
-
'
|
|
503
|
-
'
|
|
504
|
-
'
|
|
505
|
-
'
|
|
506
|
-
'
|
|
507
|
-
'
|
|
508
|
-
'
|
|
509
|
-
'
|
|
510
|
-
'
|
|
511
|
-
'
|
|
512
|
-
'
|
|
513
|
-
'
|
|
514
|
-
'
|
|
515
|
-
'
|
|
516
|
-
'
|
|
517
|
-
'
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
'
|
|
521
|
-
'
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
'
|
|
525
|
-
'
|
|
526
|
-
'
|
|
527
|
-
'
|
|
528
|
-
'
|
|
529
|
-
'
|
|
530
|
-
'
|
|
531
|
-
'
|
|
532
|
-
'
|
|
533
|
-
'
|
|
534
|
-
'
|
|
535
|
-
'
|
|
536
|
-
|
|
537
|
-
'
|
|
538
|
-
'
|
|
539
|
-
'
|
|
540
|
-
'
|
|
541
|
-
'
|
|
542
|
-
'
|
|
543
|
-
'
|
|
544
|
-
'
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
'
|
|
548
|
-
'
|
|
549
|
-
'
|
|
550
|
-
'
|
|
551
|
-
'
|
|
552
|
-
'
|
|
553
|
-
'
|
|
554
|
-
'
|
|
555
|
-
'
|
|
556
|
-
'
|
|
557
|
-
'
|
|
558
|
-
'
|
|
559
|
-
'
|
|
560
|
-
'
|
|
561
|
-
'
|
|
562
|
-
'
|
|
563
|
-
'
|
|
564
|
-
'
|
|
565
|
-
'
|
|
566
|
-
'
|
|
567
|
-
'
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
'sessions.
|
|
571
|
-
'sessions.
|
|
572
|
-
'sessions.
|
|
573
|
-
'sessions.
|
|
574
|
-
'sessions.
|
|
575
|
-
'sessions.
|
|
576
|
-
'sessions.
|
|
577
|
-
'sessions.
|
|
578
|
-
'sessions.
|
|
579
|
-
'sessions.
|
|
580
|
-
'sessions.
|
|
581
|
-
'sessions.
|
|
582
|
-
|
|
583
|
-
'sessions.
|
|
584
|
-
'sessions.
|
|
585
|
-
'sessions.
|
|
586
|
-
'sessions.
|
|
587
|
-
'sessions.
|
|
588
|
-
'sessions.
|
|
589
|
-
'sessions.
|
|
590
|
-
'sessions.
|
|
591
|
-
'sessions.
|
|
592
|
-
'sessions.
|
|
593
|
-
'sessions.
|
|
594
|
-
'sessions.
|
|
595
|
-
'sessions.
|
|
596
|
-
'sessions.
|
|
597
|
-
'sessions.
|
|
598
|
-
'sessions.
|
|
599
|
-
'sessions.
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
'
|
|
603
|
-
'
|
|
604
|
-
'
|
|
605
|
-
'
|
|
606
|
-
'
|
|
607
|
-
'
|
|
608
|
-
'
|
|
609
|
-
'
|
|
610
|
-
'
|
|
611
|
-
'
|
|
612
|
-
'
|
|
613
|
-
'
|
|
614
|
-
'
|
|
615
|
-
'
|
|
616
|
-
'
|
|
617
|
-
'
|
|
618
|
-
'
|
|
619
|
-
'
|
|
620
|
-
'
|
|
621
|
-
'
|
|
622
|
-
'
|
|
623
|
-
'
|
|
624
|
-
'
|
|
625
|
-
'
|
|
626
|
-
'
|
|
627
|
-
'
|
|
628
|
-
'
|
|
629
|
-
'
|
|
630
|
-
'
|
|
631
|
-
'
|
|
632
|
-
'
|
|
633
|
-
'
|
|
634
|
-
'
|
|
635
|
-
'
|
|
636
|
-
'
|
|
637
|
-
'
|
|
638
|
-
'
|
|
639
|
-
'
|
|
640
|
-
'
|
|
641
|
-
'
|
|
642
|
-
'
|
|
643
|
-
'
|
|
644
|
-
'
|
|
645
|
-
'
|
|
646
|
-
'
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
'usage.
|
|
650
|
-
'usage.
|
|
651
|
-
'usage.
|
|
652
|
-
'usage.
|
|
653
|
-
'usage.
|
|
654
|
-
'usage.
|
|
655
|
-
'usage.
|
|
656
|
-
'usage.
|
|
657
|
-
'usage.
|
|
658
|
-
'usage.
|
|
659
|
-
'usage.
|
|
660
|
-
'usage.
|
|
661
|
-
'usage.
|
|
662
|
-
'usage.
|
|
663
|
-
'usage.
|
|
664
|
-
'usage.
|
|
665
|
-
'usage.
|
|
666
|
-
'usage.
|
|
667
|
-
'usage.
|
|
668
|
-
'usage.
|
|
669
|
-
'usage.
|
|
670
|
-
'usage.
|
|
671
|
-
'usage.
|
|
672
|
-
'usage.
|
|
673
|
-
'usage.
|
|
674
|
-
'usage.
|
|
675
|
-
'usage.
|
|
676
|
-
'usage.
|
|
677
|
-
'usage.
|
|
678
|
-
'usage.
|
|
679
|
-
'usage.
|
|
680
|
-
'usage.
|
|
681
|
-
'usage.
|
|
682
|
-
'usage.
|
|
683
|
-
'usage.
|
|
684
|
-
'usage.
|
|
685
|
-
'usage.
|
|
686
|
-
'usage.
|
|
687
|
-
'usage.
|
|
688
|
-
'usage.
|
|
689
|
-
'usage.
|
|
690
|
-
'usage.
|
|
691
|
-
'usage.
|
|
692
|
-
'usage.
|
|
693
|
-
'usage.
|
|
694
|
-
'usage.
|
|
695
|
-
'usage.
|
|
696
|
-
'usage.
|
|
697
|
-
'usage.
|
|
698
|
-
'usage.
|
|
699
|
-
'usage.
|
|
700
|
-
'usage.
|
|
701
|
-
'usage.
|
|
702
|
-
'usage.
|
|
703
|
-
'usage.
|
|
704
|
-
'usage.
|
|
705
|
-
'usage.
|
|
706
|
-
'usage.
|
|
707
|
-
'usage.
|
|
708
|
-
'usage.
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
'
|
|
712
|
-
'
|
|
713
|
-
'
|
|
714
|
-
'
|
|
715
|
-
'
|
|
716
|
-
'
|
|
717
|
-
'
|
|
718
|
-
'
|
|
719
|
-
'
|
|
720
|
-
'
|
|
721
|
-
'
|
|
722
|
-
'
|
|
723
|
-
'
|
|
724
|
-
'
|
|
725
|
-
'
|
|
726
|
-
'
|
|
727
|
-
'
|
|
728
|
-
'
|
|
729
|
-
'
|
|
730
|
-
'
|
|
731
|
-
'
|
|
732
|
-
'
|
|
733
|
-
'
|
|
734
|
-
'
|
|
735
|
-
'
|
|
736
|
-
'
|
|
737
|
-
'
|
|
738
|
-
'
|
|
739
|
-
'
|
|
740
|
-
'
|
|
741
|
-
'
|
|
742
|
-
'
|
|
743
|
-
'
|
|
744
|
-
'
|
|
745
|
-
'
|
|
746
|
-
'
|
|
747
|
-
'
|
|
748
|
-
'
|
|
749
|
-
'
|
|
750
|
-
'
|
|
751
|
-
'
|
|
752
|
-
'
|
|
753
|
-
'
|
|
754
|
-
'
|
|
755
|
-
'
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
'
|
|
759
|
-
'
|
|
760
|
-
'
|
|
761
|
-
'
|
|
762
|
-
'
|
|
763
|
-
'
|
|
764
|
-
'
|
|
765
|
-
'
|
|
766
|
-
'
|
|
767
|
-
'
|
|
768
|
-
'
|
|
769
|
-
'
|
|
770
|
-
'
|
|
771
|
-
'
|
|
772
|
-
'
|
|
773
|
-
'
|
|
774
|
-
'
|
|
775
|
-
'
|
|
776
|
-
'
|
|
777
|
-
'config.
|
|
778
|
-
'config.
|
|
779
|
-
'config.
|
|
780
|
-
'config.
|
|
781
|
-
'config.
|
|
782
|
-
'config.
|
|
783
|
-
'config.
|
|
784
|
-
'config.
|
|
785
|
-
'config.
|
|
786
|
-
'
|
|
787
|
-
'
|
|
788
|
-
'
|
|
789
|
-
'
|
|
790
|
-
'
|
|
791
|
-
'
|
|
792
|
-
'
|
|
793
|
-
'
|
|
794
|
-
'
|
|
795
|
-
'
|
|
796
|
-
'
|
|
797
|
-
'
|
|
798
|
-
'
|
|
799
|
-
'
|
|
800
|
-
'
|
|
801
|
-
'
|
|
802
|
-
'
|
|
803
|
-
'
|
|
804
|
-
'
|
|
805
|
-
'
|
|
806
|
-
'
|
|
807
|
-
'
|
|
808
|
-
'
|
|
809
|
-
'
|
|
810
|
-
'
|
|
811
|
-
'
|
|
812
|
-
'
|
|
813
|
-
'
|
|
814
|
-
'
|
|
815
|
-
'
|
|
816
|
-
'
|
|
817
|
-
'
|
|
818
|
-
'
|
|
819
|
-
'
|
|
820
|
-
'
|
|
821
|
-
'
|
|
822
|
-
'
|
|
823
|
-
'
|
|
824
|
-
'
|
|
825
|
-
'
|
|
826
|
-
'
|
|
827
|
-
'
|
|
828
|
-
'
|
|
829
|
-
'
|
|
830
|
-
'
|
|
831
|
-
'
|
|
832
|
-
'
|
|
833
|
-
'
|
|
834
|
-
'
|
|
835
|
-
'
|
|
836
|
-
'
|
|
837
|
-
'
|
|
838
|
-
'
|
|
839
|
-
'
|
|
840
|
-
'
|
|
841
|
-
'
|
|
842
|
-
'
|
|
843
|
-
'
|
|
844
|
-
'orchestration.
|
|
845
|
-
'orchestration.
|
|
846
|
-
'orchestration.
|
|
847
|
-
'orchestration.
|
|
848
|
-
'orchestration.
|
|
849
|
-
'orchestration.
|
|
850
|
-
'orchestration.
|
|
851
|
-
'orchestration.
|
|
852
|
-
'orchestration.
|
|
853
|
-
'orchestration.
|
|
854
|
-
'orchestration.
|
|
855
|
-
'orchestration.
|
|
856
|
-
'orchestration.
|
|
857
|
-
'orchestration.
|
|
858
|
-
'orchestration.
|
|
859
|
-
'orchestration.
|
|
860
|
-
'orchestration.
|
|
861
|
-
'orchestration.
|
|
862
|
-
'orchestration.
|
|
863
|
-
'orchestration.
|
|
864
|
-
'orchestration.
|
|
865
|
-
'orchestration.
|
|
866
|
-
'orchestration.
|
|
867
|
-
'orchestration.
|
|
868
|
-
'orchestration.
|
|
869
|
-
'orchestration.
|
|
870
|
-
'orchestration.
|
|
871
|
-
'orchestration.
|
|
872
|
-
'orchestration.
|
|
873
|
-
'orchestration.
|
|
874
|
-
'orchestration.
|
|
875
|
-
'orchestration.
|
|
876
|
-
'orchestration.
|
|
877
|
-
'orchestration.
|
|
878
|
-
'orchestration.
|
|
879
|
-
'orchestration.
|
|
880
|
-
'orchestration.
|
|
881
|
-
'orchestration.
|
|
882
|
-
'orchestration.
|
|
883
|
-
'orchestration.
|
|
884
|
-
'orchestration.
|
|
885
|
-
'orchestration.
|
|
886
|
-
'orchestration.
|
|
887
|
-
'orchestration.
|
|
888
|
-
'orchestration.
|
|
889
|
-
'orchestration.
|
|
890
|
-
'orchestration.
|
|
891
|
-
'orchestration.
|
|
892
|
-
'orchestration.
|
|
893
|
-
'orchestration.
|
|
894
|
-
'orchestration.
|
|
895
|
-
'orchestration.
|
|
896
|
-
'orchestration.
|
|
897
|
-
'orchestration.
|
|
898
|
-
'orchestration.
|
|
899
|
-
'orchestration.
|
|
900
|
-
'orchestration.
|
|
901
|
-
'orchestration.
|
|
902
|
-
'orchestration.
|
|
903
|
-
'orchestration.
|
|
904
|
-
'orchestration.
|
|
905
|
-
'orchestration.
|
|
906
|
-
'orchestration.
|
|
907
|
-
'orchestration.
|
|
908
|
-
'orchestration.
|
|
909
|
-
'orchestration.
|
|
910
|
-
'orchestration.
|
|
911
|
-
'orchestration.
|
|
912
|
-
'orchestration.
|
|
913
|
-
'orchestration.
|
|
914
|
-
'orchestration.
|
|
915
|
-
'orchestration.
|
|
916
|
-
'orchestration.
|
|
917
|
-
'orchestration.
|
|
918
|
-
'orchestration.
|
|
919
|
-
'orchestration.
|
|
920
|
-
'orchestration.
|
|
921
|
-
'orchestration.
|
|
922
|
-
'orchestration.
|
|
923
|
-
'orchestration.
|
|
924
|
-
'orchestration.
|
|
925
|
-
'orchestration.
|
|
926
|
-
'orchestration.
|
|
927
|
-
'
|
|
928
|
-
'
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
'
|
|
932
|
-
'
|
|
933
|
-
'
|
|
934
|
-
'
|
|
935
|
-
'
|
|
936
|
-
'
|
|
937
|
-
'
|
|
938
|
-
'
|
|
939
|
-
'
|
|
940
|
-
'
|
|
941
|
-
'
|
|
942
|
-
'
|
|
943
|
-
'
|
|
944
|
-
'
|
|
945
|
-
'
|
|
946
|
-
'
|
|
947
|
-
'
|
|
948
|
-
'
|
|
949
|
-
'
|
|
950
|
-
'
|
|
951
|
-
'
|
|
952
|
-
'
|
|
953
|
-
'
|
|
954
|
-
'
|
|
955
|
-
'
|
|
956
|
-
'
|
|
957
|
-
'
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
'
|
|
961
|
-
'
|
|
962
|
-
'
|
|
963
|
-
'
|
|
964
|
-
'
|
|
965
|
-
'
|
|
966
|
-
'
|
|
967
|
-
'
|
|
968
|
-
'
|
|
969
|
-
'
|
|
970
|
-
'
|
|
971
|
-
'
|
|
972
|
-
'
|
|
973
|
-
'
|
|
974
|
-
'
|
|
975
|
-
'
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
'
|
|
979
|
-
'
|
|
980
|
-
'
|
|
981
|
-
'
|
|
982
|
-
'
|
|
983
|
-
'
|
|
984
|
-
'
|
|
985
|
-
|
|
986
|
-
'
|
|
987
|
-
'
|
|
988
|
-
'
|
|
989
|
-
'
|
|
990
|
-
'
|
|
991
|
-
'
|
|
992
|
-
|
|
993
|
-
'
|
|
994
|
-
'
|
|
995
|
-
'
|
|
996
|
-
'
|
|
997
|
-
'
|
|
998
|
-
'
|
|
999
|
-
'
|
|
1000
|
-
'
|
|
1001
|
-
'
|
|
1002
|
-
'
|
|
1003
|
-
'
|
|
1004
|
-
'
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
'settings.
|
|
1008
|
-
'settings.
|
|
1009
|
-
'settings.
|
|
1010
|
-
'settings.
|
|
1011
|
-
'settings.
|
|
1012
|
-
'settings.
|
|
1013
|
-
'settings.
|
|
1014
|
-
'settings.
|
|
1015
|
-
|
|
1016
|
-
'settings.
|
|
1017
|
-
'settings.
|
|
1018
|
-
'settings.
|
|
1019
|
-
'settings.
|
|
1020
|
-
'settings.
|
|
1021
|
-
'settings.
|
|
1022
|
-
'settings.
|
|
1023
|
-
'settings.
|
|
1024
|
-
'settings.
|
|
1025
|
-
'settings.
|
|
1026
|
-
'settings.
|
|
1027
|
-
'settings.
|
|
1028
|
-
'settings.
|
|
1029
|
-
'settings.
|
|
1030
|
-
'settings.
|
|
1031
|
-
'settings.
|
|
1032
|
-
|
|
1033
|
-
'settings.
|
|
1034
|
-
'settings.
|
|
1035
|
-
'settings.
|
|
1036
|
-
'settings.
|
|
1037
|
-
'settings.
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
'
|
|
1041
|
-
'
|
|
1042
|
-
'
|
|
1043
|
-
'
|
|
1044
|
-
'
|
|
1045
|
-
'
|
|
1046
|
-
'
|
|
1047
|
-
'
|
|
1048
|
-
'
|
|
1049
|
-
'
|
|
1050
|
-
'
|
|
1051
|
-
'
|
|
1052
|
-
'
|
|
1053
|
-
|
|
1054
|
-
'
|
|
1055
|
-
'
|
|
1056
|
-
'
|
|
1057
|
-
'
|
|
1058
|
-
'
|
|
1059
|
-
'
|
|
1060
|
-
'
|
|
1061
|
-
'
|
|
1062
|
-
|
|
1063
|
-
'
|
|
1064
|
-
'
|
|
1065
|
-
'
|
|
1066
|
-
'
|
|
1067
|
-
'
|
|
1068
|
-
'
|
|
1069
|
-
'
|
|
1070
|
-
'
|
|
1071
|
-
|
|
1072
|
-
'
|
|
1073
|
-
'
|
|
1074
|
-
'
|
|
1075
|
-
'
|
|
1076
|
-
'
|
|
1077
|
-
'
|
|
1078
|
-
'
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
'
|
|
1082
|
-
'
|
|
1083
|
-
'
|
|
1084
|
-
'
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
'market.
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
'
|
|
1091
|
-
'
|
|
1092
|
-
'
|
|
1093
|
-
'
|
|
1094
|
-
'
|
|
1095
|
-
'
|
|
1096
|
-
'
|
|
1097
|
-
'
|
|
1098
|
-
'
|
|
1099
|
-
'
|
|
1100
|
-
|
|
1101
|
-
'
|
|
1102
|
-
'
|
|
1103
|
-
'
|
|
1104
|
-
'
|
|
1105
|
-
'
|
|
1106
|
-
'
|
|
1107
|
-
'
|
|
1108
|
-
'
|
|
1109
|
-
|
|
1110
|
-
'
|
|
1111
|
-
'
|
|
1112
|
-
'
|
|
1113
|
-
'
|
|
1114
|
-
'
|
|
1115
|
-
'
|
|
1116
|
-
'
|
|
1117
|
-
'
|
|
1118
|
-
|
|
1119
|
-
'
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
'
|
|
1123
|
-
'
|
|
1124
|
-
'
|
|
1125
|
-
'
|
|
1126
|
-
'
|
|
1127
|
-
|
|
1128
|
-
'
|
|
1129
|
-
'
|
|
1130
|
-
'
|
|
1131
|
-
'
|
|
1132
|
-
'
|
|
1133
|
-
'
|
|
1134
|
-
'
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
'
|
|
1138
|
-
'
|
|
1139
|
-
'
|
|
1140
|
-
'
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1
|
+
const zh = Object.freeze({
|
|
2
|
+
// Global
|
|
3
|
+
'lang.zh': '中文',
|
|
4
|
+
'lang.en': 'English',
|
|
5
|
+
'lang.vi': '越南语',
|
|
6
|
+
'lang.label': '语言',
|
|
7
|
+
'nav.topTabs.aria': '导航',
|
|
8
|
+
|
|
9
|
+
// Common
|
|
10
|
+
'common.all': '全部',
|
|
11
|
+
'common.copy': '复制',
|
|
12
|
+
'common.paste': '粘贴',
|
|
13
|
+
'common.edit': '编辑',
|
|
14
|
+
'common.install': '安装',
|
|
15
|
+
'common.update': '升级',
|
|
16
|
+
'common.uninstall': '卸载',
|
|
17
|
+
'common.official': '官方',
|
|
18
|
+
'common.custom': '自定义',
|
|
19
|
+
'common.rules': '规则',
|
|
20
|
+
'common.troubleshooting': '排障提示',
|
|
21
|
+
'common.command': '命令',
|
|
22
|
+
'common.mirror': '镜像源',
|
|
23
|
+
'common.packageManager': '包管理器',
|
|
24
|
+
'common.action': '操作',
|
|
25
|
+
'common.targets': '目标数',
|
|
26
|
+
'common.currentPm': '当前包管理器',
|
|
27
|
+
'common.currentAction': '当前操作',
|
|
28
|
+
'common.mirrorActive': '镜像',
|
|
29
|
+
'common.defaultOfficial': '官方默认',
|
|
30
|
+
'common.cancel': '取消',
|
|
31
|
+
'common.confirm': '确认',
|
|
32
|
+
'common.add': '添加',
|
|
33
|
+
'common.save': '保存',
|
|
34
|
+
'common.saveApply': '保存并应用',
|
|
35
|
+
'common.close': '关闭',
|
|
36
|
+
'common.delete': '删除',
|
|
37
|
+
'common.clear': '清空',
|
|
38
|
+
'common.show': '显示',
|
|
39
|
+
'common.hide': '隐藏',
|
|
40
|
+
'common.detail': '详情',
|
|
41
|
+
'common.refresh': '刷新',
|
|
42
|
+
'common.refreshing': '刷新中...',
|
|
43
|
+
'common.loading': '加载中...',
|
|
44
|
+
'common.saving': '保存中...',
|
|
45
|
+
'common.sending': '发送中...',
|
|
46
|
+
'common.scanning': '扫描中...',
|
|
47
|
+
'common.export': '导出',
|
|
48
|
+
'common.import': '导入',
|
|
49
|
+
'common.apply': '应用',
|
|
50
|
+
'common.applying': '应用中...',
|
|
51
|
+
'common.confirming': '确认中...',
|
|
52
|
+
'common.refreshFromText': '从文本刷新',
|
|
53
|
+
'common.backToEdit': '返回编辑',
|
|
54
|
+
'common.selectAll': '全选',
|
|
55
|
+
'common.unselectAll': '取消全选',
|
|
56
|
+
'common.resetFilters': '重置筛选',
|
|
57
|
+
'common.notEditable': '不可编辑',
|
|
58
|
+
'common.notDeletable': '不可删除',
|
|
59
|
+
'common.notLoaded': '未加载',
|
|
60
|
+
'common.exists': '已存在',
|
|
61
|
+
'common.notExistsWillCreateOnApply': '不存在,将在应用时创建',
|
|
62
|
+
'common.notExistsWillCreateOnSave': '不存在,将在保存时创建',
|
|
63
|
+
'common.none': '暂无',
|
|
64
|
+
'common.configured': '已配置',
|
|
65
|
+
'common.notConfigured': '未配置',
|
|
66
|
+
'cli.missing.title': '{name} CLI 未安装',
|
|
67
|
+
'cli.missing.subtitle': '请先安装 {name} CLI 后再继续使用此页面。',
|
|
68
|
+
'cli.missing.openDocs': '打开安装指南',
|
|
69
|
+
'cli.missing.commandAria': '{name} CLI 安装命令',
|
|
70
|
+
|
|
71
|
+
// Brand
|
|
72
|
+
'brand.kicker.workspace': '工作区',
|
|
73
|
+
'brand.subtitle.localConfigSessionsWorkspace': '本地配置与会话工作区',
|
|
74
|
+
|
|
75
|
+
// Confirm dialog
|
|
76
|
+
'confirm.aria': '确认操作',
|
|
77
|
+
'confirm.title.default': '请确认操作',
|
|
78
|
+
'confirm.ok': '确认',
|
|
79
|
+
'confirm.cancel': '取消',
|
|
80
|
+
|
|
81
|
+
// Shared fields
|
|
82
|
+
'field.name': '名称',
|
|
83
|
+
'field.configName': '配置名称',
|
|
84
|
+
'field.apiEndpoint': 'API 端点',
|
|
85
|
+
'field.apiKey': '认证密钥',
|
|
86
|
+
'field.baseUrl': 'Base URL',
|
|
87
|
+
'field.provider': '提供商',
|
|
88
|
+
'field.providerName': 'Provider 名称',
|
|
89
|
+
'field.modelName': '模型名称',
|
|
90
|
+
'field.model': '模型',
|
|
91
|
+
'field.message': '消息',
|
|
92
|
+
'field.varName': '变量名',
|
|
93
|
+
'field.targetFile': '目标文件',
|
|
94
|
+
'field.modelId': '模型 ID',
|
|
95
|
+
'field.displayName': '展示名称',
|
|
96
|
+
'field.contextAndMaxOutput': '上下文与最大输出',
|
|
97
|
+
'field.apiType': 'API 类型',
|
|
98
|
+
'field.env': '环境变量',
|
|
99
|
+
'field.allow': 'Allow',
|
|
100
|
+
'field.deny': 'Deny',
|
|
101
|
+
|
|
102
|
+
// Shared placeholders/hints
|
|
103
|
+
'placeholder.providerNameExample': '例如: myapi',
|
|
104
|
+
'placeholder.apiEndpointExample': 'https://api.example.com/v1',
|
|
105
|
+
'placeholder.providerName': '提供商名称',
|
|
106
|
+
'placeholder.keepUnchanged': '留空则保持不变',
|
|
107
|
+
'hint.keepKeyUnchanged': '留空表示不修改密钥',
|
|
108
|
+
'placeholder.modelExample': '例如: gpt-5',
|
|
109
|
+
'placeholder.configNameExample': '例如: 智谱GLM',
|
|
110
|
+
'placeholder.apiKeyExampleClaude': 'sk-ant-...',
|
|
111
|
+
'placeholder.baseUrlExampleClaude': 'https://open.bigmodel.cn/api/anthropic',
|
|
112
|
+
'placeholder.selectProvider': '请选择提供商',
|
|
113
|
+
|
|
114
|
+
// Roles / labels
|
|
115
|
+
'role.you': '你',
|
|
116
|
+
'role.provider': '提供商',
|
|
117
|
+
'label.model': '模型:',
|
|
118
|
+
|
|
119
|
+
// Top tabs
|
|
120
|
+
'tab.dashboard': '概览',
|
|
121
|
+
'tab.docs': '文档',
|
|
122
|
+
'tab.config': '配置',
|
|
123
|
+
'tab.config.codex': 'Codex',
|
|
124
|
+
'tab.config.claude': 'Claude',
|
|
125
|
+
'tab.config.openclaw': 'OpenClaw',
|
|
126
|
+
'tab.sessions': '会话',
|
|
127
|
+
'tab.usage': '用量',
|
|
128
|
+
'tab.orchestration': '任务',
|
|
129
|
+
'tab.market': 'Skills',
|
|
130
|
+
'tab.plugins': '插件',
|
|
131
|
+
'tab.settings': '设置',
|
|
132
|
+
|
|
133
|
+
// Side rail section titles
|
|
134
|
+
'side.overview': '概览',
|
|
135
|
+
'side.docs': '文档',
|
|
136
|
+
'side.config': '配置',
|
|
137
|
+
'side.sessions': '会话',
|
|
138
|
+
'side.plugins': '插件',
|
|
139
|
+
'side.system': '系统',
|
|
140
|
+
'side.orchestration': '任务',
|
|
141
|
+
'side.skills': 'Skills',
|
|
142
|
+
|
|
143
|
+
// Side rail items
|
|
144
|
+
'side.overview.doctor': 'Doctor 面板',
|
|
145
|
+
'side.overview.doctor.meta': '总览 / 诊断 / 跳转',
|
|
146
|
+
'side.docs.cliInstall': 'CLI 安装',
|
|
147
|
+
'side.docs.cliInstall.meta': '安装 / 升级 / 卸载',
|
|
148
|
+
'side.config.codex': 'Codex',
|
|
149
|
+
'side.config.codex.meta': 'Provider / Model',
|
|
150
|
+
'side.config.claude': 'Claude Code',
|
|
151
|
+
'side.config.claude.meta': 'Claude Settings',
|
|
152
|
+
'side.config.openclaw': 'OpenClaw',
|
|
153
|
+
'side.config.openclaw.meta': 'JSON5 / AGENTS',
|
|
154
|
+
'side.sessions.browser': '会话浏览',
|
|
155
|
+
'side.sessions.browser.meta': '浏览 / 导出 / 清理',
|
|
156
|
+
'side.plugins.tools': '提示词工具',
|
|
157
|
+
'side.plugins.tools.meta': '模板 / 变量',
|
|
158
|
+
'side.plugins.templatesCount': '{count} 个模板',
|
|
159
|
+
'side.system.settings': '运行设置',
|
|
160
|
+
'side.system.settings.meta': '数据 / 备份',
|
|
161
|
+
'side.newTab': '新建标签页',
|
|
162
|
+
|
|
163
|
+
// Header titles
|
|
164
|
+
'kicker.dashboard': 'Doctor',
|
|
165
|
+
'kicker.config': 'Configuration',
|
|
166
|
+
'kicker.sessions': 'Sessions',
|
|
167
|
+
'kicker.usage': 'Usage',
|
|
168
|
+
'kicker.orchestration': 'Tasks',
|
|
169
|
+
'kicker.market': 'Skills',
|
|
170
|
+
'kicker.plugins': 'Plugins',
|
|
171
|
+
'kicker.docs': 'Docs',
|
|
172
|
+
'kicker.trash': '回收站',
|
|
173
|
+
'kicker.settings': 'Settings',
|
|
174
|
+
|
|
175
|
+
'title.dashboard': 'Dashboard / Doctor',
|
|
176
|
+
'title.config': '本地配置控制台',
|
|
177
|
+
'title.sessions': '会话与导出',
|
|
178
|
+
'title.usage': '本地用量与趋势',
|
|
179
|
+
'title.orchestration': '任务编排',
|
|
180
|
+
'title.market': 'Skills 安装与同步',
|
|
181
|
+
'title.plugins': '插件与模板',
|
|
182
|
+
'title.docs': 'CLI 安装与文档',
|
|
183
|
+
'title.settings': '系统与数据设置',
|
|
184
|
+
|
|
185
|
+
'subtitle.dashboard': '聚合状态与诊断入口。',
|
|
186
|
+
'subtitle.config': '管理本地配置与模型。',
|
|
187
|
+
'subtitle.sessions': '浏览与导出会话。',
|
|
188
|
+
'subtitle.usage': '查看近 7 / 30 天用量。',
|
|
189
|
+
'subtitle.orchestration': '规划、排队、执行与回看本地任务。',
|
|
190
|
+
'subtitle.market': '管理本地 Skills。',
|
|
191
|
+
'subtitle.plugins': '管理模板化 prompt 与可复用插件。',
|
|
192
|
+
'subtitle.docs': '查看 CLI 安装命令与排障。',
|
|
193
|
+
'subtitle.settings': '管理下载、目录与回收站。',
|
|
194
|
+
'dashboard.doctor.title': 'Doctor',
|
|
195
|
+
'dashboard.doctor.runChecks': '运行检查',
|
|
196
|
+
'dashboard.doctor.checking': '检查中...',
|
|
197
|
+
'dashboard.doctor.export': '导出报告',
|
|
198
|
+
'dashboard.doctor.export.json': '导出 JSON',
|
|
199
|
+
'dashboard.doctor.export.md': '导出 Markdown',
|
|
200
|
+
'dashboard.doctor.open': '打开',
|
|
201
|
+
'doctor.action.openConfig': '打开 Config',
|
|
202
|
+
'doctor.action.checkProvider': '检查 Provider 配置',
|
|
203
|
+
'doctor.action.openUsage': '打开 Usage',
|
|
204
|
+
'doctor.action.openSessions': '打开 Sessions',
|
|
205
|
+
'doctor.action.openTasks': '打开 Tasks',
|
|
206
|
+
'doctor.action.viewTaskLogs': '查看 Tasks / Logs',
|
|
207
|
+
'doctor.action.openSkills': '打开 Skills',
|
|
208
|
+
'doctor.issue.configNotReady.problem': '配置文件未就绪',
|
|
209
|
+
'doctor.issue.configNotReady.impact': '可能导致 provider/model 无法读取,模型列表与请求将不可用。',
|
|
210
|
+
'doctor.issue.providerUnreachable.problem.remote-model-probe-unreachable': 'Provider 不可达',
|
|
211
|
+
'doctor.issue.providerUnreachable.problem.remote-model-probe-auth-failed': 'Provider 鉴权失败',
|
|
212
|
+
'doctor.issue.providerUnreachable.problem.remote-model-probe-not-found': 'Provider 返回 404',
|
|
213
|
+
'doctor.issue.providerUnreachable.problem.remote-model-probe-http-error': 'Provider 返回 HTTP 错误',
|
|
214
|
+
'doctor.issue.providerUnreachable.problem.remote-model-probe-error': 'Provider 探测失败',
|
|
215
|
+
'doctor.issue.providerUnreachable.problem.unknown': 'Provider 不可用',
|
|
216
|
+
'doctor.issue.providerUnreachable.impactAuth': '鉴权失败会导致模型列表/对话请求返回 401/403。',
|
|
217
|
+
'doctor.issue.providerUnreachable.impactNetwork': '远端不可达会导致模型列表/对话请求失败或超时。',
|
|
218
|
+
'doctor.issue.configHealthFailed.problem': '配置健康检查未通过',
|
|
219
|
+
'doctor.issue.configHealthFailed.impact': '可能导致部分功能不可用或行为不符合预期。',
|
|
220
|
+
'doctor.issue.usageError.problem': 'Usage 统计异常',
|
|
221
|
+
'doctor.issue.usageError.impact': 'Usage 页面可能无法展示趋势/汇总,Doctor 的用量诊断也会缺失。',
|
|
222
|
+
'doctor.issue.usageMissingModel.problem': '部分会话缺少模型信息',
|
|
223
|
+
'doctor.issue.usageMissingModel.impact': '会导致用量归因与成本估算不准确。',
|
|
224
|
+
'doctor.issue.tasksError.problem': 'Tasks 状态读取失败',
|
|
225
|
+
'doctor.issue.tasksError.impact': '可能导致编排队列/运行记录无法展示。',
|
|
226
|
+
'doctor.issue.tasksFailed.problem': '存在失败的任务运行',
|
|
227
|
+
'doctor.issue.tasksFailed.impact': '可能导致自动化流水线中断,需要查看日志并重试或修复输入。',
|
|
228
|
+
'doctor.issue.skillsError.problem': 'Skills 列表读取失败',
|
|
229
|
+
'doctor.issue.skillsError.impact': '会导致 Skills 页面无法正常展示或安装。',
|
|
230
|
+
'doctor.issue.skillsRootMissing.problem': 'Skills 目录不存在',
|
|
231
|
+
'doctor.issue.skillsRootMissing.impact': '会导致 Skills 安装/扫描为空;可在 Settings/Docs 按指引初始化目录。',
|
|
232
|
+
'doctor.issue.skillsMissingFiles.problem': '存在缺失 skill.json 的技能',
|
|
233
|
+
'doctor.issue.skillsMissingFiles.impact': '会导致部分技能无法被运行或同步。',
|
|
234
|
+
'dashboard.card.config': '配置',
|
|
235
|
+
'dashboard.card.sessions': '会话',
|
|
236
|
+
'dashboard.card.usage': '用量',
|
|
237
|
+
'dashboard.card.tasks': '任务',
|
|
238
|
+
'dashboard.card.skills': 'Skills',
|
|
239
|
+
'dashboard.kv.model': '模型',
|
|
240
|
+
'dashboard.kv.issue': '异常',
|
|
241
|
+
'dashboard.kv.active': '当前',
|
|
242
|
+
'dashboard.kv.sessions': '会话数',
|
|
243
|
+
'dashboard.kv.missingModel': '缺失模型',
|
|
244
|
+
'dashboard.kv.blockers': '阻塞',
|
|
245
|
+
'dashboard.kv.runs': '运行',
|
|
246
|
+
'dashboard.kv.target': '目标',
|
|
247
|
+
'dashboard.kv.root': '目录',
|
|
248
|
+
'dashboard.status.health': '健康',
|
|
249
|
+
'dashboard.status.busy': '忙闲',
|
|
250
|
+
'dashboard.status.models': '模型',
|
|
251
|
+
'dashboard.busy.init': '初始化',
|
|
252
|
+
'dashboard.busy.sessions': '会话加载',
|
|
253
|
+
'dashboard.busy.models': '模型加载',
|
|
254
|
+
'dashboard.busy.configApply': '配置应用',
|
|
255
|
+
'dashboard.busy.agents': 'AGENTS 保存',
|
|
256
|
+
'dashboard.busy.skills': 'Skills 管理',
|
|
257
|
+
'dashboard.busy.tasks': '任务编排',
|
|
258
|
+
'dashboard.busy.idle': '空闲',
|
|
259
|
+
'dashboard.message.none': '暂无提示',
|
|
260
|
+
'dashboard.sessionSource.codex': 'Codex',
|
|
261
|
+
'dashboard.sessionSource.claude': 'Claude Code',
|
|
262
|
+
'dashboard.sessionSource.gemini': 'Gemini CLI',
|
|
263
|
+
'dashboard.sessionSource.codebuddy': 'CodeBuddy Code',
|
|
264
|
+
'dashboard.sessionSource.all': '全部',
|
|
265
|
+
'dashboard.sessionPath.all': '全部路径',
|
|
266
|
+
'dashboard.sessionQuery.unsupported': '当前来源不支持',
|
|
267
|
+
'dashboard.sessionQuery.unset': '未设置',
|
|
268
|
+
'dashboard.healthStatus.failRead': '读取失败',
|
|
269
|
+
'dashboard.healthStatus.initializing': '初始化中',
|
|
270
|
+
'dashboard.healthStatus.ok': '正常',
|
|
271
|
+
'dashboard.modelStatus.loading': '加载中',
|
|
272
|
+
'dashboard.modelStatus.error': '加载异常',
|
|
273
|
+
'dashboard.modelStatus.ok': '正常',
|
|
274
|
+
'dashboard.health.ok': '检查通过',
|
|
275
|
+
'dashboard.health.fail': '检查失败',
|
|
276
|
+
'dashboard.health.issues': '{count} 条问题',
|
|
277
|
+
'dashboard.issues.title': '发现 {count} 条可操作问题',
|
|
278
|
+
'dashboard.state.loading': '加载中',
|
|
279
|
+
'dashboard.state.ready': '就绪',
|
|
280
|
+
'dashboard.state.idle': '未加载',
|
|
281
|
+
'dashboard.none': '无',
|
|
282
|
+
'dashboard.sessions.count': '{count} 条会话',
|
|
283
|
+
'dashboard.usage.range': '范围 {value}',
|
|
284
|
+
'dashboard.tasks.queue': 'run {running} / queue {queued}',
|
|
285
|
+
'dashboard.skills.count': 'installed {installed} / import {importable}',
|
|
286
|
+
'dashboard.providersHealth.title': 'Provider 健康状态',
|
|
287
|
+
'dashboard.providersHealth.current': '(当前)',
|
|
288
|
+
'dashboard.providersHealth.checking': '检查中...',
|
|
289
|
+
'dashboard.providersHealth.allOk': '所有 Provider 正常',
|
|
290
|
+
'dashboard.providersHealth.hasIssues': '{count} 个 Provider 存在问题',
|
|
291
|
+
|
|
292
|
+
// Plugins panel
|
|
293
|
+
'plugins.sidebar.title': 'Plugins',
|
|
294
|
+
'plugins.sidebar.note': '可复用的标准化工具。未来自定义插件应遵循相同结构。',
|
|
295
|
+
'plugins.sidebar.ariaList': '插件列表',
|
|
296
|
+
'plugins.catalog.promptTemplates.title': '提示词模板',
|
|
297
|
+
'plugins.catalog.promptTemplates.description': '标准化、模板驱动的提示词工具,支持变量、复制与导出。',
|
|
298
|
+
'plugins.status.standard': '标准',
|
|
299
|
+
'plugins.main.ariaWorkspace': '插件工作区',
|
|
300
|
+
'plugins.refresh': '刷新',
|
|
301
|
+
'plugins.refreshing': '刷新中...',
|
|
302
|
+
'plugins.promptTemplates.title': '提示词模板',
|
|
303
|
+
'plugins.promptTemplates.subtitle': '内置:代码注释润色({{code}})。复制后直接粘贴到输入框即可。',
|
|
304
|
+
'plugins.promptTemplates.mode.aria': '提示词模板模式',
|
|
305
|
+
'plugins.promptTemplates.mode.compose': '生成',
|
|
306
|
+
'plugins.promptTemplates.mode.manage': '管理',
|
|
307
|
+
'plugins.promptTemplates.compose.selectTemplate': '选择模板',
|
|
308
|
+
'plugins.promptTemplates.compose.chooseTemplate': '选择模板',
|
|
309
|
+
'plugins.promptTemplates.compose.chooseTemplateHint': '请选择一个模板开始生成。',
|
|
310
|
+
'plugins.promptTemplates.compose.builtinSuffix': '(内置)',
|
|
311
|
+
'plugins.promptTemplates.compose.empty': '暂无可用模板。',
|
|
312
|
+
'plugins.promptTemplates.compose.varsHint': '变量填写与新增请在「管理」中进行。',
|
|
313
|
+
'plugins.promptTemplates.compose.missingCount': '未填 {count} 项',
|
|
314
|
+
'plugins.promptTemplates.compose.jumpToMissing': '跳到未填',
|
|
315
|
+
'plugins.promptTemplates.compose.goManage': '去管理填写变量',
|
|
316
|
+
'plugins.promptTemplates.compose.outputTitle': '生成结果',
|
|
317
|
+
'plugins.promptTemplates.compose.outputHint': '点“复制”后直接粘贴到 Codex/Claude 输入框。',
|
|
318
|
+
'plugins.promptTemplates.compose.outputAria': '生成结果(提示词)',
|
|
319
|
+
'plugins.promptTemplates.compose.copy': '复制',
|
|
320
|
+
'plugins.promptTemplates.manage.searchAria': '搜索模板',
|
|
321
|
+
'plugins.promptTemplates.manage.searchPlaceholder': '搜索模板',
|
|
322
|
+
'plugins.promptTemplates.manage.create': '新建',
|
|
323
|
+
'plugins.promptTemplates.manage.export': '导出',
|
|
324
|
+
'plugins.promptTemplates.manage.import': '导入',
|
|
325
|
+
'plugins.promptTemplates.manage.loading': '正在加载模板...',
|
|
326
|
+
'plugins.promptTemplates.manage.empty': '暂无模板。',
|
|
327
|
+
'plugins.promptTemplates.manage.vars': '{count} vars',
|
|
328
|
+
'plugins.promptTemplates.manage.builtin': 'built-in',
|
|
329
|
+
'plugins.promptTemplates.manage.custom': 'custom',
|
|
330
|
+
'plugins.promptTemplates.manage.newTemplateName': '新模板',
|
|
331
|
+
'plugins.promptTemplates.editor.selectHint': '请选择一个模板进行编辑。',
|
|
332
|
+
'plugins.promptTemplates.editor.namePlaceholder': '模板名称',
|
|
333
|
+
'plugins.promptTemplates.editor.nameAria': '模板名称',
|
|
334
|
+
'plugins.promptTemplates.editor.duplicate': '复制',
|
|
335
|
+
'plugins.promptTemplates.editor.delete': '删除',
|
|
336
|
+
'plugins.promptTemplates.editor.save': '保存',
|
|
337
|
+
'plugins.promptTemplates.editor.builtinReadOnly': '内置模板为只读,不支持编辑/保存/删除/复制。',
|
|
338
|
+
'plugins.promptTemplates.editor.descPlaceholder': '描述(可选)',
|
|
339
|
+
'plugins.promptTemplates.editor.descAria': '模板描述',
|
|
340
|
+
'plugins.promptTemplates.editor.templateLabel': '模板',
|
|
341
|
+
'plugins.promptTemplates.editor.templateAria': '模板内容',
|
|
342
|
+
'plugins.promptTemplates.editor.templatePlaceholder': '在这里编写模板。使用 {{var}} 占位符。',
|
|
343
|
+
'plugins.promptTemplates.vars.title': '变量',
|
|
344
|
+
'plugins.promptTemplates.vars.hint': '从模板中检测。填写后可渲染最终提示词。',
|
|
345
|
+
'plugins.promptTemplates.vars.reset': '重置',
|
|
346
|
+
'plugins.promptTemplates.vars.empty': '未检测到变量。',
|
|
347
|
+
'plugins.promptTemplates.vars.valuePlaceholder': '变量值:{name}',
|
|
348
|
+
'plugins.promptTemplates.preview.title': '预览',
|
|
349
|
+
'plugins.promptTemplates.preview.hint': '渲染结果(缺失变量会替换为空)。',
|
|
350
|
+
'plugins.promptTemplates.preview.copy': '复制',
|
|
351
|
+
'plugins.promptTemplates.preview.outputAria': '渲染结果(提示词)',
|
|
352
|
+
'plugins.promptTemplates.noPluginSelected': '请先从左侧选择一个插件。',
|
|
353
|
+
|
|
354
|
+
'plugins.meta.attribution': '创建者:{createdBy} · 维护者:{maintainers}',
|
|
355
|
+
'plugins.meta.createdBy': '创建者:{createdBy}',
|
|
356
|
+
'plugins.meta.maintainedBy': '维护者:{maintainers}',
|
|
357
|
+
|
|
358
|
+
// Built-in prompt templates
|
|
359
|
+
'plugins.builtin.commentPolish.name': '代码注释润色',
|
|
360
|
+
'plugins.builtin.commentPolish.desc': '轻微收敛以下代码注释 {{code}}',
|
|
361
|
+
'plugins.builtin.commentPolish.line1': '轻微收敛以下代码注释',
|
|
362
|
+
'plugins.builtin.ruleAck.name': '规则确认回复',
|
|
363
|
+
'plugins.builtin.ruleAck.desc': '生成规则确认回复',
|
|
364
|
+
'plugins.builtin.ruleAck.line1': '请根据【{{rule}}】,收到请回复',
|
|
365
|
+
|
|
366
|
+
// Toasts
|
|
367
|
+
'toast.copy.empty': '没有可复制内容',
|
|
368
|
+
'toast.copy.ok': '已复制',
|
|
369
|
+
'toast.copy.fail': '复制失败',
|
|
370
|
+
'toast.save.ok': '已保存',
|
|
371
|
+
'toast.save.fail': '保存失败',
|
|
372
|
+
'toast.delete.ok': '已删除',
|
|
373
|
+
'toast.delete.fail': '删除失败',
|
|
374
|
+
'toast.export.empty': '没有可导出内容',
|
|
375
|
+
'toast.export.ok': '已导出',
|
|
376
|
+
'toast.export.fail': '导出失败',
|
|
377
|
+
'toast.import.ok': '导入成功',
|
|
378
|
+
'toast.import.fail': '导入失败',
|
|
379
|
+
'toast.import.notAvailable': '导入不可用',
|
|
380
|
+
'toast.import.readFileFail': '读取文件失败',
|
|
381
|
+
'toast.import.invalidJson': 'JSON 无效',
|
|
382
|
+
'toast.import.expectedArray': 'JSON 必须为数组',
|
|
383
|
+
'toast.export.notSupported': '当前不支持导出',
|
|
384
|
+
'toast.plugins.loadFail': '加载 Plugins 失败',
|
|
385
|
+
'toast.templates.builtinNotEditable': '内置模板不可编辑',
|
|
386
|
+
'toast.templates.builtinNotModifiable': '内置模板不可修改,请先复制再编辑',
|
|
387
|
+
'toast.templates.nameRequired': '模板名称不能为空',
|
|
388
|
+
'toast.templates.builtinNotDuplicable': '内置模板不可复制',
|
|
389
|
+
'toast.templates.builtinNotDeletable': '内置模板不可删除',
|
|
390
|
+
'toast.templates.deleteTitle': '删除模板',
|
|
391
|
+
'toast.templates.deleteMessage': '删除”{name}”?此操作无法撤销。',
|
|
392
|
+
'toast.templates.deleteConfirm': '删除',
|
|
393
|
+
'toast.templates.deleteCancel': '取消',
|
|
394
|
+
'toast.operation.success': '操作成功',
|
|
395
|
+
'toast.load.fail': '加载文件失败',
|
|
396
|
+
'toast.apply.success': '配置已应用',
|
|
397
|
+
'toast.apply.fail': '应用配置失败',
|
|
398
|
+
'toast.check.success': '检查通过',
|
|
399
|
+
'toast.check.fail': '检查失败',
|
|
400
|
+
'toast.noChanges': '未检测到改动',
|
|
401
|
+
'toast.template.loadFail': '加载模板失败',
|
|
402
|
+
'toast.template.empty': '模板不能为空',
|
|
403
|
+
'toast.template.applied': '模板已应用',
|
|
404
|
+
'toast.template.appliedButRefreshFail': '模板已应用,但界面刷新失败,请手动刷新',
|
|
405
|
+
'toast.template.applyFail': '应用模板失败',
|
|
406
|
+
'toast.provider.addFail': '添加失败',
|
|
407
|
+
'toast.provider.notDeletable': '该 provider 为保留项,不可删除',
|
|
408
|
+
'toast.provider.deletedAndSwitched': '已删除提供商,自动切换到 {provider}{model}',
|
|
409
|
+
'toast.provider.notEditable': '该 provider 为保留项,不可编辑',
|
|
410
|
+
'toast.provider.updateFail': '更新失败',
|
|
411
|
+
'toast.provider.resetSuccess': '配置已重装{backup}',
|
|
412
|
+
'toast.provider.resetFail': '重装失败',
|
|
413
|
+
'toast.provider.fieldsRequired': '名称、URL、API Key 和模型名称必填',
|
|
414
|
+
'toast.provider.urlRequired': 'URL 必填',
|
|
415
|
+
'toast.claude.modelRequired': '请输入模型',
|
|
416
|
+
'toast.claude.apiKeyRequired': '请先配置 API Key',
|
|
417
|
+
'toast.claude.checkConfig': '请检查 Claude 配置',
|
|
418
|
+
'toast.claude.savedWithoutKey': '已保存(未填写 API Key)',
|
|
419
|
+
'toast.claude.applied': 'Claude 配置已生效',
|
|
420
|
+
'toast.claude.exists': '配置已存在',
|
|
421
|
+
'toast.claude.keepOne': '至少保留一项',
|
|
422
|
+
'toast.claude.externalAuth': '使用外部认证,无需 API Key',
|
|
423
|
+
'toast.claude.balanceEnabled': 'Claude 本地负载均衡已启用',
|
|
424
|
+
'toast.claude.balanceDisabled': 'Claude 本地负载均衡已关闭',
|
|
425
|
+
'toast.claude.balanceEnableFail': '启用本地负载均衡失败',
|
|
426
|
+
'toast.claude.balanceRequireProvider': '请先添加并配置至少一个 Claude 提供商',
|
|
427
|
+
'toast.claude.loadSettingsFail': '加载 Claude settings 失败',
|
|
428
|
+
'validation.claude.nameRequired': '配置名称不能为空',
|
|
429
|
+
'validation.claude.nameExists': '名称已存在',
|
|
430
|
+
'validation.claude.apiKeyRequired': 'API Key 必填',
|
|
431
|
+
'validation.claude.baseUrlRequired': 'Base URL 必填',
|
|
432
|
+
'validation.claude.baseUrlHttpOnly': 'Base URL 仅支持 http/https',
|
|
433
|
+
'validation.claude.modelRequired': '模型名称必填',
|
|
434
|
+
'modal.claudeDelete.title': '删除 Claude 配置',
|
|
435
|
+
'modal.claudeDelete.message': '确定删除配置 "{name}"?',
|
|
436
|
+
'modal.claudeDelete.confirm': '删除',
|
|
437
|
+
'modal.claudeDelete.cancel': '取消',
|
|
438
|
+
|
|
439
|
+
// Basic modals
|
|
440
|
+
'modal.providerAdd.title': '添加提供商',
|
|
441
|
+
'modal.providerEdit.title': '编辑提供商',
|
|
442
|
+
'modal.modelAdd.title': '添加模型',
|
|
443
|
+
'modal.modelManage.title': '管理模型',
|
|
444
|
+
'modal.claudeConfigAdd.title': '添加 Claude Code 配置',
|
|
445
|
+
'modal.claudeConfigEdit.title': '编辑 Claude Code 配置',
|
|
446
|
+
'field.useBuiltinTransform': '使用内建转换(兼容 OpenAI 格式)',
|
|
447
|
+
'hint.useBuiltinTransform': '开启后:写入的 base_url 会指向 codexmate 内建转换服务;Codex 使用的令牌固定为 codexmate。',
|
|
448
|
+
|
|
449
|
+
// Config template / agents modals
|
|
450
|
+
'modal.configTemplate.label': 'config.toml 模板',
|
|
451
|
+
'modal.configTemplate.mode.twoStep': '两步确认:先预览差异,再应用写入。',
|
|
452
|
+
'modal.configTemplate.mode.oneStep': '一步应用:点击“应用”直接写入。',
|
|
453
|
+
'diff.title.configTemplate': '差异预览(config.toml)',
|
|
454
|
+
'diff.generating': '生成中...',
|
|
455
|
+
'diff.failed': '生成失败',
|
|
456
|
+
'diff.noChanges': '未检测到改动',
|
|
457
|
+
'diff.hint.busy': '正在生成差异或应用中,操作暂不可用。',
|
|
458
|
+
'diff.hint.failedBack': '差异预览失败,请返回编辑后重试。',
|
|
459
|
+
'diff.hint.noChangesBack': '未检测到改动,可返回编辑继续修改或取消退出。',
|
|
460
|
+
'diff.hint.previewMode': '当前为预览模式,可点击“应用”写入或“返回编辑”继续修改。',
|
|
461
|
+
|
|
462
|
+
'modal.agents.export': '导出',
|
|
463
|
+
'modal.agents.copy': '复制',
|
|
464
|
+
'modal.agents.title': 'AGENTS.md 编辑器',
|
|
465
|
+
'modal.agents.hint': '保存后会写入目标 AGENTS.md(与 config.toml 同级)。',
|
|
466
|
+
'modal.agents.targetFile': '目标文件',
|
|
467
|
+
'modal.agents.contentLabel': 'AGENTS.md 内容',
|
|
468
|
+
'modal.agents.placeholder': '在这里编辑 AGENTS.md 内容',
|
|
469
|
+
'modal.agents.unsaved.previewModeHint': '预览模式:当前改动尚未保存,只有点击“应用”后才会写入文件。',
|
|
470
|
+
'modal.agents.unsaved.detectedHint': '检测到未保存改动:关闭页面或应用前请先保存。',
|
|
471
|
+
'modal.agents.hint.shortcuts': '快捷键:Esc(差异预览时返回编辑,编辑时关闭窗口)。',
|
|
472
|
+
'modal.agents.hint.twoStepSave': '保存需两步:先点击“确认”预览差异,再点击“应用”保存。',
|
|
473
|
+
'diff.tooLargeSkip': '内容过大,已跳过逐行差异预览',
|
|
474
|
+
'diff.viewHint.preview': '当前为预览模式,可点击“应用”保存或“返回编辑”继续修改。',
|
|
475
|
+
'diff.viewHint.truncated': '内容过大,已跳过预览,可点击“应用”保存或“返回编辑”继续修改。',
|
|
476
|
+
|
|
477
|
+
// Skills modal
|
|
478
|
+
'modal.skills.title': 'Skills 管理',
|
|
479
|
+
'modal.skills.subtitle': '管理当前宿主的本地 Skills。',
|
|
480
|
+
'modal.skills.target.aria': '选择 Skills 管理目标',
|
|
481
|
+
'modal.skills.rootDir': 'Skills 目录({label})',
|
|
482
|
+
'modal.skills.summary.target': '安装目标',
|
|
483
|
+
'modal.skills.summary.total': '本地总数',
|
|
484
|
+
'modal.skills.summary.withSkill': '含 SKILL.md',
|
|
485
|
+
'modal.skills.summary.missingSkill': '缺少 SKILL.md',
|
|
486
|
+
'modal.skills.summary.importable': '可导入',
|
|
487
|
+
'modal.skills.panel.aria': 'Skills 管理面板',
|
|
488
|
+
'modal.skills.local.title': '本地 Skills',
|
|
489
|
+
'modal.skills.local.note': '可检索、筛选与批量删除。',
|
|
490
|
+
'modal.skills.filter.keywordAria': '按名称或描述筛选 skill',
|
|
491
|
+
'modal.skills.filter.keywordPlaceholder': '按目录名/显示名/描述检索',
|
|
492
|
+
'modal.skills.filter.statusAria': '按 SKILL.md 状态筛选 skill',
|
|
493
|
+
'modal.skills.filter.status.all': '全部状态',
|
|
494
|
+
'modal.skills.filter.status.withSkill': '仅含 SKILL.md',
|
|
495
|
+
'modal.skills.filter.status.missingSkill': '仅缺少 SKILL.md',
|
|
496
|
+
'modal.skills.selection.stats': '已选 {selected}(筛选命中 {filtered} / {total},筛选内已选 {visibleSelected})',
|
|
497
|
+
'modal.skills.empty.local': '暂无可管理的 skill。',
|
|
498
|
+
'modal.skills.empty.filtered': '当前筛选条件下没有匹配的 skill。',
|
|
499
|
+
'modal.skills.pill.hasSkillFile': '含 SKILL.md',
|
|
500
|
+
'modal.skills.pill.missingSkillFile': '缺少 SKILL.md',
|
|
501
|
+
'modal.skills.pill.symlink': '符号链接',
|
|
502
|
+
'modal.skills.pill.dir': '目录',
|
|
503
|
+
'modal.skills.import.title': '跨应用导入',
|
|
504
|
+
'modal.skills.import.note': '扫描并导入到当前 {label}。',
|
|
505
|
+
'modal.skills.import.scan': '扫描可导入',
|
|
506
|
+
'modal.skills.import.stats': '已选 {selected} / {total},含 SKILL.md {configured},缺失 {missing}',
|
|
507
|
+
'modal.skills.import.emptyHint': '暂无可导入 skill,点击“扫描可导入”。',
|
|
508
|
+
'modal.skills.bulk.title': '批量操作',
|
|
509
|
+
'modal.skills.bulk.note': '右侧为导入操作,左侧为本地选择。',
|
|
510
|
+
'modal.skills.actions.zipImport': '导入 ZIP',
|
|
511
|
+
'modal.skills.actions.zipImporting': 'ZIP 导入中...',
|
|
512
|
+
'modal.skills.actions.exportSelected': '导出选中',
|
|
513
|
+
'modal.skills.actions.exporting': '导出中...',
|
|
514
|
+
'modal.skills.actions.importSelected': '导入选中',
|
|
515
|
+
'modal.skills.actions.importing': '导入中...',
|
|
516
|
+
'modal.skills.actions.deleteSelected': '删除选中',
|
|
517
|
+
'modal.skills.actions.deleting': '删除中...',
|
|
518
|
+
|
|
519
|
+
// OpenClaw config modal (quick)
|
|
520
|
+
'placeholder.openclawConfigNameExample': '例如: 默认配置',
|
|
521
|
+
'modal.openclaw.loadCurrent': '加载当前配置',
|
|
522
|
+
'modal.openclaw.quick.title': '新手快速配置',
|
|
523
|
+
'modal.openclaw.quick.readFromEditor': '从编辑器读取',
|
|
524
|
+
'modal.openclaw.quick.step1': '填写 Provider 与模型',
|
|
525
|
+
'modal.openclaw.quick.step3': '保存并应用',
|
|
526
|
+
'modal.openclaw.quick.providerHint': '会拼成 provider/model 作为主模型标识。',
|
|
527
|
+
'modal.openclaw.quick.baseUrlHintDefault': '已按 OpenClaw 内建 provider 默认值回填,可直接修改。',
|
|
528
|
+
'modal.openclaw.quick.baseUrlHintReadonly': '检测到外部引用,快速表单中只读显示;如需修改请使用原文编辑。',
|
|
529
|
+
'modal.openclaw.quick.apiKeyHintFromAuth': '当前值来自 OpenClaw 外部认证配置;修改后在“保存并应用”时会回写对应 auth profile。',
|
|
530
|
+
'modal.openclaw.quick.apiKeyHintReadonly': '检测到外部认证或引用,快速表单中只读显示;如需修改请使用原文编辑或对应认证配置。',
|
|
531
|
+
'modal.openclaw.quick.apiKeyHintKeep': '留空表示不覆盖现有 key。',
|
|
532
|
+
'placeholder.apiTypeExample': '例如: openai-responses',
|
|
533
|
+
'modal.openclaw.quick.modelTitle': '模型',
|
|
534
|
+
'placeholder.modelIdExample': '例如: gpt-4.1',
|
|
535
|
+
'placeholder.modelNameOptional': '留空则使用模型 ID',
|
|
536
|
+
'field.contextWindow': '上下文长度',
|
|
537
|
+
'field.maxOutput': '最大输出',
|
|
538
|
+
'hint.emptyNoChange': '留空表示不改动已有配置。',
|
|
539
|
+
'modal.openclaw.quick.optionsTitle': '选项',
|
|
540
|
+
'modal.openclaw.quick.setPrimary': '设为主模型',
|
|
541
|
+
'modal.openclaw.quick.overrideProvider': '覆盖同名 Provider 基础信息',
|
|
542
|
+
'modal.openclaw.quick.overrideModels': '覆盖同名模型列表',
|
|
543
|
+
'modal.openclaw.quick.optionsHint': '关闭覆盖会只补空缺字段。',
|
|
544
|
+
'modal.openclaw.quick.writeToEditor': '写入编辑器',
|
|
545
|
+
|
|
546
|
+
// Docs panel
|
|
547
|
+
'docs.title': 'CLI 安装文档',
|
|
548
|
+
'docs.subtitle': '查看 Claude Code / Gemini CLI / CodeBuddy Code / Codex CLI 命令。',
|
|
549
|
+
'docs.section.commands': '安装命令',
|
|
550
|
+
'docs.section.commandsNote': '命令可直接复制。',
|
|
551
|
+
'docs.section.faq': '常见问题',
|
|
552
|
+
'docs.section.faqNote': '常见问题见下。',
|
|
553
|
+
'docs.command.aria': '{name} 命令',
|
|
554
|
+
'docs.registryHintPrefix': '命令将附加:',
|
|
555
|
+
'docs.registryHintCustom': '请输入完整 URL(含 http/https),将自动附加到命令。',
|
|
556
|
+
'docs.registry.tencent': '腾讯云',
|
|
557
|
+
'docs.meta.bin': 'bin: {bin}',
|
|
558
|
+
'docs.termuxLabel': 'Termux',
|
|
559
|
+
'docs.termuxAria': 'Termux Codex CLI command',
|
|
560
|
+
'docs.rule.1': '命令按当前包管理器、镜像与操作生成。',
|
|
561
|
+
'docs.rule.2': '自定义镜像仅用于安装与升级。',
|
|
562
|
+
'docs.tip.win.1': 'PowerShell 报权限不足(EACCES/EPERM)时,请以管理员身份执行安装命令。',
|
|
563
|
+
'docs.tip.win.2': '安装后若仍提示找不到命令,重开终端并执行:where codex / where claude / where gemini / where codebuddy。',
|
|
564
|
+
'docs.tip.win.3': '公司网络受限时,可先切换镜像源快捷项(npmmirror / 腾讯云 / 自定义)。',
|
|
565
|
+
'docs.tip.unix.1': '出现 EACCES 权限错误时,优先修复 Node 全局目录权限,不建议直接 sudo npm。',
|
|
566
|
+
'docs.tip.unix.2': '安装后若命令未生效,重开终端并执行:which codex / which claude / which gemini / which codebuddy。',
|
|
567
|
+
'docs.tip.unix.3': '公司网络受限时,可先切换镜像源快捷项(npmmirror / 腾讯云 / 自定义)。',
|
|
568
|
+
|
|
569
|
+
// Sessions panel
|
|
570
|
+
'sessions.loading': '加载中...',
|
|
571
|
+
'sessions.sourceTitle': '会话来源',
|
|
572
|
+
'sessions.refresh': '刷新会话',
|
|
573
|
+
'sessions.refreshing': '刷新中...',
|
|
574
|
+
'sessions.allPaths': '全部路径',
|
|
575
|
+
'sessions.source.codex': 'Codex',
|
|
576
|
+
'sessions.source.claudeCode': 'Claude Code',
|
|
577
|
+
'sessions.source.gemini': 'Gemini CLI',
|
|
578
|
+
'sessions.source.codebuddy': 'CodeBuddy Code',
|
|
579
|
+
'sessions.loadingList': '会话加载中...',
|
|
580
|
+
'sessions.empty': '暂无可用会话记录',
|
|
581
|
+
'sessions.unknownTime': '未知时间',
|
|
582
|
+
|
|
583
|
+
'sessions.query.placeholder.enabled': '关键词检索(支持 Codex/Claude/Gemini/CodeBuddy,例:claude code)',
|
|
584
|
+
'sessions.query.placeholder.disabled': '当前来源暂不支持关键词检索',
|
|
585
|
+
'sessions.pin': '置顶',
|
|
586
|
+
'sessions.unpin': '取消置顶',
|
|
587
|
+
'sessions.copyResume': '复制恢复命令',
|
|
588
|
+
'sessions.preview.refresh': '刷新内容',
|
|
589
|
+
'sessions.preview.loading': '加载中...',
|
|
590
|
+
'sessions.preview.deleteHard': '直接删除',
|
|
591
|
+
'sessions.preview.moveToTrash': '移入回收站',
|
|
592
|
+
'sessions.preview.deleting': '删除中...',
|
|
593
|
+
'sessions.preview.moving': '移入中...',
|
|
594
|
+
'sessions.preview.export': '导出记录',
|
|
595
|
+
'sessions.preview.exporting': '导出中...',
|
|
596
|
+
'sessions.preview.convert': '生成派生会话',
|
|
597
|
+
'sessions.preview.converting': '生成中...',
|
|
598
|
+
'sessions.preview.convert.loadedOnly': '仅转换已加载消息',
|
|
599
|
+
'sessions.preview.importNative': '导入原生目录',
|
|
600
|
+
'sessions.preview.importingNative': '导入中...',
|
|
601
|
+
'sessions.preview.importNative.unsupported': '不支持此操作',
|
|
602
|
+
'sessions.preview.importNative.confirmTitle': '覆盖原生会话文件?',
|
|
603
|
+
'sessions.preview.importNative.confirmMessage': '原生会话文件已存在,覆盖后会替换目标工具原生目录中的同名会话。',
|
|
604
|
+
'sessions.preview.importNative.confirmText': '覆盖',
|
|
605
|
+
'sessions.preview.importNative.cancelled': '已取消导入',
|
|
606
|
+
'sessions.preview.importNative.conflict': '原生会话已存在',
|
|
607
|
+
'sessions.preview.importNative.invalidSource': '会话来源无效',
|
|
608
|
+
'sessions.preview.importNative.fileNotFound': '未找到会话文件',
|
|
609
|
+
'sessions.preview.importNative.nativePathUnavailable': '无法解析原生会话路径',
|
|
610
|
+
'sessions.preview.importNative.success': '已导入原生目录',
|
|
611
|
+
'sessions.preview.importNative.failed': '导入失败',
|
|
612
|
+
'sessions.preview.importNative.failedWithReason': '导入原生目录失败:{reason}',
|
|
613
|
+
'sessions.preview.copyLink': '复制链接',
|
|
614
|
+
'sessions.preview.copyPath': '复制路径',
|
|
615
|
+
'sessions.preview.loadingBody': '正在加载会话内容...',
|
|
616
|
+
'sessions.preview.emptyMsgs': '当前会话暂无可展示消息',
|
|
617
|
+
'sessions.preview.rendering': '正在渲染会话内容...',
|
|
618
|
+
'sessions.preview.rerender': '重新渲染',
|
|
619
|
+
'sessions.preview.preparing': '正在准备会话内容...',
|
|
620
|
+
'sessions.preview.clipped': '仅展示最近 {count} 条消息。',
|
|
621
|
+
'sessions.preview.shownCount': '已显示 {shown} / {total} 条',
|
|
622
|
+
'sessions.preview.loadMore': '加载更多(剩余 {remain})',
|
|
623
|
+
'sessions.preview.loadingMore': '正在加载更早消息...',
|
|
624
|
+
'sessions.timeline.aria': '会话时间轴',
|
|
625
|
+
'sessions.selectHint': '请先在左侧选择一个会话',
|
|
626
|
+
'sessions.role.all': '全部角色',
|
|
627
|
+
'sessions.role.user': '仅 User',
|
|
628
|
+
'sessions.role.assistant': '仅 Assistant',
|
|
629
|
+
'sessions.role.system': '仅 System',
|
|
630
|
+
'sessions.time.all': '全部时间',
|
|
631
|
+
'sessions.time.7d': '近 7 天',
|
|
632
|
+
'sessions.time.30d': '近 30 天',
|
|
633
|
+
'sessions.time.90d': '近 90 天',
|
|
634
|
+
'sessions.sort.time': '按时间',
|
|
635
|
+
'sessions.sort.hot': '按热度',
|
|
636
|
+
'sessions.sort.hotBadge': '热',
|
|
637
|
+
'sessions.filters.copyLink': '复制筛选链接',
|
|
638
|
+
'sessions.filters.urlBuildFail': '无法生成链接',
|
|
639
|
+
'sessions.filters.source': '来源',
|
|
640
|
+
'sessions.filters.path': '路径',
|
|
641
|
+
'sessions.filters.keyword': '关键词',
|
|
642
|
+
'sessions.filters.role': '角色',
|
|
643
|
+
'sessions.filters.time': '时间',
|
|
644
|
+
'sessions.roleLabel.user': 'User',
|
|
645
|
+
'sessions.roleLabel.system': 'System',
|
|
646
|
+
'sessions.roleLabel.assistant': 'Assistant',
|
|
647
|
+
|
|
648
|
+
// Usage panel
|
|
649
|
+
'usage.overview': 'Usage 概览',
|
|
650
|
+
'usage.range.aria': 'Usage 时间范围',
|
|
651
|
+
'usage.range.7d': '近 7 天',
|
|
652
|
+
'usage.range.30d': '近 30 天',
|
|
653
|
+
'usage.compare.toggle': '对比上周期',
|
|
654
|
+
'usage.compare.prev': '上周期',
|
|
655
|
+
'usage.compare.delta': '变化',
|
|
656
|
+
'usage.refresh': '刷新统计',
|
|
657
|
+
'usage.refreshing': '刷新中...',
|
|
658
|
+
'usage.loading': '正在加载 Usage 统计...',
|
|
659
|
+
'usage.empty': '暂无可用于统计的会话数据',
|
|
660
|
+
'usage.refreshOverlay': '正在刷新…',
|
|
661
|
+
'usage.copyTitle': '点击复制:{value}',
|
|
662
|
+
'usage.copySuccess': '已复制:{label}',
|
|
663
|
+
'usage.copyFail': '复制失败',
|
|
664
|
+
'usage.copyNone': '没有可复制内容',
|
|
665
|
+
'usage.daily.title': '每天消耗',
|
|
666
|
+
'usage.daily.subtitle': '按天汇总 token 与预估费用(费用各自按最大值归一显示)。',
|
|
667
|
+
'usage.daily.note': '说明:预估费用默认不含 Claude;仅在可匹配模型单价且会话记录 input/output token 时计算。',
|
|
668
|
+
'usage.heatmap.title': '活动热力图',
|
|
669
|
+
'usage.heatmap.subtitle': '按每天会话数聚合,支持 hover 查看详细数据。',
|
|
670
|
+
'usage.heatmap.legend.less': '少',
|
|
671
|
+
'usage.heatmap.legend.more': '多',
|
|
672
|
+
'usage.heatmap.tooltip': '{date} · {sessions} 会话 · {messages} 消息 · {tokens} token',
|
|
673
|
+
'usage.heatmap.aria': '{date},{sessions} 会话',
|
|
674
|
+
'usage.hourlyHeatmap.title': '7×24 活跃热力图',
|
|
675
|
+
'usage.hourlyHeatmap.subtitle': '按星期 × 小时聚合会话分布,深色 = 高活跃。',
|
|
676
|
+
'usage.hourlyHeatmap.tooltip': '{weekday} {hour}:00 · {sessions} 会话 · {messages} 消息 · {tokens} token',
|
|
677
|
+
'usage.hourlyHeatmap.legend.less': '少',
|
|
678
|
+
'usage.hourlyHeatmap.legend.more': '多',
|
|
679
|
+
'usage.legend.tokens': 'Token',
|
|
680
|
+
'usage.legend.cost': '预估费用',
|
|
681
|
+
'usage.table.date': '日期',
|
|
682
|
+
'usage.table.sessions': '会话',
|
|
683
|
+
'usage.table.messages': '消息',
|
|
684
|
+
'usage.table.tokens': 'Token',
|
|
685
|
+
'usage.table.cost': '预估费用',
|
|
686
|
+
'usage.trend.sessions': '会话趋势',
|
|
687
|
+
'usage.trend.messages': '消息趋势',
|
|
688
|
+
'usage.trend.activeHours': '活跃时段',
|
|
689
|
+
'usage.trend.sources': '来源洞察',
|
|
690
|
+
'usage.legend.codex': 'Codex',
|
|
691
|
+
'usage.legend.claude': 'Claude',
|
|
692
|
+
'usage.trend.sessions.codexTitle': 'Codex {count}',
|
|
693
|
+
'usage.trend.sessions.claudeTitle': 'Claude {count}',
|
|
694
|
+
'usage.trend.messages.barTitle': '{count} 条消息',
|
|
695
|
+
'usage.hour.title': '{hour}:00 · {count} 次会话',
|
|
696
|
+
'usage.source.row': '{sessions} 会话 · {messages} 消息 · 均值 {avg}',
|
|
697
|
+
'usage.summary.sessions': '总会话数',
|
|
698
|
+
'usage.summary.messages': '总消息数',
|
|
699
|
+
'usage.summary.tokens': '总 Token 数',
|
|
700
|
+
'usage.summary.contextWindow': '总上下文数',
|
|
701
|
+
'usage.summary.estimatedCost': '预估费用 · {range}',
|
|
702
|
+
'usage.estimatedCost.note.excludesClaudePrefix': '暂不含 Claude,',
|
|
703
|
+
'usage.estimatedCost.method.configured': '按已配置单价估算',
|
|
704
|
+
'usage.estimatedCost.method.catalog': '按公开模型目录估算',
|
|
705
|
+
'usage.estimatedCost.method.configuredAndCatalog': '按已配置单价 + 公开模型目录估算',
|
|
706
|
+
'usage.estimatedCost.detail.estimate': '{prefix}{method},估算 {estimate},覆盖 {covered}/{total} 个会话,约 {percent}% token',
|
|
707
|
+
'usage.estimatedCost.detail.missing': '{prefix}缺少可匹配的模型单价或 token 拆分。请先补 models.cost,或确认会话已记录 input/output token。',
|
|
708
|
+
'usage.summary.activeDuration': '活跃时长',
|
|
709
|
+
'usage.summary.activeDuration.title': '累计会话跨度 {value}',
|
|
710
|
+
'usage.summary.totalDuration': '总时长',
|
|
711
|
+
'usage.summary.totalDuration.title': '整体时间跨度 {value}',
|
|
712
|
+
'usage.summary.activeDays': '活跃天数',
|
|
713
|
+
'usage.summary.avgMessagesPerSession': '平均每会话消息',
|
|
714
|
+
'usage.summary.busiestDay': '最忙日',
|
|
715
|
+
'usage.summary.busiestHour': '高峰时段',
|
|
716
|
+
'usage.currentSession.title': '当前会话',
|
|
717
|
+
'usage.currentSession.apiDuration': 'API时长',
|
|
718
|
+
'usage.currentSession.totalDuration': '总时长',
|
|
719
|
+
'usage.currentSession.tokens': 'Token',
|
|
720
|
+
'usage.range.kicker.all': '全部',
|
|
721
|
+
'usage.range.kicker.30d': '近 30 天',
|
|
722
|
+
'usage.range.kicker.7d': '近 7 天',
|
|
723
|
+
'usage.copyTokenDay': '已复制:Token({day})',
|
|
724
|
+
'usage.copyCostDay': '已复制:预估费用({day})',
|
|
725
|
+
'usage.dayDetail.title': '{day} 详情',
|
|
726
|
+
'usage.dayDetail.subtitle': '选择日期可快速查看当天构成。',
|
|
727
|
+
'usage.dayDetail.pick': '选择日期',
|
|
728
|
+
'usage.dayDetail.empty': '请选择一个日期以查看当天构成。',
|
|
729
|
+
'usage.dayDetail.clear': '清除',
|
|
730
|
+
'usage.dayDetail.topSessions': 'Top 会话',
|
|
731
|
+
'usage.dayDetail.topModels': 'Top 模型',
|
|
732
|
+
'usage.models.title': '使用模型',
|
|
733
|
+
'usage.models.subtitle': '只列真实落盘的 model 名。',
|
|
734
|
+
'usage.models.kicker': '已识别 {modeled}/{total}',
|
|
735
|
+
'usage.models.count': '模型数',
|
|
736
|
+
'usage.models.coverage': '会话覆盖率',
|
|
737
|
+
'usage.models.missing': '缺 model',
|
|
738
|
+
'usage.models.noneTitle': '当前范围没读到模型名',
|
|
739
|
+
'usage.models.noneBody': '已扫描 {total} 个会话,但原始记录里没有可识别的 model 字段。',
|
|
740
|
+
'usage.models.providerOnly': '其中 {count} 个旧会话只写了 provider。',
|
|
741
|
+
'usage.models.missingNote.providerOnly': '另有 {count} 个会话没写模型名,未计入列表。',
|
|
742
|
+
'usage.models.missingNote': '另有 {count} 个会话缺少 model,未计入列表。',
|
|
743
|
+
'usage.models.missingListTitle': '仍缺模型名的会话',
|
|
744
|
+
'usage.models.chipTitle': '{model} · {sessions} 会话 · {messages} 消息{tokens}',
|
|
745
|
+
'usage.models.meta': '{sessions} 会话 · {messages} 消息{tokens}',
|
|
746
|
+
'usage.weekday.title': '工作日分布',
|
|
747
|
+
'usage.paths.title': '高频路径',
|
|
748
|
+
'usage.paths.empty': '暂无路径数据',
|
|
749
|
+
'usage.paths.count': '{count} 次',
|
|
750
|
+
'usage.paths.meta': '{messages} 消息{recent}',
|
|
751
|
+
'usage.paths.recent': ' · 最近 {label}',
|
|
752
|
+
'usage.recent.title': '近期活跃会话',
|
|
753
|
+
'usage.sessions.empty': '暂无会话数据',
|
|
754
|
+
'usage.sessions.messages': '{count} 消息',
|
|
755
|
+
'usage.sessions.topDensity': '消息密度最高',
|
|
756
|
+
|
|
757
|
+
// Config panel (Codex)
|
|
758
|
+
'config.addProvider': '新增提供商',
|
|
759
|
+
'toolConfig.allow': '允许写入',
|
|
760
|
+
'toolConfig.viewOnly': '只读模式',
|
|
761
|
+
'toolConfig.enableWrite': '打开写入开关',
|
|
762
|
+
'toolConfig.allowToast': '写入开关已打开',
|
|
763
|
+
'toolConfig.viewOnlyToast': '已切回只读模式',
|
|
764
|
+
'toolConfig.saveFailed': '保存写入开关失败',
|
|
765
|
+
'toolConfig.confirmTitle': '确认打开写入权限',
|
|
766
|
+
'toolConfig.confirmAllow': '打开写入',
|
|
767
|
+
'toolConfig.codex.title': 'Codex 提供商写入',
|
|
768
|
+
'toolConfig.codex.desc': '默认只读展示 Codex 提供商;打开后才允许修改 ~/.codex 配置。',
|
|
769
|
+
'toolConfig.codex.lockedTitle': 'Codex 提供商当前为只读',
|
|
770
|
+
'toolConfig.codex.lockedDesc': '这里不会写入 Codex 账号配置。要添加、切换、编辑或删除提供商,请先打开本 tab 的写入开关。',
|
|
771
|
+
'toolConfig.codex.confirmMessage': '打开后,Codex tab 内的提供商操作会写入 ~/.codex/config.toml、认证或模型相关配置。',
|
|
772
|
+
'toolConfig.claude.title': 'Claude 提供商写入',
|
|
773
|
+
'toolConfig.claude.desc': '默认只读展示 Claude 提供商;打开后才允许写入 Claude settings。',
|
|
774
|
+
'toolConfig.claude.lockedTitle': 'Claude 提供商当前为只读',
|
|
775
|
+
'toolConfig.claude.lockedDesc': '这里不会写入 Claude 配置。要添加、应用、编辑或删除提供商,请先打开本 tab 的写入开关。',
|
|
776
|
+
'toolConfig.claude.confirmMessage': '打开后,Claude tab 内的应用操作会写入 ~/.claude/settings.json 等 Claude 配置。',
|
|
777
|
+
'config.providerTemplate.title': '预设供应商',
|
|
778
|
+
'config.models': '模型',
|
|
779
|
+
'config.modelLoading': '加载中...',
|
|
780
|
+
'config.models.unlimited': '当前无模型列表,可手填。',
|
|
781
|
+
'config.models.error': '模型列表获取失败,可手填。',
|
|
782
|
+
'config.models.notInList.codex': '当前模型不在列表,可手填或改模板。',
|
|
783
|
+
'config.models.notInList.other': '当前模型不在列表,可手填。',
|
|
784
|
+
'config.template.editFirst': '先改模板,再应用。',
|
|
785
|
+
'config.template.bridgeCodexOnly': '{hint} 模板仅限 Codex 编辑。',
|
|
786
|
+
'config.localBridge.enabledCount': '已启用 {enabled}/{total}',
|
|
787
|
+
'config.template.openEditor': '打开模板编辑器',
|
|
788
|
+
'modal.configTemplate.title': 'Config 模板编辑器(手动确认应用)',
|
|
789
|
+
'modal.configTemplate.placeholder': '在这里编辑 config.toml 模板内容',
|
|
790
|
+
'config.serviceTier': '服务档',
|
|
791
|
+
'config.serviceTier.fast': 'fast(默认)',
|
|
792
|
+
'config.serviceTier.standard': 'standard',
|
|
793
|
+
'config.serviceTier.hint': '仅 fast 写入 {field}。',
|
|
794
|
+
'config.reasoningEffort': '推理强度',
|
|
795
|
+
'config.reasoningEffort.medium': 'medium(默认)',
|
|
796
|
+
'config.reasoningEffort.hint': '控制推理深度;high 更深。',
|
|
797
|
+
'config.contextBudget': '压缩阈值',
|
|
798
|
+
'config.reset': '重置',
|
|
799
|
+
'config.example': '例如: {value}',
|
|
800
|
+
'config.contextWindow.hint': '上下文上限,默认 190000。',
|
|
801
|
+
'config.autoCompact.hint': '自动压缩阈值,默认 185000。',
|
|
802
|
+
'config.agents.open': '打开 AGENTS.md',
|
|
803
|
+
'modal.agents.title.default': 'AGENTS.md 编辑器',
|
|
804
|
+
'modal.agents.title.claudeMd': 'CLAUDE.md 编辑器',
|
|
805
|
+
'modal.agents.title.openclaw': 'OpenClaw AGENTS.md 编辑器',
|
|
806
|
+
'modal.agents.hint.default': '保存后会写入目标 AGENTS.md(与 config.toml 同级)。',
|
|
807
|
+
'modal.agents.hint.claudeMd': '保存后会写入 ~/.claude/CLAUDE.md。',
|
|
808
|
+
'modal.agents.contentLabel.claudeMd': 'CLAUDE.md 内容',
|
|
809
|
+
'modal.agents.placeholder.claudeMd': '在这里编辑 CLAUDE.md 内容',
|
|
810
|
+
'modal.agents.hint.openclaw': '保存后会写入 OpenClaw Workspace 下的 AGENTS.md。',
|
|
811
|
+
'modal.agents.title.openclawWorkspaceFile': 'OpenClaw 工作区文件: {fileName}',
|
|
812
|
+
'modal.agents.hint.openclawWorkspaceFile': '保存后会写入 OpenClaw Workspace 下的 {fileName}。',
|
|
813
|
+
'config.url.unset': '未设 URL',
|
|
814
|
+
'config.model.unset': '未设置模型',
|
|
815
|
+
'config.badge.system': '系统',
|
|
816
|
+
'config.availabilityTest': '可用性测试',
|
|
817
|
+
'config.availabilityTestAria': '测试 {name} 可用性',
|
|
818
|
+
'config.health.title': '配置健康检查',
|
|
819
|
+
'config.health.run': '运行检查',
|
|
820
|
+
'config.health.running': '检查中...',
|
|
821
|
+
'config.health.hint': '会批量探测所有提供商可用性,并刷新延迟显示。',
|
|
822
|
+
'config.health.progress': '已完成 {done}/{total} · 失败 {failed}',
|
|
823
|
+
'config.health.ok': '检查通过',
|
|
824
|
+
'config.health.fail': '检查未通过',
|
|
825
|
+
'config.health.issues': '{count} 项问题',
|
|
826
|
+
'config.shareCommand': '分享命令',
|
|
827
|
+
'config.shareDisabled': '不可分享',
|
|
828
|
+
'config.shareCommand.aria': '分享导入命令',
|
|
829
|
+
'config.provider.edit.aria': '编辑提供商:{name}',
|
|
830
|
+
'config.provider.delete.aria': '删除提供商:{name}',
|
|
831
|
+
'config.provider.clone': '克隆',
|
|
832
|
+
'config.provider.clone.aria': '克隆提供商:{name}',
|
|
833
|
+
'app.loadingConfig': '加载配置中...',
|
|
834
|
+
'common.current': '当前 {value}',
|
|
835
|
+
'common.notSelected': '未选择',
|
|
836
|
+
'common.readFromEditor': '从编辑器读取',
|
|
837
|
+
'common.writeToEditor': '写入编辑器',
|
|
838
|
+
'sessions.sourceLabel': '来源:{value}',
|
|
839
|
+
'usage.rangeLabel': '范围:{value}',
|
|
840
|
+
'sessions.source.all': '全部',
|
|
841
|
+
'usage.range.all': '全部',
|
|
842
|
+
'usage.range.7d.short': '近 7 天',
|
|
843
|
+
'usage.range.30d.short': '近 30 天',
|
|
844
|
+
'orchestration.queueStats': '队列 {running} 运行中 · {queued} 等待中',
|
|
845
|
+
'orchestration.hero.kicker': '任务编排',
|
|
846
|
+
'orchestration.hero.title': '把需求拆成可执行步骤',
|
|
847
|
+
'orchestration.hero.subtitle': '先写目标,再预览计划,再执行。',
|
|
848
|
+
'orchestration.draft.reset': '重置草稿',
|
|
849
|
+
'orchestration.summary.aria': '任务编排概览',
|
|
850
|
+
'orchestration.summary.running': '运行中',
|
|
851
|
+
'orchestration.summary.queued': '排队中',
|
|
852
|
+
'orchestration.summary.runs': '运行记录',
|
|
853
|
+
'orchestration.readiness.target.label': '目标',
|
|
854
|
+
'orchestration.readiness.target.done': '已写目标',
|
|
855
|
+
'orchestration.readiness.target.missing': '还没写目标',
|
|
856
|
+
'orchestration.readiness.engine.label': '执行策略',
|
|
857
|
+
'orchestration.readiness.engine.codex': '使用 Codex 规划节点',
|
|
858
|
+
'orchestration.readiness.workflow.done': '已选 {count} 个 Workflow',
|
|
859
|
+
'orchestration.readiness.workflow.missing': '还没选 Workflow ID',
|
|
860
|
+
'orchestration.readiness.scope.label': '边界',
|
|
861
|
+
'orchestration.readiness.scope.done': '已补充说明',
|
|
862
|
+
'orchestration.readiness.scope.writeHint': '建议补说明后再写入',
|
|
863
|
+
'orchestration.readiness.scope.readonlyHint': '当前是只读,可直接试',
|
|
864
|
+
'orchestration.readiness.preview.label': '预览',
|
|
865
|
+
'orchestration.readiness.preview.missing': '还没生成计划',
|
|
866
|
+
'orchestration.readiness.preview.blocked': '有 {count} 个阻塞项',
|
|
867
|
+
'orchestration.readiness.preview.ready': '计划可用,{count} 个节点',
|
|
868
|
+
'orchestration.readiness.empty.title': '先写目标',
|
|
869
|
+
'orchestration.readiness.empty.summary': '先把想完成的结果写清楚,再让编排器拆节点。',
|
|
870
|
+
'orchestration.readiness.workflow.title': '缺少 Workflow',
|
|
871
|
+
'orchestration.readiness.workflow.summary': '你已经选了 Workflow 模式,但还没指定可复用流程。',
|
|
872
|
+
'orchestration.readiness.preview.title': '建议先预览',
|
|
873
|
+
'orchestration.readiness.preview.summary': '草稿已成形,先生成一次计划,确认节点和依赖再执行。',
|
|
874
|
+
'orchestration.readiness.blocked.title': '预览有阻塞',
|
|
875
|
+
'orchestration.readiness.blocked.summary': '当前计划里还有 {count} 个阻塞项,先处理它们。',
|
|
876
|
+
'orchestration.readiness.warn.title': '可以执行,但有提醒',
|
|
877
|
+
'orchestration.readiness.warn.summary': '计划已生成,但还有 {count} 条提醒值得先看一眼。',
|
|
878
|
+
'orchestration.readiness.dryRun.title': '适合先预演',
|
|
879
|
+
'orchestration.readiness.dryRun.summary': '现在可以安全地跑一次仅预演,先看结果再决定是否真实执行。',
|
|
880
|
+
'orchestration.readiness.ready.title': '可以执行',
|
|
881
|
+
'orchestration.readiness.ready.withFollowUps': '主目标和收尾动作都已具备,可以直接执行或入队。',
|
|
882
|
+
'orchestration.readiness.ready.summary': '主目标已经够清楚了,可以直接执行或入队。',
|
|
883
|
+
'orchestration.step1.title': '先把结果写清楚',
|
|
884
|
+
'orchestration.step1.subtitle': '只写会影响执行的内容。',
|
|
885
|
+
'orchestration.templates.title': '快捷示例',
|
|
886
|
+
'orchestration.templates.reviewFix.label': '修 review + 回归',
|
|
887
|
+
'orchestration.templates.reviewFix.target': '修复当前 PR review 评论,并补对应回归测试',
|
|
888
|
+
'orchestration.templates.reviewFix.notes': '不要改动无关模块;需要给出验证结果',
|
|
889
|
+
'orchestration.templates.reviewFix.followUps': '继续处理新增 review 评论\n最后更新 PR 摘要',
|
|
890
|
+
'orchestration.templates.planOnly.label': '只做排查规划',
|
|
891
|
+
'orchestration.templates.planOnly.target': '先排查问题根因并给出执行计划,不直接修改代码',
|
|
892
|
+
'orchestration.templates.planOnly.notes': '优先定位根因、影响范围和风险点',
|
|
893
|
+
'orchestration.templates.workflowBatch.label': 'Workflow 批处理',
|
|
894
|
+
'orchestration.templates.workflowBatch.target': '用 Workflow 跑一组固定检查并整理结果',
|
|
895
|
+
'orchestration.templates.workflowBatch.workflowIds': 'diagnose-config\nsafe-provider-switch',
|
|
896
|
+
'orchestration.templates.workflowBatch.notes': '输出统一结论,避免重复描述',
|
|
897
|
+
'orchestration.fields.target': '目标',
|
|
898
|
+
'orchestration.fields.target.placeholder': '例如:修复当前 PR review 评论,并补对应回归测试;不要改无关模块',
|
|
899
|
+
'orchestration.fields.target.hint': '一句话写清结果、边界和验收标准就够了。',
|
|
900
|
+
'orchestration.engine.codex': 'Codex',
|
|
901
|
+
'orchestration.engine.workflow': 'Workflow',
|
|
902
|
+
'orchestration.runMode.write': '写入',
|
|
903
|
+
'orchestration.runMode.readOnly': '只读',
|
|
904
|
+
'orchestration.runMode.dryRun': '仅预演',
|
|
905
|
+
'orchestration.pills.hasTitle': '标题已设',
|
|
906
|
+
'orchestration.pills.workflowCount': 'Workflow {count}',
|
|
907
|
+
'orchestration.pills.planNodes': '计划 {count} 节点',
|
|
908
|
+
'orchestration.step2.title': '选择执行方式',
|
|
909
|
+
'orchestration.step2.subtitle': '常用项默认展开,其余放高级设置。',
|
|
910
|
+
'orchestration.fields.engine': '引擎',
|
|
911
|
+
'orchestration.fields.runMode': '运行模式',
|
|
912
|
+
'orchestration.advanced.title': '高级设置',
|
|
913
|
+
'orchestration.fields.title': '标题',
|
|
914
|
+
'orchestration.fields.title.placeholder': '可选,默认从目标自动提取',
|
|
915
|
+
'orchestration.fields.notes': '说明',
|
|
916
|
+
'orchestration.fields.notes.placeholder': '例如:不要重写现有架构,只做增量实现',
|
|
917
|
+
'orchestration.fields.notes.hint': '补边界、禁区、风格要求或验证要求。',
|
|
918
|
+
'orchestration.fields.followUps': '后续动作(每行一条)',
|
|
919
|
+
'orchestration.fields.followUps.placeholder': '例如:\n继续处理 review 评论\n最后补回归测试',
|
|
920
|
+
'orchestration.fields.concurrency': '并发',
|
|
921
|
+
'orchestration.fields.concurrency.hint': '复杂任务先从 1~2 开始更稳。',
|
|
922
|
+
'orchestration.fields.autoFixRounds': '自动修复',
|
|
923
|
+
'orchestration.fields.autoFixRounds.hint': '失败后自动再试几轮。',
|
|
924
|
+
'orchestration.fields.workflowIds': 'Workflow ID(每行一条)',
|
|
925
|
+
'orchestration.fields.workflowIds.placeholder': '例如:\ndiagnose-config\nsafe-provider-switch',
|
|
926
|
+
'orchestration.fields.workflowIds.hint': '仅 Workflow 模式需要。当前本地可用 {count} 个。',
|
|
927
|
+
'orchestration.workflow.stepCount': '{count} 步',
|
|
928
|
+
'orchestration.step3.title': '先预览,再执行',
|
|
929
|
+
'orchestration.step3.subtitle': '先确认计划,再决定立即执行还是入队。',
|
|
930
|
+
'orchestration.actions.planning': '规划中...',
|
|
931
|
+
'orchestration.actions.previewOnly': '仅预览',
|
|
932
|
+
'orchestration.actions.preparing': '准备中...',
|
|
933
|
+
'orchestration.actions.generatePlan': '生成计划',
|
|
934
|
+
'orchestration.actions.planAndRun': '计划并执行',
|
|
935
|
+
'orchestration.actions.processing': '处理中...',
|
|
936
|
+
'orchestration.actions.queueAndStart': '入队并开始',
|
|
937
|
+
'orchestration.actions.caption': '“计划并执行”会在必要时自动刷新计划;批量任务用“入队并开始”。',
|
|
938
|
+
'orchestration.stage.title': '有内容时再展开工作区',
|
|
939
|
+
'orchestration.stage.subtitle': '先写目标,再预览计划。',
|
|
940
|
+
'orchestration.stage.pill.target': '写目标',
|
|
941
|
+
'orchestration.stage.pill.preview': '预览',
|
|
942
|
+
'orchestration.stage.pill.run': '执行或入队',
|
|
943
|
+
'orchestration.plan.title': '计划预览',
|
|
944
|
+
'orchestration.plan.subtitle': '先确认节点、波次和依赖。',
|
|
945
|
+
'orchestration.plan.summary.nodes': '节点数',
|
|
946
|
+
'orchestration.plan.summary.waves': '波次',
|
|
947
|
+
'orchestration.plan.summary.engine': '引擎',
|
|
948
|
+
'orchestration.plan.node.write': 'write',
|
|
949
|
+
'orchestration.plan.node.readOnly': 'read-only',
|
|
950
|
+
'orchestration.labels.dependencies': '依赖:',
|
|
951
|
+
'orchestration.labels.error': '错误:',
|
|
952
|
+
'orchestration.workbench.title': '执行工作台',
|
|
953
|
+
'orchestration.workbench.subtitle': '有内容时才展开。',
|
|
954
|
+
'orchestration.queue.start': '开始队列',
|
|
955
|
+
'orchestration.queue.starting': '启动中...',
|
|
956
|
+
'orchestration.workbench.tabs.aria': '任务编排工作台视图',
|
|
957
|
+
'orchestration.workbench.tabs.queue': '队列 {count}',
|
|
958
|
+
'orchestration.workbench.tabs.runs': '运行记录 {count}',
|
|
959
|
+
'orchestration.workbench.tabs.detail': '运行详情',
|
|
960
|
+
'orchestration.queue.empty.title': '当前没有排队任务',
|
|
961
|
+
'orchestration.queue.empty.subtitle': '批量任务可先入队,再启动队列。',
|
|
962
|
+
'orchestration.runs.empty.title': '还没有运行记录',
|
|
963
|
+
'orchestration.runs.empty.subtitle': '执行后会显示最近运行记录。',
|
|
964
|
+
'orchestration.detail.refresh': '刷新详情',
|
|
965
|
+
'orchestration.detail.retry': '重试',
|
|
966
|
+
'orchestration.detail.retrying': '重试中...',
|
|
967
|
+
'orchestration.detail.empty.title': '选择一条运行记录查看详情',
|
|
968
|
+
'orchestration.detail.empty.subtitle': '这里会显示节点状态、摘要和日志。',
|
|
969
|
+
'orchestration.detail.summary.status': '状态',
|
|
970
|
+
'orchestration.detail.summary.duration': '耗时',
|
|
971
|
+
'orchestration.detail.summary.nodes': '节点数',
|
|
972
|
+
'orchestration.detail.summary.summary': '摘要',
|
|
973
|
+
'orchestration.detail.node.meta': '{id} · attempts {attempts} · auto-fix {autoFix}',
|
|
974
|
+
'skills.localLabel': '{target} / 本地 Skills',
|
|
975
|
+
'skills.counts': '已装 {installed} · 可导入 {importable}',
|
|
976
|
+
|
|
977
|
+
// Sidebar status labels (compact)
|
|
978
|
+
'status.currentSource': '当前来源',
|
|
979
|
+
'status.sessionCount': '会话数',
|
|
980
|
+
'status.range': '统计范围',
|
|
981
|
+
'status.totalSessions': '总会话数',
|
|
982
|
+
'status.totalMessages': '总消息数',
|
|
983
|
+
'status.engine': '引擎',
|
|
984
|
+
'status.concurrency': '并发度',
|
|
985
|
+
'status.running': '运行中',
|
|
986
|
+
'status.queued': '排队中',
|
|
987
|
+
'status.runs': '历史 Runs',
|
|
988
|
+
'status.currentTarget': '当前目标',
|
|
989
|
+
'status.localSkills': '本地 Skills',
|
|
990
|
+
'status.importable': '可导入',
|
|
991
|
+
'status.importableDirect': '可直接导入',
|
|
992
|
+
'status.pm': '包管理器',
|
|
993
|
+
'status.action': '当前操作',
|
|
994
|
+
'status.registry': '镜像',
|
|
995
|
+
'status.claudeConfig': 'Claude 配置',
|
|
996
|
+
'status.claudeModel': 'Claude 模型',
|
|
997
|
+
'status.openclawConfig': 'OpenClaw 配置',
|
|
998
|
+
'status.workspaceFile': '工作区文件',
|
|
999
|
+
'status.configMode': '配置模式',
|
|
1000
|
+
'status.currentProvider': '当前 Provider',
|
|
1001
|
+
'status.currentModel': '当前模型',
|
|
1002
|
+
'status.quickSwitchProvider': '快速切换提供商',
|
|
1003
|
+
'side.usage.meta': '本地统计 / 趋势',
|
|
1004
|
+
'side.orchestration.meta': '计划 / 队列 / Runs',
|
|
1005
|
+
|
|
1006
|
+
// Settings panel
|
|
1007
|
+
'settings.tab.general': '通用',
|
|
1008
|
+
'settings.tab.data': '数据',
|
|
1009
|
+
'settings.tabs.aria': '设置分类',
|
|
1010
|
+
'settings.quickSettings.title': '快捷设置',
|
|
1011
|
+
'settings.language.sideLabel': '语言:{language}',
|
|
1012
|
+
'settings.language.title': '语言',
|
|
1013
|
+
'settings.language.meta': '选择 Web UI 的显示语言',
|
|
1014
|
+
'settings.language.label': '界面语言',
|
|
1015
|
+
'settings.language.hint': '语言偏好会保存在当前浏览器。',
|
|
1016
|
+
'settings.sharePrefix.title': '分享命令前缀',
|
|
1017
|
+
'settings.sharePrefix.meta': '影响 Web UI 里“复制分享命令”的前缀',
|
|
1018
|
+
'settings.sharePrefix.label': '前缀',
|
|
1019
|
+
'settings.sharePrefix.hint': '默认走项目内 npm start,也可切到全局 codexmate。该设置会缓存到浏览器本地。',
|
|
1020
|
+
'settings.backup.title': '数据备份',
|
|
1021
|
+
'settings.backup.meta': '导出 / 导入 Claude 与 Codex 配置',
|
|
1022
|
+
'settings.claude.title': 'Claude 配置',
|
|
1023
|
+
'settings.claude.meta': '备份 / 导入 ~/.claude',
|
|
1024
|
+
'settings.codex.title': 'Codex 配置',
|
|
1025
|
+
'settings.codex.meta': '备份 / 导入 ~/.codex',
|
|
1026
|
+
'settings.backup.progress': '备份中 {percent}%',
|
|
1027
|
+
'settings.backup.oneClickClaude': '一键备份 ~/.claude',
|
|
1028
|
+
'settings.backup.importClaude': '导入 ~/.claude 备份',
|
|
1029
|
+
'settings.backup.oneClickCodex': '一键备份 ~/.codex',
|
|
1030
|
+
'settings.backup.importCodex': '导入 ~/.codex 备份',
|
|
1031
|
+
'settings.importing': '导入中...',
|
|
1032
|
+
|
|
1033
|
+
'settings.trashConfig.title': '回收站配置',
|
|
1034
|
+
'settings.trashConfig.meta': '回收站开关与自动清理天数',
|
|
1035
|
+
'settings.deleteBehavior.title': '会话删除行为',
|
|
1036
|
+
'settings.deleteBehavior.meta': '决定“删除”是否先进入回收站',
|
|
1037
|
+
'settings.deleteBehavior.toggle': '删除会话时先移入回收站',
|
|
1038
|
+
'settings.deleteBehavior.hint': '默认开启。关闭后,会话浏览里的删除会直接永久删除,不再进入回收站。',
|
|
1039
|
+
|
|
1040
|
+
'settings.trash.title': '回收站',
|
|
1041
|
+
'settings.trash.meta': '已删除会话(可恢复/彻底删除)',
|
|
1042
|
+
'settings.trash.refresh': '刷新列表',
|
|
1043
|
+
'settings.trash.refreshing': '刷新中...',
|
|
1044
|
+
'settings.trash.clear': '清空回收站',
|
|
1045
|
+
'settings.trash.clearing': '清空中...',
|
|
1046
|
+
'settings.trash.loading': '正在加载回收站...',
|
|
1047
|
+
'settings.trash.empty': '回收站为空',
|
|
1048
|
+
'settings.trash.emptyHint': '保留期 {days} 天内没有已删除会话。',
|
|
1049
|
+
'settings.trash.retry': '回收站列表加载失败,请刷新重试',
|
|
1050
|
+
'settings.trash.restore': '恢复',
|
|
1051
|
+
'settings.trash.restoring': '恢复中...',
|
|
1052
|
+
'settings.trash.purge': '彻底删除',
|
|
1053
|
+
'settings.trash.purging': '删除中...',
|
|
1054
|
+
'settings.trash.workspace': '工作区',
|
|
1055
|
+
'settings.trash.originalFile': '原文件',
|
|
1056
|
+
'settings.trash.loadMore': '加载更多(剩余 {count} 项)',
|
|
1057
|
+
'settings.trash.retention': '自动清理',
|
|
1058
|
+
'settings.trash.retentionMeta': '超过保留天数的回收站记录将自动清除',
|
|
1059
|
+
'settings.trash.retentionLabel': '保留天数',
|
|
1060
|
+
'settings.trash.retentionUnit': '天',
|
|
1061
|
+
'settings.trash.retentionHint': '范围 1-365 天,默认 30 天。每次加载回收站时自动清理过期记录。',
|
|
1062
|
+
|
|
1063
|
+
'settings.webhook.title': 'Webhook',
|
|
1064
|
+
'settings.webhook.meta': '发送事件通知到外部服务',
|
|
1065
|
+
'settings.webhook.enabled': '已启用',
|
|
1066
|
+
'settings.webhook.disabled': '未启用',
|
|
1067
|
+
'settings.webhook.enable': '启用',
|
|
1068
|
+
'settings.webhook.edit': '编辑',
|
|
1069
|
+
'settings.webhook.configure': '配置',
|
|
1070
|
+
'settings.webhook.modalTitle': 'Webhook 设置',
|
|
1071
|
+
'settings.webhook.enabledLabel': '状态',
|
|
1072
|
+
'settings.webhook.enableToggle': '启用 Webhook',
|
|
1073
|
+
'settings.webhook.urlLabel': 'Webhook URL',
|
|
1074
|
+
'settings.webhook.eventsLabel': '事件',
|
|
1075
|
+
'settings.templateConfirm.title': '配置模板二次确认',
|
|
1076
|
+
'settings.templateConfirm.meta': '降低误写入风险',
|
|
1077
|
+
'settings.templateConfirm.toggle': '应用模板前先预览差异(两步:确认 → 应用)',
|
|
1078
|
+
'settings.templateConfirm.hint': '开启后:先展示差异预览,再确认写入。',
|
|
1079
|
+
|
|
1080
|
+
'settings.reset.title': '配置重置',
|
|
1081
|
+
'settings.reset.meta': '谨慎操作',
|
|
1082
|
+
'settings.reset.hint': '会先备份 config.toml,再写入默认配置。',
|
|
1083
|
+
'settings.reset.button': '重装配置',
|
|
1084
|
+
'settings.reset.loading': '重装中...',
|
|
1085
|
+
|
|
1086
|
+
// Market (Skills)
|
|
1087
|
+
'market.title': 'Skills 概览',
|
|
1088
|
+
'market.subtitle': '切换目标并查看本地 Skills。',
|
|
1089
|
+
'market.refresh': '刷新概览',
|
|
1090
|
+
'market.refreshing': '刷新中...',
|
|
1091
|
+
'market.openManager': '打开 Skills 管理',
|
|
1092
|
+
'market.target.aria': '选择 Skills 安装目标',
|
|
1093
|
+
'market.summary.target': '安装目标',
|
|
1094
|
+
'market.summary.total': '本地总数',
|
|
1095
|
+
'market.summary.configured': '含 SKILL.md',
|
|
1096
|
+
'market.summary.missing': '缺少 SKILL.md',
|
|
1097
|
+
'market.summary.importable': '可导入',
|
|
1098
|
+
'market.summary.importableDirect': '可直接导入',
|
|
1099
|
+
'market.root.fallback': '默认目录',
|
|
1100
|
+
|
|
1101
|
+
'market.installed.title': '已安装 Skills',
|
|
1102
|
+
'market.installed.note': '仅显示前 6 项。',
|
|
1103
|
+
'market.local.refresh': '刷新本地',
|
|
1104
|
+
'market.local.refreshing': '刷新中...',
|
|
1105
|
+
'market.local.loading': '正在加载本地 Skills...',
|
|
1106
|
+
'market.local.empty': '当前暂无已安装 skill。',
|
|
1107
|
+
'market.pill.verified': '已验证',
|
|
1108
|
+
'market.pill.missingSkill': '待补 SKILL.md',
|
|
1109
|
+
|
|
1110
|
+
'market.import.title': '可导入来源',
|
|
1111
|
+
'market.import.note': '扫描并导入到当前 {target}。',
|
|
1112
|
+
'market.import.scan': '扫描来源',
|
|
1113
|
+
'market.import.scanning': '扫描中...',
|
|
1114
|
+
'market.import.loading': '正在扫描可导入 skill...',
|
|
1115
|
+
'market.import.empty': '暂未扫描到可导入 skill。',
|
|
1116
|
+
'market.pill.importableDirect': '可直接导入',
|
|
1117
|
+
'market.pill.importMissing': '缺少 SKILL.md',
|
|
1118
|
+
|
|
1119
|
+
'market.actions.title': '分发入口',
|
|
1120
|
+
'market.actions.note': '操作均作用于当前安装目标。',
|
|
1121
|
+
'market.action.manage.title': '本地 Skills 管理',
|
|
1122
|
+
'market.action.manage.copy': '管理当前 {target} 的已装 skills',
|
|
1123
|
+
'market.action.crossImport.title': '跨应用导入',
|
|
1124
|
+
'market.action.crossImport.copy': '导入到当前 {target}',
|
|
1125
|
+
'market.action.zipImport.title': 'ZIP 导入',
|
|
1126
|
+
'market.action.zipImport.copy': '从 ZIP 导入到当前目标',
|
|
1127
|
+
|
|
1128
|
+
'market.help.title': '操作说明',
|
|
1129
|
+
'market.help.target.title': '目标切换',
|
|
1130
|
+
'market.help.target.copy': '当前操作写入 {target} 目录。',
|
|
1131
|
+
'market.help.crossImport.title': '跨应用导入',
|
|
1132
|
+
'market.help.crossImport.copy': '从其他宿主导入未托管 skill。',
|
|
1133
|
+
'market.help.zipImport.title': 'ZIP 导入',
|
|
1134
|
+
'market.help.zipImport.copy': '从 ZIP 导入本地 skill。',
|
|
1135
|
+
|
|
1136
|
+
// Claude config panel
|
|
1137
|
+
'claude.addProvider': '添加提供商',
|
|
1138
|
+
'claude.applyDefault': '默认应用到 ~/.claude/settings.json。',
|
|
1139
|
+
'claude.presetProviders': '预设供应商',
|
|
1140
|
+
'claude.customConfig': '自定义配置',
|
|
1141
|
+
'claude.model': '模型',
|
|
1142
|
+
'claude.model.placeholder': '例如: claude-3-7-sonnet',
|
|
1143
|
+
'claude.model.hint': '模型修改后会自动保存并应用到当前配置。',
|
|
1144
|
+
'claude.health.title': '配置健康检查',
|
|
1145
|
+
'claude.health.run': '运行检查',
|
|
1146
|
+
'claude.health.running': '检查中...',
|
|
1147
|
+
'claude.health.hint': '会批量探测所有 Claude 配置可用性,并刷新延迟显示。',
|
|
1148
|
+
'claude.health.progress': '已完成 {done}/{total} · 失败 {failed}',
|
|
1149
|
+
'claude.md.title': 'CLAUDE.md',
|
|
1150
|
+
'claude.md.open': '打开 CLAUDE.md',
|
|
1151
|
+
'claude.md.hint': '读写 ~/.claude/CLAUDE.md。',
|
|
1152
|
+
'claude.model.unset': '未设置模型',
|
|
1153
|
+
'claude.configured': '已配置',
|
|
1154
|
+
'claude.notConfigured': '未配置',
|
|
1155
|
+
'claude.action.edit': '编辑',
|
|
1156
|
+
'claude.action.delete': '删除',
|
|
1157
|
+
'claude.action.shareDisabled': '分享导入命令',
|
|
1158
|
+
'claude.action.editAria': '编辑 Claude 配置:{name}',
|
|
1159
|
+
'claude.action.deleteAria': '删除 Claude 配置:{name}',
|
|
1160
|
+
'claude.action.clone': '克隆',
|
|
1161
|
+
'claude.action.cloneAria': '克隆 Claude 配置:{name}',
|
|
1162
|
+
'claude.localBridge.poolTitle': '轮询池',
|
|
1163
|
+
'claude.localBridge.poolHint': '勾选参与负载均衡的提供商',
|
|
1164
|
+
'claude.localBridge.noProviders': '暂无可用提供商,请先添加直连提供商',
|
|
1165
|
+
'claude.localBridge.disabled': '未启用',
|
|
1166
|
+
'claude.localBridge.enabled': '已启用',
|
|
1167
|
+
|
|
1168
|
+
// OpenClaw config panel
|
|
1169
|
+
'openclaw.applyHint': '写入 ~/.openclaw/openclaw.json,支持 JSON5。',
|
|
1170
|
+
'openclaw.workspace.title': 'OpenClaw 工作区',
|
|
1171
|
+
'openclaw.configs.hint': '选择常用配置,或进入编辑器维护完整 JSON5。',
|
|
1172
|
+
'openclaw.agents.hint': '读写 Workspace 的 AGENTS.md,默认路径 ~/.openclaw/workspace/AGENTS.md。',
|
|
1173
|
+
'openclaw.agents.open': '打开 AGENTS.md',
|
|
1174
|
+
'openclaw.workspaceFile': '工作区文件',
|
|
1175
|
+
'openclaw.workspace.placeholder': '例如: SOUL.md',
|
|
1176
|
+
'openclaw.workspace.hint': '仅限 Workspace 内的 .md 文件。',
|
|
1177
|
+
'openclaw.workspace.open': '打开工作区文件',
|
|
1178
|
+
'openclaw.configured': '已配置',
|
|
1179
|
+
'openclaw.notConfigured': '未配置',
|
|
1180
|
+
'openclaw.action.edit': '编辑',
|
|
1181
|
+
'openclaw.action.delete': '删除',
|
|
1182
|
+
'modal.openclaw.quick.subtitle': '按 3 步完成:填 Provider 和模型,写入编辑器,保存并应用。',
|
|
1183
|
+
'modal.openclaw.quick.step2': '点击写入编辑器',
|
|
1184
|
+
'modal.openclaw.structured.writeHint': '写入编辑器会重排 JSON,注释可能丢失。',
|
|
1185
|
+
'openclaw.action.applyAria': '应用 OpenClaw 配置:{name}',
|
|
1186
|
+
'openclaw.action.editAria': '编辑 OpenClaw 配置:{name}',
|
|
1187
|
+
'openclaw.action.deleteAria': '删除 OpenClaw 配置:{name}'
|
|
1188
|
+
});
|
|
1189
|
+
|
|
1190
|
+
export { zh };
|