1925 lines
115 KiB
JSON
1925 lines
115 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "Ассистент обслуживания",
|
||
"description": "Настройте вашу систему управления обслуживанием.",
|
||
"menu_options": {
|
||
"create_object": "Создать объект обслуживания",
|
||
"create_from_template": "Создать из шаблона",
|
||
"global_setup": "Глобальные настройки"
|
||
}
|
||
},
|
||
"create_from_template": {
|
||
"title": "Выбор категории шаблона",
|
||
"description": "Выберите категорию для просмотра предустановленных шаблонов обслуживания.",
|
||
"data": {
|
||
"template_category": "Категория",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"go_back": "Вернуться в главное меню без сохранения."
|
||
}
|
||
},
|
||
"template_select": {
|
||
"title": "Выберите шаблон",
|
||
"description": "Выберите шаблон обслуживания, который будет использоваться в качестве отправной точки.",
|
||
"data": {
|
||
"template_id": "Шаблон",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"go_back": "Вернуться к выбору категории без сохранения."
|
||
}
|
||
},
|
||
"template_customize": {
|
||
"title": "Настройка шаблона",
|
||
"description": "Настройте шаблон {template_name}. Он включает {task_count} задач: {task_list}.",
|
||
"data": {
|
||
"name": "Название объекта",
|
||
"area_id": "Зона",
|
||
"manufacturer": "Производитель",
|
||
"model": "Модель",
|
||
"serial_number": "Серийный номер",
|
||
"documentation_url": "URL руководства / документации",
|
||
"notes": "Заметки",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"name": "Название для этого объекта обслуживания.",
|
||
"area_id": "Зона, в которой находится этот объект.",
|
||
"manufacturer": "Производитель объекта.",
|
||
"model": "Название или номер модели.",
|
||
"serial_number": "Серийный номер объекта.",
|
||
"documentation_url": "Необязательная ссылка на PDF-руководство, страницу производителя или любой URL со справочной информацией об этом объекте.",
|
||
"notes": "Свободные заметки об объекте — номера деталей, процедуры, напоминания, и т.п.",
|
||
"go_back": "Вернуться к выбору шаблона без сохранения."
|
||
}
|
||
},
|
||
"global_setup": {
|
||
"title": "Глобальные настройки",
|
||
"description": "Настройте глобальные параметры обслуживания.",
|
||
"data": {
|
||
"default_warning_days": "За сколько дней до истечения срока предупреждать",
|
||
"notifications_enabled": "Включить уведомления",
|
||
"notify_service": "Сервис уведомлений"
|
||
},
|
||
"data_description": {
|
||
"default_warning_days": "Количество дней до наступления срока выполнения задачи обслуживания, за которое показывать предупреждение.",
|
||
"notifications_enabled": "Отправлять уведомления, когда задачи обслуживания становятся просроченными.",
|
||
"notify_service": "Сервис уведомлений для использования (например, notify.mobile_app_phone)."
|
||
}
|
||
},
|
||
"create_object": {
|
||
"title": "Создание объекта обслуживания",
|
||
"description": "Опишите устройство или ресурс для управления обслуживанием.",
|
||
"data": {
|
||
"name": "Название объекта",
|
||
"area_id": "Зона",
|
||
"manufacturer": "Производитель",
|
||
"model": "Модель",
|
||
"serial_number": "Серийный номер",
|
||
"documentation_url": "URL руководства / документации",
|
||
"notes": "Заметки",
|
||
"installation_date": "Дата установки",
|
||
"warranty_expiry": "Окончание гарантии",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"name": "Уникальное имя для этого объекта обслуживания (например, 'Насос бассейна', 'Автомобиль').",
|
||
"area_id": "Зона в вашем доме, в которой находится этот объект.",
|
||
"manufacturer": "Производитель объекта.",
|
||
"model": "Название или номер модели.",
|
||
"serial_number": "Серийный номер объекта.",
|
||
"documentation_url": "Необязательная ссылка на PDF-руководство, страницу производителя или любой URL со справочной информацией об этом объекте.",
|
||
"notes": "Свободные заметки об объекте — номера деталей, процедуры, напоминания, и т.п.",
|
||
"installation_date": "Когда этот объект был установлен или куплен.",
|
||
"warranty_expiry": "Когда истекает гарантия производителя на этот объект.",
|
||
"go_back": "Вернуться в главное меню без сохранения."
|
||
}
|
||
},
|
||
"task_menu": {
|
||
"title": "Задачи обслуживания",
|
||
"description": "Добавьте задачи обслуживания для {object_name}. Сейчас настроено {task_count} задач.",
|
||
"menu_options": {
|
||
"add_task": "Добавить задачу обслуживания",
|
||
"finish": "Завершить настройку"
|
||
}
|
||
},
|
||
"add_task": {
|
||
"title": "Добавить задачу обслуживания",
|
||
"description": "Добавьте задачу обслуживания для {object_name}.",
|
||
"data": {
|
||
"name": "Название задачи",
|
||
"type": "Тип обслуживания",
|
||
"schedule_type": "Тип расписания",
|
||
"custom_icon": "Иконка задачи",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"name": "Описательное название для этой задачи (например, 'Очистка фильтра', 'Замена масла').",
|
||
"type": "Категория работ по обслуживанию.",
|
||
"schedule_type": "Как эта задача должна планироваться.",
|
||
"custom_icon": "Необязательная пользовательская иконка для этой задачи (например, mdi:oil, mdi:filter-variant).",
|
||
"go_back": "Вернуться в меню задач без сохранения."
|
||
}
|
||
},
|
||
"time_based": {
|
||
"title": "Расписание на основе времени",
|
||
"description": "Настройте временной интервал для этой задачи обслуживания.",
|
||
"data": {
|
||
"interval_days": "Интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"last_performed": "Последнее выполнение",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад",
|
||
"interval_anchor": "Якорь интервала"
|
||
},
|
||
"data_description": {
|
||
"interval_days": "Как часто повторяется это обслуживание, в сочетании с единицей интервала.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"last_performed": "Когда это обслуживание выполнялось в последний раз. Оставьте пустым, если никогда не выполнялось.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться к созданию задачи без сохранения.",
|
||
"interval_anchor": "Как рассчитывается следующая дата после завершения. 'Плановый' предотвращает дрейф расписания, привязываясь к исходной плановой дате."
|
||
}
|
||
},
|
||
"one_time": {
|
||
"title": "Разовая задача",
|
||
"description": "Настройте одну неповторяющуюся задачу обслуживания. После выполнения она архивируется.",
|
||
"data": {
|
||
"due_date": "Срок",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"due_date": "Дата, к которой должна быть выполнена эта разовая задача.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться к созданию задачи без сохранения."
|
||
}
|
||
},
|
||
"calendar": {
|
||
"title": "Расписание по календарю",
|
||
"description": "Настройте повторение на основе календаря (дни недели, n-й день недели месяца или день месяца).",
|
||
"data": {
|
||
"weekdays": "В эти дни недели",
|
||
"nth": "Какое вхождение",
|
||
"weekday": "День недели",
|
||
"day": "День месяца",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад",
|
||
"last_day": "Последний день месяца",
|
||
"business": "Только рабочие дни",
|
||
"offset": "Сдвиг (дни)"
|
||
},
|
||
"data_description": {
|
||
"weekdays": "Задача повторяется в каждый выбранный день недели.",
|
||
"nth": "Какое вхождение в месяце (например, 1-е или Последнее).",
|
||
"weekday": "День недели для правила n-го дня недели (например, суббота).",
|
||
"day": "День месяца (1-31; ограничивается длиной месяца).",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться к созданию задачи без сохранения.",
|
||
"last_day": "Заменяет номер дня: срок — последний день месяца.",
|
||
"business": "Переносит дату с выходных на предыдущую пятницу (например, последний рабочий день).",
|
||
"offset": "Сдвигает вычисленную дату на ±N дней (например, -2 = за два дня)."
|
||
}
|
||
},
|
||
"sensor_select": {
|
||
"title": "Выберите датчик-триггер",
|
||
"description": "Выберите сущность Home Assistant для отслеживания для этой задачи обслуживания.",
|
||
"data": {
|
||
"trigger_entity": "Сущность для отслеживания",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_entity": "Выберите датчик, который должен запускать эту задачу обслуживания.",
|
||
"go_back": "Вернуться к созданию задачи без сохранения."
|
||
}
|
||
},
|
||
"sensor_attribute": {
|
||
"title": "Выберите атрибут",
|
||
"description": "Выберите, какое значение отслеживать в {entity_id}. Текущее состояние: {current_state} {unit}",
|
||
"data": {
|
||
"trigger_attribute": "Значение для отслеживания",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_attribute": "Выберите состояние сущности или конкретный атрибут для отслеживания.",
|
||
"go_back": "Вернуться к выбору сущности без сохранения."
|
||
}
|
||
},
|
||
"trigger_type": {
|
||
"title": "Тип триггера",
|
||
"description": "Как значение датчика должно запускать обслуживание?",
|
||
"data": {
|
||
"trigger_type": "Тип триггера",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_type": "Порог: срабатывает, когда значение превышает лимиты. Счетчик: срабатывает после накопления целевого значения. Изменение состояния: срабатывает после определенного количества переходов состояния.",
|
||
"go_back": "Вернуться к выбору атрибута без сохранения."
|
||
}
|
||
},
|
||
"trigger_threshold": {
|
||
"title": "Настройка порога",
|
||
"description": "Установите пороговые значения для **{entity_id}** ({attribute}).\nТекущее: **{current_value} {unit}** | Среднее: {average} | Диапазон: {minimum}–{maximum} ({data_period} дн.)\nРекомендуемое выше: {suggested_above} | Рекомендуемое ниже: {suggested_below}",
|
||
"data": {
|
||
"trigger_above": "Срабатывать при превышении",
|
||
"trigger_below": "Срабатывать при падении ниже",
|
||
"trigger_for_minutes": "В течение (минут)",
|
||
"interval_days": "Защитный интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_above": "Запускать обслуживание, когда значение превышает этот порог.",
|
||
"trigger_below": "Запускать обслуживание, когда значение падает ниже этого порога.",
|
||
"trigger_for_minutes": "Значение должно превышать порог в течение этого количества минут перед запуском.",
|
||
"interval_days": "Дополнительный временной защитный интервал в дополнение к триггеру датчика.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться к выбору типа триггера без сохранения."
|
||
}
|
||
},
|
||
"trigger_counter": {
|
||
"title": "Настройка счетчика",
|
||
"description": "Установите целевое значение счетчика для {entity_id} ({attribute}). Текущее: {current_value} {unit}.",
|
||
"data": {
|
||
"trigger_target_value": "Целевое значение",
|
||
"trigger_delta_mode": "Режим дельты (учитывать изменения, не абсолютное значение)",
|
||
"interval_days": "Защитный интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_target_value": "Запускать обслуживание при достижении этого накопленного значения.",
|
||
"trigger_delta_mode": "Если включено, считает разницу от базового уровня вместо абсолютного значения.",
|
||
"interval_days": "Дополнительный временной защитный интервал в дополнение к триггеру счетчика.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться к выбору типа триггера без сохранения."
|
||
}
|
||
},
|
||
"trigger_state_change": {
|
||
"title": "Настройка изменения состояния",
|
||
"description": "Подсчет переходов состояния {entity_id}.",
|
||
"data": {
|
||
"trigger_from_state": "Из состояния (опционально)",
|
||
"trigger_to_state": "В состояние (опционально)",
|
||
"trigger_target_changes": "Количество изменений для срабатывания",
|
||
"interval_days": "Защитный интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_from_state": "Учитывать только переходы из этого состояния. Оставьте пустым для любого.",
|
||
"trigger_to_state": "Учитывать только переходы в это состояние. Оставьте пустым для любого.",
|
||
"trigger_target_changes": "Количество соответствующих изменений состояния перед запуском обслуживания.",
|
||
"interval_days": "Дополнительный временной защитный интервал в дополнение к триггеру изменения состояния.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться к выбору типа триггера без сохранения."
|
||
}
|
||
},
|
||
"trigger_runtime": {
|
||
"title": "Настройка времени работы",
|
||
"description": "Отслеживайте накопленное время работы {entity_id}. Обслуживание запускается, когда общее время включения достигает целевого количества часов.",
|
||
"data": {
|
||
"trigger_runtime_hours": "Целевое время работы (часы)",
|
||
"trigger_on_states": "Активные состояния (через запятую)",
|
||
"interval_days": "Защитный интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_runtime_hours": "Запускать обслуживание после этого количества часов накопленного времени работы.",
|
||
"trigger_on_states": "Какие состояния датчика считать 'активными'. Оставьте пустым для значений по умолчанию: on, 1, true. Пример: in_use, running",
|
||
"interval_days": "Дополнительный временной защитный интервал в дополнение к триггеру времени работы.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться к выбору типа триггера без сохранения."
|
||
}
|
||
},
|
||
"compound_logic": {
|
||
"title": "Составной триггер",
|
||
"description": "Выберите, как должны комбинироваться несколько условий.",
|
||
"data": {
|
||
"compound_logic": "Логика",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"compound_logic": "И = все условия должны сработать. ИЛИ = любое условие срабатывает.",
|
||
"go_back": "Вернуться к выбору типа триггера без сохранения."
|
||
}
|
||
},
|
||
"compound_condition_entity": {
|
||
"title": "Условие #{condition_num} — Сущность",
|
||
"description": "Выберите сущность для этого условия.",
|
||
"data": {
|
||
"trigger_entity": "Сущность",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_entity": "Сущность датчика для отслеживания для этого условия.",
|
||
"go_back": "Вернуться к предыдущему шагу без сохранения."
|
||
}
|
||
},
|
||
"compound_condition_type": {
|
||
"title": "Условие #{condition_num} — Тип",
|
||
"description": "Как это условие должно оценивать датчик?",
|
||
"data": {
|
||
"trigger_type": "Тип триггера",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_type": "Метод, используемый для определения, когда это условие срабатывает.",
|
||
"go_back": "Вернуться к выбору сущности без сохранения."
|
||
}
|
||
},
|
||
"compound_condition_threshold": {
|
||
"title": "Условие — Порог",
|
||
"data": {
|
||
"trigger_above": "Срабатывать при превышении",
|
||
"trigger_below": "Срабатывать при падении ниже",
|
||
"trigger_for_minutes": "Длительность (минуты)",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_above": "Срабатывать, когда значение превышает этот порог.",
|
||
"trigger_below": "Срабатывать, когда значение падает ниже этого порога.",
|
||
"trigger_for_minutes": "Значение должно оставаться за порогом в течение этой длительности.",
|
||
"go_back": "Вернуться к выбору типа условия без сохранения."
|
||
}
|
||
},
|
||
"compound_condition_counter": {
|
||
"title": "Условие — Счетчик",
|
||
"data": {
|
||
"trigger_target_value": "Целевое значение",
|
||
"trigger_delta_mode": "Режим дельты",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_target_value": "Срабатывать, когда накопленное значение достигает этой цели.",
|
||
"trigger_delta_mode": "Считать изменения от базового уровня вместо абсолютного значения.",
|
||
"go_back": "Вернуться к выбору типа условия без сохранения."
|
||
}
|
||
},
|
||
"compound_condition_state_change": {
|
||
"title": "Условие — Изменение состояния",
|
||
"data": {
|
||
"trigger_from_state": "Из состояния",
|
||
"trigger_to_state": "В состояние",
|
||
"trigger_target_changes": "Количество изменений",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_from_state": "Учитывать только переходы из этого состояния. Оставьте пустым для любого.",
|
||
"trigger_to_state": "Учитывать только переходы в это состояние. Оставьте пустым для любого.",
|
||
"trigger_target_changes": "Количество соответствующих изменений состояния перед срабатыванием.",
|
||
"go_back": "Вернуться к выбору типа условия без сохранения."
|
||
}
|
||
},
|
||
"compound_condition_runtime": {
|
||
"title": "Условие — Время работы",
|
||
"data": {
|
||
"trigger_runtime_hours": "Целевое время работы (часы)",
|
||
"trigger_on_states": "Активные состояния",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_runtime_hours": "Срабатывать после этого количества часов накопленного времени работы.",
|
||
"trigger_on_states": "Состояния датчика, считающиеся 'активными'. Оставьте пустым для значений по умолчанию.",
|
||
"go_back": "Вернуться к выбору типа условия без сохранения."
|
||
}
|
||
},
|
||
"compound_review": {
|
||
"title": "Просмотр составного триггера",
|
||
"description": "Настроено {condition_count} условие(й) с логикой {compound_logic}.",
|
||
"data": {
|
||
"compound_action": "Действие",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"go_back": "Вернуться к выбору логики без сохранения."
|
||
}
|
||
},
|
||
"manual": {
|
||
"title": "Ручное расписание",
|
||
"description": "У этой задачи нет автоматического расписания. Вы можете отметить ее как просроченную вручную.",
|
||
"data": {
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"notes": "Примечания",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"notes": "Дополнительные примечания или инструкции для этой задачи.",
|
||
"go_back": "Вернуться к созданию задачи без сохранения."
|
||
}
|
||
},
|
||
"reconfigure": {
|
||
"title": "Перенастроить {name}",
|
||
"description": "Обновите настройки для этого объекта обслуживания.",
|
||
"data": {
|
||
"name": "Название объекта",
|
||
"area_id": "Зона",
|
||
"manufacturer": "Производитель",
|
||
"model": "Модель",
|
||
"serial_number": "Серийный номер",
|
||
"documentation_url": "URL руководства / документации",
|
||
"notes": "Заметки",
|
||
"installation_date": "Дата установки",
|
||
"warranty_expiry": "Окончание гарантии"
|
||
},
|
||
"data_description": {
|
||
"name": "Название этого объекта обслуживания.",
|
||
"area_id": "Зона, где находится этот объект.",
|
||
"manufacturer": "Производитель этого объекта.",
|
||
"model": "Модель этого объекта.",
|
||
"serial_number": "Серийный номер этого объекта.",
|
||
"documentation_url": "Необязательная ссылка на PDF-руководство, страницу производителя или любой URL со справочной информацией об этом объекте.",
|
||
"notes": "Свободные заметки об объекте — номера деталей, процедуры, напоминания, и т.п.",
|
||
"installation_date": "Когда этот объект был установлен.",
|
||
"warranty_expiry": "Когда истекает гарантия производителя на этот объект."
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"name_exists": "Объект обслуживания с таким именем уже существует.",
|
||
"no_tasks": "Требуется хотя бы одна задача обслуживания.",
|
||
"invalid_entity": "Выбранная сущность не существует или не имеет числовых данных.",
|
||
"invalid_attribute": "Выбранный атрибут недоступен для этой сущности.",
|
||
"invalid_threshold": "Должен быть установлен хотя бы один порог (выше или ниже).",
|
||
"invalid_due_date": "Для разовых задач требуется срок.",
|
||
"invalid_interval": "Интервал должен быть положительным числом.",
|
||
"min_exceeds_max": "Минимальный интервал не должен превышать максимальный интервал.",
|
||
"invalid_notify_service": "Неверный формат сервиса уведомлений. Используйте 'notify.service_name' (например, notify.mobile_app_phone).",
|
||
"notify_service_not_found": "Этот сервис уведомлений не найден в Home Assistant. Пожалуйста, проверьте имя сервиса.",
|
||
"nfc_tag_duplicate": "Эта NFC-метка уже привязана к другой задаче."
|
||
},
|
||
"abort": {
|
||
"already_configured": "Этот объект обслуживания уже настроен.",
|
||
"global_already_exists": "Глобальные настройки уже настроены.",
|
||
"template_not_found": "Выбранный шаблон не найден.",
|
||
"missing_data": "Необходимые данные не были предоставлены.",
|
||
"reconfigure_successful": "Конфигурация успешно обновлена.",
|
||
"reconfigure_cancelled": "Перенастройка отменена."
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Опции обслуживания",
|
||
"description": "{object_info}",
|
||
"menu_options": {
|
||
"manage_tasks": "Управление задачами",
|
||
"add_task": "Добавить новую задачу",
|
||
"object_settings": "Настройки объекта",
|
||
"done": "Готово"
|
||
}
|
||
},
|
||
"global_init": {
|
||
"title": "Глобальные настройки",
|
||
"description": "Настройте глобальные параметры обслуживания.",
|
||
"menu_options": {
|
||
"general_settings": "Основные настройки",
|
||
"advanced_features": "Расширенные функции",
|
||
"panel_access": "Доступ к панели",
|
||
"budget_settings": "Настройки бюджета",
|
||
"manage_groups": "Управление группами",
|
||
"notification_settings": "Настройки уведомлений",
|
||
"notification_actions": "Интерактивные действия",
|
||
"test_notification": "Отправить тестовое уведомление",
|
||
"done": "Готово"
|
||
}
|
||
},
|
||
"advanced_features": {
|
||
"title": "Расширенные функции",
|
||
"description": "Выберите, какие расширенные функции показывать в интерфейсе. Отключение функции скрывает её из интерфейса, но не удаляет никакие данные.",
|
||
"data": {
|
||
"advanced_adaptive_visible": "Адаптивное планирование",
|
||
"advanced_predictions_visible": "Прогнозы датчиков",
|
||
"advanced_seasonal_visible": "Сезонные корректировки",
|
||
"advanced_environmental_visible": "Экологическая корреляция",
|
||
"advanced_budget_visible": "Отслеживание бюджета",
|
||
"advanced_groups_visible": "Группы",
|
||
"advanced_checklists_visible": "Контрольные списки",
|
||
"advanced_schedule_time_visible": "Планирование по времени"
|
||
},
|
||
"data_description": {
|
||
"advanced_adaptive_visible": "Показывать EWA, анализ Вейбулла и предложения интервалов для задач.",
|
||
"advanced_predictions_visible": "Показывать анализ деградации датчиков и графики прогноза порогов.",
|
||
"advanced_seasonal_visible": "Показывать графики сезонных факторов и месячные корректировки.",
|
||
"advanced_environmental_visible": "Показывать корректировки экологической корреляции (температура, влажность).",
|
||
"advanced_budget_visible": "Показывать ежемесячное/годовое отслеживание бюджета и оповещения.",
|
||
"advanced_groups_visible": "Показывать управление группами обслуживания.",
|
||
"advanced_checklists_visible": "Показывать контрольные списки задач для пошагового выполнения.",
|
||
"advanced_schedule_time_visible": "Позволяет задачам становиться просроченными в определённое время дня, а не в полночь."
|
||
}
|
||
},
|
||
"panel_access": {
|
||
"title": "Доступ к панели",
|
||
"description": "Администраторы всегда имеют полный доступ. Чтобы делегировать создание, редактирование и удаление определённым не-админ пользователям, включите параметр ниже и выберите их — остальные видят только Выполнить и Пропустить. Найдено не-админ пользователей: {user_count}.",
|
||
"data": {
|
||
"operator_write_enabled": "Разрешить выбранным пользователям создавать, редактировать и удалять",
|
||
"admin_panel_user_ids": "Пользователи с полным доступом к панели"
|
||
},
|
||
"data_description": {
|
||
"operator_write_enabled": "Выключено (по умолчанию): только администраторы могут изменять содержимое. Включено: выбранные ниже пользователи также получают полный доступ.",
|
||
"admin_panel_user_ids": "Выбранные пользователи видят полную панель; остальные видят только Выполнить и Пропустить."
|
||
}
|
||
},
|
||
"general_settings": {
|
||
"title": "Основные настройки",
|
||
"description": "Настройте базовые параметры для Ассистента обслуживания.",
|
||
"data": {
|
||
"default_warning_days": "Дней предупреждения до срока по умолчанию",
|
||
"notifications_enabled": "Включить уведомления",
|
||
"notify_service": "Сервис уведомлений",
|
||
"panel_enabled": "Показывать панель в боковой панели",
|
||
"panel_title": "Заголовок панели в боковом меню"
|
||
},
|
||
"data_description": {
|
||
"default_warning_days": "Количество дней до наступления срока выполнения задачи обслуживания, за которое показывать предупреждение.",
|
||
"notifications_enabled": "Отправлять уведомления, когда задачи обслуживания становятся просроченными или требуют внимания.",
|
||
"notify_service": "Сервис уведомлений для использования (например, notify.mobile_app_phone).",
|
||
"panel_enabled": "Показывать панель Ассистента обслуживания в боковой панели.",
|
||
"panel_title": "Собственное имя для пункта боковой панели. Оставьте пустым для значения «Maintenance». Помогает избежать путаницы со встроенной панелью обслуживания Home Assistant."
|
||
}
|
||
},
|
||
"notification_settings": {
|
||
"title": "Настройки уведомлений",
|
||
"description": "Настройте когда и как часто отправляются уведомления для каждого статуса.",
|
||
"data": {
|
||
"notify_due_soon_enabled": "Уведомлять о скором сроке",
|
||
"notify_due_soon_interval_hours": "Интервал напоминания о скором сроке (часы)",
|
||
"notify_overdue_enabled": "Уведомлять о просрочке",
|
||
"notify_overdue_interval_hours": "Интервал напоминания о просрочке (часы)",
|
||
"notify_triggered_enabled": "Уведомлять о срабатывании",
|
||
"notify_triggered_interval_hours": "Интервал напоминания о срабатывании (часы)",
|
||
"quiet_hours_enabled": "Включить тихие часы",
|
||
"quiet_hours_start": "Начало тихих часов",
|
||
"quiet_hours_end": "Конец тихих часов",
|
||
"max_notifications_per_day": "Максимум уведомлений в день",
|
||
"notification_bundling_enabled": "Группировать уведомления",
|
||
"notification_bundle_threshold": "Порог группировки",
|
||
"notification_title_style": "Стиль заголовка уведомления"
|
||
},
|
||
"data_description": {
|
||
"notify_due_soon_interval_hours": "Как часто повторять напоминание о скором сроке. Установите 0 для одиночного уведомления.",
|
||
"notify_overdue_interval_hours": "Как часто повторять напоминание о просрочке. Установите 0 для одиночного уведомления.",
|
||
"notify_triggered_interval_hours": "Как часто повторять уведомление о срабатывании. Установите 0 для одиночного уведомления.",
|
||
"quiet_hours_enabled": "Подавлять уведомления в тихие часы.",
|
||
"max_notifications_per_day": "Максимальное количество уведомлений в день. Установите 0 для неограниченного количества.",
|
||
"notification_bundling_enabled": "Отправлять одно сводное уведомление, когда несколько задач требуют внимания.",
|
||
"notification_bundle_threshold": "Минимальное количество задач для отправки группового уведомления.",
|
||
"notification_title_style": "Что отображается в ЗАГОЛОВКЕ уведомления. По умолчанию — текст по статусу (например, «Обслуживание просрочено!»). Имя объекта / задачи удобно, если телефон складывает уведомления в стопку."
|
||
}
|
||
},
|
||
"notification_actions": {
|
||
"title": "Интерактивные действия",
|
||
"description": "Настройте кнопки действий, показываемые в мобильных уведомлениях (требуется Companion App).",
|
||
"data": {
|
||
"action_complete_enabled": "Показывать кнопку 'Выполнить'",
|
||
"action_skip_enabled": "Показывать кнопку 'Пропустить'",
|
||
"action_snooze_enabled": "Показывать кнопку 'Отложить'",
|
||
"snooze_duration_hours": "Длительность откладывания (часы)"
|
||
},
|
||
"data_description": {
|
||
"action_complete_enabled": "Добавляет кнопку для отметки задачи как выполненной прямо из уведомления.",
|
||
"action_skip_enabled": "Добавляет кнопку для пропуска текущего цикла обслуживания из уведомления.",
|
||
"action_snooze_enabled": "Добавляет кнопку для откладывания напоминания.",
|
||
"snooze_duration_hours": "Как долго откладывать уведомления при нажатии кнопки откладывания."
|
||
}
|
||
},
|
||
"budget_settings": {
|
||
"title": "Настройки бюджета",
|
||
"description": "Установите ежемесячный и годовой бюджеты на обслуживание для отслеживания расходов.",
|
||
"data": {
|
||
"budget_currency": "Валюта",
|
||
"budget_monthly": "Месячный бюджет",
|
||
"budget_yearly": "Годовой бюджет",
|
||
"budget_alerts_enabled": "Включить оповещения о бюджете",
|
||
"budget_alert_threshold": "Порог оповещения (%)"
|
||
},
|
||
"data_description": {
|
||
"budget_currency": "Валюта, используемая для отображения бюджета и уведомлений.",
|
||
"budget_monthly": "Максимальные ежемесячные расходы на обслуживание. Установите 0 для отключения.",
|
||
"budget_yearly": "Максимальные годовые расходы на обслуживание. Установите 0 для отключения.",
|
||
"budget_alerts_enabled": "Отправлять уведомление, когда расходы превышают порог оповещения.",
|
||
"budget_alert_threshold": "Процент бюджета, при достижении которого отправлять оповещение."
|
||
}
|
||
},
|
||
"test_notification": {
|
||
"title": "Тестовое уведомление",
|
||
"description": "{result}"
|
||
},
|
||
"manage_groups": {
|
||
"title": "Управление группами",
|
||
"description": "Выберите группу для управления или создайте новую.",
|
||
"data": {
|
||
"selected_group": "Выберите группу"
|
||
}
|
||
},
|
||
"add_group": {
|
||
"title": "Добавить группу",
|
||
"description": "Создайте новую группу обслуживания для организации связанных задач.",
|
||
"data": {
|
||
"group_name": "Название группы",
|
||
"group_description": "Описание"
|
||
},
|
||
"data_description": {
|
||
"group_name": "Название для этой группы (например, 'Весеннее обслуживание').",
|
||
"group_description": "Необязательное описание для этой группы."
|
||
}
|
||
},
|
||
"manage_tasks": {
|
||
"title": "Управление задачами",
|
||
"description": "Выберите задачу для редактирования или удаления.",
|
||
"data": {
|
||
"selected_task": "Выберите задачу",
|
||
"go_back": "Назад"
|
||
}
|
||
},
|
||
"task_action": {
|
||
"title": "Действия с задачей",
|
||
"description": "Задача: {task_name} — выберите действие.\n\nБлижайшие даты: {next_dates}",
|
||
"menu_options": {
|
||
"edit_task": "Редактировать задачу",
|
||
"edit_trigger": "Редактировать триггер",
|
||
"remove_trigger": "Удалить триггер",
|
||
"edit_checklist": "Редактировать контрольный список",
|
||
"adaptive_scheduling": "Адаптивное планирование",
|
||
"delete_task": "Удалить задачу",
|
||
"manage_tasks": "Назад"
|
||
}
|
||
},
|
||
"edit_task": {
|
||
"title": "Редактировать задачу",
|
||
"description": "Редактировать настройки для **{task_name}**.",
|
||
"data": {
|
||
"name": "Название задачи",
|
||
"type": "Тип обслуживания",
|
||
"interval_days": "Интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"due_date": "Срок",
|
||
"enabled": "Включено",
|
||
"notes": "Примечания",
|
||
"documentation_url": "URL документации",
|
||
"last_performed": "Последнее выполнение",
|
||
"responsible_user_id": "Ответственный пользователь",
|
||
"custom_icon": "Иконка задачи",
|
||
"nfc_tag_id": "ID NFC-метки",
|
||
"go_back": "Назад",
|
||
"interval_anchor": "Якорь интервала",
|
||
"reading_unit": "Единица показания (для задач снятия показаний, напр. кВт·ч)",
|
||
"season_months": "Сезонное окно (месяцы)",
|
||
"ends_count": "Заканчивается после (числа раз)",
|
||
"ends_until": "Заканчивается в дату"
|
||
},
|
||
"data_description": {
|
||
"name": "Описательное название для этой задачи (например, 'Очистка фильтра', 'Замена масла').",
|
||
"type": "Категория работ по обслуживанию.",
|
||
"interval_days": "Как часто повторяется это обслуживание, в сочетании с единицей интервала.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"due_date": "Дата, к которой должна быть выполнена эта разовая задача.",
|
||
"enabled": "Когда отключено, планирование и триггеры приостанавливаются. Задача не удаляется.",
|
||
"notes": "Дополнительные примечания или инструкции для этой задачи.",
|
||
"documentation_url": "Ссылка на внешнюю документацию или руководство для этой задачи.",
|
||
"last_performed": "Когда это обслуживание выполнялось в последний раз. Оставьте пустым, если никогда не выполнялось.",
|
||
"responsible_user_id": "Пользователь Home Assistant, ответственный за эту задачу.",
|
||
"custom_icon": "Необязательная пользовательская иконка для этой задачи (например, mdi:oil, mdi:filter-variant).",
|
||
"nfc_tag_id": "Привяжите NFC-метку к этой задаче. Сканирование метки автоматически отметит задачу как выполненную.",
|
||
"go_back": "Вернуться к действиям с задачей без сохранения.",
|
||
"interval_anchor": "Как рассчитывается следующая дата после завершения. 'Плановый' предотвращает дрейф расписания, привязываясь к исходной плановой дате.",
|
||
"season_months": "Срок только в выбранные месяцы; даты вне сезона переносятся на следующий активный месяц. Пусто = весь год.",
|
||
"ends_count": "Прекратить повтор после такого числа выполнений (конечная серия). Пусто = без ограничения.",
|
||
"ends_until": "Прекратить повтор, когда следующий срок выпал бы после этой даты."
|
||
}
|
||
},
|
||
"edit_checklist": {
|
||
"title": "Редактировать контрольный список",
|
||
"description": "Настройте шаги контрольного списка для {task_name}. Вводите один шаг на строку.",
|
||
"data": {
|
||
"checklist_text": "Шаги контрольного списка",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"checklist_text": "Введите каждый шаг контрольного списка на отдельной строке. Эти шаги будут показываться при выполнении задачи.",
|
||
"go_back": "Вернуться к действиям с задачей без сохранения."
|
||
}
|
||
},
|
||
"compound_logic": {
|
||
"title": "Составной триггер",
|
||
"description": "Выберите, как должны комбинироваться несколько условий.",
|
||
"data": {
|
||
"compound_logic": "Логика",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"compound_logic": "И = все условия должны сработать. ИЛИ = любое условие срабатывает."
|
||
}
|
||
},
|
||
"compound_condition_entity": {
|
||
"title": "Условие #{condition_num} — Сущность",
|
||
"description": "Выберите сущность для этого условия.",
|
||
"data": {
|
||
"trigger_entity": "Сущность",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_entity": "Сущность датчика для отслеживания для этого условия."
|
||
}
|
||
},
|
||
"compound_condition_type": {
|
||
"title": "Условие #{condition_num} — Тип",
|
||
"description": "Как это условие должно оценивать датчик?",
|
||
"data": {
|
||
"trigger_type": "Тип триггера",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_type": "Метод, используемый для определения, когда это условие срабатывает."
|
||
}
|
||
},
|
||
"compound_condition_threshold": {
|
||
"title": "Условие — Порог",
|
||
"data": {
|
||
"trigger_above": "Срабатывать при превышении",
|
||
"trigger_below": "Срабатывать при падении ниже",
|
||
"trigger_for_minutes": "Длительность (минуты)",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_above": "Срабатывать, когда значение превышает этот порог.",
|
||
"trigger_below": "Срабатывать, когда значение падает ниже этого порога.",
|
||
"trigger_for_minutes": "Значение должно оставаться за порогом в течение этой длительности."
|
||
}
|
||
},
|
||
"compound_condition_counter": {
|
||
"title": "Условие — Счетчик",
|
||
"data": {
|
||
"trigger_target_value": "Целевое значение",
|
||
"trigger_delta_mode": "Режим дельты",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_target_value": "Срабатывать, когда накопленное значение достигает этой цели.",
|
||
"trigger_delta_mode": "Считать изменения от базового уровня вместо абсолютного значения."
|
||
}
|
||
},
|
||
"compound_condition_state_change": {
|
||
"title": "Условие — Изменение состояния",
|
||
"data": {
|
||
"trigger_from_state": "Из состояния",
|
||
"trigger_to_state": "В состояние",
|
||
"trigger_target_changes": "Количество изменений",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_from_state": "Учитывать только переходы из этого состояния. Оставьте пустым для любого.",
|
||
"trigger_to_state": "Учитывать только переходы в это состояние. Оставьте пустым для любого.",
|
||
"trigger_target_changes": "Количество соответствующих изменений состояния перед срабатыванием."
|
||
}
|
||
},
|
||
"compound_condition_runtime": {
|
||
"title": "Условие — Время работы",
|
||
"data": {
|
||
"trigger_runtime_hours": "Целевое время работы (часы)",
|
||
"trigger_on_states": "Активные состояния",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_runtime_hours": "Срабатывать после этого количества часов накопленного времени работы.",
|
||
"trigger_on_states": "Состояния датчика, считающиеся 'активными'. Оставьте пустым для значений по умолчанию."
|
||
}
|
||
},
|
||
"compound_review": {
|
||
"title": "Просмотр составного триггера",
|
||
"description": "Настроено {condition_count} условие(й) с логикой {compound_logic}.",
|
||
"data": {
|
||
"compound_action": "Действие",
|
||
"go_back": "Назад"
|
||
}
|
||
},
|
||
"adaptive_scheduling": {
|
||
"title": "Адаптивное планирование",
|
||
"description": "Настройте адаптацию интервала для {task_name}. Система учится на ваших отзывах о выполнении, чтобы предлагать лучшие интервалы.",
|
||
"data": {
|
||
"adaptive_enabled": "Включить адаптивное планирование",
|
||
"ewa_alpha": "Скорость обучения (альфа)",
|
||
"min_interval_days": "Минимальный интервал (дни)",
|
||
"max_interval_days": "Максимальный интервал (дни)",
|
||
"seasonal_enabled": "Учитывать сезонность",
|
||
"sensor_prediction_enabled": "Включить прогнозы на основе датчиков",
|
||
"environmental_entity": "Экологический датчик (опционально)",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"adaptive_enabled": "Когда включено, система будет учиться на ваших отзывах и предлагать оптимальные интервалы обслуживания.",
|
||
"ewa_alpha": "Насколько быстро алгоритм адаптируется к новым данным. Выше = более отзывчивый, ниже = более стабильный.",
|
||
"min_interval_days": "Самый короткий интервал, который система когда-либо порекомендует.",
|
||
"max_interval_days": "Самый длинный интервал, который система когда-либо порекомендует.",
|
||
"seasonal_enabled": "Корректировать рекомендации на основе сезонных паттернов, изученных из вашей истории обслуживания.",
|
||
"sensor_prediction_enabled": "Анализировать тенденции датчиков, чтобы предсказать, когда будут достигнуты пороги, и предлагать более раннее обслуживание при необходимости.",
|
||
"environmental_entity": "Подключите датчик температуры, влажности или давления для корреляции условий окружающей среды с интервалами обслуживания.",
|
||
"go_back": "Вернуться к действиям с задачей без сохранения."
|
||
}
|
||
},
|
||
"delete_task": {
|
||
"title": "Удалить задачу",
|
||
"description": "Вы уверены, что хотите удалить задачу {task_name}? Это действие невозможно отменить.",
|
||
"data": {
|
||
"confirm": "Подтвердить удаление",
|
||
"go_back": "Назад"
|
||
}
|
||
},
|
||
"remove_trigger": {
|
||
"title": "Удалить триггер",
|
||
"description": "Удалить триггер из **{task_name}**?\n\n**Сущность:** {entity_ids}\n**Тип:** {trigger_type}\n**Конфигурация:** {config_details}\n\nЕсли все сущности будут удалены, расписание вернется к временному.",
|
||
"data": {
|
||
"entities_to_remove": "Сущности для удаления",
|
||
"confirm": "Подтвердить удаление",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"entities_to_remove": "Выберите, какие сущности удалить из этого триггера. Если удалены все, весь триггер будет удален.",
|
||
"go_back": "Вернуться к действиям с задачей без сохранения."
|
||
}
|
||
},
|
||
"trigger_summary": {
|
||
"title": "Текущий триггер",
|
||
"description": "Триггер для **{task_name}**:\n\n**Сущность:** {entity_ids}\n**Текущее состояние:** {current_states}\n**Тип:** {trigger_type} (атрибут: {attribute})\n**Конфигурация:** {config_details}",
|
||
"menu_options": {
|
||
"edit_trigger_proceed": "Редактировать триггер",
|
||
"task_action": "Назад"
|
||
}
|
||
},
|
||
"add_task": {
|
||
"title": "Добавить задачу обслуживания",
|
||
"description": "Настройте новую задачу обслуживания для этого объекта.",
|
||
"data": {
|
||
"name": "Название задачи",
|
||
"type": "Тип обслуживания",
|
||
"schedule_type": "Тип расписания",
|
||
"custom_icon": "Иконка задачи",
|
||
"go_back": "Назад",
|
||
"reading_unit": "Единица показания (для задач снятия показаний, напр. кВт·ч)"
|
||
},
|
||
"data_description": {
|
||
"name": "Описательное название для этой задачи (например, 'Очистка фильтра', 'Замена масла').",
|
||
"type": "Категория работ по обслуживанию.",
|
||
"schedule_type": "Как эта задача должна планироваться.",
|
||
"custom_icon": "Необязательная пользовательская иконка для этой задачи (например, mdi:oil, mdi:filter-variant).",
|
||
"go_back": "Вернуться в главное меню без сохранения."
|
||
}
|
||
},
|
||
"opt_time_based": {
|
||
"title": "Расписание на основе времени",
|
||
"description": "Настройте временной интервал для этой задачи.",
|
||
"data": {
|
||
"interval_days": "Интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"last_performed": "Последнее выполнение",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад",
|
||
"interval_anchor": "Якорь интервала"
|
||
},
|
||
"data_description": {
|
||
"interval_days": "Как часто повторяется это обслуживание, в сочетании с единицей интервала.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"last_performed": "Когда это обслуживание выполнялось в последний раз. Оставьте пустым, если никогда не выполнялось.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться в главное меню без сохранения.",
|
||
"interval_anchor": "Как рассчитывается следующая дата после завершения. 'Плановый' предотвращает дрейф расписания, привязываясь к исходной плановой дате."
|
||
}
|
||
},
|
||
"opt_one_time": {
|
||
"title": "Разовая задача",
|
||
"description": "Настройте одну неповторяющуюся задачу обслуживания. После выполнения она архивируется.",
|
||
"data": {
|
||
"due_date": "Срок",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"due_date": "Дата, к которой должна быть выполнена эта разовая задача.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться в главное меню без сохранения."
|
||
}
|
||
},
|
||
"opt_calendar": {
|
||
"title": "Расписание по календарю",
|
||
"description": "Настройте повторение на основе календаря (дни недели, n-й день недели месяца или день месяца).",
|
||
"data": {
|
||
"weekdays": "В эти дни недели",
|
||
"nth": "Какое вхождение",
|
||
"weekday": "День недели",
|
||
"day": "День месяца",
|
||
"last_performed": "Последнее выполнение",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад",
|
||
"last_day": "Последний день месяца",
|
||
"business": "Только рабочие дни",
|
||
"offset": "Сдвиг (дни)"
|
||
},
|
||
"data_description": {
|
||
"weekdays": "Задача повторяется в каждый выбранный день недели.",
|
||
"nth": "Какое вхождение в месяце (например, 1-е или Последнее).",
|
||
"weekday": "День недели для правила n-го дня недели (например, суббота).",
|
||
"day": "День месяца (1-31; ограничивается длиной месяца).",
|
||
"last_performed": "Когда это обслуживание выполнялось в последний раз. Оставьте пустым, если никогда.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"go_back": "Вернуться в главное меню без сохранения.",
|
||
"last_day": "Заменяет номер дня: срок — последний день месяца.",
|
||
"business": "Переносит дату с выходных на предыдущую пятницу (например, последний рабочий день).",
|
||
"offset": "Сдвигает вычисленную дату на ±N дней (например, -2 = за два дня)."
|
||
}
|
||
},
|
||
"opt_manual": {
|
||
"title": "Ручное расписание",
|
||
"description": "У этой задачи нет автоматического расписания. Вы можете отметить ее как просроченную вручную.",
|
||
"data": {
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"notes": "Примечания",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения.",
|
||
"notes": "Дополнительные примечания или инструкции для этой задачи.",
|
||
"go_back": "Вернуться в главное меню без сохранения."
|
||
}
|
||
},
|
||
"opt_sensor_select": {
|
||
"title": "Выберите датчик-триггер",
|
||
"description": "Выберите сущность Home Assistant для отслеживания.",
|
||
"data": {
|
||
"trigger_entity": "Сущность для отслеживания",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_entity": "Выберите сущность датчика, которая должна запускать эту задачу обслуживания."
|
||
}
|
||
},
|
||
"opt_sensor_attribute": {
|
||
"title": "Выберите атрибут",
|
||
"description": "Выберите, какое значение отслеживать от {entity_id}. Текущее состояние: {current_state} {unit}",
|
||
"data": {
|
||
"trigger_attribute": "Значение для отслеживания",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_attribute": "Выберите состояние сущности или конкретный атрибут для отслеживания."
|
||
}
|
||
},
|
||
"opt_trigger_type": {
|
||
"title": "Тип триггера",
|
||
"description": "Как значение датчика должно запускать обслуживание?",
|
||
"data": {
|
||
"trigger_type": "Тип триггера",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_type": "Порог: срабатывает, когда значение превышает лимиты. Счетчик: срабатывает после накопления целевого значения. Изменение состояния: срабатывает после определенного количества переходов состояния."
|
||
}
|
||
},
|
||
"opt_trigger_threshold": {
|
||
"title": "Настройка порога",
|
||
"description": "Установите пороговые значения для **{entity_id}** ({attribute}).\nТекущее: **{current_value} {unit}** | Среднее: {average} | Диапазон: {minimum}–{maximum} ({data_period} дн.)\nРекомендуемое выше: {suggested_above} | Рекомендуемое ниже: {suggested_below}",
|
||
"data": {
|
||
"trigger_above": "Срабатывать при превышении",
|
||
"trigger_below": "Срабатывать при падении ниже",
|
||
"trigger_for_minutes": "В течение (минут)",
|
||
"interval_days": "Защитный интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_above": "Запускать обслуживание, когда значение превышает этот порог.",
|
||
"trigger_below": "Запускать обслуживание, когда значение падает ниже этого порога.",
|
||
"trigger_for_minutes": "Значение должно превышать порог в течение этого количества минут перед запуском.",
|
||
"interval_days": "Дополнительный временной защитный интервал в дополнение к триггеру датчика.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения."
|
||
}
|
||
},
|
||
"opt_trigger_counter": {
|
||
"title": "Настройка счетчика",
|
||
"description": "Установите целевое значение счетчика для {entity_id} ({attribute}). Текущее: {current_value} {unit}.",
|
||
"data": {
|
||
"trigger_target_value": "Целевое значение",
|
||
"trigger_delta_mode": "Режим дельты (учитывать изменения, не абсолютное значение)",
|
||
"interval_days": "Защитный интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_target_value": "Запускать обслуживание при достижении этого накопленного значения.",
|
||
"trigger_delta_mode": "Если включено, считает разницу от базового уровня вместо абсолютного значения.",
|
||
"interval_days": "Дополнительный временной защитный интервал в дополнение к триггеру счетчика.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения."
|
||
}
|
||
},
|
||
"opt_trigger_state_change": {
|
||
"title": "Настройка изменения состояния",
|
||
"description": "Подсчет переходов состояния {entity_id}.",
|
||
"data": {
|
||
"trigger_from_state": "Из состояния (опционально)",
|
||
"trigger_to_state": "В состояние (опционально)",
|
||
"trigger_target_changes": "Количество изменений для срабатывания",
|
||
"interval_days": "Защитный интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_from_state": "Учитывать только переходы из этого состояния. Оставьте пустым для любого.",
|
||
"trigger_to_state": "Учитывать только переходы в это состояние. Оставьте пустым для любого.",
|
||
"trigger_target_changes": "Количество соответствующих изменений состояния перед запуском обслуживания.",
|
||
"interval_days": "Дополнительный временной защитный интервал в дополнение к триггеру изменения состояния.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения."
|
||
}
|
||
},
|
||
"opt_trigger_runtime": {
|
||
"title": "Настройка времени работы",
|
||
"description": "Отслеживайте накопленное время работы {entity_id}.",
|
||
"data": {
|
||
"trigger_runtime_hours": "Целевое время работы (часы)",
|
||
"trigger_on_states": "Активные состояния (через запятую)",
|
||
"interval_days": "Защитный интервал",
|
||
"interval_unit": "Единица интервала",
|
||
"warning_days": "Дней предупреждения до срока",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"trigger_runtime_hours": "Запускать обслуживание после этого количества часов накопленного времени работы.",
|
||
"trigger_on_states": "Какие состояния датчика считать 'активными'. Оставьте пустым для значений по умолчанию: on, 1, true. Пример: in_use, running",
|
||
"interval_days": "Дополнительный временной защитный интервал в дополнение к триггеру времени работы.",
|
||
"interval_unit": "Единица интервала: дни, недели, месяцы или годы. Месяцы и годы следуют календарю.",
|
||
"warning_days": "Количество дней до наступления срока для показа предупреждения."
|
||
}
|
||
},
|
||
"object_settings": {
|
||
"title": "Настройки объекта",
|
||
"description": "Отредактируйте детали объекта.",
|
||
"data": {
|
||
"name": "Название объекта",
|
||
"manufacturer": "Производитель",
|
||
"model": "Модель",
|
||
"serial_number": "Серийный номер",
|
||
"documentation_url": "URL руководства / документации",
|
||
"notes": "Заметки",
|
||
"area_id": "Зона",
|
||
"installation_date": "Дата установки",
|
||
"warranty_expiry": "Окончание гарантии",
|
||
"go_back": "Назад"
|
||
},
|
||
"data_description": {
|
||
"name": "Уникальное имя для этого объекта обслуживания (например, 'Насос бассейна', 'Автомобиль').",
|
||
"manufacturer": "Производитель объекта.",
|
||
"model": "Название или номер модели.",
|
||
"serial_number": "Серийный номер объекта.",
|
||
"documentation_url": "Необязательная ссылка на PDF-руководство, страницу производителя или любой URL со справочной информацией об этом объекте.",
|
||
"notes": "Свободные заметки об объекте — номера деталей, процедуры, напоминания, и т.п.",
|
||
"area_id": "Зона в вашем доме, где находится этот объект.",
|
||
"installation_date": "Когда этот объект был установлен или куплен.",
|
||
"warranty_expiry": "Когда истекает гарантия производителя на этот объект.",
|
||
"go_back": "Вернуться в главное меню без сохранения."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"entity": {
|
||
"button": {
|
||
"button_complete": {
|
||
"name": "{task_name} Выполнить"
|
||
},
|
||
"button_skip": {
|
||
"name": "{task_name} Пропустить"
|
||
},
|
||
"button_reset": {
|
||
"name": "{task_name} Сбросить"
|
||
}
|
||
},
|
||
"sensor": {
|
||
"maintenance_task": {
|
||
"name": "{task_name}",
|
||
"state": {
|
||
"ok": "ОК",
|
||
"due_soon": "Скоро наступит",
|
||
"overdue": "Просрочено",
|
||
"triggered": "Сработал",
|
||
"archived": "В архиве",
|
||
"paused": "Приостановлено"
|
||
},
|
||
"state_attributes": {
|
||
"maintenance_type": {
|
||
"name": "Тип обслуживания",
|
||
"state": {
|
||
"cleaning": "Очистка",
|
||
"inspection": "Осмотр",
|
||
"replacement": "Замена",
|
||
"calibration": "Калибровка",
|
||
"service": "Обслуживание",
|
||
"reading": "Показания",
|
||
"custom": "Пользовательский"
|
||
}
|
||
},
|
||
"schedule_type": {
|
||
"name": "Тип расписания",
|
||
"state": {
|
||
"time_based": "На основе времени",
|
||
"sensor_based": "На основе датчика",
|
||
"one_time": "Разовая",
|
||
"manual": "Ручной"
|
||
}
|
||
},
|
||
"interval_days": {
|
||
"name": "Интервал"
|
||
},
|
||
"interval_unit": {
|
||
"name": "Единица интервала"
|
||
},
|
||
"warning_days": {
|
||
"name": "Дней предупреждения"
|
||
},
|
||
"last_performed": {
|
||
"name": "Последнее выполнение"
|
||
},
|
||
"next_due": {
|
||
"name": "Следующий срок"
|
||
},
|
||
"days_until_due": {
|
||
"name": "Дней до срока"
|
||
},
|
||
"parent_object": {
|
||
"name": "Родительский объект"
|
||
},
|
||
"times_performed": {
|
||
"name": "Количество выполнений"
|
||
},
|
||
"total_cost": {
|
||
"name": "Общая стоимость"
|
||
},
|
||
"average_duration": {
|
||
"name": "Средняя длительность (мин)"
|
||
},
|
||
"notes": {
|
||
"name": "Примечания"
|
||
},
|
||
"documentation_url": {
|
||
"name": "URL документации"
|
||
},
|
||
"trigger_entity": {
|
||
"name": "Сущность-триггер"
|
||
},
|
||
"trigger_attribute": {
|
||
"name": "Атрибут триггера"
|
||
},
|
||
"trigger_type": {
|
||
"name": "Тип триггера",
|
||
"state": {
|
||
"threshold": "Порог",
|
||
"counter": "Счетчик",
|
||
"state_change": "Изменение состояния",
|
||
"runtime": "Время работы",
|
||
"compound": "Составной"
|
||
}
|
||
},
|
||
"trigger_active": {
|
||
"name": "Триггер активен"
|
||
},
|
||
"trigger_current_value": {
|
||
"name": "Текущее значение триггера"
|
||
},
|
||
"trigger_entity_state": {
|
||
"name": "Состояние сущности-триггера",
|
||
"state": {
|
||
"available": "Доступно",
|
||
"unavailable": "Недоступно",
|
||
"missing": "Отсутствует",
|
||
"startup": "Запуск"
|
||
}
|
||
},
|
||
"trigger_above": {
|
||
"name": "Срабатывать выше"
|
||
},
|
||
"trigger_below": {
|
||
"name": "Срабатывать ниже"
|
||
},
|
||
"trigger_for_minutes": {
|
||
"name": "Срабатывать в течение (минут)"
|
||
},
|
||
"trigger_target_value": {
|
||
"name": "Целевое значение триггера"
|
||
},
|
||
"trigger_delta_mode": {
|
||
"name": "Режим дельты триггера"
|
||
},
|
||
"trigger_baseline_value": {
|
||
"name": "Базовое значение триггера"
|
||
},
|
||
"trigger_current_delta": {
|
||
"name": "Текущая дельта триггера"
|
||
},
|
||
"trigger_from_state": {
|
||
"name": "Триггер из состояния"
|
||
},
|
||
"trigger_to_state": {
|
||
"name": "Триггер в состояние"
|
||
},
|
||
"trigger_target_changes": {
|
||
"name": "Целевое количество изменений триггера"
|
||
},
|
||
"trigger_change_count": {
|
||
"name": "Количество изменений триггера"
|
||
},
|
||
"trigger_runtime_hours": {
|
||
"name": "Целевое время работы (часы)"
|
||
},
|
||
"trigger_accumulated_hours": {
|
||
"name": "Накопленное время работы (часы)"
|
||
},
|
||
"trigger_remaining_hours": {
|
||
"name": "Оставшееся время работы (часы)"
|
||
},
|
||
"last_entry": {
|
||
"name": "Последняя запись"
|
||
},
|
||
"suggested_interval": {
|
||
"name": "Рекомендуемый интервал"
|
||
},
|
||
"interval_confidence": {
|
||
"name": "Уверенность в интервале",
|
||
"state": {
|
||
"low": "Низкая",
|
||
"medium": "Средняя",
|
||
"high": "Высокая"
|
||
}
|
||
},
|
||
"adaptive_scheduling_enabled": {
|
||
"name": "Адаптивное планирование включено"
|
||
},
|
||
"seasonal_factor": {
|
||
"name": "Сезонный фактор"
|
||
},
|
||
"seasonal_reason": {
|
||
"name": "Причина сезонности",
|
||
"state": {
|
||
"learned": "Выучено",
|
||
"manual": "Ручной"
|
||
}
|
||
},
|
||
"degradation_rate": {
|
||
"name": "Скорость деградации"
|
||
},
|
||
"degradation_trend": {
|
||
"name": "Тренд деградации",
|
||
"state": {
|
||
"rising": "Растущий",
|
||
"falling": "Падающий",
|
||
"stable": "Стабильный",
|
||
"insufficient_data": "Недостаточно данных"
|
||
}
|
||
},
|
||
"days_until_threshold": {
|
||
"name": "Дней до порога"
|
||
},
|
||
"threshold_prediction_confidence": {
|
||
"name": "Уверенность прогноза",
|
||
"state": {
|
||
"low": "Низкая",
|
||
"medium": "Средняя",
|
||
"high": "Высокая"
|
||
}
|
||
},
|
||
"environmental_factor": {
|
||
"name": "Экологический фактор"
|
||
},
|
||
"environmental_entity": {
|
||
"name": "Экологическая сущность"
|
||
},
|
||
"weibull_beta": {
|
||
"name": "Форма Вейбулла (β)"
|
||
},
|
||
"weibull_eta": {
|
||
"name": "Масштаб Вейбулла (η)"
|
||
},
|
||
"weibull_r_squared": {
|
||
"name": "Вейбулл R²"
|
||
},
|
||
"weibull_beta_interpretation": {
|
||
"name": "Шаблон отказов",
|
||
"state": {
|
||
"early_failures": "Ранние отказы",
|
||
"random_failures": "Случайные отказы",
|
||
"wear_out": "Износ",
|
||
"highly_predictable": "Высокопредсказуемый"
|
||
}
|
||
},
|
||
"confidence_interval_low": {
|
||
"name": "Доверительный интервал (нижний)"
|
||
},
|
||
"confidence_interval_high": {
|
||
"name": "Доверительный интервал (верхний)"
|
||
},
|
||
"interval_anchor": {
|
||
"name": "Якорь интервала",
|
||
"state": {
|
||
"completion": "От завершения",
|
||
"planned": "От плановой даты"
|
||
}
|
||
},
|
||
"due_date": {
|
||
"name": "Срок"
|
||
}
|
||
}
|
||
},
|
||
"summary_overdue": {
|
||
"name": "Просрочено"
|
||
},
|
||
"summary_due_soon": {
|
||
"name": "Скоро наступит"
|
||
},
|
||
"summary_triggered": {
|
||
"name": "Сработал"
|
||
},
|
||
"summary_needs_attention": {
|
||
"name": "Требует внимания"
|
||
},
|
||
"summary_ok": {
|
||
"name": "ОК"
|
||
},
|
||
"document_storage": {
|
||
"name": "Хранилище документов"
|
||
},
|
||
"summary_total_tasks": {
|
||
"name": "Всего задач"
|
||
},
|
||
"next_due": {
|
||
"name": "{task_name} Следующий срок"
|
||
},
|
||
"parts_to_reorder": {
|
||
"name": "Детали к дозаказу"
|
||
},
|
||
"batteries_to_replace": {
|
||
"name": "Батареи к замене"
|
||
}
|
||
},
|
||
"calendar": {
|
||
"maintenance_schedule": {
|
||
"name": "График обслуживания"
|
||
}
|
||
},
|
||
"binary_sensor": {
|
||
"maintenance_task_due": {
|
||
"name": "{task_name} просрочено",
|
||
"state_attributes": {
|
||
"maintenance_status": {
|
||
"name": "Статус обслуживания",
|
||
"state": {
|
||
"ok": "ОК",
|
||
"due_soon": "Скоро наступит",
|
||
"overdue": "Просрочено",
|
||
"triggered": "Сработал",
|
||
"archived": "В архиве"
|
||
}
|
||
},
|
||
"days_until_due": {
|
||
"name": "Дней до срока"
|
||
},
|
||
"next_due": {
|
||
"name": "Следующий срок"
|
||
},
|
||
"parent_object": {
|
||
"name": "Родительский объект"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"todo": {
|
||
"maintenance_todo": {
|
||
"name": "Обслуживание"
|
||
}
|
||
}
|
||
},
|
||
"selector": {
|
||
"maintenance_type": {
|
||
"options": {
|
||
"cleaning": "Очистка",
|
||
"inspection": "Осмотр",
|
||
"replacement": "Замена",
|
||
"calibration": "Калибровка",
|
||
"service": "Обслуживание",
|
||
"reading": "Показания",
|
||
"custom": "Пользовательский"
|
||
}
|
||
},
|
||
"schedule_type": {
|
||
"options": {
|
||
"time_based": "На основе времени",
|
||
"weekdays": "Дни недели",
|
||
"nth_weekday": "N-й день недели месяца",
|
||
"day_of_month": "День месяца",
|
||
"sensor_based": "На основе датчика",
|
||
"one_time": "Разовая",
|
||
"manual": "Ручной"
|
||
}
|
||
},
|
||
"interval_unit": {
|
||
"options": {
|
||
"days": "Дни",
|
||
"weeks": "Недели",
|
||
"months": "Месяцы",
|
||
"years": "Годы"
|
||
}
|
||
},
|
||
"trigger_type": {
|
||
"options": {
|
||
"threshold": "Порог",
|
||
"counter": "Счетчик",
|
||
"state_change": "Изменение состояния",
|
||
"runtime": "Время работы",
|
||
"compound": "Составной (Несколько условий)"
|
||
}
|
||
},
|
||
"compound_logic": {
|
||
"options": {
|
||
"and": "И (все условия должны сработать)",
|
||
"or": "ИЛИ (любое условие срабатывает)"
|
||
}
|
||
},
|
||
"entity_logic": {
|
||
"options": {
|
||
"any": "Любая сущность срабатывает",
|
||
"all": "Все сущности должны сработать"
|
||
}
|
||
},
|
||
"notification_title_style": {
|
||
"options": {
|
||
"default": "По умолчанию (заголовок по статусу)",
|
||
"object_name": "Имя объекта как заголовок",
|
||
"task_name": "Имя задачи как заголовок"
|
||
}
|
||
}
|
||
},
|
||
"services": {
|
||
"complete": {
|
||
"name": "Завершить обслуживание",
|
||
"description": "Отметить задачу обслуживания как выполненную.",
|
||
"fields": {
|
||
"entity_id": {
|
||
"name": "Сущность",
|
||
"description": "Сущность датчика обслуживания для завершения."
|
||
},
|
||
"notes": {
|
||
"name": "Примечания",
|
||
"description": "Необязательные примечания о выполненном обслуживании."
|
||
},
|
||
"cost": {
|
||
"name": "Стоимость",
|
||
"description": "Стоимость выполненного обслуживания."
|
||
},
|
||
"duration": {
|
||
"name": "Длительность",
|
||
"description": "Длительность обслуживания в минутах."
|
||
},
|
||
"reading_value": {
|
||
"name": "Показание",
|
||
"description": "Записанное значение для задач снятия показаний (показание счётчика, проверка уровня)."
|
||
}
|
||
}
|
||
},
|
||
"reset": {
|
||
"name": "Сбросить обслуживание",
|
||
"description": "Сбросить дату последнего выполнения задачи обслуживания.",
|
||
"fields": {
|
||
"entity_id": {
|
||
"name": "Сущность",
|
||
"description": "Сущность датчика обслуживания для сброса."
|
||
},
|
||
"date": {
|
||
"name": "Дата",
|
||
"description": "Дата, которую установить как последнее выполнение. По умолчанию сегодня."
|
||
}
|
||
}
|
||
},
|
||
"skip": {
|
||
"name": "Пропустить обслуживание",
|
||
"description": "Пропустить текущий цикл обслуживания.",
|
||
"fields": {
|
||
"entity_id": {
|
||
"name": "Сущность",
|
||
"description": "Сущность датчика обслуживания для пропуска."
|
||
},
|
||
"reason": {
|
||
"name": "Причина",
|
||
"description": "Необязательная причина пропуска обслуживания."
|
||
}
|
||
}
|
||
},
|
||
"export_data": {
|
||
"name": "Экспорт данных",
|
||
"description": "Экспортировать все данные обслуживания в формате JSON или YAML.",
|
||
"fields": {
|
||
"format": {
|
||
"name": "Формат",
|
||
"description": "Выходной формат для экспортируемых данных (json или yaml)."
|
||
},
|
||
"include_history": {
|
||
"name": "Включить историю",
|
||
"description": "Включать ли записи истории задач в экспорт."
|
||
}
|
||
}
|
||
},
|
||
"add_object": {
|
||
"name": "Добавить объект",
|
||
"description": "Создать новый объект обслуживания (устройство). Возвращает новый entry_id.",
|
||
"fields": {
|
||
"name": {
|
||
"name": "Название",
|
||
"description": "Название объекта/устройства."
|
||
},
|
||
"area_id": {
|
||
"name": "Зона",
|
||
"description": "Зона, к которой привязать устройство."
|
||
},
|
||
"manufacturer": {
|
||
"name": "Производитель"
|
||
},
|
||
"model": {
|
||
"name": "Модель"
|
||
},
|
||
"serial_number": {
|
||
"name": "Серийный номер"
|
||
},
|
||
"installation_date": {
|
||
"name": "Дата установки"
|
||
},
|
||
"warranty_expiry": {
|
||
"name": "Окончание гарантии",
|
||
"description": "Дата окончания гарантии (для учёта активов и напоминаний)."
|
||
},
|
||
"documentation_url": {
|
||
"name": "URL документации",
|
||
"description": "Ссылка на инструкцию или страницу производителя (только http/https)."
|
||
},
|
||
"notes": {
|
||
"name": "Заметки"
|
||
}
|
||
}
|
||
},
|
||
"add_task": {
|
||
"name": "Добавить задачу",
|
||
"description": "Добавить задачу обслуживания к существующему объекту. Возвращает новый task_id.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Объект",
|
||
"description": "Объект обслуживания, к которому добавить задачу."
|
||
},
|
||
"name": {
|
||
"name": "Название",
|
||
"description": "Название задачи."
|
||
},
|
||
"task_type": {
|
||
"name": "Тип задачи",
|
||
"description": "Свободная категория (например, inspection, service, custom)."
|
||
},
|
||
"schedule_type": {
|
||
"name": "Тип расписания",
|
||
"description": "time_based (интервал) или sensor_based. По умолчанию: time_based."
|
||
},
|
||
"interval_days": {
|
||
"name": "Интервал",
|
||
"description": "Длина интервала между выполнениями (для задач по времени), в сочетании с interval_unit."
|
||
},
|
||
"interval_unit": {
|
||
"name": "Единица интервала",
|
||
"description": "Единица интервала: days, weeks, months или years. По умолчанию: days."
|
||
},
|
||
"due_date": {
|
||
"name": "Срок",
|
||
"description": "Срок (YYYY-MM-DD) для одноразовой задачи (schedule_type one_time)."
|
||
},
|
||
"schedule": {
|
||
"name": "Календарное расписание",
|
||
"description": "Вложенное повторение для календарных типов, напр. kind=nth_weekday, nth=1, weekday=5 для 1-й субботы (weekday 0=Пн ... 6=Вс), kind=weekdays, weekdays=[0, 3] для Пн и Чт, или kind=day_of_month, day=15. Имеет приоритет над interval_days / schedule_type."
|
||
},
|
||
"warning_days": {
|
||
"name": "Предупреждение (дни)",
|
||
"description": "За сколько дней до срока задача попадает в окно «скоро срок»."
|
||
},
|
||
"enabled": {
|
||
"name": "Включено"
|
||
},
|
||
"notes": {
|
||
"name": "Заметки"
|
||
}
|
||
}
|
||
},
|
||
"update_task": {
|
||
"name": "Обновить задачу",
|
||
"description": "Обновить основные поля существующей задачи обслуживания. Изменяются только переданные поля.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Объект",
|
||
"description": "Объект обслуживания, к которому относится задача."
|
||
},
|
||
"task_id": {
|
||
"name": "ID задачи",
|
||
"description": "Идентификатор задачи для обновления (см. list_tasks)."
|
||
},
|
||
"name": {
|
||
"name": "Название",
|
||
"description": "Новое название задачи."
|
||
},
|
||
"task_type": {
|
||
"name": "Тип задачи",
|
||
"description": "Категория (cleaning, inspection, replacement, calibration, service, reading, custom)."
|
||
},
|
||
"schedule_type": {
|
||
"name": "Тип расписания",
|
||
"description": "time_based (интервал), sensor_based, one_time или manual."
|
||
},
|
||
"interval_days": {
|
||
"name": "Интервал",
|
||
"description": "Длина интервала между выполнениями, в сочетании с interval_unit."
|
||
},
|
||
"interval_unit": {
|
||
"name": "Единица интервала",
|
||
"description": "days, weeks, months или years."
|
||
},
|
||
"due_date": {
|
||
"name": "Срок",
|
||
"description": "Срок для одноразовых задач (YYYY-MM-DD)."
|
||
},
|
||
"schedule": {
|
||
"name": "Расписание (календарное повторение)",
|
||
"description": "Вложенный объект повторения для календарных типов, напр. kind=day_of_month, day=-1, business=true. Имеет приоритет над плоскими полями."
|
||
},
|
||
"warning_days": {
|
||
"name": "Дней предупреждения",
|
||
"description": "За сколько дней до срока задача переходит в состояние «скоро срок»."
|
||
},
|
||
"enabled": {
|
||
"name": "Включено",
|
||
"description": "Активна ли задача."
|
||
},
|
||
"notes": {
|
||
"name": "Заметки",
|
||
"description": "Произвольные заметки к задаче."
|
||
},
|
||
"priority": {
|
||
"name": "Приоритет",
|
||
"description": "low, normal или high."
|
||
},
|
||
"labels": {
|
||
"name": "Метки",
|
||
"description": "Список меток для фильтрации и отчётов."
|
||
}
|
||
}
|
||
},
|
||
"delete_task": {
|
||
"name": "Удалить задачу",
|
||
"description": "Удалить задачу обслуживания вместе с её историей. Действие необратимо - вместо этого рассмотрите архивирование через панель.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Объект",
|
||
"description": "Объект обслуживания, к которому относится задача."
|
||
},
|
||
"task_id": {
|
||
"name": "ID задачи",
|
||
"description": "Идентификатор задачи для удаления (см. list_tasks)."
|
||
}
|
||
}
|
||
},
|
||
"list_tasks": {
|
||
"name": "Список задач",
|
||
"description": "Возвращает снимок активных задач обслуживания (id, название, статус, следующий срок) для автоматизаций, скриптов и голоса. Поддерживает фильтрацию по объекту и статусу.",
|
||
"fields": {
|
||
"entry_id": {
|
||
"name": "Объект",
|
||
"description": "Возвращать только задачи этого объекта обслуживания."
|
||
},
|
||
"status": {
|
||
"name": "Статус",
|
||
"description": "Возвращать только задачи с этим статусом."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"issues": {
|
||
"document_storage_issues": {
|
||
"title": "Хранилище документов требует очистки",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Освободить хранилище документов",
|
||
"description": "Maintenance Supporter обнаружил файлы без ссылок и/или мёртвые записи в хранилище документов — обычно это последствие сбоя, внешнего удаления файла или частичного восстановления.\n\nНажмите **Отправить**, чтобы освободить место: файлы без ссылок и устаревшие файлы удаляются, а мёртвые записи документов убираются. Файлы, на которые всё ещё ссылается документ, никогда не затрагиваются.\n\n(Чтобы закрыть без очистки, используйте кнопку **Игнорировать** в Home Assistant на странице «Устранение неполадок».)"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"missing_trigger_entity": {
|
||
"title": "Датчик-триггер не найден: {task_name}",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Отсутствует сущность-триггер",
|
||
"description": "Сущность датчика `{entity_id}`, настроенная как триггер для задачи \"{task_name}\" объекта \"{object_name}\", больше недоступна.\n\nВыберите, как решить эту проблему:",
|
||
"menu_options": {
|
||
"replace_entity": "Заменить на другую сущность",
|
||
"remove_trigger": "Удалить триггер датчика",
|
||
"dismiss": "Отклонить (появится снова)"
|
||
}
|
||
},
|
||
"replace_entity": {
|
||
"title": "Заменить сущность-триггер",
|
||
"description": "Выберите новую сущность для замены `{entity_id}` в качестве триггера для задачи \"{task_name}\" объекта \"{object_name}\".",
|
||
"data": {
|
||
"new_entity_id": "Новая сущность-триггер"
|
||
},
|
||
"data_description": {
|
||
"new_entity_id": "Выберите новую сущность датчика для использования в качестве триггера."
|
||
}
|
||
},
|
||
"remove_trigger": {
|
||
"title": "Удалить триггер датчика",
|
||
"description": "Это удалит триггер датчика из задачи \"{task_name}\" объекта \"{object_name}\" и преобразует расписание в основанное на времени или ручное. История обслуживания будет сохранена.\n\nПредыдущая сущность-триггер: `{entity_id}`"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"orphan_admin_panel_user": {
|
||
"title": "Пользователь из списка доступа к панели больше не существует",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Беспризорный пользователь в списке доступа к панели",
|
||
"description": "Пользователь `{user_id}…` находится в списке доступа к панели Maintenance Supporter, но больше не существует в Home Assistant. Вероятно, пользователь был удалён.\n\nНажмите **Отправить**, чтобы удалить пользователя из списка. (Чтобы оставить проблему без решения, используйте кнопку **Игнорировать** на странице «Ремонт» Home Assistant.)"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"stale_action_entity": {
|
||
"title": "Действие завершения ссылается на удалённую сущность",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Действие завершения: {stale_entity} больше не существует",
|
||
"description": "Задача **{task_name}** имеет настроенное `on_complete_action` для вызова сервиса на `{stale_entity}`, но эта сущность больше не зарегистрирована в Home Assistant.\n\nВыбери как починить:",
|
||
"menu_options": {
|
||
"replace_entity": "Заменить другой сущностью",
|
||
"remove_action": "Удалить действие завершения"
|
||
}
|
||
},
|
||
"replace_entity": {
|
||
"title": "Заменить целевую сущность",
|
||
"description": "Выбери сущность для использования вместо `{stale_entity}` для задачи **{task_name}**.",
|
||
"data": {
|
||
"new_entity": "Новая целевая сущность"
|
||
}
|
||
},
|
||
"remove_action": {
|
||
"title": "Удалить действие завершения",
|
||
"description": "Полностью удаляет `on_complete_action` из задачи **{task_name}**. Сама задача не затрагивается — удаляется только вызов сервиса при завершении."
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"notify_service_missing": {
|
||
"title": "Служба уведомлений `{service}` не найдена",
|
||
"description": "Maintenance Supporter настроен отправлять уведомления через `{service}`, но эта служба сейчас не существует в Home Assistant, поэтому напоминания молча не отправляются.\n\nОбычно это значит, что служба была переименована или интеграция, предоставляющая её (мобильное приложение, группа уведомлений, …), была удалена. Чтобы исправить: восстановите эту службу или откройте **Настройки → Устройства и службы → Maintenance Supporter → Настроить → Общие настройки** и выберите корректную службу `notify.*`.\n\nПримечание: проверяется только сама настроенная служба. Если уведомления приходят на одни устройства, но не на другие, вероятно, неправильно настроен участник *внутри* вашей группы уведомлений — здесь это не видно; проверьте **системный журнал** Home Assistant (Настройки → Система → Журналы)."
|
||
},
|
||
"missing_global_entry": {
|
||
"title": "Отсутствует глобальная конфигурация Maintenance Supporter",
|
||
"fix_flow": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Восстановить глобальную конфигурацию",
|
||
"description": "Ваши объекты обслуживания всё ещё существуют, но глобальная запись \"Maintenance Supporter\" была удалена — поэтому сводные датчики, боковая панель и счётчики панели отсутствуют, а показатели KPI показывают \"unknown\".\n\nНажмите **Отправить**, чтобы заново создать глобальную конфигурацию с настройками по умолчанию. Ваши объекты и задачи останутся нетронутыми."
|
||
}
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"exceptions": {
|
||
"no_coordinator_for_entity": {
|
||
"message": "Не найден координатор обслуживания для сущности {entity_id}."
|
||
},
|
||
"no_task_for_entity": {
|
||
"message": "Не найдена задача обслуживания для сущности {entity_id}."
|
||
}
|
||
},
|
||
"triggers": {
|
||
"task_became_overdue": {
|
||
"name": "Задача обслуживания просрочена",
|
||
"description": "Срабатывает, когда статус задачи обслуживания меняется на просроченную.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Поведение"
|
||
},
|
||
"for": {
|
||
"name": "В течение"
|
||
}
|
||
}
|
||
},
|
||
"task_became_due_soon": {
|
||
"name": "Задача обслуживания скоро наступит",
|
||
"description": "Срабатывает, когда задача обслуживания входит в окно предупреждения.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Поведение"
|
||
},
|
||
"for": {
|
||
"name": "В течение"
|
||
}
|
||
}
|
||
},
|
||
"sensor_trigger_activated": {
|
||
"name": "Сработал сенсорный триггер",
|
||
"description": "Срабатывает, когда активируется задача обслуживания на основе датчиков.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Поведение"
|
||
},
|
||
"for": {
|
||
"name": "В течение"
|
||
}
|
||
}
|
||
},
|
||
"task_became_ok": {
|
||
"name": "Задача обслуживания снова в порядке",
|
||
"description": "Срабатывает, когда задача обслуживания больше не требует внимания.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Поведение"
|
||
},
|
||
"for": {
|
||
"name": "В течение"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"conditions": {
|
||
"task_is_overdue": {
|
||
"name": "Задача обслуживания просрочена",
|
||
"description": "Проверяет, просрочена ли задача обслуживания.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Поведение"
|
||
},
|
||
"for": {
|
||
"name": "В течение"
|
||
}
|
||
}
|
||
},
|
||
"task_is_due_soon": {
|
||
"name": "Задача обслуживания скоро наступит",
|
||
"description": "Проверяет, находится ли задача обслуживания в окне предупреждения.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Поведение"
|
||
},
|
||
"for": {
|
||
"name": "В течение"
|
||
}
|
||
}
|
||
},
|
||
"task_is_triggered": {
|
||
"name": "Сенсорный триггер активен",
|
||
"description": "Проверяет, активирована ли задача обслуживания на основе датчиков.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Поведение"
|
||
},
|
||
"for": {
|
||
"name": "В течение"
|
||
}
|
||
}
|
||
},
|
||
"task_needs_attention": {
|
||
"name": "Задача обслуживания требует внимания",
|
||
"description": "Проверяет, просрочена или активирована задача обслуживания.",
|
||
"fields": {
|
||
"behavior": {
|
||
"name": "Поведение"
|
||
},
|
||
"for": {
|
||
"name": "В течение"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|