Compare commits

..

13 Commits

Author SHA1 Message Date
Weblate (bot)
62e45e1682
Merge 702c9a5f16 into cfeb86646f 2026-01-17 12:21:01 +00:00
Hosted Weblate
702c9a5f16
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (215 of 215 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: OverTheHillsAndFarAway <prosjektx@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/nb_NO/
Translation: Frigate NVR/common
2026-01-17 13:20:50 +01:00
Hosted Weblate
0d0b6588f5
Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (43 of 43 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: wolfish1 <fish20488@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/zh_Hant/
Translation: Frigate NVR/views-events
2026-01-17 13:20:50 +01:00
Hosted Weblate
bef60b3016
Translated using Weblate (Uzbek)
Currently translated at 1.3% (1 of 74 strings)

Translated using Weblate (Uzbek)

Currently translated at 1.8% (1 of 55 strings)

Translated using Weblate (Uzbek)

Currently translated at 0.1% (1 of 501 strings)

Translated using Weblate (Uzbek)

Currently translated at 50.0% (1 of 2 strings)

Translated using Weblate (Uzbek)

Currently translated at 16.6% (1 of 6 strings)

Translated using Weblate (Uzbek)

Currently translated at 0.8% (1 of 118 strings)

Translated using Weblate (Uzbek)

Currently translated at 0.4% (1 of 215 strings)

Translated using Weblate (Uzbek)

Currently translated at 4.0% (1 of 25 strings)

Translated using Weblate (Uzbek)

Currently translated at 0.7% (1 of 136 strings)

Translated using Weblate (Uzbek)

Currently translated at 10.0% (1 of 10 strings)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Added translation using Weblate (Uzbek)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Shohruh Ismoilov <shohruh.genius@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/uz/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/uz/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-recording
2026-01-17 13:20:50 +01:00
Hosted Weblate
28ecc893dd
Translated using Weblate (Serbian)
Currently translated at 31.9% (39 of 122 strings)

Translated using Weblate (Serbian)

Currently translated at 16.2% (35 of 215 strings)

Translated using Weblate (Serbian)

Currently translated at 10.3% (52 of 501 strings)

Translated using Weblate (Serbian)

Currently translated at 71.6% (38 of 53 strings)

Translated using Weblate (Serbian)

Currently translated at 42.3% (39 of 92 strings)

Translated using Weblate (Serbian)

Currently translated at 27.9% (38 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 32.2% (38 of 118 strings)

Translated using Weblate (Serbian)

Currently translated at 84.7% (39 of 46 strings)

Translated using Weblate (Serbian)

Currently translated at 70.9% (39 of 55 strings)

Translated using Weblate (Serbian)

Currently translated at 90.6% (39 of 43 strings)

Translated using Weblate (Serbian)

Currently translated at 28.6% (39 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 79.5% (39 of 49 strings)

Translated using Weblate (Serbian)

Currently translated at 5.5% (36 of 654 strings)

Translated using Weblate (Serbian)

Currently translated at 14.8% (32 of 215 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Serbian)

Currently translated at 56.6% (30 of 53 strings)

Translated using Weblate (Serbian)

Currently translated at 72.0% (31 of 43 strings)

Translated using Weblate (Serbian)

Currently translated at 22.7% (31 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Serbian)

Currently translated at 67.3% (31 of 46 strings)

Translated using Weblate (Serbian)

Currently translated at 25.4% (31 of 122 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Serbian)

Currently translated at 56.3% (31 of 55 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Serbian)

Currently translated at 8.5% (43 of 501 strings)

Translated using Weblate (Serbian)

Currently translated at 63.2% (31 of 49 strings)

Translated using Weblate (Serbian)

Currently translated at 32.6% (30 of 92 strings)

Translated using Weblate (Serbian)

Currently translated at 26.2% (31 of 118 strings)

Translated using Weblate (Serbian)

Currently translated at 22.0% (30 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 4.5% (30 of 654 strings)

Co-authored-by: Aleksandar Jevremovic <aleksandar@jevremovic.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sr/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-01-17 13:20:49 +01:00
Hosted Weblate
cac42fcaf6
Translated using Weblate (Finnish)
Currently translated at 76.9% (10 of 13 strings)

Translated using Weblate (Finnish)

Currently translated at 32.8% (215 of 654 strings)

Translated using Weblate (Finnish)

Currently translated at 4.0% (5 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Niko Järvinen <nbjarvinen@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fi/
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-settings
2026-01-17 13:20:49 +01:00
Hosted Weblate
f57b72a0d8
Translated using Weblate (Dutch)
Currently translated at 100.0% (122 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marijn <168113859+Marijn0@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/nl/
Translation: Frigate NVR/views-classificationmodel
2026-01-17 13:20:48 +01:00
Hosted Weblate
9170ad0269
Translated using Weblate (Indonesian)
Currently translated at 13.9% (17 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ariska <ariska@databisnis.id>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/id/
Translation: Frigate NVR/views-classificationmodel
2026-01-17 13:20:48 +01:00
Hosted Weblate
62b8b08821
Translated using Weblate (Hungarian)
Currently translated at 20.4% (25 of 122 strings)

Translated using Weblate (Hungarian)

Currently translated at 88.9% (121 of 136 strings)

Translated using Weblate (Hungarian)

Currently translated at 85.4% (428 of 501 strings)

Translated using Weblate (Hungarian)

Currently translated at 93.9% (202 of 215 strings)

Translated using Weblate (Hungarian)

Currently translated at 68.3% (93 of 136 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Peter Bartfai <pbartfai@stardust.hu>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/hu/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-system
2026-01-17 13:20:47 +01:00
Hosted Weblate
59d7950454
Translated using Weblate (Portuguese)
Currently translated at 90.5% (48 of 53 strings)

Translated using Weblate (Portuguese)

Currently translated at 76.9% (10 of 13 strings)

Translated using Weblate (Portuguese)

Currently translated at 28.6% (35 of 122 strings)

Co-authored-by: Carlos Santos <c.santos00@hotmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/pt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/pt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt/
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
2026-01-17 13:20:47 +01:00
Hosted Weblate
d22367d8fe
Translated using Weblate (Czech)
Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Czech)

Currently translated at 93.4% (86 of 92 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (43 of 43 strings)

Translated using Weblate (Czech)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Czech)

Currently translated at 64.9% (425 of 654 strings)

Translated using Weblate (Czech)

Currently translated at 74.2% (101 of 136 strings)

Translated using Weblate (Czech)

Currently translated at 32.7% (40 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Martin Brož <code@martin-broz.cz>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/cs/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-01-17 13:20:47 +01:00
Hosted Weblate
c2316fac52
Translated using Weblate (Portuguese (Brazil))
Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 68.6% (449 of 654 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 78.6% (107 of 136 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 43.4% (53 of 122 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 77.9% (106 of 136 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.7% (89 of 92 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 40.9% (50 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: cvroque <carlos.vroque@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-01-17 13:20:46 +01:00
Kirill Kulakov
cfeb86646f
fix(recording): handle unexpected filenames in cache maintainer to prevent crash (#21676)
Some checks failed
CI / AMD64 Build (push) Has been cancelled
CI / ARM Build (push) Has been cancelled
CI / Jetson Jetpack 6 (push) Has been cancelled
CI / AMD64 Extra Build (push) Has been cancelled
CI / ARM Extra Build (push) Has been cancelled
CI / Synaptics Build (push) Has been cancelled
CI / Assemble and push default build (push) Has been cancelled
* fix(recording): handle unexpected filenames in cache maintainer to prevent crash

* test(recording): add test for maintainer cache file parsing

* Prevent log spam from unexpected cache files

Addresses PR review feedback: Add deduplication to prevent warning
messages from being logged repeatedly for the same unexpected file
in the cache directory. Each unexpected filename is only logged once
per RecordingMaintainer instance lifecycle.

Also adds test to verify warning is only emitted once per filename.

* Fix code formatting for test_maintainer.py

* fixes + ruff
2026-01-16 19:23:23 -07:00
18 changed files with 272 additions and 14 deletions

View File

@ -97,6 +97,7 @@ class RecordingMaintainer(threading.Thread):
self.object_recordings_info: dict[str, list] = defaultdict(list)
self.audio_recordings_info: dict[str, list] = defaultdict(list)
self.end_time_cache: dict[str, Tuple[datetime.datetime, float]] = {}
self.unexpected_cache_files_logged: bool = False
async def move_files(self) -> None:
cache_files = [
@ -112,7 +113,14 @@ class RecordingMaintainer(threading.Thread):
for cache in cache_files:
cache_path = os.path.join(CACHE_DIR, cache)
basename = os.path.splitext(cache)[0]
camera, date = basename.rsplit("@", maxsplit=1)
try:
camera, date = basename.rsplit("@", maxsplit=1)
except ValueError:
if not self.unexpected_cache_files_logged:
logger.warning("Skipping unexpected files in cache")
self.unexpected_cache_files_logged = True
continue
start_time = datetime.datetime.strptime(
date, CACHE_SEGMENT_FORMAT
).astimezone(datetime.timezone.utc)
@ -164,7 +172,13 @@ class RecordingMaintainer(threading.Thread):
cache_path = os.path.join(CACHE_DIR, cache)
basename = os.path.splitext(cache)[0]
camera, date = basename.rsplit("@", maxsplit=1)
try:
camera, date = basename.rsplit("@", maxsplit=1)
except ValueError:
if not self.unexpected_cache_files_logged:
logger.warning("Skipping unexpected files in cache")
self.unexpected_cache_files_logged = True
continue
# important that start_time is utc because recordings are stored and compared in utc
start_time = datetime.datetime.strptime(

View File

@ -0,0 +1,66 @@
import sys
import unittest
from unittest.mock import MagicMock, patch
# Mock complex imports before importing maintainer
sys.modules["frigate.comms.inter_process"] = MagicMock()
sys.modules["frigate.comms.detections_updater"] = MagicMock()
sys.modules["frigate.comms.recordings_updater"] = MagicMock()
sys.modules["frigate.config.camera.updater"] = MagicMock()
# Now import the class under test
from frigate.config import FrigateConfig # noqa: E402
from frigate.record.maintainer import RecordingMaintainer # noqa: E402
class TestMaintainer(unittest.IsolatedAsyncioTestCase):
async def test_move_files_survives_bad_filename(self):
config = MagicMock(spec=FrigateConfig)
config.cameras = {}
stop_event = MagicMock()
maintainer = RecordingMaintainer(config, stop_event)
# We need to mock end_time_cache to avoid key errors if logic proceeds
maintainer.end_time_cache = {}
# Mock filesystem
# One bad file, one good file
files = ["bad_filename.mp4", "camera@20210101000000+0000.mp4"]
with patch("os.listdir", return_value=files):
with patch("os.path.isfile", return_value=True):
with patch(
"frigate.record.maintainer.psutil.process_iter", return_value=[]
):
with patch("frigate.record.maintainer.logger.warning") as warn:
# Mock validate_and_move_segment to avoid further logic
maintainer.validate_and_move_segment = MagicMock()
try:
await maintainer.move_files()
except ValueError as e:
if "not enough values to unpack" in str(e):
self.fail("move_files() crashed on bad filename!")
raise e
except Exception:
# Ignore other errors (like DB connection) as we only care about the unpack crash
pass
# The bad filename is encountered in multiple loops, but should only warn once.
matching = [
c
for c in warn.call_args_list
if c.args
and isinstance(c.args[0], str)
and "Skipping unexpected files in cache" in c.args[0]
]
self.assertEqual(
1,
len(matching),
f"Expected a single warning for unexpected files, got {len(matching)}",
)
if __name__ == "__main__":
unittest.main()

View File

@ -1 +1,11 @@
{}
{
"documentTitle": "Luokittelumallit - Frigate",
"details": {
"scoreInfo": "Pistemäärä edustaa tämän objektin kaikkien havaintojen keskimääräistä luokitteluvarmuutta.",
"none": "Ei mitään"
},
"button": {
"deleteImages": "Poista kuvat",
"trainModel": "Kouluta malli"
}
}

View File

@ -13,5 +13,8 @@
"title": "Nimeä uudelleen",
"desc": "Anna uusi nimi viedylle kohteelle.",
"saveExport": "Tallenna vienti"
},
"tooltip": {
"editName": "Muokkaa nimeä"
}
}

View File

@ -10,7 +10,8 @@
"object": "Virheenjäljitys - Frigate",
"authentication": "Autentikointiuasetukset - Frigate",
"notifications": "Ilmoitusasetukset - Frigate",
"enrichments": "Laajennusasetukset Frigate"
"enrichments": "Laajennusasetukset Frigate",
"cameraManagement": "Hallitse Kameroita - Frigate"
},
"menu": {
"ui": "Käyttöliittymä",

View File

@ -41,5 +41,14 @@
"snort": "Шмркање",
"cough": "Кашаљ",
"throat_clearing": "Прочишћавање грла",
"sneeze": "Кијање"
"sneeze": "Кијање",
"sniff": "Њушкање",
"run": "Трчање",
"shuffle": "Насумично",
"footsteps": "Корачање",
"chewing": "Жвакање",
"biting": "Угриз",
"gargling": "Гргорење",
"stomach_rumble": "Крчање стомака",
"camera": "Камера"
}

View File

@ -38,7 +38,14 @@
"hour_one": "{{time}} сат",
"hour_few": "{{time}} сата",
"hour_other": "{{time}} сати",
"m": "{{time}}m"
"m": "{{time}}m",
"minute_one": "{{time}} минут",
"minute_few": "{{time}} минута",
"minute_other": "{{time}} минута",
"s": "{{time}}s",
"second_one": "{{time}} секунда",
"second_few": "{{time}} секунде",
"second_other": "{{time}} секунди"
},
"readTheDocumentation": "Прочитајте документацију"
}

View File

@ -52,10 +52,28 @@
"smartStreaming": {
"label": "Паметан стриминг (препоручено)",
"desc": "Паметан стриминг ће ажурирати слике камере једном у минуту, када нема детектоване активности, да би се уштедело на мрежном саобраћају и ресурсима. Када је детектована активност, слика ће аутоматски прећи на стриминг уживо."
},
"continuousStreaming": {
"label": "Непрекидно стримовање",
"desc": {
"title": "Слика камере ће увек бити стрим уживо када је видљива на контролној табли, чак и када активност није детектована.",
"warning": "Непрекидно стримовање може проузроковати високу употребу мрежу и проблеме са перформансама. Користити опрезно."
}
}
}
},
"compatibilityMode": {
"label": "Режим компатибилности",
"desc": "Омогућите ову опцију само ако репродукција стрима уживо на камери приказује обојене артифекте и има дијагоналну линију на десној страни слице."
}
}
}
},
"debug": {
"options": {
"label": "Подешавања",
"title": "Опције",
"showOptions": "Приказ опција"
}
}
}

View File

@ -65,5 +65,25 @@
"saveExport": "Чување извоза",
"previewExport": "Преглед извоза"
}
},
"streaming": {
"label": "Стрим",
"restreaming": {
"disabled": "Поновни стриминг није омогућен за ову камеру.",
"desc": {
"title": "Подесите go2rtc за додатне опције репродукције слике и звука уживо за ову камеру."
}
},
"showStats": {
"label": "Приказ статистике стримовања",
"desc": "Омогућите ову опцију за приказ статистике стримовања као надслој на преноса са камере."
},
"debugView": "Приказ за дебаговање"
},
"search": {
"saveSearch": {
"label": "Сачувати претрагу",
"desc": "Обезбедите назив за ову сачувану претрагу."
}
}
}

View File

@ -29,5 +29,12 @@
"shoe": "Ципела",
"eye_glasses": "Наочаре",
"handbag": "Ручна торба",
"tie": "Кравата"
"tie": "Кравата",
"suitcase": "Актовка",
"frisbee": "Фризби",
"skis": "Скије",
"snowboard": "Сноуборд",
"sports_ball": "Спортска лопта",
"baseball_bat": "Палица за бејзбол",
"baseball_glove": "Рукавица за бејзбол"
}

View File

@ -40,10 +40,22 @@
"deleteModelFailed": "Неуспешно брисање модела: {{errorMessage}}",
"categorizeFailed": "Неуспешна категоризација слике: {{errorMessage}}",
"trainingFailed": "Неуспешно тренирање модела. Проверите Фригејт логове за детаље.",
"trainingFailedToStart": "Неуспешан почетак тренирања модела: {{errorMessage}}"
"trainingFailedToStart": "Неуспешан почетак тренирања модела: {{errorMessage}}",
"updateModelFailed": "Неуспешно ажурирање модела: {{errorMessage}}",
"renameCategoryFailed": "Неуспешно преименовање класе: {{errorMessage}}"
}
},
"train": {
"titleShort": "Скорашње"
},
"deleteCategory": {
"title": "Брисање класе",
"desc": "Да ли сте сигурни да желите да обришете класу {{name}}? Тиме ће трајно бити обрисане и све придружене слике и биће потребно поновно тренирање модела.",
"minClassesTitle": "Није могуће обрисати класу",
"minClassesDesc": "Класификациони модел мора имати најмање две класе. Додајте нову класу пре него што избришете ову."
},
"deleteModel": {
"title": "Брисање класификационог модела",
"single": "Да ли сте сигурни да желите да обришете {{name}}? Ово ће трајно обрисати све повезане податке, укључујући слике и податке за тренирање. Ова акција се не може накнадно опозвати."
}
}

