前言¶
在 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,在對話中用波斯語提問或回覆即可。
- 單段波斯語或英語混排時,各段落按
dir="auto"各自成行方向。 - 若你最後一條用戶消息以波斯語開頭,整條會話流進入「波斯語會話模式」,後續塊(含英文小標題)統一 RTL,代碼塊保持 LTR。
- 在 composer 中用波斯語輸入時,輸入框方向隨內容自動調整。
適用場景與注意¶
適合誰: 在 DSH 中主要以波斯語與模型對話、又希望保留英文(或其他)應用殼語言的開發者與用戶;需要 RTL 僅限於聊天內容與輸入,而非 Whole UI 本地化。
注意:
- 這是客戶端(web)插件,能力邊界在 DOM 與樣式注入,不提供服務端或詞典級語言識別。
- 方向判斷依賴 Unicode 強字符與 DSH 穩定的
data-*選擇器;應用大版本若改動會話 DOM 結構,可能需要插件跟進。 - 社區目錄上的星標等信息以各平臺頁面爲準;編寫時 GitHub 公開資料中可見其倉庫活躍度與 issue 入口。
結尾¶
dsh-chat-rtl 把「波斯語聊天 RTL」收斂成一件小事:應用語言不動,只讓會話區和輸入框按內容與模式正確換向。需要安裝包與實現細節時,以 GitHub README 與 INSTALL.md 爲準。