Translated using Weblate (Russian)

Currently translated at 100.0% (45 of 45 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Russian)

Currently translated at 99.7% (798 of 800 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (474 of 474 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (185 of 185 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (1295 of 1295 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (86 of 86 strings)

Translated using Weblate (Russian)

Currently translated at 64.1% (43 of 67 strings)

Translated using Weblate (Russian)

Currently translated at 77.7% (84 of 108 strings)

Co-authored-by: Artem Vladimirov <artyomka71@mail.ru>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
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-chat/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ru/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-chat
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-replay
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
This commit is contained in:
Hosted Weblate 2026-08-21 21:27:31 +02:00 committed by Josh Hawkins
parent 48acba8dab
commit b914f32cea
10 changed files with 828 additions and 39 deletions

View File

@ -119,7 +119,9 @@
"noCameras": "Нет доступных камер",
"detectionCount_one": "{{count}} отслеживаемый объект",
"detectionCount_few": "{{count}} отслеживаемых объекта",
"detectionCount_many": "{{count}} отслеживаемых объектов"
"detectionCount_many": "{{count}} отслеживаемых объектов",
"nameLabel": "экспортируемое имя",
"namePlaceholder": "Необязательное базовое имя для экспорта"
}
},
"streaming": {

View File

@ -140,12 +140,42 @@
}
},
"mqtt": {
"label": "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 (0100)."
}
},
"notifications": {
"label": "Уведомления",
"enabled": {
"label": "Включить уведомления"
"label": "Включить уведомления",
"description": "Включить или отключить уведомления для этой камеры."
},
"email": {
"label": "Уведомление по электронной почте",
@ -158,7 +188,8 @@
"enabled_in_config": {
"label": "Исходное состояние уведомлений",
"description": "Указывает, были ли уведомления включены в исходной статической конфигурации."
}
},
"description": "Настройки включения и управления уведомлениями для этой камеры."
},
"ffmpeg": {
"path": {
@ -222,9 +253,11 @@
},
"input_args": {
"label": "Входные аргументы",
"description": "Входные аргументы, специфичные для этого потока."
"description": "Входные аргументы именно для этого потока."
}
}
},
"label": "Потоки (FFmpeg)",
"description": "Входы потоков камеры и параметры FFmpeg: путь к бинарнику, аргументы, аппаратное ускорение и выходные аргументы по ролям."
},
"live": {
"label": "Просмотр в реальном времени",
@ -239,12 +272,14 @@
"quality": {
"label": "Качество live-потока",
"description": "Качество кодирования потока jsmpeg (1 — наивысшее, 31 — наинизшее)."
}
},
"description": "Настройки веб-интерфейса для выбора live-потока, разрешения и качества."
},
"motion": {
"label": "Обнаружение движения",
"enabled": {
"label": "Включить обнаружение движения"
"label": "Включить обнаружение движения",
"description": "Включить или отключить обнаружение движения для этой камеры."
},
"threshold": {
"label": "Порог движения",
@ -292,13 +327,15 @@
},
"raw_mask": {
"label": "Исходная маска"
}
},
"description": "Настройки обнаружения движения по умолчанию для этой камеры."
},
"objects": {
"label": "Объекты",
"description": "Параметры отслеживания объектов по умолчанию, включая метки для отслеживания и фильтры для каждого объекта.",
"track": {
"label": "Объекты для отслеживания"
"label": "Объекты для отслеживания",
"description": "Список меток объектов для отслеживания на этой камере."
},
"filters": {
"label": "Фильтры объектов",
@ -394,7 +431,8 @@
"record": {
"label": "Запись",
"enabled": {
"label": "Включить запись"
"label": "Включить запись",
"description": "Включить или отключить запись для этой камеры."
},
"expire_interval": {
"label": "Запись интервала очистки",
@ -490,7 +528,8 @@
"enabled_in_config": {
"label": "Исходное состояние записи",
"description": "Указывает, была ли запись включена в исходной статической конфигурации."
}
},
"description": "Настройки записи и хранения для этой камеры."
},
"review": {
"label": "Проверка",
@ -498,7 +537,8 @@
"label": "Конфигурация оповещений",
"description": "Настройки, для которых отслеживаемые объекты генерируют оповещения и как оповещения сохраняются.",
"enabled": {
"label": "Включить оповещения"
"label": "Включить оповещения",
"description": "Включить или отключить создание тревог для этой камеры."
},
"labels": {
"label": "Предупреждающие ярлыки",
@ -521,7 +561,8 @@
"label": "Конфигурация обнаружения",
"description": "Настройки, для которых отслеживаемые объекты генерируют обнаружения (без оповещения) и порядок сохранения обнаружений.",
"enabled": {
"label": "Включить обнаружение"
"label": "Включить обнаружение",
"description": "Включить или отключить события обнаружения для этой камеры."
},
"labels": {
"label": "Метки обнаружения",
@ -579,12 +620,14 @@
"label": "Промпт контекста активности",
"description": "Пользовательский промпт, описывающий, какая активность считается подозрительной, а какая нет, для контекста сводок GenAI."
}
}
},
"description": "Настройки тревог, обнаружений и сводок GenAI для проверки, которые использует интерфейс и хранилище этой камеры."
},
"snapshots": {
"label": "Снимки",
"enabled": {
"label": "Включить снимки"
"label": "Включить снимки",
"description": "Включить или отключить сохранение снимков для этой камеры."
},
"timestamp": {
"label": "Наложение временной метки",
@ -621,7 +664,8 @@
"quality": {
"label": "Качество снимка",
"description": "Качество кодирования для сохраненных снимков (0100)."
}
},
"description": "Настройки снимков отслеживаемых объектов, создаваемых через API для этой камеры."
},
"timestamp_style": {
"label": "Стиль временной метки",
@ -656,7 +700,8 @@
"effect": {
"label": "Эффект временной метки",
"description": "Визуальный эффект для текста метки времени (нет, сплошной, тень)."
}
},
"description": "Параметры оформления временных меток на снимках и в Debug-виде."
},
"semantic_search": {
"label": "Семантический поиск",
@ -687,23 +732,27 @@
"label": "Триггерные действия",
"description": "Список действий при срабатывании триггера (notification, sub_label, attribute)."
}
}
},
"description": "Настройки семантического поиска: построение и запросы эмбеддингов объектов для поиска похожих элементов."
},
"face_recognition": {
"label": "Распознавание лиц",
"enabled": {
"label": "Включить распознавание лиц"
"label": "Включить распознавание лиц",
"description": "Включить или отключить распознавание лиц."
},
"min_area": {
"label": "Минимальная площадь лица",
"description": "Минимальная площадь (пиксели) обнаруженного лицевого окна, необходимая для попытки распознавания."
}
},
"description": "Настройки обнаружения и распознавания лиц для этой камеры."
},
"lpr": {
"label": "Распознавание номерных знаков",
"description": "Настройки распознавания номерных знаков, включая пороговые значения обнаружения, форматирование и известные номера.",
"enabled": {
"label": "Включить LPR"
"label": "Включить LPR",
"description": "Включить или отключить LPR на этой камере."
},
"min_area": {
"label": "Минимальная площадь номера",
@ -719,7 +768,8 @@
}
},
"profiles": {
"label": "Профили"
"label": "Профили",
"description": "Именованные профили конфигурации с частичными переопределениями, которые можно активировать во время работы."
},
"onvif": {
"label": "ONVIF",
@ -796,5 +846,111 @@
"label": "Игнорировать несоответствие времени",
"description": "Игнорировать расхождение времени между камерой и сервером Frigate при обмене по ONVIF."
}
},
"best_image_timeout": {
"label": "Таймаут лучшего кадра",
"description": "Как долго ждать кадр с наибольшей уверенностью."
},
"type": {
"label": "Тип камеры",
"description": "Тип камеры"
},
"ui": {
"label": "Интерфейс камеры",
"description": "Порядок отображения и видимость этой камеры в интерфейсе. Порядок влияет на дашборд по умолчанию. Для более гибкой настройки используйте группы камер.",
"order": {
"label": "Порядок в интерфейсе",
"description": "Числовой порядок сортировки камеры в интерфейсе (дашборд по умолчанию и списки); большие числа отображаются позже."
},
"dashboard": {
"label": "Показывать на Live-дашборде",
"description": "Показывать ли эту камеру на дашборде «Все камеры». Камера останется доступной в остальном интерфейсе, включая группы камер и настройки."
},
"review": {
"label": "Показывать в обзоре событий",
"description": "Показывать ли эту камеру в проверке (страница проверки и её фильтр камер, проверка движения и история)."
}
},
"webui_url": {
"label": "URL камеры",
"description": "URL для перехода к веб-интерфейсу камеры со страницы системы"
},
"zones": {
"label": "Зоны",
"description": "Зоны позволяют задать область кадра, чтобы определять, находится ли объект в этой области.",
"friendly_name": {
"label": "Имя зоны",
"description": "Понятное имя зоны для интерфейса Frigate. Если не задано, используется отформатированное имя зоны."
},
"enabled": {
"label": "Включено",
"description": "Включить или отключить эту зону. Отключённые зоны игнорируются во время работы."
},
"enabled_in_config": {
"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": "Исходная маска"
}
},
"coordinates": {
"label": "Координаты",
"description": "Координаты многоугольника зоны. Можно задать строкой через запятую или списком строк. Координаты должны быть относительными (01) или абсолютными (устаревший вариант)."
},
"distances": {
"label": "Реальные расстояния",
"description": "Необязательные реальные длины сторон четырёхугольника зоны для расчёта скорости или расстояния. Если заданы, должно быть ровно 4 значения."
},
"inertia": {
"label": "Кадры инерции",
"description": "Сколько кадров подряд объект должен обнаруживаться в зоне, прежде чем считаться присутствующим. Помогает отфильтровать кратковременные срабатывания."
},
"loitering_time": {
"label": "Время присутствия (сек)",
"description": "Сколько секунд объект должен оставаться в зоне, чтобы считаться задержавшимся. 0 отключает детектирование присутствия."
},
"speed_threshold": {
"label": "Минимальная скорость",
"description": "Минимальная скорость (в реальных единицах, если заданы distances), при которой объект считается присутствующим в зоне. Для триггеров по скорости."
},
"objects": {
"label": "Объекты-триггеры",
"description": "Список типов объектов (из labelmap), которые могут активировать эту зону. Строка или список строк. Если пусто — учитываются все объекты."
}
},
"enabled_in_config": {
"label": "Исходное состояние камеры",
"description": "Сохраняет исходное состояние камеры."
}
}

