# πŸ“¦ @goodandready/dsh-russian-lang

Полная русская локализация, умная Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ исправлСниС раскладки ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ для DeepSeek Harness

npm version license DSH Plugin Node version

DSH v0.2.1-rc.4+ ΠŸΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ 100% 11880 ΠΊΠ»ΡŽΡ‡Π΅ΠΉ 100% ручная Π²Ρ‹Ρ‡ΠΈΡ‚ΠΊΠ°

πŸ‡·πŸ‡Ί Русский β€’ πŸ‡¨πŸ‡³ δΈ­ζ–‡θ―΄ζ˜Ž β€’ πŸ“ Design Contract

ВсС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π°Π²Ρ‚ΠΎΡ€Π°

dsh-russian-lang hero banner

⭐ Если Π²Π°ΠΌ нравится этот ΠΏΠ»Π°Π³ΠΈΠ½, ΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΅ΠΌΡƒ Π·Π²Π΅Π·Π΄Ρƒ Π½Π° GitHub β€” это ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ ΠΌΠ½Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Π³ΠΈΠ½ Π²Π°ΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ мСня Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ дальшС.

πŸ› Если Π²Ρ‹ нашли Π±Π°Π³ ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», создайтС issue Π½Π° GitHub Π½Π° любом языкС β€” я Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΡŽ вашС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… вСрсий ΠΏΠ»Π°Π³ΠΈΠ½Π°.
--- ## ⚑ ΠžΠ±Π·ΠΎΡ€ **`dsh-russian-lang`** β€” ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ, Π²ΡΠ΅ΠΎΠ±ΡŠΠ΅ΠΌΠ»ΡŽΡ‰ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ русской Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для Π²Π΅Π±-интСрфСйса [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh). ΠŸΠ°ΠΊΠ΅Ρ‚ Π½Π΅ просто ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ интСрфСйс ядра ΠΈ всСх популярных ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² экосистСмы, Π½ΠΎ ΠΈ добавляСт ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠΉ русскоязычной Ρ€Π°Π±ΠΎΡ‚Ρ‹: **100% ручная Π²Ρ‹Ρ‡ΠΈΡ‚ΠΊΠ° Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ²**, **грамматичСскиС Ρ„ΠΎΡ€ΠΌΡ‹ мноТСствСнного числа (plural)**, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ **расстановку экранной Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠΈ** (Β«Ρ‘Π»ΠΎΡ‡ΠΊΠΈΒ», Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Ρ‚ΠΈΡ€Π΅, Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹) ΠΈ **исправлСниС ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎ Π½Π°Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ тСкста** Π½Π° Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ раскладкС ΠΏΠΎ горячСй клавишС Alt+L. ```mermaid graph LR subgraph DSHCore [Π―Π΄Ρ€ΠΎ DeepSeek Harness] DSH[Web UI Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ] --> Loader[Π—Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ dsh-russian-lang] end subgraph TranslationLayer [Π‘Π»ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΈ Π°Π΄Π°ΠΏΡ‚Π°Ρ†ΠΈΠΈ β€” 10 432 ΠΊΠ»ΡŽΡ‡Π΅ΠΉ / 100% Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΎ] Loader --> CoreDict[58 ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π² ΠΈΠΌΡ‘Π½ ядра DSH / 2 442 ΠΊΠ»ΡŽΡ‡Π°] Loader --> PluginDict[43 ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²Π° ΠΈΠΌΡ‘Π½ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² DSH / 7 781 ΠΊΠ»ΡŽΡ‡Π°] Loader --> PluralEngine[Π”Π²ΠΈΠΆΠΎΠΊ грамматичСских Plural-Ρ„ΠΎΡ€ΠΌ: 1/2/5] end subgraph SmartFeatures [Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ] Loader --> Typo[ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠΈ: ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ-Β«Ρ‘Π»ΠΎΡ‡ΠΊΠΈΒ» ΠΈ Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Ρ‚ΠΈΡ€Π΅] Loader --> LayoutFix[Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ раскладки + Hotkey Alt+L] Loader --> Spell[Активация русской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ] Loader --> Overrides[ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ пСрСопрСдСлСния ΠΊΠ»ΡŽΡ‡Π΅ΠΉ] end subgraph Result [Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚] CoreDict --> NativeUI[Нативный русский интСрфСйс] PluginDict --> NativeUI PluralEngine --> NativeUI Typo --> NativeUI LayoutFix --> NativeUI Spell --> NativeUI Overrides --> NativeUI end style DSHCore fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4 style TranslationLayer fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4 style SmartFeatures fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4 style Result fill:#181825,stroke:#f38ba8,stroke-width:2px,color:#cdd6f4 ``` --- ## ✨ ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ возмоТностСй ### 1. 🌐 100% ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ядра DSH (58 пространств ΠΈΠΌΡ‘Π½, 2 442 ΠΊΠ»ΡŽΡ‡Π°) * **Π”ΠΈΠ°Π»ΠΎΠ³ΠΈ ΠΈ пСрСписка (`conversation`)**: Π»Π΅Π½Ρ‚Π° сообщСний, Π²Π΅Ρ‚ΠΊΠΈ обсуТдСний, ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ‹Π·ΠΎΠ²Π° инструмСнтов, статус Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ рассуТдСний (thinking traces). * **МодСли ΠΈ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ (`settings.models`)**: ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ инфСрСнса, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ ΠΈ ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ API. * **ВрСйсы рассуТдСний (`trajectory`)**: Π΄Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ шаги, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² инструмСнтов, Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ визуализация Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. * **Настройки ядра (`settings`, `common`, `settings.theme`)**: ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, горячиС клавиши, систСмныС увСдомлСния, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡˆΡ€ΠΈΡ„Ρ‚ΠΎΠ², ΠΌΠΎΠ΄Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΈ подтвСрТдСния. * **Π Π°Π±ΠΎΡ‡ΠΈΠ΅ области (`workspace`, `subagent`)**: Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ², ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ контСкстом, запуск ΠΈ координация субагСнтов. * **ΠŸΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΈ ΠΈΠ½Π²Π΅Π½Ρ‚Π°Ρ€ΡŒ (`schedule.catalog`, `settings.pluginInventory`, `settings.plugins`)**: Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ задания, ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ установлСнных ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ². * **ΠŸΡ€Π°Π²Π° доступа ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ (`permission.access`, `plan`, `skill`)**: прСсСты ΠΏΡ€Π°Π² (ΠΏΠΎΠ»Π½Ρ‹ΠΉ доступ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅, запись Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ), Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Π½ΠΎΠ² ΠΈ Π½Π°Π²Ρ‹ΠΊΠΈ. > **О качСствС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°.** ВсС **10 432 ΠΊΠ»ΡŽΡ‡Π΅ΠΉ интСрфСйса (2 619 ядра + 7 813 ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²) ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° 100% ΠΈ Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ**. Π§Π΅Ρ€Π½ΠΎΠ²ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Ρ‰Ρ‘Π½ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ (`draft = 0`). ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ рСгулярно валидируСтся автоматичСскими Π»ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΌΠΈ цСлостности плСйсхолдСров, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ соблюдСния глоссария (`glossary.json`) ΠΈ Π΄Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ пСрСполнСния вСрстки. Нашли Π½Π΅Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ β€” ΠΊΠ½ΠΎΠΏΠΊΠ° Β«Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°Β» Π² ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ΅ настроСк создаёт Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ issue. ### 2. 🧩 ВстроСнный ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ 65+ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² экосистСмы DSH (7 781 ΠΊΠ»ΡŽΡ‡Π°) Локализация автоматичСски распространяСтся Π½Π° всС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ‹ экосистСмы DeepSeek Harness: * **`dsh-session-control`** β€” Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ сСссиями: Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ², Π°Ρ€Ρ…ΠΈΠ² ΠΏΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π°ΠΌ, просмотр Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΊ ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΡˆΡƒΠΌΠ°; * **`dsh-kanban` ΠΈ `task-board`** β€” ΠΊΠ°Π½Π±Π°Π½-доски Π·Π°Π΄Π°Ρ‡, ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‡Π΅ΠΊ-листы, Π΄Π΅Π΄Π»Π°ΠΉΠ½Ρ‹, ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ готовности (DoD) ΠΈ шлюз ΠΏΡ€ΠΈΡ‘ΠΌΠΊΠΈ (Acceptance Gate); * **`dsh-cost-meter`** β€” ΡƒΡ‡Ρ‘Ρ‚ стоимости Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ², ΠΊΠ°Π»ΡŒΠΊΡƒΠ»ΡΡ†ΠΈΡ расходов ΠΈ Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹Π΅ сСтки ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ; * **`dsh-goal`** β€” Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹ΠΉ Ρ†Π΅Π»Π΅ΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‰ΠΈΠΉ Π°Π³Π΅Π½Ρ‚ с бСзопасным Ρ†ΠΈΠΊΠ»ΠΎΠΌ ΠΈ рСфлСксиСй; * **`dsh-moa`** β€” многоагСнтная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Mixture-of-Agents; * **`dsh-context-lens` ΠΈ `dsh-context`** β€” Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ‚ΠΎΡ€ контСкста, Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ сТатиС; * **`dsh-time-machine`** β€” снимки Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ области ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚ состояний Ρ„Π°ΠΉΠ»ΠΎΠ²; * **`dsh-shadow-auditor`** β€” Ρ‚Π΅Π½Π΅Π²ΠΎΠΉ Π°ΡƒΠ΄ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ; * **`dsh-cron` ΠΈ `schedule.catalog`** β€” ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ пСриодичСских cron-Π·Π°Π΄Π°Ρ‡; * **`dsh-clinebot` ΠΈ `im-hub`** β€” ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΡˆΠ»ΡŽΠ·Ρ‹ для Telegram, Discord, Slack; * **`dsh-subscriptions`** β€” ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ подписками Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΈ; * **`dsh-voice` ΠΈ `dsh-tts`** β€” распознаваниС Ρ€Π΅Ρ‡ΠΈ ΠΈ голосовоС ΠΎΠ·Π²ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΠ΅; * **`dsh-image-gen`** β€” гСнСрация ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ; * **`dsh-lanmode`** β€” сСтСвой доступ ΠΏΠΎ локальной сСти ΠΈ гСнСрация TLS-сСртификатов; * **`dsh-model-sync`** β€” синхронизация ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈ эндпоинтов; * **`dsh-usage-guard` ΠΈ `token-dashboard`** β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π»ΠΈΠΌΠΈΡ‚ΠΎΠ² ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ° расходов Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²; * **`skills-manager` ΠΈ `dsh-skill-hub`** β€” ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π½Π°Π²Ρ‹ΠΊΠΎΠ² Π°Π³Π΅Π½Ρ‚Π° ΠΈ Π²ΠΈΡ‚Ρ€ΠΈΠ½Π° способностСй; * **`commandcode` ΠΈ `settings.commandcode`** β€” ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚Ρ‹; * **`better-sidebar`, `better-input`, `opencode-palette`, `context-doctor`, `plugin-store`, `autoReview`** ΠΈ Π΄Ρ€. ### 3. πŸ”’ РусскиС грамматичСскиС Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… (Plural) Английский язык Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ `1` ΠΈ `other`. Русский язык Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 3 грамматичСскиС Ρ„ΠΎΡ€ΠΌΡ‹ Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… (`1 Ρ„Π°ΠΉΠ»`, `2 Ρ„Π°ΠΉΠ»Π°`, `5 Ρ„Π°ΠΉΠ»ΠΎΠ²` / `1 сСкунда`, `3 сСкунды`, `10 сСкунд`). Π”Π²ΠΈΠΆΠΎΠΊ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ автоматичСски подставляСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ окончания Π² зависимости ΠΎΡ‚ числового значСния. ### 4. ✍️ Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠΈ (`russian-lang.typography`) АвтоматичСски ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ тСксты сообщСний ΠΈ описаний ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ русской экранной Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠΈ: * ЗамСняСт прямыС "Π»Π°ΠΏΠΊΠΈ" Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ-Β«Ρ‘Π»ΠΎΡ‡ΠΊΠΈΒ» (Π° Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ β€” Π½Π° β€žΠ»Π°ΠΏΠΊΠΈβ€œ); * ЗамСняСт дСфисы ΠΌΠ΅ΠΆΠ΄Ρƒ словами Π½Π° Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Ρ‚ΠΈΡ€Π΅ (β€”); * ДобавляСт Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ послС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… союзов ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠ³ΠΎΠ², прСдотвращая висячиС строки; * **Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°**: Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠ° строго ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈ исходного ΠΊΠΎΠ΄Π°, Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ LaTeX ΠΈ ΠΌΠΎΠ½ΠΎΡˆΠΈΡ€ΠΈΠ½Π½Ρ‹Π΅ поля Π²Π²ΠΎΠ΄Π°. ### 5. ⌨️ Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½ΠΎΠΉ раскладки ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ (Alt+L) Если Π²Ρ‹ Π·Π°Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ раскладку ΠΈ Π½Π°Π±Ρ€Π°Π»ΠΈ тСкст Π»Π°Ρ‚ΠΈΠ½ΠΈΡ†Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, `ghjtrn d gzkmt` вмСсто `ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΏΠ°Π»ΡŒΡ‚ΠΎ`), ΠΏΠ»Π°Π³ΠΈΠ½ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ: * ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΉ Π²Π²ΠΎΠ΄ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ; * ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅Π½Π°Π²ΡΠ·Ρ‡ΠΈΠ²ΡƒΡŽ ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΡƒΡŽ подсказку Π½Π°Π΄ ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π°; * ΠŸΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ горячСй клавиши Alt+L ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π°Π±Ρ€Π°Π½Π½Ρ‹ΠΉ тСкст Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ. ### 6. πŸ” Π˜Π½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΈ ΠΆΠΈΠ²Ρ‹Π΅ ΠΎΠ²Π΅Ρ€Ρ€Π°ΠΉΠ΄Ρ‹ (Alt+Click / Alt+I) ΠœΠΎΡ‰Π½Ρ‹ΠΉ встроСнный инструмСнт для инспСкции строк интСрфСйса ΠΈ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ рСдактирования ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² Π½Π° Π»Π΅Ρ‚Ρƒ: * **ВочСчная инспСкция (Alt+Click)**: Π·Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Alt ΠΈ ΠΊΠ»ΠΈΠΊΠ½ΠΈΡ‚Π΅ ΠΏΠΎ Π»ΡŽΠ±ΠΎΠΌΡƒ элСмСнту интСрфСйса (ΠΊΠ½ΠΎΠΏΠΊΠ΅, ΠΏΡƒΠ½ΠΊΡ‚Ρƒ мСню, Π»Π΅ΠΉΠ±Π»Ρƒ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ модальноС ΠΎΠΊΠ½ΠΎ инспСктора. * **ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ (Alt+I)**: ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ интСрфСйс Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ исслСдования β€” Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠ΅ курсора подсвСчиваСт элСмСнты Π°ΠΊΠΊΡƒΡ€Π°Ρ‚Π½ΠΎΠΉ Ρ€Π°ΠΌΠΊΠΎΠΉ с Π±Π΅ΠΉΠ΄ΠΆΠ΅ΠΌ источника (`Core`, `Plugin`, `DOM`, `Untranslated`), Π° Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана отобраТаСтся ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΉ статус-Π²ΠΈΠ΄ΠΆΠ΅Ρ‚ с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ быстрого Π²Ρ‹Ρ…ΠΎΠ΄Π°. * **МодальноС ΠΎΠΊΠ½ΠΎ инспСктора**: * Π’ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ систСмного ΠΊΠ»ΡŽΡ‡Π°, пространства ΠΈΠΌΡ‘Π½ ΠΈ Ρ‚ΠΈΠΏΠ° источника. * БыстроС ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π° ΠΈΠ»ΠΈ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ³ΠΎ стандартизированного Markdown-сниппСта для Π±Π°Π³-Ρ€Π΅ΠΏΠΎΡ€Ρ‚Π° Π² 1 ΠΊΠ»ΠΈΠΊ. * ПолС Π²Π²ΠΎΠ΄Π° собствСнного ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° (ΠΎΠ²Π΅Ρ€Ρ€Π°ΠΉΠ΄Π°) с ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ **Β«ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒΒ»**: ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ измСняСт тСкст Π² DOM ΠΈ сохраняСт ΠΎΠ²Π΅Ρ€Ρ€Π°ΠΉΠ΄ Π² настройки (`russian-lang.overrides`) Π±Π΅Π· ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ страницы. ВсС Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты интСрфСйса ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ автоматичСски. * Кнопка **Β«Π‘Π±Ρ€ΠΎΡΠΈΡ‚ΡŒΒ»** для ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΊ стандартному словарному ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ. * **Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ΅ настроСк (Π Π°Π·Π΄Π΅Π» 4.5)**: * Кнопка быстрого Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ/Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ инспСктора (Alt+I). * Кнопки **«Экспорт JSONΒ»** ΠΈ **Β«Π˜ΠΌΠΏΠΎΡ€Ρ‚ JSONΒ»** для Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, пСрСноса ΠΈ синхронизации списка Π²Π°ΡˆΠΈΡ… ΠΎΠ²Π΅Ρ€Ρ€Π°ΠΉΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ профилями. ### 7. ⚑ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ архитСктурная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ * **ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° MutationObserver**: ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±Π»ΡŽΠ΄Π°Ρ‚Π΅Π»ΡŒ ΠΌΡƒΡ‚Π°Ρ†ΠΈΠΉ интСрфСйса с Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΌ debounce (16 мс) ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π»Π°Π²ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ пСрСрисовки ΠΈ пСрСрасчёт ΠΌΠ°ΠΊΠ΅Ρ‚Π° (reflow) ΠΏΡ€ΠΈ интСнсивном Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅ списков ΠΈ стримингС LLM-Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ². * **Π—Π°Ρ‰ΠΈΡ‚Π° HTTP-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² словарСй (405 Method Not Allowed)**: сСрвСрныС эндпоинты `/api/dsh-russian-lang/dict/core`, `/api/dsh-russian-lang/dict/plugins`, `/api/dsh-russian-lang/dict/all` строго Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ бСзопасныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ GET/HEAD. * **ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΠΉ Π±Π°Π½Π΄Π» с запасом**: оптимизированная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ бутстрап ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ клиСнтского скрипта 153.7 KiB (запас Π±ΠΎΠ»Π΅Π΅ 10 KiB Π΄ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π»ΠΈΠΌΠΈΡ‚Π°). ### 8. πŸ”€ Нативная интСграция Π² ядро Плагин Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ рСгистрируСт ΠΏΡƒΠ½ΠΊΡ‚ **«Русский»** Π² мСню **Настройки β†’ ΠžΠ±Ρ‰ΠΈΠ΅ β†’ Π―Π·Ρ‹ΠΊ**, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ `` ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠ΅Ρ‚ встроСнный Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΉ ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΎΡ€Ρ„ΠΎΠ³Ρ€Π°Ρ„ΠΈΠΈ (`spellcheck`). --- ## πŸ“¦ Установка ```bash dsh plugin --profile web add @goodandready/dsh-russian-lang ``` ПослС установки ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π²Π΅Π±-интСрфСйс, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² **Настройки β†’ ΠžΠ±Ρ‰ΠΈΠ΅ β†’ Π―Π·Ρ‹ΠΊ**, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ **«Русский»** ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ страницу. --- ## βš™οΈ ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (`settings.yaml` / ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ Cordis) Π’ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсиях DSH (v0.2.0-rc.2+, v0.1.7+) конфигурация ΠΏΠ»Π°Π³ΠΈΠ½Π° управляСтся ΡˆΡ‚Π°Ρ‚Π½ΠΎ Ρ‡Π΅Ρ€Π΅Π· managed-Ρ„ΠΎΡ€ΠΌΡƒ Π² Π²Π΅Π±-интСрфСйсС (**Настройки β†’ ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ β†’ Русская локализация**) Π»ΠΈΠ±ΠΎ Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅/ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅ ΠΏΠΎΠ΄ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ»Π°Π³ΠΈΠ½Π° `dsh-russian-lang` (согласно `cordis.patch.yml`). Для ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости с Ρ€Π°Π½Π½ΠΈΠΌΠΈ вСрсиями ядра (DSH <= 0.1.6) ΠΏΠ»Π°Π³ΠΈΠ½ Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· лСгаси-пространства `russian-lang`. Π‘Ρ…Π΅ΠΌΠ° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² объявлСна Π² [`lib/index.js`](lib/index.js), всС поля Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅: ```yaml # ΠΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (DSH v0.2.0-rc.2+ / v0.1.7+): dsh-russian-lang: enabled: true # Русский язык интСрфСйса (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: true) overrides: {} # ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΎΠ²Π΅Ρ€Ρ€Π°ΠΉΠ΄Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: {}) typography: # Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠ° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: всС opt-in false) enabled: false # Ёлочки, Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Ρ‚ΠΈΡ€Π΅, Π½Π΅Ρ€Π°Π·Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹ yo: false # ВосстановлСниС бСзопасной Π±ΡƒΠΊΠ²Ρ‹ Β«Ρ‘Β» liveInput: false # Живая Ρ‚ΠΈΠΏΠΎΠ³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΏΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ Π² тСкстовых полях agentPrompt: false # БистСмная инструкция Π°Π³Π΅Π½Ρ‚Ρƒ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎ-русски (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: false) agentPromptPreset: technical_expert # ΠŸΡ€Π΅ΡΠ΅Ρ‚ систСмного ΠΏΡ€ΠΎΠΌΠΏΡ‚Π° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: technical_expert) slashAliases: true # РусскиС алиасы слэш-ΠΊΠΎΠΌΠ°Π½Π΄ (/ΠΏΠΎΠΌΠΎΡ‰ΡŒ, /ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ) (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: true) layoutConversion: true # Π”Π΅Ρ‚Π΅ΠΊΡ‚ΠΎΡ€ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ раскладки ΠΈ подсказка Alt+L (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: true) quickSwitch: true # Быстрый ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ RU/EN Π² статусной строкС (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: true) translateEngine: off # Π”Π²ΠΈΠΆΠΎΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊ: off, local (LibreTranslate) ΠΈΠ»ΠΈ google (Google) (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: off) localApiUrl: http://localhost:5000 # URL локального инстанса LibreTranslate (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: http://localhost:5000) # ЛСгаси-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ (DSH <= 0.1.6, поддСрТиваСтся автоматичСски ΠΊΠ°ΠΊ fallback): # russian-lang: # enabled: true # ... ``` Π£Π΄ΠΎΠ±Π½Π΅Π΅ всСго Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² интСрфСйсС: **Настройки β†’ ΠŸΠ»Π°Π³ΠΈΠ½Ρ‹ β†’ Русская локализация**. Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ раскладки (Alt+L) ΠΈ русскиС алиасы слэш-ΠΊΠΎΠΌΠ°Π½Π΄ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (`true`) ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² настройках (`layoutConversion: false`, `slashAliases: false`). Π‘Ρ€Π°ΡƒΠ·Π΅Ρ€Π½Ρ‹ΠΉ спСлчСк (`lang="ru-RU"`) активируСтся автоматичСски ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ русской Π»ΠΎΠΊΠ°Π»ΠΈ. --- ## πŸ›  Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π·Π΅Ρ€ΠΊΠ°Π»ΠΎ рСпозитория ΠŸΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Π½Π° GitHub являСтся дистрибутивным Π·Π΅Ρ€ΠΊΠ°Π»ΠΎΠΌ Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² `@goodandready/dsh-russian-lang`. Основная Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, сборочный ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ тСстовый ΠΊΠΎΠ½Ρ‚ΡƒΡ€ вСдутся Π² основном Gitea-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Pull Requests ΠΈ Issues Π½Π° GitHub ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ порядкС! Для внСсСния ΠΏΡ€Π°Π²ΠΎΠΊ Π² Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ `lib/client.template.js`. Запуск `npm test` Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ выполняСт ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ (270+ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… тСстов Node.js, тСсты сборщика, Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠ² ΠΈ глоссария). --- ## πŸ“„ ЛицСнзия MIT Β© [GooDAnDReaDY](https://github.com/GooDAnDReaDY) ## Π”Π²ΠΈΠΆΠΎΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊ Плагин позволяСт ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° русский язык. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… Π΄Π²ΠΈΠΆΠΊΠΎΠ² β€” ΠΏΠΎ Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π² настройках. **По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ±Π° Π΄Π²ΠΈΠΆΠΊΠ° Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹** (`translateEngine: off`). ### Google Translate (Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ) ВСкст ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ отправляСтся Π½Π° `translate.googleapis.com/translate_a/single?client=gtx` β€” это **Π½Π΅ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ** ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ эндпоинт Google Π±Π΅Π· SLA ΠΈ Π±Π΅Π· Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΉ доступности. Π’ ΠΎΡ‚Π²Π΅Ρ‚Π°Ρ… ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, ΠΏΡƒΡ‚ΠΈ, содСрТимоС Ρ„Π°ΠΉΠ»ΠΎΠ² β€” **всё это ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ сторонС**. ΠŸΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π² ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠ΅ настроСк отобраТаСтся ΠΆΡ‘Π»Ρ‚Ρ‹ΠΉ Π±Π΅ΠΉΠ΄ΠΆ. ### LibreTranslate (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ) Плагин запускаСт Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ `libretranslate/libretranslate:v1.5.3` Π½Π° `127.0.0.1:5000`. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ выполняСтся ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ локально β€” тСкст **Π½Π΅ ΠΏΠΎΠΊΠΈΠ΄Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Ρƒ**. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ установлСнный Docker. | Π”Π²ΠΈΠΆΠΎΠΊ | ΠšΡƒΠ΄Π° ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ тСкст | ΠŸΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΡΡ‚ΡŒ | Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ | |---|---|---|---| | `off` (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) | Π½ΠΈΠΊΡƒΠ΄Π° | βœ… полная | Π½Π΅ Π½ΡƒΠΆΠ΅Π½ | | `google` | Google (googleapis.com) | ⚠️ тСкст отправляСтся Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ сторонС | Π½ΡƒΠΆΠ΅Π½ | | `libretranslate` | localhost:5000 (Docker) | βœ… локально | Π½ΡƒΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠ±Ρ€Π°Π·Π° | > [!NOTE] > **ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ систСмного мСню Electron:** > ΠŸΡƒΠ½ΠΊΡ‚Ρ‹ систСмного мСню дСсктопной ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Electron (Application, Edit, File, Quit, Undo/Redo/Cut/Copy/Paste ΠΈ Π΄Ρ€.) ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Π³Π»Π°Π²Π½ΠΎΠΌΡƒ процСссу Electron (`app.asar`) Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ Π²Π΅Π±-ΠΏΠ»Π°Π³ΠΈΠ½Π°ΠΌΠΈ DSH.