Compare commits

..

15 Commits

Author SHA1 Message Date
Nicolas Mowen
5af8fbac51
Fix tls config check (#19710)
* Correct tls settings check

* Correct jq format
2025-08-22 18:23:51 -05:00
Hosted Weblate
b036eb612a Translated using Weblate (Greek)
Currently translated at 2.6% (3 of 114 strings)

Translated using Weblate (Greek)

Currently translated at 8.3% (4 of 48 strings)

Translated using Weblate (Greek)

Currently translated at 3.5% (3 of 85 strings)

Translated using Weblate (Greek)

Currently translated at 44.4% (4 of 9 strings)

Translated using Weblate (Greek)

Currently translated at 3.2% (4 of 124 strings)

Translated using Weblate (Greek)

Currently translated at 8.6% (4 of 46 strings)

Translated using Weblate (Greek)

Currently translated at 2.6% (5 of 191 strings)

Co-authored-by: Christos Sidiropoulos <dev@csidirop.de>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/el/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-system
2025-08-22 18:18:38 -05:00
Josh Hawkins
8be82b63f4 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (117 of 117 strings)

Translation: Frigate NVR/views-system
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/uk/
2025-08-22 17:56:38 -05:00
lukasig
1241e27aac Translated using Weblate (Romanian)
Currently translated at 100.0% (117 of 117 strings)

Translation: Frigate NVR/views-system
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ro/
2025-08-22 17:56:38 -05:00
Marijn
02ee37ab55 Translated using Weblate (Dutch)
Currently translated at 100.0% (117 of 117 strings)

Translation: Frigate NVR/views-system
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/nl/
2025-08-22 17:56:38 -05:00
Gringo
e0f695d8b1 Translated using Weblate (Italian)
Currently translated at 100.0% (117 of 117 strings)

Translation: Frigate NVR/views-system
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/it/
2025-08-22 17:56:38 -05:00
Hosted Weblate
819e0a0bf9 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 99.1% (123 of 124 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 100.0% (26 of 26 strings)

Co-authored-by: GuoQing Liu <842607283@qq.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/zh_Hans/
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
2025-08-22 17:56:38 -05:00
Hosted Weblate
2a3065eb67 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 11.3% (49 of 431 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.8% (84 of 85 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (26 of 26 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (70 of 70 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 14.2% (61 of 427 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: retic9 <retic9@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hant/
Translation: Frigate NVR/audio
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2025-08-22 17:56:38 -05:00
Hosted Weblate
db45dd3698 Translated using Weblate (Swedish)
Currently translated at 71.9% (82 of 114 strings)

Translated using Weblate (Swedish)

Currently translated at 19.0% (82 of 431 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (85 of 85 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (Swedish)

Currently translated at 69.3% (86 of 124 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (26 of 26 strings)

Translated using Weblate (Swedish)

Currently translated at 100.0% (53 of 53 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kristian Johansson <knmjohansson@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sv/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sv/
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-22 17:56:38 -05:00
Hosted Weblate
6136504128 Translated using Weblate (Italian)
Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (431 of 431 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (26 of 26 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (114 of 114 strings)

Translated using Weblate (Italian)

Currently translated at 100.0% (46 of 46 strings)

Co-authored-by: Gringo <ita.translations@tiscali.it>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/it/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/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/components-camera
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-settings
Translation: Frigate NVR/views-system
2025-08-22 17:56:38 -05:00
Hosted Weblate
47af0b63c5 Translated using Weblate (Vietnamese)
Currently translated at 89.0% (384 of 431 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (85 of 85 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (124 of 124 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (26 of 26 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (10 of 10 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (70 of 70 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (53 of 53 strings)

Translated using Weblate (Vietnamese)

Currently translated at 100.0% (191 of 191 strings)

Co-authored-by: Darias <yd5uecg8e@mozmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/vi/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/vi/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-dialog
Translation: Frigate NVR/components-filter
Translation: Frigate NVR/views-configeditor
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-settings
2025-08-22 17:56:38 -05:00
Hosted Weblate
8bfa4be42f Translated using Weblate (Greek)
Currently translated at 2.6% (3 of 114 strings)

Translated using Weblate (Greek)

Currently translated at 8.3% (4 of 48 strings)

Translated using Weblate (Greek)

Currently translated at 3.5% (3 of 85 strings)

Translated using Weblate (Greek)

Currently translated at 44.4% (4 of 9 strings)

Translated using Weblate (Greek)

Currently translated at 3.2% (4 of 124 strings)

Translated using Weblate (Greek)

Currently translated at 8.6% (4 of 46 strings)

Translated using Weblate (Greek)

Currently translated at 2.6% (5 of 191 strings)

Co-authored-by: Christos Sidiropoulos <dev@csidirop.de>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/el/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/el/
Translation: Frigate NVR/common
Translation: Frigate NVR/components-camera
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-exports
Translation: Frigate NVR/views-live
Translation: Frigate NVR/views-search
Translation: Frigate NVR/views-system
2025-08-22 17:56:38 -05:00
Hosted Weblate
b8af90331b Translated using Weblate (German)
Currently translated at 100.0% (62 of 62 strings)

Translated using Weblate (German)

Currently translated at 100.0% (124 of 124 strings)

Translated using Weblate (German)

Currently translated at 100.0% (26 of 26 strings)

Translated using Weblate (German)

Currently translated at 100.0% (26 of 26 strings)

Co-authored-by: Christos Sidiropoulos <dev@csidirop.de>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Viktor Stier <viktor-stier@gmx.de>
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/de/
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/de/
Translation: Frigate NVR/views-events
Translation: Frigate NVR/views-explore
Translation: Frigate NVR/views-facelibrary
2025-08-22 17:56:38 -05:00
Josh Hawkins
95131541c5
Consolidate documentation i18n keys (#19714)
* Consolidate documentation i18n keys

* individual translations
2025-08-22 17:19:00 -05:00
Josh Hawkins
a88760efa1
Display warning in frontend if shm size is too low (#19712)
* backend

refactor shm calculation to utility function so it can be used in frontend stats

* frontend

* fix check

* clean up
2025-08-22 13:48:27 -06:00
102 changed files with 752 additions and 229 deletions

View File

@ -10,7 +10,7 @@ echo "[INFO] Starting certsync..."
lefile="/etc/letsencrypt/live/frigate/fullchain.pem"
tls_enabled=`python3 /usr/local/nginx/get_listen_settings.py | jq -r .enabled`
tls_enabled=`python3 /usr/local/nginx/get_listen_settings.py | jq -r .tls.enabled`
while true
do

View File

@ -2,8 +2,6 @@
import logging
import multiprocessing as mp
import os
import shutil
import threading
from multiprocessing import Queue
from multiprocessing.managers import DictProxy, SyncManager
@ -16,11 +14,11 @@ from frigate.config.camera.updater import (
CameraConfigUpdateEnum,
CameraConfigUpdateSubscriber,
)
from frigate.const import SHM_FRAMES_VAR
from frigate.models import Regions
from frigate.util.builtin import empty_and_close_queue
from frigate.util.image import SharedMemoryFrameManager, UntrackedSharedMemory
from frigate.util.object import get_camera_regions_grid
from frigate.util.services import calculate_shm_requirements
from frigate.video import CameraCapture, CameraTracker
logger = logging.getLogger(__name__)
@ -74,53 +72,25 @@ class CameraMaintainer(threading.Thread):
)
def __calculate_shm_frame_count(self) -> int:
total_shm = round(shutil.disk_usage("/dev/shm").total / pow(2, 20), 1)
shm_stats = calculate_shm_requirements(self.config)
# required for log files + nginx cache
min_req_shm = 40 + 10
if self.config.birdseye.restream:
min_req_shm += 8
available_shm = total_shm - min_req_shm
cam_total_frame_size = 0.0
for camera in self.config.cameras.values():
if (
camera.enabled_in_config
and camera.detect.width
and camera.detect.height
):
cam_total_frame_size += round(
(camera.detect.width * camera.detect.height * 1.5 + 270480)
/ 1048576,
1,
)
# leave room for 2 cameras that are added dynamically, if a user wants to add more cameras they may need to increase the SHM size and restart after adding them.
cam_total_frame_size += 2 * round(
(1280 * 720 * 1.5 + 270480) / 1048576,
1,
)
if cam_total_frame_size == 0.0:
if not shm_stats:
# /dev/shm not available
return 0
shm_frame_count = min(
int(os.environ.get(SHM_FRAMES_VAR, "50")),
int(available_shm / (cam_total_frame_size)),
)
logger.debug(
f"Calculated total camera size {available_shm} / {cam_total_frame_size} :: {shm_frame_count} frames for each camera in SHM"
f"Calculated total camera size {shm_stats['available']} / "
f"{shm_stats['camera_frame_size']} :: {shm_stats['shm_frame_count']} "
f"frames for each camera in SHM"
)
if shm_frame_count < 20:
if shm_stats["shm_frame_count"] < 20:
logger.warning(
f"The current SHM size of {total_shm}MB is too small, recommend increasing it to at least {round(min_req_shm + cam_total_frame_size * 20)}MB."
f"The current SHM size of {shm_stats['total']}MB is too small, "
f"recommend increasing it to at least {shm_stats['min_shm']}MB."
)
return shm_frame_count
return shm_stats["shm_frame_count"]
def __start_camera_processor(
self, name: str, config: CameraConfig, runtime: bool = False

View File

@ -8,7 +8,6 @@ from json import JSONDecodeError
from multiprocessing.managers import DictProxy
from typing import Any, Optional
import psutil
import requests
from requests.exceptions import RequestException
@ -18,9 +17,11 @@ from frigate.data_processing.types import DataProcessorMetrics
from frigate.object_detection.base import ObjectDetectProcess
from frigate.types import StatsTrackingTypes
from frigate.util.services import (
calculate_shm_requirements,
get_amd_gpu_stats,
get_bandwidth_stats,
get_cpu_stats,
get_fs_type,
get_intel_gpu_stats,
get_jetson_stats,
get_nvidia_gpu_stats,
@ -70,16 +71,6 @@ def stats_init(
return stats_tracking
def get_fs_type(path: str) -> str:
bestMatch = ""
fsType = ""
for part in psutil.disk_partitions(all=True):
if path.startswith(part.mountpoint) and len(bestMatch) < len(part.mountpoint):
fsType = part.fstype
bestMatch = part.mountpoint
return fsType
def read_temperature(path: str) -> Optional[float]:
if os.path.isfile(path):
with open(path) as f:
@ -389,7 +380,7 @@ def stats_snapshot(
"last_updated": int(time.time()),
}
for path in [RECORD_DIR, CLIPS_DIR, CACHE_DIR, "/dev/shm"]:
for path in [RECORD_DIR, CLIPS_DIR, CACHE_DIR]:
try:
storage_stats = shutil.disk_usage(path)
except (FileNotFoundError, OSError):
@ -403,6 +394,8 @@ def stats_snapshot(
"mount_type": get_fs_type(path),
}
stats["service"]["storage"]["/dev/shm"] = calculate_shm_requirements(config)
stats["processes"] = {}
for name, pid in stats_tracking["processes"].items():
stats["processes"][name] = {

View File

@ -6,6 +6,7 @@ import logging
import os
import re
import resource
import shutil
import signal
import subprocess as sp
import traceback
@ -22,6 +23,7 @@ from frigate.const import (
DRIVER_ENV_VAR,
FFMPEG_HWACCEL_NVIDIA,
FFMPEG_HWACCEL_VAAPI,
SHM_FRAMES_VAR,
)
from frigate.util.builtin import clean_camera_user_pass, escape_special_characters
@ -768,3 +770,65 @@ def set_file_limit() -> None:
logger.debug(
f"File limit set. New soft limit: {new_soft}, Hard limit remains: {current_hard}"
)
def get_fs_type(path: str) -> str:
bestMatch = ""
fsType = ""
for part in psutil.disk_partitions(all=True):
if path.startswith(part.mountpoint) and len(bestMatch) < len(part.mountpoint):
fsType = part.fstype
bestMatch = part.mountpoint
return fsType
def calculate_shm_requirements(config) -> dict:
try:
storage_stats = shutil.disk_usage("/dev/shm")
except (FileNotFoundError, OSError):
return {}
total_mb = round(storage_stats.total / pow(2, 20), 1)
used_mb = round(storage_stats.used / pow(2, 20), 1)
free_mb = round(storage_stats.free / pow(2, 20), 1)
# required for log files + nginx cache
min_req_shm = 40 + 10
if config.birdseye.restream:
min_req_shm += 8
available_shm = total_mb - min_req_shm
cam_total_frame_size = 0.0
for camera in config.cameras.values():
if camera.enabled_in_config and camera.detect.width and camera.detect.height:
cam_total_frame_size += round(
(camera.detect.width * camera.detect.height * 1.5 + 270480) / 1048576,
1,
)
# leave room for 2 cameras that are added dynamically, if a user wants to add more cameras they may need to increase the SHM size and restart after adding them.
cam_total_frame_size += 2 * round(
(1280 * 720 * 1.5 + 270480) / 1048576,
1,
)
shm_frame_count = min(
int(os.environ.get(SHM_FRAMES_VAR, "50")),
int(available_shm / cam_total_frame_size),
)
# minimum required shm recommendation
min_shm = round(min_req_shm + cam_total_frame_size * 20)
return {
"total": total_mb,
"used": used_mb,
"free": free_mb,
"mount_type": get_fs_type("/dev/shm"),
"available": round(available_shm, 1),
"camera_frame_size": cam_total_frame_size,
"shm_frame_count": shm_frame_count,
"min_shm": min_shm,
}

View File

@ -106,5 +106,7 @@
},
"label": {
"back": "Върни се"
}
},
"selectItem": "Избери {{item}}",
"readTheDocumentation": "Прочетете документацията"
}

View File

@ -261,5 +261,6 @@
"title": "404",
"desc": "Pàgina no trobada"
},
"selectItem": "Selecciona {{item}}"
"selectItem": "Selecciona {{item}}",
"readTheDocumentation": "Llegir la documentació"
}

View File

@ -261,5 +261,7 @@
"admin": "Správce",
"viewer": "Divák",
"desc": "Správci mají plný přístup ke všem funkcím v uživatelském rozhraní Frigate. Diváci jsou omezeni na sledování kamer, položek přehledu a historických záznamů v UI."
}
},
"selectItem": "Vybrat {{item}}",
"readTheDocumentation": "Přečtěte si dokumentaci"
}

View File

@ -254,5 +254,6 @@
"title": "404",
"desc": "Side ikke fundet"
},
"selectItem": "Vælg {{item}}"
"selectItem": "Vælg {{item}}",
"readTheDocumentation": "Læs dokumentationen"
}

View File

@ -268,6 +268,7 @@
"documentTitle": "Nicht gefunden - Frigate"
},
"selectItem": "Wähle {{item}}",
"readTheDocumentation": "Dokumentation lesen",
"accessDenied": {
"desc": "Du hast keine Berechtigung diese Seite anzuzeigen.",
"documentTitle": "Zugang verweigert - Frigate",

View File

@ -34,5 +34,7 @@
"markAsReviewed": "Als geprüft kennzeichnen",
"selected_one": "{{count}} ausgewählt",
"selected_other": "{{count}} ausgewählt",
"detected": "erkannt"
"detected": "erkannt",
"suspiciousActivity": "Verdächtige Aktivität",
"threateningActivity": "Bedrohliche Aktivität"
}

View File

@ -69,6 +69,9 @@
},
"snapshotScore": {
"label": "Schnappschuss Bewertung"
},
"score": {
"label": "Ergebnis"
}
},
"documentTitle": "Erkunde - Frigate",
@ -213,5 +216,11 @@
"fetchingTrackedObjectsFailed": "Fehler beim Abrufen von verfolgten Objekten: {{errorMessage}}",
"trackedObjectsCount_one": "{{count}} verfolgtes Objekt ",
"trackedObjectsCount_other": "{{count}} verfolgte Objekte ",
"exploreMore": "Erkunde mehr {{label}} Objekte"
"exploreMore": "Erkunde mehr {{label}} Objekte",
"aiAnalysis": {
"title": "KI-Analyse"
},
"concerns": {
"label": "Bedenken"
}
}

View File

@ -46,7 +46,7 @@
"train": {
"title": "Trainiere",
"aria": "Wähle Training",
"empty": "Es gibt keine aktuellen Versuche zurGesichtserkennung"
"empty": "Es gibt keine aktuellen Versuche zur Gesichtserkennung"
},
"deleteFaceLibrary": {
"title": "Lösche Name",

View File

@ -3,6 +3,7 @@
"untilForTime": "Ως{{time}}",
"untilForRestart": "Μέχρι να γίνει επανεκίννηση του Frigate.",
"untilRestart": "Μέχρι να γίνει επανεκκίνηση",
"justNow": "Μόλις τώρα"
"justNow": "Μόλις τώρα",
"ago": "{{timeAgo}} Πριν"
}
}

View File

@ -1,6 +1,10 @@
{
"group": {
"add": "Προσθήκη ομάδας καμερών",
"label": "Ομάδες καμερών"
"label": "Ομάδες καμερών",
"edit": "Επεξεργασία ομάδας καμερών",
"delete": {
"label": "Διαγραφή ομάδας κάμερας"
}
}
}

View File

@ -1,3 +1,8 @@
{
"documentTitle": "Εξερευνήστε - Frigate"
"documentTitle": "Εξερευνήστε - Frigate",
"generativeAI": "Παραγωγική τεχνητή νοημοσύνη",
"exploreMore": "Εξερευνήστε περισσότερα αντικείμενα {{label}}",
"exploreIsUnavailable": {
"title": "Η εξερεύνηση δεν είναι διαθέσιμη"
}
}

View File

@ -1,5 +1,6 @@
{
"documentTitle": "Εξαγωγή - Frigate",
"search": "Αναζήτηση",
"deleteExport": "Διαγραφή εξαγωγής"
"deleteExport": "Διαγραφή εξαγωγής",
"noExports": "Δεν βρέθηκαν εξαγωγές"
}

View File

@ -2,5 +2,6 @@
"documentTitle": "Ζωντανά - Frigate",
"twoWayTalk": {
"enable": "Ενεργοποίηση αμφίδρομης επικοινωνίας"
}
},
"documentTitle.withCamera": "{{camera}} - Live - Frigate"
}

View File

@ -3,5 +3,6 @@
"savedSearches": "Αποθηκευμένες Αναζητήσεις",
"button": {
"clear": "Εκαθάρηση αναζήτησης"
}
},
"searchFor": "Αναζήτηση {{inputValue}}"
}

View File

@ -1,5 +1,7 @@
{
"documentTitle": {
"cameras": "Στατιστικά Καμερών - Frigate"
"cameras": "Στατιστικά Καμερών - Frigate",
"storage": "Στατιστικά αποθήκευσης - Frigate",
"general": "Γενικά στατιστικά στοιχεία - Frigate"
}
}

View File

@ -262,5 +262,6 @@
"title": "404",
"desc": "Page not found"
},
"selectItem": "Select {{item}}"
"selectItem": "Select {{item}}",
"readTheDocumentation": "Read the documentation"
}

View File

@ -35,8 +35,7 @@
"audioIsUnavailable": "Audio is unavailable for this stream",
"audio": {
"tips": {
"title": "Audio must be output from your camera and configured in go2rtc for this stream.",
"document": "Read the documentation "
"title": "Audio must be output from your camera and configured in go2rtc for this stream."
}
},
"stream": "Stream",

View File

@ -69,8 +69,7 @@
"restreaming": {
"disabled": "Restreaming is not enabled for this camera.",
"desc": {
"title": "Set up go2rtc for additional live view options and audio for this camera.",
"readTheDocumentation": "Read the documentation"
"title": "Set up go2rtc for additional live view options and audio for this camera."
}
},
"showStats": {

View File

@ -24,8 +24,7 @@
"textTokenizer": "Text tokenizer"
},
"tips": {
"context": "You may want to reindex the embeddings of your tracked objects once the models are downloaded.",
"documentation": "Read the documentation"
"context": "You may want to reindex the embeddings of your tracked objects once the models are downloaded."
},
"error": "An error has occurred. Check Frigate logs."
}
@ -73,7 +72,6 @@
"offset": {
"label": "Annotation Offset",
"desc": "This data comes from your camera's detect feed but is overlayed on images from the the record feed. It is unlikely that the two streams are perfectly in sync. As a result, the bounding box and the footage will not line up perfectly. However, the <code>annotation_offset</code> field can be used to adjust this.",
"documentation": "Read the documentation ",
"millisecondsToOffset": "Milliseconds to offset detect annotations by. <em>Default: 0</em>",
"tips": "TIP: Imagine there is an event clip with a person walking from left to right. If the event timeline bounding box is consistently to the left of the person then the value should be decreased. Similarly, if a person is walking from left to right and the bounding box is consistently ahead of the person then the value should be increased.",
"toast": {

View File

@ -71,7 +71,6 @@
},
"nofaces": "No faces available",
"pixels": "{{area}}px",
"readTheDocs": "Read the documentation",
"trainFaceAs": "Train Face as:",
"trainFace": "Train Face",
"toast": {

View File

@ -119,15 +119,13 @@
"title": "Stream",
"audio": {
"tips": {
"title": "Audio must be output from your camera and configured in go2rtc for this stream.",
"documentation": "Read the documentation "
"title": "Audio must be output from your camera and configured in go2rtc for this stream."
},
"available": "Audio is available for this stream",
"unavailable": "Audio is not available for this stream"
},
"twoWayTalk": {
"tips": "Your device must support the feature and WebRTC must be configured for two-way talk.",
"tips.documentation": "Read the documentation ",
"available": "Two-way talk is available for this stream",
"unavailable": "Two-way talk is unavailable for this stream"
},

View File

@ -92,7 +92,6 @@
"semanticSearch": {
"title": "Semantic Search",
"desc": "Semantic Search in Frigate allows you to find tracked objects within your review items using either the image itself, a user-defined text description, or an automatically generated one.",
"readTheDocumentation": "Read the Documentation",
"reindexNow": {
"label": "Reindex Now",
"desc": "Reindexing will regenerate embeddings for all tracked object. This process runs in the background and may max out your CPU and take a fair amount of time depending on the number of tracked objects you have.",
@ -119,7 +118,6 @@
"faceRecognition": {
"title": "Face Recognition",
"desc": "Face recognition allows people to be assigned names and when their face is recognized Frigate will assign the person's name as a sub label. This information is included in the UI, filters, as well as in notifications.",
"readTheDocumentation": "Read the Documentation",
"modelSize": {
"label": "Model Size",
"desc": "The size of the model used for face recognition.",
@ -135,8 +133,7 @@
},
"licensePlateRecognition": {
"title": "License Plate Recognition",
"desc": "Frigate can recognize license plates on vehicles and automatically add the detected characters to the recognized_license_plate field or a known name as a sub_label to objects that are of type car. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street.",
"readTheDocumentation": "Read the Documentation"
"desc": "Frigate can recognize license plates on vehicles and automatically add the detected characters to the recognized_license_plate field or a known name as a sub_label to objects that are of type car. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street."
},
"restart_required": "Restart required (Enrichments settings changed)",
"toast": {
@ -167,7 +164,7 @@
"reviewClassification": {
"title": "Review Classification",
"desc": "Frigate categorizes review items as Alerts and Detections. By default, all <em>person</em> and <em>car</em> objects are considered Alerts. You can refine categorization of your review items by configuring required zones for them.",
"readTheDocumentation": "Read the Documentation",
"noDefinedZones": "No zones are defined for this camera.",
"objectAlertsTips": "All {{alertsLabels}} objects on {{cameraName}} will be shown as Alerts.",
"zoneObjectAlertsTips": "All {{alertsLabels}} objects detected in {{zone}} on {{cameraName}} will be shown as Alerts.",
@ -313,7 +310,6 @@
"speedEstimation": {
"title": "Speed Estimation",
"desc": "Enable speed estimation for objects in this zone. The zone must have exactly 4 points.",
"docs": "Read the documentation",
"lineADistance": "Line A distance ({{unit}})",
"lineBDistance": "Line B distance ({{unit}})",
"lineCDistance": "Line C distance ({{unit}})",
@ -343,16 +339,14 @@
"add": "New Motion Mask",
"edit": "Edit Motion Mask",
"context": {
"title": "Motion masks are used to prevent unwanted types of motion from triggering detection (example: tree branches, camera timestamps). Motion masks should be used <em>very sparingly</em>, over-masking will make it more difficult for objects to be tracked.",
"documentation": "Read the documentation"
"title": "Motion masks are used to prevent unwanted types of motion from triggering detection (example: tree branches, camera timestamps). Motion masks should be used <em>very sparingly</em>, over-masking will make it more difficult for objects to be tracked."
},
"point_one": "{{count}} point",
"point_other": "{{count}} points",
"clickDrawPolygon": "Click to draw a polygon on the image.",
"polygonAreaTooLarge": {
"title": "The motion mask is covering {{polygonArea}}% of the camera frame. Large motion masks are not recommended.",
"tips": "Motion masks do not prevent objects from being detected. You should use a required zone instead.",
"documentation": "Read the documentation"
"tips": "Motion masks do not prevent objects from being detected. You should use a required zone instead."
},
"toast": {
"success": {
@ -456,7 +450,6 @@
"title": "Object Shape Filter Drawing",
"desc": "Draw a rectangle on the image to view area and ratio details",
"tips": "Enable this option to draw a rectangle on the camera image to show its area and ratio. These values can then be used to set object shape filter parameters in your config.",
"document": "Read the documentation ",
"score": "Score",
"ratio": "Ratio",
"area": "Area"
@ -563,13 +556,11 @@
"title": "Notifications",
"notificationSettings": {
"title": "Notification Settings",
"desc": "Frigate can natively send push notifications to your device when it is running in the browser or installed as a PWA.",
"documentation": "Read the Documentation"
"desc": "Frigate can natively send push notifications to your device when it is running in the browser or installed as a PWA."
},
"notificationUnavailable": {
"title": "Notifications Unavailable",
"desc": "Web push notifications require a secure context (<code>https://…</code>). This is a browser limitation. Access Frigate securely to use notifications.",
"documentation": "Read the Documentation"
"desc": "Web push notifications require a secure context (<code>https://…</code>). This is a browser limitation. Access Frigate securely to use notifications."
},
"globalSettings": {
"title": "Global Settings",
@ -626,7 +617,6 @@
"snapshotConfig": {
"title": "Snapshot Configuration",
"desc": "Submitting to Frigate+ requires both snapshots and <code>clean_copy</code> snapshots to be enabled in your config.",
"documentation": "Read the documentation",
"cleanCopyWarning": "Some cameras have snapshots enabled but have the clean copy disabled. You need to enable <code>clean_copy</code> in your snapshot config to be able to submit images from these cameras to Frigate+.",
"table": {
"camera": "Camera",

View File

@ -91,6 +91,10 @@
"tips": "This value represents the total storage used by the recordings in Frigate's database. Frigate does not track storage usage for all files on your disk.",
"earliestRecording": "Earliest recording available:"
},
"shm": {
"title": "SHM (shared memory) allocation",
"warning": "The current SHM size of {{total}}MB is too small. Increase it to at least {{min_shm}}MB."
},
"cameraStorage": {
"title": "Camera Storage",
"camera": "Camera",

View File

@ -278,5 +278,6 @@
"title": "404",
"desc": "Página no encontrada"
},
"selectItem": "Seleccionar {{item}}"
"selectItem": "Seleccionar {{item}}",
"readTheDocumentation": "Leer la documentación"
}

View File

@ -168,5 +168,6 @@
"length": {
"feet": "jalka"
}
}
},
"readTheDocumentation": "Lue dokumentaatio"
}

View File

@ -262,6 +262,7 @@
"desc": "Page non trouvée"
},
"selectItem": "Sélectionner {{item}}",
"readTheDocumentation": "Lire la documentation",
"accessDenied": {
"title": "Accès refusé",
"documentTitle": "Accès refusé - Frigate",

View File

@ -9,5 +9,6 @@
"today": "Hoxe",
"untilRestart": "Ata o reinicio",
"ago": "Fai {{timeAgo}}"
}
},
"readTheDocumentation": "Ler a documentación"
}

View File

@ -261,5 +261,6 @@
"title": "404",
"desc": "דף לא נמצא"
},
"selectItem": "בחירה:{{item}}"
"selectItem": "בחירה:{{item}}",
"readTheDocumentation": "קרא את התיעוד"
}

View File

@ -262,5 +262,6 @@
},
"label": {
"back": "Vissza"
}
},
"readTheDocumentation": "Olvassa el a dokumentációt"
}

View File

@ -10,5 +10,6 @@
"last7": "7 hari terakhir",
"last14": "14 hari terakhir",
"last30": "30 hari terakhir"
}
},
"readTheDocumentation": "Baca dokumentasi"
}

