mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-10-02 12:56:51 +03:00
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:
committed by
Josh Hawkins
co-authored by
Artem Vladimirov
parent
48acba8dab
commit
b914f32cea
@@ -119,7 +119,9 @@
|
|||||||
"noCameras": "Нет доступных камер",
|
"noCameras": "Нет доступных камер",
|
||||||
"detectionCount_one": "{{count}} отслеживаемый объект",
|
"detectionCount_one": "{{count}} отслеживаемый объект",
|
||||||
"detectionCount_few": "{{count}} отслеживаемых объекта",
|
"detectionCount_few": "{{count}} отслеживаемых объекта",
|
||||||
"detectionCount_many": "{{count}} отслеживаемых объектов"
|
"detectionCount_many": "{{count}} отслеживаемых объектов",
|
||||||
|
"nameLabel": "экспортируемое имя",
|
||||||
|
"namePlaceholder": "Необязательное базовое имя для экспорта"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"streaming": {
|
"streaming": {
|
||||||
|
|||||||
@@ -140,12 +140,42 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mqtt": {
|
"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 (0–100)."
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"notifications": {
|
"notifications": {
|
||||||
"label": "Уведомления",
|
"label": "Уведомления",
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"label": "Включить уведомления"
|
"label": "Включить уведомления",
|
||||||
|
"description": "Включить или отключить уведомления для этой камеры."
|
||||||
},
|
},
|
||||||
"email": {
|
"email": {
|
||||||
"label": "Уведомление по электронной почте",
|
"label": "Уведомление по электронной почте",
|
||||||
@@ -158,7 +188,8 @@
|
|||||||
"enabled_in_config": {
|
"enabled_in_config": {
|
||||||
"label": "Исходное состояние уведомлений",
|
"label": "Исходное состояние уведомлений",
|
||||||
"description": "Указывает, были ли уведомления включены в исходной статической конфигурации."
|
"description": "Указывает, были ли уведомления включены в исходной статической конфигурации."
|
||||||
}
|
},
|
||||||
|
"description": "Настройки включения и управления уведомлениями для этой камеры."
|
||||||
},
|
},
|
||||||
"ffmpeg": {
|
"ffmpeg": {
|
||||||
"path": {
|
"path": {
|
||||||
@@ -222,9 +253,11 @@
|
|||||||
},
|
},
|
||||||
"input_args": {
|
"input_args": {
|
||||||
"label": "Входные аргументы",
|
"label": "Входные аргументы",
|
||||||
"description": "Входные аргументы, специфичные для этого потока."
|
"description": "Входные аргументы именно для этого потока."
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"label": "Потоки (FFmpeg)",
|
||||||
|
"description": "Входы потоков камеры и параметры FFmpeg: путь к бинарнику, аргументы, аппаратное ускорение и выходные аргументы по ролям."
|
||||||
},
|
},
|
||||||
"live": {
|
"live": {
|
||||||
"label": "Просмотр в реальном времени",
|
"label": "Просмотр в реальном времени",
|
||||||
@@ -239,12 +272,14 @@
|
|||||||
"quality": {
|
"quality": {
|
||||||
"label": "Качество live-потока",
|
"label": "Качество live-потока",
|
||||||
"description": "Качество кодирования потока jsmpeg (1 — наивысшее, 31 — наинизшее)."
|
"description": "Качество кодирования потока jsmpeg (1 — наивысшее, 31 — наинизшее)."
|
||||||
}
|
},
|
||||||
|
"description": "Настройки веб-интерфейса для выбора live-потока, разрешения и качества."
|
||||||
},
|
},
|
||||||
"motion": {
|
"motion": {
|
||||||
"label": "Обнаружение движения",
|
"label": "Обнаружение движения",
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"label": "Включить обнаружение движения"
|
"label": "Включить обнаружение движения",
|
||||||
|
"description": "Включить или отключить обнаружение движения для этой камеры."
|
||||||
},
|
},
|
||||||
"threshold": {
|
"threshold": {
|
||||||
"label": "Порог движения",
|
"label": "Порог движения",
|
||||||
@@ -292,13 +327,15 @@
|
|||||||
},
|
},
|
||||||
"raw_mask": {
|
"raw_mask": {
|
||||||
"label": "Исходная маска"
|
"label": "Исходная маска"
|
||||||
}
|
},
|
||||||
|
"description": "Настройки обнаружения движения по умолчанию для этой камеры."
|
||||||
},
|
},
|
||||||
"objects": {
|
"objects": {
|
||||||
"label": "Объекты",
|
"label": "Объекты",
|
||||||
"description": "Параметры отслеживания объектов по умолчанию, включая метки для отслеживания и фильтры для каждого объекта.",
|
"description": "Параметры отслеживания объектов по умолчанию, включая метки для отслеживания и фильтры для каждого объекта.",
|
||||||
"track": {
|
"track": {
|
||||||
"label": "Объекты для отслеживания"
|
"label": "Объекты для отслеживания",
|
||||||
|
"description": "Список меток объектов для отслеживания на этой камере."
|
||||||
},
|
},
|
||||||
"filters": {
|
"filters": {
|
||||||
"label": "Фильтры объектов",
|
"label": "Фильтры объектов",
|
||||||
@@ -394,7 +431,8 @@
|
|||||||
"record": {
|
"record": {
|
||||||
"label": "Запись",
|
"label": "Запись",
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"label": "Включить запись"
|
"label": "Включить запись",
|
||||||
|
"description": "Включить или отключить запись для этой камеры."
|
||||||
},
|
},
|
||||||
"expire_interval": {
|
"expire_interval": {
|
||||||
"label": "Запись интервала очистки",
|
"label": "Запись интервала очистки",
|
||||||
@@ -490,7 +528,8 @@
|
|||||||
"enabled_in_config": {
|
"enabled_in_config": {
|
||||||
"label": "Исходное состояние записи",
|
"label": "Исходное состояние записи",
|
||||||
"description": "Указывает, была ли запись включена в исходной статической конфигурации."
|
"description": "Указывает, была ли запись включена в исходной статической конфигурации."
|
||||||
}
|
},
|
||||||
|
"description": "Настройки записи и хранения для этой камеры."
|
||||||
},
|
},
|
||||||
"review": {
|
"review": {
|
||||||
"label": "Проверка",
|
"label": "Проверка",
|
||||||
@@ -498,7 +537,8 @@
|
|||||||
"label": "Конфигурация оповещений",
|
"label": "Конфигурация оповещений",
|
||||||
"description": "Настройки, для которых отслеживаемые объекты генерируют оповещения и как оповещения сохраняются.",
|
"description": "Настройки, для которых отслеживаемые объекты генерируют оповещения и как оповещения сохраняются.",
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"label": "Включить оповещения"
|
"label": "Включить оповещения",
|
||||||
|
"description": "Включить или отключить создание тревог для этой камеры."
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"label": "Предупреждающие ярлыки",
|
"label": "Предупреждающие ярлыки",
|
||||||
@@ -521,7 +561,8 @@
|
|||||||
"label": "Конфигурация обнаружения",
|
"label": "Конфигурация обнаружения",
|
||||||
"description": "Настройки, для которых отслеживаемые объекты генерируют обнаружения (без оповещения) и порядок сохранения обнаружений.",
|
"description": "Настройки, для которых отслеживаемые объекты генерируют обнаружения (без оповещения) и порядок сохранения обнаружений.",
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"label": "Включить обнаружение"
|
"label": "Включить обнаружение",
|
||||||
|
"description": "Включить или отключить события обнаружения для этой камеры."
|
||||||
},
|
},
|
||||||
"labels": {
|
"labels": {
|
||||||
"label": "Метки обнаружения",
|
"label": "Метки обнаружения",
|
||||||
@@ -579,12 +620,14 @@
|
|||||||
"label": "Промпт контекста активности",
|
"label": "Промпт контекста активности",
|
||||||
"description": "Пользовательский промпт, описывающий, какая активность считается подозрительной, а какая нет, для контекста сводок GenAI."
|
"description": "Пользовательский промпт, описывающий, какая активность считается подозрительной, а какая нет, для контекста сводок GenAI."
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"description": "Настройки тревог, обнаружений и сводок GenAI для проверки, которые использует интерфейс и хранилище этой камеры."
|
||||||
},
|
},
|
||||||
"snapshots": {
|
"snapshots": {
|
||||||
"label": "Снимки",
|
"label": "Снимки",
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"label": "Включить снимки"
|
"label": "Включить снимки",
|
||||||
|
"description": "Включить или отключить сохранение снимков для этой камеры."
|
||||||
},
|
},
|
||||||
"timestamp": {
|
"timestamp": {
|
||||||
"label": "Наложение временной метки",
|
"label": "Наложение временной метки",
|
||||||
@@ -621,7 +664,8 @@
|
|||||||
"quality": {
|
"quality": {
|
||||||
"label": "Качество снимка",
|
"label": "Качество снимка",
|
||||||
"description": "Качество кодирования для сохраненных снимков (0–100)."
|
"description": "Качество кодирования для сохраненных снимков (0–100)."
|
||||||
}
|
},
|
||||||
|
"description": "Настройки снимков отслеживаемых объектов, создаваемых через API для этой камеры."
|
||||||
},
|
},
|
||||||
"timestamp_style": {
|
"timestamp_style": {
|
||||||
"label": "Стиль временной метки",
|
"label": "Стиль временной метки",
|
||||||
@@ -656,7 +700,8 @@
|
|||||||
"effect": {
|
"effect": {
|
||||||
"label": "Эффект временной метки",
|
"label": "Эффект временной метки",
|
||||||
"description": "Визуальный эффект для текста метки времени (нет, сплошной, тень)."
|
"description": "Визуальный эффект для текста метки времени (нет, сплошной, тень)."
|
||||||
}
|
},
|
||||||
|
"description": "Параметры оформления временных меток на снимках и в Debug-виде."
|
||||||
},
|
},
|
||||||
"semantic_search": {
|
"semantic_search": {
|
||||||
"label": "Семантический поиск",
|
"label": "Семантический поиск",
|
||||||
@@ -687,23 +732,27 @@
|
|||||||
"label": "Триггерные действия",
|
"label": "Триггерные действия",
|
||||||
"description": "Список действий при срабатывании триггера (notification, sub_label, attribute)."
|
"description": "Список действий при срабатывании триггера (notification, sub_label, attribute)."
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"description": "Настройки семантического поиска: построение и запросы эмбеддингов объектов для поиска похожих элементов."
|
||||||
},
|
},
|
||||||
"face_recognition": {
|
"face_recognition": {
|
||||||
"label": "Распознавание лиц",
|
"label": "Распознавание лиц",
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"label": "Включить распознавание лиц"
|
"label": "Включить распознавание лиц",
|
||||||
|
"description": "Включить или отключить распознавание лиц."
|
||||||
},
|
},
|
||||||
"min_area": {
|
"min_area": {
|
||||||
"label": "Минимальная площадь лица",
|
"label": "Минимальная площадь лица",
|
||||||
"description": "Минимальная площадь (пиксели) обнаруженного лицевого окна, необходимая для попытки распознавания."
|
"description": "Минимальная площадь (пиксели) обнаруженного лицевого окна, необходимая для попытки распознавания."
|
||||||
}
|
},
|
||||||
|
"description": "Настройки обнаружения и распознавания лиц для этой камеры."
|
||||||
},
|
},
|
||||||
"lpr": {
|
"lpr": {
|
||||||
"label": "Распознавание номерных знаков",
|
"label": "Распознавание номерных знаков",
|
||||||
"description": "Настройки распознавания номерных знаков, включая пороговые значения обнаружения, форматирование и известные номера.",
|
"description": "Настройки распознавания номерных знаков, включая пороговые значения обнаружения, форматирование и известные номера.",
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"label": "Включить LPR"
|
"label": "Включить LPR",
|
||||||
|
"description": "Включить или отключить LPR на этой камере."
|
||||||
},
|
},
|
||||||
"min_area": {
|
"min_area": {
|
||||||
"label": "Минимальная площадь номера",
|
"label": "Минимальная площадь номера",
|
||||||
@@ -719,7 +768,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"label": "Профили"
|
"label": "Профили",
|
||||||
|
"description": "Именованные профили конфигурации с частичными переопределениями, которые можно активировать во время работы."
|
||||||
},
|
},
|
||||||
"onvif": {
|
"onvif": {
|
||||||
"label": "ONVIF",
|
"label": "ONVIF",
|
||||||
@@ -796,5 +846,111 @@
|
|||||||
"label": "Игнорировать несоответствие времени",
|
"label": "Игнорировать несоответствие времени",
|
||||||
"description": "Игнорировать расхождение времени между камерой и сервером Frigate при обмене по ONVIF."
|
"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": "Координаты многоугольника зоны. Можно задать строкой через запятую или списком строк. Координаты должны быть относительными (0–1) или абсолютными (устаревший вариант)."
|
||||||
|
},
|
||||||
|
"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": "Сохраняет исходное состояние камеры."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -766,7 +766,7 @@
|
|||||||
},
|
},
|
||||||
"input_args": {
|
"input_args": {
|
||||||
"label": "Входные аргументы",
|
"label": "Входные аргументы",
|
||||||
"description": "Входные аргументы, специфичные для этого потока."
|
"description": "Входные аргументы именно для этого потока."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -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": "Режим рассуждений"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
},
|
},
|
||||||
"markTheseItemsAsReviewed": "Пометить эти элементы как просмотренные",
|
"markTheseItemsAsReviewed": "Пометить эти элементы как просмотренные",
|
||||||
"selected": "{{count}} выбрано",
|
"selected": "{{count}} выбрано",
|
||||||
"selected_one": "{{count}} выбрано",
|
"selected_one": "{{count}} выбран",
|
||||||
"selected_other": "{{count}} выбрано",
|
"selected_other": "{{count}} выбрано",
|
||||||
"detected": "обнаружен",
|
"detected": "обнаружен",
|
||||||
"suspiciousActivity": "Подозрительная активность",
|
"suspiciousActivity": "Подозрительная активность",
|
||||||
|
|||||||
@@ -14,7 +14,9 @@
|
|||||||
"toast": {
|
"toast": {
|
||||||
"error": {
|
"error": {
|
||||||
"renameExportFailed": "Не удалось переименовать экспорт: {{errorMessage}}",
|
"renameExportFailed": "Не удалось переименовать экспорт: {{errorMessage}}",
|
||||||
"assignCaseFailed": "Не удалось обновить назначение случая: {{errorMessage}}"
|
"assignCaseFailed": "Не удалось обновить назначение случая: {{errorMessage}}",
|
||||||
|
"caseSaveFailed": "Не удалось сохранить случай: {{errorMessage}}",
|
||||||
|
"caseDeleteFailed": "Не удалось удалить случай: {{errorMessage}}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
@@ -22,7 +24,8 @@
|
|||||||
"downloadVideo": "Скачать видео",
|
"downloadVideo": "Скачать видео",
|
||||||
"editName": "Изменить название",
|
"editName": "Изменить название",
|
||||||
"deleteExport": "Удалить экспорт",
|
"deleteExport": "Удалить экспорт",
|
||||||
"assignToCase": "Добавить в случай"
|
"assignToCase": "Добавить в случай",
|
||||||
|
"removeFromCase": "Убрать из случая"
|
||||||
},
|
},
|
||||||
"headings": {
|
"headings": {
|
||||||
"cases": "Случаи",
|
"cases": "Случаи",
|
||||||
@@ -35,5 +38,91 @@
|
|||||||
"newCaseOption": "Создать новый случай",
|
"newCaseOption": "Создать новый случай",
|
||||||
"nameLabel": "Название случая",
|
"nameLabel": "Название случая",
|
||||||
"descriptionLabel": "Описание"
|
"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}}"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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": "Меньшие значения обнаруживают более слабые изменения (1–255)",
|
||||||
|
"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}}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -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."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1890,6 +1890,296 @@
|
|||||||
},
|
},
|
||||||
"timestamp_style": {
|
"timestamp_style": {
|
||||||
"title": "Настройки временной метки"
|
"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": "Для автослежения требуется хотя бы одна зона. Определите зону для этой камеры в Масках/Зонах, затем установите ее как обязательную зону ниже."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,9 +52,15 @@
|
|||||||
"camera": "Камера",
|
"camera": "Камера",
|
||||||
"all_cameras": "Все камеры",
|
"all_cameras": "Все камеры",
|
||||||
"cameras_count_one": "{{count}} камера",
|
"cameras_count_one": "{{count}} камера",
|
||||||
"cameras_count_other": "{{count}} камеры"
|
"cameras_count_other": "{{count}} камеры",
|
||||||
|
"reviews": "Проверки"
|
||||||
},
|
},
|
||||||
"empty": "Сообщения ещё не были получены"
|
"empty": "Сообщения ещё не были получены",
|
||||||
|
"count_one": "{{count}} сообщение",
|
||||||
|
"count_other": "{{count}} сообщения",
|
||||||
|
"expanded": {
|
||||||
|
"payload": "Содержимое"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"general": {
|
"general": {
|
||||||
@@ -103,7 +109,10 @@
|
|||||||
"title": "Предупреждение: статистика Intel GPU",
|
"title": "Предупреждение: статистика Intel GPU",
|
||||||
"message": "Статистика GPU недоступна",
|
"message": "Статистика GPU недоступна",
|
||||||
"description": "Это известная ошибка в инструментах отчетности статистики Intel GPU (intel_gpu_top), из-за которой они ломаются и постоянно возвращают уровень использования GPU 0%, даже в случаях, когда аппаратное ускорение и обнаружение объектов корректно работают на (i)GPU. Это не ошибка Frigate. Вы можете перезапустить хост-систему, чтобы временно устранить проблему и убедиться, что GPU работает правильно. На производительность это не влияет."
|
"description": "Это известная ошибка в инструментах отчетности статистики Intel GPU (intel_gpu_top), из-за которой они ломаются и постоянно возвращают уровень использования GPU 0%, даже в случаях, когда аппаратное ускорение и обнаружение объектов корректно работают на (i)GPU. Это не ошибка Frigate. Вы можете перезапустить хост-систему, чтобы временно устранить проблему и убедиться, что GPU работает правильно. На производительность это не влияет."
|
||||||
}
|
},
|
||||||
|
"gpuCompute": "Вычисления / кодирование GPU",
|
||||||
|
"gpuTemperature": "Температура GPU",
|
||||||
|
"npuTemperature": "Температура NPU"
|
||||||
},
|
},
|
||||||
"otherProcesses": {
|
"otherProcesses": {
|
||||||
"title": "Другие процессы",
|
"title": "Другие процессы",
|
||||||
@@ -113,7 +122,7 @@
|
|||||||
"go2rtc": "go2rtc",
|
"go2rtc": "go2rtc",
|
||||||
"recording": "запись",
|
"recording": "запись",
|
||||||
"review_segment": "сегмент обзора",
|
"review_segment": "сегмент обзора",
|
||||||
"embeddings": "вложения",
|
"embeddings": "эмбеддинги",
|
||||||
"audio_detector": "аудиодетектор"
|
"audio_detector": "аудиодетектор"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -140,7 +149,11 @@
|
|||||||
},
|
},
|
||||||
"shm": {
|
"shm": {
|
||||||
"title": "Выделение разделяемой памяти",
|
"title": "Выделение разделяемой памяти",
|
||||||
"warning": "Текущеее значение разделяемой памяти в {{total}}MB слишком мало. Увеличьте его хотя бы до {{min_shm}}MB."
|
"warning": "Текущее значение разделяемой памяти в {{total}}MB слишком мало. Увеличьте его хотя бы до {{min_shm}}MB.",
|
||||||
|
"frameLifetime": {
|
||||||
|
"title": "Время жизни кадра",
|
||||||
|
"description": "У каждой камеры в разделяемой памяти {{frames}} слотов кадров. При частоте кадров самой быстрой камеры каждый кадр доступен примерно {{lifetime}} с, пока его не перезапишут."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cameras": {
|
"cameras": {
|
||||||
@@ -161,7 +174,22 @@
|
|||||||
"tips": {
|
"tips": {
|
||||||
"title": "Информация о тестировании камеры"
|
"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": "Кадры/детекции",
|
"framesAndDetections": "Кадры/детекции",
|
||||||
"label": {
|
"label": {
|
||||||
@@ -178,7 +206,8 @@
|
|||||||
"overallSkippedDetectionsPerSecond": "общее количество пропущенных обнаружений в секунду",
|
"overallSkippedDetectionsPerSecond": "общее количество пропущенных обнаружений в секунду",
|
||||||
"cameraFfmpeg": "{{camName}} FFmpeg",
|
"cameraFfmpeg": "{{camName}} FFmpeg",
|
||||||
"cameraCapture": "{{camName}} захват",
|
"cameraCapture": "{{camName}} захват",
|
||||||
"cameraDetect": "{{camName}} обнаружения"
|
"cameraDetect": "{{camName}} обнаружения",
|
||||||
|
"cameraGpu": "{{camName}} GPU"
|
||||||
},
|
},
|
||||||
"toast": {
|
"toast": {
|
||||||
"success": {
|
"success": {
|
||||||
@@ -187,6 +216,20 @@
|
|||||||
"error": {
|
"error": {
|
||||||
"unableToProbeCamera": "Не удалось протестировать камеру: {{errorMessage}}"
|
"unableToProbeCamera": "Не удалось протестировать камеру: {{errorMessage}}"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"noCameras": {
|
||||||
|
"title": "Камеры не найдены"
|
||||||
|
},
|
||||||
|
"connectionQuality": {
|
||||||
|
"title": "Качество соединения",
|
||||||
|
"excellent": "Отлично",
|
||||||
|
"fair": "Нормально",
|
||||||
|
"poor": "Плохо",
|
||||||
|
"unusable": "Непригодно",
|
||||||
|
"fps": "FPS",
|
||||||
|
"expectedFps": "Ожидаемый FPS",
|
||||||
|
"reconnectsLastHour": "Переподключения (за последний час)",
|
||||||
|
"stallsLastHour": "Зависания (за последний час)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lastRefreshed": "Обновлено: ",
|
"lastRefreshed": "Обновлено: ",
|
||||||
@@ -195,10 +238,11 @@
|
|||||||
"detectHighCpuUsage": "Камера {{camera}} использует слишком много ресурсов CPU для детекции ({{detectAvg}}%)",
|
"detectHighCpuUsage": "Камера {{camera}} использует слишком много ресурсов CPU для детекции ({{detectAvg}}%)",
|
||||||
"healthy": "Система в порядке",
|
"healthy": "Система в порядке",
|
||||||
"reindexingEmbeddings": "Переиндексация эмбеддингов (выполнено {{processed}} %)",
|
"reindexingEmbeddings": "Переиндексация эмбеддингов (выполнено {{processed}} %)",
|
||||||
"cameraIsOffline": "{{camera}} отключена",
|
"cameraIsOffline": "{{camera}} не в сети",
|
||||||
"detectIsVerySlow": "{{detect}} идёт очень медленно ({{speed}} мс)",
|
"detectIsVerySlow": "{{detect}} идёт очень медленно ({{speed}} мс)",
|
||||||
"detectIsSlow": "{{detect}} идёт медленно ({{speed}} мс)",
|
"detectIsSlow": "{{detect}} идёт медленно ({{speed}} мс)",
|
||||||
"shmTooLow": "Объем выделенной памяти /dev/shm ({{total}} МБ) должен быть увеличен как минимум до {{min}} МБ."
|
"shmTooLow": "Объем выделенной памяти /dev/shm ({{total}} МБ) должен быть увеличен как минимум до {{min}} МБ.",
|
||||||
|
"debugReplayActive": "Активна сессия отладочного повтора"
|
||||||
},
|
},
|
||||||
"enrichments": {
|
"enrichments": {
|
||||||
"title": "Обогащение данных",
|
"title": "Обогащение данных",
|
||||||
|
|||||||
Reference in New Issue
Block a user