Compare commits

...

67 Commits

Author SHA1 Message Date
Josh Hawkins
7cf439e010
remove h264 reference for webrtc (#19688) 2025-08-21 08:21:18 -06:00
Josh Hawkins
8a01643acf
clarify webrtc for two way talk (#19683) 2025-08-21 04:43:07 -06:00
Josh Hawkins
664a6fd0cb
remove newlines (#19671)
let mermaid format the text directly
2025-08-20 14:19:55 -06:00
Josh Hawkins
2b185a1105
Update bug report template (#19664)
* update bug report template

* remove additional field
2025-08-20 12:57:24 -06:00
Josh Hawkins
75e33d8a56
Catch invalid key in genai prompt (#19657) 2025-08-20 08:03:50 -05:00
Jan Šuklje
8f4b5b4bdb
Refactored Viewer role Notifications settings (#19640)
- now each individual element is shown if allowed by role, instead of having multiple return statement for each role
2025-08-19 18:29:11 -06:00
Josh Hawkins
95cea06dd3
Revert video dimension layout fix for chrome (#19636)
originally introduced in https://github.com/blakeblackshear/frigate/pull/19414
2025-08-19 14:42:20 -05:00
Nicolas Mowen
ec2543c23f
Fix hls not loading video in explore (#19625) 2025-08-19 13:14:14 -05:00
Josh Hawkins
d27e8c1bbf
run autotracking setup method in asyncio coroutine (#19614) 2025-08-19 07:07:24 -05:00
Josh Hawkins
353ee1228c
Return 500 from the face registration endpoint if Frigate has not yet been restarted (#19601) 2025-08-18 14:49:50 -06:00
Josh Hawkins
ba20b61c43
Deprecate API field include_thumbnails (#19584)
* Add deprecation note to API docs for include_thumbnails

* for search query params as well
2025-08-18 08:26:02 -05:00
Nicolas Mowen
b45f642868
Use sed on correct file (#19590) 2025-08-18 07:21:42 -06:00
Josh Hawkins
9ed7ccab75
Embeddings maintainer should start if bird classification is enabled (#19576) 2025-08-17 19:48:21 -06:00
harry
ceced7cc91
Install non-free i965 driver (#19571) 2025-08-17 18:45:21 -06:00
Josh Hawkins
1db26cb41e
Ensure birdseye is enabled before trying to grab a frame from it (#19573) 2025-08-17 17:26:18 -06:00
Josh Hawkins
6840415b6c
Fix content type for latest image API endpoint (#19555)
* Fix content type for latest image API endpoint

Extension is an enum and .value needed to be appended. Additionally, fastapi's Response() automatically sets the content type when media_type is specified, so a Content-Type in the headers was redundant.

* Remove another unneeded Content-Type
2025-08-16 21:20:21 -06:00
Nicolas Mowen
06539c925c
Pull sqlite3 from mirror (#19540)
* Pull sqlite3 from mirror

* Remove extra wget

* Adjust folder name

* Use pre-built sqlite

* Include unzip
2025-08-16 09:30:24 -05:00
Josh Hawkins
addb4e6891
Fix percentage in recording cleanup log (#19525)
* Fix percentage in recording cleanup log

* fix

* update reference config
2025-08-16 07:10:08 -06:00
Nicolas Mowen
fb290c411b
HLS Playback Startup Time Optimization (#19503)
* Include preferred startTime in source so that the playlist does not need to seek

* Compatibility

* Cleanup

* Adjust based on inpoint

* Don't set start position if it is not valid

* Handle firefox buggy behavior
2025-08-16 07:09:15 -06:00
Josh Hawkins
89db960c05
Remove score sorting constraint (#19501)
Do not require a score filter to be applied in order to sort by object score.
2025-08-16 07:08:11 -06:00
Josh Hawkins
2cde58037d
Improve recognized license plate filter (#19491)
* Fetch all license plates outside of filter component

If the swr call took a long time, the entire select component may not display. This change moves the fetch to the parent component (like sub labels).

* add loading indicator

* improve query
2025-08-16 07:05:50 -06:00
Josh Hawkins
d1be614a10
Bump makefile version (#19539) 2025-08-16 07:05:15 -06:00
Josh Hawkins
93c7c8c518
Bump version in docs (#19538) 2025-08-16 07:47:42 -05:00
Blake Blackshear
c83a35d090
Merge pull request #16390 from blakeblackshear/dev
0.16 Release
2025-08-16 07:34:45 -05:00
Blake Blackshear
d31a4e3443 Merge remote-tracking branch 'origin/master' into dev 2025-08-16 07:32:44 -05:00
Josh Hawkins
c2f8de94e8
Add languages (#19447) 2025-08-10 06:27:47 -06:00
Hosted Weblate
f46560d2bf Translated using Weblate (Dutch)
Currently translated at 100.0% (352 of 352 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-settings/nl/
Translation: Frigate NVR/views-settings
2025-08-10 06:24:00 -06:00
Hosted Weblate
a1acb504ee Translated using Weblate (Hungarian)
Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Zsolt Fojtyik <zsozso830316@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/hu/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-settings
2025-08-10 06:24:00 -06:00
Hosted Weblate
3d79eef227 Translated using Weblate (Romanian)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (427 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lukasig <lukasig@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ro/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-10 06:24:00 -06:00
Hosted Weblate
efe0d2a931 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (48 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (427 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 88.5% (378 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.5% (340 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 88.5% (378 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 59.3% (209 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 59.3% (209 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.5% (216 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.5% (216 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Rogério Mendes <rogeriomendes.mg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/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-search/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-player
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-10 06:24:00 -06:00
Hosted Weblate
cbd5bdfd88 Translated using Weblate (Galician)
Currently translated at 6.1% (7 of 114 strings)

Translated using Weblate (Galician)

Currently translated at 6.1% (7 of 114 strings)

Translated using Weblate (Galician)

Currently translated at 1.9% (7 of 352 strings)

Translated using Weblate (Galician)

Currently translated at 1.9% (7 of 352 strings)

Translated using Weblate (Galician)

Currently translated at 14.5% (7 of 48 strings)

Translated using Weblate (Galician)

Currently translated at 14.5% (7 of 48 strings)

Translated using Weblate (Galician)

Currently translated at 83.3% (5 of 6 strings)

Translated using Weblate (Galician)

Currently translated at 8.0% (5 of 62 strings)

Translated using Weblate (Galician)

Currently translated at 8.0% (5 of 62 strings)

Translated using Weblate (Galician)

Currently translated at 66.6% (6 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 66.6% (6 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 75.0% (6 of 8 strings)

Translated using Weblate (Galician)

Currently translated at 75.0% (6 of 8 strings)

Translated using Weblate (Galician)

Currently translated at 24.0% (6 of 25 strings)

Translated using Weblate (Galician)

Currently translated at 24.0% (6 of 25 strings)

Translated using Weblate (Galician)

Currently translated at 9.0% (6 of 66 strings)

Translated using Weblate (Galician)

Currently translated at 9.0% (6 of 66 strings)

Translated using Weblate (Galician)

Currently translated at 14.0% (7 of 50 strings)

Translated using Weblate (Galician)

Currently translated at 14.0% (7 of 50 strings)

Translated using Weblate (Galician)

Currently translated at 25.0% (6 of 24 strings)

Translated using Weblate (Galician)

Currently translated at 25.0% (6 of 24 strings)

Translated using Weblate (Galician)

Currently translated at 13.5% (16 of 118 strings)

Translated using Weblate (Galician)

Currently translated at 13.5% (16 of 118 strings)

Translated using Weblate (Galician)

Currently translated at 66.6% (6 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 66.6% (6 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 8.7% (7 of 80 strings)

Translated using Weblate (Galician)

Currently translated at 8.7% (7 of 80 strings)

Translated using Weblate (Galician)

Currently translated at 3.9% (17 of 427 strings)

Translated using Weblate (Galician)

Currently translated at 3.9% (17 of 427 strings)

Translated using Weblate (Galician)

Currently translated at 5.2% (6 of 115 strings)

Translated using Weblate (Galician)

Currently translated at 5.2% (6 of 115 strings)

Translated using Weblate (Galician)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Galician)

Currently translated at 17.3% (8 of 46 strings)

Translated using Weblate (Galician)

Currently translated at 17.3% (8 of 46 strings)

Translated using Weblate (Galician)

Currently translated at 4.9% (9 of 183 strings)

Translated using Weblate (Galician)

Currently translated at 4.9% (9 of 183 strings)

Translated using Weblate (Galician)

Currently translated at 0.8% (1 of 114 strings)

Translated using Weblate (Galician)

Currently translated at 0.2% (1 of 352 strings)

Translated using Weblate (Galician)

Currently translated at 4.1% (2 of 48 strings)

Translated using Weblate (Galician)

Currently translated at 50.0% (3 of 6 strings)

Translated using Weblate (Galician)

Currently translated at 3.2% (2 of 62 strings)

Translated using Weblate (Galician)

Currently translated at 22.2% (2 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 25.0% (2 of 8 strings)

Translated using Weblate (Galician)

Currently translated at 8.0% (2 of 25 strings)

Translated using Weblate (Galician)

Currently translated at 3.0% (2 of 66 strings)

Translated using Weblate (Galician)

Currently translated at 4.0% (2 of 50 strings)

Translated using Weblate (Galician)

Currently translated at 8.3% (2 of 24 strings)

Translated using Weblate (Galician)

Currently translated at 1.6% (2 of 118 strings)

Translated using Weblate (Galician)

Currently translated at 22.2% (2 of 9 strings)

Translated using Weblate (Galician)

Currently translated at 2.5% (2 of 80 strings)

Translated using Weblate (Galician)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Galician)

Currently translated at 0.7% (3 of 427 strings)

Translated using Weblate (Galician)

Currently translated at 1.7% (2 of 115 strings)

Translated using Weblate (Galician)

Currently translated at 50.0% (1 of 2 strings)

Translated using Weblate (Galician)

Currently translated at 4.3% (2 of 46 strings)

Translated using Weblate (Galician)

Currently translated at 1.0% (2 of 183 strings)

Added translation using Weblate (Galician)

Added translation using Weblate (Galician)

Added translation using Weblate (Galician)

Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Co-authored-by: Alexandre Espinosa Menor <aemenor@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: seryeb - <seryeb@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/gl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/gl/
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-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
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-recording
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-10 06:24:00 -06:00
GuoQing Liu
6f2e6c4cb2
Fix if search word is number will be crash (#19426)
* fix: fix if filterValues is number will be crash

* chore: use String function cover filterValues
2025-08-08 09:22:08 -06:00
Josh Hawkins
84f48ee3eb
Ensure arrayKeys remains a stable array reference (#19428)
fixes infinite loop and react crash from changes in #19406
2025-08-08 05:54:03 -06:00
Nicolas Mowen
49793aa655
Don't use memo on subscribable (#19424) 2025-08-07 22:28:53 -05:00
Nicolas Mowen
4869f46ab6
Fixes (#19420)
* Remove torch install

* notification fixes

the pubkey was not being returned if notifications was not enabled at the global level

* Put back

* single condition check for fetching and disabling button

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-08-07 15:34:25 -06:00
Nicolas Mowen
5e5beb9837
Fixes (#19414)
* Don't assume video is 16 / 9

* Don't apply docker constraints for rockchp toolkit
2025-08-07 12:08:33 -05:00
Hosted Weblate
f7184c8ed5 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lâm Lê <silamle6@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/vi/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-system
2025-08-07 04:43:37 -06:00
Hosted Weblate
2e1b81b380 Translated using Weblate (Finnish)
Currently translated at 31.5% (36 of 114 strings)

Translated using Weblate (Finnish)

Currently translated at 56.4% (35 of 62 strings)

Translated using Weblate (Finnish)

Currently translated at 51.5% (34 of 66 strings)

Translated using Weblate (Finnish)

Currently translated at 68.0% (34 of 50 strings)

Translated using Weblate (Finnish)

Currently translated at 13.8% (59 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Toni Liski <nacree@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/fi/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-system
2025-08-07 04:40:46 -06:00
Hosted Weblate
30cf274815 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lâm Lê <silamle6@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/vi/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-system
2025-08-07 04:40:46 -06:00
Hosted Weblate
b15c799d8c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 42.0% (148 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (115 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 81.4% (149 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 38.6% (165 of 427 strings)

Co-authored-by: Deilson Peres <deilson.peres@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/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-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-07 04:40:46 -06:00
Josh Hawkins
b6b3178e3d
Fixes (#19406)
* Fix api filter hook

cameras, labels, sub labels, plates, and zones could be parsed as numeric values rather than strings, which would break the explore filter. This change adds an optional param to the useApiFilterArgs hook to always parse keys as string[]

* fix notifications register button from being incorrectly disabled
2025-08-06 22:09:43 -05:00
Nicolas Mowen
334b6670e1
Add note for Gemini base url (#19399) 2025-08-06 07:02:40 -06:00
Hosted Weblate
5fc030c3f6 Translated using Weblate (Finnish)
Currently translated at 83.3% (40 of 48 strings)

Translated using Weblate (Finnish)

Currently translated at 53.2% (33 of 62 strings)

Translated using Weblate (Finnish)

Currently translated at 46.0% (53 of 115 strings)

Translated using Weblate (Finnish)

Currently translated at 50.0% (33 of 66 strings)

Translated using Weblate (Finnish)

Currently translated at 64.0% (32 of 50 strings)

Translated using Weblate (Finnish)

Currently translated at 13.5% (58 of 427 strings)

Translated using Weblate (Finnish)

Currently translated at 77.0% (37 of 48 strings)

Translated using Weblate (Finnish)

Currently translated at 48.3% (30 of 62 strings)

Translated using Weblate (Finnish)

Currently translated at 45.2% (52 of 115 strings)

Translated using Weblate (Finnish)

Currently translated at 46.9% (31 of 66 strings)

Translated using Weblate (Finnish)

Currently translated at 13.3% (57 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Julius Hyvönen <julius.hyvonen@gmail.com>
Co-authored-by: Risto Toivanen <risto.toivanen@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/fi/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-search
2025-08-05 16:35:12 -06:00
Hosted Weblate
ca3afa8ac4 Translated using Weblate (Swedish)
Currently translated at 28.9% (33 of 114 strings)

Translated using Weblate (Swedish)

Currently translated at 21.0% (24 of 114 strings)

Translated using Weblate (Swedish)

Currently translated at 14.9% (17 of 114 strings)

Translated using Weblate (Swedish)

Currently translated at 57.5% (38 of 66 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lars Gustavsson <lars@textalk.se>
Co-authored-by: Oscar Haraldsson <oscar.haraldsson@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sv/
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-system
2025-08-05 16:35:12 -06:00
Hosted Weblate
878f401ad2 Translated using Weblate (Indonesian)
Currently translated at 18.7% (9 of 48 strings)

Translated using Weblate (Indonesian)

Currently translated at 8.6% (10 of 115 strings)

Translated using Weblate (Indonesian)

Currently translated at 41.6% (10 of 24 strings)

Translated using Weblate (Indonesian)

Currently translated at 18.0% (9 of 50 strings)

Co-authored-by: Fikry Budi Hasbillah <fikrybudih@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/id/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-search
2025-08-05 16:35:12 -06:00
Hosted Weblate
99f9c1529d Translated using Weblate (Portuguese (Brazil))
Currently translated at 85.9% (98 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 27.8% (98 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 85.2% (98 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 83.8% (99 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 54.0% (99 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 27.4% (117 of 427 strings)

Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Update translation files

Updated by "Squash Git commits" add-on in Weblate.

Translated using Weblate (Portuguese (Brazil))

Currently translated at 76.3% (87 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 24.7% (87 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (80 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 76.5% (88 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 48.6% (89 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 65.7% (75 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 65.7% (75 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 21.3% (75 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (48 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (75 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (61 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (61 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 66.0% (76 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (66 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 65.2% (77 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 41.5% (76 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 20.6% (88 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Rogério Mendes <rogeriomendes.mg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/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-search/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-explore
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
2025-08-05 16:35:12 -06:00
Hosted Weblate
369e6ba2c2 Translated using Weblate (Lithuanian)
Currently translated at 7.8% (9 of 114 strings)

Translated using Weblate (Lithuanian)

Currently translated at 2.2% (8 of 352 strings)

Translated using Weblate (Lithuanian)

Currently translated at 20.8% (10 of 48 strings)

Translated using Weblate (Lithuanian)

Currently translated at 8.7% (7 of 80 strings)

Translated using Weblate (Lithuanian)

Currently translated at 11.2% (7 of 62 strings)

Translated using Weblate (Lithuanian)

Currently translated at 5.2% (6 of 115 strings)

Translated using Weblate (Lithuanian)

Currently translated at 13.6% (9 of 66 strings)

Translated using Weblate (Lithuanian)

Currently translated at 18.0% (9 of 50 strings)

Translated using Weblate (Lithuanian)

Currently translated at 21.7% (10 of 46 strings)

Translated using Weblate (Lithuanian)

Currently translated at 8.4% (36 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Povilas Arlauskas <povilas.arl@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/lt/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-explore
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
2025-08-05 16:35:12 -06:00
Nicolas Mowen
8254602449
Fix not deleting thumbnails (#19371)
* Fix not deleting thumbnails

* Consoldiate langauge tags
2025-08-04 00:56:23 -05:00
Hosted Weblate
a0a5aad3c2 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 8.6% (37 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: fascinate722 <fascinate722@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/zh_Hant/
Translation: Frigate NVR/audio
Translation: Frigate NVR/objects
2025-08-02 07:55:35 -06:00
Hosted Weblate
f107aa3cea Added translation using Weblate (Korean)
Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Added translation using Weblate (Korean)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: 김민성 <noom0290@gmail.com>
2025-08-02 07:55:35 -06:00
Hosted Weblate
cd7b9b604e Translated using Weblate (Serbian)
Currently translated at 5.2% (6 of 114 strings)

Translated using Weblate (Serbian)

Currently translated at 6.0% (7 of 115 strings)

Translated using Weblate (Serbian)

Currently translated at 29.1% (7 of 24 strings)

Translated using Weblate (Serbian)

Currently translated at 87.5% (7 of 8 strings)

Translated using Weblate (Serbian)

Currently translated at 28.0% (7 of 25 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Serbian)

Currently translated at 10.6% (7 of 66 strings)

Translated using Weblate (Serbian)

Currently translated at 15.2% (7 of 46 strings)

Translated using Weblate (Serbian)

Currently translated at 77.7% (7 of 9 strings)

Translated using Weblate (Serbian)

Currently translated at 5.9% (7 of 118 strings)

Translated using Weblate (Serbian)

Currently translated at 13.6% (25 of 183 strings)

Translated using Weblate (Serbian)

Currently translated at 3.0% (13 of 427 strings)

Co-authored-by: Dalibor Radovanović <darkobg@gmail.com>
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-filter/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/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-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-system/sr/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-system
2025-08-02 07:55:35 -06:00
Hosted Weblate
1bbc8823da Translated using Weblate (Polish)
Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Łukasz Jernaś <deejay1@srem.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pl/
Translation: Frigate NVR/common
2025-08-02 07:55:35 -06:00
Hosted Weblate
30de45a6f4 Translated using Weblate (Hungarian)
Currently translated at 100.0% (352 of 352 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Zsolt Fojtyik <zsozso830316@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/hu/
Translation: Frigate NVR/views-settings
2025-08-02 07:55:35 -06:00
Hosted Weblate
f9e5350d5a Translated using Weblate (Portuguese)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (352 of 352 strings)

Translated using Weblate (Portuguese)

Currently translated at 100.0% (66 of 66 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Tiago Krüger <tiagokruger404@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt/
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-02 07:55:35 -06:00
Hosted Weblate
1471491124 Translated using Weblate (Romanian)
Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (183 of 183 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (50 of 50 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lukasig <lukasig@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ro/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-events
2025-08-02 07:55:35 -06:00
Hosted Weblate
c1da7128da Translated using Weblate (Russian)
Currently translated at 100.0% (183 of 183 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Артём Владимиров <artyomka71@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ru/
Translation: Frigate NVR/common
2025-08-02 07:55:35 -06:00
Hosted Weblate
f33468767e Translated using Weblate (Portuguese (Brazil))
Currently translated at 39.4% (45 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.4% (45 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (45 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 93.7% (45 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 57.5% (46 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 57.5% (46 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 74.1% (46 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 74.1% (46 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.1% (45 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.1% (45 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 63.6% (42 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 63.6% (42 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (46 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (46 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.6% (44 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.6% (44 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.7% (41 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.7% (41 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.4% (41 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 12.4% (53 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 29.8% (34 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 70.8% (34 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 42.5% (34 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 31.3% (36 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 53.0% (35 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 70.0% (35 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 76.0% (35 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 29.6% (35 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 19.6% (36 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 11.0% (47 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 26.3% (30 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 62.5% (30 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 37.5% (30 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 69.3% (43 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 26.9% (31 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 45.4% (30 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 60.0% (30 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 67.3% (31 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 26.2% (31 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 17.4% (32 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 10.0% (43 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.8% (26 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 54.1% (26 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 32.5% (26 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 66.1% (41 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 23.4% (27 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 39.3% (26 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 52.0% (26 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 56.5% (26 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 22.8% (27 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 15.3% (28 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 9.1% (39 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 19.2% (22 of 114 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 15.6% (55 of 352 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 45.8% (22 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 45.8% (22 of 48 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 28.7% (23 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 28.7% (23 of 80 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 62.9% (39 of 62 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 20.8% (24 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 20.8% (24 of 115 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 95.8% (23 of 24 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (23 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.0% (23 of 25 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.8% (23 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 34.8% (23 of 66 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 46.0% (23 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 46.0% (23 of 50 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 50.0% (23 of 46 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 19.4% (23 of 118 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 13.1% (24 of 183 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 8.1% (35 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 8.1% (35 of 427 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 15.3% (54 of 352 strings)

Co-authored-by: Cleiton Carvalho <cleitonsilvacarvalho@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marcelo Popper Costa <marcelo_popper@hotmail.com>
Co-authored-by: Rogério Mendes <rogeriomendes.mg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/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-search/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pt_BR/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
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-events
Translation: Frigate NVR/views-explore
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
2025-08-02 07:55:35 -06:00
Hosted Weblate
76fbc103b0 Translated using Weblate (Lithuanian)
Currently translated at 1.7% (2 of 114 strings)

Translated using Weblate (Lithuanian)

Currently translated at 0.5% (2 of 352 strings)

Translated using Weblate (Lithuanian)

Currently translated at 4.1% (2 of 48 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (6 of 6 strings)

Translated using Weblate (Lithuanian)

Currently translated at 3.7% (3 of 80 strings)

Translated using Weblate (Lithuanian)

Currently translated at 4.8% (3 of 62 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Lithuanian)

Currently translated at 2.6% (3 of 115 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (24 of 24 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (8 of 8 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Lithuanian)

Currently translated at 4.5% (3 of 66 strings)

Translated using Weblate (Lithuanian)

Currently translated at 6.0% (3 of 50 strings)

Translated using Weblate (Lithuanian)

Currently translated at 6.5% (3 of 46 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (9 of 9 strings)

Translated using Weblate (Lithuanian)

Currently translated at 89.8% (106 of 118 strings)

Translated using Weblate (Lithuanian)

Currently translated at 80.3% (147 of 183 strings)

Translated using Weblate (Lithuanian)

Currently translated at 6.7% (29 of 427 strings)

Translated using Weblate (Lithuanian)

Currently translated at 28.8% (34 of 118 strings)

Translated using Weblate (Lithuanian)

Currently translated at 3.0% (13 of 427 strings)

Translated using Weblate (Lithuanian)

Currently translated at 2.0% (1 of 48 strings)

Translated using Weblate (Lithuanian)

Currently translated at 1.2% (1 of 80 strings)

Translated using Weblate (Lithuanian)

Currently translated at 11.1% (1 of 9 strings)

Translated using Weblate (Lithuanian)

Currently translated at 45.8% (11 of 24 strings)

Translated using Weblate (Lithuanian)

Currently translated at 0.8% (1 of 118 strings)

Translated using Weblate (Lithuanian)

Currently translated at 0.4% (2 of 427 strings)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Added translation using Weblate (Lithuanian)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
Co-authored-by: MaBeniu <runnerm@gmail.com>
Co-authored-by: PovilasID <povilas.sidaravicius@gmail.com>
Co-authored-by: boxstep <evaldas.blauzdziunas@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/lt/
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-icons
Translation: Frigate NVR/components-input
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
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-recording
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-02 07:55:35 -06:00
Hosted Weblate
972206eb0f Translated using Weblate (Turkish)
Currently translated at 100.0% (62 of 62 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: pcislocked <git@pcislocked.net>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/tr/
Translation: Frigate NVR/views-facelibrary
2025-08-02 07:55:35 -06:00
boc-the-git
b5067c07f8
Remove deprecated 'version' attribute (#19347) 2025-08-01 05:51:18 -06:00
Nicolas Mowen
c3410cd13e
Revamp RF-DETR Export Docs (#19341)
* Revamp RFDETR docs

* Clarify model size

* Specify model size
2025-07-31 09:11:46 -05:00
Nicolas Mowen
d18f2282c8
Update tensorrt inference time docs (#19338)
* Update tensorrt inference times

* Update hardware.md
2025-07-31 08:21:41 -05:00
Jack
23b32cbacf
Update object_detectors.md (#19328)
Minor documentation clarity
2025-07-30 07:08:44 -06:00
Nicolas Mowen
21e9b2f2ce
Add docs for planning a setup (#19326)
* Add docs for planning a setup

* Add more granularity

* Improve title

* Add storage section

* Fix level

* Change named hardware

* link to section

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-07-30 07:06:39 -06:00
Josh Hawkins
92a0dad2c2
Catch json decode exception (#19323)
* Catch json decode exception when semantic search stats file is corrupted

* clear stats file if corrupted
2025-07-29 13:38:13 -05:00
Nicolas Mowen
4f4c8a4fb9
Center camera in layout when only one camera is filtered (#19319) 2025-07-29 09:15:37 -05:00
Josh Hawkins
898d1de875
Timezone fix (#19293)
* Frontend timezone fixes

Last recording date timezone was being applied twice, so it displayed the wrong date
Also, TZDate from react-day-picker could have been behaving incorrectly at times without a full date string

* Ensure returned day is parsed as midnight in specified timezone
2025-07-26 18:24:08 -06:00
184 changed files with 4150 additions and 583 deletions

View File

@ -6,7 +6,7 @@ body:
value: | value: |
Use this form to submit a reproducible bug in Frigate or Frigate's UI. Use this form to submit a reproducible bug in Frigate or Frigate's UI.
Before submitting your bug report, please [search the discussions][discussions], look at recent open and closed [pull requests][prs], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your bug has already been fixed by the developers or reported by the community. Before submitting your bug report, please ask the AI with the "Ask AI" button on the [official documentation site][ai] about your issue, [search the discussions][discussions], look at recent open and closed [pull requests][prs], read the [official Frigate documentation][docs], and read the [Frigate FAQ][faq] pinned at the Discussion page to see if your bug has already been fixed by the developers or reported by the community.
**If you are unsure if your issue is actually a bug or not, please submit a support request first.** **If you are unsure if your issue is actually a bug or not, please submit a support request first.**
@ -14,6 +14,7 @@ body:
[prs]: https://www.github.com/blakeblackshear/frigate/pulls [prs]: https://www.github.com/blakeblackshear/frigate/pulls
[docs]: https://docs.frigate.video [docs]: https://docs.frigate.video
[faq]: https://github.com/blakeblackshear/frigate/discussions/12724 [faq]: https://github.com/blakeblackshear/frigate/discussions/12724
[ai]: https://docs.frigate.video
- type: checkboxes - type: checkboxes
attributes: attributes:
label: Checklist label: Checklist
@ -26,6 +27,8 @@ body:
- label: I have tried a different browser to see if it is related to my browser. - label: I have tried a different browser to see if it is related to my browser.
required: true required: true
- label: I have tried reproducing the issue in [incognito mode](https://www.computerworld.com/article/1719851/how-to-go-incognito-in-chrome-firefox-safari-and-edge.html) to rule out problems with any third party extensions or plugins I have installed. - label: I have tried reproducing the issue in [incognito mode](https://www.computerworld.com/article/1719851/how-to-go-incognito-in-chrome-firefox-safari-and-edge.html) to rule out problems with any third party extensions or plugins I have installed.
- label: I have asked the AI at https://docs.frigate.video about my issue.
required: true
- type: textarea - type: textarea
id: description id: description
attributes: attributes:

View File

@ -1,7 +1,7 @@
default_target: local default_target: local
COMMIT_HASH := $(shell git log -1 --pretty=format:"%h"|tail -1) COMMIT_HASH := $(shell git log -1 --pretty=format:"%h"|tail -1)
VERSION = 0.16.0 VERSION = 0.16.1
IMAGE_REPO ?= ghcr.io/blakeblackshear/frigate IMAGE_REPO ?= ghcr.io/blakeblackshear/frigate
GITHUB_REF_NAME ?= $(shell git rev-parse --abbrev-ref HEAD) GITHUB_REF_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
BOARDS= #Initialized empty BOARDS= #Initialized empty

View File

@ -152,7 +152,7 @@ ARG TARGETARCH
# Use a separate container to build wheels to prevent build dependencies in final image # Use a separate container to build wheels to prevent build dependencies in final image
RUN apt-get -qq update \ RUN apt-get -qq update \
&& apt-get -qq install -y \ && apt-get -qq install -y \
apt-transport-https wget \ apt-transport-https wget unzip \
&& apt-get -qq update \ && apt-get -qq update \
&& apt-get -qq install -y \ && apt-get -qq install -y \
python3.11 \ python3.11 \

View File

@ -2,18 +2,25 @@
set -euxo pipefail set -euxo pipefail
SQLITE3_VERSION="96c92aba00c8375bc32fafcdf12429c58bd8aabfcadab6683e35bbb9cdebf19e" # 3.46.0 SQLITE3_VERSION="3.46.1"
PYSQLITE3_VERSION="0.5.3" PYSQLITE3_VERSION="0.5.3"
# Fetch the source code for the latest release of Sqlite. # Fetch the pre-built sqlite amalgamation instead of building from source
if [[ ! -d "sqlite" ]]; then if [[ ! -d "sqlite" ]]; then
wget https://www.sqlite.org/src/tarball/sqlite.tar.gz?r=${SQLITE3_VERSION} -O sqlite.tar.gz mkdir sqlite
tar xzf sqlite.tar.gz cd sqlite
cd sqlite/
LIBS="-lm" ./configure --disable-tcl --enable-tempstore=always # Download the pre-built amalgamation from sqlite.org
make sqlite3.c # For SQLite 3.46.1, the amalgamation version is 3460100
SQLITE_AMALGAMATION_VERSION="3460100"
wget https://www.sqlite.org/2024/sqlite-amalgamation-${SQLITE_AMALGAMATION_VERSION}.zip -O sqlite-amalgamation.zip
unzip sqlite-amalgamation.zip
mv sqlite-amalgamation-${SQLITE_AMALGAMATION_VERSION}/* .
rmdir sqlite-amalgamation-${SQLITE_AMALGAMATION_VERSION}
rm sqlite-amalgamation.zip
cd ../ cd ../
rm sqlite.tar.gz
fi fi
# Grab the pysqlite3 source code. # Grab the pysqlite3 source code.

View File

@ -57,9 +57,16 @@ fi
# arch specific packages # arch specific packages
if [[ "${TARGETARCH}" == "amd64" ]]; then if [[ "${TARGETARCH}" == "amd64" ]]; then
# Install non-free version of i965 driver
sed -i -E "/^Components: main$/s/main/main contrib non-free non-free-firmware/" "/etc/apt/sources.list.d/debian.sources" \
&& apt-get -qq update \
&& apt-get install --no-install-recommends --no-install-suggests -y i965-va-driver-shaders \
&& sed -i -E "/^Components: main contrib non-free non-free-firmware$/s/main contrib non-free non-free-firmware/main/" "/etc/apt/sources.list.d/debian.sources" \
&& apt-get update
# install amd / intel-i965 driver packages # install amd / intel-i965 driver packages
apt-get -qq install --no-install-recommends --no-install-suggests -y \ apt-get -qq install --no-install-recommends --no-install-suggests -y \
i965-va-driver intel-gpu-tools onevpl-tools \ intel-gpu-tools onevpl-tools \
libva-drm2 \ libva-drm2 \
mesa-va-drivers radeontop mesa-va-drivers radeontop

View File

@ -13,6 +13,7 @@ RUN sed -i "/https:\/\//d" /requirements-wheels.txt
RUN sed -i "/onnxruntime/d" /requirements-wheels.txt RUN sed -i "/onnxruntime/d" /requirements-wheels.txt
RUN pip3 wheel --wheel-dir=/rk-wheels -c /requirements-wheels.txt -r /requirements-wheels-rk.txt RUN pip3 wheel --wheel-dir=/rk-wheels -c /requirements-wheels.txt -r /requirements-wheels-rk.txt
RUN rm -rf /rk-wheels/opencv_python-* RUN rm -rf /rk-wheels/opencv_python-*
RUN rm -rf /rk-wheels/torch-*
FROM deps AS rk-frigate FROM deps AS rk-frigate
ARG TARGETARCH ARG TARGETARCH

View File

@ -99,6 +99,12 @@ genai:
model: gemini-1.5-flash model: gemini-1.5-flash
``` ```
:::note
To use a different Gemini-compatible API endpoint, set the `GEMINI_BASE_URL` environment variable to your provider's API URL.
:::
## OpenAI ## OpenAI
OpenAI does not have a free tier for their API. With the release of gpt-4o, pricing has been reduced and each generation should cost fractions of a cent if you choose to go this route. OpenAI does not have a free tier for their API. With the release of gpt-4o, pricing has been reduced and each generation should cost fractions of a cent if you choose to go this route.

View File

@ -365,8 +365,8 @@ detectors:
model: model:
model_type: rfdetr model_type: rfdetr
width: 560 width: 320
height: 560 height: 320
input_tensor: nchw input_tensor: nchw
input_dtype: float input_dtype: float
path: /config/model_cache/rfdetr.onnx path: /config/model_cache/rfdetr.onnx
@ -616,8 +616,8 @@ detectors:
model: model:
model_type: rfdetr model_type: rfdetr
width: 560 width: 320
height: 560 height: 320
input_tensor: nchw input_tensor: nchw
input_dtype: float input_dtype: float
path: /config/model_cache/rfdetr.onnx path: /config/model_cache/rfdetr.onnx
@ -777,8 +777,8 @@ model:
labelmap_path: /labelmap/coco-80.txt labelmap_path: /labelmap/coco-80.txt
input_tensor: nchw input_tensor: nchw
input_pixel_format: rgb input_pixel_format: rgb
width: 320 width: 320 # MUST match the chosen model i.e yolov7-320 -> 320, yolov4-416 -> 416
height: 320 height: 320 # MUST match the chosen model i.e yolov7-320 -> 320 yolov4-416 -> 416
``` ```
## Rockchip platform ## Rockchip platform
@ -983,22 +983,21 @@ Make sure you change the batch size to 1 before exporting.
### Download RF-DETR Model ### Download RF-DETR Model
To export as ONNX: RF-DETR can be exported as ONNX by running the command below. You can copy and paste the whole thing to your terminal and execute, altering `MODEL_SIZE=Nano` in the first line to `Nano`, `Small`, or `Medium` size.
1. `pip3 install rfdetr` ```sh
2. `python3` docker build . --build-arg MODEL_SIZE=Nano --output . -f- <<'EOF'
3. `from rfdetr import RFDETRBase` FROM python:3.11 AS build
4. `x = RFDETRBase()` RUN apt-get update && apt-get install --no-install-recommends -y libgl1 && rm -rf /var/lib/apt/lists/*
5. `x.export()` COPY --from=ghcr.io/astral-sh/uv:0.8.0 /uv /bin/
WORKDIR /rfdetr
#### Additional Configuration RUN uv pip install --system rfdetr onnx onnxruntime onnxsim onnx-graphsurgeon
ARG MODEL_SIZE
The input tensor resolution can be customized: RUN python3 -c "from rfdetr import RFDETR${MODEL_SIZE}; x = RFDETR${MODEL_SIZE}(resolution=320); x.export()"
FROM scratch
```python ARG MODEL_SIZE
from rfdetr import RFDETRBase COPY --from=build /rfdetr/output/inference_model.onnx /rfdetr-${MODEL_SIZE}.onnx
x = RFDETRBase(resolution=560) # resolution must be a multiple of 56 EOF
x.export()
``` ```
### Downloading YOLO-NAS Model ### Downloading YOLO-NAS Model

View File

@ -438,7 +438,7 @@ record:
# Optional: Number of minutes to wait between cleanup runs (default: shown below) # Optional: Number of minutes to wait between cleanup runs (default: shown below)
# This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o # This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
expire_interval: 60 expire_interval: 60
# Optional: Sync recordings with disk on startup and once a day (default: shown below). # Optional: Two-way sync recordings database with disk on startup and once a day (default: shown below).
sync_recordings: False sync_recordings: False
# Optional: Retention settings for recording # Optional: Retention settings for recording
retain: retain:

View File

@ -166,16 +166,12 @@ There are improved capabilities in newer GPU architectures that TensorRT can ben
Inference speeds will vary greatly depending on the GPU and the model used. Inference speeds will vary greatly depending on the GPU and the model used.
`tiny` variants are faster than the equivalent non-tiny model, some known examples are below: `tiny` variants are faster than the equivalent non-tiny model, some known examples are below:
| Name | YOLOv7 Inference Time | YOLO-NAS Inference Time | RF-DETR Inference Time | | Name | YOLOv9 Inference Time | YOLO-NAS Inference Time | RF-DETR Inference Time |
| --------------- | --------------------- | ------------------------- | ------------------------- | | --------------- | --------------------- | ------------------------- | ---------------------- |
| GTX 1060 6GB | ~ 7 ms | | | | RTX 3050 | t-320: 15 ms | 320: ~ 10 ms 640: ~ 16 ms | Nano-320: ~ 12 ms |
| GTX 1070 | ~ 6 ms | | | | RTX 3070 | t-320: 11 ms | 320: ~ 8 ms 640: ~ 14 ms | Nano-320: ~ 9 ms |
| GTX 1660 SUPER | ~ 4 ms | | | | RTX A4000 | | 320: ~ 15 ms | |
| RTX 3050 | 5 - 7 ms | 320: ~ 10 ms 640: ~ 16 ms | 336: ~ 16 ms 560: ~ 40 ms | | Tesla P40 | | 320: ~ 105 ms | |
| RTX 3070 Mobile | ~ 5 ms | | |
| RTX 3070 | 4 - 6 ms | 320: ~ 6 ms 640: ~ 12 ms | 336: ~ 14 ms 560: ~ 36 ms |
| Quadro P400 2GB | 20 - 25 ms | | |
| Quadro P2000 | ~ 12 ms | | |
### ROCm - AMD GPU ### ROCm - AMD GPU

View File

@ -43,7 +43,7 @@ The following ports are used by Frigate and can be mapped via docker as required
| `8971` | Authenticated UI and API access without TLS. Reverse proxies should use this port. | | `8971` | Authenticated UI and API access without TLS. Reverse proxies should use this port. |
| `5000` | Internal unauthenticated UI and API access. Access to this port should be limited. Intended to be used within the docker network for services that integrate with Frigate. | | `5000` | Internal unauthenticated UI and API access. Access to this port should be limited. Intended to be used within the docker network for services that integrate with Frigate. |
| `8554` | RTSP restreaming. By default, these streams are unauthenticated. Authentication can be configured in go2rtc section of config. | | `8554` | RTSP restreaming. By default, these streams are unauthenticated. Authentication can be configured in go2rtc section of config. |
| `8555` | WebRTC connections for low latency live views. | | `8555` | WebRTC connections for cameras with two-way talk support. |
#### Common Docker Compose storage configurations #### Common Docker Compose storage configurations

View File

@ -0,0 +1,74 @@
---
id: planning_setup
title: Planning a New Installation
---
Choosing the right hardware for your Frigate NVR setup is important for optimal performance and a smooth experience. This guide will walk you through the key considerations, focusing on the number of cameras and the hardware required for efficient object detection.
## Key Considerations
### Number of Cameras and Simultaneous Activity
The most fundamental factor in your hardware decision is the number of cameras you plan to use. However, it's not just about the raw count; it's also about how many of those cameras are likely to see activity and require object detection simultaneously.
When motion is detected in a camera's feed, regions of that frame are sent to your chosen [object detection hardware](/configuration/object_detectors).
- **Low Simultaneous Activity (1-6 cameras with occasional motion)**: If you have a few cameras in areas with infrequent activity (e.g., a seldom-used backyard, a quiet interior), the demand on your object detection hardware will be lower. A single, entry-level AI accelerator will suffice.
- **Moderate Simultaneous Activity (6-12 cameras with some overlapping motion)**: For setups with more cameras, especially in areas like a busy street or a property with multiple access points, it's more likely that several cameras will capture activity at the same time. This increases the load on your object detection hardware, requiring more processing power.
- **High Simultaneous Activity (12+ cameras or highly active zones)**: Large installations or scenarios where many cameras frequently capture activity (e.g., busy street with overview, identification, dedicated LPR cameras, etc.) will necessitate robust object detection capabilities. You'll likely need multiple entry-level AI accelerators or a more powerful single unit such as a discrete GPU.
- **Commercial Installations (40+ cameras)**: Commercial installations or scenarios where a substantial number of cameras capture activity (e.g., a commercial property, an active public space) will necessitate robust object detection capabilities. You'll likely need a modern discrete GPU.
### Video Decoding
Modern CPUs with integrated GPUs (Intel Quick Sync, AMD VCN) or dedicated GPUs can significantly offload video decoding from the main CPU, freeing up resources. This is highly recommended, especially for multiple cameras.
:::tip
For commercial installations it is important to verify the number of supported concurrent streams on your GPU, many consumer GPUs max out at ~20 concurrent camera streams.
:::
## Hardware Considerations
### Object Detection
There are many different hardware options for object detection depending on priorities and available hardware. See [the recommended hardware page](./hardware.md#detectors) for more specifics on what hardware is recommended for object detection.
### Storage
Storage is an important consideration when planning a new installation. To get a more precise estimate of your storage requirements, you can use an IP camera storage calculator. Websites like [IPConfigure Storage Calculator](https://calculator.ipconfigure.com/) can help you determine the necessary disk space based on your camera settings.
#### SSDs (Solid State Drives)
SSDs are an excellent choice for Frigate, offering high speed and responsiveness. The older concern that SSDs would quickly "wear out" from constant video recording is largely no longer valid for modern consumer and enterprise-grade SSDs.
- Longevity: Modern SSDs are designed with advanced wear-leveling algorithms and significantly higher "Terabytes Written" (TBW) ratings than earlier models. For typical home NVR use, a good quality SSD will likely outlast the useful life of your NVR hardware itself.
- Performance: SSDs excel at handling the numerous small write operations that occur during continuous video recording and can significantly improve the responsiveness of the Frigate UI and clip retrieval.
- Silence and Efficiency: SSDs produce no noise and consume less power than traditional HDDs.
#### HDDs (Hard Disk Drives)
Traditional Hard Disk Drives (HDDs) remain a great and often more cost-effective option for long-term video storage, especially for larger setups where raw capacity is prioritized.
- Cost-Effectiveness: HDDs offer the best cost per gigabyte, making them ideal for storing many days, weeks, or months of continuous footage.
- Capacity: HDDs are available in much larger capacities than most consumer SSDs, which is beneficial for extensive video archives.
- NVR-Rated Drives: If choosing an HDD, consider drives specifically designed for surveillance (NVR) use, such as Western Digital Purple or Seagate SkyHawk. These drives are engineered for 24/7 operation and continuous write workloads, offering improved reliability compared to standard desktop drives.
Determining Your Storage Needs
The amount of storage you need will depend on several factors:
- Number of Cameras: More cameras naturally require more space.
- Resolution and Framerate: Higher resolution (e.g., 4K) and higher framerate (e.g., 30fps) streams consume significantly more storage.
- Recording Method: Continuous recording uses the most space. motion-only recording or object-triggered recording can save space, but may miss some footage.
- Retention Period: How many days, weeks, or months of footage do you want to keep?
#### Network Storage (NFS/SMB)
While supported, using network-attached storage (NAS) for recordings can introduce latency and network dependency considerations. For optimal performance and reliability, it is generally recommended to have local storage for your Frigate recordings. If using a NAS, ensure your network connection to it is robust and fast (Gigabit Ethernet at minimum) and that the NAS itself can handle the continuous write load.
### RAM (Memory)
- **Basic Minimum: 4GB RAM**: This is generally sufficient for a very basic Frigate setup with a few cameras and a dedicated object detection accelerator, without running any enrichments. Performance might be tight, especially with higher resolution streams or numerous detections.
- **Minimum for Enrichments: 8GB RAM**: If you plan to utilize Frigate's enrichment features (e.g., facial recognition, license plate recognition, or other AI models that run alongside standard object detection), 8GB of RAM should be considered the minimum. Enrichments require additional memory to load and process their respective models and data.
- **Recommended: 16GB RAM**: For most users, especially those with many cameras (8+) or who plan to heavily leverage enrichments, 16GB of RAM is highly recommended. This provides ample headroom for smooth operation, reduces the likelihood of swapping to disk (which can impact performance), and allows for future expansion.

View File

@ -5,7 +5,7 @@ title: Updating
# Updating Frigate # Updating Frigate
The current stable version of Frigate is **0.15.0**. The release notes and any breaking changes for this version can be found on the [Frigate GitHub releases page](https://github.com/blakeblackshear/frigate/releases/tag/v0.15.0). The current stable version of Frigate is **0.16.0**. The release notes and any breaking changes for this version can be found on the [Frigate GitHub releases page](https://github.com/blakeblackshear/frigate/releases/tag/v0.16.0).
Keeping Frigate up to date ensures you benefit from the latest features, performance improvements, and bug fixes. The update process varies slightly depending on your installation method (Docker, Home Assistant Addon, etc.). Below are instructions for the most common setups. Keeping Frigate up to date ensures you benefit from the latest features, performance improvements, and bug fixes. The update process varies slightly depending on your installation method (Docker, Home Assistant Addon, etc.). Below are instructions for the most common setups.
@ -33,21 +33,21 @@ If youre running Frigate via Docker (recommended method), follow these steps:
2. **Update and Pull the Latest Image**: 2. **Update and Pull the Latest Image**:
- If using Docker Compose: - If using Docker Compose:
- Edit your `docker-compose.yml` file to specify the desired version tag (e.g., `0.15.0` instead of `0.14.1`). For example: - Edit your `docker-compose.yml` file to specify the desired version tag (e.g., `0.16.0` instead of `0.15.2`). For example:
```yaml ```yaml
services: services:
frigate: frigate:
image: ghcr.io/blakeblackshear/frigate:0.15.0 image: ghcr.io/blakeblackshear/frigate:0.16.0
``` ```
- Then pull the image: - Then pull the image:
```bash ```bash
docker pull ghcr.io/blakeblackshear/frigate:0.15.0 docker pull ghcr.io/blakeblackshear/frigate:0.16.0
``` ```
- **Note for `stable` Tag Users**: If your `docker-compose.yml` uses the `stable` tag (e.g., `ghcr.io/blakeblackshear/frigate:stable`), you dont need to update the tag manually. The `stable` tag always points to the latest stable release after pulling. - **Note for `stable` Tag Users**: If your `docker-compose.yml` uses the `stable` tag (e.g., `ghcr.io/blakeblackshear/frigate:stable`), you dont need to update the tag manually. The `stable` tag always points to the latest stable release after pulling.
- If using `docker run`: - If using `docker run`:
- Pull the image with the appropriate tag (e.g., `0.15.0`, `0.15.0-tensorrt`, or `stable`): - Pull the image with the appropriate tag (e.g., `0.16.0`, `0.16.0-tensorrt`, or `stable`):
```bash ```bash
docker pull ghcr.io/blakeblackshear/frigate:0.15.0 docker pull ghcr.io/blakeblackshear/frigate:0.16.0
``` ```
3. **Start the Container**: 3. **Start the Container**:
@ -105,8 +105,8 @@ If an update causes issues:
1. Stop Frigate. 1. Stop Frigate.
2. Restore your backed-up config file and database. 2. Restore your backed-up config file and database.
3. Revert to the previous image version: 3. Revert to the previous image version:
- For Docker: Specify an older tag (e.g., `ghcr.io/blakeblackshear/frigate:0.14.1`) in your `docker run` command. - For Docker: Specify an older tag (e.g., `ghcr.io/blakeblackshear/frigate:0.15.2`) in your `docker run` command.
- For Docker Compose: Edit your `docker-compose.yml`, specify the older version tag (e.g., `ghcr.io/blakeblackshear/frigate:0.14.1`), and re-run `docker compose up -d`. - For Docker Compose: Edit your `docker-compose.yml`, specify the older version tag (e.g., `ghcr.io/blakeblackshear/frigate:0.15.2`), and re-run `docker compose up -d`.
- For Home Assistant: Reinstall the previous addon version manually via the repository if needed and restart the addon. - For Home Assistant: Reinstall the previous addon version manually via the repository if needed and restart the addon.
4. Verify the old version is running again. 4. Verify the old version is running again.

View File

@ -15,10 +15,10 @@ At a high level, there are five processing steps that could be applied to a came
%%{init: {"themeVariables": {"edgeLabelBackground": "transparent"}}}%% %%{init: {"themeVariables": {"edgeLabelBackground": "transparent"}}}%%
flowchart LR flowchart LR
Feed(Feed\nacquisition) --> Decode(Video\ndecoding) Feed(Feed acquisition) --> Decode(Video decoding)
Decode --> Motion(Motion\ndetection) Decode --> Motion(Motion detection)
Motion --> Object(Object\ndetection) Motion --> Object(Object detection)
Feed --> Recording(Recording\nand\nvisualization) Feed --> Recording(Recording and visualization)
Motion --> Recording Motion --> Recording
Object --> Recording Object --> Recording
``` ```

View File

@ -114,7 +114,7 @@ section.
## Next steps ## Next steps
1. If the stream you added to go2rtc is also used by Frigate for the `record` or `detect` role, you can migrate your config to pull from the RTSP restream to reduce the number of connections to your camera as shown [here](/configuration/restream#reduce-connections-to-camera). 1. If the stream you added to go2rtc is also used by Frigate for the `record` or `detect` role, you can migrate your config to pull from the RTSP restream to reduce the number of connections to your camera as shown [here](/configuration/restream#reduce-connections-to-camera).
2. You may also prefer to [setup WebRTC](/configuration/live#webrtc-extra-configuration) for slightly lower latency than MSE. Note that WebRTC only supports h264 and specific audio formats and may require opening ports on your router. 2. You can [set up WebRTC](/configuration/live#webrtc-extra-configuration) if your camera supports two-way talk. Note that WebRTC only supports specific audio formats and may require opening ports on your router.
## Important considerations ## Important considerations

View File

@ -7,6 +7,7 @@ const sidebars: SidebarsConfig = {
Frigate: [ Frigate: [
'frigate/index', 'frigate/index',
'frigate/hardware', 'frigate/hardware',
'frigate/planning_setup',
'frigate/installation', 'frigate/installation',
'frigate/updating', 'frigate/updating',
'frigate/camera_setup', 'frigate/camera_setup',

View File

@ -20,7 +20,7 @@ from fastapi.encoders import jsonable_encoder
from fastapi.params import Depends from fastapi.params import Depends
from fastapi.responses import JSONResponse, PlainTextResponse, StreamingResponse from fastapi.responses import JSONResponse, PlainTextResponse, StreamingResponse
from markupsafe import escape from markupsafe import escape
from peewee import operator from peewee import SQL, operator
from pydantic import ValidationError from pydantic import ValidationError
from frigate.api.auth import require_role from frigate.api.auth import require_role
@ -685,7 +685,14 @@ def plusModels(request: Request, filterByCurrentModelDetector: bool = False):
@router.get("/recognized_license_plates") @router.get("/recognized_license_plates")
def get_recognized_license_plates(split_joined: Optional[int] = None): def get_recognized_license_plates(split_joined: Optional[int] = None):
try: try:
events = Event.select(Event.data).distinct() query = (
Event.select(
SQL("json_extract(data, '$.recognized_license_plate') AS plate")
)
.where(SQL("json_extract(data, '$.recognized_license_plate') IS NOT NULL"))
.distinct()
)
recognized_license_plates = [row[0] for row in query.tuples()]
except Exception: except Exception:
return JSONResponse( return JSONResponse(
content=( content=(
@ -694,14 +701,6 @@ def get_recognized_license_plates(split_joined: Optional[int] = None):
status_code=404, status_code=404,
) )
recognized_license_plates = []
for e in events:
if e.data is not None and "recognized_license_plate" in e.data:
recognized_license_plates.append(e.data["recognized_license_plate"])
while None in recognized_license_plates:
recognized_license_plates.remove(None)
if split_joined: if split_joined:
original_recognized_license_plates = recognized_license_plates.copy() original_recognized_license_plates = recognized_license_plates.copy()
for recognized_license_plate in original_recognized_license_plates: for recognized_license_plate in original_recognized_license_plates:

View File

@ -214,7 +214,7 @@ async def register_face(request: Request, name: str, file: UploadFile):
) )
context: EmbeddingsContext = request.app.embeddings context: EmbeddingsContext = request.app.embeddings
result = context.register_face(name, await file.read()) result = None if context is None else context.register_face(name, await file.read())
if not isinstance(result, dict): if not isinstance(result, dict):
return JSONResponse( return JSONResponse(

View File

@ -1,6 +1,6 @@
from typing import Optional from typing import Optional
from pydantic import BaseModel from pydantic import BaseModel, Field
DEFAULT_TIME_RANGE = "00:00,24:00" DEFAULT_TIME_RANGE = "00:00,24:00"
@ -21,7 +21,14 @@ class EventsQueryParams(BaseModel):
has_clip: Optional[int] = None has_clip: Optional[int] = None
has_snapshot: Optional[int] = None has_snapshot: Optional[int] = None
in_progress: Optional[int] = None in_progress: Optional[int] = None
include_thumbnails: Optional[int] = 1 include_thumbnails: Optional[int] = Field(
1,
description=(
"Deprecated. Thumbnail data is no longer included in the response. "
"Use the /api/events/:event_id/thumbnail.:extension endpoint instead."
),
deprecated=True,
)
favorites: Optional[int] = None favorites: Optional[int] = None
min_score: Optional[float] = None min_score: Optional[float] = None
max_score: Optional[float] = None max_score: Optional[float] = None
@ -40,7 +47,14 @@ class EventsSearchQueryParams(BaseModel):
query: Optional[str] = None query: Optional[str] = None
event_id: Optional[str] = None event_id: Optional[str] = None
search_type: Optional[str] = "thumbnail" search_type: Optional[str] = "thumbnail"
include_thumbnails: Optional[int] = 1 include_thumbnails: Optional[int] = Field(
1,
description=(
"Deprecated. Thumbnail data is no longer included in the response. "
"Use the /api/events/:event_id/thumbnail.:extension endpoint instead."
),
deprecated=True,
)
limit: Optional[int] = 50 limit: Optional[int] = 50
cameras: Optional[str] = "all" cameras: Optional[str] = "all"
labels: Optional[str] = "all" labels: Optional[str] = "all"

View File

@ -724,15 +724,24 @@ def events_search(request: Request, params: EventsSearchQueryParams = Depends())
if (sort is None or sort == "relevance") and search_results: if (sort is None or sort == "relevance") and search_results:
processed_events.sort(key=lambda x: x.get("search_distance", float("inf"))) processed_events.sort(key=lambda x: x.get("search_distance", float("inf")))
elif min_score is not None and max_score is not None and sort == "score_asc": elif sort == "score_asc":
processed_events.sort(key=lambda x: x["data"]["score"]) processed_events.sort(key=lambda x: x["data"]["score"])
elif min_score is not None and max_score is not None and sort == "score_desc": elif sort == "score_desc":
processed_events.sort(key=lambda x: x["data"]["score"], reverse=True) processed_events.sort(key=lambda x: x["data"]["score"], reverse=True)
elif min_speed is not None and max_speed is not None and sort == "speed_asc": elif sort == "speed_asc":
processed_events.sort(key=lambda x: x["data"]["average_estimated_speed"])
elif min_speed is not None and max_speed is not None and sort == "speed_desc":
processed_events.sort( processed_events.sort(
key=lambda x: x["data"]["average_estimated_speed"], reverse=True key=lambda x: (
x["data"].get("average_estimated_speed") is None,
x["data"].get("average_estimated_speed"),
)
)
elif sort == "speed_desc":
processed_events.sort(
key=lambda x: (
x["data"].get("average_estimated_speed") is None,
x["data"].get("average_estimated_speed", float("-inf")),
),
reverse=True,
) )
elif sort == "date_asc": elif sort == "date_asc":
processed_events.sort(key=lambda x: x["start_time"]) processed_events.sort(key=lambda x: x["start_time"])

View File

@ -142,15 +142,13 @@ def latest_frame(
"regions": params.regions, "regions": params.regions,
} }
quality = params.quality quality = params.quality
mime_type = extension
if extension == "png": if extension == Extension.png:
quality_params = None quality_params = None
elif extension == "webp": elif extension == Extension.webp:
quality_params = [int(cv2.IMWRITE_WEBP_QUALITY), quality] quality_params = [int(cv2.IMWRITE_WEBP_QUALITY), quality]
else: else: # jpg or jpeg
quality_params = [int(cv2.IMWRITE_JPEG_QUALITY), quality] quality_params = [int(cv2.IMWRITE_JPEG_QUALITY), quality]
mime_type = "jpeg"
if camera_name in request.app.frigate_config.cameras: if camera_name in request.app.frigate_config.cameras:
frame = frame_processor.get_current_frame(camera_name, draw_options) frame = frame_processor.get_current_frame(camera_name, draw_options)
@ -193,18 +191,21 @@ def latest_frame(
frame = cv2.resize(frame, dsize=(width, height), interpolation=cv2.INTER_AREA) frame = cv2.resize(frame, dsize=(width, height), interpolation=cv2.INTER_AREA)
_, img = cv2.imencode(f".{extension}", frame, quality_params) _, img = cv2.imencode(f".{extension.value}", frame, quality_params)
return Response( return Response(
content=img.tobytes(), content=img.tobytes(),
media_type=f"image/{mime_type}", media_type=f"image/{extension.value}",
headers={ headers={
"Content-Type": f"image/{mime_type}",
"Cache-Control": "no-store" "Cache-Control": "no-store"
if not params.store if not params.store
else "private, max-age=60", else "private, max-age=60",
}, },
) )
elif camera_name == "birdseye" and request.app.frigate_config.birdseye.restream: elif (
camera_name == "birdseye"
and request.app.frigate_config.birdseye.enabled
and request.app.frigate_config.birdseye.restream
):
frame = cv2.cvtColor( frame = cv2.cvtColor(
frame_processor.get_current_frame(camera_name), frame_processor.get_current_frame(camera_name),
cv2.COLOR_YUV2BGR_I420, cv2.COLOR_YUV2BGR_I420,
@ -215,12 +216,11 @@ def latest_frame(
frame = cv2.resize(frame, dsize=(width, height), interpolation=cv2.INTER_AREA) frame = cv2.resize(frame, dsize=(width, height), interpolation=cv2.INTER_AREA)
_, img = cv2.imencode(f".{extension}", frame, quality_params) _, img = cv2.imencode(f".{extension.value}", frame, quality_params)
return Response( return Response(
content=img.tobytes(), content=img.tobytes(),
media_type=f"image/{mime_type}", media_type=f"image/{extension.value}",
headers={ headers={
"Content-Type": f"image/{mime_type}",
"Cache-Control": "no-store" "Cache-Control": "no-store"
if not params.store if not params.store
else "private, max-age=60", else "private, max-age=60",

View File

@ -21,7 +21,12 @@ router = APIRouter(tags=[Tags.notifications])
@router.get("/notifications/pubkey") @router.get("/notifications/pubkey")
def get_vapid_pub_key(request: Request): def get_vapid_pub_key(request: Request):
if not request.app.frigate_config.notifications.enabled: config = request.app.frigate_config
notifications_enabled = config.notifications.enabled
camera_notifications_enabled = [
c for c in config.cameras.values() if c.enabled and c.notifications.enabled
]
if not (notifications_enabled or camera_notifications_enabled):
return JSONResponse( return JSONResponse(
content=({"success": False, "message": "Notifications are not enabled."}), content=({"success": False, "message": "Notifications are not enabled."}),
status_code=400, status_code=400,

View File

@ -250,6 +250,7 @@ class FrigateApp:
and not genai_cameras and not genai_cameras
and not self.config.lpr.enabled and not self.config.lpr.enabled
and not self.config.face_recognition.enabled and not self.config.face_recognition.enabled
and not self.config.classification.bird.enabled
): ):
return return

View File

@ -7,6 +7,7 @@ import multiprocessing as mp
import os import os
import signal import signal
import threading import threading
from json.decoder import JSONDecodeError
from types import FrameType from types import FrameType
from typing import Any, Optional, Union from typing import Any, Optional, Union
@ -73,13 +74,21 @@ class EmbeddingsContext:
self.requestor = EmbeddingsRequestor() self.requestor = EmbeddingsRequestor()
# load stats from disk # load stats from disk
stats_file = os.path.join(CONFIG_DIR, ".search_stats.json")
try: try:
with open(os.path.join(CONFIG_DIR, ".search_stats.json"), "r") as f: with open(stats_file, "r") as f:
data = json.loads(f.read()) data = json.loads(f.read())
self.thumb_stats.from_dict(data["thumb_stats"]) self.thumb_stats.from_dict(data["thumb_stats"])
self.desc_stats.from_dict(data["desc_stats"]) self.desc_stats.from_dict(data["desc_stats"])
except FileNotFoundError: except FileNotFoundError:
pass pass
except JSONDecodeError:
logger.warning("Failed to decode semantic search stats, clearing file")
try:
with open(stats_file, "w") as f:
f.write("")
except OSError as e:
logger.error(f"Failed to clear corrupted stats file: {e}")
def stop(self): def stop(self):
"""Write the stats to disk as JSON on exit.""" """Write the stats to disk as JSON on exit."""

View File

@ -340,21 +340,22 @@ class EventCleanup(threading.Thread):
.where(Event.has_clip == False, Event.has_snapshot == False) .where(Event.has_clip == False, Event.has_snapshot == False)
.iterator() .iterator()
) )
events_to_delete = [e.id for e in events] events_to_delete: list[Event] = [e for e in events]
for e in events: for e in events_to_delete:
delete_event_thumbnail(e) delete_event_thumbnail(e)
logger.debug(f"Found {len(events_to_delete)} events that can be expired") logger.debug(f"Found {len(events_to_delete)} events that can be expired")
if len(events_to_delete) > 0: if len(events_to_delete) > 0:
for i in range(0, len(events_to_delete), CHUNK_SIZE): ids_to_delete = [e.id for e in events_to_delete]
chunk = events_to_delete[i : i + CHUNK_SIZE] for i in range(0, len(ids_to_delete), CHUNK_SIZE):
chunk = ids_to_delete[i : i + CHUNK_SIZE]
logger.debug(f"Deleting {len(chunk)} events from the database") logger.debug(f"Deleting {len(chunk)} events from the database")
Event.delete().where(Event.id << chunk).execute() Event.delete().where(Event.id << chunk).execute()
if self.config.semantic_search.enabled: if self.config.semantic_search.enabled:
self.db.delete_embeddings_description(event_ids=chunk) self.db.delete_embeddings_description(event_ids=chunk)
self.db.delete_embeddings_thumbnail(event_ids=chunk) self.db.delete_embeddings_thumbnail(event_ids=chunk)
logger.debug(f"Deleted {len(events_to_delete)} embeddings") logger.debug(f"Deleted {len(ids_to_delete)} embeddings")
logger.info("Exiting event cleanup...") logger.info("Exiting event cleanup...")

View File

@ -40,10 +40,15 @@ class GenAIClient:
event: Event, event: Event,
) -> Optional[str]: ) -> Optional[str]:
"""Generate a description for the frame.""" """Generate a description for the frame."""
prompt = camera_config.genai.object_prompts.get( try:
event.label, prompt = camera_config.genai.object_prompts.get(
camera_config.genai.prompt, event.label,
).format(**model_to_dict(event)) camera_config.genai.prompt,
).format(**model_to_dict(event))
except KeyError as e:
logger.error(f"Invalid key in GenAI prompt: {e}")
return None
logger.debug(f"Sending images to genai provider with prompt: {prompt}") logger.debug(f"Sending images to genai provider with prompt: {prompt}")
return self._send(prompt, thumbnails) return self._send(prompt, thumbnails)

View File

@ -1329,7 +1329,11 @@ class PtzAutoTracker:
if camera_config.onvif.autotracking.enabled: if camera_config.onvif.autotracking.enabled:
if not self.autotracker_init[camera]: if not self.autotracker_init[camera]:
self._autotracker_setup(camera_config, camera) future = asyncio.run_coroutine_threadsafe(
self._autotracker_setup(camera_config, camera), self.onvif.loop
)
# Wait for the coroutine to complete
future.result()
if self.calibrating[camera]: if self.calibrating[camera]:
logger.debug(f"{camera}: Calibrating camera") logger.debug(f"{camera}: Calibrating camera")

View File

@ -66,7 +66,7 @@ def sync_recordings(limited: bool) -> None:
if float(len(recordings_to_delete)) / max(1, recordings.count()) > 0.5: if float(len(recordings_to_delete)) / max(1, recordings.count()) > 0.5:
logger.warning( logger.warning(
f"Deleting {(float(len(recordings_to_delete)) / recordings.count()):2f}% of recordings DB entries, could be due to configuration error. Aborting..." f"Deleting {(len(recordings_to_delete) / max(1, recordings.count()) * 100):.2f}% of recordings DB entries, could be due to configuration error. Aborting..."
) )
return False return False
@ -106,7 +106,7 @@ def sync_recordings(limited: bool) -> None:
if float(len(files_to_delete)) / max(1, len(files_on_disk)) > 0.5: if float(len(files_to_delete)) / max(1, len(files_on_disk)) > 0.5:
logger.debug( logger.debug(
f"Deleting {(float(len(files_to_delete)) / len(files_on_disk)):2f}% of recordings DB entries, could be due to configuration error. Aborting..." f"Deleting {(len(files_to_delete) / max(1, len(files_on_disk)) * 100):.2f}% of recordings DB entries, could be due to configuration error. Aborting..."
) )
return False return False

View File

@ -140,6 +140,7 @@
"fr": "Français (French)", "fr": "Français (French)",
"ar": "العربية (Arabic)", "ar": "العربية (Arabic)",
"pt": "Português (Portuguese)", "pt": "Português (Portuguese)",
"ptBR": "Português brasileiro (Brazilian Portuguese)",
"ru": "Русский (Russian)", "ru": "Русский (Russian)",
"de": "Deutsch (German)", "de": "Deutsch (German)",
"ja": "日本語 (Japanese)", "ja": "日本語 (Japanese)",
@ -164,6 +165,13 @@
"yue": "粵語 (Cantonese)", "yue": "粵語 (Cantonese)",
"th": "ไทย (Thai)", "th": "ไทย (Thai)",
"ca": "Català (Catalan)", "ca": "Català (Catalan)",
"sr": "Српски (Serbian)",
"sl": "Slovenščina (Slovenian)",
"lt": "Lietuvių (Lithuanian)",
"bg": "Български (Bulgarian)",
"gl": "Galego (Galician)",
"id": "Bahasa Indonesia (Indonesian)",
"ur": "اردو (Urdu)",
"withSystem": { "withSystem": {
"label": "Use the system settings for language" "label": "Use the system settings for language"
} }

View File

@ -54,5 +54,9 @@
"pant": "Huohottaa", "pant": "Huohottaa",
"snort": "Haukkua", "snort": "Haukkua",
"cough": "Yskä", "cough": "Yskä",
"sneeze": "Niistää" "sneeze": "Niistää",
"throat_clearing": "Kurkun selvittäminen",
"sniff": "Poimi",
"run": "Käynnistä",
"shuffle": "Sekoitus"
} }

View File

@ -65,6 +65,13 @@
} }
}, },
"streaming": { "streaming": {
"label": "Kuvavirta" "label": "Kuvavirta",
"restreaming": {
"disabled": "Uudelleentoisto ei ole käytettävissä tällä kameralla.",
"desc": {
"title": "Määritä go2rtc saadaksesi lisäreaaliaikanäkymän vaihtoehtoja ja ääntä tälle kameralle.",
"readTheDocumentation": "Lue dokumentaatio"
}
}
} }
} }

View File

@ -38,7 +38,8 @@
"label": "Piirteet", "label": "Piirteet",
"hasVideoClip": "Videoleike löytyy", "hasVideoClip": "Videoleike löytyy",
"submittedToFrigatePlus": { "submittedToFrigatePlus": {
"label": "Lähetetty Frigate+:aan" "label": "Lähetetty Frigate+:aan",
"tips": "Sinun on ensin suodatettava seuratut kohteet, joilla on tilannekuva.<br /><br />Kohteita, joilla ei ole tilannekuvaa, ei voida lähettää Frigate+:aan."
}, },
"hasSnapshot": "Tilannekuva löytyy" "hasSnapshot": "Tilannekuva löytyy"
}, },
@ -49,6 +50,13 @@
"scoreAsc": "Kohteen pisteet (Nouseva)", "scoreAsc": "Kohteen pisteet (Nouseva)",
"scoreDesc": "Kohteen pisteet (Laskeva)", "scoreDesc": "Kohteen pisteet (Laskeva)",
"speedAsc": "Arvioitu nopeus (Nouseva)", "speedAsc": "Arvioitu nopeus (Nouseva)",
"speedDesc": "Arvioitu nopeus (Laskeva)" "speedDesc": "Arvioitu nopeus (Laskeva)",
"relevance": "Olennaisuus"
},
"cameras": {
"label": "Kameran suodattimet",
"all": {
"title": "Kaikki kamerat"
}
} }
} }

View File

@ -27,10 +27,12 @@
"context": "Frigate lataa semanttista hakua varten vaadittavat upotusmallit. Tämä saattaa viedä useamman minuutin, riippuen yhteytesi nopeudesta.", "context": "Frigate lataa semanttista hakua varten vaadittavat upotusmallit. Tämä saattaa viedä useamman minuutin, riippuen yhteytesi nopeudesta.",
"setup": { "setup": {
"visionModel": "Vision-malli", "visionModel": "Vision-malli",
"textModel": "Tekstimalli" "textModel": "Tekstimalli",
"textTokenizer": "Tekstin osioija"
}, },
"tips": { "tips": {
"documentation": "Lue dokumentaatio" "documentation": "Lue dokumentaatio",
"context": "Saatat haluta uudelleenindeksoida seurattavien kohteiden upotukset, kun mallit on ladattu."
}, },
"error": "Tapahtui virhe. Tarkista Frigaten lokit." "error": "Tapahtui virhe. Tarkista Frigaten lokit."
} }
@ -74,7 +76,8 @@
"noImageFound": "Tältä aikaleimalta ei löytynyt kuvia.", "noImageFound": "Tältä aikaleimalta ei löytynyt kuvia.",
"createObjectMask": "Luo kohdemaski", "createObjectMask": "Luo kohdemaski",
"scrollViewTips": "Vieritä katsoaksesi merkittäviä hetkiä kohteen elinkaarelta.", "scrollViewTips": "Vieritä katsoaksesi merkittäviä hetkiä kohteen elinkaarelta.",
"autoTrackingTips": "Kohteen rajojen sijainti on epätarkka automaattisesti seuraaville kameroille." "autoTrackingTips": "Kohteen rajojen sijainti on epätarkka automaattisesti seuraaville kameroille.",
"adjustAnnotationSettings": "Säädä merkintäasetuksia"
}, },
"trackedObjectDetails": "Seurattavien kohteiden tiedot", "trackedObjectDetails": "Seurattavien kohteiden tiedot",
"type": { "type": {

View File

@ -14,7 +14,8 @@
"person": "Henkilö", "person": "Henkilö",
"timestamp": "Aikaleima", "timestamp": "Aikaleima",
"subLabelScore": "Alinimikkeen pisteet", "subLabelScore": "Alinimikkeen pisteet",
"face": "Kasvojen yksityiskohdat" "face": "Kasvojen yksityiskohdat",
"scoreInfo": "Alatunnisteen pistemäärä on kaikkien tunnistettujen kasvojen varmuustasojen painotettu keskiarvo, joten se voi poiketa tilannekuvassa näkyvästä pistemäärästä."
}, },
"documentTitle": "Kasvokirjasto - Frigate", "documentTitle": "Kasvokirjasto - Frigate",
"deleteFaceAttempts": { "deleteFaceAttempts": {
@ -31,22 +32,34 @@
"selectItem": "Valitse {{item}}", "selectItem": "Valitse {{item}}",
"train": { "train": {
"empty": "Ei viimeaikaisia kasvojentunnistusyrityksiä", "empty": "Ei viimeaikaisia kasvojentunnistusyrityksiä",
"title": "Koulutus" "title": "Koulutus",
"aria": "Valitse kouluta"
}, },
"collections": "Kokoelmat", "collections": "Kokoelmat",
"steps": { "steps": {
"faceName": "Anna nimi kasvoille", "faceName": "Anna nimi kasvoille",
"uploadFace": "Lähetä kasvokuva", "uploadFace": "Lähetä kasvokuva",
"nextSteps": "Seuraavat vaiheet" "nextSteps": "Seuraavat vaiheet",
"description": {
"uploadFace": "Lataa kuva henkilöstä {{name}}, jossa hänen kasvonsa näkyvät suoraan edestä päin. Kuvaa ei tarvitse rajata pelkkiin kasvoihin."
}
}, },
"createFaceLibrary": { "createFaceLibrary": {
"title": "Luo kokoelma", "title": "Luo kokoelma",
"desc": "Luo uusi kokoelma", "desc": "Luo uusi kokoelma",
"new": "Luo uusi kasvo" "new": "Luo uusi kasvo",
"nextSteps": "Hyvän perustan luomiseksi huomioitavaa:<li>Käytä koulutus-välilehteä valitaksesi opetukseen kuvia kustakin tunnistetusta henkilöstä</li><li>Panosta mahdollisimman suoraan otettuihin kuviin; vältä kouluttamista kulmassa kuvatuilla kuvilla.</li></ul>"
}, },
"selectFace": "Valitse kasvo", "selectFace": "Valitse kasvo",
"deleteFaceLibrary": { "deleteFaceLibrary": {
"title": "Poista nimi", "title": "Poista nimi",
"desc": "Haluatko varmasti poistaa kokoelman {{name}}? Tämä poistaa pysyvästi kaikki liitetyt kasvot." "desc": "Haluatko varmasti poistaa kokoelman {{name}}? Tämä poistaa pysyvästi kaikki liitetyt kasvot."
},
"renameFace": {
"title": "Uudelleennimeä kasvot",
"desc": "Anna uusi nimi tälle {{name}}"
},
"button": {
"deleteFaceAttempts": "Poista kasvot"
} }
} }

View File

@ -37,8 +37,26 @@
"beforeDateBeLaterAfter": "'Ennen' ajan täytyy olla myöhemmin kun 'jälkeen' aika.", "beforeDateBeLaterAfter": "'Ennen' ajan täytyy olla myöhemmin kun 'jälkeen' aika.",
"afterDatebeEarlierBefore": "'Jälkeen' ajan täytyy olla aiemmin kun 'ennen' aika.", "afterDatebeEarlierBefore": "'Jälkeen' ajan täytyy olla aiemmin kun 'ennen' aika.",
"minScoreMustBeLessOrEqualMaxScore": "Arvon 'min_score' täytyy olla pienempi tai yhtäsuuri kuin 'max_score'.", "minScoreMustBeLessOrEqualMaxScore": "Arvon 'min_score' täytyy olla pienempi tai yhtäsuuri kuin 'max_score'.",
"maxScoreMustBeGreaterOrEqualMinScore": "Arvon 'max_score' täytyy olla suurempi tai yhtäsuuri kuin 'min_score'." "maxScoreMustBeGreaterOrEqualMinScore": "Arvon 'max_score' täytyy olla suurempi tai yhtäsuuri kuin 'min_score'.",
"minSpeedMustBeLessOrEqualMaxSpeed": "'Minimi nopeus' tulee olla pienempi tai yhtäsuuri kuin 'maksimi nopeus'.",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "'Maksimi nopeus' tulee olla suurempi tai yhtä suuri kuin 'minimi nopeus'."
} }
},
"tips": {
"desc": {
"exampleLabel": "Esimerkki:"
},
"title": "Tekstisuodattimien käyttö"
},
"header": {
"currentFilterType": "Suodata arvoja",
"noFilters": "Suodattimet",
"activeFilters": "Käytössä olevat suodattimet"
} }
},
"similaritySearch": {
"title": "Samankaltaisten kohteiden haku",
"active": "Samankaltaisuushaku aktiivinen",
"clear": "Poista samankaltaisuushaku"
} }
} }

View File

@ -44,7 +44,8 @@
"gpuDecoder": "GPU-dekooderi", "gpuDecoder": "GPU-dekooderi",
"gpuInfo": { "gpuInfo": {
"vainfoOutput": { "vainfoOutput": {
"title": "Vainfon tulostus" "title": "Vainfon tulostus",
"returnCode": "Paluuarvo: {{code}}"
}, },
"toast": { "toast": {
"success": "Kopioi GPU:n tiedot leikepöydälle" "success": "Kopioi GPU:n tiedot leikepöydälle"

View File

@ -0,0 +1,19 @@
{
"speech": "Fala",
"babbling": "Balbuxo",
"bicycle": "Bicicleta",
"yell": "Berro",
"car": "Coche",
"crying": "Chorando",
"sigh": "Suspiro",
"singing": "Cantando",
"motorcycle": "Motocicleta",
"bus": "Bus",
"train": "Tren",
"boat": "Bote",
"bird": "Paxaro",
"cat": "Gato",
"bellow": "Abaixo",
"whoop": "Ei carballeira",
"whispering": "Murmurando"
}

View File

@ -0,0 +1,13 @@
{
"time": {
"untilForTime": "Até {{time}}",
"untilForRestart": "Até que se reinicie Frigate.",
"justNow": "Xusto agora",
"last7": "Últimos 7 días",
"last14": "Últimos 14 días",
"thisWeek": "Esta semana",
"today": "Hoxe",
"untilRestart": "Ata o reinicio",
"ago": "Fai {{timeAgo}}"
}
}

View File

@ -0,0 +1,12 @@
{
"form": {
"user": "Usuario/a",
"password": "Contrasinal",
"errors": {
"passwordRequired": "Contrasinal obrigatorio",
"unknownError": "Erro descoñecido. Revisa os logs.",
"usernameRequired": "Usuario/a obrigatorio"
},
"login": "Iniciar sesión"
}
}

View File

@ -0,0 +1,20 @@
{
"group": {
"label": "Grupos de cámaras",
"add": "Engadir Grupo de cámaras",
"delete": {
"confirm": {
"title": "Confirma o borrado",
"desc": "Seguro/a que queres borrar o Grupo de cámaras <em>{{name}}</em>?"
},
"label": "Borrar o Grupo de Cámaras"
},
"name": {
"placeholder": "Introduce un nome…",
"errorMessage": {
"nameMustNotPeriod": "Grupo de Cámaras non debe conter un punto."
}
},
"edit": "Editar o Grupo de Cámaras"
}
}

View File

@ -0,0 +1,21 @@
{
"restart": {
"title": "Estás seguro/a que queres reiniciar Frigate?",
"button": "Reiniciar",
"restarting": {
"button": "Forzar reinicio",
"content": "Esta páxina recargarase en {{countdown}} segundos.",
"title": "Frigate está Reiniciando"
}
},
"explore": {
"plus": {
"review": {
"question": {
"label": "Confirma esta etiqueta para Frigate Plus",
"ask_an": "E isto un obxecto <code>{{label}}</code>?"
}
}
}
}
}

View File

@ -0,0 +1,16 @@
{
"filter": "Filtrar",
"labels": {
"label": "Etiquetas",
"count_one": "{{count}} Etiqueta",
"all": {
"short": "Etiquetas",
"title": "Todas as Etiquetas"
}
},
"zones": {
"all": {
"title": "Tódalas zonas"
}
}
}

View File

@ -0,0 +1,8 @@
{
"iconPicker": {
"selectIcon": "Selecciona unha icona",
"search": {
"placeholder": "Pesquisar unha icona…"
}
}
}

View File

@ -0,0 +1,10 @@
{
"button": {
"downloadVideo": {
"label": "Descargar vídeo",
"toast": {
"success": "O teu vídeo de revisión comezou a descargarse."
}
}
}
}

View File

@ -0,0 +1,14 @@
{
"noRecordingsFoundForThisTime": "Non se atoparon grabacións para ese período",
"noPreviewFound": "Non se atopou previsualización",
"submitFrigatePlus": {
"submit": "Enviar",
"title": "Enviar este frame a Frigate+?"
},
"stats": {
"streamType": {
"title": "Tipo de emisión:"
}
},
"noPreviewFoundFor": "Vista Previa non atopada para {{cameraName}}"
}

View File

@ -0,0 +1,18 @@
{
"person": "Persoa",
"bicycle": "Bicicleta",
"airplane": "Avión",
"motorcycle": "Motocicleta",
"bus": "Bus",
"train": "Tren",
"boat": "Bote",
"traffic_light": "Luces de tráfico",
"fire_hydrant": "Boca de incendio",
"street_sign": "Sinal de tráfico",
"stop_sign": "Sinal de Stop",
"parking_meter": "Parquímetro",
"bench": "Banco",
"bird": "Paxaro",
"cat": "Gato",
"car": "Coche"
}

View File

@ -0,0 +1,12 @@
{
"documentTitle": "Editor de configuración - Frigate",
"configEditor": "Editor de Preferencias",
"saveOnly": "Só gardar",
"toast": {
"error": {
"savingError": "Erro gardando configuración"
}
},
"saveAndRestart": "Gardar e Reiniciar",
"copyConfig": "Copiar Configuración"
}

View File

@ -0,0 +1,10 @@
{
"alerts": "Alertas",
"detections": "Deteccións",
"allCameras": "Tódalas cámaras",
"timeline.aria": "Selecciona liña de tempo",
"motion": {
"only": "Só movemento",
"label": "Movemento"
}
}

View File

@ -0,0 +1,12 @@
{
"documentTitle": "Explorar - Frigate",
"generativeAI": "IA xenerativa",
"exploreMore": "Explorar máis obxectos {{label}}",
"exploreIsUnavailable": {
"title": "Explorar non está Dispoñible",
"embeddingsReindexing": {
"finishingShortly": "Rematando ceo",
"startingUp": "Comezando…"
}
}
}

View File

@ -0,0 +1,10 @@
{
"documentTitle": "Exportar - Frigate",
"search": "Pesquisar",
"deleteExport.desc": "Seguro que queres borrar {{exportName}}?",
"editExport": {
"saveExport": "Garda exportación"
},
"deleteExport": "Borrar exportación",
"noExports": "Non se atoparon exportacións"
}

View File

@ -0,0 +1,11 @@
{
"description": {
"addFace": "Navegar para engadir unha nova colección á Libraría de Caras.",
"placeholder": "Introduce un nome para esta colección",
"invalidName": "Nome non válido. Os nomes só poden incluír letras, números, espazos, apóstrofes, guións baixos e guións."
},
"details": {
"unknown": "Descoñecido",
"person": "Persoa"
}
}

View File

@ -0,0 +1,19 @@
{
"documentTitle": "Directo - Frigate",
"documentTitle.withCamera": "{{camera}} - Directo - Frigate",
"twoWayTalk": {
"disable": "Deshabilita a Conversa de dous sentidos",
"enable": "Habilitar a Conversa de dous sentidos"
},
"ptz": {
"move": {
"clickMove": {
"label": "Pincha no frame para centrar a cámara"
}
}
},
"cameraAudio": {
"enable": "Habilitar Audio de cámara"
},
"lowBandwidthMode": "Modo de Baixa Banda Ancha"
}

View File

@ -0,0 +1,11 @@
{
"filter": "Filtrar",
"export": "Exportar",
"calendar": "Calendario",
"toast": {
"error": {
"noValidTimeSelected": "Rango de tempo inválido"
}
},
"filters": "Filtros"
}

View File

@ -0,0 +1,15 @@
{
"search": "Pesquisar",
"savedSearches": "Pesquisas gardadas",
"button": {
"save": "Gardar pesquisa",
"filterActive": "Filtros activos",
"clear": "Borrar pesquisa"
},
"filter": {
"label": {
"cameras": "Cámaras"
}
},
"searchFor": "Procurar por {{inputValue}}"
}

View File

@ -0,0 +1,11 @@
{
"documentTitle": {
"default": "Preferencias - Frigate",
"authentication": "Configuracións de Autenticación - Frigate",
"camera": "Configuracións da Cámara - Frigate",
"general": "Configuracións xerais - Frigate",
"notifications": "Configuración de Notificacións - Frigate",
"enrichments": "Configuración complementarias - Frigate",
"masksAndZones": "Editor de máscaras e zonas - Frigate"
}
}

View File

@ -0,0 +1,17 @@
{
"documentTitle": {
"cameras": "Estatísticas de cámaras - Frigate",
"storage": "Estatísticas de Almacenamento - Frigate",
"general": "Estatísticas Xerais - Frigate",
"enrichments": "Estatísticas complementarias - Frigate",
"logs": {
"frigate": "Rexistros de Frigate - Frigate"
}
},
"title": "Sistema",
"logs": {
"download": {
"label": "Descargar logs"
}
}
}

View File

@ -5,7 +5,7 @@
"untilForRestart": "Amíg a Frigate újraindul.", "untilForRestart": "Amíg a Frigate újraindul.",
"untilRestart": "Amíg újraindul", "untilRestart": "Amíg újraindul",
"justNow": "Most", "justNow": "Most",
"ago": "{{timeAgo}} ezelőtt", "ago": "Ennyi ideje: {{timeAgo}}",
"today": "Ma", "today": "Ma",
"yesterday": "Tegnap", "yesterday": "Tegnap",
"last7": "Elmúlt 7 nap", "last7": "Elmúlt 7 nap",
@ -14,15 +14,15 @@
"thisWeek": "Ezen a héten", "thisWeek": "Ezen a héten",
"lastWeek": "Előző héten", "lastWeek": "Előző héten",
"thisMonth": "Ebben a hónapban", "thisMonth": "Ebben a hónapban",
"lastMonth": "Előző hónap", "lastMonth": "Előző hónapban",
"5minutes": "5 perc", "5minutes": "5 perc",
"10minutes": "10 perc", "10minutes": "10 perc",
"30minutes": "30 perc", "30minutes": "30 perc",
"1hour": "1 óra", "1hour": "1 óra",
"12hours": "12 óra", "12hours": "12 óra",
"24hours": "24 óra", "24hours": "24 óra",
"pm": "PM", "pm": "du",
"am": "AM", "am": "de",
"yr": "{{time}} év", "yr": "{{time}} év",
"mo": "{{time}} hónap", "mo": "{{time}} hónap",
"d": "{{time}} nap", "d": "{{time}} nap",
@ -41,38 +41,38 @@
"day_one": "{{time}} nap", "day_one": "{{time}} nap",
"day_other": "{{time}} napok", "day_other": "{{time}} napok",
"formattedTimestamp": { "formattedTimestamp": {
"24hour": "HHH n, ÓÓ:pp:mm", "24hour": "MMM d, HH:mm:ss",
"12hour": "HHH d, ó:pp:mm aaa" "12hour": "MMM d, h:mm:ss aaa"
}, },
"formattedTimestampMonthDayYear": { "formattedTimestampMonthDayYear": {
"12hour": "HHH d, éééé", "12hour": "MMM d, yyyy",
"24hour": "HHH n, éééé" "24hour": "MMM d, yyyy"
}, },
"formattedTimestampHourMinute": { "formattedTimestampHourMinute": {
"24hour": "ÓÓ:pp", "24hour": "HH:mm",
"12hour": "ó:pp aaa" "12hour": "h:mm aaa"
}, },
"formattedTimestamp2": { "formattedTimestamp2": {
"24hour": "n HHH ÓÓ:pp:mm", "24hour": "d MMM HH:mm:ss",
"12hour": "HH/NN ó:pp:mma" "12hour": "MM/dd h:mm:ssa"
}, },
"formattedTimestampHourMinuteSecond": { "formattedTimestampHourMinuteSecond": {
"24hour": "ÓÓ:pp:mm", "24hour": "HH:mm:ss",
"12hour": "ó:pp:mm aaa" "12hour": "h:mm:ss aaa"
}, },
"formattedTimestampMonthDayYearHourMinute": { "formattedTimestampMonthDayYearHourMinute": {
"24hour": "HHH n éééé, ÓÓ:pp", "24hour": "MMM d yyyy, HH:mm",
"12hour": "HHH n éééé, ó:pp aaa" "12hour": "MMM d yyyy, h:mm aaa"
}, },
"formattedTimestampFilename": { "formattedTimestampFilename": {
"24hour": "HH-nn-éé-ÓÓ-pp-mm", "24hour": "yy-MM-dd-HH-mm-ss",
"12hour": "HH-nn-éé-ó-pp-mm-a" "12hour": "yy-MM-dd-h-mm-ss-a"
}, },
"formattedTimestampMonthDayHourMinute": { "formattedTimestampMonthDayHourMinute": {
"24hour": "HHH n, ÓÓ:pp", "24hour": "MMM d, HH:mm",
"12hour": "HHH n, ó:pp aaa" "12hour": "MMM d, h:mm aaa"
}, },
"formattedTimestampMonthDay": "HHH n" "formattedTimestampMonthDay": "MMM d"
}, },
"menu": { "menu": {
"darkMode": { "darkMode": {

View File

@ -22,7 +22,7 @@
"ask_a": "Ez a tárgy egy <code>{{label}}</code>?", "ask_a": "Ez a tárgy egy <code>{{label}}</code>?",
"label": "Erősítse meg ezt a cimkét a Frigate plus felé", "label": "Erősítse meg ezt a cimkét a Frigate plus felé",
"ask_an": "Ez a tárgy egy <code>{{label}}</code>?", "ask_an": "Ez a tárgy egy <code>{{label}}</code>?",
"ask_full": "Ez egy <code>{{untranslatedLabel}}</code>{{translatedLabel}} tárgy?" "ask_full": "Ez a tárgy egy <code>{{untranslatedLabel}}</code> ({{translatedLabel}})?"
} }
} }
}, },

View File

@ -31,7 +31,7 @@
"recordings": { "recordings": {
"documentTitle": "Felvételek - Frigate" "documentTitle": "Felvételek - Frigate"
}, },
"markTheseItemsAsReviewed": "Ezen elwmek megjelölése áttekintettként", "markTheseItemsAsReviewed": "Ezen elemek megjelölése áttekintettként",
"markAsReviewed": "Megjelölés Áttekintettként", "markAsReviewed": "Megjelölés Áttekintettként",
"selected_one": "{{count}} kiválasztva", "selected_one": "{{count}} kiválasztva",
"selected_other": "{{count}} kiválasztva" "selected_other": "{{count}} kiválasztva"

View File

@ -6,7 +6,7 @@
"classification": "Osztályozási beállítások - Frigate", "classification": "Osztályozási beállítások - Frigate",
"masksAndZones": "Maszk és zónaszerkesztő - Frigate", "masksAndZones": "Maszk és zónaszerkesztő - Frigate",
"object": "Hibakeresés - Frigate", "object": "Hibakeresés - Frigate",
"general": "Áltlános beállítások - Frigate", "general": "Áltlános Beállítások - Frigate",
"frigatePlus": "Frigate+ beállítások - Frigate", "frigatePlus": "Frigate+ beállítások - Frigate",
"notifications": "Értesítések beállítása - Frigate", "notifications": "Értesítések beállítása - Frigate",
"motionTuner": "Mozgás Hangoló - Frigate", "motionTuner": "Mozgás Hangoló - Frigate",
@ -42,7 +42,7 @@
"desc": "Automatikusan váltson át a kamera élő nézetére, amikor aktivitást észlel. Ha ez az opció ki van kapcsolva, akkor az Élő irányítópulton a statikus kameraképek csak percenként egyszer frissülnek." "desc": "Automatikusan váltson át a kamera élő nézetére, amikor aktivitást észlel. Ha ez az opció ki van kapcsolva, akkor az Élő irányítópulton a statikus kameraképek csak percenként egyszer frissülnek."
}, },
"playAlertVideos": { "playAlertVideos": {
"label": "Ria Videók Lejátszása", "label": "Riasztási Videók Lejátszása",
"desc": "Alapértelmezetten az Élő irányítópulton a legutóbbi riasztások kis, ismétlődő videóként jelennek meg. Kapcsolja ki ezt az opciót, ha csak állóképet szeretne megjeleníteni a legutóbbi riasztásokról ezen az eszközön/böngészőben." "desc": "Alapértelmezetten az Élő irányítópulton a legutóbbi riasztások kis, ismétlődő videóként jelennek meg. Kapcsolja ki ezt az opciót, ha csak állóképet szeretne megjeleníteni a legutóbbi riasztásokról ezen az eszközön/böngészőben."
} }
}, },
@ -143,7 +143,7 @@
"success": "A kiegészítő beállítások elmentésre kerültek. A módosítások alkalmazásához indítsa újra a Frigate-et." "success": "A kiegészítő beállítások elmentésre kerültek. A módosítások alkalmazásához indítsa újra a Frigate-et."
}, },
"unsavedChanges": "Mentetlen gazdagítási beállítás változtatások", "unsavedChanges": "Mentetlen gazdagítási beállítás változtatások",
"title": "Kiegészítés Beállítások", "title": "Kiegészítők Beállítása",
"restart_required": "Újraindítás szükséges (a kiegészítő beállítások megváltoztak)" "restart_required": "Újraindítás szükséges (a kiegészítő beállítások megváltoztak)"
}, },
"notification": { "notification": {

View File

@ -16,7 +16,8 @@
}, },
"review": { "review": {
"question": { "question": {
"label": "Konfirmasi label ini untuk Frigate Plus" "label": "Konfirmasi label ini untuk Frigate Plus",
"ask_a": "Apakah objek ini adalah sebuah<code>{{label}}</code>?"
} }
} }
} }

View File

@ -11,5 +11,6 @@
"alert": "Tidak ada peringatan untuk ditinjau", "alert": "Tidak ada peringatan untuk ditinjau",
"motion": "Data gerakan tidak ditemukan" "motion": "Data gerakan tidak ditemukan"
}, },
"timeline.aria": "Pilih timeline" "timeline.aria": "Pilih timeline",
"timeline": "Linimasa"
} }

View File

@ -7,7 +7,10 @@
"context": "Jelajahi dapat digunakan setelah embedding objek yang dilacak selesai di-reindex.", "context": "Jelajahi dapat digunakan setelah embedding objek yang dilacak selesai di-reindex.",
"startingUp": "Sedang memulai…", "startingUp": "Sedang memulai…",
"estimatedTime": "Perkiraan waktu tersisa:", "estimatedTime": "Perkiraan waktu tersisa:",
"finishingShortly": "Selesai sesaat lagi" "finishingShortly": "Selesai sesaat lagi",
"step": {
"thumbnailsEmbedded": "Keluku dilampirkan "
}
} }
}, },
"details": { "details": {

View File

@ -8,5 +8,6 @@
"delete": "Hapus pencarian yang disimpan", "delete": "Hapus pencarian yang disimpan",
"filterInformation": "Saring Informasi", "filterInformation": "Saring Informasi",
"filterActive": "Filter aktif" "filterActive": "Filter aktif"
} },
"trackedObjectId": "Tracked Object ID"
} }

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1,38 @@
{
"camera": "Kamera",
"speech": "Kalbėjimas",
"bicycle": "Dviratis",
"car": "Automobilis",
"motorcycle": "Motociklas",
"bus": "Autobusas",
"train": "Traukinys",
"boat": "Valtis",
"bird": "Paukštis",
"cat": "Katė",
"dog": "Šuo",
"horse": "Arklys",
"sheep": "Avis",
"babbling": "Burbėjimas",
"yell": "Šūksnis",
"skateboard": "Riedlentė",
"door": "Durys",
"mouse": "Pelė",
"keyboard": "Klaviatūra",
"sink": "Kriauklė",
"blender": "Plakiklis",
"clock": "Laikrodis",
"scissors": "Žirklės",
"hair_dryer": "Plaukų Džiovintuvas",
"toothbrush": "Dantų šepetėlis",
"vehicle": "Mašina",
"animal": "Gyvūnas",
"bark": "Lojimas",
"goat": "Ožka",
"bellow": "Apačioje",
"whoop": "Rėkavimas",
"whispering": "Šnabždėjimas",
"laughter": "Juokas",
"snicker": "Kikenimas",
"crying": "Verkimas",
"singing": "Dainavimas"
}

View File

@ -0,0 +1,214 @@
{
"time": {
"untilForTime": "Iki {{time}}",
"untilForRestart": "Iki kol Frigate persikraus.",
"untilRestart": "Iki perkrovimo",
"ago": "prieš {{timeAgo}}",
"justNow": "Ką tik",
"today": "Šiandien",
"yesterday": "Vakar",
"last7": "Paskutinės 7 dienos",
"last14": "Paskutinės 14 dienų",
"last30": "Paskutinės 30 dienų",
"thisWeek": "Šią Savaitę",
"lastWeek": "Praeitą Savaitę",
"thisMonth": "Šį Mėnesį",
"lastMonth": "Praeitą Mėnesį",
"5minutes": "5 minutės",
"10minutes": "10 minučių",
"30minutes": "30 minučių",
"1hour": "1 valandą",
"12hours": "12 valandų",
"24hours": "24 valandos",
"pm": "pm",
"am": "am",
"yr": "{{time}}m",
"year_one": "{{time}} metai",
"year_few": "{{time}} metai",
"year_other": "{{time}} metų",
"mo": "{{time}}mėn",
"month_one": "{{time}} mėnuo",
"month_few": "{{time}} mėnesiai",
"month_other": "{{time}} mėnesių",
"d": "{{time}}d",
"day_one": "{{time}} diena",
"day_few": "{{time}} dienos",
"day_other": "{{time}} dienų",
"h": "{{time}}v",
"hour_one": "{{time}} valanda",
"hour_few": "{{time}} valandos",
"hour_other": "{{time}} valandų",
"m": "{{time}}min",
"minute_one": "{{time}} minutė",
"minute_few": "{{time}} minutės",
"minute_other": "{{time}} minučių",
"s": "{{time}}s",
"second_one": "{{time}} sekundė",
"second_few": "{{time}} sekundės",
"second_other": "{{time}} sekundžių",
"formattedTimestamp": {
"12hour": ""
}
},
"unit": {
"speed": {
"kph": "kmh"
},
"length": {
"feet": "pėdos",
"meters": "metrai"
}
},
"label": {
"back": "Eiti atgal"
},
"button": {
"apply": "Pritaikyti",
"reset": "Atstatyti",
"done": "Baigta",
"enabled": "Įjungta",
"enable": "Įjungti",
"disabled": "Išjungta",
"disable": "Išjungti",
"save": "Išsaugoti",
"saving": "Saugoma…",
"cancel": "Atšaukti",
"close": "Užverti",
"copy": "Kopijuoti",
"back": "Atgal",
"history": "Istorija",
"fullscreen": "Pilnas Ekranas",
"exitFullscreen": "Išeiti iš Pilno Ekrano",
"pictureInPicture": "Paveikslėlis Paveiksle",
"twoWayTalk": "Dvikryptis Kalbėjimas",
"cameraAudio": "Kameros Garsas",
"on": "",
"edit": "Redaguoti",
"copyCoordinates": "Kopijuoti koordinates",
"delete": "Ištrinti",
"yes": "Taip",
"no": "Ne",
"download": "Atsisiųsti",
"info": "",
"suspended": "Pristatbdytas",
"unsuspended": "Atnaujinti",
"play": "Groti",
"unselect": "Atžymėti",
"export": "Eksportuoti",
"deleteNow": "Trinti Dabar",
"next": "Kitas"
},
"menu": {
"system": "Sistema",
"systemMetrics": "Sistemos duomenys",
"configuration": "Konfiguracija",
"systemLogs": "Sistemos įrašai",
"settings": "Nustatymai",
"configurationEditor": "Konfiguracijos Redaktorius",
"languages": "Kalbos",
"language": {
"en": "Anglų",
"es": "Ispanų",
"zhCN": "Kinų (supaprastinta)",
"fr": "Prancūzų",
"ar": "Arabų",
"pt": "Portugalų",
"ru": "Rusų",
"de": "Vokiečių",
"ja": "Japonų",
"tr": "Turkų",
"it": "Italų",
"nl": "Olandų",
"sv": "Švedų",
"cs": "Čekų",
"nb": "Norvegų",
"vi": "Vietnamiečių",
"fa": "Persų",
"pl": "Lenkų",
"uk": "Ukrainos",
"el": "Graikų",
"ro": "Romūnijos",
"hu": "Vengrų",
"fi": "Suomių",
"da": "Danų",
"sk": "Slovėnų",
"withSystem": {
"label": "Kalbai naudoti sistemos nustatymus"
}
},
"appearance": "Išvaizda",
"darkMode": {
"label": "Tamsusis Rėžimas",
"light": "Šviesus",
"dark": "Tamsus",
"withSystem": {
"label": "Šviesiam ar tamsiam rėžimui naudoti sistemos nustatymus"
}
},
"withSystem": "Sistema",
"theme": {
"label": "Tema",
"blue": "Mėlyna",
"green": "Žalia",
"nord": "Šiaurietiška",
"red": "Raudona",
"highcontrast": "Didelio Kontrasto",
"default": "Numatyta"
},
"help": "Pagalba",
"documentation": {
"title": "Dokumentacija",
"label": "Frigate dokumentacija"
},
"restart": "Perkrauti Frigate",
"live": {
"title": "Tiesiogiai",
"allCameras": "Visos Kameros",
"cameras": {
"title": "Kameros",
"count_one": "{{count}} Kamera",
"count_few": "{{count}} Kameros",
"count_other": "{{count}} Kamerų"
}
},
"review": "Peržiūros",
"explore": "Iškoti",
"export": "Eksportuoti",
"faceLibrary": "Veidų Biblioteka",
"user": {
"title": "Vartotojas",
"account": "Paskyra",
"current": "Esamas vartotojas: {{user}}",
"anonymous": "neidentifikuotas",
"logout": "atsijungti",
"setPassword": "Nustatyti Slaptažodi"
}
},
"toast": {
"copyUrlToClipboard": "URL nukopijuotas į atmintį.",
"save": {
"title": "Išsaugoti",
"error": {
"title": "Nepavyko išsaugoti konfiguracijos pakeitimų: {{errorMessage}}",
"noMessage": "Nepavyko išsaugoti konfiguracijos pakeitimų"
}
}
},
"role": {
"title": "Rolė",
"admin": "Adminas",
"viewer": "Žiūrėtojas",
"desc": "Adminai turi pilną prieigą prie visų Frigate vartotojo sąsajos fukncijų. Žiūrėtojai yra apriboti peržiūrėti kameras, peržiūrų įrašus ir istorinius įrašus."
},
"pagination": {
"label": "puslapiavimas",
"previous": {
"title": "Ankstesnis",
"label": "Eiti į ankstesnį puslapį"
},
"next": {
"title": "Sekantis",
"label": "Eiti į sekantį puslapį"
}
}
}

View File

@ -0,0 +1,15 @@
{
"form": {
"user": "Vartotojo vardas",
"password": "Slaptažodis",
"login": "Prisijungti",
"errors": {
"usernameRequired": "Vartotojo vardas yra privalomas",
"passwordRequired": "Slaptažodis yra privalomas",
"rateLimit": "Viršytos nustatytos ribos. Pabandykite vėliau.",
"loginFailed": "Prisijungti nepavyko",
"unknownError": "Nežinoma klaida. Patikrinkite įrašus.",
"webUnknownError": "Nežinoma klaida. Patikrinkite konsolės įrašus."
}
}
}

View File

@ -0,0 +1,22 @@
{
"group": {
"label": "Kamerų Grupės",
"add": "Sukurti Kamerų Grupę",
"edit": "Modifikuoti Kamerų Grupę",
"delete": {
"label": "Ištrinti Kamerų Grupę",
"confirm": {
"title": "Patvirtinti ištrynimą",
"desc": "Ar tikrai norite ištrinti šią kamerų grupę <em>{{name}}</em>?"
}
},
"name": {
"label": "Pavadinimas",
"placeholder": "Įveskite pavadinimą…",
"errorMessage": {
"mustLeastCharacters": "Kamerų grupės pavadinimas turi būti bent 2 simbolių.",
"exists": "Kamerų grupės pavadinimas jau egzistuoja."
}
}
}
}

View File

@ -0,0 +1,25 @@
{
"restart": {
"title": "Ar įsitikinę kad norite perkrauti Frigate?",
"button": "Perkrauti",
"restarting": {
"title": "Frigate Persikrauna",
"content": "Šis puslapis persikraus už {{countdown}} sekundžių.",
"button": "Priverstinai Perkrauti Dabar"
}
},
"explore": {
"plus": {
"review": {
"question": {
"ask_a": "Ar šis objektas yra <code>{{label}}</code>?",
"ask_an": "Ar šis objektas yra <code>{{label}}</code>?",
"label": "Patvirtinti šią etiketę į Frigate Plus"
}
},
"submitToPlus": {
"label": "Pateiktį į Frigate+"
}
}
}
}

View File

@ -0,0 +1,19 @@
{
"filter": "Filtras",
"labels": {
"label": "Etiketės",
"all": {
"title": "Visos Etiketės",
"short": "Etiketės"
},
"count_one": "{{count}} Etiketė",
"count_other": "{{count}} Etiketės"
},
"zones": {
"label": "Zonos",
"all": {
"title": "Visos Zonos",
"short": "Zonos"
}
}
}

View File

@ -0,0 +1,8 @@
{
"iconPicker": {
"selectIcon": "Pasirinkti ikoną",
"search": {
"placeholder": "Surasti ikoną…"
}
}
}

View File

@ -0,0 +1,10 @@
{
"button": {
"downloadVideo": {
"label": "Parsisiųsti Video",
"toast": {
"success": "Jūsų peržiūros elemento parsisiuntimas pradėtas."
}
}
}
}

View File

@ -0,0 +1,51 @@
{
"noRecordingsFoundForThisTime": "Šiam laiko tarpui įrašų nerasta",
"noPreviewFound": "Peržiūrų nerasta",
"noPreviewFoundFor": "Peržiūrų nerasta {{cameraName}}",
"submitFrigatePlus": {
"title": "Pateikti šį kadrą į Frigate+?",
"submit": "Pateikti"
},
"livePlayerRequiredIOSVersion": "iOS 17.1 ar naujesni yra privalomi šiam tiesioginės transliacijos tipui.",
"streamOffline": {
"title": "Transliacija nepasiekiama",
"desc": "Jokių transliacijos kadrų negauta iš {{cameraName}}<code>detect</code>, patikrinkite klaidų sąrašus"
},
"cameraDisabled": "Kamera yra išjungta",
"stats": {
"streamType": {
"title": "Transliacijos Tipas:",
"short": "Tipas"
},
"bandwidth": {
"title": "Pralaidumas:",
"short": "Pralaidumas"
},
"latency": {
"title": "Vėlavimas:",
"value": "{{seconds}} sekundžių",
"short": {
"title": "Vėlavimas",
"value": "{{seconds}} sek"
}
},
"totalFrames": "Iš viso Kadrų:",
"droppedFrames": {
"title": "Pamestų Kadrų:",
"short": {
"title": "Pamesti",
"value": "{{droppedFrames}} kadrai"
}
},
"decodedFrames": "Dekoduoti Kadrai:",
"droppedFrameRate": "Pamestų Kadrų Dažnis:"
},
"toast": {
"success": {
"submittedFrigatePlus": "Kadras sėkmingai pateiktas į Frigate+"
},
"error": {
"submitFrigatePlusFailed": "Nepavyko pateikti kadro į Frigate+"
}
}
}

View File

@ -0,0 +1,118 @@
{
"person": "Žmogus",
"bicycle": "Dviratis",
"car": "Automobilis",
"motorcycle": "Motociklas",
"airplane": "Lėktuvas",
"bus": "Autobusas",
"train": "Traukinys",
"boat": "Valtis",
"traffic_light": "Šviesoforas",
"fire_hydrant": "Hidrantas",
"street_sign": "Kelio ženklas",
"stop_sign": "Stop ženklas",
"parking_meter": "Stovėjimo automatas",
"bench": "Suoliukas",
"bird": "Paukštis",
"cat": "Katė",
"dog": "Šuo",
"horse": "Arklys",
"sheep": "Avis",
"cow": "Karvė",
"elephant": "Dramblys",
"bear": "Lokys",
"zebra": "Zebras",
"giraffe": "Žirafa",
"hat": "Kepurė",
"backpack": "Kuprinė",
"umbrella": "Skėtis",
"shoe": "Batas",
"eye_glasses": "Akiniai",
"handbag": "Rankinė",
"tie": "Kaklaraštis",
"suitcase": "Lagaminas",
"frisbee": "Skraidanti lėkštė",
"snowboard": "Snieglentė",
"skis": "Slidės",
"sports_ball": "Sporto Kamuolys",
"kite": "Aitvaras",
"baseball_bat": "Beisbolo lazda",
"baseball_glove": "Beisbolo Pirštinė",
"skateboard": "Riedlentė",
"surfboard": "Banglentė",
"tennis_racket": "Teniso Raketė",
"bottle": "Butelis",
"plate": "Lėkštė",
"wine_glass": "Vyno Taurė",
"cup": "Puodelis",
"fork": "Šakutė",
"knife": "Peilis",
"spoon": "Šaukštas",
"bowl": "Dubuo",
"banana": "Bananas",
"apple": "Obuolys",
"sandwich": "Sumuštinis",
"orange": "Apelsinas",
"broccoli": "Brokolis",
"carrot": "Morka",
"hot_dog": "Hot Dog",
"pizza": "Pica",
"donut": "Spurga",
"cake": "Tortas",
"chair": "Kėdė",
"couch": "Sofa",
"potted_plant": "Pasodintas Augalas",
"bed": "Lova",
"mirror": "Veidrodis",
"dining_table": "Valgomasis Stalas",
"window": "Langas",
"desk": "Stalas",
"toilet": "Tualetas",
"door": "Durys",
"tv": "TV",
"laptop": "Nešiojamasis Kompiuteris",
"mouse": "Pelė",
"remote": "Nuotolinis valdymo pultas",
"keyboard": "Klaviatūra",
"cell_phone": "Mobilus Telefonas",
"microwave": "Mikrobangų krosnelė",
"oven": "Orkaitė",
"toaster": "Skrudintuvas",
"sink": "Kriauklė",
"refrigerator": "Šaldiklis",
"blender": "Plakiklis",
"book": "Knyga",
"clock": "Laikrodis",
"vase": "Vaza",
"scissors": "Žirklės",
"teddy_bear": "Pliušinis Meškiukas",
"hair_dryer": "Plaukų Džiovintuvas",
"toothbrush": "Dantų šepetėlis",
"hair_brush": "Plaukų šepetys",
"vehicle": "Mašina",
"squirrel": "Voverė",
"deer": "Elnias",
"animal": "Gyvūnas",
"bark": "Lojimas",
"fox": "Lapė",
"goat": "Ožka",
"rabbit": "Triušis",
"raccoon": "Meškėnas",
"robot_lawnmower": "Robotas Vejapjovė",
"waste_bin": "Šiukšliadėžė",
"on_demand": "Pagal Poreikį",
"face": "Veidas",
"license_plate": "Registracijos Numeris",
"package": "Pakuotė",
"bbq_grill": "BBQ kepsninė",
"amazon": "",
"usps": "",
"ups": "",
"fedex": "",
"dhl": "",
"an_post": "",
"purolator": "",
"postnl": "",
"nzpost": "",
"postnord": ""
}

View File

@ -0,0 +1,16 @@
{
"documentTitle": "Konfiguracijos redaktorius - Frigate",
"configEditor": "Konfiguracijos Redaktorius",
"copyConfig": "Kopijuoti Konfiguraciją",
"saveAndRestart": "Išsaugoti ir Perkrauti",
"saveOnly": "Tik Išsaugoti",
"confirm": "Išeiti neišsaugant?",
"toast": {
"success": {
"copyToClipboard": "Konfiguracija nukopijuota į atmintį."
},
"error": {
"savingError": "Klaida išsaugant konfiguraciją"
}
}
}

View File

@ -0,0 +1,38 @@
{
"motion": {
"label": "Judesys",
"only": "Tik judesys"
},
"allCameras": "Visos kameros",
"timeline": "Laiko juosta",
"timeline.aria": "Pasirink laiko juostą",
"events": {
"label": "Įvykiai",
"aria": "Pasirinkti įvykius",
"noFoundForTimePeriod": "Šiam laiko periodui įvykių nėrasta."
},
"calendarFilter": {
"last24Hours": "Paskutinė para"
},
"selected_one": "{{count}} pasirinktas",
"selected_other": "{{count}} pasirinkta",
"camera": "Kamera",
"alerts": "Įspėjimai",
"detections": "Aptikimai",
"empty": {
"alert": "Nėra pranešimų peržiūrai",
"detection": "Nėra aptikimų peržiūrai",
"motion": "Duomenų apie judesius nėra"
},
"documentTitle": "Peržiūros - Frigate",
"recordings": {
"documentTitle": "Įrašai - Frigate"
},
"markAsReviewed": "Pažymėti kaip peržiūrėtą",
"markTheseItemsAsReviewed": "Pažymėti šiuos įrašus kaip peržiūrėtus",
"newReviewItems": {
"label": "Pamatyti naujus peržiūros įrašus",
"button": "Nauji Įrašai Peržiūrėjimui"
},
"detected": "aptikta"
}

View File

@ -0,0 +1,14 @@
{
"documentTitle": "Tyrinėti - Frigate",
"generativeAI": "Generatyvinis DI",
"exploreMore": "Apžvelgti daugiau {{label}} objektų",
"exploreIsUnavailable": {
"embeddingsReindexing": {
"startingUp": "Paleidžiama…",
"estimatedTime": "Apytikris likęs laikas:"
}
},
"details": {
"timestamp": "Laiko žyma"
}
}

View File

@ -0,0 +1,17 @@
{
"search": "Paieška",
"documentTitle": "Eksportuoti - Frigate",
"noExports": "Eksportuotų įrašų nerasta",
"deleteExport": "Ištrinti Eksportuotą Įrašą",
"deleteExport.desc": "Esate įsitikine, kad norite ištrinti {{exportName}}?",
"editExport": {
"title": "Pervadinti Eksportuojamą įrašą",
"desc": "Įveskite nauja pavadinimą šiam eksportuojamam įrašui.",
"saveExport": "Išsaugoti Eksportuojamą Įrašą"
},
"toast": {
"error": {
"renameExportFailed": "Nepavyko pervadinti eksportuojamo įrašo: {{errorMessage}}"
}
}
}

View File

@ -0,0 +1,13 @@
{
"description": {
"addFace": "Apžiūrėkite naujų kolekcijų pridėjimą prie Veidų Bibliotekos.",
"placeholder": "Įveskite pavadinimą šiai kolekcijai",
"invalidName": "Netinkamas vardas. Vardai gali turėti tik raides, numerius, tarpus, apostrofus, pabraukimus ir brukšnelius."
},
"details": {
"person": "Žmogus",
"face": "Veido detelės",
"timestamp": "Laiko žyma",
"unknown": "Nežinoma"
}
}

View File

@ -0,0 +1,13 @@
{
"documentTitle": "Gyvai - Frigate",
"documentTitle.withCamera": "{{camera}} - Tiesiogiai - Frigate",
"lowBandwidthMode": "Mažo-pralaidumo Rėžimas",
"cameraAudio": {
"enable": "Įgalinti Kamerų Garsą",
"disable": "Išjungti Kamerų Garsą"
},
"twoWayTalk": {
"enable": "Įgalinti Dvipusį Pokalbį",
"disable": "Išjungti Dvipusį Pokalbį"
}
}

Some files were not shown because too many files have changed in this diff Show More