diff --git a/web/public/locales/ro/common.json b/web/public/locales/ro/common.json index 65129e6d6..1938c3d11 100644 --- a/web/public/locales/ro/common.json +++ b/web/public/locales/ro/common.json @@ -187,7 +187,8 @@ "review": "Revizuire", "classification": "Clasificare", "chat": "Chat", - "actions": "Acțiuni" + "actions": "Acțiuni", + "profiles": "Profile" }, "button": { "cameraAudio": "Sunet cameră", @@ -236,7 +237,8 @@ "saveAll": "Salvează toate", "savingAll": "Se salvează toate…", "undoAll": "Anulează toate", - "applying": "Se aplică…" + "applying": "Se aplică…", + "retry": "Reîncearcă" }, "unit": { "speed": { @@ -291,7 +293,8 @@ "error": { "noMessage": "Nu s-au putut salva modificările de configurație", "title": "Salvarea modificărilor de configurație a eșuat: {{errorMessage}}" - } + }, + "success": "Modificările de configurare au fost salvate cu succes." } }, "accessDenied": { @@ -316,5 +319,7 @@ "field": { "optional": "Opțional", "internalID": "ID-ul Intern pe care Frigate îl folosește în configurație și în baza de date" - } + }, + "no_items": "Niciun element", + "validation_errors": "Erori de validare" } diff --git a/web/public/locales/ro/components/camera.json b/web/public/locales/ro/components/camera.json index 093ff4532..35f57ff01 100644 --- a/web/public/locales/ro/components/camera.json +++ b/web/public/locales/ro/components/camera.json @@ -82,6 +82,7 @@ "zones": "Zone", "mask": "Mască", "motion": "Mișcare", - "regions": "Regiuni" + "regions": "Regiuni", + "paths": "Căi" } } diff --git a/web/public/locales/ro/config/cameras.json b/web/public/locales/ro/config/cameras.json index e7fb961d0..01c256adf 100644 --- a/web/public/locales/ro/config/cameras.json +++ b/web/public/locales/ro/config/cameras.json @@ -79,8 +79,8 @@ "label": "Detecție obiecte", "description": "Setări pentru rolul de detecție folosit pentru a rula recunoașterea obiectelor și trackerele.", "enabled": { - "label": "Detecție activată", - "description": "Activează sau dezactivează detecția obiectelor pentru această cameră. Detecția trebuie să fie activă pentru ca urmărirea obiectelor să funcționeze." + "label": "Activează detecția de obiecte", + "description": "Activează sau dezactivează detecția obiectelor pentru această cameră." }, "height": { "label": "Înălțime detect", @@ -303,7 +303,7 @@ }, "skip_motion_threshold": { "label": "Ignoră pragul de mișcare", - "description": "Dacă se schimbă mai mult de această fracțiune din imagine într-un singur cadru, detectorul nu va returna nicio casetă de mișcare și se va recalibra imediat. Acest lucru poate economisi CPU și reduce alertele false în timpul fulgerelor, furtunilor etc., dar poate rata evenimente reale, cum ar fi o cameră PTZ care urmărește automat un obiect. Compromisul este între a pierde câțiva megaocteți de înregistrări versus a revizui câteva clipuri scurte. Interval 0.0 - 1.0." + "description": "Dacă este setat la o valoare între 0.0 și 1.0, și mai mult decât această fracție din imagine se modifică într-un singur cadru, detectorul nu va returna casete de mișcare și se va recalibra imediat. Acest lucru poate economisi CPU și reduce rezultatele fals pozitive în timpul fulgerelor, furtunilor etc., dar poate rata evenimente reale, cum ar fi o cameră PTZ care urmărește automat un obiect. Compromisul este între a pierde câțiva megabytes de înregistrări versus a revizui câteva clipuri scurte. Lasă nesetat (None) pentru a dezactiva această funcție." } }, "objects": { @@ -529,7 +529,7 @@ }, "detections": { "label": "Configurație detecții", - "description": "Setări pentru evenimentele de detecție (non-alertă).", + "description": "Setări pentru care obiecte urmărite generează detecții (fără alertă) și cum sunt păstrate detecțiile.", "enabled": { "label": "Activare detecții", "description": "Activează sau dezactivează evenimentele de detecție pentru această cameră." @@ -626,9 +626,9 @@ }, "snapshots": { "label": "Snapshot-uri", - "description": "Setări pentru snapshot-urile JPEG salvate ale obiectelor monitorizate de această cameră.", + "description": "Setări pentru snapshot-uri generate prin API ale obiectelor urmărite pentru această cameră.", "enabled": { - "label": "Snapshot-uri activate", + "label": "Activează snapshot-urile", "description": "Activează sau dezactivează salvarea de snapshots pentru această cameră." }, "clean_copy": { @@ -637,15 +637,15 @@ }, "timestamp": { "label": "Overlay timestamp", - "description": "Pune data și ora pe snapshot-urile salvate." + "description": "Suprapune data și ora pe snapshot-urile din API." }, "bounding_box": { "label": "Overlay chenar", - "description": "Desenează chenarele obiectelor pe snapshot-uri." + "description": "Desenează chenarele obiectelor urmărite pe snapshot-urile din API." }, "crop": { "label": "Decupează snapshot-ul", - "description": "Decupează snapshot-ul pe mărimea obiectului detectat." + "description": "Decupează snapshot-urile din API pe chenarul obiectului detectat." }, "required_zones": { "label": "Zone obligatorii", @@ -653,11 +653,11 @@ }, "height": { "label": "Înălțime snapshot", - "description": "Înălțimea la care se redimensionează snapshot-ul; lasă gol pentru dimensiunea originală." + "description": "Înălțimea (în pixeli) la care să se redimensioneze snapshot-urile din API; lasă gol pentru a păstra dimensiunea originală." }, "retain": { "label": "Retenție snapshot-uri", - "description": "Setări pentru păstrarea snapshot-urilor.", + "description": "Setări de reținere pentru snapshot-uri, incluzând zilele implicite și suprascrierile per obiect.", "default": { "label": "Retenție implicită", "description": "Numărul implicit de zile pentru păstrare." @@ -672,8 +672,8 @@ } }, "quality": { - "label": "Calitate JPEG", - "description": "Calitatea encodării JPEG pentru snapshot-uri (0-100)." + "label": "Calitatea snapshot-ului", + "description": "Calitatea encodării pentru snapshot-urile salvate (0-100)." } }, "timestamp_style": { @@ -838,6 +838,10 @@ "ignore_time_mismatch": { "label": "Ignoră decalaj timp", "description": "Ignoră diferențele de sincronizare a timpului între cameră și serverul Frigate pentru comunicarea ONVIF." + }, + "profile": { + "label": "Profil ONVIF", + "description": "Profil media ONVIF specific de utilizat pentru control PTZ, potrivit după token sau nume. Dacă nu este setat, se selectează automat primul profil cu configurație PTZ validă." } }, "type": { @@ -937,5 +941,9 @@ "enabled_in_config": { "label": "Stare inițială cameră", "description": "Păstrează starea originală a camerei." + }, + "profiles": { + "label": "Profiluri", + "description": "Profile de configurare denumite cu suprascrieri parțiale care pot fi activate la rulare." } } diff --git a/web/public/locales/ro/config/global.json b/web/public/locales/ro/config/global.json index 13455527c..d07e3bab4 100644 --- a/web/public/locales/ro/config/global.json +++ b/web/public/locales/ro/config/global.json @@ -111,8 +111,8 @@ "label": "Detecție obiecte", "description": "Setări pentru rolul de detecție folosit pentru a rula recunoașterea obiectelor și trackerele.", "enabled": { - "label": "Detecție activată", - "description": "Activează detecția pentru toate camerele. Trebuie să fie activă pentru ca urmărirea obiectelor să funcționeze." + "label": "Activează detecția de obiecte", + "description": "Activează sau dezactivează detecția de obiecte pentru toate camerele; poate fi suprascrisă pentru fiecare cameră în parte." }, "height": { "label": "Înălțime detect", @@ -293,7 +293,7 @@ "label": "Calitate live", "description": "Calitatea encodării pentru stream-ul jsmpeg (1 maxim, 31 minim)." }, - "description": "Setări folosite de interfața web pentru a controla rezoluția și calitatea stream-ului live." + "description": "Setări pentru a controla rezoluția și calitatea stream live jsmpeg. Acest lucru nu afectează camerele retransmise care folosesc go2rtc pentru vizualizare live." }, "lpr": { "label": "Recunoaștere numere înmatriculare", @@ -413,7 +413,7 @@ "description": "Setări implicite pentru detecția mișcării, aplicate dacă nu sunt suprascrise per cameră.", "skip_motion_threshold": { "label": "Ignoră pragul de mișcare", - "description": "Dacă se schimbă mai mult de această fracțiune din imagine într-un singur cadru, detectorul nu va returna nicio casetă de mișcare și se va recalibra imediat. Acest lucru poate economisi CPU și reduce alertele false în timpul fulgerelor, furtunilor etc., dar poate rata evenimente reale, cum ar fi o cameră PTZ care urmărește automat un obiect. Compromisul este între a pierde câțiva megaocteți de înregistrări versus a revizui câteva clipuri scurte. Interval 0.0 - 1.0." + "description": "Dacă este setat la o valoare între 0.0 și 1.0, și mai mult decât această fracție din imagine se modifică într-un singur cadru, detectorul nu va returna casete de mișcare și se va recalibra imediat. Acest lucru poate economisi CPU și reduce rezultatele fals pozitive în timpul fulgerelor, furtunilor etc., dar poate rata evenimente reale, cum ar fi o cameră PTZ care urmărește automat un obiect. Compromisul este între a pierde câțiva megabytes de înregistrări versus a revizui câteva clipuri scurte. Lasă nesetat (None) pentru a dezactiva această funcție." } }, "objects": { @@ -638,7 +638,7 @@ }, "detections": { "label": "Configurație detecții", - "description": "Setări pentru evenimentele de detecție (non-alertă).", + "description": "Setări pentru care obiecte urmărite generează detecții (fără alertă) și cum sunt păstrate detecțiile.", "enabled": { "label": "Activare detecții", "description": "Activează sau dezactivează evenimentele de detecție." @@ -742,8 +742,8 @@ "description": "Declanșează o reindexare completă a obiectelor istorice în baza de date de înglobări." }, "model": { - "label": "Model căutare semantică", - "description": "Modelul de înglobări folosit (ex: 'jinav1')." + "label": "Model de căutare semantică sau nume furnizor GenAI", + "description": "Modelul de înglobări de folosit pentru căutarea semantică (de exemplu 'jinav1'), sau numele unui furnizor GenAI cu rolul de înglobări." }, "model_size": { "label": "Mărime model", @@ -757,7 +757,7 @@ "snapshots": { "label": "Snapshot-uri", "enabled": { - "label": "Snapshot-uri activate", + "label": "Activează snapshot-urile", "description": "Activează sau dezactivează salvarea de snapshot-uri." }, "clean_copy": { @@ -766,15 +766,15 @@ }, "timestamp": { "label": "Overlay timestamp", - "description": "Pune data și ora pe snapshot-urile salvate." + "description": "Suprapune data și ora pe snapshot-urile din API." }, "bounding_box": { "label": "Overlay chenar", - "description": "Desenează chenarele obiectelor pe snapshot-uri." + "description": "Desenează chenarele obiectelor urmărite pe snapshot-urile din API." }, "crop": { "label": "Decupează snapshot-ul", - "description": "Decupează snapshot-ul pe mărimea obiectului detectat." + "description": "Decupează snapshot-urile din API pe chenarul obiectului detectat." }, "required_zones": { "label": "Zone obligatorii", @@ -782,11 +782,11 @@ }, "height": { "label": "Înălțime snapshot", - "description": "Înălțimea la care se redimensionează snapshot-ul; lasă gol pentru dimensiunea originală." + "description": "Înălțimea (în pixeli) la care să se redimensioneze snapshot-urile din API; lasă gol pentru a păstra dimensiunea originală." }, "retain": { "label": "Retenție snapshot-uri", - "description": "Setări pentru păstrarea snapshot-urilor.", + "description": "Setări de reținere pentru snapshot-uri, incluzând zilele implicite și suprascrierile per obiect.", "default": { "label": "Retenție implicită", "description": "Numărul implicit de zile pentru păstrare." @@ -801,10 +801,10 @@ } }, "quality": { - "label": "Calitate JPEG", - "description": "Calitatea encodării JPEG pentru snapshot-uri (0-100)." + "label": "Calitatea snapshot-ului", + "description": "Calitatea encodării pentru snapshot-urile salvate (0-100)." }, - "description": "Setări pentru snapshot-urile JPEG ale obiectelor urmărite." + "description": "Setări pentru snapshot-urile obiectelor urmărite, generate prin API, pentru toate camerele; pot fi suprascrise pentru fiecare cameră în parte." }, "timestamp_style": { "label": "Stil timestamp", @@ -988,6 +988,10 @@ "ignore_time_mismatch": { "label": "Ignoră decalaj timp", "description": "Ignoră diferențele de sincronizare a timpului între cameră și serverul Frigate pentru comunicarea ONVIF." + }, + "profile": { + "label": "Profil ONVIF", + "description": "Profil media ONVIF specific de utilizat pentru control PTZ, potrivit după token sau nume. Dacă nu este setat, se selectează automat primul profil cu configurație PTZ validă." } }, "version": { @@ -1202,7 +1206,7 @@ "label": "Hardware detector", "description": "Configurare pentru detectoarele de obiecte (CPU, GPU, backend-uri ONNX) și orice setări de model specifice detectorului.", "type": { - "label": "Tip detector", + "label": "Tip", "description": "Tipul de detector de folosit pentru detecția obiectelor (de exemplu, 'cpu', 'edgetpu', 'openvino')." }, "cpu": { @@ -1987,13 +1991,116 @@ "label": "Linger socket ZMQ (ms)", "description": "Perioada de tip 'linger' a socket-ului în milisecunde." } + }, + "axengine": { + "label": "NPU AXEngine", + "description": "Detector NPU AXERA AX650N/AX8850N care rulează fișiere .axmodel compilate prin intermediul runtime-ului AXEngine.", + "type": { + "label": "Tip" + }, + "model": { + "label": "Configurație model specifică detectorului", + "description": "Opțiuni de configurare a modelului specifice detectorului (cale, dimensiune intrare etc.).", + "path": { + "label": "Calea către modelul personalizat de detecție a obiectelor", + "description": "Calea către un fișier de model de detecție personalizat (sau plus:// pentru modelele Frigate+)." + }, + "labelmap_path": { + "label": "Harta etichetelor pentru detectorul de obiecte personalizat", + "description": "Calea către un fișier de hartă a etichetelor care asociază clasele numerice cu etichete de tip text pentru detector." + }, + "width": { + "label": "Lățimea de intrare a modelului de detecție a obiectelor", + "description": "Lățimea tensorului de intrare al modelului în pixeli." + }, + "height": { + "label": "Înălțimea tensorului de intrare al modelului în pixeli", + "description": "Înălțimea tensorului de intrare al modelului în pixeli." + }, + "labelmap": { + "label": "Personalizarea hărții etichetelor", + "description": "Suprascrieri sau reasocieri de intrări pentru a le fuziona în harta de etichete standard." + }, + "attributes_map": { + "label": "Harta etichetelor de obiecte către etichetele atributelor acestora", + "description": "Harta de la etichetele obiectelor la etichetele atributelor utilizate pentru a atașa metadate (de exemplu „car” -> [„license_plate”])." + }, + "input_tensor": { + "label": "Forma tensorului de intrare al modelului", + "description": "Formatul tensorului așteptat de model: „nhwc” sau „nchw”." + }, + "input_pixel_format": { + "label": "Format culoare pixeli pentru intrarea modelului", + "description": "Spațiul de culoare al pixelilor așteptat de model: 'rgb', 'bgr' sau 'yuv'." + }, + "input_dtype": { + "label": "Tip D intrare model", + "description": "Tipul de date al tensorului de intrare al modelului (de exemplu 'float32')." + }, + "model_type": { + "label": "Tip model detecție obiecte", + "description": "Tipul arhitecturii modelului detector (ssd, yolox, yolonas) folosit de unii detectori pentru optimizare." + } + }, + "model_path": { + "label": "Cale model specifică detectorului", + "description": "Calea fișierului către binarul modelului detector, dacă este cerută de detectorul ales." + } + }, + "model": { + "label": "Configurația modelului specifică detectorului", + "description": "Opțiuni de configurare a modelului specifice detectorului (cale, dimensiune intrare etc.).", + "path": { + "label": "Cale model detector de obiecte personalizat", + "description": "Calea către un fișier al modelului personalizat de detecție (sau plus:// pentru modelele Frigate+)." + }, + "labelmap_path": { + "label": "Harta de etichete pentru detectorul personalizat de obiecte", + "description": "Calea către un fișier labelmap care asociază clasele numerice cu etichete text pentru detector." + }, + "width": { + "label": "Lățimea de intrare pentru modelul de detecție a obiectelor", + "description": "Lățimea tensorului de intrare al modelului în pixeli." + }, + "height": { + "label": "Înălțimea de intrare pentru modelul de detecție a obiectelor", + "description": "Înălțimea tensorului de intrare al modelului în pixeli." + }, + "labelmap": { + "label": "Personalizare labelmap", + "description": "Suprascrie sau remapază intrările pentru a fi combinate în labelmap-ul standard." + }, + "attributes_map": { + "label": "Harta etichetelor obiectelor la etichetele atributelor lor", + "description": "Maparea de la etichetele obiectelor la etichetele atributelor folosite pentru a atașa metadate (de exemplu 'car' -> ['license_plate'])." + }, + "input_tensor": { + "label": "Forma tensorului de intrare al modelului", + "description": "Formatul tensorului așteptat de model: 'nhwc' sau 'nchw'." + }, + "input_pixel_format": { + "label": "Formatul de culoare al pixelilor de intrare pentru model", + "description": "Spațiul de culoare al pixelilor așteptat de model: 'rgb', 'bgr' sau 'yuv'." + }, + "input_dtype": { + "label": "Tipul de date (D Type) de intrare pentru model", + "description": "Tipul de date pentru tensorul de intrare al modelului (de exemplu 'float32')." + }, + "model_type": { + "label": "Tipul modelului de detecție a obiectelor", + "description": "Tipul arhitecturii modelului detectorului (ssd, yolox, yolonas) folosit de unii detectori pentru optimizare." + } + }, + "model_path": { + "label": "Calea modelului specifică detectorului", + "description": "Calea fișierului către binarul modelului detectorului, dacă e cerută de detectorul ales." } }, "model": { "label": "Model detecție", "description": "Setări pentru configurarea unui model personalizat de detecție și a formei intrării acestuia.", "path": { - "label": "Cale model personalizat detecție obiecte", + "label": "Cale model detector de obiecte personalizat", "description": "Calea către un fișier de model personalizat (sau plus:// pentru modelele Frigate+)." }, "labelmap_path": { @@ -2034,7 +2141,7 @@ } }, "genai": { - "label": "Configurație GenAI (furnizori numiți)", + "label": "Configurație AI generativ", "description": "Setări pentru furnizorii de AI generativ folosiți pentru descrieri de obiecte și rezumate.", "api_key": { "label": "Cheie API", @@ -2188,5 +2295,17 @@ "label": "Arată în interfață", "description": "Comută dacă această cameră este vizibilă peste tot în interfața Frigate. Dezactivarea acestei opțiuni va necesita editarea manuală a config-ului pentru a vedea din nou camera în interfață." } + }, + "profiles": { + "label": "Profiluri", + "description": "Definiții de profiluri numite cu nume prietenoase. Profilurile camerelor trebuie să facă referință la numele definite aici.", + "friendly_name": { + "label": "Nume prietenos", + "description": "Numele afișat pentru acest profil în interfața utilizatorului (UI)." + } + }, + "active_profile": { + "label": "Profil activ", + "description": "Numele profilului activ în prezent. Doar la rulare (runtime), nu este salvat în YAML." } } diff --git a/web/public/locales/ro/objects.json b/web/public/locales/ro/objects.json index 6c92d8b49..90dfc34cb 100644 --- a/web/public/locales/ro/objects.json +++ b/web/public/locales/ro/objects.json @@ -116,5 +116,10 @@ "an_post": "An Post", "postnl": "PostNL", "nzpost": "NZPost", - "postnord": "PostNord" + "postnord": "PostNord", + "canada_post": "Canada Post", + "royal_mail": "Royal Mail", + "school_bus": "Autobus Scolar", + "skunk": "Sconcs", + "kangaroo": "Cangur" } diff --git a/web/public/locales/ro/views/classificationModel.json b/web/public/locales/ro/views/classificationModel.json index 1ecc6018e..8a7a077be 100644 --- a/web/public/locales/ro/views/classificationModel.json +++ b/web/public/locales/ro/views/classificationModel.json @@ -12,8 +12,12 @@ }, "toast": { "success": { - "deletedCategory": "Clasă ștearsă", - "deletedImage": "Imagini șterse", + "deletedCategory_one": "Am șters {{count}} clasă", + "deletedCategory_few": "Am șters {{count}} clase", + "deletedCategory_other": "Am șters {{count}} de clase", + "deletedImage_one": "Am șters {{count}} imagine", + "deletedImage_few": "Am șters {{count}} imagini", + "deletedImage_other": "Am șters {{count}} de imagini", "categorizedImage": "Imagine clasificată cu succes", "trainedModel": "Model antrenat cu succes.", "trainingModel": "Antrenamentul modelului a fost pornit cu succes.", @@ -21,7 +25,8 @@ "deletedModel_few": "{{count}} modele șterse cu succes", "deletedModel_other": "{{count}} modele șterse cu succes", "updatedModel": "Configurația modelului a fost actualizată cu succes", - "renamedCategory": "Clasa a fost redenumită cu succes în {{name}}" + "renamedCategory": "Clasa a fost redenumită cu succes în {{name}}", + "reclassifiedImage": "Imagine reclasificată cu succes" }, "error": { "deleteImageFailed": "Ștergerea a eșuat: {{errorMessage}}", @@ -31,7 +36,8 @@ "deleteModelFailed": "Ștergerea modelului a eșuat: {{errorMessage}}", "updateModelFailed": "Actualizarea modelului a eșuat: {{errorMessage}}", "renameCategoryFailed": "Redenumirea clasei a eșuat: {{errorMessage}}", - "trainingFailedToStart": "Nu s-a putut porni antrenarea modelului: {{errorMessage}}" + "trainingFailedToStart": "Nu s-a putut porni antrenarea modelului: {{errorMessage}}", + "reclassifyFailed": "Nu am putut reclasifica imaginea: {{errorMessage}}" } }, "deleteCategory": { @@ -156,8 +162,13 @@ "allImagesRequired_other": "Te rog să clasifici toate imaginile. {{count}} de imagini rămase.", "modelCreated": "Modelul a fost creat cu succes. Folosește vizualizarea Clasificări recente pentru a adăuga imagini pentru stările lipsă, apoi antrenează modelul.", "missingStatesWarning": { - "title": "Exemple de stări lipsă", - "description": "Este recomandat să alegi exemple pentru toate stările pentru rezultate optime. Poți continua fără a selecta toate stările, dar modelul nu va fi antrenat până când toate stările nu au imagini. După continuare, folosește vizualizarea Clasificări recente pentru a clasifica imagini pentru stările lipsă, apoi antrenează modelul." + "title": "Exemple de clase lipsă", + "description": "Nu toate clasele au exemple. Încearcă să generezi exemple noi pentru a găsi clasa lipsă, sau continuă și folosește vizualizarea Clasificări recente pentru a adăuga imagini mai târziu." + }, + "refreshExamples": "Generează exemple noi", + "refreshConfirm": { + "title": "Generezi exemple noi?", + "description": "Asta va genera un set nou de imagini și va goli toate selecțiile, inclusiv clasele anterioare. Va trebui să selectezi din nou exemple pentru toate clasele." } } }, @@ -189,5 +200,7 @@ "modelNotReady": "Modelul nu este pregătit pentru antrenare", "noChanges": "Nicio modificare a setului de date de la ultima antrenare." }, - "none": "Niciuna" + "none": "Niciuna", + "reclassifyImageAs": "Reclasifică imaginea ca:", + "reclassifyImage": "Reclasifică imaginea" } diff --git a/web/public/locales/ro/views/events.json b/web/public/locales/ro/views/events.json index bcaec672f..455257a92 100644 --- a/web/public/locales/ro/views/events.json +++ b/web/public/locales/ro/views/events.json @@ -14,7 +14,9 @@ "description": "Elementele de revizuire pot fi create doar pentru o cameră atunci când înregistrările sunt activate pentru acea cameră." } }, - "timeline": "Cronologie", + "timeline": { + "label": "Cronologie" + }, "timeline.aria": "Selectează cronologia", "events": { "aria": "Selectează evenimente", diff --git a/web/public/locales/ro/views/explore.json b/web/public/locales/ro/views/explore.json index 371565afe..5d4057b0b 100644 --- a/web/public/locales/ro/views/explore.json +++ b/web/public/locales/ro/views/explore.json @@ -170,7 +170,8 @@ "attributes": "Atribute de clasificare", "title": { "label": "Titlu" - } + }, + "scoreInfo": "Informații scor" }, "exploreMore": "Explorează mai multe obiecte cu {{label}}", "trackedObjectDetails": "Detalii despre obiectul urmărit", @@ -230,12 +231,18 @@ "debugReplay": { "label": "Reluare de depanare", "aria": "Vezi acest obiect urmărit în vizualizarea de reluare de depanare" + }, + "more": { + "aria": "Mai mult" } }, "dialog": { "confirmDelete": { "title": "Confirmă ștergerea", "desc": "Ștergerea acestui obiect urmărit elimină snapshot-ul, orice înglobări salvate și orice intrări asociate detaliilor de urmărire. Materialul video înregistrat al acestui obiect urmărit în vizualizarea Istoric NU va fi șters.

Ești sigur că vrei să continui?" + }, + "toast": { + "error": "Eroare la ștergerea acestui obiect urmărit: {{errorMessage}}" } }, "noTrackedObjects": "Nu au fost găsite obiecte urmărite", diff --git a/web/public/locales/ro/views/exports.json b/web/public/locales/ro/views/exports.json index 7b93af723..1b1e0b2d8 100644 --- a/web/public/locales/ro/views/exports.json +++ b/web/public/locales/ro/views/exports.json @@ -2,7 +2,9 @@ "search": "Căutare", "documentTitle": "Exporturi - Frigate", "noExports": "Nu s-au găsit exporturi", - "deleteExport": "Șterge exportul", + "deleteExport": { + "label": "Șterge export" + }, "deleteExport.desc": "Sigur vrei să ștergi {{exportName}}?", "editExport": { "title": "Redenumire export", diff --git a/web/public/locales/ro/views/faceLibrary.json b/web/public/locales/ro/views/faceLibrary.json index 570db33fb..15979a6c7 100644 --- a/web/public/locales/ro/views/faceLibrary.json +++ b/web/public/locales/ro/views/faceLibrary.json @@ -76,7 +76,8 @@ "deletedFace_few": "{{count}} fețe au fost șterse cu succes.", "deletedFace_other": "{{count}} de fețe au fost șterse cu succes.", "uploadedImage": "Imagine încărcată cu succes.", - "addFaceLibrary": "{{name}} a fost adăugat(ă) cu succes la biblioteca de fețe!" + "addFaceLibrary": "{{name}} a fost adăugat(ă) cu succes la biblioteca de fețe!", + "reclassifiedFace": "Față reclasificată cu succes." }, "error": { "addFaceLibraryFailed": "Setarea numelui feței a eșuat: {{errorMessage}}", @@ -85,7 +86,8 @@ "renameFaceFailed": "Redenumirea feței a eșuat: {{errorMessage}}", "trainFailed": "Antrenarea a eșuat: {{errorMessage}}", "uploadingImageFailed": "Încărcarea imaginii a eșuat: {{errorMessage}}", - "updateFaceScoreFailed": "Nu s-a putut actualiza scorul feței: {{errorMessage}}" + "updateFaceScoreFailed": "Nu s-a putut actualiza scorul feței: {{errorMessage}}", + "reclassifyFailed": "Nu s-a putut reclasifica fața: {{errorMessage}}" } }, "imageEntry": { @@ -100,5 +102,7 @@ "trainFace": "Antrenează fața", "readTheDocs": "Citește documentația", "nofaces": "Nu sunt fețe disponibile", - "pixels": "{{area}}px" + "pixels": "{{area}}px", + "reclassifyFaceAs": "Reclasifică fața ca:", + "reclassifyFace": "Reclasifică fața" } diff --git a/web/public/locales/ro/views/live.json b/web/public/locales/ro/views/live.json index 45f8a68f2..6b8c8c979 100644 --- a/web/public/locales/ro/views/live.json +++ b/web/public/locales/ro/views/live.json @@ -1,5 +1,7 @@ { - "documentTitle": "Frigate - Live", + "documentTitle": { + "default": "Live - Frigate" + }, "documentTitle.withCamera": "{{camera}} - Frigate - Live", "lowBandwidthMode": "Mod Latime de Banda Limitata", "twoWayTalk": { @@ -19,7 +21,8 @@ "clickMove": { "label": "Apasă în cadrul imaginii pentru a centra camera", "enable": "Activează mutarea prin clic", - "disable": "Dezactivează mutarea prin clic" + "disable": "Dezactivează mutarea prin clic", + "enableWithZoom": "Activează clic pentru mutare / trage pentru zoom" }, "left": { "label": "Mișcă camera PTZ spre stânga" diff --git a/web/public/locales/ro/views/settings.json b/web/public/locales/ro/views/settings.json index d51d53873..632f6137e 100644 --- a/web/public/locales/ro/views/settings.json +++ b/web/public/locales/ro/views/settings.json @@ -8,14 +8,15 @@ "notifications": "Setări Notificări - Frigate", "motionTuner": "Reglaj Mișcare - Frigate", "object": "Depanare - Frigate", - "general": "Setări Profil - Frigate", + "general": "Setări interfață - Frigate", "frigatePlus": "Setări Frigate+ - Frigate", "enrichments": "Setări Îmbunătățiri - Frigate", "cameraManagement": "Gestionare Camere - Frigate", "cameraReview": "Setări Review Cameră - Frigate", "globalConfig": "Configurație Globală - Frigate", "cameraConfig": "Configurație Cameră - Frigate", - "maintenance": "Mentenanță - Frigate" + "maintenance": "Mentenanță - Frigate", + "profiles": "Profile - Frigate" }, "menu": { "ui": "Interfață (UI)", @@ -87,7 +88,10 @@ "cameraMqtt": "MQTT Cameră", "maintenance": "Mentenanță", "mediaSync": "Sincronizare media", - "regionGrid": "Grilă regiune" + "regionGrid": "Grilă regiune", + "uiSettings": "Setări UI", + "profiles": "Profile", + "systemGo2rtcStreams": "stream-uri go2rtc" }, "dialog": { "unsavedChanges": { @@ -100,7 +104,7 @@ "noCamera": "Nicio cameră" }, "general": { - "title": "Setări Profil", + "title": "Setări UI", "liveDashboard": { "title": "Dashboard Live", "automaticLiveView": { @@ -462,6 +466,10 @@ "zone": "zonă", "motion_mask": "mască mișcare", "object_mask": "mască obiect" + }, + "revertOverride": { + "desc": "Asta va elimina suprascrierea de profil pentru {{type}} {{name}} și va reveni la configurația de bază.", + "title": "Revino la configurația de bază" } }, "distance": { @@ -484,6 +492,17 @@ "error": { "mustBeGreaterOrEqualTo": "Pragul de viteză trebuie să fie mai mare sau egal cu 0.1." } + }, + "id": { + "error": { + "mustNotBeEmpty": "ID-ul nu trebuie să fie gol.", + "alreadyExists": "O mască cu acest ID există deja pentru această cameră." + } + }, + "name": { + "error": { + "mustNotBeEmpty": "Numele nu trebuie să fie gol." + } } }, "disabledInConfig": "Elementul este dezactivat în fișierul de configurare", @@ -492,7 +511,10 @@ "title": "Activată", "description": "Specifică dacă această mască este activată în fișierul de configurare. Dacă este dezactivată, nu poate fi activată prin MQTT. Măștile dezactivate sunt ignorate la rulare." } - } + }, + "profileBase": "(bază)", + "profileOverride": "(suprascriere)", + "addDisabledProfile": "Adaugă mai întâi în configurația de bază, apoi suprascrie în profil" }, "debug": { "motion": { @@ -741,8 +763,8 @@ "camera": "Cameră" }, "documentation": "Citește documentația", - "cleanCopyWarning": "Unele camere au snapshot-uri activate, dar au copia curată dezactivată. Trebuie să activezi clean_copy în configurația snapshot-urilor pentru a putea trimite imagini de la aceste camere către Frigate+.", - "desc": "Trimiterea către Frigate+ necesită ca ambele opțiuni, snapshot-uri și clean_copy, să fie activate în configurație." + "cleanCopyWarning": "Unele camere au snapshot-urile dezactivate", + "desc": "Trimiterea către Frigate+ necesită ca snapshot-urile să fie activate în configurația ta." }, "modelInfo": { "title": "Informații Model", @@ -1319,6 +1341,14 @@ "confirmButton": "Șterge definitiv", "success": "Camera {{cameraName}} a fost ștearsă cu succes", "error": "Eroare la ștergerea camerei {{cameraName}}" + }, + "profiles": { + "title": "Suprascrieri profil cameră", + "selectLabel": "Selectează profilul", + "description": "Configurează care camere sunt activate sau dezactivate când un profil este activat. Camerele setate pe \"Moștenire\" își păstrează starea de bază de activare.", + "inherit": "Moștenire", + "enabled": "Activat", + "disabled": "Dezactivat" } }, "cameraReview": { @@ -1373,6 +1403,9 @@ "value": { "label": "Valoare nouă", "reset": "Resetare" + }, + "profile": { + "label": "Profil" } }, "detectionModel": { @@ -1429,7 +1462,9 @@ "review_thumbnails": "Miniaturi Review", "previews": "Previzualizări", "exports": "Exporturi", - "recordings": "Înregistrări" + "recordings": "Înregistrări", + "verbose": "Detaliat", + "verboseDesc": "Scrie pe disc o listă completă a fișierelor orfane pentru verificare." }, "regionGrid": { "title": "Grilă regiune", @@ -1449,7 +1484,8 @@ }, "camera": { "title": "Setări Cameră", - "description": "Aceste setări se aplică doar pentru această cameră și suprascriu setările globale." + "description": "Aceste setări se aplică doar pentru această cameră și suprascriu setările globale.", + "noCameras": "Nicio cameră disponibilă" }, "advancedSettingsCount": "Setări Avansate ({{count}})", "advancedCount": "Avansat ({{count}})", @@ -1480,7 +1516,35 @@ "manual": "Argumente manuale", "inherit": "Moștenește de la setările camerei", "selectPreset": "Selectează presetarea", - "manualPlaceholder": "Introdu argumentele FFmpeg" + "manualPlaceholder": "Introdu argumentele FFmpeg", + "none": "Niciunul", + "useGlobalSetting": "Moștenește din setarea globală", + "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 (Generic)", + "preset-http-mjpeg-generic": "HTTP MJPEG (Generic)", + "preset-http-reolink": "HTTP - Camere Reolink", + "preset-rtmp-generic": "RTMP (Generic)", + "preset-rtsp-generic": "RTSP (Generic)", + "preset-rtsp-restream": "RTSP - Restream de la go2rtc", + "preset-rtsp-restream-low-latency": "RTSP - Restream de la go2rtc (Latență scăzută)", + "preset-rtsp-udp": "RTSP - UDP", + "preset-rtsp-blue-iris": "RTSP - Blue Iris", + "preset-record-generic": "Înregistrare (Generic, fără audio)", + "preset-record-generic-audio-copy": "Înregistrare (Generic + Copiere audio)", + "preset-record-generic-audio-aac": "Înregistrare (Generic + Audio în AAC)", + "preset-record-mjpeg": "Înregistrare - Camere MJPEG", + "preset-record-jpeg": "Înregistrare - Camere JPEG", + "preset-record-ubiquiti": "Înregistrare - Camere Ubiquiti" + } }, "cameraInputs": { "itemTitle": "Stream-ul {{index}}" @@ -1512,7 +1576,8 @@ "genai": "GenAI", "face_recognition": "Recunoaștere Facială", "lpr": "Recunoaștere Numere Înmatriculare", - "birdseye": "Birdseye" + "birdseye": "Birdseye", + "masksAndZones": "Măști / zone" }, "detect": { "title": "Setări Detecție" @@ -1524,7 +1589,8 @@ "keyDuplicate": "Numele detectorului există deja.", "noSchema": "Nu sunt disponibile scheme de detectoare.", "none": "Nicio instanță de detector configurată.", - "add": "Adaugă detector" + "add": "Adaugă detector", + "addCustomKey": "Adaugă cheie personalizată" }, "record": { "title": "Setări Înregistrare" @@ -1577,7 +1643,25 @@ "timestamp_style": { "title": "Setări Timestamp" }, - "searchPlaceholder": "Caută..." + "searchPlaceholder": "Caută...", + "genaiRoles": { + "options": { + "embeddings": "Înglobare", + "vision": "Viziune", + "tools": "Instrumente" + } + }, + "semanticSearchModel": { + "placeholder": "Selectează modelul…", + "builtIn": "Modele integrate", + "genaiProviders": "Furnizori GenAI" + }, + "reviewLabels": { + "summary": "{{count}} etichete selectate", + "empty": "Nicio etichetă disponibilă", + "allNonAlertDetections": "Toată activitatea fără alertă va fi inclusă ca detecții." + }, + "addCustomLabel": "Adaugă etichetă personalizată..." }, "globalConfig": { "title": "Configurare Globală", @@ -1617,5 +1701,143 @@ "unsavedChanges": "Ai modificări nesalvate", "confirmReset": "Confirmă Resetarea", "resetToDefaultDescription": "Această acțiune va reseta toate setările din această secțiune la valorile implicite. Acțiunea este ireversibilă.", - "resetToGlobalDescription": "Această acțiune va reseta setările din această secțiune la valorile globale implicite. Acțiunea este ireversibilă." + "resetToGlobalDescription": "Această acțiune va reseta setările din această secțiune la valorile globale implicite. Acțiunea este ireversibilă.", + "button": { + "overriddenGlobal": "Suprascris (global)", + "overriddenGlobalTooltip": "Această cameră suprascrie setările globale de configurare din această secțiune", + "overriddenBaseConfig": "Suprascris (configurația de bază)", + "overriddenBaseConfigTooltip": "Profilul {{profile}} suprascrie setările de configurare din această secțiune" + }, + "profiles": { + "title": "Profile", + "activeProfile": "Profil activ", + "noActiveProfile": "Niciun profil activ", + "active": "Activ", + "activated": "Profilul '{{profile}}' a fost activat", + "activateFailed": "Setarea profilului a eșuat", + "deactivated": "Profil dezactivat", + "noProfiles": "Niciun profil definit.", + "noOverrides": "Fără suprascrieri", + "cameraCount_one": "{{count}} cameră", + "cameraCount_few": "{{count}} camere", + "cameraCount_other": "{{count}} de camere", + "baseConfig": "Configurație de bază", + "addProfile": "Adaugă profil", + "newProfile": "Profil nou", + "profileNamePlaceholder": "de ex., Armat, Plecat, Mod noapte", + "friendlyNameLabel": "Nume profil", + "profileIdLabel": "ID profil", + "profileIdDescription": "Identificator intern folosit în configurație și automatizări", + "nameInvalid": "Sunt permise doar litere mici, numere și underscore-uri", + "nameDuplicate": "Un profil cu acest nume există deja", + "error": { + "mustBeAtLeastTwoCharacters": "Trebuie să aibă cel puțin 2 caractere", + "mustNotContainPeriod": "Nu trebuie să conțină puncte", + "alreadyExists": "Un profil cu acest ID există deja" + }, + "renameProfile": "Redenumește profilul", + "renameSuccess": "Profilul a fost redenumit în '{{profile}}'", + "deleteProfile": "Șterge profilul", + "deleteProfileConfirm": "Ștergi profilul \"{{profile}}\" de pe toate camerele? Această acțiune nu poate fi anulată.", + "deleteSuccess": "Profilul '{{profile}}' a fost șters", + "createSuccess": "Profilul '{{profile}}' a fost creat", + "removeOverride": "Elimină suprascrierea profilului", + "deleteSection": "Șterge suprascrierile secțiunii", + "deleteSectionConfirm": "Elimini suprascrierile {{section}} pentru profilul {{profile}} de pe {{camera}}?", + "deleteSectionSuccess": "Au fost eliminate suprascrierile {{section}} pentru {{profile}}", + "enableSwitch": "Activează profilele", + "enabledDescription": "Profilele sunt activate. Creează un profil nou mai jos, navighează la o secțiune de configurare a camerei pentru a face modificările, și salvează pentru ca acestea să aibă efect.", + "disabledDescription": "Profilele îți permit să definești seturi denumite de suprascrieri pentru configurația camerei (de ex., armat, plecat, noapte) care pot fi activate la cerere.", + "columnCamera": "Camera", + "columnOverrides": "Suprascrieri profil" + }, + "go2rtcStreams": { + "title": "Stream-uri go2rtc", + "description": "Gestionează configurațiile de stream-uri go2rtc pentru retransmisia camerelor. Fiecare stream are un nume și unul sau mai multe URL-uri sursă.", + "addStream": "Adaugă stream", + "addStreamDesc": "Introdu un nume pentru noul stream. Acest nume va fi folosit pentru a referenția stream-ul în configurația camerei tale.", + "addUrl": "Adaugă URL", + "streamName": "Nume stream", + "streamNamePlaceholder": "de ex., usa_intrare", + "streamUrlPlaceholder": "de ex., rtsp://user:parola@192.168.1.100/stream", + "deleteStream": "Șterge stream", + "deleteStreamConfirm": "Sigur vrei să ștergi stream-ul \"{{streamName}}\"? Camerele care referențiază acest stream s-ar putea să nu mai funcționeze.", + "noStreams": "Niciun stream go2rtc configurat. Adaugă un stream pentru a începe.", + "validation": { + "nameRequired": "Numele stream-ului este obligatoriu", + "nameDuplicate": "Un stream cu acest nume există deja", + "nameInvalid": "Numele stream-ului poate conține doar litere, numere, underscore-uri și cratime", + "urlRequired": "Cel puțin un URL este obligatoriu" + }, + "renameStream": "Redenumește stream-ul", + "renameStreamDesc": "Introdu un nume nou pentru acest stream. Redenumirea unui stream poate strica camerele sau alte stream-uri care îl referențiază după nume.", + "newStreamName": "Nume nou de stream", + "ffmpeg": { + "useFfmpegModule": "Folosește modul de compatibilitate (ffmpeg)", + "video": "Video", + "audio": "Audio", + "hardware": "Accelerare hardware", + "videoCopy": "Copiază", + "videoH264": "Transcodează în H.264", + "videoH265": "Transcodează în H.265", + "videoExclude": "Exclude", + "audioCopy": "Copiază", + "audioAac": "Transcodează în AAC", + "audioOpus": "Transcodează în Opus", + "audioPcmu": "Transcodează în PCM μ-law", + "audioPcma": "Transcodează în PCM A-law", + "audioPcm": "Transcodează în PCM", + "audioMp3": "Transcodează în MP3", + "audioExclude": "Exclude", + "hardwareNone": "Fără accelerare hardware", + "hardwareAuto": "Accelerare hardware automată" + } + }, + "timestampPosition": { + "tl": "Sus stânga", + "tr": "Sus dreapta", + "bl": "Jos stânga", + "br": "Jos dreapta" + }, + "onvif": { + "profileAuto": "Auto", + "profileLoading": "Se încarcă profilurile..." + }, + "configMessages": { + "review": { + "recordDisabled": "Înregistrarea este dezactivată, elementele de revizuire nu vor fi generate.", + "detectDisabled": "Detecția obiectelor este dezactivată. Elementele de revizuire necesită obiecte detectate pentru a categorisi alertele și detecțiile.", + "allNonAlertDetections": "Toată activitatea fără alertă va fi inclusă ca detecții." + }, + "audio": { + "noAudioRole": "Niciun flux nu are rolul audio definit. Trebuie să activați rolul audio pentru ca detecția audio să funcționeze." + }, + "audioTranscription": { + "audioDetectionDisabled": "Detecția audio nu este activată pentru această cameră. Transcrierea audio necesită ca detecția audio să fie activă." + }, + "detect": { + "fpsGreaterThanFive": "Setarea cadrelor pe secundă pentru detecție la o valoare mai mare de 5 nu este recomandată." + }, + "faceRecognition": { + "globalDisabled": "Recunoașterea facială nu este activată la nivel global. Activați-o în setările globale pentru ca recunoașterea facială la nivel de cameră să funcționeze.", + "personNotTracked": "Recunoașterea facială necesită urmărirea obiectului „person”. Asigurați-vă că „person” este în lista de urmărire a obiectelor." + }, + "lpr": { + "globalDisabled": "Recunoașterea plăcuțelor de înmatriculare nu este activată la nivel global. Activați-o în setările globale pentru ca recunoașterea la nivel de cameră să funcționeze.", + "vehicleNotTracked": "Recunoașterea plăcuțelor de înmatriculare necesită ca „car” sau „motorcycle” să fie urmărite." + }, + "record": { + "noRecordRole": "Niciun flux nu are rolul de înregistrare definit. Înregistrarea nu va funcționa." + }, + "birdseye": { + "objectsModeDetectDisabled": "Birdseye este setat pe modul 'objects', dar detecția obiectelor este dezactivată pentru această cameră. Camera nu va apărea în Birdseye." + }, + "snapshots": { + "detectDisabled": "Detecția obiectelor este dezactivată. Snapshot-urile sunt generate din obiectele urmărite și nu vor fi create." + }, + "detectors": { + "mixedTypes": "Toți detectorii trebuie să folosească același tip. Șterge detectorii existenți pentru a folosi un alt tip.", + "mixedTypesSuggestion": "Toți detectorii trebuie să folosească același tip. Șterge detectorii existenți sau selectează {{type}}." + } + } } diff --git a/web/public/locales/ro/views/system.json b/web/public/locales/ro/views/system.json index 420884e9b..e829edd60 100644 --- a/web/public/locales/ro/views/system.json +++ b/web/public/locales/ro/views/system.json @@ -50,7 +50,8 @@ "description": "Acesta este un bug cunoscut în instrumentele de raportare GPU Intel (intel_gpu_top), unde acestea se blochează și returnează repetat o utilizare GPU de 0% chiar și atunci când accelerarea hardware și detecția obiectelor rulează corect pe (i)GPU. Aceasta nu este o problemă Frigate. Poți reporni host-ul pentru a remedia temporar problema și a confirma că GPU-ul funcționează corect. Performanța nu este afectată." }, "gpuTemperature": "Temperatură GPU", - "npuTemperature": "Temperatură NPU" + "npuTemperature": "Temperatură NPU", + "gpuCompute": "Calcul / Codare GPU" }, "detector": { "temperature": "Temperatură detector", @@ -151,7 +152,9 @@ "count": "{{count}} mesaje", "expanded": { "payload": "Conținut" - } + }, + "count_one": "{{count}} mesaj", + "count_other": "{{count}} mesaje" } }, "metrics": "Metrici sistem", @@ -214,7 +217,8 @@ "detect": "detectează", "cameraFfmpeg": "FFmpeg {{camName}}", "camera": "cameră", - "ffmpeg": "FFmpeg" + "ffmpeg": "FFmpeg", + "cameraGpu": "{{camName}} GPU" }, "title": "Camere", "overview": "Prezentare generală",