dsh-locale-russian

中文文档
0.17.0发布于 2026/11/03MITES Module零依赖构建来源已验证

Russian localization for the DeepSeek Harness web client, with local Russian speech recognition for voice input

原始使用文档
文档目录23 节
  1. Быстрый старт
  2. Возможности
  3. Как выглядит
  4. Установка
  5. Профиль web (сервер dsh web )
  6. Приложение DeepSeek Harness (desktop)
  7. Удаление
  8. Голосовой ввод
  9. Одна кнопка
  10. Лимит диктовки
  11. Личный словарь
  12. Диктовка в фоне
  13. Провайдер по умолчанию
  14. Словарь распознавания (hotwords)
  15. Приватность
  16. Если голосовой ввод не нужен
  17. Проверка после установки
  18. Диагностика
  19. Как это работает
  20. Совместимость
  21. Участие
  22. Ссылки
  23. О проекте

dsh-locale-russian

Русская локализация web-интерфейса DeepSeek Harness — и русский голосовой ввод в комплекте: распознавание речи работает локально, без облака и API-ключей.

checks npm npm downloads stars license coverage dashboard

Быстрый старт

Приложение DeepSeek Harness — обычный случай:

npx dsh-locale-russian-install --desktop

Перезапустите приложение и выберите Настройки → Общие → Язык → Русский. Всё: интерфейс на русском, склонения («1 файл», «2 файла», «5 файлов») работают из коробки.

Сервер dsh web:

dsh plugin --profile web add dsh-locale-russian

Руками ничего запускать не обязательно: можно дать агенту ссылку на этот репозиторий — он поставит пакет сам. Подробности и частые вопросы — в FAQ.

Голосовой ввод — вторая половина пакета. Он требует штатный плагин «Голосовой ввод» и один раз скачанный движок распознавания:

  1. включите «Голосовой ввод» на странице «Плагины»;
  2. откройте его карточку и нажмите «Скачать и подготовить» — движок и модель скачаются и настроятся сами;
  3. перезапустите приложение и нажмите микрофон в поле ввода.

Подробности — в разделе «Голосовой ввод».

Возможности

ВозможностьЧто именно
Перевод интерфейса3929 строк в 75 namespace: панели, настройки, диалоги, карточки инструментов, подсказки, ошибки UI, единицы измерения и форматы дат
Описания плагинов555 строк: названия и описания карточек в разделе «Встроенные плагины» и в обзоре плагинов
Русские склоненияформы выбираются по Intl.PluralRules('ru'), а не по английскому правилу «1 или много»
Голосовой вводлокальный распознаватель GigaAM v3 для штатного голосового ввода: аудио не покидает машину, ключи не нужны, ставится одной кнопкой
Терминологияединый глоссарий (GLOSSARY.md) и правила стиля (STYLE.md), проверяемые линтером
Установкаодин пакет: ставится из npm, git, tarball или локального пути

Пакет — обычный клиентский плагин DSH: он добавляет язык ru в расширяемый каталог локалей и регистрирует переводы для всех namespace интерфейса. Недостающие ключи автоматически показываются по-английски, поэтому неполный перевод не ломает интерфейс. Одновременно это bundle, поэтому ставится одной командой и обновляется как обычный пакет.

Строки сняты из трёх источников: клиентских пакетов установленного приложения (app.asar), CLI-сборки и репозитория. Пропущенных ключей нет — актуальные цифры и разбивка по namespace на дашборде покрытия.

Как выглядит

Главный экран на русском

Выбор языка в настройках

Установка

Пакет не требует форка DeepSeek Harness и не меняет его файлы.

Профиль web (сервер dsh web)

dsh plugin --profile web add dsh-locale-russian

Команда ставит пакет из npm через pnpm, добавляет его в dependencies и dsh.profile.bundles, после чего строка locale-ru появляется в собранном дереве.

Если сразу после выпуска pnpm ставит предыдущую версию — так работает его защита от слишком свежих пакетов; укажите версию явно ([email protected]) или повторите позже. npm в такой ситуации ставит актуальную версию сразу.

Так же пакет ставится из git или локального пути:

dsh plugin --profile web add github:nemezida1337/dsh-locale-russian
dsh plugin --profile web add file:/абсолютный/путь/к/рабочей/копии

