feat(web): improve skill import flow

This commit is contained in:
Junyan Qin
2026-05-18 18:33:39 +08:00
parent 971cc3f675
commit 9e62227104
11 changed files with 1270 additions and 133 deletions
+129
View File
@@ -153,6 +153,7 @@ const ruRU = {
more: 'Ещё ({{count}})',
less: 'Свернуть',
noItems: 'Нет элементов',
termsOfService: 'Условия обслуживания',
},
notFound: {
title: 'Страница не найдена',
@@ -610,7 +611,14 @@ const ruRU = {
taskQueue: 'Задачи установки',
clearCompleted: 'Очистить завершённые',
noTasks: 'Нет задач установки',
titlePlugin: 'Установка плагина {{name}}',
titleMCP: 'Установка сервера MCP {{name}}',
titleSkill: 'Установка навыка {{name}}',
installCompletePlugin: 'Плагин успешно установлен',
installCompleteMCP: 'Сервер MCP успешно установлен',
installCompleteSkill: 'Навык успешно установлен',
},
uploadPluginOnly: 'Поддерживаются только пакеты плагинов .lbpkg',
},
market: {
searchPlaceholder: 'Поиск плагинов...',
@@ -681,6 +689,7 @@ const ruRU = {
clearAll: 'Очистить всё',
noTags: 'Нет доступных тегов',
},
installCard: 'Установить {{name}}',
},
mcp: {
title: 'MCP',
@@ -844,6 +853,13 @@ const ruRU = {
enableAllMCPServers: 'Включить все MCP-серверы',
allPluginsEnabled: 'Все плагины включены',
allMCPServersEnabled: 'Все MCP-серверы включены',
enableAllSkills: 'Включить все навыки',
allSkillsEnabled: 'Все навыки включены',
skillsTitle: 'Навыки',
noSkillsSelected: 'Навыки не выбраны',
addSkill: 'Добавить навык',
selectSkills: 'Выбрать навыки',
noSkillsAvailable: 'Нет доступных навыков',
},
debugDialog: {
title: 'Чат конвейера',
@@ -1409,6 +1425,119 @@ const ruRU = {
selectFromSidebar: 'Выберите страницу плагина на боковой панели',
invalidPage: 'Недопустимая страница плагина',
},
skills: {
title: 'Навыки',
description:
'Создавайте навыки и управляйте ими для активации во время диалогов',
createSkill: 'Создать навык',
createSkillDescription:
'Импортируйте локальный каталог или создайте навык, заполнив данные',
editSkill: 'Редактировать навык',
getSkillListError: 'Не удалось получить список навыков: ',
skillName: 'Название навыка',
displayName: 'Название навыка',
displayNamePlaceholder: 'Отображаемое имя (поддерживает любой язык)',
skillSlug: 'Имя каталога',
skillSlugPlaceholder: 'english-name-only',
skillSlugHelp:
'Используется как имя каталога навыка. Разрешены только буквы, цифры, дефисы и подчёркивания.',
skillDescription: 'Описание навыка',
skillInstructions: 'Инструкции',
saveSuccess: 'Успешно сохранено',
saveError: 'Не удалось сохранить: ',
createSuccess: 'Успешно создано',
createError: 'Не удалось создать: ',
deleteSuccess: 'Успешно удалено',
deleteError: 'Не удалось удалить: ',
deleteConfirmation: 'Вы уверены, что хотите удалить этот навык?',
delete: 'Удалить навык',
skillNameRequired: 'Название навыка не может быть пустым',
skillDescriptionRequired: 'Описание навыка не может быть пустым',
packageRootRequired: 'Корневой путь пакета не может быть пустым',
scan: 'Сканировать',
scanSuccess: 'Каталог успешно просканирован',
scanError: 'Не удалось просканировать каталог: ',
noSkills: 'Навыки не настроены',
preview: 'Предпросмотр',
previewInstructions: 'Предпросмотр инструкций',
instructionsPlaceholder: 'Введите инструкции навыка в формате Markdown...',
descriptionPlaceholder:
'Краткое описание того, что делает этот навык (показывается LLM)',
packageRoot: 'Каталог пакета',
packageRootHelp:
'Необязательно. Нужно только при импорте существующего каталога навыка. Для новых навыков оставьте пустым. Сканирование проверяет текущий каталог и подкаталоги глубиной до 2 уровней.',
importLocalDirectory: 'Импортировать локальный каталог навыка',
chooseSkillDirectory: 'Выбрать каталог с SKILL.md',
chooseAnotherDirectory: 'Выбрать другой каталог',
importingDirectory: 'Подготовка предпросмотра...',
clearDirectoryPreview: 'Очистить выбранный каталог',
noSkillMdInDirectory: 'В выбранном каталоге не найден SKILL.md',
multipleSkillMdInDirectory:
'В выбранном каталоге найдено несколько файлов SKILL.md. Выберите один каталог навыка напрямую.',
importDirectoryError: 'Не удалось импортировать каталог: ',
advancedSettings: 'Расширенные настройки',
searchSkills: 'Поиск навыков...',
selectSkills: 'Выбрать навыки',
addSkill: 'Добавить навык',
builtin: 'Встроенный',
importFromGithub: 'Установить навык из GitHub',
createManually: 'Создать вручную',
uploadZip: 'Загрузить ZIP-пакет',
uploadZipOnly: 'Поддерживаются только ZIP-пакеты навыков',
installSuccess: 'Навык успешно установлен',
installError: 'Не удалось установить навык: ',
enterRepoUrl: 'Введите URL репозитория GitHub',
repoUrlPlaceholder: 'например, https://github.com/owner/repo',
fetchingReleases: 'Получение релизов...',
selectRelease: 'Выбрать релиз',
noReleasesFound: 'Релизы не найдены',
fetchReleasesError: 'Не удалось получить релизы: ',
selectAsset: 'Выберите файл для установки',
sourceArchive: 'Исходный код (zip)',
noAssetsFound: 'В этом релизе нет устанавливаемых файлов',
fetchAssetsError: 'Не удалось получить файлы: ',
backToReleases: 'Назад к релизам',
backToRepoUrl: 'Назад к URL репозитория',
backToAssets: 'Назад к файлам',
releaseTag: 'Тег: {{tag}}',
publishedAt: 'Опубликовано: {{date}}',
prerelease: 'Предварительный релиз',
assetSize: 'Размер: {{size}}',
confirmInstall: 'Подтвердить установку',
installing: 'Установка навыка...',
loading: 'Загрузка...',
previewLoadError: 'Не удалось загрузить предпросмотр',
selectFromSidebar: 'Выберите навык на боковой панели',
dangerZone: 'Опасная зона',
dangerZoneDescription: 'Необратимые и разрушительные действия',
files: 'Файлы',
noFiles: 'Файлы не найдены',
loadFilesError: 'Не удалось загрузить файлы: ',
readFileError: 'Не удалось прочитать файл: ',
saveFile: 'Сохранить файл',
saveFileSuccess: 'Файл успешно сохранён',
saveFileError: 'Не удалось сохранить файл: ',
},
addExtension: {
manualAdd: 'Добавить вручную',
uploadExtension: 'Перетащите файл сюда или нажмите для загрузки',
uploadHint: 'Поддерживаются файлы .zip (навыки) и .lbpkg (плагины)',
orContinueWith: 'или выберите действие ниже',
addMCPServerHint: 'Подключить расширение сервера инструментов MCP',
installFromGithub: 'Установить из GitHub',
installFromGithubHint: 'Пакет плагина или навык (SKILL.md)',
githubUrlHelp: 'Вставьте URL GitHub',
githubUrlTooltip:
'Плагин: вставьте URL репозитория, Release или Tag. Навык: вставьте URL страницы SKILL.md внутри каталога навыка.',
githubUrlPlaceholder: 'Репозиторий GitHub, Release или ссылка SKILL.md',
githubUrlRequired: 'Введите URL GitHub',
previewSkill: 'Предпросмотр навыка',
noSkillPreviewFound: 'Импортируемый навык не найден',
createSkill: 'Создать новый навык',
createSkillHint: 'Импортировать из локального каталога или создать вручную',
unsupportedFileType:
'Неподдерживаемый тип файла. Поддерживаются только файлы .zip и .lbpkg',
},
};
export default ruRU;