View File

@ -279,5 +279,6 @@
"title": "Salva"
}
},
"selectItem": "Seleziona {{item}}"
"selectItem": "Seleziona {{item}}",
"readTheDocumentation": "Leggi la documentazione"
}

View File

@ -29,7 +29,7 @@
"label": "Metodo di trasmissione",
"method": {
"smartStreaming": {
"label": "Trasmissione intelligente (consigliato)",
"label": "Trasmissione intelligente (consigliata)",
"desc": "La trasmissione intelligente aggiorna l'immagine della telecamera una volta al minuto quando non si verifica alcuna attività rilevabile, per risparmiare larghezza di banda e risorse. Quando viene rilevata un'attività, l'immagine passa automaticamente alla trasmissione dal vivo."
},
"continuousStreaming": {

View File

@ -1,9 +1,9 @@
{
"alerts": "Avvisi",
"detections": "Rilevamento",
"detections": "Rilevamenti",
"motion": {
"label": "Movimento",
"only": "Solo movimento"
"label": "Movimenti",
"only": "Solo movimenti"
},
"empty": {
"alert": "Non ci sono avvisi da rivedere",

View File

@ -18,7 +18,7 @@
"table": {
"snapshots": "Istantanee",
"camera": "Telecamera",
"cleanCopySnapshots": "<code>clean_copy</code> Istantanee"
"cleanCopySnapshots": "Istantanee <code>clean_copy</code>"
},
"desc": "Per inviare a Frigate+ è necessario che nella configurazione siano abilitate sia le istantanee che le istantanee <code>clean_copy</code>.",
"documentation": "Leggi la documentazione",
@ -297,7 +297,7 @@
"regardlessOfZoneObjectDetectionsTips": "Tutti gli oggetti {{detectionsLabels}} non categorizzati su {{cameraName}} verranno mostrati come Rilevamenti, indipendentemente dalla zona in cui si trovano."
},
"title": "Classificazione della revisione",
"desc": "Frigate categorizza gli elementi di revisione come Avvisi e Rilevamenti. Per impostazione predefinita, tutti gli oggetti <em>persona</em> e <em>auto</em> sono considerati Avvisi. Puoi perfezionare la categorizzazione degli elementi di revisione configurando le zone desiderate.",
"desc": "Frigate categorizza gli elementi di revisione come Avvisi e Rilevamenti. Per impostazione predefinita, tutti gli oggetti <em>persona</em> e <em>automobile</em> sono considerati Avvisi. Puoi perfezionare la categorizzazione degli elementi di revisione configurando le zone desiderate.",
"objectAlertsTips": "Tutti gli oggetti {{alertsLabels}} su {{cameraName}} verranno mostrati come Avvisi.",
"toast": {
"success": "La configurazione della classificazione di revisione è stata salvata. Riavvia Frigate per applicare le modifiche."
@ -310,7 +310,7 @@
"unsavedChanges": "Impostazioni di classificazione delle revisioni non salvate per {{camera}}"
},
"streams": {
"desc": "Disattiva temporaneamente una telecamera fino al riavvio di Frigate. La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi da parte di Frigate. Rilevamento, registrazione e correzioni non saranno disponibili.<br /> <em>Nota: questa operazione non disabilita le ritrasmissioni di go2rtc.</em>",
"desc": "Disattiva temporaneamente una telecamera fino al riavvio di Frigate. La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi da parte di Frigate. Rilevamenti, registrazioni e correzioni non saranno disponibili.<br /> <em>Nota: questa operazione non disabilita le ritrasmissioni di go2rtc.</em>",
"title": "Flussi"
},
"title": "Impostazioni telecamera",
@ -470,7 +470,7 @@
"general": {
"liveDashboard": {
"automaticLiveView": {
"desc": "Passa automaticamente alla visualizzazione dal vivodi una telecamera quando viene rilevata attività. Disattivando questa opzione, le immagini statiche della telecamera nella schermata dal vivo verranno aggiornate solo una volta al minuto.",
"desc": "Passa automaticamente alla visualizzazione dal vivo di una telecamera quando viene rilevata attività. Disattivando questa opzione, le immagini statiche della telecamera nella schermata dal vivo verranno aggiornate solo una volta al minuto.",
"label": "Visualizzazione automatica dal vivo"
},
"playAlertVideos": {
@ -718,7 +718,7 @@
"title": "Classificazione degli uccelli"
},
"licensePlateRecognition": {
"desc": "Frigate può riconoscere le targhe dei veicoli e aggiungere automaticamente i caratteri rilevati al campo recognized_license_plate o un nome noto come sub_label agli oggetti di tipo \"car\". Un caso d'uso comune potrebbe essere la lettura delle targhe delle auto che entrano in un vialetto o che transitano lungo una strada.",
"desc": "Frigate può riconoscere le targhe dei veicoli e aggiungere automaticamente i caratteri rilevati al campo recognized_license_plate o un nome noto come sub_label agli oggetti di tipo automobile (car). Un caso d'uso comune potrebbe essere la lettura delle targhe delle auto che entrano in un vialetto o che transitano lungo una strada.",
"title": "Riconoscimento della targa",
"readTheDocumentation": "Leggi la documentazione"
},

View File

@ -83,10 +83,10 @@
},
"enrichments": {
"embeddings": {
"face_embedding_speed": "Velocità incorporazione volti",
"face_embedding_speed": "Velocità incorporamento volti",
"plate_recognition_speed": "Velocità riconoscimento targhe",
"image_embedding_speed": "Velocità incorporazione immagini",
"text_embedding_speed": "Velocità incorporazione testo",
"image_embedding_speed": "Velocità incorporamento immagini",
"text_embedding_speed": "Velocità incorporamento testo",
"face_recognition_speed": "Velocità di riconoscimento facciale",
"face_recognition": "Riconoscimento facciale",
"plate_recognition": "Riconoscimento delle targhe",
@ -102,7 +102,7 @@
"info": {
"fetching": "Recupero dati della telecamera",
"streamDataFromFFPROBE": "I dati del flusso vengono ottenuti con <code>ffprobe</code>.",
"cameraProbeInfo": "Informazioni analisi telecamera {{camera}}",
"cameraProbeInfo": "Informazioni flussi telecamera {{camera}}",
"stream": "Flusso {{idx}}",
"video": "Video:",
"codec": "Codec:",
@ -112,7 +112,7 @@
"audio": "Audio:",
"error": "Errore: {{error}}",
"tips": {
"title": "Informazioni analisi telecamera"
"title": "Informazioni flussi telecamera"
},
"aspectRatio": "rapporto d'aspetto"
},
@ -121,15 +121,15 @@
"framesAndDetections": "Fotogrammi / Rilevamenti",
"label": {
"camera": "telecamera",
"detect": "rileva",
"skipped": "saltato",
"detect": "rilevamento",
"skipped": "saltati",
"ffmpeg": "FFmpeg",
"capture": "cattura",
"overallFramesPerSecond": "fotogrammi totali al secondo",
"overallDetectionsPerSecond": "rilevamenti totali al secondo",
"overallSkippedDetectionsPerSecond": "rilevamenti totali saltati al secondo",
"cameraCapture": "{{camName}} cattura",
"cameraDetect": "{{camName}} rileva",
"cameraDetect": "{{camName}} rilevamento",
"cameraFramesPerSecond": "{{camName}} fotogrammi al secondo",
"cameraDetectionsPerSecond": "{{camName}} rilevamenti al secondo",
"cameraSkippedDetectionsPerSecond": "{{camName}} rilevamenti saltati al secondo",
@ -174,6 +174,11 @@
"title": "Liberi",
"tips": "Questo valore potrebbe non rappresentare accuratamente lo spazio libero disponibile per Frigate se nel disco sono archiviati altri file oltre alle registrazioni di Frigate. Frigate non tiene traccia dell'utilizzo dello spazio di archiviazione al di fuori delle sue registrazioni."
}
},
"shm": {
"title": "Allocazione SHM (memoria condivisa)",
"warning": "La dimensione SHM attuale di {{total}} MB è troppo piccola. Aumentarla ad almeno {{min_shm}} MB.",
"readTheDocumentation": "Leggi la documentazione"
}
},
"lastRefreshed": "Ultimo aggiornamento: "

View File

@ -3,5 +3,6 @@
"untilForRestart": "Frigateが再起動するまで.",
"untilRestart": "再起動まで",
"untilForTime": "{{time}} まで"
}
},
"readTheDocumentation": "ドキュメントを読む"
}

View File

@ -1 +1,3 @@
{}
{
"readTheDocumentation": "문서 읽기"
}

View File

@ -269,5 +269,6 @@
"title": "404",
"desc": "Puslapis nerastas"
},
"selectItem": "Pasirinkti {{item}}"
"selectItem": "Pasirinkti {{item}}",
"readTheDocumentation": "Skaityti dokumentaciją"
}

