Русская локализация DeepSeek Harness — языковой пакет и установщик .exe

· 5 мин чтения
deepseek-harness localization i18n windows installer
📂 Исходный код на GitHub

Неофициальная русская локализация DeepSeek Harness: языковой пакет на 2901 строку в 63 пространствах имён, подключение через штатный механизм языковых пакетов ctx.locale, установщик .exe на Inno Setup, офлайн-скрипты PowerShell без Node.js, сборка .exe и .zip в GitHub Actions и публикация релизов. MIT.

Русская локализация DeepSeek Harness — языковой пакет и установщик .exe

DeepSeek Harness — агентный каркас от DeepSeek — вышел только на английском и китайском. Для русскоязычного разработчика это значит, что весь интерфейс приходится читать на чужом языке: чат, настройки, списки задач, статусы шагов. Репозиторий dsh-locale-ru закрывает эту дыру — это неофициальный языковой пакет, который переводит интерфейс на русский. Внутри 2901 строка перевода в 63 пространствах имён, установщик .exe, скрипты для ручной установки и сборка релизов через GitHub Actions.

Главная идея проекта: пакет ничего не ломает. Он не патчит app.asar и не трогает файлы установки DeepSeek Harness. Файл app.asar — это архив с исходниками самого приложения, и большинство любительских локализаций Electron-программ правят его напрямую. После каждого обновления такая правка слетает, а в худшем случае приложение вообще перестаёт запускаться. dsh-locale-ru поступает иначе: он подключается как обычный клиентский плагин профиля desktop через штатный механизм языковых пакетов самого DSH. Из-за этого перевод переживает обновления приложения: после обновления DSH не теряет перевод целиком — пропадают только новые строки, которых ещё нет в словаре.

Готовые файлы лежат на странице релизов: там же установщик .exe и архив .zip для ручной установки. Бейджи в шапке репозитория показывают последнюю версию релиза и статус сборки workflow release.yml.

Что переведено

Область Примеры
Чат и композер подсказки, статусы хода, ошибки, пустые состояния
Боковая панель сеансы, рабочие области, плагины, задачи автоматизации
Настройки общие, модели, аккаунт, плагины, пресеты агента, тема
Траектория панель инструментов, сводки, вызовы, шаги
Инструменты задачи, расписание, цели, планы, субагенты, workflow
Документы предпросмотр Word, Excel, PDF, изображений
Прочее сочетания клавиш, голосовой ввод, магазин плагинов

Всего — 2901 строка в 63 пространствах имён клиентских плагинов DSH.

В репозитории лежат два скриншота, по которым видно результат: страница «Настройки → Общие → Язык» с русским пунктом в списке и боковая панель, где сеансы и рабочие области подписаны по-русски.

Установка

Вариант 1: установщик .exe (рекомендуется)

  1. Скачайте dsh-locale-ru-setup-*.exe из последнего релиза.
  2. Запустите установщик. SmartScreen может показать предупреждение — у файла нет цифровой подписи.
  3. Перезапустите DeepSeek Harness.

Установщик кладёт пакет в %USERPROFILE%\.dsh\locale-packs\ru, добавляет зависимость в профиль desktop, прописывает строку загрузчика в cordis.patch.yml и создаёт штатное средство удаления в «Приложениях и возможностях». То есть удалить перевод можно обычным способом, через системные настройки Windows.

Вариант 2: архив .zip (ручная установка)

  1. Скачайте dsh-locale-ru-manual.zip из релиза и распакуйте.
  2. Откройте PowerShell в папке и выполните:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1
  1. Перезапустите DeepSeek Harness.

Удаление:

powershell -NoProfile -ExecutionPolicy Bypass -File .\uninstall.ps1

Вариант 3: из исходников

git clone https://github.com/cptn73m0/dsh-locale-ru.git
cd dsh-locale-ru
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1

Отдельно в репозитории лежат офлайн-варианты скриптов — install-offline.ps1 и uninstall-offline.ps1. Они работают без сети и без Node.js, именно ими пользуется установщик .exe. Обычные install.ps1 и uninstall.ps1 нужны для ручной установки из распакованного архива или из исходников.

Переключение языка

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

Что остаётся на английском

Не весь контент становится русским — часть строк остаётся на английском:

  • Ответы модели и содержимое ваших файлов.
  • Названия инструментов и технические идентификаторы (Pwsh, Read, Bash, DeepSeek, API, JSON).
  • Описания сторонних плагинов из их package.json — они поставляются только на английском и китайском.
  • Служебные сообщения хоста и диагностика вне клиентских словарей.
  • Новые строки, добавленные в DSH после выхода этой версии перевода.

Последний пункт важен: когда DeepSeek выпустит обновление со свежими строками интерфейса, они останутся на английском до тех пор, пока пакет не обновят.

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

DSH поддерживает внешние языковые пакеты. Клиентский плагин регистрирует язык и словари для пространств имён интерфейса, а активный язык выбирается в настройках и сохраняется в профиле. Выглядит это так:

export const inject = ['locale']

export function apply(ctx) {
  ctx.effect(() => ctx.locale.addLanguage({ id: 'ru', label: 'Русский', fallback: 'en' }))
  ctx.effect(() => ctx.locale.register('common', 'ru', { ok: 'ОК', cancel: 'Отмена' }))
}

Обратите внимание на fallback: 'en' — если какого-то ключа нет в русском словаре, приложение возьмёт английскую строку.

Профиль загружает пакет обычной строкой загрузчика:

- insert:
    - id: locale-ru
      name: dsh-locale-ru

Файлы репозитория

Репозиторий разложен по папкам: locale/ — словари, lib/ — собранный бандл и заглушка хоста, installer/ — сценарий Inno Setup, tools/ — сборка бандла, assets/ — скриншоты и баннер, .github/workflows/ — сборка релизов.

Файл Назначение
package.json Манифест плагина (dsh.client, платформа web)
lib/client.js Сгенерированный клиентский бандл со словарями
lib/index.js Пустая хост-часть
locale/ru.json Словарь в читаемом виде
install.ps1 / uninstall.ps1 Ручная установка и удаление
install-offline.ps1 / uninstall-offline.ps1 Установка без сети и Node.js (используется .exe)
installer/installer.iss Сценарий Inno Setup для сборки .exe
.github/workflows/release.yml Сборка .exe и .zip, публикация релиза

Человекочитаемый словарь лежит в locale/ru.json, а lib/client.js — это уже собранный из него бандл. Править нужно словарь, а бандл пересобирать.

Сборка

Пересобрать клиентский бандл из словаря:

node tools/build-client.mjs

Релиз собирается GitHub Actions при пуше тега:

git tag v0.1.0
git push origin v0.1.0

Workflow соберёт dsh-locale-ru-setup-<version>.exe через Inno Setup, упакует ручной архив и опубликует оба файла в GitHub Releases.

Ограничения

  • Перевод неофициальный и может отставать от новых версий DSH.
  • Установщик не подписан: SmartScreen может показать предупреждение.
  • Пакет рассчитан на Windows и профиль desktop.
  • После обновления DSH новые строки останутся на английском до обновления пакета.

Лицензия

MIT. DeepSeek Harness — продукт DeepSeek; этот репозиторий не связан с компанией и распространяется сообществом.

Источник: https://github.com/cptn73m0/dsh-locale-ru