#29 Plugin system: - New jarvis-core::plugins module: discovers user packs in %APPDATA%\com.priler.jarvis\plugins\<name>\command.toml so authors can ship voice commands without rebuilding. Sandbox capped at "standard" — plugins cannot escalate to "full" (which would expose `os`). Disabled via a `disabled` flag file. Malformed packs warn and skip; never poison the rest of the list. 8 unit tests. - commands::parse_commands() merges plugins into the loaded list. - New /plugins GUI page with enable/disable switches, error reporting, "Open folder" button. Tauri commands plugins_list / plugins_set_enabled / plugins_open_folder. Header gets a "Плагины" button. i18n keys added for ru/en/ua. #8 Custom wake-word trainer wizard: - New jarvis-core::wake_trainer module: opens its own pv_recorder instance, records N short PCM clips, WAV-encodes them in memory, then calls rustpotter's WakewordRef::new_from_sample_buffers to train and persist a .rpw model under %APPDATA%/com.priler.jarvis/wake_words/. Keepsake WAVs are also dumped for retraining later. Sanitises names to block path traversal. 5 unit tests. - Settings gain `custom_wake_word: String`; listener/rustpotter.rs now loads the user's selected model first and always falls back to the bundled default so the assistant keeps working even if the custom file is missing. - New /wake-trainer GUI page: stepper UI for record-sample → train, shows recorded count, threshold slider, refuses to start while jarvis-app is running (mic exclusivity). Lists existing trained models with size + delete button. - 8 Tauri commands wired through (status/defaults/start/record_sample/ finish/cancel/list_models/delete_model). Tests: 115 → 128 (+8 plugins +5 wake_trainer). Release builds green for all three binaries (jarvis-app / jarvis-cli / jarvis-gui).
166 lines
No EOL
7.7 KiB
Text
166 lines
No EOL
7.7 KiB
Text
# ### APP INFO
|
||
app-name = JARVIS
|
||
app-description = Голосовий асистент
|
||
|
||
# ### TRAY MENU
|
||
tray-restart = Перезапустити
|
||
tray-settings = Налаштування
|
||
tray-exit = Вихід
|
||
tray-tooltip = JARVIS - Голосовий асистент
|
||
tray-language = Мова
|
||
tray-voice = Голос
|
||
tray-wake-word = Рушій детекції
|
||
tray-noise-suppression = Шумозаглушення
|
||
tray-vad = Детекцiя голосу (VAD)
|
||
tray-gain-normalizer = Нормалізація гучності
|
||
|
||
# ### HEADER
|
||
header-commands = КОМАНДИ
|
||
header-settings = НАЛАШТУВАННЯ
|
||
|
||
# ### SEARCH
|
||
search-placeholder = Введіть команду вручну або скажіть «Джарвіс» ...
|
||
|
||
# ### MAIN PAGE
|
||
assistant-not-running = АСИСТЕНТ НЕ ЗАПУЩЕНО
|
||
assistant-offline-hint = Налаштувати його можна не запускаючи.
|
||
btn-start = ЗАПУСТИТИ
|
||
btn-starting = ЗАПУСК...
|
||
|
||
# ### STATUS
|
||
status-disconnected = Відключено
|
||
status-standby = Очікування
|
||
status-listening = Слухаю...
|
||
status-processing = Обробка...
|
||
|
||
# ### STATS
|
||
stats-microphone = МІКРОФОН
|
||
stats-neural-networks = НЕЙРОМЕРЕЖІ
|
||
stats-resources = РЕСУРСИ
|
||
stats-system-default = Системний
|
||
stats-not-selected = Не вибрано
|
||
stats-loading = Завантаження...
|
||
|
||
# ### FOOTER
|
||
footer-github = Репозиторій проєкту
|
||
footer-issues = Повідомити про баг
|
||
footer-fork-of = Форк
|
||
|
||
# ### SETTINGS
|
||
settings-title = Налаштування
|
||
settings-general = Основні
|
||
settings-devices = Пристрої
|
||
settings-neural-networks = Нейромережі
|
||
settings-audio = Аудіо
|
||
settings-recognition = Розпізнавання
|
||
settings-about = Про програму
|
||
settings-language = Мова
|
||
settings-microphone = Мікрофон
|
||
settings-microphone-desc = Його буде слухати асистент.
|
||
settings-mic-default = За замовчуванням (Система)
|
||
settings-voice = Голос асистента
|
||
settings-voice-desc =
|
||
Не всі команди працюють з усіма звуковими пакетами.
|
||
Натисніть, щоб прослухати як звучить голос.
|
||
settings-wake-word-engine = Рушій активації
|
||
settings-wake-word-desc = Виберіть нейромережу для розпізнавання активаційної фрази.
|
||
settings-stt-engine = Розпізнавання мовлення
|
||
settings-intent-engine = Визначення наміру
|
||
settings-intent-engine-desc = Виберіть нейромережу для розпізнавання команд.
|
||
settings-noise-suppression = Шумозаглушення
|
||
settings-noise-suppression-desc = Зменшує фоновий шум. Може негативно впливати на розпізнавання.
|
||
settings-vad = Визначення голосу (VAD)
|
||
settings-vad-desc = Пропускає тишу, економить ресурси CPU.
|
||
settings-gain-normalizer = Нормалізація гучності
|
||
settings-gain-normalizer-desc = Автоматично регулює рівень гучності.
|
||
settings-api-keys = API Ключі
|
||
settings-save = Зберегти
|
||
settings-cancel = Скасувати
|
||
settings-back = Назад
|
||
settings-enabled = Увімкнено
|
||
settings-disabled = Вимкнено
|
||
|
||
# settings - beta notice
|
||
settings-beta-title = БЕТА версія!
|
||
settings-beta-desc = Частина функцій може працювати некоректно.
|
||
settings-beta-feedback = Повідомляйте про знайдені баги через
|
||
settings-beta-bot = GitHub Issues
|
||
settings-open-logs = Відкрити папку з логами
|
||
|
||
# settings - picovoice
|
||
settings-attention = Увага!
|
||
settings-picovoice-warning = Ця нейромережа працює не у всіх!
|
||
settings-picovoice-waiting = Ми чекаємо офіційного патча від розробників.
|
||
settings-picovoice-key-desc = Введіть сюди свій ключ Picovoice. Він видається безкоштовно при реєстрації в
|
||
settings-picovoice-key = Ключ Picovoice
|
||
|
||
# settings - vosk
|
||
settings-auto-detect = Авто-визначення
|
||
settings-vosk-model = Модель розпізнавання мовлення (Vosk)
|
||
settings-vosk-model-desc =
|
||
Виберіть модель Vosk для розпізнавання мовлення.
|
||
Ви можете завантажити моделі тут: https://alphacephei.com/vosk/models
|
||
settings-models-not-found = Моделі не знайдено
|
||
settings-models-hint = Помістіть моделі Vosk в папку resources/vosk
|
||
|
||
# settings - openai
|
||
settings-openai-key = Ключ OpenAI
|
||
settings-openai-not-supported = Наразі ChatGPT не підтримується. Він буде доданий у наступних оновленнях.
|
||
|
||
# ### COMMANDS PAGE
|
||
commands-title = Команди
|
||
commands-search = Пошук команд...
|
||
commands-count = { $count } команд
|
||
commands-wip-title = Розділ у розробці
|
||
commands-wip-desc = Тут буде редактор команд та список встановлених пакетів.
|
||
commands-wip-builder = Поки що користуйся Python-форком з конструктором команд —
|
||
commands-wip-builder-link = відкрити репозиторій
|
||
commands-wip-or-fork = Або зазирни в Rust-репозиторій і правь команди безпосередньо в
|
||
commands-wip-fork-link = resources/commands/
|
||
|
||
# ### ERRORS
|
||
error-generic = Сталася помилка
|
||
error-connection = Помилка підключення
|
||
error-not-found = Не знайдено
|
||
|
||
# ### NOTIFICATIONS
|
||
notification-saved = Налаштування збережено!
|
||
notification-error = Помилка
|
||
notification-assistant-started = Асистент запущено
|
||
notification-assistant-stopped = Асистент зупинено
|
||
|
||
# SLOTS EXTRACTION
|
||
settings-slot-engine = Витяг параметрів
|
||
settings-slot-engine-desc = Витягує параметри з голосових команд (напр. назва міста, число).
|
||
settings-gliner-model = Модель GLiNER ONNX
|
||
settings-gliner-model-desc =
|
||
Оберіть варіант моделі.
|
||
Квантизовані моделі (int8, uint8) швидші, але менш точні.
|
||
settings-gliner-models-hint = Моделі GLiNER не знайдено.
|
||
|
||
# ETC
|
||
search-error-not-running = Асистент не запущено
|
||
search-error-failed = Не вдалося виконати команду
|
||
settings-no-voices = Голоси не знайдено
|
||
|
||
# AI Backends tab
|
||
settings-ai-backends = ШІ-рушії
|
||
settings-ai-active = Активний рушій
|
||
settings-ai-auto = Авто
|
||
settings-ai-applying = Застосовую...
|
||
settings-ai-error = Помилка перемикання
|
||
settings-ai-tips = Підказки
|
||
settings-llm-backend = LLM рушій
|
||
settings-llm-backend-desc = Де виконувати LLM-запити. Hot-swap, без перезапуску.
|
||
settings-tts-backend = TTS рушій
|
||
settings-tts-backend-desc = Застосується при наступному запуску jarvis-app.
|
||
settings-llm-context = Контекст розмови
|
||
settings-llm-context-desc = LLM пам'ятає попередні репліки. Скиньте, якщо відповіді дивні.
|
||
settings-llm-reset = Скинути контекст
|
||
settings-profile = Профіль
|
||
|
||
# Header buttons
|
||
header-macros = Макроси
|
||
header-scheduler = Розклад
|
||
header-memory = Пам'ять
|
||
header-plugins = Плагіни |