View File

@ -272,5 +272,6 @@
"title": "404",
"desc": "Siden ble ikke funnet"
},
"selectItem": "Velg {{item}}"
"selectItem": "Velg {{item}}",
"readTheDocumentation": "Se dokumentasjonen"
}

View File

@ -272,5 +272,6 @@
"title": "404",
"documentTitle": "Niet gevonden - Frigate"
},
"selectItem": "Selecteer {{item}}"
"selectItem": "Selecteer {{item}}",
"readTheDocumentation": "Lees de documentatie"
}

View File

@ -102,7 +102,12 @@
"camera": "Camera",
"bandwidth": "Bandbreedte"
},
"title": "Opslag"
"title": "Opslag",
"shm": {
"title": "SHM (gedeeld geheugen) toewijzing",
"warning": "De huidige SHM-grootte van {{total}} MB is te klein. Vergroot deze tot minimaal {{min_shm}} MB.",
"readTheDocumentation": "Lees de documentatie"
}
},
"cameras": {
"title": "Cameras",

View File

@ -279,5 +279,6 @@
},
"title": "Zapisz"
}
}
},
"readTheDocumentation": "Przeczytaj dokumentację"
}

View File

@ -269,5 +269,7 @@
"documentTitle": "Não Encontrado - Frigate",
"title": "404",
"desc": "Página não encontrada"
}
},
"selectItem": "Selecionar {{item}}",
"readTheDocumentation": "Leia a documentação"
}

