2242 lines
202 KiB
JSON
2242 lines
202 KiB
JSON
{
|
||
"card": {
|
||
"min": "мин",
|
||
"entity_not_found": "Объект не найден",
|
||
"running_long": "Работает долго",
|
||
"stalled": "Завис",
|
||
"remaining": "осталось",
|
||
"progress": "прогресс",
|
||
"show_time_remaining": "Показывать оставшееся время",
|
||
"show_percentage": "Показывать проценты",
|
||
"layout": {
|
||
"tile": "Плитка (компактно)",
|
||
"detail": "Подробно (расширенный)",
|
||
"glance": "Обзор (несколько устройств)"
|
||
},
|
||
"btn": {
|
||
"pause": "Пауза",
|
||
"resume": "Продолжить",
|
||
"terminate": "Завершить цикл",
|
||
"record_start": "Начать запись",
|
||
"record_stop": "Остановить запись",
|
||
"program": "Программа",
|
||
"open_panel": "Открыть WashData"
|
||
},
|
||
"editor": {
|
||
"layout": "Макет",
|
||
"entity": "Объект прибора",
|
||
"entities": "Приборы",
|
||
"title": "Заголовок",
|
||
"icon": "Значок",
|
||
"show_state": "Показывать состояние",
|
||
"show_program": "Показывать программу",
|
||
"show_progress_bar": "Показывать индикатор прогресса",
|
||
"spin_icon": "Вращать значок во время работы",
|
||
"display_mode": "Строка деталей",
|
||
"active_color": "Переопределение активного цвета",
|
||
"show_phase": "Показывать фазу",
|
||
"show_energy": "Показывать энергию и стоимость",
|
||
"show_anomaly": "Показывать предупреждение о превышении",
|
||
"show_sparkline": "Показывать график мощности в реальном времени",
|
||
"buttons": "Кнопки действий",
|
||
"program_entity": "Объект программы (переопределение)",
|
||
"time_entity": "Объект времени (переопределение)",
|
||
"pct_entity": "Объект прогресса (переопределение)",
|
||
"power_entity": "Объект мощности (переопределение)",
|
||
"tap_action": "Действие по нажатию",
|
||
"hold_action": "Действие по удержанию",
|
||
"double_tap_action": "Действие по двойному нажатию"
|
||
}
|
||
},
|
||
"badge": {
|
||
"quiet_tail_tip": "Ближе к концу эта программа затихает примерно на {mins} мин, затем потребляет около {watts} Вт в течение {secs} с. Замечено в {seen} из {measured} измеренных циклов.",
|
||
"quiet_tail": "~{mins} мин тишины в конце",
|
||
"artifact_tip": "Обнаружено {n} аномалии (например, дверь открылась в середине цикла) – откройте, чтобы увидеть их на графике",
|
||
"artifact_tip_one": "Обнаружена {n} аномалия (например, дверь открылась в середине цикла) – откройте, чтобы увидеть её на графике",
|
||
"artifact_tip_few": "Обнаружены {n} аномалии (например, дверь открылась в середине цикла) – откройте, чтобы увидеть их на графике",
|
||
"artifact_tip_many": "Обнаружено {n} аномалий (например, дверь открылась в середине цикла) – откройте, чтобы увидеть их на графике",
|
||
"artifact_tip_other": "Обнаружено {n} аномалии (например, дверь открылась в середине цикла) – откройте, чтобы увидеть их на графике",
|
||
"auto": "(авто-определение)",
|
||
"built_in_tag": "встроенный",
|
||
"declining": "↘ снижается",
|
||
"energy_low": "Энергопотребление ниже обычного",
|
||
"energy_spike": "Энергопотребление выше обычного",
|
||
"feedback_requested": "Запрошен отзыв",
|
||
"golden_cycle": "Записанный эталонный цикл",
|
||
"duration_outlier": "Циклы необычной длительности: {n}",
|
||
"improving": "↗ улучшается",
|
||
"manual": "(выбрано вручную)",
|
||
"needs_review": "Требуется проверка",
|
||
"overrun": "Работал дольше обычного",
|
||
"poor_fit": "низкое качество",
|
||
"restart_gap_tip": "{n} пропуска при перезапуске HA: в графике мощности есть разрывы",
|
||
"restart_gap_tip_one": "{n} пропуск при перезапуске HA: в графике мощности есть разрыв",
|
||
"restart_gap_tip_few": "{n} пропуска при перезапуске HA: в графике мощности есть разрывы",
|
||
"restart_gap_tip_many": "{n} пропусков при перезапуске HA: в графике мощности есть разрывы",
|
||
"restart_gap_tip_other": "{n} пропуска при перезапуске HA: в графике мощности есть разрывы",
|
||
"reviewed": "Рассмотрено",
|
||
"steady": "→ стабильно",
|
||
"underrun": "Завершился быстрее обычного",
|
||
"overrun_ratio": "({x}× от ожидаемого)",
|
||
"underrun_ratio": "({pct}% от ожидаемого)",
|
||
"imported_tip": "Импортировано из магазина сообщества. Используется только для сопоставления, не учитывается в статистике.",
|
||
"unmatchable": "не сопоставляется",
|
||
"not_importable": "недоступно",
|
||
"exists": "существует",
|
||
"backfilled_tip": "Обнаружено в импортированной истории мощности. Влияет только на сопоставление программ, не учитывается в статистике.",
|
||
"armed": "(применится к следующему циклу)",
|
||
"awaiting_tip": "Ожидает одобрения сообществом",
|
||
"awaiting_n": "Ожидает одобрения · {n} подтверждено",
|
||
"awaiting": "Ожидает одобрения",
|
||
"approved": "Одобрено",
|
||
"matcher_unused": "Пока не сопоставлено ни с одним вашим циклом",
|
||
"matcher_used": "Сопоставлено с {n} вашими циклами",
|
||
"matcher_used_one": "Сопоставлено с {n} вашим циклом",
|
||
"matcher_used_few": "Сопоставлено с {n} вашими циклами",
|
||
"matcher_used_many": "Сопоставлено с {n} вашими циклами",
|
||
"matcher_used_other": "Сопоставлено с {n} вашими циклами",
|
||
"matcher_used_tip": "Циклы на этом приборе, которые WashData сам сопоставил с этой импортированной программой. Импорт, который ни разу не сопоставился, может не подходить вашему прибору; его можно удалить. Считается локально; в магазин ничего не отправляется."
|
||
},
|
||
"btn": {
|
||
"pg_preset_delete": "Удалить пресет",
|
||
"pg_preset_load": "Загрузить пресет",
|
||
"pg_preset_load_tip": "Заменить значения в песочнице этим пресетом (активные настройки не изменятся)",
|
||
"pg_preset_save": "Сохранить как пресет",
|
||
"pg_preset_save_tip": "Сохранить все значения ниже как именованный пресет для этого устройства",
|
||
"reset_zoom": "Сбросить масштаб",
|
||
"set_brand_model": "Указать бренд и модель",
|
||
"refresh_catalog": "Обновить каталог",
|
||
"add_device": "+ Добавить устройство",
|
||
"add_device_tip": "Добавить ещё одно устройство WashData",
|
||
"add_maintenance": "Добавить событие обслуживания",
|
||
"add_phase": "+ Добавить фазу",
|
||
"add_timer": "+ Добавить таймер",
|
||
"apply_all": "Применить всё",
|
||
"apply_label": "Применить метку",
|
||
"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": "Создать",
|
||
"delete": "Удалить",
|
||
"delete_group": "Удалить группу",
|
||
"delete_group_tip": "Удалить только эту группу – профили участников останутся",
|
||
"delete_profile": "Удалить профиль",
|
||
"discard": "Отменить",
|
||
"discard_tip": "Отменить запись без сохранения",
|
||
"dismiss": "Закрыть",
|
||
"mute_suggestion": "Не предлагать эту настройку",
|
||
"pg_load_live": "Загрузить активные настройки",
|
||
"pg_load_live_tip": "Перечитать текущие настройки интеграции и отменить все изменения в песочнице",
|
||
"pg_load_suggested": "Загрузить рекомендуемые ({n})",
|
||
"pg_load_suggested_tip": "Загрузить текущие рекомендации автонастройщика как переопределения в песочнице",
|
||
"pg_publish_all": "Сохранить в настройки ({n})",
|
||
"pg_publish_one": "Сохранить «{label}» в настройки интеграции",
|
||
"reset_muted": "Сбросить заглушённые",
|
||
"reset_phase_tip": "Отменить ваши изменения и восстановить встроенную фазу",
|
||
"done": "Готово",
|
||
"edit": "Редактировать",
|
||
"export": "Экспортировать",
|
||
"force_stop": "Принудительная остановка",
|
||
"force_stop_tip": "Немедленно завершить текущий цикл и пометить его как принудительно остановленный",
|
||
"from_template": "Из шаблона ▾",
|
||
"ignore": "Игнорировать",
|
||
"import_json": "Импорт из JSON",
|
||
"inspect": "Проверить",
|
||
"label": "Пометить",
|
||
"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": "Приостановить текущий цикл – прибор продолжит работу с того места, где остановился",
|
||
"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_settings_tip": "Обновить настройки с сервера",
|
||
"relabel": "Изменить метку ({count})",
|
||
"remove": "Удалить",
|
||
"remove_timer": "Удалить таймер",
|
||
"reset": "Сбросить",
|
||
"reset_ml_models_tip": "Откажитесь от доработанных моделей и вернитесь к встроенным. WashData может переучить их позже.",
|
||
"reset_to_builtin": "Сбросить до встроенных моделей",
|
||
"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": "Запустить авто-пометку",
|
||
"save": "Сохранить",
|
||
"save_access_control": "Сохранить управление доступом",
|
||
"save_group": "Сохранить группу",
|
||
"save_panel_settings": "Сохранить настройки панели",
|
||
"save_phases": "Сохранить фазы",
|
||
"save_preferences": "Сохранить настройки",
|
||
"save_reminders": "Сохранить напоминания",
|
||
"save_review": "Сохранить проверку",
|
||
"save_settings": "Сохранить настройки",
|
||
"select": "Выбрать",
|
||
"select_all": "Выбрать все",
|
||
"select_none": "Снять выбор",
|
||
"show_only": "Показать только",
|
||
"split": "Разбить",
|
||
"stop": "Остановить",
|
||
"submit_correction": "Отправить исправление",
|
||
"train_now": "Обучить сейчас",
|
||
"trim": "Обрезать",
|
||
"trim_split": "Обрезать / Разбить",
|
||
"undo": "Отменить",
|
||
"unlabel_selected": "Снять метку с выбранных ({n})",
|
||
"unlabel_selected_tip": "Снять метку с выбранных циклов. Они останутся в истории, но перестанут формировать этот профиль.",
|
||
"use": "Использовать",
|
||
"wipe_all": "Удалить все данные",
|
||
"delete_selected": "Удалить выбранные ({n})",
|
||
"pg_apply_best": "Применить лучшее",
|
||
"pg_apply_to_settings_tip": "Скопировать значения, изменённые здесь, в активные настройки этого устройства",
|
||
"import": "Импортировать",
|
||
"disconnect": "Отключить",
|
||
"connect_github": "Подключить GitHub",
|
||
"share_to_store": "Поделиться в магазине",
|
||
"share": "Поделиться",
|
||
"browse_community_setups": "Обзор конфигураций сообщества",
|
||
"download_device": "Скачать конфигурацию устройства",
|
||
"share_device": "Поделиться конфигурацией устройства",
|
||
"share_device_tip": "Поделиться этим прибором и его эталонными циклами в магазине сообщества, чтобы владельцы такой же машины могли их взять.",
|
||
"share_n": "Поделиться циклами: {n}",
|
||
"export_selected": "Экспорт (выбрать данные)",
|
||
"export_all": "Быстрый экспорт всего",
|
||
"download_export": "Скачать экспорт",
|
||
"analyze_import": "Анализировать файл",
|
||
"import_selected": "Импортировать выбранное",
|
||
"back": "Назад",
|
||
"import_power_history": "Импорт истории мощности",
|
||
"hist_read_recorder": "Считать из Home Assistant",
|
||
"hist_scan": "Найти циклы",
|
||
"hist_import_n": "Импортировать циклы ({n})",
|
||
"hist_goto_cycles": "Показать циклы",
|
||
"save_total_cycles": "Сохранить общее количество",
|
||
"clear": "Очистить",
|
||
"add_brand": "Добавить бренд",
|
||
"log_done_task": "Отметить выполненным: {task}",
|
||
"add_task": "Добавить задачу",
|
||
"add_appliance": "Добавить устройство",
|
||
"retry": "Повторить",
|
||
"confirm_appliance": "Подтвердить это устройство",
|
||
"confirmed": "Подтверждено",
|
||
"create_profile_from_gap": "Создать профиль",
|
||
"undo_import": "Отменить последний импорт",
|
||
"pg_rerun": "Обновить симуляцию"
|
||
},
|
||
"note": {
|
||
"off_delay": {
|
||
"effective": "Завершённый цикл на самом деле ждёт {eff} с, а не {delay} с: Минимальная Пауза Выключения ({gap} с) длиннее и имеет приоритет."
|
||
}
|
||
},
|
||
"conflict": {
|
||
"anti_wrinkle_max": {
|
||
"max": "Должен быть выше Порога Запуска ({start} Вт); иначе ограничение длительности защиты от морщин обходится",
|
||
"start": "Должен быть ниже Макс. Мощности Защиты от Морщин ({max} Вт)"
|
||
},
|
||
"attn_sub": "Исправьте конфликты перед сохранением",
|
||
"attn_title": "Конфликты настроек: {n}",
|
||
"price_entity": {
|
||
"power_sensor": "Это Датчик Мощности устройства, а не цена. Циклы считались бы в ваттах за кВт·ч; очистите это поле.",
|
||
"energy_sensor": "Это Счётчик Энергии устройства, а не цена. Циклы считались бы по показанию счётчика за кВт·ч; очистите это поле.",
|
||
"device_class": "Этот датчик измеряет {dc}, а не цену за кВт·ч. Очистите это поле или выберите датчик тарифа.",
|
||
"unit": "Этот датчик выдаёт значения в {unit}, а не цену за кВт·ч. Очистите это поле или выберите датчик тарифа."
|
||
},
|
||
"settings_banner": "Конфликты настроек: {n}. Проверьте выделенные разделы и исправьте их перед сохранением.",
|
||
"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} с), чтобы сигнал застрявшего насоса сработал первым",
|
||
"timeout": "Должно превышать Длительность Застревания Насоса ({ps} с), чтобы сигнал застрявшего насоса сработал первым"
|
||
},
|
||
"start_dur": {
|
||
"sampling": "Интервал Выборки превышает Длительность Запуска ({sdt} с); одиночные выбросы могут открыть цикл",
|
||
"threshold": "Должен быть не менее одного Интервала Выборки ({si} с), чтобы предотвратить фальстарты от одиночного отсчёта"
|
||
},
|
||
"unmatch": {
|
||
"match": "Должен быть выше Порога Несовпадения ({un})",
|
||
"unmatch": "Должен быть ниже Порога Совпадения ({match}); иначе принятое совпадение немедленно теряется"
|
||
},
|
||
"cascade_toast": "Другие настройки изменены для согласованности: {n}",
|
||
"suggestion_resolves": "Активируйте ожидающее предложение ({val}) ниже, чтобы исправить это",
|
||
"use_fix": "Использовать {val}",
|
||
"watchdog": {
|
||
"interval": "Должен быть не менее 2x Интервала Выборки ({si} с)",
|
||
"sampling": "Интервал Выборки должен быть не более половины Интервала Watchdog ({wi} с)"
|
||
},
|
||
"end_energy": {
|
||
"energy": "Слишком строго для Порога Остановки ({w} Вт) в течение Задержки Выключения ({d} с); цикл может завершиться только резервным путём",
|
||
"stop": "Энергия Завершения ({e} Вт·ч за {d} с) допускает только {p} Вт"
|
||
}
|
||
},
|
||
"hdr": {
|
||
"custom_tasks": "Свои задачи",
|
||
"maintenance_supporter": "Нужно больше?",
|
||
"access_control": "Управление доступом",
|
||
"add_maintenance": "Добавить событие обслуживания",
|
||
"automation_delete": "Удалить эту автоматизацию",
|
||
"automation_needs_review": "Этот цикл требует проверки",
|
||
"automation_open": "Открыть в редакторе автоматизаций",
|
||
"automation_review_this_cycle": "Проверить этот цикл",
|
||
"automations": "Автоматизации",
|
||
"clear_debug": "Очистить отладочные данные",
|
||
"diagnostics_pref": "Диагностика",
|
||
"display": "Отображение",
|
||
"export_import": "Экспорт / Импорт",
|
||
"live_power": "Текущая мощность",
|
||
"logs": "Журналы",
|
||
"maintenance": "Действия по обслуживанию",
|
||
"maintenance_log": "Журнал обслуживания",
|
||
"maintenance_reminders": "Напоминания об обслуживании",
|
||
"manual_recording": "Ручная запись",
|
||
"manual_recording_tip": "Запишите цикл намеренно: нажмите «Начать запись» прямо перед запуском прибора и «Стоп» по завершении, затем «Обработать», чтобы сохранить его как профиль.",
|
||
"ml_learned": "Что WashData узнал",
|
||
"ml_settings_card": "Настройки",
|
||
"ml_smart_learning": "Умное обучение",
|
||
"my_preferences": "Мои настройки",
|
||
"no_automations": "Пока нет автоматизаций, ссылающихся на это устройство.",
|
||
"panel_settings": "Настройки панели",
|
||
"pg_settings_source": "Источник настроек",
|
||
"phase_catalog": "Каталог фаз",
|
||
"playground": "Песочница",
|
||
"process_history": "Обработка истории",
|
||
"settings_history": "История настроек",
|
||
"status": "Статус",
|
||
"status_graph": "График статуса",
|
||
"storage_stats": "Статистика хранилища",
|
||
"toggle_sidebar": "Переключить боковую панель Домашнего помощника",
|
||
"wipe_history": "Очистить историю",
|
||
"pg_detection_params": "Настройки обнаружения",
|
||
"pg_outcome": "Результат симуляции",
|
||
"pg_across_cycles": "По всем вашим циклам",
|
||
"community_store": "Магазин сообщества",
|
||
"online_account": "Магазин сообщества и онлайн-функции",
|
||
"import_power_history": "Импорт истории мощности",
|
||
"service_status": "Состояние обслуживания",
|
||
"online_account_tab": "Онлайн и сообщество",
|
||
"live_match_debug": "Отладка текущего сопоставления"
|
||
},
|
||
"health": {
|
||
"fair": "Приемлемое качество профиля",
|
||
"good": "✓ Хорошее качество профиля",
|
||
"poor": "⚠ Низкое качество профиля"
|
||
},
|
||
"lbl": {
|
||
"envelope_position_tip": "Положение на записанной кривой сопоставленной программы: {pct}%. Определяется совмещением цикла с профилем, поэтому остаётся верным при более длинном или коротком прогоне. Обновляется, когда прибор затихает, поэтому может отставать.",
|
||
"envelope_position": "кривая {pct}%",
|
||
"aria_playground_chart3": "Интерактивный график мощности цикла: наведите, чтобы увидеть время/мощность, прокрутите или используйте два пальца для масштабирования, перетащите для панорамирования",
|
||
"device_unresolved": "Недоступное устройство ({id})",
|
||
"drag_to_resize": "Перетащите, чтобы изменить размер",
|
||
"task_name": "Задача",
|
||
"every_cycles": "Интервал (циклы)",
|
||
"every_days": "Интервал (дни)",
|
||
"new_task_name": "Новая задача",
|
||
"days_since_service": "{since} / {total} дней",
|
||
"actions": "Действия",
|
||
"activity": "Активность",
|
||
"administrators": "Администраторы",
|
||
"aria_compare_chart": "График сравнения циклов",
|
||
"aria_cycle_chart": "Кривая мощности цикла",
|
||
"aria_envelope_chart": "График огибающей мощности профиля",
|
||
"aria_phase_chart": "График редактора фаз",
|
||
"aria_power_chart": "График потребления мощности",
|
||
"aria_spaghetti_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": "Сравнить с профилями",
|
||
"confidence": "Достоверность",
|
||
"confidence_threshold": "Порог достоверности",
|
||
"correct_duration": "Исправить продолжительность (мин, необязательно)",
|
||
"correct_profile": "Исправить профиль",
|
||
"cost": "Стоимость",
|
||
"create_new_profile": "+ Создать новый профиль…",
|
||
"current_phase": "Текущая фаза",
|
||
"cycle": "Цикл",
|
||
"cycle_date_display": "Отображение даты цикла",
|
||
"cycles_count": "Циклы",
|
||
"cycles_lc": "циклов",
|
||
"date": "Дата",
|
||
"debug_traces": "Отладочные данные",
|
||
"default_access_level": "Уровень доступа по умолчанию для пользователей, не указанных ниже",
|
||
"default_other": "По умолчанию (другие устройства)",
|
||
"default_tab": "Вкладка по умолчанию при открытии панели",
|
||
"font_size": "Размер шрифта панели",
|
||
"description": "Описание",
|
||
"duration": "Продолжительность",
|
||
"enable_access_control": "Включить контроль доступа для каждого пользователя",
|
||
"energy": "Энергия",
|
||
"event_type": "Тип события",
|
||
"expected": "Ожидаемо",
|
||
"suspected_profile": "{name} (предположительно)",
|
||
"runner_up_profile": "{name} (второй вариант)",
|
||
"expected_duration": "Ожидаемая продолжительность (мин)",
|
||
"file_kb": "Файл (кБ)",
|
||
"from": "От",
|
||
"gap_s": "Пауза (с)",
|
||
"group_name": "Название группы",
|
||
"head_trim": "Обрезка начала (с)",
|
||
"hide_tabs": "Скрыть вкладки для не-администраторов",
|
||
"json_data": "Данные JSON",
|
||
"label": "Сопоставленная программа",
|
||
"last": "Последние",
|
||
"last_checked": "Последняя проверка:",
|
||
"load_from_file": "Загрузить из файла",
|
||
"manual_duration": "Ручная продолжительность (мин, необязательно)",
|
||
"match": "Совпадение",
|
||
"members": "Участники",
|
||
"mode_existing_profile": "Добавить к существующему профилю",
|
||
"mode_new_profile": "Создать новый профиль",
|
||
"models_fine_tuned": "(точно настроенные модели: {count})",
|
||
"n_selected": "{n} выбрано",
|
||
"n_tuning_suggestions": "{n} предложения по настройке",
|
||
"n_tuning_suggestions_one": "{n} предложение по настройке",
|
||
"n_tuning_suggestions_few": "{n} предложения по настройке",
|
||
"n_tuning_suggestions_many": "{n} предложений по настройке",
|
||
"n_tuning_suggestions_other": "{n} предложения по настройке",
|
||
"new_profile_name": "Новое имя профиля",
|
||
"notes": "Заметки",
|
||
"panel_default_tab": "Вкладка по умолчанию",
|
||
"panel_language": "Язык панели",
|
||
"per_cycle_short": "цикл",
|
||
"pg_best_value": "Найдено лучшее значение",
|
||
"pg_current_value": "Текущее значение:",
|
||
"pg_drag_hint": "Перетащите линию на графике",
|
||
"pg_ev_ending": "Завершение",
|
||
"pg_ev_running": "Работает",
|
||
"pg_group_advanced": "Особые случаи",
|
||
"pg_group_detection": "Триггеры обнаружения",
|
||
"pg_group_timing": "Правила времени",
|
||
"pg_idle": "Ожидание",
|
||
"pg_anti_wrinkle": "Защита от морщин",
|
||
"pg_poor_match": "Плохое совпадение",
|
||
"pg_preset": "Пресет песочницы",
|
||
"pg_preset_name": "Имя нового пресета",
|
||
"pg_preset_none": "Выберите пресет…",
|
||
"pg_strong_match": "Сильное совпадение",
|
||
"pg_weak_match": "Слабое совпадение",
|
||
"phase_name": "Имя фазы",
|
||
"name": "Имя",
|
||
"phase_timeline": "Хронология фаз",
|
||
"power": "Мощность",
|
||
"profile": "Профиль",
|
||
"profile_name": "Имя профиля",
|
||
"program": "Программа",
|
||
"program_tip": "Выберите, с какой программой сопоставляется текущий цикл. Авто-определение выбирает лучшее совпадение. Закрепите программу, если авто-определение ошибается; программа, выбранная до запуска, применится к следующему циклу.",
|
||
"progress": "Прогресс",
|
||
"raw_socket": "Необработанный сокет",
|
||
"ref_cycle": "Эталонный цикл (необязательно)",
|
||
"remaining": "Осталось",
|
||
"reminder_every": "Напоминать каждые (циклы)",
|
||
"remove_label": "- Удалить метку -",
|
||
"rename_profile": "Переименовать профиль",
|
||
"resulting_profile": "Результирующий профиль",
|
||
"save_mode": "Режим сохранения",
|
||
"seconds_from_start": "Секунды от начала",
|
||
"select_profile": "Выбрать профиль",
|
||
"setting": "Настройка",
|
||
"settings_advanced": "Дополнительно",
|
||
"settings_basic": "Основные",
|
||
"settings_detail_level": "Уровень детализации настроек",
|
||
"show_debug": "Показать отладочную карточку на странице статуса (достоверность, неоднозначность, лучшие кандидаты)",
|
||
"show_expected": "Показать ожидаемую кривую (сопоставленный профиль, оранжевый)",
|
||
"show_raw": "Показать переключатель необработанных данных розетки на графике мощности в реальном времени",
|
||
"sparkline": "Недавняя динамика длительности циклов",
|
||
"status": "Статус",
|
||
"tail_trim": "Обрезка конца (с)",
|
||
"tap_to_dismiss": "коснитесь графика, чтобы закрыть",
|
||
"timer_auto_pause": "Авто-пауза",
|
||
"timer_min": "мин",
|
||
"timer_msg_placeholder": "Сообщение (необязательно, {device}/{program}/{minutes})",
|
||
"to": "До",
|
||
"ungrouped": "Без группы",
|
||
"unlabelled": "Без метки",
|
||
"unlabelled_paren": "(без метки)",
|
||
"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_time_left_model": "Осталось времени (модель)",
|
||
"pg_time_left_model_tip": "Оценка по фазам программы, а не фиксированный обратный отсчёт",
|
||
"phase": "Фаза",
|
||
"pg_mode_history": "Проверка на истории",
|
||
"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_obj_match": "Точность совпадений",
|
||
"pg_obj_endtiming": "Точность завершения",
|
||
"pg_obj_falseend": "Частота ложных завершений",
|
||
"pg_obj_overrun": "Отклонение длительности",
|
||
"pg_obj_ambiguity": "Частота неоднозначности",
|
||
"pg_mode_optimize": "Оптимизировать",
|
||
"pg_group_matching": "Сопоставление программ",
|
||
"pg_zoom_hint": "двойной щелчок сбрасывает масштаб",
|
||
"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": "Достоверность совпадения",
|
||
"n_imported_note": ", {n} импортировано",
|
||
"enable_online": "Включить онлайн-функции",
|
||
"anonymous": "Анонимно",
|
||
"adopt_settings": "Принять настройки",
|
||
"flags": "Метки",
|
||
"include_phase_map": "Включить карту фаз",
|
||
"include_settings": "Включить настройки",
|
||
"show_contributor": "Показать автора",
|
||
"task_pg_detail": "Смоделировать цикл",
|
||
"task_split": "Разделение цикла",
|
||
"task_trim": "Обрезка цикла",
|
||
"task_merge": "Объединение циклов",
|
||
"task_rebuild": "Пересчёт огибающих",
|
||
"cat_profiles": "Профили (программы)",
|
||
"cat_real_cycles": "Циклы (история запусков)",
|
||
"cat_reference_cycles": "Справочные циклы (импортированные)",
|
||
"cat_custom_phases": "Пользовательские фазы",
|
||
"cat_profile_groups": "Группы профилей",
|
||
"cat_settings": "Настройки обнаружения и распознавания",
|
||
"cat_ml_models": "ML-модели",
|
||
"cat_feedback": "Отзывы и метки проверки",
|
||
"cat_suggestions": "Предложения",
|
||
"cat_maintenance_log": "Журнал обслуживания",
|
||
"cat_history_logs": "Журналы истории и изменений",
|
||
"cat_lifetime_stats": "Итоги за всё время",
|
||
"cycles_short": "циклов",
|
||
"import_mode": "Как объединить",
|
||
"mode_merge": "Объединить (сохранить мои)",
|
||
"mode_replace": "Заменить выбранное",
|
||
"cycle_destination": "Куда поместить импортированные циклы?",
|
||
"dest_reference": "Справочные (только форма)",
|
||
"dest_real_history": "Реальная история (учитывается в статистике)",
|
||
"conflict_resolution": "Конфликты имён",
|
||
"conflict_import_copy": "Импортировать как копию",
|
||
"conflict_keep_mine": "Сохранить мои",
|
||
"conflict_overwrite": "Перезаписать",
|
||
"hist_csv_data": "Данные CSV",
|
||
"hist_from_recorder": "Или считать из Home Assistant",
|
||
"hist_keep": "Сохранить этот цикл",
|
||
"hist_looks_complete": "завершён",
|
||
"peak_power_short": "Пик",
|
||
"shape": "Форма",
|
||
"hist_skip_idle": "ничего не работало",
|
||
"hist_skip_sparse": "показания слишком редкие",
|
||
"hist_skip_short": "слишком мало показаний",
|
||
"hist_skip_long": "нет достаточно длинной паузы для разделения",
|
||
"hist_reason_short": "короче самого короткого реального цикла этого прибора",
|
||
"hist_reason_no_end": "так и не завершился корректно",
|
||
"hist_since": "Начиная с",
|
||
"task_history_import": "Сканирование истории мощности",
|
||
"task_history_import_apply": "Импорт циклов",
|
||
"evidence_real_cycles": "Циклы, выполненные этой машиной",
|
||
"evidence_reference_cycles": "Загружены из магазина сообщества",
|
||
"evidence_backfill_cycles": "Найдены в импортированной истории мощности",
|
||
"zoom_hint_touch": "масштаб двумя пальцами",
|
||
"zoom_hint_touch_zoomed": "масштаб двумя пальцами · двойное касание для сброса",
|
||
"cycles_since_service": "{since} / {total} циклов",
|
||
"total_cycles_run": "циклов всего",
|
||
"correct_total_cycles": "Исправить общее количество",
|
||
"hist_reason_already_recorded": "перекрывается с циклом, уже записанным WashData",
|
||
"share_consent": "Подтверждаю, что эти циклы прошли до нормального завершения без прерываний",
|
||
"show_internal": "Показать внутренние настройки",
|
||
"show_internal_tip": "Настройки, которые WashData подбирает за вас (выборка, watchdog, частота сопоставления, пороги). Показываются, если у этого устройства своё значение, конфликт или предложение.",
|
||
"rate_n": "{n} звёзд",
|
||
"rate_quality": "Оценить качество",
|
||
"pg_autolabel": "Автоматическая маркировка",
|
||
"pg_label_review": "Требует проверки",
|
||
"pg_ev_match_reverted": "Совпадение отменено",
|
||
"pg_ev_verified_pause": "Подтверждённая пауза",
|
||
"n_samples": "{n} показаний",
|
||
"n_samples_one": "{n} показание",
|
||
"n_samples_few": "{n} показания",
|
||
"n_samples_many": "{n} показаний",
|
||
"n_samples_other": "{n} показания",
|
||
"n_cycles": "{n} циклов",
|
||
"n_cycles_one": "{n} цикл",
|
||
"n_cycles_few": "{n} цикла",
|
||
"n_cycles_many": "{n} циклов",
|
||
"n_cycles_other": "{n} цикла",
|
||
"energy_per_cycle": "{v}/цикл",
|
||
"energy_total": "всего {v}",
|
||
"automation_off": "(выкл.)",
|
||
"ref_cycle_none": "Нет",
|
||
"share_name": "Показывать моё имя в публикациях",
|
||
"cat_backfill_cycles": "Циклы, найденные в импортированной истории мощности",
|
||
"pg_compare_profile": "Сравнить с профилем",
|
||
"pg_obj_early": "Частота ранних завершений",
|
||
"pg_obj_endlag": "Задержка завершения (медиана)",
|
||
"pg_obj_split": "Частота разбиений",
|
||
"pg_sweep_cycles": "Последние циклы",
|
||
"cycle_context": "История из recorder вокруг цикла",
|
||
"cycle_context_off": "Выключено",
|
||
"cycle_context_minutes": "{min} мин",
|
||
"cycle_context_series": "История из recorder",
|
||
"before_start": "До начала",
|
||
"after_end": "После окончания"
|
||
},
|
||
"log": {
|
||
"all_levels": "Все уровни",
|
||
"all_devices": "Все устройства",
|
||
"all_components": "Все компоненты",
|
||
"search_ph": "Поиск в журналах…"
|
||
},
|
||
"ml": {
|
||
"builtin_models": "● Использует встроенные модели",
|
||
"fit_good": "Хорошо",
|
||
"fit_slight": "Незначительное",
|
||
"fit_strong": "Сильное",
|
||
"fit_word": "соответствие",
|
||
"personalized": "● Настроено под эту машину",
|
||
"better_than_baseline": "{pct}% лучше базовой оценки ({metric})",
|
||
"trend_improving_tip": "Соответствие этой модели улучшилось за последние повторные проверки.",
|
||
"trend_declining_tip": "Соответствие этой модели ухудшилось за последние повторные проверки; проверка большего числа циклов может помочь ей переобучиться.",
|
||
"trend_steady_tip": "Соответствие этой модели оставалось примерно стабильным за последние повторные проверки.",
|
||
"cap_blurb": {
|
||
"total_energy": "Прогноз общего расхода энергии и стоимости"
|
||
},
|
||
"cap_label": {
|
||
"total_energy": "Оценка энергопотребления"
|
||
},
|
||
"metric_mae": "ошибка {model} против базовой модели {baseline}",
|
||
"fine_tuned_at": "точно настроено {when}",
|
||
"held_out_count": "измерено на {count} отложенных циклах",
|
||
"held_out_count_one": "измерено на {count} отложенном цикле",
|
||
"held_out_count_few": "измерено на {count} отложенных циклах",
|
||
"held_out_count_many": "измерено на {count} отложенных циклах",
|
||
"held_out_count_other": "измерено на {count} отложенного цикла",
|
||
"last_run_not_promoted": "Последняя проверка ({when}): {reason}",
|
||
"never": "никогда",
|
||
"skip_reason": {
|
||
"fit_failed": "Ошибка обучения: {error}",
|
||
"holdout_too_small": "Слишком мало циклов, чтобы честно проверить новую модель: для проверки удалось отложить {held_out}, а нужно {min}.",
|
||
"insufficient_rows": "Пока недостаточно пригодных циклов: на данный момент {count} помеченных чистых циклов.",
|
||
"insufficient_rows_one": "Пока недостаточно пригодных циклов: на данный момент {count} помеченный чистый цикл.",
|
||
"insufficient_rows_few": "Пока недостаточно пригодных циклов: на данный момент {count} помеченных чистых цикла.",
|
||
"insufficient_rows_many": "Пока недостаточно пригодных циклов: на данный момент {count} помеченных чистых циклов.",
|
||
"insufficient_rows_other": "Пока недостаточно пригодных циклов: на данный момент {count} помеченного чистого цикла.",
|
||
"not_better_than_incumbent": "Новая модель оказалась не лучше используемой (ошибка {model} против {incumbent}), поэтому оставлена текущая.",
|
||
"not_better_than_naive": "Новая модель оказалась не заметно лучше простой оценки (ошибка {model} против {naive}).",
|
||
"unknown": "Ничего нового не выучено."
|
||
},
|
||
"trained_unknown": "в неизвестное время"
|
||
},
|
||
"modal": {
|
||
"auto_label": "Автоматическая пометка циклов",
|
||
"correct_feedback": "Исправить отзыв",
|
||
"create_profile": "Создать профиль",
|
||
"cycle": "Цикл",
|
||
"edit_group": "Редактировать группу профилей",
|
||
"edit_phase": "Редактировать фазу",
|
||
"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": "Удалить устаревшие действия",
|
||
"reset_phase_msg": "Отменить ваши изменения фазы «{name}» и восстановить встроенную фазу? Программы сохранят свои диапазоны.",
|
||
"reset_phase_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": "Поделиться конфигурацией устройства",
|
||
"export_select": "Экспорт - выбор данных",
|
||
"import_wizard": "Импорт - выбор данных",
|
||
"history_import": "Импорт истории мощности",
|
||
"apply_suggestions_title": "Применить предложения",
|
||
"remove_task_title": "Удалить задачу",
|
||
"remove_task_msg": "Удалить напоминание «{task}»? Его записи в журнале обслуживания сохранятся.",
|
||
"apply_suggestions_msg": "Изменить эти настройки ({n})? После сохранения интеграция перезагрузится.",
|
||
"discard_settings_title": "Отменить несохранённые изменения?",
|
||
"discard_settings_msg": "Несохранённые изменения настроек: {n}. Покинуть Настройки и отменить их?",
|
||
"profile_title": "Профиль · {name}",
|
||
"undo_import_msg": "Данные и настройки этого устройства вернутся к состоянию до последнего импорта ({when}). Циклы, записанные с тех пор, и сделанные изменения будут потеряны.",
|
||
"undo_import_ok": "Отменить импорт",
|
||
"undo_import_title": "Отменить последний импорт"
|
||
},
|
||
"msg": {
|
||
"pg_canvas_empty3": "Выберите цикл выше и нажмите «Запустить», чтобы смоделировать его. Затем наведите указатель, чтобы увидеть значения, прокрутите или используйте два пальца для масштабирования и перетащите для панорамирования.",
|
||
"pg_preset_delete_confirm": "Удалить пресет «{name}»?",
|
||
"pg_preset_limit": "Достигнут предел числа пресетов ({n})",
|
||
"pg_preset_overwrite": "Перезаписать пресет «{name}»?",
|
||
"tail_trim_hint": "Сколько секунд обрезать с конца",
|
||
"store_sibling_hint": "Для вашей модели ничего нет? Родственная модель той же марки обычно хорошее начало.",
|
||
"store_declare_appliance": "Укажите WashData, какой у вас прибор, чтобы увидеть настройки, которыми для него поделились другие. Или введите марку выше и осмотритесь.",
|
||
"refresh_catalog_hint": "Списки марок и приборов сообщества кэшируются, чтобы экономить дневной лимит магазина. Обновите, чтобы увидеть записи, которые другие добавили или одобрили.",
|
||
"head_trim_hint": "Сколько секунд обрезать с начала",
|
||
"appliance_monitor": "Монитор прибора",
|
||
"artifact_dip_detail": "Мощность упала ниже обычного диапазона на ~{n}с.",
|
||
"artifact_footer": "Выделено на графике выше. Это временные артефакты (например, дверь открылась в середине цикла), а не обязательно проблемы.",
|
||
"artifact_header": "В этом цикле обнаружено {n} аномалии",
|
||
"artifact_header_one": "В этом цикле обнаружена {n} аномалия",
|
||
"artifact_header_few": "В этом цикле обнаружены {n} аномалии",
|
||
"artifact_header_many": "В этом цикле обнаружено {n} аномалий",
|
||
"artifact_header_other": "В этом цикле обнаружено {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} ({current}/{min}).",
|
||
"compare_overlay_profiles": "Наложить профили (бледные)",
|
||
"compare_profiles_tip": "Наложите на график другие профили, чтобы увидеть, какой лучше всего подходит этому циклу.",
|
||
"compare_selected_cycles": "Выбранные циклы (чёткие) – показать / скрыть",
|
||
"cycles_deleted": "Удалено циклов: {count}",
|
||
"enough_data": "Достаточно данных для обучения ({current}/{min} циклов).",
|
||
"export_description": "Выберите, какие именно профили, циклы, настройки и прочее экспортировать в JSON, или проанализируйте файл и импортируйте только нужные части.",
|
||
"feedback_cycles_pending": "На проверку: {n}",
|
||
"feedback_prompt": "Подтвердите правильность, исправьте программу или проигнорируйте.",
|
||
"feedback_relabel_hint": "Повторная маркировка этого цикла также решает его.",
|
||
"filter_by_profile": "Фильтр по профилю…",
|
||
"group_modal_help": "Сгруппируйте программы одной формы, которые отличаются температурой или отжимом. Сопоставление оценивает группу целиком, затем выбирает наиболее подходящего участника. Выберите не меньше 2; наложение показывает, насколько они похожи.",
|
||
"group_not_cohesive": "Эти профили недостаточно похожи, чтобы их можно было надежно сгруппировать, поэтому сопоставление обрабатывает их индивидуально, пока вы не удалите выброс или не разделите группу.",
|
||
"group_preview_hint": "Отметьте 2 или более участников, чтобы предварительно просмотреть и сравнить их кривые мощности.",
|
||
"legacy_actions_title": "{count} устаревшего специального действия все еще работает",
|
||
"legacy_actions_title_one": "{count} устаревшее специальное действие все еще работает",
|
||
"legacy_actions_title_few": "{count} устаревших специальных действия все еще работают",
|
||
"legacy_actions_title_many": "{count} устаревших специальных действий все еще работают",
|
||
"legacy_actions_title_other": "{count} устаревшего специального действия все еще работает",
|
||
"live_chart_loading": "График мощности появится по мере поступления показаний.",
|
||
"loading": "Загрузка…",
|
||
"loading_curve": "Загрузка кривой…",
|
||
"loading_settings": "Загрузка настроек…",
|
||
"log_buffer_hint": "Сначала самые новые · буферизует последние 500 записей ha_washdata с момента перезапуска · перетащите нижний край, чтобы изменить размер.",
|
||
"maintenance_due": "Требуется обслуживание: {items}",
|
||
"maintenance_intro": "Записывайте обслуживание этого прибора и получайте напоминание, когда каждая задача снова подойдёт.",
|
||
"maintenance_load_error": "Не удалось загрузить данные обслуживания: {error}",
|
||
"maintenance_requires_access": "Обслуживание и экспорт/импорт требуют полного доступа.",
|
||
"manual_duration_hint": "Ожидаемая длина цикла профиля, используется для оценки оставшегося времени. Не меняйте, чтобы сохранить текущее значение.",
|
||
"merge_intro": "Выбранные циклы объединяются в один (хронологический порядок; пропуски заполняются 0 Вт). Выберите результирующий профиль.",
|
||
"ml_intro": "WashData поставляется с умными моделями, которые работают сразу после установки.",
|
||
"ml_learned_intro": "Модели, настроенные под эту машину.",
|
||
"ml_settings_intro": "Два независимых переключателя: один применяет модели во время работы цикла, другой позволяет WashData постепенно настраивать их под вашу машину.",
|
||
"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": "Настроен со старым редактором действий (теперь удален). Они по-прежнему срабатывают при событиях цикла, но их больше нельзя редактировать здесь. Преобразуйте их в обычную автоматику или удалите.",
|
||
"pending_feedback": "Ожидает отзыва об обнаружении",
|
||
"performance_trend": "Тенденция производительности ({n} циклов)",
|
||
"pg_apply_confirm": "Применить лучшее значение: {label} = {value}?",
|
||
"pg_ctrl_intro": "Значения берутся из активных настроек интеграции для этого устройства. Изменения остаются в песочнице, пока вы не сохраните их в настройки.",
|
||
"pg_live_unavailable": "Активные настройки недоступны, показаны значения по умолчанию.",
|
||
"pg_load_live_confirm": "Отменить изменения в песочнице ({n}) и загрузить текущие настройки интеграции?",
|
||
"pg_matches_live": "Совпадает с активными настройками",
|
||
"pg_n_changed": "Отличий от активных настроек: {n}",
|
||
"pg_sugg_none": "Все рекомендации уже соответствуют текущим настройкам",
|
||
"pg_publish_one_confirm": "Сохранить {label} = {value} в настройки этого устройства?",
|
||
"pg_restart_note": "Перезапустите Home Assistant, чтобы включить инструменты симуляции.",
|
||
"phase_catalog_intro": "Именованные сегменты цикла (предстирка, нагрев, отжим…). Назначайте их профилю из его панели управления.",
|
||
"phase_ranges_intro": "Диапазоны фаз (минуты от начала цикла) наложены на среднюю кривую. Изменяйте значения для предварительного просмотра.",
|
||
"playground_intro": "Пробуйте настройки на реальных данных своих циклов. Ничто здесь не меняет действующие настройки, пока вы их не примените.",
|
||
"prefs_personal": "Применяются только к вашей учётной записи Home Assistant.",
|
||
"font_size_hint": "Сделайте всё на этой панели крупнее или мельче. Применяется к вашей учётной записи на этом устройстве.",
|
||
"process_history_hint": "Заново запускает сопоставление всех сохранённых циклов, обновляет предложения, переобучает модели ML (если включены), пересчитывает стоимость циклов по записанным ценам и пересчитывает состояние циклов. Запускайте после серии проверок.",
|
||
"profile_deleted": "Профиль удалён",
|
||
"profiles_intro": "Нажмите на профиль для статистики, фаз и очистки. Группируйте почти одинаковые программы (одинаковая форма/продолжительность, разная температура или отжим), чтобы сопоставление надёжно выбирало между ними.",
|
||
"rbac_hint": "Выключено: у каждого пользователя Home Assistant полный доступ (по умолчанию). Администраторы всегда имеют полный доступ и могут управлять всеми.",
|
||
"recording_in_progress": "Запись в процессе",
|
||
"reminders_intro": "Показывать напоминание в панели через указанное число циклов после последнего обслуживания. Оставьте пустым или 0, чтобы отключить напоминание.",
|
||
"restart_gap_footer": "Выделено на графике. Данные мощности отсутствуют для этих интервалов; сопоставление использовало только реальные показания.",
|
||
"restart_gap_header": "{n} пропуска при перезапуске HA во время этого цикла",
|
||
"restart_gap_header_one": "{n} пропуск при перезапуске HA во время этого цикла",
|
||
"restart_gap_header_few": "{n} пропуска при перезапуске HA во время этого цикла",
|
||
"restart_gap_header_many": "{n} пропусков при перезапуске HA во время этого цикла",
|
||
"restart_gap_header_other": "{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": "Открыть очередь проверки циклов",
|
||
"samples_decimated": "Показано {shown} из {total} отсчётов (прорежено для отображения; пики сохранены). Широкий разрыв здесь - это прореживание, а не пропуск данных.",
|
||
"saving_triggers_reload": "Сохранение перезагружает интеграцию. Объекты могут ненадолго стать недоступными.",
|
||
"search_placeholder": "Поиск настроек…",
|
||
"see_recorder": "Смотрите виджет записи ниже",
|
||
"setting_changed": "Изменено с {old} на {new} – {date}",
|
||
"settings_basic_note": "Показаны основные настройки. Переключитесь на «Дополнительно» для полного списка.",
|
||
"show_all_settings": "Показать все настройки",
|
||
"showing_suggestions": "Показано {count} настройки с предложениями.",
|
||
"showing_suggestions_one": "Показана {count} настройка с предложениями.",
|
||
"showing_suggestions_few": "Показаны {count} настройки с предложениями.",
|
||
"showing_suggestions_many": "Показано {count} настроек с предложениями.",
|
||
"showing_suggestions_other": "Показано {count} настройки с предложениями.",
|
||
"split_intro": "Нажмите на график, чтобы добавить или убрать точку разделения, или найдите их автоматически по паузам простоя. Каждая часть может получить свой профиль.",
|
||
"sug_staged": "Установлено {key} = {val}. Сохраните для применения.",
|
||
"sug_muted": "Эта настройка больше не будет предлагаться",
|
||
"sug_mute_failed": "Не удалось заглушить предложение",
|
||
"sug_unmuted_all": "Заглушённые предложения сброшены",
|
||
"n_suggestions_muted": "{count} предложения заглушено; авто-настройщик не будет их предлагать.",
|
||
"n_suggestions_muted_one": "{count} предложение заглушено; авто-настройщик не будет его предлагать.",
|
||
"n_suggestions_muted_few": "{count} предложения заглушены; авто-настройщик не будет их предлагать.",
|
||
"n_suggestions_muted_many": "{count} предложений заглушено; авто-настройщик не будет их предлагать.",
|
||
"n_suggestions_muted_other": "{count} предложения заглушено; авто-настройщик не будет их предлагать.",
|
||
"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_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_destructive_confirm": "Останется только {pct}% цикла, и это действие нельзя отменить. Продолжить?",
|
||
"trim_intro": "Перетащите красные маркеры или введите значения. Всё за пределами окна удаляется.",
|
||
"tuning_suggestions_available": "Доступно {count} предложения по настройке на основе наблюдаемых циклов. Они появляются рядом с соответствующими полями.",
|
||
"tuning_suggestions_available_one": "Доступно {count} предложение по настройке на основе наблюдаемых циклов. Оно появляется рядом с соответствующим полем.",
|
||
"tuning_suggestions_available_few": "Доступны {count} предложения по настройке на основе наблюдаемых циклов. Они появляются рядом с соответствующими полями.",
|
||
"tuning_suggestions_available_many": "Доступно {count} предложений по настройке на основе наблюдаемых циклов. Они появляются рядом с соответствующими полями.",
|
||
"tuning_suggestions_available_other": "Доступно {count} предложения по настройке на основе наблюдаемых циклов. Они появляются рядом с соответствующими полями.",
|
||
"unsure_detected_prefix": "WashData не уверен, что обнаружил",
|
||
"warmup_badge": "Ещё обучается ({done}/{needed} циклов)",
|
||
"warmup_detail": "Сопоставление уже работает. WashData просит подтвердить первые {needed} циклов этого профиля, прежде чем помечать самостоятельно.",
|
||
"wipe_history_warning": "Безвозвратно удалите все циклы и профили. Невозможно отменить.",
|
||
"compare_overlay_tip": "Наложите огибающие изученных профилей, чтобы увидеть, на какую программу похож каждый цикл.",
|
||
"diagnostics_load_failed": "Не удалось загрузить диагностику: {error}",
|
||
"manual_duration_ref_hint": "Используется только без эталонного цикла; эталонный цикл задаёт длительность по своей длине.",
|
||
"duration_learned_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}), возможно из-за накипи или износа. Попробуйте перезаписать его по недавним циклам.",
|
||
"advisory_unmatchable": "'{name}' никогда не сопоставится: за ним нет ни одного цикла с данными о мощности. Пометьте или запишите цикл этой программы, чтобы это исправить.",
|
||
"advisory_unmatchable_no_duration": "'{name}' никогда не сопоставится: у его цикла нет пригодной длительности. Перезапишите эту программу или задайте её ожидаемую длительность.",
|
||
"pg_no_alerts": "В этом запуске проблем не обнаружено.",
|
||
"pg_override_active": "Используются ваши изменённые настройки вместо текущих",
|
||
"pg_history_empty": "Нажмите «Запустить», чтобы воспроизвести циклы.",
|
||
"pg_history_summary": "{detected}/{total} обнаружено · {correct} сопоставлено верно",
|
||
"pg_sweep_no_metric": "Недостаточно данных для оценки этой цели.",
|
||
"pg_sweep_intro2": "Найдите настройку, которая лучше всего достигает цели на ваших последних циклах. Ничего не изменится, пока вы не примените.",
|
||
"pg_row_load_hint": "Загрузить этот цикл на график выше",
|
||
"pg_history_intro2": "Прогоните недавние циклы через настоящий детектор и сопоставление с настройками выше. Нажмите на строку, чтобы загрузить её в график; измените настройку, чтобы сравнить до и после.",
|
||
"pg_simulating": "Моделирование цикла…",
|
||
"pg_apply_settings_confirm": "Сохранить эти настройки ({n}) в это устройство? {list}",
|
||
"no_logs_match": "Нет записей журнала, соответствующих этим фильтрам.",
|
||
"pg_analysis_hint2": "Выберите цикл и нажмите Запустить, чтобы загрузить анализ совпадения.",
|
||
"imported_readonly": "Импортировано из магазина сообщества. Используется как эталон и для сопоставления, не учитывается в статистике и не редактируется.",
|
||
"merge_no_imports": "Импортированные записи нельзя объединить с реальным циклом. Снимите с них выбор, чтобы объединить.",
|
||
"store_enable_hint": "Включите онлайн-функции в разделе Параметры > Онлайн и сообщество, чтобы просматривать и импортировать эталонные циклы сообщества.",
|
||
"advisory_duration_outlier": "Циклы с меткой ‘{name}’ ({n}) слишком далеки от его обычной длины, чтобы когда-либо сопоставиться (худший: {ratio}x). Вероятно, они помечены неверно или содержат два прогона. Перепометьте или разделите их, чтобы они не искажали оценку времени.",
|
||
"standby_above_stop_title": "В момент завершения цикла всё ещё потребляется {idle} Вт",
|
||
"standby_above_stop_sub": "{n} из последних {total} циклов. Задержка Выключения начинает отсчитываться только после того, как мощность опустится ниже Порога Остановки ({stop} Вт), поэтому циклы завершаются с опозданием или их приходится останавливать вручную.",
|
||
"store_share_intro": "Загрузите этот эталонный цикл, чтобы другие пользователи с таким же устройством могли его использовать. Он проходит проверку перед публикацией.",
|
||
"online_intro_global": "Просматривайте эталонные записи и делитесь ими с другими пользователями WashData. Одно подключение действует для всех ваших устройств WashData; марка и модель задаются для каждого устройства в разделе «Основные». Онлайн-функции выключены, пока вы их не включите.",
|
||
"online_unavailable": "Онлайн-функции недоступны на этом сервере.",
|
||
"store_picker_offline": "Включите онлайн-функции в меню настроек (шестерёнка), чтобы выбирать из каталога сообщества.",
|
||
"pick_brand_first": "Сначала выберите бренд устройства.",
|
||
"custom_task_limit": "Достигнут лимит задач ({max}).",
|
||
"custom_tasks_intro": "Добавьте всё, о чём ещё хотите получать напоминания. Задача требует выполнения, как только достигнут любой из интервалов; оставьте один пустым или 0, чтобы использовать только другой.",
|
||
"maintenance_due_sensor_hint": "Бинарный датчик «Требуется обслуживание» включён, пока есть задача к выполнению; используйте его в своих автоматизациях уведомлений.",
|
||
"maintenance_supporter_intro": "Maintenance Supporter является отдельной интеграцией, которая умеет гораздо больше: любой прибор или задача, расписание по времени, использованию или датчику, уведомления и история. Она может использовать счётчик циклов WashData.",
|
||
"adopt_settings_hint": "Применить настройки обнаружения и сопоставления общего устройства к этому устройству",
|
||
"include_settings_hint": "Поделиться порогами обнаружения и сопоставления этого устройства (без уведомлений, объектов и цены энергии). Другие сами решат, применять ли их.",
|
||
"onboard_download": "Скачать готовую конфигурацию из магазина сообщества",
|
||
"share_device_none": "Устройства ещё не настроены. Сначала добавьте устройство.",
|
||
"share_guideline_naming": "Используйте понятные названия программ (например, 'Cotton 40', 'Eco 60'), чтобы другие могли их идентифицировать",
|
||
"share_guideline_quality": "Делитесь только циклами, которые завершились нормально: без прерываний, открывания дверцы и перебоев питания.",
|
||
"share_guideline_review": "Просмотрите профили перед публикацией -- удалите те, которые выглядят неправильно",
|
||
"share_guidelines_title": "Перед публикацией",
|
||
"store_download_device_intro": "Добавить на ваше устройство все общие программы и их эталонные циклы. Ваши собственные циклы и статистика не затрагиваются.",
|
||
"store_share_device_intro": "Загрузите {brand} {model} с выбранными вами эталонными циклами. Другие пользователи с таким же устройством смогут принять ваши программы. Записи проверяются перед публикацией.",
|
||
"share_profile_no_cycles": "Нет эталонных циклов. Чтобы включить этот профиль, отметьте цикл как ⭐ на вкладке Циклы",
|
||
"export_select_intro": "Отметьте, что включить. Профили без своих циклов всё равно экспортируют распознаваемую программу.",
|
||
"import_analyze_hint": "Загрузите экспортированный файл (или вставьте его JSON). WashData покажет, что можно импортировать, прежде чем что-либо изменится.",
|
||
"analyzing": "Анализ…",
|
||
"device_type_mismatch_warn": "Этот экспорт от другого типа прибора ({src} vs {local}). Программы и циклы всё равно можно импортировать как эталонные данные, но без настроек устройства и реальной истории.",
|
||
"merge_hint": "Импортируемые элементы добавляются; ничего локального не теряется. Конфликты имён разрешаются ниже.",
|
||
"replace_warn": "Каждая отмеченная категория очищается и заменяется данными из файла. Неотмеченные категории остаются без изменений.",
|
||
"dest_reference_hint": "Импортированные циклы только улучшают распознавание программ и никогда не влияют на статистику использования/энергии.",
|
||
"dest_real_history_hint": "Импортированные циклы считаются собственной историей и статистикой этого устройства. Используйте при переносе прибора на новую установку.",
|
||
"import_history_description": "Умная розетка была у вас ещё до WashData? Загрузите её историю мощности или прочитайте её из Home Assistant. По ней пройдёт обнаружение, и прошлые циклы появятся в списке «Циклы», готовые к названию.",
|
||
"hist_input_hint": "Загрузите CSV из панели «История» (объект, состояние, время изменения) или позвольте WashData прочитать историю датчика напрямую. По ней пройдёт обнаружение как в реальном времени, а вы выберете, какие циклы оставить.",
|
||
"hist_recorder_hint": "Читает данные с выбранной даты до текущего момента. Home Assistant по умолчанию хранит подробную историю 10 дней; более старые часовые средние слишком грубы для обнаружения циклов.",
|
||
"hist_scanning": "Ваша история проходит через детектор в фоне. Можно закрыть это окно и вернуться позже.",
|
||
"hist_imported_count": "Импортировано циклов: {n}.",
|
||
"hist_duplicates": "Уже импортировано ранее и пропущено: {n}.",
|
||
"hist_capped": "Достигнут лимит импортированных циклов для устройства; остальные не сохранены.",
|
||
"hist_next_step": "Они в списке «Циклы» с отметкой импортированной истории. Откройте любой и кнопкой «Пометить» назовите его программу.",
|
||
"hist_rows_read": "Прочитано показаний: {n}",
|
||
"hist_breaks": "Пропусков, где датчик был недоступен: {n}",
|
||
"hist_other_entity": "Показаний других объектов пропущено: {n}",
|
||
"hist_entity_substituted": "Прочитано {used} (для этого устройства настроен {wanted})",
|
||
"hist_skipped_spans": "Пропущенные участки",
|
||
"hist_settings_used": "Обнаружено с текущими настройками этого устройства (Минимальная Мощность {w} Вт, Задержка Выключения {s} с).",
|
||
"hist_none_found": "В этой истории не удалось обнаружить ни одного цикла.",
|
||
"hist_found": "Найдено циклов: {n}. Снимите отметки с того, что не похоже на реальный запуск - до импорта ничего не сохраняется.",
|
||
"hist_scan_capped": "Показаны только первые кандидаты (найдено: {n}).",
|
||
"hist_recorder_empty": "В Home Assistant нет подробной истории для этого датчика за указанный период.",
|
||
"hist_scan_failed": "Сканирование не удалось.",
|
||
"hist_scan_expired": "Это сканирование больше недоступно. Запустите сканирование снова.",
|
||
"hist_import_failed": "Импорт не удался.",
|
||
"imported_history_readonly": "Найдено в импортированной истории мощности. Помогает сопоставлению, но не учитывается в статистике, и его нельзя обрезать или разделить. Пометьте его, чтобы назвать программу.",
|
||
"odometer_intro": "Это число только растёт. Удаление цикла его не уменьшает, поэтому напоминания об обслуживании остаются верными.",
|
||
"odometer_correct_hint": "Задайте это, если WashData посчитал цикл, которого не было, или прибор работал до установки WashData.",
|
||
"no_reminders_set": "Напоминания об обслуживании ещё не заданы.",
|
||
"toast_program_armed": "Программа выбрана для следующего цикла: {program}",
|
||
"toast_range_required": "Задайте корректный диапазон От/До",
|
||
"no_profiles_option": "(профилей пока нет, добавьте новый)",
|
||
"compare_cycles_title": "Сравнить циклы ({count})",
|
||
"edit_builtin_phase": "Это встроенная фаза. Сохранение создаёт собственную копию; удалите копию, чтобы вернуть оригинал.",
|
||
"fetch_error": "Не удалось загрузить данные.",
|
||
"connection_lost": "Соединение потеряно - показаны данные по состоянию на {time}.",
|
||
"pg_notify_partial": "Маркеры показывают только уведомления о старте, скором завершении, завершении, достижениях и тихих часах. Обновления в реальном времени, напоминания о выгрузке и предупреждения о превышении не моделируются.",
|
||
"connect_to_confirm": "Подключитесь в меню настроек (шестерёнка), чтобы подтверждать или оценивать.",
|
||
"coverage_gap_cluster": "Последние циклы без метки ({count}) длительностью около {min} мин похожи на одну программу, которую вы ещё не создали.",
|
||
"pg_label_yes": "В конце цикла получил бы метку «{name}»",
|
||
"pg_label_no": "Был бы отправлен на проверку: {reason}",
|
||
"live_match_debug_tip": "Достоверность: насколько точно текущая кривая мощности совпадает с лучшим профилем-кандидатом (0-100%). Неоднозначно: оценки двух лучших кандидатов различаются менее чем на 5%, поэтому метка остаётся неопределённой до завершения цикла.",
|
||
"automation_alias_started": "{device}: цикл запущен",
|
||
"automation_alias_finished": "{device}: цикл завершён",
|
||
"automation_desc_started": "Срабатывает при запуске цикла устройства {device}. Добавьте свои действия (уведомления, освещение, ...).",
|
||
"automation_desc_finished": "Срабатывает при завершении цикла устройства {device}. Добавьте свои действия (уведомления, освещение, ...).",
|
||
"feedback_detected": "WashData обнаружил: {name}",
|
||
"import_undo_hint": "Сохранена точка восстановления до последнего импорта ({when}): профилей: {profiles}, циклов: {cycles}.",
|
||
"replace_undo_hint": "Сначала сохраняется точка восстановления, поэтому этот импорт можно отменить в разделе «Экспорт / Импорт».",
|
||
"pg_in_sample_note": "Эти циклы помогли построить профили, с которыми они сравниваются, поэтому результаты оптимистичны: на новых циклах ожидайте чуть меньше верных совпадений.",
|
||
"hist_tail_trimmed": "Обрезано {min} мин ожидания после окончания цикла, так же как это делает работающая интеграция",
|
||
"hist_truncated": "остановлено на лимите показаний ({n}), поэтому остальная история не просмотрена",
|
||
"hist_warn_kw": "Максимальное показание всего {w}. Похоже, датчик передаёт киловатты; WashData нужны ватты, поэтому циклы обнаружить нельзя.",
|
||
"hist_warn_naive_time": "{n} отметок времени не содержат часового пояса и прочитаны как UTC. Если в файле местное время, циклы сдвинуты на ваше смещение от UTC, а показания около перевода часов могут потеряться.",
|
||
"hist_warn_naive_time_one": "{n} отметка времени не содержит часового пояса и прочитана как UTC. Если в файле местное время, циклы сдвинуты на ваше смещение от UTC, а показания около перевода часов могут потеряться.",
|
||
"hist_warn_naive_time_few": "{n} отметки времени не содержат часового пояса и прочитаны как UTC. Если в файле местное время, циклы сдвинуты на ваше смещение от UTC, а показания около перевода часов могут потеряться.",
|
||
"hist_warn_naive_time_many": "{n} отметок времени не содержат часового пояса и прочитаны как UTC. Если в файле местное время, циклы сдвинуты на ваше смещение от UTC, а показания около перевода часов могут потеряться.",
|
||
"hist_warn_naive_time_other": "{n} отметки времени не содержат часового пояса и прочитаны как UTC. Если в файле местное время, циклы сдвинуты на ваше смещение от UTC, а показания около перевода часов могут потеряться.",
|
||
"pg_compare_profile_tip": "Выбирает только профиль, отображаемый поверх графика. Симуляция всегда сама сопоставляет программу с циклом, как и работающая интеграция.",
|
||
"pg_outcome_stale": "Настройки изменились после запуска этой симуляции. Она всё ещё показывает старый результат.",
|
||
"pg_sweep_guarded": "Завершает больше циклов раньше времени, разбивает больше циклов или пропускает циклы, которые улавливает текущая настройка, поэтому никогда не рекомендуется.",
|
||
"pg_sweep_keep_current": "Оставить текущее значение ({value}, {metric}): ни одно значение не оказалось лучше хотя бы на один цикл.",
|
||
"pg_sweep_n_cycles": "на {count} циклах",
|
||
"pg_sweep_n_cycles_one": "на {count} цикле",
|
||
"pg_sweep_n_cycles_few": "на {count} циклах",
|
||
"pg_sweep_n_cycles_many": "на {count} циклах",
|
||
"pg_sweep_n_cycles_other": "на {count} цикла",
|
||
"pg_task_busy": "Для этого устройства уже идёт «Проверка на истории» или «Оптимизировать». Дождитесь окончания или отмените.",
|
||
"cycle_context_loading": "Загрузка истории из recorder…",
|
||
"cycle_context_note": "Серым: история датчика мощности из recorder вокруг этого цикла. Она не входит в цикл и не влияет на длительность, энергию и сопоставление.",
|
||
"cycle_context_none": "В recorder нет показаний вокруг этого цикла (по умолчанию Home Assistant хранит историю 10 дней).",
|
||
"cycle_context_tip": "Только для просмотра: показывает историю датчика мощности из recorder вокруг этого цикла, если она ещё хранится. Чтобы добавлять неудачные попытки запуска к будущим циклам, используйте Предзапись кривой (Настройки > Обнаружение > Запуск Цикла); это меняет сохранённые длительности.",
|
||
"invalid_threshold_pair": "Порог Остановки ({stop} Вт) должен быть ниже Порога Запуска ({start} Вт). Ничего не сохранено; измените оба значения вместе."
|
||
},
|
||
"phase_desc": {
|
||
"anti_crease": "Периодические короткие вращения барабана после завершения для уменьшения складок.",
|
||
"anti_wrinkle": "Периодические короткие вращения барабана после завершения цикла для предотвращения сминания белья.",
|
||
"baking": "Нагрев на высокой температуре для корочки и мякиша.",
|
||
"cooking": "Основная фаза приготовления с нагревателем и вентилятором.",
|
||
"cool_down": "Вращение без нагрева ближе к концу цикла.",
|
||
"cool_down_af": "Охлаждение только вентилятором после нагрева.",
|
||
"drain_and_switch": "Переходный период от режима стирки к режиму сушки.",
|
||
"dry": "Этап сушки с использованием нагревателя и/или остаточного тепла.",
|
||
"drying": "Основной период нагреваемой сушки с вращением барабана.",
|
||
"heat_up": "Первоначальный прогрев нагревателя перед началом полной сушки.",
|
||
"keep_warm": "Слабый нагрев, чтобы еда оставалась тёплой.",
|
||
"keep_warm_bm": "Слабый нагрев, чтобы хлеб оставался тёплым после выпечки.",
|
||
"kneading": "Мотор перемешивает и вымешивает тесто. Высокое потребление.",
|
||
"pause_af": "Короткая пауза, чтобы встряхнуть или проверить.",
|
||
"pre_heat": "Начальный прогрев камеры перед основным приготовлением.",
|
||
"pre_rinse": "Первоначальное распыление перед стиркой моющим средством.",
|
||
"proving": "Расстойка при слабом нагреве: дрожжи бродят, тесто поднимается.",
|
||
"resting": "Короткая пауза на малой мощности между замесами, чтобы клейковина расслабилась.",
|
||
"pre_wash": "Первоначальное замачивание или предварительная обработка перед основной стиркой.",
|
||
"rinse": "Этап ополаскивания чистой водой. Эта фаза может повторяться несколько раз.",
|
||
"sanitize": "Этап высокотемпературной очистки для программ санитарной обработки.",
|
||
"sensor_check": "Короткая пауза при низком энергопотреблении во время измерения сухости.",
|
||
"soak": "Период низкоактивного замачивания между этапами активной стирки.",
|
||
"soak_dw": "Увеличенный период замачивания для сильно загрязнённой посуды.",
|
||
"spin": "Высокоскоростная экстракция для удаления воды из загрузки.",
|
||
"spin_wd": "Высокоскоростная экстракция перед переходом к сушке.",
|
||
"wash": "Основной цикл стирки с движением барабана и дополнительным подогревом.",
|
||
"wash_dw": "Основная моющая стирка с подогревом."
|
||
},
|
||
"placeholder": {
|
||
"custom_task": "напр., Очистка уплотнения дверцы",
|
||
"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": {
|
||
"dishwasher": {
|
||
"intro": "Обработка завершения для посудомоечных машин, которые часто долго и тихо сушат перед коротким финальным сливом.",
|
||
"label": "Посудомоечная машина"
|
||
},
|
||
"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": "Триггеры и дверцы"
|
||
}
|
||
},
|
||
"setting": {
|
||
"dishwasher_end_spike_quiet_release": {
|
||
"doc": "После ожидаемой длительности: сколько посудомоечная машина должна оставаться ниже Порога Остановки, прежде чем WashData перестанет ждать финального слива. Увеличьте, если поздний слив после долгой сушки пропускается. Ожидание никогда не превышает 30 минут.",
|
||
"label": "Тихое завершение пассивной сушки"
|
||
},
|
||
"anti_crease_finalize_ratio": {
|
||
"doc": "Доля средней длительности программы, которую цикл должен пройти, прежде чем вращение барабана на малой мощности будет считаться хвостом защиты от морщин. Уменьшите (например, 0,75) для сушильных машин, подстраивающихся под загрузку. Для стиральных машин оставьте значение по умолчанию (0,98), иначе стирка может закончиться на середине.",
|
||
"label": "Коэффициент завершения защиты от морщин"
|
||
},
|
||
"anti_wrinkle_enabled": {
|
||
"doc": "Оставлять короткие импульсы вращения на малой мощности после основной фазы нагрева сушильной машины в составе завершённого цикла, а не считать их новыми циклами.",
|
||
"label": "Включить Защиту от Морщин"
|
||
},
|
||
"anti_wrinkle_exit_power": {
|
||
"doc": "В режиме защиты от морщин мощность ниже этого значения считается паузой между импульсами вращения, а пауза дольше Макс. Паузы Между Импульсами завершает режим. Если Порог Остановки выше, используется он, поэтому настройка действует только выше Порога Остановки.",
|
||
"label": "Порог Мощности Выхода"
|
||
},
|
||
"anti_wrinkle_idle_timeout": {
|
||
"label": "Макс. Пауза Между Импульсами",
|
||
"doc": "Сколько сушильная машина может молчать между импульсами вращения, прежде чем режим защиты от морщин закончится. Задайте больше самой длинной паузы вашей машины, иначе следующие импульсы будут считаться ложными стартами."
|
||
},
|
||
"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": "Энергия, допустимая во время задержки выключения. Если больше, цикл продолжается, и вращения и финальная сушка остаются его частью. Уменьшите, если циклы заканчиваются на хвосте; увеличьте, если завершённые циклы продолжают ждать.",
|
||
"label": "Энергия Завершения"
|
||
},
|
||
"energy_price_entity": {
|
||
"doc": "Датчик текущей цены за кВт·ч (например, динамический тариф). Имеет приоритет над фиксированной ценой ниже, поэтому это должна быть цена, а не датчик мощности или энергии розетки.",
|
||
"label": "Объект Цены на Электроэнергию"
|
||
},
|
||
"energy_price_static": {
|
||
"doc": "Фиксированная цена за кВт·ч, используется, если объект цены не задан.",
|
||
"label": "Фиксированная Цена Электроэнергии (за кВт·ч)"
|
||
},
|
||
"energy_sensor": {
|
||
"doc": "Необязательный счётчик кВт·ч или Вт·ч (total_increasing, например собственный счётчик розетки). Энергия цикла тогда берётся из него, что точнее расчёта по медленному датчику мощности. Если его показание непригодно, используется расчётное значение.",
|
||
"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 под другим устройством (например, умной розеткой) в Home Assistant как «Подключено через ...».",
|
||
"label": "Группировать под Устройством"
|
||
},
|
||
"min_off_gap": {
|
||
"doc": "Выключение короче этого не делит цикл, поэтому паузы замачивания остаются в одной стирке. Держите меньше паузы между загрузками подряд, иначе они сольются в один цикл.",
|
||
"label": "Минимальная Пауза Выключения"
|
||
},
|
||
"min_power": {
|
||
"doc": "Показания ниже этого значения считаются 0 Вт (ожидание). Отсекает холостое потребление умных розеток и индикаторов ожидания.",
|
||
"label": "Минимальная Мощность"
|
||
},
|
||
"ml_training_enabled": {
|
||
"doc": "Время от времени переобучать модель энергии на завершённых циклах этой машины. Новая модель остаётся, только если на тестовых циклах она лучше простой оценки.",
|
||
"label": "Обучаться на этой машине"
|
||
},
|
||
"ml_training_hour": {
|
||
"doc": "Час суток (0-23) для ночного обучения. Выберите тихий час, например 2.",
|
||
"label": "Обучаться в час"
|
||
},
|
||
"ml_training_interval_days": {
|
||
"doc": "Переобучать не чаще одного раза за это число дней.",
|
||
"label": "Проверять не чаще раза в"
|
||
},
|
||
"ml_training_min_cycles": {
|
||
"doc": "Перед обучением дождаться хотя бы такого числа записанных циклов.",
|
||
"label": "Сначала нужно циклов"
|
||
},
|
||
"name": {
|
||
"doc": "Имя этого устройства в Home Assistant.",
|
||
"label": "Имя Устройства"
|
||
},
|
||
"no_update_active_timeout": {
|
||
"doc": "Если за это время во время цикла не пришло ни одного обновления мощности, считается, что розетка отключилась, и цикл принудительно останавливается. 600 с по умолчанию учитывают задержки облака или mesh-сети.",
|
||
"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}, {program}, {duration} (минуты), {duration_hm} (1 h 05 min), {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}, {status} (completed или force_stopped; прерванные циклы ничего не отправляют). При любой другой переменной используется текст по умолчанию.",
|
||
"label": "Сообщение о Завершении"
|
||
},
|
||
"notify_finish_services": {
|
||
"doc": "Службы notify.*, вызываемые по завершении цикла. Оставьте пустым, чтобы не отправлять.",
|
||
"label": "Службы Завершения"
|
||
},
|
||
"notify_fire_events": {
|
||
"doc": "Также генерировать события ha_washdata_* при старте и завершении цикла для своих автоматизаций.",
|
||
"label": "Отправлять События HA для Уведомлений"
|
||
},
|
||
"notify_icon": {
|
||
"doc": "Маленький значок в уведомлении (например, mdi:washing-machine). Отправляется только на цели mobile_app, не в группы notify. В iOS заменяет значок приложения и требует мобильное приложение 2026.8 или новее. Пусто: значок платформы по умолчанию.",
|
||
"label": "Иконка Уведомления"
|
||
},
|
||
"notify_live_chronometer": {
|
||
"doc": "Показывать в уведомлении живой обратный отсчёт (где поддерживается) вместо фиксированной оценки.",
|
||
"label": "Использовать Хронометр в Реальном Времени"
|
||
},
|
||
"notify_live_interval_seconds": {
|
||
"doc": "Как часто обновляются уведомления о ходе выполнения во время выполнения цикла.",
|
||
"label": "Интервал Обновления в Реальном Времени"
|
||
},
|
||
"notify_live_overrun_percent": {
|
||
"doc": "Живые обновления прекращаются, когда цикл превышает ожидаемую длительность на этот процент (20 = до 1,2x ожидаемого времени).",
|
||
"label": "% Превышения До Оповещения"
|
||
},
|
||
"notify_live_services": {
|
||
"doc": "Службы notify.* для обновлений прогресса в реальном времени во время цикла. Оставьте пустым, чтобы выключить их.",
|
||
"label": "Службы Обновления в Реальном Времени"
|
||
},
|
||
"notify_only_when_home": {
|
||
"doc": "Уведомлять, только когда хотя бы один из людей выше дома.",
|
||
"label": "Уведомлять Только Когда Дома"
|
||
},
|
||
"notify_people": {
|
||
"doc": "Объекты person.*, которые проверяет «Уведомлять Только Когда Дома».",
|
||
"label": "Люди (для Только Когда Дома)"
|
||
},
|
||
"notify_pre_complete_message": {
|
||
"doc": "Текст каждого живого обновления прогресса. Переменные шаблона: {device}, {program}, {minutes} (осталось минут). При любой другой переменной используется текст по умолчанию.",
|
||
"label": "Сообщение Перед Завершением"
|
||
},
|
||
"notify_reminder_message": {
|
||
"doc": "Текст разового Оповещения Перед Завершением. Переменные шаблона: {device}, {program}, {minutes} (настройка Оповещение Перед Завершением). При любой другой переменной используется текст по умолчанию.",
|
||
"label": "Напоминание"
|
||
},
|
||
"notify_start_message": {
|
||
"doc": "Текст при запуске цикла. Переменные шаблона: {device}, {program}. При любой другой переменной используется текст по умолчанию.",
|
||
"label": "Сообщение о Запуске"
|
||
},
|
||
"notify_start_services": {
|
||
"doc": "Службы notify.*, вызываемые при старте цикла (телефон, дашборд, ...). Оставьте пустым, чтобы не отправлять.",
|
||
"label": "Службы Запуска"
|
||
},
|
||
"notify_timeout_seconds": {
|
||
"doc": "Закрыть уведомление через столько секунд (где поддерживается). 0 оставляет его, пока вы его не закроете.",
|
||
"label": "Авто-Закрытие Через"
|
||
},
|
||
"notify_title": {
|
||
"doc": "Заголовок уведомления. Подставляется только {device}; при любой другой переменной используется заголовок по умолчанию.",
|
||
"label": "Заголовок Уведомления"
|
||
},
|
||
"notify_unload_delay_minutes": {
|
||
"doc": "Минуты после окончания цикла до напоминания «выгрузите машину». 0 выключает его.",
|
||
"label": "Задержка Напоминания о Выгрузке"
|
||
},
|
||
"notify_unload_repeat": {
|
||
"doc": "Повторять напоминание о выгрузке каждые «Задержка Напоминания о Выгрузке» минут, пока выгрузка не подтверждена или вы не нажмёте «Не напоминать» (мобильное приложение). Нужен Объект Датчика Дверцы, Объект Подтверждения Выгрузки или «Подтверждать Выгрузку Вручную».",
|
||
"label": "Повторять, пока не выгружено"
|
||
},
|
||
"off_delay": {
|
||
"doc": "Сколько мощность должна оставаться низкой, прежде чем цикл завершится. Если мощность вернётся за это время, цикл продолжится. Посудомоечные машины могут простаивать 20-60 мин во время сушки, поэтому задайте больше.",
|
||
"label": "Задержка Выключения"
|
||
},
|
||
"pause_cuts_power": {
|
||
"doc": "При паузе цикла также выключать Объект Переключателя ниже. Только для приборов, которые могут безопасно потерять питание посреди цикла.",
|
||
"label": "Пауза Отключает Питание (через переключатель)"
|
||
},
|
||
"power_off_delay": {
|
||
"doc": "Сколько мощность после цикла должна оставаться ниже Порога Выключения Питания, прежде чем состояние вернётся в «Выключено». Используется, только если этот порог больше 0. Проверяется периодически, поэтому реальное ожидание может быть чуть дольше.",
|
||
"label": "Задержка Выключения Питания"
|
||
},
|
||
"power_off_threshold_w": {
|
||
"doc": "После цикла мощность ниже этого значения в течение Задержки Выключения Питания переводит состояние в «Выключено» вместо Задержки Сброса Прогресса. Задайте выше потребления выключенного прибора, но ниже ожидания и Порога Остановки. 0 выключает (по умолчанию).",
|
||
"label": "Порог Выключения Питания"
|
||
},
|
||
"power_sensor": {
|
||
"doc": "Датчик текущей мощности этого прибора в ваттах (например, sensor.washer_power). На нём основано всё обнаружение.",
|
||
"label": "Датчик Мощности"
|
||
},
|
||
"profile_match_interval": {
|
||
"doc": "Как часто сопоставлять идущий цикл с профилями. По умолчанию 300 с (5 мин).",
|
||
"label": "Интервал Совпадения"
|
||
},
|
||
"profile_match_max_duration_ratio": {
|
||
"doc": "Программа отбрасывается, когда цикл длится дольше этого кратного её обычной длительности. 1,8: цикл на 80% длиннее программы больше с ней не сопоставляется.",
|
||
"label": "Максимальное Соотношение Длительности"
|
||
},
|
||
"profile_match_min_duration_ratio": {
|
||
"doc": "Программа рассматривается только после того, как цикл прошёл эту долю её обычной длительности. 0,10: 2-часовая программа становится кандидатом через 12 минут. Не действует в первые 15 минут цикла.",
|
||
"label": "Минимальное Соотношение Длительности"
|
||
},
|
||
"profile_match_threshold": {
|
||
"doc": "Оценка совпадения в реальном времени, которая нужна циклу, прежде чем Умное завершение или завершение защиты от морщин смогут закончить его раньше. Не меняет показанную программу. Повысьте, если слабые совпадения заканчивают циклы рано; понизьте, если явные совпадения ждут задержку выключения.",
|
||
"label": "Порог Совпадения"
|
||
},
|
||
"profile_unmatch_threshold": {
|
||
"doc": "Если оценка совпадения в реальном времени падает ниже этого значения, текущая догадка о программе сбрасывается. Держите немного ниже Порога Совпадения, чтобы краткий провал её не сбрасывал.",
|
||
"label": "Порог Несовпадения"
|
||
},
|
||
"progress_reset_delay": {
|
||
"doc": "После цикла держать прогресс на 100% это время, прежде чем сбросить в «Ожидание».",
|
||
"label": "Задержка Сброса Прогресса"
|
||
},
|
||
"pump_stuck_duration": {
|
||
"doc": "Сколько насос может работать без перерыва, прежде чем сработает событие застрявшего насоса.",
|
||
"label": "Длительность Застревания Насоса"
|
||
},
|
||
"sampling_interval": {
|
||
"doc": "Минимальное время между обрабатываемыми показаниями. Показания, пришедшие раньше, пропускаются (низкие показания во время цикла сохраняются всегда). Задайте интервал отчётов вашей розетки или меньше; большее значение только отбрасывает показания.",
|
||
"label": "Интервал Выборки"
|
||
},
|
||
"save_debug_traces": {
|
||
"doc": "Также сохранять с каждым циклом отладочные данные сопоставления (оценки всех кандидатов) для поиска проблем. Добавляет около 20 КБ на цикл.",
|
||
"label": "Сохранять Отладочные Данные"
|
||
},
|
||
"start_duration_threshold": {
|
||
"doc": "Мощность должна столько времени оставаться выше Порога Запуска, прежде чем начнётся цикл, чтобы короткие включения и выключения игнорировались.",
|
||
"label": "Длительность Запуска"
|
||
},
|
||
"start_energy_threshold": {
|
||
"doc": "Энергия, которую прибор должен потребить, прежде чем цикл будет считаться запущенным. Короткий скачок мощности потребляет мало энергии и цикл не запускает.",
|
||
"label": "Энергия Запуска"
|
||
},
|
||
"start_threshold_w": {
|
||
"doc": "Мощность должна подняться выше этого значения, чтобы начался цикл. Слишком низко: потребление в ожидании вызывает ложные старты. Слишком высоко: медленно стартующие программы (холодный набор воды) пропускаются.",
|
||
"label": "Порог Запуска"
|
||
},
|
||
"stop_threshold_w": {
|
||
"doc": "Мощность должна упасть ниже этого значения, прежде чем начнётся отсчёт задержки выключения. Держите ниже Порога Запуска. Если слишком высоко, фазы малой мощности (паузы полоскания, защита от морщин) по ошибке запускают отсчёт завершения.",
|
||
"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": "Порог пикового тарифа (за кВт·ч)"
|
||
},
|
||
"store_brand": {
|
||
"label": "Бренд устройства",
|
||
"doc": "Необязательно. Марка вашего прибора из каталога сообщества, используется для поиска эталонных записей и обмена ими. Оставьте пустым, если не пользуетесь онлайн-функциями."
|
||
},
|
||
"store_model": {
|
||
"label": "Модель устройства",
|
||
"doc": "Необязательно. Модель вашего прибора из каталога сообщества (сначала выберите марку). Если её нет в списке, можно добавить."
|
||
},
|
||
"show_contributor": {
|
||
"doc": "Показать имя автора на профилях, загруженных из магазина сообщества"
|
||
},
|
||
"smart_termination_duration_ratio": {
|
||
"doc": "Доля средней длительности программы, которую цикл должен пройти, прежде чем Умное завершение сможет закончить его раньше. Если время работы колеблется (температура воды, сушка по датчику, размер загрузки), уменьшите её (например, 0,85). Пусто: 0,98 (0,99 для посудомоечных машин).",
|
||
"label": "Коэффициент умного завершения"
|
||
},
|
||
"power_profile_interval_min": {
|
||
"label": "Интервал профиля мощности",
|
||
"doc": "Размер интервала атрибута power_profile (средние ватты на слот) для планировщиков вроде EMHASS и tibber_prices. Меньше сохраняет короткие пики; больше сглаживает кривую. По умолчанию 15 мин. Не влияет на обнаружение."
|
||
},
|
||
"notify_live_silent": {
|
||
"label": "Тихие живые обновления",
|
||
"doc": "Только iOS. Обновлять прогресс в реальном времени беззвучно, с экономящим батарею приоритетом, который iOS может группировать. Первое обновление и уведомления о старте и завершении по-прежнему со звуком. Выключено: звук при каждом обновлении."
|
||
},
|
||
"notify_live_sticky": {
|
||
"label": "Сохранять живое уведомление при нажатии",
|
||
"doc": "Только Android. Не убирать уведомление о прогрессе после нажатия. Выключено: нажатие его закрывает."
|
||
},
|
||
"notify_live_click_action": {
|
||
"label": "Цель нажатия уведомления",
|
||
"doc": "Что открывает нажатие на уведомление этого прибора. Пусто: панель WashData этого прибора. Введите путь дашборда (например, /lovelace/laundry) или URL, или «none», чтобы нажатие ничего не открывало."
|
||
},
|
||
"door_opens_at_end": {
|
||
"label": "Дверца открывается автоматически в конце",
|
||
"doc": "Для посудомоечных машин, которые в конце открывают дверцу для сушки (например, AirDry). Дверца, открытая в течение времени ниже, завершает цикл, а не ставит его на паузу; короткое открытие игнорируется. Нужен Объект Датчика Дверцы."
|
||
},
|
||
"door_end_dwell_seconds": {
|
||
"label": "Выдержка при открытой дверце",
|
||
"doc": "При включённом «Дверца открывается автоматически в конце»: сколько дверца должна оставаться открытой, прежде чем цикл завершится. Достаточно долго, чтобы не реагировать на добавление тарелки (по умолчанию 60 с)."
|
||
},
|
||
"profile_evidence_sources": {
|
||
"label": "Циклы, формирующие программу",
|
||
"doc": "Какие виды циклов формируют кривую и сопоставление каждой программы. Снятие отметки ничего не удаляет; полезно, если вы не доверяете импортированным данным. Статистика всегда считает только циклы этой машины. Снятие всех отметок игнорируется."
|
||
},
|
||
"energy_price_dynamic": {
|
||
"label": "Стоимость, взвешенная по времени",
|
||
"doc": "Считать стоимость каждого цикла по цене в каждый момент его работы, а не по цене на момент завершения. Нужен объект цены. «Обработка истории» (Диагностика) пересчитывает старые циклы."
|
||
},
|
||
"curve_preroll_seconds": {
|
||
"doc": "Добавляет в начало цикла показания неудачных попыток запуска, для машин, которые пробуют перед стартом (блокировка дверцы, первый набор воды). 300 с хватает большинству; 0 = выключено. Записанное начало сдвигается раньше, поэтому выученные длительности какое-то время меняются.",
|
||
"label": "Предзапись кривой"
|
||
},
|
||
"unload_confirm_entity": {
|
||
"label": "Объект Подтверждения Выгрузки",
|
||
"doc": "Необязательно. Любой объект, подтверждающий, что загрузку вынули, для машин без датчика дверцы (кнопка, input_button, датчик движения, сцена). Считается любое изменение состояния, кроме выключения и недоступности. Также включает напоминание о выгрузке."
|
||
},
|
||
"unload_track_without_door": {
|
||
"label": "Подтверждать Выгрузку Вручную",
|
||
"doc": "Включать напоминание о выгрузке без датчика дверцы и объекта подтверждения. Подтверждайте выгрузку из своей автоматизации кнопкой «Отметить как выгруженное» или службой ha_washdata.mark_unloaded. Игнорируется, если задан Объект Датчика Дверцы."
|
||
},
|
||
"notify_icon_color": {
|
||
"label": "Цвет Уведомления",
|
||
"doc": "Цвет акцента уведомлений этого прибора, чтобы легко отличать стиральную, сушильную и посудомоечную машины. В iOS заполняет круг за значком и окрашивает полосу Live Activity. Многие телефоны Android (особенно Samsung) его игнорируют. Используйте hex, например #03A9F4. Пусто: цвет платформы по умолчанию."
|
||
},
|
||
"share_name": {
|
||
"doc": "Показывать имя вашей учётной записи как автора циклов, которыми вы делитесь. Выключено: без имени."
|
||
}
|
||
},
|
||
"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": "Дверца и Пауза"
|
||
},
|
||
"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": "Основные настройки"
|
||
},
|
||
"profile_evidence": {
|
||
"label": "Основа профиля"
|
||
}
|
||
},
|
||
"status": {
|
||
"active": "Активно",
|
||
"all_statuses": "Все статусы",
|
||
"ambiguous": "Неоднозначно",
|
||
"auto_detect": "Авто-определение",
|
||
"clear": "Однозначно",
|
||
"completed": "Завершено",
|
||
"fine_tuning": "точная настройка…",
|
||
"force_stopped": "Принудительно остановлено",
|
||
"idle": "Ожидание",
|
||
"interrupted": "Прервано",
|
||
"ready": "Готов к обработке",
|
||
"recording": "Запись",
|
||
"training": "Обучение…",
|
||
"saving": "Сохранение…",
|
||
"rebuilding": "Перестроение…",
|
||
"analyzing": "Анализ…",
|
||
"resetting": "Сброс…",
|
||
"trimming": "Обрезка…",
|
||
"splitting": "Разбивка…",
|
||
"stalled": "Завис",
|
||
"deleting": "Удаление…",
|
||
"imported": "Импортировано",
|
||
"preparing": "Подготовка…",
|
||
"unlabelling": "Снятие метки…",
|
||
"working": "Выполняется…",
|
||
"match_uncertain": "Неуверенно: {top} или {runner}",
|
||
"match_uncertain_single": "Неуверенно: возможно, {top}",
|
||
"match_sure": "уверенность ~{pct}%",
|
||
"match_uncertain_tip": "WashData ещё не выбрал программу. Число показывает, как часто лидирующая догадка, {top}, оказывалась верной в прошлых циклах при таком отрыве. Только для сведения."
|
||
},
|
||
"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": {
|
||
"catalog_refreshed": "Каталог сообщества обновлён",
|
||
"task_name_required": "Укажите название задачи",
|
||
"task_added": "Задача добавлена",
|
||
"task_save_failed": "Не удалось сохранить задачу: {error}",
|
||
"task_removed": "Задача удалена",
|
||
"maint_logged": "Отмечено как выполненное: {task}",
|
||
"access_saved": "Управление доступом сохранено",
|
||
"all_wiped": "Все данные удалены",
|
||
"analysis_complete_none": "Анализ завершён: нет новых предложений",
|
||
"auto_label_complete": "Автоматическая пометка завершена",
|
||
"automation_deleted": "Автоматизация удалена",
|
||
"correction_submitted": "Исправление отправлено",
|
||
"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": "Группа сохранена",
|
||
"json_required": "Требуются данные JSON",
|
||
"legacy_removed": "Устаревшие действия удалены",
|
||
"logs_exported": "Журналы экспортированы",
|
||
"min_2_profiles": "Выберите не менее 2 профилей для группы",
|
||
"ml_training_no_improvement": "Обучение завершено: базовая модель сохранена (нет улучшений)",
|
||
"models_reverted": "Модели устройства сброшены до базовых",
|
||
"name_required": "Требуется имя",
|
||
"no_split_found": "Пауз для разбивки не найдено",
|
||
"panel_settings_saved": "Настройки панели сохранены",
|
||
"pg_preset_loaded": "Пресет «{name}» загружен",
|
||
"pg_preset_saved": "Пресет «{name}» сохранён",
|
||
"pg_sugg_loaded": "Загружено {n} рекомендуемых значений - запустите песочницу для сравнения",
|
||
"phase_name_required": "Требуется имя фазы",
|
||
"phase_reset": "Фаза «{name}» возвращена к встроенной версии",
|
||
"phase_updated": "Фаза обновлена",
|
||
"phases_saved": "Фазы сохранены",
|
||
"preferences_saved": "Настройки сохранены",
|
||
"profile_name_required": "Требуется имя профиля",
|
||
"profile_renamed": "Профиль переименован",
|
||
"recording_discarded": "Запись отменена",
|
||
"recording_saved": "Запись сохранена в профиль",
|
||
"recording_started": "Запись начата",
|
||
"recording_stopped": "Запись остановлена",
|
||
"review_saved": "Проверка сохранена",
|
||
"settings_conflicts": "Исправьте выделенные конфликты настроек перед сохранением.",
|
||
"settings_no_changes": "Нет изменений для сохранения",
|
||
"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_no_appliance": "Сначала укажите бренд и модель устройства в настройках.",
|
||
"store_share_failed": "Не удалось поделиться: {error}",
|
||
"store_shared": "Опубликовано в магазине сообщества, ожидает проверки.",
|
||
"contrib_device_changed": "Добавлено в магазин сообщества, но выбранное устройство изменилось, пока форма была открыта. Выберите его в настройках.",
|
||
"appliance_added": "Устройство добавлено, ожидает одобрения",
|
||
"brand_added": "Бренд добавлен, ожидает одобрения",
|
||
"profile_added": "Профиль добавлен, ожидает одобрения",
|
||
"saved_except_conflicts": "Сохранено. Исправьте выделенные конфликты, чтобы сохранить остальное.",
|
||
"share_device_none_sel": "Выберите хотя бы одну программу для публикации",
|
||
"store_device_downloaded": "Добавлено программ: {p}, записей: {c}",
|
||
"store_device_downloaded_phases": "Добавлено программ: {p}, записей: {c}, карт фаз: {ph}",
|
||
"store_device_downloaded_settings": "Добавлено программ: {p}, записей: {c}, карт фаз: {ph}, настроек: {s}",
|
||
"store_device_shared": "Опубликовано в магазине сообщества (циклов: {n}), ожидает проверки.",
|
||
"store_device_shared_all_dup": "Все выбранные циклы ({n}) уже были в магазине сообщества.",
|
||
"store_device_shared_partial": "Опубликовано циклов: {n}; не удалось загрузить: {failed}.",
|
||
"store_device_shared_some_dup": "Опубликовано циклов: {created}; уже в магазине: {dup}.",
|
||
"store_download_failed": "Ошибка загрузки: {error}",
|
||
"store_download_nothing": "Нечего загружать -- все профили уже существуют на этом устройстве",
|
||
"export_selective_done": "Экспорт скачан",
|
||
"import_selective_done": "Импортировано профилей: {profiles}, циклов: {cycles}",
|
||
"hist_csv_required": "Сначала загрузите файл CSV или вставьте его содержимое",
|
||
"file_read_failed": "Не удалось прочитать этот файл",
|
||
"unlabel_done": "Метка снята с {count} цикла(ов)",
|
||
"unlabel_failed": "Не удалось снять метку: {error}",
|
||
"odometer_saved": "Общее количество циклов сохранено",
|
||
"odometer_save_failed": "Не удалось сохранить общее количество: {error}",
|
||
"store_pick_profile_share": "Выберите профиль для публикации",
|
||
"remove_failed": "Не удалось удалить: {error}",
|
||
"analysis_complete": "Анализ завершён: предложений: {count}",
|
||
"analysis_failed": "Не удалось выполнить анализ: {error}",
|
||
"auto_detect_failed": "Не удалось выполнить авто-определение: {error}",
|
||
"auto_label_failed": "Не удалось автоматически пометить: {error}",
|
||
"could_not_load_cycle": "Не удалось загрузить цикл: {error}",
|
||
"create_failed": "Не удалось создать: {error}",
|
||
"cycles_deleted": "Удалено циклов: {count}",
|
||
"debug_cleared": "Очищено отладочных записей: {count}",
|
||
"discard_failed": "Не удалось отбросить: {error}",
|
||
"error": "Ошибка: {error}",
|
||
"export_failed": "Не удалось экспортировать: {error}",
|
||
"import_failed": "Не удалось импортировать: {error}",
|
||
"invalid_json": "«{key}» не является корректным JSON - исправьте его или очистите поле перед сохранением.",
|
||
"label_failed": "Не удалось пометить: {error}",
|
||
"ml_training_promoted": "Обучение завершено: активировано моделей: {count}",
|
||
"pause_failed": "Не удалось приостановить: {error}",
|
||
"phase_created": "Фаза «{name}» создана",
|
||
"phase_deleted": "Фаза «{name}» удалена",
|
||
"profile_created": "Профиль «{name}» создан",
|
||
"rename_failed": "Не удалось переименовать: {error}",
|
||
"save_failed": "Не удалось сохранить: {error}",
|
||
"split_complete": "Разбито на циклы: {count}",
|
||
"start_failed": "Не удалось запустить: {error}",
|
||
"stop_failed": "Не удалось остановить: {error}",
|
||
"update_failed": "Не удалось обновить: {error}",
|
||
"store_download_skipped": "Пропущено записей: {n} (слишком короткие, со слишком большими пропусками или уже есть на вашем устройстве).",
|
||
"store_import_low_quality": "Эта запись слишком короткая, содержит слишком большие пропуски или неправдоподобна, поэтому её нельзя импортировать.",
|
||
"store_import_duplicate": "Эта запись уже есть на вашем устройстве.",
|
||
"device_approved": "Одобрено сообществом",
|
||
"thanks_confirming": "Спасибо за подтверждение",
|
||
"rating_saved": "Оценка качества сохранена",
|
||
"store_download_partial": "Не загружено программ: {n}; повторите попытку позже.",
|
||
"import_no_restore_point": "Импорт выполнен, но точку восстановления сохранить не удалось, поэтому этот импорт нельзя отменить",
|
||
"import_undo_failed": "Не удалось отменить импорт: {error}",
|
||
"import_undone": "Импорт отменён: восстановлено профилей: {profiles}, циклов: {cycles}",
|
||
"auto_label_cancelled": "Автоматическая маркировка отменена после маркировки {count} циклов.",
|
||
"auto_label_cancelled_one": "Автоматическая маркировка отменена после маркировки {count} цикла.",
|
||
"auto_label_cancelled_few": "Автоматическая маркировка отменена после маркировки {count} циклов.",
|
||
"auto_label_cancelled_many": "Автоматическая маркировка отменена после маркировки {count} циклов.",
|
||
"auto_label_cancelled_other": "Автоматическая маркировка отменена после маркировки {count} цикла.",
|
||
"auto_label_done": "Автоматическая маркировка завершена: помечено {count} циклов, без метки осталось: {skipped}.",
|
||
"auto_label_done_one": "Автоматическая маркировка завершена: помечен {count} цикл, без метки осталось: {skipped}.",
|
||
"auto_label_done_few": "Автоматическая маркировка завершена: помечено {count} цикла, без метки осталось: {skipped}.",
|
||
"auto_label_done_many": "Автоматическая маркировка завершена: помечено {count} циклов, без метки осталось: {skipped}.",
|
||
"auto_label_done_other": "Автоматическая маркировка завершена: помечено {count} цикла, без метки осталось: {skipped}."
|
||
},
|
||
"suggestion": {
|
||
"observed_label": "Наблюдаемое",
|
||
"impact": {
|
||
"auto_label_confidence": {
|
||
"higher": "Автоматически маркирует меньше циклов; больше отправляется на проверку",
|
||
"lower": "Автоматически маркирует больше циклов; некоторые могут быть определены неверно"
|
||
},
|
||
"duration_tolerance": {
|
||
"higher": "Принимает более широкий диапазон длительности – более гибкое сопоставление",
|
||
"lower": "Требует более точного совпадения длительности – строже, но может отклонить необычные циклы"
|
||
},
|
||
"end_energy_threshold": {
|
||
"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": "Сопоставляет больше циклов; некоторые могут быть немного неверны"
|
||
},
|
||
"start_threshold_w": {
|
||
"higher": "Исключает ложные запуски от кратковременных скачков мощности",
|
||
"lower": "Улавливает маломощные программы; может сработать на шум"
|
||
},
|
||
"stop_threshold_w": {
|
||
"higher": "Завершает цикл быстрее – может закрыть во время паузы",
|
||
"lower": "Дольше ждёт завершения – меньше преждевременных завершений"
|
||
},
|
||
"watchdog_interval": {
|
||
"higher": "Допускает более длительные тихие фазы; меньше ложных принудительных остановок",
|
||
"lower": "Более агрессивно обнаруживает зависшие циклы"
|
||
}
|
||
},
|
||
"reason": {
|
||
"completion_min_seconds": "Половина длительности p05 корректного цикла ({minutes} min) по {cycles} циклам; отфильтровывает ложные циклы.{excl}",
|
||
"match_interval": "На основе наблюдаемой частоты обновлений (медиана={median}s) * 10.",
|
||
"match_interval_capped": "Ограничено так, чтобы {persistence} последовательных совпадений уместились в {pct}% самой короткой программы ({shortest}s); одна лишь частота обновлений (медиана={median}s) подсказала бы более длинный интервал.",
|
||
"match_interval_floored": "Самая короткая программа ({shortest}s) ограничила бы это значение до {cap}s, ниже минимума {minimum}s, поэтому используется минимум: {persistence} совпадений подряд занимают {budget}s, больше {pct}% этой программы. Сопоставление идёт только при поступлении показания (медиана={median}s), так что это ничего не стоит.",
|
||
"max_duration_ratio": "На основе длительностей размеченных циклов (p95={p95}).",
|
||
"min_off_gap": "На основе {gaps} наблюдаемых промежутков между циклами (p05={p05}s). Минимум устройства: {floor}s.",
|
||
"min_off_gap_bridge": "Рассчитано так, чтобы перекрыть самый длинный тихий участок внутри цикла: {span}s + запас 60s, по {spans} перекрытым промежуткам за {cycles} корректных циклов (остаётся ниже вашего наименьшего промежутка между двумя запусками подряд, который составляет {ceiling}s).",
|
||
"min_power": "40% от наименьшей активной мощности p05 ({p05}W) по {cycles} корректным циклам, чтобы порог отключения оставался ниже реального потребления.{excl}",
|
||
"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).",
|
||
"standby_floor": "Каждый недавний цикл продолжал потреблять {idle}W в момент завершения, поэтому порог ниже этого значения никогда не сможет зафиксировать выключение прибора. Он оставлен выше неё; {cycles} чистых циклов в истории никогда не опускались ниже него более чем на {pause}с.",
|
||
"thr_batch": "Чуть выше самой низкой рабочей мощности (p05) по {cycles} циклам ({p05}W), чтобы старты ловились рано, а порог остановки оставался ниже самой низкой рабочей мощности.",
|
||
"watchdog": "Оставлено настолько низким, насколько это безопасно (чуть выше интервала обновления p95, равного {p95}s, и не менее 2x интервала выборки {median}s, мин. 30s), чтобы зависания выявлялись быстро без ложных остановок.",
|
||
"end_energy_floor": "Повышено до минимума, который следует из порога остановки ({stop} Вт) в течение задержки выключения ({off_delay} с); ниже него цикл может завершиться только резервным путём.",
|
||
"max_duration_ratio_default": "Возвращено значение по умолчанию: более низкий верхний предел отклоняет правильную программу всякий раз, когда цикл длится дольше обычного.",
|
||
"min_duration_ratio_default": "Возвращено значение по умолчанию: более высокий нижний предел не даёт распознать идущий цикл, пока он не продвинется достаточно далеко."
|
||
},
|
||
"exclusions": {
|
||
"summary": "Исключено {total} ошибочно определённых циклов: {parts}.",
|
||
"reason": {
|
||
"force_stopped": "принудительно остановленные",
|
||
"user_stopped": "остановленные вручную",
|
||
"interrupted": "прерванные",
|
||
"incomplete": "незавершённые",
|
||
"noise": "шум",
|
||
"unlabeled": "без метки",
|
||
"no_trace_short": "слишком короткие для анализа",
|
||
"high_start": "начатые при высокой мощности",
|
||
"abrupt_end": "резко завершённые",
|
||
"mid_restart": "перезапуск в середине цикла",
|
||
"no_power": "без мощности",
|
||
"no_active_power": "без активной мощности"
|
||
}
|
||
},
|
||
"now_value": "(сейчас {v})"
|
||
},
|
||
"trend": {
|
||
"down": "Нисходящая тенденция",
|
||
"up": "Восходящая тенденция"
|
||
},
|
||
"maint": {
|
||
"bearing_service": "Обслуживание подшипников",
|
||
"salt": "Пополнение соли",
|
||
"rinse_aid": "Пополнение ополаскивателя",
|
||
"lint_filter": "Очистка фильтра ворса",
|
||
"condenser_clean": "Очистка конденсатора",
|
||
"descale": "Удаление накипи",
|
||
"drum_clean": "Очистка барабана",
|
||
"filter_clean": "Очистка фильтра",
|
||
"other": "Другое"
|
||
},
|
||
"pg_desc": {
|
||
"dishwasher_end_spike_quiet_release": "Посудомоечная машина: секунды неактивности после ожидаемой длительности перед снятием ожидания финального слива в конце цикла",
|
||
"smart_termination_duration_ratio": "Доля средней длительности программы, которую цикл должен пройти, прежде чем Умное завершение сможет закончить его раньше; уменьшите, если время работы колеблется",
|
||
"completion_min_seconds": "Кратчайший запуск, считающийся настоящим циклом",
|
||
"interrupted_min_seconds": "Короткие циклы помечаются как прерванные",
|
||
"min_off_gap": "Промежуток для разделения двух циклов",
|
||
"off_delay": "Секунды низкой мощности до завершения цикла",
|
||
"start_duration_threshold": "Секунды выше порога для подтверждения старта",
|
||
"start_threshold_w": "Минимум ватт, чтобы считать запущенным",
|
||
"stop_threshold_w": "Ниже этого машина считается выключенной",
|
||
"anti_crease_finalize_ratio": "Доля средней длительности программы, которую цикл должен пройти, прежде чем хвост защиты от морщин сможет его завершить; уменьшите для сушильных машин, для стиральных оставьте по умолчанию",
|
||
"anti_wrinkle_enabled": "Поглощать импульсы вращения барабана после основной фазы, а не считать их новыми циклами",
|
||
"anti_wrinkle_exit_power": "Уровень мощности в паузах между импульсами вращения; действует только выше Порога Остановки",
|
||
"anti_wrinkle_idle_timeout": "Допустимая тишина между двумя импульсами вращения барабана, прежде чем защита от морщин завершится",
|
||
"anti_wrinkle_max_duration": "Импульс длиннее этого завершает защиту от морщин и открывает новый цикл",
|
||
"anti_wrinkle_max_power": "Импульс выше этого завершает защиту от морщин и открывает новый цикл",
|
||
"profile_match_min_duration_ratio": "Минимальная длина цикла как доля длительности профиля; по умолчанию 0,1 (10%)",
|
||
"profile_match_max_duration_ratio": "Максимальная длина цикла как доля длительности профиля; по умолчанию 1,8 (180%)",
|
||
"curve_preroll_seconds": "Секунды показаний от прерванных попыток запуска, переносимые в начало кривой цикла; 0 = выключено"
|
||
},
|
||
"col": {
|
||
"profile_tip": "Название сопоставленной программы. «Без метки» означает, что в конце цикла не совпал ни один профиль.",
|
||
"status_tip": "Результат цикла: Завершён (естественное окончание), Прерван (резкое падение мощности), Принудительно остановлен (вручную) или Требует проверки (ожидается отзыв).",
|
||
"date_tip": "Дата и время начала цикла.",
|
||
"duration_tip": "Общее время работы цикла от начала до конца.",
|
||
"energy_tip": "Всего потреблено энергии (кВт·ч), рассчитано по мощности во времени.",
|
||
"cost_tip": "Стоимость энергии этого цикла, зафиксированная при завершении. При включённой «Стоимости, взвешенной по времени» каждый момент оплачивается по своей цене; иначе по цене на конец. Задайте цену в настройках, чтобы это заполнилось.",
|
||
"confidence_tip": "Достоверность совпадения профиля (0–100%). Насколько точно кривая мощности цикла совпала с определённой программой.",
|
||
"flags_tip": "Метки сообщества и индикаторы качества данных",
|
||
"cost_dynamic_tip": "Взвешено по времени: рассчитано по цене, действовавшей во время цикла (эффективно {price} {cur}/кВт·ч).",
|
||
"dbg_conf": "Дост.",
|
||
"dbg_mae": "MAE",
|
||
"dbg_corr": "Корр."
|
||
},
|
||
"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": "Цикл достиг конечного состояния и завершился.",
|
||
"match_reverted": "Программа вернулась к обнаружению: её оценка упала намного ниже собственного пика.",
|
||
"verified_pause": "Выравнивание в реальном времени подтвердило (или сняло) паузу внутри программы. Пока пауза действует, цикл не завершается.",
|
||
"stalled": "Цикл держался на потреблении ожидания дольше, чем эта программа когда-либо делает там паузу, хотя работа не закончена. Показан как Пауза (Завис); цикл остаётся открытым."
|
||
},
|
||
"store": {
|
||
"search_ph2": "Поиск по бренду или модели…",
|
||
"your_model_tip": "Это устройство, которое вы указали в настройках",
|
||
"your_model": "Ваше",
|
||
"programs_count": "Программы: {n}",
|
||
"browse": "Обзор",
|
||
"device": "Устройство",
|
||
"no_results": "Подходящие устройства не найдены. Попробуйте другой запрос.",
|
||
"no_programs": "Для этого устройства пока нет опубликованных программ.",
|
||
"no_cycles": "Для этой программы пока нет опубликованных эталонных циклов.",
|
||
"anon": "аноним",
|
||
"uploaded_by": "Опубликовано пользователем {name}",
|
||
"connected_as": "Вы вошли как {name}",
|
||
"not_connected": "Не подключено. Подключите аккаунт GitHub, чтобы делиться своими циклами.",
|
||
"import_new": "Новый профиль",
|
||
"import_merge": "Объединить с существующим",
|
||
"merge_target": "Объединить с профилем",
|
||
"description": "Описание (необязательно)",
|
||
"contributed_by": "от {name}",
|
||
"website": "Сайт магазина ↗",
|
||
"website_tip": "Открыть сайт магазина сообщества",
|
||
"favorites": "Избранное",
|
||
"rating_summary": "★ {avg} ({n})",
|
||
"no_ratings": "Пока нет оценок",
|
||
"unreachable": "Не удалось подключиться к магазину сообщества. Проверьте подключение и повторите попытку."
|
||
},
|
||
"settings": {
|
||
"gear": {
|
||
"title": "Параметры"
|
||
}
|
||
},
|
||
"link": {
|
||
"maintenance_supporter": "Maintenance Supporter на GitHub ↗",
|
||
"manual": "Руководство ↗"
|
||
},
|
||
"tip": {
|
||
"add_brand": "Бренда нет в списке? Добавьте его в каталог сообщества",
|
||
"add_appliance": "Модели нет в списке? Добавьте ваше устройство в каталог сообщества",
|
||
"add_profile": "Добавьте профиль для этого устройства на сайте сообщества"
|
||
},
|
||
"task": {
|
||
"reprocess": {
|
||
"matching": "Повторная обработка: сопоставление циклов",
|
||
"golden": "Повторная обработка: заполнение эталонных",
|
||
"suggestions": "Повторная обработка: предложения",
|
||
"ml_training": "Повторная обработка: обучение ML",
|
||
"health": "Повторная обработка: качество циклов",
|
||
"costs": "Повторная обработка: затраты на энергию"
|
||
},
|
||
"pg_sweep": {
|
||
"optimize": "Оптимизация: {param}"
|
||
},
|
||
"pg_detail": {
|
||
"simulate": "Смоделировать цикл"
|
||
},
|
||
"split": {
|
||
"apply": "Разделение цикла"
|
||
},
|
||
"trim": {
|
||
"apply": "Обрезка цикла"
|
||
},
|
||
"merge": {
|
||
"apply": "Объединение циклов"
|
||
},
|
||
"rebuild": {
|
||
"envelopes": "Пересчёт огибающих"
|
||
},
|
||
"cancelling": "Отмена...",
|
||
"auto_label": {
|
||
"running": "Автоматическая пометка циклов"
|
||
},
|
||
"store_download": {
|
||
"running": "Загрузка из магазина"
|
||
}
|
||
},
|
||
"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 есть предложения по настройкам на основе истории ваших циклов. Просмотрите их, чтобы улучшить обнаружение."
|
||
},
|
||
"phase4": {
|
||
"healthy": "Это устройство полностью настроено ({profile_count} профилей)."
|
||
},
|
||
"cta": {
|
||
"start_recording": "Начать запись",
|
||
"label_detected_cycle": "У меня уже есть обнаруженный цикл – пометить его вместо записи",
|
||
"browse_cycles": "Просматривать циклы для пометки следующего",
|
||
"view_profiles": "Просмотреть свои профили",
|
||
"create_from_cluster": "Создать профиль из этих циклов",
|
||
"create_profile": "Создать для него профиль",
|
||
"review_suggestions": "Просмотреть предложения",
|
||
"skip_step": "Пропустить этот шаг",
|
||
"skip_forever": "Больше не показывать",
|
||
"hide_guidance": "Скрыть подсказки",
|
||
"show_guidance": "Показать подсказки"
|
||
}
|
||
},
|
||
"access": {
|
||
"edit": "Редактирование",
|
||
"full": "Полный",
|
||
"inherit": "Наследовать",
|
||
"none": "Нет (скрыто)",
|
||
"read": "Чтение"
|
||
},
|
||
"pg_label_reason": {
|
||
"no_winner": "Ни одна программа не подошла",
|
||
"below_floor": "Ниже порога «Уверенность Обучения»",
|
||
"ambiguous": "Помечено как неоднозначное",
|
||
"margin": "Слишком малый отрыв от второй программы",
|
||
"unknown_profile": "Программа больше не существует",
|
||
"not_evaluated": "Не оценено"
|
||
},
|
||
"diagram": {
|
||
"accum": "накоп.",
|
||
"auto": "авто",
|
||
"below_off": "ниже = выкл.",
|
||
"confirmed": "подтверждено",
|
||
"energy_counts": "энергия учитывается",
|
||
"feedback": "отзыв",
|
||
"gap_below_min": "пауза меньше мин. = один цикл",
|
||
"heat_phase": "фаза нагрева",
|
||
"held_at_100": "остаётся на 100%",
|
||
"ignored": "игнорируется",
|
||
"kept": "сохранён",
|
||
"max": "макс.",
|
||
"min": "мин.",
|
||
"minus_tol": "-доп",
|
||
"no_match": "нет совпадения",
|
||
"no_updates": "нет обновлений",
|
||
"off_delay_wait": "задержка выключения",
|
||
"off_gap": "пауза выкл.",
|
||
"plus_tol": "+доп",
|
||
"profile": "профиль",
|
||
"reading_interval": "типичный интервал показаний",
|
||
"sensor_offline": "датчик офлайн: принуд. остановка",
|
||
"si": "ИВ",
|
||
"spike_ignored": "всплеск игнорируется",
|
||
"spike_ignored_short": "всплеск: игнорируется",
|
||
"start": "запуск",
|
||
"stop": "остановка",
|
||
"tail_energy_resets": "энергия хвоста выше порога: таймер сбрасывается",
|
||
"thr": "порог",
|
||
"too_short": "слишком короткий",
|
||
"tumble_kept": "импульсы барабана сохраняются"
|
||
}
|
||
}
|