@goodandready/dsh-russian-lang 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.js +7 -4
- package/package.json +1 -1
- package/ru-plugins/03-dshmarket.json +96 -1
- package/ru-plugins/07-better-sidebar.json +55 -1
- package/ru-plugins/11-skill-hub.json +31 -1
- package/ru-plugins/12-skills-manager.json +21 -2
- package/ru-plugins/15-commandcode.json +62 -1
- package/ru-plugins/17-dsh-context.json +28 -1
- package/ru-plugins/22-subagent-director.json +142 -0
- package/ru-plugins/23-moa.json +43 -0
- package/ru-plugins/24-personal-directive.json +9 -0
- package/ru-plugins/25-hooks.json +11 -0
- package/ru-plugins/26-config-manager.json +308 -0
- package/ru-plugins/27-config-manager-sync.json +177 -0
- package/ru-plugins/28-config-manager-market.json +135 -0
- package/ru-plugins/29-config-manager-recovery.json +102 -0
- package/ru-plugins/30-config-manager-history.json +55 -0
- package/ru-plugins/31-dshhub-market.json +398 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config-manager-recovery": {
|
|
3
|
+
"common.cancel": "Отмена",
|
|
4
|
+
"common.retry": "Повторить",
|
|
5
|
+
"common.unknownError": "Неизвестная ошибка",
|
|
6
|
+
"view.recovery": "Recovery",
|
|
7
|
+
"recovery.banner": "Configuration changes are protected: there is an unfinished recovery item. Resolve it before continuing.",
|
|
8
|
+
"recovery.bannerAction": "Go to recovery",
|
|
9
|
+
"recovery.required": "Recovery Required",
|
|
10
|
+
"recovery.requiredHint": "An operation did not complete normally. To stay safe, all config-modifying operations are paused. Handle the recovery item(s) below to restore normal operation.",
|
|
11
|
+
"recovery.rollbackRecommended": "Rollback recommended",
|
|
12
|
+
"recovery.rollbackContinue": "Continue rollback",
|
|
13
|
+
"recovery.inProgress": "Recovery in progress",
|
|
14
|
+
"recovery.verified": "Verified",
|
|
15
|
+
"recovery.partialMatch": "Partial match",
|
|
16
|
+
"recovery.mismatch": "Mismatch",
|
|
17
|
+
"recovery.verificationError": "Verification error",
|
|
18
|
+
"recovery.needsAttention": "Needs attention",
|
|
19
|
+
"recovery.manualActionRequired": "Manual action required",
|
|
20
|
+
"recovery.incident.title": "What happened",
|
|
21
|
+
"recovery.incident.operationId": "Operation ID",
|
|
22
|
+
"recovery.incident.operationType": "Operation type",
|
|
23
|
+
"recovery.incident.createdAt": "Occurred at",
|
|
24
|
+
"recovery.incident.reason": "Reason",
|
|
25
|
+
"recovery.incident.decision": "Recommendation",
|
|
26
|
+
"recovery.incident.state": "State",
|
|
27
|
+
"recovery.incident.state.recovering": "Recovering",
|
|
28
|
+
"recovery.incident.state.needsAttention": "Manual action needed",
|
|
29
|
+
"recovery.incident.state.rolledBack": "Rolled back",
|
|
30
|
+
"recovery.incident.state.recovered": "Recovered",
|
|
31
|
+
"recovery.incident.state.committed": "Completed",
|
|
32
|
+
"recovery.incident.state.unknown": "Unknown",
|
|
33
|
+
"recovery.decision.unknown": "Unknown",
|
|
34
|
+
"recovery.verify.verdict.unknown": "Unknown",
|
|
35
|
+
"recovery.currentState.title": "Current state",
|
|
36
|
+
"recovery.currentState.safeMode": "Safe mode active (config-modifying operations paused)",
|
|
37
|
+
"recovery.currentState.safeModeCleared": "Restored to normal — you can continue",
|
|
38
|
+
"recovery.currentState.hasSnapshot": "Trusted recovery snapshot available",
|
|
39
|
+
"recovery.currentState.noSnapshot": "No trusted recovery snapshot",
|
|
40
|
+
"recovery.snapshot.title": "Recovery snapshot",
|
|
41
|
+
"recovery.snapshot.id": "Snapshot ID",
|
|
42
|
+
"recovery.snapshot.createdAt": "Snapshot time",
|
|
43
|
+
"recovery.snapshot.operationType": "Snapshot operation",
|
|
44
|
+
"recovery.snapshot.verdict": "Snapshot validation",
|
|
45
|
+
"recovery.snapshot.verdict.trusted": "Trusted (bound to this operation)",
|
|
46
|
+
"recovery.snapshot.verdict.manual": "Manual / local (outside this operation)",
|
|
47
|
+
"recovery.snapshot.verdict.legacy": "Legacy snapshot (explicit confirmation required)",
|
|
48
|
+
"recovery.snapshot.verdict.wrongEnv": "Environment mismatch",
|
|
49
|
+
"recovery.snapshot.verdict.corrupt": "Corrupt",
|
|
50
|
+
"recovery.snapshot.verdict.invalid": "Invalid",
|
|
51
|
+
"recovery.snapshot.verdict.unsafe": "Unsafe path",
|
|
52
|
+
"recovery.snapshot.verdict.unknown": "Unknown",
|
|
53
|
+
"recovery.environment.title": "Environment",
|
|
54
|
+
"recovery.environment.compatible": "Environment matches",
|
|
55
|
+
"recovery.environment.incompatible": "Environment mismatch (may be from another machine / install)",
|
|
56
|
+
"recovery.preview.title": "Recovery preview",
|
|
57
|
+
"recovery.preview.hint": "Read-only preview below (zero writes). Recovery only runs after confirmation.",
|
|
58
|
+
"recovery.preview.loading": "Generating preview…",
|
|
59
|
+
"recovery.preview.empty": "No restorable actions for this operation (or all skipped).",
|
|
60
|
+
"recovery.preview.action": "Action",
|
|
61
|
+
"recovery.preview.detail": "Detail",
|
|
62
|
+
"recovery.preview.summary": "Will execute {count} action(s)",
|
|
63
|
+
"recovery.confirm.title": "Confirm recovery",
|
|
64
|
+
"recovery.confirm.message": "Recovery / rollback is a dangerous operation. Confirm execution? Current files are backed up to a safe location first.",
|
|
65
|
+
"recovery.confirm.rollbackContinue": "Continue the interrupted rollback (already-completed parts are skipped and not redone).",
|
|
66
|
+
"recovery.confirm.retry": "Retry recovery after verification failure. Confirm running it again?",
|
|
67
|
+
"recovery.confirm.dismiss": "Abandon recovery? The operation will be set aside (quarantined), and the related snapshot and operation records are kept, but it will not be auto-recovered.",
|
|
68
|
+
"recovery.confirm.dismissTitle": "Abandon recovery",
|
|
69
|
+
"recovery.execute": "Execute recovery",
|
|
70
|
+
"recovery.executing": "Recovering…",
|
|
71
|
+
"recovery.retry": "Retry",
|
|
72
|
+
"recovery.retrying": "Retrying…",
|
|
73
|
+
"recovery.verify": "Verify",
|
|
74
|
+
"recovery.verifying": "Verifying…",
|
|
75
|
+
"recovery.dismiss": "Abandon recovery",
|
|
76
|
+
"recovery.dismissing": "Abandoning…",
|
|
77
|
+
"recovery.continue": "Continue",
|
|
78
|
+
"recovery.verify.title": "Verification result",
|
|
79
|
+
"recovery.verify.details": "Check details",
|
|
80
|
+
"recovery.verify.manualHints": "Manual action needed",
|
|
81
|
+
"recovery.verify.verdict.match": "Verified: target state matches the trusted snapshot",
|
|
82
|
+
"recovery.verify.verdict.partial": "Verified (partial match): core state matches, but some items could not be auto-verified",
|
|
83
|
+
"recovery.verify.verdict.mismatch": "Verification failed: target state does not match the trusted snapshot; recovery incomplete",
|
|
84
|
+
"recovery.verify.verdict.error": "Verification error: could not reliably complete verification; recovery incomplete",
|
|
85
|
+
"recovery.verify.terminal.rolledBack": "Rolled back",
|
|
86
|
+
"recovery.verify.terminal.recovered": "Recovered",
|
|
87
|
+
"recovery.verify.terminal.needsAttention": "Needs attention",
|
|
88
|
+
"recovery.completed": "Recovery complete",
|
|
89
|
+
"recovery.completed.rolledBack": "Rolled back and verified",
|
|
90
|
+
"recovery.completed.recovered": "Recovered and verified",
|
|
91
|
+
"recovery.needsAttention.title": "Needs attention",
|
|
92
|
+
"recovery.needsAttention.hint": "Recovery could not complete or verification failed. Review the reason, then retry or abandon.",
|
|
93
|
+
"recovery.empty": "No recovery items to handle.",
|
|
94
|
+
"recovery.loading": "Checking recovery status…",
|
|
95
|
+
"recovery.error": "Failed to load recovery status",
|
|
96
|
+
"recovery.actionError": "Operation failed",
|
|
97
|
+
"recovery.running": "Recovery task in progress",
|
|
98
|
+
"recovery.runningHint": "Recovery / rollback is running; keep this page open.",
|
|
99
|
+
"section.label": "Аварийное восстановление",
|
|
100
|
+
"section.description": "Восстановление профилей и откат к предыдущим снапшотам"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"config-manager-history": {
|
|
3
|
+
"view.history": "История миграций",
|
|
4
|
+
"history.title": "История миграций и аудита",
|
|
5
|
+
"history.subtitle": "Единый журнал аудита всех деструктивных и миграционных операций",
|
|
6
|
+
"history.empty": "No migration records yet. Executing an import, restore, profile switch, sync apply, or scheduled backup will create audit entries here.",
|
|
7
|
+
"history.loading": "Loading migration history…",
|
|
8
|
+
"history.corruptedBanner": "Detected unreadable or possibly tampered history entries",
|
|
9
|
+
"history.corruptedCount": "{count} entry(s) were skipped (excluded from export)",
|
|
10
|
+
"history.stats.total": "Total",
|
|
11
|
+
"history.stats.success": "Success",
|
|
12
|
+
"history.stats.failed": "Failed",
|
|
13
|
+
"history.stats.skipped": "Skipped",
|
|
14
|
+
"history.filter.kind": "Operation",
|
|
15
|
+
"history.filter.result": "Result",
|
|
16
|
+
"history.filter.recent": "Time range",
|
|
17
|
+
"history.filter.recent.all": "All",
|
|
18
|
+
"history.filter.recent.50": "Latest 50",
|
|
19
|
+
"history.filter.recent.200": "Latest 200",
|
|
20
|
+
"history.filter.sections": "Sections",
|
|
21
|
+
"history.filter.title": "Filter & export",
|
|
22
|
+
"history.search.placeholder": "Search summary / error / section…",
|
|
23
|
+
"history.export.json": "Export JSON",
|
|
24
|
+
"history.export.markdown": "Export Markdown",
|
|
25
|
+
"history.exported": "Exported",
|
|
26
|
+
"history.exporting": "Exporting…",
|
|
27
|
+
"history.exportError": "Export failed",
|
|
28
|
+
"history.loadError": "Failed to load migration history",
|
|
29
|
+
"history.reload": "Reload",
|
|
30
|
+
"history.table.time": "Time",
|
|
31
|
+
"history.table.kind": "Operation",
|
|
32
|
+
"history.table.result": "Result",
|
|
33
|
+
"history.table.sections": "Sections",
|
|
34
|
+
"history.table.summary": "Summary",
|
|
35
|
+
"history.updatedAt": "Updated",
|
|
36
|
+
"history.refresh": "Refresh",
|
|
37
|
+
"history.kind.import": "Import",
|
|
38
|
+
"history.kind.restore": "Snapshot restore",
|
|
39
|
+
"history.kind.rollback": "Rollback",
|
|
40
|
+
"history.kind.profile-switch": "Profile switch",
|
|
41
|
+
"history.kind.profile-delete": "Profile delete",
|
|
42
|
+
"history.kind.profile-rename": "Profile rename",
|
|
43
|
+
"history.kind.profile-save": "Profile save",
|
|
44
|
+
"history.kind.profile-import": "Profile import",
|
|
45
|
+
"history.kind.sync-apply": "Sync apply",
|
|
46
|
+
"history.kind.autosync": "Autosync",
|
|
47
|
+
"history.kind.recovery": "Recovery/rollback",
|
|
48
|
+
"history.kind.backup": "Scheduled backup",
|
|
49
|
+
"history.kind.snapshot-delete": "Snapshot delete",
|
|
50
|
+
"history.kind.snapshot-prune": "Snapshot retention",
|
|
51
|
+
"history.result.success": "Success",
|
|
52
|
+
"history.result.failed": "Failed",
|
|
53
|
+
"history.result.skipped": "Skipped"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dshhub-market": {
|
|
3
|
+
"nav": "Маркет плагинов",
|
|
4
|
+
"fabTitle": "Открыть магазин плагинов dshhub.co",
|
|
5
|
+
"fabModalTitle": "Магазин плагинов dshhub.co",
|
|
6
|
+
"setCardDesc": "Просмотр версии и настроек магазина плагинов.",
|
|
7
|
+
"setSelfUpToDate": "Установлена последняя версия",
|
|
8
|
+
"setSelfUpdateReady": "Доступна новая версия:",
|
|
9
|
+
"setSelfUpdateHint": "При обновлении скачивается новая версия; она вступит в силу после перезапуска.",
|
|
10
|
+
"setSelfUpToDateHint": "Актуально, обновление не требуется",
|
|
11
|
+
"setSelfUpdate": "Обновить",
|
|
12
|
+
"setSelfUpdatedHint": "Загружено. Перезапустите DeepSeek Harness, чтобы изменения вступили в силу — клиент обновится сразу, сервер после перезапуска.",
|
|
13
|
+
"setChannel": "Канал обновлений",
|
|
14
|
+
"setChannelStable": "Стабильный",
|
|
15
|
+
"setChannelBeta": "Бета",
|
|
16
|
+
"setChannelStableHint": "Только выпущенные версии.",
|
|
17
|
+
"setChannelBetaHint": "Ранний доступ к непроверенным версиям. Влияет только на рынок плагинов.",
|
|
18
|
+
"setChannelDev": "Разработка",
|
|
19
|
+
"setChannelDevHint": "Непроверенные сборки из ветки разработки. Не рекомендуются для общего использования.",
|
|
20
|
+
"setChannelSwitch": "Переключиться на",
|
|
21
|
+
"setChannelSwitchHint": "Эта версия ниже установленной.",
|
|
22
|
+
"setSelfRemove": "Удалить магазин плагинов",
|
|
23
|
+
"setSelfRemoveHint": "Удалить магазин из этого профиля. Ваши остальные плагины затронуты не будут.",
|
|
24
|
+
"setSelfConfirm": "Удалить магазин плагинов? Повторная установка возможна только через командную строку.",
|
|
25
|
+
"setSelfPurge": "Также очистить собственные данные магазина",
|
|
26
|
+
"setSelfPurgeOn": "Будут удалены: списки отключений магазина, пользовательские группы и записи отключений в файле патча профиля — отключённые плагины снова запустятся. Пароли и токены не затрагиваются (магазин не сохраняет их на диске).",
|
|
27
|
+
"setSelfPurgeOff": "Сохранить данные магазина. Обратите внимание: отключённые плагины останутся выключенными, и после удаления магазина вернуть их через интерфейс будет невозможно.",
|
|
28
|
+
"setSelfRemoveConfirm": "Удалить",
|
|
29
|
+
"setSelfCancel": "Отмена",
|
|
30
|
+
"setSelfWorking": "Удаление…",
|
|
31
|
+
"setSelfRemoved": "Удалено",
|
|
32
|
+
"setSelfRemovedHint": "Перезапустите DeepSeek Harness для завершения очистки.",
|
|
33
|
+
"setSelfFailed": "Сбой операции",
|
|
34
|
+
"versionHint": "Версия магазина плагинов — укажите её при сообщении об ошибке",
|
|
35
|
+
"subtitle": "Плагины сообщества для DeepSeek Harness",
|
|
36
|
+
"searchPh": "Поиск плагинов: уведомления, терминал, память…",
|
|
37
|
+
"tabDiscover": "Обзор",
|
|
38
|
+
"tabRedeem": "Passcode",
|
|
39
|
+
"tabPublic": "Public market",
|
|
40
|
+
"tabInstalled": "Установленные",
|
|
41
|
+
"all": "Все",
|
|
42
|
+
"install": "Установить",
|
|
43
|
+
"installing": "Установка…",
|
|
44
|
+
"redeemTitle": "Enter a passcode to unlock plugins",
|
|
45
|
+
"redeemPh": "Passcode, e.g. 3K7M9P",
|
|
46
|
+
"redeemBtn": "Unlock",
|
|
47
|
+
"redeeming": "Unlocking…",
|
|
48
|
+
"redeemDemo": "Try 080808 to unlock a theme for free",
|
|
49
|
+
"redeemOk": "Unlocked: {0}, added to the list below",
|
|
50
|
+
"unlockedTitle": "My unlocked plugins",
|
|
51
|
+
"unlockedEmpty": "Nothing unlocked yet. Seen a passcode in a creator’s video? Type it in.",
|
|
52
|
+
"unlockedAt": "Unlocked {0}",
|
|
53
|
+
"unlockInstall": "Install",
|
|
54
|
+
"unlockDelete": "Remove",
|
|
55
|
+
"unlockDeleteWorking": "Removing…",
|
|
56
|
+
"unlockDeleteConfirm": "Remove this unlock record? Installed plugins are not affected.",
|
|
57
|
+
"unlockDeleteFail": "Remove failed",
|
|
58
|
+
"kindTheme": "Theme",
|
|
59
|
+
"kindPlugin": "Plugin",
|
|
60
|
+
"kindTool": "Tool",
|
|
61
|
+
"kindSkill": "Skill",
|
|
62
|
+
"kindPreset": "Agent Mode",
|
|
63
|
+
"kindApp": "App",
|
|
64
|
+
"installedLabel": "Installed",
|
|
65
|
+
"unlockInstallOk": "Installed: {0} — find it in the Installed tab",
|
|
66
|
+
"removedItemLabel": "Removed from marketplace",
|
|
67
|
+
"removedItemReason": "Reason: {0}",
|
|
68
|
+
"reportLink": "Report",
|
|
69
|
+
"reportTitle": "Report this plugin",
|
|
70
|
+
"reportCategoryLabel": "Reason",
|
|
71
|
+
"reportPick": "Select…",
|
|
72
|
+
"reportCatInfringement": "Infringement (copyright / trademark / patent)",
|
|
73
|
+
"reportCatMalware": "Malware / data theft",
|
|
74
|
+
"reportCatMisleading": "Misleading / false claims",
|
|
75
|
+
"reportCatPorn": "Pornographic content",
|
|
76
|
+
"reportCatFraud": "Fraud / scam",
|
|
77
|
+
"reportCatOther": "Other issue",
|
|
78
|
+
"reportDescLabel": "Description",
|
|
79
|
+
"reportDescPh": "Describe the issue and evidence (at least 10 characters)",
|
|
80
|
+
"reportContactLabel": "Contact",
|
|
81
|
+
"reportContactPh": "Optional contact so the platform can reach you",
|
|
82
|
+
"reportSubmit": "Submit report",
|
|
83
|
+
"reportSubmitting": "Submitting…",
|
|
84
|
+
"reportPickCategory": "Please pick a reason",
|
|
85
|
+
"reportTooShort": "Description must be at least 10 characters",
|
|
86
|
+
"reportOk": "Report submitted. The platform will verify it, usually within 48 hours. Thanks for keeping the marketplace safe.",
|
|
87
|
+
"reportFail": "Report submission failed, please retry later",
|
|
88
|
+
"reportRateLimited": "Too many submissions, please try again later",
|
|
89
|
+
"rateLink": "Rate",
|
|
90
|
+
"rateTitle": "Rate this plugin",
|
|
91
|
+
"rateScoreLabel": "Your rating",
|
|
92
|
+
"ratePickScore": "Please pick a star rating first",
|
|
93
|
+
"rateScoreValue": "{0} stars",
|
|
94
|
+
"rateCommentLabel": "Comment (optional)",
|
|
95
|
+
"rateCommentPh": "Share your experience (optional, up to 500 characters)",
|
|
96
|
+
"rateSubmit": "Submit rating",
|
|
97
|
+
"rateSubmitting": "Submitting…",
|
|
98
|
+
"rateOk": "Rating submitted, thanks for your feedback",
|
|
99
|
+
"rateFail": "Rating submission failed, please retry later",
|
|
100
|
+
"rateTooFast": "Too many submissions, please try again later (max 3 per plugin per day)",
|
|
101
|
+
"auditBadgePass": "AI-reviewed",
|
|
102
|
+
"auditBadgeWarn": "AI-reviewed (notes)",
|
|
103
|
+
"teachingLabel": "Guides",
|
|
104
|
+
"byAuthor": "Provided by {0}",
|
|
105
|
+
"videoLabel": "Tutorial video",
|
|
106
|
+
"videoFallback": "Not playing? Watch in browser",
|
|
107
|
+
"openExternal": "Open",
|
|
108
|
+
"stepsLabel": "Getting started",
|
|
109
|
+
"faqLabel": "FAQ",
|
|
110
|
+
"contactLabel": "Contact the creator",
|
|
111
|
+
"contactLink": "Link",
|
|
112
|
+
"changelogLabel": "Changelog",
|
|
113
|
+
"copyBtn": "Copy",
|
|
114
|
+
"copiedToast": "Copied",
|
|
115
|
+
"aboutLabel": "About this plugin",
|
|
116
|
+
"trustedLabel": "Platform-verified source",
|
|
117
|
+
"today": "Updated today",
|
|
118
|
+
"daysAgo": "Updated {0} days ago",
|
|
119
|
+
"authoredBy": "Original authors & license: ",
|
|
120
|
+
"installedBadge": "✓ Установлен",
|
|
121
|
+
"alreadyInstalled": "✓ Установлен",
|
|
122
|
+
"restartBanner": "изменения внесены — перезапустите DeepSeek Harness",
|
|
123
|
+
"uninstall": "Удалить",
|
|
124
|
+
"confirmRemove": "Подтверждаете?",
|
|
125
|
+
"uninstalling": "Удаление…",
|
|
126
|
+
"uninstallConfirmDesc": "Плагин будет удалён из текущего профиля.",
|
|
127
|
+
"restartHint": "Как перезапустить: остановите текущий процесс dsh и запустите его снова (например, dsh web)",
|
|
128
|
+
"confirmTitle": "Установка",
|
|
129
|
+
"confirmWarn": "Плагины — сторонний код сообщества. Устанавливая, вы доверяете этому источнику; сборочные скрипты по умолчанию заблокированы.",
|
|
130
|
+
"cancel": "Отмена",
|
|
131
|
+
"empty": "Подходящих плагинов нет",
|
|
132
|
+
"installedEmpty": "Плагинов сообщества пока нет — загляните во вкладку «Обзор»",
|
|
133
|
+
"loadFail": "Не удалось загрузить каталог плагинов, попробуйте позже",
|
|
134
|
+
"installFail": "Установить не удалось",
|
|
135
|
+
"viewSource": "Исходник",
|
|
136
|
+
"hotBanner": "плагины готовы — обновите страницу, чтобы ими пользоваться",
|
|
137
|
+
"refreshBanner": "изменения применены — обновите страницу, чтобы их увидеть",
|
|
138
|
+
"refresh": "Обновить",
|
|
139
|
+
"update": "Обновить",
|
|
140
|
+
"updating": "Обновление…",
|
|
141
|
+
"updated": "✓ Обновлён — перезапустите, чтобы применить",
|
|
142
|
+
"cancelOp": "Отменить",
|
|
143
|
+
"cancelled": "Отменено",
|
|
144
|
+
"busyWait": "Уже выполняется другая операция — дождитесь её окончания (установка, обновление и удаление идут по одной)",
|
|
145
|
+
"agentBusyUpdate": "Агент в настоящее время работает — дождитесь завершения (или отмените его) перед обновлением. Обновления заменяют файлы плагина на месте, поэтому работающий агент может завершиться с ошибкой или смешать версии в процессе выполнения.",
|
|
146
|
+
"agentBusyInstall": "Агент в настоящее время работает — дождитесь завершения (или отмените его) перед установкой. Установка изменяет файлы плагина, поэтому работающий агент может завершиться с ошибкой в процессе.",
|
|
147
|
+
"compatRiskBanner": "Обнаружен риск несовместимости — откройте Диагностику перед перезапуском или откатите эту операцию.",
|
|
148
|
+
"goDiagnose": "Открыть диагностику",
|
|
149
|
+
"rollbackNow": "Откатить",
|
|
150
|
+
"rollingBack": "Откат изменений…",
|
|
151
|
+
"approveBuilds": "Разрешить сборочные скрипты и повторить",
|
|
152
|
+
"buildsSkipped": "Этому плагину нужны сборочные скрипты; по умолчанию они заблокированы ради безопасности. Разрешите их и переустановите:",
|
|
153
|
+
"restartNow": "Перезапустить",
|
|
154
|
+
"dismiss": "Скрыть",
|
|
155
|
+
"dismissNotice": "Скрыть это уведомление",
|
|
156
|
+
"restarting": "Перезапуск…",
|
|
157
|
+
"restartFail": "Перезапустить не удалось",
|
|
158
|
+
"restartTimeout": "Не дождались запуска DeepSeek Harness",
|
|
159
|
+
"updateNow": "Обновить сейчас",
|
|
160
|
+
"updateFail": "Обновить не удалось",
|
|
161
|
+
"upToDate": "Обновлений нет",
|
|
162
|
+
"linkedDev": "подключён как разработка",
|
|
163
|
+
"exportLog": "Выгрузить журнал",
|
|
164
|
+
"exportingLog": "Выгрузка…",
|
|
165
|
+
"exportedLog": "Журнал выгружен: dsh-market-log.txt — приложите его к обращению",
|
|
166
|
+
"exportLogFail": "Не удалось выгрузить журнал",
|
|
167
|
+
"readme": "README",
|
|
168
|
+
"terminalWarn": "Похоже, это плагин для терминала: в веб-профиле он может ничего не делать или даже сломать запуск DeepSeek Harness. Прочитайте его README и ставьте в тот профиль, для которого он написан.",
|
|
169
|
+
"envMissing": "Перед установкой плагинов нужен один небольшой компонент",
|
|
170
|
+
"envFix": "Настроить автоматически",
|
|
171
|
+
"envFixing": "Настройка…",
|
|
172
|
+
"envFixFail": "Автоматическая настройка не удалась — выгрузите журнал и пришлите нам файл",
|
|
173
|
+
"loading": "Загрузка каталога…",
|
|
174
|
+
"backTop": "Наверх",
|
|
175
|
+
"confirm": "Подтвердить",
|
|
176
|
+
"cmdDetails": "Команда установки",
|
|
177
|
+
"catsMore": "Ещё",
|
|
178
|
+
"catsLess": "Свернуть",
|
|
179
|
+
"filter": "Фильтр",
|
|
180
|
+
"filterSort": "Поле сортировки",
|
|
181
|
+
"filterDir": "Порядок",
|
|
182
|
+
"filterTime": "Вышло за",
|
|
183
|
+
"sortDownloads": "npm загрузки (30д)",
|
|
184
|
+
"sortStars": "Звёзды",
|
|
185
|
+
"sortAdded": "Дата выпуска",
|
|
186
|
+
"sortDesc": "По убыванию",
|
|
187
|
+
"sortAsc": "По возрастанию",
|
|
188
|
+
"sortNewest": "Сначала новые",
|
|
189
|
+
"sortOldest": "Сначала старые",
|
|
190
|
+
"timeAll": "Всё время",
|
|
191
|
+
"timeDay": "Сутки",
|
|
192
|
+
"timeWeek": "7 дней",
|
|
193
|
+
"timeMonth": "30 дней",
|
|
194
|
+
"timeQuarter": "90 дней",
|
|
195
|
+
"timeYear": "Год",
|
|
196
|
+
"published": "выпущен",
|
|
197
|
+
"prevPage": "Назад",
|
|
198
|
+
"nextPage": "Дальше",
|
|
199
|
+
"firstPage": "В начало",
|
|
200
|
+
"lastPage": "В конец",
|
|
201
|
+
"pageInfo": "Страница {0} из {1}",
|
|
202
|
+
"perPage": "На странице",
|
|
203
|
+
"marketUpdate": "Доступно обновление маркета — обновить",
|
|
204
|
+
"updateAll": "Обновить все",
|
|
205
|
+
"tabThemes": "Темы",
|
|
206
|
+
"tabAppearance": "Appearance & Experience",
|
|
207
|
+
"tabUtility": "Tools & Capabilities",
|
|
208
|
+
"tabAgentic": "Agents & Skills",
|
|
209
|
+
"tabBackup": "Копия и восстановление",
|
|
210
|
+
"backupLocal": "Локальный файл",
|
|
211
|
+
"backupDownload": "Выгрузить копию",
|
|
212
|
+
"backupImport": "Импортировать и посмотреть",
|
|
213
|
+
"backupHint": "Включает список плагинов и настройки профиля, но не node_modules. Восстановление ставит плагины заново по списку.",
|
|
214
|
+
"webdav": "WebDAV",
|
|
215
|
+
"webdavPreset": "Готовая настройка провайдера",
|
|
216
|
+
"webdavUrl": "Адрес файла копии",
|
|
217
|
+
"webdavUser": "Имя пользователя (необязательно)",
|
|
218
|
+
"webdavPassword": "Пароль (необязательно)",
|
|
219
|
+
"webdavUpload": "Выгрузить копию",
|
|
220
|
+
"webdavRestore": "Восстановить с WebDAV",
|
|
221
|
+
"autoBackup": "Резервная копия раз в сутки (при открытии маркета)",
|
|
222
|
+
"webdavNote": "Адрес WebDAV и имя пользователя остаются только в этом браузере; пароль хранится на сервере и вводится заново каждую сессию.",
|
|
223
|
+
"localOnly": "Адрес WebDAV и учётные данные остаются только в этом браузере.",
|
|
224
|
+
"credsWarning": "Внимание: в копию попадают настройки профиля и файлы, где могут лежать секреты (config.toml, .env и подобные). Локальная выгрузка ничего не вырезает, поэтому выгружайте на WebDAV, которому доверяете.",
|
|
225
|
+
"gist": "GitHub Gist",
|
|
226
|
+
"gistToken": "Токен GitHub (только в памяти вкладки — после обновления страницы введите заново; оставьте пустым, чтобы использовать серверный DSH_GITHUB_TOKEN или залогиненный gh CLI)",
|
|
227
|
+
"gistId": "Идентификатор или ссылка на Gist (при выгрузке оставьте пустым, чтобы создать новый приватный)",
|
|
228
|
+
"gistVerify": "Проверить связь",
|
|
229
|
+
"gistExport": "Выгрузить в Gist…",
|
|
230
|
+
"gistImport": "Загрузить из Gist",
|
|
231
|
+
"gistExportDone": "Выгружено в Gist",
|
|
232
|
+
"gistVerifySource": "Проверено — источник токена: {0}",
|
|
233
|
+
"gistSrcToken": "введён вручную",
|
|
234
|
+
"gistSrcEnv": "переменная DSH_GITHUB_TOKEN",
|
|
235
|
+
"gistSrcGh": "gh CLI",
|
|
236
|
+
"gistExportSelect": "Выберите плагины для выгрузки",
|
|
237
|
+
"gistExportHint": "Отмечено всё — полная копия вместе с настройками; если снять любую галочку, выгрузятся только выбранные плагины, а настройки — по отдельному флажку.",
|
|
238
|
+
"gistSelectAll": "Выбрать все",
|
|
239
|
+
"gistSelectNone": "Снять выбор",
|
|
240
|
+
"gistIncludeConfig": "Включить файлы настроек (в них могут быть секреты)",
|
|
241
|
+
"gistNoPlugins": "В этом профиле нечего выгружать",
|
|
242
|
+
"gistSpecLocal": "локально",
|
|
243
|
+
"gistExportGo": "Выгрузить",
|
|
244
|
+
"gistCreated": "Выгружено:",
|
|
245
|
+
"gistErrTimeout": "GitHub не ответил вовремя — проверьте сеть и повторите",
|
|
246
|
+
"gistErrNetwork": "GitHub недоступен — проверьте сеть или прокси",
|
|
247
|
+
"gistErrAuth": "GitHub не авторизовал: токен неверный или истёк, либо gh CLI не залогинен",
|
|
248
|
+
"gistErrNotFound": "Gist не найден — проверьте идентификатор или ссылку",
|
|
249
|
+
"gistErrRateLimit": "Достигнут лимит GitHub, либо у токена нет права gist",
|
|
250
|
+
"gistErrInvalid": "Содержимое Gist повреждено или формат копии не поддерживается",
|
|
251
|
+
"gistModeUpdate": "Обновить Gist из поля",
|
|
252
|
+
"gistModeCreate": "Создать новый приватный Gist",
|
|
253
|
+
"gistErrNoId": "Для обновления нужен идентификатор Gist — заполните поле или переключитесь на «Создать»",
|
|
254
|
+
"gistNote": "В отличие от локальной выгрузки (архив на этой машине), Gist нужен для переноса между машинами: выгрузите в приватный Gist и загрузите на другом компьютере под тем же аккаунтом. Токен живёт только в памяти этой вкладки и никогда не пишется в браузерное хранилище; если залогинен gh CLI или задан DSH_GITHUB_TOKEN, вводить его не нужно. Gist приватный, до 1 МБ на файл.",
|
|
255
|
+
"backupWorking": "Выполняется…",
|
|
256
|
+
"backupDone": "Копия загружена",
|
|
257
|
+
"restoreDone": "Восстановление завершено — перезапустите DeepSeek Harness",
|
|
258
|
+
"restorePartial": "Восстановление продолжилось, но эти плагины установить не удалось:",
|
|
259
|
+
"restoreConfirm": "Восстановление перезапишет настройки этого профиля и переустановит плагины. Продолжить?",
|
|
260
|
+
"restorePreviewDone": "Копия загружена. Проверьте вкладку «Установленные» и запускайте восстановление.",
|
|
261
|
+
"restoreMissing": "Плагинов из копии не установлено: {0}",
|
|
262
|
+
"restoreStart": "Начать восстановление",
|
|
263
|
+
"notInstalled": "Не установлен",
|
|
264
|
+
"themeApply": "Применить",
|
|
265
|
+
"themeActive": "Активна",
|
|
266
|
+
"themeDeactivate": "Отключить",
|
|
267
|
+
"themeEmpty": "Других тем в каталоге пока нет — следите за обновлениями",
|
|
268
|
+
"progressHint": "Первая установка скачивает и разрешает зависимости — крупные плагины занимают 1–3 минуты",
|
|
269
|
+
"toastReady": "установлен и работает",
|
|
270
|
+
"toastTheme": "теперь активна. Переключить можно в «Настройки → Маркет плагинов → Темы»",
|
|
271
|
+
"gotIt": "Понятно",
|
|
272
|
+
"stateLive": "Работает (загружен на лету)",
|
|
273
|
+
"stateRestart": "Установлен — перезапустите, чтобы применить",
|
|
274
|
+
"stateInert": "Установлен, но не является плагином слоя профиля",
|
|
275
|
+
"stateBroken": "Установлен, но не прошёл проверку",
|
|
276
|
+
"stateDisabled": "Выключен",
|
|
277
|
+
"phaseResolving": "Разрешение зависимостей",
|
|
278
|
+
"phaseDownloading": "Загрузка",
|
|
279
|
+
"phaseLinking": "Связывание",
|
|
280
|
+
"phaseBuilding": "Сборочные скрипты",
|
|
281
|
+
"cancelling": "Отмена…",
|
|
282
|
+
"packagesDone": "обработано пакетов: {0}",
|
|
283
|
+
"updatedLive": "✓ Обновлён — работает",
|
|
284
|
+
"partialNote": "Отменено — часть изменений уже применена",
|
|
285
|
+
"actWhy": "Почему не активен?",
|
|
286
|
+
"tabList": "Список",
|
|
287
|
+
"tabGroups": "Группы",
|
|
288
|
+
"disabledState": "Выключен",
|
|
289
|
+
"enable": "Включить",
|
|
290
|
+
"disable": "Выключить",
|
|
291
|
+
"toggleFail": "Переключить не удалось",
|
|
292
|
+
"patchDisabled": "Выключен патчем",
|
|
293
|
+
"patchForced": "Включён патчем",
|
|
294
|
+
"deprecatedBadge": "Устарел",
|
|
295
|
+
"deprecatedWarn": "Каталог помечает этот плагин как устаревший; новым пользователям ставить его не советуют.",
|
|
296
|
+
"viewReplacement": "Посмотреть замену",
|
|
297
|
+
"installReplacement": "Установить замену",
|
|
298
|
+
"replacementHint": "Каталог предлагает",
|
|
299
|
+
"groupNew": "Новая группа",
|
|
300
|
+
"groupNamePh": "Название группы",
|
|
301
|
+
"groupRename": "Переименовать",
|
|
302
|
+
"groupDelete": "Удалить группу",
|
|
303
|
+
"groupConfirmDelete": "Удалить группу?",
|
|
304
|
+
"ungrouped": "Без группы",
|
|
305
|
+
"groupAssign": "Назначить",
|
|
306
|
+
"groupRemove": "Убрать",
|
|
307
|
+
"groupEmpty": "Пока пусто",
|
|
308
|
+
"groupMixed": "Включена частично",
|
|
309
|
+
"noGroups": "Групп пока нет — создайте",
|
|
310
|
+
"groupCreate": "Создать",
|
|
311
|
+
"groupAdd": "Добавить плагин",
|
|
312
|
+
"groupAddTheme": "Добавить тему",
|
|
313
|
+
"groupAddEmpty": "Все установленные плагины уже в этой группе",
|
|
314
|
+
"tabDiagnostics": "Диагностика",
|
|
315
|
+
"checkIssues": "Найдены проблемы",
|
|
316
|
+
"checkErrors": "Ошибки",
|
|
317
|
+
"checkWarnings": "Предупреждения",
|
|
318
|
+
"checkLoading": "Анализ профиля…",
|
|
319
|
+
"checkLoadFail": "Не удалось загрузить диагностику: ",
|
|
320
|
+
"checkProfile": "профиль",
|
|
321
|
+
"checkErrorsEmpty": "Ошибок нет",
|
|
322
|
+
"checkWarningsEmpty": "Предупреждений нет",
|
|
323
|
+
"checkBundles": "Порядок загрузки плагинов",
|
|
324
|
+
"checkBundlesEmpty": "Слои плагинов не объявлены",
|
|
325
|
+
"checkOfficial": "официальный",
|
|
326
|
+
"checkCommunity": "сообщество",
|
|
327
|
+
"checkSource": "источник",
|
|
328
|
+
"checkEntries": "записей (идентификаторы загрузчика)",
|
|
329
|
+
"checkPatch": "файл патча",
|
|
330
|
+
"checkDir": "каталог",
|
|
331
|
+
"checkDuplicates": "Повторяющиеся записи плагинов",
|
|
332
|
+
"checkDuplicatesEmpty": "Повторов нет",
|
|
333
|
+
"checkHoisted": "поднят",
|
|
334
|
+
"checkPeerMismatches": "Расхождения версий зависимостей",
|
|
335
|
+
"checkPeerEmpty": "Расхождений версий зависимостей нет",
|
|
336
|
+
"checkPeerInfo": "{0} записей к сведению (не подтверждено)",
|
|
337
|
+
"checkPeerOverview": "расхождений: {0} · к сведению: {1}",
|
|
338
|
+
"checkRange": "объявленный диапазон",
|
|
339
|
+
"checkResolved": "разрешённая версия",
|
|
340
|
+
"checkSatisfied": "удовлетворено",
|
|
341
|
+
"checkUnsatisfied": "не удовлетворено",
|
|
342
|
+
"checkUnknown": "неизвестно",
|
|
343
|
+
"checkMultiVersion": "Пакеты ядра в нескольких версиях",
|
|
344
|
+
"checkMultiEmpty": "Пакетов ядра в нескольких версиях нет",
|
|
345
|
+
"checkOverrides": "Переопределения",
|
|
346
|
+
"checkOverridesEmpty": "Переопределений нет",
|
|
347
|
+
"checkOverridden": "переопределяет",
|
|
348
|
+
"checkOrphans": "Неверные записи конфига",
|
|
349
|
+
"checkOrphansEmpty": "Неверных записей нет",
|
|
350
|
+
"orphanInsertNotArray": "неверный формат",
|
|
351
|
+
"orphanInsertTargetMissing": "цель не найдена",
|
|
352
|
+
"orphanInsertTargetNotGroup": "цель не является группой",
|
|
353
|
+
"orphanIdRequired": "нет идентификатора",
|
|
354
|
+
"orphanPatchTargetMissing": "цель не найдена",
|
|
355
|
+
"orphanNameMismatch": "имя не совпадает",
|
|
356
|
+
"orphanReasonOther": "другое",
|
|
357
|
+
"diagExplain": "Что это",
|
|
358
|
+
"diagExplainText": "Эта страница ищет плагины, конфликтующие друг с другом, несовпадения версий зависимостей и неверный порядок загрузки. Термины:",
|
|
359
|
+
"diagTermBundle": "бандл — один пакет плагина, применяется по порядку",
|
|
360
|
+
"diagTermEntry": "запись — то, что плагин добавляет в работающую композицию",
|
|
361
|
+
"diagTermPeer": "peer-зависимость — пакет, который плагин ждёт от хоста",
|
|
362
|
+
"diagTermShadow": "перекрытие — старая копия из плагина закрывает более новую хостовую",
|
|
363
|
+
"diagTermOrphan": "неверная запись — конфиг ссылается на то, чего нет",
|
|
364
|
+
"diagTermOrder": "порядок загрузки — очерёдность активации; более поздний может перекрыть более ранний",
|
|
365
|
+
"orderSection": "Порядок загрузки",
|
|
366
|
+
"orderUp": "↑",
|
|
367
|
+
"orderDown": "↓",
|
|
368
|
+
"orderApply": "Применить порядок",
|
|
369
|
+
"orderDrag": "Перетащите для изменения порядка",
|
|
370
|
+
"orderDragHint": "Перетаскивайте ⠿ для сортировки. Изменения сохраняются при нажатии «Применить порядок».",
|
|
371
|
+
"orderConflicts": "конфликты before/after в текущем порядке",
|
|
372
|
+
"orderApplied": "✓ Применено — перезапустите для активации",
|
|
373
|
+
"orderSuggestApply": "Применить рекомендуемый порядок",
|
|
374
|
+
"orderSuggestHint": "Рекомендуемый порядок (автосортировка по правилам before/after):",
|
|
375
|
+
"orderAutoSort": "Автосортировка",
|
|
376
|
+
"orderAlreadyOptimal": "Текущий порядок уже оптимален и удовлетворяет всем зависимостям плагинов",
|
|
377
|
+
"orderTrialFail": "Ошибка статической валидации композиции: {0}",
|
|
378
|
+
"orderDiffHint": "Этот порядок изменит композицию: {0} переопределений, {1} изолированных, {2} дубликатов",
|
|
379
|
+
"duplicateNames": "Плагины с одинаковыми именами (к сведению, это не конфликт)",
|
|
380
|
+
"orderReset": "Сбросить черновик",
|
|
381
|
+
"checkRefresh": "Проверить заново",
|
|
382
|
+
"aiFix": "Исправление через AI",
|
|
383
|
+
"aiFixHint": "Передать отчёт диагностики в новую сессию Агента (скопировано в буфер обмена)",
|
|
384
|
+
"aiFixIntro": "Пожалуйста, помоги исправить проблемы с плагинами в DeepSeek Harness (профиль: {0}). Данные диагностики:",
|
|
385
|
+
"aiFixScope": "Если нет — вы процесс вне целевого харнесса: вы можете переупорядочить dsh.profile.bundles, отключить/включить плагины или скорректировать cordis.patch.yml. Официальные бандлы фиксированы; опишите план перед изменениями.",
|
|
386
|
+
"aiFixConservative": "Действуйте консервативно: исправляйте только явные ошибки (сбои запуска, дубликаты, несовпадения критических зависимостей). Не выполняйте лишних обновлений; объясняйте каждое действие и ждите подтверждения.",
|
|
387
|
+
"aiFixCopied": "Промпт для исправления скопирован — вставьте его в новую беседу с агентом",
|
|
388
|
+
"aiFixFail": "Буфер обмена недоступен — скопируйте диагностику вручную ниже",
|
|
389
|
+
"catConflict": "Конфликты",
|
|
390
|
+
"catDeps": "Зависимости",
|
|
391
|
+
"catOrder": "Порядок",
|
|
392
|
+
"checkOrderTip": "порядок загрузки бандла сообщества конфликтует с объявленными правилами before/after",
|
|
393
|
+
"diagOkAll": "Всё в порядке: конфликтов, проблем с зависимостями и порядком не найдено",
|
|
394
|
+
"marketNoToggle": "Сам маркет выключить нельзя",
|
|
395
|
+
"hostDependencyWarning": "Плагин перечисляет в зависимостях известные общие пакеты хоста DSH. Это может перекрыть хостовую версию; проверка смотрит только манифест и не подтверждает, что в рантайме появился дубль:",
|
|
396
|
+
"hostDependencyMore": "ещё находок пропущено: {0}"
|
|
397
|
+
}
|
|
398
|
+
}
|