dsh-russian-lang
开发工具 活跃维护

dsh-russian-lang

GooDAnDReaDY/dsh-russian-lang

包含核心命名空间的俄语翻译词典,在设置-通用-语言列表新增俄语选项,安装后即可切换对应Web界面的显示语言为俄语,无需额外配置即可满足俄语用户的使用需求

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
285 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:GooDAnDReaDY/dsh-russian-lang
git clone https://github.com/GooDAnDReaDY/dsh-russian-lang.git
git clone git@github.com:GooDAnDReaDY/dsh-russian-lang.git
README.md main

@goodandready/dsh-russian-lang

Русская локализация веб-интерфейса DeepSeek Harness.

Что делает

  • Регистрирует русские словари для namespace'ов ядра (common,
    conversation, settings, settings.models, workspace, subagent,
    reference и другие — 30 namespace'ов ядра, 722 ключа, 100%
    покрытия
    релизной поверхности DSH 0.1.1-rc.2) и для ряда сторонних
    плагинов (dsh-market, better-sidebar, task-board, im-hub и другие —
    9 namespace'ов, 962 ключа).
  • Добавляет «Русский» третьей позицией в родной список языков
    (Настройки → Общие → Язык). Выбор сохраняется штатным механизмом
    настроек DSH и переживает браузеры.
  • Синхронизирует <html lang="ru"> при активном русском.

Непереведённые ключи показываются по-английски (штатный fallback ядра), пустых
мест в интерфейсе не появляется.

Как это работает

Реестр локалей живёт в браузере: плагин докладывает русские словари в чужие
namespace'ы через ctx.locale.register(ns, 'ru', dict) — конфликт возможен
только если пара (namespace, язык) уже занята, а ru не занимает никто.

Список языков штатного селектора (Настройки → Общие → Язык) живёт в snapshot
локаль-runtime; меню строится из него, и setLocale() валидирует выбор по
нему же. На версиях ядра, где ru ещё не в списке (DSH 0.1.1-rc.2 из
коробки), плагин расширяет snapshot пунктом «Русский» — файлы ядра не
правятся. Если ядро когда-нибудь узнает ru само, расширение не происходит
и всё работает штатно. Запись выбора в настройки идёт через собственный
namespace russian-lang (хост-схема ядра знает только zh/en и не
принимает ru).

Ничего в установке DSH не патчится; удаление плагина полностью возвращает
интерфейс к исходному состоянию.

Установка

dsh plugin --profile web add @goodandready/dsh-russian-lang

Затем: Настройки → Общие → Язык → Русский.

Разработка и проверка

python3 extract-dicts.py <profile>/node_modules   # обновить *-en.json
python3 check-coverage.py                         # что не переведено / устарело
python3 build.py                                  # собрать lib/client.js
python3 test/test_extract.py                      # smoke для extract-dicts/check-coverage
python3 test/smoke.py                             # E2E против запущенного стенда

Требует websocket-client (pip install websocket-client) и Chrome на
/usr/bin/google-chrome для smoke.py. По умолчанию ходит на
https://192.168.1.111:3082; переопределяется через DSH_URL.

Скриншоты

Что Файл
Интерфейс на русском docs/media/ui-russian.png
Список языков в Настройки → Общие docs/media/language-selector.png

Скриншоты обновляются через python3 test/screenshots.py против
запущенного стенда с установленным плагином.

Ограничения

  • Переводится только веб-интерфейс. Описания тулов и системные промпты агента
    — не locale, плагин их не трогает.
  • Плагины, которые рисуют текст инлайном без locale-слотов, не переводятся.
  • Текст, добавленный сторонним плагином без ctx.locale.register, остаётся на
    языке плагина — для перевода нужно обновить сам плагин.

Лицензия

MIT