DSH Plugins Marketplace

DSH Plugins

Plugins

/

UI & Experience

/

dsh_locale_ru

t

dsh_locale_ru

Manifest valid★ 1

Russian language pack for DeepSeek Harness — 65/65 namespaces, 2,914 strings, MIT

UI (client)hasBundlePatch

dsh-locale-ru

Russian language pack for DeepSeek Harness.

Русская версия · MIT · DeepSeek Harness 0.2.x

license harness coverage strings

DeepSeek Harness ships with English and Chinese (zh) only. This package registers a third language, ru («Русский»), and ships a dictionary for every namespace that exposes localization strings in the current build.

It is an external client plugin, not an application setting: nothing is patched inside the app, and removing the package restores the previous behavior.

Coverage: 65 of 65 namespaces, 2,914 strings — verified against the 0.2.1-rc.5 build with tools/check.mjs --reference, which compares every key and every {placeholder} with the English source. Untranslated keys (if a future build adds any) fall back to English, so the UI is never broken; the reference check is what turns a version bump into a diff instead of a guess.

Screenshots

Settings → General → Language, with «Русский» selected:

Settings → General → Language with «Русский» selected

The interface itself, in Russian:

DeepSeek Harness interface in Russian


Install

A quick note on how it mounts: the pack is a bundle. The profile must list it in dsh.profile.bundles, and the package itself must be resolvable from the profile's node_modules. The install script performs both writes plus a symlink, which is exactly what a package manager would do:

node tools/install.mjs --profile desktop
# roll back:
node tools/install.mjs --profile desktop --uninstall
  • --home overrides $DSH_HOME (default ~/.dsh).
  • --profile selects the DSH profile name.

After installing:

  1. with HMR enabled (Desktop profile) the composition is rebuilt on the fly;
  2. reload the page — the browser has to receive a new window.__DSH_BOOT__ that includes the language bundle;
  3. open Settings → General → Language → Русский. The choice is stored in the profile's host settings and applied immediately.

To roll back: --uninstall, reload the page, pick another language.


How it works

PathPurpose
package.jsonmanifest: dsh.bundle.patch (bundle layer) and dsh.client (browser half)
cordis.patch.ymlbundle patch: a single locale-ru row mounting the package into the tree
lib/index.jshost half: an empty plugin, needed only for the composition row
lib/client.jsgenerated bundle: addLanguage({ id: 'ru', … }) + dictionaries
dictionaries/<namespace>.jsontranslation sources, one file per namespace
GLOSSARY.mdglossary and translation rules (terms, placeholders, formatting)
tools/build-client.mjsbuilds lib/client.js from dictionaries/
tools/check.mjschecks without launching the app, including reference parity
tools/extract-reference.cjspulls English dictionaries out of an installed build (app.asar)
tools/install.mjsinstalls/removes the pack in a DSH profile

The bundle patch is three lines:

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

The generated client half registers the language with the locale service; each dictionary file registers under the namespace its owning package uses (locale.register(ns, {zh, en})). The file name must match the namespace exactly, otherwise the dictionary is never found and the whole namespace stays English.


Development

node tools/build-client.mjs                    # dictionaries/*.json -> lib/client.js
node tools/check.mjs                           # structure, bundle load, apply()
node tools/check.mjs --reference ./reference   # + key and placeholder parity

lib/client.js is generated — edit dictionaries/*.json, never the bundle itself.

To produce the reference for the installed build:

node tools/extract-reference.cjs "<path-to>/app.asar" .recon/en
node tools/check.mjs --reference .recon/en

--reference <dir> points at a directory of English dictionaries (<namespace>.json) extracted from an installed DSH build. Without it, check.mjs validates structure, JSON validity, bundle loading and apply() calls; with it, it additionally verifies that the key sets match the English source and that every {placeholder} survived translation.

Requirements: Node.js 20.11+ (uses import.meta.dirname), no other dependencies.


Limitations

  • Only namespaces that have dictionaries in the DSH build are translated. Strings hardcoded outside the dictionaries stay English.
  • Pluralization and word order are outside the locale API: dictionaries return ready-made strings, so forms like «1 задача / 2 задачи» have to be split into separate keys.
  • sidebarExcel.language is intentionally left as "en": the spreadsheet engine registers only the English locale, and "ru" there would break number and date formatting.
  • ru is not part of the shipped language set, so it exists only while this package is installed. After removal, a saved ru choice falls back to the browser language.
  • Coverage is version-specific: the dictionaries track a DSH build. Strings added in later builds stay English until they are translated, and the reference check is what surfaces them.

Contributing

Corrections, terminology suggestions and new namespace translations are welcome:

  1. edit dictionaries/<namespace>.json (keep the glossary in GLOSSARY.md in sync);
  2. run node tools/build-client.mjs and node tools/check.mjs --reference ./reference;
  3. open a pull request with a short description of what changed.

Found a string that stays English? That is usually a string outside the dictionaries — open an issue with the screen and text, and it can be reported upstream.

License

MIT © 2026 tenkrol

Comments

Loading…

From the same category

dsh-desktop

by anywhere-labs

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

UI & ExperienceManifest valid

★ 34.4k

↓ 175/wk

MIT

TypeScript

Nov 2, 2026

dsh plugin --profile web add dsh-plugin-desktop

by zhu1090093659

DeepSeek Harness (DSH) Web Plugin Aggregation Ecosystem · Everything is a plugin, distributed via the Creative Workshop

UI & ExperienceManifest valid

★ 9.9k

↓ 225/wk

Apache-2.0

TypeScript

Nov 2, 2026

dsh plugin --profile web add dsh-web

A collection of independent Web UI plugins and skins, including task boards, Git graphs, mobile access, and live token stats.

UI & ExperienceManifest valid

★ 8.6k

↓ 225/wk

Apache-2.0

TypeScript

dsh plugin --profile web add dsh-web

by PC2005-cloud

DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI 视频自造专属宠物

UI & ExperienceManifest valid

★ 5.2k

↓ 224.8k/wk

MIT

TypeScript

Nov 2, 2026

dsh plugin --profile web add dsh-pet

by omdsh-dev

开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 | Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git,

UI & ExperienceManifest valid

★ 4.8k

↓ 99.3k/wk

MIT

TypeScript

Oct 30, 2026

dsh plugin --profile web add dsh-better-sidebar

by bowenliang123

The best DeepSeek Harness plugin for context insight and management, with context dashboard / browser / sidebar and context command, for context statistics, composition, breakdown, evolution details,

Tools & CapabilitiesUI & ExperienceTerminal & ClientsManifest valid

★ 4k

↓ 139k/wk

Apache-2.0

TypeScript

Nov 2, 2026

dsh plugin --profile web add dsh-context