Приложение DeepSeek Harness (desktop)

Профиль desktop принадлежит Electron-приложению, и CLI отказывается им управлять. Пакет ставится одной командой: она находит профиль, делает резервную копию, добавляет зависимость и строку бандла (после голосового ввода, чтобы применились патчи конфигурации — провайдер по умолчанию и лимит диктовки), ставит пакет встроенным pnpm приложения и проверяет результат.

npx dsh-locale-russian-install --desktop

Полезные режимы: --dry-run — показать изменения без записи, --revert — откатить установку, --profile <путь> — другой каталог DSH.

Без терминала: включите «Пользовательские рынки плагинов» на странице «Плагины», откройте вкладку «Обзор» → «Источники индексов», добавьте адрес https://nemezida1337.github.io/dsh-locale-russian/index.json и установите пакет из «Обзора».

Вручную: добавьте "dsh-locale-russian": "^0.17.0" в ~/.dsh/profiles/desktop/package.json и dsh-locale-russian в его dsh.profile.bundles, затем выполните pnpm add dsh-locale-russian в каталоге профиля. pnpm лежит внутри приложения: …/DeepSeek Harness.app/Contents/Resources/runtime/primary-runtime/dependencies/pnpm/bin/pnpm.mjs.

Строкой патча — когда нужна живая рабочая копия: возьмите копию репозитория в постоянное место и добавьте в ~/.dsh/profiles/desktop/cordis.patch.yml, сохранив остальные записи:

- insert:
    - id: locale-ru
      name: file:///абсолютный/путь/к/dsh-locale-russian/lib/index.js

После любого способа перезапустите приложение. Язык выбирается в Настройках → Общие → Язык; если система и браузер приложения настроены на русский, интерфейс переключится сам.

Удаление

  • приложение: npx dsh-locale-russian-install --desktop --revert (или удалите пакет на странице «Плагины»);
  • web-профиль: dsh plugin --profile web remove dsh-locale-russian.

Движок и модель голосового ввода остаются в ~/.dsh/bin и ~/.gigastt — их можно удалить вручную.

Голосовой ввод

Пакет — не только словари: его хост-половина (lib/index.js) регистрирует в штатном реестре speechToText провайдера gigaam-local, поэтому микрофон, волна, Stop/Cancel и вставка текста остаются штатными, а распознавание идёт на машине через gigastt и модель GigaAM v3 (e2e_rnnt, INT8, 271 МБ) от SberDevices.

Одна кнопка

  1. Включите «Голосовой ввод» на странице «Плагины» — это штатный плагин DSH, в поставке он выключен.
  2. Откройте его карточку и нажмите «Скачать и подготовить». Провайдер сам скачает движок для вашей платформы (macOS arm64, Linux x64/arm64, Windows x64) с проверкой контрольной суммы релиза, распакует его в ~/.dsh/bin, затем скачает модель в ~/.gigastt/models и запустит её. Прогресс обоих шагов виден в карточке.
  3. Перезапустите приложение — в настройках голосового ввода появится GigaAM v3 (локально, RU).

Если русский распознаватель выбран по умолчанию, движок прогревается в фоне через несколько секунд после запуска: первая диктовка не ждёт загрузки модели.

Если движок или модель удалить, та же кнопка восстановит их. Альтернатива для терминала — npx dsh-locale-russian-install. На платформах без готовой сборки возьмите релиз gigastt вручную и укажите binaryPath в настройках плагина.

Лимит диктовки

Пакет поднимает штатный лимит записи с 2 до 5 минут (и объём аудио с 4 до 10 МиБ — на 300 секунд в формате 16 кГц/моно нужно ~9,2 МиБ). Движок распознаёт такую запись примерно за 15 секунд. Изменить лимит можно в патче профиля — строка api-speech-to-text, причём менять нужно оба значения:

- id: api-speech-to-text
  config:
    maxDurationSeconds: 600      # 10 минут
    maxAudioBytes: 20971520      # 20 МиБ

Личный словарь

Движок не знает ваших терминов — он может услышать «конфиг хотводс» вместо configHotwords. Для этого есть личный словарь: он хранится отдельной секцией в ~/.dsh/speech-ru/hotwords.txt и подмешивается к распознаванию.

Первичное заполнение — из терминала, списком или файлом:

npx dsh-locale-russian-install --hotwords-add "configHotwords, GigaAM, dsh-locale-russian"
npx dsh-locale-russian-install --hotwords-add-file terms.txt   # по одному слову в строке
pbpaste | npx dsh-locale-russian-install --hotwords-add-file - # список из буфера (stdin)
npx dsh-locale-russian-install --hotwords-list                 # посмотреть словарь
npx dsh-locale-russian-install --hotwords-remove "GigaAM"
npx dsh-locale-russian-install --hotwords-export terms.json    # выгрузить словарь и замены
npx dsh-locale-russian-install --hotwords-import terms.json    # загрузить (например, от коллеги)
npx dsh-locale-russian-install --hotwords-from .              # собрать термины из проекта

Из проекта: --hotwords-from <папка> сканирует исходники (имена файлов, компонентов, camelCase/PascalCase-идентификаторы), ранжирует по частоте и берёт самые полезные — по умолчанию 150 (--hotwords-limit). Служебные слова, React-хуки, node_modules и обрывки уже существующих фраз («Harness» при «DeepSeek Harness») пропускаются. Повторный запуск заменяет слова прошлого сканирования (манифест projects.json рядом со словарём), поэтому сканирование можно повторять после рефакторинга. Найденное видно и удаляется в панели «Словарь (N)».

Пополнение прямо из распознанного текста: выделите слово в поле ввода — рядом появится поповер с кандидатами из словаря (фонетическое сопоставление: «гитхаб» → GitHub) и пунктом «+ в словарь». Выбрали кандидата — слово в поле заменилось, а пара «как услышали → как надо» запомнилась. Нажали «+ в словарь» — фраза просто попала в словарь. В поповере есть строка «Словарь (N)» — открывает весь список с кнопками «×» для удаления. Если выделенное слово уже есть в словаре, поповер предлагает «− убрать из словаря». Это явные действия, ничего не правится молча. Дубликаты слов сравниваются без учёта регистра: «GitHub» и «github» — одно слово.

Авто-обучение из правок: править слово вручную не обязательно — если после диктовки вы исправили слово в поле, пара «как услышали → как надо» запоминается сама. Учится только терминология: ссылки, числа, код, служебные слова, склонения и смысловые правки пропускаются. Внизу появится «Выучено: гитхаб → GitHub».

Замены хранятся в ~/.dsh/speech-ru/replacements.json и применяются автоматически к каждой расшифровке: если движок услышал «гитхап», в поле появится GitHub, а внизу — уведомление «Словарь: заменено 1: гитхап → GitHub». Это видимая правка, а не молчаливая. Hotwords подсказывают написание, но не всегда пересиливают акустику, поэтому выученные пары — надёжный путь для терминов, которые произносят по-русски.

Лимит личного словаря — 400 фраз (движок читает файл целиком, ограничение в 64 фразы относится только к HTTP-запросу). После изменения словаря движок один раз перезагружается: первая диктовка будет на ~5 секунд дольше.

Диктовка в фоне

Штатный голосовой ввод отменяет запись, когда окно теряет фокус: переключились на браузер — диктовка пропадала. Пакет это исправляет: запись продолжается, а состояние видно по трём признакам — бейдж «● Диктовка идёт в фоне» в окне приложения, точка «●» в заголовке окна и системное уведомление. Вернувшись в приложение, нажмите «Стоп» — текст распознается и вставится как обычно; если не возвращаться, запись остановится сама по лимиту длительности.

Провайдер по умолчанию

Провайдер появляется в списке «Сервис распознавания» и выбирается в настройках. Чтобы русский распознаватель был выбором по умолчанию сразу, добавьте в ~/.dsh/profiles/<профиль>/cordis.patch.yml:

- id: speech-to-text
  config:
    defaultProvider: gigaam-local

Сам пакет тоже несёт этот патч, но он применяется только если бандл голосового ввода идёт в dsh.profile.bundles раньше нашего: патчи применяются по порядку слоёв. Строка в патче профиля применяется последней и работает при любом порядке; выбор, сделанный в настройках, её перекрывает.

Словарь распознавания (hotwords)

