@ragnoryok1/dsh-client-locale-ru 0.2.20 → 0.2.21

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/CHANGELOG.md CHANGED
@@ -1,3 +1,16 @@
1
+ ## [0.2.21] — 2026-10-26
2
+
3
+ ### Добавлено
4
+
5
+ - **Два словаря, которые нашлись после починки распаковки:** `pet.config` — 150
6
+ строк настроек питомца на рабочем столе из `dsh-pet@0.3.8` (анимации, физика,
7
+ персона, уведомления, удаление) и `dshOps` — 48 строк управления оболочками из
8
+ `dsh-ops@0.4.1`. Оба плагина входят в число самых скачиваемых в экосистеме.
9
+
10
+ ### Изменено
11
+
12
+ - Счёт: **589** namespace и **68 425** строк.
13
+
1
14
  ## [0.2.20] — 2026-10-26
2
15
 
3
16
  ### Добавлено
package/NAMESPACES.md CHANGED
@@ -1,7 +1,7 @@
1
1
  <!-- Сгенерировано `npm run namespaces`; проверяется `npm run check:namespaces`. -->
2
2
  # Что переведено
3
3
 
4
- Пакет переводит **587 namespace** — 68227 строк. Колонка «как это выглядит»
4
+ Пакет переводит **589 namespace** — 68425 строк. Колонка «как это выглядит»
5
5
  берёт заголовок самого namespace (то, что читает пользователь), а не отдельное описание:
6
6
  список нельзя разойтись с переводами.
7
7
 
@@ -260,6 +260,7 @@
260
260
  | `dshhub-market` | Магазин dshhub.co | 393 | dshhub-market@0.8.60 |
261
261
  | `dshm` | — | 302 | dsh-m@0.10.8 |
262
262
  | `dshmarketplace` | DSH Marketplace | 22 | dshmarketplace-plugin@0.2.0 |
263
+ | `dshOps` | — | 48 | dsh-ops@0.4.1 |
263
264
  | `dshPluginsPlus` | DSH Plus | 2 | @sidleo3/dsh-plugins-plus@0.2.0 |
264
265
  | `dshRemoteExplorer` | Удалённые сессии | 114 | dsh-remote-explorer@0.8.6 |
265
266
  | `dshSidebarPlus` | sidebar.right.tab.document | 1 | dsh-sidebar-plus@0.4.4 |
@@ -353,6 +354,7 @@
353
354
  | `personaDafeiyu` | Персоны | 81 | dsh-persona-dafeiyu@0.5.0 |
354
355
  | `personalDirective` | Переключение личной директивы | 5 | dsh-personal-directive@0.2.11 |
355
356
  | `pet` | — | 81 | @linxin666/dsh-pet@0.4.8 |
357
+ | `pet.config` | Настройки питомца | 150 | dsh-pet@0.3.8 |
356
358
  | `picturereader` | — | 3 | picturereader@3.3.3 |
357
359
  | `pin` | — | 2 | @vlln/dsh-navbar@0.4.0 |
358
360
  | `plan` | — | 17 | харнесс |
@@ -600,4 +602,4 @@
600
602
  | `xrn1997-dsh-novel` | — | 160 | @xrn1997/dsh-novel@0.8.0 |
601
603
  | `zhihu-search` | — | 19 | dsh-zhihu-search@2.2.1 |
602
604
 
