|
7 | 7 | <div class="selector-section market-overview-section"> |
8 | 8 | <div class="selector-header market-overview-header"> |
9 | 9 | <div> |
10 | | - <span class="selector-title">Skills 市场概览</span> |
11 | | - <div class="skills-panel-note">当前市场页只保留本地 skills 能力:切换 Codex / Claude Code 安装目标,查看已安装项,执行跨应用导入与 ZIP 分发。</div> |
| 10 | + <span class="selector-title">Skills 概览</span> |
| 11 | + <div class="skills-panel-note">聚焦本地 skills:切换目标、查看已装项、跨应用导入与 ZIP 分发。</div> |
12 | 12 | </div> |
13 | 13 | <div class="settings-tab-actions market-header-actions"> |
14 | 14 | <button type="button" class="btn-tool btn-tool-compact" @click="loadSkillsMarketOverview({ forceRefresh: true, silent: false })" :disabled="loading || !!initError || skillsMarketBusy"> |
|
74 | 74 | <div class="skills-panel-header"> |
75 | 75 | <div class="skills-panel-title-wrap"> |
76 | 76 | <div class="skills-panel-title">已安装 Skills</div> |
77 | | - <div class="skills-panel-note">展示当前已落地到 <code>{{ skillsRootPath || skillsDefaultRootPath }}</code> 的前 6 个目录,可继续进入管理弹窗做筛选、导出和删除。</div> |
| 77 | + <div class="skills-panel-note">展示当前目录前 6 项;更多操作请进管理弹窗。</div> |
78 | 78 | </div> |
79 | 79 | <button type="button" class="btn-mini" @click="refreshSkillsList({ silent: false })" :disabled="loading || !!initError || skillsMarketBusy"> |
80 | 80 | {{ skillsLoading ? '刷新中...' : '刷新本地' }} |
81 | 81 | </button> |
82 | 82 | </div> |
83 | 83 | <div v-if="skillsLoading && !skillsMarketLocalLoadedOnce" class="skills-empty-state">正在加载本地 Skills...</div> |
84 | | - <div v-else-if="skillsList.length === 0" class="skills-empty-state">当前还没有已安装 skill,可通过 ZIP 或跨应用导入补充。</div> |
| 84 | + <div v-else-if="skillsList.length === 0" class="skills-empty-state">当前暂无已安装 skill,可通过 ZIP 或跨应用导入补充。</div> |
85 | 85 | <div v-else class="market-preview-list"> |
86 | 86 | <div v-for="skill in skillsMarketInstalledPreview" :key="'market-local-' + skill.name" class="market-preview-item"> |
87 | 87 | <div class="market-preview-main"> |
|
99 | 99 | <div class="skills-panel-header"> |
100 | 100 | <div class="skills-panel-title-wrap"> |
101 | 101 | <div class="skills-panel-title">可导入来源</div> |
102 | | - <div class="skills-panel-note">扫描其他应用下未托管的 skill,先确认来源和目录,再批量导入到当前 {{ skillsTargetLabel }} skills 目录。</div> |
| 102 | + <div class="skills-panel-note">扫描其他应用中的未托管 skill,确认后批量导入到当前 {{ skillsTargetLabel }}。</div> |
103 | 103 | </div> |
104 | 104 | <button type="button" class="btn-mini" @click="scanImportableSkills({ silent: false })" :disabled="loading || !!initError || skillsMarketBusy"> |
105 | 105 | {{ skillsScanningImports ? '扫描中...' : '扫描来源' }} |
106 | 106 | </button> |
107 | 107 | </div> |
108 | 108 | <div v-if="skillsScanningImports && !skillsMarketImportLoadedOnce" class="skills-empty-state">正在扫描可导入 skill...</div> |
109 | | - <div v-else-if="skillsImportList.length === 0" class="skills-empty-state">还没有扫描到可导入 skill,可点击“扫描来源”重新读取。</div> |
| 109 | + <div v-else-if="skillsImportList.length === 0" class="skills-empty-state">暂未扫描到可导入 skill,可点击“扫描来源”重试。</div> |
110 | 110 | <div v-else class="market-preview-list"> |
111 | 111 | <div v-for="skill in skillsMarketImportPreview" :key="'market-import-' + buildSkillImportKey(skill)" class="market-preview-item"> |
112 | 112 | <div class="market-preview-main"> |
|
124 | 124 | <div class="skills-panel-header"> |
125 | 125 | <div class="skills-panel-title-wrap"> |
126 | 126 | <div class="skills-panel-title">分发入口</div> |
127 | | - <div class="skills-panel-note">市场页聚焦本地落地:本地管理、跨应用导入、ZIP 分发,全部作用到当前安装目标。</div> |
| 127 | + <div class="skills-panel-note">本地管理、跨应用导入与 ZIP 导入,均作用于当前安装目标。</div> |
128 | 128 | </div> |
129 | 129 | </div> |
130 | 130 | <div class="market-action-grid"> |
131 | 131 | <button type="button" class="market-action-card" @click="openSkillsManager" :disabled="loading || !!initError || skillsMarketBusy"> |
132 | 132 | <span class="market-action-title">本地 Skills 管理</span> |
133 | | - <span class="market-action-copy">查看、筛选、导出、删除当前 {{ skillsTargetLabel }} 已安装 skills</span> |
| 133 | + <span class="market-action-copy">查看并管理当前 {{ skillsTargetLabel }} 的已装 skills</span> |
134 | 134 | </button> |
135 | 135 | <button type="button" class="market-action-card" @click="scanImportableSkills({ silent: false })" :disabled="loading || !!initError || skillsMarketBusy"> |
136 | 136 | <span class="market-action-title">跨应用导入</span> |
137 | | - <span class="market-action-copy">扫描其他应用目录并导入到当前 {{ skillsTargetLabel }}</span> |
| 137 | + <span class="market-action-copy">扫描其他应用并导入到当前 {{ skillsTargetLabel }}</span> |
138 | 138 | </button> |
139 | 139 | <button type="button" class="market-action-card" @click="triggerSkillsZipImport" :disabled="loading || !!initError || skillsMarketBusy"> |
140 | 140 | <span class="market-action-title">ZIP 导入</span> |
141 | | - <span class="market-action-copy">从压缩包分发并安装到当前目标宿主</span> |
| 141 | + <span class="market-action-copy">从 ZIP 安装到当前目标</span> |
142 | 142 | </button> |
143 | 143 | </div> |
144 | 144 | </div> |
|
152 | 152 | <div class="market-preview-list"> |
153 | 153 | <div class="market-preview-item"> |
154 | 154 | <div class="market-preview-main"> |
155 | | - <div class="market-preview-title">目标宿主切换</div> |
156 | | - <div class="market-preview-meta">在 Codex 和 Claude Code 之间切换后,后续扫描、导入、导出、删除都会落到当前 {{ skillsTargetLabel }} 目录。</div> |
| 155 | + <div class="market-preview-title">目标切换</div> |
| 156 | + <div class="market-preview-meta">切换 Codex / Claude Code 后,后续操作都会落到当前 {{ skillsTargetLabel }} 目录。</div> |
157 | 157 | </div> |
158 | 158 | </div> |
159 | 159 | <div class="market-preview-item"> |
160 | 160 | <div class="market-preview-main"> |
161 | 161 | <div class="market-preview-title">跨应用导入</div> |
162 | | - <div class="market-preview-meta">扫描 `Codex`、`Claude Code` 与 `Agents` 目录里的未托管 skills,筛选后批量导入到当前宿主。</div> |
| 162 | + <div class="market-preview-meta">扫描 `Codex`、`Claude Code` 与 `Agents` 中未托管的 skills,并导入到当前宿主。</div> |
163 | 163 | </div> |
164 | 164 | </div> |
165 | 165 | <div class="market-preview-item"> |
166 | 166 | <div class="market-preview-main"> |
167 | 167 | <div class="market-preview-title">ZIP 分发</div> |
168 | | - <div class="market-preview-meta">通过压缩包在不同环境间分发技能目录,保持本地可控,不依赖外部目录服务。</div> |
| 168 | + <div class="market-preview-meta">通过压缩包分发技能目录,保持本地可控,不依赖外部目录服务。</div> |
169 | 169 | </div> |
170 | 170 | </div> |
171 | 171 | </div> |
|
0 commit comments