{
  "badge": {
    "artifact_tip": "Обнаружено {n} аномалий (например, дверь открылась в середине цикла) – откройте, чтобы увидеть их на графике",
    "auto": "(авто-определение)",
    "built_in_tag": "встроенный",
    "declining": "↘ снижается",
    "energy_low": "Энергопотребление ниже обычного",
    "energy_spike": "Энергопотребление выше обычного",
    "fair_fit": "приемлемое качество",
    "fair_fit_tip": "Умеренная согласованность совпадений – некоторые циклы, назначенные этому профилю, имеют более низкие оценки достоверности. Пометьте больше циклов или перезапишите профиль, чтобы повысить точность.",
    "feedback_requested": "Запрошен отзыв",
    "golden_cycle": "Записанный эталонный цикл",
    "improving": "↗ улучшается",
    "manual": "(выбрано вручную)",
    "needs_review": "Требуется проверка",
    "overrun": "Работал дольше обычного",
    "poor_fit": "низкое качество",
    "poor_fit_tip": "Непоследовательная история совпадений – рассмотрите возможность восстановления этого профиля",
    "restart_gap_tip": "{n} пропуск при перезапуске HA: в графике мощности есть разрыв",
    "reviewed": "Рассмотрено",
    "steady": "→ стабильно",
    "underrun": "Завершился быстрее обычного",
    "using_defaults": "Использует стандартные настройки",
    "using_tuned": "Использует настроенные веса",
    "overrun_ratio": "({x}× от ожидаемого)",
    "underrun_ratio": "({pct}% от ожидаемого)",
    "awaiting_tip": "Ожидает одобрения сообществом",
    "awaiting_n": "Ожидает одобрения · {n} подтверждено",
    "approved": "Одобрено",
    "awaiting": "Ожидает одобрения",
    "imported_tip": "Импортировано из магазина сообщества. Используется только для сопоставления, не учитывается в статистике."
  },
  "btn": {
    "add_device": "+ Добавить устройство",
    "add_device_tip": "Добавить ещё одно устройство WashData",
    "add_maintenance": "Добавить событие обслуживания",
    "add_phase": "+ Добавить фазу",
    "add_timer": "+ Добавить таймер",
    "apply_all": "Применить всё",
    "apply_label": "Применить метку",
    "apply_set_b": "Применить набор B",
    "apply_split": "Применить разбивку",
    "apply_trim": "Применить обрезку",
    "auto_detect_split": "Авто-определение",
    "auto_label_cycles": "Автоматически пометить циклы",
    "auto_label_cycles_tip": "Автоматически назначить имена профилей не помеченным циклам, чья достоверность совпадения превышает порог",
    "cancel": "Отмена",
    "clear_debug": "Очистить отладочные данные",
    "clear_splits": "Очистить",
    "close": "Закрыть",
    "compare": "Сравнить",
    "confirm": "Подтвердить",
    "convert_to_automation": "Преобразовать в автоматизацию",
    "correct": "Исправить…",
    "create": "Создать",
    "create_from_cluster": "Создать профиль из {count} циклов",
    "create_profile": "+ Создать профиль",
    "delete": "Удалить",
    "delete_group": "Удалить группу",
    "delete_group_tip": "Удалить только эту группу – профили участников останутся",
    "delete_profile": "Удалить профиль",
    "discard": "Отменить",
    "discard_tip": "Отменить запись без сохранения",
    "dismiss": "Закрыть",
    "done": "Готово",
    "edit": "Редактировать",
    "export": "Экспортировать",
    "export_json": "Экспорт в JSON",
    "force_stop": "Принудительная остановка",
    "force_stop_tip": "Немедленно завершить текущий цикл и пометить его как принудительно остановленный",
    "from_template": "Из шаблона ▾",
    "ignore": "Игнорировать",
    "import_json": "Импорт из JSON",
    "import_overwrite": "Импорт (перезаписать данные)",
    "inspect": "Проверить",
    "label": "Пометить",
    "load": "Загрузить",
    "load_more": "Загрузить ещё",
    "manage": "Управление",
    "merge": "Объединить",
    "new_automation": "＋ Новая автоматизация",
    "new_group": "+ Новая группа",
    "new_group_tip": "Сгруппировать почти одинаковые профили (одинаковая форма/продолжительность, разная температура или отжим), чтобы система сопоставления надёжно выбирала между ними",
    "new_phase": "+ Новая фаза",
    "new_profile": "+ Новый профиль",
    "new_profile_tip": "Создать новый профиль программы из существующего помеченного цикла или записи",
    "on_cycle_finished": "По завершении цикла",
    "on_cycle_started": "При запуске цикла",
    "pause_cycle": "Пауза",
    "pause_cycle_tip": "Приостановить текущий цикл – прибор продолжит работу с того места, где остановился",
    "pg_apply_device": "Применить к устройству",
    "pg_autofill": "Автозаполнение",
    "play": "Воспроизвести",
    "process": "Обработать",
    "process_history": "Обработать сейчас",
    "process_recording": "Сохранить запись",
    "process_tip": "Сохранить запись как новый или существующий профиль",
    "rebuild": "Перестроить огибающие",
    "rebuild_envelope": "Перестроить огибающую",
    "rebuild_tip": "Пересчитать ожидаемую огибающую мощности (полоса мин./макс.) для всех профилей по помеченным циклам – запустить после пометки новых циклов или исправления старых",
    "rec_start_tip": "Начать запись потребления мощности прибора – запустить непосредственно перед началом цикла",
    "rec_stop": "Стоп",
    "rec_stop_tip": "Остановить запись и сохранить захваченные данные для просмотра",
    "record": "Начать запись",
    "refresh": "Обновить",
    "refresh_diag_tip": "Обновить статистику хранилища",
    "refresh_logs_tip": "Обновить последние записи журнала",
    "refresh_settings_tip": "Обновить настройки с сервера",
    "relabel": "Изменить метку ({count})",
    "remove": "Удалить",
    "remove_timer": "Удалить таймер",
    "reset": "Сбросить",
    "reset_ml_models_tip": "Откажитесь от доработанных моделей и вернитесь к встроенным. WashData может переучить их позже.",
    "reset_to_builtin": "Сбросить до встроенных моделей",
    "reset_to_defaults": "Сбросить до значений по умолчанию",
    "resume_cycle": "Возобновить цикл",
    "resume_cycle_tip": "Возобновить приостановленный цикл",
    "revert_settings": "Отменить изменения",
    "revert_settings_tip": "Восстановить настройки до последнего сохранения",
    "revert_settings_tip_none": "Сначала сохраните, чтобы активировать отмену",
    "revert": "Вернуть",
    "revert_to_previous": "Восстановить прежнее значение этой настройки",
    "review": "Оценить",
    "run": "Запустить",
    "run_analysis": "🔍 Запустить анализ предложений",
    "run_analysis_tip": "Проанализируйте свои записанные циклы прямо сейчас и обновите предложения по настройке",
    "run_auto_label": "Запустить авто-пометку",
    "run_both": "Запустить A и B",
    "run_simulation": "Запустить симуляцию",
    "save": "Сохранить",
    "save_access_control": "Сохранить управление доступом",
    "save_group": "Сохранить группу",
    "save_panel_settings": "Сохранить настройки панели",
    "save_phases": "Сохранить фазы",
    "save_preferences": "Сохранить настройки",
    "save_reminders": "Сохранить напоминания",
    "save_review": "Сохранить проверку",
    "save_settings": "Сохранить настройки",
    "select": "Выбрать",
    "select_all": "Выбрать все",
    "select_last20": "Последние 20",
    "select_none": "Снять выбор",
    "show_only": "Показать только",
    "skip_setup": "Пропустить настройку",
    "split": "Разбить",
    "stop": "Остановить",
    "submit_correction": "Отправить исправление",
    "train_now": "Обучить сейчас",
    "trim": "Обрезать",
    "trim_split": "Обрезать / Разбить",
    "undo": "Отменить",
    "use": "Использовать",
    "wipe_all": "Удалить все данные",
    "delete_selected": "Удалить выбранные ({n})",
    "group_suggest": "Группа {n}: {members}",
    "pg_apply_best": "Применить лучшее",
    "pg_apply_to_settings": "Сохранить в настройки",
    "pg_apply_to_settings_tip": "Скопировать значения, изменённые здесь, в активные настройки этого устройства",
    "search": "Поиск",
    "import": "Импортировать",
    "disconnect": "Отключить",
    "connect_github": "Подключить GitHub",
    "save_appliance": "Сохранить устройство",
    "share_to_store": "Поделиться в магазине",
    "share": "Поделиться",
    "confirm_appliance": "Подтвердить это устройство",
    "confirmed": "Подтверждено",
    "browse_community_setups": "Обзор конфигураций сообщества",
    "download_device": "Скачать конфигурацию устройства",
    "share_device": "Поделиться конфигурацией устройства",
    "share_device_tip": "Поделиться программами и настройками этого устройства с сообществом",
    "share_n": "Поделиться: {n} программ{s}"
  },
  "conflict": {
    "anti_wrinkle_exit": {
      "exit": "Должен быть ниже Порога Остановки ({stop} Вт); иначе мощность выхода из режима защиты от морщин игнорируется",
      "stop": "Должен быть выше Порога Мощности Выхода из Режима Защиты от Морщин ({exit} Вт)"
    },
    "anti_wrinkle_max": {
      "max": "Должен быть выше Порога Запуска ({start} Вт); иначе ограничение длительности защиты от морщин обходится",
      "start": "Должен быть ниже Макс. Мощности Защиты от Морщин ({max} Вт)"
    },
    "attn_sub": "Исправьте конфликты перед сохранением",
    "attn_title": "{n} конфликт{s} настроек",
    "settings_banner": "{n} конфликт{s} настроек – проверьте выделенные разделы и исправьте перед сохранением.",
    "settings_banner_btn": "К первому",
    "confidence": {
      "auto": "Должен быть не ниже Порога Совпадения ({match})",
      "learning": "Должен быть не выше Порога Совпадения ({match})",
      "match_for_auto": "Должен быть не выше Уверенности Авто-Маркировки ({alc})",
      "match_for_learning": "Должен быть не ниже Уверенности Обучения ({lc})"
    },
    "duration_ratio": {
      "max": "Должен быть больше Мин. Соотношения Длительности ({min})",
      "min": "Должен быть меньше Макс. Соотношения Длительности ({max})"
    },
    "hysteresis": {
      "start": "Должен быть выше Порога Остановки ({stop} Вт)",
      "stop": "Должен быть ниже Порога Запуска ({start} Вт)"
    },
    "min_power": {
      "min_power": "Должен быть не выше Порога Остановки ({stop} Вт)",
      "stop": "Должен быть не ниже Минимальной Мощности ({min} Вт)"
    },
    "no_update_timeout": {
      "timeout": "Должен быть больше Интервала Watchdog ({wi} с)",
      "watchdog": "Должен быть меньше Таймаута Без Обновления ({to} с)"
    },
    "off_delay": {
      "gap": "Минимальная Пауза Выключения должна быть не менее Задержки Выключения ({delay} с)",
      "off_delay": "Задержка Выключения ({off_delay} с) превышает Минимальную Паузу Выключения ({gap} с); последовательные циклы могут объединиться"
    },
    "power_off": {
      "stop": "Должен быть выше Порога Выключения Питания ({pot} Вт)",
      "threshold": "Должен быть ниже Порога Остановки ({stop} Вт), чтобы вступить в действие"
    },
    "pump_stuck": {
      "duration": "Должен быть меньше Таймаута Без Обновления ({to} с), чтобы сигнал застрявшего насоса срабатывал раньше watchdog-а",
      "timeout": "Должен превышать Длительность Застрявания Насоса ({ps} с), чтобы сигнал застрявшего насоса срабатывал до принудительной остановки цикла"
    },
    "start_dur": {
      "sampling": "Интервал Выборки превышает Длительность Запуска ({sdt} с); одиночные выбросы могут открыть цикл",
      "threshold": "Должен быть не менее одного Интервала Выборки ({si} с), чтобы предотвратить фальстарты от одиночного отсчёта"
    },
    "unmatch": {
      "match": "Должен быть выше Порога Несовпадения ({un})",
      "unmatch": "Должен быть ниже Порога Совпадения ({match}); иначе принятое совпадение немедленно теряется"
    },
    "cascade_toast": "Для согласованности также автоматически изменено ещё {n} параметр{s}.",
    "suggestion_resolves": "Активируйте ожидающее предложение ({val}) ниже, чтобы исправить это",
    "use_fix": "Использовать {val}",
    "watchdog": {
      "interval": "Должен быть не менее 2x Интервала Выборки ({si} с)",
      "sampling": "Интервал Выборки должен быть не более половины Интервала Watchdog ({wi} с)"
    }
  },
  "hdr": {
    "ab_comparison": "Сравнение настроек A/B",
    "access_control": "Управление доступом",
    "add_maintenance": "Добавить событие обслуживания",
    "automation_delete": "Удалить эту автоматизацию",
    "automation_needs_review": "Этот цикл требует проверки",
    "automation_open": "Открыть в редакторе автоматизаций",
    "automation_review_this_cycle": "Проверить этот цикл",
    "automations": "Автоматизации",
    "clear_debug": "Очистить отладочные данные",
    "cycle_simulator": "Симулятор циклов",
    "diagnostics_pref": "Диагностика",
    "display": "Отображение",
    "dtw_inspector": "Инспектор DTW",
    "export_import": "Экспорт / Импорт",
    "getting_started": "Начало работы",
    "live_power": "Текущая мощность",
    "logs": "Журналы",
    "logs_diagnostics": "Диагностика",
    "maintenance": "Действия по обслуживанию",
    "maintenance_log": "Журнал обслуживания",
    "maintenance_reminders": "Напоминания об обслуживании",
    "manual_recording": "Ручная запись",
    "manual_recording_tip": "Запустите цикл намеренно, пока WashData записывает потребление мощности. Нажмите «Запись» перед запуском прибора, «Стоп» по завершении, затем «Обработать», чтобы сохранить как именованный профиль.",
    "ml_learned": "Что WashData узнал",
    "ml_matching_tuning": "Точная настройка распознавания программ",
    "ml_settings_card": "Настройки",
    "ml_smart_learning": "Умное обучение",
    "my_preferences": "Мои настройки",
    "no_automations": "Пока нет автоматизаций, ссылающихся на это устройство.",
    "panel_settings": "Настройки панели",
    "param_sweep": "Перебор параметра",
    "phase_catalog": "Каталог фаз",
    "playground": "Песочница",
    "process_history": "История процессов",
    "settings_history": "История настроек",
    "status": "Статус",
    "status_graph": "График статуса",
    "storage_stats": "Статистика хранилища",
    "test_history": "Проверка на истории",
    "toggle_sidebar": "Переключить боковую панель Домашнего помощника",
    "tools_and_data": "Инструменты и данные",
    "wipe_history": "Очистить историю",
    "recommendations": "Рекомендации ({n})",
    "pg_detection_params": "Настройки обнаружения",
    "pg_timeline": "Хронология событий",
    "pg_outcome": "Результат симуляции",
    "pg_across_cycles": "По всем вашим циклам",
    "community_store": "Магазин сообщества",
    "online_account": "Магазин сообщества и онлайн-функции"
  },
  "health": {
    "fair": "Приемлемое качество профиля",
    "good": "✓ Хорошее качество профиля",
    "poor": "⚠ Низкое качество профиля"
  },
  "lbl": {
    "actions": "Действия",
    "activity": "Активность",
    "administrators": "Администраторы",
    "aria_compare_chart": "График сравнения циклов",
    "aria_cycle_chart": "Кривая мощности цикла",
    "aria_envelope_chart": "График огибающей мощности профиля",
    "aria_phase_chart": "График редактора фаз",
    "aria_playground_chart": "Кривая мощности цикла с перетаскиваемыми порогами обнаружения",
    "aria_power_chart": "График потребления мощности",
    "aria_spaghetti_chart": "Наложенные кривые мощности циклов",
    "aria_sweep_chart": "График результатов перебора параметров",
    "artifact_anomaly": "Аномалия",
    "artifact_high_power": "Высокая мощность",
    "artifact_interruption": "Прерывание",
    "artifact_low_power": "Низкая мощность",
    "auto_detect": "Автоопределение",
    "auto_fine_tune_off": "авто-точная настройка выключена",
    "auto_fine_tune_on": "авто-точная настройка включена (около {hour}:00)",
    "avg_cost": "Средняя стоимость",
    "change": "Изменение",
    "clock_time": "Время",
    "cohesion_good": "сплочённость {pct}%",
    "cohesion_low": "⚠ низкая сплочённость {pct}%",
    "compare_profiles": "Сравнить с профилями",
    "concurrency": "Параллельность",
    "confidence": "Достоверность",
    "confidence_threshold": "Порог достоверности",
    "correct_duration": "Исправить продолжительность (мин, необязательно)",
    "correct_profile": "Исправить профиль",
    "correlation": "Корреляция",
    "cost": "Стоимость",
    "create_new_profile": "+ Создать новый профиль…",
    "current_phase": "Текущая фаза",
    "curves": "Кривые",
    "cycle": "Цикл",
    "cycle_date_display": "Отображение даты цикла",
    "cycle_health": "Качество цикла",
    "cycle_index": "индекс цикла →",
    "cycles": "Циклы",
    "cycles_count": "Циклы",
    "cycles_lc": "циклов",
    "dashed": "пунктир",
    "date": "Дата",
    "debug_traces": "Отладочные данные",
    "default": "По умолчанию",
    "default_access_level": "Уровень доступа по умолчанию для пользователей, не указанных ниже",
    "default_other": "По умолчанию (другие устройства)",
    "default_tab": "Вкладка по умолчанию при открытии панели",
    "delta": "Δ",
    "description": "Описание",
    "dtw_blend_w": "Вес смешивания",
    "dtw_blended": "Смешанный балл",
    "dtw_ddtw": "Балл DDTW",
    "dtw_l1": "Балл L1",
    "dtw_matched_profile": "(сопоставленный профиль цикла)",
    "duration": "Продолжительность",
    "duration_agreement": "Совпадение по длительности",
    "emphasis": "Акцент",
    "enable_access_control": "Включить контроль доступа для каждого пользователя",
    "energy": "Энергия",
    "energy_agreement": "Совпадение по энергии",
    "event_timeline": "Хронология событий",
    "event_type": "Тип события",
    "expected": "Ожидаемо",
    "expected_duration": "Ожидаемая продолжительность (мин)",
    "file_kb": "Файл (кБ)",
    "final_score": "Итоговый балл",
    "from": "От",
    "gap_s": "Пауза (с)",
    "group_name": "Название группы",
    "head_trim": "Обрезка начала (с)",
    "health": "Качество",
    "hide_tabs": "Скрыть вкладки для не-администраторов",
    "in_use": "Используется",
    "json_data": "Данные JSON",
    "label": "Сопоставленная программа",
    "last": "Последние",
    "last_checked": "Последняя проверка:",
    "load_from_file": "Загрузить из файла",
    "mae_score": "Балл MAE",
    "manual_duration": "Ручная продолжительность (мин, необязательно)",
    "match": "Совпадение",
    "members": "Участники",
    "metric": "Метрика",
    "mode_existing_profile": "Добавить к существующему профилю",
    "mode_new_profile": "Создать новый профиль",
    "models_fine_tuned": "({count} модель{plural} точно настроено)",
    "n_classic_suggestions": "{n} классических",
    "n_ml_suggestions": "{n} ML",
    "n_selected": "{n} выбрано",
    "n_tuning_suggestions": "{n} предложение по настройке",
    "na": "н/д",
    "new_profile_name": "Новое имя профиля",
    "notes": "Заметки",
    "of": "из",
    "outcome": "Результат",
    "panel_default_tab": "Вкладка по умолчанию",
    "panel_language": "Язык панели",
    "per_cycle_short": "цикл",
    "pg_autofill_tip": "Автозаполнить диапазон из текущего значения ({lo}–{hi})",
    "pg_best_value": "Найдено лучшее значение",
    "pg_current_value": "Текущее значение:",
    "pg_drag_hint": "Перетащите линию на графике",
    "pg_dtw": "DTW",
    "pg_ev_ending": "Завершение",
    "pg_ev_running": "Работает",
    "pg_group_advanced": "Особые случаи",
    "pg_group_detection": "Триггеры обнаружения",
    "pg_group_timing": "Правила времени",
    "pg_idle": "Ожидание",
    "pg_last_run": "Последний запуск: {date}",
    "pg_match_score": "Оценка совпадения",
    "pg_pct_of": "{p}% из {total}",
    "pg_poor_match": "Плохое совпадение",
    "pg_strong_match": "Сильное совпадение",
    "pg_tile_ambiguous": "Неоднозначно",
    "pg_tile_ambiguous_tip": "Циклы с почти равным совпадением двух программ",
    "pg_tile_detected": "Обнаружено",
    "pg_tile_detected_tip": "Циклы, в которых мощность превышала порог запуска достаточно долго, чтобы засчитаться как работа",
    "pg_tile_matched": "Сопоставлено",
    "pg_tile_matched_tip": "Циклы, правильно отнесённые к известной программе",
    "pg_time_left": "Осталось времени",
    "pg_weak_match": "Слабое совпадение",
    "phase_name": "Имя",
    "phase_timeline": "Хронология фаз",
    "power": "Мощность",
    "profile": "Профиль",
    "profile_index": "индекс профиля →",
    "profile_name": "Имя профиля",
    "program": "Программа",
    "program_tip": "Замените, какой профиль сопоставляется с текущим циклом. Авто-определение позволяет интеграции автоматически выбирать наилучшее совпадение. Закрепите конкретную программу, чтобы принудительно сопоставить её, если авто-определение ошибается или вы знаете, что запущено.",
    "progress": "Прогресс",
    "raw_socket": "Необработанный сокет",
    "read_only": "Только чтение",
    "ref_cycle": "Эталонный цикл (необязательно)",
    "refresh_interval": "Интервал обновления (с)",
    "remaining": "Осталось",
    "reminder_every": "Напоминать каждые (циклы)",
    "remove_label": "- Удалить метку -",
    "rename_profile": "Переименовать профиль",
    "replay_duration": "Воспроизведение",
    "resulting_profile": "Результирующий профиль",
    "save_mode": "Режим сохранения",
    "score": "Балл",
    "score_breakdown": "Разбивка балла",
    "seconds_from_start": "Секунды от начала",
    "select_profile": "Выбрать профиль",
    "setting": "Настройка",
    "settings_a": "Настройки A (текущие)",
    "settings_a_short": "A",
    "settings_advanced": "Дополнительно",
    "settings_b": "Настройки B (тест)",
    "settings_b_short": "B",
    "settings_basic": "Основные",
    "settings_detail_level": "Уровень детализации настроек",
    "settings_overrides": "Переопределения настроек",
    "show_debug": "Показать отладочную карточку на странице статуса (достоверность, неоднозначность, лучшие кандидаты)",
    "show_expected": "Показать ожидаемую кривую (сопоставленный профиль, оранжевый)",
    "show_raw": "Показать переключатель необработанных данных розетки на графике мощности в реальном времени",
    "sparkline": "Недавняя динамика длительности циклов",
    "stage2": "Этап 2 – базовое сходство",
    "stage3": "Этап 3 – DTW",
    "stage4": "Этап 4 – совпадение",
    "status": "Статус",
    "tail_trim": "Обрезка конца (с)",
    "timer_auto_pause": "Авто-пауза",
    "timer_min": "мин",
    "timer_msg_placeholder": "Сообщение (необязательно, {device}/{program}/{minutes})",
    "to": "До",
    "ungrouped": "Без группы",
    "unlabelled": "Без метки",
    "unlabelled_paren": "(без метки)",
    "warp_path": "Путь деформации",
    "input": "Ввод:",
    "start": "Начало",
    "end": "Конец",
    "unit_s": "(с)",
    "reviewed_on": "рассмотрено {date}",
    "unknown": "Неизвестно",
    "quality": "Качество",
    "tags": "Теги",
    "at": "в",
    "pct_match_confidence": "{pct}% достоверность совпадения",
    "ha_restarted": "HA перезапущен",
    "from_start": "От начала",
    "to_end": "До конца",
    "click_to_select": "нажмите, чтобы выбрать",
    "envelope": "Огибающая",
    "zoom_hint": "прокрутка для масштаба · двойной клик для сброса",
    "loading_paren": "(загрузка…)",
    "time_remaining": "~{v} осталось",
    "no_duration": "нет продолжительности",
    "duration_avg": "~{v}м в среднем",
    "name_placeholder": "(имя)",
    "n_shown": ", показано {n}",
    "cycles_title": "Циклы ({n})",
    "pg_detecting": "Обнаружение",
    "pg_best_marker": "Лучшее: {v}",
    "pg_time_left_model": "Осталось времени (модель)",
    "pg_time_left_model_tip": "Оценка оставшегося времени моделью (оценщик фаз + ML), а не статичный отсчёт",
    "phase": "Фаза",
    "pg_mode_simulate": "Симуляция",
    "pg_mode_history": "Проверка на истории",
    "pg_mode_sweep": "Перебор",
    "pg_ev_detected": "Обнаружено",
    "pg_ev_match": "Совпадение принято",
    "pg_ev_match_changed": "Совпадение изменено",
    "pg_ev_ambiguous": "Неоднозначно",
    "pg_ev_unmatched": "Без совпадения",
    "pg_ev_notify_start": "Уведомление о старте",
    "pg_ev_notify_pre": "Уведомление «почти готово»",
    "pg_ev_notify_finish": "Уведомление о завершении",
    "pg_ev_notify_milestone": "Уведомление о вехе",
    "pg_ev_notify_held": "Уведомление отложено (тихие часы)",
    "pg_ev_finished": "Завершено",
    "pg_ended": "Окончено",
    "pg_proj_energy": "Прогн. энергия",
    "pg_alert_overrun": "Дольше обычного",
    "pg_alert_underrun": "Короче обычного",
    "pg_alert_did_not_finish": "Не завершился",
    "pg_alert_false_end": "Разбит на несколько циклов",
    "pg_alert_unmatched": "Без совпадения",
    "pg_alert_ambiguous": "Неоднозначное совпадение",
    "pg_alert_energy": "Аномалия энергии",
    "pg_newly_correct": "стало верным",
    "pg_regressed": "стало хуже",
    "pg_end_timing_changed": "время завершения изменилось",
    "pg_vs_current": "против текущего",
    "pg_fixed": "исправлено",
    "pg_broke": "сломалось",
    "pg_sweep_param": "Параметр",
    "pg_objective": "Цель",
    "pg_steps": "Шаги",
    "pg_sweep_2d": "2D тепловая карта",
    "pg_sweep_param_y": "2-й параметр",
    "pg_obj_match": "Точность совпадений",
    "pg_obj_endtiming": "Точность завершения",
    "pg_obj_falseend": "Частота ложных завершений",
    "pg_obj_overrun": "Отклонение длительности",
    "pg_obj_ambiguity": "Частота неоднозначности",
    "pg_best_combo": "лучшая комбинация",
    "pg_mode_optimize": "Оптимизировать",
    "pg_group_matching": "Сопоставление программ",
    "pg_zoom_hint": "двойной щелчок сбрасывает масштаб",
    "aria_playground_chart2": "Интерактивный график мощности цикла: наведите, чтобы увидеть время/мощность, прокрутите для масштабирования, перетащите для панорамирования",
    "pg_alert_timeout_end": "Завершено по тайм-ауту, а не по прогнозу",
    "pg_alert_indefinite": "Работал бы бесконечно",
    "task_pg_history": "Тест на истории",
    "task_pg_sweep": "Оптимизация",
    "task_reprocess": "Повторная обработка",
    "task_ml_training": "Обучение",
    "eta_secs": "осталось ~{n} с",
    "eta_mins": "осталось ~{n} мин",
    "pg_recent_runs": "Недавние запуски",
    "pg_load_run": "Перезагрузить этот запуск",
    "pg_match_confidence": "Достоверность совпадения",
    "pg_envelope_fit": "Соответствие огибающей",
    "pg_envelope_fit_tip": "Насколько точно цикл вписывается в сохранённую огибающую мощности этого профиля, иной взгляд, чем достоверность совпадения.",
    "n_imported_note": ", {n} импортировано",
    "enable_online": "Включить онлайн-функции",
    "store_brand": "Бренд устройства",
    "store_model": "Модель устройства",
    "anonymous": "Анонимно",
    "rate_quality": "Оценить качество",
    "rate_n": "{n} звёзд",
    "approved_only": "Только одобренные",
    "adopt_settings": "Принять настройки",
    "flags": "Метки",
    "include_phase_map": "Включить карту фаз",
    "include_settings": "Включить настройки",
    "show_contributor": "Показать автора",
    "task_pg_detail": "Смоделировать цикл",
    "task_split": "Разделение цикла",
    "task_trim": "Обрезка цикла",
    "task_merge": "Объединение циклов",
    "task_rebuild": "Пересчёт огибающих"
  },
  "log": {
    "all_levels": "Все уровни",
    "all_devices": "Все устройства",
    "all_components": "Все компоненты",
    "search_ph": "Поиск в журналах…"
  },
  "ml": {
    "builtin_models": "● Использует встроенные модели",
    "fit_fair": "Приемлемо",
    "fit_good": "Хорошо",
    "fit_slight": "Незначительное",
    "fit_strong": "Сильное",
    "fit_weak": "Слабое",
    "fit_word": "соответствие",
    "personalized": "● Настроено под эту машину",
    "better_than_baseline": "{pct}% лучше базовой оценки ({metric})",
    "trend_improving_tip": "Соответствие этой модели улучшилось за последние повторные проверки.",
    "trend_declining_tip": "Соответствие этой модели ухудшилось за последние повторные проверки; проверка большего числа циклов может помочь ей переобучиться.",
    "trend_steady_tip": "Соответствие этой модели оставалось примерно стабильным за последние повторные проверки.",
    "cap_blurb": {
      "end": "Определение момента, когда цикл действительно завершился",
      "live_match": "Более раннее распознавание запущенной программы",
      "quality": "Выявление ошибочно определённых или повреждённых циклов",
      "remaining_time": "Прогноз оставшегося времени",
      "total_energy": "Прогноз общего расхода энергии и стоимости"
    },
    "cap_label": {
      "end": "Определение конца цикла",
      "live_match": "Распознавание программы",
      "quality": "Проверка качества цикла",
      "remaining_time": "Оценка оставшегося времени",
      "total_energy": "Оценка энергопотребления"
    },
    "metric_auc": "AUC {auc} на отложенных данных",
    "metric_mae": "ошибка {model} против базовой модели {baseline}"
  },
  "modal": {
    "auto_label": "Автоматическая пометка циклов",
    "correct_feedback": "Исправить отзыв",
    "create_profile": "Создать профиль",
    "cycle": "Цикл",
    "edit_group": "Редактировать группу профилей",
    "edit_phase": "Редактировать фазу",
    "import_config": "Импортировать конфигурацию",
    "label_cycle": "Пометить цикл",
    "merge_cycles": "Объединить {n} циклов",
    "new_group": "Новая группа профилей",
    "new_phase": "Новая фаза",
    "process_history_msg": "Повторно запустите сопоставление, обновите предложения, переобучите ML (если включено) и пересчитайте качество циклов для всех сохранённых циклов. Это может занять некоторое время.",
    "process_history_ok": "Обработать",
    "process_history_title": "Обработка истории",
    "process_recording": "Обработать запись",
    "delete_maintenance_msg": "Удалить эту запись об обслуживании? Это действие нельзя отменить.",
    "delete_maintenance_title": "Удалить событие обслуживания",
    "relabel_cycles": "Изменить метку у {count} циклов",
    "delete_automation_title": "Удалить автоматизацию",
    "delete_automation_msg": "Удалить автоматизацию «{name}» из Home Assistant? Это действие нельзя отменить.",
    "remove_legacy_title": "Удалить устаревшие действия",
    "remove_legacy_msg": "Удалить устаревшие пользовательские действия? Они перестанут срабатывать при событиях цикла. Это нельзя отменить из панели.",
    "discard_recording_title": "Отклонить запись",
    "discard_recording_msg": "Отклонить сохранённую запись? Это действие нельзя отменить.",
    "dismiss_all_title": "Отклонить все отзывы",
    "dismiss_all_msg": "Отклонить все {count} ожидающих запросов обратной связи?",
    "dismiss_all_ok": "Отклонить все",
    "delete_phase_title": "Удалить фазу",
    "delete_phase_msg": "Удалить фазу «{name}»?",
    "clear_debug_title": "Очистить отладочные данные",
    "clear_debug_msg": "Удалить все сохранённые отладочные трассировки?",
    "wipe_all_title": "Удалить все данные",
    "wipe_all_msg": "⚠️ Это навсегда удалит ВСЕ циклы и профили. Это действие нельзя отменить.",
    "wipe_all_ok": "Удалить всё",
    "force_stop_title": "Принудительно остановить цикл",
    "force_stop_msg": "Принудительно остановить активный цикл сейчас? Цикл будет сохранён как прерванный.",
    "store_import": "Импорт эталонного цикла",
    "store_share": "Поделиться в магазине сообщества",
    "store_share_device": "Поделиться конфигурацией устройства"
  },
  "msg": {
    "appliance_monitor": "Монитор прибора",
    "artifact_dip_detail": "Мощность упала ниже обычного диапазона на ~{n}с.",
    "artifact_footer": "Выделено на графике выше. Это временные артефакты (например, дверь открылась в середине цикла), а не обязательно проблемы.",
    "artifact_header": "В этом цикле обнаружено {n} аномалий",
    "artifact_pause_detail": "Мощность упала почти до нуля на ~{n}с, затем возобновилась – вероятно, дверца была открыта в середине цикла или цикл был приостановлен.",
    "artifact_spike_detail": "Мощность вышла за пределы обычного диапазона на ~{n}с.",
    "auto_label_intro": "Назначить профили не помеченным циклам, чьё совпадение превышает порог.",
    "automations_intro": "WashData запускает события {start} / {end} и предоставляет объекты, поэтому уведомления и действия лучше всего строить как обычные автоматизации Home Assistant. Автоматизации, использующие это устройство, отображаются ниже.",
    "cleanup_intro": "Все помеченные циклы наложены. Отметьте выбросы и удалите для очистки профиля.",
    "clear_debug_hint": "Удалите сохраненные данные отладки, чтобы освободить место.",
    "collecting_data": "Сбор данных – ещё {need} цикл{plural} до начала точной настройки ({current}/{min}).",
    "compare_overlay_profiles": "Наложить профили (бледные)",
    "compare_profiles_tip": "Наложите конверты других профилей на диаграмму выше, чтобы увидеть, какой из них лучше всего подходит для этого цикла.",
    "compare_selected_cycles": "Выбранные циклы (чёткие) – показать / скрыть",
    "consider_new_profile": "Рассмотрите возможность создания нового профиля.",
    "coverage_gap": "последние циклы не имеют соответствующего профиля ({pct}% из последних 30).",
    "coverage_gap_similar_cycles": "Найдено {count} похожих непомеченных циклов – создайте профиль, чтобы начать их сопоставление.",
    "cycles_deleted": "Удалено циклов: {count}",
    "enough_data": "Достаточно данных для обучения ({current}/{min} циклов).",
    "export_description": "Экспортируйте все профили и циклы в JSON или восстановите данные из предыдущего экспорта.",
    "feedback_cycles_pending": "{n} цикл{s} для проверки",
    "feedback_prompt": "Подтвердите правильность, исправьте программу или проигнорируйте.",
    "filter_by_profile": "Фильтр по профилю…",
    "group_modal_help": "Групповые программы одинаковой формы, отличающиеся температурой/отжимом (продолжительность может варьироваться). При сопоставлении группа оценивается как один кандидат, а затем выбирается наиболее подходящий член. Выберите хотя бы 2; наложение показывает, насколько они похожи.",
    "group_not_cohesive": "Эти профили недостаточно похожи, чтобы их можно было надежно сгруппировать, поэтому сопоставление обрабатывает их индивидуально, пока вы не удалите выброс или не разделите группу.",
    "group_preview_hint": "Отметьте 2 или более участников, чтобы предварительно просмотреть и сравнить их кривые мощности.",
    "import_intro": "Загрузите экспортированный файл или вставьте JSON ниже.",
    "legacy_actions_title": "{count} устаревшее специальное действие все еще работает",
    "live_chart_loading": "График мощности появится по мере поступления показаний.",
    "loading": "Загрузка…",
    "loading_curve": "Загрузка кривой…",
    "loading_settings": "Загрузка настроек…",
    "log_buffer_hint": "Сначала самые новые · буферизует последние 500 записей ha_washdata с момента перезапуска · перетащите нижний край, чтобы изменить размер.",
    "maintenance_advisory": "Увеличение продолжительности/энергии может указывать на необходимость технического обслуживания устройства (например, удаление накипи, очистка фильтра).",
    "maintenance_due": "Требуется обслуживание: {items}",
    "maintenance_intro": "Записывайте обслуживание этого прибора и получайте напоминания, когда придёт время выполнить каждую задачу снова.",
    "maintenance_load_error": "Не удалось загрузить данные обслуживания: {error}",
    "maintenance_requires_access": "Обслуживание и экспорт/импорт требуют полного доступа.",
    "manual_duration_hint": "Средняя/ожидаемая длина цикла профиля, используемая для оценки оставшегося времени. Измените, чтобы установить его; оставляя его без изменений, сохраняется текущее значение.",
    "matching_tuning_intro": "При обучении WashData также регулирует, насколько сопоставление программ учитывает форму, продолжительность и энергию.",
    "merge_intro": "Выбранные циклы объединяются в один (хронологический порядок; пропуски заполняются 0 Вт). Выберите результирующий профиль.",
    "ml_intro": "WashData поставляется с умными моделями, которые работают сразу после установки.",
    "ml_learned_intro": "Модели, настроенные под эту машину.",
    "ml_loading": "загрузка ML…",
    "ml_settings_intro": "Два независимых переключателя: один применяет модели во время работы цикла, другой позволяет WashData постепенно настраивать их под вашу машину.",
    "name_first_program": "Циклов достаточно – назовите первую программу, чтобы начать сопоставление.",
    "near_duplicate_cluster": "Обнаружен почти повторяющийся кластер профилей. Группировка позволяет надежно выбирать одинаковые программы (например, одна и та же программа при разной температуре/отжиме).",
    "no_cycles_match": "Нет циклов, соответствующих текущему фильтру.",
    "no_cycles_profile": "Нет циклов для этого профиля.",
    "no_cycles_selected": "Сначала выберите хотя бы один цикл.",
    "no_cycles_yet": "Циклы пока не записаны.",
    "no_device_selected": "Устройство не выбрано.",
    "no_devices": "Устройства WashData ещё не настроены.",
    "no_envelope": "Огибающей пока нет – перестройте после пометки циклов.",
    "no_envelope_overlay": "Нет доступной огибающей для наложения.",
    "no_fine_tuned": "Ещё ничего не настроено – WashData использует встроенные модели.",
    "no_logs": "Журналы пока не буферизованы.",
    "no_maintenance": "Обслуживание ещё не записано.",
    "no_match_yet": "Попыток совпадения пока нет – заполняется во время работы цикла.",
    "no_other_users": "Других пользователей Home Assistant не найдено.",
    "no_phases": "Фазы не определены.",
    "no_phases_assigned": "Фазы не назначены.",
    "no_profiles_compare": "Нет профилей для сравнения.",
    "no_profiles_overlay": "Нет профилей для наложения.",
    "no_profiles_yet": "Профилей пока нет. Создайте из помеченного цикла.",
    "no_profiles_yet_short": "Профилей пока нет.",
    "no_settings_match": "Нет настроек, соответствующих \"{q}\"",
    "no_split_points": "Точек разбивки пока нет.",
    "no_suggestions": "Нет активных предложений.",
    "notify_services_hint": "Используйте ID сервисов {entity} (через запятую для нескольких). Переменные шаблона: {vars}.",
    "old_actions_warning": "Настроен со старым редактором действий (теперь удален). Они по-прежнему срабатывают при событиях цикла, но их больше нельзя редактировать здесь. Преобразуйте их в обычную автоматику или удалите.",
    "onboarding_progress": "Наблюдалось циклов: {n} / 3",
    "onboarding_watching": "Используйте прибор как обычно – WashData наблюдает. После 3 циклов начнётся сопоставление программ.",
    "pending_feedback": "Ожидает отзыва об обнаружении",
    "performance_trend": "Тенденция производительности ({n} циклов)",
    "pg_analysis_empty": "Загрузите цикл, чтобы увидеть анализ совпадения.",
    "pg_apply_confirm": "Применить лучшее значение: {label} = {value}?",
    "pg_canvas_empty": "Выберите цикл выше, затем нажмите «Загрузить», чтобы увидеть его график мощности.",
    "pg_chart_caption": "Доля обнаружения/совпадения по значениям {param}",
    "pg_match_rate": "{pct}% совпадений на {total} циклах",
    "pg_restart_note": "Перезапустите Home Assistant, чтобы включить инструменты симуляции.",
    "pg_sim_progress": "{done} / {total} циклов",
    "pg_starting": "Запуск…",
    "pg_sweep_intro": "Что если бы {param} было другим? Проверьте {steps} значений на ваших последних {cycles} циклах, чтобы найти настройку, при которой правильно сопоставляется больше всего циклов.",
    "pg_sweep_step": "Шаг {done} / {total}",
    "pg_undetected": "{n} цикл{s} не обнаружено",
    "pg_verdict_bad": "Требует внимания: многие циклы остаются необнаруженными.",
    "pg_verdict_good": "Хорошо настроено: большинство циклов правильно определяются и сопоставляются.",
    "pg_verdict_ok": "Приемлемо: некоторые циклы пропущены. Попробуйте снизить порог запуска.",
    "phase_catalog_intro": "Именованные сегменты цикла (предстирка, нагрев, отжим…). Назначайте их профилю из его панели управления.",
    "phase_ranges_intro": "Диапазоны фаз (минуты от начала цикла) наложены на среднюю кривую. Изменяйте значения для предварительного просмотра.",
    "playground_intro": "Безопасная песочница для повторного прогона прошлых циклов с другими настройками, сравнения двух конфигураций бок о бок и проверки того, как цикл выравнивается с профилем. Ничего здесь не меняет ваши активные данные, пока вы явно не примените изменения.",
    "playground_needs_restart": "Перезапустите Home Assistant, чтобы включить инструменты песочницы.",
    "preferences_admin": "Настройки, панель и управление доступом",
    "preferences_adv": "Настройки",
    "prefs_personal": "Применяются только к вашей учётной записи Home Assistant.",
    "process_history_hint": "Повторно запустите сопоставление для всех сохранённых циклов, обновите предложения по настройке, переобучите модели ML (если включено) и пересчитайте качество циклов. Запускайте после пакетного просмотра.",
    "profile_deleted": "Профиль удалён",
    "profile_poor_health_detail": "Циклы, назначенные этому профилю, имеют непоследовательную форму или низкую достоверность. Рассмотрите возможность восстановления конверта или пересмотра помеченных циклов.",
    "profiles_intro": "Нажмите на профиль для статистики, фаз и очистки. Группируйте почти одинаковые программы (одинаковая форма/продолжительность, разная температура или отжим), чтобы сопоставление надёжно выбирало между ними.",
    "rbac_hint": "Когда выключено, каждый пользователь Home Assistant имеет полный доступ (по умолчанию). Администраторы всегда имеют полный доступ и могут управлять всеми.",
    "recent_logs": "Последние записи ha_washdata",
    "recording_in_progress": "Запись в процессе",
    "reminders_intro": "Показывать напоминание в панели через указанное число циклов после последнего обслуживания. Оставьте пустым или 0, чтобы отключить напоминание.",
    "restart_gap_footer": "Выделено на графике. Данные мощности отсутствуют для этих интервалов; сопоставление использовало только реальные показания.",
    "restart_gap_header": "{n} пропуск при перезапуске HA во время этого цикла",
    "restart_gap_item": "{dur} пропуск",
    "review_confirm_help": "Убедитесь, что этот цикл был обнаружен правильно. Ваши обзоры тренируют модель на вашей машине. Чем больше циклов вы подтвердите, тем лучше будет соответствие и оценка работоспособности. Достаточно быстрого ответа «Хорошо/Плохо».",
    "review_in_settings": "Просмотр в настройках",
    "review_notes_placeholder": "Примечания (необязательно)",
    "review_notes_tip": "Свободные текстовые заметки для справки. Не используется при сопоставлении или обучении.",
    "review_profile_tip": "Программа, под которой помечен этот цикл. Если автоматически определенная программа была неправильной, исправьте ее здесь – маркировка учит сопоставлению для будущих циклов.",
    "review_quality_tip": "Насколько чист этот цикл. Хорошо = хрестоматийный пример этой программы; Плохо = обнаружено, но шумно или нетипично; Непригодный = обнаружен неправильно (объединен, усечен или поддельен). Управляет показателем работоспособности и тем, какие циклы разрешены для обучения модели.",
    "review_recorded_tip": "Отметьте это как выбранный вручную эталонный цикл для своей программы – та же роль, что и цикл, записанный вручную. Ссылочные циклы всегда сохраняются, заполняют соответствующий шаблон и никогда не удаляются при очистке. (Это «золотой»/записанный флаг; оба – одно и то же.)",
    "review_tags_tip": "Необязательные флаги, описывающие, что пошло не так в этом цикле, чтобы это можно было учесть при обучении и очистке.",
    "review_to_cycles": "Открыть очередь проверки циклов",
    "saving_triggers_reload": "Сохранение вызывает перезагрузку интеграции. Объекты HA могут кратко отображаться как недоступные.",
    "search_placeholder": "Поиск настроек…",
    "see_recorder": "Смотрите виджет записи ниже",
    "setting_changed": "Изменено с {old} на {new} – {date}",
    "settings_basic_note": "Показаны основные настройки. Переключитесь на «Дополнительно» для полного списка.",
    "shape_drift_advisory": "⚠ Смещение формы",
    "shape_drift_detail": "Профиль мощности этого профиля изменился со временем – возможный износ прибора или необходимость технического обслуживания (например, удаление накипи, чистка фильтра).",
    "show_all_settings": "Показать все настройки",
    "showing_suggestions": "Показана настройка {count} с предложениями.",
    "split_intro": "Нажмите на график, чтобы добавить или удалить точку разбивки, или авто-определите по паузам. Каждый результирующий сегмент может получить свой профиль.",
    "storage_diagnostics": "Статистика хранилища, обслуживание, экспорт/импорт",
    "sug_staged": "Установлено {key} = {val}. Сохраните для применения.",
    "toast_auto_detect_enabled": "Автоопределение включено",
    "toast_auto_label_complete": "Автоматическая маркировка завершена",
    "toast_auto_label_failed": "Автоматическая маркировка не выполнена: {error}",
    "toast_automation_failed": "Не удалось создать автоматизацию: {error}",
    "toast_automation_migrated": "Действия перенесены в автоматизацию; открывается редактор",
    "toast_convert_failed": "Конвертация не выполнена: {error}",
    "toast_create_failed": "Создание не выполнено: {error}",
    "toast_delete_failed": "Удаление не выполнено: {error}",
    "toast_error": "Ошибка: {error}",
    "toast_failed": "Не выполнено: {error}",
    "toast_force_stop_failed": "Принудительная остановка не выполнена: {error}",
    "toast_name_required": "Требуется название",
    "toast_no_automation": "Здесь нельзя создать автоматизацию",
    "toast_profile_name_required": "Требуется название профиля",
    "toast_program_set": "Программа выбрана: {program}",
    "toast_rebuild_failed": "Перестройка не выполнена: {error}",
    "toast_resume_failed": "Возобновление не выполнено: {error}",
    "toast_revert_failed": "Откат не выполнен: {error}",
    "toast_reverted": "Возвращено: {key}",
    "toast_save_failed": "Сохранение не выполнено: {error}",
    "trend_duration_longer": "Тенденция увеличения продолжительности ({pct}%/цикл) – среднее значение за последнее время {avg}",
    "trend_duration_shorter": "Тенденция к сокращению продолжительности ({pct}%/цикл) – среднее значение за последнее время {avg}",
    "trend_energy_down": "Тенденция к снижению энергопотребления ({pct}%/цикл)",
    "trend_energy_up": "Тенденция роста энергопотребления ({pct}%/цикл) – последнее среднее значение {avg}",
    "trim_intro": "Перетащите красные маркеры или введите значения. Всё за пределами окна удаляется.",
    "tuning_suggestions_available": "{count} предложение по настройке, доступное из наблюдаемых циклов. Они появляются рядом с соответствующими полями.",
    "unsure_detected_prefix": "WashData не уверен, что обнаружил",
    "updated": "Обновлено",
    "warmup_badge": "Ещё обучается ({done}/{needed} циклов)",
    "warmup_detail": "Этому профилю требуется {needed} помеченных циклов до начала автоматического сопоставления. Каждый подтверждённый цикл помогает ему обучаться.",
    "wipe_history_warning": "Безвозвратно удалите все циклы и профили. Невозможно отменить.",
    "compare_overlay_tip": "Наложите огибающие изученных профилей, чтобы увидеть, на какую программу похож каждый цикл.",
    "duration_trend_up_tip": "Продолжительность растёт ({pct}%/цикл)",
    "duration_trend_down_tip": "Продолжительность падает ({pct}%/цикл)",
    "energy_trend_up_tip": "Энергия растёт ({pct}%/цикл)",
    "energy_trend_down_tip": "Энергия падает ({pct}%/цикл)",
    "performance_trending": "Динамика производительности",
    "pg_select_cycle_hint": "Выберите цикл и нажмите ↺ для загрузки",
    "pg_sweep_progress": "Шаг {done} / {total}",
    "pg_analysis_hint": "Выберите цикл и нажмите ↺ для загрузки анализа.",
    "diagnostics_load_failed": "Не удалось загрузить диагностику: {error}",
    "manual_duration_ref_hint": "Используется только тогда, когда не выбран эталонный цикл. Эталонный цикл задаёт продолжительность по собственной длине.",
    "toast_convert_rolled_back": "Конвертация не выполнена и была отменена (автоматизация не оставлена): {error}",
    "toast_convert_orphan": "Автоматизация создана, но очистить старые действия не удалось. Не повторяйте попытку: удалите старые действия вручную, чтобы избежать дублирующей автоматизации.",
    "advisory_duration_trend_up": "Циклы '{name}' становятся всё длиннее (примерно +{pct}% за цикл). Если поведение прибора изменилось, перезапишите или пересоберите этот профиль.",
    "advisory_energy_trend_up": "'{name}' потребляет всё больше энергии (примерно +{pct}% за цикл) - стоит проверить прибор, если это неожиданно.",
    "advisory_poor_health": "У '{name}' низкая оценка соответствия - его недавние циклы сильно различаются или плохо распознаются. Просмотрите его циклы или перезапишите профиль, чтобы распознавание и оценки времени оставались точными.",
    "advisory_shape_drift": "'{name}' значительно отклонился от исходной формы кривой мощности. Возможно, поведение прибора со временем изменилось (например, накипь, износ). Рекомендуется перезаписать этот профиль по недавним циклам.",
    "advisory_shape_drift_corr": "'{name}' значительно отклонился от исходной формы кривой мощности (корреляция {corr}). Возможно, поведение прибора со временем изменилось (например, накипь, износ). Рекомендуется перезаписать этот профиль по недавним циклам.",
    "pg_no_alerts": "В этом запуске проблем не обнаружено.",
    "pg_override_active": "Используются ваши изменённые настройки вместо текущих",
    "pg_history_intro": "Повторно прогоните последние циклы через реальный детектор и сопоставитель. Сначала измените настройку обнаружения в режиме «Симуляция», чтобы увидеть здесь сравнение до/после.",
    "pg_history_empty": "Нажмите «Запустить», чтобы воспроизвести циклы.",
    "pg_history_summary": "{detected}/{total} обнаружено · {correct} сопоставлено верно",
    "pg_sweep_no_metric": "Недостаточно данных для оценки этой цели.",
    "pg_sweep_intro2": "Найдите настройку, которая лучше всего достигает цели на ваших последних циклах. Ничего не изменится, пока вы не примените.",
    "pg_running_history": "Воспроизведение ваших циклов…",
    "pg_running_sweep": "Проверка значений по всем вашим циклам…",
    "pg_row_load_hint": "Загрузить этот цикл на график выше",
    "pg_history_intro2": "Воспроизведите недавние циклы через настоящий детектор и модуль сопоставления с указанными выше настройками. Нажмите на любую строку, чтобы загрузить этот цикл на график; измените настройку, чтобы увидеть сравнение до и после.",
    "pg_simulating": "Моделирование цикла…",
    "pg_canvas_empty2": "Выберите цикл выше и нажмите «Запустить», чтобы смоделировать его. Затем наведите указатель, чтобы увидеть значения, прокрутите для масштабирования и перетащите для панорамирования.",
    "pg_apply_settings_confirm": "Сохранить эти настройки ({n}) в это устройство? {list}",
    "no_logs_match": "Нет записей журнала, соответствующих этим фильтрам.",
    "pg_analysis_hint2": "Выберите цикл и нажмите Запустить, чтобы загрузить анализ совпадения.",
    "pg_analysis_empty2": "Нажмите Запустить, чтобы увидеть анализ совпадения.",
    "imported_readonly": "Импортировано из магазина сообщества. Показывается для справки и сопоставления. Не учитывается в вашей статистике и не может быть изменено.",
    "merge_no_imports": "Импортированные записи нельзя объединить с реальным циклом. Снимите с них выбор, чтобы объединить.",
    "store_enable_hint": "Включите онлайн-функции в настройках, чтобы просматривать и импортировать эталонные циклы сообщества.",
    "online_intro": "Делитесь эталонными циклами с другими пользователями WashData и загружайте их. Все онлайн-функции подключаются по желанию и по умолчанию отключены.",
    "store_share_intro": "Загрузите этот эталонный цикл, чтобы другие пользователи с таким же устройством могли его использовать. Он проходит проверку перед публикацией.",
    "online_intro_global": "Просматривайте эталонные записи и делитесь ими с другими пользователями WashData, а также подтверждайте записи об устройствах. Одно подключение действует для всей вашей интеграции WashData; бренд и модель устройства задаются для каждого устройства в разделе «Основные». Все онлайн-функции подключаются по желанию и по умолчанию отключены.",
    "online_unavailable": "Онлайн-функции недоступны на этом сервере.",
    "store_picker_offline": "Включите онлайн-функции в меню настроек (шестерёнка), чтобы выбирать из каталога сообщества.",
    "pick_brand_first": "Сначала выберите бренд устройства.",
    "model_not_found": "Пока нет в каталоге.",
    "connect_to_confirm": "Подключитесь в меню настроек (шестерёнка), чтобы подтверждать или оценивать.",
    "adopt_settings_hint": "Применить настройки обнаружения и сопоставления общего устройства к этому устройству",
    "include_settings_hint": "Включить пороги обнаружения, веса сопоставления и другие параметры в общий пакет",
    "onboard_download": "Скачать готовую конфигурацию из магазина сообщества",
    "share_consent": "Вы делитесь реальными данными вашего прибора. Не делитесь, если ваши сценарии использования являются личными.",
    "share_device_none": "Устройства ещё не настроены. Сначала добавьте устройство.",
    "share_guideline_naming": "Используйте понятные названия программ (например, 'Cotton 40', 'Eco 60'), чтобы другие могли их идентифицировать",
    "share_guideline_quality": "Делитесь только профилями с ⭐ эталонными циклами или не менее {n} подтверждёнными запусками",
    "share_guideline_review": "Просмотрите профили перед публикацией -- удалите те, которые выглядят неправильно",
    "share_guidelines_title": "Перед публикацией",
    "store_download_device_intro": "Скачать конфигурацию устройства из сообщества и применить её к новому или существующему устройству",
    "store_share_device_intro": "Поделиться программами вашего устройства (профили + эталонные циклы) с сообществом. Настройки являются необязательными.",
    "share_profile_no_cycles": "Профиль '{p}' не имеет ⭐ эталонных циклов -- он будет пропущен, если у вас нет {n}+ подтверждённых запусков",
    "advisory_phase_inconsistent": "Похоже, что '{name}' смешивает разные программы или температуры - его циклы нагреваются в течение очень разного времени. Разделение на отдельные профили (напр. по температуре) улучшит сопоставление и оценки времени.",
    "advisory_phase_inconsistent_title": "⚠ Возможно, смешанные программы"
  },
  "phase_desc": {
    "anti_crease": "Периодические короткие вращения барабана после завершения для уменьшения складок.",
    "anti_wrinkle": "Периодические короткие вращения барабана после завершения цикла для предотвращения сминания белья.",
    "cool_down": "Вращение без нагрева ближе к концу цикла.",
    "drain_and_switch": "Переходный период от режима стирки к режиму сушки.",
    "dry": "Этап сушки с использованием нагревателя и/или остаточного тепла.",
    "drying": "Основной период нагреваемой сушки с вращением барабана.",
    "heat_up": "Первоначальный прогрев нагревателя перед началом полной сушки.",
    "pre_rinse": "Первоначальное распыление перед стиркой моющим средством.",
    "pre_wash": "Первоначальное замачивание или предварительная обработка перед основной стиркой.",
    "rinse": "Этап ополаскивания чистой водой. Эта фаза может повторяться несколько раз.",
    "sanitize": "Этап высокотемпературной очистки для программ санитарной обработки.",
    "sensor_check": "Короткая пауза при низком энергопотреблении во время измерения сухости.",
    "soak": "Период низкоактивного замачивания между этапами активной стирки.",
    "soak_dw": "Увеличенный период замачивания для сильно загрязнённой посуды.",
    "spin": "Высокоскоростная экстракция для удаления воды из загрузки.",
    "spin_wd": "Высокоскоростная экстракция перед переходом к сушке.",
    "wash": "Основной цикл стирки с движением барабана и дополнительным подогревом.",
    "wash_dw": "Основная моющая стирка с подогревом."
  },
  "placeholder": {
    "add": "добавить…",
    "group_name": "например, Хлопок 2:47",
    "json_buttons": "[{\"action\":\"ID\",\"title\":\"Label\"}]",
    "notify": "добавить сервис уведомлений…",
    "notify_services_list": "notify.mobile_app_phone, ...",
    "person": "добавить пользователя…",
    "phase_name": "например, Предварительная стирка",
    "profile_name": "например, Хлопок 40°C",
    "maintenance_notes": "напр., заменён фильтр, очищено уплотнение дверцы",
    "store_brand": "например, Bosch",
    "store_model": "например, WAT28401"
  },
  "pref": {
    "date_absolute": "Абсолютная (например, 14:32, 2 июля)",
    "date_relative": "Относительная (например, 2 часа назад)",
    "lang_auto": "Системный язык ({lang})",
    "lang_en": "Английский",
    "use_panel_default": "(по умолчанию панели)"
  },
  "quality": {
    "bad": "Плохо",
    "good": "Хорошо",
    "unusable": "Непригодный"
  },
  "section": {
    "anti_wrinkle": {
      "intro": "Режим защиты от морщин определяет короткие импульсы вращения барабана на малой мощности после основной фазы и сохраняет их привязанными к завершённому циклу.",
      "label": "Защита от морщин"
    },
    "basic": {
      "intro": "Ключевые идентификаторы и базовые настройки для большинства конфигураций.",
      "label": "Основное"
    },
    "delay": {
      "intro": "Обнаружение отложенного старта определяет, когда прибор включён, но ещё не начал цикл.",
      "label": "Отложенный старт"
    },
    "detection": {
      "intro": "Как цикл определяется как запускающийся, работающий и завершающийся.",
      "label": "Обнаружение"
    },
    "matching": {
      "intro": "Как завершённые циклы сопоставляются с изученными профилями и маркируются.",
      "label": "Сопоставление"
    },
    "ml_training": {
      "intro": "Расписание переобучения машинного обучения на устройстве и настройки данных.",
      "label": "Обучение ML"
    },
    "notifications": {
      "intro": "Когда и как вы получаете уведомления о событиях цикла.",
      "label": "Уведомления"
    },
    "timing": {
      "intro": "Фоновый таймер, офлайн-watchdog и обслуживание.",
      "label": "Таймер и Watchdog"
    },
    "triggers": {
      "intro": "Опциональные внешние сигналы: триггер завершения, датчик дверцы, переключатель паузы и напоминание о выгрузке.",
      "label": "Триггеры и дверцы"
    },
    "phase_eta": {
      "label": "Оставшееся время",
      "intro": "Оценка оставшегося времени с учётом фаз, для машин, длительность цикла которых зависит от температуры или отжима."
    }
  },
  "setting": {
    "anti_wrinkle_enabled": {
      "doc": "Распознавайте короткие импульсы низкой мощности, которые сушильная машина излучает после основной фазы нагрева, и сохраняйте их привязанными к завершенному циклу, а не воспринимайте их как новые циклы.",
      "label": "Включить Защиту от Морщин"
    },
    "anti_wrinkle_exit_power": {
      "doc": "Чтобы режим защиты от морщин оставался активным, мощность должна падать ниже этого значения между импульсами.",
      "label": "Порог Мощности Выхода"
    },
    "anti_wrinkle_max_duration": {
      "doc": "Пульс, превышающий этот, рассматривается как настоящий цикл, а не как борьба с морщинами.",
      "label": "Макс. Длительность"
    },
    "anti_wrinkle_max_power": {
      "doc": "Импульс выше этой мощности рассматривается как настоящий новый цикл, а не как борьба с морщинами. Установите чуть выше мощности вихревого импульса.",
      "label": "Макс. Мощность Защиты от Морщин"
    },
    "auto_label_confidence": {
      "doc": "Если счет совпадения в конце цикла равен этому значению или превышает его, программа помечается автоматически без запроса подтверждения. Поднимите его, чтобы требовать большей уверенности перед автоматической маркировкой; опустите его, чтобы автоматизировать больше. Работает вместе с элементом «Уверенность в обучении», расположенным под ним.",
      "label": "Уверенность Авто-Маркировки"
    },
    "auto_maintenance": {
      "doc": "Выполняйте ежевечернюю уборку: перестраивайте конверты профилей, пересчитывайте работоспособность циклов, удаляйте следы отладки и сохраняйте самые последние циклы.",
      "label": "Автоматическое Обслуживание (ночная уборка)"
    },
    "completion_min_seconds": {
      "doc": "Циклы короче этого значения отбрасываются как циклы-призраки (тестовые прогоны, открытие дверцы для добавления носка).",
      "label": "Минимальная Длительность Цикла"
    },
    "delay_confirm_seconds": {
      "doc": "Электропитание должно оставаться в режиме ожидания в течение этого времени, прежде чем устройство будет считаться ожидающим запуска, а не работающим.",
      "label": "Секунды Подтверждения"
    },
    "delay_start_detect_enabled": {
      "doc": "Обнаруживает, когда устройство включено и находится в режиме ожидания (отложенный запуск/режим ожидания), но еще не начало цикл, поэтому отключение в режиме ожидания не принимается за рабочий цикл.",
      "label": "Включить Обнаружение Отложенного Старта"
    },
    "delay_timeout_hours": {
      "doc": "Прекратите ожидание в режиме отложенного запуска по истечении этого количества часов и вернитесь в режим ожидания, чтобы машина, оставленная под напряжением, но так и не запущенная, не ждала вечно.",
      "label": "Часы Таймаута"
    },
    "device_type": {
      "doc": "Класс прибора. Устанавливает разумные настройки обнаружения по умолчанию (пороговые значения, задержка выключения, обработка завершения), настроенные для этого типа устройства; меняйте его только в том случае, если изначально устройство было настроено как неправильный тип.",
      "label": "Тип Устройства"
    },
    "door_sensor_entity": {
      "doc": "Дополнительный бинарный датчик двери. Используется для определения того, когда прибор открывался/разгружался после цикла.",
      "label": "Объект Датчика Дверцы"
    },
    "duration_tolerance": {
      "doc": "Допуск к оценкам оставшегося времени (обратная связь обучения, а не сопоставление). Если фактическая продолжительность находится в пределах +/-X% от оценки, это считается хорошим совпадением.",
      "label": "Допуск Оценки"
    },
    "enable_ml_models": {
      "doc": "Пока цикл выполняется, позвольте моделям уточнить результаты в реальном времени: более стабильную оценку оставшегося времени и энергии/затрат, а также защиту от преждевременной остановки при обнаружении окончания (она может только откладывать завершение, никогда не заканчивать его раньше и ограничена). Использует ваши точно настроенные модели, если они доступны, в противном случае – встроенные. Выкл. = только классическая силовая логика (все еще надежная).",
      "label": "Применять умные модели во время цикла"
    },
    "end_energy_threshold": {
      "doc": "Во время обратного отсчета задержки отключения накопленная энергия (ватты x время) сравнивается с этим порогом. В случае превышения обратный отсчет сбрасывается: барабаны для предотвращения сминания и хвостики для сушки в посудомоечной машине остаются прикрепленными к циклу, а не обрезаются. Поднимите его, если циклы заканчиваются слишком рано во время охлаждения; опустите его, если обнаружение происходит медленно.",
      "label": "Энергия Завершения"
    },
    "end_repeat_count": {
      "doc": "Количество последовательных показаний ниже стоп-порога, необходимых до завершения цикла. 1 подходит для большинства вилок. Увеличьте значение до 2–3, если ваша интеллектуальная розетка иногда сообщает о ложном нулевом значении выборки в середине цикла, и ваши циклы заканчиваются преждевременно.",
      "label": "Количество Повторений Завершения"
    },
    "energy_price_entity": {
      "doc": "Датчик с текущей ценой на электроэнергию за кВтч (например, динамический тариф). Имеет приоритет над статической ценой, указанной ниже. Каждый цикл замораживает цену после его завершения.",
      "label": "Объект Цены на Электроэнергию"
    },
    "energy_price_static": {
      "doc": "Фиксированная цена за кВтч, используемая для расчета себестоимости, если выше не указан объект реальной цены.",
      "label": "Фиксированная Цена Электроэнергии (за кВт·ч)"
    },
    "energy_sensor": {
      "doc": "Необязательный накопительный счётчик энергии (total_increasing kWh/Wh, например, собственный счётчик суммарного потребления розетки). Если задан, энергия, отображаемая для каждого цикла, берётся из разности показаний этого счётчика между началом и концом, что позволяет избежать занижения, возникающего при интегрировании медленно обновляющегося датчика мощности. Если показание отсутствует, единица измерения неизвестна или разность не положительна, используется интегрированное значение. Оставьте пустым, чтобы продолжать интегрировать датчик мощности.",
      "label": "Объект Счётчика Энергии"
    },
    "expose_debug_entities": {
      "doc": "Публикуйте дополнительные диагностические объекты высокой доступности (достоверность соответствия, неоднозначность, внутреннее состояние). Выкл. сохраняет список объектов чистым для нормального использования.",
      "label": "Открыть Отладочные Объекты"
    },
    "external_end_trigger": {
      "doc": "Бинарный датчик, изменение состояния которого указывает на окончание цикла (например, «завершенный» контакт устройства или интеграция сопутствующего устройства).",
      "label": "Объект Внешнего Триггера"
    },
    "external_end_trigger_enabled": {
      "doc": "Пусть внешний двоичный датчик сигнализирует об окончании цикла в дополнение к встроенному обнаружению на основе мощности.",
      "label": "Включить Внешний Триггер Завершения"
    },
    "external_end_trigger_inverted": {
      "doc": "Считайте выключение датчика триггера (а не включение) сигналом окончания цикла.",
      "label": "Инвертировать Внешний Триггер (срабатывать на ВЫКЛ)"
    },
    "learning_confidence": {
      "doc": "Если оценка соответствия находится между этим значением и показателем уверенности в автоматической маркировке, вам будет предложено подтвердить указанную программу в уведомлении обратной связи. Ниже этого показателя матч слишком неопределенен, чтобы его можно было увидеть. Должно быть ниже уровня достоверности автоматической маркировки.",
      "label": "Уверенность Обучения"
    },
    "linked_device": {
      "doc": "При необходимости вложите это устройство WashData в другое устройство (например, интеллектуальную розетку) в реестре устройств высокой доступности, показанное как «Подключено через...».",
      "label": "Группировать под Устройством"
    },
    "min_off_gap": {
      "doc": "Если машина выключается на время меньшее, чем это время, последовательность включения/выключения/включения рассматривается как один непрерывный цикл. Предотвращает разделение программ замачивания (машина выключается на несколько минут во время стирки) на два отдельных цикла. Установите его короче, чем промежуток между последовательными нагрузками, если вы хотите, чтобы они считались отдельными циклами. Значения по умолчанию для типа устройства защищают типичную паузу внутри цикла для каждого устройства.",
      "label": "Минимальная Пауза Выключения"
    },
    "min_power": {
      "doc": "Абсолютная минимальная мощность считается активной. Показания ниже этого значения считаются 0 Вт (режим ожидания), отфильтровывая фантомную нагрузку интеллектуальных розеток и светодиодов режима ожидания.",
      "label": "Минимальная Мощность"
    },
    "ml_training_enabled": {
      "doc": "Периодически изучайте проверенные циклы в течение ночи и настраивайте модели для этой конкретной машины. Изменение сохраняется только в том случае, если оно действительно дает лучшие результаты в затянувшихся циклах, поэтому это может только помочь или остаться прежним, а не регрессировать.",
      "label": "Обучаться на этой машине"
    },
    "ml_training_hour": {
      "doc": "Местный час дня (0-23), чтобы выполнить ночную точную настройку. Выберите тихий час, например 2 (02:00).",
      "label": "Обучаться в час"
    },
    "ml_training_interval_days": {
      "doc": "Повторно проверяйте наличие улучшений не чаще одного раза за указанное количество дней.",
      "label": "Проверять не чаще раза в"
    },
    "ml_training_min_cycles": {
      "doc": "Прежде чем приступить к точной настройке, подождите, пока будет записано хотя бы это количество циклов, чтобы было чему поучиться.",
      "label": "Сначала нужно циклов"
    },
    "name": {
      "doc": "Отображаемое имя, отображаемое в списке интеграций высокой доступности и реестре устройств.",
      "label": "Имя Устройства"
    },
    "no_update_active_timeout": {
      "doc": "Если во время работы в течение этого времени не поступают обновления питания, предположим, что вилка отключена от сети, и принудительно остановите ее, чтобы избежать цикла зомби. Значение по умолчанию 600 с учитывает задержку облака или сетки.",
      "label": "Таймаут Без Обновления"
    },
    "notify_before_end_minutes": {
      "doc": "Отправьте оповещение «Почти готово», когда расчетное оставшееся время упадет ниже этого значения. 0 отключает его.",
      "label": "Оповещение Перед Завершением"
    },
    "notify_channel": {
      "doc": "Название канала уведомлений Android для стартовых/живых сообщений (управляет звуком и приоритетом каждого канала в мобильном приложении). Пустой использует сопутствующее приложение по умолчанию.",
      "label": "Канал Android (запуск/реальное время)"
    },
    "notify_cycle_timers": {
      "doc": "Уведомления в определенные минуты цикла (например, о добавлении смягчителя). Сообщение поддерживает {device}, {program}, {minutes}. Включите автоматическую паузу, чтобы сделать паузу в этот момент и получить интерактивное уведомление с помощью кнопки возобновления; возобновить работу через панель, службу паузы/возобновления или действие уведомления.",
      "label": "Таймеры Цикла"
    },
    "notify_finish_channel": {
      "doc": "Название канала уведомлений Android для сообщения о завершении. Пустой повторно использует стартовый/живой канал.",
      "label": "Канал Android (завершение)"
    },
    "notify_finish_message": {
      "doc": "Тело, отправляемое при завершении цикла. Переменные шаблона: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}. {time_finished} и {vs_typical} наиболее полезны здесь.",
      "label": "Сообщение о Завершении"
    },
    "notify_finish_services": {
      "doc": "notify.* службы, вызываемые при завершении цикла. Добавьте по одному на каждую цель; оставьте пустым, чтобы не было уведомления о завершении.",
      "label": "Службы Завершения"
    },
    "notify_fire_events": {
      "doc": "Также запускайте события ha_washdata_* в начале/окончании цикла, чтобы вы могли создавать свои собственные средства автоматизации.",
      "label": "Отправлять События HA для Уведомлений"
    },
    "notify_icon": {
      "doc": "Дополнительный значок mdi для уведомления (например, mdi:стиральная машина). Оставьте пустым для платформы по умолчанию.",
      "label": "Иконка Уведомления"
    },
    "notify_live_chronometer": {
      "doc": "Показывать в уведомлении таймер обратного отсчета с обновлением в реальном времени (на платформах, которые его поддерживают) вместо статической оценки.",
      "label": "Использовать Хронометр в Реальном Времени"
    },
    "notify_live_interval_seconds": {
      "doc": "Как часто обновляются уведомления о ходе выполнения во время выполнения цикла.",
      "label": "Интервал Обновления в Реальном Времени"
    },
    "notify_live_overrun_percent": {
      "doc": "Если цикл превышает свою оценку более чем на этот процент, отправьте предупреждение о превышении.",
      "label": "% Превышения До Оповещения"
    },
    "notify_live_services": {
      "doc": "notify.* службы вызывают обновления хода выполнения в реальном времени во время выполнения цикла. Оставьте пустым, чтобы отключить уведомления о прогрессе в реальном времени.",
      "label": "Службы Обновления в Реальном Времени"
    },
    "notify_only_when_home": {
      "doc": "Отправляйте уведомления только тогда, когда хотя бы один из связанных людей (выше) находится дома.",
      "label": "Уведомлять Только Когда Дома"
    },
    "notify_people": {
      "doc": "person.* сущности, используемые функцией «Уведомлять только когда дома», чтобы определить, находится ли кто-нибудь дома.",
      "label": "Люди (для Только Когда Дома)"
    },
    "notify_pre_complete_message": {
      "doc": "Тело оповещения «почти готово» / перед завершением. Переменные шаблона: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Сообщение Перед Завершением"
    },
    "notify_reminder_message": {
      "doc": "Тело напоминания о том, что бельё ещё не выгружено. Пустое значение использует встроенное по умолчанию. Переменные шаблона: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Напоминание"
    },
    "notify_start_message": {
      "doc": "Тело, отправляемое при запуске цикла. Переменные шаблона: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Сообщение о Запуске"
    },
    "notify_start_services": {
      "doc": "notify.* службы, вызываемые при запуске цикла. Добавьте по одному на каждую цель (телефон, панель управления и т. д.); оставьте пустым, чтобы не было уведомления о запуске.",
      "label": "Службы Запуска"
    },
    "notify_timeout_seconds": {
      "doc": "Автоматически закрывать уведомление по истечении этого количества секунд (на платформах, которые его поддерживают). 0 сохраняет его до тех пор, пока не будет закрыт вручную.",
      "label": "Авто-Закрытие Через"
    },
    "notify_title": {
      "doc": "Название уведомления. Переменные шаблона: {device}, {program}, {duration}, {energy}, {cost}, {date}, {time}, {minutes}.",
      "label": "Заголовок Уведомления"
    },
    "notify_unload_delay_minutes": {
      "doc": "Через несколько минут после окончания цикла перед отправкой все еще ожидающего напоминания «разгрузить машину». Установите 0, чтобы отключить напоминание.",
      "label": "Задержка Напоминания о Выгрузке"
    },
    "off_delay": {
      "doc": "Время ожидания после отключения питания, прежде чем объявить цикл завершенным. Если подача электроэнергии возобновится в пределах этого окна, цикл продолжится плавно – это устраняет паузы между этапами стирки. Посудомоечные машины имеют длительные фазы сушки (отключение питания на 20–60 минут), поэтому задержка выключения должна превышать это значение, чтобы вся стирка+сушка выполнялась как один цикл.",
      "label": "Задержка Выключения"
    },
    "pause_cuts_power": {
      "doc": "Когда цикл приостановлен, также отключите объект Switch ниже. Только для приборов, вилку которых можно безопасно отрезать в середине цикла.",
      "label": "Пауза Отключает Питание (через переключатель)"
    },
    "power_off_delay": {
      "doc": "Как долго мощность должна оставаться ниже «Порог Выключения Питания» после завершения цикла, прежде чем состояние вернётся к «Выключено». Используется только когда «Порог Выключения Питания» больше 0. Проверяется с фоновой периодичностью, поэтому фактическая задержка округляется вверх до следующего момента истечения состояния.",
      "label": "Задержка Выключения Питания"
    },
    "power_off_threshold_w": {
      "doc": "Необязательное определение состояния «Выключено» по мощности. Если значение больше 0, то после завершения цикла, когда мощность остаётся ниже этого уровня в течение времени «Задержка Выключения Питания», машина считается выключенной, и состояние возвращается к «Выключено». Оставьте 0, чтобы отключить (по умолчанию). Задайте значение выше реального уровня выключенного прибора, но ниже «Порог Остановки» и ниже потребления машины в режиме ожидания после завершения; если значение не ниже «Порог Остановки», оно игнорируется. Когда параметр включён, он заменяет «Задержка Сброса Прогресса» для возврата к «Выключено», поэтому завершившая работу машина остаётся в состоянии «Завершено»/«Чистый», пока её действительно не выключат.",
      "label": "Порог Выключения Питания"
    },
    "power_sensor": {
      "doc": "Объект-датчик, сообщающий о активной мощности в ваттах для этого устройства (например, Sensor.washer_power). Все обнаружение цикла основано на этом сигнале.",
      "label": "Датчик Мощности"
    },
    "profile_duration_tolerance": {
      "doc": "Полоса +/- вокруг средней продолжительности профиля, используемая во время сопоставления. 0,25 означает, что 60-минутный профиль соответствует 45-75-минутным циклам.",
      "label": "Допуск Длительности Профиля"
    },
    "profile_match_interval": {
      "doc": "Как часто предпринимать попытки сопоставления профилей во время рабочего цикла. Значение по умолчанию 300 с (5 минут) обеспечивает баланс между скоростью обнаружения и процессором.",
      "label": "Интервал Совпадения"
    },
    "profile_match_max_duration_ratio": {
      "doc": "Максимальная длина цикла относительно профиля. 1.3 означает, что для соответствия цикл должен составлять менее 130 % от продолжительности профиля.",
      "label": "Максимальное Соотношение Длительности"
    },
    "profile_match_min_duration_ratio": {
      "doc": "Минимальная длина цикла относительно профиля. 0,9 означает, что для соответствия цикл должен составлять не менее 90 % продолжительности профиля.",
      "label": "Минимальное Соотношение Длительности"
    },
    "profile_match_threshold": {
      "doc": "Минимальный балл сходства (0-1), необходимый в конце цикла для принятия идентификации программы. Поднимите его, чтобы уменьшить количество ошибочных идентификаций; опустите его, если программы вашей машины не совпадают. Значение по умолчанию 0,4 является консервативной отправной точкой.",
      "label": "Порог Совпадения"
    },
    "profile_unmatch_threshold": {
      "doc": "Если результат живого матча в середине цикла опускается ниже этого значения, предварительная идентификация очищается. Держите его немного ниже порога совпадения, чтобы кратковременное снижение сходства не вернуло отображение к непревзойденному состоянию.",
      "label": "Порог Несовпадения"
    },
    "progress_reset_delay": {
      "doc": "После завершения удерживайте прогресс на уровне 100% в течение этого времени, чтобы значение «Завершено» было видно на информационных панелях, прежде чем перейти в режим ожидания.",
      "label": "Задержка Сброса Прогресса"
    },
    "pump_stuck_duration": {
      "doc": "Секунды, в течение которых насос может работать непрерывно, прежде чем он будет помечен как возможно застрявший (вызовет событие застревания насоса).",
      "label": "Длительность Застревания Насоса"
    },
    "running_dead_zone": {
      "doc": "После начала цикла провалы мощности в этом окне игнорируются. Стиральные машины наполняются холодной водой (перед нагревом ее мощность падает около 0 Вт) – без этой защиты фаза наполнения выглядит как завершение цикла. При этом НЕ происходит пропуск данных: кривая полной мощности записывается от T=0. Механизм подсказок измеряет фактическую схему запуска вашей машины и автоматически определяет ее размер.",
      "label": "Мёртвая Зона Работы"
    },
    "sampling_interval": {
      "doc": "Ожидаемое время между показаниями датчика – используется для определения размера окна сглаживания и правильного запуска устранения дребезга. Каждое обновление датчика фиксируется независимо от этого значения; он только калибрует последующие вычисления. Механизм подсказок измеряет фактическую частоту вращения педалей вашего датчика на основе прошлых циклов и устанавливает ее автоматически.",
      "label": "Интервал Выборки"
    },
    "save_debug_traces": {
      "doc": "Сохраняйте трассировку полной мощности и соответствующие данные отладки для каждого цикла. Полезно для устранения неполадок, но увеличивает размер хранилища.",
      "label": "Сохранять Отладочные Данные"
    },
    "smoothing_window": {
      "doc": "Насколько сглаживается необработанный сигнал мощности. Низкий (2) отзывчивый, но шумный; высокий (5) сглаживает пики, но добавляет задержку.",
      "label": "Окно Сглаживания"
    },
    "start_duration_threshold": {
      "doc": "Мощность должна оставаться выше порогового значения запуска в течение этого времени, чтобы подтвердить реальный запуск, предотвращая запуск цикла с помощью переключателей включения/выключения, рассчитанных на долю секунды.",
      "label": "Длительность Запуска"
    },
    "start_energy_threshold": {
      "doc": "Энергия (мощность x время), которую прибор должен потребить перед ЗАПУСКОМ. Короткий мощный всплеск имеет очень низкую энергию и игнорируется, что предотвращает фальстарт.",
      "label": "Энергия Запуска"
    },
    "start_threshold_w": {
      "doc": "Мощность должна подняться выше этого уровня, чтобы подтвердить начало цикла. Установка слишком низкого значения приведет к ложному запуску резервного питания; слишком высокие и медленно запускающиеся программы (холодная заливка) пропускаются. Механизм предложения устанавливает это значение чуть выше наблюдаемой самой низкой активной мощности машины.",
      "label": "Порог Запуска"
    },
    "stop_threshold_w": {
      "doc": "Мощность должна упасть ниже этого уровня, прежде чем начнется обратный отсчет задержки выключения. Установите его ниже Start Threshold – промежуток между ними и есть полоса гистерезиса, предотвращающая мерцание. Если установлено слишком высокое значение, фазы низкой мощности (задержка полоскания, предотвращение сминания) ошибочно запускают последовательность завершения.",
      "label": "Порог Остановки"
    },
    "switch_entity": {
      "doc": "Дополнительный переключатель, который выключается при паузе и снова включается при возобновлении, используется вместе с надписью «Пауза также отключает питание».",
      "label": "Объект Переключателя"
    },
    "watchdog_interval": {
      "doc": "Как часто фоновый сторожевой таймер проверяет зависшие датчики и истекшие тайм-ауты. По умолчанию 30 с.",
      "label": "Интервал Watchdog"
    },
    "notify_milestone_message": {
      "doc": "Сообщение для уведомления о вехе. Переменные шаблона: {device}, {cycle_count}.",
      "label": "Сообщение о вехе"
    },
    "notify_milestones": {
      "doc": "Количество циклов через запятую, при достижении которых срабатывает однократное праздничное уведомление (напр., 50, 100, 500, 1000). Пустое значение отключает уведомления о вехах.",
      "label": "Вехи по циклам"
    },
    "notify_quiet_end_hour": {
      "doc": "Конец интервала «не беспокоить» (0-23). Отложенные уведомления доставляются в этот час. Оставьте пустым для отключения.",
      "label": "Конец тихих часов"
    },
    "notify_quiet_start_hour": {
      "doc": "Начало интервала «не беспокоить» (0-23). Уведомления о завершении, напоминания и уведомления о чистом белье, которые сработали бы в тихие часы, откладываются и доставляются по окончании интервала. Оставьте пустым для отключения. Поддерживаются интервалы, пересекающие полночь (напр., начало 22, конец 7).",
      "label": "Начало тихих часов"
    },
    "peak_rate_message": {
      "doc": "Необязательный пользовательский текст подсказки о пиковом тарифе, добавляемой к уведомлению о запуске. Переменные шаблона: {device}, {price}. Пустое значение использует встроенное по умолчанию.",
      "label": "Сообщение о пиковом тарифе"
    },
    "peak_rate_threshold": {
      "doc": "Когда цикл запускается и текущая цена за кВт·ч равна этому значению или выше, к уведомлению о запуске добавляется подсказка о пиковом тарифе. 0 или пусто отключает подсказку.",
      "label": "Порог пикового тарифа (за кВт·ч)"
    },
    "dtw_bandwidth": {
      "label": "Допуск сопоставления по форме",
      "doc": "Насколько сильно модуль сопоставления может растянуть цикл по времени, чтобы подогнать его под форму сохранённой программы. Чем выше значение, тем больше допускается колебаний скорости; слишком высокое рискует сопоставить не ту программу."
    },
    "corr_weight": {
      "label": "Вес формы относительно уровня",
      "doc": "Баланс между формой кривой и абсолютным уровнем мощности при оценке сопоставления. Более высокое значение отдаёт предпочтение форме; более низкое отдаёт предпочтение совпадению уровня мощности."
    },
    "duration_weight": {
      "label": "Вес длительности",
      "doc": "Насколько сильно предпочтение отдаётся программе, типичная длительность которой совпадает с этим циклом."
    },
    "energy_weight": {
      "label": "Вес энергии",
      "doc": "Насколько сильно предпочтение отдаётся программе, типичное энергопотребление которой совпадает с этим циклом."
    },
    "store_brand": {
      "label": "Бренд устройства",
      "doc": "Необязательно. Бренд устройства, выбранный из каталога сообщества. Используется для поиска и публикации подходящих эталонных записей. Оставьте пустым, если не пользуетесь онлайн-функциями."
    },
    "store_model": {
      "label": "Модель устройства",
      "doc": "Необязательно. Модель устройства, выбранная из каталога сообщества после указания бренда. Если вашей модели нет в списке, вы можете добавить её в каталог."
    },
    "show_contributor": {
      "doc": "Показать имя автора на профилях, загруженных из магазина сообщества"
    },
    "enable_phase_matching": {
      "label": "Оставшееся время с учётом фаз",
      "doc": "Разбивает каждый активный цикл на фазы (нагрев, стирка, отжим) и распределяет оставшееся время по фазам, сочетая это с классической оценкой - опираясь на распределение по фазам в начале цикла и на классическую оценку ближе к концу. Это персонализирует отсчёт под то, сколько на самом деле нагревается и работает ваша машина, что наиболее заметно в первой половине цикла. Выключено = только классическая оценка. Влияет только на отображение оставшегося времени; сопоставление программ и обнаружение цикла остаются без изменений."
    },
    "keep_min_score": {
      "label": "Мин. оценка совпадения",
      "doc": "Минимальный балл сходства, необходимый кандидату для участия в соревновании по совпадению. Значение по умолчанию 0,1 намеренно мягкое - допускает даже слабых кандидатов и полагается на поздние этапы для нахождения наилучшего совпадения. Повысьте для более раннего отсева маловероятных профилей; понизьте для расширения начального пула кандидатов."
    },
    "dtw_blend": {
      "label": "Смешивание деформации",
      "doc": "Насколько балл выравнивания DTW заменяет основной балл Этапа 2. 0 = используй только балл Этапа 2, 1 = используй только балл DTW, 0,5 (по умолчанию) = равное смешивание. Повысьте для большей опоры на выравнивание с деформацией, когда программы имеют схожие уровни мощности, но разные временные паттерны."
    },
    "dtw_ensemble_w": {
      "label": "Микс комбинации DTW",
      "doc": "В режиме ансамбля DTW (по умолчанию), вес масштабированного L1 против производного DTW (DDTW). 1,0 = только масштабированный L1, 0 = только DDTW, 0,7 = по умолчанию. Масштабированный вариант L1 сравнивает уровни мощности; производный вариант реагирует на изменения мощности во времени. Ансамбль объединяет оба."
    },
    "dtw_ddtw_scale": {
      "label": "Масштаб производной деформации",
      "doc": "Расстояние полунасыщения для оценки производным DTW. Балл уменьшается вдвое, когда расстояние DDTW равно этому значению. Меньше = чувствительнее к различиям формы. Значение по умолчанию 30 откалибровано для типичных кривых мощности бытовых приборов. Влияет только на режимы ensemble и ddtw DTW."
    },
    "dtw_refine_top_n": {
      "label": "Количество уточнённых кандидатов",
      "doc": "Сколько ведущих кандидатов Этапа 2 DTW переоценивает. DTW дороже, поэтому применяется только к N лучшим кандидатам. По умолчанию 5. Повысьте (до 7-9), если правильный профиль иногда достигает только 4-го или 5-го места после Этапа 2 - DTW может его спасти. Снижение немного ускоряет сопоставление."
    },
    "duration_scale": {
      "label": "Резкость длительности",
      "doc": "Резкость штрафа за несоответствие длительности на Этапе 4. Это логарифмическое отношение, при котором балл соответствия уменьшается вдвое. Меньше = строже: несоответствие длительности сильнее снижает балл. Значение по умолчанию 0,175 соответствует допуску длительности около 18% при половинном весе. Используйте вместе с Весом длительности."
    },
    "energy_scale": {
      "label": "Резкость энергии",
      "doc": "Резкость штрафа за несоответствие энергии на Этапе 4. Меньше = строже: несоответствие энергии сильнее снижает балл. Значение по умолчанию 0,25 намеренно мягче, чем Резкость длительности, поскольку энергия варьируется с нагрузкой. Используйте вместе с Весом энергии."
    }
  },
  "setting_group": {
    "auto_labeling": {
      "label": "Авто-Маркировка"
    },
    "cycle_end": {
      "label": "Завершение Цикла"
    },
    "cycle_start": {
      "label": "Запуск Цикла"
    },
    "cycle_timers": {
      "label": "Таймеры Цикла"
    },
    "data_management": {
      "label": "Управление Данными"
    },
    "debug": {
      "label": "Отладка"
    },
    "dishwasher_end": {
      "label": "Завершение Посудомойки"
    },
    "door_pause": {
      "label": "Дверца и Пауза"
    },
    "dtw_refinement": {
      "label": "Уточнение DTW"
    },
    "duration_gates": {
      "label": "Ворота Длительности"
    },
    "energy": {
      "label": "Энергия"
    },
    "external_end_trigger": {
      "label": "Внешний Триггер Завершения"
    },
    "housekeeping": {
      "label": "Обслуживание"
    },
    "match_scoring": {
      "label": "Оценка Совпадения"
    },
    "messages": {
      "label": "Сообщения"
    },
    "power_off": {
      "label": "Выключение питания"
    },
    "predictive_end": {
      "label": "Прогнозируемое Завершение"
    },
    "schedule": {
      "label": "Расписание"
    },
    "services": {
      "label": "Службы"
    },
    "signal_processing": {
      "label": "Обработка Сигнала"
    },
    "thresholds_gap": {
      "label": "Пороги и Пауза"
    },
    "timing": {
      "label": "Таймер"
    },
    "unload_reminder": {
      "label": "Напоминание о Выгрузке"
    },
    "watchdog": {
      "label": "Watchdog"
    },
    "quiet_hours_milestones": {
      "label": "Тихие часы и вехи"
    },
    "device_info": {
      "label": "Сведения об устройстве"
    },
    "basic_configuration": {
      "label": "Основные настройки"
    }
  },
  "status": {
    "active": "Активно",
    "all_statuses": "Все статусы",
    "ambiguous": "Неоднозначно",
    "auto_detect": "Авто-определение",
    "clear": "Очистить",
    "completed": "Завершено",
    "fine_tuning": "точная настройка…",
    "force_stopped": "Принудительно остановлено",
    "idle": "Ожидание",
    "interrupted": "Прервано",
    "ready": "Готов к обработке",
    "recording": "Запись",
    "training": "Обучение…",
    "saving": "Сохранение…",
    "rebuilding": "Перестроение…",
    "analyzing": "Анализ…",
    "resetting": "Сброс…",
    "reverting": "Откат…",
    "trimming": "Обрезка…",
    "splitting": "Разбивка…",
    "deleting": "Удаление…",
    "imported": "Импортировано"
  },
  "tab": {
    "advanced": "Дополнительно",
    "diagnostics": "Диагностика",
    "history": "Циклы",
    "ml": "Обучение ML",
    "pp_cleanup": "Очистка",
    "pp_manage": "Управление",
    "pp_overview": "Обзор",
    "pp_phases": "Фазы",
    "profiles": "Профили",
    "settings": "Настройки",
    "status": "Обзор",
    "subtab_phase_catalog": "Каталог фаз",
    "subtab_profiles": "Профили",
    "maintenance": "Обслуживание",
    "playground": "Песочница",
    "store": "Магазин"
  },
  "tag": {
    "early_end": "Раннее завершение",
    "late_start": "Позднее начало",
    "merged": "Объединённые циклы",
    "noise": "Шум",
    "sensor_gap": "Пропуск датчика",
    "split": "Разбитый цикл",
    "wrong_profile": "Неверный профиль"
  },
  "toast": {
    "access_saved": "Управление доступом сохранено",
    "all_wiped": "Все данные удалены",
    "analysis_complete_none": "Анализ завершён: нет новых предложений",
    "auto_label_complete": "Автоматическая пометка завершена",
    "automation_deleted": "Автоматизация удалена",
    "correction_submitted": "Исправление отправлено",
    "cycle_deleted": "Цикл удалён",
    "cycle_force_stopped": "Цикл принудительно остановлен",
    "cycle_labelled": "Цикл помечен",
    "cycle_paused": "Цикл приостановлен",
    "cycle_resumed": "Цикл возобновлён",
    "cycle_trimmed": "Цикл обрезан",
    "cycles_merged": "Циклы объединены",
    "envelope_rebuilt": "Огибающая перестроена",
    "envelopes_rebuilt": "Огибающие перестроены",
    "export_downloaded": "Экспорт загружен",
    "feedback_all_dismissed": "Все отзывы отклонены",
    "feedback_confirmed": "Отзыв подтверждён",
    "feedback_dismissed": "Отзыв отклонён",
    "group_deleted": "Группа удалена",
    "group_name_required": "Требуется имя группы",
    "group_saved": "Группа сохранена",
    "import_successful": "Импорт выполнен; интеграция перезагружается",
    "json_required": "Требуются данные JSON",
    "legacy_removed": "Устаревшие действия удалены",
    "logs_exported": "Журналы экспортированы",
    "matching_reverted": "Веса сопоставления сброшены до значений по умолчанию",
    "min_2_profiles": "Выберите не менее 2 профилей для группы",
    "ml_training_no_improvement": "Обучение завершено: базовая модель сохранена (нет улучшений)",
    "models_reverted": "Модели устройства сброшены до базовых",
    "name_required": "Требуется имя",
    "no_split_found": "Пауз для разбивки не найдено",
    "panel_settings_saved": "Настройки панели сохранены",
    "phase_name_required": "Требуется имя фазы",
    "phase_updated": "Фаза обновлена",
    "phases_saved": "Фазы сохранены",
    "preferences_saved": "Настройки сохранены",
    "profile_name_required": "Требуется имя профиля",
    "profile_renamed": "Профиль переименован",
    "recording_discarded": "Запись отменена",
    "recording_saved": "Запись сохранена в профиль",
    "recording_started": "Запись начата",
    "recording_stopped": "Запись остановлена",
    "review_saved": "Проверка сохранена",
    "settings_conflicts": "Исправьте выделенные конфликты настроек перед сохранением.",
    "settings_reverted": "Настройки восстановлены; интеграция перезагружается",
    "settings_saved": "Настройки сохранены; интеграция перезагружается",
    "suggestions_applied": "Предложения применены; интеграция перезагружается",
    "suggestions_dismissed": "Предложения отклонены",
    "apply_failed": "Не удалось применить: {error}",
    "delete_failed": "Не удалось удалить: {error}",
    "load_more_failed": "Не удалось загрузить ещё: {error}",
    "maint_add_failed": "Не удалось добавить событие: {error}",
    "maint_added": "Событие обслуживания добавлено",
    "maint_delete_failed": "Не удалось удалить событие: {error}",
    "maint_deleted": "Событие обслуживания удалено",
    "relabel_done": "Метка изменена у {count} цикла(ов)",
    "relabel_failed": "Не удалось изменить метку: {error}",
    "reminders_save_failed": "Не удалось сохранить напоминания: {error}",
    "reminders_saved": "Напоминания об обслуживании сохранены",
    "pause_no_cycle": "Нет активного цикла для паузы",
    "resume_no_cycle": "Нет приостановленного цикла для возобновления",
    "delete_partial_failed": "Некоторые элементы не удалось удалить, и они были восстановлены",
    "pg_run_gone": "Этот запуск больше недоступен.",
    "task_cancelled": "Отменено.",
    "processed": "Обработано {bits}",
    "processed_cycles": "{n} циклов",
    "processed_suggestions": "{n} предложений",
    "processed_models": "{n} активированных моделей",
    "store_search_failed": "Не удалось выполнить поиск: {error}",
    "store_connect_failed": "Не удалось подключиться: {error}",
    "store_connected": "Подключено к магазину сообщества",
    "store_disconnected": "Отключено от магазина сообщества",
    "store_error": "Ошибка: {error}",
    "store_unavailable": "Магазин сообщества недоступен.",
    "store_pick_profile": "Выберите профиль для объединения",
    "store_name_required": "Введите название профиля",
    "store_import_failed": "Не удалось импортировать: {error}",
    "store_imported": "Импортировано в {profile}",
    "store_program_required": "Введите название программы",
    "store_no_appliance": "Сначала укажите бренд и модель устройства в настройках.",
    "store_share_failed": "Не удалось поделиться: {error}",
    "store_shared": "Опубликовано в магазине сообщества, ожидает проверки.",
    "appliance_added": "Устройство добавлено, ожидает одобрения",
    "thanks_confirming": "Спасибо за подтверждение",
    "device_approved": "Одобрено сообществом",
    "rating_saved": "Оценка качества сохранена",
    "brand_added": "Бренд добавлен, ожидает одобрения",
    "profile_added": "Профиль добавлен, ожидает одобрения",
    "saved_except_conflicts": "Настройки сохранены -- {n} настройка{s} пропущена из-за конфликтов",
    "share_device_none_sel": "Выберите хотя бы одну программу для публикации",
    "store_device_downloaded": "Конфигурация устройства загружена: {created} профиль{c} создан, {dup} уже существовало",
    "store_device_downloaded_phases": "Конфигурация устройства загружена: {created} профиль{c} создан, {dup} уже существовало, карта фаз применена",
    "store_device_downloaded_settings": "Конфигурация устройства загружена: {created} профиль{c} создан, {dup} уже существовало, настройки применены",
    "store_device_shared": "Конфигурация устройства опубликована: {n} программ{s} загружено",
    "store_device_shared_all_dup": "Нет ничего нового для публикации -- все программы уже есть в магазине",
    "store_device_shared_partial": "Частичная публикация: {n} программ{s} загружено, {failed} пропущено",
    "store_device_shared_some_dup": "Конфигурация устройства опубликована: {n} программ{s} загружено ({dup} уже существовало)",
    "store_download_failed": "Ошибка загрузки: {error}",
    "store_download_nothing": "Нечего загружать -- все профили уже существуют на этом устройстве"
  },
  "suggestion": {
    "both_agree": "WashData рекомендует",
    "calibrated_label": "Откалиброванное",
    "observed_label": "Наблюдаемое",
    "impact": {
      "auto_label_confidence": {
        "higher": "Автоматически маркирует меньше циклов; больше отправляется на проверку",
        "lower": "Автоматически маркирует больше циклов; некоторые могут быть определены неверно"
      },
      "duration_tolerance": {
        "higher": "Принимает более широкий диапазон длительности – более гибкое сопоставление",
        "lower": "Требует более точного совпадения длительности – строже, но может отклонить необычные циклы"
      },
      "end_energy_threshold": {
        "higher": "Закрывает только циклы, использовавшие значительное количество энергии",
        "lower": "Закрывает и короткие или маломощные циклы"
      },
      "end_repeat_count": {
        "higher": "Требует повторения сигнала завершения больше раз – надёжнее, немного медленнее",
        "lower": "Завершает после меньшего числа повторений – быстрее, выше риск ложного завершения"
      },
      "learning_confidence": {
        "higher": "Учится только на очень уверенных совпадениях – медленнее, но надёжнее",
        "lower": "Учится на большем числе циклов; модель может быть более шумной"
      },
      "min_off_gap": {
        "higher": "Перед новым циклом требуется более длительный простой",
        "lower": "Короткий простой запускает новый цикл – последовательные запуски могут разделиться"
      },
      "min_power": {
        "higher": "Менее чувствителен к фоновому потреблению; может пропустить тихие программы",
        "lower": "Более чувствителен; может регистрировать потребление в режиме ожидания как активность"
      },
      "no_update_active_timeout": {
        "higher": "Больше времени до признания цикла зависшим",
        "lower": "Принудительно останавливает зависший цикл быстрее"
      },
      "off_delay": {
        "higher": "Больше времени для пауз устройства – справляется с длительным замачиванием или сушкой",
        "lower": "Более быстрое определение конца – подходит для устройств с чётким вкл./выкл."
      },
      "profile_match_threshold": {
        "higher": "Подтверждает только высокоуверенные совпадения; больше циклов остаётся без метки",
        "lower": "Сопоставляет больше циклов; некоторые могут быть немного неверны"
      },
      "running_dead_zone": {
        "higher": "Игнорирует кратковременные скачки мощности в простое – менее чувствителен к шуму",
        "lower": "Реагирует на более короткие всплески мощности – улавливает быструю переходную активность"
      },
      "start_threshold_w": {
        "higher": "Исключает ложные запуски от кратковременных скачков мощности",
        "lower": "Улавливает маломощные программы; может сработать на шум"
      },
      "stop_threshold_w": {
        "higher": "Завершает цикл быстрее – может закрыть во время паузы",
        "lower": "Дольше ждёт завершения – меньше преждевременных завершений"
      },
      "watchdog_interval": {
        "higher": "Допускает более длительные тихие фазы; меньше ложных принудительных остановок",
        "lower": "Более агрессивно обнаруживает зависшие циклы"
      }
    },
    "reason": {
      "auto_label_confidence": "Уверенность на 15-м процентиле для {cycles} автоматических меток, которые пользователь ни разу не исправлял ({p15}).",
      "completion_min_seconds": "Половина длительности p05 корректного цикла ({minutes} min) по {cycles} циклам; отфильтровывает ложные циклы.{excl}",
      "dead_zone_batch": "Оставлено небольшим (медианное окно нестабильности при запуске по {cycles} циклам = {s}s), чтобы реальное завершение определялось быстро.",
      "dead_zone_from_dip": "На основе ранней просадки мощности, обнаруженной на {s}s.",
      "end_energy_default": "Рекомендуемое значение по умолчанию для порога шума в конце цикла.",
      "end_energy_false": "Энергия p95 ложных завершений ({p95}Wh) по {cycles} циклам, с нижней границей 0.2% от медианной энергии цикла ({floor}Wh).",
      "end_energy_no_false": "Ложных завершений за {cycles} циклов нет; нижняя граница - 0.2% от медианной энергии цикла ({floor}Wh).",
      "end_repeat_count": "{false}/{total} корректных циклов ({pct}%) имели внутреннюю паузу >60s с возобновлением; требуется {val} подтверждение(й) завершения.",
      "learning_confidence": "Уверенность p05 для {cycles} циклов, размеченных пользователем ({p05}); ниже этого значения запрашивается проверка.",
      "match_interval": "На основе наблюдаемой частоты обновлений (медиана={median}s) * 10.",
      "max_duration_ratio": "На основе длительностей размеченных циклов (p95={p95}).",
      "min_active": "На основе минимальной активной мощности ({min}W), зафиксированной в последнем цикле.",
      "min_duration_ratio": "Оставлено как можно ниже, чтобы программа распознавалась в начале цикла; пороги уверенности и неоднозначности предотвращают преждевременные подтверждения.",
      "min_off_gap": "На основе {gaps} наблюдаемых промежутков между циклами (p05={p05}s). Минимум устройства: {floor}s.",
      "min_power": "40% от наименьшей активной мощности p05 ({p05}W) по {cycles} корректным циклам, чтобы порог отключения оставался ниже реального потребления.{excl}",
      "ml_auto_label": "Наименьшая уверенность, при которой модель качества всё ещё считала цикл корректным (p10 по {cycles} корректным циклам = {p10}).",
      "ml_end_repeat": "{false}/{total} циклов ({pct}%) имели паузу, которую детектор завершения оценил выше 50%; требуется {val} подтверждение(й) завершения.",
      "ml_off_delay": "Паузы, подтверждённые детектором завершения: p95 {p95}s + запас 60s, по {pauses} паузам, проверенным моделью, за {cycles} циклов (минимум {floor}s).",
      "no_update_timeout": "На основе наблюдаемой частоты обновлений (p95={p95}s) * 20 (мин. 60s).",
      "off_delay_cadence": "На основе наблюдаемой частоты обновлений (p95={p95}s) * 5",
      "off_delay_device_floor": "Использован безопасный минимум для устройства {device} ({floor}s).",
      "off_delay_generic_floor": "Использован универсальный безопасный минимум ({floor}s).",
      "off_delay_pauses": "Рассчитано так, чтобы пережить реальные паузы: пауза внутри цикла p95 {p95}s + запас 60s, по {pauses} паузам за {cycles} корректных циклов (минимум {floor}s).",
      "profile_match_threshold": "Уверенность p10 для {cycles} правильных автоматических меток ({p10}); безопасный порог подтверждения в реальном времени.",
      "sampling_interval": "Медианный интервал обновления по {cycles} корректным циклам ({si}s).{excl}",
      "smoothing_window": "Рассчитано на сглаживание ~30s показаний при частоте опроса {si}s ({samples} отсчётов).",
      "start_duration": "Оставлено небольшим (~один интервал опроса {si}s), чтобы обнаружение начиналось как можно раньше, но при этом игнорировались одиночные всплески.",
      "thr_batch": "Оставлено чуть выше наименьшей активной мощности p05 по {cycles} циклам ({p05}W), чтобы запуск фиксировался как можно раньше, а порог остановки оставался ниже минимальной рабочей мощности машины.",
      "tol_per_profile": "p75 разброса длительности по профилям среди {profiles} профилей ({cycles} циклов); стабильные профили не штрафуются.",
      "tol_pooled": "На основе объединённого разброса длительности {cycles} недавних размеченных циклов (отклонение p95={dev}).",
      "watchdog": "Оставлено настолько низким, насколько это безопасно (3x интервал обновления p95, равный {p95}s, мин. 30s), чтобы зависания выявлялись быстро без ложных остановок."
    },
    "exclusions": {
      "summary": "Исключено {total} ошибочно определённых циклов: {parts}.",
      "reason": {
        "force_stopped": "принудительно остановленные",
        "interrupted": "прерванные",
        "incomplete": "незавершённые",
        "noise": "шум",
        "unlabeled": "без метки",
        "no_trace_short": "слишком короткие для анализа",
        "high_start": "начатые при высокой мощности",
        "abrupt_end": "резко завершённые",
        "mid_restart": "перезапуск в середине цикла",
        "no_power": "без мощности",
        "no_active_power": "без активной мощности"
      }
    }
  },
  "trend": {
    "down": "Нисходящая тенденция",
    "up": "Восходящая тенденция"
  },
  "maint": {
    "bearing_service": "Обслуживание подшипников",
    "descale": "Удаление накипи",
    "drum_clean": "Очистка барабана",
    "filter_clean": "Очистка фильтра",
    "other": "Другое"
  },
  "pg_desc": {
    "completion_min_seconds": "Кратчайший запуск, считающийся настоящим циклом",
    "end_repeat_count": "Сколько низких показаний подряд до завершения",
    "interrupted_min_seconds": "Короткие циклы помечаются как прерванные",
    "min_off_gap": "Промежуток для разделения двух циклов",
    "off_delay": "Секунды низкой мощности до завершения цикла",
    "start_duration_threshold": "Секунды выше порога для подтверждения старта",
    "start_threshold_w": "Минимум ватт, чтобы считать запущенным",
    "stop_threshold_w": "Ниже этого машина считается выключенной",
    "dtw_bandwidth": "Этап 3: полоса деформации Sakoe-Chiba (0 = DTW выключен; по умолчанию 0,2 = 20% длины цикла)",
    "corr_weight": "Этап 2: баланс между формой кривой (корреляция) и уровнем мощности (MAE); по умолчанию 0,45",
    "duration_weight": "Этап 4: насколько сильно совпадение по длительности влияет на итоговый балл (по умолчанию 0,22)",
    "energy_weight": "Этап 4: насколько сильно совпадение по энергии влияет на итоговый балл (по умолчанию 0,22)",
    "profile_match_min_duration_ratio": "Этап 1: минимальная длина цикла как доля длительности профиля; по умолчанию 0,1 (10%)",
    "profile_match_max_duration_ratio": "Этап 1: максимальная длина цикла как доля длительности профиля; по умолчанию 1,5 (150%)",
    "keep_min_score": "Этап 2: минимальный балл для участия в соревновании; по умолчанию 0,1 допускает слабые совпадения, поздние этапы выбирают лучшее",
    "dtw_blend": "Этап 3: 0 = только основной балл, 1 = только балл DTW, 0,5 = равное смешивание (по умолчанию)",
    "dtw_ensemble_w": "Этап 3 (режим ансамбля): вес масштабированного L1 против производного DTW; по умолчанию 0,7 отдаёт предпочтение уровню",
    "dtw_ddtw_scale": "Этап 3: расстояние полунасыщения DDTW; меньше = чувствительнее к форме (по умолчанию 30)",
    "dtw_refine_top_n": "Этап 3: кандидаты, переоцениваемые DTW; повысьте до 7-9, если правильный профиль занимает 4-5 место (по умолчанию 5)",
    "duration_scale": "Этап 4: логарифмическое отношение, при котором совпадение по длительности уменьшается вдвое; меньше = более строгий штраф (по умолчанию 0,175)",
    "energy_scale": "Этап 4: логарифмическое отношение, при котором совпадение по энергии уменьшается вдвое; меньше = более строгий штраф (по умолчанию 0,25)"
  },
  "col": {
    "profile_tip": "Название сопоставленной программы. «Без метки» означает, что в конце цикла не совпал ни один профиль.",
    "status_tip": "Результат цикла: Завершён (естественное окончание), Прерван (резкое падение мощности), Принудительно остановлен (вручную) или Требует проверки (ожидается отзыв).",
    "date_tip": "Дата и время начала цикла.",
    "duration_tip": "Общее время работы цикла от начала до конца.",
    "energy_tip": "Общее потреблённое количество энергии (кВт·ч). Вычисляется интегрированием мощности по времени.",
    "cost_tip": "Стоимость энергии для этого цикла, зафиксированная при завершении по действовавшей тогда цене (энергия × цена за кВт·ч). Укажите цену в Настройках, чтобы заполнить это поле.",
    "confidence_tip": "Достоверность совпадения профиля (0–100%). Насколько точно кривая мощности цикла совпала с определённой программой.",
    "health_tip": "ML-качество цикла (выше = лучше). Нажмите на цикл, чтобы проверить и оценить его.",
    "flags_tip": "Метки сообщества и индикаторы качества данных"
  },
  "stat": {
    "avg": "сред.",
    "min": "мин {v}",
    "max": "макс {v}",
    "consistency": "стабильность ±{v}",
    "total": "всего {v}",
    "last_run": "последний запуск {v}",
    "score": "балл {pct}%",
    "duration_cv": "CV длительности {pct}%",
    "avg_confidence": "сред. достоверность {pct}%"
  },
  "pg_evd": {
    "detected": "Детектор распознал, что цикл начался.",
    "match_commit": "Механизм сопоставления с достаточной уверенностью выбрал программу.",
    "match_changed": "Ведущая программа изменилась по мере того, как была видна большая часть цикла.",
    "match_ambiguous": "Две программы набрали близкие оценки, поэтому сопоставление было неопределённым.",
    "unmatched": "Ни одна сохранённая программа не подошла к этому циклу.",
    "notify_start": "Было бы отправлено уведомление о запуске.",
    "notify_pre_complete": "Было бы отправлено уведомление о том, что цикл почти завершён.",
    "notify_finish": "Было бы отправлено уведомление о завершении.",
    "notify_milestone": "Было бы отправлено уведомление о промежуточном этапе.",
    "notify_held": "Уведомление было отложено из-за тихих часов.",
    "finished": "Цикл достиг конечного состояния и завершился."
  },
  "store": {
    "browse": "Обзор",
    "device": "Устройство",
    "favorites": "Избранное",
    "search_ph": "Поиск по бренду или модели…",
    "no_results": "Подходящие устройства не найдены. Попробуйте другой запрос.",
    "n_programs": "{n} программ",
    "n_cycles": "{n} циклов",
    "no_programs": "Для этого устройства пока нет опубликованных программ.",
    "no_cycles": "Для этой программы пока нет опубликованных эталонных циклов.",
    "anon": "аноним",
    "uploaded_by": "Опубликовано пользователем {name}",
    "connected_as": "Вы вошли как {name}",
    "not_connected": "Не подключено. Подключите аккаунт GitHub, чтобы делиться своими циклами.",
    "import_new": "Новый профиль",
    "import_merge": "Объединить с существующим",
    "merge_target": "Объединить с профилем",
    "description": "Описание (необязательно)",
    "contributed_by": "от {name}",
    "rating_summary": "★ {avg} ({n})",
    "no_ratings": "Пока нет оценок",
    "website": "Сайт магазина ↗",
    "website_tip": "Открыть сайт магазина сообщества"
  },
  "settings": {
    "gear": {
      "title": "Настройки"
    }
  },
  "link": {
    "manual": "Руководство ↗",
    "add_appliance": "Добавить ваше устройство"
  },
  "tip": {
    "add_brand": "Бренда нет в списке? Добавьте его в каталог сообщества",
    "add_appliance": "Модели нет в списке? Добавьте ваше устройство в каталог сообщества",
    "add_profile": "Добавьте профиль для этого устройства на сайте сообщества"
  },
  "task": {
    "reprocess": {
      "matching": "Повторная обработка: сопоставление циклов",
      "golden": "Повторная обработка: заполнение эталонных",
      "suggestions": "Повторная обработка: предложения",
      "ml_training": "Повторная обработка: обучение ML",
      "health": "Повторная обработка: качество циклов"
    },
    "pg_sweep": {
      "optimize": "Оптимизация: {param}"
    },
    "pg_detail": {
      "simulate": "Смоделировать цикл"
    },
    "split": {
      "apply": "Разделение цикла"
    },
    "trim": {
      "apply": "Обрезка цикла"
    },
    "merge": {
      "apply": "Объединение циклов"
    },
    "rebuild": {
      "envelopes": "Пересчёт огибающих"
    },
    "cancelling": "Отмена..."
  },
  "setup": {
    "hdr": {
      "card": "Настройка устройства",
      "healthy_chip": "Настройка завершена"
    },
    "phase0": {
      "washer": "WashData уже обнаруживает ваши циклы. Запишите первый цикл, чтобы включить названия программ и оценки времени.",
      "dishwasher": "WashData наблюдает. Посудомоечные машины имеют сложные циклы – запись первого цикла настоятельно рекомендуется. Если обнаруженный цикл длится слишком долго, обрежьте его в редакторе циклов перед сохранением как профиль.",
      "generic": "WashData наблюдает. Запишите или пометьте обнаруженный цикл, чтобы начать создавать профили."
    },
    "phase1a": {
      "labelled": "Хорошее начало – ваша первая программа сохранена. Для наиболее чистых данных рассмотрите запись следующего цикла с помощью виджета записи."
    },
    "phase1b": {
      "recorded": "Ваша запись сохранена как {profile_name}. Теперь запишите или пометьте другие распространённые программы для расширения охвата."
    },
    "phase1c": {
      "verify": "У вас {count} программ от сообщества. Запустите цикл, чтобы убедиться, что WashData правильно их распознаёт – сопоставление будет улучшаться по мере того, как устройство накапливает собственную историю."
    },
    "phase2": {
      "cluster": "WashData обнаружил {count} циклов, которые не соответствуют ни одной сохранённой программе – они похожи друг на друга. Создать для них новый профиль?",
      "unmatched": "Ваш последний цикл не совпал ни с одной сохранённой программой. Это новая программа?"
    },
    "phase3": {
      "suggestions": "WashData имеет рекомендации по настройкам на основе истории ваших циклов – просмотрите их для повышения точности обнаружения.",
      "groups": "Некоторые ваши профили похожи на одну и ту же программу при разных температурах. Объедините их в группу для улучшения сопоставления.",
      "phases": "Добавьте фазы программы к {profile_name} для более точных оценок оставшегося времени."
    },
    "phase4": {
      "healthy": "Это устройство полностью настроено ({profile_count} профилей)."
    },
    "cta": {
      "start_recording": "Начать запись",
      "label_detected_cycle": "У меня уже есть обнаруженный цикл – пометить его вместо записи",
      "browse_cycles": "Просматривать циклы для пометки следующего",
      "view_profiles": "Просмотреть свои профили",
      "create_from_cluster": "Создать профиль из этих циклов",
      "create_profile": "Создать для него профиль",
      "review_suggestions": "Просмотреть предложения",
      "organise_profiles": "Упорядочить профили",
      "configure_phases": "Настроить фазы",
      "skip_step": "Пропустить этот шаг",
      "skip_forever": "Больше не показывать",
      "hide_guidance": "Скрыть подсказки",
      "show_guidance": "Показать подсказки"
    }
  }
}