603
- Итого: **587** namespace, **68227** строк.
605
+ Итого: **589** namespace, **68425** строк.
package/README-en.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <!-- deepseek-harness-meta
2
2
  {
3
3
  "name": "Russian (ru) language pack for DeepSeek Harness",
4
- "version": "0.2.20",
4
+ "version": "0.2.21",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
- "description": "Russian for the DeepSeek Harness web GUI: the whole interface plus the menus of 520 third-party plugins — 587 sections, 68 227 strings.",
6
+ "description": "Russian for the DeepSeek Harness web GUI: the whole interface plus the menus of 520 third-party plugins — 589 sections, 68 425 strings.",
7
7
  "icon": "https://raw.githubusercontent.com/Ragnoryok1/dsh-client-locale-ru/main/assets/icon.png",
8
8
  "compatible_versions": ["v0.2.1-rc.3", "v0.2.1-rc.2", "v0.2.1-rc.1", "v0.2.1-alpha.5", "v0.2.1-alpha.4", "v0.2.1-alpha.3", "v0.2.1-alpha.2", "v0.2.1-alpha.1", "v0.2.0-rc.2", "v0.2.0-rc.1", "v0.1.7-rc.2", "v0.1.7-rc.1", "v0.1.7-alpha.2"],
9
9
  "screenshots": "images",
@@ -21,12 +21,12 @@
21
21
  [![license](https://img.shields.io/npm/l/%40ragnoryok1%2Fdsh-client-locale-ru)](LICENSE)
22
22
  [![verify](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml/badge.svg)](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml)
23
23
  [![dsh](https://img.shields.io/badge/dsh-0.2.1--rc.3%2B-6366f1)](https://github.com/deepseek-ai/deepseek-harness)
24
- [![namespaces](https://img.shields.io/badge/namespaces-587-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
- [![strings](https://img.shields.io/badge/strings-68227-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
24
+ [![namespaces](https://img.shields.io/badge/namespaces-589-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
+ [![strings](https://img.shields.io/badge/strings-68425-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
26
26
 
27
27
  The plugin makes the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) interface Russian. Everything you see is translated: settings, side panels, dialogs, hints, error messages — and the menus of third-party plugins that ship no Russian of their own.
28
28
 
29
- The pack currently holds 587 sections and 68,227 strings, 520 of them dictionaries of third-party plugins — more than any other Russian pack for the harness I could find.
29
+ The pack currently holds 589 sections and 68,425 strings, 520 of them dictionaries of third-party plugins — more than any other Russian pack for the harness I could find.
30
30
 
31
31
  Install is one command: `dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru`; Russian is then picked in the settings, under General.
32
32
 
@@ -39,7 +39,7 @@ The pack does not modify harness files and does not touch your data. If a newer
39
39
 
40
40
  ---
41
41
 
42
- The complete inventory is in [NAMESPACES.md](NAMESPACES.md): 587 namespaces, 68,227 strings, with the bundled plugin dictionaries marked.
42
+ The complete inventory is in [NAMESPACES.md](NAMESPACES.md): 589 namespaces, 68,425 strings, with the bundled plugin dictionaries marked.
43
43
 
44
44
  Plugins outside the harness tree are translated the same way, but their English text comes from their own publication: `plugins/<namespace>.json` records the package, the version, the licence and the strings extracted from its bundle. What is still English in your installation is shown by `npm run report:plugins`: it walks the profile's `node_modules`, finds each plugin's own dictionary and compares its keys with ours, and a plugin without a dictionary is reported as such — there is nothing to translate until it asks for one.
45
45
 
@@ -107,7 +107,7 @@ two (the message names the version) or drop the `minimumReleaseAge` limit in the
107
107
  settings.
108
108
  The manifest is checked against the harness's own rules rather than by eye (`npm run check:manifest`, part of `verify`). Each rule was read out of the harness sources and each is a failure the user would otherwise meet first: `parseDshClient` accepts `platform` as any string while the consumers keep only `platform === 'web'`, so a typo like `'Web'` would **silently drop** the client half; a declared `dsh.client` without the `./client` export makes `client-modules` throw; and `dsh.bundle.patch` has to point at a file that exists.
109
109
 
110
- Installing from GitHub works too: `dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru` (the form the plugin catalogue generates, without the npm scope) installs the repository archive, and the built `lib/` is committed — no build runs on your machine, and none is needed. That is exactly why `npm run check:built` (part of `verify`) rebuilds `lib/` and compares it with the commit: a stale bundle in git would reach the user, while the audit would never see it, because the audit reads the sources. The published package is 1996 kB: the banner ships as JPEG, and the icon and source map stay out of the npm payload.
110
+ Installing from GitHub works too: `dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru` (the form the plugin catalogue generates, without the npm scope) installs the repository archive, and the built `lib/` is committed — no build runs on your machine, and none is needed. That is exactly why `npm run check:built` (part of `verify`) rebuilds `lib/` and compares it with the commit: a stale bundle in git would reach the user, while the audit would never see it, because the audit reads the sources. The published package is 2003 kB: the banner ships as JPEG, and the icon and source map stay out of the npm payload.
111
111
 
112
112
  ## Why hybrid
113
113
 
package/README-zh.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <!-- deepseek-harness-meta
2
2
  {
3
3
  "name": "Russian (ru) language pack for DeepSeek Harness",
4
- "version": "0.2.20",
4
+ "version": "0.2.21",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
- "description": "Russian for the DeepSeek Harness web GUI: the whole interface plus the menus of 520 third-party plugins — 587 sections, 68 227 strings.",
6
+ "description": "Russian for the DeepSeek Harness web GUI: the whole interface plus the menus of 520 third-party plugins — 589 sections, 68 425 strings.",
7
7
  "icon": "https://raw.githubusercontent.com/Ragnoryok1/dsh-client-locale-ru/main/assets/icon.png",
8
8
  "compatible_versions": ["v0.2.1-rc.3", "v0.2.1-rc.2", "v0.2.1-rc.1", "v0.2.1-alpha.5", "v0.2.1-alpha.4", "v0.2.1-alpha.3", "v0.2.1-alpha.2", "v0.2.1-alpha.1", "v0.2.0-rc.2", "v0.2.0-rc.1", "v0.1.7-rc.2", "v0.1.7-rc.1", "v0.1.7-alpha.2"],
9
9
  "screenshots": "images",
@@ -21,12 +21,12 @@
21
21
  [![license](https://img.shields.io/npm/l/%40ragnoryok1%2Fdsh-client-locale-ru)](LICENSE)
22
22
  [![verify](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml/badge.svg)](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml)
23
23
  [![dsh](https://img.shields.io/badge/dsh-0.2.1--rc.3%2B-6366f1)](https://github.com/deepseek-ai/deepseek-harness)
24
- [![namespaces](https://img.shields.io/badge/namespaces-587-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
- [![strings](https://img.shields.io/badge/strings-68227-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
24
+ [![namespaces](https://img.shields.io/badge/namespaces-589-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
+ [![strings](https://img.shields.io/badge/strings-68425-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
26
26
 
27
27
  插件把 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的界面变成俄语。你看到的一切都会被翻译:设置、侧边栏、对话框、提示、错误信息——以及没有自带俄语的三方插件菜单。
28
28
 
29
- 目前包里有 587 个分区、68 227 条文案,其中 520 份是第三方插件的词典——比我能找到的任何其他俄语包都多。
29
+ 目前包里有 589 个分区、68 425 条文案,其中 520 份是第三方插件的词典——比我能找到的任何其他俄语包都多。
30
30
 
31
31
  安装只需一条命令:`dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru`,然后在设置 General 里选择俄语。
32
32
 
@@ -38,7 +38,7 @@
38
38
 
39
39
  ---
40
40
 
41
- 完整清单见 [NAMESPACES.md](NAMESPACES.md):587 个 namespace、68,227 条字符串,随包附带的插件词典单独标注。
41
+ 完整清单见 [NAMESPACES.md](NAMESPACES.md):589 个 namespace、68,425 条字符串,随包附带的插件词典单独标注。
42
42
 
43
43
  harness 树之外的插件用同样的方式翻译,但英文取自它们自己的发布物:`plugins/<namespace>.json` 记录包名、版本、许可证,以及从其 bundle 中提取的字符串。安装里还剩哪些英文,用 `npm run report:plugins` 查看:它遍历 profile 的 `node_modules`,找出每个插件自己的词典并与我们的对照;没有词典的插件会照实标注——在它请求翻译之前无从翻译。
44
44
 
@@ -95,7 +95,7 @@ dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru
95
95
 
96
96
  清单按 harness 自身的规则检查,而不是靠肉眼(`npm run check:manifest`,包含在 `verify` 中)。每一条规则都取自 harness 源码,每一条都对应一种否则会先落到用户头上的失败:`parseDshClient` 接受任意字符串作为 `platform`,但消费方只保留 `platform === 'web'` 的行,因此写成 `'Web'` 这样的笔误会**悄悄关掉**客户端那一半;声明了 `dsh.client` 却没有 `./client` 导出会让 `client-modules` 抛错;`dsh.bundle.patch` 必须指向确实存在的文件。
97
97
 
98
- 从 GitHub 安装同样可用:`dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru`(插件目录生成的就是这种不带 npm scope 的写法)安装的是仓库归档,而构建好的 `lib/` 已提交进 git——你的机器上不会运行构建,也不需要运行。正因如此,`npm run check:built`(包含在 `verify` 中)会重新构建 `lib/` 并与提交内容比对:git 里过期的构建产物会直接落到用户手里,而审计看不到它——审计读的是源码。发布的包为 1996 kB:横幅以 JPEG 提供,图标与源码映射不进入 npm 包。
98
+ 从 GitHub 安装同样可用:`dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru`(插件目录生成的就是这种不带 npm scope 的写法)安装的是仓库归档,而构建好的 `lib/` 已提交进 git——你的机器上不会运行构建,也不需要运行。正因如此,`npm run check:built`(包含在 `verify` 中)会重新构建 `lib/` 并与提交内容比对:git 里过期的构建产物会直接落到用户手里,而审计看不到它——审计读的是源码。发布的包为 2003 kB:横幅以 JPEG 提供,图标与源码映射不进入 npm 包。
99
99
 
100
100
  ## 为什么是混合插件
101
101
 
package/README.md CHANGED
@@ -1,9 +1,9 @@
1
1
  <!-- deepseek-harness-meta
2
2
  {
3
3
  "name": "Russian (ru) language pack for DeepSeek Harness",
4
- "version": "0.2.20",
4
+ "version": "0.2.21",
5
5
  "tags": ["localization", "russian", "i18n", "web-gui", "language-pack"],
6
- "description": "Russian for the DeepSeek Harness web GUI: the whole interface plus the menus of 520 third-party plugins — 587 sections, 68 227 strings.",
6
+ "description": "Russian for the DeepSeek Harness web GUI: the whole interface plus the menus of 520 third-party plugins — 589 sections, 68 425 strings.",
7
7
  "icon": "https://raw.githubusercontent.com/Ragnoryok1/dsh-client-locale-ru/main/assets/icon.png",
8
8
  "compatible_versions": ["v0.2.1-rc.3", "v0.2.1-rc.2", "v0.2.1-rc.1", "v0.2.1-alpha.5", "v0.2.1-alpha.4", "v0.2.1-alpha.3", "v0.2.1-alpha.2", "v0.2.1-alpha.1", "v0.2.0-rc.2", "v0.2.0-rc.1", "v0.1.7-rc.2", "v0.1.7-rc.1", "v0.1.7-alpha.2"],
9
9
  "screenshots": "images",
@@ -21,12 +21,12 @@
21
21
  [![license](https://img.shields.io/npm/l/%40ragnoryok1%2Fdsh-client-locale-ru)](LICENSE)
22
22
  [![verify](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml/badge.svg)](https://github.com/Ragnoryok1/dsh-client-locale-ru/actions/workflows/verify.yml)
23
23
  [![dsh](https://img.shields.io/badge/dsh-0.2.1--rc.3%2B-6366f1)](https://github.com/deepseek-ai/deepseek-harness)
24
- [![namespaces](https://img.shields.io/badge/namespaces-587-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
- [![strings](https://img.shields.io/badge/strings-68227-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
24
+ [![namespaces](https://img.shields.io/badge/namespaces-589-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
25
+ [![strings](https://img.shields.io/badge/strings-68425-6466f1)](https://github.com/Ragnoryok1/dsh-client-locale-ru)
26
26
 
27
27
  Плагин делает интерфейс [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) русским. Переводится всё, что вы видите: настройки, боковые панели, диалоги, подсказки, сообщения об ошибках — и меню сторонних плагинов, у которых нет своего русского перевода.
28
28
 
29
- Сейчас в пакете 587 разделов и 68 227 строк, из них 520 словарей сторонних плагинов — больше, чем у любого другого русского пакета для харнесса, который я смог найти.
29
+ Сейчас в пакете 587 разделов и 68 425 строк, из них 520 словарей сторонних плагинов — больше, чем у любого другого русского пакета для харнесса, который я смог найти.
30
30
 
31
31
  Установка — одна команда: `dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru`, дальше русский выбирается в настройках, в разделе General.
32
32
 
@@ -39,7 +39,7 @@
39
39
 
40
40
  ---
41
41
 
42
- Полный список переведённого — в [NAMESPACES.md](NAMESPACES.md): 587 namespace, 68 227 строк, словари плагинов помечены отдельно.
42
+ Полный список переведённого — в [NAMESPACES.md](NAMESPACES.md): 589 namespace, 68 425 строк, словари плагинов помечены отдельно.
43
43
 
44
44
  Плагины за пределами дерева харнесса переводятся так же, но их английский текст берётся из собственной публикации: `plugins/<namespace>.json` хранит пакет, версию, лицензию и строки, выгруженные из бандла. Что осталось английским в вашей установке, покажет `npm run report:plugins`: он обходит `node_modules` профиля, находит у каждого плагина его собственный словарь и сверяет ключи с нашими, а плагин без словаря так и помечает — переводить нечего, пока он не спросит перевод.
45
45
 
@@ -106,7 +106,7 @@ dsh plugin --profile web add @ragnoryok1/dsh-client-locale-ru
106
106
  половину; declared `dsh.client` без экспорта `./client` заставляет `client-modules` бросить
107
107
  ошибку; `dsh.bundle.patch` обязан указывать на существующий файл.
108
108
 
109
- Установка из GitHub тоже работает: `dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru` (в таком виде команду генерирует каталог плагинов, без `@`-скоупа) ставит архив репозитория, а собранный `lib/` лежит в git — сборка на вашей машине не запускается и не требуется. Поэтому `npm run check:built` (входит в `verify`) пересобирает `lib/` и сверяет его с коммитом: устаревший бандл в git иначе получил бы именно пользователь, а аудит этого не увидел бы — он читает исходники. Публикуемый пакет занимает 1996 КБ: баннер отдаётся JPEG, а иконка и карта исходников в npm не входят.
109
+ Установка из GitHub тоже работает: `dsh plugin --profile web add Ragnoryok1/dsh-client-locale-ru` (в таком виде команду генерирует каталог плагинов, без `@`-скоупа) ставит архив репозитория, а собранный `lib/` лежит в git — сборка на вашей машине не запускается и не требуется. Поэтому `npm run check:built` (входит в `verify`) пересобирает `lib/` и сверяет его с коммитом: устаревший бандл в git иначе получил бы именно пользователь, а аудит этого не увидел бы — он читает исходники. Публикуемый пакет занимает 2003 КБ: баннер отдаётся JPEG, а иконка и карта исходников в npm не входят.
110
110
 
111
111
  ## Почему гибрид
112
112
 
package/lib/client.js CHANGED
@@ -69386,6 +69386,208 @@ window.__ModuleLoader__.load({
69386
69386
  "You.com API key (configured)": "Ключ You.com API (необязателен: без него 100 поисков в день бесплатно; YDC_API_KEY)",
69387
69387
  "Zhihu key (configured)": "Ключ Zhihu (ZHIHU_API_KEY, общий для поиска по всему Zhihu и по сайту)",
69388
69388
  "zhPoolLabel": "Пул запросов на китайском"
69389
+ },
69390
+ "dshOps": {
69391
+ "allowed": "Разрешённые возможности",
69392
+ "always": "Загружаются всегда",
69393
+ "bashHint": "Укажите абсолютный путь. Очистите поле, чтобы вернуться к настроенному значению по умолчанию.",
69394
+ "bashPath": "Свой путь к Bash",
69395
+ "busy": "Работает…",
69396
+ "cancel": "Отменить выполняемое действие",
69397
+ "discoverEnabled": "Включить поиск по требованию",
69398
+ "discoverHelp": "Всегда загружаемые возможности остаются доступными и при выключенном поиске. Разрешения по-прежнему проверяются при каждом вызове.",
69399
+ "discovery": "Выберите возможности, доступные по требованию и загружаемые всегда.",
69400
+ "dismiss": "Закрыть предпросмотр",
69401
+ "error": "Операция не удалась.",
69402
+ "exitCode": "Код выхода",
69403
+ "git": "Использовать Git Bash",
69404
+ "gitCount": "Установок Git Bash",
69405
+ "glob": "Искать пути к файлам",
69406
+ "grep": "Искать в содержимом файлов",
69407
+ "install": "Установить управляемый Bash",
69408
+ "invalidLimit": "Введите целое число от 1 до 5.",
69409
+ "limit": "Сколько инструментов предлагать за один поиск",
69410
+ "loading": "Загрузка настроек хоста…",
69411
+ "managed": "Использовать управляемый Bash",
69412
+ "managedCount": "Управляемых установок",
69413
+ "noRuntime": "Управление средами требует включённой строки оболочки и служб среды хоста.",
69414
+ "poolHelp": "Если убрать возможность из разрешённого набора, она снимется и из выбора «загружаются всегда».",
69415
+ "preview": "Проверить это действие",
69416
+ "previewInstall": "Проверить установку Bash",
69417
+ "previewPwsh": "Проверить обновление PowerShell",
69418
+ "previewRemove": "Проверить удаление Bash",
69419
+ "publishBash": "Разрешить Bash в доверенных сессиях",
69420
+ "pwshHelp": "Обновляет стандартную установку PowerShell 7 через WinGet. После этого перезапустите DSH. Свой путь pwshPath проверяйте отдельно: Windows PowerShell 5.1 остаётся нетронутым.",
69421
+ "read": "Читать файлы",
69422
+ "refresh": "Обновить состояние сред",
69423
+ "rejected": "Хост отказался сохранять. Верните последние сохранённые значения и проверьте изменения.",
69424
+ "remove": "Удалить управляемый Bash",
69425
+ "replacementPool": "Оставьте inspect_local_file для чтения или glob/grep для поиска всегда загруженными в поиске либо включите их, прежде чем выбирать замену. read_files не заменяет чтение.",
69426
+ "replacements": "Выберите, какие официальные инструменты подменяет OPS.",
69427
+ "replacementsHelp": "Выбранные инструменты работают по контрактам аргументов и вывода OPS. Чтение ограничено UTF-8; поиск пропускает скрытые файлы и ссылки. Снимите отметку, чтобы оставить официальный порядок работы.",
69428
+ "reset": "Вернуть сохранённое",
69429
+ "runtime": "Управление средами",
69430
+ "runtimeHelp": "Установка не меняет сохранённый выбор исполнителя. Останавливайте задачи Bash перед удалением управляемой установки.",
69431
+ "save": "Сохранить изменения",
69432
+ "saved": "Сохранено. Хост перезагрузил эту строку.",
69433
+ "saving": "Сохранение…",
69434
+ "selectionHint": "Проверьте выбранный путь, затем сохраните настройки оболочки.",
69435
+ "shell": "Управление Bash и стандартной установкой PowerShell на хосте.",
69436
+ "unavailable": "Включите эту строку встроенным переключателем, чтобы менять её настройки. Нужен профиль хоста, доступный для записи.",
69437
+ "unknownEffect": "Изменения могли произойти. Проверьте установку, прежде чем повторять.",
69438
+ "upgrade": "Установить или обновить PowerShell"
69439
+ },
69440
+ "pet.config": {
69441
+ "add": "Добавить питомца",
69442
+ "animationDir": "Папка анимаций (сюда кладутся и правятся анимации)",
69443
+ "atLeastOne": "Оставьте хотя бы одного питомца.",
69444
+ "balanceEnabled": "Равновесие",
69445
+ "balanceEnabledHint": "Когда включено, питомец проигрывает анимации равновесия и показывает пузырь равновесия.",
69446
+ "busy": "Сохранение…",
69447
+ "cancel": "Отмена",
69448
+ "chatImageLimit": "Предел картинок в чате",
69449
+ "chatImageLimitHint": "Сколько мемов максимум передавать модели в чате («первые N» — те, что вы записали первыми в конфиге, поэтому нужные переносите в начало). Весь список прикладывается к каждому сообщению, и токены растут линейно: длинный список — чистый расход. Ограничив его первыми N, вы заставляете модель выбирать только из них. 0 — без предела (передавать всё). Встроенное значение по умолчанию — 10. Общая настройка для всех питомцев (набор питомца может переопределить её в своём файле). Только чат — шёпот несёт лишь один мем, который сам выбрал.",
69450
+ "chatImageToggle": "Картинки в чате",
69451
+ "chatImageToggleHint": "Разрешить ИИ выбирать из набора один мем под текущий контекст (необязательно; соответствие лежит в поле `memes` верхнего уровня). Токены: каждое сообщение несёт весь каталог — сейчас это ~1,1 тыс. символов (~650 токенов, примерно в 11 раз больше шёпота) и растёт с числом картинок; при выключении не добавляется ничего.",
69452
+ "chatMemory": "Раундов истории чата",
69453
+ "chatMemoryHint": "Сколько последних раундов несёт каждый запрос чата (1 раунд = 1 вопрос + 1 ответ; 0 — без истории, каждое сообщение с чистого листа). Сама память хранит всё — здесь решается лишь, сколько уйдёт в контекст: больше помнит и дороже по токенам. Общая настройка для всех питомцев (набор питомца может переопределить её в своём файле).",
69454
+ "chatModelLabel": "Модель чата",
69455
+ "cmd.balance": "Равновесие",
69456
+ "cmd.chat": "Чат",
69457
+ "cmd.pet": "Питомец",
69458
+ "configMeta": "Дополнительно (файлы)",
69459
+ "configMetaHint": "Пользовательский конфиг может переопределять питомцев, наборы анимаций и веса — чтобы применить, обновите страницу в браузере или щёлкните питомца правой кнопкой на рабочем столе → «Перезагрузить конфиг» (пересобирает все окна питомцев). Полный справочник — конфиг по умолчанию.",
69460
+ "confineToggle": "Держать в пределах текущего экрана",
69461
+ "confineToggleHint": "Несколько мониторов: когда включено, питомец остаётся в пределах того экрана, где он сейчас, — брошенный отскакивает только внутри своего экрана (края экранов работают как стены, на соседний монитор он не улетит), а самостоятельные прогулки идут только в пределах текущего экрана (шаг через край просто отменяется). Выключите, чтобы он снова мог переходить между экранами. Только рабочий стол — в браузере оверлей и так остаётся внутри области просмотра.",
69462
+ "confirmRemove": "Удалить питомца «{id}»?",
69463
+ "confirmSync": "Синхронизировать? Встроенный конфиг по умолчанию перезапишет пользовательский (все поля и комментарии); текущие настройки пропадут.",
69464
+ "confirmTitle": "Подтвердите действие",
69465
+ "corner.bottom-left": "Слева снизу",
69466
+ "corner.bottom-right": "Справа снизу",
69467
+ "corner.top-left": "Слева сверху",
69468
+ "corner.top-right": "Справа сверху",
69469
+ "cornerHint": "К какому углу экрана прилипает питомец (в режиме рабочего стола — рабочая область своего монитора).",
69470
+ "cornerLabel": "Положение",
69471
+ "corruptBody": "Файл пользовательского конфига не разбирается (повреждён, не JSON или JSONC): {path}. Сохранение сейчас пересоберёт его из белого списка — всё, что в нём есть теперь (анимации, физика, мемы…), пропадёт. «Отмена» — оставить файл как есть (исправьте и сохраните снова); «Всё равно сохранить» — сохранить и потерять то, что в файле.",
69472
+ "corruptConfirm": "Всё равно сохранить",
69473
+ "corruptTitle": "Пользовательский конфиг повреждён — не сохранён",
69474
+ "defaultConfig": "Конфиг по умолчанию (только чтение, полный справочник)",
69475
+ "display.both": "Везде",
69476
+ "display.desktop": "Только рабочий стол",
69477
+ "display.none": "Нигде",
69478
+ "display.web": "Только браузер",
69479
+ "displayHint": "web — только браузер, desktop — только рабочий стол, both — везде, none — нигде",
69480
+ "displayLabel": "Где показывать",
69481
+ "emptyPets": "Питомцев пока нет — нажмите «Добавить питомца».",
69482
+ "extraPetsHint": "Питомцев, заданных файлами в папке pet/, ещё: {n} (<имя>-config.json + <имя>-animation/ + <имя>-memes/). В этом списке их нет — после правки файлов обновите страницу (в браузере) или щёлкните питомца на рабочем столе правой кнопкой → «Перезагрузить конфиг».",
69483
+ "fixedEnabled": "Закрепить на месте",
69484
+ "fixedEnabledHint": "Когда включено, случайная цепочка больше не поворачивает питомца и не уводит его с места — играют только действия покоя и на месте. Выбор правой кнопкой, вызовы API и анимации равновесия, шёпота и статуса работы при этом не меняются.",
69485
+ "font.candy": "Candy (в комплекте)",
69486
+ "font.comic": "Comic Sans MS",
69487
+ "font.kaiti": "KaiTi",
69488
+ "font.simsun": "SimSun",
69489
+ "font.system": "Системный шрифт",
69490
+ "font.yahei": "Microsoft YaHei / PingFang",
69491
+ "font.youyuan": "YouYuan",
69492
+ "fontFamilyHint": "«Candy (в комплекте)» идёт с плагином, остальные — системные. Если шрифта на машине нет, берётся следующий в списке (никогда не пусто и не ошибка).",
69493
+ "fontFamilyLabel": "Шрифт",
69494
+ "fontFollowToggle": "Масштабировать шрифт вместе с питомцем",
69495
+ "fontFollowToggleHint": "Включено (по умолчанию): шрифт растёт вместе с питомцем — при ширине 462 px он ровно того размера, что указан выше. Выключено: размер не зависит от размера питомца.",
69496
+ "fontHint": "Семейство применяется везде, где сейчас используется шрифт candy: пузырь питомца, подсказка при наведении, всплывающее окно чата, окно счёта. Размер применяется только к пузырю и подсказке (у чата и счёта свои размеры). Общая настройка для всех питомцев (набор питомца может переопределить её в своём файле); записывается в пользовательский конфиг по «Сохранить» — в браузере сразу, на рабочем столе применится, когда сохранение перезагрузит окна питомцев.",
69497
+ "fontSizeHint": "Размер текста в пузыре; подсказка и мелкие строки внутри пузыря масштабируются пропорционально. Диапазон 4–200.",
69498
+ "fontSizeLabel": "Размер шрифта (px)",
69499
+ "fontTitle": "Вид и шрифт",
69500
+ "globalHint": "Общее для всех питомцев (набор питомца может переопределить это в своём файле). Эти переключатели меняют только локальное состояние и попадают в пользовательский конфиг по «Сохранить» (сразу не записываются); системные уведомления перечитываются сразу после сохранения, обновлять страницу не нужно.",
69501
+ "globalTitle": "Общие переключатели",
69502
+ "intro": "Несколько питомцев сразу: у каждого свой размер и положение (применяется сразу после сохранения).",
69503
+ "invalid": "Проверьте ввод: размер должен быть положительным, отступы — любыми числами.",
69504
+ "invalidChatImageLimit": "Проверьте предел картинок: нужно число не меньше 0 (0 — без предела).",
69505
+ "invalidChatMemory": "Проверьте число раундов истории: нужно число не меньше 0.",
69506
+ "invalidFont": "Проверьте шрифт: семейство должно быть из списка, а размер — числом от 4 до 200.",
69507
+ "invalidModel": "Проверьте модель: выберите и провайдера, и модель либо оставьте оба поля пустыми (следовать текущей беседе).",
69508
+ "invalidPhysics": "Проверьте физику: гравитация и трение о землю не меньше 0, упругость 0–1, сила броска больше 0.",
69509
+ "loadError": "Не удалось загрузить конфиг",
69510
+ "loading": "Загрузка конфига…",
69511
+ "marginX": "Смещение по горизонтали",
69512
+ "marginXHint": "Расстояние от выбранного угла по горизонтали (px); любое число.",
69513
+ "marginY": "Смещение по вертикали",
69514
+ "marginYHint": "Расстояние от выбранного угла по вертикали (px); любое число.",
69515
+ "memesDir": "Папка мемов (сюда кладутся и правятся картинки)",
69516
+ "modelCatalogFailed": "Не удалось загрузить список моделей (обновите страницу, чтобы повторить); текущие значения сохранены.",
69517
+ "modelEmpty": "Подходящих моделей нет.",
69518
+ "modelFieldHint": "«Следовать текущей беседе» — брать модель беседы; если выбранная модель не ответит, плагин вернётся к модели беседы и повторит запрос один раз.",
69519
+ "modelFollow": "Следовать текущей беседе",
69520
+ "modelHint": "Какая модель используется для шёпота и для чата и сколько истории несёт каждый запрос чата. «Следовать текущей беседе» — брать модель текущей беседы (по умолчанию). Общая настройка: действует для всех питомцев, набор питомца может переопределить её в своём файле. Список берётся из того же источника, что и выбор модели в DSH, и отдаётся хостом вживую.",
69521
+ "modelLoading": "Обновление списка моделей…",
69522
+ "modelNoModels": "Моделей нет.",
69523
+ "modelNone": "У этого провайдера нет моделей",
69524
+ "modelSearch": "Поиск моделей…",
69525
+ "modelTitle": "Модели ИИ и контекст чата",
69526
+ "modelTriggerAria": "Выбрать модель, сейчас {model}",
69527
+ "modelUnknown": " (текущий конфиг, в списке нет)",
69528
+ "nameHint": "Показывается при наведении и добавляется в персону («тебя зовут X»). Повторы разрешены; пустое поле — берётся идентификатор питомца.",
69529
+ "nameLabel": "Имя",
69530
+ "nav": "Настройки питомца",
69531
+ "notifyDenyBlocked": "Браузер заблокировал разрешение на уведомления.",
69532
+ "notifyDenyError": "Не удалось запросить разрешение",
69533
+ "notifyDenyRejected": "Выбрано «Заблокировать» в запросе разрешения.",
69534
+ "notifyDenyUnsupported": "Системные уведомления здесь не поддерживаются (нет API Notification).",
69535
+ "notifyGuide": "Как включить: нажмите значок 🔒 или ⓘ рядом с адресной строкой → Настройки сайта → Уведомления → «Разрешить», затем обновите страницу и повторите.",
69536
+ "notifyTest": "Проверить уведомление",
69537
+ "notifyTestOk": "Пробное уведомление отправлено — смотрите правый нижний угол рабочего стола.",
69538
+ "notifyToggle": "Системные уведомления",
69539
+ "notifyToggleHint": "Всплывающие уведомления системы (правый нижний угол рабочего стола) о завершении беседы, ошибках, запросах разрешений и вопросах — только пока это окно не в фокусе.",
69540
+ "ok": "Понятно",
69541
+ "personaCount": "Символов: {n}",
69542
+ "personaHint": "Действует только на этого питомца. Оставьте пустым, чтобы наследовать персону записи — серый текст в поле это и есть. Фактически отправляемая системная подсказка = этот текст + строка «тебя зовут «<имя>»» + текущий контекст времени, поэтому имя и дату здесь не повторяйте.",
69543
+ "personaLabel": "Персона (необязательно)",
69544
+ "petCardHint": "Настройки питомца: имя, размер, где показывать, угол, смещения и четыре переключателя возможностей. Нажмите «Сохранить» внизу, чтобы применить сразу.",
69545
+ "petCardTitle": "Питомец",
69546
+ "petsLabel": "Питомцы",
69547
+ "physics.gravity": "Гравитация",
69548
+ "physics.gravityHint": "px/с² — чем больше, тем быстрее падает; 0 — невесомость (летит прямо бесконечно)",
69549
+ "physics.groundFriction": "Трение о землю",
69550
+ "physics.groundFrictionHint": "в секунду, горизонтальное затухание на земле; 0 — скользкий лёд",
69551
+ "physics.restitution": "Упругость",
69552
+ "physics.restitutionHint": "0–1, доля скорости при отскоке от стены или пола (1 — идеальный отскок, 0 — гасит сразу)",
69553
+ "physics.throwPower": "Сила броска",
69554
+ "physics.throwPowerHint": "больше 0, общий множитель слежения за указателем и скорости отпускания (1 — по умолчанию; больше — точнее слежение и сильнее броски)",
69555
+ "physicsCeilingBounce": "Отскок от потолка",
69556
+ "physicsCeilingBounceHint": "Выключите, чтобы брошенный питомец мог улететь за верхний край экрана (гравитация всё равно вернёт его)",
69557
+ "physicsHint": "Общая настройка для всех питомцев (набор питомца может переопределить её в своём файле); записывается в пользовательский конфиг по «Сохранить» (сразу не пишется). В браузере применяется сразу, на рабочем столе — когда сохранение перезагрузит окна питомцев.",
69558
+ "physicsPetCollision": "Столкновения питомцев",
69559
+ "physicsPetCollisionHint": "Летящий питомец отскакивает от других с сохранением импульса (масса пропорциональна квадрату размера)",
69560
+ "physicsTitle": "Физика (ощущение перетаскивания и броска)",
69561
+ "remove": "Убрать",
69562
+ "retry": "Повторить",
69563
+ "save": "Сохранить",
69564
+ "saved": "Сохранено — питомцы обновились сразу.",
69565
+ "saveHotkey": "Ctrl+S / Cmd+S",
69566
+ "sizeHint": "Высота считается сама: ширина × 9/16.",
69567
+ "sizeLabel": "Размер (ширина, px)",
69568
+ "storage.desktopCache": "Кэш окон питомца на рабочем столе и кэш масштаба основного монитора (можно удалять, собирается заново)",
69569
+ "storage.electron": "Среда Electron для питомца на рабочем столе (крупная; скачается заново при следующем запуске режима рабочего стола)",
69570
+ "storage.electronCache": "Кэш загрузки установщика Electron (можно удалять, скачается при необходимости)",
69571
+ "storage.package": "Сам плагин (управляется DSH — удаляйте командой ниже, а не вручную)",
69572
+ "storage.userData": "Данные плагина: свой конфиг main-config.jsonc, память чата memory.json, свои анимации main-animation/, питомцы из файлов pet/",
69573
+ "storageHint": "Все места, куда пишет плагин. Удалять папки кэша безопасно (скачаются и пересоберутся); удаление «данных плагина» забирает конфиг и память чата.",
69574
+ "storageMissing": " (ещё не создана)",
69575
+ "storageTitle": "Удаление и хранилище",
69576
+ "sync": "Синхронизировать",
69577
+ "syncHint": "«Синхронизировать» записывает встроенный конфиг по умолчанию (с комментариями и всеми дополнительными полями) в файл пользовательского конфига, затирая ваши настройки; после этого файл можно править напрямую. Два предостережения: (1) созданный файл становится слоем переопределения — будущие изменения встроенных значений сами не подхватятся (пока не синхронизируете снова или не удалите файл); (2) нажатие «Сохранить» на этой странице пересобирает файл по белому списку — значения полей сохраняются, комментарии пропадают.",
69578
+ "uninstallCmd": "dsh plugin --profile {profile} remove dsh-pet",
69579
+ "uninstallStep1": "1. Сначала закройте DSH (питомец на рабочем столе завершится вместе с ним); не удаляйте эти файлы, пока питомец работает.",
69580
+ "uninstallStep2": "2. Удалите сам плагин (выполните в терминале; он снимется и со слоя плагинов профиля):",
69581
+ "uninstallStep3": "3. Удалите перечисленные места по необходимости: папки кэша безопасны; удаление «данных плагина» забирает конфиг и память чата (если main-config.jsonc нужен, скопируйте его заранее).",
69582
+ "uninstallTitle": "Как удалить",
69583
+ "userConfig": "Пользовательский конфиг (свои переопределения)",
69584
+ "whisperEnabled": "Шёпот",
69585
+ "whisperEnabledHint": "Когда включено, питомец время от времени сам придумывает реплику через ИИ и проигрывает анимацию шёпота (персона — поле ниже; пустое наследуется).",
69586
+ "whisperImageToggle": "Картинки в шёпоте",
69587
+ "whisperImageToggleHint": "Прикладывать к каждой реплике шёпота случайный мем из набора (карта картинок лежит в поле `memes` верхнего уровня). Токены: шёпот и так зовёт модель на каждом цикле, поэтому картинка добавляет к тому же запросу только имя и описание этого мема (~100 символов, ~60 токенов) — почти ничего.",
69588
+ "whisperModelLabel": "Модель шёпота",
69589
+ "workStatusEnabled": "Статус работы",
69590
+ "workStatusEnabledHint": "Когда включено, питомец следит за состоянием работы DSH: мыслит, работает, ждёт, готово, ошибка — меняются анимации и пузыри (набор в конфиге верхнего уровня; только слушает, модель не вызывает)."
69389
69591
  }
69390
69592
  };
69391
69593
  //#endregion
@@ -69857,6 +70059,7 @@ window.__ModuleLoader__.load({
69857
70059
  "Per-role model overrides and fallbacks for RigorQuant sessions. Left on Inherit, the DoubleChecker and adversary take the router's shipped routes (on DeepSeek Account when no API key is set); root follows the chatbox picker, and other roles inherit their session model.": "Переопределение моделей по ролям и резервные варианты для сессий RigorQuant. Если оставить «Наследовать», DoubleChecker и оппонент берут штатные маршруты маршрутизатора (через учётную запись DeepSeek, если API-ключ не задан); корневой оркестратор следует выбору в поле ввода, а остальные роли наследуют модель своей сессии.",
69858
70060
  "Persistent memory": "Постоянная память",
69859
70061
  "Personas": "Персоны",
70062
+ "Pet Config": "Настройки питомца",
69860
70063
  "Play a chime / spoken notice when an approval or question is waiting for you": "Проигрывать сигнал или голосовое уведомление, когда вас ждёт подтверждение или вопрос",
69861
70064
  "Plugin Hub": "Магазин плагинов",
69862
70065
  "Plugin Market": "Магазин плагинов",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ragnoryok1/dsh-client-locale-ru",
3
- "description": "Russian for the DeepSeek Harness web GUI: the whole interface plus the menus of 520 third-party plugins — 587 sections, 68 227 strings.",
4
- "version": "0.2.20",
3
+ "description": "Russian for the DeepSeek Harness web GUI: the whole interface plus the menus of 520 third-party plugins — 589 sections, 68 425 strings.",
4
+ "version": "0.2.21",
5
5
  "keywords": [
6
6
  "dsh",
7
7
  "deepseek-harness",