diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 6c14bb166..f053abe3f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,2 +1,385 @@ -Never write strings in the frontend directly, always write to and reference the relevant translations file. -Always conform new and refactored code to the existing coding style in the project. +# GitHub Copilot Instructions for Frigate NVR + +This document provides coding guidelines and best practices for contributing to Frigate NVR, a complete and local NVR designed for Home Assistant with AI object detection. + +## Project Overview + +Frigate NVR is a realtime object detection system for IP cameras that uses: + +- **Backend**: Python 3.13+ with FastAPI, OpenCV, TensorFlow/ONNX +- **Frontend**: React with TypeScript, Vite, TailwindCSS +- **Architecture**: Multiprocessing design with ZMQ and MQTT communication +- **Focus**: Minimal resource usage with maximum performance + +## Code Review Guidelines + +When reviewing code, do NOT comment on: + +- Missing imports - Static analysis tooling catches these +- Code formatting - Ruff (Python) and Prettier (TypeScript/React) handle formatting +- Minor style inconsistencies already enforced by linters + +## Python Backend Standards + +### Python Requirements + +- **Compatibility**: Python 3.13+ +- **Language Features**: Use modern Python features: + - Pattern matching + - Type hints (comprehensive typing preferred) + - f-strings (preferred over `%` or `.format()`) + - Dataclasses + - Async/await patterns + +### Code Quality Standards + +- **Formatting**: Ruff (configured in `pyproject.toml`) +- **Linting**: Ruff with rules defined in project config +- **Type Checking**: Use type hints consistently +- **Testing**: unittest framework - use `python3 -u -m unittest` to run tests +- **Language**: American English for all code, comments, and documentation + +### Logging Standards + +- **Logger Pattern**: Use module-level logger + + ```python + import logging + + logger = logging.getLogger(__name__) + ``` + +- **Format Guidelines**: + - No periods at end of log messages + - No sensitive data (keys, tokens, passwords) + - Use lazy logging: `logger.debug("Message with %s", variable)` +- **Log Levels**: + - `debug`: Development and troubleshooting information + - `info`: Important runtime events (startup, shutdown, state changes) + - `warning`: Recoverable issues that should be addressed + - `error`: Errors that affect functionality but don't crash the app + - `exception`: Use in except blocks to include traceback + +### Error Handling + +- **Exception Types**: Choose most specific exception available +- **Try/Catch Best Practices**: + - Only wrap code that can throw exceptions + - Keep try blocks minimal - process data after the try/except + - Avoid bare exceptions except in background tasks + + Bad pattern: + + ```python + try: + data = await device.get_data() # Can throw + # ❌ Don't process data inside try block + processed = data.get("value", 0) * 100 + result = processed + except DeviceError: + logger.error("Failed to get data") + ``` + + Good pattern: + + ```python + try: + data = await device.get_data() # Can throw + except DeviceError: + logger.error("Failed to get data") + return + + # ✅ Process data outside try block + processed = data.get("value", 0) * 100 + result = processed + ``` + +### Async Programming + +- **External I/O**: All external I/O operations must be async +- **Best Practices**: + - Avoid sleeping in loops - use `asyncio.sleep()` not `time.sleep()` + - Avoid awaiting in loops - use `asyncio.gather()` instead + - No blocking calls in async functions + - Use `asyncio.create_task()` for background operations +- **Thread Safety**: Use proper synchronization for shared state + +### Documentation Standards + +- **Module Docstrings**: Concise descriptions at top of files + ```python + """Utilities for motion detection and analysis.""" + ``` +- **Function Docstrings**: Required for public functions and methods + + ```python + async def process_frame(frame: ndarray, config: Config) -> Detection: + """Process a video frame for object detection. + + Args: + frame: The video frame as numpy array + config: Detection configuration + + Returns: + Detection results with bounding boxes + """ + ``` + +- **Comment Style**: + - Explain the "why" not just the "what" + - Keep lines under 88 characters when possible + - Use clear, descriptive comments + +### File Organization + +- **API Endpoints**: `frigate/api/` - FastAPI route handlers +- **Configuration**: `frigate/config/` - Configuration parsing and validation +- **Detectors**: `frigate/detectors/` - Object detection backends +- **Events**: `frigate/events/` - Event management and storage +- **Utilities**: `frigate/util/` - Shared utility functions + +## Frontend (React/TypeScript) Standards + +### Internationalization (i18n) + +- **CRITICAL**: Never write user-facing strings directly in components +- **Always use react-i18next**: Import and use the `t()` function + + ```tsx + import { useTranslation } from "react-i18next"; + + function MyComponent() { + const { t } = useTranslation(["views/live"]); + return
detect-streamen, tjek fejlloggene."
+ "desc": "Der er ikke modtaget nogen billeder på {{cameraName}}-detect-streamen, tjek fejllogs."
+ },
+ "stats": {
+ "streamType": {
+ "title": "Stream type:",
+ "short": "Type"
+ },
+ "bandwidth": {
+ "title": "Båndbredde:",
+ "short": "Båndbredde"
+ },
+ "latency": {
+ "title": "Latenstid:",
+ "value": "{{seconds}} sekunder",
+ "short": {
+ "title": "Latenstid",
+ "value": "{{seconds}} sek"
+ }
+ },
+ "droppedFrames": {
+ "short": {
+ "title": "Tabt",
+ "value": "{{droppedFrames}} billeder"
+ },
+ "title": "Tabte billeder:"
+ },
+ "totalFrames": "Antal billeder i alt:",
+ "decodedFrames": "Dekodede billeder:",
+ "droppedFrameRate": "Rate for tabte billeder:"
+ },
+ "toast": {
+ "success": {
+ "submittedFrigatePlus": "Billede sendt til Frigate+"
+ },
+ "error": {
+ "submitFrigatePlusFailed": "Kunne ikke sende billede til Frigate+"
+ }
}
}
diff --git a/web/public/locales/da/objects.json b/web/public/locales/da/objects.json
index e055dcf4a..99275fbe3 100644
--- a/web/public/locales/da/objects.json
+++ b/web/public/locales/da/objects.json
@@ -14,5 +14,107 @@
"sink": "Håndvask",
"toothbrush": "Tandbørste",
"scissors": "Saks",
- "clock": "Ur"
+ "clock": "Ur",
+ "fire_hydrant": "Brandhane",
+ "street_sign": "Gadeskilt",
+ "stop_sign": "Stopskilt",
+ "parking_meter": "Parkeringsautomat",
+ "bench": "Bænk",
+ "bird": "Fugl",
+ "cat": "Kat",
+ "dog": "Hund",
+ "horse": "Hest",
+ "sheep": "Får",
+ "cow": "Ko",
+ "elephant": "Elefant",
+ "bear": "Bjørn",
+ "zebra": "Zebra",
+ "giraffe": "Giraf",
+ "hat": "Hat",
+ "backpack": "Rygsæk",
+ "umbrella": "Paraply",
+ "shoe": "Sko",
+ "eye_glasses": "Briller",
+ "handbag": "Håndtaske",
+ "tie": "Slips",
+ "suitcase": "Kuffert",
+ "frisbee": "Frisbee",
+ "skis": "Ski",
+ "snowboard": "Snowboard",
+ "sports_ball": "Bold",
+ "kite": "Drage",
+ "baseball_bat": "Baseball Bat",
+ "baseball_glove": "Baseball hanske",
+ "surfboard": "Surfbræt",
+ "tennis_racket": "Tennis ketcher",
+ "bottle": "Flaske",
+ "plate": "Tallerken",
+ "wine_glass": "Vinglas",
+ "cup": "Kop",
+ "fork": "Gaffel",
+ "knife": "Kniv",
+ "spoon": "Ske",
+ "bowl": "Skål",
+ "banana": "Banan",
+ "apple": "Æble",
+ "sandwich": "Sandwich",
+ "orange": "Appelsin",
+ "broccoli": "Broccoli",
+ "carrot": "Gulerod",
+ "hot_dog": "Hotdog",
+ "pizza": "Pizza",
+ "donut": "Donut",
+ "cake": "Kage",
+ "chair": "Stol",
+ "couch": "Sofa",
+ "potted_plant": "Potteplante",
+ "bed": "Seng",
+ "mirror": "Spejl",
+ "dining_table": "Spisebord",
+ "window": "Vindue",
+ "desk": "Bord",
+ "toilet": "Toilet",
+ "tv": "Fjernsyn",
+ "laptop": "Bærebar computer",
+ "mouse": "Mus",
+ "remote": "Fjernbetjening",
+ "keyboard": "Tastatur",
+ "cell_phone": "Mobiltelefon",
+ "microwave": "Mikrobølgeovn",
+ "oven": "Ovn",
+ "toaster": "Brødrister",
+ "refrigerator": "Køleskab",
+ "blender": "Mixer",
+ "book": "Bog",
+ "vase": "Vase",
+ "teddy_bear": "Bamse",
+ "hair_dryer": "Føntørrer",
+ "hair_brush": "Hårbørste",
+ "squirrel": "Egern",
+ "deer": "Hjort",
+ "animal": "Dyr",
+ "bark": "Gø",
+ "fox": "Ræv",
+ "goat": "Gæd",
+ "rabbit": "Kanin",
+ "raccoon": "Vaskebjørn",
+ "robot_lawnmower": "Robotplæneklipper",
+ "waste_bin": "Affaldsspand",
+ "on_demand": "Manuel optagelse",
+ "face": "Ansigt",
+ "license_plate": "Nummerplade",
+ "package": "Pakke",
+ "bbq_grill": "Grill",
+ "amazon": "Amazon levering",
+ "usps": "USPS levering",
+ "ups": "UPS levering",
+ "fedex": "FedEx levering",
+ "dhl": "DHL levering",
+ "an_post": "An Post levering",
+ "purolator": "Purolator levering",
+ "postnl": "PostNL levering",
+ "nzpost": "NZPost levering",
+ "postnord": "PostNord levering",
+ "gls": "GLS levering",
+ "dpd": "DPD levering"
}
diff --git a/web/public/locales/da/views/classificationModel.json b/web/public/locales/da/views/classificationModel.json
index a3aa81f28..3193dbb59 100644
--- a/web/public/locales/da/views/classificationModel.json
+++ b/web/public/locales/da/views/classificationModel.json
@@ -1,18 +1,187 @@
{
- "documentTitle": "Klassifikationsmodeller",
+ "documentTitle": "Kategoriseringsmodeller - Frigate",
"details": {
- "scoreInfo": "Scoren repræsenterer den gennemsnitlige klassifikationssikkerhed på tværs af alle registreringer af dette objekt.",
- "unknown": "Ukendt"
+ "scoreInfo": "Scoren viser den gennemsnitlige sikkerhed for kategoriseringen på tværs af alle registreringer af dette objekt.",
+ "unknown": "Ukendt",
+ "none": "Ingen"
},
"description": {
"invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger."
},
"button": {
- "deleteClassificationAttempts": "Slet klassifikationsbilleder",
+ "deleteClassificationAttempts": "Slet kategoriseringsbilleder",
"renameCategory": "Omdøb klasse",
"deleteCategory": "Slet klasse",
"deleteImages": "Slet billeder",
"trainModel": "Træn model",
- "addClassification": "Tilføj klassifikation"
+ "addClassification": "Tilføj Kategori",
+ "deleteModels": "Slet modeller",
+ "editModel": "Rediger model"
+ },
+ "tooltip": {
+ "trainingInProgress": "Modellen er ved at blive trænet",
+ "noNewImages": "Der er ingen nye billeder at lære af. Kategorisér flere billeder i datasættet først.",
+ "noChanges": "Ingen ændringer i datasættet siden sidste træning.",
+ "modelNotReady": "Modellen er ikke klar til træning"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Slettet kategori",
+ "deletedImage": "Slettede billeder",
+ "deletedModel_one": "{{count}} model er nu slettet",
+ "deletedModel_other": "{{count}} modeller er nu slettet",
+ "categorizedImage": "Billedet er nu kategoriseret",
+ "trainedModel": "Modellen er klar.",
+ "trainingModel": "Modeltræning er started.",
+ "updatedModel": "Modellens indstillinger er opdateret",
+ "renamedCategory": "Kategorien er omdøbt til {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Fejl under sletning: {{errorMessage}}",
+ "deleteCategoryFailed": "Sletning af kategori fejlede: {{errorMessage}}",
+ "deleteModelFailed": "Sletning af model fejlede: {{errorMessage}}",
+ "categorizeFailed": "Kategorisering af billedet fejlede: {{errorMessage}}",
+ "trainingFailed": "Træning af modellen fejlede. Check Frigate loggen.",
+ "trainingFailedToStart": "Opstart af modeltræning fejlede: {{errorMessage}}",
+ "updateModelFailed": "Ændring af modellen fejlede: {{errorMessage}}",
+ "renameCategoryFailed": "Kan ikke omdøbe kategorien: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Slet kategori",
+ "desc": "Er du sikker på at du vil slette kategorien {{name}}? Dette kan ikke fortrydes og sletter alle tilhørende billeder samt træning af modellen.",
+ "minClassesTitle": "Kan ikke slette Kategori",
+ "minClassesDesc": "Modellen skal have mindst 2 kategorier. Tilføj en kategori, før du sletter denne."
+ },
+ "deleteModel": {
+ "title": "Slet Kategoriseringsmodellen",
+ "desc_one": "Er du sikker på, at du vil slette {{count}} model? Dette vil permanent slette alle tilknyttede data, inkl. billeder og træningsdata. Denne handling kan ikke fortrydes.",
+ "desc_other": "Er du sikker på, at du vil slette {{count}} modeller? Dette vil permanent slette alle tilknyttede data, inkl. billeder og træningsdata. Denne handling kan ikke fortrydes.",
+ "single": "Er du sikker på, at du vil slette {{name}}? Dette vil permanent slette alle tilknyttede data, inklusive billeder og træningsdata. Denne handling kan ikke fortrydes."
+ },
+ "train": {
+ "title": "Nyeste kategorier",
+ "titleShort": "Nyeste",
+ "aria": "Vælg de nyeste kategorier"
+ },
+ "categories": "Kategorier",
+ "createCategory": {
+ "new": "Opret en ny kategori"
+ },
+ "categorizeImageAs": "Kategoriser billedet som:",
+ "categorizeImage": "Kategoriser billedet",
+ "menu": {
+ "objects": "Genstande",
+ "states": "Statestik"
+ },
+ "noModels": {
+ "object": {
+ "title": "Ingen kategoriseringsmodeller for genstande",
+ "description": "Opret en model, der kan kategorisere genstande.",
+ "buttonText": "Opret Genstands Model"
+ },
+ "state": {
+ "title": "Ingen modeller til genstandstilstande",
+ "description": "Opret en brugerdefineret model til at overvåge og kategorisere tilstandsændringer i specifikke kamerområder.",
+ "buttonText": "Opret tilstandsmodel"
+ }
+ },
+ "wizard": {
+ "step1": {
+ "type": "Type",
+ "typeState": "Tilstand",
+ "typeObject": "Genstand",
+ "objectLabel": "Genstands mærkat",
+ "objectLabelPlaceholder": "Vælg genstands type...",
+ "classificationType": "Kategoriseringstype",
+ "classificationTypeTip": "Udforsk kategoriseringstyper",
+ "errors": {
+ "nameLength": "Modellens navn må højst være 64 tegn",
+ "nameOnlyNumbers": "Modellens navn skal indeholde bogstaver",
+ "classRequired": "Der mangler en kategori",
+ "classesUnique": "Kategorinavne skal være unikke",
+ "noneNotAllowed": "Kategorinavnet 'none' er ikke tilladt",
+ "stateRequiresTwoClasses": "Tilstandsmodeller har brug for 2 kategorier",
+ "objectLabelRequired": "Vælg genstands mærkat",
+ "objectTypeRequired": "Vælg kategoriseringstype",
+ "nameRequired": "Modelnavn er påkrævet"
+ },
+ "description": "Tilstandsmodeller overvåger faste kameraområder for ændringer (f.eks. dør åben/lukket). Genstandsmodeller tilføjer kategoriseringer til detekterede genstande (f.eks. kendte dyr, leveringspersoner osv.).",
+ "name": "Navn",
+ "namePlaceholder": "Skriv modelnavn...",
+ "classificationTypeDesc": "Underetiketter tilføjer ekstra tekst til genstandens etiket (f.eks. 'Person: UPS'). Attributter er søgbare metadata, der opbevares separat i genstandens metadata.",
+ "classificationSubLabel": "Underetiketter",
+ "classificationAttribute": "Attribut",
+ "classes": "Kategori",
+ "states": "Tilstande",
+ "classesTip": "Lær om kategorier",
+ "classesStateDesc": "Definér de forskellige tilstande, dit kameraområde kan være i. For eksempel: 'åben' og 'lukket' for en garageport.",
+ "classesObjectDesc": "Definér de forskellige kategorier, som detekterede genstande skal kategoriseres i. For eksempel: 'leveringsperson', 'beboer', 'fremmed' til kategorisering af personer.",
+ "classPlaceholder": "Skriv kategorinavn..."
+ },
+ "step2": {
+ "description": "Vælg kameraer, og definer det område, der skal overvåges for hvert kamera. Modellen vil kategorisere tilstanden i disse områder.",
+ "cameras": "Kameraer",
+ "selectCamera": "Vælg Kamera",
+ "noCameras": "Klik + for at tilføje kamera",
+ "selectCameraPrompt": "Vælg et kamera fra listen for at definere dets overvågningsområde"
+ },
+ "step3": {
+ "selectImagesPrompt": "Vælg alle billeder med: {{className}}",
+ "selectImagesDescription": "Klik på billederne for at vælge dem. Klik på Fortsæt, når du er færdig med denne kategori.",
+ "allImagesRequired_one": "Venligst kategoriser alle billeder. {{count}} billede tilbage.",
+ "allImagesRequired_other": "Venligst kategoriser alle billeder. {{count}} billeder tilbage.",
+ "generating": {
+ "title": "Genererer testbilleder",
+ "description": "Frigate henter repræsentative billeder fra dine optagelser. Det kan tage et øjeblik..."
+ },
+ "training": {
+ "title": "Træningsmodel",
+ "description": "Din model trænes i baggrunden. Luk denne dialog, og din model vil begynde at køre, så snart træningen er færdig."
+ },
+ "retryGenerate": "Forsøg at generere igen",
+ "noImages": "Ingen prøvebilleder blev genereret",
+ "classifying": "Kategoriserer og træner...",
+ "trainingStarted": "Træningen er startet",
+ "modelCreated": "Model er oprettet. Brug visningen af nylige kategoriseringer til at tilføje billeder for de manglende tilstande, og træn modellen derefter.",
+ "errors": {
+ "noCameras": "Ingen kamera konfigureret",
+ "noObjectLabel": "Ingen genstandsmærkat valgt",
+ "generateFailed": "Kunne ikke generere eksempler: {{error}}",
+ "generationFailed": "Der opstod en fejl under genereringen. Prøv igen.",
+ "classifyFailed": "Kunne ikke kategorisere billederne: {{error}}"
+ },
+ "generateSuccess": "Eksempelbilleder er nu genereret",
+ "missingStatesWarning": {
+ "title": "Manglende tilstandseksempler",
+ "description": "Det anbefales at vælge eksempler for alle tilstande for at opnå de bedste resultater. Du kan fortsætte uden at vælge alle tilstande, men modellen bliver ikke trænet, før alle tilstande har billeder. Efter du fortsætter, kan du bruge visningen Seneste kategoriseringer til at kategorisere billeder for de manglende tilstande og derefter træne modellen."
+ }
+ },
+ "title": "Opret ny kategorisering",
+ "steps": {
+ "nameAndDefine": "Navn og definition",
+ "stateArea": "Tilstandsområde",
+ "chooseExamples": "Vælg Eksempler"
+ }
+ },
+ "edit": {
+ "title": "Rediger kategoriseringsmodel",
+ "descriptionState": "Rediger kategorierne for denne model til genstandstilstande. Ændringer kræver, at modellen trænes igen.",
+ "descriptionObject": "Rediger genstandstypen og kategoriseringstypen for denne genstandskategoriseringsmodel.",
+ "stateClassesInfo": "Bemærk: Ændring af tilstandskategorier kræver, at modellen trænes igen med de opdaterede kategorier."
+ },
+ "deleteDatasetImages": {
+ "title": "Slet billeder i datasættet",
+ "desc_one": "Er du sikker på, at du vil slette {{count}} billede fra {{dataset}}? Denne handling kan ikke fortrydes og kræver, at modellen trænes igen.",
+ "desc_other": "Er du sikker på, at du vil slette {{count}} billeder fra {{dataset}}? Denne handling kan ikke fortrydes og kræver, at modellen trænes igen."
+ },
+ "deleteTrainImages": {
+ "title": "Slet trænings billeder",
+ "desc_one": "Er du sikker på, at du vil slette {{count}} billede? Denne handling kan ikke fortrydes.",
+ "desc_other": "Er du sikker på, at du vil slette {{count}} billeder? Denne handling kan ikke fortrydes."
+ },
+ "renameCategory": {
+ "title": "Omdøb Kategori",
+ "desc": "Indtast et nyt navn til {{name}}. Modellen skal trænes igen, før navneændringen træder i kraft."
}
}
diff --git a/web/public/locales/da/views/configEditor.json b/web/public/locales/da/views/configEditor.json
index ba1d6a715..606479dba 100644
--- a/web/public/locales/da/views/configEditor.json
+++ b/web/public/locales/da/views/configEditor.json
@@ -3,8 +3,16 @@
"copyConfig": "Kopiér konfiguration",
"saveAndRestart": "Gem & Genstart",
"saveOnly": "Kun gem",
- "configEditor": "Konfigurationseditor",
- "safeConfigEditor": "Konfigurationseditor (Sikker tilstand)",
- "safeModeDescription": "Frigate er i sikker tilstand på grund af en fejl ved validering af konfigurationen.",
- "confirm": "Afslut uden at gemme?"
+ "configEditor": "Konfigurationsværktøj",
+ "safeConfigEditor": "Konfigurationsværktøj (Sikker tilstand)",
+ "safeModeDescription": "Frigate er i sikker tilstand på grund af valideringsfejl af konfigurationen.",
+ "confirm": "Afslut uden at gemme?",
+ "toast": {
+ "success": {
+ "copyToClipboard": "Konfigurationen er kopieret."
+ },
+ "error": {
+ "savingError": "Kan ikke gemme konfigurationen"
+ }
+ }
}
diff --git a/web/public/locales/da/views/events.json b/web/public/locales/da/views/events.json
index f59b2f356..222c61e49 100644
--- a/web/public/locales/da/views/events.json
+++ b/web/public/locales/da/views/events.json
@@ -11,6 +11,21 @@
"empty": {
"alert": "Der er ingen advarsler at gennemgå",
"detection": "Der er ingen registreringer at gennemgå",
- "motion": "Ingen bevægelsesdata fundet"
+ "motion": "Ingen bevægelsesdata fundet",
+ "recordingsDisabled": {
+ "title": "Optagelser skal være aktiveret"
+ }
+ },
+ "documentTitle": "Gennemse - Frigate",
+ "recordings": {
+ "documentTitle": "Optagelser - Frigate"
+ },
+ "calendarFilter": {
+ "last24Hours": "Sidste 24 timer"
+ },
+ "markAsReviewed": "Marker som gennemset",
+ "markTheseItemsAsReviewed": "Marker disse som gennemset",
+ "detail": {
+ "aria": "Skift til detaljevisning"
}
}
diff --git a/web/public/locales/da/views/exports.json b/web/public/locales/da/views/exports.json
index 8c5f119c4..6a821b3cd 100644
--- a/web/public/locales/da/views/exports.json
+++ b/web/public/locales/da/views/exports.json
@@ -8,5 +8,11 @@
"desc": "Indtast et nyt navn for denne eksport."
},
"noExports": "Ingen eksporter fundet",
- "deleteExport": "Slet eksport"
+ "deleteExport": "Slet eksport",
+ "tooltip": {
+ "shareExport": "Del eksport",
+ "downloadVideo": "Download video",
+ "editName": "Rediger navn",
+ "deleteExport": "Slette eksport"
+ }
}
diff --git a/web/public/locales/da/views/faceLibrary.json b/web/public/locales/da/views/faceLibrary.json
index f309e6fa0..40441517c 100644
--- a/web/public/locales/da/views/faceLibrary.json
+++ b/web/public/locales/da/views/faceLibrary.json
@@ -15,5 +15,8 @@
"uploadFaceImage": {
"title": "Upload ansigtsbillede",
"desc": "Upload et billede for at scanne efter ansigter og inkludere det for {{pageToggle}}"
+ },
+ "train": {
+ "titleShort": "Nyeste"
}
}
diff --git a/web/public/locales/da/views/live.json b/web/public/locales/da/views/live.json
index 254539b38..6de5619fd 100644
--- a/web/public/locales/da/views/live.json
+++ b/web/public/locales/da/views/live.json
@@ -14,8 +14,104 @@
"move": {
"clickMove": {
"label": "Klik i billedrammen for at centrere kameraet",
- "enable": "Aktivér klik for at flytte"
+ "enable": "Aktivér klik for at flytte",
+ "disable": "Deaktiver klik for at flytte"
+ },
+ "left": {
+ "label": "Flyt PTZ-kameraet til venstre"
+ },
+ "up": {
+ "label": "Flyt PTZ kamera op"
+ },
+ "down": {
+ "label": "Flyt PTZ-kameraet ned"
+ },
+ "right": {
+ "label": "Flyt PTZ-kameraet til højre"
}
- }
+ },
+ "zoom": {
+ "in": {
+ "label": "Zoom PTZ-kamera ind"
+ },
+ "out": {
+ "label": "Zoom PTZ kamera ud"
+ }
+ },
+ "focus": {
+ "in": {
+ "label": "Focus PTZ kamera ind"
+ },
+ "out": {
+ "label": "Focus PTZ kamera ud"
+ }
+ },
+ "frame": {
+ "center": {
+ "label": "Klik på billedet for at centrere PTZ-kameraet"
+ }
+ },
+ "presets": "PTZ kamera forudindstillinger"
+ },
+ "camera": {
+ "enable": "Aktivér kamera",
+ "disable": "Deaktivér kamera"
+ },
+ "muteCameras": {
+ "enable": "Slå lyd på alle kameraer fra",
+ "disable": "Slå lyd på alle kameraer til"
+ },
+ "detect": {
+ "enable": "Aktiver detektering",
+ "disable": "Deaktiver detektering"
+ },
+ "recording": {
+ "enable": "Aktivér optagelse",
+ "disable": "Deaktiver optagelse"
+ },
+ "snapshots": {
+ "enable": "Aktivér Snapshots",
+ "disable": "Deaktivér Snapshots"
+ },
+ "snapshot": {
+ "takeSnapshot": "Hent instant snapshot",
+ "noVideoSource": "Ingen videokilde til snapshot.",
+ "captureFailed": "Kunne ikke tage snapshot.",
+ "downloadStarted": "Hentning af snapshot startet."
+ },
+ "audioDetect": {
+ "enable": "Aktiver lyddetektor",
+ "disable": "Deaktiver lyddetektor"
+ },
+ "transcription": {
+ "enable": "Aktiver Live Audio Transkription",
+ "disable": "Deaktiver Live Audio Transkription"
+ },
+ "autotracking": {
+ "enable": "Aktiver Autotracking",
+ "disable": "Deaktiver Autotracking"
+ },
+ "streamStats": {
+ "enable": "Vis Stream statistik",
+ "disable": "Skjul Stream statistik"
+ },
+ "manualRecording": {
+ "title": "Manuel optagelse",
+ "tips": "Hent et øjebliksbillede eller start en manuel begivenhed baseret på dette kameras indstillinger for optagelse af opbevaring.",
+ "playInBackground": {
+ "label": "Afspil i baggrunden",
+ "desc": "Aktiver denne mulighed for at fortsætte streaming, når afspilleren er skjult."
+ },
+ "showStats": {
+ "label": "Vis statistik",
+ "desc": "Aktiver denne mulighed for at vise streamstatistikker som en overlejring på kameraets feed."
+ },
+ "debugView": "Debug View",
+ "start": "Start on-demand optagelse",
+ "started": "Start manuel optagelse.",
+ "failedToStart": "Manuel optagelse fejlede.",
+ "recordDisabledTips": "Da optagelsen er deaktiveret eller begrænset i konfig for dette kamera, gemmes der kun et snapshot.",
+ "end": "Afslut manuel optagelse",
+ "ended": "Afsluttet manuel optagelse."
}
}
diff --git a/web/public/locales/da/views/search.json b/web/public/locales/da/views/search.json
index 1cdc1460b..d643b298d 100644
--- a/web/public/locales/da/views/search.json
+++ b/web/public/locales/da/views/search.json
@@ -8,5 +8,6 @@
"filterInformation": "Filter information",
"filterActive": "Filtre aktiv",
"clear": "Ryd søgning"
- }
+ },
+ "trackedObjectId": "Sporet genstands-ID"
}
diff --git a/web/public/locales/de/common.json b/web/public/locales/de/common.json
index 532463f55..8ecd25ab6 100644
--- a/web/public/locales/de/common.json
+++ b/web/public/locales/de/common.json
@@ -84,7 +84,8 @@
},
"inProgress": "Im Gange",
"invalidStartTime": "Ungültige Startzeit",
- "invalidEndTime": "Ungültige Endzeit"
+ "invalidEndTime": "Ungültige Endzeit",
+ "never": "Nie"
},
"button": {
"save": "Speichern",
@@ -130,7 +131,8 @@
"show": "Zeige {{item}}",
"ID": "ID",
"none": "Nichts",
- "all": "Alle"
+ "all": "Alle",
+ "other": "andere"
},
"menu": {
"configurationEditor": "Konfigurationseditor",
@@ -177,7 +179,8 @@
"lt": "Lietuvių (Litauisch)",
"bg": "Български (bulgarisch)",
"gl": "Galego (Galicisch)",
- "id": "Bahasa Indonesia (Indonesisch)"
+ "id": "Bahasa Indonesia (Indonesisch)",
+ "hr": "Hrvatski (Kroatisch)"
},
"appearance": "Erscheinung",
"theme": {
diff --git a/web/public/locales/de/views/classificationModel.json b/web/public/locales/de/views/classificationModel.json
index 217d9df53..2de77e73e 100644
--- a/web/public/locales/de/views/classificationModel.json
+++ b/web/public/locales/de/views/classificationModel.json
@@ -1,5 +1,5 @@
{
- "documentTitle": "Klassifizierungsmodelle - Fregatte",
+ "documentTitle": "Klassifikationsmodelle - Frigate",
"details": {
"scoreInfo": "Die Punktzahl gibt die durchschnittliche Konfidenz aller Erkennungen dieses Objekts wieder.",
"none": "Keiner",
@@ -11,7 +11,7 @@
"deleteCategory": "Klasse löschen",
"deleteImages": "Bilder löschen",
"trainModel": "Modell trainieren",
- "addClassification": "Klassifizierung hinzufügen",
+ "addClassification": "Klassifikationsmodell hinzufügen",
"deleteModels": "Modell löschen",
"editModel": "Modell bearbeiten"
},
@@ -58,7 +58,7 @@
},
"edit": {
"title": "Klassifikationsmodell bearbeiten",
- "descriptionState": "Bearbeite die Klassen für dieses Zustandsklassifikationsmodell. Änderungen erfordern erneutes Trainieren des Modells.",
+ "descriptionState": "Bearbeite die Klassen für dieses Zustandsklassifikationsmodell. Änderungen erfordern ein erneutes Trainieren des Modells.",
"descriptionObject": "Bearbeite den Objekttyp und Klassifizierungstyp für dieses Objektklassifikationsmodell.",
"stateClassesInfo": "Hinweis: Die Änderung der Statusklassen erfordert ein erneutes Trainieren des Modells mit den aktualisierten Klassen."
},
@@ -97,49 +97,49 @@
"noModels": {
"object": {
"title": "Keine Objektklassifikationsmodelle",
- "description": "Erstelle ein benutzerdefiniertes Modell, um erkannte Objekte zu klassifizieren.",
- "buttonText": "Objektmodell erstellen"
+ "description": "Erstelle ein benutzerdefiniertes Objektklassifikationsmodell, um erkannte Objekte zu klassifizieren.",
+ "buttonText": "Objektklassifikationsmodell erstellen"
},
"state": {
- "title": "Keine Statusklassifizierungsmodelle",
- "description": "Erstellen Sie ein benutzerdefiniertes Modell, um Zustandsänderungen in bestimmten Kamerabereichen zu überwachen und zu klassifizieren.",
- "buttonText": "Zustandsmodell erstellen"
+ "title": "Keine Zustandsklassifikationsmodelle",
+ "description": "Erstellen Sie ein benutzerdefiniertes Zustandsklassifikationsmodell, um Zustandsänderungen in bestimmten Kamerabereichen zu überwachen und zu klassifizieren.",
+ "buttonText": "Zustandsklassifikationsmodell erstellen"
}
},
"wizard": {
- "title": "Neue Klassifizierung erstellen",
+ "title": "Neues Klassifikationsmodell erstellen",
"steps": {
"nameAndDefine": "Benennen und definieren",
- "stateArea": "Gebiet",
+ "stateArea": "Überwachungsbereich",
"chooseExamples": "Beispiel auswählen"
},
"step1": {
- "description": "Zustandsmodelle überwachen feste Kamerabereiche auf Veränderungen (z. B. Tür offen/geschlossen). Objektmodelle fügen den erkannten Objekten Klassifizierungen hinzu (z. B. bekannte Tiere, Lieferanten usw.).",
+ "description": "Zustandsmodelle überwachen fest definierte Kamerabereiche auf Veränderungen (z. B. Tür offen/geschlossen). Objektmodelle klassifizieren erkannte Objekte genauer (z. B. in bekannte Tiere, Lieferanten usw.).",
"name": "Name",
- "namePlaceholder": "Eingeben Modell Name...",
+ "namePlaceholder": "Modellname eingeben ...",
"type": "Typ",
"typeState": "Zustand",
"typeObject": "Objekt",
- "objectLabel": "Objekt Bezeichnung",
+ "objectLabel": "Objektbezeichnung",
"objectLabelPlaceholder": "Auswahl Objekt Typ...",
"classificationType": "Klassifizierungstyp",
"classificationTypeTip": "Etwas über Klassifizierungstyp lernen",
"classificationTypeDesc": "Unterbezeichnungen fügen dem Objektnamen zusätzlichen Text hinzu (z. B. „Person: UPS“). Attribute sind durchsuchbare Metadaten, die separat in den Objektmetadaten gespeichert sind.",
"classificationSubLabel": "Unterlabel",
- "classificationAttribute": "Merkmal",
- "classes": "Klasse",
- "states": "Gebiet",
- "classesTip": "Über Klassen lernen",
+ "classificationAttribute": "Attribut",
+ "classes": "Klassen",
+ "states": "Zustände",
+ "classesTip": "Mehr über Klassen erfahren",
"classesStateDesc": "Definieren Sie die verschiedenen Zustände, in denen sich Ihr Kamerabereich befinden kann. Beispiel: „offen” und „geschlossen” für ein Garagentor.",
"classesObjectDesc": "Definieren Sie die verschiedenen Kategorien, in die erkannte Objekte klassifiziert werden sollen. Beispiel: „Lieferant“, „Bewohner“, „Fremder“ für die Klassifizierung von Personen.",
"classPlaceholder": "Klassenbezeichnung eingeben...",
"errors": {
- "nameRequired": "Modellname ist erforderlich",
+ "nameRequired": "Der Modellname ist erforderlich",
"nameLength": "Der Modellname darf maximal 64 Zeichen lang sein",
"nameOnlyNumbers": "Der Modellname darf nicht nur aus Zahlen bestehen",
"classRequired": "Mindestens eine Klasse ist erforderlich",
- "classesUnique": "Klassenname muss eindeutig sein",
- "stateRequiresTwoClasses": "Gebietsmodelle erfordern mindestens zwei Klassen",
+ "classesUnique": "Der Klassenname muss eindeutig sein",
+ "stateRequiresTwoClasses": "Zustandsmodelle erfordern mindestens zwei Klassen",
"objectLabelRequired": "Bitte wähle eine Objektbeschriftung",
"objectTypeRequired": "Bitte wählen Sie einen Klassifizierungstyp aus",
"noneNotAllowed": "Die Klasse „none“ ist nicht zulässig"
@@ -149,12 +149,12 @@
"description": "Wählen Sie Kameras aus und legen Sie für jede Kamera den zu überwachenden Bereich fest. Das Modell klassifiziert den Zustand dieser Bereiche.",
"cameras": "Kameras",
"selectCamera": "Kamera auswählen",
- "noCameras": "Klick + zum hinzufügen der Kameras",
+ "noCameras": "Klicke + zum Hinzufügen von Kameras",
"selectCameraPrompt": "Wählen Sie eine Kamera aus der Liste aus, um ihren Überwachungsbereich festzulegen"
},
"step3": {
- "selectImagesPrompt": "Wählen sie alle Bilder mit: {{className}}",
- "selectImagesDescription": "Klicken Sie auf die Bilder, um sie auszuwählen. Klicken Sie auf „Weiter“, wenn Sie mit diesem Kurs fertig sind.",
+ "selectImagesPrompt": "Wählen Sie alle Bilder mit: {{className}}",
+ "selectImagesDescription": "Klicken Sie auf die Bilder, um sie auszuwählen. Klicken Sie auf „Weiter“, wenn Sie mit dieser Klasse fertig sind.",
"allImagesRequired_one": "Bitte klassifizieren Sie alle Bilder. {{count}} Bild verbleibend.",
"allImagesRequired_other": "Bitte klassifizieren Sie alle Bilder. {{count}} Bilder verbleiben.",
"generating": {
@@ -162,7 +162,7 @@
"description": "Frigate extrahiert repräsentative Bilder aus Ihren Aufnahmen. Dies kann einen Moment dauern..."
},
"training": {
- "title": "Trainingsmodell",
+ "title": "Trainiere Modell",
"description": "Ihr Modell wird im Hintergrund trainiert. Schließen Sie diesen Dialog, und Ihr Modell wird ausgeführt, sobald das Training abgeschlossen ist."
},
"retryGenerate": "Generierung wiederholen",
@@ -177,7 +177,7 @@
"classifyFailed": "Bilder konnten nicht klassifiziert werden: {{error}}"
},
"generateSuccess": "Erfolgreich generierte Beispielbilder",
- "modelCreated": "Modell erfolgreich erstellt. Verwenden Sie die Ansicht „Aktuelle Klassifizierungen“, um Bilder für fehlende Zustände hinzuzufügen, und trainieren Sie dann das Modell.",
+ "modelCreated": "Modell erfolgreich erstellt. Verwenden Sie die Ansicht „Aktuelle Klassifizierungen“, um Bilder für fehlende Zustände hinzuzufügen und trainieren Sie dann das Modell erneut.",
"missingStatesWarning": {
"title": "Beispiele für fehlende Zustände",
"description": "Es wird empfohlen für alle Zustände Beispiele auszuwählen. Das Modell wird erst trainiert, wenn für alle Zustände Bilder vorhanden sind. Fahren Sie fort und verwenden Sie die Ansicht „Aktuelle Klassifizierungen“, um Bilder für die fehlenden Zustände zu klassifizieren. Trainieren Sie anschließend das Modell."
diff --git a/web/public/locales/de/views/events.json b/web/public/locales/de/views/events.json
index 1b031af7b..963482073 100644
--- a/web/public/locales/de/views/events.json
+++ b/web/public/locales/de/views/events.json
@@ -8,7 +8,11 @@
"empty": {
"alert": "Es gibt keine zu prüfenden Alarme",
"detection": "Es gibt keine zu prüfenden Erkennungen",
- "motion": "Keine Bewegungsdaten gefunden"
+ "motion": "Keine Bewegungsdaten gefunden",
+ "recordingsDisabled": {
+ "title": "Aufzeichnungen müssen aktiviert sein",
+ "description": "Überprüfungselemente können nur für eine Kamera erstellt werden, wenn Aufzeichnungen für diese Kamera aktiviert sind."
+ }
},
"timeline": "Zeitleiste",
"timeline.aria": "Zeitleiste auswählen",
diff --git a/web/public/locales/de/views/explore.json b/web/public/locales/de/views/explore.json
index 87da74008..273c568a2 100644
--- a/web/public/locales/de/views/explore.json
+++ b/web/public/locales/de/views/explore.json
@@ -79,7 +79,10 @@
"title": "Attribute bearbeiten",
"desc": "Wählen Sie Klassifizierungsattribute für dieses {{label}} aus"
},
- "attributes": "Klassifizierungsattribute"
+ "attributes": "Klassifizierungsattribute",
+ "title": {
+ "label": "Titel"
+ }
},
"documentTitle": "Erkunde - Frigate",
"generativeAI": "Generative KI",
diff --git a/web/public/locales/de/views/faceLibrary.json b/web/public/locales/de/views/faceLibrary.json
index e69114b50..8461b1f69 100644
--- a/web/public/locales/de/views/faceLibrary.json
+++ b/web/public/locales/de/views/faceLibrary.json
@@ -1,8 +1,9 @@
{
"description": {
"placeholder": "Gib einen Name für diese Kollektion ein",
- "addFace": "Füge der Gesichtsbibliothek eine neue Sammlung hinzu, indem ein Bild hinzufügst.",
- "invalidName": "Ungültiger Name. Namen dürfen nur Buchstaben, Zahlen, Leerzeichen, Apostrophe, Unterstriche und Bindestriche enthalten."
+ "addFace": "Füge der Gesichtsbibliothek eine neue Sammlung hinzu, indem du ein Bild hochlädst.",
+ "invalidName": "Ungültiger Name. Namen dürfen nur Buchstaben, Zahlen, Leerzeichen, Apostrophe, Unterstriche und Bindestriche enthalten.",
+ "nameCannotContainHash": "Der Name darf keine # enthalten."
},
"details": {
"person": "Person",
diff --git a/web/public/locales/de/views/live.json b/web/public/locales/de/views/live.json
index e0bf9955e..5763d4a20 100644
--- a/web/public/locales/de/views/live.json
+++ b/web/public/locales/de/views/live.json
@@ -178,6 +178,16 @@
"restricted": {
"title": "Keine Kamera verfügbar",
"description": "Sie haben keine Berechtigung, Kameras in dieser Gruppe anzuzeigen."
+ },
+ "default": {
+ "title": "Keine Kameras konfiguriert",
+ "description": "Zum Start eine Kamera mit Frigate verbinden.",
+ "buttonText": "Kamera hinzufügen"
+ },
+ "group": {
+ "title": "Keine Kameras in der Gruppe",
+ "description": "Diese Kameragruppe hat keine zugewiesenen oder aktiven Kameras.",
+ "buttonText": "Gruppen verwalten"
}
},
"snapshot": {
diff --git a/web/public/locales/de/views/settings.json b/web/public/locales/de/views/settings.json
index f577ae774..eb434e4d5 100644
--- a/web/public/locales/de/views/settings.json
+++ b/web/public/locales/de/views/settings.json
@@ -49,7 +49,7 @@
"desc": "Standardmäßig werden die letzten Warnmeldungen auf dem Live-Dashboard als kurze Videoschleifen abgespielt. Deaktiviere diese Option, um nur ein statisches Bild der letzten Warnungen auf diesem Gerät/Browser anzuzeigen."
},
"automaticLiveView": {
- "desc": "Wechsle automatisch zur Live Ansicht der Kamera, wenn einen Aktivität erkannt wurde. Wenn du diese Option deaktivierst, werden die statischen Kamerabilder auf der Liveübersicht nur einmal pro Minute aktualisiert.",
+ "desc": "Zeigt automatisch das Live-Bild einer Kamera an, wenn eine Aktivität erkannt wird. Ist diese Option deaktiviert, werden Kamerabilder im Live-Dashboard nur einmal pro Minute aktualisiert.",
"label": "Automatische Live Ansicht"
},
"displayCameraNames": {
@@ -544,7 +544,7 @@
"placeholder": "Passwort eingeben",
"requirements": {
"title": "Passwort Anforderungen:",
- "length": "Mindestens 8 Zeichen",
+ "length": "Mindestens 12 Zeichen",
"uppercase": "Mindestens ein Großbuchstabe",
"digit": "Mindestens eine Ziffer",
"special": "Mindestens ein Sonderzeichen (!@#$%^&*(),.?\":{}|<>)"
@@ -1265,11 +1265,11 @@
"title": "Kamera-Einstellungen überprüfen",
"object_descriptions": {
"title": "Generative KI Objektbeschreibungen",
- "desc": "Aktiviere/deaktiviere vorübergehend die Objektbeschreibungen durch Generative KI für diese Kamera. Wenn diese Option deaktiviert ist, werden keine KI-generierten Beschreibungen für verfolgte Objekte dieser Kamera erstellt."
+ "desc": "Aktiviere/deaktiviere vorübergehend die Objektbeschreibungen durch generative KI für diese Kamera. Wenn diese Option deaktiviert ist, werden keine KI-generierten Beschreibungen für verfolgte Objekte dieser Kamera erstellt."
},
"review_descriptions": {
"title": "Generative KI Review Beschreibungen",
- "desc": "Generative KI Review Beschreibungen für diese Kamera vorübergehend aktivieren/deaktivieren. Wenn diese Option deaktiviert ist, werden für die Review Elemente dieser Kamera keine KI-generierten Beschreibungen angefordert."
+ "desc": "Aktivieren/deaktivieren Sie vorübergehend die generativen KI-Überprüfungsbeschreibungen für diese Kamera, bis Frigate neu gestartet wird. Wenn diese Option deaktiviert ist, werden für Überprüfungselemente auf dieser Kamera keine KI-generierten Beschreibungen angefordert."
},
"review": {
"title": "Überprüfung",
diff --git a/web/public/locales/de/views/system.json b/web/public/locales/de/views/system.json
index a7bb342ae..0437c65b1 100644
--- a/web/public/locales/de/views/system.json
+++ b/web/public/locales/de/views/system.json
@@ -50,7 +50,14 @@
"otherProcesses": {
"title": "Andere Prozesse",
"processCpuUsage": "CPU Auslastung für Prozess",
- "processMemoryUsage": "Prozessspeicherauslastung"
+ "processMemoryUsage": "Prozessspeicherauslastung",
+ "series": {
+ "go2rtc": "go2rtc",
+ "recording": "Aufnahme",
+ "audio_detector": "Geräuscherkennung",
+ "review_segment": "Überprüfungsteil",
+ "embeddings": "Einbettungen"
+ }
}
},
"documentTitle": {
diff --git a/web/public/locales/el/common.json b/web/public/locales/el/common.json
index 3bcd3316f..5978d6cff 100644
--- a/web/public/locales/el/common.json
+++ b/web/public/locales/el/common.json
@@ -75,7 +75,8 @@
"s": "{{time}}δ",
"inProgress": "Σε εξέλιξη",
"invalidStartTime": "Μη έγκυρη ώρα έναρξης",
- "invalidEndTime": "Μη έγκυρη ώρα λήξης"
+ "invalidEndTime": "Μη έγκυρη ώρα λήξης",
+ "never": "Ποτέ"
},
"menu": {
"live": {
diff --git a/web/public/locales/el/views/classificationModel.json b/web/public/locales/el/views/classificationModel.json
index 0967ef424..926a5fc10 100644
--- a/web/public/locales/el/views/classificationModel.json
+++ b/web/public/locales/el/views/classificationModel.json
@@ -1 +1,14 @@
-{}
+{
+ "documentTitle": "Μοντέλα Ταξινόμησης - Frigate",
+ "details": {
+ "scoreInfo": "Η βαθμολογία αντιπροσωπεύει την κατά μέσο όρο ταξινομική εμπιστοσύνη μεταξύ όλων των ανιχνεύσεων αυτού του αντικειμένου.",
+ "none": "Καμία",
+ "unknown": "Άγνωστο"
+ },
+ "button": {
+ "deleteClassificationAttempts": "Διαγραφή Εικόνων Ταξινόμησης",
+ "deleteImages": "Διαγραφή Εικόνων",
+ "trainModel": "Εκπαίδευση Μοντέλου",
+ "addClassification": "Προσθήκη Ταξινόμησης"
+ }
+}
diff --git a/web/public/locales/el/views/events.json b/web/public/locales/el/views/events.json
index e2e21a05c..82031a897 100644
--- a/web/public/locales/el/views/events.json
+++ b/web/public/locales/el/views/events.json
@@ -9,7 +9,10 @@
"empty": {
"alert": "Δεν υπάρχουν ειδοποιήσεις για εξέταση",
"detection": "Δεν υπάρχουν εντοπισμοί για εξέταση",
- "motion": "Δεν βρέθηκαν στοιχεία κίνησης"
+ "motion": "Δεν βρέθηκαν στοιχεία κίνησης",
+ "recordingsDisabled": {
+ "title": "Οι καταγραφές πρέπει να είναι ενεργοποιημένες"
+ }
},
"timeline": "Χρονολόγιο",
"timeline.aria": "Επιλογή χρονοσειράς",
diff --git a/web/public/locales/en/common.json b/web/public/locales/en/common.json
index 2ae6297a1..300f74ddb 100644
--- a/web/public/locales/en/common.json
+++ b/web/public/locales/en/common.json
@@ -3,6 +3,7 @@
"untilForTime": "Until {{time}}",
"untilForRestart": "Until Frigate restarts.",
"untilRestart": "Until restart",
+ "never": "Never",
"ago": "{{timeAgo}} ago",
"justNow": "Just now",
"today": "Today",
@@ -192,6 +193,7 @@
"yue": "粵語 (Cantonese)",
"th": "ไทย (Thai)",
"ca": "Català (Catalan)",
+ "hr": "Hrvatski (Croatian)",
"sr": "Српски (Serbian)",
"sl": "Slovenščina (Slovenian)",
"lt": "Lietuvių (Lithuanian)",
diff --git a/web/public/locales/en/config/genai.json b/web/public/locales/en/config/genai.json
index 084b921c2..fed679d9e 100644
--- a/web/public/locales/en/config/genai.json
+++ b/web/public/locales/en/config/genai.json
@@ -15,6 +15,9 @@
},
"provider_options": {
"label": "GenAI Provider extra options."
+ },
+ "runtime_options": {
+ "label": "Options to pass during inference calls."
}
}
-}
\ No newline at end of file
+}
diff --git a/web/public/locales/en/views/faceLibrary.json b/web/public/locales/en/views/faceLibrary.json
index 2dbb1a4fd..354049156 100644
--- a/web/public/locales/en/views/faceLibrary.json
+++ b/web/public/locales/en/views/faceLibrary.json
@@ -2,7 +2,8 @@
"description": {
"addFace": "Add a new collection to the Face Library by uploading your first image.",
"placeholder": "Enter a name for this collection",
- "invalidName": "Invalid name. Names can only include letters, numbers, spaces, apostrophes, underscores, and hyphens."
+ "invalidName": "Invalid name. Names can only include letters, numbers, spaces, apostrophes, underscores, and hyphens.",
+ "nameCannotContainHash": "Name cannot contain #."
},
"details": {
"timestamp": "Timestamp",
diff --git a/web/public/locales/en/views/live.json b/web/public/locales/en/views/live.json
index 21f367ea9..c2efef84f 100644
--- a/web/public/locales/en/views/live.json
+++ b/web/public/locales/en/views/live.json
@@ -181,6 +181,16 @@
"restricted": {
"title": "No Cameras Available",
"description": "You don't have permission to view any cameras in this group."
+ },
+ "default": {
+ "title": "No Cameras Configured",
+ "description": "Get started by connecting a camera to Frigate.",
+ "buttonText": "Add Camera"
+ },
+ "group": {
+ "title": "No Cameras in Group",
+ "description": "This camera group has no assigned or enabled cameras.",
+ "buttonText": "Manage Groups"
}
}
}
diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json
index 1946a1c62..ea2869986 100644
--- a/web/public/locales/en/views/settings.json
+++ b/web/public/locales/en/views/settings.json
@@ -386,11 +386,11 @@
"title": "Camera Review Settings",
"object_descriptions": {
"title": "Generative AI Object Descriptions",
- "desc": "Temporarily enable/disable Generative AI object descriptions for this camera. When disabled, AI generated descriptions will not be requested for tracked objects on this camera."
+ "desc": "Temporarily enable/disable Generative AI object descriptions for this camera until Frigate restarts. When disabled, AI generated descriptions will not be requested for tracked objects on this camera."
},
"review_descriptions": {
"title": "Generative AI Review Descriptions",
- "desc": "Temporarily enable/disable Generative AI review descriptions for this camera. When disabled, AI generated descriptions will not be requested for review items on this camera."
+ "desc": "Temporarily enable/disable Generative AI review descriptions for this camera until Frigate restarts. When disabled, AI generated descriptions will not be requested for review items on this camera."
},
"review": {
"title": "Review",
@@ -468,6 +468,11 @@
}
},
"polygonDrawing": {
+ "type": {
+ "zone": "zone",
+ "motion_mask": "motion mask",
+ "object_mask": "object mask"
+ },
"removeLastPoint": "Remove last point",
"reset": {
"label": "Clear all points"
@@ -728,10 +733,7 @@
},
"requirements": {
"title": "Password requirements:",
- "length": "At least 8 characters",
- "uppercase": "At least one uppercase letter",
- "digit": "At least one digit",
- "special": "At least one special character (!@#$%^&*(),.?\":{}|<>)"
+ "length": "At least 12 characters"
},
"match": "Passwords match",
"notMatch": "Passwords don't match"
diff --git a/web/public/locales/es/audio.json b/web/public/locales/es/audio.json
index 16288b261..2641cb561 100644
--- a/web/public/locales/es/audio.json
+++ b/web/public/locales/es/audio.json
@@ -31,7 +31,7 @@
"crying": "Llanto",
"synthetic_singing": "Canto sintético",
"rapping": "Rap",
- "humming": "Tarareo",
+ "humming": "Zumbido leve",
"groan": "Gemido",
"grunt": "Gruñido",
"whistling": "Silbido",
@@ -129,7 +129,7 @@
"sitar": "Sitar",
"mandolin": "Mandolina",
"zither": "Cítara",
- "ukulele": "Ukulele",
+ "ukulele": "Ukelele",
"piano": "Piano",
"organ": "Órgano",
"electronic_organ": "Órgano electrónico",
@@ -153,7 +153,7 @@
"mallet_percussion": "Percusión con mazas",
"marimba": "Marimba",
"glockenspiel": "Glockenspiel",
- "steelpan": "Steelpan",
+ "steelpan": "SarténAcero",
"orchestra": "Orquesta",
"trumpet": "Trompeta",
"string_section": "Sección de cuerdas",
@@ -183,13 +183,13 @@
"psychedelic_rock": "Rock psicodélico",
"rhythm_and_blues": "Rhythm and blues",
"soul_music": "Música soul",
- "country": "Country",
+ "country": "País",
"swing_music": "Música swing",
"disco": "Disco",
"house_music": "Música House",
"dubstep": "Dubstep",
"drum_and_bass": "Drum and Bass",
- "electronica": "Electronica",
+ "electronica": "Electrónica",
"electronic_dance_music": "Música Dance Electronica",
"music_of_latin_america": "Música de América Latina",
"salsa_music": "Música Salsa",
@@ -207,7 +207,7 @@
"song": "Canción",
"background_music": "Música Background",
"soundtrack_music": "Música de Pelicula",
- "lullaby": "Lullaby",
+ "lullaby": "Cancion de cuna",
"video_game_music": "Música de Videojuego",
"christmas_music": "Música Navideña",
"sad_music": "Música triste",
@@ -425,5 +425,79 @@
"radio": "Radio",
"gunshot": "Disparo",
"fusillade": "Descarga de Fusilería",
- "pink_noise": "Ruido Rosa"
+ "pink_noise": "Ruido Rosa",
+ "shofar": "Shofar",
+ "liquid": "Líquido",
+ "splash": "Chapoteo",
+ "slosh": "líquido_en_movimiento",
+ "squish": "Chapotear",
+ "drip": "Goteo",
+ "pour": "Derramar",
+ "trickle": "Chorrito",
+ "gush": "Chorro",
+ "fill": "Llenar",
+ "spray": "Pulverizar",
+ "pump": "Bombear",
+ "stir": "Remover",
+ "boiling": "Hirviendo",
+ "sonar": "Sonar",
+ "arrow": "Flecha",
+ "whoosh": "Zas",
+ "thump": "Golpear",
+ "thunk": "Golpe_sordo",
+ "electronic_tuner": "Afinador_electrónico",
+ "effects_unit": "Unidades de efecto",
+ "chorus_effect": "Efecto Coral",
+ "basketball_bounce": "Bote baloncesto",
+ "bang": "Bang",
+ "slap": "Bofeteada",
+ "whack": "Aporreo",
+ "smash": "Aplastar",
+ "breaking": "Romper",
+ "bouncing": "Botar",
+ "whip": "Latigazo",
+ "flap": "Aleteo",
+ "scratch": "Arañazo",
+ "scrape": "Arañar",
+ "rub": "Frotar",
+ "roll": "Roll",
+ "crushing": "aplastar",
+ "crumpling": "Arrugar",
+ "tearing": "Rasgar",
+ "beep": "Bip",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "Sonido metálico",
+ "squeal": "Chillido",
+ "creak": "Crujido",
+ "rustle": "Crujir",
+ "whir": "Zumbido de ventilador",
+ "clatter": "Estrépito",
+ "sizzle": "Chisporroteo",
+ "clicking": "Click",
+ "clickety_clack": "Clic-clac",
+ "rumble": "Retumbar",
+ "plop": "Plaf",
+ "hum": "Murmullo",
+ "zing": "silbido",
+ "boing": "Bote",
+ "crunch": "Crujido",
+ "sine_wave": "Onda Sinusoidal",
+ "harmonic": "Harmonica",
+ "chirp_tone": "Tono de chirrido",
+ "pulse": "Pulso",
+ "inside": "Dentro",
+ "outside": "Afuera",
+ "reverberation": "Reverberación",
+ "echo": "Eco",
+ "noise": "Ruido",
+ "mains_hum": "Zumbido de red",
+ "distortion": "Distorsión",
+ "sidetone": "Tono lateral",
+ "cacophony": "Cacofonía",
+ "throbbing": "Palpitación",
+ "vibration": "Vibración",
+ "sodeling": "Sodeling",
+ "chird": "Chird",
+ "change_ringing": "Cambio timbre"
}
diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json
index 9f35ee958..a953bc5b9 100644
--- a/web/public/locales/es/common.json
+++ b/web/public/locales/es/common.json
@@ -87,7 +87,11 @@
"formattedTimestampMonthDayYear": {
"12hour": "MMM d, yyyy",
"24hour": "MMM d, yyyy"
- }
+ },
+ "inProgress": "En progreso",
+ "invalidStartTime": "Hora de inicio no válida",
+ "invalidEndTime": "Hora de finalización no válida",
+ "never": "Nunca"
},
"menu": {
"settings": "Ajustes",
@@ -189,7 +193,8 @@
"review": "Revisar",
"explore": "Explorar",
"uiPlayground": "Zona de pruebas de la interfaz de usuario",
- "faceLibrary": "Biblioteca de rostros"
+ "faceLibrary": "Biblioteca de rostros",
+ "classification": "Clasificación"
},
"unit": {
"speed": {
@@ -199,6 +204,14 @@
"length": {
"meters": "Metros",
"feet": "Pies"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/hora",
+ "mbph": "MB/hora",
+ "gbph": "GB/hora"
}
},
"button": {
@@ -236,7 +249,8 @@
"enabled": "Habilitado",
"saving": "Guardando…",
"exitFullscreen": "Salir de pantalla completa",
- "on": "ENCENDIDO"
+ "on": "ENCENDIDO",
+ "continue": "Continuar"
},
"toast": {
"save": {
@@ -249,7 +263,13 @@
"copyUrlToClipboard": "URL copiada al portapapeles."
},
"label": {
- "back": "Volver atrás"
+ "back": "Volver atrás",
+ "hide": "Ocultar {{item}}",
+ "show": "Mostrar {{item}}",
+ "ID": "ID",
+ "none": "Ninguno",
+ "all": "Todas",
+ "other": "Otro"
},
"role": {
"title": "Rol",
@@ -283,5 +303,14 @@
"readTheDocumentation": "Leer la documentación",
"information": {
"pixels": "{{area}}px"
+ },
+ "list": {
+ "two": "{{0}} y {{1}}",
+ "many": "{{items}}, y {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Opcional",
+ "internalID": "La ID interna que usa Frigate en la configuración y en la base de datos"
}
}
diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json
index e200c388d..98c96528f 100644
--- a/web/public/locales/es/components/dialog.json
+++ b/web/public/locales/es/components/dialog.json
@@ -66,10 +66,11 @@
"toast": {
"error": {
"failed": "No se pudo iniciar la exportación: {{error}}",
- "noVaildTimeSelected": "No se seleccionó un rango de tiempo válido.",
- "endTimeMustAfterStartTime": "La hora de finalización debe ser posterior a la hora de inicio."
+ "noVaildTimeSelected": "No se seleccionó un rango de tiempo válido",
+ "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."
+ "success": "Exportación iniciada con éxito. Ver el archivo en la página exportaciones.",
+ "view": "Ver"
},
"fromTimeline": {
"saveExport": "Guardar exportación",
@@ -129,6 +130,7 @@
"search": {
"placeholder": "Búsqueda por etiqueta o sub-etiqueta..."
},
- "noImages": "No se encontraron miniaturas para esta cámara"
+ "noImages": "No se encontraron miniaturas para esta cámara",
+ "unknownLabel": "Imagen de activación guardada"
}
}
diff --git a/web/public/locales/es/components/filter.json b/web/public/locales/es/components/filter.json
index 3625030f9..49e3c3347 100644
--- a/web/public/locales/es/components/filter.json
+++ b/web/public/locales/es/components/filter.json
@@ -133,5 +133,9 @@
},
"count_one": "{{count}} Clase",
"count_other": "{{count}} Clases"
+ },
+ "attributes": {
+ "label": "Atributos de Clasificación",
+ "all": "Todos los Atributos"
}
}
diff --git a/web/public/locales/es/objects.json b/web/public/locales/es/objects.json
index 0e972102c..0fd02208a 100644
--- a/web/public/locales/es/objects.json
+++ b/web/public/locales/es/objects.json
@@ -102,7 +102,7 @@
"baseball_bat": "Bate de béisbol",
"oven": "Horno",
"waste_bin": "Papelera",
- "snowboard": "Snowboard",
+ "snowboard": "Tabla de Snow",
"sandwich": "Sandwich",
"fox": "Zorro",
"nzpost": "NZPost",
diff --git a/web/public/locales/es/views/classificationModel.json b/web/public/locales/es/views/classificationModel.json
index 4890ed058..f70c69bf1 100644
--- a/web/public/locales/es/views/classificationModel.json
+++ b/web/public/locales/es/views/classificationModel.json
@@ -1,7 +1,7 @@
{
- "documentTitle": "Modelos de Clasificación",
+ "documentTitle": "Modelos de Clasificación - Frigate",
"button": {
- "deleteClassificationAttempts": "Borrar Imágenes de Clasificación.",
+ "deleteClassificationAttempts": "Borrar Imágenes de Clasificación",
"renameCategory": "Renombrar Clase",
"deleteCategory": "Borrar Clase",
"deleteImages": "Borrar Imágenes",
@@ -30,12 +30,15 @@
"categorizeFailed": "Fallo al categorizar imagen: {{errorMessage}}",
"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}}"
+ "trainingFailedToStart": "No se pudo iniciar el entrenamiento del modelo: {{errorMessage}}",
+ "renameCategoryFailed": "Falló el renombrado de la clase: {{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."
+ "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",
+ "minClassesDesc": "Un modelo de clasificación debe tener al menos 2 clases. Añade otra clase antes de borrar esta."
},
"deleteModel": {
"title": "Borrar Modelo de Clasificación",
@@ -45,15 +48,145 @@
"desc_other": "¿Estas seguro de que quiere borrar {{count}} modelos? Esto borrara permanentemente todos los datos asociados, incluyendo imágenes y datos de entrenamiento. Esta acción no puede ser desehecha."
},
"edit": {
- "title": "Editar modelo de clasificación"
+ "title": "Editar modelo de clasificación",
+ "descriptionState": "Edita las clases para este modelo de clasificación de estados. Los cambios requerirán un reentrenamiento de modelo.",
+ "descriptionObject": "Edita el tipo de objeto y el tipo de clasificación para este modelo de clasificación de objetos.",
+ "stateClassesInfo": "Nota: El cambio de las clases de estado requiere reentrenar el modelo con las clases actualizadas."
},
"tooltip": {
"noChanges": "No se han realizado cambios en el conjunto de datos desde el último entrenamiento.",
"modelNotReady": "El modelo no está listo para el entrenamiento",
- "trainingInProgress": "El modelo está entrenándose actualmente.",
+ "trainingInProgress": "El modelo está entrenándose actualmente",
"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 media de clasificación en todas las detecciones de este objeto.",
+ "unknown": "Desconocido",
+ "none": "Ninguna"
+ },
+ "categorizeImage": "Clasificar Imagen",
+ "menu": {
+ "objects": "Objetos",
+ "states": "Estados"
+ },
+ "wizard": {
+ "steps": {
+ "chooseExamples": "Seleccionar Ejemplos",
+ "nameAndDefine": "Nombrar y definir",
+ "stateArea": "Área de estado"
+ },
+ "step1": {
+ "name": "Nombre",
+ "namePlaceholder": "Introducir nombre del modelo...",
+ "type": "Tipo",
+ "typeState": "Estado",
+ "typeObject": "Objeto",
+ "objectLabel": "Etiqueta de Objeto",
+ "objectLabelPlaceholder": "Seleccionar tipo de objeto...",
+ "classificationAttribute": "Atributo",
+ "classes": "Clases",
+ "states": "Estados",
+ "classPlaceholder": "Introducir nombre de la clase...",
+ "errors": {
+ "nameRequired": "Se requiere nombre del modelo",
+ "nameLength": "El nombre del modelo debe tener 64 caracteres o menos",
+ "nameOnlyNumbers": "El nombre del modelo no puede contener solo números",
+ "classRequired": "Al menos se requiere una clase",
+ "classesUnique": "Los nombres de clase deben ser únicos",
+ "noneNotAllowed": "La clase 'none' no esta permitida",
+ "stateRequiresTwoClasses": "Los modelos de estado requieren al menos 2 clases",
+ "objectLabelRequired": "Por favor seleccione una etiqueta de objeto",
+ "objectTypeRequired": "Por favor seleccione un tipo de clasificación"
+ },
+ "description": "Los modelos de estado monitorean las áreas fijas de la cámara para detectar cambios (p. ej., puerta abierta/cerrada). Los modelos de objetos clasifican los objetos detectados (p. ej., animales conocidos, repartidores, etc.).",
+ "classificationType": "Tipo de clasificación",
+ "classificationTypeTip": "Conozca más sobre los tipos de clasificación",
+ "classificationTypeDesc": "Las subetiquetas añaden texto adicional a la etiqueta del objeto (p. ej., «Persona: UPS»). Los atributos son metadatos que permiten búsquedas y se almacenan por separado en los metadatos del objeto.",
+ "classificationSubLabel": "Sub etiqueta",
+ "classesTip": "Aprenda más sobre clases",
+ "classesStateDesc": "Define los diferentes estados en los que puede estar el área de tu cámara. Por ejemplo: \"abierta\" y \"cerrada\" para una puerta de garaje.",
+ "classesObjectDesc": "Define las diferentes categorías para clasificar los objetos detectados. Por ejemplo: \"persona de reparto\", \"residente\" y \"desconocido\" para la clasificación de personas."
+ },
+ "step2": {
+ "description": "Seleccione las cámaras y defina el area a monitorizar por cada cámara. El modelo clasificará el estado de estas cámaras.",
+ "cameras": "Camaras",
+ "selectCamera": "Selecciones Cámara",
+ "noCameras": "Haga clic en + para añadir cámaras",
+ "selectCameraPrompt": "Seleccione una cámara de la lista para definir su área de monitorización"
+ },
+ "step3": {
+ "selectImagesPrompt": "Seleccione todas las imágenes de: {{className}}",
+ "selectImagesDescription": "Haga clic en las imágenes para seleccionarlas. Haga clic en Continuar cuando esté listo para esta clase.",
+ "generating": {
+ "title": "Generando Imágenes de Ejemplo",
+ "description": "Frigate está seleccionando imágenes representativas de sus grabaciones. Esto puede llevar un tiempo..."
+ },
+ "training": {
+ "title": "Modelo de Entrenamiento",
+ "description": "Tu modelo se está entrenando en segundo plano. Cierra este cuadro de diálogo y tu modelo comenzará a ejecutarse en cuanto finalice el entrenamiento."
+ },
+ "retryGenerate": "Reintentar Generación",
+ "noImages": "No se han generado imágenes de ejemplo",
+ "classifying": "Clasificando y Entrenando...",
+ "trainingStarted": "Entrenamiento iniciado con éxito",
+ "modelCreated": "Modelo creado con éxito. Use la vista de Clasificaciones Recientes para añadir imágenes para los estados que falten, después entrene el modelo.",
+ "errors": {
+ "noCameras": "No hay cámaras configuradas",
+ "noObjectLabel": "No se ha seleccionado etiqueta de objeto",
+ "generateFailed": "Falló la generación de ejemplos: {{error}}",
+ "generationFailed": "Generación fallida. Por favor pruebe otra vez.",
+ "classifyFailed": "Falló la clasificación de imágenes: {{error}}"
+ },
+ "generateSuccess": "Imágenes de ejemplo generadas correctamente",
+ "missingStatesWarning": {
+ "title": "Faltan Ejemplos de Estado",
+ "description": "Se recomienda seleccionar ejemplos para todos los estados para obtener mejores resultados. Puede continuar sin seleccionar todos los estados, pero el modelo no se entrenará hasta que todos los estados tengan imágenes. Después de continuar, use la vista \"Clasificaciones recientes\" para clasificar las imágenes de los estados faltantes y luego entrene el modelo."
+ },
+ "allImagesRequired_one": "Por favor clasifique todas las imágenes. Queda {{count}} imagen.",
+ "allImagesRequired_many": "Por favor clasifique todas las imágenes. Quedan {{count}} imágenes.",
+ "allImagesRequired_other": "Por favor clasifique todas las imágenes. Quedan {{count}} imágenes."
+ },
+ "title": "Crear nueva Clasificación"
+ },
+ "deleteDatasetImages": {
+ "title": "Borrar Conjunto de Imágenes",
+ "desc_one": "¿Está seguro de que quiere eliminar {{count}} imagen de {{dataset}}? Esta acción no puede ser deshecha y requerirá reentrenar el modelo.",
+ "desc_many": "¿Está seguro de que quiere eliminar {{count}} imágenes de {{dataset}}? Esta acción no puede ser deshecha y requerirá reentrenar el modelo.",
+ "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",
+ "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."
+ },
+ "renameCategory": {
+ "title": "Renombrar Clase",
+ "desc": "Introduzca un nuevo nombre para {{name}}. Se requerirá que reentrene el modelo para que el cambio de nombre tenga efecto."
+ },
+ "description": {
+ "invalidName": "Nombre incorrecto. Los nombres solo pueden incluir letras, números, espacios, apóstrofes, guiones bajos, y guiones."
+ },
+ "train": {
+ "title": "Clasificaciones Recientes",
+ "titleShort": "Reciente",
+ "aria": "Seleccione Clasificaciones Recientes"
+ },
+ "categories": "Clases",
+ "createCategory": {
+ "new": "Crear Nueva Clase"
+ },
+ "categorizeImageAs": "Clasificar Imagen Como:",
+ "noModels": {
+ "object": {
+ "title": "No hay Modelos de Clasificación de Objetos",
+ "description": "Crear modelo a medida para clasificar los objetos detectados.",
+ "buttonText": "Crear Modelo de Objetos"
+ },
+ "state": {
+ "title": "No hay Modelos de Clasificación de Estados",
+ "description": "Cree un modelo personalizado para monitorear y clasificar los cambios de estado en áreas específicas de la cámara.",
+ "buttonText": "Crear modelo de estado"
+ }
}
}
diff --git a/web/public/locales/es/views/configEditor.json b/web/public/locales/es/views/configEditor.json
index 3b9f2779e..265e7ec8e 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 configuración."
+ "safeModeDescription": "Frigate esta en modo seguro debido a un error en la validación de la configuración."
}
diff --git a/web/public/locales/es/views/events.json b/web/public/locales/es/views/events.json
index b2b4001ba..d13daff60 100644
--- a/web/public/locales/es/views/events.json
+++ b/web/public/locales/es/views/events.json
@@ -9,7 +9,11 @@
"empty": {
"alert": "No hay alertas para revisar",
"detection": "No hay detecciones para revisar",
- "motion": "No se encontraron datos de movimiento"
+ "motion": "No se encontraron datos de movimiento",
+ "recordingsDisabled": {
+ "title": "Las grabaciones deben estar habilitadas",
+ "description": "Solo se pueden crear elementos de revisión para una cámara cuando las grabaciones están habilitadas para esa cámara."
+ }
},
"timeline": "Línea de tiempo",
"timeline.aria": "Seleccionar línea de tiempo",
@@ -56,5 +60,9 @@
"objectTrack": {
"clickToSeek": "Clic para ir a este momento",
"trackedPoint": "Puntro trazado"
- }
+ },
+ "select_all": "Todas",
+ "normalActivity": "Normal",
+ "needsReview": "Necesita revisión",
+ "securityConcern": "Aviso de seguridad"
}
diff --git a/web/public/locales/es/views/explore.json b/web/public/locales/es/views/explore.json
index 7fcd50fb0..f8f61ce83 100644
--- a/web/public/locales/es/views/explore.json
+++ b/web/public/locales/es/views/explore.json
@@ -42,13 +42,15 @@
"updatedSublabel": "Subetiqueta actualizada con éxito.",
"regenerate": "Se ha solicitado una nueva descripción a {{provider}}. Dependiendo de la velocidad de tu proveedor, la nueva descripción puede tardar algún tiempo en regenerarse.",
"updatedLPR": "Matrícula actualizada con éxito.",
- "audioTranscription": "Transcripción de audio solicitada con éxito."
+ "audioTranscription": "Se solicitó correctamente la transcripción de audio. Dependiendo de la velocidad de su servidor Frigate, la transcripción puede tardar un tiempo.",
+ "updatedAttributes": "Atributos actualizados correctamente."
},
"error": {
"regenerate": "No se pudo llamar a {{provider}} para una nueva descripción: {{errorMessage}}",
"updatedSublabelFailed": "No se pudo actualizar la subetiqueta: {{errorMessage}}",
"updatedLPRFailed": "No se pudo actualizar la matrícula: {{errorMessage}}",
- "audioTranscription": "Transcripción de audio solicitada falló: {{errorMessage}}"
+ "audioTranscription": "Transcripción de audio solicitada falló: {{errorMessage}}",
+ "updatedAttributesFailed": "No se pudieron actualizar los atributos: {{errorMessage}}"
}
},
"tips": {
@@ -102,6 +104,14 @@
},
"score": {
"label": "Puntuación"
+ },
+ "editAttributes": {
+ "title": "Editar atributos",
+ "desc": "Seleccione atributos de clasificación para esta {{label}}"
+ },
+ "attributes": "Atributos de clasificación",
+ "title": {
+ "label": "Título"
}
},
"documentTitle": "Explorar - Frigate",
@@ -198,12 +208,26 @@
"addTrigger": {
"label": "Añadir disparador",
"aria": "Añadir disparador para el objeto seguido"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Descargue instantánea limpia",
+ "aria": "Descargue instantánea limpia"
+ },
+ "viewTrackingDetails": {
+ "label": "Ver detalles de seguimiento",
+ "aria": "Ver detalles de seguimiento"
+ },
+ "showObjectDetails": {
+ "label": "Mostrar la ruta del objeto"
+ },
+ "hideObjectDetails": {
+ "label": "Ocultar la ruta del objeto"
}
},
"dialog": {
"confirmDelete": {
"title": "Confirmar eliminación",
- "desc": "Eliminar este objeto rastreado elimina la captura de pantalla, cualquier incrustación guardada y cualquier entrada asociada al ciclo de vida del objeto. Las grabaciones de este objeto rastreado en la vista de Historial NO se eliminarán.detect-tüüpi voogedastusest pole tulnud ühtegi kaadrit. Täpsemat teavet leiad vealogidest"
+ },
+ "toast": {
+ "success": {
+ "submittedFrigatePlus": "Kaadri saatmine Frigate+ teenusesse õnnestus"
+ },
+ "error": {
+ "submitFrigatePlusFailed": "Kaadri saatmine Frigate+ teenusesse ei õnnestunud"
+ }
}
}
diff --git a/web/public/locales/et/views/classificationModel.json b/web/public/locales/et/views/classificationModel.json
index 2b393998f..93db04cba 100644
--- a/web/public/locales/et/views/classificationModel.json
+++ b/web/public/locales/et/views/classificationModel.json
@@ -7,10 +7,18 @@
},
"documentTitle": "Klassifitseerimise mudelid - Frigate",
"details": {
- "scoreInfo": "Skoor näitab selle objekti kõigi tuvastuste keskmist klassifitseerimise usaldusväärsust."
+ "scoreInfo": "Skoor näitab selle objekti kõigi tuvastuste keskmist klassifitseerimise usaldusväärsust.",
+ "none": "Puudub",
+ "unknown": "Pole teada"
},
"button": {
- "deleteClassificationAttempts": "Kustuta klassifitseerimispildid"
+ "deleteClassificationAttempts": "Kustuta klassifitseerimispildid",
+ "renameCategory": "Muuda klassi nimi",
+ "deleteCategory": "Kustuta klass",
+ "deleteImages": "Kustuta pildid",
+ "addClassification": "Lisa klassifikatsioon",
+ "deleteModels": "Kustuta mudelid",
+ "editModel": "Muuda mudelit"
},
"description": {
"invalidName": "Vigane nimi. Nimed võivad sisaldada ainult tähti, numbreid, tühikuid, ülakomasid, alakriipse ja sidekriipse."
@@ -32,5 +40,8 @@
"allImagesRequired_one": "Palun klassifitseeri kõik pildid. Jäänud on veel {{count}} pilt.",
"allImagesRequired_other": "Palun klassifitseeri kõik pildid. Jäänud on veel {{count}} pilti."
}
+ },
+ "tooltip": {
+ "trainingInProgress": "Mudel on parasjagu õppimas"
}
}
diff --git a/web/public/locales/et/views/events.json b/web/public/locales/et/views/events.json
index ef02cf080..75e4a3d5c 100644
--- a/web/public/locales/et/views/events.json
+++ b/web/public/locales/et/views/events.json
@@ -22,7 +22,11 @@
"empty": {
"alert": "Ülevaatamiseks ei leidu ühtegi häiret",
"detection": "Ülevaatamiseks ei leidu ühtegi tuvastamist",
- "motion": "Liikumise andmeid ei leidu"
+ "motion": "Liikumise andmeid ei leidu",
+ "recordingsDisabled": {
+ "title": "Salvestamine peab olema sisse lülitatud",
+ "description": "Objekte saad määrata ülevaadatamiseks vaid siis, kui selle kaamera puhul on salvestamine lülitatud sisse."
+ }
},
"select_all": "Kõik",
"camera": "Kaamera",
diff --git a/web/public/locales/et/views/explore.json b/web/public/locales/et/views/explore.json
index e38334056..1676f3ccd 100644
--- a/web/public/locales/et/views/explore.json
+++ b/web/public/locales/et/views/explore.json
@@ -22,6 +22,28 @@
"title": "Näita kõiki tsoone",
"desc": "Kui objekt on sisenenud tsooni, siis alati näida tsooni märgistust."
}
+ },
+ "lifecycleItemDesc": {
+ "attribute": {
+ "other": "{{label}} on tuvastatud kui {{attribute}}"
+ },
+ "stationary": "{{label}} jäi paigale",
+ "active": "{{label}} muutus aktiivseks",
+ "entered_zone": "{{label}} sisenes tsooni {{zones}}",
+ "visible": "{{label}} on tuvastatud",
+ "header": {
+ "zones": "Tsoonid",
+ "ratio": "Suhtarv",
+ "area": "Ala",
+ "score": "Punktiskoor"
+ }
+ },
+ "title": "Jälgimise üksikasjad",
+ "noImageFound": "Selle ajatempli kohta ei leidu pilti.",
+ "createObjectMask": "Loo objektimask",
+ "carousel": {
+ "previous": "Eelmine slaid",
+ "next": "Järgmine slaid"
}
},
"documentTitle": "Avasta - Frigate",
@@ -33,24 +55,33 @@
"thumbnailsEmbedded": "Pisipildid on lõimitud: ",
"descriptionsEmbedded": "Kirjeldused on lõimitud: ",
"trackedObjectsProcessed": "Jälgitud objektid on töödeldud: "
- }
+ },
+ "startingUp": "Käivitun…",
+ "estimatedTime": "Hinnanguliselt jäänud aega:",
+ "finishingShortly": "Lõpetan õige pea"
}
},
"type": {
"details": "üksikasjad",
"thumbnail": "pisipilt",
- "snapshot": "hetkvõte"
+ "snapshot": "hetkvõte",
+ "video": "video",
+ "tracking_details": "jälgimise üksikasjad"
},
"details": {
"item": {
"tips": {
"mismatch_one": "Tuvastasin {{count}} võõra 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.",
"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"
},
"snapshotScore": {
"label": "Hetkvõttete punktiskoor"
},
- "regenerateFromSnapshot": "Loo uuesti hetkvõttest"
- }
+ "regenerateFromSnapshot": "Loo uuesti hetkvõttest",
+ "timestamp": "Ajatampel"
+ },
+ "trackedObjectDetails": "Jälgitava objekti üksikasjad"
}
diff --git a/web/public/locales/et/views/faceLibrary.json b/web/public/locales/et/views/faceLibrary.json
index adebe7788..42c795a06 100644
--- a/web/public/locales/et/views/faceLibrary.json
+++ b/web/public/locales/et/views/faceLibrary.json
@@ -30,5 +30,9 @@
"deleteFaceAttempts": {
"desc_one": "Kas oled kindel, et soovid kustutada {{count}} näo? Seda tegevust ei saa tagasi pöörata.",
"desc_other": "Kas oled kindel, et soovid kustutada {{count}} nägu? Seda tegevust ei saa tagasi pöörata."
+ },
+ "details": {
+ "timestamp": "Ajatampel",
+ "unknown": "Pole teada"
}
}
diff --git a/web/public/locales/et/views/live.json b/web/public/locales/et/views/live.json
index 87a569679..11b5abaaa 100644
--- a/web/public/locales/et/views/live.json
+++ b/web/public/locales/et/views/live.json
@@ -10,7 +10,8 @@
"objectDetection": "Objektide tuvastamine",
"audioDetection": "Heli tuvastus",
"transcription": "Heli üleskirjutus",
- "snapshots": "Hetkvõtted"
+ "snapshots": "Hetkvõtted",
+ "autotracking": "Automaatne jälgimine"
},
"documentTitle": "Otseülekanne - Frigate",
"documentTitle.withCamera": "{{camera}} - Otseülekanne - Frigate",
@@ -91,6 +92,14 @@
"available": "Kahepoolne kõneside on selle voogedastuse puhul saadaval",
"unavailable": "Kahepoolne kõneside pole selle voogedastuse puhul saadaval",
"tips": "Sinu seadme peab seda funktsionaalsust toetama ja WebRTC peab olema kahepoolse kõneside jaoks seadistatud."
+ },
+ "playInBackground": {
+ "label": "Esita taustal",
+ "tips": "Selle eelistusega saad määrata, et voogedastus jääb tööle ka siis, kui meesiaesitaja on suletud."
+ },
+ "audio": {
+ "available": "Selles voogedastuses on heliriba saadaval",
+ "unavailable": "Selles voogedastuses pole heliriba saadaval"
}
},
"notifications": "Teavitused",
@@ -119,5 +128,31 @@
"label": "Esita taustal",
"desc": "Kasuta seda valikut, kui tahad voogedastuse jätkumist ka siis, kui pildivaade on peidetud."
}
+ },
+ "noCameras": {
+ "buttonText": "Lisa kaamera",
+ "restricted": {
+ "title": "Ühtegi kaamerat pole saadaval",
+ "description": "Sul pole õigust ühegi selle grupi kaamera vaatamiseks."
+ },
+ "title": "Ühtegi kaamerat pole seadistatud",
+ "description": "Alustamiseks ühenda mõni kaamera Frigate'iga."
+ },
+ "effectiveRetainMode": {
+ "modes": {
+ "active_objects": "Aktiivsed objektid",
+ "all": "Kõik",
+ "motion": "Liikumine"
+ }
+ },
+ "editLayout": {
+ "label": "Muuda paigutust",
+ "group": {
+ "label": "Muuda kaameragruppi"
+ },
+ "exitEdit": "Välju muutmisest"
+ },
+ "history": {
+ "label": "Näita varasemat sisu"
}
}
diff --git a/web/public/locales/et/views/search.json b/web/public/locales/et/views/search.json
index d691c563e..52b917d22 100644
--- a/web/public/locales/et/views/search.json
+++ b/web/public/locales/et/views/search.json
@@ -8,11 +8,16 @@
"button": {
"clear": "Tühjenda otsing",
"save": "Salvesta otsing",
- "delete": "Kustuta salvestatud otsing"
+ "delete": "Kustuta salvestatud otsing",
+ "filterInformation": "Filtri teave"
},
"filter": {
"label": {
- "has_snapshot": "Leidub hetkvõte"
+ "has_snapshot": "Leidub hetkvõte",
+ "cameras": "Kaamerad",
+ "labels": "Sildid",
+ "zones": "Tsoonid",
+ "sub_labels": "Alamsildid"
}
}
}
diff --git a/web/public/locales/et/views/settings.json b/web/public/locales/et/views/settings.json
index c3398cf7b..ce100a719 100644
--- a/web/public/locales/et/views/settings.json
+++ b/web/public/locales/et/views/settings.json
@@ -4,10 +4,23 @@
"password": "Salasõna",
"passwordPlaceholder": "Valikuline",
"customUrlPlaceholder": "rtsp://kasutajanimi:salasõna@host:port/asukoht",
- "connectionSettings": "Ühenduse seadistused"
+ "connectionSettings": "Ühenduse seadistused",
+ "port": "Port",
+ "username": "Kasutajanimi",
+ "usernamePlaceholder": "Valikuline"
},
"step3": {
- "streamUrlPlaceholder": "rtsp://kasutajanimi:salasõna@host:port/asukoht"
+ "streamUrlPlaceholder": "rtsp://kasutajanimi:salasõna@host:port/asukoht",
+ "url": "Võrguaadress",
+ "resolution": "Resolutsioon",
+ "quality": "Kvaliteet",
+ "roles": "Rollid",
+ "roleLabels": {
+ "record": "Salvestamine",
+ "audio": "Heliriba"
+ },
+ "connected": "Ühendatud",
+ "featuresTitle": "Funktsionaalsused"
},
"steps": {
"probeOrSnapshot": "Võta proov või tee hetkvõte"
@@ -15,7 +28,34 @@
"step2": {
"testing": {
"fetchingSnapshot": "Laadin kaamera hetkvõtet alla..."
- }
+ },
+ "retry": "Proovi uuesti",
+ "manufacturer": "Tootja",
+ "model": "Mudel",
+ "firmware": "Püsivara",
+ "profiles": "Profiilid",
+ "presets": "Eelseadistused",
+ "useCandidate": "Kasuta",
+ "uriCopy": "Kopeeri",
+ "connected": "Ühendatud"
+ },
+ "testResultLabels": {
+ "resolution": "Resolutsioon",
+ "video": "Video",
+ "audio": "Heliriba",
+ "fps": "Kaadrisagedus"
+ },
+ "step4": {
+ "reload": "Laadi uuesti",
+ "connecting": "Ühendan…",
+ "valid": "Kehtiv",
+ "failed": "Ebaõnnestunud",
+ "connectStream": "Ühenda",
+ "connectingStream": "Ühendan",
+ "disconnectStream": "Katkesta ühendus",
+ "roles": "Rollid",
+ "none": "Määramata",
+ "error": "Viga"
}
},
"users": {
@@ -29,7 +69,10 @@
}
},
"table": {
- "password": "Lähtesta salasõna"
+ "password": "Lähtesta salasõna",
+ "username": "Kasutajanimi",
+ "actions": "Tegevused",
+ "role": "Roll"
},
"dialog": {
"form": {
@@ -53,7 +96,7 @@
"hide": "Peida salasõna",
"requirements": {
"title": "Salasõna reeglid:",
- "length": "Vähemalt 8 tähemärki",
+ "length": "Vähemalt 12 tähemärki",
"uppercase": "Vähemalt üks suurtäht",
"digit": "Vähemalt üks number",
"special": "Vähemalt üks erimärk (!@#$%^&*(),.?\":{}|<>)"
@@ -70,6 +113,9 @@
"currentPassword": {
"title": "Senine salasõna",
"placeholder": "Sisesta oma senine salasõna"
+ },
+ "user": {
+ "title": "Kasutajanimi"
}
},
"createUser": {
@@ -84,12 +130,42 @@
"currentPasswordRequired": "Senine salasõna on vajalik",
"incorrectCurrentPassword": "Senine salasõna pole õige",
"passwordVerificationFailed": "Salasõna kontrollimine ei õnnestunud"
+ },
+ "changeRole": {
+ "roleInfo": {
+ "admin": "Peakasutaja",
+ "viewer": "Vaataja"
+ }
}
- }
+ },
+ "title": "Kasutajad"
},
"debug": {
"boundingBoxes": {
"desc": "Näita jälgitavate objektide ümber märgiskaste"
+ },
+ "title": "Silumine ja veaotsing",
+ "debugging": "Veaotsing ja silumine",
+ "audio": {
+ "title": "Heliriba",
+ "score": "punktiskoor"
+ },
+ "timestamp": {
+ "title": "Ajatempel"
+ },
+ "zones": {
+ "title": "Tsoonid"
+ },
+ "regions": {
+ "title": "Alad"
+ },
+ "paths": {
+ "title": "Asukohad"
+ },
+ "objectShapeFilterDrawing": {
+ "score": "Punktiskoor",
+ "ratio": "Suhtarv",
+ "area": "Ala"
}
},
"documentTitle": {
@@ -113,10 +189,31 @@
"automaticLiveView": {
"label": "Automaatne otseülekande vaade"
}
+ },
+ "calendar": {
+ "title": "Kalender",
+ "firstWeekday": {
+ "sunday": "Pühapäev",
+ "monday": "Esmaspäev",
+ "label": "Esimene nädalapäev"
+ }
+ },
+ "storedLayouts": {
+ "title": "Salvestatud paigutused"
+ },
+ "recordingsViewer": {
+ "title": "Salvestuste vaataja"
}
},
"cameraManagement": {
- "backToSettings": "Tagasi kaameraseadistuste juurde"
+ "backToSettings": "Tagasi kaameraseadistuste juurde",
+ "cameraConfig": {
+ "enabled": "Kasutusel",
+ "ffmpeg": {
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Rollid"
+ }
+ }
},
"notification": {
"notificationSettings": {
@@ -130,6 +227,16 @@
"success": {
"settingSaved": "Teavituste seadistused on salvestatud."
}
+ },
+ "title": "Teavitused",
+ "email": {
+ "title": "E-post"
+ },
+ "cameras": {
+ "title": "Kaamerad"
+ },
+ "suspendTime": {
+ "suspend": "Peata arvuti töö"
}
},
"frigatePlus": {
@@ -145,20 +252,48 @@
"cleanCopySnapshots": "clean_copy Hetkvõtted",
"camera": "Kaamera"
}
+ },
+ "modelInfo": {
+ "plusModelType": {
+ "userModel": "Peenhäälestatud"
+ },
+ "cameras": "Kaamerad"
}
},
"masksAndZones": {
"zones": {
"point_one": "{{count}} punkt",
- "point_other": "{{count}} punkti"
+ "point_other": "{{count}} punkti",
+ "label": "Tsoonid",
+ "desc": {
+ "documentation": "Dokumentatsioon"
+ },
+ "name": {
+ "title": "Nimi"
+ },
+ "inertia": {
+ "title": "Inerts"
+ },
+ "objects": {
+ "title": "Objektid"
+ }
},
"motionMasks": {
"point_one": "{{count}} punkt",
- "point_other": "{{count}} punkti"
+ "point_other": "{{count}} punkti",
+ "desc": {
+ "documentation": "Dokumentatsioon"
+ }
},
"objectMasks": {
"point_one": "{{count}} punkt",
- "point_other": "{{count}} punkti"
+ "point_other": "{{count}} punkti",
+ "desc": {
+ "documentation": "Dokumentatsioon"
+ },
+ "objects": {
+ "title": "Objektid"
+ }
}
},
"roles": {
@@ -167,6 +302,21 @@
"userRolesUpdated_one": "{{count}} selle rolliga kasutaja on nüüd määratud Vaatajaks, kellel on ligipääs kõikidele kaameratele.",
"userRolesUpdated_other": "{{count}} selle rolliga kasutajat on nüüd määratud Vaatajaks, kellel on ligipääs kõikidele kaameratele."
}
+ },
+ "table": {
+ "role": "Roll",
+ "cameras": "Kaamerad",
+ "actions": "Tegevused"
+ },
+ "dialog": {
+ "deleteRole": {
+ "deleting": "Kustutan..."
+ },
+ "form": {
+ "cameras": {
+ "title": "Kaamerad"
+ }
+ }
}
},
"menu": {
@@ -178,7 +328,8 @@
"users": "Kasutajad",
"roles": "Rollid",
"notifications": "Teavitused",
- "frigateplus": "Frigate+"
+ "frigateplus": "Frigate+",
+ "cameraReview": "Ülevaatamine"
},
"dialog": {
"unsavedChanges": {
@@ -189,5 +340,84 @@
"cameraSetting": {
"camera": "Kaamera",
"noCamera": "Kaamerat pole"
+ },
+ "enrichments": {
+ "semanticSearch": {
+ "reindexNow": {
+ "confirmButton": "Indekseeri uuesti",
+ "label": "Indekseeri uuesti kohe"
+ },
+ "modelSize": {
+ "small": {
+ "title": "väike"
+ },
+ "large": {
+ "title": "suur"
+ }
+ },
+ "title": "Semantiline otsing"
+ },
+ "faceRecognition": {
+ "modelSize": {
+ "small": {
+ "title": "väike"
+ },
+ "large": {
+ "title": "suur"
+ }
+ }
+ },
+ "birdClassification": {
+ "title": "Lindude klassifikatsioon"
+ }
+ },
+ "cameraReview": {
+ "review": {
+ "title": "Ülevaatamine",
+ "alerts": "Hoiatused ",
+ "detections": "Tuvastamise tulemused "
+ }
+ },
+ "motionDetectionTuner": {
+ "Threshold": {
+ "title": "Lävi"
+ }
+ },
+ "triggers": {
+ "documentTitle": "Päästikud",
+ "management": {
+ "title": "Päästikud"
+ },
+ "table": {
+ "name": "Nimi",
+ "type": "Tüüp",
+ "content": "Sisu",
+ "threshold": "Lävi",
+ "actions": "Tegevused",
+ "edit": "Muuda"
+ },
+ "type": {
+ "thumbnail": "Pisipilt",
+ "description": "Kirjeldus"
+ },
+ "dialog": {
+ "form": {
+ "name": {
+ "title": "Nimi"
+ },
+ "type": {
+ "title": "Tüüp"
+ },
+ "content": {
+ "title": "Sisu"
+ },
+ "threshold": {
+ "title": "Lävi"
+ },
+ "actions": {
+ "title": "Tegevused"
+ }
+ }
+ }
}
}
diff --git a/web/public/locales/et/views/system.json b/web/public/locales/et/views/system.json
index deb38f24b..b3bbb33aa 100644
--- a/web/public/locales/et/views/system.json
+++ b/web/public/locales/et/views/system.json
@@ -7,6 +7,11 @@
"logs": {
"download": {
"label": "Laadi logid alla"
+ },
+ "copy": {
+ "label": "Kopeeri lõikelauale",
+ "success": "Logid on kopeeritud lõikelauale"
}
- }
+ },
+ "title": "Süsteem"
}
diff --git a/web/public/locales/fa/audio.json b/web/public/locales/fa/audio.json
index 965460f7f..b3e547006 100644
--- a/web/public/locales/fa/audio.json
+++ b/web/public/locales/fa/audio.json
@@ -23,5 +23,481 @@
"bus": "اتوبوس",
"motorcycle": "موتور سیکلت",
"train": "قطار",
- "bicycle": "دوچرخه"
+ "bicycle": "دوچرخه",
+ "child_singing": "آواز خواندن کودک",
+ "snort": "خرناس",
+ "cough": "سرفه",
+ "throat_clearing": "صاف کردن گلو",
+ "sneeze": "عطسه",
+ "sniff": "بو کشیدن",
+ "run": "دویدن",
+ "synthetic_singing": "آواز مصنوعی",
+ "rapping": "رپخوانی",
+ "humming": "هومخوانی",
+ "sheep": "گوسفند",
+ "groan": "ناله",
+ "grunt": "غرغر",
+ "whistling": "سوت زدن",
+ "breathing": "تنفس",
+ "wheeze": "خِسخِس",
+ "snoring": "خروپف",
+ "gasp": "به نفسنفس افتادن",
+ "pant": "نفسنفسزدن",
+ "shuffle": "پخش تصادفی",
+ "footsteps": "صدای قدمها",
+ "chewing": "جویدن",
+ "biting": "گاز گرفتن",
+ "camera": "دوربین",
+ "gargling": "غرغره کردنغرغره کردن",
+ "stomach_rumble": "قاروقور شکم",
+ "burping": "آروغ زدن",
+ "skateboard": "اسکیتبورد",
+ "yip": "ییپ",
+ "howl": "زوزه",
+ "growling": "درحال غرغر",
+ "meow": "میو",
+ "caterwaul": "جیغوداد",
+ "livestock": "دام",
+ "clip_clop": "تقتق",
+ "cattle": "گوساله",
+ "cowbell": "زنگولهٔ گاو",
+ "mouse": "موش",
+ "oink": "خِرخِر",
+ "keyboard": "صفحهکلید",
+ "goat": "بز",
+ "sink": "سینک",
+ "cluck": "قُدقُد",
+ "turkey": "بوقلمون",
+ "quack": "قاقا",
+ "scissors": "قیچی",
+ "honk": "بوق",
+ "hair_dryer": "سشوار",
+ "roar": "غرش",
+ "vehicle": "وسیلهٔ نقلیه",
+ "chirp": "جیکجیک",
+ "squawk": "جیغ زدن",
+ "coo": "قوقو",
+ "crow": "کلاغ",
+ "owl": "جغد",
+ "dogs": "سگها",
+ "patter": "شرشر",
+ "mosquito": "پشه",
+ "buzz": "وزوز",
+ "frog": "قورباغه",
+ "snake": "مار",
+ "rattle": "جغجغه کردن",
+ "music": "موسیقی",
+ "musical_instrument": "ساز موسیقی",
+ "guitar": "گیتار",
+ "electric_guitar": "گیتار برقی",
+ "acoustic_guitar": "گیتار آکوستیک",
+ "steel_guitar": "گیتار استیل",
+ "banjo": "بانجو",
+ "sitar": "سیتار",
+ "hiccup": "سکسکه",
+ "fart": "باد معده",
+ "finger_snapping": "بشکن زدن",
+ "clapping": "دست زدن",
+ "heartbeat": "ضربان قلب",
+ "heart_murmur": "سوفل قلبی",
+ "applause": "تشویق",
+ "chatter": "وراجی",
+ "crowd": "جمعیت",
+ "children_playing": "بازی کردن کودکان",
+ "animal": "حیوان",
+ "pets": "حیوانات خانگی",
+ "bark": "پارس",
+ "bow_wow": "هاپهاپ",
+ "whimper_dog": "نالیدن سگ",
+ "purr": "خرخر",
+ "hiss": "هیس",
+ "neigh": "شیهه",
+ "door": "در",
+ "moo": "ماغ",
+ "pig": "خوک",
+ "bleat": "بعبع",
+ "fowl": "ماکیان",
+ "cock_a_doodle_doo": "قدقدیقدقد",
+ "blender": "مخلوطکن",
+ "chicken": "مرغ",
+ "gobble": "قورت دادن",
+ "clock": "ساعت",
+ "duck": "اردک",
+ "goose": "غاز",
+ "wild_animals": "حیوانات وحشی",
+ "toothbrush": "مسواک",
+ "roaring_cats": "غرش گربهها",
+ "pigeon": "کبوتر",
+ "hoot": "هوهو",
+ "flapping_wings": "بالبال زدن",
+ "rats": "موشها",
+ "insect": "حشره",
+ "cricket": "جیرجیرک",
+ "fly": "مگس",
+ "croak": "قارقار",
+ "whale_vocalization": "آواز نهنگ",
+ "plucked_string_instrument": "ساز زهی زخمهای",
+ "bass_guitar": "گیتار باس",
+ "tapping": "ضربهزدن",
+ "strum": "زخمهزدن",
+ "mandolin": "ماندولین",
+ "zither": "زیتر",
+ "ukulele": "یوکللی",
+ "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": "ناقوسهای لولهای",
+ "mallet_percussion": "سازهای کوبهای مالت",
+ "marimba": "ماریمبا",
+ "glockenspiel": "گلوکناشپیل",
+ "vibraphone": "ویبرافون",
+ "steelpan": "استیلپن",
+ "orchestra": "ارکستر",
+ "brass_instrument": "ساز بادی برنجی",
+ "french_horn": "هورن فرانسوی",
+ "trumpet": "ترومپت",
+ "trombone": "ترومبون",
+ "bowed_string_instrument": "ساز زهی آرشهای",
+ "string_section": "بخش سازهای زهی",
+ "violin": "ویولن",
+ "pizzicato": "پیتزیکاتو",
+ "cello": "ویولنسل",
+ "double_bass": "کنترباس",
+ "wind_instrument": "ساز بادی",
+ "flute": "فلوت",
+ "saxophone": "ساکسوفون",
+ "clarinet": "کلارینت",
+ "harp": "چنگ",
+ "bell": "ناقوس",
+ "church_bell": "ناقوس کلیسا",
+ "jingle_bell": "زنگوله",
+ "bicycle_bell": "زنگ دوچرخه",
+ "tuning_fork": "دیاپازون",
+ "chime": "زنگ",
+ "wind_chime": "زنگ باد",
+ "harmonica": "سازدهنی",
+ "accordion": "آکاردئون",
+ "bagpipes": "نیانبان",
+ "didgeridoo": "دیجریدو",
+ "theremin": "ترمین",
+ "singing_bowl": "کاسهٔ آوازخوان",
+ "scratching": "خراشیدن",
+ "pop_music": "موسیقی پاپ",
+ "hip_hop_music": "موسیقی هیپهاپ",
+ "beatboxing": "بیتباکس",
+ "rock_music": "موسیقی راک",
+ "heavy_metal": "هوی متال",
+ "punk_rock": "پانک راک",
+ "grunge": "گرانج",
+ "progressive_rock": "راک پراگرسیو",
+ "rock_and_roll": "راک اند رول",
+ "psychedelic_rock": "راک روانگردان",
+ "rhythm_and_blues": "ریتم اند بلوز",
+ "soul_music": "موسیقی سول",
+ "reggae": "رگی",
+ "country": "کانتری",
+ "swing_music": "موسیقی سوئینگ",
+ "bluegrass": "بلوگرس",
+ "funk": "فانک",
+ "folk_music": "موسیقی فولک",
+ "jazz": "جاز",
+ "disco": "دیسکو",
+ "classical_music": "موسیقی کلاسیک",
+ "opera": "اپرا",
+ "electronic_music": "موسیقی الکترونیک",
+ "house_music": "موسیقی هاوس",
+ "techno": "تکنو",
+ "dubstep": "داباستپ",
+ "drum_and_bass": "درام اند بیس",
+ "electronica": "الکترونیکا",
+ "electronic_dance_music": "موسیقی رقص الکترونیک",
+ "ambient_music": "موسیقی امبینت",
+ "trance_music": "موسیقی ترنس",
+ "music_of_latin_america": "موسیقی آمریکای لاتین",
+ "salsa_music": "موسیقی سالسا",
+ "flamenco": "فلامنکو",
+ "blues": "بلوز",
+ "music_for_children": "موسیقی برای کودکان",
+ "new-age_music": "موسیقی نیو ایج",
+ "vocal_music": "موسیقی آوازی",
+ "a_capella": "آکاپلا",
+ "music_of_africa": "موسیقی آفریقا",
+ "afrobeat": "آفروبیت",
+ "christian_music": "موسیقی مسیحی",
+ "gospel_music": "موسیقی گاسپل",
+ "music_of_asia": "موسیقی آسیا",
+ "carnatic_music": "موسیقی کارناتیک",
+ "music_of_bollywood": "موسیقی بالیوود",
+ "ska": "اسکا",
+ "traditional_music": "موسیقی سنتی",
+ "independent_music": "موسیقی مستقل",
+ "song": "آهنگ",
+ "background_music": "موسیقی پسزمینه",
+ "theme_music": "موسیقی تم",
+ "soundtrack_music": "موسیقی متن",
+ "lullaby": "لالایی",
+ "video_game_music": "موسیقی بازیهای ویدیویی",
+ "christmas_music": "موسیقی کریسمس",
+ "dance_music": "موسیقی رقص",
+ "wedding_music": "موسیقی عروسی",
+ "happy_music": "موسیقی شاد",
+ "sad_music": "موسیقی غمگین",
+ "tender_music": "موسیقی لطیف",
+ "angry_music": "موسیقی خشمگین",
+ "exciting_music": "موسیقی هیجانانگیز",
+ "scary_music": "موسیقی ترسناک",
+ "wind": "باد",
+ "rustling_leaves": "خشخش برگها",
+ "wind_noise": "صدای باد",
+ "thunderstorm": "طوفان تندری",
+ "thunder": "رعد",
+ "water": "آب",
+ "rain": "باران",
+ "raindrop": "قطرهٔ باران",
+ "rain_on_surface": "باران روی سطح",
+ "waterfall": "آبشار",
+ "ocean": "اقیانوس",
+ "waves": "امواج",
+ "steam": "بخار",
+ "gurgling": "قلقل",
+ "motorboat": "قایق موتوری",
+ "ship": "کشتی",
+ "motor_vehicle": "وسیلهٔ نقلیهٔ موتوری",
+ "toot": "توت",
+ "car_alarm": "دزدگیر خودرو",
+ "truck": "کامیون",
+ "air_brake": "ترمز بادی",
+ "air_horn": "بوق بادی",
+ "reversing_beeps": "بوق دندهعقب",
+ "ice_cream_truck": "کامیون بستنیفروشی",
+ "traffic_noise": "صدای ترافیک",
+ "rail_transport": "حملونقل ریلی",
+ "train_whistle": "سوت قطار",
+ "train_horn": "بوق قطار",
+ "jet_engine": "موتور جت",
+ "propeller": "ملخ",
+ "helicopter": "بالگرد",
+ "fixed-wing_aircraft": "هواپیمای بالثابت",
+ "medium_engine": "موتور متوسط",
+ "heavy_engine": "موتور سنگین",
+ "engine_knocking": "تقتق موتور",
+ "engine_starting": "روشن شدن موتور",
+ "idling": "درجا کار کردن",
+ "slam": "محکم کوبیدن",
+ "knock": "در زدن",
+ "tap": "ضربهٔ آرام",
+ "squeak": "جیرجیر",
+ "cupboard_open_or_close": "باز یا بسته شدن کمد",
+ "microwave_oven": "مایکروفر",
+ "water_tap": "شیر آب",
+ "bathtub": "وان حمام",
+ "toilet_flush": "سیفون توالت",
+ "keys_jangling": "جرینگجرینگ کلیدها",
+ "coin": "سکه",
+ "electric_shaver": "ریشتراش برقی",
+ "shuffling_cards": "بر زدنِ کارتها",
+ "telephone_bell_ringing": "زنگ خوردن تلفن",
+ "ringtone": "زنگ تماس",
+ "telephone_dialing": "شمارهگیری تلفن",
+ "dial_tone": "بوق آزاد",
+ "busy_signal": "بوق اشغال",
+ "alarm_clock": "ساعت زنگدار",
+ "fire_alarm": "هشدار آتشسوزی",
+ "foghorn": "بوق مه",
+ "whistle": "سوت",
+ "steam_whistle": "سوت بخار",
+ "mechanisms": "سازوکارها",
+ "pulleys": "قرقرهها",
+ "sewing_machine": "چرخ خیاطی",
+ "mechanical_fan": "پنکهٔ مکانیکی",
+ "air_conditioning": "تهویهٔ مطبوع",
+ "cash_register": "صندوق فروش",
+ "jackhammer": "چکش بادی",
+ "sawing": "ارهکردن",
+ "drill": "دریل",
+ "sanding": "سنبادهکاری",
+ "power_tool": "ابزار برقی",
+ "filing": "سوهانکاری",
+ "artillery_fire": "آتش توپخانه",
+ "cap_gun": "تفنگ ترقهای",
+ "fireworks": "آتشبازی",
+ "firecracker": "ترقه",
+ "burst": "ترکیدن",
+ "crack": "ترک",
+ "glass": "شیشه",
+ "chink": "جرینگ",
+ "shatter": "خُرد شدن",
+ "silence": "سکوت",
+ "television": "تلویزیون",
+ "radio": "رادیو",
+ "field_recording": "ضبط میدانی",
+ "scream": "جیغ",
+ "chird": "جیرجیر",
+ "change_ringing": "زنگ خوردن پول خرد",
+ "shofar": "شوفار",
+ "liquid": "مایع",
+ "splash": "پاشیدن",
+ "gush": "فوران",
+ "fill": "پر کردن",
+ "spray": "اسپری",
+ "pump": "پمپ",
+ "stir": "هم زدن",
+ "thunk": "صدای افتادن",
+ "electronic_tuner": "تیونر الکترونیکی",
+ "effects_unit": "واحد افکتها",
+ "chorus_effect": "افکت کُر",
+ "basketball_bounce": "پرش توپ بسکتبال",
+ "bouncing": "پرش",
+ "whip": "شلاق",
+ "flap": "بالبال زدن",
+ "scratch": "خراشیدن",
+ "scrape": "ساییدن",
+ "beep": "بیپ",
+ "ping": "پینگ",
+ "ding": "دینگ",
+ "clang": "تق",
+ "squeal": "جیغ",
+ "clicking": "کلیککردن",
+ "clickety_clack": "تَقتَق",
+ "rumble": "غرّش",
+ "plop": "پَت",
+ "chirp_tone": "صدای جیک",
+ "pulse": "پالس",
+ "inside": "داخل",
+ "outside": "بیرون",
+ "reverberation": "پژواک",
+ "cacophony": "همهمه",
+ "throbbing": "تپش",
+ "vibration": "لرزش",
+ "hands": "دستها",
+ "cheering": "تشویق کردن",
+ "caw": "قارقار",
+ "jingle": "جینگل",
+ "middle_eastern_music": "موسیقی خاورمیانهای",
+ "stream": "جریان",
+ "fire": "آتش",
+ "crackle": "ترقتروق",
+ "sailboat": "قایق بادبانی",
+ "rowboat": "قایق پارویی",
+ "power_windows": "شیشهبالابر برقی",
+ "skidding": "سرخوردن",
+ "tire_squeal": "جیغ لاستیک",
+ "car_passing_by": "عبور خودرو",
+ "race_car": "خودروی مسابقه",
+ "emergency_vehicle": "خودروی امدادی",
+ "police_car": "خودروی پلیس",
+ "vacuum_cleaner": "جاروبرقی",
+ "zipper": "زیپ",
+ "typing": "تایپ کردن",
+ "typewriter": "ماشین تحریر",
+ "computer_keyboard": "صفحهکلید رایانه",
+ "writing": "نوشتن",
+ "alarm": "هشدار",
+ "telephone": "تلفن",
+ "siren": "آژیر",
+ "civil_defense_siren": "آژیر دفاع مدنی",
+ "buzzer": "بیزر",
+ "smoke_detector": "آشکارساز دود",
+ "ratchet": "جغجغه",
+ "tick-tock": "تیکتاک",
+ "gears": "چرخدندهها",
+ "printer": "چاپگر",
+ "single-lens_reflex_camera": "دوربین تکلنزی بازتابی",
+ "tools": "ابزارها",
+ "hammer": "چکش",
+ "explosion": "انفجار",
+ "gunshot": "شلیک",
+ "machine_gun": "مسلسل",
+ "fusillade": "رگبار",
+ "eruption": "فوران",
+ "boom": "بوم",
+ "wood": "چوب",
+ "sound_effect": "جلوهٔ صوتی",
+ "splinter": "تراشه",
+ "environmental_noise": "نویز محیطی",
+ "static": "ساکن",
+ "white_noise": "نویز سفید",
+ "squish": "فشردن",
+ "drip": "چکه",
+ "pour": "ریختن",
+ "trickle": "چکیدن",
+ "boiling": "جوشیدن",
+ "thump": "کوبیدن",
+ "bang": "بنگ",
+ "slap": "سیلی",
+ "whack": "ضربه",
+ "smash": "خرد کردن",
+ "roll": "غلتیدن",
+ "crushing": "خرد کردن",
+ "crumpling": "چروک شدن",
+ "tearing": "پاره کردن",
+ "creak": "جیرجیر",
+ "clatter": "قارقار",
+ "sizzle": "جوشیدن",
+ "hum": "زمزمه",
+ "zing": "زنگ",
+ "boing": "بویینگ",
+ "crunch": "خرد کردن",
+ "noise": "نویز",
+ "mains_hum": "زمزمهٔ برق",
+ "distortion": "اعوجاج",
+ "sidetone": "صدای گوشی",
+ "ambulance": "آمبولانس",
+ "fire_engine": "خودروی آتشنشانی",
+ "railroad_car": "واگن راهآهن",
+ "train_wheels_squealing": "جیرجیر چرخهای قطار",
+ "subway": "مترو",
+ "aircraft": "هوانورد",
+ "aircraft_engine": "موتور هواپیما",
+ "engine": "موتور",
+ "light_engine": "موتور سبک",
+ "dental_drill's_drill": "متهٔ دندانپزشکی",
+ "lawn_mower": "چمنزن",
+ "chainsaw": "ارهٔ زنجیری",
+ "accelerating": "شتابگیری",
+ "doorbell": "زنگ در",
+ "ding-dong": "دینگدونگ",
+ "sliding_door": "در کشویی",
+ "drawer_open_or_close": "باز یا بسته شدن کشو",
+ "dishes": "ظروف",
+ "cutlery": "قاشق و چنگال",
+ "chopping": "خرد کردن",
+ "frying": "سرخ کردن",
+ "electric_toothbrush": "مسواک برقی",
+ "tick": "تیک",
+ "chop": "خرد کردن",
+ "pink_noise": "نویز صورتی",
+ "sodeling": "سودلینگ",
+ "slosh": "پاشیدن",
+ "sonar": "سونار",
+ "arrow": "پیکان",
+ "whoosh": "ووش",
+ "breaking": "شکستن",
+ "rub": "مالیدن",
+ "rustle": "خشخش",
+ "whir": "وزوز",
+ "sine_wave": "موج سینوسی",
+ "harmonic": "هارمونیک",
+ "echo": "پژواک"
}
diff --git a/web/public/locales/fa/common.json b/web/public/locales/fa/common.json
index 2bb9555cb..3b9e02617 100644
--- a/web/public/locales/fa/common.json
+++ b/web/public/locales/fa/common.json
@@ -4,6 +4,294 @@
"untilForRestart": "تا زمانی که فریگیت دوباره شروع به کار کند.",
"untilRestart": "تا زمان ریاستارت",
"ago": "{{timeAgo}} قبل",
- "justNow": "هم اکنون"
+ "justNow": "هم اکنون",
+ "today": "امروز",
+ "yesterday": "دیروز",
+ "last7": "۷ روز گذشته",
+ "last14": "۱۴ روز گذشته",
+ "last30": "۳۰ روز گذشته",
+ "thisWeek": "این هفته",
+ "lastWeek": "هفتهٔ گذشته",
+ "thisMonth": "این ماه",
+ "lastMonth": "ماه گذشته",
+ "5minutes": "۵ دقیقه",
+ "10minutes": "۱۰ دقیقه",
+ "day_one": "{{time}} روز",
+ "day_other": "{{time}} روز",
+ "h": "{{time}}س",
+ "hour_one": "{{time}} ساعت",
+ "hour_other": "{{time}} ساعت",
+ "m": "{{time}} دقیقه",
+ "minute_one": "{{time}} دقیقه",
+ "minute_other": "{{time}} دقیقه",
+ "s": "{{time}}ث",
+ "30minutes": "۳۰ دقیقه",
+ "1hour": "۱ ساعت",
+ "12hours": "۱۲ ساعت",
+ "24hours": "۲۴ ساعت",
+ "pm": "ب.ظ.",
+ "am": "ق.ظ.",
+ "yr": "{{time}} سال",
+ "year_one": "{{time}} سال",
+ "year_other": "{{time}} سال",
+ "mo": "{{time}} ماه",
+ "month_one": "{{time}} ماه",
+ "month_other": "{{time}} ماه",
+ "d": "{{time}} روز",
+ "second_one": "{{time}} ثانیه",
+ "second_other": "{{time}} ثانیه",
+ "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:ssd MMM، HH:mm:ss"
+ },
+ "formattedTimestampHourMinute": {
+ "12hour": "h:mm aaa",
+ "24hour": "HH:mm"
+ },
+ "formattedTimestampHourMinuteSecond": {
+ "12hour": "h:mm:ss aaa",
+ "24hour": "HH:mm:ss"
+ },
+ "formattedTimestampMonthDayHourMinute": {
+ "12hour": "d MMM, h:mm aaa",
+ "24hour": "d MMM, HH:mm"
+ },
+ "formattedTimestampMonthDayYear": {
+ "12hour": "d MMM, yyyy",
+ "24hour": "d MMM, yyyy"
+ },
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "d MMM yyyy, h:mm aaa",
+ "24hour": "yyyy MMM d, HH:mm"
+ },
+ "formattedTimestampMonthDay": "d MMM",
+ "formattedTimestampFilename": {
+ "12hour": "MM-dd-yy-h-mm-ss-a",
+ "24hour": "MM-dd-yy-HH-mm-ss"
+ },
+ "inProgress": "در حال انجام",
+ "invalidStartTime": "زمان شروع نامعتبر است",
+ "invalidEndTime": "زمان پایان نامعتبر است"
+ },
+ "unit": {
+ "length": {
+ "feet": "فوت",
+ "meters": "متر"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "gbps": "GB/s",
+ "mbph": "مگابایت/ساعت",
+ "gbph": "گیگابایت/ساعت",
+ "mbps": "مگابایت/ثانیه",
+ "kbph": "کیلوبایت/ساعت"
+ },
+ "speed": {
+ "mph": "مایل/ساعت",
+ "kph": "کیلومتر/ساعت"
+ }
+ },
+ "label": {
+ "hide": "پنهان کردن {{item}}",
+ "ID": "شناسه",
+ "all": "همه",
+ "back": "برگشت به قبل",
+ "show": "نمایش {{item}}",
+ "none": "هیچکدام"
+ },
+ "list": {
+ "many": "{{items}}، و {{last}}",
+ "two": "{{0}} و {{1}}",
+ "separatorWithSpace": ", · "
+ },
+ "field": {
+ "internalID": "شناسهٔ داخلیای که Frigate در پیکربندی و پایگاهداده استفاده میکند",
+ "optional": "اختیاری"
+ },
+ "button": {
+ "apply": "اعمال",
+ "done": "انجام شد",
+ "enable": "فعال کردن",
+ "disabled": "غیرفعال",
+ "cancel": "لغو",
+ "close": "بستن",
+ "back": "بازگشت",
+ "fullscreen": "تمامصفحه",
+ "exitFullscreen": "خروج از حالت تمامصفحه",
+ "twoWayTalk": "مکالمهٔ دوطرفه",
+ "cameraAudio": "صدای دوربین",
+ "off": "خاموش",
+ "delete": "حذف",
+ "download": "دانلود",
+ "unsuspended": "برداشتن تعلیق",
+ "unselect": "لغو انتخاب",
+ "export": "خروجی گرفتن",
+ "next": "بعدی",
+ "reset": "بازنشانی",
+ "enabled": "فعال",
+ "disable": "غیرفعال کردن",
+ "save": "ذخیره",
+ "saving": "در حال ذخیره…",
+ "copy": "کپی",
+ "history": "تاریخچه",
+ "pictureInPicture": "تصویر در تصویر",
+ "copyCoordinates": "کپی مختصات",
+ "yes": "بله",
+ "no": "خیر",
+ "info": "اطلاعات",
+ "play": "پخش",
+ "deleteNow": "حذف فوری",
+ "continue": "ادامه",
+ "on": "روشن",
+ "edit": "ویرایش",
+ "suspended": "تعلیقشده"
+ },
+ "menu": {
+ "systemMetrics": "شاخصهای سیستم",
+ "configuration": "پیکربندی",
+ "settings": "تنظیمات",
+ "language": {
+ "en": "انگلیسی (English)",
+ "hi": "هندی (Hindi)",
+ "fr": "فرانسوی (French)",
+ "ptBR": "پرتغالیِ برزیل (Brazilian Portuguese)",
+ "ru": "روسی (Russian)",
+ "es": "اسپانیایی (زبان اسپانیایی)",
+ "zhCN": "چینی سادهشده (چینی ساده)",
+ "ar": "عربی (زبان عربی)",
+ "pt": "پرتغالی (زبان پرتغالی)",
+ "de": "آلمانی (زبان آلمانی)",
+ "ja": "ژاپنی (زبان ژاپنی)",
+ "tr": "ترکی (زبان ترکی)",
+ "it": "ایتالیایی (زبان ایتالیایی)",
+ "nl": "هلندی (زبان هلندی)",
+ "sv": "سوئدی (زبان سوئدی)",
+ "cs": "چکی (زبان چکی)",
+ "nb": "بوکمل نروژیایی (بوکمل نروژی)",
+ "ko": "کرهای (زبان کرهای)",
+ "vi": "ویتنامی (زبان ویتنامی)",
+ "fa": "فارسی (زبان فارسی)",
+ "pl": "لهستانی (زبان لهستانی)",
+ "uk": "اوکراینی (زبان اوکراینی)",
+ "he": "عبری (زبان عبری)",
+ "el": "یونانی (زبان یونانی)",
+ "ro": "رومانیایی (زبان رومانیایی)",
+ "hu": "مجاری (زبان مجاری)",
+ "fi": "فنلاندی (زبان فنلاندی)",
+ "da": "دانمارکی (زبان دانمارکی)",
+ "sk": "اسلواکی (زبان اسلواکی)",
+ "yue": "کانتونی (زبان کانتونی)",
+ "th": "تایلندی (زبان تایلندی)",
+ "ca": "کاتالانی (زبان کاتالانی)",
+ "sr": "صربی (زبان صربی)",
+ "sl": "اسلوونیایی (زبان اسلوونیایی)",
+ "lt": "لیتوانیایی (زبان لیتوانیایی)",
+ "bg": "بلغاری (زبان بلغاری)",
+ "gl": "گالیسیایی (زبان گالیسیایی)",
+ "id": "اندونزیایی (زبان اندونزیایی)",
+ "ur": "اردو (زبان اردو)",
+ "withSystem": {
+ "label": "برای زبان از تنظیمات سامانه استفاده کنید"
+ }
+ },
+ "system": "سامانه",
+ "systemLogs": "لاگهای سامانه",
+ "configurationEditor": "ویرایشگر پیکربندی",
+ "languages": "زبانها",
+ "appearance": "ظاهر",
+ "darkMode": {
+ "label": "حالت تاریک",
+ "light": "روشنایی",
+ "dark": "تاریک",
+ "withSystem": {
+ "label": "برای حالت روشن یا تاریک از تنظیمات سامانه استفاده کنید"
+ }
+ },
+ "withSystem": "سامانه",
+ "theme": {
+ "label": "پوسته",
+ "blue": "آبی",
+ "green": "سبز",
+ "nord": "نورد",
+ "red": "قرمز",
+ "highcontrast": "کنتراست بالا",
+ "default": "پیشفرض"
+ },
+ "help": "راهنما",
+ "documentation": {
+ "title": "مستندات",
+ "label": "مستندات Frigate"
+ },
+ "restart": "راهاندازی مجدد Frigate",
+ "live": {
+ "title": "زنده",
+ "allCameras": "همهٔ دوربینها",
+ "cameras": {
+ "title": "دوربینها",
+ "count_one": "{{count}} دوربین",
+ "count_other": "{{count}} دوربین"
+ }
+ },
+ "review": "بازبینی",
+ "explore": "کاوش",
+ "export": "خروجی گرفتن",
+ "uiPlayground": "محیط آزمایشی UI",
+ "faceLibrary": "کتابخانهٔ چهره",
+ "classification": "طبقهبندی",
+ "user": {
+ "title": "کاربر",
+ "account": "حساب کاربری",
+ "current": "کاربر فعلی: {{user}}",
+ "anonymous": "ناشناس",
+ "logout": "خروج",
+ "setPassword": "تنظیم گذرواژه"
+ }
+ },
+ "toast": {
+ "copyUrlToClipboard": "نشانی اینترنتی در کلیپبورد کپی شد.",
+ "save": {
+ "title": "ذخیره",
+ "error": {
+ "title": "ذخیرهٔ تغییرات پیکربندی ناموفق بود: {{errorMessage}}",
+ "noMessage": "ذخیرهٔ تغییرات پیکربندی ناموفق بود"
+ }
+ }
+ },
+ "role": {
+ "title": "نقش",
+ "admin": "مدیر",
+ "viewer": "بیننده",
+ "desc": "مدیران به همهٔ ویژگیها در رابط کاربری Frigate دسترسی کامل دارند. بینندهها فقط میتوانند دوربینها، موارد بازبینی و ویدیوهای تاریخی را در رابط کاربری مشاهده کنند."
+ },
+ "pagination": {
+ "label": "صفحهبندی",
+ "previous": {
+ "title": "قبلی",
+ "label": "رفتن به صفحهٔ قبلی"
+ },
+ "next": {
+ "title": "بعدی",
+ "label": "رفتن به صفحهٔ بعدی"
+ },
+ "more": "صفحههای بیشتر"
+ },
+ "accessDenied": {
+ "documentTitle": "دسترسی ممنوع - Frigate",
+ "title": "دسترسی ممنوع",
+ "desc": "شما اجازهٔ مشاهدهٔ این صفحه را ندارید."
+ },
+ "notFound": {
+ "documentTitle": "یافت نشد - Frigate",
+ "title": "۴۰۴",
+ "desc": "صفحه پیدا نشد"
+ },
+ "selectItem": "انتخاب {{item}}",
+ "readTheDocumentation": "مستندات را بخوانید",
+ "information": {
+ "pixels": "{{area}}px"
}
}
diff --git a/web/public/locales/fa/components/auth.json b/web/public/locales/fa/components/auth.json
index 6b87e7257..3c4e021b2 100644
--- a/web/public/locales/fa/components/auth.json
+++ b/web/public/locales/fa/components/auth.json
@@ -3,6 +3,14 @@
"user": "نام کاربری",
"password": "رمز عبور",
"login": "ورود",
- "firstTimeLogin": "اولین باز است وارد می شود؟ اطلاعات هویتی در ثبت رخداد های فریگیت چاپ خواهد شد."
+ "firstTimeLogin": "اولین باز است وارد می شود؟ اطلاعات هویتی در ثبت رخداد های فریگیت چاپ خواهد شد.",
+ "errors": {
+ "usernameRequired": "وارد کردن نام کاربری الزامی است",
+ "passwordRequired": "وارد کردن رمز عبور الزامی است",
+ "loginFailed": "ورود ناموفق بود",
+ "unknownError": "خطای ناشناخته. گزارشها را بررسی کنید.",
+ "webUnknownError": "خطای ناشناخته. گزارشهای کنسول را بررسی کنید.",
+ "rateLimit": "از حد مجاز درخواستها فراتر رفت. بعداً دوباره تلاش کنید."
+ }
}
}
diff --git a/web/public/locales/fa/components/camera.json b/web/public/locales/fa/components/camera.json
index ee4d1d172..35f7ec517 100644
--- a/web/public/locales/fa/components/camera.json
+++ b/web/public/locales/fa/components/camera.json
@@ -4,7 +4,83 @@
"add": "افزودن گروه دوربین",
"edit": "ویرایش گروه دوربین",
"delete": {
- "label": "حذف گروه دوربین ها"
+ "label": "حذف گروه دوربین ها",
+ "confirm": {
+ "title": "تأیید حذف",
+ "desc": "آیا مطمئن هستید که میخواهید گروه دوربین «{{name}}» را حذف کنید؟"
+ }
+ },
+ "name": {
+ "label": "نام",
+ "placeholder": "یک نام وارد کنید…",
+ "errorMessage": {
+ "mustLeastCharacters": "نام گروه دوربین باید حداقل ۲ کاراکتر باشد.",
+ "exists": "نام گروه دوربین از قبل وجود دارد.",
+ "nameMustNotPeriod": "نام گروه دوربین نباید شامل نقطه باشد.",
+ "invalid": "نام گروه دوربین نامعتبر است."
+ }
+ },
+ "cameras": {
+ "desc": "دوربینهای این گروه را انتخاب کنید.",
+ "label": "دوربینها"
+ },
+ "icon": "آیکون",
+ "success": "گروه دوربین ({{name}}) ذخیره شد.",
+ "camera": {
+ "setting": {
+ "streamMethod": {
+ "method": {
+ "noStreaming": {
+ "label": "بدون پخش",
+ "desc": "تصاویر دوربین فقط هر یک دقیقه یکبار بهروزرسانی میشوند و هیچ پخش زندهای انجام نخواهد شد."
+ },
+ "smartStreaming": {
+ "label": "پخش هوشمند (پیشنهادی)",
+ "desc": "پخش هوشمند زمانی که فعالیت قابل تشخیصی وجود ندارد برای صرفهجویی در پهنای باند و منابع، تصویر دوربین شما را هر یک دقیقه یکبار بهروزرسانی میکند. وقتی فعالیت تشخیص داده شود، تصویر بهطور یکپارچه به پخش زنده تغییر میکند."
+ },
+ "continuousStreaming": {
+ "label": "پخش پیوسته",
+ "desc": {
+ "title": "تصویر دوربین وقتی در داشبورد قابل مشاهده باشد همیشه پخش زنده خواهد بود، حتی اگر هیچ فعالیتی تشخیص داده نشود.",
+ "warning": "پخش پیوسته ممکن است باعث مصرف بالای پهنایباند و مشکلات عملکردی شود. با احتیاط استفاده کنید."
+ }
+ }
+ },
+ "label": "روش پخش",
+ "placeholder": "یک روش پخش را انتخاب کنید"
+ },
+ "label": "تنظیمات پخش دوربین",
+ "title": "تنظیمات پخش {{cameraName}}",
+ "audioIsAvailable": "صدا برای این پخش در دسترس است",
+ "audioIsUnavailable": "صدا برای این پخش در دسترس نیست",
+ "audio": {
+ "tips": {
+ "title": "برای این پخش، صدا باید از دوربین شما خروجی گرفته شود و در go2rtc پیکربندی شده باشد."
+ }
+ },
+ "stream": "جریان",
+ "placeholder": "یک جریان را برگزینید",
+ "compatibilityMode": {
+ "label": "حالت سازگاری",
+ "desc": "این گزینه را فقط زمانی فعال کنید که پخش زندهٔ دوربین شما دچار آثار رنگی (artifact) است و در سمت راست تصویر یک خط مورب دیده میشود."
+ },
+ "desc": "گزینههای پخش زنده را برای داشبورد این گروه دوربین تغییر دهید. این تنظیمات مخصوص دستگاه/مرورگر هستند. "
+ },
+ "birdseye": "نمای پرنده"
}
+ },
+ "debug": {
+ "options": {
+ "label": "تنظیمات",
+ "title": "گزینهها",
+ "showOptions": "نمایش گزینهها",
+ "hideOptions": "پنهان کردن گزینهها"
+ },
+ "boundingBox": "کادر محدوده",
+ "timestamp": "مهر زمانی",
+ "zones": "ناحیهها",
+ "mask": "ماسک",
+ "motion": "حرکت",
+ "regions": "مناطق"
}
}
diff --git a/web/public/locales/fa/components/dialog.json b/web/public/locales/fa/components/dialog.json
index 121a73224..99095fc9d 100644
--- a/web/public/locales/fa/components/dialog.json
+++ b/web/public/locales/fa/components/dialog.json
@@ -1,11 +1,122 @@
{
"restart": {
- "title": "آیا از ریاستارت فریگیت اطمینان دارید؟",
+ "title": "آیا برای راه اندازی مجدد Frigate مطمئن هستید؟",
"button": "ریاستارت",
"restarting": {
"title": "فریگیت در حال ریاستارت شدن",
"content": "صفحه تا {{countdown}} ثانیه دیگر مجددا بارگزاری خواهد شد.",
"button": "بارگزاری مجدد هم اکنون اجرا شود"
}
+ },
+ "explore": {
+ "plus": {
+ "submitToPlus": {
+ "label": "ارسال به Frigate+",
+ "desc": "اشیایی که در مکانهایی هستند که میخواهید از آنها اجتناب کنید، «مثبت کاذب» محسوب نمیشوند. ارسال آنها بهعنوان مثبت کاذب باعث میشود مدل دچار سردرگمی شود."
+ },
+ "review": {
+ "question": {
+ "label": "این برچسب را برای Frigate Plus تأیید کنید",
+ "ask_a": "آیا این شیء {{label}} است؟",
+ "ask_an": "آیا این شیء یک {{label}} است؟",
+ "ask_full": "آیا این شیء یک {{untranslatedLabel}} ({{translatedLabel}}) است؟"
+ },
+ "state": {
+ "submitted": "ارسال شد"
+ }
+ }
+ },
+ "video": {
+ "viewInHistory": "مشاهده در تاریخچه"
+ }
+ },
+ "export": {
+ "time": {
+ "fromTimeline": "انتخاب از خط زمانی",
+ "lastHour_one": "ساعت گذشته",
+ "lastHour_other": "آخرین {{count}} ساعت",
+ "custom": "سفارشی",
+ "start": {
+ "title": "زمان شروع",
+ "label": "زمان شروع را انتخاب کنید"
+ },
+ "end": {
+ "title": "زمان پایان",
+ "label": "زمان پایان را انتخاب کنید"
+ }
+ },
+ "toast": {
+ "error": {
+ "endTimeMustAfterStartTime": "زمان پایان باید بعد از زمان شروع باشد",
+ "noVaildTimeSelected": "بازهٔ زمانی معتبر انتخاب نشده است",
+ "failed": "شروع خروجیگیری ناموفق بود: {{error}}"
+ },
+ "success": "ساخت خروجی با موفقیت آغاز شد. فایل را در صفحه خروجیها مشاهده کنید.",
+ "view": "مشاهده"
+ },
+ "fromTimeline": {
+ "saveExport": "ذخیرهٔ خروجی",
+ "previewExport": "پیشنمایش خروجی"
+ },
+ "name": {
+ "placeholder": "برای خروجی نام بگذارید"
+ },
+ "select": "انتخاب",
+ "export": "خروجی",
+ "selectOrExport": "انتخاب یا خروجی"
+ },
+ "streaming": {
+ "label": "جریان",
+ "restreaming": {
+ "disabled": "بازپخش برای این دوربین فعال نیست.",
+ "desc": {
+ "title": "برای گزینههای بیشتر نمایش زنده و صدا برای این دوربین، go2rtc را تنظیم کنید."
+ }
+ },
+ "showStats": {
+ "label": "نمایش آمار جریان",
+ "desc": "این گزینه را فعال کنید تا آمار جریان بهصورت پوششی روی تصویر دوربین نمایش داده شود."
+ },
+ "debugView": "نمای اشکالزدایی"
+ },
+ "search": {
+ "saveSearch": {
+ "label": "ذخیره جستوجو",
+ "desc": "برای این جستوجوی ذخیرهشده یک نام وارد کنید.",
+ "placeholder": "برای جستجوی خود یک نام وارد کنید",
+ "success": "جستجو ({{searchName}}) ذخیره شد.",
+ "button": {
+ "save": {
+ "label": "ذخیرهٔ این جستجو"
+ }
+ },
+ "overwrite": "{{searchName}} موجود است. ذخیره سازی منجر به بازنویسی مقدار موجود خواهد شد."
+ }
+ },
+ "recording": {
+ "confirmDelete": {
+ "title": "تأیید حذف",
+ "desc": {
+ "selected": "آیا مطمئن هستید که میخواهید همهٔ ویدیوهای ضبطشدهٔ مرتبط با این مورد بازبینی را حذف کنید؟detect دوربین {{cameraName}} دریافت نشده است، گزارشهای خطا را بررسی کنید"
+ },
+ "cameraDisabled": "دوربین غیرفعال است",
+ "stats": {
+ "streamType": {
+ "title": "نوع جریان:",
+ "short": "نوع"
+ },
+ "bandwidth": {
+ "title": "پهنای باند:",
+ "short": "پهنای باند"
+ },
+ "latency": {
+ "title": "تأخیر:",
+ "value": "{{seconds}} ثانیهها",
+ "short": {
+ "title": "تأخیر",
+ "value": "{{seconds}} ثانیه"
+ }
+ },
+ "totalFrames": "مجموع فریمها:",
+ "droppedFrames": {
+ "title": "فریمهای از دسترفته:",
+ "short": {
+ "title": "از دسترفته",
+ "value": "{{droppedFrames}} فریم"
+ }
+ },
+ "decodedFrames": "فریمهای رمزگشاییشده:",
+ "droppedFrameRate": "نرخ فریمهای از دسترفته:"
+ },
+ "toast": {
+ "success": {
+ "submittedFrigatePlus": "فریم با موفقیت به Frigate+ ارسال شد"
+ },
+ "error": {
+ "submitFrigatePlusFailed": "ارسال فریم به Frigate+ ناموفق بود"
+ }
}
}
diff --git a/web/public/locales/fa/objects.json b/web/public/locales/fa/objects.json
index 278086db2..c2ce4e4cf 100644
--- a/web/public/locales/fa/objects.json
+++ b/web/public/locales/fa/objects.json
@@ -16,5 +16,105 @@
"bird": "پرنده",
"cat": "گربه",
"dog": "سگ",
- "horse": "اسب"
+ "horse": "اسب",
+ "shoe": "کفش",
+ "eye_glasses": "عینک",
+ "handbag": "کیف دستی",
+ "tie": "کراوات",
+ "suitcase": "چمدان",
+ "frisbee": "فریزبی",
+ "sheep": "گوسفند",
+ "cow": "گاو",
+ "elephant": "فیل",
+ "bear": "خرس",
+ "zebra": "گورخر",
+ "giraffe": "زرافه",
+ "hat": "کلاه",
+ "umbrella": "چتر",
+ "skis": "اسکی",
+ "snowboard": "اسنوبورد",
+ "sports_ball": "توپ ورزشی",
+ "kite": "بادبادک",
+ "baseball_bat": "برای استفاده از چند فیلتر، آنها را یکی پس از دیگری با یک فاصله از هم اضافه کنید.چوب بیسبال",
+ "baseball_glove": "دستکش بیسبال",
+ "skateboard": "اسکیتبورد",
+ "hot_dog": "هاتداگ",
+ "cake": "کیک",
+ "couch": "مبل",
+ "bed": "تخت",
+ "dining_table": "میز ناهارخوری",
+ "toilet": "توالت",
+ "tv": "تلویزیون",
+ "mouse": "موش",
+ "keyboard": "صفحهکلید",
+ "goat": "بز",
+ "oven": "فر",
+ "sink": "سینک",
+ "refrigerator": "یخچال",
+ "book": "کتاب",
+ "vase": "گلدان",
+ "scissors": "قیچی",
+ "hair_dryer": "سشوار",
+ "hair_brush": "برس مو",
+ "vehicle": "وسیلهٔ نقلیه",
+ "deer": "گوزن",
+ "fox": "روباه",
+ "raccoon": "راکون",
+ "on_demand": "در صورت نیاز",
+ "license_plate": "پلاک خودرو",
+ "package": "بسته",
+ "amazon": "آمازون",
+ "usps": "USPS",
+ "fedex": "FedEx",
+ "dhl": "DHL",
+ "purolator": "پرولاتور",
+ "postnord": "PostNord",
+ "backpack": "کولهپشتی",
+ "tennis_racket": "راکت تنیس",
+ "bottle": "بطری",
+ "plate": "پلاک",
+ "wine_glass": "جام شراب",
+ "cup": "فنجان",
+ "fork": "چنگال",
+ "knife": "چاقو",
+ "spoon": "قاشق",
+ "bowl": "کاسه",
+ "banana": "موز",
+ "apple": "سیب",
+ "animal": "حیوان",
+ "sandwich": "ساندویچ",
+ "orange": "پرتقال",
+ "broccoli": "بروکلی",
+ "bark": "پارس",
+ "carrot": "هویج",
+ "pizza": "پیتزا",
+ "donut": "دونات",
+ "chair": "صندلی",
+ "potted_plant": "گیاه گلدانی",
+ "mirror": "آینه",
+ "window": "پنجره",
+ "desk": "میز",
+ "door": "در",
+ "laptop": "لپتاپ",
+ "remote": "ریموت",
+ "cell_phone": "گوشی موبایل",
+ "microwave": "مایکروویو",
+ "toaster": "توستر",
+ "blender": "مخلوطکن",
+ "clock": "ساعت",
+ "teddy_bear": "خرس عروسکی",
+ "toothbrush": "مسواک",
+ "squirrel": "سنجاب",
+ "rabbit": "خرگوش",
+ "robot_lawnmower": "چمنزن رباتی",
+ "waste_bin": "سطل زباله",
+ "face": "چهره",
+ "bbq_grill": "گریل کباب",
+ "ups": "یوپیاس",
+ "an_post": "آن پُست",
+ "postnl": "پستاِناِل",
+ "nzpost": "اِنزد پُست",
+ "gls": "جیاِلاِس",
+ "dpd": "دیپیدی",
+ "surfboard": "تخته موج سواری"
}
diff --git a/web/public/locales/fa/views/classificationModel.json b/web/public/locales/fa/views/classificationModel.json
index 7369674e5..b61d55e4d 100644
--- a/web/public/locales/fa/views/classificationModel.json
+++ b/web/public/locales/fa/views/classificationModel.json
@@ -4,7 +4,10 @@
"renameCategory": "تغییر نام کلاس",
"deleteCategory": "حذف کردن کلاس",
"deleteImages": "حذف کردن عکس ها",
- "trainModel": "مدل آموزش"
+ "trainModel": "مدل آموزش",
+ "addClassification": "افزودن دستهبندی",
+ "deleteModels": "حذف مدلها",
+ "editModel": "ویرایش مدل"
},
"toast": {
"success": {
@@ -12,11 +15,21 @@
"deletedImage": "عکس های حذف شده",
"categorizedImage": "تصویر طبقه بندی شده",
"trainedModel": "مدل آموزش دیده شده.",
- "trainingModel": "آموزش دادن مدل با موفقیت شروع شد."
+ "trainingModel": "آموزش دادن مدل با موفقیت شروع شد.",
+ "deletedModel_one": "{{count}} مدل با موفقیت حذف شد",
+ "deletedModel_other": "{{count}} مدل با موفقیت حذف شدند",
+ "updatedModel": "پیکربندی مدل با موفقیت بهروزرسانی شد",
+ "renamedCategory": "نام کلاس با موفقیت به {{name}} تغییر یافت"
},
"error": {
- "deleteImageFailed": "حذف نشد:{{پیغام خطا}}",
- "deleteCategoryFailed": "کلاس حذف نشد:{{پیغام خطا}}"
+ "deleteImageFailed": "حذف نشد: {{errorMessage}}",
+ "deleteCategoryFailed": "کلاس حذف نشد: {{errorMessage}}",
+ "deleteModelFailed": "حذف مدل ناموفق بود: {{errorMessage}}",
+ "categorizeFailed": "دستهبندی تصویر ناموفق بود: {{errorMessage}}",
+ "trainingFailed": "آموزش مدل ناموفق بود. برای جزئیات، گزارشهای Frigate را بررسی کنید.",
+ "trainingFailedToStart": "شروع آموزش مدل ناموفق بود: {{errorMessage}}",
+ "updateModelFailed": "بهروزرسانی مدل ناموفق بود: {{errorMessage}}",
+ "renameCategoryFailed": "تغییر نام کلاس ناموفق بود: {{errorMessage}}"
}
},
"documentTitle": "دسته بندی مدل ها - فریگیت",
@@ -27,5 +40,148 @@
"none": "هیچکدام",
"scoreInfo": "امتیاز، نشان دهنده میانگین دقت در تشخیص و دسته بندی این شیء در بین تمام تشخیصهاست.",
"unknown": "ناشناخته"
- }
+ },
+ "tooltip": {
+ "trainingInProgress": "مدل در حال آموزش است",
+ "noNewImages": "هیچ تصویر جدیدی برای آموزش وجود ندارد. ابتدا تصاویر بیشتری را در مجموعهداده دستهبندی کنید.",
+ "noChanges": "از آخرین آموزش، هیچ تغییری در مجموعهداده ایجاد نشده است.",
+ "modelNotReady": "مدل برای آموزش آماده نیست"
+ },
+ "deleteCategory": {
+ "title": "(pending)",
+ "desc": "آیا مطمئن هستید که میخواهید کلاس {{name}} را حذف کنید؟ این کار همهٔ تصاویر مرتبط را برای همیشه حذف میکند و نیاز به آموزش مجدد مدل دارد.",
+ "minClassesTitle": "امکان حذف کلاس وجود ندارد",
+ "minClassesDesc": "یک مدل دستهبندی باید دستکم ۲ کلاس داشته باشد. پیش از حذف این مورد، یک کلاس دیگر اضافه کنید."
+ },
+ "train": {
+ "titleShort": "اخیر",
+ "title": "طبقهبندیهای اخیر",
+ "aria": "انتخاب طبقهبندیهای اخیر"
+ },
+ "deleteModel": {
+ "title": "حذف مدل دستهبندی",
+ "single": "آیا مطمئن هستید که میخواهید {{name}} را حذف کنید؟ این کار همهٔ دادههای مرتبط از جمله تصاویر و دادههای آموزش را برای همیشه حذف میکند. این عمل قابل بازگشت نیست.",
+ "desc_one": "آیا مطمئن هستید که میخواهید این {{count}} مدل را حذف کنید؟ این کار همهٔ دادههای مرتبط از جمله تصاویر و دادههای آموزشی را برای همیشه حذف میکند. این عمل قابل بازگشت نیست.",
+ "desc_other": "آیا مطمئن هستید که میخواهید {{count}} مدل را حذف کنید؟ این کار همهٔ دادههای مرتبط از جمله تصاویر و دادههای آموزشی را برای همیشه حذف میکند. این عمل قابل بازگشت نیست."
+ },
+ "categorizeImage": "طبقهبندی تصویر",
+ "menu": {
+ "states": "حالتها",
+ "objects": "اشیاء"
+ },
+ "noModels": {
+ "object": {
+ "description": "یک مدل سفارشی ایجاد کنید تا اشیای شناساییشده را طبقهبندی کند.",
+ "title": "هیچ مدل طبقهبندی شیء وجود ندارد",
+ "buttonText": "ایجاد مدل شیء"
+ },
+ "state": {
+ "title": "هیچ مدل طبقهبندی حالت وجود ندارد",
+ "description": "یک مدل سفارشی ایجاد کنید تا تغییرات وضعیت را در نواحی مشخصِ دوربین پایش و طبقهبندی کند.",
+ "buttonText": "ایجاد مدل وضعیت"
+ }
+ },
+ "wizard": {
+ "title": "ایجاد طبقهبندی جدید",
+ "steps": {
+ "stateArea": "ناحیهٔ حالت",
+ "nameAndDefine": "نامگذاری و تعریف",
+ "chooseExamples": "انتخاب نمونهها"
+ },
+ "step1": {
+ "description": "مدلهای حالت نواحی ثابت دوربین را برای تغییرات پایش میکنند (مثلاً درِ باز/بسته). مدلهای شیء به اشیای شناساییشده طبقهبندی اضافه میکنند (مثلاً حیوانات شناختهشده، مأموران تحویل، و غیره).",
+ "namePlaceholder": "نام مدل را وارد کنید...",
+ "type": "نوع",
+ "typeObject": "شیء",
+ "objectLabelPlaceholder": "نوع شیء را انتخاب کنید...",
+ "classificationTypeDesc": "زیربرچسبها متن اضافی به برچسب شیء اضافه میکنند (مثلاً «Person: UPS»). ویژگیها فرادادهٔ قابل جستوجو هستند که جداگانه در فرادادهٔ شیء ذخیره میشوند.",
+ "classificationAttribute": "ویژگی",
+ "classes": "کلاسها",
+ "classesTip": "دربارهٔ کلاسها بیشتر بدانید",
+ "classesObjectDesc": "دستهبندیهای مختلف را برای طبقهبندی اشیای شناساییشده تعریف کنید. برای نمونه: «delivery_person»، «resident»، «stranger» برای طبقهبندی افراد.",
+ "errors": {
+ "nameLength": "نام مدل باید ۶۴ نویسه یا کمتر باشد",
+ "classesUnique": "نام کلاسها باید یکتا باشند",
+ "stateRequiresTwoClasses": "مدلهای حالت دستکم به ۲ کلاس نیاز دارند",
+ "objectLabelRequired": "لطفاً یک برچسب شیء را انتخاب کنید",
+ "nameRequired": "نام مدل الزامی است",
+ "nameOnlyNumbers": "نام مدل نمیتواند فقط شامل عدد باشد",
+ "noneNotAllowed": "کلاس «none» مجاز نیست",
+ "classRequired": "حداقل ۱ کلاس لازم است",
+ "objectTypeRequired": "لطفاً یک نوع طبقهبندی را انتخاب کنید"
+ },
+ "name": "نام",
+ "typeState": "وضعیت",
+ "objectLabel": "برچسب شیء",
+ "classificationType": "نوع طبقهبندی",
+ "classificationSubLabel": "زیربرچسب",
+ "classificationTypeTip": "دربارهٔ انواع طبقهبندی بیشتر بدانید",
+ "states": "وضعیتها",
+ "classesStateDesc": "حالتهای مختلفی را که ناحیهٔ دوربین شما میتواند در آن باشد تعریف کنید. برای مثال: «باز» و «بسته» برای یک درِ گاراژ.",
+ "classPlaceholder": "نام کلاس را وارد کنید…"
+ },
+ "step2": {
+ "description": "دوربینها را انتخاب کنید و ناحیهای را که باید برای هر دوربین پایش شود تعریف کنید. مدل، وضعیت این ناحیهها را طبقهبندی میکند.",
+ "cameras": "دوربینها",
+ "noCameras": "برای افزودن دوربینها روی + کلیک کنید",
+ "selectCamera": "انتخاب دوربین",
+ "selectCameraPrompt": "برای تعریف ناحیهٔ پایش، یک دوربین را از فهرست انتخاب کنید"
+ },
+ "step3": {
+ "selectImagesDescription": "برای انتخاب، روی تصاویر کلیک کنید. وقتی کارتان با این کلاس تمام شد روی «ادامه» کلیک کنید.",
+ "generating": {
+ "description": "Frigate در حال استخراج تصاویر نماینده از ضبطهای شماست. ممکن است کمی زمان ببرد…",
+ "title": "در حال تولید تصاویر نمونه"
+ },
+ "retryGenerate": "تلاش دوباره برای تولید",
+ "classifying": "در حال طبقهبندی و آموزش…",
+ "trainingStarted": "آموزش با موفقیت شروع شد",
+ "errors": {
+ "noCameras": "هیچ دوربینی پیکربندی نشده است",
+ "noObjectLabel": "هیچ برچسب شیئی انتخاب نشده است",
+ "generationFailed": "تولید ناموفق بود. لطفاً دوباره تلاش کنید.",
+ "classifyFailed": "طبقهبندی تصاویر ناموفق بود: {{error}}",
+ "generateFailed": "تولید نمونهها ناموفق بود: {{error}}"
+ },
+ "missingStatesWarning": {
+ "title": "نمونههای وضعیتِ جاافتاده",
+ "description": "برای بهترین نتیجه، توصیه میشود برای همهٔ حالتها نمونه انتخاب کنید. میتوانید بدون انتخاب همهٔ حالتها ادامه دهید، اما تا زمانی که همهٔ حالتها تصویر نداشته باشند مدل آموزش داده نمیشود. پس از ادامه، از نمای «طبقهبندیهای اخیر» برای طبقهبندی تصاویرِ حالتهای جاافتاده استفاده کنید، سپس مدل را آموزش دهید."
+ },
+ "allImagesRequired_one": "لطفاً همهٔ تصاویر را طبقهبندی کنید. {{count}} تصویر باقی مانده است.",
+ "allImagesRequired_other": "لطفاً همهٔ تصاویر را طبقهبندی کنید. {{count}} تصویر باقی مانده است.",
+ "training": {
+ "title": "در حال آموزش مدل",
+ "description": "مدل شما در پسزمینه در حال آموزش است. این پنجره را ببندید؛ بهمحض تکمیل آموزش، مدل شما شروع به اجرا میکند."
+ },
+ "noImages": "هیچ تصویر نمونهای تولید نشد",
+ "modelCreated": "مدل با موفقیت ایجاد شد. از نمای «طبقهبندیهای اخیر» برای افزودن تصاویرِ وضعیتهایِ جاافتاده استفاده کنید، سپس مدل را آموزش دهید.",
+ "generateSuccess": "تصاویر نمونه با موفقیت تولید شد",
+ "selectImagesPrompt": "همهٔ تصاویر با {{className}} را انتخاب کنید"
+ }
+ },
+ "edit": {
+ "title": "ویرایش مدل طبقهبندی",
+ "descriptionState": "کلاسهای این مدل طبقهبندی حالت را ویرایش کنید. اعمال تغییرات نیاز به بازآموزی مدل دارد.",
+ "descriptionObject": "نوع شیء و نوع طبقهبندی را برای این مدل طبقهبندی شیء ویرایش کنید.",
+ "stateClassesInfo": "توجه: تغییر کلاسهای وضعیت نیازمند بازآموزی مدل با کلاسهای بهروزرسانیشده است."
+ },
+ "deleteDatasetImages": {
+ "title": "حذف تصاویر مجموعهداده",
+ "desc_one": "آیا مطمئن هستید که میخواهید این {{count}} تصویر را از {{dataset}} حذف کنید؟ این عمل قابل بازگشت نیست و نیاز به بازآموزی مدل دارد.",
+ "desc_other": "آیا مطمئن هستید که میخواهید {{count}} تصویر را از {{dataset}} حذف کنید؟ این عمل قابل بازگشت نیست و نیاز به بازآموزی مدل دارد."
+ },
+ "deleteTrainImages": {
+ "title": "حذف تصاویر آموزش",
+ "desc_one": "آیا مطمئن هستید که میخواهید این {{count}} تصویر را حذف کنید؟ این عمل قابل بازگشت نیست.",
+ "desc_other": "آیا مطمئن هستید که میخواهید {{count}} تصویر را حذف کنید؟ این عمل قابل بازگشت نیست."
+ },
+ "renameCategory": {
+ "title": "تغییر نام کلاس",
+ "desc": "یک نام جدید برای {{name}} وارد کنید. برای اعمال تغییر نام، لازم است مدل را بازآموزی کنید."
+ },
+ "categories": "کلاسها",
+ "createCategory": {
+ "new": "ایجاد کلاس جدید"
+ },
+ "categorizeImageAs": "طبقهبندی تصویر بهعنوان:"
}
diff --git a/web/public/locales/fa/views/configEditor.json b/web/public/locales/fa/views/configEditor.json
index 0c97e3f62..c43489dbb 100644
--- a/web/public/locales/fa/views/configEditor.json
+++ b/web/public/locales/fa/views/configEditor.json
@@ -3,5 +3,16 @@
"configEditor": "ویرایشگر کانفیگ",
"safeConfigEditor": "ویرایشگر تنظیمات (حالت امن)",
"safeModeDescription": "فریگیت به دلیل خطا در صحت سنجی پیکربندی، در حالت امن می باشد.",
- "copyConfig": "کپی پیکربندی"
+ "copyConfig": "کپی پیکربندی",
+ "saveAndRestart": "ذخیره و راهاندازی مجدد",
+ "saveOnly": "فقط ذخیره",
+ "confirm": "بدون ذخیره خارج میشوید؟",
+ "toast": {
+ "success": {
+ "copyToClipboard": "پیکربندی در کلیپبورد کپی شد."
+ },
+ "error": {
+ "savingError": "خطا در ذخیرهسازی پیکربندی"
+ }
+ }
}
diff --git a/web/public/locales/fa/views/events.json b/web/public/locales/fa/views/events.json
index a56694712..cf3ca7871 100644
--- a/web/public/locales/fa/views/events.json
+++ b/web/public/locales/fa/views/events.json
@@ -4,5 +4,62 @@
"motion": {
"label": "حرکت",
"only": "فقط حرکتی"
- }
+ },
+ "allCameras": "همه دوربینها",
+ "empty": {
+ "alert": "هیچ هشداری برای بازبینی وجود ندارد",
+ "detection": "هیچ تشخیصی برای بازبینی وجود ندارد",
+ "motion": "هیچ دادهای از حرکت پیدا نشد",
+ "recordingsDisabled": {
+ "title": "ضبطها بایستی فعال باشند",
+ "description": "موارد بازبینی برای یک دوربین تنها درصورتی امکان ساخت دارند که ضبطها برای آن دورین فعال باشد."
+ }
+ },
+ "timeline": "خط زمانی",
+ "timeline.aria": "انتخاب خط زمانی",
+ "zoomIn": "بزرگنمایی",
+ "zoomOut": "کوچکنمایی",
+ "events": {
+ "aria": "انتخاب رویدادها",
+ "noFoundForTimePeriod": "برای این بازهٔ زمانی هیچ رویدادی یافت نشد.",
+ "label": "رویدادها"
+ },
+ "recordings": {
+ "documentTitle": "ضبطها - فریگیت"
+ },
+ "calendarFilter": {
+ "last24Hours": "۲۴ ساعت گذشته"
+ },
+ "markAsReviewed": "علامتگذاری بهعنوان بازبینیشده",
+ "markTheseItemsAsReviewed": "این موارد را بهعنوان بازبینیشده علامتگذاری کنید",
+ "newReviewItems": {
+ "label": "مشاهدهٔ موارد جدید برای بازبینی",
+ "button": "موارد جدید برای بازبینی"
+ },
+ "detail": {
+ "label": "جزئیات",
+ "noDataFound": "دادهای برای بازبینیِ جزئیات وجود ندارد",
+ "aria": "تغییر وضعیتِ نمای جزئیات",
+ "trackedObject_one": "{{count}} شیء",
+ "trackedObject_other": "{{count}} اشیاء",
+ "noObjectDetailData": "دادهٔ جزئیات شیء در دسترس نیست.",
+ "settings": "تنظیمات نمای جزئیات",
+ "alwaysExpandActive": {
+ "title": "همیشه فعال را باز کنید",
+ "desc": "در صورت امکان، همیشه جزئیات شیء مربوط به موردِ بازبینیِ فعال را باز کنید."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "نقطهٔ ردیابیشده",
+ "clickToSeek": "برای رفتن به این زمان کلیک کنید"
+ },
+ "documentTitle": "بازبینی - Frigate",
+ "selected_one": "{{count}} انتخاب شد",
+ "selected_other": "{{count}} انتخاب شدند",
+ "select_all": "همه",
+ "camera": "دوربین",
+ "detected": "گزینههاشناسایی شد",
+ "normalActivity": "عادی",
+ "needsReview": "نیاز به بازبینی",
+ "securityConcern": "نگرانی امنیتی"
}
diff --git a/web/public/locales/fa/views/explore.json b/web/public/locales/fa/views/explore.json
index 7ee77df16..d532878c4 100644
--- a/web/public/locales/fa/views/explore.json
+++ b/web/public/locales/fa/views/explore.json
@@ -1,14 +1,248 @@
{
"generativeAI": "هوش مصنوعی تولید کننده",
- "documentTitle": "کاوش کردن - فرایگیت",
+ "documentTitle": "کاوش - فریگیت",
"exploreMore": "نمایش اشیا {{label}} بیشتر",
"details": {
- "timestamp": "زمان دقیق"
+ "timestamp": "زمان دقیق",
+ "item": {
+ "desc": "بررسی جزئیات مورد",
+ "button": {
+ "viewInExplore": "مشاهده در کاوش",
+ "share": "اشتراکگذاری این مورد بازبینی"
+ },
+ "tips": {
+ "hasMissingObjects": "اگر میخواهید Frigate اشیای ردیابیشده را برای برچسبهای زیر ذخیره کند، پیکربندی خود را تنظیم کنید: {{objects}} ",
+ "mismatch_one": "{{count}} شیء غیرقابلدسترس شناسایی شد و در این مورد بازبینی گنجانده شد. این اشیا یا شرایط لازم برای هشدار یا تشخیص را نداشتند یا قبلاً پاکسازی/حذف شدهاند.",
+ "mismatch_other": "{{count}} شیء غیرقابلدسترس شناسایی شدند و در این مورد بازبینی گنجانده شدند. این اشیا یا شرایط لازم برای هشدار یا تشخیص را نداشتند یا قبلاً پاکسازی/حذف شدهاند."
+ },
+ "toast": {
+ "success": {
+ "regenerate": "یک توضیح جدید از {{provider}} درخواست شد. بسته به سرعت ارائهدهندهٔ شما، بازتولیدِ توضیح جدید ممکن است کمی زمان ببرد.",
+ "updatedLPR": "پلاک با موفقیت بهروزرسانی شد.",
+ "audioTranscription": "درخواست تبدیل گفتارِ صوت با موفقیت ثبت شد. بسته به سرعت سرور Frigate شما، تکمیل تبدیل گفتار ممکن است کمی زمان ببرد.",
+ "updatedSublabel": "زیر برچسب با موفقیت بهروزرسانی شد.",
+ "updatedAttributes": "ویژگیها با موفقیت بهروزرسانی شد."
+ },
+ "error": {
+ "updatedSublabelFailed": "بهروزرسانی زیربرچسب ناموفق بود: {{errorMessage}}",
+ "updatedAttributesFailed": "بهروزرسانی ویژگیها ناموفق بود: {{errorMessage}}",
+ "regenerate": "فراخوانی {{provider}} برای توضیح جدید ناموفق بود: {{errorMessage}}",
+ "updatedLPRFailed": "بهروزرسانی پلاک ناموفق بود: {{errorMessage}}",
+ "audioTranscription": "درخواست رونویسی صدا ناموفق بود: {{errorMessage}}"
+ }
+ },
+ "title": "جزئیات مورد بازبینی"
+ },
+ "editSubLabel": {
+ "title": "ویرایش زیربرچسب",
+ "descNoLabel": "برای این شیء ردیابیشده یک زیربرچسب جدید وارد کنید",
+ "desc": "برای این {{label}} یک زیربرچسب جدید وارد کنید"
+ },
+ "editLPR": {
+ "desc": "برای {{label}} یک مقدار جدید برای پلاک وارد کنید",
+ "descNoLabel": "برای این شیء ردیابیشده یک مقدار جدید برای پلاک وارد کنید",
+ "title": "ویرایش پلاک"
+ },
+ "editAttributes": {
+ "desc": "ویژگیهای طبقهبندی را برای {{label}} انتخاب کنید",
+ "title": "ویرایش ویژگیها"
+ },
+ "topScore": {
+ "label": "بالاترین امتیاز",
+ "info": "بالاترین امتیاز، بالاترین امتیاز میانه برای شیء ردیابیشده است؛ بنابراین ممکن است با امتیازی که روی تصویر بندانگشتیِ نتیجهٔ جستوجو نمایش داده میشود متفاوت باشد."
+ },
+ "recognizedLicensePlate": "پلاک شناساییشده",
+ "estimatedSpeed": "سرعت تخمینی",
+ "objects": "اشیا",
+ "zones": "ناحیهها",
+ "button": {
+ "regenerate": {
+ "title": "بازتولید",
+ "label": "بازسازی توضیح شیء ردیابیشده"
+ },
+ "findSimilar": "یافتن مشابه"
+ },
+ "description": {
+ "placeholder": "توضیحِ شیء ردیابیشده",
+ "label": "توضیحات",
+ "aiTips": "Frigate تا زمانی که چرخهٔ عمر شیء ردیابیشده پایان نیابد، از ارائهدهندهٔ هوش مصنوعی مولد شما درخواست توضیح نمیکند."
+ },
+ "expandRegenerationMenu": "باز کردن منوی بازتولید",
+ "regenerateFromSnapshot": "بازتولید از اسنپشات",
+ "tips": {
+ "descriptionSaved": "توضیح با موفقیت ذخیره شد",
+ "saveDescriptionFailed": "بهروزرسانی توضیح ناموفق بود: {{errorMessage}}"
+ },
+ "label": "برچسب",
+ "snapshotScore": {
+ "label": "امتیاز عکس فوری"
+ },
+ "score": {
+ "label": "امتیاز"
+ },
+ "attributes": "ویژگیهای طبقهبندی",
+ "camera": "دوربین",
+ "regenerateFromThumbnails": "بازسازی از تصاویر بندانگشتی",
+ "title": {
+ "label": "عنوان"
+ }
},
"exploreIsUnavailable": {
- "title": "نمایش کلی موجود نمی باشد",
+ "title": "کاوش کردن در دسترس نیست",
"embeddingsReindexing": {
- "startingUp": "درحال شروع…"
+ "startingUp": "درحال شروع…",
+ "context": "پس از اینکه جاسازیهای شیء ردیابیشده، نمایهسازی مجدد را به پایان رساندند، میتوان از کاوش استفاده کرد.",
+ "estimatedTime": "زمان تخمینی باقیمانده:",
+ "finishingShortly": "بهزودی تمام میشود",
+ "step": {
+ "thumbnailsEmbedded": "تصاویر بندانگشتی جاسازیشده: ",
+ "descriptionsEmbedded": "توضیحات جاسازیشده: ",
+ "trackedObjectsProcessed": "اشیای ردیابیشدهٔ پردازششده: "
+ }
+ },
+ "downloadingModels": {
+ "context": "Frigate در حال دانلود مدلهای بردارسازی لازم برای پشتیبانی از قابلیت «جستوجوی معنایی» است. بسته به سرعت اتصال شبکه شما، این کار ممکن است چند دقیقه طول بکشد.",
+ "setup": {
+ "visionModel": "مدل بینایی",
+ "visionModelFeatureExtractor": "استخراجکنندهٔ ویژگیهای مدل بینایی",
+ "textModel": "مدل متنی",
+ "textTokenizer": "توکنساز متن"
+ },
+ "tips": {
+ "context": "ممکن است بخواهید پس از دانلود مدلها، تعبیههای اشیای ردیابیشدهٔ خود را دوباره ایندکس کنید."
+ },
+ "error": "خطایی رخ داده است. گزارشهای Frigate را بررسی کنید."
}
+ },
+ "trackingDetails": {
+ "adjustAnnotationSettings": "تنظیمات حاشیهنویسی را تنظیم کنید",
+ "scrollViewTips": "برای مشاهدهٔ لحظههای مهم چرخهٔ زندگی این شیء کلیک کنید.",
+ "autoTrackingTips": "موقعیت کادرها برای دوربینهای ردیابی خودکار دقیق نخواهد بود.",
+ "count": "{{first}} از {{second}}",
+ "trackedPoint": "نقطهٔ ردیابیشده",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} شناسایی شد",
+ "entered_zone": "{{label}} وارد {{zones}} شد",
+ "active": "{{label}} فعال شد",
+ "stationary": "{{label}} ساکن شد",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} برای {{label}} شناسایی شد",
+ "other": "{{label}} بهعنوان {{attribute}} شناسایی شد"
+ },
+ "gone": "{{label}} خارج شد",
+ "heard": "{{label}} شنیده شد",
+ "external": "{{label}} شناسایی شد",
+ "header": {
+ "zones": "ناحیهها",
+ "ratio": "نسبت",
+ "area": "مساحت",
+ "score": "امتیاز"
+ }
+ },
+ "title": "جزئیات ردیابی",
+ "noImageFound": "برای این برچسب زمانی هیچ تصویری یافت نشد.",
+ "createObjectMask": "ایجاد ماسک شیء",
+ "annotationSettings": {
+ "title": "تنظیمات حاشیهنویسی",
+ "showAllZones": {
+ "title": "نمایش همهٔ مناطق",
+ "desc": "همیشه مناطق را روی فریمهایی که اشیا وارد یک منطقه شدهاند نمایش دهید."
+ },
+ "offset": {
+ "toast": {
+ "success": "افست حاشیهنویسی برای {{camera}} در فایل پیکربندی ذخیره شد."
+ },
+ "label": "افست حاشیهنویسی",
+ "desc": "این داده از فید تشخیص دوربین شما میآید، اما روی تصاویر فید ضبطشده قرار میگیرد. بعید است این دو جریان کاملاً همزمان باشند. در نتیجه، کادر محدوده و ویدیو دقیقاً روی هم منطبق نخواهند بود. میتوانید با این تنظیمات، حاشیهنویسیها را در زمان به جلو یا عقب جابهجا کنید تا با ویدئوی ضبطشده بهتر همتراز شوند.",
+ "millisecondsToOffset": "میلیثانیه برای جابهجایی حاشیهنویسیهای تشخیص. پیشفرض: 0 ",
+ "tips": "اگر پخش ویدیو جلوتر از کادرها و نقاط مسیر است مقدار را کمتر کنید و اگر پخش ویدیو عقبتر از آنهاست مقدار را بیشتر کنید. این مقدار میتواند منفی باشد."
+ }
+ },
+ "carousel": {
+ "previous": "اسلاید قبلی",
+ "next": "اسلاید بعدی"
+ }
+ },
+ "trackedObjectDetails": "جزئیات شیء ردیابیشده",
+ "type": {
+ "details": "جزئیاتها",
+ "snapshot": "عکس فوری",
+ "thumbnail": "پیشنمایش",
+ "video": "ویدیو",
+ "tracking_details": "جزئیات ردیابی"
+ },
+ "itemMenu": {
+ "downloadVideo": {
+ "aria": "دانلود ویدئو",
+ "label": "دانلود ویدیو"
+ },
+ "downloadSnapshot": {
+ "label": "دانلود اسنپشات",
+ "aria": "دانلود عکس"
+ },
+ "downloadCleanSnapshot": {
+ "label": "دانلود اسنپشاتِ بدون کادر",
+ "aria": "دانلود عکس فوری بدون کادر"
+ },
+ "viewTrackingDetails": {
+ "aria": "نمایش جزئیات ردیابی",
+ "label": "مشاهدهٔ جزئیات ردیابی"
+ },
+ "findSimilar": {
+ "label": "یافتن مشابه",
+ "aria": "یافتن اشیای ردیابیشدهٔ مشابه"
+ },
+ "addTrigger": {
+ "label": "افزودن تریگر",
+ "aria": "افزودن تریگر برای این شیء ردیابیشده"
+ },
+ "audioTranscription": {
+ "aria": "درخواست رونویسیِ صوتی",
+ "label": "رونویسی"
+ },
+ "submitToPlus": {
+ "aria": "ارسال به Frigate Plus",
+ "label": "ارسال به Frigate+"
+ },
+ "viewInHistory": {
+ "label": "مشاهده در تاریخچه",
+ "aria": "مشاهده در تاریخچه"
+ },
+ "showObjectDetails": {
+ "label": "نمایش مسیر شیء"
+ },
+ "hideObjectDetails": {
+ "label": "پنهان کردن مسیر شیء"
+ },
+ "deleteTrackedObject": {
+ "label": "حذف این شیء ردیابیشده"
+ }
+ },
+ "noTrackedObjects": "هیچ شیء ردیابیشدهای پیدا نشد",
+ "fetchingTrackedObjectsFailed": "خطا در دریافت اشیای ردیابیشده: {{errorMessage}}",
+ "trackedObjectsCount_one": "{{count}} شیء ردیابیشده ",
+ "trackedObjectsCount_other": "{{count}} اشیای ردیابیشده ",
+ "dialog": {
+ "confirmDelete": {
+ "title": "تأیید حذف",
+ "desc": "حذف این شیء ردیابیشده عکس فوری، هرگونه امبدینگ ذخیرهشده و هر ورودی مرتبط با جزئیات ردیابی را حذف میکند. فیلم ضبطشدهٔ این شیء ردیابیشده در نمای تاریخ حذف نخواهد شد.جعبههای حرکت
جعبههای قرمز روی نواحی فریمی که در حال حاضر حرکت در آنها تشخیص داده میشود نمایش داده میشوند
" + }, + "paths": { + "desc": "نقاط مهم مسیر شیء ردیابیشده را نشان میدهد", + "tips": "مسیرها
خطها و دایرهها نقاط مهمی را که شیء ردیابیشده در طول چرخهٔ عمر خود طی کرده است نشان میدهند.
", + "title": "مسیرها" + }, + "objectShapeFilterDrawing": { + "title": "رسم فیلتر شکل شیء", + "desc": "برای مشاهدهٔ جزئیات مساحت و نسبت، روی تصویر یک مستطیل رسم کنید", + "tips": "این گزینه را فعال کنید تا بتوانید روی تصویر دوربین یک مستطیل رسم کنید و مساحت و نسبت آن را ببینید. سپس میتوان از این مقادیر برای تنظیم پارامترهای فیلتر شکل شیء در پیکربندی شما استفاده کرد.", + "score": "امتیاز", + "ratio": "نسبت", + "area": "مساحت" + }, + "openCameraWebUI": "رابط وبِ {{camera}} را باز کنید", + "debugging": "انجام اشکالزدایی", + "objectList": "فهرست اشیا", + "noObjects": "هیچ شیئی وجود ندارد", + "timestamp": { + "title": "مهر زمان", + "desc": "نمایش مهر زمان روی تصویر" + }, + "regions": { + "title": "مناطق", + "desc": "نمایش جعبهٔ ناحیهٔ مورد علاقهٔ ارسالشده به تشخیصدهندهٔ شیء", + "tips": "جعبههای ناحیه
جعبههای سبز روشن روی نواحی مورد علاقه در فریم که به تشخیصدهندهٔ شیء ارسال میشوند نمایش داده میشوند.
" + } + }, + "users": { + "management": { + "desc": "حسابهای کاربری این نمونهٔ Frigate را مدیریت کنید.", + "title": "مدیریت کاربران" + }, + "addUser": "افزودن کاربر", + "updatePassword": "بازنشانی گذرواژه", + "toast": { + "success": { + "createUser": "کاربر {{user}} با موفقیت ایجاد شد", + "deleteUser": "کاربر {{user}} با موفقیت حذف شد", + "updatePassword": "گذرواژه با موفقیت بهروزرسانی شد.", + "roleUpdated": "نقش برای {{user}} بهروزرسانی شد" + }, + "error": { + "setPasswordFailed": "ذخیرهٔ گذرواژه ناموفق بود: {{errorMessage}}", + "createUserFailed": "ایجاد کاربر ناموفق بود: {{errorMessage}}", + "deleteUserFailed": "حذف کاربر ناموفق بود: {{errorMessage}}", + "roleUpdateFailed": "بهروزرسانی نقش ناموفق بود: {{errorMessage}}" + } + }, + "table": { + "changeRole": "تغییر نقش کاربر", + "password": "بازنشانی گذرواژه", + "deleteUser": "حذف کاربر", + "username": "نام کاربری", + "actions": "اقدامات", + "role": "نقش", + "noUsers": "هیچ کاربری یافت نشد." + }, + "dialog": { + "form": { + "user": { + "title": "نام کاربری", + "desc": "فقط حروف، اعداد، نقطه و زیرخط مجاز هستند.", + "placeholder": "نام کاربری را وارد کنید" + }, + "password": { + "confirm": { + "title": "تأیید گذرواژه", + "placeholder": "تأیید گذرواژه" + }, + "strength": { + "title": "قدرت گذرواژه: · ", + "weak": "ضعیف", + "medium": "متوسط", + "strong": "قوی", + "veryStrong": "خیلی قوی" + }, + "requirements": { + "digit": "حداقل یک رقم", + "special": "حداقل یک نویسهٔ ویژه (!@#$%^&*(),.?\":{}|<>)", + "title": "الزامات رمز عبور:", + "length": "حداقل ۸ کاراکتر", + "uppercase": "حداقل یک حرف بزرگ" + }, + "match": "گذرواژهها مطابقت دارند", + "notMatch": "گذرواژهها مطابقت ندارند", + "show": "نمایش رمز عبور", + "hide": "پنهان کردن رمز عبور", + "title": "رمز عبور", + "placeholder": "رمز عبور را وارد کنید" + }, + "newPassword": { + "title": "گذرواژهٔ جدید", + "confirm": { + "placeholder": "رمز عبور جدید را دوباره وارد کنید" + }, + "placeholder": "رمز عبور جدید را وارد کنید" + }, + "passwordIsRequired": "گذرواژه الزامی است", + "currentPassword": { + "title": "رمز عبور فعلی", + "placeholder": "رمز عبور فعلی خود را وارد کنید" + }, + "usernameIsRequired": "نام کاربری الزامی است" + }, + "createUser": { + "title": "ایجاد کاربر جدید", + "desc": "یک حساب کاربری جدید اضافه کنید و یک نقش برای دسترسی به بخشهای رابط کاربری Frigate تعیین کنید.", + "usernameOnlyInclude": "نام کاربری فقط میتواند شامل حروف، اعداد، . یا _ باشد", + "confirmPassword": "لطفاً گذرواژهٔ خود را تأیید کنید" + }, + "passwordSetting": { + "currentPasswordRequired": "گذرواژهٔ فعلی الزامی است", + "incorrectCurrentPassword": "گذرواژهٔ فعلی نادرست است", + "passwordVerificationFailed": "اعتبارسنجی گذرواژه ناموفق بود", + "updatePassword": "بهروزرسانی گذرواژه برای {{username}}", + "setPassword": "تنظیم گذرواژه", + "desc": "برای ایمنسازی این حساب، یک گذرواژهٔ قوی بسازید.", + "doNotMatch": "رمزهای عبور مطابقت ندارند", + "multiDeviceWarning": "هر دستگاه دیگری که در آن وارد شدهاید باید ظرف {{refresh_time}} دوباره وارد شود.", + "multiDeviceAdmin": "همچنین میتوانید با چرخش رمز JWT خود، همهٔ کاربران را فوراً مجبور به احراز هویت مجدد کنید.", + "cannotBeEmpty": "رمز عبور نمیتواند خالی باشد" + }, + "changeRole": { + "desc": "بهروزرسانی مجوزها برای {{username}} ", + "roleInfo": { + "intro": "نقش مناسب برای این کاربر را انتخاب کنید:", + "admin": "مدیر", + "adminDesc": "دسترسی کامل به همهٔ قابلیتها.", + "viewer": "بیننده", + "customDesc": "نقش سفارشی با دسترسی مشخص به دوربین.", + "viewerDesc": "محدود به داشبوردهای زنده، بررسی، کاوش و خروجیگیری فقط." + }, + "title": "تغییر نقش کاربر", + "select": "یک نقش انتخاب کنید" + }, + "deleteUser": { + "title": "حذف کاربر", + "desc": "این عمل قابل بازگشت نیست. این کار حساب کاربری را بهطور دائم حذف میکند و همهٔ دادههای مرتبط را حذف میکند.", + "warn": "آیا مطمئن هستید که میخواهید {{username}} را حذف کنید؟" + } + }, + "title": "کاربران" + }, + "roles": { + "table": { + "role": "نقش", + "cameras": "دوربینها", + "actions": "اقدامها", + "noRoles": "هیچ نقش سفارشیای یافت نشد.", + "editCameras": "ویرایش دوربینها", + "deleteRole": "حذف نقش" + }, + "toast": { + "success": { + "createRole": "نقش {{role}} با موفقیت ایجاد شد", + "updateCameras": "دوربینها برای نقش {{role}} بهروزرسانی شدند", + "deleteRole": "نقش {{role}} با موفقیت حذف شد", + "userRolesUpdated_one": "{{count}} کاربری که به این نقش اختصاص داده شده بود به «بیننده» تغییر یافت و اکنون به همهٔ دوربینها دسترسی دارد.", + "userRolesUpdated_other": "{{count}} کاربری که به این نقش اختصاص داده شده بودند به «بیننده» تغییر یافتند و اکنون به همهٔ دوربینها دسترسی دارند." + }, + "error": { + "createRoleFailed": "ایجاد نقش ناموفق بود: {{errorMessage}}", + "updateCamerasFailed": "بهروزرسانی دوربینها ناموفق بود: {{errorMessage}}", + "deleteRoleFailed": "حذف نقش ناموفق بود: {{errorMessage}}", + "userUpdateFailed": "بهروزرسانی نقشهای کاربر ناموفق بود: {{errorMessage}}" + } + }, + "dialog": { + "createRole": { + "title": "ایجاد نقش جدید", + "desc": "یک نقش جدید اضافه کنید و سطح دسترسی به دوربینها را تعیین کنید." + }, + "form": { + "role": { + "roleExists": "نقشی با این نام از قبل وجود دارد.", + "placeholder": "نام نقش را وارد کنید", + "desc": "فقط حروف، اعداد، نقطه و زیرخط مجاز است.", + "roleIsRequired": "نام نقش الزامی است", + "roleOnlyInclude": "نام نقش فقط میتواند شامل حروف، اعداد، . یا _ باشد", + "title": "نام نقش" + }, + "cameras": { + "title": "دوربینها", + "desc": "دوربینهایی را که این نقش به آنها دسترسی دارد انتخاب کنید. حداقل یک دوربین لازم است.", + "required": "حداقل باید یک دوربین انتخاب شود." + } + }, + "editCameras": { + "title": "ویرایش دوربینهای نقش", + "desc": "بهروزرسانی دسترسی به دوربین برای نقش {{role}} ." + }, + "deleteRole": { + "title": "حذف نقش", + "desc": "این عمل قابل بازگشت نیست. این کار نقش را بهطور دائم حذف میکند و همهٔ کاربرانی که این نقش را دارند به نقش 'بیننده' اختصاص میدهد که دسترسی بیننده به همهٔ دوربینها را میدهد.", + "warn": "آیا مطمئن هستید که میخواهید {{role}} را حذف کنید؟", + "deleting": "در حال حذف…" + } + }, + "management": { + "title": "مدیریت نقش بیننده", + "desc": "مدیریت نقشهای بینندهٔ سفارشی و مجوزهای دسترسی به دوربین آنها برای این نمونهٔ Frigate." + }, + "addRole": "افزودن نقش" + }, + "notification": { + "title": "اعلانها", + "notificationSettings": { + "title": "تنظیمات اعلانها", + "desc": "Frigate میتواند بهصورت بومی وقتی در مرورگر اجرا میشود یا بهعنوان PWA نصب شده است، اعلانهای پوش را به دستگاه شما ارسال کند." + }, + "notificationUnavailable": { + "title": "اعلانها در دسترس نیستند", + "desc": "اعلانهای پوش وب نیاز به یک بستر امن دارند (https://… ). این محدودیت مرورگر است. برای استفاده از اعلانها، بهصورت امن به Frigate دسترسی پیدا کنید."
+ },
+ "globalSettings": {
+ "title": "تنظیمات عمومی",
+ "desc": "بهطور موقت اعلانها را برای دوربینهای مشخص در همهٔ دستگاههای ثبتشده متوقف کنید."
+ },
+ "sendTestNotification": "ارسال اعلان آزمایشی",
+ "unsavedRegistrations": "ثبتنامهای اعلان ذخیرهنشده",
+ "unsavedChanges": "تغییرات اعلان ذخیرهنشده",
+ "active": "اعلانها فعال هستند",
+ "suspended": "اعلانها تعلیق شدهاند {{time}}",
+ "suspendTime": {
+ "suspend": "تعلیق",
+ "5minutes": "تعلیق به مدت ۵ دقیقه",
+ "10minutes": "تعلیق به مدت ۱۰ دقیقه",
+ "30minutes": "تعلیق به مدت ۳۰ دقیقه",
+ "1hour": "تعلیق به مدت ۱ ساعت",
+ "24hours": "متوقف کردن به مدت ۲۴ ساعت",
+ "untilRestart": "متوقف کردن تا راهاندازی مجدد",
+ "12hours": "متوقف کردن به مدت ۱۲ ساعت"
+ },
+ "email": {
+ "title": "ایمیل",
+ "placeholder": "مثلاً example@email.com",
+ "desc": "یک ایمیل معتبر الزامی است و در صورت بروز مشکل در سرویس push برای اطلاعرسانی به شما استفاده میشود."
+ },
+ "cameras": {
+ "title": "دوربینها",
+ "noCameras": "هیچ دوربینی در دسترس نیست",
+ "desc": "انتخاب کنید که برای کدام دوربینها اعلان فعال شود."
+ },
+ "cancelSuspension": "لغو توقف",
+ "toast": {
+ "success": {
+ "registered": "با موفقیت برای اعلانها ثبت شد. راهاندازی مجدد Frigate قبل از ارسال هر اعلانی (از جمله اعلان آزمایشی) الزامی است.",
+ "settingSaved": "تنظیمات اعلان ذخیره شد."
+ },
+ "error": {
+ "registerFailed": "ذخیرهٔ ثبتنام اعلان ناموفق بود."
+ }
+ },
+ "deviceSpecific": "تنظیمات خاص دستگاه",
+ "registerDevice": "ثبت این دستگاه",
+ "unregisterDevice": "لغو ثبت این دستگاه"
+ },
+ "frigatePlus": {
+ "apiKey": {
+ "notValidated": "کلید API Frigate+ شناسایی نشده یا معتبرسازی نشده است",
+ "desc": "کلید API Frigate+ امکان یکپارچهسازی با سرویس Frigate+ را فراهم میکند.",
+ "plusLink": "دربارهٔ Frigate+ بیشتر بخوانید",
+ "title": "کلید API فرigate+",
+ "validated": "کلید API فرigate+ شناسایی و تأیید شد"
+ },
+ "snapshotConfig": {
+ "title": "پیکربندی عکس فوری",
+ "desc": "ارسال به Frigate+ نیازمند فعال بودنِ هم «عکسهای فوری» و هم عکسهای فوریِ clean_copy در پیکربندی شماست.",
+ "cleanCopyWarning": "برای برخی دوربینها عکس فوری فعال است اما clean copy غیرفعال است. برای اینکه بتوانید تصاویر این دوربینها را به Frigate+ ارسال کنید، باید clean_copy را در پیکربندی عکس فوری خود فعال کنید.",
+ "table": {
+ "camera": "دوربین",
+ "snapshots": "عکسهای فوری",
+ "cleanCopySnapshots": "عکسهای فوریِ clean_copy "
+ }
+ },
+ "modelInfo": {
+ "title": "اطلاعات مدل",
+ "loadingAvailableModels": "در حال بارگذاری مدلهای موجود…",
+ "modelSelect": "مدلهای موجود شما در Frigate+ را میتوان از اینجا انتخاب کرد. توجه داشته باشید که فقط مدلهای سازگار با پیکربندی فعلی آشکارساز شما قابل انتخاب هستند.",
+ "modelType": "نوع مدل",
+ "cameras": "دوربینها",
+ "loading": "در حال بارگذاری اطلاعات مدل…",
+ "error": "بارگذاری اطلاعات مدل ناموفق بود",
+ "availableModels": "مدلهای موجود",
+ "trainDate": "تاریخ آموزش",
+ "baseModel": "مدل پایه",
+ "plusModelType": {
+ "baseModel": "مدل پایه",
+ "userModel": "بهینهشده"
+ },
+ "supportedDetectors": "تشخیصدهندههای پشتیبانیشده"
+ },
+ "unsavedChanges": "تغییرات تنظیمات Frigate+ ذخیرهنشده",
+ "restart_required": "نیاز به راهاندازی مجدد (مدل Frigate+ تغییر کرد)",
+ "toast": {
+ "success": "تنظیمات Frigate+ ذخیره شد. برای اعمال تغییرات، Frigate را راهاندازی مجدد کنید.",
+ "error": "ذخیرهٔ تغییرات پیکربندی ناموفق بود: {{errorMessage}}"
+ },
+ "title": "تنظیمات Frigate+"
+ },
+ "triggers": {
+ "documentTitle": "تریگرها",
+ "semanticSearch": {
+ "title": "جستجوی معنایی غیرفعال است",
+ "desc": "برای استفاده از تریگرها باید جستجوی معنایی فعال باشد."
+ },
+ "management": {
+ "title": "تریگرها",
+ "desc": "مدیریت محرکها برای {{camera}}. از نوع بندانگشتی برای فعالسازی روی بندانگشتیهای مشابه به شیء ردیابیشدهٔ انتخابیتان استفاده کنید، و از نوع توضیحات برای فعالسازی روی توضیحات مشابه به متنی که مشخص میکنید."
+ },
+ "table": {
+ "lastTriggered": "آخرین بار فعالشده",
+ "noTriggers": "هیچ محرکی برای این دوربین پیکربندی نشده است.",
+ "edit": "ویرایش",
+ "deleteTrigger": "حذف محرک",
+ "name": "نام",
+ "type": "نوع",
+ "content": "محتوا",
+ "threshold": "آستانه",
+ "actions": "اقدامات"
+ },
+ "type": {
+ "thumbnail": "پیشنمایش",
+ "description": "توضیحات"
+ },
+ "actions": {
+ "notification": "ارسال اعلان",
+ "sub_label": "افزودن زیربرچسب",
+ "attribute": "افزودن ویژگی"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "ایجاد تریگر",
+ "desc": "برای دوربین {{camera}} یک تریگر ایجاد کنید"
+ },
+ "editTrigger": {
+ "title": "ویرایش تریگر",
+ "desc": "تنظیمات تریگر روی دوربین {{camera}} را ویرایش کنید"
+ },
+ "deleteTrigger": {
+ "title": "حذف تریگر",
+ "desc": "آیا مطمئن هستید که میخواهید تریگر {{triggerName}} را حذف کنید؟ این عمل قابل بازگشت نیست."
+ },
+ "form": {
+ "name": {
+ "title": "نام",
+ "placeholder": "این تریگر را نامگذاری کنید",
+ "description": "یک نام یا توضیح یکتا وارد کنید تا این تریگر قابل شناسایی باشد",
+ "error": {
+ "minLength": "فیلد باید حداقل ۲ کاراکتر باشد.",
+ "invalidCharacters": "فیلد فقط میتواند شامل حروف، اعداد، زیرخط (_) و خط تیره (-) باشد.",
+ "alreadyExists": "تریگری با این نام از قبل برای این دوربین وجود دارد."
+ }
+ },
+ "enabled": {
+ "description": "این تریگر را فعال یا غیرفعال کنید"
+ },
+ "type": {
+ "title": "نوع",
+ "placeholder": "نوع تریگر را انتخاب کنید",
+ "description": "وقتی توضیحی مشابهِ شیء ردیابیشده تشخیص داده شود تریگر شود",
+ "thumbnail": "وقتی بندانگشتیِ مشابهِ شیء ردیابیشده تشخیص داده شود تریگر شود"
+ },
+ "content": {
+ "title": "محتوا",
+ "imagePlaceholder": "یک بندانگشتی انتخاب کنید",
+ "textPlaceholder": "محتوای متنی را وارد کنید",
+ "imageDesc": "فقط ۱۰۰ بندانگشتیِ آخر نمایش داده میشوند. اگر بندانگشتیِ موردنظر خود را پیدا نمیکنید، لطفاً اشیای قدیمیتر را در Explore مرور کنید و از همانجا از منو یک تریگر تنظیم کنید.",
+ "textDesc": "متنی وارد کنید تا وقتی توضیحی مشابهِ شیء ردیابیشده تشخیص داده شد، این اقدام تریگر شود.",
+ "error": {
+ "required": "محتوا الزامی است."
+ }
+ },
+ "threshold": {
+ "title": "آستانه",
+ "desc": "آستانهٔ شباهت را برای این تریگر تعیین کنید. آستانهٔ بالاتر یعنی برای فعال شدن تریگر، تطابق نزدیکتری لازم است.",
+ "error": {
+ "min": "آستانه باید حداقل ۰ باشد",
+ "max": "آستانه باید حداکثر ۱ باشد"
+ }
+ },
+ "actions": {
+ "title": "اقدامها",
+ "desc": "بهطور پیشفرض، Frigate برای همهٔ تریگرها یک پیام MQTT ارسال میکند. زیربرچسبها نام تریگر را به برچسب شیء اضافه میکنند. ویژگیها فرادادههای قابل جستجو هستند که جداگانه در فرادادهٔ شیء ردیابیشده ذخیره میشوند.",
+ "error": {
+ "min": "حداقل باید یک اقدام انتخاب شود."
+ }
+ }
+ }
+ },
+ "wizard": {
+ "title": "ایجاد تریگر",
+ "step1": {
+ "description": "تنظیمات پایهٔ تریگر خود را پیکربندی کنید."
+ },
+ "step2": {
+ "description": "محتوایی را که این اقدام را فعال میکند تنظیم کنید."
+ },
+ "step3": {
+ "description": "آستانه و اقدامهای این تریگر را پیکربندی کنید."
+ },
+ "steps": {
+ "nameAndType": "نام و نوع",
+ "configureData": "پیکربندی دادهها",
+ "thresholdAndActions": "آستانه و اقدامها"
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "تریگر {{name}} با موفقیت ایجاد شد.",
+ "updateTrigger": "تریگر {{name}} با موفقیت بهروزرسانی شد.",
+ "deleteTrigger": "تریگر {{name}} با موفقیت حذف شد."
+ },
+ "error": {
+ "createTriggerFailed": "ایجاد تریگر ناموفق بود: {{errorMessage}}",
+ "updateTriggerFailed": "بهروزرسانی تریگر ناموفق بود: {{errorMessage}}",
+ "deleteTriggerFailed": "حذف تریگر ناموفق بود: {{errorMessage}}"
+ }
+ },
+ "addTrigger": "افزودن محرک"
}
}
diff --git a/web/public/locales/fa/views/system.json b/web/public/locales/fa/views/system.json
index b33d6e505..090d4a97f 100644
--- a/web/public/locales/fa/views/system.json
+++ b/web/public/locales/fa/views/system.json
@@ -5,7 +5,197 @@
"general": "آمار عمومی - فریگیت",
"enrichments": "آمار بهینه سازی - فریگیت",
"logs": {
- "frigate": "ثبت رخدادهای فریگیت - فریگیت"
+ "frigate": "ثبت رخدادهای فریگیت - فریگیت",
+ "go2rtc": "گزارشهای Go2RTC - فریگیت",
+ "nginx": "گزارشهای Nginx - فریگیت"
}
- }
+ },
+ "title": "سیستم",
+ "metrics": "شاخصهای سیستم",
+ "logs": {
+ "download": {
+ "label": "دانلود گزارشها"
+ },
+ "copy": {
+ "label": "کپی در کلیپبورد",
+ "success": "گزارشها در کلیپبورد کپی شدند",
+ "error": "نمیتوان گزارشها را در کلیپبورد کپی کرد"
+ },
+ "type": {
+ "label": "نوع",
+ "timestamp": "برچسب زمانی",
+ "tag": "تگ",
+ "message": "پیام"
+ },
+ "tips": "گزارشها از سرور بهصورت زنده در حال دریافت هستند",
+ "toast": {
+ "error": {
+ "fetchingLogsFailed": "خطا در دریافت گزارشها: {{errorMessage}}",
+ "whileStreamingLogs": "خطا هنگام پخش زندهٔ گزارشها: {{errorMessage}}"
+ }
+ }
+ },
+ "general": {
+ "hardwareInfo": {
+ "title": "اطلاعات سختافزار",
+ "gpuUsage": "مصرف GPU",
+ "gpuMemory": "حافظهٔ GPU",
+ "gpuEncoder": "رمزگذار GPU",
+ "gpuDecoder": "رمزگشای GPU",
+ "gpuInfo": {
+ "vainfoOutput": {
+ "title": "خروجی Vainfo",
+ "returnCode": "کد بازگشتی: {{code}}",
+ "processOutput": "خروجی فرایند:",
+ "processError": "خطای فرایند:"
+ },
+ "nvidiaSMIOutput": {
+ "title": "خروجی Nvidia SMI",
+ "name": "ذخیرهٔ جستوجونام: {{name}}",
+ "driver": "درایور: {{driver}}",
+ "cudaComputerCapability": "قابلیت محاسباتی CUDA: {{cuda_compute}}",
+ "vbios": "اطلاعات VBios: {{vbios}}"
+ },
+ "closeInfo": {
+ "label": "بستن اطلاعات GPU"
+ },
+ "copyInfo": {
+ "label": "کپی اطلاعات GPU"
+ },
+ "toast": {
+ "success": "اطلاعات GPU در کلیپبورد کپی شد"
+ }
+ },
+ "npuUsage": "میزان استفاده از NPU",
+ "npuMemory": "حافظهٔ NPU",
+ "intelGpuWarning": {
+ "title": "هشدار آمار GPU اینتل",
+ "message": "آمار GPU در دسترس نیست",
+ "description": "این یک باگ شناختهشده در ابزارهای گزارشدهی آمار GPU اینتل (intel_gpu_top) است که باعث میشود از کار بیفتد و حتی در مواردی که شتابدهی سختافزاری و تشخیص شیء بهدرستی روی (i)GPU اجرا میشوند، بهطور مکرر میزان استفادهٔ GPU را ۰٪ برگرداند. این مشکل مربوط به Frigate نیست. میتوانید میزبان را ریاستارت کنید تا موقتاً مشکل برطرف شود و تأیید کنید که GPU درست کار میکند. این موضوع روی عملکرد تأثیری ندارد."
+ }
+ },
+ "title": "عمومی",
+ "detector": {
+ "title": "آشکارسازها",
+ "inferenceSpeed": "سرعت استنتاج آشکارساز",
+ "temperature": "دمای آشکارساز",
+ "cpuUsage": "مصرف CPU آشکارساز",
+ "cpuUsageInformation": "CPU برای آمادهسازی دادههای ورودی و خروجی به/از مدلهای تشخیص استفاده میشود. این مقدار مصرف استنتاج را اندازهگیری نمیکند، حتی اگر از GPU یا شتابدهنده استفاده شود.",
+ "memoryUsage": "مصرف حافظهٔ آشکارساز"
+ },
+ "otherProcesses": {
+ "title": "فرایندهای دیگر",
+ "processCpuUsage": "میزان استفادهٔ CPU فرایند",
+ "processMemoryUsage": "میزان استفادهٔ حافظهٔ فرایند"
+ }
+ },
+ "storage": {
+ "recordings": {
+ "earliestRecording": "قدیمیترین ضبط موجود:",
+ "title": "ضبطها",
+ "tips": "این مقدار نشاندهندهٔ کل فضای ذخیرهسازیِ استفادهشده توسط ضبطها در پایگاهدادهٔ Frigate است. Frigate میزان استفاده از فضای ذخیرهسازیِ همهٔ فایلهای روی دیسک شما را ردیابی نمیکند."
+ },
+ "shm": {
+ "warning": "اندازهٔ فعلی SHM برابر {{total}}MB خیلی کوچک است. آن را دستکم به {{min_shm}}MB افزایش دهید.",
+ "title": "اختصاص SHM (حافظهٔ اشتراکی)"
+ },
+ "cameraStorage": {
+ "title": "ذخیرهسازی دوربین",
+ "unusedStorageInformation": "اطلاعات فضای ذخیرهسازیِ استفادهنشده",
+ "percentageOfTotalUsed": "درصد از کل",
+ "unused": {
+ "title": "استفادهنشده",
+ "tips": "اگر فایلهای دیگری غیر از ضبطهای Frigate روی دیسک شما ذخیره شده باشد، این مقدار ممکن است فضای آزادِ در دسترس برای Frigate را دقیق نشان ندهد. Frigate میزان استفاده از فضای ذخیرهسازی خارج از ضبطهای خودش را ردیابی نمیکند."
+ },
+ "camera": "دوربین",
+ "storageUsed": "ذخیرهسازی",
+ "bandwidth": "پهنای باند"
+ },
+ "title": "ذخیرهسازی",
+ "overview": "نمای کلی"
+ },
+ "cameras": {
+ "overview": "نمای کلی",
+ "info": {
+ "cameraProbeInfo": "اطلاعات پروب دوربین {{camera}}",
+ "fetching": "در حال دریافت دادههای دوربین",
+ "video": "ویدئو:",
+ "fps": "FPS:",
+ "audio": "صدا:",
+ "aspectRatio": "نسبت تصویر",
+ "streamDataFromFFPROBE": "دادههای جریان با ffprobe بهدست میآید.",
+ "stream": "جریان {{idx}}",
+ "codec": "کدک:",
+ "resolution": "وضوح:",
+ "unknown": "نامشخص",
+ "error": "خطا: {{error}}",
+ "tips": {
+ "title": "اطلاعات بررسی دوربین"
+ }
+ },
+ "framesAndDetections": "فریمها / تشخیصها",
+ "label": {
+ "detect": "تشخیص",
+ "capture": "گرفتن",
+ "overallDetectionsPerSecond": "مجموع تشخیصها در ثانیه",
+ "cameraCapture": "گرفتن {{camName}}",
+ "cameraDetectionsPerSecond": "تشخیصها در ثانیهٔ {{camName}}",
+ "camera": "دوربین",
+ "skipped": "رد شد",
+ "ffmpeg": "FFmpeg",
+ "overallFramesPerSecond": "نرخ کلی فریم بر ثانیه",
+ "overallSkippedDetectionsPerSecond": "نرخ کلی تشخیصهای ردشده بر ثانیه",
+ "cameraDetect": "تشخیص {{camName}}",
+ "cameraFfmpeg": "{{camName}} FFmpeg",
+ "cameraFramesPerSecond": "{{camName}} فریم بر ثانیه",
+ "cameraSkippedDetectionsPerSecond": "{{camName}} تشخیصهای ردشده در ثانیه"
+ },
+ "toast": {
+ "error": {
+ "unableToProbeCamera": "پروبِ دوربین ناموفق بود: {{errorMessage}}"
+ },
+ "success": {
+ "copyToClipboard": "دادههای بررسی در کلیپبورد کپی شد."
+ }
+ },
+ "title": "دوربینها"
+ },
+ "stats": {
+ "ffmpegHighCpuUsage": "{{camera}} استفادهٔ CPU بالایی برای FFmpeg دارد ({{ffmpegAvg}}%)",
+ "detectHighCpuUsage": "{{camera}} استفادهٔ CPU بالایی برای تشخیص دارد ({{detectAvg}}%)",
+ "reindexingEmbeddings": "بازتولید نمایهٔ embeddingها ({{processed}}% تکمیل شده)",
+ "cameraIsOffline": "{{camera}} آفلاین است",
+ "detectIsVerySlow": "{{detect}} بسیار کند است ({{speed}} ms)",
+ "shmTooLow": "اختصاص /dev/shm ({{total}} MB) باید دستکم تا {{min}} MB افزایش یابد.",
+ "healthy": "سامانه سالم است",
+ "detectIsSlow": "{{detect}} کند است ( {{speed}} میلیثانیه )"
+ },
+ "enrichments": {
+ "infPerSecond": "استنتاجها در ثانیه",
+ "embeddings": {
+ "text_embedding": "امبدینگ متن",
+ "image_embedding_speed": "سرعت امبدینگ تصویر",
+ "plate_recognition_speed": "سرعت تشخیص پلاک",
+ "yolov9_plate_detection": "تشخیص پلاک YOLOv9",
+ "review_description_events_per_second": "توضیح بازبینی",
+ "object_description": "توضیح شیء",
+ "image_embedding": "امبدینگ تصویر",
+ "face_recognition": "شناسایی چهره",
+ "plate_recognition": "شناسایی پلاک",
+ "face_embedding_speed": "سرعت امبدینگ چهره",
+ "face_recognition_speed": "سرعت شناسایی چهره",
+ "text_embedding_speed": "سرعت امبدینگ متن",
+ "yolov9_plate_detection_speed": "سرعت تشخیص پلاک YOLOv9",
+ "review_description": "توضیحات بازبینی",
+ "review_description_speed": "سرعت توضیحات بازبینی",
+ "object_description_speed": "سرعت توضیحات شیء",
+ "object_description_events_per_second": "توضیحات شیء",
+ "classification": "طبقهبندی {{name}}",
+ "classification_speed": "سرعت طبقهبندی {{name}}",
+ "classification_events_per_second": "رویدادهای طبقهبندی {{name}} در ثانیه"
+ },
+ "title": "غنیسازیها",
+ "averageInf": "میانگین زمان استنتاج"
+ },
+ "lastRefreshed": "آخرین بهروزرسانی: · "
}
diff --git a/web/public/locales/fi/views/classificationModel.json b/web/public/locales/fi/views/classificationModel.json
index 0967ef424..477b0e2e9 100644
--- a/web/public/locales/fi/views/classificationModel.json
+++ b/web/public/locales/fi/views/classificationModel.json
@@ -1 +1,11 @@
-{}
+{
+ "documentTitle": "Luokittelumallit - Frigate",
+ "details": {
+ "scoreInfo": "Pistemäärä edustaa tämän objektin kaikkien havaintojen keskimääräistä luokitteluvarmuutta.",
+ "none": "Ei mitään"
+ },
+ "button": {
+ "deleteImages": "Poista kuvat",
+ "trainModel": "Kouluta malli"
+ }
+}
diff --git a/web/public/locales/fi/views/exports.json b/web/public/locales/fi/views/exports.json
index 5ee8e88eb..22f39ceb1 100644
--- a/web/public/locales/fi/views/exports.json
+++ b/web/public/locales/fi/views/exports.json
@@ -13,5 +13,8 @@
"title": "Nimeä uudelleen",
"desc": "Anna uusi nimi viedylle kohteelle.",
"saveExport": "Tallenna vienti"
+ },
+ "tooltip": {
+ "editName": "Muokkaa nimeä"
}
}
diff --git a/web/public/locales/fi/views/settings.json b/web/public/locales/fi/views/settings.json
index cda27193f..df2f2eb56 100644
--- a/web/public/locales/fi/views/settings.json
+++ b/web/public/locales/fi/views/settings.json
@@ -10,7 +10,8 @@
"object": "Virheenjäljitys - Frigate",
"authentication": "Autentikointiuasetukset - Frigate",
"notifications": "Ilmoitusasetukset - Frigate",
- "enrichments": "Laajennusasetukset – Frigate"
+ "enrichments": "Laajennusasetukset – Frigate",
+ "cameraManagement": "Hallitse Kameroita - Frigate"
},
"menu": {
"ui": "Käyttöliittymä",
diff --git a/web/public/locales/fr/common.json b/web/public/locales/fr/common.json
index a1132a01e..39820367c 100644
--- a/web/public/locales/fr/common.json
+++ b/web/public/locales/fr/common.json
@@ -90,7 +90,8 @@
},
"inProgress": "En cours",
"invalidStartTime": "Heure de début invalide",
- "invalidEndTime": "Heure de fin invalide"
+ "invalidEndTime": "Heure de fin invalide",
+ "never": "Jamais"
},
"button": {
"apply": "Appliquer",
@@ -174,7 +175,8 @@
"bg": "Български (Bulgare)",
"gl": "Galego (Galicien)",
"id": "Bahasa Indonesia (Indonésien)",
- "ur": "اردو (Ourdou)"
+ "ur": "اردو (Ourdou)",
+ "hr": "Hrvatski (Croate)"
},
"appearance": "Apparence",
"darkMode": {
@@ -279,7 +281,8 @@
"show": "Afficher {{item}}",
"ID": "ID",
"none": "Aucun",
- "all": "Tous"
+ "all": "Tous",
+ "other": "Autre"
},
"unit": {
"speed": {
diff --git a/web/public/locales/fr/views/events.json b/web/public/locales/fr/views/events.json
index 833dc4b2a..6baaf9b93 100644
--- a/web/public/locales/fr/views/events.json
+++ b/web/public/locales/fr/views/events.json
@@ -9,7 +9,11 @@
"empty": {
"alert": "Aucune alerte à traiter",
"detection": "Aucune détection à traiter",
- "motion": "Aucune donnée de mouvement trouvée"
+ "motion": "Aucune donnée de mouvement trouvée",
+ "recordingsDisabled": {
+ "title": "Les enregistrements doivent être activés.",
+ "description": "Les activités ne peuvent être générées pour une caméra que si l'enregistrement est activé pour celle-ci."
+ }
},
"timeline": "Chronologie",
"events": {
diff --git a/web/public/locales/fr/views/explore.json b/web/public/locales/fr/views/explore.json
index 652c8bf56..637936450 100644
--- a/web/public/locales/fr/views/explore.json
+++ b/web/public/locales/fr/views/explore.json
@@ -110,7 +110,10 @@
"title": "Modifier les attributs",
"desc": "Sélectionnez les attributs de classification pour : {{label}}"
},
- "attributes": "Attributs de classification"
+ "attributes": "Attributs de classification",
+ "title": {
+ "label": "Titre"
+ }
},
"type": {
"details": "détails",
diff --git a/web/public/locales/fr/views/faceLibrary.json b/web/public/locales/fr/views/faceLibrary.json
index 7d65a5e91..4389786cd 100644
--- a/web/public/locales/fr/views/faceLibrary.json
+++ b/web/public/locales/fr/views/faceLibrary.json
@@ -2,7 +2,8 @@
"description": {
"addFace": "Ajoutez une nouvelle collection à la bibliothèque de visages en téléversant votre première image.",
"placeholder": "Saisissez un nom pour cette collection.",
- "invalidName": "Nom invalide. Les noms ne peuvent contenir que des lettres, des chiffres, des espaces, des apostrophes, des traits de soulignement et des tirets."
+ "invalidName": "Nom invalide. Les noms ne peuvent contenir que des lettres, des chiffres, des espaces, des apostrophes, des traits de soulignement et des tirets.",
+ "nameCannotContainHash": "Le nom ne peut pas contenir le caractère #."
},
"details": {
"person": "Personne",
diff --git a/web/public/locales/fr/views/live.json b/web/public/locales/fr/views/live.json
index e3edc5a0f..935a96bc6 100644
--- a/web/public/locales/fr/views/live.json
+++ b/web/public/locales/fr/views/live.json
@@ -178,6 +178,16 @@
"restricted": {
"title": "Aucune caméra disponible",
"description": "Vous n'avez pas la permission de visionner les caméras de ce groupe."
+ },
+ "default": {
+ "title": "Aucune caméra configurée",
+ "description": "Pour commencer, connectez une caméra à Frigate.",
+ "buttonText": "Ajouter une caméra"
+ },
+ "group": {
+ "title": "Aucune caméra dans le groupe",
+ "description": "Ce groupe de caméras ne contient aucune caméra assignée ou activée.",
+ "buttonText": "Gérer les groupes"
}
},
"snapshot": {
diff --git a/web/public/locales/fr/views/settings.json b/web/public/locales/fr/views/settings.json
index d44b0117a..2b989ac80 100644
--- a/web/public/locales/fr/views/settings.json
+++ b/web/public/locales/fr/views/settings.json
@@ -649,7 +649,7 @@
"hide": "Masquer le mot de passe",
"requirements": {
"title": "Critères du mot de passe :",
- "length": "Au moins 8 caractères",
+ "length": "Au moins 12 caractères",
"uppercase": "Au moins une lettre majuscule",
"digit": "Au moins un chiffre",
"special": "Au moins un caractère spécial (!@#$%^&*(),.?\":{}|<>)"
@@ -1278,11 +1278,11 @@
"title": "Paramètres des activités caméra",
"object_descriptions": {
"title": "Descriptions d'objets par l'IA générative",
- "desc": "Active ou désactive temporairement les descriptions d'objets générées par l'IA générative pour cette caméra. Lorsque cette option est désactivée, aucune description par l'IA n'est générée pour les objets suivis sur cette caméra."
+ "desc": "Activez ou désactivez temporairement les descriptions par IA générative jusqu'au redémarrage. Si désactivé, l'IA ne sera plus sollicitée pour décrire les objets suivis sur cette caméra."
},
"review_descriptions": {
"title": "Descriptions des activités par l'IA générative",
- "desc": "Active ou désactive temporairement les descriptions par l'IA générative pour cette caméra. Lorsque cette option est désactivée, aucune description nouvelle n'est générée pour les activités sur cette caméra."
+ "desc": "Activez ou désactivez temporairement les descriptions d'activités par IA générative jusqu'au redémarrage. Si désactivé, l'IA ne sera plus sollicitée pour décrire les activités sur cette caméra."
},
"review": {
"title": "Activités",
diff --git a/web/public/locales/fr/views/system.json b/web/public/locales/fr/views/system.json
index f261fa996..38babfe8d 100644
--- a/web/public/locales/fr/views/system.json
+++ b/web/public/locales/fr/views/system.json
@@ -86,7 +86,14 @@
"otherProcesses": {
"title": "Autres processus",
"processCpuUsage": "Utilisation CPU du processus",
- "processMemoryUsage": "Utilisation mémoire du processus"
+ "processMemoryUsage": "Utilisation mémoire du processus",
+ "series": {
+ "go2rtc": "go2rtc",
+ "recording": "enregistrement",
+ "review_segment": "Segment d'activité",
+ "embeddings": "embeddings",
+ "audio_detector": "détecteur audio"
+ }
}
},
"storage": {
@@ -143,11 +150,11 @@
"cameraFfmpeg": "{{camName}} FFmpeg",
"cameraSkippedDetectionsPerSecond": "{{camName}} détections ignorées par seconde",
"overallDetectionsPerSecond": "Moyenne de détections par seconde",
- "overallFramesPerSecond": "Moyenne d'images par seconde (IPS)",
+ "overallFramesPerSecond": "images par seconde (global)",
"overallSkippedDetectionsPerSecond": "Moyenne de détections ignorées par seconde",
"cameraCapture": "{{camName}} capture",
"cameraDetect": "{{camName}} détection",
- "cameraFramesPerSecond": "{{camName}} images par seconde (IPS)",
+ "cameraFramesPerSecond": "{{camName}} images par seconde",
"cameraDetectionsPerSecond": "{{camName}} détections par seconde"
},
"overview": "Vue d'ensemble",
diff --git a/web/public/locales/he/common.json b/web/public/locales/he/common.json
index 0496941bb..1059ae300 100644
--- a/web/public/locales/he/common.json
+++ b/web/public/locales/he/common.json
@@ -107,7 +107,8 @@
"show": "הצג {{item}}",
"ID": "ID",
"none": "ללא",
- "all": "הכל"
+ "all": "הכל",
+ "other": "אחר"
},
"button": {
"apply": "החל",
diff --git a/web/public/locales/he/views/events.json b/web/public/locales/he/views/events.json
index 6abcccd11..636a073b1 100644
--- a/web/public/locales/he/views/events.json
+++ b/web/public/locales/he/views/events.json
@@ -9,7 +9,11 @@
"empty": {
"detection": "אין גילויים לבדיקה",
"alert": "אין התראות להצגה",
- "motion": "לא נמצאו נתוני תנועה"
+ "motion": "לא נמצאו נתוני תנועה",
+ "recordingsDisabled": {
+ "title": "יש להפעיל הקלטות",
+ "description": "ניתן ליצור פריטי סקירה עבור מצלמה רק כאשר הקלטות מופעלות עבור אותה מצלמה."
+ }
},
"timeline": "ציר זמן",
"timeline.aria": "בחירת ציר זמן",
diff --git a/web/public/locales/he/views/explore.json b/web/public/locales/he/views/explore.json
index 07be1ceec..6042b4329 100644
--- a/web/public/locales/he/views/explore.json
+++ b/web/public/locales/he/views/explore.json
@@ -220,7 +220,10 @@
"score": {
"label": "ציון"
},
- "attributes": "מאפייני סיווג"
+ "attributes": "מאפייני סיווג",
+ "title": {
+ "label": "כותרת"
+ }
},
"dialog": {
"confirmDelete": {
diff --git a/web/public/locales/he/views/system.json b/web/public/locales/he/views/system.json
index 90480a554..fa32918f6 100644
--- a/web/public/locales/he/views/system.json
+++ b/web/public/locales/he/views/system.json
@@ -97,7 +97,14 @@
"otherProcesses": {
"title": "תהליכים אחרים",
"processCpuUsage": "ניצול CPU של התהליך",
- "processMemoryUsage": "ניצול זיכרון של תהליך"
+ "processMemoryUsage": "ניצול זיכרון של תהליך",
+ "series": {
+ "go2rtc": "go2rtc",
+ "recording": "מקליט",
+ "review_segment": "קטע סקירה",
+ "embeddings": "הטמעות",
+ "audio_detector": "זיהוי שמע"
+ }
}
},
"enrichments": {
diff --git a/web/public/locales/hr/audio.json b/web/public/locales/hr/audio.json
index d0b8ecaaa..55d1e5fce 100644
--- a/web/public/locales/hr/audio.json
+++ b/web/public/locales/hr/audio.json
@@ -4,14 +4,14 @@
"bicycle": "Bicikl",
"yell": "Vikanje",
"car": "Automobil",
- "bellow": "Ispod",
+ "bellow": "Rika",
"motorcycle": "Motocikl",
"whispering": "Šaptanje",
"bus": "Autobus",
"laughter": "Smijeh",
"train": "Vlak",
- "snicker": "Tenisica",
- "boat": "Čamac",
+ "snicker": "Smješkanje",
+ "boat": "ÄŒamac",
"crying": "Plakanje",
"singing": "Pjevanje",
"choir": "Zbor",
@@ -19,8 +19,485 @@
"mantra": "Mantra",
"bird": "Ptica",
"child_singing": "Dijete pjeva",
- "cat": "Mačka",
+ "cat": "MaÄka",
"dog": "Pas",
"horse": "Konj",
- "sheep": "Ovca"
+ "sheep": "Ovca",
+ "whoop": "Ups",
+ "sigh": "Uzdah",
+ "chant": "Pjevanje",
+ "synthetic_singing": "Sintetičko pjevanje",
+ "rapping": "Repanje",
+ "humming": "Pjevušenje",
+ "groan": "Jauk",
+ "grunt": "Mrmljanje",
+ "whistling": "Zviždanje",
+ "breathing": "Disanje",
+ "wheeze": "Piskanje",
+ "snoring": "Hrkanje",
+ "gasp": "Izdisaj",
+ "pant": "Dahćanje",
+ "snort": "Šmrk",
+ "cough": "Kašalj",
+ "skateboard": "Skejtboard",
+ "door": "Vrata",
+ "mouse": "Miš",
+ "keyboard": "Tipkovnica",
+ "sink": "Sudoper",
+ "blender": "Blender",
+ "clock": "Sat",
+ "scissors": "Škare",
+ "hair_dryer": "Fen",
+ "toothbrush": "Četkica za zube",
+ "vehicle": "Vozilo",
+ "animal": "Životinja",
+ "bark": "Kora",
+ "goat": "Koza",
+ "camera": "Kamera",
+ "throat_clearing": "Pročišćavanje grla",
+ "sneeze": "Kihati",
+ "sniff": "Njuškanje",
+ "run": "Trčanje",
+ "shuffle": "Geganje",
+ "footsteps": "Koraci",
+ "chewing": "Žvakanje",
+ "biting": "Grizenje",
+ "gargling": "Grgljanje",
+ "stomach_rumble": "Kruljenje u želucu",
+ "burping": "Podrigivanje",
+ "hiccup": "Štucanje",
+ "fart": "Prdac",
+ "hands": "Ruke",
+ "finger_snapping": "Pucketanje prstima",
+ "clapping": "Pljesak",
+ "heartbeat": "Otkucaji srca",
+ "heart_murmur": "Šum na srcu",
+ "cheering": "Navijanje",
+ "applause": "Pljesak",
+ "chatter": "Brbljanje",
+ "crowd": "Publika",
+ "children_playing": "Djeca se igraju",
+ "pets": "Kućni ljubimci",
+ "yip": "Kevtanje",
+ "howl": "Zavijanje",
+ "bow_wow": "Bow Wow",
+ "growling": "Režanje",
+ "whimper_dog": "Ps Cvilenje",
+ "purr": "Purr",
+ "meow": "Mijau",
+ "hiss": "Šuštanje",
+ "caterwaul": "Caterlaul",
+ "livestock": "Stočarstvo",
+ "clip_clop": "Clip Clop",
+ "neigh": "Njiši",
+ "cattle": "Goveda",
+ "moo": "Muu",
+ "cowbell": "Kravlje zvono",
+ "pig": "Svinja",
+ "oink": "Oink",
+ "bleat": "Blejanje",
+ "fowl": "Perad",
+ "chicken": "Piletina",
+ "cluck": "Kljuc",
+ "cock_a_doodle_doo": "Kukurikurik",
+ "turkey": "Turska",
+ "gobble": "Halapljivo jedenje",
+ "duck": "Patka",
+ "quack": "Kvak",
+ "goose": "Guska",
+ "honk": "Truba",
+ "wild_animals": "Divlje životinje",
+ "roaring_cats": "Rikuće mačke",
+ "roar": "Rika",
+ "chirp": "Cvrkut",
+ "squawk": "Krik",
+ "pigeon": "Golub",
+ "coo": "Cvrkut",
+ "crow": "Vrana",
+ "caw": "Krak",
+ "owl": "Sova",
+ "hoot": "Hookanje",
+ "flapping_wings": "Mahanje krilima",
+ "dogs": "Psi",
+ "rats": "Štakori",
+ "patter": "Patkanje",
+ "insect": "Insekt",
+ "cricket": "Kriket",
+ "mosquito": "Komarac",
+ "fly": "Leti",
+ "buzz": "Bzz",
+ "frog": "Žaba",
+ "croak": "Krek",
+ "snake": "Zmija",
+ "rattle": "Zveckanje",
+ "whale_vocalization": "Vokalizacija kita",
+ "music": "Glazba",
+ "musical_instrument": "Glazbeni instrument",
+ "plucked_string_instrument": "Trzajući žičani instrument",
+ "guitar": "Gitara",
+ "electric_guitar": "Električna gitara",
+ "bass_guitar": "Bas gitara",
+ "acoustic_guitar": "Akustična gitara",
+ "steel_guitar": "Steel gitara",
+ "tapping": "Tapkanje",
+ "strum": "Tunganje",
+ "banjo": "Banjo (Instrument)",
+ "sitar": "Sitar (Instrument)",
+ "mandolin": "Mandolina",
+ "zither": "Cither",
+ "ukulele": "Ukulele (Instrument)",
+ "piano": "Klavir",
+ "electric_piano": "Električni klavir",
+ "organ": "Orgulje",
+ "electronic_organ": "Elektroničke orgulje",
+ "hammond_organ": "Hammond orgulje",
+ "synthesizer": "Sintesajzer",
+ "sampler": "Sampler (Instrument)",
+ "harpsichord": "Čembalo",
+ "percussion": "Udaraljke",
+ "drum_kit": "Bubnjarski set",
+ "drum_machine": "Bubnjarski stroj",
+ "drum": "Bubanj",
+ "snare_drum": "Doboš",
+ "rimshot": "Rimshot (udaranje po rubu bubnja)",
+ "drum_roll": "Bubnjarski uvod",
+ "bass_drum": "Bas bubanj",
+ "timpani": "Timpani bubnjevi",
+ "tabla": "Tabla",
+ "cymbal": "Činela",
+ "hi_hat": "Hi-Hat bubanj",
+ "wood_block": "Drveni blok",
+ "tambourine": "Tamburin",
+ "maraca": "Maraca (Instrument)",
+ "gong": "Gong (Instrument)",
+ "tubular_bells": "Tubular Bells (Instrument)",
+ "mallet_percussion": "Mallet udaraljke",
+ "marimba": "Marimba (Instrument)",
+ "glockenspiel": "Glockenspiel (Instrument)",
+ "vibraphone": "Vibrafon",
+ "steelpan": "Steelpan (Instrument)",
+ "orchestra": "Orkestar",
+ "brass_instrument": "Limeni instrumenti",
+ "french_horn": "Francuski rog",
+ "trumpet": "Truba",
+ "trombone": "Trombon",
+ "bowed_string_instrument": "Gudački žičani instrument",
+ "string_section": "Gudačka sekcija",
+ "violin": "Violina",
+ "pizzicato": "Pizzicato (Instrument)",
+ "cello": "Violončelo",
+ "double_bass": "Kontrabas",
+ "wind_instrument": "Puhački instrument",
+ "flute": "Flauta",
+ "saxophone": "Saksofon",
+ "clarinet": "Klarinet",
+ "harp": "Harfa",
+ "bell": "Zvono",
+ "church_bell": "Crkveno zvono",
+ "jingle_bell": "Zvončić",
+ "bicycle_bell": "Biciklističko zvono",
+ "tuning_fork": "Vilica za ugađanje",
+ "chime": "Zvono",
+ "wind_chime": "Zvono na vjetru",
+ "harmonica": "Usna harmonika",
+ "accordion": "Harmonika",
+ "bagpipes": "Gajde",
+ "didgeridoo": "Didgeridoo (Instrument)",
+ "theremin": "Theremin (Instrument)",
+ "singing_bowl": "Pjevajuća zdjela",
+ "scratching": "Grebanje",
+ "pop_music": "Pop glazba",
+ "hip_hop_music": "Hip-hop glazba",
+ "beatboxing": "Beatbox",
+ "rock_music": "Rock glazba",
+ "heavy_metal": "Heavy Metal (žanr rock glazbe)",
+ "punk_rock": "Punk Rock (žanr glazbe)",
+ "grunge": "Grunge (žanr glazbe)",
+ "progressive_rock": "Progresivni rock",
+ "rock_and_roll": "Rock and Roll (žanr glazbe)",
+ "psychedelic_rock": "Psihodelični rock",
+ "rhythm_and_blues": "Rhythm and Blues (žanr glazbe)",
+ "soul_music": "Soul glazba",
+ "reggae": "Reggae (žanr glazbe)",
+ "country": "Zemlja",
+ "swing_music": "Swing glazba",
+ "bluegrass": "Bluegrass (žanr glazbe)",
+ "funk": "Funk (žanr glazbe)",
+ "folk_music": "Narodna glazba",
+ "middle_eastern_music": "Bliskoistočna glazba",
+ "jazz": "Jazz (žanr glazbe)",
+ "disco": "Disco (žanr glazbe)",
+ "classical_music": "Klasična glazba",
+ "opera": "Opera",
+ "electronic_music": "Elektronička glazba",
+ "house_music": "House glazba",
+ "techno": "Techno (žanr glazbe)",
+ "dubstep": "Dubstep (žanr glazbe)",
+ "drum_and_bass": "Drum and Bass (žanr glazbe)",
+ "electronica": "Elektronika",
+ "electronic_dance_music": "Elektronička plesna glazba",
+ "ambient_music": "Ambijentalna glazba",
+ "trance_music": "Trance glazba",
+ "music_of_latin_america": "Glazba Latinske Amerike",
+ "salsa_music": "Salsa glazba",
+ "flamenco": "Flamenco (žanr glazbe)",
+ "blues": "Blues (žanr glazbe)",
+ "music_for_children": "Glazba za djecu",
+ "new-age_music": "New Age glazba",
+ "vocal_music": "Vokalna glazba",
+ "a_capella": "A Capella (Izvedba glazbe bez instrumenata)",
+ "music_of_africa": "Glazba Afrike",
+ "afrobeat": "Afrobeat (žanr glazbe)",
+ "christian_music": "Kršćanska glazba",
+ "gospel_music": "Gospel glazba",
+ "music_of_asia": "Glazba Azije",
+ "carnatic_music": "Karnatska glazba",
+ "music_of_bollywood": "Glazba Bollywooda",
+ "ska": "Ska (žanr glazbe)",
+ "traditional_music": "Tradicionalna glazba",
+ "independent_music": "Nezavisna glazba",
+ "song": "Pjesma",
+ "background_music": "Pozadinska glazba",
+ "theme_music": "Tematska glazba",
+ "jingle": "Jingle",
+ "soundtrack_music": "Glazba za glazbu",
+ "lullaby": "Uspavanka",
+ "video_game_music": "Glazba iz videoigara",
+ "christmas_music": "Božićna glazba",
+ "dance_music": "Plesna glazba",
+ "wedding_music": "Svadbena glazba",
+ "happy_music": "Sretna glazba",
+ "sad_music": "Tužna glazba",
+ "tender_music": "Nježna glazba",
+ "exciting_music": "Uzbudljiva glazba",
+ "angry_music": "Ljutita glazba",
+ "scary_music": "Strašna glazba",
+ "wind": "Vjetar",
+ "rustling_leaves": "Šuštanje lišća",
+ "wind_noise": "Buka vjetra",
+ "thunderstorm": "Grmljavinska oluja",
+ "thunder": "Grmljavina",
+ "water": "Voda",
+ "rain": "Kiša",
+ "raindrop": "Kap kiše",
+ "rain_on_surface": "Kiša na površini",
+ "stream": "Potok",
+ "waterfall": "Vodopad",
+ "ocean": "Ocean",
+ "waves": "Valovi",
+ "steam": "Parni vlakovi",
+ "gurgling": "Grgljanje",
+ "fire": "Požar",
+ "crackle": "Pucketanje",
+ "sailboat": "Jedrilica",
+ "rowboat": "Čamac na vesla",
+ "motorboat": "Motorni čamac",
+ "ship": "Brod",
+ "motor_vehicle": "Motorna vozila",
+ "toot": "Tut",
+ "car_alarm": "Automobilski alarm",
+ "power_windows": "Električni prozori",
+ "skidding": "Klizanje",
+ "tire_squeal": "Škripa guma",
+ "car_passing_by": "Prolazak automobila",
+ "race_car": "Trkaći automobil",
+ "truck": "Kamion",
+ "air_brake": "Zračna kočnica",
+ "air_horn": "Zračni rog",
+ "reversing_beeps": "Zvuk unatrag",
+ "ice_cream_truck": "Kamion za sladoled",
+ "emergency_vehicle": "Vozilo hitne pomoći",
+ "police_car": "Policijski automobil",
+ "ambulance": "Hitna pomoć",
+ "fire_engine": "Vatrogasno vozilo",
+ "traffic_noise": "Buka prometa",
+ "rail_transport": "Željeznički promet",
+ "train_whistle": "Zviždaljka vlaka",
+ "train_horn": "Sirena vlaka",
+ "railroad_car": "Željeznički vagon",
+ "train_wheels_squealing": "Škripa kotača vlaka",
+ "subway": "Podzemna željeznica",
+ "aircraft": "Zrakoplovi",
+ "aircraft_engine": "Zrakoplovni motor",
+ "jet_engine": "Mlazni motor",
+ "propeller": "Propeler",
+ "helicopter": "Helikopter",
+ "fixed-wing_aircraft": "Zrakoplovi s fiksnim krilima",
+ "engine": "Motor",
+ "light_engine": "Laka lokomotiva",
+ "dental_drill's_drill": "Dentalna bušilica",
+ "lawn_mower": "Kosilica za travu",
+ "chainsaw": "Motorna pila",
+ "medium_engine": "Srednji motor",
+ "heavy_engine": "Teški motor",
+ "engine_knocking": "Kucanje motora",
+ "engine_starting": "Pokretanje motora",
+ "idling": "Rad u praznom hodu",
+ "accelerating": "Ubrzavanje",
+ "doorbell": "Zvono na vratima",
+ "ding-dong": "Ding-Dong",
+ "sliding_door": "Klizna vrata",
+ "slam": "Slam (žanr glazbe)",
+ "knock": "Kuc",
+ "tap": "Tap",
+ "squeak": "Cvrkut",
+ "cupboard_open_or_close": "Otvaranje ili zatvaranje ormara",
+ "drawer_open_or_close": "Otvaranje ili zatvaranje ladice",
+ "dishes": "Jela",
+ "cutlery": "Pribor za jelo",
+ "chopping": "Sjeckanje",
+ "frying": "Prženje",
+ "microwave_oven": "Mikrovalna pećnica",
+ "water_tap": "Vodovodna slavina",
+ "bathtub": "Kada",
+ "toilet_flush": "Ispiranje WC-a",
+ "electric_toothbrush": "Električna četkica za zube",
+ "vacuum_cleaner": "Usisavač",
+ "zipper": "Patentni zatvarač",
+ "keys_jangling": "Zvuk ključeva",
+ "coin": "Novčić",
+ "electric_shaver": "Električni brijač",
+ "shuffling_cards": "Miješanje karata",
+ "typing": "Tipkanje",
+ "typewriter": "Pisaća mašina",
+ "computer_keyboard": "Računalna tipkovnica",
+ "writing": "Pisanje",
+ "alarm": "Alarm",
+ "telephone": "Telefon",
+ "telephone_bell_ringing": "Zvono telefona zvoni",
+ "ringtone": "Melodija zvona",
+ "telephone_dialing": "Telefonsko biranje",
+ "dial_tone": "Ton biranja",
+ "busy_signal": "Zauzeti signal",
+ "alarm_clock": "Budilica",
+ "siren": "Sirena",
+ "civil_defense_siren": "Sirena civilne zaštite",
+ "buzzer": "Buzzer (Uređaj)",
+ "smoke_detector": "Detektor dima",
+ "fire_alarm": "Protupožarni alarm",
+ "foghorn": "Maglenka",
+ "whistle": "Zviždaljka",
+ "steam_whistle": "Parna zviždaljka",
+ "mechanisms": "Mehanizmi",
+ "ratchet": "Zupčanik sa zaporom (ratchet)",
+ "tick": "Tik",
+ "tick-tock": "Tik-tak",
+ "gears": "Zupčanici",
+ "pulleys": "Koloture",
+ "sewing_machine": "Šivaći stroj",
+ "mechanical_fan": "Mehanički ventilator",
+ "air_conditioning": "Klima uređaj",
+ "cash_register": "Blagajna",
+ "printer": "Pisač",
+ "single-lens_reflex_camera": "Jednooki refleksni fotoaparat",
+ "tools": "Alati",
+ "hammer": "Čekić",
+ "jackhammer": "Pneumatski čekić",
+ "sawing": "Piljenje",
+ "filing": "Podnošenje",
+ "sanding": "Brušenje",
+ "power_tool": "Električni alat",
+ "drill": "Vježba",
+ "explosion": "Eksplozija",
+ "gunshot": "Pucanj",
+ "machine_gun": "Mitraljez",
+ "fusillade": "Pucnjava",
+ "artillery_fire": "Topnička paljba",
+ "cap_gun": "Cap Gun",
+ "fireworks": "Vatromet",
+ "firecracker": "Petarda",
+ "burst": "Prasak",
+ "eruption": "Erupcija",
+ "boom": "Bum",
+ "wood": "Drvo",
+ "chop": "Brzo.",
+ "splinter": "Rascijepanje",
+ "crack": "Pukotina",
+ "glass": "Staklo",
+ "chink": "Kinez",
+ "shatter": "Razbijanje",
+ "silence": "Tišina",
+ "sound_effect": "Zvučni efekt",
+ "environmental_noise": "Okolišna buka",
+ "static": "Statički",
+ "white_noise": "Bijeli šum",
+ "pink_noise": "Ružičasti šum",
+ "television": "Televizija",
+ "radio": "Radio",
+ "field_recording": "Terensko snimanje",
+ "scream": "Vrisak",
+ "sodeling": "Sodeling",
+ "chird": "Chird",
+ "change_ringing": "Trčanje zvona",
+ "shofar": "Šofar",
+ "liquid": "Tekućina",
+ "splash": "Pljusak",
+ "slosh": "Pljusak",
+ "squish": "Zgnječenje",
+ "drip": "Kapanje",
+ "pour": "Usipanje",
+ "trickle": "Kapljanje",
+ "gush": "Brzo izlijevanje",
+ "fill": "Napuni",
+ "spray": "Prskanje",
+ "pump": "Pumpa",
+ "stir": "Miješaj",
+ "boiling": "Kuhanje",
+ "sonar": "Sonar",
+ "arrow": "Strijela",
+ "whoosh": "Whoosh",
+ "thump": "Tup",
+ "thunk": "Tup",
+ "electronic_tuner": "Elektronički tuner",
+ "effects_unit": "Jedinica za efekte",
+ "chorus_effect": "Efekt zbora",
+ "basketball_bounce": "Košarkaški odskok",
+ "bang": "Bam",
+ "slap": "Pljusak",
+ "whack": "Udarac",
+ "smash": "Slamanje",
+ "breaking": "Razbijanje",
+ "bouncing": "Skakanje",
+ "whip": "Bič",
+ "flap": "Flop",
+ "scratch": "Grebanje",
+ "scrape": "Struganje",
+ "rub": "Trljanje",
+ "roll": "Rolanje",
+ "crushing": "Drobljenje",
+ "crumpling": "Gužvanje",
+ "tearing": "Razdiruća",
+ "beep": "Bip",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "Klang",
+ "squeal": "Cviljenje",
+ "creak": "Škripa",
+ "rustle": "Šuštanje",
+ "whir": "Šuštanje",
+ "clatter": "Zveket",
+ "sizzle": "Crvčanje",
+ "clicking": "Klikovi",
+ "clickety_clack": "Klikety klak",
+ "rumble": "Tutnjanje",
+ "plop": "Plop",
+ "hum": "Šum",
+ "zing": "Cing",
+ "boing": "Boing",
+ "crunch": "Krckanje",
+ "sine_wave": "Sinusni val",
+ "harmonic": "Harmonik",
+ "chirp_tone": "Ton cvrkuta",
+ "pulse": "Puls",
+ "inside": "Unutra",
+ "outside": "Izvana",
+ "reverberation": "Reverberacija",
+ "echo": "Jeka",
+ "noise": "Buka",
+ "mains_hum": "Zujanje glavnih zvučnika",
+ "distortion": "Izobličenje",
+ "sidetone": "Bočni Ton",
+ "cacophony": "Kakofonija",
+ "throbbing": "Pulsirajuća",
+ "vibration": "Vibracija"
}
diff --git a/web/public/locales/hr/common.json b/web/public/locales/hr/common.json
index 1e60764bd..68b1cb41f 100644
--- a/web/public/locales/hr/common.json
+++ b/web/public/locales/hr/common.json
@@ -20,6 +20,287 @@
"12hours": "12 sati",
"24hours": "24 sata",
"pm": "pm",
- "am": "am"
+ "am": "am",
+ "ago": "prije {{timeAgo}}",
+ "yr": "{{time}}g.",
+ "year_one": "{{time}} godina",
+ "year_few": "{{time}} godine",
+ "year_other": "{{time}} godina",
+ "mo": "{{time}}mj.",
+ "month_one": "{{time}} mjesec",
+ "month_few": "{{time}} mjeseca",
+ "month_other": "{{time}} mjeseci",
+ "day_one": "{{time}} dan",
+ "day_few": "{{time}} dana",
+ "day_other": "{{time}} dana",
+ "h": "{{time}}h",
+ "hour_one": "{{time}} sat",
+ "hour_few": "{{time}} sata",
+ "hour_other": "{{time}} sati",
+ "minute_one": "{{time}} minuta",
+ "minute_few": "{{time}} minute",
+ "minute_other": "{{time}} minuta",
+ "second_one": "{{time}} sekunda",
+ "second_few": "{{time}} sekunde",
+ "second_other": "{{time}} sekundi",
+ "d": "{{time}}d",
+ "m": "{{time}}m",
+ "s": "{{time}}s",
+ "formattedTimestamp": {
+ "12hour": "d. MMM, h:mm:ss aaa",
+ "24hour": "d. MMM, HH:mm:ss"
+ },
+ "formattedTimestamp2": {
+ "12hour": "dd/MM 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": "d MMM, h:mm aaa",
+ "24hour": "d. MMM, HH:mm"
+ },
+ "formattedTimestampMonthDayYear": {
+ "12hour": "d. MMM, yyyy",
+ "24hour": "d. MMM, yyyy"
+ },
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "d. MMM yyyy, h:mm aaa",
+ "24hour": "d. MMM yyyy, HH:mm"
+ },
+ "formattedTimestampMonthDay": "d. MMM",
+ "formattedTimestampFilename": {
+ "12hour": "dd-MM-yy-h-mm-ss-a",
+ "24hour": "dd-MM-yy-HH-mm-ss"
+ },
+ "inProgress": "U tijeku",
+ "invalidStartTime": "Nevažeće vrijeme početka",
+ "invalidEndTime": "Nevažeće vrijeme završetka",
+ "never": "Nikad"
+ },
+ "menu": {
+ "live": {
+ "cameras": {
+ "count_one": "{{count}} kamera",
+ "count_few": "{{count}} kamere",
+ "count_other": "{{count}} kamera",
+ "title": "Kamere"
+ },
+ "title": "Uživo",
+ "allCameras": "Sve Kamere"
+ },
+ "system": "Sustav",
+ "systemMetrics": "Metrike sustava",
+ "configuration": "Konfiguracija",
+ "systemLogs": "Zapisnici sustava",
+ "settings": "Postavke",
+ "configurationEditor": "Uređivač konfiguracije",
+ "languages": "Jezici",
+ "language": {
+ "en": "Engleski",
+ "es": "Španjolski",
+ "zhCN": "简体中文 (Pojednostavljeni Kineski)",
+ "hi": "हिन्दी (Hindi)",
+ "fr": "Francuski",
+ "ar": "العربية (Arapski)",
+ "pt": "Portugalski",
+ "ptBR": "Brazilski Portugalski",
+ "ru": "Ruski",
+ "de": "Njemački",
+ "ja": "Japanski",
+ "tr": "Turski",
+ "it": "Talijanski",
+ "nl": "Nizozemski",
+ "sv": "Švedski",
+ "cs": "Češki",
+ "nb": "Norveški bokmål",
+ "ko": "Korejski",
+ "vi": "Vietnamski",
+ "fa": "Perzijski",
+ "pl": "Poljski",
+ "uk": "Ukrajinski",
+ "he": "Hebrejski",
+ "el": "Grčki",
+ "ro": "Rumunjski",
+ "hu": "Mađarski",
+ "fi": "Finski",
+ "da": "Danski",
+ "sk": "Slovački",
+ "yue": "Kantonščina",
+ "th": "Tajski",
+ "ca": "Katalonski",
+ "sr": "Srpski",
+ "sl": "Slovenski",
+ "lt": "Litvanski",
+ "bg": "Bulgarski",
+ "gl": "Galicijski",
+ "id": "Indonezijski",
+ "ur": "Urdu",
+ "withSystem": {
+ "label": "Koristi postavke sustava za jezik"
+ }
+ },
+ "appearance": "Izgled",
+ "darkMode": {
+ "label": "Tamni način",
+ "light": "Svijetla",
+ "dark": "Tamna",
+ "withSystem": {
+ "label": "Koristi postavke sustava za svijetli ili tamni način rada"
+ }
+ },
+ "withSystem": "Sustav",
+ "theme": {
+ "label": "Tema",
+ "blue": "Plava",
+ "green": "Zelena",
+ "nord": "Nord",
+ "red": "Crvena",
+ "highcontrast": "Visoki Kontrast",
+ "default": "Zadana"
+ },
+ "help": "Pomoć",
+ "documentation": {
+ "title": "Dokumentacija",
+ "label": "Frigate dokumentacija"
+ },
+ "restart": "Ponovno pokreni Frigate",
+ "review": "Pregled",
+ "explore": "Istraži",
+ "export": "Izvezi",
+ "uiPlayground": "Igralište korisničkog sučelja",
+ "faceLibrary": "Biblioteka Lica",
+ "classification": "Klasifikacija",
+ "user": {
+ "title": "Korisnik",
+ "account": "Račun",
+ "current": "Trenutni Korisnik: {{user}}",
+ "anonymous": "anonimno",
+ "logout": "Odjava",
+ "setPassword": "Postavi Lozinku"
+ }
+ },
+ "button": {
+ "save": "Spremi",
+ "apply": "Primjeni",
+ "reset": "Resetiraj",
+ "done": "Gotovo",
+ "enabled": "Omogućeno",
+ "enable": "Omogući",
+ "disabled": "Onemogućeno",
+ "disable": "Onemogući",
+ "saving": "Spremanje…",
+ "cancel": "Odustani",
+ "close": "Zatvori",
+ "copy": "Kopiraj",
+ "back": "Nazad",
+ "history": "Povijest",
+ "fullscreen": "Cijeli zaslon",
+ "exitFullscreen": "Izađi iz cijelog zaslona",
+ "pictureInPicture": "Slika u Slici",
+ "twoWayTalk": "Dvosmjerni razgovor",
+ "cameraAudio": "Kamera Zvuk",
+ "on": "UKLJUČENO",
+ "off": "ISKLJUČENO",
+ "edit": "Uredi",
+ "copyCoordinates": "Kopiraj koordinate",
+ "delete": "Izbriši",
+ "yes": "Da",
+ "no": "Ne",
+ "download": "Preuzmi",
+ "info": "Informacije",
+ "suspended": "Obustavljeno",
+ "unsuspended": "Ponovno aktiviraj",
+ "play": "Reproduciraj",
+ "unselect": "Odznači",
+ "export": "Izvezi",
+ "deleteNow": "Izbriši Sada",
+ "next": "Sljedeće",
+ "continue": "Nastavi"
+ },
+ "unit": {
+ "speed": {
+ "mph": "mph",
+ "kph": "km/h"
+ },
+ "length": {
+ "feet": "stopa",
+ "meters": "metri"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/sat",
+ "mbph": "MB/sat",
+ "gbph": "GB/sat"
+ }
+ },
+ "label": {
+ "back": "Idi nazad",
+ "hide": "Sakrij {{item}}",
+ "show": "Prikaži {{item}}",
+ "ID": "ID",
+ "none": "Nema",
+ "all": "Sve",
+ "other": "Druge"
+ },
+ "list": {
+ "two": "{{0}} i {{1}}",
+ "many": "{{items}} i {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Opcionalno",
+ "internalID": "Interni ID koji Frigate koristi u konfiguraciji i bazi podataka"
+ },
+ "toast": {
+ "copyUrlToClipboard": "Kopiran URL u međuspremnik.",
+ "save": {
+ "title": "Spremi",
+ "error": {
+ "title": "Neuspješno spremanje promjena konfiguracije: {{errorMessage}}",
+ "noMessage": "Neuspješno spremanje promjena konfiguracije"
+ }
+ }
+ },
+ "role": {
+ "title": "Uloge",
+ "admin": "Administrator",
+ "viewer": "Gledatelj",
+ "desc": "Administratori imaju potpuni pristup svim značajkama u Frigate korisnickom sučelju. Gledatelji su ograničeni na pregled kamera, pregled stavki i povijesnog snimka u korisničkom sučelju."
+ },
+ "pagination": {
+ "label": "paginacija",
+ "previous": {
+ "title": "Prethodno",
+ "label": "Idi na prethodnu stranicu"
+ },
+ "next": {
+ "title": "Sljedeće",
+ "label": "Idi na sljedeću stranicu"
+ },
+ "more": "Više stranica"
+ },
+ "accessDenied": {
+ "documentTitle": "Pristup Odbijen - Frigate",
+ "title": "Pristup Odbijen",
+ "desc": "Nemaš dopuštenje za pregled ove stranice."
+ },
+ "notFound": {
+ "documentTitle": "Nije Nađeno - Frigate",
+ "title": "404",
+ "desc": "Stranica nije pronađena"
+ },
+ "selectItem": "Odaberi {{item}}",
+ "readTheDocumentation": "Čitaj dokumentaciju",
+ "information": {
+ "pixels": "{{area}}px"
}
}
diff --git a/web/public/locales/hr/components/auth.json b/web/public/locales/hr/components/auth.json
index 110ad2c64..74a83d2a4 100644
--- a/web/public/locales/hr/components/auth.json
+++ b/web/public/locales/hr/components/auth.json
@@ -8,7 +8,9 @@
"passwordRequired": "Lozinka je obavezna",
"loginFailed": "Prijava nije uspjela",
"unknownError": "Nepoznata greška. Provjeri dnevnik.",
- "webUnknownError": "Nepoznata greška. Provjerite logove u konzoli."
- }
+ "webUnknownError": "Nepoznata greška. Provjerite logove u konzoli.",
+ "rateLimit": "Prekoračeno ograničenje. Pokušaj opet kasnije."
+ },
+ "firstTimeLogin": "Prokušavaš se prijaviti prvi put? Vjerodajnice su ispisane u Frigate logovima."
}
}
diff --git a/web/public/locales/hr/components/camera.json b/web/public/locales/hr/components/camera.json
index 271949a85..c00dc41f3 100644
--- a/web/public/locales/hr/components/camera.json
+++ b/web/public/locales/hr/components/camera.json
@@ -29,12 +29,58 @@
"camera": {
"birdseye": "Ptičja perspektiva",
"setting": {
- "label": "Postavke streamanja kamere",
- "title": "{{cameraName}} Streaming Postavke",
- "desc": "Promijenite opcije streamanja uživo za nadzornu ploču ove grupe kamera. Ove postavke su specifične za uređaj/preglednik.",
+ "label": "Postavke emitiranja kamere",
+ "title": "{{cameraName}} Postavke Emitiranja",
+ "desc": "Promijenite opcije emitiranja uživo za nadzornu ploču ove grupe kamera. Ove postavke su specifične za uređaj/preglednik.",
"audioIsAvailable": "Za ovaj prijenos dostupan je zvuk",
- "audioIsUnavailable": "Za ovaj prijenos zvuk nije dostupan"
+ "audioIsUnavailable": "Za ovaj prijenos zvuk nije dostupan",
+ "audio": {
+ "tips": {
+ "title": "Audio mora dolaziti s vaše kamere i biti konfiguriran u go2rtc za ovaj prijenos."
+ }
+ },
+ "stream": "Emitiranje",
+ "placeholder": "Izaberi emitiranje",
+ "streamMethod": {
+ "label": "Metoda emitiranja",
+ "placeholder": "Odaberi metodu emitiranja",
+ "method": {
+ "noStreaming": {
+ "label": "Nema emitiranja",
+ "desc": "Slike s kamere bit će ažurirane samo jednom u minuti, a emitiranje uživo neće biti dostupno."
+ },
+ "smartStreaming": {
+ "desc": "Pametno emitiranje ažurirat će sliku vaše kamere jednom u minuti kada nema prepoznatljive aktivnosti kako bi uštedjelo propusnost i resurse. Kada se detektira aktivnost, slika će se besprijekorno prebaciti na prijenos uživo.",
+ "label": "Pametno Emitiranje (preporučeno)"
+ },
+ "continuousStreaming": {
+ "label": "Kontinuirano Emitiranje",
+ "desc": {
+ "title": "Slika kamere uvijek će biti prijenos uživo kada je vidljiva na nadzornoj ploči, čak i ako nije detektirana nikakva aktivnost.",
+ "warning": "Neprekidno emitiranje može uzrokovati visok unos propusnosti i probleme s izvedbom. Koristite s oprezom."
+ }
+ }
+ }
+ },
+ "compatibilityMode": {
+ "label": "Način kompatibilnosti",
+ "desc": "Omogućite ovu opciju samo ako vaš prijenos uživo s kamere prikazuje artefakte boje i ima dijagonalnu liniju na desnoj strani slike."
+ }
}
}
+ },
+ "debug": {
+ "options": {
+ "label": "Postavke",
+ "title": "Opcije",
+ "showOptions": "Pokaži Opcije",
+ "hideOptions": "Sakrij Opcije"
+ },
+ "boundingBox": "Granični okvir",
+ "timestamp": "Vremenska oznaka",
+ "zones": "Zone",
+ "mask": "Maska",
+ "motion": "Kretnja",
+ "regions": "Regije"
}
}
diff --git a/web/public/locales/hr/components/dialog.json b/web/public/locales/hr/components/dialog.json
index 2f360e1d6..42030519d 100644
--- a/web/public/locales/hr/components/dialog.json
+++ b/web/public/locales/hr/components/dialog.json
@@ -11,7 +11,8 @@
"explore": {
"plus": {
"submitToPlus": {
- "label": "Pošalji u Frigate+"
+ "label": "Pošalji u Frigate+",
+ "desc": "Objekti u lokacijama koje želiš izbjeći nisu lažno pozitivni. Slanjem njih kao lažno pozitivnih će zbuniti model."
},
"review": {
"question": {
@@ -41,7 +42,82 @@
"end": {
"title": "Vrijeme kraja",
"label": "Odaberi vrijeme kraja"
+ },
+ "fromTimeline": "Izaberi sa vremenske crte",
+ "custom": "Prilagođeno"
+ },
+ "name": {
+ "placeholder": "Imenuj Izvoz"
+ },
+ "select": "Odaberi",
+ "export": "Izvoz",
+ "selectOrExport": "Odaberi ili Izvezi",
+ "toast": {
+ "success": "Izvoz je uspješno pokrenut. Datoteku možete pregledati na stranici za izvoz.",
+ "view": "Prikaz",
+ "error": {
+ "failed": "Nije uspjelo pokretanje izvoza: {{error}}",
+ "endTimeMustAfterStartTime": "Vrijeme završetka mora biti nakon vremena početka",
+ "noVaildTimeSelected": "Nema odabranog valjanog vremenskog raspona"
+ }
+ },
+ "fromTimeline": {
+ "saveExport": "Spremi Izvoz",
+ "previewExport": "Pregledaj Izvoz"
+ }
+ },
+ "streaming": {
+ "label": "Emitiraj",
+ "restreaming": {
+ "disabled": "Ponovno emitiranje nije omogućeno za ovu kameru.",
+ "desc": {
+ "title": "Postavi go2rtc za opcije dodatnog prikaza uživo i zvuk za ovu kameru."
+ }
+ },
+ "showStats": {
+ "label": "Pokaži statistike emitiranja",
+ "desc": "Omogući ovu opciju za prikaz statistike emitiranja kao proziran prozor na slici kamere."
+ },
+ "debugView": "Debug Prikaz"
+ },
+ "search": {
+ "saveSearch": {
+ "label": "Spremi Pretragu",
+ "desc": "Dodaj ime za ovu spremljenu pretragu.",
+ "placeholder": "Unesi ime za svoju pretragu",
+ "overwrite": "{{searchName}} već postoji. Spremanje će prepisati postojeću vrijednost.",
+ "success": "Pretraga ({{searchName}}) je spremljena.",
+ "button": {
+ "save": {
+ "label": "Spremi ovu pretragu"
+ }
}
}
+ },
+ "recording": {
+ "confirmDelete": {
+ "title": "Potvrdi Brisanje",
+ "desc": {
+ "selected": "Jeste li sigurni da želite izbrisati sav snimljen video povezan s ovom preglednom stavkom?detect stream-a, provjeri logove"
+ },
+ "toast": {
+ "success": {
+ "submittedFrigatePlus": "Kadar je uspješno poslan u Frigate+"
+ },
+ "error": {
+ "submitFrigatePlusFailed": "Neuspješno slanje kadra u Frigate+"
}
}
}
diff --git a/web/public/locales/hr/objects.json b/web/public/locales/hr/objects.json
index 1a9a74392..955ebe0cd 100644
--- a/web/public/locales/hr/objects.json
+++ b/web/public/locales/hr/objects.json
@@ -6,16 +6,115 @@
"airplane": "Zrakoplov",
"bus": "Autobus",
"train": "Vlak",
- "boat": "Čamac",
+ "boat": "ÄŒamac",
"traffic_light": "Semafor",
"fire_hydrant": "Hidrant",
"street_sign": "Prometni znak",
"stop_sign": "Znak stop",
"bench": "Klupa",
"bird": "Ptica",
- "cat": "Mačka",
+ "cat": "MaÄka",
"dog": "Pas",
"horse": "Konj",
"sheep": "Ovca",
- "cow": "Krava"
+ "cow": "Krava",
+ "parking_meter": "Parkirni Automat",
+ "elephant": "Slon",
+ "bear": "Medvjed",
+ "zebra": "Zebra",
+ "giraffe": "Žirafa",
+ "hat": "Kapa",
+ "backpack": "Ruksak",
+ "umbrella": "Kišobran",
+ "shoe": "Cipela",
+ "eye_glasses": "Naočale",
+ "handbag": "Ručna torba",
+ "tie": "Kravata",
+ "suitcase": "Kovčeg",
+ "frisbee": "Frizbi",
+ "skis": "Skije",
+ "snowboard": "Snowboard",
+ "sports_ball": "Sportska Lopta",
+ "kite": "Zmaj",
+ "baseball_bat": "Baseball Palica",
+ "baseball_glove": "Baseball Rukavica",
+ "skateboard": "Skejtboard",
+ "surfboard": "Daska za surfanje",
+ "tennis_racket": "Teniski reket",
+ "bottle": "Boca",
+ "plate": "Tanjur",
+ "wine_glass": "Vinska Čaša",
+ "cup": "Šalica",
+ "fork": "Vilica",
+ "knife": "Nož",
+ "spoon": "Žlica",
+ "bowl": "Zdjela",
+ "banana": "Banana",
+ "apple": "Jabuka",
+ "sandwich": "Sendvič",
+ "orange": "Naranča",
+ "broccoli": "Brokula",
+ "carrot": "Mrkva",
+ "hot_dog": "Hot Dog",
+ "pizza": "Pizza",
+ "donut": "Krafna",
+ "cake": "Torta",
+ "chair": "Stolica",
+ "couch": "Kauč",
+ "potted_plant": "Biljka u Loncu",
+ "bed": "Krevet",
+ "mirror": "Ogledalo",
+ "dining_table": "Blagovaonski Stol",
+ "window": "Prozor",
+ "desk": "Radni Stol",
+ "toilet": "WC",
+ "door": "Vrata",
+ "tv": "TV",
+ "laptop": "Laptop",
+ "mouse": "Miš",
+ "remote": "Daljinski",
+ "keyboard": "Tipkovnica",
+ "cell_phone": "Mobilni Telefon",
+ "microwave": "Mikrovalna",
+ "oven": "Pećnica",
+ "toaster": "Toster",
+ "sink": "Sudoper",
+ "refrigerator": "Frižider",
+ "blender": "Blender",
+ "book": "Knjiga",
+ "clock": "Sat",
+ "vase": "Vaza",
+ "scissors": "Škare",
+ "teddy_bear": "Plišani Medo",
+ "hair_dryer": "Fen",
+ "toothbrush": "Četkica za zube",
+ "hair_brush": "Četka za kosu",
+ "vehicle": "Vozilo",
+ "squirrel": "Vjeverica",
+ "deer": "Jelen",
+ "animal": "Životinja",
+ "bark": "Kora",
+ "fox": "Lisica",
+ "goat": "Koza",
+ "rabbit": "Zec",
+ "raccoon": "Rakun",
+ "robot_lawnmower": "Robotska Kosilica",
+ "waste_bin": "Kanta za smeće",
+ "on_demand": "Na Zahtjev",
+ "face": "Lice",
+ "license_plate": "Registracijska oznaka",
+ "package": "Paket",
+ "bbq_grill": "Roštilj",
+ "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"
}
diff --git a/web/public/locales/hr/views/classificationModel.json b/web/public/locales/hr/views/classificationModel.json
index e3070af27..97bfff234 100644
--- a/web/public/locales/hr/views/classificationModel.json
+++ b/web/public/locales/hr/views/classificationModel.json
@@ -5,18 +5,188 @@
"trainModel": "Treniraj model",
"addClassification": "Dodaj klasifikaciju",
"deleteModels": "Obriši modele",
- "editModel": "Uredi model"
+ "editModel": "Uredi model",
+ "deleteClassificationAttempts": "Izbriši Klasifikacijske Slike",
+ "renameCategory": "Preimenuj klasu",
+ "deleteCategory": "Izbriši Klasu"
},
"tooltip": {
"trainingInProgress": "Model se trenutno trenira",
- "modelNotReady": "Model nije spreman za treniranje"
+ "modelNotReady": "Model nije spreman za treniranje",
+ "noNewImages": "Nema novih slika za treniranje. Prvo klasificirajte više slika u skupu podataka.",
+ "noChanges": "Nema promjena u skupu podataka od posljednjeg treniranja."
},
"details": {
- "unknown": "Nepoznato"
+ "unknown": "Nepoznato",
+ "none": "Nema",
+ "scoreInfo": "Rezultat predstavlja prosječnu klasifikacijsku pouzdanost kroz sve detekcije ovog objekta."
},
"toast": {
"success": {
- "deletedImage": "Obrisane slike"
+ "deletedImage": "Obrisane slike",
+ "deletedCategory": "Izbrisana Klasa",
+ "deletedModel_one": "Uspješno izbrisan {{count}} model",
+ "deletedModel_few": "Uspješno izbrisana {{count}} modela",
+ "deletedModel_other": "Uspješno izbrisano {{count}} modela",
+ "categorizedImage": "Uspješno klasificirana slika",
+ "trainedModel": "Uspješno treniran model.",
+ "trainingModel": "Uspješno započeto treniranje modela.",
+ "updatedModel": "Uspješno ažurirana konfiguracija modela",
+ "renamedCategory": "Uspješno preimenovana klasa na {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Neuspješno brisanje: {{errorMessage}}",
+ "deleteCategoryFailed": "Neuspješno brisanje klase: {{errorMessage}}",
+ "deleteModelFailed": "Nije uspjelo brisanje modela: {{errorMessage}}",
+ "categorizeFailed": "Nije uspjelo kategoriziranje slike: {{errorMessage}}",
+ "trainingFailed": "Neuspješno treniranje modela. Provjerite Frigate zapisnike za detalje.",
+ "trainingFailedToStart": "Neuspješno pokretanje treniranja modela: {{errorMessage}}",
+ "updateModelFailed": "Neuspješno ažuriranje modela: {{errorMessage}}",
+ "renameCategoryFailed": "Neuspješno preimenovanje klase: {{errorMessage}}"
+ }
+ },
+ "description": {
+ "invalidName": "Nevaljano ime. Ime može samo uključivati slova, brojeve, razmake, navodnike, podcrte i crtice."
+ },
+ "train": {
+ "titleShort": "Nedavno",
+ "aria": "Odaberi Nedavne Klasifikacije",
+ "title": "Nedavne Klasifikacije"
+ },
+ "deleteModel": {
+ "desc_one": "Jeste li sigurni da želite izbrisati {{count}} model? Ovo će trajno izbrisati sve povezane podatke, uključujući slike i podatke za treniranje. Ova radnja se ne može poništiti.",
+ "desc_few": "Jeste li sigurni da želite izbrisati {{count}} modela? Ovo će trajno izbrisati sve povezane podatke, uključujući slike i podatke za treniranje. Ova radnja se ne može poništiti.",
+ "desc_other": "Jeste li sigurni da želite izbrisati {{count}} modela? Ovo će trajno izbrisati sve povezane podatke, uključujući slike i podatke za treniranje. Ova radnja se ne može poništiti.",
+ "title": "Izbriši klasifikacijski model",
+ "single": "Jesi li siguran da želiš izbrisati {{name}}? To će trajno izbrisati sve povezane podatke, uključujući slike i podatke za treniranje. Ova radnja se ne može poništiti."
+ },
+ "deleteDatasetImages": {
+ "desc_one": "Jeste li sigurni da želite izbrisati {{count}} sliku iz {{dataset}}? Ova radnja se ne može poništiti i zahtijevat će ponovno treniranje modela.",
+ "desc_few": "Jeste li sigurni da želite izbrisati {{count}} slike iz {{dataset}}? Ova radnja se ne može poništiti i zahtijevat će ponovno treniranje modela.",
+ "desc_other": "Jeste li sigurni da želite izbrisati {{count}} slika iz {{dataset}}? Ova radnja se ne može poništiti i zahtijevat će ponovno treniranje modela.",
+ "title": "Izbriši slike iz skupa podataka"
+ },
+ "deleteTrainImages": {
+ "desc_one": "Jeste li sigurni da želite izbrisati {{count}} sliku? Ova radnja se ne može poništiti.",
+ "desc_few": "Jeste li sigurni da želite izbrisati {{count}} slike? Ova radnja se ne može poništiti.",
+ "desc_other": "Jeste li sigurni da želite izbrisati {{count}} slika? Ova radnja se ne može poništiti.",
+ "title": "Izbriši slike iz skupa za treniranje"
+ },
+ "wizard": {
+ "step3": {
+ "allImagesRequired_one": "Molimo klasificirajte sve slike. Preostala je {{count}} slika.",
+ "allImagesRequired_few": "Molimo klasificirajte sve slike. Preostale su {{count}} slike.",
+ "allImagesRequired_other": "Molimo klasificirajte sve slike. Preostalo je {{count}} slika.",
+ "selectImagesPrompt": "Odaberite sve slike s: {{className}}",
+ "selectImagesDescription": "Kliknite na slike za odabir. Kliknite Nastavi kada završite s ovom klasom.",
+ "generating": {
+ "title": "Generiranje Primjeraka Slika",
+ "description": "Frigate povlači reprezentativne slike iz vaših snimaka. Ovo može potrajati..."
+ },
+ "training": {
+ "title": "Treniranje Modela",
+ "description": "Vaš model se trenira u pozadini. Zatvorite ovaj dijalog, a model će početi raditi čim treniranje završi."
+ },
+ "retryGenerate": "Ponovi Generiranje",
+ "noImages": "Nema generiranih primjeraka slika",
+ "classifying": "Klasificiranje & Treniranje...",
+ "trainingStarted": "Treniranje je uspješno pokrenuto",
+ "modelCreated": "Model je uspješno kreiran. Koristite prikaz Nedavnih Klasifikacija za dodavanje slika za nedostajuća stanja, a zatim trenirajte model.",
+ "errors": {
+ "noCameras": "Nema konfiguriranih kamera",
+ "noObjectLabel": "Nije odabrana oznaka objekta",
+ "generateFailed": "Neuspjelo generiranje primjera: {{error}}",
+ "generationFailed": "Generiranje nije uspjelo. Pokušajte ponovo.",
+ "classifyFailed": "Neuspjela klasifikacija slika: {{error}}"
+ },
+ "generateSuccess": "Primjerci slika su uspješno generirani",
+ "missingStatesWarning": {
+ "title": "Nedostaju Primjeri Stanja",
+ "description": "Preporučuje se odabrati primjere za sva stanja radi najboljih rezultata. Možete nastaviti bez odabira svih stanja, ali model neće biti treniran dok svi statusi nemaju slike. Nakon nastavka, koristite prikaz Nedavnih Klasifikacija za klasifikaciju slika za nedostajuća stanja, a zatim trenirajte model."
+ }
+ },
+ "title": "Kreiraj Novu Klasifikaciju",
+ "steps": {
+ "nameAndDefine": "Naziv & Definicija",
+ "stateArea": "Područje Stanja",
+ "chooseExamples": "Odaberi Primjere"
+ },
+ "step1": {
+ "description": "Modeli stanja prate fiksna područja kamere za promjene (npr. vrata otvorena/zatvorena). Modeli objekata dodaju klasifikacije detektiranim objektima (npr. poznate životinje, dostavljači, itd.).",
+ "name": "Naziv",
+ "namePlaceholder": "Unesite naziv modela...",
+ "type": "Tip",
+ "typeState": "Stanje",
+ "typeObject": "Objekt",
+ "objectLabel": "Oznaka Objekta",
+ "objectLabelPlaceholder": "Odaberi tip objekta...",
+ "classificationType": "Tip Klasifikacije",
+ "classificationTypeTip": "Saznaj više o tipovima klasifikacije",
+ "classificationTypeDesc": "Podoznake dodaju dodatni tekst na oznaku objekta (npr. 'Osoba: UPS'). Atributi su pretraživi metapodaci pohranjeni zasebno u metapodacima objekta.",
+ "classificationSubLabel": "Podoznaka",
+ "classificationAttribute": "Atribut",
+ "classes": "Klase",
+ "states": "Stanja",
+ "classesTip": "Saznaj više o klasama",
+ "classesStateDesc": "Definiraj različita stanja u kojima područje kamere može biti. Na primjer: 'otvoreno' i 'zatvoreno' za garažna vrata.",
+ "classesObjectDesc": "Definiraj različite kategorije za klasifikaciju detektiranih objekata. Na primjer: 'dostavljač', 'stanar', 'nepoznata osoba' za klasifikaciju ljudi.",
+ "classPlaceholder": "Unesite naziv klase...",
+ "errors": {
+ "nameRequired": "Naziv modela je obavezan",
+ "nameLength": "Naziv modela mora imati najviše 64 znaka",
+ "nameOnlyNumbers": "Naziv modela ne smije sadržavati samo brojeve",
+ "classRequired": "Potrebna je barem 1 klasa",
+ "classesUnique": "Nazivi klasa moraju biti jedinstveni",
+ "noneNotAllowed": "Klasa 'none' nije dopuštena",
+ "stateRequiresTwoClasses": "Modeli stanja zahtijevaju najmanje 2 klase",
+ "objectLabelRequired": "Molimo odaberite oznaku objekta",
+ "objectTypeRequired": "Molimo odaberite tip klasifikacije"
+ }
+ },
+ "step2": {
+ "description": "Odaberite kamere i definirajte područje praćenja za svaku kameru. Model će klasificirati stanje tih područja.",
+ "cameras": "Kamere",
+ "selectCamera": "Odaberi Kameru",
+ "noCameras": "Kliknite + za dodavanje kamera",
+ "selectCameraPrompt": "Odaberite kameru s popisa kako biste definirali područje praćenja"
+ }
+ },
+ "deleteCategory": {
+ "title": "Izbriši klasu",
+ "desc": "Jesi li siguran da želiš izbrisati klasu {{name}}? To će trajno izbrisati sve povezane slike i zahtijevati ponovno treniranje modela.",
+ "minClassesTitle": "Nije moguće izbrisati klasu",
+ "minClassesDesc": "Model klasifikacije mora imati barem 2 klase. Dodaj još jednu klasu prije brisanja ove."
+ },
+ "edit": {
+ "title": "Uredi model klasifikacije",
+ "descriptionState": "Uredi klase za ovaj model klasifikacije stanja. Promjene zahtijevaju ponovno treniranje modela.",
+ "descriptionObject": "Uredi tip objekta i tip klasifikacije za ovaj model klasifikacije objekata.",
+ "stateClassesInfo": "Napomena: Promjena klasa stanja zahtijeva ponovno treniranje modela s ažuriranim klasama."
+ },
+ "renameCategory": {
+ "title": "Preimenuj klasu",
+ "desc": "Unesite novi naziv za {{name}}. Bit će potrebno ponovno trenirati model da promjena naziva stupi na snagu."
+ },
+ "categories": "Klase",
+ "createCategory": {
+ "new": "Kreiraj Novu Klasu"
+ },
+ "categorizeImageAs": "Klasificiraj Sliku Kao:",
+ "categorizeImage": "Klasificiraj Sliku",
+ "menu": {
+ "objects": "Objekti",
+ "states": "Stanja"
+ },
+ "noModels": {
+ "object": {
+ "title": "Nema Modela Klasifikacije Objekata",
+ "description": "Kreiraj prilagođeni model za klasifikaciju detektiranih objekata.",
+ "buttonText": "Kreiraj Model Objekta"
+ },
+ "state": {
+ "title": "Nema Modela Klasifikacije Stanja",
+ "description": "Kreiraj prilagođeni model za praćenje i klasifikaciju promjena stanja u određenim područjima kamere.",
+ "buttonText": "Kreiraj Model Stanja"
}
}
}
diff --git a/web/public/locales/hr/views/configEditor.json b/web/public/locales/hr/views/configEditor.json
index fe4011ecc..1a5f2d23e 100644
--- a/web/public/locales/hr/views/configEditor.json
+++ b/web/public/locales/hr/views/configEditor.json
@@ -7,6 +7,12 @@
"toast": {
"error": {
"savingError": "Greška pri spremanju konfiguracije"
+ },
+ "success": {
+ "copyToClipboard": "Konfiguracija je kopirana u međuspremnik."
}
- }
+ },
+ "configEditor": "Uređivač konfiguracije",
+ "safeModeDescription": "Frigate je u sigurnom načinu zbog greške u validaciji konfiguracije.",
+ "safeConfigEditor": "Uređivač konfiguracije (Siguran Način)"
}
diff --git a/web/public/locales/hr/views/events.json b/web/public/locales/hr/views/events.json
index 47c1530f2..3bafeee22 100644
--- a/web/public/locales/hr/views/events.json
+++ b/web/public/locales/hr/views/events.json
@@ -2,14 +2,18 @@
"alerts": "Upozorenja",
"detections": "Detekcije",
"motion": {
- "label": "Pokret",
- "only": "Samo pokret"
+ "label": "Kretnja",
+ "only": "Samo kretnje"
},
"allCameras": "Sve kamere",
"empty": {
"alert": "Nema uzbuna za pregledati",
"detection": "Nema detekcija za pregled",
- "motion": "Nema podataka o pokretu"
+ "motion": "Nema podataka o pokretu",
+ "recordingsDisabled": {
+ "title": "Snimanja moraju biti uključena",
+ "description": "Stavke za pregled mogu biti stvorene za kameru jedino kada su snimanja uključena za tu kameru."
+ }
},
"timeline": "Vremenska linija",
"timeline.aria": "Odaberi vremensku liniju",
@@ -21,6 +25,41 @@
},
"zoomIn": "Približi",
"detail": {
- "label": "Detalji"
- }
+ "label": "Detalji",
+ "noDataFound": "Nema detaljnih podataka za pregled",
+ "aria": "Uključi/isključi prikaz detalja",
+ "trackedObject_one": "{{count}} objekt",
+ "trackedObject_other": "{{count}} objekta",
+ "noObjectDetailData": "Nema dostupnih detaljnih podataka o objektu.",
+ "settings": "Postavke detaljnog prikaza",
+ "alwaysExpandActive": {
+ "title": "Uvijek proširi aktivno",
+ "desc": "Uvijek proširite detalje objekta aktivnog pregledanog stavka kada su dostupni."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Praćena točka",
+ "clickToSeek": "Kliknite za pomicanje na ovo vrijeme"
+ },
+ "documentTitle": "Pregled - Frigate",
+ "recordings": {
+ "documentTitle": "Snimke - Frigate"
+ },
+ "calendarFilter": {
+ "last24Hours": "Zadnja 24 sata"
+ },
+ "markAsReviewed": "Označi kao Pregledano",
+ "markTheseItemsAsReviewed": "Označi ove stavke kao pregledane",
+ "newReviewItems": {
+ "label": "Pogledaj nove stavke za pregled",
+ "button": "Nove stavke za pregled"
+ },
+ "selected_one": "{{count}} odabran",
+ "selected_other": "{{count}} odabrano",
+ "select_all": "Sve",
+ "camera": "Kamera",
+ "detected": "detektirano",
+ "normalActivity": "Normalno",
+ "needsReview": "Potreban pregled",
+ "securityConcern": "Sigurnosna zabrinutost"
}
diff --git a/web/public/locales/hr/views/explore.json b/web/public/locales/hr/views/explore.json
index 114e4f893..fce8024cf 100644
--- a/web/public/locales/hr/views/explore.json
+++ b/web/public/locales/hr/views/explore.json
@@ -6,19 +6,245 @@
"embeddingsReindexing": {
"startingUp": "Pokretanje…",
"finishingShortly": "Završava uskoro",
- "estimatedTime": "Procjenjeno preostalo vrijeme:"
+ "estimatedTime": "Procjenjeno preostalo vrijeme:",
+ "context": "Istraživanje se može koristiti nakon što je završeno ponovno indeksiranje ugrađivanja praćenih objekata.",
+ "step": {
+ "thumbnailsEmbedded": "Ugrađene sličice: ",
+ "descriptionsEmbedded": "Ugrađeni opisi: ",
+ "trackedObjectsProcessed": "Procesirani praćeni objekti: "
+ }
},
"downloadingModels": {
"setup": {
- "textModel": "Tekstualni model"
- }
+ "textModel": "Tekstualni model",
+ "visionModel": "Model za vid",
+ "visionModelFeatureExtractor": "Ekstraktor značajki modela vizije",
+ "textTokenizer": "Tokenizator teksta"
+ },
+ "context": "Frigate preuzima potrebne modele ugrađivanja kako bi podržao značajku semantičkog pretraživanja. To može potrajati nekoliko minuta, ovisno o brzini vaše mrežne veze.",
+ "tips": {
+ "context": "Možda ćete htjeti ponovno indeksirati ugrađivanja (embeddings) svojih praćenih objekata kada se modeli preuzmu."
+ },
+ "error": "Došlo je do pogreške. Provjerite Frigate logove."
}
},
"details": {
- "timestamp": "Vremenska oznaka"
+ "timestamp": "Vremenska oznaka",
+ "item": {
+ "tips": {
+ "mismatch_one": "{{count}} nedostupan objekt je otkriven i uključen u ovaj pregledni stavak. Ti objekti ili nisu kvalificirani kao upozorenje ili detekcija, ili su već uklonjeni/izbrisani.",
+ "mismatch_few": "{{count}} nedostupna objekta su otkrivena i uključena u ovaj pregledni stavak. Ti objekti ili nisu kvalificirani kao upozorenje ili detekcija, ili su već uklonjeni/izbrisani.",
+ "mismatch_other": "{{count}} nedostupnih objekata je otkriveno i uključeno u ovaj pregledni stavak. Ti objekti ili nisu kvalificirani kao upozorenje ili detekcija, ili su već uklonjeni/izbrisani.",
+ "hasMissingObjects": "Prilagodite svoju konfiguraciju ako želite da Frigate sprema praćene objekte za sljedeće oznake: {{objects}}"
+ },
+ "title": "Detalji o pregledu stavke",
+ "desc": "Detalji o pregledu stavke",
+ "button": {
+ "share": "Podijelite ovaj pregled",
+ "viewInExplore": "Pogledaj u Istraži"
+ },
+ "toast": {
+ "success": {
+ "regenerate": "Zatražen je novi opis od {{provider}}. Ovisno o brzini vašeg pružatelja usluga, novi opis može trebati neko vrijeme da se regenerira.",
+ "updatedSublabel": "Uspješno ažurirana podoznaka.",
+ "updatedLPR": "Uspješno ažurirana registarska pločica.",
+ "updatedAttributes": "Uspješno ažurirani atributi.",
+ "audioTranscription": "Uspješno zatražena audio transkripcija. Ovisno o brzini vašeg Frigate servera, transkripcija može potrajati neko vrijeme."
+ },
+ "error": {
+ "regenerate": "Neuspješno pozivanje {{provider}} za novi opis: {{errorMessage}}",
+ "updatedSublabelFailed": "Nije uspjelo ažurirati podoznake: {{errorMessage}}",
+ "updatedLPRFailed": "Neuspješno ažuriranje registarske pločice: {{errorMessage}}",
+ "updatedAttributesFailed": "Neuspješno ažuriranje atributa: {{errorMessage}}",
+ "audioTranscription": "Neuspješno zatraživanje audio transkripcije: {{errorMessage}}"
+ }
+ }
+ },
+ "label": "Oznaka",
+ "editSubLabel": {
+ "title": "Uredi podoznaku",
+ "desc": "Unesite novu podoznaku za ovaj {{label}}",
+ "descNoLabel": "Unesite novu oznaku podoznake za ovaj praćeni objekt"
+ },
+ "editLPR": {
+ "title": "Uredi registarsku pločicu",
+ "desc": "Unesite novu vrijednost registarske pločice za ovaj {{label}}",
+ "descNoLabel": "Unesite novu vrijednost registarske pločice za ovaj praćeni objekt"
+ },
+ "editAttributes": {
+ "title": "Atributi uređivanja",
+ "desc": "Odaberite klasifikacijske atribute za ovaj {{label}}"
+ },
+ "snapshotScore": {
+ "label": "Ocjena snimke"
+ },
+ "topScore": {
+ "label": "Najbolja ocjena",
+ "info": "Najviša ocjena je najviši medijan za praćeni objekt, pa se može razlikovati od rezultata prikazanog na sličici rezultata pretraživanja."
+ },
+ "score": {
+ "label": "Ocjena"
+ },
+ "recognizedLicensePlate": "Priznata registarska pločica",
+ "attributes": "Klasifikacijski atributi",
+ "estimatedSpeed": "Procijenjena brzina",
+ "objects": "Objekti",
+ "camera": "Kamera",
+ "zones": "Zone",
+ "button": {
+ "findSimilar": "Pronađite slične",
+ "regenerate": {
+ "title": "Regeneriraj",
+ "label": "Ponovno generiranje opisa praćenog objekta"
+ }
+ },
+ "description": {
+ "label": "Opis",
+ "placeholder": "Opis praćenog objekta",
+ "aiTips": "Frigate neće tražiti opis od vašeg Generative AI pružatelja dok životni ciklus praćenog objekta ne završi."
+ },
+ "expandRegenerationMenu": "Proširi izbornik regeneracije",
+ "regenerateFromSnapshot": "Regeneracija iz Snimki",
+ "regenerateFromThumbnails": "Regeneracija iz sličica",
+ "tips": {
+ "descriptionSaved": "Uspješno spremljen opis",
+ "saveDescriptionFailed": "Nije ažuriran opis: {{errorMessage}}"
+ },
+ "title": {
+ "label": "Naslov"
+ }
},
"trackedObjectDetails": "Detalji praćenog objekta",
"type": {
- "details": "detalji"
+ "details": "detalji",
+ "snapshot": "snimka",
+ "thumbnail": "Sličica",
+ "video": "video",
+ "tracking_details": "detalji praćenja"
+ },
+ "exploreMore": "Istraži više {{label}} objekata",
+ "trackingDetails": {
+ "title": "Detalji Praćenja",
+ "noImageFound": "Slika nije nađena za ovaj vremenski zapis.",
+ "createObjectMask": "Napravi Masku Objekta",
+ "adjustAnnotationSettings": "Podesi postavke anotacije",
+ "scrollViewTips": "Kliknite za prikaz značajnih trenutaka životnog ciklusa ovog objekta.",
+ "autoTrackingTips": "Pozicije ograničavajućih okvira bit će netočne za kamere s automatskim praćenjem.",
+ "count": "{{first}} of {{second}}",
+ "trackedPoint": "Praćena točka",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} detektiran",
+ "entered_zone": "{{label}} ušlo u {{zones}}",
+ "active": "{{label}} postao aktivan",
+ "stationary": "{{label}} je postao stacionaran",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} detektiran za {{label}}",
+ "other": "{{label}} prepoznat kao {{attribute}}"
+ },
+ "gone": "{{label}} lijevo",
+ "heard": "{{label}} zvuk detektiran",
+ "external": "{{label}} detektiran",
+ "header": {
+ "zones": "Zone",
+ "ratio": "Omjer",
+ "area": "Površina",
+ "score": "Ocjena"
+ }
+ },
+ "annotationSettings": {
+ "title": "Postavke anotacija",
+ "showAllZones": {
+ "title": "Pokaži sve zone",
+ "desc": "Uvijek prikaži zone u okvirima gdje su objekti ušli u zonu."
+ },
+ "offset": {
+ "label": "Pomak anotacija",
+ "desc": "Ovi podaci dolaze s detekcijskog emitiranja vaše kamere, ali se prikazuju preko slika iz snimajućeg emitiranja. Malo je vjerojatno da su oba emitiranja potpuno sinkronizirana. Kao rezultat toga, okvir (bounding box) i snimka možda neće savršeno odgovarati. Ovom postavkom možete pomaknuti oznake unaprijed ili unatrag u vremenu kako bi bolje odgovarale snimljenoj snimci.",
+ "millisecondsToOffset": "Milisekunde za pomicanje detekcije anotacija za. Zadano: 0",
+ "tips": "Smanjite vrijednost ako je reprodukcija videa ispred kutija i točaka puta, a povećajte vrijednost ako je reprodukcija videa iza njih. Ta vrijednost može biti negativna.",
+ "toast": {
+ "success": "Pomak anotacija za {{camera}} spremljen je u konfiguracijsku datoteku."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Prethodni slajd",
+ "next": "Sljedeći slajd"
+ }
+ },
+ "trackedObjectsCount_one": "{{count}} praćeni objekt ",
+ "trackedObjectsCount_few": "{{count}} praćena objekta ",
+ "trackedObjectsCount_other": "{{count}} praćenih objekata ",
+ "itemMenu": {
+ "downloadVideo": {
+ "label": "Preuzmi video",
+ "aria": "Preuzmi video"
+ },
+ "downloadSnapshot": {
+ "label": "Preuzmite snimku",
+ "aria": "Preuzmite snimku"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Preuzmite čistu snimku",
+ "aria": "Preuzmite čistu snimku"
+ },
+ "viewTrackingDetails": {
+ "label": "Pogledajte detalje praćenja",
+ "aria": "Prikaži detalje praćenja"
+ },
+ "findSimilar": {
+ "label": "Pronađi slične",
+ "aria": "Pronađi slične praćene objekte"
+ },
+ "addTrigger": {
+ "label": "Dodaj okidač",
+ "aria": "Dodajte okidač za ovaj praćeni objekt"
+ },
+ "audioTranscription": {
+ "label": "Prepisivanje",
+ "aria": "Zatražite audio transkripciju"
+ },
+ "submitToPlus": {
+ "label": "Pošalji na Frigate+",
+ "aria": "Pošalji na Frigate Plus"
+ },
+ "viewInHistory": {
+ "label": "Pogled u povijest",
+ "aria": "Pogled u povijest"
+ },
+ "deleteTrackedObject": {
+ "label": "Izbriši ovaj praćeni objekt"
+ },
+ "showObjectDetails": {
+ "label": "Prikaži putanju objekta"
+ },
+ "hideObjectDetails": {
+ "label": "Put skrivanja objekta"
+ }
+ },
+ "dialog": {
+ "confirmDelete": {
+ "title": "Potvrdi brisanje",
+ "desc": "Brisanjem ovog praćenog objekta uklanja se snimka, sve spremljene ugradnje i svi povezani unosi o praćenju. Snimljeni materijal ovog praćenog objekta u prikazu Povijesti NEĆE biti izbrisan.Kutije pokreta
Crvene kutije bit će preklopljene na dijelove okvira gdje se trenutno detektira gibanje
" + }, + "regions": { + "title": "Regije", + "desc": "Prikaži okvir regije od interesa poslan detektoru objekata", + "tips": "Kutije Regije
Svijetlozelene kutije bit će preklopljene na područja od interesa u okviru koja se šalju detektoru objekata.
" + }, + "paths": { + "title": "Putovi", + "desc": "Prikazati značajne točke putanje praćenog objekta", + "tips": "Putovi
Linije i krugovi označavaju značajne točke na koje se praćeni objekt pomaknuo tijekom svog životnog ciklusa.
" + }, + "objectShapeFilterDrawing": { + "title": "Crtanje filtera prema obliku objekta", + "desc": "Nacrtajte pravokutnik na slici kako biste vidjeli područje i detalje omjera", + "tips": "Omogućite ovu opciju za crtanje pravokutnika na slici kamere kako biste prikazali njegovu površinu i omjer. Te vrijednosti se zatim mogu koristiti za postavljanje parametara filtera oblika objekta u vašoj konfiguraciji.", + "score": "Ocjena", + "ratio": "Omjer", + "area": "Površina" + } + }, + "users": { + "title": "Korisnici", + "management": { + "title": "Upravljanje korisnicima", + "desc": "Upravljajte korisničkim računima ove Frigate instance." + }, + "addUser": "Dodaj korisnika", + "updatePassword": "Resetiraj lozinku", + "toast": { + "success": { + "createUser": "User {{user}} uspješno stvoren", + "deleteUser": "Korisnik {{user}} uspješno izbrisan", + "updatePassword": "Lozinka je uspješno ažurirana.", + "roleUpdated": "Uloga ažurirana za {{user}}" + }, + "error": { + "setPasswordFailed": "Neuspješno spremanje lozinke: {{errorMessage}}", + "createUserFailed": "Neuspješno stvaranje korisnika: {{errorMessage}}", + "deleteUserFailed": "Neuspješno brisanje korisnika: {{errorMessage}}", + "roleUpdateFailed": "Neuspješno ažuriranje uloge: {{errorMessage}}" + } + }, + "table": { + "username": "Korisničko ime", + "actions": "Radnje", + "role": "Uloga", + "noUsers": "Nema pronađenih korisnika.", + "changeRole": "Promijenite ulogu korisnika", + "password": "Resetiraj lozinku", + "deleteUser": "Izbriši korisnika" + }, + "dialog": { + "form": { + "user": { + "title": "Korisničko ime", + "desc": "Dozvoljeni su samo slova, brojevi, točkice i podcrtice.", + "placeholder": "Unesite korisničko ime" + }, + "password": { + "title": "Lozinka", + "placeholder": "Unesite lozinku", + "show": "Prikaži lozinku", + "hide": "Sakrij lozinku", + "confirm": { + "title": "Potvrdi lozinku", + "placeholder": "Potvrdi lozinku" + }, + "strength": { + "title": "Snaga lozinke: ", + "weak": "Slaba", + "medium": "Srednje jaka", + "strong": "Snažna", + "veryStrong": "Vrlo snažna" + }, + "requirements": { + "title": "Zahtjevi za lozinku:", + "length": "Najmanje 8 znakova", + "uppercase": "Barem jedno veliko slovo", + "digit": "Barem jedna znamenka", + "special": "Barem jedan poseban znak (!@#$%^&*(),.?\":{}|<>)" + }, + "match": "Lozinke se podudaraju", + "notMatch": "Lozinke se ne podudaraju" + }, + "newPassword": { + "title": "Nova lozinka", + "placeholder": "Unesite novu lozinku", + "confirm": { + "placeholder": "Ponovno unesite novu lozinku" + } + }, + "currentPassword": { + "title": "Trenutna lozinka", + "placeholder": "Unesite svoju trenutnu lozinku" + }, + "usernameIsRequired": "Potrebno je korisničko ime", + "passwordIsRequired": "Potrebna je lozinka" + }, + "createUser": { + "title": "Napravi novog korisnika", + "desc": "Dodajte novi korisnički račun i odredite ulogu za pristup područjima Frigate sučelja.", + "usernameOnlyInclude": "Korisničko ime može sadržavati samo slova, brojeve, . ili _", + "confirmPassword": "Molimo potvrdite svoju lozinku" + }, + "deleteUser": { + "title": "Izbriši korisnika", + "desc": "Ova radnja se ne može poništiti. To će trajno izbrisati korisnički račun i ukloniti sve povezane podatke.", + "warn": "Jeste li sigurni da želite izbrisati {{username}}?" + }, + "passwordSetting": { + "cannotBeEmpty": "Lozinka ne smije biti prazna", + "doNotMatch": "Lozinke se ne podudaraju", + "currentPasswordRequired": "Trenutna je lozinka potrebna", + "incorrectCurrentPassword": "Trenutna lozinka je netočna", + "passwordVerificationFailed": "Neuspješno potvrđivanje lozinke", + "updatePassword": "Ažuriraj lozinku za {{username}}", + "setPassword": "Postavi lozinku", + "desc": "Napravite jaku lozinku kako biste zaštitili ovaj račun.", + "multiDeviceWarning": "Svi ostali uređaji na kojima ste prijavljeni morat će se ponovno prijaviti unutar {{refresh_time}}.", + "multiDeviceAdmin": "Također možete prisiliti sve korisnike na trenutnu ponovnu autentifikaciju rotiranjem vaše JWT tajne." + }, + "changeRole": { + "title": "Promjena uloge korisnika", + "select": "Odaberite ulogu", + "desc": "Ažuriraj dopuštenja za {{username}}", + "roleInfo": { + "intro": "Odaberite odgovarajuću ulogu za ovog korisnika:", + "admin": "Admin", + "adminDesc": "Potpuni pristup svim značajkama.", + "viewer": "Gledatelj", + "viewerDesc": "Ograničeno samo na Nadzorne ploče uživo, Pregled, Istraži i Izvoz.", + "customDesc": "Prilagođena uloga s određenim pristupom kameri." + } + } + } + }, + "notification": { + "title": "Obavijesti", + "notificationSettings": { + "title": "Postavke obavijesti", + "desc": "Frigate može nativno slati push obavijesti na vaš uređaj kada je pokrenut u pregledniku ili instaliran kao PWA." + }, + "notificationUnavailable": { + "title": "Obavijesti nisu dostupne", + "desc": "Web push obavijesti zahtijevaju siguran kontekst (https://...). Ovo je ograničenje preglednika. Pristupite Frigateu sigurno kako biste koristili obavijesti."
+ },
+ "globalSettings": {
+ "title": "Globalna okruženja",
+ "desc": "Privremeno obustavite obavijesti za određene kamere na svim registriranim uređajima."
+ },
+ "email": {
+ "title": "E-pošta",
+ "placeholder": "npr. example@email.com",
+ "desc": "Potreban je valjani e-mail i koristit će se da vas obavijesti ako dođe do problema s push uslugom."
+ },
+ "cameras": {
+ "title": "Kamere",
+ "noCameras": "Nema dostupnih kamera",
+ "desc": "Odaberite za koje kamere ćete uključiti obavijesti."
+ },
+ "deviceSpecific": "Postavke specifične za uređaj",
+ "registerDevice": "Registrirajte ovaj uređaj",
+ "unregisterDevice": "Odjavite ovaj uređaj",
+ "sendTestNotification": "Pošaljite obavijest o testu",
+ "unsavedRegistrations": "Registracije nespremljenih obavijesti",
+ "unsavedChanges": "Promjene nespremljenih obavijesti",
+ "active": "Obavijesti su aktivne",
+ "suspended": "Obavijesti obustavljene {{time}}",
+ "suspendTime": {
+ "suspend": "Obustava",
+ "5minutes": "Pauziraj na 5 minuta",
+ "10minutes": "Pauziraj na 10 minuta",
+ "30minutes": "Pauziraj na 30 minuta",
+ "1hour": "Pauziraj na 1 sat",
+ "12hours": "Pauziraj na 12 sati",
+ "24hours": "Pauziraj na 24 sata",
+ "untilRestart": "Pauziraj do ponovnog pokretanja"
+ },
+ "cancelSuspension": "Otkaži pauziranje obavijesti",
+ "toast": {
+ "success": {
+ "registered": "Uspješno registriran za obavijesti. Ponovno pokretanje Frigate-a je potrebno prije nego što se mogu poslati bilo kakve obavijesti (uključujući testnu obavijest).",
+ "settingSaved": "Postavke obavijesti su spremljene."
+ },
+ "error": {
+ "registerFailed": "Neuspješno spremanje registracije obavijesti."
+ }
+ }
+ },
+ "frigatePlus": {
+ "title": "Frigate+ postavke",
+ "apiKey": {
+ "title": "Frigate+ API ključ",
+ "validated": "Frigate+ API ključ je detektiran i validiran",
+ "notValidated": "Frigate+ API ključ nije detektiran ili nije validiran",
+ "desc": "Frigate+ API ključ omogućuje integraciju s Frigate+ uslugom.",
+ "plusLink": "Pročitajte više o Frigate+"
+ },
+ "snapshotConfig": {
+ "title": "Konfiguracija snimaka",
+ "desc": "Slanje na Frigate+ zahtijeva da su u tvojoj konfiguraciji omogućeni i snapshotovi i clean_copy snapshotovi.",
+ "cleanCopyWarning": "Neke kamere imaju omogućene snimke, ali je čista kopija onemogućena. Morate omogućiti clean_copy u konfiguraciji za snimke da biste mogli slati slike s tih kamera na Frigate+.",
+ "table": {
+ "camera": "Kamera",
+ "snapshots": "Snimke",
+ "cleanCopySnapshots": "clean_copy Snimke"
+ }
+ },
+ "modelInfo": {
+ "title": "Informacije o modelu",
+ "modelType": "Tip modela",
+ "trainDate": "Datum treniranja",
+ "baseModel": "Osnovni model",
+ "plusModelType": {
+ "baseModel": "Osnovni model",
+ "userModel": "Fino podešen"
+ },
+ "supportedDetectors": "Podržani detektori",
+ "cameras": "Kamere",
+ "loading": "Učitavanje informacija o modelu…",
+ "error": "Neuspješno učitavanje informacije o modelu",
+ "availableModels": "Dostupni modeli",
+ "loadingAvailableModels": "Učitavanje dostupnih modela…",
+ "modelSelect": "Dostupne modele na Frigate+ možete odabrati ovdje. Imajte na umu da se mogu odabrati samo modeli kompatibilni s vašom trenutnom konfiguracijom detektora."
+ },
+ "unsavedChanges": "Nespremljene promjene postavki Frigate+",
+ "restart_required": "Potreban je restart (promijenjen model Frigate+)",
+ "toast": {
+ "success": "Frigate+ postavke su spremljene. Ponovno pokrenite Frigate da primijenite promjene.",
+ "error": "Nije uspjelo spremiti promjene konfiguracije: {{errorMessage}}"
+ }
+ },
+ "triggers": {
+ "documentTitle": "Okidači",
+ "semanticSearch": {
+ "title": "Semantičko pretraživanje je onemogućeno",
+ "desc": "Semantičko pretraživanje mora biti omogućeno za korištenje okidača."
+ },
+ "management": {
+ "title": "Okidači",
+ "desc": "Upravljanje okidačima za {{camera}}. Koristite tip sličice za okidanje na sličnim sličicama kao odabrani praćeni objekt, a tip opisa za okidanje na sličnim opisima teksta koji ste odredili."
+ },
+ "addTrigger": "Dodaj okidač",
+ "table": {
+ "name": "Ime",
+ "type": "Tip",
+ "content": "Sadržaj",
+ "threshold": "Prag",
+ "actions": "Radnje",
+ "noTriggers": "Nema konfiguriranih okidača za ovu kameru.",
+ "edit": "Uređivanje",
+ "deleteTrigger": "Okidač za brisanje",
+ "lastTriggered": "Zadnji put okinut"
+ },
+ "type": {
+ "thumbnail": "Sličica",
+ "description": "Opis"
+ },
+ "actions": {
+ "notification": "Pošalji obavijest",
+ "sub_label": "Dodaj podoznaku",
+ "attribute": "Dodaj atribut"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Kreiraj okidač",
+ "desc": "Kreirajte okidač za kameru {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Uredi okidač",
+ "desc": "Uredi postavke za okidač na kameri {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Obriši okidač",
+ "desc": "Jeste li sigurni da želite izbrisati okidač {{triggerName}}? Ova radnja se ne može poništiti."
+ },
+ "form": {
+ "name": {
+ "title": "Ime",
+ "placeholder": "Unesite ime okidača",
+ "description": "Unesite jedinstveno ime ili opis kako biste identificirali ovaj okidač",
+ "error": {
+ "minLength": "Polje mora imati najmanje 2 znaka.",
+ "invalidCharacters": "Polje može sadržavati samo slova, brojeve, podcrte i crtice.",
+ "alreadyExists": "Okidač s ovim imenom već postoji za ovu kameru."
+ }
+ },
+ "enabled": {
+ "description": "Omogućite ili onemogućite ovaj okidač"
+ },
+ "type": {
+ "title": "Tip",
+ "placeholder": "Odaberite tip okidača",
+ "description": "Okini kada se detektira sličan opis praćenog objekta",
+ "thumbnail": "Okini kada se detektira sličan sličica praćenog objekta"
+ },
+ "content": {
+ "title": "Sadržaj",
+ "imagePlaceholder": "Odaberi sličicu",
+ "textPlaceholder": "Unesi tekstualni sadržaj",
+ "imageDesc": "Prikazuje se samo najnovijih 100 sličica. Ako ne možete pronaći željenu sličicu, molimo pregledajte ranije objekte u Explore i postavite okidač iz izbornika tamo.",
+ "textDesc": "Unesite tekst kako biste okinuli ovu radnju kada se detektira sličan opis praćenog objekta.",
+ "error": {
+ "required": "Sadržaj je obavezan."
+ }
+ },
+ "threshold": {
+ "title": "Prag",
+ "desc": "Postavite prag sličnosti za ovaj okidač. Viši prag znači da je potrebno bliže podudaranje da bi se okidač aktivirao.",
+ "error": {
+ "min": "Prag mora biti najmanje 0",
+ "max": "Prag mora biti najviše 1"
+ }
+ },
+ "actions": {
+ "title": "Radnje",
+ "desc": "Prema zadanim postavkama, Frigate šalje MQTT poruku za sve okidače. Podoznake dodaju ime okidača na oznaku objekta, a atributi su pretraživi metapodaci pohranjeni zasebno u metapodacima praćenih objekata.",
+ "error": {
+ "min": "Mora se odabrati barem jedna radnja."
+ }
+ }
+ }
+ },
+ "wizard": {
+ "title": "Stvori okidač",
+ "step1": {
+ "description": "Konfigurirajte osnovne postavke za svoj okidač."
+ },
+ "step2": {
+ "description": "Postavite sadržaj koji će okinuti ovu radnju."
+ },
+ "step3": {
+ "description": "Konfigurirajte prag i akcije za ovaj okidač."
+ },
+ "steps": {
+ "nameAndType": "Naziv i tip",
+ "configureData": "Konfiguriraj podatke",
+ "thresholdAndActions": "Prag i akcije"
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Okidač {{name}} uspješno stvoren.",
+ "updateTrigger": "Okidač {{name}} je uspješno ažuriran.",
+ "deleteTrigger": "Okidač {{name}} uspješno izbrisan."
+ },
+ "error": {
+ "createTriggerFailed": "Neuspješno stvaranje okidača: {{errorMessage}}",
+ "updateTriggerFailed": "Neuspješno ažuriranje okidača: {{errorMessage}}",
+ "deleteTriggerFailed": "Neuspješno brisanje okidača: {{errorMessage}}"
+ }
+ }
}
}
diff --git a/web/public/locales/hr/views/system.json b/web/public/locales/hr/views/system.json
index 417209030..880eca7d2 100644
--- a/web/public/locales/hr/views/system.json
+++ b/web/public/locales/hr/views/system.json
@@ -1,25 +1,208 @@
{
"documentTitle": {
- "cameras": "Statistika kamera - Frigate",
- "general": "Generalne statistike - Frigate",
+ "cameras": "Statistika Kamera - Frigate",
+ "general": "Opća Statistika - Frigate",
"logs": {
- "go2rtc": "Go2RTC dnevnik - Frigate",
- "nginx": "Nginx dnevnik - Frigate",
- "frigate": "Frigate logovi - Frigate"
+ "go2rtc": "Zapisnici Go2RTC - Frigate",
+ "nginx": "Zapisnici Nginx - Frigate",
+ "frigate": "Zapisnici Frigate - Frigate"
},
- "storage": "Statistika pohrane - Frigate",
- "enrichments": "Statistika obogaćivanja - Frigate"
+ "storage": "Statistika Pohrane - Frigate",
+ "enrichments": "Statistika Obogaćenja - Frigate"
},
"title": "Sustav",
"logs": {
"download": {
- "label": "Preuzmi dnevnik"
+ "label": "Preuzmi Zapisnike"
},
"type": {
- "label": "Vrsta",
+ "label": "Tip",
"timestamp": "Vremenska oznaka",
"tag": "Oznaka",
"message": "Poruka"
+ },
+ "copy": {
+ "label": "Kopiraj u međuspremnik",
+ "success": "Zapisnici kopirani u međuspremnik",
+ "error": "Nije moguće kopirati zapisnike u međuspremnik"
+ },
+ "tips": "Zapisnici se prenose sa servera",
+ "toast": {
+ "error": {
+ "fetchingLogsFailed": "Greška pri dohvaćanju zapisnika: {{errorMessage}}",
+ "whileStreamingLogs": "Greška tijekom prijenosa zapisnika: {{errorMessage}}"
+ }
+ }
+ },
+ "metrics": "Metrike sustava",
+ "general": {
+ "title": "Općenito",
+ "detector": {
+ "title": "Detektori",
+ "inferenceSpeed": "Brzina inferencije detektora",
+ "temperature": "Temperatura detektora",
+ "cpuUsage": "Upotreba CPU-a detektora",
+ "cpuUsageInformation": "CPU korišten za pripremu ulaznih i izlaznih podataka za/od modela detekcije. Ova vrijednost ne mjeri korištenje za inferenciju, čak ni ako se koristi GPU ili akcelerator.",
+ "memoryUsage": "Upotreba memorije detektora"
+ },
+ "hardwareInfo": {
+ "title": "Informacije o hardveru",
+ "gpuUsage": "Upotreba GPU-a",
+ "gpuMemory": "Memorija GPU-a",
+ "gpuEncoder": "GPU Encoder",
+ "gpuDecoder": "GPU Decoder",
+ "gpuInfo": {
+ "vainfoOutput": {
+ "title": "Vainfo Izlaz",
+ "returnCode": "Povratni kod: {{code}}",
+ "processOutput": "Izlaz procesa:",
+ "processError": "Greška procesa:"
+ },
+ "nvidiaSMIOutput": {
+ "title": "Nvidia SMI Izlaz",
+ "name": "Naziv: {{name}}",
+ "driver": "Driver: {{driver}}",
+ "cudaComputerCapability": "CUDA Compute Capability: {{cuda_compute}}",
+ "vbios": "VBios Informacije: {{vbios}}"
+ },
+ "closeInfo": {
+ "label": "Zatvori informacije o GPU-u"
+ },
+ "copyInfo": {
+ "label": "Kopiraj informacije o GPU-u"
+ },
+ "toast": {
+ "success": "Informacije o GPU-u kopirane u međuspremnik"
+ }
+ },
+ "npuUsage": "Upotreba NPU-a",
+ "npuMemory": "Memorija NPU-a",
+ "intelGpuWarning": {
+ "title": "Upozorenje Intel GPU Statistika",
+ "message": "Statistika GPU-a nije dostupna",
+ "description": "Ovo je poznata greška u Intelovim alatima za izvještavanje GPU statistike (intel_gpu_top) gdje će se podaci prekinuti i stalno prikazivati 0% korištenja GPU-a, čak i kada hardversko ubrzanje i detekcija objekata pravilno rade na (i)GPU-u. Ovo nije greška Frigate-a. Možete ponovno pokrenuti host da privremeno riješite problem i potvrdite da GPU radi ispravno. Ovo ne utječe na performanse."
+ }
+ },
+ "otherProcesses": {
+ "title": "Ostali Procesi",
+ "processCpuUsage": "Upotreba CPU-a procesa",
+ "processMemoryUsage": "Upotreba memorije procesa",
+ "series": {
+ "go2rtc": "go2rtc",
+ "recording": "snimanje",
+ "review_segment": "pregled segmenta",
+ "embeddings": "ugrađivanja",
+ "audio_detector": "audio detektor"
+ }
+ }
+ },
+ "storage": {
+ "title": "Pohrana",
+ "overview": "Pregled",
+ "recordings": {
+ "title": "Snimke",
+ "tips": "Ova vrijednost predstavlja ukupno korištenje prostora za snimke u Frigate bazi podataka. Frigate ne prati korištenje prostora za sve datoteke na disku.",
+ "earliestRecording": "Najranija dostupna snimka:"
+ },
+ "shm": {
+ "title": "SHM (zajednička memorija) alokacija",
+ "warning": "Trenutna veličina SHM od {{total}} MB je premala. Povećajte je na najmanje {{min_shm}} MB."
+ },
+ "cameraStorage": {
+ "title": "Pohrana Kamere",
+ "camera": "Kamera",
+ "unusedStorageInformation": "Informacije o neiskorištenom prostoru",
+ "storageUsed": "Pohrana",
+ "percentageOfTotalUsed": "Postotak od ukupnog",
+ "bandwidth": "Propusnost",
+ "unused": {
+ "title": "Neiskorišteno",
+ "tips": "Ova vrijednost možda ne prikazuje točno slobodan prostor dostupan Frigate-u ako imate druge datoteke pohranjene na disku osim Frigate snimaka. Frigate ne prati korištenje prostora izvan svojih snimki."
+ }
+ }
+ },
+ "cameras": {
+ "title": "Kamere",
+ "overview": "Pregled",
+ "info": {
+ "aspectRatio": "Omjer stranica",
+ "cameraProbeInfo": "{{camera}} Informacije ispitane od kamere",
+ "streamDataFromFFPROBE": "Podaci emitiranja dohvaćeni su pomoću ffprobe.",
+ "fetching": "Dohvaćanje podataka kamere",
+ "stream": "Emitiranje {{idx}}",
+ "video": "Video:",
+ "codec": "Kodek:",
+ "resolution": "Rezolucija:",
+ "fps": "FPS:",
+ "unknown": "Nepoznato",
+ "audio": "Audio:",
+ "error": "Greška: {{error}}",
+ "tips": {
+ "title": "Informacije Ispitivanja Kamere"
+ }
+ },
+ "framesAndDetections": "Okviri / Detekcije",
+ "label": {
+ "camera": "kamera",
+ "detect": "detekcija",
+ "skipped": "preskočeno",
+ "ffmpeg": "FFmpeg",
+ "capture": "snimanje",
+ "overallFramesPerSecond": "ukupni okviri po sekundi",
+ "overallDetectionsPerSecond": "ukupne detekcije po sekundi",
+ "overallSkippedDetectionsPerSecond": "ukupne preskočene detekcije po sekundi",
+ "cameraFfmpeg": "{{camName}} FFmpeg",
+ "cameraCapture": "{{camName}} snimanje",
+ "cameraDetect": "{{camName}} detekcija",
+ "cameraFramesPerSecond": "{{camName}} okviri po sekundi",
+ "cameraDetectionsPerSecond": "{{camName}} detekcije po sekundi",
+ "cameraSkippedDetectionsPerSecond": "{{camName}} preskočene detekcije po sekundi"
+ },
+ "toast": {
+ "success": {
+ "copyToClipboard": "Podaci probe kopirani u međuspremnik."
+ },
+ "error": {
+ "unableToProbeCamera": "Nije moguće probati kameru: {{errorMessage}}"
+ }
+ }
+ },
+ "lastRefreshed": "Zadnje osvježavanje: ",
+ "stats": {
+ "ffmpegHighCpuUsage": "{{camera}} ima visoku upotrebu CPU-a za FFmpeg ({{ffmpegAvg}}%)",
+ "detectHighCpuUsage": "{{camera}} ima visoku upotrebu CPU-a za detekciju ({{detectAvg}}%)",
+ "healthy": "Sustav je zdrav",
+ "reindexingEmbeddings": "Reindeksiranje embeddings ({{processed}}% završeno)",
+ "cameraIsOffline": "{{camera}} je offline",
+ "detectIsSlow": "{{detect}} je sporo ({{speed}} ms)",
+ "detectIsVerySlow": "{{detect}} je vrlo sporo ({{speed}} ms)",
+ "shmTooLow": "/dev/shm alokacija ({{total}} MB) treba biti povećana na najmanje {{min}} MB."
+ },
+ "enrichments": {
+ "title": "Obogaćenja",
+ "infPerSecond": "Inferencija po sekundi",
+ "averageInf": "Prosječno vrijeme inferencije",
+ "embeddings": {
+ "image_embedding": "Ugrađivanja slike",
+ "text_embedding": "Ugrađivanja teksta",
+ "face_recognition": "Prepoznavanje lica",
+ "plate_recognition": "Prepoznavanje registarskih pločica",
+ "image_embedding_speed": "Brzina Image Embedding",
+ "face_embedding_speed": "Brzina Face Embedding",
+ "face_recognition_speed": "Brzina prepoznavanja lica",
+ "plate_recognition_speed": "Brzina prepoznavanja registarskih pločica",
+ "text_embedding_speed": "Brzina Text Embedding",
+ "yolov9_plate_detection_speed": "Brzina YOLOv9 prepoznavanja pločica",
+ "yolov9_plate_detection": "YOLOv9 Prepoznavanje pločica",
+ "review_description": "Opis Pregleda",
+ "review_description_speed": "Brzina Opisa Pregleda",
+ "review_description_events_per_second": "Opis Pregleda",
+ "object_description": "Opis Objekta",
+ "object_description_speed": "Brzina Opisa Objekta",
+ "object_description_events_per_second": "Opis Objekta",
+ "classification": "{{name}} Klasifikacija",
+ "classification_speed": "Brzina {{name}} Klasifikacije",
+ "classification_events_per_second": "{{name}} Klasifikacija po događajima po sekundi"
}
}
}
diff --git a/web/public/locales/hu/audio.json b/web/public/locales/hu/audio.json
index cc73f3ccc..7f31e0459 100644
--- a/web/public/locales/hu/audio.json
+++ b/web/public/locales/hu/audio.json
@@ -425,5 +425,6 @@
"crack": "Törés",
"chink": "Csörömpölés",
"shatter": "Összetörés",
- "field_recording": "Helyszíni felvétel"
+ "field_recording": "Helyszíni felvétel",
+ "noise": "Zaj"
}
diff --git a/web/public/locales/hu/common.json b/web/public/locales/hu/common.json
index 99e0450c2..42a9df69a 100644
--- a/web/public/locales/hu/common.json
+++ b/web/public/locales/hu/common.json
@@ -72,7 +72,10 @@
"24hour": "MMM d, HH:mm",
"12hour": "MMM d, h:mm aaa"
},
- "formattedTimestampMonthDay": "MMM d"
+ "formattedTimestampMonthDay": "MMM d",
+ "inProgress": "Folyamatban",
+ "invalidStartTime": "Érvénytelen kezdeti idő",
+ "never": "Soha"
},
"menu": {
"darkMode": {
@@ -269,7 +272,8 @@
"next": "Következő"
},
"label": {
- "back": "Vissza"
+ "back": "Vissza",
+ "all": "Mind"
},
"readTheDocumentation": "Olvassa el a dokumentációt",
"information": {
diff --git a/web/public/locales/hu/components/filter.json b/web/public/locales/hu/components/filter.json
index 8af6361f4..3ec9ee2da 100644
--- a/web/public/locales/hu/components/filter.json
+++ b/web/public/locales/hu/components/filter.json
@@ -132,5 +132,9 @@
},
"count_one": "{{count}} Osztály",
"count_other": "{{count}} Osztályok"
+ },
+ "attributes": {
+ "label": "Osztályozási attribútumok",
+ "all": "Minden attribútum"
}
}
diff --git a/web/public/locales/hu/views/classificationModel.json b/web/public/locales/hu/views/classificationModel.json
index 5e9d6f58c..be35c7a4b 100644
--- a/web/public/locales/hu/views/classificationModel.json
+++ b/web/public/locales/hu/views/classificationModel.json
@@ -1,18 +1,58 @@
{
- "documentTitle": "Osztályozási modellek",
+ "documentTitle": "Osztályozási modellek - Frigate",
"button": {
"deleteClassificationAttempts": "Osztályozási képek törlése",
"deleteImages": "Képek törlése",
"trainModel": "Modell betanítása",
"deleteModels": "Modellek törlése",
- "editModel": "Modell szerkesztése"
+ "editModel": "Modell szerkesztése",
+ "renameCategory": "Osztály átnevezése",
+ "deleteCategory": "Osztály törlése",
+ "addClassification": "Osztályozás hozzáadása"
},
"toast": {
"success": {
"deletedImage": "Törölt képek",
"deletedModel_one": "Sikeresen törölt {{count}} modellt",
"deletedModel_other": "",
- "categorizedImage": "A kép sikeresen osztályozva"
+ "categorizedImage": "A kép sikeresen osztályozva",
+ "deletedCategory": "Osztály törlése",
+ "trainedModel": "Sikeresen betanított modell.",
+ "trainingModel": "A modell tanítás sikeresen megkezdődött.",
+ "updatedModel": "Modellkonfiguráció sikeresen frissítve",
+ "renamedCategory": "Sikeresen átneveztük az osztályt {{name}} névre"
+ },
+ "error": {
+ "deleteImageFailed": "Törlés sikertelen: {{errorMessage}}",
+ "deleteCategoryFailed": "Nem sikerült törölni az osztályt: {{errorMessage}}"
}
+ },
+ "details": {
+ "none": "Nincs",
+ "unknown": "Ismeretlen",
+ "scoreInfo": "A pontszám az objektum összes észlelésében mért átlagos osztályozási megbízhatóságot jelöli."
+ },
+ "edit": {
+ "title": "Osztályozási modell szerkesztése"
+ },
+ "wizard": {
+ "step1": {
+ "name": "Név"
+ },
+ "step2": {
+ "cameras": "Kamerák"
+ }
+ },
+ "tooltip": {
+ "trainingInProgress": "A modell betanítás alatt van",
+ "noNewImages": "Nincsenek új képek a betanításhoz. Először osztályozzon több képet az adathalmazban.",
+ "noChanges": "Az adathalmazban nem történt változás az utolsó betanítás óta.",
+ "modelNotReady": "A modell nem áll készen a betanításra"
+ },
+ "menu": {
+ "objects": "Objektumok"
+ },
+ "train": {
+ "titleShort": "Friss"
}
}
diff --git a/web/public/locales/hu/views/events.json b/web/public/locales/hu/views/events.json
index abea6b464..123e32cc3 100644
--- a/web/public/locales/hu/views/events.json
+++ b/web/public/locales/hu/views/events.json
@@ -3,7 +3,11 @@
"empty": {
"detection": "Nincs megnézendő észlelés",
"alert": "Nincs megnézendő riasztás",
- "motion": "Nem található mozgás"
+ "motion": "Nem található mozgás",
+ "recordingsDisabled": {
+ "title": "A felvétel készítést engedélyezni kell",
+ "description": "Csak akkor hozhatók létre áttekintési elemek egy kamerához, ha az adott kamerához engedélyezve vannak a felvételek."
+ }
},
"detections": "Észlelések",
"motion": {
@@ -37,5 +41,18 @@
"selected_other": "{{count}} kiválasztva",
"suspiciousActivity": "Gyanús Tevékenység",
"threateningActivity": "Fenyegető Tevékenység",
- "zoomIn": "Nagyítás"
+ "zoomIn": "Nagyítás",
+ "zoomOut": "Kicsinyítés",
+ "detail": {
+ "trackedObject_other": "{{count}} objektum",
+ "label": "Részletes",
+ "noDataFound": "Nincsenek részletes adatok áttekintésre",
+ "aria": "Részletes nézet kapcsolása",
+ "trackedObject_one": "{{count}} objektum",
+ "noObjectDetailData": "Nincsenek elérhető objektumrészlet adatok.",
+ "settings": "Részletes nézet beállításai",
+ "alwaysExpandActive": {
+ "title": "Mindig kibontja az aktív részt"
+ }
+ }
}
diff --git a/web/public/locales/hu/views/explore.json b/web/public/locales/hu/views/explore.json
index cf811cdef..e01a1661b 100644
--- a/web/public/locales/hu/views/explore.json
+++ b/web/public/locales/hu/views/explore.json
@@ -213,7 +213,9 @@
"video": "videó",
"object_lifecycle": "tárgy életciklus",
"details": "részletek",
- "snapshot": "pillanatfelvétel"
+ "snapshot": "pillanatfelvétel",
+ "thumbnail": "bélyegkép",
+ "tracking_details": "követési adatok"
},
"trackedObjectDetails": "Követett Tárgy Részletei",
"exploreMore": "Fedezzen fel több {{label}} tárgyat",
@@ -222,5 +224,21 @@
},
"concerns": {
"label": "Aggodalmak"
+ },
+ "trackingDetails": {
+ "lifecycleItemDesc": {
+ "active": "{{label}} aktív lett",
+ "attribute": {
+ "other": "{{label}} felismerve mint {{attribute}}"
+ },
+ "external": "{{label}} érzékelve",
+ "header": {
+ "zones": "Zónák",
+ "ratio": "Arány",
+ "area": "Terület"
+ }
+ },
+ "title": "Követési adatok",
+ "noImageFound": "Nem található kép ehhez az időbélyeghez."
}
}
diff --git a/web/public/locales/hu/views/faceLibrary.json b/web/public/locales/hu/views/faceLibrary.json
index 4f9331f87..788b0caea 100644
--- a/web/public/locales/hu/views/faceLibrary.json
+++ b/web/public/locales/hu/views/faceLibrary.json
@@ -90,9 +90,10 @@
"nofaces": "Nincs elérhető arc",
"documentTitle": "Arc könyvtár - Frigate",
"train": {
- "title": "Tanít",
+ "title": "Friss felismerések",
"empty": "Nincs friss arcfelismerés",
- "aria": "Válassza ki a tanítást"
+ "aria": "Válassza ki a tanítást",
+ "titleShort": "Friss"
},
"pixels": "{{area}}px",
"selectItem": "KIválasztani {{item}}-et"
diff --git a/web/public/locales/hu/views/search.json b/web/public/locales/hu/views/search.json
index 185a060e5..488ad43c3 100644
--- a/web/public/locales/hu/views/search.json
+++ b/web/public/locales/hu/views/search.json
@@ -26,7 +26,8 @@
"max_speed": "Maximális Sebesség",
"recognized_license_plate": "Felismert Rendszám",
"has_clip": "Van Klip",
- "has_snapshot": "Van pillanatképe"
+ "has_snapshot": "Van pillanatképe",
+ "attributes": "Tulajdonságok"
},
"searchType": {
"description": "Leírás",
diff --git a/web/public/locales/hu/views/settings.json b/web/public/locales/hu/views/settings.json
index c36e9a53f..2f36708b5 100644
--- a/web/public/locales/hu/views/settings.json
+++ b/web/public/locales/hu/views/settings.json
@@ -6,7 +6,7 @@
"classification": "Osztályozási beállítások - Frigate",
"masksAndZones": "Maszk és zónaszerkesztő - Frigate",
"object": "Hibakeresés - Frigate",
- "general": "Áltlános Beállítások - Frigate",
+ "general": "Felhasználói felület beállításai - Frigate",
"frigatePlus": "Frigate+ beállítások - Frigate",
"notifications": "Értesítések beállítása - Frigate",
"motionTuner": "Mozgás Hangoló - Frigate",
@@ -778,6 +778,12 @@
"semanticSearch": {
"title": "Szemantikus keresés le van tiltva",
"desc": "A Triggerek használatához engedélyezni kell a szemantikus keresést."
+ },
+ "wizard": {
+ "steps": {
+ "nameAndType": "Név és típus",
+ "configureData": "Configurációs adatok"
+ }
}
},
"roles": {
diff --git a/web/public/locales/hu/views/system.json b/web/public/locales/hu/views/system.json
index fffa798a3..204d85571 100644
--- a/web/public/locales/hu/views/system.json
+++ b/web/public/locales/hu/views/system.json
@@ -121,12 +121,19 @@
"gpuEncoder": "GPU Enkóder",
"gpuDecoder": "GPU Dekóder",
"npuUsage": "NPU Kihasználtság",
- "npuMemory": "NPU Memória"
+ "npuMemory": "NPU Memória",
+ "intelGpuWarning": {
+ "message": "GPU statisztika nem érhető el"
+ }
},
"otherProcesses": {
"processMemoryUsage": "Folyamat Memória Kihasználtság",
"title": "Egyéb Folyamatok",
- "processCpuUsage": "Folyamat CPU Kihasználtság"
+ "processCpuUsage": "Folyamat CPU Kihasználtság",
+ "series": {
+ "go2rtc": "go2rtc",
+ "recording": "felvétel"
+ }
}
},
"storage": {
diff --git a/web/public/locales/id/audio.json b/web/public/locales/id/audio.json
index 0f759c193..cb3f2539f 100644
--- a/web/public/locales/id/audio.json
+++ b/web/public/locales/id/audio.json
@@ -85,5 +85,7 @@
"snoring": "Ngorok",
"cough": "Batuk",
"clapping": "Tepukan",
- "camera": "Kamera"
+ "camera": "Kamera",
+ "wheeze": "Nafas",
+ "gasp": "Tersedak"
}
diff --git a/web/public/locales/id/common.json b/web/public/locales/id/common.json
index 34ededad1..b1498de07 100644
--- a/web/public/locales/id/common.json
+++ b/web/public/locales/id/common.json
@@ -10,7 +10,22 @@
"last7": "7 hari terakhir",
"last14": "14 hari terakhir",
"last30": "30 hari terakhir",
- "thisWeek": "Minggu Ini"
+ "thisWeek": "Minggu Ini",
+ "never": "Tidak Pernah",
+ "lastWeek": "Minggu Lalu",
+ "thisMonth": "Bulan Ini",
+ "lastMonth": "Bulan Lalu",
+ "5minutes": "5 menit",
+ "10minutes": "10 menit",
+ "30minutes": "30 menit",
+ "1hour": "1 jam",
+ "12hours": "12 jam",
+ "24hours": "24 jam",
+ "pm": "pm",
+ "am": "am",
+ "yr": "{{time}} tahun",
+ "year_other": "{{time}} tahun",
+ "mo": "{{time}} bulan"
},
"readTheDocumentation": "Baca dokumentasi"
}
diff --git a/web/public/locales/id/components/camera.json b/web/public/locales/id/components/camera.json
index 9da7f9f2d..de7759f34 100644
--- a/web/public/locales/id/components/camera.json
+++ b/web/public/locales/id/components/camera.json
@@ -16,8 +16,38 @@
"errorMessage": {
"mustLeastCharacters": "Nama grup kamera minimal harus 2 karakter.",
"exists": "Nama grup kamera sudah ada.",
- "nameMustNotPeriod": "Nama grup kamera tidak boleh ada titik."
+ "nameMustNotPeriod": "Nama grup kamera tidak boleh ada titik.",
+ "invalid": "Nama grup kamera tidak valid."
+ }
+ },
+ "cameras": {
+ "label": "Kamera",
+ "desc": "Pilih kamera untuk grup ini."
+ },
+ "icon": "Ikon",
+ "success": "Grup kamera {{name}} telah disimpan.",
+ "camera": {
+ "birdseye": "Mata Elang",
+ "setting": {
+ "label": "Pengaturan Streaming Kamera",
+ "title": "Pengaturan Kamera {{cameraName}}",
+ "desc": "Ubah pengaturan streaming untuk dasbor grup kamera ini. Pengaturan ini spesifik untuk perangkat / browser tertentu.",
+ "audioIsAvailable": "Terdapat audio untuk stream ini",
+ "audioIsUnavailable": "Tidak terdapat audio untuk stream ini",
+ "audio": {
+ "tips": {
+ "title": "Audio harus dikeluarkan dari kamera Anda dan dikonfigurasi di go2rtc untuk stream ini."
+ }
+ },
+ "stream": "Siaran",
+ "placeholder": "Pilih stream",
+ "streamMethod": {
+ "label": "Metode Streaming"
+ }
}
}
+ },
+ "debug": {
+ "boundingBox": "Batas Kotak"
}
}
diff --git a/web/public/locales/id/components/dialog.json b/web/public/locales/id/components/dialog.json
index 1a2c284fb..07eda62d2 100644
--- a/web/public/locales/id/components/dialog.json
+++ b/web/public/locales/id/components/dialog.json
@@ -20,8 +20,43 @@
"ask_a": "Apakah objek ini adalah sebuah{{label}}?",
"ask_an": "Apakah objek ini {{label}}?",
"ask_full": "Apakah ini object {{untranslatedLabel}} ({{translatedLabel}})?"
+ },
+ "state": {
+ "submitted": "Terkirim"
}
}
+ },
+ "video": {
+ "viewInHistory": "Lihat di Histori"
+ }
+ },
+ "export": {
+ "time": {
+ "fromTimeline": "Pilih dari Linimasa",
+ "lastHour_other": "{{count}} Jam Terakhir",
+ "custom": "Kustom",
+ "start": {
+ "title": "Waktu Mulai",
+ "label": "Pilih Waktu Mulai"
+ },
+ "end": {
+ "title": "Waktu Akhir",
+ "label": "Pilih Waktu Akhir"
+ }
+ },
+ "name": {
+ "placeholder": "Nama Ekspor"
+ },
+ "select": "Pilih",
+ "export": "Ekspor",
+ "selectOrExport": "Pilih atau Ekspor",
+ "toast": {
+ "success": "Berhasil memulai ekspor. Lihat file pada halaman ekspor."
+ }
+ },
+ "search": {
+ "saveSearch": {
+ "overwrite": "{{searchName}} sudah ada. Menyimpan akan menimpa file yang sudah ada."
}
}
}
diff --git a/web/public/locales/id/components/filter.json b/web/public/locales/id/components/filter.json
index 070963bad..8b39304c4 100644
--- a/web/public/locales/id/components/filter.json
+++ b/web/public/locales/id/components/filter.json
@@ -23,5 +23,35 @@
},
"count_one": "{{count}} Kelas",
"count_other": "{{count}} Kelas"
+ },
+ "dates": {
+ "selectPreset": "Pilih preset…",
+ "all": {
+ "title": "Semua Tanggal",
+ "short": "Tanggal"
+ }
+ },
+ "more": "Lebih Banyak",
+ "reset": {
+ "label": "Atur ulang filter ke default"
+ },
+ "timeRange": "Rentang Waktu",
+ "subLabels": {
+ "label": "Sublabel",
+ "all": "Semua Sublabel"
+ },
+ "attributes": {
+ "label": "Klasifikasi Atribut",
+ "all": "Semua Atribut"
+ },
+ "score": "Skor",
+ "estimatedSpeed": "Perkiraan Kecepatan {{unit}}",
+ "features": {
+ "label": "Fitur"
+ },
+ "cameras": {
+ "all": {
+ "short": "Kamera"
+ }
}
}
diff --git a/web/public/locales/id/components/player.json b/web/public/locales/id/components/player.json
index 151fd41ce..0372a797c 100644
--- a/web/public/locales/id/components/player.json
+++ b/web/public/locales/id/components/player.json
@@ -16,6 +16,36 @@
"streamType": {
"title": "Tipe stream:",
"short": "Jenis"
+ },
+ "bandwidth": {
+ "title": "Bandwith:",
+ "short": "Bandwith"
+ },
+ "latency": {
+ "title": "Latensi:",
+ "value": "{{seconds}} detik",
+ "short": {
+ "title": "Latensi",
+ "value": "{{seconds}} detik"
+ }
+ },
+ "totalFrames": "Total Frame:",
+ "droppedFrames": {
+ "title": "Frame Terbuang:",
+ "short": {
+ "title": "Terbuang",
+ "value": "{{droppedFrames}} frame"
+ }
+ },
+ "decodedFrames": "Decoded Frames:",
+ "droppedFrameRate": "Frame Rate Terbuang:"
+ },
+ "toast": {
+ "success": {
+ "submittedFrigatePlus": "Berhasil mengirim frame ke Frigate+"
+ },
+ "error": {
+ "submitFrigatePlusFailed": "Gagal mengirim frame ke Frigate+"
}
}
}
diff --git a/web/public/locales/id/objects.json b/web/public/locales/id/objects.json
index 43d98cdde..e56f051d0 100644
--- a/web/public/locales/id/objects.json
+++ b/web/public/locales/id/objects.json
@@ -17,5 +17,15 @@
"goat": "Kambing",
"sheep": "Domba",
"bird": "Burung",
- "street_sign": "Rambu Jalan"
+ "street_sign": "Rambu Jalan",
+ "stop_sign": "Tanda Stop",
+ "parking_meter": "Parkir Meter",
+ "bench": "Kursi",
+ "cow": "Sapi",
+ "elephant": "Gajah",
+ "bear": "Beruang",
+ "zebra": "Zebra",
+ "giraffe": "Jerapah",
+ "hat": "Topi",
+ "backpack": "Tas"
}
diff --git a/web/public/locales/id/views/classificationModel.json b/web/public/locales/id/views/classificationModel.json
index 6ea3a7915..0f0c01261 100644
--- a/web/public/locales/id/views/classificationModel.json
+++ b/web/public/locales/id/views/classificationModel.json
@@ -12,5 +12,36 @@
"addClassification": "Tambah Klasifikasi",
"deleteModels": "Hapus Model",
"editModel": "Ubah Model"
+ },
+ "tooltip": {
+ "trainingInProgress": "Model dalam training",
+ "noNewImages": "Tidak ada gambar untuk dilatih. Klasifikasikan gambar terlebih dahulu di dataset.",
+ "noChanges": "Tidak ada perubahan dataset sejak latihan terakhir.",
+ "modelNotReady": "Model tidak siap untuk dilatih"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Kelas dihapus",
+ "deletedImage": "Image dihapus",
+ "deletedModel_other": "Berhasil menghapus {{count}} model",
+ "categorizedImage": "Berhasil Mengklasifikasikan Gambar",
+ "trainedModel": "Berhasil melatih model.",
+ "trainingModel": "Berhasil memulai pelatihan model.",
+ "updatedModel": "Berhasil memperbarui konfigurasi model",
+ "renamedCategory": "Berhasil mengganti nama class ke {{name}}"
+ },
+ "error": {
+ "updateModelFailed": "Gagal melakukan perubahan pada model: {{errorMessage}}",
+ "renameCategoryFailed": "Gagal merubah penamaan kelas: {{errorMessage}}",
+ "deleteImageFailed": "Gagal menghapus: {{errorMessage}}",
+ "deleteCategoryFailed": "Gagal menghapus kelas: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Kelas dihapus",
+ "minClassesTitle": "Dilarang menghapus Kelas"
+ },
+ "train": {
+ "titleShort": "Terkini"
}
}
diff --git a/web/public/locales/id/views/events.json b/web/public/locales/id/views/events.json
index 94ee3d47d..19a85885f 100644
--- a/web/public/locales/id/views/events.json
+++ b/web/public/locales/id/views/events.json
@@ -9,7 +9,11 @@
"empty": {
"detection": "Tidak ada deteksi untuk ditinjau",
"alert": "Tidak ada peringatan untuk ditinjau",
- "motion": "Data gerakan tidak ditemukan"
+ "motion": "Data gerakan tidak ditemukan",
+ "recordingsDisabled": {
+ "title": "Perekaman harus di aktifkan",
+ "description": "Ulasan item hanya dapat dibuat untuk kamera jika perekaman diaktifkan untuk kamera tersebut."
+ }
},
"timeline.aria": "Pilih timeline",
"timeline": "Linimasa",
@@ -24,8 +28,8 @@
"label": "Detil",
"noDataFound": "Tidak ada detil data untuk di review",
"aria": "Beralih tampilan detil",
- "trackedObject_one": "objek",
- "trackedObject_other": "objek-objek",
+ "trackedObject_one": "{{count}} objek",
+ "trackedObject_other": "{{count}} objek",
"noObjectDetailData": "Tidak ada data objek detil tersedia.",
"settings": "Pengaturan Tampilan Detil",
"alwaysExpandActive": {
diff --git a/web/public/locales/id/views/explore.json b/web/public/locales/id/views/explore.json
index 979ceaf7b..b93d4bf61 100644
--- a/web/public/locales/id/views/explore.json
+++ b/web/public/locales/id/views/explore.json
@@ -10,12 +10,37 @@
"finishingShortly": "Selesai sesaat lagi",
"step": {
"thumbnailsEmbedded": "Keluku dilampirkan ",
- "descriptionsEmbedded": "Deskripsi terlampir: "
+ "descriptionsEmbedded": "Deskripsi terlampir: ",
+ "trackedObjectsProcessed": "Objek yang dilacak 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.",
+ "setup": {
+ "visionModel": "Model vision",
+ "visionModelFeatureExtractor": "Ekstraktor fitur model visi",
+ "textModel": "Model teks",
+ "textTokenizer": "Teks tokenizer"
+ },
+ "tips": {
+ "context": "Anda mungkin ingin mengindeks ulang embeddings dari objek yang Anda lacak setelah model-model tersebut diunduh."
+ },
+ "error": "Terjadi eror. Periksa log Frigate."
}
},
"details": {
"timestamp": "Stempel waktu"
},
- "exploreMore": "Eksplor lebih jauh objek-objek {{label}}"
+ "exploreMore": "Eksplor lebih jauh objek-objek {{label}}",
+ "trackedObjectDetails": "Detail Objek Terlacak",
+ "type": {
+ "details": "detail",
+ "snapshot": "tangkapan layar",
+ "thumbnail": "thumbnail",
+ "video": "video",
+ "tracking_details": "detail pelacakan"
+ },
+ "trackingDetails": {
+ "title": "Detail Pelacakan"
+ }
}
diff --git a/web/public/locales/id/views/faceLibrary.json b/web/public/locales/id/views/faceLibrary.json
index bde637fa0..70b2a419a 100644
--- a/web/public/locales/id/views/faceLibrary.json
+++ b/web/public/locales/id/views/faceLibrary.json
@@ -36,7 +36,8 @@
"train": {
"title": "Pengenalan Terkini",
"aria": "Pilih pengenalan terkini",
- "empty": "Tidak ada percobaan pengenalan wajah baru-baru ini"
+ "empty": "Tidak ada percobaan pengenalan wajah baru-baru ini",
+ "titleShort": "Terkini"
},
"deleteFaceLibrary": {
"title": "Hapus Nama",
diff --git a/web/public/locales/id/views/live.json b/web/public/locales/id/views/live.json
index 51817a84b..96e457523 100644
--- a/web/public/locales/id/views/live.json
+++ b/web/public/locales/id/views/live.json
@@ -16,7 +16,53 @@
"label": "Klik kotak ini untuk menengahkan kamera",
"enable": "Aktifkan klik untuk bergerak",
"disable": "Non-aktifkan klik untuk bergerak"
+ },
+ "left": {
+ "label": "Geser kamera PTZ ke kiri"
+ },
+ "up": {
+ "label": "Geser kamera PTZ keatas"
+ },
+ "down": {
+ "label": "Geser kamera PTZ kebawah"
+ },
+ "right": {
+ "label": "Geser kamera PTZ ke kanan"
}
- }
+ },
+ "zoom": {
+ "in": {
+ "label": "Perbesar kamera PTZ"
+ },
+ "out": {
+ "label": "Perkecil kamera PTZ"
+ }
+ },
+ "focus": {
+ "in": {
+ "label": "Fokus kamera PTZ kedalam"
+ },
+ "out": {
+ "label": "Fokus kamera PTZ keluar"
+ }
+ },
+ "frame": {
+ "center": {
+ "label": "Klik pada frame untuk menengahkan kamera PTZ"
+ }
+ },
+ "presets": "Preset kamera PTZ"
+ },
+ "camera": {
+ "enable": "Aktifkan Kamera",
+ "disable": "Nonaktifkan Kamera"
+ },
+ "muteCameras": {
+ "enable": "Bisukan Semua Kamera",
+ "disable": "Bunyikan Semua Kamera"
+ },
+ "detect": {
+ "enable": "Aktifkan Pendeteksi",
+ "disable": "Nonaktifkan Pendeteksi"
}
}
diff --git a/web/public/locales/id/views/search.json b/web/public/locales/id/views/search.json
index fbca84c8d..724b2b2d6 100644
--- a/web/public/locales/id/views/search.json
+++ b/web/public/locales/id/views/search.json
@@ -12,7 +12,25 @@
"trackedObjectId": "Tracked Object ID",
"filter": {
"label": {
- "cameras": "Kamera"
+ "cameras": "Kamera",
+ "labels": "Label",
+ "zones": "Zona",
+ "sub_labels": "Sublabel",
+ "attributes": "Atribut",
+ "search_type": "Tipe 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"
+ },
+ "searchType": {
+ "thumbnail": "Tumbnail"
}
}
}
diff --git a/web/public/locales/id/views/settings.json b/web/public/locales/id/views/settings.json
index 45e49fd1e..1a74776d5 100644
--- a/web/public/locales/id/views/settings.json
+++ b/web/public/locales/id/views/settings.json
@@ -11,7 +11,8 @@
"enrichments": "Frigate - Pengaturan Pengayaan",
"cameraManagement": "Pengaturan Kamera - Frigate",
"cameraReview": "Pengaturan Ulasan Kamera - Frigate",
- "frigatePlus": "Pengaturan Frigate+ - Frigate"
+ "frigatePlus": "Pengaturan Frigate+ - Frigate",
+ "notifications": "Pengaturan Notifikasi - Frigate"
},
"menu": {
"cameraManagement": "Manajemen",
@@ -23,7 +24,9 @@
"triggers": "Pemicu",
"users": "Pengguna",
"roles": "Peran",
- "frigateplus": "Frigate+"
+ "frigateplus": "Frigate+",
+ "masksAndZones": "Mask / Zona",
+ "debug": "Debug"
},
"dialog": {
"unsavedChanges": {
diff --git a/web/public/locales/id/views/system.json b/web/public/locales/id/views/system.json
index 9a70ff6ca..7cf1597d5 100644
--- a/web/public/locales/id/views/system.json
+++ b/web/public/locales/id/views/system.json
@@ -15,6 +15,34 @@
"logs": {
"download": {
"label": "Unduh Log"
+ },
+ "copy": {
+ "label": "Salin ke Clipboard",
+ "success": "Log tersalin ke clipboard",
+ "error": "Tidak dapat menyalin ke clipboard"
+ },
+ "type": {
+ "label": "Tipe",
+ "timestamp": "Waktu",
+ "tag": "Tag",
+ "message": "Pesan"
+ },
+ "tips": "Logs sedang berjalan dari server",
+ "toast": {
+ "error": {
+ "fetchingLogsFailed": "Error saat mengambil log: {{errorMessage}}",
+ "whileStreamingLogs": "Eror saat streaming logs: {{errorMessage}}"
+ }
+ }
+ },
+ "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."
}
}
}
diff --git a/web/public/locales/is/audio.json b/web/public/locales/is/audio.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/audio.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/common.json b/web/public/locales/is/common.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/common.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/components/auth.json b/web/public/locales/is/components/auth.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/components/auth.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/components/camera.json b/web/public/locales/is/components/camera.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/components/camera.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/components/dialog.json b/web/public/locales/is/components/dialog.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/components/dialog.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/components/filter.json b/web/public/locales/is/components/filter.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/components/filter.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/components/icons.json b/web/public/locales/is/components/icons.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/components/icons.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/components/input.json b/web/public/locales/is/components/input.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/components/input.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/components/player.json b/web/public/locales/is/components/player.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/components/player.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/objects.json b/web/public/locales/is/objects.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/objects.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/classificationModel.json b/web/public/locales/is/views/classificationModel.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/configEditor.json b/web/public/locales/is/views/configEditor.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/configEditor.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/events.json b/web/public/locales/is/views/events.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/events.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/explore.json b/web/public/locales/is/views/explore.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/explore.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/exports.json b/web/public/locales/is/views/exports.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/exports.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/faceLibrary.json b/web/public/locales/is/views/faceLibrary.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/faceLibrary.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/live.json b/web/public/locales/is/views/live.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/live.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/recording.json b/web/public/locales/is/views/recording.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/recording.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/search.json b/web/public/locales/is/views/search.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/search.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/settings.json b/web/public/locales/is/views/settings.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/settings.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/is/views/system.json b/web/public/locales/is/views/system.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/is/views/system.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/it/common.json b/web/public/locales/it/common.json
index 7fc7fc2bf..f4abd0063 100644
--- a/web/public/locales/it/common.json
+++ b/web/public/locales/it/common.json
@@ -90,7 +90,8 @@
},
"inProgress": "In corso",
"invalidStartTime": "Ora di inizio non valida",
- "invalidEndTime": "Ora di fine non valida"
+ "invalidEndTime": "Ora di fine non valida",
+ "never": "Mai"
},
"button": {
"cancel": "Annulla",
@@ -154,7 +155,8 @@
"show": "Mostra {{item}}",
"ID": "ID",
"none": "Nessuna",
- "all": "Tutte"
+ "all": "Tutte",
+ "other": "Altro"
},
"menu": {
"configuration": "Configurazione",
diff --git a/web/public/locales/it/components/dialog.json b/web/public/locales/it/components/dialog.json
index 5e88d1f7d..b3be02bf5 100644
--- a/web/public/locales/it/components/dialog.json
+++ b/web/public/locales/it/components/dialog.json
@@ -84,7 +84,7 @@
"label": "Mostra statistiche di trasmissione",
"desc": "Abilita questa opzione per visualizzare le statistiche della trasmissione come sovrapposizione sul flusso della telecamera."
},
- "debugView": "Vista correzioni",
+ "debugView": "Visualizzazione debug",
"restreaming": {
"disabled": "La ritrasmissione non è abilitata per questa telecamera.",
"desc": {
diff --git a/web/public/locales/it/views/events.json b/web/public/locales/it/views/events.json
index 623fb1dee..f1a9255f7 100644
--- a/web/public/locales/it/views/events.json
+++ b/web/public/locales/it/views/events.json
@@ -8,7 +8,11 @@
"empty": {
"alert": "Non ci sono avvisi da rivedere",
"detection": "Non ci sono rilevamenti da rivedere",
- "motion": "Nessun dato di movimento trovato"
+ "motion": "Nessun dato di movimento trovato",
+ "recordingsDisabled": {
+ "description": "Gli elementi di revisione possono essere creati per una telecamera solo quando le registrazioni sono abilitate per quella telecamera.",
+ "title": "Le registrazioni devono essere abilitate"
+ }
},
"newReviewItems": {
"label": "Visualizza i nuovi elementi da rivedere",
diff --git a/web/public/locales/it/views/explore.json b/web/public/locales/it/views/explore.json
index 2ec1f4614..498e09465 100644
--- a/web/public/locales/it/views/explore.json
+++ b/web/public/locales/it/views/explore.json
@@ -110,7 +110,10 @@
"title": "Modifica attributi",
"desc": "Seleziona gli attributi di classificazione per questa {{label}}"
},
- "attributes": "Attributi di classificazione"
+ "attributes": "Attributi di classificazione",
+ "title": {
+ "label": "Titolo"
+ }
},
"objectLifecycle": {
"annotationSettings": {
diff --git a/web/public/locales/it/views/live.json b/web/public/locales/it/views/live.json
index c32113e66..42a5264cc 100644
--- a/web/public/locales/it/views/live.json
+++ b/web/public/locales/it/views/live.json
@@ -178,6 +178,16 @@
"restricted": {
"title": "Nessuna telecamera disponibile",
"description": "Non hai l'autorizzazione per visualizzare alcuna telecamera in questo gruppo."
+ },
+ "default": {
+ "title": "Nessuna telecamera configurata",
+ "description": "Per iniziare, collega una telecamera a Frigate.",
+ "buttonText": "Aggiungi telecamera"
+ },
+ "group": {
+ "title": "Nessuna telecamera nel gruppo",
+ "description": "Questo gruppo di telecamere non ha telecamere assegnate o abilitate.",
+ "buttonText": "Gestisci gruppi"
}
},
"snapshot": {
diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json
index 9cdcea5fb..09a26e909 100644
--- a/web/public/locales/it/views/settings.json
+++ b/web/public/locales/it/views/settings.json
@@ -10,7 +10,7 @@
"general": "Impostazioni interfaccia - Frigate",
"frigatePlus": "Impostazioni Frigate+ - Frigate",
"notifications": "Impostazioni di notifiche - Frigate",
- "enrichments": "Impostazioni di miglioramento - Frigate",
+ "enrichments": "Impostazioni Componenti Aggiuntivi - Frigate",
"cameraManagement": "Gestisci telecamere - Frigate",
"cameraReview": "Impostazioni revisione telecamera - Frigate"
},
@@ -87,9 +87,9 @@
"desc": "Mostra un riquadro della regione di interesse inviata al rilevatore di oggetti"
},
"noObjects": "Nessun oggetto",
- "title": "Correzioni",
- "desc": "La vista di correzione mostra una vista in tempo reale degli oggetti tracciati e delle relative statistiche. L'elenco degli oggetti mostra un riepilogo ritardato degli oggetti rilevati.",
- "debugging": "Correzioni",
+ "title": "Debug",
+ "desc": "La vista di debug mostra in tempo reale gli oggetti tracciati e le relative statistiche. L'elenco degli oggetti mostra un riepilogo in differita degli oggetti rilevati.",
+ "debugging": "Debugging",
"objectList": "Elenco degli oggetti",
"mask": {
"desc": "Mostra i poligoni della maschera di movimento",
@@ -377,14 +377,14 @@
"classification": "Classificazione",
"cameras": "Impostazioni telecamera",
"masksAndZones": "Maschere / Zone",
- "debug": "Correzioni",
+ "debug": "Debug",
"users": "Utenti",
"frigateplus": "Frigate+",
- "enrichments": "Miglioramenti",
+ "enrichments": "Componenti Aggiuntivi",
"triggers": "Inneschi",
"roles": "Ruoli",
"cameraManagement": "Gestione",
- "cameraReview": "Rivedi"
+ "cameraReview": "Revisione"
},
"users": {
"dialog": {
@@ -510,7 +510,7 @@
},
"playAlertVideos": {
"label": "Riproduci video di avvisi",
- "desc": "Per impostazione predefinita, gli avvisi recenti nella schermata dal vivo vengono riprodotti come brevi video in ciclo. Disattiva questa opzione per visualizzare solo un'immagine statica degli avvisi recenti su questo dispositivo/browser."
+ "desc": "Per impostazione predefinita, gli avvisi recenti nella dashboard Live vengono riprodotti come piccoli video in loop. Disabilita questa opzione per mostrare solo un'immagine statica degli avvisi recenti su questo dispositivo/browser."
},
"title": "Schermata dal vivo",
"displayCameraNames": {
@@ -708,10 +708,10 @@
},
"enrichments": {
"toast": {
- "success": "Le impostazioni di miglioramento sono state salvate. Riavvia Frigate per applicare le modifiche.",
+ "success": "Le impostazioni dei componenti aggiuntivi sono state salvate. Riavvia Frigate per applicare le modifiche.",
"error": "Impossibile salvare le modifiche alla configurazione: {{errorMessage}}"
},
- "title": "Impostazioni di miglioramento",
+ "title": "Impostazioni Componenti Aggiuntivi",
"semanticSearch": {
"reindexNow": {
"desc": "La reindicizzazione rigenererà gli incorporamenti per tutti gli oggetti tracciati. Questo processo viene eseguito in sottofondo e potrebbe impegnare al massimo la CPU e richiedere un tempo considerevole, a seconda del numero di oggetti tracciati.",
@@ -762,11 +762,11 @@
},
"licensePlateRecognition": {
"desc": "Frigate può riconoscere le targhe dei veicoli e aggiungere automaticamente i caratteri rilevati al campo recognized_license_plate o un nome noto come sub_label agli oggetti di tipo automobile (car). Un caso d'uso comune potrebbe essere la lettura delle targhe delle auto che entrano in un vialetto o che transitano lungo una strada.",
- "title": "Riconoscimento della targa",
+ "title": "Riconoscimento targhe",
"readTheDocumentation": "Leggi la documentazione"
},
- "unsavedChanges": "Modifiche alle impostazioni di miglioramento non salvate",
- "restart_required": "Riavvio richiesto (impostazioni di miglioramento modificate)"
+ "unsavedChanges": "Modifiche alle impostazioni dei Componenti aggiuntivi non salvate",
+ "restart_required": "Riavvio richiesto (impostazioni dei componenti aggiuntivi modificate)"
},
"triggers": {
"documentTitle": "Inneschi",
@@ -961,11 +961,11 @@
"title": "Impostazioni revisione telecamera",
"object_descriptions": {
"title": "Descrizioni oggetti IA generativa",
- "desc": "Abilita/disabilita temporaneamente le descrizioni degli oggetti generate dall'IA per questa telecamera. Se disabilitate, le descrizioni generate dall'IA non verranno richieste per gli oggetti tracciati su questa telecamera."
+ "desc": "Abilita/disabilita temporaneamente le descrizioni degli oggetti generate dall'IA per questa telecamera fino al riavvio di Frigate. Se disabilitate, le descrizioni generate dall'IA non verranno richieste per gli oggetti tracciati su questa telecamera."
},
"review_descriptions": {
"title": "Descrizioni revisioni IA generativa",
- "desc": "Abilita/disabilita temporaneamente le descrizioni delle revisioni generate dall'IA per questa telecamera. Se disabilitate, le descrizioni generate dall'IA non verranno richieste per gli elementi da rivedere su questa telecamera."
+ "desc": "Abilita/disabilita temporaneamente le descrizioni di revisione generate dall'IA per questa telecamera fino al riavvio di Frigate. Se disabilitate, le descrizioni generate dall'IA non saranno richieste per gli elementi di revisione su questa telecamera."
},
"review": {
"title": "Rivedi",
@@ -1278,7 +1278,7 @@
"backToSettings": "Torna alle impostazioni della telecamera",
"streams": {
"title": "Abilita/Disabilita telecamere",
- "desc": "Disattiva temporaneamente una telecamera fino al riavvio di Frigate. La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi di questa telecamera da parte di Frigate. Rilevamento, registrazione e correzioni non saranno disponibili.ffprobe.",
"video": "Wideo:",
"codec": "Kodek:",
@@ -117,12 +125,12 @@
},
"title": "Magazyn kamery",
"camera": "Kamera",
- "storageUsed": "Wykorzystany magazyn",
+ "storageUsed": "Wykorzystana przestrzeń",
"percentageOfTotalUsed": "Procent całości",
"bandwidth": "Przepustowość",
"unusedStorageInformation": "Informacja o niewykorzystanym magazynie"
},
- "title": "Magazyn",
+ "title": "Przestrzeń dyskowa",
"overview": "Przegląd",
"recordings": {
"title": "Nagrania",
@@ -187,7 +195,14 @@
"face_recognition": "Rozpoznawanie twarzy",
"classification_events_per_second": "{{name}} Klasyfikacja zdarzeń na sekundę",
"classification_speed": "{{name}} Szybkość klasyfikacji",
- "classification": "{{name}} Klasyfikacja"
- }
+ "classification": "{{name}} Klasyfikacja",
+ "review_description": "Opis recenzji",
+ "review_description_speed": "Szybkość opisu recenzji",
+ "review_description_events_per_second": "Opis recenzji",
+ "object_description": "Opis obiektu",
+ "object_description_speed": "Szybkość opisu obiektu",
+ "object_description_events_per_second": "Opis obiektu"
+ },
+ "averageInf": "Średni czas wnioskowania"
}
}
diff --git a/web/public/locales/pt-BR/common.json b/web/public/locales/pt-BR/common.json
index e1ab1e525..d9f30b3de 100644
--- a/web/public/locales/pt-BR/common.json
+++ b/web/public/locales/pt-BR/common.json
@@ -78,7 +78,8 @@
"formattedTimestampFilename": {
"12hour": "dd-MM-yy-hh-mm-ss",
"24hour": "dd-MM-yy-HH-mm-ss"
- }
+ },
+ "never": "Nunca"
},
"selectItem": "Selecionar {{item}}",
"unit": {
diff --git a/web/public/locales/pt-BR/components/dialog.json b/web/public/locales/pt-BR/components/dialog.json
index 6f15f9855..c21361f85 100644
--- a/web/public/locales/pt-BR/components/dialog.json
+++ b/web/public/locales/pt-BR/components/dialog.json
@@ -53,12 +53,13 @@
"export": "Exportar",
"selectOrExport": "Selecionar ou Exportar",
"toast": {
- "success": "Exportação iniciada com sucesso. Veja o arquivo na pasta /exports.",
+ "success": "Exportação iniciada com sucesso. Veja o arquivo na tela exportar.",
"error": {
"failed": "Falha em iniciar exportação: {{error}}",
"endTimeMustAfterStartTime": "Tempo de finalização deve ser após tempo de início",
"noVaildTimeSelected": "Nenhuma faixa de tempo válida selecionada"
- }
+ },
+ "view": "Ver"
},
"fromTimeline": {
"saveExport": "Salvar Exportação",
diff --git a/web/public/locales/pt-BR/components/filter.json b/web/public/locales/pt-BR/components/filter.json
index ee84e75d6..cb76078af 100644
--- a/web/public/locales/pt-BR/components/filter.json
+++ b/web/public/locales/pt-BR/components/filter.json
@@ -132,5 +132,9 @@
},
"count_one": "{{count}} Classe",
"count_other": "{{count}} Classes"
+ },
+ "attributes": {
+ "label": "Atributos de Classificação",
+ "all": "Todos os Atributos"
}
}
diff --git a/web/public/locales/pt-BR/views/classificationModel.json b/web/public/locales/pt-BR/views/classificationModel.json
index c90529873..5defd3fcc 100644
--- a/web/public/locales/pt-BR/views/classificationModel.json
+++ b/web/public/locales/pt-BR/views/classificationModel.json
@@ -1,5 +1,5 @@
{
- "documentTitle": "Modelos de Classificação",
+ "documentTitle": "Modelos de Classificação - Frigate",
"button": {
"deleteClassificationAttempts": "Apagar Imagens de Classificação",
"renameCategory": "Renomear Classe",
@@ -28,7 +28,7 @@
"deleteCategoryFailed": "Falha ao deletar classe:{{errorMessage}}",
"categorizeFailed": "Falha ao categorizar imagem:{{errorMessage}}",
"deleteModelFailed": "Falha ao excluir o modelo: {{errorMessage}}",
- "trainingFailed": "Falha ao iniciar o treinamento do modelo: {{errorMessage}}",
+ "trainingFailed": "Treinamento do modelo falhou. Verifique os logs do Frigate para mais detalhes.",
"trainingFailedToStart": "Falha ao iniciar o treinamento do modelo: {{errorMessage}}",
"updateModelFailed": "Falha ao atualizar modelo: {{errorMessage}}",
"renameCategoryFailed": "Falha ao renomear classe: {{errorMessage}}"
@@ -37,19 +37,66 @@
"deleteCategory": {
"title": "Excluir Classe",
"desc": "Tem certeza de que deseja excluir a classe {{name}}? Isso excluirá permanentemente todas as imagens associadas e exigirá o treinamento do modelo novamente.",
- "minClassesTitle": "Não é possível apagar a classe"
+ "minClassesTitle": "Não é possível apagar a classe",
+ "minClassesDesc": "Um modelo de classificação deve ter pelo menos 2 classes. Adicione outra classe antes de excluir esta."
},
"deleteModel": {
"title": "Deletar modelo de classificação",
- "single": "Tem certeza de que deseja excluir {{name}}? Isso excluirá permanentemente todos os dados associados, incluindo imagens e dados de treinamento. Esta ação não pode ser desfeita."
+ "single": "Tem certeza de que deseja excluir {{name}}? Isso excluirá permanentemente todos os dados associados, incluindo imagens e dados de treinamento. Esta ação não pode ser desfeita.",
+ "desc_one": "Tem certeza de que deseja excluir {{count}} modelo? Isso excluirá permanentemente todos os dados associados, incluindo imagens e dados de treinamento. Esta ação não pode ser desfeita.",
+ "desc_many": "Tem certeza de que deseja excluir {{count}} modelos? Isso excluirá permanentemente todos os dados associados, incluindo imagens e dados de treinamento. Esta ação não pode ser desfeita.",
+ "desc_other": "Tem certeza de que deseja excluir {{count}} modelos? Isso excluirá permanentemente todos os dados associados, incluindo imagens e dados de treinamento. Esta ação não pode ser desfeita."
},
"details": {
- "scoreInfo": "A pontuação representa a média de confiança da classificação de todas as detecções deste objeto."
+ "scoreInfo": "A pontuação representa a média de confiança da classificação de todas as detecções deste objeto.",
+ "none": "Nenhum",
+ "unknown": "Desconhecido"
},
"tooltip": {
"trainingInProgress": "O modelo está sendo treinado",
"noNewImages": "Nenhuma nova imagem para treinar. Classifique mais imagens para treinar mais.",
"noChanges": "Nenhuma alteração ao conjunto de dados desde o último treinamento.",
"modelNotReady": "O modelo não está pronto para treinamento"
+ },
+ "deleteTrainImages": {
+ "desc_one": "Tem certeza que deseja deletar {{count}} imagem? Esta ação não pode ser desfeita.",
+ "desc_many": "Tem certeza que deseja deletar {{count}} imagens? Esta ação não pode ser desfeita.",
+ "desc_other": "Tem certeza que deseja deletar {{count}} imagens? Esta ação não pode ser desfeita.",
+ "title": "Apagar Imagens de Treinamento"
+ },
+ "renameCategory": {
+ "title": "Renomear Classe",
+ "desc": "Insira um novo nome para {{name}}. O modelo deverá ser treinado novamente para a mudança de nome ter efeito."
+ },
+ "description": {
+ "invalidName": "Nome inválido. Nomes podem conter letras, números, espacos, apóstrofos, sublinhado e hífens."
+ },
+ "train": {
+ "title": "Classificações Recentes",
+ "titleShort": "Recente",
+ "aria": "Selecionar Classificações Recentes"
+ },
+ "categories": "Classes",
+ "createCategory": {
+ "new": "Criar Nova Classe"
+ },
+ "categorizeImageAs": "Classificar Imagem Como:",
+ "categorizeImage": "Classificar Imagem",
+ "menu": {
+ "objects": "Objetos",
+ "states": "Estados"
+ },
+ "noModels": {
+ "object": {
+ "title": "Nenhum Modelo de Classificação de Objetos"
+ }
+ },
+ "deleteDatasetImages": {
+ "title": "Deletar Imagens do Dataset"
+ },
+ "edit": {
+ "title": "Editar Modelo de Classificação",
+ "descriptionState": "Edite as classes deste modelo de classificação de estado. As alterações exigirão treinar novamente o modelo.",
+ "descriptionObject": "Edite o tipo de objeto e tipo de classificação para este modelo de classificação de objeto."
}
}
diff --git a/web/public/locales/pt-BR/views/events.json b/web/public/locales/pt-BR/views/events.json
index 37785ab13..3402c1002 100644
--- a/web/public/locales/pt-BR/views/events.json
+++ b/web/public/locales/pt-BR/views/events.json
@@ -9,7 +9,11 @@
"empty": {
"alert": "Não existe nenhum alerta para revisar",
"detection": "Não há nenhuma detecção para revisar",
- "motion": "Nenhum dado de movimento encontrado"
+ "motion": "Nenhum dado de movimento encontrado",
+ "recordingsDisabled": {
+ "title": "As gravações devem estar habilitadas",
+ "description": "A revisão de itens só pode ser criada para uma câmera quando a gravação está habilitada."
+ }
},
"timeline": "Linha do tempo",
"timeline.aria": "Selecione a linha do tempo",
@@ -46,7 +50,8 @@
"label": "Detalhe",
"settings": "Configurações de visualização detalhada",
"alwaysExpandActive": {
- "title": "Expandir sempre o modo ativo"
+ "title": "Expandir sempre o modo ativo",
+ "desc": "Sempre expandir os detalhes do objeto do item de revisão ativo quando disponíveis."
}
},
"objectTrack": {
@@ -54,5 +59,8 @@
"clickToSeek": "Clique para ir para esse horário"
},
"zoomIn": "Ampliar",
- "zoomOut": "Diminuir o zoom"
+ "zoomOut": "Diminuir o zoom",
+ "select_all": "Todos",
+ "normalActivity": "Normal",
+ "needsReview": "Precisa de revisão"
}
diff --git a/web/public/locales/pt-BR/views/explore.json b/web/public/locales/pt-BR/views/explore.json
index bb3e6fdab..93505f0bd 100644
--- a/web/public/locales/pt-BR/views/explore.json
+++ b/web/public/locales/pt-BR/views/explore.json
@@ -50,7 +50,7 @@
"regenerate": "Uma nova descrição foi solicitada do {{provider}}. Dependendo da velocidade do seu fornecedor, a nova descrição pode levar algum tempo para regenerar.",
"updatedSublabel": "Sub-rótulo atualizado com sucesso.",
"updatedLPR": "Placa de identificação atualizada com sucesso.",
- "audioTranscription": "Transcrição de áudio requisitada com sucesso."
+ "audioTranscription": "Transcrição de áudio requisitada com sucesso. Dependendo da velocidade de seu servidor Frigate, a transcrição pode demorar um tempo para completar."
},
"error": {
"regenerate": "Falha ao ligar para {{provider}} para uma descrição nova: {{errorMessage}}",
@@ -112,7 +112,8 @@
"snapshot": "captura de imagem",
"video": "vídeo",
"object_lifecycle": "ciclo de vida do objeto",
- "thumbnail": "thumbnail"
+ "thumbnail": "thumbnail",
+ "tracking_details": "detalhes de rastreamento"
},
"objectLifecycle": {
"title": "Ciclo de Vida do Objeto",
@@ -203,7 +204,7 @@
"dialog": {
"confirmDelete": {
"title": "Confirmar Exclusão",
- "desc": "Deletar esse objeto rastreado remove a captura de imagem, quaisquer embeddings salvos, e quaisquer entradas de ciclo de vida de objeto associadas. Gravações desse objeto rastreado na visualização de Histórico NÃO serão deletadas.{{label}}?"
+ "ask_a": "Da li je ovaj objekat {{label}}?",
+ "label": "Потврдите ову ознаку за Фригејт+",
+ "ask_an": "Да ли је овај објекат {{label}}?",
+ "ask_full": "Да ли је овај објекат {{untranslatedLabel}} ({{translatedLabel}})?"
+ },
+ "state": {
+ "submitted": "Послато"
+ }
+ }
+ },
+ "video": {
+ "viewInHistory": "Преглед у историји"
+ }
+ },
+ "export": {
+ "time": {
+ "fromTimeline": "Изаберите са временске линије",
+ "lastHour_one": "Последњи {{count}} сат",
+ "lastHour_few": "Последња {{count}} сата",
+ "lastHour_other": "Последњих {{count}} сати",
+ "custom": "Прилагођено",
+ "start": {
+ "title": "Почетно време",
+ "label": "Изаберите почетно време"
+ },
+ "end": {
+ "title": "Коначно време",
+ "label": "Изаберите завршно време"
+ }
+ },
+ "name": {
+ "placeholder": "Назив извоза"
+ },
+ "select": "Избор",
+ "export": "Извоз",
+ "selectOrExport": "Избор или извоз",
+ "toast": {
+ "success": "Извоз је успешно започет. Прегледајте фајл на страници са извозима.",
+ "view": "Преглед",
+ "error": {
+ "failed": "Неуспешан почетак извоза: {{error}}",
+ "endTimeMustAfterStartTime": "Завршно време мора бити након почетног времена",
+ "noVaildTimeSelected": "Није изабран валидан временски распон"
+ }
+ },
+ "fromTimeline": {
+ "saveExport": "Чување извоза",
+ "previewExport": "Преглед извоза"
+ }
+ },
+ "streaming": {
+ "label": "Стрим",
+ "restreaming": {
+ "disabled": "Поновни стриминг није омогућен за ову камеру.",
+ "desc": {
+ "title": "Подесите go2rtc за додатне опције репродукције слике и звука уживо за ову камеру."
+ }
+ },
+ "showStats": {
+ "label": "Приказ статистике стримовања",
+ "desc": "Омогућите ову опцију за приказ статистике стримовања као надслој на преноса са камере."
+ },
+ "debugView": "Приказ за дебаговање"
+ },
+ "search": {
+ "saveSearch": {
+ "label": "Сачувати претрагу",
+ "desc": "Обезбедите назив за ову сачувану претрагу.",
+ "placeholder": "Унесите име за вашу претрагу",
+ "overwrite": "{{searchName}} већ постоји. Чување ће преписати постојећу вредност.",
+ "success": "Претрага ({{searchName}}) је сачувана.",
+ "button": {
+ "save": {
+ "label": "Чување ове претраге"
}
}
}
+ },
+ "recording": {
+ "confirmDelete": {
+ "title": "Потврдите брисање",
+ "desc": {
+ "selected": "Да ли сте сигурни да желите да обришете све видео снимке повезане са овом ставком? detect, проверите лог грешака"
+ },
+ "cameraDisabled": "Камера је онемогућена",
+ "stats": {
+ "streamType": {
+ "title": "Тип стрима:",
+ "short": "Тип"
+ },
+ "bandwidth": {
+ "title": "Пропусни опсег:",
+ "short": "Ширина опсега"
+ },
+ "latency": {
+ "title": "Кашњење:",
+ "value": "{{seconds}} секунди",
+ "short": {
+ "title": "Кашњење",
+ "value": "{{seconds}}s"
+ }
+ },
+ "totalFrames": "Укупно фрејмова:",
+ "droppedFrames": {
+ "title": "Изгубљени фрејмови:",
+ "short": {
+ "title": "Испуштено",
+ "value": "{{droppedFrames}} фрејмова"
+ }
+ },
+ "decodedFrames": "Декодовани фрејмови:",
+ "droppedFrameRate": "Однос испуштених фрејмова:"
+ },
+ "toast": {
+ "success": {
+ "submittedFrigatePlus": "Фрејм је успешно послат у Фригејт+"
+ },
+ "error": {
+ "submitFrigatePlusFailed": "Неуспешно слање фрејма у Фригејт+"
+ }
}
}
diff --git a/web/public/locales/sr/objects.json b/web/public/locales/sr/objects.json
index 4edf4728b..e6683036a 100644
--- a/web/public/locales/sr/objects.json
+++ b/web/public/locales/sr/objects.json
@@ -6,5 +6,49 @@
"airplane": "Avion",
"bus": "Autobus",
"train": "Voz",
- "boat": "Brod"
+ "boat": "Brod",
+ "traffic_light": "Семафор",
+ "fire_hydrant": "Хидрант",
+ "street_sign": "Улични знак",
+ "stop_sign": "Знак стоп",
+ "parking_meter": "Паркинг апарат",
+ "bench": "Клупа",
+ "bird": "Птица",
+ "cat": "Мачка",
+ "dog": "Пас",
+ "horse": "Коњ",
+ "sheep": "Овца",
+ "cow": "Крава",
+ "elephant": "Слон",
+ "bear": "Медвед",
+ "zebra": "Зебра",
+ "giraffe": "Жирафа",
+ "hat": "Капа",
+ "backpack": "Ранац",
+ "umbrella": "Кишобран",
+ "shoe": "Ципела",
+ "eye_glasses": "Наочаре",
+ "handbag": "Ручна торба",
+ "tie": "Кравата",
+ "suitcase": "Актовка",
+ "frisbee": "Фризби",
+ "skis": "Скије",
+ "snowboard": "Сноуборд",
+ "sports_ball": "Спортска лопта",
+ "baseball_bat": "Палица за бејзбол",
+ "baseball_glove": "Рукавица за бејзбол",
+ "kite": "Змај",
+ "skateboard": "Скејтборд",
+ "surfboard": "Даска за сурфовање",
+ "tennis_racket": "Тениски рекет",
+ "bottle": "Боца",
+ "plate": "Тањир",
+ "wine_glass": "Чаша за вино",
+ "cup": "Шоља",
+ "fork": "Виљушка",
+ "knife": "Нож",
+ "spoon": "Кашика",
+ "bowl": "Посуда",
+ "banana": "Банана",
+ "apple": "Јабука"
}
diff --git a/web/public/locales/sr/views/classificationModel.json b/web/public/locales/sr/views/classificationModel.json
index 0967ef424..68abd5cbf 100644
--- a/web/public/locales/sr/views/classificationModel.json
+++ b/web/public/locales/sr/views/classificationModel.json
@@ -1 +1,90 @@
-{}
+{
+ "documentTitle": "Класификациони модели - Фригејт",
+ "details": {
+ "scoreInfo": "Резултат представља просечно поверење у класификацију код свих откривања овог објекта.",
+ "none": "Ниједан",
+ "unknown": "Непознато"
+ },
+ "button": {
+ "deleteClassificationAttempts": "Брисање класификационих слика",
+ "renameCategory": "Преименовање класе",
+ "deleteCategory": "Брисање класе",
+ "deleteImages": "Брисање слика",
+ "trainModel": "Модел за тренирање",
+ "addClassification": "Додавање класификације",
+ "deleteModels": "Брисање модела",
+ "editModel": "Уређивање модела"
+ },
+ "tooltip": {
+ "trainingInProgress": "Модел се тренутно тренира",
+ "noNewImages": "Нема нових слика за тренирање. Класификујте више слика прво у датасету.",
+ "noChanges": "Нема измена у датасету од последњег тренирања.",
+ "modelNotReady": "Модел није спреман за тренирање"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Обрисана класа",
+ "deletedImage": "Обрисане слике",
+ "deletedModel_one": "Успешно је обрисан {{count}} модел",
+ "deletedModel_few": "Успешно су обрисана {{count}} модела",
+ "deletedModel_other": "Успешно је обрисано {{count}} модела",
+ "categorizedImage": "Успешно класификована слика",
+ "trainedModel": "Успешно трениран модел.",
+ "trainingModel": "Тренирање модела је успешно започето.",
+ "updatedModel": "Успешно је ажурирана конфигурација модела",
+ "renamedCategory": "Класа је успешно преименована у {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Неуспешно брисање: {{errorMessage}}",
+ "deleteCategoryFailed": "Неуспешно брисање класе: {{errorMessage}}",
+ "deleteModelFailed": "Неуспешно брисање модела: {{errorMessage}}",
+ "categorizeFailed": "Неуспешна категоризација слике: {{errorMessage}}",
+ "trainingFailed": "Неуспешно тренирање модела. Проверите Фригејт логове за детаље.",
+ "trainingFailedToStart": "Неуспешан почетак тренирања модела: {{errorMessage}}",
+ "updateModelFailed": "Неуспешно ажурирање модела: {{errorMessage}}",
+ "renameCategoryFailed": "Неуспешно преименовање класе: {{errorMessage}}"
+ }
+ },
+ "train": {
+ "titleShort": "Скорашње",
+ "title": "Скорашње класификације"
+ },
+ "deleteCategory": {
+ "title": "Брисање класе",
+ "desc": "Да ли сте сигурни да желите да обришете класу {{name}}? Тиме ће трајно бити обрисане и све придружене слике и биће потребно поновно тренирање модела.",
+ "minClassesTitle": "Није могуће обрисати класу",
+ "minClassesDesc": "Класификациони модел мора имати најмање две класе. Додајте нову класу пре него што избришете ову."
+ },
+ "deleteModel": {
+ "title": "Брисање класификационог модела",
+ "single": "Да ли сте сигурни да желите да обришете {{name}}? Ово ће трајно обрисати све повезане податке, укључујући слике и податке за тренирање. Ова акција се не може накнадно опозвати.",
+ "desc_one": "Да ли сте сигурни да желите да обришете {{count}} модел? Ово ће трајно обрисати све повезане податке, укључујући и слике и податке за тренирање. Ова акција не може бити опозвана накнадно.",
+ "desc_few": "Да ли сте сигурни да желите да обришете {{count}} модела? Ово ће трајно обрисати све повезане податке, укључујући и слике и податке за тренирање. Ова акција не може бити опозвана накнадно.",
+ "desc_other": "Да ли сте сигурни да желите да обришете {{count}} модела? Ово ће трајно обрисати све повезане податке, укључујући и слике и податке за тренирање. Ова акција не може бити опозвана накнадно."
+ },
+ "edit": {
+ "title": "Уређивање класификационог модела",
+ "descriptionState": "Уређивање класа за класификациони модел овог стања. Измене ће захтевати поновно тренирање модела.",
+ "descriptionObject": "Уређивање типа објекта и типа касификације за овај објекат класификационог модела.",
+ "stateClassesInfo": "Напомена: Измена класа стања захтева поновно тренирање модела са ажурираним класама."
+ },
+ "deleteDatasetImages": {
+ "title": "Брисање слика датасета",
+ "desc_one": "Да ли сте сигурни да желите да обришете {{count}} слику из {{dataset}}? Ова акција се не може накнадно опозвати и захтева поновно тренирање модела.",
+ "desc_few": "Да ли сте сигурни да желите да обришете {{count}} слике из {{dataset}}? Ова акција се не може накнадно опозвати и захтева поновно тренирање модела.",
+ "desc_other": "Да ли сте сигурни да желите да обришете {{count}} слика из {{dataset}}? Ова акција се не може накнадно опозвати и захтева поновно тренирање модела."
+ },
+ "deleteTrainImages": {
+ "title": "Брисање слика за тренирање",
+ "desc_one": "Да ли сте сигурни да желите да избришете {{count}} слику? Ова акција не може бити накнадно опозвана.",
+ "desc_few": "Да ли сте сигурни да желите да избришете {{count}} слике? Ова акција не може бити накнадно опозвана.",
+ "desc_other": "Да ли сте сигурни да желите да избришете {{count}} слика? Ова акција не може бити накнадно опозвана."
+ },
+ "renameCategory": {
+ "title": "Преименовање класе",
+ "desc": "Унесите ново име за {{name}}. Мораћете поново да тренирате модел да би промена имала ефекта."
+ },
+ "description": {
+ "invalidName": "Неисправно име. Имена могу да садрже само слова, цифре, размаке, апострофе, доње црте и повлаке."
+ }
+}
diff --git a/web/public/locales/sr/views/configEditor.json b/web/public/locales/sr/views/configEditor.json
index a94a6e5bd..18fba5a28 100644
--- a/web/public/locales/sr/views/configEditor.json
+++ b/web/public/locales/sr/views/configEditor.json
@@ -8,6 +8,11 @@
"toast": {
"success": {
"copyToClipboard": "Konfiguracija je kopirana u clipboard."
+ },
+ "error": {
+ "savingError": "Грешка при чувању конфигурације"
}
- }
+ },
+ "safeConfigEditor": "Уређивач конфигурације (безбедан режим)",
+ "safeModeDescription": "Фригејт је у безбедном режиму због грешке при провери исправности конфигурације."
}
diff --git a/web/public/locales/sr/views/events.json b/web/public/locales/sr/views/events.json
index 4097e5666..a07288b29 100644
--- a/web/public/locales/sr/views/events.json
+++ b/web/public/locales/sr/views/events.json
@@ -9,6 +9,57 @@
"empty": {
"alert": "Nema upozorenja za pregled",
"detection": "Nema detekcija za pregled",
- "motion": "Nema podataka o pokretu"
- }
+ "motion": "Nema podataka o pokretu",
+ "recordingsDisabled": {
+ "title": "Снимање мора бити омогућено",
+ "description": "Преглед ставки може бити креиран само за камеру када је омогућено снимање за њу."
+ }
+ },
+ "timeline": "Временска линија",
+ "timeline.aria": "Изаберите временску линију",
+ "zoomIn": "Зумирање",
+ "zoomOut": "Одзумирање",
+ "events": {
+ "label": "Догађаји",
+ "aria": "Изаберите догађаје",
+ "noFoundForTimePeriod": "Нису пронађени догађају у овом периоду."
+ },
+ "detail": {
+ "label": "Детаљ",
+ "noDataFound": "Нема детаљних података за преглед",
+ "aria": "Промена детаљности прегледа",
+ "trackedObject_one": "{{count}} објеката",
+ "trackedObject_other": "{{count}} објеката",
+ "noObjectDetailData": "Нема података о детаљима објекта.",
+ "settings": "Подешавање приказа детаља",
+ "alwaysExpandActive": {
+ "title": "Увек проширити активан",
+ "desc": "Увек прошири детаље кативног прегледа објекта, уколико су доступни."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Праћена тачка",
+ "clickToSeek": "Кликните да претражите у ово време"
+ },
+ "documentTitle": "Преглед - Фригејт",
+ "recordings": {
+ "documentTitle": "Снимци - Фригејт"
+ },
+ "calendarFilter": {
+ "last24Hours": "Последња 24 часа"
+ },
+ "markAsReviewed": "Означавање да је прегледано",
+ "markTheseItemsAsReviewed": "Означи ове ставке као прегледане",
+ "newReviewItems": {
+ "label": "Приказ нових ставки за прегледање",
+ "button": "Нове ставке за преглед"
+ },
+ "selected_one": "{{count}} изабрано",
+ "selected_other": "{{count}} изабрано",
+ "select_all": "Све",
+ "camera": "Камера",
+ "detected": "детектовано",
+ "normalActivity": "Нормално",
+ "needsReview": "Потребан је преглед",
+ "securityConcern": "Безбедносно питање"
}
diff --git a/web/public/locales/sr/views/explore.json b/web/public/locales/sr/views/explore.json
index 66e8fbffe..c79ae1fbe 100644
--- a/web/public/locales/sr/views/explore.json
+++ b/web/public/locales/sr/views/explore.json
@@ -7,7 +7,73 @@
"embeddingsReindexing": {
"context": "Istraživanje se može koristiti nakon što se završi reindeksiranje ugrađivanja praćenih objekata.",
"startingUp": "Pokretanje…",
- "estimatedTime": "Procenjeno preostalo vreme:"
+ "estimatedTime": "Procenjeno preostalo vreme:",
+ "finishingShortly": "Завршава се ускоро",
+ "step": {
+ "thumbnailsEmbedded": "Угњеждене сличице: ",
+ "descriptionsEmbedded": "Угњеждени описи: ",
+ "trackedObjectsProcessed": "Обрађени праћени објекти: "
+ }
+ },
+ "downloadingModels": {
+ "context": "Фригејт преузима неопходне embedding моделе за подршку могућности Семантичке претраге. Ово може потрајати неколико минута, зависно од брзине Ваше мрежне везе.",
+ "setup": {
+ "visionModel": "Модел визије",
+ "visionModelFeatureExtractor": "Екстрактор особина модела визије",
+ "textModel": "Модел текста",
+ "textTokenizer": "Токенизатор текста"
+ },
+ "tips": {
+ "context": "Можда ћете желети да реиндексујете ембединге праћених објеката када модели буду преузети."
+ },
+ "error": "Дошло је до грешке. Проверите логове."
+ }
+ },
+ "details": {
+ "timestamp": "Временски тренутак"
+ },
+ "trackedObjectDetails": "Детаљи праћеног објекта",
+ "type": {
+ "details": "детаљи",
+ "snapshot": "снимак",
+ "thumbnail": "сличица",
+ "video": "видео",
+ "tracking_details": "детаљи праћења"
+ },
+ "trackingDetails": {
+ "title": "Детаљи праћења",
+ "noImageFound": "Нема слике за овај временски тренутак.",
+ "createObjectMask": "Креирање маске објекта",
+ "adjustAnnotationSettings": "Прилагођавање подешавања анотације",
+ "scrollViewTips": "Кликните да видите значајне моменте у животном циклусу овог објекта.",
+ "autoTrackingTips": "Позиције оквира неће бити тачне за камере са аутоматским праћењем.",
+ "count": "{{first}} од {{second}}",
+ "trackedPoint": "Праћена тачка",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} детектован",
+ "entered_zone": "{{label}} је ушао у {{zones}}",
+ "active": "{{label}} се активирао",
+ "stationary": "{{label}} је постао стационаран",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} детектован за {{label}}",
+ "other": "{{label}} је препознат као {{attribute}}"
+ },
+ "gone": "{{label}} преостало",
+ "heard": "{{label}} се чуло",
+ "external": "{{label}} детектован",
+ "header": {
+ "zones": "Зоне",
+ "ratio": "Однос",
+ "area": "Подручје",
+ "score": "Резултат"
+ }
+ },
+ "annotationSettings": {
+ "title": "Подешавања анотације",
+ "showAllZones": {
+ "title": "Приказ свих зона",
+ "desc": "Увек приказати зоне на фрејмовима у којима су објекти ушли у зону."
+ }
}
}
}
diff --git a/web/public/locales/sr/views/exports.json b/web/public/locales/sr/views/exports.json
index ff71c75d5..2f5acb766 100644
--- a/web/public/locales/sr/views/exports.json
+++ b/web/public/locales/sr/views/exports.json
@@ -8,5 +8,16 @@
"title": "Preimenuj izvoz",
"desc": "Unesite novo ime za ovaj izvoz.",
"saveExport": "Sačuvaj izvoz"
+ },
+ "tooltip": {
+ "shareExport": "Дељење експорта",
+ "downloadVideo": "Преузимање видео-снимка",
+ "editName": "Уређивање имена",
+ "deleteExport": "Брисање извоза"
+ },
+ "toast": {
+ "error": {
+ "renameExportFailed": "Промена назива извоза није успела: {{errorMessage}}"
+ }
}
}
diff --git a/web/public/locales/sr/views/faceLibrary.json b/web/public/locales/sr/views/faceLibrary.json
index c2aa8367b..cb9068656 100644
--- a/web/public/locales/sr/views/faceLibrary.json
+++ b/web/public/locales/sr/views/faceLibrary.json
@@ -1,14 +1,96 @@
{
"description": {
- "addFace": "Prođite kroz dodavanje nove kolekcije u biblioteku lica.",
+ "addFace": "Додавање нове колекције у библиотеку лица отпремањем прве слике.",
"placeholder": "Unesite ime za ovu kolekciju",
- "invalidName": "Nevažeće ime. Imena mogu da sadrže samo slova, brojeve, razmake, apostrofe, donje crte i crtice."
+ "invalidName": "Неисправно име. Имена могу да садрже само слова, цифре, размаке, апострофе, доње црте и повлаке."
},
"details": {
"person": "Osoba",
"subLabelScore": "Sub Label Skor",
"scoreInfo": "Rezultat podoznake je otežan rezultat za sve prepoznate pouzdanosti lica, tako da se može razlikovati od rezultata prikazanog na snimku.",
"face": "Detalji lica",
- "faceDesc": "Detalji praćenog objekta koji je generisao ovo lice"
+ "faceDesc": "Detalji praćenog objekta koji je generisao ovo lice",
+ "timestamp": "Временски тренутак",
+ "unknown": "Непознато"
+ },
+ "documentTitle": "Библиотека лица - Фригејт",
+ "uploadFaceImage": {
+ "title": "Отпремање слике лица",
+ "desc": "Орпремање слике за скенирање за лица и укључивање у {{pageToggle}}"
+ },
+ "collections": "Колекције",
+ "createFaceLibrary": {
+ "new": "Креирање новог лика",
+ "nextSteps": "За изградњу снажне основе: https://…) gerektirir. Bu tarayıcınızın bir sınırlandırmasıdır. Bildirimleri kullanmak için Frigate arayüzüne HTTPS ile erişin."
+ "desc": "Web push bildirimleri güvenli bir bağlam gerektirir (https://…). Bu, tarayıcı sınırlamasıdır. Bildirimleri kullanmak için Frigate'e güvenli bir şekilde (https) erişin."
},
"globalSettings": {
"title": "Genel Ayarlar",
@@ -1120,7 +1120,7 @@
"title": "Kamera İnceleme Ayarları",
"object_descriptions": {
"title": "Üretken Yapay Zeka Nesne Açıklamaları",
- "desc": "Bu kamera için yapay zekadan nesne tanımlama taleplerini geçici olarak etkinleştirin/devre dışı bırakın. Devre dışı bırakıldığında, bu kameradaki izlenen nesneler için yapay zekadan tanımlar istenmeyecektir."
+ "desc": "Frigate yeniden başlatılana kadar bu kamera için Üretken Yapay Zeka nesne açıklamalarını geçici olarak etkinleştirin/devre dışı bırakın. Devre dışı bırakıldığında, bu kameradaki izlenen nesneler için yapay zeka tarafından oluşturulan açıklamalar istenmeyecektir."
},
"review_descriptions": {
"title": "Üretken Yapay Zeka İnceleme Açıklamaları",
@@ -1193,7 +1193,7 @@
},
"deleteRole": {
"title": "Rolü Sil",
- "desc": "Bu işlem geri alınamaz. Bu işlem, rolü kalıcı olarak silecek ve bu role sahip tüm kullanıcıları varsayılan 'izleyici' rolüne atayarak kullanıcıların BÜTÜN kameralara erişim sağlamasına neden olacaktır.",
+ "desc": "Bu işlem geri alınamaz. Bu işlem, rolü kalıcı olarak siler ve bu role sahip tüm kullanıcılara 'izleyici' rolü atar; bu da izleyiciye tüm kameralara erişim sağlar.",
"warn": "{{role}} rolünü silmek istediğinizden emin misiniz?",
"deleting": "Siliniyor..."
},
diff --git a/web/public/locales/tr/views/system.json b/web/public/locales/tr/views/system.json
index b2aceb6d7..d38811843 100644
--- a/web/public/locales/tr/views/system.json
+++ b/web/public/locales/tr/views/system.json
@@ -53,7 +53,14 @@
"otherProcesses": {
"title": "Diğer İşlemler",
"processCpuUsage": "İşlem CPU Kullanımı",
- "processMemoryUsage": "İşlem Bellek Kullanımı"
+ "processMemoryUsage": "İşlem Bellek Kullanımı",
+ "series": {
+ "go2rtc": "go2rtc",
+ "recording": "kayıt",
+ "embeddings": "gömüler",
+ "audio_detector": "ses detektörü",
+ "review_segment": "inceleme bölümü"
+ }
},
"detector": {
"title": "Algılayıcılar",
diff --git a/web/public/locales/uk/common.json b/web/public/locales/uk/common.json
index b6692bad8..39dff176f 100644
--- a/web/public/locales/uk/common.json
+++ b/web/public/locales/uk/common.json
@@ -81,7 +81,8 @@
},
"inProgress": "У процесі",
"invalidStartTime": "Недійсний час початку",
- "invalidEndTime": "Недійсний час завершення"
+ "invalidEndTime": "Недійсний час завершення",
+ "never": "Ніколи"
},
"button": {
"exitFullscreen": "Вийти з повноекранного режиму",
@@ -248,7 +249,8 @@
"show": "Показати {{item}}",
"ID": "ID",
"none": "Жоден",
- "all": "Усі"
+ "all": "Усі",
+ "other": "Інше"
},
"toast": {
"save": {
diff --git a/web/public/locales/uk/views/events.json b/web/public/locales/uk/views/events.json
index 3cceebda5..5b3c20443 100644
--- a/web/public/locales/uk/views/events.json
+++ b/web/public/locales/uk/views/events.json
@@ -12,7 +12,11 @@
"empty": {
"alert": "Немає попереджень для перегляду",
"detection": "Немає ніяких ознак",
- "motion": "Даних про рух не знайдено"
+ "motion": "Даних про рух не знайдено",
+ "recordingsDisabled": {
+ "title": "Записи мають бути ввімкнені",
+ "description": "Елементи рецензування можна створювати для камери, лише якщо для цієї камери ввімкнено запис."
+ }
},
"timeline": "Хронологія",
"timeline.aria": "Вибрати хронiку",
diff --git a/web/public/locales/uk/views/explore.json b/web/public/locales/uk/views/explore.json
index d97e09ab6..0c7863e05 100644
--- a/web/public/locales/uk/views/explore.json
+++ b/web/public/locales/uk/views/explore.json
@@ -172,7 +172,10 @@
"title": "Редагувати атрибути",
"desc": "Виберіть атрибути класифікації для цього {{label}}"
},
- "attributes": "Атрибути класифікації"
+ "attributes": "Атрибути класифікації",
+ "title": {
+ "label": "Назва"
+ }
},
"dialog": {
"confirmDelete": {
diff --git a/web/public/locales/uk/views/live.json b/web/public/locales/uk/views/live.json
index 0b8b405b2..f5ef34f2c 100644
--- a/web/public/locales/uk/views/live.json
+++ b/web/public/locales/uk/views/live.json
@@ -178,6 +178,16 @@
"restricted": {
"title": "Немає Доступних Камер",
"description": "У вас немає дозволу на перегляд будь-яких камер у цій групі."
+ },
+ "default": {
+ "title": "Немає Налаштованих Камер",
+ "description": "Почніть з підключення камери до Frigate.",
+ "buttonText": "Додати Камеру"
+ },
+ "group": {
+ "title": "Немає камер у групі",
+ "description": "Цій групі камер не призначено або не ввімкнено камер.",
+ "buttonText": "Керування групами"
}
},
"snapshot": {
diff --git a/web/public/locales/uk/views/settings.json b/web/public/locales/uk/views/settings.json
index 661196ec1..e9bc0dd42 100644
--- a/web/public/locales/uk/views/settings.json
+++ b/web/public/locales/uk/views/settings.json
@@ -1277,11 +1277,11 @@
"title": "Налаштування перегляду камери",
"object_descriptions": {
"title": "Генеративні описи об'єктів штучного інтелекту",
- "desc": "Тимчасово ввімкнути/вимкнути генеративні описи об'єктів ШІ для цієї камери. Якщо вимкнено, згенеровані ШІ описи не запитуватимуться для об'єктів, що відстежуються на цій камері."
+ "desc": "Тимчасово ввімкнути/вимкнути генеративні описи об'єктів ШІ для цієї камери до перезавантаження Frigate. Якщо вимкнено, згенеровані ШІ описи не запитуватимуться для об'єктів, що відстежуються на цій камері."
},
"review_descriptions": {
"title": "Описи генеративного ШІ-огляду",
- "desc": "Тимчасово ввімкнути/вимкнути генеративні описи огляду за допомогою штучного інтелекту для цієї камери. Якщо вимкнено, для елементів огляду на цій камері не запитуватимуться згенеровані штучним інтелектом описи."
+ "desc": "Тимчасово ввімкнути/вимкнути генеративні описи огляду за допомогою штучного інтелекту для цієї камери до перезавантаження Frigate. Якщо вимкнено, згенеровані штучним інтелектом описи не запитуватимуться для елементів огляду на цій камері."
},
"review": {
"title": "Огляду",
diff --git a/web/public/locales/uk/views/system.json b/web/public/locales/uk/views/system.json
index 0e2a58511..b65616c60 100644
--- a/web/public/locales/uk/views/system.json
+++ b/web/public/locales/uk/views/system.json
@@ -115,7 +115,14 @@
"otherProcesses": {
"processMemoryUsage": "Використання пам'яті процесу",
"processCpuUsage": "Використання процесора процесу",
- "title": "Інші процеси"
+ "title": "Інші процеси",
+ "series": {
+ "go2rtc": "go2rtc",
+ "recording": "запис",
+ "review_segment": "сегмент огляду",
+ "embeddings": "вбудовування",
+ "audio_detector": "аудіодетектор"
+ }
},
"detector": {
"temperature": "Температура детектора",
diff --git a/web/public/locales/uz/audio.json b/web/public/locales/uz/audio.json
new file mode 100644
index 000000000..ddd93cd74
--- /dev/null
+++ b/web/public/locales/uz/audio.json
@@ -0,0 +1,3 @@
+{
+ "speech": "So'zlashuv"
+}
diff --git a/web/public/locales/uz/common.json b/web/public/locales/uz/common.json
new file mode 100644
index 000000000..2601b3f26
--- /dev/null
+++ b/web/public/locales/uz/common.json
@@ -0,0 +1,5 @@
+{
+ "time": {
+ "untilForTime": "{{time}} vaqtgacha"
+ }
+}
diff --git a/web/public/locales/uz/components/auth.json b/web/public/locales/uz/components/auth.json
new file mode 100644
index 000000000..ee2f33179
--- /dev/null
+++ b/web/public/locales/uz/components/auth.json
@@ -0,0 +1,5 @@
+{
+ "form": {
+ "user": "Foydalanuvchi nomi"
+ }
+}
diff --git a/web/public/locales/uz/components/camera.json b/web/public/locales/uz/components/camera.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/components/camera.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/components/dialog.json b/web/public/locales/uz/components/dialog.json
new file mode 100644
index 000000000..680c3b0d6
--- /dev/null
+++ b/web/public/locales/uz/components/dialog.json
@@ -0,0 +1,5 @@
+{
+ "restart": {
+ "title": "Frigate dasturini qayta ishga tushirishga aminmisiz?"
+ }
+}
diff --git a/web/public/locales/uz/components/filter.json b/web/public/locales/uz/components/filter.json
new file mode 100644
index 000000000..33d5b023e
--- /dev/null
+++ b/web/public/locales/uz/components/filter.json
@@ -0,0 +1,3 @@
+{
+ "filter": "Filtr"
+}
diff --git a/web/public/locales/uz/components/icons.json b/web/public/locales/uz/components/icons.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/components/icons.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/components/input.json b/web/public/locales/uz/components/input.json
new file mode 100644
index 000000000..ed23647c5
--- /dev/null
+++ b/web/public/locales/uz/components/input.json
@@ -0,0 +1,7 @@
+{
+ "button": {
+ "downloadVideo": {
+ "label": "Videoni yuklab olish"
+ }
+ }
+}
diff --git a/web/public/locales/uz/components/player.json b/web/public/locales/uz/components/player.json
new file mode 100644
index 000000000..1e126a82b
--- /dev/null
+++ b/web/public/locales/uz/components/player.json
@@ -0,0 +1,3 @@
+{
+ "noRecordingsFoundForThisTime": "Ushbu vaqt uchun hech qanday qayd mavjud emas"
+}
diff --git a/web/public/locales/uz/objects.json b/web/public/locales/uz/objects.json
new file mode 100644
index 000000000..3a4a299dd
--- /dev/null
+++ b/web/public/locales/uz/objects.json
@@ -0,0 +1,3 @@
+{
+ "person": "Shaxs"
+}
diff --git a/web/public/locales/uz/views/classificationModel.json b/web/public/locales/uz/views/classificationModel.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/views/configEditor.json b/web/public/locales/uz/views/configEditor.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/configEditor.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/views/events.json b/web/public/locales/uz/views/events.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/events.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/views/explore.json b/web/public/locales/uz/views/explore.json
new file mode 100644
index 000000000..f04d6847a
--- /dev/null
+++ b/web/public/locales/uz/views/explore.json
@@ -0,0 +1,3 @@
+{
+ "documentTitle": "Frigate dasturi bilan tanishish"
+}
diff --git a/web/public/locales/uz/views/exports.json b/web/public/locales/uz/views/exports.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/exports.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/views/faceLibrary.json b/web/public/locales/uz/views/faceLibrary.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/faceLibrary.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/views/live.json b/web/public/locales/uz/views/live.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/live.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/views/recording.json b/web/public/locales/uz/views/recording.json
new file mode 100644
index 000000000..33d5b023e
--- /dev/null
+++ b/web/public/locales/uz/views/recording.json
@@ -0,0 +1,3 @@
+{
+ "filter": "Filtr"
+}
diff --git a/web/public/locales/uz/views/search.json b/web/public/locales/uz/views/search.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/search.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/views/settings.json b/web/public/locales/uz/views/settings.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/settings.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/uz/views/system.json b/web/public/locales/uz/views/system.json
new file mode 100644
index 000000000..0967ef424
--- /dev/null
+++ b/web/public/locales/uz/views/system.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/yue-Hant/views/classificationModel.json b/web/public/locales/yue-Hant/views/classificationModel.json
index 0967ef424..0b72837bd 100644
--- a/web/public/locales/yue-Hant/views/classificationModel.json
+++ b/web/public/locales/yue-Hant/views/classificationModel.json
@@ -1 +1,6 @@
-{}
+{
+ "documentTitle": "分類模型 - Frigate",
+ "details": {
+ "unknown": "未知"
+ }
+}
diff --git a/web/public/locales/yue-Hant/views/faceLibrary.json b/web/public/locales/yue-Hant/views/faceLibrary.json
index 53525d914..b215f66f2 100644
--- a/web/public/locales/yue-Hant/views/faceLibrary.json
+++ b/web/public/locales/yue-Hant/views/faceLibrary.json
@@ -11,7 +11,7 @@
"unknown": "未知"
},
"description": {
- "addFace": "逐步了解如何新增一個人臉庫的集合。",
+ "addFace": "上傳您的第一張圖片,即可在人臉庫中新增新的集合。",
"placeholder": "請輸入此集合的名稱",
"invalidName": "名稱無效。名稱只可以包含英文字母、數字、空格、撇號(')、底線(_)同連字號(-)。"
},
diff --git a/web/public/locales/zh-CN/audio.json b/web/public/locales/zh-CN/audio.json
index 4c321c2e9..848418f84 100644
--- a/web/public/locales/zh-CN/audio.json
+++ b/web/public/locales/zh-CN/audio.json
@@ -60,7 +60,7 @@
"bow_wow": "汪汪",
"growling": "咆哮",
"whimper_dog": "狗呜咽",
- "cat": "猫叫",
+ "cat": "猫",
"purr": "咕噜",
"meow": "喵喵",
"hiss": "嘶嘶声",
diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json
index b9bdbad33..28fa8bd48 100644
--- a/web/public/locales/zh-CN/common.json
+++ b/web/public/locales/zh-CN/common.json
@@ -78,7 +78,8 @@
},
"inProgress": "进行中",
"invalidStartTime": "无效的开始时间",
- "invalidEndTime": "无效的结束时间"
+ "invalidEndTime": "无效的结束时间",
+ "never": "从不"
},
"unit": {
"speed": {
@@ -104,7 +105,8 @@
"show": "显示 {{item}}",
"ID": "ID",
"none": "无",
- "all": "所有"
+ "all": "所有",
+ "other": "其他"
},
"pagination": {
"label": "分页",
@@ -206,7 +208,8 @@
"bg": "保加利亚语 (Български)",
"gl": "加利西亚语 (Galego)",
"id": "印度尼西亚语 (Bahasa Indonesia)",
- "ur": "乌尔都语 (اردو)"
+ "ur": "乌尔都语 (اردو)",
+ "hr": "克罗地亚语(Hrvatski)"
},
"appearance": "外观",
"darkMode": {
diff --git a/web/public/locales/zh-CN/objects.json b/web/public/locales/zh-CN/objects.json
index 6c155b8fb..193f87179 100644
--- a/web/public/locales/zh-CN/objects.json
+++ b/web/public/locales/zh-CN/objects.json
@@ -14,7 +14,7 @@
"parking_meter": "停车计时器",
"bench": "长椅",
"bird": "鸟",
- "cat": "猫叫",
+ "cat": "猫",
"dog": "狗",
"horse": "马",
"sheep": "绵羊",
diff --git a/web/public/locales/zh-CN/views/events.json b/web/public/locales/zh-CN/views/events.json
index ac795e2a9..9c95ed1c4 100644
--- a/web/public/locales/zh-CN/views/events.json
+++ b/web/public/locales/zh-CN/views/events.json
@@ -9,7 +9,11 @@
"empty": {
"alert": "还没有“警报”类核查项",
"detection": "还没有“检测”类核查项",
- "motion": "还没有画面变动类数据"
+ "motion": "还没有画面变动类数据",
+ "recordingsDisabled": {
+ "title": "必须要开启录制功能",
+ "description": "必须要摄像头启用录制功能时,才可为其创建回放项目。"
+ }
},
"timeline": "时间线",
"timeline.aria": "选择时间线",
diff --git a/web/public/locales/zh-CN/views/explore.json b/web/public/locales/zh-CN/views/explore.json
index 45b89169a..8e66f2255 100644
--- a/web/public/locales/zh-CN/views/explore.json
+++ b/web/public/locales/zh-CN/views/explore.json
@@ -166,7 +166,10 @@
"title": "编辑属性",
"desc": "为 {{label}} 选择分类属性"
},
- "attributes": "分类属性"
+ "attributes": "分类属性",
+ "title": {
+ "label": "标题"
+ }
},
"itemMenu": {
"downloadVideo": {
@@ -265,7 +268,7 @@
"other": "{{label}} 被识别为 {{attribute}}"
},
"gone": "{{label}} 离开",
- "heard": "{{label}} 被听到",
+ "heard": "听到 {{label}}",
"external": "已检测到 {{label}}",
"header": {
"zones": "区",
diff --git a/web/public/locales/zh-CN/views/faceLibrary.json b/web/public/locales/zh-CN/views/faceLibrary.json
index 0e05f0df7..b8e9a9501 100644
--- a/web/public/locales/zh-CN/views/faceLibrary.json
+++ b/web/public/locales/zh-CN/views/faceLibrary.json
@@ -2,7 +2,8 @@
"description": {
"addFace": "我们将引导你如何向人脸库中添加新的合集。",
"placeholder": "请输入此合集的名称",
- "invalidName": "名称无效。名称只能包含字母、数字、空格、撇号、下划线和连字符。"
+ "invalidName": "名称无效。名称只能包含字母、数字、空格、撇号、下划线和连字符。",
+ "nameCannotContainHash": "名称中不允许包含“#”符号。"
},
"details": {
"person": "人",
diff --git a/web/public/locales/zh-CN/views/live.json b/web/public/locales/zh-CN/views/live.json
index 021bafc66..0f025b5cc 100644
--- a/web/public/locales/zh-CN/views/live.json
+++ b/web/public/locales/zh-CN/views/live.json
@@ -115,7 +115,7 @@
"title": "视频流",
"audio": {
"tips": {
- "title": "必须要摄像头能够播放音频,以及需要 go2rtc 支持并配置。",
+ "title": "必须要摄像头支持音频,以及需要 go2rtc 支持并配置。",
"documentation": "阅读文档 "
},
"available": "此视频流支持音频",
@@ -178,6 +178,16 @@
"restricted": {
"title": "无可用摄像头",
"description": "你没有权限查看此分组中的任何摄像头。"
+ },
+ "default": {
+ "title": "没有配置摄像头",
+ "description": "现在就将摄像头接入到 Frigate 吧。",
+ "buttonText": "添加摄像头"
+ },
+ "group": {
+ "title": "摄像头组目前为空",
+ "description": "该摄像头组未分配或启动了摄像头。",
+ "buttonText": "管理摄像头组"
}
},
"snapshot": {
diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json
index 700b22377..b1e0a78d8 100644
--- a/web/public/locales/zh-CN/views/settings.json
+++ b/web/public/locales/zh-CN/views/settings.json
@@ -282,7 +282,7 @@
},
"delete": {
"title": "确认删除",
- "desc": "你确定要删除{{type}} {{name}} 吗?",
+ "desc": "你确定要删除{{type}} “{{name}}” 吗?",
"success": "{{name}} 已被删除。"
},
"error": {
@@ -405,7 +405,7 @@
"motionDetectionTuner": {
"title": "画面变动检测调整",
"desc": {
- "title": "Frigate 将使用画面变化检测作为首个步骤,以确认一帧画面中是否有目标或物体需要使用目标检测。",
+ "title": "Frigate 将首先使用画面变动检测来确认每一帧画面中是否有变动的区域,然后再对该区域使用目标检测。",
"documentation": "阅读有关画面变动检测的文档"
},
"Threshold": {
@@ -543,7 +543,7 @@
"hide": "隐藏密码",
"requirements": {
"title": "密码要求:",
- "length": "至少8个字符",
+ "length": "至少需要 12 位字符",
"uppercase": "至少一个大写字母",
"digit": "至少一位数字",
"special": "至少一个特殊符号 (!@#$%^&*(),.?\":{}|<>)"
@@ -735,7 +735,7 @@
"readTheDocumentation": "阅读文档"
},
"licensePlateRecognition": {
- "desc": "Frigate 可以识别车辆的车牌,并自动将检测到的字符添加到 recognized_license_plate 字段中,或将已知车牌对应的名称作为子标签添加到该车辆目标中。一般常用于读取驶入车道的车辆车牌或经过街道的车辆车牌。",
+ "desc": "Frigate 可以识别车辆的车牌,并自动将检测到的字符添加到 识别的车牌(recognized_license_plate)字段中,或将已知车牌对应的名称作为子标签添加到该车辆目标中。该功能常用于识别驶入车道的车辆车牌或经过街道的车辆车牌。",
"title": "车牌识别",
"readTheDocumentation": "阅读文档"
},
@@ -1212,7 +1212,7 @@
"noAudioWarning": "检测到该视频流无音频信号,录制视频将没有声音。",
"audioCodecRecordError": "录制功能需要 AAC 音频编解码器以实现音频支持。",
"audioCodecRequired": "要实现音频检测功能,必须要有音频流。",
- "restreamingWarning": "为录制流开启“减少与摄像头的连接数”可能会略微增加CPU使用率。",
+ "restreamingWarning": "为录制流开启“减少与摄像头的连接数”可能会略微增加 CPU 使用率。",
"brands": {
"reolink-rtsp": "不建议使用 Reolink 的 RTSP 协议。请在摄像头后台设置中启用 HTTP协议,并重新启动向导。",
"reolink-http": "Reolink HTTP 视频流应该使用 FFmpeg 以获得更好的兼容性,为此视频流启用“使用流兼容模式”。"
@@ -1234,7 +1234,7 @@
"backToSettings": "返回摄像头设置",
"streams": {
"title": "开启或关闭摄像头",
- "desc": "将临时禁用摄像头,直至 Frigate 重启。禁用摄像头将完全停止 Frigate 对该摄像头视频流的处理,届时检测、录制及调试功能均不可用。