Adds 20 locales (Traditional Chinese HK/TW, Japanese, Korean, French, German, Spanish, Portuguese, Italian, Russian, Ukrainian, Polish, Dutch, Turkish, Arabic, Hindi, Indonesian, Vietnamese, Thai, Swedish) to the DeepSeek Harness Web UI, with hand-polished translations, runtime fallbacks, and automatic translation of market and third-party text.
Install
# from npm (prebuilt)
dsh plugin --profile web add @mimateinn/dsh-i18n
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:mimateinn/dsh-i18n
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
繁體中文(香港) · 繁體中文(台灣) · English · 日本語 · 한국어 · Français · Deutsch · Español · Português (Brasil) · Italiano · Русский · Українська · Polski · Nederlands · Türkçe · العربية · हिन्दी · Bahasa Indonesia · Tiếng Việt · ไทย · Svenska
A sustainable internationalization plugin for the DeepSeek Harness Web UI. Version 0.2.3 registers 20 locales from one registry while preserving DSH's existing client ModuleLoader integration, locale service, preference migration, and runtime fallback behavior.
Locales
繁體中文(香港、台灣), 日本語, 한국어, Français, Deutsch, Español, Português (Brasil), Italiano, Русский, Українська, Polski, Nederlands, Türkçe, العربية, हिन्दी, Bahasa Indonesia, Tiếng Việt, ไทย, and Svenska.
- Traditional Chinese locales (zh-HK, zh-TW) fall back from the built-in Simplified Chinese dictionaries through the existing character converter.
- Arabic sets the document language and direction to
ar/rtl; other managed locales useltr. - Untranslated non-Chinese values fall back to English.
Features
- Adds all 20 locales to Settings → General → Language, alongside the built-in 中文 / English.
- Per-language hand-polished translations for every official locale namespace (715 strings each), from an English baseline.
- Runtime fallback: new/updated/third-party strings fall back to English (or Simplified→Traditional conversion for zh-HK/zh-TW), so upstream UI updates and other plugins are covered without re-translating every language.
- Language preference persisted in browser
localStorage; reload-proof. - Auto-translate: with a non-Chinese locale active, long English text (plugin-market descriptions, third-party UI, error prose) is auto-translated to your language through your configured model, and cached so re-renders don't undo it. The default language (en/zh) is left untouched; Traditional Chinese keeps the built-in Simplified→Traditional conversion instead of calling a model.
- Zero intrusion on dictionaries: no upstream package changes, silent degradation if the locale service is missing.
Install
Install from npm (exact version — this is what DSH Desktop's Market update button needs):
dsh plugin --profile <active-profile> add @mimateinn/dsh-i18n@0.2.2
Or from GitHub, pinned to a commit:
dsh plugin --profile <active-profile> add github:mimateinn/dsh-i18n#<commit>
For DSH Desktop the active profile is the active value in
%APPDATA%/DSH Desktop/profile-selection/state.json (usually desktop). The per-profile shim
host-commands/<profile>/bin/dsh.cmd bakes its own profile name into the command, so running the
web shim installs into the web profile even while Desktop is showing desktop — the install
succeeds and the plugin is never loaded. Pass --profile explicitly to be sure.
DSH Desktop's Market install paths accept only an exact published npm version, so a GitHub spec must
go through the built-in terminal dsh plugin add, which forwards the specifier to pnpm unvalidated.
Restart the host, then choose a language in Settings → General → Language. Remove with
dsh plugin --profile <active-profile> remove dsh-i18n.
Compatibility
- DeepSeek Harness 0.1.0-rc.6 or newer, including the current published line 0.1.1-rc.2 (
@deepseek-ai/dshnpmlatest/next, 2026-08-27). - Node.js
^22.19.0 || >=24.0.0(official harnessengines.nodeat dsh-v0.1.1-rc.2). - Host packages are
peerDependencieswith an explicit0.1.1-rc.*branch so node-semver does not silently exclude harness prereleases (awesome-dsh-plugin contributing).
Maintenance pipeline
The locale registry is scripts/locales.mjs. Translation data remains in src/<locale>/; generated browser code is lib/client.js.
npm run i18n:check # file, namespace/key, stale, placeholder, empty, English-residue, Simplified-residue parity
npm run i18n:build # assemble registry locales into lib/client.js
npm test # check + build + converter verification + runtime harness
node scripts/extract.mjs <installed-dsh-path>
Extraction accepts an installed DSH root, its @deepseek-ai package directory, or the unpacked desktop application path.
Publishing
The npm package includes runtime entries, the generated client, locale data, and the locale registry. Source repository: https://github.com/mimateinn/dsh-i18n
Security and privacy
- The plugin makes no network calls itself, has no telemetry, and reads/writes only two browser localStorage keys: the selected locale id and the translate-model override.
- Auto-translate runs through DSH's built-in LLM service (your configured model), not a third-party API. It only fires for long English prose when a non-Chinese locale is active; the default language is never sent for translation.
- No filesystem access, no credential handling.
License
MIT
Links
More in this category
zhu1090093659/dsh-web#packages/dsh-task-board★ 8526
Task board for the dsh web GUI: a sidebar multi-column kanban whose cards run in real DSH agent sessions and can also be scheduled with cron expressions, executed host-side even with the browser closed.
zhu1090093659/dsh-web#packages/dsh-web-all★ 8526
Plugin and skin collection for the DSH Web UI: task board, Git graph, right-side panel, remote mobile UI, pet, live token stats, and a skin center.
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 4281
A fixed-corner whale widget for the DSH web GUI — balance, today's usage and per-turn cost with peak/off-peak pricing, editable balance-alert and daily-budget bubbles, a module-based custom bubble queue with A/B weighted choices and random lines or images, 30+ vendor templates (OpenAI, OpenRouter, Kimi, SiliconFlow, Ark, Zhipu, MiniMax and more) with per-model balance and subscription quota, plus task-end sound, imported audio, custom roles and a resource manager. Local-only, no telemetry.
ccch1mneyyy/dsh-TUI★ 4199
Claude Code-style full-screen terminal UI: pixel-whale header, live status line, and streaming thought expansion.
omdsh-dev/DSH-better-sidebar★ 4062
Full sidebar workbench with file rendering and editing, terminal, Git, and subagents; third-party plugins can register new tabs.
Devin-AXIS/deepseek-design#deepseek-idesign★ 1438
Visual design studio for websites, app prototypes, posters, cards, reports, and magazines, with templates, direct element editing, selection-aware AI draft handoff, and export.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.