View File

@ -279,5 +279,6 @@
"desc": "Página não encontrada",
"title": "404"
},
"selectItem": "Selecionar {{item}}"
"selectItem": "Selecionar {{item}}",
"readTheDocumentation": "Leia a documentação"
}

View File

@ -269,5 +269,6 @@
"documentTitle": "Nu a fost găsit - Frigate",
"title": "404",
"desc": "Pagină negăsită"
}
},
"readTheDocumentation": "Citește documentația"
}

View File

@ -77,7 +77,12 @@
},
"bandwidth": "Lățime de bandă"
},
"overview": "Prezentare generală"
"overview": "Prezentare generală",
"shm": {
"title": "Alocare SHM (memorie partajată)",
"warning": "Dimensiunea curentă a SHM de {{total}}MB este prea mică. Măriți-o la cel puțin {{min_shm}}MB.",
"readTheDocumentation": "Citește documentația"
}
},
"title": "Sistem",
"logs": {

View File

@ -279,5 +279,7 @@
"admin": "Администратор",
"viewer": "Наблюдатель",
"desc": "Администраторы имеют полный доступ ко всем функциям в интерфейсе Frigate. Наблюдатели ограничены просмотром камер, элементов просмотра и архивных записей."
}
},
"selectItem": "Выбрать {{item}}",
"readTheDocumentation": "Читать документацию"
}

