@goodandready/dsh-russian-lang 0.2.15 → 0.2.16
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 +4 -4
- package/docs/media/banner.jpg +0 -0
- package/lib/client.js +4 -4
- package/package.json +2 -2
- package/ru-plugins/45-session-control.json +10 -1
- package/ru-plugins/58-grok-xsearch.json +29 -26
- package/ru-plugins/60-model-sync.json +121 -0
- package/ru-plugins/61-issue-reporter.json +50 -0
- package/ru-plugins/62-model-search.json +8 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodandready/dsh-russian-lang",
|
|
3
|
-
"version": "0.2.
|
|
4
|
-
"description": "Russian localization for DeepSeek Harness (DSH v0.1.5-rc.
|
|
3
|
+
"version": "0.2.16",
|
|
4
|
+
"description": "Russian localization for DeepSeek Harness (DSH v0.1.5-rc.2+) web UI: adds Русский as the native language option in Settings - General - Language. 100.0% coverage across 6,808 keys (1,225 core UI keys + 5,583 keys across 40+ ecosystem plugins) with zero machine drafts. Features unified dsh-clinebot visual design standard for Settings Card, full translations for updated ecosystem plugins (dsh-model-sync, dsh-issue-reporter, dsh-model-search, dsh-session-control, dsh-grok-xsearch, dsh-cron, Live Canvas, dsh-goal, Skills Manager, Shadow Auditor, Kanban Epics, Key Rotation, Loop Guard, Remote Workspace, Cost Meter, Vision Bridge, Context, Time Machine), Smart Russian UX (localized Markdown export, turn translation, live typography, slash command aliases, Alt+L layout fix), expanded error humanizer (POSIX, HTTP 4xx/5xx), Skin Center & Wallpaper Engine support, Workshop market integration, sidebar previewers, and runtime snapshot extension without modifying core files.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"exports": {
|
|
@@ -108,6 +108,15 @@
|
|
|
108
108
|
"viewer.copy": "Копировать как Markdown",
|
|
109
109
|
"viewer.exportFailed": "Не удалось экспортировать: {message}",
|
|
110
110
|
"viewer.noClipboard": "буфер обмена недоступен в этом контексте браузера",
|
|
111
|
-
"viewer.save": "Сохранить .md"
|
|
111
|
+
"viewer.save": "Сохранить .md",
|
|
112
|
+
"bulk.archive": "В архив",
|
|
113
|
+
"bulk.export": "Экспорт Markdown",
|
|
114
|
+
"confirm.archiveBulk": "Архивировать {n} сессий навсегда? Восстановление невозможно.",
|
|
115
|
+
"jump.filterAll": "Все",
|
|
116
|
+
"jump.filterPinned": "Закреплённые",
|
|
117
|
+
"jump.filterTags": "Метки",
|
|
118
|
+
"jump.filterArchived": "Архив",
|
|
119
|
+
"row.turns": "{n} сообщений",
|
|
120
|
+
"menu.forkClean": "Новый диалог с этими настройками"
|
|
112
121
|
}
|
|
113
122
|
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
"api_key": "Ключ API xAI",
|
|
6
6
|
"api_key_placeholder": "xai-...",
|
|
7
7
|
"api_key_hint": "Ключ API xAI. Если поле пустое, используется переменная окружения XAI_API_KEY.",
|
|
8
|
-
"model": "Модель
|
|
8
|
+
"model": "Модель",
|
|
9
9
|
"model_hint": "Модель xAI для обобщения и синтеза поисковой выдачи.",
|
|
10
10
|
"max_results": "Макс. результатов поиска",
|
|
11
11
|
"max_results_hint": "Максимальное количество твитов или постов, возвращаемых за один поисковый запрос (1–50).",
|
|
@@ -43,35 +43,38 @@
|
|
|
43
43
|
"base_url_hint": "Конечная точка xAI API (по умолчанию: https://api.x.ai/v1).",
|
|
44
44
|
"redirect_uri": "URL перенаправления OAuth",
|
|
45
45
|
"redirect_uri_hint": "Локальный URL обратного вызова OAuth (по умолчанию: http://127.0.0.1:56121/callback).",
|
|
46
|
-
"sec_auth_title": "🔑
|
|
46
|
+
"sec_auth_title": "🔑 Авторизация и доступ к SuperGrok",
|
|
47
47
|
"sec_auth_desc": "Токен подключения OAuth безопасно хранится в службе Credentials DSH и обновляется автоматически.",
|
|
48
48
|
"sec_model_title": "🧠 Настройка модели и отказоустойчивости",
|
|
49
49
|
"sec_model_desc": "Выбор модели xAI для синтеза поисковой выдачи и автоматический переход на резервную при лимитах.",
|
|
50
50
|
"sec_cache_title": "⚡ Производительность и кэш запросов",
|
|
51
51
|
"sec_cache_desc": "Кэш запросов LRU в оперативной памяти исключает дублирующие вызовы API и ускоряет повторные поиски.",
|
|
52
52
|
"title": "Grok X Search & Intelligence Suite",
|
|
53
|
-
"subtitle": "
|
|
54
|
-
"ready_msg": "
|
|
55
|
-
"not_connected_msg": "
|
|
56
|
-
"connected": "
|
|
57
|
-
"not_connected": "
|
|
58
|
-
"connect": "
|
|
59
|
-
"reconnect": "
|
|
60
|
-
"disconnect": "
|
|
61
|
-
"saving": "
|
|
62
|
-
"auto_fallback": "
|
|
63
|
-
"enable_cache": "
|
|
64
|
-
"cache_stats": "
|
|
65
|
-
"clear_cache": "
|
|
66
|
-
"cache_cleared": "
|
|
67
|
-
"browser_no_return": "
|
|
68
|
-
"paste_hint": "
|
|
69
|
-
"submit": "
|
|
70
|
-
"cancel": "
|
|
71
|
-
"supergrok_account": "SuperGrok
|
|
72
|
-
"grok_client_id": "Grok Client ID",
|
|
73
|
-
"client_id_hint": "OAuth Client ID
|
|
74
|
-
"loading": "
|
|
75
|
-
"enabled_plugin": "
|
|
53
|
+
"subtitle": "Поиск в реальном времени, профили авторов, тренды и фактчекинг в X (Twitter) через SuperGrok OAuth.",
|
|
54
|
+
"ready_msg": "Инструменты x_search, x_author_profile, x_trending_topics, x_fact_check_notes, x_thread_reader и x_find_experts готовы к работе в чате.",
|
|
55
|
+
"not_connected_msg": "Подключите учётную запись SuperGrok для активации инструментов аналитики X.",
|
|
56
|
+
"connected": "Подключено",
|
|
57
|
+
"not_connected": "Не подключено",
|
|
58
|
+
"connect": "Подключить",
|
|
59
|
+
"reconnect": "Переподключить",
|
|
60
|
+
"disconnect": "Отключить",
|
|
61
|
+
"saving": "Сохранение…",
|
|
62
|
+
"auto_fallback": "Автопереключение на Grok 4.5 при лимитах (429)",
|
|
63
|
+
"enable_cache": "Кэширование повторных запросов в памяти (5 мин)",
|
|
64
|
+
"cache_stats": "Запросов в кэше",
|
|
65
|
+
"clear_cache": "Очистить кэш",
|
|
66
|
+
"cache_cleared": "Кэш очищен",
|
|
67
|
+
"browser_no_return": "Браузер не вернулся автоматически? Вставьте URL перенаправления",
|
|
68
|
+
"paste_hint": "Вставьте полный URL из адресной строки браузера после авторизации.",
|
|
69
|
+
"submit": "Отправить",
|
|
70
|
+
"cancel": "Отмена",
|
|
71
|
+
"supergrok_account": "Учётная запись SuperGrok",
|
|
72
|
+
"grok_client_id": "ID клиента Grok (OAuth Client ID)",
|
|
73
|
+
"client_id_hint": "OAuth Client ID из портала разработчиков SuperGrok / xAI.",
|
|
74
|
+
"loading": "Загрузка…",
|
|
75
|
+
"enabled_plugin": "Включить плагин Grok X Search",
|
|
76
|
+
"cache_hits": "Попаданий",
|
|
77
|
+
"cache_misses": "Промахов",
|
|
78
|
+
"cache_hit_rate": "Эффективность кэша"
|
|
76
79
|
}
|
|
77
|
-
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
{
|
|
2
|
+
"dsh-model-sync": {
|
|
3
|
+
"title": "Синхронизация моделей",
|
|
4
|
+
"showSettings": "Показать настройки",
|
|
5
|
+
"desc": "Обновление каталогов моделей провайдеров по API-ключам. По умолчанию включён безопасный предпросмотр (dry-run); применение изменений выполняется явно.",
|
|
6
|
+
"loading": "Загрузка…",
|
|
7
|
+
"refresh": "Обновить статус",
|
|
8
|
+
"refreshAll": "Обновить всё",
|
|
9
|
+
"run": "Найти модели",
|
|
10
|
+
"apply": "Применить изменения",
|
|
11
|
+
"dryRun": "Только предпросмотр (dry-run)",
|
|
12
|
+
"all": "Все провайдеры с API-ключами",
|
|
13
|
+
"ok": "готов",
|
|
14
|
+
"dormant": "не настроен",
|
|
15
|
+
"running": "синхронизация…",
|
|
16
|
+
"noProviders": "Провайдеры с API-ключами не найдены.",
|
|
17
|
+
"lastRun": "Последний запуск",
|
|
18
|
+
"previewTitle": "Предпросмотр изменений",
|
|
19
|
+
"previewNone": "Изменений не обнаружено.",
|
|
20
|
+
"previewAdded": "Добавлено",
|
|
21
|
+
"previewRemoved": "Удалено",
|
|
22
|
+
"previewChanged": "Изменено",
|
|
23
|
+
"previewApply": "Применить изменения",
|
|
24
|
+
"previewDismiss": "Закрыть предпросмотр",
|
|
25
|
+
"selectModels": "Выбор моделей",
|
|
26
|
+
"saveSelection": "Сохранить и применить выбор",
|
|
27
|
+
"selectAtLeastOne": "Выберите хотя бы одну модель или используйте вариант «Все модели».",
|
|
28
|
+
"cancel": "Отмена",
|
|
29
|
+
"selected": "выбрано",
|
|
30
|
+
"allModels": "Все модели",
|
|
31
|
+
"noModels": "В текущем каталоге нет моделей.",
|
|
32
|
+
"capabilityFilter": "Фильтр по возможностям",
|
|
33
|
+
"capabilityCount": "показано",
|
|
34
|
+
"noCapabilities": "В этом каталоге нет метаданных о возможностях.",
|
|
35
|
+
"pickerNote": "Выбранные модели сразу станут доступны в переключателе моделей DSH.",
|
|
36
|
+
"health": "Проверить доступность",
|
|
37
|
+
"healthOk": "доступна",
|
|
38
|
+
"healthError": "недоступна",
|
|
39
|
+
"healthDormant": "не настроен",
|
|
40
|
+
"policy": "Ручной отбор моделей",
|
|
41
|
+
"savePolicy": "Сохранить политику",
|
|
42
|
+
"policyInclude": "Правила включения (по одному regex в строке)",
|
|
43
|
+
"policyExclude": "Правила исключения (по одному regex в строке)",
|
|
44
|
+
"policyRequire": "Обязательные возможности (через запятую)",
|
|
45
|
+
"policyDeny": "Запрещённые возможности (через запятую)",
|
|
46
|
+
"policyNote": "Шаблоны сопоставляются с ID, именем и тегами моделей. Нажмите «Применить изменения», чтобы обновить список в DSH.",
|
|
47
|
+
"scheduler": "Планировщик",
|
|
48
|
+
"nextRun": "следующий запуск",
|
|
49
|
+
"schedulerOff": "выключен",
|
|
50
|
+
"schedulerOn": "включён",
|
|
51
|
+
"removeMissing": "Подтвердить удаление устаревших",
|
|
52
|
+
"stale": "устарела",
|
|
53
|
+
"deprecated": "deprecated",
|
|
54
|
+
"history": "История синхронизаций",
|
|
55
|
+
"historyRun": "Запуск",
|
|
56
|
+
"diffAdded": "добавлено",
|
|
57
|
+
"diffRemoved": "удалено",
|
|
58
|
+
"diffRenamed": "переименовано",
|
|
59
|
+
"diffChanged": "изменена метаинформация",
|
|
60
|
+
"rollback": "Откатить каталог",
|
|
61
|
+
"rollbackConfirm": "Откатить каталог этого провайдера к выбранному снимку?",
|
|
62
|
+
"credentials": "Диагностика ключей",
|
|
63
|
+
"checkCredentials": "Проверить ключи",
|
|
64
|
+
"missingCredential": "не настроен",
|
|
65
|
+
"credentialReady": "настроен",
|
|
66
|
+
"report": "Итог запуска",
|
|
67
|
+
"success": "успех",
|
|
68
|
+
"partial": "частичный успех",
|
|
69
|
+
"failure": "ошибка",
|
|
70
|
+
"empty": "нет настроенных провайдеров",
|
|
71
|
+
"notifications": "Уведомления",
|
|
72
|
+
"markRead": "Прочитано",
|
|
73
|
+
"acknowledge": "Подтвердить",
|
|
74
|
+
"noNotifications": "Новых уведомлений нет.",
|
|
75
|
+
"selectAllFiltered": "Выбрать все показанные",
|
|
76
|
+
"deselectAllFiltered": "Снять выбор с показанных",
|
|
77
|
+
"invertFiltered": "Инвертировать выбор",
|
|
78
|
+
"filterContext100k": "Контекст ≥ 100k",
|
|
79
|
+
"filterCheap": "Экономные ≤ $1/1M",
|
|
80
|
+
"showMore": "Показать ещё (%d)",
|
|
81
|
+
"showingCount": "Показано %d из %d моделей",
|
|
82
|
+
"deprecatesIn": "Устареет через %d дн.",
|
|
83
|
+
"cacheHoursAgo": "кэш %d ч назад",
|
|
84
|
+
"noHistory": "Истории синхронизаций нет.",
|
|
85
|
+
"searchPlaceholder": "Поиск по ID / имени / тегу",
|
|
86
|
+
"sortName": "Имя А→Я",
|
|
87
|
+
"sortPrice": "Цена ↑",
|
|
88
|
+
"sortContext": "Контекст ↓",
|
|
89
|
+
"sortDate": "Новые ↓",
|
|
90
|
+
"schedulerSettings": "Настройка планировщика",
|
|
91
|
+
"scheduleEnabled": "Включить фоновое расписание",
|
|
92
|
+
"intervalMinutes": "Интервал (в минутах)",
|
|
93
|
+
"autoApplySchedule": "Автоматически применять изменения",
|
|
94
|
+
"saveScheduler": "Сохранить расписание",
|
|
95
|
+
"schedulerSaved": "Сохранено",
|
|
96
|
+
"scopeUnavailable": "Служба настроек недоступна.",
|
|
97
|
+
"invalidPattern": "Некорректный regex-шаблон: %s",
|
|
98
|
+
"batchTry": "Проверить выбранные модели",
|
|
99
|
+
"batchTryRunning": "Проверка…",
|
|
100
|
+
"batchTryDeselectUnreachable": "Снять выбор с недоступных",
|
|
101
|
+
"batchTryResults": "Пакетная проверка: доступно %d из %d",
|
|
102
|
+
"filterCostContext": "Ограничения по цене и контексту",
|
|
103
|
+
"enableCostFilter": "Фильтровать по максимальной цене",
|
|
104
|
+
"maxPricePerMillion": "Макс. цена ($ / 1 млн токенов)",
|
|
105
|
+
"enableContextFilter": "Фильтровать по минимальному контексту",
|
|
106
|
+
"minContextTokens": "Мин. размер контекста (токенов)",
|
|
107
|
+
"exportConfig": "Экспорт настроек",
|
|
108
|
+
"importConfig": "Импорт настроек",
|
|
109
|
+
"exportImportTitle": "Резервное копирование и восстановление настроек",
|
|
110
|
+
"importSuccess": "Конфигурация успешно импортирована",
|
|
111
|
+
"importError": "Ошибка импорта: %s",
|
|
112
|
+
"importPlaceholder": "Вставьте JSON-конфигурацию сюда…",
|
|
113
|
+
"modelAliases": "Алиасы моделей",
|
|
114
|
+
"aliasPlaceholder": "Алиас (например, gpt-4o-latest)",
|
|
115
|
+
"targetModel": "Целевая модель",
|
|
116
|
+
"addAlias": "Сохранить алиас",
|
|
117
|
+
"removeAlias": "Удалить алиас",
|
|
118
|
+
"noAliases": "Алиасы моделей не заданы.",
|
|
119
|
+
"targetProvider": "Провайдер"
|
|
120
|
+
}
|
|
121
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@goodandready/dsh-issue-reporter": {
|
|
3
|
+
"title": "Отправка баг-репорта на GitHub",
|
|
4
|
+
"description": "Преобразование проблемы плагина DSH в структурированный баг-репорт GitHub Issue.",
|
|
5
|
+
"refresh": "Обновить список плагинов",
|
|
6
|
+
"loading": "Загрузка…",
|
|
7
|
+
"empty": "Установленные плагины не найдены.",
|
|
8
|
+
"unsupported": "Нет данных о публичном репозитории GitHub",
|
|
9
|
+
"report": "Сообщить об ошибке",
|
|
10
|
+
"close": "Закрыть",
|
|
11
|
+
"observed": "Что произошло?",
|
|
12
|
+
"reproduction": "Шаги для воспроизведения",
|
|
13
|
+
"expected": "Ожидаемое поведение",
|
|
14
|
+
"titleField": "Заголовок проблемы",
|
|
15
|
+
"environment": "Сведения об окружении (необязательно)",
|
|
16
|
+
"preview": "Сформировать безопасный предпросмотр",
|
|
17
|
+
"previewTitle": "Предпросмотр",
|
|
18
|
+
"redactions": "Скрытые конфиденциальные данные",
|
|
19
|
+
"duplicates": "Возможные дубликаты",
|
|
20
|
+
"noDuplicates": "Похожих открытых проблем не найдено.",
|
|
21
|
+
"auth": "Авторизация в GitHub",
|
|
22
|
+
"appClientId": "ID клиента GitHub App",
|
|
23
|
+
"tokenEnv": "Ссылка на учётные данные",
|
|
24
|
+
"apiBaseUrl": "Базовый адрес GitHub API",
|
|
25
|
+
"save": "Сохранить настройки",
|
|
26
|
+
"saved": "Настройки сохранены",
|
|
27
|
+
"authorize": "Авторизовать GitHub",
|
|
28
|
+
"code": "Введите этот код на странице GitHub",
|
|
29
|
+
"openVerification": "Открыть страницу подтверждения GitHub",
|
|
30
|
+
"waiting": "Ожидание авторизации…",
|
|
31
|
+
"connected": "GitHub подключён",
|
|
32
|
+
"authFailed": "Сбой авторизации в GitHub",
|
|
33
|
+
"authRequired": "Подключите GitHub для поиска дубликатов и создания отчёта.",
|
|
34
|
+
"authHelp": "Войдите для поиска дубликатов и создания задач. Токен безопасно остаётся в хранилище DSH Credentials.",
|
|
35
|
+
"signIn": "Войти через GitHub",
|
|
36
|
+
"authUnavailable": "Вход через GitHub не настроен для данной установки DSH.",
|
|
37
|
+
"nativePlugins": "Нативные плагины DSH",
|
|
38
|
+
"thirdPartyPlugins": "Сторонние плагины DSH",
|
|
39
|
+
"noNativePlugins": "Нативные плагины DSH не установлены.",
|
|
40
|
+
"noThirdPartyPlugins": "Сторонние плагины DSH не установлены.",
|
|
41
|
+
"review": "Я проверил безопасный предпросмотр отчёта.",
|
|
42
|
+
"create": "Создать задачу на GitHub",
|
|
43
|
+
"created": "Задача создана",
|
|
44
|
+
"fallback": "Открыть предзаполненную форму отчёта",
|
|
45
|
+
"error": "Произошла ошибка",
|
|
46
|
+
"cancel": "Отмена",
|
|
47
|
+
"enabled": "включено",
|
|
48
|
+
"disabled": "отключено"
|
|
49
|
+
}
|
|
50
|
+
}
|