@goodandready/dsh-russian-lang 0.3.3 → 0.3.5
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 -53
- package/README.ru.md +0 -52
- package/docs/media/banner.jpg +0 -0
- package/lib/client.js +5 -5
- package/lib/locales/core.json +1 -1
- package/lib/locales/plugins/03-dshmarket.json +1 -1
- package/lib/locales/plugins/10-kanban.json +1 -1
- package/lib/locales/plugins/15-commandcode.json +1 -1
- package/lib/locales/plugins/17-dsh-context.json +1 -1
- package/lib/locales/plugins/20-skill-explorer.json +1 -1
- package/lib/locales/plugins/26-config-manager.json +1 -1
- package/lib/locales/plugins/27-config-manager-sync.json +1 -1
- package/lib/locales/plugins/28-config-manager-market.json +1 -1
- package/lib/locales/plugins/30-config-manager-history.json +1 -1
- package/lib/locales/plugins/34-key-rotation.json +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<h3>Полная русская локализация, умная типографика и исправление раскладки клавиатуры для DeepSeek Harness</h3>
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
-
<a href="https://www.npmjs.com/package/@goodandready/dsh-russian-lang"><img src="https://img.shields.io/badge/npm-v0.3.
|
|
8
|
+
<a href="https://www.npmjs.com/package/@goodandready/dsh-russian-lang"><img src="https://img.shields.io/badge/npm-v0.3.5-6366f1.svg?style=for-the-badge&labelColor=1e1b4b" alt="npm version"></a>
|
|
9
9
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-10b981.svg?style=for-the-badge&color=10b981&labelColor=064e3b" alt="license"></a>
|
|
10
10
|
<a href="https://github.com/topics/dsh-plugin"><img src="https://img.shields.io/badge/DSH-Plugin-8b5cf6.svg?style=for-the-badge&labelColor=2e1065" alt="DSH Plugin"></a>
|
|
11
11
|
<a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node-20%2B-f59e0b.svg?style=for-the-badge&labelColor=451a03" alt="Node version"></a>
|
|
@@ -40,9 +40,6 @@
|
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
-
> [!NOTE]
|
|
44
|
-
> **Языковая политика проекта**: `dsh-russian-lang` — специализированный плагин русской локализации интерфейса DSH. Каноническая документация ведётся исключительно на русском языке (`README.md`, `README.ru.md`). Общее требование трёхъязычной документации к нему не применяется.
|
|
45
|
-
|
|
46
43
|
## ⚡ Обзор
|
|
47
44
|
|
|
48
45
|
**`dsh-russian-lang`** — официальный, всеобъемлющий пакет русской локализации для веб-интерфейса [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh).
|
|
@@ -195,52 +192,3 @@ russian-lang:
|
|
|
195
192
|
## 📄 Лицензия
|
|
196
193
|
|
|
197
194
|
MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
|
|
198
|
-
|
|
199
|
-
## ⚡ Новые возможности v0.2.9 — Smart Russian UX
|
|
200
|
-
|
|
201
|
-
Версия **v0.2.9** расширяет функционал плагина от чистой локализации до полноценной адаптации пользовательского опыта работы с моделями на русском языке:
|
|
202
|
-
|
|
203
|
-
1. **Живая экранная типографика в поле ввода (Live Input Typography)**:
|
|
204
|
-
- Автоматическая подстановка кавычек-ёлочек («...») вместо машинных программистских кавычек (`""`).
|
|
205
|
-
- Автоматическая замена двойного дефиса (`--`) на длинное тире (`—`).
|
|
206
|
-
- Автоматическая замена троеточия (`...`) на знак многоточия (`…`).
|
|
207
|
-
- Неразрывные пробелы (` `) после однобуквенных и коротких русских предлогов (`в`, `на`, `с`, `к`, `о`, `у`, `за`, `по` и др.).
|
|
208
|
-
- **Строгая изоляция кода**: текст внутри инлайн-кода (бэктики `` `code` ``) и многострочных блоков (``` ``` ```) сохраняется в неизменном виде без искажения синтаксиса.
|
|
209
|
-
- *(Changed in v0.2.19: устранена деструктивная перезапись поля ввода на `input`; замена двойного дефиса на тире, кавычек на ёлочки и неразрывных пробелов после предлогов переведена в обработчик `keydown` с нативным `insertText`, сохранением фокуса, нативной отмены `Ctrl+Z` и отсутствием прыжков каретки. Наблюдатель `typoObserver` переведён только на `childList: true`, исключая сброс пользовательского выделения текста во время стриминга токенов).*
|
|
210
|
-
|
|
211
|
-
2. **Быстрый переключатель языка (Quick Language Switcher)**:
|
|
212
|
-
- Компактный чип `RU ⇄ EN` встроен прямо в шапку диалоговой сессии (`conversation.session.header.utilities`).
|
|
213
|
-
- Позволяет мгновенно переключать язык всего интерфейса в один клик без перехода в Настройки.
|
|
214
|
-
|
|
215
|
-
3. **Русские алиасы слэш-команд (Slash-Command Aliases)**:
|
|
216
|
-
- Мгновенное авто-разворачивание команд при вводе:
|
|
217
|
-
- `/цель` ➔ `/goal`
|
|
218
|
-
- `/сжать` ➔ `/compact`
|
|
219
|
-
- `/план` ➔ `/plan`
|
|
220
|
-
- `/экспорт` ➔ `/export`
|
|
221
|
-
- `/память` ➔ `/memory`
|
|
222
|
-
- `/отзыв` ➔ `/feedback`
|
|
223
|
-
- `/разрешения` ➔ `/permission`
|
|
224
|
-
|
|
225
|
-
4. **Пресеты системных директив агента (Agent Style Presets)**:
|
|
226
|
-
- В карточке настроек плагина доступен выбор канонического стиля ответов для моделей:
|
|
227
|
-
- 💼 **Технический эксперт**: строгая русская инженерная терминология, аккуратный код, русскоязычные комментарии к архитектуре.
|
|
228
|
-
- 📝 **Технический писатель**: книжная типографика, Markdown, ГОСТ/RFC-структура документации.
|
|
229
|
-
- ⚡ **Лаконичный режим**: предельно сжатые и точные ответы без вступительных любезностей.
|
|
230
|
-
|
|
231
|
-
5. **Локализованный экспорт сессии (Localized Markdown Export)**:
|
|
232
|
-
- Генерация красивого Markdown-файла всей истории диалога с русскими датами, именами ролей («👤 Пользователь», «🤖 Ассистент»), метриками токенов и индикацией вызовов инструментов.
|
|
233
|
-
|
|
234
|
-
6. **Хоткей транслитерации (<kbd>Alt+T</kbd>)**:
|
|
235
|
-
- Мгновенная конвертация набранного транслита в кириллицу и обратно прямо в поле ввода (`privet` ⇄ `привет`).
|
|
236
|
-
- *(Deprecated since v0.2.15: экспериментальный UI-перехватчик удалён для обеспечения беспрепятственного нативного ввода Lexical; программная функция `phoneticTranslit` сохранена в `lib/pure.js`).*
|
|
237
|
-
|
|
238
|
-
7. **Инлайн-перевод реплик ассистента (`RU ↗`) и приватность**:
|
|
239
|
-
- Кнопка `RU ↗` в панели действий ответа ассистента позволяет переводить ответы модели на русский язык с сохранением блоков кода (`📋 Копировать`).
|
|
240
|
-
- 🔒 **Конфиденциальность и выбор движка**:
|
|
241
|
-
- **По умолчанию (Выключен)**: Никакие данные сообщений никуда не отправляются. Клик по кнопке информирует о необходимости выбрать движок.
|
|
242
|
-
- **Локальный LibreTranslate** *(Рекомендуется)*: Работает на 100% автономно на вашем сервере в Docker-контейнере (`~500–700 МБ RAM`). Запускается в 1 клик прямо из карточки настроек DSH или вручную:
|
|
243
|
-
```bash
|
|
244
|
-
docker run -d --name libretranslate --restart unless-stopped -p 127.0.0.1:5000:5000 libretranslate/libretranslate --load-only en,ru,zh
|
|
245
|
-
```
|
|
246
|
-
- **Google Translate (Онлайн)**: Для пользователей, которым удобен онлайн-перевод без выделения ресурсов RAM. В настройках отображается явное предупреждение о передаче текста на публичные серверы Google.
|
package/README.ru.md
CHANGED
|
@@ -40,9 +40,6 @@
|
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
-
> [!NOTE]
|
|
44
|
-
> **Языковая политика проекта**: `dsh-russian-lang` — специализированный плагин русской локализации интерфейса DSH. Каноническая документация ведётся исключительно на русском языке (`README.md`, `README.ru.md`). Общее требование трёхъязычной документации к нему не применяется.
|
|
45
|
-
|
|
46
43
|
## ⚡ Обзор
|
|
47
44
|
|
|
48
45
|
**`dsh-russian-lang`** — официальный, всеобъемлющий пакет русской локализации для веб-интерфейса [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh).
|
|
@@ -195,52 +192,3 @@ russian-lang:
|
|
|
195
192
|
## 📄 Лицензия
|
|
196
193
|
|
|
197
194
|
MIT © [GooDAnDReaDY](https://github.com/GooDAnDReaDY)
|
|
198
|
-
|
|
199
|
-
## ⚡ Новые возможности v0.2.9 — Smart Russian UX
|
|
200
|
-
|
|
201
|
-
Версия **v0.2.9** расширяет функционал плагина от чистой локализации до полноценной адаптации пользовательского опыта работы с моделями на русском языке:
|
|
202
|
-
|
|
203
|
-
1. **Живая экранная типографика в поле ввода (Live Input Typography)**:
|
|
204
|
-
- Автоматическая подстановка кавычек-ёлочек («...») вместо машинных программистских кавычек (`""`).
|
|
205
|
-
- Автоматическая замена двойного дефиса (`--`) на длинное тире (`—`).
|
|
206
|
-
- Автоматическая замена троеточия (`...`) на знак многоточия (`…`).
|
|
207
|
-
- Неразрывные пробелы (` `) после однобуквенных и коротких русских предлогов (`в`, `на`, `с`, `к`, `о`, `у`, `за`, `по` и др.).
|
|
208
|
-
- **Строгая изоляция кода**: текст внутри инлайн-кода (бэктики `` `code` ``) и многострочных блоков (``` ``` ```) сохраняется в неизменном виде без искажения синтаксиса.
|
|
209
|
-
- *(Changed in v0.2.19: устранена деструктивная перезапись поля ввода на `input`; замена двойного дефиса на тире, кавычек на ёлочки и неразрывных пробелов после предлогов переведена в обработчик `keydown` с нативным `insertText`, сохранением фокуса, нативной отмены `Ctrl+Z` и отсутствием прыжков каретки. Наблюдатель `typoObserver` переведён только на `childList: true`, исключая сброс пользовательского выделения текста во время стриминга токенов).*
|
|
210
|
-
|
|
211
|
-
2. **Быстрый переключатель языка (Quick Language Switcher)**:
|
|
212
|
-
- Компактный чип `RU ⇄ EN` встроен прямо в шапку диалоговой сессии (`conversation.session.header.utilities`).
|
|
213
|
-
- Позволяет мгновенно переключать язык всего интерфейса в один клик без перехода в Настройки.
|
|
214
|
-
|
|
215
|
-
3. **Русские алиасы слэш-команд (Slash-Command Aliases)**:
|
|
216
|
-
- Мгновенное авто-разворачивание команд при вводе:
|
|
217
|
-
- `/цель` ➔ `/goal`
|
|
218
|
-
- `/сжать` ➔ `/compact`
|
|
219
|
-
- `/план` ➔ `/plan`
|
|
220
|
-
- `/экспорт` ➔ `/export`
|
|
221
|
-
- `/память` ➔ `/memory`
|
|
222
|
-
- `/отзыв` ➔ `/feedback`
|
|
223
|
-
- `/разрешения` ➔ `/permission`
|
|
224
|
-
|
|
225
|
-
4. **Пресеты системных директив агента (Agent Style Presets)**:
|
|
226
|
-
- В карточке настроек плагина доступен выбор канонического стиля ответов для моделей:
|
|
227
|
-
- 💼 **Технический эксперт**: строгая русская инженерная терминология, аккуратный код, русскоязычные комментарии к архитектуре.
|
|
228
|
-
- 📝 **Технический писатель**: книжная типографика, Markdown, ГОСТ/RFC-структура документации.
|
|
229
|
-
- ⚡ **Лаконичный режим**: предельно сжатые и точные ответы без вступительных любезностей.
|
|
230
|
-
|
|
231
|
-
5. **Локализованный экспорт сессии (Localized Markdown Export)**:
|
|
232
|
-
- Генерация красивого Markdown-файла всей истории диалога с русскими датами, именами ролей («👤 Пользователь», «🤖 Ассистент»), метриками токенов и индикацией вызовов инструментов.
|
|
233
|
-
|
|
234
|
-
6. **Хоткей транслитерации (<kbd>Alt+T</kbd>)**:
|
|
235
|
-
- Мгновенная конвертация набранного транслита в кириллицу и обратно прямо в поле ввода (`privet` ⇄ `привет`).
|
|
236
|
-
- *(Deprecated since v0.2.14: экспериментальный UI-перехватчик удалён для обеспечения беспрепятственного нативного ввода Lexical; программная функция `phoneticTranslit` сохранена в `lib/pure.js`).*
|
|
237
|
-
|
|
238
|
-
7. **Инлайн-перевод реплик ассистента (`RU ↗`) и приватность**:
|
|
239
|
-
- Кнопка `RU ↗` в панели действий ответа ассистента позволяет переводить ответы модели на русский язык с сохранением блоков кода (`📋 Копировать`).
|
|
240
|
-
- 🔒 **Конфиденциальность и выбор движка**:
|
|
241
|
-
- **По умолчанию (Выключен)**: Никакие данные сообщений никуда не отправляются. Клик по кнопке информирует о необходимости выбрать движок.
|
|
242
|
-
- **Локальный LibreTranslate** *(Рекомендуется)*: Работает на 100% автономно на вашем сервере в Docker-контейнере (`~500–700 МБ RAM`). Запускается в 1 клик прямо из карточки настроек DSH или вручную:
|
|
243
|
-
```bash
|
|
244
|
-
docker run -d --name libretranslate --restart unless-stopped -p 127.0.0.1:5000:5000 libretranslate/libretranslate --load-only en,ru,zh
|
|
245
|
-
```
|
|
246
|
-
- **Google Translate (Онлайн)**: Для пользователей, которым удобен онлайн-перевод без выделения ресурсов RAM. В настройках отображается явное предупреждение о передаче текста на публичные серверы Google.
|
|
Binary file
|
package/lib/client.js
CHANGED
|
@@ -668,7 +668,7 @@ results.push({ item: cmd, ...res })
|
|
|
668
668
|
return results.sort((a, b) => b.score - a.score).map((r) => r.item)
|
|
669
669
|
}
|
|
670
670
|
|
|
671
|
-
const RU = {"common":{"back":"Назад","brand.localBuild":"Локальная сборка DSH","cancel":"Отмена","close":"Закрыть","collapse":"Свернуть","copied":"Скопировано","copy":"Копировать","copy.compactJson":"Копировать компактный JSON","copy.failed":"Не удалось скопировать","copy.json":"Копировать JSON","copy.optionsHint":"{action}; правый клик для вариантов копирования","copy.path":"Копировать путь к свойству","copy.prettyJson":"Копировать форматированный JSON","copy.value":"Копировать значение","delete":"Удалить","edit":"Изменить","expand":"Развернуть","json.collapseNode":"Свернуть узел JSON","json.expandNode":"Развернуть узел JSON","json.label":"JSON","load.failed":"Не удалось загрузить","loading":"Загрузка…","markdown.footnotes":"Сноски","markdown.truncatedCharacters":"… обрезано на {total} символах","more":"Ещё","next":"Дальше","none":"Нет","number.million":"{value}M","number.thousand":"{value}K","ok":"ОК","previous":"Назад","retry":"Повторить","save":"Сохранить","search":"Поиск","skip":"Пропустить","submit":"Отправить","submitting":"Отправка…","truncated":"Обрезано","unknown":"Неизвестно"},"dsh-cron":{"sidebar.label":"Задачи по расписанию"},"dsh-usage-stats":{"footer.todayLabel":"Сегодня"},"pluginMarket":{"trigger":"Магазин плагинов"}}
|
|
671
|
+
const RU = {"common":{"back":"Назад","brand.localBuild":"Локальная сборка DSH","cancel":"Отмена","close":"Закрыть","codeBlock.title":"Блок кода","codeBlock.unwrap":"Не переносить строки","codeBlock.wrap":"Переносить строки","collapse":"Свернуть","copied":"Скопировано","copy":"Копировать","copy.compactJson":"Копировать компактный JSON","copy.failed":"Не удалось скопировать","copy.json":"Копировать JSON","copy.optionsHint":"{action}; правый клик для вариантов копирования","copy.path":"Копировать путь к свойству","copy.prettyJson":"Копировать форматированный JSON","copy.value":"Копировать значение","delete":"Удалить","edit":"Изменить","expand":"Развернуть","json.collapseNode":"Свернуть узел JSON","json.expandNode":"Развернуть узел JSON","json.label":"JSON","load.failed":"Не удалось загрузить","loading":"Загрузка…","markdown.footnotes":"Сноски","markdown.truncatedCharacters":"… обрезано на {total} символах","more":"Ещё","next":"Дальше","none":"Нет","number.million":"{value}M","number.thousand":"{value}K","ok":"ОК","previous":"Назад","retry":"Повторить","save":"Сохранить","search":"Поиск","skip":"Пропустить","submit":"Отправить","submitting":"Отправка…","truncated":"Обрезано","unknown":"Неизвестно"},"dsh-cron":{"sidebar.label":"Задачи по расписанию"},"dsh-usage-stats":{"footer.todayLabel":"Сегодня"},"pluginMarket":{"trigger":"Магазин плагинов"}}
|
|
672
672
|
|
|
673
673
|
const ZH_RU = {}
|
|
674
674
|
RU['russian-lang'] = {"cardTitle":"Русская локализация","cardSub":"Язык интерфейса, типографика, раскладка","badgeRu":"🟢 RU активен","badgeEn":"⚪ EN активен","badgeCoverage":"🟢 100% (7,902 ключа)","badgeSmartUx":"⚡ Smart UX активен","secLanguage":"🌐 Язык интерфейса","secLanguageDesc":"Нативное переключение языка интерфейса DSH на русский без перезагрузки страницы.","enabled":"Русский язык включён","enabledDesc":"Переключает язык интерфейса DeepSeek Harness на русский.","quickSwitchNote":"Быстрый переключатель RU ⇄ EN доступен в шапке сессии рядом с кнопками диалога.","secTypography":"✍️ Умная типографика и ввод (Smart UX)","secTypographyDesc":"Автоматическое улучшение текстов по нормам русской типографики во время диалога и набора.","typography":"Типографика вывода","typographyDesc":"Исправляет типографику ответов модели: кавычки-«ёлочки», тире («—») вместо дефисов, неразрывные пробелы после предлогов.","yo":"Буква «ё»","yoDesc":"Восстанавливать «ё» в частых словах (ещё, чёрный, идёт и др.), написанных через «е». Неоднозначные слова (все/всё) не трогаются.","liveInput":"Живая типографика инпута","liveInputDesc":"Автоматически заменять \"\" на «» и -- на — прямо во время набора промпта (код в бэктиках игнорируется).","slashAliases":"Русские алиасы команд","slashAliasesDesc":"Поддержка русских команд: /цель -> /goal, /сжать -> /compact, /план -> /plan, /справка -> /help, /память -> /memory.","altLHintText":"Мгновенная конвертация раскладки текущего поля (ghbdtn ⇄ привет, /vjltkm ⇄ /model). В углу поля ввода также отображается метка раскладки.","secAgentPrompt":"🤖 Системный промпт агента","secAgentPromptDesc":"Официальная секция расширения DSH systemPrompt для ведения диалога на русском языке.","agentPrompt":"Русский промпт агента","agentPromptDesc":"Добавляет в системный промпт инструкцию отвечать по-русски в выбранном стиле.","agentPromptPreset":"Стиль ответов агента","presetExpert":"Технический эксперт (строгая терминология, чистый код)","presetWriter":"Технический писатель (Markdown, таблицы, ГОСТ)","presetConcise":"Лаконичный режим (кратко, без лишней воды)","presetReviewer":"Код-ревьюер (поиск багов, безопасность, аудит)","presetArchitect":"Системный архитектор (контракты, масштабируемость)","presetTutor":"Наставник (понятные объяснения, пошаговый разбор)","secUpdater":"🔄 Обновление языкового пакета","secUpdaterDesc":"Проверка наличия новых релизов в реестре npm и обновление в один клик.","updaterCurrent":"Текущая версия: v{version}","updaterLatest":"Доступна новая версия: v{version}","updaterUpToDate":"Установлена актуальная версия","updaterChecking":"Проверка…","updaterCheckBtn":"Проверить обновления","updaterBtn":"Обновить до v{version} в 1 клик","updaterUpdating":"Установка обновления…","updaterSuccess":"✅ Плагин успешно обновлён! Перезапустите DSH для применения.","updaterFailed":"❌ Не удалось проверить/обновить плагин. Проверьте сеть или логи сервера.","badgeUpdateAvailable":"Доступно обновление","badgeUpToDate":"Актуальная версия","secTranslator":"🌐 Перевод сообщений ассистента","secTranslatorDesc":"Настройка перевода ответов модели в чате на русский язык (локально в Docker или онлайн).","translateEngine":"Движок перевода","engineOff":"Выключен (по умолчанию, без сетевых вызовов)","engineLocal":"Локальный LibreTranslate (приватно, ~600 МБ RAM)","engineGoogle":"Google Translate (онлайн)","googleWarn":"⚠️ Внимание: при онлайн-переводе текст сообщений ассистента передаётся на публичные серверы Google для перевода на лету. Не используйте для конфиденциальных данных.","localStatusRunning":"🟢 Контейнер LibreTranslate активен","localStatusStopped":"⚪ Контейнер LibreTranslate не запущен","localStartBtn":"Запустить LibreTranslate в Docker (~600 МБ RAM)","localStarting":"Запуск контейнера…","localInfo":"LibreTranslate запускается изолированно в Docker на сервере, потребляет ~500–700 МБ RAM и переводит на 100% локально.","secOverrides":"✍️ Пользовательские переопределения (Custom Overrides)","secOverridesDesc":"Возможность заменить любую формулировку интерфейса DSH на собственную. Переопределения сохраняются в настройках и имеют наивысший приоритет.","overrideKeyPlaceholder":"Ключ (например, common.back или settings.title)","overrideValuePlaceholder":"Ваш русский перевод","overrideAddBtn":"Добавить","overrideEmpty":"Переопределений пока нет.","overrideDelete":"Удалить","overrideTip":"💡 Совет: зажмите Alt и кликните на любой переведённый элемент интерфейса, чтобы открыть всплывающий инспектор перевода и сразу изменить формулировку.","secSupport":"📊 Покрытие экосистемы и поддержка","secSupportDesc":"Словари синхронизированы с DSH v0.1.6-alpha.1. 100.0% UI-покрытие ядра и всех установленных плагинов (7,902 ключа) без черновых машинных переводов.","statNamespaces":"Пространств имён","statCoreKeys":"Ключей ядра","statPluginKeys":"Ключей плагинов","overridesCount":"Своих переопределений","statusLoading":"Настройки загружаются…","statusUnavailable":"Настройки недоступны на этом хосте","translateTurn":"Перевести на русский","reportIssue":"Сообщить о неточности перевода","exportMdHint":"Экспорт диалога в Markdown доступен по кнопке [ 📥 MD ] в шапке сессии.","translateTurnHint":"Перевод ответов ассистента на русский доступен по кнопке [ RU ↗ ] на блоках сообщений."}
|
|
@@ -1949,7 +1949,7 @@ const copyReportBtn = modal.querySelector('.rl-copy-report-btn')
|
|
|
1949
1949
|
if (copyReportBtn) {
|
|
1950
1950
|
copyReportBtn.onclick = () => {
|
|
1951
1951
|
const snippet = typeof generateBugReportSnippet === 'function'
|
|
1952
|
-
? generateBugReportSnippet({ key: k, ns, original: origText || rawText, current: rawText, override: textarea.value.trim(), pkgVersion: '0.3.
|
|
1952
|
+
? generateBugReportSnippet({ key: k, ns, original: origText || rawText, current: rawText, override: textarea.value.trim(), pkgVersion: '0.3.5' })
|
|
1953
1953
|
: ('### Репорт: ' + (k || rawText) + '\n- Исходный: ' + (origText || rawText) + '\n- Перевод: ' + textarea.value.trim())
|
|
1954
1954
|
try { navigator.clipboard.writeText(snippet) } catch (err) { void err; }
|
|
1955
1955
|
copyReportBtn.textContent = '✓ Скопировано'
|
|
@@ -2289,7 +2289,7 @@ const t = typeof props.t === 'function' ? props.t : ((k) => k)
|
|
|
2289
2289
|
const [loading, setLoading] = React.useState(false)
|
|
2290
2290
|
const [open, setOpen] = React.useState(false)
|
|
2291
2291
|
const [upStatus, setUpStatus] = React.useState({
|
|
2292
|
-
currentVersion: '0.3.
|
|
2292
|
+
currentVersion: '0.3.5',
|
|
2293
2293
|
latestVersion: undefined,
|
|
2294
2294
|
updateAvailable: false
|
|
2295
2295
|
})
|
|
@@ -2708,7 +2708,7 @@ React.createElement('div', { className: 'rl-item-card' },
|
|
|
2708
2708
|
React.createElement('div', { style: { display: 'flex', justifyContent: 'space-between', alignItems: 'center', flexWrap: 'wrap', gap: '8px' } },
|
|
2709
2709
|
React.createElement('div', null,
|
|
2710
2710
|
React.createElement('div', { style: { fontWeight: 600, color: 'var(--dsw-alias-label-primary)' } },
|
|
2711
|
-
t('updaterCurrent').replace('{version}', upStatus.currentVersion || '0.3.
|
|
2711
|
+
t('updaterCurrent').replace('{version}', upStatus.currentVersion || '0.3.5')),
|
|
2712
2712
|
upStatus.updateAvailable
|
|
2713
2713
|
? React.createElement('div', { style: { color: 'var(--dsw-alias-state-warning-primary)', marginTop: '2px', fontWeight: 500 } },
|
|
2714
2714
|
t('updaterLatest').replace('{version}', upStatus.latestVersion || ''))
|
|
@@ -2921,7 +2921,7 @@ React.createElement('div', { className: 'rl-stat-label' }, t('statPluginKeys'))
|
|
|
2921
2921
|
),
|
|
2922
2922
|
React.createElement('div', { className: 'rl-actions-row' },
|
|
2923
2923
|
React.createElement('a', {
|
|
2924
|
-
href: makeIssueUrl({}, '0.3.
|
|
2924
|
+
href: makeIssueUrl({}, '0.3.5'),
|
|
2925
2925
|
target: '_blank',
|
|
2926
2926
|
rel: 'noopener noreferrer',
|
|
2927
2927
|
className: 'rl-btn rl-btn-primary'
|