DSH Hub

RadicalGitter/dsh-ui-translate

dsh-ui-translate

UIWeb UI0 GitHub stars· updated 2026-08-22

Privacy-first browser-local Chinese-to-English translation for DeepSeek Harness Web using OPUS-MT.

Install

npx @deepseek-ai/dsh plugin --profile web add dsh-ui-translate

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-ui-translate DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-ui-translate.svg)](https://dshhub.dev/plugins/dsh-ui-translate)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from RadicalGitter/dsh-ui-translate, cleaned of badges and images.

dsh-ui-translate

A privacy-first DeepSeek Harness Web plugin that can translate all visible Chinese UI and content—including session titles, workspace names, messages, search results, and plugin text—without enabling Chrome auto-translate.

Privacy and mutation model

  • The plugin is disabled on first install and defaults to the in-process offline glossary.
  • Network-capable translation remains restricted to a compile-time allowlist of known DSH UI phrases and bounded numeric templates.
  • The explicitly selected browser-local OPUS-MT backend translates all connected visible Chinese text, including user-authored and session-derived content. Source text and translations stay inside a dedicated browser Worker and are never uploaded.
  • Editable/composer fields, textarea, input, select, contenteditable, code/preformatted content, [data-input-backdrop], translate="no", and .notranslate remain untouched to avoid corrupting authored or executable text. A plugin may explicitly mark a read-only <pre> as prose with data-dsh-translate="prose"; only the browser-local backend may translate that opt-in surface.
  • Translation changes only Text.data; element structure, attributes, stable session/workspace IDs, links, listeners, and React ownership remain intact.
  • Translated text receives a configurable marker: purple overlay (default), dashed underline, both, or none. Hovering directly over translated characters for about 0.65 seconds exposes exactly one contextual action: Show original while translated, then Re-translate after the original is shown. The control does not wrap or intercept the underlying link.
  • Translated session titles are presentation aliases: clicking them still opens the canonical thread through its unchanged ID/link. Free-text alias resolution by an agent is not yet provided.
  • Disabling or reconfiguring the plugin restores original text. Translation-result caches are bounded and memory-only; downloaded model assets use the browser cache.
  • Local inference runs progressively in small sequential batches: visible navigation, settings, and live-status text are prioritized ahead of conversation backlogs, and scrolling queues newly visible content.

Backends

BackendDefaultNetwork behavior
Offline glossaryYesNo network. Translates approved Chinese labels and bounded pet count/point templates to English; unknown labels stay unchanged.
Browser-local OPUS-MTNoChinese-to-English only. Translates all visible Chinese UI and content. On first use, downloads about 110 MB of pinned quantized model files from Hugging Face, caches them in the browser, and performs inference inside a dedicated local Worker. Page text is not uploaded.
OpenAI-compatibleNoSends only allowlisted UI phrases after the user explicitly selects this backend and enables translation. Calls run through a token-authenticated, same-origin, rate-limited, loopback-only Host route.

Related plugins