Allow audio classes to be grouped under a shared configured label.
Keep audio overrides separate from object labels and retain only the highest-scoring grouped detection.
Refs #23967
* refactor mqtt so that Frigate owns the transport lifecycle instead of delegating it to paho
* release the shutdown barrier on worker crash and replay retained publishes the broker never acked
* collapse in-flight retained values by topic and release the shutdown barrier from a finally
* replay the outage buffer before the publish queue so newer values are not reverted
* serve a segment startup ladder so seeks begin playing sooner
nginx-vod was handed one 10s segment per recording file, so every playlist start had to download and decode a full segment before the first frame. Declare real keyframe data per clip and let nginx cut short leading segments from it.
- add vod_bootstrap_segment_durations 1000/2000/4000 so each playlist starts with 1s/2s/4s segments before settling at 10s
- emit real clip-relative keyFrameDurations (plus firstKeyFrameOffset when nonzero) from the recording keyframe index; rows without an index keep the whole-clip declaration, the only safe cut without keyframe knowledge
- drop the manifest's segment_duration field, which was always inert: nginx-vod parses only camelCase segmentDuration
- rebuild the player source at the seek target, quantized to a 10s grid, so the ladder applies to every seek and seek URLs stay repeatable for nginx's mapping and response caches
- route the seek model, in-range checks, and the stale-report guard through the source window rather than the chunk range
- bridge repositioning seeks (>2s from the last played timestamp) through the preview player and hold the release anchor one commit, so neither path paints a stale frame
- clear a pending loading timer before replacing it; an orphaned timer escaped onPlaying's clearTimeout and flashed loading mid-playback
* keep recordings queries on their indexes
Several recordings queries degraded into full scans or large sorts on big databases: the planner ignored index order, or the query shape gave it nothing tight to seek on. Reshape them into bounded seeks and add the composite index the per-stream lookups need.
- index recordings on (camera, stream_type, start_time DESC) and drop the (camera, stream_type) index it supersedes
- walk the recordings summary day by day with EXISTS probes and per-camera MIN/MAX seeks, skipping ahead over empty gaps instead of bucketing every row for the requested cameras
- run the summary endpoint on the event loop rather than the threadpool
- bound the unavailable-recordings query by start_time per camera and merge the results in Python
- bound the expire query's start_time so it seeks the retention window instead of scanning a camera's whole history
- enumerate deleted cameras with one index seek each rather than a camera NOT IN (...) scan
- compute bandwidth with segment_size filtered in a CASE projection; as a WHERE predicate it baited the planner into the (camera, segment_size) index plus a full sort of the camera's history
- fall back to a 1000-segment window when the recent 100 are all zero-size, so an ingest glitch doesn't report zero bandwidth
- limit the needs_refresh count instead of counting every segment
- cover sub-only and sparse calendar days, midnight-spanning day attribution, multi-camera gap merging, deleted-camera expiry, and zero-size segment runs
* fix mypy
* add ptz controls to camera via wizard when onvif has already been probed
* i18n
* add e2e test
* backend add and remove subscriber
* tweaks
* turn on switch by default if pan and/or tilt capability is available
* fix test
* add sub stream recording with adaptive quality playback
Optionally record a second, lower bitrate stream alongside the main
recording stream via a `record_sub` input role and `record.sub` config block, with its own retention windows.
Recordings rows now carry the stream type plus the media details needed to serve both streams from one manifest: video codec, audio presence, audio codec and rate, and a record-time keyframe index.
Playback resolves coverage across both streams and merges them into a single VOD sequence, falling back to a discontinuity manifest with per-clip init segments when the media signatures differ. The player exposes a quality selector, and an auto governor picks the stream from stall time, bandwidth, codec support, and the save-data hint.
* fix tests and i18n
* Guard object processor queue handlers against unknown cameras
* Skip embeddings post processing for removed cameras
* End review segments for removed cameras
* Drop queued autotracker moves for removed cameras
* Release tracked event thumbnails when skipping a removed camera
* Add locked accessors for camera states
* Read camera states through the processor accessors
* Guard output and recording paths against cameras not yet known
* Resolve camera state once in ONVIF, notification, and transcription paths
* Add combined motion and object Birdseye mode
Add a motion_objects mode that keeps Birdseye active when motion is detected or a confirmed tracked object is present, including stationary objects.
Wire the mode through configuration, runtime commands, API schemas, documentation, and UI labels. Exclude false-positive trackers and add regression coverage for Birdseye activation and MQTT validation.
* Refactor Birdseye activity types as booleans
Replace combination-specific Birdseye modes with composable boolean activity types for motion, active objects, stationary objects, and continuous display.
Preserve legacy single-mode configuration and MQTT inputs, support canonical comma-separated MQTT combinations, and allow scalar YAML values to be replaced by nested settings through the config API.
* Preserve OpenVINO config translations
Regenerate the configuration translations with the OpenVINO detector schema available so the unrelated production detector labels remain intact.
* Preserve partial Birdseye mode overrides
Allow an empty activity selection with a canonical NONE MQTT state so partial camera and profile overrides can disable inherited flags without failing validation.
Add regression coverage for camera and profile inheritance, document the NONE contract, and keep the generated schema fixture scoped to Birdseye.
* Address Birdseye activity review feedback
Move scalar mode compatibility into the 0.18-1 config migration and reject empty activity selections instead of publishing a NONE state.
Pass activity signals through a frozen dataclass, preserve existing active-object tracker behavior, and require confirmed stationary objects. Revert the generic YAML mutation and cover migration, inheritance, MQTT, and activation regressions.
* Move Birdseye migration to 0.19
Use the 0.19-0 configuration revision for converting scalar Birdseye modes to composable activity flags, and update the migration regression coverage accordingly.
* Remove Birdseye migration test
Drop the dedicated config migration test as requested during review while retaining the 0.19-0 migration implementation.
* run lpr on more vehicle types by default
before, a config change to attribute_map was required
* logging tweaks
* remove arg
* use attributes for frontend check
* docs
* only check thumbnail attributes the object can have
send_alert()'s short circuit for skipping a no-op "update" push only
compared object and zone counts between before/after, never severity.
Both underlying collections are cumulative and deduplicated (objects
is a set of labels, zones only appends a zone not already present),
so a segment being promoted from detection to alert can leave both
counts unchanged, silently dropping the single most notable
transition in a review's life. Add a severity comparison to the same
check so a detection -> alert promotion always notifies.
The CUDA execution provider returns an identical vector for every image when jina-clip-v2 is built below ORT_ENABLE_EXTENDED, so every thumbnail embedding written on a GPU was the same normalized garbage and semantic search returned the same results for any query. Reproduced on two different NVIDIA cards, across onnxruntime 1.22 and 1.24, and on both the 0.17 and 0.18 CUDA stacks, so it isn't specific to any of those. ORT_ENABLE_ALL isn't an option because it fails to build on CPU with a SimplifiedLayerNormFusion error, leaving EXTENDED as the only level that works on both providers. jinav1 is unaffected and stays on BASIC.
* Make review user read status consistent with other APIs
* Validate URLs for web push endpoint
* Validate the role for a custom viewer, rate limit password changing
* Cleanup
Currently translated at 100.0% (46 of 46 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (800 of 800 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (474 of 474 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (141 of 141 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (185 of 185 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (1295 of 1295 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (74 of 74 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (108 of 108 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (108 of 108 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (239 of 239 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (500 of 500 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (800 of 800 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (474 of 474 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (45 of 45 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (62 of 62 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (54 of 54 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (23 of 23 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (25 of 25 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (800 of 800 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (474 of 474 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (141 of 141 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (185 of 185 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (1295 of 1295 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (100 of 100 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (86 of 86 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (145 of 145 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (67 of 67 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (108 of 108 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (129 of 129 strings)
Translated using Weblate (Persian)
Currently translated at 100.0% (239 of 239 strings)
Translated using Weblate (Persian)
Currently translated at 65.1% (71 of 109 strings)
Co-authored-by: Abdollah Ashjaa <abdollah.ashjaa@gmail.com>
Co-authored-by: Amir reza Irani ali poor <amir1376irani@yahoo.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: حمید ملک محمدی <hmmftg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-groups/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fa/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/fa/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/Config - Groups
Translation: Frigate NVR/Config - Validation
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-chat
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-replay
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
Currently translated at 63.2% (506 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 62.2% (498 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (474 of 474 strings)
Translated using Weblate (Swedish)
Currently translated at 51.7% (670 of 1295 strings)
Translated using Weblate (Swedish)
Currently translated at 51.7% (670 of 1295 strings)
Translated using Weblate (Swedish)
Currently translated at 90.0% (54 of 60 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (239 of 239 strings)
Translated using Weblate (Swedish)
Currently translated at 46.8% (375 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 95.7% (454 of 474 strings)
Translated using Weblate (Swedish)
Currently translated at 37.8% (303 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 69.8% (331 of 474 strings)
Translated using Weblate (Swedish)
Currently translated at 36.7% (294 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 67.9% (322 of 474 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (108 of 108 strings)
Translated using Weblate (Swedish)
Currently translated at 33.7% (270 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 62.2% (295 of 474 strings)
Translated using Weblate (Swedish)
Currently translated at 26.1% (209 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 48.7% (231 of 474 strings)
Translated using Weblate (Swedish)
Currently translated at 13.3% (107 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 26.1% (124 of 474 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (26 of 26 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (109 of 109 strings)
Translated using Weblate (Swedish)
Currently translated at 100.0% (501 of 501 strings)
Translated using Weblate (Swedish)
Currently translated at 99.8% (500 of 501 strings)
Translated using Weblate (Swedish)
Currently translated at 2.3% (19 of 800 strings)
Translated using Weblate (Swedish)
Currently translated at 5.6% (27 of 474 strings)
Co-authored-by: Fredrik B <fredrik@brannvall.nu>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kristian Johansson <knmjohansson@gmail.com>
Co-authored-by: Mats Lojander <mats@lojander.com>
Co-authored-by: Samuel Åkesson <samuel.akesson@bolmso.se>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/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/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-player
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-settings
Currently translated at 18.1% (145 of 800 strings)
Translated using Weblate (French)
Currently translated at 54.4% (258 of 474 strings)
Translated using Weblate (French)
Currently translated at 100.0% (108 of 108 strings)
Translated using Weblate (French)
Currently translated at 16.2% (130 of 800 strings)
Translated using Weblate (French)
Currently translated at 51.4% (244 of 474 strings)
Translated using Weblate (French)
Currently translated at 100.0% (26 of 26 strings)
Translated using Weblate (French)
Currently translated at 100.0% (109 of 109 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jérémy MRPX <jeremy.marpaux@gmail.com>
Co-authored-by: Nathan Signouret <nathan.signouret@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/fr/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-player
Currently translated at 75.8% (47 of 62 strings)
Translated using Weblate (Dutch)
Currently translated at 97.0% (776 of 800 strings)
Translated using Weblate (Dutch)
Currently translated at 84.8% (402 of 474 strings)
Translated using Weblate (Dutch)
Currently translated at 86.8% (1125 of 1295 strings)
Translated using Weblate (Dutch)
Currently translated at 83.5% (396 of 474 strings)
Translated using Weblate (Dutch)
Currently translated at 96.7% (774 of 800 strings)
Translated using Weblate (Dutch)
Currently translated at 83.1% (394 of 474 strings)
Translated using Weblate (Dutch)
Currently translated at 100.0% (109 of 109 strings)
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Patrick <github@derr.eu>
Co-authored-by: Wim Timmer <wc.timmer@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nl/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-settings
Currently translated at 38.5% (193 of 501 strings)
Translated using Weblate (Arabic)
Currently translated at 38.5% (193 of 501 strings)
Co-authored-by: Ahmed Marzouq <ahmed.marzouq.co@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Modar Soos <modarsoos@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ar/
Translation: Frigate NVR/audio
Currently translated at 100.0% (800 of 800 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (474 of 474 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (46 of 46 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (800 of 800 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (474 of 474 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (185 of 185 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (1295 of 1295 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (74 of 74 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (100 of 100 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (67 of 67 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (145 of 145 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (108 of 108 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (239 of 239 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (800 of 800 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (141 of 141 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (185 of 185 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (1295 of 1295 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (67 of 67 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (145 of 145 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (109 of 109 strings)
Translated using Weblate (Italian)
Currently translated at 99.2% (140 of 141 strings)
Translated using Weblate (Italian)
Currently translated at 94.0% (174 of 185 strings)
Translated using Weblate (Italian)
Currently translated at 99.6% (1291 of 1295 strings)
Translated using Weblate (Italian)
Currently translated at 98.5% (66 of 67 strings)
Translated using Weblate (Italian)
Currently translated at 99.7% (798 of 800 strings)
Translated using Weblate (Italian)
Currently translated at 92.9% (131 of 141 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (129 of 129 strings)
Translated using Weblate (Italian)
Currently translated at 85.5% (684 of 800 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (474 of 474 strings)
Translated using Weblate (Italian)
Currently translated at 74.1% (593 of 800 strings)
Translated using Weblate (Italian)
Currently translated at 99.7% (473 of 474 strings)
Translated using Weblate (Italian)
Currently translated at 100.0% (109 of 109 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>
Co-authored-by: Nton <arlatalpa@gmail.com>
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/components-filter/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/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/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-replay
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
Currently translated at 100.0% (67 of 67 strings)
Translated using Weblate (Polish)
Currently translated at 17.7% (142 of 800 strings)
Translated using Weblate (Polish)
Currently translated at 17.7% (142 of 800 strings)
Translated using Weblate (Polish)
Currently translated at 46.6% (221 of 474 strings)
Translated using Weblate (Polish)
Currently translated at 46.6% (221 of 474 strings)
Co-authored-by: Artur <wy66m6xm@anonaddy.me>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: J P <jpoloczek24@gmail.com>
Co-authored-by: Kamil Cybułka <kamil.cybulka@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/pl/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/views-events