diff --git a/web/public/locales/ru/common.json b/web/public/locales/ru/common.json
index d36cc39486..ce8a77c87e 100644
--- a/web/public/locales/ru/common.json
+++ b/web/public/locales/ru/common.json
@@ -136,7 +136,8 @@
"resetToDefault": "Сброс к значению по умолчанию",
"expand": "Развернуть",
"collapse": "Свернуть",
- "reload": "Перезагрузка"
+ "reload": "Перезагрузка",
+ "clear": "Очистить"
},
"label": {
"back": "Вернуться",
@@ -218,7 +219,8 @@
"ur": "اردو (Урду)",
"zhHant": "繁體中文 (Традиционный Китайский)",
"hr": "Hrvatski (Хорватский)",
- "bs": "Bosanski (Боснийский)"
+ "bs": "Bosanski (Боснийский)",
+ "be": "Белорусский"
},
"darkMode": {
"withSystem": {
@@ -330,5 +332,36 @@
"no_items": "Нет элементов",
"credentialField": {
"savedPlaceholder": "Сохранено — оставьте пустым, чтобы сохранить текущее значение"
+ },
+ "error": {
+ "title": "Эта страница остановила работу",
+ "desc": "На странице произошла непредвиденная ошибка. Обычно она устраняется перезагрузкой. Если проблема повторяется, скопируйте сведения об ошибке и приложите их к обсуждению на GitHub.",
+ "staleTitle": "Требуется перезагрузка",
+ "staleDesc": "Часть интерфейса не удалось загрузить; обычно это означает, что Frigate был обновлен, пока эта вкладка была открыта. Перезагрузите страницу, чтобы загрузить новую версию.",
+ "partial": "Часть интерфейса перестала работать.",
+ "copyDetails": "Скопировать сведения",
+ "copyFailed": "Не удалось скопировать сведения в буфер обмена"
+ },
+ "commandMenu": {
+ "title": "Меню команд",
+ "description": "Поиск по страницам, камерам, настройкам и действиям",
+ "placeholder": "Поиск по страницам, камерам, настройкам и действиям",
+ "empty": "Совпадений не найдено",
+ "hint": "{{key}} или / для открытия, Enter для запуска",
+ "section": {
+ "recent": "Недавние",
+ "pages": "Страницы",
+ "cameras": "Камеры",
+ "cameraGroups": "Группы камер",
+ "settings": "Настройки",
+ "actions": "Действия"
+ },
+ "camera": {
+ "live": "Прямой эфир",
+ "review": "Обзор"
+ },
+ "action": {
+ "toggleTheme": "Переключить светлый и тёмный режимы"
+ }
}
}
diff --git a/web/public/locales/ru/components/dialog.json b/web/public/locales/ru/components/dialog.json
index 0b6f541236..654f0adc12 100644
--- a/web/public/locales/ru/components/dialog.json
+++ b/web/public/locales/ru/components/dialog.json
@@ -60,7 +60,8 @@
"success": "Экспорт успешно запущен. Файл доступен на странице экспорта.",
"error": {
"failed": "Не удалось запустить экспорт: {{error}}",
- "endTimeMustAfterStartTime": "Время окончания должно быть после времени начала"
+ "endTimeMustAfterStartTime": "Время окончания должно быть после времени начала",
+ "noValidTimeSelected": "Не выбран допустимый диапазон времени"
},
"view": "Просмотр",
"queued": "Экспорт поставлен в очередь. Следите за ходом выполнения на странице экспорта.",
@@ -71,11 +72,15 @@
"batchFailed": "Неудавшихся экспортов: {{total}}. Неудавшиеся камеры: {{failedCameras}}",
"batchQueuedSuccess_one": "1 экспорт поставлен в очередь. Открываем случай.",
"batchQueuedSuccess_few": "{{count}} экспорта поставлено в очередь. Открываем случай.",
- "batchQueuedSuccess_many": "{{count}} экспортов поставлены в очередь. Открываем случай."
+ "batchQueuedSuccess_many": "{{count}} экспортов поставлены в очередь. Открываем случай.",
+ "batchQueuedPartial": "В очереди {{successful}} из {{total}} экспортов. Камеры с ошибками: {{failedCameras}}",
+ "batchQueueFailed": "Не удалось поставить в очередь {{total}} экспорта. Камеры с ошибками: {{failedCameras}}"
},
"fromTimeline": {
"saveExport": "Сохранить экспорт",
- "previewExport": "Предпросмотр экспорта"
+ "previewExport": "Предпросмотр экспорта",
+ "queueingExport": "Экспорт в очереди...",
+ "useThisRange": "Использовать этот диапазон"
},
"case": {
"label": "Случай",
@@ -108,7 +113,27 @@
"detectionCount_few": "{{count}} отслеживаемых объекта",
"detectionCount_many": "{{count}} отслеживаемых объектов",
"nameLabel": "экспортируемое имя",
- "namePlaceholder": "Необязательное базовое имя для экспорта"
+ "namePlaceholder": "Необязательное базовое имя для экспорта",
+ "queueingButton": "Экспорт в очередь..."
+ },
+ "stream": {
+ "label": "Качество",
+ "auto": "Авто",
+ "main": "Оригинал",
+ "sub": "Низкий",
+ "autoDesc": "Использует основной поток и переключается на поток более низкого качества, если основной недоступен.",
+ "mainDesc": "Экспортируется только основной поток исходного качества. Временные интервалы, в которых основной поток недоступен, будут пропущены.",
+ "subDesc": "Экспортируется только субпоток более низкого качества. Временные интервалы, в которых субпоток недоступен, будут пропущены."
+ },
+ "multi": {
+ "description": "Экспортируйте каждый выбранный обзор. Все экспортированные данные будут сгруппированы в одном кейсе.",
+ "descriptionNoCase": "Экспортировать каждый выбранный обзор.",
+ "caseNamePlaceholder": "Обзор экспорта — {{date}}",
+ "exportingButton": "Экспортируется...",
+ "toast": {
+ "partial": "Начато {{successful}} из {{total}} экспортов. Неудачных: {{failedItems}}",
+ "failed": "Не удалось запустить {{total}} экспортов. Ошибка: {{failedItems}}"
+ }
}
},
"streaming": {
@@ -154,7 +179,22 @@
"export": "Экспорт",
"markAsReviewed": "Пометить как просмотренное",
"deleteNow": "Удалить сейчас",
- "markAsUnreviewed": "Отметить как непросмотренное"
+ "markAsUnreviewed": "Отметить как непросмотренное",
+ "generateDescription": "Сгенерировать описание"
+ },
+ "shareTimestamp": {
+ "label": "Поделиться отметкой времени",
+ "title": "Поделиться отметкой времени",
+ "description": "Отправьте ссылку с временной меткой, отображающей текущую позицию в проигрывателе, либо задайте свою временную метку. Учтите, что эта ссылка не является публичной и доступна только пользователям с доступом к Frigate и данной камере.",
+ "custom": "Пользовательская временная метка",
+ "button": "Поделиться URL метки времени",
+ "shareTitle": "Временная метка обзора Frigate: {{camera}}"
+ },
+ "genaiDescription": {
+ "toast": {
+ "success": "Для этого пункта обзора запрошено описание с помощью GenAI.",
+ "error": "Не удалось запросить описание: {{error}}"
+ }
}
},
"imagePicker": {
diff --git a/web/public/locales/ru/components/player.json b/web/public/locales/ru/components/player.json
index 1653150948..38efbadf33 100644
--- a/web/public/locales/ru/components/player.json
+++ b/web/public/locales/ru/components/player.json
@@ -3,7 +3,8 @@
"noPreviewFound": "Предпросмотр не найден",
"submitFrigatePlus": {
"title": "Отправить этот кадр в Frigate+?",
- "submit": "Отправить"
+ "submit": "Отправить",
+ "previewError": "Не удалось загрузить предварительный просмотр снимка. Возможно, запись в данный момент недоступна."
},
"noPreviewFoundFor": "Не найдено предпросмотра для {{cameraName}}",
"livePlayerRequiredIOSVersion": "iOS 17.1 или выше требуется для этого типа стрима.",
@@ -38,5 +39,16 @@
"success": {
"submittedFrigatePlus": "Кадр успешно загружен в Frigate+"
}
+ },
+ "cameraOff": "Камера выключена",
+ "quality": {
+ "auto": "Авто",
+ "autoLow": "Воспроизведение в низком качестве (ограниченная пропускная способность)",
+ "autoLowCodec": "Воспроизводится в низком качестве (исходное качество не поддерживается этим браузером)",
+ "autoLowSaveData": "Воспроизведение в низком качестве (режим экономии данных)",
+ "main": "Оригинал",
+ "sub": "Низкое",
+ "notSupportedBrowser": "Не поддерживается этим браузером",
+ "label": "Качество"
}
}
diff --git a/web/public/locales/ru/views/settings.json b/web/public/locales/ru/views/settings.json
index de6b8e65fa..b094eafe08 100644
--- a/web/public/locales/ru/views/settings.json
+++ b/web/public/locales/ru/views/settings.json
@@ -278,7 +278,6 @@
"desc": "Frigate может отправлять push-уведомления на ваше устройство, когда приложение открыто в браузере или установлено как PWA."
},
"notificationUnavailable": {
- "title": "Уведомления недоступны",
"desc": "Веб-уведомления требуют защищённого контекста (https://…). Это ограничение браузера. Получите безопасный доступ к Frigate, чтобы использовать уведомления.",
"descPwa": "На iOS веб-уведомления доступны только в том случае, если Frigate установлен на главном экране. Откройте меню Поделиться, выберите Добавить на главный экран, затем откройте Frigate с помощью нового значка, чтобы зарегистрировать это устройство для уведомлений."
},
@@ -842,7 +841,6 @@
}
},
"semanticSearch": {
- "title": "Семантический поиск выключен",
"desc": "Для использования триггеров необходимо включить семантический поиск."
},
"wizard": {
diff --git a/web/public/locales/ru/views/system.json b/web/public/locales/ru/views/system.json
index 3033f5c8f0..1ff4f39f73 100644
--- a/web/public/locales/ru/views/system.json
+++ b/web/public/locales/ru/views/system.json
@@ -227,8 +227,6 @@
},
"lastRefreshed": "Обновлено: ",
"stats": {
- "ffmpegHighCpuUsage": "Камера {{camera}} использует чрезмерно много ресурсов CPU в FFmpeg ({{ffmpegAvg}}%)",
- "detectHighCpuUsage": "Камера {{camera}} использует слишком много ресурсов CPU для детекции ({{detectAvg}}%)",
"healthy": "Система в порядке",
"reindexingEmbeddings": "Переиндексация эмбеддингов (выполнено {{processed}} %)",
"cameraIsOffline": "{{camera}} не в сети",