Compare commits

..
Author SHA1 Message Date
dependabot[bot]andGitHub 30b7c23a91 Bump the actions group across 2 directories with 1 update
Bumps the actions group with 1 update in the / directory: [docker/login-action](https://github.com/docker/login-action).
Bumps the actions group with 1 update in the /.github/actions/setup directory: [docker/login-action](https://github.com/docker/login-action).


Updates `docker/login-action` from 4.7.0 to 4.8.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/81c6f93d4bc991e510b342a00b419b3bb4efc5c6...8aa5831fb8d48d8f76594c7ddde61ae58019f550)

Updates `docker/login-action` from 4.7.0 to 4.8.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/81c6f93d4bc991e510b342a00b419b3bb4efc5c6...8aa5831fb8d48d8f76594c7ddde61ae58019f550)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
- dependency-name: docker/login-action
  dependency-version: 4.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: actions
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-11-08 11:33:13 +00:00
Hosted WeblateandJosh Hawkins 8d4e6b52d1 Update translation files
CI / AMD64 Build (push) Waiting to run
CI / AMD64 Smoke Test (push) Blocked by required conditions
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 9b09fd09c1 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
fd410f3e90 Added translation using Weblate (Serbian (Latin script))
Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Added translation using Weblate (Serbian (Latin script))

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Josh Hawkins <hawkeye217@users.noreply.hosted.weblate.org>
2026-11-07 14:59:30 -06:00
b97a039075 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 94.7% (251 of 265 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: GuoQing Liu <zhaisoul@users.noreply.hosted.weblate.org>
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/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
4fc624e1f3 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 89.9% (695 of 773 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.4% (472 of 522 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (141 of 141 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.2% (1260 of 1396 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (74 of 74 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 89.1% (107 of 120 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.5% (240 of 265 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 89.9% (695 of 773 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 64.4% (181 of 281 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.2% (1260 of 1396 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.2% (1260 of 1396 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 89.9% (695 of 773 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.4% (472 of 522 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 64.4% (181 of 281 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.2% (1260 of 1396 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.5% (240 of 265 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (129 of 129 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 89.9% (695 of 773 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.2% (1265 of 1401 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (500 of 500 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 96.8% (62 of 64 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.2% (1265 of 1401 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 90.5% (240 of 265 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (500 of 500 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.5% (67 of 68 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (500 of 500 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (500 of 500 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (500 of 500 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: 蘭蘭露 <flandretw@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/zh_Hant/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/objects
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-11-07 14:59:30 -06:00
bfb9ae8b31 Translated using Weblate (Uzbek)
Currently translated at 0.6% (3 of 500 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kholmurod Isroilov <kholmurod05@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/uz/
Translation: Frigate NVR/audio
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins eb0e127f40 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 9286a2fb4f Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 9178484411 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
7ccac9dae8 Translated using Weblate (Kannada)
Currently translated at 6.0% (30 of 500 strings)

Co-authored-by: Aaryadev <aaryadev@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/kn/
Translation: Frigate NVR/audio
2026-11-07 14:59:30 -06:00
3d2cbe2bab Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Korean)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (771 of 771 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (281 of 281 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (1397 of 1397 strings)

Translated using Weblate (Korean)

Currently translated at 100.0% (129 of 129 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: sinfancy <sinfancy@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ko/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ko/
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-11-07 14:59:30 -06:00
a3f9f91c9a Translated using Weblate (Serbian)
Currently translated at 19.8% (154 of 775 strings)

Translated using Weblate (Serbian)

Currently translated at 19.7% (153 of 775 strings)

Translated using Weblate (Serbian)

Currently translated at 2.1% (11 of 522 strings)

Translated using Weblate (Serbian)

Currently translated at 36.1% (51 of 141 strings)

Translated using Weblate (Serbian)

Currently translated at 41.6% (50 of 120 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Branislav Maricic <b.n.maricic@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/sr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-classificationmodel
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
bedef9842c Translated using Weblate (Georgian)
Currently translated at 16.0% (4 of 25 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lexo Ardishvili <ardishvili.lexo@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-groups/ka/
Translation: Frigate NVR/Config - Groups
2026-11-07 14:59:30 -06:00
c44e065719 Translated using Weblate (Finnish)
Currently translated at 78.3% (58 of 74 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Finnish)

Currently translated at 77.0% (57 of 74 strings)

Translated using Weblate (Finnish)

Currently translated at 100.0% (118 of 118 strings)

Translated using Weblate (Finnish)

Currently translated at 3.5% (27 of 771 strings)

Translated using Weblate (Finnish)

Currently translated at 2.3% (12 of 520 strings)

Translated using Weblate (Finnish)

Currently translated at 18.4% (26 of 141 strings)

Translated using Weblate (Finnish)

Currently translated at 18.8% (264 of 1397 strings)

Translated using Weblate (Finnish)

Currently translated at 61.2% (79 of 129 strings)

Translated using Weblate (Finnish)

Currently translated at 66.6% (40 of 60 strings)

Translated using Weblate (Finnish)

Currently translated at 71.6% (53 of 74 strings)

Translated using Weblate (Finnish)

Currently translated at 40.6% (48 of 118 strings)

Translated using Weblate (Finnish)

Currently translated at 100.0% (50 of 50 strings)

Translated using Weblate (Finnish)

Currently translated at 100.0% (265 of 265 strings)

Translated using Weblate (Finnish)

Currently translated at 100.0% (500 of 500 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Tuomo Lahti <tuomo@users.noreply.hosted.weblate.org>
Co-authored-by: Vesa Takomo <vesatakomo@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/fi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fi/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
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/views-classificationmodel
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 2d1962c338 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins fe08369b56 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
f596232a6e Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (French)

Currently translated at 22.1% (171 of 771 strings)

Translated using Weblate (French)

Currently translated at 54.4% (283 of 520 strings)

Translated using Weblate (French)

Currently translated at 99.2% (263 of 265 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthieu MOREL <mmorel-35@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/fr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins ee93b1b792 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
c6f584d48a Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Dutch)

Currently translated at 96.7% (746 of 771 strings)

Translated using Weblate (Dutch)

Currently translated at 99.8% (519 of 520 strings)

Translated using Weblate (Dutch)

Currently translated at 73.5% (64 of 87 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (37 of 37 strings)

Translated using Weblate (Dutch)

Currently translated at 100.0% (265 of 265 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Thomas Veldhuizen <tomiesv@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/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-exports/nl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-player
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 112a708247 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
d543e0e11e Translated using Weblate (Arabic)
Currently translated at 43.4% (217 of 500 strings)

Co-authored-by: Abdullah Alanesi <mech.eng159@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ar/
Translation: Frigate NVR/audio
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 1b2dfba49f Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
fe3fb2f88d Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Polish)

Currently translated at 90.0% (108 of 120 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (265 of 265 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: alquere1 <alquere1@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pl/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 7e47e58fc8 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 5c44a9b80f Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins cafdee83b8 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 303ddf5f65 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 255b335471 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
256affadfa Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Czech)

Currently translated at 100.0% (1398 of 1398 strings)

Translated using Weblate (Czech)

Currently translated at 99.1% (119 of 120 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Czech)

Currently translated at 100.0% (281 of 281 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1397 of 1397 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (129 of 129 strings)

Co-authored-by: Ashus <ashus@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Michal Kovac <michal.kovac75@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/cs/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
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/components-dialog
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-11-07 14:59:30 -06:00
1d2d46c838 Translated using Weblate (Catalan)
Currently translated at 100.0% (775 of 775 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1404 of 1404 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (266 of 266 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Catalan)

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (522 of 522 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1401 of 1401 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (120 of 120 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Catalan)

Currently translated at 100.0% (1398 of 1398 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (771 of 771 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1397 of 1397 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (281 of 281 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (1395 of 1395 strings)

Co-authored-by: Eduardo Pastor Fernández <edugaga@users.noreply.hosted.weblate.org>
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/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ca/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ca/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-11-07 14:59:30 -06:00
2a04dc2f28 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Japanese)

Currently translated at 89.6% (691 of 771 strings)

Translated using Weblate (Japanese)

Currently translated at 90.7% (472 of 520 strings)

Translated using Weblate (Japanese)

Currently translated at 90.2% (1261 of 1397 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: alpha <alphamob0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ja/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ja/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ja/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 7ea8acc224 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 800c442bf5 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 070708dddf Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
160e6fa1ce Translated using Weblate (Romanian)
Currently translated at 100.0% (775 of 775 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (1404 of 1404 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (266 of 266 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Romanian)

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (522 of 522 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (1401 of 1401 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (120 of 120 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Romanian)

Currently translated at 100.0% (1398 of 1398 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (771 of 771 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (1397 of 1397 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Romanian)

Currently translated at 100.0% (281 of 281 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: lukasig <lukasig@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ro/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-11-07 14:59:30 -06:00
73b2c68c1b Translated using Weblate (Russian)
Currently translated at 96.6% (116 of 120 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Russian)

Currently translated at 94.6% (730 of 771 strings)

Translated using Weblate (Russian)

Currently translated at 97.8% (509 of 520 strings)

Translated using Weblate (Russian)

Currently translated at 90.4% (1264 of 1397 strings)

Translated using Weblate (Russian)

Currently translated at 100.0% (37 of 37 strings)

Translated using Weblate (Russian)

Currently translated at 98.3% (116 of 118 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sergejs Romancevičs <serom1983@users.noreply.hosted.weblate.org>
Co-authored-by: Stanislav Psenicica <stps@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ru/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ru/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-player
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
4d2911eb1e Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Estonian)

Currently translated at 19.8% (153 of 771 strings)

Translated using Weblate (Estonian)

Currently translated at 15.1% (79 of 520 strings)

Translated using Weblate (Estonian)

Currently translated at 61.2% (172 of 281 strings)

Translated using Weblate (Estonian)

Currently translated at 34.4% (481 of 1398 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (87 of 87 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (68 of 68 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (120 of 120 strings)

Translated using Weblate (Estonian)

Currently translated at 84.8% (424 of 500 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Estonian)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Estonian)

Currently translated at 100.0% (129 of 129 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/audio/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/et/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/et/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-11-07 14:59:30 -06:00
f6c5da293c Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Danish)

Currently translated at 47.2% (61 of 129 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jan Eenholt <kronhjorten@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/da/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-live
2026-11-07 14:59:30 -06:00
99c2f11c03 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (German)

Currently translated at 89.6% (691 of 771 strings)

Translated using Weblate (German)

Currently translated at 90.7% (472 of 520 strings)

Translated using Weblate (German)

Currently translated at 64.0% (180 of 281 strings)

Translated using Weblate (German)

Currently translated at 91.2% (1275 of 1397 strings)

Translated using Weblate (German)

Currently translated at 98.4% (261 of 265 strings)

Co-authored-by: Christoph Mertens <merti@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/de/
Translation: Frigate NVR/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-11-07 14:59:30 -06:00
ea85bb1ba4 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Portuguese (Brazil))

Currently translated at 98.3% (118 of 120 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Aurélio Barreto <aurelio.barreto@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins 187c5f4e4e Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
Hosted WeblateandJosh Hawkins b7dbcb3323 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-settings
2026-11-07 14:59:30 -06:00
80315d363c Translated using Weblate (Turkish)
Currently translated at 100.0% (775 of 775 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (282 of 282 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (1404 of 1404 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (266 of 266 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Turkish)

Currently translated at 100.0% (773 of 773 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (522 of 522 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (1401 of 1401 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (120 of 120 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (500 of 500 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (500 of 500 strings)

Update translation files

Updated by "Cleanup translation files" add-on in Weblate.

Translated using Weblate (Turkish)

Currently translated at 100.0% (1398 of 1398 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (64 of 64 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (771 of 771 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (1397 of 1397 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (129 of 129 strings)

Translated using Weblate (Turkish)

Currently translated at 100.0% (281 of 281 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Murat Odabasi <modabas@users.noreply.hosted.weblate.org>
Co-authored-by: Yunus YILDIZ <yunusyildiz@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/tr/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/
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/Config - Cameras
Translation: Frigate NVR/Config - Global
Translation: Frigate NVR/audio
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-motionSearch
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2026-11-07 14:59:30 -06:00
192 changed files with 1989 additions and 1011 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ runs:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Log in to the Container registry
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6
uses: docker/login-action@8aa5831fb8d48d8f76594c7ddde61ae58019f550
with:
registry: ghcr.io
username: ${{ github.actor }}
+1 -1
View File
@@ -590,7 +590,7 @@ jobs:
with:
string: ${{ github.repository }}
- name: Log in to the Container registry
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6
uses: docker/login-action@8aa5831fb8d48d8f76594c7ddde61ae58019f550
with:
registry: ghcr.io
username: ${{ github.actor }}
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
with:
string: ${{ github.repository }}
- name: Log in to the Container registry
uses: docker/login-action@81c6f93d4bc991e510b342a00b419b3bb4efc5c6
uses: docker/login-action@8aa5831fb8d48d8f76594c7ddde61ae58019f550
with:
registry: ghcr.io
username: ${{ github.actor }}
@@ -40,10 +40,16 @@ try:
except FileNotFoundError:
config: dict[str, Any] = {}
# No validator runs here, so install environment_vars ourselves.
# No validator runs here, so install environment_vars ourselves. FRIGATE_
# names only: anything else lands in os.environ, where the exec gate reads
# GO2RTC_ALLOW_ARBITRARY_EXEC.
config_env_vars = config.get("environment_vars")
apply_config_env_vars(
{str(key): value for key, value in config_env_vars.items()}
{
key: value
for key, value in config_env_vars.items()
if str(key).startswith("FRIGATE_")
}
if isinstance(config_env_vars, dict)
else {}
)
@@ -240,7 +240,7 @@ logger:
# Optional: set environment variables
environment_vars:
LIBVA_DRIVER_NAME: i965
EXAMPLE_VAR: value
# Optional: birdseye configuration
# NOTE: Can (enabled, mode) be overridden at the camera level
+1 -10
View File
@@ -65,16 +65,7 @@ go2rtc:
This section sets environment variables in the Frigate process for those unable to modify the environment of the container, like within Home Assistant OS. It's meant for process settings such as `LIBVA_DRIVER_NAME` or the TensorFlow thread counts below. Docker users should set environment variables in their `docker run` command (`-e LIBVA_DRIVER_NAME=i965`) or `docker-compose.yml` file (`environment:` section) instead. Values set here are stored in plain text in your config file, so credentials belong in `secrets.yaml`, Docker environment variables, or Docker secrets instead.
Besides `FRIGATE_` names, only these are accepted, and a variable already set in the container environment keeps its container value:
- `LIBVA_DRIVER_NAME` and `HSA_OVERRIDE_GFX_VERSION`
- `TF_INTRA_OP_PARALLELISM_THREADS`, `TF_INTER_OP_PARALLELISM_THREADS`, `TF_DATASET_THREAD_POOL_SIZE`, and `SHM_MAX_FRAMES`
- `USE_FP16`, `HF_HUB_OFFLINE`, and `TRANSFORMERS_OFFLINE`
- `HF_ENDPOINT`, `GITHUB_ENDPOINT`, `GITHUB_RAW_ENDPOINT`, and `TF_KERAS_MOBILENET_V2_WEIGHTS_URL` (an `http://` or `https://` URL)
Any other name is ignored with a warning and must be set in the container environment.
Names prefixed with `FRIGATE_` set here take part in `{FRIGATE_VARIABLE_NAME}` substitution (see [below](#substitution-sources-and-precedence)), but `secrets.yaml` is the better home for them. Of these, only `FRIGATE_JWT_SECRET` is also set in the process environment.
Names prefixed with `FRIGATE_` set here also take part in `{FRIGATE_VARIABLE_NAME}` substitution (see [below](#substitution-sources-and-precedence)), but `secrets.yaml` is the better home for them.
<ConfigTabs>
<TabItem value="ui">
-1
View File
@@ -627,7 +627,6 @@ def _restricted_go2rtc_response(
Go2rtcStreamIssue.invalid_placeholder,
"Invalid variable placeholder in go2rtc stream",
),
(Go2rtcStreamIssue.invalid_name, "Invalid go2rtc stream name"),
):
names = [name for name, found in issues.items() if found == issue]
if names:
+1 -14
View File
@@ -39,7 +39,6 @@ from frigate.config import AuthConfig, ProxyConfig
from frigate.const import CONFIG_DIR, JWT_SECRET_ENV_VAR, PASSWORD_HASH_ALGORITHM
from frigate.models import User
from frigate.notices import raise_notice
from frigate.util.live_streams import is_transcode_stream_name
from frigate.util.origin import origin_allowed
logger = logging.getLogger(__name__)
@@ -740,13 +739,6 @@ def auth(request: Request):
int(request.headers.get("x-server-port", default=0))
== request.app.auth_internal_port
):
# go2rtc runs the producer an unknown src describes for any caller
deny_status = deny_response_for_go2rtc_stream(
request.headers.get("x-original-url"), None, request
)
if deny_status is not None:
return Response("", status_code=deny_status)
success_response.headers["remote-user"] = "anonymous"
success_response.headers["remote-role"] = "admin"
return success_response
@@ -1283,12 +1275,7 @@ def _is_existing_go2rtc_stream(request: Request, stream_name: str) -> bool:
"""
frigate_config = request.app.frigate_config
# live.streams values are free-form config, so only names Frigate controls
# skip the lookup
if any(
stream_name == camera or is_transcode_stream_name(camera, stream_name)
for camera in frigate_config.cameras
):
if _get_stream_owner_cameras(request, stream_name):
return True
config_streams = getattr(frigate_config.go2rtc, "streams", None) or {}
-6
View File
@@ -39,7 +39,6 @@ from frigate.util.image import create_mask
from frigate.util.live_streams import (
default_transcode_source,
is_transcode_stream_name,
is_valid_go2rtc_stream_name,
transcode_stream_name,
transcode_streams,
)
@@ -315,11 +314,6 @@ def apply_live_transcode_streams(
f"Camera {camera_config.name} has transcoded streams enabled, but its source {transcode.source} is not a go2rtc stream."
)
if not is_valid_go2rtc_stream_name(transcode.source):
raise ValueError(
f"Camera {camera_config.name} transcodes go2rtc stream {transcode.source}, whose name contains '#', whitespace or quotes."
)
generated = transcode_streams(
camera_config.name,
transcode.source,
@@ -5,7 +5,6 @@ import tempfile
import unittest
from unittest.mock import MagicMock, Mock, patch
import requests
import ruamel.yaml
from fastapi import Request
@@ -235,72 +234,6 @@ class TestAuthInternalPort(BaseTestHttp):
finally:
os.unlink(config_path)
@patch(
"frigate.api.auth.requests.get",
side_effect=requests.ConnectionError("go2rtc unavailable"),
)
def test_internal_port_rejects_unknown_go2rtc_src(self, _mock_get):
app = self._create_app()
with AuthTestClient(app) as client:
for url in (
"/live/mse/api/ws?src=exec:id",
"/live/webrtc/api/ws?src=ffmpeg:x%23raw=-f",
"/api/go2rtc/webrtc?src=front_door&src=unknown",
):
resp = client.get(
"/auth",
headers={"x-server-port": "5000", "x-original-url": url},
)
self.assertEqual(resp.status_code, 403, url)
def test_internal_port_allows_existing_go2rtc_stream(self):
app = self._create_app()
with AuthTestClient(app) as client:
resp = client.get(
"/auth",
headers={
"x-server-port": "5000",
"x-original-url": "/live/mse/api/ws?src=front_door",
},
)
self.assertEqual(resp.status_code, 202)
self.assertEqual(resp.headers["remote-role"], "admin")
def test_internal_port_skips_go2rtc_check_for_other_paths(self):
app = self._create_app()
with AuthTestClient(app) as client:
for url in ("/api/stats", "/api/go2rtc/streams?src=unknown"):
resp = client.get(
"/auth",
headers={"x-server-port": "5000", "x-original-url": url},
)
self.assertEqual(resp.status_code, 202, url)
@patch(
"frigate.api.auth.requests.get",
side_effect=requests.ConnectionError("go2rtc unavailable"),
)
def test_live_stream_value_is_not_trusted_as_a_go2rtc_stream(self, _mock_get):
src = "ffmpeg:x#raw=-f"
self.minimal_config["cameras"]["front_door"]["live"] = {
"streams": {"Main": src}
}
app = self._create_app()
with AuthTestClient(app) as client:
resp = client.get(
"/auth",
headers={
"x-server-port": "5000",
"x-original-url": "/live/mse/api/ws?src=ffmpeg:x%23raw=-f",
},
)
self.assertEqual(resp.status_code, 403)
if __name__ == "__main__":
unittest.main(verbosity=2)
@@ -151,19 +151,6 @@ class TestConfigGo2rtcStreamRestrictions(BaseTestHttp):
assert resp.status_code == 200, resp.text
assert _EXISTING_SRC in self._read_config()
def test_set_rejects_stream_name_with_ffmpeg_params(self):
before = self._read_config()
resp = self._set_streams(
{"x#raw=-f#raw=mpegts#raw=/tmp/x": "rtsp://10.0.0.2:554/video"}
)
assert resp.status_code == 400
assert "Invalid go2rtc stream name" in resp.json()["message"]
assert self._read_config() == before
def test_set_allows_plain_stream_names(self):
resp = self._set_streams({"back-yard.main_2": "rtsp://10.0.0.2:554/video"})
assert resp.status_code == 200, resp.text
def test_set_allows_injected_source_when_override_set(self):
with patch("frigate.util.services._GO2RTC_ARBITRARY_EXEC_ENV", "true"):
resp = self._set_streams({"new_stream": [_INJECTED_SRC]})
+15 -81
View File
@@ -194,16 +194,15 @@ class TestEnvVars(unittest.TestCase):
def setUp(self):
self._original_env_vars = dict(FRIGATE_ENV_VARS)
self._original_environ = os.environ.copy()
names_patch = patch.object(env, "_CONTAINER_ENV_NAMES", frozenset())
names_patch.start()
self.addCleanup(names_patch.stop)
def tearDown(self):
FRIGATE_ENV_VARS.clear()
FRIGATE_ENV_VARS.update(self._original_env_vars)
env._CONFIG_ENV_VARS.clear()
os.environ.clear()
os.environ.update(self._original_environ)
# Clean up any env vars we set
for key in list(os.environ.keys()):
if key not in self._original_environ:
del os.environ[key]
def _make_context(self, install: bool):
"""Create a mock ValidationInfo with the given install flag."""
@@ -216,10 +215,10 @@ class TestEnvVars(unittest.TestCase):
return mock
def test_install_sets_os_environ(self):
"""validate_env_vars with install=True sets allowed names in os.environ."""
"""validate_env_vars with install=True sets os.environ."""
ctx = self._make_context(install=True)
validate_env_vars({"SHM_MAX_FRAMES": "75"}, ctx)
self.assertEqual(os.environ.get("SHM_MAX_FRAMES"), "75")
validate_env_vars({"MY_CUSTOM_VAR": "value123"}, ctx)
self.assertEqual(os.environ.get("MY_CUSTOM_VAR"), "value123")
def test_install_updates_frigate_env_vars(self):
"""validate_env_vars with install=True updates FRIGATE_ENV_VARS for FRIGATE_ keys."""
@@ -230,9 +229,9 @@ class TestEnvVars(unittest.TestCase):
def test_install_skips_non_frigate_in_env_vars_dict(self):
"""Non-FRIGATE_ keys are set in os.environ but not in FRIGATE_ENV_VARS."""
ctx = self._make_context(install=True)
validate_env_vars({"USE_FP16": "False"}, ctx)
self.assertEqual(os.environ.get("USE_FP16"), "False")
self.assertNotIn("USE_FP16", FRIGATE_ENV_VARS)
validate_env_vars({"OTHER_VAR": "value"}, ctx)
self.assertEqual(os.environ.get("OTHER_VAR"), "value")
self.assertNotIn("OTHER_VAR", FRIGATE_ENV_VARS)
def test_no_install_does_not_set(self):
"""validate_env_vars without install=True does not modify state."""
@@ -259,10 +258,10 @@ class TestEnvVars(unittest.TestCase):
ctx = self._make_context(install=True)
with patch("frigate.util.services.os.path.isfile", return_value=False):
for key in ("GO2RTC_ALLOW_ARBITRARY_EXEC", "go2rtc_allow_arbitrary_exec"):
validate_env_vars({key: "true", "USE_FP16": "False"}, ctx)
validate_env_vars({key: "true", "OTHER_VAR": "value"}, ctx)
self.assertNotIn(key, os.environ)
self.assertFalse(is_go2rtc_arbitrary_exec_allowed())
self.assertEqual(os.environ.get("USE_FP16"), "False")
self.assertEqual(os.environ.get("OTHER_VAR"), "value")
def test_install_keeps_container_go2rtc_exec_override(self):
"""An override set in the container environment is left untouched."""
@@ -308,82 +307,17 @@ class TestVariableSources(unittest.TestCase):
self.assertEqual(env.FRIGATE_ENV_VARS["FRIGATE_CAM_PASS"], "hunter2")
def test_config_env_vars_do_not_become_container_env(self):
"""environment_vars FRIGATE_ keys stay out of os.environ and env precedence."""
"""environment_vars writes os.environ but must not gain env precedence."""
env.apply_config_env_vars({"FRIGATE_CAM_PASS": "from_config"})
self.assertNotIn("FRIGATE_CAM_PASS", os.environ)
self.assertEqual(os.environ["FRIGATE_CAM_PASS"], "from_config")
self.assertNotIn("FRIGATE_CAM_PASS", env._CONTAINER_ENV)
def test_non_frigate_config_env_vars_only_set_os_environ(self):
"""Unprefixed environment_vars keys reach os.environ but not substitution."""
with patch.object(env, "_CONTAINER_ENV_NAMES", frozenset()):
env.apply_config_env_vars({"LIBVA_DRIVER_NAME": "i965"})
env.apply_config_env_vars({"LIBVA_DRIVER_NAME": "i965"})
self.assertEqual(os.environ["LIBVA_DRIVER_NAME"], "i965")
self.assertNotIn("LIBVA_DRIVER_NAME", env.FRIGATE_ENV_VARS)
def test_rejected_names_warn_and_are_not_exported(self):
"""Names off the allowlist log a warning without the value."""
for key in ("MY_CUSTOM_VAR", "LD_PRELOAD", "LIGHTER_ANE_EP", "PATH"):
with self.subTest(key=key):
original = os.environ.get(key)
with self.assertLogs("frigate.util.env", level="WARNING") as logs:
env.apply_config_env_vars({key: "/config/evil.so"})
self.assertEqual(os.environ.get(key), original)
self.assertEqual(len(logs.output), 1)
self.assertIn(key, logs.output[0])
self.assertIn("container environment", logs.output[0])
self.assertNotIn("evil", logs.output[0])
def test_allowed_name_with_bad_value_is_rejected(self):
"""LIBVA_DRIVER_NAME cannot carry a path."""
with patch.object(env, "_CONTAINER_ENV_NAMES", frozenset()):
with self.assertLogs("frigate.util.env", level="WARNING"):
env.apply_config_env_vars({"LIBVA_DRIVER_NAME": "../x"})
self.assertNotEqual(os.environ.get("LIBVA_DRIVER_NAME"), "../x")
def test_unsupported_values_are_rejected_without_crashing(self):
"""Non-ASCII digits and NUL bytes never reach os.environ."""
os.environ.pop("SHM_MAX_FRAMES", None)
os.environ.pop("HF_ENDPOINT", None)
with patch.object(env, "_CONTAINER_ENV_NAMES", frozenset()):
with self.assertLogs("frigate.util.env", level="WARNING") as logs:
env.apply_config_env_vars(
{"SHM_MAX_FRAMES": "\u0663\u0664", "HF_ENDPOINT": "https://x\x00"}
)
self.assertEqual(len(logs.output), 2)
self.assertNotIn("SHM_MAX_FRAMES", os.environ)
self.assertNotIn("HF_ENDPOINT", os.environ)
def test_container_env_wins_over_allowed_name(self):
"""A name the container set is left as the container set it."""
os.environ["LIBVA_DRIVER_NAME"] = "iHD"
with patch.object(
env, "_CONTAINER_ENV_NAMES", frozenset({"LIBVA_DRIVER_NAME"})
):
env.apply_config_env_vars({"LIBVA_DRIVER_NAME": "i965"})
self.assertEqual(os.environ["LIBVA_DRIVER_NAME"], "iHD")
def test_second_apply_is_not_blocked_by_first(self):
"""A safe-mode reload can change a value the first load exported."""
with patch.object(env, "_CONTAINER_ENV_NAMES", frozenset()):
env.apply_config_env_vars({"LIBVA_DRIVER_NAME": "i965"})
env.apply_config_env_vars({"LIBVA_DRIVER_NAME": "radeonsi"})
self.assertEqual(os.environ["LIBVA_DRIVER_NAME"], "radeonsi")
def test_run_as_root_is_substitutable_but_not_exported(self):
"""FRIGATE_RUN_AS_ROOT from the config never reaches os.environ."""
os.environ.pop("FRIGATE_RUN_AS_ROOT", None)
with patch.object(env, "_CONTAINER_ENV_NAMES", frozenset()):
env.apply_config_env_vars({"FRIGATE_RUN_AS_ROOT": "true"})
self.assertNotIn("FRIGATE_RUN_AS_ROOT", os.environ)
self.assertEqual(env.substitute_frigate_vars("{FRIGATE_RUN_AS_ROOT}"), "true")
def test_jwt_secret_is_exported(self):
"""Auth reads FRIGATE_JWT_SECRET from os.environ."""
os.environ.pop("FRIGATE_JWT_SECRET", None)
with patch.object(env, "_CONTAINER_ENV_NAMES", frozenset()):
env.apply_config_env_vars({"FRIGATE_JWT_SECRET": "s3cret"})
self.assertEqual(os.environ["FRIGATE_JWT_SECRET"], "s3cret")
def test_collision_warns_once_naming_the_winner(self):
"""A key from two sources logs one warning naming the source that won."""
with patch.dict(env._CONTAINER_ENV, {"FRIGATE_MQTT_HOST": "from_env"}):
+1 -6
View File
@@ -23,12 +23,7 @@ _CONFIG = {
"dual_user": ["front_door", "back_door"],
}
},
"go2rtc": {
"streams": {
"doorbell_audio": ["rtsp://10.0.0.4:554/audio"],
"front_door_sub": ["rtsp://10.0.0.1:554/sub"],
}
},
"go2rtc": {"streams": {"doorbell_audio": ["rtsp://10.0.0.4:554/audio"]}},
"cameras": {
"front_door": {
"ffmpeg": {
-35
View File
@@ -12,7 +12,6 @@ from frigate.util.live_streams import (
default_transcode_source,
generated_transcode_streams,
is_transcode_stream_name,
is_valid_go2rtc_stream_name,
measure_stream_bitrate,
raw_transcode_streams,
sync_transcode_streams,
@@ -38,13 +37,6 @@ class TestTranscodeNaming(unittest.TestCase):
"#raw=-b:v#raw=500k#raw=-maxrate#raw=500k#raw=-bufsize#raw=1000k",
)
def test_valid_go2rtc_stream_names(self):
for name in ("front", "front_sub", "back-yard.main_2", "Haustür"):
self.assertTrue(is_valid_go2rtc_stream_name(name), name)
for name in ("x#raw=-f", "front door", "front\tdoor", "a'b", 'a"b', "a${X}"):
self.assertFalse(is_valid_go2rtc_stream_name(name), name)
def test_default_source_skips_transcoded_streams(self):
streams = {"Low": "front_transcode_360p", "Main": "front_main"}
self.assertEqual(default_transcode_source("front", streams), "front_main")
@@ -129,22 +121,6 @@ class TestRawTranscodeStreams(unittest.TestCase):
self.assertEqual(list(raw_transcode_streams(config)), ["front_transcode_360p"])
def test_unsafe_source_name_is_skipped(self):
config = {
"cameras": {
"front": {
"live": {
"transcode": {"enabled": True, "source": "x#raw=-f#raw=null"}
}
}
}
}
self.assertEqual(raw_transcode_streams(config), {})
config["cameras"]["front"]["live"]["transcode"]["source"] = "front_main"
self.assertEqual(len(raw_transcode_streams(config)), 3)
def test_disabled_or_missing_generates_nothing(self):
self.assertEqual(raw_transcode_streams({}), {})
self.assertEqual(
@@ -310,17 +286,6 @@ class TestLiveTranscodeConfig(unittest.TestCase):
with self.assertRaises(ValidationError):
self.streams({"transcode": {"enabled": True, "source": "missing"}})
def test_source_name_with_ffmpeg_params_fails(self):
name = "x#raw=-f#raw=null"
with self.assertRaisesRegex(ValidationError, "contains '#'"):
self.streams(
{"transcode": {"enabled": True, "source": name}},
go2rtc={
"front": ["rtsp://10.0.0.1:554/main"],
name: ["rtsp://10.0.0.1:554/main"],
},
)
def test_duplicate_heights_fail(self):
with self.assertRaises(ValidationError):
self.streams(
+15 -59
View File
@@ -26,8 +26,6 @@ _SECRETS_FILE: dict[str, str] = {}
_CONTAINER_ENV: dict[str, str] = {
k: v for k, v in os.environ.items() if k.startswith("FRIGATE_")
}
# Empty image defaults, like ROCm's HSA_OVERRIDE_GFX_VERSION, don't count as set.
_CONTAINER_ENV_NAMES = frozenset(k for k, v in os.environ.items() if v)
_CREDENTIALS_DIR: dict[str, str] = {}
_SOURCES: tuple[tuple[str, dict[str, str]], ...] = (
@@ -167,80 +165,38 @@ def reload_sources(warn: bool = True) -> None:
_rebuild(warn)
_INT = re.compile(r"\d+", re.ASCII)
_WORD = re.compile(r"\w+", re.ASCII)
_URL = re.compile(r"https?://\S+")
# The only unprefixed names the config may export, with the values each accepts.
# Anything else, such as LD_PRELOAD, can load code into Frigate or its children.
_ALLOWED_ENV_VARS: dict[str, re.Pattern[str]] = {
"LIBVA_DRIVER_NAME": re.compile(r"[A-Za-z0-9_]+"),
"TF_INTRA_OP_PARALLELISM_THREADS": _INT,
"TF_INTER_OP_PARALLELISM_THREADS": _INT,
"TF_DATASET_THREAD_POOL_SIZE": _INT,
"SHM_MAX_FRAMES": _INT,
"USE_FP16": _WORD,
"HF_HUB_OFFLINE": _WORD,
"TRANSFORMERS_OFFLINE": _WORD,
"HSA_OVERRIDE_GFX_VERSION": re.compile(r"[0-9.]+"),
"HF_ENDPOINT": _URL,
"GITHUB_ENDPOINT": _URL,
"GITHUB_RAW_ENDPOINT": _URL,
"TF_KERAS_MOBILENET_V2_WEIGHTS_URL": _URL,
}
# Auth reads it from os.environ; every other FRIGATE_ name only feeds substitution.
_EXPORTED_FRIGATE_VARS = frozenset({"FRIGATE_JWT_SECRET"})
# Security overrides that must come from the container environment, which is
# controlled by the operator, rather than from the config, which admins can edit
_PROTECTED_ENV_VARS = frozenset({"GO2RTC_ALLOW_ARBITRARY_EXEC"})
def apply_config_env_vars(values: Mapping[str, object]) -> None:
"""Install the environment_vars block as the lowest priority source.
FRIGATE_ keys feed substitution. Allowlisted unprefixed keys with valid
values are exported to os.environ. A name the container already set is
never overwritten.
Unprefixed keys only set os.environ. Protected security overrides are
skipped.
"""
exports: dict[str, str] = {}
for key, value in values.items():
resolved = str(value)
if key.startswith("FRIGATE_"):
_CONFIG_ENV_VARS[key] = resolved
continue
pattern = _ALLOWED_ENV_VARS.get(key)
if pattern is None:
if key.upper() in _PROTECTED_ENV_VARS:
logger.warning(
"Ignoring %s in environment_vars, it must be set in the container environment",
key,
)
continue
if not pattern.fullmatch(resolved):
logger.warning("Ignoring %s in environment_vars, unsupported value", key)
continue
resolved = str(value)
exports[key] = resolved
if key.startswith("FRIGATE_"):
_CONFIG_ENV_VARS[key] = resolved
else:
os.environ[key] = resolved
_rebuild()
for key in _EXPORTED_FRIGATE_VARS & values.keys():
exports[key] = FRIGATE_ENV_VARS[key]
for key, value in exports.items():
if key in _CONTAINER_ENV_NAMES:
logger.info(
"Ignoring %s in environment_vars, the container environment sets it",
key,
)
continue
try:
os.environ[key] = value
except ValueError:
logger.warning("Ignoring %s in environment_vars, unsupported value", key)
# Export the winning value; auth reads FRIGATE_JWT_SECRET from os.environ.
for key in values:
if key.startswith("FRIGATE_"):
os.environ[key] = FRIGATE_ENV_VARS[key]
reload_sources(warn=False)
+1 -13
View File
@@ -31,16 +31,6 @@ def is_transcode_stream_name(camera: str, name: str) -> bool:
return re.fullmatch(rf"{re.escape(camera)}_transcode_\d+p", name) is not None
def is_valid_go2rtc_stream_name(name: str) -> bool:
"""Return whether a stream name is safe to splice into a go2rtc source.
go2rtc splits sources on `#` and ffmpeg commands on whitespace, and expands
`${VAR}` at load, so a name with any of these, or with quotes, could add its
own parameters.
"""
return re.search(r"[\s#$'\"]", name) is None
def transcode_stream_source(source: str, height: int, bitrate: int) -> str:
"""Build the go2rtc ffmpeg source that transcodes a stream to H.264.
@@ -111,9 +101,7 @@ def raw_transcode_streams(config: dict[str, Any]) -> dict[str, str]:
camera, live_streams or {camera: camera}
)
# an unsafe name fails Frigate's validation; skipping it here keeps
# it out of go2rtc
if source is None or not is_valid_go2rtc_stream_name(str(source)):
if source is None:
continue
qualities = transcode.get("qualities")
-7
View File
@@ -31,7 +31,6 @@ from frigate.const import (
)
from frigate.util.builtin import clean_camera_user_pass, escape_special_characters
from frigate.util.env import UnknownVariableError, substitute_frigate_vars
from frigate.util.live_streams import is_valid_go2rtc_stream_name
logger = logging.getLogger(__name__)
@@ -1178,7 +1177,6 @@ class Go2rtcStreamIssue(str, Enum):
restricted = "restricted"
unknown_variable = "unknown_variable"
invalid_placeholder = "invalid_placeholder"
invalid_name = "invalid_name"
def find_restricted_go2rtc_stream_changes(
@@ -1190,17 +1188,12 @@ def find_restricted_go2rtc_stream_changes(
in the saved config for the same stream is left alone, so streams the
operator configured on disk keep working; any other source must resolve
its {FRIGATE_*} placeholders and pass `is_restricted_go2rtc_api_source`.
New stream names must pass `is_valid_go2rtc_stream_name`.
"""
old_streams = old_streams if isinstance(old_streams, dict) else {}
new_streams = new_streams if isinstance(new_streams, dict) else {}
issues: dict[str, Go2rtcStreamIssue] = {}
for name, stream in new_streams.items():
if name not in old_streams and not is_valid_go2rtc_stream_name(str(name)):
issues[name] = Go2rtcStreamIssue.invalid_name
continue
existing = _go2rtc_stream_sources(old_streams.get(name))
for source in _go2rtc_stream_sources(stream):
+20 -4
View File
@@ -11,7 +11,7 @@
"speech": "تحدث",
"hiccup": "فُوَاق",
"dog": "كَلْب",
"yip": "نُبَيْحَة",
"yip": "يعوي",
"babbling": "ثرثرة",
"yell": "صراخ",
"bellow": "زمجرة",
@@ -55,7 +55,7 @@
"applause": "تَصْفِيق",
"chatter": "حَدِيث",
"crowd": "جُمْهُور",
"children_playing": "لَعِب الأَطْفَال",
"children_playing": "اطفال يلعبون",
"animal": "حَيَوَان",
"bow_wow": "نُبَاح الكَلْب",
"growling": "زَمْجَرَ",
@@ -64,7 +64,7 @@
"purr": "خَرْخَرَة",
"meow": "مُوَاء",
"hiss": "فَحِيح",
"caterwaul": "صُرَاخ مُتَوَاصِل",
"caterwaul": "صراخ القطط",
"livestock": "مَاشِيَة",
"horse": "حِصَان",
"clip_clop": "حَوَافِر الخَيْل",
@@ -199,5 +199,21 @@
"church_bell": "جرس الكنيسة",
"jingle_bell": "جرس جلجل",
"bicycle_bell": "جرس الدراجة",
"tuning_fork": "شوكة رنانة"
"tuning_fork": "شوكة رنانة",
"neigh": "صهيل",
"chime": "رنين",
"wind_chime": "جرس الرياح",
"harmonica": "هارمونيكا",
"accordion": "أكورديون",
"bagpipes": "مزمار القربة",
"didgeridoo": "ديدجيريدو",
"theremin": "ثيريمين",
"singing_bowl": "وعاء الغناء",
"scratching": "الخدش",
"pop_music": "موسيقى البوب",
"hip_hop_music": "موسيقى الهيب هوب",
"beatboxing": "بيت بوكس",
"rock_music": "موسيقى الروك",
"heavy_metal": "موسيقى صخب",
"punk_rock": "موسيقى الروك الصاخب"
}
@@ -58,7 +58,6 @@
"newCaseNamePlaceholder": "Назва новай справы",
"newCaseDescriptionPlaceholder": "Апісанне справы",
"label": "Справа",
"nonAdminHelp": "Для гэтых экспартаў будзе створана новая справа.",
"placeholder": "Выберыце справу"
},
"select": "Выбраць",
@@ -1101,13 +1101,6 @@
"title": "Пацвердзіць пароль",
"placeholder": "Пацвердзіць пароль"
},
"strength": {
"title": "Надзейнасць пароля: ",
"weak": "Слабы",
"medium": "Сярэдні",
"strong": "Надзейны",
"veryStrong": "Вельмі надзейны"
},
"requirements": {
"title": "Патрабаванні да пароля:",
"length": "Не меней за 12 сімвалаў"
@@ -55,7 +55,6 @@
"newCaseNamePlaceholder": "Novo ime slučaja",
"newCaseDescriptionPlaceholder": "Opis slučaja",
"label": "Slučaj",
"nonAdminHelp": "Za ove izvoze će se stvoriti novi slučaj.",
"placeholder": "Odaberite slučaj"
},
"select": "Odaberite",
@@ -902,13 +902,6 @@
"title": "Potvrdite lozinku",
"placeholder": "Potvrdite lozinku"
},
"strength": {
"title": "Jakoća lozinke: ",
"weak": "Slaba",
"medium": "Srednja",
"strong": "Jaka",
"veryStrong": "Veoma jaka"
},
"requirements": {
"title": "Zahtjevi za lozinku:",
"length": "Bar 12 karaktera"
+2 -1
View File
@@ -210,7 +210,8 @@
"inProgress": "En curs",
"invalidStartTime": "Hora d'inici no vàlida",
"invalidEndTime": "Hora de finalització no vàlida",
"never": "Mai"
"never": "Mai",
"custom": "Personalitzat..."
},
"unit": {
"speed": {
+4 -2
View File
@@ -88,7 +88,7 @@
"newCaseOption": "Crea un cas no",
"newCaseNamePlaceholder": "Nom de cas nou",
"newCaseDescriptionPlaceholder": "Descripció del cas",
"nonAdminHelp": "Es crearà un nou cas per a aquestes exportacions."
"nameRequired": "Es requereix el nom del cas"
},
"queueing": "S'està fent la cua de l'exportació...",
"tabs": {
@@ -117,7 +117,9 @@
"selectWithActivity": "Càmeres amb objectes rastrejats",
"selectGroup": "Selecciona un grup",
"noMatchingCameras": "No hi ha càmeres que coincideixin amb la cerca",
"selectedCount": "{{selected}} / {{total}} seleccionats"
"selectedCount": "{{selected}} / {{total}} seleccionats",
"noCamerasSelected": "Selecciona almenys una càmera",
"caseNameDefault": "Exportació multicàmera - {{date}}"
},
"multi": {
"title_one": "Exporta {{count}} ressenyes",
@@ -861,6 +861,10 @@
"enabled_in_config": {
"label": "Estat de les notificacions originals",
"description": "Indica si les notificacions s'han activat en la configuració estàtica original."
},
"ttl": {
"label": "Notificació TTL",
"description": "Com gestiona el servei push una notificació enviada mentre s'activa una alerta si no es pot arribar al vostre dispositiu. Immediatament el lliura o el deixa anar. Reliable continua intentant-ho fins a 30 segons. La notificació enviada quan acaba una alerta es manté sempre fins a una hora."
}
},
"onvif": {
+9 -1
View File
@@ -843,7 +843,7 @@
},
"cookie_secure": {
"label": "Atribut de segura de la cookie",
"description": "Establiu l'indicador segur a l'auth cookie; hauria de ser cert quan s'utilitza TLS."
"description": "Estableix sempre l'indicador segur a la galeta d'autenticació. La fragata ho estableix automàticament en servir TLS; habiliteu-ho quan un servidor intermediari invers finalitza TLS davant de la fragata. Un servidor intermediari que es connecta al port TLS ha de servir fragata als navegadors a través d'HTTPS."
},
"session_length": {
"label": "Longitud de la sessió",
@@ -1004,6 +1004,10 @@
"enabled_in_config": {
"label": "Estat de les notificacions originals",
"description": "Indica si les notificacions s'han activat en la configuració estàtica original."
},
"ttl": {
"label": "Notificació TTL",
"description": "Com gestiona el servei push una notificació enviada mentre s'activa una alerta si no es pot arribar al vostre dispositiu. Immediatament el lliura o el deixa anar. Reliable continua intentant-ho fins a 30 segons. La notificació enviada quan acaba una alerta es manté sempre fins a una hora."
}
},
"networking": {
@@ -1096,6 +1100,10 @@
"version_check": {
"label": "Comprovació de versió",
"description": "Activa una comprovació de sortida per detectar si hi ha disponible una versió de Frigate més nova."
},
"analytics": {
"label": "Comparteix l'analítica anònima",
"description": "Envia un informe d'ús anònim al dia per ajudar els mantenidors de la fragata a decidir què donar suport. No s'envia res fins que això estigui activat."
}
},
"tls": {
+3 -2
View File
@@ -155,11 +155,12 @@
},
"unavailable": {
"browser": "El teu navegador no suporta WebRTC.",
"not-configured": "WebRTC no està configurat. Estableix candidats go2rtc webrtc o ice_servers.",
"not-configured": "Per activar-ho, afegiu IP:8555 d'aquest servidor sota go2rtc . webrtc . candidats.",
"unreachable": "WebRTC no s'ha pogut connectar. Comproveu que el port 8555 és accessible i qualsevol servidor STUN/TURN és correcte.",
"video-codec": "El còdec de vídeo d'aquest flux no és compatible amb WebRTC en aquest navegador.",
"audio-codec": "El còdec d'àudio d'aquest flux no és compatible amb WebRTC. Transcodifica a opus o G.711 amb go2rtc.",
"checking": "S'està comprovant la disponibilitat de WebRTC…"
"checking": "S'està comprovant la disponibilitat de WebRTC…",
"notConfiguredOptional": "Opcional: la vista en viu funciona sense ella. WebRTC es necessita principalment per a la xerrada en dues direccions."
},
"name": {
"mse": "MSE",
@@ -59,7 +59,9 @@
"invalidTimeRange": "L'hora de finalització ha de ser posterior a l'hora d'inici",
"searchFailed": "Ha fallat la cerca: {{message}}",
"polygonTooSmall": "El polígon ha de tenir almenys 3 punts",
"unknown": "Error desconegut"
"unknown": "Error desconegut",
"alreadyRunning": "Ja teniu una cerca de moviment en execució. Espera que acabi o cancel·li.",
"tooManySearches": "S'estan executant massa cerques en moviment. Torneu-ho a provar quan s'acabi."
},
"changePercentage": "{{percentage}}% canviat",
"metrics": {
+28 -14
View File
@@ -447,7 +447,8 @@
"suspend": "Suspendre",
"24hours": "Suspèn durant 24 hores",
"10minutes": "Suspèn durant 10 minuts",
"5minutes": "Suspèn durant 5 minuts"
"5minutes": "Suspèn durant 5 minuts",
"custom": "Suspèn fins..."
},
"toast": {
"success": {
@@ -476,7 +477,13 @@
"active": "Notificacions actives",
"suspended": "Notificacions suspeses {{time}}",
"unsavedRegistrations": "Registres de notificació no desats",
"sendTestNotification": "Enviar una notificació de prova"
"sendTestNotification": "Enviar una notificació de prova",
"customSuspension": {
"title": "Temps de suspensió personalitzat",
"description": "Suspèn les notificacions d'aquesta càmera fins a l'hora seleccionada.",
"untilLabel": "Suspèn fins",
"invalidTime": "Tria un temps en el futur."
}
},
"motionDetectionTuner": {
"Threshold": {
@@ -596,13 +603,6 @@
"placeholder": "Confirma contrasenya",
"title": "Confirma contrasenya"
},
"strength": {
"title": "Seguretat de la contrasenya: ",
"weak": "Dèbil",
"strong": "Fort",
"veryStrong": "Molt forta",
"medium": "Mitjana"
},
"notMatch": "Les contrasenyes no coincideixen",
"match": "Les contrasenyes coincideixen",
"placeholder": "Introdueix la contrasenya",
@@ -662,14 +662,16 @@
"title": "Crear un nou usuari",
"confirmPassword": "Siusplau, confirma la contrasenya",
"usernameOnlyInclude": "El nom d'usuari només pot contenir lletres, números, . o _",
"desc": "Afegeix un compte d'usuari nou i especifica un rol per a l'accés a les àrees de la interfície d'usuari de Frigate."
"desc": "Afegeix un compte d'usuari nou i especifica un rol per a l'accés a les àrees de la interfície d'usuari de Frigate.",
"usernameOnlyDots": "El nom d'usuari no pot contenir només punts"
}
},
"title": "Usuaris",
"addUser": "Afegir usuari",
"management": {
"title": "Gestió d'usuaris",
"desc": "Gestioneu els comptes d'usuari d'aquesta instància de Frigate."
"desc": "Gestioneu els comptes d'usuari d'aquesta instància de Frigate.",
"authDisabled": "L'autenticació integrada està desactivada. Aquests comptes només s'utilitzen per iniciar sessió una vegada que està habilitat."
},
"updatePassword": "Restableix la contrasenya"
},
@@ -706,7 +708,8 @@
"ariaLabel": "Filtra els models per tipus",
"baseModels": "Models de base",
"fineTunedModels": "Models ajustats"
}
},
"showIncompatible": "Mostra models incompatibles"
},
"apiKey": {
"plusLink": "Llegeix més sobre Frigate+",
@@ -1005,7 +1008,8 @@
"nameLength": "El nom de la càmera ha de tenir 64 caràcters o menys",
"invalidCharacters": "El nom de la càmera conté caràcters no vàlids",
"nameExists": "El nom de la càmera ja existeix",
"customUrlRtspRequired": "Els URL personalitzats han de començar amb \"rtsp://\" o \"rtsps://\". Es requereix configuració manual per a fluxos de càmera no RTSP."
"customUrlRtspRequired": "Els URL personalitzats han de començar amb \"rtsp://\" o \"rtsps://\". Es requereix configuració manual per a fluxos de càmera no RTSP.",
"onvifPortInvalid": "El port ONVIF ha de ser un número sencer de l'1 al 65535"
},
"selectBrand": "Seleccioneu la marca de la càmera per a la plantilla d'URL",
"customUrl": "URL de flux personalitzat",
@@ -2021,7 +2025,8 @@
"objectTrackingDetectRuntimeDisabled": "La detecció d'objectes està activada a la configuració, però actualment està desactivada per a aquesta càmera. Instantànies, articles de revisió i enriquiments com el reconeixement de rostres, el reconeixement de matrícules i la IA Generativa no funcionaran fins que no s'encengui des de la vista en viu de la càmera, o fins que el perfil actiu deixi d'inhabilitar-lo."
},
"notifications": {
"profileBaseDisabled": "Cap càmera té les notificacions habilitades a la seva configuració base, de manera que habilitar-les en un perfil no té cap efecte. Habilita les notificacions a la configuració base d'almenys una càmera."
"profileBaseDisabled": "Cap càmera té les notificacions habilitades a la seva configuració base, de manera que habilitar-les en un perfil no té cap efecte. Habilita les notificacions a la configuració base d'almenys una càmera.",
"ttlDelay": "Les notificacions poden arribar fins a 30 segons tard i encara enllaçar a la vista en directe després que l'element de revisió hagi acabat."
},
"live": {
"noGo2rtcStream": "Vista en viu per a aquesta càmera està utilitzant un reproductor bàsic amb una velocitat de fotogrames més baixa i sense àudio. Configura un flux go2rtc per a aquesta càmera per obtenir un vídeo i un àudio més suaus."
@@ -2124,5 +2129,14 @@
"scenes": {
"default": "Per defecte"
}
},
"notificationTtl": {
"immediate": "Immediat",
"reliable": "Fiable"
},
"analyticsPreview": {
"show": "Vista prèvia de l'informe",
"desc": "Frigate envia aquest informe un cop al dia mentre es comparteix. Mai inclou noms de càmera, zones, etiquetes o adreces.",
"error": "No s'ha pogut construir la vista prèvia"
}
}
+5 -2
View File
@@ -302,7 +302,8 @@
"update_available": "Frigate {{version}} està disponible",
"ffmpeg_high_cpu": "L'ús de la CPU FFmpeg és alt ({{cpu}}% mitjana)",
"detect_high_cpu": "L'ús de la CPU de detecció és alt ({{cpu}}% mitjana)",
"object_processing_behind": "No s'ha pogut mantenir el processament d'objectes rastrejat, de manera que s'han deixat anar els fotogrames de la càmera. Comprova la utilització de la CPU, i si els límits de la CPU o la fixació al contenidor o VM estan deixant la Frigate massa poca CPU"
"object_processing_behind": "No s'ha pogut mantenir el processament d'objectes rastrejat, de manera que s'han deixat anar els fotogrames de la càmera. Comprova la utilització de la CPU, i si els límits de la CPU o la fixació al contenidor o VM estan deixant la Frigate massa poca CPU",
"analytics_prompt": "Considereu compartir estadístiques d'ús anònimes per ajudar els desenvolupadors a millorar Frigate"
},
"streamPrefix": "Flux {{index}}: {{message}}",
"streamPrefixRestream": "Flux {{index}} (via go2rtc): {{message}}",
@@ -320,7 +321,9 @@
"showAllTitle": "Voleu mostrar tots els avisos ocults?",
"showAllDesc": "Cada avís reconegut i silenciat torna a la llista d'avisos, incloent-hi les comprovacions de configuració i flux.",
"acknowledgedAt": "Reconegut {{time}}",
"mutedAt": "Mutat {{time}}"
"mutedAt": "Mutat {{time}}",
"occurred_one": "Ocurrit {{time}}",
"occurred_other": "Darrera hora {{lastTime}} · {{count}} vegades des de {{time}}"
},
"hardware": {
"title": "Maquinari",
+4 -3
View File
@@ -120,8 +120,8 @@
"newCaseNamePlaceholder": "Název nového případu",
"newCaseDescriptionPlaceholder": "Popis případu",
"label": "Případ",
"nonAdminHelp": "Pro tyto exporty bude vytvořen nový případ.",
"placeholder": "Vyberte případ"
"placeholder": "Vyberte případ",
"nameRequired": "Název případu je povinný"
},
"queueing": "Zařazování exportu do fronty…",
"tabs": {
@@ -150,7 +150,8 @@
"queueingButton": "Příprava exportů…",
"exportButton_one": "Exportovat 1 kameru",
"exportButton_few": "Exportovat {{count}} kamery",
"exportButton_other": "Exportovat {{count}} kamer"
"exportButton_other": "Exportovat {{count}} kamer",
"noCamerasSelected": "Vyberte alespoň jednu kameru"
},
"multi": {
"title_one": "Exportovat 1 položku revize",
+3 -2
View File
@@ -169,11 +169,12 @@
},
"unavailable": {
"browser": "Váš prohlížeč nepodporuje WebRTC.",
"not-configured": "WebRTC není nastaveno. Nastavte webrtc candidates nebo ice_servers v go2rtc.",
"not-configured": "Pro povolení WebRTC přidejte IP adresu tohoto serveru ve tvaru IP:8555 do go2rtc → webrtc → candidates.",
"unreachable": "WebRTC se nemohlo připojit. Ověřte dostupnost portu 8555 a správné nastavení serveru STUN/TURN.",
"video-codec": "Videokodek tohoto streamu není v tomto prohlížeči podporován přes WebRTC.",
"audio-codec": "Zvukový kodek tohoto streamu není podporován přes WebRTC. Pomocí go2rtc jej překódujte na opus nebo G.711.",
"checking": "Ověřování dostupnosti WebRTC…"
"checking": "Ověřování dostupnosti WebRTC…",
"notConfiguredOptional": "Volitelné: živé zobrazení funguje i bez WebRTC. WebRTC je potřeba hlavně pro obousměrnou komunikaci."
}
}
},
+6 -10
View File
@@ -45,7 +45,8 @@
"ariaLabel": "Filtrovat modely podle typu",
"baseModels": "Základní modely",
"fineTunedModels": "Doladěné modely"
}
},
"showIncompatible": "Zobrazit nekompatibilní modely"
},
"snapshotConfig": {
"desc": "Odesílání do Frigate+ vyžaduje povolené snímky v konfiguraci.",
@@ -599,13 +600,6 @@
"dialog": {
"form": {
"password": {
"strength": {
"weak": "Slabé",
"medium": "Střední",
"strong": "Silné",
"veryStrong": "Velmi Silné",
"title": "Síla hesla: "
},
"match": "Hesla souhlasí",
"notMatch": "Hesla nesouhlasí",
"title": "Heslo",
@@ -704,7 +698,8 @@
},
"management": {
"desc": "Spravujte uživatelské účty této instance Frigate.",
"title": "Správa uživatelů"
"title": "Správa uživatelů",
"authDisabled": "Vestavěné ověřování uživatelů je vypnuté. Tyto účty lze použít k přihlášení až po jeho zapnutí."
},
"addUser": "Přidat uživatele",
"title": "Uživatelé"
@@ -1177,7 +1172,8 @@
"nameLength": "Název kamery smí mít nejvýše 64 znaků",
"invalidCharacters": "Název kamery obsahuje neplatné znaky",
"nameExists": "Název kamery již existuje",
"customUrlRtspRequired": "Vlastní URL musí začínat \"rtsp://\" nebo \"rtsps://\". Streamy kamer mimo RTSP je nutné nastavit ručně."
"customUrlRtspRequired": "Vlastní URL musí začínat \"rtsp://\" nebo \"rtsps://\". Streamy kamer mimo RTSP je nutné nastavit ručně.",
"onvifPortInvalid": "Port ONVIF musí být celé číslo od 1 do 65535"
}
}
},
+3 -1
View File
@@ -322,7 +322,9 @@
"streamPrefix": "Stream {{index}}: {{message}}",
"streamPrefixRestream": "Stream {{index}} (přes go2rtc): {{message}}",
"streamProbeFailed": "Stream {{index}} se nepodařilo prověřit: {{error}}",
"cameraProbeFailed": "Streamy se nepodařilo prověřit: {{error}}"
"cameraProbeFailed": "Streamy se nepodařilo prověřit: {{error}}",
"occurred_one": "Výskyt: {{time}}",
"occurred_other": "Poslední výskyt: {{lastTime}} · {{count}} výskytů od {{time}}"
},
"hardware": {
"title": "Hardware",
@@ -57,7 +57,6 @@
"newCaseNamePlaceholder": "Nyt sagsnavn",
"newCaseDescriptionPlaceholder": "Sagsbeskrivelse",
"label": "Sag",
"nonAdminHelp": "En ny sag oprettes til disse eksporter.",
"placeholder": "Vælg en sag"
},
"select": "Vælg",
+19 -4
View File
@@ -2,7 +2,12 @@
"documentTitle.withCamera": "{{camera}} - Live - Frigate",
"twoWayTalk": {
"enable": "Aktivér tovejskommunikation",
"disable": "Deaktiver tovejskommunikation"
"disable": "Deaktiver tovejskommunikation",
"requiresWebRTC": "Tovejskommunikation kræver WebRTC, hvilket ikke er tilgængeligt",
"error": {
"microphone": "Tovejskommunikation kunne ikke få adgang til din mikrofon",
"refused": "Tovejskommunikation kunne ikke startes. Se browserkonsollen for detaljer."
}
},
"cameraAudio": {
"enable": "Aktivér kameralyd",
@@ -14,7 +19,8 @@
"clickMove": {
"label": "Klik i billedrammen for at centrere kameraet",
"enable": "Aktivér klik for at flytte",
"disable": "Deaktiver klik for at flytte"
"disable": "Deaktiver klik for at flytte",
"enableWithZoom": "Aktivér klik for at flytte / træk for at zoome"
},
"left": {
"label": "Flyt PTZ-kameraet til venstre"
@@ -62,7 +68,8 @@
},
"recording": {
"enable": "Aktivér optagelse",
"disable": "Deaktiver optagelse"
"disable": "Deaktiver optagelse",
"disabledInConfig": "Optagelse skal først aktiveres i Indstillinger for dette kamera."
},
"snapshots": {
"enable": "Aktivér Snapshots",
@@ -107,6 +114,14 @@
"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."
"ended": "Afsluttet manuel optagelse.",
"failedToEnd": "Kunne ikke afslutte manuel optagelse."
},
"documentTitle": {
"default": "Live - Frigate"
},
"camera": {
"turnOn": "Tænd kamera",
"turnOff": "Sluk kamera"
}
}
+35 -3
View File
@@ -121,12 +121,16 @@
"copiedToClipboard": "In die Zwischenablage kopiert",
"modified": "Verändert",
"overridden": "Überschrieben",
"resetToGlobal": "Auf Global zurückgesetzen",
"resetToGlobal": "Auf Global zurücksetzen",
"resetToDefault": "Auf Werkseinstellungen zurücksetzten",
"saveAll": "Alle speichern",
"savingAll": "Alle werden gespeichert…",
"undoAll": "Alle rückgängig",
"retry": "Wiederholen"
"retry": "Wiederholen",
"expand": "Maximieren",
"collapse": "Minimieren",
"clear": "Löschen",
"reload": "Neu laden"
},
"label": {
"back": "Zurück",
@@ -226,7 +230,7 @@
"configuration": "Konfigurieren",
"withSystem": "System",
"settings": "Einstellungen",
"systemLogs": "Systemprotokoll",
"systemLogs": "Protokoll",
"systemMetrics": "Systemstatistiken",
"explore": "Erkunden",
"faceLibrary": "Gesichterbibliothek",
@@ -321,5 +325,33 @@
"validation_errors": "Validierungsfehler",
"credentialField": {
"savedPlaceholder": "Gespeichert – leer lassen, um den aktuellen Stand beizubehalten"
},
"error": {
"title": "Seite arbeitet nicht mehr",
"desc": "Die Seite erzeugt einen unerwarteten Fehler. Ein Reload löst das Problem meist. Wenn der Fehler weiter besteht, dann kopiere die Details und füge diese in einen Github-Diskussions-Eintrag hinzu.",
"staleTitle": "Neuladen erforderlich",
"staleDesc": "Ein Teil des Interface konnte nicht geladen werden, welches meist die Ursache hat, das Frigate eine Aktualisierung durchgeführt hat während das Tab offen war. Bitte neuladen.",
"partial": "Teil des Interfaces arbeitet nicht",
"copyDetails": "Kopiere Details",
"copyFailed": "Kann die Details nicht in die Zwischenablage kopieren"
},
"commandMenu": {
"title": "Befehlsmenu",
"empty": "Keine Treffer",
"section": {
"recent": "aktuell",
"pages": "Seiten",
"cameras": "Kameras",
"cameraGroups": "Kameragruppen",
"settings": "Einstellungen",
"actions": "Aktionen"
},
"camera": {
"live": "Live",
"review": "Review"
},
"action": {
"toggleTheme": "hell/dunkel umschalten"
}
}
}
+1 -2
View File
@@ -84,8 +84,7 @@
"placeholder": "Einen Fall auswählen",
"newCaseOption": "Einen neuen Fall erstellen",
"newCaseNamePlaceholder": "Neuer Fallname",
"newCaseDescriptionPlaceholder": "Fall Beschreibung",
"nonAdminHelp": "Für diese Exporte wird ein neuer Fall angelegt."
"newCaseDescriptionPlaceholder": "Fall Beschreibung"
},
"queueing": "Export wird in die Warteschlange gestellt...",
"tabs": {
+2 -2
View File
@@ -412,7 +412,7 @@
"description": "Die Erstellung von Beschreibungen für verfolgte Objekte durch GenAI standardmäßig aktivieren."
},
"use_snapshot": {
"label": "Verwenden Sie Momentaufnahmen",
"label": "Verwende Schnappschüsse",
"description": "Verwenden Sie für die Erstellung von Beschreibungen durch GenAI Objektsnapshots anstelle von Miniaturansichten."
},
"prompt": {
@@ -799,7 +799,7 @@
"description": "Bereiche, die ein Objekt betreten muss, damit ein Schnappschuss gespeichert wird."
},
"height": {
"label": "Höhe der Momentaufnahme",
"label": "Schnappschuss Höhe",
"description": "Höhe (Pixel), auf die Schnappschüsse über die API skaliert werden sollen; leer lassen, um die Originalgröße beizubehalten."
},
"retain": {
+2 -2
View File
@@ -746,7 +746,7 @@
"description": "Die Erstellung von Beschreibungen für verfolgte Objekte durch GenAI standardmäßig aktivieren."
},
"use_snapshot": {
"label": "Verwenden Sie Momentaufnahmen",
"label": "Verwende Schnappschüsse",
"description": "Verwenden Sie für die Erstellung von Beschreibungen durch GenAI Objektsnapshots anstelle von Miniaturansichten."
},
"prompt": {
@@ -1171,7 +1171,7 @@
"description": "Bereiche, die ein Objekt betreten muss, damit ein Schnappschuss gespeichert wird."
},
"height": {
"label": "Höhe der Momentaufnahme",
"label": "Schnappschuss Höhe",
"description": "Höhe (Pixel), auf die Schnappschüsse über die API skaliert werden sollen; leer lassen, um die Originalgröße beizubehalten."
},
"retain": {
+25 -10
View File
@@ -66,7 +66,7 @@
"cameraDetect": "Objekterkennung",
"cameraFfmpeg": "Streams (FFmpeg)",
"cameraRecording": "Aufnahme",
"cameraSnapshots": "Momentaufnahme",
"cameraSnapshots": "Schnappschüsse",
"cameraMotion": "Bewegungserkennung",
"cameraObjects": "Objekte",
"cameraConfigReview": "Überprüfung",
@@ -156,6 +156,26 @@
"clearStoredLayoutFailed": "Das gespeicherte Layout konnte nicht gelöscht werden: {{errorMessage}}",
"clearStreamingSettingsFailed": "Die Streaming-Einstellungen konnten nicht gelöscht werden: {{errorMessage}}"
}
},
"backupRestore": {
"title": "Sichern & Wiederherstellen",
"transfer": {
"label": "Geräteeinstellungsdatei",
"desc": "Kamera Gruppen Layout, Streaming Einstellungen und Benutzeroberflächen Einstellungen werden in Ihrem Browser gespeichert. Exportieren Sie die Werte in eine Datei zur Sicherung oder Übertragung auf ein anderes Gerät.",
"export": "Export Einstellungen",
"import": "Import Einstellungen"
},
"importDialog": {
"title": "Import Einstellungen",
"desc": "Wählen Sie was von dieser Datei zutrifft. Frigate wird neu laden wenn der Import beendet ist.",
"exportedFrom": "Exportiert {{date}} von Frigate Konfiguration Version {{version}}",
"layouts_one": "Kamera Gruppe Layouts ({{count}} Gruppe)",
"layouts_other": "Kamera Gruppen Layouts ({{count}} Gruppen)",
"streaming_one": "Streaming Einstellungen ({{count}} Kamera)",
"streaming_other": "Streaming Einstellungen ({{count}} Kameras)",
"preferences_one": "Benutzeroberfläche Vorgaben ({{count}} Einstellung)",
"preferences_other": "Benutzeroberfläche Vorgaben ({{count}} Einstellungen)"
}
}
},
"masksAndZones": {
@@ -495,13 +515,6 @@
},
"password": {
"notMatch": "Passwörter stimmen nicht überein",
"strength": {
"weak": "Schwach",
"title": "Passwortstärke: ",
"medium": "Mittel",
"strong": "Stark",
"veryStrong": "Sehr stark"
},
"confirm": {
"placeholder": "Bestätige Passwort",
"title": "Bestätige Passwort"
@@ -1367,7 +1380,9 @@
"overriddenGlobalNoDeltas": "Diese Kamera überschreibt die globale Konfiguration, es gibt jedoch keine Abweichungen bei den Feldwerten.",
"overriddenBaseConfigHeading_one": "Das Profil {{profile}} überschreibt das Feld {{count}} aus der Basiskonfiguration:",
"overriddenBaseConfigHeading_other": "Das Profil {{profile}} überschreibt di Felder {{count}} aus der Basiskonfiguration:",
"overriddenBaseConfigNoDeltas": "Das Profil {{profile}} überschreibt diesen Abschnitt, jedoch weichen keine Feldwerte von der Basiskonfiguration ab."
"overriddenBaseConfigNoDeltas": "Das Profil {{profile}} überschreibt diesen Abschnitt, jedoch weichen keine Feldwerte von der Basiskonfiguration ab.",
"overriddenLiveTooltip": "Diese Kamera verwendet einen anderen Wert als der in der Konfiguration gespeicherte und hier gezeigte Wert. Die Live Anzeige, MQTT, oder ein aktives Profil kann den Wert während des Betriebs ändern.",
"overriddenLiveValue": "Laufender Wert: {{value}}"
},
"timestampPosition": {
"tl": "Oben links",
@@ -1894,7 +1909,7 @@
"24hour": "24 Stunden"
},
"unitSystem": {
"metric": "Metrik",
"metric": "Metrisch",
"imperial": "Imperial"
}
},
+1 -1
View File
@@ -214,7 +214,7 @@
"title": "Verbindungsqualität",
"excellent": "Ausgezeichnet",
"fair": "Fair",
"poor": "arm",
"poor": "schwach",
"unusable": "Unbrauchbar",
"fps": "FPS",
"expectedFps": "Erwartete FPS",
@@ -87,7 +87,6 @@
"newCaseDescriptionPlaceholder": "Descripción de caso",
"newCaseOption": "Crear nuevo caso",
"newCaseNamePlaceholder": "Nombre del nuevo caso",
"nonAdminHelp": "Se creará un nuevo caso para estas exportaciones.",
"placeholder": "Selecciona un caso"
},
"queueing": "Poniendo la exportación en cola…",
@@ -502,13 +502,6 @@
"title": "Confirma la contraseña",
"placeholder": "Confirma la contraseña"
},
"strength": {
"title": "Fortaleza de la contraseña: ",
"weak": "Débil",
"medium": "Media",
"strong": "Fuerte",
"veryStrong": "Muy fuerte"
},
"match": "Las contraseñas coinciden",
"notMatch": "Las contraseñas no coinciden",
"show": "Mostrar contraseña",
+11 -1
View File
@@ -412,5 +412,15 @@
"cap_gun": "Mängupüstol",
"firecracker": "Ilutulestikurakett",
"eruption": "Purse/purskamine",
"burst": "Lõhkemine/plahvatmine"
"burst": "Lõhkemine/plahvatmine",
"toot": "Pasunahääl",
"mechanical_fan": "Mehaaniline ventilaator",
"wood": "Puit",
"chop": "Puuraiumine",
"silence": "Vaikus",
"shatter": "Kildudeks purunemine",
"chink": "Pragunemine",
"crack": "Raksatamine",
"sound_effect": "Heliefekt",
"environmental_noise": "Ümbruskonna müra"
}
+4 -2
View File
@@ -99,7 +99,7 @@
"newCaseOption": "Ava uus juhtum",
"newCaseNamePlaceholder": "Uue juhtumi nimi",
"newCaseDescriptionPlaceholder": "Juhtumi kirjeldus",
"nonAdminHelp": "Uus juhtum avatakse järnevatele eksportidele."
"nameRequired": "Juhtumi nimi on vajalik"
},
"queueing": "Ekspordi järjekorda lisamine...",
"tabs": {
@@ -126,7 +126,9 @@
"namePlaceholder": "Valikuline baasnimi nendele eksportidele",
"queueingButton": "Ekspordi järjekorda lisamine...",
"exportButton_one": "Ekspordi 1 kaamera",
"exportButton_other": "Ekspordi {{count}} kaamerat"
"exportButton_other": "Ekspordi {{count}} kaamerat",
"noCamerasSelected": "Vali vähemalt üks kaamera",
"caseNameDefault": "Eksport mitmest kaamerast - {{date}}"
},
"multi": {
"title_one": "Ekspordi 1 ülevaade",
+11 -5
View File
@@ -23,7 +23,8 @@
"birdseye": {
"order": {
"label": "Positsioon"
}
},
"label": "Vaade linnulennult"
},
"label": "Kaameraseadistus",
"semantic_search": {
@@ -57,7 +58,7 @@
}
},
"audio_transcription": {
"label": "Audio transkriptsioon",
"label": "Heli üleskirjutus",
"live_enabled": {
"label": "Reaalajas transkriptsioon"
},
@@ -66,7 +67,7 @@
}
},
"detect": {
"label": "Objekti tuvastus",
"label": "Objektituvastus",
"enabled": {
"label": "Luba objektituvastus"
},
@@ -97,7 +98,8 @@
"global_args": {
"label": "FFmpeg globaalsed argumendid"
}
}
},
"label": "Vood (FFmpeg)"
},
"live": {
"label": "Reaalajas mahamängimine",
@@ -196,7 +198,8 @@
"effect": {
"label": "Ajatempli efekt",
"description": "Ajatempli teksti visuaalne efekt (puudub, ühtlane, vari)."
}
},
"label": "Ajatempli stiil"
},
"onvif": {
"user": {
@@ -215,5 +218,8 @@
},
"profiles": {
"label": "Profiilid"
},
"zones": {
"label": "Tsoonid"
}
}
+12 -5
View File
@@ -23,7 +23,8 @@
"scaling_factor": {
"label": "Skaleerimistegur"
}
}
},
"label": "Vaade linnulennult"
},
"version": {
"label": "Praegune seadistuse versioon",
@@ -50,7 +51,9 @@
"save_attempts": {
"label": "Salvestamiskatsed"
}
}
},
"label": "Objektide klassifitseerimine",
"description": "Objektide märgistuste täpsustamiseks või seisundite klassifitseerimiseks kasutatavate klassifitseerimismudelite seadistused."
},
"semantic_search": {
"triggers": {
@@ -126,7 +129,7 @@
}
},
"audio_transcription": {
"label": "Audio transkriptsioon",
"label": "Heli üleskirjutus",
"live_enabled": {
"label": "Reaalajas transkriptsioon"
},
@@ -146,7 +149,7 @@
}
},
"detect": {
"label": "Objekti tuvastus",
"label": "Objektituvastus",
"enabled": {
"label": "Luba objektituvastus"
},
@@ -395,7 +398,8 @@
"effect": {
"label": "Ajatempli efekt",
"description": "Ajatempli teksti visuaalne efekt (puudub, ühtlane, vari)."
}
},
"label": "Ajatempli stiil"
},
"onvif": {
"user": {
@@ -424,5 +428,8 @@
},
"profiles": {
"label": "Profiilid"
},
"active_profile": {
"label": "Aktiivne profiil"
}
}
+2 -2
View File
@@ -45,8 +45,8 @@
"aria": "Vali sündmused",
"noFoundForTimePeriod": "Selle ajavahemiku kohta ei leidu sündmusi."
},
"selected_one": "{{count}} valitud",
"selected_other": "{{count}} valitud",
"selected_one": "Valitud on {{count}}",
"selected_other": "Valitud on {{count}}",
"markAsReviewed": "Märgi ülevaadatuks",
"markTheseItemsAsReviewed": "Märgi need kirjed ülevaadatuks",
"newReviewItems": {
+52 -4
View File
@@ -47,7 +47,10 @@
},
"deleteCase": {
"label": "Kustuta juhtum",
"desc": "Kas oled kindel, et soovid „{{caseName}}“ juhtumi kustutada?"
"desc": "Kas oled kindel, et soovid „{{caseName}}“ juhtumi kustutada?",
"descKeepExports": "Eksportimised jäävad alles valikus „kategoriseerimata eksportimised“.",
"descDeleteExports": "Sel juhul kustutatakse kõik eksportimised lõplikult.",
"deleteExports": "Lisaks kustuta kõik eksportimised"
},
"caseCard": {
"emptyCase": "Eksportimise veel pole"
@@ -60,7 +63,8 @@
"copying": "Kopeerimisel",
"encoding": "Kodeerimisel",
"encodingRetry": "Kodeerimisel (uuesti)",
"finalizing": "Lõpetamisel"
"finalizing": "Lõpetamisel",
"merging": "Mestimisel"
},
"caseView": {
"noDescription": "Kirjeldust pole",
@@ -71,11 +75,55 @@
"cameraCount_other": "{{count}} kaamerat",
"showMore": "Näita rohkem",
"showLess": "Näita vähem",
"emptyTitle": "See juhtum on tühi"
"emptyTitle": "See juhtum on tühi",
"emptyDescription": "Lisa olemasolevad kategooriata eksportimised, et hoida asjad korras.",
"emptyDescriptionNoExports": "Hetkel pole veel ühtegi kategoriseerimata eksportimist, mida saaks lisada."
},
"caseEditor": {
"namePlaceholder": "Juhtumi nimi",
"editTitle": "Muuda juhtumit",
"createTitle": "Lisa juhtum"
"createTitle": "Lisa juhtum",
"descriptionPlaceholder": "Lisa sellele juhtumile märkmeid või konteksti"
},
"selected_one": "Valitud on {{count}}",
"selected_other": "Valitud on {{count}}",
"bulkActions": {
"addToCase": "Lisa juhtumile",
"moveToCase": "Tõsta juhtumi juurde",
"removeFromCase": "Eemalda juhtumist",
"delete": "Kustuta",
"deleteNow": "Kustuta kohe"
},
"bulkDelete": {
"title": "Kustuta eksporditud sisu",
"desc_one": "Kas sa oled kindel, et soovid {{count}} eksportimise kustutada?",
"desc_other": "Kas sa oled kindel, et soovid {{count}} eksportimist kustutada?"
},
"bulkRemoveFromCase": {
"title": "Eemalda juhtumist",
"desc_one": "Kas eemaldad {{count}} eksportimise sellest juhtumist?",
"desc_other": "Kas eemaldad {{count}} eksportimist sellest juhtumist?",
"descKeepExports": "Eksportimised tõstetakse kategoriseerimata valikute alla.",
"descDeleteExports": "Eksportimised kustutatakse lõplikult.",
"deleteExports": "Selle asemel kustuta eksportimised"
},
"bulkToast": {
"success": {
"delete": "Eksportimised on kenasti kustutatud",
"reassign": "Juhtumile lisamine õnnestus kenasti",
"remove": "Eksportimised on kenasti juhtumist eemaldatud"
},
"error": {
"deleteFailed": "Eksportimiste kustutamine ei õnnestunud: {{errorMessage}}",
"reassignFailed": "Lisamine juhtumile ei õnnestunud: {{errorMessage}}"
}
},
"addExportDialog": {
"addButton_one": "Lisa 1 eksportimine",
"addButton_other": "Lisa {{count}} eksportimist",
"adding": "Lisan…",
"title": "Lisa eksportimine juhtumile „{{caseName}}“",
"searchPlaceholder": "Otsi kategoriseerimata eksportimisi",
"empty": "Ükski kategoriseerimata eksportimine ei vasta sellele otsingule."
}
}
+4 -3
View File
@@ -6,7 +6,7 @@
"streamingSettings": "Voogedastuse seadistused",
"cameraSettings": {
"title": "Seadistused: {{camera}}",
"objectDetection": "Objektide tuvastamine",
"objectDetection": "Objektituvastus",
"audioDetection": "Heli tuvastus",
"transcription": "Heli üleskirjutus",
"snapshots": "Hetkvõtted",
@@ -141,11 +141,12 @@
},
"unavailable": {
"browser": "Sinu veebibrauseris puudub WebRTC tugi.",
"not-configured": "WebRTC pole seadistatud. Seadista go2rtc webrtc kandidaadid või ice_server teenused.",
"not-configured": "Sisselülitamiseks lisa selle serveri IP-aadress:8555 valikust go2rtc → webrtc → kandidaadid.",
"unreachable": "WebRTC ühendamine ei õnnestunud. Kontrolli, et port 8555 on kättesaadav ja STUN/TURN-serveri seadistus on õige.",
"video-codec": "Selles veebibrauseris puudub WebRTC jaoks antud voogedastuse videokoodeki tugi.",
"audio-codec": "WebRTC ei toeta selle voogedastuse helikoodekit. Kodeeri go2rtc abil opus või G.711 vormingusse.",
"checking": "Kontrollin WebRTC saadavust…"
"checking": "Kontrollin WebRTC saadavust…",
"notConfiguredOptional": "Valikuline: reaalajas vaade toimib ilma selleta. WebRTC on eelkõige vajalik kahepoolse suhtluse jaoks."
}
},
"auto": {
@@ -51,7 +51,9 @@
"invalidTimeRange": "Lõppaeg peab olema pärast algusaega",
"searchFailed": "Otsing ebaõnnestus: {{message}}",
"polygonTooSmall": "Hulknurgal peab olema vähemalt 3 punkti",
"unknown": "Tundmatu viga"
"unknown": "Tundmatu viga",
"alreadyRunning": "Sul juba on liikumise tuvastuse otsing töös. Oota, et see lõppeks või katkesta otsing.",
"tooManySearches": "Liiga palju liikumise tuvastuse otsinguid on töös. Proovi uuesti, kui mõni neist on lõppenud."
},
"changePercentage": "{{percentage}}% muutus",
"metrics": {
+124 -20
View File
@@ -157,13 +157,6 @@
"title": "Korda salasõna",
"placeholder": "Korda salasõna"
},
"strength": {
"title": "Salasõna tugevus: ",
"weak": "Nõrk",
"medium": "Keskmime",
"strong": "Tugev",
"veryStrong": "Väga tugev"
},
"match": "Salasõnad klapivad omavahel",
"notMatch": "Salasõnad ei klapi omavahel",
"show": "Näita salasõna",
@@ -293,16 +286,65 @@
"enabled": "Kasutusel",
"ffmpeg": {
"pathPlaceholder": "rtsp://...",
"roles": "Rollid"
"roles": "Rollid",
"rolesRequired": "Vajalik on vähemalt üks roll"
}
},
"clone": {
"categories": {
"items": {
"lpr": "Sõidukite numbrimärkide tuvastus",
"genai": "Generatiivne tehisaru"
}
}
"genai": "Generatiivne tehisaru",
"zones": "Tsoonid",
"face_recognition": "Näotuvastus",
"semantic_search": "Semantiline otsing",
"birdseye": "Vaade linnulennult",
"audio_transcription": "Heli üleskirjutus",
"profiles": "Profiilid",
"notifications": "Teavitused",
"mqtt": "MQTT",
"timestamp_style": "Ajatempli stiil",
"onvif": "ONVIF",
"audio": "Heli tuvastus"
},
"legend": "Kloonitavad seadistused",
"description": "Vali seadistused, mida tahad lähtekaamerast kopeerida.",
"selectAll": "Vali kõik",
"selectNone": "Vali mitte midagi",
"resetDefaults": "Lähtesta vaikimisi seadistusteks"
},
"target": {
"existingCamerasRadio": "Olemasolevad kaamerad",
"allCameras": "Kõik kaamerad",
"existingPlaceholder": "Vali vähemalt üks kaamera",
"existingDisabled": "Pole muid kaameraid, kuhu seda kopeerida",
"legend": "Sihtkaamera",
"newRadio": "Uus kaamera",
"newNameLabel": "Kaamera nimi",
"newNamePlaceholder": "nt. tagauks või hoovipoolne_uks",
"newNameRequired": "Kaamera nim on vajalik",
"newNameInvalid": "Vigane kaamera nimi",
"newNameCollision": "Sellise nimega kaamera on juba olemas",
"newStreamsForced": "Uue kaamera jaoks kopeeritakse alati voogedastused."
},
"button": "Klooni seadistused",
"sectionDescription": "Kopeeri seadistused ühest kaamerast teise või sootuks uude kaamerasse.",
"title": "Sulge kaamera seadistused",
"source": {
"label": "Lähtekaamera",
"placeholder": "Vali lähtekaamera",
"required": "Vali lähtekaamera"
},
"description": "Kopeeri kaamera seadistused ühete või mitmesse teisese kaamerasse või uuede kaamerasse. Tuvastusandmeid (nimi, lühinimi, veebiliidese võrguaadress, kuvamisjärjekord) ei kuulu iialgi kopeerimisele."
},
"profiles": {
"on": "Sees",
"off": "Väljas"
},
"cameraType": {
"title": "Kaameratüüp",
"label": "Kaameratüüp",
"normal": "Tavaline"
}
},
"notification": {
@@ -427,7 +469,7 @@
"integrationLpr": "Sõidukite numbrimärkide tuvastus",
"cameraLpr": "Sõidukite numbrimärkide tuvastus",
"uiSettings": "Kasutajaliidese seadistused",
"globalDetect": "Objektide tuvastamine",
"globalDetect": "Objektituvastus",
"globalRecording": "Salvestamine",
"globalSnapshots": "Hetkvõtted",
"globalFfmpeg": "FFmpeg",
@@ -458,7 +500,7 @@
"system": "Süsteem",
"integrations": "Integratsioonid",
"cameras": "Kaamera seaded",
"integrationFaceRecognition": "Nöotuvastus",
"integrationFaceRecognition": "Näotuvastus",
"cameraDetect": "Objektituvastus",
"cameraFfmpeg": "Vood (FFmpeg)",
"cameraRecording": "Salvestus",
@@ -466,11 +508,11 @@
"cameraMotion": "Liikumistuvastus",
"cameraObjects": "Objektid",
"cameraConfigReview": "Ülevaade",
"cameraAudioEvents": "audiotuvastus",
"cameraAudioTranscription": "Audio transkriptsioon",
"cameraNotifications": "Teated",
"cameraAudioEvents": "Heli tuvastus",
"cameraAudioTranscription": "Heli üleskirjutus",
"cameraNotifications": "Teavitused",
"cameraLivePlayback": "Otseülekanne",
"integrationAudioTranscription": "Audio transkriptsioon",
"integrationAudioTranscription": "Heli üleskirjutus",
"integrationObjectClassification": "Objektide klassifitseerimine",
"cameraFaceRecognition": "Näotuvastus",
"cameraMqttConfig": "MQTT",
@@ -482,7 +524,8 @@
"mediaSync": "Meedia sünkroonimine",
"regionGrid": "Regioonide ruudustik",
"enrichments": "Andmete rikastamine",
"motionTuner": "Liikumistuvastuse seadistaja"
"motionTuner": "Liikumistuvastuse seadistaja",
"cameraBirdseye": "Vaade linnulennult"
},
"dialog": {
"unsavedChanges": {
@@ -602,7 +645,9 @@
}
},
"profiles": {
"nameInvalid": "Lubatud on vaid väiketähed, numbrid ja alakriipsud"
"nameInvalid": "Lubatud on vaid väiketähed, numbrid ja alakriipsud",
"title": "Profiilid",
"activeProfile": "Aktiivne profiil"
},
"go2rtcStreams": {
"validation": {
@@ -611,7 +656,66 @@
},
"configForm": {
"sections": {
"lpr": "Sõidukite numbrimärkide tuvastus"
"lpr": "Sõidukite numbrimärkide tuvastus",
"face_recognition": "Näotuvastus",
"birdseye": "Vaade linnulennult",
"notifications": "Teavitused",
"live": "Reaalajas vaade",
"timestamp_style": "Ajatemplid",
"mqtt": "MQTT",
"database": "Andmebaas",
"telemetry": "Telemeetria",
"auth": "Autentimine",
"tls": "TLS",
"proxy": "Proksiserver",
"go2rtc": "go2rtc",
"ffmpeg": "FFmpeg"
},
"zoneNames": {
"summary": "Valitud on {{count}}",
"empty": "Ühtegi tsooni pole saadaval"
},
"birdseyeModes": {
"summary": "Valitud on {{count}}"
},
"review": {
"title": "Ülevaatamise seadistused"
},
"audio": {
"title": "Heliseadistused"
},
"notifications": {
"title": "Teavituste seadistused"
},
"live": {
"title": "Reaalajas vaate seadistused"
},
"timestamp_style": {
"title": "Ajatempli seadistused"
},
"searchPlaceholder": "Otsi…",
"addCustomLabel": "Lisa sinu määratud silt…",
"genaiModel": {
"placeholder": "Vali või sisesta mudel…",
"search": "Otsi mudelit või sisesta see…",
"noModels": "Ühtegi mudelit pole saadaval",
"available": "Saadaval mudelid",
"useCustom": "Kasuta mudelit „{{value}}“",
"refresh": "Laadi mudelid uuesti"
},
"ptzPresets": {
"noPresets": "Ühtegi eelseadistust pole saadaval",
"available": "Kaamera eelseadistused",
"useCustom": "Kasuta väärtust „{{value}}“"
},
"defaultRole": {
"admin": "Peakasutaja",
"viewer": "Vaataja",
"none": "Puudub (ligipääs on keelatud)"
},
"audioTranscriptionModel": {
"placeholder": "Vali mudel…",
"builtIn": "Rakendusega kaasaolevad mudelid"
}
},
"configMessages": {
+32 -2
View File
@@ -9,7 +9,8 @@
"nginx": "Nginx logid - Frigate",
"websocket": "Sõnumite logid - Frigate"
},
"enrichments": "Rikastus statistika - Frigate"
"enrichments": "Rikastus statistika - Frigate",
"health": "Süsteemi korrasolek - Frigate"
},
"logs": {
"download": {
@@ -222,5 +223,34 @@
"inferenceSpeed": "Detektori järelduskiirus",
"cpuUsageInformation": "Protsessori võimsus, mida kasutatakse tuvastusmudelite sisend- ja väljundandmete ettevalmistamisel. See väärtus ei mõõda järelduste kasutamist isegi siis, kui kasutatakse graafikaprotsessorit või kiirendit."
}
}
},
"health": {
"hardware": {
"enrichments": {
"face_recognition": "Näotuvastus",
"lpr": "Sõidukite numbrimärkide tuvastus",
"audio_transcription": "Heli üleskirjutus"
},
"objectDetection": "Objektituvastus",
"title": "Riistvara",
"hardwareAcceleration": "Raudvaraline kiirendus",
"allCameras": "Kõik kaamerad",
"probeUnavailable": "Riistvara tuvastamine pole saadaval",
"justStarted": "Frigate on just käivitunud",
"deviceNotFound": "{{devices}} polnud siit süsteemist leitav",
"detectorNotRunning": "Tuvastusprotsess pole töös",
"inferenceVerySlow": "Järeldamine on väga aeglane ({{speed}} msek)",
"inferenceSlow": "Järeldamine on aeglane ({{speed}} msek)",
"inferenceMs": "{{speed}} msek",
"customArgs": "Sinu lisatavad ffmpeg-i argumendid",
"customArgsNotVerified": "Sinu lisatavad ffmpeg-i argumendid, mida ei kontrollita"
},
"title": "Korrasolek",
"notices": {
"title": "Teated",
"empty": "Sinu Frigate'i paigaldus on korras"
}
},
"showAllTabs": "Näita kõiki vahekaarte",
"showLessTabs": "Näita vähem"
}
@@ -122,7 +122,6 @@
"newCaseNamePlaceholder": "نام پرونده جدید",
"newCaseDescriptionPlaceholder": "توضیحات مورد",
"label": "مورد",
"nonAdminHelp": "یک مورد جدید برای این خروجی‌ها ایجاد خواهد شد.",
"placeholder": "انتخاب یک مورد"
},
"queueing": "در حال قرار دادن خروجی در صف...",
@@ -963,13 +963,6 @@
"title": "تأیید گذرواژه",
"placeholder": "تأیید گذرواژه"
},
"strength": {
"title": "قدرت گذرواژه: · ",
"weak": "ضعیف",
"medium": "متوسط",
"strong": "قوی",
"veryStrong": "خیلی قوی"
},
"requirements": {
"title": "الزامات رمز عبور:",
"length": "حداقل ۸ کاراکتر"
+11 -11
View File
@@ -171,7 +171,7 @@
"sitar": "Sitar",
"mandolin": "Mandoliini",
"ukulele": "Ukulele",
"zither": "Sitara",
"zither": "Kantele",
"whale_vocalization": "Valaan laulu",
"buzz": "Surina",
"steel_guitar": "Teräskielikitara",
@@ -224,7 +224,7 @@
"jingle_bell": "Kulkunen",
"chime": "Kilahdus",
"wind_chime": "Tuulikello",
"harmonica": "Harmonika",
"harmonica": "Huuliharppu",
"accordion": "Haitari",
"bagpipes": "Säkkipilli",
"didgeridoo": "Didgeridoo",
@@ -274,7 +274,7 @@
"salsa_music": "Salsa musiikki",
"flamenco": "Flamenco",
"blues": "Blues",
"music_for_children": "Lastenmusiikki",
"music_for_children": "Lasten musiikki",
"new-age_music": "New Age musiikki",
"vocal_music": "Laulumusiikki",
"a_capella": "A Capella",
@@ -310,11 +310,11 @@
"thunder": "Ukkonen",
"water": "Vesi",
"rain": "Sade",
"raindrop": "Sadepisarat",
"raindrop": "Sadepisara",
"rain_on_surface": "Sateen ropina",
"stream": "Virta",
"stream": "Striimi",
"waterfall": "Vesiputous",
"ocean": "Meri",
"ocean": "Valtameri",
"waves": "Aallot",
"steam": "Höyry",
"gurgling": "Korina",
@@ -330,9 +330,9 @@
"power_windows": "Sähköikkuna",
"skidding": "Liiraaminen",
"tire_squeal": "Renkaan kiljunta",
"car_passing_by": "Ohimenevä auto",
"car_passing_by": "Auto ohittaa",
"race_car": "Kilpa-auto",
"truck": "Rekka",
"truck": "Kuorma-auto",
"air_horn": "Ilmatorvi",
"reversing_beeps": "Peruutustutka",
"ice_cream_truck": "Jääteloauto",
@@ -406,12 +406,12 @@
"mechanisms": "Koneiston ääni",
"tick": "Tik",
"tick-tock": "Tik-tak",
"pulleys": "Väkipyörät",
"pulleys": "Hihnapyörät",
"single-lens_reflex_camera": "Järjestelmäkamera",
"jackhammer": "Poravasara",
"jackhammer": "Katupora",
"filing": "Viilaus",
"power_tool": "Akkuporakone",
"gunshot": "Pistoolinlaukaus",
"gunshot": "Laukaus",
"fusillade": "Tulitus",
"cap_gun": "Nallipyssy",
"burst": "Sarjatuli",
+164 -12
View File
@@ -41,9 +41,42 @@
"second_one": "{{time}} sekunti",
"second_other": "{{time}} sekuntia",
"formattedTimestampHourMinute": {
"24hour": "HH:mm"
"24hour": "HH:mm",
"12hour": "h:mm aaa"
},
"never": "Ei koskaan"
"never": "Ei koskaan",
"formattedTimestamp": {
"12hour": "d MMM, h:mm:ss aaa",
"24hour": "d MMM, HH:mm:ss"
},
"formattedTimestamp2": {
"12hour": "dd/MM h:mm:ssa",
"24hour": "d MMM HH:mm:ss"
},
"formattedTimestampHourMinuteSecond": {
"12hour": "h:mm:ss aaa",
"24hour": "HH:mm:ss"
},
"formattedTimestampMonthDayHourMinute": {
"12hour": "d MMM, h:mm aaa",
"24hour": "d MMM, HH:mm"
},
"formattedTimestampMonthDayYear": {
"12hour": "d MMM, yyyy",
"24hour": "d MMM, yyyy"
},
"formattedTimestampMonthDayYearHourMinute": {
"12hour": "d MMM yyyy, h:mm aaa",
"24hour": "d MMM yyyy, HH:mm"
},
"formattedTimestampMonthDay": "d MMM",
"formattedTimestampFilename": {
"12hour": "dd-MM-yy-h-mm-ss-a",
"24hour": "dd-MM-yy-HH-mm-ss"
},
"inProgress": "Käynnissä",
"invalidStartTime": "Epäkelpo aloitusaika",
"invalidEndTime": "Epäkelpo lopetusaika"
},
"pagination": {
"next": {
@@ -86,7 +119,7 @@
},
"explore": "Selaa",
"export": "Vienti",
"uiPlayground": "UI-leikkikenttä",
"uiPlayground": "Käyttöliittymäleikkikenttä",
"user": {
"account": "Tili",
"current": "Nykyinen käyttäjä: {{user}}",
@@ -109,7 +142,49 @@
"ca": "Katalaani",
"withSystem": {
"label": "Käytä järjestelmän asetuksia kielelle"
}
},
"en": "Englanti (Englanti)",
"es": "Espanja (Espanja)",
"zhCN": "简体中文 (Yksinkertaistettu Kiina)",
"zhHant": "繁體中文 (Perinteinen Kiina)",
"hi": "हिन्दी (Hindi)",
"fr": "Ranska (Ranska)",
"ar": "العربية (Arabia)",
"pt": "Portugali (Portugali)",
"ptBR": "Brasilian portugali (Brasilian portugali)",
"ru": "Русский (Venäjä)",
"de": "Saksa (Saksa)",
"ja": "日本語 (Japani)",
"tr": "Turkki (Turkki)",
"it": "Italia (Italia)",
"nl": "Hollanti (Hollanti)",
"sv": "Ruotsi (Ruotsi)",
"cs": "Tsekki (Tsekki)",
"nb": "Norja (Norja)",
"ko": "한국어 (Korea)",
"vi": "Vietnam (Vietnam)",
"fa": "فارسی (Persia)",
"pl": "Puola (Puola)",
"uk": "Українська (Ukraina)",
"be": "Беларуская (Valkovenäjä)",
"he": "עברית (Heprea)",
"el": "Ελληνικά (Kreikka)",
"ro": "Romania (Romania)",
"hu": "Unkari (Unkari)",
"fi": "Suomi (Suomi)",
"da": "Tanska (Tanska)",
"sk": "Slovakia (Slovakia)",
"yue": "粵語 (Kantonin kiina)",
"th": "ไทย (Thaimaa)",
"hr": "Kroatia (Kroatia)",
"bs": "Bosnia (Bosnia)",
"sr": "Serbia (Serbia)",
"sl": "Slovenia (Slovenia)",
"lt": "Liettua (Liettua)",
"bg": "Bulgaria (Bulgaria)",
"gl": "Galego (Galicia)",
"id": "Indonesia (Indonesia)",
"ur": "اردو (Urdu)"
},
"review": "Esikatselu",
"theme": {
@@ -131,16 +206,25 @@
"languages": "Kielet",
"system": "Järjestelmä",
"settings": "Asetukset",
"configuration": "Konfiguraatio"
"configuration": "Asetukset",
"actions": "Toiminnot",
"features": "Ominaisuudet",
"classification": "Luokittelu",
"chat": "Chat",
"systemMetrics": "Tila ja mittarit",
"systemLogs": "Lokit",
"profiles": "Profiilit",
"configurationEditor": "Asetuseditori"
},
"toast": {
"copyUrlToClipboard": "URL kopioitu leikepöydälle.",
"save": {
"title": "Tallenna",
"error": {
"title": "Konfiguraatiomuutosten tallennus epäonnistui: {{errorMessage}}",
"noMessage": "Konfiguraatiomuutosten tallennus epäonnistui"
}
"title": "Asetusten tallennus epäonnistui: {{errorMessage}}",
"noMessage": "Asetusten tallennus epäonnistui"
},
"success": "Asetusmuutokset tallennettu onnistuneesti."
}
},
"button": {
@@ -180,11 +264,39 @@
"twoWayTalk": "Kahdensuuntainen puhe",
"cameraAudio": "Kameran ääni",
"exitFullscreen": "Poistu koko näytöstä",
"copyCoordinates": "Kopioi koordinaatit"
"copyCoordinates": "Kopioi koordinaatit",
"suspended": "Keskeytetty",
"unsuspended": "Jatka",
"unselect": "Poista valinta",
"export": "Vie",
"deleteNow": "Poista nyt",
"continue": "Jatka",
"modified": "Muutettu",
"resetToGlobal": "Palauta yleisiin asetuksiin",
"resetToDefault": "Palauta oletusasetuksiin",
"saveAll": "Tallenna kaikki",
"savingAll": "Tallennetaan kaikkia…",
"undoAll": "Peruuta kaikki",
"retry": "Yritä uudelleen",
"reload": "Päivitä",
"overridden": "Syrjäytetty"
},
"unit": {
"length": {
"feet": "jalka"
"feet": "jalka",
"meters": "metriä"
},
"speed": {
"mph": "mph",
"kph": "km/h"
},
"data": {
"kbps": "kB/s",
"mbps": "MB/s",
"gbps": "GB/s",
"kbph": "kB/tunti",
"mbph": "MB/tunti",
"gbph": "GB/tunti"
}
},
"readTheDocumentation": "Lue dokumentaatio",
@@ -194,7 +306,8 @@
"ID": "ID",
"none": "Ei mitään",
"all": "Kaikki",
"other": "Muu"
"other": "Muu",
"back": "Palaa"
},
"list": {
"two": "{{0}} ja {{1}}",
@@ -204,5 +317,44 @@
"field": {
"optional": "Vaihtoehtoinen",
"internalID": "Frigaten sisäisesti käyttämä ID asetuksissa ja tietokannassa"
}
},
"error": {
"title": "Tämä sivu lakkasi toimimasta",
"desc": "Sivulla tapahtui odottamaton virhe. Uudelleenlataus yleensä auttaa. Mikäli virhe toistuu, kopioi tiedot ja liitä ne GitHubin keskusteluun.",
"staleTitle": "Lataa uudelleen",
"staleDesc": "Osaa käyttöliittymästä ei voitu ladata, johtuu yleensä Frigaten päivittymisestä välilehden ollessa auki. Lataa uusi versio päivittämällä sivu.",
"partial": "Osa käyttöliittymästä lopetti toimintansa.",
"copyDetails": "Kopioi lisätiedot",
"copyFailed": "Lisätietoja ei voitu kopioida leikepöydälle"
},
"credentialField": {
"savedPlaceholder": "Tallennettu — Jätä tyhjäksi pitääksesi nykyisen"
},
"commandMenu": {
"title": "Komentovalikko",
"description": "Hakusivut, kamerat, asetukset ja toiminnot",
"placeholder": "Hakusivut, kamerat, asetukset ja toiminnot",
"empty": "Ei osumia",
"hint": "{{key}} tai / avataksesi, Enter käynnistää",
"section": {
"recent": "Viimeisin",
"pages": "Sivut",
"cameras": "Kamerat",
"cameraGroups": "Kameraryhmät",
"settings": "Asetukset",
"actions": "Toiminnot"
},
"camera": {
"live": "Live",
"review": "Tarkastele"
},
"action": {
"toggleTheme": "Kytke vaalea ja tumma tila"
}
},
"information": {
"pixels": "{{area}}px"
},
"no_items": "Ei tuloksia",
"validation_errors": "Tarkistusvirheet"
}
+1 -1
View File
@@ -63,7 +63,7 @@
"label": "Yhteensopivuustila",
"desc": "Ota tämä vaihtoehto käyttöön vain, jos kamerasi live-suoratoistossa näkyy väriartefakteja ja kuvan oikealla puolella on vinoviiva."
},
"stream": "Kuvavirta",
"stream": "Kuvastriimi",
"placeholder": "Valitse kuvavirta"
},
"birdseye": "Linnun silmä"
+123 -10
View File
@@ -7,7 +7,7 @@
"content": "Tämä sivu latautuu uudelleen {{countdown}} sekunnin kuluttua.",
"button": "Pakota uudelleenlataus nyt"
},
"description": "Tämä sammuttaa Frigaten lyhyeksi aikaa uudelleenkäynnistyksen ajaksi."
"description": "Tämä pysäyttää Frigaten uudelleenkäynnistyksen ajaksi."
},
"explore": {
"plus": {
@@ -24,6 +24,9 @@
},
"state": {
"submitted": "Lähetetty"
},
"toast": {
"error": "Frigate+ toimitus epäonnistui. Tarkista verkkoyhteys ja yritä uudelleen."
}
}
},
@@ -54,30 +57,101 @@
"selectOrExport": "Valitse tai Vie",
"toast": {
"error": {
"failed": "Viennin aloitus epäonnistui: {{error}}",
"endTimeMustAfterStartTime": "Lopetusajan pitää olla aloitusajan jälkeen"
"failed": "Viennin jonotus epäonnistui: {{error}}",
"endTimeMustAfterStartTime": "Lopetusajan pitää olla aloitusajan jälkeen",
"noValidTimeSelected": "Kelvollista aikajanaa ei valittuna"
},
"success": "Vienti käynnistettiin onnistuneesti. Katso tiedosto /export kansiossa."
"success": "Vienti käynnistettiin onnistuneesti. Katso tiedosto viennit sivulla.",
"queued": "Vienti jonossa. Näytä edistyminen viennit sivulta.",
"view": "Näytä",
"batchSuccess_one": "1 vienti aloitettu. Avataan tapahtuma.",
"batchSuccess_other": "{{count}} vientiä aloitettu. Avataan tapahtuma.",
"batchPartial": "{{successful}} {{total}}:sta viennistä aloitettu. Epäonnistuneet kamerat: {{failedCameras}}",
"batchFailed": "{{total}} viennin aloitus epäonnistui. Epäonnistuneet kamerat: {{failedCameras}}",
"batchQueuedSuccess_one": "1 vienti jonossa.",
"batchQueuedSuccess_other": "{{count}} vientiä jonossa.",
"batchQueuedPartial": "{{successful}} {{total}}:sta viennistä siirretty jonoon. Epäonnistuneet kamerat: {{failedCameras}}",
"batchQueueFailed": "Jonotus epäonnistui {{total}}:sta viennistä. Epäonnistuneet kamerat: {{failedCameras}}"
},
"fromTimeline": {
"saveExport": "Tallenna vienti",
"previewExport": "Esikatsele vientiä"
"previewExport": "Esikatsele vientiä",
"queueingExport": "Jonotetaan vientiä...",
"useThisRange": "Käytä tätä aikaväliä"
},
"multiCamera": {
"noCameras": "Ei kameroita saatavilla",
"cameraSelection": "Kamerat",
"selectAll": "Valitse kaikki kamerat",
"selectGroup": "Valitse ryhmä"
"selectGroup": "Valitse ryhmä",
"timeRange": "Aikajakso",
"selectFromTimeline": "Valitse aikajanalta",
"cameraSelectionHelp": "Esivalittuna tältä ajanjaksolta kamerat joilla seurattuja kohteita",
"searchOrSelectGroup": "Etsi, tai valitse kameraryhmä...",
"clearSelection": "Tyhjennä valinta",
"selectWithActivity": "Kamerat joilla seurattuja kohteita",
"noMatchingCameras": "Hakusi ei vastannut yhtään kameraa",
"selectedCount": "{{selected}} / {{total}} valittuna",
"checkingActivity": "Tarkistetaan kameran toimintaa...",
"detectionCount_one": "1 seurattu kohde",
"detectionCount_other": "{{count}} seurattua kohdetta",
"nameLabel": "Viennin nimi",
"namePlaceholder": "Valinnainen perusnimi näille vienneille",
"queueingButton": "Vientejä jonossa...",
"exportButton_one": "Vie 1 kamera",
"exportButton_other": "Vie {{count}} kameraa"
},
"multi": {
"exportingButton": "Viedään...",
"title_one": "Vie 1 tarkastelu",
"title_other": "Vie {{count}} tarkastelua",
"description": "Vie jokainen valittu tarkastelu. Kaikki viennit ryhmitetään yhden tapahtuman alle.",
"descriptionNoCase": "Vie valitut tarkastelut.",
"caseNamePlaceholder": "Tarkastelun vienti - {{date}}",
"exportButton_one": "Vie 1 tarkastelu",
"exportButton_other": "Vie {{count}} tarkastelua",
"toast": {
"started_one": "1 vienti aloitettu.{{count}}.",
"started_other": "{{count}} vientiä aloitettu.",
"partial": "Aloitettu {{successful}} {{total}}:sta viennistä. Epäonnistui:{{failedItems}}",
"failed": "{{total}} vientiä epäonnistui. Epäonnistui: {{failedItems}}"
}
},
"stream": {
"label": "Laatu",
"auto": "Automaattinen",
"main": "Alkuperäinen",
"sub": "Matala",
"autoDesc": "Käyttää päästriimiä ja palautuu huonompilaatuiseen alistriimiin mikäli päästriimiä ei ole saatavissa.",
"mainDesc": "Vie ainoastaan alkuperäislaatuisen päästriimin. Poislukien aikajaksot joilta ei ole päästriimiä.",
"subDesc": "Vie ainoastaan alempilaatuisen alistriimin. Poislukien ajanjaksot joilta ei ole alistriimiä."
},
"case": {
"newCaseOption": "Luo uusi tapahtuma",
"newCaseNamePlaceholder": "Uuden tapahtuman nimi",
"newCaseDescriptionPlaceholder": "Tapahtuman kuvaus",
"label": "Tapahtuma",
"placeholder": "Valitse tapahtuma"
},
"queueing": "Vienti jonossa...",
"tabs": {
"export": "Yksi kamera",
"multiCamera": "Useampi kamera"
}
},
"streaming": {
"label": "Kuvavirta",
"label": "Kuvastriimi",
"restreaming": {
"disabled": "Uudelleentoisto ei ole käytettävissä tällä kameralla.",
"disabled": "Uudelleenstriimaus ei ole käytössä tässä kamerassa.",
"desc": {
"title": "Määritä go2rtc saadaksesi lisäreaaliaikanäkymän vaihtoehtoja ja ääntä tälle kameralle."
}
}
},
"showStats": {
"label": "Näytä striimistatistiikka",
"desc": "Valitse tämä vaihtoehto striimistatistiikan näyttämiseksi kamerasyötön päällä."
},
"debugView": "Vianetsintänäkymä"
},
"search": {
"saveSearch": {
@@ -87,12 +161,51 @@
"label": "Tallenna tämä haku"
}
},
"placeholder": "Nimeä haku"
"placeholder": "Nimeä haku",
"desc": "Anna tallennetulle haulle nimi.",
"overwrite": "{{searchName}} löytyy jo. Tallennus ylikirjoittaa olemassaolevan nimen.",
"success": "Hakusi ({{searchName}}) on tallennettu."
}
},
"imagePicker": {
"search": {
"placeholder": "Hae nimikkeen tai alinimikkeen mukaan..."
},
"selectImage": "Valitse seurattujen kohteiden pikkukuva",
"unknownLabel": "Laukaisukuva tallennettu",
"noImages": "Tälle kameralle ei löytynyt pikkukuvia"
},
"recording": {
"shareTimestamp": {
"label": "Jaa aikaleima",
"title": "Jaa aikaleima",
"description": "Jaa aikaleimattu URL soittimen nykyisestä kohdasta tai valitse oma aikaleima. Huomaa, että tämä ei ole julkinen URL, vaan saatavilla ainoastaan Frigaten ja kameran käyttäjille.",
"custom": "Oma aikaleima",
"button": "Jaa aikaleima URL",
"shareTitle": "Frigate tarkastelun aikaleima: {{camera}}"
},
"confirmDelete": {
"title": "Vahvista poisto",
"desc": {
"selected": "Haluatko varmasti poistaa tämän tapahtuman kaikki videot?<br /><br />Pidä <em>Shift</em> näppäintä pohjassa ohittaaksesi tämän kysymyksen jatkossa."
},
"toast": {
"success": "Valittujen tarkasteluiden videot on poistettu onnistuneesti.",
"error": "Poisto epäonnistui: {{error}}"
}
},
"button": {
"export": "Vie",
"markAsReviewed": "Merkitse tarkastetuksi",
"markAsUnreviewed": "Merkitse tarkastamattomaksi",
"deleteNow": "Poista nyt",
"generateDescription": "Luo kuvaus"
},
"genaiDescription": {
"toast": {
"success": "Tekoälykuvausta pyydetty tälle tarkastelulle.",
"error": "Kuvauksen pyyntö epäonnistui: {{error}}"
}
}
}
}
+17 -2
View File
@@ -51,10 +51,10 @@
"scoreDesc": "Kohteen pisteet (Laskeva)",
"speedAsc": "Arvioitu nopeus (Nouseva)",
"speedDesc": "Arvioitu nopeus (Laskeva)",
"relevance": "Olennaisuus"
"relevance": "Vastaavuus"
},
"cameras": {
"label": "Kameran suodattimet",
"label": "Kamerasuodatin",
"all": {
"title": "Kaikki kamerat",
"short": "Kamerat"
@@ -91,5 +91,20 @@
"attributes": {
"label": "Luokitusominaisuudet",
"all": "Kaikki ominaisuudet"
},
"review": {
"showReviewed": "Näytä tarkastetut"
},
"motion": {
"showMotionOnly": "Näytä ainoastaan liike"
},
"explore": {
"settings": {
"title": "Asetukset",
"defaultView": {
"title": "Oletusnäkymä",
"summary": "Yhteenveto"
}
}
}
}
+4 -3
View File
@@ -6,13 +6,14 @@
},
"friendly_name": {
"label": "Kutsumanimi",
"description": "Kameran kutsumanimeä käytetään Frigaten käyttöliittymässä"
"description": "Kutsumanimi jota käytetään Frigaten käyttöliittymässä"
},
"enabled": {
"description": "Käytössä"
"description": "Käytössä",
"label": "Käytössä"
},
"audio": {
"label": "Ääni tapahtumat",
"label": "Äänitunnistus",
"description": "Äänipohjaisen havaitsemisen asetukset tälle kameralle.",
"enabled": {
"label": "Ota ääni havainnointi käyttöön",
+1 -1
View File
@@ -13,7 +13,7 @@
}
},
"audio": {
"label": "Ääni tapahtumat",
"label": "Äänitunnistus",
"enabled": {
"label": "Ota ääni havainnointi käyttöön"
}
@@ -8,12 +8,12 @@
"button": {
"deleteImages": "Poista kuvat",
"trainModel": "Kouluta malli",
"deleteClassificationAttempts": "Poista luokitellut kuvat",
"deleteClassificationAttempts": "Poista luokittelukuvat",
"deleteCategory": "Poista luokka",
"addClassification": "Lisää luokitus",
"addClassification": "Lisää luokittelu",
"deleteModels": "Poista mallit",
"editModel": "Muokkaa mallia",
"renameCategory": "Nimeä luokka uudelleen"
"renameCategory": "Uudelleennimeä luokka"
},
"toast": {
"success": {
@@ -35,5 +35,9 @@
"deleteModelFailed": "Mallin poistaminen epäonnistui: {{errorMessage}}",
"categorizeFailed": "Kuvan luokittelu epäonnistui: {{errorMessage}}"
}
},
"tooltip": {
"trainingInProgress": "Malli kouluttautuu parhaillaan",
"noNewImages": "Ei uusia kuvia koulutusta varten. Luokittele ensin lisää kuvia aineistossa."
}
}
+3 -3
View File
@@ -3,7 +3,7 @@
"addFace": "Opastus: Uuden kokoelman lisääminen Kasvokirjastoon.",
"invalidName": "Virheellinen nimi. Nimi voi sisältää vain merkkejä, numeroita, välejä, heittomerkkejä, alaviivoja ja väliviivoja.",
"placeholder": "Anna nimi kokoelmalle",
"nameCannotContainHash": "Nimi ei voi sisältää \"#\"."
"nameCannotContainHash": "Nimi ei voi sisältää merkkiä #."
},
"uploadFaceImage": {
"desc": "Lähetä kuva kasvojen tunnistukseen ja lisää se sivulle {{pageToggle}}",
@@ -30,7 +30,7 @@
"train": {
"empty": "Ei viimeaikaisia kasvojentunnistusyrityksiä",
"title": "Koulutus",
"aria": "Valitse kouluta"
"aria": "Valitse viimeisimmät tunnistukset"
},
"collections": "Kokoelmat",
"steps": {
@@ -66,7 +66,7 @@
"selectImage": "Valitse kuvatiedosto."
},
"dropActive": "Pudota kuva tähän…",
"dropInstructions": "Vedä ja pudota kuva tähän tai valitse se napsauttamalla",
"dropInstructions": "Vedä ja pudota tai liitä kuva tähän tai valitse se klikkaamalla",
"maxSize": "Maksimikoko: {{size}}MB"
},
"nofaces": "Kasvoja ei ole saatavilla",
+2 -2
View File
@@ -84,8 +84,8 @@
"disable": "Piilota suoratoiston tilastot"
},
"manualRecording": {
"title": "Tallennus pyynnöstä",
"tips": "Aloita manuaalinen tapahtuma tämän kameran tallenteen tallennusasetusten perusteella.",
"title": "Tarvittaessa",
"tips": "Lataa tilannekuva tai aloita manuaalinen tapahtuma tämän kameran tallenteiden säilytysasetusten perusteella.",
"playInBackground": {
"label": "Toista taustalla",
"desc": "Ota tämä asetus käyttöön, jos haluat jatkaa suoratoistoa kun soitin on piilotettu."
+63 -36
View File
@@ -30,7 +30,9 @@
"triggers": "Laukaisimet",
"cameraManagement": "Kamerahallinta",
"cameraReview": "Tarkasta",
"roles": "Roolit"
"roles": "Roolit",
"profiles": "Profiilit",
"system": "Järjestelmä"
},
"dialog": {
"unsavedChanges": {
@@ -43,7 +45,7 @@
"noCamera": "Ei kameraa"
},
"general": {
"title": "Yleiset asetukset",
"title": "Käyttöliittymäasetukset",
"liveDashboard": {
"automaticLiveView": {
"label": "Automaattinen reaaliaika-näkymä",
@@ -166,7 +168,7 @@
"name": {
"title": "Nimi",
"inputPlaceHolder": "Anna nimi…",
"tips": "Nimen on oltava vähintään kaksi merkkiä pitkä, eikä se saa olla kameran tai toisen vyöhykkeen nimi."
"tips": "Nimen on oltava vähintään kaksi merkkiä pitkä, vähintään yksi kirjain, eikä se saa olla kameran tai toisen vyöhykkeen nimi tällä kameralla."
},
"point_one": "{{count}} piste",
"point_other": "{{count}} pisteet",
@@ -186,7 +188,7 @@
}
},
"toast": {
"success": "Vyöhyke ({{zoneName}}) on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi."
"success": "Vyöhyke ({{zoneName}}) on tallennettu."
}
},
"toast": {
@@ -202,52 +204,63 @@
"point_one": "{{count}} piste",
"point_other": "{{count}} pisteet",
"clickDrawPolygon": "Napsauta piirtääksesi monikulmion kuvaan.",
"label": "Liikepeitto",
"label": "Liikemaski",
"context": {
"title": "Liikepeittoja käytetään estämään ei-toivottujen liiketyyppien (esimerkiksi puiden oksat, kameroiden aikaleimat) aiheuttamat tunnistukset. Liikepeittoja tulisi käyttää <em>hyvin säästeliäästi</em>, sillä liiallinen maskaus vaikeuttaa kohteiden seurantaa."
"title": "Liikemaskeja käytetään estämään ei-toivottujen liiketyyppien (esimerkiksi puiden oksat, kameroiden aikaleimat) aiheuttamat tunnistukset. Liikemaskeja tulisi käyttää <em>hyvin säästeliäästi</em>, sillä ylimaskaaminen vaikeuttaa kohteiden seurantaa."
},
"documentTitle": "Muokkaa liikepeittoa - Frigate",
"documentTitle": "Muokkaa liikemaskia - Frigate",
"desc": {
"title": "Liikepeittoa käytetään estämään ei-toivottujen liiketyyppien aiheuttamat tunnistukset. Liiallinen peittäminen vaikeuttaa kohteiden seurantaa.",
"title": "Liikemaskia käytetään estämään ei-toivottujen liiketyyppien aiheuttamat tunnistukset. Liiallinen peittäminen vaikeuttaa kohteiden seurantaa.",
"documentation": "Dokumentaatio"
},
"add": "Uusi liikepeitto",
"edit": "Muokkaa liikepeittoa",
"add": "Uusi liikemaski",
"edit": "Muokkaa liikemaskia",
"polygonAreaTooLarge": {
"title": "Liikepeitto peittää {{polygonArea}}% kameran kuvasta. Suuria liikemaskeja ei suositella.",
"tips": "Liikepeitto eivät estä kohteiden havaitsemista. Sinun tulisi sen sijaan käyttää vaadittua vyöhykettä."
"title": "Liikemaski peittää {{polygonArea}}% kameran kuvasta. Suuria liikemaskeja ei suositella.",
"tips": "Liikemaskit eivät estä kohteiden havaitsemista. Sinun tulisi sen sijaan käyttää vaadittua vyöhykettä."
},
"toast": {
"success": {
"title": "{{polygonName}} on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi.",
"noName": "Liikepeitto on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi."
"title": "{{polygonName}} on tallennettu.",
"noName": "Liikemaski on tallennettu."
}
}
},
"objectMasks": {
"point_one": "{{count}} piste",
"point_other": "{{count}} pisteet",
"label": "Kohdepeitot",
"context": "Objektisuodatinpeittoja käytetään suodattamaan pois väärät positiiviset tulokset tietylle kohdetyypille sijainnin perusteella.",
"label": "Kohdemaskit",
"context": "Kohdesuodatinpeittoja käytetään suodattamaan pois väärät positiiviset tulokset tietylle kohdetyypille sijainnin perusteella.",
"objects": {
"title": "Kohteet",
"desc": "Kohdetyyppi, jota käytetään tähän kohdepeittoon.",
"desc": "Kohdetyyppi, jota käytetään tähän kohdemaskiin.",
"allObjectTypes": "Kaikki kohdetyypit"
},
"toast": {
"success": {
"title": "{{polygonName}} on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi.",
"noName": "Kohdepeitto on tallennettu. Käynnistä Frigatti uudelleen muutosten käyttöönottamiseksi."
"title": "{{polygonName}} on tallennettu.",
"noName": "Kohdemaski on tallennettu."
}
},
"documentTitle": "Muokkaa kohdepeittoa - Frigate",
"documentTitle": "Muokkaa kohdemaskia - Frigate",
"desc": {
"title": "Objektisuodatinpeittoja käytetään suodattamaan pois väärät positiiviset tulokset tietylle kohdetyypille sijainnin perusteella.",
"title": "Objektisuodatinmaskeja käytetään suodattamaan pois väärät positiiviset tulokset tietylle kohdetyypille sijainnin perusteella.",
"documentation": "Dokumentaatio"
},
"add": "Lisää kohdepeitto",
"edit": "Muokkaa kohdepeittoa",
"clickDrawPolygon": "Napsauta piirtääksesi monikulmion kuvaan."
"clickDrawPolygon": "Klikkaa piirtääksesi monikulmion kuvaan.",
"name": {
"title": "Nimi",
"description": "Vapaaehtoinen selkokielinen nimi tälle kohdemaskille.",
"placeholder": "Syötä nimi..."
}
},
"masks": {
"enabled": {
"title": "Käytössä",
"description": "Onko tämä maski käytössä config tiedostossa. Mikäli ei, MQTT ei voi sitä aktivoida. Käytöstä poistettuja maskeja ei huomioida suoritusaikana."
}
}
},
"debug": {
@@ -286,7 +299,8 @@
"title": "Liikelaatikot",
"desc": "Näytä laatikot alueiden ympärillä, joilla liikettä havaitaan",
"tips": "<p><strong>Liikelaatikot</strong></p><br><p>Punaiset laatikot peittävät ruudun alueet, joilla liikettä havaitaan parhaillaan.</p>"
}
},
"title": "Vianmääritys"
},
"users": {
"title": "Käyttäjät",
@@ -295,7 +309,7 @@
"desc": "Hallinnoi tämän Frigate-instanssin käyttäjätilejä."
},
"addUser": "Lisää käyttäjä",
"updatePassword": "Päivitä salasana",
"updatePassword": "Nollaa salasana",
"toast": {
"success": {
"roleUpdated": "Rooli päivitetty käyttäjälle {{user}}",
@@ -315,7 +329,7 @@
"actions": "Toiminnot",
"noUsers": "Käyttäjiä ei löytynyt.",
"changeRole": "Vaihda käyttäjäroolia",
"password": "Salasana",
"password": "Nollaa salasana",
"deleteUser": "Poista tili",
"role": "Rooli"
},
@@ -335,19 +349,32 @@
}
},
"motionDetectionTuner": {
"title": "Liiketunnistuksen säätäminen",
"title": "Liiketunnistuksen säätö",
"desc": {
"title": "Frigate käyttää liiketunnistusta ensimmäisenä tarkistuksena nähdäkseen, tapahtuuko kuvassa jotain, mikä kannattaisi tarkistaa objektitunnistuksella.",
"title": "Frigate käyttää liiketunnistusta ensimmäisenä tarkistuksena nähdäkseen, tapahtuuko kuvassa jotain, mikä kannattaisi tarkistaa kohdetunnistuksella.",
"documentation": "Lue liikkeensäädön opas"
},
"Threshold": {
"title": "Kynnys"
"title": "Kynnys",
"desc": "Kynnysarvo määrittelee paljonko pikselin luminenssin pitää muuttua jotta se tulkitaan liikkeeksi. <em>Oletus: 30</em>"
},
"unsavedChanges": "Tallentamatta olevat liiketunnistuksen säädöt ({{camera}})",
"contourArea": {
"title": "Ääriviivan pinta-ala",
"desc": "Ääriviivan pinta-alaa käytetään päättämään mitkä muuttuneet pikseliryhnmät luokitellaan liikkeeksi.<em>Oletus: 10</em>"
},
"improveContrast": {
"title": "Paranna kontrastia",
"desc": "Paranna tummien näkymien kontrastia. <em>Oletus: ON</em>"
},
"toast": {
"success": "Liikeasetukset tallennettu."
}
},
"triggers": {
"documentTitle": "Laukaisimet",
"management": {
"title": "Laukaisimen hallinta"
"title": "Laukaisimet"
},
"addTrigger": "Lisää laukaisin",
"table": {
@@ -384,10 +411,10 @@
"form": {
"name": {
"title": "Nimi",
"placeholder": "Syötä laukaisimen nimi",
"placeholder": "Nimeä laukaisin",
"error": {
"minLength": "Nimen on oltava vähintään 2 merkkiä pitkä.",
"invalidCharacters": "Nimi voi sisältää vain kirjaimia, numeroita, alaviivoja ja väliviivoja.",
"minLength": "Kentän on oltava vähintään 2 merkkiä pitkä.",
"invalidCharacters": "Kenttä voi sisältää vain kirjaimia, numeroita, alaviivoja ja väliviivoja.",
"alreadyExists": "Tällä nimellä oleva laukaisin on jo olemassa tälle kameralle."
}
},
@@ -400,9 +427,9 @@
},
"content": {
"title": "Sisältö",
"imagePlaceholder": "Valitse kuva",
"imagePlaceholder": "Valitse pikkukuva",
"textPlaceholder": "Kirjoita tekstisisältö",
"imageDesc": "Valitse kuva, joka laukaisee tämän toiminnon, kun samankaltainen kuva havaitaan.",
"imageDesc": "Näytetään vain 100 viimeisintä pikkukuvaa. Mikäli et löydä haluamaasi, tarkastele aikaisempia kohteita Selaimessa ja aseta laukaisin siellä menuvalikosta.",
"textDesc": "Syötä teksti, joka laukaisee tämän toiminnon, kun vastaava seurattavan kohteen kuvaus havaitaan.",
"error": {
"required": "Sisältö on pakollinen."
@@ -417,7 +444,7 @@
},
"actions": {
"title": "Toiminnot",
"desc": "Oletuksena Frigate lähettää MQTT-viestin kaikille laukaisimille. Valitse lisätoiminto, joka suoritetaan, kun tämä laukaisija laukeaa.",
"desc": "Oletuksena Frigate lähettää MQTT-viestin kaikille laukaisimille. Alatunnisteet lisäävät laukaisimen nimen kohdetunnisteeseen. Ominaisuuksia voi etsiä metadatasta, joka on tallennettu erikseen seurattavan kohteen metadataan.",
"error": {
"min": "Vähintään yksi toiminto on valittava."
}
@@ -454,7 +481,7 @@
"desc": "Semanttisen haun avulla Frigatessa voit etsiä seurattavia kohteita tarkistettavista kohteista joko kuvan, käyttäjän määrittämän tekstikuvauksen tai automaattisesti luodun kuvauksen avulla.",
"reindexNow": {
"label": "Uudelleenindeksoi nyt",
"desc": "Uudelleindeksointi luo uudelleen upotukset kaikille seuratuille objekteille. Tämä prosessi suoritetaan taustalla ja voi kuormittaa prosessorin maksimiin ja viedä melko paljon aikaa riippuen seurattujen objektien määrästä.",
"desc": "Uudelleindeksointi luo uudelleen upotukset kaikille seuratuille kohteille. Prosessi suoritetaan taustalla ja voi kuormittaa prosessorin maksimiin ja viedä kohtalaisesti aikaa riippuen seurattujen kohteiden määrästä.",
"confirmTitle": "Vahvista uudelleenindeksointi"
}
},
+1 -1
View File
@@ -225,7 +225,7 @@
"label": "Thème",
"highcontrast": "Contraste élevé"
},
"systemMetrics": "Métriques du système",
"systemMetrics": "Santé et Métriques système",
"settings": "Paramètres",
"withSystem": "Système",
"restart": "Redémarrer Frigate",
+1 -2
View File
@@ -87,8 +87,7 @@
"placeholder": "Sélectionner un dossier",
"newCaseOption": "Créer un nouveau cas",
"newCaseNamePlaceholder": "Nouveau nom de cas",
"newCaseDescriptionPlaceholder": "Description de cas",
"nonAdminHelp": "Un nouveau cas sera créé pour ces exports."
"newCaseDescriptionPlaceholder": "Description de cas"
},
"queueing": "Mise en file d'attente de l'export...",
"tabs": {
+12
View File
@@ -45,6 +45,10 @@
"num_threads": {
"label": "Fils d'exécution pour la détection",
"description": "Nombre de fils d'éxécution à utiliser pour le traitement de la détection audio."
},
"labelmap": {
"label": "Customisation Audio",
"description": "Remplacements ou entrées de remappage à fusionner avec la table standard des libellés audio."
}
},
"audio_transcription": {
@@ -72,6 +76,10 @@
"order": {
"label": "Emplacement",
"description": "Emplacement numérique contrôlant l'ordre de la caméra dans la disposition en vue à vol d'oiseau."
},
"modes": {
"label": "Types d'activité",
"description": "Types d’activité qui incluent des caméras dans Birdseye."
}
},
"detect": {
@@ -132,6 +140,10 @@
"annotation_offset": {
"label": "Décalage de l'annotation",
"description": "Millisecondes pour le décalage des annotations afin de mieux aligner les boîtes englobantes de la ligne du temps avec les enregistrements ; peut être positif ou négatif."
},
"scene": {
"label": "Détecter la scène",
"description": "L'environnement filmé par cette caméra, utilisé pour déterminer lequel des modèles configurés doit être exécuté sur celle-ci. Les caméras laissées sur « default » utilisent le modèle configuré avec une scène définie sur « default »."
}
},
"face_recognition": {
+12
View File
@@ -86,11 +86,19 @@
"birdseye": {
"quality": {
"label": "Qualité d'encodage"
},
"modes": {
"label": "Types d'activité",
"description": "Types d’activité qui incluent des caméras dans Birdseye."
}
},
"detect": {
"enabled": {
"label": "Activer la détection d'objet"
},
"scene": {
"label": "Détecter la scène",
"description": "L'environnement filmé par cette caméra, utilisé pour déterminer lequel des modèles configurés doit être exécuté sur celle-ci. Les caméras laissées sur « default » utilisent le modèle configuré avec une scène définie sur « default »."
}
},
"motion": {
@@ -211,6 +219,10 @@
"label": "Minimum de confiance audio",
"description": "Seuil de confiance minimum pour que l'événement audio soit pris en compte."
}
},
"labelmap": {
"label": "Customisation Audio",
"description": "Remplacements ou entrées de remappage à fusionner avec la table standard des libellés audio."
}
},
"ffmpeg": {
@@ -563,13 +563,6 @@
"desc": "Seules les lettres, les chiffres, les points et les traits de soulignement sont autorisés."
},
"password": {
"strength": {
"weak": "Faible",
"title": "Niveau de sécurité du mot de passe : ",
"medium": "Moyen",
"strong": "Fort",
"veryStrong": "Très fort"
},
"match": "Les mots de passe correspondent",
"notMatch": "Les mots de passe ne correspondent pas.",
"placeholder": "Saisir le mot de passe",
@@ -456,13 +456,6 @@
"placeholder": "אישור סיסמה",
"title": "אישור סיסמה"
},
"strength": {
"title": "חוזק הסיסמה: ",
"weak": "חלש",
"medium": "בינוני",
"strong": "חזק",
"veryStrong": "מאוד חזק"
},
"match": "סיסמאות תואמות",
"notMatch": "הסיסמאות אינן תואמות.",
"show": "הצג סיסמה",
@@ -782,13 +782,6 @@
"title": "Potvrdi lozinku",
"placeholder": "Potvrdi lozinku"
},
"strength": {
"title": "Snaga lozinke: ",
"weak": "Slaba",
"medium": "Srednje jaka",
"strong": "Snažna",
"veryStrong": "Vrlo snažna"
},
"requirements": {
"title": "Zahtjevi za lozinku:",
"length": "Najmanje 8 znakova"
@@ -290,13 +290,6 @@
},
"password": {
"match": "A jelszavak egyeznek",
"strength": {
"weak": "Gyenge",
"veryStrong": "Nagyon Erős",
"strong": "Erős",
"medium": "Közepes",
"title": "Jelszó erőssége: "
},
"placeholder": "Adja meg a jelszót",
"title": "Jelszó",
"confirm": {
@@ -75,7 +75,6 @@
"newCaseNamePlaceholder": "Nama Kasus Baru",
"newCaseDescriptionPlaceholder": "Deskripsi Kasus",
"label": "Kasus",
"nonAdminHelp": "Kasus Baru akan Dibuat untuk Ekspor ini.",
"placeholder": "Pilih Kasus"
},
"tabs": {
@@ -1127,13 +1127,6 @@
"title": "Konfirmasi Kata Sandi",
"placeholder": "Konfirmasi Kata Sandi"
},
"strength": {
"title": "Kekuatan kata sandi: ",
"weak": "Lemah",
"medium": "Sedang",
"strong": "Kuat",
"veryStrong": "Sangat Kuat"
},
"requirements": {
"title": "Persyaratan kata sandi:",
"length": "Setidaknya 12 karakter"
+1 -2
View File
@@ -87,8 +87,7 @@
"placeholder": "Seleziona un caso",
"newCaseOption": "Crea un nuovo caso",
"newCaseNamePlaceholder": "Nuovo nome del caso",
"newCaseDescriptionPlaceholder": "Descrizione del caso",
"nonAdminHelp": "Per queste esportazioni verrà creato un nuovo caso."
"newCaseDescriptionPlaceholder": "Descrizione del caso"
},
"queueing": "Accodamento per l'esportazione...",
"tabs": {
@@ -460,13 +460,6 @@
"title": "Conferma password",
"placeholder": "Conferma password"
},
"strength": {
"title": "Complessità della password: ",
"weak": "Debole",
"medium": "Media",
"strong": "Forte",
"veryStrong": "Molto forte"
},
"title": "Password",
"placeholder": "Inserisci la password",
"match": "Le password corrispondono",
@@ -102,7 +102,6 @@
"newCaseNamePlaceholder": "新しいケース名",
"newCaseDescriptionPlaceholder": "ケースの説明",
"label": "ケース",
"nonAdminHelp": "これらのエクスポートに対して新しいケースが作成されます。",
"placeholder": "ケースを選択"
},
"tabs": {
+1 -1
View File
@@ -807,7 +807,7 @@
},
"zooming": {
"label": "ズームモード",
"description": "ズーム動作の制御: disabled (パン/チルトのみ)、absolute (互換性が最も高い)、relative (パン/チルト/ズーム同時)。"
"description": "ズーム動作の制御: 無効 (パン/チルトのみ)、絶対的 (互換性が最も高い)、相対的 (パン/チルト/ズーム同時)。"
},
"zoom_factor": {
"label": "ズーム倍率",
+1 -1
View File
@@ -1364,7 +1364,7 @@
},
"zooming": {
"label": "ズームモード",
"description": "ズーム動作の制御: disabled (パン/チルトのみ)、absolute (互換性が最も高い)、relative (パン/チルト/ズーム同時)。"
"description": "ズーム動作の制御: 無効 (パン/チルトのみ)、絶対的 (互換性が最も高い)、相対的 (パン/チルト/ズーム同時)。"
},
"zoom_factor": {
"label": "ズーム倍率",
+2 -9
View File
@@ -556,13 +556,6 @@
"title": "パスワードの確認",
"placeholder": "パスワードを再入力"
},
"strength": {
"title": "パスワード強度: ",
"weak": "弱い",
"medium": "普通",
"strong": "強い",
"veryStrong": "非常に強い"
},
"match": "パスワードが一致しています",
"notMatch": "パスワードが一致しません",
"show": "パスワードを表示",
@@ -1839,8 +1832,8 @@
"autotracking": {
"zooming": {
"disabled": "無効",
"absolute": "絶対値",
"relative": "相対値"
"absolute": "絶対的",
"relative": "相対的"
}
}
},
+18 -1
View File
@@ -1 +1,18 @@
{}
{
"motion": {
"global": {
"sensitivity": "გლობალური მგრძნობელობა"
},
"cameras": {
"algorithm": "ალგორითმი"
}
},
"snapshots": {
"global": {
"display": "გლობალური გამოსახულება"
},
"cameras": {
"display": "დისპლეი"
}
}
}
@@ -1010,13 +1010,6 @@
"title": "បញ្ជាក់ពាក្យសម្ងាត់",
"placeholder": "បញ្ជាក់ពាក្យសម្ងាត់"
},
"strength": {
"title": "កម្រិតខ្លាំងនៃពាក្យសម្ងាត់៖ ",
"weak": "ខ្សោយ",
"medium": "មធ្យម",
"strong": "ខ្លាំង",
"veryStrong": "ខ្លាំងណាស់"
},
"requirements": {
"title": "តម្រូវការពាក្យសម្ងាត់៖",
"length": "យ៉ាងហោចណាស់ ១២ តួអក្សរ"
+32 -1
View File
@@ -1 +1,32 @@
{}
{
"speech": "ಮಾತು",
"babbling": "ಗೊಣಗು",
"yell": "ಕಿರುಚು",
"bellow": "ಬೊಬ್ಬೆಯಿಡು",
"whoop": "ಕೂಗು",
"whispering": "ಪಿಸುಮಾತು",
"laughter": "ನಗು",
"snicker": "ಹುಸಿ ನಗು",
"crying": "ಅಳು",
"sigh": "ನಿಟ್ಟುಸಿರು",
"singing": "ಹಾಡುವುದು",
"choir": "ಗಾಯಕವೃಂದ",
"yodeling": "ಯೋಡೆಲಿಂಗ್",
"chant": "ಜಪಿಸು",
"mantra": "ಮಂತ್ರ",
"child_singing": "ಮಗು ಹಾಡುವುದು",
"synthetic_singing": "ಕೃತಕ ಗಾಯನ",
"rapping": "ರ್ಯಾಪಿಂಗ್",
"humming": "ಗುನುಗುನು",
"groan": "ನರಳುವುದು",
"grunt": "ಅಸಮಾಧಾನದಿಂದ ಹೇಳು",
"whistling": "ಶಿಳ್ಳೆ ಹಾಕುವ",
"breathing": "ಉಸಿರಾಟ",
"wheeze": "ಉಬ್ಬಸ ಪಡು",
"snoring": "ಗೊರಕೆಹೊಡಿ",
"gasp": "ಮೇಲುಸಿರು",
"pant": "ಏದುಸಿರು ಬಿಡು",
"snort": "ಬುಸುಗುಟ್ಟುವ ಧ್ವನಿ",
"cough": "ಕೆಮ್ಮು",
"throat_clearing": "ಗಂಟಲು ಸರಿಪಡಿಸಿಕೊಳ್ಳುವುದು"
}
+1 -2
View File
@@ -81,8 +81,7 @@
"placeholder": "케이스 선택",
"newCaseOption": "새 케이스 생성",
"newCaseNamePlaceholder": "새 케이스 이름",
"newCaseDescriptionPlaceholder": "케이스 설명",
"nonAdminHelp": "이 내보내기를 위한 새 케이스가 생성됩니다."
"newCaseDescriptionPlaceholder": "케이스 설명"
},
"queueing": "내보내기 대기열 추가 중...",
"tabs": {
+1 -1
View File
@@ -80,7 +80,7 @@
},
"cookie_secure": {
"label": "보안 쿠키 플래그",
"description": "인증 쿠키에 보안 플래그를 설정합니다. TLS 사용 시 true여야 합니다."
"description": "인증 쿠키에 항상 보안(secure) 플래그를 설정합니다. Frigate는 TLS를 직접 제공할 때 이를 자동으로 설정하지만, 역방향 프록시(Reverse Proxy)가 Frigate 앞단에서 TLS를 종료(SSL 오프로딩)할 때는 이 옵션을 활성화해야 합니다. Frigate의 TLS 포트에 연결되는 프록시는 반드시 브라우저에 HTTPS를 통해 Frigate를 제공해야 합니다."
},
"session_length": {
"label": "세션 유지 시간",
+3 -2
View File
@@ -181,11 +181,12 @@
},
"unavailable": {
"browser": "사용 중인 브라우저가 WebRTC를 지원하지 않습니다.",
"not-configured": "WebRTC가 구성되지 않았습니다. go2rtc webrtc 후보 또는 ice_servers를 설정하세요.",
"not-configured": "활성화하려면 go2rtc → webrtc → candidates 항목 아래에 이 서버의 IP:8555를 추가하세요.",
"unreachable": "WebRTC에 연결할 수 없습니다. 8555 포트에 접근 가능한지, STUN/TURN 서버 설정이 올바른지 확인하세요.",
"video-codec": "이 스트림의 비디오 코덱은 이 브라우저의 WebRTC에서 지원되지 않습니다.",
"audio-codec": "이 스트림의 오디오 코덱은 WebRTC에서 지원되지 않습니다. go2rtc를 사용하여 opus 또는 G.711로 트랜스코딩하세요.",
"checking": "WebRTC 사용 가능 여부 확인 중…"
"checking": "WebRTC 사용 가능 여부 확인 중…",
"notConfiguredOptional": "선택 사항: 이 설정 없이도 라이브 뷰는 정상 작동합니다. WebRTC는 주로 양방향 대화 기능에 필요합니다."
}
}
},
@@ -56,7 +56,9 @@
"invalidTimeRange": "종료 시간은 시작 시간 이후여야 합니다",
"searchFailed": "검색 실패: {{message}}",
"polygonTooSmall": "다각형은 최소 3개 이상의 점이 필요합니다",
"unknown": "알 수 없는 오류"
"unknown": "알 수 없는 오류",
"alreadyRunning": "이미 실행 중인 움직임 검색 작업이 있습니다. 완료될 때까지 기다리거나 취소하세요.",
"tooManySearches": "너무 많은 움직임 검색이 실행 중입니다. 진행 중인 검색이 끝나면 다시 시도하세요."
},
"changePercentage": "{{percentage}}% 변화됨",
"metrics": {
+6 -10
View File
@@ -150,7 +150,8 @@
"title": "사용자",
"management": {
"title": "사용자 관리",
"desc": "이 Frigate 인스턴스의 사용자 계정을 관리합니다."
"desc": "이 Frigate 인스턴스의 사용자 계정을 관리합니다.",
"authDisabled": "내장 인증 기능이 비활성화되어 있습니다. 여기에 등록된 계정은 인증 기능이 활성화된 후에만 로그인에 사용됩니다."
},
"addUser": "사용자 추가",
"updatePassword": "비밀번호 재설정",
@@ -184,13 +185,6 @@
"title": "비밀번호 확인",
"placeholder": "비밀번호 확인"
},
"strength": {
"title": "비밀번호 보안 수준: ",
"weak": "취약",
"medium": "보통",
"strong": "안전",
"veryStrong": "매우 안전"
},
"requirements": {
"title": "비밀번호 요구 조건:",
"length": "최소 12자 이상"
@@ -216,7 +210,8 @@
"title": "새 사용자 생성",
"desc": "새 사용자 계정을 추가하고 Frigate UI 접근 권한을 위한 역할을 지정합니다.",
"usernameOnlyInclude": "사용자 이름은 영문자, 숫자, 마침표(.), 밑줄(_)만 포함할 수 있습니다",
"confirmPassword": "비밀번호를 확인해 주세요"
"confirmPassword": "비밀번호를 확인해 주세요",
"usernameOnlyDots": "사용자 이름은 마침표(.)로만 구성될 수 없습니다"
},
"deleteUser": {
"title": "사용자 삭제",
@@ -1415,7 +1410,8 @@
"baseModels": "기본 모델",
"fineTunedModels": "파인 튜닝 모델"
},
"modelSelect": "Frigate+에서 사용 가능한 모델을 여기에서 선택할 수 있습니다. 현재 감지기 구성과 호환되는 모델만 선택할 수 있습니다."
"modelSelect": "Frigate+에서 사용 가능한 모델을 여기에서 선택할 수 있습니다. 현재 감지기 구성과 호환되는 모델만 선택할 수 있습니다.",
"showIncompatible": "호환되지 않는 모델 표시"
},
"changeInDetectorsAndModel": "모델 변경",
"unsavedChanges": "저장되지 않은 Frigate+ 설정 변경 사항",
+3 -1
View File
@@ -320,7 +320,9 @@
"showAllTitle": "숨겨진 알림을 모두 다시 표시하시겠습니까?",
"showAllDesc": "확인 및 음소거된 모든 알림(설정 및 스트림 점검 항목 포함)이 알림 목록으로 다시 복원됩니다.",
"acknowledgedAt": "확인됨: {{time}}",
"mutedAt": "음소거됨: {{time}}"
"mutedAt": "음소거됨: {{time}}",
"occurred_one": "발생 시각: {{time}}",
"occurred_other": "최근 발생: {{lastTime}} · {{time}} 이후 {{count}}회 발생"
},
"hardware": {
"title": "하드웨어",
@@ -101,7 +101,6 @@
"newCaseNamePlaceholder": "Naujos kolekcijos pavadinimas",
"newCaseDescriptionPlaceholder": "Kolekcijos aprašymas",
"label": "Kolekcija",
"nonAdminHelp": "Nauja kolekcija bus sukurta šiems išrašams.",
"placeholder": "Pasirinkti kolekciją"
},
"queueing": "Sudaroma išrašų eilė....",
@@ -433,13 +433,6 @@
"title": "Patvirtinti Slaptažodį",
"placeholder": "Patvirtinti Slaptažodį"
},
"strength": {
"title": "Slaptažodžio sudėtingumas: ",
"weak": "Silpnas",
"medium": "Vidutinis",
"strong": "Stiprus",
"veryStrong": "Labai Stiprus"
},
"match": "Slaptažodžiai sutampa",
"notMatch": "Slaptažodžiai nesutampa"
},
@@ -84,8 +84,7 @@
"placeholder": "Velg en sak",
"newCaseOption": "Opprett ny sak",
"newCaseNamePlaceholder": "Navn på ny sak",
"newCaseDescriptionPlaceholder": "Saksbeskrivelse",
"nonAdminHelp": "En ny sak vil bli opprettet for disse eksportene."
"newCaseDescriptionPlaceholder": "Saksbeskrivelse"
},
"queueing": "Legger eksport i kø...",
"tabs": {
@@ -491,13 +491,6 @@
"placeholder": "Bekreft passord",
"title": "Bekreft passord"
},
"strength": {
"title": "Passordstyrke: ",
"veryStrong": "Veldig sterkt",
"weak": "Svakt",
"medium": "Medium",
"strong": "Sterkt"
},
"match": "Passordene samsvarer",
"notMatch": "Passordene samsvarer ikke",
"show": "Vis passord",
+2 -1
View File
@@ -129,7 +129,8 @@
"retry": "Opnieuw proberen",
"expand": "Uitklappen",
"collapse": "Inklappen",
"reload": "Herladen"
"reload": "Herladen",
"clear": "Legen"
},
"unit": {
"speed": {
+1 -2
View File
@@ -84,8 +84,7 @@
"placeholder": "Selecteer een dossier",
"newCaseOption": "Maak nieuwe case",
"newCaseNamePlaceholder": "Nieuwe case naam",
"newCaseDescriptionPlaceholder": "Case beschrijving",
"nonAdminHelp": "Een nieuwe case wordt gemaakt voor deze exports."
"newCaseDescriptionPlaceholder": "Case beschrijving"
},
"queueing": "Export in wachtrij zetten...",
"tabs": {
+5 -2
View File
@@ -18,7 +18,9 @@
"short": "Type",
"title": "Stream Type:"
},
"decodedFrames": "Gedecodeerde frames:"
"decodedFrames": "Gedecodeerde frames:",
"stream": "Stream:",
"streamAuto": "{{stream}} (automatisch)"
},
"submitFrigatePlus": {
"title": "Dit frame indienen bij Frigate+?",
@@ -53,6 +55,7 @@
"noAudio": "Geen audio",
"audioRate": "{{rate}} kHz audio",
"audioCodecRate": "{{codec}} {{rate}} kHz",
"noRecordings": "Geen opnames in dit tijdsframe"
"noRecordings": "Geen opnames in dit tijdsframe",
"auto": "Automatisch"
}
}
+25 -1
View File
@@ -363,7 +363,31 @@
"label": "Live kwaliteit",
"description": "Coderingskwaliteit voor de jsmpeg-stream (1 hoogste, 31 laagste)."
},
"description": "Instellingen die door de webinterface worden gebruikt om de selectie, resolutie en kwaliteit van livestreams te regelen."
"description": "Instellingen die door de webinterface worden gebruikt om de selectie, resolutie en kwaliteit van livestreams te regelen.",
"transcode": {
"label": "Getranscodeerde streams",
"description": "Lagekwaliteit-livestreams on-demand getranscodeerd door go2rtc.",
"enabled": {
"label": "Getranscodeerde streams activeren",
"description": "Voeg lagekwaliteit-livestreams toe die go2rtc realtime transcodeert tijdens het kijken."
},
"source": {
"label": "Bronstream",
"description": "go2rtc-stream om te transcoderen. Standaard de eerste livestream."
},
"qualities": {
"label": "Kwaliteit",
"description": "Er wordt één getranscodeerde stream per kwaliteit toegevoegd.",
"height": {
"label": "Hoogte",
"description": "Uitvoerhoogte in pixels; breedte volgt de bronverhouding."
},
"bitrate": {
"label": "Bitrate",
"description": "Doelbitrate en maximale videobitrate in kbps."
}
}
}
},
"motion": {
"label": "Bewegingsdetectie",

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