Точные написания фирменных слов и терминов лежат в ~/.dsh/speech-ru/hotwords.txt — по фразе на строку, правки подхватываются со следующей диктовки без перезапуска. Встроенный список: DeepSeek Harness, DSH, GigaAM, gigastt. Слишком похожие фрагменты одной фразы добавлять не стоит: конкурирующие записи портят результат.

Приватность

  • Аудио обрабатывается локально: движок слушает только 127.0.0.1 на случайном порту, в сеть ничего не отправляется.
  • API-ключи и подписки не используются; модель и движок — обычные файлы на диске.
  • Пакет не собирает телеметрию: единственный сетевой обмен — npm при установке и загрузка движка с моделью по вашему явному действию.

Если голосовой ввод не нужен

Ничего делать не нужно: без включённого бандла голосового ввода хост-половина не активируется, перевод работает как обычно. Движок и модель не скачиваются, пока вы сами не нажмёте кнопку подготовки.

Проверка после установки

  1. Язык: «Настройки → Общие → Язык» — выбран «Русский», интерфейс по-русски.
  2. Страница: в исходнике страницы html lang="ru".
  3. Голосовой ввод: «Плагины → Голосовой ввод → Сервис распознавания» — в списке есть GigaAM v3 (локально, RU), статус «Готов». Кнопка микрофона записывает и вставляет текст.

Диагностика

СимптомПричинаЧто сделать
Интерфейс остался английскимязык не выбран или пакет не в композиции«Настройки → Общие → Язык» → «Русский»; проверьте dsh plugin --profile <имя> list и перезапустите приложение
Часть строк по-английскиключ новый и ещё не переведёнштатное поведение: недостающие ключи падают в английский; обновитесь до свежей версии пакета
В «Сервис распознавания» нет GigaAM v3не включён штатный «Голосовой ввод» или не установлен наш пакетвключите «Голосовой ввод» на странице «Плагины», установите пакет, перезапустите
Провайдер есть, но не выбран по умолчаниюпорядок слоёв: наш патч применился раньшевыберите в настройках или добавьте строку в патч профиля (см. выше)
«Не удалось скачать движок»нет сети или недоступен GitHubповторите кнопку «Скачать и подготовить»; при блокировке скачайте релиз gigastt вручную и укажите binaryPath
«Модель GigaAM не подготовлена»модель удалена или не докачанакарточка «Плагины → Голосовой ввод» → «Скачать и подготовить»
Диктовка путает терминысловарь не знает ваших словдопишите фразы в ~/.dsh/speech-ru/hotwords.txt
Пакет не загружается, в логе engines.dshверсия DSH вне диапазонаобновите пакет — диапазон расширяется с проверкой новых сборок

Логи приложения: ~/Library/Logs/DeepSeek Harness/ (macOS). Покрытие переводов — на дашборде.

Как это работает

  1. Плагин объявляет язык: ctx.locale.addLanguage({ id: 'ru', label: 'Русский', fallback: 'en' }).
  2. Для каждого namespace регистрируется словарь: ctx.locale.register(namespace, 'ru', {...}). Ключи совпадают с оригинальными, значения — русские.
  3. Русские склонения: словарь может хранить до трёх форм, разделённых |, а пакет подменяет LocaleRuntime.prototype.translate, выбирая форму по числу. Для не-ru локалей вызывается исходный метод, поэтому английский и китайский интерфейсы работают как раньше.
  4. Метаданные плагинов: описания и названия приходят от хоста как LocalizedText и рисуются через LocaleRuntime.resolveText; пакет подменяет и этот метод. Если пакет отдаёт свой русский вариант, он выигрывает.
  5. Голосовой ввод: хост-половина регистрирует провайдера gigaam-local в штатном реестре speechToText; движок прогревается в фоне, когда провайдер выбран по умолчанию, и запускается при первой диктовке в остальных случаях.

В DSH 0.2.2 русский язык и небольшие словари common/settings встроены в ядро: пакет дополняет их — занятые слоты не мешают активации, а перевод для них накладывается поверх. Подробнее о формате форм — в STYLE.md.

