From dbce2d5a43f345997fcf1c0d8d8a299e7b50df4d Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 8 Aug 2026 12:58:06 +0200 Subject: [PATCH] Translated using Weblate (Russian) Currently translated at 85.1% (1103 of 1295 strings) Translated using Weblate (Russian) Currently translated at 76.1% (83 of 109 strings) Translated using Weblate (Russian) Currently translated at 71.7% (929 of 1295 strings) Translated using Weblate (Russian) Currently translated at 100.0% (808 of 808 strings) Translated using Weblate (Russian) Currently translated at 81.4% (386 of 474 strings) Translated using Weblate (Russian) Currently translated at 56.2% (728 of 1295 strings) Translated using Weblate (Russian) Currently translated at 65.3% (528 of 808 strings) Translated using Weblate (Russian) Currently translated at 50.4% (239 of 474 strings) Co-authored-by: Artem Vladimirov Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ru/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-settings --- web/public/locales/ru/components/dialog.json | 2 +- web/public/locales/ru/config/cameras.json | 698 +++++++- web/public/locales/ru/config/global.json | 1507 +++++++++++++++++- web/public/locales/ru/views/settings.json | 595 ++++++- 4 files changed, 2770 insertions(+), 32 deletions(-) diff --git a/web/public/locales/ru/components/dialog.json b/web/public/locales/ru/components/dialog.json index 787fa1b3f1..ab02acd280 100644 --- a/web/public/locales/ru/components/dialog.json +++ b/web/public/locales/ru/components/dialog.json @@ -95,7 +95,7 @@ "placeholder": "Выберите случай", "newCaseOption": "Создайте новый случай", "newCaseNamePlaceholder": "Имя нового случая", - "newCaseDescriptionPlaceholder": "Описание Случая", + "newCaseDescriptionPlaceholder": "Описание случая", "nonAdminHelp": "Для этих экспортов будет создан новый случай." }, "queueing": "Помещаем Экспорт в очередь...", diff --git a/web/public/locales/ru/config/cameras.json b/web/public/locales/ru/config/cameras.json index d50ac03165..80cc6b63a9 100644 --- a/web/public/locales/ru/config/cameras.json +++ b/web/public/locales/ru/config/cameras.json @@ -13,7 +13,7 @@ }, "label": "Конфигурация", "audio": { - "label": "Аудиособытия", + "label": "Обнаружение звука", "description": "Настройки обнаружения аудиособытий для этой камеры.", "enabled": { "label": "Включить обнаружение звука", @@ -28,12 +28,16 @@ "description": "Для запуска функции обнаружения звука требуется минимальный пороговый уровень громкости RMS; более низкие значения повышают чувствительность (например, 200 — высокий, 500 — средний, 1000 — низкий)." }, "listen": { - "description": "Список типов аудиособытий для обнаружения (например: лай, пожарная тревога, крик, речь, вопль).", + "description": "Список типов аудиособытий для обнаружения (например: лай, пожарная тревога, речь, вопль).", "label": "Типы аудиособытий" }, "filters": { "label": "Аудиофильтры", - "description": "Настройки фильтров для каждого типа аудиофайлов, такие как пороговые значения, используются для уменьшения количества ложных срабатываний." + "description": "Настройки фильтров для каждого типа аудиофайлов, такие как пороговые значения, используются для уменьшения количества ложных срабатываний.", + "threshold": { + "label": "Минимальная уверенность в звуке", + "description": "Минимальный порог достоверности для подсчета аудиособытия." + } }, "enabled_in_config": { "label": "Исходное состояние звука", @@ -104,7 +108,693 @@ }, "stationary": { "label": "Конфигурация стационарных объектов", - "description": "Настройки для обнаружения и управления объектами, которые остаются неподвижными в течение определенного периода времени." + "description": "Настройки для обнаружения и управления объектами, которые остаются неподвижными в течение определенного периода времени.", + "interval": { + "label": "Стационарный интервал", + "description": "Как часто (в кадрах) запускать проверку обнаружения для подтверждения неподвижного объекта." + }, + "threshold": { + "label": "Стационарный порог", + "description": "Количество кадров без изменения положения, необходимое для того, чтобы пометить объект как неподвижный." + }, + "max_frames": { + "label": "Максимальное количество кадров", + "description": "Ограничивает продолжительность отслеживания стационарных объектов, прежде чем они будут отброшены.", + "default": { + "label": "Максимальное количество кадров по умолчанию", + "description": "Максимальное количество кадров по умолчанию для отслеживания неподвижного объекта перед остановкой." + }, + "objects": { + "label": "Максимальное количество кадров объекта", + "description": "Переопределения для каждого объекта для максимального количества кадров для отслеживания неподвижных объектов." + } + }, + "classifier": { + "label": "Включить визуальный классификатор", + "description": "Используйте визуальный классификатор для обнаружения действительно неподвижных объектов даже при дрожании ограничивающих рамок." + } + }, + "annotation_offset": { + "label": "Смещение аннотации", + "description": "Миллисекунды для обнаружения смещения аннотаций, чтобы лучше совместить ограничивающие рамки временной шкалы с записями; может быть положительным или отрицательным." + } + }, + "mqtt": { + "label": "MQTT" + }, + "notifications": { + "label": "Уведомления", + "enabled": { + "label": "Включить уведомления" + }, + "email": { + "label": "Уведомление по электронной почте", + "description": "Адрес электронной почты, используемый для push-уведомлений или требуемый некоторыми поставщиками уведомлений." + }, + "cooldown": { + "label": "Период охлаждения", + "description": "Пауза (в секундах) между уведомлениями, чтобы не спамить получателей." + }, + "enabled_in_config": { + "label": "Исходное состояние уведомлений", + "description": "Указывает, были ли уведомления включены в исходной статической конфигурации." + } + }, + "ffmpeg": { + "path": { + "label": "Путь FFmpeg", + "description": "Путь к используемому двоичному файлу FFmpeg или псевдоним версии («7.0» или «8.0»)." + }, + "global_args": { + "label": "Глобальные аргументы FFmpeg", + "description": "Глобальные аргументы, передаваемые процессам FFmpeg." + }, + "hwaccel_args": { + "label": "Аргументы аппаратного ускорения", + "description": "Аргументы аппаратного ускорения для FFmpeg. Рекомендуется использовать предустановки, зависящие от поставщика." + }, + "input_args": { + "label": "Входные аргументы", + "description": "Входные аргументы, применяемые к входным потокам FFmpeg." + }, + "output_args": { + "label": "Выходные аргументы", + "description": "Выходные аргументы по умолчанию, используемые для различных ролей FFmpeg, таких как обнаружение и запись.", + "detect": { + "label": "Выходные аргументы обнаружения", + "description": "Выходные аргументы по умолчанию для потоков роли обнуружения." + }, + "record": { + "label": "Выходные аргументы записи", + "description": "Выходные аргументы по умолчанию для потоков роли запись." + } + }, + "retry_interval": { + "label": "Интервал повтора FFmpeg", + "description": "Секунды ожидания перед повторным подключением потока камеры после сбоя. По умолчанию 10." + }, + "apple_compatibility": { + "label": "Совместимость с Apple", + "description": "Включить тегирование HEVC для лучшей совместимости с плеерами Apple при записи H.265." + }, + "gpu": { + "label": "Индекс GPU", + "description": "Индекс GPU по умолчанию, используемый для аппаратного ускорения, если он доступен." + }, + "inputs": { + "label": "Входы камеры", + "description": "Список определений входного потока (пути и роли) для этой камеры.", + "path": { + "label": "Входной путь", + "description": "URL или путь входного потока камеры." + }, + "roles": { + "label": "Входные роли", + "description": "Роли для этого входного потока." + }, + "global_args": { + "label": "Глобальные аргументы FFmpeg", + "description": "Глобальные аргументы FFmpeg для этого входного потока." + }, + "hwaccel_args": { + "label": "Аргументы аппаратного ускорения", + "description": "Аргументы аппаратного ускорения для этого входного потока." + }, + "input_args": { + "label": "Входные аргументы", + "description": "Входные аргументы, специфичные для этого потока." + } + } + }, + "live": { + "label": "Просмотр в реальном времени", + "streams": { + "label": "Имена live-потоков", + "description": "Сопоставление настроенных имён потоков с именами restream/go2rtc для просмотра в реальном времени." + }, + "height": { + "label": "Высота live-потока", + "description": "Высота (в пикселях) для отображения jsmpeg-потока в веб-интерфейсе; должна быть <= высоты потока обнаружения." + }, + "quality": { + "label": "Качество live-потока", + "description": "Качество кодирования потока jsmpeg (1 — наивысшее, 31 — наинизшее)." + } + }, + "motion": { + "label": "Обнаружение движения", + "enabled": { + "label": "Включить обнаружение движения" + }, + "threshold": { + "label": "Порог движения", + "description": "Порог разницы пикселей, используемый детектором движения; более высокие значения снижают чувствительность (диапазон 1–255)." + }, + "lightning_threshold": { + "label": "Порог молнии", + "description": "Порог для обнаружения и игнорирования кратковременных всплесков освещения (ниже - более чувствительно, значения от 0,3 до 1,0). Это не предотвращает полное обнаружение движения; это просто заставляет детектор прекратить анализ дополнительных кадров после превышения порога. Во время этих событий по-прежнему создаются записи на основе движения." + }, + "skip_motion_threshold": { + "label": "Порог пропуска движения", + "description": "Если задано значение от 0.0 до 1.0 и за один кадр изменяется большая доля изображения, детектор не вернет области движения и сразу выполнит повторную калибровку. Это снижает нагрузку на CPU и число ложных срабатываний во время молний, гроз и т. п., но может пропустить реальные события, например автотрекинг объекта PTZ-камерой. Компромисс состоит в выборе между потерей нескольких мегабайт записи и просмотром пары коротких клипов. Оставьте параметр незаданным (None), чтобы отключить эту функцию." + }, + "improve_contrast": { + "label": "Улучшить контраст", + "description": "Примените улучшение контрастности к кадрам перед анализом движения, чтобы облегчить обнаружение." + }, + "contour_area": { + "label": "Контурная площадь", + "description": "Минимальная площадь контура в пикселях, необходимая для подсчета контура движения." + }, + "delta_alpha": { + "label": "Дельта альфа", + "description": "Коэффициент альфа-смешивания, используемый при различении кадров для расчета движения." + }, + "frame_alpha": { + "label": "Кадр альфа", + "description": "Значение альфа, используемое при смешивании кадров для предварительной обработки движения." + }, + "frame_height": { + "label": "Высота рамки", + "description": "Высота в пикселях для масштабирования кадров при расчете движения." + }, + "mask": { + "label": "Координаты маски", + "description": "Упорядоченные координаты x,y, определяющие многоугольник маски движения, используемый для включения/исключения областей." + }, + "mqtt_off_delay": { + "label": "MQTT задержка выключения", + "description": "Секунды ожидания после последнего движения перед публикацией состояния «выключено» MQTT." + }, + "enabled_in_config": { + "label": "Исходное состояние движения", + "description": "Указывает, было ли включено обнаружение движения в исходной статической конфигурации." + }, + "raw_mask": { + "label": "Исходная маска" + } + }, + "objects": { + "label": "Объекты", + "description": "Параметры отслеживания объектов по умолчанию, включая метки для отслеживания и фильтры для каждого объекта.", + "track": { + "label": "Объекты для отслеживания" + }, + "filters": { + "label": "Фильтры объектов", + "description": "К обнаруженным объектам применяются фильтры для уменьшения ложных срабатываний (площадь, соотношение, достоверность).", + "min_area": { + "label": "Минимальная площадь объекта", + "description": "Минимальная площадь ограничивающей рамки (в пикселях или процентах), необходимая для этого типа объекта. Может быть в пикселях (целое число) или в процентах (плавающее значение от 0,000001 до 0,99)." + }, + "max_area": { + "label": "Максимальная площадь объекта", + "description": "Максимальная площадь ограничивающей рамки (в пикселях или процентах), разрешенная для этого типа объекта. Может быть в пикселях (целое число) или в процентах (плавающее значение от 0,000001 до 0,99)." + }, + "min_ratio": { + "label": "Минимальное соотношение сторон", + "description": "Минимальное соотношение ширины и высоты, необходимое для соответствия ограничивающей рамки." + }, + "max_ratio": { + "label": "Максимальное соотношение сторон", + "description": "Максимальное соотношение ширины и высоты, допускаемое для соответствия ограничивающей рамке." + }, + "threshold": { + "label": "Порог уверенности", + "description": "Средний порог достоверности обнаружения, необходимый для того, чтобы объект считался истинно положительным." + }, + "min_score": { + "label": "Минимальная уверенность", + "description": "Минимальная достоверность обнаружения одного кадра, необходимая для подсчета объекта." + }, + "mask": { + "label": "Маска фильтра", + "description": "Координаты полигона, определяющие, где этот фильтр применяется в кадре." + }, + "raw_mask": { + "label": "Исходная маска" + } + }, + "mask": { + "label": "Маска объекта", + "description": "Полигон маски, используемый для предотвращения обнаружения объектов в определенных областях." + }, + "raw_mask": { + "label": "Исходная маска" + }, + "genai": { + "label": "Конфигурация объекта GenAI", + "description": "Опции GenAI для описания отслеживаемых объектов и отправки кадров на генерацию.", + "enabled": { + "label": "Включить GenAI", + "description": "По умолчанию включить GenAI генерацию описаний отслеживаемых объектов." + }, + "use_snapshot": { + "label": "Используйте снимки", + "description": "Используйте снимки объектов вместо миниатюр для создания описания GenAI." + }, + "prompt": { + "label": "Промпт описания", + "description": "Шаблон промпта по умолчанию для генерации описаний с помощью GenAI." + }, + "object_prompts": { + "label": "Промпты по объектам", + "description": "Промпты для отдельных объектов, чтобы настроить вывод GenAI для конкретных меток." + }, + "objects": { + "label": "Объекты GenAI", + "description": "Список меток объектов для отправки в GenAI по умолчанию." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, которые необходимо ввести для объектов, чтобы соответствовать критериям создания описания GenAI." + }, + "debug_save_thumbnails": { + "label": "Сохранить миниатюры", + "description": "Сохранять миниатюры, отправляемые в GenAI, для отладки и просмотра." + }, + "send_triggers": { + "label": "Триггеры GenAI", + "description": "Определяет, когда кадры должны отправляться на GenAI (по окончании, после обновлений и т. д.).", + "tracked_object_end": { + "label": "Отправить в конце", + "description": "Отправьте запрос на GenAI, когда отслеживаемый объект закончится." + }, + "after_significant_updates": { + "label": "Ранний триггер GenAI", + "description": "Отправьте запрос GenAI после указанного количества существенных обновлений отслеживаемого объекта." + } + }, + "enabled_in_config": { + "label": "Исходное состояние GenAI", + "description": "Указывает, был ли включен GenAI в исходной статической конфигурации." + } + } + }, + "record": { + "label": "Запись", + "enabled": { + "label": "Включить запись" + }, + "expire_interval": { + "label": "Запись интервала очистки", + "description": "Минуты между проходами очистки, при которых удаляются просроченные сегменты записи." + }, + "continuous": { + "label": "Постоянное удержание", + "description": "Количество дней для хранения записей независимо от отслеживаемых объектов или движения. Установите значение 0, если вы хотите сохранять только записи предупреждений и обнаружений.", + "days": { + "label": "Дни хранения", + "description": "Дни хранения записей." + } + }, + "motion": { + "label": "Удержание движения", + "description": "Количество дней для хранения записей, вызванных движением, независимо от отслеживаемых объектов. Установите значение 0, если вы хотите сохранять только записи предупреждений и обнаружений.", + "days": { + "label": "Дни хранения", + "description": "Дни хранения записей." + } + }, + "detections": { + "label": "Сохранение обнаружения", + "description": "Настройки хранения записи для событий обнаружения, включая продолжительность до и после захвата.", + "pre_capture": { + "label": "Предварительная съемка секунд", + "description": "Количество секунд до события обнаружения, которое необходимо включить в запись." + }, + "post_capture": { + "label": "Секунды после захвата", + "description": "Количество секунд после события обнаружения, которое необходимо включить в запись." + }, + "retain": { + "label": "Сохранение событий", + "description": "Настройки хранения записей событий обнаружения.", + "days": { + "label": "Дни хранения", + "description": "Количество дней для хранения записей событий обнаружения." + }, + "mode": { + "label": "Режим хранения", + "description": "Режим сохранения: all (сохранить все сегменты), motion (сохранить сегменты с движением) или active_objects (сохранить сегменты с активными объектами)." + } + } + }, + "alerts": { + "label": "Сохранение оповещений", + "description": "Настройки хранения записи для событий оповещений, включая продолжительность до и после захвата.", + "pre_capture": { + "label": "Предварительная съемка секунд", + "description": "Количество секунд до события обнаружения, которое необходимо включить в запись." + }, + "post_capture": { + "label": "Секунды после захвата", + "description": "Количество секунд после события обнаружения, которое необходимо включить в запись." + }, + "retain": { + "label": "Сохранение событий", + "description": "Настройки хранения записей событий обнаружения.", + "days": { + "label": "Дни хранения", + "description": "Количество дней для хранения записей событий обнаружения." + }, + "mode": { + "label": "Режим хранения", + "description": "Режим сохранения: all (сохранить все сегменты), motion (сохранить сегменты с движением) или active_objects (сохранить сегменты с активными объектами)." + } + } + }, + "export": { + "label": "Экспортировать конфигурацию", + "description": "Настройки, используемые при экспорте записей, такие как замедленная съемка и аппаратное ускорение.", + "hwaccel_args": { + "label": "Экспортировать аргументы hwaccel", + "description": "Аргументы аппаратного ускорения, используемые для операций экспорта/перекодирования." + }, + "max_concurrent": { + "label": "Максимальный одновременный экспорт", + "description": "Максимальное количество заданий экспорта, обрабатываемых одновременно." + }, + "chapters": { + "label": "Метаданные глав для встраивания в экспортированные записи" + } + }, + "preview": { + "label": "Предварительный просмотр конфигурации", + "description": "Настройки, управляющие качеством предварительного просмотра записи, отображаемого в пользовательском интерфейсе.", + "quality": { + "label": "Предварительный просмотр качества", + "description": "Уровень качества предпросмотра (very_low, low, medium, high, very_high)." + } + }, + "enabled_in_config": { + "label": "Исходное состояние записи", + "description": "Указывает, была ли запись включена в исходной статической конфигурации." + } + }, + "review": { + "label": "Проверка", + "alerts": { + "label": "Конфигурация оповещений", + "description": "Настройки, для которых отслеживаемые объекты генерируют оповещения и как оповещения сохраняются.", + "enabled": { + "label": "Включить оповещения" + }, + "labels": { + "label": "Предупреждающие ярлыки", + "description": "Список меток объектов, которые квалифицируются как оповещения (например: машина, человек)." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, в которые должен войти объект, чтобы считаться оповещением; оставьте пустым, чтобы разрешить любую зону." + }, + "enabled_in_config": { + "label": "Исходное состояние оповещений", + "description": "Отслеживает, были ли оповещения изначально включены в статической конфигурации." + }, + "cutoff_time": { + "label": "Время окончания оповещений", + "description": "Секунды ожидания после отсутствия активности, вызывающей оповещение, прежде чем отключать оповещение." + } + }, + "detections": { + "label": "Конфигурация обнаружения", + "description": "Настройки, для которых отслеживаемые объекты генерируют обнаружения (без оповещения) и порядок сохранения обнаружений.", + "enabled": { + "label": "Включить обнаружение" + }, + "labels": { + "label": "Метки обнаружения", + "description": "\"Список меток объектов, которые квалифицируются как события обнаружения." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, в которые должен войти объект, чтобы считаться обнаруженным; оставьте пустым, чтобы разрешить любую зону." + }, + "cutoff_time": { + "label": "Время прекращения обнаружения", + "description": "Секунды ожидания после отсутствия активности, вызывающей обнаружение, прежде чем отключать обнаружение." + }, + "enabled_in_config": { + "label": "Исходное состояние обнаружений", + "description": "Отслеживает, были ли изначально включены обнаружения в статической конфигурации." + } + }, + "genai": { + "label": "Конфигурация GenAI", + "description": "Контролирует использование генеративного искусственного интеллекта для создания описаний и резюме элементов обзора.", + "enabled": { + "label": "Включить описания GenAI", + "description": "Включить или отключить описания и сводки GenAI для элементов проверки." + }, + "alerts": { + "label": "Включить GenAI для оповещений", + "description": "Используйте GenAI для создания описаний элементов оповещений." + }, + "detections": { + "label": "Включить GenAI для детекций", + "description": "Используйте GenAI для создания описаний элементов обнаружения." + }, + "image_source": { + "label": "Проверьте источник изображения", + "description": "\"Источник изображений, отправляемых на GenAI ('preview' или 'recordings'); 'recordings' использует кадры более высокого качества, но больше токенов." + }, + "additional_concerns": { + "label": "Дополнительные проблемы", + "description": "Список дополнительных проблем или примечаний, которые GenAI следует учитывать при оценке активности на этой камере." + }, + "debug_save_thumbnails": { + "label": "Сохранить миниатюры", + "description": "Сохраняйте миниатюры, которые отправляются поставщику GenAI для отладки и проверки." + }, + "enabled_in_config": { + "label": "Исходное состояние GenAI", + "description": "Отслеживает, была ли изначально включена проверка GenAI в статической конфигурации." + }, + "preferred_language": { + "label": "Предпочитаемый язык", + "description": "Предпочитаемый язык для запроса у провайдера GenAI сгенерированных ответов." + }, + "activity_context_prompt": { + "label": "Промпт контекста активности", + "description": "Пользовательский промпт, описывающий, какая активность считается подозрительной, а какая нет, для контекста сводок GenAI." + } + } + }, + "snapshots": { + "label": "Снимки", + "enabled": { + "label": "Включить снимки" + }, + "timestamp": { + "label": "Наложение временной метки", + "description": "Наложение временной метки на снимки из API." + }, + "bounding_box": { + "label": "Наложение ограничивающей рамки", + "description": "Рисовать ограничивающие рамки отслеживаемых объектов на снимках из API." + }, + "crop": { + "label": "Обрезать снимок", + "description": "Обрезать снимки API по ограничивающей рамке обнаруженного объекта." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, в которые должен войти объект, чтобы снимок был сохранен." + }, + "height": { + "label": "Высота снимка", + "description": "Высота (в пикселях) для изменения размера снимков с API на; оставьте пустым, чтобы сохранить исходный размер." + }, + "retain": { + "label": "Хранение снимков", + "description": "Настройки хранения для снимков, включая дни по умолчанию и переопределения для каждого объекта.", + "default": { + "label": "Срок хранения по умолчанию", + "description": "Число дней по умолчанию для хранения снимков." + }, + "objects": { + "label": "Сохранение объекта", + "description": "Переопределения дней хранения снимков для каждого объекта." + } + }, + "quality": { + "label": "Качество снимка", + "description": "Качество кодирования для сохраненных снимков (0–100)." + } + }, + "timestamp_style": { + "label": "Стиль временной метки", + "position": { + "label": "Позиция временной метки", + "description": "Положение отметки времени на изображении (tl/tr/bl/br)." + }, + "format": { + "label": "Формат временной метки", + "description": "Строка формата даты и времени, используемая для меток времени (коды формата даты и времени Python)." + }, + "color": { + "label": "Цвет временной метки", + "description": "Значения цвета RGB для текста метки времени (все значения от 0 до 255).", + "red": { + "label": "Красный", + "description": "Красный компонент (0–255) для цвета метки времени." + }, + "green": { + "label": "Зелёный", + "description": "Зеленый компонент (0–255) для цвета метки времени." + }, + "blue": { + "label": "Синий", + "description": "Синий компонент (0–255) для цвета метки времени." + } + }, + "thickness": { + "label": "Толщина временной метки", + "description": "Толщина линии текста метки времени." + }, + "effect": { + "label": "Эффект временной метки", + "description": "Визуальный эффект для текста метки времени (нет, сплошной, тень)." + } + }, + "semantic_search": { + "label": "Семантический поиск", + "triggers": { + "label": "Триггеры", + "description": "Действия и критерии соответствия для триггеров семантического поиска, специфичных для камеры.", + "friendly_name": { + "label": "Дружественное имя", + "description": "Необязательное понятное имя, отображаемое в пользовательском интерфейсе для этого триггера." + }, + "enabled": { + "label": "Включить этот триггер", + "description": "Включить или отключить этот триггер семантического поиска." + }, + "type": { + "label": "Тип триггера", + "description": "Тип триггера: 'thumbnail' (совпадение с изображением) или 'description' (совпадение с текстом)." + }, + "data": { + "label": "Содержимое триггера", + "description": "Текстовая фраза или идентификатор миниатюры для сопоставления с отслеживаемыми объектами." + }, + "threshold": { + "label": "Порог срабатывания", + "description": "Минимальный показатель сходства (0–1), необходимый для активации этого триггера." + }, + "actions": { + "label": "Триггерные действия", + "description": "Список действий при срабатывании триггера (notification, sub_label, attribute)." + } + } + }, + "face_recognition": { + "label": "Распознавание лиц", + "enabled": { + "label": "Включить распознавание лиц" + }, + "min_area": { + "label": "Минимальная площадь лица", + "description": "Минимальная площадь (пиксели) обнаруженного лицевого окна, необходимая для попытки распознавания." + } + }, + "lpr": { + "label": "Распознавание номерных знаков", + "description": "Настройки распознавания номерных знаков, включая пороговые значения обнаружения, форматирование и известные номера.", + "enabled": { + "label": "Включить LPR" + }, + "min_area": { + "label": "Минимальная площадь номера", + "description": "Минимальная площадь номерного знака (в пикселях), необходимая для попытки распознавания." + }, + "enhancement": { + "label": "Уровень улучшения", + "description": "Уровень улучшения (0–10), применяемый к кропам номеров перед OCR; более высокие значения не всегда улучшают результат, уровни выше 5 могут работать только с ночными номерами — используйте осторожно." + }, + "expire_time": { + "label": "Время истечения (сек)", + "description": "Время в секундах, после которого невидимый номер удаляется из трекера (только для выделенных LPR-камер)." + } + }, + "profiles": { + "label": "Профили" + }, + "onvif": { + "label": "ONVIF", + "description": "Соединение ONVIF и настройки автослежения PTZ для этой камеры.", + "host": { + "label": "Хост ONVIF", + "description": "Хост (и дополнительная схема) для службы ONVIF для этой камеры." + }, + "port": { + "label": "Порт ONVIF", + "description": "Номер порта для службы ONVIF." + }, + "user": { + "label": "Имя пользователя ONVIF", + "description": "Имя пользователя для аутентификации ONVIF; на некоторых устройствах требуется администратор для ONVIF." + }, + "password": { + "label": "Пароль ONVIF", + "description": "Пароль для аутентификации ONVIF." + }, + "tls_insecure": { + "label": "Отключить проверку TLS", + "description": "Пропустить проверку TLS и отключить дайджест-аутентификацию для ONVIF (небезопасно; использовать только в безопасных сетях)." + }, + "profile": { + "label": "Профиль ONVIF", + "description": "Конкретный медиа-профиль ONVIF, используемый для элемента управления PTZ, соответствующий токену или имени. Если этот параметр не установлен, автоматически выбирается первый профиль с действительной конфигурацией PTZ." + }, + "autotracking": { + "label": "Автотрекинг", + "description": "Автоматически отслеживайте движущиеся объекты и удерживайте их в центре кадра с помощью движений камеры PTZ.", + "enabled": { + "label": "Включить автотрекинг", + "description": "Включить или отключить автоматическое PTZ-сопровождение обнаруженных объектов." + }, + "calibrate_on_startup": { + "label": "Калибровка при запуске", + "description": "Измерьте скорость двигателя PTZ при запуске, чтобы повысить точность отслеживания. Frigate обновит конфигурацию с помощью motion_weights после калибровки." + }, + "zooming": { + "label": "Режим масштабирования", + "description": "Управляет масштабированием: отключенный (только панорамирование и наклон), полный (наиболее совместимый режим) или условный (одновременное панорамирование, наклон и масштабирование)." + }, + "zoom_factor": { + "label": "Уровень масштабирования", + "description": "Уровень зума на отслеживаемых объектах. Меньшие значения оставляют в кадре больше сцены; большие приближают сильнее, но могут потерять объект. Значения от 0.1 до 0.75." + }, + "track": { + "label": "Отслеживаемые объекты", + "description": "Список типов объектов, которые должны запускать автоматическое отслеживание." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Прежде чем начнется автоматическое слежение, объекты должны войти в одну из этих зон." + }, + "return_preset": { + "label": "Вернуть предустановку", + "description": "Имя предустановки ONVIF, настроенное в прошивке камеры, к которому можно вернуться после завершения отслеживания." + }, + "timeout": { + "label": "Тайм-аут возврата", + "description": "Подождите это количество секунд после потери отслеживания, прежде чем возвращать камеру в заданное положение." + }, + "movement_weights": { + "label": "Вес движения", + "description": "Калибровочные значения автоматически генерируются при калибровке камеры. Не вносите изменения вручную." + }, + "enabled_in_config": { + "label": "Исходное состояние автотрека", + "description": "Внутреннее поле для отслеживания того, включено ли в конфигурации автоотслеживание." + } + }, + "ignore_time_mismatch": { + "label": "Игнорировать несоответствие времени", + "description": "Игнорировать расхождение времени между камерой и сервером Frigate при обмене по ONVIF." } } } diff --git a/web/public/locales/ru/config/global.json b/web/public/locales/ru/config/global.json index 64b4958111..847d0461a2 100644 --- a/web/public/locales/ru/config/global.json +++ b/web/public/locales/ru/config/global.json @@ -1,8 +1,9 @@ { "audio": { - "label": "Аудиособытия", + "label": "Обнаружение звука", "enabled": { - "label": "Включить обнаружение звука" + "label": "Включить обнаружение звука", + "description": "Включить или отключить обнаружение аудиособытий для всех камер; можно переопределить для каждой камеры." }, "max_not_heard": { "label": "Завершение таймаута", @@ -13,12 +14,16 @@ "description": "Для запуска функции обнаружения звука требуется минимальный пороговый уровень громкости RMS; более низкие значения повышают чувствительность (например, 200 — высокий, 500 — средний, 1000 — низкий)." }, "listen": { - "description": "Список типов аудиособытий для обнаружения (например: лай, пожарная тревога, крик, речь, вопль).", + "description": "Список типов аудиособытий для обнаружения (например: лай, пожарная тревога, речь, вопль).", "label": "Типы аудиособытий" }, "filters": { "label": "Аудиофильтры", - "description": "Настройки фильтров для каждого типа аудиофайлов, такие как пороговые значения, используются для уменьшения количества ложных срабатываний." + "description": "Настройки фильтров для каждого типа аудиофайлов, такие как пороговые значения, используются для уменьшения количества ложных срабатываний.", + "threshold": { + "label": "Минимальная уверенность в звуке", + "description": "Минимальный порог достоверности для подсчета аудиособытия." + } }, "enabled_in_config": { "label": "Исходное состояние звука", @@ -27,7 +32,8 @@ "num_threads": { "label": "Обнаружение потоков", "description": "Количество потоков, используемых для обработки обнаружения звука." - } + }, + "description": "Настройки обнаружения событий по звуку для всех камер; можно переопределить для каждой камеры." }, "audio_transcription": { "label": "Расшифровка аудиозаписи", @@ -35,6 +41,22 @@ "live_enabled": { "label": "Транскрипция в реальном времени", "description": "Включить потоковую транскрипцию аудио в режиме реального времени по мере его поступления." + }, + "enabled": { + "label": "Включить транскрипцию аудио", + "description": "Включить или отключить автоматическую транскрипцию звука для всех камер; можно переопределить для каждой камеры." + }, + "language": { + "label": "Язык транскрипции", + "description": "\"Код языка, используемый для транскрипции/перевода (например, 'en' для английского языка). См. https://whisper-api.com/docs/languages/ для поддерживаемых языковых кодов." + }, + "device": { + "label": "Устройство транскрипции", + "description": "Ключ устройства (CPU/GPU) для запуска модели транскрипции. В настоящее время для транскрипции поддерживаются только графические процессоры NVIDIA CUDA." + }, + "model_size": { + "label": "Размер модели", + "description": "Размер модели, который будет использоваться для транскрипции аудиособытий в автономном режиме." } }, "birdseye": { @@ -51,13 +73,50 @@ "order": { "label": "Позиция", "description": "Числовое значение, управляющее порядком расположения камер в схеме Birdseye." + }, + "restream": { + "label": "Рестрим RTSP", + "description": "Повторно транслировать вывод Birdseye в канал RTSP; включение этого параметра обеспечит непрерывную работу Birdseye." + }, + "width": { + "label": "Ширина", + "description": "Выходная ширина (в пикселях) составного кадра Birdseye." + }, + "height": { + "label": "Высота", + "description": "Выходная высота (в пикселях) составного кадра Birdseye." + }, + "quality": { + "label": "Качество кодирования", + "description": "Качество кодирования для канала Birdseye mpeg1 (1 самое высокое качество, 31 самое низкое)." + }, + "inactivity_threshold": { + "label": "Порог неактивности", + "description": "Секунды бездействия, после которых камера перестанет отображаться в Birdseye." + }, + "layout": { + "label": "Макет", + "description": "Варианты компоновки композиции Birdseye.", + "scaling_factor": { + "label": "Коэффициент масштабирования", + "description": "Коэффициент масштабирования, используемый калькулятором макета (диапазон от 1,0 до 5,0)." + }, + "max_cameras": { + "label": "Макс. камеры", + "description": "Максимальное количество камер для одновременного отображения в Birdseye; показывает самые последние камеры." + } + }, + "idle_heartbeat_fps": { + "label": "Пустой пульс FPS", + "description": "Количество кадров в секунду для повторной отправки последнего составленного кадра Birdseye в режиме ожидания; установите значение 0, чтобы отключить." } }, "detect": { "label": "Обнаружение объектов", "description": "Настройки роли обнаружения, используемые для запуска обнаружения объектов и инициализации трекеров.", "enabled": { - "label": "Включить обнаружение объектов" + "label": "Включить обнаружение объектов", + "description": "Включить или отключить обнаружение объектов для всех камер; можно переопределить для каждой камеры." }, "height": { "label": "Высота обнаружения", @@ -81,7 +140,35 @@ }, "stationary": { "label": "Конфигурация стационарных объектов", - "description": "Настройки для обнаружения и управления объектами, которые остаются неподвижными в течение определенного периода времени." + "description": "Настройки для обнаружения и управления объектами, которые остаются неподвижными в течение определенного периода времени.", + "interval": { + "label": "Стационарный интервал", + "description": "Как часто (в кадрах) запускать проверку обнаружения для подтверждения неподвижного объекта." + }, + "threshold": { + "label": "Стационарный порог", + "description": "Количество кадров без изменения положения, необходимое для того, чтобы пометить объект как неподвижный." + }, + "max_frames": { + "label": "Максимальное количество кадров", + "description": "Ограничивает продолжительность отслеживания стационарных объектов, прежде чем они будут отброшены.", + "default": { + "label": "Максимальное количество кадров по умолчанию", + "description": "Максимальное количество кадров по умолчанию для отслеживания неподвижного объекта перед остановкой." + }, + "objects": { + "label": "Максимальное количество кадров объекта", + "description": "Переопределения для каждого объекта для максимального количества кадров для отслеживания неподвижных объектов." + } + }, + "classifier": { + "label": "Включить визуальный классификатор", + "description": "Используйте визуальный классификатор для обнаружения действительно неподвижных объектов даже при дрожании ограничивающих рамок." + } + }, + "annotation_offset": { + "label": "Смещение аннотации", + "description": "Миллисекунды для обнаружения смещения аннотаций, чтобы лучше совместить ограничивающие рамки временной шкалы с записями; может быть положительным или отрицательным." } }, "version": { @@ -104,7 +191,8 @@ "description": "Стандартный глобальный уровень логирования (debug, info, warning, error)." }, "logs": { - "label": "Уровень логирования для каждого процесса" + "label": "Уровень логирования для каждого процесса", + "description": "Переопределение уровня логирования отдельных компонентов для увеличения или уменьшения детализации конкретных модулей." } }, "auth": { @@ -135,7 +223,1408 @@ "description": "Когда сессия в стольки секундах от истечения, обновить её обратно к полной длительности." }, "failed_login_rate_limit": { - "label": "Лимит неудавшихся попыток логина" + "label": "Лимит неудавшихся попыток логина", + "description": "Правила ограничения частоты неудачных попыток входа для снижения риска перебора паролей." + }, + "trusted_proxies": { + "label": "Доверенные прокси", + "description": "Список IP доверенных прокси, используемых при определении IP клиента для ограничения частоты запросов." + }, + "hash_iterations": { + "label": "Число итераций хеширования", + "description": "Число итераций PBKDF2-SHA256, используемых при хешировании паролей пользователей." + }, + "roles": { + "label": "Сопоставления ролей", + "description": "Сопоставление ролей со списками камер. Пустой список даёт роли доступ ко всем камерам." + }, + "admin_first_time_login": { + "label": "Флаг первого входа администратора", + "description": "Если включено, интерфейс может показать ссылку со справкой на странице входа о том, как войти после сброса пароля администратора. " + } + }, + "database": { + "label": "База данных", + "description": "Настройки базы данных SQLite, которую Frigate использует для хранения метаданных отслеживаемых объектов и записей.", + "path": { + "label": "Путь к базе данных", + "description": "Путь файловой системы, где будет храниться файл базы данных Frigate SQLite." + } + }, + "go2rtc": { + "label": "go2rtc", + "description": "Настройки встроенного сервиса рестриминга go2rtc для ретрансляции и преобразования прямых потоков." + }, + "mqtt": { + "label": "MQTT", + "description": "Настройки для подключения и публикации телеметрии, снимков и сведений о событиях в брокере MQTT.", + "enabled": { + "label": "Включить MQTT", + "description": "Включить или отключить интеграцию MQTT для состояния, событий и снимков." + }, + "host": { + "label": "Хост MQTT", + "description": "Имя хоста или IP-адрес брокера MQTT." + }, + "port": { + "label": "Порт MQTT", + "description": "Порт брокера MQTT (обычно 1883 для обычного MQTT)." + }, + "topic_prefix": { + "label": "Префикс топика", + "description": "Префикс топика MQTT для всех топиков Frigate; должен быть уникальным при запуске нескольких экземпляров." + }, + "client_id": { + "label": "Идентификатор клиента", + "description": "Идентификатор клиента, используемый при подключении к брокеру MQTT; должно быть уникальным для каждого экземпляра." + }, + "stats_interval": { + "label": "Интервал статистики", + "description": "Интервал в секундах для публикации статистики системы и камеры в MQTT." + }, + "user": { + "label": "Имя пользователя MQTT", + "description": "\"Необязательное имя пользователя MQTT; могут быть предоставлены через переменные среды или секреты." + }, + "password": { + "label": "Пароль MQTT", + "description": "Дополнительный пароль MQTT; могут быть предоставлены через переменные среды или секреты." + }, + "tls_ca_certs": { + "label": "TLS Сертификаты CA", + "description": "Путь к сертификату CA для подключений TLS к брокеру (для самозаверяющих сертификатов)." + }, + "tls_client_cert": { + "label": "Сертификат клиента", + "description": "Путь сертификата клиента для взаимной аутентификации TLS; не устанавливайте пользователя/пароль при использовании клиентских сертификатов." + }, + "tls_client_key": { + "label": "Ключ клиента", + "description": "Путь закрытого ключа для сертификата клиента." + }, + "tls_insecure": { + "label": "TLS небезопасно", + "description": "Разрешите небезопасные соединения TLS, пропустив проверку имени хоста (не рекомендуется)." + }, + "qos": { + "label": "MQTT QoS", + "description": "Уровень качества обслуживания для публикаций/подписок MQTT (0, 1 или 2)." + } + }, + "notifications": { + "label": "Уведомления", + "description": "Настройки для включения и управления уведомлениями для всех камер; можно переопределить для каждой камеры.", + "enabled": { + "label": "Включить уведомления", + "description": "Включить или отключить уведомления для всех камер; можно переопределить для каждой камеры." + }, + "email": { + "label": "Уведомление по электронной почте", + "description": "Адрес электронной почты, используемый для push-уведомлений или требуемый некоторыми поставщиками уведомлений." + }, + "cooldown": { + "label": "Период охлаждения", + "description": "Пауза (в секундах) между уведомлениями, чтобы не спамить получателей." + }, + "enabled_in_config": { + "label": "Исходное состояние уведомлений", + "description": "Указывает, были ли уведомления включены в исходной статической конфигурации." + } + }, + "networking": { + "label": "Сеть", + "description": "Настройки, связанные с сетью, такие как включение IPv6 для конечных точек Frigate.", + "ipv6": { + "label": "Конфигурация IPv6", + "description": "Специальные настройки IPv6 для сетевых служб Frigate.", + "enabled": { + "label": "Включить IPv6", + "description": "Включить поддержку IPv6 для сервисов Frigate (API и UI), где это применимо." + } + }, + "listen": { + "label": "Конфигурация прослушиваемых портов", + "description": "Конфигурация внутренних и внешних портов прослушивания. Это для продвинутых пользователей. В большинстве случаев рекомендуется изменить раздел портов в файле компоновки Docker.", + "internal": { + "label": "Внутренний порт", + "description": "Внутренний порт прослушивания для Frigate (по умолчанию 5000)." + }, + "external": { + "label": "Внешний порт", + "description": "Внешний порт прослушивания для Frigate (по умолчанию 8971)." + } + } + }, + "proxy": { + "label": "Прокси", + "description": "Настройки для интеграции Frigate за обратным прокси-сервером, который передает заголовки аутентифицированных пользователей.", + "header_map": { + "label": "Сопоставление заголовков", + "description": "Сопоставление входящих заголовков прокси с полями пользователя и роли Frigate для аутентификации через прокси.", + "user": { + "label": "Заголовок пользователя", + "description": "Заголовок, содержащий аутентифицированное имя пользователя, предоставленное вышестоящим прокси-сервером." + }, + "role": { + "label": "Заголовок роли", + "description": "Заголовок с ролью или группами аутентифицированного пользователя от upstream-прокси." + }, + "role_map": { + "label": "Сопоставление ролей", + "description": "Сопоставление значений групп из upstream с ролями Frigate (например, группы администраторов — с ролью admin)." + } + }, + "logout_url": { + "label": "URL выхода", + "description": "URL для перенаправления пользователей при выходе из системы через прокси." + }, + "auth_secret": { + "label": "Секрет прокси", + "description": "Необязательный секрет проверяется по заголовку X-Proxy-Secret для проверки доверенных прокси." + }, + "default_role": { + "label": "Роль по умолчанию", + "description": "Роль по умолчанию для пользователей, аутентифицированных через прокси, если сопоставление ролей не применимо." + }, + "separator": { + "label": "Символ-разделитель", + "description": "Символ, используемый для разделения нескольких значений, указанных в заголовках прокси." + } + }, + "telemetry": { + "label": "Телеметрия", + "description": "Параметры системной телеметрии и статистики, включая GPU и мониторинг пропускной способности сети.", + "network_interfaces": { + "label": "Сетевые интерфейсы", + "description": "Список префиксов имен сетевых интерфейсов для отслеживания статистики пропускной способности." + }, + "stats": { + "label": "Системная статистика", + "description": "Опции для включения/выключения сбора различной статистики системы и GPU.", + "amd_gpu_stats": { + "label": "Статистика AMD GPU", + "description": "Включить сбор статистики AMD GPU, если GPU AMD присутствует." + }, + "intel_gpu_stats": { + "label": "Статистика Intel GPU", + "description": "Включить сбор статистики Intel GPU, если GPU Intel присутствует." + }, + "network_bandwidth": { + "label": "Пропускная способность сети", + "description": "Включить мониторинг сетевой пропускной способности по процессам для FFmpeg камер и детекторов (требуются capabilities)." + }, + "intel_gpu_device": { + "label": "Устройство Intel GPU", + "description": "Адрес шины PCI или путь к устройству DRM (например, /dev/dri/card1), используемый для закрепления статистики Intel GPU на конкретном устройстве, если их несколько." + } + }, + "version_check": { + "label": "Проверка версии", + "description": "Включить внешнюю проверку наличия более новой версии Frigate." + } + }, + "tls": { + "label": "TLS", + "description": "Настройки TLS для конечных веб-точек Frigate (порт 8971).", + "enabled": { + "label": "Включить TLS", + "description": "Включить TLS для веб-интерфейса и API Frigate на настроенном TLS-порту." + } + }, + "ui": { + "label": "Интерфейс", + "description": "Параметры интерфейса: часовой пояс, формат времени/даты и единицы измерения.", + "timezone": { + "label": "Часовой пояс", + "description": "Дополнительный часовой пояс для отображения в пользовательском интерфейсе (по умолчанию используется местное время браузера, если оно не установлено)." + }, + "time_format": { + "label": "Формат времени", + "description": "Формат времени для использования в пользовательском интерфейсе (браузер, 12 часов или 24 часа)." + }, + "unit_system": { + "label": "Система единиц", + "description": "Система единиц измерения (метрическая или дюймовая), используемая в пользовательском интерфейсе и MQTT." + } + }, + "detectors": { + "label": "Детекторное оборудование", + "description": "Конфигурация детекторов объектов (CPU, GPU, ONNX и др.) и связанных настроек моделей.", + "type": { + "label": "Тип" + }, + "model": { + "label": "Конфигурация конкретной модели детектора", + "description": "Параметры конфигурации модели для конкретного детектора (путь, входной размер и т. д.).", + "path": { + "label": "Путь к модели пользовательского детектора объектов", + "description": "Путь к файлу пользовательской модели обнаружения (или plus:// для моделей Frigate+)." + }, + "labelmap_path": { + "label": "Карта меток для пользовательского детектора объектов", + "description": "Путь к файлу карты меток, который сопоставляет числовые классы со строковыми метками детектора." + }, + "width": { + "label": "Ширина ввода модели обнаружения объектов", + "description": "Ширина входного тензора модели в пикселях." + }, + "height": { + "label": "Входная высота модели обнаружения объектов", + "description": "Высота входного тензора модели в пикселях." + }, + "labelmap": { + "label": "Настройка карты меток", + "description": "Переопределяет или переназначает записи для объединения со стандартной картой меток." + }, + "attributes_map": { + "label": "Сопоставление меток объектов с метками их атрибутов", + "description": "Сопоставление меток объектов с метками атрибутов, используемыми для прикрепления метаданных (например, 'car' -> ['license_plate'])." + }, + "input_tensor": { + "label": "Форма входного тензора модели", + "description": "Формат тензора, ожидаемый моделью: 'nhwc' или 'nchw'." + }, + "input_pixel_format": { + "label": "Модель Входной формат цвета пикселей", + "description": "Цветовое пространство пикселей, ожидаемое моделью: 'rgb', 'bgr' или 'yuv'." + }, + "input_dtype": { + "label": "Модель Тип входа D", + "description": "Тип данных входного тензора модели (например, 'float32')." + }, + "model_type": { + "label": "Тип модели обнаружения объектов", + "description": "Тип архитектуры модели детектора (ssd, yolox, yolonas, yolo-generic, rfdetr, dfine), используемый некоторыми детекторами для оптимизации." + } + }, + "model_path": { + "label": "Траектория конкретной модели детектора", + "description": "Путь к двоичному файлу модели детектора, если этого требует выбранный детектор." + }, + "axengine": { + "label": "AXEngine NPU", + "description": "Детектор AXERA AX650N/AX8850N NPU запускает скомпилированные файлы .axmodel через среду выполнения AXEngine." + }, + "cpu": { + "label": "CPU", + "description": "Детектор CPU TFLite, запускающий модели TensorFlow Lite на хосте CPU без аппаратного ускорения. Не рекомендуется.", + "num_threads": { + "label": "Количество потоков обнаружения", + "description": "Количество потоков, используемых для вывода на основе CPU." + } + }, + "deepstack": { + "label": "DeepStack", + "description": "Детектор DeepStack/CodeProject.AI, который отправляет изображения на удаленный DeepStack HTTP API для вывода. Не рекомендуется.", + "api_url": { + "label": "DeepStack API URL", + "description": "URL из DeepStack API." + }, + "api_timeout": { + "label": "DeepStack API тайм-аут (в секундах)", + "description": "Максимальное время, разрешенное для запроса DeepStack API." + }, + "api_key": { + "label": "DeepStack API ключ (при необходимости)", + "description": "Дополнительный ключ API для аутентифицированных сервисов DeepStack." + } + }, + "degirum": { + "label": "DeGirum", + "description": "\"Детектор DeGirum для запуска моделей через облако DeGirum или локальные службы вывода.", + "location": { + "label": "Место вывода", + "description": "Расположение механизма вывода ДеГирима (например, '@cloud', '127.0.0.1')." + }, + "zoo": { + "label": "Модельный зоопарк", + "description": "Путь или URL к зоопарку моделей DeGirum." + }, + "token": { + "label": "DeGirum Облачный токен", + "description": "Токен для доступа к облаку DeGirum." + } + }, + "edgetpu": { + "label": "EdgeTPU", + "description": "Детектор EdgeTPU, который запускает модели TensorFlow Lite, скомпилированные для Coral EdgeTPU с использованием делегата EdgeTPU.", + "device": { + "label": "Тип устройства", + "description": "Устройство, которое будет использоваться для вывода EdgeTPU (например, 'usb', 'pci')." + } + }, + "hailo8l": { + "label": "Hailo-8/Hailo-8L", + "description": "Детектор Hailo-8/Hailo-8L с использованием моделей HEF и HailoRT SDK для вывода на оборудовании Hailo.", + "device": { + "label": "Тип устройства", + "description": "Устройство, которое будет использоваться для вывода Hailo (например, 'PCIe', 'M.2')." + } + }, + "memryx": { + "label": "MemryX", + "description": "Детектор MemryX MX3, который запускает скомпилированные модели DFP на ускорителях MemryX.", + "device": { + "label": "Путь к устройству", + "description": "Устройство, которое будет использоваться для вывода MemryX (например, 'PCIe')." + } + }, + "onnx": { + "label": "ONNX", + "description": "Детектор ONNX для запуска моделей ONNX; будет использовать доступные механизмы ускорения (CUDA/ROCm/OpenVINO), если они доступны.", + "device": { + "label": "Тип устройства", + "description": "Устройство, которое будет использоваться для вывода ONNX (например, 'AUTO', 'CPU', 'GPU')." + } + }, + "openvino": { + "label": "OpenVINO", + "description": "\"Детектор OpenVINO для процессоров AMD и Intel, графических процессоров Intel и оборудования Intel VPU.", + "device": { + "label": "Тип устройства", + "description": "Устройство, которое будет использоваться для вывода OpenVINO (например, 'CPU', 'GPU', 'NPU')." + } + }, + "rknn": { + "label": "RKNN", + "description": "Детектор RKNN для NPU Rockchip; запускает скомпилированные модели RKNN на оборудовании Rockchip.", + "num_cores": { + "label": "Количество используемых ядер NPU.", + "description": "Количество используемых ядер NPU (0 для автоматического режима)." + } + }, + "synaptics": { + "label": "Synaptics", + "description": "Детектор Synaptics NPU для моделей в формате .synap, использующих Synap SDK на оборудовании Synaptics." + }, + "teflon_tfl": { + "label": "Teflon", + "description": "Детектор делегатов Teflon для TFLite с использованием библиотеки делегатов Mesa Teflon для ускорения вывода на поддерживаемых графических процессорах." + }, + "tensorrt": { + "label": "TensorRT", + "description": "Детектор TensorRT для устройств Nvidia Jetson, использующих сериализованные механизмы TensorRT для ускоренного вывода.", + "device": { + "label": "Индекс устройства GPU", + "description": "Используемый индекс устройства GPU." + } + }, + "zmq": { + "label": "ZMQ IPC", + "description": "Детектор ZMQ IPC, который выгружает логические выводы внешнему процессу через конечную точку ZeroMQ IPC.", + "endpoint": { + "label": "ZMQ IPC конечная точка", + "description": "Конечная точка ZMQ для подключения." + }, + "request_timeout_ms": { + "label": "ZMQ Тайм-аут запроса в миллисекундах", + "description": "Тайм-аут запросов ZMQ в миллисекундах." + }, + "linger_ms": { + "label": "Задержка сокета ZMQ в миллисекундах", + "description": "Период задержки сокета в миллисекундах." + } + } + }, + "model": { + "label": "Модель обнаружения", + "description": "Настройки для настройки пользовательской модели обнаружения объектов и ее входной формы.", + "path": { + "label": "Путь к модели пользовательского детектора объектов", + "description": "Путь к файлу пользовательской модели обнаружения (или plus:// для моделей Frigate+)." + }, + "labelmap_path": { + "label": "Карта меток для пользовательского детектора объектов", + "description": "Путь к файлу карты меток, который сопоставляет числовые классы со строковыми метками детектора." + }, + "width": { + "label": "Ширина ввода модели обнаружения объектов", + "description": "Ширина входного тензора модели в пикселях." + }, + "height": { + "label": "Входная высота модели обнаружения объектов", + "description": "\"Высота входного тензора модели в пикселях." + }, + "labelmap": { + "label": "Настройка карты меток", + "description": "Переопределяет или переназначает записи для объединения со стандартной картой меток." + }, + "attributes_map": { + "label": "Сопоставление меток объектов с метками их атрибутов", + "description": "Сопоставление меток объектов с метками атрибутов, используемыми для прикрепления метаданных (например, 'car' -> ['license_plate'])." + }, + "input_tensor": { + "label": "Форма входного тензора модели", + "description": "Формат тензора, ожидаемый моделью: 'nhwc' или 'nchw'." + }, + "input_pixel_format": { + "label": "Модель Входной формат цвета пикселей", + "description": "Цветовое пространство пикселей, ожидаемое моделью: 'rgb', 'bgr' или 'yuv'." + }, + "input_dtype": { + "label": "Модель Тип входа D", + "description": "Тип данных входного тензора модели (например, 'float32')." + }, + "model_type": { + "label": "Тип модели обнаружения объектов", + "description": "Тип архитектуры модели детектора (ssd, yolox, yolonas, yolo-generic, rfdetr, dfine), используемый некоторыми детекторами для оптимизации." + } + }, + "genai": { + "label": "Генеративная конфигурация ИИ", + "description": "Настройки для интегрированных поставщиков генеративного искусственного интеллекта, используемые для создания описаний объектов и обзоров.", + "api_key": { + "label": "Ключ API", + "description": "Ключ API, необходимый некоторым поставщикам (также может быть установлен через переменные среды)." + }, + "base_url": { + "label": "База URL", + "description": "Базовый URL для self-hosted или совместимых провайдеров (например, экземпляр Ollama)." + }, + "model": { + "label": "Модель", + "description": "Модель провайдера для генерации описаний или сводок." + }, + "provider": { + "label": "Поставщик", + "description": "Провайдер GenAI (например: ollama, gemini, openai)." + }, + "roles": { + "label": "Роли", + "description": "Роли GenAI (chat, descriptions, embeddings); один провайдер на роль." + }, + "provider_options": { + "label": "Варианты провайдера", + "description": "Дополнительные параметры конкретного провайдера для клиента GenAI." + }, + "runtime_options": { + "label": "Параметры времени выполнения", + "description": "Параметры выполнения, передаваемые провайдеру при каждом запросе инференса." + } + }, + "ffmpeg": { + "label": "FFmpeg", + "description": "Настройки FFmpeg, включая двоичный путь, аргументы, параметры hwaccel и выходные аргументы для каждой роли.", + "path": { + "label": "Путь FFmpeg", + "description": "Путь к используемому двоичному файлу FFmpeg или псевдоним версии («7.0» или «8.0»)." + }, + "global_args": { + "label": "Глобальные аргументы FFmpeg", + "description": "Глобальные аргументы, передаваемые процессам FFmpeg." + }, + "hwaccel_args": { + "label": "Аргументы аппаратного ускорения", + "description": "Аргументы аппаратного ускорения для FFmpeg. Рекомендуется использовать предустановки, зависящие от поставщика." + }, + "input_args": { + "label": "Входные аргументы", + "description": "Входные аргументы, применяемые к входным потокам FFmpeg." + }, + "output_args": { + "label": "Выходные аргументы", + "description": "Выходные аргументы по умолчанию, используемые для различных ролей FFmpeg, таких как обнаружение и запись.", + "detect": { + "label": "Выходные аргументы обнаружения", + "description": "Выходные аргументы по умолчанию для потоков роли обнуружения." + }, + "record": { + "label": "Выходные аргументы записи", + "description": "Выходные аргументы по умолчанию для потоков роли запись." + } + }, + "retry_interval": { + "label": "Интервал повтора FFmpeg", + "description": "Секунды ожидания перед повторным подключением потока камеры после сбоя. По умолчанию 10." + }, + "apple_compatibility": { + "label": "Совместимость с Apple", + "description": "Включить тегирование HEVC для лучшей совместимости с плеерами Apple при записи H.265." + }, + "gpu": { + "label": "Индекс GPU", + "description": "Индекс GPU по умолчанию, используемый для аппаратного ускорения, если он доступен." + }, + "inputs": { + "label": "Входы камеры", + "description": "Список определений входного потока (пути и роли) для этой камеры.", + "path": { + "label": "Входной путь", + "description": "URL или путь входного потока камеры." + }, + "roles": { + "label": "Входные роли", + "description": "Роли для этого входного потока." + }, + "global_args": { + "label": "Глобальные аргументы FFmpeg", + "description": "Глобальные аргументы FFmpeg для этого входного потока." + }, + "hwaccel_args": { + "label": "Аргументы аппаратного ускорения", + "description": "Аргументы аппаратного ускорения для этого входного потока." + }, + "input_args": { + "label": "Входные аргументы", + "description": "Входные аргументы, специфичные для этого потока." + } + } + }, + "live": { + "label": "Просмотр в реальном времени", + "description": "Настройки разрешения и качества jsmpeg-потока в реальном времени. Не влияет на камеры с рестримом через go2rtc.", + "streams": { + "label": "Имена live-потоков", + "description": "Сопоставление настроенных имён потоков с именами restream/go2rtc для просмотра в реальном времени." + }, + "height": { + "label": "Высота live-потока", + "description": "Высота (в пикселях) для отображения jsmpeg-потока в веб-интерфейсе; должна быть <= высоты потока обнаружения." + }, + "quality": { + "label": "Качество live-потока", + "description": "Качество кодирования потока jsmpeg (1 — наивысшее, 31 — наинизшее)." + } + }, + "motion": { + "label": "Обнаружение движения", + "description": "Настройки обнаружения движения по умолчанию применяются к камерам, если они не переопределены для каждой камеры.", + "enabled": { + "label": "Включить обнаружение движения", + "description": "Включить или отключить обнаружение движения для всех камер; можно переопределить для каждой камеры." + }, + "threshold": { + "label": "Порог движения", + "description": "Порог разницы пикселей, используемый детектором движения; более высокие значения снижают чувствительность (диапазон 1–255)." + }, + "lightning_threshold": { + "label": "Порог молнии", + "description": "Порог для обнаружения и игнорирования кратковременных всплесков освещения (ниже - более чувствительно, значения от 0,3 до 1,0). Это не предотвращает полное обнаружение движения; это просто заставляет детектор прекратить анализ дополнительных кадров после превышения порога. Во время этих событий по-прежнему создаются записи на основе движения." + }, + "skip_motion_threshold": { + "label": "Порог пропуска движения", + "description": "Если задано значение от 0.0 до 1.0 и за один кадр изменяется большая доля изображения, детектор не вернет области движения и сразу выполнит повторную калибровку. Это снижает нагрузку на CPU и число ложных срабатываний во время молний, гроз и т. п., но может пропустить реальные события, например автотрекинг объекта PTZ-камерой. Компромисс состоит в выборе между потерей нескольких мегабайт записи и просмотром пары коротких клипов. Оставьте параметр незаданным (None), чтобы отключить эту функцию." + }, + "improve_contrast": { + "label": "Улучшить контраст", + "description": "Примените улучшение контрастности к кадрам перед анализом движения, чтобы облегчить обнаружение." + }, + "contour_area": { + "label": "Контурная площадь", + "description": "Минимальная площадь контура в пикселях, необходимая для подсчета контура движения." + }, + "delta_alpha": { + "label": "Дельта альфа", + "description": "Коэффициент альфа-смешивания, используемый при различении кадров для расчета движения." + }, + "frame_alpha": { + "label": "Кадр альфа", + "description": "Значение альфа, используемое при смешивании кадров для предварительной обработки движения." + }, + "frame_height": { + "label": "Высота рамки", + "description": "Высота в пикселях для масштабирования кадров при расчете движения." + }, + "mask": { + "label": "Координаты маски", + "description": "Упорядоченные координаты x,y, определяющие многоугольник маски движения, используемый для включения/исключения областей." + }, + "mqtt_off_delay": { + "label": "MQTT задержка выключения", + "description": "Секунды ожидания после последнего движения перед публикацией состояния «выключено» MQTT." + }, + "enabled_in_config": { + "label": "Исходное состояние движения", + "description": "Указывает, было ли включено обнаружение движения в исходной статической конфигурации." + }, + "raw_mask": { + "label": "Исходная маска" + } + }, + "objects": { + "label": "Объекты", + "description": "Параметры отслеживания объектов по умолчанию, включая метки для отслеживания и фильтры для каждого объекта.", + "track": { + "label": "Объекты для отслеживания", + "description": "Список меток объектов для отслеживания для всех камер; можно переопределить для каждой камеры." + }, + "filters": { + "label": "Фильтры объектов", + "description": "К обнаруженным объектам применяются фильтры для уменьшения ложных срабатываний (площадь, соотношение, достоверность).", + "min_area": { + "label": "Минимальная площадь объекта", + "description": "Минимальная площадь ограничивающей рамки (в пикселях или процентах), необходимая для этого типа объекта. Может быть в пикселях (целое число) или в процентах (плавающее значение от 0,000001 до 0,99)." + }, + "max_area": { + "label": "Максимальная площадь объекта", + "description": "Максимальная площадь ограничивающей рамки (в пикселях или процентах), разрешенная для этого типа объекта. Может быть в пикселях (целое число) или в процентах (плавающее значение от 0,000001 до 0,99)." + }, + "min_ratio": { + "label": "Минимальное соотношение сторон", + "description": "Минимальное соотношение ширины и высоты, необходимое для соответствия ограничивающей рамки." + }, + "max_ratio": { + "label": "Максимальное соотношение сторон", + "description": "Максимальное соотношение ширины и высоты, допускаемое для соответствия ограничивающей рамке." + }, + "threshold": { + "label": "Порог уверенности", + "description": "Средний порог достоверности обнаружения, необходимый для того, чтобы объект считался истинно положительным." + }, + "min_score": { + "label": "Минимальная уверенность", + "description": "Минимальная достоверность обнаружения одного кадра, необходимая для подсчета объекта." + }, + "mask": { + "label": "Маска фильтра", + "description": "Координаты полигона, определяющие, где этот фильтр применяется в кадре." + }, + "raw_mask": { + "label": "Исходная маска" + } + }, + "mask": { + "label": "Маска объекта", + "description": "Полигон маски, используемый для предотвращения обнаружения объектов в определенных областях." + }, + "raw_mask": { + "label": "Исходная маска" + }, + "genai": { + "label": "Конфигурация объекта GenAI", + "description": "Опции GenAI для описания отслеживаемых объектов и отправки кадров на генерацию.", + "enabled": { + "label": "Включить GenAI", + "description": "По умолчанию включить GenAI генерацию описаний отслеживаемых объектов." + }, + "use_snapshot": { + "label": "Используйте снимки", + "description": "Используйте снимки объектов вместо миниатюр для создания описания GenAI." + }, + "prompt": { + "label": "Промпт описания", + "description": "Шаблон промпта по умолчанию для генерации описаний с помощью GenAI." + }, + "object_prompts": { + "label": "Промпты по объектам", + "description": "Промпты для отдельных объектов, чтобы настроить вывод GenAI для конкретных меток." + }, + "objects": { + "label": "Объекты GenAI", + "description": "Список меток объектов для отправки в GenAI по умолчанию." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, которые необходимо ввести для объектов, чтобы соответствовать критериям создания описания GenAI." + }, + "debug_save_thumbnails": { + "label": "Сохранить миниатюры", + "description": "Сохранять миниатюры, отправляемые в GenAI, для отладки и просмотра." + }, + "send_triggers": { + "label": "Триггеры GenAI", + "description": "Определяет, когда кадры должны отправляться на GenAI (по окончании, после обновлений и т. д.).", + "tracked_object_end": { + "label": "Отправить в конце", + "description": "Отправьте запрос на GenAI, когда отслеживаемый объект закончится." + }, + "after_significant_updates": { + "label": "Ранний триггер GenAI", + "description": "Отправьте запрос GenAI после указанного количества существенных обновлений отслеживаемого объекта." + } + }, + "enabled_in_config": { + "label": "Исходное состояние GenAI", + "description": "Указывает, был ли включен GenAI в исходной статической конфигурации." + } + }, + "filters_attribute": { + "label": "Фильтры атрибутов", + "description": "К обнаруженным атрибутам применяются фильтры для уменьшения ложных срабатываний (площадь, соотношение, достоверность).", + "min_area": { + "label": "Минимальная площадь атрибута", + "description": "Минимальная площадь ограничивающей рамки (в пикселях или процентах), необходимая для этого атрибута. Может быть в пикселях (целое число) или в процентах (плавающее значение от 0,000001 до 0,99)." + }, + "max_area": { + "label": "Максимальная площадь атрибута", + "description": "Максимальная площадь ограничивающей рамки (в пикселях или процентах), разрешенная для этого атрибута. Может быть в пикселях (целое число) или в процентах (плавающее значение от 0,000001 до 0,99)." + }, + "min_ratio": { + "label": "Минимальное соотношение сторон", + "description": "Минимальное соотношение ширины и высоты, необходимое для соответствия ограничивающей рамки." + }, + "max_ratio": { + "label": "Максимальное соотношение сторон", + "description": "Максимальное соотношение ширины и высоты, допускаемое для соответствия ограничивающей рамке." + }, + "threshold": { + "label": "Порог уверенности", + "description": "Средний порог достоверности обнаружения, необходимый для того, чтобы атрибут считался истинно положительным." + }, + "min_score": { + "label": "Минимальная уверенность", + "description": "Минимальная достоверность обнаружения одного кадра, необходимая для связи этого атрибута с его родительским объектом." + }, + "mask": { + "label": "Маска фильтра", + "description": "Координаты полигона, определяющие, где этот фильтр применяется в кадре." + }, + "raw_mask": { + "label": "Исходная маска" + } + } + }, + "record": { + "label": "Запись", + "description": "Настройки записи и хранения применяются к камерам, если они не переопределены для каждой камеры.", + "enabled": { + "label": "Включить запись", + "description": "Включить или отключить запись для всех камер; можно переопределить для каждой камеры." + }, + "expire_interval": { + "label": "Запись интервала очистки", + "description": "Минуты между проходами очистки, при которых удаляются просроченные сегменты записи." + }, + "continuous": { + "label": "Постоянное удержание", + "description": "Количество дней для хранения записей независимо от отслеживаемых объектов или движения. Установите значение 0, если вы хотите сохранять только записи предупреждений и обнаружений.", + "days": { + "label": "Дни хранения", + "description": "Дни хранения записей." + } + }, + "motion": { + "label": "Удержание движения", + "description": "Количество дней для хранения записей, вызванных движением, независимо от отслеживаемых объектов. Установите значение 0, если вы хотите сохранять только записи предупреждений и обнаружений.", + "days": { + "label": "Дни хранения", + "description": "Дни хранения записей." + } + }, + "detections": { + "label": "Сохранение обнаружения", + "description": "Настройки хранения записи для событий обнаружения, включая продолжительность до и после захвата.", + "pre_capture": { + "label": "Предварительная съемка секунд", + "description": "Количество секунд до события обнаружения, которое необходимо включить в запись." + }, + "post_capture": { + "label": "Секунды после захвата", + "description": "Количество секунд после события обнаружения, которое необходимо включить в запись." + }, + "retain": { + "label": "Сохранение событий", + "description": "Настройки хранения записей событий обнаружения.", + "days": { + "label": "Дни хранения", + "description": "Количество дней для хранения записей событий обнаружения." + }, + "mode": { + "label": "Режим хранения", + "description": "Режим сохранения: all (сохранить все сегменты), motion (сохранить сегменты с движением) или active_objects (сохранить сегменты с активными объектами)." + } + } + }, + "alerts": { + "label": "Сохранение оповещений", + "description": "Настройки хранения записи для событий оповещений, включая продолжительность до и после захвата.", + "pre_capture": { + "label": "Предварительная съемка секунд", + "description": "Количество секунд до события обнаружения, которое необходимо включить в запись." + }, + "post_capture": { + "label": "Секунды после захвата", + "description": "Количество секунд после события обнаружения, которое необходимо включить в запись." + }, + "retain": { + "label": "Сохранение событий", + "description": "Настройки хранения записей событий обнаружения.", + "days": { + "label": "Дни хранения", + "description": "Количество дней для хранения записей событий обнаружения." + }, + "mode": { + "label": "Режим хранения", + "description": "Режим сохранения: all (сохранить все сегменты), motion (сохранить сегменты с движением) или active_objects (сохранить сегменты с активными объектами)." + } + } + }, + "export": { + "label": "Экспортировать конфигурацию", + "description": "Настройки, используемые при экспорте записей, такие как замедленная съемка и аппаратное ускорение.", + "hwaccel_args": { + "label": "Экспортировать аргументы hwaccel", + "description": "Аргументы аппаратного ускорения, используемые для операций экспорта/перекодирования." + }, + "max_concurrent": { + "label": "Максимальный одновременный экспорт", + "description": "Максимальное количество заданий экспорта, обрабатываемых одновременно." + }, + "chapters": { + "label": "Метаданные глав для встраивания в экспортированные записи" + } + }, + "preview": { + "label": "Предварительный просмотр конфигурации", + "description": "Настройки, управляющие качеством предварительного просмотра записи, отображаемого в пользовательском интерфейсе.", + "quality": { + "label": "Предварительный просмотр качества", + "description": "Уровень качества предпросмотра (very_low, low, medium, high, very_high)." + } + }, + "enabled_in_config": { + "label": "Исходное состояние записи", + "description": "Указывает, была ли запись включена в исходной статической конфигурации." + } + }, + "review": { + "label": "Проверка", + "description": "\"Настройки, которые управляют оповещениями, обнаружениями и сводками обзора GenAI, используемыми пользовательским интерфейсом и хранилищем.", + "alerts": { + "label": "Конфигурация оповещений", + "description": "Настройки, для которых отслеживаемые объекты генерируют оповещения и как оповещения сохраняются.", + "enabled": { + "label": "Включить оповещения", + "description": "Включить или отключить генерацию оповещений для всех камер; можно переопределить для каждой камеры." + }, + "labels": { + "label": "Предупреждающие ярлыки", + "description": "Список меток объектов, которые квалифицируются как оповещения (например: машина, человек)." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, в которые должен войти объект, чтобы считаться оповещением; оставьте пустым, чтобы разрешить любую зону." + }, + "enabled_in_config": { + "label": "Исходное состояние оповещений", + "description": "Отслеживает, были ли оповещения изначально включены в статической конфигурации." + }, + "cutoff_time": { + "label": "Время окончания оповещений", + "description": "Секунды ожидания после отсутствия активности, вызывающей оповещение, прежде чем отключать оповещение." + } + }, + "detections": { + "label": "Конфигурация обнаружения", + "description": "Настройки, для которых отслеживаемые объекты генерируют обнаружения (без оповещения) и порядок сохранения обнаружений.", + "enabled": { + "label": "Включить обнаружение", + "description": "Включить или отключить события обнаружения для всех камер; можно переопределить для каждой камеры." + }, + "labels": { + "label": "Метки обнаружения", + "description": "\"Список меток объектов, которые квалифицируются как события обнаружения." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, в которые должен войти объект, чтобы считаться обнаруженным; оставьте пустым, чтобы разрешить любую зону." + }, + "cutoff_time": { + "label": "Время прекращения обнаружения", + "description": "Секунды ожидания после отсутствия активности, вызывающей обнаружение, прежде чем отключать обнаружение." + }, + "enabled_in_config": { + "label": "Исходное состояние обнаружений", + "description": "Отслеживает, были ли изначально включены обнаружения в статической конфигурации." + } + }, + "genai": { + "label": "Конфигурация GenAI", + "description": "Контролирует использование генеративного искусственного интеллекта для создания описаний и резюме элементов обзора.", + "enabled": { + "label": "Включить описания GenAI", + "description": "Включить или отключить описания и сводки GenAI для элементов проверки." + }, + "alerts": { + "label": "Включить GenAI для оповещений", + "description": "Используйте GenAI для создания описаний элементов оповещений." + }, + "detections": { + "label": "Включить GenAI для детекций", + "description": "Используйте GenAI для создания описаний элементов обнаружения." + }, + "image_source": { + "label": "Проверьте источник изображения", + "description": "\"Источник изображений, отправляемых на GenAI ('preview' или 'recordings'); 'recordings' использует кадры более высокого качества, но больше токенов." + }, + "additional_concerns": { + "label": "Дополнительные проблемы", + "description": "Список дополнительных проблем или примечаний, которые GenAI следует учитывать при оценке активности на этой камере." + }, + "debug_save_thumbnails": { + "label": "Сохранить миниатюры", + "description": "Сохраняйте миниатюры, которые отправляются поставщику GenAI для отладки и проверки." + }, + "enabled_in_config": { + "label": "Исходное состояние GenAI", + "description": "Отслеживает, была ли изначально включена проверка GenAI в статической конфигурации." + }, + "preferred_language": { + "label": "Предпочитаемый язык", + "description": "Предпочитаемый язык для запроса у провайдера GenAI сгенерированных ответов." + }, + "activity_context_prompt": { + "label": "Промпт контекста активности", + "description": "Пользовательский промпт, описывающий, какая активность считается подозрительной, а какая нет, для контекста сводок GenAI." + } + } + }, + "snapshots": { + "label": "Снимки", + "description": "Настройки снимков отслеживаемых объектов, генерируемых API для всех камер; можно переопределить для каждой камеры.", + "enabled": { + "label": "Включить снимки", + "description": "Включить или отключить сохранение снимков для всех камер; можно переопределить для каждой камеры." + }, + "timestamp": { + "label": "Наложение временной метки", + "description": "Наложение временной метки на снимки из API." + }, + "bounding_box": { + "label": "Наложение ограничивающей рамки", + "description": "Рисовать ограничивающие рамки отслеживаемых объектов на снимках из API." + }, + "crop": { + "label": "Обрезать снимок", + "description": "Обрезать снимки API по ограничивающей рамке обнаруженного объекта." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, в которые должен войти объект, чтобы снимок был сохранен." + }, + "height": { + "label": "Высота снимка", + "description": "Высота (в пикселях) для изменения размера снимков с API на; оставьте пустым, чтобы сохранить исходный размер." + }, + "retain": { + "label": "Хранение снимков", + "description": "Настройки хранения для снимков, включая дни по умолчанию и переопределения для каждого объекта.", + "default": { + "label": "Срок хранения по умолчанию", + "description": "Число дней по умолчанию для хранения снимков." + }, + "objects": { + "label": "Сохранение объекта", + "description": "Переопределения дней хранения снимков для каждого объекта." + } + }, + "quality": { + "label": "Качество снимка", + "description": "Качество кодирования для сохраненных снимков (0–100)." + } + }, + "timestamp_style": { + "label": "Стиль временной метки", + "description": "Параметры стиля для временных меток в ленте, применяемых к представлению отладки и снимкам.", + "position": { + "label": "Позиция временной метки", + "description": "Положение отметки времени на изображении (tl/tr/bl/br)." + }, + "format": { + "label": "Формат временной метки", + "description": "Строка формата даты и времени, используемая для меток времени (коды формата даты и времени Python)." + }, + "color": { + "label": "Цвет временной метки", + "description": "Значения цвета RGB для текста метки времени (все значения от 0 до 255).", + "red": { + "label": "Красный", + "description": "Красный компонент (0–255) для цвета метки времени." + }, + "green": { + "label": "Зелёный", + "description": "Зеленый компонент (0–255) для цвета метки времени." + }, + "blue": { + "label": "Синий", + "description": "Синий компонент (0–255) для цвета метки времени." + } + }, + "thickness": { + "label": "Толщина временной метки", + "description": "Толщина линии текста метки времени." + }, + "effect": { + "label": "Эффект временной метки", + "description": "Визуальный эффект для текста метки времени (нет, сплошной, тень)." + } + }, + "classification": { + "label": "Классификация объектов", + "description": "Настройки моделей классификации, используемые для уточнения меток объектов или классификации состояний.", + "bird": { + "label": "Конфигурация классификации птиц", + "description": "Настройки, специфичные для моделей классификации птиц.", + "enabled": { + "label": "Классификация птиц", + "description": "Включить или отключить классификацию птиц." + }, + "threshold": { + "label": "Минимальный балл", + "description": "Минимальный классификационный балл, необходимый для принятия классификации птиц." + } + }, + "custom": { + "label": "Пользовательские модели классификации", + "description": "Конфигурация пользовательских моделей классификации, используемых для обнаружения объектов или состояний.", + "enabled": { + "label": "Включить модель", + "description": "Включить или отключить пользовательскую модель классификации." + }, + "name": { + "label": "Название модели", + "description": "Идентификатор используемой пользовательской модели классификации." + }, + "threshold": { + "label": "Порог оценки", + "description": "Порог оценки, используемый для изменения состояния классификации." + }, + "save_attempts": { + "label": "Сохранить попытки", + "description": "Сколько попыток классификации сохранять для UI недавних классификаций." + }, + "object_config": { + "objects": { + "label": "Классифицировать объекты", + "description": "Список типов объектов для классификации объектов." + }, + "classification_type": { + "label": "Тип классификации", + "description": "Примененный тип классификации: 'sub_label' (добавляет sub_label) или другие поддерживаемые типы." + } + }, + "state_config": { + "cameras": { + "label": "Классификация камер", + "description": "Обрезка для каждой камеры и настройки для классификации состояний.", + "crop": { + "label": "Область классификации", + "description": "Координаты обрезки для запуска классификации на этой камере." + } + }, + "motion": { + "label": "Запуск по движению", + "description": "Если включено, запускать классификацию при обнаружении движения внутри указанной области обрезки." + }, + "interval": { + "label": "Классификационный интервал", + "description": "Интервал (в секундах) между периодическими запусками классификации для определения состояния." + } + } + } + }, + "semantic_search": { + "label": "Семантический поиск", + "description": "Настройки семантического поиска, который строит и запрашивает эмбеддинги объектов для поиска похожих элементов.", + "enabled": { + "label": "Включить семантический поиск", + "description": "Включить или отключить семантический поиск." + }, + "reindex": { + "label": "Переиндексация при запуске", + "description": "Запустить полную переиндексацию исторических отслеживаемых объектов в базу эмбеддингов." + }, + "model": { + "label": "Модель семантического поиска или имя провайдера GenAI", + "description": "Модель эмбеддингов для семантического поиска (например, 'jinav1') или имя провайдера GenAI с ролью embeddings." + }, + "model_size": { + "label": "Размер модели", + "description": "Выберите размер модели; 'малая' работает на CPU, а для 'большая' обычно требуется GPU." + }, + "device": { + "label": "Устройство", + "description": "Это переопределение, нацеленное на конкретное устройство. См. https://onnxruntime.ai/docs/execution-providers/ для получения дополнительной информации." + }, + "triggers": { + "label": "Триггеры", + "description": "Действия и критерии соответствия для триггеров семантического поиска, специфичных для камеры.", + "friendly_name": { + "label": "Дружественное имя", + "description": "Необязательное понятное имя, отображаемое в пользовательском интерфейсе для этого триггера." + }, + "enabled": { + "label": "Включить этот триггер", + "description": "Включить или отключить этот триггер семантического поиска." + }, + "type": { + "label": "Тип триггера", + "description": "Тип триггера: 'thumbnail' (совпадение с изображением) или 'description' (совпадение с текстом)." + }, + "data": { + "label": "Содержимое триггера", + "description": "Текстовая фраза или идентификатор миниатюры для сопоставления с отслеживаемыми объектами." + }, + "threshold": { + "label": "Порог срабатывания", + "description": "Минимальный показатель сходства (0–1), необходимый для активации этого триггера." + }, + "actions": { + "label": "Триггерные действия", + "description": "Список действий при срабатывании триггера (notification, sub_label, attribute)." + } + } + }, + "face_recognition": { + "label": "Распознавание лиц", + "description": "Настройки обнаружения и распознавания лиц для всех камер; можно переопределить для каждой камеры.", + "enabled": { + "label": "Включить распознавание лиц", + "description": "Включить или отключить распознавание лиц для всех камер; можно переопределить для каждой камеры." + }, + "model_size": { + "label": "Размер модели", + "description": "Размер модели для эмбеддингов лиц (small/large); для large может потребоваться GPU." + }, + "unknown_score": { + "label": "Порог неизвестного лица", + "description": "Порог расстояния, ниже которого лицо считается потенциальным совпадением (выше = строже)." + }, + "detection_threshold": { + "label": "Порог обнаружения", + "description": "Минимальная достоверность обнаружения, необходимая для того, чтобы считать обнаружение лица действительным." + }, + "recognition_threshold": { + "label": "Порог распознавания", + "description": "Порог расстояния эмбеддингов лиц, при котором два лица считаются совпадающими." + }, + "min_area": { + "label": "Минимальная площадь лица", + "description": "Минимальная площадь (пиксели) обнаруженного лицевого окна, необходимая для попытки распознавания." + }, + "min_faces": { + "label": "Минимум лиц", + "description": "Минимальное число распознаваний лица перед применением распознанной второстепенной метки к человеку." + }, + "save_attempts": { + "label": "Сохранить попытки", + "description": "Число попыток распознавания лиц, сохраняемых для UI недавнего распознавания." + }, + "blur_confidence_filter": { + "label": "Фильтр достоверности размытия", + "description": "Корректирует оценки уверенности с учётом размытия изображения, чтобы снизить ложные срабатывания на лицах низкого качества." + }, + "device": { + "label": "Устройство", + "description": "Это переопределение, нацеленное на конкретное устройство. См. https://onnxruntime.ai/docs/execution-providers/ для получения дополнительной информации" + } + }, + "lpr": { + "label": "Распознавание номерных знаков", + "description": "Настройки распознавания номерных знаков, включая пороговые значения обнаружения, форматирование и известные номера.", + "enabled": { + "label": "Включить LPR", + "description": "Включить или отключить распознавание номерных знаков для всех камер; можно переопределить для каждой камеры." + }, + "model_size": { + "label": "Размер модели", + "description": "Размер модели, используемый для обнаружения/распознавания текста. Большинству пользователей следует использовать 'малая'." + }, + "detection_threshold": { + "label": "Порог обнаружения", + "description": "Порог достоверности обнаружения для запуска OCR на подозрительном номере." + }, + "min_area": { + "label": "Минимальная площадь номера", + "description": "Минимальная площадь номерного знака (в пикселях), необходимая для попытки распознавания." + }, + "recognition_threshold": { + "label": "Порог распознавания", + "description": "Порог уверенности, необходимый для присвоения распознанного текста номера как второстепенной метки." + }, + "min_plate_length": { + "label": "Мин. длина номера", + "description": "Минимальное число символов в распознанном номере, чтобы считать его действительным." + }, + "format": { + "label": "Regex формата номера", + "description": "Необязательное регулярное выражение для проверки распознанных строк номеров на соответствие ожидаемому формату." + }, + "match_distance": { + "label": "Допустимое расстояние совпадения", + "description": "Сколько несовпадающих символов допускается при сравнении обнаруженных номеров с известными." + }, + "known_plates": { + "label": "Известные номера", + "description": "Список номеров или регулярных выражений для особого отслеживания или оповещений." + }, + "enhancement": { + "label": "Уровень улучшения", + "description": "Уровень улучшения (0–10), применяемый к кропам номеров перед OCR; более высокие значения не всегда улучшают результат, уровни выше 5 могут работать только с ночными номерами — используйте осторожно." + }, + "debug_save_plates": { + "label": "Сохранять отладочные кропы номеров", + "description": "Сохранять кропы номерных знаков для отладки производительности LPR." + }, + "device": { + "label": "Устройство", + "description": "Это переопределение, нацеленное на конкретное устройство. См. https://onnxruntime.ai/docs/execution-providers/ для получения дополнительной информации" + }, + "replace_rules": { + "label": "Правила замены", + "description": "Правила замены регулярных выражений, используемые для нормализации обнаруженных строк номеров перед сопоставлением.", + "pattern": { + "label": "Шаблон регулярного выражения" + }, + "replacement": { + "label": "Строка замены" + } + }, + "expire_time": { + "label": "Время истечения (сек)", + "description": "Время в секундах, после которого невидимый номер удаляется из трекера (только для выделенных LPR-камер)." + } + }, + "camera_groups": { + "label": "Группы камер", + "description": "Конфигурация именованных групп камер, используемых для организации камер в пользовательском интерфейсе.", + "cameras": { + "label": "Список камер", + "description": "Массив имен камер, включенных в эту группу." + }, + "icon": { + "label": "Значок группы", + "description": "Значок, используемый для обозначения группы камер в пользовательском интерфейсе." + }, + "order": { + "label": "Порядок сортировки", + "description": "Числовой порядок, используемый для сортировки групп камер в пользовательском интерфейсе; большие числа появляются позже." + } + }, + "profiles": { + "label": "Профили", + "description": "Определения именованных профилей с понятными именами. Профили камер должны ссылаться на имена, определенные здесь.", + "friendly_name": { + "label": "Отображаемое имя", + "description": "Имя профиля, отображаемое в интерфейсе." + } + }, + "active_profile": { + "label": "Активный профиль", + "description": "Имя текущего активного профиля. Только runtime, не сохраняется в YAML." + }, + "camera_mqtt": { + "label": "MQTT", + "description": "Настройки публикации изображений в MQTT.", + "enabled": { + "label": "Отправить изображение", + "description": "Включить публикацию снимков объектов в MQTT-топики этой камеры." + }, + "timestamp": { + "label": "Добавить временную метку", + "description": "Наложение временной метки на изображения, опубликованные в MQTT." + }, + "bounding_box": { + "label": "Добавить ограничивающую рамку", + "description": "Рисовать ограничивающие рамки на изображениях, публикуемых в MQTT." + }, + "crop": { + "label": "Обрезать изображение", + "description": "Обрезать изображения, опубликованные в MQTT, до ограничивающей рамки обнаруженного объекта." + }, + "height": { + "label": "Высота изображения", + "description": "\"Высота (в пикселях) для изменения размера изображений, опубликованных через MQTT." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Зоны, в которые должен войти объект, чтобы изображение MQTT было опубликовано." + }, + "quality": { + "label": "Качество JPEG", + "description": "Качество JPEG для изображений, опубликованных в MQTT (0–100)." + } + }, + "camera_ui": { + "label": "Интерфейс камеры", + "description": "Порядок отображения и видимость этой камеры в UI. Порядок влияет на дашборд по умолчанию. Для более гибкого управления используйте группы камер.", + "order": { + "label": "Порядок в интерфейсе", + "description": "Числовой порядок сортировки камеры в UI (дашборд по умолчанию и списки); большие числа отображаются позже." + }, + "dashboard": { + "label": "Показывать в интерфейсе", + "description": "Показывать ли эту камеру везде в интерфейсе Frigate. При отключении для повторного отображения потребуется вручную изменить конфиг." + }, + "review": { + "label": "Показывать в проверке", + "description": "Показывать ли эту камеру в проверке (страница проверки и её фильтр камер, проверка движения и история)." + } + }, + "onvif": { + "label": "ONVIF", + "description": "Соединение ONVIF и настройки автослежения PTZ для этой камеры.", + "host": { + "label": "Хост ONVIF", + "description": "Хост (и дополнительная схема) для службы ONVIF для этой камеры." + }, + "port": { + "label": "Порт ONVIF", + "description": "Номер порта для службы ONVIF." + }, + "user": { + "label": "Имя пользователя ONVIF", + "description": "Имя пользователя для аутентификации ONVIF; на некоторых устройствах требуется администратор для ONVIF." + }, + "password": { + "label": "Пароль ONVIF", + "description": "Пароль для аутентификации ONVIF." + }, + "tls_insecure": { + "label": "Отключить проверку TLS", + "description": "Пропустить проверку TLS и отключить дайджест-аутентификацию для ONVIF (небезопасно; использовать только в безопасных сетях)." + }, + "profile": { + "label": "Профиль ONVIF", + "description": "Конкретный медиа-профиль ONVIF, используемый для элемента управления PTZ, соответствующий токену или имени. Если этот параметр не установлен, автоматически выбирается первый профиль с действительной конфигурацией PTZ." + }, + "autotracking": { + "label": "Автотрекинг", + "description": "Автоматически отслеживайте движущиеся объекты и удерживайте их в центре кадра с помощью движений камеры PTZ.", + "enabled": { + "label": "Включить автотрекинг", + "description": "Включить или отключить автоматическое PTZ-сопровождение обнаруженных объектов." + }, + "calibrate_on_startup": { + "label": "Калибровка при запуске", + "description": "Измерьте скорость двигателя PTZ при запуске, чтобы повысить точность отслеживания. Frigate обновит конфигурацию с помощью motion_weights после калибровки." + }, + "zooming": { + "label": "Режим масштабирования", + "description": "Управляет масштабированием: отключенный (только панорамирование и наклон), полный (наиболее совместимый режим) или условный (одновременное панорамирование, наклон и масштабирование)." + }, + "zoom_factor": { + "label": "Уровень масштабирования", + "description": "Уровень зума на отслеживаемых объектах. Меньшие значения оставляют в кадре больше сцены; большие приближают сильнее, но могут потерять объект. Значения от 0.1 до 0.75." + }, + "track": { + "label": "Отслеживаемые объекты", + "description": "Список типов объектов, которые должны запускать автоматическое отслеживание." + }, + "required_zones": { + "label": "Обязательные зоны", + "description": "Прежде чем начнется автоматическое слежение, объекты должны войти в одну из этих зон." + }, + "return_preset": { + "label": "Вернуть предустановку", + "description": "Имя предустановки ONVIF, настроенное в прошивке камеры, к которому можно вернуться после завершения отслеживания." + }, + "timeout": { + "label": "Тайм-аут возврата", + "description": "Подождите это количество секунд после потери отслеживания, прежде чем возвращать камеру в заданное положение." + }, + "movement_weights": { + "label": "Вес движения", + "description": "Калибровочные значения автоматически генерируются при калибровке камеры. Не вносите изменения вручную." + }, + "enabled_in_config": { + "label": "Исходное состояние автотрека", + "description": "Внутреннее поле для отслеживания того, включено ли в конфигурации автоотслеживание." + } + }, + "ignore_time_mismatch": { + "label": "Игнорировать несоответствие времени", + "description": "Игнорировать расхождение времени между камерой и сервером Frigate при обмене по ONVIF." } } } diff --git a/web/public/locales/ru/views/settings.json b/web/public/locales/ru/views/settings.json index cee2a74993..afb63ff6ef 100644 --- a/web/public/locales/ru/views/settings.json +++ b/web/public/locales/ru/views/settings.json @@ -31,7 +31,7 @@ "classification": "Распознавание", "enrichments": "Обогащения", "triggers": "Триггеры", - "cameraManagement": "Управление", + "cameraManagement": "Управление камерой", "cameraReview": "Обзор", "roles": "Роли", "general": "Общее", @@ -70,7 +70,28 @@ "cameraConfigReview": "Обзор событий", "cameraAudioEvents": "Обнаружение аудио", "cameraAudioTranscription": "Расшифровка аудиозаписи", - "cameraNotifications": "Уведомления" + "cameraNotifications": "Уведомления", + "globalRecording": "Запись", + "globalSnapshots": "Снимки", + "globalFfmpeg": "FFmpeg", + "globalMotion": "Обнаружение движения", + "globalObjects": "Объекты", + "globalLivePlayback": "Воспроизведение в реальном времени", + "globalTimestampStyle": "Стиль временной метки", + "systemDatabase": "База данных", + "systemTls": "TLS", + "cameraLivePlayback": "Воспроизведение в реальном времени", + "cameraBirdseye": "Birdseye", + "cameraFaceRecognition": "Распознавание лиц", + "cameraLpr": "Распознавание номерных знаков", + "cameraMqttConfig": "MQTT", + "cameraOnvif": "ONVIF", + "cameraUi": "Интерфейс камеры", + "cameraTimestampStyle": "Стиль временной метки", + "cameraMqtt": "MQTT камеры", + "maintenance": "Обслуживание", + "mediaSync": "Синхронизация медиа", + "regionGrid": "Сетка регионов" }, "dialog": { "unsavedChanges": { @@ -260,7 +281,7 @@ "hide": "Скрыть пароль", "requirements": { "title": "Требования к паролю:", - "length": "Не менее 8 символов", + "length": "Не менее 12 символов", "uppercase": "Как минимум одна заглавная буква", "digit": "Как минимум одна цифра", "special": "Хотя бы один специальный символ (!@#$%^&*(),.?\":{}|<>)" @@ -328,7 +349,8 @@ "notificationUnavailable": { "documentation": "Читать документацию", "title": "Уведомления недоступны", - "desc": "Веб-уведомления требуют защищённого контекста (https://…). Это ограничение браузера. Получите безопасный доступ к Frigate, чтобы использовать уведомления." + "desc": "Веб-уведомления требуют защищённого контекста (https://…). Это ограничение браузера. Получите безопасный доступ к Frigate, чтобы использовать уведомления.", + "descPwa": "На iOS веб-уведомления доступны только в том случае, если Frigate установлен на главном экране. Откройте меню Поделиться, выберите Добавить на главный экран, затем откройте Frigate с помощью нового значка, чтобы зарегистрировать это устройство для уведомлений." }, "email": { "title": "Email", @@ -498,6 +520,10 @@ }, "toast": { "success": "Зона ({{zoneName}}) сохранена." + }, + "enabled": { + "title": "Включено", + "description": "Активна ли эта зона и включена ли она в файле конфигурации. Если отключено, его нельзя включить с помощью MQTT. Отключенные зоны игнорируются во время выполнения." } }, "motionMasks": { @@ -527,6 +553,12 @@ "title": "{{polygonName}} сохранена.", "noName": "Маска движения сохранена." } + }, + "defaultName": "Маска движения {{number}}", + "name": { + "title": "Имя", + "description": "Необязательное отображаемое имя для этой маски движения.", + "placeholder": "Введите имя…" } }, "filter": { @@ -575,12 +607,32 @@ }, "reset": { "label": "Удалить все точки" + }, + "type": { + "zone": "зона", + "motion_mask": "маска движения", + "object_mask": "маска объекта" + }, + "revertOverride": { + "title": "Вернуться к базовой конфигурации", + "desc": "Это приведет к удалению переопределения профиля для {{type}} {{name}} и возврату к базовой конфигурации." } }, "speed": { "error": { "mustBeGreaterOrEqualTo": "Порог скорости должен быть не меньше 0,1." } + }, + "id": { + "error": { + "mustNotBeEmpty": "Идентификатор не должен быть пустым.", + "alreadyExists": "Маска с таким идентификатором уже существует для этой камеры." + } + }, + "name": { + "error": { + "mustNotBeEmpty": "Имя не должно быть пустым." + } } }, "toast": { @@ -615,11 +667,26 @@ "title": "{{polygonName}} сохранена.", "noName": "Маска объектов сохранена." } + }, + "name": { + "title": "Имя", + "description": "Необязательное отображаемое имя для этой маски объекта.", + "placeholder": "Введите имя…" } }, "restart_required": "Требуется перезапуск (изменены маски/зоны)", - "objectMaskLabel": "Маска объекта {{number}} {{label}}", - "motionMaskLabel": "Маска движения {{number}}" + "objectMaskLabel": "Маска объекта {{number}}", + "motionMaskLabel": "Маска движения {{number}}", + "disabledInConfig": "Элемент отключен в файле конфигурации", + "addDisabledProfile": "Сначала добавьте в базовую конфигурацию, затем переопределите в профиле", + "profileBase": "(база)", + "profileOverride": "(переопределить)", + "masks": { + "enabled": { + "title": "Включено", + "description": "Включена ли эта маска в файле конфигурации. Если отключено, его нельзя включить с помощью MQTT. Отключенные маски игнорируются во время выполнения." + } + } }, "motionDetectionTuner": { "desc": { @@ -708,13 +775,13 @@ "snapshotConfig": { "documentation": "Читать документацию", "title": "Настройки снимков", - "cleanCopyWarning": "У некоторых камер включены снимки (snapshots), но отключена опция чистой копии (clean copy). Чтобы иметь возможность отправлять изображения с этих камер в Frigate+, необходимо включить параметр clean_copy в конфигурации снимков.", + "cleanCopyWarning": "У некоторых камер снимки отключены", "table": { "cleanCopySnapshots": "Снимки clean_copy", "camera": "Камера", "snapshots": "Снимки" }, - "desc": "Отправка в Frigate+ требует, чтобы в вашей конфигурации были включены как снимки (snapshots), так и снимки clean_copy." + "desc": "Отправка в Frigate+ требует, чтобы в вашей конфигурации были включены снимки." }, "title": "Настройки Frigate+", "apiKey": { @@ -729,7 +796,7 @@ "modelType": "Тип модели", "trainDate": "Дата обучения", "error": "Не удалось загрузить информацию о модели", - "availableModels": "Доступные модели", + "availableModels": "Доступные Frigate+ модели", "loadingAvailableModels": "Загрузка доступных моделей…", "modelSelect": "Здесь можно выбрать ваши доступные модели на Frigate+. Обратите внимание, что могут быть выбраны только модели, совместимые с текущей конфигурацией детектора.", "baseModel": "Базовая модель", @@ -740,6 +807,14 @@ "plusModelType": { "baseModel": "Базовая модель", "userModel": "Дообученная" + }, + "noModelLoaded": "Ни одна модель Frigate+ в настоящее время не загружена.", + "selectModel": "Выберите модель", + "noModelsAvailable": "Нет доступных моделей", + "filter": { + "ariaLabel": "Фильтровать модели по типу", + "baseModels": "Базовые модели", + "fineTunedModels": "Настроенные модели" } }, "toast": { @@ -747,7 +822,15 @@ "error": "Не удалось сохранить изменения конфигурации: {{errorMessage}}" }, "restart_required": "Требуется перезапуск (изменена модель Frigate+)", - "unsavedChanges": "Настройки Frigate+ не сохранены" + "unsavedChanges": "Настройки Frigate+ не сохранены", + "description": "Frigate+ — это служба подписки, которая предоставляет доступ к дополнительным функциям и возможностям вашего экземпляра Frigate, включая возможность использовать пользовательские модели обнаружения объектов, обученные на ваших собственных данных. Здесь вы можете управлять настройками модели Frigate+.", + "cardTitles": { + "api": "API", + "currentModel": "Текущая модель", + "otherModels": "Другие модели", + "configuration": "Конфигурация" + }, + "changeInDetectorsAndModel": "Изменить модель" }, "enrichments": { "title": "Настройки обогащения", @@ -994,7 +1077,7 @@ "brands": { "reolink-rtsp": "RTSP от Reolink не рекомендуется. Включите HTTP в настройках камеры и перезапустите мастер настройки камеры." }, - "customUrlRtspRequired": "Пользовательские URL должны начинаться с \"rtsp://\". Для потоков камер, не использующих RTSP, требуется ручная настройка." + "customUrlRtspRequired": "Пользовательские URL должны начинаться с \"rtsp://\" или \"rtsps://\". Для потоков камер, не использующих RTSP, требуется ручная настройка." }, "docs": { "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras" @@ -1158,7 +1241,8 @@ }, "hikvision": { "substreamWarning": "Подпоток 1 заблокирован на низком разрешении. Многие камеры Hikvision поддерживают дополнительные подпотоки, которые необходимо включить в настройках камеры. Рекомендуется проверить и использовать эти потоки, если они доступны." - } + }, + "resolutionUnknown": "Разрешение этого потока проверить не удалось. Вам следует вручную установить разрешение обнаружения в настройках или вашей конфигурации." } } }, @@ -1231,11 +1315,13 @@ "selectCamera": "Выбрать камеру", "backToSettings": "Вернуться к настройкам камеры", "streams": { - "title": "Включить / Отключить камеры", + "title": "Состояние и характеристики камеры", "desc": "Временно отключить камеру до перезапуска Frigate. Отключение камеры полностью останавливает обработку потоков этой камеры в Frigate. Обнаружение, запись и отладка будут недоступны.
Примечание: Это не отключает рестриминг go2rtc.", "label": "Состояние камеры", "status": { - "disabled": "Отключено" + "disabled": "Отключено", + "on": "Вкл", + "off": "Выкл" }, "enableSuccess": "Включена {{cameraName}}. Перезапустите Frigate для применения изменений.", "disableSuccess": "Отключено {{cameraName}} и сохранено в конфигурации.", @@ -1252,8 +1338,12 @@ "webuiUrlHelp": "URL-адрес для посещения веб-UI камеры непосредственно с отладочного меню. Оставьте пустым, чтобы отключить ссылку.", "webuiUrlInvalid": "Должен быть действительный URL (например, https://example.com).", "dashboardLabel": "Показывать на Live dashboard", - "dashboardHelp": "Показывать эту камеру на Live dashboard." - } + "dashboardHelp": "Отобразить эту камеру на панели мониторинга «Все камеры» в режиме реального времени по умолчанию. Она остается доступной везде, включая группы камер.", + "reviewLabel": "Показать в обзоре", + "reviewHelp": "Покажите эту камеру в обзоре, включая фильтр камеры, обзор движения и просмотр истории." + }, + "description": "Задайте рабочее состояние для каждой камеры.

Вкл: потоки обрабатываются в обычном режиме.
Выкл: временно приостанавливает обработку. Не сохраняется между перезапусками Frigate.
Отключено: останавливает обработку и сохраняет изменение в конфигурации. Для повторного включения отключённой камеры требуется перезапуск.

Примечание: отключение не влияет на рестримы go2rtc.

Перетащите маркер, чтобы изменить порядок активных камер в интерфейсе, включая панель мониторинга Live и списки выбора камер.", + "disabledSubheading": "Отключено в конфигурации" }, "cameraConfig": { "add": "Добавить камеру", @@ -1287,7 +1377,119 @@ "deleteCameraDialog": { "confirmWarning": "Удаление {{cameraName}} не может быть отменено.", "success": "Камера {{cameraName}} успешно удалена", - "error": "Не удалось удалить камеру {{cameraName}}" + "error": "Не удалось удалить камеру {{cameraName}}", + "description": "Удаление камеры приведет к безвозвратному удалению всех записей, отслеживаемых объектов и конфигурации этой камеры. Любые потоки go2rtc, связанные с этой камерой, возможно, придется удалить вручную.", + "selectPlaceholder": "Выберите камеру…", + "confirmTitle": "Вы уверены?", + "deleteExports": "Также удалите экспорт для этой камеры", + "confirmButton": "Удалить навсегда", + "title": "Удалить камеру" + }, + "deleteCamera": "Удалить камеру", + "description": "Добавляйте, редактируйте и удаляйте камеры, управляйте состоянием каждой камеры и настраивайте переопределения для профилей и типа камеры. Чтобы настроить потоки, обнаружение, движение и другие параметры камеры, выберите нужный раздел в конфигурации камеры.", + "profiles": { + "title": "Переопределения профиля камеры", + "selectLabel": "Выберите профиль", + "description": "Настройте, какие камеры будут включаться или выключаться при активации профиля. Камеры, для которых установлено значение «Наследовать», сохраняют состояние по умолчанию.", + "inherit": "Наследовать", + "on": "Вкл", + "off": "Выкл" + }, + "cameraType": { + "title": "Тип камеры", + "label": "Тип камеры", + "description": "Установите тип для каждой камеры. Специальные камеры LPR — это одноцелевые камеры с мощным оптическим зумом для захвата номерных знаков удаленных транспортных средств. Большинство камер должны использовать камеры обычного типа, если только камера не предназначена специально для LPR и не обеспечивает четкое изображение номерных знаков.", + "normal": "Нормальный", + "dedicatedLpr": "Выделенный LPR", + "saveSuccess": "Обновлен тип камеры для {{cameraName}}. Перезапустите Frigate, чтобы применить изменения." + }, + "clone": { + "sectionTitle": "Настройки клонирования", + "sectionDescription": "Скопируйте конфигурацию с одной камеры на другую камеру или на новую.", + "button": "Настройки клонирования", + "title": "Клонировать настройки камеры", + "description": "Скопируйте конфигурацию камеры на одну или несколько других камер либо на новую камеру. Идентичность (имя, отображаемое имя, URL веб-интерфейса, порядок отображения) никогда не копируется.", + "source": { + "label": "Исходная камера", + "placeholder": "Выберите исходную камеру", + "required": "Выберите исходную камеру" + }, + "target": { + "legend": "Цель", + "newRadio": "Новая камера", + "newNameLabel": "Имя камеры", + "newNamePlaceholder": "например, back_door или Back Door", + "newNameRequired": "Название камеры обязательно.", + "newNameInvalid": "Неверное имя камеры", + "newNameCollision": "Камера с таким названием уже существует", + "newStreamsForced": "Потоки всегда копируются для новой камеры.", + "existingCamerasRadio": "Существующие камеры", + "allCameras": "Все камеры", + "existingPlaceholder": "Выберите хотя бы одну камеру", + "existingDisabled": "Нет других камер для копирования" + }, + "categories": { + "legend": "Настройки для клонирования", + "description": "Выберите, какие настройки копировать с исходной камеры.", + "selectAll": "Выбрать всё", + "selectNone": "Ничего не выбрать", + "resetDefaults": "Сбросить настройки по умолчанию", + "general": "Общие", + "spatial": "Пространственные настройки", + "streams": "Потоки", + "spatialWarningTitle": "Несоответствие разрешения", + "spatialWarning": "Разрешение обнаружения исходной камеры {{srcCamera}} ({{srcWidth}}×{{srcHeight}}) отличается от: {{cameras}}. На этих камерах полигоны могут не совпадать. Эти значения по умолчанию отключены; включить копирование как есть.", + "restartHint": "Требуется перезагрузка", + "items": { + "record": "Запись", + "snapshots": "Снимки", + "review": "Обзор событий", + "motion": "Обнаружение движения", + "objects": "Объекты", + "audio": "Обнаружение аудио", + "audio_transcription": "Расшифровка аудио", + "notifications": "Уведомления", + "birdseye": "Birdseye", + "mqtt": "MQTT", + "timestamp_style": "Стиль временной метки", + "onvif": "ONVIF", + "lpr": "Распознавание номерных знаков", + "face_recognition": "Распознавание лиц", + "semantic_search": "Семантический поиск", + "genai": "Генеративный ИИ", + "type": "Тип камеры (обычная / выделенная LPR)", + "profiles": "Профили", + "detect": "Определить размеры", + "zones": "Зоны", + "motion_mask": "Маски движения", + "object_masks": "Маски объектов", + "ffmpeg_live": "Стрим URLs и роли" + } + }, + "footer": { + "changeCount_one": "Изменение {{count}} будет применено", + "changeCount_few": "Изменение {{count}} будет применено", + "changeCount_many": "Изменение {{count}} будет применено", + "restartNeeded": "Для некоторых изменений потребуется перезагрузка.", + "liveOnly": "Все изменения вступят в силу без перезагрузки.", + "submit": "Клонировать", + "submitting": "Клонирование…" + }, + "toast": { + "success": "Настройки скопированы в {{cameraName}}.", + "successWithRestart": "Настройки скопированы в {{cameraName}}. Перезапустите Frigate, чтобы применить все изменения.", + "successMulti_one": "Настройки скопированы в {{count}} камеру", + "successMulti_few": "Настройки скопированы в {{count}} камеры", + "successMulti_many": "Настройки скопированы в {{count}} камер", + "successMultiWithRestart_one": "Настройки скопированы в {{count}} камеру. Перезапустите Frigate, чтобы применить все изменения.", + "successMultiWithRestart_few": "Настройки скопированы в {{count}} камеры. Перезапустите Frigate, чтобы применить все изменения.", + "successMultiWithRestart_many": "Настройки скопированы в {{count}} камер. Перезапустите Frigate, чтобы применить все изменения.", + "partialFailure": "Применены {{successCount}} разделов; Ошибка «{{failedSection}}»: {{errorMessage}}", + "partialFailureMulti": "Скопировано на {{successCount}}камеру(ы); не удалось для {{failed}}: {{errorMessage}}", + "newCameraPartialFailure": "Камера {{cameraName}} создана, но некоторые настройки не удалось скопировать: {{errorMessage}}", + "sourceMissing": "Исходная камера больше не существует", + "submitError": "Не удалось клонировать камеру: {{errorMessage}}" + } } }, "cameraReview": { @@ -1331,6 +1533,363 @@ "overriddenGlobal": "Перезаписано (глобально)", "overriddenGlobalTooltip": "Эта камера перезаписывает глобальные настройки в этой секции", "overriddenBaseConfig": "Перезаписано (базовые настройки)", - "overriddenBaseConfigTooltip": "Перезаписи настроек профиля {{profile}} в этой секции" + "overriddenBaseConfigTooltip": "Перезаписи настроек профиля {{profile}} в этой секции", + "overriddenGlobalHeading_one": "Эта камера переопределяет {{count}} поле из глобальной конфигурации:", + "overriddenGlobalHeading_few": "Эта камера переопределяет {{count}} поля из глобальной конфигурации:", + "overriddenGlobalHeading_many": "Эта камера переопределяет {{count}} полей из глобальной конфигурации:", + "overriddenGlobalNoDeltas": "Эта камера переопределяет глобальную конфигурацию, но значения полей не отличаются.", + "overriddenBaseConfigHeading_one": "Профиль {{profile}} переопределяет {{count}} поле из базовой конфигурации:", + "overriddenBaseConfigHeading_few": "Профиль {{profile}} переопределяет {{count}} поля из базовой конфигурации:", + "overriddenBaseConfigHeading_many": "Профиль {{profile}} переопределяет {{count}} полей из базовой конфигурации:", + "overriddenBaseConfigNoDeltas": "Профиль {{profile}} переопределяет этот раздел, но значения полей не отличаются от базовой конфигурации.", + "overriddenInCameras": { + "label_one": "Переопределено в {{count}} камере", + "label_few": "Переопределено в {{count}} камерах", + "label_many": "Переопределено в {{count}} камерах", + "tooltip_one": "{{count}} камера переопределяет значения в этом разделе. Нажмите, чтобы увидеть подробности.", + "tooltip_few": "{{count}} камеры переопределяет значения в этом разделе. Нажмите, чтобы увидеть подробности.", + "tooltip_many": "{{count}} камер переопределяет значения в этом разделе. Нажмите, чтобы увидеть подробности.", + "heading_one": "В этом глобальном разделе есть поля, переопределённые в {{count}} камере.", + "heading_few": "В этом глобальном разделе есть поля, переопределённые в {{count}} камерах.", + "heading_many": "В этом глобальном разделе есть поля, переопределённые в {{count}} камерах.", + "othersField_one": "{{count}} другой", + "othersField_few": "{{count}} других", + "othersField_many": "{{count}} других", + "profilePrefix": "Профиль {{profile}}: {{fields}}" + } + }, + "menuDot": { + "overrideGlobal": "Этот раздел переопределяет глобальную конфигурацию", + "overrideProfile": "Этот раздел переопределён профилем {{profile}}", + "unsaved": "В этом разделе есть несохранённые изменения" + }, + "saveAllPreview": { + "title": "Изменения для сохранения", + "triggerLabel": "Просмотр ожидающих изменений", + "empty": "Нет ожидающих изменений.", + "scope": { + "label": "Область", + "global": "Глобальная", + "camera": "Камера: {{cameraName}}" + }, + "profile": { + "label": "Профиль" + }, + "field": { + "label": "Поле" + }, + "value": { + "label": "Новое значение", + "reset": "Сбросить" + } + }, + "timestampPosition": { + "tl": "Сверху слева", + "tr": "Сверху справа", + "bl": "Снизу слева", + "br": "Снизу справа" + }, + "detectorsAndModel": { + "title": "Детекторы и модель", + "description": "Настройте бэкенд детектора, который выполняет обнаружение объектов, и используемую модель. Изменения сохраняются вместе, чтобы детектор и модель оставались согласованными.", + "cardTitles": { + "detector": "Оборудование детектора", + "model": "Модель обнаружения" + }, + "tabs": { + "plus": "Frigate+", + "custom": "Пользовательская модель" + }, + "mismatch": { + "warning": "Текущая модель Frigate+ «{{model}}» требует детектор {{required}}. Выберите совместимую модель ниже или переключитесь на пользовательскую модель перед сохранением." + }, + "plusModel": { + "requiresDetector": "Требуется: {{detector}}", + "noModelSelected": "Выберите модель Frigate+" + }, + "toast": { + "saveSuccess": "Настройки детекторов и модели сохранены. Перезапустите Frigate, чтобы применить изменения.", + "saveError": "Не удалось сохранить настройки детектора и модели" + }, + "unsavedChanges": "Несохранённые изменения детектора и модели", + "restartRequired": "Требуется перезапуск (изменён детектор или модель)" + }, + "maintenance": { + "title": "Обслуживание", + "sync": { + "title": "Синхронизация медиа", + "desc": "Frigate периодически очищает медиафайлы по расписанию в соответствии с вашей конфигурацией хранения. Во время работы Frigate нормально видеть несколько потерянных файлов. Используйте эту функцию, чтобы удалить с диска потерянные медиафайлы, на которые больше нет ссылок в базе данных.", + "started": "Синхронизация мультимедиа началась.", + "alreadyRunning": "Задание синхронизации уже запущено", + "error": "Не удалось начать синхронизацию", + "currentStatus": "Статус", + "jobId": "Идентификатор процесса", + "startTime": "Время начала", + "endTime": "Конец времени", + "statusLabel": "Статус", + "results": "Результаты", + "errorLabel": "Ошибка", + "mediaTypes": "Типы носителей", + "allMedia": "Все носители", + "dryRun": "Пробный прогон", + "dryRunEnabled": "Никакие файлы не будут удалены", + "dryRunDisabled": "Файлы будут удалены", + "force": "Принудительно", + "forceDesc": "Обойти порог безопасности и завершить синхронизацию, даже если будет удалено более 50% файлов.", + "verbose": "Детали", + "verboseDesc": "Запишите полный список потерянных файлов на диск для просмотра.", + "running": "Синхронизация выполняется…", + "start": "Начать синхронизацию", + "inProgress": "Синхронизация выполняется. Эта страница отключена.", + "status": { + "queued": "В очереди", + "running": "Выполняется", + "completed": "Завершено", + "failed": "Ошибка", + "notRunning": "Не выполняется" + }, + "resultsFields": { + "filesChecked": "Файлы проверены", + "orphansFound": "Найдены потерянные файлы", + "orphansDeleted": "Удалены потерянные файлы", + "aborted": "Прервано. Удаление превысит порог безопасности.", + "error": "Ошибка", + "totals": "Итоги" + }, + "event_snapshots": "Снимки отслеживаемых объектов", + "event_thumbnails": "Миниатюры отслеживаемых объектов", + "review_thumbnails": "Обзор миниатюр", + "previews": "Предпросмотры", + "exports": "Экспорт", + "recordings": "Записи" + }, + "regionGrid": { + "title": "Сетка регионов", + "desc": "Сетка регионов — это оптимизация, которая запоминает, где в кадре камеры обычно появляются объекты разного размера. Frigate использует эти данные, чтобы эффективнее подбирать размер областей обнаружения. Сетка автоматически строится со временем на основе данных отслеживаемых объектов.", + "clear": "Очистить сетку регионов", + "clearConfirmTitle": "Очистить сетку регионов", + "clearConfirmDesc": "Очищать сетку регионов не рекомендуется, если только вы недавно не изменили размер модели детектора или не изменили физическое положение камеры и не возникли проблемы с отслеживанием объектов. Сетка будет автоматически перестраиваться со временем по мере отслеживания объектов. Чтобы изменения вступили в силу, требуется перезапуск Frigate.", + "clearSuccess": "Сетка регионов успешно очищена", + "clearError": "Не удалось очистить сетку регионов", + "restartRequired": "Требуется перезапуск, чтобы изменения сетки регионов вступили в силу" + } + }, + "configForm": { + "global": { + "title": "Глобальные настройки", + "description": "Эти настройки применяются ко всем камерам, если они не переопределены в настройках конкретной камеры." + }, + "camera": { + "title": "Настройки камеры", + "description": "Эти настройки применяются только к этой камере и переопределяют глобальные настройки.", + "noCameras": "Нет доступных камер" + }, + "advancedSettingsCount": "Расширенные настройки ({{count}})", + "advancedCount": "Расширенный ({{count}})", + "showAdvanced": "Показать дополнительные настройки", + "tabs": { + "sharedDefaults": "Общие настройки по умолчанию", + "system": "Система", + "integrations": "Интеграции" + }, + "additionalProperties": { + "keyLabel": "Ключ", + "valueLabel": "Значение", + "keyPlaceholder": "Новый ключ", + "remove": "Удалить", + "providerNameLabel": "Имя провайдера", + "providerNamePlaceholder": "например, openai", + "variableNameLabel": "Имя переменной", + "variableNamePlaceholder": "например, MY_VARIABLE", + "loggerNameLabel": "Имя логгера", + "loggerNamePlaceholder": "например, frigate.record", + "keyPatternError": "Используйте только буквы, цифры, дефисы и подчёркивания (без пробелов)" + }, + "knownPlates": { + "namePlaceholder": "например, Машина жены", + "platePlaceholder": "Номерной знак или regex" + }, + "liveStreams": { + "streamNameLabel": "Название потока", + "streamNamePlaceholder": "например, основной поток HD", + "go2rtcStreamLabel": "go2rtc поток", + "go2rtcStreamPlaceholder": "Выберите поток go2rtc", + "go2rtcStreamSearch": "Найдите или введите название потока…", + "noGo2rtcStreams": "Потоки go2rtc не настроены", + "availableStreams": "Доступные потоки", + "useCustom": "Используйте «{{value}}»", + "addStream": "Добавить поток" + }, + "timezone": { + "defaultOption": "Использовать часовой пояс браузера" + }, + "roleMap": { + "empty": "Нет сопоставлений ролей", + "roleLabel": "Роль", + "groupsLabel": "Группы", + "addMapping": "Добавить сопоставление ролей", + "remove": "Удалить" + }, + "ffmpegArgs": { + "preset": "Предустановка", + "manual": "Ручные аргументы", + "inherit": "Наследовать настройки камеры", + "none": "Нет", + "useGlobalSetting": "Наследовать от глобальной настройки", + "selectPreset": "Выберите предустановку", + "manualPlaceholder": "Введите аргументы FFmpeg", + "presetLabels": { + "preset-rpi-64-h264": "Raspberry Pi (H.264)", + "preset-rpi-64-h265": "Raspberry Pi (H.265)", + "preset-vaapi": "VAAPI (Intel/AMD GPU)", + "preset-intel-qsv-h264": "Intel QuickSync (H.264)", + "preset-intel-qsv-h265": "Intel QuickSync (H.265)", + "preset-nvidia": "NVIDIA GPU", + "preset-jetson-h264": "NVIDIA Jetson (H.264)", + "preset-jetson-h265": "NVIDIA Jetson (H.265)", + "preset-rkmpp": "Rockchip RKMPP", + "preset-http-jpeg-generic": "HTTP JPEG (универсальный)", + "preset-http-mjpeg-generic": "HTTP MJPEG (универсальный)", + "preset-http-reolink": "HTTP — камеры Reolink", + "preset-rtmp-generic": "RTMP (универсальный)", + "preset-rtsp-generic": "RTSP (универсальный)", + "preset-rtsp-restream": "RTSP — рестрим из go2rtc", + "preset-rtsp-restream-low-latency": "RTSP — рестрим из go2rtc (низкая задержка)", + "preset-rtsp-udp": "RTSP — UDP", + "preset-rtsp-blue-iris": "RTSP — Blue Iris", + "preset-record-generic": "Запись (универсальная, без звука)", + "preset-record-generic-audio-copy": "Запись (универсальная + копирование аудио)", + "preset-record-generic-audio-aac": "Запись (универсальная + аудио в AAC)", + "preset-record-mjpeg": "Запись — камеры MJPEG", + "preset-record-jpeg": "Запись — камеры JPEG", + "preset-record-ubiquiti": "Запись — камеры Ubiquiti" + } + }, + "cameraInputs": { + "itemTitle": "Поток {{index}}", + "sourceMode": { + "restream": "Рестрим (go2rtc)", + "manual": "Путь ввода вручную", + "go2rtcStreamLabel": "go2rtc поток", + "go2rtcStreamPlaceholder": "Выберите поток go2rtc", + "noGo2rtcStreams": "Потоки go2rtc не настроены", + "go2rtcStreamSearch": "Поиск потоков…", + "availableStreams": "Доступные потоки", + "noMatchingStreams": "Нет подходящих потоков" + } + }, + "restartRequiredField": "Требуется перезапуск", + "restartRequiredFooter": "Конфигурация изменена – требуется перезагрузка", + "sections": { + "detect": "Обнаружение", + "record": "Запись", + "snapshots": "Снимки", + "motion": "Движение", + "objects": "Объекты", + "review": "Обзор", + "audio": "Аудио", + "notifications": "Уведомления", + "live": "Просмотр в реальном времени", + "timestamp_style": "Временные метки", + "mqtt": "MQTT", + "database": "База данных", + "telemetry": "Телеметрия", + "auth": "Аутентификация", + "tls": "TLS", + "proxy": "Прокси", + "go2rtc": "go2rtc", + "ffmpeg": "FFmpeg", + "detectors": "Детекторы", + "model": "Модель", + "semantic_search": "Семантический поиск", + "genai": "GenAI", + "face_recognition": "Распознавание лиц", + "lpr": "Распознавание номерных знаков", + "birdseye": "Birdseye", + "masksAndZones": "Маски / Зоны" + }, + "detect": { + "title": "Настройки обнаружения" + }, + "detectors": { + "title": "Настройки детектора", + "singleType": "Разрешен только один детектор {{type}}.", + "keyRequired": "Требуется имя детектора.", + "keyDuplicate": "Имя детектора уже существует.", + "noSchema": "Схемы детекторов отсутствуют.", + "none": "Экземпляры детектора не настроены.", + "add": "Добавить детектор", + "addCustomKey": "Добавить пользовательский ключ" + }, + "record": { + "title": "Настройки записи" + }, + "snapshots": { + "title": "Настройки снимка" + }, + "motion": { + "title": "Настройки движения" + }, + "objects": { + "title": "Настройки объекта" + }, + "audioLabels": { + "summary": "Выбраны аудиометки {{count}}", + "empty": "Нет доступных аудиометок" + }, + "objectLabels": { + "summary": "Выбраны типы объектов {{count}}.", + "empty": "Нет доступных меток объектов" + }, + "reviewLabels": { + "summary": "Выбраны ярлыки {{count}}", + "empty": "Нет доступных ярлыков" + }, + "filters": { + "objectFieldLabel": "{{field}} для {{label}}" + }, + "zoneNames": { + "summary": "{{count}} выбрано", + "empty": "Нет доступных зон" + }, + "inputRoles": { + "summary": "Выбраны роли {{count}}", + "empty": "Нет доступных ролей", + "options": { + "detect": "Обнаружение", + "record": "Запись", + "audio": "Аудио" + } + }, + "genaiRoles": { + "options": { + "embeddings": "Встраивание", + "descriptions": "Описания", + "chat": "Чат" + } + }, + "semanticSearchModel": { + "placeholder": "Выберите модель…", + "builtIn": "Встроенные модели", + "genaiProviders": "Поставщики GenAI" + }, + "semanticSearchModelSize": { + "notApplicable": "Не применимо для провайдеров GenAI" + }, + "review": { + "title": "Просмотр настроек" + }, + "audio": { + "title": "Настройки звука" + }, + "notifications": { + "title": "Настройки уведомлений" + }, + "live": { + "title": "Настройки просмотра в реальном времени" + }, + "timestamp_style": { + "title": "Настройки временной метки" + } } }