diff --git a/web/public/locales/ru/components/dialog.json b/web/public/locales/ru/components/dialog.json index 654f0adc12..46c3a37555 100644 --- a/web/public/locales/ru/components/dialog.json +++ b/web/public/locales/ru/components/dialog.json @@ -87,8 +87,7 @@ "placeholder": "Выберите случай", "newCaseOption": "Создайте новый случай", "newCaseNamePlaceholder": "Имя нового случая", - "newCaseDescriptionPlaceholder": "Описание случая", - "nonAdminHelp": "Для этих экспортов будет создан новый случай." + "newCaseDescriptionPlaceholder": "Описание случая" }, "queueing": "Помещаем Экспорт в очередь...", "tabs": { @@ -114,7 +113,11 @@ "detectionCount_many": "{{count}} отслеживаемых объектов", "nameLabel": "экспортируемое имя", "namePlaceholder": "Необязательное базовое имя для экспорта", - "queueingButton": "Экспорт в очередь..." + "queueingButton": "Экспорт в очередь...", + "exportButton_one": "Экспортировать {{count}} камеру", + "exportButton_few": "Экспортировать {{count}} камеры", + "exportButton_many": "Экспортировать {{count}} камер", + "noCamerasSelected": "Выберите хотя бы одну камеру" }, "stream": { "label": "Качество", @@ -132,8 +135,17 @@ "exportingButton": "Экспортируется...", "toast": { "partial": "Начато {{successful}} из {{total}} экспортов. Неудачных: {{failedItems}}", - "failed": "Не удалось запустить {{total}} экспортов. Ошибка: {{failedItems}}" - } + "failed": "Не удалось запустить {{total}} экспортов. Ошибка: {{failedItems}}", + "started_one": "Запущен {{count}} экспорт.", + "started_few": "Запущено {{count}} экспорта.", + "started_many": "Запущено {{count}} экспортов." + }, + "title_one": "Экспорт {{count}} обзора событий", + "title_few": "Экспорт {{count}} обзоров событий", + "title_many": "Экспорт {{count}} обзоров событий", + "exportButton_one": "Экспортировать {{count}} обзор событий", + "exportButton_few": "Экспортировать {{count}} обзора событий", + "exportButton_many": "Экспортировать {{count}} обзоров событий" } }, "streaming": { diff --git a/web/public/locales/ru/components/player.json b/web/public/locales/ru/components/player.json index 38efbadf33..d6ad07483a 100644 --- a/web/public/locales/ru/components/player.json +++ b/web/public/locales/ru/components/player.json @@ -30,11 +30,14 @@ } }, "decodedFrames": "Декодированные кадры:", - "droppedFrameRate": "Частота пропущенных кадров:" + "droppedFrameRate": "Частота пропущенных кадров:", + "stream": "Поток:", + "streamAuto": "{{stream}} (авто)" }, "toast": { "error": { - "submitFrigatePlusFailed": "Не удалось отправить кадр в Frigate+" + "submitFrigatePlusFailed": "Не удалось отправить кадр в Frigate+", + "playRecordingsFailed": "Не удалось воспроизвести записи (ошибка {{code}}): {{message}}" }, "success": { "submittedFrigatePlus": "Кадр успешно загружен в Frigate+" @@ -49,6 +52,10 @@ "main": "Оригинал", "sub": "Низкое", "notSupportedBrowser": "Не поддерживается этим браузером", - "label": "Качество" + "label": "Качество", + "noAudio": "Нет звука", + "audioRate": "Звук {{rate}} кГц", + "audioCodecRate": "{{codec}} {{rate}} кГц", + "noRecordings": "Нет записей в этом временном диапазоне" } } diff --git a/web/public/locales/ru/config/cameras.json b/web/public/locales/ru/config/cameras.json index f86650a869..5f1459b9b7 100644 --- a/web/public/locales/ru/config/cameras.json +++ b/web/public/locales/ru/config/cameras.json @@ -46,6 +46,10 @@ "num_threads": { "label": "Обнаружение потоков", "description": "Количество потоков, используемых для обработки обнаружения звука." + }, + "labelmap": { + "label": "Настройка карты меток звуков", + "description": "Переопределения или записи переназначения для объединения со стандартной картой меток звуков." } }, "audio_transcription": { @@ -73,6 +77,10 @@ "order": { "label": "Позиция", "description": "Числовое значение, управляющее порядком расположения камер в схеме Birdseye." + }, + "modes": { + "label": "Типы активности", + "description": "Типы активности, при которых камеры включаются в Birdseye." } }, "detect": { @@ -133,6 +141,9 @@ "annotation_offset": { "label": "Смещение аннотации", "description": "Миллисекунды для обнаружения смещения аннотаций, чтобы лучше совместить ограничивающие рамки временной шкалы с записями; может быть положительным или отрицательным." + }, + "scene": { + "description": "Окружение в поле зрения камеры, используемое для выбора запускаемой на ней модели из числа настроенных. Камеры со значением 'default' используют модель, для которой задана сцена 'default'." } }, "mqtt": { @@ -214,6 +225,10 @@ "record": { "label": "Выходные аргументы записи", "description": "Выходные аргументы по умолчанию для потоков роли запись." + }, + "record_sub": { + "label": "Аргументы вывода для записи дополнительного потока", + "description": "Аргументы вывода для потоков с ролью record_sub. Если не заданы, используются аргументы вывода для записи (record)." } }, "retry_interval": { @@ -269,7 +284,31 @@ "label": "Качество live-потока", "description": "Качество кодирования потока jsmpeg (1 — наивысшее, 31 — наинизшее)." }, - "description": "Настройки веб-интерфейса для выбора live-потока, разрешения и качества." + "description": "Настройки веб-интерфейса для выбора live-потока, разрешения и качества.", + "transcode": { + "label": "Перекодированные потоки", + "description": "Потоки прямой трансляции пониженного качества, перекодируемые go2rtc по запросу.", + "enabled": { + "label": "Включить перекодированные потоки", + "description": "Добавить потоки прямой трансляции пониженного качества, которые go2rtc перекодирует в реальном времени во время просмотра." + }, + "source": { + "label": "Исходный поток", + "description": "Поток go2rtc для перекодирования. По умолчанию используется первый поток прямой трансляции." + }, + "qualities": { + "label": "Уровни качества", + "description": "Для каждого уровня качества добавляется один перекодированный поток.", + "height": { + "label": "Высота", + "description": "Высота выходного изображения в пикселях; ширина определяется соотношением сторон исходного изображения." + }, + "bitrate": { + "label": "Битрейт", + "description": "Целевой и максимальный битрейт видео в кбит/с." + } + } + } }, "motion": { "label": "Обнаружение движения", @@ -525,7 +564,43 @@ "label": "Исходное состояние записи", "description": "Указывает, была ли запись включена в исходной статической конфигурации." }, - "description": "Настройки записи и хранения для этой камеры." + "description": "Настройки записи и хранения для этой камеры.", + "sub": { + "label": "Запись дополнительного потока", + "description": "Настройки записи второго потока пониженного качества.", + "enabled": { + "label": "Включить запись дополнительного потока", + "description": "Включить запись второго потока пониженного качества для воспроизведения с адаптивным качеством и более длительного хранения." + }, + "continuous": { + "label": "Хранение непрерывной записи дополнительного потока", + "description": "Количество дней хранения записей дополнительного потока независимо от наличия отслеживаемых объектов или движения.", + "days": { + "label": "Срок хранения в днях", + "description": "Количество дней хранения записей." + } + }, + "motion": { + "label": "Хранение записей дополнительного потока с движением", + "description": "Количество дней хранения записей дополнительного потока, вызванных обнаружением движения.", + "days": { + "label": "Срок хранения в днях", + "description": "Количество дней хранения записей." + } + }, + "alerts": { + "label": "Хранение записей дополнительного потока с тревогами", + "description": "Настройки хранения записей дополнительного потока с тревогами.", + "days": { + "label": "Срок хранения в днях", + "description": "Количество дней хранения записей событий обнаружения." + }, + "mode": { + "label": "Режим хранения", + "description": "Режим хранения: all (сохранять все сегменты), motion (сохранять сегменты с движением) или active_objects (сохранять сегменты с активными объектами)." + } + } + } }, "review": { "label": "Проверка", diff --git a/web/public/locales/ru/config/global.json b/web/public/locales/ru/config/global.json index 4a2ba160c6..020ee3b6fe 100644 --- a/web/public/locales/ru/config/global.json +++ b/web/public/locales/ru/config/global.json @@ -33,7 +33,11 @@ "label": "Обнаружение потоков", "description": "Количество потоков, используемых для обработки обнаружения звука." }, - "description": "Настройки обнаружения событий по звуку для всех камер; можно переопределить для каждой камеры." + "description": "Настройки обнаружения событий по звуку для всех камер; можно переопределить для каждой камеры.", + "labelmap": { + "label": "Настройка карты меток звуков", + "description": "Переопределения или записи переназначения для объединения со стандартной картой меток звуков." + } }, "audio_transcription": { "label": "Расшифровка аудиозаписи", @@ -105,6 +109,10 @@ "idle_heartbeat_fps": { "label": "Пустой пульс FPS", "description": "Количество кадров в секунду для повторной отправки последнего составленного кадра Birdseye в режиме ожидания; установите значение 0, чтобы отключить." + }, + "modes": { + "label": "Типы активности", + "description": "Типы активности, при которых камеры включаются в Birdseye." } }, "detect": { @@ -165,6 +173,9 @@ "annotation_offset": { "label": "Смещение аннотации", "description": "Миллисекунды для обнаружения смещения аннотаций, чтобы лучше совместить ограничивающие рамки временной шкалы с записями; может быть положительным или отрицательным." + }, + "scene": { + "description": "Окружение в поле зрения камеры, используемое для выбора запускаемой на ней модели из числа настроенных. Камеры со значением 'default' используют модель, для которой задана сцена 'default'." } }, "version": { @@ -504,6 +515,10 @@ "record": { "label": "Выходные аргументы записи", "description": "Выходные аргументы по умолчанию для потоков роли запись." + }, + "record_sub": { + "label": "Аргументы вывода для записи дополнительного потока", + "description": "Аргументы вывода для потоков с ролью record_sub. Если не заданы, используются аргументы вывода для записи (record)." } }, "retry_interval": { @@ -557,6 +572,30 @@ "quality": { "label": "Качество live-потока", "description": "Качество кодирования потока jsmpeg (1 — наивысшее, 31 — наинизшее)." + }, + "transcode": { + "label": "Перекодированные потоки", + "description": "Потоки прямой трансляции пониженного качества, перекодируемые go2rtc по запросу.", + "enabled": { + "label": "Включить перекодированные потоки", + "description": "Добавить потоки прямой трансляции пониженного качества, которые go2rtc перекодирует в реальном времени во время просмотра." + }, + "source": { + "label": "Исходный поток", + "description": "Поток go2rtc для перекодирования. По умолчанию используется первый поток прямой трансляции." + }, + "qualities": { + "label": "Уровни качества", + "description": "Для каждого уровня качества добавляется один перекодированный поток.", + "height": { + "label": "Высота", + "description": "Высота выходного изображения в пикселях; ширина определяется соотношением сторон исходного изображения." + }, + "bitrate": { + "label": "Битрейт", + "description": "Целевой и максимальный битрейт видео в кбит/с." + } + } } }, "motion": { @@ -848,6 +887,42 @@ "enabled_in_config": { "label": "Исходное состояние записи", "description": "Указывает, была ли запись включена в исходной статической конфигурации." + }, + "sub": { + "label": "Запись дополнительного потока", + "description": "Настройки записи второго потока пониженного качества.", + "enabled": { + "label": "Включить запись дополнительного потока", + "description": "Включить запись второго потока пониженного качества для воспроизведения с адаптивным качеством и более длительного хранения." + }, + "continuous": { + "label": "Хранение непрерывной записи дополнительного потока", + "description": "Количество дней хранения записей дополнительного потока независимо от наличия отслеживаемых объектов или движения.", + "days": { + "label": "Срок хранения в днях", + "description": "Количество дней хранения записей." + } + }, + "motion": { + "label": "Хранение записей дополнительного потока с движением", + "description": "Количество дней хранения записей дополнительного потока, вызванных обнаружением движения.", + "days": { + "label": "Срок хранения в днях", + "description": "Количество дней хранения записей." + } + }, + "alerts": { + "label": "Хранение записей дополнительного потока с тревогами", + "description": "Настройки хранения записей дополнительного потока с тревогами.", + "days": { + "label": "Срок хранения в днях", + "description": "Количество дней хранения записей событий обнаружения." + }, + "mode": { + "label": "Режим хранения", + "description": "Режим хранения: all (сохранять все сегменты), motion (сохранять сегменты с движением) или active_objects (сохранять сегменты с активными объектами)." + } + } } }, "review": { @@ -1399,5 +1474,15 @@ "label": "Игнорировать несоответствие времени", "description": "Игнорировать расхождение времени между камерой и сервером Frigate при обмене по ONVIF." } + }, + "models": { + "label": "Модели обнаружения", + "description": "Модели обнаружения объектов и оборудование, на котором работает каждая из них. Камеры выбирают модель, сопоставляя значение параметра detect.scene со значением scene модели. Если совпадение не найдено, используется модель default.", + "scene": { + "description": "Название окружения камеры, для которого предназначена модель, например thermal. Камеры выбирают модель по соответствующему значению параметра detect.scene. Если параметр не задан, используется модель default." + }, + "devices": { + "label": "Оборудование для обнаружения" + } } } diff --git a/web/public/locales/ru/views/settings.json b/web/public/locales/ru/views/settings.json index b094eafe08..a5581a6625 100644 --- a/web/public/locales/ru/views/settings.json +++ b/web/public/locales/ru/views/settings.json @@ -49,7 +49,7 @@ "systemTelemetry": "Телеметрия", "systemBirdseye": "Режим Birdseye", "systemFfmpeg": "FFmpeg", - "systemDetectorsAndModel": "Детекторы и модель", + "systemDetectorsAndModel": "Модели обнаружения", "systemMqtt": "MQTT", "systemGo2rtcStreams": "потоки go2rtc", "integrationSemanticSearch": "Семантический поиск", @@ -203,13 +203,6 @@ "title": "Подтвердите пароль", "placeholder": "Подтвердите пароль" }, - "strength": { - "title": "Сложность пароля: ", - "weak": "Слабый", - "medium": "Средний", - "strong": "Сложный", - "veryStrong": "Очень сложный" - }, "match": "Пароли совпадают", "notMatch": "Пароли не совпадают", "show": "Показать пароль", @@ -237,7 +230,8 @@ "title": "Создать нового пользователя", "usernameOnlyInclude": "Имя пользователя может включать только буквы, цифры, . или _", "desc": "Добавить новую учетную запись пользователя и определить роль для доступа к разделам интерфейса Frigate.", - "confirmPassword": "Пожалуйста, подтвердите пароль" + "confirmPassword": "Пожалуйста, подтвердите пароль", + "usernameOnlyDots": "Имя пользователя не может состоять только из точек" } }, "title": "Пользователи", @@ -1938,5 +1932,8 @@ "onvif": { "autotrackingNoZones": "Для автослежения требуется хотя бы одна зона. Определите зону для этой камеры в Масках/Зонах, затем установите ее как обязательную зону ниже." } + }, + "detectionModels": { + "title": "Модели обнаружения" } }