@goodandready/dsh-russian-lang 0.2.1 → 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.
@@ -0,0 +1,135 @@
1
+ {
2
+ "config-manager-market": {
3
+ "section.label": "Каталог конфигураций",
4
+ "section.description": "Просмотр и загрузка конфигураций сообщества (публичные Git-репозитории; загружаемый контент не является доверенным — проверяется перед импортом)",
5
+ "config.title": "Market Repository",
6
+ "config.refresh": "Refresh",
7
+ "config.refreshing": "Refreshing…",
8
+ "list.empty": "The built-in market has not loaded yet. Click \\«Refresh\\» first.",
9
+ "list.browse": "Browse",
10
+ "list.loading": "Reading market…",
11
+ "list.noItems": "This market has no items.",
12
+ "list.searchPlaceholder": "Search name / author / description…",
13
+ "list.categoriesAll": "All categories",
14
+ "list.sectionsAll": "All sections",
15
+ "list.sectionsUnknown": "{count} more item(s) not downloaded yet — cannot match by section",
16
+ "list.sourceAll": "All sources",
17
+ "list.sourceOfficial": "Official",
18
+ "list.sourcePersonal": "Community",
19
+ "list.sortDefault": "Default order",
20
+ "list.sortUpdated": "Recently updated",
21
+ "list.sortStars": "Most starred",
22
+ "list.sortName": "Name A–Z",
23
+ "list.stars": "⭐ {count}",
24
+ "list.starsHint": "Stars of the source repo (repo-level, not per item)",
25
+ "list.count": "{count} item(s)",
26
+ "list.filtered": "({count} after filter)",
27
+ "list.cacheCached": "cached",
28
+ "list.cacheFresh": "just fetched",
29
+ "list.cacheNone": "not cached",
30
+ "list.download": "View details",
31
+ "detail.title": "Item Details",
32
+ "detail.downloadedAt": "Downloaded: {time}",
33
+ "detail.version": "version {version}",
34
+ "detail.errors": "Verification errors:",
35
+ "detail.emptySections": "This item contains no importable sections",
36
+ "detail.needReview": "Needs human confirmation",
37
+ "detail.previewHint": "Read-only preview below (changes nothing). Confirming the import reuses the existing safe pipeline (snapshot + validation + rollback on failure).",
38
+ "detail.impact.willChange": "{count} item(s) will change",
39
+ "detail.impact.unchanged": "{count} identical",
40
+ "detail.impact.conflicts": "{count} conflict(s)",
41
+ "detail.impact.secrets": "{count} secret(s) to re-enter",
42
+ "detail.impact.paths": "{count} path mapping(s)",
43
+ "detail.impact.restart": "DSH restart required",
44
+ "detail.import": "Confirm import",
45
+ "detail.back": "Back to list",
46
+ "detail.approval.title": "Approve sections to import",
47
+ "detail.approval.highRiskHint": "These sections install plugins / write files / inject global instructions / register MCP / restore sessions — high-risk changes, not imported by default. Check each one to import it.",
48
+ "detail.approval.requiresApproval": "Requires approval",
49
+ "detail.approval.safe": "Importable",
50
+ "detail.approval.count": "{selected}/{total} section(s) approved",
51
+ "detail.noApproval": "No sections approved — cannot import",
52
+ "myconfigs.tab.browse": "Browse Market",
53
+ "myconfigs.tab.myconfigs": "My Configs",
54
+ "myconfigs.back": "Back to market",
55
+ "myconfigs.login.title": "GitHub sign-in",
56
+ "myconfigs.login.hint": "After signing in you can upload configs to your public repo (auto-created as <login>/dsh-configs) and submit a listing PR to the official market (target repo is fixed and not editable).",
57
+ "myconfigs.login.checking": "Checking sign-in status…",
58
+ "myconfigs.login.loggedInAs": "Signed in as {login}",
59
+ "myconfigs.login.targetRepo": "Listing target (fixed): {repo}",
60
+ "myconfigs.login.repoMissing": "Config repo not created yet — it will be auto-created (public) on first upload",
61
+ "myconfigs.login.repoReady": "Config repo: {repo}",
62
+ "myconfigs.login.start": "Sign in with GitHub",
63
+ "myconfigs.login.relogin": "Sign in again",
64
+ "myconfigs.login.cancel": "Cancel sign-in",
65
+ "myconfigs.login.userCode": "One-time code: {code}",
66
+ "myconfigs.login.openAuth": "Open authorization page",
67
+ "myconfigs.upload.title": "Upload",
68
+ "myconfigs.upload.selectHint": "Pick an exported config zip (create a backup on the \\«Export\\» tab first, then pick it here). The market channel never carries secrets — backups containing secrets are rejected.",
69
+ "myconfigs.upload.select": "Choose ZIP…",
70
+ "myconfigs.upload.reselect": "Choose again",
71
+ "myconfigs.upload.selected": "Selected: {name}",
72
+ "myconfigs.upload.validate": "Run validation",
73
+ "myconfigs.upload.validating": "Validating…",
74
+ "myconfigs.upload.validateOk": "Validation passed: valid content, no secrets",
75
+ "myconfigs.upload.validateSecrets": "Contains secrets: the market channel never carries secrets — upload rejected",
76
+ "myconfigs.upload.validateInvalid": "Content validation failed — cannot upload",
77
+ "myconfigs.upload.form.title": "Item info",
78
+ "myconfigs.upload.form.name": "Name",
79
+ "myconfigs.upload.form.nameHint": "Prefilled from the zip file name; editable",
80
+ "myconfigs.upload.form.description": "Description (optional)",
81
+ "myconfigs.upload.form.categories": "Categories (optional, comma-separated)",
82
+ "myconfigs.upload.form.autoHint": "These fields are generated automatically:",
83
+ "myconfigs.upload.mode.title": "Publish mode",
84
+ "myconfigs.upload.mode.migrate": "Migrate (keep everything)",
85
+ "myconfigs.upload.mode.share": "Share (auto-exclude sensitive content)",
86
+ "myconfigs.upload.mode.shareHint": "Share mode auto-excludes device/platform-specific sections (credentials status / sessions / MCP / workspaces, etc.) and enforces privacy scanning — any sensitive trace blocks publishing instead of just warning.",
87
+ "myconfigs.upload.run": "Upload",
88
+ "myconfigs.upload.running": "Uploading…",
89
+ "myconfigs.update.title": "Update config",
90
+ "myconfigs.update.hint": "The version will be bumped automatically (+1); item info is prefilled (name editable).",
91
+ "myconfigs.update.run": "Update",
92
+ "myconfigs.update.running": "Updating…",
93
+ "myconfigs.update.zipHint": "Updating needs a new config zip: pick one and it will be validated automatically, then you can update.",
94
+ "myconfigs.update.selectZip": "Choose new ZIP…",
95
+ "myconfigs.result.title": "Upload/update complete",
96
+ "myconfigs.result.version": "version {version}",
97
+ "myconfigs.result.sha256": "SHA-256: {hash}",
98
+ "myconfigs.result.sections": "Sections: {sections}",
99
+ "myconfigs.result.repo": "Config repo",
100
+ "myconfigs.result.openRepo": "Open repo",
101
+ "myconfigs.result.pr": "Listing PR #{number}",
102
+ "myconfigs.result.openPr": "View PR",
103
+ "myconfigs.result.listingPending": "Uploaded ✓ submitting listing in the background (fork + PR) — list status will update shortly",
104
+ "myconfigs.result.listingFailed": "Listing failed",
105
+ "myconfigs.result.relist": "Resubmit listing",
106
+ "myconfigs.list.title": "Uploaded",
107
+ "myconfigs.list.empty": "No configs uploaded yet",
108
+ "myconfigs.list.loading": "Loading…",
109
+ "myconfigs.list.refresh": "Refresh",
110
+ "myconfigs.list.summary": "{total} item(s) · {listed} listed · {pending} pending · {none} not listed",
111
+ "myconfigs.list.openRepo": "Open repo",
112
+ "myconfigs.item.update": "Update",
113
+ "myconfigs.item.install": "Install locally",
114
+ "myconfigs.item.openPr": "View listing PR",
115
+ "myconfigs.delete.run": "Delete",
116
+ "myconfigs.delete.confirm": "Confirm delete",
117
+ "myconfigs.delete.confirmTitle": "Delete item",
118
+ "myconfigs.delete.confirmText": "Delete? This permanently removes the item index and files from your config repo (not recoverable)",
119
+ "myconfigs.delete.delistStarted": "Local item deleted; a \\«delist PR\\» has been submitted (removal from the official market needs human merge; the item may still appear in the market meanwhile)",
120
+ "myconfigs.delete.prClosed": "Local item deleted; its pending listing PR has been closed",
121
+ "disclaimer.title": "Disclaimer",
122
+ "disclaimer.upload.text": "You are about to upload configs to your public repo (<login>/dsh-configs) and submit a listing request to the official market.\\n\\nUploaded content becomes publicly visible and requires human review before entering the official market. Please ensure:\\n· No real secrets / credentials are included (env-var references like $VAR are safe);\\n· No personal privacy or local environment info is included;\\n· You have the right to share these configs.",
123
+ "disclaimer.download.text": "You are about to download configs from a public network market and import them locally.\\n\\nDownloaded content is untrusted input: not officially reviewed and may carry risks (installing plugins / writing files / changing settings).\\n· Everything is validated and shown before import; high-risk sections are not imported by default and require individual approval;\\n· A snapshot is auto-created before import and rollback is available on failure;\\n· Please verify the source and content before confirming the import.",
124
+ "disclaimer.install.text": "You are about to reinstall configs from your public repo to this machine.\\n\\nThis is content you uploaded before, but it still goes through the same validation and per-section approval:\\n· High-risk sections are not imported by default and require individual approval;\\n· A snapshot is auto-created before import and rollback is available on failure.",
125
+ "disclaimer.confirm": "I understand, continue",
126
+ "disclaimer.dontAsk": "Don't ask again (no more disclaimers for this action)",
127
+ "myconfigs.error.loadStatus": "Failed to read sign-in status",
128
+ "myconfigs.error.loadItems": "Failed to read uploaded items",
129
+ "common.cancel": "Отмена",
130
+ "common.close": "Закрыть",
131
+ "common.retry": "Повторить",
132
+ "common.loading": "Загрузка…",
133
+ "common.unknownError": "Неизвестная ошибка"
134
+ }
135
+ }
@@ -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
+ }