- Home
- Plugin
- Miglioramenti UI
- dsh-russian-lang
dsh-russian-lang
goodandready/dsh-russian-lang
Russian localization for the DeepSeek Harness web UI: adds Русский as the third option in the native Settings - General - Language menu. Translates 30 core namespaces (722 keys, 100% coverage of the DSH 0.1.1-rc.2 surface) and 9 plugin namespaces (962 key
Installazione
dsh plugin --profile web add github:goodandready/dsh-russian-langREADME
@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
Plugin correlati
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui
dsh-web-ui (dsh-web-ui-all)
zhu1090093659/dsh-web-ui
DSH-better-sidebar
omdsh-dev/dsh-better-sidebar
dsh-TUI
ccch1mneyyy/dsh-tui