View File

@ -766,7 +766,7 @@
},
"input_args": {
"label": "Входные аргументы",
"description": "Входные аргументы, специфичные для этого потока."
"description": "Входные аргументы именно для этого потока."
}
}
},

View File

@ -1 +1,72 @@
{}
{
"documentTitle": "Чат - Frigate",
"title": "Чат Frigate",
"subtitle": "Ваш ИИ-помощник для управления камерами и аналитики",
"placeholder": "Спросите что угодно…",
"error": "Что-то пошло не так. Попробуйте ещё раз.",
"processing": "Обработка…",
"toolsUsed": "Использовано: {{tools}}",
"showTools": "Показать инструменты ({{count}})",
"hideTools": "Скрыть инструменты",
"call": "Вызов",
"result": "Результат",
"arguments": "Аргументы:",
"response": "Ответ:",
"attachment_chip_label": "{{label}} на {{camera}}",
"attachment_chip_remove": "Удалить вложение",
"open_in_explore": "Открыть в Поиске событий",
"attach_event_aria": "Прикрепить событие {{eventId}}",
"attachment_picker_paste_label": "Или вставьте ID события",
"attachment_picker_attach": "Прикрепить",
"attachment_picker_placeholder": "Прикрепить событие",
"quick_reply_find_similar": "Найти похожие",
"quick_reply_tell_me_more": "Расскажи подробнее",
"quick_reply_when_else": "Когда ещё это видели?",
"quick_reply_find_similar_text": "Найди похожие появления этого объекта.",
"quick_reply_tell_me_more_text": "Расскажи подробнее об этом.",
"quick_reply_when_else_text": "Когда ещё это появлялось?",
"anchor": "Образец",
"similarity_score": "Сходство",
"no_similar_objects_found": "Похожие объекты не найдены.",
"semantic_search_required": "Для поиска похожих объектов должен быть включён семантический поиск.",
"send": "Отправить",
"suggested_requests": "Попробуйте спросить:",
"starting_requests": {
"show_recent_events": "Показать недавние события",
"show_camera_status": "Показать статус камер",
"recap": "Что произошло, пока меня не было?",
"watch_camera": "Следить за активностью на камере"
},
"starting_requests_prompts": {
"show_recent_events": "Покажи недавние события за последний час",
"show_camera_status": "Какой сейчас статус моих камер?",
"recap": "Что произошло, пока меня не было?",
"watch_camera": "Следи за входной дверью и сообщи, если кто-нибудь появится"
},
"new_chat": "Новый чат",
"settings": {
"title": "Настройки чата",
"show_stats": {
"title": "Показывать статистику",
"desc": "Показывать скорость генерации и размер контекста для ответов чата.",
"while_generating": "Во время генерации",
"always": "Всегда"
},
"auto_scroll": {
"title": "Автопрокрутка",
"desc": "Следовать за новыми сообщениями по мере их появления."
}
},
"stats": {
"context": "{{tokens}} токенов",
"tokens_per_second": "{{rate}} t/s"
},
"reasoning": {
"active": "Думает…",
"show": "Показать рассуждения",
"hide": "Скрыть рассуждения"
},
"thinking": {
"toggle": "Режим рассуждений"
}
}