View File

@ -85,5 +85,6 @@
"speed": {
"mph": "mph"
}
}
},
"readTheDocumentation": "Prečítajte si dokumentáciu"
}

View File

@ -269,5 +269,6 @@
"documentTitle": "Ni Najdeno - Frigate",
"title": "404",
"desc": "Stran ni najdena"
}
},
"readTheDocumentation": "Preberite dokumentacijo"
}

View File

@ -27,5 +27,6 @@
"year_few": "2,3,4,22,23,24,32,33,34,42,...",
"year_other": "",
"mo": "{{time}}mes"
}
},
"readTheDocumentation": "Прочитајте документацију"
}

View File

@ -253,5 +253,6 @@
"meters": "meter"
}
},
"selectItem": "Välj {{item}}"
"selectItem": "Välj {{item}}",
"readTheDocumentation": "Läs dokumentationen"
}

View File

@ -67,8 +67,17 @@
"streaming": {
"label": "Videoström",
"restreaming": {
"disabled": "Omströmning är inte aktiverad för den här kameran."
}
"disabled": "Omströmning är inte aktiverad för den här kameran.",
"desc": {
"title": "Konfigurera go2rtc för ytterligare livevisningsalternativ och ljud för den här kameran.",
"readTheDocumentation": "Läs dokumentationen"
}
},
"showStats": {
"label": "Visa strömstatistik",
"desc": "Aktivera det här alternativet för att visa strömstatistik som ett överlägg över kameraflödet."
},
"debugView": "Felsöknings vy"
},
"search": {
"saveSearch": {
@ -78,7 +87,10 @@
"save": {
"label": "Spara den här sökningen"
}
}
},
"label": "Spara Sökning",
"desc": "Ange ett namn för den här sparade sökningen.",
"placeholder": "Ange ett namn för din sökning"
}
},
"recording": {
@ -99,6 +111,10 @@
}
},
"imagePicker": {
"selectImage": "Välj miniatyrbilden för ett spårat objekt"
"selectImage": "Välj miniatyrbilden för ett spårat objekt",
"search": {
"placeholder": "Sök efter etikett eller underetikett..."
},
"noImages": "Inga miniatyrbilder hittades för den här kameran"
}
}

View File

@ -34,5 +34,7 @@
"markTheseItemsAsReviewed": "Markera dessa objekt som granskade",
"detected": "upptäckt",
"selected_one": "{{count}} valda",
"selected_other": "{{count}} valda"
"selected_other": "{{count}} valda",
"suspiciousActivity": "Misstänkt aktivitet",
"threateningActivity": "Hotande aktivitet"
}

View File

@ -30,7 +30,60 @@
}
},
"details": {
"timestamp": "tidsstämpel"
"timestamp": "tidsstämpel",
"item": {
"title": "Granska objektinformation",
"desc": "Granska objektinformation",
"button": {
"share": "Dela den här recensionen",
"viewInExplore": "Visa i Utforska"
},
"tips": {
"mismatch_one": "{{count}} otillgängligt objekt upptäcktes och inkluderades i detta granskningsobjekt. Dessa objekt kvalificerade sig antingen inte som en varning eller detektering, eller så har de redan rensats/raderats.",
"mismatch_other": "{{count}} otillgängliga objekt upptäcktes och inkluderades i detta granskningsobjekt. Dessa objekt kvalificerade sig antingen inte som en varning eller upptäckt, eller så har de redan rensats/raderats.",
"hasMissingObjects": "Justera din konfiguration om du vill att Frigate ska spara spårade objekt för följande etiketter: <em>{{objects}}</em>"
},
"toast": {
"success": {
"regenerate": "En ny beskrivning har begärts från {{provider}}. Beroende på din leverantörs hastighet kan det ta lite tid att generera den nya beskrivningen.",
"updatedSublabel": "Underetiketten har uppdaterats.",
"updatedLPR": "Nummerplåt har uppdaterats.",
"audioTranscription": "Ljudtranskription har begärts."
},
"error": {
"regenerate": "Kunde inte ringa {{provider}} för en ny beskrivning: {{errorMessage}}",
"updatedSublabelFailed": "Misslyckades med att uppdatera underetiketten: {{errorMessage}}",
"audioTranscription": "Misslyckades med att begära ljudtranskription: {{errorMessage}}",
"updatedLPRFailed": "Misslyckades med att uppdatera nummerplåten: {{errorMessage}}"
}
}
},
"label": "Märka",
"editSubLabel": {
"title": "Redigera underetikett",
"desc": "Ange en ny underetikett för denna {{label}}",
"descNoLabel": "Ange en ny underetikett för det här spårade objektet"
},
"editLPR": {
"title": "Redigera nummerplåt",
"desc": "Ange ett nytt nummerplåt för denna {{label}}",
"descNoLabel": "Ange ett nytt nummerplåt för detta spårade objekt"
},
"snapshotScore": {
"label": "Ögonblicksbildspoäng"
},
"topScore": {
"label": "Högsta poäng",
"info": "Topppoängen är den högsta medianpoängen för det spårade objektet, så denna kan skilja sig från poängen som visas på miniatyrbilden av sökresultatet."
},
"score": {
"label": "Poäng"
},
"recognizedLicensePlate": "Erkänd nummerplåt",
"estimatedSpeed": "Uppskattad hastighet",
"objects": "Objekt",
"camera": "Kamera",
"zones": "Zoner"
},
"exploreMore": "Utforska fler {{label}} objekt",
"type": {
@ -54,7 +107,17 @@
"zones": "Zoner",
"ratio": "Proportion",
"area": "Område"
}
},
"visible": "{{label}} upptäckt",
"entered_zone": "{{label}} gick in i {{zones}}",
"active": "{{label}} blev aktiv",
"stationary": "{{label}} blev stationär",
"attribute": {
"faceOrLicense_plate": "{{attribute}} upptäckt för {{label}}",
"other": "{{label}} igenkänd som {{attribute}}"
},
"gone": "{{label}} vänster",
"heard": "{{label}} hört"
},
"annotationSettings": {
"title": "Annoteringsinställningar",
@ -66,8 +129,17 @@
"label": "Annoteringsförskjutning",
"desc": "Denna data kommer från din kameras detekteringsflöde men läggs ovanpå bilder från inspelningsflödet. Det är osannolikt att de två strömmarna är helt synkroniserade. Som ett resultat kommer avgränsningsramen och filmmaterialet inte att radas upp perfekt. Fältet <code>annotation_offset</code> kan dock användas för att justera detta.",
"documentation": "Läs dokumentationen ",
"millisecondsToOffset": "Millisekunder för att förskjuta detektera annoteringar med. <em>Standard: 0</em>"
"millisecondsToOffset": "Millisekunder för att förskjuta detektera annoteringar med. <em>Standard: 0</em>",
"tips": "TIPS: Föreställ dig ett händelseklipp med en person som går från vänster till höger. Om tidslinjens avgränsningsram konsekvent är till vänster om personen bör värdet minskas. På samma sätt, om en person går från vänster till höger och avgränsningsramen konsekvent är framför personen bör värdet ökas.",
"toast": {
"success": "Annoterings förskjutningen för {{camera}} har sparats i konfigurationsfilen. Starta om Frigate för att tillämpa dina ändringar."
}
}
},
"trackedPoint": "Spårad punkt",
"carousel": {
"previous": "Föregående bild",
"next": "Nästa bild"
}
}
}

View File

@ -53,7 +53,10 @@
"imageEntry": {
"dropActive": "Släpp bilden här…",
"dropInstructions": "Dra och släpp en bild här, eller klicka för att välja",
"maxSize": "Maxstorlek: {{size}}MB"
"maxSize": "Maxstorlek: {{size}}MB",
"validation": {
"selectImage": "Välj en bildfil."
}
},
"nofaces": "Inga ansikten tillgängliga",
"pixels": "{{area}}px",
@ -65,7 +68,33 @@
"uploadedImage": "Bilden har laddats upp.",
"addFaceLibrary": "{{name}} har lagts till i ansiktsbiblioteket!",
"deletedFace_one": "{{count}} ansikte har raderats.",
"deletedFace_other": "{{count}} ansikten har raderats."
"deletedFace_other": "{{count}} ansikten har raderats.",
"deletedName_one": "{{count}} ansikte har raderats.",
"deletedName_other": "{{count}} ansikten har raderats.",
"renamedFace": "Ansiktet har bytt namn till {{name}}",
"trainedFace": "Ansikte är tränant.",
"updatedFaceScore": "Ansikts poängen har uppdaterats."
},
"error": {
"uploadingImageFailed": "Misslyckades med att ladda upp bilden: {{errorMessage}}",
"addFaceLibraryFailed": "Misslyckades med att ange ansiktsnamn: {{errorMessage}}",
"deleteFaceFailed": "Misslyckades med att ta bort: {{errorMessage}}",
"deleteNameFailed": "Misslyckades med att ta bort namnet: {{errorMessage}}",
"renameFaceFailed": "Misslyckades med att byta namn på ansikte: {{errorMessage}}",
"trainFailed": "Misslyckades med att träna: {{errorMessage}}",
"updateFaceScoreFailed": "Misslyckades med att uppdatera ansiktspoäng: {{errorMessage}}"
}
},
"renameFace": {
"title": "Byt namn på ansikte",
"desc": "Ange ett nytt namn för {{name}}"
},
"button": {
"deleteFaceAttempts": "Ta bort ansikten",
"addFace": "Lägg till ansikte",
"renameFace": "Byt namn på ansikte",
"deleteFace": "Ta bort ansikte",
"uploadImage": "Ladda upp bild",
"reprocessFace": "Återbearbeta ansiktet"
}
}

