Chuyển đến nội dung chính

dsh-locale-zh-tw

Đã xác minh

dsh-locale-zh-tw · v0.1.1 · MIT · Giao diện web

DSH Web 介面繁體中文(台灣)語言包:npm install 即可加入 zh-TW 語系,全介面自動簡轉繁,繁中瀏覽器自動切換

Cài đặt

dsh plugin add dsh-locale-zh-tw

Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.

Mã nguồn

Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.

Thẻ

Tác giả

Readme

dsh-locale-zh-tw

npm version npm downloads License: MIT

DSH Web 介面的繁體中文(台灣)語言包。npm install 安裝後,設定 → 一般 → 語言 會多出「繁體中文」,全介面自動轉成繁體;zh-TW / zh-Hant / zh-HK / zh-MO 的瀏覽器還會自動切換。

不需要改任何 DSH 核心檔案,也不動其他插件的程式碼——其他插件的簡體字典由本套件在瀏覽端即時簡轉繁。

安裝

# 在你的 profile 目錄(例如 ~/.dsh/profiles/web)安裝
npm install dsh-locale-zh-tw

# 然後把它加入 profile 的 bundles(或直接用 dsh CLI)
dsh plugin --profile web add dsh-locale-zh-tw

等價於手動在 profiles/<name>/package.json 加上:

{
  "dependencies": {
    "dsh-locale-zh-tw": "^0.1.1"
  },
  "dsh": {
    "profile": {
      "bundles": [
        // ...原有 bundles...
        "dsh-locale-zh-tw"
      ]
    }
  }
}

重新啟動 dsh web 後生效(新增 bundle 需要重啟;之後切換語言只需重整頁面)。

使用

  • 設定 → 一般 → 語言 → 選「繁體中文」,整頁立即變成繁體,並用 localStorage 記住(下次開啟自動恢復)。
  • 瀏覽器語言是 zh-TW / zh-Hant / zh-HK / zh-MO 時,開啟後自動選繁體。
  • 偏好存在瀏覽器端而非主機端:主機 settings schema 只認 zh/en,zh-TW 寫主機從一開始就不被支援,這是刻意繞行、不改動核心的結果(代價:換瀏覽器需重選一次)。

原理(簡短版)

核心 @deepseek-ai/dsh-client-locale 只內建 zh/en,語系清單是固定常數、沒有對外註冊新語系的 API。本套件完全不修改核心檔案,改在瀏覽端對 LocaleRuntime 實例做防呆擴充:

  1. publish 守衛:LocaleRuntime.publish 是核心快照變更為數唯一的出口(setLocale / adopt / register 全走這裡)。核心把主機設定視為語言偏好的事實來源:zh-TW 寫入主機會被 schema 拒絕 → 客戶端「恢復重載」設定 → 核心 adopt() 隨即 publish 回 zh/en,介面剛切繁就立刻被翻回簡。守衛攔截在這個出口:只要瀏覽器端偏好是 zh-TW,任何回退別的語言的 publish 都在快照落地前被改寫回 zh-TW。
  2. 把 zh-TW 加入語系快照(語言列可選)。
  3. 查詢鏈在 zh-TW 下變成「明確 zh-TW → zh 簡轉繁 → en」——任何命名空間只要有小字典就有繁體,不會掉回英文。
  4. setLocale 重排:先把偏好寫進 localStorage 再 publish(守衛讀到新值才擋得住回退);zh-TW 完全不寫主機(寫了必被拒、還觸發回退鏈),zh/en 照常走核心持久化。
  5. 繁中地區瀏覽器自動選繁體。
  6. <html lang> 在 zh-TW 時設為 zh-Hant-TW。

所有步驟都包在 try/catch:任何失敗都只會靜默降級,不會影響 dsh web 載入。若未來核心內建 zh-TW,補丁會自動偵測並跳過。

相容性

  • 適用於 @deepseek-ai/[email protected] 系列的 LocaleRuntime 結構。
  • 瀏覽端 bundle 零外部依賴(不 require 任何套件),主機端零依賴,安裝到任何 profile 都不會缺套件。
  • 簡轉繁採用台灣用語(設定/儲存/搜尋/載入/訊息/外掛程式/資料夾/檔案/快取/金鑰/逾時/唯讀…),共 89 組片語 + 389 字元對照。

更新记录

  • 0.1.1
    • 修復「選了繁體中文卻立刻被翻回簡體 / 重新整理後記憶失效」:新增 publish 守衛 + setLocale 重排,zh-TW 不再觸發主機寫入與恢復回退鏈(詳見 REPORT-zh-tw-cannot-switch.md)。
    • 修復 package.json 缺 exports 根入口導致 ERR_PACKAGE_PATH_NOT_EXPORTED、dsh web 啟動即崩(詳見 REPORT-dsh-plugin-errors.md)。
  • 0.1.0 首版:zh-TW 語系註冊、即時簡轉繁、localStorage 偏好、繁中瀏覽器自動切換。

授權

MIT