# Каталог статических сообщений Hermes -- Русский # See locales/en.yaml for the source of truth; keep keys in sync. approval: dangerous_header: "⚠️ ОПАСНАЯ КОМАНДА: {description}" choose_long: " [o]один раз | [s]сеанс | [a]всегда | [d]отклонить" choose_short: " [o]один раз | [s]сеанс | [d]отклонить" prompt_long: " Выбор [o/s/a/D]: " prompt_short: " Выбор [o/s/D]: " timeout: " ⏱ Время ожидания истекло — команда отклонена" allowed_once: " ✓ Разрешено один раз" allowed_session: " ✓ Разрешено для этого сеанса" allowed_always: " ✓ Добавлено в постоянный список разрешённых" denied: " ✗ Отклонено" cancelled: " ✗ Отменено" blocklist_message: "Эта команда находится в безусловном списке блокировки и не может быть одобрена." gateway: approval_expired: "⚠️ Срок одобрения истёк (агент больше не ожидает). Попросите агента повторить попытку." draining: "⏳ Ожидание завершения {count} активных агент(ов) перед перезапуском..." goal_cleared: "✓ Цель очищена." no_active_goal: "Нет активной цели." config_read_failed: "⚠️ Не удалось прочитать config.yaml: {error}" config_save_failed: "⚠️ Не удалось сохранить конфигурацию: {error}" model: error_prefix: "Ошибка: {error}" switched: "Модель изменена на `{model}`" provider_label: "Провайдер: {provider}" context_label: "Контекст: {tokens} токенов" max_output_label: "Макс. вывод: {tokens} токенов" cost_label: "Стоимость: {cost}" capabilities_label: "Возможности: {capabilities}" prompt_caching_enabled: "Кеширование промптов: включено" warning_prefix: "Предупреждение: {warning}" saved_global: "Сохранено в config.yaml (`--global`)" session_only_hint: "_(только для этого сеанса — добавьте `--global`, чтобы сохранить)_" current_label: "Текущая: `{model}` на {provider}" current_tag: " (текущая)" more_models_suffix: " (+ещё {count})" usage_switch_model: "`/model ` — сменить модель" usage_switch_provider: "`/model --provider ` — сменить провайдера" usage_persist: "`/model --global` — сохранить навсегда" agents: header: "🤖 **Активные агенты и задачи**" active_agents: "**Активные агенты:** {count}" this_chat: " · этот чат" more: "... и ещё {count}" running_processes: "**Выполняющиеся фоновые процессы:** {count}" async_jobs: "**Асинхронные задачи шлюза:** {count}" none: "Нет активных агентов или выполняющихся задач." state_starting: "запускается" state_running: "выполняется" approve: no_pending: "Нет команды, ожидающей одобрения." once_singular: "✅ Команда одобрена. Агент возобновляет работу..." once_plural: "✅ Команды одобрены ({count} команд). Агент возобновляет работу..." session_singular: "✅ Команда одобрена (шаблон одобрен для этого сеанса). Агент возобновляет работу..." session_plural: "✅ Команды одобрены (шаблон одобрен для этого сеанса) ({count} команд). Агент возобновляет работу..." always_singular: "✅ Команда одобрена (шаблон одобрен навсегда). Агент возобновляет работу..." always_plural: "✅ Команды одобрены (шаблон одобрен навсегда) ({count} команд). Агент возобновляет работу..." background: usage: "Использование: /background <запрос>\nПример: /background Сделай сводку лучших историй с HN сегодня\n\nЗапускает запрос в отдельном сеансе. Можно продолжить общение — результат появится здесь по завершении." started: "🔄 Фоновая задача запущена: «{preview}»\nID задачи: {task_id}\nМожно продолжить общение — результаты появятся здесь по завершении." branch: db_unavailable: "База данных сеансов недоступна." no_conversation: "Нет беседы для ответвления — сначала отправьте сообщение." create_failed: "Не удалось создать ветку: {error}" switch_failed: "Ветка создана, но переключиться на неё не удалось." branched_one: "⑂ Создана ветка **{title}** (скопировано {count} сообщение)\nОригинал: `{parent}`\nВетка: `{new}`\nИспользуйте `/resume`, чтобы вернуться к оригиналу." branched_many: "⑂ Создана ветка **{title}** (скопировано {count} сообщений)\nОригинал: `{parent}`\nВетка: `{new}`\nИспользуйте `/resume`, чтобы вернуться к оригиналу." commands: usage: "Использование: `/commands [page]`" skill_header: "⚡ **Команды навыков**:" default_desc: "Команда навыка" none: "Нет доступных команд." header: "📚 **Команды** (всего {total}, страница {page}/{total_pages})" nav_prev: "`/commands {page}` ← пред." nav_next: "след. → `/commands {page}`" out_of_range: "_(Запрошенная страница {requested} вне диапазона, показана страница {page}.)_" compress: not_enough: "Недостаточно беседы для сжатия (нужно минимум 4 сообщения)." no_provider: "Провайдер не настроен — сжатие невозможно." nothing_to_do: "Пока нечего сжимать (стенограмма всё ещё полностью является защищённым контекстом)." focus_line: "Фокус: \"{topic}\"" summary_failed: "⚠️ Не удалось сгенерировать сводку ({error}). {count} историч. сообщений было удалено и заменено заполнителем; предыдущий контекст больше нельзя восстановить. Проверьте конфигурацию модели auxiliary.compression." aux_failed: "ℹ️ Настроенная модель сжатия `{model}` дала сбой ({error}). Восстановлено с помощью основной модели — контекст не повреждён — но рекомендуется проверить `auxiliary.compression.model` в config.yaml." failed: "Сжатие не удалось: {error}" debug: upload_failed: "✗ Не удалось загрузить отчёт отладки: {error}" header: "**Отчёт отладки загружен:**" auto_delete: "⏱ Вставки автоматически удалятся через 6 часов." full_logs_hint: "Для загрузки полных журналов используйте `hermes debug share` из CLI." share_hint: "Поделитесь этими ссылками с командой Hermes для получения поддержки." deny: stale: "❌ Команда отклонена (одобрение устарело)." no_pending: "Нет команды для отклонения." denied_singular: "❌ Команда отклонена." denied_plural: "❌ Команды отклонены ({count} команд)." fast: not_supported: "⚡ /fast доступен только для моделей OpenAI, поддерживающих Priority Processing." status: "⚡ Priority Processing\n\nТекущий режим: `{mode}`\n\n_Использование:_ `/fast `" unknown_arg: "⚠️ Неизвестный аргумент: `{arg}`\n\n**Допустимые варианты:** normal, fast, status" saved: "⚡ ✓ Priority Processing: **{label}** (сохранено в конфигурации)\n_(вступит в силу со следующего сообщения)_" session_only: "⚡ ✓ Priority Processing: **{label}** (только этот сеанс)" label_fast: "FAST" label_normal: "NORMAL" status_fast: "fast" status_normal: "normal" footer: status: "📎 Нижний колонтитул среды выполнения: **{state}**\nПоля: `{fields}`\nПлатформа: `{platform}`" usage: "Использование: `/footer [on|off|status]`" saved: "📎 Нижний колонтитул среды выполнения: **{state}**{example}\n_(сохранено глобально — вступит в силу со следующего сообщения)_" example_line: "\nПример: `{preview}`" state_on: "ON" state_off: "OFF" goal: unavailable: "Цели недоступны в этом сеансе." no_goal_set: "Цель не задана." paused: "⏸ Цель приостановлена: {goal}" no_resume: "Нет цели для возобновления." resumed: "▶ Цель возобновлена: {goal}\nОтправьте любое сообщение, чтобы продолжить, или подождите — я сделаю следующий шаг на следующем ходу." invalid: "Недопустимая цель: {error}" set: "⊙ Цель задана (бюджет {budget} ходов): {goal}\nЯ продолжу работу, пока цель не будет достигнута, вы её не приостановите/очистите, или бюджет не исчерпается.\nУправление: /goal status · /goal pause · /goal resume · /goal clear" help: header: "📖 **Команды Hermes**\n" skill_header: "\n⚡ **Команды навыков** (активных: {count}):" more_use_commands: "\n... и ещё {count}. Используйте `/commands` для полного списка с постраничной разбивкой." insights: invalid_days: "Недействительное значение --days: {value}" error: "Ошибка при формировании аналитики: {error}" kanban: error_prefix: "⚠ ошибка kanban: {error}" subscribed_suffix: "(подписка оформлена — вы получите уведомление, когда {task_id} завершится или будет заблокирован)" truncated_suffix: "… (сокращено; используйте `hermes kanban …` в терминале для полного вывода)" no_output: "(нет вывода)" personality: none_configured: "В `{path}/config.yaml` не настроено ни одной личности" header: "🎭 **Доступные личности**\n" none_option: "• `none` — (без наложения личности)" item: "• `{name}` — {preview}" usage: "\nИспользование: `/personality `" save_failed: "⚠️ Не удалось сохранить изменение личности: {error}" cleared: "🎭 Личность очищена — используется базовое поведение агента.\n_(вступит в силу со следующего сообщения)_" set_to: "🎭 Личность установлена на **{name}**\n_(вступит в силу со следующего сообщения)_" unknown: "Неизвестная личность: `{name}`\n\nДоступные: {available}" profile: header: "👤 **Профиль:** `{profile}`" home: "📂 **Домашний каталог:** `{home}`" reasoning: level_default: "medium (по умолчанию)" level_disabled: "none (отключено)" scope_session: "переопределение сеанса" scope_global: "глобальная конфигурация" status: "🧠 **Настройки рассуждений**\n\n**Усилия:** `{level}`\n**Область:** {scope}\n**Отображение:** {display}\n\n_Использование:_ `/reasoning [--global]`" display_on: "включено ✓" display_off: "выключено" display_set_on: "🧠 ✓ Отображение рассуждений: **ВКЛ.**\nМысли модели будут показываться перед каждым ответом на **{platform}**." display_set_off: "🧠 ✓ Отображение рассуждений: **ВЫКЛ.** для **{platform}**" reset_global_unsupported: "⚠️ `/reasoning reset --global` не поддерживается. Используйте `/reasoning --global`, чтобы изменить глобальное значение по умолчанию." reset_done: "🧠 ✓ Переопределение рассуждений для сеанса сброшено; возврат к глобальной конфигурации." unknown_arg: "⚠️ Неизвестный аргумент: `{arg}`\n\n**Допустимые уровни:** none, minimal, low, medium, high, xhigh\n**Отображение:** show, hide\n**Сохранение:** добавьте `--global`, чтобы сохранить за пределами этого сеанса" set_global: "🧠 ✓ Усилия рассуждений установлены на `{effort}` (сохранено в конфигурации)\n_(вступит в силу со следующего сообщения)_" set_global_save_failed: "🧠 ✓ Усилия рассуждений установлены на `{effort}` (только этот сеанс — не удалось сохранить конфигурацию)\n_(вступит в силу со следующего сообщения)_" set_session: "🧠 ✓ Усилия рассуждений установлены на `{effort}` (только этот сеанс — добавьте `--global`, чтобы сохранить)\n_(вступит в силу со следующего сообщения)_" reload_mcp: cancelled: "🟡 /reload-mcp отменено. MCP-инструменты без изменений." always_followup: "ℹ️ Будущие вызовы `/reload-mcp` будут выполняться без подтверждения. Снова включить можно через `approvals.mcp_reload_confirm: true` в config.yaml." confirm_prompt: "⚠️ **Подтверждение /reload-mcp**\n\nПерезагрузка MCP-серверов перестраивает набор инструментов для этого сеанса и **сбрасывает кеш промпта провайдера** — следующее сообщение повторно отправит все входные токены. На моделях с длинным контекстом или высоким уровнем рассуждений это может быть дорого.\n\nВыберите:\n• **Одобрить один раз** — перезагрузить сейчас\n• **Всегда одобрять** — перезагрузить и навсегда отключить этот запрос\n• **Отменить** — оставить MCP-инструменты без изменений\n\n_Текстовая альтернатива: ответьте `/approve`, `/always` или `/cancel`._" header: "🔄 **MCP-серверы перезагружены**\n" reconnected: "♻️ Переподключено: {names}" added: "➕ Добавлено: {names}" removed: "➖ Удалено: {names}" none_connected: "Нет подключённых MCP-серверов." tools_available: "\n🔧 {tools} инструмент(ов) доступно с {servers} сервер(ов)" failed: "❌ Ошибка перезагрузки MCP: {error}" reload_skills: header: "🔄 **Навыки перезагружены**\n" no_new: "Новых навыков не обнаружено." total: "\n📚 {count} навык(ов) доступно" added_header: "➕ **Добавленные навыки:**" removed_header: "➖ **Удалённые навыки:**" item_with_desc: " - {name}: {desc}" item_no_desc: " - {name}" failed: "❌ Ошибка перезагрузки навыков: {error}" reset: header_default: "✨ Сеанс сброшен! Начинаем с чистого листа." header_new: "✨ Новый сеанс запущен!" header_titled: "✨ Новый сеанс запущен: {title}" title_rejected: "\n⚠️ Название отклонено: {error}" title_error_untitled: "\n⚠️ {error} — сеанс запущен без названия." title_empty_untitled: "\n⚠️ После очистки название пусто — сеанс запущен без названия." tip: "\n✦ Совет: {tip}" restart: in_progress: "⏳ Перезапуск шлюза уже выполняется..." restarting: "♻ Перезапуск шлюза. Если уведомление не придёт в течение 60 секунд, перезапустите из консоли командой `hermes gateway restart`." resume: db_unavailable: "База данных сеансов недоступна." no_named_sessions: "Именованных сеансов не найдено.\nИспользуйте `/title Мой сеанс`, чтобы назвать текущий сеанс, затем `/resume Мой сеанс`, чтобы вернуться к нему позже." list_header: "📋 **Именованные сеансы**\n" list_item: "• **{title}**{preview_part}" list_preview_suffix: " — _{preview}_" list_footer: "\nИспользование: `/resume <название сеанса>`" list_failed: "Не удалось получить список сеансов: {error}" not_found: "Сеанс, соответствующий '**{name}**', не найден.\nИспользуйте `/resume` без аргументов, чтобы увидеть доступные сеансы." already_on: "📌 Уже в сеансе **{name}**." switch_failed: "Не удалось переключить сеанс." resumed_one: "↻ Сеанс **{title}** возобновлён ({count} сообщение). Беседа восстановлена." resumed_many: "↻ Сеанс **{title}** возобновлён ({count} сообщений). Беседа восстановлена." resumed_no_count: "↻ Сеанс **{title}** возобновлён. Беседа восстановлена." retry: no_previous: "Нет предыдущего сообщения для повтора." rollback: not_enabled: "Контрольные точки не включены.\nВключите в config.yaml:\n```\ncheckpoints:\n enabled: true\n```" none_found: "Контрольных точек для {cwd} не найдено" invalid_number: "Недействительный номер контрольной точки. Используйте 1-{max}." restored: "✅ Восстановлено до контрольной точки {hash}: {reason}\nСнимок перед откатом сохранён автоматически." restore_failed: "❌ {error}" set_home: save_failed: "Не удалось сохранить главный канал: {error}" success: "✅ Главный канал установлен на **{name}** (ID: {chat_id}).\nCron-задачи и межплатформенные сообщения будут доставляться сюда." status: header: "📊 **Состояние Hermes Gateway**" session_id: "**ID сеанса:** `{session_id}`" title: "**Название:** {title}" created: "**Создано:** {timestamp}" last_activity: "**Последняя активность:** {timestamp}" tokens: "**Токены:** {tokens}" agent_running: "**Агент активен:** {state}" state_yes: "Да ⚡" state_no: "Нет" queued: "**Очередь продолжений:** {count}" platforms: "**Подключённые платформы:** {platforms}" stop: stopped_pending: "⚡ Остановлено. Агент ещё не начинал — вы можете продолжить этот сеанс." stopped: "⚡ Остановлено. Вы можете продолжить этот сеанс." no_active: "Нет активной задачи для остановки." title: db_unavailable: "База данных сеансов недоступна." warn_prefix: "⚠️ {error}" empty_after_clean: "⚠️ После очистки название пусто. Используйте печатные символы." set_to: "✏️ Название сеанса установлено: **{title}**" not_found: "Сеанс не найден в базе данных." current_with_title: "📌 Сеанс: `{session_id}`\nНазвание: **{title}**" current_no_title: "📌 Сеанс: `{session_id}`\nНазвание не задано. Использование: `/title Название моего сеанса`" topic: not_telegram_dm: "Команда /topic доступна только в личных чатах Telegram." no_session_db: "База данных сеансов недоступна." unauthorized: "У вас нет прав использовать /topic в этом боте." restore_needs_topic: "Чтобы восстановить сеанс, сначала создайте или откройте Telegram topic, затем отправьте /topic в этом topic. Чтобы создать новый topic, откройте All Messages и отправьте там любое сообщение." topics_disabled: "Telegram topics ещё не включены для этого бота.\n\nКак включить:\n1. Откройте @BotFather.\n2. Выберите своего бота.\n3. Откройте Bot Settings → Threads Settings.\n4. Включите Threaded Mode и убедитесь, что пользователям разрешено создавать новые threads.\n\nЗатем снова отправьте /topic." topics_user_disallowed: "Telegram topics включены, но пользователям не разрешено создавать topics.\n\nОткройте @BotFather → выберите своего бота → Bot Settings → Threads Settings, затем выключите 'Disallow users to create new threads'.\n\nЗатем снова отправьте /topic." enable_failed: "Не удалось включить режим Telegram topic: {error}" bound_status: "Этот topic привязан к:\nСеанс: {label}\nID: {session_id}\n\nИспользуйте /new, чтобы заменить этот topic новым сеансом.\nДля параллельной работы откройте All Messages и отправьте там сообщение, чтобы создать другой topic." thread_ready: "Многосеансовые Telegram topics включены.\n\nЭтот topic будет использоваться как независимый сеанс Hermes. Используйте /new, чтобы заменить текущий сеанс этого topic. Для параллельной работы откройте All Messages и отправьте там сообщение, чтобы создать другой topic." untitled_session: "Сеанс без названия" undo: nothing: "Нечего отменять." removed: "↩️ Отменено сообщений: {count}.\nУдалено: «{preview}»" update: platform_not_messaging: "✗ /update доступен только на платформах обмена сообщениями. Выполните `hermes update` в терминале." not_git_repo: "✗ Не git-репозиторий — обновление невозможно." hermes_cmd_not_found: "✗ Не удалось найти команду `hermes`. Hermes запущен, но команда обновления не нашла исполняемый файл в PATH или через текущий интерпретатор Python. Попробуйте выполнить `hermes update` вручную в терминале." start_failed: "✗ Не удалось запустить обновление: {error}" starting: "⚕ Запуск обновления Hermes… Я буду транслировать прогресс сюда." usage: rate_limits: "⏱️ **Ограничения скорости:** {state}" header_session: "📊 **Использование токенов сеанса**" label_model: "Модель: `{model}`" label_input_tokens: "Входные токены: {count}" label_cache_read: "Токены чтения кеша: {count}" label_cache_write: "Токены записи кеша: {count}" label_output_tokens: "Выходные токены: {count}" label_total: "Всего: {count}" label_api_calls: "Вызовы API: {count}" label_cost: "Стоимость: {prefix}${amount}" label_cost_included: "Стоимость: включено" label_context: "Контекст: {used} / {total} ({pct}%)" label_compressions: "Сжатий: {count}" header_session_info: "📊 **Информация о сеансе**" label_messages: "Сообщений: {count}" label_estimated_context: "Ориентировочный контекст: ~{count} токенов" detailed_after_first: "_(Подробное использование доступно после первого ответа агента)_" no_data: "Данные об использовании для этого сеанса отсутствуют." verbose: not_enabled: "Команда `/verbose` не включена для платформ обмена сообщениями.\n\nВключите в `config.yaml`:\n```yaml\ndisplay:\n tool_progress_command: true\n```" mode_off: "⚙️ Прогресс инструментов: **OFF** — активность инструментов не показывается." mode_new: "⚙️ Прогресс инструментов: **NEW** — показывается при смене инструмента (длина предпросмотра: `display.tool_preview_length`, по умолчанию 40)." mode_all: "⚙️ Прогресс инструментов: **ALL** — показывается каждый вызов инструмента (длина предпросмотра: `display.tool_preview_length`, по умолчанию 40)." mode_verbose: "⚙️ Прогресс инструментов: **VERBOSE** — каждый вызов инструмента с полными аргументами." saved_suffix: "_(сохранено для **{platform}** — вступит в силу со следующего сообщения)_" save_failed: "_(не удалось сохранить в конфигурацию: {error})_" voice: enabled_voice_only: "Голосовой режим включён.\nЯ буду отвечать голосом, когда вы отправляете голосовые сообщения.\nИспользуйте /voice tts, чтобы получать голосовые ответы на все сообщения." disabled_text: "Голосовой режим отключён. Только текстовые ответы." tts_enabled: "Авто-TTS включён.\nВсе ответы будут содержать голосовое сообщение." status_mode: "Голосовой режим: {label}" status_channel: "Голосовой канал: #{channel}" status_participants: "Участники: {count}" status_member: " - {name}{status}" speaking: " (говорит)" enabled_short: "Голосовой режим включён." disabled_short: "Голосовой режим отключён." label_off: "Выкл. (только текст)" label_voice_only: "Вкл. (голосовой ответ на голосовые сообщения)" label_all: "TTS (голосовой ответ на все сообщения)" yolo: disabled: "⚠️ Режим YOLO для этого сеанса **ОТКЛЮЧЁН** — опасные команды потребуют одобрения." enabled: "⚡ Режим YOLO для этого сеанса **ВКЛЮЧЁН** — все команды одобряются автоматически. Используйте с осторожностью." shared: session_db_unavailable: "База данных сеансов недоступна." session_db_unavailable_prefix: "База данных сеансов недоступна" session_not_found: "Сеанс не найден в базе данных." warn_passthrough: "⚠️ {error}"