Совместимость

  • engines.dsh в манифесте (^0.1.5-rc.1 || ^0.2.1-rc.2 || ^0.2.2-alpha.2) перечисляет проверенные сборки: 0.1.5-rc.x (CLI-сборка, клиентские пакеты 0.1.5-rc.2), CLI-сборки 0.2.1-rc.2…rc.4, приложения 0.2.1-rc.3 и 0.2.1-rc.5 (клиентские пакеты распакованы из app.asar) и 0.2.2-alpha.2 из тега alpha. Пропусков нет: в 0.2.1-rc.5 нет ни одной новой строки, одна удалена, английский текст не менялся.
  • Голосовой ввод проверен в живой композиции с бандлом голосового ввода и без него; тест хост-половины входит в npm test.
  • Пакет использует публичный контракт локали (addLanguage, register, getSnapshot) и два приватных метода рантайма: translate для склонений и resolveText для метаданных плагинов. Оба вызова защищены проверкой типа: если метод исчезнет, пакет продолжит работать — склонения перестанут выбираться, описания плагинов останутся английскими, строки интерфейса не пострадают.
  • Обсуждения в upstream: хук склонений, локализация оболочки и локализуемые описания навыков; тексты — в contrib/upstream-issues.md, витрина плагина — discussions/10146.

Участие

  • Вопросы по установке, голосовому вводу и обновлению — FAQ и обсуждения репозитория (категории «Вопросы» и «Идеи»).
  • Нашли ошибку перевода — issue по шаблону.
  • Предлагаете правку — CONTRIBUTING.md: правила перевода, порядок выпуска и как добавить новый язык генератором tools/scaffold-locale.mjs.
  • Покрытие по namespace и источникам — дашборд.
  • Ответы в обсуждениях DeepSeek Harness проверяет еженедельный workflow и при новом комментарии открывает issue в этом репозитории.
  • Мейнтейнерам — docs/DEVELOPMENT.md (инструменты, CI, выпуски) и docs/MAINTENANCE.md (чек-лист обслуживания: новая версия DSH, движок, жалобы на перевод).

Ссылки

ЧтоАдрес
Пакет в npmhttps://www.npmjs.com/package/dsh-locale-russian
Релизы и история измененийhttps://github.com/nemezida1337/dsh-locale-russian/releases
Дашборд покрытияhttps://nemezida1337.github.io/dsh-locale-russian/
Индекс маркета (для «Плагины → Обзор»)https://nemezida1337.github.io/dsh-locale-russian/index.json
Витрина в обсуждениях DSHhttps://github.com/deepseek-ai/deepseek-harness/discussions/10146
Предложение: хук склоненийhttps://github.com/deepseek-ai/deepseek-harness/discussions/10147
Предложение: локализация оболочкиhttps://github.com/deepseek-ai/deepseek-harness/discussions/10148
Предложение: локализуемые описания навыковhttps://github.com/deepseek-ai/deepseek-harness/discussions/11533
Рецепт плагина для DSHcontrib/plugin-recipe.md
DeepSeek Harnesshttps://github.com/deepseek-ai/deepseek-harness
gigastt (движок распознавания)https://github.com/ekhodzitsky/gigastt
GigaAM (модель)https://github.com/salute-developers/GigaAM

О проекте

Неофициальная локализация, не связанная с DeepSeek. Модель GigaAM распространяется по лицензии MIT её авторами; движок gigastt — отдельный проект со своей лицензией. Пакет распространяется по лицензии MIT.

版本与发布记录

dsh-locale-russian 共发布 38 个版本,首次发布于 2026/10/18;过去 12 个月发布了 38 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.17.0latest2026/11/03今天
0.16.12026/11/03今天
0.16.02026/11/03今天
0.15.02026/11/03今天
0.14.02026/11/03今天
0.13.02026/11/03今天

关于 dsh-locale-russian 的常见问题

dsh-locale-russian 是什么?

为DeepSeek Harness网络客户端提供俄语本地化,为语音输入提供俄语本地语音识别

如何安装 dsh-locale-russian?

在项目目录运行 npm install dsh-locale-russian,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 dsh-locale-russian-install,可以用 npx dsh-locale-russian-install 直接运行。

dsh-locale-russian 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/dsh-locale-russian 是否存在。

dsh-locale-russian 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

dsh-locale-russian 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

dsh-locale-russian 可以商用吗?

dsh-locale-russian 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

dsh-locale-russian 还在维护吗?

最新版本 0.17.0 发布于 2026/11/03(今天);至今共发布 38 个版本,其中过去 12 个月发布了 38 个;首次发布于 2026/10/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。