View File

@ -39,7 +39,7 @@
},
"markTheseItemsAsReviewed": "Пометить эти элементы как просмотренные",
"selected": "{{count}} выбрано",
"selected_one": "{{count}} выбрано",
"selected_one": "{{count}} выбран",
"selected_other": "{{count}} выбрано",
"detected": "обнаружен",
"suspiciousActivity": "Подозрительная активность",

View File

@ -14,7 +14,9 @@
"toast": {
"error": {
"renameExportFailed": "Не удалось переименовать экспорт: {{errorMessage}}",
"assignCaseFailed": "Не удалось обновить назначение случая: {{errorMessage}}"
"assignCaseFailed": "Не удалось обновить назначение случая: {{errorMessage}}",
"caseSaveFailed": "Не удалось сохранить случай: {{errorMessage}}",
"caseDeleteFailed": "Не удалось удалить случай: {{errorMessage}}"
}
},
"tooltip": {
@ -22,7 +24,8 @@
"downloadVideo": "Скачать видео",
"editName": "Изменить название",
"deleteExport": "Удалить экспорт",
"assignToCase": "Добавить в случай"
"assignToCase": "Добавить в случай",
"removeFromCase": "Убрать из случая"
},
"headings": {
"cases": "Случаи",
@ -35,5 +38,91 @@
"newCaseOption": "Создать новый случай",
"nameLabel": "Название случая",
"descriptionLabel": "Описание"
},
"toolbar": {
"newCase": "Новый случай",
"addExport": "Добавить экспорт",
"editCase": "Редактировать случай",
"deleteCase": "Удалить случай"
},
"deleteCase": {
"label": "Удалить случай",
"desc": "Вы уверены, что хотите удалить {{caseName}}?",
"descKeepExports": "Экспорты останутся доступны без категории.",
"descDeleteExports": "Все экспорты в этом случае будут удалены безвозвратно.",
"deleteExports": "Также удалить экспорты"
},
"caseCard": {
"emptyCase": "Пока нет экспортов"
},
"jobCard": {
"defaultName": "Экспорт {{camera}}",
"queued": "В очереди",
"running": "Выполняется",
"preparing": "Подготовка",
"copying": "Копирование",
"encoding": "Кодирование",
"encodingRetry": "Кодирование (повтор)",
"finalizing": "Завершение"
},
"caseView": {
"noDescription": "Без описания",
"createdAt": "Создан {{value}}",
"exportCount_one": "1 экспорт",
"exportCount_other": "{{count}} экспорта",
"cameraCount_one": "1 камера",
"cameraCount_other": "{{count}} камеры",
"showMore": "Показать больше",
"showLess": "Свернуть",
"emptyTitle": "Этот случай пуст",
"emptyDescription": "Добавьте существующие экспорты без категории, чтобы упорядочить случай.",
"emptyDescriptionNoExports": "Пока нет экспортов без категории, которые можно добавить."
},
"caseEditor": {
"createTitle": "Создать случай",
"editTitle": "Редактировать случай",
"namePlaceholder": "Название случая",
"descriptionPlaceholder": "Добавьте заметки или контекст для этого случая"
},
"addExportDialog": {
"title": "Добавить экспорт в {{caseName}}",
"searchPlaceholder": "Поиск экспортов без категории",
"empty": "Нет экспортов без категории, подходящих под этот поиск.",
"addButton_one": "Добавить 1 экспорт",
"addButton_other": "Добавить {{count}} экспорта",
"adding": "Добавление…"
},
"selected_one": "{{count}} выбран",
"selected_other": "{{count}} выбрано",
"bulkActions": {
"addToCase": "Добавить в случай",
"moveToCase": "Переместить в случай",
"removeFromCase": "Убрать из случая",
"delete": "Удалить",
"deleteNow": "Удалить сейчас"
},
"bulkDelete": {
"title": "Удалить экспорты",
"desc_one": "Вы уверены, что хотите удалить {{count}} экспорт?",
"desc_other": "Вы уверены, что хотите удалить {{count}} экспорта?"
},
"bulkRemoveFromCase": {
"title": "Убрать из случая",
"desc_one": "Убрать {{count}} экспорт из этого случая?",
"desc_other": "Убрать {{count}} экспорта из этого случая?",
"descKeepExports": "Экспорты будут перемещены в раздел без категории.",
"descDeleteExports": "Экспорты будут удалены безвозвратно.",
"deleteExports": "Вместо этого удалить экспорты"
},
"bulkToast": {
"success": {
"delete": "Экспорты успешно удалены",
"reassign": "Назначение случая успешно обновлено",
"remove": "Экспорты успешно убраны из случая"
},
"error": {
"deleteFailed": "Не удалось удалить экспорты: {{errorMessage}}",
"reassignFailed": "Не удалось обновить назначение случая: {{errorMessage}}"
}
}
}

