Compare commits

...

87 Commits

Author SHA1 Message Date
Hosted Weblate
f0d69f7856 Translated using Weblate (Cantonese (Traditional Han script))
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (122 of 122 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (49 of 49 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (501 of 501 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (43 of 43 strings)

Translated using Weblate (Cantonese (Traditional Han script))

Currently translated at 100.0% (98 of 98 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: beginner2047 <leoywng44@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/yue_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/yue_Hant/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-21 10:22:26 -06:00
Hosted Weblate
5b16978430 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (654 of 654 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: OverTheHillsAndFarAway <prosjektx@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nb_NO/
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
b6142e3017 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (654 of 654 strings)

Co-authored-by: GuoQing Liu <842607283@qq.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hans/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
e1a6f69c4e Translated using Weblate (Slovenian)
Currently translated at 37.7% (247 of 654 strings)

Translated using Weblate (Slovenian)

Currently translated at 36.0% (236 of 654 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: tadythefish <tady.the.fish@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sl/
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
d940ff3341 Translated using Weblate (Slovak)
Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Slovak)

Currently translated at 96.2% (52 of 54 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Slovak)

Currently translated at 99.1% (121 of 122 strings)

Translated using Weblate (Slovak)

Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Slovak)

Currently translated at 97.7% (639 of 654 strings)

Translated using Weblate (Slovak)

Currently translated at 95.5% (130 of 136 strings)

Translated using Weblate (Slovak)

Currently translated at 99.8% (500 of 501 strings)

Translated using Weblate (Slovak)

Currently translated at 99.2% (135 of 136 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: OskarSidor <oskar.sidor@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sk/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-21 10:22:26 -06:00
Hosted Weblate
1f14f1cda0 Added translation using Weblate (Georgian)
Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Added translation using Weblate (Georgian)

Co-authored-by: George Hertz <georgedot@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-02-21 10:22:26 -06:00
Hosted Weblate
806c5892b6 Translated using Weblate (Swedish)
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (10 of 10 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kristian Johansson <knmjohansson@gmail.com>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sv/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
8bc82060f1 Translated using Weblate (French)
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (French)

Currently translated at 100.0% (654 of 654 strings)

Co-authored-by: Apocoloquintose <bertrand.moreux@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fr/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
3cc8311b48 Translated using Weblate (Spanish)
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (74 of 74 strings)

Co-authored-by: Ferrer <juanemilioferrer+weblate@outlook.com>
Co-authored-by: Gerard Ricart Castells <gerard.ricart@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ramitada <ramitada@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/es/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-21 10:22:26 -06:00
Hosted Weblate
71139ef842 Translated using Weblate (Dutch)
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (54 of 54 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/common/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nl/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
f4f32a3f59 Translated using Weblate (Indonesian)
Currently translated at 54.9% (67 of 122 strings)

Translated using Weblate (Indonesian)

Currently translated at 48.2% (27 of 56 strings)

Co-authored-by: Catto <sisharyadi@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-classificationmodel/id/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
2026-02-21 10:22:26 -06:00
Hosted Weblate
29a4076589 Translated using Weblate (Italian)
Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (217 of 217 strings)

Co-authored-by: Edoardo Macrì <edoardo@edoardomacri.it>
Co-authored-by: Filippo-riccardo Franzin (filippo franzin) <filric01@gmail.com>
Co-authored-by: Gringo <ita.translations@tiscali.it>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/it/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-21 10:22:26 -06:00
Hosted Weblate
d4d4164f99 Translated using Weblate (Polish)
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (501 of 501 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (654 of 654 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: J P <jpoloczek24@gmail.com>
Co-authored-by: Krzysztof <krzysztof64@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pl/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
5cc81bc7a1 Translated using Weblate (Hungarian)
Currently translated at 62.8% (411 of 654 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Hungarian)

Currently translated at 88.9% (121 of 136 strings)

Translated using Weblate (Hungarian)

Currently translated at 35.2% (43 of 122 strings)

Translated using Weblate (Hungarian)

Currently translated at 98.1% (53 of 54 strings)

Translated using Weblate (Hungarian)

Currently translated at 77.9% (106 of 136 strings)

Translated using Weblate (Hungarian)

Currently translated at 96.4% (54 of 56 strings)

Translated using Weblate (Hungarian)

Currently translated at 95.3% (41 of 43 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: ZsiGiT <zsigit@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-classificationmodel/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/hu/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-21 10:22:26 -06:00
Hosted Weblate
1856e62ad0 Translated using Weblate (Catalan)
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (654 of 654 strings)

Co-authored-by: Eduardo Pastor Fernández <123eduardoneko123@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ca/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
252f1a6eb9 Translated using Weblate (Japanese)
Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (217 of 217 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: 塩野拓夢 <salt.field1210@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ja/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ja/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ja/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ja/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-21 10:22:26 -06:00
Hosted Weblate
ad076aefff Translated using Weblate (Romanian)
Currently translated at 100.0% (56 of 56 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (654 of 654 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/components-dialog/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
8a95cd2472 Translated using Weblate (Estonian)
Currently translated at 100.0% (56 of 56 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/et/
Translation: Frigate NVR/components-dialog
2026-02-21 10:22:26 -06:00
Hosted Weblate
3aeeb09834 Translated using Weblate (Danish)
Currently translated at 21.4% (12 of 56 strings)

Translated using Weblate (Danish)

Currently translated at 22.4% (11 of 49 strings)

Translated using Weblate (Danish)

Currently translated at 11.0% (15 of 136 strings)

Translated using Weblate (Danish)

Currently translated at 41.8% (18 of 43 strings)

Translated using Weblate (Danish)

Currently translated at 1.8% (12 of 654 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (6 of 6 strings)

Translated using Weblate (Danish)

Currently translated at 35.1% (26 of 74 strings)

Co-authored-by: Anders Fosgerau <afosgerau@gmail.com>
Co-authored-by: Andreas Scholdan <andreas@scholdan.net>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/da/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-recording
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
8c98b4c9d0 Translated using Weblate (German)
Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (German)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (German)

Currently translated at 99.8% (653 of 654 strings)

Translated using Weblate (German)

Currently translated at 98.2% (55 of 56 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: PhillyMay <mein.alias@outlook.com>
Co-authored-by: Viktor Stier <viktor-stier@gmx.de>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/de/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-21 10:22:26 -06:00
Hosted Weblate
a2d6e04f45 Translated using Weblate (Thai)
Currently translated at 64.8% (48 of 74 strings)

Translated using Weblate (Thai)

Currently translated at 26.4% (36 of 136 strings)

Translated using Weblate (Thai)

Currently translated at 77.5% (38 of 49 strings)

Translated using Weblate (Thai)

Currently translated at 13.4% (88 of 654 strings)

Translated using Weblate (Thai)

Currently translated at 3.2% (4 of 122 strings)

Translated using Weblate (Thai)

Currently translated at 78.5% (44 of 56 strings)

Translated using Weblate (Thai)

Currently translated at 8.8% (12 of 136 strings)

Translated using Weblate (Thai)

Currently translated at 46.2% (25 of 54 strings)

Translated using Weblate (Thai)

Currently translated at 90.0% (9 of 10 strings)

Co-authored-by: Hasan Bula <sun20689@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/th/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/th/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-configeditor
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
2026-02-21 10:22:26 -06:00
Hosted Weblate
7c11747ab3 Translated using Weblate (Latvian)
Currently translated at 12.8% (84 of 654 strings)

Translated using Weblate (Latvian)

Currently translated at 99.5% (216 of 217 strings)

Translated using Weblate (Latvian)

Currently translated at 14.7% (20 of 136 strings)

Translated using Weblate (Latvian)

Currently translated at 13.2% (18 of 136 strings)

Translated using Weblate (Latvian)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Latvian)

Currently translated at 11.3% (74 of 654 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jānis Sanders <sanders.janis@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/lv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/lv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/lv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/lv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/lv/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-21 10:22:26 -06:00
Shay Collings
5f2536dcd8 Added section for macOS installation including port conflict warning, example compose file and reference to Apple Silicon Detector (#22025)
Co-authored-by: Shay Collings <shay.collings@gmail.com>
2026-02-19 08:04:28 -06:00
Nicolas Mowen
ef5608a970 Imporove attributes handling (#22035)
* Revert "Fix saving attributes for object to DB (#22000)"

This reverts commit 73c1e12faf.

* Automatically handle attributes by obj data parsing
2026-02-18 10:48:45 -07:00
dirk150
3101d5f27b Update hardware.md (#22018)
Update broken NVIDIA TensorRT Support Matrix link.
2026-02-15 20:59:36 -07:00
Josh Hawkins
4dcd2968b3 consolidate attribute filtering to match non-english and url encoded values (#22002) 2026-02-14 08:33:17 -06:00
Nicolas Mowen
73c1e12faf Fix saving attributes for object to DB (#22000) 2026-02-14 07:40:08 -06:00
Josh Hawkins
5f93cee732 fix tooltips (#21989) 2026-02-13 07:22:28 -06:00
Josh Hawkins
67e3f8eefa Miscellaneous fixes (0.17 beta) (#21934)
* improve chip tooltip display

- use formatList to use i18n separators instead of commas
- ensure the correct event type is used so sublabels are not run through normalization
- remove smart-capitalization classes as translated labels use i18n (which includes capitalization)
- give icons an optional key so that the console doesn't complain about duplication when rendering

* Add grace period for recording segment checks to prevent spurious ffmpeg restarts

* add admin precedence to proxy role_map resolution to prevent downgrade

* clean up

* formatting

* work around radix pointer events issue when dialog is opened from drawer

fixes https://github.com/blakeblackshear/frigate/discussions/21940

* prevent console warnings about missing titles and descriptions

make these invisible with sr-only

* remove duplicate language

* Adjust handling for device sizes

* Cleanup

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2026-02-12 13:42:08 -07:00
GuoQing Liu
e1005ac2a5 fix: fix object classification model not reload (#21982) 2026-02-12 08:56:52 -07:00
Hosted Weblate
6accc38275 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Norwegian Bokmål)

Currently translated at 100.0% (651 of 651 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: OverTheHillsAndFarAway <prosjektx@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nb_NO/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Hosted Weblate
ff20be58b4 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (54 of 54 strings)

Co-authored-by: GuoQing Liu <842607283@qq.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hans/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Hosted Weblate
fc3f798bd6 Translated using Weblate (Swedish)
Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (217 of 217 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sv/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Hosted Weblate
44e695362a Translated using Weblate (French)
Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (French)

Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (French)

Currently translated at 100.0% (217 of 217 strings)

Co-authored-by: Apocoloquintose <bertrand.moreux@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fr/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Hosted Weblate
9fbc854bf5 Translated using Weblate (Polish)
Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (54 of 54 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kamil AvH <kamil.arszagi@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pl/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Hosted Weblate
334acd6078 Translated using Weblate (Catalan)
Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (217 of 217 strings)

Co-authored-by: Eduardo Pastor Fernández <123eduardoneko123@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ca/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Hosted Weblate
92c503070c Translated using Weblate (Japanese)
Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Japanese)

Currently translated at 99.2% (135 of 136 strings)

Translated using Weblate (Japanese)

Currently translated at 99.5% (216 of 217 strings)

Translated using Weblate (Japanese)

Currently translated at 100.0% (54 of 54 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Yusuke, Hirota <hirota.yusuke@jp.fujitsu.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ja/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ja/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ja/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ja/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-system
2026-02-07 10:42:52 -07:00
Hosted Weblate
ecd7d04228 Translated using Weblate (Romanian)
Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (54 of 54 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/views-facelibrary/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Hosted Weblate
11576e9e68 Translated using Weblate (Estonian)
Currently translated at 29.4% (192 of 651 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Estonian)

Currently translated at 33.0% (45 of 136 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/et/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Hosted Weblate
2cfb118981 Translated using Weblate (Danish)
Currently translated at 39.1% (196 of 501 strings)

Translated using Weblate (Danish)

Currently translated at 56.1% (55 of 98 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (217 of 217 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (25 of 25 strings)

Co-authored-by: Bjorn Jorgensen <github@bjornz.dk>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/da/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-player
Translation: Frigate NVR/views-live
2026-02-07 10:42:52 -07:00
Hosted Weblate
e1c273be8d Translated using Weblate (German)
Currently translated at 100.0% (54 of 54 strings)

Translated using Weblate (German)

Currently translated at 100.0% (651 of 651 strings)

Translated using Weblate (German)

Currently translated at 100.0% (217 of 217 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sebastian Sie <sebastian.neuplanitz@googlemail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/de/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
2026-02-07 10:42:52 -07:00
Josh Hawkins
ea1533f456 Miscellaneous Fixes (0.17 beta) (#21912)
* fix display of custom sublabels in review item chip

use "manual" as type so it's not run through translation and normalized, producing "Josh S Car" instead of "Josh's Car"

* use css instead of js for reviewed button hover state in filmstrip
2026-02-07 09:06:55 -07:00
Nicolas Mowen
41b983a133 Set log to debug (#21898) 2026-02-05 12:31:07 -07:00
GuoQing Liu
c9055ea941 fix: fix delete zone type i18n (#21894) 2026-02-05 09:38:09 -06:00
Nicolas Mowen
c9ba851f0d Fix event getting stuck due to only checking current clip / snapshot (#21893)
* Fix event getting stuck due to only checking current clip / snapshot

* formatting
2026-02-05 08:43:19 -06:00
Pops0n
a8ab82937b Update hailo installation instructions and script (#21882)
* Update installation.md for Raspberry Pi and Hailo

Updated Hailo installation instructions to cover both Bookworm and Trixie OS on Raspberry Pi. 


Referenced discussions: #21177, #20621, #20062, #19531

* Update user_installation.sh for Raspberry Pi (Bookworm and Trixie)

Simplified and improved the user installation script for  Hailo to support Raspberry Pi OS Bookworm, Trixie, and x86 platforms.

Referenced discussions: #21177, #20621, #20062, #19531

* Update installation.md

* Update user_installation.sh

* Update installation.md

* Update installation.md

Added optional fix for PCIe descriptor page size error.
Related discussion: #19481

* Update installation.md

Changed kernel driver version check from modinfo to /sys/module for correct post-reboot output
2026-02-05 06:38:34 -07:00
Josh Hawkins
21e4b36c7c Add languages (#21870)
* add persian, croatian, and slovak

* i18n

* fix formatting due to new version of ruff
2026-02-03 13:29:52 -06:00
Hosted Weblate
06141b900e Update translation files
Updated by "Squash Git commits" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/
Translation: Frigate NVR/common
2026-02-03 10:54:04 -07:00
Hosted Weblate
011e7a1ce6 Update translation files
Updated by "Squash Git commits" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/
Translation: Frigate NVR/common
2026-02-03 10:54:04 -07:00
Hosted Weblate
81d5e80dd2 Update translation files
Updated by "Squash Git commits" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/
Translation: Frigate NVR/common
2026-02-03 10:54:04 -07:00
Hosted Weblate
3b79b34c07 Update translation files
Updated by "Squash Git commits" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/
Translation: Frigate NVR/common
2026-02-03 10:54:04 -07:00
Hosted Weblate
7d8d2c5521 Translated using Weblate (French)
Currently translated at 100.0% (654 of 654 strings)

Co-authored-by: Apocoloquintose <bertrand.moreux@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fr/
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
7fcce67c2a Translated using Weblate (Arabic)
Currently translated at 1.6% (2 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Med Taha Ben Brahim <mohamedtaha.bb@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ar/
Translation: Frigate NVR/views-classificationmodel
2026-02-03 10:54:04 -07:00
Hosted Weblate
87da12c453 Translated using Weblate (Korean)
Currently translated at 75.4% (40 of 53 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: 임도균 <limkwon7@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ko/
Translation: Frigate NVR/views-facelibrary
2026-02-03 10:54:04 -07:00
Hosted Weblate
522630487b Translated using Weblate (Serbian)
Currently translated at 94.5% (52 of 55 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (49 of 49 strings)

Translated using Weblate (Serbian)

Currently translated at 7.6% (50 of 654 strings)

Translated using Weblate (Serbian)

Currently translated at 55.4% (51 of 92 strings)

Translated using Weblate (Serbian)

Currently translated at 44.0% (52 of 118 strings)

Translated using Weblate (Serbian)

Currently translated at 37.5% (51 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 18.6% (40 of 215 strings)

Translated using Weblate (Serbian)

Currently translated at 12.9% (65 of 501 strings)

Translated using Weblate (Serbian)

Currently translated at 36.0% (49 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Serbian)

Currently translated at 96.2% (51 of 53 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (43 of 43 strings)

Translated using Weblate (Serbian)

Currently translated at 42.6% (52 of 122 strings)

Translated using Weblate (Serbian)

Currently translated at 31.9% (39 of 122 strings)

Translated using Weblate (Serbian)

Currently translated at 16.2% (35 of 215 strings)

Translated using Weblate (Serbian)

Currently translated at 10.3% (52 of 501 strings)

Translated using Weblate (Serbian)

Currently translated at 71.6% (38 of 53 strings)

Translated using Weblate (Serbian)

Currently translated at 42.3% (39 of 92 strings)

Translated using Weblate (Serbian)

Currently translated at 27.9% (38 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 32.2% (38 of 118 strings)

Translated using Weblate (Serbian)

Currently translated at 84.7% (39 of 46 strings)

Translated using Weblate (Serbian)

Currently translated at 70.9% (39 of 55 strings)

Translated using Weblate (Serbian)

Currently translated at 90.6% (39 of 43 strings)

Translated using Weblate (Serbian)

Currently translated at 28.6% (39 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 79.5% (39 of 49 strings)

Translated using Weblate (Serbian)

Currently translated at 5.5% (36 of 654 strings)

Translated using Weblate (Serbian)

Currently translated at 14.8% (32 of 215 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Serbian)

Currently translated at 56.6% (30 of 53 strings)

Translated using Weblate (Serbian)

Currently translated at 72.0% (31 of 43 strings)

Translated using Weblate (Serbian)

Currently translated at 22.7% (31 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Serbian)

Currently translated at 67.3% (31 of 46 strings)

Translated using Weblate (Serbian)

Currently translated at 25.4% (31 of 122 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (13 of 13 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Serbian)

Currently translated at 56.3% (31 of 55 strings)

Translated using Weblate (Serbian)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Serbian)

Currently translated at 8.5% (43 of 501 strings)

Translated using Weblate (Serbian)

Currently translated at 63.2% (31 of 49 strings)

Translated using Weblate (Serbian)

Currently translated at 32.6% (30 of 92 strings)

Translated using Weblate (Serbian)

Currently translated at 26.2% (31 of 118 strings)

Translated using Weblate (Serbian)

Currently translated at 22.0% (30 of 136 strings)

Translated using Weblate (Serbian)

Currently translated at 4.5% (30 of 654 strings)

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

Translated using Weblate (Finnish)

Currently translated at 32.8% (215 of 654 strings)

Translated using Weblate (Finnish)

Currently translated at 4.0% (5 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Niko Järvinen <nbjarvinen@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fi/
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
7339961636 Translated using Weblate (Swedish)
Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (216 of 216 strings)

Co-authored-by: Felix Boström <felix.bostrum@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sv/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-input
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
c34fd3b0d5 Translated using Weblate (French)
Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (French)

Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (French)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (French)

Currently translated at 100.0% (654 of 654 strings)

Co-authored-by: Apocoloquintose <bertrand.moreux@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/fr/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
00c8c407c5 Translated using Weblate (Spanish)
Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (122 of 122 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (216 of 216 strings)

Co-authored-by: Daniel <danieldiazdelaiglesia@gmail.com>
Co-authored-by: Gerard Ricart Castells <gerard.ricart@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/es/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/es/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
b17e5a3eff Translated using Weblate (Dutch)
Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (122 of 122 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (122 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Marijn <168113859+Marijn0@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nl/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
8b3c8a0ade Translated using Weblate (Indonesian)
Currently translated at 36.4% (27 of 74 strings)

Translated using Weblate (Indonesian)

Currently translated at 96.0% (24 of 25 strings)

Translated using Weblate (Indonesian)

Currently translated at 12.5% (27 of 216 strings)

Translated using Weblate (Indonesian)

Currently translated at 17.7% (89 of 501 strings)

Translated using Weblate (Indonesian)

Currently translated at 16.1% (22 of 136 strings)

Translated using Weblate (Indonesian)

Currently translated at 58.6% (27 of 46 strings)

Translated using Weblate (Indonesian)

Currently translated at 4.2% (28 of 654 strings)

Translated using Weblate (Indonesian)

Currently translated at 90.6% (39 of 43 strings)

Translated using Weblate (Indonesian)

Currently translated at 23.7% (29 of 122 strings)

Translated using Weblate (Indonesian)

Currently translated at 47.2% (26 of 55 strings)

Translated using Weblate (Indonesian)

Currently translated at 98.1% (52 of 53 strings)

Translated using Weblate (Indonesian)

Currently translated at 25.5% (25 of 98 strings)

Translated using Weblate (Indonesian)

Currently translated at 19.1% (26 of 136 strings)

Translated using Weblate (Indonesian)

Currently translated at 53.0% (26 of 49 strings)

Translated using Weblate (Indonesian)

Currently translated at 23.7% (28 of 118 strings)

Translated using Weblate (Indonesian)

Currently translated at 13.9% (17 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Syarif Hidayat <syarifbl09@gmail.com>
Co-authored-by: ariska <ariska@databisnis.id>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/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-facelibrary/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/id/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/id/
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-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
2fe5e06fed Translated using Weblate (Arabic)
Currently translated at 1.6% (2 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Med Taha Ben Brahim <mohamedtaha.bb@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ar/
Translation: Frigate NVR/views-classificationmodel
2026-02-03 10:54:04 -07:00
Hosted Weblate
e9db966097 Translated using Weblate (Italian)
Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (216 of 216 strings)

Co-authored-by: Filippo-riccardo Franzin (filippo franzin) <filric01@gmail.com>
Co-authored-by: Gringo <ita.translations@tiscali.it>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/it/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
4d63a74fd6 Translated using Weblate (Polish)
Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Polish)

Currently translated at 95.9% (94 of 98 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (215 of 215 strings)

Co-authored-by: Damian Radecki <damianradecki97@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: J P <jpoloczek24@gmail.com>
Co-authored-by: Mateusz Kulis <kulis.matis@gmail.com>
Co-authored-by: przeniek <przeniek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/pl/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-live
2026-02-03 10:54:04 -07:00
Hosted Weblate
b6e5894650 Translated using Weblate (Hungarian)
Currently translated at 71.3% (97 of 136 strings)

Translated using Weblate (Hungarian)

Currently translated at 25.4% (31 of 122 strings)

Translated using Weblate (Hungarian)

Currently translated at 93.9% (203 of 216 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Hungarian)

Currently translated at 62.3% (408 of 654 strings)

Translated using Weblate (Hungarian)

Currently translated at 96.2% (51 of 53 strings)

Translated using Weblate (Hungarian)

Currently translated at 83.7% (36 of 43 strings)

Translated using Weblate (Hungarian)

Currently translated at 20.4% (25 of 122 strings)

Translated using Weblate (Hungarian)

Currently translated at 88.9% (121 of 136 strings)

Translated using Weblate (Hungarian)

Currently translated at 85.4% (428 of 501 strings)

Translated using Weblate (Hungarian)

Currently translated at 93.9% (202 of 215 strings)

Translated using Weblate (Hungarian)

Currently translated at 68.3% (93 of 136 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Peter Bartfai <pbartfai@stardust.hu>
Co-authored-by: Zsolt Fojtyik <zsozso830316@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/hu/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/hu/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
62b880a4b2 Translated using Weblate (Croatian)
Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (25 of 25 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (122 of 122 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (Croatian)

Currently translated at 100.0% (654 of 654 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: stipe-jurkovic <sjurko00@fesb.hr>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/hr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/hr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/hr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/hr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/hr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/hr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/hr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/hr/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-player
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
5984346623 Added translation using Weblate (Icelandic)
Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Added translation using Weblate (Icelandic)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sindris <sindri.sse@gmail.com>
2026-02-03 10:54:04 -07:00
Hosted Weblate
a394d37bfe Translated using Weblate (Portuguese)
Currently translated at 90.5% (48 of 53 strings)

Translated using Weblate (Portuguese)

Currently translated at 76.9% (10 of 13 strings)

Translated using Weblate (Portuguese)

Currently translated at 28.6% (35 of 122 strings)

Co-authored-by: Carlos Santos <c.santos00@hotmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/pt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/pt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt/
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
2026-02-03 10:54:04 -07:00
Hosted Weblate
a407f08db6 Translated using Weblate (Czech)
Currently translated at 65.4% (428 of 654 strings)

Translated using Weblate (Czech)

Currently translated at 45.9% (56 of 122 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Czech)

Currently translated at 91.9% (125 of 136 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (55 of 55 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (Czech)

Currently translated at 86.7% (118 of 136 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Czech)

Currently translated at 93.4% (86 of 92 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (43 of 43 strings)

Translated using Weblate (Czech)

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Czech)

Currently translated at 64.9% (425 of 654 strings)

Translated using Weblate (Czech)

Currently translated at 74.2% (101 of 136 strings)

Translated using Weblate (Czech)

Currently translated at 32.7% (40 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Martin Brož <code@martin-broz.cz>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/cs/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
2cd14341e0 Translated using Weblate (Catalan)
Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (501 of 501 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (501 of 501 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (216 of 216 strings)

Co-authored-by: Eduardo Pastor Fernández <123eduardoneko123@gmail.com>
Co-authored-by: Gerard Ricart Castells <gerard.ricart@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ca/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
9285c5e10a Translated using Weblate (Ukrainian)
Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Ukrainian)

Currently translated at 100.0% (216 of 216 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Максим Горпиніч <gorpinicmaksim0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/uk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/uk/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/uk/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
74ac45d0af Translated using Weblate (Romanian)
Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (216 of 216 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/views-configeditor/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
2f06cfe50c Translated using Weblate (Russian)
Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (43 of 43 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (98 of 98 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: internetson <sockmancore@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ru/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
9413f1c46d Translated using Weblate (Estonian)
Currently translated at 80.4% (74 of 92 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (216 of 216 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/et/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-live
2026-02-03 10:54:04 -07:00
Hosted Weblate
fee3050886 Translated using Weblate (Greek)
Currently translated at 6.5% (8 of 122 strings)

Translated using Weblate (Greek)

Currently translated at 53.2% (115 of 216 strings)

Translated using Weblate (Greek)

Currently translated at 48.8% (21 of 43 strings)

Co-authored-by: Apostolos Tsaganos <apostolos94@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/el/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
2026-02-03 10:54:04 -07:00
Hosted Weblate
9d572ba8cb Translated using Weblate (Danish)
Currently translated at 72.0% (18 of 25 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (2 of 2 strings)

Translated using Weblate (Danish)

Currently translated at 18.3% (9 of 49 strings)

Translated using Weblate (Danish)

Currently translated at 92.3% (12 of 13 strings)

Translated using Weblate (Danish)

Currently translated at 39.5% (17 of 43 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (46 of 46 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (122 of 122 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Danish)

Currently translated at 39.1% (196 of 501 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Danish)

Currently translated at 18.8% (10 of 53 strings)

Translated using Weblate (Danish)

Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (Danish)

Currently translated at 37.2% (16 of 43 strings)

Translated using Weblate (Danish)

Currently translated at 59.8% (73 of 122 strings)

Co-authored-by: Bjorn Jorgensen <github@bjornz.dk>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/da/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/da/
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-auth
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-icons
Translation: Frigate NVR/components-player
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-search
2026-02-03 10:54:04 -07:00
Hosted Weblate
9267d006ce Translated using Weblate (German)
Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (German)

Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (German)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (German)

Currently translated at 99.8% (653 of 654 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sebastian Sie <sebastian.neuplanitz@googlemail.com>
Co-authored-by: jmtatsch <julian@tatsch.it>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/de/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
e6e2b74034 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 83.8% (114 of 136 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.1% (54 of 55 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 97.6% (42 of 43 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 47.5% (58 of 122 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (49 of 49 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 69.1% (452 of 654 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 92.5% (200 of 216 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.3% (53 of 55 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 68.6% (449 of 654 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 78.6% (107 of 136 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 43.4% (53 of 122 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 77.9% (106 of 136 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 96.7% (89 of 92 strings)

Translated using Weblate (Portuguese (Brazil))

Currently translated at 40.9% (50 of 122 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rhuan Barreto <rhuan@barreto.work>
Co-authored-by: cvroque <carlos.vroque@gmail.com>
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/views-classificationmodel/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/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-settings
2026-02-03 10:54:04 -07:00
Hosted Weblate
0a307edce9 Translated using Weblate (Lithuanian)
Currently translated at 100.0% (122 of 122 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (216 of 216 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Lithuanian)

Currently translated at 84.5% (553 of 654 strings)

Translated using Weblate (Lithuanian)

Currently translated at 100.0% (501 of 501 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: MaBeniu <runnerm@gmail.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/views-classificationmodel/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/lt/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/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/views-classificationmodel
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Hosted Weblate
59a959430d Translated using Weblate (Turkish)
Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (136 of 136 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (654 of 654 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (98 of 98 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (216 of 216 strings)

Co-authored-by: Emircanos <emircan368@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: pcislocked <git@pcislocked.net>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/tr/
Translation: Frigate NVR/common
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-02-03 10:54:04 -07:00
Nicolas Mowen
2d83992284 Miscellaneous fixes (0.17 beta) (#21867)
* Adjust title prompt to have less rigidity

* Improve motion boxes handling for features that don't require motion

* Improve handling of classes starting with digits

* Improve vehicle nuance

* tweak lpr docs

* Improve grammar

* Don't allow # in face name

* add password requirements to new user dialog

* change password requirements

* Clenaup

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2026-02-03 08:31:00 -06:00
Blake Blackshear
e4fe021279 Merge remote-tracking branch 'origin/master' into dev 2026-01-31 18:42:40 +00:00
Josh Hawkins
b4520d9e2f Miscellaneous fixes (0.17 beta) (#21826)
* revert other changes

* fix verified icon overlay in debug view list

* Add classification object debug logs

* Formatting

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2026-01-29 12:42:06 -07:00
Josh Hawkins
3b6814fbc9 Revert "Miscellaneous fixes (0.17 beta) (#21764)" (#21825)
This reverts commit 50ac5a1483.
2026-01-29 11:30:21 -07:00
Marijn0
338d85a9a2 Fix i18n keys (#21814) 2026-01-28 13:55:38 -07:00
Blake Blackshear
4131252a3b Port go2rtc check (#21808)
* version update

* Restrict go2rtc exec sources by default (#21543)

* Restrict go2rtc exec sources by default

* add docs

* check for addon value too

---------

Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
2026-01-28 06:56:15 -06:00
Blake Blackshear
ea39bb3565 update copyright (#21485) 2026-01-01 09:55:46 -06:00
366 changed files with 7887 additions and 1112 deletions

View File

@@ -2,15 +2,19 @@
# Update package list and install dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake git wget
sudo apt-get install -y build-essential cmake git wget linux-headers-$(uname -r)
hailo_version="4.21.0"
arch=$(uname -m)
if [[ $arch == "x86_64" ]]; then
sudo apt install -y linux-headers-$(uname -r);
else
sudo apt install -y linux-modules-extra-$(uname -r);
if [[ $arch == "aarch64" ]]; then
source /etc/os-release
os_codename=$VERSION_CODENAME
echo "Detected OS codename: $os_codename"
fi
if [ "$os_codename" = "trixie" ]; then
sudo apt install -y dkms
fi
# Clone the HailoRT driver repository
@@ -47,3 +51,4 @@ sudo udevadm control --reload-rules && sudo udevadm trigger
echo "HailoRT driver installation complete."
echo "reboot your system to load the firmware!"
echo "Driver version: $(modinfo -F version hailo_pci)"

View File

@@ -29,6 +29,10 @@ auth:
reset_admin_password: true
```
## Password guidance
Constructing secure passwords and managing them properly is important. Frigate requires a minimum length of 12 characters. For guidance on password standards see [NIST SP 800-63B](https://pages.nist.gov/800-63-3/sp800-63b.html). To learn what makes a password truly secure, read this [article](https://medium.com/peerio/how-to-build-a-billion-dollar-password-3d92568d9277).
## Login failure rate limiting
In order to limit the risk of brute force attacks, rate limiting is available for login failures. This is implemented with SlowApi, and the string notation for valid values is available in [the documentation](https://limits.readthedocs.io/en/stable/quickstart.html#examples).
@@ -162,6 +166,10 @@ In this example:
- If no mapping matches, Frigate falls back to `default_role` if configured.
- If `role_map` is not defined, Frigate assumes the role header directly contains `admin`, `viewer`, or a custom role name.
**Note on matching semantics:**
- Admin precedence: if the `admin` mapping matches, Frigate resolves the session to `admin` to avoid accidental downgrade when a user belongs to multiple groups (for example both `admin` and `viewer` groups).
#### Port Considerations
**Authenticated Port (8971)**

View File

@@ -381,6 +381,7 @@ Start with ["Why isn't my license plate being detected and recognized?"](#why-is
```yaml
lpr:
enabled: true
device: CPU
debug_save_plates: true
```

View File

@@ -214,6 +214,12 @@ The `exec:`, `echo:`, and `expr:` sources are disabled by default for security.
:::
:::warning
The `exec:`, `echo:`, and `expr:` sources are disabled by default for security. You must set `GO2RTC_ALLOW_ARBITRARY_EXEC=true` to use them. See [Security: Restricted Stream Sources](#security-restricted-stream-sources) for more information.
:::
NOTE: The output will need to be passed with two curly braces `{{output}}`
```yaml

View File

@@ -186,7 +186,7 @@ There are improved capabilities in newer GPU architectures that TensorRT can ben
#### Compatibility References:
[NVIDIA TensorRT Support Matrix](https://docs.nvidia.com/deeplearning/tensorrt/archives/tensorrt-841/support-matrix/index.html)
[NVIDIA TensorRT Support Matrix](https://docs.nvidia.com/deeplearning/tensorrt-rtx/latest/getting-started/support-matrix.html)
[NVIDIA CUDA Compatibility](https://docs.nvidia.com/deploy/cuda-compatibility/index.html)

View File

@@ -112,42 +112,65 @@ The Hailo-8 and Hailo-8L AI accelerators are available in both M.2 and HAT form
:::warning
The Raspberry Pi kernel includes an older version of the Hailo driver that is incompatible with Frigate. You **must** follow the installation steps below to install the correct driver version, and you **must** disable the built-in kernel driver as described in step 1.
On Raspberry Pi OS **Bookworm**, the kernel includes an older version of the Hailo driver that is incompatible with Frigate. You **must** follow the installation steps below to install the correct driver version, and you **must** disable the built-in kernel driver as described in step 1.
On Raspberry Pi OS **Trixie**, the Hailo driver is no longer shipped with the kernel. It is installed via DKMS, and the conflict described below does not apply. You can simply run the installation script.
:::
1. **Disable the built-in Hailo driver (Raspberry Pi only)**:
1. **Disable the built-in Hailo driver (Raspberry Pi Bookworm OS only)**:
:::note
If you are **not** using a Raspberry Pi, skip this step and proceed directly to step 2.
If you are **not** using a Raspberry Pi with **Bookworm OS**, skip this step and proceed directly to step 2.
If you are using Raspberry Pi with **Trixie OS**, also skip this step and proceed directly to step 2.
:::
If you are using a Raspberry Pi, you need to blacklist the built-in kernel Hailo driver to prevent conflicts. First, check if the driver is currently loaded:
First, check if the driver is currently loaded:
```bash
lsmod | grep hailo
```
If it shows `hailo_pci`, unload it:
```bash
sudo rmmod hailo_pci
sudo modprobe -r hailo_pci
```
Now blacklist the driver to prevent it from loading on boot:
Then locate the built-in kernel driver and rename it so it cannot be loaded.
Renaming allows the original driver to be restored later if needed.
First, locate the currently installed kernel module:
```bash
echo "blacklist hailo_pci" | sudo tee /etc/modprobe.d/blacklist-hailo_pci.conf
modinfo -n hailo_pci
```
Update initramfs to ensure the blacklist takes effect:
Example output:
```
/lib/modules/6.6.31+rpt-rpi-2712/kernel/drivers/media/pci/hailo/hailo_pci.ko.xz
```
Save the module path to a variable:
```bash
sudo update-initramfs -u
BUILTIN=$(modinfo -n hailo_pci)
```
And rename the module by appending .bak:
```bash
sudo mv "$BUILTIN" "${BUILTIN}.bak"
```
Now refresh the kernel module map so the system recognizes the change:
```bash
sudo depmod -a
```
Reboot your Raspberry Pi:
```bash
@@ -160,9 +183,9 @@ The Raspberry Pi kernel includes an older version of the Hailo driver that is in
lsmod | grep hailo
```
This command should return no results. If it still shows `hailo_pci`, the blacklist did not take effect properly and you may need to check for other Hailo packages installed via apt that are loading the driver.
This command should return no results.
2. **Run the installation script**:
3. **Run the installation script**:
Download the installation script:
@@ -190,7 +213,7 @@ The Raspberry Pi kernel includes an older version of the Hailo driver that is in
- Download and install the required firmware
- Set up udev rules
3. **Reboot your system**:
4. **Reboot your system**:
After the script completes successfully, reboot to load the firmware:
@@ -198,7 +221,7 @@ The Raspberry Pi kernel includes an older version of the Hailo driver that is in
sudo reboot
```
4. **Verify the installation**:
5. **Verify the installation**:
After rebooting, verify that the Hailo device is available:
@@ -212,6 +235,38 @@ The Raspberry Pi kernel includes an older version of the Hailo driver that is in
lsmod | grep hailo_pci
```
Verify the driver version:
```bash
cat /sys/module/hailo_pci/version
```
Verify that the firmware was installed correctly:
```bash
ls -l /lib/firmware/hailo/hailo8_fw.bin
```
**Optional: Fix PCIe descriptor page size error**
If you encounter the following error:
```
[HailoRT] [error] CHECK failed - max_desc_page_size given 16384 is bigger than hw max desc page size 4096
```
Create a configuration file to force the correct descriptor page size:
```bash
echo 'options hailo_pci force_desc_page_size=4096' | sudo tee /etc/modprobe.d/hailo_pci.conf
```
and reboot:
```bash
sudo reboot
```
#### Setup
To set up Frigate, follow the default installation instructions, for example: `ghcr.io/blakeblackshear/frigate:stable`
@@ -634,3 +689,42 @@ docker run \
```
Log into QNAP, open Container Station. Frigate docker container should be listed under 'Overview' and running. Visit Frigate Web UI by clicking Frigate docker, and then clicking the URL shown at the top of the detail page.
## macOS - Apple Silicon
:::warning
macOS uses port 5000 for its Airplay Receiver service. If you want to expose port 5000 in Frigate for local app and API access the port will need to be mapped to another port on the host e.g. 5001
Failure to remap port 5000 on the host will result in the WebUI and all API endpoints on port 5000 being unreachable, even if port 5000 is exposed correctly in Docker.
:::
Docker containers on macOS can be orchestrated by either [Docker Desktop](https://docs.docker.com/desktop/setup/install/mac-install/) or [OrbStack](https://orbstack.dev) (native swift app). The difference in inference speeds is negligable, however CPU, power consumption and container start times will be lower on OrbStack because it is a native Swift application.
To allow Frigate to use the Apple Silicon Neural Engine / Processing Unit (NPU) the host must be running [Apple Silicon Detector](../configuration/object_detectors.md#apple-silicon-detector) on the host (outside Docker)
#### Docker Compose example
```yaml
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:stable-arm64
restart: unless-stopped
shm_size: "512mb" # update for your cameras based on calculation above
volumes:
- /etc/localtime:/etc/localtime:ro
- /path/to/your/config:/config
- /path/to/your/recordings:/recordings
ports:
- "8971:8971"
# If exposing on macOS map to a diffent host port like 5001 or any orher port with no conflicts
# - "5001:5000" # Internal unauthenticated access. Expose carefully.
- "8554:8554" # RTSP feeds
extra_hosts:
# This is very important
# It allows frigate access to the NPU on Apple Silicon via Apple Silicon Detector
- "host.docker.internal:host-gateway" # Required to talk to the NPU detector
environment:
- FRIGATE_RTSP_PASSWORD: "password"
```

View File

@@ -350,21 +350,15 @@ def validate_password_strength(password: str) -> tuple[bool, Optional[str]]:
Validate password strength.
Returns a tuple of (is_valid, error_message).
Longer passwords are harder to crack than shorter complex ones.
https://pages.nist.gov/800-63-3/sp800-63b.html
"""
if not password:
return False, "Password cannot be empty"
if len(password) < 8:
return False, "Password must be at least 8 characters long"
if not any(c.isupper() for c in password):
return False, "Password must contain at least one uppercase letter"
if not any(c.isdigit() for c in password):
return False, "Password must contain at least one digit"
if not any(c in '!@#$%^&*(),.?":{}|<>' for c in password):
return False, "Password must contain at least one special character"
if len(password) < 12:
return False, "Password must be at least 12 characters long"
return True, None
@@ -445,10 +439,11 @@ def resolve_role(
Determine the effective role for a request based on proxy headers and configuration.
Order of resolution:
1. If a role header is defined in proxy_config.header_map.role:
- If a role_map is configured, treat the header as group claims
(split by proxy_config.separator) and map to roles.
- If no role_map is configured, treat the header as role names directly.
1. If a role header is defined in proxy_config.header_map.role:
- If a role_map is configured, treat the header as group claims
(split by proxy_config.separator) and map to roles.
Admin matches short-circuit to admin.
- If no role_map is configured, treat the header as role names directly.
2. If no valid role is found, return proxy_config.default_role if it's valid in config_roles, else 'viewer'.
Args:
@@ -498,6 +493,12 @@ def resolve_role(
}
logger.debug("Matched roles from role_map: %s", matched_roles)
# If admin matches, prioritize it to avoid accidental downgrade when
# users belong to both admin and lower-privilege groups.
if "admin" in matched_roles and "admin" in config_roles:
logger.debug("Resolved role (with role_map) to 'admin'.")
return "admin"
if matched_roles:
resolved = next(
(r for r in config_roles if r in matched_roles), validated_default
@@ -800,7 +801,7 @@ def get_users():
"/users",
dependencies=[Depends(require_role(["admin"]))],
summary="Create new user",
description='Creates a new user with the specified username, password, and role. Requires admin role. Password must meet strength requirements: minimum 8 characters, at least one uppercase letter, at least one digit, and at least one special character (!@#$%^&*(),.?":{} |<>).',
description="Creates a new user with the specified username, password, and role. Requires admin role. Password must be at least 12 characters long.",
)
def create_user(
request: Request,
@@ -817,6 +818,15 @@ def create_user(
content={"message": f"Role must be one of: {', '.join(config_roles)}"},
status_code=400,
)
# Validate password strength
is_valid, error_message = validate_password_strength(body.password)
if not is_valid:
return JSONResponse(
content={"message": error_message},
status_code=400,
)
role = body.role or "viewer"
password_hash = hash_password(body.password, iterations=HASH_ITERATIONS)
User.insert(
@@ -851,7 +861,7 @@ def delete_user(request: Request, username: str):
"/users/{username}/password",
dependencies=[Depends(allow_any_authenticated())],
summary="Update user password",
description="Updates a user's password. Users can only change their own password unless they have admin role. Requires the current password to verify identity for non-admin users. Password must meet strength requirements: minimum 8 characters, at least one uppercase letter, at least one digit, and at least one special character (!@#$%^&*(),.?\":{} |<>). If user changes their own password, a new JWT cookie is automatically issued.",
description="Updates a user's password. Users can only change their own password unless they have admin role. Requires the current password to verify identity for non-admin users. Password must be at least 12 characters long. If user changes their own password, a new JWT cookie is automatically issued.",
)
async def update_password(
request: Request,

View File

@@ -73,7 +73,7 @@ def get_faces():
face_dict[name] = []
for file in filter(
lambda f: (f.lower().endswith((".webp", ".png", ".jpg", ".jpeg"))),
lambda f: f.lower().endswith((".webp", ".png", ".jpg", ".jpeg")),
os.listdir(face_dir),
):
face_dict[name].append(file)
@@ -582,7 +582,7 @@ def get_classification_dataset(name: str):
dataset_dict[category_name] = []
for file in filter(
lambda f: (f.lower().endswith((".webp", ".png", ".jpg", ".jpeg"))),
lambda f: f.lower().endswith((".webp", ".png", ".jpg", ".jpeg")),
os.listdir(category_dir),
):
dataset_dict[category_name].append(file)
@@ -693,7 +693,7 @@ def get_classification_images(name: str):
status_code=200,
content=list(
filter(
lambda f: (f.lower().endswith((".webp", ".png", ".jpg", ".jpeg"))),
lambda f: f.lower().endswith((".webp", ".png", ".jpg", ".jpeg")),
os.listdir(train_dir),
)
),

View File

@@ -69,6 +69,25 @@ logger = logging.getLogger(__name__)
router = APIRouter(tags=[Tags.events])
def _build_attribute_filter_clause(attributes: str):
filtered_attributes = [
attr.strip() for attr in attributes.split(",") if attr.strip()
]
attribute_clauses = []
for attr in filtered_attributes:
attribute_clauses.append(Event.data.cast("text") % f'*:"{attr}"*')
escaped_attr = json.dumps(attr, ensure_ascii=True)[1:-1]
if escaped_attr != attr:
attribute_clauses.append(Event.data.cast("text") % f'*:"{escaped_attr}"*')
if not attribute_clauses:
return None
return reduce(operator.or_, attribute_clauses)
@router.get(
"/events",
response_model=list[EventResponse],
@@ -193,14 +212,9 @@ def events(
if attributes != "all":
# Custom classification results are stored as data[model_name] = result_value
filtered_attributes = attributes.split(",")
attribute_clauses = []
for attr in filtered_attributes:
attribute_clauses.append(Event.data.cast("text") % f'*:"{attr}"*')
attribute_clause = reduce(operator.or_, attribute_clauses)
clauses.append(attribute_clause)
attribute_clause = _build_attribute_filter_clause(attributes)
if attribute_clause is not None:
clauses.append(attribute_clause)
if recognized_license_plate != "all":
filtered_recognized_license_plates = recognized_license_plate.split(",")
@@ -508,7 +522,7 @@ def events_search(
cameras = params.cameras
labels = params.labels
sub_labels = params.sub_labels
attributes = params.attributes
attributes = unquote(params.attributes)
zones = params.zones
after = params.after
before = params.before
@@ -607,13 +621,9 @@ def events_search(
if attributes != "all":
# Custom classification results are stored as data[model_name] = result_value
filtered_attributes = attributes.split(",")
attribute_clauses = []
for attr in filtered_attributes:
attribute_clauses.append(Event.data.cast("text") % f'*:"{attr}"*')
event_filters.append(reduce(operator.or_, attribute_clauses))
attribute_clause = _build_attribute_filter_clause(attributes)
if attribute_clause is not None:
event_filters.append(attribute_clause)
if zones != "all":
zone_clauses = []

View File

@@ -108,12 +108,13 @@ class GenAIReviewConfig(FrigateBaseModel):
default="""### Normal Activity Indicators (Level 0)
- Known/verified people in any zone at any time
- People with pets in residential areas
- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items — normal commute and travel patterns
- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving
- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime
- Activity confined to public areas only (sidewalks, streets) without entering property at any time
### Suspicious Activity Indicators (Level 1)
- **Testing or attempting to open doors/windows/handles on vehicles or buildings** — ALWAYS Level 1 regardless of time or duration
- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools — Level 1
- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** — ALWAYS Level 1 regardless of activity or duration
- Taking items that don't belong to them (packages, objects from porches/driveways)
- Climbing or jumping fences/barriers to access property
@@ -133,8 +134,8 @@ Evaluate in this order:
1. **If person is verified/known** → Level 0 regardless of time or activity
2. **If person is unidentified:**
- Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) → Level 1
- Check actions: If testing doors/handles, taking items, climbing → Level 1
- Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service worker) → Level 0
- Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing → Level 1
- Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) → Level 0
3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)
The mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is.""",

View File

@@ -97,7 +97,7 @@ class CustomStateClassificationProcessor(RealTimeProcessorApi):
self.interpreter.allocate_tensors()
self.tensor_input_details = self.interpreter.get_input_details()
self.tensor_output_details = self.interpreter.get_output_details()
self.labelmap = load_labels(labelmap_path, prefill=0)
self.labelmap = load_labels(labelmap_path, prefill=0, indexed=False)
self.classifications_per_second.start()
def __update_metrics(self, duration: float) -> None:
@@ -398,7 +398,7 @@ class CustomObjectClassificationProcessor(RealTimeProcessorApi):
self.interpreter.allocate_tensors()
self.tensor_input_details = self.interpreter.get_input_details()
self.tensor_output_details = self.interpreter.get_output_details()
self.labelmap = load_labels(labelmap_path, prefill=0)
self.labelmap = load_labels(labelmap_path, prefill=0, indexed=False)
def __update_metrics(self, duration: float) -> None:
self.classifications_per_second.update()
@@ -419,14 +419,21 @@ class CustomObjectClassificationProcessor(RealTimeProcessorApi):
"""
if object_id not in self.classification_history:
self.classification_history[object_id] = []
logger.debug(f"Created new classification history for {object_id}")
self.classification_history[object_id].append(
(current_label, current_score, current_time)
)
history = self.classification_history[object_id]
logger.debug(
f"History for {object_id}: {len(history)} entries, latest=({current_label}, {current_score})"
)
if len(history) < 3:
logger.debug(
f"History for {object_id} has {len(history)} entries, need at least 3"
)
return None, 0.0
label_counts = {}
@@ -445,14 +452,27 @@ class CustomObjectClassificationProcessor(RealTimeProcessorApi):
best_count = label_counts[best_label]
consensus_threshold = total_attempts * 0.6
logger.debug(
f"Consensus calc for {object_id}: label_counts={label_counts}, "
f"best_label={best_label}, best_count={best_count}, "
f"total={total_attempts}, threshold={consensus_threshold}"
)
if best_count < consensus_threshold:
logger.debug(
f"No consensus for {object_id}: {best_count} < {consensus_threshold}"
)
return None, 0.0
avg_score = sum(label_scores[best_label]) / len(label_scores[best_label])
if best_label == "none":
logger.debug(f"Filtering 'none' label for {object_id}")
return None, 0.0
logger.debug(
f"Consensus reached for {object_id}: {best_label} with avg_score={avg_score}"
)
return best_label, avg_score
def process_frame(self, obj_data, frame):
@@ -560,17 +580,30 @@ class CustomObjectClassificationProcessor(RealTimeProcessorApi):
)
if score < self.model_config.threshold:
logger.debug(f"Score {score} is less than threshold.")
logger.debug(
f"{self.model_config.name}: Score {score} < threshold {self.model_config.threshold} for {object_id}, skipping"
)
return
sub_label = self.labelmap[best_id]
logger.debug(
f"{self.model_config.name}: Object {object_id} (label={obj_data['label']}) passed threshold with sub_label={sub_label}, score={score}"
)
consensus_label, consensus_score = self.get_weighted_score(
object_id, sub_label, score, now
)
logger.debug(
f"{self.model_config.name}: get_weighted_score returned consensus_label={consensus_label}, consensus_score={consensus_score} for {object_id}"
)
if consensus_label is not None:
camera = obj_data["camera"]
logger.debug(
f"{self.model_config.name}: Publishing sub_label={consensus_label} for {obj_data['label']} object {object_id} on {camera}"
)
if (
self.model_config.object_config.classification_type
@@ -625,6 +658,7 @@ class CustomObjectClassificationProcessor(RealTimeProcessorApi):
def handle_request(self, topic, request_data):
if topic == EmbeddingsRequestEnum.reload_classification_model.value:
if request_data.get("model_name") == self.model_config.name:
self.__build_detector()
logger.info(
f"Successfully loaded updated model for {self.model_config.name}"
)
@@ -662,7 +696,7 @@ def write_classification_attempt(
# delete oldest face image if maximum is reached
try:
files = sorted(
filter(lambda f: (f.endswith(".webp")), os.listdir(folder)),
filter(lambda f: f.endswith(".webp"), os.listdir(folder)),
key=lambda f: os.path.getctime(os.path.join(folder, f)),
reverse=True,
)

View File

@@ -539,7 +539,7 @@ class FaceRealTimeProcessor(RealTimeProcessorApi):
cv2.imwrite(file, frame)
files = sorted(
filter(lambda f: (f.endswith(".webp")), os.listdir(folder)),
filter(lambda f: f.endswith(".webp"), os.listdir(folder)),
key=lambda f: os.path.getctime(os.path.join(folder, f)),
reverse=True,
)

View File

@@ -633,7 +633,7 @@ class EmbeddingMaintainer(threading.Thread):
camera, frame_name, _, _, motion_boxes, _ = data
if not camera or len(motion_boxes) == 0 or camera not in self.config.cameras:
if not camera or camera not in self.config.cameras:
return
camera_config = self.config.cameras[camera]
@@ -660,8 +660,10 @@ class EmbeddingMaintainer(threading.Thread):
return
for processor in self.realtime_processors:
if dedicated_lpr_enabled and isinstance(
processor, LicensePlateRealTimeProcessor
if (
dedicated_lpr_enabled
and len(motion_boxes) > 0
and isinstance(processor, LicensePlateRealTimeProcessor)
):
processor.process_frame(camera, yuv_frame, True)

View File

@@ -6,6 +6,7 @@ from typing import Dict
from frigate.comms.events_updater import EventEndPublisher, EventUpdateSubscriber
from frigate.config import FrigateConfig
from frigate.config.classification import ObjectClassificationType
from frigate.events.types import EventStateEnum, EventTypeEnum
from frigate.models import Event
from frigate.util.builtin import to_relative_box
@@ -15,6 +16,16 @@ logger = logging.getLogger(__name__)
def should_update_db(prev_event: Event, current_event: Event) -> bool:
"""If current_event has updated fields and (clip or snapshot)."""
# If event is ending and was previously saved, always update to set end_time
# This ensures events are properly ended even when alerts/detections are disabled
# mid-event (which can cause has_clip/has_snapshot to become False)
if (
prev_event["end_time"] is None
and current_event["end_time"] is not None
and (prev_event["has_clip"] or prev_event["has_snapshot"])
):
return True
if current_event["has_clip"] or current_event["has_snapshot"]:
# if this is the first time has_clip or has_snapshot turned true
if not prev_event["has_clip"] and not prev_event["has_snapshot"]:
@@ -237,6 +248,18 @@ class EventProcessor(threading.Thread):
"recognized_license_plate"
][1]
# only overwrite attribute-type custom model fields in the database if they're set
for name, model_config in self.config.classification.custom.items():
if (
model_config.object_config
and model_config.object_config.classification_type
== ObjectClassificationType.attribute
):
value = event_data.get(name)
if value is not None:
event[Event.data][name] = value[0]
event[Event.data][f"{name}_score"] = value[1]
(
Event.insert(event)
.on_conflict(

View File

@@ -99,8 +99,8 @@ When forming your description:
## Response Format
Your response MUST be a flat JSON object with:
- `title` (string): A concise, direct title that describes the primary action or event in the sequence, not just what you literally see. Use spatial context when available to make titles more meaningful. When multiple objects/actions are present, prioritize whichever is most prominent or occurs first. Use names from "Objects in Scene" based on what you visually observe. If you see both a name and an unidentified object of the same type but visually observe only one person/object, use ONLY the name. Examples: "Joe walking dog", "Person taking out trash", "Vehicle arriving in driveway", "Joe accessing vehicle", "Person leaving porch for driveway".
- `scene` (string): A narrative description of what happens across the sequence from start to finish, in chronological order. Start by describing how the sequence begins, then describe the progression of events. **Describe all significant movements and actions in the order they occur.** For example, if a vehicle arrives and then a person exits, describe both actions sequentially. **Only describe actions you can actually observe happening in the frames provided.** Do not infer or assume actions that aren't visible (e.g., if you see someone walking but never see them sit, don't say they sat down). Include setting, detected objects, and their observable actions. Avoid speculation or filling in assumed behaviors. Your description should align with and support the threat level you assign.
- `title` (string): A concise, grammatically complete title in the format "[Subject] [action verb] [context]" that matches your scene description. Use names from "Objects in Scene" when you visually observe them.
- `shortSummary` (string): A brief 2-sentence summary of the scene, suitable for notifications. Should capture the key activity and context without full detail. This should be a condensed version of the scene description above.
- `confidence` (float): 0-1 confidence in your analysis. Higher confidence when objects/actions are clearly visible and context is unambiguous. Lower confidence when the sequence is unclear, objects are partially obscured, or context is ambiguous.
- `potential_threat_level` (integer): 0, 1, or 2 as defined in "Normal Activity Patterns for This Property" above. Your threat level must be consistent with your scene description and the guidance above.
@@ -140,12 +140,7 @@ Each line represents a detection state, not necessarily unique individuals. Pare
) as f:
f.write(context_prompt)
json_schema = {
"name": "review_metadata",
"schema": ReviewMetadata.model_json_schema(),
"strict": True,
}
response = self._send(context_prompt, thumbnails, json_schema=json_schema)
response = self._send(context_prompt, thumbnails)
if debug_save and response:
with open(
@@ -157,8 +152,6 @@ Each line represents a detection state, not necessarily unique individuals. Pare
f.write(response)
if response:
# With JSON schema, response should already be valid JSON
# But keep regex cleanup as fallback for providers without schema support
clean_json = re.sub(
r"\n?```$", "", re.sub(r"^```[a-zA-Z0-9]*\n?", "", response)
)
@@ -291,16 +284,8 @@ Guidelines:
"""Initialize the client."""
return None
def _send(
self, prompt: str, images: list[bytes], json_schema: Optional[dict] = None
) -> Optional[str]:
"""Submit a request to the provider.
Args:
prompt: The text prompt to send
images: List of image bytes to include
json_schema: Optional JSON schema for structured output (provider-specific support)
"""
def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
"""Submit a request to the provider."""
return None
def get_context_size(self) -> int:

View File

@@ -41,46 +41,29 @@ class OpenAIClient(GenAIClient):
azure_endpoint=azure_endpoint,
)
def _send(
self, prompt: str, images: list[bytes], json_schema: Optional[dict] = None
) -> Optional[str]:
def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
"""Submit a request to Azure OpenAI."""
encoded_images = [base64.b64encode(image).decode("utf-8") for image in images]
request_params = {
"model": self.genai_config.model,
"messages": [
{
"role": "user",
"content": [{"type": "text", "text": prompt}]
+ [
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{image}",
"detail": "low",
},
}
for image in encoded_images
],
},
],
"timeout": self.timeout,
}
if json_schema:
request_params["response_format"] = {
"type": "json_schema",
"json_schema": {
"name": json_schema.get("name", "response"),
"schema": json_schema.get("schema", {}),
"strict": json_schema.get("strict", True),
},
}
try:
result = self.provider.chat.completions.create(
**request_params,
model=self.genai_config.model,
messages=[
{
"role": "user",
"content": [{"type": "text", "text": prompt}]
+ [
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{image}",
"detail": "low",
},
}
for image in encoded_images
],
},
],
timeout=self.timeout,
**self.genai_config.runtime_options,
)
except Exception as e:

View File

@@ -41,9 +41,7 @@ class GeminiClient(GenAIClient):
http_options=types.HttpOptions(**http_options_dict),
)
def _send(
self, prompt: str, images: list[bytes], json_schema: Optional[dict] = None
) -> Optional[str]:
def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
"""Submit a request to Gemini."""
contents = [
types.Part.from_bytes(data=img, mime_type="image/jpeg") for img in images
@@ -53,12 +51,6 @@ class GeminiClient(GenAIClient):
generation_config_dict = {"candidate_count": 1}
generation_config_dict.update(self.genai_config.runtime_options)
if json_schema and "schema" in json_schema:
generation_config_dict["response_mime_type"] = "application/json"
generation_config_dict["response_schema"] = types.Schema(
json_schema=json_schema["schema"]
)
response = self.provider.models.generate_content(
model=self.genai_config.model,
contents=contents,

View File

@@ -50,9 +50,7 @@ class OllamaClient(GenAIClient):
logger.warning("Error initializing Ollama: %s", str(e))
return None
def _send(
self, prompt: str, images: list[bytes], json_schema: Optional[dict] = None
) -> Optional[str]:
def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
"""Submit a request to Ollama"""
if self.provider is None:
logger.warning(
@@ -64,10 +62,6 @@ class OllamaClient(GenAIClient):
**self.provider_options,
**self.genai_config.runtime_options,
}
if json_schema and "schema" in json_schema:
ollama_options["format"] = json_schema["schema"]
result = self.provider.generate(
self.genai_config.model,
prompt,

View File

@@ -31,9 +31,7 @@ class OpenAIClient(GenAIClient):
}
return OpenAI(api_key=self.genai_config.api_key, **provider_opts)
def _send(
self, prompt: str, images: list[bytes], json_schema: Optional[dict] = None
) -> Optional[str]:
def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
"""Submit a request to OpenAI."""
encoded_images = [base64.b64encode(image).decode("utf-8") for image in images]
messages_content = []
@@ -53,31 +51,16 @@ class OpenAIClient(GenAIClient):
"text": prompt,
}
)
request_params = {
"model": self.genai_config.model,
"messages": [
{
"role": "user",
"content": messages_content,
},
],
"timeout": self.timeout,
}
if json_schema:
request_params["response_format"] = {
"type": "json_schema",
"json_schema": {
"name": json_schema.get("name", "response"),
"schema": json_schema.get("schema", {}),
"strict": json_schema.get("strict", True),
},
}
try:
result = self.provider.chat.completions.create(
**request_params,
model=self.genai_config.model,
messages=[
{
"role": "user",
"content": messages_content,
},
],
timeout=self.timeout,
**self.genai_config.runtime_options,
)
if (

View File

@@ -26,15 +26,16 @@ LOG_HANDLER.setFormatter(
# filter out norfair warning
LOG_HANDLER.addFilter(
lambda record: not record.getMessage().startswith(
"You are using a scalar distance function"
lambda record: (
not record.getMessage().startswith("You are using a scalar distance function")
)
)
# filter out tflite logging
LOG_HANDLER.addFilter(
lambda record: "Created TensorFlow Lite XNNPACK delegate for CPU."
not in record.getMessage()
lambda record: (
"Created TensorFlow Lite XNNPACK delegate for CPU." not in record.getMessage()
)
)

View File

@@ -208,8 +208,10 @@ class RecordingMaintainer(threading.Thread):
processed_segment_count = len(
list(
filter(
lambda r: r["start_time"].timestamp()
< most_recently_processed_frame_time,
lambda r: (
r["start_time"].timestamp()
< most_recently_processed_frame_time
),
grouped_recordings[camera],
)
)

View File

@@ -168,6 +168,57 @@ class TestHttpApp(BaseTestHttp):
assert events[0]["id"] == id
assert events[1]["id"] == id2
def test_get_event_list_match_multilingual_attribute(self):
event_id = "123456.zh"
attribute = "中文标签"
with AuthTestClient(self.app) as client:
super().insert_mock_event(event_id, data={"custom_attr": attribute})
events = client.get("/events", params={"attributes": attribute}).json()
assert len(events) == 1
assert events[0]["id"] == event_id
events = client.get(
"/events", params={"attributes": "%E4%B8%AD%E6%96%87%E6%A0%87%E7%AD%BE"}
).json()
assert len(events) == 1
assert events[0]["id"] == event_id
def test_events_search_match_multilingual_attribute(self):
event_id = "123456.zh.search"
attribute = "中文标签"
mock_embeddings = Mock()
mock_embeddings.search_thumbnail.return_value = [(event_id, 0.05)]
self.app.frigate_config.semantic_search.enabled = True
self.app.embeddings = mock_embeddings
with AuthTestClient(self.app) as client:
super().insert_mock_event(event_id, data={"custom_attr": attribute})
events = client.get(
"/events/search",
params={
"search_type": "similarity",
"event_id": event_id,
"attributes": attribute,
},
).json()
assert len(events) == 1
assert events[0]["id"] == event_id
events = client.get(
"/events/search",
params={
"search_type": "similarity",
"event_id": event_id,
"attributes": "%E4%B8%AD%E6%96%87%E6%A0%87%E7%AD%BE",
},
).json()
assert len(events) == 1
assert events[0]["id"] == event_id
def test_get_good_event(self):
id = "123456.random"

View File

@@ -31,6 +31,21 @@ class TestProxyRoleResolution(unittest.TestCase):
role = resolve_role(headers, self.proxy_config, self.config_roles)
self.assertEqual(role, "admin")
def test_role_map_or_matching(self):
config = self.proxy_config
config.header_map.role_map = {
"admin": ["group_admin", "group_privileged"],
}
# OR semantics: a single matching group should map to the role
headers = {"x-remote-role": "group_admin"}
role = resolve_role(headers, config, self.config_roles)
self.assertEqual(role, "admin")
headers = {"x-remote-role": "group_admin|group_privileged"}
role = resolve_role(headers, config, self.config_roles)
self.assertEqual(role, "admin")
def test_direct_role_header_with_separator(self):
config = self.proxy_config
config.header_map.role_map = None # disable role_map

View File

@@ -377,7 +377,14 @@ class TrackedObject:
return (thumb_update, significant_change, path_update, autotracker_update)
def to_dict(self) -> dict[str, Any]:
event = {
# Tracking internals excluded from output (centroid, estimate, estimate_velocity)
_EXCLUDED_OBJ_DATA_KEYS = {
"centroid",
"estimate",
"estimate_velocity",
}
event: dict[str, Any] = {
"id": self.obj_data["id"],
"camera": self.camera_config.name,
"frame_time": self.obj_data["frame_time"],
@@ -412,6 +419,11 @@ class TrackedObject:
"recognized_license_plate": self.obj_data.get("recognized_license_plate"),
}
# Add any other obj_data keys (e.g. custom attribute fields) not yet included
for key, value in self.obj_data.items():
if key not in _EXCLUDED_OBJ_DATA_KEYS and key not in event:
event[key] = value
return event
def is_active(self) -> bool:

View File

@@ -129,7 +129,9 @@ def get_ffmpeg_arg_list(arg: Any) -> list:
return arg if isinstance(arg, list) else shlex.split(arg)
def load_labels(path: Optional[str], encoding="utf-8", prefill=91):
def load_labels(
path: Optional[str], encoding="utf-8", prefill=91, indexed: bool | None = None
):
"""Loads labels from file (with or without index numbers).
Args:
path: path to label file.
@@ -146,11 +148,12 @@ def load_labels(path: Optional[str], encoding="utf-8", prefill=91):
if not lines:
return {}
if lines[0].split(" ", maxsplit=1)[0].isdigit():
if indexed != False and lines[0].split(" ", maxsplit=1)[0].isdigit():
pairs = [line.split(" ", maxsplit=1) for line in lines]
labels.update({int(index): label.strip() for index, label in pairs})
else:
labels.update({index: line.strip() for index, line in enumerate(lines)})
return labels

View File

@@ -214,6 +214,7 @@ class CameraWatchdog(threading.Thread):
self.latest_valid_segment_time: float = 0
self.latest_invalid_segment_time: float = 0
self.latest_cache_segment_time: float = 0
self.record_enable_time: datetime | None = None
def _update_enabled_state(self) -> bool:
"""Fetch the latest config and update enabled state."""
@@ -261,6 +262,9 @@ class CameraWatchdog(threading.Thread):
def run(self) -> None:
if self._update_enabled_state():
self.start_all_ffmpeg()
# If recording is enabled at startup, set the grace period timer
if self.config.record.enabled:
self.record_enable_time = datetime.now().astimezone(timezone.utc)
time.sleep(self.sleeptime)
while not self.stop_event.wait(self.sleeptime):
@@ -270,13 +274,15 @@ class CameraWatchdog(threading.Thread):
self.logger.debug(f"Enabling camera {self.config.name}")
self.start_all_ffmpeg()
# reset all timestamps
# reset all timestamps and record the enable time for grace period
self.latest_valid_segment_time = 0
self.latest_invalid_segment_time = 0
self.latest_cache_segment_time = 0
self.record_enable_time = datetime.now().astimezone(timezone.utc)
else:
self.logger.debug(f"Disabling camera {self.config.name}")
self.stop_all_ffmpeg()
self.record_enable_time = None
# update camera status
self.requestor.send_data(
@@ -361,6 +367,12 @@ class CameraWatchdog(threading.Thread):
if self.config.record.enabled and "record" in p["roles"]:
now_utc = datetime.now().astimezone(timezone.utc)
# Check if we're within the grace period after enabling recording
# Grace period: 90 seconds allows time for ffmpeg to start and create first segment
in_grace_period = self.record_enable_time is not None and (
now_utc - self.record_enable_time
) < timedelta(seconds=90)
latest_cache_dt = (
datetime.fromtimestamp(
self.latest_cache_segment_time, tz=timezone.utc
@@ -386,10 +398,16 @@ class CameraWatchdog(threading.Thread):
)
# ensure segments are still being created and that they have valid video data
cache_stale = now_utc > (latest_cache_dt + timedelta(seconds=120))
valid_stale = now_utc > (latest_valid_dt + timedelta(seconds=120))
# Skip checks during grace period to allow segments to start being created
cache_stale = not in_grace_period and now_utc > (
latest_cache_dt + timedelta(seconds=120)
)
valid_stale = not in_grace_period and now_utc > (
latest_valid_dt + timedelta(seconds=120)
)
invalid_stale_condition = (
self.latest_invalid_segment_time > 0
and not in_grace_period
and now_utc > (latest_invalid_dt + timedelta(seconds=120))
and self.latest_valid_segment_time
<= self.latest_invalid_segment_time

View File

@@ -1,5 +1,6 @@
{
"train": {
"titleShort": "الأخيرة"
}
},
"documentTitle": "تصنيف النماذج - Frigate"
}

View File

@@ -60,7 +60,7 @@
"cough": "Tos",
"throat_clearing": "Carraspeig",
"sneeze": "Esternut",
"sniff": "Fregit nasal",
"sniff": "olorar",
"run": "Córrer",
"shuffle": "Passos arrossegats",
"footsteps": "Passos",
@@ -97,7 +97,7 @@
"moo": "Mugir",
"cowbell": "Esquellot",
"pig": "Porc",
"oink": "Oink",
"oink": "Oinc",
"bleat": "Brama",
"fowl": "Au de corral",
"chicken": "Pollastre",
@@ -439,37 +439,37 @@
"inside": "Interior",
"pulse": "Pols",
"outside": "Fora",
"chirp_tone": "To de grinyol",
"chirp_tone": "Gisclada",
"harmonic": "Harmònic",
"sine_wave": "Ona sinus",
"crunch": "Cruixit",
"hum": "Taral·lejar",
"plop": "Chof",
"hum": "Zunzum",
"plop": "Xip-xap",
"clickety_clack": "Clic-Clac",
"clicking": "Clicant",
"clatter": "Soroll",
"clatter": "Rebombori",
"chird": "Piular",
"liquid": "Líquid",
"splash": "Xof",
"slosh": "Xip-xap",
"boing": "Boing",
"zing": "Fiu",
"rumble": "Bum-bum",
"sizzle": "Xiu-xiu",
"splash": "Esquitx",
"slosh": "Xipolleig",
"boing": "Rebot",
"zing": "Zunzum agut",
"rumble": "Retombori",
"sizzle": "Crepitació",
"whir": "Brrrm",
"rustle": "Fru-Fru",
"creak": "Clic-clac",
"clang": "Clang",
"rustle": "Frec",
"creak": "Rascada",
"clang": "Soroll metàl·lic",
"squish": "Xaf",
"drip": "Plic-plic",
"pour": "Glug-glug",
"trickle": "Xiulet",
"gush": "Xuuuix",
"fill": "Glug-glug",
"ding": "Ding",
"ping": "Ping",
"beep": "Bip",
"squeal": "Xiscle",
"drip": "Goteig",
"pour": "Abocament",
"trickle": "Raig fi",
"gush": "Raig fort",
"fill": "Ompliment",
"ding": "Ting",
"ping": "Ressò",
"beep": "Pitit",
"squeal": "Chirrit",
"crumpling": "Arrugant-se",
"rub": "Fregar",
"scrape": "Raspar",
@@ -480,13 +480,13 @@
"smash": "Aixafar",
"whack": "Cop",
"slap": "Bufetada",
"bang": "Bang",
"bang": "Cop fort",
"basketball_bounce": "Rebot de bàsquet",
"chorus_effect": "Efecte de cor",
"effects_unit": "Unitat d'Efectes",
"electronic_tuner": "Afinador electrònic",
"thunk": "Bruix",
"thump": "Cop fort",
"thump": "Soroll sord",
"whoosh": "Xiuxiueig",
"arrow": "Fletxa",
"sonar": "Sonar",

View File

@@ -48,7 +48,8 @@
"bg": "Български (Búlgar)",
"gl": "Galego (Gallec)",
"id": "Bahasa Indonesia (Indonesi)",
"ur": "اردو (Urdú)"
"ur": "اردو (Urdú)",
"hr": "Hrvatski (croat)"
},
"system": "Sistema",
"systemMetrics": "Mètriques del sistema",
@@ -201,7 +202,8 @@
},
"inProgress": "En curs",
"invalidStartTime": "Hora d'inici no vàlida",
"invalidEndTime": "Hora de finalització no vàlida"
"invalidEndTime": "Hora de finalització no vàlida",
"never": "Mai"
},
"unit": {
"speed": {

View File

@@ -6,7 +6,8 @@
"title": "Frigate s'està reiniciant",
"content": "Aquesta pàgina es tornarà a carregar d'aquí a {{countdown}} segons.",
"button": "Forçar la recàrrega ara"
}
},
"description": "Això aturarà breument Frigate mentre es reinicia."
},
"explore": {
"plus": {

View File

@@ -19,7 +19,8 @@
"description": {
"addFace": "Afegiu una col·lecció nova a la biblioteca de cares pujant la vostra primera imatge.",
"placeholder": "Introduïu un nom per a aquesta col·lecció",
"invalidName": "Nom no vàlid. Els noms només poden incloure lletres, números, espais, apòstrofs, guions baixos i guions."
"invalidName": "Nom no vàlid. Els noms només poden incloure lletres, números, espais, apòstrofs, guions baixos i guions.",
"nameCannotContainHash": "El nom no pot contenir #."
},
"documentTitle": "Biblioteca de rostres - Frigate",
"uploadFaceImage": {

View File

@@ -184,6 +184,16 @@
"restricted": {
"title": "No hi ha càmeres disponibles",
"description": "No teniu permís per veure cap càmera en aquest grup."
},
"default": {
"title": "No s'ha configurat cap càmera",
"description": "Comenceu connectant una càmera a Frigate.",
"buttonText": "Afegeix una càmera"
},
"group": {
"title": "No hi ha càmeres al grup",
"description": "Aquest grup de càmeres no té càmeres assignades o habilitades.",
"buttonText": "Gestiona els grups"
}
}
}

View File

@@ -114,6 +114,11 @@
},
"error": {
"mustBeFinished": "El dibuix del polígon s'ha d'acabar abans de desar."
},
"type": {
"zone": "zona",
"motion_mask": "màscara de moviment",
"object_mask": "màscara d'objecte"
}
},
"zoneName": {
@@ -532,7 +537,7 @@
"hide": "Amaga contrasenya",
"requirements": {
"title": "Requisits contrasenya:",
"length": "Com a mínim 8 carácters",
"length": "Com a mínim 12 carácters",
"uppercase": "Com a mínim una majúscula",
"digit": "Com a mínim un digit",
"special": "Com a mínim un carácter especial (!@#$%^&*(),.?\":{}|<>)"
@@ -954,7 +959,7 @@
"useDigestAuthDescription": "Usa l'autenticació de resum HTTP per a ONVIF. Algunes càmeres poden requerir un nom d'usuari/contrasenya ONVIF dedicat en lloc de l'usuari administrador estàndard."
},
"save": {
"failure": "SS'ha produït un error en desar {{cameraName}}.",
"failure": "S'ha produït un error en desar {{cameraName}}.",
"success": "S'ha desat correctament la càmera nova {{cameraName}}."
},
"testResultLabels": {
@@ -1211,11 +1216,11 @@
"cameraReview": {
"object_descriptions": {
"title": "Descripcions d'objectes generadors d'IA",
"desc": "Activa/desactiva temporalment les descripcions d'objectes generatius d'IA per a aquesta càmera. Quan està desactivat, les descripcions generades per IA no se sol·licitaran per als objectes rastrejats en aquesta càmera."
"desc": "Activa/desactiva temporalment les descripcions d'objectes generatius d'IA per a aquesta càmera fins que es reiniciï Frigate. Quan està desactivat, les descripcions generades per IA no se sol·licitaran per als objectes rastrejats en aquesta càmera."
},
"review_descriptions": {
"title": "Descripcions de la IA generativa",
"desc": "Activa/desactiva temporalment les descripcions de revisió de la IA generativa per a aquesta càmera. Quan està desactivat, les descripcions generades per IA no se sol·licitaran per als elements de revisió d'aquesta càmera."
"desc": "Activa/desactiva temporalment les descripcions de la IA Generativa per a aquesta càmera fins que es reiniciï Frigate. Quan està desactivat, les descripcions generades per IA no se sol·licitaran per als elements de revisió d'aquesta càmera."
},
"review": {
"title": "Revisió",

View File

@@ -78,7 +78,11 @@
"formattedTimestampFilename": {
"24hour": "dd-MM-yy-HH-mm-ss",
"12hour": "dd-MM.yy-h-mm-ss-a"
}
},
"never": "Nikdy",
"inProgress": "Zpracovává se",
"invalidStartTime": "Neplatný čas začátku",
"invalidEndTime": "Neplatný čas konce"
},
"button": {
"twoWayTalk": "Obousměrná komunikace",
@@ -115,10 +119,17 @@
"unselect": "Zrušit výběr",
"deleteNow": "Smazat hned",
"next": "Další",
"export": "Exportovat"
"export": "Exportovat",
"continue": "Pokračovat"
},
"label": {
"back": "Jdi zpět"
"back": "Jdi zpět",
"hide": "Skrýt {{item}}",
"show": "Zobrazit {{item}}",
"ID": "ID",
"none": "Nic",
"all": "Vše",
"other": "Ostatní"
},
"unit": {
"speed": {
@@ -128,6 +139,14 @@
"length": {
"feet": "stopa",
"meters": "metry"
},
"data": {
"kbps": "kB/s",
"mbps": "MB/s",
"gbps": "GB/s",
"kbph": "kB/hodinu",
"mbph": "MB/hodinu",
"gbph": "GB/hodinu"
}
},
"selectItem": "Vybrat {{item}}",
@@ -230,7 +249,8 @@
"uiPlayground": "UI hřiště",
"faceLibrary": "Knihovna Obličejů",
"configurationEditor": "Editor Konfigurace",
"withSystem": "Systém"
"withSystem": "Systém",
"classification": "Klasifikace"
},
"pagination": {
"previous": {
@@ -270,5 +290,17 @@
"viewer": "Divák",
"desc": "Správci mají plný přístup ke všem funkcím v uživatelském rozhraní Frigate. Diváci jsou omezeni na sledování kamer, položek přehledu a historických záznamů v UI."
},
"readTheDocumentation": "Přečtěte si dokumentaci"
"readTheDocumentation": "Přečtěte si dokumentaci",
"list": {
"two": "{{0}} a {{1}}",
"many": "{{items}}, a {{last}}",
"separatorWithSpace": ", "
},
"field": {
"optional": "Volitelné",
"internalID": "Interní ID Frigate používá v konfiguraci a databázi"
},
"information": {
"pixels": "{{area}}px"
}
}

View File

@@ -44,7 +44,8 @@
"button": {
"markAsReviewed": "Označit jako zkontrolované",
"deleteNow": "Smazat hned",
"export": "Exportovat"
"export": "Exportovat",
"markAsUnreviewed": "Označit jako nezkontrolované"
}
},
"export": {
@@ -67,12 +68,13 @@
"export": "Exportovat",
"selectOrExport": "Vybrat pro Export",
"toast": {
"success": "Export úspěšně spuštěn. Soubor najdete v adresáři /exports.",
"success": "Export úspěšně spuštěn. Soubor najdete na stránce exportů.",
"error": {
"failed": "Chyba spuštění exportu: {{error}}",
"endTimeMustAfterStartTime": "Čas konce musí být po čase začátku",
"noVaildTimeSelected": "Není vybráno žádné platné časové období"
}
},
"view": "Zobrazení"
},
"fromTimeline": {
"saveExport": "Uložit export",
@@ -116,6 +118,7 @@
"search": {
"placeholder": "Hledej pomocí štítku nebo podštítku..."
},
"noImages": "Nebyly nalezeny žádné náhledy pro tuto kameru"
"noImages": "Nebyly nalezeny žádné náhledy pro tuto kameru",
"unknownLabel": "Uložený obrázek Spouštěče"
}
}

View File

@@ -132,5 +132,9 @@
},
"count_one": "Třída {{count}}",
"count_other": "Třídy {{count}}"
},
"attributes": {
"label": "Atributy Klasifikace",
"all": "Všechny Atributy"
}
}

View File

@@ -38,10 +38,65 @@
"deleteImageFailed": "Chyba při mazání: {{errorMessage}}",
"deleteCategoryFailed": "Chyba při mazání třídy: {{errorMessage}}",
"deleteModelFailed": "Chyba při mazání modelu: {{errorMessage}}",
"categorizeFailed": "Chyba při mazání obrázku: {{errorMessage}}"
"categorizeFailed": "Chyba při mazání obrázku: {{errorMessage}}",
"trainingFailed": "Trénování modelu selhalo. Zkontrolujte logy Frigate pro zjištění detailů.",
"trainingFailedToStart": "Chyba spuštění trénování modelu: {{errorMessage}}",
"updateModelFailed": "Chyba aktualizace modelu: {{errorMessage}}",
"renameCategoryFailed": "Chyba přejmenování třídy: {{errorMessage}}"
}
},
"train": {
"titleShort": "Nedávný"
}
"titleShort": "Nedávný",
"title": "Předchozí klasifikace",
"aria": "Vybrat předchozí Klasifikace"
},
"deleteModel": {
"desc_one": "Jste si jistí, že chcete odstranit {{count}} model? Tím trvale odstraníte všechny související data včetně obrázků a tréninkových dat. Tato akce je nevratná.",
"desc_few": "Jste si jistí, že chcete odstranit {{count}} modely? Tím trvale odstraníte všechny související data včetně obrázků a tréninkových dat. Tato akce je nevratná.",
"desc_other": "Jste si jistí, že chcete odstranit {{count}} modelů? Tím trvale odstraníte všechny související data včetně obrázků a tréninkových dat. Tato akce je nevratná."
},
"deleteDatasetImages": {
"desc_one": "Opravdu chcete odstranit {{count}} obrázek z {{dataset}}? Tato akce je nevratná a vyžaduje přetrénování modelu.",
"desc_few": "Opravdu chcete odstranit {{count}} obrázky z {{dataset}}? Tato akce je nevratná a vyžaduje přetrénování modelu.",
"desc_other": "Opravdu chcete odstranit {{count}} obrázků z {{dataset}}? Tato akce je nevratná a vyžaduje přetrénování modelu.",
"title": "Smazat obrázky datové sady"
},
"deleteTrainImages": {
"desc_one": "Opravdu chcete odstranit {{count}} obrázek? Tato akce je nevratná.",
"desc_few": "Opravdu chcete odstranit {{count}} obrázky? Tato akce je nevratná.",
"desc_other": "Opravdu chcete odstranit {{count}} obrázků? Tato akce je nevratná.",
"title": "Odstranit tréninkové obrázky"
},
"wizard": {
"step3": {
"allImagesRequired_one": "Prosím, zařaďte všechny obrázky. Zbývá {{count}} obrázek.",
"allImagesRequired_few": "Prosím, zařaďte všechny obrázky. Zbývají {{count}} obrázky.",
"allImagesRequired_other": "Prosím, zařaďte všechny obrázky. Zbývá {{count}} obrázků.",
"trainingStarted": "Trénování úspěšně spuštěno",
"generateSuccess": "Vzorové obrázky byly úspěšně vytvořeny"
}
},
"deleteCategory": {
"title": "Smazat Třídu",
"desc": "Opravdu chcete odstranit třídu {{name}}? Tím se na trvalo odstraní všechny související obrázky a bude potřeba přetrénovat model.",
"minClassesTitle": "Nemůžete smazat třídu",
"minClassesDesc": "Klasifikační model musí mít alespoň 2 třídy. Než tuto třídu odstraníte přidejte další třídu."
},
"edit": {
"descriptionObject": "Upravte typ objektu a typ klasifikace pro tento model klasifikace.",
"stateClassesInfo": "Poznámka: Změna tříd stavů vyžaduje přetrénování modelu s aktualizovanými třídami."
},
"renameCategory": {
"title": "Přejmenovat třídu",
"desc": "Vložte nové jméno pro {{name}}. Aby se změna názvu projevila, bude nutné model znovu natrénovat."
},
"description": {
"invalidName": "Neplatné jméno. Jméno můžou obsahovat pouze písmena, čísla, mezery, apostrofy, podtržítka a spojovníky."
},
"categories": "Třídy",
"createCategory": {
"new": "Vytvořit novou Třídu"
},
"categorizeImageAs": "Klasifikovat obrázek jako:",
"categorizeImage": "Klasifikovat obrázek"
}

View File

@@ -9,14 +9,18 @@
"empty": {
"alert": "Nejsou žádné výstrahy na kontrolu",
"detection": "Nejsou žádné detekce na kontrolu",
"motion": "Nenalezena žádná data o pohybu"
"motion": "Nenalezena žádná data o pohybu",
"recordingsDisabled": {
"title": "Nahrávání musí být povoleno",
"description": "Položky revize lze pro kameru vytvořit pouze tehdy, je-li pro ni povoleno nahrávání."
}
},
"timeline": "Časová osa",
"timeline.aria": "Zvolit časovou osu",
"events": {
"label": "Události",
"aria": "Zvolit události",
"noFoundForTimePeriod": "Pro toto období nebyly nalezeny žádné události."
"noFoundForTimePeriod": "Pro toto časové období nebyly nalezeny žádné události."
},
"documentTitle": "Revize - Frigate",
"camera": "Kamera",
@@ -26,8 +30,8 @@
"markAsReviewed": "Označit jako zkontrolované",
"markTheseItemsAsReviewed": "Označit tyto položky jako zkontrolované",
"newReviewItems": {
"label": "Zobrazit nové položky na kontrolu",
"button": "Nové položky na kontrolu"
"label": "Zobrazit nové položky revize",
"button": "Nové položky revize"
},
"recordings": {
"documentTitle": "Záznamy - Frigate"
@@ -42,8 +46,22 @@
"detail": {
"label": "Detail",
"noDataFound": "Žádná detailní data k prohlédnutí",
"aria": "Přepnout detailní zobrazení",
"aria": "Přepnout zobrazení detailů",
"trackedObject_other": "{{count}} objektů",
"trackedObject_one": "{{count}} objektů"
}
"trackedObject_one": "{{count}} objekt",
"noObjectDetailData": "Nejsou k dispozici žádné podrobné údaje o objektu.",
"settings": "Nastavení Detailního Zobrazení",
"alwaysExpandActive": {
"title": "Vždy rozbalit aktivní",
"desc": "Vždy zobrazit podrobnosti objektu aktivní položky revize, pokud jsou k dispozici."
}
},
"objectTrack": {
"trackedPoint": "Sledovaný bod",
"clickToSeek": "Kliknutím přeskočte na tento čas"
},
"select_all": "Vše",
"normalActivity": "Normální",
"needsReview": "Potřebuje revizi",
"securityConcern": "Obava o bezpečnost"
}

View File

@@ -24,7 +24,8 @@
"regenerate": "Od {{provider}} byl vyžádán nový popis. V závislosti na rychlosti vašeho poskytovatele může obnovení nového popisu nějakou dobu trvat.",
"updatedSublabel": "Úspěšně aktualizovaný podružný štítek.",
"updatedLPR": "Úspěšně aktualizovaná SPZ.",
"audioTranscription": "Požádání o přepis zvuku bylo úspěšné."
"audioTranscription": "Požádání o přepis zvuku bylo úspěšné. V závislosti na rychlosti Vašeho Frigate serveru může přepis trvat nějaký čas než bude dokončen.",
"updatedAttributes": "Atributy byly úspěšně aktualizovány."
},
"error": {
"regenerate": "Chyba volání {{provider}} pro nový popis: {{errorMessage}}",
@@ -206,7 +207,7 @@
"dialog": {
"confirmDelete": {
"title": "Potvrdit smazání",
"desc": "Odstraněním tohoto sledovaného objektu se odstraní snímek, všechna uložená vložení a všechny související položky životního cyklu objektu. Zaznamenaný záznam tohoto sledovaného objektu v zobrazení Historie <em>NEBUDE</em> smazán.<br /><br />Opravdu chcete pokračovat?"
"desc": "Odstraněním tohoto sledovaného objektu se odstraní snímek, všechna uložená vložení a všechny související položky s podrobnostmi o sledování. Zaznamenaný záznam tohoto sledovaného objektu v zobrazení Historie <em>NEBUDE</em> smazán.<br /><br />Opravdu chcete pokračovat?"
}
},
"trackedObjectDetails": "Detaily sledovaných objektů",
@@ -214,7 +215,9 @@
"details": "detaily",
"snapshot": "snímek",
"video": "video",
"object_lifecycle": "životní cyklus objektu"
"object_lifecycle": "životní cyklus objektu",
"thumbnail": "Náhled",
"tracking_details": "detaily sledování"
},
"noTrackedObjects": "Žádné sledované objekty nebyly nalezeny",
"fetchingTrackedObjectsFailed": "Chyba při načítání sledovaných objektů: {{errorMessage}}",
@@ -224,5 +227,49 @@
},
"concerns": {
"label": "Obavy"
},
"trackingDetails": {
"title": "Detaily Sledování",
"noImageFound": "Nebyl nalezen obrázek pro tuto časovou značku.",
"createObjectMask": "Vytvořit Masku Objektu",
"adjustAnnotationSettings": "Upravte nastavení poznámek",
"scrollViewTips": "Klikněte pro zobrazení významných okamžiků z životního cyklu tohoto objektu.",
"autoTrackingTips": "Pozice ohraničujících rámečků budou nepřesné pro kamery s automatickým sledováním.",
"count": "{{first}} z {{second}}",
"trackedPoint": "Sledovaný Bod",
"lifecycleItemDesc": {
"visible": "Detekován {{label}}",
"entered_zone": "{{label}} vstoupil do {{zones}}",
"active": "{{label}} se stal aktivním",
"stationary": "{{label}} se zastavil",
"attribute": {
"faceOrLicense_plate": "Pro {{label}} zjištěn {{attribute}}"
},
"header": {
"ratio": "Poměr",
"area": "Oblast",
"score": "Skóre"
}
},
"annotationSettings": {
"title": "Nastavení anotací",
"showAllZones": {
"title": "Zobrazit všechny zóny",
"desc": "Vždy zobrazovat zóny na snímcích, na kterých objekty vstoupili do zóny."
},
"offset": {
"label": "Odsazení anotace",
"desc": "Tato data pocházejí z detekčního kanálu vaší kamery, ale překrývají se s obrázky ze záznamového kanálu. Je nepravděpodobné, že by oba streamy byly dokonale synchronizované. V důsledku toho se ohraničovací rámeček a záznam nebudou dokonale srovnávat. Toto nastavení můžete použít k časovému posunutí anotací dopředu nebo dozadu, abyste je lépe zarovnali se zaznamenaným záznamem.",
"millisecondsToOffset": "Milisekundy na posunutí detekce anotací. <em>Výchozí: 0</em>",
"tips": "Snižte hodnotu, pokud je přehrávané video před ohraničením a body cesty, nebo zvyšte hodnotu, pokud je přehrávané video za nimi. Hodnota může být i záporná.",
"toast": {
"success": "Odsazení anotací pro {{camera}} bylo uloženo do konfiguračního souboru."
}
}
},
"carousel": {
"previous": "Předcházející snímek",
"next": "Další snímek"
}
}
}

View File

@@ -1,6 +1,6 @@
{
"imageEntry": {
"dropInstructions": "Přetáhněte obrázek zde, nebo klikněte na výběr",
"dropInstructions": "Přetáhněte obrázek sem, nebo klikněte na výběr",
"maxSize": "Maximální velikost: {{size}}MB",
"dropActive": "Přetáhněte obrázek zde…",
"validation": {
@@ -10,7 +10,7 @@
"createFaceLibrary": {
"new": "Vytvořit nový obličej",
"desc": "Vytvořit novou kolekci",
"nextSteps": "Chcete-li vybudovat pevný základ:<li>Použijte kartu Trénování k výběru a trénování na snímcích pro každou detekovanou osobu.</li><li>Pro nejlepší výsledky se zaměřte na přímé snímky; vyhněte se trénování snímků, které zachycují obličeje pod úhlem.</li></ul>",
"nextSteps": "Chcete-li vybudovat pevný základ:<li>Použijte kartu Nedávná Rozpoznání k výběru a trénování na snímcích pro každou detekovanou osobu.</li><li>Pro nejlepší výsledky se zaměřte na přímé snímky; vyhněte se trénování snímků, které zachycují obličeje pod úhlem.</li></ul>",
"title": "Vytvořit kolekci"
},
"details": {
@@ -44,7 +44,7 @@
"description": {
"addFace": "Přidejte novou kolekci do Knihovny obličejů nahráním prvního obrázku.",
"placeholder": "Zadejte název pro tuto kolekci",
"invalidName": "Neplatný název. Názvy mohou obsahovat pouze písmena, čísla, mezery, apostrofy, podtržítka a pomlčky."
"invalidName": "Neplatné jméno. Jméno můžou obsahovat pouze písmena, čísla, mezery, apostrofy, podtržítka a spojovníky."
},
"documentTitle": "Knihovna obličejů - Frigate",
"uploadFaceImage": {

View File

@@ -86,7 +86,7 @@
"enable": "Ukázat statistiky streamu"
},
"manualRecording": {
"title": "Nahrávání na vyžádání",
"title": "Na požádání",
"playInBackground": {
"label": "Přehrát na pozadí",
"desc": "Povolte tuto volbu pro pokračování streamování i když je přehrávač skrytý."
@@ -103,7 +103,7 @@
"started": "Manuálně spuštěno nahrávání na požádání.",
"ended": "Ukončeno manuální nahrávání na vyžádání.",
"recordDisabledTips": "Protože je v konfiguraci této kamery nahrávání zakázáno nebo omezeno, bude uložen pouze snímek.",
"tips": "Spustit ruční událost na základě nastavení uchování záznamů této kamery."
"tips": "Stáhněte si aktuální snímek nebo spusťte ruční událost na základě nastavení uchování záznamu této kamery."
},
"streamingSettings": "Nastavení Streamování",
"audio": "Zvuk",
@@ -167,5 +167,11 @@
"transcription": {
"enable": "Povolit živý přepis zvuku",
"disable": "Zakázat živý přepis zvuku"
},
"snapshot": {
"takeSnapshot": "Stáhnout aktuální snímek",
"noVideoSource": "Pro snímek není k dispozici žádné video.",
"captureFailed": "Zachycení snímku selhalo.",
"downloadStarted": "Stažení snímku spuštěno."
}
}

View File

@@ -134,7 +134,7 @@
"name": {
"inputPlaceHolder": "Zadejte jméno…",
"title": "Jméno",
"tips": "Název musí mít alespoň 2 znaky a nesmí být shodný s názvem kamery nebo jiné zóny."
"tips": "Název musí mít alespoň 2 znaky, musí obsahovat alespoň jedno písmeno a nesmí být shodný s názvem kamery nebo jiné zóny této kamery."
},
"inertia": {
"title": "Setrvačnost",
@@ -160,7 +160,7 @@
}
},
"toast": {
"success": "Zóna {{zoneName}} byla uložena. Restartujte Frigate pro aplikování změn."
"success": "Zóna {{zoneName}} byla uložena."
},
"label": "Zóny",
"desc": {
@@ -199,8 +199,8 @@
"clickDrawPolygon": "Kliknutím nakreslíte polygon do obrázku.",
"toast": {
"success": {
"title": "{{polygonName}} byl uložen. Restartujte Frigate pro aplikování změn.",
"noName": "Maska Detekce pohybu byla uložena. Restartujte Frigate pro aplikování změn."
"title": "{{polygonName}} byl uložen.",
"noName": "Maska Detekce pohybu byla uložena."
}
}
},
@@ -284,8 +284,8 @@
"clickDrawPolygon": "Kliknutím nakreslete polygon do obrázku.",
"toast": {
"success": {
"title": "{{polygonName}} byl uložen. Restartujte Frigate pro aplikování změn.",
"noName": "Maska Objektu byla uložena. Restartujte Frigate pro aplikování změn."
"title": "{{polygonName}} byl uložen.",
"noName": "Maska Objektu byla uložena."
}
},
"point_one": "{{count}} bod",
@@ -322,7 +322,7 @@
"noCamera": "Žádná Kamera"
},
"general": {
"title": "Hlavní nastavení",
"title": "Nastavení rozhraní",
"liveDashboard": {
"title": "Živý dashboard",
"automaticLiveView": {
@@ -332,6 +332,13 @@
"playAlertVideos": {
"label": "Přehrát videa s výstrahou",
"desc": "Ve výchozím nastavení se nedávná upozornění na ovládacím panelu Živě přehrávají jako malá opakující se videa. Vypněte tuto možnost, chcete-li na tomto zařízení/prohlížeči zobrazovat pouze statický obrázek nedávných výstrah."
},
"displayCameraNames": {
"label": "Vždy zobrazit názvy kamer",
"desc": "Vždy zobrazit názvy kamer v čipu na ovládacím panelu živého náhledu s více kamerami."
},
"liveFallbackTimeout": {
"label": "Časový limit pádu živého přehrávání"
}
},
"storedLayouts": {
@@ -629,11 +636,11 @@
"actions": "Akce",
"noUsers": "Žádní uživatelé nebyli nalezeni.",
"changeRole": "Změnit roli uživatele",
"password": "Heslo",
"password": "Resetovat Heslo",
"deleteUser": "Smazat uživatele",
"role": "Role"
},
"updatePassword": "Aktualizovat heslo",
"updatePassword": "Resetovat heslo",
"toast": {
"success": {
"createUser": "Uživatel {{user}} úspěšně vytvořen",
@@ -743,7 +750,7 @@
"triggers": {
"documentTitle": "Spouštěče",
"management": {
"title": "Správa spouštěčů",
"title": "Spouštěče",
"desc": "Spravovat spouštěče pro {{camera}}. Použít typ miniatury ke spuštění u miniatur podobných vybranému sledovanému objektu a typ popisu ke spuštění u popisů podobných zadanému textu."
},
"addTrigger": "Přidat spouštěč",
@@ -782,10 +789,10 @@
"form": {
"name": {
"title": "Název",
"placeholder": "Zadejte název spouštěče",
"placeholder": "Pojmenujte tento spouštěč",
"error": {
"minLength": "Název musí mít alespoň 2 znaky.",
"invalidCharacters": "Jméno může obsahovat pouze písmena, číslice, podtržítka a pomlčky.",
"minLength": "Pole musí mít alespoň 2 znaky.",
"invalidCharacters": "Pole může obsahovat pouze písmena, číslice, podtržítka a pomlčky.",
"alreadyExists": "Spouštěč s tímto názvem již pro tuto kameru existuje."
}
},
@@ -798,9 +805,9 @@
},
"content": {
"title": "Obsah",
"imagePlaceholder": "Vybrat obrázek",
"imagePlaceholder": "Vyberte miniaturu",
"textPlaceholder": "Zadat textový obsah",
"imageDesc": "Vybrat obrázek, který spustí tuto akci, když bude detekován podobný obrázek.",
"imageDesc": "Je zobrazeno pouze posledních 100 miniatur. Pokud nemůžete najít požadovanou miniaturu, prosím zkontrolujte dřívější objekty v Prozkoumat a nastavte spouštěč ze tamějšího menu.",
"textDesc": "Zadejte text, který spustí tuto akci, když bude zjištěn podobný popis sledovaného objektu.",
"error": {
"required": "Obsah je povinný."
@@ -808,7 +815,7 @@
},
"actions": {
"title": "Akce",
"desc": "Ve výchozím nastavení Frigate odesílá MQTT zprávu pro všechny spouštěče. Zvolte dodatečnou akci, která se má provést, když se tento spouštěč aktivuje.",
"desc": "Ve výchozím nastavení Frigate odesílá MQTT zprávu pro všechny spouštěče. Podřazené popisky přidávají název spouštěče k popisku objektu. Atributy jsou prohledávatelná metadata uložená samostatně v metadatech sledovaného objektu.",
"error": {
"min": "Musí být vybrána alespoň jedna akce."
}
@@ -850,9 +857,9 @@
"createRole": "Role {{role}} byla úspěšně vytvořena",
"updateCameras": "Kamery byly aktualizovány pro roli {{role}}",
"deleteRole": "Role {{role}} byla úspěšně smazána",
"userRolesUpdated_one": "{{count}} uživatel(ů) přiřazených k této roli bylo aktualizováno na „Divák“, který má přístup ke všem kamerám.",
"userRolesUpdated_few": "",
"userRolesUpdated_other": ""
"userRolesUpdated_one": "{{count}} uživatel přiřazený k této roli byl aktualizován na „diváka“, který má přístup ke všem kamerám.",
"userRolesUpdated_few": "{{count}} uživatelé přiřazení k této roli bylo aktualizováno na „diváky“, kteří mají přístup ke všem kamerám.",
"userRolesUpdated_other": "{{count}} uživatelů přiřazených k této roli bylo aktualizováno na „diváky“, kteří mají přístup ke všem kamerám."
},
"error": {
"createRoleFailed": "Nepodařilo se vytvořit roli: {{errorMessage}}",
@@ -896,5 +903,36 @@
"title": "Správa role diváka",
"desc": "Spravujte vlastní role diváků a jejich oprávnění k přístupu ke kamerám pro tuto instanci Frigate."
}
},
"cameraWizard": {
"save": {
"success": "Nová kamera {{cameraName}} úspěšně uložena."
},
"step2": {
"testSuccess": "Test připojení v pořádku!",
"probeSuccessful": "Sonda úspěšná",
"probeNoSuccess": "Sonda neúspěšná"
},
"step3": {
"testSuccess": "Test streamu v pořádku!"
},
"step4": {
"reconnectionSuccess": "Opakované připojení úspěšné.",
"streamValidated": "Stream {{number}} úspěšně ověřený"
}
},
"cameraManagement": {
"cameraConfig": {
"toast": {
"success": "Kamera {{cameraName}} úspěšně uložena"
}
}
},
"cameraReview": {
"reviewClassification": {
"toast": {
"success": "Konfigurace Klasifikací Revizí byla uložena. Restartujte Frigate pro aplikování změn."
}
}
}
}

View File

@@ -112,12 +112,23 @@
"gpuUsage": "Využití CPU",
"gpuMemory": "Paměť GPU",
"gpuEncoder": "GPU kodér",
"gpuDecoder": "GPU Dekodér"
"gpuDecoder": "GPU Dekodér",
"intelGpuWarning": {
"title": "Upozornění Intel GPU Stats",
"message": "Statistiky GPU nedostupné",
"description": "Toto je známá chyba v nástrojích Intel pro hlášení statistik GPU (intel_gpu_top), která selhává a opakovaně vrací využití GPU 0 %, a to i v případech, kdy na (i)GPU správně běží hardwarová akcelerace a detekce objektů. Nejedná se o chybu Frigate. Můžete restartovat hostitele, abyste problém dočasně vyřešili a potvrdili, že GPU funguje správně. Toto neovlivňuje výkon."
}
},
"otherProcesses": {
"title": "Ostatní procesy",
"processCpuUsage": "Využití CPU procesy",
"processMemoryUsage": "Využití paměti procesy"
"processMemoryUsage": "Využití paměti procesy",
"series": {
"go2rtc": "go2rtc",
"recording": "nahrávání",
"review_segment": "revidovat segment",
"embeddings": "vložení"
}
},
"title": "Hlavní"
},

View File

@@ -27,7 +27,7 @@
"harp": "Harpe",
"bell": "Klokke",
"harmonica": "Harmonika",
"bagpipes": "Sækkepibe",
"bagpipes": "Sækkepiber",
"didgeridoo": "Didgeridoo",
"jazz": "Jazz",
"opera": "Opera",
@@ -78,11 +78,122 @@
"camera": "Kamera",
"tools": "Værktøj",
"hammer": "Hammer",
"drill": "Bore",
"drill": "Boremaskine",
"explosion": "Eksplosion",
"fireworks": "Nytårskrudt",
"babbling": "Pludren",
"yell": "Råb",
"whoop": "Jubel",
"snicker": "Smålatter"
"snicker": "Smålatter",
"bird": "Fugl",
"cat": "Kat",
"dog": "Hund",
"horse": "Hest",
"sheep": "Får",
"mouse": "Mus",
"keyboard": "Tastatur",
"blender": "Mixer",
"hair_dryer": "Føntørrer",
"animal": "Dyr",
"bark": "Gø",
"goat": "Gæd",
"sigh": "Suk",
"singing": "Synger",
"choir": "Kor",
"yodeling": "Jodlen",
"chant": "Messe",
"mantra": "Meditationsmantra",
"child_singing": "Barn Synger",
"synthetic_singing": "Syntetisk Sang",
"rapping": "Rapper",
"humming": "Nynner",
"groan": "Støn",
"grunt": "Grynt",
"whistling": "Fløjter",
"breathing": "Vejrtrækning",
"wheeze": "Hæsende vejrtrækning",
"snoring": "Snorker",
"gasp": "Gisp",
"pant": "Anstrengende vejrtrækning",
"snort": "Fnyse",
"cough": "Hoster",
"throat_clearing": "Rømmer sig",
"sneeze": "Nyser",
"sniff": "Snøfter",
"run": "Løb",
"shuffle": "Trække fødderne",
"footsteps": "Fodtrin",
"chewing": "Tygger",
"biting": "Bider",
"gargling": "Gurgler",
"stomach_rumble": "Maverumlen",
"burping": "Bøvser",
"hiccup": "Hikke",
"fart": "Prut",
"hands": "Hænder",
"finger_snapping": "Knipse fingere",
"clapping": "Klapper",
"heartbeat": "Hjertebanken",
"heart_murmur": "Hjertemislyd",
"cheering": "Hujen",
"applause": "Bifald",
"chatter": "Snak",
"crowd": "Forsamling",
"children_playing": "Børn leger",
"pets": "Kæledyr",
"yip": "Jubel",
"howl": "Hyl",
"bow_wow": "Vov vov",
"growling": "Knurren",
"whimper_dog": "Hunde­klynk",
"purr": "Spinde",
"meow": "Meaw",
"hiss": "Hvæser",
"caterwaul": "Kattejammer",
"livestock": "Husdyr",
"oink": "Nøf",
"bleat": "Brægen",
"vibration": "Vibration",
"fowl": "Fjerkræ",
"chicken": "Kylling",
"cluck": "Kagle",
"cock_a_doodle_doo": "Kykeliky",
"turkey": "Kalkun",
"gobble": "Kalkunlyd",
"duck": "And",
"quack": "Rap",
"goose": "Gås",
"honk": "Dyt",
"wild_animals": "Vilde dyr",
"roaring_cats": "Brølende katte",
"roar": "Brøl",
"chirp": "Pip",
"squawk": "Skræppen",
"pigeon": "Due",
"coo": "Kurre",
"crow": "Krage",
"caw": "Kragelyd",
"owl": "Ugle",
"hoot": "Uglehyl",
"flapping_wings": "Vingeslag",
"dogs": "Hunde",
"rats": "Rotter",
"patter": "Dråbelyd",
"insect": "Insekt",
"cricket": "Cricket",
"guitar": "Guitar",
"electric_guitar": "Elektrisk Guitar",
"bass_guitar": "Basguitar",
"acoustic_guitar": "Akustisk Guitar",
"steel_guitar": "Stål Guitar",
"tapping": "Tapping på guitar",
"strum": "Slå an",
"banjo": "Banjo",
"sitar": "Sitar",
"mandolin": "Mandolin",
"snare_drum": "Lilletromme",
"rimshot": "Kantslag",
"drum_roll": "Trommehvirvel",
"bass_drum": "Stortromme",
"techno": "Techno"
}

View File

@@ -24,13 +24,13 @@
"am": "am",
"year_one": "{{time}} år",
"year_other": "{{time}} år",
"mo": "{{time}}mo",
"mo": "{{time}}må",
"month_one": "{{time}} måned",
"month_other": "{{time}} måneder",
"d": "{{time}}d",
"day_one": "{{time}} dag",
"day_other": "{{time}} dage",
"h": "{{time}}h",
"h": "{{time}}t",
"yr": "{{time}}yr",
"hour_one": "{{time}} time",
"hour_other": "{{time}} timer",
@@ -41,11 +41,11 @@
"second_one": "{{time}} sekund",
"second_other": "{{time}} sekunder",
"formattedTimestamp": {
"12hour": "MMM d, h:mm:ss aaa",
"24hour": "MMM d, HH:mm:ss"
"12hour": "d MMM, h:mm:ss aaa",
"24hour": "d. MMM, HH:mm:ss"
},
"formattedTimestamp2": {
"12hour": "MM/dd h:mm:ssa",
"12hour": "dd/MM h:mm:ss",
"24hour": "d MMM HH:mm:ss"
},
"formattedTimestampHourMinute": {
@@ -57,22 +57,26 @@
"24hour": "HH:mm:ss"
},
"formattedTimestampMonthDayHourMinute": {
"12hour": "MMM d, h:mm aaa",
"24hour": "MMM d, HH:mm"
"12hour": "d MMM, h:mm aaa",
"24hour": "d MMM, HH:mm"
},
"formattedTimestampMonthDayYear": {
"12hour": "MMM d, yyyy",
"24hour": "MMM d, yyyy"
"12hour": "d MMM, yyyy",
"24hour": "d MMM, yyyy"
},
"formattedTimestampMonthDayYearHourMinute": {
"12hour": "MMM d yyyy, h:mm aaa",
"24hour": "MMM d yyyy, HH:mm"
"12hour": "d MMM yyyy, h:mm aaa",
"24hour": "d MMM yyyy, HH:mm"
},
"formattedTimestampMonthDay": "MMM d",
"formattedTimestampMonthDay": "d MMM",
"formattedTimestampFilename": {
"12hour": "MM-dd-yy-h-mm-ss-a",
"24hour": "MM-dd-yy-HH-mm-ss"
}
"12hour": "dd-MM-yy-h-mm-ss-a",
"24hour": "dd-MM-yy-HH-mm-ss"
},
"never": "Aldrig",
"inProgress": "Under behandling",
"invalidStartTime": "Ugyldig starttid",
"invalidEndTime": "Ugyldig sluttid"
},
"unit": {
"speed": {
@@ -82,14 +86,28 @@
"length": {
"feet": "fod",
"meters": "meter"
},
"data": {
"kbps": "kB/s",
"mbps": "MB/s",
"gbps": "GB/s",
"kbph": "kB/time",
"mbph": "MB/time",
"gbph": "GB/time"
}
},
"label": {
"back": "Gå tilbage"
"back": "Gå tilbage",
"hide": "Skjul {{item}}",
"show": "Vis {{item}}",
"ID": "ID",
"none": "Ingen",
"all": "Alle",
"other": "Andet"
},
"button": {
"apply": "Anvend",
"reset": "Reset",
"reset": "Nulstil",
"done": "Udført",
"enabled": "Aktiveret",
"enable": "Aktiver",
@@ -116,21 +134,22 @@
"no": "Nej",
"download": "Download",
"info": "Info",
"suspended": "Suspenderet",
"unsuspended": "Ophæv suspendering",
"suspended": "Sat på pause",
"unsuspended": "Genoptag",
"play": "Afspil",
"unselect": "Fravælg",
"export": "Eksporter",
"deleteNow": "Slet nu",
"next": "Næste"
"next": "Næste",
"continue": "Fortsæt"
},
"menu": {
"system": "System",
"systemMetrics": "System metrics",
"systemMetrics": "Systemstatistik",
"configuration": "Konfiguration",
"systemLogs": "System logs",
"systemLogs": "Systemlogfiler",
"settings": "Indstillinger",
"configurationEditor": "Konfiguratons Editor",
"configurationEditor": "Konfigurationsværktøj",
"languages": "Sprog",
"language": {
"en": "English (Engelsk)",
@@ -165,8 +184,17 @@
"th": "ไทย (Thai)",
"ca": "Català (Katalansk)",
"withSystem": {
"label": "Brug system indstillinger for sprog"
}
"label": "Brug systemindstillinger for sprog"
},
"ptBR": "Português brasileiro (Brasiliansk Portugisisk)",
"sr": "Српски (Serbisk)",
"sl": "Slovenščina (Slovensk)",
"lt": "Lietuvių (Litauisk)",
"bg": "Български (Bulgarsk)",
"gl": "Galego (Galisisk)",
"id": "Bahasa Indonesia (Indonesisk)",
"ur": "اردو (Urdu)",
"hr": "Hrvatski (Kroatisk)"
},
"appearance": "Udseende",
"darkMode": {
@@ -185,7 +213,7 @@
"nord": "Nord",
"red": "Rød",
"highcontrast": "Høj Kontrast",
"default": "Default"
"default": "Standard"
},
"help": "Hjælp",
"documentation": {
@@ -194,7 +222,7 @@
},
"restart": "Genstart Frigate",
"live": {
"title": "Live",
"title": "Direkte",
"allCameras": "Alle kameraer",
"cameras": {
"title": "Kameraer",
@@ -202,27 +230,28 @@
"count_other": "{{count}} Kameraer"
}
},
"review": "Review",
"review": "Gennemse",
"explore": "Udforsk",
"export": "Eksporter",
"uiPlayground": "UI sandkasse",
"faceLibrary": "Face Library",
"faceLibrary": "Ansigtsarkiv",
"user": {
"title": "Bruger",
"account": "Konto",
"current": "Aktiv bruger: {{user}}",
"anonymous": "anonym",
"logout": "Logout",
"setPassword": "Set Password"
}
"logout": "Log ud",
"setPassword": "Vælg kodeord"
},
"classification": "Kategorisering"
},
"toast": {
"copyUrlToClipboard": "Kopieret URL til klippebord.",
"copyUrlToClipboard": "Kopieret URL til udklipsholder.",
"save": {
"title": "Gem",
"error": {
"title": "Ændringer kan ikke gemmes: {{errorMessage}}",
"noMessage": "Kan ikke gemme konfigurationsændringer"
"title": "Ændringer kunne ikke gemmes: {{errorMessage}}",
"noMessage": "Kunne ikke gemme konfigurationsændringer"
}
}
},
@@ -233,7 +262,7 @@
"desc": "Admins har fuld adgang til Frigate UI. Viewers er begrænset til at se kameraer, gennemse items, og historik i UI."
},
"pagination": {
"label": "paginering",
"label": "sideinddeling",
"previous": {
"title": "Forrige",
"label": "Gå til forrige side"
@@ -245,15 +274,27 @@
"more": "Flere sider"
},
"accessDenied": {
"documentTitle": "Adgang forbudt - Frigate",
"title": "Adgang forbudt",
"desc": "Du har ikke tiiladelse til at se denne side."
"documentTitle": "Adgang nægtet - Frigate",
"title": "Adgang nægtet",
"desc": "Du har ikke rettigheder til at se denne side."
},
"notFound": {
"documentTitle": "Ikke fundet - Frigate",
"title": "404",
"desc": "Side ikke fundet"
"desc": "Siden blev ikke fundet"
},
"selectItem": "Vælg {{item}}",
"readTheDocumentation": "Læs dokumentationen"
"readTheDocumentation": "Læs dokumentationen",
"list": {
"two": "{{0}} og {{1}}",
"many": "{{items}}, og {{last}}",
"separatorWithSpace": ", "
},
"field": {
"optional": "Valgfrit",
"internalID": "Det interne ID som Frigate bruger i konfigurationen og databasen"
},
"information": {
"pixels": "{{area}}px"
}
}

View File

@@ -8,7 +8,8 @@
"passwordRequired": "Kodeord kræves",
"loginFailed": "Login fejlede",
"unknownError": "Ukendt fejl. Tjek logs.",
"rateLimit": "Grænsen for forespørgsler er overskredet. Prøv igen senere."
"rateLimit": "Grænsen for forespørgsler er overskredet. Prøv igen senere.",
"webUnknownError": "Ukendt fejl. Tjek konsollogs."
},
"firstTimeLogin": "Forsøger du at logge ind for første gang? Loginoplysningerne står i Frigate-loggene."
}

View File

@@ -14,8 +14,73 @@
"label": "Navn",
"placeholder": "Indtast et navn…",
"errorMessage": {
"mustLeastCharacters": "Kameragruppens navn skal være mindst 2 tegn."
"mustLeastCharacters": "Kameragruppens navn skal være mindst 2 tegn.",
"exists": "Kameragruppenavn findes allerede.",
"nameMustNotPeriod": "Kameragruppenavn må ikke indeholde en periode.",
"invalid": "Ugyldigt kamera gruppenavn."
}
},
"cameras": {
"label": "Kameraer",
"desc": "Vælg kameraer til denne gruppe."
},
"icon": "Ikon",
"success": "Kameragruppe ({{name}}) er blevet gemt.",
"camera": {
"birdseye": "Fugleøje",
"setting": {
"label": "Kamera Streaming Indstillinger",
"title": "{{cameraName}} Streaming Indstillinger",
"desc": "Skift de live streaming muligheder for denne kameragruppes dashboard. <em> Disse indstillinger er enheds- og browserspecifikke.</em>",
"audioIsAvailable": "Lyd er tilgængelig for denne stream",
"audioIsUnavailable": "Lyd er ikke tilgængelig for denne strøm",
"audio": {
"tips": {
"title": "Lyd skal komme fra dit kamera og konfigureret i go2rtc til denne stream."
}
},
"stream": "Stream",
"placeholder": "Vælg en stream",
"streamMethod": {
"label": "Streaming Metode",
"placeholder": "Vælg en streaming metode",
"method": {
"noStreaming": {
"label": "Ingen Streaming",
"desc": "Kamerabilleder vil kun opdatere én gang i minuttet og ingen live streaming vil forekomme."
},
"smartStreaming": {
"label": "Smart Streaming (anbefalet)",
"desc": "Smart streaming vil opdatere dit kamerabillede én gang i minuttet, når der ikke sker noget, for at spare båndbredde og ressourcer. Når der registreres aktivitet, skifter billedet problemfrit til en live stream."
},
"continuousStreaming": {
"label": "Kontinuerlig Streaming",
"desc": {
"title": "Kamerabillede vil altid være en live stream, når det er synligt på instrumentbrættet, selv om der ikke registreres nogen aktivitet.",
"warning": "Kontinuerlig streaming kan forårsage højt båndbreddeforbrug og ydelsesproblemer. Brug med omtanke."
}
}
}
},
"compatibilityMode": {
"label": "Kompatibilitetstilstand",
"desc": "Aktivér kun denne mulighed, hvis kameraets live stream viser farve artefakter og har en diagonal linje på højre side af billedet."
}
}
}
},
"debug": {
"options": {
"label": "Indstillinger",
"title": "Valgmuligheder",
"showOptions": "Vis muligheder",
"hideOptions": "Skjul muligheder"
},
"boundingBox": "Afgrænsningsfelt",
"timestamp": "Tidsstempel",
"zones": "Zoner",
"mask": "Maske",
"motion": "Bevægelse",
"regions": "Regioner"
}
}

View File

@@ -6,7 +6,8 @@
"title": "Frigate genstarter",
"button": "Gennemtving genindlæsning nu",
"content": "Denne side genindlæses om {{countdown}} sekunder."
}
},
"description": "Dette vil kortvarigt stoppe Frigate under genstart."
},
"explore": {
"plus": {
@@ -17,7 +18,9 @@
"review": {
"question": {
"label": "Bekræft denne etiket til Frigate Plus",
"ask_a": "Er dette objekt et <code>{{label}}</code>?"
"ask_a": "Er dette objekt et <code>{{label}}</code>?",
"ask_an": "Er dette objekt en <code>{{label}}</code>?",
"ask_full": "Er dette objekt en <code>{{untranslatedLabel}}</code> ({{translatedLabel}})?"
}
}
}

View File

@@ -1,5 +1,5 @@
{
"filter": "Filter",
"filter": "Filtrer",
"classes": {
"label": "Klasser",
"all": {

View File

@@ -2,7 +2,7 @@
"iconPicker": {
"selectIcon": "Vælg et ikon",
"search": {
"placeholder": "Søg efter ikoner…"
"placeholder": "Søg efter et ikon…"
}
}
}

View File

@@ -4,12 +4,48 @@
"cameraDisabled": "Kamera er deaktiveret",
"noPreviewFoundFor": "Ingen forhåndsvisning fundet for {{cameraName}}",
"submitFrigatePlus": {
"title": "Indsend denne frame til Frigate+?",
"title": "Indsend dette billede til Frigate+?",
"submit": "Indsend"
},
"livePlayerRequiredIOSVersion": "iOS 17.1 eller nyere kræves for denne type livestream.",
"streamOffline": {
"title": "Stream offline",
"desc": "Der er ikke modtaget nogen frames på {{cameraName}}-<code>detect</code>-streamen, tjek fejlloggene."
"desc": "Der er ikke modtaget nogen billeder på {{cameraName}}-<code>detect</code>-streamen, tjek fejllogs."
},
"stats": {
"streamType": {
"title": "Stream type:",
"short": "Type"
},
"bandwidth": {
"title": "Båndbredde:",
"short": "Båndbredde"
},
"latency": {
"title": "Latenstid:",
"value": "{{seconds}} sekunder",
"short": {
"title": "Latenstid",
"value": "{{seconds}} sek"
}
},
"droppedFrames": {
"short": {
"title": "Tabt",
"value": "{{droppedFrames}} billeder"
},
"title": "Tabte billeder:"
},
"totalFrames": "Antal billeder i alt:",
"decodedFrames": "Dekodede billeder:",
"droppedFrameRate": "Rate for tabte billeder:"
},
"toast": {
"success": {
"submittedFrigatePlus": "Billede sendt til Frigate+"
},
"error": {
"submitFrigatePlusFailed": "Kunne ikke sende billede til Frigate+"
}
}
}

View File

@@ -14,5 +14,107 @@
"sink": "Håndvask",
"toothbrush": "Tandbørste",
"scissors": "Saks",
"clock": "Ur"
"clock": "Ur",
"fire_hydrant": "Brandhane",
"street_sign": "Gadeskilt",
"stop_sign": "Stopskilt",
"parking_meter": "Parkeringsautomat",
"bench": "Bænk",
"bird": "Fugl",
"cat": "Kat",
"dog": "Hund",
"horse": "Hest",
"sheep": "Får",
"cow": "Ko",
"elephant": "Elefant",
"bear": "Bjørn",
"zebra": "Zebra",
"giraffe": "Giraf",
"hat": "Hat",
"backpack": "Rygsæk",
"umbrella": "Paraply",
"shoe": "Sko",
"eye_glasses": "Briller",
"handbag": "Håndtaske",
"tie": "Slips",
"suitcase": "Kuffert",
"frisbee": "Frisbee",
"skis": "Ski",
"snowboard": "Snowboard",
"sports_ball": "Bold",
"kite": "Drage",
"baseball_bat": "Baseball Bat",
"baseball_glove": "Baseball hanske",
"surfboard": "Surfbræt",
"tennis_racket": "Tennis ketcher",
"bottle": "Flaske",
"plate": "Tallerken",
"wine_glass": "Vinglas",
"cup": "Kop",
"fork": "Gaffel",
"knife": "Kniv",
"spoon": "Ske",
"bowl": "Skål",
"banana": "Banan",
"apple": "Æble",
"sandwich": "Sandwich",
"orange": "Appelsin",
"broccoli": "Broccoli",
"carrot": "Gulerod",
"hot_dog": "Hotdog",
"pizza": "Pizza",
"donut": "Donut",
"cake": "Kage",
"chair": "Stol",
"couch": "Sofa",
"potted_plant": "Potteplante",
"bed": "Seng",
"mirror": "Spejl",
"dining_table": "Spisebord",
"window": "Vindue",
"desk": "Bord",
"toilet": "Toilet",
"tv": "Fjernsyn",
"laptop": "Bærebar computer",
"mouse": "Mus",
"remote": "Fjernbetjening",
"keyboard": "Tastatur",
"cell_phone": "Mobiltelefon",
"microwave": "Mikrobølgeovn",
"oven": "Ovn",
"toaster": "Brødrister",
"refrigerator": "Køleskab",
"blender": "Mixer",
"book": "Bog",
"vase": "Vase",
"teddy_bear": "Bamse",
"hair_dryer": "Føntørrer",
"hair_brush": "Hårbørste",
"squirrel": "Egern",
"deer": "Hjort",
"animal": "Dyr",
"bark": "Gø",
"fox": "Ræv",
"goat": "Gæd",
"rabbit": "Kanin",
"raccoon": "Vaskebjørn",
"robot_lawnmower": "Robotplæneklipper",
"waste_bin": "Affaldsspand",
"on_demand": "Manuel optagelse",
"face": "Ansigt",
"license_plate": "Nummerplade",
"package": "Pakke",
"bbq_grill": "Grill",
"amazon": "Amazon levering",
"usps": "USPS levering",
"ups": "UPS levering",
"fedex": "FedEx levering",
"dhl": "DHL levering",
"an_post": "An Post levering",
"purolator": "Purolator levering",
"postnl": "PostNL levering",
"nzpost": "NZPost levering",
"postnord": "PostNord levering",
"gls": "GLS levering",
"dpd": "DPD levering"
}

View File

@@ -1,18 +1,187 @@
{
"documentTitle": "Klassifikationsmodeller",
"documentTitle": "Kategoriseringsmodeller - Frigate",
"details": {
"scoreInfo": "Scoren repræsenterer den gennemsnitlige klassifikationssikkerhed på tværs af alle registreringer af dette objekt.",
"unknown": "Ukendt"
"scoreInfo": "Scoren viser den gennemsnitlige sikkerhed for kategoriseringen på tværs af alle registreringer af dette objekt.",
"unknown": "Ukendt",
"none": "Ingen"
},
"description": {
"invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger."
},
"button": {
"deleteClassificationAttempts": "Slet klassifikationsbilleder",
"deleteClassificationAttempts": "Slet kategoriseringsbilleder",
"renameCategory": "Omdøb klasse",
"deleteCategory": "Slet klasse",
"deleteImages": "Slet billeder",
"trainModel": "Træn model",
"addClassification": "Tilføj klassifikation"
"addClassification": "Tilføj Kategori",
"deleteModels": "Slet modeller",
"editModel": "Rediger model"
},
"tooltip": {
"trainingInProgress": "Modellen er ved at blive trænet",
"noNewImages": "Der er ingen nye billeder at lære af. Kategorisér flere billeder i datasættet først.",
"noChanges": "Ingen ændringer i datasættet siden sidste træning.",
"modelNotReady": "Modellen er ikke klar til træning"
},
"toast": {
"success": {
"deletedCategory": "Slettet kategori",
"deletedImage": "Slettede billeder",
"deletedModel_one": "{{count}} model er nu slettet",
"deletedModel_other": "{{count}} modeller er nu slettet",
"categorizedImage": "Billedet er nu kategoriseret",
"trainedModel": "Modellen er klar.",
"trainingModel": "Modeltræning er started.",
"updatedModel": "Modellens indstillinger er opdateret",
"renamedCategory": "Kategorien er omdøbt til {{name}}"
},
"error": {
"deleteImageFailed": "Fejl under sletning: {{errorMessage}}",
"deleteCategoryFailed": "Sletning af kategori fejlede: {{errorMessage}}",
"deleteModelFailed": "Sletning af model fejlede: {{errorMessage}}",
"categorizeFailed": "Kategorisering af billedet fejlede: {{errorMessage}}",
"trainingFailed": "Træning af modellen fejlede. Check Frigate loggen.",
"trainingFailedToStart": "Opstart af modeltræning fejlede: {{errorMessage}}",
"updateModelFailed": "Ændring af modellen fejlede: {{errorMessage}}",
"renameCategoryFailed": "Kan ikke omdøbe kategorien: {{errorMessage}}"
}
},
"deleteCategory": {
"title": "Slet kategori",
"desc": "Er du sikker på at du vil slette kategorien {{name}}? Dette kan ikke fortrydes og sletter alle tilhørende billeder samt træning af modellen.",
"minClassesTitle": "Kan ikke slette Kategori",
"minClassesDesc": "Modellen skal have mindst 2 kategorier. Tilføj en kategori, før du sletter denne."
},
"deleteModel": {
"title": "Slet Kategoriseringsmodellen",
"desc_one": "Er du sikker på, at du vil slette {{count}} model? Dette vil permanent slette alle tilknyttede data, inkl. billeder og træningsdata. Denne handling kan ikke fortrydes.",
"desc_other": "Er du sikker på, at du vil slette {{count}} modeller? Dette vil permanent slette alle tilknyttede data, inkl. billeder og træningsdata. Denne handling kan ikke fortrydes.",
"single": "Er du sikker på, at du vil slette {{name}}? Dette vil permanent slette alle tilknyttede data, inklusive billeder og træningsdata. Denne handling kan ikke fortrydes."
},
"train": {
"title": "Nyeste kategorier",
"titleShort": "Nyeste",
"aria": "Vælg de nyeste kategorier"
},
"categories": "Kategorier",
"createCategory": {
"new": "Opret en ny kategori"
},
"categorizeImageAs": "Kategoriser billedet som:",
"categorizeImage": "Kategoriser billedet",
"menu": {
"objects": "Genstande",
"states": "Statestik"
},
"noModels": {
"object": {
"title": "Ingen kategoriseringsmodeller for genstande",
"description": "Opret en model, der kan kategorisere genstande.",
"buttonText": "Opret Genstands Model"
},
"state": {
"title": "Ingen modeller til genstandstilstande",
"description": "Opret en brugerdefineret model til at overvåge og kategorisere tilstandsændringer i specifikke kamerområder.",
"buttonText": "Opret tilstandsmodel"
}
},
"wizard": {
"step1": {
"type": "Type",
"typeState": "Tilstand",
"typeObject": "Genstand",
"objectLabel": "Genstands mærkat",
"objectLabelPlaceholder": "Vælg genstands type...",
"classificationType": "Kategoriseringstype",
"classificationTypeTip": "Udforsk kategoriseringstyper",
"errors": {
"nameLength": "Modellens navn må højst være 64 tegn",
"nameOnlyNumbers": "Modellens navn skal indeholde bogstaver",
"classRequired": "Der mangler en kategori",
"classesUnique": "Kategorinavne skal være unikke",
"noneNotAllowed": "Kategorinavnet 'none' er ikke tilladt",
"stateRequiresTwoClasses": "Tilstandsmodeller har brug for 2 kategorier",
"objectLabelRequired": "Vælg genstands mærkat",
"objectTypeRequired": "Vælg kategoriseringstype",
"nameRequired": "Modelnavn er påkrævet"
},
"description": "Tilstandsmodeller overvåger faste kameraområder for ændringer (f.eks. dør åben/lukket). Genstandsmodeller tilføjer kategoriseringer til detekterede genstande (f.eks. kendte dyr, leveringspersoner osv.).",
"name": "Navn",
"namePlaceholder": "Skriv modelnavn...",
"classificationTypeDesc": "Underetiketter tilføjer ekstra tekst til genstandens etiket (f.eks. 'Person: UPS'). Attributter er søgbare metadata, der opbevares separat i genstandens metadata.",
"classificationSubLabel": "Underetiketter",
"classificationAttribute": "Attribut",
"classes": "Kategori",
"states": "Tilstande",
"classesTip": "Lær om kategorier",
"classesStateDesc": "Definér de forskellige tilstande, dit kameraområde kan være i. For eksempel: 'åben' og 'lukket' for en garageport.",
"classesObjectDesc": "Definér de forskellige kategorier, som detekterede genstande skal kategoriseres i. For eksempel: 'leveringsperson', 'beboer', 'fremmed' til kategorisering af personer.",
"classPlaceholder": "Skriv kategorinavn..."
},
"step2": {
"description": "Vælg kameraer, og definer det område, der skal overvåges for hvert kamera. Modellen vil kategorisere tilstanden i disse områder.",
"cameras": "Kameraer",
"selectCamera": "Vælg Kamera",
"noCameras": "Klik + for at tilføje kamera",
"selectCameraPrompt": "Vælg et kamera fra listen for at definere dets overvågningsområde"
},
"step3": {
"selectImagesPrompt": "Vælg alle billeder med: {{className}}",
"selectImagesDescription": "Klik på billederne for at vælge dem. Klik på Fortsæt, når du er færdig med denne kategori.",
"allImagesRequired_one": "Venligst kategoriser alle billeder. {{count}} billede tilbage.",
"allImagesRequired_other": "Venligst kategoriser alle billeder. {{count}} billeder tilbage.",
"generating": {
"title": "Genererer testbilleder",
"description": "Frigate henter repræsentative billeder fra dine optagelser. Det kan tage et øjeblik..."
},
"training": {
"title": "Træningsmodel",
"description": "Din model trænes i baggrunden. Luk denne dialog, og din model vil begynde at køre, så snart træningen er færdig."
},
"retryGenerate": "Forsøg at generere igen",
"noImages": "Ingen prøvebilleder blev genereret",
"classifying": "Kategoriserer og træner...",
"trainingStarted": "Træningen er startet",
"modelCreated": "Model er oprettet. Brug visningen af nylige kategoriseringer til at tilføje billeder for de manglende tilstande, og træn modellen derefter.",
"errors": {
"noCameras": "Ingen kamera konfigureret",
"noObjectLabel": "Ingen genstandsmærkat valgt",
"generateFailed": "Kunne ikke generere eksempler: {{error}}",
"generationFailed": "Der opstod en fejl under genereringen. Prøv igen.",
"classifyFailed": "Kunne ikke kategorisere billederne: {{error}}"
},
"generateSuccess": "Eksempelbilleder er nu genereret",
"missingStatesWarning": {
"title": "Manglende tilstandseksempler",
"description": "Det anbefales at vælge eksempler for alle tilstande for at opnå de bedste resultater. Du kan fortsætte uden at vælge alle tilstande, men modellen bliver ikke trænet, før alle tilstande har billeder. Efter du fortsætter, kan du bruge visningen Seneste kategoriseringer til at kategorisere billeder for de manglende tilstande og derefter træne modellen."
}
},
"title": "Opret ny kategorisering",
"steps": {
"nameAndDefine": "Navn og definition",
"stateArea": "Tilstandsområde",
"chooseExamples": "Vælg Eksempler"
}
},
"edit": {
"title": "Rediger kategoriseringsmodel",
"descriptionState": "Rediger kategorierne for denne model til genstandstilstande. Ændringer kræver, at modellen trænes igen.",
"descriptionObject": "Rediger genstandstypen og kategoriseringstypen for denne genstandskategoriseringsmodel.",
"stateClassesInfo": "Bemærk: Ændring af tilstandskategorier kræver, at modellen trænes igen med de opdaterede kategorier."
},
"deleteDatasetImages": {
"title": "Slet billeder i datasættet",
"desc_one": "Er du sikker på, at du vil slette {{count}} billede fra {{dataset}}? Denne handling kan ikke fortrydes og kræver, at modellen trænes igen.",
"desc_other": "Er du sikker på, at du vil slette {{count}} billeder fra {{dataset}}? Denne handling kan ikke fortrydes og kræver, at modellen trænes igen."
},
"deleteTrainImages": {
"title": "Slet trænings billeder",
"desc_one": "Er du sikker på, at du vil slette {{count}} billede? Denne handling kan ikke fortrydes.",
"desc_other": "Er du sikker på, at du vil slette {{count}} billeder? Denne handling kan ikke fortrydes."
},
"renameCategory": {
"title": "Omdøb Kategori",
"desc": "Indtast et nyt navn til {{name}}. Modellen skal trænes igen, før navneændringen træder i kraft."
}
}

View File

@@ -3,8 +3,16 @@
"copyConfig": "Kopiér konfiguration",
"saveAndRestart": "Gem & Genstart",
"saveOnly": "Kun gem",
"configEditor": "Konfigurationseditor",
"safeConfigEditor": "Konfigurationseditor (Sikker tilstand)",
"safeModeDescription": "Frigate er i sikker tilstand på grund af en fejl ved validering af konfigurationen.",
"confirm": "Afslut uden at gemme?"
"configEditor": "Konfigurationsværktøj",
"safeConfigEditor": "Konfigurationsværktøj (Sikker tilstand)",
"safeModeDescription": "Frigate er i sikker tilstand på grund af valideringsfejl af konfigurationen.",
"confirm": "Afslut uden at gemme?",
"toast": {
"success": {
"copyToClipboard": "Konfigurationen er kopieret."
},
"error": {
"savingError": "Kan ikke gemme konfigurationen"
}
}
}

View File

@@ -11,6 +11,22 @@
"empty": {
"alert": "Der er ingen advarsler at gennemgå",
"detection": "Der er ingen registreringer at gennemgå",
"motion": "Ingen bevægelsesdata fundet"
}
"motion": "Ingen bevægelsesdata fundet",
"recordingsDisabled": {
"title": "Optagelser skal være aktiveret"
}
},
"documentTitle": "Gennemse - Frigate",
"recordings": {
"documentTitle": "Optagelser - Frigate"
},
"calendarFilter": {
"last24Hours": "Sidste 24 timer"
},
"markAsReviewed": "Marker som gennemset",
"markTheseItemsAsReviewed": "Marker disse som gennemset",
"detail": {
"aria": "Skift til detaljevisning"
},
"timeline.aria": "Vælg tidslinje"
}

View File

@@ -17,10 +17,15 @@
"context": "Udforsk kan bruges, når genindekseringen af de sporede objektindlejringer er fuldført.",
"finishingShortly": "Afsluttes om lidt",
"step": {
"thumbnailsEmbedded": "Miniaturer indlejret: "
"thumbnailsEmbedded": "Miniaturer indlejret: ",
"descriptionsEmbedded": "Beskrivelser indlejrede: ",
"trackedObjectsProcessed": "Sporede objekter behandlede: "
}
},
"title": "Udforsk er ikke tilgængelig"
"title": "Udforsk er ikke tilgængelig",
"downloadingModels": {
"context": "Frigate henter de nødvendige indlejringsmodeller for at understøtte semantiske søgninger. Dette kan tage flere minutter, afhængig af hastigheden på din netværksforbindelse."
}
},
"exploreMore": "Udforsk flere {{label}}-objekter",
"details": {

View File

@@ -8,5 +8,11 @@
"desc": "Indtast et nyt navn for denne eksport."
},
"noExports": "Ingen eksporter fundet",
"deleteExport": "Slet eksport"
"deleteExport": "Slet eksport",
"tooltip": {
"shareExport": "Del eksport",
"downloadVideo": "Download video",
"editName": "Rediger navn",
"deleteExport": "Slette eksport"
}
}

View File

@@ -3,7 +3,8 @@
"description": {
"addFace": "Tilføj en ny samling til ansigtsbiblioteket ved at uploade dit første billede.",
"placeholder": "Angiv et navn for bibliotek",
"invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger."
"invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger.",
"nameCannotContainHash": "Navet kan ikke indeholde #."
},
"details": {
"person": "Person",
@@ -15,5 +16,78 @@
"uploadFaceImage": {
"title": "Upload ansigtsbillede",
"desc": "Upload et billede for at scanne efter ansigter og inkludere det for {{pageToggle}}"
}
},
"train": {
"titleShort": "Nyeste",
"title": "Seneste genkendelser",
"aria": "Vælg seneste genkendelser",
"empty": "Der er ingen nylige ansigtsgenkendelser"
},
"createFaceLibrary": {
"new": "Nyt ansigt",
"nextSteps": "<ul> <li>Brug fanen <strong>Seneste genkendelser</strong> til at udvælge og træne på billeder for hver registreret person.</li> <li>Fokusér på billeder taget lige forfra for de bedste resultater; undgå træningsbilleder, hvor ansigter er fotograferet fra siden eller i vinkel.</li> </ul>"
},
"steps": {
"faceName": "Skriv ansigt navn",
"uploadFace": "Upload ansigt billede",
"nextSteps": "Næste skridt",
"description": {
"uploadFace": "Upload et billede af {{name}}, hvor ansigtet er set forfra. Billedet behøver ikke kun at vise ansigtet og skal ikke beskæres."
}
},
"button": {
"deleteFace": "Slet ansigt",
"deleteFaceAttempts": "Slet ansigter",
"addFace": "Tilføj ansigt",
"renameFace": "Omdøb ansigt",
"uploadImage": "Upload billede",
"reprocessFace": "Genbehandl ansigt"
},
"trainFace": "Lær ansigt",
"renameFace": {
"title": "Omdøb ansigt",
"desc": "Indtast et nyt navn til {{name}}"
},
"toast": {
"success": {
"deletedFace_one": "{{count}} ansigt blev slettet",
"deletedFace_other": "{{count}} ansigter blev slettet",
"deletedName_one": "{{count}} ansigt slettet",
"deletedName_other": "{{count}} ansigter slettet",
"uploadedImage": "Billedet blev uploadet.",
"addFaceLibrary": "{{name}} er blevet tilføjet til ansigtsbiblioteket!",
"renamedFace": "Ansigtet er blevet omdøbt til {{name}}",
"trainedFace": "Ansigtet er blevet trænet.",
"updatedFaceScore": "Ansigtets score er blevet opdateret til {{score}} ({{name}})."
},
"error": {
"uploadingImageFailed": "Kunne ikke uploade billedet: {{errorMessage}}",
"addFaceLibraryFailed": "Kunne ikke angive navn på ansigtet: {{errorMessage}}",
"deleteFaceFailed": "Kunne ikke slette: {{errorMessage}}",
"deleteNameFailed": "Kunne ikke slette navnet: {{errorMessage}}",
"renameFaceFailed": "Kunne ikke omdøbe ansigtet: {{errorMessage}}",
"trainFailed": "Kunne ikke træne: {{errorMessage}}",
"updateFaceScoreFailed": "Kunne ikke opdatere ansigtets score: {{errorMessage}}"
}
},
"deleteFaceAttempts": {
"desc_one": "Er du sikker på, at du vil slette {{count}} ansigt? Denne handling kan ikke fortrydes.",
"desc_other": "Er du sikker på, at du vil slette {{count}} ansigter? Denne handling kan ikke fortrydes.",
"title": "Slet ansigter"
},
"collections": "Samlinger",
"deleteFaceLibrary": {
"title": "Slet navn",
"desc": "Er du sikker på, at du vil slette samlingen {{name}}? Dette vil permanent slette alle tilknyttede ansigter."
},
"imageEntry": {
"maxSize": "Maks. størrelse: {{size}} MB",
"validation": {
"selectImage": "Vælg venligst en billedfil."
},
"dropActive": "Slip billedet her…",
"dropInstructions": "Træk og slip eller indsæt et billede her eller klik for at vælge"
},
"nofaces": "Ingen tilgængelige ansigter",
"trainFaceAs": "Træn ansigt som:"
}

View File

@@ -14,8 +14,104 @@
"move": {
"clickMove": {
"label": "Klik i billedrammen for at centrere kameraet",
"enable": "Aktivér klik for at flytte"
"enable": "Aktivér klik for at flytte",
"disable": "Deaktiver klik for at flytte"
},
"left": {
"label": "Flyt PTZ-kameraet til venstre"
},
"up": {
"label": "Flyt PTZ kamera op"
},
"down": {
"label": "Flyt PTZ-kameraet ned"
},
"right": {
"label": "Flyt PTZ-kameraet til højre"
}
}
},
"zoom": {
"in": {
"label": "Zoom PTZ-kamera ind"
},
"out": {
"label": "Zoom PTZ kamera ud"
}
},
"focus": {
"in": {
"label": "Focus PTZ kamera ind"
},
"out": {
"label": "Focus PTZ kamera ud"
}
},
"frame": {
"center": {
"label": "Klik på billedet for at centrere PTZ-kameraet"
}
},
"presets": "PTZ kamera forudindstillinger"
},
"camera": {
"enable": "Aktivér kamera",
"disable": "Deaktivér kamera"
},
"muteCameras": {
"enable": "Slå lyd på alle kameraer fra",
"disable": "Slå lyd på alle kameraer til"
},
"detect": {
"enable": "Aktiver detektering",
"disable": "Deaktiver detektering"
},
"recording": {
"enable": "Aktivér optagelse",
"disable": "Deaktiver optagelse"
},
"snapshots": {
"enable": "Aktivér Snapshots",
"disable": "Deaktivér Snapshots"
},
"snapshot": {
"takeSnapshot": "Hent instant snapshot",
"noVideoSource": "Ingen videokilde til snapshot.",
"captureFailed": "Kunne ikke tage snapshot.",
"downloadStarted": "Hentning af snapshot startet."
},
"audioDetect": {
"enable": "Aktiver lyddetektor",
"disable": "Deaktiver lyddetektor"
},
"transcription": {
"enable": "Aktiver Live Audio Transkription",
"disable": "Deaktiver Live Audio Transkription"
},
"autotracking": {
"enable": "Aktiver Autotracking",
"disable": "Deaktiver Autotracking"
},
"streamStats": {
"enable": "Vis Stream statistik",
"disable": "Skjul Stream statistik"
},
"manualRecording": {
"title": "Manuel optagelse",
"tips": "Hent et øjebliksbillede eller start en manuel begivenhed baseret på dette kameras indstillinger for optagelse af opbevaring.",
"playInBackground": {
"label": "Afspil i baggrunden",
"desc": "Aktiver denne mulighed for at fortsætte streaming, når afspilleren er skjult."
},
"showStats": {
"label": "Vis statistik",
"desc": "Aktiver denne mulighed for at vise streamstatistikker som en overlejring på kameraets feed."
},
"debugView": "Debug View",
"start": "Start on-demand optagelse",
"started": "Start manuel optagelse.",
"failedToStart": "Manuel optagelse fejlede.",
"recordDisabledTips": "Da optagelsen er deaktiveret eller begrænset i konfig for dette kamera, gemmes der kun et snapshot.",
"end": "Afslut manuel optagelse",
"ended": "Afsluttet manuel optagelse."
}
}

View File

@@ -1,5 +1,5 @@
{
"filter": "Filter",
"filter": "Filtrer",
"export": "Eksporter",
"calendar": "Kalender",
"filters": "Filtere",

View File

@@ -8,5 +8,12 @@
"filterInformation": "Filter information",
"filterActive": "Filtre aktiv",
"clear": "Ryd søgning"
},
"trackedObjectId": "Sporet genstands-ID",
"filter": {
"label": {
"cameras": "Kameraer",
"zones": "Områder"
}
}
}

View File

@@ -9,6 +9,11 @@
"enrichments": "Indstillinger for berigelser - Frigate",
"masksAndZones": "Maske- og zoneeditor - Frigate",
"motionTuner": "Bevægelsesjustering - Frigate",
"general": "Brugergrænsefladeindstillinger - Frigate"
"general": "Brugergrænsefladeindstillinger - Frigate",
"frigatePlus": "Frigate+ Indstillinger - Frigate",
"notifications": "Notifikations indstillinger - Frigate"
},
"menu": {
"ui": "Brugergrænseflade"
}
}

View File

@@ -84,7 +84,8 @@
},
"inProgress": "Im Gange",
"invalidStartTime": "Ungültige Startzeit",
"invalidEndTime": "Ungültige Endzeit"
"invalidEndTime": "Ungültige Endzeit",
"never": "Nie"
},
"button": {
"save": "Speichern",
@@ -178,7 +179,8 @@
"lt": "Lietuvių (Litauisch)",
"bg": "Български (bulgarisch)",
"gl": "Galego (Galicisch)",
"id": "Bahasa Indonesia (Indonesisch)"
"id": "Bahasa Indonesia (Indonesisch)",
"hr": "Hrvatski (Kroatisch)"
},
"appearance": "Erscheinung",
"theme": {

View File

@@ -6,7 +6,8 @@
"content": "Diese Seite wird in {{countdown}} Sekunde(n) aktualisiert.",
"button": "Neuladen erzwingen"
},
"button": "Neustarten"
"button": "Neustarten",
"description": "Dies wird Frigate kurz stoppen, während es neu startet."
},
"explore": {
"plus": {

View File

@@ -1,8 +1,9 @@
{
"description": {
"placeholder": "Gib einen Name für diese Kollektion ein",
"addFace": "Füge der Gesichtsbibliothek eine neue Sammlung hinzu, indem du ein Bild hochlädst.",
"invalidName": "Ungültiger Name. Namen dürfen nur Buchstaben, Zahlen, Leerzeichen, Apostrophe, Unterstriche und Bindestriche enthalten."
"addFace": "Füge der Gesichtsbibliothek eine neue Sammlung hinzu, indem du ein erstes Bild hochlädst.",
"invalidName": "Ungültiger Name. Namen dürfen nur Buchstaben, Zahlen, Leerzeichen, Apostrophe, Unterstriche und Bindestriche enthalten.",
"nameCannotContainHash": "Der Name darf keine # enthalten."
},
"details": {
"person": "Person",

View File

@@ -178,6 +178,16 @@
"restricted": {
"title": "Keine Kamera verfügbar",
"description": "Sie haben keine Berechtigung, Kameras in dieser Gruppe anzuzeigen."
},
"default": {
"title": "Keine Kameras konfiguriert",
"description": "Zum Start eine Kamera mit Frigate verbinden.",
"buttonText": "Kamera hinzufügen"
},
"group": {
"title": "Keine Kameras in der Gruppe",
"description": "Diese Kameragruppe hat keine zugewiesenen oder aktiven Kameras.",
"buttonText": "Gruppen verwalten"
}
},
"snapshot": {

View File

@@ -49,12 +49,12 @@
"desc": "Standardmäßig werden die letzten Warnmeldungen auf dem Live-Dashboard als kurze Videoschleifen abgespielt. Deaktiviere diese Option, um nur ein statisches Bild der letzten Warnungen auf diesem Gerät/Browser anzuzeigen."
},
"automaticLiveView": {
"desc": "Zeigt automatisch das Live-Bild einer Kamera an, wenn eine Aktivität erkannt wird. Ist diese Option deaktiviert, werden Kamerabilder im Live-Dashboard nur einmal pro Minute aktualisiert.",
"desc": "Automatisch zur Live-Ansicht einer Kamera wechseln, wenn eine Aktivität erkannt wird. Wenn diese Option deaktiviert ist, werden statische Kamerabilder auf dem Live-Dashboard nur einmal pro Minute aktualisiert.",
"label": "Automatische Live Ansicht"
},
"displayCameraNames": {
"label": "Immer Namen der Kamera anzeigen",
"desc": "Kamerabezeichnung immer im einem Chip im Live-View-Dashboard r mehrere Kameras anzeigen."
"desc": "Zeige immer die Kameranamen in einem Chip im Dashboard der Mehrkamera-Live-Ansicht an."
},
"liveFallbackTimeout": {
"label": "Live Player Ausfallzeitlimit",
@@ -276,6 +276,11 @@
},
"error": {
"mustBeFinished": "Polygonzeichnung muss vor dem Speichern abgeschlossen sein."
},
"type": {
"zone": "Zone",
"motion_mask": "Bewegungsmaske",
"object_mask": "Objektmaske"
}
},
"speed": {
@@ -544,7 +549,7 @@
"placeholder": "Passwort eingeben",
"requirements": {
"title": "Passwort Anforderungen:",
"length": "Mindestens 8 Zeichen",
"length": "Mindestens 12 Zeichen",
"uppercase": "Mindestens ein Großbuchstabe",
"digit": "Mindestens eine Ziffer",
"special": "Mindestens ein Sonderzeichen (!@#$%^&*(),.?\":{}|<>)"
@@ -1210,7 +1215,7 @@
"restreamingWarning": "Die Reduzierung der Verbindungen zur Kamera für den Aufzeichnungsstream kann zu einer geringfügigen Erhöhung der CPU-Auslastung führen.",
"brands": {
"reolink-rtsp": "Reolink RTSP wird nicht empfohlen. Aktivieren Sie HTTP in den Firmware-Einstellungen der Kamera und starten Sie den Assistenten neu.",
"reolink-http": "Für Reolink-HTTP-Streams sollten sie FFmpeg verwenden, um eine bessere Kompatibilität zu gewährleisten. Aktivieren Sie für diesen Stream die Option „Stream-Kompatibilitätsmodus verwenden“."
"reolink-http": "Reolink-HTTP-Streams sollten für eine bessere Kompatibilität FFmpeg verwenden. Aktivieren Sie für diesen Stream die Option „Stream-Kompatibilitätsmodus verwenden“."
},
"dahua": {
"substreamWarning": "Substream 1 ist auf eine niedrige Auflösung festgelegt. Viele Kameras von Dahua / Amcrest / EmpireTech unterstützen zusätzliche Substreams, die in den Kameraeinstellungen aktiviert werden müssen. Es wird empfohlen, diese Streams zu überprüfen und zu nutzen, sofern sie verfügbar sind."
@@ -1265,11 +1270,11 @@
"title": "Kamera-Einstellungen überprüfen",
"object_descriptions": {
"title": "Generative KI Objektbeschreibungen",
"desc": "Aktiviere/deaktiviere vorübergehend die Objektbeschreibungen durch Generative KI für diese Kamera. Wenn diese Option deaktiviert ist, werden keine KI-generierten Beschreibungen für verfolgte Objekte dieser Kamera erstellt."
"desc": "Aktiviere/deaktiviere vorübergehend die Objektbeschreibungen durch generative KI für diese Kamera. Wenn diese Option deaktiviert ist, werden keine KI-generierten Beschreibungen für verfolgte Objekte dieser Kamera erstellt."
},
"review_descriptions": {
"title": "Generative KI Review Beschreibungen",
"desc": "Generative KI Review Beschreibungen für diese Kamera vorübergehend aktivieren/deaktivieren. Wenn diese Option deaktiviert ist, werden für die Review Elemente dieser Kamera keine KI-generierten Beschreibungen angefordert."
"desc": "Aktivieren/deaktivieren Sie vorübergehend die generativen KI-Überprüfungsbeschreibungen für diese Kamera, bis Frigate neu gestartet wird. Wenn diese Option deaktiviert ist, werden für Überprüfungselemente auf dieser Kamera keine KI-generierten Beschreibungen angefordert."
},
"review": {
"title": "Überprüfung",

View File

@@ -75,7 +75,8 @@
"s": "{{time}}δ",
"inProgress": "Σε εξέλιξη",
"invalidStartTime": "Μη έγκυρη ώρα έναρξης",
"invalidEndTime": "Μη έγκυρη ώρα λήξης"
"invalidEndTime": "Μη έγκυρη ώρα λήξης",
"never": "Ποτέ"
},
"menu": {
"live": {

View File

@@ -2,6 +2,13 @@
"documentTitle": "Μοντέλα Ταξινόμησης - Frigate",
"details": {
"scoreInfo": "Η βαθμολογία αντιπροσωπεύει την κατά μέσο όρο ταξινομική εμπιστοσύνη μεταξύ όλων των ανιχνεύσεων αυτού του αντικειμένου.",
"none": "Καμία"
"none": "Καμία",
"unknown": "Άγνωστο"
},
"button": {
"deleteClassificationAttempts": "Διαγραφή Εικόνων Ταξινόμησης",
"deleteImages": "Διαγραφή Εικόνων",
"trainModel": "Εκπαίδευση Μοντέλου",
"addClassification": "Προσθήκη Ταξινόμησης"
}
}

View File

@@ -9,7 +9,10 @@
"empty": {
"alert": "Δεν υπάρχουν ειδοποιήσεις για εξέταση",
"detection": "Δεν υπάρχουν εντοπισμοί για εξέταση",
"motion": "Δεν βρέθηκαν στοιχεία κίνησης"
"motion": "Δεν βρέθηκαν στοιχεία κίνησης",
"recordingsDisabled": {
"title": "Οι καταγραφές πρέπει να είναι ενεργοποιημένες"
}
},
"timeline": "Χρονολόγιο",
"timeline.aria": "Επιλογή χρονοσειράς",

View File

@@ -193,6 +193,7 @@
"yue": "粵語 (Cantonese)",
"th": "ไทย (Thai)",
"ca": "Català (Catalan)",
"hr": "Hrvatski (Croatian)",
"sr": "Српски (Serbian)",
"sl": "Slovenščina (Slovenian)",
"lt": "Lietuvių (Lithuanian)",

View File

@@ -1,6 +1,7 @@
{
"restart": {
"title": "Are you sure you want to restart Frigate?",
"description": "This will briefly stop Frigate while it restarts.",
"button": "Restart",
"restarting": {
"title": "Frigate is Restarting",

View File

@@ -2,7 +2,8 @@
"description": {
"addFace": "Add a new collection to the Face Library by uploading your first image.",
"placeholder": "Enter a name for this collection",
"invalidName": "Invalid name. Names can only include letters, numbers, spaces, apostrophes, underscores, and hyphens."
"invalidName": "Invalid name. Names can only include letters, numbers, spaces, apostrophes, underscores, and hyphens.",
"nameCannotContainHash": "Name cannot contain #."
},
"details": {
"timestamp": "Timestamp",

View File

@@ -468,6 +468,11 @@
}
},
"polygonDrawing": {
"type": {
"zone": "zone",
"motion_mask": "motion mask",
"object_mask": "object mask"
},
"removeLastPoint": "Remove last point",
"reset": {
"label": "Clear all points"
@@ -728,10 +733,7 @@
},
"requirements": {
"title": "Password requirements:",
"length": "At least 8 characters",
"uppercase": "At least one uppercase letter",
"digit": "At least one digit",
"special": "At least one special character (!@#$%^&*(),.?\":{}|<>)"
"length": "At least 12 characters"
},
"match": "Passwords match",
"notMatch": "Passwords don't match"

View File

@@ -90,7 +90,8 @@
},
"inProgress": "En progreso",
"invalidStartTime": "Hora de inicio no válida",
"invalidEndTime": "Hora de finalización no válida"
"invalidEndTime": "Hora de finalización no válida",
"never": "Nunca"
},
"menu": {
"settings": "Ajustes",
@@ -152,7 +153,8 @@
"bg": "Български (Búlgaro)",
"gl": "Galego (Gallego)",
"id": "Bahasa Indonesia (Indonesio)",
"ur": "اردو (Urdu)"
"ur": "اردو (Urdu)",
"hr": "Hrvatski (Croata)"
},
"appearance": "Apariencia",
"darkMode": {
@@ -267,7 +269,8 @@
"show": "Mostrar {{item}}",
"ID": "ID",
"none": "Ninguno",
"all": "Todas"
"all": "Todas",
"other": "Otro"
},
"role": {
"title": "Rol",

View File

@@ -6,7 +6,8 @@
"content": "Esta página se recargará en {{countdown}} segundos."
},
"title": "¿Estás seguro de que quieres reiniciar Frigate?",
"button": "Reiniciar"
"button": "Reiniciar",
"description": "Esto detendrá brevemente Frigate mientras se reinicia."
},
"explore": {
"plus": {

View File

@@ -129,13 +129,13 @@
"classes": {
"label": "Clases",
"all": {
"title": "Todas las Clases"
"title": "Todas las clases"
},
"count_one": "{{count}} Clase",
"count_other": "{{count}} Clases"
},
"attributes": {
"label": "Clasificación de Atributos",
"label": "Atributos de clasificación",
"all": "Todos los Atributos"
}
}

View File

@@ -62,7 +62,7 @@
"details": {
"scoreInfo": "La puntuación representa la confianza media de clasificación en todas las detecciones de este objeto.",
"unknown": "Desconocido",
"none": "Nada"
"none": "Ninguna"
},
"categorizeImage": "Clasificar Imagen",
"menu": {

View File

@@ -14,5 +14,5 @@
"documentTitle": "Editor de Configuración - Frigate",
"confirm": "¿Salir sin guardar?",
"safeConfigEditor": "Editor de Configuración (Modo Seguro)",
"safeModeDescription": "Frigate esta en modo seguro debido a un error en la configuración."
"safeModeDescription": "Frigate esta en modo seguro debido a un error en la validación de la configuración."
}

View File

@@ -2,7 +2,8 @@
"description": {
"addFace": "Agregar una nueva colección a la Biblioteca de Rostros subiendo tu primera imagen.",
"placeholder": "Introduce un nombre para esta colección",
"invalidName": "Nombre incorrecto. Los nombres solo pueden incluir letras, números, espacios, apóstrofes, guiones bajos, y guiones."
"invalidName": "Nombre incorrecto. Los nombres solo pueden incluir letras, números, espacios, apóstrofes, guiones bajos, y guiones.",
"nameCannotContainHash": "El nombre no puede contener #."
},
"details": {
"person": "Persona",

View File

@@ -178,6 +178,16 @@
"restricted": {
"title": "No hay cámaras disponibles",
"description": "No tiene permiso para ver ninguna cámara en este grupo."
},
"default": {
"title": "No hay Cámaras Configuradas",
"description": "Comienza conectando una cámara a Frigate.",
"buttonText": "Añadir Cámara"
},
"group": {
"title": "No hay Cámaras en Grupo",
"description": "Estae grupo de cámaras no tiene cámaras asignadas o habilitadas.",
"buttonText": "Gestionar Grupos"
}
},
"snapshot": {

View File

@@ -52,7 +52,7 @@
},
"title": "Panel en directo",
"displayCameraNames": {
"label": "Siempre mostrar nombres de las Camaras",
"label": "Siempre mostrar nombres de las Cámaras",
"desc": "Siempre mostrar nombres de cámaras en la vista en vivo multi-cámara."
},
"liveFallbackTimeout": {
@@ -276,7 +276,12 @@
"reset": {
"label": "Borrar todos los puntos"
},
"removeLastPoint": "Eliminar el último punto"
"removeLastPoint": "Eliminar el último punto",
"type": {
"zone": "zona",
"motion_mask": "máscara de movimiento",
"object_mask": "máscara de objeto"
}
},
"speed": {
"error": {
@@ -548,7 +553,7 @@
"hide": "Ocultar contraseña",
"requirements": {
"title": "Requisitos de contraseña:",
"length": "Al menos 8 caracteres",
"length": "Al menos 12 caracteres",
"uppercase": "Al menos una mayúscula",
"digit": "Al menos un número",
"special": "Al menos un caracter especial (!@#$%^&*(),.?\":{}|<>)"
@@ -708,7 +713,7 @@
"unsavedChanges": "Cambios en la configuración de Frigate+ no guardados"
},
"enrichments": {
"title": "Configuración de Análisis Avanzado",
"title": "Configuración de Enriquecimientos",
"unsavedChanges": "Cambios sin guardar en la configuración de Análisis Avanzado",
"birdClassification": {
"title": "Clasificación de Aves",
@@ -1191,11 +1196,11 @@
"title": "Configuración de revisión de la cámara",
"object_descriptions": {
"title": "Descripciones de objetos de IA generativa",
"desc": "Habilite o deshabilite temporalmente las descripciones de objetos generadas por IA para esta cámara. Al deshabilitarlas, no se solicitarán descripciones generadas por IA para los objetos rastreados en esta cámara."
"desc": "Habilite o deshabilite temporalmente las descripciones de objetos generadas por IA para esta cámara hasta que Frigate se reinicie. Al deshabilitarlas, no se solicitarán descripciones generadas por IA para los objetos rastreados en esta cámara."
},
"review_descriptions": {
"title": "Revisión de descripciones de IA generativa",
"desc": "Habilita o deshabilita temporalmente las revisión de descripciones generadas por IA para esta cámara. Al deshabilitarlas, no se solicitarán descripciones generadas por IA para los elementos de revisión de esta cámara."
"desc": "Habilita o deshabilita temporalmente las revisión de descripciones generadas por IA para esta cámara hasta que Frigate se reinicie. Al deshabilitarlas, no se solicitarán descripciones generadas por IA para los elementos de revisión de esta cámara."
},
"review": {
"title": "Revisar",

View File

@@ -90,7 +90,9 @@
"series": {
"go2rtc": "go2rtc",
"recording": "grabación",
"review_segment": "revisar segmento"
"review_segment": "revisar segmento",
"embeddings": "embeddings",
"audio_detector": "detector de audio"
}
}
},

View File

@@ -75,7 +75,8 @@
"12hour": "dd. MMM yyyy, hh:mm aaa",
"24hour": "dd. MMM yyyy, HH:mm"
},
"formattedTimestampMonthDay": "dd. MMM"
"formattedTimestampMonthDay": "dd. MMM",
"never": "Mitte kunagi"
},
"menu": {
"user": {
@@ -138,7 +139,8 @@
"bg": "Български (bulgaaria keel)",
"gl": "Galego (galeegi keel)",
"id": "Bahasa Indonesia (indoneesia keel)",
"ur": "اردو (urdu keel)"
"ur": "اردو (urdu keel)",
"hr": "Hrvatski (horvaadi keel)"
},
"system": "Süsteem",
"systemMetrics": "Süsteemi meetrika",

View File

@@ -6,7 +6,8 @@
"title": "Frigate käivitub uuesti",
"content": "See leht laaditakse uuesti {{countdown}} sekundi pärast.",
"button": "Laadi uuesti kohe"
}
},
"description": "Järgnevaga Frigate uuesti käivitamise ajaks lõpetab korraks töö."
},
"search": {
"saveSearch": {

View File

@@ -30,11 +30,21 @@
"stationary": "{{label}} jäi paigale",
"active": "{{label}} muutus aktiivseks",
"entered_zone": "{{label}} sisenes tsooni {{zones}}",
"visible": "{{label}} on tuvastatud"
"visible": "{{label}} on tuvastatud",
"header": {
"zones": "Tsoonid",
"ratio": "Suhtarv",
"area": "Ala",
"score": "Punktiskoor"
}
},
"title": "Jälgimise üksikasjad",
"noImageFound": "Selle ajatempli kohta ei leidu pilti.",
"createObjectMask": "Loo objektimask"
"createObjectMask": "Loo objektimask",
"carousel": {
"previous": "Eelmine slaid",
"next": "Järgmine slaid"
}
},
"documentTitle": "Avasta - Frigate",
"generativeAI": "Generatiivne tehisaru",
@@ -63,12 +73,15 @@
"tips": {
"mismatch_one": "Tuvastasin {{count}} võõra objekti ja need on lisatud ülevaatamiseks. Need objektid kas ei ole piisavad häire või tuvastamise jaoks, aga ka võivad juba olla eemaldatud või kustutatud.",
"mismatch_other": "Tuvastasin {{count}} võõrast objekti ja need on lisatud ülevaatamiseks. Need objektid kas ei ole piisavad häire või tuvastamise jaoks, aga ka võivad juba olla eemaldatud või kustutatud."
}
},
"title": "Vaata objekti üksikasju",
"desc": "Vaata objekti üksikasju"
},
"snapshotScore": {
"label": "Hetkvõttete punktiskoor"
},
"regenerateFromSnapshot": "Loo uuesti hetkvõttest",
"timestamp": "Ajatampel"
}
},
"trackedObjectDetails": "Jälgitava objekti üksikasjad"
}

View File

@@ -10,7 +10,8 @@
"objectDetection": "Objektide tuvastamine",
"audioDetection": "Heli tuvastus",
"transcription": "Heli üleskirjutus",
"snapshots": "Hetkvõtted"
"snapshots": "Hetkvõtted",
"autotracking": "Automaatne jälgimine"
},
"documentTitle": "Otseülekanne - Frigate",
"documentTitle.withCamera": "{{camera}} - Otseülekanne - Frigate",
@@ -95,6 +96,10 @@
"playInBackground": {
"label": "Esita taustal",
"tips": "Selle eelistusega saad määrata, et voogedastus jääb tööle ka siis, kui meesiaesitaja on suletud."
},
"audio": {
"available": "Selles voogedastuses on heliriba saadaval",
"unavailable": "Selles voogedastuses pole heliriba saadaval"
}
},
"notifications": "Teavitused",
@@ -129,6 +134,25 @@
"restricted": {
"title": "Ühtegi kaamerat pole saadaval",
"description": "Sul pole õigust ühegi selle grupi kaamera vaatamiseks."
},
"title": "Ühtegi kaamerat pole seadistatud",
"description": "Alustamiseks ühenda mõni kaamera Frigate'iga."
},
"effectiveRetainMode": {
"modes": {
"active_objects": "Aktiivsed objektid",
"all": "Kõik",
"motion": "Liikumine"
}
},
"editLayout": {
"label": "Muuda paigutust",
"group": {
"label": "Muuda kaameragruppi"
},
"exitEdit": "Välju muutmisest"
},
"history": {
"label": "Näita varasemat sisu"
}
}

View File

@@ -4,10 +4,23 @@
"password": "Salasõna",
"passwordPlaceholder": "Valikuline",
"customUrlPlaceholder": "rtsp://kasutajanimi:salasõna@host:port/asukoht",
"connectionSettings": "Ühenduse seadistused"
"connectionSettings": "Ühenduse seadistused",
"port": "Port",
"username": "Kasutajanimi",
"usernamePlaceholder": "Valikuline"
},
"step3": {
"streamUrlPlaceholder": "rtsp://kasutajanimi:salasõna@host:port/asukoht"
"streamUrlPlaceholder": "rtsp://kasutajanimi:salasõna@host:port/asukoht",
"url": "Võrguaadress",
"resolution": "Resolutsioon",
"quality": "Kvaliteet",
"roles": "Rollid",
"roleLabels": {
"record": "Salvestamine",
"audio": "Heliriba"
},
"connected": "Ühendatud",
"featuresTitle": "Funktsionaalsused"
},
"steps": {
"probeOrSnapshot": "Võta proov või tee hetkvõte"
@@ -15,7 +28,34 @@
"step2": {
"testing": {
"fetchingSnapshot": "Laadin kaamera hetkvõtet alla..."
}
},
"retry": "Proovi uuesti",
"manufacturer": "Tootja",
"model": "Mudel",
"firmware": "Püsivara",
"profiles": "Profiilid",
"presets": "Eelseadistused",
"useCandidate": "Kasuta",
"uriCopy": "Kopeeri",
"connected": "Ühendatud"
},
"testResultLabels": {
"resolution": "Resolutsioon",
"video": "Video",
"audio": "Heliriba",
"fps": "Kaadrisagedus"
},
"step4": {
"reload": "Laadi uuesti",
"connecting": "Ühendan…",
"valid": "Kehtiv",
"failed": "Ebaõnnestunud",
"connectStream": "Ühenda",
"connectingStream": "Ühendan",
"disconnectStream": "Katkesta ühendus",
"roles": "Rollid",
"none": "Määramata",
"error": "Viga"
}
},
"users": {
@@ -29,7 +69,10 @@
}
},
"table": {
"password": "Lähtesta salasõna"
"password": "Lähtesta salasõna",
"username": "Kasutajanimi",
"actions": "Tegevused",
"role": "Roll"
},
"dialog": {
"form": {
@@ -53,7 +96,7 @@
"hide": "Peida salasõna",
"requirements": {
"title": "Salasõna reeglid:",
"length": "Vähemalt 8 tähemärki",
"length": "Vähemalt 12 tähemärki",
"uppercase": "Vähemalt üks suurtäht",
"digit": "Vähemalt üks number",
"special": "Vähemalt üks erimärk (!@#$%^&*(),.?\":{}|<>)"
@@ -70,6 +113,9 @@
"currentPassword": {
"title": "Senine salasõna",
"placeholder": "Sisesta oma senine salasõna"
},
"user": {
"title": "Kasutajanimi"
}
},
"createUser": {
@@ -84,12 +130,42 @@
"currentPasswordRequired": "Senine salasõna on vajalik",
"incorrectCurrentPassword": "Senine salasõna pole õige",
"passwordVerificationFailed": "Salasõna kontrollimine ei õnnestunud"
},
"changeRole": {
"roleInfo": {
"admin": "Peakasutaja",
"viewer": "Vaataja"
}
}
}
},
"title": "Kasutajad"
},
"debug": {
"boundingBoxes": {
"desc": "Näita jälgitavate objektide ümber märgiskaste"
},
"title": "Silumine ja veaotsing",
"debugging": "Veaotsing ja silumine",
"audio": {
"title": "Heliriba",
"score": "punktiskoor"
},
"timestamp": {
"title": "Ajatempel"
},
"zones": {
"title": "Tsoonid"
},
"regions": {
"title": "Alad"
},
"paths": {
"title": "Asukohad"
},
"objectShapeFilterDrawing": {
"score": "Punktiskoor",
"ratio": "Suhtarv",
"area": "Ala"
}
},
"documentTitle": {
@@ -113,10 +189,31 @@
"automaticLiveView": {
"label": "Automaatne otseülekande vaade"
}
},
"calendar": {
"title": "Kalender",
"firstWeekday": {
"sunday": "Pühapäev",
"monday": "Esmaspäev",
"label": "Esimene nädalapäev"
}
},
"storedLayouts": {
"title": "Salvestatud paigutused"
},
"recordingsViewer": {
"title": "Salvestuste vaataja"
}
},
"cameraManagement": {
"backToSettings": "Tagasi kaameraseadistuste juurde"
"backToSettings": "Tagasi kaameraseadistuste juurde",
"cameraConfig": {
"enabled": "Kasutusel",
"ffmpeg": {
"pathPlaceholder": "rtsp://...",
"roles": "Rollid"
}
}
},
"notification": {
"notificationSettings": {
@@ -130,6 +227,16 @@
"success": {
"settingSaved": "Teavituste seadistused on salvestatud."
}
},
"title": "Teavitused",
"email": {
"title": "E-post"
},
"cameras": {
"title": "Kaamerad"
},
"suspendTime": {
"suspend": "Peata arvuti töö"
}
},
"frigatePlus": {
@@ -145,20 +252,48 @@
"cleanCopySnapshots": "<code>clean_copy</code> Hetkvõtted",
"camera": "Kaamera"
}
},
"modelInfo": {
"plusModelType": {
"userModel": "Peenhäälestatud"
},
"cameras": "Kaamerad"
}
},
"masksAndZones": {
"zones": {
"point_one": "{{count}} punkt",
"point_other": "{{count}} punkti"
"point_other": "{{count}} punkti",
"label": "Tsoonid",
"desc": {
"documentation": "Dokumentatsioon"
},
"name": {
"title": "Nimi"
},
"inertia": {
"title": "Inerts"
},
"objects": {
"title": "Objektid"
}
},
"motionMasks": {
"point_one": "{{count}} punkt",
"point_other": "{{count}} punkti"
"point_other": "{{count}} punkti",
"desc": {
"documentation": "Dokumentatsioon"
}
},
"objectMasks": {
"point_one": "{{count}} punkt",
"point_other": "{{count}} punkti"
"point_other": "{{count}} punkti",
"desc": {
"documentation": "Dokumentatsioon"
},
"objects": {
"title": "Objektid"
}
}
},
"roles": {
@@ -167,6 +302,21 @@
"userRolesUpdated_one": "{{count}} selle rolliga kasutaja on nüüd määratud Vaatajaks, kellel on ligipääs kõikidele kaameratele.",
"userRolesUpdated_other": "{{count}} selle rolliga kasutajat on nüüd määratud Vaatajaks, kellel on ligipääs kõikidele kaameratele."
}
},
"table": {
"role": "Roll",
"cameras": "Kaamerad",
"actions": "Tegevused"
},
"dialog": {
"deleteRole": {
"deleting": "Kustutan..."
},
"form": {
"cameras": {
"title": "Kaamerad"
}
}
}
},
"menu": {
@@ -178,7 +328,8 @@
"users": "Kasutajad",
"roles": "Rollid",
"notifications": "Teavitused",
"frigateplus": "Frigate+"
"frigateplus": "Frigate+",
"cameraReview": "Ülevaatamine"
},
"dialog": {
"unsavedChanges": {
@@ -189,5 +340,84 @@
"cameraSetting": {
"camera": "Kaamera",
"noCamera": "Kaamerat pole"
},
"enrichments": {
"semanticSearch": {
"reindexNow": {
"confirmButton": "Indekseeri uuesti",
"label": "Indekseeri uuesti kohe"
},
"modelSize": {
"small": {
"title": "väike"
},
"large": {
"title": "suur"
}
},
"title": "Semantiline otsing"
},
"faceRecognition": {
"modelSize": {
"small": {
"title": "väike"
},
"large": {
"title": "suur"
}
}
},
"birdClassification": {
"title": "Lindude klassifikatsioon"
}
},
"cameraReview": {
"review": {
"title": "Ülevaatamine",
"alerts": "Hoiatused ",
"detections": "Tuvastamise tulemused "
}
},
"motionDetectionTuner": {
"Threshold": {
"title": "Lävi"
}
},
"triggers": {
"documentTitle": "Päästikud",
"management": {
"title": "Päästikud"
},
"table": {
"name": "Nimi",
"type": "Tüüp",
"content": "Sisu",
"threshold": "Lävi",
"actions": "Tegevused",
"edit": "Muuda"
},
"type": {
"thumbnail": "Pisipilt",
"description": "Kirjeldus"
},
"dialog": {
"form": {
"name": {
"title": "Nimi"
},
"type": {
"title": "Tüüp"
},
"content": {
"title": "Sisu"
},
"threshold": {
"title": "Lävi"
},
"actions": {
"title": "Tegevused"
}
}
}
}
}

View File

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

View File

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

View File

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

View File

@@ -90,7 +90,8 @@
},
"inProgress": "En cours",
"invalidStartTime": "Heure de début invalide",
"invalidEndTime": "Heure de fin invalide"
"invalidEndTime": "Heure de fin invalide",
"never": "Jamais"
},
"button": {
"apply": "Appliquer",
@@ -174,7 +175,8 @@
"bg": "Български (Bulgare)",
"gl": "Galego (Galicien)",
"id": "Bahasa Indonesia (Indonésien)",
"ur": "اردو (Ourdou)"
"ur": "اردو (Ourdou)",
"hr": "Hrvatski (Croate)"
},
"appearance": "Apparence",
"darkMode": {
@@ -279,7 +281,8 @@
"show": "Afficher {{item}}",
"ID": "ID",
"none": "Aucun",
"all": "Tous"
"all": "Tous",
"other": "Autre"
},
"unit": {
"speed": {

View File

@@ -6,7 +6,8 @@
"content": "Cette page sera rechargée dans {{countdown}} secondes.",
"button": "Forcer l'actualisation maintenant"
},
"button": "Redémarrer"
"button": "Redémarrer",
"description": "Frigate s'arrêtera momentanément pour redémarrer."
},
"explore": {
"plus": {

View File

@@ -2,7 +2,8 @@
"description": {
"addFace": "Ajoutez une nouvelle collection à la bibliothèque de visages en téléversant votre première image.",
"placeholder": "Saisissez un nom pour cette collection.",
"invalidName": "Nom invalide. Les noms ne peuvent contenir que des lettres, des chiffres, des espaces, des apostrophes, des traits de soulignement et des tirets."
"invalidName": "Nom invalide. Les noms ne peuvent contenir que des lettres, des chiffres, des espaces, des apostrophes, des traits de soulignement et des tirets.",
"nameCannotContainHash": "Le nom ne peut pas contenir le caractère #."
},
"details": {
"person": "Personne",

View File

@@ -178,6 +178,16 @@
"restricted": {
"title": "Aucune caméra disponible",
"description": "Vous n'avez pas la permission de visionner les caméras de ce groupe."
},
"default": {
"title": "Aucune caméra configurée",
"description": "Pour commencer, connectez une caméra à Frigate.",
"buttonText": "Ajouter une caméra"
},
"group": {
"title": "Aucune caméra dans le groupe",
"description": "Ce groupe de caméras ne contient aucune caméra assignée ou activée.",
"buttonText": "Gérer les groupes"
}
},
"snapshot": {

View File

@@ -366,6 +366,11 @@
"snapPoints": {
"true": "Points d'accrochage",
"false": "Ne pas réunir les points"
},
"type": {
"zone": "zone",
"motion_mask": "masque de mouvement",
"object_mask": "masque d'objet"
}
},
"loiteringTime": {
@@ -649,7 +654,7 @@
"hide": "Masquer le mot de passe",
"requirements": {
"title": "Critères du mot de passe :",
"length": "Au moins 8 caractères",
"length": "Au moins 12 caractères",
"uppercase": "Au moins une lettre majuscule",
"digit": "Au moins un chiffre",
"special": "Au moins un caractère spécial (!@#$%^&*(),.?\":{}|<>)"
@@ -1278,11 +1283,11 @@
"title": "Paramètres des activités caméra",
"object_descriptions": {
"title": "Descriptions d'objets par l'IA générative",
"desc": "Active ou désactive temporairement les descriptions d'objets générées par l'IA générative pour cette caméra. Lorsque cette option est désactivée, aucune description par l'IA n'est générée pour les objets suivis sur cette caméra."
"desc": "Activez ou désactivez temporairement les descriptions par IA générative jusqu'au redémarrage. Si désactivé, l'IA ne sera plus sollicitée pour décrire les objets suivis sur cette caméra."
},
"review_descriptions": {
"title": "Descriptions des activités par l'IA générative",
"desc": "Active ou désactive temporairement les descriptions par l'IA générative pour cette caméra. Lorsque cette option est désactivée, aucune description nouvelle n'est générée pour les activités sur cette caméra."
"desc": "Activez ou désactivez temporairement les descriptions d'activités par IA générative jusqu'au redémarrage. Si désactivé, l'IA ne sera plus sollicitée pour décrire les activités sur cette caméra."
},
"review": {
"title": "Activités",

View File

@@ -89,7 +89,10 @@
"processMemoryUsage": "Utilisation mémoire du processus",
"series": {
"go2rtc": "go2rtc",
"recording": "enregistrement"
"recording": "enregistrement",
"review_segment": "Segment d'activité",
"embeddings": "embeddings",
"audio_detector": "détecteur audio"
}
}
},
@@ -147,11 +150,11 @@
"cameraFfmpeg": "{{camName}} FFmpeg",
"cameraSkippedDetectionsPerSecond": "{{camName}} détections ignorées par seconde",
"overallDetectionsPerSecond": "Moyenne de détections par seconde",
"overallFramesPerSecond": "Moyenne d'images par seconde (IPS)",
"overallFramesPerSecond": "images par seconde (global)",
"overallSkippedDetectionsPerSecond": "Moyenne de détections ignorées par seconde",
"cameraCapture": "{{camName}} capture",
"cameraDetect": "{{camName}} détection",
"cameraFramesPerSecond": "{{camName}} images par seconde (IPS)",
"cameraFramesPerSecond": "{{camName}} images par seconde",
"cameraDetectionsPerSecond": "{{camName}} détections par seconde"
},
"overview": "Vue d'ensemble",

View File

@@ -81,7 +81,8 @@
},
"inProgress": "U tijeku",
"invalidStartTime": "Nevažeće vrijeme početka",
"invalidEndTime": "Nevažeće vrijeme završetka"
"invalidEndTime": "Nevažeće vrijeme završetka",
"never": "Nikad"
},
"menu": {
"live": {

View File

@@ -29,9 +29,9 @@
"camera": {
"birdseye": "Ptičja perspektiva",
"setting": {
"label": "Postavke streamanja kamere",
"title": "{{cameraName}} Streaming Postavke",
"desc": "Promijenite opcije streamanja uživo za nadzornu ploču ove grupe kamera. <em>Ove postavke su specifične za uređaj/preglednik.</em>",
"label": "Postavke emitiranja kamere",
"title": "{{cameraName}} Postavke Emitiranja",
"desc": "Promijenite opcije emitiranja uživo za nadzornu ploču ove grupe kamera. <em>Ove postavke su specifične za uređaj/preglednik.</em>",
"audioIsAvailable": "Za ovaj prijenos dostupan je zvuk",
"audioIsUnavailable": "Za ovaj prijenos zvuk nije dostupan",
"audio": {
@@ -39,15 +39,15 @@
"title": "Audio mora dolaziti s vaše kamere i biti konfiguriran u go2rtc za ovaj prijenos."
}
},
"stream": "Prijenos",
"placeholder": "Izaberi prijenos",
"stream": "Emitiranje",
"placeholder": "Izaberi emitiranje",
"streamMethod": {
"label": "Metoda Prijenosa",
"placeholder": "Odaberi metodu prijenosa",
"label": "Metoda emitiranja",
"placeholder": "Odaberi metodu emitiranja",
"method": {
"noStreaming": {
"label": "Nema Prijenosa",
"desc": "Slike s kamere bit će ažurirane samo jednom u minuti, a prijenos uživo neće biti dostupan."
"label": "Nema emitiranja",
"desc": "Slike s kamere bit će ažurirane samo jednom u minuti, a emitiranje uživo neće biti dostupno."
},
"smartStreaming": {
"desc": "Pametno emitiranje ažurirat će sliku vaše kamere jednom u minuti kada nema prepoznatljive aktivnosti kako bi uštedjelo propusnost i resurse. Kada se detektira aktivnost, slika će se besprijekorno prebaciti na prijenos uživo.",

View File

@@ -37,7 +37,7 @@
"noPreviewFoundFor": "Pretpregled nije nađen za {{cameraName}}",
"livePlayerRequiredIOSVersion": "iOS 17.1 ili noviji je potreban za ovu vrstu uživog prijenosa.",
"streamOffline": {
"title": "Stream nije dostupan",
"title": "Emitiranje nije dostupno",
"desc": "Slike nisu primljene sa {{cameraName}} <code>detect</code> stream-a, provjeri logove"
},
"toast": {

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