View File

@ -47,5 +47,15 @@
},
"calendarFilter": {
"last24Hours": "Последња 24 часа"
}
},
"markAsReviewed": "Означавање да је прегледано",
"markTheseItemsAsReviewed": "Означи ове ставке као прегледане",
"newReviewItems": {
"label": "Приказ нових ставки за прегледање",
"button": "Нове ставке за преглед"
},
"selected_one": "{{count}} изабрано",
"selected_other": "{{count}} изабрано",
"select_all": "Све",
"camera": "Камера"
}

View File

@ -46,6 +46,18 @@
"createObjectMask": "Креирање маске објекта",
"adjustAnnotationSettings": "Прилагођавање подешавања анотације",
"scrollViewTips": "Кликните да видите значајне моменте у животном циклусу овог објекта.",
"autoTrackingTips": "Позиције оквира неће бити тачне за камере са аутоматским праћењем."
"autoTrackingTips": "Позиције оквира неће бити тачне за камере са аутоматским праћењем.",
"count": "{{first}} од {{second}}",
"trackedPoint": "Праћена тачка",
"lifecycleItemDesc": {
"visible": "{{label}} детектован",
"entered_zone": "{{label}} је ушао у {{zones}}",
"active": "{{label}} се активирао",
"stationary": "{{label}} је постао стационаран",
"attribute": {
"faceOrLicense_plate": "{{attribute}} детектован за {{label}}",
"other": "{{label}} је препознат као {{attribute}}"
}
}
}
}