View File

@ -106,7 +106,8 @@
"objectDetection": "Objektsdetektering",
"recording": "Inspelning",
"snapshots": "Ögonblicksbilder",
"autotracking": "Autospårning"
"autotracking": "Autospårning",
"transcription": "Ljudtranskription"
},
"effectiveRetainMode": {
"modes": {
@ -162,5 +163,9 @@
},
"history": {
"label": "Visa historiskt videomaterial"
},
"transcription": {
"enable": "Aktivera live-ljudtranskription",
"disable": "Inaktivera live-ljudtranskription"
}
}

View File

@ -88,8 +88,43 @@
"error": "Misslyckades med att starta omindexering: {{errorMessage}}"
},
"modelSize": {
"label": "Modellstorlek"
"label": "Modellstorlek",
"desc": "Storleken på modellen som används för semantiska sökinbäddningar.",
"small": {
"title": "små",
"desc": "Att använda <em>small</em> använder en kvantiserad version av modellen som använder mindre RAM och körs snabbare på CPU med en mycket försumbar skillnad i inbäddningskvalitet."
},
"large": {
"title": "stor",
"desc": "Att använda <em>large</em> använder hela Jina-modellen och körs automatiskt på GPU:n om tillämpligt."
}
}
},
"faceRecognition": {
"desc": "Ansiktsigenkänning gör att personer kan tilldelas namn och när deras ansikte känns igen kommer Frigate att tilldela personens namn som en underetikett. Denna information finns i användargränssnittet, filter och i aviseringar.",
"readTheDocumentation": "Läs dokumentationen",
"modelSize": {
"label": "Modellstorlek",
"desc": "Storleken på modellen som används för ansiktsigenkänning.",
"small": {
"title": "små",
"desc": "Att använda <em>small</em> använder en FaceNet-modell för ansiktsinbäddning som körs effektivt på de flesta processorer."
},
"large": {
"title": "stor",
"desc": "Att använda <em>large</em> använder en ArcFace-modell för ansiktsinbäddning och körs automatiskt på GPU:n om tillämpligt."
}
},
"title": "Ansikts igenkänning"
},
"licensePlateRecognition": {
"title": "Nummerplåt Erkännande",
"desc": "Frigate kan känna igen nummerplåt på fordon och automatiskt lägga till de upptäckta tecknen i fältet recognized_license_plate eller ett känt namn som en underetikett till objekt av typen bil. Ett vanligt användningsfall kan vara att läsa nummerplåtor på bilar som kör in på en uppfart eller bilar som passerar på en gata.",
"readTheDocumentation": "Läs dokumentationen"
},
"restart_required": "Omstart krävs (berikningsinställningar har ändrats)",
"toast": {
"success": "Inställningarna för berikning har sparats. Starta om Frigate för att tillämpa dina ändringar."
}
},
"menu": {

View File

@ -52,7 +52,11 @@
"gpuDecoder": "GPU-avkodare",
"gpuInfo": {
"nvidiaSMIOutput": {
"vbios": "VBios-information: {{vbios}}"
"vbios": "VBios-information: {{vbios}}",
"title": "Nvidia SMI utdata",
"name": "Namn: {{name}}",
"driver": "Drivrutin: {{driver}}",
"cudaComputerCapability": "CUDA beräknings kapacitet: {{cuda_compute}}"
},
"closeInfo": {
"label": "Stäng GPU-info"
@ -62,6 +66,12 @@
},
"toast": {
"success": "Kopierade GPU-info till urklipp"
},
"vainfoOutput": {
"title": "Vainfo resultat",
"returnCode": "Returkod: {{code}}",
"processOutput": "Bearbeta utdata:",
"processError": "Processfel:"
}
},
"npuUsage": "NPU-användning",
@ -81,22 +91,46 @@
"unused": {
"title": "Oanvänt",
"tips": "Det här värdet kanske inte korrekt representerar det lediga utrymmet tillgängligt för Frigate om du har andra filer lagrade på din hårddisk utöver Frigates inspelningar. Frigate spårar inte lagringsanvändning utanför sina egna inspelningar."
}
},
"title": "Kamera lagring",
"camera": "Kamera",
"unusedStorageInformation": "Information om oanvänd lagring"
},
"title": "Lagring",
"overview": "Översikt",
"recordings": {
"title": "Inspelningar"
"title": "Inspelningar",
"tips": "Detta värde representerar den totala lagringsmängden som används av inspelningarna i Frigates databas. Frigate spårar inte lagringsanvändningen för alla filer på din disk.",
"earliestRecording": "Tidigast tillgängliga inspelning:"
}
},
"cameras": {
"title": "Kameror",
"overview": "Översikt",
"info": {
"aspectRatio": "bildförhållande"
"aspectRatio": "bildförhållande",
"cameraProbeInfo": "{{camera}} Kamerasondinformation",
"streamDataFromFFPROBE": "Strömdata erhålls med <code>ffprobe</code>.",
"codec": "Codec:",
"resolution": "Upplösning:",
"fps": "FPS:",
"unknown": "Okänd",
"audio": "Audio:",
"error": "Fel: {{error}}",
"tips": {
"title": "Kamera sond information"
},
"fetching": "Hämtar kamera data",
"stream": "Ström {{idx}}",
"video": "Video:"
},
"label": {
"detect": "detektera"
}
"detect": "detektera",
"camera": "kamera",
"skipped": "hoppade över",
"ffmpeg": "FFmpeg",
"capture": "spela in"
},
"framesAndDetections": "Ramar / Detektioner"
}
}

View File

@ -246,5 +246,6 @@
"feet": "ฟุต",
"meters": "เมตร"
}
}
},
"readTheDocumentation": "อ่านเอกสาร"
}

View File

@ -272,5 +272,6 @@
"viewer": "Görüntüleyici",
"admin": "Yönetici",
"desc": "Yöneticiler Frigate arayüzündeki bütün özelliklere tam erişim sahibidir. Görüntüleyiciler ise yalnızca kameraları, eski görüntüleri ve inceleme öğelerini görüntülemekle sınırlıdır."
}
},
"readTheDocumentation": "Dökümantasyonu oku"
}

View File

@ -270,5 +270,6 @@
"desc": "Сторінка не знайдена",
"title": "404"
},
"selectItem": "Вибрати {{item}}"
"selectItem": "Вибрати {{item}}",
"readTheDocumentation": "Прочитати документацію"
}

View File

@ -129,7 +129,12 @@
"tips": "Це значення відображає загальний обсяг пам’яті, що використовується записами в базі даних Frigate. Frigate не відстежує використання пам’яті для всіх файлів на вашому диску.",
"earliestRecording": "Найдавніший доступний запис:"
},
"title": "Зберігання"
"title": "Зберігання",
"shm": {
"title": "Розподіл спільної пам'яті (SHM)",
"warning": "Поточний розмір SHM, що становить {{total}} МБ, замалий. Збільште його принаймні до {{min_shm}} МБ.",
"readTheDocumentation": "Прочитайте документацію"
}
},
"lastRefreshed": "Останнє оновлення: ",
"stats": {

View File

@ -34,5 +34,6 @@
"month_other": "{{time}} مہینے",
"hour_one": "{{time}} گھنٹہ",
"hour_other": "{{time}} گھنٹے"
}
},
"readTheDocumentation": "دستاویز پڑھیں"
}

View File

@ -121,7 +121,15 @@
},
"yue": "粵語 (Tiếng Quảng Đông)",
"ca": "Català (Tiếng Catalan)",
"th": "ไทย (Tiếng Thái)"
"th": "ไทย (Tiếng Thái)",
"ptBR": "Português brasileiro (Brazilian Portuguese)",
"sr": "Српски (Serbian)",
"sl": "Slovenščina (Slovenian)",
"lt": "Lietuvių (Lithuanian)",
"bg": "Български (Bulgarian)",
"gl": "Galego (Galician)",
"id": "Bahasa Indonesia (Indonesian)",
"ur": "اردو (Urdu)"
},
"system": "Hệ thống",
"systemMetrics": "Thông số hệ thống",
@ -257,5 +265,6 @@
"title": "Không tìm thấy",
"desc": "Trang bạn đang tìm không tồn tại"
},
"selectItem": "Chọn mục {{item}}"
"selectItem": "Chọn mục {{item}}",
"readTheDocumentation": "Đọc tài liệu"
}

View File

@ -108,5 +108,12 @@
"placeholder": "Nhập tên cho tìm kiếm của bạn",
"overwrite": "{{searchName}} đã tồn tại. Lưu sẽ ghi đè lên giá trị hiện có."
}
},
"imagePicker": {
"selectImage": "Chọn hình thu nhỏ của đối tượng cần theo dõi",
"search": {
"placeholder": "Tìm theo nhãn hoặc nhãn phụ..."
},
"noImages": "Không tìm thấy hình thu nhỏ cho camera này"
}
}

View File

@ -122,5 +122,13 @@
"title": "Tất cả Khu vực",
"short": "Khu vực"
}
},
"classes": {
"label": "Các nhãn nhận diện",
"all": {
"title": "Tất cả nhãn nhận diện"
},
"count_one": "{{count}} Nhãn nhận diện",
"count_other": "{{count}} Các nhãn nhận diện"
}
}

View File

@ -12,5 +12,7 @@
}
},
"configEditor": "Trình chỉnh sửa cấu hình",
"documentTitle": "Trình chỉnh sửa - Frigate"
"documentTitle": "Trình chỉnh sửa - Frigate",
"safeConfigEditor": "Chỉnh sửa cấu hình (Chế độ an toàn)",
"safeModeDescription": "Frigate đang ở chế độ an toàn do lỗi kiểm tra cấu hình."
}