View File

@ -1 +1,80 @@
{}
{
"documentTitle": "Поиск по движению - Frigate",
"title": "Поиск по движению",
"description": "Нарисуйте полигон области интереса и укажите диапазон времени, чтобы найти изменения движения в этой области.",
"selectCamera": "Поиск по движению загружается",
"startSearch": "Начать поиск",
"searchStarted": "Поиск запущен",
"searchCancelled": "Поиск отменён",
"cancelSearch": "Отменить",
"searching": "Идёт поиск.",
"scanning": "Сканирование {{time}}",
"searchComplete": "Поиск завершён",
"noResultsYet": "Запустите поиск, чтобы найти изменения движения в выбранной области",
"noChangesFound": "В выбранной области не обнаружено изменений пикселей",
"changesFound_one": "Найдено {{count}} изменение движения",
"changesFound_few": "Найдено {{count}} изменения движения",
"changesFound_many": "Найдено {{count}} изменений движения",
"framesProcessed": "{{count}} кадров обработано",
"jumpToTime": "Перейти к этому времени",
"results": "Результаты",
"showSegmentHeatmap": "Тепловая карта",
"newSearch": "Новый поиск",
"clearResults": "Очистить результаты",
"clearROI": "Очистить полигон",
"polygonControls": {
"points_one": "{{count}} точка",
"points_few": "{{count}} точки",
"points_many": "{{count}} точек",
"undo": "Отменить последнюю точку",
"reset": "Сбросить полигон",
"drawMode": "Рисовать",
"moveMode": "Перемещать"
},
"motionHeatmapLabel": "Тепловая карта движения",
"dialog": {
"title": "Поиск по движению",
"cameraLabel": "Камера",
"previewAlt": "Превью камеры {{camera}}"
},
"timeRange": {
"title": "Диапазон поиска",
"start": "Время начала",
"end": "Время окончания"
},
"settings": {
"title": "Настройки поиска",
"parallelMode": "Параллельный режим",
"parallelModeDesc": "Сканировать несколько диапазонов записи одновременно (быстрее, больше нагрузка на декодирование)",
"threshold": "Порог чувствительности",
"thresholdDesc": "Меньшие значения обнаруживают более слабые изменения (1255)",
"minArea": "Минимальная площадь изменения",
"minAreaDesc": "Минимальный размер одной движущейся области в процентах от области интереса",
"maxResults": "Максимум результатов",
"maxResultsDesc": "Остановить поиск после этого числа совпавших меток времени"
},
"errors": {
"noCamera": "Выберите камеру",
"noROI": "Нарисуйте область интереса",
"noTimeRange": "Выберите диапазон времени",
"invalidTimeRange": "Время окончания должно быть позже времени начала",
"searchFailed": "Поиск не удался: {{message}}",
"polygonTooSmall": "В полигоне должно быть не менее 3 точек",
"unknown": "Неизвестная ошибка"
},
"changePercentage": "{{percentage}}% изменено",
"metrics": {
"title": "Метрики поиска",
"segmentsScanned": "Просканировано сегментов",
"segmentsProcessed": "Обработано",
"segmentsSkippedInactive": "Пропущено (нет активности)",
"segmentsSkippedHeatmap": "Пропущено (нет пересечения с областью)",
"fallbackFullRange": "Резервное сканирование всего диапазона",
"framesDecoded": "Декодировано кадров",
"wallTime": "Время поиска",
"segmentErrors": "Ошибки сегментов",
"seconds": "{{seconds}} с",
"minutesSeconds": "{{minutes}}м {{seconds}}с",
"scanSummary": "{{segments}} сегм. · {{time}}"
}
}

View File