View File

@ -56,6 +56,18 @@
"addFace": "Додавање лица",
"renameFace": "Преименовање лица",
"deleteFace": "Брисање лица",
"uploadImage": "Отпремање слике"
}
"uploadImage": "Отпремање слике",
"reprocessFace": "Поново обради лице"
},
"imageEntry": {
"validation": {
"selectImage": "Изаберите фајл са сликом."
},
"dropActive": "Превуците слику овде…",
"dropInstructions": "Превуците или пејстујте слику овде, или кликните за избор",
"maxSize": "Максимална величина: {{size}}MB"
},
"nofaces": "Нема доступних лица",
"trainFaceAs": "Тренирање лица као:",
"trainFace": "Тренирање лица"
}

View File

@ -72,5 +72,22 @@
"snapshots": {
"enable": "Укључивање снепшотова",
"disable": "Онемогућивање снепшотова"
},
"snapshot": {
"takeSnapshot": "Преузимање тренутног снимка",
"noVideoSource": "Нема доступних извора за снепшот.",
"captureFailed": "Неуспешно прављење снепшота.",
"downloadStarted": "Преузимање снепшота је започето."
},
"audioDetect": {
"enable": "Омогућавање детектовања звука",
"disable": "Онемогућавање детекције звука"
},
"transcription": {
"enable": "Омогућавање транскрибовања звука уживо",
"disable": "Искључивање транскрибовања звука уживо"
},
"autotracking": {
"enable": "Омогућавање аутоматског праћења"
}
}

