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 为准。

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

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

小夜