dsh-chat-rtl:DeepSeek Harness 波斯語對話自動 RTL

前言

在 DeepSeek Harness(DSH)裏做客戶端擴展時,界面語言往往仍是英文,但對話內容可能是波斯語(Persian / Farsi)。瀏覽器默認從左到右排版時,波斯語段落會顯得彆扭,輸入框也不好對齊。單純改整頁 html dir 會把應用殼子一起翻過來,和「應用保持自身語言」的目標衝突。下面介紹社區客戶端插件 dsh-chat-rtl:只在會話區域按內容方向重排,不碰全局 locale。

這是什麼

dsh-chat-rtl 是維護者 Mehran Ghalambor(GitHub:mehran282)發佈的可安裝客戶端插件與 profile bundle,許可證爲 MIT。一句話定位:在 DSH 中自動爲波斯語對話內容啓用從右到左(RTL)排版,應用界面仍保持原有語言(如 English)。

倉庫:https://github.com/mehran282/dsh-chat-rtl
社區目錄:https://www.skillhub.cn/plugins/mehran282/dsh-chat-rtl(獨立站點,與 DeepSeek / 幻方無官方從屬關係)

核心功能

插件通過一個自有 effect 向文檔注入 <style>(禁用或卸載時會移除),並用 MutationObserver 持續維護 DOM 屬性,避免編輯器框架丟屬性後失效。

消息塊與排版規則

  • 在 [data-slot="conversation.chat.flow"] 與 [data-slot="conversation.chat.node"] 下,每個 p / li / 標題 / blockquote 設置 dir="auto",方向由該節點首個強字符決定(資料中 live-verified:波斯語 → rtl,英語 → ltr),並配合 text-align: start。
  • pre / code 固定 direction: ltr,代碼塊不會被 RTL 翻轉。
  • 輸入區 [data-composer-input] 使用 dir="auto",用波斯語輸入時自然右對齊。

會話模式(整流跟隨最近用戶輪次)

若最後一條 [data-chat-flow-kind="user"] 以波斯語開頭,整條 flow 會帶上 data-dsh-chat-rtl="fa",此後所有消息塊(含英文標題、軌跡步驟標題)統一按 RTL 顯示,代碼仍 LTR;否則各塊仍按各自的 dir="auto" 自行判斷。

實現取捨

  • 只依賴穩定的 data-* 鉤子,不用哈希 class,便於應用重建後仍可用。
  • 不接入 locale 服務、不用詞典、不修改全局 <html dir>。
  • 早期純 CSS 的 unicode-bidi: plaintext 方案已放棄:在當前 Chromium 下無法可靠解析計算後的 direction,dir="auto" 才滿足需求。

README 中記錄的狀態(發行包 v0.1.3):node --check 通過、loader 模擬通過、卸載時樣式移除且 observer 斷開;在 0.2.2-rc.1 下經 CDP 驗證應用仍爲 lang="en" 且無 <html dir> 變更。

安裝與啓用

插件在 DSH 進程權限內運行,安裝前建議閱讀倉庫源碼與 MIT 許可證。

方式 A:從 GitHub 發行包(文檔寫明當前可用)

在項目目錄執行:

pnpm add https://github.com/mehran282/dsh-chat-rtl/releases/download/v0.1.3/dsh-chat-rtl-0.1.3.tgz

或在 Harness:Settings → Built-in plugins → install external bundle,選擇上述 .tgz,啓用 chat-rtl 後重啓。插件管理器若接受其他 git 地址或 tarball,見倉庫中的 INSTALL.md。

方式 B:npm(文檔註明發佈後)

pnpm add dsh-chat-rtl

也可在插件管理器裏按 registry 名稱安裝。

package.json 中包版本爲 0.1.5,peer 依賴 @deepseek-ai/cordis ~4.1.0;客戶端配置爲 inject: []、platform: web,通過 cordis.patch.yml 打 bundle。

典型用法

安裝並啓用 chat-rtl 後無需額外配置字段:正常使用英文界面的 DSH,在對話中用波斯語提問或回覆即可。

  1. 單段波斯語或英語混排時,各段落按 dir="auto" 各自成行方向。
  2. 若你最後一條用戶消息以波斯語開頭,整條會話流進入「波斯語會話模式」,後續塊(含英文小標題)統一 RTL,代碼塊保持 LTR。
  3. 在 composer 中用波斯語輸入時,輸入框方向隨內容自動調整。

適用場景與注意

適合誰: 在 DSH 中主要以波斯語與模型對話、又希望保留英文(或其他)應用殼語言的開發者與用戶;需要 RTL 僅限於聊天內容與輸入,而非 Whole UI 本地化。

注意:

  • 這是客戶端(web)插件,能力邊界在 DOM 與樣式注入,不提供服務端或詞典級語言識別。
  • 方向判斷依賴 Unicode 強字符與 DSH 穩定的 data-* 選擇器;應用大版本若改動會話 DOM 結構,可能需要插件跟進。
  • 社區目錄上的星標等信息以各平臺頁面爲準;編寫時 GitHub 公開資料中可見其倉庫活躍度與 issue 入口。

結尾

dsh-chat-rtl 把「波斯語聊天 RTL」收斂成一件小事:應用語言不動,只讓會話區和輸入框按內容與模式正確換向。需要安裝包與實現細節時,以 GitHub README 與 INSTALL.md 爲準。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