@ -1 +1,59 @@
{}
{
"title": "Отладочный повтор",
"description": "Повтор записей камеры для отладки. Список объектов показывает отложенную по времени сводку обнаруженных объектов, а вкладка «Сообщения» — поток внутренних сообщений Frigate по этому фрагменту.",
"websocket_messages": "Сообщения",
"dialog": {
"title": "Запустить отладочный повтор",
"description": "Создаёт временную камеру повтора, которая зацикливает историческую запись для отладки обнаружения и отслеживания объектов. У камеры повтора будет та же конфигурация обнаружения, что и у исходной камеры. Выберите диапазон времени, чтобы начать.",
"camera": "Исходная камера",
"timeRange": "Диапазон времени",
"preset": {
"1m": "Последняя минута",
"5m": "Последние 5 минут",
"timeline": "С хронологии",
"custom": "Свой"
},
"startButton": "Запустить повтор",
"selectFromTimeline": "Выбрать",
"starting": "Запуск повтора…",
"startLabel": "Начало",
"endLabel": "Конец",
"toast": {
"error": "Не удалось запустить отладочный повтор: {{error}}",
"alreadyActive": "Сессия повтора уже запущена",
"stopError": "Не удалось остановить отладочный повтор: {{error}}",
"goToReplay": "Перейти к повтору"
}
},
"page": {
"noSession": "Нет активной сессии отладочного повтора",
"noSessionDesc": "Запустите отладочный повтор из раздела «История»: нажмите «Действия» на панели инструментов и выберите «Отладочный повтор».",
"goToRecordings": "Перейти к Истории",
"preparingClip": "Подготовка клипа…",
"preparingClipDesc": "Frigate склеивает записи за выбранный диапазон. Для длинных диапазонов это может занять около минуты.",
"startingCamera": "Запуск отладочного повтора…",
"startError": {
"title": "Не удалось запустить отладочный повтор",
"back": "Назад к Истории"
},
"sourceCamera": "Исходная камера",
"replayCamera": "Камера повтора",
"initializingReplay": "Инициализация отладочного повтора…",
"stoppingReplay": "Остановка отладочного повтора…",
"stopReplay": "Остановить повтор",
"confirmStop": {
"title": "Остановить отладочный повтор?",
"description": "Сессия будет остановлена, все временные данные будут удалены. Продолжить?",
"confirm": "Остановить повтор",
"cancel": "Отменить"
},
"activity": "Активность",
"objects": "Список объектов",
"audioDetections": "Обнаружения звука",
"noActivity": "Активность не обнаружена",
"activeTracking": "Активное отслеживание",
"noActiveTracking": "Нет активного отслеживания",
"configuration": "Конфигурация",
"configurationDesc": "Точная настройка обнаружения движения и отслеживания объектов для камеры отладочного повтора. Изменения не сохраняются в конфигурационный файл Frigate."
}
}

View File

