@goodandready/dsh-russian-lang 0.2.22 → 0.2.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.ru.md +1 -1
- package/lib/client.js +169 -69
- package/lib/index.js +3 -2
- package/lib/locales/core.json +1 -0
- package/lib/locales/plugins/08-vision-bridge.json +1 -0
- package/lib/locales/plugins/16-usage-stats.json +1 -1
- package/lib/locales/plugins/22-remote-workspace.json +1 -0
- package/lib/locales/plugins/24-live-canvas.json +1 -0
- package/lib/locales/plugins/27-context-lens.json +1 -0
- package/lib/locales/plugins/33-session-control.json +1 -0
- package/lib/locales/plugins/36-cost-meter.json +1 -1
- package/lib/locales/plugins/37-time-machine.json +1 -1
- package/lib/locales/plugins/38-model-sync.json +1 -0
- package/lib/locales/plugins/44-goal.json +1 -0
- package/lib/locales/plugins/46-memory-brain.json +1 -1
- package/lib/locales/plugins/49-dsml-guard.json +1 -0
- package/lib/locales/plugins/74-plugin-market.json +1 -0
- package/lib/locales.js +18 -2
- package/lib/translator.js +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"@goodandready-private/dsh-memory-brain":{"field.autoInject":"Автоматическое внедрение воспоминаний","field.base":"Базовый URL хранилища памяти","field.includeNeighbors":"Включать смежные контекстные узлы","field.minRecallChars":"Минимальная длина запроса для поиска","field.neighborK":"Количество смежных воспоминаний (K)","field.predictionLoop":"Предсказательный цикл контекста","field.recallBudget":"Бюджет токенов на воспоминания","field.timeoutMs":"Таймаут поиска памяти (мс)","field.token":"Имя учётных данных / переменной токена","hint.
|
|
1
|
+
{"@goodandready-private/dsh-memory-brain":{"field.autoInject":"Автоматическое внедрение воспоминаний","field.base":"Базовый URL хранилища памяти","field.checkpointBanking":"Банкинг контрольных точек","field.includeNeighbors":"Включать смежные контекстные узлы","field.minRecallChars":"Минимальная длина запроса для поиска","field.neighborK":"Количество смежных воспоминаний (K)","field.predictionLoop":"Предсказательный цикл контекста","field.recallBudget":"Бюджет токенов на воспоминания","field.timeoutMs":"Таймаут поиска памяти (мс)","field.token":"Имя учётных данных / переменной токена","hint.token":"Никогда не вставляйте сам токен — только имя учётных данных или переменной окружения (по умолчанию MEMORY_BRAIN_TOKEN).","intro":"Укажите базовый URL сервиса memory-brain. Сохраните токен API в учётных данных (или переменных окружения) и введите только имя ниже.","save":"Сохранить","saved":"Настройки сохранены","settings.loading":"Загрузка настроек…","settings.save":"Сохранить","settings.saveFailed":"Сбой сохранения: ","settings.saved":"Сохранено","settings.saving":"Сохранение…","settings.unavailable":"Область настроек недоступна для этого плагина.","subtitle":"Долгосрочное запоминание и поиск через HTTP API memory-brain","title":"Долгосрочная память (Memory Brain)"}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"@goodandready/dsh-dsml-artifact-guard":{"checkUpdateFailed":"Не удалось проверить обновления","checking":"Проверка...","disabledNotice":"Защита отключена. Теги могут отображаться в чате.","mode":"Режим работы","modeAudit":"Только аудит","modeDisabled":"Отключено","modeSanitize":"Очистка потока (рекомендуется)","modelId":"Идентификатор модели","providerId":"Идентификатор провайдера","subtitle":"Очистка закрывающих тегов протокола DSML","title":"Защита протокольных тегов","upToDate":"Актуальная версия","updateAvailable":"Доступно обновление","updateNow":"Обновить сейчас","updating":"Обновление..."}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"pluginMarket":{"broken":"Повреждён","category.all":"Все","cleanup":"Очистить","cleanup.notice":"Плагин {name} очищен","close":"Закрыть","confirm.body.plugin":"Плагин {source} будет установлен в профиль «{profile}» и активируется после перезапуска DSH.","confirm.body.preset":"Репозиторий {source} будет клонирован как пресет агента в ~/.dsh/.agent-presets/{name}/ и активируется после перезапуска DSH.","confirm.body.script":"Будет выполнено клонирование {source} в ~/.dsh/marketplace/cache/ и запуск установочного скрипта.","confirm.body.skill":"Репозиторий {source} будет клонирован как навык в ~/.dsh/skills/{name}/ и активируется после перезапуска DSH.","confirm.cancel":"Отмена","confirm.scriptWarning":"Установочный скрипт является сторонним кодом. Убедитесь, что вы доверяете этому репозиторию перед запуском.","confirm.start":"Подтвердить установку","confirm.title":"Установка {name}","confirm.title.update":"Обновление {name}","count":"Всего плагинов: {total}","empty":"Плагины не найдены","error":"Ошибка загрузки: {message}","guide":"Как опубликовать плагин","install":"Установить","install.background":"Фоновая загрузка","install.canceled":"Отменено","install.elapsed":"Прошло {seconds} с","install.terminate":"Прервать","installed":"Установлен","installing.close":"Закрыть","installing.done":"Установка завершена, перезапустите DSH для применения","installing.failed":"Сбой установки","installing.output":"Вывод процесса установки","installing.running":"Установка…","installing.title":"Установка {name}","loading":"Загрузка…","manager.brokenSection":"Повреждённые установки","manager.builtin":"Системный","manager.disabledSystem":"Отключён","manager.empty":"Плагины пока не установлены","manager.emptySystem":"Нет","manager.systemSection":"Встроенные","manager.title":"Управление плагинами","manager.userSection":"Установленные пользователем","next":"Вперёд","open.aria":"Открыть {name} на GitHub","page":"Страница {page} из {total}","prev":"Назад","refresh":"Обновить","retry":"Повторить","search":"Поиск плагинов…","sort.stars":"Популярные","sort.updated":"Недавние","stars":"Звёзд: {count}","title":"Магазин плагинов","toast.canceled":"Установка отменена","toast.close.aria":"Закрыть уведомление","toast.done":"Установка завершена","toast.failed":"Сбой установки","toast.restart":"Перезапустить сейчас","toast.running":"Установка в фоновом режиме","toast.starting":"Ожидание вывода…","trigger":"Магазин плагинов","trigger.aria":"Магазин плагинов","type.other":"Другое","type.plugin":"Плагин","type.preset":"Пресет","type.script":"Скрипт","type.skill":"Навык","uninstall":"Удалить","uninstall.confirm.body":"Плагин {name} и его файлы будут удалены из профиля после перезапуска DSH. Это действие необратимо.","uninstall.confirm.start":"Подтвердить удаление","uninstall.confirm.title":"Удалить {name}","uninstall.notice":"Плагин {name} удалён","update":"Обновить"}}
|
package/lib/locales.js
CHANGED
|
@@ -3,9 +3,19 @@ import { join, dirname } from "node:path"
|
|
|
3
3
|
import { fileURLToPath } from "node:url"
|
|
4
4
|
|
|
5
5
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
6
|
+
const CORE_FILE = join(__dirname, "locales", "core.json")
|
|
6
7
|
const PLUGINS_DIR = join(__dirname, "locales", "plugins")
|
|
7
8
|
const ZH_RU_FILE = join(__dirname, "locales", "zh-ru.json")
|
|
8
9
|
|
|
10
|
+
export function getCoreDictionaries() {
|
|
11
|
+
if (existsSync(CORE_FILE)) {
|
|
12
|
+
try {
|
|
13
|
+
return JSON.parse(readFileSync(CORE_FILE, "utf8"))
|
|
14
|
+
} catch (_) { /* bestEffort */ void _; }
|
|
15
|
+
}
|
|
16
|
+
return {}
|
|
17
|
+
}
|
|
18
|
+
|
|
9
19
|
export function getPluginDictionaries() {
|
|
10
20
|
const merged = {}
|
|
11
21
|
if (existsSync(PLUGINS_DIR)) {
|
|
@@ -16,17 +26,23 @@ export function getPluginDictionaries() {
|
|
|
16
26
|
for (const [ns, entries] of Object.entries(data)) {
|
|
17
27
|
merged[ns] = Object.assign(merged[ns] || {}, entries)
|
|
18
28
|
}
|
|
19
|
-
} catch (_) {}
|
|
29
|
+
} catch (_) { /* bestEffort */ void _; }
|
|
20
30
|
}
|
|
21
31
|
}
|
|
22
32
|
return merged
|
|
23
33
|
}
|
|
24
34
|
|
|
35
|
+
export function getAllDictionaries() {
|
|
36
|
+
const core = getCoreDictionaries()
|
|
37
|
+
const plugins = getPluginDictionaries()
|
|
38
|
+
return Object.assign({}, core, plugins)
|
|
39
|
+
}
|
|
40
|
+
|
|
25
41
|
export function getZhRuMap() {
|
|
26
42
|
if (existsSync(ZH_RU_FILE)) {
|
|
27
43
|
try {
|
|
28
44
|
return JSON.parse(readFileSync(ZH_RU_FILE, "utf8"))
|
|
29
|
-
} catch (_) {}
|
|
45
|
+
} catch (_) { /* bestEffort */ void _; }
|
|
30
46
|
}
|
|
31
47
|
return {}
|
|
32
48
|
}
|
package/lib/translator.js
CHANGED
|
@@ -61,7 +61,7 @@ export async function getTranslatorStatus(settingsCtx) {
|
|
|
61
61
|
try {
|
|
62
62
|
const res = await fetch(`${localUrl}/languages`, { signal: AbortSignal.timeout(1500) })
|
|
63
63
|
if (res.ok) responsive = true
|
|
64
|
-
} catch (_) {}
|
|
64
|
+
} catch (_) { /* bestEffort */ void _; }
|
|
65
65
|
|
|
66
66
|
return {
|
|
67
67
|
engine,
|
|
@@ -138,7 +138,7 @@ async function translateGoogle(text, targetLang = 'ru') {
|
|
|
138
138
|
continue
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
|
-
} catch (_) {}
|
|
141
|
+
} catch (_) { /* bestEffort */ void _; }
|
|
142
142
|
transSents.push(s)
|
|
143
143
|
}
|
|
144
144
|
transParas.push(transSents.join(''))
|
|
@@ -297,7 +297,7 @@ export function registerTranslator(wctx, settingsCtx) {
|
|
|
297
297
|
|
|
298
298
|
return () => {
|
|
299
299
|
for (const unreg of unregs) {
|
|
300
|
-
try { unreg() } catch (_) {}
|
|
300
|
+
try { unreg() } catch (_) { /* bestEffort */ void _; }
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
303
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-russian-lang",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.24",
|
|
4
4
|
"description": "Russian localization for DeepSeek Harness (DSH v0.1.6-alpha.1+) web UI: adds Русский as native language option. 100.0% coverage across 11,295 keys (127 namespaces). Features full DSH v0.1.6-alpha.1 core support (terminal, archive, command palette, Auto review, trajectory, PTC/Creator presets) and complete GoodAndReady plugin catalog (subscriptions, tts, image-gen, voice, key-limits, notify, commandcode, plugin-console).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|