diff --git a/web/public/locales/ca/common.json b/web/public/locales/ca/common.json
index f089d62eb7..219c044370 100644
--- a/web/public/locales/ca/common.json
+++ b/web/public/locales/ca/common.json
@@ -50,7 +50,8 @@
"id": "Bahasa Indonesia (Indonesi)",
"ur": "اردو (Urdú)",
"hr": "Hrvatski (croat)",
- "bs": "Bosanski (Bosni)"
+ "bs": "Bosanski (Bosni)",
+ "zhHant": "繁體中文 (Xinès Tradicional)"
},
"system": "Sistema",
"systemMetrics": "Mètriques del sistema",
@@ -323,5 +324,8 @@
"internalID": "L'ID intern que Frigate s'utilitza a la configuració i a la base de dades"
},
"no_items": "Sense elements",
- "validation_errors": "Errors de validació"
+ "validation_errors": "Errors de validació",
+ "credentialField": {
+ "savedPlaceholder": "Desat — deixa en blanc per mantenir l'actual"
+ }
}
diff --git a/web/public/locales/ca/components/player.json b/web/public/locales/ca/components/player.json
index 88be512c96..161727946e 100644
--- a/web/public/locales/ca/components/player.json
+++ b/web/public/locales/ca/components/player.json
@@ -48,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "Error al enviar fotograma a Frigate+"
}
- }
+ },
+ "cameraOff": "La càmera està apagada"
}
diff --git a/web/public/locales/ca/config/global.json b/web/public/locales/ca/config/global.json
index f748860668..a929b2bc4a 100644
--- a/web/public/locales/ca/config/global.json
+++ b/web/public/locales/ca/config/global.json
@@ -524,11 +524,11 @@
},
"reindex": {
"label": "Reindexa en iniciar",
- "description": "Activa un reíndex complet d'objectes rastrejats històrics a la base de dades d'incrustacions."
+ "description": "Activa un reindexat complet d'objectes rastrejats històrics a la base de dades d'incrustacions."
},
"model": {
"label": "Model de cerca semàntica o nom del proveïdor GenAI",
- "description": "El model d'incrustació a utilitzar per a la cerca semàntica (per exemple 'jinav1'), o el nom d'un proveïdor de GenAI amb el rol d'incrustació."
+ "description": "El model de vectors a utilitzar per a la cerca semàntica (per exemple 'jinav1'), o el nom d'un proveïdor de GenAI amb el rol de vectors."
},
"model_size": {
"label": "Mida del model",
@@ -808,7 +808,7 @@
},
"model_size": {
"label": "Mida del model",
- "description": "Mida del model a utilitzar per a incrustacions facials (petit/gran); més gran pot requerir GPU."
+ "description": "Mida del model a utilitzar per als vectors facials (petit/gran); més gran pot requerir GPU."
},
"unknown_score": {
"label": "Llindar de puntuació desconegut",
diff --git a/web/public/locales/ca/config/validation.json b/web/public/locales/ca/config/validation.json
index bcf1093c17..b087d5a892 100644
--- a/web/public/locales/ca/config/validation.json
+++ b/web/public/locales/ca/config/validation.json
@@ -28,5 +28,8 @@
"detectRequired": "Almenys un flux d'entrada ha de tenir assignat el rol «detecta».",
"hwaccelDetectOnly": "Només el flux d'entrada amb el rol detect pot definir arguments d'acceleració del maquinari."
}
+ },
+ "detect": {
+ "dimensionMustBeEven": "Ha de ser un nombre parell."
}
}
diff --git a/web/public/locales/ca/views/chat.json b/web/public/locales/ca/views/chat.json
index 27a2cce825..cb618cebc4 100644
--- a/web/public/locales/ca/views/chat.json
+++ b/web/public/locales/ca/views/chat.json
@@ -65,5 +65,8 @@
"active": "Raonant…",
"show": "Mostra el raonament",
"hide": "Amaga el raonament"
+ },
+ "thinking": {
+ "toggle": "Commuta el pensament"
}
}
diff --git a/web/public/locales/ca/views/explore.json b/web/public/locales/ca/views/explore.json
index c9a11a0c4b..a6a2844799 100644
--- a/web/public/locales/ca/views/explore.json
+++ b/web/public/locales/ca/views/explore.json
@@ -2,10 +2,10 @@
"exploreIsUnavailable": {
"downloadingModels": {
"tips": {
- "context": "Potser voldreu reindexar les incrustacions dels objectes seguits un cop s'hagin descarregat els models.",
+ "context": "Potser voldreu reindexar els vectors dels objectes seguits un cop s'hagin descarregat els models.",
"documentation": "Llegir la documentació"
},
- "context": "Frigate està descarregant els models d'embeddings necessaris per a donar suport a la funció de cerca semàntica. Això pot trigar diversos minuts, depenent de la velocitat de la teva connexió de xarxa.",
+ "context": "El Frigate està baixant els models de vectors necessaris per a admetre la funció de Cerca Semàntica. Això pot trigar uns quants minuts depenent de la velocitat de la vostra connexió de xarxa.",
"setup": {
"visionModel": "Model de visió",
"visionModelFeatureExtractor": "Extractor de característiques del model de visió",
@@ -248,7 +248,7 @@
"dialog": {
"confirmDelete": {
"title": "Confirmar la supressió",
- "desc": "Suprimir aquest objecte rastrejat elimina la instantània, qualsevol incrustació desada, i qualsevol entrada de detalls de seguiment associada. Les imatges gravades d'aquest objecte seguit en l'historial NO seràn eliminades.
Estas segur que vols continuar?"
+ "desc": "En eliminar aquest objecte detectat, s'esborrarà la instantània, els vectors desats i qualsevol entrada associada als detalls de seguiment d'aquest objecte. El metratge enregistrat d'aquest objecte detectat a la vista de l'Historial NO s'esborrarà.
Segur que voleu continuar?"
},
"toast": {
"error": "S'ha produït un error en suprimir aquest objecte rastrejat: {{errorMessage}}"
@@ -282,7 +282,7 @@
"faceOrLicense_plate": "{{attribute}} detectat per {{label}}",
"other": "{{label}} reconegut com a {{attribute}}"
},
- "gone": "{{label}} esquerra",
+ "gone": "{{label}} ha sortit",
"heard": "{{label}} sentit",
"external": "{{label}} detectat",
"header": {
diff --git a/web/public/locales/ca/views/live.json b/web/public/locales/ca/views/live.json
index 20db54905b..b2f7fda188 100644
--- a/web/public/locales/ca/views/live.json
+++ b/web/public/locales/ca/views/live.json
@@ -58,7 +58,9 @@
},
"camera": {
"enable": "Habilitar la càmera",
- "disable": "Deshabilita la càmera"
+ "disable": "Deshabilita la càmera",
+ "turnOn": "Activa la càmera",
+ "turnOff": "Apaga la càmera"
},
"muteCameras": {
"enable": "Silencia totes les càmeres",
@@ -151,7 +153,8 @@
"autotracking": "Seguiment automàtic",
"objectDetection": "Detecció d'objectes",
"audioDetection": "Detecció d'àudio",
- "transcription": "Transcripció d'audio"
+ "transcription": "Transcripció d'audio",
+ "camera": "Càmera"
},
"history": {
"label": "Mostrar gravacions històriques"
diff --git a/web/public/locales/ca/views/settings.json b/web/public/locales/ca/views/settings.json
index ebd2278fd0..864bd34cf5 100644
--- a/web/public/locales/ca/views/settings.json
+++ b/web/public/locales/ca/views/settings.json
@@ -29,7 +29,7 @@
"frigateplus": "Frigate+",
"enrichments": "Enriquiments",
"triggers": "Disparadors",
- "cameraManagement": "Gestió",
+ "cameraManagement": "Gestió de la càmera",
"cameraReview": "Revisió",
"roles": "Rols",
"general": "General",
@@ -136,7 +136,7 @@
"clearAll": "Esborra tots els paràmetres de transmissió"
},
"recordingsViewer": {
- "title": "Visor d'enregistraments",
+ "title": "Visualitzador d'enregistraments",
"defaultPlaybackRate": {
"label": "Velocitat de reproducció predeterminada",
"desc": "Velocitat de reproducció predeterminada per a la reproducció de gravacions."
@@ -773,22 +773,22 @@
"modelSize": {
"small": {
"title": "petit",
- "desc": "L’opció small fa servir una versió quantitzada del model que consumeix menys RAM i s’executa més ràpidament a la CPU, amb una diferència gairebé inapreciable en la qualitat de les incrustacions (embeddings)."
+ "desc": "Si s'utilitza small, s'empra una versió quantitzada del model que consumeix menys memòria RAM i s'executa més ràpidament a la CPU, amb una diferència inapreciable en la qualitat dels vectors."
},
"label": "Mida del model",
"large": {
"title": "gran",
"desc": "L’opció large fa servir el model complet de Jina i s’executarà automàticament a la GPU si està disponible."
},
- "desc": "La mida del model utilitzat per incrustacions de cerca semàntica."
+ "desc": "La mida del model utilitzat per als vectors de la cerca semàntica."
},
"reindexNow": {
"confirmButton": "Reindexar",
"success": "La reindexació ha començat amb èxit.",
"label": "Reindexar ara",
"confirmTitle": "Confirmar la reindexació",
- "desc": "La reindexació regenerarà les incrustacions per a tots els objectes rastrejats. Aquest procés s'executa en segon pla i pot treure el màxim de la CPU i prendre una quantitat de temps raonable depenent del nombre d'objectes rastrejats que tingueu.",
- "confirmDesc": "Estàs segur que vols reindexar totes les incrustacions (embeddings) dels objectes seguits? Aquest procés s’executarà en segon pla, però pot arribar a saturar la CPU i trigar bastant temps. Pots seguir-ne el progrés a la pàgina d’Explora.",
+ "desc": "La reindexació tornarà a generar els vectors de tots els objectes detectats. Aquest procés s'executa en segon pla, pot posar la CPU al màxim i trigar una bona estona segons el nombre d'objectes detectats que tingueu.",
+ "confirmDesc": "Segur que voleu tornar a indexar els vectors de tots els objectes detectats? Aquest procés s'executa en segon pla, però pot posar la CPU al màxim i trigar una bona estona. En podeu veure el progrés a la pàgina Explora.",
"alreadyInProgress": "La reindexació ja està en curs.",
"error": "Error en iniciar la reindexació: {{errorMessage}}"
},
@@ -1303,13 +1303,13 @@
"selectCamera": "Selecciona una càmera",
"backToSettings": "Torna a la configuració de la càmera",
"streams": {
- "title": "Habilita / Inhabilita les càmeres",
+ "title": "Estat i detalls de la càmera",
"desc": "Inhabilita temporalment una càmera fins que es reiniciï la fragata. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles.
Nota: això no desactiva les retransmissions de go2rtc.",
"enableLabel": "Càmeres habilitades",
"enableDesc": "Inhabilita temporalment una càmera habilitada fins que es reiniciï Frigate. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles.
Nota: això no inhabilita els restreams go2rtc.
Drag el handle per reordenar les càmeres tal com apareixen a la interfície d'usuari. L'ordre de les càmeres habilitades es reflectirà en tota la interfície d'usuari, incloent el tauler en viu i els desplegables de selecció de càmeres.",
"disableLabel": "Càmeres inhabilitades",
"disableDesc": "Habilita una càmera que actualment no és visible a la interfície d'usuari i està desactivada a la configuració. Es requereix un reinici de Frigate després d'activar-la.",
- "enableSuccess": "{{cameraName}} activat a la configuració. Reinicia Frigate per aplicar els canvis.",
+ "enableSuccess": "{{cameraName}} activat. Reinicia la fragata a aplicar.",
"friendlyName": {
"edit": "Edita el nom de la pantalla de la càmera",
"title": "Edita el nom de la pantalla",
@@ -1318,7 +1318,26 @@
},
"reorderHandle": "Arrossega per reordenar",
"saving": "S'està desant…",
- "saved": "Desat"
+ "saved": "Desat",
+ "details": {
+ "edit": "Edita els detalls de la càmera",
+ "title": "Edita els detalls de la càmera",
+ "description": "Actualitzeu el nom de la pantalla i l'URL extern utilitzat per a aquesta càmera a tota la interfície d'usuari de Frigate.",
+ "friendlyNameLabel": "Nom a mostrar",
+ "friendlyNameHelp": "Nom amistós que es mostra per a aquesta càmera a tota la interfície d'usuari de Frigate. Deixeu-ho en blanc per utilitzar l'ID de la càmera.",
+ "webuiUrlLabel": "URL de la interfície web de la càmera",
+ "webuiUrlHelp": "URL per a visitar la interfície d'usuari web de la càmera directament des de la vista de depuració. Deixeu-ho en blanc per desactivar l'enllaç.",
+ "webuiUrlInvalid": "Ha de ser un URL vàlid (p. ex., https://example.com)."
+ },
+ "label": "Estat de la càmera",
+ "description": "Estableix l'estat operatiu de cada càmera.
A: els fluxos es processen normalment.
Off: pausa temporalment el processament. No persisteix a través de reinicis de la fragata.
Inhabilitat: deixa de processar i desa el canvi a la configuració. Es requereix un reinici per a tornar a habilitar una càmera inhabilitada.
Nota: La inhabilitació no afecta els restreams de go2rtc.
Arrossegueu l'ansa per a reordenar les càmeres actives a mesura que apareguin a tota la interfície d'usuari, inclosos els desplegables de selecció de quadres en viu i de càmera.",
+ "disabledSubheading": "Desactivat en la configuració",
+ "status": {
+ "on": "Engegat",
+ "off": "Apagat",
+ "disabled": "Desactivat"
+ },
+ "disableSuccess": "{{cameraName}} desactivat i desat a la configuració."
},
"cameraConfig": {
"add": "Afegeix una càmera",
@@ -1364,10 +1383,12 @@
"profiles": {
"title": "Sobreescriu la càmera de perfil",
"selectLabel": "Seleccioneu el perfil",
- "description": "Configura quines càmeres estan habilitades o desactivades quan s'activa un perfil. Les càmeres establertes a «Inherit» mantenen el seu estat base habilitat.",
+ "description": "Configura quines càmeres estan activades o desactivades quan s'activa un perfil. Les càmeres establertes a «herit» mantenen el seu estat per defecte.",
"inherit": "Hereta",
"enabled": "Habilitat",
- "disabled": "Desactivat"
+ "disabled": "Desactivat",
+ "on": "Engegat",
+ "off": "Apagat"
},
"cameraType": {
"title": "Tipus de càmera",
@@ -1377,7 +1398,7 @@
"saveSuccess": "Tipus de càmera actualitzat per {{cameraName}}. Reinicia la fragata per aplicar els canvis.",
"normal": "Normal"
},
- "description": "Afegiu, editeu i suprimiu les càmeres, controleu quines càmeres estan habilitades, i configureu les superposicions per perfil i tipus de càmera. Per a configurar fluxos, detecció, moviment i altres paràmetres específics de la càmera, trieu la secció específica a Configuració de la càmera."
+ "description": "Afegiu, editeu i suprimiu les càmeres, controleu l'estat de cada càmera, i configureu les superposicions per perfil i tipus de càmera. Per a configurar fluxos, detecció, moviment i altres paràmetres específics de la càmera, trieu la secció específica a Configuració de la càmera."
},
"cameraReview": {
"object_descriptions": {
@@ -1674,7 +1695,7 @@
"searchPlaceholder": "Cerca...",
"genaiRoles": {
"options": {
- "embeddings": "Incrustació",
+ "embeddings": "Vectors",
"vision": "Visió",
"tools": "Eines",
"descriptions": "Descripcions",
@@ -1693,13 +1714,21 @@
},
"addCustomLabel": "Afegeix una etiqueta personalitzada...",
"genaiModel": {
- "placeholder": "Selecciona el model…",
- "search": "Cerca models…",
- "noModels": "No hi ha models disponibles"
+ "placeholder": "Seleccioneu o introduïu un model…",
+ "search": "Cerca o introdueix un model…",
+ "noModels": "No hi ha models disponibles",
+ "available": "Models disponibles",
+ "useCustom": "Utilitza \"{{value}}\"",
+ "refresh": "Actualitza els models",
+ "probeFailed": "No s'han pogut investigar els models",
+ "fetchedModels": "S'ha obtingut correctament la llista de models"
},
"knownPlates": {
"namePlaceholder": "per exemple. Cotxe de la parella",
"platePlaceholder": "Matricula o regex"
+ },
+ "semanticSearchModelSize": {
+ "notApplicable": "No aplicable als proveïdors de GenAI"
}
},
"globalConfig": {
@@ -1899,7 +1928,9 @@
},
"detect": {
"fpsGreaterThanFive": "No es recomana establir el detect FPS superior a 5. Els valors més alts poden causar problemes de rendiment i no proporcionaran cap benefici.",
- "disabled": "La detecció d'objectes està desactivada. Les instantànies, articles de revisió i enriquiments com el reconeixement de rostres, el reconeixement de matrícules i la IA Generativa no funcionaran."
+ "disabled": "La detecció d'objectes està desactivada. Les instantànies, articles de revisió i enriquiments com el reconeixement de rostres, el reconeixement de matrícules i la IA Generativa no funcionaran.",
+ "resolutionShouldBeMultipleOfFour": "Per obtenir els millors resultats, detectar l'amplada i l'alçada han de ser múltiples de 4. Altres valors parells poden produir artefactes visuals o una lleugera distorsió en el flux de detecció.",
+ "aspectRatioMismatch": "L'amplada i alçada que heu introduït no coincideixen amb la relació d'aspecte de la resolució de detecció actual. Això pot produir una imatge estirada o distorsionada."
},
"faceRecognition": {
"globalDisabled": "L'enriquiment del reconeixement facial s'ha d'habilitar perquè les funcions de reconeixement facial funcionin en aquesta càmera.",
@@ -1928,7 +1959,8 @@
"genaiNoDescriptionsProvider": "Heu de configurar un proveïdor de GenAI amb el rol 'descripcions' per a les descripcions que es generaran."
},
"semanticSearch": {
- "jinav2SmallModelSize": "La mida 'petita' amb el model Jina V2 té un alt cost de RAM i d'inferència. Es recomana el model 'gran' amb una GPU discreta."
+ "jinav2SmallModelSize": "La mida 'petita' amb el model Jina V2 té un alt cost de RAM i d'inferència. Es recomana el model 'gran' amb una GPU discreta.",
+ "modelSizeIgnoredForProvider": "La mida del model només s'aplica als models de Jina incorporats. Aquest valor s'ignorarà quan s'utilitzi un proveïdor d'incrustació GenAI."
}
},
"modelSize": {
diff --git a/web/public/locales/ca/views/system.json b/web/public/locales/ca/views/system.json
index 595e7f8f60..70b5ee6fe1 100644
--- a/web/public/locales/ca/views/system.json
+++ b/web/public/locales/ca/views/system.json
@@ -66,10 +66,10 @@
},
"general": {
"detector": {
- "memoryUsage": "Ús de memòria del detector",
+ "memoryUsage": "Ús de la memòria del detector",
"title": "Detectors",
"inferenceSpeed": "Velocitat d'inferència del detector",
- "cpuUsage": "Ús de CPU del detector",
+ "cpuUsage": "Ús de la CPU del detector",
"temperature": "Temperatura del detector",
"cpuUsageInformation": "CPU usada en la preparació d'entrades i sortides desde/cap als models de detecció. Aquest valor no mesura l'utilització d'inferència, encara que usis una GPU o accelerador."
},
@@ -118,11 +118,11 @@
"otherProcesses": {
"title": "Altres processos",
"processMemoryUsage": "Ús de memòria de procés",
- "processCpuUsage": "Ús de la CPU del procés",
+ "processCpuUsage": "Ús de la CPU per procés",
"series": {
"recording": "gravant",
"review_segment": "segment de revisió",
- "embeddings": "incrustacions",
+ "embeddings": "Vectors",
"audio_detector": "detector d'àudio",
"go2rtc": "go2rtc"
}
@@ -220,7 +220,7 @@
},
"lastRefreshed": "Darrera actualització: ",
"stats": {
- "reindexingEmbeddings": "Reindexant incrustacions ({{processed}}% completat)",
+ "reindexingEmbeddings": "Reindexant vectors ({{processed}}% completat)",
"healthy": "El sistema és saludable",
"cameraIsOffline": "{{camera}} està fora de línia",
"ffmpegHighCpuUsage": "{{camera}} te un ús elevat de CPU per FFmpeg ({{ffmpegAvg}}%)",
@@ -234,14 +234,14 @@
"title": "Enriquiments",
"embeddings": {
"face_recognition_speed": "Velocitat de reconeixement facial",
- "image_embedding": "Incrustació d'imatges",
- "text_embedding": "Incrustació de text",
+ "image_embedding": "Vectors d'imatges",
+ "text_embedding": "Vectors de text",
"face_recognition": "Reconeixement de rostres",
"plate_recognition": "Reconeixemnt de matrícules",
- "image_embedding_speed": "Velocitat d'ncrustació d'imatges",
- "face_embedding_speed": "Velocitat d'incrustació de rostres",
+ "image_embedding_speed": "Velocitat de generació de vectors",
+ "face_embedding_speed": "Velocitat de generació de vectors facials",
"plate_recognition_speed": "Velocitat de reconeixement de matrícules",
- "text_embedding_speed": "Velocitat d'incrustació de text",
+ "text_embedding_speed": "Velocitat de generació de vectors de text",
"yolov9_plate_detection": "Detecció de matrícules YOLOv9",
"yolov9_plate_detection_speed": "Velocitat de detecció de matrícules YOLOv9",
"review_description": "Descripció de la revisió",
diff --git a/web/public/locales/de/common.json b/web/public/locales/de/common.json
index c1ed6020b8..5d5f92270f 100644
--- a/web/public/locales/de/common.json
+++ b/web/public/locales/de/common.json
@@ -326,5 +326,8 @@
"separatorWithSpace": ", "
},
"no_items": "Keine Artikel",
- "validation_errors": "Validierungsfehler"
+ "validation_errors": "Validierungsfehler",
+ "credentialField": {
+ "savedPlaceholder": "Gespeichert – leer lassen, um den aktuellen Stand beizubehalten"
+ }
}
diff --git a/web/public/locales/de/config/cameras.json b/web/public/locales/de/config/cameras.json
index 126295932d..6f42be4c62 100644
--- a/web/public/locales/de/config/cameras.json
+++ b/web/public/locales/de/config/cameras.json
@@ -9,7 +9,7 @@
"description": "Aktiviert"
},
"audio": {
- "label": "Audioerkennung",
+ "label": "Audioereignisse",
"description": "Einstellungen für audiobasierte Ereigniserkennung für diese Kamera.",
"enabled": {
"label": "Aktivieren der Audioerkennung",
diff --git a/web/public/locales/de/config/global.json b/web/public/locales/de/config/global.json
index fb319cdecf..b2efcceaee 100644
--- a/web/public/locales/de/config/global.json
+++ b/web/public/locales/de/config/global.json
@@ -8,7 +8,7 @@
"description": "Wenn aktiviert, startet Frigate im abgesicherten Modus mit reduzierten Features für die Fehlersuche."
},
"audio": {
- "label": "Audioerkennung",
+ "label": "Audioereignisse",
"enabled": {
"label": "Aktivieren der Audioerkennung",
"description": "Aktivieren oder deaktivieren Sie die Erkennung von Audioereignissen für alle Kameras; diese Einstellung kann für jede Kamera individuell überschrieben werden."
@@ -1279,6 +1279,41 @@
},
"raw_mask": {
"label": "Rohmaske"
+ },
+ "filters_attribute": {
+ "label": "Attributfilter",
+ "description": "Auf erkannte Attribute angewendete Filter zur Reduzierung von Fehlalarmen (Fläche, Verhältnis, Konfidenz).",
+ "min_area": {
+ "label": "Mindestfläche des Attributs",
+ "description": "Für dieses Attribut erforderliche Mindestfläche des Begrenzungsrahmens (in Pixeln oder Prozent). Kann als Pixelwert (Ganzzahl) oder als Prozentwert (Gleitkommawert zwischen 0,000001 und 0,99) angegeben werden."
+ },
+ "max_area": {
+ "label": "Maximale Attributfläche",
+ "description": "Maximal zulässige Fläche des Begrenzungsrahmens (in Pixeln oder Prozent) für dieses Attribut. Kann als Pixelwert (Ganzzahl) oder als Prozentwert (Gleitkommawert zwischen 0,000001 und 0,99) angegeben werden."
+ },
+ "min_ratio": {
+ "label": "Mindestseitenverhältnis",
+ "description": "Erforderliches Mindestverhältnis von Breite zu Höhe, damit die Begrenzungsbox die Anforderungen erfüllt."
+ },
+ "max_ratio": {
+ "label": "Maximales Seitenverhältnis",
+ "description": "Maximal zulässiges Verhältnis von Breite zu Höhe für die Begrenzungsbox, damit diese die Anforderungen erfüllt."
+ },
+ "threshold": {
+ "label": "Konfidenzschwelle",
+ "description": "Durchschnittlicher Schwellenwert für die Erkennungssicherheit, der erforderlich ist, damit das Merkmal als echtes Positiv gewertet wird."
+ },
+ "min_score": {
+ "label": "Mindestvertrauen",
+ "description": "Mindestwert für die Erkennungssicherheit eines einzelnen Bildes, der erforderlich ist, um dieses Attribut seinem übergeordneten Objekt zuzuordnen."
+ },
+ "mask": {
+ "label": "Filtermaske",
+ "description": "Polygonkoordinaten, die festlegen, wo dieser Filter innerhalb des Bildausschnitts angewendet wird."
+ },
+ "raw_mask": {
+ "label": "Rohmaske"
+ }
}
},
"record": {
diff --git a/web/public/locales/de/config/validation.json b/web/public/locales/de/config/validation.json
index 2bdc76da33..db40fc022c 100644
--- a/web/public/locales/de/config/validation.json
+++ b/web/public/locales/de/config/validation.json
@@ -28,5 +28,8 @@
"detectRequired": "Es muss mindestens ein input stream die Rolle 'erkennen' tragen.",
"hwaccelDetectOnly": "Nur der input-stream mit der Rolle 'erkennen' kann Hardwarebeschleunigungs Argumente definieren."
}
+ },
+ "detect": {
+ "dimensionMustBeEven": "Es muss eine gerade Zahl sein."
}
}
diff --git a/web/public/locales/de/views/chat.json b/web/public/locales/de/views/chat.json
index 7c66676013..9f4dcb7f2d 100644
--- a/web/public/locales/de/views/chat.json
+++ b/web/public/locales/de/views/chat.json
@@ -60,5 +60,13 @@
"stats": {
"context": "{{tokens}} tokens",
"tokens_per_second": "{{rate}} t/s"
+ },
+ "reasoning": {
+ "active": "Begründung…",
+ "show": "Begründung anzeigen",
+ "hide": "Begründung ausblenden"
+ },
+ "thinking": {
+ "toggle": "Umschalten"
}
}
diff --git a/web/public/locales/de/views/settings.json b/web/public/locales/de/views/settings.json
index 5c4028eadf..040a6ea4e4 100644
--- a/web/public/locales/de/views/settings.json
+++ b/web/public/locales/de/views/settings.json
@@ -16,7 +16,8 @@
"globalConfig": "Grundeinstellungen - Frigate",
"cameraConfig": "Kameraeinstellungen - Frigate",
"maintenance": "Wartung - Frigate",
- "profiles": "Profile - Frigate"
+ "profiles": "Profile - Frigate",
+ "detectorsAndModel": "Sensoren und Modell – Frigate"
},
"menu": {
"ui": "Benutzeroberfläche",
@@ -92,7 +93,8 @@
"uiSettings": "Benutzeroberfläche Einstellung",
"profiles": "Profile",
"systemGo2rtcStreams": "go2rtc-streams",
- "maintenance": "Wartung"
+ "maintenance": "Wartung",
+ "systemDetectorsAndModel": "Detektoren und Modell"
},
"dialog": {
"unsavedChanges": {
@@ -825,7 +827,8 @@
"currentModel": "Aktuelles Modell",
"otherModels": "Anderes Modell",
"configuration": "Konfiguration"
- }
+ },
+ "changeInDetectorsAndModel": "Modell wechseln"
},
"enrichments": {
"birdClassification": {
@@ -1365,6 +1368,19 @@
"title": "Anzeigenamen bearbeiten",
"description": "Legen Sie den Anzeigenamen fest, der für diese Kamera in der gesamten Benutzeroberfläche von „Frigate“ angezeigt wird. Lassen Sie das Feld leer, um die Kamera-ID zu verwenden.",
"rename": "Umbenennen"
+ },
+ "reorderHandle": "Zum Neuanordnen ziehen",
+ "saving": "Speichern…",
+ "saved": "gespeichert",
+ "details": {
+ "edit": "Kameradaten bearbeiten",
+ "title": "Kameradaten bearbeiten",
+ "description": "Aktualisieren Sie den Anzeigenamen und die externe URL, die für diese Kamera in der gesamten Frigate-Benutzeroberfläche verwendet werden.",
+ "friendlyNameLabel": "Display Name",
+ "friendlyNameHelp": "Der in der Benutzeroberfläche von „Frigate“ für diese Kamera angezeigte Spitzname. Lassen Sie das Feld leer, um die Kamera-ID zu verwenden.",
+ "webuiUrlLabel": "URL der Web-Benutzeroberfläche",
+ "webuiUrlHelp": "URL, um die Web-Benutzeroberfläche der Kamera direkt aus der Debug-Ansicht aufzurufen. Lassen Sie das Feld leer, um den Link zu deaktivieren.",
+ "webuiUrlInvalid": "Es muss sich um eine gültige URL handeln (z. B. https://example.com)."
}
},
"cameraConfig": {
@@ -1417,8 +1433,8 @@
"disabled": "Deaktiviert"
},
"cameraType": {
- "title": "Kamerytyp",
- "label": "Kameratyp",
+ "title": "Kamera Art",
+ "label": "Kamera Art",
"description": "Legen Sie den Kameratyp für jede Kamera fest. Spezielle LPR-Kameras sind Kameras mit leistungsstarkem optischen Zoom, um Kennzeichen von weit entfernten Fahrzeugen zu erfassen. Für die meisten Kameras sollte der normale Kameratyp verwendet werden, es sei denn, die Kamera ist speziell für LPR vorgesehen und verfügt über einen stark fokussierten Blickwinkel auf die Kennzeichen.",
"normal": "Normal",
"dedicatedLpr": "Spezielles LPR-System",
@@ -1775,7 +1791,15 @@
"genaiModel": {
"placeholder": "Modell auswählen…",
"search": "Modell suchen…",
- "noModels": "Keine Modelle verfügbar"
+ "noModels": "Keine Modelle verfügbar",
+ "available": "Verfügbare Modelle",
+ "useCustom": "Verwende „{{value}}“",
+ "refresh": "Modelle aktualisieren",
+ "probeFailed": "Das Abrufen der Modelle ist fehlgeschlagen",
+ "fetchedModels": "Modellliste erfolgreich abgerufen"
+ },
+ "semanticSearchModelSize": {
+ "notApplicable": "Gilt nicht für GenAI-Anbieter"
}
},
"globalConfig": {
@@ -1809,7 +1833,9 @@
"saveAllSuccess_other": "Alle {{count}} Abschnitte wurden erfolgreich gespeichert.",
"saveAllPartial_one": "{{successCount}} von {{totalCount}} Abschnitt wurden gespeichert. {{failCount}} sind fehlgeschlagen.",
"saveAllPartial_other": "{{successCount}} von {{totalCount}} Abschnitten wurden gespeichert. {{failCount}} sind fehlgeschlagen.",
- "saveAllFailure": "Es konnten nicht alle Abschnitte gespeichert werden."
+ "saveAllFailure": "Es konnten nicht alle Abschnitte gespeichert werden.",
+ "saveAllSuccessRestartRequired_one": "Der Abschnitt {{count}} wurde erfolgreich gespeichert. Starte Frigate neu, um die Änderungen zu übernehmen.",
+ "saveAllSuccessRestartRequired_other": "Alle {{count}} Abschnitte wurden erfolgreich gespeichert. Starte Frigate neu, um die Änderungen zu übernehmen."
},
"profiles": {
"title": "Profile",
@@ -1896,8 +1922,17 @@
"audioMp3": "Transcode zu MP3",
"audioExclude": "Ausschließen",
"hardwareNone": "Keine Hardwarebeschleunigung",
- "hardwareAuto": "Automatische Hardwarebeschleunigung"
- }
+ "hardwareAuto": "Automatische Hardwarebeschleunigung",
+ "hardwareVaapi": "VAAPI",
+ "hardwareCuda": "CUDA",
+ "hardwareV4l2m2m": "V4L2 M2M",
+ "hardwareDxva2": "DXVA2",
+ "hardwareVideotoolbox": "VideoToolbox",
+ "addVideoCodec": "Videocodec hinzufügen",
+ "addAudioCodec": "Audio-Codec hinzufügen",
+ "removeCodec": "Codec entfernen"
+ },
+ "streamNumber": "Stream {{index}}"
},
"onvif": {
"profileAuto": "Auto",
@@ -1925,7 +1960,9 @@
},
"detect": {
"fpsGreaterThanFive": "Es wird nicht empfohlen, den Wert für die FPS-Erkennung auf mehr als 5 zu setzen. Höhere Werte können zu Leistungseinbußen führen und bieten keinerlei Vorteile.",
- "disabled": "Die Objekterkennung ist deaktiviert. Momentaufnahmen, Überprüfungselemente und Erweiterungsfunktionen wie Gesichtserkennung, Kennzeichenerkennung und generative KI funktionieren nicht."
+ "disabled": "Die Objekterkennung ist deaktiviert. Momentaufnahmen, Überprüfungselemente und Erweiterungsfunktionen wie Gesichtserkennung, Kennzeichenerkennung und generative KI funktionieren nicht.",
+ "resolutionShouldBeMultipleOfFour": "Um optimale Ergebnisse zu erzielen, sollten Breite und Höhe ein Vielfaches von 4 sein. Andere gerade Werte können zu visuellen Artefakten oder leichten Verzerrungen im Erkennungsstrom führen.",
+ "aspectRatioMismatch": "Die von Ihnen eingegebene Breite und Höhe stimmen nicht mit dem Seitenverhältnis Ihrer aktuell erkannten Auflösung überein. Dies kann zu einem gestreckten oder verzerrten Bild führen."
},
"faceRecognition": {
"globalDisabled": "Die Gesichtserkennungserweiterung muss aktiviert sein, damit die Gesichtserkennungsfunktionen bei dieser Kamera funktionieren.",
@@ -1962,6 +1999,13 @@
"objects": "Objekte",
"motion": "Bewegung",
"continuous": "Fortlaufend"
+ },
+ "cameraOrder": {
+ "label": "Kamerabestellung",
+ "description": "Ziehe die Kameras per Drag & Drop, um ihre Reihenfolge im Birdseye-Layout festzulegen.",
+ "reorderHandle": "Zum Neuanordnen ziehen",
+ "saving": "Wird gespeichert…",
+ "saved": "gespeichert"
}
},
"retainMode": {
@@ -2011,5 +2055,35 @@
"modelSize": {
"small": "klein",
"large": "groß"
+ },
+ "menuDot": {
+ "overrideGlobal": "Dieser Abschnitt überschreibt die globale Konfiguration",
+ "overrideProfile": "Dieser Abschnitt wird durch das Profil {{profile}} überschrieben",
+ "unsaved": "Dieser Abschnitt enthält ungespeicherte Änderungen"
+ },
+ "detectorsAndModel": {
+ "title": "Detektoren und Modell",
+ "description": "Konfigurieren Sie das Detektor-Backend, das die Objekterkennung ausführt, sowie das dafür verwendete Modell. Änderungen werden gemeinsam gespeichert, sodass Detektor und Modell synchron bleiben.",
+ "cardTitles": {
+ "detector": "Detektor-Hardware",
+ "model": "Erkennungsmodell"
+ },
+ "tabs": {
+ "plus": "Frigate+",
+ "custom": "Benutzerdefiniertes Modell"
+ },
+ "mismatch": {
+ "warning": "Das aktuelle Frigate+-Modell „{{model}}“ erfordert den {{required}}-Detektor. Wählen Sie unten ein kompatibles Modell aus oder wechseln Sie vor dem Speichern zu „Benutzerdefiniertes Modell“."
+ },
+ "plusModel": {
+ "requiresDetector": "Voraussetzung: {{detector}}",
+ "noModelSelected": "Wählen Sie ein Modell der Frigate+ aus"
+ },
+ "toast": {
+ "saveSuccess": "Detektoren und Modelleinstellungen wurden gespeichert. Starten Sie Frigate neu, um die Änderungen zu übernehmen.",
+ "saveError": "Das Speichern der Detektor- und Modelleinstellungen ist fehlgeschlagen"
+ },
+ "unsavedChanges": "Nicht gespeicherte Änderungen an Detektor und Modell",
+ "restartRequired": "Neustart erforderlich (Detektor oder Modell geändert)"
}
}
diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json
index b8b44f2c12..8a4cf34181 100644
--- a/web/public/locales/es/common.json
+++ b/web/public/locales/es/common.json
@@ -333,5 +333,8 @@
"internalID": "La ID interna que usa Frigate en la configuración y en la base de datos"
},
"no_items": "No hay elementos",
- "validation_errors": "Errores de validación"
+ "validation_errors": "Errores de validación",
+ "credentialField": {
+ "savedPlaceholder": "Guardado — déjalo en blanco para mantener el actual"
+ }
}
diff --git a/web/public/locales/es/components/player.json b/web/public/locales/es/components/player.json
index c277d9a5a2..e650046466 100644
--- a/web/public/locales/es/components/player.json
+++ b/web/public/locales/es/components/player.json
@@ -48,5 +48,6 @@
}
},
"livePlayerRequiredIOSVersion": "Se requiere iOS 17.1 o superior para este tipo de transmisión en vivo.",
- "noRecordingsFoundForThisTime": "No se encontraron grabaciones para este momento"
+ "noRecordingsFoundForThisTime": "No se encontraron grabaciones para este momento",
+ "cameraOff": "La cámara está apagada"
}
diff --git a/web/public/locales/es/config/validation.json b/web/public/locales/es/config/validation.json
index b78ae972f3..dc35c3e1bb 100644
--- a/web/public/locales/es/config/validation.json
+++ b/web/public/locales/es/config/validation.json
@@ -28,5 +28,8 @@
"header_map": {
"roleHeaderRequired": "Se requiere el encabezado de rol cuando hay mapeos de roles configurados."
}
+ },
+ "detect": {
+ "dimensionMustBeEven": "Debe ser un número par."
}
}
diff --git a/web/public/locales/es/views/chat.json b/web/public/locales/es/views/chat.json
index 876ee2707d..7fe10c75be 100644
--- a/web/public/locales/es/views/chat.json
+++ b/web/public/locales/es/views/chat.json
@@ -65,5 +65,8 @@
"active": "Razonando…",
"show": "Mostrar razonamiento",
"hide": "Ocultar razonamiento"
+ },
+ "thinking": {
+ "toggle": "Alternar razonamiento"
}
}
diff --git a/web/public/locales/es/views/live.json b/web/public/locales/es/views/live.json
index 2052b3698f..877e3ef63b 100644
--- a/web/public/locales/es/views/live.json
+++ b/web/public/locales/es/views/live.json
@@ -57,7 +57,9 @@
},
"camera": {
"enable": "Habilitar cámara",
- "disable": "Deshabilitar cámara"
+ "disable": "Deshabilitar cámara",
+ "turnOn": "Encender cámara",
+ "turnOff": "Apagar cámara"
},
"muteCameras": {
"enable": "Silenciar todas las cámaras",
@@ -151,7 +153,8 @@
"snapshots": "Capturas de pantalla",
"autotracking": "Seguimiento automático",
"cameraEnabled": "Cámara habilitada",
- "transcription": "Transcripción de Audio"
+ "transcription": "Transcripción de Audio",
+ "camera": "Cámara"
},
"history": {
"label": "Mostrar grabaciones históricas"
diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json
index 7dc10c8a63..223c2184bb 100644
--- a/web/public/locales/es/views/settings.json
+++ b/web/public/locales/es/views/settings.json
@@ -32,7 +32,7 @@
"enrichments": "Análisis avanzado",
"triggers": "Disparadores",
"roles": "Rols",
- "cameraManagement": "Administración",
+ "cameraManagement": "Gestión de cámaras",
"cameraReview": "Revisar",
"general": "General",
"globalConfig": "Configuración Global",
@@ -1281,13 +1281,13 @@
"selectCamera": "Seleccione una cámara",
"backToSettings": "Volver a configuración de la cámara",
"streams": {
- "title": "Habilitar/deshabilitar cámaras",
+ "title": "Estado y detalles de la cámara",
"desc": "Desactiva temporalmente una cámara hasta que Frigate se reinicie. Desactivar una cámara detiene por completo el procesamiento de las transmisiones de Frigate. La detección, la grabación y la depuración no estarán disponibles.
Nota: Esto no desactiva las retransmisiones de go2rtc.",
"enableDesc": "Deshabilita temporalmente una cámara habilitada hasta que Frigate se reinicie. Deshabilitar una cámara detiene completamente el procesamiento de los flujos de esa cámara por parte de Frigate. La detección, la grabación y la depuración no estarán disponibles. Nota: Esto no deshabilita las retransmisiones de go2rtc.Arrastra el controlador para reordenar las cámaras tal y como aparecen en la interfaz. El orden de las cámaras habilitadas se reflejará en toda la interfaz, incluido el panel en directo y los menús desplegables de selección de cámaras.",
"enableLabel": "Cámaras habilitadas",
"disableLabel": "Cámaras deshabilitadas",
"disableDesc": "Habilita una cámara que actualmente no está visible en la interfaz y está deshabilitada en la configuración. Es necesario reiniciar Frigate después de habilitarla.",
- "enableSuccess": "{{cameraName}} se ha habilitado en la configuración. Reinicia Frigate para aplicar los cambios.",
+ "enableSuccess": "{{cameraName}} habilitada. Reinicia Frigate para aplicar los cambios.",
"friendlyName": {
"edit": "Editar nombre visible de la cámara",
"title": "Editar nombre visible",
@@ -1296,7 +1296,26 @@
},
"reorderHandle": "Arrastrar para reordenar",
"saving": "Guardando…",
- "saved": "Guardado"
+ "saved": "Guardado",
+ "details": {
+ "edit": "Editar detalles de la cámara",
+ "title": "Editar detalles de la cámara",
+ "description": "Actualiza el nombre visible y la URL externa usados para esta cámara en toda la interfaz de Frigate.",
+ "friendlyNameLabel": "Nombre visible",
+ "friendlyNameHelp": "Nombre descriptivo que se muestra para esta cámara en toda la interfaz de Frigate. Déjalo en blanco para usar el ID de la cámara.",
+ "webuiUrlLabel": "URL de la interfaz web de la cámara",
+ "webuiUrlHelp": "URL para acceder directamente a la interfaz web de la cámara desde la vista de depuración. Déjala en blanco para deshabilitar el enlace.",
+ "webuiUrlInvalid": "Debe ser una URL válida (p. ej., https://ejemplo.com)."
+ },
+ "label": "Estado de la cámara",
+ "description": "Set the operating state for each camera.
On: las transmisiones se procesan con normalidad.
Off: pausa temporalmente el procesamiento. No persiste tras reinicios de Frigate.
Disabled: detiene el procesamiento y guarda el cambio en tu configuración. Es necesario reiniciar para volver a activar una cámara desactivada.
Note: Desactivar no afecta a las retransmisiones de go2rtc.
Arrastra el asa para reordenar las cámaras activas tal como aparecen en toda la interfaz, incluido el panel de Live y los menús desplegables de selección de cámara.",
+ "disabledSubheading": "Deshabilitado en la configuración",
+ "status": {
+ "on": "On",
+ "off": "Off",
+ "disabled": "Deshabilitado"
+ },
+ "disableSuccess": "{{cameraName}} deshabilitada y guardada en la configuración."
},
"cameraConfig": {
"add": "Añadir cámara",
@@ -1342,10 +1361,12 @@
"profiles": {
"title": "Sobrescrituras de cámaras del perfil",
"selectLabel": "Seleccionar perfil",
- "description": "Configura qué cámaras se habilitan o deshabilitan cuando se activa un perfil. Las cámaras configuradas como \"Heredar\" conservan su estado base habilitado.",
+ "description": "Configura qué cámaras se activan o desactivan cuando se activa un perfil. Las cámaras configuradas como “Heredar” conservan su estado predeterminado.",
"inherit": "Heredar",
"enabled": "Habilitado",
- "disabled": "Deshabilitado"
+ "disabled": "Deshabilitado",
+ "on": "Encendido",
+ "off": "Apagado"
},
"cameraType": {
"title": "Tipo de cámara",
@@ -1355,7 +1376,7 @@
"dedicatedLpr": "LPR dedicada",
"saveSuccess": "Se ha actualizado el tipo de cámara de {{cameraName}}. Reinicia Frigate para aplicar los cambios."
},
- "description": "Añade, edita y elimina cámaras, controla qué cámaras están habilitadas y configura sobrescrituras por perfil y tipo de cámara. Para configurar flujos, detección, movimiento y otros ajustes específicos de cámara, selecciona la sección correspondiente dentro de Configuración de cámara."
+ "description": "Añade, edita y elimina cámaras, controla el estado de cada cámara y configura sobrescrituras por perfil y tipo de cámara. Para configurar flujos, detección, movimiento y otros ajustes específicos de cámara, selecciona la sección correspondiente dentro de Configuración de cámara."
},
"cameraReview": {
"title": "Configuración de revisión de la cámara",
@@ -1502,8 +1523,13 @@
},
"genaiModel": {
"noModels": "No hay modelos disponibles",
- "placeholder": "Seleccionar modelo…",
- "search": "Buscar modelos…"
+ "placeholder": "Selecciona o introduce un modelo…",
+ "search": "Busca o introduce un modelo…",
+ "available": "Modelos disponibles",
+ "useCustom": "Usar “{{value}}”",
+ "refresh": "Actualizar modelos",
+ "probeFailed": "No se pudieron detectar los modelos",
+ "fetchedModels": "La lista de modelos se ha obtenido correctamente"
},
"global": {
"description": "Estos ajustes se aplican a todas las cámaras, a menos que se anulen en los ajustes específicos de cada cámara.",
@@ -1686,7 +1712,10 @@
"title": "Ajustes de marcas de tiempo"
},
"searchPlaceholder": "Buscar...",
- "addCustomLabel": "Añadir etiqueta personalizada..."
+ "addCustomLabel": "Añadir etiqueta personalizada...",
+ "semanticSearchModelSize": {
+ "notApplicable": "No aplicable a proveedores GenAI"
+ }
},
"globalConfig": {
"title": "Configuración global",
@@ -1855,7 +1884,9 @@
},
"detect": {
"fpsGreaterThanFive": "No se recomienda establecer los FPS de detección por encima de 5. Valores más altos pueden causar problemas de rendimiento y no aportarán ningún beneficio.",
- "disabled": "La detección de objetos está deshabilitada. Las instantáneas, los elementos de revisión y enriquecimientos como el reconocimiento facial, el reconocimiento de matrículas y la IA generativa no funcionarán."
+ "disabled": "La detección de objetos está deshabilitada. Las instantáneas, los elementos de revisión y enriquecimientos como el reconocimiento facial, el reconocimiento de matrículas y la IA generativa no funcionarán.",
+ "resolutionShouldBeMultipleOfFour": "Para obtener mejores resultados, la anchura y la altura de detección deberían ser múltiplos de 4. Otros valores pares pueden producir artefactos visuales o una ligera distorsión en el flujo de detección.",
+ "aspectRatioMismatch": "La anchura y la altura que has introducido no coinciden con la relación de aspecto de la resolución de detección actual. Esto puede producir una imagen estirada o distorsionada."
},
"objects": {
"genaiNoDescriptionsProvider": "Debes configurar un proveedor GenAI con el rol 'descriptions' para que se generen descripciones."
@@ -1864,7 +1895,8 @@
"noRecordRole": "Ningún flujo tiene definido el rol de grabación. La grabación no funcionará."
},
"semanticSearch": {
- "jinav2SmallModelSize": "El tamaño 'small' con el modelo Jina V2 tiene un alto consumo de RAM y coste de inferencia. Se recomienda el modelo 'large' con una GPU dedicada."
+ "jinav2SmallModelSize": "El tamaño 'small' con el modelo Jina V2 tiene un alto consumo de RAM y coste de inferencia. Se recomienda el modelo 'large' con una GPU dedicada.",
+ "modelSizeIgnoredForProvider": "El tamaño del modelo solo se aplica a los modelos Jina integrados. Este valor se ignorará al usar un proveedor de embeddings GenAI."
}
},
"resetToDefaultDescription": "Esto restablecerá todos los ajustes de esta sección a sus valores predeterminados. Esta acción no se puede deshacer.",
diff --git a/web/public/locales/et/common.json b/web/public/locales/et/common.json
index 3a6a82008f..1041148881 100644
--- a/web/public/locales/et/common.json
+++ b/web/public/locales/et/common.json
@@ -316,5 +316,8 @@
"pixels": "{{area}} px"
},
"no_items": "Objekte pole",
- "validation_errors": "Valideerimise vead"
+ "validation_errors": "Valideerimise vead",
+ "credentialField": {
+ "savedPlaceholder": "Salvestatud - senise kasutamiseks jäta tühjaks"
+ }
}
diff --git a/web/public/locales/et/components/player.json b/web/public/locales/et/components/player.json
index bbf77830d8..7553e3c6a1 100644
--- a/web/public/locales/et/components/player.json
+++ b/web/public/locales/et/components/player.json
@@ -48,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "Kaadri saatmine Frigate+ teenusesse ei õnnestunud"
}
- }
+ },
+ "cameraOff": "Kaamera on lülitatud välja"
}
diff --git a/web/public/locales/et/config/cameras.json b/web/public/locales/et/config/cameras.json
index 6c2bc5811d..04390d8fb2 100644
--- a/web/public/locales/et/config/cameras.json
+++ b/web/public/locales/et/config/cameras.json
@@ -18,5 +18,6 @@
"mode": {
"label": "Jälgimisrežiim"
}
- }
+ },
+ "label": "Kaameraseadistus"
}
diff --git a/web/public/locales/et/config/global.json b/web/public/locales/et/config/global.json
index ab44041b5c..77ac2aa9fe 100644
--- a/web/public/locales/et/config/global.json
+++ b/web/public/locales/et/config/global.json
@@ -6,5 +6,9 @@
"mode": {
"label": "Jälgimisrežiim"
}
+ },
+ "version": {
+ "label": "Praegune seadistuse versioon",
+ "description": "Aktiivse seadistuse numbriline või tekstiline versioon, mis aitab tuvastada vormingumuudatusi."
}
}
diff --git a/web/public/locales/et/config/validation.json b/web/public/locales/et/config/validation.json
index ce014359a8..c9eb465ed5 100644
--- a/web/public/locales/et/config/validation.json
+++ b/web/public/locales/et/config/validation.json
@@ -28,5 +28,8 @@
"detectRequired": "„Tuvasta“ rollile pead määrama vähemalt ühe sisendvoo.",
"hwaccelDetectOnly": "Vaid „Tuvasta“ rolliga sisendvoog võib määratleda raudvaralise kiirenduse argumente."
}
+ },
+ "detect": {
+ "dimensionMustBeEven": "Peab olema paarisarv."
}
}
diff --git a/web/public/locales/et/views/live.json b/web/public/locales/et/views/live.json
index 27f8ff3fd8..e7f050758b 100644
--- a/web/public/locales/et/views/live.json
+++ b/web/public/locales/et/views/live.json
@@ -12,7 +12,8 @@
"transcription": "Heli üleskirjutus",
"snapshots": "Hetkvõtted",
"autotracking": "Automaatne jälgimine",
- "recording": "Salvestus"
+ "recording": "Salvestus",
+ "camera": "Kaamera"
},
"documentTitle": {
"default": "Frigate reaalajas"
@@ -73,7 +74,9 @@
},
"camera": {
"enable": "Lülita kaamera sisse",
- "disable": "Lülita kaamera välja"
+ "disable": "Lülita kaamera välja",
+ "turnOn": "Lülita kaamera sisse",
+ "turnOff": "Lülita kaamera välja"
},
"detect": {
"enable": "Lülita tuvastamine sisse",
diff --git a/web/public/locales/et/views/motionSearch.json b/web/public/locales/et/views/motionSearch.json
index 0967ef424b..72d1bad347 100644
--- a/web/public/locales/et/views/motionSearch.json
+++ b/web/public/locales/et/views/motionSearch.json
@@ -1 +1,4 @@
-{}
+{
+ "documentTitle": "Liikumise tuvastus - Frigate",
+ "title": "Liikumise otsing"
+}
diff --git a/web/public/locales/et/views/replay.json b/web/public/locales/et/views/replay.json
index 2f80829a43..4ef29cd2b2 100644
--- a/web/public/locales/et/views/replay.json
+++ b/web/public/locales/et/views/replay.json
@@ -13,5 +13,6 @@
"starting": "Käivitan kordust…",
"startLabel": "Algus",
"endLabel": "Lõpp"
- }
+ },
+ "title": "Kordus veaotsinguks"
}
diff --git a/web/public/locales/fr/common.json b/web/public/locales/fr/common.json
index ff940a27d3..d49150bd9d 100644
--- a/web/public/locales/fr/common.json
+++ b/web/public/locales/fr/common.json
@@ -188,7 +188,8 @@
"gl": "Galego (Galicien)",
"id": "Bahasa Indonesia (Indonésien)",
"ur": "اردو (Ourdou)",
- "hr": "Hrvatski (Croate)"
+ "hr": "Hrvatski (Croate)",
+ "bs": "Bosanski (Bosnien)"
},
"appearance": "Apparence",
"darkMode": {
@@ -332,5 +333,8 @@
"separatorWithSpace": ", "
},
"no_items": "Aucun élément",
- "validation_errors": "Erreurs de validation"
+ "validation_errors": "Erreurs de validation",
+ "credentialField": {
+ "savedPlaceholder": "Enregistré — laissez vide pour conserver la version actuelle"
+ }
}
diff --git a/web/public/locales/fr/components/dialog.json b/web/public/locales/fr/components/dialog.json
index 4465dcd449..7e0dda6aa6 100644
--- a/web/public/locales/fr/components/dialog.json
+++ b/web/public/locales/fr/components/dialog.json
@@ -67,7 +67,8 @@
"noVaildTimeSelected": "La plage horaire sélectionnée n'est pas valide."
},
"success": "Exportation démarrée avec succès. Consultez le fichier sur la page des exportations.",
- "view": "Vue"
+ "view": "Vue",
+ "queued": "Exportation en attente. Consultez la progression sur la page des exportations."
},
"select": "Sélectionner",
"name": {
@@ -112,7 +113,7 @@
"title_one": "Export {{count}} revue",
"title_many": "Export {{count}} revues",
"title_other": "Export {{count}} revues",
- "description": "Export chaque revue sélectionnée. Tous les exports sont regroupés sous un cas unique.",
+ "description": "Exporter chaque revue sélectionnée. Tous les exports sont regroupés sous un cas unique.",
"descriptionNoCase": "Exporter chaque revue sélectionnée.",
"caseNamePlaceholder": "Vérification de l'export – {{date}}",
"exportButton_one": "Exporter {{count}} revue",
@@ -120,12 +121,14 @@
"exportButton_other": "Exporter {{count}} revues",
"exportingButton": "Exportation...",
"toast": {
- "started_one": "Un export a démarré. Ouverture du dossier en cours",
- "started_many": "{{count}} exports ont démarré. Ouverture du dossier en cours",
- "started_other": "",
+ "started_one": "Un export a démarré. Ouverture du dossier en cours.",
+ "started_many": "{{count}} exports ont démarré. Ouverture du dossier en cours.",
+ "started_other": "{{count}} exports ont démarré. Ouverture du dossier en cours.",
"startedNoCase_one": "Un export a démarré.",
"startedNoCase_many": "{{count}} exports ont démarré.",
- "startedNoCase_other": "{{count}} exports ont démarré."
+ "startedNoCase_other": "{{count}} exports ont démarré.",
+ "partial": "{{successful}} exportations sur {{total}} lancées. Échecs : {{failedItems}}",
+ "failed": "Échec du démarrage des exports {{total}}. Échec : {{failedItems}}"
}
}
},
diff --git a/web/public/locales/id/audio.json b/web/public/locales/id/audio.json
index c7cb4475a3..b1ea21a628 100644
--- a/web/public/locales/id/audio.json
+++ b/web/public/locales/id/audio.json
@@ -1,98 +1,503 @@
{
- "yell": "Teriakan",
- "speech": "Percakapan",
- "babbling": "Ocehan",
- "bellow": "Di bawah",
- "whoop": "Teriakan",
- "whispering": "Bisikan",
- "snicker": "Tertawa",
+ "yell": "Berteriak",
+ "speech": "Ucapan",
+ "babbling": "Mengoceh (berekah)",
+ "bellow": "Begadang / Meraung",
+ "whoop": "Tertawa lepas (whoop)",
+ "whispering": "Berbisik",
+ "snicker": "Tertawa cekikikan",
"crying": "Menangis",
- "sigh": "Mendesah",
- "choir": "Paduan Suara",
- "yodeling": "Bernyanyi Yodel",
- "chant": "Nyanyian",
+ "sigh": "Menghela napas",
+ "choir": "Paduan suara",
+ "yodeling": "Yodel",
+ "chant": "Berzikir / Menyanyi berulang",
"child_singing": "Anak bernyanyi",
- "rapping": "Mengetuk",
- "humming": "Bersenandung",
- "groan": "Mengerang",
+ "rapping": "Rap",
+ "humming": "Berdengung",
+ "groan": "Menggerung",
"grunt": "Mendengus",
- "breathing": "Bernafas",
+ "breathing": "Bernapas",
"laughter": "Tertawa",
- "singing": "Nyanyian",
+ "singing": "Bernyanyi",
"mantra": "Mantra",
- "synthetic_singing": "Nyanyian sintesis",
- "whistling": "Siulan",
+ "synthetic_singing": "Bernyanyi buatan (sintetis)",
+ "whistling": "Mendengung (mencicit / bersiul)",
"car": "Mobil",
- "motorcycle": "Motor",
+ "motorcycle": "Sepeda motor",
"bicycle": "Sepeda",
- "bus": "Bis",
+ "bus": "Bus",
"train": "Kereta",
- "boat": "Kapal",
+ "boat": "Perahu",
"sneeze": "Bersin",
- "run": "Lari",
+ "run": "Berlari",
"footsteps": "Langkah kaki",
"chewing": "Mengunyah",
"biting": "Menggigit",
- "stomach_rumble": "Perut Keroncongan",
+ "stomach_rumble": "Suara perut bergerak",
"burping": "Sendawa",
- "hiccup": "Cegukan",
+ "hiccup": "Cegukan (hikap)",
"fart": "Kentut",
"hands": "Tangan",
- "heartbeat": "Detak Jantung",
- "applause": "Tepuk Tangan",
- "chatter": "Obrolan",
- "children_playing": "Anak-Anak Bermain",
- "animal": "Binatang",
- "pets": "Peliharaan",
+ "heartbeat": "Detak jantung",
+ "applause": "Tepuk tangan massa",
+ "chatter": "Mengobrol",
+ "children_playing": "Anak‑anak bermain",
+ "animal": "Hewan",
+ "pets": "Hewan peliharaan",
"dog": "Anjing",
- "bark": "Gonggongan",
- "howl": "Melolong",
+ "bark": "Kulit kayu",
+ "howl": "Mengaung",
"cat": "Kucing",
- "meow": "Meong",
- "livestock": "Hewan Ternak",
+ "meow": "Mengeong",
+ "livestock": "Hewan ternak",
"horse": "Kuda",
"cattle": "Sapi",
"pig": "Babi",
"goat": "Kambing",
"sheep": "Domba",
"chicken": "Ayam",
- "cluck": "Berkokok",
- "cock_a_doodle_doo": "Kukuruyuk",
+ "cluck": "Menguk / \"cluck\"",
+ "cock_a_doodle_doo": "Berkokok (\"cock‑a‑doodle‑doo\")",
"turkey": "Kalkun",
"duck": "Bebek",
- "quack": "Kwek",
+ "quack": "Menggock (\"quack\")",
"goose": "Angsa",
- "wild_animals": "Hewan Liar",
+ "wild_animals": "Hewan liar",
"bird": "Burung",
"pigeon": "Merpati",
"crow": "Gagak",
- "owl": "Burung Hantu",
- "flapping_wings": "Kepakan Sayap",
- "dogs": "Anjing",
+ "owl": "Burung hantu",
+ "flapping_wings": "Sayap berkibar",
+ "dogs": "Anjing‑anjing",
"insect": "Serangga",
- "cricket": "Jangkrik",
+ "cricket": "Kerik / Kriket",
"mosquito": "Nyamuk",
"fly": "Lalat",
- "frog": "Katak",
+ "frog": "Kodok",
"snake": "Ular",
"music": "Musik",
- "musical_instrument": "Alat Musik",
+ "musical_instrument": "Instrumen musik",
"guitar": "Gitar",
- "electric_guitar": "Gitar Elektrik",
- "acoustic_guitar": "Gitar Akustik",
- "strum": "Genjreng",
+ "electric_guitar": "Gitar listrik",
+ "acoustic_guitar": "Gitar akustik",
+ "strum": "Mengstrum",
"banjo": "Banjo",
- "snoring": "Ngorok",
+ "snoring": "Mendengkur",
"cough": "Batuk",
- "clapping": "Tepukan",
+ "clapping": "Tepuk tangan",
"camera": "Kamera",
- "wheeze": "Nafas",
- "gasp": "Tersedak",
- "sound_effect": "Efek Suara",
- "environmental_noise": "Suara Lingkungan",
- "static": "Statis",
- "white_noise": "Suara Derau",
+ "wheeze": "Mengi",
+ "gasp": "Menggigil / Tarik napas tajam",
+ "sound_effect": "Efek suara (sound effect)",
+ "environmental_noise": "Kebisingan lingkungan",
+ "static": "Suara statis",
+ "white_noise": "White noise",
"television": "Televisi",
"radio": "Radio",
- "scream": "Teriakan"
+ "scream": "Teriakan",
+ "pant": "Terengah-engah",
+ "snort": "Mendengus (melalui hidung)",
+ "throat_clearing": "Membersihkan tenggorokan",
+ "sniff": "Mengendus",
+ "shuffle": "Menyeret kaki",
+ "gargling": "Gargling",
+ "finger_snapping": "Mengklik jari",
+ "heart_murmur": "Murmur jantung",
+ "cheering": "Bersorak",
+ "crowd": "Kerumunan orang",
+ "yip": "Menggonggong pendek / ringkik",
+ "bow_wow": "Gonggongan \"bow wow\" khas",
+ "growling": "Menggeram",
+ "whimper_dog": "Rintihan anjing",
+ "purr": "Mendengkur",
+ "hiss": "Mendesis",
+ "caterwaul": "Mengeong nyaring (melolong)",
+ "clip_clop": "Suara kuda berlari (\"clip‑clop\")",
+ "neigh": "Meringkik",
+ "moo": "Mengamuk / \"Moo\"",
+ "cowbell": "Bel sapi",
+ "oink": "Menggonggong \"oink\"",
+ "bleat": "Mengebik",
+ "fowl": "Unggas",
+ "gobble": "Menggobleg",
+ "honk": "Bebek / \"honk\"",
+ "roaring_cats": "Kucing besar mengaung",
+ "roar": "Mengaung (raungan predator)",
+ "chirp": "Cicit / bernyanyi burung kecil",
+ "squawk": "Mengkokok / mendengung keras",
+ "coo": "Mengkuk \"coo\"",
+ "caw": "Menggagak / \"caw\"",
+ "hoot": "Menghoo / \"hoot\"",
+ "rats": "Tikus",
+ "mouse": "Mouse",
+ "patter": "Peluit kaki kecil",
+ "buzz": "Menggema / \"buzz\"",
+ "croak": "Kokok / \"croak\"",
+ "rattle": "Bersuara \"rattle\"",
+ "whale_vocalization": "Suara vokalisasi paus",
+ "plucked_string_instrument": "Instrumen senar dipetik",
+ "bass_guitar": "Bass gitar",
+ "steel_guitar": "Steel gitar",
+ "tapping": "Mengetuk",
+ "sitar": "Sitar",
+ "mandolin": "Mandolin",
+ "zither": "Zither",
+ "ukulele": "Ukulele",
+ "keyboard": "Keyboard",
+ "piano": "Piano",
+ "electric_piano": "Piano elektrik",
+ "organ": "Organ",
+ "electronic_organ": "Organ elektronik",
+ "hammond_organ": "Organ Hammond",
+ "synthesizer": "Synthesizer",
+ "sampler": "Sampler",
+ "harpsichord": "Harpsichord",
+ "percussion": "Percussion",
+ "drum_kit": "Kotak drum (drum kit)",
+ "drum_machine": "Mesin drum (drum machine)",
+ "drum": "Drum",
+ "snare_drum": "Snare drum",
+ "rimshot": "Rimshot",
+ "drum_roll": "Roll drum",
+ "bass_drum": "Bass drum",
+ "timpani": "Timpani",
+ "tabla": "Tabla",
+ "cymbal": "Cymbal",
+ "hi_hat": "Hi‑hat",
+ "wood_block": "Wood block",
+ "tambourine": "Tambourine",
+ "maraca": "Maraca",
+ "gong": "Gong",
+ "tubular_bells": "Tubular bells",
+ "mallet_percussion": "Percussion palu (mallet)",
+ "marimba": "Marimba",
+ "glockenspiel": "Glockenspiel",
+ "vibraphone": "Vibraphone",
+ "steelpan": "Steelpan",
+ "orchestra": "Orchestra",
+ "brass_instrument": "Instrumen tiup logam (brass)",
+ "french_horn": "French horn",
+ "trumpet": "Trumpet",
+ "trombone": "Trombone",
+ "bowed_string_instrument": "Instrumen senar di‑gesek (bowed string)",
+ "string_section": "Seksi biola (string section)",
+ "violin": "Biola (violin)",
+ "pizzicato": "Pizzicato",
+ "cello": "Violoncello (cello)",
+ "double_bass": "Double bass",
+ "wind_instrument": "Instrumen tiup (wind)",
+ "flute": "Flute",
+ "saxophone": "Saxophone",
+ "clarinet": "Clarinet",
+ "harp": "Harp",
+ "bell": "Bel (lonceng)",
+ "church_bell": "Lonceng gereja",
+ "jingle_bell": "Jingle bell",
+ "bicycle_bell": "Bel sepeda",
+ "tuning_fork": "Tuning fork",
+ "chime": "Chime",
+ "wind_chime": "Wind chime",
+ "harmonica": "Harmonika",
+ "accordion": "Akordian",
+ "bagpipes": "Bagpipes",
+ "didgeridoo": "Didgeridoo",
+ "theremin": "Theremin",
+ "singing_bowl": "Singing bowl",
+ "scratching": "Scratching (DJ scratching)",
+ "pop_music": "Musik pop",
+ "hip_hop_music": "Musik hip‑hop",
+ "beatboxing": "Beatboxing",
+ "rock_music": "Musik rock",
+ "heavy_metal": "Heavy metal",
+ "punk_rock": "Punk rock",
+ "grunge": "Grunge",
+ "progressive_rock": "Progressive rock",
+ "rock_and_roll": "Rock and roll",
+ "psychedelic_rock": "Psychedelic rock",
+ "rhythm_and_blues": "Rhythm and blues",
+ "soul_music": "Soul",
+ "reggae": "Reggae",
+ "country": "Country",
+ "swing_music": "Swing",
+ "bluegrass": "Bluegrass",
+ "funk": "Funk",
+ "folk_music": "Folk",
+ "middle_eastern_music": "Musik Timur Tengah",
+ "jazz": "Jazz",
+ "disco": "Disco",
+ "classical_music": "Musik klasik",
+ "opera": "Opera",
+ "electronic_music": "Musik elektronik",
+ "house_music": "House music",
+ "techno": "Tekno",
+ "dubstep": "Dubstep",
+ "drum_and_bass": "Drum and bass",
+ "electronica": "Electronica",
+ "electronic_dance_music": "Electronic dance music (EDM)",
+ "ambient_music": "Musik ambient",
+ "trance_music": "Trance",
+ "music_of_latin_america": "Musik Amerika Latin",
+ "salsa_music": "Salsa",
+ "flamenco": "Flamenco",
+ "blues": "Blues",
+ "music_for_children": "Musik anak‑anak",
+ "new-age_music": "Musik new age",
+ "vocal_music": "Musik vokal",
+ "a_capella": "A cappella",
+ "music_of_africa": "Musik Afrika",
+ "afrobeat": "Afrobeat",
+ "christian_music": "Musik krisitan / Kristen",
+ "gospel_music": "Musik gospel",
+ "music_of_asia": "Musik Asia",
+ "carnatic_music": "Carnatic music",
+ "music_of_bollywood": "Musik Bollywood",
+ "ska": "Ska",
+ "traditional_music": "Musik tradisional",
+ "independent_music": "Independent music",
+ "song": "Lagu",
+ "background_music": "Background music",
+ "theme_music": "Theme music",
+ "jingle": "Jingle (lagu iklan singkat)",
+ "soundtrack_music": "Musik soundtrack",
+ "lullaby": "Lullaby",
+ "video_game_music": "Musik video game",
+ "christmas_music": "Musik Natal",
+ "dance_music": "Musik dansa",
+ "wedding_music": "Musik pernikahan",
+ "happy_music": "Musik bahagia",
+ "sad_music": "Musik sedih",
+ "tender_music": "Musik lembut / romantis",
+ "exciting_music": "Musik mendebarkan",
+ "angry_music": "Musik marah",
+ "scary_music": "Musik menakutkan",
+ "wind": "Angin",
+ "rustling_leaves": "Daun bergesekan",
+ "wind_noise": "Suara angin",
+ "thunderstorm": "Badai petir",
+ "thunder": "Kilat / guruh (guntur)",
+ "water": "Air",
+ "rain": "Hujan",
+ "raindrop": "Tetesan hujan",
+ "rain_on_surface": "Hujan jatuh ke permukaan",
+ "stream": "Aliran sungai kecil",
+ "waterfall": "Air terjun",
+ "ocean": "Laut",
+ "waves": "Ombak",
+ "steam": "Uap",
+ "gurgling": "Menggulung / bergolak (gurgling)",
+ "fire": "Api",
+ "crackle": "Mercekik / berderak (crackle)",
+ "vehicle": "Kendaraan",
+ "sailboat": "Perahu layar",
+ "rowboat": "Perahu dayung",
+ "motorboat": "Perahu bermotor",
+ "ship": "Kapal besar",
+ "motor_vehicle": "Kendaraan bermotor",
+ "toot": "Bunyi klakson kecil",
+ "car_alarm": "Alarm mobil",
+ "power_windows": "Jendela bergerak dengan tenaga listrik",
+ "skidding": "Selipan roda",
+ "tire_squeal": "Roda tergelincir / berdecit",
+ "car_passing_by": "Mobil melintas",
+ "race_car": "Mobil balap",
+ "truck": "Truk",
+ "air_brake": "Rem udara",
+ "air_horn": "Horn udara",
+ "reversing_beeps": "Bunyi beeper mundur",
+ "ice_cream_truck": "Mobil es krim",
+ "emergency_vehicle": "Kendaraan darurat",
+ "police_car": "Mobil patroli polisi",
+ "ambulance": "Ambulans",
+ "fire_engine": "Mobil pemadam kebakaran",
+ "traffic_noise": "Kebisingan lalu lintas",
+ "rail_transport": "Transportasi rel",
+ "train_whistle": "Pelecut kereta",
+ "train_horn": "Klakson kereta api",
+ "railroad_car": "Gerigit kereta api",
+ "train_wheels_squealing": "Rel kereta berdecit",
+ "subway": "Kereta bawah tanah (subway)",
+ "aircraft": "Pesawat udara",
+ "aircraft_engine": "Mesin pesawat",
+ "jet_engine": "Mesin jet",
+ "propeller": "Propeller",
+ "helicopter": "Helikopter",
+ "fixed-wing_aircraft": "Pesawat sayap tetap",
+ "skateboard": "Papan luncur",
+ "engine": "Mesin",
+ "light_engine": "Mesin ringan",
+ "dental_drill's_drill": "Bor gigi",
+ "lawn_mower": "Mesin pemotong rumput",
+ "chainsaw": "Gergaji mesin / chainsaw",
+ "medium_engine": "Mesin menengah",
+ "heavy_engine": "Mesin berat",
+ "engine_knocking": "Mesin berdecit",
+ "engine_starting": "Mesin dihidupkan",
+ "idling": "Mesin diam tetap hidup (idling)",
+ "accelerating": "Percepatan (accelerating)",
+ "door": "Pintu",
+ "doorbell": "Bel pintu",
+ "ding-dong": "Ding‑dong (bunyi bel pintu khas)",
+ "sliding_door": "Pintu geser",
+ "slam": "Menjekat (bunyi pintu ditutup keras)",
+ "knock": "Ketukan",
+ "tap": "Mengetuk",
+ "squeak": "Berderit",
+ "cupboard_open_or_close": "Kupmar terbuka atau tertutup",
+ "drawer_open_or_close": "Laci terbuka atau tertutup",
+ "dishes": "Piring",
+ "cutlery": "Sendok garpu",
+ "chopping": "Mengiris",
+ "frying": "Menggoreng",
+ "microwave_oven": "Oven microwave",
+ "blender": "Blender",
+ "water_tap": "Kran air",
+ "sink": "Wastafel",
+ "bathtub": "Bak mandi",
+ "hair_dryer": "Pengering rambut",
+ "toilet_flush": "Siraman toilet",
+ "toothbrush": "Sikat gigi",
+ "electric_toothbrush": "Sikat gigi elektrik",
+ "vacuum_cleaner": "Vacuum cleaner",
+ "zipper": "Ritsleting",
+ "keys_jangling": "Kunci berdering",
+ "coin": "Koin",
+ "scissors": "Gunting",
+ "electric_shaver": "Alat cukur listrik",
+ "shuffling_cards": "Mengacaukan kartu",
+ "typing": "Ketikan",
+ "typewriter": "Mesin tik",
+ "computer_keyboard": "Keyboard komputer",
+ "writing": "Menulis",
+ "alarm": "Alarm",
+ "telephone": "Telepon",
+ "telephone_bell_ringing": "Bel telepon berdering",
+ "ringtone": "Nada dering",
+ "telephone_dialing": "Menelepon dengan dial",
+ "dial_tone": "Nada tunggu (dial tone)",
+ "busy_signal": "Suara sibuk",
+ "alarm_clock": "Alarm jam",
+ "siren": "Sirine",
+ "civil_defense_siren": "Sirine perlindungan sipil",
+ "buzzer": "Buzzer",
+ "smoke_detector": "Detektor asap",
+ "fire_alarm": "Alarm kebakaran",
+ "foghorn": "Foghorn (bunyi peluit kabut laut)",
+ "whistle": "Peluit",
+ "steam_whistle": "Peluit uap",
+ "mechanisms": "Mekanisme",
+ "ratchet": "Ratchet",
+ "clock": "Jam",
+ "tick": "Detak (tick)",
+ "tick-tock": "Tick‑tock",
+ "gears": "Roda gigi (gears)",
+ "pulleys": "Katrol",
+ "sewing_machine": "Mesin jahit",
+ "mechanical_fan": "Kipas baling‑baling mekanik",
+ "air_conditioning": "Pendingin ruangan / AC",
+ "cash_register": "Mesin kasir",
+ "printer": "Printer",
+ "single-lens_reflex_camera": "Kamera single‑lens reflex",
+ "tools": "Perkakas",
+ "hammer": "Palu",
+ "jackhammer": "Jackhammer",
+ "sawing": "Menggergaji",
+ "filing": "Mengasah",
+ "sanding": "Mengampelas",
+ "power_tool": "Power tool (perkakas bermotor)",
+ "drill": "Bor",
+ "explosion": "Ledakan",
+ "gunshot": "Tembakan senjata api",
+ "machine_gun": "Senapan mesin",
+ "fusillade": "Fusillade (banyak tembakan sekaligus)",
+ "artillery_fire": "Tembakan artileri",
+ "cap_gun": "Senapan mainan (cap gun)",
+ "fireworks": "Kembang api",
+ "firecracker": "Petasan kembang api",
+ "burst": "Ledakan pecah (burst)",
+ "eruption": "Letusan (eruption)",
+ "boom": "Boom (bunyi ledakan berat)",
+ "wood": "Kayu",
+ "chop": "Menebang (chop)",
+ "splinter": "Bercerai (splinter)",
+ "crack": "Retak / pecah (crack)",
+ "glass": "Kaca",
+ "chink": "Bunyi kaca berdenting (chink)",
+ "shatter": "Hancur / pecah (shatter)",
+ "silence": "Diam / tidak ada suara (silence)",
+ "pink_noise": "Pink noise",
+ "field_recording": "Rekaman lapangan (field recording)",
+ "sodeling": "Menangis tertahan",
+ "chird": "Derit / suara aneh",
+ "change_ringing": "Lantunan lonceng bergantian (change ringing)",
+ "shofar": "Shofar",
+ "liquid": "Cairan",
+ "splash": "Cipratan (splash)",
+ "slosh": "Slosh (suara cairan bergoyang)",
+ "squish": "Squish (bunyi renyah basah)",
+ "drip": "Tetes (drip)",
+ "pour": "Tuang (pour)",
+ "trickle": "Menetes (trickle)",
+ "gush": "Mengalir deras (gush)",
+ "fill": "Mengisi (fill)",
+ "spray": "Semprot (spray)",
+ "pump": "Pompa",
+ "stir": "Aduk (stir)",
+ "boiling": "Mendidih",
+ "sonar": "Sonar",
+ "arrow": "Panah",
+ "whoosh": "Whoosh (bunyi melesat cepat)",
+ "thump": "Thump (bantingan)",
+ "thunk": "Thunk (bunyi tebal tumpul)",
+ "electronic_tuner": "Tuner elektronik",
+ "effects_unit": "Effects unit (efek audio)",
+ "chorus_effect": "Efek chorus",
+ "basketball_bounce": "Pantulan bola basket",
+ "bang": "Benturan keras (bang)",
+ "slap": "Plak (pukulan telapak)",
+ "whack": "Whack (pukulan keras)",
+ "smash": "Smash (hancurkan keras)",
+ "breaking": "Memecahkan",
+ "bouncing": "Memantul",
+ "whip": "Cambuk",
+ "flap": "Flap (sayap / lembaran berkibar)",
+ "scratch": "Gores (scratch)",
+ "scrape": "Gesekan kasar (scrape)",
+ "rub": "Menggosok (rub)",
+ "roll": "Gulung (roll)",
+ "crushing": "Menghancurkan (crushing)",
+ "crumpling": "Menggumpalkan (crumpling)",
+ "tearing": "Merosak (tearing)",
+ "beep": "Beep",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "Clang",
+ "squeal": "Squeal (mengerang)",
+ "creak": "Creak (berderit pelan)",
+ "rustle": "Rustle (menggerut)",
+ "whir": "Whir (menderu putaran cepat)",
+ "clatter": "Kerincing / benturan berantai (clatter)",
+ "sizzle": "Sizzle (menggoreng / bersiul)",
+ "clicking": "Clicking (bunyi kunci)",
+ "clickety_clack": "Clickety clack (bunyi kaki atau rel)",
+ "rumble": "Rumble (gempuran / gemuruh)",
+ "plop": "Plop (bunyi jatuh lembut ke air)",
+ "hum": "Hum (mendengung)",
+ "zing": "Zing (bunyi gesek tipis cepat)",
+ "boing": "Boing (bunyi pegas)",
+ "crunch": "Crunch (remas keras)",
+ "sine_wave": "Gelombang sinus (sine wave)",
+ "harmonic": "Harmonik",
+ "chirp_tone": "Tone chirp",
+ "pulse": "Pulse (detak / pulsa)",
+ "inside": "Di dalam ruangan",
+ "outside": "Di luar ruangan",
+ "reverberation": "Gema ruang (reverberation)",
+ "echo": "Gema (echo)",
+ "noise": "Kebisingan",
+ "mains_hum": "Mains hum (dengungan listrik arus utama)",
+ "distortion": "Distorsi",
+ "sidetone": "Sidetone (suara sendiri saat menelepon)",
+ "cacophony": "Kecemasan suara (cacophony)",
+ "throbbing": "Berdebar / gemuruh (throbbing)",
+ "vibration": "Vibrasi"
}
diff --git a/web/public/locales/id/common.json b/web/public/locales/id/common.json
index c5eb6634aa..455b3f4bf4 100644
--- a/web/public/locales/id/common.json
+++ b/web/public/locales/id/common.json
@@ -1,17 +1,17 @@
{
"time": {
- "untilForRestart": "Hingga Frigate memulai ulang.",
- "untilRestart": "Sampai memulai ulang",
- "ago": "{{timeAgo}} Lalu",
- "justNow": "Sekarang",
+ "untilForRestart": "Sampai Frigate dimulai ulang.",
+ "untilRestart": "Sampai dimulai ulang",
+ "ago": "{{timeAgo}} yang lalu",
+ "justNow": "Baru saja",
"today": "Hari ini",
"yesterday": "Kemarin",
- "untilForTime": "Sampai",
+ "untilForTime": "Sampai {{time}}",
"last7": "7 hari terakhir",
"last14": "14 hari terakhir",
"last30": "30 hari terakhir",
"thisWeek": "Minggu Ini",
- "never": "Tidak Pernah",
+ "never": "Tidak pernah",
"lastWeek": "Minggu Lalu",
"thisMonth": "Bulan Ini",
"lastMonth": "Bulan Lalu",
@@ -21,11 +21,296 @@
"1hour": "1 jam",
"12hours": "12 jam",
"24hours": "24 jam",
- "pm": "pm",
- "am": "am",
- "yr": "{{time}} tahun",
+ "pm": "PM",
+ "am": "AM",
+ "yr": "{{time}} th",
"year_other": "{{time}} tahun",
- "mo": "{{time}} bulan"
+ "mo": "{{time}} bln",
+ "month_other": "{{time}} bulan",
+ "d": "{{time}} hr",
+ "day_other": "{{time}} hari",
+ "h": "{{time}} jam",
+ "hour_other": "{{time}} jam",
+ "m": "{{time}} mnt",
+ "minute_other": "{{time}} menit",
+ "s": "{{time}} dtk",
+ "second_other": "{{time}} detik",
+ "formattedTimestamp": {
+ "12hour": "MMM d, h:mm:ss aaa",
+ "24hour": "MMM d, HH:mm:ss"
+ },
+ "formattedTimestamp2": {
+ "12hour": "MM/dd h:mm:ssa",
+ "24hour": "d MMM HH:mm:ss"
+ },
+ "formattedTimestampHourMinute": {
+ "12hour": "h:mm aaa",
+ "24hour": "HH:mm"
+ },
+ "formattedTimestampHourMinuteSecond": {
+ "12hour": "h:mm:ss aaa",
+ "24hour": "HH:mm:ss"
+ },
+ "formattedTimestampMonthDayHourMinute": {
+ "12hour": "MMM d, h:mm aaa",
+ "24hour": "MMM d, HH:mm"
+ },
+ "formattedTimestampMonthDayYear": {
+ "12hour": "MMM d, yyyy",
+ "24hour": "MMM d, yyyy"
+ },
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "MMM d yyyy, h:mm aaa",
+ "24hour": "MMM d yyyy, HH:mm"
+ },
+ "formattedTimestampMonthDay": "MMM d",
+ "formattedTimestampFilename": {
+ "12hour": "MM-dd-yy-h-mm-ss-a",
+ "24hour": "MM-dd-yy-HH-mm-ss"
+ },
+ "inProgress": "Sedang berlangsung",
+ "invalidStartTime": "Waktu mulai tidak valid",
+ "invalidEndTime": "Waktu selesai tidak valid"
},
- "readTheDocumentation": "Baca dokumentasi"
+ "readTheDocumentation": "Baca dokumentasi",
+ "menu": {
+ "system": "Sistem",
+ "profiles": "Profil",
+ "systemMetrics": "Metrik sistem",
+ "configuration": "Konfigurasi",
+ "systemLogs": "Log sistem",
+ "settings": "Pengaturan",
+ "configurationEditor": "Editor Konfigurasi",
+ "languages": "Bahasa",
+ "language": {
+ "en": "English (Inggris)",
+ "es": "Español (Spanyol)",
+ "zhCN": "简体中文 (Tionghoa Sederhana)",
+ "hi": "हिन्दी (Hindi)",
+ "fr": "Français (Prancis)",
+ "ar": "العربية (Arab)",
+ "pt": "Português (Portugis)",
+ "ptBR": "Português brasileiro (Portugis Brasil)",
+ "ru": "Русский (Rusia)",
+ "de": "Deutsch (Jerman)",
+ "ja": "日本語 (Jepang)",
+ "tr": "Türkçe (Turki)",
+ "it": "Italiano (Italia)",
+ "nl": "Nederlands (Belanda)",
+ "sv": "Svenska (Swedia)",
+ "cs": "Čeština (Ceko)",
+ "nb": "Norsk Bokmål (Norwegia Bokmål)",
+ "ko": "한국어 (Korea)",
+ "vi": "Tiếng Việt (Vietnam)",
+ "fa": "فارسی (Persia)",
+ "pl": "Polski (Polandia)",
+ "uk": "Українська (Ukraina)",
+ "he": "עברית (Ibrani)",
+ "el": "Ελληνικά (Yunani)",
+ "ro": "Română (Rumania)",
+ "hu": "Magyar (Hungaria)",
+ "fi": "Suomi (Finlandia)",
+ "da": "Dansk (Denmark)",
+ "sk": "Slovenčina (Slovakia)",
+ "yue": "粵語 (Kanton)",
+ "th": "ไทย (Thai)",
+ "ca": "Català (Katalan)",
+ "hr": "Hrvatski (Kroasia)",
+ "bs": "Bosanski (Bosnia)",
+ "sr": "Српски (Serbia)",
+ "sl": "Slovenščina (Slovenia)",
+ "lt": "Lietuvių (Lituania)",
+ "bg": "Български (Bulgaria)",
+ "gl": "Galego (Galisia)",
+ "id": "Bahasa Indonesia (Indonesia)",
+ "ur": "اردو (Urdu)",
+ "withSystem": {
+ "label": "Gunakan pengaturan sistem untuk bahasa"
+ }
+ },
+ "appearance": "Tampilan",
+ "darkMode": {
+ "label": "Mode Gelap",
+ "light": "Terang",
+ "dark": "Gelap",
+ "withSystem": {
+ "label": "Gunakan pengaturan sistem untuk mode terang atau gelap"
+ }
+ },
+ "withSystem": "Sistem",
+ "theme": {
+ "label": "Tema",
+ "blue": "Biru",
+ "green": "Hijau",
+ "nord": "Nord",
+ "red": "Merah",
+ "highcontrast": "Kontras Tinggi",
+ "default": "Default"
+ },
+ "help": "Bantuan",
+ "documentation": {
+ "title": "Dokumentasi",
+ "label": "Dokumentasi Frigate"
+ },
+ "restart": "Mulai Ulang Frigate",
+ "live": {
+ "title": "Live",
+ "allCameras": "Semua Kamera",
+ "cameras": {
+ "title": "Kamera",
+ "count_other": "{{count}} Kamera"
+ }
+ },
+ "review": "Tinjauan",
+ "explore": "Jelajah",
+ "export": "Ekspor",
+ "actions": "Tindakan",
+ "uiPlayground": "UI Playground",
+ "features": "Fitur",
+ "faceLibrary": "Pustaka Wajah",
+ "classification": "Klasifikasi",
+ "chat": "Chat",
+ "user": {
+ "title": "Pengguna",
+ "account": "Akun",
+ "current": "Pengguna Saat Ini: {{user}}",
+ "anonymous": "anonim",
+ "logout": "Keluar",
+ "setPassword": "Atur Kata Sandi"
+ }
+ },
+ "unit": {
+ "speed": {
+ "mph": "mph",
+ "kph": "kph"
+ },
+ "length": {
+ "feet": "kaki",
+ "meters": "meter"
+ },
+ "data": {
+ "kbps": "kB/dtk",
+ "mbps": "MB/dtk",
+ "gbps": "GB/dtk",
+ "kbph": "kB/jam",
+ "mbph": "MB/jam",
+ "gbph": "GB/jam"
+ }
+ },
+ "label": {
+ "back": "Kembali",
+ "hide": "Sembunyikan {{item}}",
+ "show": "Tampilkan {{item}}",
+ "ID": "ID",
+ "none": "Tidak ada",
+ "all": "Semua",
+ "other": "Lainnya"
+ },
+ "list": {
+ "two": "{{0}} dan {{1}}",
+ "many": "{{items}}, dan {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Opsional",
+ "internalID": "ID Internal yang digunakan Frigate dalam konfigurasi dan basis data"
+ },
+ "button": {
+ "add": "Tambah",
+ "apply": "Terapkan",
+ "applying": "Menerapkan…",
+ "reset": "Atur Ulang",
+ "undo": "Urungkan",
+ "done": "Selesai",
+ "enabled": "Diaktifkan",
+ "enable": "Aktifkan",
+ "disabled": "Dinonaktifkan",
+ "disable": "Nonaktifkan",
+ "save": "Simpan",
+ "saving": "Menyimpan…",
+ "cancel": "Batal",
+ "close": "Tutup",
+ "copy": "Salin",
+ "copiedToClipboard": "Disalin ke papan klip",
+ "back": "Kembali",
+ "history": "Riwayat",
+ "fullscreen": "Layar Penuh",
+ "exitFullscreen": "Keluar dari Layar Penuh",
+ "pictureInPicture": "Gambar dalam Gambar",
+ "twoWayTalk": "Audio Dua Arah",
+ "cameraAudio": "Audio Kamera",
+ "on": "AKTIF",
+ "off": "NONAKTIF",
+ "edit": "Edit",
+ "copyCoordinates": "Salin koordinat",
+ "delete": "Hapus",
+ "yes": "Ya",
+ "no": "Tidak",
+ "download": "Unduh",
+ "info": "Info",
+ "suspended": "Ditangguhkan",
+ "unsuspended": "Batalkan penangguhan",
+ "play": "Putar",
+ "unselect": "Batalkan pilihan",
+ "export": "Ekspor",
+ "deleteNow": "Hapus Sekarang",
+ "next": "Berikutnya",
+ "continue": "Lanjutkan",
+ "modified": "Diubah",
+ "overridden": "Ditimpa",
+ "resetToGlobal": "Atur Ulang ke Global",
+ "resetToDefault": "Atur Ulang ke Default",
+ "saveAll": "Simpan Semua",
+ "savingAll": "Menyimpan Semua…",
+ "undoAll": "Urungkan Semua",
+ "retry": "Coba Lagi"
+ },
+ "toast": {
+ "copyUrlToClipboard": "URL disalin ke papan klip.",
+ "save": {
+ "title": "Simpan",
+ "error": {
+ "title": "Gagal menyimpan perubahan konfigurasi: {{errorMessage}}",
+ "noMessage": "Gagal menyimpan perubahan konfigurasi"
+ },
+ "success": "Berhasil menyimpan perubahan konfigurasi."
+ }
+ },
+ "role": {
+ "title": "Peran",
+ "admin": "Admin",
+ "viewer": "Penampil",
+ "desc": "Admin memiliki akses penuh ke semua fitur di UI Frigate. Penampil terbatas hanya untuk melihat kamera, item tinjauan, dan rekaman historis di UI."
+ },
+ "pagination": {
+ "label": "paginasi",
+ "previous": {
+ "title": "Sebelumnya",
+ "label": "Buka halaman sebelumnya"
+ },
+ "next": {
+ "title": "Berikutnya",
+ "label": "Buka halaman berikutnya"
+ },
+ "more": "Halaman lainnya"
+ },
+ "accessDenied": {
+ "documentTitle": "Akses Ditolak - Frigate",
+ "title": "Akses Ditolak",
+ "desc": "Anda tidak memiliki izin untuk melihat halaman ini."
+ },
+ "notFound": {
+ "documentTitle": "Tidak Ditemukan - Frigate",
+ "title": "404",
+ "desc": "Halaman tidak ditemukan"
+ },
+ "selectItem": "Pilih {{item}}",
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "no_items": "Tidak ada item",
+ "validation_errors": "Kesalahan Validasi",
+ "credentialField": {
+ "savedPlaceholder": "Tersimpan — biarkan kosong untuk mempertahankan yang saat ini"
+ }
}
diff --git a/web/public/locales/id/config/cameras.json b/web/public/locales/id/config/cameras.json
index 9151d7d340..3b80196174 100644
--- a/web/public/locales/id/config/cameras.json
+++ b/web/public/locales/id/config/cameras.json
@@ -1,3 +1,62 @@
{
- "label": "Pengaturan Kamera"
+ "label": "Pengaturan Kamera",
+ "name": {
+ "label": "Nama Kamera",
+ "description": "Nama Kamera diwajibkan"
+ },
+ "friendly_name": {
+ "label": "Nama Singkat",
+ "description": "Nama Singkat kamera digunakan pada tampilan UI Frigate"
+ },
+ "audio": {
+ "label": "Deteksi Suara",
+ "description": "Pengaturan untuk Deteksi Kejadian berdasarkan Suara pada kamera ini.",
+ "enabled": {
+ "label": "Nyalakan Deteksi Suara",
+ "description": "Nyalakan atau matikan deteksi kejadian suara pada kamera ini."
+ },
+ "filters": {
+ "threshold": {
+ "label": "Keyakinan-Suara Minimum"
+ }
+ },
+ "min_volume": {
+ "label": "Volume-Suara Minimum"
+ }
+ },
+ "audio_transcription": {
+ "label": "Transkripsi Suara",
+ "enabled": {
+ "label": "Nyalakan Transkripsi"
+ },
+ "live_enabled": {
+ "label": "Transkripsi Langsung (Live)"
+ }
+ },
+ "detect": {
+ "label": "Deteksi Objek",
+ "enabled": {
+ "label": "Nyalakan Deteksi Objek"
+ },
+ "stationary": {
+ "classifier": {
+ "label": "Nyalakan Klasifikasi-Visual",
+ "description": "Menggunakan pengklasifikasi visual untuk membedakan objek-objek diam (benar-benar tidak bergerak), meskipun bounding-box kurang stabil atau bergetar (jitter)."
+ }
+ },
+ "fps": {
+ "label": "Kecepatan (FPS) Deteksi",
+ "description": "Kecepatan yang ditargetkan untuk menjalankan Deteksi Objek, dalam satuan frame per second (FPS); nilai lebih rendah mengurangi intensitas proses dan dapat meringangkan beban kerja CPU. Nilai 5 direkomendasikan, sedangakan nilai 10 dianggap sangat tinggi dan hanya digunakan untuk pelacakan (tracking) benda yang bergerak dengan benar-benar cepat."
+ }
+ },
+ "enabled": {
+ "label": "Dinyalakan",
+ "description": "Dinyalakan (Enabled)"
+ },
+ "birdseye": {
+ "enabled": {
+ "description": "Nyalakan atau matikan fitur Penglihatan Atas (Birdseye View).",
+ "label": "Nyalakan Birdseye"
+ }
+ }
}
diff --git a/web/public/locales/id/config/global.json b/web/public/locales/id/config/global.json
index 345b593f5c..9b8409655f 100644
--- a/web/public/locales/id/config/global.json
+++ b/web/public/locales/id/config/global.json
@@ -1,5 +1,47 @@
{
"version": {
"label": "Versi konfigurasi"
+ },
+ "audio": {
+ "label": "Deteksi Suara",
+ "enabled": {
+ "label": "Nyalakan Deteksi Suara"
+ },
+ "filters": {
+ "threshold": {
+ "label": "Keyakinan-Suara Minimum"
+ }
+ },
+ "min_volume": {
+ "label": "Volume-Suara Minimum"
+ }
+ },
+ "audio_transcription": {
+ "label": "Transkripsi Suara",
+ "live_enabled": {
+ "label": "Transkripsi Langsung (Live)"
+ }
+ },
+ "detect": {
+ "label": "Deteksi Objek",
+ "enabled": {
+ "label": "Nyalakan Deteksi Objek"
+ },
+ "stationary": {
+ "classifier": {
+ "label": "Nyalakan Klasifikasi-Visual",
+ "description": "Menggunakan pengklasifikasi visual untuk membedakan objek-objek diam (benar-benar tidak bergerak), meskipun bounding-box kurang stabil atau bergetar (jitter)."
+ }
+ },
+ "fps": {
+ "label": "Kecepatan (FPS) Deteksi",
+ "description": "Kecepatan yang ditargetkan untuk menjalankan Deteksi Objek, dalam satuan frame per second (FPS); nilai lebih rendah mengurangi intensitas proses dan dapat meringangkan beban kerja CPU. Nilai 5 direkomendasikan, sedangakan nilai 10 dianggap sangat tinggi dan hanya digunakan untuk pelacakan (tracking) benda yang bergerak dengan benar-benar cepat."
+ }
+ },
+ "birdseye": {
+ "enabled": {
+ "description": "Nyalakan atau matikan fitur Penglihatan Atas (Birdseye View).",
+ "label": "Nyalakan Birdseye"
+ }
}
}
diff --git a/web/public/locales/id/objects.json b/web/public/locales/id/objects.json
index e56f051d01..82f56b05c8 100644
--- a/web/public/locales/id/objects.json
+++ b/web/public/locales/id/objects.json
@@ -2,30 +2,128 @@
"person": "Orang",
"bicycle": "Sepeda",
"car": "Mobil",
- "motorcycle": "Motor",
+ "motorcycle": "Sepeda motor",
"airplane": "Pesawat",
- "bus": "Bis",
+ "bus": "Bus",
"train": "Kereta",
- "boat": "Kapal",
- "traffic_light": "Lampu Lalu Lintas",
- "fire_hydrant": "Hidran Kebakaran",
- "animal": "Binatang",
+ "boat": "Perahu",
+ "traffic_light": "Lampu lalu lintas",
+ "fire_hydrant": "Hidran kebakaran",
+ "animal": "Hewan",
"dog": "Anjing",
- "bark": "Gonggongan",
+ "bark": "Kulit kayu",
"cat": "Kucing",
"horse": "Kuda",
"goat": "Kambing",
"sheep": "Domba",
"bird": "Burung",
- "street_sign": "Rambu Jalan",
- "stop_sign": "Tanda Stop",
- "parking_meter": "Parkir Meter",
- "bench": "Kursi",
+ "street_sign": "Rambu jalan",
+ "stop_sign": "Rambu berhenti",
+ "parking_meter": "Meter parkir",
+ "bench": "Bangku",
"cow": "Sapi",
"elephant": "Gajah",
"bear": "Beruang",
"zebra": "Zebra",
"giraffe": "Jerapah",
"hat": "Topi",
- "backpack": "Tas"
+ "backpack": "Ransel",
+ "mouse": "Mouse",
+ "keyboard": "Keyboard",
+ "vehicle": "Kendaraan",
+ "skateboard": "Papan luncur",
+ "door": "Pintu",
+ "blender": "Blender",
+ "sink": "Wastafel",
+ "hair_dryer": "Pengering rambut",
+ "toothbrush": "Sikat gigi",
+ "scissors": "Gunting",
+ "clock": "Jam",
+ "umbrella": "Payung",
+ "shoe": "Sepatu",
+ "eye_glasses": "Kacamata",
+ "handbag": "Tas tangan",
+ "tie": "Dasi",
+ "suitcase": "Koper",
+ "frisbee": "Frisbee",
+ "skis": "Ski",
+ "snowboard": "Papan seluncur salju",
+ "sports_ball": "Bola olahraga",
+ "kite": "Layang-layang",
+ "baseball_bat": "Tongkat bisbol",
+ "baseball_glove": "Sarung tangan bisbol",
+ "surfboard": "Papan selancar",
+ "tennis_racket": "Raket tenis",
+ "bottle": "Botol",
+ "plate": "Piring",
+ "wine_glass": "Gelas anggur",
+ "cup": "Cangkir",
+ "fork": "Garpu",
+ "knife": "Pisau",
+ "spoon": "Sendok",
+ "bowl": "Mangkuk",
+ "banana": "Pisang",
+ "apple": "Apel",
+ "sandwich": "Sandwich",
+ "orange": "Jeruk",
+ "broccoli": "Brokoli",
+ "carrot": "Wortel",
+ "hot_dog": "Hot dog",
+ "pizza": "Pizza",
+ "donut": "Donat",
+ "cake": "Kue",
+ "chair": "Kursi",
+ "couch": "Sofa",
+ "potted_plant": "Tanaman dalam pot",
+ "bed": "Tempat tidur",
+ "mirror": "Cermin",
+ "dining_table": "Meja makan",
+ "window": "Jendela",
+ "desk": "Meja tulis",
+ "toilet": "Toilet",
+ "tv": "TV",
+ "laptop": "Laptop",
+ "remote": "Remote",
+ "cell_phone": "Ponsel",
+ "microwave": "Microwave",
+ "oven": "Oven",
+ "toaster": "Pemanggang roti",
+ "refrigerator": "Kulkas",
+ "book": "Buku",
+ "vase": "Vas",
+ "teddy_bear": "Boneka beruang",
+ "hair_brush": "Sikat rambut",
+ "squirrel": "Tupai",
+ "deer": "Rusa",
+ "fox": "Rubah",
+ "rabbit": "Kelinci",
+ "raccoon": "Rakuns",
+ "robot_lawnmower": "Mesin pemotong rumput robot",
+ "waste_bin": "Tempat sampah",
+ "on_demand": "Sesuai permintaan",
+ "face": "Wajah",
+ "license_plate": "Pelat nomor",
+ "package": "Paket",
+ "bbq_grill": "Panggangan BBQ",
+ "amazon": "Amazon",
+ "usps": "USPS",
+ "ups": "UPS",
+ "fedex": "FedEx",
+ "dhl": "DHL",
+ "an_post": "An Post",
+ "purolator": "Purolator",
+ "postnl": "PostNL",
+ "nzpost": "NZPost",
+ "postnord": "PostNord",
+ "gls": "GLS",
+ "dpd": "DPD",
+ "canada_post": "Canada Post",
+ "royal_mail": "Royal Mail",
+ "school_bus": "Bus sekolah",
+ "skunk": "Sigung",
+ "kangaroo": "Kanguru",
+ "baby": "Bayi",
+ "baby_stroller": "Kereta dorong bayi",
+ "rickshaw": "Becak",
+ "rodent": "Hewan pengerat"
}
diff --git a/web/public/locales/id/views/events.json b/web/public/locales/id/views/events.json
index 19a85885f5..bb78ea70aa 100644
--- a/web/public/locales/id/views/events.json
+++ b/web/public/locales/id/views/events.json
@@ -16,7 +16,9 @@
}
},
"timeline.aria": "Pilih timeline",
- "timeline": "Linimasa",
+ "timeline": {
+ "label": "Linimasa"
+ },
"zoomIn": "Perbesar",
"zoomOut": "Perkecil",
"events": {
@@ -43,7 +45,9 @@
},
"documentTitle": "Tinjauan - Frigate",
"recordings": {
- "documentTitle": "Rekaman - Frigate"
+ "documentTitle": "Rekaman - Frigate",
+ "invalidSharedLink": "Tidak dapat membuka tautan rekaman bertanda waktu karena kesalahan penguraian.",
+ "invalidSharedCamera": "Tidak dapat membuka tautan rekaman bertanda waktu karena kamera tidak dikenal atau tidak berwenang."
},
"calendarFilter": {
"last24Hours": "24 Jam Terakhir"
@@ -54,10 +58,37 @@
"button": "Item Batu Untuk Ditinjau",
"label": "Lihat item ulasan baru"
},
- "selected_one": "{{count}} terpilih",
- "selected_other": "{{count}} terpilih",
+ "selected_one": "{{count}} dipilih",
+ "selected_other": "{{count}} dipilih",
"camera": "Kamera",
"detected": "terdeteksi",
"suspiciousActivity": "Aktivitas Mencurigakan",
- "threateningActivity": "Aktivitas yang Mengancam"
+ "threateningActivity": "Aktivitas yang Mengancam",
+ "select_all": "Semua",
+ "normalActivity": "Normal",
+ "needsReview": "Perlu ditinjau",
+ "securityConcern": "Kendala keamanan",
+ "motionSearch": {
+ "menuItem": "Pencarian gerakan",
+ "openMenu": "Opsi kamera"
+ },
+ "motionPreviews": {
+ "menuItem": "Lihat pratinjau gerakan",
+ "title": "Pratinjau gerakan: {{camera}}",
+ "mobileSettingsTitle": "Setelan Pratinjau Gerakan",
+ "mobileSettingsDesc": "Sesuaikan kecepatan pemutaran dan peredupan, serta pilih tanggal untuk meninjau klip hanya gerakan.",
+ "dim": "Redup",
+ "dimAria": "Sesuaikan intensitas peredupan",
+ "dimDesc": "Tingkatkan peredupan untuk meningkatkan visibilitas area gerakan.",
+ "speed": "Kecepatan",
+ "speedAria": "Pilih kecepatan pemutaran pratinjau",
+ "speedDesc": "Pilih seberapa cepat klip pratinjau diputar.",
+ "back": "Kembali",
+ "empty": "Tidak ada pratinjau tersedia",
+ "noPreview": "Pratinjau tidak tersedia",
+ "seekAria": "Pindahkan {{camera}} pemain ke {{time}}",
+ "filter": "Filter",
+ "filterDesc": "Pilih area untuk hanya menampilkan klip dengan gerakan di wilayah tersebut.",
+ "filterClear": "Hapus"
+ }
}
diff --git a/web/public/locales/id/views/explore.json b/web/public/locales/id/views/explore.json
index b93d4bf617..726548db3b 100644
--- a/web/public/locales/id/views/explore.json
+++ b/web/public/locales/id/views/explore.json
@@ -2,45 +2,262 @@
"documentTitle": "Jelajahi - Frigate",
"generativeAI": "AI Generatif",
"exploreIsUnavailable": {
- "title": "Penelusuran tidak tersedia",
+ "title": "Jelajah Tidak Tersedia",
"embeddingsReindexing": {
- "context": "Jelajahi dapat digunakan setelah embedding objek yang dilacak selesai di-reindex.",
+ "context": "Jelajah dapat digunakan setelah embedding objek terlacak selesai diindeks ulang.",
"startingUp": "Sedang memulai…",
"estimatedTime": "Perkiraan waktu tersisa:",
- "finishingShortly": "Selesai sesaat lagi",
+ "finishingShortly": "Segera selesai",
"step": {
- "thumbnailsEmbedded": "Keluku dilampirkan ",
- "descriptionsEmbedded": "Deskripsi terlampir: ",
- "trackedObjectsProcessed": "Objek yang dilacak diproses: "
+ "thumbnailsEmbedded": "Thumbnail yang disematkan: ",
+ "descriptionsEmbedded": "Deskripsi yang disematkan: ",
+ "trackedObjectsProcessed": "Objek terlacak yang diproses: "
}
},
"downloadingModels": {
- "context": "Frigate sedang mengunduh model embedding yang diperlukan untuk mendukung fitur Pencarian Semantik. Proses ini mungkin memakan waktu beberapa menit tergantung pada kecepatan koneksi jaringan Anda.",
+ "context": "Frigate sedang mengunduh model embedding yang diperlukan untuk mendukung fitur Pencarian Semantik. Ini mungkin memerlukan beberapa menit tergantung pada kecepatan koneksi jaringan Anda.",
"setup": {
- "visionModel": "Model vision",
- "visionModelFeatureExtractor": "Ekstraktor fitur model visi",
+ "visionModel": "Model visi",
+ "visionModelFeatureExtractor": "Pengekstrak fitur model visi",
"textModel": "Model teks",
- "textTokenizer": "Teks tokenizer"
+ "textTokenizer": "Tokenizer teks"
},
"tips": {
- "context": "Anda mungkin ingin mengindeks ulang embeddings dari objek yang Anda lacak setelah model-model tersebut diunduh."
+ "context": "Anda mungkin ingin mengindeks ulang embedding objek terlacak Anda setelah model selesai diunduh."
},
- "error": "Terjadi eror. Periksa log Frigate."
+ "error": "Terjadi kesalahan. Periksa log Frigate."
}
},
"details": {
- "timestamp": "Stempel waktu"
+ "timestamp": "Cap waktu",
+ "item": {
+ "title": "Detail Item Tinjauan",
+ "desc": "Detail item tinjauan",
+ "button": {
+ "share": "Bagikan item tinjauan ini",
+ "viewInExplore": "Lihat di Jelajah"
+ },
+ "tips": {
+ "mismatch_other": "{{count}} objek yang tidak tersedia terdeteksi dan disertakan dalam item tinjauan ini. Objek-objek tersebut tidak memenuhi syarat sebagai peringatan atau deteksi, atau sudah dibersihkan/dihapus.",
+ "hasMissingObjects": "Sesuaikan konfigurasi Anda jika Anda ingin Frigate menyimpan objek terlacak untuk label berikut: {{objects}}"
+ },
+ "toast": {
+ "success": {
+ "regenerate": "Deskripsi baru telah diminta dari {{provider}}. Tergantung pada kecepatan penyedia Anda, deskripsi baru mungkin memerlukan waktu untuk dibuat ulang.",
+ "updatedSublabel": "Berhasil memperbarui sublabel.",
+ "updatedLPR": "Berhasil memperbarui pelat nomor.",
+ "updatedAttributes": "Berhasil memperbarui atribut.",
+ "audioTranscription": "Berhasil meminta transkripsi audio. Tergantung pada kecepatan server Frigate Anda, transkripsi mungkin memerlukan waktu untuk selesai."
+ },
+ "error": {
+ "regenerate": "Gagal memanggil {{provider}} untuk deskripsi baru: {{errorMessage}}",
+ "updatedSublabelFailed": "Gagal memperbarui sublabel: {{errorMessage}}",
+ "updatedLPRFailed": "Gagal memperbarui pelat nomor: {{errorMessage}}",
+ "updatedAttributesFailed": "Gagal memperbarui atribut: {{errorMessage}}",
+ "audioTranscription": "Gagal meminta transkripsi audio: {{errorMessage}}"
+ }
+ }
+ },
+ "label": "Label",
+ "editSubLabel": {
+ "title": "Edit sublabel",
+ "desc": "Masukkan sublabel baru untuk {{label}} ini",
+ "descNoLabel": "Masukkan sublabel baru untuk objek terlacak ini"
+ },
+ "editLPR": {
+ "title": "Edit pelat nomor",
+ "desc": "Masukkan nilai pelat nomor baru untuk {{label}} ini",
+ "descNoLabel": "Masukkan nilai pelat nomor baru untuk objek terlacak ini"
+ },
+ "editAttributes": {
+ "title": "Edit atribut",
+ "desc": "Pilih atribut klasifikasi untuk {{label}} ini"
+ },
+ "snapshotScore": {
+ "label": "Skor Snapshot"
+ },
+ "topScore": {
+ "label": "Skor Tertinggi",
+ "info": "Skor tertinggi adalah skor median tertinggi untuk objek terlacak, jadi ini mungkin berbeda dari skor yang ditampilkan pada thumbnail hasil pencarian."
+ },
+ "score": {
+ "label": "Skor"
+ },
+ "recognizedLicensePlate": "Pelat Nomor yang Diakui",
+ "attributes": "Atribut Klasifikasi",
+ "estimatedSpeed": "Perkiraan Kecepatan",
+ "objects": "Objek",
+ "camera": "Kamera",
+ "zones": "Zona",
+ "button": {
+ "findSimilar": "Cari yang Serupa",
+ "regenerate": {
+ "title": "Buat Ulang",
+ "label": "Buat ulang deskripsi objek terlacak"
+ }
+ },
+ "description": {
+ "label": "Deskripsi",
+ "placeholder": "Deskripsi objek terlacak",
+ "aiTips": "Frigate tidak akan meminta deskripsi dari penyedia AI Generatif Anda sampai siklus hidup objek terlacak berakhir."
+ },
+ "expandRegenerationMenu": "Perluas menu pembuatan ulang",
+ "regenerateFromSnapshot": "Buat Ulang dari Snapshot",
+ "regenerateFromThumbnails": "Buat Ulang dari Thumbnail",
+ "tips": {
+ "descriptionSaved": "Berhasil menyimpan deskripsi",
+ "saveDescriptionFailed": "Gagal memperbarui deskripsi: {{errorMessage}}"
+ },
+ "title": {
+ "label": "Judul"
+ },
+ "scoreInfo": "Informasi Skor"
},
- "exploreMore": "Eksplor lebih jauh objek-objek {{label}}",
+ "exploreMore": "Jelajahi lebih banyak objek {{label}}",
"trackedObjectDetails": "Detail Objek Terlacak",
"type": {
"details": "detail",
- "snapshot": "tangkapan layar",
+ "snapshot": "snapshot",
"thumbnail": "thumbnail",
"video": "video",
"tracking_details": "detail pelacakan"
},
"trackingDetails": {
- "title": "Detail Pelacakan"
+ "title": "Detail Pelacakan",
+ "noImageFound": "Tidak ada gambar yang ditemukan untuk cap waktu ini.",
+ "createObjectMask": "Buat Masker Objek",
+ "adjustAnnotationSettings": "Sesuaikan pengaturan anotasi",
+ "scrollViewTips": "Klik untuk melihat momen-momen penting dalam siklus hidup objek ini.",
+ "autoTrackingTips": "Posisi kotak pembatas tidak akan akurat untuk kamera dengan pelacakan otomatis.",
+ "count": "{{first}} dari {{second}}",
+ "trackedPoint": "Titik Terlacak",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} terdeteksi",
+ "entered_zone": "{{label}} memasuki {{zones}}",
+ "active": "{{label}} menjadi aktif",
+ "stationary": "{{label}} menjadi diam",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} terdeteksi untuk {{label}}",
+ "other": "{{label}} dikenali sebagai {{attribute}}"
+ },
+ "gone": "{{label}} pergi",
+ "heard": "{{label}} terdengar",
+ "external": "{{label}} terdeteksi",
+ "header": {
+ "zones": "Zona",
+ "ratio": "Rasio",
+ "area": "Area",
+ "score": "Skor",
+ "computedScore": "Skor Terhitung",
+ "topScore": "Skor Tertinggi",
+ "toggleAdvancedScores": "Alihkan skor lanjutan"
+ }
+ },
+ "annotationSettings": {
+ "title": "Pengaturan Anotasi",
+ "showAllZones": {
+ "title": "Tampilkan Semua Zona",
+ "desc": "Selalu tampilkan zona pada frame tempat objek telah memasuki suatu zona."
+ },
+ "offset": {
+ "label": "Offset Anotasi",
+ "desc": "Data ini berasal dari feed deteksi kamera Anda tetapi ditumpangkan pada gambar dari feed rekaman. Sangat mungkin kedua stream tersebut tidak sinkron sepenuhnya. Akibatnya, kotak pembatas dan rekaman tidak akan sejajar dengan sempurna. Anda dapat menggunakan pengaturan ini untuk menggeser anotasi maju atau mundur dalam waktu agar lebih selaras dengan rekaman video.",
+ "millisecondsToOffset": "Milidetik untuk menggeser anotasi deteksi. Default: 0",
+ "tips": "Turunkan nilainya jika pemutaran video berada di depan kotak dan titik jalur, dan naikkan nilainya jika pemutaran video berada di belakangnya. Nilai ini bisa negatif.",
+ "toast": {
+ "success": "Offset anotasi untuk {{camera}} telah disimpan ke file konfigurasi."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Slide sebelumnya",
+ "next": "Slide berikutnya"
+ }
+ },
+ "itemMenu": {
+ "downloadVideo": {
+ "label": "Unduh video",
+ "aria": "Unduh video"
+ },
+ "downloadSnapshot": {
+ "label": "Unduh snapshot",
+ "aria": "Unduh snapshot"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Unduh snapshot bersih",
+ "aria": "Unduh snapshot bersih"
+ },
+ "viewTrackingDetails": {
+ "label": "Lihat detail pelacakan",
+ "aria": "Tampilkan detail pelacakan"
+ },
+ "findSimilar": {
+ "label": "Cari yang serupa",
+ "aria": "Cari objek terlacak yang serupa"
+ },
+ "addTrigger": {
+ "label": "Tambahkan pemicu",
+ "aria": "Tambahkan pemicu untuk objek terlacak ini"
+ },
+ "audioTranscription": {
+ "label": "Transkripsikan",
+ "aria": "Minta transkripsi audio"
+ },
+ "submitToPlus": {
+ "label": "Kirim ke Frigate+",
+ "aria": "Kirim ke Frigate Plus"
+ },
+ "viewInHistory": {
+ "label": "Lihat di Riwayat",
+ "aria": "Lihat di Riwayat"
+ },
+ "deleteTrackedObject": {
+ "label": "Hapus objek terlacak ini"
+ },
+ "showObjectDetails": {
+ "label": "Tampilkan jalur objek"
+ },
+ "hideObjectDetails": {
+ "label": "Sembunyikan jalur objek"
+ },
+ "debugReplay": {
+ "label": "Pemutaran Ulang Debug",
+ "aria": "Lihat objek terlacak ini dalam tampilan pemutaran ulang debug"
+ },
+ "more": {
+ "aria": "Lainnya"
+ }
+ },
+ "dialog": {
+ "confirmDelete": {
+ "title": "Konfirmasi Hapus",
+ "desc": "Menghapus objek terlacak ini akan menghapus snapshot, embedding yang tersimpan, dan entri detail pelacakan terkait. Rekaman video dari objek terlacak ini di tampilan Riwayat TIDAK akan dihapus.
Anda yakin ingin melanjutkan?"
+ },
+ "toast": {
+ "error": "Kesalahan saat menghapus objek terlacak ini: {{errorMessage}}"
+ }
+ },
+ "noTrackedObjects": "Tidak Ada Objek Terlacak Ditemukan",
+ "fetchingTrackedObjectsFailed": "Kesalahan saat mengambil objek terlacak: {{errorMessage}}",
+ "trackedObjectsCount_other": "{{count}} objek terlacak ",
+ "searchResult": {
+ "tooltip": "Cocok dengan {{type}} pada {{confidence}}%",
+ "previousTrackedObject": "Objek terlacak sebelumnya",
+ "nextTrackedObject": "Objek terlacak berikutnya",
+ "deleteTrackedObject": {
+ "toast": {
+ "success": "Objek terlacak berhasil dihapus.",
+ "error": "Gagal menghapus objek terlacak: {{errorMessage}}"
+ }
+ }
+ },
+ "aiAnalysis": {
+ "title": "Analisis AI"
+ },
+ "concerns": {
+ "label": "Kekhawatiran"
+ },
+ "objectLifecycle": {
+ "noImageFound": "Tidak ada gambar yang ditemukan untuk objek terlacak ini."
}
}
diff --git a/web/public/locales/id/views/exports.json b/web/public/locales/id/views/exports.json
index 79775d60bf..bee59ce903 100644
--- a/web/public/locales/id/views/exports.json
+++ b/web/public/locales/id/views/exports.json
@@ -1,23 +1,128 @@
{
- "documentTitle": "Expor - Frigate",
- "search": "Cari",
- "noExports": "Ekspor tidak ditemukan",
- "deleteExport": "Hapus Ekspor",
- "deleteExport.desc": "Apakah Anda yakin ingin menghapus {{exportName}}?",
+ "documentTitle": "Ekspor - Frigate",
+ "search": "Pencarian",
+ "noExports": "Tidak ada ekspor ditemukan",
+ "deleteExport": {
+ "label": "Hapus Ekspor"
+ },
+ "deleteExport.desc": "Anda yakin ingin menghapus {{exportName}}?",
"editExport": {
- "title": "Ubah nama ekspor",
+ "title": "Ubah Nama Ekspor",
"desc": "Masukkan nama baru untuk ekspor ini.",
"saveExport": "Simpan Ekspor"
},
"toast": {
"error": {
- "renameExportFailed": "Gagal mengganti nama ekspor: {{errorMessage}}"
+ "renameExportFailed": "Gagal mengubah nama ekspor: {{errorMessage}}",
+ "assignCaseFailed": "Gagal memperbarui penetapan kasus: {{errorMessage}}",
+ "caseSaveFailed": "Gagal menyimpan kasus: {{errorMessage}}",
+ "caseDeleteFailed": "Gagal menghapus kasus: {{errorMessage}}"
}
},
"tooltip": {
- "shareExport": "Bagikan Ekspor",
- "downloadVideo": "Unduh Video",
+ "shareExport": "Bagikan ekspor",
+ "downloadVideo": "Unduh video",
"editName": "Ubah nama",
- "deleteExport": "Hapus ekspor"
+ "deleteExport": "Hapus ekspor",
+ "assignToCase": "Tambahkan ke kasus",
+ "removeFromCase": "Hapus dari kasus"
+ },
+ "headings": {
+ "cases": "Kasus",
+ "uncategorizedExports": "Ekspor Tanpa Kategori"
+ },
+ "toolbar": {
+ "newCase": "Kasus Baru",
+ "addExport": "Tambahkan Ekspor",
+ "editCase": "Edit Kasus",
+ "deleteCase": "Hapus Kasus"
+ },
+ "deleteCase": {
+ "label": "Hapus Kasus",
+ "desc": "Anda yakin ingin menghapus {{caseName}}?",
+ "descKeepExports": "Ekspor akan tetap tersedia sebagai ekspor tanpa kategori.",
+ "descDeleteExports": "Semua ekspor dalam kasus ini akan dihapus secara permanen.",
+ "deleteExports": "Hapus juga ekspor"
+ },
+ "caseDialog": {
+ "title": "Tambahkan ke kasus",
+ "description": "Pilih kasus yang sudah ada atau buat yang baru.",
+ "selectLabel": "Kasus",
+ "newCaseOption": "Buat kasus baru",
+ "nameLabel": "Nama kasus",
+ "descriptionLabel": "Deskripsi"
+ },
+ "caseCard": {
+ "emptyCase": "Belum ada ekspor"
+ },
+ "jobCard": {
+ "defaultName": "Ekspor {{camera}}",
+ "queued": "Dalam antrean",
+ "running": "Sedang berjalan",
+ "preparing": "Menyiapkan",
+ "copying": "Menyalin",
+ "encoding": "Menyandi",
+ "encodingRetry": "Menyandi (coba lagi)",
+ "finalizing": "Menyelesaikan"
+ },
+ "caseView": {
+ "noDescription": "Tidak ada deskripsi",
+ "createdAt": "Dibuat {{value}}",
+ "exportCount_one": "1 ekspor",
+ "exportCount_other": "{{count}} ekspor",
+ "cameraCount_one": "1 kamera",
+ "cameraCount_other": "{{count}} kamera",
+ "showMore": "Tampilkan lebih banyak",
+ "showLess": "Tampilkan lebih sedikit",
+ "emptyTitle": "Kasus ini kosong",
+ "emptyDescription": "Tambahkan ekspor tanpa kategori yang sudah ada agar kasus tetap terorganisasi.",
+ "emptyDescriptionNoExports": "Belum ada ekspor tanpa kategori yang tersedia untuk ditambahkan."
+ },
+ "caseEditor": {
+ "createTitle": "Buat Kasus",
+ "editTitle": "Edit Kasus",
+ "namePlaceholder": "Nama kasus",
+ "descriptionPlaceholder": "Tambahkan catatan atau konteks untuk kasus ini"
+ },
+ "addExportDialog": {
+ "title": "Tambahkan Ekspor ke {{caseName}}",
+ "searchPlaceholder": "Cari ekspor tanpa kategori",
+ "empty": "Tidak ada ekspor tanpa kategori yang cocok dengan pencarian ini.",
+ "addButton_one": "Tambahkan 1 Ekspor",
+ "addButton_other": "Tambahkan {{count}} Ekspor",
+ "adding": "Menambahkan..."
+ },
+ "selected_one": "{{count}} dipilih",
+ "selected_other": "{{count}} dipilih",
+ "bulkActions": {
+ "addToCase": "Tambahkan ke Kasus",
+ "moveToCase": "Pindahkan ke Kasus",
+ "removeFromCase": "Hapus dari Kasus",
+ "delete": "Hapus",
+ "deleteNow": "Hapus Sekarang"
+ },
+ "bulkDelete": {
+ "title": "Hapus Ekspor",
+ "desc_one": "Anda yakin ingin menghapus {{count}} ekspor?",
+ "desc_other": "Anda yakin ingin menghapus {{count}} ekspor?"
+ },
+ "bulkRemoveFromCase": {
+ "title": "Hapus dari Kasus",
+ "desc_one": "Hapus {{count}} ekspor dari kasus ini?",
+ "desc_other": "Hapus {{count}} ekspor dari kasus ini?",
+ "descKeepExports": "Ekspor akan dipindahkan ke tanpa kategori.",
+ "descDeleteExports": "Ekspor akan dihapus secara permanen.",
+ "deleteExports": "Hapus ekspor saja"
+ },
+ "bulkToast": {
+ "success": {
+ "delete": "Berhasil menghapus ekspor",
+ "reassign": "Berhasil memperbarui penetapan kasus",
+ "remove": "Berhasil menghapus ekspor dari kasus"
+ },
+ "error": {
+ "deleteFailed": "Gagal menghapus ekspor: {{errorMessage}}",
+ "reassignFailed": "Gagal memperbarui penetapan kasus: {{errorMessage}}"
+ }
}
}
diff --git a/web/public/locales/id/views/faceLibrary.json b/web/public/locales/id/views/faceLibrary.json
index 70b2a419a6..ec0c700d6f 100644
--- a/web/public/locales/id/views/faceLibrary.json
+++ b/web/public/locales/id/views/faceLibrary.json
@@ -9,7 +9,7 @@
"subLabelScore": "Skor Sub Label",
"face": "Detail Wajah",
"scoreInfo": "Skor sub label adalah nilai gabungan dari tingkat keyakinan sistem dalam mengenali wajah. Nilai ini bisa berbeda dengan skor yang terlihat pada gambar cuplikan.",
- "timestamp": "Stempel waktu",
+ "timestamp": "Cap waktu",
"unknown": "Tidak diketahui",
"faceDesc": "Detail objek terlacak yang menghasilkan wajah ini"
},
diff --git a/web/public/locales/id/views/live.json b/web/public/locales/id/views/live.json
index 36202b238c..416d688964 100644
--- a/web/public/locales/id/views/live.json
+++ b/web/public/locales/id/views/live.json
@@ -1,56 +1,57 @@
{
- "documentTitle.withCamera": "{{camera}} - Langsung - Frigate",
+ "documentTitle.withCamera": "{{camera}} - Live - Frigate",
"documentTitle": {
- "default": "Siaran Langsung - Frigate"
+ "default": "Live - Frigate"
},
- "lowBandwidthMode": "Mode Bandwith-Rendah",
+ "lowBandwidthMode": "Mode bandwidth rendah",
"twoWayTalk": {
- "enable": "Nyalakan Komunikasi dua arah",
- "disable": "Nonaktifkan Komunikasi Dua Arah"
+ "enable": "Aktifkan Audio Dua Arah",
+ "disable": "Nonaktifkan Audio Dua Arah"
},
"cameraAudio": {
- "enable": "Nyalakan Audio Kamera",
- "disable": "Matikan Audio Kamera"
+ "enable": "Aktifkan Audio Kamera",
+ "disable": "Nonaktifkan Audio Kamera"
},
"ptz": {
"move": {
"clickMove": {
- "label": "Klik kotak ini untuk menengahkan kamera",
- "enable": "Aktifkan klik untuk bergerak",
- "disable": "Non-aktifkan klik untuk bergerak"
+ "label": "Klik pada frame untuk memusatkan kamera",
+ "enable": "Aktifkan klik untuk memindahkan",
+ "disable": "Nonaktifkan klik untuk memindahkan",
+ "enableWithZoom": "Aktifkan klik untuk memindahkan / seret untuk memperbesar"
},
"left": {
- "label": "Geser kamera PTZ ke kiri"
+ "label": "Gerakkan kamera PTZ ke kiri"
},
"up": {
- "label": "Geser kamera PTZ keatas"
+ "label": "Gerakkan kamera PTZ ke atas"
},
"down": {
- "label": "Geser kamera PTZ kebawah"
+ "label": "Gerakkan kamera PTZ ke bawah"
},
"right": {
- "label": "Geser kamera PTZ ke kanan"
+ "label": "Gerakkan kamera PTZ ke kanan"
}
},
"zoom": {
"in": {
- "label": "Perbesar kamera PTZ"
+ "label": "Perbesar zoom kamera PTZ"
},
"out": {
- "label": "Perkecil kamera PTZ"
+ "label": "Perkecil zoom kamera PTZ"
}
},
"focus": {
"in": {
- "label": "Fokus kamera PTZ kedalam"
+ "label": "Fokuskan kamera PTZ ke dalam"
},
"out": {
- "label": "Fokus kamera PTZ keluar"
+ "label": "Fokuskan kamera PTZ ke luar"
}
},
"frame": {
"center": {
- "label": "Klik pada frame untuk menengahkan kamera PTZ"
+ "label": "Klik pada frame untuk memusatkan kamera PTZ"
}
},
"presets": "Preset kamera PTZ"
@@ -61,10 +62,139 @@
},
"muteCameras": {
"enable": "Bisukan Semua Kamera",
- "disable": "Bunyikan Semua Kamera"
+ "disable": "Suarakan Semua Kamera"
},
"detect": {
- "enable": "Aktifkan Pendeteksi",
- "disable": "Nonaktifkan Pendeteksi"
+ "enable": "Aktifkan Deteksi",
+ "disable": "Nonaktifkan Deteksi"
+ },
+ "recording": {
+ "enable": "Aktifkan Perekaman",
+ "disable": "Nonaktifkan Perekaman",
+ "disabledInConfig": "Perekaman harus terlebih dahulu diaktifkan di Pengaturan untuk kamera ini."
+ },
+ "snapshots": {
+ "enable": "Aktifkan Snapshot",
+ "disable": "Nonaktifkan Snapshot"
+ },
+ "snapshot": {
+ "takeSnapshot": "Unduh snapshot instan",
+ "noVideoSource": "Tidak ada sumber video yang tersedia untuk snapshot.",
+ "captureFailed": "Gagal mengambil snapshot.",
+ "downloadStarted": "Pengunduhan snapshot dimulai."
+ },
+ "audioDetect": {
+ "enable": "Aktifkan Deteksi Audio",
+ "disable": "Nonaktifkan Deteksi Audio"
+ },
+ "transcription": {
+ "enable": "Aktifkan Transkripsi Audio Langsung",
+ "disable": "Nonaktifkan Transkripsi Audio Langsung"
+ },
+ "autotracking": {
+ "enable": "Aktifkan Pelacakan Otomatis",
+ "disable": "Nonaktifkan Pelacakan Otomatis"
+ },
+ "streamStats": {
+ "enable": "Tampilkan Statistik Stream",
+ "disable": "Sembunyikan Statistik Stream"
+ },
+ "manualRecording": {
+ "title": "Sesuai Permintaan",
+ "tips": "Unduh snapshot instan atau mulai event manual berdasarkan pengaturan retensi rekaman kamera ini.",
+ "playInBackground": {
+ "label": "Putar di latar belakang",
+ "desc": "Aktifkan opsi ini untuk melanjutkan streaming saat pemutar disembunyikan."
+ },
+ "showStats": {
+ "label": "Tampilkan Statistik",
+ "desc": "Aktifkan opsi ini untuk menampilkan statistik stream sebagai overlay pada umpan kamera."
+ },
+ "debugView": "Tampilan Debug",
+ "start": "Mulai perekaman sesuai permintaan",
+ "started": "Perekaman manual sesuai permintaan dimulai.",
+ "failedToStart": "Gagal memulai perekaman manual sesuai permintaan.",
+ "recordDisabledTips": "Karena perekaman dinonaktifkan atau dibatasi dalam konfigurasi untuk kamera ini, hanya snapshot yang akan disimpan.",
+ "end": "Akhiri perekaman sesuai permintaan",
+ "ended": "Perekaman manual sesuai permintaan diakhiri.",
+ "failedToEnd": "Gagal mengakhiri perekaman manual sesuai permintaan."
+ },
+ "streamingSettings": "Pengaturan Streaming",
+ "notifications": "Notifikasi",
+ "audio": "Audio",
+ "suspend": {
+ "forTime": "Tangguhkan selama: "
+ },
+ "stream": {
+ "title": "Stream",
+ "audio": {
+ "tips": {
+ "title": "Audio harus dikeluarkan oleh kamera Anda dan dikonfigurasi di go2rtc untuk stream ini."
+ },
+ "available": "Audio tersedia untuk stream ini",
+ "unavailable": "Audio tidak tersedia untuk stream ini"
+ },
+ "debug": {
+ "picker": "Pemilihan stream tidak tersedia dalam mode debug. Tampilan debug selalu menggunakan stream yang ditetapkan ke peran detect."
+ },
+ "twoWayTalk": {
+ "tips": "Perangkat Anda harus mendukung fitur ini dan WebRTC harus dikonfigurasi untuk audio dua arah.",
+ "available": "Audio dua arah tersedia untuk stream ini",
+ "unavailable": "Audio dua arah tidak tersedia untuk stream ini"
+ },
+ "lowBandwidth": {
+ "tips": "Tampilan live berada dalam mode bandwidth rendah karena buffering atau kesalahan stream.",
+ "resetStream": "Atur ulang stream"
+ },
+ "playInBackground": {
+ "label": "Putar di latar belakang",
+ "tips": "Aktifkan opsi ini untuk melanjutkan streaming saat pemutar disembunyikan."
+ }
+ },
+ "cameraSettings": {
+ "title": "Pengaturan {{camera}}",
+ "cameraEnabled": "Kamera Diaktifkan",
+ "objectDetection": "Deteksi Objek",
+ "recording": "Perekaman",
+ "snapshots": "Snapshot",
+ "audioDetection": "Deteksi Audio",
+ "transcription": "Transkripsi Audio",
+ "autotracking": "Pelacakan Otomatis"
+ },
+ "history": {
+ "label": "Tampilkan rekaman historis"
+ },
+ "effectiveRetainMode": {
+ "modes": {
+ "all": "Semua",
+ "motion": "Gerakan",
+ "active_objects": "Objek Aktif"
+ }
+ },
+ "editLayout": {
+ "label": "Edit Tata Letak",
+ "group": {
+ "label": "Edit Grup Kamera"
+ },
+ "exitEdit": "Keluar dari Mode Edit"
+ },
+ "noCameras": {
+ "title": "Tidak Ada Kamera yang Dikonfigurasi",
+ "description": "Mulai dengan menghubungkan kamera ke Frigate.",
+ "buttonText": "Tambahkan Kamera",
+ "restricted": {
+ "title": "Tidak Ada Kamera yang Tersedia",
+ "description": "Anda tidak memiliki izin untuk melihat kamera apa pun di grup ini."
+ },
+ "default": {
+ "title": "Tidak Ada Kamera yang Dikonfigurasi",
+ "description": "Mulai dengan menghubungkan kamera ke Frigate.",
+ "buttonText": "Tambahkan Kamera"
+ },
+ "group": {
+ "title": "Tidak Ada Kamera dalam Grup",
+ "description": "Grup kamera ini tidak memiliki kamera yang ditetapkan atau diaktifkan.",
+ "buttonText": "Kelola Grup"
+ }
}
}
diff --git a/web/public/locales/id/views/motionSearch.json b/web/public/locales/id/views/motionSearch.json
index 0967ef424b..3a098d03ee 100644
--- a/web/public/locales/id/views/motionSearch.json
+++ b/web/public/locales/id/views/motionSearch.json
@@ -1 +1,73 @@
-{}
+{
+ "documentTitle": "Pencarian Gerakan - Frigate",
+ "title": "Pencarian Gerakan",
+ "description": "Gambar poligon untuk menentukan wilayah yang diminati, lalu tentukan rentang waktu untuk mencari perubahan gerakan di dalam wilayah tersebut.",
+ "selectCamera": "Pencarian Gerakan sedang dimuat",
+ "startSearch": "Mulai Pencarian",
+ "searchStarted": "Pencarian dimulai",
+ "searchCancelled": "Pencarian dibatalkan",
+ "cancelSearch": "Batal",
+ "searching": "Pencarian sedang berlangsung.",
+ "searchComplete": "Pencarian selesai",
+ "noResultsYet": "Jalankan pencarian untuk menemukan perubahan gerakan di wilayah yang dipilih",
+ "noChangesFound": "Tidak ada perubahan piksel yang terdeteksi di wilayah yang dipilih",
+ "changesFound_other": "Ditemukan {{count}} perubahan gerakan",
+ "framesProcessed": "{{count}} frame diproses",
+ "jumpToTime": "Lompat ke waktu ini",
+ "results": "Hasil",
+ "showSegmentHeatmap": "Peta panas",
+ "newSearch": "Pencarian Baru",
+ "clearResults": "Hapus Hasil",
+ "clearROI": "Hapus poligon",
+ "polygonControls": {
+ "points_other": "{{count}} titik",
+ "undo": "Urungkan titik terakhir",
+ "reset": "Atur ulang poligon"
+ },
+ "motionHeatmapLabel": "Peta Panas Gerakan",
+ "dialog": {
+ "title": "Pencarian Gerakan",
+ "cameraLabel": "Kamera",
+ "previewAlt": "Pratinjau kamera untuk {{camera}}"
+ },
+ "timeRange": {
+ "title": "Rentang Pencarian",
+ "start": "Waktu mulai",
+ "end": "Waktu selesai"
+ },
+ "settings": {
+ "title": "Pengaturan Pencarian",
+ "parallelMode": "Mode paralel",
+ "parallelModeDesc": "Pindai beberapa segmen rekaman secara bersamaan (lebih cepat, tetapi penggunaan CPU jauh lebih tinggi)",
+ "threshold": "Ambang Sensitivitas",
+ "thresholdDesc": "Nilai yang lebih rendah mendeteksi perubahan yang lebih kecil (1-255)",
+ "minArea": "Luas Perubahan Minimum",
+ "minAreaDesc": "Persentase minimum dari wilayah yang diminati yang harus berubah agar dianggap signifikan",
+ "frameSkip": "Lewati Frame",
+ "frameSkipDesc": "Proses setiap frame ke-N. Atur ini ke frame rate kamera Anda untuk memproses satu frame per detik (misalnya 5 untuk kamera 5 FPS, 30 untuk kamera 30 FPS). Nilai yang lebih tinggi akan lebih cepat, tetapi bisa melewatkan kejadian gerakan singkat.",
+ "maxResults": "Jumlah Hasil Maksimum",
+ "maxResultsDesc": "Berhenti setelah sebanyak ini cap waktu yang cocok"
+ },
+ "errors": {
+ "noCamera": "Silakan pilih kamera",
+ "noROI": "Silakan gambar wilayah yang diminati",
+ "noTimeRange": "Silakan pilih rentang waktu",
+ "invalidTimeRange": "Waktu selesai harus setelah waktu mulai",
+ "searchFailed": "Pencarian gagal: {{message}}",
+ "polygonTooSmall": "Poligon harus memiliki setidaknya 3 titik",
+ "unknown": "Kesalahan tidak diketahui"
+ },
+ "changePercentage": "{{percentage}}% berubah",
+ "metrics": {
+ "title": "Metrik Pencarian",
+ "segmentsScanned": "Segmen dipindai",
+ "segmentsProcessed": "Diproses",
+ "segmentsSkippedInactive": "Dilewati (tidak ada aktivitas)",
+ "segmentsSkippedHeatmap": "Dilewati (tidak ada tumpang tindih ROI)",
+ "fallbackFullRange": "Pemindaian rentang penuh cadangan",
+ "framesDecoded": "Frame didekode",
+ "wallTime": "Waktu pencarian",
+ "segmentErrors": "Kesalahan segmen",
+ "seconds": "{{seconds}} dtk"
+ }
+}
diff --git a/web/public/locales/id/views/replay.json b/web/public/locales/id/views/replay.json
index 0967ef424b..d47dbd0c90 100644
--- a/web/public/locales/id/views/replay.json
+++ b/web/public/locales/id/views/replay.json
@@ -1 +1,59 @@
-{}
+{
+ "title": "Pemutaran Ulang Debug",
+ "description": "Putar ulang rekaman kamera untuk debugging. Daftar objek menampilkan ringkasan objek terdeteksi yang tertunda waktu, dan tab Pesan menampilkan aliran pesan internal Frigate dari rekaman pemutaran ulang.",
+ "websocket_messages": "Pesan",
+ "dialog": {
+ "title": "Mulai Pemutaran Ulang Debug",
+ "description": "Buat kamera pemutaran ulang sementara yang memutar berulang rekaman historis untuk men-debug masalah deteksi dan pelacakan objek. Kamera pemutaran ulang akan memiliki konfigurasi deteksi yang sama dengan kamera sumber. Pilih rentang waktu untuk memulai.",
+ "camera": "Kamera Sumber",
+ "timeRange": "Rentang Waktu",
+ "preset": {
+ "1m": "1 Menit Terakhir",
+ "5m": "5 Menit Terakhir",
+ "timeline": "Dari Linimasa",
+ "custom": "Kustom"
+ },
+ "startButton": "Mulai Pemutaran Ulang",
+ "selectFromTimeline": "Pilih",
+ "starting": "Memulai pemutaran ulang...",
+ "startLabel": "Mulai",
+ "endLabel": "Selesai",
+ "toast": {
+ "error": "Gagal memulai pemutaran ulang debug: {{error}}",
+ "alreadyActive": "Sesi pemutaran ulang sudah aktif",
+ "stopError": "Gagal menghentikan pemutaran ulang debug: {{error}}",
+ "goToReplay": "Buka Pemutaran Ulang"
+ }
+ },
+ "page": {
+ "noSession": "Tidak Ada Sesi Pemutaran Ulang Debug Aktif",
+ "noSessionDesc": "Mulai Pemutaran Ulang Debug dari tampilan Riwayat dengan mengeklik tombol Aksi di bilah alat dan memilih Pemutaran Ulang Debug.",
+ "goToRecordings": "Buka Riwayat",
+ "preparingClip": "Menyiapkan klip…",
+ "preparingClipDesc": "Frigate sedang menggabungkan rekaman untuk rentang waktu yang dipilih. Ini dapat memakan waktu satu menit untuk rentang yang lebih panjang.",
+ "startingCamera": "Memulai Pemutaran Ulang Debug…",
+ "startError": {
+ "title": "Gagal memulai Pemutaran Ulang Debug",
+ "back": "Kembali ke Riwayat"
+ },
+ "sourceCamera": "Kamera Sumber",
+ "replayCamera": "Kamera Pemutaran Ulang",
+ "initializingReplay": "Menginisialisasi Pemutaran Ulang Debug...",
+ "stoppingReplay": "Menghentikan Pemutaran Ulang Debug...",
+ "stopReplay": "Hentikan Pemutaran Ulang",
+ "confirmStop": {
+ "title": "Hentikan Pemutaran Ulang Debug?",
+ "description": "Ini akan menghentikan sesi dan membersihkan semua data sementara. Anda yakin?",
+ "confirm": "Hentikan Pemutaran Ulang",
+ "cancel": "Batal"
+ },
+ "activity": "Aktivitas",
+ "objects": "Daftar Objek",
+ "audioDetections": "Deteksi Audio",
+ "noActivity": "Tidak ada aktivitas terdeteksi",
+ "activeTracking": "Pelacakan aktif",
+ "noActiveTracking": "Tidak ada pelacakan aktif",
+ "configuration": "Konfigurasi",
+ "configurationDesc": "Sesuaikan secara halus pengaturan deteksi gerakan dan pelacakan objek untuk kamera Pemutaran Ulang Debug. Tidak ada perubahan yang disimpan ke file konfigurasi Frigate Anda."
+ }
+}
diff --git a/web/public/locales/id/views/search.json b/web/public/locales/id/views/search.json
index 724b2b2d6c..9a4aa09baa 100644
--- a/web/public/locales/id/views/search.json
+++ b/web/public/locales/id/views/search.json
@@ -1,36 +1,73 @@
{
- "search": "Cari",
- "savedSearches": "Simpan Pencarian",
+ "search": "Pencarian",
+ "savedSearches": "Pencarian Tersimpan",
"searchFor": "Cari untuk {{inputValue}}",
"button": {
- "clear": "Bersihkan pencarian",
- "save": "Simpan Pencarian",
+ "clear": "Hapus pencarian",
+ "save": "Simpan pencarian",
"delete": "Hapus pencarian yang disimpan",
- "filterInformation": "Saring Informasi",
+ "filterInformation": "Informasi filter",
"filterActive": "Filter aktif"
},
- "trackedObjectId": "Tracked Object ID",
+ "trackedObjectId": "ID Objek yang Dilacak",
"filter": {
"label": {
"cameras": "Kamera",
"labels": "Label",
"zones": "Zona",
- "sub_labels": "Sublabel",
+ "sub_labels": "Sub Label",
"attributes": "Atribut",
- "search_type": "Tipe pencarian",
+ "search_type": "Jenis Pencarian",
"time_range": "Rentang Waktu",
"before": "Sebelum",
"after": "Sesudah",
- "min_score": "Minimal Skor",
- "max_score": "Maks Skor",
- "min_speed": "Kecepatan Min",
- "max_speed": "Kecepatan Maks",
- "recognized_license_plate": "Plat Kendaraan Dikenali",
- "has_clip": "Memiliki Klip",
- "has_snapshot": "Memiliki tangkapan layar"
+ "min_score": "Skor Minimum",
+ "max_score": "Skor Maksimum",
+ "min_speed": "Kecepatan Minimum",
+ "max_speed": "Kecepatan Maksimum",
+ "recognized_license_plate": "Pelat Nomor yang Diakui",
+ "has_clip": "Memiliki Video Klip",
+ "has_snapshot": "Memiliki Snapshot"
},
"searchType": {
- "thumbnail": "Tumbnail"
+ "thumbnail": "Gambar Mini",
+ "description": "Deskripsi"
+ },
+ "toast": {
+ "error": {
+ "beforeDateBeLaterAfter": "Tanggal 'before' harus lebih akhir daripada tanggal 'after'.",
+ "afterDatebeEarlierBefore": "Tanggal 'after' harus lebih awal daripada tanggal 'before'.",
+ "minScoreMustBeLessOrEqualMaxScore": "'min_score' harus lebih kecil dari atau sama dengan 'max_score'.",
+ "maxScoreMustBeGreaterOrEqualMinScore": "'max_score' harus lebih besar dari atau sama dengan 'min_score'.",
+ "minSpeedMustBeLessOrEqualMaxSpeed": "'min_speed' harus lebih kecil dari atau sama dengan 'max_speed'.",
+ "maxSpeedMustBeGreaterOrEqualMinSpeed": "'max_speed' harus lebih besar dari atau sama dengan 'min_speed'."
+ }
+ },
+ "tips": {
+ "title": "Cara menggunakan filter teks",
+ "desc": {
+ "text": "Filter membantu Anda mempersempit hasil pencarian. Berikut cara menggunakannya di kolom input:",
+ "step1": "Ketik nama kunci filter diikuti tanda titik dua (misalnya, \"cameras:\").",
+ "step2": "Pilih nilai dari saran atau ketik nilai Anda sendiri.",
+ "step3": "Gunakan beberapa filter dengan menambahkannya satu per satu dengan spasi di antaranya.",
+ "step4": "Filter tanggal (before: dan after:) menggunakan format {{DateFormat}}.",
+ "step5": "Filter rentang waktu menggunakan format {{exampleTime}}.",
+ "step6": "Hapus filter dengan mengklik tanda 'x' di sebelahnya.",
+ "exampleLabel": "Contoh:"
+ }
+ },
+ "header": {
+ "currentFilterType": "Nilai Filter",
+ "noFilters": "Filter",
+ "activeFilters": "Filter Aktif"
}
+ },
+ "similaritySearch": {
+ "title": "Pencarian Kemiripan",
+ "active": "Pencarian kemiripan aktif",
+ "clear": "Hapus pencarian kemiripan"
+ },
+ "placeholder": {
+ "search": "Pencarian…"
}
}
diff --git a/web/public/locales/id/views/settings.json b/web/public/locales/id/views/settings.json
index 831d9bb684..45c30aa92d 100644
--- a/web/public/locales/id/views/settings.json
+++ b/web/public/locales/id/views/settings.json
@@ -4,64 +4,1807 @@
"camera": "Pengaturan Kamera - Frigate",
"classification": "Pengaturan Klasifikasi - Frigate",
"authentication": "Pengaturan Autentikasi - Frigate",
- "masksAndZones": "Editor Mask dan Zona - Frigate",
+ "masksAndZones": "Editor Masker dan Zona - Frigate",
"motionTuner": "Penyetel Gerakan - Frigate",
- "general": "Frigate - Pengaturan Umum",
- "object": "Pengawakutu - Frigate",
- "enrichments": "Frigate - Pengaturan Pengayaan",
- "cameraManagement": "Pengaturan Kamera - Frigate",
- "cameraReview": "Pengaturan Ulasan Kamera - Frigate",
+ "general": "Pengaturan UI - Frigate",
+ "object": "Debug - Frigate",
+ "enrichments": "Pengaturan Pengayaan - Frigate",
+ "cameraManagement": "Kelola Kamera - Frigate",
+ "cameraReview": "Pengaturan Tinjauan Kamera - Frigate",
"frigatePlus": "Pengaturan Frigate+ - Frigate",
- "notifications": "Pengaturan Notifikasi - Frigate"
+ "notifications": "Pengaturan Notifikasi - Frigate",
+ "globalConfig": "Konfigurasi Global - Frigate",
+ "cameraConfig": "Konfigurasi Kamera - Frigate",
+ "detectorsAndModel": "Detektor dan model - Frigate",
+ "maintenance": "Pemeliharaan - Frigate",
+ "profiles": "Profil - Frigate"
},
"menu": {
"cameraManagement": "Manajemen",
"notifications": "Notifikasi",
- "ui": "Antarmuka Pengguna",
- "enrichments": "Peningkatan",
- "cameraReview": "Ulasan",
- "motionTuner": "Pengatur Gerak",
+ "ui": "UI",
+ "enrichments": "Pengayaan",
+ "cameraReview": "Tinjauan",
+ "motionTuner": "Penyetel gerakan",
"triggers": "Pemicu",
"users": "Pengguna",
"roles": "Peran",
"frigateplus": "Frigate+",
- "masksAndZones": "Mask / Zona",
- "debug": "Debug"
+ "masksAndZones": "Masker / Zona",
+ "debug": "Debug",
+ "general": "Umum",
+ "globalConfig": "Konfigurasi global",
+ "system": "Sistem",
+ "integrations": "Integrasi",
+ "cameras": "Konfigurasi kamera",
+ "uiSettings": "Pengaturan UI",
+ "profiles": "Profil",
+ "globalDetect": "Deteksi objek",
+ "globalRecording": "Perekaman",
+ "globalSnapshots": "Cuplikan",
+ "globalFfmpeg": "FFmpeg",
+ "globalMotion": "Deteksi gerakan",
+ "globalObjects": "Objek",
+ "globalReview": "Tinjauan",
+ "globalAudioEvents": "Deteksi audio",
+ "globalLivePlayback": "Pemutaran langsung",
+ "globalTimestampStyle": "Gaya stempel waktu",
+ "systemDatabase": "Basis data",
+ "systemTls": "TLS",
+ "systemAuthentication": "Autentikasi",
+ "systemNetworking": "Jaringan",
+ "systemProxy": "Proksi",
+ "systemUi": "UI",
+ "systemLogging": "Pencatatan log",
+ "systemEnvironmentVariables": "Variabel lingkungan",
+ "systemTelemetry": "Telemetri",
+ "systemBirdseye": "Birdseye",
+ "systemFfmpeg": "FFmpeg",
+ "systemDetectorsAndModel": "Detektor dan model",
+ "systemMqtt": "MQTT",
+ "systemGo2rtcStreams": "Stream go2rtc",
+ "integrationSemanticSearch": "Pencarian semantik",
+ "integrationGenerativeAi": "AI generatif",
+ "integrationFaceRecognition": "Pengenalan wajah",
+ "integrationLpr": "Pengenalan pelat nomor",
+ "integrationObjectClassification": "Klasifikasi objek",
+ "integrationAudioTranscription": "Transkripsi audio",
+ "cameraDetect": "Deteksi objek",
+ "cameraFfmpeg": "FFmpeg",
+ "cameraRecording": "Perekaman",
+ "cameraSnapshots": "Cuplikan",
+ "cameraMotion": "Deteksi gerakan",
+ "cameraObjects": "Objek",
+ "cameraConfigReview": "Tinjauan",
+ "cameraAudioEvents": "Deteksi audio",
+ "cameraAudioTranscription": "Transkripsi audio",
+ "cameraNotifications": "Notifikasi",
+ "cameraLivePlayback": "Pemutaran langsung",
+ "cameraBirdseye": "Birdseye",
+ "cameraFaceRecognition": "Pengenalan wajah",
+ "cameraLpr": "Pengenalan pelat nomor",
+ "cameraMqttConfig": "MQTT",
+ "cameraOnvif": "ONVIF",
+ "cameraUi": "UI Kamera",
+ "cameraTimestampStyle": "Gaya stempel waktu",
+ "cameraMqtt": "MQTT Kamera",
+ "maintenance": "Pemeliharaan",
+ "mediaSync": "Sinkronisasi media",
+ "regionGrid": "Grid wilayah"
},
"dialog": {
"unsavedChanges": {
"title": "Anda memiliki perubahan yang belum disimpan.",
- "desc": "Apakah Anda ingin menyimpan perubahan Anda sebelum melanjutkan?"
+ "desc": "Apakah Anda ingin menyimpan perubahan sebelum melanjutkan?"
}
},
"cameraSetting": {
"camera": "Kamera",
- "noCamera": "Tidak Ada Kamera"
+ "noCamera": "Tidak ada kamera"
},
"general": {
- "title": "Pengaturan Antarmuka Pengguna",
+ "title": "Pengaturan UI",
"liveDashboard": {
- "title": "Dashboard Langsung",
+ "title": "Dasbor Langsung",
"automaticLiveView": {
"label": "Tampilan Langsung Otomatis",
- "desc": "Secara otomatis beralih ke tampilan langsung kamera saat aktivitas terdeteksi. Menonaktifkan opsi ini menyebabkan gambar statis kamera di dasbor langsung hanya diperbarui sekali per menit."
+ "desc": "Secara otomatis beralih ke tampilan langsung kamera saat aktivitas terdeteksi. Menonaktifkan opsi ini menyebabkan gambar kamera statis pada dasbor Langsung hanya diperbarui sekali per menit."
+ },
+ "playAlertVideos": {
+ "label": "Putar Video Peringatan",
+ "desc": "Secara default, peringatan terbaru di dasbor Langsung diputar sebagai video kecil yang berulang. Nonaktifkan opsi ini untuk hanya menampilkan gambar statis dari peringatan terbaru pada perangkat/browser ini."
+ },
+ "displayCameraNames": {
+ "label": "Selalu Tampilkan Nama Kamera",
+ "desc": "Selalu tampilkan nama kamera dalam chip pada dasbor tampilan langsung multi-kamera."
+ },
+ "liveFallbackTimeout": {
+ "label": "Batas Waktu Fallback Pemutar Langsung",
+ "desc": "Saat stream langsung kualitas tinggi kamera tidak tersedia, alihkan ke mode bandwidth rendah setelah sekian detik. Default: 3."
+ }
+ },
+ "storedLayouts": {
+ "title": "Tata Letak Tersimpan",
+ "desc": "Tata letak kamera dalam grup kamera dapat diseret/diubah ukurannya. Posisi disimpan di penyimpanan lokal browser Anda.",
+ "clearAll": "Hapus Semua Tata Letak"
+ },
+ "cameraGroupStreaming": {
+ "title": "Pengaturan Streaming Grup Kamera",
+ "desc": "Pengaturan streaming untuk setiap grup kamera disimpan di penyimpanan lokal browser Anda.",
+ "clearAll": "Hapus Semua Pengaturan Streaming"
+ },
+ "recordingsViewer": {
+ "title": "Penampil Rekaman",
+ "defaultPlaybackRate": {
+ "label": "Kecepatan Pemutaran Default",
+ "desc": "Kecepatan pemutaran default untuk pemutaran rekaman."
+ }
+ },
+ "calendar": {
+ "title": "Kalender",
+ "firstWeekday": {
+ "label": "Hari Pertama dalam Minggu",
+ "desc": "Hari saat minggu pada kalender tinjauan dimulai.",
+ "sunday": "Minggu",
+ "monday": "Senin"
+ }
+ },
+ "toast": {
+ "success": {
+ "clearStoredLayout": "Tata letak tersimpan untuk {{cameraName}} telah dihapus",
+ "clearStreamingSettings": "Pengaturan streaming untuk semua grup kamera telah dihapus."
+ },
+ "error": {
+ "clearStoredLayoutFailed": "Gagal menghapus tata letak tersimpan: {{errorMessage}}",
+ "clearStreamingSettingsFailed": "Gagal menghapus pengaturan streaming: {{errorMessage}}"
}
}
},
"configMessages": {
"audioTranscription": {
- "audioDetectionDisabled": "Pendeteksi suara tidak dinyalakan untuk kamera ini. Transkripsi suara memerlukan pendeteksi suara untuk dinyalakan."
+ "audioDetectionDisabled": "Deteksi audio tidak diaktifkan untuk kamera ini. Transkripsi audio memerlukan deteksi audio yang aktif."
},
"detect": {
- "fpsGreaterThanFive": "Pengaturan FPS untuk pendeteksian lebih dari 5 tidak disarankan."
+ "fpsGreaterThanFive": "Mengatur FPS deteksi lebih dari 5 tidak direkomendasikan. Nilai yang lebih tinggi dapat menyebabkan masalah performa dan tidak akan memberikan manfaat apa pun.",
+ "disabled": "Deteksi objek dinonaktifkan. Cuplikan, item tinjauan, dan pengayaan seperti pengenalan wajah, pengenalan pelat nomor, dan AI Generatif tidak akan berfungsi."
},
"faceRecognition": {
- "globalDisabled": "Pendeteksi muka tidak dinyalakan dalam level global. Nyalakan pendeteksi muka dalam pengaturan global agar per-kamera deteksi muka dapat bekerja.",
- "personNotTracked": "Pendeteksi muka memerlukan 'orang' sebagai objek deteksi. Pastikan 'orang' berada dalam hal yang dideteksi."
+ "globalDisabled": "Pengayaan pengenalan wajah harus diaktifkan agar fitur pengenalan wajah berfungsi pada kamera ini.",
+ "personNotTracked": "Pengenalan wajah memerlukan objek 'person' untuk dilacak. Aktifkan 'person' di Objek untuk kamera ini.",
+ "modelSizeLarge": "Model 'large' memerlukan GPU atau NPU untuk performa yang wajar. Gunakan 'small' pada sistem yang hanya menggunakan CPU."
},
"lpr": {
- "globalDisabled": "Pendeteksian plat nomor tidak dinyalakan dalam pengaturan global. Nyalakan deteksi plat nomor dalam pengaturan global agar fungsi ini dapat bekerja.",
- "vehicleNotTracked": "Pendeteksian plat nomor memerlukan 'mobil' atau 'motor' untuk dideteksi."
+ "globalDisabled": "Pengayaan pengenalan pelat nomor harus diaktifkan agar fitur LPR berfungsi pada kamera ini.",
+ "vehicleNotTracked": "Pengenalan pelat nomor memerlukan 'car' atau 'motorcycle' untuk dilacak. Aktifkan 'car' atau 'motorcycle' di Objek untuk kamera ini.",
+ "modelSizeLarge": "Model 'large' dioptimalkan untuk pelat nomor multi-baris. Model 'small' memberikan performa lebih baik daripada 'large' dan sebaiknya digunakan kecuali wilayah Anda menggunakan format pelat multi-baris."
+ },
+ "review": {
+ "recordDisabled": "Perekaman dinonaktifkan, item tinjauan tidak akan dibuat.",
+ "detectDisabled": "Deteksi objek dinonaktifkan. Item tinjauan memerlukan objek yang terdeteksi untuk mengategorikan alert dan deteksi.",
+ "allNonAlertDetections": "Semua aktivitas non-alert akan disertakan sebagai deteksi.",
+ "genaiImageSourceRecordingsRecordDisabled": "Sumber gambar disetel ke 'rekaman', tetapi perekaman dinonaktifkan. Frigate akan kembali ke gambar pratinjau."
+ },
+ "audio": {
+ "noAudioRole": "Tidak ada stream yang memiliki peran audio yang didefinisikan. Anda harus mengaktifkan peran audio agar deteksi audio berfungsi."
+ },
+ "objects": {
+ "genaiNoDescriptionsProvider": "Anda harus mengonfigurasi penyedia GenAI dengan peran 'deskripsi' agar deskripsi dapat dibuat."
+ },
+ "record": {
+ "noRecordRole": "Tidak ada stream yang memiliki peran record yang didefinisikan. Perekaman tidak akan berfungsi."
+ },
+ "birdseye": {
+ "objectsModeDetectDisabled": "Birdseye disetel ke mode 'objects', tetapi deteksi objek dinonaktifkan untuk kamera ini. Kamera tidak akan muncul di Birdseye."
+ },
+ "snapshots": {
+ "detectDisabled": "Deteksi objek dinonaktifkan. Cuplikan dihasilkan dari objek yang terlacak dan tidak akan dibuat."
+ },
+ "detectors": {
+ "mixedTypes": "Semua detektor harus menggunakan tipe yang sama. Hapus detektor yang ada untuk menggunakan tipe yang berbeda.",
+ "mixedTypesSuggestion": "Semua detektor harus menggunakan tipe yang sama. Hapus detektor yang ada atau pilih {{type}}."
+ },
+ "semanticSearch": {
+ "jinav2SmallModelSize": "Ukuran 'small' dengan model Jina V2 memiliki RAM tinggi dan biaya inferensi. Model 'large' dengan GPU diskrit direkomendasikan."
}
+ },
+ "button": {
+ "overriddenGlobal": "Ditimpa (Global)",
+ "overriddenGlobalTooltip": "Kamera ini menimpa pengaturan konfigurasi global di bagian ini",
+ "overriddenGlobalHeading_other": "Kamera ini menimpa {{count}} bidang dari konfigurasi global:",
+ "overriddenGlobalNoDeltas": "Kamera ini menimpa konfigurasi global, tetapi tidak ada nilai bidang yang berbeda.",
+ "overriddenBaseConfig": "Ditimpa (Konfigurasi Dasar)",
+ "overriddenBaseConfigTooltip": "Profil {{profile}} menimpa pengaturan konfigurasi di bagian ini",
+ "overriddenBaseConfigHeading_other": "Profil {{profile}} menimpa {{count}} bidang dari konfigurasi dasar:",
+ "overriddenBaseConfigNoDeltas": "Profil {{profile}} menimpa bagian ini, tetapi tidak ada nilai bidang yang berbeda dari konfigurasi dasar.",
+ "overriddenInCameras": {
+ "label_other": "Ditimpa di {{count}} kamera",
+ "tooltip_other": "{{count}} kamera menimpa nilai di bagian ini. Klik untuk melihat detail.",
+ "heading_other": "Bagian global ini memiliki bidang yang ditimpa di {{count}} kamera.",
+ "othersField_other": "{{count}} lainnya",
+ "profilePrefix": "Profil {{profile}}: {{fields}}"
+ }
+ },
+ "menuDot": {
+ "overrideGlobal": "Bagian ini menimpa konfigurasi global",
+ "overrideProfile": "Bagian ini ditimpa oleh profil {{profile}}",
+ "unsaved": "Bagian ini memiliki perubahan yang belum disimpan"
+ },
+ "saveAllPreview": {
+ "title": "Perubahan yang akan disimpan",
+ "triggerLabel": "Tinjau perubahan yang tertunda",
+ "empty": "Tidak ada perubahan yang tertunda.",
+ "scope": {
+ "label": "Cakupan",
+ "global": "Global",
+ "camera": "Kamera: {{cameraName}}"
+ },
+ "profile": {
+ "label": "Profil"
+ },
+ "field": {
+ "label": "Bidang"
+ },
+ "value": {
+ "label": "Nilai baru",
+ "reset": "Atur ulang"
+ }
+ },
+ "enrichments": {
+ "title": "Pengaturan Pengayaan",
+ "unsavedChanges": "Perubahan pengaturan Pengayaan yang belum disimpan",
+ "birdClassification": {
+ "title": "Klasifikasi Burung",
+ "desc": "Klasifikasi burung mengidentifikasi burung yang dikenal menggunakan model Tensorflow terkuantisasi. Saat burung yang dikenal dikenali, nama umumnya akan ditambahkan sebagai sub_label. Informasi ini disertakan dalam UI, filter, serta notifikasi."
+ },
+ "semanticSearch": {
+ "title": "Pencarian Semantik",
+ "desc": "Pencarian Semantik di Frigate memungkinkan Anda menemukan objek yang terlacak dalam item tinjauan menggunakan gambar itu sendiri, deskripsi teks yang ditentukan pengguna, atau deskripsi yang dibuat secara otomatis.",
+ "reindexNow": {
+ "label": "Indeks Ulang Sekarang",
+ "desc": "Pengindeksan ulang akan membuat ulang embedding untuk semua objek yang terlacak. Proses ini berjalan di latar belakang dan dapat memaksimalkan penggunaan CPU Anda serta memerlukan waktu cukup lama tergantung pada jumlah objek yang terlacak yang Anda miliki.",
+ "confirmTitle": "Konfirmasi Pengindeksan Ulang",
+ "confirmDesc": "Apakah Anda yakin ingin mengindeks ulang semua embedding objek yang terlacak? Proses ini akan berjalan di latar belakang, tetapi dapat memaksimalkan penggunaan CPU Anda dan memerlukan waktu cukup lama. Anda dapat memantau progresnya di halaman Jelajahi.",
+ "confirmButton": "Indeks Ulang",
+ "success": "Pengindeksan ulang berhasil dimulai.",
+ "alreadyInProgress": "Pengindeksan ulang sudah sedang berlangsung.",
+ "error": "Gagal memulai pengindeksan ulang: {{errorMessage}}"
+ },
+ "modelSize": {
+ "label": "Ukuran Model",
+ "desc": "Ukuran model yang digunakan untuk embedding pencarian semantik.",
+ "small": {
+ "title": "kecil",
+ "desc": "Menggunakan small akan memakai versi model terkuantisasi yang menggunakan RAM lebih sedikit dan berjalan lebih cepat pada CPU dengan perbedaan kualitas embedding yang sangat kecil."
+ },
+ "large": {
+ "title": "besar",
+ "desc": "Menggunakan large memakai model Jina penuh dan akan otomatis berjalan pada GPU jika memungkinkan."
+ }
+ }
+ },
+ "faceRecognition": {
+ "title": "Pengenalan Wajah",
+ "desc": "Pengenalan wajah memungkinkan orang diberi nama, dan saat wajah mereka dikenali Frigate akan menetapkan nama orang tersebut sebagai sub_label. Informasi ini disertakan dalam UI, filter, serta notifikasi.",
+ "modelSize": {
+ "label": "Ukuran Model",
+ "desc": "Ukuran model yang digunakan untuk pengenalan wajah.",
+ "small": {
+ "title": "kecil",
+ "desc": "Menggunakan small memakai model embedding wajah FaceNet yang berjalan efisien pada sebagian besar CPU."
+ },
+ "large": {
+ "title": "besar",
+ "desc": "Menggunakan large memakai model embedding wajah ArcFace dan akan otomatis berjalan pada GPU jika memungkinkan."
+ }
+ }
+ },
+ "licensePlateRecognition": {
+ "title": "Pengenalan Pelat Nomor",
+ "desc": "Frigate dapat mengenali pelat nomor pada kendaraan dan secara otomatis menambahkan karakter yang terdeteksi ke field recognized_license_plate atau nama yang dikenal sebagai sub_label pada objek bertipe mobil. Kasus penggunaan yang umum adalah membaca pelat nomor mobil yang masuk ke jalan masuk rumah atau mobil yang melintas di jalan."
+ },
+ "restart_required": "Perlu mulai ulang (pengaturan Pengayaan berubah)",
+ "toast": {
+ "success": "Pengaturan Pengayaan telah disimpan. Mulai ulang Frigate untuk menerapkan perubahan Anda.",
+ "error": "Gagal menyimpan perubahan konfigurasi: {{errorMessage}}"
+ }
+ },
+ "cameraWizard": {
+ "title": "Tambah Kamera",
+ "description": "Ikuti langkah-langkah di bawah ini untuk menambahkan kamera baru ke instalasi Frigate Anda.",
+ "steps": {
+ "nameAndConnection": "Nama & Koneksi",
+ "probeOrSnapshot": "Probe atau Cuplikan",
+ "streamConfiguration": "Konfigurasi Stream",
+ "validationAndTesting": "Validasi & Pengujian"
+ },
+ "save": {
+ "success": "Berhasil menyimpan kamera baru {{cameraName}}.",
+ "failure": "Kesalahan saat menyimpan {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Resolusi",
+ "video": "Video",
+ "audio": "Audio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Harap berikan URL stream yang valid",
+ "testFailed": "Pengujian stream gagal: {{error}}"
+ },
+ "step1": {
+ "description": "Masukkan detail kamera Anda dan pilih untuk memeriksa kamera atau memilih merek secara manual.",
+ "cameraName": "Nama Kamera",
+ "cameraNamePlaceholder": "mis., front_door atau Back Yard Overview",
+ "host": "Alamat Host/IP",
+ "port": "Port",
+ "username": "Nama Pengguna",
+ "usernamePlaceholder": "Opsional",
+ "password": "Kata Sandi",
+ "passwordPlaceholder": "Opsional",
+ "selectTransport": "Pilih protokol transport",
+ "cameraBrand": "Merek Kamera",
+ "selectBrand": "Pilih merek kamera untuk template URL",
+ "customUrl": "URL Stream Kustom",
+ "brandInformation": "Informasi merek",
+ "brandUrlFormat": "Untuk kamera dengan format URL RTSP seperti: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "connectionSettings": "Pengaturan Koneksi",
+ "detectionMethod": "Metode Deteksi Stream",
+ "onvifPort": "Port ONVIF",
+ "probeMode": "Periksa kamera",
+ "manualMode": "Pilihan manual",
+ "detectionMethodDescription": "Periksa kamera dengan ONVIF (jika didukung) untuk menemukan URL stream kamera, atau pilih merek kamera secara manual untuk menggunakan URL yang telah ditentukan sebelumnya. Untuk memasukkan URL RTSP kustom, pilih metode manual dan pilih \"Lainnya\".",
+ "onvifPortDescription": "Untuk kamera yang mendukung ONVIF, biasanya ini adalah 80 atau 8080.",
+ "useDigestAuth": "Gunakan autentikasi digest",
+ "useDigestAuthDescription": "Gunakan autentikasi digest HTTP untuk ONVIF. Beberapa kamera mungkin memerlukan nama pengguna/kata sandi ONVIF khusus alih-alih pengguna admin standar.",
+ "errors": {
+ "brandOrCustomUrlRequired": "Pilih merek kamera dengan host/IP atau pilih 'Lainnya' dengan URL kustom",
+ "nameRequired": "Nama kamera wajib diisi",
+ "nameLength": "Nama kamera harus 64 karakter atau kurang",
+ "invalidCharacters": "Nama kamera mengandung karakter yang tidak valid",
+ "nameExists": "Nama kamera sudah ada",
+ "customUrlRtspRequired": "URL kustom harus diawali dengan \"rtsp://\". Konfigurasi manual diperlukan untuk stream kamera non-RTSP."
+ }
+ },
+ "step2": {
+ "description": "Periksa kamera untuk stream yang tersedia atau konfigurasi pengaturan manual berdasarkan metode deteksi yang Anda pilih.",
+ "testSuccess": "Pengujian koneksi berhasil!",
+ "testFailed": "Pengujian koneksi gagal. Harap periksa input Anda dan coba lagi.",
+ "testFailedTitle": "Pengujian Gagal",
+ "streamDetails": "Detail Stream",
+ "probing": "Sedang memeriksa kamera...",
+ "retry": "Coba lagi",
+ "testing": {
+ "probingMetadata": "Sedang memeriksa metadata kamera...",
+ "fetchingSnapshot": "Sedang mengambil cuplikan kamera..."
+ },
+ "probeFailed": "Gagal memeriksa kamera: {{error}}",
+ "probingDevice": "Sedang memeriksa perangkat...",
+ "probeSuccessful": "Pemeriksaan berhasil",
+ "probeError": "Kesalahan Pemeriksaan",
+ "probeNoSuccess": "Pemeriksaan tidak berhasil",
+ "deviceInfo": "Informasi Perangkat",
+ "manufacturer": "Produsen",
+ "model": "Model",
+ "firmware": "Firmware",
+ "profiles": "Profil",
+ "ptzSupport": "Dukungan PTZ",
+ "autotrackingSupport": "Dukungan Pelacakan Otomatis",
+ "presets": "Preset",
+ "rtspCandidates": "Kandidat RTSP",
+ "rtspCandidatesDescription": "URL RTSP berikut ditemukan dari pemeriksaan kamera. Uji koneksi untuk melihat metadata stream.",
+ "noRtspCandidates": "Tidak ada URL RTSP yang ditemukan dari kamera. Kredensial Anda mungkin salah, atau kamera mungkin tidak mendukung ONVIF atau metode yang digunakan untuk mengambil URL RTSP. Kembali dan masukkan URL RTSP secara manual.",
+ "candidateStreamTitle": "Kandidat {{number}}",
+ "useCandidate": "Gunakan",
+ "uriCopy": "Salin",
+ "uriCopied": "URI disalin ke clipboard",
+ "testConnection": "Uji Koneksi",
+ "toggleUriView": "Klik untuk mengalihkan tampilan URI penuh",
+ "connected": "Terhubung",
+ "notConnected": "Tidak Terhubung",
+ "errors": {
+ "hostRequired": "Alamat host/IP wajib diisi"
+ }
+ },
+ "step3": {
+ "description": "Konfigurasikan peran stream dan tambahkan stream tambahan untuk kamera Anda.",
+ "streamsTitle": "Stream Kamera",
+ "addStream": "Tambah Stream",
+ "addAnotherStream": "Tambah Stream Lain",
+ "streamTitle": "Stream {{number}}",
+ "streamUrl": "URL Stream",
+ "streamUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "selectStream": "Pilih sebuah stream",
+ "searchCandidates": "Cari kandidat...",
+ "noStreamFound": "Stream tidak ditemukan",
+ "url": "URL",
+ "resolution": "Resolusi",
+ "selectResolution": "Pilih resolusi",
+ "quality": "Kualitas",
+ "selectQuality": "Pilih kualitas",
+ "roles": "Peran",
+ "roleLabels": {
+ "detect": "Deteksi Objek",
+ "record": "Perekaman",
+ "audio": "Audio"
+ },
+ "testStream": "Uji Koneksi",
+ "testSuccess": "Pengujian stream berhasil!",
+ "testFailed": "Pengujian stream gagal",
+ "testFailedTitle": "Pengujian Gagal",
+ "connected": "Terhubung",
+ "notConnected": "Tidak Terhubung",
+ "featuresTitle": "Fitur",
+ "go2rtc": "Kurangi koneksi ke kamera",
+ "detectRoleWarning": "Setidaknya satu stream harus memiliki peran \"detect\" untuk melanjutkan.",
+ "rolesPopover": {
+ "title": "Peran Stream",
+ "detect": "Umpan utama untuk deteksi objek.",
+ "record": "Menyimpan segmen umpan video berdasarkan pengaturan konfigurasi.",
+ "audio": "Umpan untuk deteksi berbasis audio."
+ },
+ "featuresPopover": {
+ "title": "Fitur Stream",
+ "description": "Gunakan restreaming go2rtc untuk mengurangi koneksi ke kamera Anda."
+ }
+ },
+ "step4": {
+ "description": "Validasi dan analisis akhir sebelum menyimpan kamera baru Anda. Hubungkan setiap stream sebelum menyimpan.",
+ "validationTitle": "Validasi Stream",
+ "connectAllStreams": "Hubungkan Semua Stream",
+ "reconnectionSuccess": "Penyambungan ulang berhasil.",
+ "reconnectionPartial": "Beberapa stream gagal disambungkan ulang.",
+ "streamUnavailable": "Pratinjau stream tidak tersedia",
+ "reload": "Muat ulang",
+ "connecting": "Menghubungkan...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Valid",
+ "failed": "Gagal",
+ "notTested": "Belum diuji",
+ "connectStream": "Hubungkan",
+ "connectingStream": "Sedang menghubungkan",
+ "disconnectStream": "Putuskan",
+ "estimatedBandwidth": "Perkiraan Bandwidth",
+ "roles": "Peran",
+ "ffmpegModule": "Gunakan mode kompatibilitas stream",
+ "ffmpegModuleDescription": "Jika stream tidak dimuat setelah beberapa kali percobaan, coba aktifkan ini. Saat diaktifkan, Frigate akan menggunakan modul ffmpeg dengan go2rtc. Ini dapat memberikan kompatibilitas yang lebih baik dengan beberapa stream kamera.",
+ "none": "Tidak ada",
+ "error": "Kesalahan",
+ "streamValidated": "Stream {{number}} berhasil divalidasi",
+ "streamValidationFailed": "Validasi stream {{number}} gagal",
+ "saveAndApply": "Simpan Kamera Baru",
+ "saveError": "Konfigurasi tidak valid. Harap periksa pengaturan Anda.",
+ "issues": {
+ "title": "Validasi Stream",
+ "videoCodecGood": "Codec video adalah {{codec}}.",
+ "audioCodecGood": "Codec audio adalah {{codec}}.",
+ "resolutionHigh": "Resolusi {{resolution}} dapat menyebabkan peningkatan penggunaan sumber daya.",
+ "resolutionLow": "Resolusi {{resolution}} mungkin terlalu rendah untuk deteksi objek kecil yang andal.",
+ "resolutionUnknown": "Resolusi stream ini tidak dapat diperiksa. Anda harus menetapkan resolusi detect secara manual di Pengaturan atau konfigurasi Anda.",
+ "noAudioWarning": "Tidak ada audio yang terdeteksi untuk stream ini, rekaman tidak akan memiliki audio.",
+ "audioCodecRecordError": "Codec audio AAC diperlukan untuk mendukung audio dalam rekaman.",
+ "audioCodecRequired": "Stream audio diperlukan untuk mendukung deteksi audio.",
+ "restreamingWarning": "Mengurangi koneksi ke kamera untuk stream record dapat sedikit meningkatkan penggunaan CPU.",
+ "brands": {
+ "reolink-rtsp": "RTSP Reolink tidak direkomendasikan. Aktifkan HTTP di pengaturan firmware kamera dan mulai ulang wizard.",
+ "reolink-http": "Stream HTTP Reolink sebaiknya menggunakan FFmpeg untuk kompatibilitas yang lebih baik. Aktifkan 'Gunakan mode kompatibilitas stream' untuk stream ini."
+ },
+ "dahua": {
+ "substreamWarning": "Substream 1 terkunci pada resolusi rendah. Banyak kamera Dahua / Amcrest / EmpireTech mendukung substream tambahan yang perlu diaktifkan di pengaturan kamera. Disarankan untuk memeriksa dan menggunakan stream tersebut jika tersedia."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream 1 terkunci pada resolusi rendah. Banyak kamera Hikvision mendukung substream tambahan yang perlu diaktifkan di pengaturan kamera. Disarankan untuk memeriksa dan menggunakan stream tersebut jika tersedia."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Kelola Kamera",
+ "description": "Tambahkan, edit, dan hapus kamera, kontrol kamera mana yang diaktifkan, serta konfigurasikan penimpaan per profil dan tipe kamera. Untuk mengonfigurasi stream, deteksi, gerakan, dan pengaturan khusus kamera lainnya, pilih bagian spesifik di bawah Konfigurasi Kamera.",
+ "addCamera": "Tambah Kamera Baru",
+ "deleteCamera": "Hapus Kamera",
+ "deleteCameraDialog": {
+ "title": "Hapus Kamera",
+ "description": "Menghapus kamera akan menghapus secara permanen semua rekaman, objek terlacak, dan konfigurasi untuk kamera tersebut. Semua stream go2rtc yang terkait dengan kamera ini mungkin masih perlu dihapus secara manual.",
+ "selectPlaceholder": "Pilih kamera...",
+ "confirmTitle": "Apakah Anda yakin?",
+ "confirmWarning": "Menghapus {{cameraName}} tidak dapat dibatalkan.",
+ "deleteExports": "Juga hapus ekspor untuk kamera ini",
+ "confirmButton": "Hapus Permanen",
+ "success": "Kamera {{cameraName}} berhasil dihapus",
+ "error": "Gagal menghapus kamera {{cameraName}}"
+ },
+ "editCamera": "Edit Kamera:",
+ "selectCamera": "Pilih Kamera",
+ "backToSettings": "Kembali ke Pengaturan Kamera",
+ "streams": {
+ "title": "Aktifkan / Nonaktifkan Kamera",
+ "enableLabel": "Kamera yang diaktifkan",
+ "enableDesc": "Nonaktifkan sementara kamera yang aktif hingga Frigate dimulai ulang. Menonaktifkan kamera sepenuhnya akan menghentikan seluruh pemrosesan stream kamera ini oleh Frigate. Deteksi, perekaman, dan debugging tidak akan tersedia.
Catatan: Ini tidak menonaktifkan restream go2rtc.
Seret pegangan untuk mengubah urutan kamera sebagaimana ditampilkan di UI. Urutan kamera yang aktif akan tercermin di seluruh UI termasuk dasbor Langsung dan dropdown pemilihan kamera.",
+ "disableLabel": "Kamera yang dinonaktifkan",
+ "disableDesc": "Aktifkan kamera yang saat ini tidak terlihat di UI dan dinonaktifkan dalam konfigurasi. Mulai ulang Frigate diperlukan setelah mengaktifkan.",
+ "enableSuccess": "{{cameraName}} telah diaktifkan dalam konfigurasi. Mulai ulang Frigate untuk menerapkan perubahan.",
+ "reorderHandle": "Seret untuk mengubah urutan",
+ "saving": "Menyimpan…",
+ "saved": "Tersimpan",
+ "friendlyName": {
+ "edit": "Edit nama tampilan kamera",
+ "title": "Edit Nama Tampilan",
+ "description": "Tetapkan nama ramah yang ditampilkan untuk kamera ini di seluruh UI Frigate. Biarkan kosong untuk menggunakan ID kamera.",
+ "rename": "Ubah Nama"
+ }
+ },
+ "cameraConfig": {
+ "add": "Tambah Kamera",
+ "edit": "Edit Kamera",
+ "description": "Konfigurasikan pengaturan kamera termasuk input stream dan perannya.",
+ "name": "Nama Kamera",
+ "nameRequired": "Nama kamera wajib diisi",
+ "nameLength": "Nama kamera harus kurang dari 64 karakter.",
+ "namePlaceholder": "mis., front_door atau Back Yard Overview",
+ "enabled": "Diaktifkan",
+ "ffmpeg": {
+ "inputs": "Input Stream",
+ "path": "Path Stream",
+ "pathRequired": "Path stream wajib diisi",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Peran",
+ "rolesRequired": "Setidaknya satu peran wajib diisi",
+ "rolesUnique": "Setiap peran (audio, detect, record) hanya dapat ditetapkan ke satu stream",
+ "addInput": "Tambah Input Stream",
+ "removeInput": "Hapus Input Stream",
+ "inputsRequired": "Setidaknya satu input stream wajib diisi"
+ },
+ "go2rtcStreams": "Stream go2rtc",
+ "streamUrls": "URL Stream",
+ "addUrl": "Tambah URL",
+ "addGo2rtcStream": "Tambah Stream go2rtc",
+ "toast": {
+ "success": "Kamera {{cameraName}} berhasil disimpan"
+ }
+ },
+ "profiles": {
+ "title": "Penimpaan Kamera per Profil",
+ "selectLabel": "Pilih profil",
+ "description": "Konfigurasikan kamera mana yang diaktifkan atau dinonaktifkan saat profil diaktifkan. Kamera yang diatur ke \"Warisi\" akan mempertahankan status aktif dasar mereka.",
+ "inherit": "Warisi",
+ "enabled": "Diaktifkan",
+ "disabled": "Dinonaktifkan"
+ },
+ "cameraType": {
+ "title": "Tipe Kamera",
+ "label": "Tipe kamera",
+ "description": "Tetapkan tipe untuk setiap kamera. Kamera LPR khusus adalah kamera satu fungsi dengan zoom optik kuat untuk menangkap pelat nomor pada kendaraan yang jauh. Sebagian besar kamera sebaiknya menggunakan tipe kamera normal kecuali kamera tersebut memang khusus untuk LPR dan memiliki tampilan yang sangat terfokus pada pelat nomor.",
+ "normal": "Normal",
+ "dedicatedLpr": "LPR Khusus",
+ "saveSuccess": "Tipe kamera untuk {{cameraName}} telah diperbarui. Mulai ulang Frigate untuk menerapkan perubahan."
+ }
+ },
+ "cameraReview": {
+ "title": "Pengaturan Tinjauan Kamera",
+ "object_descriptions": {
+ "title": "Deskripsi Objek AI Generatif",
+ "desc": "Aktifkan/nonaktifkan sementara deskripsi objek AI Generatif untuk kamera ini hingga Frigate dimulai ulang. Saat dinonaktifkan, deskripsi yang dihasilkan AI tidak akan diminta untuk objek terlacak pada kamera ini."
+ },
+ "review_descriptions": {
+ "title": "Deskripsi Tinjauan AI Generatif",
+ "desc": "Aktifkan/nonaktifkan sementara deskripsi tinjauan AI Generatif untuk kamera ini hingga Frigate dimulai ulang. Saat dinonaktifkan, deskripsi yang dihasilkan AI tidak akan diminta untuk item tinjauan pada kamera ini."
+ },
+ "review": {
+ "title": "Tinjauan",
+ "desc": "Aktifkan/nonaktifkan sementara alert dan deteksi untuk kamera ini hingga Frigate dimulai ulang. Saat dinonaktifkan, tidak ada item tinjauan baru yang akan dibuat. ",
+ "alerts": "Alert ",
+ "detections": "Deteksi "
+ },
+ "reviewClassification": {
+ "title": "Klasifikasi Tinjauan",
+ "desc": "Frigate mengategorikan item tinjauan sebagai Alert dan Deteksi. Secara default, semua objek person dan car dianggap sebagai Alert. Anda dapat menyempurnakan kategorisasi item tinjauan Anda dengan mengonfigurasi zona yang diwajibkan untuk item tersebut.",
+ "noDefinedZones": "Tidak ada zona yang didefinisikan untuk kamera ini.",
+ "objectAlertsTips": "Semua objek {{alertsLabels}} pada {{cameraName}} akan ditampilkan sebagai Alert.",
+ "zoneObjectAlertsTips": "Semua objek {{alertsLabels}} yang terdeteksi di {{zone}} pada {{cameraName}} akan ditampilkan sebagai Alert.",
+ "objectDetectionsTips": "Semua objek {{detectionsLabels}} yang tidak dikategorikan pada {{cameraName}} akan ditampilkan sebagai Deteksi, terlepas dari zona mana mereka berada.",
+ "zoneObjectDetectionsTips": {
+ "text": "Semua objek {{detectionsLabels}} yang tidak dikategorikan di {{zone}} pada {{cameraName}} akan ditampilkan sebagai Deteksi.",
+ "notSelectDetections": "Semua objek {{detectionsLabels}} yang terdeteksi di {{zone}} pada {{cameraName}} dan tidak dikategorikan sebagai Alert akan ditampilkan sebagai Deteksi, terlepas dari zona mana mereka berada.",
+ "regardlessOfZoneObjectDetectionsTips": "Semua objek {{detectionsLabels}} yang tidak dikategorikan pada {{cameraName}} akan ditampilkan sebagai Deteksi, terlepas dari zona mana mereka berada."
+ },
+ "unsavedChanges": "Pengaturan Klasifikasi Tinjauan yang belum disimpan untuk {{camera}}",
+ "selectAlertsZones": "Pilih zona untuk Alert",
+ "selectDetectionsZones": "Pilih zona untuk Deteksi",
+ "limitDetections": "Batasi deteksi ke zona tertentu",
+ "toast": {
+ "success": "Konfigurasi Klasifikasi Tinjauan telah disimpan. Mulai ulang Frigate untuk menerapkan perubahan."
+ }
+ }
+ },
+ "masksAndZones": {
+ "filter": {
+ "all": "Semua Masker dan Zona"
+ },
+ "restart_required": "Perlu mulai ulang (masker/zona berubah)",
+ "disabledInConfig": "Item dinonaktifkan dalam file konfigurasi",
+ "addDisabledProfile": "Tambahkan ke konfigurasi dasar terlebih dahulu, lalu timpa di profil",
+ "profileBase": "(dasar)",
+ "profileOverride": "(timpa)",
+ "toast": {
+ "success": {
+ "copyCoordinates": "Koordinat untuk {{polyName}} telah disalin ke clipboard."
+ },
+ "error": {
+ "copyCoordinatesFailed": "Tidak dapat menyalin koordinat ke clipboard."
+ }
+ },
+ "motionMaskLabel": "Masker Gerakan {{number}}",
+ "objectMaskLabel": "Masker Objek {{number}}",
+ "form": {
+ "id": {
+ "error": {
+ "mustNotBeEmpty": "ID tidak boleh kosong.",
+ "alreadyExists": "Masker dengan ID ini sudah ada untuk kamera ini."
+ }
+ },
+ "name": {
+ "error": {
+ "mustNotBeEmpty": "Nama tidak boleh kosong."
+ }
+ },
+ "zoneName": {
+ "error": {
+ "mustBeAtLeastTwoCharacters": "Nama zona harus minimal 2 karakter.",
+ "mustNotBeSameWithCamera": "Nama zona tidak boleh sama dengan nama kamera.",
+ "alreadyExists": "Zona dengan nama ini sudah ada untuk kamera ini.",
+ "mustNotContainPeriod": "Nama zona tidak boleh mengandung titik.",
+ "hasIllegalCharacter": "Nama zona mengandung karakter yang tidak valid.",
+ "mustHaveAtLeastOneLetter": "Nama zona harus memiliki setidaknya satu huruf."
+ }
+ },
+ "distance": {
+ "error": {
+ "text": "Jarak harus lebih besar dari atau sama dengan 0.1.",
+ "mustBeFilled": "Semua field jarak harus diisi untuk menggunakan estimasi kecepatan."
+ }
+ },
+ "inertia": {
+ "error": {
+ "mustBeAboveZero": "Inersia harus lebih besar dari 0."
+ }
+ },
+ "loiteringTime": {
+ "error": {
+ "mustBeGreaterOrEqualZero": "Waktu loitering harus lebih besar dari atau sama dengan 0."
+ }
+ },
+ "speed": {
+ "error": {
+ "mustBeGreaterOrEqualTo": "Ambang kecepatan harus lebih besar dari atau sama dengan 0.1."
+ }
+ },
+ "polygonDrawing": {
+ "type": {
+ "zone": "zona",
+ "motion_mask": "masker gerakan",
+ "object_mask": "masker objek"
+ },
+ "removeLastPoint": "Hapus titik terakhir",
+ "reset": {
+ "label": "Hapus semua titik"
+ },
+ "snapPoints": {
+ "true": "Kaitkan titik",
+ "false": "Jangan kaitkan titik"
+ },
+ "delete": {
+ "title": "Konfirmasi Hapus",
+ "desc": "Apakah Anda yakin ingin menghapus {{type}} {{name}}?",
+ "success": "{{name}} telah dihapus."
+ },
+ "revertOverride": {
+ "title": "Kembalikan ke Konfigurasi Dasar",
+ "desc": "Ini akan menghapus penimpaan profil untuk {{type}} {{name}} dan mengembalikannya ke konfigurasi dasar."
+ },
+ "error": {
+ "mustBeFinished": "Gambar poligon harus diselesaikan sebelum menyimpan."
+ }
+ }
+ },
+ "zones": {
+ "label": "Zona",
+ "documentTitle": "Edit Zona - Frigate",
+ "desc": {
+ "title": "Zona memungkinkan Anda menentukan area tertentu pada frame sehingga Anda dapat menentukan apakah suatu objek berada di dalam area tertentu atau tidak.",
+ "documentation": "Dokumentasi"
+ },
+ "add": "Tambah Zona",
+ "edit": "Edit Zona",
+ "point_other": "{{count}} titik",
+ "clickDrawPolygon": "Klik untuk menggambar poligon pada gambar.",
+ "name": {
+ "title": "Nama",
+ "inputPlaceHolder": "Masukkan nama…",
+ "tips": "Nama harus minimal 2 karakter, harus memiliki setidaknya satu huruf, dan tidak boleh sama dengan nama kamera atau zona lain pada kamera ini."
+ },
+ "enabled": {
+ "title": "Diaktifkan",
+ "description": "Menentukan apakah zona ini aktif dan diaktifkan dalam file konfigurasi. Jika dinonaktifkan, zona ini tidak dapat diaktifkan melalui MQTT. Zona yang dinonaktifkan diabaikan saat runtime."
+ },
+ "inertia": {
+ "title": "Inersia",
+ "desc": "Menentukan berapa banyak frame suatu objek harus berada di dalam zona sebelum dianggap berada di zona tersebut. Default: 3"
+ },
+ "loiteringTime": {
+ "title": "Waktu Loitering",
+ "desc": "Menetapkan jumlah waktu minimum dalam detik yang harus dilalui objek di dalam zona agar zona aktif. Default: 0"
+ },
+ "objects": {
+ "title": "Objek",
+ "desc": "Daftar objek yang berlaku untuk zona ini."
+ },
+ "allObjects": "Semua Objek",
+ "speedEstimation": {
+ "title": "Estimasi Kecepatan",
+ "desc": "Aktifkan estimasi kecepatan untuk objek di zona ini. Zona harus memiliki tepat 4 titik.",
+ "lineADistance": "Jarak garis A ({{unit}})",
+ "lineBDistance": "Jarak garis B ({{unit}})",
+ "lineCDistance": "Jarak garis C ({{unit}})",
+ "lineDDistance": "Jarak garis D ({{unit}})"
+ },
+ "speedThreshold": {
+ "title": "Ambang Kecepatan ({{unit}})",
+ "desc": "Menentukan kecepatan minimum agar objek dianggap berada di zona ini.",
+ "toast": {
+ "error": {
+ "pointLengthError": "Estimasi kecepatan telah dinonaktifkan untuk zona ini. Zona dengan estimasi kecepatan harus memiliki tepat 4 titik.",
+ "loiteringTimeError": "Zona dengan waktu loitering lebih besar dari 0 sebaiknya tidak digunakan dengan estimasi kecepatan."
+ }
+ }
+ },
+ "toast": {
+ "success": "Zona ({{zoneName}}) telah disimpan."
+ }
+ },
+ "motionMasks": {
+ "label": "Masker Gerakan",
+ "documentTitle": "Edit Masker Gerakan - Frigate",
+ "desc": {
+ "title": "Masker gerakan digunakan untuk mencegah jenis gerakan yang tidak diinginkan memicu deteksi. Masking yang berlebihan akan membuat objek lebih sulit dilacak.",
+ "documentation": "Dokumentasi"
+ },
+ "add": "Masker Gerakan Baru",
+ "edit": "Edit Masker Gerakan",
+ "defaultName": "Masker Gerakan {{number}}",
+ "context": {
+ "title": "Masker gerakan digunakan untuk mencegah jenis gerakan yang tidak diinginkan memicu deteksi (contoh: ranting pohon, stempel waktu kamera). Masker gerakan harus digunakan dengan sangat hemat, masking yang berlebihan akan membuat objek lebih sulit dilacak."
+ },
+ "point_other": "{{count}} titik",
+ "clickDrawPolygon": "Klik untuk menggambar poligon pada gambar.",
+ "name": {
+ "title": "Nama",
+ "description": "Nama ramah opsional untuk masker gerakan ini.",
+ "placeholder": "Masukkan nama..."
+ },
+ "polygonAreaTooLarge": {
+ "title": "Masker gerakan menutupi {{polygonArea}}% dari frame kamera. Masker gerakan besar tidak direkomendasikan.",
+ "tips": "Masker gerakan tidak mencegah objek terdeteksi. Anda sebaiknya menggunakan zona wajib sebagai gantinya."
+ },
+ "toast": {
+ "success": {
+ "title": "{{polygonName}} telah disimpan.",
+ "noName": "Masker Gerakan telah disimpan."
+ }
+ }
+ },
+ "objectMasks": {
+ "label": "Masker Objek",
+ "documentTitle": "Edit Masker Objek - Frigate",
+ "desc": {
+ "title": "Masker filter objek digunakan untuk menyaring positif palsu untuk tipe objek tertentu berdasarkan lokasi.",
+ "documentation": "Dokumentasi"
+ },
+ "add": "Tambah Masker Objek",
+ "edit": "Edit Masker Objek",
+ "context": "Masker filter objek digunakan untuk menyaring positif palsu untuk tipe objek tertentu berdasarkan lokasi.",
+ "point_other": "{{count}} titik",
+ "clickDrawPolygon": "Klik untuk menggambar poligon pada gambar.",
+ "name": {
+ "title": "Nama",
+ "description": "Nama ramah opsional untuk masker objek ini.",
+ "placeholder": "Masukkan nama..."
+ },
+ "objects": {
+ "title": "Objek",
+ "desc": "Tipe objek yang berlaku untuk masker objek ini.",
+ "allObjectTypes": "Semua tipe objek"
+ },
+ "toast": {
+ "success": {
+ "title": "{{polygonName}} telah disimpan.",
+ "noName": "Masker Objek telah disimpan."
+ }
+ }
+ },
+ "masks": {
+ "enabled": {
+ "title": "Diaktifkan",
+ "description": "Menentukan apakah masker ini diaktifkan dalam file konfigurasi. Jika dinonaktifkan, masker ini tidak dapat diaktifkan melalui MQTT. Masker yang dinonaktifkan diabaikan saat runtime."
+ }
+ }
+ },
+ "motionDetectionTuner": {
+ "title": "Penyetel Deteksi Gerakan",
+ "unsavedChanges": "Perubahan Penyetel Gerakan yang belum disimpan ({{camera}})",
+ "desc": {
+ "title": "Frigate menggunakan deteksi gerakan sebagai pemeriksaan awal untuk melihat apakah ada sesuatu yang terjadi dalam frame yang layak diperiksa dengan deteksi objek.",
+ "documentation": "Baca Panduan Penyetelan Gerakan"
+ },
+ "Threshold": {
+ "title": "Ambang",
+ "desc": "Nilai ambang menentukan seberapa besar perubahan luminansi piksel yang diperlukan agar dianggap sebagai gerakan. Default: 30"
+ },
+ "contourArea": {
+ "title": "Area Kontur",
+ "desc": "Nilai area kontur digunakan untuk menentukan kelompok piksel yang berubah mana yang memenuhi syarat sebagai gerakan. Default: 10"
+ },
+ "improveContrast": {
+ "title": "Tingkatkan Kontras",
+ "desc": "Tingkatkan kontras untuk adegan yang lebih gelap. Default: ON"
+ },
+ "toast": {
+ "success": "Pengaturan gerakan telah disimpan."
+ }
+ },
+ "debug": {
+ "title": "Debug",
+ "detectorDesc": "Frigate menggunakan detektor Anda ({{detectors}}) untuk mendeteksi objek di stream video kamera Anda.",
+ "desc": "Tampilan debug menunjukkan tampilan real-time objek yang dilacak dan statistiknya. Daftar objek menampilkan ringkasan objek yang terdeteksi dengan sedikit jeda waktu.",
+ "openCameraWebUI": "Buka UI Web milik {{camera}}",
+ "debugging": "Debugging",
+ "objectList": "Daftar Objek",
+ "noObjects": "Tidak ada objek",
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "Tidak ada deteksi audio",
+ "score": "skor",
+ "currentRMS": "RMS Saat Ini",
+ "currentdbFS": "dbFS Saat Ini"
+ },
+ "boundingBoxes": {
+ "title": "Kotak pembatas",
+ "desc": "Tampilkan kotak pembatas di sekitar objek yang dilacak",
+ "colors": {
+ "label": "Warna Kotak Pembatas Objek",
+ "info": "
Kotak Gerakan
Kotak merah akan dihamparkan pada area frame tempat gerakan saat ini terdeteksi
" + }, + "regions": { + "title": "Wilayah", + "desc": "Tampilkan kotak wilayah minat yang dikirim ke detektor objek", + "tips": "Kotak Wilayah
Kotak hijau terang akan dihamparkan pada area minat di frame yang sedang dikirim ke detektor objek.
" + }, + "paths": { + "title": "Jalur", + "desc": "Tampilkan titik-titik penting dari jalur objek yang dilacak", + "tips": "Jalur
Garis dan lingkaran akan menunjukkan titik-titik penting yang telah dilalui objek yang dilacak selama siklus hidupnya.
" + }, + "objectShapeFilterDrawing": { + "title": "Gambar Filter Bentuk Objek", + "desc": "Gambar persegi panjang pada gambar untuk melihat detail area dan rasio", + "tips": "Aktifkan opsi ini untuk menggambar persegi panjang pada gambar kamera guna menampilkan area dan rasionya. Nilai-nilai ini kemudian dapat digunakan untuk menetapkan parameter filter bentuk objek dalam konfigurasi Anda.", + "score": "Skor", + "ratio": "Rasio", + "area": "Area" + } + }, + "timestampPosition": { + "tl": "Kiri atas", + "tr": "Kanan atas", + "bl": "Kiri bawah", + "br": "Kanan bawah" + }, + "users": { + "title": "Pengguna", + "management": { + "title": "Manajemen Pengguna", + "desc": "Kelola akun pengguna untuk instance Frigate ini." + }, + "addUser": "Tambah Pengguna", + "updatePassword": "Atur Ulang Kata Sandi", + "toast": { + "success": { + "createUser": "Pengguna {{user}} berhasil dibuat", + "deleteUser": "Pengguna {{user}} berhasil dihapus", + "updatePassword": "Kata sandi berhasil diperbarui.", + "roleUpdated": "Peran untuk {{user}} diperbarui" + }, + "error": { + "setPasswordFailed": "Gagal menyimpan kata sandi: {{errorMessage}}", + "createUserFailed": "Gagal membuat pengguna: {{errorMessage}}", + "deleteUserFailed": "Gagal menghapus pengguna: {{errorMessage}}", + "roleUpdateFailed": "Gagal memperbarui peran: {{errorMessage}}" + } + }, + "table": { + "username": "Nama pengguna", + "actions": "Tindakan", + "role": "Peran", + "noUsers": "Tidak ada pengguna ditemukan.", + "changeRole": "Ubah peran pengguna", + "password": "Atur Ulang Kata Sandi", + "deleteUser": "Hapus pengguna" + }, + "dialog": { + "form": { + "user": { + "title": "Nama pengguna", + "desc": "Hanya huruf, angka, titik, dan garis bawah yang diizinkan.", + "placeholder": "Masukkan nama pengguna" + }, + "password": { + "title": "Kata sandi", + "placeholder": "Masukkan kata sandi", + "show": "Tampilkan kata sandi", + "hide": "Sembunyikan kata sandi", + "confirm": { + "title": "Konfirmasi Kata Sandi", + "placeholder": "Konfirmasi Kata Sandi" + }, + "strength": { + "title": "Kekuatan kata sandi: ", + "weak": "Lemah", + "medium": "Sedang", + "strong": "Kuat", + "veryStrong": "Sangat Kuat" + }, + "requirements": { + "title": "Persyaratan kata sandi:", + "length": "Setidaknya 12 karakter" + }, + "match": "Kata sandi cocok", + "notMatch": "Kata sandi tidak cocok" + }, + "newPassword": { + "title": "Kata Sandi Baru", + "placeholder": "Masukkan kata sandi baru", + "confirm": { + "placeholder": "Masukkan ulang kata sandi baru" + } + }, + "currentPassword": { + "title": "Kata Sandi Saat Ini", + "placeholder": "Masukkan kata sandi Anda saat ini" + }, + "usernameIsRequired": "Nama pengguna wajib diisi", + "passwordIsRequired": "Kata sandi wajib diisi" + }, + "createUser": { + "title": "Buat Pengguna Baru", + "desc": "Tambahkan akun pengguna baru dan tentukan perannya untuk akses ke area UI Frigate.", + "usernameOnlyInclude": "Nama pengguna hanya boleh berisi huruf, angka, . atau _", + "confirmPassword": "Harap konfirmasi kata sandi Anda" + }, + "deleteUser": { + "title": "Hapus Pengguna", + "desc": "Tindakan ini tidak dapat dibatalkan. Ini akan menghapus akun pengguna secara permanen dan menghapus semua data terkait.", + "warn": "Apakah Anda yakin ingin menghapus {{username}}?" + }, + "passwordSetting": { + "cannotBeEmpty": "Kata sandi tidak boleh kosong", + "doNotMatch": "Kata sandi tidak cocok", + "currentPasswordRequired": "Kata sandi saat ini wajib diisi", + "incorrectCurrentPassword": "Kata sandi saat ini salah", + "passwordVerificationFailed": "Gagal memverifikasi kata sandi", + "updatePassword": "Perbarui Kata Sandi untuk {{username}}", + "setPassword": "Tetapkan Kata Sandi", + "desc": "Buat kata sandi yang kuat untuk mengamankan akun ini.", + "multiDeviceWarning": "Perangkat lain tempat Anda masuk juga akan diminta login ulang dalam {{refresh_time}}.", + "multiDeviceAdmin": "Anda juga dapat memaksa semua pengguna untuk segera mengautentikasi ulang dengan memutar rahasia JWT Anda." + }, + "changeRole": { + "title": "Ubah Peran Pengguna", + "select": "Pilih peran", + "desc": "Perbarui izin untuk {{username}}", + "roleInfo": { + "intro": "Pilih peran yang sesuai untuk pengguna ini:", + "admin": "Admin", + "adminDesc": "Akses penuh ke semua fitur.", + "viewer": "Viewer", + "viewerDesc": "Terbatas hanya pada dasbor Langsung, Tinjauan, Jelajahi, dan Ekspor.", + "customDesc": "Peran kustom dengan akses kamera tertentu." + } + } + } + }, + "roles": { + "management": { + "title": "Manajemen Peran Viewer", + "desc": "Kelola peran viewer kustom dan izin akses kameranya untuk instance Frigate ini." + }, + "addRole": "Tambah Peran", + "table": { + "role": "Peran", + "cameras": "Kamera", + "actions": "Tindakan", + "noRoles": "Tidak ada peran kustom ditemukan.", + "editCameras": "Edit Kamera", + "deleteRole": "Hapus Peran" + }, + "toast": { + "success": { + "createRole": "Peran {{role}} berhasil dibuat", + "updateCameras": "Kamera untuk peran {{role}} telah diperbarui", + "deleteRole": "Peran {{role}} berhasil dihapus", + "userRolesUpdated_other": "{{count}} pengguna yang ditetapkan ke peran ini telah diperbarui menjadi 'viewer', yang memiliki akses ke semua kamera." + }, + "error": { + "createRoleFailed": "Gagal membuat peran: {{errorMessage}}", + "updateCamerasFailed": "Gagal memperbarui kamera: {{errorMessage}}", + "deleteRoleFailed": "Gagal menghapus peran: {{errorMessage}}", + "userUpdateFailed": "Gagal memperbarui peran pengguna: {{errorMessage}}" + } + }, + "dialog": { + "createRole": { + "title": "Buat Peran Baru", + "desc": "Tambahkan peran baru dan tentukan izin akses kamera." + }, + "editCameras": { + "title": "Edit Kamera Peran", + "desc": "Perbarui akses kamera untuk peran {{role}}." + }, + "deleteRole": { + "title": "Hapus Peran", + "desc": "Tindakan ini tidak dapat dibatalkan. Ini akan menghapus peran secara permanen dan menetapkan pengguna mana pun dengan peran ini ke peran 'viewer', yang akan memberikan akses viewer ke semua kamera.", + "warn": "Apakah Anda yakin ingin menghapus {{role}}?", + "deleting": "Sedang menghapus..." + }, + "form": { + "role": { + "title": "Nama Peran", + "placeholder": "Masukkan nama peran", + "desc": "Hanya huruf, angka, titik, dan garis bawah yang diizinkan.", + "roleIsRequired": "Nama peran wajib diisi", + "roleOnlyInclude": "Nama peran hanya boleh berisi huruf, angka, . atau _", + "roleExists": "Peran dengan nama ini sudah ada." + }, + "cameras": { + "title": "Kamera", + "desc": "Pilih kamera yang dapat diakses oleh peran ini. Setidaknya satu kamera wajib dipilih.", + "required": "Setidaknya satu kamera harus dipilih." + } + } + } + }, + "notification": { + "title": "Notifikasi", + "notificationSettings": { + "title": "Pengaturan Notifikasi", + "desc": "Frigate dapat secara native mengirim notifikasi push ke perangkat Anda saat berjalan di browser atau diinstal sebagai PWA." + }, + "notificationUnavailable": { + "title": "Notifikasi Tidak Tersedia", + "desc": "Notifikasi push web memerlukan konteks aman (https://…). Ini adalah batasan browser. Akses Frigate secara aman untuk menggunakan notifikasi."
+ },
+ "globalSettings": {
+ "title": "Pengaturan Global",
+ "desc": "Tangguhkan notifikasi sementara untuk kamera tertentu pada semua perangkat yang terdaftar."
+ },
+ "email": {
+ "title": "Email",
+ "placeholder": "mis. contoh@email.com",
+ "desc": "Email yang valid wajib diisi dan akan digunakan untuk memberi tahu Anda jika ada masalah dengan layanan push."
+ },
+ "cameras": {
+ "title": "Kamera",
+ "noCameras": "Tidak ada kamera tersedia",
+ "desc": "Pilih kamera mana yang akan diaktifkan notifikasinya."
+ },
+ "deviceSpecific": "Pengaturan Khusus Perangkat",
+ "registerDevice": "Daftarkan Perangkat Ini",
+ "unregisterDevice": "Batalkan Pendaftaran Perangkat Ini",
+ "sendTestNotification": "Kirim notifikasi uji",
+ "unsavedRegistrations": "Pendaftaran Notifikasi yang belum disimpan",
+ "unsavedChanges": "Perubahan Notifikasi yang belum disimpan",
+ "active": "Notifikasi Aktif",
+ "suspended": "Notifikasi ditangguhkan {{time}}",
+ "suspendTime": {
+ "suspend": "Tangguhkan",
+ "5minutes": "Tangguhkan selama 5 menit",
+ "10minutes": "Tangguhkan selama 10 menit",
+ "30minutes": "Tangguhkan selama 30 menit",
+ "1hour": "Tangguhkan selama 1 jam",
+ "12hours": "Tangguhkan selama 12 jam",
+ "24hours": "Tangguhkan selama 24 jam",
+ "untilRestart": "Tangguhkan hingga dimulai ulang"
+ },
+ "cancelSuspension": "Batalkan Penangguhan",
+ "toast": {
+ "success": {
+ "registered": "Berhasil terdaftar untuk notifikasi. Mulai ulang Frigate diperlukan sebelum notifikasi apa pun (termasuk notifikasi uji) dapat dikirim.",
+ "settingSaved": "Pengaturan notifikasi telah disimpan."
+ },
+ "error": {
+ "registerFailed": "Gagal menyimpan pendaftaran notifikasi."
+ }
+ }
+ },
+ "frigatePlus": {
+ "title": "Pengaturan Frigate+",
+ "description": "Frigate+ adalah layanan berlangganan yang menyediakan akses ke fitur dan kemampuan tambahan untuk instance Frigate Anda, termasuk kemampuan menggunakan model deteksi objek kustom yang dilatih dengan data Anda sendiri. Anda dapat mengelola pengaturan model Frigate+ Anda di sini.",
+ "cardTitles": {
+ "api": "API",
+ "currentModel": "Model Saat Ini",
+ "otherModels": "Model Lainnya",
+ "configuration": "Konfigurasi"
+ },
+ "apiKey": {
+ "title": "Kunci API Frigate+",
+ "validated": "Kunci API Frigate+ terdeteksi dan tervalidasi",
+ "notValidated": "Kunci API Frigate+ tidak terdeteksi atau tidak tervalidasi",
+ "desc": "Kunci API Frigate+ memungkinkan integrasi dengan layanan Frigate+.",
+ "plusLink": "Baca lebih lanjut tentang Frigate+"
+ },
+ "snapshotConfig": {
+ "title": "Konfigurasi Cuplikan",
+ "desc": "Mengirim ke Frigate+ mengharuskan cuplikan diaktifkan dalam konfigurasi Anda.",
+ "cleanCopyWarning": "Beberapa kamera menonaktifkan cuplikan",
+ "table": {
+ "camera": "Kamera",
+ "snapshots": "Cuplikan"
+ }
+ },
+ "modelInfo": {
+ "title": "Informasi Model",
+ "modelType": "Tipe Model",
+ "trainDate": "Tanggal Pelatihan",
+ "baseModel": "Model Dasar",
+ "plusModelType": {
+ "baseModel": "Model Dasar",
+ "userModel": "Disetel Halus"
+ },
+ "supportedDetectors": "Detektor yang Didukung",
+ "cameras": "Kamera",
+ "loading": "Memuat informasi model…",
+ "error": "Gagal memuat informasi model",
+ "noModelLoaded": "Saat ini tidak ada model Frigate+ yang dimuat.",
+ "availableModels": "Model Frigate+ yang tersedia",
+ "loadingAvailableModels": "Memuat model yang tersedia…",
+ "selectModel": "Pilih model",
+ "noModelsAvailable": "Tidak ada model tersedia",
+ "filter": {
+ "ariaLabel": "Filter model berdasarkan tipe",
+ "baseModels": "Model Dasar",
+ "fineTunedModels": "Model yang Disetel Halus"
+ },
+ "modelSelect": "Model Frigate+ Anda yang tersedia dapat dipilih di sini. Perlu dicatat bahwa hanya model yang kompatibel dengan konfigurasi detektor Anda saat ini yang dapat dipilih."
+ },
+ "changeInDetectorsAndModel": "Ubah model",
+ "unsavedChanges": "Perubahan pengaturan Frigate+ yang belum disimpan",
+ "restart_required": "Perlu mulai ulang (model Frigate+ berubah)",
+ "toast": {
+ "success": "Pengaturan Frigate+ telah disimpan. Mulai ulang Frigate untuk menerapkan perubahan.",
+ "error": "Gagal menyimpan perubahan konfigurasi: {{errorMessage}}"
+ }
+ },
+ "detectorsAndModel": {
+ "title": "Detektor dan model",
+ "description": "Konfigurasikan backend detektor yang menjalankan deteksi objek dan model yang digunakannya. Perubahan disimpan bersama agar detektor dan model tetap sinkron.",
+ "cardTitles": {
+ "detector": "Perangkat Keras Detektor",
+ "model": "Model Deteksi"
+ },
+ "tabs": {
+ "plus": "Frigate+",
+ "custom": "Model Kustom"
+ },
+ "mismatch": {
+ "warning": "Model Frigate+ saat ini \"{{model}}\" memerlukan detektor {{required}}. Pilih model yang kompatibel di bawah atau beralih ke Model Kustom sebelum menyimpan."
+ },
+ "plusModel": {
+ "requiresDetector": "Memerlukan: {{detector}}",
+ "noModelSelected": "Pilih model Frigate+"
+ },
+ "toast": {
+ "saveSuccess": "Pengaturan detektor dan model telah disimpan. Mulai ulang Frigate untuk menerapkan perubahan.",
+ "saveError": "Gagal menyimpan pengaturan detektor dan model"
+ },
+ "unsavedChanges": "Perubahan detektor dan model yang belum disimpan",
+ "restartRequired": "Perlu mulai ulang (detektor atau model berubah)"
+ },
+ "triggers": {
+ "documentTitle": "Pemicu",
+ "semanticSearch": {
+ "title": "Pencarian Semantik dinonaktifkan",
+ "desc": "Pencarian Semantik harus diaktifkan untuk menggunakan Pemicu."
+ },
+ "management": {
+ "title": "Pemicu",
+ "desc": "Kelola pemicu untuk {{camera}}. Gunakan tipe thumbnail untuk memicu pada thumbnail yang mirip dengan objek terlacak yang Anda pilih, dan tipe deskripsi untuk memicu pada deskripsi yang mirip dengan teks yang Anda tentukan."
+ },
+ "addTrigger": "Tambah Pemicu",
+ "table": {
+ "name": "Nama",
+ "type": "Tipe",
+ "content": "Konten",
+ "threshold": "Ambang",
+ "actions": "Tindakan",
+ "noTriggers": "Tidak ada pemicu yang dikonfigurasi untuk kamera ini.",
+ "edit": "Edit",
+ "deleteTrigger": "Hapus Pemicu",
+ "lastTriggered": "Terakhir dipicu"
+ },
+ "type": {
+ "thumbnail": "Thumbnail",
+ "description": "Deskripsi"
+ },
+ "actions": {
+ "notification": "Kirim Notifikasi",
+ "sub_label": "Tambahkan Sub Label",
+ "attribute": "Tambahkan Atribut"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Buat Pemicu",
+ "desc": "Buat pemicu untuk kamera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Edit Pemicu",
+ "desc": "Edit pengaturan pemicu pada kamera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Hapus Pemicu",
+ "desc": "Apakah Anda yakin ingin menghapus pemicu {{triggerName}}? Tindakan ini tidak dapat dibatalkan."
+ },
+ "form": {
+ "name": {
+ "title": "Nama",
+ "placeholder": "Beri nama pemicu ini",
+ "description": "Masukkan nama atau deskripsi unik untuk mengidentifikasi pemicu ini",
+ "error": {
+ "minLength": "Bidang harus memiliki panjang minimal 2 karakter.",
+ "invalidCharacters": "Bidang hanya boleh berisi huruf, angka, garis bawah, dan tanda hubung.",
+ "alreadyExists": "Pemicu dengan nama ini sudah ada untuk kamera ini."
+ }
+ },
+ "enabled": {
+ "description": "Aktifkan atau nonaktifkan pemicu ini"
+ },
+ "type": {
+ "title": "Tipe",
+ "placeholder": "Pilih tipe pemicu",
+ "description": "Picu saat deskripsi objek terlacak yang serupa terdeteksi",
+ "thumbnail": "Picu saat thumbnail objek terlacak yang serupa terdeteksi"
+ },
+ "content": {
+ "title": "Konten",
+ "imagePlaceholder": "Pilih thumbnail",
+ "textPlaceholder": "Masukkan konten teks",
+ "imageDesc": "Hanya 100 thumbnail terbaru yang ditampilkan. Jika Anda tidak dapat menemukan thumbnail yang diinginkan, silakan tinjau objek sebelumnya di Jelajahi dan atur pemicu dari menu di sana.",
+ "textDesc": "Masukkan teks untuk memicu tindakan ini saat deskripsi objek terlacak yang serupa terdeteksi.",
+ "error": {
+ "required": "Konten wajib diisi."
+ }
+ },
+ "threshold": {
+ "title": "Ambang",
+ "desc": "Tetapkan ambang kemiripan untuk pemicu ini. Ambang yang lebih tinggi berarti kecocokan yang lebih dekat diperlukan agar pemicu dijalankan.",
+ "error": {
+ "min": "Ambang harus minimal 0",
+ "max": "Ambang harus maksimal 1"
+ }
+ },
+ "actions": {
+ "title": "Tindakan",
+ "desc": "Secara default, Frigate mengirim pesan MQTT untuk semua pemicu. Sub label menambahkan nama pemicu ke label objek. Atribut adalah metadata yang dapat dicari dan disimpan secara terpisah dalam metadata objek terlacak.",
+ "error": {
+ "min": "Setidaknya satu tindakan harus dipilih."
+ }
+ }
+ }
+ },
+ "wizard": {
+ "title": "Buat Pemicu",
+ "step1": {
+ "description": "Konfigurasikan pengaturan dasar untuk pemicu Anda."
+ },
+ "step2": {
+ "description": "Atur konten yang akan memicu tindakan ini."
+ },
+ "step3": {
+ "description": "Konfigurasikan ambang dan tindakan untuk pemicu ini."
+ },
+ "steps": {
+ "nameAndType": "Nama dan Tipe",
+ "configureData": "Konfigurasikan Data",
+ "thresholdAndActions": "Ambang dan Tindakan"
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Pemicu {{name}} berhasil dibuat.",
+ "updateTrigger": "Pemicu {{name}} berhasil diperbarui.",
+ "deleteTrigger": "Pemicu {{name}} berhasil dihapus."
+ },
+ "error": {
+ "createTriggerFailed": "Gagal membuat pemicu: {{errorMessage}}",
+ "updateTriggerFailed": "Gagal memperbarui pemicu: {{errorMessage}}",
+ "deleteTriggerFailed": "Gagal menghapus pemicu: {{errorMessage}}"
+ }
+ }
+ },
+ "maintenance": {
+ "title": "Pemeliharaan",
+ "sync": {
+ "title": "Sinkronisasi Media",
+ "desc": "Frigate akan secara berkala membersihkan media sesuai jadwal reguler berdasarkan konfigurasi retensi Anda. Wajar jika ada beberapa file yatim piatu saat Frigate berjalan. Gunakan fitur ini untuk menghapus file media yatim piatu dari disk yang tidak lagi direferensikan dalam basis data.",
+ "started": "Sinkronisasi media dimulai.",
+ "alreadyRunning": "Pekerjaan sinkronisasi sudah sedang berjalan",
+ "error": "Gagal memulai sinkronisasi",
+ "currentStatus": "Status",
+ "jobId": "ID Pekerjaan",
+ "startTime": "Waktu Mulai",
+ "endTime": "Waktu Selesai",
+ "statusLabel": "Status",
+ "results": "Hasil",
+ "errorLabel": "Kesalahan",
+ "mediaTypes": "Tipe Media",
+ "allMedia": "Semua Media",
+ "dryRun": "Dry Run",
+ "dryRunEnabled": "Tidak ada file yang akan dihapus",
+ "dryRunDisabled": "File akan dihapus",
+ "force": "Paksa",
+ "forceDesc": "Lewati ambang keamanan dan selesaikan sinkronisasi meskipun lebih dari 50% file akan dihapus.",
+ "verbose": "Verbose",
+ "verboseDesc": "Tulis daftar lengkap file yatim piatu ke disk untuk ditinjau.",
+ "running": "Sinkronisasi Berjalan...",
+ "start": "Mulai Sinkronisasi",
+ "inProgress": "Sinkronisasi sedang berlangsung. Halaman ini dinonaktifkan.",
+ "status": {
+ "queued": "Dalam antrean",
+ "running": "Berjalan",
+ "completed": "Selesai",
+ "failed": "Gagal",
+ "notRunning": "Tidak Berjalan"
+ },
+ "resultsFields": {
+ "filesChecked": "File Diperiksa",
+ "orphansFound": "File Yatim Piatu Ditemukan",
+ "orphansDeleted": "File Yatim Piatu Dihapus",
+ "aborted": "Dibatalkan. Penghapusan akan melebihi ambang keamanan.",
+ "error": "Kesalahan",
+ "totals": "Total"
+ },
+ "event_snapshots": "Cuplikan Objek Terlacak",
+ "event_thumbnails": "Thumbnail Objek Terlacak",
+ "review_thumbnails": "Thumbnail Tinjauan",
+ "previews": "Pratinjau",
+ "exports": "Ekspor",
+ "recordings": "Rekaman"
+ },
+ "regionGrid": {
+ "title": "Grid Wilayah",
+ "desc": "Grid wilayah adalah optimasi yang mempelajari di mana objek dengan ukuran berbeda biasanya muncul dalam bidang pandang tiap kamera. Frigate menggunakan data ini untuk menentukan ukuran wilayah deteksi secara efisien. Grid ini dibangun secara otomatis seiring waktu dari data objek terlacak.",
+ "clear": "Hapus grid wilayah",
+ "clearConfirmTitle": "Hapus Grid Wilayah",
+ "clearConfirmDesc": "Menghapus grid wilayah tidak direkomendasikan kecuali Anda baru-baru ini mengubah ukuran model detektor atau mengubah posisi fisik kamera dan mengalami masalah pelacakan objek. Grid akan dibangun ulang secara otomatis seiring waktu saat objek dilacak. Frigate perlu dimulai ulang agar perubahan diterapkan.",
+ "clearSuccess": "Grid wilayah berhasil dihapus",
+ "clearError": "Gagal menghapus grid wilayah",
+ "restartRequired": "Perlu mulai ulang agar perubahan grid wilayah diterapkan"
+ }
+ },
+ "configForm": {
+ "global": {
+ "title": "Pengaturan Global",
+ "description": "Pengaturan ini berlaku untuk semua kamera kecuali ditimpa dalam pengaturan khusus kamera."
+ },
+ "camera": {
+ "title": "Pengaturan Kamera",
+ "description": "Pengaturan ini hanya berlaku untuk kamera ini dan menimpa pengaturan global.",
+ "noCameras": "Tidak ada kamera tersedia"
+ },
+ "advancedSettingsCount": "Pengaturan Lanjutan ({{count}})",
+ "advancedCount": "Lanjutan ({{count}})",
+ "showAdvanced": "Tampilkan Pengaturan Lanjutan",
+ "tabs": {
+ "sharedDefaults": "Default Bersama",
+ "system": "Sistem",
+ "integrations": "Integrasi"
+ },
+ "additionalProperties": {
+ "keyLabel": "Kunci",
+ "valueLabel": "Nilai",
+ "keyPlaceholder": "Kunci baru",
+ "remove": "Hapus"
+ },
+ "knownPlates": {
+ "namePlaceholder": "mis., Mobil Istri",
+ "platePlaceholder": "Nomor pelat atau regex"
+ },
+ "timezone": {
+ "defaultOption": "Gunakan zona waktu browser"
+ },
+ "roleMap": {
+ "empty": "Tidak ada pemetaan peran",
+ "roleLabel": "Peran",
+ "groupsLabel": "Grup",
+ "addMapping": "Tambah pemetaan peran",
+ "remove": "Hapus"
+ },
+ "ffmpegArgs": {
+ "preset": "Preset",
+ "manual": "Argumen manual",
+ "inherit": "Warisi dari pengaturan kamera",
+ "none": "Tidak ada",
+ "useGlobalSetting": "Warisi dari pengaturan global",
+ "selectPreset": "Pilih preset",
+ "manualPlaceholder": "Masukkan argumen FFmpeg",
+ "presetLabels": {
+ "preset-rpi-64-h264": "Raspberry Pi (H.264)",
+ "preset-rpi-64-h265": "Raspberry Pi (H.265)",
+ "preset-vaapi": "VAAPI (GPU Intel/AMD)",
+ "preset-intel-qsv-h264": "Intel QuickSync (H.264)",
+ "preset-intel-qsv-h265": "Intel QuickSync (H.265)",
+ "preset-nvidia": "GPU NVIDIA",
+ "preset-jetson-h264": "NVIDIA Jetson (H.264)",
+ "preset-jetson-h265": "NVIDIA Jetson (H.265)",
+ "preset-rkmpp": "Rockchip RKMPP",
+ "preset-http-jpeg-generic": "HTTP JPEG (Generik)",
+ "preset-http-mjpeg-generic": "HTTP MJPEG (Generik)",
+ "preset-http-reolink": "HTTP - Kamera Reolink",
+ "preset-rtmp-generic": "RTMP (Generik)",
+ "preset-rtsp-generic": "RTSP (Generik)",
+ "preset-rtsp-restream": "RTSP - Restream dari go2rtc",
+ "preset-rtsp-restream-low-latency": "RTSP - Restream dari go2rtc (Latensi Rendah)",
+ "preset-rtsp-udp": "RTSP - UDP",
+ "preset-rtsp-blue-iris": "RTSP - Blue Iris",
+ "preset-record-generic": "Rekam (Generik, tanpa audio)",
+ "preset-record-generic-audio-copy": "Rekam (Generik + Salin Audio)",
+ "preset-record-generic-audio-aac": "Rekam (Generik + Audio ke AAC)",
+ "preset-record-mjpeg": "Rekam - Kamera MJPEG",
+ "preset-record-jpeg": "Rekam - Kamera JPEG",
+ "preset-record-ubiquiti": "Rekam - Kamera Ubiquiti"
+ }
+ },
+ "cameraInputs": {
+ "itemTitle": "Stream {{index}}"
+ },
+ "restartRequiredField": "Perlu mulai ulang",
+ "restartRequiredFooter": "Konfigurasi berubah - Perlu mulai ulang",
+ "sections": {
+ "detect": "Deteksi",
+ "record": "Perekaman",
+ "snapshots": "Cuplikan",
+ "motion": "Gerakan",
+ "objects": "Objek",
+ "review": "Tinjauan",
+ "audio": "Audio",
+ "notifications": "Notifikasi",
+ "live": "Tampilan Langsung",
+ "timestamp_style": "Stempel waktu",
+ "mqtt": "MQTT",
+ "database": "Basis data",
+ "telemetry": "Telemetri",
+ "auth": "Autentikasi",
+ "tls": "TLS",
+ "proxy": "Proksi",
+ "go2rtc": "go2rtc",
+ "ffmpeg": "FFmpeg",
+ "detectors": "Detektor",
+ "model": "Model",
+ "semantic_search": "Pencarian Semantik",
+ "genai": "GenAI",
+ "face_recognition": "Pengenalan Wajah",
+ "lpr": "Pengenalan Pelat Nomor",
+ "birdseye": "Birdseye",
+ "masksAndZones": "Masker / Zona"
+ },
+ "detect": {
+ "title": "Pengaturan Deteksi"
+ },
+ "detectors": {
+ "title": "Pengaturan Detektor",
+ "singleType": "Hanya satu detektor {{type}} yang diizinkan.",
+ "keyRequired": "Nama detektor wajib diisi.",
+ "keyDuplicate": "Nama detektor sudah ada.",
+ "noSchema": "Tidak ada skema detektor yang tersedia.",
+ "none": "Tidak ada instance detektor yang dikonfigurasi.",
+ "add": "Tambah detektor",
+ "addCustomKey": "Tambah kunci kustom"
+ },
+ "record": {
+ "title": "Pengaturan Perekaman"
+ },
+ "snapshots": {
+ "title": "Pengaturan Cuplikan"
+ },
+ "motion": {
+ "title": "Pengaturan Gerakan"
+ },
+ "objects": {
+ "title": "Pengaturan Objek"
+ },
+ "audioLabels": {
+ "summary": "{{count}} label audio dipilih",
+ "empty": "Tidak ada label audio tersedia"
+ },
+ "objectLabels": {
+ "summary": "{{count}} tipe objek dipilih",
+ "empty": "Tidak ada label objek tersedia"
+ },
+ "reviewLabels": {
+ "summary": "{{count}} label dipilih",
+ "empty": "Tidak ada label tersedia"
+ },
+ "filters": {
+ "objectFieldLabel": "{{field}} untuk {{label}}"
+ },
+ "zoneNames": {
+ "summary": "{{count}} dipilih",
+ "empty": "Tidak ada zona tersedia"
+ },
+ "inputRoles": {
+ "summary": "{{count}} peran dipilih",
+ "empty": "Tidak ada peran tersedia",
+ "options": {
+ "detect": "Deteksi",
+ "record": "Rekam",
+ "audio": "Audio"
+ }
+ },
+ "genaiRoles": {
+ "options": {
+ "embeddings": "Embedding",
+ "descriptions": "Deskripsi",
+ "chat": "Chat"
+ }
+ },
+ "semanticSearchModel": {
+ "placeholder": "Pilih model…",
+ "builtIn": "Model Bawaan",
+ "genaiProviders": "Penyedia GenAI"
+ },
+ "review": {
+ "title": "Pengaturan Tinjauan"
+ },
+ "audio": {
+ "title": "Pengaturan Audio"
+ },
+ "notifications": {
+ "title": "Pengaturan Notifikasi"
+ },
+ "live": {
+ "title": "Pengaturan Tampilan Langsung"
+ },
+ "timestamp_style": {
+ "title": "Pengaturan Stempel Waktu"
+ },
+ "searchPlaceholder": "Cari...",
+ "addCustomLabel": "Tambahkan label kustom...",
+ "genaiModel": {
+ "placeholder": "Pilih atau masukkan model…",
+ "search": "Cari atau masukkan model…",
+ "noModels": "Tidak ada model tersedia",
+ "available": "Model yang tersedia",
+ "useCustom": "Gunakan \"{{value}}\"",
+ "refresh": "Segarkan model",
+ "probeFailed": "Gagal memeriksa model",
+ "fetchedModels": "Berhasil mengambil daftar model"
+ }
+ },
+ "globalConfig": {
+ "title": "Konfigurasi Global",
+ "description": "Konfigurasikan pengaturan global yang berlaku untuk semua kamera kecuali jika ditimpa.",
+ "toast": {
+ "success": "Pengaturan global berhasil disimpan",
+ "error": "Gagal menyimpan pengaturan global",
+ "validationError": "Validasi gagal"
+ }
+ },
+ "cameraConfig": {
+ "title": "Konfigurasi Kamera",
+ "description": "Konfigurasikan pengaturan untuk masing-masing kamera. Pengaturan menimpa default global.",
+ "overriddenBadge": "Ditimpa",
+ "resetToGlobal": "Atur Ulang ke Global",
+ "toast": {
+ "success": "Pengaturan kamera berhasil disimpan",
+ "error": "Gagal menyimpan pengaturan kamera"
+ }
+ },
+ "toast": {
+ "success": "Pengaturan berhasil disimpan",
+ "applied": "Pengaturan berhasil diterapkan",
+ "successRestartRequired": "Pengaturan berhasil disimpan. Mulai ulang Frigate untuk menerapkan perubahan Anda.",
+ "error": "Gagal menyimpan pengaturan",
+ "validationError": "Validasi gagal: {{message}}",
+ "resetSuccess": "Atur ulang ke default global",
+ "resetError": "Gagal mengatur ulang pengaturan",
+ "saveAllSuccess_other": "Semua {{count}} bagian berhasil disimpan.",
+ "saveAllSuccessRestartRequired_other": "Semua {{count}} bagian berhasil disimpan. Mulai ulang Frigate untuk menerapkan perubahan Anda.",
+ "saveAllPartial_other": "{{successCount}} dari {{totalCount}} bagian berhasil disimpan. {{failCount}} gagal.",
+ "saveAllFailure": "Gagal menyimpan semua bagian."
+ },
+ "profiles": {
+ "title": "Profil",
+ "activeProfile": "Profil Aktif",
+ "noActiveProfile": "Tidak ada profil aktif",
+ "active": "Aktif",
+ "activated": "Profil '{{profile}}' diaktifkan",
+ "activateFailed": "Gagal menetapkan profil",
+ "deactivated": "Profil dinonaktifkan",
+ "noProfiles": "Tidak ada profil yang didefinisikan.",
+ "noOverrides": "Tidak ada penimpaan",
+ "cameraCount_other": "{{count}} kamera",
+ "columnCamera": "Kamera",
+ "columnOverrides": "Penimpaan Profil",
+ "baseConfig": "Konfigurasi Dasar",
+ "addProfile": "Tambah Profil",
+ "newProfile": "Profil Baru",
+ "profileNamePlaceholder": "mis., Armed, Away, Night Mode",
+ "friendlyNameLabel": "Nama Profil",
+ "profileIdLabel": "ID Profil",
+ "profileIdDescription": "Pengidentifikasi internal yang digunakan dalam konfigurasi dan otomatisasi",
+ "nameInvalid": "Hanya huruf kecil, angka, dan garis bawah yang diizinkan",
+ "nameDuplicate": "Profil dengan nama ini sudah ada",
+ "error": {
+ "mustBeAtLeastTwoCharacters": "Harus minimal 2 karakter",
+ "mustNotContainPeriod": "Tidak boleh mengandung titik",
+ "alreadyExists": "Profil dengan ID ini sudah ada"
+ },
+ "renameProfile": "Ubah Nama Profil",
+ "renameSuccess": "Profil diubah namanya menjadi '{{profile}}'",
+ "deleteProfile": "Hapus Profil",
+ "deleteProfileConfirm": "Hapus profil \"{{profile}}\" dari semua kamera? Ini tidak dapat dibatalkan.",
+ "deleteSuccess": "Profil '{{profile}}' dihapus",
+ "createSuccess": "Profil '{{profile}}' dibuat",
+ "removeOverride": "Hapus Penimpaan Profil",
+ "deleteSection": "Hapus Penimpaan Bagian",
+ "deleteSectionConfirm": "Hapus penimpaan {{section}} untuk profil {{profile}} pada {{camera}}?",
+ "deleteSectionSuccess": "Penimpaan {{section}} untuk {{profile}} telah dihapus",
+ "enableSwitch": "Aktifkan Profil",
+ "enabledDescription": "Profil diaktifkan. Buat profil baru di bawah, buka bagian konfigurasi kamera untuk membuat perubahan, lalu simpan agar perubahan berlaku.",
+ "disabledDescription": "Profil memungkinkan Anda mendefinisikan kumpulan bernama dari penimpaan konfigurasi kamera (mis., armed, away, night) yang dapat diaktifkan sesuai kebutuhan."
+ },
+ "unsavedChanges": "Anda memiliki perubahan yang belum disimpan",
+ "confirmReset": "Konfirmasi Atur Ulang",
+ "resetToDefaultDescription": "Ini akan mengatur ulang semua pengaturan di bagian ini ke nilai defaultnya. Tindakan ini tidak dapat dibatalkan.",
+ "resetToGlobalDescription": "Ini akan mengatur ulang pengaturan di bagian ini ke default global. Tindakan ini tidak dapat dibatalkan.",
+ "go2rtcStreams": {
+ "title": "Stream go2rtc",
+ "description": "Kelola konfigurasi stream go2rtc untuk restreaming kamera. Setiap stream memiliki nama dan satu atau lebih URL sumber.",
+ "addStream": "Tambah stream",
+ "addStreamDesc": "Masukkan nama untuk stream baru. Nama ini akan digunakan untuk merujuk stream dalam konfigurasi kamera Anda.",
+ "addUrl": "Tambah URL",
+ "streamNumber": "Stream {{index}}",
+ "streamName": "Nama stream",
+ "streamNamePlaceholder": "mis., front_door",
+ "streamUrlPlaceholder": "mis., rtsp://user:pass@192.168.1.100/stream",
+ "deleteStream": "Hapus stream",
+ "deleteStreamConfirm": "Apakah Anda yakin ingin menghapus stream \"{{streamName}}\"? Kamera yang merujuk stream ini mungkin berhenti berfungsi.",
+ "noStreams": "Tidak ada stream go2rtc yang dikonfigurasi. Tambahkan stream untuk memulai.",
+ "validation": {
+ "nameRequired": "Nama stream wajib diisi",
+ "nameDuplicate": "Stream dengan nama ini sudah ada",
+ "nameInvalid": "Nama stream hanya boleh berisi huruf, angka, garis bawah, dan tanda hubung",
+ "urlRequired": "Setidaknya satu URL wajib diisi"
+ },
+ "renameStream": "Ubah nama stream",
+ "renameStreamDesc": "Masukkan nama baru untuk stream ini. Mengubah nama stream dapat merusak kamera atau stream lain yang merujuknya berdasarkan nama.",
+ "newStreamName": "Nama stream baru",
+ "ffmpeg": {
+ "useFfmpegModule": "Gunakan mode kompatibilitas (ffmpeg)",
+ "video": "Video",
+ "audio": "Audio",
+ "hardware": "Akselerasi perangkat keras",
+ "videoCopy": "Salin",
+ "videoH264": "Transkode ke H.264",
+ "videoH265": "Transkode ke H.265",
+ "videoExclude": "Kecualikan",
+ "audioCopy": "Salin",
+ "audioAac": "Transkode ke AAC",
+ "audioOpus": "Transkode ke Opus",
+ "audioPcmu": "Transkode ke PCM μ-law",
+ "audioPcma": "Transkode ke PCM A-law",
+ "audioPcm": "Transkode ke PCM",
+ "audioMp3": "Transkode ke MP3",
+ "audioExclude": "Kecualikan",
+ "hardwareNone": "Tanpa akselerasi perangkat keras",
+ "hardwareAuto": "Otomatis (direkomendasikan)",
+ "hardwareVaapi": "VAAPI",
+ "hardwareCuda": "CUDA",
+ "hardwareV4l2m2m": "V4L2 M2M",
+ "hardwareDxva2": "DXVA2",
+ "hardwareVideotoolbox": "VideoToolbox",
+ "addVideoCodec": "Tambah codec video",
+ "addAudioCodec": "Tambah codec audio",
+ "removeCodec": "Hapus codec"
+ }
+ },
+ "birdseye": {
+ "trackingMode": {
+ "objects": "Objek",
+ "motion": "Gerakan",
+ "continuous": "Kontinu"
+ },
+ "cameraOrder": {
+ "label": "Urutan kamera",
+ "description": "Seret kamera untuk mengatur urutannya dalam tata letak Birdseye.",
+ "reorderHandle": "Seret untuk mengubah urutan",
+ "saving": "Menyimpan…",
+ "saved": "Tersimpan"
+ }
+ },
+ "retainMode": {
+ "all": "Semua",
+ "motion": "Gerakan",
+ "active_objects": "Objek Aktif"
+ },
+ "previewQuality": {
+ "very_high": "Sangat Tinggi",
+ "high": "Tinggi",
+ "medium": "Sedang",
+ "low": "Rendah",
+ "very_low": "Sangat Rendah"
+ },
+ "ui": {
+ "timeFormat": {
+ "browser": "Browser",
+ "12hour": "12 jam",
+ "24hour": "24 jam"
+ },
+ "TimeOrDateStyle": {
+ "full": "Penuh",
+ "long": "Panjang",
+ "medium": "Sedang",
+ "short": "Pendek"
+ },
+ "unitSystem": {
+ "metric": "Metrik",
+ "imperial": "Imperial"
+ }
+ },
+ "review": {
+ "imageSource": {
+ "recordings": "Rekaman",
+ "previews": "Pratinjau"
+ }
+ },
+ "logger": {
+ "logLevel": {
+ "debug": "Debug",
+ "info": "Info",
+ "warning": "Peringatan",
+ "error": "Kesalahan",
+ "critical": "Kritis"
+ }
+ },
+ "onvif": {
+ "profileAuto": "Otomatis",
+ "profileLoading": "Memuat profil...",
+ "autotracking": {
+ "zooming": {
+ "disabled": "Dinonaktifkan",
+ "absolute": "Absolut",
+ "relative": "Relatif"
+ }
+ }
+ },
+ "modelSize": {
+ "small": "Kecil",
+ "large": "Besar"
}
}
diff --git a/web/public/locales/id/views/system.json b/web/public/locales/id/views/system.json
index 7cf1597d59..639d94cc21 100644
--- a/web/public/locales/id/views/system.json
+++ b/web/public/locales/id/views/system.json
@@ -1,13 +1,14 @@
{
"documentTitle": {
- "cameras": "Status kamera - Frigate",
- "storage": "Status Penyimpanan - Frigate",
- "general": "Status umum - Frigate",
+ "cameras": "Statistik Kamera - Frigate",
+ "storage": "Statistik Penyimpanan - Frigate",
+ "general": "Statistik Umum - Frigate",
"enrichments": "Statistik Enrichment - Frigate",
"logs": {
"frigate": "Log Frigate - Frigate",
"go2rtc": "Log Go2RTC - Frigate",
- "nginx": "Log NGINX - Frigate"
+ "nginx": "Log Nginx - Frigate",
+ "websocket": "Log Pesan - Frigate"
}
},
"title": "Sistem",
@@ -17,32 +18,242 @@
"label": "Unduh Log"
},
"copy": {
- "label": "Salin ke Clipboard",
- "success": "Log tersalin ke clipboard",
- "error": "Tidak dapat menyalin ke clipboard"
+ "label": "Salin ke Papan Klip",
+ "success": "Log berhasil disalin ke papan klip",
+ "error": "Tidak dapat menyalin log ke papan klip"
},
"type": {
- "label": "Tipe",
- "timestamp": "Waktu",
+ "label": "Jenis",
+ "timestamp": "Stempel waktu",
"tag": "Tag",
"message": "Pesan"
},
- "tips": "Logs sedang berjalan dari server",
+ "tips": "Log sedang dialirkan dari server",
"toast": {
"error": {
- "fetchingLogsFailed": "Error saat mengambil log: {{errorMessage}}",
- "whileStreamingLogs": "Eror saat streaming logs: {{errorMessage}}"
+ "fetchingLogsFailed": "Kesalahan saat mengambil log: {{errorMessage}}",
+ "whileStreamingLogs": "Kesalahan saat mengalirkan log: {{errorMessage}}"
+ }
+ },
+ "websocket": {
+ "label": "Pesan",
+ "pause": "Jeda",
+ "resume": "Lanjutkan",
+ "clear": "Bersihkan",
+ "filter": {
+ "all": "Semua topik",
+ "topics": "Topik",
+ "events": "Peristiwa",
+ "reviews": "Tinjauan",
+ "classification": "Klasifikasi",
+ "face_recognition": "Pengenalan Wajah",
+ "lpr": "LPR",
+ "camera_activity": "Aktivitas kamera",
+ "system": "Sistem",
+ "camera": "Kamera",
+ "all_cameras": "Semua kamera",
+ "cameras_count_one": "{{count}} Kamera",
+ "cameras_count_other": "{{count}} Kamera"
+ },
+ "empty": "Belum ada pesan yang ditangkap",
+ "count_one": "{{count}} pesan",
+ "count_other": "{{count}} pesan",
+ "expanded": {
+ "payload": "Payload"
}
}
},
"general": {
"title": "Umum",
"detector": {
- "title": "Pendeteksi",
- "inferenceSpeed": "Pendeteksi Kecepatan Inferensi",
- "temperature": "Pendeteksi Suhu",
- "cpuUsage": "Pendeteksi penggunaan CPU",
- "cpuUsageInformation": "CPU yang digunakan dalam mempersiapkan data masukan dan keluaran ke/dari model deteksi. Nilai ini tidak mengukur penggunaan inferensi, bahkan jika menggunakan GPU atau akselerator."
+ "title": "Detektor",
+ "inferenceSpeed": "Kecepatan Inferensi Detektor",
+ "temperature": "Suhu Detektor",
+ "cpuUsage": "Penggunaan CPU Detektor",
+ "cpuUsageInformation": "CPU yang digunakan untuk menyiapkan data input dan output ke/dari model deteksi. Nilai ini tidak mengukur penggunaan inferensi, meskipun menggunakan GPU atau akselerator.",
+ "memoryUsage": "Penggunaan Memori Detektor"
+ },
+ "hardwareInfo": {
+ "title": "Info Perangkat Keras",
+ "gpuUsage": "Penggunaan GPU",
+ "gpuMemory": "Memori GPU",
+ "gpuEncoder": "Encoder GPU",
+ "gpuCompute": "Komputasi / Enkode GPU",
+ "gpuDecoder": "Decoder GPU",
+ "gpuTemperature": "Suhu GPU",
+ "gpuInfo": {
+ "vainfoOutput": {
+ "title": "Output Vainfo",
+ "returnCode": "Kode Pengembalian: {{code}}",
+ "processOutput": "Output Proses:",
+ "processError": "Kesalahan Proses:"
+ },
+ "nvidiaSMIOutput": {
+ "title": "Output Nvidia SMI",
+ "name": "Nama: {{name}}",
+ "driver": "Driver: {{driver}}",
+ "cudaComputerCapability": "Kemampuan Komputasi CUDA: {{cuda_compute}}",
+ "vbios": "Info VBios: {{vbios}}"
+ },
+ "closeInfo": {
+ "label": "Tutup info GPU"
+ },
+ "copyInfo": {
+ "label": "Salin info GPU"
+ },
+ "toast": {
+ "success": "Info GPU berhasil disalin ke papan klip"
+ }
+ },
+ "npuUsage": "Penggunaan NPU",
+ "npuMemory": "Memori NPU",
+ "npuTemperature": "Suhu NPU",
+ "intelGpuWarning": {
+ "title": "Peringatan Statistik GPU Intel",
+ "message": "Statistik GPU tidak tersedia",
+ "description": "Ini adalah bug yang sudah diketahui pada alat pelaporan statistik GPU Intel (intel_gpu_top) yang dapat rusak dan berulang kali mengembalikan penggunaan GPU sebesar 0% bahkan ketika akselerasi perangkat keras dan deteksi objek berjalan dengan benar pada (i)GPU. Ini bukan bug Frigate. Anda dapat memulai ulang host untuk memperbaiki masalah ini sementara dan memastikan GPU berfungsi dengan benar. Ini tidak memengaruhi kinerja."
+ }
+ },
+ "otherProcesses": {
+ "title": "Proses Lainnya",
+ "processCpuUsage": "Penggunaan CPU Proses",
+ "processMemoryUsage": "Penggunaan Memori Proses",
+ "series": {
+ "go2rtc": "go2rtc",
+ "recording": "perekaman",
+ "review_segment": "segmen tinjauan",
+ "embeddings": "embedding",
+ "audio_detector": "detektor audio"
+ }
+ }
+ },
+ "storage": {
+ "title": "Penyimpanan",
+ "overview": "Ringkasan",
+ "recordings": {
+ "title": "Rekaman",
+ "tips": "Nilai ini menunjukkan total penyimpanan yang digunakan oleh rekaman di basis data Frigate. Frigate tidak melacak penggunaan penyimpanan untuk semua file di disk Anda.",
+ "earliestRecording": "Rekaman paling awal yang tersedia:"
+ },
+ "shm": {
+ "title": "Alokasi SHM (memori bersama)",
+ "warning": "Ukuran SHM saat ini sebesar {{total}}MB terlalu kecil. Tingkatkan menjadi setidaknya {{min_shm}}MB.",
+ "frameLifetime": {
+ "title": "Masa hidup frame",
+ "description": "Setiap kamera memiliki {{frames}} slot frame di memori bersama. Pada laju frame kamera tercepat, setiap frame tersedia selama sekitar {{lifetime}} dtk sebelum ditimpa."
+ }
+ },
+ "cameraStorage": {
+ "title": "Penyimpanan Kamera",
+ "camera": "Kamera",
+ "unusedStorageInformation": "Informasi Penyimpanan Tidak Terpakai",
+ "storageUsed": "Penyimpanan",
+ "percentageOfTotalUsed": "Persentase dari Total",
+ "bandwidth": "Bandwidth",
+ "unused": {
+ "title": "Tidak Terpakai",
+ "tips": "Nilai ini mungkin tidak secara akurat merepresentasikan ruang kosong yang tersedia untuk Frigate jika Anda memiliki file lain yang disimpan di drive selain rekaman Frigate. Frigate tidak melacak penggunaan penyimpanan di luar rekamannya."
+ }
+ }
+ },
+ "cameras": {
+ "title": "Kamera",
+ "overview": "Ringkasan",
+ "info": {
+ "aspectRatio": "rasio aspek",
+ "cameraProbeInfo": "Info Probe Kamera {{camera}}",
+ "streamDataFromFFPROBE": "Data stream diperoleh dengan ffprobe.",
+ "fetching": "Mengambil Data Kamera",
+ "stream": "Stream {{idx}}",
+ "video": "Video:",
+ "codec": "Codec:",
+ "resolution": "Resolusi:",
+ "fps": "FPS:",
+ "unknown": "Tidak diketahui",
+ "audio": "Audio:",
+ "error": "Kesalahan: {{error}}",
+ "tips": {
+ "title": "Info Probe Kamera"
+ }
+ },
+ "framesAndDetections": "Frame / Deteksi",
+ "noCameras": {
+ "title": "Tidak Ada Kamera Ditemukan"
+ },
+ "label": {
+ "camera": "kamera",
+ "detect": "deteksi",
+ "skipped": "dilewati",
+ "ffmpeg": "FFmpeg",
+ "capture": "penangkapan",
+ "overallFramesPerSecond": "jumlah frame per detik keseluruhan",
+ "overallDetectionsPerSecond": "jumlah deteksi per detik keseluruhan",
+ "overallSkippedDetectionsPerSecond": "jumlah deteksi yang dilewati per detik keseluruhan",
+ "cameraFfmpeg": "FFmpeg {{camName}}",
+ "cameraCapture": "penangkapan {{camName}}",
+ "cameraDetect": "deteksi {{camName}}",
+ "cameraGpu": "GPU {{camName}}",
+ "cameraFramesPerSecond": "frame per detik {{camName}}",
+ "cameraDetectionsPerSecond": "deteksi per detik {{camName}}",
+ "cameraSkippedDetectionsPerSecond": "deteksi yang dilewati per detik {{camName}}"
+ },
+ "connectionQuality": {
+ "title": "Kualitas Koneksi",
+ "excellent": "Sangat Baik",
+ "fair": "Cukup",
+ "poor": "Buruk",
+ "unusable": "Tidak Dapat Digunakan",
+ "fps": "FPS",
+ "expectedFps": "FPS yang Diharapkan",
+ "reconnectsLastHour": "Penyambungan ulang (1 jam terakhir)",
+ "stallsLastHour": "Macet (1 jam terakhir)"
+ },
+ "toast": {
+ "success": {
+ "copyToClipboard": "Data probe berhasil disalin ke papan klip."
+ },
+ "error": {
+ "unableToProbeCamera": "Tidak dapat memeriksa kamera: {{errorMessage}}"
+ }
+ }
+ },
+ "lastRefreshed": "Terakhir diperbarui: ",
+ "stats": {
+ "ffmpegHighCpuUsage": "{{camera}} memiliki penggunaan CPU FFmpeg yang tinggi ({{ffmpegAvg}}%)",
+ "detectHighCpuUsage": "{{camera}} memiliki penggunaan CPU deteksi yang tinggi ({{detectAvg}}%)",
+ "healthy": "Sistem sehat",
+ "reindexingEmbeddings": "Mengindeks ulang embedding ({{processed}}% selesai)",
+ "cameraIsOffline": "{{camera}} sedang offline",
+ "detectIsSlow": "{{detect}} lambat ({{speed}} md)",
+ "detectIsVerySlow": "{{detect}} sangat lambat ({{speed}} md)",
+ "shmTooLow": "Alokasi /dev/shm ({{total}} MB) harus ditingkatkan menjadi setidaknya {{min}} MB.",
+ "debugReplayActive": "Sesi pemutaran ulang debug sedang aktif"
+ },
+ "enrichments": {
+ "title": "Enrichment",
+ "infPerSecond": "Inferensi Per Detik",
+ "averageInf": "Waktu Inferensi Rata-rata",
+ "embeddings": {
+ "image_embedding": "Embedding Gambar",
+ "text_embedding": "Embedding Teks",
+ "face_recognition": "Pengenalan Wajah",
+ "plate_recognition": "Pengenalan Plat",
+ "image_embedding_speed": "Kecepatan Embedding Gambar",
+ "face_embedding_speed": "Kecepatan Embedding Wajah",
+ "face_recognition_speed": "Kecepatan Pengenalan Wajah",
+ "plate_recognition_speed": "Kecepatan Pengenalan Plat",
+ "text_embedding_speed": "Kecepatan Embedding Teks",
+ "yolov9_plate_detection_speed": "Kecepatan Deteksi Plat YOLOv9",
+ "yolov9_plate_detection": "Deteksi Plat YOLOv9",
+ "review_description": "Deskripsi Tinjauan",
+ "review_description_speed": "Kecepatan Deskripsi Tinjauan",
+ "review_description_events_per_second": "Deskripsi Tinjauan",
+ "object_description": "Deskripsi Objek",
+ "object_description_speed": "Kecepatan Deskripsi Objek",
+ "object_description_events_per_second": "Deskripsi Objek",
+ "classification": "Klasifikasi {{name}}",
+ "classification_speed": "Kecepatan Klasifikasi {{name}}",
+ "classification_events_per_second": "Peristiwa Klasifikasi {{name}} Per Detik"
}
}
}
diff --git a/web/public/locales/it/common.json b/web/public/locales/it/common.json
index 1a718250be..954d66c3c8 100644
--- a/web/public/locales/it/common.json
+++ b/web/public/locales/it/common.json
@@ -333,5 +333,8 @@
"internalID": "L'ID interno che Frigate utilizza nella configurazione e nel database"
},
"no_items": "Nessun elemento",
- "validation_errors": "Errori di convalida"
+ "validation_errors": "Errori di convalida",
+ "credentialField": {
+ "savedPlaceholder": "Salvato — lascia vuoto per mantenere aggiornato"
+ }
}
diff --git a/web/public/locales/it/components/player.json b/web/public/locales/it/components/player.json
index e8a1f5bbbf..629d726189 100644
--- a/web/public/locales/it/components/player.json
+++ b/web/public/locales/it/components/player.json
@@ -48,5 +48,6 @@
"submitFrigatePlusFailed": "Impossibile inviare il fotogramma a Frigate+"
}
},
- "cameraDisabled": "La telecamera è disabilita"
+ "cameraDisabled": "La telecamera è disabilita",
+ "cameraOff": "Camera spenta"
}
diff --git a/web/public/locales/it/config/cameras.json b/web/public/locales/it/config/cameras.json
index 01dddb58a1..148762f3f5 100644
--- a/web/public/locales/it/config/cameras.json
+++ b/web/public/locales/it/config/cameras.json
@@ -5,8 +5,8 @@
"description": "Il nome della telecamera è obbligatorio"
},
"friendly_name": {
- "description": "Nome amichevole della telecamera utilizzato nell'interfaccia utente di Frigate",
- "label": "Nome amichevole"
+ "description": "Nome descrittivo della telecamera utilizzato nell'interfaccia utente di Frigate",
+ "label": "Nome descrittivo"
},
"enabled": {
"label": "Abilitata",
@@ -169,6 +169,9 @@
"threshold": {
"label": "Soglia stazionaria",
"description": "Numero di fotogrammi senza cambio di posizione necessari per contrassegnare un oggetto come stazionario."
+ },
+ "max_frames": {
+ "label": "Max Fotogrammi"
}
}
},
@@ -179,7 +182,8 @@
"label": "Revisiona"
},
"profiles": {
- "label": "Profili"
+ "label": "Profili",
+ "description": "Profili di configurazione denominati con sovrascritture parziali che possono essere attivati in fase di esecuzione."
},
"record": {
"label": "Registrazione",
@@ -248,7 +252,11 @@
"semantic_search": {
"label": "Ricerca semantica",
"triggers": {
- "label": "Inneschi"
+ "label": "Inneschi",
+ "friendly_name": {
+ "label": "Nome descrittivo",
+ "description": "Nome descrittivo opzionale visualizzato nell'interfaccia utente per questo innesco."
+ }
}
},
"lpr": {
@@ -269,7 +277,11 @@
"enabled": {
"label": "Abilitata"
},
- "label": "Zone"
+ "label": "Zone",
+ "friendly_name": {
+ "label": "Nome zona",
+ "description": "Un nome intuitivo per la zona, visualizzato nell'interfaccia utente di Frigate. Se non specificato, verrà utilizzata una versione formattata del nome della zona."
+ }
},
"type": {
"description": "Tipo di telecamera",
diff --git a/web/public/locales/it/config/global.json b/web/public/locales/it/config/global.json
index d7e594ace1..d028d4738a 100644
--- a/web/public/locales/it/config/global.json
+++ b/web/public/locales/it/config/global.json
@@ -89,11 +89,16 @@
"description": "Elenco degli indirizzi IP proxy attendibili utilizzati per determinare l'indirizzo IP del client ai fini della limitazione della velocità."
},
"roles": {
- "label": "Mappatura dei ruoli"
+ "label": "Mappatura dei ruoli",
+ "description": "Associa i ruoli agli elenchi delle telecamere. Un elenco vuoto garantisce l'accesso a tutte le telecamere per quel ruolo."
},
"failed_login_rate_limit": {
"label": "Limiti di accesso non riusciti",
"description": "Regole di limitazione della frequenza per i tentativi di accesso non riusciti al fine di ridurre gli attacchi di forza bruta."
+ },
+ "hash_iterations": {
+ "description": "Numero di iterazioni PBKDF2-SHA256 da utilizzare per criptare le password utente.",
+ "label": "Iterazioni di crittografia"
}
},
"ffmpeg": {
@@ -294,6 +299,9 @@
"threshold": {
"label": "Soglia stazionaria",
"description": "Numero di fotogrammi senza cambio di posizione necessari per contrassegnare un oggetto come stazionario."
+ },
+ "max_frames": {
+ "label": "Max Fotogrammi"
}
}
},
@@ -343,7 +351,12 @@
"description": "Preferenze dell'interfaccia utente come fuso orario, formato di data/ora e unità di misura."
},
"profiles": {
- "label": "Profili"
+ "label": "Profili",
+ "friendly_name": {
+ "label": "Nome descrittivo",
+ "description": "Nome visualizzato per questo profilo nell'interfaccia utente."
+ },
+ "description": "Definizioni di profili denominati con nomi descrittivi. I profili delle telecamere devono fare riferimento ai nomi definiti qui."
},
"record": {
"label": "Registrazione",
@@ -462,7 +475,11 @@
"semantic_search": {
"label": "Ricerca semantica",
"triggers": {
- "label": "Inneschi"
+ "label": "Inneschi",
+ "friendly_name": {
+ "label": "Nome descrittivo",
+ "description": "Nome descrittivo opzionale visualizzato nell'interfaccia utente per questo innesco."
+ }
},
"model_size": {
"label": "Dimensioni del modello"
diff --git a/web/public/locales/it/config/validation.json b/web/public/locales/it/config/validation.json
index eaba21cb21..c6049d5f0b 100644
--- a/web/public/locales/it/config/validation.json
+++ b/web/public/locales/it/config/validation.json
@@ -28,5 +28,8 @@
"detectRequired": "Ad almeno un flusso di ingresso deve essere assegnato il ruolo di 'rilevamento'.",
"hwaccelDetectOnly": "Solo il flusso di ingresso con il ruolo di rilevamento può definire argomenti di accelerazione hardware."
}
+ },
+ "detect": {
+ "dimensionMustBeEven": "Deve essere un numero pari."
}
}
diff --git a/web/public/locales/it/views/chat.json b/web/public/locales/it/views/chat.json
index a56c5a4ee1..dfe5166224 100644
--- a/web/public/locales/it/views/chat.json
+++ b/web/public/locales/it/views/chat.json
@@ -60,5 +60,13 @@
"stats": {
"context": "{{tokens}} token",
"tokens_per_second": "{{rate}} t/s"
+ },
+ "reasoning": {
+ "active": "Ragionamento…",
+ "show": "Mostra il ragionamento",
+ "hide": "Nascondi il ragionamento"
+ },
+ "thinking": {
+ "toggle": "Alterna ragionamento"
}
}
diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json
index 042c4694e0..cc88ab5b8e 100644
--- a/web/public/locales/it/views/settings.json
+++ b/web/public/locales/it/views/settings.json
@@ -16,7 +16,8 @@
"globalConfig": "Configurazione globale - Frigate",
"cameraConfig": "Configurazione telecamera - Frigate",
"maintenance": "Manutenzione - Frigate",
- "profiles": "Profili - Frigate"
+ "profiles": "Profili - Frigate",
+ "detectorsAndModel": "Rilevatori e modelli - Frigate"
},
"frigatePlus": {
"snapshotConfig": {
@@ -45,7 +46,7 @@
"userModel": "Messa a punto fine",
"baseModel": "Modello base"
},
- "availableModels": "Modelli disponibili",
+ "availableModels": "Modelli Frigate+ disponibili",
"loadingAvailableModels": "Caricamento dei modelli disponibili…",
"supportedDetectors": "Rilevatori supportati",
"error": "Impossibile caricare le informazioni sul modello",
@@ -75,7 +76,8 @@
"currentModel": "Modello attuale",
"otherModels": "Altri modelli",
"configuration": "Configurazione"
- }
+ },
+ "changeInDetectorsAndModel": "Cambia modello"
},
"debug": {
"timestamp": {
@@ -169,7 +171,7 @@
"defaultName": "Maschera di movimento {{number}}",
"name": {
"title": "Nome",
- "description": "Un nome amichevole opzionale per questa maschera di movimento.",
+ "description": "Un nome descrittivo opzionale per questa maschera di movimento.",
"placeholder": "Inserisci un nome..."
}
},
@@ -341,7 +343,7 @@
"name": {
"title": "Nome",
"placeholder": "Inserisci un nome...",
- "description": "Un nome amichevole facoltativo per questa maschera oggetto."
+ "description": "Un nome descrittivo facoltativo per questa maschera oggetto."
}
},
"restart_required": "Riavvio richiesto (maschere/zone modificate)",
@@ -507,7 +509,8 @@
"mediaSync": "Sincronizzazione multimediale",
"cameraMqtt": "MQTT telecamera",
"maintenance": "Manutenzione",
- "regionGrid": "Griglia di regioni"
+ "regionGrid": "Griglia di regioni",
+ "systemDetectorsAndModel": "Rilevatori e modelli"
},
"users": {
"dialog": {
@@ -1404,7 +1407,7 @@
"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 correzioni non saranno disponibili.モーションボックス
現在モーションが検出されている領域に赤いボックスが重ねて表示されます
" + "desc": "モーションが検知された領域のボックスを表示します", + "tips": "モーションボックス
現在モーションが検知されている領域に赤いボックスが重ねて表示されます
" }, "regions": { "title": "領域", @@ -643,7 +717,7 @@ "createRole": "ロール {{role}} を作成しました", "updateCameras": "ロール {{role}} のカメラを更新しました", "deleteRole": "ロール {{role}} を削除しました", - "userRolesUpdated_other": "このロールに割り当てられていた {{count}} ユーザーは「viewer」に更新され、すべてのカメラへの閲覧アクセスが付与されました。" + "userRolesUpdated_other": "このロールに割り当てられていた {{count}} ユーザーは「viewer」に更新され、全カメラへの閲覧アクセスが付与されました。" }, "error": { "createRoleFailed": "ロールの作成に失敗しました: {{errorMessage}}", @@ -663,7 +737,7 @@ }, "deleteRole": { "title": "ロールを削除", - "desc": "この操作は元に戻せません。ロールは完全に削除され、このロールを持っていたユーザーは「viewer」ロールに再割り当てされ、すべてのカメラへの閲覧アクセスが付与されます。", + "desc": "この操作は元に戻せません。ロールは完全に削除され、このロールを持っていたユーザーは「viewer」ロールに再割り当てされ、全カメラへの閲覧アクセスが付与されます。", "warn": "{{role}} を削除してもよろしいですか?", "deleting": "削除中…" }, @@ -741,14 +815,14 @@ "title": "Frigate+ 設定", "apiKey": { "title": "Frigate+ API キー", - "validated": "Frigate+ API キーが検出され、検証されました", - "notValidated": "Frigate+ API キーが検出されないか、検証されていません", + "validated": "Frigate+ API キーが検知され、検証されました", + "notValidated": "Frigate+ API キーが検知されないか、検証されていません", "desc": "Frigate+ API キーは Frigate+ サービスとの統合を有効にします。", "plusLink": "Frigate+ の詳細を読む" }, "snapshotConfig": { "title": "スナップショット設定", - "desc": "Frigate+ への送信には、設定でスナップショットとclean_copy スナップショットの両方を有効にする必要があります。",
+ "desc": "Frigate+ への送信には、設定でスナップショットを有効にする必要があります。",
"cleanCopyWarning": "一部のカメラではスナップショット機能が無効になっています",
"table": {
"camera": "カメラ",
@@ -771,14 +845,30 @@
"error": "モデル情報の読み込みに失敗しました",
"availableModels": "利用可能なモデル",
"loadingAvailableModels": "利用可能なモデルを読み込み中…",
- "modelSelect": "ここで Frigate+ 上の利用可能なモデルを選択できます。現在の検出器構成と互換性のあるモデルのみ選択可能です。"
+ "modelSelect": "ここで Frigate+ 上の利用可能なモデルを選択できます。現在の検出器構成と互換性のあるモデルのみ選択可能です。",
+ "noModelLoaded": "Frigate+ モデルは現在読み込まれていません。",
+ "selectModel": "モデルを選択",
+ "noModelsAvailable": "利用可能なモデルがありません",
+ "filter": {
+ "ariaLabel": "モデルをタイプで絞り込み",
+ "baseModels": "ベースモデル",
+ "fineTunedModels": "ファインチューニング済みモデル"
+ }
},
"unsavedChanges": "未保存の Frigate+ 設定の変更",
"restart_required": "再起動が必要です(Frigate+ モデルを変更)",
"toast": {
"success": "Frigate+ 設定を保存しました。変更を適用するには Frigate を再起動してください。",
"error": "設定変更の保存に失敗しました: {{errorMessage}}"
- }
+ },
+ "description": "Frigate+ はサブスクリプションサービスで、独自データで学習させたカスタム物体検知モデルなど、Frigate インスタンスに追加機能を提供します。Frigate+ モデルの設定はここから管理できます。",
+ "cardTitles": {
+ "api": "API",
+ "currentModel": "現在のモデル",
+ "otherModels": "その他のモデル",
+ "configuration": "設定"
+ },
+ "changeInDetectorsAndModel": "モデルを変更"
},
"triggers": {
"documentTitle": "トリガー",
@@ -788,7 +878,7 @@
},
"addTrigger": "トリガーを追加",
"table": {
- "name": "名称",
+ "name": "名前",
"type": "タイプ",
"content": "コンテンツ",
"threshold": "しきい値",
@@ -823,7 +913,7 @@
},
"form": {
"name": {
- "title": "名称",
+ "title": "名前",
"placeholder": "トリガー名を入力",
"error": {
"minLength": "この項目は2文字以上で入力してください。",
@@ -838,15 +928,15 @@
"type": {
"title": "タイプ",
"placeholder": "トリガータイプを選択",
- "description": "類似した追跡オブジェクトの説明が検出されたときにトリガー",
- "thumbnail": "類似した追跡オブジェクトのサムネイルが検出されたときにトリガー"
+ "description": "類似した追跡オブジェクトの説明が検知されたときにトリガー",
+ "thumbnail": "類似した追跡オブジェクトのサムネイルが検知されたときにトリガー"
},
"content": {
"title": "コンテンツ",
"imagePlaceholder": "サムネイルを選択",
"textPlaceholder": "テキストを入力",
"imageDesc": "最新のサムネイル100件のみが表示されます。目的のサムネイルが見つからない場合は、探索で過去のオブジェクトを確認し、そこのメニューからトリガーを設定してください。",
- "textDesc": "類似する追跡オブジェクトの説明が検出されたときにこのアクションをトリガーするためのテキストを入力します。",
+ "textDesc": "類似する追跡オブジェクトの説明が検知されたときにこのアクションをトリガーするためのテキストを入力します。",
"error": {
"required": "コンテンツは必須です。"
}
@@ -860,7 +950,7 @@
"desc": "このトリガーの類似度しきい値を設定します。値が高いほど、より近い一致が必要になります。"
},
"actions": {
- "title": "アクション",
+ "title": "操作",
"desc": "デフォルトでは、Frigate はすべてのトリガーに対して MQTT メッセージを送信します。サブラベルは、トリガー名をオブジェクトのラベルに追加します。属性(Attributes)は、追跡オブジェクトのメタデータとは別に保存される検索可能なメタデータです。",
"error": {
"min": "少なくとも1つのアクションを選択してください。"
@@ -961,7 +1051,7 @@
"quality": "品質",
"selectQuality": "品質を選択",
"roleLabels": {
- "detect": "物体検出",
+ "detect": "物体検知",
"record": "録画",
"audio": "音声"
},
@@ -973,12 +1063,12 @@
"notConnected": "未接続",
"featuresTitle": "機能",
"go2rtc": "カメラへの接続数を削減",
- "detectRoleWarning": "続行するには、少なくとも 1 つのストリームに「検出」ロールが必要です。",
+ "detectRoleWarning": "続行するには、少なくとも 1 つのストリームに「検知」ロールが必要です。",
"rolesPopover": {
"title": "ストリーム ロール",
- "detect": "物体検出用のメイン フィードです。",
+ "detect": "物体検知用のメイン フィードです。",
"record": "設定に基づいて映像フィードのセグメントを保存します。",
- "audio": "音声ベース検出用のフィードです。"
+ "audio": "音声ベース検知用のフィードです。"
},
"featuresPopover": {
"title": "ストリーム機能",
@@ -999,8 +1089,8 @@
},
"testResultLabels": {
"resolution": "解像度",
- "video": "ビデオ",
- "audio": "オーディオ",
+ "video": "映像",
+ "audio": "音声",
"fps": "FPS"
},
"commonErrors": {
@@ -1008,7 +1098,7 @@
"testFailed": "ストリームテストに失敗しました: {{error}}"
},
"step1": {
- "description": "カメラの詳細を入力し、カメラを自動検出するか、メーカーを手動で選択してください。",
+ "description": "カメラの詳細を入力し、カメラを自動検知するか、メーカーを手動で選択してください。",
"cameraName": "カメラ名",
"cameraNamePlaceholder": "例: front_door または Back Yard Overview",
"host": "ホスト/IP アドレス",
@@ -1046,17 +1136,17 @@
"reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
},
"connectionSettings": "接続設定",
- "detectionMethod": "ストリーム検出方法",
+ "detectionMethod": "ストリーム検知方法",
"onvifPort": "ONVIF ポート",
"probeMode": "カメラをプローブ",
"manualMode": "手動選択",
"useDigestAuth": "ダイジェスト認証を使用",
"useDigestAuthDescription": "ONVIF に HTTP ダイジェスト認証を使用します。一部のカメラでは、通常の管理者ユーザーではなく専用の ONVIF ユーザー名/パスワードが必要な場合があります。",
- "detectionMethodDescription": "(対応している場合)ONVIF を使用してカメラを自動設定し、カメラのストリーム URL を検出するか、カメラのブランドを手動で選択して事前定義された URL を使用します。カスタム RTSP URL を入力する場合は、手動設定を選択し、「その他」を選んでください。",
+ "detectionMethodDescription": "(対応している場合)ONVIF を使用してカメラを自動設定し、カメラのストリーム URL を検知するか、カメラのブランドを手動で選択して事前定義された URL を使用します。カスタム RTSP URL を入力する場合は、手動設定を選択し、「その他」を選んでください。",
"onvifPortDescription": "ONVIF に対応しているカメラの場合、通常は 80 または 8080 です。"
},
"step2": {
- "description": "選択した検出方法に応じて、カメラから利用可能なストリームを自動検出するか、手動で設定してください。",
+ "description": "選択した検知方法に応じて、カメラから利用可能なストリームを自動検知するか、手動で設定してください。",
"streamsTitle": "カメラストリーム",
"addStream": "ストリームを追加",
"addAnotherStream": "ストリームをさらに追加",
@@ -1156,9 +1246,9 @@
"videoCodecGood": "ビデオ コーデックは {{codec}} です。",
"audioCodecGood": "オーディオ コーデックは {{codec}} です。",
"resolutionHigh": "解像度 {{resolution}} はリソース使用量が増加する可能性があります。",
- "resolutionLow": "解像度 {{resolution}} は小さなオブジェクトを確実に検出するには低すぎる可能性があります。",
+ "resolutionLow": "解像度 {{resolution}} は小さなオブジェクトを確実に検知するには低すぎる可能性があります。",
"audioCodecRecordError": "録画で音声をサポートするには AAC オーディオ コーデックが必要です。",
- "audioCodecRequired": "音声検出をサポートするには音声ストリームが必要です。",
+ "audioCodecRequired": "音声検知をサポートするには音声ストリームが必要です。",
"restreamingWarning": "録画用ストリームでカメラへの接続数を削減すると、CPU 使用率がわずかに増加する場合があります。",
"brands": {
"reolink-rtsp": "Reolink の RTSP は推奨されません。カメラのファームウェア設定で HTTP を有効にし、ウィザードを再起動してください。",
@@ -1170,7 +1260,8 @@
"hikvision": {
"substreamWarning": "サブストリーム 1 は低解像度に固定されています。多くの Hikvision カメラは追加のサブストリームをサポートしており、カメラ設定で有効化する必要があります。利用可能であればそれらのストリームを使用することを推奨します。"
},
- "noAudioWarning": "このストリームでは音声が検出されていません。録画には音声が含まれません。"
+ "noAudioWarning": "このストリームでは音声が検知されていません。録画には音声が含まれません。",
+ "resolutionUnknown": "このストリームの解像度を取得できませんでした。設定画面または設定ファイルで検知解像度を手動で指定してください。"
},
"ffmpegModuleDescription": "何度か試してもストリームが読み込まれない場合は、このオプションを有効にしてください。有効にすると、Frigate は go2rtc と併用して ffmpeg モジュールを使用します。一部のカメラストリームでは、互換性が向上する場合があります。"
}
@@ -1183,7 +1274,30 @@
"backToSettings": "カメラ設定に戻る",
"streams": {
"title": "カメラの有効化/無効化",
- "desc": "Frigate を再起動するまで一時的にカメラを無効化します。無効化すると、このカメラのストリーム処理は完全に停止し、検出・録画・デバッグは利用できません。 detect камера {{cameraName}} не отримувала ніяких кадрів, перевіряйте журнали помилок"
+ "desc": "Потік detect камери {{cameraName}} не отримував ніяких кадрів, перевірте журнал помилок"
},
"cameraDisabled": "Камера вимкнена",
"toast": {
diff --git a/web/public/locales/uk/views/classificationModel.json b/web/public/locales/uk/views/classificationModel.json
index faceecd91c..82739b61d1 100644
--- a/web/public/locales/uk/views/classificationModel.json
+++ b/web/public/locales/uk/views/classificationModel.json
@@ -12,12 +12,12 @@
},
"toast": {
"success": {
- "deletedCategory_one": "Видалений клас",
- "deletedCategory_few": "",
- "deletedCategory_many": "",
- "deletedImage_one": "Видалені зображення",
- "deletedImage_few": "",
- "deletedImage_many": "",
+ "deletedCategory_one": "Видалено {{count}} клас",
+ "deletedCategory_few": "Видалено {{count}} класи",
+ "deletedCategory_many": "Видалено {{count}} класів",
+ "deletedImage_one": "Видалено {{count}} зображення",
+ "deletedImage_few": "Видалено {{count}} зображення",
+ "deletedImage_many": "Видалено {{count}} зображень",
"categorizedImage": "Зображення успішно класифіковано",
"trainedModel": "Успішно навчена модель.",
"trainingModel": "Успішно розпочато навчання моделі.",
diff --git a/web/public/locales/uk/views/settings.json b/web/public/locales/uk/views/settings.json
index e9bc0dd420..a7816acdfe 100644
--- a/web/public/locales/uk/views/settings.json
+++ b/web/public/locales/uk/views/settings.json
@@ -135,7 +135,7 @@
},
"context": {
"documentation": "Прочитати документацію",
- "title": "Маски руху використовуються для запобігання виявлення небажаних типів руху (наприклад: гілки дерева, часові мітки камери). Слід використовувати маски рухудуже економно, надмірне маскування ускладнить відстеження об'єктів."
+ "title": "Маски руху використовуються для запобігання виявлення небажаних типів руху (наприклад: гілки дерева, часові мітки камери). Слід використовувати маски руху дуже економно, надмірне маскування ускладнить відстеження об'єктів."
},
"clickDrawPolygon": "Клацніть, щоб намалювати багатокутник на зображенні.",
"add": "Нова маска руху",
@@ -300,7 +300,7 @@
"all": "Усі маски та зони"
},
"motionMaskLabel": "Маска руху {{number}}",
- "objectMaskLabel": "Маска об'єкта {{number}} ({{label}})"
+ "objectMaskLabel": "Маска об'єкта {{number}}"
},
"debug": {
"zones": {
@@ -451,7 +451,7 @@
"snapshots": "Знімки",
"cleanCopySnapshots": "clean_copy Знімки"
},
- "cleanCopyWarning": "На деяких камерах увімкнено знімки екрана, але вимкнено чисте копіювання. Щоб мати змогу надсилати зображення з цих камер до Frigate+, потрібно ввімкнути параметр clean_copy у конфігурації знімків екрана."
+ "cleanCopyWarning": "На деяких камерах знімки екрана вимкнені"
},
"apiKey": {
"desc": "Ключ API Frigate+ забезпечує інтеграцію з сервісом Frigate+.",
@@ -529,7 +529,7 @@
"motionDetectionTuner": {
"improveContrast": {
"title": "Покращення контрастності",
- "desc": "Покращення контрастності для темніших сцен. За замовчуванням: УВІМК."
+ "desc": "Покращення контрастності для темніших сцен. За замовчуванням: УВІМК"
},
"desc": {
"documentation": "Прочитайте посібник з налаштування руху",
@@ -578,7 +578,8 @@
"triggers": "Тригери",
"roles": "Ролі",
"cameraManagement": "Управління",
- "cameraReview": "Огляду"
+ "cameraReview": "Огляду",
+ "profiles": "Профілі"
},
"dialog": {
"unsavedChanges": {
@@ -647,7 +648,7 @@
"hide": "Приховати пароль",
"requirements": {
"title": "Вимоги до пароля:",
- "length": "Принаймні 8 символів",
+ "length": "Принаймні 12 символів",
"uppercase": "Принаймні одна велика літера",
"digit": "Принаймні одна цифра",
"special": "Принаймні один спеціальний символ (!@#$%^&*(),.?\":{}|<>)"
diff --git a/web/public/locales/uk/views/system.json b/web/public/locales/uk/views/system.json
index b65616c60e..a503559ed2 100644
--- a/web/public/locales/uk/views/system.json
+++ b/web/public/locales/uk/views/system.json
@@ -68,7 +68,7 @@
"classification_speed": "Швидкість класифікації {{name}}",
"classification_events_per_second": "{{name}} Подій класифікації за секунду"
},
- "title": "Збагаченням",
+ "title": "Збагачення",
"infPerSecond": "Висновки за секунду",
"averageInf": "Середній час висновування"
},
diff --git a/web/public/locales/uz/audio.json b/web/public/locales/uz/audio.json
index ddd93cd741..436bf9121a 100644
--- a/web/public/locales/uz/audio.json
+++ b/web/public/locales/uz/audio.json
@@ -1,3 +1,4 @@
{
- "speech": "So'zlashuv"
+ "speech": "Nutq",
+ "laughter": "Kulgi"
}
diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json
index 1fa683f441..148d837897 100644
--- a/web/public/locales/zh-CN/common.json
+++ b/web/public/locales/zh-CN/common.json
@@ -319,5 +319,8 @@
"internalID": "Frigate 在配置与数据库中使用的内部 ID"
},
"no_items": "没有项目",
- "validation_errors": "验证错误"
+ "validation_errors": "验证错误",
+ "credentialField": {
+ "savedPlaceholder": "已保存 — 留空则保留当前设置"
+ }
}
diff --git a/web/public/locales/zh-CN/components/player.json b/web/public/locales/zh-CN/components/player.json
index 6cee6952be..70956ccb35 100644
--- a/web/public/locales/zh-CN/components/player.json
+++ b/web/public/locales/zh-CN/components/player.json
@@ -48,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "提交帧到 Frigate+ 失败"
}
- }
+ },
+ "cameraOff": "摄像头已关闭"
}
diff --git a/web/public/locales/zh-CN/config/global.json b/web/public/locales/zh-CN/config/global.json
index ddfeb01be1..e01583b561 100644
--- a/web/public/locales/zh-CN/config/global.json
+++ b/web/public/locales/zh-CN/config/global.json
@@ -1656,6 +1656,41 @@
"label": "原配置生成式 AI 状态",
"description": "表示在原始静态配置中是否已启用生成式 AI。"
}
+ },
+ "filters_attribute": {
+ "label": "属性筛选",
+ "description": "对检测到的属性进行筛选,以此减少误报(包含面积、比例、置信度)。",
+ "min_area": {
+ "label": "最小属性区域",
+ "description": "该属性所需的最小边框框面积,支持像素值(整数)或百分比数值(范围 0.000001 至 0.99)。"
+ },
+ "max_area": {
+ "label": "最大属性区域",
+ "description": "该属性所需的最大边框框面积,支持像素值(整数)或百分比数值(范围 0.000001 至 0.99)。"
+ },
+ "min_ratio": {
+ "label": "最小纵横比",
+ "description": "边界框所需的最小宽高比。"
+ },
+ "max_ratio": {
+ "label": "最大纵横比",
+ "description": "边界框允许的最大宽高比。"
+ },
+ "threshold": {
+ "label": "置信度阈值",
+ "description": "判定该属性为有效目标所需的平均检测置信度阈值。"
+ },
+ "min_score": {
+ "label": "最小置信度",
+ "description": "将该属性关联至所属父目标所需的单帧最低检测置信度。"
+ },
+ "mask": {
+ "label": "过滤器遮罩",
+ "description": "定义此过滤器在帧内应用位置的多边形坐标。"
+ },
+ "raw_mask": {
+ "label": "原始遮罩"
+ }
}
},
"record": {
diff --git a/web/public/locales/zh-CN/config/validation.json b/web/public/locales/zh-CN/config/validation.json
index a926f2cce8..ba275a8cd9 100644
--- a/web/public/locales/zh-CN/config/validation.json
+++ b/web/public/locales/zh-CN/config/validation.json
@@ -28,5 +28,8 @@
"header_map": {
"roleHeaderRequired": "配置权限组映射时需要的 role 请求头。"
}
+ },
+ "detect": {
+ "dimensionMustBeEven": "必须是偶数。"
}
}
diff --git a/web/public/locales/zh-CN/views/chat.json b/web/public/locales/zh-CN/views/chat.json
index 429dd56677..dee13463e5 100644
--- a/web/public/locales/zh-CN/views/chat.json
+++ b/web/public/locales/zh-CN/views/chat.json
@@ -49,7 +49,7 @@
"show_stats": {
"title": "显示统计数据",
"desc": "显示对话回复的生成速率和上下文大小。",
- "while_generating": "正在生成中",
+ "while_generating": "生成过程中",
"always": "始终"
},
"auto_scroll": {
@@ -60,5 +60,13 @@
"stats": {
"context": "{{tokens}} 词元(tokens)",
"tokens_per_second": "{{rate}} 词元/秒"
+ },
+ "reasoning": {
+ "active": "思考中…",
+ "show": "显示推理过程",
+ "hide": "隐藏推理过程"
+ },
+ "thinking": {
+ "toggle": "切换思考"
}
}
diff --git a/web/public/locales/zh-CN/views/live.json b/web/public/locales/zh-CN/views/live.json
index 53688c6dfa..de900ba8bd 100644
--- a/web/public/locales/zh-CN/views/live.json
+++ b/web/public/locales/zh-CN/views/live.json
@@ -58,7 +58,9 @@
},
"camera": {
"enable": "开启摄像头",
- "disable": "关闭摄像头"
+ "disable": "关闭摄像头",
+ "turnOn": "开启摄像头",
+ "turnOff": "关闭摄像头"
},
"muteCameras": {
"enable": "屏蔽所有摄像头",
@@ -151,7 +153,8 @@
"snapshots": "快照",
"audioDetection": "音频检测",
"autotracking": "自动追踪",
- "transcription": "音频转录"
+ "transcription": "音频转录",
+ "camera": "摄像头"
},
"history": {
"label": "显示历史录像"
diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json
index 0a181dee18..58a290282c 100644
--- a/web/public/locales/zh-CN/views/settings.json
+++ b/web/public/locales/zh-CN/views/settings.json
@@ -32,7 +32,7 @@
"enrichments": "增强功能",
"triggers": "触发器",
"roles": "权限组",
- "cameraManagement": "管理",
+ "cameraManagement": "摄像头管理",
"cameraReview": "核查",
"globalDetect": "目标检测",
"general": "常规",
@@ -1361,13 +1361,13 @@
"selectCamera": "选择摄像头",
"backToSettings": "返回摄像头设置",
"streams": {
- "title": "开启或关闭摄像头",
+ "title": "摄像头状态和详细信息",
"desc": "将临时禁用摄像头,直到 Frigate 重启。禁用摄像头将完全停止 Frigate 对该摄像头视频流的处理,届时检测、录制及调试功能均不可用。