@ -1890,6 +1890,296 @@
},
"timestamp_style": {
"title": "Настройки временной метки"
},
"searchPlaceholder": "Поиск…",
"addCustomLabel": "Добавить персонализированную метку…",
"genaiModel": {
"placeholder": "Выберите или введите модель…",
"search": "Найдите или введите модель…",
"noModels": "Нет доступных моделей",
"available": "Доступные модели",
"useCustom": "Используйте «{{value}}»",
"refresh": "Обновить модели",
"probeFailed": "Не удалось проверить модели",
"fetchedModels": "Список моделей успешно получен"
},
"ptzPresets": {
"placeholder": "Выберите или введите предустановку…",
"search": "Найдите или введите предустановку…",
"noPresets": "Нет доступных предустановок",
"available": "Настройки камеры",
"useCustom": "Используйте «{{value}}»"
},
"defaultRole": {
"admin": "Админ",
"viewer": "Зритель"
}
},
"globalConfig": {
"title": "Глобальная конфигурация",
"description": "Настройте глобальные параметры, которые применяются ко всем камерам, если не переопределены.",
"toast": {
"success": "Глобальные настройки успешно сохранены",
"error": "Не удалось сохранить глобальные настройки",
"validationError": "Ошибка проверки"
}
},
"cameraConfig": {
"title": "Конфигурация камеры",
"description": "Настройте параметры отдельных камер. Эти настройки переопределяют глобальные значения по умолчанию.",
"overriddenBadge": "Переопределено",
"resetToGlobal": "Сбросить до глобальных",
"toast": {
"success": "Настройки камеры успешно сохранены",
"error": "Не удалось сохранить настройки камеры"
}
},
"toast": {
"success": "Настройки успешно сохранены",
"applied": "Настройки успешно применены",
"successRestartRequired": "Настройки успешно сохранены. Перезапустите Frigate, чтобы применить изменения.",
"error": "Не удалось сохранить настройки",
"validationError": "Ошибка проверки: {{message}}",
"resetSuccess": "Сброшено до глобальных значений по умолчанию",
"resetError": "Не удалось сбросить настройки",
"saveAllSuccess_one": "Успешно сохранён {{count}} раздел.",
"saveAllSuccess_few": "Успешно сохранены все {{count}} раздела.",
"saveAllSuccess_many": "Успешно сохранены все {{count}} разделов.",
"saveAllSuccessRestartRequired_one": "Успешно сохранён {{count}} раздел. Перезапустите Frigate, чтобы применить изменения.",
"saveAllSuccessRestartRequired_few": "Успешно сохранены все {{count}} раздела. Перезапустите Frigate, чтобы применить изменения.",
"saveAllSuccessRestartRequired_many": "Успешно сохранены все {{count}} разделов. Перезапустите Frigate, чтобы применить изменения.",
"saveAllPartial_one": "Сохранён {{successCount}} из {{totalCount}} раздела. Не удалось: {{failCount}}.",
"saveAllPartial_few": "Сохранено {{successCount}} из {{totalCount}} разделов. Не удалось: {{failCount}}.",
"saveAllPartial_many": "Сохранено {{successCount}} из {{totalCount}} разделов. Не удалось: {{failCount}}.",
"saveAllFailure": "Не удалось сохранить все разделы."
},
"profiles": {
"title": "Профили",
"activeProfile": "Активный профиль",
"noActiveProfile": "Нет активного профиля",
"active": "Активный",
"activated": "Профиль «{{profile}}» активирован",
"activateFailed": "Не удалось установить профиль",
"deactivated": "Профиль деактивирован",
"noProfiles": "Профили не определены.",
"noOverrides": "Никаких переопределений",
"cameraCount_one": "{{count}} камера",
"cameraCount_few": "{{count}} камеры",
"cameraCount_many": "{{count}} камер",
"columnCamera": "Камера",
"columnOverrides": "Переопределения профиля",
"baseConfig": "Базовая конфигурация",
"addProfile": "Добавить профиль",
"newProfile": "Новый профиль",
"profileNamePlaceholder": "например, «На охране», «Нет на месте», «Ночной режим»",
"friendlyNameLabel": "Имя профиля",
"profileIdLabel": "Идентификатор профиля",
"profileIdDescription": "Внутренний идентификатор, используемый в конфигурации и автоматизации.",
"nameInvalid": "Разрешены только строчные буквы, цифры и подчеркивания",
"nameDuplicate": "Профиль с таким именем уже существует",
"error": {
"mustBeAtLeastTwoCharacters": "Должно быть минимум 2 символа",
"mustNotContainPeriod": "Не должно содержать точек",
"alreadyExists": "Профиль с таким идентификатором уже существует"
},
"renameProfile": "Переименовать профиль",
"renameSuccess": "Профиль переименован в '{{profile}}'",
"deleteProfile": "Удалить профиль",
"deleteProfileConfirm": "Удалить профиль \"{{profile}}\" со всех камер? Это невозможно отменить.",
"deleteSuccess": "Профиль «{{profile}}» удален",
"createSuccess": "Профиль «{{profile}}» создан",
"removeOverride": "Удалить переопределение профиля",
"deleteSection": "Удаление переопределений раздела",
"deleteSectionConfirm": "Удалить переопределения {{section}} для профиля {{profile}} на {{camera}}?",
"deleteSectionSuccess": "Удалены переопределения {{section}} для {{profile}}",
"enableSwitch": "Включить профили",
"enabledDescription": "Профили включены. Создайте новый профиль ниже, перейдите в раздел конфигурации камеры, чтобы внести изменения, и сохраните их, чтобы изменения вступили в силу.",
"disabledDescription": "Профили позволяют вам определять именованные наборы переопределений конфигурации камеры (например, «охрана», «отсутствие», «ночь»), которые можно активировать по требованию."
},
"unsavedChanges": "У вас есть несохранённые изменения",
"confirmReset": "Подтвердить сброс",
"resetToDefaultDescription": "Все настройки в этом разделе будут сброшены до значений по умолчанию. Это действие нельзя отменить.",
"resetToGlobalDescription": "Настройки в этом разделе будут сброшены до глобальных значений по умолчанию. Это действие нельзя отменить.",
"go2rtcStreams": {
"title": "Потоки go2rtc",
"description": "Управляйте конфигурациями потоков go2rtc для рестриминга камер. У каждого потока есть имя и один или несколько URL источников.",
"addStream": "Добавить поток",
"addStreamDesc": "Введите имя нового потока. Это имя будет использоваться для ссылки на поток в конфигурации вашей камеры.",
"addUrl": "Добавить URL",
"sourceNumber": "Источник {{index}}",
"streamName": "Название потока",
"streamNamePlaceholder": "например, front_door",
"streamUrlPlaceholder": "например, rtsp://user:pass@192.168.1.100/stream",
"deleteStream": "Удалить поток",
"deleteStreamConfirm": "Вы уверены, что хотите удалить поток «{{streamName}}»? Камеры, ссылающиеся на этот поток, могут перестать работать.",
"noStreams": "Потоки go2rtc не настроены. Добавьте поток, чтобы начать.",
"validation": {
"nameRequired": "Необходимо указать имя камеры",
"nameDuplicate": "Поток с таким названием уже существует",
"nameInvalid": "Имя потока может содержать только буквы, цифры, символы подчеркивания и дефисы",
"urlRequired": "Требуется хотя бы один URL"
},
"renameStream": "Переименовать поток",
"renameStreamDesc": "Введите новое имя для этого потока. Переименование потока может привести к поломке камер или других потоков, ссылающихся на него по имени.",
"newStreamName": "Новое название потока",
"ffmpeg": {
"useFfmpegModule": "Использовать режим совместимости (FFmpeg)",
"video": "Видео",
"audio": "Аудио",
"hardware": "Аппаратное ускорение",
"videoCopy": "Копировать",
"videoH264": "Перекодировать в H.264",
"videoH265": "Перекодировать в H.265",
"videoExclude": "Исключать",
"audioCopy": "Копировать",
"audioAac": "Перекодировать в AAC",
"audioOpus": "Перекодировать в Opus",
"audioPcmu": "Перекодировать в PCM μ-law",
"audioPcma": "Перекодировать в PCM A-law",
"audioPcm": "Перекодировать в PCM",
"audioMp3": "Перекодировать в MP3",
"audioExclude": "Исключать",
"hardwareNone": "Нет аппаратного ускорения",
"hardwareAuto": "Автоматический (рекомендуется)",
"hardwareVaapi": "VAAPI",
"hardwareCuda": "CUDA",
"hardwareV4l2m2m": "V4L2 M2M",
"hardwareDxva2": "DXVA2",
"hardwareVideotoolbox": "VideoToolbox",
"addVideoCodec": "Добавить видеокодек",
"addAudioCodec": "Добавить аудиокодек",
"removeCodec": "Удалить кодек"
}
},
"birdseye": {
"trackingMode": {
"objects": "Объекты",
"motion": "Движение",
"continuous": "Непрерывно"
},
"cameraOrder": {
"label": "Порядок камер",
"description": "Перетащите камеры, чтобы задать их порядок в макете Birdseye.",
"reorderHandle": "Перетащите для изменения порядка",
"saving": "Сохранение…",
"saved": "Сохранено"
}
},
"retainMode": {
"all": "Все",
"motion": "Движение",
"active_objects": "Активные объекты"
},
"previewQuality": {
"very_high": "Очень высокое",
"high": "Высокое",
"medium": "Среднее",
"low": "Низкое",
"very_low": "Очень низкое"
},
"ui": {
"timeFormat": {
"browser": "Браузер",
"12hour": "12 часовой",
"24hour": "24 часовой"
},
"unitSystem": {
"metric": "Метрическая",
"imperial": "Имперская"
}
},
"review": {
"imageSource": {
"recordings": "Записи",
"previews": "Превью"
}
},
"logger": {
"logLevel": {
"debug": "Отладочный",
"info": "Инфо",
"warning": "Предупреждение",
"error": "Ошибка",
"critical": "Критический"
}
},
"onvif": {
"profileAuto": "Авто",
"profileLoading": "Загрузка профилей…",
"autotracking": {
"zooming": {
"disabled": "Отключено",
"absolute": "Абсолютное",
"relative": "Относительное"
}
}
},
"modelSize": {
"small": "Малая",
"large": "Большая"
},
"configMessages": {
"review": {
"recordDisabled": "Запись отключена, элементы обзора создаваться не будут.",
"detectDisabled": "Обнаружение объектов отключено. Для просмотра элементов требуются обнаруженные объекты для классификации предупреждений и обнаружений.",
"allNonAlertDetections": "Все действия, не связанные с оповещением, будут учитываться как обнаружения.",
"genaiImageSourceRecordingsRecordDisabled": "В качестве источника изображения выбрано «запись», но запись отключена. Frigate вернется к предварительному просмотру изображений."
},
"audio": {
"noAudioRole": "Ни для одного потока не определена роль аудио. Для работы обнаружения звука необходимо включить роль звука."
},
"audioTranscription": {
"audioDetectionDisabled": "Обнаружение звука не включено для этой камеры. Для транскрипции звука необходимо, чтобы обнаружение звука было активным."
},
"detect": {
"fpsGreaterThanFive": "Не рекомендуется устанавливать значение обнаружения FPS выше 5. Более высокие значения могут вызвать проблемы с производительностью и не принесут никакой пользы.",
"disabled": "Обнаружение объектов отключено. Снимки, элементы обзора и обогащения, такие как распознавание лиц, распознавание номерных знаков и генеративный искусственный интеллект, не будут работать.",
"resolutionShouldBeMultipleOfFour": "Для достижения наилучших результатов ширина и высота обнаружения должны быть кратны 4. Другие четные значения могут привести к визуальным артефактам или небольшим искажениям в потоке обнаружения.",
"aspectRatioMismatch": "Введенные вами ширина и высота не соответствуют соотношению сторон вашего текущего разрешения обнаружения. Это может привести к растягиванию или искажению изображения.",
"maxFramesSet": "Установка максимального количества кадров отменяет поведение по умолчанию и отключает отслеживание неподвижных объектов. Ситуаций, когда это необходимо, очень мало, используйте с осторожностью.",
"squareResolution": "Разрешение обнаружения квадратов необычно. Ширина и высота обнаружения должны соответствовать соотношению сторон вашей камеры (например, 16:9), а не размерам модели обнаружения объекта. Несовпадающее соотношение сторон может растянуть изображение и снизить точность обнаружения.",
"resolutionHigh": "Это разрешение обнаружения выше рекомендуемого и может привести к увеличению использования ресурсов без повышения точности обнаружения. Для большинства камер рекомендуется разрешение обнаружения 1080p или ниже.",
"globalResolutionMultipleCameras": "Глобальное разрешение обнаружения устанавливается при настройке нескольких камер. Если все камеры не имеют одинакового разрешения и соотношения сторон, ширина и высота обнаружения должны быть определены для каждой камеры, чтобы соответствовать собственному соотношению сторон каждой камеры."
},
"model": {
"optimizedFor320": "Frigate оптимизирован для модели 320x320, которая является лучшим выбором для большинства настроек. Модель 640x640 работает медленнее и помогает только в определенных сценариях.",
"inputDimensionsNotDetectResolution": "Входная ширина и высота модели — это входные размеры модели обнаружения объектов, а не разрешение обнаружения вашей камеры. Они должны соответствовать размерам используемой вами модели — обычно квадратного размера, например 320x320 или 640x640."
},
"ffmpeg": {
"hwaccelManualNotRecommended": "Аргументы аппаратного ускорения вручную не рекомендуются. Если не существует особых требований, выберите предустановку, соответствующую вашему оборудованию.",
"inputsMissingGo2rtcStream": "Один из входных потоков ниже указывает на рестрим go2rtc, которого больше не существует. Выберите существующий рестрим или введите URL камеры вручную, иначе камера не сможет подключиться."
},
"objects": {
"genaiNoDescriptionsProvider": "Для создания описаний необходимо настроить поставщика GenAI с ролью «описания»."
},
"faceRecognition": {
"globalDisabled": "Расширение распознавания лиц должно быть включено, чтобы функции распознавания лиц работали на этой камере.",
"personNotTracked": "Распознавание лиц требует отслеживания объекта «человек». Включите «человек» в объектах для этой камеры.",
"modelSizeLarge": "«Большая» модель требует GPU или NPU для обеспечения приемлемой производительности. Используйте слово «small» в системах, поддерживающих только CPU."
},
"lpr": {
"globalDisabled": "Для работы функций LPR на этой камере необходимо включить расширение распознавания номерных знаков.",
"vehicleNotTracked": "Распознавание номерных знаков требует отслеживания «автомобиля» или «мотоцикла». Включите «автомобиль» или «мотоцикл» в объектах для этой камеры.",
"modelSizeLarge": "«Большая» модель оптимизирована для многострочных номерных знаков. «Маленькая» модель обеспечивает лучшую производительность по сравнению с «большой», и ее следует использовать, если в вашем регионе не используются форматы многострочных табличек."
},
"record": {
"noRecordRole": "Ни для одного потока не определена роль записи. Запись не будет работать."
},
"birdseye": {
"objectsModeDetectDisabled": "Birdseye установлен в режим «объекты», но обнаружение объектов для этой камеры отключено. Камера не появится в Birdseye."
},
"snapshots": {
"detectDisabled": "Обнаружение объектов отключено. Снимки создаются на основе отслеживаемых объектов и не создаются."
},
"detectors": {
"mixedTypes": "Все детекторы должны использовать один и тот же тип. Удалите существующие детекторы, чтобы использовать другой тип.",
"mixedTypesSuggestion": "Все детекторы должны использовать один и тот же тип. Удалите существующие детекторы или выберите {{type}}."
},
"semanticSearch": {
"jinav2SmallModelSize": "«Маленький» размер модели Jina V2 имеет большой объем оперативной памяти и стоимость вывода. Рекомендуется «большая» модель с дискретным GPU."
},
"onvif": {
"autotrackingNoZones": "Для автослежения требуется хотя бы одна зона. Определите зону для этой камеры в Масках/Зонах, затем установите ее как обязательную зону ниже."
}
}
}

