@goodandready/dsh-russian-lang
Русская локализация веб-интерфейса DeepSeek Harness.
Что делает
- Регистрирует русские словари для namespace'ов ядра (
common,conversation,settings,settings.models,workspace,subagent,referenceи другие — 30 namespace'ов ядра), а также для ряда популярных плагинов (dsh-market, better-sidebar, task-board, im-hub и другие). - Добавляет «Русский» третьей позицией в родной список языков (Настройки → Общие → Язык). Выбор сохраняется штатным механизмом настроек DSH и переживает браузеры.
- Синхронизирует
<html lang="ru">при активном русском.
Непереведённые ключи показываются по-английски (штатный fallback ядра), пустых мест в интерфейсе не появляется.
Как это работает
Реестр локалей живёт в браузере: плагин докладывает русские словари в чужие
namespace'ы через ctx.locale.register(ns, 'ru', dict) — конфликт возможен
только если пара (namespace, язык) уже занята, а ru не занимает никто.
Список языков штатного селектора (Настройки → Общие → Язык) живёт в snapshot
локаль-runtime; меню строится из него, и setLocale() валидирует выбор по нему
же. Если ядро не знает ru, плагин расширяет snapshot пунктом «Русский» —
файлы ядра не правятся. Запись выбора в настройки идёт через собственный
namespace russianLang (хост-схема ядра знает только zh/en). Если ядро
когда-нибудь узнает ru само, расширение не происходит и всё работает штатно.
Ничего в установке DSH не патчится; удаление плагина полностью возвращает интерфейс к исходному состоянию.
Установка
dsh plugin --profile web add @goodandready/dsh-russian-lang
Затем: Настройки → Общие → Язык → «Русский».
Обновление перевода после релизов DSH
Словари — источник истины (ru/*.json — ядро, ru-plugins/*.json — сторонние
плагины). После обновления dsh извлеките английские оригиналы из бандлов,
сверьте покрытие и перегенерируйте клиентский бандл:
python3 extract-dicts.py <profile>/node_modules # обновить *-en.json
python3 check-coverage.py # что не переведено / устарело
python3 build.py # собрать lib/client.js
Ограничения
- Переводится только веб-интерфейс. Описания тулов и системные промпты агента — не locale, плагин их не трогает.
- Плагины, которые рисуют текст инлайном без locale-слотов, не переводятся
(словари для известных плагинов с
locale.registerвключены).
Лицензия
MIT
No comments yet. Be the first to write one.