From 5f2536dcd8fa8e31022d1f4cac5f32f7d6201f8b Mon Sep 17 00:00:00 2001 From: Shay Collings Date: Fri, 20 Feb 2026 03:04:28 +1300 Subject: [PATCH 01/33] Added section for macOS installation including port conflict warning, example compose file and reference to Apple Silicon Detector (#22025) Co-authored-by: Shay Collings --- docs/docs/frigate/installation.md | 39 +++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docs/docs/frigate/installation.md b/docs/docs/frigate/installation.md index 0349a884c..b62c3c574 100644 --- a/docs/docs/frigate/installation.md +++ b/docs/docs/frigate/installation.md @@ -689,3 +689,42 @@ docker run \ ``` Log into QNAP, open Container Station. Frigate docker container should be listed under 'Overview' and running. Visit Frigate Web UI by clicking Frigate docker, and then clicking the URL shown at the top of the detail page. + +## macOS - Apple Silicon + +:::warning + +macOS uses port 5000 for its Airplay Receiver service. If you want to expose port 5000 in Frigate for local app and API access the port will need to be mapped to another port on the host e.g. 5001 + +Failure to remap port 5000 on the host will result in the WebUI and all API endpoints on port 5000 being unreachable, even if port 5000 is exposed correctly in Docker. + +::: + +Docker containers on macOS can be orchestrated by either [Docker Desktop](https://docs.docker.com/desktop/setup/install/mac-install/) or [OrbStack](https://orbstack.dev) (native swift app). The difference in inference speeds is negligable, however CPU, power consumption and container start times will be lower on OrbStack because it is a native Swift application. + +To allow Frigate to use the Apple Silicon Neural Engine / Processing Unit (NPU) the host must be running [Apple Silicon Detector](../configuration/object_detectors.md#apple-silicon-detector) on the host (outside Docker) + +#### Docker Compose example +```yaml +services: + frigate: + container_name: frigate + image: ghcr.io/blakeblackshear/frigate:stable-arm64 + restart: unless-stopped + shm_size: "512mb" # update for your cameras based on calculation above + volumes: + - /etc/localtime:/etc/localtime:ro + - /path/to/your/config:/config + - /path/to/your/recordings:/recordings + ports: + - "8971:8971" + # If exposing on macOS map to a diffent host port like 5001 or any orher port with no conflicts + # - "5001:5000" # Internal unauthenticated access. Expose carefully. + - "8554:8554" # RTSP feeds + extra_hosts: + # This is very important + # It allows frigate access to the NPU on Apple Silicon via Apple Silicon Detector + - "host.docker.internal:host-gateway" # Required to talk to the NPU detector + environment: + - FRIGATE_RTSP_PASSWORD: "password" +``` \ No newline at end of file From 7c11747ab37c8b49db8ef48bf1b4c992a0c6412d Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:25 +0100 Subject: [PATCH 02/33] Translated using Weblate (Latvian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 12.8% (84 of 654 strings) Translated using Weblate (Latvian) Currently translated at 99.5% (216 of 217 strings) Translated using Weblate (Latvian) Currently translated at 14.7% (20 of 136 strings) Translated using Weblate (Latvian) Currently translated at 13.2% (18 of 136 strings) Translated using Weblate (Latvian) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Latvian) Currently translated at 11.3% (74 of 654 strings) Co-authored-by: Hosted Weblate Co-authored-by: Jānis Sanders Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/lv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/lv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/lv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/lv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/lv/ Translation: Frigate NVR/common Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/lv/common.json | 6 +- web/public/locales/lv/views/explore.json | 3 +- web/public/locales/lv/views/faceLibrary.json | 3 +- web/public/locales/lv/views/settings.json | 154 +++++++++++++++++++ web/public/locales/lv/views/system.json | 3 +- 5 files changed, 164 insertions(+), 5 deletions(-) diff --git a/web/public/locales/lv/common.json b/web/public/locales/lv/common.json index 3e8d06126..623ad2119 100644 --- a/web/public/locales/lv/common.json +++ b/web/public/locales/lv/common.json @@ -81,7 +81,8 @@ "untilForRestart": "Līdz Frigate pārstartējas.", "untilRestart": "Līdz pārstartēšanai", "ago": "{{timeAgo}} pirms", - "justNow": "Nupat" + "justNow": "Nupat", + "never": "Nekad" }, "unit": { "speed": { @@ -107,7 +108,8 @@ "show": "Rādīt {{item}}", "ID": "ID", "none": "Nav", - "all": "Viss" + "all": "Viss", + "other": "Cits" }, "list": { "two": "{{0}} un {{1}}", diff --git a/web/public/locales/lv/views/explore.json b/web/public/locales/lv/views/explore.json index 63a2d2cbc..90df02569 100644 --- a/web/public/locales/lv/views/explore.json +++ b/web/public/locales/lv/views/explore.json @@ -10,7 +10,8 @@ "embeddingsReindexing": { "context": "Meklēšana būs pieejama pēc tam, kad būs pabeigta izsekoto objektu atkārtota indeksēšana.", "startingUp": "Notiek palaišana…", - "estimatedTime": "Paredzamais atlikušais laiks:" + "estimatedTime": "Paredzamais atlikušais laiks:", + "finishingShortly": "Drīz pabeigs" } }, "itemMenu": { diff --git a/web/public/locales/lv/views/faceLibrary.json b/web/public/locales/lv/views/faceLibrary.json index f6e254c22..be06af62f 100644 --- a/web/public/locales/lv/views/faceLibrary.json +++ b/web/public/locales/lv/views/faceLibrary.json @@ -2,7 +2,8 @@ "description": { "addFace": "Pievienojiet savai seju bibliotēkai jaunu kolekciju, augšupielādējot savu pirmo attēlu.", "placeholder": "Ievadi kolekcijas nosaukumu", - "invalidName": "Nederīgs nosaukums. Nosaukumi drīkst saturēt tikai burtus, ciparus, atstarpes, apostrofus, pasvītras un defises." + "invalidName": "Nederīgs nosaukums. Nosaukumi drīkst saturēt tikai burtus, ciparus, atstarpes, apostrofus, pasvītras un defises.", + "nameCannotContainHash": "Vārds nedrīkst saturēt #." }, "details": { "timestamp": "Laika zīmogs", diff --git a/web/public/locales/lv/views/settings.json b/web/public/locales/lv/views/settings.json index 57c27b436..7fb592488 100644 --- a/web/public/locales/lv/views/settings.json +++ b/web/public/locales/lv/views/settings.json @@ -22,7 +22,161 @@ "nameLength": "Kameras nosaukums nedrīkst būt garāks par 64 simboliem", "invalidCharacters": "Kameras nosaukumā ir neatļauti simboli", "nameExists": "Kameras nosaukums jau pastāv" + }, + "onvifPort": "ONVIF Ports", + "port": "Ports" + }, + "title": "Pievienot Kameru", + "testResultLabels": { + "audio": "Audio", + "video": "Video", + "resolution": "Izšķirtspēja", + "fps": "FSP" + }, + "save": { + "failure": "Kļūda saglabājot {{cameraName}}." + }, + "steps": { + "nameAndConnection": "Vārds un savienojums" + }, + "step2": { + "retry": "Atkārtot", + "connected": "Savienots" + }, + "step3": { + "quality": "Kvalitāte", + "resolution": "Izšķirtspēja", + "selectQuality": "Izvēlies kvalitāti", + "roleLabels": { + "audio": "Audio" + }, + "testStream": "Pārbaudīt Savienojumu", + "connected": "Savienots", + "notConnected": "Nav Savienots", + "testFailedTitle": "Tests Neizdevās" + }, + "step4": { + "connectStream": "Savienot", + "connectingStream": "Savienojas", + "failed": "Neizdevās", + "roles": "Lomas", + "error": "Kļūda" + } + }, + "menu": { + "users": "Lietotāji", + "roles": "Lomas", + "frigateplus": "Frigate+", + "notifications": "Paziņojumi", + "triggers": "Trigeri" + }, + "cameraSetting": { + "camera": "Kamera" + }, + "dialog": { + "unsavedChanges": { + "title": "Tev ir nesaglabātas izmaiņas.", + "desc": "Vai vēlies saglabāt izmaiņas pirms turpini?" + } + }, + "general": { + "liveDashboard": { + "displayCameraNames": { + "label": "Vienmēr rādīt kameras nosaukumus" } + }, + "calendar": { + "title": "Kalendārs", + "firstWeekday": { + "label": "Nedēļas pirmā diena", + "sunday": "Svētdiena", + "monday": "Pirmdiena" + } + } + }, + "enrichments": { + "semanticSearch": { + "reindexNow": { + "confirmButton": "Pārindeksēt", + "label": "Pārindeksēt tagad", + "confirmTitle": "Apstiprināt Pārindeksāciju", + "alreadyInProgress": "Pārindeksācija jau notiek." + }, + "modelSize": { + "small": { + "title": "mazs" + }, + "large": { + "title": "liels" + }, + "label": "Modeļa izmērs" + } + }, + "birdClassification": { + "title": "Putnu klasifikācija" + }, + "faceRecognition": { + "title": "Sejas Atpazīšana", + "modelSize": { + "label": "Modeļa izmērs", + "small": { + "title": "mazs" + }, + "large": { + "title": "liels" + } + } + }, + "licensePlateRecognition": { + "title": "Auto numura zīmes atpazīšana" + }, + "toast": { + "error": "Neizdevās saglabāt konfigurācijas izmaiņas: {{errorMessage}}" + } + }, + "cameraManagement": { + "addCamera": "Pievienot Jaunu Kameru", + "selectCamera": "Izvēlēties Kameru", + "cameraConfig": { + "add": "Pievienot Kameru", + "edit": "Labot Kameru", + "name": "Kameras Vārds" + } + }, + "triggers": { + "wizard": { + "steps": { + "nameAndType": "Vārds un Tips" + } + }, + "dialog": { + "form": { + "name": { + "title": "Vārds" + } + } + }, + "table": { + "edit": "Labot", + "name": "Vārds", + "type": "Tips", + "content": "Saturs" + } + }, + "frigatePlus": { + "modelInfo": { + "cameras": "Kameras" + }, + "snapshotConfig": { + "table": { + "camera": "Kamera" + } + } + }, + "notification": { + "title": "Paziņojumi", + "cameras": { + "title": "Kameras" } } } diff --git a/web/public/locales/lv/views/system.json b/web/public/locales/lv/views/system.json index 76db6be13..f6a316124 100644 --- a/web/public/locales/lv/views/system.json +++ b/web/public/locales/lv/views/system.json @@ -25,5 +25,6 @@ "object_description": "Objekta apraksts", "object_description_events_per_second": "Objekta apraksts" } - } + }, + "title": "Sistēma" } From a2d6e04f459a6f7dd357fd711ef86953372097b6 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:25 +0100 Subject: [PATCH 03/33] Translated using Weblate (Thai) Currently translated at 64.8% (48 of 74 strings) Translated using Weblate (Thai) Currently translated at 26.4% (36 of 136 strings) Translated using Weblate (Thai) Currently translated at 77.5% (38 of 49 strings) Translated using Weblate (Thai) Currently translated at 13.4% (88 of 654 strings) Translated using Weblate (Thai) Currently translated at 3.2% (4 of 122 strings) Translated using Weblate (Thai) Currently translated at 78.5% (44 of 56 strings) Translated using Weblate (Thai) Currently translated at 8.8% (12 of 136 strings) Translated using Weblate (Thai) Currently translated at 46.2% (25 of 54 strings) Translated using Weblate (Thai) Currently translated at 90.0% (9 of 10 strings) Co-authored-by: Hasan Bula Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/th/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/th/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/th/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/th/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/th/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/th/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/th/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/th/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/th/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-configeditor Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/th/components/dialog.json | 3 ++- web/public/locales/th/components/filter.json | 9 +++++++-- web/public/locales/th/views/classificationModel.json | 3 ++- web/public/locales/th/views/configEditor.json | 3 ++- web/public/locales/th/views/explore.json | 5 ++++- web/public/locales/th/views/faceLibrary.json | 3 ++- web/public/locales/th/views/search.json | 2 +- web/public/locales/th/views/settings.json | 6 +++++- web/public/locales/th/views/system.json | 8 +++++++- 9 files changed, 32 insertions(+), 10 deletions(-) diff --git a/web/public/locales/th/components/dialog.json b/web/public/locales/th/components/dialog.json index d1a85ec0c..6e4d32225 100644 --- a/web/public/locales/th/components/dialog.json +++ b/web/public/locales/th/components/dialog.json @@ -53,7 +53,8 @@ "content": "หน้านี้จะถูกโหลดในอีก {{countdown}} วินาที." }, "title": "คุณแน่ใจหรือว่าต้องการรีสตาร์ท Frigate?", - "button": "รีสตาร์ท" + "button": "รีสตาร์ท", + "description": "Frigate จะหยุดทำงานชั่วขณะในระหว่างรีสตาร์ท" }, "explore": { "plus": { diff --git a/web/public/locales/th/components/filter.json b/web/public/locales/th/components/filter.json index 5f23f3142..ff7233d8f 100644 --- a/web/public/locales/th/components/filter.json +++ b/web/public/locales/th/components/filter.json @@ -50,7 +50,8 @@ "short": "หมวดหมู่" }, "count_other": "{{count}} หมวดหมู่", - "count_one": "{{count}} หมวดหมู่" + "count_one": "{{count}} หมวดหมู่", + "label": "ป้าย" }, "cameras": { "all": { @@ -84,6 +85,10 @@ } }, "classes": { - "label": "หมวดหมู่" + "label": "หมวดหมู่", + "all": { + "title": "คลาสทั้งหมด" + }, + "count_one": "{{count}} คลาส" } } diff --git a/web/public/locales/th/views/classificationModel.json b/web/public/locales/th/views/classificationModel.json index 3181c4e9f..5d1307ccf 100644 --- a/web/public/locales/th/views/classificationModel.json +++ b/web/public/locales/th/views/classificationModel.json @@ -1,7 +1,8 @@ { "documentTitle": "โมเดลการจำแนกประเภท- Frigate", "details": { - "scoreInfo": "คะแนน (Score) คือค่าเฉลี่ยของความมั่นใจในการจำแนกประเภท (Classification Confidence) จากการตรวจจับวัตถุชิ้นนี้ในทุกๆ ครั้ง" + "scoreInfo": "คะแนน (Score) คือค่าเฉลี่ยของความมั่นใจในการจำแนกประเภท (Classification Confidence) จากการตรวจจับวัตถุชิ้นนี้ในทุกๆ ครั้ง", + "none": "ไม่มี" }, "description": { "invalidName": "ชื่อไม่ถูกต้อง ชื่อสามารถประกอบได้ด้วยตัวอักษร, ตัวเลข, ช่องว่าง, เครื่องหมาย ( ' , _ , - ) เท่านั้น" diff --git a/web/public/locales/th/views/configEditor.json b/web/public/locales/th/views/configEditor.json index d44ae391b..d85309d41 100644 --- a/web/public/locales/th/views/configEditor.json +++ b/web/public/locales/th/views/configEditor.json @@ -12,5 +12,6 @@ }, "saveAndRestart": "บันทึก และ รีสตาร์ท", "documentTitle": "ตัวแก้ไขการกำหนดค่า - Frigate", - "configEditor": "ตัวแก้ไขการกำหนดค่า" + "configEditor": "ตัวแก้ไขการกำหนดค่า", + "safeConfigEditor": "ตัวแก้ไขการกำหนดค่า (โหมดปลอดภัย)" } diff --git a/web/public/locales/th/views/explore.json b/web/public/locales/th/views/explore.json index b74d29e78..030d22899 100644 --- a/web/public/locales/th/views/explore.json +++ b/web/public/locales/th/views/explore.json @@ -28,5 +28,8 @@ } } }, - "trackedObjectsCount_other": "{{count}} วัตถุที่เจอ " + "trackedObjectsCount_other": "{{count}} วัตถุที่เจอ ", + "details": { + "timestamp": "เวลา" + } } diff --git a/web/public/locales/th/views/faceLibrary.json b/web/public/locales/th/views/faceLibrary.json index c6ad3e750..d663a7bcf 100644 --- a/web/public/locales/th/views/faceLibrary.json +++ b/web/public/locales/th/views/faceLibrary.json @@ -2,7 +2,8 @@ "details": { "person": "คน", "subLabelScore": "คะแนน Sub Label", - "unknown": "ไม่รู้" + "unknown": "ไม่รู้", + "timestamp": "เวลา" }, "steps": { "faceName": "ใส่ชื่อหน้า", diff --git a/web/public/locales/th/views/search.json b/web/public/locales/th/views/search.json index c94d1c726..050d8aa94 100644 --- a/web/public/locales/th/views/search.json +++ b/web/public/locales/th/views/search.json @@ -1,7 +1,7 @@ { "search": "ค้นหา", "button": { - "save": "บันทึกค้นหา", + "save": "บันทึกการค้นหา", "delete": "ลบการบันทึกค้นหา", "clear": "ล้างการค้นหา", "filterInformation": "ข้อมูลตัวกรอง", diff --git a/web/public/locales/th/views/settings.json b/web/public/locales/th/views/settings.json index 421620708..b848a4e27 100644 --- a/web/public/locales/th/views/settings.json +++ b/web/public/locales/th/views/settings.json @@ -105,7 +105,11 @@ "masksAndZones": "ตัวแก้ไขแมสและโซน - Frigate", "general": "การตั้งค่าทั่วไป - Frigate", "frigatePlus": "การตั้งค่า Frigate+ - Frigate", - "notifications": "การตั้งค่าการแจ้งเตือน - Frigate" + "notifications": "การตั้งค่าการแจ้งเตือน - Frigate", + "cameraManagement": "จัดการกล้อง - Frigate", + "enrichments": "การตั้งค่าของเพิ่มเติม - Frigate", + "motionTuner": "ปรับแต่งการเคลื่อนไหว - Frigate", + "object": "ดีบั๊ก - Frigate" }, "menu": { "notifications": "การแจ้งเตือน", diff --git a/web/public/locales/th/views/system.json b/web/public/locales/th/views/system.json index fd0010fdd..4ab0f7361 100644 --- a/web/public/locales/th/views/system.json +++ b/web/public/locales/th/views/system.json @@ -59,6 +59,12 @@ "documentTitle": { "cameras": "ข้อมูลกล้อง - Frigate", "storage": "สถิติคลังข้อมูล - Frigate", - "general": "สถิติทั่วไป - Frigate" + "general": "สถิติทั่วไป - Frigate", + "enrichments": "สถิติเพิ่มเติม - Frigate", + "logs": { + "frigate": "Frigate Logs - Frigate", + "go2rtc": "Logs ของ Go2RTC - Frigate", + "nginx": "Logs ของ Nginx - Frigate" + } } } From 8c98b4c9d096d05c482afb4ef6c4c803a94800aa Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:26 +0100 Subject: [PATCH 04/33] Translated using Weblate (German) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (German) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (German) Currently translated at 99.8% (653 of 654 strings) Translated using Weblate (German) Currently translated at 98.2% (55 of 56 strings) Co-authored-by: Hosted Weblate Co-authored-by: PhillyMay Co-authored-by: Viktor Stier Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/de/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings --- web/public/locales/de/components/dialog.json | 3 ++- web/public/locales/de/views/faceLibrary.json | 2 +- web/public/locales/de/views/settings.json | 11 ++++++++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/web/public/locales/de/components/dialog.json b/web/public/locales/de/components/dialog.json index 464db5adf..556f1a767 100644 --- a/web/public/locales/de/components/dialog.json +++ b/web/public/locales/de/components/dialog.json @@ -6,7 +6,8 @@ "content": "Diese Seite wird in {{countdown}} Sekunde(n) aktualisiert.", "button": "Neuladen erzwingen" }, - "button": "Neustarten" + "button": "Neustarten", + "description": "Dies wird Frigate kurz stoppen, während es neu startet." }, "explore": { "plus": { diff --git a/web/public/locales/de/views/faceLibrary.json b/web/public/locales/de/views/faceLibrary.json index 8461b1f69..318e9bf4c 100644 --- a/web/public/locales/de/views/faceLibrary.json +++ b/web/public/locales/de/views/faceLibrary.json @@ -1,7 +1,7 @@ { "description": { "placeholder": "Gib einen Name für diese Kollektion ein", - "addFace": "Füge der Gesichtsbibliothek eine neue Sammlung hinzu, indem du ein Bild hochlädst.", + "addFace": "Füge der Gesichtsbibliothek eine neue Sammlung hinzu, indem du ein erstes Bild hochlädst.", "invalidName": "Ungültiger Name. Namen dürfen nur Buchstaben, Zahlen, Leerzeichen, Apostrophe, Unterstriche und Bindestriche enthalten.", "nameCannotContainHash": "Der Name darf keine # enthalten." }, diff --git a/web/public/locales/de/views/settings.json b/web/public/locales/de/views/settings.json index eb434e4d5..35d1598fe 100644 --- a/web/public/locales/de/views/settings.json +++ b/web/public/locales/de/views/settings.json @@ -49,12 +49,12 @@ "desc": "Standardmäßig werden die letzten Warnmeldungen auf dem Live-Dashboard als kurze Videoschleifen abgespielt. Deaktiviere diese Option, um nur ein statisches Bild der letzten Warnungen auf diesem Gerät/Browser anzuzeigen." }, "automaticLiveView": { - "desc": "Zeigt automatisch das Live-Bild einer Kamera an, wenn eine Aktivität erkannt wird. Ist diese Option deaktiviert, werden Kamerabilder im Live-Dashboard nur einmal pro Minute aktualisiert.", + "desc": "Automatisch zur Live-Ansicht einer Kamera wechseln, wenn eine Aktivität erkannt wird. Wenn diese Option deaktiviert ist, werden statische Kamerabilder auf dem Live-Dashboard nur einmal pro Minute aktualisiert.", "label": "Automatische Live Ansicht" }, "displayCameraNames": { "label": "Immer Namen der Kamera anzeigen", - "desc": "Kamerabezeichnung immer im einem Chip im Live-View-Dashboard für mehrere Kameras anzeigen." + "desc": "Zeige immer die Kameranamen in einem Chip im Dashboard der Mehrkamera-Live-Ansicht an." }, "liveFallbackTimeout": { "label": "Live Player Ausfallzeitlimit", @@ -276,6 +276,11 @@ }, "error": { "mustBeFinished": "Polygonzeichnung muss vor dem Speichern abgeschlossen sein." + }, + "type": { + "zone": "Zone", + "motion_mask": "Bewegungsmaske", + "object_mask": "Objektmaske" } }, "speed": { @@ -1210,7 +1215,7 @@ "restreamingWarning": "Die Reduzierung der Verbindungen zur Kamera für den Aufzeichnungsstream kann zu einer geringfügigen Erhöhung der CPU-Auslastung führen.", "brands": { "reolink-rtsp": "Reolink RTSP wird nicht empfohlen. Aktivieren Sie HTTP in den Firmware-Einstellungen der Kamera und starten Sie den Assistenten neu.", - "reolink-http": "Für Reolink-HTTP-Streams sollten sie FFmpeg verwenden, um eine bessere Kompatibilität zu gewährleisten. Aktivieren Sie für diesen Stream die Option „Stream-Kompatibilitätsmodus verwenden“." + "reolink-http": "Reolink-HTTP-Streams sollten für eine bessere Kompatibilität FFmpeg verwenden. Aktivieren Sie für diesen Stream die Option „Stream-Kompatibilitätsmodus verwenden“." }, "dahua": { "substreamWarning": "Substream 1 ist auf eine niedrige Auflösung festgelegt. Viele Kameras von Dahua / Amcrest / EmpireTech unterstützen zusätzliche Substreams, die in den Kameraeinstellungen aktiviert werden müssen. Es wird empfohlen, diese Streams zu überprüfen und zu nutzen, sofern sie verfügbar sind." From 3aeeb0983493fafef7cc3ed3a19964c8aa7e15b3 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:26 +0100 Subject: [PATCH 05/33] Translated using Weblate (Danish) Currently translated at 21.4% (12 of 56 strings) Translated using Weblate (Danish) Currently translated at 22.4% (11 of 49 strings) Translated using Weblate (Danish) Currently translated at 11.0% (15 of 136 strings) Translated using Weblate (Danish) Currently translated at 41.8% (18 of 43 strings) Translated using Weblate (Danish) Currently translated at 1.8% (12 of 654 strings) Translated using Weblate (Danish) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Danish) Currently translated at 100.0% (6 of 6 strings) Translated using Weblate (Danish) Currently translated at 35.1% (26 of 74 strings) Co-authored-by: Anders Fosgerau Co-authored-by: Andreas Scholdan Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/da/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-recording Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings --- web/public/locales/da/components/dialog.json | 7 +- web/public/locales/da/components/filter.json | 2 +- web/public/locales/da/views/events.json | 3 +- web/public/locales/da/views/explore.json | 9 ++- web/public/locales/da/views/faceLibrary.json | 77 +++++++++++++++++++- web/public/locales/da/views/recording.json | 2 +- web/public/locales/da/views/search.json | 8 +- web/public/locales/da/views/settings.json | 7 +- 8 files changed, 103 insertions(+), 12 deletions(-) diff --git a/web/public/locales/da/components/dialog.json b/web/public/locales/da/components/dialog.json index 4d4a85174..a498a33f5 100644 --- a/web/public/locales/da/components/dialog.json +++ b/web/public/locales/da/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate genstarter", "button": "Gennemtving genindlæsning nu", "content": "Denne side genindlæses om {{countdown}} sekunder." - } + }, + "description": "Dette vil kortvarigt stoppe Frigate under genstart." }, "explore": { "plus": { @@ -17,7 +18,9 @@ "review": { "question": { "label": "Bekræft denne etiket til Frigate Plus", - "ask_a": "Er dette objekt et {{label}}?" + "ask_a": "Er dette objekt et {{label}}?", + "ask_an": "Er dette objekt en {{label}}?", + "ask_full": "Er dette objekt en {{untranslatedLabel}} ({{translatedLabel}})?" } } } diff --git a/web/public/locales/da/components/filter.json b/web/public/locales/da/components/filter.json index 3d16c1eb1..a2fbf223a 100644 --- a/web/public/locales/da/components/filter.json +++ b/web/public/locales/da/components/filter.json @@ -1,5 +1,5 @@ { - "filter": "Filter", + "filter": "Filtrer", "classes": { "label": "Klasser", "all": { diff --git a/web/public/locales/da/views/events.json b/web/public/locales/da/views/events.json index 222c61e49..6b07e5257 100644 --- a/web/public/locales/da/views/events.json +++ b/web/public/locales/da/views/events.json @@ -27,5 +27,6 @@ "markTheseItemsAsReviewed": "Marker disse som gennemset", "detail": { "aria": "Skift til detaljevisning" - } + }, + "timeline.aria": "Vælg tidslinje" } diff --git a/web/public/locales/da/views/explore.json b/web/public/locales/da/views/explore.json index afe962aea..fc0a72f70 100644 --- a/web/public/locales/da/views/explore.json +++ b/web/public/locales/da/views/explore.json @@ -17,10 +17,15 @@ "context": "Udforsk kan bruges, når genindekseringen af de sporede objektindlejringer er fuldført.", "finishingShortly": "Afsluttes om lidt", "step": { - "thumbnailsEmbedded": "Miniaturer indlejret: " + "thumbnailsEmbedded": "Miniaturer indlejret: ", + "descriptionsEmbedded": "Beskrivelser indlejrede: ", + "trackedObjectsProcessed": "Sporede objekter behandlede: " } }, - "title": "Udforsk er ikke tilgængelig" + "title": "Udforsk er ikke tilgængelig", + "downloadingModels": { + "context": "Frigate henter de nødvendige indlejringsmodeller for at understøtte semantiske søgninger. Dette kan tage flere minutter, afhængig af hastigheden på din netværksforbindelse." + } }, "exploreMore": "Udforsk flere {{label}}-objekter", "details": { diff --git a/web/public/locales/da/views/faceLibrary.json b/web/public/locales/da/views/faceLibrary.json index 40441517c..53644bcf8 100644 --- a/web/public/locales/da/views/faceLibrary.json +++ b/web/public/locales/da/views/faceLibrary.json @@ -3,7 +3,8 @@ "description": { "addFace": "Tilføj en ny samling til ansigtsbiblioteket ved at uploade dit første billede.", "placeholder": "Angiv et navn for bibliotek", - "invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger." + "invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger.", + "nameCannotContainHash": "Navet kan ikke indeholde #." }, "details": { "person": "Person", @@ -17,6 +18,76 @@ "desc": "Upload et billede for at scanne efter ansigter og inkludere det for {{pageToggle}}" }, "train": { - "titleShort": "Nyeste" - } + "titleShort": "Nyeste", + "title": "Seneste genkendelser", + "aria": "Vælg seneste genkendelser", + "empty": "Der er ingen nylige ansigtsgenkendelser" + }, + "createFaceLibrary": { + "new": "Nyt ansigt", + "nextSteps": "
  • Brug fanen Seneste genkendelser til at udvælge og træne på billeder for hver registreret person.
  • Fokusér på billeder taget lige forfra for de bedste resultater; undgå træningsbilleder, hvor ansigter er fotograferet fra siden eller i vinkel.
" + }, + "steps": { + "faceName": "Skriv ansigt navn", + "uploadFace": "Upload ansigt billede", + "nextSteps": "Næste skridt", + "description": { + "uploadFace": "Upload et billede af {{name}}, hvor ansigtet er set forfra. Billedet behøver ikke kun at vise ansigtet og skal ikke beskæres." + } + }, + "button": { + "deleteFace": "Slet ansigt", + "deleteFaceAttempts": "Slet ansigter", + "addFace": "Tilføj ansigt", + "renameFace": "Omdøb ansigt", + "uploadImage": "Upload billede", + "reprocessFace": "Genbehandl ansigt" + }, + "trainFace": "Lær ansigt", + "renameFace": { + "title": "Omdøb ansigt", + "desc": "Indtast et nyt navn til {{name}}" + }, + "toast": { + "success": { + "deletedFace_one": "{{count}} ansigt blev slettet", + "deletedFace_other": "{{count}} ansigter blev slettet", + "deletedName_one": "{{count}} ansigt slettet", + "deletedName_other": "{{count}} ansigter slettet", + "uploadedImage": "Billedet blev uploadet.", + "addFaceLibrary": "{{name}} er blevet tilføjet til ansigtsbiblioteket!", + "renamedFace": "Ansigtet er blevet omdøbt til {{name}}", + "trainedFace": "Ansigtet er blevet trænet.", + "updatedFaceScore": "Ansigtets score er blevet opdateret til {{score}} ({{name}})." + }, + "error": { + "uploadingImageFailed": "Kunne ikke uploade billedet: {{errorMessage}}", + "addFaceLibraryFailed": "Kunne ikke angive navn på ansigtet: {{errorMessage}}", + "deleteFaceFailed": "Kunne ikke slette: {{errorMessage}}", + "deleteNameFailed": "Kunne ikke slette navnet: {{errorMessage}}", + "renameFaceFailed": "Kunne ikke omdøbe ansigtet: {{errorMessage}}", + "trainFailed": "Kunne ikke træne: {{errorMessage}}", + "updateFaceScoreFailed": "Kunne ikke opdatere ansigtets score: {{errorMessage}}" + } + }, + "deleteFaceAttempts": { + "desc_one": "Er du sikker på, at du vil slette {{count}} ansigt? Denne handling kan ikke fortrydes.", + "desc_other": "Er du sikker på, at du vil slette {{count}} ansigter? Denne handling kan ikke fortrydes.", + "title": "Slet ansigter" + }, + "collections": "Samlinger", + "deleteFaceLibrary": { + "title": "Slet navn", + "desc": "Er du sikker på, at du vil slette samlingen {{name}}? Dette vil permanent slette alle tilknyttede ansigter." + }, + "imageEntry": { + "maxSize": "Maks. størrelse: {{size}} MB", + "validation": { + "selectImage": "Vælg venligst en billedfil." + }, + "dropActive": "Slip billedet her…", + "dropInstructions": "Træk og slip eller indsæt et billede her – eller klik for at vælge" + }, + "nofaces": "Ingen tilgængelige ansigter", + "trainFaceAs": "Træn ansigt som:" } diff --git a/web/public/locales/da/views/recording.json b/web/public/locales/da/views/recording.json index 4028727ac..acfdecb5b 100644 --- a/web/public/locales/da/views/recording.json +++ b/web/public/locales/da/views/recording.json @@ -1,5 +1,5 @@ { - "filter": "Filter", + "filter": "Filtrer", "export": "Eksporter", "calendar": "Kalender", "filters": "Filtere", diff --git a/web/public/locales/da/views/search.json b/web/public/locales/da/views/search.json index d643b298d..693032c4d 100644 --- a/web/public/locales/da/views/search.json +++ b/web/public/locales/da/views/search.json @@ -9,5 +9,11 @@ "filterActive": "Filtre aktiv", "clear": "Ryd søgning" }, - "trackedObjectId": "Sporet genstands-ID" + "trackedObjectId": "Sporet genstands-ID", + "filter": { + "label": { + "cameras": "Kameraer", + "zones": "Områder" + } + } } diff --git a/web/public/locales/da/views/settings.json b/web/public/locales/da/views/settings.json index 61fce336f..7b5d669ed 100644 --- a/web/public/locales/da/views/settings.json +++ b/web/public/locales/da/views/settings.json @@ -9,6 +9,11 @@ "enrichments": "Indstillinger for berigelser - Frigate", "masksAndZones": "Maske- og zoneeditor - Frigate", "motionTuner": "Bevægelsesjustering - Frigate", - "general": "Brugergrænsefladeindstillinger - Frigate" + "general": "Brugergrænsefladeindstillinger - Frigate", + "frigatePlus": "Frigate+ Indstillinger - Frigate", + "notifications": "Notifikations indstillinger - Frigate" + }, + "menu": { + "ui": "Brugergrænseflade" } } From 8a95cd2472c0e467f50ab20dcb79ef1bfd34777d Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:26 +0100 Subject: [PATCH 06/33] Translated using Weblate (Estonian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (56 of 56 strings) Co-authored-by: Hosted Weblate Co-authored-by: Priit Jõerüüt Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/et/ Translation: Frigate NVR/components-dialog --- web/public/locales/et/components/dialog.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/public/locales/et/components/dialog.json b/web/public/locales/et/components/dialog.json index 946142d8a..646be6124 100644 --- a/web/public/locales/et/components/dialog.json +++ b/web/public/locales/et/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate käivitub uuesti", "content": "See leht laaditakse uuesti {{countdown}} sekundi pärast.", "button": "Laadi uuesti kohe" - } + }, + "description": "Järgnevaga Frigate uuesti käivitamise ajaks lõpetab korraks töö." }, "search": { "saveSearch": { From ad076aefff9d52ee37ca8b05a9f43baf5b87944e Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:27 +0100 Subject: [PATCH 07/33] Translated using Weblate (Romanian) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (654 of 654 strings) Co-authored-by: Hosted Weblate Co-authored-by: lukasig Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-settings --- web/public/locales/ro/components/dialog.json | 3 ++- web/public/locales/ro/views/settings.json | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/web/public/locales/ro/components/dialog.json b/web/public/locales/ro/components/dialog.json index cbbbf7115..5d478f76a 100644 --- a/web/public/locales/ro/components/dialog.json +++ b/web/public/locales/ro/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate repornește", "content": "Această pagină se va reâncărca automat în {{countdown}} secunde.", "button": "Forțează acum reîncărcarea" - } + }, + "description": "Acest lucru va opri temporar Frigate în timpul repornirii." }, "explore": { "plus": { diff --git a/web/public/locales/ro/views/settings.json b/web/public/locales/ro/views/settings.json index 3a8da57f0..813f50537 100644 --- a/web/public/locales/ro/views/settings.json +++ b/web/public/locales/ro/views/settings.json @@ -382,6 +382,11 @@ }, "error": { "mustBeFinished": "Desenul poligonului trebuie finalizat înainte de salvare." + }, + "type": { + "zone": "zonă", + "motion_mask": "mască de mișcare", + "object_mask": "mască de obiect" } }, "distance": { From 252f1a6eb9cd9da5eaf4b137975e9e10ea7d13c8 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:27 +0100 Subject: [PATCH 08/33] Translated using Weblate (Japanese) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (136 of 136 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Japanese) Currently translated at 100.0% (217 of 217 strings) Co-authored-by: Hosted Weblate Co-authored-by: 塩野拓夢 Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ja/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ja/ Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/ja/common.json | 3 ++- web/public/locales/ja/components/dialog.json | 3 ++- web/public/locales/ja/views/settings.json | 11 ++++++++--- web/public/locales/ja/views/system.json | 3 ++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/web/public/locales/ja/common.json b/web/public/locales/ja/common.json index 18407fc2a..3f04d464f 100644 --- a/web/public/locales/ja/common.json +++ b/web/public/locales/ja/common.json @@ -97,7 +97,8 @@ "show": "{{item}} を表示", "ID": "ID", "none": "なし", - "all": "すべて" + "all": "すべて", + "other": "その他" }, "button": { "apply": "適用", diff --git a/web/public/locales/ja/components/dialog.json b/web/public/locales/ja/components/dialog.json index 629474548..c7f2b0944 100644 --- a/web/public/locales/ja/components/dialog.json +++ b/web/public/locales/ja/components/dialog.json @@ -6,7 +6,8 @@ "content": "このページは {{countdown}} 秒後に再読み込みされます。", "button": "今すぐ強制再読み込み" }, - "button": "再起動" + "button": "再起動", + "description": "再起動の間、Frigateが一時的に停止します。" }, "explore": { "plus": { diff --git a/web/public/locales/ja/views/settings.json b/web/public/locales/ja/views/settings.json index 5c36b1919..1e9f5cc52 100644 --- a/web/public/locales/ja/views/settings.json +++ b/web/public/locales/ja/views/settings.json @@ -288,6 +288,11 @@ }, "error": { "mustBeFinished": "保存する前に多角形の作図を完了してください。" + }, + "type": { + "zone": "ゾーン", + "motion_mask": "モーションマスク", + "object_mask": "オブジェクトマスク" } } }, @@ -532,7 +537,7 @@ "hide": "パスワードを非表示", "requirements": { "title": "パスワード要件:", - "length": "8 文字以上", + "length": "12文字以上", "uppercase": "大文字を 1 文字以上含める", "digit": "数字を 1 文字以上含める", "special": "少なくとも 1 つの特殊文字(!@#$%^&*(),.?”:{}|<>)が必要です" @@ -1185,11 +1190,11 @@ "title": "カメラレビュー設定", "object_descriptions": { "title": "生成AIによるオブジェクト説明", - "desc": "このカメラに対する生成AIのオブジェクト説明を一時的に有効/無効にします。無効にすると、このカメラの追跡オブジェクトについてAI生成の説明は要求されません。" + "desc": "Frigateが再起動するまで、このカメラの生成AIによる物体説明を一時的に有効/無効にします。無効にすると、このカメラで追跡された物体に対してAI生成の説明は生成されません。" }, "review_descriptions": { "title": "生成AIによるレビュー説明", - "desc": "このカメラに対する生成AIのレビュー説明を一時的に有効/無効にします。無効にすると、このカメラのレビュー項目についてAI生成の説明は要求されません。" + "desc": "Frigateが再起動するまで、このカメラの生成AIによるレビュー説明を一時的に有効/無効にします。無効にすると、このカメラのレビュー項目に対してAI生成の説明は生成されません。" }, "review": { "title": "レビュー", diff --git a/web/public/locales/ja/views/system.json b/web/public/locales/ja/views/system.json index 0f95b300e..b0694039d 100644 --- a/web/public/locales/ja/views/system.json +++ b/web/public/locales/ja/views/system.json @@ -91,7 +91,8 @@ "recording": "録画", "review_segment": "レビューセグメント", "audio_detector": "音声検知", - "go2rtc": "go2rtc" + "go2rtc": "go2rtc", + "embeddings": "ベクトル埋め込み" } } }, From 1856e62ad0c97772a730f5c4958fdb1a37137753 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:27 +0100 Subject: [PATCH 09/33] Translated using Weblate (Catalan) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (654 of 654 strings) Co-authored-by: Eduardo Pastor Fernández <123eduardoneko123@gmail.com> Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ca/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-settings --- web/public/locales/ca/components/dialog.json | 3 ++- web/public/locales/ca/views/settings.json | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/web/public/locales/ca/components/dialog.json b/web/public/locales/ca/components/dialog.json index 79e4bd864..fb5640d6b 100644 --- a/web/public/locales/ca/components/dialog.json +++ b/web/public/locales/ca/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate s'està reiniciant", "content": "Aquesta pàgina es tornarà a carregar d'aquí a {{countdown}} segons.", "button": "Forçar la recàrrega ara" - } + }, + "description": "Això aturarà breument Frigate mentre es reinicia." }, "explore": { "plus": { diff --git a/web/public/locales/ca/views/settings.json b/web/public/locales/ca/views/settings.json index 7c90d9190..13f8d2bd6 100644 --- a/web/public/locales/ca/views/settings.json +++ b/web/public/locales/ca/views/settings.json @@ -114,6 +114,11 @@ }, "error": { "mustBeFinished": "El dibuix del polígon s'ha d'acabar abans de desar." + }, + "type": { + "zone": "zona", + "motion_mask": "màscara de moviment", + "object_mask": "màscara d'objecte" } }, "zoneName": { From 5cc81bc7a1d76f1ef7c6720ccce494e23e23a0fc Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:28 +0100 Subject: [PATCH 10/33] Translated using Weblate (Hungarian) Currently translated at 62.8% (411 of 654 strings) Translated using Weblate (Hungarian) Currently translated at 100.0% (217 of 217 strings) Translated using Weblate (Hungarian) Currently translated at 88.9% (121 of 136 strings) Translated using Weblate (Hungarian) Currently translated at 35.2% (43 of 122 strings) Translated using Weblate (Hungarian) Currently translated at 98.1% (53 of 54 strings) Translated using Weblate (Hungarian) Currently translated at 77.9% (106 of 136 strings) Translated using Weblate (Hungarian) Currently translated at 96.4% (54 of 56 strings) Translated using Weblate (Hungarian) Currently translated at 95.3% (41 of 43 strings) Co-authored-by: Hosted Weblate Co-authored-by: ZsiGiT Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/hu/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/hu/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/hu/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/hu/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/hu/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/hu/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/hu/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/hu/ Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/hu/common.json | 32 +++++++++++++++---- web/public/locales/hu/components/dialog.json | 6 ++-- .../locales/hu/views/classificationModel.json | 23 +++++++++++-- web/public/locales/hu/views/events.json | 9 +++++- web/public/locales/hu/views/explore.json | 15 +++++++-- web/public/locales/hu/views/faceLibrary.json | 5 +-- web/public/locales/hu/views/settings.json | 8 ++++- web/public/locales/hu/views/system.json | 2 +- 8 files changed, 80 insertions(+), 20 deletions(-) diff --git a/web/public/locales/hu/common.json b/web/public/locales/hu/common.json index 42a9df69a..6e5df9f1d 100644 --- a/web/public/locales/hu/common.json +++ b/web/public/locales/hu/common.json @@ -75,7 +75,8 @@ "formattedTimestampMonthDay": "MMM d", "inProgress": "Folyamatban", "invalidStartTime": "Érvénytelen kezdeti idő", - "never": "Soha" + "never": "Soha", + "invalidEndTime": "Érvénytelen befejezési idő" }, "menu": { "darkMode": { @@ -106,7 +107,7 @@ "logout": "Kijelentkezés", "title": "Felhasználó", "account": "Fiók", - "current": "Jelenlegi Felhazsnáló: {{user}}", + "current": "Jelenlegi Felhasználó: {{user}}", "anonymous": "anoním", "setPassword": "Jelszó Beállítása" }, @@ -153,7 +154,8 @@ "bg": "Български (Bolgár)", "gl": "Galego (Galíciai)", "id": "Bahasa Indonesia (Indonéz)", - "ur": "اردو (Urdu)" + "ur": "اردو (Urdu)", + "hr": "Horvát" }, "uiPlayground": "UI játszótér", "faceLibrary": "Arc Könyvtár", @@ -175,7 +177,8 @@ "system": "Rendszer", "configuration": "Konfiguráció", "systemLogs": "Rendszer naplók", - "settings": "Beállítások" + "settings": "Beállítások", + "classification": "Osztályozás" }, "role": { "viewer": "Néző", @@ -215,7 +218,7 @@ } } }, - "selectItem": "KIválasztani {{item}}-et", + "selectItem": "Kiválasztani {{item}}-et", "unit": { "speed": { "mph": "mph", @@ -269,14 +272,29 @@ "unselect": "Kijelölés megszüntetése", "export": "Exportálás", "deleteNow": "Törlés Most", - "next": "Következő" + "next": "Következő", + "continue": "Tovább" }, "label": { "back": "Vissza", - "all": "Mind" + "all": "Mind", + "hide": "Elrejt {{item}}", + "show": "Mutat {{item}}", + "ID": "ID", + "none": "Nincs", + "other": "Egyéb" }, "readTheDocumentation": "Olvassa el a dokumentációt", "information": { "pixels": "{{area}}px" + }, + "list": { + "two": "{{0}} és {{1}}", + "many": "{{items}}, és {{last}}", + "separatorWithSpace": ", " + }, + "field": { + "optional": "Opcionális", + "internalID": "A belső ID, amelyet a Frigate használ a konfigurációban és az adatbázisban" } } diff --git a/web/public/locales/hu/components/dialog.json b/web/public/locales/hu/components/dialog.json index c45eac1fc..90acb4356 100644 --- a/web/public/locales/hu/components/dialog.json +++ b/web/public/locales/hu/components/dialog.json @@ -6,7 +6,8 @@ "title": "A Frigate újraindul", "content": "Az oldal újratölt {{countdown}} másodperc múlva.", "button": "Erőltetett újraindítás azonnal" - } + }, + "description": "Ez rövid időre leállítja a Frigate programot, amíg újraindul." }, "explore": { "plus": { @@ -57,7 +58,8 @@ "failed": "Nem sikerült elkezdeni az exportálást: {{error}}", "endTimeMustAfterStartTime": "A végső időpontnak a kezdeti időpont után kell következnie", "noVaildTimeSelected": "Nincs érvényes idő intervallum kiválasztva" - } + }, + "view": "Megtekint" }, "fromTimeline": { "saveExport": "Exportálás mentése", diff --git a/web/public/locales/hu/views/classificationModel.json b/web/public/locales/hu/views/classificationModel.json index be35c7a4b..494ff7c06 100644 --- a/web/public/locales/hu/views/classificationModel.json +++ b/web/public/locales/hu/views/classificationModel.json @@ -13,8 +13,8 @@ "toast": { "success": { "deletedImage": "Törölt képek", - "deletedModel_one": "Sikeresen törölt {{count}} modellt", - "deletedModel_other": "", + "deletedModel_one": "Sikeresen törölve {{count}} modell", + "deletedModel_other": "Sikeresen törölve {{count}} modell", "categorizedImage": "A kép sikeresen osztályozva", "deletedCategory": "Osztály törlése", "trainedModel": "Sikeresen betanított modell.", @@ -24,7 +24,13 @@ }, "error": { "deleteImageFailed": "Törlés sikertelen: {{errorMessage}}", - "deleteCategoryFailed": "Nem sikerült törölni az osztályt: {{errorMessage}}" + "deleteCategoryFailed": "Nem sikerült törölni az osztályt: {{errorMessage}}", + "deleteModelFailed": "Modell törlése nem sikerült: {{errorMessage}}", + "categorizeFailed": "A kép kategorizálása sikertelen: {{errorMessage}}", + "trainingFailed": "A modell képzése sikertelen volt. A részletek a Frigate naplóiban találhatók.", + "trainingFailedToStart": "A modell képzésének elindítása sikertelen: {{errorMessage}}", + "updateModelFailed": "A modell frissítése sikertelen: {{errorMessage}}", + "renameCategoryFailed": "Az osztály átnevezése sikertelen: {{errorMessage}}" } }, "details": { @@ -54,5 +60,16 @@ }, "train": { "titleShort": "Friss" + }, + "deleteCategory": { + "title": "Osztály törlése", + "desc": "Biztosan törölni szeretné a {{name}} osztályt? Ezzel véglegesen törli az összes kapcsolódó képet, és a modell újratanítására lesz szükség.", + "minClassesTitle": "Osztály törlése nem lehetséges" + }, + "deleteModel": { + "title": "Osztályozási modell törlése", + "single": "Biztosan törölni szeretné a(z) {{name}}-t? Ezzel véglegesen törli az összes kapcsolódó adatot, beleértve a képeket és a tanítási adatokat is. Ez a művelet visszafordíthatatlan.", + "desc_one": "Biztosan törölni szeretné a(z) {{count}} modellt? Ezzel véglegesen törli az összes kapcsolódó adatot, beleértve a képeket és a tanítási adatokat is. Ez a művelet visszafordíthatatlan.", + "desc_other": "Biztosan törölni szeretné a(z) {{count}} modelleket? Ezzel véglegesen törli az összes kapcsolódó adatot, beleértve a képeket és a tanítási adatokat is. Ez a művelet visszafordíthatatlan." } } diff --git a/web/public/locales/hu/views/events.json b/web/public/locales/hu/views/events.json index 123e32cc3..904a01336 100644 --- a/web/public/locales/hu/views/events.json +++ b/web/public/locales/hu/views/events.json @@ -54,5 +54,12 @@ "alwaysExpandActive": { "title": "Mindig kibontja az aktív részt" } - } + }, + "objectTrack": { + "trackedPoint": "Nyomon követett pont", + "clickToSeek": "Kattintson, az időponthoz ugráshoz" + }, + "select_all": "Összes", + "needsReview": "Felülvizsgálatra szorul", + "securityConcern": "Biztonsági aggályok" } diff --git a/web/public/locales/hu/views/explore.json b/web/public/locales/hu/views/explore.json index e01a1661b..54b220bef 100644 --- a/web/public/locales/hu/views/explore.json +++ b/web/public/locales/hu/views/explore.json @@ -235,10 +235,19 @@ "header": { "zones": "Zónák", "ratio": "Arány", - "area": "Terület" - } + "area": "Terület", + "score": "Pontszám" + }, + "visible": "{{label}} észlelve", + "entered_zone": "{{label}} belépett {{zones}}", + "gone": "{{label}} maradt" }, "title": "Követési adatok", - "noImageFound": "Nem található kép ehhez az időbélyeghez." + "noImageFound": "Nem található kép ehhez az időbélyeghez.", + "createObjectMask": "Objektum maszk létrehozása", + "scrollViewTips": "Kattintson ide, hogy megtekintse az objektum életciklusának fontosabb pillanatait.", + "autoTrackingTips": "Az automatikus követésű kamerák esetében a keret pozíciói pontatlanok lesznek.", + "count": "{{first}} a {{second}} közül", + "trackedPoint": "Nyomon követett pont" } } diff --git a/web/public/locales/hu/views/faceLibrary.json b/web/public/locales/hu/views/faceLibrary.json index 788b0caea..37339610f 100644 --- a/web/public/locales/hu/views/faceLibrary.json +++ b/web/public/locales/hu/views/faceLibrary.json @@ -47,7 +47,8 @@ "description": { "placeholder": "Adj nevet ennek a gyűjteménynek", "invalidName": "Nem megfelelő név. A nevek csak betűket, számokat, szóközöket, aposztrófokat, alulhúzásokat és kötőjeleket tartalmazhatnak.", - "addFace": "Adj hozzá egy új gyűjteményt az Arcképtárhoz az első képed feltöltésével." + "addFace": "Adj hozzá egy új gyűjteményt az Arcképtárhoz az első képed feltöltésével.", + "nameCannotContainHash": "A név nem tartalmazhat # karaktert." }, "selectFace": "Arc kiválasztása", "deleteFaceLibrary": { @@ -71,7 +72,7 @@ "deletedName_one": "{{count}} arc sikeresen törölve.", "deletedName_other": "{{count}} arc sikeresen törölve.", "renamedFace": "Arc sikeresen átnvezezve {{name}}-ra/-re", - "updatedFaceScore": "Arc pontszáma sikeresen frissítve.", + "updatedFaceScore": "Arc pontszáma sikeresen frissítve a következőhöz {{name}} ({{score}}).", "trainedFace": "Arc sikeresen betanítva.", "deletedFace_one": "{{count}} arc sikeresen törölve.", "deletedFace_other": "{{count}} arc sikeresen törölve." diff --git a/web/public/locales/hu/views/settings.json b/web/public/locales/hu/views/settings.json index 2f36708b5..c8bd38614 100644 --- a/web/public/locales/hu/views/settings.json +++ b/web/public/locales/hu/views/settings.json @@ -50,6 +50,12 @@ "playAlertVideos": { "label": "Riasztási Videók Lejátszása", "desc": "Alapértelmezetten az Élő irányítópulton a legutóbbi riasztások kis, ismétlődő videóként jelennek meg. Kapcsolja ki ezt az opciót, ha csak állóképet szeretne megjeleníteni a legutóbbi riasztásokról ezen az eszközön/böngészőben." + }, + "displayCameraNames": { + "label": "Mindig mutatja a kamera nevét" + }, + "liveFallbackTimeout": { + "desc": "Ha a kamera kiváló minőségű élő közvetítése nem elérhető, ennyi másodperc elteltével váltson alacsony sávszélességű módra. Alapértelmezett: 3." } }, "title": "Alapbeállítások", @@ -806,7 +812,7 @@ "updateCameras": "Kamerák frissítve a szerepkörhöz: {{role}}", "deleteRole": "Szerepkör sikeresen törölve: {{role}}", "userRolesUpdated_one": "{{count}} felhasználó, akit ehhez a szerepkörhöz rendeltünk, frissült „néző”-re, amely hozzáféréssel rendelkezik az összes kamerához.", - "userRolesUpdated_other": "" + "userRolesUpdated_other": "{{count}} felhasználó, akit ehhez a szerepkörhöz rendeltünk, frissült „néző”-re, amely hozzáféréssel rendelkezik az összes kamerához." }, "error": { "createRoleFailed": "Nem sikerült létrehozni a szerepkört: {{errorMessage}}", diff --git a/web/public/locales/hu/views/system.json b/web/public/locales/hu/views/system.json index 204d85571..d99cfbcb3 100644 --- a/web/public/locales/hu/views/system.json +++ b/web/public/locales/hu/views/system.json @@ -66,7 +66,7 @@ "type": { "label": "Típus", "timestamp": "Időbélyeg", - "tag": "Cédula", + "tag": "Címke", "message": "Üzenet" }, "toast": { From d4d4164f99bf0a89f7d619a9c435f2285ea0782f Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:29 +0100 Subject: [PATCH 11/33] Translated using Weblate (Polish) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Polish) Currently translated at 100.0% (501 of 501 strings) Translated using Weblate (Polish) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Polish) Currently translated at 100.0% (654 of 654 strings) Co-authored-by: Hosted Weblate Co-authored-by: J P Co-authored-by: Krzysztof Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pl/ Translation: Frigate NVR/audio Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-settings --- web/public/locales/pl/audio.json | 4 ++-- web/public/locales/pl/components/dialog.json | 3 ++- web/public/locales/pl/views/settings.json | 11 ++++++++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/web/public/locales/pl/audio.json b/web/public/locales/pl/audio.json index 4d8e1f28d..6d5350572 100644 --- a/web/public/locales/pl/audio.json +++ b/web/public/locales/pl/audio.json @@ -446,8 +446,8 @@ "outside": "Na zewnątrz", "chird": "Child", "change_ringing": "Zmienny dzwonek", - "shofar": "Shofar", - "trickle": "Trickle", + "shofar": "Szofar", + "trickle": "Spływanie", "gush": "Wylew", "fill": "Napełnianie", "sonar": "Sonar", diff --git a/web/public/locales/pl/components/dialog.json b/web/public/locales/pl/components/dialog.json index 24842e140..994aeb53b 100644 --- a/web/public/locales/pl/components/dialog.json +++ b/web/public/locales/pl/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate uruchamia się ponownie", "content": "Strona odświeży się za {{countdown}} sekund.", "button": "Wymuś odświeżenie" - } + }, + "description": "Spowoduje to chwilowe zatrzymanie Frigate i ponowne uruchomienie." }, "explore": { "plus": { diff --git a/web/public/locales/pl/views/settings.json b/web/public/locales/pl/views/settings.json index 37a560444..f7440b046 100644 --- a/web/public/locales/pl/views/settings.json +++ b/web/public/locales/pl/views/settings.json @@ -278,6 +278,11 @@ }, "error": { "mustBeFinished": "Rysowanie wielokąta musi być zakończone przed zapisaniem." + }, + "type": { + "object_mask": "maska obiektowa", + "motion_mask": "maska ruchu", + "zone": "strefa" } }, "speed": { @@ -787,9 +792,9 @@ "createRole": "Utworzono rolę {{role}}", "updateCameras": "Zaktualizowano kamery dla roli {{role}}", "deleteRole": "Rola {{role}} została usunięta", - "userRolesUpdated_one": "{{count}} użytkowników przypisanych do tej roli zostało zaktualizowanych do roli 'viewer', która ma dostęp do wszystkich kamer.", - "userRolesUpdated_few": "", - "userRolesUpdated_many": "" + "userRolesUpdated_one": "{{count}} użytkownik przypisany do tej roli został zaktualizowany do roli 'viewer', która ma dostęp do wszystkich kamer.", + "userRolesUpdated_few": "{{count}} użytkowników przypisanych do tej roli zostało zaktualizowanych do roli 'viewer', która ma dostęp do wszystkich kamer.", + "userRolesUpdated_many": "{{count}} użytkowników przypisanych do tej roli zostało zaktualizowanych do roli 'viewer', która ma dostęp do wszystkich kamer." }, "error": { "createRoleFailed": "Nie udało się utworzyć roli: {{errorMessage}}", From 29a4076589e767834d7cd1057751fdb2ef2dcbb7 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:29 +0100 Subject: [PATCH 12/33] Translated using Weblate (Italian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Italian) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Italian) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Italian) Currently translated at 100.0% (136 of 136 strings) Translated using Weblate (Italian) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Italian) Currently translated at 100.0% (55 of 55 strings) Translated using Weblate (Italian) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Italian) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Italian) Currently translated at 100.0% (217 of 217 strings) Co-authored-by: Edoardo Macrì Co-authored-by: Filippo-riccardo Franzin (filippo franzin) Co-authored-by: Gringo Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/it/ Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/it/common.json | 3 +- web/public/locales/it/components/dialog.json | 5 +-- web/public/locales/it/views/faceLibrary.json | 3 +- web/public/locales/it/views/settings.json | 37 +++++++++++--------- web/public/locales/it/views/system.json | 4 +-- 5 files changed, 30 insertions(+), 22 deletions(-) diff --git a/web/public/locales/it/common.json b/web/public/locales/it/common.json index f4abd0063..feb570ae9 100644 --- a/web/public/locales/it/common.json +++ b/web/public/locales/it/common.json @@ -208,7 +208,8 @@ "bg": "Български (Bulgaro)", "gl": "Galego (Galiziano)", "id": "Bahasa Indonesia (Indonesiano)", - "ur": "اردو (Urdu)" + "ur": "اردو (Urdu)", + "hr": "Hrvatski (Croato)" }, "darkMode": { "label": "Modalità scura", diff --git a/web/public/locales/it/components/dialog.json b/web/public/locales/it/components/dialog.json index b3be02bf5..dd1753ee4 100644 --- a/web/public/locales/it/components/dialog.json +++ b/web/public/locales/it/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate si sta riavviando", "content": "Questa pagina si ricaricherà in {{countdown}} secondi.", "button": "Forza ricarica ora" - } + }, + "description": "Questo fermerà brevemente Frigate mentre si riavvia." }, "explore": { "plus": { @@ -84,7 +85,7 @@ "label": "Mostra statistiche di trasmissione", "desc": "Abilita questa opzione per visualizzare le statistiche della trasmissione come sovrapposizione sul flusso della telecamera." }, - "debugView": "Visualizzazione debug", + "debugView": "Vista correzioni", "restreaming": { "disabled": "La ritrasmissione non è abilitata per questa telecamera.", "desc": { diff --git a/web/public/locales/it/views/faceLibrary.json b/web/public/locales/it/views/faceLibrary.json index b40e7fbcf..7ffd4dc48 100644 --- a/web/public/locales/it/views/faceLibrary.json +++ b/web/public/locales/it/views/faceLibrary.json @@ -3,7 +3,8 @@ "description": { "addFace": "Aggiungi una nuova raccolta alla Libreria dei Volti caricando la tua prima immagine.", "placeholder": "Inserisci un nome per questa raccolta", - "invalidName": "Nome non valido. I nomi possono contenere solo lettere, numeri, spazi, apostrofi, caratteri di sottolineatura e trattini." + "invalidName": "Nome non valido. I nomi possono contenere solo lettere, numeri, spazi, apostrofi, caratteri di sottolineatura e trattini.", + "nameCannotContainHash": "Il nome non può contenere #." }, "details": { "confidence": "Fiducia", diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json index 09a26e909..d6bf3715f 100644 --- a/web/public/locales/it/views/settings.json +++ b/web/public/locales/it/views/settings.json @@ -10,7 +10,7 @@ "general": "Impostazioni interfaccia - Frigate", "frigatePlus": "Impostazioni Frigate+ - Frigate", "notifications": "Impostazioni di notifiche - Frigate", - "enrichments": "Impostazioni Componenti Aggiuntivi - Frigate", + "enrichments": "Impostazioni di miglioramento - Frigate", "cameraManagement": "Gestisci telecamere - Frigate", "cameraReview": "Impostazioni revisione telecamera - Frigate" }, @@ -87,9 +87,9 @@ "desc": "Mostra un riquadro della regione di interesse inviata al rilevatore di oggetti" }, "noObjects": "Nessun oggetto", - "title": "Debug", - "desc": "La vista di debug mostra in tempo reale gli oggetti tracciati e le relative statistiche. L'elenco degli oggetti mostra un riepilogo in differita degli oggetti rilevati.", - "debugging": "Debugging", + "title": "Correzioni", + "desc": "La vista di correzione mostra una vista in tempo reale degli oggetti tracciati e delle relative statistiche. L'elenco degli oggetti mostra un riepilogo ritardato degli oggetti rilevati.", + "debugging": "Correzioni", "objectList": "Elenco degli oggetti", "mask": { "desc": "Mostra i poligoni della maschera di movimento", @@ -181,6 +181,11 @@ }, "error": { "mustBeFinished": "Prima di salvare, è necessario terminare il disegno del poligono." + }, + "type": { + "zone": "zona", + "motion_mask": "maschera di movimento", + "object_mask": "maschera di oggetto" } }, "inertia": { @@ -377,14 +382,14 @@ "classification": "Classificazione", "cameras": "Impostazioni telecamera", "masksAndZones": "Maschere / Zone", - "debug": "Debug", + "debug": "Correzioni", "users": "Utenti", "frigateplus": "Frigate+", - "enrichments": "Componenti Aggiuntivi", + "enrichments": "Miglioramenti", "triggers": "Inneschi", "roles": "Ruoli", "cameraManagement": "Gestione", - "cameraReview": "Revisione" + "cameraReview": "Rivedi" }, "users": { "dialog": { @@ -432,7 +437,7 @@ "hide": "Nascondi password", "requirements": { "title": "Requisiti password:", - "length": "Almeno 8 caratteri", + "length": "Almeno 12 caratteri", "uppercase": "Almeno una lettera maiuscola", "digit": "Almeno una cifra", "special": "Almeno un carattere speciale (!@#$%^&*(),.?\":{}|<>)" @@ -510,7 +515,7 @@ }, "playAlertVideos": { "label": "Riproduci video di avvisi", - "desc": "Per impostazione predefinita, gli avvisi recenti nella dashboard Live vengono riprodotti come piccoli video in loop. Disabilita questa opzione per mostrare solo un'immagine statica degli avvisi recenti su questo dispositivo/browser." + "desc": "Per impostazione predefinita, gli avvisi recenti nella schermata dal vivo vengono riprodotti come brevi video in ciclo. Disattiva questa opzione per visualizzare solo un'immagine statica degli avvisi recenti su questo dispositivo/browser." }, "title": "Schermata dal vivo", "displayCameraNames": { @@ -534,7 +539,7 @@ "clearAll": "Cancella tutte le impostazioni di trasmissione" }, "recordingsViewer": { - "title": "Visualizzatore di registrazioni", + "title": "Visualizzatore registrazioni", "defaultPlaybackRate": { "label": "Velocità di riproduzione predefinita", "desc": "Velocità di riproduzione predefinita per la riproduzione delle registrazioni." @@ -640,7 +645,7 @@ "title": "Regolatore di rilevamento del movimento", "contourArea": { "title": "Area di contorno", - "desc": "Il valore dell'area di contorno viene utilizzato per decidere quali gruppi di pixel modificati possono essere considerati movimento. Predefinito: 10" + "desc": "Il valore dell'area del contorno viene utilizzato per decidere quali gruppi di pixel modificati sono considerati movimento. Predefinito: 10" }, "Threshold": { "title": "Soglia", @@ -708,10 +713,10 @@ }, "enrichments": { "toast": { - "success": "Le impostazioni dei componenti aggiuntivi sono state salvate. Riavvia Frigate per applicare le modifiche.", + "success": "Le impostazioni di miglioramento sono state salvate. Riavvia Frigate per applicare le modifiche.", "error": "Impossibile salvare le modifiche alla configurazione: {{errorMessage}}" }, - "title": "Impostazioni Componenti Aggiuntivi", + "title": "Impostazioni di miglioramento", "semanticSearch": { "reindexNow": { "desc": "La reindicizzazione rigenererà gli incorporamenti per tutti gli oggetti tracciati. Questo processo viene eseguito in sottofondo e potrebbe impegnare al massimo la CPU e richiedere un tempo considerevole, a seconda del numero di oggetti tracciati.", @@ -765,8 +770,8 @@ "title": "Riconoscimento targhe", "readTheDocumentation": "Leggi la documentazione" }, - "unsavedChanges": "Modifiche alle impostazioni dei Componenti aggiuntivi non salvate", - "restart_required": "Riavvio richiesto (impostazioni dei componenti aggiuntivi modificate)" + "unsavedChanges": "Modifiche alle impostazioni di miglioramento non salvate", + "restart_required": "Riavvio richiesto (impostazioni di miglioramento modificate)" }, "triggers": { "documentTitle": "Inneschi", @@ -1278,7 +1283,7 @@ "backToSettings": "Torna alle impostazioni della telecamera", "streams": { "title": "Abilita/Disabilita telecamere", - "desc": "Disattiva temporaneamente una telecamera fino al riavvio di Frigate. La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi di questa telecamera da parte di Frigate. Rilevamento, registrazione e debug non saranno disponibili.
Nota: questa operazione non disattiva le ritrasmissioni di go2rtc." + "desc": "Disattiva temporaneamente una telecamera fino al riavvio di Frigate. La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi di questa telecamera da parte di Frigate. Rilevamento, registrazione e correzioni non saranno disponibili.
Nota: questa operazione non disattiva le ritrasmissioni di go2rtc." }, "cameraConfig": { "add": "Aggiungi telecamera", diff --git a/web/public/locales/it/views/system.json b/web/public/locales/it/views/system.json index 1483e56db..d5e92543b 100644 --- a/web/public/locales/it/views/system.json +++ b/web/public/locales/it/views/system.json @@ -1,7 +1,7 @@ { "documentTitle": { "cameras": "Statistiche telecamere - Frigate", - "enrichments": "Statistiche Componenti Aggiuntivi - Frigate", + "enrichments": "Statistiche di miglioramento - Frigate", "storage": "Statistiche archiviazione - Frigate", "general": "Statistiche generali - Frigate", "logs": { @@ -117,7 +117,7 @@ "classification_speed": "Velocità di classificazione {{name}}", "classification_events_per_second": "Eventi di classificazione {{name}} al secondo" }, - "title": "Componenti Aggiuntivi", + "title": "Miglioramenti", "infPerSecond": "Inferenze al secondo", "averageInf": "Tempo medio di inferenza" }, From f4f32a3f595d261a8f18539ebd71257b104d3d04 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:29 +0100 Subject: [PATCH 13/33] Translated using Weblate (Indonesian) Currently translated at 54.9% (67 of 122 strings) Translated using Weblate (Indonesian) Currently translated at 48.2% (27 of 56 strings) Co-authored-by: Catto Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/id/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/id/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-classificationmodel --- web/public/locales/id/components/dialog.json | 3 +- .../locales/id/views/classificationModel.json | 64 ++++++++++++++++--- 2 files changed, 57 insertions(+), 10 deletions(-) diff --git a/web/public/locales/id/components/dialog.json b/web/public/locales/id/components/dialog.json index 07eda62d2..35d87b07c 100644 --- a/web/public/locales/id/components/dialog.json +++ b/web/public/locales/id/components/dialog.json @@ -6,7 +6,8 @@ "title": "Sedang Merestart Frigate", "content": "Halaman ini akan memulai ulang dalam {{countdown}} detik.", "button": "Muat Ulang Sekarang" - } + }, + "description": "Layanan Frigate akan terhenti sejenak saat proses restart." }, "explore": { "plus": { diff --git a/web/public/locales/id/views/classificationModel.json b/web/public/locales/id/views/classificationModel.json index 0f0c01261..6724a3b26 100644 --- a/web/public/locales/id/views/classificationModel.json +++ b/web/public/locales/id/views/classificationModel.json @@ -1,12 +1,14 @@ { "documentTitle": "Klasifikasi Model - Frigate", "details": { - "scoreInfo": "Skor tersebut mewakili rata-rata kepercayaan klasifikasi di seluruh deteksi objek ini." + "scoreInfo": "Skor tersebut mewakili rata-rata kepercayaan klasifikasi di seluruh deteksi objek ini.", + "none": "Tidak ada", + "unknown": "Tidak diketahui" }, "button": { "deleteClassificationAttempts": "Hapus Gambar Klasifikasi", - "renameCategory": "Ubah Nama Kelas", - "deleteCategory": "Hapus Kelas", + "renameCategory": "Ganti Nama Class", + "deleteCategory": "Hapus Class", "deleteImages": "Hapus Gambar", "trainModel": "Latih Model", "addClassification": "Tambah Klasifikasi", @@ -14,14 +16,14 @@ "editModel": "Ubah Model" }, "tooltip": { - "trainingInProgress": "Model dalam training", - "noNewImages": "Tidak ada gambar untuk dilatih. Klasifikasikan gambar terlebih dahulu di dataset.", + "trainingInProgress": "Model sedang training", + "noNewImages": "Tidak ada gambar baru untuk training. Klasifikasi lebih banyak gambar di dataset terlebih dahulu.", "noChanges": "Tidak ada perubahan dataset sejak latihan terakhir.", "modelNotReady": "Model tidak siap untuk dilatih" }, "toast": { "success": { - "deletedCategory": "Kelas dihapus", + "deletedCategory": "Class Dihapus", "deletedImage": "Image dihapus", "deletedModel_other": "Berhasil menghapus {{count}} model", "categorizedImage": "Berhasil Mengklasifikasikan Gambar", @@ -31,17 +33,61 @@ "renamedCategory": "Berhasil mengganti nama class ke {{name}}" }, "error": { - "updateModelFailed": "Gagal melakukan perubahan pada model: {{errorMessage}}", + "updateModelFailed": "Gagal update model: {{errorMessage}}", "renameCategoryFailed": "Gagal merubah penamaan kelas: {{errorMessage}}", "deleteImageFailed": "Gagal menghapus: {{errorMessage}}", - "deleteCategoryFailed": "Gagal menghapus kelas: {{errorMessage}}" + "deleteCategoryFailed": "Gagal menghapus kelas: {{errorMessage}}", + "deleteModelFailed": "Gagal menghapus model: {{errorMessage}}", + "categorizeFailed": "Gagal mengkategorikan gambar: {{errorMessage}}", + "trainingFailed": "Gagal melakukan training model. Cek log Frigate untuk rinciannya.", + "trainingFailedToStart": "Gagal memulai training model: {{errorMessage}}" } }, "deleteCategory": { "title": "Kelas dihapus", - "minClassesTitle": "Dilarang menghapus Kelas" + "minClassesTitle": "Dilarang menghapus Kelas", + "desc": "Apakah Anda yakin ingin menghapus class {{name}}? Ini akan menghapus semua gambar terkait secara permanen dan memerlukan re-training model.", + "minClassesDesc": "Model klasifikasi harus memiliki setidaknya 2 class. Tambahkan class lain sebelum menghapus yang ini." }, "train": { "titleShort": "Terkini" + }, + "wizard": { + "title": "Buat Klasifikasi Baru", + "steps": { + "nameAndDefine": "Nama & Definisi", + "stateArea": "Pilih Area", + "chooseExamples": "Pilih Contoh" + }, + "step1": { + "description": "State model memantau area kamera yang tetap untuk setiap perubahan (contoh: pintu terbuka/tertutup). Object model menambahkan klasifikasi pada objek yang terdeteksi (contoh: hewan tertentu, kurir, dll.).", + "name": "Nama", + "namePlaceholder": "Masukkan nama model...", + "type": "Tipe", + "typeState": "Status", + "typeObject": "Objek", + "objectLabel": "Label Objek", + "objectLabelPlaceholder": "Pilih tipe objek...", + "classificationType": "Pilih Klasifikasi", + "classificationTypeTip": "Pelajari tentang tipe klasifikasi", + "classificationTypeDesc": "Sub Label menambahkan teks tambahan pada label objek (contoh: 'Orang: UPS'). Atribut adalah metadata yang dapat dicari dan disimpan secara terpisah di dalam metadata objek.", + "classificationSubLabel": "Sub Label", + "classificationAttribute": "Atribut", + "classes": "Class", + "classesTip": "Pelajari tentang class", + "classesStateDesc": "Tentukan berbagai status (state) pada area kamera Anda. Contoh: 'terbuka' dan 'tertutup' untuk pintu garasi.", + "classesObjectDesc": "Tentukan kategori berbeda untuk mengklasifikasikan objek yang terdeteksi. Contoh: 'kurir', 'penghuni', 'orang_asing' untuk klasifikasi orang.", + "classPlaceholder": "Masukkan nama class...", + "errors": { + "nameRequired": "Nama model wajib diisi", + "nameLength": "Nama model maksimal 64 karakter", + "nameOnlyNumbers": "Nama model tidak boleh hanya berisi angka", + "classRequired": "Setidaknya harus ada 1 class yang diisi", + "classesUnique": "Nama class harus unik", + "stateRequiresTwoClasses": "State model memerlukan minimal 2 class", + "objectLabelRequired": "Silakan pilih label objek", + "objectTypeRequired": "Silakan pilih tipe klasifikasi" + } + } } } From 71139ef8425b0f491588d35f9ced54108ada4bd8 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:29 +0100 Subject: [PATCH 14/33] Translated using Weblate (Dutch) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (217 of 217 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (54 of 54 strings) Co-authored-by: Hosted Weblate Co-authored-by: Marijn <168113859+Marijn0@users.noreply.github.com> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nl/ Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings --- web/public/locales/nl/common.json | 7 ++++--- web/public/locales/nl/components/dialog.json | 3 ++- web/public/locales/nl/views/faceLibrary.json | 3 ++- web/public/locales/nl/views/settings.json | 7 ++++++- 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/web/public/locales/nl/common.json b/web/public/locales/nl/common.json index e9dd25d99..f03c7d3a4 100644 --- a/web/public/locales/nl/common.json +++ b/web/public/locales/nl/common.json @@ -59,7 +59,7 @@ "second_other": "{{time}} seconden", "formattedTimestampHourMinute": { "24hour": "HH:mm", - "12hour": "HH:mm" + "12hour": "h:mm aaa" }, "formattedTimestampMonthDayYearHourMinute": { "12hour": "d MMM yyyy, HH:mm", @@ -71,7 +71,7 @@ "24hour": "dd-MM-yy-HH-mm-ss" }, "formattedTimestampHourMinuteSecond": { - "12hour": "HH:mm:ss", + "12hour": "h:mm:ss aaa", "24hour": "HH:mm:ss" }, "formattedTimestampMonthDayHourMinute": { @@ -202,7 +202,8 @@ "bg": "Български (Bulgaars)", "gl": "Galego (Galicisch)", "id": "Bahasa Indonesia (Indonesisch)", - "ur": "اردو (Urdu)" + "ur": "اردو (Urdu)", + "hr": "Hrvatski (Kroatisch)" }, "darkMode": { "label": "Donkere modus", diff --git a/web/public/locales/nl/components/dialog.json b/web/public/locales/nl/components/dialog.json index b666c2b0c..eec72a3fb 100644 --- a/web/public/locales/nl/components/dialog.json +++ b/web/public/locales/nl/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate wordt opnieuw gestart", "button": "Forceer herladen nu", "content": "Deze pagina zal herladen in {{countdown}} seconden." - } + }, + "description": "Dit zal Frigate kort stoppen terwijl het opnieuw opstart." }, "explore": { "plus": { diff --git a/web/public/locales/nl/views/faceLibrary.json b/web/public/locales/nl/views/faceLibrary.json index 88ce52e0f..a7fa2f662 100644 --- a/web/public/locales/nl/views/faceLibrary.json +++ b/web/public/locales/nl/views/faceLibrary.json @@ -14,7 +14,8 @@ "description": { "placeholder": "Voer een naam in voor deze verzameling", "addFace": "Voeg een nieuwe collectie toe aan de gezichtenbibliotheek door je eerste afbeelding te uploaden.", - "invalidName": "Ongeldige naam. Namen mogen alleen letters, cijfers, spaties, apostroffen, underscores en koppeltekens bevatten." + "invalidName": "Ongeldige naam. Namen mogen alleen letters, cijfers, spaties, apostroffen, underscores en koppeltekens bevatten.", + "nameCannotContainHash": "De naam mag geen # bevatten." }, "train": { "title": "Recente herkenningen", diff --git a/web/public/locales/nl/views/settings.json b/web/public/locales/nl/views/settings.json index c94d285e4..ba3684fe4 100644 --- a/web/public/locales/nl/views/settings.json +++ b/web/public/locales/nl/views/settings.json @@ -287,6 +287,11 @@ }, "reset": { "label": "Alle punten wissen" + }, + "type": { + "zone": "zone", + "motion_mask": "bewegingsmasker", + "object_mask": "objectmasker" } }, "speed": { @@ -546,7 +551,7 @@ "hide": "Wachtwoord verbergen", "requirements": { "title": "Wachtwoordvereisten:", - "length": "Minimaal 8 tekens", + "length": "Minimaal 12 tekens", "uppercase": "Minimaal één hoofdletter", "digit": "Minimaal één cijfer", "special": "Minimaal één speciaal teken (!@#$%^&*(),.?\":{}|<>)" From 3cc8311b48531ba5dad8e9dd45ac6a71ed584c64 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:30 +0100 Subject: [PATCH 15/33] Translated using Weblate (Spanish) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (136 of 136 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (217 of 217 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (74 of 74 strings) Co-authored-by: Ferrer Co-authored-by: Gerard Ricart Castells Co-authored-by: Hosted Weblate Co-authored-by: Ramitada Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/es/ Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/es/common.json | 3 ++- web/public/locales/es/components/dialog.json | 3 ++- web/public/locales/es/components/filter.json | 4 ++-- web/public/locales/es/views/faceLibrary.json | 3 ++- web/public/locales/es/views/settings.json | 9 +++++++-- web/public/locales/es/views/system.json | 2 +- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json index a953bc5b9..49e06c508 100644 --- a/web/public/locales/es/common.json +++ b/web/public/locales/es/common.json @@ -153,7 +153,8 @@ "bg": "Български (Búlgaro)", "gl": "Galego (Gallego)", "id": "Bahasa Indonesia (Indonesio)", - "ur": "اردو (Urdu)" + "ur": "اردو (Urdu)", + "hr": "Hrvatski (Croata)" }, "appearance": "Apariencia", "darkMode": { diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json index 98c96528f..e8f59f05a 100644 --- a/web/public/locales/es/components/dialog.json +++ b/web/public/locales/es/components/dialog.json @@ -6,7 +6,8 @@ "content": "Esta página se recargará en {{countdown}} segundos." }, "title": "¿Estás seguro de que quieres reiniciar Frigate?", - "button": "Reiniciar" + "button": "Reiniciar", + "description": "Esto detendrá brevemente Frigate mientras se reinicia." }, "explore": { "plus": { diff --git a/web/public/locales/es/components/filter.json b/web/public/locales/es/components/filter.json index 49e3c3347..1d9c07874 100644 --- a/web/public/locales/es/components/filter.json +++ b/web/public/locales/es/components/filter.json @@ -129,13 +129,13 @@ "classes": { "label": "Clases", "all": { - "title": "Todas las Clases" + "title": "Todas las clases" }, "count_one": "{{count}} Clase", "count_other": "{{count}} Clases" }, "attributes": { - "label": "Atributos de Clasificación", + "label": "Atributos de clasificación", "all": "Todos los Atributos" } } diff --git a/web/public/locales/es/views/faceLibrary.json b/web/public/locales/es/views/faceLibrary.json index 44e1eba01..faca37408 100644 --- a/web/public/locales/es/views/faceLibrary.json +++ b/web/public/locales/es/views/faceLibrary.json @@ -2,7 +2,8 @@ "description": { "addFace": "Agregar una nueva colección a la Biblioteca de Rostros subiendo tu primera imagen.", "placeholder": "Introduce un nombre para esta colección", - "invalidName": "Nombre incorrecto. Los nombres solo pueden incluir letras, números, espacios, apóstrofes, guiones bajos, y guiones." + "invalidName": "Nombre incorrecto. Los nombres solo pueden incluir letras, números, espacios, apóstrofes, guiones bajos, y guiones.", + "nameCannotContainHash": "El nombre no puede contener #." }, "details": { "person": "Persona", diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json index 8f847a53f..a315aa7d6 100644 --- a/web/public/locales/es/views/settings.json +++ b/web/public/locales/es/views/settings.json @@ -276,7 +276,12 @@ "reset": { "label": "Borrar todos los puntos" }, - "removeLastPoint": "Eliminar el último punto" + "removeLastPoint": "Eliminar el último punto", + "type": { + "zone": "zona", + "motion_mask": "máscara de movimiento", + "object_mask": "máscara de objeto" + } }, "speed": { "error": { @@ -548,7 +553,7 @@ "hide": "Ocultar contraseña", "requirements": { "title": "Requisitos de contraseña:", - "length": "Al menos 8 caracteres", + "length": "Al menos 12 caracteres", "uppercase": "Al menos una mayúscula", "digit": "Al menos un número", "special": "Al menos un caracter especial (!@#$%^&*(),.?\":{}|<>)" diff --git a/web/public/locales/es/views/system.json b/web/public/locales/es/views/system.json index 51fa59d83..300717a73 100644 --- a/web/public/locales/es/views/system.json +++ b/web/public/locales/es/views/system.json @@ -192,7 +192,7 @@ "classification_speed": "Velocidad de clasificación de {{name}}", "classification_events_per_second": "Clasificacion de eventos por segundo de {{name}}" }, - "title": "Enriquicimientos", + "title": "Enriquecimientos", "averageInf": "Tiempo promedio de inferencia" }, "stats": { From 8bc82060f1e6c497603666e2734308a03cd6bfca Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:30 +0100 Subject: [PATCH 16/33] Translated using Weblate (French) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (French) Currently translated at 100.0% (654 of 654 strings) Co-authored-by: Apocoloquintose Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fr/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-settings --- web/public/locales/fr/components/dialog.json | 3 ++- web/public/locales/fr/views/settings.json | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/web/public/locales/fr/components/dialog.json b/web/public/locales/fr/components/dialog.json index f0b542b70..5b3cf0242 100644 --- a/web/public/locales/fr/components/dialog.json +++ b/web/public/locales/fr/components/dialog.json @@ -6,7 +6,8 @@ "content": "Cette page sera rechargée dans {{countdown}} secondes.", "button": "Forcer l'actualisation maintenant" }, - "button": "Redémarrer" + "button": "Redémarrer", + "description": "Frigate s'arrêtera momentanément pour redémarrer." }, "explore": { "plus": { diff --git a/web/public/locales/fr/views/settings.json b/web/public/locales/fr/views/settings.json index 2b989ac80..6fe3c03a7 100644 --- a/web/public/locales/fr/views/settings.json +++ b/web/public/locales/fr/views/settings.json @@ -366,6 +366,11 @@ "snapPoints": { "true": "Points d'accrochage", "false": "Ne pas réunir les points" + }, + "type": { + "zone": "zone", + "motion_mask": "masque de mouvement", + "object_mask": "masque d'objet" } }, "loiteringTime": { From 806c5892b6a247d0bdb415702d8e08521da5c08f Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:30 +0100 Subject: [PATCH 17/33] Translated using Weblate (Swedish) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (10 of 10 strings) Co-authored-by: Hosted Weblate Co-authored-by: Kristian Johansson Co-authored-by: bittin1ddc447d824349b2 Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sv/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-configeditor Translation: Frigate NVR/views-settings --- web/public/locales/sv/components/dialog.json | 3 ++- web/public/locales/sv/views/configEditor.json | 2 +- web/public/locales/sv/views/settings.json | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/web/public/locales/sv/components/dialog.json b/web/public/locales/sv/components/dialog.json index 2ef0e8814..66d8503b9 100644 --- a/web/public/locales/sv/components/dialog.json +++ b/web/public/locales/sv/components/dialog.json @@ -6,7 +6,8 @@ "content": "Sidan uppdateras om {{countdown}} sekunder.", "button": "Tvinga omladdning nu" }, - "title": "Är du säker på att du vill starta om Frigate?" + "title": "Är du säker på att du vill starta om Frigate?", + "description": "Detta kommer att stoppa Frigate kort medan det startar om." }, "explore": { "plus": { diff --git a/web/public/locales/sv/views/configEditor.json b/web/public/locales/sv/views/configEditor.json index 7b96ff9fe..4e64a39f5 100644 --- a/web/public/locales/sv/views/configEditor.json +++ b/web/public/locales/sv/views/configEditor.json @@ -14,5 +14,5 @@ "configEditor": "Ändra konfiguration", "confirm": "Avsluta utan att spara?", "safeConfigEditor": "Konfigurationsredigeraren (felsäkert läge)", - "safeModeDescription": "Fregate är i felsäkert läge på grund av ett konfigurationsvalideringsfel." + "safeModeDescription": "Frigate är i felsäkert läge på grund av ett konfigurationsvalideringsfel." } diff --git a/web/public/locales/sv/views/settings.json b/web/public/locales/sv/views/settings.json index 8f02a3f22..7a256d722 100644 --- a/web/public/locales/sv/views/settings.json +++ b/web/public/locales/sv/views/settings.json @@ -293,6 +293,11 @@ }, "error": { "mustBeFinished": "Polygonritningen måste vara klar innan du sparar." + }, + "type": { + "zone": "zon", + "motion_mask": "rörelsemask", + "object_mask": "objektmask" } } }, From 1f14f1cda03ce69aec9527b98b8ce279b8771474 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:31 +0100 Subject: [PATCH 18/33] Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Added translation using Weblate (Georgian) Co-authored-by: George Hertz Co-authored-by: Hosted Weblate --- web/public/locales/ka/audio.json | 1 + web/public/locales/ka/common.json | 1 + web/public/locales/ka/components/auth.json | 1 + web/public/locales/ka/components/camera.json | 1 + web/public/locales/ka/components/dialog.json | 1 + web/public/locales/ka/components/filter.json | 1 + web/public/locales/ka/components/icons.json | 1 + web/public/locales/ka/components/input.json | 1 + web/public/locales/ka/components/player.json | 1 + web/public/locales/ka/objects.json | 1 + web/public/locales/ka/views/classificationModel.json | 1 + web/public/locales/ka/views/configEditor.json | 1 + web/public/locales/ka/views/events.json | 1 + web/public/locales/ka/views/explore.json | 1 + web/public/locales/ka/views/exports.json | 1 + web/public/locales/ka/views/faceLibrary.json | 1 + web/public/locales/ka/views/live.json | 1 + web/public/locales/ka/views/recording.json | 1 + web/public/locales/ka/views/search.json | 1 + web/public/locales/ka/views/settings.json | 1 + web/public/locales/ka/views/system.json | 1 + 21 files changed, 21 insertions(+) create mode 100644 web/public/locales/ka/audio.json create mode 100644 web/public/locales/ka/common.json create mode 100644 web/public/locales/ka/components/auth.json create mode 100644 web/public/locales/ka/components/camera.json create mode 100644 web/public/locales/ka/components/dialog.json create mode 100644 web/public/locales/ka/components/filter.json create mode 100644 web/public/locales/ka/components/icons.json create mode 100644 web/public/locales/ka/components/input.json create mode 100644 web/public/locales/ka/components/player.json create mode 100644 web/public/locales/ka/objects.json create mode 100644 web/public/locales/ka/views/classificationModel.json create mode 100644 web/public/locales/ka/views/configEditor.json create mode 100644 web/public/locales/ka/views/events.json create mode 100644 web/public/locales/ka/views/explore.json create mode 100644 web/public/locales/ka/views/exports.json create mode 100644 web/public/locales/ka/views/faceLibrary.json create mode 100644 web/public/locales/ka/views/live.json create mode 100644 web/public/locales/ka/views/recording.json create mode 100644 web/public/locales/ka/views/search.json create mode 100644 web/public/locales/ka/views/settings.json create mode 100644 web/public/locales/ka/views/system.json diff --git a/web/public/locales/ka/audio.json b/web/public/locales/ka/audio.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/audio.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/common.json b/web/public/locales/ka/common.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/common.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/components/auth.json b/web/public/locales/ka/components/auth.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/components/auth.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/components/camera.json b/web/public/locales/ka/components/camera.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/components/camera.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/components/dialog.json b/web/public/locales/ka/components/dialog.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/components/dialog.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/components/filter.json b/web/public/locales/ka/components/filter.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/components/filter.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/components/icons.json b/web/public/locales/ka/components/icons.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/components/icons.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/components/input.json b/web/public/locales/ka/components/input.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/components/input.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/components/player.json b/web/public/locales/ka/components/player.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/components/player.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/objects.json b/web/public/locales/ka/objects.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/objects.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/classificationModel.json b/web/public/locales/ka/views/classificationModel.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/classificationModel.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/configEditor.json b/web/public/locales/ka/views/configEditor.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/configEditor.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/events.json b/web/public/locales/ka/views/events.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/events.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/explore.json b/web/public/locales/ka/views/explore.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/explore.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/exports.json b/web/public/locales/ka/views/exports.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/exports.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/faceLibrary.json b/web/public/locales/ka/views/faceLibrary.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/faceLibrary.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/live.json b/web/public/locales/ka/views/live.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/live.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/recording.json b/web/public/locales/ka/views/recording.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/recording.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/search.json b/web/public/locales/ka/views/search.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/search.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/settings.json b/web/public/locales/ka/views/settings.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/settings.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/ka/views/system.json b/web/public/locales/ka/views/system.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/ka/views/system.json @@ -0,0 +1 @@ +{} From d940ff33417c71260797826267f7172b4cc6fe0f Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:31 +0100 Subject: [PATCH 19/33] Translated using Weblate (Slovak) Currently translated at 100.0% (217 of 217 strings) Translated using Weblate (Slovak) Currently translated at 96.2% (52 of 54 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (74 of 74 strings) Translated using Weblate (Slovak) Currently translated at 99.1% (121 of 122 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Slovak) Currently translated at 97.7% (639 of 654 strings) Translated using Weblate (Slovak) Currently translated at 95.5% (130 of 136 strings) Translated using Weblate (Slovak) Currently translated at 99.8% (500 of 501 strings) Translated using Weblate (Slovak) Currently translated at 99.2% (135 of 136 strings) Co-authored-by: Hosted Weblate Co-authored-by: OskarSidor Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sk/ Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-filter Translation: Frigate NVR/objects Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/sk/audio.json | 2 +- web/public/locales/sk/common.json | 13 ++-- web/public/locales/sk/components/filter.json | 6 +- web/public/locales/sk/objects.json | 2 +- .../locales/sk/views/classificationModel.json | 78 +++++++++++-------- web/public/locales/sk/views/explore.json | 2 +- web/public/locales/sk/views/faceLibrary.json | 2 +- web/public/locales/sk/views/settings.json | 28 +++---- web/public/locales/sk/views/system.json | 19 +++-- 9 files changed, 89 insertions(+), 63 deletions(-) diff --git a/web/public/locales/sk/audio.json b/web/public/locales/sk/audio.json index 56129353f..460f94c6b 100644 --- a/web/public/locales/sk/audio.json +++ b/web/public/locales/sk/audio.json @@ -231,7 +231,7 @@ "music_of_asia": "Ázijská hudba", "carnatic_music": "Karnatická hudba", "music_of_bollywood": "Hudba z Bollywoodu", - "ska": "SKA", + "ska": "Ska", "traditional_music": "Tradičná hudba", "independent_music": "Nezávislá hudba", "song": "Pieseň", diff --git a/web/public/locales/sk/common.json b/web/public/locales/sk/common.json index 199493fdd..2a2394676 100644 --- a/web/public/locales/sk/common.json +++ b/web/public/locales/sk/common.json @@ -81,7 +81,8 @@ }, "inProgress": "Spracováva sa", "invalidStartTime": "Neplatný čas štartu", - "invalidEndTime": "Neplatný čas ukončenia" + "invalidEndTime": "Neplatný čas ukončenia", + "never": "Nikdy" }, "selectItem": "Vyberte {{item}}", "unit": { @@ -98,8 +99,8 @@ "mbps": "MB/s", "gbps": "GB/s", "kbph": "kb/hour", - "mbph": "MB/hour", - "gbph": "GB/hour" + "mbph": "MB/hodinu", + "gbph": "GB/hodinu" } }, "readTheDocumentation": "Prečítajte si dokumentáciu", @@ -109,7 +110,8 @@ "show": "Zobraziť {{item}}", "ID": "ID", "none": "None", - "all": "Všetko" + "all": "Všetko", + "other": "Iné" }, "button": { "apply": "Použiť", @@ -199,7 +201,8 @@ "ur": "اردو (Urdu)", "withSystem": { "label": "Použiť systémové nastavenia pre jazyk" - } + }, + "hr": "Hrvatski (Croatian)" }, "restart": "Reštartovať Frigate", "live": { diff --git a/web/public/locales/sk/components/filter.json b/web/public/locales/sk/components/filter.json index 83305f921..ae1dbfd23 100644 --- a/web/public/locales/sk/components/filter.json +++ b/web/public/locales/sk/components/filter.json @@ -128,9 +128,13 @@ "loadFailed": "Nepodarilo sa načítať rozpoznané evidenčné čísla vozidiel.", "loading": "Načítavajú sa rozpoznané evidenčné čísla…", "placeholder": "Zadajte text pre vyhľadávanie evidenčných čísel…", - "noLicensePlatesFound": "Neboli nájdené SPZ.", + "noLicensePlatesFound": "Neboli nájdené evidenčné čísla vozidiel.", "selectPlatesFromList": "Vyberte jeden alebo viacero tanierov zo zoznamu.", "selectAll": "Vybrať všetko", "clearAll": "Vymazať všetko" + }, + "attributes": { + "label": "Klasifikačné Atribúty", + "all": "Všetky Atribúty" } } diff --git a/web/public/locales/sk/objects.json b/web/public/locales/sk/objects.json index 42ec664e2..eb36ec104 100644 --- a/web/public/locales/sk/objects.json +++ b/web/public/locales/sk/objects.json @@ -102,7 +102,7 @@ "waste_bin": "Odpadkový kôš", "on_demand": "Na požiadanie", "face": "Tvár", - "license_plate": "ŠPZ", + "license_plate": "Evidenčné Číslo Vozidla", "package": "Balíček", "bbq_grill": "Gril", "amazon": "Amazon", diff --git a/web/public/locales/sk/views/classificationModel.json b/web/public/locales/sk/views/classificationModel.json index f8529ea20..58a802fd2 100644 --- a/web/public/locales/sk/views/classificationModel.json +++ b/web/public/locales/sk/views/classificationModel.json @@ -1,55 +1,59 @@ { - "documentTitle": "Klasifikačné modely", + "documentTitle": "Klasifikačné modely - Frigate", "button": { - "deleteClassificationAttempts": "Odstrániť obrázky klasifikácie", - "renameCategory": "Premenovať triedu", - "deleteCategory": "Odstrániť triedu", - "deleteImages": "Odstrániť obrázky", - "trainModel": "Model vlaku", - "addClassification": "Pridať klasifikáciu", - "deleteModels": "Odstrániť modely", - "editModel": "Editovať model" + "deleteClassificationAttempts": "Odstrániť Obrázky Klasifikácie", + "renameCategory": "Premenovať Triedu", + "deleteCategory": "Odstrániť Triedu", + "deleteImages": "Odstrániť Obrázky", + "trainModel": "Trénovať Model", + "addClassification": "Pridať Klasifikáciu", + "deleteModels": "Odstrániť Modely", + "editModel": "Upraviť Model" }, "toast": { "success": { - "deletedCategory": "Vymazaná trieda", - "deletedImage": "Vymazané obrázky", + "deletedCategory": "Vymazaná Trieda", + "deletedImage": "Vymazané Obrázky", "categorizedImage": "Obrázok bol úspešne klasifikovaný", "trainedModel": "Úspešne vyškolený model.", - "trainingModel": "Úspešne spustený modelový tréning.", - "deletedModel_one": "Úspešne zmazané {{count}} model (y)", - "deletedModel_few": "", - "deletedModel_other": "", + "trainingModel": "Úspešne spustené trénovanie modelu.", + "deletedModel_one": "Úspešne zmazaný {{count}} model", + "deletedModel_few": "Úspešne zmazané {{count}} modely", + "deletedModel_other": "Úspešne zmazaných {{count}} modelov", "updatedModel": "Úspešne zmenená konfigurácia modelu", - "renamedCategory": "Úspešne premenovaná trieda na" + "renamedCategory": "Úspešne premenovaná trieda na {{name}}" }, "error": { "deleteImageFailed": "Nepodarilo sa odstrániť: {{errorMessage}}", "deleteCategoryFailed": "Nepodarilo sa odstrániť triedu: {{errorMessage}}", "categorizeFailed": "Nepodarilo sa kategorizovať obrázok: {{errorMessage}}", - "trainingFailed": "Nepodarilo sa spustiť trénovanie modelu: {{errorMessage}}", + "trainingFailed": "Trénovanie modelu zlyhalo. Skontroluj záznamy Frigate pre viac podrobností.", "deleteModelFailed": "Nepodarilo sa odstrániť model: {{errorMessage}}", - "trainingFailedToStart": "Neuspešny štart trenovania modelu:", - "updateModelFailed": "Chyba pri úprave modelu:", - "renameCategoryFailed": "Chyba pri premenovani triedy:" + "trainingFailedToStart": "Neuspešné spustenie trénovania modelu: {{errorMessage}}", + "updateModelFailed": "Chyba pri aktualizácii modelu: {{errorMessage}}", + "renameCategoryFailed": "Chyba pri premenovaní triedy: {{errorMessage}}" } }, "deleteCategory": { - "title": "Odstrániť triedu", + "title": "Odstrániť Triedu", "desc": "Naozaj chcete odstrániť triedu {{name}}? Týmto sa natrvalo odstránia všetky súvisiace obrázky a bude potrebné pretrénovať model.", "minClassesTitle": "Nemožete zmazať triedu", "minClassesDesc": "Klasifikačný model musí mať aspoň 2 triedy. Pred odstránením tejto triedy pridajte ďalšiu triedu." }, "deleteDatasetImages": { "title": "Odstrániť obrázky množiny údajov", - "desc": "Naozaj chcete odstrániť {{count}} obrázkov z {{dataset}}? Túto akciu nie je možné vrátiť späť a bude si vyžadovať pretrénovanie modelu." + "desc_one": "Naozaj chcete odstrániť {{count}} obrázok z {{dataset}}? Túto akciu nie je možné vrátiť späť a bude si vyžadovať pretrénovanie modelu.", + "desc_few": "Naozaj chcete odstrániť {{count}} obrázky z {{dataset}}? Túto akciu nie je možné vrátiť späť a bude si vyžadovať pretrénovanie modelu.", + "desc_other": "Naozaj chcete odstrániť {{count}} obrázkov z {{dataset}}? Túto akciu nie je možné vrátiť späť a bude si vyžadovať pretrénovanie modelu." }, "deleteTrainImages": { - "title": "Odstrániť obrázky vlakov", - "desc": "Naozaj chcete odstrániť {{count}} obrázkov? Túto akciu nie je možné vrátiť späť." + "title": "Odstrániť Trénovacie Obrázky", + "desc_one": "Naozaj chcete odstrániť {{count}} obrázok? Túto akciu nie je možné vrátiť späť.", + "desc_few": "Naozaj chcete odstrániť {{count}} obrázky? Túto akciu nie je možné vrátiť späť.", + "desc_other": "Naozaj chcete odstrániť {{count}} obrázkov? Túto akciu nie je možné vrátiť späť." }, "renameCategory": { - "title": "Premenovať triedu", + "title": "Premenovať Triedu", "desc": "Zadajte nový názov pre {{name}}. Budete musieť model pretrénovať, aby sa zmena názvu prejavila." }, "description": { @@ -112,7 +116,8 @@ "classesUnique": "Názvy tried musia byť jedinečné", "stateRequiresTwoClasses": "Modely štátov vyžadujú aspoň 2 triedy", "objectLabelRequired": "Vyberte označenie objektu", - "objectTypeRequired": "Vyberte typ klasifikácie" + "objectTypeRequired": "Vyberte typ klasifikácie", + "noneNotAllowed": "Trieda 'none' nie je povolená" }, "states": "Štátov" }, @@ -151,32 +156,37 @@ "allImagesRequired_other": "Uveďte všetky obrázky. {{count}} obrázkov zostávajú.", "modelCreated": "Model vytvorený úspešne. Použite aktuálne klasifikácie na pridanie obrázkov pre chýbajúce stavy a nasledne dajte trénovať model.", "missingStatesWarning": { - "title": "Chýbajúce príklady stavov" + "title": "Chýbajúce príklady stavov", + "description": "Odporúča sa vybrať príklady pre všetky stavy pre dosiahnutie najlepších výsledkov. Môžeš pokračovať bez zvolenia všetkých stavov, ale model nebude natrénovaný pokiaľ všetky stavy nemajú obrázky. Po pokračovaní použi náhľad Nedávne Klasifikácie na klasifikovanie obrázkov pre chýbajúce stavy, potom natrénuj model." } } }, "deleteModel": { "title": "Odstrániť klasifikačný model", "single": "Ste si istí, že chcete odstrániť {{name}}? To bude trvalo odstrániť všetky súvisiace údaje vrátane obrázkov a vzdelávacích údajov. Táto akcia nemôže byť neporušená.", - "desc": "Ste si istí, že chcete odstrániť {{count}} model (y)? To bude trvalo odstrániť všetky súvisiace údaje vrátane obrázkov a vzdelávacích údajov. Táto akcia nemôže byť neporušená." + "desc_one": "Ste si istí, že chcete odstrániť {{count}} model? To bude trvalo odstrániť všetky súvisiace údaje vrátane obrázkov a trénovacích údajov. Táto akcia nemôže byť neporušená.", + "desc_few": "Ste si istí, že chcete odstrániť {{count}} modely? To bude trvalo odstrániť všetky súvisiace údaje vrátane obrázkov a trénovacích údajov. Táto akcia nemôže byť neporušená.", + "desc_other": "Ste si istí, že chcete odstrániť {{count}} modelov? To bude trvalo odstrániť všetky súvisiace údaje vrátane obrázkov a trénovacích údajov. Táto akcia nemôže byť neporušená." }, "menu": { "objects": "Objekty", "states": "Štátov" }, "details": { - "scoreInfo": "Skóre predstavuje priemernú istotu klasifikácie naprieč detekciami tohoto objektu." + "scoreInfo": "Skóre predstavuje priemernú istotu klasifikácie naprieč všetkými detekciami tohoto objektu.", + "none": "Žiadny", + "unknown": "Neznámy" }, "tooltip": { "trainingInProgress": "Model sa aktuálne trénuje", - "noNewImages": "Žiadne nové obrázky na trénovanie. Najskor klasifikuj nové obrazky do datasetu.", + "noNewImages": "Žiadne nové obrázky na trénovanie. Najskôr klasifikuj nové obrazky do datasetu.", "noChanges": "Žiadne zmeny v datasete od posledného tréningu.", - "modelNotReady": "Model nie je pripravený na trénovanie." + "modelNotReady": "Model nie je pripravený na trénovanie" }, "edit": { - "title": "Nastavenie modelu", - "descriptionState": "Upravte triedy pre tento model klasifikácie. Zmeny budú vyžadovať pretrénovanie modelu.", - "descriptionObject": "Upravte typ objektu a typ klasifikácie pre tento model klasifikácie.", + "title": "Nastavenie Klasifikácie Modelu", + "descriptionState": "Upravte triedy pre tento model stavovej klasifikácie. Zmeny budú vyžadovať pretrénovanie modelu.", + "descriptionObject": "Upravte typ objektu a typ klasifikácie pre tento objektový model klasifikácie.", "stateClassesInfo": "Poznámka: Zmena tried stavov vyžaduje pretrénovanie modelu s aktualizovanými triedami." } } diff --git a/web/public/locales/sk/views/explore.json b/web/public/locales/sk/views/explore.json index 223eb80fd..0cb2c0bb2 100644 --- a/web/public/locales/sk/views/explore.json +++ b/web/public/locales/sk/views/explore.json @@ -283,7 +283,7 @@ "millisecondsToOffset": "Milisekundy na posunutie detekcie anotácií. Predvolené: 0", "tips": "TIP: Predstavte si klip udalosti, v ktorom osoba kráča zľava doprava. Ak je ohraničujúci rámček časovej osi udalosti stále naľavo od osoby, hodnota by sa mala znížiť. Podobne, ak osoba kráča zľava doprava a ohraničujúci rámček je stále pred ňou, hodnota by sa mala zvýšiť.", "toast": { - "success": "Odsadenie anotácie pre {{camera}} bolo uložené do konfiguračného súboru. Reštartujte Frigate, aby sa zmeny prejavili." + "success": "Odsadenie anotácie pre {{camera}} bolo uložené do konfiguračného súboru." } } }, diff --git a/web/public/locales/sk/views/faceLibrary.json b/web/public/locales/sk/views/faceLibrary.json index ba46fda1f..c10b44a6e 100644 --- a/web/public/locales/sk/views/faceLibrary.json +++ b/web/public/locales/sk/views/faceLibrary.json @@ -11,7 +11,7 @@ "face": "Detail tváre", "faceDesc": "Podrobnosti o sledovanom objekte, ktorý vytvoril túto tvár", "timestamp": "Časová pečiatka", - "unknown": "Neznáme" + "unknown": "Neznámy" }, "documentTitle": "Knižnica tvárí", "uploadFaceImage": { diff --git a/web/public/locales/sk/views/settings.json b/web/public/locales/sk/views/settings.json index 900236606..6a451dc5f 100644 --- a/web/public/locales/sk/views/settings.json +++ b/web/public/locales/sk/views/settings.json @@ -146,7 +146,7 @@ } }, "licensePlateRecognition": { - "title": "Rozpoznávanie ŠPZ", + "title": "Rozpoznávanie Evidenčných Čísel Vozidiel", "desc": "Frigate dokáže rozpoznávať evidenčné čísla vozidiel a automaticky pridávať detekované znaky do poľa recognized_license_plate alebo známy názov ako podradený štítok k objektom typu car. Bežným prípadom použitia môže byť čítanie evidenčných čísel áut vchádzajúcich na príjazdovú cestu alebo áut prechádzajúcich po ulici." }, "restart_required": "Vyžaduje sa reštart (zmenené nastavenia obohatenia)", @@ -300,7 +300,7 @@ "name": { "title": "Meno", "inputPlaceHolder": "Zadajte meno…", - "tips": "Názov musí mať aspoň 2 znaky, musí mať aspoň jedno písmeno a nesmie byť názvom kamery alebo inej zóny." + "tips": "Názov musí mať aspoň 2 znaky, musí mať aspoň jedno písmeno a nesmie byť názvom kamery alebo inej zóny v tejto kamere." }, "inertia": { "title": "Zotrvačnosť", @@ -334,7 +334,7 @@ } }, "toast": { - "success": "Zóna {{zoneName}} bola uložená. Reštartujte Frigate pre aplikovanie zmien." + "success": "Zóna {{zoneName}} bola uložená." }, "add": "Pridať zónu", "edit": "Upraviť zónu", @@ -364,8 +364,8 @@ }, "toast": { "success": { - "title": "{{polygonName}} bol uložený. Reštartujte Frigate pre aplikovanie zmien.", - "noName": "Maska Detekcia pohybu bola uložená. Reštartujte Frigate pre aplikovanie zmien." + "title": "{{polygonName}} bol uložený.", + "noName": "Maska detekcie pohybu bola uložená." } } }, @@ -390,8 +390,8 @@ }, "toast": { "success": { - "title": "{{polygonName}} bol uložený. Reštartujte Frigate pre aplikovanie zmien.", - "noName": "Maska Objektu bola uložená. Reštartujte Frigate pre aplikovanie zmien." + "title": "{{polygonName}} bol uložený.", + "noName": "Maska Objektu bola uložená." } } }, @@ -797,11 +797,11 @@ "title": "Nastavenie recenzie kamery", "object_descriptions": { "title": "Generatívne popisy objektov umelej inteligencie", - "desc": "Dočasne umožňujú/disable Generovať opisy objektu AI pre tento fotoaparát. Keď je zakázané, AI vygenerované popisy nebudú požiadané o sledovanie objektov na tomto fotoaparáte." + "desc": "Dočasne povoľ/zakáž AI vygenerované popisy objektov pre túto kameru pokiaľ nebude Frigate reštartovaná. Keď je zakázané, AI vygenerované popisy nebudú žiadané pre sledované objekty na tejto kamere." }, "review_descriptions": { "title": "Popisy generatívnej umelej inteligencie", - "desc": "Dočasne povoliť/disable Genive AI opisy pre tento fotoaparát. Keď je zakázané, AI vygenerované popisy nebudú požiadané o preskúmanie položiek na tomto fotoaparáte." + "desc": "Dočasne povoľ/zakáž AI vygenerované popisy revízií pre túto kameru pokiaľ nebude Frigate reštartovaná. Keď je zakázané, AI vygenerované popisy nebudú žiadané pre sledované objekty na tejto kamere." }, "review": { "title": "Recenzia", @@ -837,7 +837,7 @@ "desc": "Spravovať používateľské účty tejto inštancie Frigate." }, "addUser": "Pridať používateľa", - "updatePassword": "Aktualizovať heslo", + "updatePassword": "Obnoviť Heslo", "toast": { "success": { "createUser": "Užívateľ {{user}} úspešne vytvorený", @@ -858,7 +858,7 @@ "role": "Rola", "noUsers": "Nenašli sa žiadni používatelia.", "changeRole": "Zmeniť rolu používateľa", - "password": "Heslo", + "password": "Resetovať Heslo", "deleteUser": "Odstrániť používateľa" }, "dialog": { @@ -947,9 +947,9 @@ "createRole": "Rola {{role}} bola úspešne vytvorená", "updateCameras": "Kamery aktualizované pre rolu {{role}}", "deleteRole": "Rola {{role}} bola úspešne odstránená", - "userRolesUpdated_one": "", - "userRolesUpdated_few": "", - "userRolesUpdated_other": "{{count}} užívatelia priradené tejto úlohe boli aktualizované pre \"viewer\", ktorý má prístup ku všetkým kamerám." + "userRolesUpdated_one": "{{count}} užívateľ priradený tejto úlohe bol aktualizovaný na \"viewer\", ktorý má prístup ku všetkým kamerám.", + "userRolesUpdated_few": "{{count}} užívatelia priradení tejto úlohe boli aktualizovaní na \"viewer\", ktorý má prístup ku všetkým kamerám.", + "userRolesUpdated_other": "{{count}} užívatelia priradení tejto úlohe boli aktualizovaní na \"viewer\", ktorý má prístup ku všetkým kamerám." }, "error": { "createRoleFailed": "Nepodarilo sa vytvoriť rolu: {{errorMessage}}", diff --git a/web/public/locales/sk/views/system.json b/web/public/locales/sk/views/system.json index 94afc9111..6b4032927 100644 --- a/web/public/locales/sk/views/system.json +++ b/web/public/locales/sk/views/system.json @@ -86,7 +86,13 @@ "otherProcesses": { "title": "Iné procesy", "processCpuUsage": "Proces využitia CPU", - "processMemoryUsage": "Procesné využitie pamäte" + "processMemoryUsage": "Procesné využitie pamäte", + "series": { + "go2rtc": "go2rtc", + "recording": "nahrávka", + "review_segment": "skontrolovať segment", + "audio_detector": "zvukový detektor" + } } }, "storage": { @@ -147,7 +153,7 @@ "overallFramesPerSecond": "celkový počet snímok za sekundu", "overallDetectionsPerSecond": "celkový počet detekcií za sekundu", "overallSkippedDetectionsPerSecond": "celkový počet vynechaných detekcií za sekundu", - "cameraFramesPerSecond": "{{camName}}snimky za sekundu", + "cameraFramesPerSecond": "{{camName}} snímky za sekundu", "cameraDetectionsPerSecond": "{{camName}}detekcie za sekundu", "cameraSkippedDetectionsPerSecond": "{{camName}} vynechaných detekcií za sekundu" }, @@ -178,11 +184,11 @@ "image_embedding": "Vkladanie obrázkov", "text_embedding": "Vkladanie textu", "face_recognition": "Rozpoznávanie tváre", - "plate_recognition": "Rozpoznávanie ŠPZ", + "plate_recognition": "Rozpoznávanie EČV", "image_embedding_speed": "Rýchlosť vkladania obrázkov", "face_embedding_speed": "Rýchlosť vkladania tváre", "face_recognition_speed": "Rýchlosť rozpoznávania tváre", - "plate_recognition_speed": "Rýchlosť rozpoznávania ŠPZ", + "plate_recognition_speed": "Rýchlosť rozpoznávania EČV", "text_embedding_speed": "Rýchlosť vkladania textu", "yolov9_plate_detection_speed": "YOLOv9 rýchlosť detekcie ŠPZ", "yolov9_plate_detection": "YOLOv9 Detekcia ŠPZ", @@ -191,7 +197,10 @@ "review_description_events_per_second": "Popis", "object_description": "Popis objektu", "object_description_speed": "Popis objektu Rýchlosť", - "object_description_events_per_second": "Popis objektu" + "object_description_events_per_second": "Popis objektu", + "classification": "{{name}} Klasifikácia", + "classification_speed": "{{name}} Rýchlosť Klasifikácie", + "classification_events_per_second": "{{name}} Klasifikácia Udalosti Za Sekundu" }, "averageInf": "Priemerný čas inferencie" } From e1a6f69c4ec0df9519f85b39f0c414c53311a448 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:31 +0100 Subject: [PATCH 20/33] Translated using Weblate (Slovenian) Currently translated at 37.7% (247 of 654 strings) Translated using Weblate (Slovenian) Currently translated at 36.0% (236 of 654 strings) Co-authored-by: Hosted Weblate Co-authored-by: tadythefish Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sl/ Translation: Frigate NVR/views-settings --- web/public/locales/sl/views/settings.json | 126 ++++++++++++++++++++-- 1 file changed, 118 insertions(+), 8 deletions(-) diff --git a/web/public/locales/sl/views/settings.json b/web/public/locales/sl/views/settings.json index 5b6de9a35..dedb2be0f 100644 --- a/web/public/locales/sl/views/settings.json +++ b/web/public/locales/sl/views/settings.json @@ -6,7 +6,7 @@ "notifications": "Nastavitve obvestil - Frigate", "masksAndZones": "Urejevalnik mask in območij - Frigate", "object": "Odpravljanje napak - Frigate", - "general": "Splošne nastavitve - Frigate", + "general": "Nastavitve UI - Frigate", "frigatePlus": "Frigate+ Nastavitve - Frigate", "enrichments": "Nastavitve Obogatitev - Frigate", "motionTuner": "Nastavitev gibanja - Frigate", @@ -59,7 +59,7 @@ "noCamera": "Brez Kamere" }, "general": { - "title": "Splošne Nastavitve", + "title": "Nastavitve Uporabniškega Vmesnika", "liveDashboard": { "title": "Nadzorna plošča (v živo)", "automaticLiveView": { @@ -71,7 +71,12 @@ "desc": "Privzeto se nedavna opozorila na nadzorni plošči predvajajo kot kratki ponavljajoči videoposnetki . To možnost onemogočite, če želite, da se v tej napravi/brskalniku prikaže samo statična slika nedavnih opozoril." }, "displayCameraNames": { - "label": "Vedno prikaži imena kamer" + "label": "Vedno prikaži imena kamer", + "desc": "Imena kamer vedno prikaži kot žeton v večkamernem nadzornem pogledu v živo." + }, + "liveFallbackTimeout": { + "label": "Časovna omejitev povratka (fallback) v live playerju", + "desc": "Ko je visokokakovostni tok v živo kamere nedosegljiv, preklopi na način z nizko pasovno širino po toliko sekundah. Privzeto: 3." } }, "storedLayouts": { @@ -112,7 +117,7 @@ } }, "enrichments": { - "title": "Nastavitve Obogatitev", + "title": "Nastavitve Obogatitve", "unsavedChanges": "Neshranjene Spremembe Nastavitev Obogatitev", "birdClassification": { "title": "Klasifikacija ptic", @@ -218,7 +223,8 @@ "steps": { "nameAndConnection": "Ime & Zbirka", "streamConfiguration": "Konfiguracija pretoka", - "validationAndTesting": "Uverjanje in testiranje" + "validationAndTesting": "Uverjanje in testiranje", + "probeOrSnapshot": "Preverba ali posnetek" }, "save": { "success": "Kamera {{cameraName}} je bila uspešno shranjena.", @@ -269,8 +275,19 @@ "customUrlRtspRequired": "URL-ji po meri se morajo začeti z \"rtsp://\". Za ne-RTSP pretoke kamer je potrebna ročna nastavitev.", "brands": { "reolink-rtsp": "RTSP za Reolink ni priporočen. \nV nastavitvah kamere omogočite HTTP in znova zaženite čarovnika." - } - } + }, + "brandOrCustomUrlRequired": "Izberi znamko kamere z gostiteljem/IP-naslovom ali izberi 'Drugo' z lastnim URL-jem", + "nameRequired": "Potrebno je ime kamere" + }, + "connectionSettings": "Nastavitve povezave", + "detectionMethod": "Način zaznavanja pretoka", + "onvifPort": "ONVIF Vrata", + "probeMode": "Preverba kamere", + "manualMode": "Ročni izbor", + "detectionMethodDescription": "Preveri kamero prek ONVIF (če je podprto), da najde URL-je tokov kamere, ali ročno izberi znamko kamere za uporabo vnaprej določenih URL-jev. Za vnos poljubnega RTSP URL-ja izberi ročni način in izberi »Drugo«.", + "onvifPortDescription": "Za kamere ki podpirajo ONVIF, je to ponavadi 80 ali 8080.", + "useDigestAuth": "Uporabi digest avtentikacijo", + "useDigestAuthDescription": "Uporabi HTTP digest autentikacijo za ONVIF. Nekatere kamere lahko zahtevajo poseben uporabniški uporabnik/geslo samo za ONVIF, namesto standardnega administratorskega računa." }, "step2": { "streamUrlPlaceholder": "rtsp://uporabniskoime:geslo@gostitelj:vrata/pot", @@ -303,6 +320,39 @@ "featuresPopover": { "title": "Značilnosti pretoka", "description": "Uporabi ponovno pretakanje go2rtc, da zmanjšaš število povezav s kamero." + }, + "description": "Preveri kamero za razpoložljive video tokove ali ročno nastavi konfiguracijo glede na izbrani način detekcije.", + "streamDetails": "Podrobnosti toka", + "probing": "Preveri kamere...", + "retry": "Ponovno poskusi", + "testing": { + "probingMetadata": "Preverjanje metapodatkov kamere…", + "fetchingSnapshot": "Pridobivanje posnetka kamere…" + }, + "probeFailed": "Ni uspelo preveriti kamere: {{error}}", + "probingDevice": "Preverjam napravo…", + "probeSuccessful": "Preverjanje uspešno", + "probeError": "Napaka pri preverjanju", + "probeNoSuccess": "Preverjanje neuspešno", + "deviceInfo": "Podatki naprave", + "manufacturer": "Proizvajalec", + "model": "Model", + "firmware": "Firmware", + "profiles": "Profili", + "ptzSupport": "PTZ Podpora", + "autotrackingSupport": "Podpora za samodejno sledenje", + "presets": "Prednastavitve", + "rtspCandidates": "RTSP Kandidati", + "rtspCandidatesDescription": "Naslednji RTSP URL-ji so bili zaznani med preverjanjem kamere. Preizkusi povezavo, da si ogledaš metapodatke toka.", + "noRtspCandidates": "Med preverjanjem kamere niso bili najdeni nobeni RTSP URL-ji. Vaše poverilnice so morda napačne, kamera morda ne podpira ONVIF ali pa metoda, ki se uporablja za pridobivanje RTSP URL-jev, ni podprta. Vrnite se nazaj in ročno vnesite RTSP URL.", + "candidateStreamTitle": "Kandidat{{number}}", + "useCandidate": "Uporabi", + "uriCopy": "Kopiraj", + "uriCopied": "URI kopiran v odložišče", + "testConnection": "Preveri Povezavo", + "toggleUriView": "Klikni za preklop na celoten prikaz URI-ja", + "errors": { + "hostRequired": "Zahtevan je gostitelj / IP-naslov" } }, "step3": { @@ -334,7 +384,62 @@ "videoCodecGood": "Video kodek je {{codec}}.", "audioCodecGood": "Audio kodek je {{codec}}.", "resolutionHigh": "Resolucija {{resolution}} lahko povzroči povečano porabo virov." + }, + "streamsTitle": "Toki Kamer", + "addStream": "Dodaj Pretok", + "addAnotherStream": "Dodaj še en pretok", + "streamUrl": "URL Pretoka", + "streamUrlPlaceholder": "rtsp://uporabnik:geslo@gostitelj:vrata/pot", + "selectStream": "Izberi Pretok", + "searchCandidates": "Išči kandidate...", + "noStreamFound": "Noben pretok ni bil najden", + "url": "URL", + "resolution": "Resolucija", + "selectResolution": "Izberi resolucijo", + "quality": "Kvaliteta", + "selectQuality": "Izberi kvaliteto", + "roleLabels": { + "detect": "Zaznavanje predmetov", + "record": "Snemanje", + "audio": "Zvok" + }, + "testStream": "Preveri Povezave", + "testSuccess": "Test pretoka uspešen!", + "testFailed": "Test pretoka neuspešen", + "testFailedTitle": "Test neuspešen", + "connected": "Povezan", + "notConnected": "Ni povezave", + "featuresTitle": "Zmožnosti", + "go2rtc": "Zmanjšaj število povezav na kamero", + "detectRoleWarning": "Vsaj en tok mora imeti vlogo »detect«, da lahko nadaljuješ.", + "rolesPopover": { + "title": "Vloge pretokov", + "detect": "Glavni pretok za zaznavanje predmetov.", + "record": "Shranjuje segmente video vira glede na nastavitve konfiguracije.", + "audio": "Tok za detekcijo na osnovi zvoka." + }, + "featuresPopover": { + "title": "Zmožnosti Toka", + "description": "Uporabi go2rtc restreaming, da zmanjšaš število povezav do kamere." } + }, + "step4": { + "connectStream": "Poveži", + "connectingStream": "Povezovanje", + "disconnectStream": "Prekini povezavo", + "estimatedBandwidth": "Ocenjena pasovna širina", + "roles": "Vloge", + "connectAllStreams": "Poveži Vse Pretoke", + "reconnectionSuccess": "Ponovna Povezava Uspešna.", + "reconnectionPartial": "Nekateri pretoki se niso ponovno povezali.", + "streamUnavailable": "Predogled pretoka ni na voljo", + "reload": "Ponovno naloži", + "connecting": "Povezovanje...", + "streamTitle": "Pretok {{number}}", + "valid": "Veljaven", + "failed": "Spodletel", + "notTested": "Ni testirano", + "description": "Končna validacija in analiza pred shranjevanjem nove kamere. Pred shranjevanjem povežite vsak tok." } }, "roles": { @@ -368,7 +473,7 @@ "description": "Konfigurirajte mejno vrednost in dejanja za ta sprožilec." }, "step2": { - "description": "Konfigurirajte vsebino sprožilca, da se bo akcija izvedla." + "description": "Nastavi vsebino, ki bo sprožila to dejanje." }, "step1": { "description": "Konfigurirajte osnovne nastavitve sprožilca." @@ -407,5 +512,10 @@ } } } + }, + "debug": { + "zones": { + "title": "Cone" + } } } From b6142e3017a080af5d62b617b250b24d8320850d Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:32 +0100 Subject: [PATCH 21/33] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (654 of 654 strings) Co-authored-by: GuoQing Liu <842607283@qq.com> Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hans/ Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-settings --- web/public/locales/zh-CN/components/dialog.json | 3 ++- web/public/locales/zh-CN/views/settings.json | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/web/public/locales/zh-CN/components/dialog.json b/web/public/locales/zh-CN/components/dialog.json index d84e125cf..3aef61b5b 100644 --- a/web/public/locales/zh-CN/components/dialog.json +++ b/web/public/locales/zh-CN/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate 正在重启", "content": "该页面将会在 {{countdown}} 秒后自动刷新。", "button": "强制刷新" - } + }, + "description": "Frigate 在重启期间将短暂停止运行。" }, "explore": { "plus": { diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json index b1e0a78d8..f4dd6108e 100644 --- a/web/public/locales/zh-CN/views/settings.json +++ b/web/public/locales/zh-CN/views/settings.json @@ -287,6 +287,11 @@ }, "error": { "mustBeFinished": "多边形绘制必须完成闭合后才能保存。" + }, + "type": { + "zone": "区域", + "motion_mask": "画面变动遮罩", + "object_mask": "目标遮罩" } }, "speed": { From 5b169784308635c4ae93ec4de9ce4a840177936b Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:32 +0100 Subject: [PATCH 22/33] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (654 of 654 strings) Co-authored-by: Hosted Weblate Co-authored-by: OverTheHillsAndFarAway Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nb_NO/ Translation: Frigate NVR/views-settings --- web/public/locales/nb-NO/views/settings.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/web/public/locales/nb-NO/views/settings.json b/web/public/locales/nb-NO/views/settings.json index d45554c1a..de3094649 100644 --- a/web/public/locales/nb-NO/views/settings.json +++ b/web/public/locales/nb-NO/views/settings.json @@ -277,6 +277,11 @@ }, "error": { "mustBeFinished": "Tegningen av polygonet må fullføres før lagring." + }, + "type": { + "zone": "sone", + "motion_mask": "bevegelsesmaske", + "object_mask": "objektmaske" } }, "inertia": { From f0d69f7856ee548ddd079dd2054a2d71826868b8 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sat, 21 Feb 2026 15:01:32 +0100 Subject: [PATCH 23/33] Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (56 of 56 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (13 of 13 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (10 of 10 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (74 of 74 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (136 of 136 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (122 of 122 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (136 of 136 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (654 of 654 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (49 of 49 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (501 of 501 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (217 of 217 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (43 of 43 strings) Translated using Weblate (Cantonese (Traditional Han script)) Currently translated at 100.0% (98 of 98 strings) Co-authored-by: Hosted Weblate Co-authored-by: beginner2047 Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/yue_Hant/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/yue_Hant/ Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-auth Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/yue-Hant/audio.json | 76 +++++- web/public/locales/yue-Hant/common.json | 32 ++- .../locales/yue-Hant/components/auth.json | 3 +- .../locales/yue-Hant/components/dialog.json | 9 +- .../locales/yue-Hant/components/filter.json | 4 + .../yue-Hant/views/classificationModel.json | 178 ++++++++++++- web/public/locales/yue-Hant/views/events.json | 31 ++- .../locales/yue-Hant/views/explore.json | 87 +++++- .../locales/yue-Hant/views/exports.json | 8 +- .../locales/yue-Hant/views/faceLibrary.json | 14 +- web/public/locales/yue-Hant/views/live.json | 20 +- web/public/locales/yue-Hant/views/search.json | 3 +- .../locales/yue-Hant/views/settings.json | 252 +++++++++++++++--- web/public/locales/yue-Hant/views/system.json | 30 ++- 14 files changed, 678 insertions(+), 69 deletions(-) diff --git a/web/public/locales/yue-Hant/audio.json b/web/public/locales/yue-Hant/audio.json index 8d29100d5..c25ece5bb 100644 --- a/web/public/locales/yue-Hant/audio.json +++ b/web/public/locales/yue-Hant/audio.json @@ -425,5 +425,79 @@ "chink": "碰撞聲", "environmental_noise": "環境噪音", "static": "靜電聲", - "scream": "尖叫聲" + "scream": "尖叫聲", + "sodeling": "約德爾唱法", + "chird": "鳥鳴聲", + "change_ringing": "變化鐘聲", + "shofar": "羊角號聲", + "liquid": "液體聲", + "splash": "潑水聲", + "slosh": "晃水聲", + "squish": "擠壓濕聲", + "drip": "滴水聲", + "pour": "倒水聲", + "trickle": "細流聲", + "gush": "湧出聲", + "fill": "注滿聲", + "spray": "噴灑聲", + "pump": "抽水聲", + "stir": "攪拌聲", + "boiling": "沸騰聲", + "sonar": "聲納聲", + "arrow": "箭飛聲", + "whoosh": "呼嘯聲", + "thump": "悶撞聲", + "thunk": "咚一聲", + "electronic_tuner": "電子調音器聲", + "effects_unit": "效果器聲", + "chorus_effect": "合唱效果", + "basketball_bounce": "籃球彈地聲", + "bang": "砰聲", + "slap": "拍打聲", + "whack": "重擊聲", + "smash": "粉碎聲", + "breaking": "破裂聲", + "bouncing": "彈跳聲", + "whip": "鞭甩聲", + "flap": "拍翼聲", + "scratch": "抓刮聲", + "scrape": "刮擦聲", + "rub": "摩擦聲", + "roll": "滾動聲", + "crushing": "壓碎聲", + "crumpling": "揉皺聲", + "tearing": "撕裂聲", + "beep": "嗶聲", + "ping": "乒聲", + "ding": "叮聲", + "clang": "鏗鏘聲", + "squeal": "尖叫聲", + "creak": "吱吱聲", + "rustle": "沙沙聲", + "whir": "嗡轉聲", + "clatter": "叮噹雜響", + "sizzle": "滋滋聲", + "clicking": "喀嗒聲", + "clickety_clack": "喀嚓喀嚓聲", + "rumble": "隆隆聲", + "plop": "撲通聲", + "hum": "嗡聲", + "zing": "嗖聲", + "boing": "彈簧彈聲", + "crunch": "咔嚓碎裂聲", + "sine_wave": "正弦波", + "harmonic": "諧波", + "chirp_tone": "啁啾音", + "pulse": "脈衝聲", + "inside": "室內聲", + "outside": "室外聲", + "reverberation": "混響", + "echo": "回聲", + "noise": "噪音", + "mains_hum": "電源嗡聲", + "distortion": "失真", + "sidetone": "側音", + "cacophony": "嘈雜聲", + "throbbing": "搏動聲", + "vibration": "振動聲" } diff --git a/web/public/locales/yue-Hant/common.json b/web/public/locales/yue-Hant/common.json index a65550366..c1fec067c 100644 --- a/web/public/locales/yue-Hant/common.json +++ b/web/public/locales/yue-Hant/common.json @@ -66,7 +66,11 @@ "formattedTimestampMonthDayYear": { "24hour": "yy年MM月dd日", "12hour": "yy年MM月dd日" - } + }, + "never": "從不", + "inProgress": "進行中", + "invalidStartTime": "開始時間無效", + "invalidEndTime": "結束時間無效" }, "unit": { "speed": { @@ -87,7 +91,13 @@ } }, "label": { - "back": "返回" + "back": "返回", + "hide": "隱藏 {{item}}", + "show": "顯示 {{item}}", + "ID": "編號", + "none": "無", + "all": "全部", + "other": "其他" }, "button": { "apply": "套用", @@ -124,7 +134,8 @@ "info": "資訊", "download": "下載", "unsuspended": "取消暫停", - "unselect": "取消選取" + "unselect": "取消選取", + "continue": "繼續" }, "menu": { "system": "系統", @@ -176,7 +187,8 @@ "bg": "Български (保加利亞文)", "gl": "Galego (加利西亞文)", "id": "Bahasa Indonesia (印尼文)", - "ur": "اردو (烏爾都文)" + "ur": "اردو (烏爾都文)", + "hr": "Hrvatski (克羅地亞語)" }, "appearance": "外觀", "darkMode": { @@ -224,7 +236,8 @@ "anonymous": "匿名", "setPassword": "設定密碼" }, - "help": "幫助" + "help": "幫助", + "classification": "分類" }, "role": { "admin": "管理員", @@ -268,5 +281,14 @@ "readTheDocumentation": "閱讀文件", "information": { "pixels": "{{area}}像素" + }, + "list": { + "two": "{{0}} 和 {{1}}", + "many": "{{items}}, 和 {{last}}", + "separatorWithSpace": ", " + }, + "field": { + "optional": "選填", + "internalID": "Frigate 在設定及資料庫中使用的內部編號" } } diff --git a/web/public/locales/yue-Hant/components/auth.json b/web/public/locales/yue-Hant/components/auth.json index ebc3b8df7..630bc06df 100644 --- a/web/public/locales/yue-Hant/components/auth.json +++ b/web/public/locales/yue-Hant/components/auth.json @@ -10,6 +10,7 @@ }, "user": "用戶名", "password": "密碼", - "login": "登入" + "login": "登入", + "firstTimeLogin": "首次登入?登入憑證已列印於 Frigate 日誌中。" } } diff --git a/web/public/locales/yue-Hant/components/dialog.json b/web/public/locales/yue-Hant/components/dialog.json index 1a3911048..83b010d60 100644 --- a/web/public/locales/yue-Hant/components/dialog.json +++ b/web/public/locales/yue-Hant/components/dialog.json @@ -6,7 +6,8 @@ "title": "Frigate 正在重新啟動", "content": "此頁面將在 {{countdown}} 秒後重新載入。", "button": "立即強制重新載入" - } + }, + "description": "重新啟動期間將會短暫停止 Frigate。" }, "explore": { "plus": { @@ -56,7 +57,8 @@ "noVaildTimeSelected": "沒有選取有效的時間範圍", "endTimeMustAfterStartTime": "結束時間必須在開始時間之後" }, - "success": "成功開始匯出。請到 /exports 資料夾查看檔案。" + "success": "成功開始匯出。請到匯出頁面看檔案。", + "view": "檢視" }, "fromTimeline": { "saveExport": "儲存匯出", @@ -115,6 +117,7 @@ "search": { "placeholder": "以標籤或子標籤搜尋..." }, - "noImages": "未找到此鏡頭的縮圖" + "noImages": "未找到此鏡頭的縮圖", + "unknownLabel": "已儲存的觸發影像" } } diff --git a/web/public/locales/yue-Hant/components/filter.json b/web/public/locales/yue-Hant/components/filter.json index bfdc93576..014b794bd 100644 --- a/web/public/locales/yue-Hant/components/filter.json +++ b/web/public/locales/yue-Hant/components/filter.json @@ -132,5 +132,9 @@ }, "count_one": "{{count}} 個分類", "count_other": "{{count}} 個分類" + }, + "attributes": { + "label": "分類屬性", + "all": "全部屬性" } } diff --git a/web/public/locales/yue-Hant/views/classificationModel.json b/web/public/locales/yue-Hant/views/classificationModel.json index 0b72837bd..c46b060d7 100644 --- a/web/public/locales/yue-Hant/views/classificationModel.json +++ b/web/public/locales/yue-Hant/views/classificationModel.json @@ -1,6 +1,182 @@ { "documentTitle": "分類模型 - Frigate", "details": { - "unknown": "未知" + "unknown": "未知", + "scoreInfo": "分數代表此物件所有偵測結果的平均分類信心度。", + "none": "無" + }, + "train": { + "titleShort": "最近", + "title": "最近分類", + "aria": "選擇最近分類" + }, + "button": { + "deleteClassificationAttempts": "刪除分類影像", + "renameCategory": "重新命名類別", + "deleteCategory": "刪除類別", + "deleteImages": "刪除影像", + "trainModel": "訓練模型", + "addClassification": "新增分類", + "deleteModels": "刪除模型", + "editModel": "編輯模型" + }, + "tooltip": { + "trainingInProgress": "模型正在訓練中", + "noNewImages": "沒有新影像可訓練,請先分類更多資料集影像。", + "noChanges": "自上次訓練後資料集沒有變更。", + "modelNotReady": "模型尚未準備好訓練" + }, + "toast": { + "success": { + "deletedCategory": "已刪除類別", + "deletedImage": "已刪除影像", + "deletedModel_other": "已成功刪除 {{count}} 個模型", + "categorizedImage": "影像分類成功", + "trainedModel": "模型訓練成功。", + "trainingModel": "已成功開始模型訓練。", + "updatedModel": "已成功更新模型設定", + "renamedCategory": "已成功將類別重新命名為 {{name}}" + }, + "error": { + "deleteImageFailed": "刪除失敗:{{errorMessage}}", + "deleteCategoryFailed": "刪除類別失敗:{{errorMessage}}", + "deleteModelFailed": "刪除模型失敗:{{errorMessage}}", + "categorizeFailed": "影像分類失敗:{{errorMessage}}", + "trainingFailed": "模型訓練失敗,請查看 Frigate 日誌。", + "trainingFailedToStart": "啟動模型訓練失敗:{{errorMessage}}", + "updateModelFailed": "更新模型失敗:{{errorMessage}}", + "renameCategoryFailed": "重新命名類別失敗:{{errorMessage}}" + } + }, + "deleteCategory": { + "title": "刪除類別", + "desc": "確定要刪除類別 {{name}}?這將永久刪除所有相關影像,並需要重新訓練模型。", + "minClassesTitle": "無法刪除類別", + "minClassesDesc": "分類模型至少需要 2 個類別,請先新增類別。" + }, + "deleteModel": { + "title": "刪除分類模型", + "single": "確定要刪除 {{name}}?所有資料將永久刪除且無法復原。", + "desc_other": "確定要刪除 {{count}} 個模型?所有資料將永久刪除且無法復原。" + }, + "edit": { + "title": "編輯分類模型", + "descriptionState": "編輯此狀態分類模型的類別,變更後需重新訓練。", + "descriptionObject": "編輯此物件分類模型的物件類型與分類方式。", + "stateClassesInfo": "更改狀態類別需重新訓練模型。" + }, + "deleteDatasetImages": { + "title": "刪除資料集影像", + "desc_other": "確定要刪除 {{dataset}} 中的 {{count}} 張影像?此操作不可復原並需重新訓練。" + }, + "deleteTrainImages": { + "title": "刪除訓練影像", + "desc_other": "確定要刪除 {{count}} 張影像?此操作不可復原。" + }, + "renameCategory": { + "title": "重新命名類別", + "desc": "為 {{name}} 輸入新名稱,需重新訓練模型才會生效。" + }, + "description": { + "invalidName": "名稱無效,只可包含字母、數字、空格、撇號、底線及連字號。" + }, + "categories": "類別", + "createCategory": { + "new": "建立新類別" + }, + "categorizeImageAs": "將影像分類為:", + "categorizeImage": "分類影像", + "menu": { + "objects": "物件", + "states": "狀態" + }, + "noModels": { + "object": { + "title": "沒有物件分類模型", + "description": "建立自訂模型以分類偵測到的物件。", + "buttonText": "建立物件模型" + }, + "state": { + "title": "沒有狀態分類模型", + "description": "建立自訂模型監測指定區域狀態。", + "buttonText": "建立狀態模型" + } + }, + "wizard": { + "title": "建立新分類", + "steps": { + "nameAndDefine": "名稱與定義", + "stateArea": "狀態區域", + "chooseExamples": "選擇範例" + }, + "step1": { + "description": "狀態模型監測固定區域變化(例如,開門/關門)。物件模型為偵測物件加入分類(例如,已知的動物、送貨員等)。", + "name": "名稱", + "namePlaceholder": "輸入模型名稱…", + "type": "類型", + "typeState": "狀態", + "typeObject": "物件", + "objectLabel": "物件標籤", + "objectLabelPlaceholder": "選擇物件類型…", + "classificationType": "分類類型", + "classificationTypeTip": "了解分類類型", + "classificationTypeDesc": "子標籤為物件增加附加文字(例如,「人員:UPS」)。屬性是可搜尋的元數據,單獨儲存在物件元資料中。", + "classificationSubLabel": "子標籤", + "classificationAttribute": "屬性", + "classes": "類別", + "states": "狀態", + "classesTip": "了解類別", + "classesStateDesc": "定義區域可能狀態。例如:車房門的「開」和「關」狀態。", + "classesObjectDesc": "定義不同類別將偵測到物件去分類。例如:人分類嘅「送貨員」、「居民」、「陌生人」。", + "classPlaceholder": "輸入類別名稱…", + "errors": { + "nameRequired": "必須輸入模型名稱", + "nameLength": "名稱不可超過 64 字元", + "nameOnlyNumbers": "名稱不可只有數字", + "classRequired": "至少需要 1 個類別", + "classesUnique": "類別名稱必須唯一", + "noneNotAllowed": "不可使用「none」", + "stateRequiresTwoClasses": "狀態模型至少需 2 類", + "objectLabelRequired": "請選擇物件標籤", + "objectTypeRequired": "請選擇分類類型" + } + }, + "step2": { + "description": "選擇鏡頭並設定監測區域。模型將對這些區域的狀態進行分類。", + "cameras": "鏡頭", + "selectCamera": "選擇鏡頭", + "noCameras": "按 + 新增鏡頭", + "selectCameraPrompt": "從清單選擇鏡頭以設定區域" + }, + "step3": { + "selectImagesPrompt": "選取所有 {{className}} 影像", + "selectImagesDescription": "點擊影像選取,完成後按繼續。", + "allImagesRequired_other": "請完成所有分類,尚餘 {{count}} 張影像。", + "generating": { + "title": "正在產生範例影像", + "description": "Frigate 正在擷取代表性影像,請稍候…" + }, + "training": { + "title": "正在訓練模型", + "description": "模型正在背景訓練,完成後會自動運行。" + }, + "retryGenerate": "重新產生", + "noImages": "未產生範例影像", + "classifying": "分類及訓練中…", + "trainingStarted": "已成功開始訓練", + "modelCreated": "模型建立成功,請新增影像後再訓練。", + "errors": { + "noCameras": "未設定鏡頭", + "noObjectLabel": "未選擇物件標籤", + "generateFailed": "產生範例失敗:{{error}}", + "generationFailed": "產生失敗,請重試。", + "classifyFailed": "影像分類失敗:{{error}}" + }, + "generateSuccess": "已成功產生範例影像", + "missingStatesWarning": { + "title": "缺少狀態範例", + "description": "建議為所有狀態選取範例以獲得最佳效果。未齊全前模型不會訓練。繼續操作後,使用「最近分類」對缺失狀態的影像進行分類,然後訓練模型。" + } + } } } diff --git a/web/public/locales/yue-Hant/views/events.json b/web/public/locales/yue-Hant/views/events.json index b5e9dc84d..ba50bc984 100644 --- a/web/public/locales/yue-Hant/views/events.json +++ b/web/public/locales/yue-Hant/views/events.json @@ -4,7 +4,11 @@ "empty": { "alert": "沒有警報需要審查", "detection": "沒有偵測到的項目需要審查", - "motion": "找不到移動數據" + "motion": "找不到移動數據", + "recordingsDisabled": { + "title": "必須啟用錄影", + "description": "只有在該鏡頭啟用錄影時,才可為該鏡頭建立審查項目。" + } }, "timeline": "時間線", "events": { @@ -36,5 +40,28 @@ "timeline.aria": "選擇時間線", "detected": "已偵測", "suspiciousActivity": "可疑行為", - "threateningActivity": "威脅行為" + "threateningActivity": "威脅行為", + "zoomIn": "放大", + "zoomOut": "縮小", + "detail": { + "label": "詳情", + "noDataFound": "沒有可審查的詳情資料", + "aria": "切換詳情檢視", + "trackedObject_one": "{{count}} 個物件", + "trackedObject_other": "{{count}} 個物件", + "noObjectDetailData": "沒有可用的物件詳情資料。", + "settings": "詳情檢視設定", + "alwaysExpandActive": { + "title": "總是展開目前項目", + "desc": "如有資料,總是展開目前審查項目的物件詳情。" + } + }, + "objectTrack": { + "trackedPoint": "追蹤點", + "clickToSeek": "點擊以跳轉至此時間" + }, + "select_all": "全部", + "normalActivity": "正常", + "needsReview": "需要審查", + "securityConcern": "安全疑慮" } diff --git a/web/public/locales/yue-Hant/views/explore.json b/web/public/locales/yue-Hant/views/explore.json index e3a8c9409..b6c780cb4 100644 --- a/web/public/locales/yue-Hant/views/explore.json +++ b/web/public/locales/yue-Hant/views/explore.json @@ -34,7 +34,9 @@ "details": "詳情", "snapshot": "快照", "video": "影片", - "object_lifecycle": "物件生命周期" + "object_lifecycle": "物件生命周期", + "thumbnail": "縮圖", + "tracking_details": "追蹤詳情" }, "objectLifecycle": { "title": "物件生命周期", @@ -102,13 +104,15 @@ "updatedSublabel": "成功更新子標籤。", "updatedLPR": "成功更新車牌號碼。", "regenerate": "已從 {{provider}} 請求新的描述。根據提供者的速度,生成新的描述可能需要一些時間。", - "audioTranscription": "成功請求音訊轉錄。" + "audioTranscription": "成功請求音訊轉錄。視乎你的 Frigate 伺服器速度,轉錄可能需要一些時間完成。", + "updatedAttributes": "已成功更新屬性。" }, "error": { "regenerate": "呼叫 {{provider}} 以獲取新描述失敗:{{errorMessage}}", "updatedSublabelFailed": "更新子標籤失敗:{{errorMessage}}", "updatedLPRFailed": "更新車牌號碼失敗:{{errorMessage}}", - "audioTranscription": "請求音訊轉錄失敗:{{errorMessage}}" + "audioTranscription": "請求音訊轉錄失敗:{{errorMessage}}", + "updatedAttributesFailed": "更新屬性失敗:{{errorMessage}}" } } }, @@ -157,6 +161,14 @@ "regenerateFromThumbnails": "從縮圖重新生成", "score": { "label": "分數" + }, + "editAttributes": { + "title": "編輯屬性", + "desc": "為此 {{label}} 選擇分類屬性" + }, + "attributes": "分類屬性", + "title": { + "label": "標題" } }, "itemMenu": { @@ -194,12 +206,26 @@ "audioTranscription": { "label": "轉錄音訊", "aria": "請求音訊轉錄" + }, + "downloadCleanSnapshot": { + "label": "下載乾淨快照", + "aria": "下載乾淨快照" + }, + "viewTrackingDetails": { + "label": "檢視追蹤詳情", + "aria": "顯示追蹤詳情" + }, + "showObjectDetails": { + "label": "顯示物件路徑" + }, + "hideObjectDetails": { + "label": "隱藏物件路徑" } }, "dialog": { "confirmDelete": { "title": "確認刪除", - "desc": "刪除此追蹤物件會移除快照、所有已保存的嵌入,以及相關的物件生命周期記錄。歷史記錄中的錄影不會被刪除。