View File

@ -52,9 +52,15 @@
"camera": "Камера",
"all_cameras": "Все камеры",
"cameras_count_one": "{{count}} камера",
"cameras_count_other": "{{count}} камеры"
"cameras_count_other": "{{count}} камеры",
"reviews": "Проверки"
},
"empty": "Сообщения ещё не были получены"
"empty": "Сообщения ещё не были получены",
"count_one": "{{count}} сообщение",
"count_other": "{{count}} сообщения",
"expanded": {
"payload": "Содержимое"
}
}
},
"general": {
@ -103,7 +109,10 @@
"title": "Предупреждение: статистика Intel GPU",
"message": "Статистика GPU недоступна",
"description": "Это известная ошибка в инструментах отчетности статистики Intel GPU (intel_gpu_top), из-за которой они ломаются и постоянно возвращают уровень использования GPU 0%, даже в случаях, когда аппаратное ускорение и обнаружение объектов корректно работают на (i)GPU. Это не ошибка Frigate. Вы можете перезапустить хост-систему, чтобы временно устранить проблему и убедиться, что GPU работает правильно. На производительность это не влияет."
}
},
"gpuCompute": "Вычисления / кодирование GPU",
"gpuTemperature": "Температура GPU",
"npuTemperature": "Температура NPU"
},
"otherProcesses": {
"title": "Другие процессы",
@ -113,7 +122,7 @@
"go2rtc": "go2rtc",
"recording": "запись",
"review_segment": "сегмент обзора",
"embeddings": "вложения",
"embeddings": "эмбеддинги",
"audio_detector": "аудиодетектор"
}
}
@ -140,7 +149,11 @@
},
"shm": {
"title": "Выделение разделяемой памяти",
"warning": "Текущеее значение разделяемой памяти в {{total}}MB слишком мало. Увеличьте его хотя бы до {{min_shm}}MB."
"warning": "Текущее значение разделяемой памяти в {{total}}MB слишком мало. Увеличьте его хотя бы до {{min_shm}}MB.",
"frameLifetime": {
"title": "Время жизни кадра",
"description": "У каждой камеры в разделяемой памяти {{frames}} слотов кадров. При частоте кадров самой быстрой камеры каждый кадр доступен примерно {{lifetime}} с, пока его не перезапишут."
}
}
},
"cameras": {
@ -161,7 +174,22 @@
"tips": {
"title": "Информация о тестировании камеры"
},
"aspectRatio": "соотношение сторон"
"aspectRatio": "соотношение сторон",
"keyframes": {
"title": "Анализ ключевых кадров",
"analyzing": "Анализ ключевых кадров… осталось {{seconds}} с",
"stillAnalyzing": "Анализ ключевых кадров ещё идёт…",
"recordStream": "Поток записи:",
"keyframeCount": "Наблюдалось ключевых кадров:",
"observedDuration": "Наблюдаемая длительность:",
"gap": "Интервал ключевых кадров (мин / сред / макс):",
"segmentLength": "Длина сегмента записи:",
"ok": "Ключевые кадры примерно каждые {{seconds}} с, этого достаточно для записи и воспроизведения.",
"warning": "Редкие или неравномерные ключевые кадры (самый длинный интервал ~{{seconds}} с), вероятно включён smart-кодек (H.264+/H.265+), это не рекомендуется.",
"error": "Интервал ключевых кадров (~{{seconds}} с) больше длины сегмента записи ({{segmentTime}} с). В части сегментов может не быть ключевого кадра, из-за этого ломается воспроизведение. Отключите smart/+ кодек на камере или уменьшите интервал ключевых кадров.",
"unknown": "Не удалось определить интервал ключевых кадров.",
"recordDisabled": "Запись для этой камеры отключена."
}
},
"framesAndDetections": "Кадры/детекции",
"label": {
@ -178,7 +206,8 @@
"overallSkippedDetectionsPerSecond": "общее количество пропущенных обнаружений в секунду",
"cameraFfmpeg": "{{camName}} FFmpeg",
"cameraCapture": "{{camName}} захват",
"cameraDetect": "{{camName}} обнаружения"
"cameraDetect": "{{camName}} обнаружения",
"cameraGpu": "{{camName}} GPU"
},
"toast": {
"success": {
@ -187,6 +216,20 @@
"error": {
"unableToProbeCamera": "Не удалось протестировать камеру: {{errorMessage}}"
}
},
"noCameras": {
"title": "Камеры не найдены"
},
"connectionQuality": {
"title": "Качество соединения",
"excellent": "Отлично",
"fair": "Нормально",
"poor": "Плохо",
"unusable": "Непригодно",
"fps": "FPS",
"expectedFps": "Ожидаемый FPS",
"reconnectsLastHour": "Переподключения (за последний час)",
"stallsLastHour": "Зависания (за последний час)"
}
},
"lastRefreshed": "Обновлено: ",
@ -195,10 +238,11 @@
"detectHighCpuUsage": "Камера {{camera}} использует слишком много ресурсов CPU для детекции ({{detectAvg}}%)",
"healthy": "Система в порядке",
"reindexingEmbeddings": "Переиндексация эмбеддингов (выполнено {{processed}} %)",
"cameraIsOffline": "{{camera}} отключена",
"cameraIsOffline": "{{camera}} не в сети",
"detectIsVerySlow": "{{detect}} идёт очень медленно ({{speed}} мс)",
"detectIsSlow": "{{detect}} идёт медленно ({{speed}} мс)",
"shmTooLow": "Объем выделенной памяти /dev/shm ({{total}} МБ) должен быть увеличен как минимум до {{min}} МБ."
"shmTooLow": "Объем выделенной памяти /dev/shm ({{total}} МБ) должен быть увеличен как минимум до {{min}} МБ.",
"debugReplayActive": "Активна сессия отладочного повтора"
},
"enrichments": {
"title": "Обогащение данных",