diff --git a/web/public/locales/ar/audio.json b/web/public/locales/ar/audio.json
index 19bbfddeac..350d644a71 100644
--- a/web/public/locales/ar/audio.json
+++ b/web/public/locales/ar/audio.json
@@ -149,5 +149,17 @@
"cluck": "قرقرة",
"cock_a_doodle_doo": "كوكو-كو-كوووووو",
"turkey": "ديك رومى",
- "gobble": "كركرة"
+ "gobble": "كركرة",
+ "tearing": "يمزق",
+ "ping": "طنّة",
+ "clang": "صوت رنين",
+ "squeal": "يصرخ",
+ "creak": "صرير",
+ "sizzle": "صوت الأزيز",
+ "clicking": "النقر",
+ "clickety_clack": "طقطقة",
+ "rumble": "الحلبة",
+ "skateboard": "لوح تزلج",
+ "echo": "صدى الصوت",
+ "noise": "ازعاج"
}
diff --git a/web/public/locales/ar/objects.json b/web/public/locales/ar/objects.json
index 03bf58ab19..50d19ad341 100644
--- a/web/public/locales/ar/objects.json
+++ b/web/public/locales/ar/objects.json
@@ -22,5 +22,6 @@
"mouse": "فأر",
"keyboard": "لوحة المفاتيح",
"goat": "معزة",
- "sheep": "غنم"
+ "sheep": "غنم",
+ "skateboard": "لوح تزلج"
}
diff --git a/web/public/locales/bg/audio.json b/web/public/locales/bg/audio.json
index 8eab73ef19..0380caf31b 100644
--- a/web/public/locales/bg/audio.json
+++ b/web/public/locales/bg/audio.json
@@ -355,8 +355,43 @@
"steam_whistle": "Парна свирка",
"mechanisms": "Механизми",
"clock": "Часовник",
- "tick": "",
+ "tick": "Тик",
"tick-tock": "Тиктакане",
"gears": "Зъбни колела",
- "sewing_machine": "Шиеща машина"
+ "sewing_machine": "Шиеща машина",
+ "sound_effect": "Звуков ефект",
+ "tubular_bells": "Тръбни камбани",
+ "mallet_percussion": "Ударни чукчета",
+ "marimba": "Маримба",
+ "glockenspiel": "Металлофон",
+ "steelpan": "Пан барабан",
+ "string_section": "Струнна група",
+ "jingle_bell": "Звънче",
+ "chime": "Звънече",
+ "wind_chime": "Вятърен звън",
+ "singing_bowl": "Пееща купа",
+ "ambient_music": "Амбиентна музика",
+ "new-age_music": "Музика от ново поколение",
+ "vocal_music": "Вокална музика",
+ "gurgling": "Бълбукане",
+ "light_engine": "Лек двигател",
+ "medium_engine": "Среден двигател",
+ "heavy_engine": "Тежък двигател",
+ "ratchet": "Тресчотка",
+ "hammer": "Ръчен чук",
+ "pulleys": "Макари",
+ "mechanical_fan": "Механичен вентилатор",
+ "air_conditioning": "Климатик",
+ "cash_register": "Каса",
+ "printer": "Принтер",
+ "camera": "Камера",
+ "tools": "Инструменти",
+ "artillery_fire": "Артилерийски огън",
+ "boom": "Гръм",
+ "glass": "Стъкло",
+ "crack": "Пукнатина",
+ "wood": "Дърво",
+ "silence": "Тишина",
+ "liquid": "Течност",
+ "splash": "Разливам"
}
diff --git a/web/public/locales/bg/common.json b/web/public/locales/bg/common.json
index 94e85ddd96..fcecbc20a6 100644
--- a/web/public/locales/bg/common.json
+++ b/web/public/locales/bg/common.json
@@ -63,13 +63,17 @@
"untilRestart": "До рестарт",
"mo": "{{time}}мес",
"m": "{{time}}м",
- "s": "{{time}}с"
+ "s": "{{time}}с",
+ "never": "Никога",
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "d MMM yyyy, h:mm aaa"
+ }
},
"button": {
"apply": "Приложи",
"reset": "Нулиране",
"done": "Готово",
- "disabled": "Деактивирано",
+ "disabled": "Изключено",
"save": "Запази",
"saving": "Запазване…",
"cancel": "Отказ",
@@ -80,7 +84,7 @@
"delete": "Изтриване",
"yes": "Да",
"download": "Изтегляне",
- "enabled": "Активирано",
+ "enabled": "Включено",
"history": "История",
"back": "Назад",
"fullscreen": "Цял екран",
@@ -99,8 +103,8 @@
"export": "Експортиране",
"deleteNow": "Изтрии сега",
"next": "Следващ",
- "disable": "Деактивирай",
- "enable": "Активирай"
+ "disable": "Изключи",
+ "enable": "Включи"
},
"menu": {
"live": {
diff --git a/web/public/locales/bg/components/filter.json b/web/public/locales/bg/components/filter.json
index 3aa7b61cea..afb81bb13c 100644
--- a/web/public/locales/bg/components/filter.json
+++ b/web/public/locales/bg/components/filter.json
@@ -30,5 +30,10 @@
"title": "Всички дати",
"short": "Дати"
}
- }
+ },
+ "more": "Още филтри",
+ "reset": {
+ "label": "Рестартирай филтрите по подразбиране"
+ },
+ "timeRange": "Времеви диапазон"
}
diff --git a/web/public/locales/bg/components/player.json b/web/public/locales/bg/components/player.json
index 39d9699d77..706f819b31 100644
--- a/web/public/locales/bg/components/player.json
+++ b/web/public/locales/bg/components/player.json
@@ -34,7 +34,8 @@
},
"submitFrigatePlus": {
"title": "Да се изпрати ли този кадър към Frigate+?",
- "submit": "Изпрати"
+ "submit": "Изпрати",
+ "previewError": "Не можe да се зареди предварителен преглед на моментната снимка. Записът може да не е наличен в момента."
},
"noPreviewFound": "Не е намерен предварителен преглед",
"noRecordingsFoundForThisTime": "За това време не са намерени записи",
@@ -47,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "Неуспешно изпратен кадър към Frigate+"
}
- }
+ },
+ "cameraOff": "Камерата е изключена"
}
diff --git a/web/public/locales/bg/config/cameras.json b/web/public/locales/bg/config/cameras.json
index 0967ef424b..bdace6a15c 100644
--- a/web/public/locales/bg/config/cameras.json
+++ b/web/public/locales/bg/config/cameras.json
@@ -1 +1,69 @@
-{}
+{
+ "label": "Конфигурация на камерата",
+ "timestamp_style": {
+ "label": "Стил на времева щампа",
+ "format": {
+ "label": "Формат на времева щампа"
+ },
+ "color": {
+ "red": {
+ "label": "Червено",
+ "description": "Червен компонент (0-255) за времева щампа."
+ },
+ "green": {
+ "description": "Зелен компонент (0-255) за времева щампа.",
+ "label": "Зелено"
+ },
+ "blue": {
+ "description": "Син компонент (0-255) за времева щампа.",
+ "label": "Синьо"
+ },
+ "label": "Цвят на времева щампа",
+ "description": "RGB стойности за текста на времева щампа (всички стойности 0-255)."
+ },
+ "thickness": {
+ "description": "Дебелина на текстовата линия за времева щампа.",
+ "label": "Дебелина на времева щампа"
+ },
+ "effect": {
+ "label": "Ефект на времева щампа",
+ "description": "Визуален ефект на времева щампа (без, плътен, сянка)."
+ },
+ "position": {
+ "label": "Позиция на времева щампа",
+ "description": "Позиция за времева щампа на снимката (гл/гд/дл/дд)."
+ }
+ },
+ "audio_transcription": {
+ "label": "Аудио транскрипция",
+ "live_enabled": {
+ "label": "Транскрипция на живо"
+ }
+ },
+ "snapshots": {
+ "quality": {
+ "label": "Качество на моментната снимка"
+ },
+ "required_zones": {
+ "label": "Задължителни зони",
+ "description": "Зони в които обект трябва да влезе за да се запази моментна снимка."
+ },
+ "height": {
+ "label": "Височина на моментната снимка"
+ },
+ "retain": {
+ "default": {
+ "description": "Дни по подразбиране за задържане на моментните снимки."
+ }
+ }
+ },
+ "semantic_search": {
+ "label": "Семантично търсене",
+ "triggers": {
+ "label": "Спусък",
+ "friendly_name": {
+ "label": "Удобно име"
+ }
+ }
+ }
+}
diff --git a/web/public/locales/bg/config/global.json b/web/public/locales/bg/config/global.json
index ad191cd667..85376b2f76 100644
--- a/web/public/locales/bg/config/global.json
+++ b/web/public/locales/bg/config/global.json
@@ -4,5 +4,148 @@
"session_length": {
"label": "Продължителност на сесията"
}
+ },
+ "version": {
+ "label": "Текуща версия на конфигурацията",
+ "description": "Версия на активната конфигурация. Помага за проследяване на промени от миграция или форматиране."
+ },
+ "safe_mode": {
+ "label": "Безопасен режим",
+ "description": "При избор, Frigate ще стартира в безопасен режим за отстраняване на неизправности."
+ },
+ "environment_vars": {
+ "label": "Променливи",
+ "description": "Параметри за стартиране на Frigate в Home Assistant OS. Non-HAOS потребителите трябва да използват Docker конфигурация."
+ },
+ "logger": {
+ "label": "Логове",
+ "default": {
+ "label": "Ниво на логовете"
+ }
+ },
+ "timestamp_style": {
+ "label": "Стил на времева щампа",
+ "format": {
+ "label": "Формат на времева щампа"
+ },
+ "color": {
+ "red": {
+ "label": "Червено",
+ "description": "Червен компонент (0-255) за времева щампа."
+ },
+ "green": {
+ "description": "Зелен компонент (0-255) за времева щампа.",
+ "label": "Зелено"
+ },
+ "blue": {
+ "description": "Син компонент (0-255) за времева щампа.",
+ "label": "Синьо"
+ },
+ "label": "Цвят на времева щампа",
+ "description": "RGB стойности за текста на времева щампа (всички стойности 0-255)."
+ },
+ "thickness": {
+ "description": "Дебелина на текстовата линия за времева щампа.",
+ "label": "Дебелина на времева щампа"
+ },
+ "effect": {
+ "label": "Ефект на времева щампа",
+ "description": "Визуален ефект на времева щампа (без, плътен, сянка)."
+ },
+ "position": {
+ "label": "Позиция на времева щампа",
+ "description": "Позиция за времева щампа на снимката (гл/гд/дл/дд)."
+ }
+ },
+ "audio_transcription": {
+ "label": "Аудио транскрипция",
+ "enabled": {
+ "label": "Включи аудио транскрипцията"
+ },
+ "language": {
+ "label": "Език на транскрипция"
+ },
+ "device": {
+ "label": "Устройство за транскрипция"
+ },
+ "model_size": {
+ "label": "Големина на модела"
+ },
+ "live_enabled": {
+ "label": "Транскрипция на живо"
+ }
+ },
+ "snapshots": {
+ "quality": {
+ "label": "Качество на моментната снимка"
+ },
+ "required_zones": {
+ "label": "Задължителни зони",
+ "description": "Зони в които обект трябва да влезе за да се запази моментна снимка."
+ },
+ "height": {
+ "label": "Височина на моментната снимка"
+ },
+ "retain": {
+ "default": {
+ "description": "Дни по подразбиране за задържане на моментните снимки."
+ }
+ }
+ },
+ "classification": {
+ "label": "Класификация на обекти",
+ "bird": {
+ "label": "Конфигурация за класификация на птици",
+ "enabled": {
+ "label": "Класификация на птици",
+ "description": "Клацификация на птици (Вкл./Изкл.)."
+ },
+ "threshold": {
+ "label": "Минимален резултат"
+ }
+ },
+ "custom": {
+ "label": "Потребителски класификационни модели",
+ "enabled": {
+ "label": "Включи модел",
+ "description": "Потребителски класификационнен модел (Вкл./Изкл.)."
+ },
+ "name": {
+ "label": "Име на модел"
+ },
+ "save_attempts": {
+ "label": "Опити за запазване"
+ },
+ "state_config": {
+ "motion": {
+ "label": "Изпълни при движение"
+ },
+ "interval": {
+ "label": "Интервал за класификация"
+ }
+ }
+ }
+ },
+ "semantic_search": {
+ "label": "Семантично търсене",
+ "enabled": {
+ "label": "Включи семантично търсене",
+ "description": "Семантично търсене (Вкл./Изкл.)."
+ },
+ "reindex": {
+ "label": "Реиндексирай при стартиране"
+ },
+ "model_size": {
+ "label": "Големина на модел"
+ },
+ "device": {
+ "label": "Устройство"
+ },
+ "triggers": {
+ "label": "Спусък",
+ "friendly_name": {
+ "label": "Удобно име"
+ }
+ }
}
}
diff --git a/web/public/locales/bg/objects.json b/web/public/locales/bg/objects.json
index c89c359fb3..79485a726f 100644
--- a/web/public/locales/bg/objects.json
+++ b/web/public/locales/bg/objects.json
@@ -24,5 +24,6 @@
"hair_dryer": "Сешоар",
"toothbrush": "Четка за зъби",
"scissors": "Ножица",
- "clock": "Часовник"
+ "clock": "Часовник",
+ "airplane": "Самолет"
}
diff --git a/web/public/locales/bg/views/classificationModel.json b/web/public/locales/bg/views/classificationModel.json
index 7b8ecb1dd6..493cf18bcb 100644
--- a/web/public/locales/bg/views/classificationModel.json
+++ b/web/public/locales/bg/views/classificationModel.json
@@ -2,5 +2,13 @@
"documentTitle": "Модели за класификация - Frigate",
"description": {
"invalidName": "Невалидно име. Имената могат да съдържат единствено: букви, числа, празни места, долни черти и тирета."
+ },
+ "details": {
+ "scoreInfo": "Резултатът представлява средната степен на увереност в класификацията при всички засечки на този обект."
+ },
+ "wizard": {
+ "step1": {
+ "classificationAttribute": "Атрибут"
+ }
}
}
diff --git a/web/public/locales/bg/views/events.json b/web/public/locales/bg/views/events.json
index affd0cb52e..bf0c0a76c7 100644
--- a/web/public/locales/bg/views/events.json
+++ b/web/public/locales/bg/views/events.json
@@ -14,5 +14,6 @@
"detections": "Засичания",
"motion": {
"label": "Движение"
- }
+ },
+ "camera": "Камера"
}
diff --git a/web/public/locales/bg/views/explore.json b/web/public/locales/bg/views/explore.json
index d6c074d4e1..84a80602ed 100644
--- a/web/public/locales/bg/views/explore.json
+++ b/web/public/locales/bg/views/explore.json
@@ -5,10 +5,69 @@
"mismatch_one": "{{count}} недостъпен обект беше открит и включен в този елемент за преглед. Тези обекти или не са квалифицирани като предупреждение или откриване, или вече са били изчистени/изтрити.",
"mismatch_other": "{{count}} недостъпни обекта бяха открити и включени в този елемент за преглед. Тези обекти или не са квалифицирани като предупреждение или откриване, или вече са били изчистени/изтрити."
}
+ },
+ "editLPR": {
+ "title": "Редактиране на регистрационния номер"
+ },
+ "editAttributes": {
+ "title": "Редактиране на атрибутите"
+ },
+ "topScore": {
+ "label": "Най-силен резултат"
+ },
+ "estimatedSpeed": "Естимирана скорост",
+ "objects": "Обекти",
+ "camera": "Камера",
+ "zones": "Зони",
+ "timestamp": "Времева щампа",
+ "button": {
+ "findSimilar": "Намери подобни",
+ "regenerate": {
+ "title": "Регенерирай",
+ "label": "Регенерирай описанието на следените обекти"
+ }
+ },
+ "description": {
+ "label": "Описание",
+ "placeholder": "Описание на следените обекти"
}
},
"trackedObjectsCount_one": "{{count}} проследен обект ",
"trackedObjectsCount_other": "{{count}} проследени обекта ",
"documentTitle": "Разгледай - Фригейт",
- "generativeAI": "Генеративен Изкъствен Интелект"
+ "generativeAI": "Генеративен Изкъствен Интелект",
+ "itemMenu": {
+ "downloadSnapshot": {
+ "aria": "Сваляне на моментна снимка/кадър"
+ },
+ "viewTrackingDetails": {
+ "label": "Виж детайли за следенето",
+ "aria": "Покажи детайли за следенето"
+ },
+ "findSimilar": {
+ "label": "Намери подобни"
+ },
+ "submitToPlus": {
+ "label": "Изпрати към Frigate+",
+ "aria": "Изпрати към Frigate Plus"
+ },
+ "viewInHistory": {
+ "label": "Виж в история",
+ "aria": "Виж в история"
+ },
+ "more": {
+ "aria": "Повече"
+ }
+ },
+ "dialog": {
+ "confirmDelete": {
+ "title": "Потвърди изтриване"
+ }
+ },
+ "aiAnalysis": {
+ "title": "AI Анализ"
+ },
+ "concerns": {
+ "label": "Притеснения"
+ }
}
diff --git a/web/public/locales/bg/views/exports.json b/web/public/locales/bg/views/exports.json
index 5454a085d6..344695c2d1 100644
--- a/web/public/locales/bg/views/exports.json
+++ b/web/public/locales/bg/views/exports.json
@@ -17,7 +17,58 @@
},
"toast": {
"error": {
- "renameExportFailed": "Неуспешно преименуване на експорт: {{errorMessage}}"
+ "renameExportFailed": "Неуспешно преименуване на експорт: {{errorMessage}}",
+ "assignCaseFailed": "Неуспешно обновяване на възложен случай: {{errorMessage}}",
+ "caseSaveFailed": "Неуспешно запазен случай: {{errorMessage}}",
+ "caseDeleteFailed": "Неуспешно изтрит случай: {{errorMessage}}"
+ }
+ },
+ "deleteCase": {
+ "desc": "Сигурен ли сте, че искате да изтриете {{caseName}}?",
+ "label": "Изтрии случай"
+ },
+ "caseDialog": {
+ "nameLabel": "Име на случай",
+ "descriptionLabel": "Описание"
+ },
+ "toolbar": {
+ "editCase": "Редактирай случай",
+ "deleteCase": "Изтрии случай"
+ },
+ "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": "Покажи по-малко"
+ },
+ "bulkActions": {
+ "delete": "Изтрии",
+ "deleteNow": "Изтрии сега"
+ },
+ "bulkDelete": {
+ "title": "Изтрии експорти",
+ "desc_one": "Сигурни ли сте , че искате да изтриете {{count}} експорта?"
+ },
+ "bulkToast": {
+ "success": {
+ "delete": "Успешно изтрити експорти"
}
}
}
diff --git a/web/public/locales/bg/views/faceLibrary.json b/web/public/locales/bg/views/faceLibrary.json
index 7d4a82211c..d00942b779 100644
--- a/web/public/locales/bg/views/faceLibrary.json
+++ b/web/public/locales/bg/views/faceLibrary.json
@@ -15,5 +15,8 @@
"addFace": "Добавете нова колекция във библиотеката за лица при качването на първата ви снимка.",
"placeholder": "Напишете име за тази колекция",
"invalidName": "Невалидно име. Имената могат да съдържат единствено: букви, числа, празни места, долни черти и тирета."
+ },
+ "details": {
+ "timestamp": "Времева щампа"
}
}
diff --git a/web/public/locales/bg/views/live.json b/web/public/locales/bg/views/live.json
index 01b3a5c34f..c10906c71d 100644
--- a/web/public/locales/bg/views/live.json
+++ b/web/public/locales/bg/views/live.json
@@ -16,7 +16,8 @@
"move": {
"clickMove": {
"enable": "Включи кликване за преместване",
- "disable": "Изключи кликване за преместване"
+ "disable": "Изключи кликване за преместване",
+ "label": "Кликнете в центъра на кадъра за да центрирате камерата"
}
}
},
@@ -26,7 +27,8 @@
},
"recording": {
"enable": "Включи запис",
- "disable": "Изключи запис"
+ "disable": "Изключи запис",
+ "disabledInConfig": "\"Записване\" трябва първо да се вкючи през настройките за тази камера."
},
"snapshots": {
"enable": "Включи моментни снимки",
@@ -38,7 +40,9 @@
},
"camera": {
"enable": "Включи камера",
- "disable": "Изключи камера"
+ "disable": "Изключи камера",
+ "turnOn": "Включване на камера",
+ "turnOff": "Изключване на камера"
},
"detect": {
"enable": "Включи разпознаване",
@@ -65,5 +69,16 @@
"cameraEnabled": "Камерата е включена"
},
"documentTitle": "Наживо - Frigate",
- "documentTitle.withCamera": "{{camera}} - На живо - Фригейт"
+ "documentTitle.withCamera": "{{camera}} - На живо - Фригейт",
+ "noCameras": {
+ "default": {
+ "buttonText": "Добави камера"
+ },
+ "group": {
+ "title": "Няма камери в групата",
+ "description": "Тази група няма добавени или включени камери.",
+ "buttonText": "Управление на групите"
+ }
+ },
+ "lowBandwidthMode": "Режим ограничена/бавна връзка"
}
diff --git a/web/public/locales/ca/components/dialog.json b/web/public/locales/ca/components/dialog.json
index 6f527e4df7..f63d47f74f 100644
--- a/web/public/locales/ca/components/dialog.json
+++ b/web/public/locales/ca/components/dialog.json
@@ -24,6 +24,9 @@
},
"state": {
"submitted": "Enviat"
+ },
+ "toast": {
+ "error": "No s'ha pogut enviar a Frigate+. Si us plau, comproveu la vostra connexió de xarxa i torneu-ho a provar."
}
}
},
@@ -107,7 +110,14 @@
"queueingButton": "S'estan posant a la cua les exportacions...",
"exportButton_one": "Exporta 1 càmera",
"exportButton_many": "Exporta {{count}} càmeres",
- "exportButton_other": "Exporta {{count}} càmeres"
+ "exportButton_other": "Exporta {{count}} càmeres",
+ "searchOrSelectGroup": "Cerca, o selecciona un grup de càmeres...",
+ "selectAll": "Selecciona totes les càmeres",
+ "clearSelection": "Neteja la selecció",
+ "selectWithActivity": "Càmeres amb objectes rastrejats",
+ "selectGroup": "Selecciona un grup",
+ "noMatchingCameras": "No hi ha càmeres que coincideixin amb la cerca",
+ "selectedCount": "{{selected}} / {{total}} seleccionats"
},
"multi": {
"title_one": "Exporta {{count}} ressenyes",
diff --git a/web/public/locales/ca/config/cameras.json b/web/public/locales/ca/config/cameras.json
index aa3fb9a778..1ba68b11cd 100644
--- a/web/public/locales/ca/config/cameras.json
+++ b/web/public/locales/ca/config/cameras.json
@@ -29,7 +29,7 @@
},
"listen": {
"label": "Tipus d'escoltes",
- "description": "Llista de tipus d'esdeveniment d'àudio a detectar (per exemple: escorça, focarmalarma, crit, parla, crida)."
+ "description": "Llista de tipus d'esdeveniment d'àudio a detectar (per exemple: escorça, focarmalarma, parla, crida)."
},
"filters": {
"label": "Filtres d'àudio",
@@ -152,11 +152,11 @@
}
},
"ffmpeg": {
- "label": "FFmpeg",
- "description": "Paràmetres del FFmpeg que inclouen la ruta dels binaris, args, opcions de hwaccel i args de sortida per rol.",
+ "label": "Fluxos (FFmpeg)",
+ "description": "Les entrades de flux de càmera i les opcions del FFmpeg, incloent-hi el camí binari, els arguments, l'hwaccel i els arguments de sortida per rol.",
"path": {
"label": "Ruta FFmpeg",
- "description": "Ruta al binari FFmpeg a usar o un àlies de versió («5.0» o «7.0»)."
+ "description": "Ruta al binari FFmpeg a usar o un àlies de versió («7.0» o «8.0»)."
},
"global_args": {
"label": "Arguments globals del FFmpeg",
diff --git a/web/public/locales/ca/config/global.json b/web/public/locales/ca/config/global.json
index 2d8c1bff6b..038deb4d41 100644
--- a/web/public/locales/ca/config/global.json
+++ b/web/public/locales/ca/config/global.json
@@ -7,7 +7,7 @@
"description": "Paràmetres del FFmpeg que inclouen la ruta dels binaris, args, opcions de hwaccel i args de sortida per rol.",
"path": {
"label": "Ruta FFmpeg",
- "description": "Ruta al binari FFmpeg a usar o un àlies de versió («5.0» o «7.0»)."
+ "description": "Ruta al binari FFmpeg a usar o un àlies de versió («7.0» o «8.0»)."
},
"global_args": {
"label": "Arguments globals del FFmpeg",
@@ -2018,7 +2018,7 @@
},
"listen": {
"label": "Tipus d'escoltes",
- "description": "Llista de tipus d'esdeveniment d'àudio a detectar (per exemple: escorça, focarmalarma, crit, parla, crida)."
+ "description": "Llista de tipus d'esdeveniment d'àudio a detectar (per exemple: escorça, focarmalarma, parla, crida)."
},
"filters": {
"label": "Filtres d'àudio",
diff --git a/web/public/locales/ca/views/settings.json b/web/public/locales/ca/views/settings.json
index 5ff0242d9a..97905e75cc 100644
--- a/web/public/locales/ca/views/settings.json
+++ b/web/public/locales/ca/views/settings.json
@@ -68,7 +68,7 @@
"integrationObjectClassification": "Classificació de l'objecte",
"integrationAudioTranscription": "Transcripció d'àudio",
"cameraDetect": "Detecció d'objectes",
- "cameraFfmpeg": "FFmpeg",
+ "cameraFfmpeg": "Fluxos (FFmpeg)",
"cameraRecording": "Enregistrament",
"cameraSnapshots": "Instantànies",
"cameraMotion": "Detecció de moviment",
@@ -1689,7 +1689,17 @@
}
},
"cameraInputs": {
- "itemTitle": "Flux {{index}}"
+ "itemTitle": "Flux {{index}}",
+ "sourceMode": {
+ "restream": "Restream (go2rtc)",
+ "manual": "Camí d'entrada manual",
+ "go2rtcStreamLabel": "flux go2rtc",
+ "go2rtcStreamPlaceholder": "Selecciona un flux go2rtc",
+ "noGo2rtcStreams": "No s'ha configurat cap flux go2rtc",
+ "go2rtcStreamSearch": "Cerca fluxos...",
+ "availableStreams": "Fluxos disponibles",
+ "noMatchingStreams": "No hi ha fluxos coincidents"
+ }
},
"restartRequiredField": "Reinicia requerit",
"restartRequiredFooter": "S'ha canviat la configuració - es requereix reiniciar",
@@ -2084,6 +2094,13 @@
},
"onvif": {
"autotrackingNoZones": "Autotraquejar requereix al menys una zona. Defineix una zona per aquesta cámera a Mascares/Zones, després usa'l com a requerit a la part inferior."
+ },
+ "ffmpeg": {
+ "hwaccelManualNotRecommended": "No es recomanen arguments manuals d'acceleració de maquinari. Tret que existeixi un requisit específic, seleccioneu el predefinit que coincideixi amb el vostre maquinari."
+ },
+ "model": {
+ "optimizedFor320": "Frigate està optimitzada per a un model 320x320, que és la millor opció per a la majoria de configuracions. Un model 640x640 és més lent i només ajuda en escenaris específics.",
+ "inputDimensionsNotDetectResolution": "L'amplada i l'alçada del model d'entrada són les dimensions d'entrada del model de detecció d'objectes, no la resolució de detecció de la càmera. Haurien de coincidir amb les dimensions del model que esteu utilitzant - típicament una mida quadrada com 320x320 o 640x640."
}
},
"modelSize": {
diff --git a/web/public/locales/ca/views/system.json b/web/public/locales/ca/views/system.json
index 70b5ee6fe1..c472937c24 100644
--- a/web/public/locales/ca/views/system.json
+++ b/web/public/locales/ca/views/system.json
@@ -191,7 +191,22 @@
},
"audio": "Àudio:",
"cameraProbeInfo": "Informació del sondeig de la càmera {{camera}}",
- "streamDataFromFFPROBE": "Les dades de la transmissió són obtingudes mitjançant ffprobe."
+ "streamDataFromFFPROBE": "Les dades de la transmissió són obtingudes mitjançant ffprobe.",
+ "keyframes": {
+ "title": "Anàlisi de fotogrames clau",
+ "analyzing": "S'estan analitzant els fotogrames clau... queden {{seconds}} segons",
+ "stillAnalyzing": "Encara s'estan analitzant els fotogrames clau...",
+ "recordStream": "Registre de flux:",
+ "keyframeCount": "Fotogrames clau observats:",
+ "observedDuration": "Durada observada:",
+ "gap": "Espai de fotogrames clau (mín / avg / max):",
+ "segmentLength": "Longitud del segment d'enregistrament:",
+ "ok": "Fotogrames clau cada ,{{seconds}}s, bons per enregistrar i reproduir.",
+ "warning": "Els fotogrames clau dispersos o variables (espai més llarg .{{seconds}}s), probablement un còdec intel·ligent (H.264+/H.265+), això no és recomanable.",
+ "error": "El buit dels fotogrames clau ( the{{seconds}}s) excedeix la longitud del segment d'enregistrament ({{segmentTime}}s). Alguns segments poden no tenir un fotograma clau, el qual trenca la reproducció. Desactiva el còdec intel·ligent/+ a la càmera o escurça el seu interval de fotogrames clau.",
+ "unknown": "No s'ha pogut determinar l'espaiat dels fotogrames clau.",
+ "recordDisabled": "L'enregistrament està desactivat per a aquesta càmera."
+ }
},
"title": "Càmeres",
"overview": "Visió general",
diff --git a/web/public/locales/da/audio.json b/web/public/locales/da/audio.json
index 168ef4c679..0d73b074f8 100644
--- a/web/public/locales/da/audio.json
+++ b/web/public/locales/da/audio.json
@@ -180,7 +180,7 @@
"rats": "Rotter",
"patter": "Dråbelyd",
"insect": "Insekt",
- "cricket": "Cricket",
+ "cricket": "Fårekylling",
"guitar": "Guitar",
"electric_guitar": "Elektrisk Guitar",
"bass_guitar": "Basguitar",
@@ -195,5 +195,16 @@
"rimshot": "Kantslag",
"drum_roll": "Trommehvirvel",
"bass_drum": "Stortromme",
- "techno": "Techno"
+ "techno": "Techno",
+ "mosquito": "Myg",
+ "fly": "Flue",
+ "buzz": "Summen",
+ "frog": "Frø",
+ "croak": "Kvæk",
+ "snake": "Slange",
+ "rattle": "Klapren",
+ "whale_vocalization": "Hvallyde",
+ "music": "Musik",
+ "musical_instrument": "Musikinstrument",
+ "plucked_string_instrument": "Strengeinstrument"
}
diff --git a/web/public/locales/da/common.json b/web/public/locales/da/common.json
index 62b6d70361..9b096cabad 100644
--- a/web/public/locales/da/common.json
+++ b/web/public/locales/da/common.json
@@ -24,7 +24,7 @@
"am": "am",
"year_one": "{{time}} år",
"year_other": "{{time}} år",
- "mo": "{{time}}må",
+ "mo": "{{time}}md.",
"month_one": "{{time}} måned",
"month_other": "{{time}} måneder",
"d": "{{time}}d",
@@ -121,18 +121,18 @@
"back": "Tilbage",
"history": "Historik",
"fullscreen": "Fuldskærm",
- "exitFullscreen": "Afslut Fludskærm",
- "pictureInPicture": "Billede i Billede",
- "twoWayTalk": "2 vejs samtale",
- "cameraAudio": "Kamera Lyd",
- "on": "ON",
- "off": "OFF",
+ "exitFullscreen": "Afslut Fuldskærm",
+ "pictureInPicture": "Billede i billede",
+ "twoWayTalk": "Samtale",
+ "cameraAudio": "Kameralyd",
+ "on": "Til",
+ "off": "Fra",
"edit": "Rediger",
"copyCoordinates": "Kopier koordinater",
"delete": "Slet",
"yes": "Ja",
"no": "Nej",
- "download": "Download",
+ "download": "Hent",
"info": "Info",
"suspended": "Sat på pause",
"unsuspended": "Genoptag",
@@ -141,7 +141,19 @@
"export": "Eksporter",
"deleteNow": "Slet nu",
"next": "Næste",
- "continue": "Fortsæt"
+ "continue": "Fortsæt",
+ "add": "Tilføj",
+ "applying": "Anvender…",
+ "undo": "Annuler",
+ "copiedToClipboard": "Kopieret til udklipsholder",
+ "modified": "Ændret",
+ "overridden": "Overskrevet",
+ "resetToGlobal": "Gendan til global",
+ "resetToDefault": "Gendan standard",
+ "saveAll": "Gem alle",
+ "savingAll": "Gemmer alle…",
+ "undoAll": "Fortryd alle",
+ "retry": "Prøv igen"
},
"menu": {
"system": "System",
@@ -194,7 +206,9 @@
"gl": "Galego (Galisisk)",
"id": "Bahasa Indonesia (Indonesisk)",
"ur": "اردو (Urdu)",
- "hr": "Hrvatski (Kroatisk)"
+ "hr": "Hrvatski (Kroatisk)",
+ "zhHant": "繁體中文 (Traditionel Kinesisk)",
+ "bs": "Bosanski (Bosnisk)"
},
"appearance": "Udseende",
"darkMode": {
@@ -243,7 +257,11 @@
"logout": "Log ud",
"setPassword": "Vælg kodeord"
},
- "classification": "Kategorisering"
+ "classification": "Kategorisering",
+ "profiles": "Profiler",
+ "actions": "Handlinger",
+ "features": "Funktioner",
+ "chat": "Chat"
},
"toast": {
"copyUrlToClipboard": "Kopieret URL til udklipsholder.",
@@ -252,13 +270,14 @@
"error": {
"title": "Ændringer kunne ikke gemmes: {{errorMessage}}",
"noMessage": "Kunne ikke gemme konfigurationsændringer"
- }
+ },
+ "success": "Gemte ændringerne i konfigurationen."
}
},
"role": {
"title": "Rolle",
"admin": "Admin",
- "viewer": "Viewer",
+ "viewer": "Seer",
"desc": "Admins har fuld adgang til Frigate UI. Viewers er begrænset til at se kameraer, gennemse items, og historik i UI."
},
"pagination": {
@@ -296,5 +315,10 @@
},
"information": {
"pixels": "{{area}}px"
+ },
+ "no_items": "Intet fundet",
+ "validation_errors": "Valideringsfejl",
+ "credentialField": {
+ "savedPlaceholder": "Gemt - efterlad blank for at bevare nuværende"
}
}
diff --git a/web/public/locales/da/components/camera.json b/web/public/locales/da/components/camera.json
index cc5244b8a2..faff7a09ee 100644
--- a/web/public/locales/da/components/camera.json
+++ b/web/public/locales/da/components/camera.json
@@ -31,7 +31,7 @@
"setting": {
"label": "Kamera Streaming Indstillinger",
"title": "{{cameraName}} Streaming Indstillinger",
- "desc": "Skift de live streaming muligheder for denne kameragruppes dashboard. Disse indstillinger er enheds- og browserspecifikke.",
+ "desc": "Skift indstillingerne for direkte visning af denne kameragruppes dashboard. Disse indstillinger er enheds- og browserspecifikke.",
"audioIsAvailable": "Lyd er tilgængelig for denne stream",
"audioIsUnavailable": "Lyd er ikke tilgængelig for denne strøm",
"audio": {
@@ -67,7 +67,10 @@
"desc": "Aktivér kun denne mulighed, hvis kameraets live stream viser farve artefakter og har en diagonal linje på højre side af billedet."
}
}
- }
+ },
+ "showAll": "Vis alle kameragrupper",
+ "showLess": "Vis mindre",
+ "editGroups": "Rediger kameragrupper"
},
"debug": {
"options": {
@@ -81,6 +84,7 @@
"zones": "Zoner",
"mask": "Maske",
"motion": "Bevægelse",
- "regions": "Regioner"
+ "regions": "Regioner",
+ "paths": "Stier"
}
}
diff --git a/web/public/locales/da/components/dialog.json b/web/public/locales/da/components/dialog.json
index a498a33f54..1ab0861830 100644
--- a/web/public/locales/da/components/dialog.json
+++ b/web/public/locales/da/components/dialog.json
@@ -1,6 +1,6 @@
{
"restart": {
- "title": "Er du sikker på at du vil genstarte Frigate?",
+ "title": "Er du sikker på, at du vil genstarte Frigate?",
"button": "Genstart",
"restarting": {
"title": "Frigate genstarter",
@@ -21,8 +21,46 @@
"ask_a": "Er dette objekt et {{label}}?",
"ask_an": "Er dette objekt en {{label}}?",
"ask_full": "Er dette objekt en {{untranslatedLabel}} ({{translatedLabel}})?"
+ },
+ "state": {
+ "submitted": "Indsendt"
+ },
+ "toast": {
+ "error": "Fejl under indsendelse til Frigate+. Kontroller venligst din netværksforbindelse og prøv igen."
}
}
+ },
+ "video": {
+ "viewInHistory": "Se i historik"
}
+ },
+ "export": {
+ "time": {
+ "fromTimeline": "Vælg fra tidslinje",
+ "lastHour_one": "Sidste time",
+ "lastHour_other": "Sidste {{count}} timer",
+ "custom": "Tidsinterval",
+ "start": {
+ "title": "Starttidspunkt",
+ "label": "Vælg starttidspunkt"
+ },
+ "end": {
+ "title": "Sluttidspunkt",
+ "label": "Vælg sluttidspunkt"
+ }
+ },
+ "name": {
+ "placeholder": "Navngiv eksport"
+ },
+ "case": {
+ "newCaseOption": "Opret ny sag",
+ "newCaseNamePlaceholder": "Nyt sagsnavn",
+ "newCaseDescriptionPlaceholder": "Sagsbeskrivelse",
+ "label": "Sag",
+ "nonAdminHelp": "En ny sag oprettes til disse eksporter.",
+ "placeholder": "Vælg en sag"
+ },
+ "select": "Vælg",
+ "export": "Eksporter"
}
}
diff --git a/web/public/locales/da/views/settings.json b/web/public/locales/da/views/settings.json
index 7b5d669ed4..816d0d60e9 100644
--- a/web/public/locales/da/views/settings.json
+++ b/web/public/locales/da/views/settings.json
@@ -14,6 +14,7 @@
"notifications": "Notifikations indstillinger - Frigate"
},
"menu": {
- "ui": "Brugergrænseflade"
+ "ui": "Brugergrænseflade",
+ "profiles": "Profiler"
}
}
diff --git a/web/public/locales/de/audio.json b/web/public/locales/de/audio.json
index 78f4eabb3b..045beee914 100644
--- a/web/public/locales/de/audio.json
+++ b/web/public/locales/de/audio.json
@@ -23,7 +23,7 @@
"toothbrush": "Zahnbürste",
"bicycle": "Fahrrad",
"door": "Tür",
- "keyboard": "Klaviatur",
+ "keyboard": "Klavier",
"bus": "Bus",
"horse": "Pferd",
"cat": "Katze",
@@ -123,7 +123,7 @@
"chicken": "Huhn",
"sitar": "Sitar",
"ukulele": "Ukulele",
- "tapping": "Klopfen",
+ "tapping": "Tippen",
"flapping_wings": "Flügelschlagen",
"strum": "Herumklimpern",
"electronic_organ": "Elektrische Orgel",
diff --git a/web/public/locales/de/common.json b/web/public/locales/de/common.json
index 00d9b8b60b..1ddb0488ba 100644
--- a/web/public/locales/de/common.json
+++ b/web/public/locales/de/common.json
@@ -42,7 +42,7 @@
"untilRestart": "Bis zum Neustart",
"justNow": "Gerade",
"pm": "nachmittags",
- "mo": "{{time}} Mon",
+ "mo": "{{time}} Mon.",
"formattedTimestamp": {
"12hour": "d. MMM, hh:mm:ss aaa",
"24hour": "dd. MMM, hh:mm:ss aaa"
@@ -193,7 +193,7 @@
"gl": "Galego (Galicisch)",
"id": "Bahasa Indonesia (Indonesisch)",
"hr": "Hrvatski (Kroatisch)",
- "bs": "Bosnisch",
+ "bs": "Bosanski (Bosnisch)",
"zhHant": "Traditional Chinese"
},
"appearance": "Erscheinung",
diff --git a/web/public/locales/de/components/camera.json b/web/public/locales/de/components/camera.json
index a2b443bd66..ff98559e66 100644
--- a/web/public/locales/de/components/camera.json
+++ b/web/public/locales/de/components/camera.json
@@ -68,7 +68,10 @@
},
"label": "Kamera Gruppen",
"edit": "Kameragruppe bearbeiten",
- "success": "Kameragruppe {{name}} wurde gespeichert."
+ "success": "Kameragruppe {{name}} wurde gespeichert.",
+ "showAll": "Alle Kameragruppen anzeigen",
+ "showLess": "Weniger anzeigen",
+ "editGroups": "Kameragruppen bearbeiten"
},
"debug": {
"options": {
diff --git a/web/public/locales/de/components/dialog.json b/web/public/locales/de/components/dialog.json
index 59dac7aeda..fe0db22dc8 100644
--- a/web/public/locales/de/components/dialog.json
+++ b/web/public/locales/de/components/dialog.json
@@ -105,14 +105,21 @@
"cameraSelection": "Kameras",
"cameraSelectionHelp": "Kameras, die in diesem Zeitbereich Objekte verfolgen, sind vorausgewählt",
"checkingActivity": "Kameraaktivität wird überprüft...",
- "noCameras": "keine kamaeras verfügbar",
+ "noCameras": "Keine Kameras verfügbar",
"detectionCount_one": "1 verfolgtes Objekt",
- "detectionCount_other": "{{count}} verfolgtesObjekte",
- "nameLabel": "Export Name",
+ "detectionCount_other": "{{count}} verfolgte Objekte",
+ "nameLabel": "Exportname",
"namePlaceholder": "Optionaler Basisname für diese Exporte",
"queueingButton": "Exporte werden in die Warteschlange gestellt...",
"exportButton_one": "Export 1 Kamera",
- "exportButton_other": "xport {{count}} Kameras"
+ "exportButton_other": "xport {{count}} Kameras",
+ "searchOrSelectGroup": "Suchen, oder Kameragruppe auswählen...",
+ "selectAll": "Alle Kameras auswählen",
+ "clearSelection": "Auswahl löschen",
+ "selectWithActivity": "Kameras mit verfolgten Objekten",
+ "selectGroup": "Gruppe auswählen",
+ "noMatchingCameras": "Der Suche entsprechen keine Kameras",
+ "selectedCount": "{{selected}} / {{total}} ausgewählt"
},
"multi": {
"title_one": "1 Bewertung exportieren",
diff --git a/web/public/locales/de/config/cameras.json b/web/public/locales/de/config/cameras.json
index 4a479c2c23..7865c4957c 100644
--- a/web/public/locales/de/config/cameras.json
+++ b/web/public/locales/de/config/cameras.json
@@ -20,7 +20,7 @@
"description": "Mindest-RMS-Lautstärkeschwelle, die für die Audioerkennung erforderlich ist; niedrigere Werte erhöhen die Empfindlichkeit (z. B. 200 hoch, 500 mittel, 1000 niedrig)."
},
"listen": {
- "description": "Liste der zu erkennenden Audioereignisse (z.B: bellen, Feueralarm, schreien, sprechen, rufen).",
+ "description": "Liste der zu erkennenden Audioereignisse (z.B: bellen, Feueralarm, Gespräche, Rufen).",
"label": "Hörtypen"
},
"filters": {
@@ -204,11 +204,11 @@
"description": "Einstellungen zum Aktivieren und Verwalten von Benachrichtigungen für diese Kamera."
},
"ffmpeg": {
- "label": "FFmpeg",
- "description": "FFmpeg-Einstellungen, einschließlich Binärpfad, Argumente, hwaccel-Optionen und rollenspezifische Ausgabeargumente.",
+ "label": "Streams (FFmpeg)",
+ "description": "Kamera-Stream-Eingaben und FFmpeg-Optionen, einschließlich Binärpfad, Argumente, hwaccel und rollenspezifische Ausgabeargumente.",
"path": {
"label": "FFmpeg-Pfad",
- "description": "Pfad zur zu verwendenden FFmpeg-Binärdatei oder ein Versionsalias („5.0” oder „7.0”)."
+ "description": "Pfad zur zu verwendenden FFmpeg-Binärdatei oder ein Versionsalias („7.0” oder „8.0”)."
},
"global_args": {
"label": "Globale Argumente von FFmpeg",
@@ -770,6 +770,10 @@
"dashboard": {
"label": "In der Benutzeroberfläche anzeigen",
"description": "Schalte ein, ob diese Kamera überall in der Benutzeroberfläche von „Frigate“ sichtbar ist. Wenn du diese Option deaktivierst, musst du die Konfiguration manuell bearbeiten, um diese Kamera wieder in der Benutzeroberfläche anzuzeigen."
+ },
+ "review": {
+ "label": "In der Überprüfung anzeigen",
+ "description": "Legen Sie fest, ob diese Kamera in der Übersicht angezeigt wird (auf der Übersichtsseite sowie im Kamerafilter, in der Bewegungsübersicht und in der Verlaufsansicht)."
}
},
"snapshots": {
diff --git a/web/public/locales/de/config/global.json b/web/public/locales/de/config/global.json
index 78712b1035..785a503bc4 100644
--- a/web/public/locales/de/config/global.json
+++ b/web/public/locales/de/config/global.json
@@ -18,7 +18,7 @@
"description": "Mindest-RMS-Lautstärkeschwelle, die für die Audioerkennung erforderlich ist; niedrigere Werte erhöhen die Empfindlichkeit (z. B. 200 hoch, 500 mittel, 1000 niedrig)."
},
"listen": {
- "description": "Liste der zu erkennenden Audioereignisse (z.B: bellen, Feueralarm, schreien, sprechen, rufen).",
+ "description": "Liste der zu erkennenden Audioereignisse (z.B: bellen, Feueralarm, Gespräche, Rufen).",
"label": "Hörtypen"
},
"filters": {
@@ -380,7 +380,7 @@
"description": "FFmpeg-Einstellungen, einschließlich Binärpfad, Argumente, hwaccel-Optionen und rollenspezifische Ausgabeargumente.",
"path": {
"label": "FFmpeg-Pfad",
- "description": "Pfad zur zu verwendenden FFmpeg-Binärdatei oder ein Versionsalias („5.0” oder „7.0”)."
+ "description": "Pfad zur zu verwendenden FFmpeg-Binärdatei oder ein Versionsalias („7.0” oder „8.0”)."
},
"global_args": {
"label": "Globale Argumente von FFmpeg",
@@ -1934,6 +1934,10 @@
"dashboard": {
"label": "In der Benutzeroberfläche anzeigen",
"description": "Schalte ein, ob diese Kamera überall in der Benutzeroberfläche von „Frigate“ sichtbar ist. Wenn du diese Option deaktivierst, musst du die Konfiguration manuell bearbeiten, um diese Kamera wieder in der Benutzeroberfläche anzuzeigen."
+ },
+ "review": {
+ "label": "In der Überprüfung anzeigen",
+ "description": "Legen Sie fest, ob diese Kamera in der Übersicht angezeigt wird (auf der Übersichtsseite sowie im Kamerafilter, in der Bewegungsübersicht und in der Verlaufsansicht)."
}
}
}
diff --git a/web/public/locales/de/objects.json b/web/public/locales/de/objects.json
index 4380ef181e..e2236fc5c8 100644
--- a/web/public/locales/de/objects.json
+++ b/web/public/locales/de/objects.json
@@ -90,7 +90,7 @@
"laptop": "Laptop",
"mouse": "Maus",
"goat": "Ziege",
- "keyboard": "Klaviatur",
+ "keyboard": "Klavier",
"cell_phone": "Handy",
"remote": "Fernbedienung",
"airplane": "Flugzeug",
diff --git a/web/public/locales/de/views/motionSearch.json b/web/public/locales/de/views/motionSearch.json
index 9ad72c4616..d6aaf98fb1 100644
--- a/web/public/locales/de/views/motionSearch.json
+++ b/web/public/locales/de/views/motionSearch.json
@@ -46,7 +46,7 @@
"threshold": "Empfindlichkeitsschwelle",
"thresholdDesc": "Niedrigere Werte erkennen geringere Veränderungen (1–255)",
"minArea": "Mindestwechselbereich",
- "minAreaDesc": "Mindestanteil der untersuchten Region, der sich ändern muss, damit die Veränderung als signifikant gilt",
+ "minAreaDesc": "Mindestgröße eines einzelnen sich bewegenden Bereichs, ausgedrückt als Prozentsatz des untersuchten Bereichs",
"frameSkip": "Bild überspringen",
"frameSkipDesc": "Verarbeite jeden N-ten Frame. Stelle diesen Wert auf die Bildrate deiner Kamera ein, um einen Frame pro Sekunde zu verarbeiten (z. B. 5 für eine Kamera mit 5 FPS, 30 für eine Kamera mit 30 FPS). Höhere Werte sorgen für eine schnellere Verarbeitung, können jedoch kurze Bewegungsabläufe übersehen.",
"maxResults": "Maximale Ergebnisse",
@@ -72,6 +72,9 @@
"framesDecoded": "Rahmen decodiert",
"wallTime": "Suchzeit",
"segmentErrors": "Segmentfehler",
- "seconds": "{{seconds}}s"
- }
+ "seconds": "{{seconds}}s",
+ "minutesSeconds": "{{minutes}}m {{seconds}}s",
+ "scanSummary": "{{segments}} Segmente · {{time}}"
+ },
+ "scanning": "Wird gescannt {{time}}"
}
diff --git a/web/public/locales/de/views/settings.json b/web/public/locales/de/views/settings.json
index 3d8e9d3b83..a0fcfd731f 100644
--- a/web/public/locales/de/views/settings.json
+++ b/web/public/locales/de/views/settings.json
@@ -70,7 +70,7 @@
"integrationObjectClassification": "Objekt Klassifizierung",
"integrationAudioTranscription": "Audio-Transkription",
"cameraDetect": "Objekterkennung",
- "cameraFfmpeg": "FFmpeg",
+ "cameraFfmpeg": "Streams (FFmpeg)",
"cameraRecording": "Aufnahme",
"cameraSnapshots": "Momentaufnahme",
"cameraMotion": "Bewegungserkennung",
@@ -1376,12 +1376,16 @@
"details": {
"edit": "Kameradaten bearbeiten",
"title": "Kameradaten bearbeiten",
- "description": "Aktualisieren Sie den Anzeigenamen und die externe URL, die für diese Kamera in der gesamten Frigate-Benutzeroberfläche verwendet werden.",
+ "description": "Aktualisieren Sie den Anzeigenamen, die externe URL und die Sichtbarkeit, die für diese Kamera in der gesamten Frigate-Benutzeroberfläche verwendet werden.",
"friendlyNameLabel": "Display Name",
"friendlyNameHelp": "Der in der Benutzeroberfläche von „Frigate“ für diese Kamera angezeigte Spitzname. Lassen Sie das Feld leer, um die Kamera-ID zu verwenden.",
"webuiUrlLabel": "URL der Web-Benutzeroberfläche",
"webuiUrlHelp": "URL, um die Web-Benutzeroberfläche der Kamera direkt aus der Debug-Ansicht aufzurufen. Lassen Sie das Feld leer, um den Link zu deaktivieren.",
- "webuiUrlInvalid": "Es muss sich um eine gültige URL handeln (z. B. https://example.com)."
+ "webuiUrlInvalid": "Es muss sich um eine gültige URL handeln (z. B. https://example.com).",
+ "dashboardLabel": "Im Live-Dashboard anzeigen",
+ "dashboardHelp": "Diese Kamera im Live-Dashboard anzeigen.",
+ "reviewLabel": "In der Überprüfung anzeigen",
+ "reviewHelp": "Zeige diese Kamera in der Übersicht an, einschließlich des Kamerafilters, der Bewegungsübersicht und der Verlaufsansicht."
},
"label": "Kamerazustand",
"description": "Legen Sie den Betriebszustand für jede Kamera fest.
Ein: Streams werden normal verarbeitet.
Aus: Die Verarbeitung wird vorübergehend angehalten. Diese Einstellung bleibt bei einem Neustart von Frigate nicht erhalten.
Deaktiviert: Die Verarbeitung wird beendet und die Änderung in Ihrer Konfiguration gespeichert. Um eine deaktivierte Kamera wieder zu aktivieren, ist ein Neustart erforderlich.
Hinweis: Die Deaktivierung hat keine Auswirkungen auf go2rtc-Restreams.
Ziehen Sie den Griff, um die Reihenfolge der aktiven Kameras in der Benutzeroberfläche anzupassen, einschließlich des Live-Dashboards und der Dropdown-Menüs zur Kameraauswahl.",
@@ -1764,7 +1768,17 @@
}
},
"cameraInputs": {
- "itemTitle": "Stream {{index}}"
+ "itemTitle": "Stream {{index}}",
+ "sourceMode": {
+ "restream": "Restream (go2rtc)",
+ "manual": "Pfad für die manuelle Eingabe",
+ "go2rtcStreamLabel": "go2rtc stream",
+ "go2rtcStreamPlaceholder": "Wählen Sie einen go2rtc-Stream aus",
+ "noGo2rtcStreams": "Es sind keine go2rtc-Streams konfiguriert",
+ "go2rtcStreamSearch": "Suche Streams...",
+ "availableStreams": "Verfügbare Streams",
+ "noMatchingStreams": "Keine passenden Streams"
+ }
},
"restartRequiredField": "Neustart erforderlich",
"restartRequiredFooter": "Konfiguration geändert – Neustart erforderlich",
@@ -2082,7 +2096,11 @@
"fpsGreaterThanFive": "Es wird nicht empfohlen, den Wert für die FPS-Erkennung auf mehr als 5 zu setzen. Höhere Werte können zu Leistungseinbußen führen und bieten keinerlei Vorteile.",
"disabled": "Die Objekterkennung ist deaktiviert. Momentaufnahmen, Überprüfungselemente und Erweiterungsfunktionen wie Gesichtserkennung, Kennzeichenerkennung und generative KI funktionieren nicht.",
"resolutionShouldBeMultipleOfFour": "Um optimale Ergebnisse zu erzielen, sollten Breite und Höhe ein Vielfaches von 4 sein. Andere gerade Werte können zu visuellen Artefakten oder leichten Verzerrungen im Erkennungsstrom führen.",
- "aspectRatioMismatch": "Die von Ihnen eingegebene Breite und Höhe stimmen nicht mit dem Seitenverhältnis Ihrer aktuell erkannten Auflösung überein. Dies kann zu einem gestreckten oder verzerrten Bild führen."
+ "aspectRatioMismatch": "Die von Ihnen eingegebene Breite und Höhe stimmen nicht mit dem Seitenverhältnis Ihrer aktuell erkannten Auflösung überein. Dies kann zu einem gestreckten oder verzerrten Bild führen.",
+ "maxFramesSet": "Die Festlegung einer maximalen Bildrate überschreibt das Standardverhalten und deaktiviert die Verfolgung stationärer Objekte. Dies ist nur in sehr wenigen Fällen erforderlich; verwenden Sie diese Option daher mit Bedacht.",
+ "squareResolution": "Eine quadratische Erkennungsauflösung ist ungewöhnlich. Die Erkennungsbreite und -höhe sollten dem Seitenverhältnis Ihrer Kamera entsprechen (zum Beispiel 16:9) und nicht den Abmessungen des Objekterkennungsmodells. Ein nicht übereinstimmendes Seitenverhältnis kann das Bild verzerren und die Erkennungsgenauigkeit beeinträchtigen.",
+ "resolutionHigh": "Diese Erkennungsauflösung liegt über der empfohlenen Wert und kann zu einem erhöhten Ressourcenverbrauch führen, ohne die Erkennungsgenauigkeit zu verbessern. Für die meisten Kameras wird eine Erkennungsauflösung von maximal 1080p empfohlen.",
+ "globalResolutionMultipleCameras": "Bei der Konfiguration mehrerer Kameras wird eine globale Erkennungsauflösung festgelegt. Sofern nicht alle Kameras dieselbe Auflösung und dasselbe Seitenverhältnis aufweisen, sollten die Erkennungsbreite und -höhe für jede Kamera separat festgelegt werden, um dem nativen Seitenverhältnis der jeweiligen Kamera zu entsprechen."
},
"faceRecognition": {
"globalDisabled": "Die Gesichtserkennungserweiterung muss aktiviert sein, damit die Gesichtserkennungsfunktionen bei dieser Kamera funktionieren.",
@@ -2115,6 +2133,13 @@
},
"onvif": {
"autotrackingNoZones": "Für die automatische Verfolgung ist mindestens eine Zone erforderlich. Definieren Sie unter „Masken / Zonen“ eine Zone für diese Kamera und legen Sie diese anschließend unten als erforderliche Zone fest."
+ },
+ "ffmpeg": {
+ "hwaccelManualNotRecommended": "Explizite Definitionen der Hardware-beschleunigungs Variablen sind nicht empfohlen. Wähle die Voreinstellung die zu deiner Hardware passt, außer wenn spezifische Anforderungen eine andere Konfiguration erfordern."
+ },
+ "model": {
+ "optimizedFor320": "Frigate ist für ein 320x320-Modell optimiert, was für die meisten Konfigurationen die beste Wahl ist. Ein 640x640-Modell ist langsamer und bietet nur in bestimmten Szenarien Vorteile.",
+ "inputDimensionsNotDetectResolution": "Die Eingangsbreite und -höhe des Modells beziehen sich auf die Abmessungen des Objekterkennungsmodells und nicht auf die Erkennungsauflösung Ihrer Kamera. Sie sollten mit den Abmessungen des von Ihnen verwendeten Modells übereinstimmen – in der Regel quadratische Abmessungen wie 320×320 oder 640×640."
}
},
"birdseye": {
diff --git a/web/public/locales/de/views/system.json b/web/public/locales/de/views/system.json
index 20d5cc1fa4..567c6ae68e 100644
--- a/web/public/locales/de/views/system.json
+++ b/web/public/locales/de/views/system.json
@@ -173,7 +173,22 @@
"tips": {
"title": "Kamera-Untersuchsungsinfo"
},
- "aspectRatio": "Seitenverhältnis"
+ "aspectRatio": "Seitenverhältnis",
+ "keyframes": {
+ "title": "Keyframe-Analyse",
+ "analyzing": "Keyframes werden analysiert... Noch {{seconds}} Sekunden",
+ "stillAnalyzing": "Keyframes werden noch analysiert...",
+ "recordStream": "Stream aufzeichnen:",
+ "keyframeCount": "Beobachtete Keyframes:",
+ "observedDuration": "Beobachtete Dauer:",
+ "gap": "Keyframe-Abstand (min. / durchschnittlich / max.):",
+ "segmentLength": "Länge des Aufzeichnungssegments:",
+ "ok": "Keyframes alle ~{{seconds}}s, gut geeignet für Aufzeichnung und Wiedergabe.",
+ "warning": "Seltene oder unregelmäßige Keyframes (längste Lücke ~{{seconds}}s), wahrscheinlich ein „Smart“-Codec (H.264+/H.265+); dies wird nicht empfohlen.",
+ "error": "Die Lücke zwischen den Keyframes (~{{seconds}}s) überschreitet die Länge des Aufzeichnungssegments ({{segmentTime}}s). Einige Segmente enthalten möglicherweise keinen Keyframe, was zu einer Unterbrechung der Wiedergabe führt. Deaktivieren Sie den Smart/+-Codec an der Kamera oder verkürzen Sie dessen Keyframe-Intervall.",
+ "unknown": "Der Abstand zwischen den Keyframes konnte nicht ermittelt werden.",
+ "recordDisabled": "Die Aufzeichnung ist für diese Kamera deaktiviert."
+ }
},
"overview": "Übersicht",
"label": {
diff --git a/web/public/locales/el/audio.json b/web/public/locales/el/audio.json
index 2bd01b8717..f3344f1186 100644
--- a/web/public/locales/el/audio.json
+++ b/web/public/locales/el/audio.json
@@ -61,5 +61,14 @@
"yodeling": "Λαρυγγισμός",
"chant": "Ύμνος",
"mantra": "Μάντρα",
- "synthetic_singing": "Συνθετικό Τραγούδι"
+ "synthetic_singing": "Συνθετικό Τραγούδι",
+ "rapping": "Χτύπημα",
+ "humming": "Μουρμουρητό",
+ "groan": "Aναστεναγμός",
+ "grunt": "Μούγκρισμα",
+ "gasp": "Ανάσα",
+ "pant": "Λαχάνιασμα",
+ "snort": "Ρουθούνισμα",
+ "cough": "Βήχας",
+ "throat_clearing": "Ξεροβήξιμο"
}
diff --git a/web/public/locales/el/common.json b/web/public/locales/el/common.json
index 5978d6cff6..256fcfb8aa 100644
--- a/web/public/locales/el/common.json
+++ b/web/public/locales/el/common.json
@@ -109,7 +109,9 @@
"no": "Όχι",
"download": "Κατέβασμα",
"info": "Πληροφορίες",
- "history": "Ιστορία"
+ "history": "Ιστορία",
+ "on": "Ενεργοποίηση",
+ "off": "Απενεργοποίηση"
},
"unit": {
"speed": {
@@ -117,7 +119,8 @@
"kph": "χλμ/ώρα"
},
"length": {
- "meters": "μέτρα"
+ "meters": "μέτρα",
+ "feet": "πόδια"
},
"data": {
"kbps": "kB/s",
@@ -134,7 +137,8 @@
"show": "Εμφάνιση {{item}}",
"ID": "ID",
"none": "Κανένα",
- "all": "Όλα"
+ "all": "Όλα",
+ "other": "άλλο"
},
"toast": {
"save": {
diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json
index c52e427bb6..d86eb5036a 100644
--- a/web/public/locales/es/components/dialog.json
+++ b/web/public/locales/es/components/dialog.json
@@ -119,7 +119,14 @@
"queueingButton": "Poniendo exportaciones en cola...",
"exportButton_one": "Exportar 1 cámara",
"exportButton_many": "Exportar {{count}} cámaras",
- "exportButton_other": "Exportar {{count}} cámaras"
+ "exportButton_other": "Exportar {{count}} cámaras",
+ "searchOrSelectGroup": "Busca o selecciona un grupo de cámaras…",
+ "selectAll": "Seleccionar todas las cámaras",
+ "clearSelection": "Borrar selección",
+ "selectWithActivity": "Cámaras con objetos rastreados",
+ "selectGroup": "Seleccionar grupo",
+ "noMatchingCameras": "Ninguna cámara coincide con tu búsqueda",
+ "selectedCount": "{{selected}} / {{total}} seleccionadas"
},
"multi": {
"title_one": "Exportar 1 revisión",
diff --git a/web/public/locales/es/config/cameras.json b/web/public/locales/es/config/cameras.json
index aa1f09becc..95e412ff4e 100644
--- a/web/public/locales/es/config/cameras.json
+++ b/web/public/locales/es/config/cameras.json
@@ -24,7 +24,7 @@
},
"listen": {
"label": "Tipos de escucha",
- "description": "Lista de tipos de eventos de audio a detectar (por ejemplo: ladrido, alarma de incendios, grito, voz, alarido)."
+ "description": "Lista de tipos de eventos de audio a detectar (por ejemplo: ladrar, alarma de incendio, habla, gritar)."
},
"filters": {
"label": "Filtros de audio",
@@ -744,7 +744,7 @@
"label": "Tiempo de reintento de FFmpeg"
},
"path": {
- "description": "Ruta al binario de FFmpeg que se va a utilizar o un alias de versión (\"5.0\" o \"7.0\").",
+ "description": "Ruta al binario de FFmpeg que se va a utilizar o un alias de versión (\"7.0\" o \"8.0\").",
"label": "Ruta de FFmpeg"
},
"output_args": {
@@ -759,8 +759,8 @@
"description": "Argumentos de salida predeterminados para los flujos con rol de grabación."
}
},
- "description": "Configuración de FFmpeg, incluyendo la ruta del binario, argumentos, opciones de aceleración por hardware y argumentos de salida por rol.",
- "label": "FFmpeg",
+ "description": "Entradas de flujo de la cámara y opciones de FFmpeg, incluida la ruta del binario, argumentos, aceleración por hardware y argumentos de salida por rol.",
+ "label": "Flujos (FFmpeg)",
"global_args": {
"label": "Argumentos globales de FFmpeg",
"description": "Argumentos globales pasados a los procesos de FFmpeg."
diff --git a/web/public/locales/es/config/global.json b/web/public/locales/es/config/global.json
index ee7210f359..7869ce4ba2 100644
--- a/web/public/locales/es/config/global.json
+++ b/web/public/locales/es/config/global.json
@@ -39,7 +39,7 @@
},
"listen": {
"label": "Tipos de escucha",
- "description": "Lista de tipos de eventos de audio a detectar (por ejemplo: ladrido, alarma de incendios, grito, voz, alarido)."
+ "description": "Lista de tipos de eventos de audio a detectar (por ejemplo: ladrar, alarma de incendio, habla, gritar)."
},
"filters": {
"label": "Filtros de audio",
@@ -1234,7 +1234,7 @@
"label": "Tiempo de reintento de FFmpeg"
},
"path": {
- "description": "Ruta al binario de FFmpeg que se va a utilizar o un alias de versión (\"5.0\" o \"7.0\").",
+ "description": "Ruta al binario de FFmpeg que se va a utilizar o un alias de versión (\"7.0\" o \"8.0\").",
"label": "Ruta de FFmpeg"
},
"output_args": {
diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json
index 99aa74e98d..f5e98ebec3 100644
--- a/web/public/locales/es/views/settings.json
+++ b/web/public/locales/es/views/settings.json
@@ -72,7 +72,7 @@
"integrationObjectClassification": "Clasificación de objetos",
"integrationAudioTranscription": "Transcripción de audio",
"cameraDetect": "Detección de objetos",
- "cameraFfmpeg": "FFmpeg",
+ "cameraFfmpeg": "Flujos (FFmpeg)",
"cameraRecording": "Grabación",
"cameraSnapshots": "Instantáneas",
"cameraMotion": "Detección de movimiento",
@@ -1720,7 +1720,17 @@
}
},
"cameraInputs": {
- "itemTitle": "Flujo {{index}}"
+ "itemTitle": "Flujo {{index}}",
+ "sourceMode": {
+ "restream": "Retransmisión (go2rtc)",
+ "manual": "Ruta de entrada manual",
+ "go2rtcStreamLabel": "Flujo go2rtc",
+ "go2rtcStreamPlaceholder": "Selecciona un flujo go2rtc",
+ "noGo2rtcStreams": "No hay flujos go2rtc configurados",
+ "go2rtcStreamSearch": "Buscar flujos…",
+ "availableStreams": "Flujos disponibles",
+ "noMatchingStreams": "No hay flujos coincidentes"
+ }
},
"restartRequiredField": "Reinicio necesario",
"restartRequiredFooter": "Configuración modificada - reinicio necesario",
@@ -2020,6 +2030,9 @@
},
"onvif": {
"autotrackingNoZones": "El seguimiento automático requiere al menos una zona. Define una zona para esta cámara en Máscaras / Zonas y, a continuación, establécela como zona obligatoria a continuación."
+ },
+ "ffmpeg": {
+ "hwaccelManualNotRecommended": "No son remontados los argumentos de aceleración por hardware manual. A no ser que un requisito específico exista, seleccione la preselección que coincida con su hardware."
}
},
"resetToDefaultDescription": "Esto restablecerá todos los ajustes de esta sección a sus valores predeterminados. Esta acción no se puede deshacer.",
diff --git a/web/public/locales/es/views/system.json b/web/public/locales/es/views/system.json
index 23ee553a12..09f26febd4 100644
--- a/web/public/locales/es/views/system.json
+++ b/web/public/locales/es/views/system.json
@@ -81,16 +81,16 @@
"gpuInfo": {
"vainfoOutput": {
"title": "Salida de Vainfo",
- "returnCode": "Código de Retorno: {{code}}",
- "processOutput": "Salida del Proceso:",
- "processError": "Error del Proceso:"
+ "returnCode": "Código de retorno: {{code}}",
+ "processOutput": "Salida del proceso:",
+ "processError": "Error del proceso:"
},
"nvidiaSMIOutput": {
- "cudaComputerCapability": "Capacidad de Cómputo CUDA: {{cuda_compute}}",
+ "cudaComputerCapability": "Capacidad de cómputo CUDA: {{cuda_compute}}",
"title": "Salida de Nvidia SMI",
"driver": "Controlador: {{driver}}",
"name": "Nombre: {{name}}",
- "vbios": "Información de VBios: {{vbios}}"
+ "vbios": "Informe de VBios: {{vbios}}"
},
"toast": {
"success": "Información de GPU copiada al portapapeles"
@@ -104,7 +104,7 @@
},
"gpuMemory": "Memoria de GPU",
"npuMemory": "Memoria de NPU",
- "npuUsage": "Uso de NPU",
+ "npuUsage": "Modo de empleo de NPU",
"intelGpuWarning": {
"title": "Aviso de estadísticas Intel GPU",
"message": "Estadísticas de GPU no disponibles",
@@ -122,7 +122,7 @@
"go2rtc": "go2rtc",
"recording": "grabación",
"review_segment": "revisar segmento",
- "embeddings": "embeddings",
+ "embeddings": "empotrados",
"audio_detector": "detector de audio"
}
}
@@ -165,8 +165,8 @@
"codec": "Codec:",
"fetching": "Obteniendo Datos de la Cámara",
"stream": "Flujo {{idx}}",
- "video": "Video:",
- "fps": "FPS:",
+ "video": "Vídeo:",
+ "fps": "CPS:",
"resolution": "Resolución:",
"error": "Error: {{error}}",
"unknown": "Desconocido",
@@ -174,7 +174,22 @@
"tips": {
"title": "Información de Sondeo de la Cámara"
},
- "aspectRatio": "Relación de aspecto"
+ "aspectRatio": "Relación de aspecto",
+ "keyframes": {
+ "title": "Análisis de clave fotograma",
+ "recordStream": "Flujo de grabación:",
+ "segmentLength": "Longitud de segmento en grabación:",
+ "unknown": "No pudo determinar el espaciado del fotograma.",
+ "analyzing": "Analizando fotogramas clave… {{seconds}} segundos restantes",
+ "stillAnalyzing": "Todavía analizando fotogramas clave…",
+ "keyframeCount": "Fotogramas clave observados:",
+ "observedDuration": "Duración observada:",
+ "gap": "Brecha de fotogramas clave (mín / med / máx):",
+ "recordDisabled": "La grabación está desactivada para esta cámara.",
+ "ok": "Cuadros cada ~{{seconds}}s, bueno para grabación y reproducción.",
+ "warning": "Fotograma clave escaso o variable (hueco más largo ~{{seconds}}s), probablemente un códec inteligente (H.264+/H.265+), esto no es recomendado.",
+ "error": "El intervalo entre fotogramas clave (~{{seconds}} s) supera la duración del segmento de grabación ({{segmentTime}} s). Es posible que algunos segmentos no contengan ningún fotograma clave, lo que impedirá su reproducción. Desactiva el códec inteligente (+) de la cámara o reduce el intervalo entre fotogramas clave."
+ }
},
"framesAndDetections": "Fotogramas / Detecciones",
"label": {
@@ -204,9 +219,9 @@
},
"connectionQuality": {
"excellent": "Excelente",
- "poor": "Debil",
- "title": "Calidad de la conexión",
- "fps": "Cuadros por segundo",
+ "poor": "Pobre",
+ "title": "Calidad de Conexión",
+ "fps": "CPS",
"expectedFps": "Cuadros por segundo esperados",
"reconnectsLastHour": "Reconexiones (última hora)",
"unusable": "No usable",
@@ -222,25 +237,25 @@
"infPerSecond": "Inferencias Por Segundo",
"embeddings": {
"plate_recognition_speed": "Velocidad de Reconocimiento de Matrículas",
- "face_embedding_speed": "Velocidad de Incrustación de Rostros",
- "image_embedding_speed": "Velocidad de Incrustación de Imágenes",
- "text_embedding_speed": "Velocidad de Incrustación de Texto",
+ "face_embedding_speed": "Velocidad de Empotrado Facial",
+ "image_embedding_speed": "Velocidad de Empotrado de Imagen",
+ "text_embedding_speed": "Velocidad de Empotrado de Texto",
"face_recognition_speed": "Velocidad de Reconocimiento Facial",
- "text_embedding": "Incrustación de Texto",
+ "text_embedding": "Empotrado de Texto",
"face_recognition": "Reconocimiento Facial",
"plate_recognition": "Reconocimiento de Matrículas",
"yolov9_plate_detection": "Detección de Matrículas YOLOv9",
- "image_embedding": "Incrustación de Imágenes",
+ "image_embedding": "Empotrado de Imagen",
"yolov9_plate_detection_speed": "Velocidad de Detección de Matrículas YOLOv9",
"review_description": "Revisión de descripción",
- "review_description_speed": "Velocidad de revisión de la descripción",
- "review_description_events_per_second": "Revisión de la descripción",
+ "review_description_speed": "Revisión de velocidad de descripción",
+ "review_description_events_per_second": "Revisión de Descripción",
"object_description": "Descripción de Objeto",
- "object_description_speed": "Velocidad de descripción de objeto",
- "object_description_events_per_second": "Descripción de objeto",
+ "object_description_speed": "Velocidad de Descripción de Objeto",
+ "object_description_events_per_second": "Descripción de Objeto",
"classification": "Clasificación de {{name}}",
- "classification_speed": "Velocidad de clasificación de {{name}}",
- "classification_events_per_second": "Clasificacion de eventos por segundo de {{name}}"
+ "classification_speed": "Velocidad de Clasificación de {{name}}",
+ "classification_events_per_second": "Clasificación de Eventos por Segundo de {{name}}"
},
"title": "Enriquecimientos",
"averageInf": "Tiempo promedio de inferencia"
@@ -249,7 +264,7 @@
"ffmpegHighCpuUsage": "{{camera}} tiene un uso elevado de CPU por FFmpeg ({{ffmpegAvg}}%)",
"detectHighCpuUsage": "{{camera}} tiene un uso elevado de CPU por detección ({{detectAvg}}%)",
"healthy": "El sistema está saludable",
- "reindexingEmbeddings": "Reindexando incrustaciones ({{processed}}% completado)",
+ "reindexingEmbeddings": "Reindexando empotrados ({{processed}}% completado)",
"detectIsSlow": "{{detect}} es lento ({{speed}} ms)",
"cameraIsOffline": "{{camera}} está desconectada",
"detectIsVerySlow": "{{detect}} es muy lento ({{speed}} ms)",
diff --git a/web/public/locales/fr/common.json b/web/public/locales/fr/common.json
index d49150bd9d..ebec9c47f9 100644
--- a/web/public/locales/fr/common.json
+++ b/web/public/locales/fr/common.json
@@ -189,7 +189,8 @@
"id": "Bahasa Indonesia (Indonésien)",
"ur": "اردو (Ourdou)",
"hr": "Hrvatski (Croate)",
- "bs": "Bosanski (Bosnien)"
+ "bs": "Bosanski (Bosnien)",
+ "zhHant": "繁體中文 (chinois traditionnel)"
},
"appearance": "Apparence",
"darkMode": {
diff --git a/web/public/locales/fr/views/motionSearch.json b/web/public/locales/fr/views/motionSearch.json
index 5f47e9942a..0c99cad0c6 100644
--- a/web/public/locales/fr/views/motionSearch.json
+++ b/web/public/locales/fr/views/motionSearch.json
@@ -26,7 +26,9 @@
"points_many": "{{count}} points",
"points_other": "{{count}} points",
"undo": "Annuler le dernier point",
- "reset": "Réinitialiser le polygone"
+ "reset": "Réinitialiser le polygone",
+ "drawMode": "Dessiner",
+ "moveMode": "Déplacer"
},
"motionHeatmapLabel": "Carte thermique des mouvements",
"dialog": {
@@ -36,6 +38,14 @@
},
"timeRange": {
"title": "Plage de recherche",
- "start": "Plage de recherche"
+ "start": "Début de la plage de recherche",
+ "end": "Fin de la plage de recherche"
+ },
+ "settings": {
+ "title": "Paramètres de recherche",
+ "parallelMode": "Mode parallèle",
+ "parallelModeDesc": "Scanner plusieurs plages d'enregistrement simultanément (plus rapide ; nécessite plus de ressources de décodage)",
+ "threshold": "Seuil de sensitivité",
+ "thresholdDesc": "Des valeurs basses détectent de plus petits changements (1-255)"
}
}
diff --git a/web/public/locales/fr/views/system.json b/web/public/locales/fr/views/system.json
index 74394a324a..3c4577c212 100644
--- a/web/public/locales/fr/views/system.json
+++ b/web/public/locales/fr/views/system.json
@@ -112,7 +112,7 @@
},
"gpuTemperature": "Température du GPU",
"npuTemperature": "Température du NPU",
- "gpuCompute": "Calcul / Encodage GPU"
+ "gpuCompute": "Calcul GPU / Encodage"
},
"otherProcesses": {
"title": "Autres processus",
@@ -122,7 +122,7 @@
"go2rtc": "go2rtc",
"recording": "enregistrement",
"review_segment": "Segment d'activité",
- "embeddings": "embeddings",
+ "embeddings": "intégrations",
"audio_detector": "détecteur audio"
}
}
@@ -173,7 +173,22 @@
"error": "Erreur : {{error}}",
"codec": "Codec :",
"video": "Vidéo :",
- "aspectRatio": "rapport d'aspect"
+ "aspectRatio": "rapport d'aspect",
+ "keyframes": {
+ "title": "Analyse par image clef",
+ "analyzing": "Analyse des images clefs... {{seconds}} secondes restantes",
+ "stillAnalyzing": "Analyse des images clefs toujours en cours ...",
+ "recordStream": "Flux d'enregistrement :",
+ "keyframeCount": "Images clefs observées :",
+ "observedDuration": "Durée observée :",
+ "gap": "Écart en images clefs (min / moy / max) :",
+ "segmentLength": "Durée du segment d'enregistrement :",
+ "ok": "Images clefs chaque ~{{seconds}}s, convient à l'enregistrement et au visionnement.",
+ "warning": "Images clefs fragmentées ou variables (plus grand écart d'environ {{seconds}}s), vraisemblablement un codec intelligent (H.264+/H.265+), non-recommendé.",
+ "error": "L'écart en images clefs (~{{seconds}}) dépasse la longueur du segment d'enregistrement ({{segmentTime}}). Certains segments n'ont peut-être pas de clef, ce qui corrompt la lecture. Désactiver le codec intelligent/+ sur la caméra ou raccourcir son intervalle en images clefs.",
+ "unknown": "Impossible de déterminer l'espacement en images clefs.",
+ "recordDisabled": "L'enregistrement est désactivé pour cette caméra."
+ }
},
"framesAndDetections": "Images / Détections",
"label": {
@@ -196,7 +211,7 @@
"overview": "Vue d'ensemble",
"toast": {
"success": {
- "copyToClipboard": "Données de la sonde copiées dans le presse-papiers"
+ "copyToClipboard": "Données de la sonde copiées dans le presse-papiers."
},
"error": {
"unableToProbeCamera": "Impossible d'interroger la caméra : {{errorMessage}}"
@@ -212,6 +227,9 @@
"expectedFps": "IPS attendues",
"reconnectsLastHour": "Reconnexions (dernière heure)",
"stallsLastHour": "Baisses de qualité (dernière heure)"
+ },
+ "noCameras": {
+ "title": "Aucune caméra trouvée"
}
},
"lastRefreshed": "Dernier rafraichissement : ",
diff --git a/web/public/locales/he/common.json b/web/public/locales/he/common.json
index 1059ae300b..d20ee8b530 100644
--- a/web/public/locales/he/common.json
+++ b/web/public/locales/he/common.json
@@ -81,7 +81,8 @@
"thisMonth": "החודש",
"inProgress": "בתהליך",
"invalidStartTime": "זמן התחלה לא תקין",
- "invalidEndTime": "זמן סיום לא תקין"
+ "invalidEndTime": "זמן סיום לא תקין",
+ "never": "אף פעם"
},
"unit": {
"speed": {
@@ -146,7 +147,8 @@
"download": "הורדה",
"info": "מידע",
"next": "הבא",
- "continue": "המשך"
+ "continue": "המשך",
+ "add": "להוסיף"
},
"menu": {
"system": "מערכת",
diff --git a/web/public/locales/hu/audio.json b/web/public/locales/hu/audio.json
index 7f31e04592..c16ebfdfc9 100644
--- a/web/public/locales/hu/audio.json
+++ b/web/public/locales/hu/audio.json
@@ -426,5 +426,12 @@
"chink": "Csörömpölés",
"shatter": "Összetörés",
"field_recording": "Helyszíni felvétel",
- "noise": "Zaj"
+ "noise": "Zaj",
+ "liquid": "Folyadék",
+ "splash": "Csobbanás",
+ "slosh": "Löttyenés",
+ "trickle": "Csörgedezés",
+ "gush": "Folyás",
+ "stir": "Kavarás",
+ "thump": "Puffanás"
}
diff --git a/web/public/locales/hu/views/chat.json b/web/public/locales/hu/views/chat.json
index cd90ba0738..0130564979 100644
--- a/web/public/locales/hu/views/chat.json
+++ b/web/public/locales/hu/views/chat.json
@@ -14,5 +14,6 @@
"attachment_chip_remove": "Melléklet eltávolítása",
"open_in_explore": "Megnyitás Böngészőben",
"attachment_picker_paste_label": "Vagy illeszd be az esemény ID-t",
- "attachment_picker_attach": "Melléklet"
+ "attachment_picker_attach": "Melléklet",
+ "arguments": "Argumentumok:"
}
diff --git a/web/public/locales/hu/views/system.json b/web/public/locales/hu/views/system.json
index 73580e256a..f922f61b99 100644
--- a/web/public/locales/hu/views/system.json
+++ b/web/public/locales/hu/views/system.json
@@ -189,7 +189,11 @@
"face_recognition": "Arcfelismerés",
"plate_recognition": "Rendszám Felismerés",
"yolov9_plate_detection_speed": "YOLOv9 Rendszám Felismerés Sebesség",
- "yolov9_plate_detection": "YOLOv9 Rendszám Észlelés"
+ "yolov9_plate_detection": "YOLOv9 Rendszám Észlelés",
+ "classification_events_per_second": "{{name}} Osztályozási események másodpercenként",
+ "classification_speed": "{{name}} Osztályozási sebesség",
+ "classification": "{{name}} Osztályozás",
+ "object_description_events_per_second": "Objektum leírás"
},
"infPerSecond": "Inferencia Per Másodperc",
"title": "Kiegészítések"
diff --git a/web/public/locales/id/common.json b/web/public/locales/id/common.json
index 455b3f4bf4..cdeb4ab24b 100644
--- a/web/public/locales/id/common.json
+++ b/web/public/locales/id/common.json
@@ -126,7 +126,8 @@
"ur": "اردو (Urdu)",
"withSystem": {
"label": "Gunakan pengaturan sistem untuk bahasa"
- }
+ },
+ "zhHant": "繁體中文 (Tionghoa Tradisional)"
},
"appearance": "Tampilan",
"darkMode": {
diff --git a/web/public/locales/id/components/camera.json b/web/public/locales/id/components/camera.json
index de7759f34d..61ca36bf21 100644
--- a/web/public/locales/id/components/camera.json
+++ b/web/public/locales/id/components/camera.json
@@ -42,12 +42,49 @@
"stream": "Siaran",
"placeholder": "Pilih stream",
"streamMethod": {
- "label": "Metode Streaming"
+ "label": "Metode Streaming",
+ "placeholder": "Pilih satu metode streaming",
+ "method": {
+ "noStreaming": {
+ "label": "Tidak Streaming",
+ "desc": "Gambar kamera hanya diperbarui sekali per menit dan tidak akan ada live streaming."
+ },
+ "smartStreaming": {
+ "label": "Streaming cerdas (disarankan)",
+ "desc": "Streaming cerdas akan memperbarui gambar kamera sekali per menit saat tidak ada aktivitas yang terdeteksi untuk menghemat bandwidth dan sumber daya. Ketika aktivitas terdeteksi, gambar akan otomatis beralih ke live stream."
+ },
+ "continuousStreaming": {
+ "desc": {
+ "title": "Kamera akan selalu live stream selama muncul di dashboard, meskipun tidak ada aktivitas yang terdeteksi.",
+ "warning": "Streaming Terus Menerus dapat menyebabkan penggunaan bandwidth yang tinggi dan masalah performa. Gunakan dengan hati-hati."
+ },
+ "label": "Streaming Terus Menerus"
+ }
+ }
+ },
+ "compatibilityMode": {
+ "label": "Mode Kompatibilitas",
+ "desc": "Aktifkan opsi ini hanya jika live stream kamera Anda menampilkan artefak warna dan memiliki garis diagonal di sisi kanan gambar."
}
}
- }
+ },
+ "showAll": "Tampilkan semua grup kamera",
+ "showLess": "Lebih sedikit",
+ "editGroups": "Sunting Grup Kamera"
},
"debug": {
- "boundingBox": "Batas Kotak"
+ "boundingBox": "Batas Kotak",
+ "options": {
+ "label": "Pengaturan",
+ "title": "Opsi",
+ "showOptions": "Lihat Opsi",
+ "hideOptions": "Sembunyikan Opsi"
+ },
+ "zones": "Zona",
+ "motion": "Gerakan",
+ "regions": "Wilayah",
+ "timestamp": "Timestamp",
+ "mask": "Masker",
+ "paths": "Path"
}
}
diff --git a/web/public/locales/id/components/dialog.json b/web/public/locales/id/components/dialog.json
index 35d87b07ca..6ec42c5759 100644
--- a/web/public/locales/id/components/dialog.json
+++ b/web/public/locales/id/components/dialog.json
@@ -52,12 +52,73 @@
"export": "Ekspor",
"selectOrExport": "Pilih atau Ekspor",
"toast": {
- "success": "Berhasil memulai ekspor. Lihat file pada halaman ekspor."
- }
+ "success": "Berhasil memulai ekspor. Lihat file pada halaman ekspor.",
+ "queued": "Ekspor diantrekan. Lihat progres di halaman ekspor.",
+ "view": "Melihat",
+ "batchSuccess_other": "{{count}} Ekspor dimulai. Membuka kasusnya sekarang.",
+ "batchPartial": "Ekspor berhasil dimulai sebanyak {{successful}} dari total {{total}} ekspor. Kamera yang gagal: {{failedCameras}}",
+ "batchFailed": "Gagal memulai ekspor sebanyak {{total}}. Kamera yang gagal: {{failedCameras}}"
+ },
+ "case": {
+ "newCaseOption": "Membuat Kasus Baru",
+ "newCaseNamePlaceholder": "Nama Kasus Baru",
+ "newCaseDescriptionPlaceholder": "Deskripsi Kasus",
+ "label": "Kasus",
+ "nonAdminHelp": "Kasus Baru akan Dibuat untuk Ekspor ini.",
+ "placeholder": "Pilih Kasus"
+ },
+ "tabs": {
+ "export": "Kamera Tunggal",
+ "multiCamera": "Multi Kamera"
+ },
+ "multiCamera": {
+ "timeRange": "Rentang Waktu",
+ "selectFromTimeline": "Pilih dari Timeline",
+ "cameraSelection": "Kamera",
+ "checkingActivity": "Memeriksa Aktivitas Kamera...",
+ "noCameras": "Tidak ada Kamera Tersedia",
+ "detectionCount_other": "{{count}} Objek terlacak",
+ "nameLabel": "Nama Ekspor",
+ "exportButton_other": "Ekspor {{count}} kamera",
+ "cameraSelectionHelp": "Kamera dengan objek yang dilacak dalam rentang waktu ini telah dipilih sebelumnya",
+ "queueingButton": "Mengantrekan ekspor...",
+ "clearSelection": "Hapus pilihan",
+ "selectWithActivity": "Kamera dengan objek yang dilacak",
+ "selectGroup": "Pilih grup",
+ "noMatchingCameras": "Tidak ada kamera yang sesuai dengan pencarian Anda",
+ "selectedCount": "{{terpilih}} / {{total}} terpilih",
+ "namePlaceholder": "Nama dasar opsional untuk ekspor ini"
+ },
+ "multi": {
+ "title_other": "Ekspor {{count}} Ulasan",
+ "toast": {
+ "startedNoCase_other": "{{count}} Ekspor Dimulai.",
+ "started_other": "{{count}} ekspor dimulai. Membuka kasusnya sekarang.",
+ "partial": "Memulai {{successful}} dari {{total}} ekspor. Gagal: {{failedItems}}",
+ "failed": "Gagal memulai {{total}} ekspor. Gagal: {{failedItems}}"
+ },
+ "description": "Ekspor setiap ulasan yang dipilih. Semua Ekspor akan dikelompokkan dalam satu kasus.",
+ "descriptionNoCase": "Ekspor setiap ulasan yang dipilih.",
+ "exportButton_other": "Ekspor {{count}} ulasan",
+ "exportingButton": "Mengekspor...",
+ "caseNamePlaceholder": "Ekspor tinjauan - {{tanggal}}"
+ },
+ "queueing": "Mengantrekan Ekspor..."
},
"search": {
"saveSearch": {
"overwrite": "{{searchName}} sudah ada. Menyimpan akan menimpa file yang sudah ada."
}
+ },
+ "streaming": {
+ "restreaming": {
+ "disabled": "Fitur restreaming tidak diaktifkan untuk kamera ini.",
+ "desc": {
+ "title": "Instal go2rtc untuk opsi tampilan langsung dan audio tambahan untuk kamera ini."
+ }
+ },
+ "showStats": {
+ "label": "Tampilkan statistik streaming"
+ }
}
}
diff --git a/web/public/locales/it/config/cameras.json b/web/public/locales/it/config/cameras.json
index e359290754..98149073c7 100644
--- a/web/public/locales/it/config/cameras.json
+++ b/web/public/locales/it/config/cameras.json
@@ -132,53 +132,111 @@
}
},
"mqtt": {
- "label": "MQTT"
+ "label": "MQTT",
+ "description": "Impostazioni di pubblicazione delle immagini via MQTT.",
+ "enabled": {
+ "label": "Invia immagine",
+ "description": "Abilita la pubblicazione delle istantanee dell'immagine per gli oggetti sui topic MQTT per questa telecamera."
+ },
+ "timestamp": {
+ "label": "Aggiungi timestamp",
+ "description": "Sovraimprime un timestamp sulle immagini pubblicate su MQTT."
+ },
+ "bounding_box": {
+ "label": "Aggiungi riquadro di delimitazione",
+ "description": "Disegna i riquadri di delimitazione sulle immagini pubblicate tramite MQTT."
+ },
+ "crop": {
+ "label": "Ritaglia immagine",
+ "description": "Ritaglia le immagini pubblicate su MQTT in base al riquadro di delimitazione dell'oggetto rilevato."
+ },
+ "height": {
+ "label": "Altezza immagine",
+ "description": "Altezza (in pixel) a cui ridimensionare le immagini pubblicate tramite MQTT."
+ },
+ "required_zones": {
+ "label": "Zone richieste",
+ "description": "Zone in cui un oggetto deve entrare affinché venga pubblicata un'immagine MQTT."
+ },
+ "quality": {
+ "label": "Qualità JPEG",
+ "description": "Qualità JPEG per le immagini pubblicate su MQTT (0-100)."
+ }
},
"onvif": {
"tls_insecure": {
- "label": "Disabilita verifica TLS"
+ "label": "Disabilita verifica TLS",
+ "description": "Salta la verifica TLS e disabilita l'autenticazione digest per ONVIF (non sicuro; utilizzare solo in reti sicure)."
},
"profile": {
- "label": "Profilo ONVIF"
+ "label": "Profilo ONVIF",
+ "description": "Profilo multimediale ONVIF specifico da utilizzare per il controllo PTZ, identificato tramite token o nome. Se non impostato, viene selezionato automaticamente il primo profilo con una configurazione PTZ valida."
},
"autotracking": {
"label": "Tracciamento automatico",
"enabled": {
- "label": "Abilita il tracciamento automatico"
+ "label": "Abilita il tracciamento automatico",
+ "description": "Abilita o disabilita il tracciamento automatico della telecamera PTZ per gli oggetti rilevati."
},
"calibrate_on_startup": {
- "label": "Calibra all'avvio"
+ "label": "Calibra all'avvio",
+ "description": "Misura la velocità dei motori PTZ all'avvio per migliorare la precisione del tracciamento. Frigate aggiornerà la configurazione con i valori di movement_weights dopo la calibrazione."
},
"zooming": {
- "label": "Modalità ingrandimento"
+ "label": "Modalità ingrandimento",
+ "description": "Controlla il comportamento dello zoom: disabled (solo pan/tilt), absolute (più compatibile) o relative (pan/tilt/zoom simultanei)."
},
"zoom_factor": {
- "label": "Fattore di ingrandimento"
+ "label": "Fattore di ingrandimento",
+ "description": "Controlla il livello di zoom sugli oggetti tracciati. Valori più bassi mantengono una porzione maggiore della scena visibile; valori più alti aumentano lo zoom ma potrebbero far perdere il tracciamento. Valori compresi tra 0.1 e 0.75."
},
"track": {
"label": "Oggetti tracciati",
"description": "Elenco dei tipi di oggetto che dovrebbero attivare il tracciamento automatico."
},
"required_zones": {
- "label": "Zone richieste"
+ "label": "Zone richieste",
+ "description": "Gli oggetti devono entrare in una di queste zone prima che inizi il tracciamento automatico."
},
"timeout": {
"label": "Scadenza di ritorno",
"description": "Attendi questo numero di secondi dopo aver perso il tracciamento prima di riportare la telecamera nella posizione preimpostata."
},
"movement_weights": {
- "description": "Valori di calibrazione generati automaticamente dalla calibrazione della telecamera. Non modificare manualmente."
+ "description": "Valori di calibrazione generati automaticamente dalla calibrazione della telecamera. Non modificare manualmente.",
+ "label": "Pesi del movimento"
},
"enabled_in_config": {
- "label": "Stato originale del tracciamento automatico"
+ "label": "Stato originale del tracciamento automatico",
+ "description": "Campo interno per tracciare se il tracciamento automatico era abilitato nella configurazione."
+ },
+ "description": "Traccia automaticamente gli oggetti in movimento e li mantiene centrati nell'inquadratura utilizzando i movimenti della telecamera PTZ.",
+ "return_preset": {
+ "label": "Preset di ritorno",
+ "description": "Nome del preset ONVIF configurato nel firmware della telecamera a cui ritornare al termine del tracciamento."
}
},
"ignore_time_mismatch": {
- "label": "Ignora la discrepanza oraria"
+ "label": "Ignora la discrepanza oraria",
+ "description": "Ignora le differenze di sincronizzazione oraria tra la telecamera e il server Frigate per la comunicazione ONVIF."
},
"label": "ONVIF",
"port": {
- "label": "Porta ONVIF"
+ "label": "Porta ONVIF",
+ "description": "Numero di porta per il servizio ONVIF."
+ },
+ "description": "Impostazioni della connessione ONVIF e del tracciamento automatico PTZ per questa telecamera.",
+ "host": {
+ "label": "Host ONVIF",
+ "description": "Host (e schema opzionale) per il servizio ONVIF di questa telecamera."
+ },
+ "user": {
+ "label": "Nome utente ONVIF",
+ "description": "Nome utente per l'autenticazione ONVIF; alcuni dispositivi richiedono un utente amministratore per l'ONVIF."
+ },
+ "password": {
+ "label": "Password ONVIF",
+ "description": "Password per l'autenticazione ONVIF."
}
},
"detect": {
@@ -363,20 +421,20 @@
"description": "Numero massimo di processi di esportazione da elaborare contemporaneamente."
}
},
- "description": "Impostazioni di registrazione e conservazione per questa videocamera.",
+ "description": "Impostazioni di registrazione e conservazione per questa telecamera.",
"enabled": {
- "label": "Abilita Registrazione",
+ "label": "Abilita registrazione",
"description": "Attiva o disattiva la registrazione per questa telecamera."
},
"expire_interval": {
- "label": "Intervallo pulizia registrazioni",
+ "label": "Intervallo di pulizia registrazioni",
"description": "Minuti tra i cicli di pulizia che rimuovono i segmenti di registrazione scaduti."
},
"continuous": {
"label": "Conservazione continua",
"description": "Numero di giorni per cui conservare le registrazioni, indipendentemente dagli oggetti tracciati o dal movimento. Impostare su 0 se si desidera conservare solo le registrazioni relative agli avvisi e ai rilevamenti.",
"days": {
- "label": "Giorni di Conservazione",
+ "label": "Giorni di conservazione",
"description": "Numero di giorni di conservazione delle registrazioni."
}
},
@@ -384,7 +442,7 @@
"label": "Conservazione movimento",
"description": "Numero di giorni per cui conservare le registrazioni attivate dal movimento, indipendentemente dagli oggetti tracciati. Impostare su 0 se si desidera conservare solo le registrazioni relative ad allarmi e rilevamenti.",
"days": {
- "label": "Giorni di Conservazione",
+ "label": "Giorni di conservazione",
"description": "Numero di giorni di conservazione delle registrazioni."
}
},
@@ -392,12 +450,12 @@
"label": "Conservazione rilevamento",
"description": "Impostazioni relative alla conservazione delle registrazioni per gli eventi di rilevamento, comprese le durate prima e dopo l'acquisizione.",
"pre_capture": {
- "label": "Secondi di pre-acquisizione",
- "description": "Numero di secondi precedenti l'evento di rilevamento da includere nella registrazione."
+ "label": "Secondi prima della cattura",
+ "description": "Numero di secondi precedenti all'evento di rilevamento da includere nella registrazione."
},
"post_capture": {
- "label": "Secondi di post-acquisizione",
- "description": "Numero di secondi successivi l'evento di rilevamento da includere nella registrazione."
+ "label": "Secondi dopo la cattura",
+ "description": "Numero di secondi successivi all'evento di rilevamento da includere nella registrazione."
},
"retain": {
"label": "Conservazione eventi",
@@ -414,13 +472,13 @@
},
"alerts": {
"label": "Conservazione avvisi",
- "description": "Impostazioni di conservazione delle registrazioni per gli eventi di avviso, incluse le durate di pre e post-acquisizione.",
+ "description": "Impostazioni di conservazione delle registrazioni per gli eventi di avviso, incluse le durate prima e dopo la cattura.",
"pre_capture": {
- "label": "Secondi di pre-acquisizione",
- "description": "Numero di secondi antecedenti all'evento di rilevamento da includere nella registrazione."
+ "label": "Secondi prima della cattura",
+ "description": "Numero di secondi precedenti all'evento di rilevamento da includere nella registrazione."
},
"post_capture": {
- "label": "Secondi di post-acquisizione",
+ "label": "Secondi dopo la cattura",
"description": "Numero di secondi successivi all'evento di rilevamento da includere nella registrazione."
},
"retain": {
@@ -461,7 +519,40 @@
"description": "Sovraimprime un timestamp sulle istantanee provenienti dalle API."
},
"bounding_box": {
- "label": "Sovrimpressione riquadro di delimitazione"
+ "label": "Sovrimpressione riquadro di delimitazione",
+ "description": "Disegna i riquadri di delimitazione per gli oggetti tracciati sulle istantanee provenienti dalle API."
+ },
+ "crop": {
+ "label": "Ritaglia istantanea",
+ "description": "Ritaglia le istantanee provenienti dalle API in base al riquadro di delimitazione dell'oggetto rilevato."
+ },
+ "required_zones": {
+ "label": "Zone richieste",
+ "description": "Zone in cui un oggetto deve entrare affinché venga salvata un'istantanea."
+ },
+ "height": {
+ "label": "Altezza istantanea",
+ "description": "Altezza (in pixel) a cui ridimensionare le istantanee provenienti dalle API; lascia vuoto per mantenere la dimensione originale."
+ },
+ "retain": {
+ "label": "Conservazione istantanee",
+ "description": "Impostazioni di conservazione per le istantanee, inclusi i giorni predefiniti e le eccezioni per singolo oggetto.",
+ "default": {
+ "label": "Conservazione predefinita",
+ "description": "Numero predefinito di giorni per cui conservare le istantanee."
+ },
+ "mode": {
+ "label": "Modalità di conservazione",
+ "description": "Modalità di conservazione: tutti (salva tutti i segmenti), movimento (salva i segmenti con movimento) o oggetti_attivi (salva i segmenti con oggetti attivi)."
+ },
+ "objects": {
+ "label": "Conservazione oggetti",
+ "description": "Eccezioni per singolo oggetto relativi ai giorni di conservazione delle istantanee."
+ }
+ },
+ "quality": {
+ "label": "Qualità istantanee",
+ "description": "Qualità di codifica per le istantanee salvate (0-100)."
}
},
"motion": {
@@ -492,10 +583,12 @@
"description": "Se impostato su un valore compreso tra 0.0 e 110, e se in un singolo fotogramma cambia una porzione dell'immagine superiore a tale frazione, il rilevatore non restituirà alcun riquadro di movimento e si ricalibrerà immediatamente. Ciò consente di risparmiare risorse della CPU e ridurre i falsi positivi in caso di fulmini, temporali, ecc., ma potrebbe comportare la mancata rilevazione di eventi reali, come ad esempio il tracciamento automatico di un oggetto da parte di una telecamera PTZ. Il compromesso consiste nel scegliere se sacrificare alcuni megabyte di registrazioni o rivedere un paio di brevi video. Lasciare non impostato (Nessuno) per disabilitare questa funzione."
},
"delta_alpha": {
- "description": "Fattore di fusione alfa utilizzato nel calcolo della differenza tra fotogrammi per il calcolo del movimento."
+ "description": "Fattore di fusione alfa utilizzato nel calcolo della differenza tra fotogrammi per il calcolo del movimento.",
+ "label": "Delta alfa"
},
"frame_alpha": {
- "description": "Valore alfa utilizzato durante la fusione dei fotogrammi per la preelaborazione del movimento."
+ "description": "Valore alfa utilizzato durante la fusione dei fotogrammi per la preelaborazione del movimento.",
+ "label": "Frame alfa"
},
"frame_height": {
"label": "Altezza del frame",
@@ -510,7 +603,8 @@
"description": "Secondi di attesa dopo l'ultimo movimento prima di pubblicare uno stato 'off' MQTT."
},
"enabled_in_config": {
- "description": "Indica se il rilevamento del movimento era abilitato nella configurazione statica originale."
+ "description": "Indica se il rilevamento del movimento era abilitato nella configurazione statica originale.",
+ "label": "Stato movimento originale"
},
"raw_mask": {
"label": "Maschera grezza"
@@ -548,11 +642,11 @@
},
"min_score": {
"label": "Confidenza minima",
- "description": "Livello minimo di confidenza del rilevamento per singolo fotogramma richiesto affinché l'oggetto venga conteggiato."
+ "description": "Livello minimo di confidenza nel rilevamento in un singolo fotogramma richiesto affinché l'oggetto venga conteggiato."
},
"mask": {
"label": "Maschera filtro",
- "description": "Coordinate del poligono che definisce l'area all'interno dell'inquadratura in cui si applica questo filtro."
+ "description": "Coordinate del poligono che definiscono la posizione di applicazione di questo filtro all'interno dell'inquadratura."
},
"raw_mask": {
"label": "Maschera grezza"
@@ -560,40 +654,42 @@
},
"mask": {
"label": "Maschera oggetto",
- "description": "Poligono di maschera utilizzato per impedire il rilevamento di oggetti in aree specificate."
+ "description": "Poligono di mascheramento utilizzato per impedire il rilevamento di oggetti in aree specifiche."
},
"genai": {
"label": "Configurazione degli oggetti GenAI",
"description": "Opzioni GenAI per la descrizione degli oggetti tracciati e l'invio dei fotogrammi per la generazione.",
"enabled": {
"label": "Abilita GenAI",
- "description": "Abilita di default la generazione tramite GenAI delle descrizioni degli oggetti monitorati."
+ "description": "Abilita in modo predefinito la generazione di descrizioni da parte di GenAI per gli oggetti tracciati."
},
"use_snapshot": {
- "label": "Usa istantanee",
+ "label": "Utilizza istantanee",
"description": "Utilizza le istantanee degli oggetti anziché le miniature per la generazione di descrizioni con GenAI."
},
"prompt": {
- "description": "Modello di prompt predefinito utilizzato per la generazione di descrizioni con GenAI."
+ "description": "Modello di richiesta predefinito utilizzato per la generazione di descrizioni con GenAI.",
+ "label": "Richiesta di didascalia"
},
"object_prompts": {
- "description": "Prompt specifici per ogni oggetto per personalizzare i risultati di GenAI in base a etichette specifiche."
+ "description": "Richieste specifiche per ogni oggetto per personalizzare i risultati di GenAI in base a etichette specifiche.",
+ "label": "Richiesta di oggetto"
},
"objects": {
"label": "Oggetti GenAI",
- "description": "Elenco delle etichette degli oggetti da inviare a GenAI per impostazione predefinita."
+ "description": "Elenco di etichette degli oggetti da inviare a GenAI per impostazione predefinita."
},
"required_zones": {
- "label": "Zone obbligatorie",
- "description": "Zone che devono essere inserite affinché gli oggetti possano essere utilizzati per la generazione di descrizioni tramite GenAI."
+ "label": "Zone richieste",
+ "description": "Zone che devono essere inserite affinché gli oggetti siano idonei alla generazione della descrizione GenAI."
},
"debug_save_thumbnails": {
"label": "Salva miniature",
- "description": "Salva le miniature inviate a GenAI per il debug e la revisione."
+ "description": "Salva le miniature inviate a GenAI per la correzione e la revisione."
},
"send_triggers": {
- "label": "Attivatori GenAI",
- "description": "Definisce quando i frame devono essere inviati a GenAI (al termine, dopo gli aggiornamenti, ecc.).",
+ "label": "Attivazioni GenAI",
+ "description": "Definisce quando i fotogrammi devono essere inviati a GenAI (alla fine, dopo gli aggiornamenti, ecc.).",
"tracked_object_end": {
"label": "Invia alla fine",
"description": "Invia una richiesta a GenAI quando l'oggetto tracciato termina."
@@ -629,25 +725,60 @@
}
},
"timestamp_style": {
- "label": "Stile orario"
+ "label": "Stile orario",
+ "description": "Opzioni di stile per i timestamp applicati alle istantanee e alla vista di Debug.",
+ "position": {
+ "label": "Posizione timestamp",
+ "description": "Posizione del timestamp sull'immagine (tl/tr/bl/br)."
+ },
+ "format": {
+ "label": "Formato timestamp",
+ "description": "Stringa di formato data/ora utilizzata per i timestamp (codici di formato datetime di Python)."
+ },
+ "color": {
+ "label": "Colore timestamp",
+ "description": "Valori di colore RGB per il testo del timestamp (tutti i valori da 0 a 255).",
+ "red": {
+ "label": "Rosso",
+ "description": "Componente rosso (0-255) per il colore del timestamp."
+ },
+ "green": {
+ "label": "Verde",
+ "description": "Componente verde (0-255) per il colore del timestamp."
+ },
+ "blue": {
+ "label": "Blu",
+ "description": "Componente blu (0-255) per il colore del timestamp."
+ }
+ },
+ "thickness": {
+ "label": "Spessore timestamp",
+ "description": "Spessore della linea del testo del timestamp."
+ },
+ "effect": {
+ "label": "Effetto timestamp",
+ "description": "Effetto visivo per il testo del timestamp (none, solid, shadow)."
+ }
},
"notifications": {
"label": "Notifiche",
"enabled": {
- "label": "Abilita le notifiche"
+ "label": "Abilita le notifiche",
+ "description": "Abilita o disabilita le notifiche per questa telecamera."
},
"email": {
"label": "Email di notifica",
"description": "Indirizzo email utilizzato per le notifiche push o richiesto da alcuni fornitori di servizi di notifica."
},
"cooldown": {
- "label": "Periodo di raffreddamento",
+ "label": "Tempo di attesa tra notifiche",
"description": "Tempo di attesa (in secondi) tra le notifiche per evitare di inviare spam ai destinatari."
},
"enabled_in_config": {
"label": "Stato delle notifiche originali",
"description": "Indica se le notifiche erano abilitate nella configurazione statica originale."
- }
+ },
+ "description": "Impostazioni per abilitare e controllare le notifiche per questa telecamera."
},
"birdseye": {
"label": "Birdseye",
@@ -671,7 +802,7 @@
"label": "Attivatori",
"friendly_name": {
"label": "Nome descrittivo",
- "description": "Nome descrittivo opzionale visualizzato nell'interfaccia utente per questo innesco."
+ "description": "Nome descrittivo opzionale visualizzato nell'interfaccia utente per questo attivatore."
},
"description": "Azioni e criteri di corrispondenza per gli attivatori della ricerca semantica specifici della telecamera.",
"enabled": {
@@ -720,17 +851,23 @@
"ui": {
"description": "Visualizza l'ordine e la visibilità di questa telecamera nell'interfaccia utente. L'ordine influisce sul cruscotto predefinito. Per un controllo più granulare, utilizza i gruppi di telecamere.",
"order": {
- "description": "L'ordine numerico viene utilizzato per ordinare le telecamere nell'interfaccia utente (cruscotto ed elenchi predefiniti); i numeri più grandi compaiono successivamente."
+ "description": "L'ordine numerico viene utilizzato per ordinare le telecamere nell'interfaccia utente (cruscotto ed elenchi predefiniti); i numeri più grandi compaiono successivamente.",
+ "label": "Ordine interfaccia utente"
},
"dashboard": {
"label": "Mostra nell'interfaccia utente",
"description": "Abilita o disabilita la visualizzazione di questa telecamera in ogni punto dell'interfaccia utente di Frigate. Disabilitando questa opzione, sarà necessario modificare manualmente la configurazione per visualizzare nuovamente la telecamera nell'interfaccia utente."
},
- "label": "Interfaccia utente telecamera"
+ "label": "Interfaccia utente telecamera",
+ "review": {
+ "label": "Mostra in revisione",
+ "description": "Abilita o disabilita la visibilità di questa telecamera nella sezione di revisione (la pagina di revisione e il relativo filtro telecamera, la revisione del movimento e la vista della cronologia)."
+ }
},
"zones": {
"enabled": {
- "label": "Abilitata"
+ "label": "Abilitata",
+ "description": "Abilita o disabilita questa zona. Le zone disabilitate vengono ignorate durante l'esecuzione."
},
"label": "Zone",
"friendly_name": {
@@ -740,11 +877,81 @@
"filters": {
"raw_mask": {
"label": "Maschera grezza"
+ },
+ "label": "Filtri Zona",
+ "description": "Filtri da applicare agli oggetti all'interno di questa zona. Utilizzati per ridurre i falsi positivi o limitare quali oggetti sono considerati presenti nella zona.",
+ "min_area": {
+ "label": "Area minima oggetto",
+ "description": "Area minima del riquadro di delimitazione (in pixel o percentuale) richiesta per questo tipo di oggetto. Può essere in pixel (int) o in percentuale (float compreso tra 0.000001 e 0.99)."
+ },
+ "max_area": {
+ "label": "Area massima oggetto",
+ "description": "Area massima del riquadro di delimitazione (in pixel o percentuale) richiesta per questo tipo di oggetto. Può essere espressa in pixel (numero intero) o in percentuale (valore decimale compreso tra 0.000001 e 0.99)."
+ },
+ "min_ratio": {
+ "label": "Rapporto di aspetto minimo",
+ "description": "Rapporto minimo tra larghezza e altezza richiesto affinché il riquadro di delimitazione sia valido."
+ },
+ "max_ratio": {
+ "label": "Rapporto di aspetto massimo",
+ "description": "Rapporto massimo tra larghezza e altezza richiesto affinché il riquadro di delimitazione sia valido."
+ },
+ "threshold": {
+ "label": "Soglia di confidenza",
+ "description": "Soglia di confidenza media di rilevamento necessaria affinché l'oggetto sia considerato un vero positivo."
+ },
+ "min_score": {
+ "label": "Confidenza minima",
+ "description": "Livello minimo di confidenza nel rilevamento in un singolo fotogramma richiesto affinché l'oggetto venga conteggiato."
+ },
+ "mask": {
+ "label": "Maschera filtro",
+ "description": "Coordinate del poligono che definiscono la posizione di applicazione di questo filtro all'interno dell'inquadratura."
}
+ },
+ "description": "Le zone consentono di definire un'area specifica dell'inquadratura per determinare se un oggetto si trova o meno all'interno di una particolare area.",
+ "enabled_in_config": {
+ "label": "Mantieni traccia dello stato originale della zona."
+ },
+ "coordinates": {
+ "label": "Coordinate",
+ "description": "Coordinate del poligono che definiscono l'area della zona. Può essere una stringa separata da virgole o un elenco di stringhe di coordinate. Le coordinate devono essere relative (0-1) o assolute (legacy)."
+ },
+ "distances": {
+ "label": "Distanze reali",
+ "description": "Distanze reali opzionali per ciascun lato del quadrilatero della zona, utilizzate per i calcoli di velocità o distanza. Deve avere esattamente 4 valori se impostato."
+ },
+ "inertia": {
+ "label": "Fotogrammi di inerzia",
+ "description": "Numero di fotogrammi consecutivi in cui un oggetto deve essere rilevato nella zona prima di essere considerato presente. Aiuta a filtrare i rilevamenti transitori."
+ },
+ "loitering_time": {
+ "label": "Secondi di stazionamento",
+ "description": "Numero di secondi per cui un oggetto deve rimanere nella zona per essere considerato in stazionamento nella stessa. Imposta a 0 per disabilitare il rilevamento dello stazionamento."
+ },
+ "speed_threshold": {
+ "label": "Velocità minima",
+ "description": "Velocità minima (in unità reali se le distanze sono impostate) richiesta affinché un oggetto sia considerato presente nella zona. Utilizzata per gli attivatori di zona basati sulla velocità."
+ },
+ "objects": {
+ "label": "Oggetti attivatori",
+ "description": "Elenco dei tipi di oggetto (dalla labelmap) che possono attivare questa zona. Può essere una stringa o un elenco di stringhe. Se vuoto, vengono considerati tutti gli oggetti."
}
},
"type": {
"description": "Tipo di telecamera",
"label": "Tipo di telecamera"
+ },
+ "best_image_timeout": {
+ "label": "Timeout immagine migliore",
+ "description": "Quanto tempo attendere per l'immagine con il punteggio di accuratezza più alto."
+ },
+ "webui_url": {
+ "label": "URL telecamera",
+ "description": "URL per visitare direttamente la telecamera dalla pagina di sistema"
+ },
+ "enabled_in_config": {
+ "label": "Stato telecamera originale",
+ "description": "Mantiene traccia dello stato originale della telecamera."
}
}
diff --git a/web/public/locales/it/config/global.json b/web/public/locales/it/config/global.json
index e3045ddc56..b8c557ce3c 100644
--- a/web/public/locales/it/config/global.json
+++ b/web/public/locales/it/config/global.json
@@ -99,6 +99,10 @@
"hash_iterations": {
"description": "Numero di iterazioni PBKDF2-SHA256 da utilizzare per criptare le password utente.",
"label": "Iterazioni di crittografia"
+ },
+ "admin_first_time_login": {
+ "label": "Flag primo accesso amministratore",
+ "description": "Quando impostato su true, l'interfaccia utente può mostrare un link di aiuto nella pagina di login per informare gli utenti su come accedere dopo un ripristino della password di amministratore. "
}
},
"ffmpeg": {
@@ -175,11 +179,17 @@
"label": "Numero di processi di rilevamento",
"description": "Il numero di processi utilizzati per l'inferenza basata sulla CPU."
},
- "description": "Rilevatore CPU TFLite che esegue modelli TensorFlow Lite sulla CPU di sistema senza accelerazione hardware. Sconsigliato."
+ "description": "Rilevatore CPU TFLite che esegue modelli TensorFlow Lite sulla CPU di sistema senza accelerazione hardware. Sconsigliato.",
+ "label": "CPU"
},
"label": "Dispositivo di rilevamento",
"hailo8l": {
- "description": "Rilevatore Hailo-8/Hailo-8L che utilizza modelli HEF e l'SDK HailoRT per l'inferenza sul dispositivo Hailo."
+ "description": "Rilevatore Hailo-8/Hailo-8L che utilizza modelli HEF e l'SDK HailoRT per l'inferenza sul dispositivo Hailo.",
+ "label": "Hailo-8/Hailo-8L",
+ "device": {
+ "label": "Tipo di dispositivo",
+ "description": "Il dispositivo da utilizzare per l'inferenza Hailo (ad es. 'PCIe', 'M.2')."
+ }
},
"openvino": {
"description": "Rilevatore OpenVINO per CPU AMD e Intel, GPU Intel e dispositivo Intel VPU."
@@ -192,6 +202,111 @@
},
"type": {
"label": "Tipo"
+ },
+ "description": "Configurazione per i rilevatori di oggetti (backend CPU, GPU, ONNX) e impostazioni del modello specifiche per il rilevatore.",
+ "model": {
+ "label": "Configurazione del modello specifica del rilevatore",
+ "description": "Opzioni di configurazione del modello specifiche del rilevatore (percorso, dimensioni di input, ecc.).",
+ "path": {
+ "label": "Percorso del modello di rilevamento oggetti personalizzato",
+ "description": "Percorso di un file del modello di rilevamento personalizzato (o plus:// per i modelli Frigate+)."
+ },
+ "labelmap_path": {
+ "label": "Mappa delle etichette (label map) per il rilevatore di oggetti personalizzato",
+ "description": "Percorso di un file labelmap che mappa le classi numeriche in etichette testuali per il rilevatore."
+ },
+ "width": {
+ "label": "Larghezza di input del modello di rilevamento oggetti",
+ "description": "Larghezza del tensore di input del modello in pixel."
+ },
+ "height": {
+ "label": "Altezza di input del modello di rilevamento oggetti",
+ "description": "Altezza del tensore di input del modello in pixel."
+ },
+ "labelmap": {
+ "label": "Personalizzazione labelmap",
+ "description": "Sostituzioni o voci di rimappatura da unire alla labelmap standard."
+ },
+ "attributes_map": {
+ "label": "Mappa delle etichette oggetto con le relative etichette di attributo",
+ "description": "Mappatura dalle etichette oggetto alle etichette di attributo utilizzata per allegare metadati (ad esempio 'car' -> ['license_plate'])."
+ },
+ "input_tensor": {
+ "label": "Forma del tensore di input del modello",
+ "description": "Formato del tensore richiesto dal modello: 'nhwc' o 'nchw'."
+ },
+ "input_pixel_format": {
+ "label": "Formato colore dei pixel di input del modello",
+ "description": "Spazio colore dei pixel richiesto dal modello: 'rgb', 'bgr' o 'yuv'."
+ },
+ "input_dtype": {
+ "label": "Tipo di dati di input del modello (Dtype)",
+ "description": "Tipo di dati del tensore di input del modello (ad esempio 'float32')."
+ },
+ "model_type": {
+ "label": "Tipo di modello di rilevamento oggetti",
+ "description": "Tipo di architettura del modello del rilevatore (ssd, yolox, yolonas) utilizzato da alcuni rilevatori per l'ottimizzazione."
+ }
+ },
+ "model_path": {
+ "label": "Percorso del modello specifico del rilevatore",
+ "description": "Percorso del file binario del modello del rilevatore, se richiesto dal rilevatore scelto."
+ },
+ "axengine": {
+ "label": "NPU AXEngine",
+ "description": "Rilevatore NPU AXERA AX650N/AX8850N che esegue file .axmodel compilati tramite il runtime AXEngine."
+ },
+ "deepstack": {
+ "label": "DeepStack",
+ "description": "Rilevatore DeepStack/CodeProject.AI che invia immagini a una API HTTP DeepStack remota per l'inferenza. Non consigliato.",
+ "api_url": {
+ "label": "URL API DeepStack",
+ "description": "L'URL delle API DeepStack."
+ },
+ "api_timeout": {
+ "label": "Timeout API DeepStack (in secondi)",
+ "description": "Tempo massimo consentito per una richiesta alle API DeepStack."
+ },
+ "api_key": {
+ "label": "Chiave API DeepStack (se richiesta)",
+ "description": "Chiave API opzionale per i servizi DeepStack autenticati."
+ }
+ },
+ "degirum": {
+ "label": "DeGirum",
+ "description": "Rilevatore DeGirum per l'esecuzione di modelli tramite il cloud DeGirum o servizi di inferenza locali.",
+ "zoo": {
+ "label": "Model Zoo",
+ "description": "Percorso o URL del model zoo di DeGirum."
+ },
+ "token": {
+ "label": "Token Cloud DeGirum",
+ "description": "Token per l'accesso al Cloud DeGirum."
+ }
+ },
+ "edgetpu": {
+ "label": "EdgeTPU",
+ "description": "Rilevatore EdgeTPU che esegue modelli TensorFlow Lite compilati per Coral EdgeTPU utilizzando il delegate EdgeTPU.",
+ "device": {
+ "label": "Tipo di dispositivo",
+ "description": "Il dispositivo da utilizzare per l'inferenza EdgeTPU (ad es. 'usb', 'pci')."
+ }
+ },
+ "memryx": {
+ "label": "MemryX",
+ "description": "Rilevatore MemryX MX3 che esegue modelli DFP compilati su acceleratori MemryX.",
+ "device": {
+ "label": "Percorso del dispositivo",
+ "description": "Il dispositivo da utilizzare per l'inferenza MemryX (ad es. 'PCIe')."
+ }
+ },
+ "onnx": {
+ "label": "ONNX",
+ "description": "Rilevatore ONNX per l'esecuzione di modelli ONNX; utilizzerà i backend di accelerazione disponibili (CUDA/ROCm/OpenVINO) quando presenti.",
+ "device": {
+ "label": "Tipo di dispositivo",
+ "description": "Il dispositivo da utilizzare per l'inferenza ONNX (ad es. 'AUTO', 'CPU', 'GPU')."
+ }
}
},
"audio_transcription": {
@@ -266,49 +381,78 @@
},
"onvif": {
"tls_insecure": {
- "label": "Disabilita verifica TLS"
+ "label": "Disabilita verifica TLS",
+ "description": "Salta la verifica TLS e disabilita l'autenticazione digest per ONVIF (non sicuro; utilizzare solo in reti sicure)."
},
"profile": {
- "label": "Profilo ONVIF"
+ "label": "Profilo ONVIF",
+ "description": "Profilo multimediale ONVIF specifico da utilizzare per il controllo PTZ, identificato tramite token o nome. Se non impostato, viene selezionato automaticamente il primo profilo con una configurazione PTZ valida."
},
"autotracking": {
"label": "Tracciamento automatico",
"enabled": {
- "label": "Abilita il tracciamento automatico"
+ "label": "Abilita il tracciamento automatico",
+ "description": "Abilita o disabilita il tracciamento automatico della telecamera PTZ per gli oggetti rilevati."
},
"calibrate_on_startup": {
- "label": "Calibra all'avvio"
+ "label": "Calibra all'avvio",
+ "description": "Misura la velocità dei motori PTZ all'avvio per migliorare la precisione del tracciamento. Frigate aggiornerà la configurazione con i valori di movement_weights dopo la calibrazione."
},
"zooming": {
- "label": "Modalità ingrandimento"
+ "label": "Modalità ingrandimento",
+ "description": "Controlla il comportamento dello zoom: disabled (solo pan/tilt), absolute (più compatibile) o relative (pan/tilt/zoom simultanei)."
},
"zoom_factor": {
- "label": "Fattore di ingrandimento"
+ "label": "Fattore di ingrandimento",
+ "description": "Controlla il livello di zoom sugli oggetti tracciati. Valori più bassi mantengono una porzione maggiore della scena visibile; valori più alti aumentano lo zoom ma potrebbero far perdere il tracciamento. Valori compresi tra 0.1 e 0.75."
},
"track": {
"label": "Oggetti tracciati",
"description": "Elenco dei tipi di oggetto che dovrebbero attivare il tracciamento automatico."
},
"required_zones": {
- "label": "Zone richieste"
+ "label": "Zone richieste",
+ "description": "Gli oggetti devono entrare in una di queste zone prima che inizi il tracciamento automatico."
},
"timeout": {
"label": "Scadenza di ritorno",
"description": "Attendi questo numero di secondi dopo aver perso il tracciamento prima di riportare la telecamera nella posizione preimpostata."
},
"movement_weights": {
- "description": "Valori di calibrazione generati automaticamente dalla calibrazione della telecamera. Non modificare manualmente."
+ "description": "Valori di calibrazione generati automaticamente dalla calibrazione della telecamera. Non modificare manualmente.",
+ "label": "Pesi del movimento"
},
"enabled_in_config": {
- "label": "Stato originale del tracciamento automatico"
+ "label": "Stato originale del tracciamento automatico",
+ "description": "Campo interno per tracciare se il tracciamento automatico era abilitato nella configurazione."
+ },
+ "description": "Traccia automaticamente gli oggetti in movimento e li mantiene centrati nell'inquadratura utilizzando i movimenti della telecamera PTZ.",
+ "return_preset": {
+ "label": "Preset di ritorno",
+ "description": "Nome del preset ONVIF configurato nel firmware della telecamera a cui ritornare al termine del tracciamento."
}
},
"ignore_time_mismatch": {
- "label": "Ignora la discrepanza oraria"
+ "label": "Ignora la discrepanza oraria",
+ "description": "Ignora le differenze di sincronizzazione oraria tra la telecamera e il server Frigate per la comunicazione ONVIF."
},
"label": "ONVIF",
"port": {
- "label": "Porta ONVIF"
+ "label": "Porta ONVIF",
+ "description": "Numero di porta per il servizio ONVIF."
+ },
+ "description": "Impostazioni della connessione ONVIF e del tracciamento automatico PTZ per questa telecamera.",
+ "host": {
+ "label": "Host ONVIF",
+ "description": "Host (e schema opzionale) per il servizio ONVIF di questa telecamera."
+ },
+ "user": {
+ "label": "Nome utente ONVIF",
+ "description": "Nome utente per l'autenticazione ONVIF; alcuni dispositivi richiedono un utente amministratore per l'ONVIF."
+ },
+ "password": {
+ "label": "Password ONVIF",
+ "description": "Password per l'autenticazione ONVIF."
}
},
"detect": {
@@ -413,7 +557,11 @@
},
"default_role": {
"label": "Ruolo predefinito",
- "description": "Ruolo predefinito assegnato agli utenti autenticati tramite proxy quando non si applica alcuna mappatura dei ruoli (amministratore o visualizzatore)."
+ "description": "Ruolo predefinito assegnato agli utenti autenticati tramite proxy quando non si applica nessuna mappatura dei ruoli."
+ },
+ "separator": {
+ "label": "Carattere separatore",
+ "description": "Carattere utilizzato per separare valori multipli forniti negli header del proxy."
}
},
"review": {
@@ -507,7 +655,19 @@
},
"ui": {
"label": "Interfaccia utente",
- "description": "Preferenze dell'interfaccia utente come fuso orario, formato di data/ora e unità di misura."
+ "description": "Preferenze dell'interfaccia utente come fuso orario, formato di data/ora e unità di misura.",
+ "timezone": {
+ "label": "Fuso orario",
+ "description": "Fuso orario opzionale da visualizzare nell'interfaccia utente (se non impostato, viene usata l'ora locale del browser)."
+ },
+ "time_format": {
+ "label": "Formato Ora",
+ "description": "Formato dell'ora da utilizzare nell'interfaccia utente (browser, 12 ore o 24 ore)."
+ },
+ "unit_system": {
+ "label": "Sistema di unità di misura",
+ "description": "Sistema di unità di misura per la visualizzazione (metrico o imperiale) utilizzato nell'interfaccia utente e nei messaggi MQTT."
+ }
},
"profiles": {
"label": "Profili",
@@ -532,17 +692,18 @@
}
},
"enabled": {
- "label": "Abilita Registrazione"
+ "label": "Abilita registrazione",
+ "description": "Attiva o disattiva la registrazione per tutte le telecamere; l'impostazione può essere modificata per ogni singola telecamera."
},
"expire_interval": {
- "label": "Intervallo pulizia registrazioni",
+ "label": "Intervallo di pulizia registrazioni",
"description": "Minuti tra i cicli di pulizia che rimuovono i segmenti di registrazione scaduti."
},
"continuous": {
"label": "Conservazione continua",
"description": "Numero di giorni per cui conservare le registrazioni, indipendentemente dagli oggetti tracciati o dal movimento. Impostare su 0 se si desidera conservare solo le registrazioni relative agli avvisi e ai rilevamenti.",
"days": {
- "label": "Giorni di Conservazione",
+ "label": "Giorni di conservazione",
"description": "Numero di giorni di conservazione delle registrazioni."
}
},
@@ -550,7 +711,7 @@
"label": "Conservazione movimento",
"description": "Numero di giorni per cui conservare le registrazioni attivate dal movimento, indipendentemente dagli oggetti tracciati. Impostare su 0 se si desidera conservare solo le registrazioni relative ad allarmi e rilevamenti.",
"days": {
- "label": "Giorni di Conservazione",
+ "label": "Giorni di conservazione",
"description": "Numero di giorni di conservazione delle registrazioni."
}
},
@@ -558,12 +719,12 @@
"label": "Conservazione rilevamento",
"description": "Impostazioni relative alla conservazione delle registrazioni per gli eventi di rilevamento, comprese le durate prima e dopo l'acquisizione.",
"pre_capture": {
- "label": "Secondi di pre-acquisizione",
- "description": "Numero di secondi precedenti l'evento di rilevamento da includere nella registrazione."
+ "label": "Secondi prima della cattura",
+ "description": "Numero di secondi precedenti all'evento di rilevamento da includere nella registrazione."
},
"post_capture": {
- "label": "Secondi di post-acquisizione",
- "description": "Numero di secondi successivi l'evento di rilevamento da includere nella registrazione."
+ "label": "Secondi dopo la cattura",
+ "description": "Numero di secondi successivi all'evento di rilevamento da includere nella registrazione."
},
"retain": {
"label": "Conservazione eventi",
@@ -580,13 +741,13 @@
},
"alerts": {
"label": "Conservazione avvisi",
- "description": "Impostazioni di conservazione delle registrazioni per gli eventi di avviso, incluse le durate di pre e post-acquisizione.",
+ "description": "Impostazioni di conservazione delle registrazioni per gli eventi di avviso, incluse le durate prima e dopo la cattura.",
"pre_capture": {
- "label": "Secondi di pre-acquisizione",
- "description": "Numero di secondi antecedenti all'evento di rilevamento da includere nella registrazione."
+ "label": "Secondi prima della cattura",
+ "description": "Numero di secondi precedenti all'evento di rilevamento da includere nella registrazione."
},
"post_capture": {
- "label": "Secondi di post-acquisizione",
+ "label": "Secondi dopo la cattura",
"description": "Numero di secondi successivi all'evento di rilevamento da includere nella registrazione."
},
"retain": {
@@ -613,7 +774,8 @@
"enabled_in_config": {
"label": "Stato registrazione originale",
"description": "Indica se la registrazione era abilitata nella configurazione statica originale."
- }
+ },
+ "description": "Impostazioni di registrazione e conservazione vengono applicate alle telecamere a meno che non vengano modificate singolarmente per ciascuna telecamera."
},
"snapshots": {
"label": "Istantanee",
@@ -625,7 +787,40 @@
"description": "Sovraimprime un timestamp sulle istantanee provenienti dalle API."
},
"bounding_box": {
- "label": "Sovrimpressione riquadro di delimitazione"
+ "label": "Sovrimpressione riquadro di delimitazione",
+ "description": "Disegna i riquadri di delimitazione per gli oggetti tracciati sulle istantanee provenienti dalle API."
+ },
+ "crop": {
+ "label": "Ritaglia istantanea",
+ "description": "Ritaglia le istantanee provenienti dalle API in base al riquadro di delimitazione dell'oggetto rilevato."
+ },
+ "required_zones": {
+ "label": "Zone richieste",
+ "description": "Zone in cui un oggetto deve entrare affinché venga salvata un'istantanea."
+ },
+ "height": {
+ "label": "Altezza istantanea",
+ "description": "Altezza (in pixel) a cui ridimensionare le istantanee provenienti dalle API; lascia vuoto per mantenere la dimensione originale."
+ },
+ "retain": {
+ "label": "Conservazione istantanee",
+ "description": "Impostazioni di conservazione per le istantanee, inclusi i giorni predefiniti e le eccezioni per singolo oggetto.",
+ "default": {
+ "label": "Conservazione predefinita",
+ "description": "Numero predefinito di giorni per cui conservare le istantanee."
+ },
+ "mode": {
+ "label": "Modalità di conservazione",
+ "description": "Modalità di conservazione: tutti (salva tutti i segmenti), movimento (salva i segmenti con movimento) o oggetti_attivi (salva i segmenti con oggetti attivi)."
+ },
+ "objects": {
+ "label": "Conservazione oggetti",
+ "description": "Eccezioni per singolo oggetto relativi ai giorni di conservazione delle istantanee."
+ }
+ },
+ "quality": {
+ "label": "Qualità istantanee",
+ "description": "Qualità di codifica per le istantanee salvate (0-100)."
}
},
"motion": {
@@ -654,10 +849,12 @@
"description": "Se impostato su un valore compreso tra 0.0 e 110, e se in un singolo fotogramma cambia una porzione dell'immagine superiore a tale frazione, il rilevatore non restituirà alcun riquadro di movimento e si ricalibrerà immediatamente. Ciò consente di risparmiare risorse della CPU e ridurre i falsi positivi in caso di fulmini, temporali, ecc., ma potrebbe comportare la mancata rilevazione di eventi reali, come ad esempio il tracciamento automatico di un oggetto da parte di una telecamera PTZ. Il compromesso consiste nel scegliere se sacrificare alcuni megabyte di registrazioni o rivedere un paio di brevi video. Lasciare non impostato (Nessuno) per disabilitare questa funzione."
},
"delta_alpha": {
- "description": "Fattore di fusione alfa utilizzato nel calcolo della differenza tra fotogrammi per il calcolo del movimento."
+ "description": "Fattore di fusione alfa utilizzato nel calcolo della differenza tra fotogrammi per il calcolo del movimento.",
+ "label": "Delta alfa"
},
"frame_alpha": {
- "description": "Valore alfa utilizzato durante la fusione dei fotogrammi per la preelaborazione del movimento."
+ "description": "Valore alfa utilizzato durante la fusione dei fotogrammi per la preelaborazione del movimento.",
+ "label": "Frame alfa"
},
"frame_height": {
"label": "Altezza del frame",
@@ -672,7 +869,8 @@
"description": "Secondi di attesa dopo l'ultimo movimento prima di pubblicare uno stato 'off' MQTT."
},
"enabled_in_config": {
- "description": "Indica se il rilevamento del movimento era abilitato nella configurazione statica originale."
+ "description": "Indica se il rilevamento del movimento era abilitato nella configurazione statica originale.",
+ "label": "Stato movimento originale"
},
"raw_mask": {
"label": "Maschera grezza"
@@ -710,11 +908,11 @@
},
"min_score": {
"label": "Confidenza minima",
- "description": "Livello minimo di confidenza del rilevamento per singolo fotogramma richiesto affinché l'oggetto venga conteggiato."
+ "description": "Livello minimo di confidenza nel rilevamento in un singolo fotogramma richiesto affinché l'oggetto venga conteggiato."
},
"mask": {
"label": "Maschera filtro",
- "description": "Coordinate del poligono che definisce l'area all'interno dell'inquadratura in cui si applica questo filtro."
+ "description": "Coordinate del poligono che definiscono la posizione di applicazione di questo filtro all'interno dell'inquadratura."
},
"raw_mask": {
"label": "Maschera grezza"
@@ -722,40 +920,42 @@
},
"mask": {
"label": "Maschera oggetto",
- "description": "Poligono di maschera utilizzato per impedire il rilevamento di oggetti in aree specificate."
+ "description": "Poligono di mascheramento utilizzato per impedire il rilevamento di oggetti in aree specifiche."
},
"genai": {
"label": "Configurazione degli oggetti GenAI",
"description": "Opzioni GenAI per la descrizione degli oggetti tracciati e l'invio dei fotogrammi per la generazione.",
"enabled": {
"label": "Abilita GenAI",
- "description": "Abilita di default la generazione tramite GenAI delle descrizioni degli oggetti monitorati."
+ "description": "Abilita in modo predefinito la generazione di descrizioni da parte di GenAI per gli oggetti tracciati."
},
"use_snapshot": {
- "label": "Usa istantanee",
+ "label": "Utilizza istantanee",
"description": "Utilizza le istantanee degli oggetti anziché le miniature per la generazione di descrizioni con GenAI."
},
"prompt": {
- "description": "Modello di prompt predefinito utilizzato per la generazione di descrizioni con GenAI."
+ "description": "Modello di richiesta predefinito utilizzato per la generazione di descrizioni con GenAI.",
+ "label": "Richiesta di didascalia"
},
"object_prompts": {
- "description": "Prompt specifici per ogni oggetto per personalizzare i risultati di GenAI in base a etichette specifiche."
+ "description": "Richieste specifiche per ogni oggetto per personalizzare i risultati di GenAI in base a etichette specifiche.",
+ "label": "Richiesta di oggetto"
},
"objects": {
"label": "Oggetti GenAI",
- "description": "Elenco delle etichette degli oggetti da inviare a GenAI per impostazione predefinita."
+ "description": "Elenco di etichette degli oggetti da inviare a GenAI per impostazione predefinita."
},
"required_zones": {
- "label": "Zone obbligatorie",
- "description": "Zone che devono essere inserite affinché gli oggetti possano essere utilizzati per la generazione di descrizioni tramite GenAI."
+ "label": "Zone richieste",
+ "description": "Zone che devono essere inserite affinché gli oggetti siano idonei alla generazione della descrizione GenAI."
},
"debug_save_thumbnails": {
"label": "Salva miniature",
- "description": "Salva le miniature inviate a GenAI per il debug e la revisione."
+ "description": "Salva le miniature inviate a GenAI per la correzione e la revisione."
},
"send_triggers": {
- "label": "Attivatori GenAI",
- "description": "Definisce quando i frame devono essere inviati a GenAI (al termine, dopo gli aggiornamenti, ecc.).",
+ "label": "Attivazioni GenAI",
+ "description": "Definisce quando i fotogrammi devono essere inviati a GenAI (alla fine, dopo gli aggiornamenti, ecc.).",
"tracked_object_end": {
"label": "Invia alla fine",
"description": "Invia una richiesta a GenAI quando l'oggetto tracciato termina."
@@ -776,6 +976,24 @@
"filters_attribute": {
"raw_mask": {
"label": "Maschera grezza"
+ },
+ "min_ratio": {
+ "label": "Rapporto di aspetto minimo",
+ "description": "Rapporto minimo tra larghezza e altezza richiesto affinché il riquadro di delimitazione sia valido."
+ },
+ "max_ratio": {
+ "label": "Rapporto di aspetto massimo",
+ "description": "Rapporto massimo tra larghezza e altezza richiesto affinché il riquadro di delimitazione sia valido."
+ },
+ "threshold": {
+ "label": "Soglia di confidenza"
+ },
+ "min_score": {
+ "label": "Confidenza minima"
+ },
+ "mask": {
+ "label": "Maschera filtro",
+ "description": "Coordinate del poligono che definiscono la posizione di applicazione di questo filtro all'interno dell'inquadratura."
}
}
},
@@ -795,7 +1013,39 @@
}
},
"timestamp_style": {
- "label": "Stile orario"
+ "label": "Stile orario",
+ "position": {
+ "label": "Posizione timestamp",
+ "description": "Posizione del timestamp sull'immagine (tl/tr/bl/br)."
+ },
+ "format": {
+ "label": "Formato timestamp",
+ "description": "Stringa di formato data/ora utilizzata per i timestamp (codici di formato datetime di Python)."
+ },
+ "color": {
+ "label": "Colore timestamp",
+ "description": "Valori di colore RGB per il testo del timestamp (tutti i valori da 0 a 255).",
+ "red": {
+ "label": "Rosso",
+ "description": "Componente rosso (0-255) per il colore del timestamp."
+ },
+ "green": {
+ "label": "Verde",
+ "description": "Componente verde (0-255) per il colore del timestamp."
+ },
+ "blue": {
+ "label": "Blu",
+ "description": "Componente blu (0-255) per il colore del timestamp."
+ }
+ },
+ "thickness": {
+ "label": "Spessore timestamp",
+ "description": "Spessore della linea del testo del timestamp."
+ },
+ "effect": {
+ "label": "Effetto timestamp",
+ "description": "Effetto visivo per il testo del timestamp (none, solid, shadow)."
+ }
},
"database": {
"label": "Database",
@@ -824,7 +1074,7 @@
"description": "Indirizzo email utilizzato per le notifiche push o richiesto da alcuni fornitori di servizi di notifica."
},
"cooldown": {
- "label": "Periodo di raffreddamento",
+ "label": "Tempo di attesa tra notifiche",
"description": "Tempo di attesa (in secondi) tra le notifiche per evitare di inviare spam ai destinatari."
},
"enabled_in_config": {
@@ -857,10 +1107,44 @@
}
},
"tls": {
- "label": "TLS"
+ "label": "TLS",
+ "description": "Impostazioni TLS per gli endpoint web di Frigate (porta 8971).",
+ "enabled": {
+ "label": "Abilita TLS",
+ "description": "Abilita il protocollo TLS per l'interfaccia utente web e le API di Frigate sulla porta TLS configurata."
+ }
},
"telemetry": {
- "label": "Telemetria"
+ "label": "Telemetria",
+ "description": "Opzioni di telemetria e statistiche di sistema, incluso il monitoraggio della GPU e della larghezza di banda di rete.",
+ "network_interfaces": {
+ "label": "Interfacce di rete",
+ "description": "Elenco dei prefissi dei nomi delle interfacce di rete da monitorare per le statistiche sulla larghezza di banda."
+ },
+ "stats": {
+ "label": "Statistiche di sistema",
+ "description": "Opzioni per abilitare/disabilitare la raccolta di varie statistiche di sistema e della GPU.",
+ "amd_gpu_stats": {
+ "label": "Statistiche GPU AMD",
+ "description": "Abilita la raccolta delle statistiche della GPU AMD, se presente una GPU AMD."
+ },
+ "intel_gpu_stats": {
+ "label": "Statistiche GPU Intel",
+ "description": "Abilita la raccolta delle statistiche della GPU Intel, se presente una GPU Intel."
+ },
+ "network_bandwidth": {
+ "label": "Larghezza di banda di rete",
+ "description": "Abilita il monitoraggio della larghezza di banda di rete per singolo processo per i processi ffmpeg della telecamera e per i rilevatori (richiede capability specifiche)."
+ },
+ "intel_gpu_device": {
+ "label": "Dispositivo GPU Intel",
+ "description": "Indirizzo bus PCI o percorso del dispositivo DRM (es. /dev/dri/card1) utilizzato per associare le statistiche della GPU Intel a un dispositivo specifico quando ne sono presenti molteplici."
+ }
+ },
+ "version_check": {
+ "label": "Controllo versione",
+ "description": "Abilita un controllo in uscita per rilevare se è disponibile una versione più recente di Frigate."
+ }
},
"birdseye": {
"label": "Birdseye",
@@ -887,7 +1171,7 @@
"label": "Attivatori",
"friendly_name": {
"label": "Nome descrittivo",
- "description": "Nome descrittivo opzionale visualizzato nell'interfaccia utente per questo innesco."
+ "description": "Nome descrittivo opzionale visualizzato nell'interfaccia utente per questo attivatore."
},
"description": "Azioni e criteri di corrispondenza per gli attivatori della ricerca semantica specifici della telecamera.",
"enabled": {
diff --git a/web/public/locales/it/views/explore.json b/web/public/locales/it/views/explore.json
index e01329aada..e08626bfa0 100644
--- a/web/public/locales/it/views/explore.json
+++ b/web/public/locales/it/views/explore.json
@@ -202,8 +202,8 @@
"aria": "Invia a Frigate Plus"
},
"addTrigger": {
- "label": "Aggiungi innesco",
- "aria": "Aggiungi un innesco per questo oggetto tracciato"
+ "label": "Aggiungi attivatore",
+ "aria": "Aggiungi un attivatore per questo oggetto tracciato"
},
"audioTranscription": {
"label": "Trascrivere",
diff --git a/web/public/locales/it/views/live.json b/web/public/locales/it/views/live.json
index 697a676820..ac9fc12099 100644
--- a/web/public/locales/it/views/live.json
+++ b/web/public/locales/it/views/live.json
@@ -9,7 +9,7 @@
"disable": "Disabilita audio bidirezionale"
},
"snapshots": {
- "enable": "Abilita istantanee",
+ "enable": "Abilita Istantanee",
"disable": "Disabilita istantanee"
},
"manualRecording": {
diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json
index 5c40cc9601..9ef1f0f295 100644
--- a/web/public/locales/it/views/settings.json
+++ b/web/public/locales/it/views/settings.json
@@ -212,7 +212,7 @@
"type": {
"zone": "zona",
"motion_mask": "maschera di movimento",
- "object_mask": "maschera di oggetto"
+ "object_mask": "maschera oggetto"
},
"revertOverride": {
"title": "Ripristina la configurazione di base",
@@ -447,7 +447,7 @@
"users": "Utenti",
"frigateplus": "Frigate+",
"enrichments": "Miglioramenti",
- "triggers": "Inneschi",
+ "triggers": "Attivatori",
"roles": "Ruoli",
"cameraManagement": "Gestione della telecamera",
"cameraReview": "Revisiona",
@@ -896,22 +896,22 @@
"restart_required": "Riavvio richiesto (impostazioni di miglioramento modificate)"
},
"triggers": {
- "documentTitle": "Inneschi",
+ "documentTitle": "Attivatori",
"management": {
- "title": "Inneschi",
- "desc": "Gestisci gli inneschi per {{camera}}. Utilizza il tipo miniatura per attivare miniature simili all'oggetto tracciato selezionato e il tipo descrizione per attivare descrizioni simili al testo specificato."
+ "title": "Attivatori",
+ "desc": "Gestisci gli attivatori per {{camera}}. Utilizza il tipo miniatura per attivare miniature simili all'oggetto tracciato selezionato e il tipo descrizione per attivare descrizioni simili al testo specificato."
},
- "addTrigger": "Aggiungi innesco",
+ "addTrigger": "Aggiungi attivatore",
"table": {
"name": "Nome",
"type": "Tipo",
"content": "Contenuto",
"threshold": "Soglia",
"actions": "Azioni",
- "noTriggers": "Nessun innesco configurato per questa telecamera.",
+ "noTriggers": "Nessun attivatore configurato per questa telecamera.",
"edit": "Modifica",
- "deleteTrigger": "Elimina innesco",
- "lastTriggered": "Ultimo innesco"
+ "deleteTrigger": "Elimina attivatore",
+ "lastTriggered": "Ultimo attivatore"
},
"type": {
"thumbnail": "Miniatura",
@@ -925,34 +925,34 @@
},
"dialog": {
"createTrigger": {
- "title": "Crea innesco",
- "desc": "Crea un innesco per la telecamera {{camera}}"
+ "title": "Crea attivatore",
+ "desc": "Crea un attivatore per la telecamera {{camera}}"
},
"editTrigger": {
- "title": "Modifica innesco",
- "desc": "Modifica le impostazioni per l'innesco della telecamera {{camera}}"
+ "title": "Modifica attivatore",
+ "desc": "Modifica le impostazioni per l'attivatore della telecamera {{camera}}"
},
"deleteTrigger": {
- "title": "Elimina innesco",
- "desc": "Vuoi davvero eliminare l'innesco {{triggerName}}? Questa azione non può essere annullata."
+ "title": "Elimina attivatore",
+ "desc": "Vuoi davvero eliminare l'attivatore {{triggerName}}? Questa azione non può essere annullata."
},
"form": {
"name": {
"title": "Nome",
- "placeholder": "Assegna un nome a questo innesco",
+ "placeholder": "Assegna un nome a questo attivatore",
"error": {
"minLength": "Il campo deve contenere almeno 2 caratteri.",
"invalidCharacters": "Il campo può contenere solo lettere, numeri, caratteri di sottolineatura e trattini.",
- "alreadyExists": "Per questa telecamera esiste già un innesco con questo nome."
+ "alreadyExists": "Per questa telecamera esiste già un attivatore con questo nome."
},
- "description": "Inserisci un nome o una descrizione univoca per identificare questo innesco"
+ "description": "Inserisci un nome o una descrizione univoca per identificare questo attivatore"
},
"enabled": {
- "description": "Abilita o disabilita questo innesco"
+ "description": "Abilita o disabilita questo attivatore"
},
"type": {
"title": "Tipo",
- "placeholder": "Seleziona il tipo di innesco",
+ "placeholder": "Seleziona il tipo di attivatore",
"description": "Si attiva quando viene rilevata una descrizione di un oggetto simile tracciato",
"thumbnail": "Attiva quando viene rilevata una miniatura di un oggetto simile tracciato"
},
@@ -960,7 +960,7 @@
"title": "Contenuto",
"imagePlaceholder": "Seleziona una miniatura",
"textPlaceholder": "Inserisci il contenuto del testo",
- "imageDesc": "Vengono visualizzate solo le 100 miniature più recenti. Se non riesci a trovare la miniatura desiderata, controlla gli oggetti precedenti in Esplora e imposta un innesco dal menu.",
+ "imageDesc": "Vengono visualizzate solo le 100 miniature più recenti. Se non riesci a trovare la miniatura desiderata, controlla gli oggetti precedenti in Esplora e imposta un attivatore dal menu.",
"textDesc": "Inserisci il testo per attivare questa azione quando viene rilevata una descrizione simile dell'oggetto tracciato.",
"error": {
"required": "Il contenuto è obbligatorio."
@@ -972,11 +972,11 @@
"min": "La soglia deve essere almeno 0",
"max": "La soglia deve essere al massimo 1"
},
- "desc": "Imposta la soglia di similarità per questo innesco. Una soglia più alta indica che è necessaria una corrispondenza più vicina per attivare l'innesco."
+ "desc": "Imposta la soglia di similarità per questo attivatore. Una soglia più alta indica che è necessaria una corrispondenza più vicina per attivare l'attivatore."
},
"actions": {
"title": "Azioni",
- "desc": "Per impostazione predefinita, Frigate invia un messaggio MQTT per tutti gli inneschi. Le sottoetichette aggiungono il nome dell'innesco all'etichetta dell'oggetto. Gli attributi sono metadati ricercabili, memorizzati separatamente nei metadati dell'oggetto tracciato.",
+ "desc": "Per impostazione predefinita, Frigate invia un messaggio MQTT per tutti gli attivatori. Le sottoetichette aggiungono il nome dell'attivatore all'etichetta dell'oggetto. Gli attributi sono metadati ricercabili, memorizzati separatamente nei metadati dell'oggetto tracciato.",
"error": {
"min": "È necessario selezionare almeno un'azione."
}
@@ -990,30 +990,30 @@
},
"toast": {
"success": {
- "createTrigger": "L'innesco {{name}} è stato creato correttamente.",
- "updateTrigger": "L'innesco {{name}} è stato aggiornato correttamente.",
- "deleteTrigger": "L'innesco {{name}} è stato eliminato correttamente."
+ "createTrigger": "L'attivatore {{name}} è stato creato correttamente.",
+ "updateTrigger": "L'attivatore {{name}} è stato aggiornato correttamente.",
+ "deleteTrigger": "L'attivatore {{name}} è stato eliminato correttamente."
},
"error": {
- "createTriggerFailed": "Impossibile creare l'innesco: {{errorMessage}}",
- "updateTriggerFailed": "Impossibile aggiornare l'innesco: {{errorMessage}}",
- "deleteTriggerFailed": "Impossibile eliminare l'innesco: {{errorMessage}}"
+ "createTriggerFailed": "Impossibile creare l'attivatore: {{errorMessage}}",
+ "updateTriggerFailed": "Impossibile aggiornare l'attivatore: {{errorMessage}}",
+ "deleteTriggerFailed": "Impossibile eliminare l'attivatore: {{errorMessage}}"
}
},
"semanticSearch": {
"title": "La ricerca semantica è disabilitata",
- "desc": "Per utilizzare gli inneschi, è necessario abilitare la ricerca semantica."
+ "desc": "Per utilizzare gli attivatori, è necessario abilitare la ricerca semantica."
},
"wizard": {
- "title": "Crea innesco",
+ "title": "Crea attivatore",
"step1": {
- "description": "Configura le impostazioni di base per il tuo innesco."
+ "description": "Configura le impostazioni di base per il tuo attivatore."
},
"step2": {
"description": "Imposta il contenuto che attiverà questa azione."
},
"step3": {
- "description": "Configura la soglia e le azioni per questo innesco."
+ "description": "Configura la soglia e le azioni per questo attivatore."
},
"steps": {
"nameAndType": "Nome e tipo",
@@ -2030,10 +2030,10 @@
"desc": "La griglia di regioni è un algoritmo di ottimizzazione che apprende dove gli oggetti di diverse dimensioni appaiono tipicamente nel campo visivo di ciascuna telecamera. Frigate utilizza questi dati per dimensionare in modo efficiente le regioni di rilevamento. La griglia viene creata automaticamente nel tempo a partire dai dati degli oggetti tracciati.",
"clear": "Pulisci griglia di regioni",
"clearConfirmTitle": "Pulisci griglia di regioni",
- "clearConfirmDesc": "La pulizia della griglia di regioni non è consigliata a meno che non si sia recentemente modificato il modello del rilevatore o la posizione fisica della telecamera, riscontrando problemi di tracciamento degli oggetti. La griglia verrà ricostruita automaticamente nel tempo man mano che gli oggetti vengono tracciati. Per rendere effettive le modifiche è necessario riavviare Frigate.",
- "clearSuccess": "Griglia di regioni pulita con successo",
- "clearError": "Impossibile pulire la griglia di regioni",
- "restartRequired": "È necessario riavviare il sistema affinché le modifiche alla griglia di regioni abbiano effetto"
+ "clearConfirmDesc": "La pulizia della griglia delle regioni non è consigliata, a meno che non sia stata modificata di recente la dimensione del modello del rilevatore, oppure sia stata cambiata la posizione fisica della telecamera e si riscontrino problemi di tracciamento degli oggetti. La griglia verrà ricostruita automaticamente nel tempo man mano che gli oggetti vengono tracciati. È richiesto un riavvio di Frigate affinché le modifiche abbiano effetto.",
+ "clearSuccess": "Griglia delle regioni pulita con successo",
+ "clearError": "Impossibile pulire la griglia delle regioni",
+ "restartRequired": "È necessario riavviare il sistema affinché le modifiche alla griglia delle regioni abbiano effetto"
}
},
"retainMode": {
diff --git a/web/public/locales/nl/common.json b/web/public/locales/nl/common.json
index d47040c3bb..d9630b7928 100644
--- a/web/public/locales/nl/common.json
+++ b/web/public/locales/nl/common.json
@@ -216,7 +216,8 @@
"id": "Bahasa Indonesia (Indonesisch)",
"ur": "اردو (Urdu)",
"hr": "Hrvatski (Kroatisch)",
- "zhHant": "繁體中文 (Traditioneel Chinees)"
+ "zhHant": "繁體中文 (Traditioneel Chinees)",
+ "bs": "Bosanksi (Bosnisch)"
},
"darkMode": {
"label": "Donkere modus",
@@ -267,7 +268,10 @@
"anonymous": "anoniem"
},
"classification": "Classificatie",
- "profiles": "Profielen"
+ "profiles": "Profielen",
+ "actions": "Acties",
+ "features": "Functies",
+ "chat": "Chat"
},
"toast": {
"copyUrlToClipboard": "URL naar klembord gekopieerd.",
@@ -276,7 +280,8 @@
"error": {
"title": "Opslaan van configuratiewijzigingen mislukt: {{errorMessage}}",
"noMessage": "Het opslaan van configuratiewijzigingen is mislukt"
- }
+ },
+ "success": "De configuratie aanpassingen zijn succesvol opgeslagen."
}
},
"role": {
@@ -323,5 +328,7 @@
},
"credentialField": {
"savedPlaceholder": "Opgeslagen - leeg laten om huidige te behouden"
- }
+ },
+ "no_items": "Geen items",
+ "validation_errors": "Validatie fouten"
}
diff --git a/web/public/locales/nl/components/dialog.json b/web/public/locales/nl/components/dialog.json
index 4e7fd083b8..a69f382f37 100644
--- a/web/public/locales/nl/components/dialog.json
+++ b/web/public/locales/nl/components/dialog.json
@@ -67,11 +67,14 @@
"endTimeMustAfterStartTime": "Eindtijd moet na starttijd zijn"
},
"success": "Export is succesvol gestart. Bekijk het bestand op de exportpagina.",
- "view": "Weergeven"
+ "view": "Weergeven",
+ "queued": "Export staat in de wachtrij. Bekijk voortgang op de exports pagina."
},
"fromTimeline": {
"saveExport": "Export opslaan",
- "previewExport": "Export vooraf bekijken"
+ "previewExport": "Export vooraf bekijken",
+ "useThisRange": "Gebruik dit bereik",
+ "queueingExport": "Export in wachtrij zetten..."
},
"export": "Exporteren",
"selectOrExport": "Selecteren of exporteren",
@@ -107,7 +110,17 @@
"title_one": "Review 1 exporteren",
"title_other": "{{count}} reviews exporteren",
"description": "Exporteer alle geselecteerde reviews. Alle exports worden samengevoegd in één case.",
- "descriptionNoCase": "Exporteer elke geselecteerde review."
+ "descriptionNoCase": "Exporteer elke geselecteerde review.",
+ "toast": {
+ "startedNoCase_one": "1 export gestart.",
+ "startedNoCase_other": "{{count}} Exports gestart.",
+ "partial": "{{successful}} van {{total}} exports gestart. Mislukte items: {{failedItems}}",
+ "failed": "Het starten van {{total}} exports is mislukt. Mislukt: {{failedItems}}"
+ },
+ "exportingButton": "Exporteren...",
+ "exportButton_one": "Exporteer 1 revisie",
+ "exportButton_other": "Exporteer {{count}} revisies",
+ "caseNamePlaceholder": "Inspecteer export - {{date}}"
}
},
"streaming": {
@@ -155,6 +168,14 @@
"error": "Verwijderen mislukt: {{error}}",
"success": "De videobeelden die aan de geselecteerde beoordelingsitems zijn gekoppeld, zijn succesvol verwijderd."
}
+ },
+ "shareTimestamp": {
+ "label": "Tijdstempel delen",
+ "title": "Tijdstempel delen",
+ "description": "Deel een URL met tijdstempel van de huidige positie in de afspeler of kies een aangepaste tijdstempel. Let op: dit is geen openbare deel-URL en is alleen toegankelijk voor gebruikers die toegang hebben tot Frigate en deze camera.",
+ "custom": "Aangepaste tijdstempel",
+ "button": "Deel tijdstempel URL",
+ "shareTitle": "Frigate Beoordelingstijdstempel: {{camera}}"
}
},
"imagePicker": {
diff --git a/web/public/locales/pl/common.json b/web/public/locales/pl/common.json
index 3d0c5bcc7f..f9238b4b72 100644
--- a/web/public/locales/pl/common.json
+++ b/web/public/locales/pl/common.json
@@ -167,7 +167,8 @@
"saveAll": "Zapisz wszystkie",
"savingAll": "Zapisywanie wszystkich…",
"undoAll": "Cofnij wszystko",
- "retry": "Powtórz"
+ "retry": "Powtórz",
+ "resetToGlobal": "Przywróć ustawienie globalne"
},
"menu": {
"system": "System",
@@ -274,7 +275,10 @@
"settings": "Ustawienia",
"export": "Eksportuj",
"classification": "Klasyfikacja",
- "profiles": "Profile"
+ "profiles": "Profile",
+ "actions": "Akcje",
+ "features": "Funkcje",
+ "chat": "Czat"
},
"role": {
"viewer": "Przeglądający",
@@ -328,5 +332,10 @@
"field": {
"optional": "Opcjonalny",
"internalID": "Wewnętrzny identyfikator używany przez Frigate w konfiguracji i bazie danych"
+ },
+ "no_items": "Brak elementów",
+ "validation_errors": "Błędy walidacji",
+ "credentialField": {
+ "savedPlaceholder": "Zapisano — pozostaw puste, aby zachować bieżącą wartość"
}
}
diff --git a/web/public/locales/pl/components/dialog.json b/web/public/locales/pl/components/dialog.json
index 06408f81bf..c2cde61599 100644
--- a/web/public/locales/pl/components/dialog.json
+++ b/web/public/locales/pl/components/dialog.json
@@ -72,11 +72,24 @@
"endTimeMustAfterStartTime": "Czas zakończenia musi być późniejszy niż czas rozpoczęcia",
"noVaildTimeSelected": "Nie wybrano prawidłowego zakresu czasu"
},
- "view": "Widok"
+ "view": "Widok",
+ "queued": "Eksport dodany do kolejki. Postęp można sprawdzić na stronie eksportów.",
+ "batchSuccess_one": "Rozpoczęto 1 eksport. Otwieranie przypadku.",
+ "batchSuccess_few": "Rozpoczęto {{count}} eksporty Otwieranie przypadku.",
+ "batchSuccess_many": "Rozpoczęto {{count}} eksportów. Otwieranie przypadku.",
+ "batchPartial": "Rozpoczęto {{successful}} z {{total}} eksportów. Nieudane kamery: {{failedCameras}}",
+ "batchFailed": "Nie udało się uruchomić {{total}} eksportów. Nieudane kamery: {{failedCameras}}",
+ "batchQueuedSuccess_one": "Eksport dodany do kolejki. Otwieranie przypadku.",
+ "batchQueuedSuccess_few": "Dodano {{count}} eksportydo kolejki. Otwieranie przypadku.",
+ "batchQueuedSuccess_many": "Dodano {{count}} eksportów do kolejki. Otwieranie przypadku.",
+ "batchQueuedPartial": "Dodano do kolejki {{successful}} z {{total}} eksportów. Nieudane kamery: {{failedCameras}}",
+ "batchQueueFailed": "Nie udało się dodać do kolejki {{total}} eksportów. Nieudane kamery: {{failedCameras}}"
},
"fromTimeline": {
"saveExport": "Zapisz Eksport",
- "previewExport": "Podgląd Eksportu"
+ "previewExport": "Podgląd Eksportu",
+ "queueingExport": "Kolejkowanie eksportu...",
+ "useThisRange": "Użyj tego zakresu"
},
"multiCamera": {
"timeRange": "Zakres czasu",
@@ -88,7 +101,54 @@
"detectionCount_one": "{{count}} śledzony obiekt",
"detectionCount_few": "{{count}} śledzone obiekty",
"detectionCount_many": "{{count}} śledzonych obiektów",
- "nameLabel": "Wyeksportuj nazwę"
+ "nameLabel": "Wyeksportuj nazwę",
+ "namePlaceholder": "Opcjonalna nazwa bazowa eksportów",
+ "queueingButton": "Kolejkowanie eksportów...",
+ "exportButton_one": "Eksport 1 kamery",
+ "exportButton_few": "Eksport {{count}} kamer",
+ "exportButton_many": "Eksport {{count}} kamer",
+ "searchOrSelectGroup": "Szukaj lub wybierz grupę kamer ...",
+ "selectAll": "Wybierz wszystkie kamery",
+ "clearSelection": "Wyczyść wybór",
+ "selectWithActivity": "Kamery z obiektami śledzonymi",
+ "selectGroup": "Wybierz grupę",
+ "noMatchingCameras": "Nie ma kamer spełniających Twoje wyszukiwanie",
+ "selectedCount": "{{selected}} / {{total}} wybrane"
+ },
+ "case": {
+ "newCaseOption": "Utwórz nowy przypadek",
+ "newCaseNamePlaceholder": "Nazwa nowego przypadku",
+ "newCaseDescriptionPlaceholder": "Opis przypadku",
+ "label": "Przypadek",
+ "nonAdminHelp": "Dla tych eksportów zostanie utworzony nowy przypadek.",
+ "placeholder": "Wybierz przypadek"
+ },
+ "queueing": "Dodawanie eksportu do kolejki...",
+ "tabs": {
+ "export": "Pojedyncza kamera",
+ "multiCamera": "Wiele kamer"
+ },
+ "multi": {
+ "title_one": "Eksport 1 recenzji",
+ "title_few": "Eksport {{count}} recenzji",
+ "title_many": "Eksport {{count}} recenzji",
+ "description": "Eksportuj każdą wybraną recenzję. Wszystkie eksporty zostaną pogrupowane w jednym przypadku.",
+ "descriptionNoCase": "Eksportuj każdą wybraną recenzję.",
+ "caseNamePlaceholder": "Eksport recenzji – {{date}}",
+ "exportButton_one": "Eksport 1 recenzji",
+ "exportButton_few": "Eksport {{count}} recenzji",
+ "exportButton_many": "Eksport {{count}} recenzji",
+ "exportingButton": "Eksportowanie...",
+ "toast": {
+ "started_one": "Rozpoczęto 1 eksport. Otwieranie przypadku.",
+ "started_few": "Rozpoczęto {{count}} eksportów. Otwieranie przypadku.",
+ "started_many": "Rozpoczęto {{count}} eksportów. Otwieranie przypadku.",
+ "startedNoCase_one": "Rozpoczęto 1 eksport.",
+ "startedNoCase_few": "Rozpoczęto {{count}} eksportów.",
+ "startedNoCase_many": "Rozpoczęto {{count}} eksportów.",
+ "partial": "Rozpoczęto {{successful}} z {{total}} eksportów. Niepowodzenia: {{failedItems}}",
+ "failed": "Nie udało się uruchomić {{total}} eksportów. Niepowodzenia: {{failedItems}}"
+ }
}
},
"recording": {
@@ -107,6 +167,14 @@
"success": "Nagrania wideo powiązane z wybranymi elementami przeglądu zostały pomyślnie usunięte.",
"error": "Nie udało się usunąć: {{error}}"
}
+ },
+ "shareTimestamp": {
+ "label": "Udostępnij znacznik czasu",
+ "title": "Udostępnij znacznik czasu",
+ "description": "Udostępnij adres URL z aktualnym znacznikiem czasu pozycji odtwarzacza lub wybierz niestandardowy znacznik czasu. Należy pamiętać, że nie jest to publiczny link udostępniania i jest dostępny wyłącznie dla użytkowników mających dostęp do Frigate i tej kamery.",
+ "custom": "Własny znacznik czasu",
+ "button": "Udostępnij adres URL ze znacznikiem czasu",
+ "shareTitle": "Znacznik czasu przeglądu Frigate: {{camera}}"
}
},
"streaming": {
diff --git a/web/public/locales/pl/config/cameras.json b/web/public/locales/pl/config/cameras.json
index b7430d75d6..f890558aa7 100644
--- a/web/public/locales/pl/config/cameras.json
+++ b/web/public/locales/pl/config/cameras.json
@@ -176,7 +176,7 @@
"description": "Włączone"
},
"audio": {
- "label": "Zdarzenia audio",
+ "label": "Wykrywanie dźwięku",
"description": "Ustawienia detekcji zdarzeń audio dla tej kamery.",
"enabled": {
"label": "Włącz detekcję audio",
@@ -196,7 +196,11 @@
},
"filters": {
"label": "Filtry audio",
- "description": "Ustawienia filtrów dla poszczególnych typów audio, takie jak progi pewności, używane do redukcji fałszywych alarmów."
+ "description": "Ustawienia filtrów dla poszczególnych typów audio, takie jak progi pewności, używane do redukcji fałszywych alarmów.",
+ "threshold": {
+ "label": "Minimalna pewność wykrycia dźwięku",
+ "description": "Minimalny próg pewności, aby zdarzenie audio zostało zliczone."
+ }
},
"enabled_in_config": {
"label": "Pierwotny stan audio",
@@ -224,10 +228,18 @@
},
"birdseye": {
"mode": {
- "label": "Tryb śledzenia"
+ "label": "Tryb śledzenia",
+ "description": "Tryb uwzględniania kamer w widoku z lotu ptaka: „obiekty”, „ruch” lub „ciągły”."
},
"order": {
- "label": "Pozycja"
+ "label": "Pozycja",
+ "description": "Pozycja numeryczna określająca kolejność kamery w układzie widoku z lotu ptaka."
+ },
+ "label": "Widok z lotu ptaka",
+ "description": "Ustawienia widoku z lotu ptaka „Birdseye”, który łączy obraz z wielu kamer w jeden układ.",
+ "enabled": {
+ "label": "Włącz widok z lotu ptaka",
+ "description": "Włącz lub wyłącz funkcję widoku z lotu ptaka."
}
},
"detect": {
@@ -236,7 +248,58 @@
"description": "Włącza lub wyłącza wykrywanie obiektów dla tej kamery."
},
"stationary": {
- "label": "Konfiguracja obiektów stacjonarnych"
+ "label": "Konfiguracja obiektów stacjonarnych",
+ "description": "Ustawienia wykrywania i obsługi obiektów statycznych przez określony czas.",
+ "interval": {
+ "label": "Okres bezruchu",
+ "description": "Częstotliwość (w klatkach) sprawdzania detekcji dla obiektów nieruchomych."
+ },
+ "threshold": {
+ "label": "Próg bezruchu",
+ "description": "Liczba klatek bez zmiany pozycji potrzebna do uznania obiektu za nieruchomy."
+ },
+ "max_frames": {
+ "label": "Maksymalna liczba klatek",
+ "description": "Ogranicza czas śledzenia nieruchomych obiektów przed ich usunięciem.",
+ "default": {
+ "label": "Domyślna maks. liczba klatek",
+ "description": "Domyślna maksymalna liczba klatek śledzenia nieruchomego obiektu przed zatrzymaniem."
+ },
+ "objects": {
+ "label": "Maksymalna liczba klatek obiektu",
+ "description": "Nadpisania dla poszczególnych obiektów określające maksymalną liczbę klatek śledzenia nieruchomych obiektów."
+ }
+ },
+ "classifier": {
+ "label": "Włącz klasyfikator wizualny",
+ "description": "Użyj klasyfikatora wizualnego do wykrywania rzeczywiście nieruchomych obiektów, nawet gdy ramki ograniczające drżą."
+ }
+ },
+ "label": "Wykrywanie obiektów",
+ "description": "Ustawienia roli „detection/detect” używanej do wykrywania obiektów i inicjalizacji trackerów.",
+ "height": {
+ "label": "Wysokość wykrywania",
+ "description": "Wysokość (w pikselach) klatek używanych w strumieniu detekcji; pozostaw puste, aby użyć natywnej rozdzielczości strumienia."
+ },
+ "width": {
+ "label": "Szerokość wykrywania",
+ "description": "Szerokość (w pikselach) klatek używanych w strumieniu detekcji; pozostaw puste, aby użyć natywnej rozdzielczości strumienia."
+ },
+ "fps": {
+ "label": "FPS wykrywania",
+ "description": "Docelowa liczba klatek na sekundę używana do detekcji; niższe wartości zmniejszają użycie CPU (zalecana wartość to 5, ustaw wyższą — maksymalnie 10 — tylko jeśli śledzisz bardzo szybko poruszające się obiekty)."
+ },
+ "min_initialized": {
+ "label": "Minimalna liczba klatek inicjalizacyjnych",
+ "description": "Liczba kolejnych trafień detekcji wymagana do utworzenia śledzonego obiektu. Zwiększenie wartości zmniejsza liczbę fałszywych inicjalizacji. Wartość domyślna to fps podzielone przez 2."
+ },
+ "max_disappeared": {
+ "label": "Maksymalna liczba pominiętych klatek",
+ "description": "Liczba klatek bez detekcji, po której obiekt śledzony jest uznawany za utracony."
+ },
+ "annotation_offset": {
+ "label": "Przesunięcie oznaczenia",
+ "description": "Liczba milisekund przesunięcia adnotacji detekcji w celu lepszego dopasowania ramek ograniczających na osi czasu do nagrań; wartość może być dodatnia lub ujemna."
}
},
"face_recognition": {
@@ -245,6 +308,33 @@
"enabled": {
"label": "Włącz rozpoznawanie twarzy",
"description": "Włącz lub wyłącz rozpoznawanie twarzy."
+ },
+ "min_area": {
+ "label": "Minimalny obszar twarzy",
+ "description": "Minimalny obszar twarzy (w pikselach) wymagany do podjęcia próby rozpoznania."
+ }
+ },
+ "ffmpeg": {
+ "label": "Strumienie (FFmpeg)",
+ "output_args": {
+ "detect": {
+ "description": "Domyślne argumenty wyjściowe dla strumieni z rolą detekcji."
+ },
+ "record": {
+ "description": "Domyślne argumenty wyjściowe dla strumieni z rolą zapisu."
+ }
+ },
+ "retry_interval": {
+ "label": "Czas ponownej próby FFmpeg",
+ "description": "Czas (w sekundach) przed ponownym uruchomieniem utraconego strumienia kamery. Domyślnie: 10."
+ },
+ "apple_compatibility": {
+ "label": "Kompatybilność z Apple",
+ "description": "Włącz tagowanie HEVC, aby zapewnić lepszą zgodność z odtwarzaczami Apple podczas nagrywania w formacie H.265."
+ },
+ "gpu": {
+ "label": "Indeks GPU",
+ "description": "Domyślny indeks karty graficznej używany do akceleracji sprzętowej, jeśli jest dostępna."
}
}
}
diff --git a/web/public/locales/pl/config/global.json b/web/public/locales/pl/config/global.json
index 8d16de3feb..59d2232a06 100644
--- a/web/public/locales/pl/config/global.json
+++ b/web/public/locales/pl/config/global.json
@@ -1,6 +1,6 @@
{
"audio": {
- "label": "Zdarzenia audio",
+ "label": "Wykrywanie dźwięku",
"enabled": {
"label": "Włącz detekcję audio"
},
@@ -18,7 +18,11 @@
},
"filters": {
"label": "Filtry audio",
- "description": "Ustawienia filtrów dla poszczególnych typów audio, takie jak progi pewności, używane do redukcji fałszywych alarmów."
+ "description": "Ustawienia filtrów dla poszczególnych typów audio, takie jak progi pewności, używane do redukcji fałszywych alarmów.",
+ "threshold": {
+ "label": "Minimalna pewność wykrycia dźwięku",
+ "description": "Minimalny próg pewności, aby zdarzenie audio zostało zliczone."
+ }
},
"enabled_in_config": {
"label": "Pierwotny stan audio",
@@ -71,10 +75,18 @@
},
"birdseye": {
"mode": {
- "label": "Tryb śledzenia"
+ "label": "Tryb śledzenia",
+ "description": "Tryb uwzględniania kamer w widoku z lotu ptaka: „obiekty”, „ruch” lub „ciągły”."
},
"order": {
- "label": "Pozycja"
+ "label": "Pozycja",
+ "description": "Pozycja numeryczna określająca kolejność kamery w układzie widoku z lotu ptaka."
+ },
+ "label": "Widok z lotu ptaka",
+ "description": "Ustawienia widoku z lotu ptaka „Birdseye”, który łączy obraz z wielu kamer w jeden układ.",
+ "enabled": {
+ "label": "Włącz widok z lotu ptaka",
+ "description": "Włącz lub wyłącz funkcję widoku z lotu ptaka."
}
},
"detect": {
@@ -82,13 +94,90 @@
"label": "Włącz wykrywanie obiektów"
},
"stationary": {
- "label": "Konfiguracja obiektów stacjonarnych"
+ "label": "Konfiguracja obiektów stacjonarnych",
+ "description": "Ustawienia wykrywania i obsługi obiektów statycznych przez określony czas.",
+ "interval": {
+ "label": "Okres bezruchu",
+ "description": "Częstotliwość (w klatkach) sprawdzania detekcji dla obiektów nieruchomych."
+ },
+ "threshold": {
+ "label": "Próg bezruchu",
+ "description": "Liczba klatek bez zmiany pozycji potrzebna do uznania obiektu za nieruchomy."
+ },
+ "max_frames": {
+ "label": "Maksymalna liczba klatek",
+ "description": "Ogranicza czas śledzenia nieruchomych obiektów przed ich usunięciem.",
+ "default": {
+ "label": "Domyślna maks. liczba klatek",
+ "description": "Domyślna maksymalna liczba klatek śledzenia nieruchomego obiektu przed zatrzymaniem."
+ },
+ "objects": {
+ "label": "Maksymalna liczba klatek obiektu",
+ "description": "Nadpisania dla poszczególnych obiektów określające maksymalną liczbę klatek śledzenia nieruchomych obiektów."
+ }
+ },
+ "classifier": {
+ "label": "Włącz klasyfikator wizualny",
+ "description": "Użyj klasyfikatora wizualnego do wykrywania rzeczywiście nieruchomych obiektów, nawet gdy ramki ograniczające drżą."
+ }
+ },
+ "label": "Wykrywanie obiektów",
+ "description": "Ustawienia roli „detection/detect” używanej do wykrywania obiektów i inicjalizacji trackerów.",
+ "height": {
+ "label": "Wysokość wykrywania",
+ "description": "Wysokość (w pikselach) klatek używanych w strumieniu detekcji; pozostaw puste, aby użyć natywnej rozdzielczości strumienia."
+ },
+ "width": {
+ "label": "Szerokość wykrywania",
+ "description": "Szerokość (w pikselach) klatek używanych w strumieniu detekcji; pozostaw puste, aby użyć natywnej rozdzielczości strumienia."
+ },
+ "fps": {
+ "label": "FPS wykrywania",
+ "description": "Docelowa liczba klatek na sekundę używana do detekcji; niższe wartości zmniejszają użycie CPU (zalecana wartość to 5, ustaw wyższą — maksymalnie 10 — tylko jeśli śledzisz bardzo szybko poruszające się obiekty)."
+ },
+ "min_initialized": {
+ "label": "Minimalna liczba klatek inicjalizacyjnych",
+ "description": "Liczba kolejnych trafień detekcji wymagana do utworzenia śledzonego obiektu. Zwiększenie wartości zmniejsza liczbę fałszywych inicjalizacji. Wartość domyślna to fps podzielone przez 2."
+ },
+ "max_disappeared": {
+ "label": "Maksymalna liczba pominiętych klatek",
+ "description": "Liczba klatek bez detekcji, po której obiekt śledzony jest uznawany za utracony."
+ },
+ "annotation_offset": {
+ "label": "Przesunięcie oznaczenia",
+ "description": "Liczba milisekund przesunięcia adnotacji detekcji w celu lepszego dopasowania ramek ograniczających na osi czasu do nagrań; wartość może być dodatnia lub ujemna."
}
},
"face_recognition": {
"label": "Rozpoznawanie twarzy",
"enabled": {
"label": "Włącz rozpoznawanie twarzy"
+ },
+ "min_area": {
+ "label": "Minimalny obszar twarzy",
+ "description": "Minimalny obszar twarzy (w pikselach) wymagany do podjęcia próby rozpoznania."
+ }
+ },
+ "ffmpeg": {
+ "output_args": {
+ "detect": {
+ "description": "Domyślne argumenty wyjściowe dla strumieni z rolą detekcji."
+ },
+ "record": {
+ "description": "Domyślne argumenty wyjściowe dla strumieni z rolą zapisu."
+ }
+ },
+ "retry_interval": {
+ "label": "Czas ponownej próby FFmpeg",
+ "description": "Czas (w sekundach) przed ponownym uruchomieniem utraconego strumienia kamery. Domyślnie: 10."
+ },
+ "apple_compatibility": {
+ "label": "Kompatybilność z Apple",
+ "description": "Włącz tagowanie HEVC, aby zapewnić lepszą zgodność z odtwarzaczami Apple podczas nagrywania w formacie H.265."
+ },
+ "gpu": {
+ "label": "Indeks GPU",
+ "description": "Domyślny indeks karty graficznej używany do akceleracji sprzętowej, jeśli jest dostępna."
}
}
}
diff --git a/web/public/locales/pl/views/classificationModel.json b/web/public/locales/pl/views/classificationModel.json
index a56cd62b3c..b5a048882e 100644
--- a/web/public/locales/pl/views/classificationModel.json
+++ b/web/public/locales/pl/views/classificationModel.json
@@ -30,7 +30,8 @@
"trainedModel": "Model pomyślnie wytrenowany.",
"trainingModel": "Pomyślnie uruchomiono trenowanie modelu.",
"updatedModel": "Pomyślnie zaktualizowane ustawienia modelu",
- "renamedCategory": "Pomyślnie zmieniono nazwę klasy na {{name}}"
+ "renamedCategory": "Pomyślnie zmieniono nazwę klasy na {{name}}",
+ "reclassifiedImage": "Pomyślne przeklasyfikowanie obrazu"
},
"error": {
"deleteImageFailed": "Nie udało się usunąć: {{errorMessage}}",
@@ -40,7 +41,8 @@
"trainingFailed": "Trening modelu zakończył się niepowodzeniem. Sprawdź logi Frigate aby uzyskać więcej informacji.",
"updateModelFailed": "Nie udało się zaktualizować modelu: {{errorMessage}}",
"trainingFailedToStart": "Nie udało się rozpocząć trenowania modelu: {{errorMessage}}",
- "renameCategoryFailed": "Nie udało się zmienić nazwy klasy: {{errorMessage}}"
+ "renameCategoryFailed": "Nie udało się zmienić nazwy klasy: {{errorMessage}}",
+ "reclassifyFailed": "Niepowodzenie zmiany klasyfikacji obrazu: {{errorMessage}}"
}
},
"deleteCategory": {
@@ -191,7 +193,14 @@
"missingStatesWarning": {
"title": "Przykłady brakujących stanów",
"description": "Aby uzyskać najlepsze wyniki, zaleca się wybranie przykładów dla wszystkich stanów. Można kontynuować bez wybierania wszystkich stanów, ale model nie zostanie wytrenowany, dopóki wszystkie stany nie będą miały obrazów. Po kontynuowaniu należy użyć widoku Ostatnie klasyfikacje, aby sklasyfikować obrazy dla brakujących stanów, a następnie wytrenować model."
+ },
+ "refreshExamples": "Generuj nowe przykłady",
+ "refreshConfirm": {
+ "title": "Czy generować nowe przykłady?",
+ "description": "Spowoduje to wygenerowanie nowego zestawu obrazów i wyczyszczenie wszystkich zaznaczeń, w tym dotychczasowych klas. Konieczne będzie ponowne wybranie przykładów dla wszystkich klas."
}
}
- }
+ },
+ "reclassifyImageAs": "Klasyfikuj jako:",
+ "reclassifyImage": "Zmiana klasyfikacji obrazu"
}
diff --git a/web/public/locales/pt-BR/audio.json b/web/public/locales/pt-BR/audio.json
index 552a135650..1444d4d6a4 100644
--- a/web/public/locales/pt-BR/audio.json
+++ b/web/public/locales/pt-BR/audio.json
@@ -497,5 +497,6 @@
"echo": "Eco",
"mains_hum": "Zumbido Elétrico",
"sidetone": "Retorno de Voz",
- "throbbing": "Latejante"
+ "throbbing": "Latejante",
+ "sodeling": "Soldagem"
}
diff --git a/web/public/locales/pt-BR/common.json b/web/public/locales/pt-BR/common.json
index b2ebe49c28..3ce687cc73 100644
--- a/web/public/locales/pt-BR/common.json
+++ b/web/public/locales/pt-BR/common.json
@@ -210,7 +210,8 @@
"id": "Bahasa Indonesia (Indonésio)",
"ur": "اردو (Urdu)",
"hr": "Hrvatski (Croata)",
- "bs": "Bosanski (Bósnio)"
+ "bs": "Bosanski (Bósnio)",
+ "zhHant": "Chinês Tradicional"
},
"systemLogs": "Logs de sistema",
"settings": "Configurações",
diff --git a/web/public/locales/pt-BR/components/camera.json b/web/public/locales/pt-BR/components/camera.json
index f82636861d..a746960980 100644
--- a/web/public/locales/pt-BR/components/camera.json
+++ b/web/public/locales/pt-BR/components/camera.json
@@ -68,7 +68,10 @@
}
},
"birdseye": "Visão Panorâmica"
- }
+ },
+ "showAll": "Exibir todos os grupos de câmeras",
+ "showLess": "Mostrar menos",
+ "editGroups": "Editar grupos de câmeras"
},
"debug": {
"options": {
diff --git a/web/public/locales/pt-BR/components/dialog.json b/web/public/locales/pt-BR/components/dialog.json
index 788fe118d7..7f877adadb 100644
--- a/web/public/locales/pt-BR/components/dialog.json
+++ b/web/public/locales/pt-BR/components/dialog.json
@@ -24,6 +24,9 @@
},
"state": {
"submitted": "Enviado"
+ },
+ "toast": {
+ "error": "Falha ao enviar para o Frigate+. Verifique sua conexão de rede e tente novamente."
}
}
},
@@ -56,15 +59,25 @@
"toast": {
"success": "Exportação iniciada com sucesso. Veja o arquivo na tela exportar.",
"error": {
- "failed": "Falha em iniciar exportação: {{error}}",
+ "failed": "Falha ao iniciar exportação: {{error}}",
"endTimeMustAfterStartTime": "Tempo de finalização deve ser após tempo de início",
"noVaildTimeSelected": "Nenhuma faixa de tempo válida selecionada"
},
- "view": "Ver"
+ "view": "Ver",
+ "batchQueuedSuccess_one": "1 exportação na fila. Abrindo o caso agora.",
+ "batchQueuedSuccess_many": "{{count}} exportações colocadas na fila. Abrindo o caso agora.",
+ "batchQueuedSuccess_other": "",
+ "batchQueuedPartial": "{{successful}} de {{total}} exportações na fila. Câmeras com falha: {{failedCameras}}",
+ "batchQueueFailed": "Falha ao enfileirar {{total}} exportações. Câmeras com falha: {{failedCameras}}",
+ "batchPartial": "Iniciadas {{successful}} de {{total}} exportações. Câmeras com falha: {{failedCameras}}",
+ "batchFailed": "Falha ao iniciar {{total}} exportações. Câmeras com falha: {{failedCameras}}",
+ "queued": "Exportação na fila. Acompanhe o progresso na página de exportações."
},
"fromTimeline": {
"saveExport": "Salvar Exportação",
- "previewExport": "Pré-Visualizar Exportação"
+ "previewExport": "Pré-Visualizar Exportação",
+ "queueingExport": "Enfileirando exportação...",
+ "useThisRange": "Use esta faixa"
},
"case": {
"label": "Caso",
@@ -94,7 +107,14 @@
"queueingButton": "Exportações na fila...",
"exportButton_one": "Exportar câmera",
"exportButton_many": "Exportar {{count}} câmeras",
- "exportButton_other": "Exportar {{count}} câmeras"
+ "exportButton_other": "Exportar {{count}} câmeras",
+ "searchOrSelectGroup": "Procurar, ou selecionar um grupo de câmeras...",
+ "selectAll": "Selecionar todas as câmeras",
+ "clearSelection": "Limpar seleção",
+ "selectWithActivity": "Câmeras com rastreamento de objetos",
+ "selectGroup": "Selecione grupo",
+ "noMatchingCameras": "Nenhuma câmera corresponde à sua pesquisa",
+ "selectedCount": "{{selected}} / {{total}} selecionados"
},
"multi": {
"title_one": "Exportar análise",
@@ -106,7 +126,14 @@
"exportButton_one": "Exportar análise",
"exportButton_many": "Exportar {{count}} análises",
"exportButton_other": "Exportar {{count}} análises",
- "exportingButton": "Exportando..."
+ "exportingButton": "Exportando...",
+ "toast": {
+ "started_one": "Uma exportação iniciada. Abrindo o caso agora.",
+ "started_many": "Iniciadas {{count}} exportações. Abrindo o caso agora.",
+ "started_other": "",
+ "failed": "Falha ao iniciar {{total}} exportações. Falhas: {{failedItems}}",
+ "partial": "Iniciadas {{successful}} de {{total}} exportações. Falhas: {{failedItems}}"
+ }
}
},
"streaming": {
@@ -154,6 +181,14 @@
"export": "Exportar",
"deleteNow": "Deletar Agora",
"markAsUnreviewed": "Marcar como não revisado"
+ },
+ "shareTimestamp": {
+ "label": "Compartilhar marca de tempo",
+ "title": "Compartilhar marca de tempo",
+ "description": "Compartilhe uma URL com marca de tempo da posição atual da reprodução ou escolha uma marca de tempo personalizada. Observe que esta não é uma URL de compartilhamento público e só pode ser acessada por usuários que tenham acesso ao Frigate e a esta câmera.",
+ "custom": "Marcação de data/hora personalizado",
+ "button": "Compartilhar URL com marcação de tempo",
+ "shareTitle": "Marcação de data/hora da análise do Frigate: {{camera}}"
}
},
"imagePicker": {
diff --git a/web/public/locales/pt-BR/components/player.json b/web/public/locales/pt-BR/components/player.json
index 370565b633..e783725e8b 100644
--- a/web/public/locales/pt-BR/components/player.json
+++ b/web/public/locales/pt-BR/components/player.json
@@ -4,7 +4,8 @@
"noPreviewFoundFor": "Nenhuma Pré-Visualização Encontrada em {{cameraName}}",
"submitFrigatePlus": {
"title": "Enviar esse frame para Frigate+?",
- "submit": "Enviar"
+ "submit": "Enviar",
+ "previewError": "Não foi possível carregar a prévia do instantâneo. A gravação pode não estar disponível no momento."
},
"livePlayerRequiredIOSVersion": "iOS 17.1 ou superior é necessário para esse tipo de transmissão ao vivo.",
"streamOffline": {
@@ -47,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "Falha em submeter quadro ao Frigate+"
}
- }
+ },
+ "cameraOff": "A câmera está desligada"
}
diff --git a/web/public/locales/pt-BR/config/cameras.json b/web/public/locales/pt-BR/config/cameras.json
index 48b0de7d78..4be948c526 100644
--- a/web/public/locales/pt-BR/config/cameras.json
+++ b/web/public/locales/pt-BR/config/cameras.json
@@ -12,7 +12,7 @@
"description": "Habilitado"
},
"audio": {
- "label": "Eventos de áudio",
+ "label": "Detecção de áudio",
"description": "Configurações para detecção de eventos baseados em áudio para esta câmera.",
"enabled": {
"label": "Habilitar detecção de áudio",
@@ -28,11 +28,15 @@
},
"listen": {
"label": "Tipos de escuta",
- "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, grito, fala, berro)."
+ "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, fala, grito)."
},
"filters": {
"label": "Filtros de áudio",
- "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos."
+ "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos.",
+ "threshold": {
+ "label": "Confiança mínima do áudio",
+ "description": "Limite mínimo de confiança para que o evento de áudio seja contabilizado."
+ }
},
"enabled_in_config": {
"label": "Estado de áudio original",
@@ -47,11 +51,495 @@
"audio_transcription": {
"label": "Transcrição de áudio",
"enabled": {
- "label": "Habilitar transcrição"
+ "label": "Habilitar transcrição",
+ "description": "Ative ou desative a transcrição de eventos de áudio acionada manualmente."
},
"live_enabled": {
- "label": "Transcrição em tempo real"
+ "label": "Transcrição em tempo real",
+ "description": "Ative a transcrição ao vivo por streaming para o áudio à medida que ele é recebido."
},
- "description": "Configurações de transcrição de áudio e voz ao vivo para eventos e legendas em tempo real."
+ "description": "Configurações de transcrição de áudio e voz ao vivo para eventos e legendas em tempo real.",
+ "enabled_in_config": {
+ "label": "Estado original da transcrição"
+ }
+ },
+ "detect": {
+ "enabled": {
+ "label": "Ativar detecção de objetos",
+ "description": "Ative ou desative a detecção de objetos para esta câmera."
+ },
+ "height": {
+ "label": "Detectar altura",
+ "description": "Altura (em pixels) dos quadros usados para o fluxo de detecção; deixe em branco para usar a resolução nativa do fluxo."
+ },
+ "width": {
+ "label": "Detectar largura",
+ "description": "Largura (em pixels) dos quadros usados para o fluxo de detecção; deixe em branco para usar a resolução nativa do fluxo."
+ },
+ "fps": {
+ "label": "Detectar FPS",
+ "description": "Taxa de quadros por segundo desejada para a execução da detecção; valores mais baixos reduzem o uso da CPU (o valor recomendado é 5; defina um valor mais alto — no máximo 10 — apenas se estiver rastreando objetos que se movem extremamente rápido)."
+ },
+ "min_initialized": {
+ "label": "Quadros de inicialização mínimos",
+ "description": "Número de detecções consecutivas necessárias antes de criar um objeto rastreado. Aumente esse valor para reduzir inicializações falsas. O valor padrão é o fps dividido por 2."
+ },
+ "max_disappeared": {
+ "label": "Máximo de quadros perdidos",
+ "description": "Número de quadros sem detecção antes que um objeto rastreado seja considerado desaparecido."
+ },
+ "stationary": {
+ "label": "Configuração de objetos estáticos",
+ "description": "Configurações para detectar e gerenciar objetos que permanecem parados por um período de tempo.",
+ "interval": {
+ "label": "Intervalo estacionário",
+ "description": "Com que frequência (em quadros) realizar uma verificação de detecção para confirmar um objeto estacionário."
+ },
+ "threshold": {
+ "label": "Limiar estacionário",
+ "description": "Número de quadros sem alteração de posição necessários para marcar um objeto como estacionário."
+ },
+ "max_frames": {
+ "label": "Quadros máximos",
+ "description": "Limita por quanto tempo objetos estacionários são rastreados antes de serem descartados.",
+ "default": {
+ "label": "Máximo de quadros padrão",
+ "description": "Número máximo padrão de quadros para rastrear um objeto estacionário antes de parar."
+ },
+ "objects": {
+ "label": "Quadros máximos do objeto",
+ "description": "Substituições por objeto para o número máximo de quadros de rastreamento de objetos estacionários."
+ }
+ },
+ "classifier": {
+ "label": "Ativar classificador visual",
+ "description": "Use um classificador visual para detectar objetos verdadeiramente estacionários, mesmo quando as caixas delimitadoras oscilam."
+ }
+ },
+ "annotation_offset": {
+ "label": "Deslocamento da anotação",
+ "description": "Milissegundos para deslocar as anotações de detecção, a fim de alinhar melhor as caixas delimitadoras da linha do tempo com as gravações; pode ser um valor positivo ou negativo."
+ },
+ "label": "Detecção de Objetos",
+ "description": "Configurações para a função de detecção (*detect*) usada para executar a detecção de objetos e inicializar rastreadores."
+ },
+ "face_recognition": {
+ "label": "Reconhecimento facial",
+ "description": "Configurações de detecção e reconhecimento facial para esta câmera.",
+ "enabled": {
+ "label": "Ativar reconhecimento facial",
+ "description": "Ative ou desative o reconhecimento facial."
+ },
+ "min_area": {
+ "label": "Área mínima do rosto",
+ "description": "Área mínima (em pixels) da caixa delimitadora de um rosto detectado necessária para tentar o reconhecimento."
+ }
+ },
+ "ffmpeg": {
+ "label": "Fluxos (FFmpeg)",
+ "description": "Entradas de fluxo de câmera e opções do FFmpeg, incluindo caminho do binário, argumentos, aceleração de hardware (hwaccel) e argumentos de saída por função.",
+ "path": {
+ "label": "Caminho do FFmpeg",
+ "description": "Caminho para o binário do FFmpeg a ser utilizado ou um alias de versão (\"7.0\" ou \"8.0\")."
+ },
+ "global_args": {
+ "label": "Argumentos globais do FFmpeg",
+ "description": "Argumentos globais passados para processos do FFmpeg."
+ },
+ "hwaccel_args": {
+ "label": "Argumentos de aceleração de hardware",
+ "description": "Argumentos de aceleração de hardware para o FFmpeg. Recomenda-se o uso de predefinições específicas do provedor."
+ },
+ "input_args": {
+ "label": "Argumentos de entrada",
+ "description": "Argumentos de entrada aplicados aos fluxos de entrada do FFmpeg."
+ },
+ "output_args": {
+ "label": "Argumentos de saída",
+ "description": "Argumentos de saída padrão utilizados para diferentes funções do FFmpeg, como detecção e gravação.",
+ "detect": {
+ "label": "Detectar argumentos de saída",
+ "description": "Argumentos de saída padrão para fluxos de detecção de função."
+ },
+ "record": {
+ "label": "Registrar argumentos de saída",
+ "description": "Argumentos de saída padrão para fluxos de função de registro."
+ }
+ },
+ "retry_interval": {
+ "label": "Tempo de nova tentativa do FFmpeg",
+ "description": "Segundos de espera antes de tentar reconectar um fluxo de câmera após uma falha. O padrão é 10."
+ },
+ "apple_compatibility": {
+ "label": "Compatibilidade com a Apple",
+ "description": "Ative a marcação HEVC para melhor compatibilidade com reprodutores da Apple ao gravar em H.265."
+ },
+ "gpu": {
+ "label": "Índice da GPU",
+ "description": "Índice da GPU padrão usado para aceleração de hardware, se disponível."
+ },
+ "inputs": {
+ "label": "Entradas de câmera",
+ "description": "Lista de definições de fluxo de entrada (caminhos e funções) para esta câmera.",
+ "path": {
+ "label": "Caminho de entrada",
+ "description": "URL ou caminho do fluxo de entrada da câmera."
+ },
+ "roles": {
+ "label": "Funções de entrada",
+ "description": "Funções para este fluxo de entrada."
+ },
+ "global_args": {
+ "label": "Argumentos globais do FFmpeg",
+ "description": "Argumentos globais do FFmpeg para este fluxo de entrada."
+ },
+ "hwaccel_args": {
+ "label": "Argumentos de aceleração de hardware",
+ "description": "Argumentos de aceleração de hardware para este fluxo de entrada."
+ },
+ "input_args": {
+ "label": "Argumentos de entrada",
+ "description": "Argumentos de entrada específicos para este fluxo."
+ }
+ }
+ },
+ "birdseye": {
+ "mode": {
+ "label": "Modo de rastreamento",
+ "description": "Modo de inclusão de câmeras no Birdseye: 'objetos', 'movimento' ou 'contínuo'."
+ },
+ "order": {
+ "label": "Posição",
+ "description": "Posição numérica que controla a ordem da câmera no layout de vista aérea (Birdseye)."
+ },
+ "label": "Birdseye",
+ "description": "Configurações para a visualização composta \"Birdseye\", que combina múltiplas transmissões de câmera em um único layout.",
+ "enabled": {
+ "label": "Ativar Birdseye"
+ }
+ },
+ "live": {
+ "label": "Reprodução ao vivo",
+ "description": "Configurações utilizadas pela interface web para controlar a seleção, a resolução e a qualidade da transmissão ao vivo.",
+ "streams": {
+ "label": "Nomes de transmissões ao vivo",
+ "description": "Mapeamento de nomes de fluxos configurados para nomes de restream/go2rtc usados na reprodução ao vivo."
+ },
+ "height": {
+ "description": "Altura (em pixels) para renderizar a transmissão ao vivo jsmpeg na interface web; deve ser menor ou igual à altura da transmissão de detecção."
+ },
+ "quality": {
+ "description": "Qualidade de codificação para o fluxo jsmpeg (1 para a mais alta, 31 para a mais baixa)."
+ }
+ },
+ "motion": {
+ "enabled": {
+ "label": "Ativar detecção de movimento",
+ "description": "Ative ou desative a detecção de movimento para esta câmera."
+ },
+ "threshold": {
+ "label": "Limiar de movimento",
+ "description": "Limiar de diferença de pixels utilizado pelo detector de movimento; valores mais altos reduzem a sensibilidade (faixa de 1 a 255)."
+ },
+ "lightning_threshold": {
+ "label": "Limiar de relâmpago",
+ "description": "Limite para detectar e ignorar picos breves de luminosidade (valores mais baixos indicam maior sensibilidade; valores entre 0,3 e 1,0). Isso não impede totalmente a detecção de movimento; apenas faz com que o detector pare de analisar quadros adicionais assim que o limite é excedido. Gravações baseadas em movimento continuam sendo geradas durante esses eventos."
+ },
+ "skip_motion_threshold": {
+ "label": "Limite de movimento para pular",
+ "description": "Se definido para um valor entre 0,0 e 1,0, e se uma proporção da imagem superior a esse valor sofrer alterações em um único quadro, o detector não retornará caixas de detecção de movimento e será recalibrado imediatamente. Isso pode economizar recursos da CPU e reduzir falsos positivos causados por relâmpagos, tempestades, etc., mas pode deixar passar eventos reais, como o rastreamento automático de um objeto por uma câmera PTZ. A escolha envolve um equilíbrio entre descartar alguns megabytes de gravações e analisar alguns clipes curtos. Deixe a opção não definida (None) para desativar esse recurso."
+ },
+ "improve_contrast": {
+ "label": "Melhorar contraste",
+ "description": "Aplique melhoria de contraste aos quadros antes da análise de movimento para auxiliar na detecção."
+ },
+ "contour_area": {
+ "label": "Área de contorno",
+ "description": "Área mínima do contorno, em pixels, necessária para que um contorno de movimento seja contabilizado."
+ },
+ "delta_alpha": {
+ "label": "Delta Alfa",
+ "description": "Fator de *alpha blending* utilizado na diferenciação de quadros para o cálculo de movimento."
+ },
+ "frame_alpha": {
+ "label": "Quadro alfa",
+ "description": "Valor alfa utilizado ao combinar quadros para o pré-processamento de movimento."
+ },
+ "frame_height": {
+ "label": "Altura da quadro",
+ "description": "Altura em pixels para a qual os quadros são redimensionados ao calcular o movimento."
+ },
+ "mask": {
+ "label": "Coordenadas da máscara",
+ "description": "Coordenadas x,y ordenadas que definem o polígono da máscara de movimento utilizado para incluir ou excluir áreas."
+ },
+ "mqtt_off_delay": {
+ "label": "Atraso de desligamento MQTT",
+ "description": "Segundos de espera após o último movimento antes de publicar um estado \"off\" via MQTT."
+ },
+ "enabled_in_config": {
+ "label": "Estado de movimento original",
+ "description": "Indica se a detecção de movimento estava habilitada na configuração estática original."
+ },
+ "raw_mask": {
+ "label": "Máscara Bruta"
+ },
+ "label": "Detecção de movimento",
+ "description": "Configurações padrão de detecção de movimento para esta câmera."
+ },
+ "objects": {
+ "label": "Objetos",
+ "description": "Configurações padrão de rastreamento de objetos, incluindo quais rótulos rastrear e filtros por objeto.",
+ "track": {
+ "label": "Objetos a rastrear",
+ "description": "Lista de rótulos de objetos a serem rastreados para esta câmera."
+ },
+ "filters": {
+ "label": "Filtros de objeto",
+ "description": "Filtros aplicados aos objetos detectados para reduzir falsos positivos (área, proporção, confiança).",
+ "min_area": {
+ "label": "Área mínima do objeto",
+ "description": "Área mínima da caixa delimitadora (em pixels ou porcentagem) necessária para este tipo de objeto. Pode ser especificada em pixels (inteiro) ou porcentagem (valor de ponto flutuante entre 0,000001 e 0,99)."
+ },
+ "max_area": {
+ "label": "Área máxima do objeto",
+ "description": "Área máxima da caixa delimitadora (pixels ou porcentagem) permitida para este tipo de objeto. Pode ser pixels (int) ou porcentagem (flutuar entre 0,000001 e 0,99)."
+ },
+ "min_ratio": {
+ "label": "Razão de aspecto mínimo",
+ "description": "Razão mínima entre largura e altura necessária para que a caixa delimitadora se qualifique."
+ },
+ "max_ratio": {
+ "label": "Razão de aspecto máxima",
+ "description": "Razão máxima entre largura e altura permitida para que a caixa delimitadora qualifique."
+ },
+ "threshold": {
+ "label": "Limiar de confiança",
+ "description": "Limiar médio de confiança de detecção necessário para que o objeto seja considerado um verdadeiro positivo."
+ },
+ "min_score": {
+ "label": "Confiança mínima",
+ "description": "Confiança mínima de detecção em um único quadro necessária para que o objeto seja contabilizado."
+ },
+ "mask": {
+ "label": "Máscara com filtro",
+ "description": "Coordenadas do polígono que definem onde este filtro é aplicado dentro do quadro."
+ },
+ "raw_mask": {
+ "label": "Máscara Bruta"
+ }
+ },
+ "mask": {
+ "label": "Máscara de objeto",
+ "description": "Polígono de máscara usado para impedir a detecção de objetos em áreas específicas."
+ },
+ "raw_mask": {
+ "label": "Máscara Bruta"
+ },
+ "genai": {
+ "label": "Configuração de objeto da GenAI",
+ "description": "Opções de GenIA para descrever objetos rastreados e enviar quadros para geração.",
+ "enabled": {
+ "label": "Ativar GenAI",
+ "description": "Habilitar por padrão a geração de descrições para objetos rastreados usando GenAI."
+ },
+ "use_snapshot": {
+ "label": "Usar instantâneos",
+ "description": "Use instantâneos de objetos em vez de miniaturas para a geração de descrições pela GenAI."
+ },
+ "prompt": {
+ "label": "Sugestão de legenda",
+ "description": "Modelo de prompt padrão usado ao gerar descrições com GenAI."
+ },
+ "object_prompts": {
+ "label": "Prompts de objeto",
+ "description": "Prompts por objeto para personalizar as saídas de GenAI para rótulos específicos."
+ },
+ "objects": {
+ "label": "Objetos de GenAI",
+ "description": "Lista de rótulos de objetos a serem enviados à GenAI por padrão."
+ },
+ "required_zones": {
+ "label": "Zonas obrigatórias",
+ "description": "Zonas que devem ser acessadas para que os objetos se qualifiquem para a geração de descrições pela GenAI."
+ },
+ "debug_save_thumbnails": {
+ "label": "Salvar miniaturas",
+ "description": "Salve as miniaturas enviadas à GenAI para depuração e revisão."
+ },
+ "send_triggers": {
+ "label": "Gatilhos de GenAI",
+ "description": "Define quando os quadros devem ser enviados para a GenAI (ao final, após atualizações, etc.).",
+ "tracked_object_end": {
+ "label": "Enviar no fim",
+ "description": "Envie uma solicitação à GenAI quando o objeto rastreado terminar."
+ },
+ "after_significant_updates": {
+ "label": "Acionamento antecipado da GenAI",
+ "description": "Envie uma solicitação à GenAI após um número especificado de atualizações significativas do objeto monitorado."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Estado original da GenAI",
+ "description": "Indica se a GenAI foi habilitada na configuração estática original."
+ }
+ }
+ },
+ "lpr": {
+ "enabled": {
+ "label": "Ativar LPR",
+ "description": "Ative ou desative o LPR nesta câmera."
+ },
+ "expire_time": {
+ "label": "Segundos para expirar",
+ "description": "Tempo, em segundos, após o qual uma placa não detectada é removida do rastreador (apenas para câmeras LPR dedicadas)."
+ },
+ "min_area": {
+ "label": "Área mínima da placa",
+ "description": "Área mínima da placa (em pixels) necessária para tentar o reconhecimento."
+ },
+ "enhancement": {
+ "label": "Nível de aprimoramento",
+ "description": "Nível de aprimoramento (0-10) a ser aplicado aos recortes da placa antes do OCR; valores mais altos nem sempre melhoram os resultados, e níveis acima de 5 podem funcionar apenas com placas noturnas, devendo ser utilizados com cautela."
+ }
+ },
+ "record": {
+ "label": "Gravação",
+ "description": "Configurações de gravação e retenção para esta câmera.",
+ "enabled": {
+ "label": "Ativar gravação",
+ "description": "Ative ou desative a gravação para esta câmera."
+ },
+ "expire_interval": {
+ "label": "Intervalo de limpeza de gravação",
+ "description": "Minutos entre as execuções de limpeza que removem segmentos de gravação expirados."
+ },
+ "continuous": {
+ "label": "Retenção contínua",
+ "description": "Número de dias para manter as gravações, independentemente de objetos rastreados ou movimento. Defina como 0 se quiser manter apenas gravações de alertas e detecções.",
+ "days": {
+ "label": "Dias de retenção",
+ "description": "Dias para manter as gravações."
+ }
+ },
+ "motion": {
+ "label": "Retenção de movimento",
+ "description": "Número de dias para manter gravações acionadas por movimento, independentemente dos objetos rastreados. Defina como 0 se quiser manter apenas gravações de alertas e detecções.",
+ "days": {
+ "label": "Dias de retenção",
+ "description": "Dias para manter as gravações."
+ }
+ },
+ "detections": {
+ "label": "Retenção de detecção",
+ "description": "Configurações de retenção de gravação para eventos de detecção, incluindo durações de pré e pós-captura.",
+ "pre_capture": {
+ "label": "Segundos de pré-captura",
+ "description": "Número de segundos anteriores ao evento de detecção a serem incluídos na gravação."
+ },
+ "post_capture": {
+ "label": "Segundos após a captura",
+ "description": "Número de segundos após o evento de detecção a serem incluídos na gravação."
+ },
+ "retain": {
+ "label": "Retenção de eventos",
+ "description": "Configurações de retenção para gravações de eventos de detecção.",
+ "days": {
+ "label": "Dias de retenção",
+ "description": "Número de dias para manter as gravações de eventos de detecção."
+ },
+ "mode": {
+ "label": "Modo de retenção",
+ "description": "Modo de retenção: all (salva todos os segmentos), motion (salva segmentos com movimento) ou active_objects (salva segmentos com objetos ativos)."
+ }
+ }
+ },
+ "alerts": {
+ "label": "Retenção de alertas",
+ "description": "Configurações de retenção de gravações para eventos de alerta, incluindo durações de pré e pós-captura.",
+ "pre_capture": {
+ "label": "Segundos de pré-captura",
+ "description": "Número de segundos anteriores ao evento de detecção a serem incluídos na gravação."
+ },
+ "post_capture": {
+ "label": "Segundos após a captura",
+ "description": "Número de segundos após o evento de detecção a serem incluídos na gravação."
+ },
+ "retain": {
+ "label": "Retenção de eventos",
+ "description": "Configurações de retenção para gravações de eventos de detecção.",
+ "days": {
+ "label": "Dias de retenção",
+ "description": "Número de dias para manter as gravações de eventos de detecção."
+ },
+ "mode": {
+ "label": "Modo de retenção",
+ "description": "Modo de retenção: all (salvar todos os segmentos), motion (salvar segmentos com movimento) ou active_objects (salvar segmentos com objetos ativos)."
+ }
+ }
+ },
+ "export": {
+ "label": "Exportar configuração",
+ "description": "Configurações utilizadas ao exportar gravações, como timelapse e aceleração de hardware.",
+ "hwaccel_args": {
+ "label": "Exportar argumentos de hwaccel",
+ "description": "Argumentos de aceleração de hardware a serem usados para operações de exportação/transcodificação."
+ },
+ "max_concurrent": {
+ "label": "Máximo de exportações simultâneas",
+ "description": "Número máximo de tarefas de exportação a serem processadas simultaneamente."
+ },
+ "chapters": {
+ "label": "Metadados de capítulos para incorporar nas gravações exportadas"
+ }
+ },
+ "preview": {
+ "label": "Pré-visualizar configuração",
+ "description": "Configurações que controlam a qualidade das prévias de gravação exibidas na interface de usuário.",
+ "quality": {
+ "label": "Qualidade da pré-visualização",
+ "description": "Nível de qualidade da pré-visualização (muito_baixa, baixa, média, alta, muito_alta)."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Estado original da gravação",
+ "description": "Indica se a gravação foi habilitada na configuração estática original."
+ }
+ },
+ "review": {
+ "label": "Rever",
+ "description": "Configurações que controlam alertas, detecções e resumos de revisão por GenAI utilizados pela interface do usuário e pelo armazenamento desta câmera.",
+ "alerts": {
+ "label": "Configuração de alertas",
+ "description": "Configurações sobre quais objetos monitorados geram alertas e como os alertas são retidos.",
+ "enabled": {
+ "label": "Ativar alertas",
+ "description": "Ative ou desative a geração de alertas para esta câmera."
+ },
+ "labels": {
+ "label": "Etiquetas de alerta",
+ "description": "Lista de rótulos de objetos que se qualificam como alertas (por exemplo: carro, pessoa)."
+ },
+ "required_zones": {
+ "label": "Zonas obrigatórias",
+ "description": "Zonas nas quais um objeto deve entrar para ser considerado um alerta; deixe em branco para permitir qualquer zona."
+ },
+ "enabled_in_config": {
+ "label": "Estado dos alertas originais",
+ "description": "Monitora se os alertas estavam originalmente habilitados na configuração estática."
+ },
+ "cutoff_time": {
+ "label": "Horário limite dos alertas",
+ "description": "Segundos de espera após a ausência de atividade que gere alerta antes de encerrar o alerta."
+ }
+ },
+ "detections": {
+ "label": "Configuração de detecções",
+ "description": "Configurações que definem para quais objetos rastreados são geradas detecções (sem gerar alerta) e como essas detecções são retidas.",
+ "enabled": {
+ "label": "Ativar detecções",
+ "description": "Ative ou desative eventos de detecção para esta câmera."
+ }
+ }
}
}
diff --git a/web/public/locales/pt-BR/config/global.json b/web/public/locales/pt-BR/config/global.json
index a503c8ee94..1cf4a289ef 100644
--- a/web/public/locales/pt-BR/config/global.json
+++ b/web/public/locales/pt-BR/config/global.json
@@ -34,11 +34,15 @@
},
"listen": {
"label": "Tipos de escuta",
- "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, grito, fala, berro)."
+ "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, fala, grito)."
},
"filters": {
"label": "Filtros de áudio",
- "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos."
+ "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos.",
+ "threshold": {
+ "label": "Confiança mínima do áudio",
+ "description": "Limite mínimo de confiança para que o evento de áudio seja contabilizado."
+ }
},
"enabled_in_config": {
"label": "Estado de áudio original",
@@ -47,7 +51,8 @@
"num_threads": {
"label": "Threads de detecção",
"description": "Número de threads a serem usadas para o processamento de detecção de áudio."
- }
+ },
+ "label": "Detecção de áudio"
},
"auth": {
"label": "Autenticação",
@@ -82,8 +87,473 @@
"audio_transcription": {
"label": "Transcrição de áudio",
"live_enabled": {
- "label": "Transcrição em tempo real"
+ "label": "Transcrição em tempo real",
+ "description": "Ative a transcrição ao vivo por streaming para o áudio à medida que ele é recebido."
},
"description": "Configurações de transcrição de áudio e voz ao vivo para eventos e legendas em tempo real."
+ },
+ "detect": {
+ "enabled": {
+ "label": "Ativar detecção de objetos"
+ },
+ "height": {
+ "label": "Detectar altura",
+ "description": "Altura (em pixels) dos quadros usados para o fluxo de detecção; deixe em branco para usar a resolução nativa do fluxo."
+ },
+ "width": {
+ "label": "Detectar largura",
+ "description": "Largura (em pixels) dos quadros usados para o fluxo de detecção; deixe em branco para usar a resolução nativa do fluxo."
+ },
+ "fps": {
+ "label": "Detectar FPS",
+ "description": "Taxa de quadros por segundo desejada para a execução da detecção; valores mais baixos reduzem o uso da CPU (o valor recomendado é 5; defina um valor mais alto — no máximo 10 — apenas se estiver rastreando objetos que se movem extremamente rápido)."
+ },
+ "min_initialized": {
+ "label": "Quadros de inicialização mínimos",
+ "description": "Número de detecções consecutivas necessárias antes de criar um objeto rastreado. Aumente esse valor para reduzir inicializações falsas. O valor padrão é o fps dividido por 2."
+ },
+ "max_disappeared": {
+ "label": "Máximo de quadros perdidos",
+ "description": "Número de quadros sem detecção antes que um objeto rastreado seja considerado desaparecido."
+ },
+ "stationary": {
+ "label": "Configuração de objetos estáticos",
+ "description": "Configurações para detectar e gerenciar objetos que permanecem parados por um período de tempo.",
+ "interval": {
+ "label": "Intervalo estacionário",
+ "description": "Com que frequência (em quadros) realizar uma verificação de detecção para confirmar um objeto estacionário."
+ },
+ "threshold": {
+ "label": "Limiar estacionário",
+ "description": "Número de quadros sem alteração de posição necessários para marcar um objeto como estacionário."
+ },
+ "max_frames": {
+ "label": "Quadros máximos",
+ "description": "Limita por quanto tempo objetos estacionários são rastreados antes de serem descartados.",
+ "default": {
+ "label": "Máximo de quadros padrão",
+ "description": "Número máximo padrão de quadros para rastrear um objeto estacionário antes de parar."
+ },
+ "objects": {
+ "label": "Quadros máximos do objeto",
+ "description": "Substituições por objeto para o número máximo de quadros de rastreamento de objetos estacionários."
+ }
+ },
+ "classifier": {
+ "label": "Ativar classificador visual",
+ "description": "Use um classificador visual para detectar objetos verdadeiramente estacionários, mesmo quando as caixas delimitadoras oscilam."
+ }
+ },
+ "annotation_offset": {
+ "label": "Deslocamento da anotação",
+ "description": "Milissegundos para deslocar as anotações de detecção, a fim de alinhar melhor as caixas delimitadoras da linha do tempo com as gravações; pode ser um valor positivo ou negativo."
+ },
+ "label": "Detecção de Objetos",
+ "description": "Configurações para a função de detecção (*detect*) usada para executar a detecção de objetos e inicializar rastreadores."
+ },
+ "face_recognition": {
+ "label": "Reconhecimento facial",
+ "enabled": {
+ "label": "Ativar reconhecimento facial"
+ },
+ "min_area": {
+ "label": "Área mínima do rosto",
+ "description": "Área mínima (em pixels) da caixa delimitadora de um rosto detectado necessária para tentar o reconhecimento."
+ }
+ },
+ "ffmpeg": {
+ "path": {
+ "label": "Caminho do FFmpeg",
+ "description": "Caminho para o binário do FFmpeg a ser utilizado ou um alias de versão (\"7.0\" ou \"8.0\")."
+ },
+ "global_args": {
+ "label": "Argumentos globais do FFmpeg",
+ "description": "Argumentos globais passados para processos do FFmpeg."
+ },
+ "hwaccel_args": {
+ "label": "Argumentos de aceleração de hardware",
+ "description": "Argumentos de aceleração de hardware para o FFmpeg. Recomenda-se o uso de predefinições específicas do provedor."
+ },
+ "input_args": {
+ "label": "Argumentos de entrada",
+ "description": "Argumentos de entrada aplicados aos fluxos de entrada do FFmpeg."
+ },
+ "output_args": {
+ "label": "Argumentos de saída",
+ "description": "Argumentos de saída padrão utilizados para diferentes funções do FFmpeg, como detecção e gravação.",
+ "detect": {
+ "label": "Detectar argumentos de saída",
+ "description": "Argumentos de saída padrão para fluxos de detecção de função."
+ },
+ "record": {
+ "label": "Registrar argumentos de saída",
+ "description": "Argumentos de saída padrão para fluxos de função de registro."
+ }
+ },
+ "retry_interval": {
+ "label": "Tempo de nova tentativa do FFmpeg",
+ "description": "Segundos de espera antes de tentar reconectar um fluxo de câmera após uma falha. O padrão é 10."
+ },
+ "apple_compatibility": {
+ "label": "Compatibilidade com a Apple",
+ "description": "Ative a marcação HEVC para melhor compatibilidade com reprodutores da Apple ao gravar em H.265."
+ },
+ "gpu": {
+ "label": "Índice da GPU",
+ "description": "Índice da GPU padrão usado para aceleração de hardware, se disponível."
+ },
+ "inputs": {
+ "label": "Entradas de câmera",
+ "description": "Lista de definições de fluxo de entrada (caminhos e funções) para esta câmera.",
+ "path": {
+ "label": "Caminho de entrada",
+ "description": "URL ou caminho do fluxo de entrada da câmera."
+ },
+ "roles": {
+ "label": "Funções de entrada",
+ "description": "Funções para este fluxo de entrada."
+ },
+ "global_args": {
+ "label": "Argumentos globais do FFmpeg",
+ "description": "Argumentos globais do FFmpeg para este fluxo de entrada."
+ },
+ "hwaccel_args": {
+ "label": "Argumentos de aceleração de hardware",
+ "description": "Argumentos de aceleração de hardware para este fluxo de entrada."
+ },
+ "input_args": {
+ "label": "Argumentos de entrada",
+ "description": "Argumentos de entrada específicos para este fluxo."
+ }
+ }
+ },
+ "birdseye": {
+ "mode": {
+ "label": "Modo de rastreamento",
+ "description": "Modo de inclusão de câmeras no Birdseye: 'objetos', 'movimento' ou 'contínuo'."
+ },
+ "order": {
+ "label": "Posição",
+ "description": "Posição numérica que controla a ordem da câmera no layout de vista aérea (Birdseye)."
+ },
+ "label": "Birdseye",
+ "description": "Configurações para a visualização composta \"Birdseye\", que combina múltiplas transmissões de câmera em um único layout.",
+ "enabled": {
+ "label": "Ativar Birdseye"
+ }
+ },
+ "live": {
+ "label": "Reprodução ao vivo",
+ "streams": {
+ "label": "Nomes de transmissões ao vivo",
+ "description": "Mapeamento de nomes de fluxos configurados para nomes de restream/go2rtc usados na reprodução ao vivo."
+ },
+ "height": {
+ "description": "Altura (em pixels) para renderizar a transmissão ao vivo jsmpeg na interface web; deve ser menor ou igual à altura da transmissão de detecção."
+ },
+ "quality": {
+ "description": "Qualidade de codificação para o fluxo jsmpeg (1 para a mais alta, 31 para a mais baixa)."
+ }
+ },
+ "motion": {
+ "enabled": {
+ "label": "Ativar detecção de movimento"
+ },
+ "threshold": {
+ "label": "Limiar de movimento",
+ "description": "Limiar de diferença de pixels utilizado pelo detector de movimento; valores mais altos reduzem a sensibilidade (faixa de 1 a 255)."
+ },
+ "lightning_threshold": {
+ "label": "Limiar de relâmpago",
+ "description": "Limite para detectar e ignorar picos breves de luminosidade (valores mais baixos indicam maior sensibilidade; valores entre 0,3 e 1,0). Isso não impede totalmente a detecção de movimento; apenas faz com que o detector pare de analisar quadros adicionais assim que o limite é excedido. Gravações baseadas em movimento continuam sendo geradas durante esses eventos."
+ },
+ "skip_motion_threshold": {
+ "label": "Limite de movimento para pular",
+ "description": "Se definido para um valor entre 0,0 e 1,0, e se uma proporção da imagem superior a esse valor sofrer alterações em um único quadro, o detector não retornará caixas de detecção de movimento e será recalibrado imediatamente. Isso pode economizar recursos da CPU e reduzir falsos positivos causados por relâmpagos, tempestades, etc., mas pode deixar passar eventos reais, como o rastreamento automático de um objeto por uma câmera PTZ. A escolha envolve um equilíbrio entre descartar alguns megabytes de gravações e analisar alguns clipes curtos. Deixe a opção não definida (None) para desativar esse recurso."
+ },
+ "improve_contrast": {
+ "label": "Melhorar contraste",
+ "description": "Aplique melhoria de contraste aos quadros antes da análise de movimento para auxiliar na detecção."
+ },
+ "contour_area": {
+ "label": "Área de contorno",
+ "description": "Área mínima do contorno, em pixels, necessária para que um contorno de movimento seja contabilizado."
+ },
+ "delta_alpha": {
+ "label": "Delta Alfa",
+ "description": "Fator de *alpha blending* utilizado na diferenciação de quadros para o cálculo de movimento."
+ },
+ "frame_alpha": {
+ "label": "Quadro alfa",
+ "description": "Valor alfa utilizado ao combinar quadros para o pré-processamento de movimento."
+ },
+ "frame_height": {
+ "label": "Altura da quadro",
+ "description": "Altura em pixels para a qual os quadros são redimensionados ao calcular o movimento."
+ },
+ "mask": {
+ "label": "Coordenadas da máscara",
+ "description": "Coordenadas x,y ordenadas que definem o polígono da máscara de movimento utilizado para incluir ou excluir áreas."
+ },
+ "mqtt_off_delay": {
+ "label": "Atraso de desligamento MQTT",
+ "description": "Segundos de espera após o último movimento antes de publicar um estado \"off\" via MQTT."
+ },
+ "enabled_in_config": {
+ "label": "Estado de movimento original",
+ "description": "Indica se a detecção de movimento estava habilitada na configuração estática original."
+ },
+ "raw_mask": {
+ "label": "Máscara Bruta"
+ },
+ "label": "Detecção de movimento"
+ },
+ "objects": {
+ "label": "Objetos",
+ "description": "Configurações padrão de rastreamento de objetos, incluindo quais rótulos rastrear e filtros por objeto.",
+ "track": {
+ "label": "Objetos a rastrear"
+ },
+ "filters": {
+ "label": "Filtros de objeto",
+ "description": "Filtros aplicados aos objetos detectados para reduzir falsos positivos (área, proporção, confiança).",
+ "min_area": {
+ "label": "Área mínima do objeto",
+ "description": "Área mínima da caixa delimitadora (em pixels ou porcentagem) necessária para este tipo de objeto. Pode ser especificada em pixels (inteiro) ou porcentagem (valor de ponto flutuante entre 0,000001 e 0,99)."
+ },
+ "max_area": {
+ "label": "Área máxima do objeto",
+ "description": "Área máxima da caixa delimitadora (pixels ou porcentagem) permitida para este tipo de objeto. Pode ser pixels (int) ou porcentagem (flutuar entre 0,000001 e 0,99)."
+ },
+ "min_ratio": {
+ "label": "Razão de aspecto mínimo",
+ "description": "Razão mínima entre largura e altura necessária para que a caixa delimitadora se qualifique."
+ },
+ "max_ratio": {
+ "label": "Razão de aspecto máxima",
+ "description": "Razão máxima entre largura e altura permitida para que a caixa delimitadora qualifique."
+ },
+ "threshold": {
+ "label": "Limiar de confiança",
+ "description": "Limiar médio de confiança de detecção necessário para que o objeto seja considerado um verdadeiro positivo."
+ },
+ "min_score": {
+ "label": "Confiança mínima",
+ "description": "Confiança mínima de detecção em um único quadro necessária para que o objeto seja contabilizado."
+ },
+ "mask": {
+ "label": "Máscara com filtro",
+ "description": "Coordenadas do polígono que definem onde este filtro é aplicado dentro do quadro."
+ },
+ "raw_mask": {
+ "label": "Máscara Bruta"
+ }
+ },
+ "mask": {
+ "label": "Máscara de objeto",
+ "description": "Polígono de máscara usado para impedir a detecção de objetos em áreas específicas."
+ },
+ "raw_mask": {
+ "label": "Máscara Bruta"
+ },
+ "genai": {
+ "label": "Configuração de objeto da GenAI",
+ "description": "Opções de GenIA para descrever objetos rastreados e enviar quadros para geração.",
+ "enabled": {
+ "label": "Ativar GenAI",
+ "description": "Habilitar por padrão a geração de descrições para objetos rastreados usando GenAI."
+ },
+ "use_snapshot": {
+ "label": "Usar instantâneos",
+ "description": "Use instantâneos de objetos em vez de miniaturas para a geração de descrições pela GenAI."
+ },
+ "prompt": {
+ "label": "Sugestão de legenda",
+ "description": "Modelo de prompt padrão usado ao gerar descrições com GenAI."
+ },
+ "object_prompts": {
+ "label": "Prompts de objeto",
+ "description": "Prompts por objeto para personalizar as saídas de GenAI para rótulos específicos."
+ },
+ "objects": {
+ "label": "Objetos de GenAI",
+ "description": "Lista de rótulos de objetos a serem enviados à GenAI por padrão."
+ },
+ "required_zones": {
+ "label": "Zonas obrigatórias",
+ "description": "Zonas que devem ser acessadas para que os objetos se qualifiquem para a geração de descrições pela GenAI."
+ },
+ "debug_save_thumbnails": {
+ "label": "Salvar miniaturas",
+ "description": "Salve as miniaturas enviadas à GenAI para depuração e revisão."
+ },
+ "send_triggers": {
+ "label": "Gatilhos de GenAI",
+ "description": "Define quando os quadros devem ser enviados para a GenAI (ao final, após atualizações, etc.).",
+ "tracked_object_end": {
+ "label": "Enviar no fim",
+ "description": "Envie uma solicitação à GenAI quando o objeto rastreado terminar."
+ },
+ "after_significant_updates": {
+ "label": "Acionamento antecipado da GenAI",
+ "description": "Envie uma solicitação à GenAI após um número especificado de atualizações significativas do objeto monitorado."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Estado original da GenAI",
+ "description": "Indica se a GenAI foi habilitada na configuração estática original."
+ }
+ }
+ },
+ "lpr": {
+ "enabled": {
+ "label": "Ativar LPR"
+ },
+ "expire_time": {
+ "label": "Segundos para expirar",
+ "description": "Tempo, em segundos, após o qual uma placa não detectada é removida do rastreador (apenas para câmeras LPR dedicadas)."
+ },
+ "min_area": {
+ "label": "Área mínima da placa",
+ "description": "Área mínima da placa (em pixels) necessária para tentar o reconhecimento."
+ },
+ "enhancement": {
+ "label": "Nível de aprimoramento",
+ "description": "Nível de aprimoramento (0-10) a ser aplicado aos recortes da placa antes do OCR; valores mais altos nem sempre melhoram os resultados, e níveis acima de 5 podem funcionar apenas com placas noturnas, devendo ser utilizados com cautela."
+ }
+ },
+ "record": {
+ "label": "Gravação",
+ "enabled": {
+ "label": "Ativar gravação"
+ },
+ "expire_interval": {
+ "label": "Intervalo de limpeza de gravação",
+ "description": "Minutos entre as execuções de limpeza que removem segmentos de gravação expirados."
+ },
+ "continuous": {
+ "label": "Retenção contínua",
+ "description": "Número de dias para manter as gravações, independentemente de objetos rastreados ou movimento. Defina como 0 se quiser manter apenas gravações de alertas e detecções.",
+ "days": {
+ "label": "Dias de retenção",
+ "description": "Dias para manter as gravações."
+ }
+ },
+ "motion": {
+ "label": "Retenção de movimento",
+ "description": "Número de dias para manter gravações acionadas por movimento, independentemente dos objetos rastreados. Defina como 0 se quiser manter apenas gravações de alertas e detecções.",
+ "days": {
+ "label": "Dias de retenção",
+ "description": "Dias para manter as gravações."
+ }
+ },
+ "detections": {
+ "label": "Retenção de detecção",
+ "description": "Configurações de retenção de gravação para eventos de detecção, incluindo durações de pré e pós-captura.",
+ "pre_capture": {
+ "label": "Segundos de pré-captura",
+ "description": "Número de segundos anteriores ao evento de detecção a serem incluídos na gravação."
+ },
+ "post_capture": {
+ "label": "Segundos após a captura",
+ "description": "Número de segundos após o evento de detecção a serem incluídos na gravação."
+ },
+ "retain": {
+ "label": "Retenção de eventos",
+ "description": "Configurações de retenção para gravações de eventos de detecção.",
+ "days": {
+ "label": "Dias de retenção",
+ "description": "Número de dias para manter as gravações de eventos de detecção."
+ },
+ "mode": {
+ "label": "Modo de retenção",
+ "description": "Modo de retenção: all (salva todos os segmentos), motion (salva segmentos com movimento) ou active_objects (salva segmentos com objetos ativos)."
+ }
+ }
+ },
+ "alerts": {
+ "label": "Retenção de alertas",
+ "description": "Configurações de retenção de gravações para eventos de alerta, incluindo durações de pré e pós-captura.",
+ "pre_capture": {
+ "label": "Segundos de pré-captura",
+ "description": "Número de segundos anteriores ao evento de detecção a serem incluídos na gravação."
+ },
+ "post_capture": {
+ "label": "Segundos após a captura",
+ "description": "Número de segundos após o evento de detecção a serem incluídos na gravação."
+ },
+ "retain": {
+ "label": "Retenção de eventos",
+ "description": "Configurações de retenção para gravações de eventos de detecção.",
+ "days": {
+ "label": "Dias de retenção",
+ "description": "Número de dias para manter as gravações de eventos de detecção."
+ },
+ "mode": {
+ "label": "Modo de retenção",
+ "description": "Modo de retenção: all (salvar todos os segmentos), motion (salvar segmentos com movimento) ou active_objects (salvar segmentos com objetos ativos)."
+ }
+ }
+ },
+ "export": {
+ "label": "Exportar configuração",
+ "description": "Configurações utilizadas ao exportar gravações, como timelapse e aceleração de hardware.",
+ "hwaccel_args": {
+ "label": "Exportar argumentos de hwaccel",
+ "description": "Argumentos de aceleração de hardware a serem usados para operações de exportação/transcodificação."
+ },
+ "max_concurrent": {
+ "label": "Máximo de exportações simultâneas",
+ "description": "Número máximo de tarefas de exportação a serem processadas simultaneamente."
+ },
+ "chapters": {
+ "label": "Metadados de capítulos para incorporar nas gravações exportadas"
+ }
+ },
+ "preview": {
+ "label": "Pré-visualizar configuração",
+ "description": "Configurações que controlam a qualidade das prévias de gravação exibidas na interface de usuário.",
+ "quality": {
+ "label": "Qualidade da pré-visualização",
+ "description": "Nível de qualidade da pré-visualização (muito_baixa, baixa, média, alta, muito_alta)."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Estado original da gravação",
+ "description": "Indica se a gravação foi habilitada na configuração estática original."
+ }
+ },
+ "review": {
+ "label": "Rever",
+ "alerts": {
+ "label": "Configuração de alertas",
+ "description": "Configurações sobre quais objetos monitorados geram alertas e como os alertas são retidos.",
+ "enabled": {
+ "label": "Ativar alertas"
+ },
+ "labels": {
+ "label": "Etiquetas de alerta",
+ "description": "Lista de rótulos de objetos que se qualificam como alertas (por exemplo: carro, pessoa)."
+ },
+ "required_zones": {
+ "label": "Zonas obrigatórias",
+ "description": "Zonas nas quais um objeto deve entrar para ser considerado um alerta; deixe em branco para permitir qualquer zona."
+ },
+ "enabled_in_config": {
+ "label": "Estado dos alertas originais",
+ "description": "Monitora se os alertas estavam originalmente habilitados na configuração estática."
+ },
+ "cutoff_time": {
+ "label": "Horário limite dos alertas",
+ "description": "Segundos de espera após a ausência de atividade que gere alerta antes de encerrar o alerta."
+ }
+ },
+ "detections": {
+ "label": "Configuração de detecções",
+ "description": "Configurações que definem para quais objetos rastreados são geradas detecções (sem gerar alerta) e como essas detecções são retidas.",
+ "enabled": {
+ "label": "Ativar detecções"
+ }
+ }
}
}
diff --git a/web/public/locales/pt-BR/config/groups.json b/web/public/locales/pt-BR/config/groups.json
index a392ecc761..cfe1a88297 100644
--- a/web/public/locales/pt-BR/config/groups.json
+++ b/web/public/locales/pt-BR/config/groups.json
@@ -64,5 +64,10 @@
"retention": "Retenção",
"events": "Eventos"
}
+ },
+ "ffmpeg": {
+ "cameras": {
+ "cameraFfmpeg": "Argumentos do FFmpeg específicos para a câmera"
+ }
}
}
diff --git a/web/public/locales/pt-BR/config/validation.json b/web/public/locales/pt-BR/config/validation.json
index 3fc8086682..073d1a5785 100644
--- a/web/public/locales/pt-BR/config/validation.json
+++ b/web/public/locales/pt-BR/config/validation.json
@@ -28,5 +28,8 @@
"detectRequired": "Pelo menos um fluxo de entrada deve ter a função 'detectar' atribuída.",
"hwaccelDetectOnly": "Somente o fluxo de entrada com a função de detecção pode definir argumentos de aceleração de hardware."
}
+ },
+ "detect": {
+ "dimensionMustBeEven": "Deve ser um número par."
}
}
diff --git a/web/public/locales/pt-BR/views/chat.json b/web/public/locales/pt-BR/views/chat.json
index 0967ef424b..8f63a9e1a2 100644
--- a/web/public/locales/pt-BR/views/chat.json
+++ b/web/public/locales/pt-BR/views/chat.json
@@ -1 +1,63 @@
-{}
+{
+ "documentTitle": "Frigate-Chat",
+ "title": "Chat-Frigate",
+ "subtitle": "Seu assistente de IA para gerenciamento de câmeras e insights",
+ "placeholder": "Pergunte o que quiser...",
+ "error": "Algo deu errado. Por favor, tente novamente.",
+ "processing": "Processando...",
+ "toolsUsed": "Usado: {{tools}}",
+ "showTools": "Mostrar ferramentas ({{count}})",
+ "hideTools": "Ocultar ferramentas",
+ "call": "Chamar",
+ "result": "Resultado",
+ "arguments": "Argumentos:",
+ "response": "Resposta:",
+ "attachment_chip_label": "{{label}} em {{camera}}",
+ "attachment_chip_remove": "Remover anexo",
+ "open_in_explore": "Abrir no Explorar",
+ "attach_event_aria": "Anexar evento {{eventId}}",
+ "attachment_picker_paste_label": "Ou cole o ID do evento",
+ "attachment_picker_attach": "Anexar",
+ "attachment_picker_placeholder": "Anexar um evento",
+ "quick_reply_find_similar": "Encontre avistamentos semelhantes",
+ "quick_reply_tell_me_more": "Conte-me mais sobre isso",
+ "quick_reply_when_else": "Em que outra ocasião isso foi visto?",
+ "quick_reply_find_similar_text": "Encontre avistamentos semelhantes a este.",
+ "quick_reply_tell_me_more_text": "Conte-me mais sobre este.",
+ "quick_reply_when_else_text": "Em que outra ocasião isso foi visto?",
+ "anchor": "Referência",
+ "similarity_score": "Semelhança",
+ "no_similar_objects_found": "Nenhum objeto semelhante encontrado.",
+ "semantic_search_required": "A busca semântica deve estar habilitada para encontrar objetos semelhantes.",
+ "send": "Enviar",
+ "suggested_requests": "Experimente perguntar:",
+ "starting_requests": {
+ "show_recent_events": "Mostrar eventos recentes",
+ "show_camera_status": "Mostrar status da câmera",
+ "recap": "O que aconteceu enquanto eu estava fora?",
+ "watch_camera": "Monitore uma câmera em busca de atividade"
+ },
+ "starting_requests_prompts": {
+ "show_recent_events": "Mostre-me os eventos recentes da última hora",
+ "show_camera_status": "Qual é o status atual das minhas câmeras?",
+ "recap": "O que aconteceu enquanto eu estava fora?",
+ "watch_camera": "Fique de olho na porta da frente e me avise se alguém aparecer"
+ },
+ "new_chat": "Novo chat",
+ "settings": {
+ "title": "Configurações do chat",
+ "show_stats": {
+ "title": "Mostrar estatísticas",
+ "desc": "Exibir a taxa de geração e o tamanho do contexto para respostas de chat.",
+ "while_generating": "Durante a geração",
+ "always": "Sempre"
+ },
+ "auto_scroll": {
+ "title": "Rolagem automática",
+ "desc": "Acompanhe as novas mensagens à medida que chegam."
+ }
+ },
+ "stats": {
+ "context": "{{tokens}} tokens"
+ }
+}
diff --git a/web/public/locales/pt-BR/views/classificationModel.json b/web/public/locales/pt-BR/views/classificationModel.json
index 36f3539a04..39bc880a87 100644
--- a/web/public/locales/pt-BR/views/classificationModel.json
+++ b/web/public/locales/pt-BR/views/classificationModel.json
@@ -13,7 +13,7 @@
"toast": {
"success": {
"deletedCategory_one": "Classe Apagada",
- "deletedCategory_many": "",
+ "deletedCategory_many": "Classes apagadas",
"deletedCategory_other": "",
"deletedImage_one": "Imagen Apagada",
"deletedImage_many": "Imagens Apagadas",
@@ -94,7 +94,14 @@
},
"noModels": {
"object": {
- "title": "Nenhum Modelo de Classificação de Objetos"
+ "title": "Nenhum Modelo de Classificação de Objetos",
+ "description": "Crie um modelo personalizado para classificar objetos detectados.",
+ "buttonText": "Criar modelo de objeto"
+ },
+ "state": {
+ "title": "Modelos de Classificação Sem Estado",
+ "description": "Crie um modelo personalizado para monitorar e classificar mudanças de estado em áreas específicas da câmera.",
+ "buttonText": "Criar modelo de estado"
}
},
"deleteDatasetImages": {
@@ -104,5 +111,13 @@
"title": "Editar Modelo de Classificação",
"descriptionState": "Edite as classes deste modelo de classificação de estado. As alterações exigirão treinar novamente o modelo.",
"descriptionObject": "Edite o tipo de objeto e tipo de classificação para este modelo de classificação de objeto."
+ },
+ "reclassifyImageAs": "Reclassificar imagem como:",
+ "reclassifyImage": "Reclassificar imagem",
+ "wizard": {
+ "title": "Criar nova classificação",
+ "steps": {
+ "nameAndDefine": "Nomear e definir"
+ }
}
}
diff --git a/web/public/locales/pt-BR/views/faceLibrary.json b/web/public/locales/pt-BR/views/faceLibrary.json
index 7e8c8f56c3..9e7a5b34c2 100644
--- a/web/public/locales/pt-BR/views/faceLibrary.json
+++ b/web/public/locales/pt-BR/views/faceLibrary.json
@@ -72,7 +72,11 @@
"title": "Reconhecimentos Recentes",
"aria": "Selecionar reconhecimentos recentes",
"empty": "Não há tentativas recentes de reconhecimento facial",
- "titleShort": "Recente"
+ "titleShort": "Recente",
+ "emptyNoLibrary": {
+ "title": "Carregue uma foto de rosto",
+ "description": "Você deve adicionar pelo menos um rosto à biblioteca para que o reconhecimento facial funcione."
+ }
},
"selectFace": "Selecionar Rosto",
"trainFaceAs": "Treinar Rosto como:",
@@ -89,7 +93,8 @@
"renamedFace": "O rosto foi renomeado com sucesso para {{name}}",
"deletedName_one": "{{count}} rosto foi deletado com sucesso.",
"deletedName_many": "{{count}} rostos foram deletados com sucesso.",
- "deletedName_other": "{{count}} rostos foram deletados com sucesso."
+ "deletedName_other": "{{count}} rostos foram deletados com sucesso.",
+ "reclassifiedFace": "Rosto reclassificado com sucesso."
},
"error": {
"uploadingImageFailed": "Falha ao enviar a imagem: {{errorMessage}}",
@@ -98,7 +103,10 @@
"deleteNameFailed": "Falha ao deletar nome: {{errorMessage}}",
"renameFaceFailed": "Falha ao renomear rosto: {{errorMessage}}",
"trainFailed": "Falha ao treinar: {{errorMessage}}",
- "updateFaceScoreFailed": "Falha ao atualizar pontuação de rosto: {{errorMessage}}"
+ "updateFaceScoreFailed": "Falha ao atualizar pontuação de rosto: {{errorMessage}}",
+ "reclassifyFailed": "Falha ao reclassificar o rosto: {{errorMessage}}"
}
- }
+ },
+ "reclassifyFaceAs": "Reclassificar rosto como:",
+ "reclassifyFace": "Reclassificar rosto"
}
diff --git a/web/public/locales/pt-BR/views/live.json b/web/public/locales/pt-BR/views/live.json
index a1b72767f4..79d446d5f5 100644
--- a/web/public/locales/pt-BR/views/live.json
+++ b/web/public/locales/pt-BR/views/live.json
@@ -58,7 +58,9 @@
},
"camera": {
"enable": "Ativar Câmera",
- "disable": "Desabilitar Câmera"
+ "disable": "Desabilitar Câmera",
+ "turnOn": "Ligar a câmera",
+ "turnOff": "Desligar a câmera"
},
"muteCameras": {
"enable": "Silenciar Todas as Câmeras",
@@ -70,7 +72,8 @@
},
"recording": {
"enable": "Ativar Gravação",
- "disable": "Desativar Gravação"
+ "disable": "Desativar Gravação",
+ "disabledInConfig": "A gravação deve ser habilitada primeiro nas configurações desta câmera."
},
"snapshots": {
"enable": "Permitir Capturas de Imagem",
@@ -150,7 +153,8 @@
"snapshots": "Capturas de Imagem",
"audioDetection": "Detecção de Áudio",
"autotracking": "Auto Rastreamento",
- "transcription": "Transcrição de Áudio"
+ "transcription": "Transcrição de Áudio",
+ "camera": "Câmera"
},
"history": {
"label": "Exibir gravação histórica"
diff --git a/web/public/locales/pt-BR/views/replay.json b/web/public/locales/pt-BR/views/replay.json
index 0967ef424b..58ccb6963e 100644
--- a/web/public/locales/pt-BR/views/replay.json
+++ b/web/public/locales/pt-BR/views/replay.json
@@ -1 +1,19 @@
-{}
+{
+ "title": "Depuração de Replay",
+ "description": "“Reproduza gravações de câmera para depuração. A lista de objetos exibe um resumo com atraso temporal, dos objetos detectados e a aba de mensagens mostra um fluxo de mensagens internas do Frigate provenientes da gravação reproduzida.",
+ "websocket_messages": "Mensagens",
+ "dialog": {
+ "title": "Iniciar Replay de Depuração",
+ "description": "Crie uma câmera de reprodução temporária que exiba imagens históricas em loop para depurar problemas de detecção e rastreamento de objetos. A câmera de reprodução terá a mesma configuração de detecção da câmera de origem. Escolha um intervalo de tempo para começar.",
+ "camera": "Câmera de origem",
+ "timeRange": "Intervalo de tempo",
+ "preset": {
+ "1m": "Último minuto",
+ "5m": "Últimos 5 minutos",
+ "timeline": "Da Linha do Tempo",
+ "custom": "Personalizada"
+ },
+ "startButton": "Iniciar Reprodução",
+ "selectFromTimeline": "Selecionar"
+ }
+}
diff --git a/web/public/locales/pt-BR/views/settings.json b/web/public/locales/pt-BR/views/settings.json
index c937906c41..00d86e28b1 100644
--- a/web/public/locales/pt-BR/views/settings.json
+++ b/web/public/locales/pt-BR/views/settings.json
@@ -15,7 +15,8 @@
"globalConfig": "Configuração Global - Frigate",
"cameraConfig": "Configuração da Câmera - Frigate",
"maintenance": "Manutenção - Frigate",
- "profiles": "Perfis - Frigate"
+ "profiles": "Perfis - Frigate",
+ "detectorsAndModel": "Detectores e modelo - Frigate"
},
"menu": {
"ui": "UI",
@@ -42,7 +43,42 @@
"globalFfmpeg": "FFmpeg",
"globalMotion": "Detecção de movimento",
"globalObjects": "Objetos",
- "globalReview": "Revisar"
+ "globalReview": "Revisar",
+ "globalSnapshots": "Instantâneos",
+ "globalAudioEvents": "Detecção de áudio",
+ "globalLivePlayback": "Reprodução ao vivo",
+ "globalTimestampStyle": "Estilo de carimbo de data/hora",
+ "systemDatabase": "Banco de dados",
+ "systemTls": "TLS",
+ "systemAuthentication": "Autenticação",
+ "systemNetworking": "Rede",
+ "systemProxy": "Proxy",
+ "systemUi": "IU",
+ "systemLogging": "Registro",
+ "systemEnvironmentVariables": "Variáveis de ambiente",
+ "systemTelemetry": "Telemetria",
+ "systemBirdseye": "Birdseye",
+ "systemFfmpeg": "FFmpeg",
+ "systemDetectorsAndModel": "Detectores e modelo",
+ "systemMqtt": "MQTT",
+ "systemGo2rtcStreams": "Fluxo de go2rtc",
+ "integrationSemanticSearch": "Busca semântica",
+ "integrationGenerativeAi": "IA generativa",
+ "integrationFaceRecognition": "Reconhecimento facial",
+ "integrationLpr": "Reconhecimento de placas",
+ "integrationObjectClassification": "Classificação de objetos",
+ "integrationAudioTranscription": "Transcrição de áudio",
+ "cameraDetect": "Detecção de objetos",
+ "cameraFfmpeg": "Fluxos (FFmpeg)",
+ "cameraRecording": "Gravação",
+ "cameraSnapshots": "Instantâneos",
+ "cameraMotion": "Detecção de movimento",
+ "cameraObjects": "Objetos",
+ "cameraConfigReview": "Análise",
+ "cameraAudioEvents": "Detecção de áudio",
+ "cameraAudioTranscription": "Transcrição de áudio",
+ "cameraNotifications": "Notificações",
+ "cameraLivePlayback": "Reprodução ao vivo"
},
"dialog": {
"unsavedChanges": {
@@ -930,6 +966,15 @@
"overriddenGlobal": "Substituir (Global)",
"overriddenGlobalTooltip": "Esta câmera substitui as configurações globais desta seção",
"overriddenBaseConfig": "Substituído (Configuração base)",
- "overriddenBaseConfigTooltip": "O perfil {{profile}} substitui as configurações desta seção"
+ "overriddenBaseConfigTooltip": "O perfil {{profile}} substitui as configurações desta seção",
+ "overriddenBaseConfigNoDeltas": "O perfil {{profile}} substitui esta seção, mas nenhum valor de campo difere da configuração base.",
+ "overriddenInCameras": {
+ "profilePrefix": "{{profile}} perfil: {{fields}}"
+ }
+ },
+ "menuDot": {
+ "overrideGlobal": "Esta seção substitui a configuração global",
+ "overrideProfile": "Esta seção é substituída pelo perfil {{profile}}",
+ "unsaved": "Esta seção contém alterações não salvas"
}
}
diff --git a/web/public/locales/pt/audio.json b/web/public/locales/pt/audio.json
index 3bf1ba60b4..e0a4f354f2 100644
--- a/web/public/locales/pt/audio.json
+++ b/web/public/locales/pt/audio.json
@@ -425,5 +425,76 @@
"chop": "Corte",
"eruption": "Erupção",
"environmental_noise": "Ruído Ambiental",
- "field_recording": "Gravação de Campo"
+ "field_recording": "Gravação de Campo",
+ "change_ringing": "Mudar Toque",
+ "shofar": "Berrante",
+ "liquid": "Líquido",
+ "splash": "Respingar",
+ "slosh": "Respingo",
+ "squish": "Esmagar",
+ "drip": "Pingar",
+ "pour": "Entornar",
+ "trickle": "Gotejar",
+ "gush": "Jorrar",
+ "fill": "Preencher",
+ "spray": "Borrifar",
+ "pump": "Bombear",
+ "stir": "Mexer",
+ "boiling": "A ferver",
+ "sonar": "Sonar",
+ "arrow": "Flecha",
+ "whoosh": "Uau",
+ "thump": "Baque",
+ "thunk": "Tombo",
+ "electronic_tuner": "Afinador Eletrônico",
+ "effects_unit": "Unidade de Efeitos",
+ "chorus_effect": "Efeito Coro",
+ "basketball_bounce": "Quique da bola",
+ "bang": "Batida",
+ "slap": "Tapa",
+ "whack": "Bater",
+ "smash": "Esmagar",
+ "breaking": "A quebrar",
+ "bouncing": "A quicar",
+ "whip": "Chicote",
+ "flap": "Guia",
+ "scratch": "Arranhão",
+ "scrape": "Raspagem",
+ "rub": "Esfregar",
+ "roll": "Rolar",
+ "crushing": "Esmagamento",
+ "crumpling": "Amarrotar",
+ "tearing": "A rasgar",
+ "beep": "Bip",
+ "ping": "Pingo",
+ "ding": "Campainha",
+ "clang": "Estridente",
+ "squeal": "Guincho",
+ "creak": "Ranger",
+ "rustle": "Farfalhar",
+ "whir": "Zumbir",
+ "clatter": "Barulho",
+ "sizzle": "Chiado",
+ "clicking": "A clicar",
+ "clickety_clack": "Tique-taque",
+ "rumble": "Estrondo",
+ "plop": "Ploft",
+ "hum": "Zumbir",
+ "boing": "Poin",
+ "crunch": "Mastigar",
+ "sine_wave": "Onda Senoidal",
+ "harmonic": "Harmonica",
+ "chirp_tone": "Som Agudo",
+ "pulse": "Pulso",
+ "inside": "Dentro",
+ "outside": "Fora",
+ "reverberation": "Reverberação",
+ "echo": "Eco",
+ "noise": "Ruído",
+ "mains_hum": "Zumbido Elétrico",
+ "distortion": "Distorção",
+ "sidetone": "Retorno de Voz",
+ "cacophony": "Cacofonia",
+ "throbbing": "Latejante",
+ "vibration": "Vibração"
}
diff --git a/web/public/locales/pt/common.json b/web/public/locales/pt/common.json
index 557d6b48d6..7e7e101454 100644
--- a/web/public/locales/pt/common.json
+++ b/web/public/locales/pt/common.json
@@ -90,7 +90,8 @@
},
"inProgress": "Em andamento",
"invalidStartTime": "Horário de início inválido",
- "invalidEndTime": "Horário de término inválido"
+ "invalidEndTime": "Horário de término inválido",
+ "never": "Nunca"
},
"unit": {
"speed": {
@@ -146,7 +147,19 @@
"next": "Seguinte",
"play": "Tocar",
"pictureInPicture": "Imagem sobre Imagem",
- "continue": "Continuar"
+ "continue": "Continuar",
+ "add": "Adicionar",
+ "applying": "A aplicar…",
+ "undo": "Desfazer",
+ "copiedToClipboard": "Copiado para a área de transferência",
+ "modified": "Modificado",
+ "overridden": "Substituído",
+ "resetToGlobal": "Redefinir para o Global",
+ "resetToDefault": "Redefinir para o Padrão",
+ "saveAll": "Gravar Tudo",
+ "savingAll": "A gravar tudo…",
+ "undoAll": "Desfazer Tudo",
+ "retry": "Tente novamente"
},
"label": {
"back": "Voltar",
@@ -154,7 +167,8 @@
"show": "Exibir {{item}}",
"ID": "ID",
"none": "Nenhum",
- "all": "Todos"
+ "all": "Todos",
+ "other": "Outros"
},
"menu": {
"user": {
@@ -226,7 +240,10 @@
"bg": "Búlgaro",
"gl": "Galego",
"id": "Indonésio Bahasa",
- "ur": "Urdu"
+ "ur": "Urdu",
+ "hr": "Hrvatski (Croata)",
+ "bs": "Bosanski (Bósnio)",
+ "zhHant": "繁體中文 (Chinês Tradicional)"
},
"appearance": "Aparência",
"darkMode": {
@@ -257,7 +274,11 @@
"explore": "Explorar",
"review": "Rever",
"uiPlayground": "Área de Testes da IU",
- "classification": "Classificação"
+ "classification": "Classificação",
+ "profiles": "Perfis",
+ "actions": "Ações",
+ "features": "Funcionalidades",
+ "chat": "Chat"
},
"pagination": {
"previous": {
@@ -284,7 +305,8 @@
"error": {
"noMessage": "Não foi possível guardar as alterações da configuração",
"title": "Não foi possível guardar as alterações da configuração: {{errorMessage}}"
- }
+ },
+ "success": "Alterações gravadas com sucesso."
}
},
"accessDenied": {
@@ -310,5 +332,10 @@
"field": {
"optional": "Opcional",
"internalID": "o Frigate utiliza o ID na configuração e no banco de dados"
+ },
+ "no_items": "Sem elementos",
+ "validation_errors": "Erros de validação",
+ "credentialField": {
+ "savedPlaceholder": "Gravado - deixar em branco para manter a atual"
}
}
diff --git a/web/public/locales/pt/components/camera.json b/web/public/locales/pt/components/camera.json
index 3f7052c817..53e2853231 100644
--- a/web/public/locales/pt/components/camera.json
+++ b/web/public/locales/pt/components/camera.json
@@ -68,7 +68,10 @@
"stream": "Transmissão"
},
"birdseye": "Vista Aérea"
- }
+ },
+ "showAll": "Mostrar todos os Grupos de Câmeras",
+ "showLess": "Mostrar Menos",
+ "editGroups": "Editar Grupos de Câmeras"
},
"debug": {
"options": {
@@ -82,6 +85,7 @@
"zones": "Zonas",
"mask": "Máscara",
"motion": "Movimento",
- "regions": "Regiões"
+ "regions": "Regiões",
+ "paths": "Caminhos"
}
}
diff --git a/web/public/locales/pt/components/dialog.json b/web/public/locales/pt/components/dialog.json
index 2efa3d2b5f..966c9532e2 100644
--- a/web/public/locales/pt/components/dialog.json
+++ b/web/public/locales/pt/components/dialog.json
@@ -36,6 +36,9 @@
"ask_a": "Este objeto é um {{label}}?",
"ask_an": "Este objeto é um {{label}}?",
"ask_full": "Este objeto é um {{untranslatedLabel}} ({{translatedLabel}})?"
+ },
+ "toast": {
+ "error": "Não foi possível submeter para Frigate+. Por favor verifique a sua connecção e tente novamente."
}
}
},
@@ -76,6 +79,13 @@
"select": "Selecionar",
"name": {
"placeholder": "Nome da Exportação"
+ },
+ "case": {
+ "newCaseOption": "Criar um novo caso",
+ "newCaseNamePlaceholder": "Nome do novo caso"
+ },
+ "multiCamera": {
+ "selectFromTimeline": "Selecionar da Timeline"
}
},
"streaming": {
diff --git a/web/public/locales/pt/views/settings.json b/web/public/locales/pt/views/settings.json
index 1bab92d786..e5229ebe05 100644
--- a/web/public/locales/pt/views/settings.json
+++ b/web/public/locales/pt/views/settings.json
@@ -28,7 +28,8 @@
"triggers": "Gatilhos",
"cameraManagement": "Gestão",
"cameraReview": "Rever",
- "roles": "Papéis"
+ "roles": "Papéis",
+ "profiles": "Perfis"
},
"dialog": {
"unsavedChanges": {
diff --git a/web/public/locales/ro/config/cameras.json b/web/public/locales/ro/config/cameras.json
index 9a79c555d8..7c68458241 100644
--- a/web/public/locales/ro/config/cameras.json
+++ b/web/public/locales/ro/config/cameras.json
@@ -29,7 +29,7 @@
},
"listen": {
"label": "Tipuri ascultate",
- "description": "Lista de evenimente audio de detectat (ex: lătrat, alarmă_incendiu, țipăt, vorbire)."
+ "description": "Lista de evenimente audio de detectat (ex: lătrat, alarmă_incendiu, vorbire)."
},
"filters": {
"label": "Filtre audio",
@@ -152,11 +152,11 @@
}
},
"ffmpeg": {
- "label": "FFmpeg",
- "description": "Setări FFmpeg: cale binar, argumente, accelerare hardware și ieșiri per rol.",
+ "label": "Stream-uri (FFmpeg)",
+ "description": "Intrările stream-ului camerei și opțiunile FFmpeg, inclusiv calea către binar, argumentele, hwaccel și argumentele de ieșire per rol.",
"path": {
"label": "Cale FFmpeg",
- "description": "Calea către binarul FFmpeg sau un alias de versiune (\"5.0\" sau \"7.0\")."
+ "description": "Calea către binarul FFmpeg sau un alias de versiune (\"7.0\" sau \"8.0\")."
},
"global_args": {
"label": "Argumente globale FFmpeg",
diff --git a/web/public/locales/ro/config/global.json b/web/public/locales/ro/config/global.json
index 40d2135cb8..1dca8a48ae 100644
--- a/web/public/locales/ro/config/global.json
+++ b/web/public/locales/ro/config/global.json
@@ -15,7 +15,7 @@
},
"listen": {
"label": "Tipuri ascultate",
- "description": "Lista de evenimente audio de detectat (ex: lătrat, alarmă_incendiu, țipăt, vorbire)."
+ "description": "Lista de evenimente audio de detectat (ex: lătrat, alarmă_incendiu, vorbire)."
},
"filters": {
"label": "Filtre audio",
@@ -220,7 +220,7 @@
"description": "Setări FFmpeg: cale binar, argumente, accelerare hardware și ieșiri per rol.",
"path": {
"label": "Cale FFmpeg",
- "description": "Calea către binarul FFmpeg sau un alias de versiune (\"5.0\" sau \"7.0\")."
+ "description": "Calea către binarul FFmpeg sau un alias de versiune (\"7.0\" sau \"8.0\")."
},
"global_args": {
"label": "Argumente globale FFmpeg",
diff --git a/web/public/locales/ro/views/settings.json b/web/public/locales/ro/views/settings.json
index b08b2f26da..c47c028377 100644
--- a/web/public/locales/ro/views/settings.json
+++ b/web/public/locales/ro/views/settings.json
@@ -69,7 +69,7 @@
"integrationObjectClassification": "Clasificare obiecte",
"integrationAudioTranscription": "Transcriere audio",
"cameraDetect": "Detecție obiecte",
- "cameraFfmpeg": "FFmpeg",
+ "cameraFfmpeg": "Stream-uri (FFmpeg)",
"cameraRecording": "Înregistrare",
"cameraSnapshots": "Snapshot-uri",
"cameraMotion": "Detecție mișcare",
@@ -1691,7 +1691,17 @@
}
},
"cameraInputs": {
- "itemTitle": "Stream-ul {{index}}"
+ "itemTitle": "Stream-ul {{index}}",
+ "sourceMode": {
+ "restream": "Restream (go2rtc)",
+ "manual": "Cale de intrare manuală",
+ "go2rtcStreamLabel": "Stream go2rtc",
+ "go2rtcStreamPlaceholder": "Selectează un stream go2rtc",
+ "noGo2rtcStreams": "Niciun stream go2rtc configurat",
+ "availableStreams": "Stream-uri disponibile",
+ "go2rtcStreamSearch": "Caută stream-uri...",
+ "noMatchingStreams": "Niciun stream corespunzător"
+ }
},
"restartRequiredField": "Necesită repornire",
"restartRequiredFooter": "Configurația a fost modificată - Necesită repornire",
@@ -2085,6 +2095,9 @@
},
"onvif": {
"autotrackingNoZones": "Autotracking-ul necesită cel puțin o zonă. Definește o zonă pentru această cameră în Măști / Zone, apoi seteaz-o ca zonă obligatorie mai jos."
+ },
+ "ffmpeg": {
+ "hwaccelManualNotRecommended": "Argumentele manuale pentru accelerarea hardware nu sunt recomandate. Dacă nu există o cerință specifică, selectează presetarea care se potrivește cu hardware-ul tău."
}
},
"birdseye": {
diff --git a/web/public/locales/ro/views/system.json b/web/public/locales/ro/views/system.json
index 59f52e08c4..7c0f6342f5 100644
--- a/web/public/locales/ro/views/system.json
+++ b/web/public/locales/ro/views/system.json
@@ -201,7 +201,22 @@
"title": "Info Sondă Cameră"
},
"fps": "FPS:",
- "unknown": "Necunoscut"
+ "unknown": "Necunoscut",
+ "keyframes": {
+ "title": "Analiză keyframe",
+ "analyzing": "Se analizează keyframe-urile... {{seconds}} secunde rămase",
+ "stillAnalyzing": "Încă se analizează keyframe-urile...",
+ "keyframeCount": "Keyframe-uri observate:",
+ "recordStream": "Stream de înregistrare:",
+ "observedDuration": "Durată observată:",
+ "gap": "Interval keyframe (min / med / max):",
+ "ok": "Keyframe-uri la fiecare ~{{seconds}}s, bune pentru înregistrare și redare.",
+ "segmentLength": "Lungime segment de înregistrare:",
+ "warning": "Keyframe-uri rare sau variabile (cel mai lung interval ~{{seconds}}s), probabil un codec smart (H.264+/H.265+), acest lucru nu este recomandat.",
+ "error": "Intervalul keyframe (~{{seconds}}s) depășește lungimea segmentului de înregistrare ({{segmentTime}}s). Unele segmente pot să nu aibă niciun keyframe, ceea ce întrerupe redarea. Dezactivează codecul smart/+ de pe cameră sau scurtează intervalul keyframe.",
+ "unknown": "Nu s-a putut determina distanțarea keyframe-urilor.",
+ "recordDisabled": "Înregistrarea este dezactivată pentru această cameră."
+ }
},
"label": {
"capture": "captură",
diff --git a/web/public/locales/ru/common.json b/web/public/locales/ru/common.json
index db9390ed80..5e27bc19e6 100644
--- a/web/public/locales/ru/common.json
+++ b/web/public/locales/ru/common.json
@@ -130,7 +130,19 @@
"export": "Экспортировать",
"deleteNow": "Удалить сейчас",
"next": "Следующий",
- "continue": "Продолжить"
+ "continue": "Продолжить",
+ "add": "Добавить",
+ "applying": "Применяется…",
+ "undo": "Отменить",
+ "copiedToClipboard": "Скопировано в буфер обмена",
+ "saveAll": "Сохранить все",
+ "savingAll": "Сохранение всего…",
+ "undoAll": "Откатить всё",
+ "retry": "Повторить",
+ "modified": "Изменено",
+ "overridden": "Переопределено",
+ "resetToGlobal": "Сброс к Глобальному значению",
+ "resetToDefault": "Сброс к значению по умолчанию"
},
"label": {
"back": "Вернуться",
@@ -169,7 +181,7 @@
"languages": "Языки",
"language": {
"en": "English (Английский)",
- "zhCN": "简体中文 (Упрощённый китайский)",
+ "zhCN": "简体中文 (Упрощённый Китайский)",
"es": "Español (Испанский)",
"hi": "हिन्दी (Хинди)",
"fr": "Français (Французский)",
@@ -209,7 +221,10 @@
"bg": "Български (Болгарский)",
"gl": "Galego (Галисийский)",
"id": "Bahasa Indonesia (Индонезийский)",
- "ur": "اردو (Урду)"
+ "ur": "اردو (Урду)",
+ "zhHant": "繁體中文 (Традиционный Китайский)",
+ "hr": "Hrvatski (Хорватский)",
+ "bs": "Bosanski (Боснийский)"
},
"darkMode": {
"withSystem": {
@@ -261,7 +276,10 @@
},
"appearance": "Внешний вид",
"classification": "Распознование",
- "profiles": "Профили"
+ "profiles": "Профили",
+ "chat": "Чат",
+ "actions": "Действия",
+ "features": "Функции"
},
"pagination": {
"label": "пагинация",
@@ -292,7 +310,8 @@
"noMessage": "Не удалось сохранить изменения конфигурации",
"title": "Не удалось сохранить изменения конфигурации: {{errorMessage}}"
},
- "title": "Сохранить"
+ "title": "Сохранить",
+ "success": "Изменения конфигурации сохранены успешно."
}
},
"role": {
@@ -313,5 +332,10 @@
"field": {
"optional": "Необязательный",
"internalID": "Внутренний идентификатор Frigate, используемый в конфигурации и базе данных"
+ },
+ "validation_errors": "Ошибки Валидации",
+ "no_items": "Нет элементов",
+ "credentialField": {
+ "savedPlaceholder": "Сохранено — оставьте пустым, чтобы сохранить текущее значение"
}
}
diff --git a/web/public/locales/ru/components/camera.json b/web/public/locales/ru/components/camera.json
index 8a8c1a4922..3ff007c1f3 100644
--- a/web/public/locales/ru/components/camera.json
+++ b/web/public/locales/ru/components/camera.json
@@ -2,7 +2,7 @@
"group": {
"label": "Группы камер",
"add": "Добавить группу камер",
- "edit": "Редактирование группы камер",
+ "edit": "Редактировать группу камер",
"delete": {
"label": "Удалить группу камер",
"confirm": {
@@ -68,7 +68,10 @@
"placeholder": "Выбрать поток"
},
"birdseye": "Birdseye"
- }
+ },
+ "showAll": "Показать все группы камер",
+ "showLess": "Показать меньше",
+ "editGroups": "Редактировать группы камер"
},
"debug": {
"options": {
@@ -82,6 +85,7 @@
"zones": "Зоны",
"mask": "Маска",
"motion": "Движение",
- "regions": "Регионы"
+ "regions": "Регионы",
+ "paths": "Пути"
}
}
diff --git a/web/public/locales/ru/components/dialog.json b/web/public/locales/ru/components/dialog.json
index 562e8bc088..787fa1b3f1 100644
--- a/web/public/locales/ru/components/dialog.json
+++ b/web/public/locales/ru/components/dialog.json
@@ -36,6 +36,9 @@
"label": "Подтвердить эту метку для Frigate Plus",
"ask_a": "Это объект — {{label}}?",
"ask_full": "Это объект — {{untranslatedLabel}} ({{translatedLabel}})?"
+ },
+ "toast": {
+ "error": "Не удалось подключиться к Frigate+. Пожалуйста, проверьте настройки сети и попробуйте еще раз."
}
}
},
@@ -72,7 +75,16 @@
"noVaildTimeSelected": "Не выбран допустимый временной диапазон",
"endTimeMustAfterStartTime": "Время окончания должно быть после времени начала"
},
- "view": "Просмотр"
+ "view": "Просмотр",
+ "queued": "Экспорт поставлен в очередь. Следите за ходом выполнения на странице экспорта.",
+ "batchSuccess_one": "Начат {{count}} экспорт. Открываем случай.",
+ "batchSuccess_few": "Начато {{count}} экспорта. Открываем случай.",
+ "batchSuccess_many": "Начато {{count}} экспортов. Открываем случай.",
+ "batchPartial": "Начато {{successful}} из {{total}} экспортов. Неудавшиеся камеры: {{failedCameras}}",
+ "batchFailed": "Неудавшихся экспортов: {{total}}. Неудавшиеся камеры: {{failedCameras}}",
+ "batchQueuedSuccess_one": "1 экспорт поставлен в очередь. Открываем случай.",
+ "batchQueuedSuccess_few": "{{count}} экспорта поставлено в очередь. Открываем случай.",
+ "batchQueuedSuccess_many": "{{count}} экспортов поставлены в очередь. Открываем случай."
},
"fromTimeline": {
"saveExport": "Сохранить экспорт",
@@ -80,7 +92,34 @@
},
"case": {
"label": "Случай",
- "placeholder": "Выберите случай"
+ "placeholder": "Выберите случай",
+ "newCaseOption": "Создайте новый случай",
+ "newCaseNamePlaceholder": "Имя нового случая",
+ "newCaseDescriptionPlaceholder": "Описание Случая",
+ "nonAdminHelp": "Для этих экспортов будет создан новый случай."
+ },
+ "queueing": "Помещаем Экспорт в очередь...",
+ "tabs": {
+ "export": "Одиночная Камера",
+ "multiCamera": "Мульти-Камера"
+ },
+ "multiCamera": {
+ "timeRange": "Временной промежуток",
+ "selectFromTimeline": "Выбрать на таймлайне",
+ "cameraSelection": "Камеры",
+ "cameraSelectionHelp": "Камеры с отслеживаемыми объектами в этом временном диапазоне выбраны заранее",
+ "searchOrSelectGroup": "Найдите или выберите группу камер...",
+ "selectAll": "Выберите все камеры",
+ "clearSelection": "Очистить выбор",
+ "selectWithActivity": "Камеры с отслеживаемыми объектами",
+ "selectGroup": "Выбрать группу",
+ "noMatchingCameras": "Камеры по вашему запросу не найдены",
+ "selectedCount": "{{selected}} / {{total}} выбрано",
+ "checkingActivity": "Проверка доступности камеры...",
+ "noCameras": "Нет доступных камер",
+ "detectionCount_one": "{{count}} отслеживаемый объект",
+ "detectionCount_few": "{{count}} отслеживаемых объекта",
+ "detectionCount_many": "{{count}} отслеживаемых объектов"
}
},
"streaming": {
diff --git a/web/public/locales/ru/views/settings.json b/web/public/locales/ru/views/settings.json
index 8eb69ecc43..cee2a74993 100644
--- a/web/public/locales/ru/views/settings.json
+++ b/web/public/locales/ru/views/settings.json
@@ -16,7 +16,8 @@
"globalConfig": "Глобальная конфигурация - Frigate",
"cameraConfig": "Настройки камеры - Frigate",
"maintenance": "Обслуживание - Frigate",
- "profiles": "Профили - Frigate"
+ "profiles": "Профили - Frigate",
+ "detectorsAndModel": "Обнаружения и модель - Frigate"
},
"menu": {
"cameras": "Настройки камеры",
@@ -39,7 +40,37 @@
"integrations": "Интеграции",
"uiSettings": "Настройки интерфейса",
"profiles": "Профили",
- "globalDetect": "Обнаружение объектов"
+ "globalDetect": "Обнаружение объектов",
+ "globalReview": "Обзор событий",
+ "globalAudioEvents": "Обнаружение аудио",
+ "systemAuthentication": "Аутентификация",
+ "systemNetworking": "Сеть",
+ "systemProxy": "Прокси",
+ "systemUi": "Интерфейс",
+ "systemLogging": "Логирование",
+ "systemEnvironmentVariables": "Переменные окружения",
+ "systemTelemetry": "Телеметрия",
+ "systemBirdseye": "Режим Birdseye",
+ "systemFfmpeg": "FFmpeg",
+ "systemDetectorsAndModel": "Детекторы и модель",
+ "systemMqtt": "MQTT",
+ "systemGo2rtcStreams": "потоки go2rtc",
+ "integrationSemanticSearch": "Семантический поиск",
+ "integrationGenerativeAi": "Генеративный ИИ",
+ "integrationFaceRecognition": "Распознавание лиц",
+ "integrationLpr": "Распознавание номерных знаков",
+ "integrationObjectClassification": "Классификация объектов",
+ "integrationAudioTranscription": "Расшифровка аудиозаписи",
+ "cameraDetect": "Обнаружение объектов",
+ "cameraFfmpeg": "Потоки (FFmpeg)",
+ "cameraRecording": "Запись",
+ "cameraSnapshots": "Снимки",
+ "cameraMotion": "Обнаружение движения",
+ "cameraObjects": "Объекты",
+ "cameraConfigReview": "Обзор событий",
+ "cameraAudioEvents": "Обнаружение аудио",
+ "cameraAudioTranscription": "Расшифровка аудиозаписи",
+ "cameraNotifications": "Уведомления"
},
"dialog": {
"unsavedChanges": {
@@ -1201,7 +1232,28 @@
"backToSettings": "Вернуться к настройкам камеры",
"streams": {
"title": "Включить / Отключить камеры",
- "desc": "Временно отключить камеру до перезапуска Frigate. Отключение камеры полностью останавливает обработку потоков этой камеры в Frigate. Обнаружение, запись и отладка будут недоступны.
Примечание: Это не отключает рестриминг go2rtc."
+ "desc": "Временно отключить камеру до перезапуска Frigate. Отключение камеры полностью останавливает обработку потоков этой камеры в Frigate. Обнаружение, запись и отладка будут недоступны.
Примечание: Это не отключает рестриминг go2rtc.",
+ "label": "Состояние камеры",
+ "status": {
+ "disabled": "Отключено"
+ },
+ "enableSuccess": "Включена {{cameraName}}. Перезапустите Frigate для применения изменений.",
+ "disableSuccess": "Отключено {{cameraName}} и сохранено в конфигурации.",
+ "reorderHandle": "Перетяните для изменения порядка",
+ "saving": "Сохранение…",
+ "saved": "Сохранено",
+ "details": {
+ "edit": "Редактировать детали камеры",
+ "title": "Редактировать детали камеры",
+ "description": "Обновите отображаемое имя, внешний URL и видимость для этой камеры в пользовательском интерфейсе Frigate.",
+ "friendlyNameLabel": "Отображаемое Имя",
+ "friendlyNameHelp": "Дружественное имя, которое отображается для этой камеры в пользовательском интерфейсе Frigate. Оставьте пустым для использования идентификатора камеры.",
+ "webuiUrlLabel": "Ссылка на Web интерфейс камеры",
+ "webuiUrlHelp": "URL-адрес для посещения веб-UI камеры непосредственно с отладочного меню. Оставьте пустым, чтобы отключить ссылку.",
+ "webuiUrlInvalid": "Должен быть действительный URL (например, https://example.com).",
+ "dashboardLabel": "Показывать на Live dashboard",
+ "dashboardHelp": "Показывать эту камеру на Live dashboard."
+ }
},
"cameraConfig": {
"add": "Добавить камеру",
@@ -1231,6 +1283,11 @@
"toast": {
"success": "Камера {{cameraName}} успешно сохранена"
}
+ },
+ "deleteCameraDialog": {
+ "confirmWarning": "Удаление {{cameraName}} не может быть отменено.",
+ "success": "Камера {{cameraName}} успешно удалена",
+ "error": "Не удалось удалить камеру {{cameraName}}"
}
},
"cameraReview": {
diff --git a/web/public/locales/sk/common.json b/web/public/locales/sk/common.json
index 2a23946763..f78c9109e7 100644
--- a/web/public/locales/sk/common.json
+++ b/web/public/locales/sk/common.json
@@ -98,7 +98,7 @@
"kbps": "kB/s",
"mbps": "MB/s",
"gbps": "GB/s",
- "kbph": "kb/hour",
+ "kbph": "kb/hodina",
"mbph": "MB/hodinu",
"gbph": "GB/hodinu"
}
@@ -149,7 +149,16 @@
"unsuspended": "Zrušte pozastavenie",
"play": "Hrať",
"unselect": "Zrušte výber",
- "continue": "Pokračovať"
+ "continue": "Pokračovať",
+ "copiedToClipboard": "Skopírované do schránky",
+ "modified": "Upravené",
+ "overridden": "Prepísané",
+ "resetToGlobal": "Obnoviť na globálne",
+ "resetToDefault": "Obnoviť predvolené",
+ "saveAll": "Uložiť všetko",
+ "savingAll": "Ukladá sa všetko…",
+ "undoAll": "Vrátiť späť všetko",
+ "retry": "Skúste to znova"
},
"menu": {
"system": "Systém",
@@ -252,7 +261,11 @@
},
"review": "Recenzia",
"explore": "Preskúmať",
- "classification": "Klasifikácia"
+ "classification": "Klasifikácia",
+ "profiles": "Profily",
+ "actions": "Akcie",
+ "features": "Vlastnosti",
+ "chat": "Chat"
},
"toast": {
"copyUrlToClipboard": "Adresa URL bola skopírovaná do schránky.",
@@ -261,7 +274,8 @@
"error": {
"title": "Chyba pri ukladaní zmien konfigurácie: {{errorMessage}}",
"noMessage": "Chyba pri ukladaní zmien konfigurácie"
- }
+ },
+ "success": "Zmeny konfigurácie boli úspešne uložené."
}
},
"role": {
@@ -303,5 +317,10 @@
"field": {
"optional": "Voliteľné",
"internalID": "Interné ID Frigate používa v konfigurácii a databáze"
+ },
+ "no_items": "Žiadne položky",
+ "validation_errors": "Chyby overenia",
+ "credentialField": {
+ "savedPlaceholder": "Uložené – pre aktuálne informácie nechajte prázdne"
}
}
diff --git a/web/public/locales/sk/components/camera.json b/web/public/locales/sk/components/camera.json
index e2245bd071..0048c19e91 100644
--- a/web/public/locales/sk/components/camera.json
+++ b/web/public/locales/sk/components/camera.json
@@ -68,7 +68,10 @@
}
},
"birdseye": "Vtáčie oko"
- }
+ },
+ "showAll": "Zobraziť všetky skupiny kamier",
+ "showLess": "Zobraziť menej",
+ "editGroups": "Upraviť skupiny kamier"
},
"debug": {
"options": {
diff --git a/web/public/locales/sk/components/dialog.json b/web/public/locales/sk/components/dialog.json
index 6904bc0d24..6eab29150d 100644
--- a/web/public/locales/sk/components/dialog.json
+++ b/web/public/locales/sk/components/dialog.json
@@ -6,7 +6,8 @@
"title": "Frigate sa reštartuje",
"content": "Táto stránka bude obnovená o {{countdown}} sekúnd.",
"button": "Vynútiť opätovné načítanie teraz"
- }
+ },
+ "description": "Počas reštartu bude Frigate nakrátko zastavený."
},
"explore": {
"plus": {
@@ -64,6 +65,25 @@
"fromTimeline": {
"saveExport": "Uložiť Export",
"previewExport": "Export ukážky"
+ },
+ "case": {
+ "newCaseOption": "Vytvoriť nový prípad",
+ "newCaseNamePlaceholder": "Názov nového prípadu",
+ "newCaseDescriptionPlaceholder": "Popis prípadu",
+ "label": "Prípad",
+ "nonAdminHelp": "Pre tieto exporty bude vytvorený nový prípad.",
+ "placeholder": "Vyberte prípad"
+ },
+ "queueing": "Zaradenie exportu do frontu...",
+ "tabs": {
+ "export": "Jedna kamera",
+ "multiCamera": "Viac kamier"
+ },
+ "multiCamera": {
+ "cameraSelection": "Kamery",
+ "cameraSelectionHelp": "Kamery so sledovanými objektmi v tomto časovom rozsahu sú vopred vybrané",
+ "checkingActivity": "Kontrola aktivity kamery...",
+ "noCameras": "Nie sú k dispozícii žiadne kamery"
}
},
"streaming": {
diff --git a/web/public/locales/sk/config/cameras.json b/web/public/locales/sk/config/cameras.json
index 0967ef424b..f6bfc32594 100644
--- a/web/public/locales/sk/config/cameras.json
+++ b/web/public/locales/sk/config/cameras.json
@@ -1 +1,26 @@
-{}
+{
+ "birdseye": {
+ "order": {
+ "label": "Pozícia",
+ "description": "Číselná pozícia ovládajúca poradie kamery v rozložení Birdseye."
+ }
+ },
+ "detect": {
+ "label": "Detekcia objektov",
+ "enabled": {
+ "label": "Povoliť detekciu objektov"
+ }
+ },
+ "ffmpeg": {
+ "output_args": {
+ "detect": {
+ "label": "Zistiť výstupné argumenty",
+ "description": "Predvolené výstupné argumenty pre detekciu streamov rolí."
+ },
+ "record": {
+ "label": "Zaznamenajte výstupné argumenty",
+ "description": "Predvolené výstupné argumenty pre streamy rolí záznamov."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/sk/config/global.json b/web/public/locales/sk/config/global.json
index 0967ef424b..f6bfc32594 100644
--- a/web/public/locales/sk/config/global.json
+++ b/web/public/locales/sk/config/global.json
@@ -1 +1,26 @@
-{}
+{
+ "birdseye": {
+ "order": {
+ "label": "Pozícia",
+ "description": "Číselná pozícia ovládajúca poradie kamery v rozložení Birdseye."
+ }
+ },
+ "detect": {
+ "label": "Detekcia objektov",
+ "enabled": {
+ "label": "Povoliť detekciu objektov"
+ }
+ },
+ "ffmpeg": {
+ "output_args": {
+ "detect": {
+ "label": "Zistiť výstupné argumenty",
+ "description": "Predvolené výstupné argumenty pre detekciu streamov rolí."
+ },
+ "record": {
+ "label": "Zaznamenajte výstupné argumenty",
+ "description": "Predvolené výstupné argumenty pre streamy rolí záznamov."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/sk/views/classificationModel.json b/web/public/locales/sk/views/classificationModel.json
index 7b5c0e59c8..8075240248 100644
--- a/web/public/locales/sk/views/classificationModel.json
+++ b/web/public/locales/sk/views/classificationModel.json
@@ -58,7 +58,7 @@
},
"renameCategory": {
"title": "Premenovať Triedu",
- "desc": "Zadajte nový názov pre {{name}}. Budete musieť model pretrénovať, aby sa zmena názvu prejavila."
+ "desc": "Zadajte nové meno pre {{name}}. Budete musieť model pretrénovať, aby sa zmena názvu prejavila."
},
"description": {
"invalidName": "Neplatné meno. Mená môžu obsahovať iba písmená, čísla, medzery, apostrofy, podčiarkovníky a spojovníky."
diff --git a/web/public/locales/sk/views/settings.json b/web/public/locales/sk/views/settings.json
index 6a451dc5ff..dbb8faf98a 100644
--- a/web/public/locales/sk/views/settings.json
+++ b/web/public/locales/sk/views/settings.json
@@ -18,7 +18,7 @@
"enrichments": "Obohatenia",
"cameras": "Nastavenia kamier",
"masksAndZones": "Masky / Zóny",
- "motionTuner": "Ladič detekcie pohybu",
+ "motionTuner": "Ladenie detekcie pohybu",
"debug": "Ladenie",
"users": "Uživatelia",
"notifications": "Notifikacie",
@@ -26,7 +26,8 @@
"triggers": "Spúšťače",
"roles": "Roly",
"cameraManagement": "Manažment",
- "cameraReview": "Recenzia"
+ "cameraReview": "Recenzia",
+ "profiles": "Profily"
},
"dialog": {
"unsavedChanges": {
diff --git a/web/public/locales/sv/common.json b/web/public/locales/sv/common.json
index d3f916b931..458cb287d9 100644
--- a/web/public/locales/sv/common.json
+++ b/web/public/locales/sv/common.json
@@ -119,7 +119,14 @@
"applying": "Verkställer…",
"undo": "Ångra",
"copiedToClipboard": "Kopieras till urklipp",
- "modified": "Modifiera"
+ "modified": "Modifiera",
+ "overridden": "Åsidosatt",
+ "resetToGlobal": "Återställ till Global",
+ "resetToDefault": "Återställ till standard",
+ "saveAll": "Spara alla",
+ "savingAll": "Sparar alla…",
+ "retry": "Försök igen",
+ "undoAll": "Ångra alla"
},
"menu": {
"language": {
@@ -165,7 +172,9 @@
"gl": "Galego (Galiciska)",
"id": "Bahasa Indonesia (Indonesiska)",
"ur": "اردو (Urdu)",
- "hr": "Hrvatski (kroatiska)"
+ "hr": "Hrvatski (kroatiska)",
+ "zhHant": "繁體中文 (Traditionell kinesisk)",
+ "bs": "Bosanski (Bosniska)"
},
"darkMode": {
"withSystem": {
@@ -221,7 +230,11 @@
"configurationEditor": "Konfigurationsredigerare",
"withSystem": "System",
"appearance": "Utseende",
- "classification": "Klassificering"
+ "classification": "Klassificering",
+ "profiles": "Profiler",
+ "actions": "Åtgärder",
+ "features": "Funktioner",
+ "chat": "Chatt"
},
"pagination": {
"next": {
@@ -257,7 +270,8 @@
"error": {
"title": "Misslyckades med att spara konfigurationsändringar: {{errorMessage}}",
"noMessage": "Misslyckades med att spara konfigurationsändringar"
- }
+ },
+ "success": "Konfigurationsändringarna har sparats."
},
"copyUrlToClipboard": "Webbadressen har kopierats till urklipp."
},
@@ -301,5 +315,10 @@
"field": {
"optional": "Valfritt",
"internalID": "Det interna ID som Frigate använder i konfigurationen och databasen"
+ },
+ "no_items": "Inga artiklar",
+ "validation_errors": "Valideringsfel",
+ "credentialField": {
+ "savedPlaceholder": "Sparad — lämna tomt för att hålla dig aktuell"
}
}
diff --git a/web/public/locales/sv/components/camera.json b/web/public/locales/sv/components/camera.json
index 75fc11f82a..85996ef221 100644
--- a/web/public/locales/sv/components/camera.json
+++ b/web/public/locales/sv/components/camera.json
@@ -68,7 +68,10 @@
"cameras": {
"desc": "Välj kameror för denna guppen.",
"label": "Kameror"
- }
+ },
+ "showAll": "Visa alla kameragrupper",
+ "showLess": "Visa mindre",
+ "editGroups": "Redigera kameragrupper"
},
"debug": {
"options": {
@@ -82,6 +85,7 @@
"zones": "Zoner",
"mask": "Maskera",
"motion": "Rörelse",
- "regions": "Regioner"
+ "regions": "Regioner",
+ "paths": "Vägar"
}
}
diff --git a/web/public/locales/sv/components/dialog.json b/web/public/locales/sv/components/dialog.json
index d77e76a75b..5fc3794bd9 100644
--- a/web/public/locales/sv/components/dialog.json
+++ b/web/public/locales/sv/components/dialog.json
@@ -50,20 +50,81 @@
"placeholder": "Ge exporten ett namn"
},
"select": "Välj",
- "export": "Eksport",
+ "export": "Export",
"selectOrExport": "Välj eller exportera",
"toast": {
"success": "Exporten har startats. Visa filen på exportsidan.",
"error": {
- "failed": "Misslyckades med att starta exporten: {{error}}",
+ "failed": "Misslyckades med att köa exporten: {{error}}",
"endTimeMustAfterStartTime": "Sluttiden måste vara efter starttiden",
"noVaildTimeSelected": "Inget giltigt tidsintervall valt"
},
- "view": "Visa"
+ "view": "Visa",
+ "queued": "Exporten är i kö. Se förloppet på exportsidan.",
+ "batchSuccess_one": "Startade 1 export. Öppnar ärendet nu.",
+ "batchSuccess_other": "Startade {{count}} exporter. Öppnar ärendet nu.",
+ "batchPartial": "Startade {{successful}} av {{total}} exporter. Misslyckade kameror: {{failedCameras}}",
+ "batchFailed": "Misslyckades med att starta export av {{total}}. Kameror som inte fungerade: {{failedCameras}}",
+ "batchQueuedSuccess_one": "1 export har köats. Ärendet öppnas nu.",
+ "batchQueuedSuccess_other": "{{count}} exporter har köats. Öppnar ärendet nu.",
+ "batchQueuedPartial": "Köade {{successful}} av {{total}} exporter. Misslyckade kameror: {{failedCameras}}",
+ "batchQueueFailed": "Misslyckades med att köa {{total}} exporter. Felaktiga kameror: {{failedCameras}}"
},
"fromTimeline": {
"saveExport": "Spara export",
- "previewExport": "Förhandsgranska export"
+ "previewExport": "Förhandsgranska export",
+ "queueingExport": "Export i kö...",
+ "useThisRange": "Använd detta intervall"
+ },
+ "case": {
+ "newCaseOption": "Skapa nytt ärende",
+ "newCaseNamePlaceholder": "Nytt ärende namn",
+ "newCaseDescriptionPlaceholder": "Ärende beskrivning",
+ "label": "Ärende",
+ "nonAdminHelp": "Ett nytt ärende kommer att skapas för dessa exporter.",
+ "placeholder": "Välj ett ärende"
+ },
+ "queueing": "Export i kö...",
+ "tabs": {
+ "export": "Enskild kamera",
+ "multiCamera": "Flerkameror"
+ },
+ "multiCamera": {
+ "timeRange": "Tidsintervall",
+ "selectFromTimeline": "Välj från tidslinjen",
+ "cameraSelection": "Kameror",
+ "cameraSelectionHelp": "Kameror med spårade objekt inom detta tidsintervall är förvalda",
+ "checkingActivity": "Kontrollerar kameraaktivitet...",
+ "noCameras": "Inga kameror tillgängliga",
+ "detectionCount_one": "1 spårat objekt",
+ "detectionCount_other": "{{count}} spårade objekt",
+ "nameLabel": "Exportnamn",
+ "namePlaceholder": "Valfritt basnamn för dessa exporter",
+ "queueingButton": "Köar exporter...",
+ "exportButton_one": "Exportera 1 kamera",
+ "exportButton_other": "Exportera {{count}} kameror",
+ "selectAll": "Välj alla kameror",
+ "selectWithActivity": "Kameror med spårade objekt",
+ "selectGroup": "Välj grupp",
+ "noMatchingCameras": "Ingen kamera matchar din sökning"
+ },
+ "multi": {
+ "title_one": "Exportera 1 recension",
+ "title_other": "Exportera {{count}} recensioner",
+ "description": "Exportera varje vald recension. Alla exporter grupperas under ett enda ärende.",
+ "descriptionNoCase": "Exportera varje vald recension.",
+ "caseNamePlaceholder": "Granska export - {{date}}",
+ "exportButton_one": "Exportera 1 recension",
+ "exportButton_other": "Exportera {{count}} recensioner",
+ "exportingButton": "Exporterar...",
+ "toast": {
+ "started_one": "Startade 1 export. Öppnar ärendet nu.",
+ "started_other": "Startade {{count}} exporter. Öppnar ärendet nu.",
+ "startedNoCase_one": "Startade 1 export.",
+ "startedNoCase_other": "Startade {{count}} exporter.",
+ "partial": "Startade {{successful}} av {{total}} exporter. Misslyckades: {{failedItems}}",
+ "failed": "Misslyckades med att starta exporten av {{total}}. Misslyckades: {{failedItems}}"
+ }
}
},
"streaming": {
@@ -111,6 +172,14 @@
"markAsReviewed": "Markera som granskad",
"deleteNow": "Ta bort nu",
"markAsUnreviewed": "Markera som ogranskad"
+ },
+ "shareTimestamp": {
+ "label": "Dela tidsstämpel",
+ "title": "Dela tidsstämpel",
+ "description": "Dela en tidsstämplad URL för spelarens nuvarande position eller välj en anpassad tidsstämpel. Observera att detta inte är en offentlig delnings-URL och endast är tillgänglig för användare med åtkomst till Frigate och den här kameran.",
+ "custom": "Anpassad tidsstämpel",
+ "button": "Dela tidsstämpel-URL",
+ "shareTitle": "Frigate granskning tidsstämpel: {{camera}}"
}
},
"imagePicker": {
diff --git a/web/public/locales/sv/components/player.json b/web/public/locales/sv/components/player.json
index 7c6301ca11..6e0cd60c35 100644
--- a/web/public/locales/sv/components/player.json
+++ b/web/public/locales/sv/components/player.json
@@ -4,7 +4,8 @@
"noPreviewFoundFor": "Ingen förhandsvisning hittad för {{cameraName}}",
"submitFrigatePlus": {
"title": "Skicka denna bild till Frigate+?",
- "submit": "Skicka"
+ "submit": "Skicka",
+ "previewError": "Det gick inte att ladda förhandsgranskningen av ögonblicksbilden. Inspelningen är kanske inte tillgänglig just nu."
},
"livePlayerRequiredIOSVersion": "iOS 17.1 eller senare krävs för den här typen av livestream.",
"streamOffline": {
@@ -47,5 +48,6 @@
"success": {
"submittedFrigatePlus": "Bildruta har skickats till Frigate+ med lyckat resultat"
}
- }
+ },
+ "cameraOff": "Kameran är avstängd"
}
diff --git a/web/public/locales/sv/config/cameras.json b/web/public/locales/sv/config/cameras.json
index bfa6612cd2..6b59c41908 100644
--- a/web/public/locales/sv/config/cameras.json
+++ b/web/public/locales/sv/config/cameras.json
@@ -1,6 +1,29 @@
{
- "label": "Kamera konfiguration",
+ "label": "KameraKonfiguration",
"name": {
- "label": "Kameranamn"
+ "label": "Kameranamn",
+ "description": "Kameranamn krävs"
+ },
+ "friendly_name": {
+ "label": "Visningsnamn",
+ "description": "Visningsnamn för kamera i Frigate UI"
+ },
+ "enabled": {
+ "label": "Aktiverad",
+ "description": "Aktiverad"
+ },
+ "audio": {
+ "label": "Ljuddetektering",
+ "description": "Inställningar för ljudbaserad händelsedetektering för denna kamera.",
+ "enabled": {
+ "label": "Aktivera ljuddetektering",
+ "description": "Aktivera eller avaktivera ljudbaserad detektering för denna kamera."
+ },
+ "max_not_heard": {
+ "description": "Antal sekunder utan den konfigurerade ljudtypen innan en ljudbaserad händelse slutar."
+ },
+ "min_volume": {
+ "label": "Minsta ljudvolym"
+ }
}
}
diff --git a/web/public/locales/sv/config/global.json b/web/public/locales/sv/config/global.json
index f123fa26cf..ae266a8280 100644
--- a/web/public/locales/sv/config/global.json
+++ b/web/public/locales/sv/config/global.json
@@ -1,5 +1,17 @@
{
"version": {
- "label": "Nuvarande konfigurationsversion"
+ "label": "Nuvarande konfigurations version"
+ },
+ "audio": {
+ "label": "Ljuddetektering",
+ "enabled": {
+ "label": "Aktivera ljuddetektering"
+ },
+ "max_not_heard": {
+ "description": "Antal sekunder utan den konfigurerade ljudtypen innan en ljudbaserad händelse slutar."
+ },
+ "min_volume": {
+ "label": "Minsta ljudvolym"
+ }
}
}
diff --git a/web/public/locales/sv/views/explore.json b/web/public/locales/sv/views/explore.json
index 701f168fe9..37ce216681 100644
--- a/web/public/locales/sv/views/explore.json
+++ b/web/public/locales/sv/views/explore.json
@@ -289,7 +289,7 @@
"label": "Annoteringsförskjutning",
"desc": "Denna data kommer från din kameras detekteringsflöde men läggs ovanpå bilder från inspelningsflödet. Det är osannolikt att de två strömmarna är helt synkroniserade. Som ett resultat kommer avgränsningsramen och filmmaterialet inte att radas upp perfekt. Du kan använda den här inställningen för att förskjuta anteckningarna framåt eller bakåt i tiden för att bättre anpassa dem till det inspelade materialet.",
"millisecondsToOffset": "Millisekunder för att förskjuta detektera annoteringar med. Standard: 0",
- "tips": "TIPS: Föreställ dig ett händelseklipp med en person som går från vänster till höger. Om tidslinjens avgränsningsram konsekvent är till vänster om personen bör värdet minskas. På samma sätt, om en person går från vänster till höger och avgränsningsramen konsekvent är framför personen bör värdet ökas.",
+ "tips": "Sänk värdet om videouppspelningen sker före rutorna och banpunkterna, och öka värdet om videouppspelningen sker bakom dem. Detta värde kan vara negativt.",
"toast": {
"success": "Annoteringsförskjutningen för {{camera}} har sparats i konfigurationsfilen."
}
diff --git a/web/public/locales/sv/views/settings.json b/web/public/locales/sv/views/settings.json
index bb41cc21a4..e09673a38f 100644
--- a/web/public/locales/sv/views/settings.json
+++ b/web/public/locales/sv/views/settings.json
@@ -151,7 +151,8 @@
"triggers": "Utlösare",
"roles": "Roller",
"cameraManagement": "Hantering",
- "cameraReview": "Granska"
+ "cameraReview": "Granska",
+ "profiles": "Profiler"
},
"dialog": {
"unsavedChanges": {
@@ -729,7 +730,7 @@
"snapshotConfig": {
"title": "Ögonblicksbild konfiguration",
"desc": "För att skicka till Frigate+ måste ögonblicksbilder vara aktiverade i konfigurationen.",
- "cleanCopyWarning": "Vissa kameror har ögonblicksbilder inaktiverade.",
+ "cleanCopyWarning": "Vissa kameror har ögonblicksbilder inaktiverade",
"table": {
"camera": "Kamera",
"snapshots": "Ögonblicksbilder",
diff --git a/web/public/locales/tr/common.json b/web/public/locales/tr/common.json
index 08b415cede..50ea2c65f9 100644
--- a/web/public/locales/tr/common.json
+++ b/web/public/locales/tr/common.json
@@ -36,7 +36,7 @@
"h": "{{time}} s",
"yr": "{{time}} yıl",
"mo": "{{time}} ay",
- "untilForTime": "{{time}}'a kadar",
+ "untilForTime": "{{time}} saatine kadar",
"pm": "ÖS",
"am": "ÖÖ",
"d": "{{time}} gün",
@@ -192,7 +192,9 @@
"gl": "Galego (Galiçyaca)",
"id": "Bahasa Indonesia (Endonezce)",
"ur": "اردو (Urduca)",
- "hr": "Hrvatski (Hırvatça)"
+ "hr": "Hrvatski (Hırvatça)",
+ "zhHant": "繁體中文 (Geleneksel Çince)",
+ "bs": "Bosanski (Boşnakça)"
},
"withSystem": "Sistem",
"theme": {
@@ -241,7 +243,8 @@
"classification": "Sınıflandırma",
"profiles": "Profiller",
"actions": "Eylemler",
- "chat": "Sohbet"
+ "chat": "Sohbet",
+ "features": "Özellikler"
},
"label": {
"back": "Geri",
@@ -324,5 +327,8 @@
"pixels": "{{area}}px"
},
"no_items": "Öge bulunmuyor",
- "validation_errors": "Doğrulama Hataları"
+ "validation_errors": "Doğrulama Hataları",
+ "credentialField": {
+ "savedPlaceholder": "Kaydedildi — mevcut haliyle kalması için boş bırakın"
+ }
}
diff --git a/web/public/locales/tr/components/camera.json b/web/public/locales/tr/components/camera.json
index 7885c2653c..2076c0b9f3 100644
--- a/web/public/locales/tr/components/camera.json
+++ b/web/public/locales/tr/components/camera.json
@@ -68,7 +68,10 @@
"cameras": {
"desc": "Bu gruba dahil olacak kameraları seçin.",
"label": "Kameralar"
- }
+ },
+ "showAll": "Bütün Kamera Gruplarını Göster",
+ "showLess": "Daha Az",
+ "editGroups": "Kamera Gruplarını Düzenle"
},
"debug": {
"options": {
@@ -82,6 +85,7 @@
"zones": "Alanlar",
"mask": "Maske",
"motion": "Hareket",
- "regions": "Tespit Bölgeleri"
+ "regions": "Tespit Bölgeleri",
+ "paths": "Yollar"
}
}
diff --git a/web/public/locales/tr/components/dialog.json b/web/public/locales/tr/components/dialog.json
index f2c8face04..323fe5d331 100644
--- a/web/public/locales/tr/components/dialog.json
+++ b/web/public/locales/tr/components/dialog.json
@@ -70,12 +70,18 @@
"queued": "Dışa aktarımlar kuyruğa alındı. İlerlemeyi dışa aktarım sayfasından görebilirsiniz.",
"batchSuccess_one": "1 Adet dışa aktarım başlatıldı. Durum açılıyor.",
"batchSuccess_other": "{{count}} Adet dışa aktarım başlatıldı. Durum açılıyor.",
- "batchPartial": "{{total}} üzerinden {{successful}} adet dışa aktarım başlatıldı. Başarısız: {{failedCameras}}"
+ "batchPartial": "{{total}} üzerinden {{successful}} adet dışa aktarım başlatıldı. Başarısız: {{failedCameras}}",
+ "batchFailed": "{{total}} dışa aktarma işlemi başlatılamadı. Başarısız kameralar: {{failedCameras}}",
+ "batchQueuedSuccess_one": "1 dışa aktarım sıraya alındı.",
+ "batchQueuedSuccess_other": "{{count}} dışa aktarım sıraya alındı.",
+ "batchQueuedPartial": "{{total}} dışa aktarımdan {{successful}} tanesi sıraya alındı. Başarısız olan kameralar: {{failedCameras}}",
+ "batchQueueFailed": "{{total}} adet dışa aktarım sıraya alınamadı. Başarısız kameralar: {{failedCameras}}"
},
"fromTimeline": {
"saveExport": "Dışa Aktarımı Kaydet",
"previewExport": "Dışa Aktarımı Önizle",
- "useThisRange": "Use This Range"
+ "useThisRange": "Use This Range",
+ "queueingExport": "Dışa aktarma sıraya alınıyor..."
},
"name": {
"placeholder": "Dışa Aktarımı Adlandırın"
@@ -106,7 +112,14 @@
"namePlaceholder": "Dışa aktarım için opsiyonel temel isim",
"queueingButton": "Dışa aktarımlar kuyruğa alınıyor...",
"exportButton_one": "1 Adet Kamera Dışarı Aktarıldı",
- "exportButton_other": "{{count}} Adet Kamera Dışarı Aktarıldı"
+ "exportButton_other": "{{count}} Adet Kamera Dışarı Aktarıldı",
+ "searchOrSelectGroup": "Kamera grubu arayın veya seçin...",
+ "selectAll": "Tüm kameraları seç",
+ "clearSelection": "Seçimi kaldır",
+ "selectWithActivity": "Nesne takibi yapan kameralar",
+ "selectGroup": "Grup seç",
+ "noMatchingCameras": "Arama kriterlerinize uyan kamera bulunamadı",
+ "selectedCount": "{{selected}} / {{total}} seçilen"
},
"multi": {
"title_one": "1 Adet Değerlendirme Dışarı Aktarıldı",
@@ -172,6 +185,14 @@
"markAsReviewed": "İncelendi olarak işaretle",
"deleteNow": "Şimdi Sil",
"markAsUnreviewed": "Gözden geçirilmedi olarak işaretle"
+ },
+ "shareTimestamp": {
+ "label": "Zaman Damgasını Paylaş",
+ "title": "Zaman Damgasını Paylaş",
+ "description": "Mevcut oynatıcı konumuna ait zaman damgalı bir URL paylaşın veya özel bir zaman damgası seçin. Bunun herkese açık bir paylaşım URL'si olmadığını ve yalnızca Frigate ile bu kameraya erişimi olan kullanıcılar tarafından görüntülenebileceğini unutmayın.",
+ "custom": "Özel Zaman Damgası",
+ "button": "Zaman Damgalı URL'yi Paylaş",
+ "shareTitle": "Frigate İnceleme Zaman Damgası: {{camera}}"
}
},
"imagePicker": {
diff --git a/web/public/locales/tr/components/player.json b/web/public/locales/tr/components/player.json
index 9530944695..46ff41d464 100644
--- a/web/public/locales/tr/components/player.json
+++ b/web/public/locales/tr/components/player.json
@@ -48,5 +48,6 @@
"title": "Bu kare Frigate+'ya gönderilsin mi?",
"submit": "Gönder",
"previewError": "Önizleme şuan aktif edilemiyor. Kayıt şuan mevcut olmayabilir."
- }
+ },
+ "cameraOff": "Kamera kapalı"
}
diff --git a/web/public/locales/tr/config/cameras.json b/web/public/locales/tr/config/cameras.json
index 9ee3e04425..13595d4955 100644
--- a/web/public/locales/tr/config/cameras.json
+++ b/web/public/locales/tr/config/cameras.json
@@ -12,7 +12,55 @@
"description": "Etkin"
},
"audio": {
- "label": "Ses olayları"
+ "label": "Ses olayları",
+ "description": "Bu kamera için ses tabanlı olay algılama ayarları.",
+ "enabled": {
+ "label": "Ses algılamayı etkinleştir",
+ "description": "Bu kamera için ses tabanlı olay algılamayı etkinleştirin veya devre dışı bırakın."
+ },
+ "max_not_heard": {
+ "label": "Zaman aşımını sonlandır",
+ "description": "Ses tabanlı olayın sona ermesi için yapılandırılmış ses türünün algılanmadığı saniye süresi."
+ },
+ "min_volume": {
+ "label": "Minimum ses seviyesi",
+ "description": "Ses algılamayı çalıştırmak için gereken minimum RMS ses seviyesi eşiği; daha düşük değerler hassasiyeti artırır (örneğin: 200 yüksek, 500 orta, 1000 düşük)."
+ },
+ "listen": {
+ "label": "Dinlenecek ses türleri",
+ "description": "Algılanacak ses olayı türlerinin listesi (örneğin: bark (havlama), fire_alarm (yangın alarmı), speech (konuşma), yell (bağırma))."
+ },
+ "filters": {
+ "label": "Ses filtreleri",
+ "description": "Yanlış alarmları azaltmak için kullanılan güven eşikleri gibi ses türüne özel filtre ayarları.",
+ "threshold": {
+ "label": "Minimum ses güven eşiği",
+ "description": "Ses olayının sayılması için gereken minimum güven eşiği."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Orijinal ses durumu",
+ "description": "Ses algılamanın statik yapılandırma dosyasında başlangıçta etkinleştirilip etkinleştirilmediğini belirtir."
+ }
},
- "label": "Kamera Konfigürasyonu"
+ "label": "Kamera Konfigürasyonu",
+ "detect": {
+ "stationary": {
+ "threshold": {
+ "label": "Sabitlik eşiği",
+ "description": "Bir nesneyi sabit olarak işaretlemek için gereken, konum değişikliği olmayan kare sayısı."
+ },
+ "max_frames": {
+ "label": "Maksimum kare sayısı",
+ "description": "Sabit nesnelerin, izlenmesi bırakılmadan önce ne kadar süre takip edileceğini sınırlar.",
+ "default": {
+ "label": "Varsayılan maksimum kare sayısı",
+ "description": "Sabit bir nesneyi durdurmadan önce takip etmek için varsayılan maksimum kare sayısı."
+ },
+ "objects": {
+ "label": "Nesne maksimum kare sayısı"
+ }
+ }
+ }
+ }
}
diff --git a/web/public/locales/tr/config/global.json b/web/public/locales/tr/config/global.json
index e86122ead5..bcc1260a2d 100644
--- a/web/public/locales/tr/config/global.json
+++ b/web/public/locales/tr/config/global.json
@@ -7,7 +7,34 @@
"label": "Ortam değişkenleri"
},
"audio": {
- "label": "Ses olayları"
+ "label": "Ses olayları",
+ "enabled": {
+ "label": "Ses algılamayı etkinleştir"
+ },
+ "max_not_heard": {
+ "label": "Zaman aşımını sonlandır",
+ "description": "Ses tabanlı olayın sona ermesi için yapılandırılmış ses türünün algılanmadığı saniye süresi."
+ },
+ "min_volume": {
+ "label": "Minimum ses seviyesi",
+ "description": "Ses algılamayı çalıştırmak için gereken minimum RMS ses seviyesi eşiği; daha düşük değerler hassasiyeti artırır (örneğin: 200 yüksek, 500 orta, 1000 düşük)."
+ },
+ "listen": {
+ "label": "Dinlenecek ses türleri",
+ "description": "Algılanacak ses olayı türlerinin listesi (örneğin: bark (havlama), fire_alarm (yangın alarmı), speech (konuşma), yell (bağırma))."
+ },
+ "filters": {
+ "label": "Ses filtreleri",
+ "description": "Yanlış alarmları azaltmak için kullanılan güven eşikleri gibi ses türüne özel filtre ayarları.",
+ "threshold": {
+ "label": "Minimum ses güven eşiği",
+ "description": "Ses olayının sayılması için gereken minimum güven eşiği."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Orijinal ses durumu",
+ "description": "Ses algılamanın statik yapılandırma dosyasında başlangıçta etkinleştirilip etkinleştirilmediğini belirtir."
+ }
},
"version": {
"label": "Mevcut konfigürasyon versiyonu",
@@ -15,5 +42,24 @@
},
"logger": {
"label": "Kayıt"
+ },
+ "detect": {
+ "stationary": {
+ "threshold": {
+ "label": "Sabitlik eşiği",
+ "description": "Bir nesneyi sabit olarak işaretlemek için gereken, konum değişikliği olmayan kare sayısı."
+ },
+ "max_frames": {
+ "label": "Maksimum kare sayısı",
+ "description": "Sabit nesnelerin, izlenmesi bırakılmadan önce ne kadar süre takip edileceğini sınırlar.",
+ "default": {
+ "label": "Varsayılan maksimum kare sayısı",
+ "description": "Sabit bir nesneyi durdurmadan önce takip etmek için varsayılan maksimum kare sayısı."
+ },
+ "objects": {
+ "label": "Nesne maksimum kare sayısı"
+ }
+ }
+ }
}
}
diff --git a/web/public/locales/tr/views/motionSearch.json b/web/public/locales/tr/views/motionSearch.json
index 0967ef424b..2ed13c9e4c 100644
--- a/web/public/locales/tr/views/motionSearch.json
+++ b/web/public/locales/tr/views/motionSearch.json
@@ -1 +1,10 @@
-{}
+{
+ "newSearch": "Yeni Arama",
+ "clearResults": "Sonuçları Temizle",
+ "dialog": {
+ "cameraLabel": "Kamera"
+ },
+ "timeRange": {
+ "end": "Bitiş Zamanı"
+ }
+}
diff --git a/web/public/locales/tr/views/system.json b/web/public/locales/tr/views/system.json
index d388118430..8ce1835f41 100644
--- a/web/public/locales/tr/views/system.json
+++ b/web/public/locales/tr/views/system.json
@@ -141,7 +141,11 @@
}
},
"title": "Kameralar",
- "overview": "Genel"
+ "overview": "Genel",
+ "connectionQuality": {
+ "expectedFps": "Beklenen FPS",
+ "fps": "FPS"
+ }
},
"lastRefreshed": "Son güncelleme: ",
"stats": {
diff --git a/web/public/locales/uk/audio.json b/web/public/locales/uk/audio.json
index 773d5e3a79..4aaf0547b7 100644
--- a/web/public/locales/uk/audio.json
+++ b/web/public/locales/uk/audio.json
@@ -21,7 +21,7 @@
"goat": "Коза",
"sheep": "Вівця",
"chicken": "Курка",
- "speech": "Мо́влення",
+ "speech": "Розмова",
"idling": "Холостий хід",
"railroad_car": "Залізничний вагон",
"alarm": "Сигналізація",
@@ -91,8 +91,8 @@
"chatter": "Балаканина",
"animal": "Тварина",
"yip": "Гавкання",
- "babbling": "Бурмотіння",
- "yell": "Кричати",
+ "babbling": "Балаканина",
+ "yell": "Крик",
"bow_wow": "Гав гав",
"growling": "Ревіння",
"purr": "Муркотіти",
diff --git a/web/public/locales/uk/common.json b/web/public/locales/uk/common.json
index 937bd735bb..21002ee0cc 100644
--- a/web/public/locales/uk/common.json
+++ b/web/public/locales/uk/common.json
@@ -179,7 +179,8 @@
"id": "Bahasa Indonesia (Індонезійська)",
"ur": "اردو (Урду)",
"hr": "Hrvatski (Хорватська)",
- "bs": "Bosanski (Боснійська)"
+ "bs": "Bosanski (Боснійська)",
+ "zhHant": "繁體中文 (Традиційна китайська)"
},
"system": "Система",
"systemMetrics": "Системна метріка",
diff --git a/web/public/locales/uk/components/camera.json b/web/public/locales/uk/components/camera.json
index dc12ccb8f2..c8ccbca89b 100644
--- a/web/public/locales/uk/components/camera.json
+++ b/web/public/locales/uk/components/camera.json
@@ -68,7 +68,10 @@
"label": "Камери",
"desc": "Виберіть камери для цієї групи."
},
- "icon": "Значок"
+ "icon": "Значок",
+ "showAll": "Відобразити всі групи камер",
+ "showLess": "Показати менше",
+ "editGroups": "Редагувати групи камер"
},
"debug": {
"zones": "Зони",
diff --git a/web/public/locales/uk/components/player.json b/web/public/locales/uk/components/player.json
index 300dc5fc57..7577dff25c 100644
--- a/web/public/locales/uk/components/player.json
+++ b/web/public/locales/uk/components/player.json
@@ -47,5 +47,6 @@
"error": {
"submitFrigatePlusFailed": "Не вдалося надіслати фрейм Frigate+"
}
- }
+ },
+ "cameraOff": "Камера вимкнена"
}
diff --git a/web/public/locales/uk/config/cameras.json b/web/public/locales/uk/config/cameras.json
index c0be2e59ac..4de1a14df5 100644
--- a/web/public/locales/uk/config/cameras.json
+++ b/web/public/locales/uk/config/cameras.json
@@ -11,5 +11,62 @@
"enabled": {
"label": "Увімкнено",
"description": "Увімкнено"
+ },
+ "audio": {
+ "label": "Виявлення звуку",
+ "enabled": {
+ "label": "Увімкнути виявлення звуку",
+ "description": "Увімкнути або вимкнути виявлення звукових подій для цієї камери."
+ },
+ "max_not_heard": {
+ "description": "Кількість секунд без налаштованого типу звуку перед тим, як звукова подія закінчиться.",
+ "label": "Кінець очікування"
+ },
+ "min_volume": {
+ "label": "Мінімальний рівень звуку",
+ "description": "Поріг мінімального середньоквадратичного значення необхідний для запуску розпізнавання звуку; чим нижче значення, тим вища чутливість (наприклад, 200 — висока, 500 — середня, 1000 — низька)."
+ },
+ "num_threads": {
+ "description": "Поріг мінімального середньоквадратичного значення необхідний для запуску розпізнавання звуку; чим нижче значення, тим вища чутливість (наприклад, 200 — висока, 500 — середня, 1000 — низька)."
+ },
+ "listen": {
+ "description": "Список звукових подій для виявлення (наприклад, bark, fire_alarm, speech, yell).",
+ "label": "Типи звукових подій"
+ },
+ "filters": {
+ "label": "Фільтри звуку"
+ },
+ "description": "Налаштування звукових подій для цієї камери."
+ },
+ "audio_transcription": {
+ "label": "Транскрипція аудіо",
+ "enabled": {
+ "label": "Увімкнути транскрипцію"
+ },
+ "live_enabled": {
+ "description": "Увімкнути потокову транскрипцію аудіо в реальному часі коли вона надходить."
+ }
+ },
+ "birdseye": {
+ "label": "Режим Birdseye",
+ "description": "Налаштування для складеного елементу перегляду режиму Birdseye який відображає потоки з декількох камер на єдиному макеті.",
+ "enabled": {
+ "label": "Увімкнути Birdseye",
+ "description": "Увімкнути або вимкнути функцію перегляду у режимі Birdseye."
+ },
+ "mode": {
+ "label": "Режим відстежування",
+ "description": "Режими для додавання камер в Birdseye: 'objects' (об'єкти), 'motion' (рух) або 'continuous' (безперервний)."
+ },
+ "order": {
+ "label": "Розміщення",
+ "description": "Номер позиції, що визначає розміщення камери на макеті Birdseye."
+ }
+ },
+ "detect": {
+ "label": "Виявлення об'єктів",
+ "enabled": {
+ "label": "Увімкнути виявлення об'єктів"
+ }
}
}
diff --git a/web/public/locales/uk/config/global.json b/web/public/locales/uk/config/global.json
index 0967ef424b..6618f81f66 100644
--- a/web/public/locales/uk/config/global.json
+++ b/web/public/locales/uk/config/global.json
@@ -1 +1,54 @@
-{}
+{
+ "audio": {
+ "label": "Виявлення звуку",
+ "enabled": {
+ "label": "Увімкнути виявлення звуку"
+ },
+ "max_not_heard": {
+ "description": "Кількість секунд без налаштованого типу звуку перед тим, як звукова подія закінчиться.",
+ "label": "Кінець очікування"
+ },
+ "min_volume": {
+ "label": "Мінімальний рівень звуку",
+ "description": "Поріг мінімального середньоквадратичного значення необхідний для запуску розпізнавання звуку; чим нижче значення, тим вища чутливість (наприклад, 200 — висока, 500 — середня, 1000 — низька)."
+ },
+ "num_threads": {
+ "description": "Поріг мінімального середньоквадратичного значення необхідний для запуску розпізнавання звуку; чим нижче значення, тим вища чутливість (наприклад, 200 — висока, 500 — середня, 1000 — низька)."
+ },
+ "listen": {
+ "description": "Список звукових подій для виявлення (наприклад, bark, fire_alarm, speech, yell).",
+ "label": "Типи звукових подій"
+ },
+ "filters": {
+ "label": "Фільтри звуку"
+ }
+ },
+ "audio_transcription": {
+ "label": "Транскрипція аудіо",
+ "live_enabled": {
+ "description": "Увімкнути потокову транскрипцію аудіо в реальному часі коли вона надходить."
+ }
+ },
+ "birdseye": {
+ "label": "Режим Birdseye",
+ "description": "Налаштування для складеного елементу перегляду режиму Birdseye який відображає потоки з декількох камер на єдиному макеті.",
+ "enabled": {
+ "label": "Увімкнути Birdseye",
+ "description": "Увімкнути або вимкнути функцію перегляду у режимі Birdseye."
+ },
+ "mode": {
+ "label": "Режим відстежування",
+ "description": "Режими для додавання камер в Birdseye: 'objects' (об'єкти), 'motion' (рух) або 'continuous' (безперервний)."
+ },
+ "order": {
+ "label": "Розміщення",
+ "description": "Номер позиції, що визначає розміщення камери на макеті Birdseye."
+ }
+ },
+ "detect": {
+ "label": "Виявлення об'єктів",
+ "enabled": {
+ "label": "Увімкнути виявлення об'єктів"
+ }
+ }
+}
diff --git a/web/public/locales/uk/views/system.json b/web/public/locales/uk/views/system.json
index a503559ed2..4d8412f44f 100644
--- a/web/public/locales/uk/views/system.json
+++ b/web/public/locales/uk/views/system.json
@@ -40,7 +40,10 @@
"tips": {
"title": "Інформація про зонд камери"
},
- "aspectRatio": "співвідношення сторін"
+ "aspectRatio": "співвідношення сторін",
+ "keyframes": {
+ "observedDuration": "Тривалість спостереження:"
+ }
},
"overview": "Огляд",
"framesAndDetections": "Кадри / Виявлення"
@@ -178,7 +181,8 @@
"logs": {
"frigate": "Фрегатні журнали - Фрегат",
"go2rtc": "Журнали Go2RTC - Фрегат",
- "nginx": "Журнали Nginx - Фрегат"
+ "nginx": "Журнали Nginx - Фрегат",
+ "websocket": "Журнал повідомлень - Frigate"
}
},
"title": "Система",
@@ -204,6 +208,25 @@
"fetchingLogsFailed": "Помилка отримання журналів: {{errorMessage}}",
"whileStreamingLogs": "Помилка під час потокової передачі журналів: {{errorMessage}}"
}
+ },
+ "websocket": {
+ "label": "Повідомлення",
+ "pause": "Павза",
+ "resume": "Продовжити",
+ "clear": "Очистити",
+ "filter": {
+ "all": "Всі теми (topics)",
+ "topics": "Теми (topics)",
+ "events": "Події",
+ "reviews": "Перевірки",
+ "classification": "Класифікація",
+ "face_recognition": "Розпізнавання обличчя",
+ "lpr": "Розпізнавання номерних знаків (LPR)",
+ "camera_activity": "Активність камери",
+ "system": "Система",
+ "camera": "Камера",
+ "all_cameras": "Всі камери"
+ }
}
}
}
diff --git a/web/public/locales/zh-CN/components/camera.json b/web/public/locales/zh-CN/components/camera.json
index 9bd70155e4..1e45e408d6 100644
--- a/web/public/locales/zh-CN/components/camera.json
+++ b/web/public/locales/zh-CN/components/camera.json
@@ -68,7 +68,10 @@
"placeholder": "选择视频流"
},
"birdseye": "鸟瞰图"
- }
+ },
+ "showAll": "显示所有的摄像头组摄像头摄像头",
+ "showLess": "显示更少",
+ "editGroups": "编辑摄像头组"
},
"debug": {
"options": {
diff --git a/web/public/locales/zh-CN/components/dialog.json b/web/public/locales/zh-CN/components/dialog.json
index 1cab8c0f82..35e45b7926 100644
--- a/web/public/locales/zh-CN/components/dialog.json
+++ b/web/public/locales/zh-CN/components/dialog.json
@@ -32,6 +32,9 @@
"ask_a": "这个目标/物体是 {{label}} 吗?",
"ask_an": "这个目标/物体是 {{label}} 吗?",
"ask_full": "这个目标/物体是 {{untranslatedLabel}} ({{translatedLabel}}) 吗?"
+ },
+ "toast": {
+ "error": "提交至 Frigate+ 失败,请检查您的网络连接并重试。"
}
}
},
@@ -105,7 +108,14 @@
"nameLabel": "导出名称",
"namePlaceholder": "这些导出文件的可选基础名称",
"queueingButton": "正在加入导出队列…",
- "exportButton_other": "导出 {{count}} 个摄像头"
+ "exportButton_other": "导出 {{count}} 个摄像头",
+ "searchOrSelectGroup": "搜索或选择摄像头组…",
+ "selectAll": "选择所有摄像头",
+ "clearSelection": "清空选择",
+ "selectWithActivity": "包含追踪目标的摄像头",
+ "selectGroup": "选择组",
+ "noMatchingCameras": "没有匹配搜索的摄像头",
+ "selectedCount": "{{selected}} / {{total}} 个"
},
"multi": {
"title_other": "导出 {{count}} 个核查",
diff --git a/web/public/locales/zh-CN/config/cameras.json b/web/public/locales/zh-CN/config/cameras.json
index 9faae8a747..93d82d6825 100644
--- a/web/public/locales/zh-CN/config/cameras.json
+++ b/web/public/locales/zh-CN/config/cameras.json
@@ -33,7 +33,7 @@
},
"listen": {
"label": "监听类型",
- "description": "要检测的音频事件类型列表(例如:bark、fire_alarm、scream、speech、yell)。"
+ "description": "要检测的音频事件类型列表(例如:bark、fire_alarm、speech、yell)。"
},
"filters": {
"label": "音频过滤器",
@@ -152,11 +152,11 @@
}
},
"ffmpeg": {
- "label": "FFmpeg",
- "description": "FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速选项,以及按不同功能划分的输出参数。",
+ "label": "视频流(FFmpeg)",
+ "description": "摄像头视频流和 FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速,以及按不同功能划分的输出参数。",
"path": {
"label": "FFmpeg 路径",
- "description": "要使用的 FFmpeg 可执行文件路径,或版本别名(如 \"5.0\" 或 \"7.0\")。"
+ "description": "要使用的 FFmpeg 可执行文件路径,或版本别名(如 \"7.0\" 或 \"8.0\")。"
},
"global_args": {
"label": "FFmpeg 全局参数",
@@ -524,6 +524,9 @@
"max_concurrent": {
"label": "最大并发导出数",
"description": "同时可处理的最大导出任务数量。"
+ },
+ "chapters": {
+ "label": "导出的录制中嵌入元数据"
}
},
"preview": {
diff --git a/web/public/locales/zh-CN/config/global.json b/web/public/locales/zh-CN/config/global.json
index 4e35be178b..96f45f9601 100644
--- a/web/public/locales/zh-CN/config/global.json
+++ b/web/public/locales/zh-CN/config/global.json
@@ -44,7 +44,7 @@
},
"listen": {
"label": "监听类型",
- "description": "要检测的音频事件类型列表(例如:bark、fire_alarm、scream、speech、yell)。"
+ "description": "要检测的音频事件类型列表(例如:bark、fire_alarm、speech、yell)。"
},
"filters": {
"label": "音频过滤器",
@@ -292,7 +292,7 @@
"description": "FFmpeg 编解码相关设置,包含可执行文件路径、命令行参数、硬件加速选项,以及按不同功能划分的输出参数。",
"path": {
"label": "FFmpeg 路径",
- "description": "要使用的 FFmpeg 可执行文件路径,或版本别名(如 \"5.0\" 或 \"7.0\")。"
+ "description": "要使用的 FFmpeg 可执行文件路径,或版本别名(如 \"7.0\" 或 \"8.0\")。"
},
"global_args": {
"label": "FFmpeg 全局参数",
@@ -1778,6 +1778,9 @@
"max_concurrent": {
"label": "最大并发导出数",
"description": "同时可处理的最大导出任务数量。"
+ },
+ "chapters": {
+ "label": "导出的录制中嵌入元数据"
}
},
"preview": {
diff --git a/web/public/locales/zh-CN/views/search.json b/web/public/locales/zh-CN/views/search.json
index 51fe47c8ef..ffb770839c 100644
--- a/web/public/locales/zh-CN/views/search.json
+++ b/web/public/locales/zh-CN/views/search.json
@@ -46,7 +46,7 @@
"tips": {
"title": "如何使用文本筛选器",
"desc": {
- "text": "筛选器可帮助您缩小搜索范围。注意,目前还暂不支持中文搜索。以下是在输入字段中使用筛选器的方法:",
+ "text": "筛选器可帮助您缩小搜索范围。注意,Jina v1 不支持中文搜索。以下是在输入字段中使用筛选器的方法:",
"step": "- 输入筛选器名称后跟一个冒号(例如:“cameras:”)。
- 从建议中选择一个值或输入您自己的值。
- 使用多个筛选器时,可以在它们之间用空格分隔。
- 日期筛选器(before: 和 after:)使用 {{DateFormat}} 格式。
- 时间范围筛选器使用 {{exampleTime}} 格式。
- 点击筛选器旁边的“x”即可移除筛选条件。
",
"example": "示例:cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM",
"step2": "选择给出的建议值或自行输入;",
diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json
index aa7904a6ca..f425d56130 100644
--- a/web/public/locales/zh-CN/views/settings.json
+++ b/web/public/locales/zh-CN/views/settings.json
@@ -70,7 +70,7 @@
"integrationObjectClassification": "目标分类",
"integrationAudioTranscription": "音频转录",
"cameraDetect": "目标检测",
- "cameraFfmpeg": "FFmpeg",
+ "cameraFfmpeg": "视频流(FFmpeg)",
"cameraRecording": "录制",
"cameraSnapshots": "快照",
"cameraMotion": "画面变动检测",
@@ -1700,7 +1700,17 @@
}
},
"cameraInputs": {
- "itemTitle": "视频流 {{index}}"
+ "itemTitle": "视频流 {{index}}",
+ "sourceMode": {
+ "restream": "转流传输(go2rtc)",
+ "manual": "手动输入路径",
+ "go2rtcStreamPlaceholder": "选择 go2rtc 视频流",
+ "noGo2rtcStreams": "没有配置 go2rtc 视频流",
+ "go2rtcStreamSearch": "搜索视频流…",
+ "go2rtcStreamLabel": "go2rtc 视频流",
+ "availableStreams": "可用的视频流",
+ "noMatchingStreams": "没有匹配的视频流"
+ }
},
"restartRequiredField": "需要重启",
"restartRequiredFooter": "配置已更改 - 需要重启",
@@ -2082,7 +2092,11 @@
"fpsGreaterThanFive": "不建议设置检测帧率高于 5,数值设置过高可能引发性能问题,且不会带来任何增益。",
"disabled": "目标检测已禁用。快照、回放条目以及人脸识别、车牌识别、生成式 AI 等增强功能都将无法使用。",
"resolutionShouldBeMultipleOfFour": "为了获得最佳效果,检测的宽度和高度应该是4的倍数。其他偶数值可能会在检测流中产生视觉伪影或轻微失真。",
- "aspectRatioMismatch": "你输入的宽度和高度与当前检测分辨率的不匹配,这可能会导致图像被拉伸或变形。"
+ "aspectRatioMismatch": "你输入的宽度和高度与当前检测分辨率的不匹配,这可能会导致图像被拉伸或变形。",
+ "maxFramesSet": "设置最大帧数将会覆盖默认行为,并且禁用静态物体追踪。只有很少的情况下需要这个功能,请谨慎使用。",
+ "squareResolution": "方形的检测分辨率比较少见。检测宽度和高度应该与你摄像头的画面比例一致(例如 16:9),而不是跟目标检测模型的输入尺寸一致。画面比例不匹配可能会拉伸图像,从而降低检测准确率。",
+ "resolutionHigh": "这个检测分辨率高于推荐值,可能会增加资源占用,但不一定提升检测准确率。对于大多数摄像头,建议使用 1080p 或更低的检测分辨率。",
+ "globalResolutionMultipleCameras": "在配置了多个摄像头同时还设置了全局检测分辨率。除非所有摄像头都使用相同的分辨率和画面比例,否则应该为每个摄像头单独设置检测宽度和高度,使其匹配各自摄像头的原生画面比例。"
},
"faceRecognition": {
"globalDisabled": "必须开启人脸识别增强功能,此摄像头的人脸识别相关功能才能正常使用。",
@@ -2111,6 +2125,13 @@
},
"onvif": {
"autotrackingNoZones": "自动追踪至少需要一个区域。请先在“遮罩 / 区域”中为此摄像头定义一个区域,然后在下方将其设置为必需区域。"
+ },
+ "ffmpeg": {
+ "hwaccelManualNotRecommended": "不建议手动硬件加速参数。除非存在特定需求,否则选择与你的硬件匹配的预设。"
+ },
+ "model": {
+ "optimizedFor320": "Frigate 针对了 320x320 的模型进行优化,这是大多数设置的最佳选择。640x640 模型速度较慢,仅在特定场景下有帮助。",
+ "inputDimensionsNotDetectResolution": "模型输入的宽度和高度是目标检测模型的输入尺寸,而不是你摄像头的检测分辨率。它们应该与你正在使用的模型的尺寸相匹配,通常是一个方形尺寸,如320x320或640x640。"
}
},
"birdseye": {
diff --git a/web/public/locales/zh-CN/views/system.json b/web/public/locales/zh-CN/views/system.json
index 79882b6afe..c14f062916 100644
--- a/web/public/locales/zh-CN/views/system.json
+++ b/web/public/locales/zh-CN/views/system.json
@@ -175,7 +175,22 @@
"tips": {
"title": "摄像头信息"
},
- "aspectRatio": "宽高比"
+ "aspectRatio": "宽高比",
+ "keyframes": {
+ "title": "关键帧分析",
+ "analyzing": "正在分析关键帧... 剩余 {{seconds}} 秒",
+ "stillAnalyzing": "仍在分析关键帧...",
+ "recordStream": "录制视频流:",
+ "keyframeCount": "观察到的关键帧:",
+ "observedDuration": "观测持续时间:",
+ "gap": "关键帧间隔(最小值 / 平均值 / 最大值):",
+ "segmentLength": "录制片段长度:",
+ "ok": "每 {{seconds}} 秒取一帧,适用于录制和回放。",
+ "warning": "稀疏或不均匀的关键帧(最长间隔约{{seconds}}秒),可能是使用了智能编码器(例如H.264+/H.265+),不建议开启该功能。",
+ "error": "关键帧间隔(~{{seconds}}秒)超过了录制片段长度({{segmentTime}}秒)。某些片段可能没有关键帧,这会导致播放中断。请尝试禁用摄像头的智能或 + 编解码器或缩短其关键帧间隔。",
+ "unknown": "无法确定关键帧间隔。",
+ "recordDisabled": "此摄像头的录制功能已禁用。"
+ }
},
"framesAndDetections": "帧数/检测次数",
"label": {
diff --git a/web/public/locales/zh-Hant/common.json b/web/public/locales/zh-Hant/common.json
index 31ee3313e9..08ae3d639f 100644
--- a/web/public/locales/zh-Hant/common.json
+++ b/web/public/locales/zh-Hant/common.json
@@ -70,7 +70,7 @@
"inProgress": "處理中",
"invalidStartTime": "無效的起始時間",
"invalidEndTime": "無效的結束時間",
- "never": "從不"
+ "never": "永不"
},
"unit": {
"speed": {
@@ -307,7 +307,7 @@
"internalID": "在Frigate 設定檔和資料庫使用的內部ID"
},
"information": {
- "pixels": "{area}}像素"
+ "pixels": "{{area}} 像素"
},
"no_items": "沒有項目",
"validation_errors": "驗證錯誤",
diff --git a/web/public/locales/zh-Hant/components/dialog.json b/web/public/locales/zh-Hant/components/dialog.json
index 3d6f33a684..4d294718c2 100644
--- a/web/public/locales/zh-Hant/components/dialog.json
+++ b/web/public/locales/zh-Hant/components/dialog.json
@@ -20,6 +20,9 @@
},
"state": {
"submitted": "已提交"
+ },
+ "toast": {
+ "error": "無法提交至 Frigate+,請檢查您的網路連線並再試一次。"
}
},
"submitToPlus": {
@@ -97,7 +100,14 @@
"nameLabel": "匯出名稱",
"namePlaceholder": "這些匯出檔案的可選基礎名稱",
"queueingButton": "正在加入匯出佇列…",
- "exportButton_other": "匯出 {{count}} 個攝影機"
+ "exportButton_other": "匯出 {{count}} 個攝影機",
+ "searchOrSelectGroup": "搜尋或選擇一個攝影機群組…",
+ "selectAll": "選擇所有攝影機",
+ "clearSelection": "清除選擇",
+ "selectWithActivity": "有追蹤物件的攝影機",
+ "selectGroup": "選擇群組",
+ "noMatchingCameras": "找不到符合您搜尋條件的攝影機",
+ "selectedCount": "已選取 {{selected}} / {{total}}"
},
"multi": {
"title_other": "匯出 {{count}} 個審閱",
@@ -147,7 +157,7 @@
"confirmDelete": {
"title": "確認刪除",
"desc": {
- "selected": "你確定要刪除所有與此查核項目有關的錄影檔案嗎?
按住Shift以在未來跳過此確認步驟。"
+ "selected": "您確定要刪除所有與此審查項目相關的錄影檔案嗎?
按住 Shift 鍵可在未來跳過此確認步驟。"
},
"toast": {
"success": "已成功刪除與選擇的審核物件有關的影片片段。",
diff --git a/web/public/locales/zh-Hant/components/filter.json b/web/public/locales/zh-Hant/components/filter.json
index 1cbef2fd31..1b3cbe0dc7 100644
--- a/web/public/locales/zh-Hant/components/filter.json
+++ b/web/public/locales/zh-Hant/components/filter.json
@@ -106,7 +106,7 @@
},
"trackedObjectDelete": {
"title": "確認刪除",
- "desc": "刪除這 {{objectLength}} 個追蹤物件將會刪除截圖、儲存的嵌入資料,以及相關的物件生命週期紀錄。歷史記錄中的錄影檔案不會被刪除。
你確定要繼續嗎?
按住 Shift 可在未來跳過這個確認內容。",
+ "desc": "刪除這 {{objectLength}} 個追蹤物件將會移除快照、已儲存的嵌入向量資料(embeddings),以及相關的物件生命週期紀錄。歷史檢視中的錄影檔案 不會 被刪除。
確定要繼續嗎?
按住 Shift 鍵可在未來跳過此對話框。",
"toast": {
"success": "成功刪除追蹤物件。",
"error": "刪除追蹤物件失敗:{{errorMessage}}"
diff --git a/web/public/locales/zh-Hant/config/cameras.json b/web/public/locales/zh-Hant/config/cameras.json
index 1b989699af..b9c9244212 100644
--- a/web/public/locales/zh-Hant/config/cameras.json
+++ b/web/public/locales/zh-Hant/config/cameras.json
@@ -697,7 +697,7 @@
"description": "在接收到音訊時開啟即時監控持續轉寫。"
},
"enabled": {
- "label": "開啟轉錄",
+ "label": "啟用語音轉文字",
"description": "開啟或關閉手動觸發的音訊事件轉寫。"
},
"enabled_in_config": {
@@ -857,7 +857,7 @@
"description": "攝影機型別"
},
"ui": {
- "label": "攝影機頁面",
+ "label": "攝影機介面",
"description": "此攝影機在頁面中的顯示順序和可見性。顯示順序僅影響預設儀表板。如需更精細的控制,請使用“攝影機組”。",
"order": {
"label": "UI 順序",
diff --git a/web/public/locales/zh-Hant/config/global.json b/web/public/locales/zh-Hant/config/global.json
index 258eb17608..a71d8c6210 100644
--- a/web/public/locales/zh-Hant/config/global.json
+++ b/web/public/locales/zh-Hant/config/global.json
@@ -389,7 +389,7 @@
"label": "DeepStack",
"description": "將影像傳送到遠端 DeepStack HTTP API 進行推理的 DeepStack/CodeProject.AI 偵測器。不推薦使用。",
"api_url": {
- "label": "DeepStack API URL",
+ "label": "DeepStack API 網址",
"description": "DeepStack API 的 URL。"
},
"api_timeout": {
@@ -756,7 +756,7 @@
},
"live": {
"label": "即時監控觀看",
- "description": "用於控制 JSMPEG 即時流解析度與畫質的設定。此設定不影響使用 go2rtc 進行即時預覽的攝影機。",
+ "description": "用於控制 jsmpeg 即時串流解析度與畫質的設定。此設定不影響使用 go2rtc 進行即時預覽的重新串流攝影機。",
"streams": {
"label": "即時監控流名稱",
"description": "配置的流名稱到用於即時監控播放的 restream/go2rtc 名稱的對映。"
@@ -946,7 +946,15 @@
"description": "判定屬性有效所需的平均偵測置信度門檻。"
},
"min_score": {
- "label": "最小置信度"
+ "label": "最小置信度",
+ "description": "此屬性與其父物件關聯所需的最小單幀畫面的偵測置信度。"
+ },
+ "mask": {
+ "label": "篩選遮罩",
+ "description": "定義此篩選器在畫面內應用位置的多邊形座標。"
+ },
+ "raw_mask": {
+ "label": "原始遮罩"
}
}
},
@@ -1230,7 +1238,7 @@
"label": "音訊轉錄",
"description": "用於事件和即時字幕的即時和語音音訊轉錄設定。",
"enabled": {
- "label": "開啟音訊轉錄",
+ "label": "啟用語音轉文字",
"description": "為所有攝影機啟用或停用自動音訊轉錄;可按攝影機覆蓋。"
},
"language": {
@@ -1546,6 +1554,10 @@
"dashboard": {
"label": "在 UI 中顯示",
"description": "切換此攝影機在 Frigate 頁面中是否可見。停用後需要手動編輯配置才能再次在頁面中檢視此攝影機。"
+ },
+ "review": {
+ "label": "在審查中顯示",
+ "description": "切換此攝影機在審查中是否顯示(包含審查頁面及其攝影機篩選器、動態審查和歷史檢視)。"
}
},
"onvif": {
diff --git a/web/public/locales/zh-Hant/config/validation.json b/web/public/locales/zh-Hant/config/validation.json
index 2c0274b3b6..c75f681df8 100644
--- a/web/public/locales/zh-Hant/config/validation.json
+++ b/web/public/locales/zh-Hant/config/validation.json
@@ -28,5 +28,8 @@
"detectRequired": "必須至少有一個輸入串流分配為 'detect' 角色。",
"hwaccelDetectOnly": "只有分配了 detect 角色的輸入串流才能定義硬體加速引數。"
}
+ },
+ "detect": {
+ "dimensionMustBeEven": "必須是偶數。"
}
}
diff --git a/web/public/locales/zh-Hant/views/chat.json b/web/public/locales/zh-Hant/views/chat.json
index fced43e35e..af68b79f56 100644
--- a/web/public/locales/zh-Hant/views/chat.json
+++ b/web/public/locales/zh-Hant/views/chat.json
@@ -60,5 +60,13 @@
"stats": {
"context": "{{tokens}} 個 token",
"tokens_per_second": "{{rate}} tokens/秒"
+ },
+ "reasoning": {
+ "active": "推論中…",
+ "show": "顯示推論過程",
+ "hide": "隱藏推論過程"
+ },
+ "thinking": {
+ "toggle": "切換顯示推論"
}
}
diff --git a/web/public/locales/zh-Hant/views/classificationModel.json b/web/public/locales/zh-Hant/views/classificationModel.json
index 6c0a1d9651..c716e89444 100644
--- a/web/public/locales/zh-Hant/views/classificationModel.json
+++ b/web/public/locales/zh-Hant/views/classificationModel.json
@@ -1,9 +1,9 @@
{
"toast": {
"success": {
- "deletedImage_other": "已刪除的圖片",
+ "deletedImage_other": "已刪除 {{count}} 張圖片",
"deletedModel_other": "已成功刪除 {{count}} 個模型",
- "deletedCategory_other": "已刪除分類",
+ "deletedCategory_other": "已刪除 {{count}} 個類別",
"categorizedImage": "成功分類圖片",
"trainedModel": "訓練模型成功。",
"trainingModel": "已開始模型訓練。",
diff --git a/web/public/locales/zh-Hant/views/explore.json b/web/public/locales/zh-Hant/views/explore.json
index 671e9201bf..6fa668056d 100644
--- a/web/public/locales/zh-Hant/views/explore.json
+++ b/web/public/locales/zh-Hant/views/explore.json
@@ -234,7 +234,7 @@
"dialog": {
"confirmDelete": {
"title": "確認刪除",
- "desc": "刪除此追蹤物件將移除截圖、所有已保存的嵌入,以及所有相關的追蹤詳情。歷史記錄中的錄影不會被刪除。
你確定要刪除嗎?"
+ "desc": "刪除此追蹤物件將會移除快照、已儲存的嵌入向量資料(embeddings),以及相關的追蹤詳情紀錄。歷史檢視中的錄影檔案 不會 被刪除。
確定要刪除嗎?"
},
"toast": {
"error": "刪除該追蹤目標時出錯:{{errorMessage}}"
diff --git a/web/public/locales/zh-Hant/views/live.json b/web/public/locales/zh-Hant/views/live.json
index d1e28743fd..cb4ed938ee 100644
--- a/web/public/locales/zh-Hant/views/live.json
+++ b/web/public/locales/zh-Hant/views/live.json
@@ -58,7 +58,9 @@
},
"camera": {
"enable": "啟用鏡頭",
- "disable": "停用鏡頭"
+ "disable": "停用鏡頭",
+ "turnOn": "開啟攝影機",
+ "turnOff": "關閉攝影機"
},
"muteCameras": {
"enable": "所有鏡頭靜音",
@@ -151,7 +153,8 @@
"snapshots": "截圖",
"audioDetection": "音訊偵測",
"autotracking": "自動追蹤",
- "transcription": "音訊轉錄"
+ "transcription": "音訊轉錄",
+ "camera": "攝影機"
},
"history": {
"label": "顯示歷史影像"
diff --git a/web/public/locales/zh-Hant/views/motionSearch.json b/web/public/locales/zh-Hant/views/motionSearch.json
index a83835afa0..7ea301ccac 100644
--- a/web/public/locales/zh-Hant/views/motionSearch.json
+++ b/web/public/locales/zh-Hant/views/motionSearch.json
@@ -22,7 +22,9 @@
"polygonControls": {
"points_other": "{{count}} 個點位",
"undo": "撤銷上一個點位",
- "reset": "重設多邊形"
+ "reset": "重設多邊形",
+ "drawMode": "繪製",
+ "moveMode": "移動"
},
"motionHeatmapLabel": "畫面變動熱力圖",
"dialog": {
@@ -38,7 +40,7 @@
"settings": {
"title": "搜尋設定",
"parallelMode": "並行模式",
- "parallelModeDesc": "同時掃描多個錄製片段(速度更快,但 CPU 佔用會顯著升高)",
+ "parallelModeDesc": "同時掃描多個錄影片段(速度更快,但會消耗更多解碼資源)",
"threshold": "靈敏度閾值",
"thresholdDesc": "數值越低,可偵測到越小的變化(取值範圍 1-255)",
"minArea": "最小變化區域",
@@ -68,6 +70,9 @@
"framesDecoded": "畫面已解碼",
"wallTime": "搜尋時間",
"segmentErrors": "片段異常",
- "seconds": "{{seconds}} 秒"
- }
+ "seconds": "{{seconds}} 秒",
+ "minutesSeconds": "{{minutes}}分 {{seconds}}秒",
+ "scanSummary": "{{segments}} 個片段 · {{time}}"
+ },
+ "scanning": "掃描中 {{time}}"
}
diff --git a/web/public/locales/zh-Hant/views/settings.json b/web/public/locales/zh-Hant/views/settings.json
index 5252467276..2d25590493 100644
--- a/web/public/locales/zh-Hant/views/settings.json
+++ b/web/public/locales/zh-Hant/views/settings.json
@@ -53,7 +53,7 @@
"systemAuthentication": "驗證",
"systemNetworking": "網路",
"systemProxy": "代理",
- "systemUi": "介面",
+ "systemUi": "使用者介面",
"systemLogging": "日誌",
"systemEnvironmentVariables": "環境變數",
"systemTelemetry": "遙測",
@@ -167,12 +167,12 @@
"label": "模型大小",
"small": {
"title": "小",
- "desc": "將使用 小模型。該模型使用的記憶體較少,在 CPU 上也能較快的執行,品質較好。"
+ "desc": "使用 small 將採用量化版本的模型。該模型佔用的記憶體(RAM)較少,在 CPU 上的執行速度也較快,且在嵌入向量品質上的差異微乎其微。"
},
"desc": "用於語意搜尋的語言模型大小。",
"large": {
"title": "大",
- "desc": "將使用 大模型。該選項使用了完整的 Jina 模型,條件允許的情況下將自動使用 GPU 執行。"
+ "desc": "使用 large 將採用完整的 Jina 模型,並在支援的情況下自動於 GPU 上執行。"
}
},
"title": "語意搜尋",
@@ -196,11 +196,11 @@
"desc": "用於人臉辨識的模型大小。",
"small": {
"title": "小",
- "desc": "將使用小模型。該選項採用 FaceNet 人臉特徵提取模型,可在大多數 CPU 上高效執行。"
+ "desc": "使用 小 模型將採用 FaceNet 臉部嵌入模型,可在大多數 CPU 上高效執行。"
},
"large": {
"title": "大",
- "desc": "將使用大模型。該選項使用 ArcFace 人臉特徵提取模型,條件允許的情況下將自動使用 GPU 執行。"
+ "desc": "使用 大 模型將採用 ArcFace 臉部嵌入模型,並在適用情況下自動於 GPU 上執行。"
}
}
},
@@ -246,7 +246,7 @@
"customUrl": "自訂影片流地址",
"brandInformation": "品牌資訊",
"brandUrlFormat": "對於採用RTSP URL格式的攝影機,其格式為:{{exampleUrl}}",
- "customUrlPlaceholder": "rtsp://使用者名稱:密碼@主機或IP地址:埠/路徑",
+ "customUrlPlaceholder": "rtsp://使用者名稱:密碼@主機或ip位址:通訊埠/路徑",
"connectionSettings": "連線設定",
"detectionMethod": "影片流偵測方法",
"onvifPort": "ONVIF 埠",
@@ -597,6 +597,32 @@
"title": "修改顯示名稱",
"description": "設定該攝像機在 Frigate 使用者介面中顯示的名稱。若留空,則使用攝像機 ID。",
"rename": "重新命名"
+ },
+ "label": "攝影機狀態",
+ "description": "設定各攝影機的運作狀態。
開啟:正常處理串流。
關閉:暫時暫停處理。重啟 Frigate 後不會保留此狀態。
停用:停止處理並將變更儲存至您的設定中。需要重新啟動才能重新啟用已停用的攝影機。
備註:停用不會影響 go2rtc 的轉流功能。
拖曳控制鍵可調整現用攝影機在整個 UI 中顯示的順序,包括即時儀表板和攝影機選擇下拉選單。",
+ "disabledSubheading": "在設定中禁用",
+ "status": {
+ "on": "開啟",
+ "off": "關閉",
+ "disabled": "已停用"
+ },
+ "disableSuccess": "已停用 {{cameraName}} 並儲存至設定。",
+ "reorderHandle": "拖曳以重新排序",
+ "saving": "儲存中…",
+ "saved": "已儲存",
+ "details": {
+ "edit": "編輯攝影機詳細資料",
+ "title": "編輯攝影機詳細資料",
+ "description": "更新此攝影機在整個 Frigate UI 中使用的顯示名稱、外部 URL 和可見性。",
+ "friendlyNameLabel": "顯示名稱",
+ "friendlyNameHelp": "在整個 Frigate UI 中顯示此攝影機的顯示名稱。留空則會使用攝影機 ID。",
+ "webuiUrlLabel": "攝影機網頁介面網址",
+ "webuiUrlHelp": "可從「偵錯」檢視中直接造訪攝影機網頁介面的網址。留空以停用此連結。",
+ "webuiUrlInvalid": "必須是有效的網址(例如:https://example.com)。",
+ "dashboardLabel": "在即時儀表板上顯示",
+ "dashboardHelp": "在即時儀表板上顯示此攝影機。",
+ "reviewLabel": "在審查中顯示",
+ "reviewHelp": "在「審查」中顯示此攝影機,包括攝影機篩選器、移動審查以及歷史檢視。"
}
},
"cameraConfig": {
@@ -634,7 +660,9 @@
"description": "配置在啟用某個設定檔時,哪些攝影機應被開啟或關閉。設定為“繼承”的攝影機會沿用它原本的啟用/停用狀態。",
"inherit": "繼承",
"enabled": "開啟",
- "disabled": "關閉"
+ "disabled": "關閉",
+ "on": "開啟",
+ "off": "關閉"
},
"cameraType": {
"title": "攝影機型別",
@@ -643,6 +671,88 @@
"normal": "通用",
"dedicatedLpr": "車牌辨識專用",
"saveSuccess": "已更新 {{cameraName}} 的攝影機型別,請重啟 Frigate 以使更改生效。"
+ },
+ "clone": {
+ "sectionTitle": "複製設定",
+ "sectionDescription": "將攝影機的設定複製到另一台攝影機或新攝影機。",
+ "button": "複製設定",
+ "title": "複製攝影機設定",
+ "description": "將攝影機的設定複製到一或多台其他攝影機,或是新攝影機。識別資料(名稱、顯示名稱、網頁介面網址、顯示順序)將不會被複製。",
+ "source": {
+ "label": "來源攝影機",
+ "placeholder": "選擇一個來源攝影機",
+ "required": "選擇一個來源攝影機"
+ },
+ "target": {
+ "legend": "目標",
+ "newRadio": "新攝影機",
+ "newNameLabel": "攝影機名稱",
+ "newNamePlaceholder": "例如:back_door 或 Back Door",
+ "newNameRequired": "必須填寫攝影機名稱",
+ "newNameInvalid": "無效的攝影機名稱",
+ "newNameCollision": "已存在相同名稱的攝影機",
+ "newStreamsForced": "建立新攝影機時,一律會複製串流設定。",
+ "existingCamerasRadio": "現有攝影機",
+ "allCameras": "所有攝影機",
+ "existingPlaceholder": "請至少選擇一台攝影機",
+ "existingDisabled": "沒有其他攝影機可供複製"
+ },
+ "categories": {
+ "legend": "要複製的設定",
+ "description": "選擇要從來源攝影機複製哪些設定。",
+ "selectAll": "全選",
+ "selectNone": "取消全選",
+ "resetDefaults": "重設為預設值",
+ "general": "一般",
+ "spatial": "空間設定",
+ "streams": "串流",
+ "spatialWarningTitle": "解析度不符",
+ "spatialWarning": "來源攝影機 {{srcCamera}} 的偵測解析度 ({{srcWidth}}×{{srcHeight}}) 與以下攝影機不符:{{cameras}}。這些攝影機上的多邊形(偵測區域)可能無法對齊。此為預設關閉;啟用即可按原樣複製。",
+ "restartHint": "需要重新啟動",
+ "items": {
+ "record": "錄影",
+ "snapshots": "快照",
+ "review": "審核",
+ "motion": "移動偵測",
+ "objects": "物件",
+ "audio": "聲音偵測",
+ "audio_transcription": "語音轉文字",
+ "notifications": "通知",
+ "birdseye": "鳥瞰圖",
+ "mqtt": "MQTT",
+ "timestamp_style": "時間戳記樣式",
+ "onvif": "ONVIF",
+ "lpr": "車牌辨識",
+ "face_recognition": "人臉辨識",
+ "semantic_search": "語意搜尋",
+ "genai": "生成式 AI",
+ "type": "攝影機類型(一般 / 車牌識別專用)",
+ "profiles": "設定檔",
+ "detect": "偵測解析度",
+ "zones": "區域",
+ "motion_mask": "移動偵測遮罩",
+ "object_masks": "物件遮罩",
+ "ffmpeg_live": "串流網址與用途"
+ }
+ },
+ "footer": {
+ "changeCount_other": "將套用 {{count}} 項變更",
+ "restartNeeded": "部分變更需要重新啟動。",
+ "liveOnly": "所有變更將即時生效,無需重新啟動。",
+ "submit": "複製",
+ "submitting": "複製中…"
+ },
+ "toast": {
+ "success": "設定已複製到 {{cameraName}}",
+ "successWithRestart": "設定已複製到 {{cameraName}}。請重新啟動 Frigate 以套用所有變更。",
+ "successMulti_other": "設定已複製到 {{count}} 台攝影機",
+ "successMultiWithRestart_other": "設定已複製到 {{count}} 台攝影機。請重新啟動 Frigate 以套用所有變更。",
+ "partialFailure": "已套用 {{successCount}} 個區段;「{{failedSection}}」失敗:{{errorMessage}}",
+ "partialFailureMulti": "設定已複製到 {{successCount}} 台攝影機;{{failed}} 失敗:{{errorMessage}}",
+ "newCameraPartialFailure": "攝影機 {{cameraName}} 已建立,但部分設定複製失敗:{{errorMessage}}",
+ "sourceMissing": "來源攝影機已不存在",
+ "submitError": "無法複製攝影機:{{errorMessage}}"
+ }
}
},
"cameraReview": {
@@ -663,7 +773,7 @@
},
"reviewClassification": {
"title": "審閱分類",
- "desc": "Frigate 將審閱項的嚴重程度分為“警報”和“偵測”兩個等級。預設情況下,所有的人、汽車 目標都將視為警報。你可以透過修改設定檔配置區域來細分。",
+ "desc": "Frigate 將審查項目分類為警報與偵測。預設情況下,所有 人 與 汽車 物件都會被視為警報。您可以透過為其設定所需的區域,來進一步精確分類您的審查項目。",
"noDefinedZones": "此攝影機未設定任何監控區。",
"objectAlertsTips": "所有 {{alertsLabels}} 類目標或物體在 {{cameraName}} 下都將視為警報。",
"zoneObjectAlertsTips": "所有 {{alertsLabels}} 類目標或物體在 {{cameraName}} 下的 {{zone}} 區域內都將視為警報。",
@@ -760,7 +870,7 @@
},
"delete": {
"title": "確認刪除",
- "desc": "你確定要刪除{{type}} “{{name}}” 嗎?",
+ "desc": "你確定要刪除 {{type}} {{name}} 嗎?",
"success": "{{name}} 已被刪除。"
},
"revertOverride": {
@@ -838,7 +948,7 @@
"edit": "編輯畫面變動遮罩",
"defaultName": "畫面變動遮罩 {{number}}",
"context": {
- "title": "畫面變動遮罩用於防止不需要的畫面變動觸發偵測(例如:容易被風吹動的樹枝、攝影機畫面上顯示的時間等)。畫面變動遮罩應謹慎使用,過度的遮罩會導致追蹤目標變得更加困難。"
+ "title": "移動遮罩用於防止不需要的移動觸發偵測(例如:樹枝搖晃、攝影機時間戳記等)。移動遮罩應 非常謹慎地使用,過度的遮罩會導致物件追蹤變得更加困難。"
},
"point_other": "{{count}} 點",
"clickDrawPolygon": "在影像上點選新增點繪製多邊形區域。",
@@ -937,7 +1047,7 @@
"desc": "將在被追蹤的目標周圍顯示邊界框",
"colors": {
"label": "目標邊界框顏色定義",
- "info": "啟用後,將會為每個目標的標籤分配不同的顏色深藍色細線代表該目標或物體在當前時間點未被偵測到灰色細線代表偵測到的目標或物體靜止不動粗線表示在啟動自動追蹤時,該目標為自動追蹤的主體"
+ "info": "啟動時,系統會為每個物件標籤指派不同的顏色深藍色細線代表該物件目前未被偵測到灰色細線代表該物件被偵測為靜止狀態粗線代表該物件正被自動追蹤(若已啟用)"
}
},
"timestamp": {
@@ -1163,7 +1273,8 @@
},
"notificationUnavailable": {
"title": "通知功能不可用",
- "desc": "網頁推送通知需要安全連線(https://…)。這是瀏覽器的限制。請透過安全方式存取 Frigate 以使用通知功能。"
+ "desc": "網頁推送通知需要安全連線(https://…)。這是瀏覽器的限制。請透過安全方式存取 Frigate 以使用通知功能。",
+ "descPwa": "在 iOS 上,只有將 Frigate 加到主畫面後,才能使用網頁推播通知。請開啟 分享 選單,選擇 加入主畫面,然後從新圖示開啟 Frigate,即可為此裝置註冊通知功能。"
},
"globalSettings": {
"title": "全域性設定",
@@ -1425,7 +1536,17 @@
}
},
"cameraInputs": {
- "itemTitle": "影片流 {{index}}"
+ "itemTitle": "影片流 {{index}}",
+ "sourceMode": {
+ "restream": "重新串流 (go2rtc)",
+ "manual": "手動輸入路徑",
+ "go2rtcStreamLabel": "go2rtc 串流",
+ "go2rtcStreamPlaceholder": "選擇一個 go2rtc 串流",
+ "noGo2rtcStreams": "未設定 go2rtc 串流",
+ "go2rtcStreamSearch": "搜尋串流...",
+ "availableStreams": "可用串流",
+ "noMatchingStreams": "沒有符合的串流"
+ }
},
"restartRequiredField": "需要重啟",
"restartRequiredFooter": "配置已更改 - 需要重啟",
@@ -1542,7 +1663,37 @@
"genaiModel": {
"placeholder": "選擇模型…",
"search": "搜尋模型…",
- "noModels": "暫無模型"
+ "noModels": "暫無模型",
+ "available": "可用模型",
+ "useCustom": "使用 \"{{value}}\"",
+ "refresh": "重新整理模型清單",
+ "probeFailed": "無法取得模型清單",
+ "fetchedModels": "已成功取得模型清單"
+ },
+ "liveStreams": {
+ "streamNameLabel": "串流名稱",
+ "streamNamePlaceholder": "例如:主高畫質串流",
+ "go2rtcStreamLabel": "go2rtc 串流",
+ "go2rtcStreamPlaceholder": "選擇一個 go2rtc 串流",
+ "go2rtcStreamSearch": "搜尋或輸入串流名稱…",
+ "noGo2rtcStreams": "未設定 go2rtc 串流",
+ "availableStreams": "可用串流",
+ "useCustom": "使用 \"{{value}}\"",
+ "addStream": "新增串流"
+ },
+ "semanticSearchModelSize": {
+ "notApplicable": "不適用於生成式 AI 服務"
+ },
+ "ptzPresets": {
+ "placeholder": "選擇或輸入預設...",
+ "search": "選擇或輸入預設...",
+ "noPresets": "沒有可用的預設",
+ "available": "攝影機預設",
+ "useCustom": "使用 \"{{value}}\""
+ },
+ "defaultRole": {
+ "admin": "管理員",
+ "viewer": "檢視者"
}
},
"globalConfig": {
@@ -1574,7 +1725,8 @@
"resetError": "重設設定失敗",
"saveAllSuccess_other": "所有 {{count}} 個部分儲存成功。",
"saveAllPartial_other": "已儲存 {{successCount}} / {{totalCount}} 個部分。{{failCount}} 個失敗。",
- "saveAllFailure": "儲存所有部分失敗。"
+ "saveAllFailure": "儲存所有部分失敗。",
+ "saveAllSuccessRestartRequired_other": "已成功儲存 {{count}} 個區塊。請重新啟動 Frigate 以套用變更。"
},
"profiles": {
"title": "設定檔",
@@ -1660,14 +1812,30 @@
"audioMp3": "轉碼為 MP3",
"audioExclude": "排除",
"hardwareNone": "無硬體加速",
- "hardwareAuto": "自動選擇硬體加速"
- }
+ "hardwareAuto": "自動選擇硬體加速",
+ "hardwareVaapi": "VAAPI",
+ "hardwareCuda": "CUDA",
+ "hardwareV4l2m2m": "V4L2 M2M",
+ "hardwareDxva2": "DXVA2",
+ "hardwareVideotoolbox": "VideoToolbox",
+ "addVideoCodec": "新增視訊編碼器",
+ "addAudioCodec": "新增音訊編碼器",
+ "removeCodec": "移除編碼器"
+ },
+ "sourceNumber": "來源 {{index}}"
},
"birdseye": {
"trackingMode": {
"objects": "目標",
"motion": "動作",
"continuous": "持續"
+ },
+ "cameraOrder": {
+ "label": "攝影機排序",
+ "description": "拖曳攝影機以設定它們在鳥瞰佈局中的順序。",
+ "reorderHandle": "拖曳以重新排序",
+ "saving": "儲存中…",
+ "saved": "已儲存"
}
},
"retainMode": {
@@ -1709,9 +1877,9 @@
"logLevel": {
"debug": "Debug",
"info": "Info",
- "warning": "Warning",
+ "warning": "警告",
"error": "Error",
- "critical": "Critical"
+ "critical": "嚴重"
}
},
"onvif": {
@@ -1744,7 +1912,13 @@
},
"detect": {
"fpsGreaterThanFive": "不建議設定偵測幀率高於 5,數值設定過高可能引發效能問題,且不會帶來任何增益。",
- "disabled": "目標偵測已停用。快照、回放條目以及人臉辨識、車牌辨識、生成式 AI 等增強功能都將無法使用。"
+ "disabled": "目標偵測已停用。快照、回放條目以及人臉辨識、車牌辨識、生成式 AI 等增強功能都將無法使用。",
+ "resolutionShouldBeMultipleOfFour": "為了獲得最佳效果,偵測的寬度與高度應為 4 的倍數。其他偶數值可能會在偵測串流中產生畫面殘影或輕微失真。",
+ "aspectRatioMismatch": "您輸入的寬度與高度與目前的偵測解析度長寬比不符。這可能會導致影像被拉伸或失真。",
+ "maxFramesSet": "設定最大影格數將會覆蓋預設行為,並停用靜態物件追蹤。極少有情況需要使用此功能,請謹慎使用。",
+ "squareResolution": "正方形的偵測解析度並不常見。偵測的寬度與高度應符合攝影機的長寬比(例如 16:9),而不是物件偵測模型的尺寸。不相符的長寬比可能會拉伸影像並降低偵測準確率度。",
+ "resolutionHigh": "此偵測解析度高於建議值,可能會增加資源消耗,但不會提高偵測準確度。對於大多數攝影機,建議使用 1080p 或更低的偵測解析度。",
+ "globalResolutionMultipleCameras": "在設定多台攝影機的情況下設定了全域偵測解析度。除非所有攝影機都具有相同的解析度和長寬比,否則應針對每台攝影機單獨定義偵測寬度與高度,以符合各台攝影機的原生長寬比。"
},
"objects": {
"genaiNoDescriptionsProvider": "必須配置具備“描述”功能的生成式 AI 服務商,才能自動生成事件描述。"
@@ -1774,6 +1948,21 @@
},
"semanticSearch": {
"jinav2SmallModelSize": "Jina V2 的大型模型版本記憶體佔用與推理開銷較高,建議搭配獨立顯示卡使用大型模型。"
+ },
+ "model": {
+ "optimizedFor320": "Frigate 已針對 320x320 模型進行最佳化,這是大多數環境下的最佳選擇。640x640 模型速度較慢,且僅在特定情境下有所幫助。",
+ "inputDimensionsNotDetectResolution": "模型輸入的寬度與高度是物件偵測模型的輸入尺寸,而不是攝影機的偵測解析度。它們應該與您使用的模型尺寸相符 — 通常是像 320x320 或 640x640 這樣的正方形尺寸。"
+ },
+ "ffmpeg": {
+ "hwaccelManualNotRecommended": "不建議手動設定硬體加速參數。除非有特殊需求,否則請選擇符合您硬體的預設組態。"
+ },
+ "onvif": {
+ "autotrackingNoZones": "自動追蹤至少需要一個區域。請先在「遮罩 / 區域」中為此攝影機定義一個區域,然後在下方將其設定為必要區域。"
}
+ },
+ "menuDot": {
+ "overrideGlobal": "此區段會覆蓋全域設定",
+ "overrideProfile": "此區段已被 {{profile}} 設定檔覆蓋",
+ "unsaved": "此區段有未儲存的變更"
}
}
diff --git a/web/public/locales/zh-Hant/views/system.json b/web/public/locales/zh-Hant/views/system.json
index 23aa19f880..df8c0a7ca1 100644
--- a/web/public/locales/zh-Hant/views/system.json
+++ b/web/public/locales/zh-Hant/views/system.json
@@ -162,7 +162,7 @@
"info": {
"aspectRatio": "長寬比",
"cameraProbeInfo": "{{camera}} 的詳細資訊",
- "streamDataFromFFPROBE": "串流資料是透過 ffprobe取得。",
+ "streamDataFromFFPROBE": "串流資料是透過 ffprobe 取得。",
"fetching": "正在讀取鏡頭資訊",
"stream": "串流 {{idx}}",
"video": "影片:",
@@ -174,6 +174,21 @@
"error": "錯誤:{{error}}",
"tips": {
"title": "鏡頭詳細資訊"
+ },
+ "keyframes": {
+ "title": "關鍵幀分析",
+ "analyzing": "正在分析關鍵幀... 剩餘 {{seconds}} 秒",
+ "stillAnalyzing": "仍在分析關鍵幀...",
+ "recordStream": "錄影串流:",
+ "keyframeCount": "偵測到的關鍵幀:",
+ "observedDuration": "觀測持續時間:",
+ "gap": "關鍵幀間隔 (最小 / 平均 / 最大):",
+ "segmentLength": "錄影片段長度:",
+ "ok": "每約 {{seconds}} 秒一個關鍵幀,適合錄影與回放。",
+ "warning": "關鍵幀稀疏或不固定(最長間隔約 {{seconds}} 秒),可能使用了智慧編碼(H.264+/H.265+),不建議這樣設定。",
+ "error": "關鍵幀間隔(~{{seconds}} 秒)超過了錄影片段長度({{segmentTime}} 秒)。某些片段可能沒有關鍵幀,這會導致回放中斷。請停用攝影機上的智慧/+編碼,或縮短其關鍵幀間隔。",
+ "unknown": "無法確定關鍵幀間隔。",
+ "recordDisabled": "此攝影機已停用錄影功能。"
}
},
"framesAndDetections": "幀數 / 偵測數",