你確定要繼續嗎?" + "desc": "刪除此追蹤物件會移除快照、所有已保存的嵌入,以及相關的追蹤詳情記錄。歷史記錄中的錄影不會被刪除。

你確定要繼續嗎?" } }, "noTrackedObjects": "找不到追蹤物件", @@ -211,7 +237,9 @@ "error": "刪除追蹤物件失敗:{{errorMessage}}" } }, - "tooltip": "已配對{{type}}({{confidence}}% 信心" + "tooltip": "已配對{{type}}({{confidence}}% 信心", + "previousTrackedObject": "上一個追蹤物件", + "nextTrackedObject": "下一個追蹤物件" }, "trackedObjectsCount_other": "{{count}} 個追蹤物件 ", "exploreMore": "瀏覽更多{{label}}物件", @@ -220,5 +248,54 @@ }, "concerns": { "label": "關注" + }, + "trackingDetails": { + "title": "追蹤詳情", + "noImageFound": "找不到此時間點的影像。", + "createObjectMask": "建立物件遮罩", + "adjustAnnotationSettings": "調整標註設定", + "scrollViewTips": "點擊以查看此物件生命週期中的重要時刻。", + "autoTrackingTips": "對於自動追蹤鏡頭,邊界框位置可能不準確。", + "count": "第 {{first}} 個,共 {{second}} 個", + "trackedPoint": "追蹤點", + "lifecycleItemDesc": { + "visible": "偵測到 {{label}}", + "entered_zone": "{{label}} 進入 {{zones}}", + "active": "{{label}} 變為活動中", + "stationary": "{{label}} 變為靜止", + "attribute": { + "faceOrLicense_plate": "偵測到 {{label}} 的 {{attribute}}", + "other": "{{label}} 被識別為 {{attribute}}" + }, + "gone": "{{label}} 離開", + "heard": "偵測到 {{label}} 聲音", + "external": "偵測到 {{label}}", + "header": { + "zones": "區域", + "ratio": "比例", + "area": "面積", + "score": "分數" + } + }, + "annotationSettings": { + "title": "標註設定", + "showAllZones": { + "title": "顯示所有區域", + "desc": "當物件進入區域時,始終在畫面上顯示該區域。" + }, + "offset": { + "label": "標註偏移", + "desc": "此資料來自鏡頭的偵測串流,但會疊加在錄影串流的影像上。兩個串流不太可能完全同步,因此邊界框與影片畫面未必完全對齊。你可使用此設定將標註在時間上向前或向後偏移,以更好地對齊錄影畫面。", + "millisecondsToOffset": "偵測標註的偏移毫秒數。預設:0", + "tips": "如果影片播放比邊界框與路徑點快,請降低數值;如果影片播放較慢,請提高數值。此數值可以為負。", + "toast": { + "success": "{{camera}} 的標註偏移已儲存到設定檔。" + } + } + }, + "carousel": { + "previous": "上一張", + "next": "下一張" + } } } diff --git a/web/public/locales/yue-Hant/views/exports.json b/web/public/locales/yue-Hant/views/exports.json index 48d839717..a8c14b517 100644 --- a/web/public/locales/yue-Hant/views/exports.json +++ b/web/public/locales/yue-Hant/views/exports.json @@ -13,5 +13,11 @@ "renameExportFailed": "重新命名匯出失敗:{{errorMessage}}" } }, - "deleteExport.desc": "你確定要刪除 {{exportName}} 嗎?" + "deleteExport.desc": "你確定要刪除 {{exportName}} 嗎?", + "tooltip": { + "shareExport": "分享匯出", + "downloadVideo": "下載影片", + "editName": "編輯名稱", + "deleteExport": "刪除匯出" + } } diff --git a/web/public/locales/yue-Hant/views/faceLibrary.json b/web/public/locales/yue-Hant/views/faceLibrary.json index b215f66f2..01441bd31 100644 --- a/web/public/locales/yue-Hant/views/faceLibrary.json +++ b/web/public/locales/yue-Hant/views/faceLibrary.json @@ -13,7 +13,8 @@ "description": { "addFace": "上傳您的第一張圖片,即可在人臉庫中新增新的集合。", "placeholder": "請輸入此集合的名稱", - "invalidName": "名稱無效。名稱只可以包含英文字母、數字、空格、撇號(')、底線(_)同連字號(-)。" + "invalidName": "名稱無效,只可包含字母、數字、空格、撇號、底線及連字號。", + "nameCannotContainHash": "名稱不可包含 #。" }, "documentTitle": "人臉庫 - Frigate", "uploadFaceImage": { @@ -24,7 +25,7 @@ "title": "建立集合", "desc": "建立新集合", "new": "建立新的人臉", - "nextSteps": "建立穩固基礎:
  • 使用訓練分頁,為每位偵測到的人物選擇並訓練圖片。
  • 以正面照片為主,避免用側面或傾斜角度的人臉作訓練。
  • " + "nextSteps": "建立穩固基礎:
  • 使用最近識別分頁,為每位偵測到的人物選擇並訓練圖片。
  • 以正面照片為主,避免用側面或傾斜角度的人臉作訓練。
  • " }, "steps": { "faceName": "請輸入人臉名稱", @@ -35,9 +36,10 @@ } }, "train": { - "title": "訓練", - "aria": "選擇訓練", - "empty": "最近沒有人臉識別嘗試" + "title": "最近識別", + "aria": "選擇最近識別", + "empty": "最近沒有人臉識別嘗試", + "titleShort": "最近" }, "selectFace": "選擇人臉", "deleteFaceLibrary": { @@ -72,7 +74,7 @@ "uploadedImage": "成功上傳圖片。", "renamedFace": "成功將人臉重新命名為 {{name}}", "trainedFace": "成功訓練人臉。", - "updatedFaceScore": "成功更新人臉分數。", + "updatedFaceScore": "已成功更新 {{name}} 的人臉分數({{score}})。", "deletedFace_other": "成功刪除 {{count}} 個人臉。", "addFaceLibrary": "{{name}} 已成功加入人臉庫!", "deletedName_other": "成功刪除 {{count}} 個人臉。" diff --git a/web/public/locales/yue-Hant/views/live.json b/web/public/locales/yue-Hant/views/live.json index bb3b440ee..6ebd69f44 100644 --- a/web/public/locales/yue-Hant/views/live.json +++ b/web/public/locales/yue-Hant/views/live.json @@ -172,9 +172,23 @@ "disable": "停用即時音訊轉錄" }, "noCameras": { - "title": "未設置任何鏡頭", - "description": "連接鏡頭開始使用。", - "buttonText": "新增鏡頭" + "title": "未設定任何鏡頭", + "description": "請先將鏡頭連接到 Frigate 以開始使用。", + "buttonText": "新增鏡頭", + "restricted": { + "title": "沒有可用鏡頭", + "description": "你沒有權限檢視此群組中的任何鏡頭。" + }, + "default": { + "title": "未設定任何鏡頭", + "description": "請先將鏡頭連接到 Frigate 以開始使用。", + "buttonText": "新增鏡頭" + }, + "group": { + "title": "群組中沒有鏡頭", + "description": "此鏡頭群組沒有已指派或已啟用的鏡頭。", + "buttonText": "管理群組" + } }, "snapshot": { "takeSnapshot": "下載即時快照", diff --git a/web/public/locales/yue-Hant/views/search.json b/web/public/locales/yue-Hant/views/search.json index fea893191..ffc353eb1 100644 --- a/web/public/locales/yue-Hant/views/search.json +++ b/web/public/locales/yue-Hant/views/search.json @@ -26,7 +26,8 @@ "max_speed": "最高速度", "min_speed": "最低速度", "cameras": "鏡頭", - "sub_labels": "子標籤" + "sub_labels": "子標籤", + "attributes": "屬性" }, "searchType": { "thumbnail": "縮圖", diff --git a/web/public/locales/yue-Hant/views/settings.json b/web/public/locales/yue-Hant/views/settings.json index 34982abb4..36907ee42 100644 --- a/web/public/locales/yue-Hant/views/settings.json +++ b/web/public/locales/yue-Hant/views/settings.json @@ -7,7 +7,7 @@ "masksAndZones": "遮罩與區域編輯器 - Frigate", "motionTuner": "移動調校器 - Frigate", "object": "除錯 - Frigate", - "general": "一般設定 - Frigate", + "general": "介面設定 - Frigate", "frigatePlus": "Frigate+ 設定 - Frigate", "notifications": "通知設定 - Frigate", "enrichments": "進階功能設定 - Frigate", @@ -41,7 +41,7 @@ "noCamera": "沒有鏡頭" }, "general": { - "title": "一般設定", + "title": "介面設定", "liveDashboard": { "playAlertVideos": { "label": "播放警報影片", @@ -51,7 +51,15 @@ "label": "自動即時檢視", "desc": "當偵測到活動時,自動切換到該鏡頭的即時畫面。若停用此選項,即時儀表板上的鏡頭靜態畫面將每分鐘只更新一次。" }, - "title": "即時儀表板" + "title": "即時儀表板", + "displayCameraNames": { + "label": "一直顯示鏡頭名稱", + "desc": "在多鏡頭即時畫面儀表板中以標籤顯示鏡頭名稱。" + }, + "liveFallbackTimeout": { + "label": "即時播放器備援逾時", + "desc": "當高畫質即時串流不可用時,於指定秒數後切換至低頻寬模式。預設:3。" + } }, "storedLayouts": { "title": "儲存的版面配置", @@ -239,7 +247,8 @@ "mustNotBeSameWithCamera": "區域名稱不得與鏡頭名稱相同。", "alreadyExists": "此鏡頭已存在相同名稱的區域。", "mustNotContainPeriod": "區域名稱不可包含句號。", - "hasIllegalCharacter": "區域名稱包含非法字元。" + "hasIllegalCharacter": "區域名稱包含非法字元。", + "mustHaveAtLeastOneLetter": "區域名稱至少需包含一個字母。" } }, "distance": { @@ -274,6 +283,11 @@ }, "reset": { "label": "清除所有點" + }, + "type": { + "zone": "區域", + "motion_mask": "移動遮罩", + "object_mask": "物件遮罩" } }, "speed": { @@ -291,7 +305,7 @@ "name": { "title": "名稱", "inputPlaceHolder": "請輸入名稱…", - "tips": "名稱必須至少有2個字元,且不可與鏡頭或其他區域同名。" + "tips": "這鏡頭名稱必須至少有2個字元,至少需包含一個字母,且不可與鏡頭或其他區域同名。" }, "inertia": { "title": "慣性", @@ -326,7 +340,7 @@ } }, "toast": { - "success": "區域({{zoneName}})已儲存。請重新啟動Frigate以套用更改。" + "success": "區域({{zoneName}})已儲存。" }, "desc": { "title": "區域可讓你定義畫面中的特定範圍,以判斷物件是否進入該範圍。", @@ -356,8 +370,8 @@ "add": "新增移動遮罩", "toast": { "success": { - "title": "{{polygonName}}已儲存。請重新啟動Frigate以套用更改。", - "noName": "移動遮罩已儲存。請重新啟動Frigate以套用更改。" + "title": "{{polygonName}}已儲存。", + "noName": "移動遮罩已儲存。" } } }, @@ -378,8 +392,8 @@ }, "toast": { "success": { - "title": "{{polygonName}}已儲存。請重新啟動Frigate以套用更改。", - "noName": "物件遮罩已儲存。請重新啟動Frigate以套用更改。" + "title": "{{polygonName}}已儲存。", + "noName": "物件遮罩已儲存。" } }, "documentTitle": "編輯物件遮罩 - Frigate", @@ -481,7 +495,7 @@ "title": "用戶管理" }, "addUser": "新增用戶", - "updatePassword": "更新密碼", + "updatePassword": "重設密碼", "toast": { "success": { "createUser": "成功建立用戶{{user}}", @@ -501,7 +515,7 @@ "role": "角色", "noUsers": "找不到用戶。", "changeRole": "更改用戶角色", - "password": "密碼", + "password": "重設密碼", "deleteUser": "刪除用戶", "actions": "操作" }, @@ -527,7 +541,13 @@ "veryStrong": "非常強" }, "match": "密碼相符", - "notMatch": "密碼不相符" + "notMatch": "密碼不相符", + "show": "顯示密碼", + "hide": "隱藏密碼", + "requirements": { + "title": "密碼要求:", + "length": "最少 12 個字元" + } }, "newPassword": { "confirm": { @@ -537,7 +557,11 @@ "placeholder": "輸入新密碼" }, "usernameIsRequired": "必須輸入用戶名稱", - "passwordIsRequired": "必須填寫密碼" + "passwordIsRequired": "必須填寫密碼", + "currentPassword": { + "title": "目前密碼", + "placeholder": "輸入目前密碼" + } }, "createUser": { "title": "建立新用戶", @@ -568,7 +592,12 @@ "updatePassword": "更新{{username}}的密碼", "desc": "建立強密碼以保障此帳戶安全。", "cannotBeEmpty": "密碼不能留空", - "doNotMatch": "密碼不相符" + "doNotMatch": "密碼不相符", + "currentPasswordRequired": "必須輸入目前密碼", + "incorrectCurrentPassword": "目前密碼不正確", + "passwordVerificationFailed": "驗證密碼失敗", + "multiDeviceWarning": "其他已登入裝置需於 {{refresh_time}} 內重新登入。", + "multiDeviceAdmin": "亦可更換 JWT 密鑰以強制所有使用者重新驗證。" } }, "title": "用戶" @@ -801,7 +830,7 @@ "desc": "必須啟用語意搜尋才能使用觸發器。" }, "management": { - "title": "觸發器管理", + "title": "觸發器", "desc": "管理 {{camera}} 的觸發器。使用縮圖類型可對與所選追蹤物件相似的縮圖觸發,使用描述類型可對與你指定文字描述相似的事件觸發。" }, "addTrigger": "新增觸發器", @@ -822,7 +851,9 @@ }, "actions": { "alert": "標記為警報", - "notification": "發送通知" + "notification": "發送通知", + "sub_label": "新增子標籤", + "attribute": "新增屬性" }, "dialog": { "createTrigger": { @@ -840,19 +871,22 @@ "form": { "name": { "title": "名稱", - "placeholder": "輸入觸發器名稱", + "placeholder": "為觸發器命名", "error": { - "minLength": "名稱至少需 2 個字元。", - "invalidCharacters": "名稱只可包含字母、數字、底線及連字符。", + "minLength": "欄位至少需 2 個字元。", + "invalidCharacters": "欄位只可包含字母、數字、底線及連字符。", "alreadyExists": "此鏡頭已有相同名稱的觸發器。" - } + }, + "description": "輸入唯一名稱或描述以識別此觸發器" }, "enabled": { "description": "啟用或停用此觸發器" }, "type": { "title": "類型", - "placeholder": "選擇觸發器類型" + "placeholder": "選擇觸發器類型", + "description": "偵測到相似物件描述時觸發", + "thumbnail": "偵測到相似縮圖時觸發" }, "friendly_name": { "title": "顯示名稱", @@ -861,9 +895,9 @@ }, "content": { "title": "內容", - "imagePlaceholder": "選擇圖片", + "imagePlaceholder": "選擇縮圖", "textPlaceholder": "輸入文字內容", - "imageDesc": "選擇圖片,當偵測到相似圖片時觸發此動作。", + "imageDesc": "只顯示最近100張縮圖。如果你找不到所需的縮圖,請在「瀏覽」中查看先前的物件,並從選單中設定觸發器。", "textDesc": "輸入文字,當偵測到相似追蹤物件描述時觸發此動作。", "error": { "required": "必須提供內容。" @@ -874,11 +908,12 @@ "error": { "min": "閾值至少為 0", "max": "閾值最多為 1" - } + }, + "desc": "為觸發器設定相似度門檻,越高越嚴格。" }, "actions": { "title": "操作", - "desc": "預設情況下,Frigate 會對所有觸發器發送 MQTT 訊息。可選擇額外操作,在觸發器觸發時執行。", + "desc": "預設情況下,Frigate 會對所有觸發器發送 MQTT 訊息。子標籤會將觸發器名稱加入到物件標籤中。屬性是可搜尋的元數據,單獨儲存在被追蹤對象的元數據中。", "error": { "min": "至少需要選擇一個操作。" } @@ -896,6 +931,23 @@ "updateTriggerFailed": "更新觸發器失敗:{{errorMessage}}", "deleteTriggerFailed": "刪除觸發器失敗:{{errorMessage}}" } + }, + "wizard": { + "title": "建立觸發器", + "step1": { + "description": "設定觸發器基本參數。" + }, + "step2": { + "description": "設定觸發內容。" + }, + "step3": { + "description": "設定觸發器門檻與動作。" + }, + "steps": { + "nameAndType": "名稱與類型", + "configureData": "設定資料", + "thresholdAndActions": "門檻與動作" + } } }, "cameraWizard": { @@ -904,7 +956,8 @@ "steps": { "nameAndConnection": "名稱與連線", "streamConfiguration": "串流設定", - "validationAndTesting": "驗證與測試" + "validationAndTesting": "驗證與測試", + "probeOrSnapshot": "探測或快照" }, "save": { "success": "已成功儲存新鏡頭 {{cameraName}}。", @@ -921,7 +974,7 @@ "testFailed": "串流測試失敗:{{error}}" }, "step1": { - "description": "輸入鏡頭詳細資料並測試連線。", + "description": "輸入鏡頭詳細資料並選擇探測鏡頭或手動選擇品牌。", "cameraName": "鏡頭名稱", "cameraNamePlaceholder": "例如:front_door 或 back_yard_overview", "host": "主機名稱/IP 位址", @@ -952,14 +1005,24 @@ "nameExists": "鏡頭名稱已存在", "brands": { "reolink-rtsp": "不建議使用 Reolink RTSP。建議在鏡頭設定中啟用 HTTP,並重新啟動鏡頭設定精靈。" - } + }, + "customUrlRtspRequired": "自訂 URL 必須以「rtsp://」開頭。非 RTSP 串流需手動設定。" }, "docs": { "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras" - } + }, + "connectionSettings": "連線設定", + "detectionMethod": "串流偵測方式", + "onvifPort": "ONVIF 連接埠", + "probeMode": "探測鏡頭", + "manualMode": "手動選擇", + "detectionMethodDescription": "使用 ONVIF(如支援)探測鏡頭以取得串流 URL,或手動選擇鏡頭品牌以使用預設 URL。若要輸入自訂 RTSP URL,請選擇手動方式並選「其他」。", + "onvifPortDescription": "支援 ONVIF 的鏡頭通常為 80 或 8080。", + "useDigestAuth": "使用摘要驗證", + "useDigestAuthDescription": "對 ONVIF 使用 HTTP 摘要驗證。部分鏡頭可能需要專用的 ONVIF 帳號密碼。" }, "step2": { - "description": "設定鏡頭的串流角色,並可新增額外串流。", + "description": "根據你所選擇的偵測方法,探測鏡頭是否有用串流,或者設定手動設定。", "streamsTitle": "鏡頭串流", "addStream": "新增串流", "addAnotherStream": "新增另一個串流", @@ -978,8 +1041,8 @@ "audio": "音訊" }, "testStream": "測試連線", - "testSuccess": "串流測試成功!", - "testFailed": "串流測試失敗", + "testSuccess": "連線測試成功!", + "testFailed": "連線測試失敗。請檢查你的輸入並重試。", "testFailedTitle": "測試失敗", "connected": "已連線", "notConnected": "未連線", @@ -995,10 +1058,42 @@ "featuresPopover": { "title": "串流功能", "description": "使用 go2rtc 轉串流以減少與鏡頭的直接連線。" + }, + "streamDetails": "串流詳情", + "probing": "正在探測鏡頭…", + "retry": "重試", + "testing": { + "probingMetadata": "正在探測鏡頭中繼資料…", + "fetchingSnapshot": "正在取得鏡頭快照…" + }, + "probeFailed": "探測鏡頭失敗:{{error}}", + "probingDevice": "正在探測裝置…", + "probeSuccessful": "探測成功", + "probeError": "探測錯誤", + "probeNoSuccess": "探測失敗", + "deviceInfo": "裝置資訊", + "manufacturer": "製造商", + "model": "型號", + "firmware": "韌體", + "profiles": "設定檔", + "ptzSupport": "支援 PTZ", + "autotrackingSupport": "支援自動追蹤", + "presets": "預設位置", + "rtspCandidates": "RTSP 候選", + "rtspCandidatesDescription": "已從鏡頭探測到以下 RTSP URL。測試連線以查看串流中繼資料。", + "noRtspCandidates": "未從鏡頭找到 RTSP URL,可能憑證錯誤或不支援 ONVIF,請手動輸入。", + "candidateStreamTitle": "候選 {{number}}", + "useCandidate": "使用", + "uriCopy": "複製", + "uriCopied": "URI 已複製到剪貼簿", + "testConnection": "測試連線", + "toggleUriView": "點擊切換完整 URI 顯示", + "errors": { + "hostRequired": "必須輸入主機或 IP 位址" } }, "step3": { - "description": "在儲存新鏡頭前進行最後驗證與分析。請先連線所有串流後再儲存。", + "description": "設定串流角色,並為鏡頭新增其他串流。", "validationTitle": "串流驗證", "connectAllStreams": "連線所有串流", "reconnectionSuccess": "重新連線成功。", @@ -1035,6 +1130,91 @@ "hikvision": { "substreamWarning": "子串流 1 被鎖定為低解析度。許多 Hikvision 鏡頭支援額外子串流,需要在鏡頭設定中啟用。建議如有可用,檢查並使用這些子串流。" } + }, + "streamsTitle": "鏡頭串流", + "addStream": "新增串流", + "addAnotherStream": "新增另一個串流", + "streamUrl": "串流 URL", + "streamUrlPlaceholder": "rtsp://username:password@host:port/path", + "selectStream": "選擇串流", + "searchCandidates": "搜尋候選…", + "noStreamFound": "找不到串流", + "url": "URL", + "resolution": "解析度", + "selectResolution": "選擇解析度", + "quality": "畫質", + "selectQuality": "選擇畫質", + "roleLabels": { + "detect": "物件偵測", + "record": "錄影", + "audio": "音訊" + }, + "testStream": "測試連線", + "testSuccess": "串流測試成功!", + "testFailed": "串流測試失敗", + "testFailedTitle": "測試失敗", + "connected": "已連線", + "notConnected": "未連線", + "featuresTitle": "功能", + "go2rtc": "減少連線至鏡頭", + "detectRoleWarning": "至少一個串流需設定為「detect」角色。", + "rolesPopover": { + "title": "串流角色", + "detect": "物件偵測主要來源。", + "record": "依設定儲存影片片段。", + "audio": "音訊偵測來源。" + }, + "featuresPopover": { + "title": "串流功能", + "description": "使用 go2rtc 轉串流以減少鏡頭連線。" + } + }, + "step4": { + "description": "儲存鏡頭前進行最終驗證與分析,請先連接所有串流。", + "validationTitle": "串流驗證", + "connectAllStreams": "連接所有串流", + "reconnectionSuccess": "重新連線成功。", + "reconnectionPartial": "部分串流重新連線失敗。", + "streamUnavailable": "無法預覽串流", + "reload": "重新載入", + "connecting": "連線中…", + "streamTitle": "串流 {{number}}", + "valid": "有效", + "failed": "失敗", + "notTested": "未測試", + "connectStream": "連線", + "connectingStream": "連線中", + "disconnectStream": "中斷連線", + "estimatedBandwidth": "預計頻寬", + "roles": "角色", + "ffmpegModule": "使用串流相容模式", + "ffmpegModuleDescription": "若多次嘗試仍無法載入,建議啟用。啟用後,Frigate 將使用 ffmpeg 模組和 go2rtc。這可能會提高與某些鏡頭串流相容性。", + "none": "無", + "error": "錯誤", + "streamValidated": "串流 {{number}} 驗證成功", + "streamValidationFailed": "串流 {{number}} 驗證失敗", + "saveAndApply": "儲存新鏡頭", + "saveError": "設定無效,請檢查。", + "issues": { + "title": "串流驗證", + "videoCodecGood": "影片編碼為 {{codec}}。", + "audioCodecGood": "音訊編碼為 {{codec}}。", + "resolutionHigh": "此解析度{{resolution}} 可能增加資源使用。", + "resolutionLow": "此解析度{{resolution}}可能過低,不利小物件偵測。", + "noAudioWarning": "未偵測到音訊,錄影將沒有聲音。", + "audioCodecRecordError": "錄影需 AAC 音訊編碼。", + "audioCodecRequired": "音訊偵測需音訊串流。", + "restreamingWarning": "減少錄影串流連線可能略增 CPU 使用。", + "brands": { + "reolink-rtsp": "不建議使用 Reolink RTSP,請啟用 HTTP 並重新啟動精靈。", + "reolink-http": "Reolink HTTP 串流建議使用 FFmpeg,請啟用相容模式。" + }, + "dahua": { + "substreamWarning": "子串流 1 解析度過低。許多Dahua / Amcrest / EmpireTech鏡頭支援額外的子串流,需要在鏡頭的設定中啟用。建議於鏡頭設定啟用更多子串流。" + }, + "hikvision": { + "substreamWarning": "子串流 1 解析度過低。許多Hikvision鏡頭支援額外的子串流,需要在鏡頭的設定中啟用。建議於鏡頭設定啟用更多子串流。" + } } } }, @@ -1082,11 +1262,11 @@ "title": "鏡頭檢視設定", "object_descriptions": { "title": "生成式 AI 物件描述", - "desc": "暫時啟用/停用此鏡頭的生成式 AI 物件描述。停用時,系統不會為此鏡頭的追蹤物件生成 AI 描述。" + "desc": "暫時啟用/停用此鏡頭的生成式 AI 物件描述直到Frigate重新啟動。停用時,系統不會為此鏡頭的追蹤物件生成 AI 描述。" }, "review_descriptions": { "title": "生成式 AI 審查描述", - "desc": "暫時啟用/停用此鏡頭的生成式 AI 審查描述。停用時,系統不會為此鏡頭的審查項目生成 AI 描述。" + "desc": "暫時啟用/停用此鏡頭的生成式 AI 審查描述直到Frigate重新啟動。停用時,系統不會為此鏡頭的審查項目生成 AI 描述。" }, "review": { "title": "審查", diff --git a/web/public/locales/yue-Hant/views/system.json b/web/public/locales/yue-Hant/views/system.json index 6b52401c8..bbbca1d0c 100644 --- a/web/public/locales/yue-Hant/views/system.json +++ b/web/public/locales/yue-Hant/views/system.json @@ -75,12 +75,24 @@ "gpuMemory": "GPU 記憶體", "gpuEncoder": "GPU 編碼器", "gpuDecoder": "GPU 解碼器", - "npuMemory": "NPU 記憶體" + "npuMemory": "NPU 記憶體", + "intelGpuWarning": { + "title": "Intel GPU 狀態警告", + "message": "GPU 狀態不可用", + "description": "這是 Intel GPU 統計工具已知問題,可能顯示 0% 使用率,但不影響效能。可重新啟動主機暫時修復。" + } }, "otherProcesses": { "title": "其他程序", "processCpuUsage": "程序 CPU 使用率", - "processMemoryUsage": "程序記憶體使用量" + "processMemoryUsage": "程序記憶體使用量", + "series": { + "go2rtc": "go2rtc", + "recording": "錄影", + "review_segment": "檢視片段", + "embeddings": "嵌入向量", + "audio_detector": "音訊偵測器" + } }, "title": "一般" }, @@ -180,7 +192,17 @@ "text_embedding_speed": "文字嵌入速度", "yolov9_plate_detection_speed": "YOLOv9 車牌偵測速度", "plate_recognition": "車牌辨識", - "image_embedding_speed": "圖片嵌入速度" - } + "image_embedding_speed": "圖片嵌入速度", + "review_description": "審查描述", + "review_description_speed": "審查描述速度", + "review_description_events_per_second": "審查描述", + "object_description": "物件描述", + "object_description_speed": "物件描述速度", + "object_description_events_per_second": "物件描述", + "classification": "{{name}} 分類", + "classification_speed": "{{name}} 分類速度", + "classification_events_per_second": "{{name}} 每秒分類事件數" + }, + "averageInf": "平均推論時間" } } From 85ed8c6432b139bb56616387ffa3c9ee00561396 Mon Sep 17 00:00:00 2001 From: GuoQing Liu <842607283@qq.com> Date: Sun, 22 Feb 2026 02:19:21 +0800 Subject: [PATCH 24/33] docs: fix image address (#22067) --- docs/docs/frigate/installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/docs/frigate/installation.md b/docs/docs/frigate/installation.md index b62c3c574..4e0844e17 100644 --- a/docs/docs/frigate/installation.md +++ b/docs/docs/frigate/installation.md @@ -709,7 +709,7 @@ To allow Frigate to use the Apple Silicon Neural Engine / Processing Unit (NPU) services: frigate: container_name: frigate - image: ghcr.io/blakeblackshear/frigate:stable-arm64 + image: ghcr.io/blakeblackshear/frigate:stable-standard-arm64 restart: unless-stopped shm_size: "512mb" # update for your cameras based on calculation above volumes: @@ -727,4 +727,4 @@ services: - "host.docker.internal:host-gateway" # Required to talk to the NPU detector environment: - FRIGATE_RTSP_PASSWORD: "password" -``` \ No newline at end of file +``` From c9be98f9355447fa46f8abd3c6b2964b53228e2a Mon Sep 17 00:00:00 2001 From: GuoQing Liu <842607283@qq.com> Date: Sun, 22 Feb 2026 02:19:46 +0800 Subject: [PATCH 25/33] docs: fix hailo setup numbering error (#22066) --- docs/docs/frigate/installation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/frigate/installation.md b/docs/docs/frigate/installation.md index 4e0844e17..f78db5f14 100644 --- a/docs/docs/frigate/installation.md +++ b/docs/docs/frigate/installation.md @@ -185,7 +185,7 @@ On Raspberry Pi OS **Trixie**, the Hailo driver is no longer shipped with the ke This command should return no results. -3. **Run the installation script**: +2. **Run the installation script**: Download the installation script: @@ -213,7 +213,7 @@ On Raspberry Pi OS **Trixie**, the Hailo driver is no longer shipped with the ke - Download and install the required firmware - Set up udev rules -4. **Reboot your system**: +3. **Reboot your system**: After the script completes successfully, reboot to load the firmware: @@ -221,7 +221,7 @@ On Raspberry Pi OS **Trixie**, the Hailo driver is no longer shipped with the ke sudo reboot ``` -5. **Verify the installation**: +4. **Verify the installation**: After rebooting, verify that the Hailo device is available: From 4d51f7a1bb25292b68d9e42153aae685eb238918 Mon Sep 17 00:00:00 2001 From: Matt Rusiniak Date: Sun, 22 Feb 2026 15:57:27 +0100 Subject: [PATCH 26/33] Fix script for downloading RF-DETR (#22083) --- docs/docs/configuration/object_detectors.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/configuration/object_detectors.md b/docs/docs/configuration/object_detectors.md index d4a7f5566..3a8d599c9 100644 --- a/docs/docs/configuration/object_detectors.md +++ b/docs/docs/configuration/object_detectors.md @@ -1514,11 +1514,11 @@ RF-DETR can be exported as ONNX by running the command below. You can copy and p ```sh docker build . --build-arg MODEL_SIZE=Nano --rm --output . -f- <<'EOF' -FROM python:3.11 AS build +FROM python:3.12 AS build RUN apt-get update && apt-get install --no-install-recommends -y libgl1 && rm -rf /var/lib/apt/lists/* -COPY --from=ghcr.io/astral-sh/uv:0.8.0 /uv /bin/ +COPY --from=ghcr.io/astral-sh/uv:0.10.4 /uv /bin/ WORKDIR /rfdetr -RUN uv pip install --system rfdetr[onnxexport] torch==2.8.0 onnx==1.19.1 onnxscript +RUN uv pip install --system rfdetr[onnxexport] torch==2.8.0 onnx==1.19.1 transformers==4.57.6 onnxscript ARG MODEL_SIZE RUN python3 -c "from rfdetr import RFDETR${MODEL_SIZE}; x = RFDETR${MODEL_SIZE}(resolution=320); x.export(simplify=True)" FROM scratch From a7d8d13d9a9f0bdbe15f223d66e2dc5af16290cc Mon Sep 17 00:00:00 2001 From: Kai Curry Date: Mon, 23 Feb 2026 12:45:29 -0100 Subject: [PATCH 27/33] docs: Add frame selection and clean copy details to snapshots docs (#21946) * docs: Add frame selection and clean copy details to snapshots docs Document how Frigate selects the best frame for snapshots, explain the difference between regular snapshots and clean copies, fix internal links to use absolute paths, and highlight Frigate+ as the primary reason to keep clean_copy enabled if regular snapshot is configured clean. * revert - do not use the word event * rm clean copy is only saved when `clean_copy` is enabled * Simplified the Frame Selection section down to a single paragraph. * rm note about snapshot file ext change from png to webp --------- Co-authored-by: Kai Curry --- docs/docs/configuration/snapshots.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/docs/docs/configuration/snapshots.md b/docs/docs/configuration/snapshots.md index 815e301ba..01c034a04 100644 --- a/docs/docs/configuration/snapshots.md +++ b/docs/docs/configuration/snapshots.md @@ -9,4 +9,25 @@ Snapshots are accessible in the UI in the Explore pane. This allows for quick su To only save snapshots for objects that enter a specific zone, [see the zone docs](./zones.md#restricting-snapshots-to-specific-zones) -Snapshots sent via MQTT are configured in the [config file](https://docs.frigate.video/configuration/) under `cameras -> your_camera -> mqtt` +Snapshots sent via MQTT are configured in the [config file](/configuration) under `cameras -> your_camera -> mqtt` + +## Frame Selection + +Frigate does not save every frame — it picks a single "best" frame for each tracked object and uses it for both the snapshot and clean copy. As the object is tracked across frames, Frigate continuously evaluates whether the current frame is better than the previous best based on detection confidence, object size, and the presence of key attributes like faces or license plates. Frames where the object touches the edge of the frame are deprioritized. The snapshot is written to disk once tracking ends using whichever frame was determined to be the best. + +MQTT snapshots are published more frequently — each time a better thumbnail frame is found during tracking, or when the current best image is older than `best_image_timeout` (default: 60s). These use their own annotation settings configured under `cameras -> your_camera -> mqtt`. + +## Clean Copy + +Frigate can produce up to two snapshot files per event, each used in different places: + +| Version | File | Annotations | Used by | +| --- | --- | --- | --- | +| **Regular snapshot** | `-.jpg` | Respects your `timestamp`, `bounding_box`, `crop`, and `height` settings | API (`/api/events//snapshot.jpg`), MQTT (`/