View File

@ -38,7 +38,19 @@
"beforeDateBeLaterAfter": "Датум 'пре' мора бити након датума 'после'.",
"afterDatebeEarlierBefore": "Датум 'после' мора бити пре датума 'пре'.",
"minScoreMustBeLessOrEqualMaxScore": "'min_score' мора бити нижи или један 'max_score'.",
"maxScoreMustBeGreaterOrEqualMinScore": "'max_score' мора бити већи или једнак од 'min_score'."
"maxScoreMustBeGreaterOrEqualMinScore": "'max_score' мора бити већи или једнак од 'min_score'.",
"minSpeedMustBeLessOrEqualMaxSpeed": "'min_speed' мора бити мања или једнака 'max_speed'.",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "'max_speed' мора бити већа или једнака 'min_speed'."
}
},
"tips": {
"title": "Како да се користе филтери за текст",
"desc": {
"text": "Филтери Вам помажу да сузите резултате претраге. Ево како да их користите у пољима за унос:",
"step1": "Откуцајте назив кључа филтера а затим две тачке (нпр. \"cameras:\").",
"step2": "Изаберите предложену или сопствену вредност.",
"step3": "Примените више филтера тако што ћете их додати један за другим са размаком између.",
"step4": "Филтери за датум (пре: и касније:) користе {{DateFormat}} формат."
}
}
}

