dsh-at-file
FSMargoo/dsh-at-fileCodex 风格的 `@file` 文件引用,输入框里直接搜索并引用工作区文件。
為 DeepSeek Harness Web UI 語言選單新增六種語言(繁體中文、日本語、한국어、Français、Deutsch、Español):各語言逐條精譯,缺字串自動兜底(繁中即時簡轉繁、其他語言回退英文),官方更新與第三方插件都能覆蓋。
言語 / Languages: English · 繁體中文 · 日本語 · 한국어 · Français · Deutsch · Español
DeepSeek Harness Web UI の言語オプションに複数言語を追加する DSH プラグインです — 繁體中文, 日本語, 한국어, Français, Deutsch, Español。既知の UI 文字列には手作業で磨き上げた翻訳を使用します(各言語は英語ベースラインから翻訳)。新規・更新・サードパーティ製の文字列は英語にフォールバックします(繁體中文 は実行時に簡体字→繁体字コンバーターを使用)。つまり、アップストリームの UI 更新や他のプラグインにも、全言語を翻訳し直すことなく対応できます。
en 辞書は全名前空間で完備しているため、文字化けや欠落は発生しません)。localStorage に保存され、リロード後も維持されます。推奨: GitHub からインストール(このリンクをエージェントに渡すか、ご自身で実行)
dsh plugin --profile web add https://github.com/asd13006/dsh-multi-lang-ui
またはエージェントにインストールさせることもできます: このリポジトリのリンクを DSH に貼り付け、上記のコマンドを実行するようエージェントに依頼してください。
インストール後、dsh web を再起動し、「Settings → General → Language」で言語を選択してください。
削除(重要): 必ず dsh plugin remove を使用してください — プロファイルのバンドル一覧を正しくクリーンアップします。パッケージを手動で削除すると、DSH の起動を妨げる宙ぶらりんの参照が残る可能性があります:
dsh plugin --profile web remove dsh-multi-lang-ui
npm install(公開後):
dsh plugin --profile web add dsh-multi-lang-ui
locale translate(ns, key)
│
├─ active is one of our languages ?
│ ├─ curated translation exists (DICTS) ? → return it
│ └─ missing (new strings / third-party plugins)
│ ├─ zh-TW → convert the zh value via the char table
│ └─ others → fall back to the en value
└─ other languages → handled by dsh-client-locale as usual
起動時にプラグインは以下を行います:
locale.translate(手磨き → フォールバック)と locale.setLocale(対応言語 id を受け入れ、localStorage に書き込む)をラップ;locale/change を発火して設定行を更新);locale.adopt をラップ — 組み込みロケールのホスト設定は非同期で読み込まれ、active が locale.preference ?? browser language にリセットされます。ユーザーの設定が対応言語の場合は再適用されます;いいえ。 3 層の保護があります:
node scripts/extract.mjs <path-to-node_modules/@deepseek-ai> # 1. extract the latest zh/en dicts into src/zh-src/ and src/en/
# 2. translate src/en/*.json → src/<lang>/*.json (LLM batch OK; keys and placeholders must match)
node scripts/assemble.mjs # 3. regenerate lib/client.js
node scripts/collect-chars.mjs [third-party-client.js...] # collect all Simplified characters in use
node scripts/check-missing-chars.mjs # list Simplified-only characters missing from the char table
報告された文字がある場合は、src/zh-tw-parts/chars.json に "简字": "繁字" のマッピングを追加し、node scripts/assemble.mjs を実行してください。
dsh-multi-lang-ui/
├── package.json # plugin manifest (dsh.client.inject / bundle.patch)
├── index.mjs # Host side: no-op entry (pure client plugin)
├── cordis.patch.yml # Host plugin entry
├── lib/client.js # generated browser bundle (do not edit by hand)
├── src/
│ ├── zh-src/ # extracted zh (Simplified Chinese) dicts (generated data)
│ ├── en/ # extracted en dicts (translation baseline for all languages)
│ ├── zh-tw/ ja/ ko/ fr/ de/ es/ # per-language curated translations (quality baseline)
│ ├── zh-tw-parts/
│ │ ├── chars.json # Simplified→Traditional char table (zh-TW runtime fallback)
│ │ ├── simplified-only.txt # Simplified-only character checklist (maintenance)
│ │ └── collected-chars.txt # collect-chars output
│ └── TERMINOLOGY.md # terminology reference (used when polishing translations)
├── scripts/ # extract / assemble / verify / collect / check
└── verify/ # Playwright end-to-end verification scripts
localStorage に保存されます(ブラウザごと)。組み込みロケールもリモートブラウザでは非永続 — これは一貫した設計です。check-missing-chars.mjs を定期的に実行し、テーブルを拡張してください。localStorage["dsh-multi-lang-ui.preference"]("ja" などの言語 id)のみです。index.mjs)は何もしないエントリです。dependencies は空 — インストール時に新しいものは何もダウンロードされません。クライアントバンドルは完全に自己完結型(require はゼロ)。peer dependencies は DSH に既に存在する公式パッケージのみです。Q: dshmarket にプラグインの説明が表示されないのはなぜですか?
A: マーケットの説明とカテゴリは、ローカルの package.json ではなく、キュレーションされた「awesome-dsh-plugin」レジストリ(data/plugins/<owner>__<repo>.yml)から取得されます。そのレジストリにエントリがマージされれば表示されます。
Q: マーケットにバージョン番号を表示するには npm に公開する必要がありますか?
A: いいえ。インストール済みプラグインのバージョンはローカルの node_modules の package.json から読み取られます(GitHub インストールでも v0.1.0 と表示されます)。npm への公開は npm 検索と通常の npm インストールにのみ影響します。
Q: アップストリームが新しい文字列を追加した場合、プラグインを更新する必要がありますか?
A: いいえ — 実行時のフォールバックが新しい文字列を即座にカバーします(サードパーティプラグインの簡体字中国語の文字列も含む)。最高品質の同期が必要な場合は、scripts/ で手磨き辞書を再生成してください。
Q: プラグイン削除後に DSH が起動しなくなりました。
A: 必ず dsh plugin --profile web remove dsh-multi-lang-ui で削除してください(プロファイルのバンドル一覧をクリーンアップします)。パッケージを手動で削除すると、起動を壊す宙ぶらりんの参照が残る可能性があります。
MIT