@dsh-workbench/shared 1.0.0 → 1.1.0

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.
@@ -139,14 +139,14 @@ export declare const dictionaries: {
139
139
  readonly 'panels.market.update': "更新";
140
140
  readonly 'panels.market.swapSlow': "还没换上:可能网慢或没装上。再点一次「更新」;一直这样就把 dsh 重启一遍。";
141
141
  readonly 'panels.market.removeSlow': "还没卸掉:可能网慢或卸载没走完。等一下再看;一直这样就把 dsh 重启一遍。";
142
- readonly 'panels.market.updateNoChange': "没换成:点下去是 {from},跑完盘上还是这一版;源上最新是 {latest}。";
142
+ readonly 'panels.market.updateNoChange': "更新失败:还是 {from};源上最新是 {latest},可以再点一次「更新」。";
143
143
  readonly 'panels.market.updateUnknownVersion': "(问不到)";
144
- readonly 'panels.market.updateGone': "没换成:更新跑完盘上读不到这个模块。";
145
- readonly 'panels.market.updateRestored': "没换成:盘上已经读不到新版本,已把 {version} 装回去。";
144
+ readonly 'panels.market.updateGone': "更新失败:更新后找不到这个模块。";
145
+ readonly 'panels.market.updateRestored': "更新失败:更新后找不到新版本,已把 {version} 装回去。";
146
146
  readonly 'panels.market.updateBehind': "装上了 {installed},但源上最新是 {latest} —— 没更到最新,可以再点一次。";
147
- readonly 'panels.market.selfUpdateFailed': "自更新没成:{reason}";
147
+ readonly 'panels.market.selfUpdateFailed': "工作台更新失败:{reason}";
148
148
  readonly 'panels.market.selfUpdateUnknown': "外部进程没留下原因(看 ~/.dsh/workbench/self-update.log)";
149
- readonly 'panels.market.selfUpdateRolledBack': "没换成,已回滚到 {version}。";
149
+ readonly 'panels.market.selfUpdateRolledBack': "工作台更新失败,已回滚到 {version}。";
150
150
  readonly 'panels.market.uninstall': "卸载";
151
151
  readonly 'panels.market.uninstallLabel': "卸载 {name}";
152
152
  readonly 'panels.market.installing': "正在安装…";
@@ -168,9 +168,27 @@ export declare const dictionaries: {
168
168
  readonly 'panels.market.empty': "暂无可用模块";
169
169
  readonly 'panels.market.sectionPlugins': "已安装 opencli 插件";
170
170
  readonly 'panels.market.moduleOutdated': "有新版";
171
+ readonly 'panels.market.updateNeedsWorkbench': "新版本要先把工作台升级才能用";
172
+ readonly 'panels.market.updateIncompatible': "新版本和当前的工作台不匹配,暂时不能更新";
171
173
  readonly 'panels.market.moduleRefused': "模块版本与工作台不匹配,暂时无法使用";
172
174
  readonly 'panels.market.moduleRestartHint': "重启后生效";
173
175
  readonly 'panels.market.pendingRestart': "重启后生效";
176
+ readonly 'panels.market.pendingFollowUp': "旧数据待迁移";
177
+ readonly 'panels.market.migrationHint': "旧会话和项目还没搬过来";
178
+ readonly 'panels.market.migrateAction': "迁移旧数据";
179
+ readonly 'panels.market.migrating': "正在迁移…";
180
+ readonly 'panels.market.migrateConfirmTitle': "迁移旧数据?";
181
+ readonly 'panels.market.migrateConfirmDetail': "先退出 dsh web / Desktop。迁移只补缺、不覆盖;旧目录保留。";
182
+ readonly 'panels.market.migrateConfirmAck': "我已经退出 dsh web / Desktop";
183
+ readonly 'panels.market.migrateConfirmYes': "开始迁移";
184
+ readonly 'panels.market.migrateDone': "迁移完成:补了 {added} 个项目;重启工作台和 dsh web 后出现。";
185
+ readonly 'panels.market.dismissFollowUp': "不再提醒";
186
+ readonly 'panels.market.dismissing': "正在收起…";
187
+ readonly 'panels.market.dismissFollowUpTitle': "不再提醒这件事?";
188
+ readonly 'panels.market.dismissFollowUpDetail': "提示会从模块市场收起,但不会迁移或删除旧数据。旧会话和项目仍留在旧目录,新版本里看不到;以后需要时仍可运行 dsh-workbench migrate。";
189
+ readonly 'panels.market.dismissFollowUpAck': "我知道旧数据不会自动出现";
190
+ readonly 'panels.market.dismissFollowUpYes': "不再提醒";
191
+ readonly 'panels.market.dismissed': "已不再提醒;旧数据仍在旧目录,需要时仍可运行 dsh-workbench migrate。";
174
192
  readonly 'panels.market.workbenchName': "工作台";
175
193
  readonly 'panels.market.pluginBroken': "这份插件装坏了:认不出它是什么。可以先卸载,再让 agent 按包名重装一次。";
176
194
  readonly 'panels.market.restartNeeded': "新版装好了,重启一次才生效。";
@@ -254,7 +272,7 @@ export declare const dictionaries: {
254
272
  readonly 'panels.market.add.exampleTitle': "示例";
255
273
  readonly 'panels.market.add.exampleFill': "填入示例";
256
274
  readonly 'panels.market.add.registryLabel': "安装源";
257
- readonly 'panels.market.add.registryProfile': "这个 profile 配的源";
275
+ readonly 'panels.market.add.registryProfile': "这份工作台配的源";
258
276
  readonly 'panels.market.add.registryPnpm': "pnpm 自己配的源";
259
277
  readonly 'panels.market.add.check': "预检";
260
278
  readonly 'panels.market.add.checking': "正在预检…";
@@ -275,12 +293,16 @@ export declare const dictionaries: {
275
293
  readonly 'panels.market.tabs': "模块市场的两个面";
276
294
  readonly 'panels.tab.discover': "发现";
277
295
  readonly 'panels.discover.loading': "正在读取索引";
296
+ readonly 'panels.discover.slowHint': "读取较慢:如有授权提示,先完成它,或换一个索引源。";
278
297
  readonly 'panels.discover.lead': "从索引源浏览模块;装上就能用。";
279
298
  readonly 'panels.discover.addSource': "添加";
280
299
  readonly 'panels.discover.addingSource': "正在添加…";
281
300
  readonly 'panels.discover.addFirstSource': "添加索引源";
282
301
  readonly 'panels.discover.removeSource': "移除";
283
302
  readonly 'panels.discover.removeSourceNamed': "移除 {url}";
303
+ readonly 'panels.discover.useSource': "使用";
304
+ readonly 'panels.discover.useSourceNamed': "使用 {label}";
305
+ readonly 'panels.discover.sourceCurrent': "当前使用";
284
306
  readonly 'panels.discover.refresh': "刷新";
285
307
  readonly 'panels.discover.search': "搜索模块";
286
308
  readonly 'panels.discover.all': "全部";
@@ -292,8 +314,8 @@ export declare const dictionaries: {
292
314
  readonly 'panels.discover.sourcePlaceholder': "https://example.com/index.json 或 git@git.example.com:wb/market.git";
293
315
  readonly 'panels.discover.sourceRef': "分支";
294
316
  readonly 'panels.discover.sourcePath': "索引文件";
295
- readonly 'panels.discover.sourceLocal': "本地 clone(可选)";
296
- readonly 'panels.discover.sourceLocalHint': "不填就 clone 到 ~/.dsh/workbench/market-index/。";
317
+ readonly 'panels.discover.sourceLocal': "本地副本目录(可选)";
318
+ readonly 'panels.discover.sourceLocalHint': "不填就放到 ~/.dsh/workbench/market-index/。";
297
319
  readonly 'panels.discover.save': "保存并刷新";
298
320
  readonly 'panels.discover.cancel': "取消";
299
321
  readonly 'panels.discover.retry': "重试";
@@ -306,9 +328,9 @@ export declare const dictionaries: {
306
328
  readonly 'panels.discover.missingIndex': "仓库里还没有索引文件 {path}";
307
329
  readonly 'panels.discover.initTitle': "把这个仓库初始化成模块市场索引?";
308
330
  readonly 'panels.discover.initCta': "初始化成市场索引";
309
- readonly 'panels.discover.initWhat': "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把产物提交到 packages/<unit>/。仓库的写权限归它的所有者。";
331
+ readonly 'panels.discover.initWhat': "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 packages/<unit>/。仓库的写权限归它的所有者。";
310
332
  readonly 'panels.discover.initBranch': "分支";
311
- readonly 'panels.discover.initBranchHint': "索引与产物都发到这个分支;空仓库会新建它。";
333
+ readonly 'panels.discover.initBranchHint': "索引和打包文件都发到这个分支;空仓库会新建它。";
312
334
  readonly 'panels.discover.initBranchBad': "分支名只能用字母、数字、点、下划线、斜杠或短横线";
313
335
  readonly 'panels.discover.initOk': "初始化";
314
336
  readonly 'panels.discover.initBusy': "正在初始化…";
@@ -412,11 +434,11 @@ export declare const dictionaries: {
412
434
  readonly 'panels.market.add.doneApplied': "装好了,已经生效。";
413
435
  readonly 'panels.market.add.doneRestart': "装好了,重启一次才生效。";
414
436
  readonly 'panels.market.add.restartWhy': "为什么这一版要重启:{reason}";
415
- readonly 'panels.market.add.restartWhy.no-hmr': "这个配置只在启动时应用改动(没开热更新)";
437
+ readonly 'panels.market.add.restartWhy.no-hmr': "这份配置只在启动时读一次,改了得重启";
416
438
  readonly 'panels.market.add.restartWhy.package-moved': "某个已经装着的包换到了新的目录,或者这一下换掉了 dsh 自己提供的那份";
417
439
  readonly 'panels.market.add.restartWhy.host-module': "这一下动到了 dsh 自己加载的模块";
418
- readonly 'panels.market.add.restartWhy.unmanaged-plugin': "这一下动到了插件清单之外正在跑的插件";
419
- readonly 'panels.market.add.restartWhy.module-comparison': "dsh 没能把已加载的插件与盘上的文件对上";
440
+ readonly 'panels.market.add.restartWhy.unmanaged-plugin': "这一下动到了没登记过、正在运行的插件";
441
+ readonly 'panels.market.add.restartWhy.module-comparison': "dsh 没法确认正在跑的插件就是这台机器上装好的那一份";
420
442
  readonly 'panels.market.add.cancelled': "已取消。";
421
443
  readonly 'panels.market.add.failed': "没成功:{reason}";
422
444
  readonly 'panels.market.add.removed': "已经移除了。";
@@ -426,10 +448,10 @@ export declare const dictionaries: {
426
448
  readonly 'panels.market.add.removedRestart': "卸掉了,重启一次才彻底生效。";
427
449
  readonly 'panels.market.add.remove': "移除它";
428
450
  readonly 'panels.market.add.problem.invalidSpec': "这个写法不认:不能是空的,也不能以横杠开头。";
429
- readonly 'panels.market.add.problem.alreadyInstalled': "这个包已经在 profile 里了(要换版本请带上 @版本)。";
451
+ readonly 'panels.market.add.problem.alreadyInstalled': "这个包已经在这份工作台里了(要换版本请带上 @版本)。";
430
452
  readonly 'panels.market.add.problem.notFound': "源上没有这个包。换个包名或版本再试。";
431
453
  readonly 'panels.market.add.problem.notAPackage': "这个位置没有包。选一个包含 package.json 的目录。";
432
- readonly 'panels.market.add.problem.notABundle': "它是一个 npm 包,但不是 dsh 插件包(缺 dsh 的接线声明)。";
454
+ readonly 'panels.market.add.problem.notABundle': "它是一个 npm 包,但不是 dsh 插件包(dsh 在里面找不到该加载什么)。";
433
455
  readonly 'panels.market.add.problem.network': "源连不上。检查网络后重试。";
434
456
  readonly 'panels.market.add.problem.unknown': "预检没通过(原因未知)。展开安装详情看原始输出,或重试。";
435
457
  readonly 'panels.market.add.reason.invalidSpec': "写法不认";
@@ -437,7 +459,7 @@ export declare const dictionaries: {
437
459
  readonly 'panels.market.add.reason.notBundle': "它不是一个 dsh 插件包";
438
460
  readonly 'panels.market.add.reason.notRemovable': "它是安装自带的组合包,不能卸";
439
461
  readonly 'panels.market.add.reason.bundleInUse': "还有东西在用它,卸不掉";
440
- readonly 'panels.market.add.reason.stopProfile': "这个配置没开热更新,得先停掉进程";
462
+ readonly 'panels.market.add.reason.stopProfile': "这份配置改了要重启,得先停掉工作台";
441
463
  readonly 'panels.market.add.reason.staleApproval': "要允许的安装脚本已经变了,重新来一次";
442
464
  readonly 'panels.market.add.reason.operationError': "pnpm 执行出错(详情见安装输出)";
443
465
  readonly 'panels.market.add.reason.buildBlocked': "pnpm 拦下了安装脚本";
@@ -460,15 +482,15 @@ export declare const dictionaries: {
460
482
  readonly 'blocker.market.open': "去模块市场";
461
483
  readonly 'blocker.login.title': "需要登录 {platform}";
462
484
  readonly 'blocker.login.titleGeneric': "需要登录";
463
- readonly 'blocker.login.hint': "工作台用你的浏览器登录态;登录一次就行,之后不用再登。";
485
+ readonly 'blocker.login.hint': "工作台借你浏览器里的登录状态;登录一次就行,之后不用再登。";
464
486
  readonly 'blocker.login.go': "去登录";
465
487
  readonly 'blocker.login.manual': "在终端执行该插件的登录命令(见插件的文档),按提示完成登录后重试。";
466
488
  readonly 'blocker.forbidden.title': "没有权限访问 {platform}";
467
489
  readonly 'blocker.forbidden.titleGeneric': "没有权限";
468
490
  readonly 'blocker.forbidden.hint': "账号已登录,但没有这个项目/仓库的权限;申请之后再试。";
469
491
  readonly 'blocker.forbidden.open': "打开权限页";
470
- readonly 'blocker.timeout.hint': "无头浏览器可能没起来,重试一次通常就好。";
471
- readonly 'blocker.exec.hint': "确认 opencli 已安装且在 PATH 里(which opencli)。";
492
+ readonly 'blocker.timeout.hint': "后台浏览器没起来,重试一次通常就好。";
493
+ readonly 'blocker.exec.hint': "确认 opencli 已经装好、在终端里能直接运行(which opencli)。";
472
494
  readonly 'blocker.unknown.title': "出了点问题";
473
495
  readonly 'panels.reading': "正在读取面板配置…";
474
496
  readonly 'panels.cardBroken': "这个模块起不来:{unit}({reason})";
@@ -482,7 +504,7 @@ export declare const dictionaries: {
482
504
  readonly 'env.elapsed': "已等待 {seconds} 秒";
483
505
  readonly 'env.stepFailed.install': "装不上";
484
506
  readonly 'env.stepFailed.path': "装了但还找不到";
485
- readonly 'env.stepFailed.shell': "执行通道不可用";
507
+ readonly 'env.stepFailed.shell': "连不上命令行";
486
508
  readonly 'env.toolchain.ok': "正常";
487
509
  readonly 'env.toolchain.warn': "还没完全准备好";
488
510
  readonly 'env.opencli.ok': "已就绪";
@@ -499,10 +521,10 @@ export declare const dictionaries: {
499
521
  readonly 'env.fix.title': "怎么解决";
500
522
  readonly 'env.fix.why': "工作台用它自己那份后台工具(与你在终端里那套分开装,互不影响),这台机器上还没装好它。";
501
523
  readonly 'env.fix.whyPath': "后台工具装上了,但当前环境还找不到它 —— 通常是 PATH 或终端会话的问题。";
502
- readonly 'env.fix.whyShell': "工作台拿不到执行命令的通道,所以取不了数据 —— 这一步你装不了,需要有人处理后台环境。";
524
+ readonly 'env.fix.whyShell': "工作台拿不到这台机器的命令行,所以取不了数据 —— 这一步你装不了,需要有人处理后台环境。";
503
525
  readonly 'env.fix.step': "在终端里运行下面这条命令,装好之后点「重试」:";
504
526
  readonly 'env.fix.stepPath': "新开一个终端窗口(或确认 npm 的全局 bin 目录在 PATH 里),然后点「重试」。";
505
- readonly 'env.fix.stepShell': "重启一次工作台(或 dsh);如果反复出现,说明执行通道没配好。";
527
+ readonly 'env.fix.stepShell': "重启一次工作台(或 dsh);如果反复出现,说明工作台还是拿不到命令行。";
506
528
  readonly 'env.fix.permission': "权限不够:在命令前加 sudo 重跑,或先把 npm 的全局目录配到你的用户目录。";
507
529
  readonly 'env.fix.network': "网络不通:检查网络或代理设置后重试。";
508
530
  readonly 'env.fix.details': "详细输出(排障用)";
@@ -531,9 +553,9 @@ export declare const dictionaries: {
531
553
  readonly 'env.warm.done': "已就绪({n} 个站点)";
532
554
  readonly 'env.warm.short': "这次没提前连上 —— 不影响用,第一次取数会自己补";
533
555
  readonly 'env.unit.failed': "这个模块起不来";
534
- readonly 'env.unit.failedHint': "它自己装配时报了错,别的模块不受影响。";
535
- readonly 'env.unit.unchecked': "检测不了:拿不到执行通道";
536
- readonly 'env.unit.uncheckedHint': "不是这个模块的问题,是执行通道不可用 —— 重启一次工作台再试。";
556
+ readonly 'env.unit.failedHint': "它自己启动时报了错,别的模块不受影响。";
557
+ readonly 'env.unit.unchecked': "检测不了:拿不到命令行";
558
+ readonly 'env.unit.uncheckedHint': "不是这个模块的问题,是工作台拿不到命令行 —— 重启一次工作台再试。";
537
559
  readonly 'adapterSet.not-configured': "没配置适配器集合,用默认的。";
538
560
  readonly 'adapterSet.no-profile': "找不到 profile,没法加载适配器集合;先用默认的。";
539
561
  readonly 'adapterSet.malformed': "适配器集合要写包名(如 @acme/adapters-set);先用默认的。";
@@ -576,7 +598,7 @@ export declare const dictionaries: {
576
598
  readonly 'sidebarEdition.official': "官方";
577
599
  readonly 'sidebarEdition.officialHint': "跟 dsh 官方一致、最稳:搜索、视图选项、显示更多、归档、添加工作区都齐,升级也不等我们适配。想省心就选它。";
578
600
  readonly 'sidebarEdition.custom': "自定义";
579
- readonly 'sidebarEdition.customHint': "为多项目工作流做的:项目下拉一屏一个项目,会话按最近更新排,两端淡出、跑马灯、工坊 DIY 新会话。项目多时更顺手。";
601
+ readonly 'sidebarEdition.customHint': "为多项目工作流做的:项目下拉一屏一个项目,会话按最近更新排,名字自动滚动、两侧渐隐,工坊 DIY 新会话。项目多时更顺手。";
580
602
  readonly 'sidebarEdition.saving': "配置中…";
581
603
  readonly 'sidebarEdition.reloadRequired': "已写入。刷新页面后生效(不用重启工作台)。";
582
604
  readonly 'sidebarEdition.reload': "刷新页面";
@@ -605,25 +627,25 @@ export declare const dictionaries: {
605
627
  readonly 'record.act.halt': "停";
606
628
  readonly 'approval.record.site': "站点";
607
629
  readonly 'approval.record.what': "录制功能";
608
- readonly 'approval.record.lands': "落点";
630
+ readonly 'approval.record.lands': "保存到";
609
631
  readonly 'approval.record.noUrl': "没给站点地址(这次会被当场拒)";
610
632
  readonly 'approval.record.oneAction': "一次操作";
611
633
  readonly 'approval.record.noSwitch': "录完不会替你切回来(左栏底部会亮一条状态)";
612
- readonly 'approval.longTask.what': "要停的那一趟";
613
- readonly 'approval.longTask.signal': "停了只是让工作台发出中断信号 —— 平台侧那趟活儿的收尾看模块自己";
634
+ readonly 'approval.longTask.what': "要停的那次任务";
635
+ readonly 'approval.longTask.signal': "停了只是让工作台发出中断信号 —— 这次任务怎么收尾由模块自己负责";
614
636
  readonly 'approval.publish.module': "模块";
615
637
  readonly 'approval.publish.target': "目标";
616
638
  readonly 'approval.publish.version': "版本";
617
639
  readonly 'approval.publish.author': "作者";
618
- readonly 'approval.publish.authorMissing': "未署名(提交用本机 git 身份)";
640
+ readonly 'approval.publish.authorMissing': "未署名";
619
641
  readonly 'approval.publish.registry': "源";
620
642
  readonly 'approval.publish.repo': "仓库";
621
643
  readonly 'approval.publish.branch': "分支";
622
644
  readonly 'approval.publish.defaultBranch': "默认分支";
623
- readonly 'approval.publish.artifacts': "产物";
645
+ readonly 'approval.publish.artifacts': "打包文件";
624
646
  readonly 'approval.publish.index': "索引";
625
647
  readonly 'approval.publish.commits': "提交";
626
- readonly 'approval.publish.twoCommits': "产物 + market.json 两个 commit,一次 push";
648
+ readonly 'approval.publish.twoCommits': "打包文件 + market.json 两次提交,一次推送";
627
649
  readonly 'approval.publish.reading': "读取中…";
628
650
  readonly 'approval.publish.changelog': "{version} 的更新日志";
629
651
  readonly 'approval.publish.changelogMissing': "这一版还没有更新日志({version}),发布会被拦下";
@@ -689,7 +711,7 @@ export declare const dictionaries: {
689
711
  readonly 'configSync.emptyProviders': "工作台还没有任何模型供应商 —— 去「配置同步」从某个 profile 把模型供应商那几行同步过来,或自己去「模型」里配。";
690
712
  readonly 'configSync.failed': "同步没成功,再试一次。";
691
713
  };
692
- en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.unsupported" | "env.unit.unsupportedHint" | "env.unit.degraded" | "env.unit.degradedHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "profileCreate.nav" | "profileCreate.lead" | "profileCreate.name" | "profileCreate.nameHint" | "profileCreate.source" | "profileCreate.current" | "profileCreate.copy" | "profileCreate.settings" | "profileCreate.create" | "profileCreate.creating" | "profileCreate.created" | "profileCreate.command" | "profileCreate.readFailed" | "profileCreate.retry" | "profileCreate.reading" | "profileCreate.noProfiles" | "profileCreate.failed" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedUnverified" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "env.need.bin.missing" | "env.need.bin.hint" | "env.need.extension.missing" | "env.need.extension.outdated" | "env.need.extension.hint" | "env.need.lib.missing" | "env.need.lib.outdated" | "env.need.lib.unsatisfied" | "env.need.lib.hint" | "env.need.env.missing" | "env.need.env.hint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.longTask" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.longTask.one" | "project.attention.longTask.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.unchecked" | "panels.dep.missing" | "panels.dep.outdated" | "panels.dep.degraded" | "panels.dep.unsupported" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.uncheckedHint" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.removeSlow" | "panels.market.updateNoChange" | "panels.market.updateUnknownVersion" | "panels.market.updateGone" | "panels.market.updateRestored" | "panels.market.updateBehind" | "panels.market.selfUpdateFailed" | "panels.market.selfUpdateUnknown" | "panels.market.selfUpdateRolledBack" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.needBinary" | "panels.market.needLib" | "panels.market.localMark" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.moduleRefused" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.workbenchName" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.tabInstalled" | "panels.market.tabs" | "panels.tab.discover" | "panels.discover.loading" | "panels.discover.lead" | "panels.discover.addSource" | "panels.discover.addingSource" | "panels.discover.addFirstSource" | "panels.discover.removeSource" | "panels.discover.removeSourceNamed" | "panels.discover.refresh" | "panels.discover.search" | "panels.discover.all" | "panels.discover.sourceLabel" | "panels.discover.sourceKind" | "panels.discover.sourceKindHttp" | "panels.discover.sourceKindGit" | "panels.discover.sourceUrl" | "panels.discover.sourcePlaceholder" | "panels.discover.sourceRef" | "panels.discover.sourcePath" | "panels.discover.sourceLocal" | "panels.discover.sourceLocalHint" | "panels.discover.save" | "panels.discover.cancel" | "panels.discover.retry" | "panels.discover.noSource" | "panels.discover.noSourceHint" | "panels.discover.sourcesFailed" | "panels.discover.unreadable" | "panels.discover.invalid" | "panels.discover.emptyRepo" | "panels.discover.missingIndex" | "panels.discover.initTitle" | "panels.discover.initCta" | "panels.discover.initWhat" | "panels.discover.initBranch" | "panels.discover.initBranchHint" | "panels.discover.initBranchBad" | "panels.discover.initOk" | "panels.discover.initBusy" | "panels.discover.initDone" | "panels.discover.stale" | "panels.discover.empty" | "panels.discover.noMatch" | "panels.discover.notInstalled" | "panels.discover.installed" | "panels.discover.installedVersion" | "panels.discover.update" | "panels.discover.badShell" | "panels.discover.badShellDetail" | "panels.discover.unverified" | "panels.discover.installing" | "panels.discover.installedDone" | "panels.discover.failed" | "panels.discover.expand" | "panels.discover.collapse" | "panels.discover.versionCount" | "panels.discover.sourceNpm" | "panels.discover.sourceNpmDefault" | "panels.discover.sourceGit" | "panels.discover.installVersion" | "panels.discover.confirmTitle" | "panels.discover.confirmDetail" | "panels.discover.confirmAck" | "panels.discover.confirmOk" | "panels.discover.confirmCancel" | "panels.discover.marketMenu" | "panels.discover.manageSources" | "panels.discover.sourcesTitle" | "panels.discover.sourcesIntro" | "panels.discover.sourcesLabel" | "panels.discover.sourceTrust" | "panels.discover.sourceDuplicate" | "panels.discover.sourceBadUrl" | "panels.discover.close" | "panels.discover.labelsMenu" | "panels.discover.labelsCount" | "panels.discover.tagsAll" | "panels.discover.sort" | "panels.discover.sortWith" | "panels.discover.sortRelevance" | "panels.discover.sortDefault" | "panels.discover.sortPublished" | "panels.discover.categoriesLabel" | "panels.discover.showMore" | "panels.discover.entryMeta" | "panels.discover.entryMetaAuthor" | "panels.discover.openEntry" | "panels.discover.cardInstall" | "panels.discover.cardInstalled" | "panels.discover.cardUpdate" | "panels.discover.cardBlocked" | "panels.discover.installTitle" | "panels.discover.installVersionTitle" | "panels.discover.openInstalled" | "panels.discover.noCompatibleVersion" | "panels.discover.detailBack" | "panels.discover.publishedAt" | "panels.discover.detailMarket" | "panels.discover.detailIncompatible" | "panels.discover.detailUnknown" | "panels.discover.detailSource" | "panels.discover.authorUnknown" | "panels.discover.tabOverview" | "panels.discover.tabReadme" | "panels.discover.tabChangelog" | "panels.discover.docReadme" | "panels.discover.docChangelog" | "panels.discover.docLoading" | "panels.discover.docMissing" | "panels.discover.docUnavailable" | "panels.discover.docUnknownReason" | "panels.discover.detailTabs" | "panels.discover.factPackage" | "panels.discover.factRegistry" | "panels.discover.factRepository" | "panels.discover.factCommit" | "panels.discover.factDirectory" | "panels.discover.factPublished" | "panels.discover.factAuthor" | "panels.discover.factHomepage" | "panels.discover.factCategory" | "panels.discover.factLabels" | "panels.discover.factMarket" | "panels.discover.detailVersions" | "panels.discover.versionsLabel" | "panels.discover.tagRecommended" | "panels.discover.tagPrerelease" | "panels.discover.tagInstalled" | "panels.discover.tagIncompatible" | "panels.discover.tagUnknown" | "panels.discover.selected" | "panels.discover.done" | "panels.discover.installTrust" | "panels.discover.progress" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.update" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.toolchain.ok" | "env.toolchain.warn" | "env.opencli.ok" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.hold" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.wake" | "env.wake.opening" | "env.wake.browserOpen" | "env.wake.noBrowser" | "env.wake.failed" | "env.bridge.continue" | "env.diy.ok" | "env.diy.short" | "env.diy.hold" | "env.diy.why" | "env.diy.rows" | "env.diy.noRow" | "env.diy.step" | "env.diy.continue" | "env.copyCommand" | "env.copied" | "env.step.toolchain" | "env.step.opencli" | "env.step.bridge" | "env.step.diy" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "adapterSet.not-configured" | "adapterSet.no-profile" | "adapterSet.malformed" | "adapterSet.not-resolvable" | "adapterSet.import-failed" | "adapterSet.bad-export" | "adapterSet.factory-failed" | "adapterSet.incompatible-version" | "adapterSet.missing-member" | "env.unit.hint" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "adapterSet.title" | "adapterSet.lead" | "adapterSet.active" | "adapterSet.defaults" | "adapterSet.failed" | "adapterSet.healthUnreadable" | "workbenchSettings.nav" | "workbenchSettings.lead" | "sidebarEdition.nav" | "sidebarEdition.lead" | "sidebarEdition.official" | "sidebarEdition.officialHint" | "sidebarEdition.custom" | "sidebarEdition.customHint" | "sidebarEdition.saving" | "sidebarEdition.reloadRequired" | "sidebarEdition.reload" | "sidebarEdition.failed" | "debug.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.recording.shots" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch" | "approval.longTask.what" | "approval.longTask.signal" | "approval.publish.module" | "approval.publish.target" | "approval.publish.version" | "approval.publish.author" | "approval.publish.authorMissing" | "approval.publish.registry" | "approval.publish.repo" | "approval.publish.branch" | "approval.publish.defaultBranch" | "approval.publish.artifacts" | "approval.publish.index" | "approval.publish.commits" | "approval.publish.twoCommits" | "approval.publish.reading" | "approval.publish.changelog" | "approval.publish.changelogMissing" | "approval.publish.targetAuto" | "approval.publish.targetTeam" | "approval.publish.targetPublic" | "approval.publish.targetTarball" | "approval.publish.targetGit" | "approval.publish.targetMarket" | "approval.publish.targetLocal" | "markdown.copy" | "markdown.copied" | "markdown.footnotes", string>;
714
+ en: Record<"time.now" | "time.ago" | "time.minutes" | "time.hours" | "time.days" | "blocker.retry" | "blocker.copy" | "blocker.unknown.title" | "blocker.login.go" | "blocker.login.titleGeneric" | "blocker.login.title" | "blocker.login.manual" | "blocker.login.hint" | "blocker.forbidden.open" | "blocker.forbidden.titleGeneric" | "blocker.forbidden.title" | "blocker.forbidden.hint" | "blocker.timeout.hint" | "blocker.exec.hint" | "blocker.fix.install" | "blocker.market.open" | "env.unit.failed" | "env.unit.failedHint" | "env.unit.unsupported" | "env.unit.unsupportedHint" | "env.unit.degraded" | "env.unit.degradedHint" | "env.unit.unchecked" | "env.unit.uncheckedHint" | "profileCreate.nav" | "profileCreate.lead" | "profileCreate.name" | "profileCreate.nameHint" | "profileCreate.source" | "profileCreate.current" | "profileCreate.copy" | "profileCreate.settings" | "profileCreate.create" | "profileCreate.creating" | "profileCreate.created" | "profileCreate.command" | "profileCreate.readFailed" | "profileCreate.retry" | "profileCreate.reading" | "profileCreate.noProfiles" | "profileCreate.failed" | "configSync.nav" | "configSync.lead" | "configSync.source" | "configSync.sourceBroken" | "configSync.sourceRows" | "configSync.sourceDead" | "configSync.refresh" | "configSync.loading" | "configSync.readHint" | "configSync.tag.new" | "configSync.tag.differs" | "configSync.conflictNote" | "configSync.code.lang" | "configSync.code.copy" | "configSync.code.copied" | "configSync.code.wrap" | "configSync.code.unwrap" | "configSync.code.collapse" | "configSync.code.collapseAria" | "configSync.code.expandAria" | "configSync.code.expand" | "configSync.missing" | "configSync.apply" | "configSync.applyNone" | "configSync.applying" | "configSync.applied" | "configSync.appliedUnverified" | "configSync.appliedIds" | "configSync.skippedIds" | "configSync.nothing" | "configSync.unreadable" | "configSync.noSource" | "configSync.emptyProviders" | "configSync.failed" | "env.need.bin.missing" | "env.need.bin.hint" | "env.need.extension.missing" | "env.need.extension.outdated" | "env.need.extension.hint" | "env.need.lib.missing" | "env.need.lib.outdated" | "env.need.lib.unsatisfied" | "env.need.lib.hint" | "env.need.env.missing" | "env.need.env.hint" | "brand.name" | "toggle.open" | "toggle.collapse" | "project.label" | "workspace.section" | "project.none" | "project.empty" | "project.add" | "project.add.busy" | "project.add.failed" | "project.search.label" | "project.search.placeholder" | "project.search.empty" | "project.group.workspaces" | "project.group.defaultWorkspace" | "project.group.workshop" | "project.rename.row" | "project.rename.current" | "project.rename.title" | "project.rename.description" | "project.rename.field" | "project.rename.placeholder" | "project.rename.hint" | "project.rename.save" | "project.rename.saving" | "project.rename.cancel" | "project.rename.failed" | "session.new" | "session.new.label" | "session.empty" | "session.noProject" | "session.list.label" | "session.copy" | "session.pinned" | "session.actions" | "status.idle" | "status.running" | "status.longTask" | "status.waitingApproval" | "status.planReview" | "status.waitingAnswer" | "status.compact.approval" | "status.compact.planReview" | "status.compact.answer" | "status.completed" | "status.subagentsRunning.one" | "status.subagentsRunning.other" | "project.attention.warning.one" | "project.attention.warning.other" | "project.attention.running.one" | "project.attention.running.other" | "project.attention.longTask.one" | "project.attention.longTask.other" | "project.attention.done.one" | "project.attention.done.other" | "project.attention.state.warning" | "project.attention.state.running" | "project.attention.state.done" | "hover.copied" | "time.short.minutes" | "time.short.hours" | "time.short.days" | "time.short.months" | "time.short.years" | "panels.title" | "panels.groupBoardless" | "panels.groupPlugins" | "panels.market.defaultHint" | "panels.market.defaultLabel" | "panels.market.defaultLocked" | "panels.followAll" | "panels.followAllConfirmTitle" | "panels.followAllConfirmDetail" | "panels.followAllConfirmAck" | "panels.followAllConfirmYes" | "panels.followAllConfirmNo" | "panels.enabled" | "panels.disabled" | "panels.choose" | "panels.buildModule" | "panels.failed" | "panels.dragHint" | "panels.unknownStep" | "panels.labelWithHint" | "panels.hintJoin" | "panels.dep.failed" | "panels.dep.unchecked" | "panels.dep.missing" | "panels.dep.outdated" | "panels.dep.degraded" | "panels.dep.unsupported" | "panels.tab.modules" | "panels.tab.market" | "panels.browseMarket" | "panels.noneInstalled" | "panels.noneInstalledHint" | "panels.market.installed" | "panels.market.notActive" | "panels.market.notUsable" | "panels.market.broken" | "panels.market.hasNew" | "panels.market.hasProblem" | "panels.market.missing" | "panels.market.unchecked" | "panels.market.uncheckedHint" | "panels.market.checking" | "panels.market.sectionInstalled" | "panels.market.sectionPending" | "panels.market.sectionShared" | "panels.market.sharedUsedBy" | "panels.market.listSeparator" | "panels.market.sharedMissing" | "panels.market.sharedOutdated" | "panels.market.sharedUnsatisfied" | "panels.market.sharedOk" | "panels.market.versionArrow" | "panels.market.lead" | "panels.market.install" | "panels.market.update" | "panels.market.swapSlow" | "panels.market.removeSlow" | "panels.market.updateNoChange" | "panels.market.updateUnknownVersion" | "panels.market.updateGone" | "panels.market.updateRestored" | "panels.market.updateBehind" | "panels.market.selfUpdateFailed" | "panels.market.selfUpdateUnknown" | "panels.market.selfUpdateRolledBack" | "panels.market.uninstall" | "panels.market.uninstallLabel" | "panels.market.installing" | "panels.market.updating" | "panels.market.uninstalling" | "panels.market.confirmUninstallTitle" | "panels.market.confirmUninstallDetail" | "panels.market.confirmUninstallAck" | "panels.market.confirmYes" | "panels.market.confirmNo" | "panels.market.failed" | "panels.market.needEnv" | "panels.market.needCommands" | "panels.market.needBinary" | "panels.market.needLib" | "panels.market.localMark" | "panels.market.noSource" | "panels.market.badSource" | "panels.market.empty" | "panels.market.sectionPlugins" | "panels.market.moduleOutdated" | "panels.market.updateNeedsWorkbench" | "panels.market.updateIncompatible" | "panels.market.moduleRefused" | "panels.market.moduleRestartHint" | "panels.market.pendingRestart" | "panels.market.pendingFollowUp" | "panels.market.migrationHint" | "panels.market.migrateAction" | "panels.market.migrating" | "panels.market.migrateConfirmTitle" | "panels.market.migrateConfirmDetail" | "panels.market.migrateConfirmAck" | "panels.market.migrateConfirmYes" | "panels.market.migrateDone" | "panels.market.dismissFollowUp" | "panels.market.dismissing" | "panels.market.dismissFollowUpTitle" | "panels.market.dismissFollowUpDetail" | "panels.market.dismissFollowUpAck" | "panels.market.dismissFollowUpYes" | "panels.market.dismissed" | "panels.market.workbenchName" | "panels.market.pluginBroken" | "panels.market.restartNeeded" | "panels.market.foot" | "panels.market.recheck" | "panels.market.checkUpdates" | "panels.market.checkedAt" | "panels.market.justNow" | "panels.market.minutesAgo" | "panels.market.hoursAgo" | "panels.market.add.description" | "panels.market.add.specPlaceholder" | "panels.market.add.guideToggle" | "panels.market.add.guideHide" | "panels.market.add.guideIdTitle" | "panels.market.add.guideIdExample" | "panels.market.add.guideIdHint" | "panels.market.add.guideGitTitle" | "panels.market.add.guideGitExample" | "panels.market.add.guideGitHint" | "panels.market.add.guidePathTitle" | "panels.market.add.guidePathExample" | "panels.market.add.guidePathHint" | "panels.market.add.guideExampleLabel" | "panels.market.add.guideFill" | "panels.market.add.guideSafety" | "panels.market.add.registryLegend" | "panels.market.add.registryOfficial" | "panels.market.add.registryMirror" | "panels.market.add.registryWithHost" | "panels.market.add.registryToggle" | "panels.market.add.installVersion" | "panels.market.add.registryDefault" | "panels.market.add.registryCustom" | "panels.market.add.registryCustomPlaceholder" | "panels.market.add.registryCustomHint" | "panels.market.add.registryCustomInvalid" | "panels.market.add.run" | "panels.market.add.edit" | "panels.market.add.changeRegistry" | "panels.market.add.installingTitle" | "panels.market.add.installedTitle" | "panels.market.add.failedTitle" | "panels.market.add.cancelledTitle" | "panels.market.add.failureNetworkHost" | "panels.market.add.problemInvalid" | "panels.market.add.problemInstalled" | "panels.market.add.problemNotFound" | "panels.market.add.problemNotPackage" | "panels.market.add.problemNotBundle" | "panels.market.add.problemNotWorkbenchModule" | "panels.market.add.problemNotModuleOrPlugin" | "panels.market.add.failureNotModuleOrPlugin" | "panels.market.add.installedPlugin" | "panels.market.add.pluginPreview" | "panels.market.add.pluginAlias" | "panels.market.add.problemNetwork" | "panels.market.add.problemUnknown" | "panels.market.add.failureNetwork" | "panels.market.add.failureNotFound" | "panels.market.add.failureNoMatchingVersion" | "panels.market.add.failureDiskFull" | "panels.market.add.failurePermission" | "panels.market.add.failureBuildBlocked" | "panels.market.add.failureIntegrity" | "panels.market.add.failureTimeout" | "panels.market.add.failurePnpmMissing" | "panels.market.add.failureInstalled" | "panels.market.add.failureGeneric" | "panels.market.add.approveTitle" | "panels.market.add.approveCaution" | "panels.market.add.approveRun" | "panels.market.add.restart" | "panels.market.add.tookEffect" | "panels.market.add.details" | "panels.market.add.open" | "panels.market.add.title" | "panels.market.add.intro" | "panels.market.add.specLabel" | "panels.market.add.specHint" | "panels.market.add.exampleTitle" | "panels.market.add.exampleFill" | "panels.market.add.registryLabel" | "panels.market.add.registryProfile" | "panels.market.add.registryPnpm" | "panels.market.add.check" | "panels.market.add.checking" | "panels.market.add.classifying" | "panels.market.add.change" | "panels.market.add.previewTitle" | "panels.market.add.fieldName" | "panels.market.add.fieldVersion" | "panels.market.add.fieldDescription" | "panels.market.add.fieldSource" | "panels.market.add.install" | "panels.market.add.installing" | "panels.market.add.cancel" | "panels.market.add.close" | "panels.market.add.retry" | "panels.market.add.changeSource" | "panels.market.tabInstalled" | "panels.market.tabs" | "panels.tab.discover" | "panels.discover.loading" | "panels.discover.slowHint" | "panels.discover.lead" | "panels.discover.addSource" | "panels.discover.addingSource" | "panels.discover.addFirstSource" | "panels.discover.removeSource" | "panels.discover.removeSourceNamed" | "panels.discover.useSource" | "panels.discover.useSourceNamed" | "panels.discover.sourceCurrent" | "panels.discover.refresh" | "panels.discover.search" | "panels.discover.all" | "panels.discover.sourceLabel" | "panels.discover.sourceKind" | "panels.discover.sourceKindHttp" | "panels.discover.sourceKindGit" | "panels.discover.sourceUrl" | "panels.discover.sourcePlaceholder" | "panels.discover.sourceRef" | "panels.discover.sourcePath" | "panels.discover.sourceLocal" | "panels.discover.sourceLocalHint" | "panels.discover.save" | "panels.discover.cancel" | "panels.discover.retry" | "panels.discover.noSource" | "panels.discover.noSourceHint" | "panels.discover.sourcesFailed" | "panels.discover.unreadable" | "panels.discover.invalid" | "panels.discover.emptyRepo" | "panels.discover.missingIndex" | "panels.discover.initTitle" | "panels.discover.initCta" | "panels.discover.initWhat" | "panels.discover.initBranch" | "panels.discover.initBranchHint" | "panels.discover.initBranchBad" | "panels.discover.initOk" | "panels.discover.initBusy" | "panels.discover.initDone" | "panels.discover.stale" | "panels.discover.empty" | "panels.discover.noMatch" | "panels.discover.notInstalled" | "panels.discover.installed" | "panels.discover.installedVersion" | "panels.discover.update" | "panels.discover.badShell" | "panels.discover.badShellDetail" | "panels.discover.unverified" | "panels.discover.installing" | "panels.discover.installedDone" | "panels.discover.failed" | "panels.discover.expand" | "panels.discover.collapse" | "panels.discover.versionCount" | "panels.discover.sourceNpm" | "panels.discover.sourceNpmDefault" | "panels.discover.sourceGit" | "panels.discover.installVersion" | "panels.discover.confirmTitle" | "panels.discover.confirmDetail" | "panels.discover.confirmAck" | "panels.discover.confirmOk" | "panels.discover.confirmCancel" | "panels.discover.marketMenu" | "panels.discover.manageSources" | "panels.discover.sourcesTitle" | "panels.discover.sourcesIntro" | "panels.discover.sourcesLabel" | "panels.discover.sourceTrust" | "panels.discover.sourceDuplicate" | "panels.discover.sourceBadUrl" | "panels.discover.close" | "panels.discover.labelsMenu" | "panels.discover.labelsCount" | "panels.discover.tagsAll" | "panels.discover.sort" | "panels.discover.sortWith" | "panels.discover.sortRelevance" | "panels.discover.sortDefault" | "panels.discover.sortPublished" | "panels.discover.categoriesLabel" | "panels.discover.showMore" | "panels.discover.entryMeta" | "panels.discover.entryMetaAuthor" | "panels.discover.openEntry" | "panels.discover.cardInstall" | "panels.discover.cardInstalled" | "panels.discover.cardUpdate" | "panels.discover.cardBlocked" | "panels.discover.installTitle" | "panels.discover.installVersionTitle" | "panels.discover.openInstalled" | "panels.discover.noCompatibleVersion" | "panels.discover.detailBack" | "panels.discover.publishedAt" | "panels.discover.detailMarket" | "panels.discover.detailIncompatible" | "panels.discover.detailUnknown" | "panels.discover.detailSource" | "panels.discover.authorUnknown" | "panels.discover.tabOverview" | "panels.discover.tabReadme" | "panels.discover.tabChangelog" | "panels.discover.docReadme" | "panels.discover.docChangelog" | "panels.discover.docLoading" | "panels.discover.docMissing" | "panels.discover.docUnavailable" | "panels.discover.docUnknownReason" | "panels.discover.detailTabs" | "panels.discover.factPackage" | "panels.discover.factRegistry" | "panels.discover.factRepository" | "panels.discover.factCommit" | "panels.discover.factDirectory" | "panels.discover.factPublished" | "panels.discover.factAuthor" | "panels.discover.factHomepage" | "panels.discover.factCategory" | "panels.discover.factLabels" | "panels.discover.factMarket" | "panels.discover.detailVersions" | "panels.discover.versionsLabel" | "panels.discover.tagRecommended" | "panels.discover.tagPrerelease" | "panels.discover.tagInstalled" | "panels.discover.tagIncompatible" | "panels.discover.tagUnknown" | "panels.discover.selected" | "panels.discover.done" | "panels.discover.installTrust" | "panels.discover.progress" | "panels.market.add.approveBuilds" | "panels.market.add.approveHint" | "panels.market.add.doneApplied" | "panels.market.add.doneRestart" | "panels.market.add.restartWhy" | "panels.market.add.restartWhy.no-hmr" | "panels.market.add.restartWhy.package-moved" | "panels.market.add.restartWhy.host-module" | "panels.market.add.restartWhy.unmanaged-plugin" | "panels.market.add.restartWhy.module-comparison" | "panels.market.add.cancelled" | "panels.market.add.failed" | "panels.market.add.removed" | "panels.market.add.supplyPending" | "panels.market.add.supplyFailed" | "panels.market.add.notModule" | "panels.market.add.removedRestart" | "panels.market.add.remove" | "panels.market.add.problem.invalidSpec" | "panels.market.add.problem.alreadyInstalled" | "panels.market.add.problem.notFound" | "panels.market.add.problem.notAPackage" | "panels.market.add.problem.notABundle" | "panels.market.add.problem.network" | "panels.market.add.problem.unknown" | "panels.market.add.reason.invalidSpec" | "panels.market.add.reason.incompatible" | "panels.market.add.reason.notBundle" | "panels.market.add.reason.notRemovable" | "panels.market.add.reason.bundleInUse" | "panels.market.add.reason.stopProfile" | "panels.market.add.reason.staleApproval" | "panels.market.add.reason.operationError" | "panels.market.add.reason.buildBlocked" | "panels.market.add.reason.pnpmMissing" | "panels.market.add.reason.noMatchingVersion" | "panels.market.add.reason.diskFull" | "panels.market.add.reason.permission" | "panels.market.add.reason.integrity" | "panels.market.add.reason.timeout" | "panels.market.add.reason.network" | "panels.market.add.reason.notFound" | "panels.market.add.reason.unknown" | "blocker.fix.update" | "blocker.fix.running" | "blocker.fix.failed" | "blocker.retry.running" | "panels.reading" | "panels.cardBroken" | "panels.cardRetry" | "panels.empty" | "panels.emptyHint" | "env.title" | "env.checking" | "env.installing" | "env.failed" | "env.elapsed" | "env.stepFailed.install" | "env.stepFailed.path" | "env.stepFailed.shell" | "env.toolchain.ok" | "env.toolchain.warn" | "env.opencli.ok" | "env.bridge.ok" | "env.bridge.short" | "env.bridge.why" | "env.bridge.hold" | "env.bridge.daemon" | "env.bridge.extension" | "env.bridge.extensionLink" | "env.bridge.profile" | "env.bridge.stale" | "env.bridge.unknown" | "env.fix.title" | "env.fix.why" | "env.fix.whyPath" | "env.fix.whyShell" | "env.fix.step" | "env.fix.stepPath" | "env.fix.stepShell" | "env.fix.permission" | "env.fix.network" | "env.fix.details" | "env.retry" | "env.wake" | "env.wake.opening" | "env.wake.browserOpen" | "env.wake.noBrowser" | "env.wake.failed" | "env.bridge.continue" | "env.diy.ok" | "env.diy.short" | "env.diy.hold" | "env.diy.why" | "env.diy.rows" | "env.diy.noRow" | "env.diy.step" | "env.diy.continue" | "env.copyCommand" | "env.copied" | "env.step.toolchain" | "env.step.opencli" | "env.step.bridge" | "env.step.diy" | "env.step.warm" | "env.warm.done" | "env.warm.short" | "adapterSet.not-configured" | "adapterSet.no-profile" | "adapterSet.malformed" | "adapterSet.not-resolvable" | "adapterSet.import-failed" | "adapterSet.bad-export" | "adapterSet.factory-failed" | "adapterSet.incompatible-version" | "adapterSet.missing-member" | "env.unit.hint" | "rightbar.label" | "rightbar.expand" | "rightbar.collapse" | "rightbar.column.label" | "rightbar.column.workbench" | "rightbar.column.dsh" | "rightbar.refresh" | "rightbar.refreshing" | "rightbar.updatedAt" | "rightbar.noProject" | "rightbar.openPlatform" | "error.unknown" | "board.title" | "panel.conversation" | "panels.label" | "adapterSet.title" | "adapterSet.lead" | "adapterSet.active" | "adapterSet.defaults" | "adapterSet.failed" | "adapterSet.healthUnreadable" | "workbenchSettings.nav" | "workbenchSettings.lead" | "sidebarEdition.nav" | "sidebarEdition.lead" | "sidebarEdition.official" | "sidebarEdition.officialHint" | "sidebarEdition.custom" | "sidebarEdition.customHint" | "sidebarEdition.saving" | "sidebarEdition.reloadRequired" | "sidebarEdition.reload" | "sidebarEdition.failed" | "debug.workspace" | "debug.status" | "debug.status.trouble" | "debug.stalled" | "debug.act.pause" | "debug.act.resume" | "debug.act.stop" | "debug.act.stop.ask" | "debug.card.here.title" | "debug.card.here.note" | "debug.card.away.note" | "debug.card.paused.note" | "debug.card.hidden.note" | "record.waiting" | "record.waiting.note" | "record.recording" | "record.recording.note" | "record.recording.shots" | "record.finished" | "record.finished.note" | "record.act.cancel" | "record.act.halt" | "approval.record.site" | "approval.record.what" | "approval.record.lands" | "approval.record.noUrl" | "approval.record.oneAction" | "approval.record.noSwitch" | "approval.longTask.what" | "approval.longTask.signal" | "approval.publish.module" | "approval.publish.target" | "approval.publish.version" | "approval.publish.author" | "approval.publish.authorMissing" | "approval.publish.registry" | "approval.publish.repo" | "approval.publish.branch" | "approval.publish.defaultBranch" | "approval.publish.artifacts" | "approval.publish.index" | "approval.publish.commits" | "approval.publish.twoCommits" | "approval.publish.reading" | "approval.publish.changelog" | "approval.publish.changelogMissing" | "approval.publish.targetAuto" | "approval.publish.targetTeam" | "approval.publish.targetPublic" | "approval.publish.targetTarball" | "approval.publish.targetGit" | "approval.publish.targetMarket" | "approval.publish.targetLocal" | "markdown.copy" | "markdown.copied" | "markdown.footnotes", string>;
693
715
  };
694
716
  /** 中文词表的键类型(从 `zh.ts` 转出):`en` 与模块词表都得覆盖同一批键。 */
695
717
  export type { WorkbenchMessages };
package/dist/i18n/zh.d.ts CHANGED
@@ -137,14 +137,14 @@ export declare const zh: {
137
137
  readonly 'panels.market.update': "更新";
138
138
  readonly 'panels.market.swapSlow': "还没换上:可能网慢或没装上。再点一次「更新」;一直这样就把 dsh 重启一遍。";
139
139
  readonly 'panels.market.removeSlow': "还没卸掉:可能网慢或卸载没走完。等一下再看;一直这样就把 dsh 重启一遍。";
140
- readonly 'panels.market.updateNoChange': "没换成:点下去是 {from},跑完盘上还是这一版;源上最新是 {latest}。";
140
+ readonly 'panels.market.updateNoChange': "更新失败:还是 {from};源上最新是 {latest},可以再点一次「更新」。";
141
141
  readonly 'panels.market.updateUnknownVersion': "(问不到)";
142
- readonly 'panels.market.updateGone': "没换成:更新跑完盘上读不到这个模块。";
143
- readonly 'panels.market.updateRestored': "没换成:盘上已经读不到新版本,已把 {version} 装回去。";
142
+ readonly 'panels.market.updateGone': "更新失败:更新后找不到这个模块。";
143
+ readonly 'panels.market.updateRestored': "更新失败:更新后找不到新版本,已把 {version} 装回去。";
144
144
  readonly 'panels.market.updateBehind': "装上了 {installed},但源上最新是 {latest} —— 没更到最新,可以再点一次。";
145
- readonly 'panels.market.selfUpdateFailed': "自更新没成:{reason}";
145
+ readonly 'panels.market.selfUpdateFailed': "工作台更新失败:{reason}";
146
146
  readonly 'panels.market.selfUpdateUnknown': "外部进程没留下原因(看 ~/.dsh/workbench/self-update.log)";
147
- readonly 'panels.market.selfUpdateRolledBack': "没换成,已回滚到 {version}。";
147
+ readonly 'panels.market.selfUpdateRolledBack': "工作台更新失败,已回滚到 {version}。";
148
148
  readonly 'panels.market.uninstall': "卸载";
149
149
  readonly 'panels.market.uninstallLabel': "卸载 {name}";
150
150
  readonly 'panels.market.installing': "正在安装…";
@@ -166,9 +166,27 @@ export declare const zh: {
166
166
  readonly 'panels.market.empty': "暂无可用模块";
167
167
  readonly 'panels.market.sectionPlugins': "已安装 opencli 插件";
168
168
  readonly 'panels.market.moduleOutdated': "有新版";
169
+ readonly 'panels.market.updateNeedsWorkbench': "新版本要先把工作台升级才能用";
170
+ readonly 'panels.market.updateIncompatible': "新版本和当前的工作台不匹配,暂时不能更新";
169
171
  readonly 'panels.market.moduleRefused': "模块版本与工作台不匹配,暂时无法使用";
170
172
  readonly 'panels.market.moduleRestartHint': "重启后生效";
171
173
  readonly 'panels.market.pendingRestart': "重启后生效";
174
+ readonly 'panels.market.pendingFollowUp': "旧数据待迁移";
175
+ readonly 'panels.market.migrationHint': "旧会话和项目还没搬过来";
176
+ readonly 'panels.market.migrateAction': "迁移旧数据";
177
+ readonly 'panels.market.migrating': "正在迁移…";
178
+ readonly 'panels.market.migrateConfirmTitle': "迁移旧数据?";
179
+ readonly 'panels.market.migrateConfirmDetail': "先退出 dsh web / Desktop。迁移只补缺、不覆盖;旧目录保留。";
180
+ readonly 'panels.market.migrateConfirmAck': "我已经退出 dsh web / Desktop";
181
+ readonly 'panels.market.migrateConfirmYes': "开始迁移";
182
+ readonly 'panels.market.migrateDone': "迁移完成:补了 {added} 个项目;重启工作台和 dsh web 后出现。";
183
+ readonly 'panels.market.dismissFollowUp': "不再提醒";
184
+ readonly 'panels.market.dismissing': "正在收起…";
185
+ readonly 'panels.market.dismissFollowUpTitle': "不再提醒这件事?";
186
+ readonly 'panels.market.dismissFollowUpDetail': "提示会从模块市场收起,但不会迁移或删除旧数据。旧会话和项目仍留在旧目录,新版本里看不到;以后需要时仍可运行 dsh-workbench migrate。";
187
+ readonly 'panels.market.dismissFollowUpAck': "我知道旧数据不会自动出现";
188
+ readonly 'panels.market.dismissFollowUpYes': "不再提醒";
189
+ readonly 'panels.market.dismissed': "已不再提醒;旧数据仍在旧目录,需要时仍可运行 dsh-workbench migrate。";
172
190
  readonly 'panels.market.workbenchName': "工作台";
173
191
  readonly 'panels.market.pluginBroken': "这份插件装坏了:认不出它是什么。可以先卸载,再让 agent 按包名重装一次。";
174
192
  readonly 'panels.market.restartNeeded': "新版装好了,重启一次才生效。";
@@ -252,7 +270,7 @@ export declare const zh: {
252
270
  readonly 'panels.market.add.exampleTitle': "示例";
253
271
  readonly 'panels.market.add.exampleFill': "填入示例";
254
272
  readonly 'panels.market.add.registryLabel': "安装源";
255
- readonly 'panels.market.add.registryProfile': "这个 profile 配的源";
273
+ readonly 'panels.market.add.registryProfile': "这份工作台配的源";
256
274
  readonly 'panels.market.add.registryPnpm': "pnpm 自己配的源";
257
275
  readonly 'panels.market.add.check': "预检";
258
276
  readonly 'panels.market.add.checking': "正在预检…";
@@ -273,12 +291,16 @@ export declare const zh: {
273
291
  readonly 'panels.market.tabs': "模块市场的两个面";
274
292
  readonly 'panels.tab.discover': "发现";
275
293
  readonly 'panels.discover.loading': "正在读取索引";
294
+ readonly 'panels.discover.slowHint': "读取较慢:如有授权提示,先完成它,或换一个索引源。";
276
295
  readonly 'panels.discover.lead': "从索引源浏览模块;装上就能用。";
277
296
  readonly 'panels.discover.addSource': "添加";
278
297
  readonly 'panels.discover.addingSource': "正在添加…";
279
298
  readonly 'panels.discover.addFirstSource': "添加索引源";
280
299
  readonly 'panels.discover.removeSource': "移除";
281
300
  readonly 'panels.discover.removeSourceNamed': "移除 {url}";
301
+ readonly 'panels.discover.useSource': "使用";
302
+ readonly 'panels.discover.useSourceNamed': "使用 {label}";
303
+ readonly 'panels.discover.sourceCurrent': "当前使用";
282
304
  readonly 'panels.discover.refresh': "刷新";
283
305
  readonly 'panels.discover.search': "搜索模块";
284
306
  readonly 'panels.discover.all': "全部";
@@ -290,8 +312,8 @@ export declare const zh: {
290
312
  readonly 'panels.discover.sourcePlaceholder': "https://example.com/index.json 或 git@git.example.com:wb/market.git";
291
313
  readonly 'panels.discover.sourceRef': "分支";
292
314
  readonly 'panels.discover.sourcePath': "索引文件";
293
- readonly 'panels.discover.sourceLocal': "本地 clone(可选)";
294
- readonly 'panels.discover.sourceLocalHint': "不填就 clone 到 ~/.dsh/workbench/market-index/。";
315
+ readonly 'panels.discover.sourceLocal': "本地副本目录(可选)";
316
+ readonly 'panels.discover.sourceLocalHint': "不填就放到 ~/.dsh/workbench/market-index/。";
295
317
  readonly 'panels.discover.save': "保存并刷新";
296
318
  readonly 'panels.discover.cancel': "取消";
297
319
  readonly 'panels.discover.retry': "重试";
@@ -304,9 +326,9 @@ export declare const zh: {
304
326
  readonly 'panels.discover.missingIndex': "仓库里还没有索引文件 {path}";
305
327
  readonly 'panels.discover.initTitle': "把这个仓库初始化成模块市场索引?";
306
328
  readonly 'panels.discover.initCta': "初始化成市场索引";
307
- readonly 'panels.discover.initWhat': "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把产物提交到 packages/<unit>/。仓库的写权限归它的所有者。";
329
+ readonly 'panels.discover.initWhat': "会在 {branch} 分支写 market.json 与 README.md,提交一次并推上去;之后从这个工作台发布的模块会把打包好的文件提交到 packages/<unit>/。仓库的写权限归它的所有者。";
308
330
  readonly 'panels.discover.initBranch': "分支";
309
- readonly 'panels.discover.initBranchHint': "索引与产物都发到这个分支;空仓库会新建它。";
331
+ readonly 'panels.discover.initBranchHint': "索引和打包文件都发到这个分支;空仓库会新建它。";
310
332
  readonly 'panels.discover.initBranchBad': "分支名只能用字母、数字、点、下划线、斜杠或短横线";
311
333
  readonly 'panels.discover.initOk': "初始化";
312
334
  readonly 'panels.discover.initBusy': "正在初始化…";
@@ -410,11 +432,11 @@ export declare const zh: {
410
432
  readonly 'panels.market.add.doneApplied': "装好了,已经生效。";
411
433
  readonly 'panels.market.add.doneRestart': "装好了,重启一次才生效。";
412
434
  readonly 'panels.market.add.restartWhy': "为什么这一版要重启:{reason}";
413
- readonly 'panels.market.add.restartWhy.no-hmr': "这个配置只在启动时应用改动(没开热更新)";
435
+ readonly 'panels.market.add.restartWhy.no-hmr': "这份配置只在启动时读一次,改了得重启";
414
436
  readonly 'panels.market.add.restartWhy.package-moved': "某个已经装着的包换到了新的目录,或者这一下换掉了 dsh 自己提供的那份";
415
437
  readonly 'panels.market.add.restartWhy.host-module': "这一下动到了 dsh 自己加载的模块";
416
- readonly 'panels.market.add.restartWhy.unmanaged-plugin': "这一下动到了插件清单之外正在跑的插件";
417
- readonly 'panels.market.add.restartWhy.module-comparison': "dsh 没能把已加载的插件与盘上的文件对上";
438
+ readonly 'panels.market.add.restartWhy.unmanaged-plugin': "这一下动到了没登记过、正在运行的插件";
439
+ readonly 'panels.market.add.restartWhy.module-comparison': "dsh 没法确认正在跑的插件就是这台机器上装好的那一份";
418
440
  readonly 'panels.market.add.cancelled': "已取消。";
419
441
  readonly 'panels.market.add.failed': "没成功:{reason}";
420
442
  readonly 'panels.market.add.removed': "已经移除了。";
@@ -424,10 +446,10 @@ export declare const zh: {
424
446
  readonly 'panels.market.add.removedRestart': "卸掉了,重启一次才彻底生效。";
425
447
  readonly 'panels.market.add.remove': "移除它";
426
448
  readonly 'panels.market.add.problem.invalidSpec': "这个写法不认:不能是空的,也不能以横杠开头。";
427
- readonly 'panels.market.add.problem.alreadyInstalled': "这个包已经在 profile 里了(要换版本请带上 @版本)。";
449
+ readonly 'panels.market.add.problem.alreadyInstalled': "这个包已经在这份工作台里了(要换版本请带上 @版本)。";
428
450
  readonly 'panels.market.add.problem.notFound': "源上没有这个包。换个包名或版本再试。";
429
451
  readonly 'panels.market.add.problem.notAPackage': "这个位置没有包。选一个包含 package.json 的目录。";
430
- readonly 'panels.market.add.problem.notABundle': "它是一个 npm 包,但不是 dsh 插件包(缺 dsh 的接线声明)。";
452
+ readonly 'panels.market.add.problem.notABundle': "它是一个 npm 包,但不是 dsh 插件包(dsh 在里面找不到该加载什么)。";
431
453
  readonly 'panels.market.add.problem.network': "源连不上。检查网络后重试。";
432
454
  readonly 'panels.market.add.problem.unknown': "预检没通过(原因未知)。展开安装详情看原始输出,或重试。";
433
455
  readonly 'panels.market.add.reason.invalidSpec': "写法不认";
@@ -435,7 +457,7 @@ export declare const zh: {
435
457
  readonly 'panels.market.add.reason.notBundle': "它不是一个 dsh 插件包";
436
458
  readonly 'panels.market.add.reason.notRemovable': "它是安装自带的组合包,不能卸";
437
459
  readonly 'panels.market.add.reason.bundleInUse': "还有东西在用它,卸不掉";
438
- readonly 'panels.market.add.reason.stopProfile': "这个配置没开热更新,得先停掉进程";
460
+ readonly 'panels.market.add.reason.stopProfile': "这份配置改了要重启,得先停掉工作台";
439
461
  readonly 'panels.market.add.reason.staleApproval': "要允许的安装脚本已经变了,重新来一次";
440
462
  readonly 'panels.market.add.reason.operationError': "pnpm 执行出错(详情见安装输出)";
441
463
  readonly 'panels.market.add.reason.buildBlocked': "pnpm 拦下了安装脚本";
@@ -458,15 +480,15 @@ export declare const zh: {
458
480
  readonly 'blocker.market.open': "去模块市场";
459
481
  readonly 'blocker.login.title': "需要登录 {platform}";
460
482
  readonly 'blocker.login.titleGeneric': "需要登录";
461
- readonly 'blocker.login.hint': "工作台用你的浏览器登录态;登录一次就行,之后不用再登。";
483
+ readonly 'blocker.login.hint': "工作台借你浏览器里的登录状态;登录一次就行,之后不用再登。";
462
484
  readonly 'blocker.login.go': "去登录";
463
485
  readonly 'blocker.login.manual': "在终端执行该插件的登录命令(见插件的文档),按提示完成登录后重试。";
464
486
  readonly 'blocker.forbidden.title': "没有权限访问 {platform}";
465
487
  readonly 'blocker.forbidden.titleGeneric': "没有权限";
466
488
  readonly 'blocker.forbidden.hint': "账号已登录,但没有这个项目/仓库的权限;申请之后再试。";
467
489
  readonly 'blocker.forbidden.open': "打开权限页";
468
- readonly 'blocker.timeout.hint': "无头浏览器可能没起来,重试一次通常就好。";
469
- readonly 'blocker.exec.hint': "确认 opencli 已安装且在 PATH 里(which opencli)。";
490
+ readonly 'blocker.timeout.hint': "后台浏览器没起来,重试一次通常就好。";
491
+ readonly 'blocker.exec.hint': "确认 opencli 已经装好、在终端里能直接运行(which opencli)。";
470
492
  readonly 'blocker.unknown.title': "出了点问题";
471
493
  readonly 'panels.reading': "正在读取面板配置…";
472
494
  readonly 'panels.cardBroken': "这个模块起不来:{unit}({reason})";
@@ -480,7 +502,7 @@ export declare const zh: {
480
502
  readonly 'env.elapsed': "已等待 {seconds} 秒";
481
503
  readonly 'env.stepFailed.install': "装不上";
482
504
  readonly 'env.stepFailed.path': "装了但还找不到";
483
- readonly 'env.stepFailed.shell': "执行通道不可用";
505
+ readonly 'env.stepFailed.shell': "连不上命令行";
484
506
  readonly 'env.toolchain.ok': "正常";
485
507
  readonly 'env.toolchain.warn': "还没完全准备好";
486
508
  readonly 'env.opencli.ok': "已就绪";
@@ -497,10 +519,10 @@ export declare const zh: {
497
519
  readonly 'env.fix.title': "怎么解决";
498
520
  readonly 'env.fix.why': "工作台用它自己那份后台工具(与你在终端里那套分开装,互不影响),这台机器上还没装好它。";
499
521
  readonly 'env.fix.whyPath': "后台工具装上了,但当前环境还找不到它 —— 通常是 PATH 或终端会话的问题。";
500
- readonly 'env.fix.whyShell': "工作台拿不到执行命令的通道,所以取不了数据 —— 这一步你装不了,需要有人处理后台环境。";
522
+ readonly 'env.fix.whyShell': "工作台拿不到这台机器的命令行,所以取不了数据 —— 这一步你装不了,需要有人处理后台环境。";
501
523
  readonly 'env.fix.step': "在终端里运行下面这条命令,装好之后点「重试」:";
502
524
  readonly 'env.fix.stepPath': "新开一个终端窗口(或确认 npm 的全局 bin 目录在 PATH 里),然后点「重试」。";
503
- readonly 'env.fix.stepShell': "重启一次工作台(或 dsh);如果反复出现,说明执行通道没配好。";
525
+ readonly 'env.fix.stepShell': "重启一次工作台(或 dsh);如果反复出现,说明工作台还是拿不到命令行。";
504
526
  readonly 'env.fix.permission': "权限不够:在命令前加 sudo 重跑,或先把 npm 的全局目录配到你的用户目录。";
505
527
  readonly 'env.fix.network': "网络不通:检查网络或代理设置后重试。";
506
528
  readonly 'env.fix.details': "详细输出(排障用)";
@@ -529,9 +551,9 @@ export declare const zh: {
529
551
  readonly 'env.warm.done': "已就绪({n} 个站点)";
530
552
  readonly 'env.warm.short': "这次没提前连上 —— 不影响用,第一次取数会自己补";
531
553
  readonly 'env.unit.failed': "这个模块起不来";
532
- readonly 'env.unit.failedHint': "它自己装配时报了错,别的模块不受影响。";
533
- readonly 'env.unit.unchecked': "检测不了:拿不到执行通道";
534
- readonly 'env.unit.uncheckedHint': "不是这个模块的问题,是执行通道不可用 —— 重启一次工作台再试。";
554
+ readonly 'env.unit.failedHint': "它自己启动时报了错,别的模块不受影响。";
555
+ readonly 'env.unit.unchecked': "检测不了:拿不到命令行";
556
+ readonly 'env.unit.uncheckedHint': "不是这个模块的问题,是工作台拿不到命令行 —— 重启一次工作台再试。";
535
557
  readonly 'adapterSet.not-configured': "没配置适配器集合,用默认的。";
536
558
  readonly 'adapterSet.no-profile': "找不到 profile,没法加载适配器集合;先用默认的。";
537
559
  readonly 'adapterSet.malformed': "适配器集合要写包名(如 @acme/adapters-set);先用默认的。";
@@ -574,7 +596,7 @@ export declare const zh: {
574
596
  readonly 'sidebarEdition.official': "官方";
575
597
  readonly 'sidebarEdition.officialHint': "跟 dsh 官方一致、最稳:搜索、视图选项、显示更多、归档、添加工作区都齐,升级也不等我们适配。想省心就选它。";
576
598
  readonly 'sidebarEdition.custom': "自定义";
577
- readonly 'sidebarEdition.customHint': "为多项目工作流做的:项目下拉一屏一个项目,会话按最近更新排,两端淡出、跑马灯、工坊 DIY 新会话。项目多时更顺手。";
599
+ readonly 'sidebarEdition.customHint': "为多项目工作流做的:项目下拉一屏一个项目,会话按最近更新排,名字自动滚动、两侧渐隐,工坊 DIY 新会话。项目多时更顺手。";
578
600
  readonly 'sidebarEdition.saving': "配置中…";
579
601
  readonly 'sidebarEdition.reloadRequired': "已写入。刷新页面后生效(不用重启工作台)。";
580
602
  readonly 'sidebarEdition.reload': "刷新页面";
@@ -603,25 +625,25 @@ export declare const zh: {
603
625
  readonly 'record.act.halt': "停";
604
626
  readonly 'approval.record.site': "站点";
605
627
  readonly 'approval.record.what': "录制功能";
606
- readonly 'approval.record.lands': "落点";
628
+ readonly 'approval.record.lands': "保存到";
607
629
  readonly 'approval.record.noUrl': "没给站点地址(这次会被当场拒)";
608
630
  readonly 'approval.record.oneAction': "一次操作";
609
631
  readonly 'approval.record.noSwitch': "录完不会替你切回来(左栏底部会亮一条状态)";
610
- readonly 'approval.longTask.what': "要停的那一趟";
611
- readonly 'approval.longTask.signal': "停了只是让工作台发出中断信号 —— 平台侧那趟活儿的收尾看模块自己";
632
+ readonly 'approval.longTask.what': "要停的那次任务";
633
+ readonly 'approval.longTask.signal': "停了只是让工作台发出中断信号 —— 这次任务怎么收尾由模块自己负责";
612
634
  readonly 'approval.publish.module': "模块";
613
635
  readonly 'approval.publish.target': "目标";
614
636
  readonly 'approval.publish.version': "版本";
615
637
  readonly 'approval.publish.author': "作者";
616
- readonly 'approval.publish.authorMissing': "未署名(提交用本机 git 身份)";
638
+ readonly 'approval.publish.authorMissing': "未署名";
617
639
  readonly 'approval.publish.registry': "源";
618
640
  readonly 'approval.publish.repo': "仓库";
619
641
  readonly 'approval.publish.branch': "分支";
620
642
  readonly 'approval.publish.defaultBranch': "默认分支";
621
- readonly 'approval.publish.artifacts': "产物";
643
+ readonly 'approval.publish.artifacts': "打包文件";
622
644
  readonly 'approval.publish.index': "索引";
623
645
  readonly 'approval.publish.commits': "提交";
624
- readonly 'approval.publish.twoCommits': "产物 + market.json 两个 commit,一次 push";
646
+ readonly 'approval.publish.twoCommits': "打包文件 + market.json 两次提交,一次推送";
625
647
  readonly 'approval.publish.reading': "读取中…";
626
648
  readonly 'approval.publish.changelog': "{version} 的更新日志";
627
649
  readonly 'approval.publish.changelogMissing': "这一版还没有更新日志({version}),发布会被拦下";