View File

@ -44,7 +44,21 @@
"automaticLiveView": {
"label": "Аутоматси преглед уживо",
"desc": "Аутоматско пребацивање на преглед камере уживо када је активност детектована. Онемогућавање ове опције доводи до тога да се слике камере на контролној тапли ажурирају једном у минуту."
},
"playAlertVideos": {
"label": "Репродукуј видео за узбуну",
"desc": "Скорашњa упозорења се на контролној табли подразумевано репродукују као мали видеи који се понављају. Онемогућите ову опцију за приказивање само статичке слике скорашњих упозорења (на овом уређају/браузеру)."
},
"displayCameraNames": {
"label": "Увек приказивати називе камера",
"desc": "Увек приказивати називе камера у чипу у репродукцији уживо више камера на контролној табли."
},
"liveFallbackTimeout": {
"desc": "Када стрим високог квалитета није доступан за камеру, спусти се на режим споре мреже након оволико секунди. Подразумевано 3."
}
},
"storedLayouts": {
"title": "Сачувани распореди"
}
}
}

View File

@ -48,7 +48,21 @@
"hardwareInfo": {
"title": "Информације о хардверу",
"gpuUsage": "Употреба GPU",
"gpuMemory": "GPU меморија"
"gpuMemory": "GPU меморија",
"gpuEncoder": "GPU енкодер",
"gpuDecoder": "GPU декодер",
"gpuInfo": {
"vainfoOutput": {
"title": "Vainfo Output",
"returnCode": "Повратни код: {{code}}",
"processOutput": "Обрада излаза:",
"processError": "Грешка у обради:"
},
"nvidiaSMIOutput": {
"title": "Nvidia SMI излаз",
"name": "Назив: {{name}}"
}
}
}
}
}