View File

@ -34,5 +34,7 @@
"button": "Các mục mới cần xem xét"
},
"markAsReviewed": "Đánh dấu là đã xem xét",
"markTheseItemsAsReviewed": "Đánh dấu các mục này là đã xem xét"
"markTheseItemsAsReviewed": "Đánh dấu các mục này là đã xem xét",
"suspiciousActivity": "Hoạt động đáng ngờ",
"threateningActivity": "Hoạt động đe dọa"
}

View File

@ -60,12 +60,14 @@
"error": {
"updatedSublabelFailed": "Không thể cập nhật nhãn phụ: {{errorMessage}}",
"updatedLPRFailed": "Không thể cập nhật biển số xe: {{errorMessage}}",
"regenerate": "Không thể gọi {{provider}} để lấy mô tả mới: {{errorMessage}}"
"regenerate": "Không thể gọi {{provider}} để lấy mô tả mới: {{errorMessage}}",
"audioTranscription": "Không thể yêu cầu phiên âm: {{errorMessage}}"
},
"success": {
"regenerate": "Một mô tả mới đã được yêu cầu từ {{provider}}. Tùy thuộc vào tốc độ của nhà cung cấp của bạn, mô tả mới có thể mất một chút thời gian để tạo lại.",
"updatedLPR": "Cập nhật biển số xe thành công.",
"updatedSublabel": "Cập nhật nhãn phụ thành công."
"updatedSublabel": "Cập nhật nhãn phụ thành công.",
"audioTranscription": "Đã yêu cầu phiên âm thành công."
}
},
"tips": {
@ -115,6 +117,9 @@
"title": "Chỉnh sửa biển số xe",
"desc": "Nhập một giá trị biển số xe mới cho {{label}} này",
"descNoLabel": "Nhập một giá trị biển số xe mới cho đối tượng được theo dõi này"
},
"score": {
"label": "Điểm tin cậy"
}
},
"itemMenu": {
@ -144,6 +149,14 @@
},
"deleteTrackedObject": {
"label": "Xóa đối tượng được theo dõi này"
},
"addTrigger": {
"label": "Thêm sự kiện kích hoạt",
"aria": "Thêm sự kiện kích hoạt cho đối tượng này."
},
"audioTranscription": {
"label": "Phiên âm",
"aria": "Yêu cầu phiên âm"
}
},
"exploreIsUnavailable": {
@ -201,5 +214,11 @@
"fetchingTrackedObjectsFailed": "Lỗi khi tìm nạp các đối tượng được theo dõi: {{errorMessage}}",
"documentTitle": "Khám phá - Frigate",
"generativeAI": "AI Tạo sinh",
"trackedObjectsCount_other": "{{count}} đối tượng được theo dõi "
"trackedObjectsCount_other": "{{count}} đối tượng được theo dõi ",
"aiAnalysis": {
"title": "Phân tích bằng AI"
},
"concerns": {
"label": "Mối lo ngại"
}
}

View File

@ -71,7 +71,15 @@
"label": "Di chuyển camera PTZ sang phải"
}
},
"presets": "Các thiết lập sẵn cho camera PTZ"
"presets": "Các thiết lập sẵn cho camera PTZ",
"focus": {
"in": {
"label": "Lấy nét gần (camera PTZ)"
},
"out": {
"label": "Lấy nét xa (camera PTZ)"
}
}
},
"manualRecording": {
"playInBackground": {
@ -142,7 +150,8 @@
"recording": "Ghi hình",
"snapshots": "Ảnh chụp",
"audioDetection": "Phát hiện âm thanh",
"autotracking": "Tự động theo dõi"
"autotracking": "Tự động theo dõi",
"transcription": "Phiên âm"
},
"history": {
"label": "Hiện cảnh quay lịch sử"
@ -154,5 +163,9 @@
"active_objects": "Đối tượng hoạt động"
},
"notAllTips": "Cấu hình giữ lại ghi hình {{source}} của bạn được đặt là <code>mode: {{effectiveRetainMode}}</code>, vì vậy lần ghi hình theo yêu cầu này chỉ giữ lại các đoạn có {{effectiveRetainModeName}}."
},
"transcription": {
"enable": "Bật phiên âm trực tiếp",
"disable": "Tắt phiên âm trực tiếp"
}
}

View File

@ -142,6 +142,43 @@
"streams": {
"title": "Luồng phát",
"desc": "Tạm thời vô hiệu hóa một camera cho đến khi Frigate khởi động lại. Vô hiệu hóa một camera sẽ dừng hoàn toàn quá trình xử lý các luồng của camera này của Frigate. Việc phát hiện, ghi hình và gỡ lỗi sẽ không khả dụng.<br /> <em>Lưu ý: Điều này không vô hiệu hóa các luồng phát lại của go2rtc.</em>"
},
"object_descriptions": {
"title": "Mô tả đối tượng bằng AI tạo sinh",
"desc": "Tạm thời bật/tắt mô tả đối tượng bằng AI tạo sinh cho camera này. Khi tắt, mô tả do AI tạo sinh sẽ không được yêu cầu cho các đối tượng được theo dõi trên camera này."
},
"review_descriptions": {
"title": "Mô tả đánh giá bằng AI tạo sinh",
"desc": "Tạm thời bật/tắt mô tả xem lại bằng AI tạo sinh cho camera này. Khi tắt, mô tả do AI tạo sinh sẽ không được yêu cầu cho các mục xem lại trên camera này."
},
"addCamera": "Thêm Camera mới",
"editCamera": "Chỉnh sửa Camera:",
"selectCamera": "Chọn Camera",
"backToSettings": "Quay lại cài đặt Camera",
"cameraConfig": {
"add": "Thêm Camera",
"edit": "Chỉnh sửa Camera",
"description": "Cấu hình Camera, bao gồm luồng đầu vào và vai trò.",
"name": "Tên Camera",
"nameRequired": "Yêu cầu nhập tên Camera",
"nameInvalid": "Tên Camera chỉ được chứa chữ cái, số, dấu gạch dưới hoặc dấu gạch ngang",
"namePlaceholder": "Ví dụ: front_door",
"enabled": "Bật",
"ffmpeg": {
"inputs": "Luồng đầu vào",
"path": "Đường dẫn luồng",
"pathRequired": "Yêu cầu nhập đường dẫn luồng",
"pathPlaceholder": "rtsp://...",
"roles": "Vai trò",
"rolesRequired": "Cần ít nhất một vai trò",
"rolesUnique": "Mỗi vai trò (âm thanh, phát hiện, ghi hình) chỉ có thể được gán cho một luồng duy nhất",
"addInput": "Thêm luồng đầu vào",
"removeInput": "Xóa luồng đầu vào",
"inputsRequired": "Cần ít nhất một luồng đầu vào"
},
"toast": {
"success": "Camera {{cameraName}} đã được lưu thành công"
}
}
},
"masksAndZones": {
@ -381,6 +418,11 @@
"desc": "Hiển thị các hộp xung quanh các khu vực phát hiện có chuyển động",
"tips": "<p><strong>Hộp chuyển động</strong></p><br><p>Các hộp màu đỏ sẽ được chồng lên các khu vực của khung hình nơi chuyển động đang được phát hiện</p>",
"title": "Hộp chuyển động"
},
"paths": {
"title": "Đường dẫn",
"desc": "Hiển thị các điểm quan trọng trên đường đi của đối tượng được theo dõi",
"tips": "<p><strong>Đường đi</strong></p><br><p>Đường thẳng và vòng tròn sẽ hiển thị các điểm quan trọng mà đối tượng được theo dõi đã di chuyển trong suốt quá trình theo dõi.</p>"
}
},
"users": {
@ -612,5 +654,11 @@
"cameraSetting": {
"camera": "Camera",
"noCamera": "Không có Camera"
},
"triggers": {
"documentTitle": "Sự kiện kích hoạt",
"management": {
"title": "Quản lý sự kiện kích hoạt"
}
}
}

View File

@ -248,5 +248,6 @@
"documentTitle": "找不到頁面 - Frigate",
"desc": "找不到頁面",
"title": "404"
}
},
"readTheDocumentation": "閱讀文件"
}

View File

@ -265,5 +265,6 @@
"title": "404",
"desc": "页面未找到"
},
"selectItem": "选择 {{item}}"
"selectItem": "选择 {{item}}",
"readTheDocumentation": "阅读文档"
}

View File

@ -35,5 +35,7 @@
"selected": "已选择 {{count}} 个",
"selected_one": "已选择 {{count}} 个",
"selected_other": "已选择 {{count}} 个",
"detected": "已检测"
"detected": "已检测",
"suspiciousActivity": "可疑活动",
"threateningActivity": "威胁性活动"
}

View File

@ -154,6 +154,9 @@
"recognizedLicensePlate": "识别的车牌",
"snapshotScore": {
"label": "快照得分"
},
"score": {
"label": "分值"
}
},
"itemMenu": {
@ -211,5 +214,8 @@
},
"tooltip": "与 {{type}} 匹配度为 {{confidence}}%"
},
"exploreMore": "浏览更多的 {{label}}"
"exploreMore": "浏览更多的 {{label}}",
"aiAnalysis": {
"title": "AI分析"
}
}

View File

@ -39,5 +39,25 @@
"whoop": "大叫",
"whispering": "講話",
"laughter": "笑聲",
"snicker": "竊笑"
"snicker": "竊笑",
"child_singing": "小孩歌聲",
"synthetic_singing": "合成音樂聲",
"rapping": "饒舌聲",
"humming": "哼歌聲",
"groan": "呻吟聲",
"grunt": "咕噥聲",
"whistling": "口哨聲",
"breathing": "呼吸聲",
"wheeze": "喘息聲",
"snoring": "打呼聲",
"gasp": "倒抽一口氣",
"pant": "喘氣聲",
"snort": "鼻息聲",
"cough": "咳嗽聲",
"throat_clearing": "清喉嚨聲",
"sneeze": "打噴嚏聲",
"sniff": "嗅聞聲",
"run": "跑步聲",
"shuffle": "拖著腳走路聲",
"footsteps": "腳步聲"
}

