M
dsh-screen-translator
mustakimabdullah25-tech/dsh-screen-translator
Universal on-screen translator for DeepSeek Harness Web UI: translates text, attributes, Shadow DOM, and iframes across 45+ languages.
설치
dsh plugin --profile web add github:mustakimabdullah25-tech/dsh-screen-translatorREADME
🌐 DSH Screen Translator
Universal on-screen translator for DeepSeek Harness Web UI.
Translates UI text, menus, sidebars, Settings, MCP Connectors, nested iframes, and Shadow DOM elements across 45+ languages in real time without external API keys or rate limits.
📖 English | 中文说明
✨ Features
- 🌍 45+ Languages Supported — Instant real-time translation for English, Simplified & Traditional Chinese, Japanese, Korean, Spanish, French, German, Russian, Arabic, and more.
- ⚡ Multi-Endpoint Google Engine — Automatic failover between
dict-chrome-ex,clients5,single-at, andweb-atAPIs to completely prevent429 Too Many Requestsrate limiting. - 🔍 Full-Spectrum DOM Coverage:
- Visible text nodes and SVG typography (
<text>,<tspan>). - Interactive attributes (
placeholder,title,alt,aria-label,aria-placeholder). - Open Shadow DOM roots and web components.
- Same-origin and nested iframes (MCP panels, modals, dialogs).
- Visible text nodes and SVG typography (
- 🚀 High Performance & Zero-Lag:
- Dual-Tier Cache (In-Memory LRU + LocalStorage persistence) — Instant
0msrendering for previously translated phrases. - Smart Debounced MutationObserver — Only newly inserted or altered DOM elements are processed.
- Sentence Boundary Splitting — Natural splitting at punctuation boundaries (
。,!,?,.,!,?) preserves contextual readability. - Loop Prevention — Strict self-exclusion tags (
[data-no-translate], code blocks, syntax highlighters) prevent infinite loops.
- Dual-Tier Cache (In-Memory LRU + LocalStorage persistence) — Instant
- 🎛️ Clean Native UI Integration:
- Integrated into Settings → General with matching native theme tokens.
- One-click translation actions directly inside assistant conversation turns.
- Granular controls: Enable/Disable, Target Language selector, Translate now, and Clear cache.
📦 Installation
Method 1: Via DSH Plugin Manager (Recommended)
In your terminal or DSH session:
dsh plugin add mustakimabdullah25-tech/dsh-screen-translator
Method 2: Manual Installation from Source
Clone the repository into your DSH plugins directory:
cd "path/to/dsh-workspace/plugins"
git clone https://github.com/mustakimabdullah25-tech/dsh-screen-translator.git
Then install the bundle into your profile:
dsh plugin add ./plugins/dsh-screen-translator
⚙️ Configuration & Usage
Once installed and enabled:
- Open Settings → General.
- Locate the Screen Translator (Auto-Translate Everywhere) section.
- Choose your preferred Target Language from the dropdown.
- Toggle Enabled to start automatic screen translation.
- Hit Translate now to force-translate the entire visible viewport immediately, or Clear cache to wipe stored translations.
🛠️ Architecture
┌────────────────────────────────────────────────────────┐
│ DSH Web Runtime │
│ │
│ ┌───────────────────────┐ ┌───────────────────────┐ │
│ │ MutationObserver │ │ TreeWalker │ │
│ │ (Watches new DOM/SVG) │ │ (Scans DOM/Shadow/IFR)│ │
│ └───────────┬───────────┘ └───────────┬───────────┘ │
│ │ │ │
│ ▼ ▼ │
│ ┌────────────────────────────────────────┐ │
│ │ Language & Token Filter │ │
│ │ (Filters Code, Math, Regex, Excludes) │ │
│ └──────────────────┬─────────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────┐ │
│ │ Dual Cache (Memory LRU + Storage) │ ──► Hit (0ms)
│ └──────────────────┬─────────────────────┘ │
│ │ Miss │
│ ▼ │
│ ┌────────────────────────────────────────┐ │
│ │ Multi-Endpoint Network Engine │ │
│ │ (Chrome-Ex ➔ Clients5 ➔ Single-At) │ │
│ └────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
📁 Repository Structure
dsh-screen-translator/
├── client.js # Client bundle: DOM translation engine, cache & settings UI
├── index.js # Host entry point (Cordis apply hook)
├── cordis.patch.yml # Cordis composition patch configuration
├── package.json # Bundle metadata and plugin contract
├── README.md # English documentation
├── README_ZH.md # Chinese documentation
└── LICENSE # MIT License
🤝 Contributing
Contributions, issues, and feature requests are welcome!
Feel free to open an issue or submit a pull request on GitHub.
📄 License
This project is licensed under the MIT License.