diff --git a/web/public/locales/ar/audio.json b/web/public/locales/ar/audio.json
index b72a52c904..19bbfddeac 100644
--- a/web/public/locales/ar/audio.json
+++ b/web/public/locales/ar/audio.json
@@ -23,7 +23,7 @@
"singing": "غناء",
"choir": "فرقة غناء",
"chant": "تَرْنِيم",
- "mantra": "تَرْنِيمَة",
+ "mantra": "تعويذة",
"child_singing": "غِنَاء طِفْل",
"synthetic_singing": "غِنَاء اِصْطِنَاعِيّ",
"rapping": "رَاب",
@@ -50,7 +50,7 @@
"hands": "أَيْدِي",
"finger_snapping": "طَقْطَقَة الأَصَابِع",
"clapping": "تَصْفِيق",
- "heart_murmur": "لَغَط القَلْب",
+ "heart_murmur": "نفخة القَلْب",
"cheering": "صِيَاح",
"applause": "تَصْفِيق",
"chatter": "حَدِيث",
@@ -74,5 +74,80 @@
"bus": "حافلة",
"train": "قطار",
"boat": "زورق",
- "bird": "طائر"
+ "bird": "طائر",
+ "sine_wave": "موجة الإشارة",
+ "harmonic": "أوزة",
+ "caw": "نُعَاقُ الغراب",
+ "owl": "بومة",
+ "hoot": "صاح",
+ "flapping_wings": "أجنحة ترفرف",
+ "dogs": "كلاب",
+ "rats": "فئران",
+ "mouse": "فأر",
+ "patter": "طقطق",
+ "insect": "حشرة",
+ "cricket": "كريكيت",
+ "mosquito": "بعوضة",
+ "fly": "سافر",
+ "buzz": "طنين",
+ "frog": "ضفدع",
+ "croak": "نق الضفدع",
+ "snake": "ثعبان",
+ "rattle": "جلجلية",
+ "whale_vocalization": "أصوات الحيتان",
+ "music": "موسيقى",
+ "musical_instrument": "آلة موسيقية",
+ "plucked_string_instrument": "آلة وترية",
+ "guitar": "غيتار",
+ "electric_guitar": "غيتار كهربائي",
+ "bass_guitar": "غيتار البيس",
+ "acoustic_guitar": "غيتار صوتي",
+ "steel_guitar": "غيتار فولاذي",
+ "tapping": "نقر",
+ "strum": "داعب الأ وتار",
+ "banjo": "البانجو",
+ "sitar": "سيتار",
+ "mandolin": "الماندولين",
+ "zither": "زيثارة",
+ "ukulele": "أوكوليلي",
+ "keyboard": "لوحة المفاتيح",
+ "piano": "بيانو",
+ "electric_piano": "بيانو كهربائي",
+ "organ": "أرغن",
+ "electronic_organ": "الأورغن الإلكتروني",
+ "hammond_organ": "أورغن هاموند",
+ "synthesizer": "مُركِّب صوتي",
+ "sampler": "عينة",
+ "harpsichord": "بيان القيثاري",
+ "percussion": "آلات الإيقاع",
+ "drum_kit": "طقم طبول",
+ "drum_machine": "آلة الطبول",
+ "drum": "طبل",
+ "snare_drum": "طبلة جانبية",
+ "rimshot": "طقطة",
+ "drum_roll": "قرع الطبول",
+ "bass_drum": "طبلة الباس",
+ "timpani": "الطبول",
+ "tabla": "طبلة",
+ "cymbal": "الصنج",
+ "hi_hat": "هاي-هات",
+ "wood_block": "كتلة خشبية",
+ "tambourine": "دف",
+ "maraca": "ماراكا",
+ "gong": "غونغ",
+ "tubular_bells": "أجراس أنبوبية",
+ "cattle": "ماشية",
+ "moo": "خوار",
+ "cowbell": "جرس البقر",
+ "pig": "خنزير",
+ "oink": "أوينك",
+ "goat": "معزة",
+ "bleat": "ثغاء",
+ "sheep": "غنم",
+ "fowl": "الدواجن",
+ "chicken": "دجاجة",
+ "cluck": "قرقرة",
+ "cock_a_doodle_doo": "كوكو-كو-كوووووو",
+ "turkey": "ديك رومى",
+ "gobble": "كركرة"
}
diff --git a/web/public/locales/ar/objects.json b/web/public/locales/ar/objects.json
index 4aff9d76e1..03bf58ab19 100644
--- a/web/public/locales/ar/objects.json
+++ b/web/public/locales/ar/objects.json
@@ -18,5 +18,9 @@
"train": "قطار",
"boat": "زورق",
"bench": "مقعدة",
- "bird": "طائر"
+ "bird": "طائر",
+ "mouse": "فأر",
+ "keyboard": "لوحة المفاتيح",
+ "goat": "معزة",
+ "sheep": "غنم"
}
diff --git a/web/public/locales/bg/audio.json b/web/public/locales/bg/audio.json
index fcc7a3902c..8eab73ef19 100644
--- a/web/public/locales/bg/audio.json
+++ b/web/public/locales/bg/audio.json
@@ -265,5 +265,98 @@
"stomach_rumble": "Къркорене на стомах",
"heartbeat": "Сърцебиене",
"scream": "Вик",
- "snicker": "Хихикане"
+ "snicker": "Хихикане",
+ "chant": "Скандиране",
+ "synthetic_singing": "Синтетично Пеене",
+ "grunt": "Грухтене",
+ "wheeze": "Хриптене",
+ "gasp": "Издихание",
+ "snort": "Смъркане",
+ "heart_murmur": "Сърдечен Шум",
+ "cheering": "Радостни Викове",
+ "yip": "Джавкане",
+ "howl": "Вой",
+ "bow_wow": "Кучешки Вой",
+ "growling": "Ръмжене",
+ "whimper_dog": "Кучешко Скимтене",
+ "caterwaul": "Мяукане",
+ "clip_clop": "Копита",
+ "cattle": "Добитък",
+ "bleat": "Блеене",
+ "fowl": "Домашни Птици",
+ "honk": "Бибиткане",
+ "chirp": "Пиукане",
+ "squawk": "Кряскане/Грачене",
+ "patter": "Ромолене/Потупване",
+ "rattle": "Тракане",
+ "tapping": "Потупване",
+ "strum": "Звук от струни",
+ "zither": "Цитра",
+ "harpsichord": "Клавесин",
+ "snare_drum": "Малко барабанче",
+ "rimshot": "Римшот",
+ "bass_drum": "Голям барабан",
+ "hi_hat": "Фус",
+ "wood_block": "Парче дърво",
+ "electronic_dance_music": "Електронна денс музика",
+ "music_of_bollywood": "Музика от Боливут",
+ "traditional_music": "Традиционна Музика",
+ "soundtrack_music": "Саундтрак музика",
+ "lullaby": "Приспивна песен",
+ "video_game_music": "Музика от компютърна игра",
+ "christmas_music": "Коледна музика",
+ "dance_music": "Денс музика",
+ "wedding_music": "Сватбена музика",
+ "happy_music": "Радостна музика",
+ "sad_music": "Тъжна музика",
+ "tender_music": "Нежна музика",
+ "exciting_music": "Вълнуваща музика",
+ "angry_music": "Яростна музика",
+ "scary_music": "Страшна музика",
+ "wind": "Вятър",
+ "rustling_leaves": "Шумолящи листа",
+ "wind_noise": "Шум от вятър",
+ "rain_on_surface": "Дъжд на повърхност",
+ "crackle": "Пукане",
+ "emergency_vehicle": "Кола на спешна помощ",
+ "engine_knocking": "Чукане от двигател",
+ "cupboard_open_or_close": "Отваряне или затваряне на шкаф",
+ "sink": "Мивка",
+ "bathtub": "Вана",
+ "hair_dryer": "Сешоар",
+ "toilet_flush": "Пускане на вода в тоалетна",
+ "toothbrush": "Четка за зъби",
+ "electric_toothbrush": "Електрическа четка за зъби",
+ "vacuum_cleaner": "Прахосмукачка",
+ "zipper": "Цип",
+ "keys_jangling": "Дрънкане на ключове",
+ "coin": "Монета",
+ "scissors": "Ножица",
+ "electric_shaver": "Електрическа самобръсначка",
+ "shuffling_cards": "Разбъркване на карти",
+ "typing": "Пишене",
+ "typewriter": "Пишеща машина",
+ "computer_keyboard": "Клавиатура",
+ "writing": "Писане на ръка",
+ "alarm": "Аларма",
+ "telephone": "Телефон",
+ "telephone_bell_ringing": "Камбанен звук от телефон",
+ "ringtone": "Мелодия за звънене",
+ "telephone_dialing": "Набиране на телефон",
+ "dial_tone": "Набиране на цифра на телефон",
+ "busy_signal": "Сигнал заето",
+ "alarm_clock": "Алармен часовник",
+ "siren": "Сирена",
+ "civil_defense_siren": "Сирена на гражданска защита",
+ "buzzer": "Бъзър",
+ "smoke_detector": "Детектор за пушек",
+ "fire_alarm": "Пожарна аларма",
+ "whistle": "Свиркане",
+ "steam_whistle": "Парна свирка",
+ "mechanisms": "Механизми",
+ "clock": "Часовник",
+ "tick": "",
+ "tick-tock": "Тиктакане",
+ "gears": "Зъбни колела",
+ "sewing_machine": "Шиеща машина"
}
diff --git a/web/public/locales/bg/objects.json b/web/public/locales/bg/objects.json
index a12c53c3ae..c89c359fb3 100644
--- a/web/public/locales/bg/objects.json
+++ b/web/public/locales/bg/objects.json
@@ -19,5 +19,10 @@
"skateboard": "Скейтборд",
"door": "Врата",
"blender": "Блендер",
- "person": "Човек"
+ "person": "Човек",
+ "sink": "Мивка",
+ "hair_dryer": "Сешоар",
+ "toothbrush": "Четка за зъби",
+ "scissors": "Ножица",
+ "clock": "Часовник"
}
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/camera.json b/web/public/locales/ca/components/camera.json
index e2309db0a5..b95cd133c4 100644
--- a/web/public/locales/ca/components/camera.json
+++ b/web/public/locales/ca/components/camera.json
@@ -68,7 +68,10 @@
},
"success": "El grup de càmeres ({{name}}) ha estat guardat.",
"icon": "Icona",
- "label": "Grups de Càmeres"
+ "label": "Grups de Càmeres",
+ "showAll": "Mostra tots els grups de càmeres",
+ "showLess": "Mostra menys",
+ "editGroups": "Edita els grups de la càmera"
},
"debug": {
"options": {
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/cameras.json b/web/public/locales/ca/config/cameras.json
index 26016deee0..aa3fb9a778 100644
--- a/web/public/locales/ca/config/cameras.json
+++ b/web/public/locales/ca/config/cameras.json
@@ -686,7 +686,7 @@
},
"timestamp_style": {
"label": "Estil de la marca horària",
- "description": "Opcions d'estilització per a marques de temps d'alimentació aplicades a enregistraments i instantànies.",
+ "description": "Opcions d'estilització per a marques de temps aplicades instantànies i la vista de depuració.",
"position": {
"label": "Posició de la marca horària",
"description": "Posició de la marca horària a la imatge (tl/tr/bl/br)."
@@ -866,6 +866,10 @@
"dashboard": {
"label": "Mostra a l'interfície d'usuari",
"description": "Estableix si aquesta càmera és visible a tot arreu a la interfície d'usuari de la Frigate. Desactivar això requerirà editar manualment la configuració per tornar a veure aquesta càmera a la interfície d'usuari."
+ },
+ "review": {
+ "label": "Mostra en la revisió",
+ "description": "Alterna si aquesta càmera és visible a la revisió (la pàgina de revisió i el seu filtre de càmera, la revisió de moviment i la vista de l'historial)."
}
},
"webui_url": {
diff --git a/web/public/locales/ca/config/global.json b/web/public/locales/ca/config/global.json
index f748860668..2d8c1bff6b 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",
@@ -984,7 +984,7 @@
},
"default_role": {
"label": "Rol predeterminat",
- "description": "Rol predeterminat assignat als usuaris intermediaris autenticats quan no s'aplica cap mapatge de rols (administrador o visor)."
+ "description": "Rol predeterminat assignat als usuaris intermediaris autenticats quan no s'aplica cap mapatge de rols."
},
"separator": {
"label": "Caràcter separador",
@@ -2337,6 +2337,10 @@
"dashboard": {
"label": "Mostra a la interfície",
"description": "Estableix si aquesta càmera és visible a tot arreu a la interfície d'usuari de Frigate. Desactivar això requerirà editar manualment la configuració per tornar a veure aquesta càmera a la interfície d'usuari."
+ },
+ "review": {
+ "label": "Mostra en la revisió",
+ "description": "Alterna si aquesta càmera és visible a la revisió (la pàgina de revisió i el seu filtre de càmera, la revisió de moviment i la vista de l'historial)."
}
},
"profiles": {
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/motionSearch.json b/web/public/locales/ca/views/motionSearch.json
index cf41e934d1..585f6cbb69 100644
--- a/web/public/locales/ca/views/motionSearch.json
+++ b/web/public/locales/ca/views/motionSearch.json
@@ -26,7 +26,9 @@
"points_many": "{{count}} punts",
"points_other": "{{count}} punts",
"undo": "Desfés l'últim punt",
- "reset": "Restableix el polígon"
+ "reset": "Restableix el polígon",
+ "drawMode": "Dibuxa",
+ "moveMode": "Moure"
},
"motionHeatmapLabel": "Mapa de calor del moviment",
"dialog": {
@@ -42,11 +44,11 @@
"settings": {
"title": "Configuració de la cerca",
"parallelMode": "Mode paral·lel",
- "parallelModeDesc": "Escaneja múltiples segments d'enregistrament al mateix temps (més ràpid, però significativament més intensiu en CPU)",
+ "parallelModeDesc": "Escaneja múltiples intervals d'enregistrament al mateix temps (més ràpid; utilitza més recursos de descodificació)",
"threshold": "Llindar de la sensibilitat",
"thresholdDesc": "Els valors més baixos detecten canvis més petits (1-255)",
"minArea": "Àrea de canvi mínim",
- "minAreaDesc": "Percentatge mínim de la regió d'interès que s'ha de canviar per considerar-se significatiu",
+ "minAreaDesc": "Mida mínima d'una sola regió en moviment, com a percentatge de la regió d'interès",
"frameSkip": "Omet el fotograma",
"frameSkipDesc": "Processa cada N fotograma. Establiu això a la velocitat de fotogrames de la càmera per processar un fotograma per segon (p. ex. 5 per a una càmera de 5 FPS, 30 per a una càmera de 30 FPS). Els valors més alts seran més ràpids, però poden perdre els esdeveniments de curt moviment.",
"maxResults": "Resultats màxims",
@@ -72,6 +74,9 @@
"framesDecoded": "Fotogrames descodificats",
"wallTime": "Temps de cerca",
"segmentErrors": "Errors del segment",
- "seconds": "{{seconds}}s"
- }
+ "seconds": "{{seconds}}s",
+ "scanSummary": "{{segments}} segments · {{time}}",
+ "minutesSeconds": "{{minutes}}m {{seconds}}s"
+ },
+ "scanning": "S'està analitzant {{time}}"
}
diff --git a/web/public/locales/ca/views/replay.json b/web/public/locales/ca/views/replay.json
index 36eccd8a6c..8dc6730cc3 100644
--- a/web/public/locales/ca/views/replay.json
+++ b/web/public/locales/ca/views/replay.json
@@ -55,5 +55,5 @@
"goToReplay": "Ves a la repetició"
}
},
- "description": "Reprodueix els enregistraments de la càmera per a la depuració. La llista d'objectes mostra un resum retardat en el temps dels objectes detectats i la pestanya Missatges mostra un flux de missatges interns de la fragata a partir del metratge de reproducció."
+ "description": "Reprodueix els enregistraments de la càmera per a la depuració. La llista d'objectes mostra un resum retardat en el temps dels objectes detectats i la pestanya Missatges mostra un flux de missatges interns de frigate a partir del metratge de reproducció."
}
diff --git a/web/public/locales/ca/views/settings.json b/web/public/locales/ca/views/settings.json
index ebd2278fd0..5ff0242d9a 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."
@@ -426,7 +426,8 @@
"notificationUnavailable": {
"title": "Notificacions no disponibles",
"documentation": "Llegir la documentació",
- "desc": "Les notificacions push web requereixen un context segur (https://…). Aquesta és una limitació del navegador. Accedeix a Frigate de manera segura per utilitzar les notificacions."
+ "desc": "Les notificacions push web requereixen un context segur (https://…). Aquesta és una limitació del navegador. Accedeix a Frigate de manera segura per utilitzar les notificacions.",
+ "descPwa": "A iOS, les notificacions push web només estàn disponibles quan Frigate està instalat a la pantalla principal. Obre el menú Compartir , selecciona Afegir a la pantalla, i obre Frigate des del nou icona per registrar les notificacions en aquest dispositiu."
},
"unsavedChanges": "Canvis de notificació no desats",
"globalSettings": {
@@ -773,22 +774,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}}"
},
@@ -1059,7 +1060,7 @@
"brands": {
"reolink-rtsp": "No es recomana Reolink RST. Es recomana habilitar HTTP a la configuració de la càmera i reiniciar l'assistent de la càmera."
},
- "customUrlRtspRequired": "Els URL personalitzats han de començar amb \"rtsp://\". Es requereix configuració manual per a fluxos de càmera no RTSP."
+ "customUrlRtspRequired": "Els URL personalitzats han de començar amb \"rtsp://\" o \"rtsps://\". Es requereix configuració manual per a fluxos de càmera no RTSP."
},
"selectBrand": "Seleccioneu la marca de la càmera per a la plantilla d'URL",
"customUrl": "URL de flux personalitzat",
@@ -1303,13 +1304,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 Frigate a aplicar.",
"friendlyName": {
"edit": "Edita el nom de la pantalla de la càmera",
"title": "Edita el nom de la pantalla",
@@ -1318,7 +1319,30 @@
},
"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": "Actualitza el nom de visualització, l'URL extern i la visibilitat utilitzada per a aquesta càmera a tota la interfície d'usuari de la Fragata.",
+ "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).",
+ "dashboardLabel": "Mostra al tauler en directe",
+ "dashboardHelp": "Mostra aquesta càmera al Tauler en viu.",
+ "reviewLabel": "Mostra a la ressenya",
+ "reviewHelp": "Mostra aquesta càmera a Revisió, incloent el filtre de càmera, la revisió de moviment i la vista de l'historial."
+ },
+ "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 Frigate.
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,20 +1388,110 @@
"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",
"label": "Tipus de càmera",
"description": "Estableix el tipus per a cada càmera. Les càmeres LPR dedicades són càmeres d'un sol ús amb un potent zoom òptic per capturar matrícules en vehicles distants. La majoria de les càmeres haurien d'utilitzar el tipus de càmera normal llevat que la càmera sigui específicament per a LPR i tingui una vista molt centrada en les matrícules.",
"dedicatedLpr": "LPR dedicat",
- "saveSuccess": "Tipus de càmera actualitzat per {{cameraName}}. Reinicia la fragata per aplicar els canvis.",
+ "saveSuccess": "Tipus de càmera actualitzat per {{cameraName}}. Reinicia Frigate 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.",
+ "clone": {
+ "sectionTitle": "Clona la configuració",
+ "sectionDescription": "Copia la configuració d'una càmera a una altra càmera o una de nova.",
+ "button": "Clona la configuració",
+ "title": "Clona la configuració de la càmera",
+ "description": "Copia la configuració d'una càmera a una o més càmeres o a una càmera nova. La identitat (nom, nom amigable, URL de la interfície d'usuari web, ordre de visualització) no es copia mai.",
+ "source": {
+ "label": "Càmera d'origen",
+ "placeholder": "Seleccioneu una càmera d'origen",
+ "required": "Seleccioneu una càmera d'origen"
+ },
+ "target": {
+ "legend": "Objectiu",
+ "newRadio": "Càmara nova",
+ "newNameLabel": "Nom de la càmera",
+ "newNamePlaceholder": "p. ex., porta enrere orporta o porta posterior",
+ "newNameInvalid": "Es requereix el nom de la càmera",
+ "newNameCollision": "Ja existeix una càmera amb aquest nom",
+ "newStreamsForced": "Els fluxos sempre es copien per a una càmera nova.",
+ "existingCamerasRadio": "Càmeres existents",
+ "allCameras": "Totes les càmeres",
+ "existingPlaceholder": "Selecciona almenys una càmera",
+ "existingDisabled": "No hi ha cap altra càmera a la qual copiar",
+ "newNameRequired": "Es requereix el nom de la càmera"
+ },
+ "categories": {
+ "legend": "Configuració per clonar",
+ "description": "Trieu quina configuració voleu copiar de la càmera d'origen.",
+ "selectAll": "Selecciona-ho tot",
+ "selectNone": "No en seleccioneu cap",
+ "resetDefaults": "Restableix als valors predeterminats",
+ "general": "General",
+ "spatial": "Paràmetres espacials",
+ "streams": "Fluxos",
+ "spatialWarningTitle": "La resolució no coincideix",
+ "spatialWarning": "La càmera d'origen {{srcCamera}} detecta la resolució ({{srcWidth}}.{{srcHeight}}) difereix de: {{cameras}}. És possible que els polígons no s'alineïn en aquestes càmeres. Aquests valors predeterminats estan desactivats; habiliteu-ho per a copiar tal qual.",
+ "restartHint": "Reinicia requerit",
+ "items": {
+ "record": "Enregistrament",
+ "snapshots": "Instantànies",
+ "review": "Revisió",
+ "motion": "Detecció de moviment",
+ "objects": "Objectes",
+ "audio": "Detecció d'àudio",
+ "audio_transcription": "Transcripció d'àudio",
+ "notifications": "Notificacions",
+ "birdseye": "Birdseye",
+ "timestamp_style": "Estil de la marca horària",
+ "lpr": "Reconeixement de la matrícula",
+ "face_recognition": "Reconeixement de cares",
+ "semantic_search": "Cerca semàntica",
+ "genai": "IA generativa",
+ "type": "Tipus de càmera (LPR normal / dedicat)",
+ "profiles": "Perfils",
+ "detect": "Detecta les dimensions",
+ "zones": "Zones",
+ "motion_mask": "Màscares de moviment",
+ "object_masks": "Màscares d'objecte",
+ "ffmpeg_live": "URL i rols de flux",
+ "mqtt": "MQTT",
+ "onvif": "ONVIF"
+ }
+ },
+ "footer": {
+ "changeCount_one": "{{count}} s'aplicarà el canvi",
+ "changeCount_many": "{{count}} canvis s'aplicaran",
+ "changeCount_other": "{{count}} canvis s'aplicaran",
+ "restartNeeded": "Es requerirà reiniciar per a alguns canvis.",
+ "liveOnly": "Tots els canvis s'aplicaran en viu sense reiniciar.",
+ "submit": "Clona",
+ "submitting": "S'està clonant…"
+ },
+ "toast": {
+ "success": "Configuració copiada a {{cameraName}}",
+ "successWithRestart": "Configuració copiada a {{cameraName}}. Reinicia Frigate per aplicar tots els canvis.",
+ "successMulti_one": "Configuració copiada a la càmera {{count}}",
+ "successMulti_many": "Configuració copiada a {{count}} càmeres",
+ "successMulti_other": "Configuració copiada a {{count}} càmeres",
+ "successMultiWithRestart_one": "Configuració copiada a la càmera {{count}}. Reinicia Frigate per aplicar tots els canvis.",
+ "successMultiWithRestart_many": "Configuració copiada a {{count}} càmeres. Reinicia Frigate per aplicar tots els canvis.",
+ "successMultiWithRestart_other": "Configuració copiada a {{count}} càmeres. Reinicia la fragata per aplicar tots els canvis.",
+ "partialFailure": "{{successCount}} seccions aplicades; «{{failedSection}}» ha fallat: {{errorMessage}}",
+ "partialFailureMulti": "S'ha copiat a {{successCount}} càmera(es); ha fallat {{failed}}: {{errorMessage}}",
+ "newCameraPartialFailure": "S'ha creat la càmera {{cameraName}} però no s'han pogut copiar alguns paràmetres: {{errorMessage}}",
+ "sourceMissing": "La càmera d'origen ja no existeix",
+ "submitError": "No s'ha pogut clonar la càmera: {{errorMessage}}"
+ }
+ }
},
"cameraReview": {
"object_descriptions": {
@@ -1499,7 +1613,7 @@
"desc": "La quadrícula de regions és una optimització que aprèn on solen aparèixer objectes de diferents mides en el camp de visió de cada càmera. Frigate utilitza aquestes dades per detectar regions de mida eficient. La quadrícula es construeix automàticament amb el temps a partir de dades d'objectes rastrejats.",
"clear": "Neteja la quadrícula de la regió",
"clearConfirmTitle": "Neteja la quadrícula de la regió",
- "clearConfirmDesc": "No es recomana netejar la quadrícula de la regió tret que hagi canviat recentment la mida del model del detector o hagi canviat la posició física de la càmera i tingui problemes de seguiment d'objectes. La quadrícula es reconstruirà automàticament amb el temps a mesura que els objectes siguin rastrejats. Es requereix un reinici de la fragata perquè els canvis tinguin efecte.",
+ "clearConfirmDesc": "No es recomana netejar la quadrícula de la regió tret que hagi canviat recentment la mida del model del detector o hagi canviat la posició física de la càmera i tingui problemes de seguiment d'objectes. La quadrícula es reconstruirà automàticament amb el temps a mesura que els objectes siguin rastrejats. Es requereix un reinici de Frigate perquè els canvis tinguin efecte.",
"clearSuccess": "La quadrícula de la regió s'ha netejat correctament",
"clearError": "Ha fallat en netejar la graella de la regió",
"restartRequired": "Cal reiniciar per a que els canvis de la quadrícula de la regió tinguin efecte"
@@ -1674,7 +1788,7 @@
"searchPlaceholder": "Cerca...",
"genaiRoles": {
"options": {
- "embeddings": "Incrustació",
+ "embeddings": "Vectors",
"vision": "Visió",
"tools": "Eines",
"descriptions": "Descripcions",
@@ -1693,13 +1807,43 @@
},
"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"
+ },
+ "liveStreams": {
+ "streamNameLabel": "Nom del flux",
+ "streamNamePlaceholder": "p. ex., corrent HD principal",
+ "go2rtcStreamLabel": "flux go2rtc",
+ "go2rtcStreamPlaceholder": "Selecciona un flux go2rtc",
+ "go2rtcStreamSearch": "Cerca o introdueix un nom de flux…",
+ "noGo2rtcStreams": "No s'ha configurat cap flux go2rtc",
+ "availableStreams": "Fluxos disponibles",
+ "useCustom": "Utilitza \"{{value}}\"",
+ "addStream": "Afegeix un flux"
+ },
+ "ptzPresets": {
+ "placeholder": "Selecciona o entra una configuració...",
+ "search": "Busca o entra una configuració...",
+ "noPresets": "No hi ha configuracions disponibles",
+ "available": "Parámetres de Cámera",
+ "useCustom": "Usa \"{{value}}\""
+ },
+ "defaultRole": {
+ "admin": "Administrar",
+ "viewer": "Visor"
}
},
"globalConfig": {
@@ -1736,9 +1880,9 @@
"saveAllPartial_other": "{{successCount}} de {{totalCount}} seccions desades. {{failCount}} ha fallat.",
"saveAllFailure": "Ha fallat en desar totes les seccions.",
"applied": "La configuració s'ha aplicat correctament",
- "saveAllSuccessRestartRequired_one": "S'ha desat la secció {{count}} correctament. Reinicia la fragata per aplicar els canvis.",
- "saveAllSuccessRestartRequired_many": "Totes les {{count}} seccions s'han desat correctament. Reinicia la fragata per aplicar els canvis.",
- "saveAllSuccessRestartRequired_other": "Totes les {{count}} seccions s'han desat correctament. Reinicia la fragata per aplicar els canvis."
+ "saveAllSuccessRestartRequired_one": "S'ha desat la secció {{count}} correctament. Reinicia Frigate per aplicar els canvis.",
+ "saveAllSuccessRestartRequired_many": "Totes les {{count}} seccions s'han desat correctament. Reinicia Frigate per aplicar els canvis.",
+ "saveAllSuccessRestartRequired_other": "Totes les {{count}} seccions s'han desat correctament. Reinicia Frigate per aplicar els canvis."
},
"unsavedChanges": "Teniu canvis sense desar",
"confirmReset": "Confirma el restabliment",
@@ -1865,7 +2009,8 @@
"hardwareDxva2": "DXVA2",
"hardwareVideotoolbox": "VideoToolbox"
},
- "streamNumber": "Flux {{index}}"
+ "streamNumber": "Flux {{index}}",
+ "sourceNumber": "Font {{index}}"
},
"timestampPosition": {
"tl": "A dalt a l'esquerra",
@@ -1889,7 +2034,7 @@
"recordDisabled": "L'enregistrament està desactivat, els elements de revisió no es generaran.",
"detectDisabled": "La detecció d'objectes està desactivada. Els elements de revisió requereixen objectes detectats per categoritzar alertes i deteccions.",
"allNonAlertDetections": "Totes les activitats no alertes s'inclouran com a deteccions.",
- "genaiImageSourceRecordingsRecordDisabled": "La font d'imatges està configurada com a 'enregistraments', però l'enregistrament està desactivat. La fragata tornarà a la vista prèvia de les imatges."
+ "genaiImageSourceRecordingsRecordDisabled": "La font d'imatges està configurada com a 'enregistraments', però l'enregistrament està desactivat. Frigate tornarà a la vista prèvia de les imatges."
},
"audio": {
"noAudioRole": "Cap flux té definit el rol d'àudio. Heu d'habilitar el rol d'àudio per a la detecció d'àudio perquè funcioni."
@@ -1899,7 +2044,13 @@
},
"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.",
+ "maxFramesSet": "La configuració dels fotogrames màxims anul·la el comportament predeterminat i desactiva el seguiment d'objectes estacionaris. Hi ha molt poques situacions en què això sigui necessari, utilitzeu-lo amb precaució.",
+ "squareResolution": "Una resolució de detecció quadrada és inusual. L'amplada i l'alçada de la detecció han de coincidir amb la relació d'aspecte de la càmera (per exemple, 16:9), no amb les dimensions del model de detecció d'objectes. Una relació d'aspecte no coincident pot estirar la imatge i reduir la precisió de detecció.",
+ "resolutionHigh": "Aquesta resolució de detecció és més alta del recomanat i pot causar un ús més elevat dels recursos sense millorar la precisió de detecció. Es recomana una resolució de detecció a o per sota de 1080p per a la majoria de les càmeres.",
+ "globalResolutionMultipleCameras": "S'estableix una resolució de detecció global mentre es configuren diverses càmeres. Tret que totes les càmeres comparteixin la mateixa resolució i relació d'aspecte, l'amplada i l'alçada de la detecció s'haurien de definir per càmera perquè coincideixi amb la relació d'aspecte nativa de cada càmera."
},
"faceRecognition": {
"globalDisabled": "L'enriquiment del reconeixement facial s'ha d'habilitar perquè les funcions de reconeixement facial funcionin en aquesta càmera.",
@@ -1928,7 +2079,11 @@
"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."
+ },
+ "onvif": {
+ "autotrackingNoZones": "Autotraquejar requereix al menys una zona. Defineix una zona per aquesta cámera a Mascares/Zones, després usa'l com a requerit a la part inferior."
}
},
"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/cs/views/explore.json b/web/public/locales/cs/views/explore.json
index e789b0f1dd..2e2532ffc9 100644
--- a/web/public/locales/cs/views/explore.json
+++ b/web/public/locales/cs/views/explore.json
@@ -116,7 +116,9 @@
"error": "Sledovaný objekt se nepodařilo smazat: {{errorMessage}}",
"success": "Sledovaný objekt úspěšně smazán."
}
- }
+ },
+ "previousTrackedObject": "Předchozí sledovaný objekt",
+ "nextTrackedObject": "Následující sledovaný objekt"
},
"objectLifecycle": {
"count": "{{first}} z {{second}}",
@@ -202,6 +204,12 @@
"audioTranscription": {
"label": "Přepsat",
"aria": "Požádat o přepis zvukového záznamu"
+ },
+ "showObjectDetails": {
+ "label": "Zobrazit trasu objektu"
+ },
+ "hideObjectDetails": {
+ "label": "Skrýt trasu objektu"
}
},
"dialog": {
diff --git a/web/public/locales/de/common.json b/web/public/locales/de/common.json
index c1ed6020b8..00d9b8b60b 100644
--- a/web/public/locales/de/common.json
+++ b/web/public/locales/de/common.json
@@ -193,7 +193,8 @@
"gl": "Galego (Galicisch)",
"id": "Bahasa Indonesia (Indonesisch)",
"hr": "Hrvatski (Kroatisch)",
- "bs": "Bosnisch"
+ "bs": "Bosnisch",
+ "zhHant": "Traditional Chinese"
},
"appearance": "Erscheinung",
"theme": {
@@ -326,5 +327,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/components/player.json b/web/public/locales/de/components/player.json
index ad56cf2ce4..6294301446 100644
--- a/web/public/locales/de/components/player.json
+++ b/web/public/locales/de/components/player.json
@@ -48,5 +48,6 @@
"submittedFrigatePlus": "Bild erfolgreich an Frigate+ gesendet"
}
},
- "noPreviewFoundFor": "Keine Vorschau für {{cameraName}} gefunden"
+ "noPreviewFoundFor": "Keine Vorschau für {{cameraName}} gefunden",
+ "cameraOff": "Kamera ist ausgeschaltet"
}
diff --git a/web/public/locales/de/config/cameras.json b/web/public/locales/de/config/cameras.json
index 126295932d..4a479c2c23 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",
@@ -826,7 +826,7 @@
},
"timestamp_style": {
"label": "Format für Zeitstempel",
- "description": "Gestaltungsmöglichkeiten für Zeitstempel im Feed, die auf Aufzeichnungen und Momentaufnahmen angewendet werden.",
+ "description": "Gestaltungsoptionen für Zeitstempel, die auf Momentaufnahmen und die Debug-Ansicht angewendet werden.",
"position": {
"label": "Position des Zeitstempels",
"description": "Position des Zeitstempels auf dem Bild (tl/tr/bl/br)."
diff --git a/web/public/locales/de/config/global.json b/web/public/locales/de/config/global.json
index fb319cdecf..78712b1035 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."
@@ -496,7 +496,7 @@
},
"default_role": {
"label": "Standardrolle",
- "description": "Standardrolle, die proxy-authentifizierten Benutzern zugewiesen wird, wenn keine Rollenzuordnung gilt (Admin oder Betrachter)."
+ "description": "Standardrolle, die proxy-authentifizierten Benutzern zugewiesen wird, wenn keine Rollenzuordnung vorliegt."
},
"separator": {
"label": "Trennzeichen",
@@ -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/live.json b/web/public/locales/de/views/live.json
index 5405265314..cfee8b7233 100644
--- a/web/public/locales/de/views/live.json
+++ b/web/public/locales/de/views/live.json
@@ -144,7 +144,9 @@
},
"camera": {
"enable": "Kamera aktivieren",
- "disable": "Kamera deaktivieren"
+ "disable": "Kamera deaktivieren",
+ "turnOn": "Schalte die Kamera ein",
+ "turnOff": "Schalte die Kamera aus"
},
"audioDetect": {
"enable": "Audioerkennung aktivieren",
@@ -162,7 +164,8 @@
"autotracking": "Autotracking",
"audioDetection": "Audioerkennung",
"title": "{{camera}} Einstellungen",
- "transcription": "Audio Transkription"
+ "transcription": "Audio Transkription",
+ "camera": "Kamera"
},
"history": {
"label": "Historisches Filmmaterial zeigen"
diff --git a/web/public/locales/de/views/motionSearch.json b/web/public/locales/de/views/motionSearch.json
index 3008f10d85..9ad72c4616 100644
--- a/web/public/locales/de/views/motionSearch.json
+++ b/web/public/locales/de/views/motionSearch.json
@@ -24,7 +24,9 @@
"points_one": "{{count}} Punkt",
"points_other": "{{count}} Punkte",
"undo": "Letzten Schritt rückgängig machen",
- "reset": "Polygon zurücksetzen"
+ "reset": "Polygon zurücksetzen",
+ "drawMode": "ziehen",
+ "moveMode": "bewegen"
},
"motionHeatmapLabel": "Bewegungs-Heatmap",
"dialog": {
diff --git a/web/public/locales/de/views/settings.json b/web/public/locales/de/views/settings.json
index 5c4028eadf..3d8e9d3b83 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",
@@ -31,7 +32,7 @@
"enrichments": "Erkennungsfunktionen",
"triggers": "Auslöser",
"roles": "Rollen",
- "cameraManagement": "Verwaltung",
+ "cameraManagement": "Kamera Verwaltung",
"cameraReview": "Überprüfung",
"system": "System",
"general": "allgemein",
@@ -92,7 +93,8 @@
"uiSettings": "Benutzeroberfläche Einstellung",
"profiles": "Profile",
"systemGo2rtcStreams": "go2rtc-streams",
- "maintenance": "Wartung"
+ "maintenance": "Wartung",
+ "systemDetectorsAndModel": "Detektoren und Modell"
},
"dialog": {
"unsavedChanges": {
@@ -728,7 +730,8 @@
"notificationUnavailable": {
"title": "Benachrichtigungen nicht verfügbar",
"desc": "Web Push Benachrichtigungen erfordern einen sicheren Kontext (https://…). Das ist eine Vorgabe des Browsers. Greife auf Frigate gesichert zu um Benachrichtigungen zu nutzen.",
- "documentation": "Dokumentation lesen"
+ "documentation": "Dokumentation lesen",
+ "descPwa": "Unter iOS sind Web-Push-Benachrichtigungen nur verfügbar, wenn Frigate auf Ihrem Startbildschirm installiert ist. Öffnen Sie das Menü Teilen, wählen Sie Zum Startbildschirm hinzufügen und öffnen Sie Frigate über das neue Symbol, um dieses Gerät für Benachrichtigungen zu registrieren."
},
"cameras": {
"desc": "Wähle aus für welche Kameras Benachrichtigungen aktiviert werden sollen.",
@@ -800,7 +803,7 @@
"cameras": "Kameras",
"loading": "Lade Model Informationen…",
"error": "Model Informationen laden fehlgeschlagen",
- "availableModels": "Verfügbare Modelle",
+ "availableModels": "Verfügbare Frigate+ Modelle",
"loadingAvailableModels": "Lade verfügbare Modelle…",
"baseModel": "Basis Model",
"title": "Model Informationen",
@@ -825,7 +828,8 @@
"currentModel": "Aktuelles Modell",
"otherModels": "Anderes Modell",
"configuration": "Konfiguration"
- }
+ },
+ "changeInDetectorsAndModel": "Modell wechseln"
},
"enrichments": {
"birdClassification": {
@@ -1133,7 +1137,7 @@
"brands": {
"reolink-rtsp": "Reolink RTSP wird nicht empfohlen. Es wird empfohlen, http in den Kameraeinstellungen zu aktivieren und den Kamera-Assistenten neu zu starten."
},
- "customUrlRtspRequired": "Benutzerdefinierte URLs müssen mit „rtsp://“ beginnen. Für Nicht-RTSP-Kamerastreams ist eine manuelle Konfiguration erforderlich."
+ "customUrlRtspRequired": "Benutzerdefinierte URLs müssen mit „rtsp://“ oder \"rtsps://\" beginnen. Für Nicht-RTSP-Kamerastreams ist eine manuelle Konfiguration erforderlich."
},
"docs": {
"reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
@@ -1353,19 +1357,41 @@
"selectCamera": "Wähle eine Kamera",
"backToSettings": "Zurück zu Kameraeinstellungen",
"streams": {
- "title": "Kameras aktivieren / deaktivieren",
+ "title": "Kamerastatus und Details",
"desc": "Deaktiviere eine Kamera vorübergehend, bis Frigate neu gestartet wird. Deaktivierung einer Kamera stoppt die Verarbeitung der Streams dieser Kamera durch Frigate vollständig. Erkennung, Aufzeichnung und Debugging sind dann nicht mehr verfügbar.
Hinweis: Dies deaktiviert nicht die go2rtc restreams.",
"enableLabel": "Aktivierte Kameras",
"enableDesc": "Eine aktivierte Kamera vorübergehend deaktivieren, bis Frigate neu gestartet wird. Durch das Deaktivieren einer Kamera wird die Verarbeitung der Streams dieser Kamera durch Frigate vollständig unterbrochen. Erkennung, Aufzeichnung und Fehlerbehebung stehen dann nicht mehr zur Verfügung.
Hinweis: go2rtc-Restreams werden dadurch nicht deaktiviert.",
"disableLabel": "Deaktivierte Kameras",
"disableDesc": "Aktivieren Sie eine Kamera, die derzeit in der Benutzeroberfläche nicht sichtbar und in der Konfiguration deaktiviert ist. Nach der Aktivierung ist ein Neustart von Frigate erforderlich.",
- "enableSuccess": "{{cameraName}} wurde in der Konfiguration aktiviert. Starte Frigate neu, um die Änderungen zu übernehmen.",
+ "enableSuccess": "{{cameraName}} wurde aktiviert. Starte Frigate neu, um die Änderung zu übernehmen.",
"friendlyName": {
"edit": "Anzeigenamen der Kamera bearbeiten",
"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)."
+ },
+ "label": "Kamerazustand",
+ "description": "Legen Sie den Betriebszustand für jede Kamera fest.
Ein: Streams werden normal verarbeitet.
Aus: Die Verarbeitung wird vorübergehend angehalten. Diese Einstellung bleibt bei einem Neustart von Frigate nicht erhalten.
Deaktiviert: Die Verarbeitung wird beendet und die Änderung in Ihrer Konfiguration gespeichert. Um eine deaktivierte Kamera wieder zu aktivieren, ist ein Neustart erforderlich.
Hinweis: Die Deaktivierung hat keine Auswirkungen auf go2rtc-Restreams.
Ziehen Sie den Griff, um die Reihenfolge der aktiven Kameras in der Benutzeroberfläche anzupassen, einschließlich des Live-Dashboards und der Dropdown-Menüs zur Kameraauswahl.",
+ "disabledSubheading": "In der Konfiguration deaktiviert",
+ "status": {
+ "on": "Eingeschaltet",
+ "off": "Ausgeschaltet",
+ "disabled": "Deaktiviert"
+ },
+ "disableSuccess": "{{cameraName}} wurde deaktiviert und in der Konfiguration gespeichert."
},
"cameraConfig": {
"add": "Kamera hinzufügen",
@@ -1411,20 +1437,107 @@
"profiles": {
"title": "Profilkameraumschaltungen",
"selectLabel": "Profil auswählen",
- "description": "Legen Sie fest, welche Kameras bei der Aktivierung eines Profils aktiviert oder deaktiviert werden sollen. Kameras, für die „Übernehmen“ eingestellt ist, behalten ihren ursprünglichen Aktivierungsstatus bei.",
+ "description": "Legen Sie fest, welche Kameras bei der Aktivierung eines Profils ein- oder ausgeschaltet werden. Kameras, die auf „Übernehmen“ eingestellt sind, behalten ihren Standardzustand bei.",
"inherit": "Erben",
"enabled": "Aktiviert",
- "disabled": "Deaktiviert"
+ "disabled": "Deaktiviert",
+ "on": "Eingeschaltet",
+ "off": "Ausgeschaltet"
},
"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",
"saveSuccess": "Der Kameratyp für {{cameraName}} wurde aktualisiert. Starte Frigate neu, um die Änderungen zu übernehmen."
},
- "description": "Fügen Sie Kameras hinzu, bearbeiten und löschen Sie sie, legen Sie fest, welche Kameras aktiviert sind, und konfigurieren Sie profil- und kameratypabhängige Übersteuerungen. Um Streams, Erkennung, Bewegung und andere kameraspezifische Einstellungen zu konfigurieren, wählen Sie den entsprechenden Abschnitt unter „Kamerakonfiguration“ aus."
+ "description": "Fügen Sie Kameras hinzu, bearbeiten und löschen Sie sie, steuern Sie den Status jeder einzelnen Kamera und konfigurieren Sie profil- und kameratypabhängige Übersteuerungen. Um Streams, Erkennung, Bewegung und andere kameraspezifische Einstellungen zu konfigurieren, wählen Sie den entsprechenden Abschnitt unter „Kamerakonfiguration“ aus.",
+ "clone": {
+ "sectionTitle": "Einstellungen klonen",
+ "sectionDescription": "Konfiguration von einer Kamera auf eine andere oder eine neue Kamera kopieren.",
+ "button": "Einstellungen klonen",
+ "title": "Kameraeinstellungen kopieren",
+ "description": "Kopieren Sie die Konfiguration einer Kamera auf eine oder mehrere andere Kameras oder auf eine neue Kamera. Die Identitätsdaten (Name, Anzeigename, URL der Web-Benutzeroberfläche, Anzeigereihenfolge) werden dabei nicht kopiert.",
+ "source": {
+ "label": "Quellkamera",
+ "placeholder": "Wählen Sie eine Quellkamera aus",
+ "required": "Wählen Sie eine Quellkamera aus"
+ },
+ "target": {
+ "legend": "Ziel",
+ "newRadio": "Neue Kamera",
+ "newNameLabel": "Kamera Name",
+ "newNamePlaceholder": "z. B. back_door oder Back Door",
+ "newNameRequired": "Kamera Name ist erforderlich",
+ "newNameInvalid": "ungültiger Kamera Name",
+ "newNameCollision": "Eine Kamera mit diesem Namen gibt es bereits",
+ "newStreamsForced": "Streams werden bei einer neuen Kamera immer kopiert.",
+ "existingCamerasRadio": "Vorhandene Kameras",
+ "allCameras": "Alle Kameras",
+ "existingPlaceholder": "Wählen Sie mindestens eine Kamera aus",
+ "existingDisabled": "Es gibt keine weiteren Kameras, auf die kopiert werden kann"
+ },
+ "categories": {
+ "legend": "Zu klonende Einstellungen",
+ "description": "Wählen Sie aus, welche Einstellungen von der Quellkamera kopiert werden sollen.",
+ "selectAll": "Alle auswählen",
+ "selectNone": "Keine auswählen",
+ "resetDefaults": "Auf Standardwerte zurücksetzen",
+ "general": "Allgemeines",
+ "spatial": "Räumliche Rahmenbedingungen",
+ "streams": "Streams",
+ "spatialWarningTitle": "Auflösungsdiskrepanz",
+ "spatialWarning": "Die Quellkamera {{srcCamera}} hat eine andere Auflösung ({{srcWidth}}×{{srcHeight}}) als: {{cameras}}. Die Polygone sind möglicherweise nicht auf diese Kameras ausgerichtet. Diese Standardeinstellungen sind deaktiviert; aktivieren Sie sie, um die Daten unverändert zu kopieren.",
+ "restartHint": "Neustart erforderlich",
+ "items": {
+ "record": "Aufnahme",
+ "snapshots": "Momentaufnahmen",
+ "motion": "Bewegungserkennung",
+ "objects": "Objekte",
+ "audio": "Tonerkennung",
+ "audio_transcription": "Audio-Transkription",
+ "notifications": "Benachrichtigungen",
+ "birdseye": "Birdseye",
+ "mqtt": "MQTT",
+ "timestamp_style": "Format für Zeitstempel",
+ "onvif": "ONVIF",
+ "lpr": "Kennzeichenerkennung",
+ "face_recognition": "Gesichtserkennung",
+ "semantic_search": "Semantische Suche",
+ "genai": "Generative AI",
+ "type": "Kameratyp (Standard / speziell für Kennzeichenerkennung)",
+ "profiles": "Profile",
+ "detect": "Abmessungen ermitteln",
+ "zones": "Zonen",
+ "motion_mask": "Bewegungsmaske",
+ "object_masks": "Objektmaske",
+ "ffmpeg_live": "Stream-URLs und Rollen",
+ "review": "Rezension"
+ }
+ },
+ "footer": {
+ "restartNeeded": "Für einige Änderungen ist ein Neustart erforderlich.",
+ "liveOnly": "Alle Änderungen werden sofort wirksam, ohne dass ein Neustart erforderlich ist.",
+ "submit": "Klon",
+ "submitting": "Klonen…",
+ "changeCount_one": "Die Änderung von {{count}} wird übernommen",
+ "changeCount_other": "Die Änderungen von {{count}} werden übernommen"
+ },
+ "toast": {
+ "success": "Einstellungen wurden auf {{cameraName}} kopiert",
+ "successWithRestart": "Die Einstellungen wurden auf {{cameraName}} kopiert. Starte Frigate neu, um alle Änderungen zu übernehmen.",
+ "successMulti_one": "Einstellungen wurden auf {{count}} Kamera kopiert",
+ "successMulti_other": "Einstellungen wurden auf {{count}} Kameras kopiert",
+ "successMultiWithRestart_one": "Die Einstellungen wurden auf die Kamera {{count}} kopiert. Starte Frigate neu, um alle Änderungen zu übernehmen.",
+ "successMultiWithRestart_other": "Die Einstellungen wurden auf {{count}} Kameras kopiert. Starten Sie Frigate neu, um alle Änderungen zu übernehmen.",
+ "partialFailure": "{{successCount}} Abschnitte wurden angewendet; '{{failedSection}}' ist fehlgeschlagen: {{errorMessage}}",
+ "partialFailureMulti": "{{successCount}} Kamera(s) wurden kopiert; bei {{failed}} ist ein Fehler aufgetreten: {{errorMessage}}",
+ "newCameraPartialFailure": "Die Kamera {{cameraName}} wurde erstellt, einige Einstellungen konnten jedoch nicht kopiert werden: {{errorMessage}}",
+ "sourceMissing": "Die Quellkamera existiert nicht mehr",
+ "submitError": "Das Klonen der Kamera ist fehlgeschlagen: {{errorMessage}}"
+ }
+ }
},
"cameraReview": {
"title": "Kamera-Einstellungen überprüfen",
@@ -1773,9 +1886,39 @@
"platePlaceholder": "Kennzeichen oder regulärer Ausdruck"
},
"genaiModel": {
- "placeholder": "Modell auswählen…",
- "search": "Modell suchen…",
- "noModels": "Keine Modelle verfügbar"
+ "placeholder": "Modell auswählen oder eingeben…",
+ "search": "Modell suchen oder eingeben…",
+ "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"
+ },
+ "liveStreams": {
+ "streamNameLabel": "Streamname",
+ "streamNamePlaceholder": "z. B. Haupt-HD-Stream",
+ "go2rtcStreamLabel": "go2rtc stream",
+ "go2rtcStreamPlaceholder": "Wählen Sie einen go2rtc-Stream aus",
+ "go2rtcStreamSearch": "Suchen Sie nach einem Streamnamen oder geben Sie ihn ein…",
+ "noGo2rtcStreams": "Es sind keine go2rtc-Streams konfiguriert",
+ "availableStreams": "Verfügbare Streams",
+ "useCustom": "Verwende „{{value}}“",
+ "addStream": "Stream hinzufügen"
+ },
+ "ptzPresets": {
+ "placeholder": "Wählen Sie eine Voreinstellung aus oder geben Sie eine ein...",
+ "search": "Suchen oder eine Voreinstellung eingeben...",
+ "noPresets": "Es sind keine Voreinstellungen verfügbar",
+ "available": "Kamera-Voreinstellungen",
+ "useCustom": "Verwende „{{value}}“"
+ },
+ "defaultRole": {
+ "admin": "Admin",
+ "viewer": "Betrachter"
}
},
"globalConfig": {
@@ -1809,7 +1952,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 +2041,18 @@
"audioMp3": "Transcode zu MP3",
"audioExclude": "Ausschließen",
"hardwareNone": "Keine Hardwarebeschleunigung",
- "hardwareAuto": "Automatische Hardwarebeschleunigung"
- }
+ "hardwareAuto": "Automatisch (empfohlen)",
+ "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}}",
+ "sourceNumber": "Quelle {{index}}"
},
"onvif": {
"profileAuto": "Auto",
@@ -1925,7 +2080,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.",
@@ -1955,6 +2112,9 @@
},
"semanticSearch": {
"jinav2SmallModelSize": "Die „kleine“ Variante des Jina V2-Modells verursacht hohe RAM- und Inferenzkosten. Es wird das „große“ Modell mit einer dedizierten GPU empfohlen."
+ },
+ "onvif": {
+ "autotrackingNoZones": "Für die automatische Verfolgung ist mindestens eine Zone erforderlich. Definieren Sie unter „Masken / Zonen“ eine Zone für diese Kamera und legen Sie diese anschließend unten als erforderliche Zone fest."
}
},
"birdseye": {
@@ -1962,6 +2122,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 +2178,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..a1957c06bb 100644
--- a/web/public/locales/es/common.json
+++ b/web/public/locales/es/common.json
@@ -155,7 +155,8 @@
"id": "Bahasa Indonesia (Indonesio)",
"ur": "اردو (Urdu)",
"hr": "Hrvatski (Croata)",
- "bs": "Bosanski (Bosnio)"
+ "bs": "Bosanski (Bosnio)",
+ "zhHant": "繁體中文 (Chino Tradicional)"
},
"appearance": "Apariencia",
"darkMode": {
@@ -333,5 +334,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/camera.json b/web/public/locales/es/components/camera.json
index 05bca27427..1ce25fa472 100644
--- a/web/public/locales/es/components/camera.json
+++ b/web/public/locales/es/components/camera.json
@@ -68,7 +68,10 @@
"stream": "Transmitir"
},
"birdseye": "Vista Aérea"
- }
+ },
+ "showAll": "Mostrar todos los grupos de cámaras",
+ "showLess": "Mostrar menos",
+ "editGroups": "Editar grupos de cámaras"
},
"debug": {
"options": {
diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json
index 07d7862b66..c52e427bb6 100644
--- a/web/public/locales/es/components/dialog.json
+++ b/web/public/locales/es/components/dialog.json
@@ -71,7 +71,7 @@
"endTimeMustAfterStartTime": "La hora de finalización debe ser posterior a la hora de inicio"
},
"success": "Exportación iniciada con éxito. Ver el archivo en la página exportaciones.",
- "view": "Ver",
+ "view": "Vista",
"queued": "Exportación en cola. Consulta el progreso en la página de exportaciones.",
"batchSuccess_one": "Se inició 1 exportación. Abriendo el caso ahora.",
"batchSuccess_many": "Se iniciaron {{count}} exportaciones. Abriendo el caso ahora.",
@@ -101,7 +101,7 @@
},
"queueing": "Poniendo la exportación en cola…",
"tabs": {
- "export": "Cámara única",
+ "export": "Una Cámara",
"multiCamera": "Multicámara"
},
"multiCamera": {
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/cameras.json b/web/public/locales/es/config/cameras.json
index ae0b7437fd..aa1f09becc 100644
--- a/web/public/locales/es/config/cameras.json
+++ b/web/public/locales/es/config/cameras.json
@@ -1,6 +1,6 @@
{
"name": {
- "label": "Nombre de cámara",
+ "label": "Nombre de Cámara",
"description": "El nombre de la cámara es necesario"
},
"enabled": {
@@ -28,19 +28,19 @@
},
"filters": {
"label": "Filtros de audio",
- "description": "Ajustes de filtrado por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.",
+ "description": "Ajustes de filtro por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.",
"threshold": {
"label": "Confianza mínima de audio",
"description": "Umbral mínimo de confianza para que se cuente el evento de audio."
}
},
"enabled_in_config": {
- "description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estática.",
- "label": "Estado original del audio"
+ "description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estático.",
+ "label": "Estado de audio original"
},
"num_threads": {
"label": "Hilos de detección",
- "description": "Número de hilos que se utilizarán para el procesamiento de la detección de audio."
+ "description": "Número de hilos a usar para procesamiento de detección de audio."
}
},
"friendly_name": {
@@ -349,10 +349,10 @@
}
},
"audio_transcription": {
- "description": "Configuración para la transcripción de audio en vivo y de voz, utilizada para eventos y subtítulos en tiempo real.",
+ "description": "Configuración para la transcripción de audio en directo y de voz utilizada para eventos y subtítulos en directo.",
"enabled": {
"label": "Habilitar transcripción",
- "description": "Activar o desactivar la transcripción de eventos de audio activados manualmente."
+ "description": "Habilitar o deshabilitar la transcripción de eventos de audio activados manualmente."
},
"label": "Transcripción de audio",
"enabled_in_config": {
@@ -360,7 +360,7 @@
},
"live_enabled": {
"label": "Transcripción en directo",
- "description": "Activar la transcripción en directo del audio a medida que se recibe."
+ "description": "Habilitar la transcripción en directo del audio a medida que se recibe."
}
},
"motion": {
@@ -608,6 +608,10 @@
"order": {
"label": "Orden en la interfaz",
"description": "Orden numérico usado para ordenar la cámara en la interfaz (panel predeterminado y listas); los números más altos aparecen más tarde."
+ },
+ "review": {
+ "label": "Mostrar en Revisión",
+ "description": "Activa o desactiva si esta cámara es visible en Revisión (la página de Revisión y su filtro de cámaras, la revisión de movimiento y la vista de historial)."
}
},
"live": {
@@ -720,7 +724,7 @@
},
"birdseye": {
"description": "Configuración para la vista compuesta Birdseye, que combina las transmisiones de múltiples cámaras en una sola vista.",
- "label": "Vista general",
+ "label": "Birdseye",
"enabled": {
"label": "Habilitar Birdseye",
"description": "Habilita o deshabilita la función de vista Birdseye."
@@ -896,7 +900,7 @@
},
"timestamp_style": {
"label": "Estilo de marca de tiempo",
- "description": "Opciones de estilo para marcas de tiempo integradas aplicadas a grabaciones e instantáneas.",
+ "description": "Opciones de estilo para las marcas de tiempo aplicadas a las instantáneas y a la vista de depuración.",
"position": {
"label": "Posición de marca de tiempo",
"description": "Posición de la marca de tiempo en la imagen (tl/tr/bl/br)."
diff --git a/web/public/locales/es/config/global.json b/web/public/locales/es/config/global.json
index a6931ba473..ee7210f359 100644
--- a/web/public/locales/es/config/global.json
+++ b/web/public/locales/es/config/global.json
@@ -43,19 +43,19 @@
},
"filters": {
"label": "Filtros de audio",
- "description": "Ajustes de filtrado por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.",
+ "description": "Ajustes de filtro por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.",
"threshold": {
"label": "Confianza mínima de audio",
"description": "Umbral mínimo de confianza para que se cuente el evento de audio."
}
},
"enabled_in_config": {
- "description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estática.",
- "label": "Estado original del audio"
+ "description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estático.",
+ "label": "Estado de audio original"
},
"num_threads": {
"label": "Hilos de detección",
- "description": "Número de hilos que se utilizarán para el procesamiento de la detección de audio."
+ "description": "Número de hilos a usar para procesamiento de detección de audio."
},
"description": "Ajustes para la detección de eventos basada en audio en todas las cámaras; se pueden sobrescribir por cámara."
},
@@ -610,7 +610,7 @@
"description": "Carácter usado para separar varios valores proporcionados en las cabeceras del proxy."
},
"default_role": {
- "description": "Rol predeterminado asignado a los usuarios autenticados por proxy cuando no se aplica ningún mapeo de roles (administrador o espectador).",
+ "description": "Rol predeterminado asignado a los usuarios autenticados mediante proxy cuando no se aplica ninguna asignación de roles.",
"label": "Rol predeterminado"
},
"description": "Configuración para integrar Frigate detrás de un proxy inverso que transmite encabezados de usuario autenticados.",
@@ -696,7 +696,7 @@
}
},
"audio_transcription": {
- "description": "Configuración para la transcripción de audio en vivo y de voz, utilizada para eventos y subtítulos en tiempo real.",
+ "description": "Configuración para la transcripción de audio en directo y de voz utilizada para eventos y subtítulos en directo.",
"language": {
"description": "Código de idioma utilizado para la transcripción/traducción (por ejemplo, 'es' para Español). Consulte https://whisper-api.com/docs/languages/ para ver los códigos de idioma compatibles.",
"label": "Idioma de transcripción"
@@ -708,7 +708,7 @@
"label": "Transcripción de audio",
"live_enabled": {
"label": "Transcripción en directo",
- "description": "Activar la transcripción en directo del audio a medida que se recibe."
+ "description": "Habilitar la transcripción en directo del audio a medida que se recibe."
},
"device": {
"label": "Dispositivo de transcripción",
@@ -1010,6 +1010,10 @@
"order": {
"label": "Orden en la interfaz",
"description": "Orden numérico usado para ordenar la cámara en la interfaz (panel predeterminado y listas); los números más altos aparecen más tarde."
+ },
+ "review": {
+ "label": "Mostrar en Revisión",
+ "description": "Activa o desactiva si esta cámara se muestra en Revisión (la página de Revisión y su filtro de cámaras, la revisión de movimiento y la vista de historial)."
}
},
"live": {
@@ -1190,7 +1194,7 @@
"description": "Factor de escala usado por el calculador de diseño (rango de 1.0 a 5.0)."
}
},
- "label": "Vista general",
+ "label": "Birdseye",
"enabled": {
"label": "Habilitar Birdseye",
"description": "Habilita o deshabilita la función de vista Birdseye."
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/classificationModel.json b/web/public/locales/es/views/classificationModel.json
index e1d1449e8e..93bc070b77 100644
--- a/web/public/locales/es/views/classificationModel.json
+++ b/web/public/locales/es/views/classificationModel.json
@@ -36,14 +36,14 @@
"trainingFailed": "El entrenamiento del modelo ha fallado. Revisa los registros de Frigate para más detalles.",
"updateModelFailed": "Fallo al actualizar modelo: {{errorMessage}}",
"trainingFailedToStart": "No se pudo iniciar el entrenamiento del modelo: {{errorMessage}}",
- "renameCategoryFailed": "Falló el renombrado de la clase: {{errorMessage}}",
+ "renameCategoryFailed": "Fallo al renombrar la clase:{{errorMessage}}",
"reclassifyFailed": "Error al reclasificar la imagen: {{errorMessage}}"
}
},
"deleteCategory": {
"title": "Borrar Clase",
"desc": "¿Esta seguro de que quiere borrar la clase {{name}}? Esto borrará permanentemente todas las imágenes asociadas y requerirá reentrenar el modelo.",
- "minClassesTitle": "No se puede Borrar la Clase",
+ "minClassesTitle": "No se puede borrar la clase",
"minClassesDesc": "Un modelo de clasificación debe tener al menos 2 clases. Añade otra clase antes de borrar esta."
},
"deleteModel": {
@@ -66,7 +66,7 @@
"noNewImages": "No hay imágenes nuevas para entrenar. Clasifica antes más imágenes del conjunto de datos."
},
"details": {
- "scoreInfo": "La puntuación representa la confianza media de clasificación en todas las detecciones de este objeto.",
+ "scoreInfo": "La puntuación representa la confianza promedio de la clasificación en todas las detecciones de este objeto.",
"unknown": "Desconocido",
"none": "Ninguno"
},
@@ -166,7 +166,7 @@
"desc_other": "¿Está seguro de que quiere eliminar {{count}} imágenes de {{dataset}}? Esta acción no puede ser deshecha y requerirá reentrenar el modelo."
},
"deleteTrainImages": {
- "title": "Borrar Imágenes de Entrenamiento",
+ "title": "Borrar imágenes de entrenamiento",
"desc_one": "¿Está seguro de que quiere eliminar {{count}} imagen? Esta acción no puede ser deshecha.",
"desc_many": "¿Está seguro de que quiere eliminar {{count}} imágenes? Esta acción no puede ser deshecha.",
"desc_other": "¿Está seguro de que quiere eliminar {{count}} imágenes? Esta acción no puede ser deshecha."
diff --git a/web/public/locales/es/views/configEditor.json b/web/public/locales/es/views/configEditor.json
index 265e7ec8e8..8f109c2ce1 100644
--- a/web/public/locales/es/views/configEditor.json
+++ b/web/public/locales/es/views/configEditor.json
@@ -14,5 +14,5 @@
"documentTitle": "Editor de Configuración - Frigate",
"confirm": "¿Salir sin guardar?",
"safeConfigEditor": "Editor de Configuración (Modo Seguro)",
- "safeModeDescription": "Frigate esta en modo seguro debido a un error en la validación de la configuración."
+ "safeModeDescription": "Frigate se encuentra en modo seguro debido a un error de validación en la configuración."
}
diff --git a/web/public/locales/es/views/explore.json b/web/public/locales/es/views/explore.json
index f6d61180fd..2f993e647e 100644
--- a/web/public/locales/es/views/explore.json
+++ b/web/public/locales/es/views/explore.json
@@ -208,7 +208,7 @@
},
"addTrigger": {
"label": "Añadir disparador",
- "aria": "Añadir disparador para el objeto seguido"
+ "aria": "Añadir disparador para este objeto rastreado"
},
"downloadCleanSnapshot": {
"label": "Descargue instantánea limpia",
@@ -273,8 +273,8 @@
"count": "{{first}} de {{second}}",
"lifecycleItemDesc": {
"visible": "{{label}} detectado",
- "active": "{{label}} ha sido activado/a",
- "stationary": "{{label}} se volvió estacionaria",
+ "active": "{{label}} está activo",
+ "stationary": "{{label}} se volvió estacionario",
"attribute": {
"faceOrLicense_plate": "{{attribute}} detectado para {{label}}",
"other": "{{label}} reconocido como {{attribute}}"
diff --git a/web/public/locales/es/views/exports.json b/web/public/locales/es/views/exports.json
index b464f3ab0d..0aec0eeca7 100644
--- a/web/public/locales/es/views/exports.json
+++ b/web/public/locales/es/views/exports.json
@@ -13,7 +13,7 @@
"toast": {
"error": {
"renameExportFailed": "No se pudo renombrar la exportación: {{errorMessage}}",
- "assignCaseFailed": "Fallo en la actualización de la asignación de caso: {{errorMessage}}",
+ "assignCaseFailed": "No se pudo actualizar la asignación al caso: {{errorMessage}}",
"caseSaveFailed": "No se pudo guardar el caso: {{errorMessage}}",
"caseDeleteFailed": "No se pudo eliminar el caso: {{errorMessage}}"
}
@@ -25,11 +25,11 @@
"editName": "Editar nombre",
"deleteExport": "Eliminar exportación",
"assignToCase": "Añadir al caso",
- "removeFromCase": "Remover del contenedor"
+ "removeFromCase": "Eliminar del caso"
},
"headings": {
"cases": "Casos",
- "uncategorizedExports": "Exportaciones sin Categorizar"
+ "uncategorizedExports": "Exportaciones sin categorización"
},
"caseDialog": {
"title": "Añadir al caso",
@@ -40,7 +40,7 @@
"descriptionLabel": "Descripción"
},
"toolbar": {
- "addExport": "Añadir Exportación",
+ "addExport": "Agregar exportación",
"newCase": "Nuevo caso",
"editCase": "Editar caso",
"deleteCase": "Eliminar caso"
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/motionSearch.json b/web/public/locales/es/views/motionSearch.json
index 45b1ddca90..2d1103aeb4 100644
--- a/web/public/locales/es/views/motionSearch.json
+++ b/web/public/locales/es/views/motionSearch.json
@@ -26,7 +26,9 @@
"points_many": "{{count}} puntos",
"points_other": "{{count}} puntos",
"undo": "Deshacer el último punto",
- "reset": "Restablecer polígono"
+ "reset": "Restablecer polígono",
+ "drawMode": "Dibujar",
+ "moveMode": "Mover"
},
"motionHeatmapLabel": "Mapa de calor de movimiento",
"dialog": {
@@ -42,11 +44,11 @@
"settings": {
"title": "Ajustes de búsqueda",
"parallelMode": "Modo paralelo",
- "parallelModeDesc": "Analiza varios segmentos de grabación al mismo tiempo (más rápido, pero consume significativamente más CPU)",
+ "parallelModeDesc": "Analiza varios intervalos de grabación al mismo tiempo (más rápido, pero utiliza más recursos de decodificación)",
"threshold": "Umbral de sensibilidad",
"thresholdDesc": "Los valores más bajos detectan cambios más pequeños (1-255)",
"minArea": "Área mínima de cambio",
- "minAreaDesc": "Porcentaje mínimo de la región de interés que debe cambiar para considerarse significativo",
+ "minAreaDesc": "Tamaño mínimo de una única región en movimiento, expresado como porcentaje de la región de interés",
"frameSkip": "Salto de fotogramas",
"frameSkipDesc": "Procesa cada N fotogramas. Establécelo según la tasa de FPS de tu cámara para procesar un fotograma por segundo (p. ej., 5 para una cámara de 5 FPS, 30 para una cámara de 30 FPS). Los valores más altos serán más rápidos, pero pueden omitir eventos de movimiento breves.",
"maxResults": "Resultados máximos",
@@ -72,6 +74,9 @@
"framesDecoded": "Fotogramas decodificados",
"wallTime": "Tiempo de búsqueda",
"segmentErrors": "Errores de segmento",
- "seconds": "{{seconds}} s"
- }
+ "seconds": "{{seconds}} s",
+ "minutesSeconds": "{{minutes}}m {{seconds}}s",
+ "scanSummary": "{{segments}} segmentos · {{time}}"
+ },
+ "scanning": "Escaneando {{time}}"
}
diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json
index 7dc10c8a63..99aa74e98d 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",
@@ -727,7 +727,8 @@
"notificationUnavailable": {
"title": "Notificaciones no disponibles",
"documentation": "Leer la documentación",
- "desc": "Las notificaciones push web requieren un contexto seguro (https://…). Esto es una limitación del navegador. Accede a Frigate de forma segura para usar las notificaciones."
+ "desc": "Las notificaciones push web requieren un contexto seguro (https://…). Esto es una limitación del navegador. Accede a Frigate de forma segura para usar las notificaciones.",
+ "descPwa": "En iOS, las notificaciones push web solo están disponibles cuando Frigate está instalado en la pantalla de inicio. Abre el menú Compartir, selecciona Añadir a la pantalla de inicio y, a continuación, abre Frigate desde el nuevo icono para registrar este dispositivo para las notificaciones."
},
"globalSettings": {
"title": "Configuración global",
@@ -1091,7 +1092,7 @@
"nameLength": "El nombre de la cámara debe tener 64 caracteres o menos",
"invalidCharacters": "El nombre de la cámara contiene caracteres no válidos",
"nameExists": "El nombre de la cámara ya existe",
- "customUrlRtspRequired": "Las URL personalizadas deben comenzar con \"rtsp://\". Se requiere configuración manual para transmisiones de cámara sin RTSP.",
+ "customUrlRtspRequired": "Las URL personalizadas deben comenzar por “rtsp://” o “rtsps://”. Se requiere configuración manual para flujos de cámara que no sean RTSP.",
"brandOrCustomUrlRequired": "Seleccione una marca de cámara con host/IP o elija \"Otro\" con una URL personalizada"
},
"description": "Ingrese los detalles de su cámara y elija probar la cámara o seleccionar manualmente la marca.",
@@ -1281,13 +1282,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 +1297,30 @@
},
"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, la URL externa y la visibilidad 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).",
+ "dashboardLabel": "Mostrar en el panel En directo",
+ "dashboardHelp": "Mostrar esta cámara en el panel en directo.",
+ "reviewLabel": "Mostrar en Revisión",
+ "reviewHelp": "Mostrar esta cámara en Revisión, incluido el filtro de cámaras, la revisión de movimiento y la vista de historial."
+ },
+ "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 +1366,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 +1381,95 @@
"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.",
+ "clone": {
+ "sectionTitle": "Clonar configuración",
+ "sectionDescription": "Copia la configuración de una cámara a otra cámara o a una nueva.",
+ "button": "Clonar configuración",
+ "title": "Clonar configuración de la cámara",
+ "description": "Copia la configuración de una cámara a una o varias cámaras existentes o a una cámara nueva. La identidad de la cámara (nombre, nombre visible, URL de la interfaz web y orden de visualización) nunca se copia.",
+ "source": {
+ "label": "Cámara de origen",
+ "placeholder": "Selecciona una cámara de origen",
+ "required": "Selecciona una cámara de origen"
+ },
+ "target": {
+ "legend": "Destino",
+ "newRadio": "Nueva cámara",
+ "newNameLabel": "Nombre de la cámara",
+ "newNamePlaceholder": "p. ej., puerta_trasera o Puerta trasera",
+ "newNameRequired": "El nombre de la cámara es obligatorio",
+ "newNameInvalid": "Nombre de cámara no válido",
+ "newNameCollision": "Ya existe una cámara con este nombre",
+ "newStreamsForced": "Los flujos siempre se copian al crear una cámara nueva.",
+ "existingCamerasRadio": "Cámaras existentes",
+ "allCameras": "Todas las cámaras",
+ "existingPlaceholder": "Selecciona al menos una cámara",
+ "existingDisabled": "No hay otras cámaras a las que copiar la configuración"
+ },
+ "categories": {
+ "legend": "Configuración para clonar",
+ "description": "Elige qué ajustes copiar desde la cámara de origen.",
+ "selectAll": "Seleccionar todo",
+ "selectNone": "No seleccionar ninguno",
+ "resetDefaults": "Restablecer valores predeterminados",
+ "general": "General",
+ "spatial": "Configuración espacial",
+ "streams": "Flujos",
+ "spatialWarningTitle": "Resolución no coincidente",
+ "spatialWarning": "La resolución de detección de la cámara de origen {{srcCamera}} ({{srcWidth}}×{{srcHeight}}) es diferente de la de: {{cameras}}. Es posible que los polígonos no se alineen correctamente en esas cámaras. Estas opciones están desactivadas de forma predeterminada; actívalas para copiarlas tal cual.",
+ "restartHint": "Reinicio necesario",
+ "items": {
+ "record": "Grabación",
+ "snapshots": "Instantáneas",
+ "review": "Revisión",
+ "motion": "Detección de movimiento",
+ "objects": "Objetos",
+ "audio": "Detección de audio",
+ "audio_transcription": "Transcripción de audio",
+ "notifications": "Notificaciones",
+ "birdseye": "Birdseye",
+ "mqtt": "MQTT",
+ "timestamp_style": "Estilo de marca de tiempo",
+ "onvif": "ONVIF",
+ "lpr": "Reconocimiento de matrículas",
+ "face_recognition": "Reconocimiento facial",
+ "semantic_search": "Búsqueda semántica",
+ "genai": "IA generativa",
+ "type": "Tipo de cámara (normal / LPR dedicada)",
+ "profiles": "Perfiles",
+ "detect": "Dimensiones de detección",
+ "zones": "Zonas",
+ "motion_mask": "Máscaras de movimiento",
+ "object_masks": "Máscaras de objetos",
+ "ffmpeg_live": "URL y roles de los flujos"
+ }
+ },
+ "footer": {
+ "changeCount_one": "Se aplicará {{count}} cambio",
+ "changeCount_many": "Se aplicarán {{count}} cambios",
+ "changeCount_other": "Se aplicarán {{count}} cambios",
+ "restartNeeded": "Será necesario reiniciar para aplicar algunos cambios.",
+ "liveOnly": "Todos los cambios se aplicarán en tiempo real sin necesidad de reiniciar.",
+ "submit": "Clonar",
+ "submitting": "Clonando…"
+ },
+ "toast": {
+ "success": "Configuración copiada a {{cameraName}}",
+ "successWithRestart": "Configuración copiada a {{cameraName}}. Reinicia Frigate para aplicar todos los cambios.",
+ "successMulti_one": "Configuración copiada a {{count}} cámara",
+ "successMulti_many": "Configuración copiada a {{count}} cámaras",
+ "successMulti_other": "Configuración copiada a {{count}} cámaras",
+ "successMultiWithRestart_one": "Configuración copiada a {{count}} cámara. Reinicia Frigate para aplicar todos los cambios.",
+ "successMultiWithRestart_many": "Configuración copiada a {{count}} cámaras. Reinicia Frigate para aplicar todos los cambios.",
+ "successMultiWithRestart_other": "Configuración copiada a {{count}} cámaras. Reinicia Frigate para aplicar todos los cambios.",
+ "partialFailure": "Se aplicaron {{successCount}} secciones; ‘{{failedSection}}’ falló: {{errorMessage}}",
+ "partialFailureMulti": "Copiado a {{successCount}} cámara(s); error en {{failed}}: {{errorMessage}}",
+ "newCameraPartialFailure": "La cámara {{cameraName}} se creó, pero no se pudieron copiar algunos ajustes: {{errorMessage}}",
+ "sourceMissing": "La cámara de origen ya no existe",
+ "submitError": "No se pudo clonar la cámara: {{errorMessage}}"
+ }
+ }
},
"cameraReview": {
"title": "Configuración de revisión de la cámara",
@@ -1502,8 +1616,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 +1805,32 @@
"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"
+ },
+ "liveStreams": {
+ "streamNameLabel": "Nombre del flujo",
+ "streamNamePlaceholder": "p. ej., Flujo principal HD",
+ "go2rtcStreamLabel": "Flujo go2rtc",
+ "go2rtcStreamPlaceholder": "Selecciona un flujo go2rtc",
+ "go2rtcStreamSearch": "Busca o introduce un nombre de flujo…",
+ "noGo2rtcStreams": "No hay flujos go2rtc configurados",
+ "availableStreams": "Flujos disponibles",
+ "useCustom": "Usar “{{value}}”",
+ "addStream": "Añadir flujo"
+ },
+ "ptzPresets": {
+ "placeholder": "Selecciona o introduce un preajuste…",
+ "search": "Busca o introduce un preajuste…",
+ "noPresets": "No hay preajustes disponibles",
+ "available": "Preajustes de cámara",
+ "useCustom": "Usar “{{value}}”"
+ },
+ "defaultRole": {
+ "admin": "Admin",
+ "viewer": "Visualizador"
+ }
},
"globalConfig": {
"title": "Configuración global",
@@ -1818,7 +1962,8 @@
"addAudioCodec": "Añadir códec de audio",
"removeCodec": "Eliminar códec"
},
- "streamNumber": "Flujo {{index}}"
+ "streamNumber": "Flujo {{index}}",
+ "sourceNumber": "Origen {{index}}"
},
"configMessages": {
"birdseye": {
@@ -1855,7 +2000,13 @@
},
"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.",
+ "maxFramesSet": "Establecer un número máximo de fotogramas (frames) reemplaza el comportamiento predeterminado y desactiva el seguimiento de objetos estáticos. Hay muy pocas situaciones en las que esto sea necesario; utilícelo con precaución.",
+ "squareResolution": "Una resolución de detección cuadrada es poco habitual. El ancho y la altura de detección deberían coincidir con la relación de aspecto de tu cámara (por ejemplo, 16:9), no con las dimensiones del modelo de detección de objetos. Una relación de aspecto incorrecta puede distorsionar la imagen y reducir la precisión de la detección.",
+ "resolutionHigh": "Esta resolución de detección es superior a la recomendada y puede provocar un mayor consumo de recursos sin mejorar la precisión de la detección. Para la mayoría de las cámaras se recomienda una resolución de detección de 1080p o inferior.",
+ "globalResolutionMultipleCameras": "La resolución de detección global se establece al configurar varias cámaras. A menos que todas las cámaras compartan la misma resolución y relación de aspecto, se deben definir el ancho y la altura de detección en cada cámara, de modo que se ajusten a la relación de aspecto nativa de cada una."
},
"objects": {
"genaiNoDescriptionsProvider": "Debes configurar un proveedor GenAI con el rol 'descriptions' para que se generen descripciones."
@@ -1864,7 +2015,11 @@
"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."
+ },
+ "onvif": {
+ "autotrackingNoZones": "El seguimiento automático requiere al menos una zona. Define una zona para esta cámara en Máscaras / Zonas y, a continuación, establécela como zona obligatoria a continuación."
}
},
"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..512eb6ca88 100644
--- a/web/public/locales/et/common.json
+++ b/web/public/locales/et/common.json
@@ -141,7 +141,8 @@
"id": "Bahasa Indonesia (indoneesia keel)",
"ur": "اردو (urdu keel)",
"hr": "Hrvatski (horvaadi keel)",
- "bs": "Bosanski (bosnia keel)"
+ "bs": "Bosanski (bosnia keel)",
+ "zhHant": "繁體中文 (hiina keel traditsiooniliste hieroglüüfidega)"
},
"system": "Süsteem",
"systemMetrics": "Süsteemi meetrika",
@@ -316,5 +317,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/camera.json b/web/public/locales/et/components/camera.json
index 5c467f81cc..27cf0a2ede 100644
--- a/web/public/locales/et/components/camera.json
+++ b/web/public/locales/et/components/camera.json
@@ -67,7 +67,10 @@
"desc": "Vali kaamerad selle grupi jaoks."
},
"icon": "Ikoon",
- "success": "Kaameragrupp ({{name}}) on salvestatud."
+ "success": "Kaameragrupp ({{name}}) on salvestatud.",
+ "showAll": "Näita kõiki kaameragruppe",
+ "showLess": "Näita vähem",
+ "editGroups": "Muuda kaameragruppe"
},
"debug": {
"options": {
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..157daddb4c 100644
--- a/web/public/locales/et/config/cameras.json
+++ b/web/public/locales/et/config/cameras.json
@@ -18,5 +18,22 @@
"mode": {
"label": "Jälgimisrežiim"
}
+ },
+ "label": "Kaameraseadistus",
+ "semantic_search": {
+ "triggers": {
+ "threshold": {
+ "description": "Minimaalne sarnasuse punktiskoor (0-1), mis on vajalik selle päästiku käivitamiseks."
+ }
+ }
+ },
+ "lpr": {
+ "label": "Sõidukite numbrimärkide tuvastus",
+ "description": "Sõidukite numbrimärkide tuvastuse seadistus sisaldab tuvastuse lävendeid, vormindust ja teadaolevaid numbrimärke."
+ },
+ "review": {
+ "genai": {
+ "description": "Kontrollib generatiivse tehisaru kasutamist kirjelduste ja kokkuvõtete koostamiseks ülevaatamisele kuuluvate objektide jaoks."
+ }
}
}
diff --git a/web/public/locales/et/config/global.json b/web/public/locales/et/config/global.json
index ab44041b5c..adb9777008 100644
--- a/web/public/locales/et/config/global.json
+++ b/web/public/locales/et/config/global.json
@@ -6,5 +6,51 @@
"mode": {
"label": "Jälgimisrežiim"
}
+ },
+ "version": {
+ "label": "Praegune seadistuse versioon",
+ "description": "Aktiivse seadistuse numbriline või tekstiline versioon, mis aitab tuvastada vormingumuudatusi."
+ },
+ "classification": {
+ "bird": {
+ "threshold": {
+ "label": "Minimaalne punktiskoor",
+ "description": "Objekti määratlemiseks linnina vajalik mlassifitseerimise minimaalne punktiskoor."
+ }
+ },
+ "custom": {
+ "threshold": {
+ "label": "Punktiskoori lävend",
+ "description": "Punktiskoori lävend, mida kasutatakse klassifitseerimise oleku muutmiseks."
+ }
+ }
+ },
+ "semantic_search": {
+ "triggers": {
+ "threshold": {
+ "description": "Minimaalne sarnasuse punktiskoor (0-1), mis on vajalik selle päästiku käivitamiseks."
+ }
+ }
+ },
+ "face_recognition": {
+ "unknown_score": {
+ "label": "Tundmatu punktiskoori lävend"
+ }
+ },
+ "lpr": {
+ "label": "Sõidukite numbrimärkide tuvastus",
+ "description": "Sõidukite numbrimärkide tuvastuse seadistus sisaldab tuvastuse lävendeid, vormindust ja teadaolevaid numbrimärke.",
+ "enabled": {
+ "description": "Lülita sõidukite numbrimärkide tuvastus kõikide kaamerate jaoks sisse; seda saad kaamerakohaselt ka sürjutada."
+ }
+ },
+ "genai": {
+ "label": "Generatiivse tehisaru seadistus",
+ "description": "Seadistsued generatiivse tehisaru teenusepakkujate kasutamisel kirjelduste ja kokkuvõtete loomiseks ülevaatamisele kuuluvate objektide jaoks."
+ },
+ "review": {
+ "genai": {
+ "description": "Kontrollib generatiivse tehisaru kasutamist kirjelduste ja kokkuvõtete koostamiseks ülevaatamisele kuuluvate objektide jaoks."
+ }
}
}
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/chat.json b/web/public/locales/et/views/chat.json
index cf68fe1e85..ca3f7f6e4d 100644
--- a/web/public/locales/et/views/chat.json
+++ b/web/public/locales/et/views/chat.json
@@ -5,5 +5,6 @@
"placeholder": "Küsi mida iganes…",
"error": "Midagi läks valesti. Palun proovi uuesti.",
"processing": "Töötlen…",
- "toolsUsed": "Kasutatud: {{tools}}"
+ "toolsUsed": "Kasutatud: {{tools}}",
+ "similarity_score": "Sarnasus"
}
diff --git a/web/public/locales/et/views/classificationModel.json b/web/public/locales/et/views/classificationModel.json
index 93db04cba1..36a4ef618c 100644
--- a/web/public/locales/et/views/classificationModel.json
+++ b/web/public/locales/et/views/classificationModel.json
@@ -7,7 +7,7 @@
},
"documentTitle": "Klassifitseerimise mudelid - Frigate",
"details": {
- "scoreInfo": "Skoor näitab selle objekti kõigi tuvastuste keskmist klassifitseerimise usaldusväärsust.",
+ "scoreInfo": "Punktiskoor näitab selle objekti kõigi tuvastuste keskmist klassifitseerimise usaldusväärsust.",
"none": "Puudub",
"unknown": "Pole teada"
},
diff --git a/web/public/locales/et/views/explore.json b/web/public/locales/et/views/explore.json
index b3bdbef570..dee52f6e20 100644
--- a/web/public/locales/et/views/explore.json
+++ b/web/public/locales/et/views/explore.json
@@ -35,7 +35,9 @@
"zones": "Tsoonid",
"ratio": "Suhtarv",
"area": "Ala",
- "score": "Punktiskoor"
+ "score": "Punktiskoor",
+ "computedScore": "Arvutatud punktiskoor",
+ "topScore": "Suuremad punktiskoorid"
},
"external": "{{label}} on tuvastatud",
"heard": "{{label}} on kuuldud",
@@ -79,13 +81,34 @@
"mismatch_other": "Tuvastasin {{count}} võõrast objekti ja need on lisatud ülevaatamiseks. Need objektid kas ei ole piisavad häire või tuvastamise jaoks, aga ka võivad juba olla eemaldatud või kustutatud."
},
"title": "Vaata objekti üksikasju",
- "desc": "Vaata objekti üksikasju"
+ "desc": "Vaata objekti üksikasju",
+ "toast": {
+ "success": {
+ "updatedLPR": "Sõiduki numbrimärgi uuendamine õnnestus."
+ },
+ "error": {
+ "updatedLPRFailed": "Sõiduki numbrimärgi uuendamine ei õnnestunud: {{errorMessage}}"
+ }
+ }
},
"snapshotScore": {
- "label": "Hetkvõttete punktiskoor"
+ "label": "Hetkvõtete punktiskoor"
},
"regenerateFromSnapshot": "Loo uuesti hetkvõttest",
- "timestamp": "Ajatampel"
+ "timestamp": "Ajatampel",
+ "score": {
+ "label": "Punktiskoor"
+ },
+ "scoreInfo": "Punktiskoori teave",
+ "editLPR": {
+ "title": "Muuda sõiduki numbrimärki",
+ "desc": "Sisesta sõiduki numbrimärgi uus väärtus: {{label}}",
+ "descNoLabel": "Sisesta sõiduki numbrimärgi uus väärtus selle jälgitava objekti jaoks"
+ },
+ "recognizedLicensePlate": "Tuvastatud sõiduki numbrimärk",
+ "description": {
+ "aiTips": "Frigate ei küsi sinu generatiivse tehisaru teenusepakkujalt kirjeldust enne, kui jälgitava objekti elutsükkel on lõppenud."
+ }
},
"trackedObjectDetails": "Jälgitava objekti üksikasjad"
}
diff --git a/web/public/locales/et/views/faceLibrary.json b/web/public/locales/et/views/faceLibrary.json
index 64e8fb90e1..11a3fb104d 100644
--- a/web/public/locales/et/views/faceLibrary.json
+++ b/web/public/locales/et/views/faceLibrary.json
@@ -18,14 +18,16 @@
},
"toast": {
"error": {
- "addFaceLibraryFailed": "Näo sidumine nimega ei õnnestunud: {{errorMessage}}"
+ "addFaceLibraryFailed": "Näo sidumine nimega ei õnnestunud: {{errorMessage}}",
+ "updateFaceScoreFailed": "Näo punktiskoori uuendamine ei õnnestunud: {{errorMessage}}"
},
"success": {
"addFaceLibrary": "Lisamine Näoteeki õnnestus: {{name}}!",
"deletedFace_one": "{{count}} näo kustutamine õnnestus.",
"deletedFace_other": "{{count}} näo kustutamine õnnestus.",
"deletedName_one": "{{count}} näo kustutamine õnnestus.",
- "deletedName_other": "{{count}} näo kustutamine õnnestus."
+ "deletedName_other": "{{count}} näo kustutamine õnnestus.",
+ "updatedFaceScore": "Näo punktiskoori uuendamine õnnestus: {{name}} ({{score}})."
}
},
"deleteFaceAttempts": {
@@ -35,7 +37,7 @@
"details": {
"timestamp": "Ajatampel",
"unknown": "Pole teada",
- "scoreInfo": "Skoor on kõigi nägude hindete kaalutud keskmine, kus kaalukoefitsiendiks on iga pildi näo suurus."
+ "scoreInfo": "Punktiskoor on kõigi nägude hinnete kaalutud keskmine, kus kaalukoefitsiendiks on iga pildi näo suurus."
},
"uploadFaceImage": {
"title": "Laadi näopilt üles",
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/et/views/search.json b/web/public/locales/et/views/search.json
index 6780001fbe..6388029696 100644
--- a/web/public/locales/et/views/search.json
+++ b/web/public/locales/et/views/search.json
@@ -23,7 +23,13 @@
"search_type": "Otsingutüüp",
"time_range": "Ajavahemik",
"before": "Enne",
- "after": "Pärast"
+ "after": "Pärast",
+ "min_score": "Minimaalne punktiskoor",
+ "max_score": "Maksimaalne punktiskoor",
+ "min_speed": "Miinimumkiirus",
+ "max_speed": "Maksimumkiirus",
+ "recognized_license_plate": "Tuvastatud sõiduki numbrimärk",
+ "has_clip": "Klipp on olemas"
},
"searchType": {
"thumbnail": "Pisipilt",
@@ -32,9 +38,36 @@
"toast": {
"error": {
"beforeDateBeLaterAfter": "„Enne“ kuupäev peab olema varasem, kui „Pärast“ kuupäev.",
- "afterDatebeEarlierBefore": "„Pärast“ kuupäev peab olema hilisem, kui „Enne“ kuupäev."
+ "afterDatebeEarlierBefore": "„Pärast“ kuupäev peab olema hilisem, kui „Enne“ kuupäev.",
+ "minScoreMustBeLessOrEqualMaxScore": "Minimaalne punktiskoor peab olema väiksem või võrdne kui maksimaalne punktiskoor.",
+ "maxScoreMustBeGreaterOrEqualMinScore": "Maksimaalne punktiskoor peab olema suurem või võrdne kui minimaalne punktiskoor.",
+ "minSpeedMustBeLessOrEqualMaxSpeed": "Minimaalne kiirus peab olema väiksem või võrdne kui maksimaalne kiirus.",
+ "maxSpeedMustBeGreaterOrEqualMinSpeed": "Maksimaalne kiirus peab olema suurem või võrdne kui minimaalne kiirus."
}
+ },
+ "tips": {
+ "title": "Kuidas saad kasutada tekstifiltreid",
+ "desc": {
+ "text": "Filtrid aitavad sul otsingutulemusi kitsendada. Siin on juhised nende kasutamiseks sisestusväljal:",
+ "step1": "Sisesta filtri nimi, millele järgnev koolon (nt, „cameras:“).",
+ "step2": "Vali soovitatud väärtus või sisesta enda oma.",
+ "step3": "Kasuta mitmeid filtreid lisades neid üksteise järgi ning eraldades tühikuga.",
+ "step4": "Kuupäevafiltrid (before: ja after:) kasutavad {{DateFormat}} vormingut.",
+ "step5": "Ajavahemiku filter kasutab {{exampleTime}} vormingut.",
+ "step6": "Filtreid saad eemaldada klõpsates nende kõrval leiduvad märget „x“.",
+ "exampleLabel": "Näide:"
+ }
+ },
+ "header": {
+ "currentFilterType": "Filtri väärtused",
+ "noFilters": "Filtrid",
+ "activeFilters": "Aktiivsed filtrid"
}
},
- "trackedObjectId": "Jälgitava objekti tunnus"
+ "trackedObjectId": "Jälgitava objekti tunnus",
+ "similaritySearch": {
+ "title": "Sarnaste objektide otsing",
+ "active": "Sarnaste objektide otsing on aktiivne",
+ "clear": "Eemalda sarnaste objektide otsing"
+ }
}
diff --git a/web/public/locales/et/views/settings.json b/web/public/locales/et/views/settings.json
index a5b2c76700..4c2e46cd1a 100644
--- a/web/public/locales/et/views/settings.json
+++ b/web/public/locales/et/views/settings.json
@@ -115,11 +115,13 @@
"placeholder": "Sisesta oma senine salasõna"
},
"user": {
- "title": "Kasutajanimi"
+ "title": "Kasutajanimi",
+ "desc": "Lubatud on vaid tähed, numbrid, punktid ja alakriipsud."
}
},
"createUser": {
- "confirmPassword": "Palun kinnita oma uus salasõna"
+ "confirmPassword": "Palun kinnita oma uus salasõna",
+ "usernameOnlyInclude": "Kasutajanimes võivad olla vaid tähed, numbrid, punkt (.) või alakriips (_)"
},
"passwordSetting": {
"cannotBeEmpty": "Salasõna ei või jääda tühjaks",
@@ -213,6 +215,14 @@
"pathPlaceholder": "rtsp://...",
"roles": "Rollid"
}
+ },
+ "clone": {
+ "categories": {
+ "items": {
+ "lpr": "Sõidukite numbrimärkide tuvastus",
+ "genai": "Generatiivne tehisaru"
+ }
+ }
}
},
"notification": {
@@ -315,6 +325,10 @@
"form": {
"cameras": {
"title": "Kaamerad"
+ },
+ "role": {
+ "desc": "Lubatud on vaid tähed, numbrid, punktid ja alakriipsud.",
+ "roleOnlyInclude": "Rolli nimes võivad olla vaid tähed, numbrid, punkt (.) või alakriips (_)"
}
}
}
@@ -330,7 +344,36 @@
"notifications": "Teavitused",
"frigateplus": "Frigate+",
"cameraReview": "Ülevaatamine",
- "profiles": "Profiilid"
+ "profiles": "Profiilid",
+ "integrationLpr": "Sõidukite numbrimärkide tuvastus",
+ "cameraLpr": "Sõidukite numbrimärkide tuvastus",
+ "uiSettings": "Kasutajaliidese seadistused",
+ "globalDetect": "Objektide tuvastamine",
+ "globalRecording": "Salvestamine",
+ "globalSnapshots": "Hetkvõtted",
+ "globalFfmpeg": "FFmpeg",
+ "globalMotion": "Liikumise tuvastus",
+ "globalObjects": "Objektid",
+ "globalReview": "Ülevaatamine",
+ "globalAudioEvents": "Heli tuvastus",
+ "globalLivePlayback": "Reaalajas sisu taasesitus",
+ "globalTimestampStyle": "Ajatempli stiil",
+ "systemDatabase": "Andmebaas",
+ "systemTls": "TLS",
+ "systemAuthentication": "Autentimine",
+ "systemNetworking": "Võrgundus",
+ "systemProxy": "Proksiserver",
+ "systemUi": "Kasutajaliides",
+ "systemLogging": "Logimine",
+ "systemEnvironmentVariables": "Keskkonnamuutujad",
+ "systemTelemetry": "Telemeetria",
+ "systemBirdseye": "Vaade linnulennult",
+ "systemFfmpeg": "FFmpeg",
+ "systemDetectorsAndModel": "Tuvastamine ja mudelid",
+ "systemMqtt": "MQTT",
+ "systemGo2rtcStreams": "go2rtc voogedastus",
+ "integrationSemanticSearch": "Semantiline otsing",
+ "integrationGenerativeAi": "Generatiivne tehisaru"
},
"dialog": {
"unsavedChanges": {
@@ -370,6 +413,9 @@
},
"birdClassification": {
"title": "Lindude klassifikatsioon"
+ },
+ "licensePlateRecognition": {
+ "title": "Sõidukite numbrimärkide tuvastus"
}
},
"cameraReview": {
@@ -377,6 +423,13 @@
"title": "Ülevaatamine",
"alerts": "Hoiatused ",
"detections": "Tuvastamise tulemused "
+ },
+ "object_descriptions": {
+ "title": "Generatiivse tehisaru objektikirjeldused",
+ "desc": "Luba/keela ajutiselt selle kaamera jaoks generatiivse tehisaru objektikirjeldused kuni Frigate'i taaskäivitamiseni. Kui see on keelatud, ei küsita selle kaamera jälgitavate objektide kohta tehisintellekti poolt loodud kirjeldusi."
+ },
+ "review_descriptions": {
+ "title": "Generatiivne tehisaru ülevaatamisele kuuluva sisu kirjedlused"
}
},
"motionDetectionTuner": {
@@ -404,7 +457,10 @@
"dialog": {
"form": {
"name": {
- "title": "Nimi"
+ "title": "Nimi",
+ "error": {
+ "invalidCharacters": "Välja nimes võivad olla vaid tähed, numbrid, alakriipsud (_) või sidekriipsud (-)."
+ }
},
"type": {
"title": "Tüüp"
@@ -420,5 +476,26 @@
}
}
}
+ },
+ "profiles": {
+ "nameInvalid": "Lubatud on vaid väiketähed, numbrid ja alakriipsud"
+ },
+ "go2rtcStreams": {
+ "validation": {
+ "nameInvalid": "Voogedastuse nimes on lubatud vaid tähed, numbrid alakriipsud ja sidekriipsud"
+ }
+ },
+ "configForm": {
+ "sections": {
+ "lpr": "Sõidukite numbrimärkide tuvastus"
+ }
+ },
+ "configMessages": {
+ "detect": {
+ "disabled": "Objektide tuvastamine on lülitatud välja. Hetkepildid, läbivaatamisele kuuluvad objektid ja täiendavad funktsioonid, nagu näotuvastus, sõidukite numbrimärkide tuvastus ja generatiivne tehisintellekt, ei tööta."
+ },
+ "lpr": {
+ "vehicleNotTracked": "Sõidukite numbrimärkide tuvastus eeldab, et auto või mootorratas on jälgitav. Lülita menüüst Objektid sell kaamera jaoks sisse valikud „auto“ või „mootorratas“."
+ }
}
}
diff --git a/web/public/locales/et/views/system.json b/web/public/locales/et/views/system.json
index b3bbb33aa0..810899444f 100644
--- a/web/public/locales/et/views/system.json
+++ b/web/public/locales/et/views/system.json
@@ -10,7 +10,30 @@
},
"copy": {
"label": "Kopeeri lõikelauale",
- "success": "Logid on kopeeritud lõikelauale"
+ "success": "Logid on kopeeritud lõikelauale",
+ "error": "Logide kopeerimine lõikelauale ei õnnestunud"
+ },
+ "websocket": {
+ "filter": {
+ "cameras_count_one": "{{count}} kaamera",
+ "cameras_count_other": "{{count}} kaamerat"
+ },
+ "empty": "Ühtegi sõnumit pole veel hõivatud",
+ "count_one": "{{count}} sõnum",
+ "count_other": "{{count}} sõnumit"
+ },
+ "type": {
+ "label": "Tüüp",
+ "timestamp": "Ajatempel",
+ "tag": "Silt",
+ "message": "Sõnum"
+ },
+ "tips": "Logid on serverist voogedastamisel",
+ "toast": {
+ "error": {
+ "fetchingLogsFailed": "Viga logide laadimisel: {{errorMessage}}",
+ "whileStreamingLogs": "Viga logide voogedastamisel: {{errorMessage}}"
+ }
}
},
"title": "Süsteem"
diff --git a/web/public/locales/fa/common.json b/web/public/locales/fa/common.json
index 12a5a13eba..5cd5a1e1c9 100644
--- a/web/public/locales/fa/common.json
+++ b/web/public/locales/fa/common.json
@@ -102,7 +102,8 @@
"all": "همه",
"back": "برگشت به قبل",
"show": "نمایش {{item}}",
- "none": "هیچکدام"
+ "none": "هیچکدام",
+ "other": "دیگر"
},
"list": {
"many": "{{items}}، و {{last}}",
@@ -136,7 +137,7 @@
"enabled": "فعال",
"disable": "غیرفعال کردن",
"save": "ذخیره",
- "saving": "در حال ذخیره…",
+ "saving": "در حال ذخیرهسازی…",
"copy": "کپی",
"history": "تاریخچه",
"pictureInPicture": "تصویر در تصویر",
@@ -149,7 +150,18 @@
"continue": "ادامه",
"on": "روشن",
"edit": "ویرایش",
- "suspended": "تعلیقشده"
+ "suspended": "تعلیقشده",
+ "add": "افزودن",
+ "applying": "در حال اعمال…",
+ "undo": "برگرداندن",
+ "copiedToClipboard": "در کلیپبورد کپی شد",
+ "modified": "اصلاح شده",
+ "retry": "تلاش دوباره",
+ "resetToGlobal": "بازنشانی به حالت جهانی",
+ "resetToDefault": "بازنشانی به پیشفرض",
+ "saveAll": "ذخیره همه",
+ "savingAll": "ذخیرهسازی همه…",
+ "undoAll": "بازگردانی همه"
},
"menu": {
"systemMetrics": "شاخصهای سیستم",
@@ -197,7 +209,9 @@
"ur": "اردو (زبان اردو)",
"withSystem": {
"label": "برای زبان از تنظیمات سامانه استفاده کنید"
- }
+ },
+ "zhHant": "چینی سنتی",
+ "hr": "کرواسیایی"
},
"system": "سامانه",
"systemLogs": "لاگهای سامانه",
@@ -250,7 +264,11 @@
"anonymous": "ناشناس",
"logout": "خروج",
"setPassword": "تنظیم گذرواژه"
- }
+ },
+ "profiles": "پروفایلها",
+ "actions": "اقدامها",
+ "features": "ویژگیها",
+ "chat": "چت"
},
"toast": {
"copyUrlToClipboard": "نشانی اینترنتی در کلیپبورد کپی شد.",
@@ -259,7 +277,8 @@
"error": {
"title": "ذخیرهٔ تغییرات پیکربندی ناموفق بود: {{errorMessage}}",
"noMessage": "ذخیرهٔ تغییرات پیکربندی ناموفق بود"
- }
+ },
+ "success": "تغییرات پیکربندی با موفقیت ذخیره شد."
}
},
"role": {
@@ -294,5 +313,10 @@
"readTheDocumentation": "مستندات را بخوانید",
"information": {
"pixels": "{{area}}px"
+ },
+ "no_items": "هیچ چیزی یافت نشد",
+ "validation_errors": "خطاهای اعتبارسنجی",
+ "credentialField": {
+ "savedPlaceholder": "ذخیره شد — برای نگهداشت وضعیت کنونی، خالی بگذارید"
}
}
diff --git a/web/public/locales/fa/components/camera.json b/web/public/locales/fa/components/camera.json
index 35f7ec5177..a44533d29f 100644
--- a/web/public/locales/fa/components/camera.json
+++ b/web/public/locales/fa/components/camera.json
@@ -67,7 +67,10 @@
"desc": "گزینههای پخش زنده را برای داشبورد این گروه دوربین تغییر دهید. این تنظیمات مخصوص دستگاه/مرورگر هستند. "
},
"birdseye": "نمای پرنده"
- }
+ },
+ "showAll": "نمایش تمام گروه های دوربین",
+ "showLess": "نمایش کمتر",
+ "editGroups": "ویرایش گروه های دوربین"
},
"debug": {
"options": {
@@ -81,6 +84,7 @@
"zones": "ناحیهها",
"mask": "ماسک",
"motion": "حرکت",
- "regions": "مناطق"
+ "regions": "مناطق",
+ "paths": "مسیرها"
}
}
diff --git a/web/public/locales/fa/components/player.json b/web/public/locales/fa/components/player.json
index 38e543fb1f..f28e1a1edb 100644
--- a/web/public/locales/fa/components/player.json
+++ b/web/public/locales/fa/components/player.json
@@ -4,7 +4,8 @@
"noPreviewFoundFor": "هیچ پیشنمایشی برای {{cameraName}} پیدا نشد",
"submitFrigatePlus": {
"title": "این فریم به فریگیت+ ارسال شود؟",
- "submit": "ارسال"
+ "submit": "ارسال",
+ "previewError": "نمی توان پیش نمایش عکس فوری را بارگذاری کرد. ممکن است ضبط در این زمان در دسترس نباشد."
},
"livePlayerRequiredIOSVersion": "برای این نوع پخش زنده، iOS 17.1 یا بالاتر لازم است.",
"streamOffline": {
@@ -47,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "ارسال فریم به Frigate+ ناموفق بود"
}
- }
+ },
+ "cameraOff": "دوربین خاموش است"
}
diff --git a/web/public/locales/fa/config/global.json b/web/public/locales/fa/config/global.json
index 2e17a72a74..ea5ad48461 100644
--- a/web/public/locales/fa/config/global.json
+++ b/web/public/locales/fa/config/global.json
@@ -768,5 +768,35 @@
},
"mqtt": {
"label": "MQTT یک پروتکل تبادل پیام سبک ."
+ },
+ "version": {
+ "label": "نسخه فعلی config"
+ },
+ "safe_mode": {
+ "label": "حالت امن"
+ },
+ "environment_vars": {
+ "label": "متغیر های محیطی"
+ },
+ "logger": {
+ "label": "گزارش گیری",
+ "default": {
+ "label": "سطح گزارش گیری"
+ }
+ },
+ "auth": {
+ "label": "احراز هویت",
+ "enabled": {
+ "label": "فعال سازی احراز هویت"
+ },
+ "reset_admin_password": {
+ "label": "بازنشانی رمز ادمین"
+ },
+ "trusted_proxies": {
+ "label": "پراکسی های مورد اعتماد"
+ }
+ },
+ "database": {
+ "label": "پایگاه داده"
}
}
diff --git a/web/public/locales/fa/views/exports.json b/web/public/locales/fa/views/exports.json
index c280aa5538..922569bcb2 100644
--- a/web/public/locales/fa/views/exports.json
+++ b/web/public/locales/fa/views/exports.json
@@ -1,5 +1,5 @@
{
- "search": "یافتن",
+ "search": "جستجو",
"documentTitle": "گرفتن خروجی - فریگیت",
"noExports": "هیچ خروجی یافت نشد",
"deleteExport": "حذف خروجی",
diff --git a/web/public/locales/fa/views/faceLibrary.json b/web/public/locales/fa/views/faceLibrary.json
index 18b3cfaf06..7326d3859f 100644
--- a/web/public/locales/fa/views/faceLibrary.json
+++ b/web/public/locales/fa/views/faceLibrary.json
@@ -3,7 +3,7 @@
"addFace": "با بارگزاری اولین عکستان، یک مجموعه جدید به کتابخانه چهره اضافه کنید.",
"placeholder": "نامی برای این مجموعه وارد کنید",
"invalidName": "نام نامعتبر، نام ها فقط می توانند شامل حروف، اعداد، فاصله، آپستروف، زیرخط و خط فاصله باشند.",
- "nameCannotContainHash": "نام نمیتواند شامل # باشد ."
+ "nameCannotContainHash": "نام نمیتواند شامل # باشد."
},
"details": {
"timestamp": "زمان دقیق",
@@ -48,7 +48,11 @@
"title": "تشخیصهای اخیر",
"titleShort": "اخیر",
"aria": "تشخیصهای اخیر را انتخاب کنید",
- "empty": "تلاشِ اخیر برای تشخیص چهره وجود ندارد"
+ "empty": "تلاشِ اخیر برای تشخیص چهره وجود ندارد",
+ "emptyNoLibrary": {
+ "title": "یک صورت را آپلود کنید",
+ "description": "شما باید حداقل یک چهره به کتابخانه اضافه کنید تا عملکرد تشخیص چهره کار کند."
+ }
},
"deleteFaceLibrary": {
"title": "حذف نام",
@@ -76,7 +80,8 @@
"deletedName_other": "{{count}} چهره با موفقیت حذف شدند.",
"renamedFace": "نام چهره با موفقیت به {{name}} تغییر یافت",
"trainedFace": "آموزش چهره با موفقیت انجام شد.",
- "updatedFaceScore": "امتیاز چهره با موفقیت به {{name}} ( {{score}}) بهروزرسانی شد."
+ "updatedFaceScore": "امتیاز چهره با موفقیت به {{name}} ( {{score}}) بهروزرسانی شد.",
+ "reclassifiedFace": "کلاسه بندی مجدد چهره با موفقیت انجام شد."
},
"error": {
"uploadingImageFailed": "آپلود تصویر ناموفق بود: {{errorMessage}}",
@@ -85,7 +90,10 @@
"deleteNameFailed": "حذف نام ناموفق بود: {{errorMessage}}",
"renameFaceFailed": "تغییر نام چهره ناموفق بود: {{errorMessage}}",
"trainFailed": "آموزش ناموفق بود: {{errorMessage}}",
- "updateFaceScoreFailed": "بهروزرسانی امتیاز چهره ناموفق بود: {{errorMessage}}"
+ "updateFaceScoreFailed": "بهروزرسانی امتیاز چهره ناموفق بود: {{errorMessage}}",
+ "reclassifyFailed": "کلاسه بندی مجدد برای چهره: {{errorMessage}} دچار مشکل شد"
}
- }
+ },
+ "reclassifyFaceAs": "کلاسه بندی مجدد چهره به عنوان:",
+ "reclassifyFace": "کلاسه بندی مجدد چهره"
}
diff --git a/web/public/locales/fa/views/search.json b/web/public/locales/fa/views/search.json
index 007abe1068..1a72fe53c4 100644
--- a/web/public/locales/fa/views/search.json
+++ b/web/public/locales/fa/views/search.json
@@ -1,15 +1,15 @@
{
- "search": "یافتن",
+ "search": "جستجو",
"savedSearches": "جستجوهای ذخیره شده",
"searchFor": "جستجو برای {{inputValue}}",
"button": {
"clear": "پاک کردن جستجو",
- "save": "ذخیره جستوجو",
+ "save": "ذخیره جستجو",
"delete": "حذف جستجوی ذخیرهشده",
"filterInformation": "اطلاعات فیلتر",
"filterActive": "فیلترها فعالاند"
},
- "trackedObjectId": "شناسهٔ شیء ردیابیشده",
+ "trackedObjectId": "شناسهی شی ردیابیشده",
"filter": {
"label": {
"cameras": "دوربینها",
@@ -17,15 +17,15 @@
"sub_labels": "زیربرچسبها",
"attributes": "صفتها",
"search_type": "نوع جستجو",
- "time_range": "بازهٔ زمانی",
+ "time_range": "بازه زمانی",
"zones": "ناحیهها",
"before": "قبل از",
"after": "بعد از",
- "min_score": "حداقل امتیاز",
- "max_score": "حداکثر امتیاز",
- "min_speed": "حداقل سرعت",
- "max_speed": "حداکثر سرعت",
- "recognized_license_plate": "پلاک شناساییشده",
+ "min_score": "کمینه امتیاز",
+ "max_score": "بیشینه امتیاز",
+ "min_speed": "کمینه سرعت",
+ "max_speed": "بیشینه سرعت",
+ "recognized_license_plate": "پلاک شناسایی شده",
"has_clip": "دارای کلیپ",
"has_snapshot": "دارای عکس فوری"
},
@@ -40,7 +40,7 @@
}
},
"searchType": {
- "thumbnail": "پیشنمایش",
+ "thumbnail": "بندانگشتی",
"description": "توضیحات"
},
"tips": {
diff --git a/web/public/locales/fa/views/settings.json b/web/public/locales/fa/views/settings.json
index e69dd9a25f..3465fbf355 100644
--- a/web/public/locales/fa/views/settings.json
+++ b/web/public/locales/fa/views/settings.json
@@ -25,7 +25,8 @@
"users": "کاربران",
"roles": "نقشها",
"notifications": "اعلانها",
- "frigateplus": "فریگیت+"
+ "frigateplus": "فریگیت+",
+ "profiles": "پروفایلها"
},
"general": {
"title": "تنظیمات رابط کاربری",
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/camera.json b/web/public/locales/fr/components/camera.json
index 6204915d09..8387b902ec 100644
--- a/web/public/locales/fr/components/camera.json
+++ b/web/public/locales/fr/components/camera.json
@@ -68,7 +68,10 @@
"placeholder": "Choisissez un flux."
},
"birdseye": "Birdseye"
- }
+ },
+ "showAll": "Afficher tout les groupes de caméras",
+ "showLess": "Réduire l'affichage",
+ "editGroups": "Modifier les groupes de caméras"
},
"debug": {
"timestamp": "Horodatage",
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/fr/config/global.json b/web/public/locales/fr/config/global.json
index 1108b2d1b7..97093cc257 100644
--- a/web/public/locales/fr/config/global.json
+++ b/web/public/locales/fr/config/global.json
@@ -112,5 +112,8 @@
"label": "Rapport d'aspect minimal"
}
}
+ },
+ "audio_transcription": {
+ "label": "Transcription audio"
}
}
diff --git a/web/public/locales/fr/views/settings.json b/web/public/locales/fr/views/settings.json
index 3a45a6ef9c..d6891dc1d7 100644
--- a/web/public/locales/fr/views/settings.json
+++ b/web/public/locales/fr/views/settings.json
@@ -1377,6 +1377,54 @@
"inherit": "Hériter",
"enabled": "Activé",
"disabled": "Désactivé"
+ },
+ "clone": {
+ "target": {
+ "newNameLabel": "Nom de la caméra",
+ "newNamePlaceholder": "p.ex., porte_arriere ou Porte arrière",
+ "newNameRequired": "Le nom de la caméra est requis",
+ "newNameInvalid": "Nom de caméra invalide",
+ "newNameCollision": "Une caméra avec ce nom existe déjà",
+ "newStreamsForced": "Les flux sont toujours copiés pour une nouvelle caméra.",
+ "existingCamerasRadio": "Caméras existantes",
+ "allCameras": "Toutes les caméras",
+ "existingPlaceholder": "Sélectionnez au moins une caméra",
+ "existingDisabled": "Aucune autre caméra à copier vers"
+ },
+ "categories": {
+ "legend": "Paramètres à cloner",
+ "description": "Choisissez quels paramètres copier depuis la caméra source.",
+ "selectAll": "Sélectionner tout",
+ "selectNone": "Sélectionner aucun",
+ "resetDefaults": "Rétablir à la configuration d'usine",
+ "general": "Général",
+ "spatial": "Paramètres spatiaux",
+ "streams": "Flux",
+ "spatialWarning": "La résolution détectée ({{srcWidth}}x{{srcHeight}}) de la caméra source {{srcCamera}} diffère de : {{cameras}}. Les polygones peuvent ne pas être alignés sur ces caméras. Ces paramètres sont désactivés ; activer pour copier tel quel.",
+ "restartHint": "Redémarrage requis",
+ "items": {
+ "record": "En cours d'enregistrement",
+ "objects": "Objets",
+ "audio": "Détection audio",
+ "audio_transcription": "Transcription audio",
+ "notifications": "Notifications",
+ "mqtt": "MQTT",
+ "onvif": "ONVIF",
+ "face_recognition": "Reconnaissance faciale",
+ "semantic_search": "Recherche sémantique"
+ }
+ },
+ "footer": {
+ "submit": "Cloner",
+ "submitting": "Clonage…"
+ },
+ "toast": {
+ "success": "Paramètres copiés vers {{cameraName}}",
+ "successWithRestart": "Paramètres copiés vers {{cameraName}}. Redémarrez Frigate afin d'appliquer tous les changements.",
+ "successMulti_one": "Paramètres copiés vers {{count}} caméra",
+ "successMulti_many": "Paramètres copiés vers {{count}} caméras",
+ "successMulti_other": "Paramètres copiés vers {{count}} caméras"
+ }
}
},
"cameraReview": {
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..d738cdd080 100644
--- a/web/public/locales/id/views/settings.json
+++ b/web/public/locales/id/views/settings.json
@@ -4,64 +4,1950 @@
"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",
+ "cameraManagement": "Manajemen kamera",
"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.",
+ "resolutionShouldBeMultipleOfFour": "Untuk hasil terbaik, lebar dan tinggi deteksi sebaiknya merupakan kelipatan 4. Nilai genap lainnya dapat menyebabkan artefak visual atau distorsi ringan pada stream deteksi.",
+ "aspectRatioMismatch": "Lebar dan tinggi yang Anda masukkan tidak cocok dengan rasio aspek resolusi deteksi saat ini. Ini dapat menghasilkan gambar yang meregang atau terdistorsi.",
+ "maxFramesSet": "Menetapkan frame maksimum akan menimpa perilaku default dan menonaktifkan pelacakan objek diam. Hanya sedikit situasi yang memerlukan ini, gunakan dengan hati-hati.",
+ "squareResolution": "Resolusi deteksi berbentuk persegi tidak lazim. Lebar dan tinggi deteksi harus sesuai dengan rasio aspek kamera Anda, misalnya 16:9, bukan dimensi model deteksi objek. Rasio aspek yang tidak sesuai dapat meregangkan gambar dan mengurangi akurasi deteksi.",
+ "resolutionHigh": "Resolusi deteksi ini lebih tinggi daripada yang direkomendasikan dan dapat meningkatkan penggunaan sumber daya tanpa meningkatkan akurasi deteksi. Resolusi deteksi 1080p atau lebih rendah direkomendasikan untuk sebagian besar kamera.",
+ "globalResolutionMultipleCameras": "Resolusi deteksi global ditetapkan saat beberapa kamera dikonfigurasi. Kecuali semua kamera memiliki resolusi dan rasio aspek yang sama, lebar dan tinggi deteksi sebaiknya ditentukan per kamera agar sesuai dengan rasio aspek asli masing-masing kamera."
},
"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."
+ },
+ "onvif": {
+ "autotrackingNoZones": "Pelacakan otomatis memerlukan setidaknya satu zona. Tentukan zona untuk kamera ini di Masker / Zona, lalu tetapkan sebagai zona wajib di bawah."
}
+ },
+ "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://\" atau \"rtsps://\". 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, kendalikan status setiap kamera, serta atur penimpaan per profil dan jenis kamera. Untuk mengonfigurasi stream, deteksi, gerakan, dan pengaturan khusus kamera lainnya, pilih bagian terkait 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": "Status dan Detail 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}} diaktifkan. Restart Frigate untuk menerapkan.",
+ "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"
+ },
+ "label": "Status kamera",
+ "description": "Atur status operasi untuk setiap kamera.
Nyala: stream diproses secara normal.
Mati: mem jeda pemrosesan untuk sementara. Tidak tetap setelah Frigate dimulai ulang.
Nonaktif: menghentikan pemrosesan dan menyimpan perubahan ke konfigurasi Anda. Restart diperlukan untuk mengaktifkan kembali kamera yang dinonaktifkan.
Catatan: Menonaktifkan tidak memengaruhi restream go2rtc.
Seret pegangan untuk mengubah urutan kamera aktif sebagaimana tampil di seluruh UI, termasuk dasbor Live dan menu dropdown pemilihan kamera.",
+ "disabledSubheading": "Dinonaktifkan dalam konfigurasi",
+ "status": {
+ "on": "Nyala",
+ "off": "Mati",
+ "disabled": "Nonaktif"
+ },
+ "disableSuccess": "{{cameraName}} dinonaktifkan dan disimpan ke konfigurasi.",
+ "details": {
+ "edit": "Edit detail kamera",
+ "title": "Edit Detail Kamera",
+ "description": "Perbarui nama tampilan, URL eksternal, dan visibilitas yang digunakan untuk kamera ini di seluruh UI Frigate.",
+ "friendlyNameLabel": "Nama Tampilan",
+ "friendlyNameHelp": "Nama ramah yang ditampilkan untuk kamera ini di seluruh UI Frigate. Biarkan kosong untuk menggunakan ID kamera.",
+ "webuiUrlLabel": "URL Web UI Kamera",
+ "webuiUrlHelp": "URL untuk membuka web UI kamera langsung dari tampilan Debug. Biarkan kosong untuk menonaktifkan tautan.",
+ "webuiUrlInvalid": "Harus berupa URL yang valid (misalnya, https://example.com).",
+ "dashboardLabel": "Tampilkan di dasbor Live",
+ "dashboardHelp": "Tampilkan kamera ini di dasbor Live.",
+ "reviewLabel": "Tampilkan di Review",
+ "reviewHelp": "Tampilkan kamera ini di Review, termasuk filter kamera, review gerakan, dan tampilan riwayat."
+ }
+ },
+ "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": "Atur kamera mana yang dinyalakan atau dimatikan saat suatu profil diaktifkan. Kamera yang disetel ke \"Warisi\" akan mempertahankan status default-nya.",
+ "inherit": "Warisi",
+ "enabled": "Diaktifkan",
+ "disabled": "Dinonaktifkan",
+ "on": "Nyala",
+ "off": "Mati"
+ },
+ "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."
+ },
+ "clone": {
+ "sectionTitle": "Kloning pengaturan",
+ "sectionDescription": "Salin konfigurasi dari satu kamera ke kamera lain atau ke kamera baru.",
+ "button": "Kloning pengaturan",
+ "title": "Kloning pengaturan kamera",
+ "description": "Salin konfigurasi sebuah kamera ke satu atau lebih kamera lain atau ke kamera baru. Identitas (nama, nama ramah, URL web UI, urutan tampilan) tidak pernah disalin.",
+ "source": {
+ "label": "Kamera sumber",
+ "placeholder": "Pilih kamera sumber",
+ "required": "Pilih kamera sumber"
+ },
+ "target": {
+ "legend": "Target",
+ "newRadio": "Kamera baru",
+ "newNameLabel": "Nama kamera",
+ "newNamePlaceholder": "misalnya, pintu_belakang atau Pintu Belakang",
+ "newNameRequired": "Nama kamera wajib diisi",
+ "newNameInvalid": "Nama kamera tidak valid",
+ "newNameCollision": "Kamera dengan nama ini sudah ada",
+ "newStreamsForced": "Stream selalu disalin untuk kamera baru.",
+ "existingCamerasRadio": "Kamera yang sudah ada",
+ "allCameras": "Semua kamera",
+ "existingPlaceholder": "Pilih setidaknya satu kamera",
+ "existingDisabled": "Tidak ada kamera lain untuk disalin ke"
+ },
+ "categories": {
+ "legend": "Pengaturan untuk dikloning",
+ "description": "Pilih pengaturan mana yang akan disalin dari kamera sumber.",
+ "selectAll": "Pilih semua",
+ "selectNone": "Jangan pilih apa pun",
+ "resetDefaults": "Reset ke default",
+ "general": "Umum",
+ "spatial": "Pengaturan spasial",
+ "streams": "Stream",
+ "spatialWarningTitle": "Ketidakcocokan resolusi",
+ "spatialWarning": "Resolusi deteksi kamera sumber {{srcCamera}} ({{srcWidth}}×{{srcHeight}}) berbeda dengan: {{cameras}}. Poligon mungkin tidak sejajar pada kamera-kamera tersebut. Default untuk ini adalah nonaktif; aktifkan untuk menyalin apa adanya.",
+ "restartHint": "Perlu restart",
+ "items": {
+ "record": "Perekaman",
+ "snapshots": "Snapshot",
+ "review": "Review",
+ "motion": "Deteksi gerakan",
+ "objects": "Objek",
+ "audio": "Deteksi audio",
+ "audio_transcription": "Transkripsi audio",
+ "notifications": "Notifikasi",
+ "birdseye": "Birdseye",
+ "mqtt": "MQTT",
+ "timestamp_style": "Gaya stempel waktu",
+ "onvif": "ONVIF",
+ "lpr": "Pengenalan pelat nomor",
+ "face_recognition": "Pengenalan wajah",
+ "semantic_search": "Pencarian semantik",
+ "genai": "AI generatif",
+ "type": "Jenis kamera (normal / LPR khusus)",
+ "profiles": "Profil",
+ "detect": "Dimensi deteksi",
+ "zones": "Zona",
+ "motion_mask": "Masker gerakan",
+ "object_masks": "Masker objek",
+ "ffmpeg_live": "URL dan peran stream"
+ }
+ },
+ "footer": {
+ "changeCount_other": "{{count}} perubahan akan diterapkan",
+ "restartNeeded": "Restart akan diperlukan untuk beberapa perubahan.",
+ "liveOnly": "Semua perubahan akan diterapkan langsung tanpa restart.",
+ "submit": "Kloning",
+ "submitting": "Mengkloning…"
+ },
+ "toast": {
+ "success": "Pengaturan disalin ke {{cameraName}}",
+ "successWithRestart": "Pengaturan disalin ke {{cameraName}}. Restart Frigate untuk menerapkan semua perubahan.",
+ "successMulti_other": "Pengaturan disalin ke {{count}} kamera",
+ "successMultiWithRestart_other": "Pengaturan disalin ke {{count}} kamera. Restart Frigate untuk menerapkan semua perubahan.",
+ "partialFailure": "{{successCount}} bagian diterapkan; '{{failedSection}}' gagal: {{errorMessage}}",
+ "partialFailureMulti": "Disalin ke {{successCount}} kamera; gagal untuk {{failed}}: {{errorMessage}}",
+ "newCameraPartialFailure": "Kamera {{cameraName}} berhasil dibuat, tetapi beberapa pengaturan gagal disalin: {{errorMessage}}",
+ "sourceMissing": "Kamera sumber sudah tidak ada",
+ "submitError": "Gagal mengkloning kamera: {{errorMessage}}"
+ }
+ }
+ },
+ "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.",
+ "descPwa": "Di iOS, notifikasi push web hanya tersedia jika Frigate dipasang ke Layar Utama Anda. Buka menu Bagikan, pilih Tambahkan ke Layar Utama, lalu buka Frigate dari ikon baru tersebut untuk mendaftarkan perangkat ini agar menerima 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"
+ },
+ "liveStreams": {
+ "streamNameLabel": "Nama stream",
+ "streamNamePlaceholder": "misalnya, Stream HD Utama",
+ "go2rtcStreamLabel": "Stream go2rtc",
+ "go2rtcStreamPlaceholder": "Pilih stream go2rtc",
+ "go2rtcStreamSearch": "Cari atau masukkan nama stream…",
+ "noGo2rtcStreams": "Tidak ada stream go2rtc yang dikonfigurasi",
+ "availableStreams": "Stream yang tersedia",
+ "useCustom": "Gunakan \"{{value}}\"",
+ "addStream": "Tambahkan stream"
+ },
+ "semanticSearchModelSize": {
+ "notApplicable": "Tidak berlaku untuk penyedia GenAI"
+ },
+ "ptzPresets": {
+ "placeholder": "Pilih atau masukkan preset...",
+ "search": "Cari atau masukkan preset...",
+ "noPresets": "Tidak ada preset yang tersedia",
+ "available": "Preset kamera",
+ "useCustom": "Gunakan \"{{value}}\""
+ },
+ "defaultRole": {
+ "admin": "Admin",
+ "viewer": "Penampil"
+ }
+ },
+ "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"
+ },
+ "sourceNumber": "Sumber {{index}}"
+ },
+ "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..5394212350 100644
--- a/web/public/locales/it/common.json
+++ b/web/public/locales/it/common.json
@@ -222,7 +222,8 @@
"id": "Bahasa Indonesia (Indonesiano)",
"ur": "اردو (Urdu)",
"hr": "Hrvatski (Croato)",
- "bs": "Bosanski (Bosniaco)"
+ "bs": "Bosanski (Bosniaco)",
+ "zhHant": "繁體中文 (Cinese Tradizionale)"
},
"darkMode": {
"label": "Modalità scura",
@@ -333,5 +334,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/camera.json b/web/public/locales/it/components/camera.json
index 8dc27755dc..3188fea87d 100644
--- a/web/public/locales/it/components/camera.json
+++ b/web/public/locales/it/components/camera.json
@@ -68,7 +68,10 @@
"label": "Telecamere"
},
"icon": "Icona",
- "success": "Il gruppo di telecamere ({{name}}) è stato salvato."
+ "success": "Il gruppo di telecamere ({{name}}) è stato salvato.",
+ "showAll": "Mostra tutti i gruppi di telecamere",
+ "showLess": "Mostra meno",
+ "editGroups": "Modifica gruppi di telecamere"
},
"debug": {
"options": {
diff --git a/web/public/locales/it/components/player.json b/web/public/locales/it/components/player.json
index e8a1f5bbbf..0937860483 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": "La telecamera è spenta"
}
diff --git a/web/public/locales/it/config/cameras.json b/web/public/locales/it/config/cameras.json
index 01dddb58a1..e359290754 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",
@@ -50,7 +50,8 @@
},
"ffmpeg": {
"path": {
- "label": "Percorso FFmpeg"
+ "label": "Percorso FFmpeg",
+ "description": "Percorso del file binario FFmpeg da utilizzare o alias di versione (\"5.0\" o \"7.0\")."
},
"label": "FFmpeg",
"hwaccel_args": {
@@ -61,10 +62,58 @@
"hwaccel_args": {
"label": "Argomenti di accelerazione hardware",
"description": "Argomenti di accelerazione hardware per questo flusso di ingresso."
+ },
+ "global_args": {
+ "label": "Argomenti globali di FFmpeg",
+ "description": "Argomenti globali di FFmpeg per questo flusso di ingresso."
+ },
+ "input_args": {
+ "label": "Argomenti di ingresso",
+ "description": "Inserire gli argomenti specifici per questo flusso."
+ },
+ "label": "Ingressi della telecamera",
+ "description": "Elenco delle definizioni dei flussi di ingresso (percorsi e ruoli) per questa telecamera.",
+ "path": {
+ "label": "Percorso di ingresso",
+ "description": "URL o percorso del flusso di ingresso della telecamera."
+ },
+ "roles": {
+ "label": "Ruoli di ingresso",
+ "description": "Ruoli per questo flusso di ingresso."
}
},
"gpu": {
- "description": "Indice GPU predefinito utilizzato per l'accelerazione hardware, se disponibile."
+ "description": "Indice GPU predefinito utilizzato per l'accelerazione hardware, se disponibile.",
+ "label": "Indice GPU"
+ },
+ "description": "Impostazioni di FFmpeg, inclusi percorso binario, argomenti, opzioni hwaccel e argomenti di output per ruolo.",
+ "global_args": {
+ "label": "Argomenti globali di FFmpeg",
+ "description": "Argomenti globali passati ai processi FFmpeg."
+ },
+ "input_args": {
+ "label": "Argomenti di ingresso",
+ "description": "Argomenti di ingresso applicati ai flussi di ingresso di FFmpeg."
+ },
+ "output_args": {
+ "label": "Argomenti di uscita",
+ "description": "Argomenti di uscita predefiniti utilizzati per i diversi ruoli di FFmpeg, come rilevamento e registrazione.",
+ "detect": {
+ "label": "Rileva gli argomenti di uscita",
+ "description": "Argomenti di uscita predefiniti per il rilevamento dei flussi di ruolo."
+ },
+ "record": {
+ "label": "Registra gli argomenti di uscita",
+ "description": "Argomenti di uscita predefiniti per i flussi del ruolo di registrazione."
+ }
+ },
+ "retry_interval": {
+ "label": "Tempo di ripetizione FFmpeg",
+ "description": "Secondi di attesa prima di tentare di riconnettere un flusso video della telecamera dopo un errore. Il valore predefinito è 10."
+ },
+ "apple_compatibility": {
+ "label": "Compatibilità Apple",
+ "description": "Attiva l'aggiunta di tag HEVC per una migliore compatibilità con i lettori Apple durante la registrazione in formato H.265."
}
},
"audio_transcription": {
@@ -169,44 +218,415 @@
"threshold": {
"label": "Soglia stazionaria",
"description": "Numero di fotogrammi senza cambio di posizione necessari per contrassegnare un oggetto come stazionario."
+ },
+ "max_frames": {
+ "label": "Fotogrammi massimi",
+ "description": "Limita la durata del tracciamento degli oggetti statici prima che vengano scartati.",
+ "default": {
+ "description": "Numero massimo predefinito di fotogrammi per seguire un oggetto stazionario prima di interrompere la ripresa.",
+ "label": "Fotogrammi massimi predefiniti"
+ },
+ "objects": {
+ "label": "Fotogrammi massimi oggetto",
+ "description": "Opzioni di sovrascrittura per singolo oggetto relative al numero massimo di fotogrammi necessari per tracciare oggetti statici."
+ }
+ },
+ "classifier": {
+ "label": "Abilita il classificatore visivo",
+ "description": "Utilizza un classificatore visivo per rilevare oggetti realmente stazionari anche quando i riquadri di delimitazione sono instabili."
}
+ },
+ "annotation_offset": {
+ "label": "Differenza annotazione",
+ "description": "Millisecondi per spostare le annotazioni di rilevamento dello spostamento al fine di allineare meglio i riquadri di delimitazione della cronologia con le registrazioni; può essere positivo o negativo."
}
},
"face_recognition": {
- "label": "Riconoscimento facciale"
+ "label": "Riconoscimento facciale",
+ "description": "Impostazioni per il rilevamento e il riconoscimento facciale di questa telecamera.",
+ "enabled": {
+ "label": "Abilita il riconoscimento facciale",
+ "description": "Attiva o disattiva il riconoscimento facciale."
+ },
+ "min_area": {
+ "label": "Area minima del viso",
+ "description": "Area minima (in pixel) del riquadro del volto rilevato necessaria per tentare il riconoscimento."
+ }
},
"review": {
- "label": "Revisiona"
+ "label": "Revisione",
+ "description": "Impostazioni che controllano gli avvisi, i rilevamenti e i riepiloghi di revisione GenAI utilizzati dall'interfaccia utente (UI) e dall'archiviazione per questa telecamera.",
+ "alerts": {
+ "label": "Configurazione avvisi",
+ "description": "Impostazioni relative a quali oggetti tracciati generano avvisi e alle modalità di conservazione degli avvisi stessi.",
+ "enabled": {
+ "label": "Abilita avvisi",
+ "description": "Abilita o disabilita la generazione di avvisi per questa telecamera."
+ },
+ "labels": {
+ "label": "Etichette avvisi",
+ "description": "Elenco delle etichette oggetto che si qualificano come avvisi (ad esempio: car, person)."
+ },
+ "required_zones": {
+ "label": "Zone richieste",
+ "description": "Zone in cui un oggetto deve entrare per essere considerato un avviso; lascia vuoto per consentire qualsiasi zona."
+ },
+ "enabled_in_config": {
+ "label": "Stato avvisi originale",
+ "description": "Traccia se gli avvisi erano originariamente abilitati nella configurazione statica."
+ },
+ "cutoff_time": {
+ "label": "Tempo limite avvisi",
+ "description": "Secondi da attendere dopo l'assenza di attività che genera avvisi prima di interrompere un avviso."
+ }
+ },
+ "detections": {
+ "label": "Configurazione rilevamenti",
+ "description": "Impostazioni relative a quali oggetti tracciati generano rilevamenti (non avvisi) e alle modalità di conservazione dei rilevamenti stessi.",
+ "enabled": {
+ "label": "Abilita rilevamenti",
+ "description": "Abilita o disabilita gli eventi di rilevamento per questa telecamera."
+ },
+ "labels": {
+ "label": "Etichette rilevamenti",
+ "description": "Elenco delle etichette oggetto che si qualificano come eventi di rilevamento."
+ },
+ "required_zones": {
+ "label": "Zone richieste",
+ "description": "Zone in cui un oggetto deve entrare per essere considerato un rilevamento; lascia vuoto per consentire qualsiasi zona."
+ },
+ "cutoff_time": {
+ "label": "Tempo limite rilevamenti",
+ "description": "Secondi da attendere dopo l'assenza di attività che genera rilevamenti prima di interrompere un rilevamento."
+ },
+ "enabled_in_config": {
+ "label": "Stato rilevamenti originale",
+ "description": "Traccia se i rilevamenti erano originariamente abilitati nella configurazione statica."
+ }
+ },
+ "genai": {
+ "label": "Configurazione GenAI",
+ "description": "Controlla l'uso dell'IA generativa per la produzione di descrizioni e riepiloghi degli elementi di revisione.",
+ "enabled": {
+ "label": "Abilita descrizioni GenAI",
+ "description": "Abilita o disabilita le descrizioni e i riepiloghi generati dalla GenAI per gli elementi di revisione."
+ },
+ "alerts": {
+ "label": "Abilita GenAI per avvisi",
+ "description": "Usa la GenAI per generare descrizioni per gli elementi di avviso."
+ },
+ "detections": {
+ "label": "Abilita GenAI per rilevamenti",
+ "description": "Usa la GenAI per generare descrizioni per gli elementi di rilevamento."
+ },
+ "image_source": {
+ "label": "Fonte immagini di revisione",
+ "description": "Fonte delle immagini inviate alla GenAI ('anteprime' o 'registrazioni'); 'registrazioni' utilizza fotogrammi di qualità superiore ma consuma più token."
+ },
+ "additional_concerns": {
+ "label": "Ulteriori criteri di attenzione",
+ "description": "Un elenco di note o criteri di attenzione aggiuntivi che la GenAI deve considerare quando valuta l'attività su questa telecamera."
+ },
+ "debug_save_thumbnails": {
+ "label": "Salva miniature",
+ "description": "Salva le miniature inviate al provider GenAI per il debug e la revisione."
+ },
+ "enabled_in_config": {
+ "label": "Stato GenAI originale",
+ "description": "Traccia se la revisione GenAI era originariamente abilitata nella configurazione statica."
+ },
+ "preferred_language": {
+ "label": "Lingua preferita",
+ "description": "Lingua preferita da richiedere al provider GenAI per le risposte generate."
+ },
+ "activity_context_prompt": {
+ "label": "Prompt di contesto dell'attività",
+ "description": "Prompt personalizzato che descrive cosa costituisce o meno un'attività sospetta, per fornire contesto ai riepiloghi della GenAI."
+ }
+ }
},
"profiles": {
- "label": "Profili"
+ "label": "Profili",
+ "description": "Profili di configurazione denominati con sovrascritture parziali che possono essere attivati in fase di esecuzione."
},
"record": {
"label": "Registrazione",
"export": {
"description": "Impostazioni utilizzate durante l'esportazione delle registrazioni come timelapse e accelerazione hardware.",
"hwaccel_args": {
- "description": "Argomenti di accelerazione hardware da utilizzare per le operazioni di esportazione/transcodifica."
+ "description": "Argomenti di accelerazione hardware da utilizzare per le operazioni di esportazione/transcodifica.",
+ "label": "Argomenti hwaccel esportazione"
+ },
+ "label": "Configurazione esportazione",
+ "max_concurrent": {
+ "label": "Esportazioni simultanee massime",
+ "description": "Numero massimo di processi di esportazione da elaborare contemporaneamente."
}
+ },
+ "description": "Impostazioni di registrazione e conservazione per questa videocamera.",
+ "enabled": {
+ "label": "Abilita Registrazione",
+ "description": "Attiva o disattiva la registrazione per questa telecamera."
+ },
+ "expire_interval": {
+ "label": "Intervallo pulizia registrazioni",
+ "description": "Minuti tra i cicli di pulizia che rimuovono i segmenti di registrazione scaduti."
+ },
+ "continuous": {
+ "label": "Conservazione continua",
+ "description": "Numero di giorni per cui conservare le registrazioni, indipendentemente dagli oggetti tracciati o dal movimento. Impostare su 0 se si desidera conservare solo le registrazioni relative agli avvisi e ai rilevamenti.",
+ "days": {
+ "label": "Giorni di Conservazione",
+ "description": "Numero di giorni di conservazione delle registrazioni."
+ }
+ },
+ "motion": {
+ "label": "Conservazione movimento",
+ "description": "Numero di giorni per cui conservare le registrazioni attivate dal movimento, indipendentemente dagli oggetti tracciati. Impostare su 0 se si desidera conservare solo le registrazioni relative ad allarmi e rilevamenti.",
+ "days": {
+ "label": "Giorni di Conservazione",
+ "description": "Numero di giorni di conservazione delle registrazioni."
+ }
+ },
+ "detections": {
+ "label": "Conservazione rilevamento",
+ "description": "Impostazioni relative alla conservazione delle registrazioni per gli eventi di rilevamento, comprese le durate prima e dopo l'acquisizione.",
+ "pre_capture": {
+ "label": "Secondi di pre-acquisizione",
+ "description": "Numero di secondi precedenti l'evento di rilevamento da includere nella registrazione."
+ },
+ "post_capture": {
+ "label": "Secondi di post-acquisizione",
+ "description": "Numero di secondi successivi l'evento di rilevamento da includere nella registrazione."
+ },
+ "retain": {
+ "label": "Conservazione eventi",
+ "description": "Impostazioni di conservazione per le registrazioni degli eventi di rilevamento.",
+ "days": {
+ "label": "Giorni di conservazione",
+ "description": "Numero di giorni per cui conservare le registrazioni degli eventi di rilevamento."
+ },
+ "mode": {
+ "label": "Modalità di conservazione",
+ "description": "Modalità di conservazione: tutti (salva tutti i segmenti), movimento (salva i segmenti con movimento) o oggetti_attivi (salva i segmenti con oggetti attivi)."
+ }
+ }
+ },
+ "alerts": {
+ "label": "Conservazione avvisi",
+ "description": "Impostazioni di conservazione delle registrazioni per gli eventi di avviso, incluse le durate di pre e post-acquisizione.",
+ "pre_capture": {
+ "label": "Secondi di pre-acquisizione",
+ "description": "Numero di secondi antecedenti all'evento di rilevamento da includere nella registrazione."
+ },
+ "post_capture": {
+ "label": "Secondi di post-acquisizione",
+ "description": "Numero di secondi successivi all'evento di rilevamento da includere nella registrazione."
+ },
+ "retain": {
+ "label": "Conservazione eventi",
+ "description": "Impostazioni di conservazione per le registrazioni degli eventi di rilevamento.",
+ "days": {
+ "label": "Giorni di conservazione",
+ "description": "Numero di giorni per cui conservare le registrazioni degli eventi di rilevamento."
+ },
+ "mode": {
+ "label": "Modalità di conservazione",
+ "description": "Modalità di conservazione: tutti (salva tutti i segmenti), movimento (salva i segmenti con movimento) o oggetti_attivi (salva i segmenti con oggetti attivi)."
+ }
+ }
+ },
+ "preview": {
+ "label": "Configurazione anteprima",
+ "description": "Impostazioni che controllano la qualità delle anteprime di registrazione mostrate nell'interfaccia utente (UI).",
+ "quality": {
+ "label": "Qualità anteprima",
+ "description": "Livello di qualità dell'anteprima (very_low, low, medium, high, very_high)."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Stato registrazione originale",
+ "description": "Indica se la registrazione era abilitata nella configurazione statica originale."
}
},
"snapshots": {
- "label": "Istantanee"
+ "label": "Istantanee",
+ "description": "Impostazioni per le istantanee generate via API degli oggetti tracciati per questa telecamera.",
+ "enabled": {
+ "label": "Abilita istantanee",
+ "description": "Abilita o disabilita il salvataggio delle istantanee per questa telecamera."
+ },
+ "timestamp": {
+ "label": "Sovrimpressione timestamp",
+ "description": "Sovraimprime un timestamp sulle istantanee provenienti dalle API."
+ },
+ "bounding_box": {
+ "label": "Sovrimpressione riquadro di delimitazione"
+ }
},
"motion": {
"label": "Rilevamento movimento",
"contour_area": {
- "label": "Area di contorno"
+ "label": "Area di contorno",
+ "description": "Area minima del contorno in pixel richiesta affinché un contorno di movimento venga conteggiato."
},
"improve_contrast": {
- "label": "Migliora il contrasto"
+ "label": "Migliora il contrasto",
+ "description": "Applica un miglioramento del contrasto ai fotogrammi prima dell'analisi del movimento per facilitare il rilevamento."
+ },
+ "description": "Impostazioni predefinite per il rilevamento del movimento di questa telecamera.",
+ "enabled": {
+ "label": "Attiva il rilevamento del movimento",
+ "description": "Attiva o disattiva il rilevamento di movimento per questa telecamera."
+ },
+ "threshold": {
+ "label": "Soglia di movimento",
+ "description": "Soglia di differenza tra i pixel utilizzata dal rilevatore di movimento; valori più alti riducono la sensibilità (intervallo 1-255)."
+ },
+ "lightning_threshold": {
+ "label": "Soglia di luminosità",
+ "description": "Soglia per rilevare e ignorare brevi picchi di luminosità (un valore più basso indica una maggiore sensibilità; i valori sono compresi tra 0.3 e 1.0). Ciò non impedisce del tutto il rilevamento del movimento, ma fa semplicemente sì che il rilevatore smetta di analizzare i fotogrammi successivi una volta superata la soglia. Durante questi eventi vengono comunque create registrazioni basate sul movimento."
+ },
+ "skip_motion_threshold": {
+ "label": "Ignora soglia di movimento",
+ "description": "Se impostato su un valore compreso tra 0.0 e 110, e se in un singolo fotogramma cambia una porzione dell'immagine superiore a tale frazione, il rilevatore non restituirà alcun riquadro di movimento e si ricalibrerà immediatamente. Ciò consente di risparmiare risorse della CPU e ridurre i falsi positivi in caso di fulmini, temporali, ecc., ma potrebbe comportare la mancata rilevazione di eventi reali, come ad esempio il tracciamento automatico di un oggetto da parte di una telecamera PTZ. Il compromesso consiste nel scegliere se sacrificare alcuni megabyte di registrazioni o rivedere un paio di brevi video. Lasciare non impostato (Nessuno) per disabilitare questa funzione."
+ },
+ "delta_alpha": {
+ "description": "Fattore di fusione alfa utilizzato nel calcolo della differenza tra fotogrammi per il calcolo del movimento."
+ },
+ "frame_alpha": {
+ "description": "Valore alfa utilizzato durante la fusione dei fotogrammi per la preelaborazione del movimento."
+ },
+ "frame_height": {
+ "label": "Altezza del frame",
+ "description": "Altezza in pixel alla quale ridimensionare i fotogrammi durante il calcolo del movimento."
+ },
+ "mask": {
+ "label": "Coordinate della maschera",
+ "description": "Coordinate x, y ordinate che definiscono il poligono della maschera di movimento utilizzato per includere/escludere aree."
+ },
+ "mqtt_off_delay": {
+ "label": "Ritardo di disattivazione MQTT",
+ "description": "Secondi di attesa dopo l'ultimo movimento prima di pubblicare uno stato 'off' MQTT."
+ },
+ "enabled_in_config": {
+ "description": "Indica se il rilevamento del movimento era abilitato nella configurazione statica originale."
+ },
+ "raw_mask": {
+ "label": "Maschera grezza"
}
},
"objects": {
- "label": "Oggetti"
+ "label": "Oggetti",
+ "description": "Impostazioni predefinite per il tracciamento degli oggetti, tra cui le etichette da tracciare e i filtri per singolo oggetto.",
+ "track": {
+ "label": "Oggetti da tracciare",
+ "description": "Elenco delle etichette degli oggetti da tracciare per questa telecamera."
+ },
+ "filters": {
+ "label": "Filtri oggetto",
+ "description": "Filtri applicati agli oggetti rilevati per ridurre i falsi positivi (area, rapporto, livello di confidenza).",
+ "min_area": {
+ "label": "Area minima dell'oggetto",
+ "description": "Area minima del riquadro di delimitazione (in pixel o percentuale) richiesta per questo tipo di oggetto. Può essere espressa in pixel (numero intero) o in percentuale (valore decimale compreso tra 0.000001 e 0.99)."
+ },
+ "max_area": {
+ "label": "Area massima dell'oggetto",
+ "description": "Area massima del riquadro di delimitazione (in pixel o percentuale) richiesta per questo tipo di oggetto. Può essere espressa in pixel (numero intero) o in percentuale (valore decimale compreso tra 0.000001 e 0.99)."
+ },
+ "min_ratio": {
+ "label": "Rapporto di aspetto minimo",
+ "description": "Rapporto minimo tra larghezza e altezza richiesto affinché il riquadro di delimitazione sia valido."
+ },
+ "max_ratio": {
+ "label": "Rapporto di aspetto massimo",
+ "description": "Rapporto massimo tra larghezza e altezza richiesto affinché il riquadro di delimitazione sia valido."
+ },
+ "threshold": {
+ "label": "Soglia di confidenza",
+ "description": "Soglia di confidenza media di rilevamento necessaria affinché l'oggetto sia considerato un vero positivo."
+ },
+ "min_score": {
+ "label": "Confidenza minima",
+ "description": "Livello minimo di confidenza del rilevamento per singolo fotogramma richiesto affinché l'oggetto venga conteggiato."
+ },
+ "mask": {
+ "label": "Maschera filtro",
+ "description": "Coordinate del poligono che definisce l'area all'interno dell'inquadratura in cui si applica questo filtro."
+ },
+ "raw_mask": {
+ "label": "Maschera grezza"
+ }
+ },
+ "mask": {
+ "label": "Maschera oggetto",
+ "description": "Poligono di maschera utilizzato per impedire il rilevamento di oggetti in aree specificate."
+ },
+ "genai": {
+ "label": "Configurazione degli oggetti GenAI",
+ "description": "Opzioni GenAI per la descrizione degli oggetti tracciati e l'invio dei fotogrammi per la generazione.",
+ "enabled": {
+ "label": "Abilita GenAI",
+ "description": "Abilita di default la generazione tramite GenAI delle descrizioni degli oggetti monitorati."
+ },
+ "use_snapshot": {
+ "label": "Usa istantanee",
+ "description": "Utilizza le istantanee degli oggetti anziché le miniature per la generazione di descrizioni con GenAI."
+ },
+ "prompt": {
+ "description": "Modello di prompt predefinito utilizzato per la generazione di descrizioni con GenAI."
+ },
+ "object_prompts": {
+ "description": "Prompt specifici per ogni oggetto per personalizzare i risultati di GenAI in base a etichette specifiche."
+ },
+ "objects": {
+ "label": "Oggetti GenAI",
+ "description": "Elenco delle etichette degli oggetti da inviare a GenAI per impostazione predefinita."
+ },
+ "required_zones": {
+ "label": "Zone obbligatorie",
+ "description": "Zone che devono essere inserite affinché gli oggetti possano essere utilizzati per la generazione di descrizioni tramite GenAI."
+ },
+ "debug_save_thumbnails": {
+ "label": "Salva miniature",
+ "description": "Salva le miniature inviate a GenAI per il debug e la revisione."
+ },
+ "send_triggers": {
+ "label": "Attivatori GenAI",
+ "description": "Definisce quando i frame devono essere inviati a GenAI (al termine, dopo gli aggiornamenti, ecc.).",
+ "tracked_object_end": {
+ "label": "Invia alla fine",
+ "description": "Invia una richiesta a GenAI quando l'oggetto tracciato termina."
+ },
+ "after_significant_updates": {
+ "label": "Attivazione anticipata GenAI",
+ "description": "Invia una richiesta a GenAI dopo un numero specificato di aggiornamenti significativi per l'oggetto tracciato."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Stato GenAI originale",
+ "description": "Indica se GenAI era abilitata nella configurazione statica originale."
+ }
+ },
+ "raw_mask": {
+ "label": "Maschera grezza"
+ }
},
"live": {
- "label": "Riproduzione in diretta"
+ "label": "Riproduzione in diretta",
+ "description": "Impostazioni utilizzate dall'interfaccia web per controllare la selezione, la risoluzione e la qualità della trasmissione Dal vivo.",
+ "streams": {
+ "label": "Nomi dei flussi Dal vivo",
+ "description": "Mappatura dei nomi dei flussi configurati ai nomi ritrasmissioni/go2rtc utilizzati per la riproduzione dal vivo."
+ },
+ "height": {
+ "label": "Altezza dal vivo",
+ "description": "Altezza (in pixel) per visualizzare il flusso dal vivo jsmpeg nell'interfaccia utente web; deve essere <= altezza del flusso rilevato."
+ },
+ "quality": {
+ "label": "Qualità dal vivo",
+ "description": "Qualità di codifica per il flusso jsmpeg (1 massima, 31 minima)."
+ }
},
"timestamp_style": {
"label": "Stile orario"
@@ -248,11 +668,54 @@
"semantic_search": {
"label": "Ricerca semantica",
"triggers": {
- "label": "Inneschi"
- }
+ "label": "Attivatori",
+ "friendly_name": {
+ "label": "Nome descrittivo",
+ "description": "Nome descrittivo opzionale visualizzato nell'interfaccia utente per questo innesco."
+ },
+ "description": "Azioni e criteri di corrispondenza per gli attivatori della ricerca semantica specifici della telecamera.",
+ "enabled": {
+ "label": "Abilita questo attivatore",
+ "description": "Abilita o disabilita questo attivatore della ricerca semantica."
+ },
+ "type": {
+ "label": "Tipo di attivatore",
+ "description": "Tipo di attivatore: 'miniatura' (corrispondenza con immagine) o 'descrizione' (corrispondenza con testo)."
+ },
+ "data": {
+ "label": "Contenuto dell'attivatore",
+ "description": "Frase di testo o ID della miniatura da confrontare con gli oggetti tracciati."
+ },
+ "threshold": {
+ "label": "Soglia dell'attivatore",
+ "description": "Punteggio minimo di somiglianza (0-1) richiesto per attivare questo attivatore."
+ },
+ "actions": {
+ "label": "Azioni dell'attivatore",
+ "description": "Elenco delle azioni da eseguire quando l'attivatore trova una corrispondenza (notification, sub_label, attribute)."
+ }
+ },
+ "description": "Impostazioni per la ricerca semantica, che crea e interroga gli embedding degli oggetti per trovare elementi simili."
},
"lpr": {
- "label": "Riconoscimento targhe"
+ "label": "Riconoscimento targhe",
+ "description": "Impostazioni di riconoscimento delle targhe, incluse le soglie di rilevamento, la formattazione e le targhe conosciute.",
+ "enabled": {
+ "label": "Abilita riconoscimento delle targhe (LPR)",
+ "description": "Attiva o disattiva il riconoscimento delle targhe (LPR) su questa telecamera."
+ },
+ "expire_time": {
+ "label": "Scadenza in secondi",
+ "description": "Tempo in secondi trascorso dopo il quale una targa non identificata viene rimossa dal sistema di tracciamento (solo per telecamere LPR dedicate)."
+ },
+ "min_area": {
+ "label": "Area minima della targa",
+ "description": "Area minima della targa (in pixel) richiesta per tentare il riconoscimento."
+ },
+ "enhancement": {
+ "label": "Livello di miglioramento",
+ "description": "Livello di miglioramento (0-10) da applicare alle immagini delle targhe prima dell'OCR; valori più elevati potrebbero non migliorare sempre i risultati; i livelli superiori a 5 potrebbero funzionare solo con immagini di targhe scattate di notte e devono essere utilizzati con cautela."
+ }
},
"ui": {
"description": "Visualizza l'ordine e la visibilità di questa telecamera nell'interfaccia utente. L'ordine influisce sul cruscotto predefinito. Per un controllo più granulare, utilizza i gruppi di telecamere.",
@@ -269,7 +732,16 @@
"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."
+ },
+ "filters": {
+ "raw_mask": {
+ "label": "Maschera grezza"
+ }
+ }
},
"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..6ced91737b 100644
--- a/web/public/locales/it/config/global.json
+++ b/web/public/locales/it/config/global.json
@@ -89,16 +89,22 @@
"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": {
"path": {
- "label": "Percorso FFmpeg"
+ "label": "Percorso FFmpeg",
+ "description": "Percorso del file binario FFmpeg da utilizzare o alias di versione (\"5.0\" o \"7.0\")."
},
"label": "FFmpeg",
"hwaccel_args": {
@@ -109,10 +115,58 @@
"hwaccel_args": {
"label": "Argomenti di accelerazione hardware",
"description": "Argomenti di accelerazione hardware per questo flusso di ingresso."
+ },
+ "global_args": {
+ "label": "Argomenti globali di FFmpeg",
+ "description": "Argomenti globali di FFmpeg per questo flusso di ingresso."
+ },
+ "input_args": {
+ "label": "Argomenti di ingresso",
+ "description": "Inserire gli argomenti specifici per questo flusso."
+ },
+ "label": "Ingressi della telecamera",
+ "description": "Elenco delle definizioni dei flussi di ingresso (percorsi e ruoli) per questa telecamera.",
+ "path": {
+ "label": "Percorso di ingresso",
+ "description": "URL o percorso del flusso di ingresso della telecamera."
+ },
+ "roles": {
+ "label": "Ruoli di ingresso",
+ "description": "Ruoli per questo flusso di ingresso."
}
},
"gpu": {
- "description": "Indice GPU predefinito utilizzato per l'accelerazione hardware, se disponibile."
+ "description": "Indice GPU predefinito utilizzato per l'accelerazione hardware, se disponibile.",
+ "label": "Indice GPU"
+ },
+ "description": "Impostazioni di FFmpeg, inclusi percorso binario, argomenti, opzioni hwaccel e argomenti di output per ruolo.",
+ "global_args": {
+ "label": "Argomenti globali di FFmpeg",
+ "description": "Argomenti globali passati ai processi FFmpeg."
+ },
+ "input_args": {
+ "label": "Argomenti di ingresso",
+ "description": "Argomenti di ingresso applicati ai flussi di ingresso di FFmpeg."
+ },
+ "output_args": {
+ "label": "Argomenti di uscita",
+ "description": "Argomenti di uscita predefiniti utilizzati per i diversi ruoli di FFmpeg, come rilevamento e registrazione.",
+ "detect": {
+ "label": "Rileva gli argomenti di uscita",
+ "description": "Argomenti di uscita predefiniti per il rilevamento dei flussi di ruolo."
+ },
+ "record": {
+ "label": "Registra gli argomenti di uscita",
+ "description": "Argomenti di uscita predefiniti per i flussi del ruolo di registrazione."
+ }
+ },
+ "retry_interval": {
+ "label": "Tempo di ripetizione FFmpeg",
+ "description": "Secondi di attesa prima di tentare di riconnettere un flusso video della telecamera dopo un errore. Il valore predefinito è 10."
+ },
+ "apple_compatibility": {
+ "label": "Compatibilità Apple",
+ "description": "Attiva l'aggiunta di tag HEVC per una migliore compatibilità con i lettori Apple durante la registrazione in formato H.265."
}
},
"detectors": {
@@ -294,13 +348,40 @@
"threshold": {
"label": "Soglia stazionaria",
"description": "Numero di fotogrammi senza cambio di posizione necessari per contrassegnare un oggetto come stazionario."
+ },
+ "max_frames": {
+ "label": "Fotogrammi massimi",
+ "description": "Limita la durata del tracciamento degli oggetti statici prima che vengano scartati.",
+ "default": {
+ "description": "Numero massimo predefinito di fotogrammi per seguire un oggetto stazionario prima di interrompere la ripresa.",
+ "label": "Fotogrammi massimi predefiniti"
+ },
+ "objects": {
+ "label": "Fotogrammi massimi oggetto",
+ "description": "Opzioni di sovrascrittura per singolo oggetto relative al numero massimo di fotogrammi necessari per tracciare oggetti statici."
+ }
+ },
+ "classifier": {
+ "label": "Abilita il classificatore visivo",
+ "description": "Utilizza un classificatore visivo per rilevare oggetti realmente stazionari anche quando i riquadri di delimitazione sono instabili."
}
+ },
+ "annotation_offset": {
+ "label": "Differenza annotazione",
+ "description": "Millisecondi per spostare le annotazioni di rilevamento dello spostamento al fine di allineare meglio i riquadri di delimitazione della cronologia con le registrazioni; può essere positivo o negativo."
}
},
"face_recognition": {
"label": "Riconoscimento facciale",
"model_size": {
"label": "Dimensioni del modello"
+ },
+ "enabled": {
+ "label": "Abilita il riconoscimento facciale"
+ },
+ "min_area": {
+ "label": "Area minima del viso",
+ "description": "Area minima (in pixel) del riquadro del volto rilevato necessaria per tentare il riconoscimento."
}
},
"proxy": {
@@ -336,41 +417,381 @@
}
},
"review": {
- "label": "Revisiona"
+ "label": "Revisione",
+ "alerts": {
+ "label": "Configurazione avvisi",
+ "description": "Impostazioni relative a quali oggetti tracciati generano avvisi e alle modalità di conservazione degli avvisi stessi.",
+ "enabled": {
+ "label": "Abilita avvisi"
+ },
+ "labels": {
+ "label": "Etichette avvisi",
+ "description": "Elenco delle etichette oggetto che si qualificano come avvisi (ad esempio: car, person)."
+ },
+ "required_zones": {
+ "label": "Zone richieste",
+ "description": "Zone in cui un oggetto deve entrare per essere considerato un avviso; lascia vuoto per consentire qualsiasi zona."
+ },
+ "enabled_in_config": {
+ "label": "Stato avvisi originale",
+ "description": "Traccia se gli avvisi erano originariamente abilitati nella configurazione statica."
+ },
+ "cutoff_time": {
+ "label": "Tempo limite avvisi",
+ "description": "Secondi da attendere dopo l'assenza di attività che genera avvisi prima di interrompere un avviso."
+ }
+ },
+ "detections": {
+ "label": "Configurazione rilevamenti",
+ "description": "Impostazioni relative a quali oggetti tracciati generano rilevamenti (non avvisi) e alle modalità di conservazione dei rilevamenti stessi.",
+ "enabled": {
+ "label": "Abilita rilevamenti"
+ },
+ "labels": {
+ "label": "Etichette rilevamenti",
+ "description": "Elenco delle etichette oggetto che si qualificano come eventi di rilevamento."
+ },
+ "required_zones": {
+ "label": "Zone richieste",
+ "description": "Zone in cui un oggetto deve entrare per essere considerato un rilevamento; lascia vuoto per consentire qualsiasi zona."
+ },
+ "cutoff_time": {
+ "label": "Tempo limite rilevamenti",
+ "description": "Secondi da attendere dopo l'assenza di attività che genera rilevamenti prima di interrompere un rilevamento."
+ },
+ "enabled_in_config": {
+ "label": "Stato rilevamenti originale",
+ "description": "Traccia se i rilevamenti erano originariamente abilitati nella configurazione statica."
+ }
+ },
+ "genai": {
+ "label": "Configurazione GenAI",
+ "description": "Controlla l'uso dell'IA generativa per la produzione di descrizioni e riepiloghi degli elementi di revisione.",
+ "enabled": {
+ "label": "Abilita descrizioni GenAI",
+ "description": "Abilita o disabilita le descrizioni e i riepiloghi generati dalla GenAI per gli elementi di revisione."
+ },
+ "alerts": {
+ "label": "Abilita GenAI per avvisi",
+ "description": "Usa la GenAI per generare descrizioni per gli elementi di avviso."
+ },
+ "detections": {
+ "label": "Abilita GenAI per rilevamenti",
+ "description": "Usa la GenAI per generare descrizioni per gli elementi di rilevamento."
+ },
+ "image_source": {
+ "label": "Fonte immagini di revisione",
+ "description": "Fonte delle immagini inviate alla GenAI ('anteprime' o 'registrazioni'); 'registrazioni' utilizza fotogrammi di qualità superiore ma consuma più token."
+ },
+ "additional_concerns": {
+ "label": "Ulteriori criteri di attenzione",
+ "description": "Un elenco di note o criteri di attenzione aggiuntivi che la GenAI deve considerare quando valuta l'attività su questa telecamera."
+ },
+ "debug_save_thumbnails": {
+ "label": "Salva miniature",
+ "description": "Salva le miniature inviate al provider GenAI per il debug e la revisione."
+ },
+ "enabled_in_config": {
+ "label": "Stato GenAI originale",
+ "description": "Traccia se la revisione GenAI era originariamente abilitata nella configurazione statica."
+ },
+ "preferred_language": {
+ "label": "Lingua preferita",
+ "description": "Lingua preferita da richiedere al provider GenAI per le risposte generate."
+ },
+ "activity_context_prompt": {
+ "label": "Prompt di contesto dell'attività",
+ "description": "Prompt personalizzato che descrive cosa costituisce o meno un'attività sospetta, per fornire contesto ai riepiloghi della GenAI."
+ }
+ }
},
"ui": {
"label": "Interfaccia utente",
"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",
"export": {
"description": "Impostazioni utilizzate durante l'esportazione delle registrazioni come timelapse e accelerazione hardware.",
"hwaccel_args": {
- "description": "Argomenti di accelerazione hardware da utilizzare per le operazioni di esportazione/transcodifica."
+ "description": "Argomenti di accelerazione hardware da utilizzare per le operazioni di esportazione/transcodifica.",
+ "label": "Argomenti hwaccel esportazione"
+ },
+ "label": "Configurazione esportazione",
+ "max_concurrent": {
+ "label": "Esportazioni simultanee massime",
+ "description": "Numero massimo di processi di esportazione da elaborare contemporaneamente."
}
+ },
+ "enabled": {
+ "label": "Abilita Registrazione"
+ },
+ "expire_interval": {
+ "label": "Intervallo pulizia registrazioni",
+ "description": "Minuti tra i cicli di pulizia che rimuovono i segmenti di registrazione scaduti."
+ },
+ "continuous": {
+ "label": "Conservazione continua",
+ "description": "Numero di giorni per cui conservare le registrazioni, indipendentemente dagli oggetti tracciati o dal movimento. Impostare su 0 se si desidera conservare solo le registrazioni relative agli avvisi e ai rilevamenti.",
+ "days": {
+ "label": "Giorni di Conservazione",
+ "description": "Numero di giorni di conservazione delle registrazioni."
+ }
+ },
+ "motion": {
+ "label": "Conservazione movimento",
+ "description": "Numero di giorni per cui conservare le registrazioni attivate dal movimento, indipendentemente dagli oggetti tracciati. Impostare su 0 se si desidera conservare solo le registrazioni relative ad allarmi e rilevamenti.",
+ "days": {
+ "label": "Giorni di Conservazione",
+ "description": "Numero di giorni di conservazione delle registrazioni."
+ }
+ },
+ "detections": {
+ "label": "Conservazione rilevamento",
+ "description": "Impostazioni relative alla conservazione delle registrazioni per gli eventi di rilevamento, comprese le durate prima e dopo l'acquisizione.",
+ "pre_capture": {
+ "label": "Secondi di pre-acquisizione",
+ "description": "Numero di secondi precedenti l'evento di rilevamento da includere nella registrazione."
+ },
+ "post_capture": {
+ "label": "Secondi di post-acquisizione",
+ "description": "Numero di secondi successivi l'evento di rilevamento da includere nella registrazione."
+ },
+ "retain": {
+ "label": "Conservazione eventi",
+ "description": "Impostazioni di conservazione per le registrazioni degli eventi di rilevamento.",
+ "days": {
+ "label": "Giorni di conservazione",
+ "description": "Numero di giorni per cui conservare le registrazioni degli eventi di rilevamento."
+ },
+ "mode": {
+ "label": "Modalità di conservazione",
+ "description": "Modalità di conservazione: tutti (salva tutti i segmenti), movimento (salva i segmenti con movimento) o oggetti_attivi (salva i segmenti con oggetti attivi)."
+ }
+ }
+ },
+ "alerts": {
+ "label": "Conservazione avvisi",
+ "description": "Impostazioni di conservazione delle registrazioni per gli eventi di avviso, incluse le durate di pre e post-acquisizione.",
+ "pre_capture": {
+ "label": "Secondi di pre-acquisizione",
+ "description": "Numero di secondi antecedenti all'evento di rilevamento da includere nella registrazione."
+ },
+ "post_capture": {
+ "label": "Secondi di post-acquisizione",
+ "description": "Numero di secondi successivi all'evento di rilevamento da includere nella registrazione."
+ },
+ "retain": {
+ "label": "Conservazione eventi",
+ "description": "Impostazioni di conservazione per le registrazioni degli eventi di rilevamento.",
+ "days": {
+ "label": "Giorni di conservazione",
+ "description": "Numero di giorni per cui conservare le registrazioni degli eventi di rilevamento."
+ },
+ "mode": {
+ "label": "Modalità di conservazione",
+ "description": "Modalità di conservazione: tutti (salva tutti i segmenti), movimento (salva i segmenti con movimento) o oggetti_attivi (salva i segmenti con oggetti attivi)."
+ }
+ }
+ },
+ "preview": {
+ "label": "Configurazione anteprima",
+ "description": "Impostazioni che controllano la qualità delle anteprime di registrazione mostrate nell'interfaccia utente (UI).",
+ "quality": {
+ "label": "Qualità anteprima",
+ "description": "Livello di qualità dell'anteprima (very_low, low, medium, high, very_high)."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Stato registrazione originale",
+ "description": "Indica se la registrazione era abilitata nella configurazione statica originale."
}
},
"snapshots": {
- "label": "Istantanee"
+ "label": "Istantanee",
+ "enabled": {
+ "label": "Abilita istantanee"
+ },
+ "timestamp": {
+ "label": "Sovrimpressione timestamp",
+ "description": "Sovraimprime un timestamp sulle istantanee provenienti dalle API."
+ },
+ "bounding_box": {
+ "label": "Sovrimpressione riquadro di delimitazione"
+ }
},
"motion": {
"label": "Rilevamento movimento",
"contour_area": {
- "label": "Area di contorno"
+ "label": "Area di contorno",
+ "description": "Area minima del contorno in pixel richiesta affinché un contorno di movimento venga conteggiato."
},
"improve_contrast": {
- "label": "Migliora il contrasto"
+ "label": "Migliora il contrasto",
+ "description": "Applica un miglioramento del contrasto ai fotogrammi prima dell'analisi del movimento per facilitare il rilevamento."
+ },
+ "enabled": {
+ "label": "Attiva il rilevamento del movimento"
+ },
+ "threshold": {
+ "label": "Soglia di movimento",
+ "description": "Soglia di differenza tra i pixel utilizzata dal rilevatore di movimento; valori più alti riducono la sensibilità (intervallo 1-255)."
+ },
+ "lightning_threshold": {
+ "label": "Soglia di luminosità",
+ "description": "Soglia per rilevare e ignorare brevi picchi di luminosità (un valore più basso indica una maggiore sensibilità; i valori sono compresi tra 0.3 e 1.0). Ciò non impedisce del tutto il rilevamento del movimento, ma fa semplicemente sì che il rilevatore smetta di analizzare i fotogrammi successivi una volta superata la soglia. Durante questi eventi vengono comunque create registrazioni basate sul movimento."
+ },
+ "skip_motion_threshold": {
+ "label": "Ignora soglia di movimento",
+ "description": "Se impostato su un valore compreso tra 0.0 e 110, e se in un singolo fotogramma cambia una porzione dell'immagine superiore a tale frazione, il rilevatore non restituirà alcun riquadro di movimento e si ricalibrerà immediatamente. Ciò consente di risparmiare risorse della CPU e ridurre i falsi positivi in caso di fulmini, temporali, ecc., ma potrebbe comportare la mancata rilevazione di eventi reali, come ad esempio il tracciamento automatico di un oggetto da parte di una telecamera PTZ. Il compromesso consiste nel scegliere se sacrificare alcuni megabyte di registrazioni o rivedere un paio di brevi video. Lasciare non impostato (Nessuno) per disabilitare questa funzione."
+ },
+ "delta_alpha": {
+ "description": "Fattore di fusione alfa utilizzato nel calcolo della differenza tra fotogrammi per il calcolo del movimento."
+ },
+ "frame_alpha": {
+ "description": "Valore alfa utilizzato durante la fusione dei fotogrammi per la preelaborazione del movimento."
+ },
+ "frame_height": {
+ "label": "Altezza del frame",
+ "description": "Altezza in pixel alla quale ridimensionare i fotogrammi durante il calcolo del movimento."
+ },
+ "mask": {
+ "label": "Coordinate della maschera",
+ "description": "Coordinate x, y ordinate che definiscono il poligono della maschera di movimento utilizzato per includere/escludere aree."
+ },
+ "mqtt_off_delay": {
+ "label": "Ritardo di disattivazione MQTT",
+ "description": "Secondi di attesa dopo l'ultimo movimento prima di pubblicare uno stato 'off' MQTT."
+ },
+ "enabled_in_config": {
+ "description": "Indica se il rilevamento del movimento era abilitato nella configurazione statica originale."
+ },
+ "raw_mask": {
+ "label": "Maschera grezza"
}
},
"objects": {
- "label": "Oggetti"
+ "label": "Oggetti",
+ "description": "Impostazioni predefinite per il tracciamento degli oggetti, tra cui le etichette da tracciare e i filtri per singolo oggetto.",
+ "track": {
+ "label": "Oggetti da tracciare"
+ },
+ "filters": {
+ "label": "Filtri oggetto",
+ "description": "Filtri applicati agli oggetti rilevati per ridurre i falsi positivi (area, rapporto, livello di confidenza).",
+ "min_area": {
+ "label": "Area minima dell'oggetto",
+ "description": "Area minima del riquadro di delimitazione (in pixel o percentuale) richiesta per questo tipo di oggetto. Può essere espressa in pixel (numero intero) o in percentuale (valore decimale compreso tra 0.000001 e 0.99)."
+ },
+ "max_area": {
+ "label": "Area massima dell'oggetto",
+ "description": "Area massima del riquadro di delimitazione (in pixel o percentuale) richiesta per questo tipo di oggetto. Può essere espressa in pixel (numero intero) o in percentuale (valore decimale compreso tra 0.000001 e 0.99)."
+ },
+ "min_ratio": {
+ "label": "Rapporto di aspetto minimo",
+ "description": "Rapporto minimo tra larghezza e altezza richiesto affinché il riquadro di delimitazione sia valido."
+ },
+ "max_ratio": {
+ "label": "Rapporto di aspetto massimo",
+ "description": "Rapporto massimo tra larghezza e altezza richiesto affinché il riquadro di delimitazione sia valido."
+ },
+ "threshold": {
+ "label": "Soglia di confidenza",
+ "description": "Soglia di confidenza media di rilevamento necessaria affinché l'oggetto sia considerato un vero positivo."
+ },
+ "min_score": {
+ "label": "Confidenza minima",
+ "description": "Livello minimo di confidenza del rilevamento per singolo fotogramma richiesto affinché l'oggetto venga conteggiato."
+ },
+ "mask": {
+ "label": "Maschera filtro",
+ "description": "Coordinate del poligono che definisce l'area all'interno dell'inquadratura in cui si applica questo filtro."
+ },
+ "raw_mask": {
+ "label": "Maschera grezza"
+ }
+ },
+ "mask": {
+ "label": "Maschera oggetto",
+ "description": "Poligono di maschera utilizzato per impedire il rilevamento di oggetti in aree specificate."
+ },
+ "genai": {
+ "label": "Configurazione degli oggetti GenAI",
+ "description": "Opzioni GenAI per la descrizione degli oggetti tracciati e l'invio dei fotogrammi per la generazione.",
+ "enabled": {
+ "label": "Abilita GenAI",
+ "description": "Abilita di default la generazione tramite GenAI delle descrizioni degli oggetti monitorati."
+ },
+ "use_snapshot": {
+ "label": "Usa istantanee",
+ "description": "Utilizza le istantanee degli oggetti anziché le miniature per la generazione di descrizioni con GenAI."
+ },
+ "prompt": {
+ "description": "Modello di prompt predefinito utilizzato per la generazione di descrizioni con GenAI."
+ },
+ "object_prompts": {
+ "description": "Prompt specifici per ogni oggetto per personalizzare i risultati di GenAI in base a etichette specifiche."
+ },
+ "objects": {
+ "label": "Oggetti GenAI",
+ "description": "Elenco delle etichette degli oggetti da inviare a GenAI per impostazione predefinita."
+ },
+ "required_zones": {
+ "label": "Zone obbligatorie",
+ "description": "Zone che devono essere inserite affinché gli oggetti possano essere utilizzati per la generazione di descrizioni tramite GenAI."
+ },
+ "debug_save_thumbnails": {
+ "label": "Salva miniature",
+ "description": "Salva le miniature inviate a GenAI per il debug e la revisione."
+ },
+ "send_triggers": {
+ "label": "Attivatori GenAI",
+ "description": "Definisce quando i frame devono essere inviati a GenAI (al termine, dopo gli aggiornamenti, ecc.).",
+ "tracked_object_end": {
+ "label": "Invia alla fine",
+ "description": "Invia una richiesta a GenAI quando l'oggetto tracciato termina."
+ },
+ "after_significant_updates": {
+ "label": "Attivazione anticipata GenAI",
+ "description": "Invia una richiesta a GenAI dopo un numero specificato di aggiornamenti significativi per l'oggetto tracciato."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Stato GenAI originale",
+ "description": "Indica se GenAI era abilitata nella configurazione statica originale."
+ }
+ },
+ "raw_mask": {
+ "label": "Maschera grezza"
+ },
+ "filters_attribute": {
+ "raw_mask": {
+ "label": "Maschera grezza"
+ }
+ }
},
"live": {
- "label": "Riproduzione in diretta"
+ "label": "Riproduzione in diretta",
+ "streams": {
+ "label": "Nomi dei flussi Dal vivo",
+ "description": "Mappatura dei nomi dei flussi configurati ai nomi ritrasmissioni/go2rtc utilizzati per la riproduzione dal vivo."
+ },
+ "height": {
+ "label": "Altezza dal vivo",
+ "description": "Altezza (in pixel) per visualizzare il flusso dal vivo jsmpeg nell'interfaccia utente web; deve essere <= altezza del flusso rilevato."
+ },
+ "quality": {
+ "label": "Qualità dal vivo",
+ "description": "Qualità di codifica per il flusso jsmpeg (1 massima, 31 minima)."
+ }
},
"timestamp_style": {
"label": "Stile orario"
@@ -462,7 +883,32 @@
"semantic_search": {
"label": "Ricerca semantica",
"triggers": {
- "label": "Inneschi"
+ "label": "Attivatori",
+ "friendly_name": {
+ "label": "Nome descrittivo",
+ "description": "Nome descrittivo opzionale visualizzato nell'interfaccia utente per questo innesco."
+ },
+ "description": "Azioni e criteri di corrispondenza per gli attivatori della ricerca semantica specifici della telecamera.",
+ "enabled": {
+ "label": "Abilita questo attivatore",
+ "description": "Abilita o disabilita questo attivatore della ricerca semantica."
+ },
+ "type": {
+ "label": "Tipo di attivatore",
+ "description": "Tipo di attivatore: 'miniatura' (corrispondenza con immagine) o 'descrizione' (corrispondenza con testo)."
+ },
+ "data": {
+ "label": "Contenuto dell'attivatore",
+ "description": "Frase di testo o ID della miniatura da confrontare con gli oggetti tracciati."
+ },
+ "threshold": {
+ "label": "Soglia dell'attivatore",
+ "description": "Punteggio minimo di somiglianza (0-1) richiesto per attivare questo attivatore."
+ },
+ "actions": {
+ "label": "Azioni dell'attivatore",
+ "description": "Elenco delle azioni da eseguire quando l'attivatore trova una corrispondenza (notification, sub_label, attribute)."
+ }
},
"model_size": {
"label": "Dimensioni del modello"
@@ -472,6 +918,22 @@
"label": "Riconoscimento targhe",
"model_size": {
"label": "Dimensioni del modello"
+ },
+ "description": "Impostazioni di riconoscimento delle targhe, incluse le soglie di rilevamento, la formattazione e le targhe conosciute.",
+ "enabled": {
+ "label": "Abilita riconoscimento delle targhe (LPR)"
+ },
+ "expire_time": {
+ "label": "Scadenza in secondi",
+ "description": "Tempo in secondi trascorso dopo il quale una targa non identificata viene rimossa dal sistema di tracciamento (solo per telecamere LPR dedicate)."
+ },
+ "min_area": {
+ "label": "Area minima della targa",
+ "description": "Area minima della targa (in pixel) richiesta per tentare il riconoscimento."
+ },
+ "enhancement": {
+ "label": "Livello di miglioramento",
+ "description": "Livello di miglioramento (0-10) da applicare alle immagini delle targhe prima dell'OCR; valori più elevati potrebbero non migliorare sempre i risultati; i livelli superiori a 5 potrebbero funzionare solo con immagini di targhe scattate di notte e devono essere utilizzati con cautela."
}
},
"classification": {
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/events.json b/web/public/locales/it/views/events.json
index 4a31d9526f..45a4664066 100644
--- a/web/public/locales/it/views/events.json
+++ b/web/public/locales/it/views/events.json
@@ -21,7 +21,7 @@
"markTheseItemsAsReviewed": "Segna questi elementi come visti",
"markAsReviewed": "Segna come visto",
"documentTitle": "Revisiona - Frigate",
- "allCameras": "Tutte le camere",
+ "allCameras": "Tutte le telecamere",
"timeline": {
"label": "Linea temporale"
},
diff --git a/web/public/locales/it/views/live.json b/web/public/locales/it/views/live.json
index 45696b1256..697a676820 100644
--- a/web/public/locales/it/views/live.json
+++ b/web/public/locales/it/views/live.json
@@ -40,7 +40,8 @@
"objectDetection": "Rilevamento oggetti",
"recording": "Registrazione",
"audioDetection": "Rilevamento audio",
- "transcription": "Trascrizione audio"
+ "transcription": "Trascrizione audio",
+ "camera": "Telecamera"
},
"history": {
"label": "Mostra filmati storici"
@@ -98,7 +99,9 @@
},
"camera": {
"enable": "Abilita telecamera",
- "disable": "Disabilita telecamera"
+ "disable": "Disabilita telecamera",
+ "turnOn": "Attiva la telecamera",
+ "turnOff": "Disattiva la telecamera"
},
"muteCameras": {
"enable": "Muta tutte le telecamere",
diff --git a/web/public/locales/it/views/motionSearch.json b/web/public/locales/it/views/motionSearch.json
index 06a80167d9..4421f8bcef 100644
--- a/web/public/locales/it/views/motionSearch.json
+++ b/web/public/locales/it/views/motionSearch.json
@@ -26,7 +26,9 @@
"points_many": "{{count}} punti",
"points_other": "{{count}} punti",
"undo": "Annulla ultimo punto",
- "reset": "Reimposta poligono"
+ "reset": "Reimposta poligono",
+ "drawMode": "Disegna",
+ "moveMode": "Sposta"
},
"motionHeatmapLabel": "Mappa di calore del movimento",
"dialog": {
@@ -42,11 +44,11 @@
"settings": {
"title": "Impostazioni di ricerca",
"parallelMode": "Modalità parallela",
- "parallelModeDesc": "Scansiona più segmenti di registrazione contemporaneamente (più veloce, ma richiede un utilizzo della CPU significativamente maggiore)",
+ "parallelModeDesc": "Esegui la scansione simultanea di più intervalli di registrazione (più veloce; utilizza più risorse di decodifica)",
"threshold": "Soglia di sensibilità",
"thresholdDesc": "Valori più bassi indicano cambiamenti minori (1-255)",
"minArea": "Area di cambio minimo",
- "minAreaDesc": "Percentuale minima della regione di interesse che deve cambiare per essere considerata significativa",
+ "minAreaDesc": "Dimensione minima di una singola regione mobile, espressa in percentuale della regione di interesse",
"frameSkip": "Salta fotogrammi",
"frameSkipDesc": "Elabora ogni N-esimo fotogramma. Imposta questo valore sulla frequenza dei fotogrammi della tua telecamera per elaborare un fotogramma al secondo (ad esempio, 5 per una telecamera a 5 FPS, 30 per una telecamera a 30 FPS). Valori più alti saranno più veloci, ma potrebbero perdere eventi di movimento brevi.",
"maxResults": "Risultati massimi",
@@ -72,6 +74,9 @@
"framesDecoded": "Fotogrammi decodificati",
"wallTime": "Tempo di ricerca",
"segmentErrors": "Errori di segmento",
- "seconds": "{{seconds}}s"
- }
+ "seconds": "{{seconds}}s",
+ "minutesSeconds": "{{minutes}}m {{seconds}}s",
+ "scanSummary": "{{segments}} segmenti · {{time}}"
+ },
+ "scanning": "Scansione {{time}}"
}
diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json
index 042c4694e0..5c40cc9601 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)",
@@ -447,7 +449,7 @@
"enrichments": "Miglioramenti",
"triggers": "Inneschi",
"roles": "Ruoli",
- "cameraManagement": "Gestione",
+ "cameraManagement": "Gestione della telecamera",
"cameraReview": "Revisiona",
"profiles": "Profili",
"general": "Generale",
@@ -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": {
@@ -807,7 +810,8 @@
"notificationUnavailable": {
"desc": "Le notifiche push web richiedono un contesto sicuro (https://...). Questa è una limitazione del browser. Accedi a Frigate in modo sicuro per utilizzare le notifiche.",
"documentation": "Leggi la documentazione",
- "title": "Notifiche non disponibili"
+ "title": "Notifiche non disponibili",
+ "descPwa": "Su iOS, le notifiche push web sono disponibili solo se Frigate è installato sulla schermata Home. Apri il menu Condividi, scegli Aggiungi alla schermata Home, quindi apri Frigate dalla nuova icona per registrare questo dispositivo per le notifiche."
},
"deviceSpecific": "Impostazioni specifiche del dispositivo",
"toast": {
@@ -1254,7 +1258,7 @@
"brands": {
"reolink-rtsp": "Reolink RTSP non è consigliato. Abilita HTTP nelle impostazioni del firmware della telecamera e riavvia la procedura guidata."
},
- "customUrlRtspRequired": "Gli URL personalizzati devono iniziare con \"rtsp://\". Per i flussi di telecamere non RTSP è richiesta la configurazione manuale."
+ "customUrlRtspRequired": "Gli URL personalizzati devono iniziare con \"rtsp://\" o \"rtsps://\". La configurazione manuale è necessaria per i flussi video non RTSP."
},
"docs": {
"reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
@@ -1401,19 +1405,45 @@
"selectCamera": "Seleziona una telecamera",
"backToSettings": "Torna alle impostazioni della telecamera",
"streams": {
- "title": "Abilita/Disabilita telecamere",
+ "title": "Stato e dettagli della telecamera",
"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": "削除中…" }, @@ -692,7 +766,8 @@ }, "notificationUnavailable": { "title": "通知は利用できません", - "desc": "Web プッシュ通知にはセキュアコンテキスト(https://…)が必要です。これはブラウザの制限です。通知を利用するには、セキュアに Frigate へアクセスしてください。"
+ "desc": "Web プッシュ通知にはセキュアコンテキスト(https://…)が必要です。これはブラウザの制限です。通知を利用するには、セキュアに Frigate へアクセスしてください。",
+ "descPwa": "iOSでは、Frigateをホーム画面に追加した場合にのみ、Webプッシュ通知を利用できます。共有メニューを開き、ホーム画面に追加を選択してから、新しいアイコンからFrigateを起動し、このデバイスを通知対象として登録してください。"
},
"globalSettings": {
"title": "グローバル設定",
@@ -748,7 +823,7 @@
},
"snapshotConfig": {
"title": "スナップショット設定",
- "desc": "Frigate+ への送信には、設定でスナップショットと clean_copy スナップショットの両方を有効にする必要があります。",
+ "desc": "Frigate+ への送信には、設定でスナップショットを有効にする必要があります。",
"cleanCopyWarning": "一部のカメラではスナップショット機能が無効になっています",
"table": {
"camera": "カメラ",
@@ -771,14 +846,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 +879,7 @@
},
"addTrigger": "トリガーを追加",
"table": {
- "name": "名称",
+ "name": "名前",
"type": "タイプ",
"content": "コンテンツ",
"threshold": "しきい値",
@@ -823,7 +914,7 @@
},
"form": {
"name": {
- "title": "名称",
+ "title": "名前",
"placeholder": "トリガー名を入力",
"error": {
"minLength": "この項目は2文字以上で入力してください。",
@@ -838,15 +929,15 @@
"type": {
"title": "タイプ",
"placeholder": "トリガータイプを選択",
- "description": "類似した追跡オブジェクトの説明が検出されたときにトリガー",
- "thumbnail": "類似した追跡オブジェクトのサムネイルが検出されたときにトリガー"
+ "description": "類似した追跡オブジェクトの説明が検知されたときにトリガー",
+ "thumbnail": "類似した追跡オブジェクトのサムネイルが検知されたときにトリガー"
},
"content": {
"title": "コンテンツ",
"imagePlaceholder": "サムネイルを選択",
"textPlaceholder": "テキストを入力",
"imageDesc": "最新のサムネイル100件のみが表示されます。目的のサムネイルが見つからない場合は、探索で過去のオブジェクトを確認し、そこのメニューからトリガーを設定してください。",
- "textDesc": "類似する追跡オブジェクトの説明が検出されたときにこのアクションをトリガーするためのテキストを入力します。",
+ "textDesc": "類似する追跡オブジェクトの説明が検知されたときにこのアクションをトリガーするためのテキストを入力します。",
"error": {
"required": "コンテンツは必須です。"
}
@@ -860,7 +951,7 @@
"desc": "このトリガーの類似度しきい値を設定します。値が高いほど、より近い一致が必要になります。"
},
"actions": {
- "title": "アクション",
+ "title": "操作",
"desc": "デフォルトでは、Frigate はすべてのトリガーに対して MQTT メッセージを送信します。サブラベルは、トリガー名をオブジェクトのラベルに追加します。属性(Attributes)は、追跡オブジェクトのメタデータとは別に保存される検索可能なメタデータです。",
"error": {
"min": "少なくとも1つのアクションを選択してください。"
@@ -961,7 +1052,7 @@
"quality": "品質",
"selectQuality": "品質を選択",
"roleLabels": {
- "detect": "物体検出",
+ "detect": "物体検知",
"record": "録画",
"audio": "音声"
},
@@ -973,12 +1064,12 @@
"notConnected": "未接続",
"featuresTitle": "機能",
"go2rtc": "カメラへの接続数を削減",
- "detectRoleWarning": "続行するには、少なくとも 1 つのストリームに「検出」ロールが必要です。",
+ "detectRoleWarning": "続行するには、少なくとも 1 つのストリームに「検知」ロールが必要です。",
"rolesPopover": {
"title": "ストリーム ロール",
- "detect": "物体検出用のメイン フィードです。",
+ "detect": "物体検知用のメイン フィードです。",
"record": "設定に基づいて映像フィードのセグメントを保存します。",
- "audio": "音声ベース検出用のフィードです。"
+ "audio": "音声ベース検知用のフィードです。"
},
"featuresPopover": {
"title": "ストリーム機能",
@@ -999,8 +1090,8 @@
},
"testResultLabels": {
"resolution": "解像度",
- "video": "ビデオ",
- "audio": "オーディオ",
+ "video": "映像",
+ "audio": "音声",
"fps": "FPS"
},
"commonErrors": {
@@ -1008,7 +1099,7 @@
"testFailed": "ストリームテストに失敗しました: {{error}}"
},
"step1": {
- "description": "カメラの詳細を入力し、カメラを自動検出するか、メーカーを手動で選択してください。",
+ "description": "カメラの詳細を入力し、カメラを自動検知するか、メーカーを手動で選択してください。",
"cameraName": "カメラ名",
"cameraNamePlaceholder": "例: front_door または Back Yard Overview",
"host": "ホスト/IP アドレス",
@@ -1040,23 +1131,23 @@
"brands": {
"reolink-rtsp": "Reolink の RTSP は推奨されません。カメラ設定で http を有効にし、カメラウィザードを再起動することを推奨します。"
},
- "customUrlRtspRequired": "カスタム URL は「rtsp://」で始まる必要があります。非 RTSP カメラ ストリームの場合は手動構成が必要です。"
+ "customUrlRtspRequired": "カスタムURLは「rtsp://」または「rtsps://」で始まる必要があります。RTSP以外のカメラストリームについては、手動での設定が必要です。"
},
"docs": {
"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 +1247,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 +1261,8 @@
"hikvision": {
"substreamWarning": "サブストリーム 1 は低解像度に固定されています。多くの Hikvision カメラは追加のサブストリームをサポートしており、カメラ設定で有効化する必要があります。利用可能であればそれらのストリームを使用することを推奨します。"
},
- "noAudioWarning": "このストリームでは音声が検出されていません。録画には音声が含まれません。"
+ "noAudioWarning": "このストリームでは音声が検知されていません。録画には音声が含まれません。",
+ "resolutionUnknown": "このストリームの解像度を取得できませんでした。設定画面または設定ファイルで検知解像度を手動で指定してください。"
},
"ffmpegModuleDescription": "何度か試してもストリームが読み込まれない場合は、このオプションを有効にしてください。有効にすると、Frigate は go2rtc と併用して ffmpeg モジュールを使用します。一部のカメラストリームでは、互換性が向上する場合があります。"
}
@@ -1183,7 +1275,30 @@
"backToSettings": "カメラ設定に戻る",
"streams": {
"title": "カメラの有効化/無効化",
- "desc": "Frigate を再起動するまで一時的にカメラを無効化します。無効化すると、このカメラのストリーム処理は完全に停止し、検出・録画・デバッグは利用できません。detect straumes netika saņemti kadri, pārbaudiet kļūdu žurnālus."
+ "desc": "No kameras {{cameraName}} detect straumes netika saņemti kadri, pārbaudiet kļūdu žurnālus"
},
"cameraDisabled": "Kamera ir izslēgta",
"stats": {
@@ -47,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "Neizdevās iesniegt kadru Frigate+"
}
- }
+ },
+ "cameraOff": "Kamera ir izslēgta"
}
diff --git a/web/public/locales/lv/objects.json b/web/public/locales/lv/objects.json
index 981d5cb44e..cf1edce711 100644
--- a/web/public/locales/lv/objects.json
+++ b/web/public/locales/lv/objects.json
@@ -15,5 +15,16 @@
"dhl": "DHL",
"postnl": "PostNL",
"dpd": "DPD",
- "boat": "Laiva"
+ "boat": "Laiva",
+ "dog": "Suns",
+ "bark": "Riešana",
+ "cat": "Kaķis",
+ "horse": "Zirgs",
+ "mouse": "Pele",
+ "animal": "Dzīvnieks",
+ "door": "Durvis",
+ "sink": "Izlietne",
+ "hair_dryer": "Fēns",
+ "toothbrush": "Zobu birste",
+ "clock": "Pulkstens"
}
diff --git a/web/public/locales/lv/views/settings.json b/web/public/locales/lv/views/settings.json
index 7fb5924883..867d6933c6 100644
--- a/web/public/locales/lv/views/settings.json
+++ b/web/public/locales/lv/views/settings.json
@@ -68,7 +68,8 @@
"roles": "Lomas",
"frigateplus": "Frigate+",
"notifications": "Paziņojumi",
- "triggers": "Trigeri"
+ "triggers": "Trigeri",
+ "profiles": "Profili"
},
"cameraSetting": {
"camera": "Kamera"
diff --git a/web/public/locales/nb-NO/config/cameras.json b/web/public/locales/nb-NO/config/cameras.json
index ce68cfc445..da2f22cfe0 100644
--- a/web/public/locales/nb-NO/config/cameras.json
+++ b/web/public/locales/nb-NO/config/cameras.json
@@ -446,7 +446,7 @@
},
"mode": {
"label": "Bevaringsmodus",
- "description": "Modus for bevaring: all (alle), motion (bevegelse) eller active_objects (aktive objekter)."
+ "description": "Modus for bevaring: \"Alle\" (lagre alle segmenter), \"Bevegelse\" (lagre segmenter med bevegelse) eller \"Aktive objekter\" (lagre segmenter med aktive objekter)."
}
}
},
@@ -470,7 +470,7 @@
},
"mode": {
"label": "Bevaringsmodus",
- "description": "Modus for bevaring: all (lagre alle segmenter), motion (lagre segmenter med bevegelse) eller active_objects (lagre segmenter med aktive objekter)."
+ "description": "Modus for bevaring: \"Alle\" (lagre alle segmenter), \"Bevegelse\" (lagre segmenter med bevegelse) eller \"Aktive objekter\" (lagre segmenter med aktive objekter)."
}
}
},
@@ -627,7 +627,7 @@
},
"mode": {
"label": "Bevaringsmodus",
- "description": "Modus for bevaring: all (lagre alle segmenter), motion (lagre segmenter med bevegelse) eller active_objects (lagre segmenter med aktive objekter)."
+ "description": "Modus for bevaring: \"Alle\" (lagre alle segmenter), \"Bevegelse\" (lagre segmenter med bevegelse) eller \"Aktive objekter\" (lagre segmenter med aktive objekter)."
},
"objects": {
"label": "Objektbevaring",
diff --git a/web/public/locales/nb-NO/config/global.json b/web/public/locales/nb-NO/config/global.json
index 11f2fbcdbf..9b288f47f3 100644
--- a/web/public/locales/nb-NO/config/global.json
+++ b/web/public/locales/nb-NO/config/global.json
@@ -921,6 +921,41 @@
"label": "Opprinnelig GenAI-status",
"description": "Indikerer om GenAI var aktivert i den opprinnelige statiske konfigurasjonen."
}
+ },
+ "filters_attribute": {
+ "label": "Attributtfiltre",
+ "description": "Filtre som brukes på detekterte attributter for å redusere falske positiver (område, sideforhold, konfidens).",
+ "min_area": {
+ "label": "Minimum attributtområde",
+ "description": "Minimum areal for markeringsrammen(piksler eller prosent) som kreves for dette attributtet. Kan oppgis i piksler (heltall) eller prosent (desimaltall mellom 0.000001 og 0.99)."
+ },
+ "max_area": {
+ "label": "Maksimum attributtområde",
+ "description": "Maksimum areal for markeringsrammen (piksler eller prosent) tillatt for dette attributtet. Kan oppgis i piksler (heltall) eller prosent (desimaltall mellom 0.000001 og 0.99)."
+ },
+ "min_ratio": {
+ "label": "Minimum sideforhold",
+ "description": "Minimum bredde-/høydeforhold som kreves for at markeringsrammen skal kvalifisere."
+ },
+ "max_ratio": {
+ "label": "Maksimum sideforhold",
+ "description": "Maksimum bredde-/høydeforhold tillatt for at markeringsrammen skal kvalifisere."
+ },
+ "threshold": {
+ "label": "Konfidensterskel",
+ "description": "Gjennomsnittlig terskel for deteksjonskonfidens som kreves for at attributtet skal anses som en ekte positiv."
+ },
+ "min_score": {
+ "label": "Minimum konfidens",
+ "description": "Minimum deteksjonskonfidens i et enkeltbilde som kreves for å knytte dette attributtet til sitt hovedobjekt."
+ },
+ "mask": {
+ "label": "Filtermaske",
+ "description": "Polygonkoordinater som definerer hvor denne masken gjelder innenfor bildet."
+ },
+ "raw_mask": {
+ "label": "Råmaske"
+ }
}
},
"record": {
@@ -970,7 +1005,7 @@
},
"mode": {
"label": "Bevaringsmodus",
- "description": "Modus for bevaring: all (alle), motion (bevegelse) eller active_objects (aktive objekter)."
+ "description": "Modus for bevaring: \"Alle\" (lagre alle segmenter), \"Bevegelse\" (lagre segmenter med bevegelse) eller \"Aktive objekter\" (lagre segmenter med aktive objekter)."
}
}
},
@@ -994,7 +1029,7 @@
},
"mode": {
"label": "Bevaringsmodus",
- "description": "Modus for bevaring: all (lagre alle segmenter), motion (lagre segmenter med bevegelse) eller active_objects (lagre segmenter med aktive objekter)."
+ "description": "Modus for bevaring: \"Alle\" (lagre alle segmenter), \"Bevegelse\" (lagre segmenter med bevegelse) eller \"Aktive objekter\" (lagre segmenter med aktive objekter)."
}
}
},
@@ -1151,7 +1186,7 @@
},
"mode": {
"label": "Bevaringsmodus",
- "description": "Modus for bevaring: all (lagre alle segmenter), motion (lagre segmenter med bevegelse) eller active_objects (lagre segmenter med aktive objekter)."
+ "description": "Modus for bevaring: \"Alle\" (lagre alle segmenter), \"Bevegelse\" (lagre segmenter med bevegelse) eller \"Aktive objekter\" (lagre segmenter med aktive objekter)."
},
"objects": {
"label": "Objektbevaring",
diff --git a/web/public/locales/nb-NO/views/chat.json b/web/public/locales/nb-NO/views/chat.json
index a788c3635b..7d42966fd4 100644
--- a/web/public/locales/nb-NO/views/chat.json
+++ b/web/public/locales/nb-NO/views/chat.json
@@ -60,5 +60,10 @@
"stats": {
"context": "{{tokens}} tokens",
"tokens_per_second": "{{rate}} t/s"
+ },
+ "reasoning": {
+ "active": "Resonnerer…",
+ "show": "Vis resonnering",
+ "hide": "Skjul resonnering"
}
}
diff --git a/web/public/locales/nb-NO/views/settings.json b/web/public/locales/nb-NO/views/settings.json
index 69055fd4bc..fac229142e 100644
--- a/web/public/locales/nb-NO/views/settings.json
+++ b/web/public/locales/nb-NO/views/settings.json
@@ -16,7 +16,8 @@
"globalConfig": "Global konfigurasjon - Frigate",
"cameraConfig": "Kamerakonfigurasjon - Frigate",
"profiles": "Profiler - Frigate",
- "maintenance": "Vedlikehold - Frigate"
+ "maintenance": "Vedlikehold - Frigate",
+ "detectorsAndModel": "Detektorer og modell - Frigate"
},
"menu": {
"classification": "Klassifisering",
@@ -91,7 +92,8 @@
"system": "System",
"systemTelemetry": "Telemetri",
"systemTls": "TLS",
- "maintenance": "Vedlikehold"
+ "maintenance": "Vedlikehold",
+ "systemDetectorsAndModel": "Detektorer og modell"
},
"dialog": {
"unsavedChanges": {
@@ -786,7 +788,7 @@
"supportedDetectors": "Støttede detektorer",
"dimensions": "Dimensjoner",
"cameras": "Kameraer",
- "availableModels": "Tilgjengelige modeller",
+ "availableModels": "Tilgjengelige Frigate+ modeller",
"modelSelect": "Dine tilgjengelige modeller på Frigate+ kan velges her. Merk at bare modeller som er kompatible med din nåværende detektorkonfigurasjon kan velges.",
"plusModelType": {
"userModel": "Finjustert",
@@ -825,7 +827,8 @@
"currentModel": "Gjeldende modell",
"configuration": "Konfigurasjon"
},
- "description": "Frigate+ er en abonnementstjeneste som gir tilgang til tilleggsfunksjoner og kapasiteter for Frigate-instansen din, inkludert muligheten til å bruke egendefinerte objektdeteksjonsmodeller trent på dine egne data. Du kan administrere innstillingene for Frigate+-modellen din her."
+ "description": "Frigate+ er en abonnementstjeneste som gir tilgang til tilleggsfunksjoner og kapasiteter for Frigate-instansen din, inkludert muligheten til å bruke egendefinerte objektdeteksjonsmodeller trent på dine egne data. Du kan administrere innstillingene for Frigate+-modellen din her.",
+ "changeInDetectorsAndModel": "Endre modell"
},
"enrichments": {
"title": "Innstillinger for utvidelser",
@@ -1366,14 +1369,17 @@
"disableDesc": "Aktiver et kamera som for øyeblikket ikke er synlig i grensesnittet og deaktivert i konfigurasjonen. En omstart av Frigate kreves etter aktivering.",
"enableSuccess": "Aktiverte {{cameraName}} i konfigurasjonen. Start Frigate på nytt for å ta i bruk endringene.",
"enableLabel": "Aktiverte kameraer",
- "enableDesc": "Deaktiver et aktivert kamera midlertidig frem til Frigate starter på nytt. Deaktivering av et kamera stopper all prosessering av kameraets strømmer. Deteksjon, opptak og feilsøking vil være utilgjengelig.https://…). Aceasta este o limitare a browserului. Accesează Frigate în mod securizat pentru a utiliza notificările.",
- "title": "Notificări Indisponibile"
+ "title": "Notificări Indisponibile",
+ "descPwa": "Pe iOS, notificările web push sunt disponibile doar când Frigate este instalat pe ecranul principal. Deschide meniul Partajare, alege Adaugă pe ecranul principal, apoi deschide Frigate din noua pictogramă pentru a înregistra acest dispozitiv pentru notificări."
},
"cameras": {
"title": "Camere",
@@ -778,7 +781,7 @@
"baseModel": "Model de Bază",
"loading": "Se încarcă informațiile despre model…",
"error": "Eroare la încărcarea informațiilor despre model",
- "availableModels": "Modele Disponibile",
+ "availableModels": "Modele Frigate+ disponibile",
"modelType": "Tip Model",
"trainDate": "Data Antrenării",
"cameras": "Camere",
@@ -804,7 +807,8 @@
"currentModel": "Model Actual",
"otherModels": "Alte Modele",
"configuration": "Configurație"
- }
+ },
+ "changeInDetectorsAndModel": "Schimbă modelul"
},
"motionDetectionTuner": {
"unsavedChanges": "Modificări nesalvate la reglajul de mișcare ({{camera}})",
@@ -1074,7 +1078,7 @@
"brands": {
"reolink-rtsp": "RTSP Reolink nu este recomandat. Activează HTTP în setările firmware ale camerei și repornește asistentul."
},
- "customUrlRtspRequired": "URL-urile personalizate trebuie să înceapă cu „rtsp://”. Configurarea manuală este necesară pentru stream-urile care nu sunt RTSP."
+ "customUrlRtspRequired": "URL-urile personalizate trebuie să înceapă cu „rtsp://” sau „rtsps://”. Configurarea manuală este necesară pentru stream-urile care nu sunt RTSP."
},
"docs": {
"reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
@@ -1302,19 +1306,45 @@
"selectCamera": "Selectează o Cameră",
"backToSettings": "Înapoi la Setări Cameră",
"streams": {
- "title": "Activează / Dezactivează Camere",
+ "title": "Stare și detalii cameră",
"desc": "Dezactivează temporar o cameră până la repornirea Frigate. Dezactivarea unei camere oprește complet procesarea streamingului acestei camere de către Frigate. Detecția, înregistrarea și depanarea vor fi indisponibile.{{label}}?",
- "ask_an": "Är detta objektet en {{label}}?",
- "ask_full": "Är detta objektet {{untranslatedLabel}} ({{translatedLabel}})?",
+ "ask_a": "Är detta objektet en/ett {{label}}?",
+ "ask_an": "Är detta objektet en/ett {{label}}?",
+ "ask_full": "Är detta objektet en/ett {{untranslatedLabel}} ({{translatedLabel}})?",
"label": "Bekräfta denna etikett för Frigate Plus"
},
"state": {
diff --git a/web/public/locales/sv/components/filter.json b/web/public/locales/sv/components/filter.json
index efb50d919c..52d5f9f3d7 100644
--- a/web/public/locales/sv/components/filter.json
+++ b/web/public/locales/sv/components/filter.json
@@ -1,13 +1,13 @@
{
"labels": {
"all": {
- "title": "Alla Etiketter",
+ "title": "Alla etiketter",
"short": "Etiketter"
},
"label": "Etiketter",
"count": "{{count}} Etiketter",
"count_one": "{{count}} Etikett",
- "count_other": "{{count}} Etiketter"
+ "count_other": "{{count}} etiketter"
},
"filter": "Filtrera",
"zones": {
@@ -49,7 +49,7 @@
"defaultView": {
"title": "Standard Vy",
"summary": "Sammanfattning",
- "desc": "När inga filter är valda, visa en översikt av de senaste spårade objekten per etikett-typ eller visa ett ofiltrerat rutnät.",
+ "desc": "När inga filter är valda, visa en översikt av de senaste spårade objekten per etikett eller visa ett ofiltrerat rutnät.",
"unfilteredGrid": "Ofiltrerat Rutnät"
},
"searchSource": {
@@ -121,7 +121,7 @@
"filterBySeverity": "Filtrera logg på allvarlighetsgrad",
"disableLogStreaming": "Inaktivera strömning av logg",
"allLogs": "Alla loggar",
- "label": "Filter loggnivå"
+ "label": "Filtrera loggnivå"
},
"trackedObjectDelete": {
"title": "Bekräfta Borttagning",
diff --git a/web/public/locales/sv/views/classificationModel.json b/web/public/locales/sv/views/classificationModel.json
index f4ac4b2efc..5a66ca2246 100644
--- a/web/public/locales/sv/views/classificationModel.json
+++ b/web/public/locales/sv/views/classificationModel.json
@@ -12,10 +12,10 @@
},
"toast": {
"success": {
- "deletedCategory_one": "Borttagen klass",
- "deletedCategory_other": "",
- "deletedImage_one": "Raderade bilder",
- "deletedImage_other": "",
+ "deletedCategory_one": "Tog bort {{count}} klass",
+ "deletedCategory_other": "Tog bort {{count}} klasser",
+ "deletedImage_one": "Tog bort {{count}} bild",
+ "deletedImage_other": "Tog bort {{count}} bilder",
"categorizedImage": "Lyckades klassificera bilden",
"trainedModel": "Modellen har tränats.",
"trainingModel": "Modellträning har startat.",
@@ -28,7 +28,7 @@
"deleteImageFailed": "Misslyckades med att ta bort: {{errorMessage}}",
"deleteCategoryFailed": "Misslyckades med att ta bort klassen: {{errorMessage}}",
"categorizeFailed": "Misslyckades med att kategorisera bilden: {{errorMessage}}",
- "trainingFailed": "Modellträningen misslyckades. Kontrollera Frigate loggarna för mer information.",
+ "trainingFailed": "Modellträningen misslyckades. Kontrollera Frigate-loggarna för mer information.",
"deleteModelFailed": "Misslyckades med att ta bort modellen: {{errorMessage}}",
"updateModelFailed": "Misslyckades med att uppdatera modell: {{errorMessage}}",
"trainingFailedToStart": "Misslyckades med att starta modellträning: {{errorMessage}}",
diff --git a/web/public/locales/sv/views/explore.json b/web/public/locales/sv/views/explore.json
index b6355ea2c1..701f168fe9 100644
--- a/web/public/locales/sv/views/explore.json
+++ b/web/public/locales/sv/views/explore.json
@@ -6,11 +6,11 @@
"startingUp": "Startar upp…",
"estimatedTime": "Beräknad återstående tid:",
"finishingShortly": "Snart klar",
- "context": "Utforskaren kan användas efter inbäddade spårade objekt har slutat återindexerat.",
+ "context": "Utforskaren kan användas när inbäddningarna för spårade objekt har indexerats om.",
"step": {
- "thumbnailsEmbedded": "Miniatyrbilder inbäddad: ",
+ "thumbnailsEmbedded": "Inbäddade miniatyrbilder: ",
"descriptionsEmbedded": "Beskrivningar inbäddade: ",
- "trackedObjectsProcessed": "Spårade objekt bearbetad: "
+ "trackedObjectsProcessed": "Bearbetade spårade objekt: "
}
},
"title": "Utforska är inte tillgänglig",
@@ -68,8 +68,8 @@
},
"editLPR": {
"title": "Redigera nummerplåt",
- "desc": "Ange ett nytt nummerplåt för denna {{label}}",
- "descNoLabel": "Ange ett nytt nummerplåt för detta spårade objekt"
+ "desc": "Ange ett nytt registreringsnummer för detta {{label}}-objekt",
+ "descNoLabel": "Ange ett nytt registreringsnummer för det här spårade objektet"
},
"snapshotScore": {
"label": "Ögonblicksbildspoäng"
@@ -81,7 +81,7 @@
"score": {
"label": "Poäng"
},
- "recognizedLicensePlate": "Erkänd nummerplåt",
+ "recognizedLicensePlate": "Identifierad registreringsskylt",
"estimatedSpeed": "Uppskattad hastighet",
"objects": "Objekt",
"camera": "Kamera",
diff --git a/web/public/locales/sv/views/faceLibrary.json b/web/public/locales/sv/views/faceLibrary.json
index 76a80ce92d..24c80ebe32 100644
--- a/web/public/locales/sv/views/faceLibrary.json
+++ b/web/public/locales/sv/views/faceLibrary.json
@@ -7,7 +7,7 @@
"faceDesc": "Detaljer om det spårade objektet som genererade detta ansikte",
"unknown": "Okänd",
"subLabelScore": "Underetikettpoäng",
- "scoreInfo": "Underetikettpoängen är den viktade poängen för alla igenkända ansiktskonfidenser, så detta kan skilja sig från poängen som visas på ögonblicksbilden."
+ "scoreInfo": "Poängen är ett viktat genomsnitt av alla ansiktspoäng, viktat efter ansiktets storlek i varje bild."
},
"description": {
"placeholder": "Ange ett namn för denna samling",
@@ -75,7 +75,7 @@
"deletedName_other": "{{count}} ansikten har raderats.",
"renamedFace": "Ansiktet har bytt namn till {{name}}",
"trainedFace": "Ansikte är tränant.",
- "updatedFaceScore": "Ansikts poängen har uppdaterats."
+ "updatedFaceScore": "Ansiktspoängen för {{name}} har uppdaterats till {{score}}."
},
"error": {
"uploadingImageFailed": "Misslyckades med att ladda upp bilden: {{errorMessage}}",
diff --git a/web/public/locales/sv/views/live.json b/web/public/locales/sv/views/live.json
index 750fdd8362..7193b021f5 100644
--- a/web/public/locales/sv/views/live.json
+++ b/web/public/locales/sv/views/live.json
@@ -101,7 +101,7 @@
},
"cameraSettings": {
"audioDetection": "Ljuddetektering",
- "title": "{{kamera}} inställningar",
+ "title": "Inställningar för {{camera}}",
"cameraEnabled": "Kamera Aktiverad",
"objectDetection": "Objektsdetektering",
"recording": "Inspelning",
diff --git a/web/public/locales/sv/views/search.json b/web/public/locales/sv/views/search.json
index 2e9f4e0072..c1a01d656c 100644
--- a/web/public/locales/sv/views/search.json
+++ b/web/public/locales/sv/views/search.json
@@ -14,18 +14,18 @@
"desc": {
"step1": "Skriv ett filtreringsnyckelnamn följt av ett kolon (t.ex. \"kameror:\").",
"step2": "Välj ett värde utifrån alternativen eller skriv in ditt egna.",
- "step3": "Använd flera filter genom att addera dom en efter en med ett mellanslag emellan dom.",
+ "step3": "Använd flera filter genom att lägga till dem en efter en med ett mellanslag mellan dem.",
"step4": "Datumfilter (före: och efter:) använd {{DateFormat}} format.",
"step5": "Tidsintervaller använder {{exampleTime}} format.",
"exampleLabel": "Exempel:",
- "step6": "Ta bort filter genom att klicka på 'x\" bredvid dom.",
+ "step6": "Ta bort filter genom att klicka på \"x\" bredvid dem.",
"text": "Filter hjälper dig att begränsa dina sökresultat. Så här använder du dem i inmatningsfältet:"
},
"title": "Hur du använder filter"
},
"header": {
"noFilters": "Filter",
- "activeFilters": "Aktiva Filter",
+ "activeFilters": "Aktiva filter",
"currentFilterType": "Filtervärden"
},
"label": {
diff --git a/web/public/locales/sv/views/settings.json b/web/public/locales/sv/views/settings.json
index 7a256d722e..8d8de47f2a 100644
--- a/web/public/locales/sv/views/settings.json
+++ b/web/public/locales/sv/views/settings.json
@@ -19,19 +19,19 @@
"liveDashboard": {
"automaticLiveView": {
"desc": "Automatiskt byte till kamera där aktivitet registreras. Inaktivering av denna inställning gör att en statisk bild visas i Live Panelen som uppdateras en gång per minut.",
- "label": "Automatisk Live Visning"
+ "label": "Automatisk livevisning"
},
"playAlertVideos": {
"desc": "Som standard visas varningar på Live panelen som små loopande klipp. Inaktivera denna inställning för att bara visa en statisk bild av nya varningar på denna enhet/webbläsare.",
"label": "Spela upp Varnings videor"
},
- "title": "Live Panel",
+ "title": "Livepanel",
"displayCameraNames": {
"label": "Visa alltid kameranamn",
"desc": "Visa alltid kameranamnen i ett chip i instrumentpanelen för livevisning med flera kameror."
},
"liveFallbackTimeout": {
- "label": "Live spelare reserv timeout",
+ "label": "Reservtimeout för livespelare",
"desc": "När en kameras högkvalitativa liveström inte är tillgänglig, återgå till lågbandbreddsläge efter så här många sekunder. Standard: 3."
}
},
@@ -125,10 +125,10 @@
"desc": "Att använda large använder en ArcFace-modell för ansiktsinbäddning och körs automatiskt på GPU:n om tillämpligt."
}
},
- "title": "Ansikts igenkänning"
+ "title": "Ansiktsigenkänning"
},
"licensePlateRecognition": {
- "title": "Nummerplåt Erkännande",
+ "title": "Igenkänning av registreringsskyltar",
"desc": "Frigate kan känna igen nummerplåt på fordon och automatiskt lägga till de upptäckta tecknen i fältet recognized_license_plate eller ett känt namn som en underetikett till objekt av typen bil. Ett vanligt användningsfall kan vara att läsa nummerplåtor på bilar som kör in på en uppfart eller bilar som passerar på en gata.",
"readTheDocumentation": "Läs dokumentationen"
},
@@ -244,7 +244,7 @@
}
},
"motionMaskLabel": "Rörelsemask {{number}}",
- "objectMaskLabel": "Objektmask {{number}} ({{label}})",
+ "objectMaskLabel": "Objektmask {{number}}",
"form": {
"zoneName": {
"error": {
@@ -407,7 +407,7 @@
},
"motionDetectionTuner": {
"title": "Rörelsedetekteringstuner",
- "unsavedChanges": "Osparade ändringar i Motion Tuner ({{camera}})",
+ "unsavedChanges": "Osparade ändringar i rörelsejusteraren ({{camera}})",
"desc": {
"title": "Frigate använder rörelsedetektering som en första kontroll för att se om det händer något i bilden som är värt att kontrollera med objektdetektering.",
"documentation": "Läs guiden för rörelsejustering"
@@ -567,7 +567,7 @@
},
"createUser": {
"title": "Skapa ny användare",
- "desc": "Lägg till ett nytt användarkonto och ange en roll för åtkomst till områden i Frigate gränssnittet.",
+ "desc": "Lägg till ett nytt användarkonto och ange en roll för åtkomst till områden i Frigate-gränssnittet.",
"usernameOnlyInclude": "Användarnamnet får endast innehålla bokstäver, siffror, . eller _",
"confirmPassword": "Vänligen bekräfta ditt lösenord"
},
@@ -597,7 +597,7 @@
"admin": "Administratör",
"adminDesc": "Full åtkomst till alla funktioner.",
"viewer": "Åskådare",
- "viewerDesc": "Begränsat till Live-dashboards, Review, Explore, och Exports bara.",
+ "viewerDesc": "Endast åtkomst till Live-paneler, Granskning, Utforska och Exporter.",
"customDesc": "Anpassad roll med specifik kameraåtkomst."
}
}
@@ -728,8 +728,8 @@
},
"snapshotConfig": {
"title": "Ögonblicksbild konfiguration",
- "desc": "Att skicka till Frigate+ kräver att både snapshots och clean_copy snapshots är aktiverade i din konfiguration.",
- "cleanCopyWarning": "Vissa kameror har aktiverade ögonblicksbilder men har ren kopia inaktiverad. Du måste aktivera clean_copy i din ögonblicksbild konfiguration för att kunna skicka bilder från dessa kameror till Frigate+.",
+ "desc": "För att skicka till Frigate+ måste ögonblicksbilder vara aktiverade i konfigurationen.",
+ "cleanCopyWarning": "Vissa kameror har ögonblicksbilder inaktiverade.",
"table": {
"camera": "Kamera",
"snapshots": "Ögonblicksbilder",
diff --git a/web/public/locales/sv/views/system.json b/web/public/locales/sv/views/system.json
index 0d6eac76ab..8a5320cfd3 100644
--- a/web/public/locales/sv/views/system.json
+++ b/web/public/locales/sv/views/system.json
@@ -126,7 +126,7 @@
"overview": "Översikt",
"info": {
"aspectRatio": "bildförhållande",
- "cameraProbeInfo": "{{camera}} Kamerasondinformation",
+ "cameraProbeInfo": "Kamerainformation för {{camera}}",
"streamDataFromFFPROBE": "Strömdata erhålls med ffprobe.",
"codec": "Codec:",
"resolution": "Upplösning:",
@@ -173,7 +173,7 @@
"detectHighCpuUsage": "{{camera}} har hög CPU-användning vid detektering ({{detectAvg}}%)",
"healthy": "Systemet är hälsosamt",
"reindexingEmbeddings": "Omindexering av inbäddningar ({{processed}}% klar)",
- "cameraIsOffline": "{{camera}} är urkopplad",
+ "cameraIsOffline": "{{camera}} är frånkopplad",
"detectIsSlow": "{{detect}} är långsam ({{speed}} ms)",
"detectIsVerySlow": "{{detect}} är väldigt långsam ({{speed}} ms)",
"shmTooLow": "/dev/shm allokeringen ({{total}} MB) bör ökas till minst {{min}} MB."
@@ -187,11 +187,11 @@
"face_recognition": "Ansiktsigenkänning",
"plate_recognition": "Nummerplåt igenkänning",
"image_embedding_speed": "Bildinbäddningshastighet",
- "face_embedding_speed": "Ansikts inbäddnings hastighet",
+ "face_embedding_speed": "Hastighet för ansiktsinbäddning",
"face_recognition_speed": "Ansiktsigenkänningshastighet",
"plate_recognition_speed": "Hastighet för igenkänning av nummerplåtar",
"text_embedding_speed": "Textinbäddningshastighet",
- "yolov9_plate_detection_speed": "YOLOv9 nummerplåt detekterings hastighet",
+ "yolov9_plate_detection_speed": "Detekteringshastighet för YOLOv9-registreringsskyltar",
"yolov9_plate_detection": "YOLOv9 nummerplåt detektering",
"review_description": "Recensionsbeskrivning",
"review_description_speed": "Recensionsbeskrivning Hastighet",
diff --git a/web/public/locales/te/audio.json b/web/public/locales/te/audio.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/audio.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/common.json b/web/public/locales/te/common.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/common.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/components/auth.json b/web/public/locales/te/components/auth.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/components/auth.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/components/camera.json b/web/public/locales/te/components/camera.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/components/camera.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/components/dialog.json b/web/public/locales/te/components/dialog.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/components/dialog.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/components/filter.json b/web/public/locales/te/components/filter.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/components/filter.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/components/icons.json b/web/public/locales/te/components/icons.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/components/icons.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/components/input.json b/web/public/locales/te/components/input.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/components/input.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/components/player.json b/web/public/locales/te/components/player.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/components/player.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/config/cameras.json b/web/public/locales/te/config/cameras.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/config/cameras.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/config/global.json b/web/public/locales/te/config/global.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/config/global.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/config/groups.json b/web/public/locales/te/config/groups.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/config/groups.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/config/validation.json b/web/public/locales/te/config/validation.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/config/validation.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/objects.json b/web/public/locales/te/objects.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/objects.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/chat.json b/web/public/locales/te/views/chat.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/chat.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/classificationModel.json b/web/public/locales/te/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/configEditor.json b/web/public/locales/te/views/configEditor.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/configEditor.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/events.json b/web/public/locales/te/views/events.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/events.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/explore.json b/web/public/locales/te/views/explore.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/explore.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/exports.json b/web/public/locales/te/views/exports.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/exports.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/faceLibrary.json b/web/public/locales/te/views/faceLibrary.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/faceLibrary.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/live.json b/web/public/locales/te/views/live.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/live.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/motionSearch.json b/web/public/locales/te/views/motionSearch.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/motionSearch.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/recording.json b/web/public/locales/te/views/recording.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/recording.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/replay.json b/web/public/locales/te/views/replay.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/replay.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/search.json b/web/public/locales/te/views/search.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/search.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/settings.json b/web/public/locales/te/views/settings.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/settings.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/te/views/system.json b/web/public/locales/te/views/system.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/te/views/system.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/tr/components/dialog.json b/web/public/locales/tr/components/dialog.json
index 19cf03c621..f2c8face04 100644
--- a/web/public/locales/tr/components/dialog.json
+++ b/web/public/locales/tr/components/dialog.json
@@ -74,7 +74,8 @@
},
"fromTimeline": {
"saveExport": "Dışa Aktarımı Kaydet",
- "previewExport": "Dışa Aktarımı Önizle"
+ "previewExport": "Dışa Aktarımı Önizle",
+ "useThisRange": "Use This Range"
},
"name": {
"placeholder": "Dışa Aktarımı Adlandırın"
diff --git a/web/public/locales/uk/common.json b/web/public/locales/uk/common.json
index 39dff176fc..937bd735bb 100644
--- a/web/public/locales/uk/common.json
+++ b/web/public/locales/uk/common.json
@@ -120,7 +120,19 @@
"deleteNow": "Видалити негайно",
"next": "Наступне",
"unsuspended": "Відновити дію",
- "continue": "Продовжити"
+ "continue": "Продовжити",
+ "add": "Додати",
+ "applying": "Застосовую…",
+ "undo": "Скасувати",
+ "copiedToClipboard": "Скопійовано в буфер обміну",
+ "modified": "Змінено",
+ "overridden": "Перевизначено",
+ "resetToGlobal": "Скинути до Глобальних",
+ "resetToDefault": "Скинути до По замовчуванню",
+ "saveAll": "Зберігти все",
+ "savingAll": "Зберігаю все…",
+ "undoAll": "Відмінити все",
+ "retry": "Спробувати ще"
},
"menu": {
"language": {
@@ -165,7 +177,9 @@
"bg": "Български (Болгарська)",
"gl": "Galego (Галісійська)",
"id": "Bahasa Indonesia (Індонезійська)",
- "ur": "اردو (Урду)"
+ "ur": "اردو (Урду)",
+ "hr": "Hrvatski (Хорватська)",
+ "bs": "Bosanski (Боснійська)"
},
"system": "Система",
"systemMetrics": "Системна метріка",
@@ -223,7 +237,11 @@
},
"appearance": "Зовнішність",
"withSystem": "Система",
- "classification": "Класифікація"
+ "classification": "Класифікація",
+ "profiles": "Профілі",
+ "actions": "Дії",
+ "features": "Особливості",
+ "chat": "Чат"
},
"unit": {
"speed": {
@@ -258,7 +276,8 @@
"error": {
"title": "Не вдалося зберегти зміни конфігурації: {{errorMessage}}",
"noMessage": "Не вдалося зберегти зміни налаштування"
- }
+ },
+ "success": "Зміни до налаштувань збережені вдало."
},
"copyUrlToClipboard": "Скопійовано URL до буфера обміну."
},
@@ -303,5 +322,10 @@
"field": {
"optional": "Необов'язково",
"internalID": "Внутрішній ідентифікатор, який Frigate використовує в конфігурації та базі даних"
+ },
+ "no_items": "Нема елементів",
+ "validation_errors": "Помилки при перевірці",
+ "credentialField": {
+ "savedPlaceholder": "Збережено - залиште порожнім щоб зберегти поточні"
}
}
diff --git a/web/public/locales/uk/components/camera.json b/web/public/locales/uk/components/camera.json
index 0836510e14..dc12ccb8f2 100644
--- a/web/public/locales/uk/components/camera.json
+++ b/web/public/locales/uk/components/camera.json
@@ -82,6 +82,7 @@
"hideOptions": "Приховати параметри"
},
"boundingBox": "Обмежувальна рамка",
- "timestamp": "Позначка часу"
+ "timestamp": "Позначка часу",
+ "paths": "Шляхи"
}
}
diff --git a/web/public/locales/uk/components/dialog.json b/web/public/locales/uk/components/dialog.json
index 7ede7901bf..f1bab4a3fd 100644
--- a/web/public/locales/uk/components/dialog.json
+++ b/web/public/locales/uk/components/dialog.json
@@ -53,16 +53,29 @@
"export": {
"toast": {
"error": {
- "failed": "Не вдалося розпочати експорт: {{error}}",
+ "failed": "Не вдалося додати до черги експорт: {{error}}",
"endTimeMustAfterStartTime": "Час закінчення повинен бути після часу початку",
"noVaildTimeSelected": "Не вибрано допустимий діапазон часу"
},
"success": "Експорт успішно розпочато. Перегляньте файл на сторінці експорту.",
- "view": "Переглянути"
+ "view": "Переглянути",
+ "queued": "Експорт додано до черги. Дивіться прогрес на сторінці експортів.",
+ "batchSuccess_one": "Розпочинаю {{count}} експорт. Відкриваю справу зараз.",
+ "batchSuccess_few": "Розпочинаю {{count}} експортів. Відкриваю справу зараз.",
+ "batchSuccess_many": "Розпочинаю {{count}} експортів. Відкриваю справу зараз.",
+ "batchPartial": "Розпочато {{successful}} з {{total}} експортів. Невдалі камери: {{failedCameras}}",
+ "batchFailed": "Не зміг розпочати {{total}} експортів. Невдалі камери: {{failedCameras}}",
+ "batchQueuedSuccess_one": "Додав до черги {{count}} експорт. Відкриваю справу зараз.",
+ "batchQueuedSuccess_few": "Додав до черги {{count}} експортів. Відкриваю справу зараз.",
+ "batchQueuedSuccess_many": "Додав до черги {{count}} експортів. Відкриваю справу зараз.",
+ "batchQueuedPartial": "Додав до черги {{successful}} з {{total}} експортів. Невдалі камери: {{failedCameras}}",
+ "batchQueueFailed": "Не зміг додати до черги {{total}} експортів. Невдалі камери: {{failedCameras}}"
},
"fromTimeline": {
"saveExport": "Зберегти експорт",
- "previewExport": "Попередній перегляд експорту"
+ "previewExport": "Попередній перегляд експорту",
+ "queueingExport": "Додаю до черги експорт...",
+ "useThisRange": "Використовуй цей діапазон"
},
"time": {
"fromTimeline": "Вибір шкали часу",
@@ -84,7 +97,59 @@
},
"select": "Вибрати",
"export": "Експорт",
- "selectOrExport": "Выбiр або експорт"
+ "selectOrExport": "Выбiр або експорт",
+ "case": {
+ "newCaseOption": "Створити новий випадок",
+ "newCaseNamePlaceholder": "Ім'я для нового випадку",
+ "newCaseDescriptionPlaceholder": "Опис випадку",
+ "label": "Випадок",
+ "nonAdminHelp": "Новий випадок буде створено для цих експортів.",
+ "placeholder": "Оберіть випадок"
+ },
+ "queueing": "Додаю експорт у чергу...",
+ "tabs": {
+ "export": "Одна камера",
+ "multiCamera": "Мульті-камера"
+ },
+ "multiCamera": {
+ "timeRange": "Діапазон часу",
+ "selectFromTimeline": "Оберіть з шкали часу",
+ "cameraSelection": "Камери",
+ "cameraSelectionHelp": "Камери з відстежуваними об'єктами у цьому часовому діапазоні є попередньо обраними",
+ "checkingActivity": "Перевіряю активність камери...",
+ "noCameras": "Доступні камери відсутні",
+ "detectionCount_one": "{{count}} відстежувана камера",
+ "detectionCount_few": "{{count}} відстежувані камери",
+ "detectionCount_many": "{{count}} відстежуваних камер",
+ "nameLabel": "Ім'я для експорту",
+ "namePlaceholder": "Необов'язкове базове ім'я для цих експортів",
+ "queueingButton": "Додаю експорти у чергу...",
+ "exportButton_one": "Експорт {{count}} камери",
+ "exportButton_few": "Експорт {{count}} камер",
+ "exportButton_many": "Експорт {{count}} камер"
+ },
+ "multi": {
+ "title_one": "Експорт {{count}} рецензії",
+ "title_few": "Експорт {{count}} рецензій",
+ "title_many": "Експорт {{count}} рецензій",
+ "description": "Експорт всіх обраних рецензій. Всі експорти будуть згруповані під спільною справою.",
+ "descriptionNoCase": "Експорт всіх обраних рецензій.",
+ "caseNamePlaceholder": "Переглянути експорт - {{date}}",
+ "exportButton_one": "Переглянути {{count}} рецензію",
+ "exportButton_few": "Переглянути {{count}} рецензії",
+ "exportButton_many": "Переглянути {{count}} рецензій",
+ "exportingButton": "Експортую...",
+ "toast": {
+ "started_one": "Розпочинаю {{count}} експорт. Відкриваю справу зараз.",
+ "started_few": "Розпочинаю {{count}} експортів. Відкриваю справу зараз.",
+ "started_many": "Розпочинаю {{count}} експортів. Відкриваю справу зараз.",
+ "startedNoCase_one": "Розпочинаю {{count}} експорт.",
+ "startedNoCase_few": "Розпочинаю {{count}} експортів.",
+ "startedNoCase_many": "Розпочинаю {{count}} експортів.",
+ "partial": "Розпочато {{successful}} з {{total}} експортів. Невдало: {{failedItems}}",
+ "failed": "Не зміг розпочати {{total}} експортів. Невдало: {{failedItems}}"
+ }
+ }
},
"recording": {
"button": {
@@ -96,12 +161,20 @@
"confirmDelete": {
"title": "Підтвердити вилучення",
"desc": {
- "selected": "Ви впевнені, що хочете видалити все записане відео, пов'язане з цим пунктом огляду? 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..ebb58cecfb 100644
--- a/web/public/locales/zh-CN/common.json
+++ b/web/public/locales/zh-CN/common.json
@@ -222,7 +222,8 @@
"id": "印度尼西亚语 (Bahasa Indonesia)",
"ur": "乌尔都语 (اردو)",
"hr": "克罗地亚语 (Hrvatski)",
- "bs": "波斯尼亚语(Bosanski)"
+ "bs": "波斯尼亚语(Bosanski)",
+ "zhHant": "繁体中文 (Traditional Chinese)"
},
"appearance": "外观",
"darkMode": {
@@ -319,5 +320,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/cameras.json b/web/public/locales/zh-CN/config/cameras.json
index 73e4fecde7..9faae8a747 100644
--- a/web/public/locales/zh-CN/config/cameras.json
+++ b/web/public/locales/zh-CN/config/cameras.json
@@ -718,7 +718,7 @@
"label": "时间戳效果",
"description": "时间戳文本的视觉效果(none、solid、shadow)。"
},
- "description": "应用于录像和快照的实时监控流中时间戳的样式选项。"
+ "description": "快照与调试视图的时间戳样式设置。"
},
"semantic_search": {
"label": "语义搜索",
@@ -858,6 +858,10 @@
"dashboard": {
"label": "在页面中显示",
"description": "切换此摄像头在 Frigate 页面的所有位置是否可见。禁用此项将需要手动编辑配置才能在页面中再次查看此摄像头。"
+ },
+ "review": {
+ "label": "在核查中显示",
+ "description": "切换该摄像头是否在核查页面可见(包含核查页、摄像头筛选栏、画面变动核查与历史视图)。"
}
},
"best_image_timeout": {
diff --git a/web/public/locales/zh-CN/config/global.json b/web/public/locales/zh-CN/config/global.json
index ddfeb01be1..4e35be178b 100644
--- a/web/public/locales/zh-CN/config/global.json
+++ b/web/public/locales/zh-CN/config/global.json
@@ -496,7 +496,7 @@
},
"default_role": {
"label": "默认权限组",
- "description": "当没有权限组映射适用时分配给代理认证用户的默认权限组(admin 或 viewer)。"
+ "description": "当没有权限组映射适用时分配给代理认证用户的默认权限组。"
},
"separator": {
"label": "分隔符",
@@ -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": {
@@ -2178,6 +2213,10 @@
"dashboard": {
"label": "在页面中显示",
"description": "切换此摄像头在 Frigate 页面中是否可见。禁用后需要手动编辑配置才能再次在页面中查看此摄像头。"
+ },
+ "review": {
+ "label": "在核查中显示",
+ "description": "切换该摄像头是否在核查页面可见(包含核查页、摄像头筛选栏、画面变动核查与历史视图)。"
}
},
"onvif": {
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/motionSearch.json b/web/public/locales/zh-CN/views/motionSearch.json
index af8874daf1..11dafbeea8 100644
--- a/web/public/locales/zh-CN/views/motionSearch.json
+++ b/web/public/locales/zh-CN/views/motionSearch.json
@@ -22,7 +22,9 @@
"polygonControls": {
"points_other": "{{count}} 个点位",
"undo": "撤销上一个点位",
- "reset": "重置多边形"
+ "reset": "重置多边形",
+ "drawMode": "绘制",
+ "moveMode": "移动"
},
"motionHeatmapLabel": "画面变动热力图",
"dialog": {
@@ -38,11 +40,11 @@
"settings": {
"title": "搜索设置",
"parallelMode": "并行模式",
- "parallelModeDesc": "同时扫描多个录制片段(速度更快,但 CPU 占用会显著升高)",
+ "parallelModeDesc": "同时扫描多个录制片段(速度更快,将使用更多解码资源)",
"threshold": "灵敏度阈值",
"thresholdDesc": "数值越低,可检测到越小的变化(取值范围 1-255)",
"minArea": "最小变化区域",
- "minAreaDesc": "最小感兴趣区域变化占比,达到该比例才会判定为有效变动",
+ "minAreaDesc": "单个移动区域的最小尺寸,占目标区域的百分比",
"frameSkip": "帧跳过",
"frameSkipDesc": "每隔 N 帧进行一次处理。将该值设置为摄像头的帧率,即可实现每秒处理一帧画面(例如:5 帧 / 秒的摄像头设为 5,30 帧 / 秒的摄像头设为 30)。数值越高处理速度越快,但有可能遗漏短时移动侦测事件。",
"maxResults": "最大结果数",
@@ -68,6 +70,9 @@
"framesDecoded": "画面已解码",
"wallTime": "搜索时间",
"segmentErrors": "片段异常",
- "seconds": "{{seconds}} 秒"
- }
+ "seconds": "{{seconds}} 秒",
+ "minutesSeconds": "{{minutes}}分 {{seconds}}秒",
+ "scanSummary": "{{segments}} 分段 · {{time}}"
+ },
+ "scanning": "扫描中 {{time}}"
}
diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json
index 0a181dee18..aa7904a6ca 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": "常规",
@@ -726,7 +726,8 @@
"notificationUnavailable": {
"title": "通知功能不可用",
"desc": "网页推送通知需要安全连接(https://…)。这是浏览器的限制。请通过安全方式访问 Frigate 以使用通知功能。",
- "documentation": "阅读文档"
+ "documentation": "阅读文档",
+ "descPwa": "在 iOS 设备上,只有将 Frigate 安装到主屏幕后,才能使用网页推送通知。请打开分享菜单,选择添加到主屏幕,然后从新生成的图标打开 Frigate,即可注册此设备以接收通知。"
},
"email": {
"title": "电子邮箱",
@@ -857,7 +858,7 @@
"desc": "将使用 大模型。该选项使用了完整的 Jina 模型,条件允许的情况下将自动使用 GPU 运行。"
}
},
- "title": "分类搜索",
+ "title": "语义搜索",
"desc": "Frigate 中的语义搜索功能将能够让你通过图片、用户自定义的文本描述,或自动生成的文本描述等方式在核查项目中查找目标/物体。",
"readTheDocumentation": "阅读文档"
},
@@ -1133,7 +1134,7 @@
"brands": {
"reolink-rtsp": "不建议使用萤石 RTSP 协议。建议在摄像头设置中启用 HTTP 协议,并重新运行摄像头添加向导。"
},
- "customUrlRtspRequired": "自定义 URL 必须以“rtsp://”开头;对于非 RTSP 协议的摄像头流,需手动添加至配置文件。"
+ "customUrlRtspRequired": "自定义 URL 必须以“rtsp://”或“rtsps://”开头;对于非 RTSP 协议的摄像头流,需手动添加至配置文件。"
},
"docs": {
"reolink": "https://docs.frigate-cn.video/configuration/camera_specific.html#reolink-cameras"
@@ -1361,13 +1362,13 @@
"selectCamera": "选择摄像头",
"backToSettings": "返回摄像头设置",
"streams": {
- "title": "开启或关闭摄像头",
+ "title": "摄像头状态和详细信息",
"desc": "将临时禁用摄像头,直到 Frigate 重启。禁用摄像头将完全停止 Frigate 对该摄像头视频流的处理,届时检测、录制及调试功能均不可用。