View File

@ -247,5 +247,6 @@
"title": "404",
"desc": "找不到頁面"
},
"selectItem": "選擇 {{item}}"
"selectItem": "選擇 {{item}}",
"readTheDocumentation": "閱讀文件"
}

View File

@ -122,5 +122,13 @@
"placeholder": "輸入以搜尋車牌…",
"noLicensePlatesFound": "未找到車牌。",
"selectPlatesFromList": "從列表中選擇一個或多個車牌。"
},
"classes": {
"label": "類別",
"all": {
"title": "所有類別"
},
"count_one": "{{count}} 個類別",
"count_other": "{{count}} 個類別"
}
}

View File

@ -12,5 +12,7 @@
}
},
"saveOnly": "僅保存",
"confirm": "是否不保存就離開?"
"confirm": "是否不保存就離開?",
"safeConfigEditor": "設定編輯器(安全模式)",
"safeModeDescription": "由於設定驗證有誤Frigate 進入安全模式。"
}

View File

@ -34,5 +34,7 @@
"selected_one": "已選擇 {{count}} 個",
"selected_other": "已選擇 {{count}} 個",
"camera": "鏡頭",
"detected": "已偵測"
"detected": "已偵測",
"suspiciousActivity": "可疑的活動",
"threateningActivity": "有威脅性的活動"
}

View File

@ -39,7 +39,15 @@
"label": "點擊畫面以置中 PTZ 鏡頭"
}
},
"presets": "PTZ 鏡頭預設"
"presets": "PTZ 鏡頭預設",
"focus": {
"in": {
"label": "聚焦 PTZ 鏡頭"
},
"out": {
"label": "離焦 PTZ 鏡頭"
}
}
},
"cameraAudio": {
"enable": "啟用鏡頭音訊",
@ -154,5 +162,9 @@
"label": "編輯鏡頭群組"
},
"exitEdit": "結束編輯"
},
"transcription": {
"enable": "啟用即時語音轉錄",
"disable": "停用即時語音轉錄"
}
}

View File

@ -39,7 +39,51 @@
"automaticLiveView": {
"label": "自動即時檢視",
"desc": "在偵測到移動時自動切換至即時影像。停用此設定將使得在即時監控面板上的靜態畫面每分鐘更新一次。"
},
"playAlertVideos": {
"label": "播放警報影片",
"desc": "最近的警報影片預設會在即時監控面板中連續循環播放。取消這個選項,可以只顯示靜態的最近警報擷圖(僅套用於該裝置/瀏覽器)。"
}
},
"storedLayouts": {
"title": "儲存的排版",
"desc": "在鏡頭群組內的鏡頭排版可以拖拉或縮放調整。這個排版設定儲存於目前瀏覽器的本機儲存空間。",
"clearAll": "清除所有排版"
},
"cameraGroupStreaming": {
"title": "鏡頭群組串流播放設定",
"desc": "每個鏡頭群組的串流播放設定都儲存在目前瀏覽器的本機儲存空間。",
"clearAll": "清除所有串流播放設定"
},
"recordingsViewer": {
"title": "錄影檢視器",
"defaultPlaybackRate": {
"label": "預設播放速度",
"desc": "錄影回放的預設播放速度。"
}
},
"calendar": {
"title": "月曆",
"firstWeekday": {
"label": "第一個工作天",
"desc": "在檢視月曆中,每個禮拜從禮拜幾開始。",
"sunday": "禮拜天",
"monday": "禮拜一"
}
},
"toast": {
"success": {
"clearStoredLayout": "清除 {{cameraName}} 儲存的排版",
"clearStreamingSettings": "清除所有鏡頭群組的串流播放設定。"
},
"error": {
"clearStoredLayoutFailed": "清除儲存的排版設定失敗: {{errorMessage}}",
"clearStreamingSettingsFailed": "清除串流播放設定失敗: {{errorMessage}}"
}
}
},
"enrichments": {
"title": "強化設定",
"unsavedChanges": "尚未儲存的強化設定變更"
}
}

View File

@ -187,9 +187,7 @@ export function AnnotationSettingsPane({
rel="noopener noreferrer"
className="inline"
>
{t(
"objectLifecycle.annotationSettings.offset.documentation",
)}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -161,7 +161,7 @@ export default function CreateFaceWizardDialog({
rel="noopener noreferrer"
className="inline"
>
{t("readTheDocs")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -228,9 +228,7 @@ export function CameraStreamingDialog({
rel="noopener noreferrer"
className="inline"
>
{t("streaming.restreaming.desc.readTheDocumentation", {
ns: "components/dialog",
})}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -289,7 +287,7 @@ export function CameraStreamingDialog({
rel="noopener noreferrer"
className="inline"
>
{t("group.camera.setting.audio.tips.document")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -257,7 +257,7 @@ export default function MotionMaskEditPane({
rel="noopener noreferrer"
className="inline"
>
{t("masksAndZones.motionMasks.context.documentation")}{" "}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -303,7 +303,7 @@ export default function MotionMaskEditPane({
rel="noopener noreferrer"
className="my-3 block"
>
{t("masksAndZones.motionMasks.polygonAreaTooLarge.documentation")}{" "}
{t("readTheDocumentation", { ns: "common" })}{" "}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -687,7 +687,7 @@ export default function ZoneEditPane({
rel="noopener noreferrer"
className="inline"
>
{t("masksAndZones.zones.speedEstimation.docs")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -482,9 +482,7 @@ export default function Explore() {
rel="noopener noreferrer"
className="inline"
>
{t(
"exploreIsUnavailable.downloadingModels.tips.documentation",
)}{" "}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -79,6 +79,7 @@ export type StorageStats = {
total: number;
used: number;
mount_type: string;
min_shm?: number;
};
export type PotentialProblem = {

View File

@ -1379,12 +1379,7 @@ function FrigateCameraFeatures({
rel="noopener noreferrer"
className="inline"
>
{t(
"streaming.restreaming.desc.readTheDocumentation",
{
ns: "components/dialog",
},
)}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -1457,7 +1452,9 @@ function FrigateCameraFeatures({
rel="noopener noreferrer"
className="inline"
>
{t("stream.audio.tips.documentation")}
{t("readTheDocumentation", {
ns: "common",
})}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -1500,9 +1497,9 @@ function FrigateCameraFeatures({
rel="noopener noreferrer"
className="inline"
>
{t(
"stream.twoWayTalk.tips.documentation",
)}
{t("readTheDocumentation", {
ns: "common",
})}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -1717,9 +1714,7 @@ function FrigateCameraFeatures({
rel="noopener noreferrer"
className="inline"
>
{t("streaming.restreaming.desc.readTheDocumentation", {
ns: "components/dialog",
})}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -1788,7 +1783,7 @@ function FrigateCameraFeatures({
rel="noopener noreferrer"
className="inline"
>
{t("stream.audio.tips.documentation")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -1831,7 +1826,7 @@ function FrigateCameraFeatures({
rel="noopener noreferrer"
className="inline"
>
{t("stream.twoWayTalk.tips.documentation")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -508,9 +508,7 @@ export default function CameraSettingsView({
rel="noopener noreferrer"
className="inline"
>
<Trans ns="views/settings">
camera.reviewClassification.readTheDocumentation
</Trans>{" "}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -263,7 +263,7 @@ export default function EnrichmentsSettingsView({
rel="noopener noreferrer"
className="inline"
>
{t("enrichments.semanticSearch.readTheDocumentation")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -409,7 +409,7 @@ export default function EnrichmentsSettingsView({
rel="noopener noreferrer"
className="inline"
>
{t("enrichments.faceRecognition.readTheDocumentation")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -512,9 +512,7 @@ export default function EnrichmentsSettingsView({
rel="noopener noreferrer"
className="inline"
>
{t(
"enrichments.licensePlateRecognition.readTheDocumentation",
)}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -558,7 +556,7 @@ export default function EnrichmentsSettingsView({
rel="noopener noreferrer"
className="inline"
>
{t("enrichments.semanticSearch.readTheDocumentation")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -458,7 +458,7 @@ export default function FrigatePlusSettingsView({
rel="noopener noreferrer"
className="inline"
>
{t("frigatePlus.snapshotConfig.documentation")}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -506,7 +506,7 @@ export default function MasksAndZonesView({
rel="noopener noreferrer"
className="inline"
>
{t("masksAndZones.zones.desc.documentation")}{" "}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -574,9 +574,7 @@ export default function MasksAndZonesView({
rel="noopener noreferrer"
className="inline"
>
{t(
"masksAndZones.motionMasks.desc.documentation",
)}{" "}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -646,9 +644,7 @@ export default function MasksAndZonesView({
rel="noopener noreferrer"
className="inline"
>
{t(
"masksAndZones.objectMasks.desc.documentation",
)}{" "}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -205,7 +205,7 @@ export default function MotionTunerView({
rel="noopener noreferrer"
className="inline"
>
{t("motionDetectionTuner.desc.documentation")}{" "}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

View File

@ -341,7 +341,7 @@ export default function NotificationView({
rel="noopener noreferrer"
className="inline"
>
{t("notification.notificationSettings.documentation")}{" "}
{t("readTheDocumentation", { ns: "common" })}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -363,7 +363,7 @@ export default function NotificationView({
rel="noopener noreferrer"
className="inline"
>
{t("notification.notificationUnavailable.documentation")}{" "}
{t("readTheDocumentation", { ns: "common" })}{" "}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>
@ -396,7 +396,7 @@ export default function NotificationView({
rel="noopener noreferrer"
className="inline"
>
{t("notification.notificationSettings.documentation")}{" "}
{t("readTheDocumentation", { ns: "common" })}{" "}
<LuExternalLink className="ml-2 inline-flex size-3" />
</Link>
</div>

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