@goodandready/dsh-russian-lang@0.1.28 — adapt to DSH v0.1.2-alpha.2 + skills plugins in Russian
Why. After the DSH core upgrade to v0.1.2-alpha.2 the plugin's settings card broke (checkboxes did not stick), and two installed plugins (dsh-skill-hub, @michengai/dsh-skills-manager) kept showing Chinese UI with an active Russian locale.
Fixed
- Settings card on v0.1.2-alpha.2 (#99, #97, PR #100/#101):
scope.setis now async (Promise<void>) — both the promise-rejection and sync-throw channels are handled; the staleruntime.hostmonkey-patch that clashed with the new settings-mirror is removed; the card reads slot props per the new inject contract (props.scope/props.runtime/props.toggleRuspread by the renderer, with a fallback to the oldprops.inject()for older cores). - Russian dictionaries for
dsh-skill-hub(~170 keys) and@michengai/dsh-skills-manager(~170 keys) (#102, PR #103), translated from their own English dictionaries with placeholders preserved. Bundle: 51 namespaces, 3700 keys. - DOM-translation pass (PR #113): the dsh-skill-hub panel picks its dictionary by
documentElement.langand only understands en/zh, so the registered ru dictionary can never reach it. When Russian is active, CJK text nodes and title/placeholder/aria-label attributes are rewritten using a ZH_RU map (348 pairs) built from vendored zh references (zh-refs/*.json) paired with our translations; placeholder pairs become regexes, so rendered values map to the Russian template (共 56 个技能 → «Всего навыков: 56»). A MutationObserver keeps React re-renders translated.
Checks. node --check OK; node --test 31/31; user-verified in production (settings checkboxes stick; both skills UIs render in Russian).
Compatibility. Targets DSH v0.1.2-alpha.2; older cores keep working via contract fallbacks. Known limitation: the v0.3.4 version badge in the skill-hub panel title comes from plugin metadata and stays as-is.
Refs: Gitea issues #99, #102, #97 (goodandready/dsh-russian-lang).