mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-07-21 19:29:00 +03:00
Compare commits
22
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2f8de94e8 | ||
|
|
f46560d2bf | ||
|
|
a1acb504ee | ||
|
|
3d79eef227 | ||
|
|
efe0d2a931 | ||
|
|
cbd5bdfd88 | ||
|
|
6f2e6c4cb2 | ||
|
|
84f48ee3eb | ||
|
|
49793aa655 | ||
|
|
4869f46ab6 | ||
|
|
5e5beb9837 | ||
|
|
f7184c8ed5 | ||
|
|
2e1b81b380 | ||
|
|
30cf274815 | ||
|
|
b15c799d8c | ||
|
|
b6b3178e3d | ||
|
|
5fc030c3f6 | ||
|
|
ca3afa8ac4 | ||
|
|
878f401ad2 | ||
|
|
99f9c1529d | ||
|
|
369e6ba2c2 | ||
|
|
8254602449 |
@@ -13,6 +13,7 @@ RUN sed -i "/https:\/\//d" /requirements-wheels.txt
|
||||
RUN sed -i "/onnxruntime/d" /requirements-wheels.txt
|
||||
RUN pip3 wheel --wheel-dir=/rk-wheels -c /requirements-wheels.txt -r /requirements-wheels-rk.txt
|
||||
RUN rm -rf /rk-wheels/opencv_python-*
|
||||
RUN rm -rf /rk-wheels/torch-*
|
||||
|
||||
FROM deps AS rk-frigate
|
||||
ARG TARGETARCH
|
||||
|
||||
@@ -21,7 +21,12 @@ router = APIRouter(tags=[Tags.notifications])
|
||||
|
||||
@router.get("/notifications/pubkey")
|
||||
def get_vapid_pub_key(request: Request):
|
||||
if not request.app.frigate_config.notifications.enabled:
|
||||
config = request.app.frigate_config
|
||||
notifications_enabled = config.notifications.enabled
|
||||
camera_notifications_enabled = [
|
||||
c for c in config.cameras.values() if c.enabled and c.notifications.enabled
|
||||
]
|
||||
if not (notifications_enabled or camera_notifications_enabled):
|
||||
return JSONResponse(
|
||||
content=({"success": False, "message": "Notifications are not enabled."}),
|
||||
status_code=400,
|
||||
|
||||
@@ -340,21 +340,22 @@ class EventCleanup(threading.Thread):
|
||||
.where(Event.has_clip == False, Event.has_snapshot == False)
|
||||
.iterator()
|
||||
)
|
||||
events_to_delete = [e.id for e in events]
|
||||
events_to_delete: list[Event] = [e for e in events]
|
||||
|
||||
for e in events:
|
||||
for e in events_to_delete:
|
||||
delete_event_thumbnail(e)
|
||||
|
||||
logger.debug(f"Found {len(events_to_delete)} events that can be expired")
|
||||
if len(events_to_delete) > 0:
|
||||
for i in range(0, len(events_to_delete), CHUNK_SIZE):
|
||||
chunk = events_to_delete[i : i + CHUNK_SIZE]
|
||||
ids_to_delete = [e.id for e in events_to_delete]
|
||||
for i in range(0, len(ids_to_delete), CHUNK_SIZE):
|
||||
chunk = ids_to_delete[i : i + CHUNK_SIZE]
|
||||
logger.debug(f"Deleting {len(chunk)} events from the database")
|
||||
Event.delete().where(Event.id << chunk).execute()
|
||||
|
||||
if self.config.semantic_search.enabled:
|
||||
self.db.delete_embeddings_description(event_ids=chunk)
|
||||
self.db.delete_embeddings_thumbnail(event_ids=chunk)
|
||||
logger.debug(f"Deleted {len(events_to_delete)} embeddings")
|
||||
logger.debug(f"Deleted {len(ids_to_delete)} embeddings")
|
||||
|
||||
logger.info("Exiting event cleanup...")
|
||||
|
||||
@@ -140,6 +140,7 @@
|
||||
"fr": "Français (French)",
|
||||
"ar": "العربية (Arabic)",
|
||||
"pt": "Português (Portuguese)",
|
||||
"ptBR": "Português brasileiro (Brazilian Portuguese)",
|
||||
"ru": "Русский (Russian)",
|
||||
"de": "Deutsch (German)",
|
||||
"ja": "日本語 (Japanese)",
|
||||
@@ -164,6 +165,13 @@
|
||||
"yue": "粵語 (Cantonese)",
|
||||
"th": "ไทย (Thai)",
|
||||
"ca": "Català (Catalan)",
|
||||
"sr": "Српски (Serbian)",
|
||||
"sl": "Slovenščina (Slovenian)",
|
||||
"lt": "Lietuvių (Lithuanian)",
|
||||
"bg": "Български (Bulgarian)",
|
||||
"gl": "Galego (Galician)",
|
||||
"id": "Bahasa Indonesia (Indonesian)",
|
||||
"ur": "اردو (Urdu)",
|
||||
"withSystem": {
|
||||
"label": "Use the system settings for language"
|
||||
}
|
||||
|
||||
@@ -54,5 +54,9 @@
|
||||
"pant": "Huohottaa",
|
||||
"snort": "Haukkua",
|
||||
"cough": "Yskä",
|
||||
"sneeze": "Niistää"
|
||||
"sneeze": "Niistää",
|
||||
"throat_clearing": "Kurkun selvittäminen",
|
||||
"sniff": "Poimi",
|
||||
"run": "Käynnistä",
|
||||
"shuffle": "Sekoitus"
|
||||
}
|
||||
|
||||
@@ -65,6 +65,13 @@
|
||||
}
|
||||
},
|
||||
"streaming": {
|
||||
"label": "Kuvavirta"
|
||||
"label": "Kuvavirta",
|
||||
"restreaming": {
|
||||
"disabled": "Uudelleentoisto ei ole käytettävissä tällä kameralla.",
|
||||
"desc": {
|
||||
"title": "Määritä go2rtc saadaksesi lisäreaaliaikanäkymän vaihtoehtoja ja ääntä tälle kameralle.",
|
||||
"readTheDocumentation": "Lue dokumentaatio"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,7 +38,8 @@
|
||||
"label": "Piirteet",
|
||||
"hasVideoClip": "Videoleike löytyy",
|
||||
"submittedToFrigatePlus": {
|
||||
"label": "Lähetetty Frigate+:aan"
|
||||
"label": "Lähetetty Frigate+:aan",
|
||||
"tips": "Sinun on ensin suodatettava seuratut kohteet, joilla on tilannekuva.<br /><br />Kohteita, joilla ei ole tilannekuvaa, ei voida lähettää Frigate+:aan."
|
||||
},
|
||||
"hasSnapshot": "Tilannekuva löytyy"
|
||||
},
|
||||
@@ -49,6 +50,13 @@
|
||||
"scoreAsc": "Kohteen pisteet (Nouseva)",
|
||||
"scoreDesc": "Kohteen pisteet (Laskeva)",
|
||||
"speedAsc": "Arvioitu nopeus (Nouseva)",
|
||||
"speedDesc": "Arvioitu nopeus (Laskeva)"
|
||||
"speedDesc": "Arvioitu nopeus (Laskeva)",
|
||||
"relevance": "Olennaisuus"
|
||||
},
|
||||
"cameras": {
|
||||
"label": "Kameran suodattimet",
|
||||
"all": {
|
||||
"title": "Kaikki kamerat"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,10 +27,12 @@
|
||||
"context": "Frigate lataa semanttista hakua varten vaadittavat upotusmallit. Tämä saattaa viedä useamman minuutin, riippuen yhteytesi nopeudesta.",
|
||||
"setup": {
|
||||
"visionModel": "Vision-malli",
|
||||
"textModel": "Tekstimalli"
|
||||
"textModel": "Tekstimalli",
|
||||
"textTokenizer": "Tekstin osioija"
|
||||
},
|
||||
"tips": {
|
||||
"documentation": "Lue dokumentaatio"
|
||||
"documentation": "Lue dokumentaatio",
|
||||
"context": "Saatat haluta uudelleenindeksoida seurattavien kohteiden upotukset, kun mallit on ladattu."
|
||||
},
|
||||
"error": "Tapahtui virhe. Tarkista Frigaten lokit."
|
||||
}
|
||||
@@ -74,7 +76,8 @@
|
||||
"noImageFound": "Tältä aikaleimalta ei löytynyt kuvia.",
|
||||
"createObjectMask": "Luo kohdemaski",
|
||||
"scrollViewTips": "Vieritä katsoaksesi merkittäviä hetkiä kohteen elinkaarelta.",
|
||||
"autoTrackingTips": "Kohteen rajojen sijainti on epätarkka automaattisesti seuraaville kameroille."
|
||||
"autoTrackingTips": "Kohteen rajojen sijainti on epätarkka automaattisesti seuraaville kameroille.",
|
||||
"adjustAnnotationSettings": "Säädä merkintäasetuksia"
|
||||
},
|
||||
"trackedObjectDetails": "Seurattavien kohteiden tiedot",
|
||||
"type": {
|
||||
|
||||
@@ -14,7 +14,8 @@
|
||||
"person": "Henkilö",
|
||||
"timestamp": "Aikaleima",
|
||||
"subLabelScore": "Alinimikkeen pisteet",
|
||||
"face": "Kasvojen yksityiskohdat"
|
||||
"face": "Kasvojen yksityiskohdat",
|
||||
"scoreInfo": "Alatunnisteen pistemäärä on kaikkien tunnistettujen kasvojen varmuustasojen painotettu keskiarvo, joten se voi poiketa tilannekuvassa näkyvästä pistemäärästä."
|
||||
},
|
||||
"documentTitle": "Kasvokirjasto - Frigate",
|
||||
"deleteFaceAttempts": {
|
||||
@@ -31,22 +32,34 @@
|
||||
"selectItem": "Valitse {{item}}",
|
||||
"train": {
|
||||
"empty": "Ei viimeaikaisia kasvojentunnistusyrityksiä",
|
||||
"title": "Koulutus"
|
||||
"title": "Koulutus",
|
||||
"aria": "Valitse kouluta"
|
||||
},
|
||||
"collections": "Kokoelmat",
|
||||
"steps": {
|
||||
"faceName": "Anna nimi kasvoille",
|
||||
"uploadFace": "Lähetä kasvokuva",
|
||||
"nextSteps": "Seuraavat vaiheet"
|
||||
"nextSteps": "Seuraavat vaiheet",
|
||||
"description": {
|
||||
"uploadFace": "Lataa kuva henkilöstä {{name}}, jossa hänen kasvonsa näkyvät suoraan edestä päin. Kuvaa ei tarvitse rajata pelkkiin kasvoihin."
|
||||
}
|
||||
},
|
||||
"createFaceLibrary": {
|
||||
"title": "Luo kokoelma",
|
||||
"desc": "Luo uusi kokoelma",
|
||||
"new": "Luo uusi kasvo"
|
||||
"new": "Luo uusi kasvo",
|
||||
"nextSteps": "Hyvän perustan luomiseksi huomioitavaa:<li>Käytä koulutus-välilehteä valitaksesi opetukseen kuvia kustakin tunnistetusta henkilöstä</li><li>Panosta mahdollisimman suoraan otettuihin kuviin; vältä kouluttamista kulmassa kuvatuilla kuvilla.</li></ul>"
|
||||
},
|
||||
"selectFace": "Valitse kasvo",
|
||||
"deleteFaceLibrary": {
|
||||
"title": "Poista nimi",
|
||||
"desc": "Haluatko varmasti poistaa kokoelman {{name}}? Tämä poistaa pysyvästi kaikki liitetyt kasvot."
|
||||
},
|
||||
"renameFace": {
|
||||
"title": "Uudelleennimeä kasvot",
|
||||
"desc": "Anna uusi nimi tälle {{name}}"
|
||||
},
|
||||
"button": {
|
||||
"deleteFaceAttempts": "Poista kasvot"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,8 +37,26 @@
|
||||
"beforeDateBeLaterAfter": "'Ennen' ajan täytyy olla myöhemmin kun 'jälkeen' aika.",
|
||||
"afterDatebeEarlierBefore": "'Jälkeen' ajan täytyy olla aiemmin kun 'ennen' aika.",
|
||||
"minScoreMustBeLessOrEqualMaxScore": "Arvon 'min_score' täytyy olla pienempi tai yhtäsuuri kuin 'max_score'.",
|
||||
"maxScoreMustBeGreaterOrEqualMinScore": "Arvon 'max_score' täytyy olla suurempi tai yhtäsuuri kuin 'min_score'."
|
||||
"maxScoreMustBeGreaterOrEqualMinScore": "Arvon 'max_score' täytyy olla suurempi tai yhtäsuuri kuin 'min_score'.",
|
||||
"minSpeedMustBeLessOrEqualMaxSpeed": "'Minimi nopeus' tulee olla pienempi tai yhtäsuuri kuin 'maksimi nopeus'.",
|
||||
"maxSpeedMustBeGreaterOrEqualMinSpeed": "'Maksimi nopeus' tulee olla suurempi tai yhtä suuri kuin 'minimi nopeus'."
|
||||
}
|
||||
},
|
||||
"tips": {
|
||||
"desc": {
|
||||
"exampleLabel": "Esimerkki:"
|
||||
},
|
||||
"title": "Tekstisuodattimien käyttö"
|
||||
},
|
||||
"header": {
|
||||
"currentFilterType": "Suodata arvoja",
|
||||
"noFilters": "Suodattimet",
|
||||
"activeFilters": "Käytössä olevat suodattimet"
|
||||
}
|
||||
},
|
||||
"similaritySearch": {
|
||||
"title": "Samankaltaisten kohteiden haku",
|
||||
"active": "Samankaltaisuushaku aktiivinen",
|
||||
"clear": "Poista samankaltaisuushaku"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,8 @@
|
||||
"gpuDecoder": "GPU-dekooderi",
|
||||
"gpuInfo": {
|
||||
"vainfoOutput": {
|
||||
"title": "Vainfon tulostus"
|
||||
"title": "Vainfon tulostus",
|
||||
"returnCode": "Paluuarvo: {{code}}"
|
||||
},
|
||||
"toast": {
|
||||
"success": "Kopioi GPU:n tiedot leikepöydälle"
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"speech": "Fala",
|
||||
"babbling": "Balbuxo",
|
||||
"bicycle": "Bicicleta",
|
||||
"yell": "Berro",
|
||||
"car": "Coche",
|
||||
"crying": "Chorando",
|
||||
"sigh": "Suspiro",
|
||||
"singing": "Cantando",
|
||||
"motorcycle": "Motocicleta",
|
||||
"bus": "Bus",
|
||||
"train": "Tren",
|
||||
"boat": "Bote",
|
||||
"bird": "Paxaro",
|
||||
"cat": "Gato",
|
||||
"bellow": "Abaixo",
|
||||
"whoop": "Ei carballeira",
|
||||
"whispering": "Murmurando"
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"time": {
|
||||
"untilForTime": "Até {{time}}",
|
||||
"untilForRestart": "Até que se reinicie Frigate.",
|
||||
"justNow": "Xusto agora",
|
||||
"last7": "Últimos 7 días",
|
||||
"last14": "Últimos 14 días",
|
||||
"thisWeek": "Esta semana",
|
||||
"today": "Hoxe",
|
||||
"untilRestart": "Ata o reinicio",
|
||||
"ago": "Fai {{timeAgo}}"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"form": {
|
||||
"user": "Usuario/a",
|
||||
"password": "Contrasinal",
|
||||
"errors": {
|
||||
"passwordRequired": "Contrasinal obrigatorio",
|
||||
"unknownError": "Erro descoñecido. Revisa os logs.",
|
||||
"usernameRequired": "Usuario/a obrigatorio"
|
||||
},
|
||||
"login": "Iniciar sesión"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"group": {
|
||||
"label": "Grupos de cámaras",
|
||||
"add": "Engadir Grupo de cámaras",
|
||||
"delete": {
|
||||
"confirm": {
|
||||
"title": "Confirma o borrado",
|
||||
"desc": "Seguro/a que queres borrar o Grupo de cámaras <em>{{name}}</em>?"
|
||||
},
|
||||
"label": "Borrar o Grupo de Cámaras"
|
||||
},
|
||||
"name": {
|
||||
"placeholder": "Introduce un nome…",
|
||||
"errorMessage": {
|
||||
"nameMustNotPeriod": "Grupo de Cámaras non debe conter un punto."
|
||||
}
|
||||
},
|
||||
"edit": "Editar o Grupo de Cámaras"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"restart": {
|
||||
"title": "Estás seguro/a que queres reiniciar Frigate?",
|
||||
"button": "Reiniciar",
|
||||
"restarting": {
|
||||
"button": "Forzar reinicio",
|
||||
"content": "Esta páxina recargarase en {{countdown}} segundos.",
|
||||
"title": "Frigate está Reiniciando"
|
||||
}
|
||||
},
|
||||
"explore": {
|
||||
"plus": {
|
||||
"review": {
|
||||
"question": {
|
||||
"label": "Confirma esta etiqueta para Frigate Plus",
|
||||
"ask_an": "E isto un obxecto <code>{{label}}</code>?"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"filter": "Filtrar",
|
||||
"labels": {
|
||||
"label": "Etiquetas",
|
||||
"count_one": "{{count}} Etiqueta",
|
||||
"all": {
|
||||
"short": "Etiquetas",
|
||||
"title": "Todas as Etiquetas"
|
||||
}
|
||||
},
|
||||
"zones": {
|
||||
"all": {
|
||||
"title": "Tódalas zonas"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"iconPicker": {
|
||||
"selectIcon": "Selecciona unha icona",
|
||||
"search": {
|
||||
"placeholder": "Pesquisar unha icona…"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"button": {
|
||||
"downloadVideo": {
|
||||
"label": "Descargar vídeo",
|
||||
"toast": {
|
||||
"success": "O teu vídeo de revisión comezou a descargarse."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"noRecordingsFoundForThisTime": "Non se atoparon grabacións para ese período",
|
||||
"noPreviewFound": "Non se atopou previsualización",
|
||||
"submitFrigatePlus": {
|
||||
"submit": "Enviar",
|
||||
"title": "Enviar este frame a Frigate+?"
|
||||
},
|
||||
"stats": {
|
||||
"streamType": {
|
||||
"title": "Tipo de emisión:"
|
||||
}
|
||||
},
|
||||
"noPreviewFoundFor": "Vista Previa non atopada para {{cameraName}}"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"person": "Persoa",
|
||||
"bicycle": "Bicicleta",
|
||||
"airplane": "Avión",
|
||||
"motorcycle": "Motocicleta",
|
||||
"bus": "Bus",
|
||||
"train": "Tren",
|
||||
"boat": "Bote",
|
||||
"traffic_light": "Luces de tráfico",
|
||||
"fire_hydrant": "Boca de incendio",
|
||||
"street_sign": "Sinal de tráfico",
|
||||
"stop_sign": "Sinal de Stop",
|
||||
"parking_meter": "Parquímetro",
|
||||
"bench": "Banco",
|
||||
"bird": "Paxaro",
|
||||
"cat": "Gato",
|
||||
"car": "Coche"
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"documentTitle": "Editor de configuración - Frigate",
|
||||
"configEditor": "Editor de Preferencias",
|
||||
"saveOnly": "Só gardar",
|
||||
"toast": {
|
||||
"error": {
|
||||
"savingError": "Erro gardando configuración"
|
||||
}
|
||||
},
|
||||
"saveAndRestart": "Gardar e Reiniciar",
|
||||
"copyConfig": "Copiar Configuración"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"alerts": "Alertas",
|
||||
"detections": "Deteccións",
|
||||
"allCameras": "Tódalas cámaras",
|
||||
"timeline.aria": "Selecciona liña de tempo",
|
||||
"motion": {
|
||||
"only": "Só movemento",
|
||||
"label": "Movemento"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"documentTitle": "Explorar - Frigate",
|
||||
"generativeAI": "IA xenerativa",
|
||||
"exploreMore": "Explorar máis obxectos {{label}}",
|
||||
"exploreIsUnavailable": {
|
||||
"title": "Explorar non está Dispoñible",
|
||||
"embeddingsReindexing": {
|
||||
"finishingShortly": "Rematando ceo",
|
||||
"startingUp": "Comezando…"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"documentTitle": "Exportar - Frigate",
|
||||
"search": "Pesquisar",
|
||||
"deleteExport.desc": "Seguro que queres borrar {{exportName}}?",
|
||||
"editExport": {
|
||||
"saveExport": "Garda exportación"
|
||||
},
|
||||
"deleteExport": "Borrar exportación",
|
||||
"noExports": "Non se atoparon exportacións"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"description": {
|
||||
"addFace": "Navegar para engadir unha nova colección á Libraría de Caras.",
|
||||
"placeholder": "Introduce un nome para esta colección",
|
||||
"invalidName": "Nome non válido. Os nomes só poden incluír letras, números, espazos, apóstrofes, guións baixos e guións."
|
||||
},
|
||||
"details": {
|
||||
"unknown": "Descoñecido",
|
||||
"person": "Persoa"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"documentTitle": "Directo - Frigate",
|
||||
"documentTitle.withCamera": "{{camera}} - Directo - Frigate",
|
||||
"twoWayTalk": {
|
||||
"disable": "Deshabilita a Conversa de dous sentidos",
|
||||
"enable": "Habilitar a Conversa de dous sentidos"
|
||||
},
|
||||
"ptz": {
|
||||
"move": {
|
||||
"clickMove": {
|
||||
"label": "Pincha no frame para centrar a cámara"
|
||||
}
|
||||
}
|
||||
},
|
||||
"cameraAudio": {
|
||||
"enable": "Habilitar Audio de cámara"
|
||||
},
|
||||
"lowBandwidthMode": "Modo de Baixa Banda Ancha"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"filter": "Filtrar",
|
||||
"export": "Exportar",
|
||||
"calendar": "Calendario",
|
||||
"toast": {
|
||||
"error": {
|
||||
"noValidTimeSelected": "Rango de tempo inválido"
|
||||
}
|
||||
},
|
||||
"filters": "Filtros"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"search": "Pesquisar",
|
||||
"savedSearches": "Pesquisas gardadas",
|
||||
"button": {
|
||||
"save": "Gardar pesquisa",
|
||||
"filterActive": "Filtros activos",
|
||||
"clear": "Borrar pesquisa"
|
||||
},
|
||||
"filter": {
|
||||
"label": {
|
||||
"cameras": "Cámaras"
|
||||
}
|
||||
},
|
||||
"searchFor": "Procurar por {{inputValue}}"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"documentTitle": {
|
||||
"default": "Preferencias - Frigate",
|
||||
"authentication": "Configuracións de Autenticación - Frigate",
|
||||
"camera": "Configuracións da Cámara - Frigate",
|
||||
"general": "Configuracións xerais - Frigate",
|
||||
"notifications": "Configuración de Notificacións - Frigate",
|
||||
"enrichments": "Configuración complementarias - Frigate",
|
||||
"masksAndZones": "Editor de máscaras e zonas - Frigate"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"documentTitle": {
|
||||
"cameras": "Estatísticas de cámaras - Frigate",
|
||||
"storage": "Estatísticas de Almacenamento - Frigate",
|
||||
"general": "Estatísticas Xerais - Frigate",
|
||||
"enrichments": "Estatísticas complementarias - Frigate",
|
||||
"logs": {
|
||||
"frigate": "Rexistros de Frigate - Frigate"
|
||||
}
|
||||
},
|
||||
"title": "Sistema",
|
||||
"logs": {
|
||||
"download": {
|
||||
"label": "Descargar logs"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
"untilForRestart": "Amíg a Frigate újraindul.",
|
||||
"untilRestart": "Amíg újraindul",
|
||||
"justNow": "Most",
|
||||
"ago": "{{timeAgo}} ezelőtt",
|
||||
"ago": "Ennyi ideje: {{timeAgo}}",
|
||||
"today": "Ma",
|
||||
"yesterday": "Tegnap",
|
||||
"last7": "Elmúlt 7 nap",
|
||||
@@ -14,15 +14,15 @@
|
||||
"thisWeek": "Ezen a héten",
|
||||
"lastWeek": "Előző héten",
|
||||
"thisMonth": "Ebben a hónapban",
|
||||
"lastMonth": "Előző hónap",
|
||||
"lastMonth": "Előző hónapban",
|
||||
"5minutes": "5 perc",
|
||||
"10minutes": "10 perc",
|
||||
"30minutes": "30 perc",
|
||||
"1hour": "1 óra",
|
||||
"12hours": "12 óra",
|
||||
"24hours": "24 óra",
|
||||
"pm": "PM",
|
||||
"am": "AM",
|
||||
"pm": "du",
|
||||
"am": "de",
|
||||
"yr": "{{time}} év",
|
||||
"mo": "{{time}} hónap",
|
||||
"d": "{{time}} nap",
|
||||
@@ -41,38 +41,38 @@
|
||||
"day_one": "{{time}} nap",
|
||||
"day_other": "{{time}} napok",
|
||||
"formattedTimestamp": {
|
||||
"24hour": "HHH n, ÓÓ:pp:mm",
|
||||
"12hour": "HHH d, ó:pp:mm aaa"
|
||||
"24hour": "MMM d, HH:mm:ss",
|
||||
"12hour": "MMM d, h:mm:ss aaa"
|
||||
},
|
||||
"formattedTimestampMonthDayYear": {
|
||||
"12hour": "HHH d, éééé",
|
||||
"24hour": "HHH n, éééé"
|
||||
"12hour": "MMM d, yyyy",
|
||||
"24hour": "MMM d, yyyy"
|
||||
},
|
||||
"formattedTimestampHourMinute": {
|
||||
"24hour": "ÓÓ:pp",
|
||||
"12hour": "ó:pp aaa"
|
||||
"24hour": "HH:mm",
|
||||
"12hour": "h:mm aaa"
|
||||
},
|
||||
"formattedTimestamp2": {
|
||||
"24hour": "n HHH ÓÓ:pp:mm",
|
||||
"12hour": "HH/NN ó:pp:mma"
|
||||
"24hour": "d MMM HH:mm:ss",
|
||||
"12hour": "MM/dd h:mm:ssa"
|
||||
},
|
||||
"formattedTimestampHourMinuteSecond": {
|
||||
"24hour": "ÓÓ:pp:mm",
|
||||
"12hour": "ó:pp:mm aaa"
|
||||
"24hour": "HH:mm:ss",
|
||||
"12hour": "h:mm:ss aaa"
|
||||
},
|
||||
"formattedTimestampMonthDayYearHourMinute": {
|
||||
"24hour": "HHH n éééé, ÓÓ:pp",
|
||||
"12hour": "HHH n éééé, ó:pp aaa"
|
||||
"24hour": "MMM d yyyy, HH:mm",
|
||||
"12hour": "MMM d yyyy, h:mm aaa"
|
||||
},
|
||||
"formattedTimestampFilename": {
|
||||
"24hour": "HH-nn-éé-ÓÓ-pp-mm",
|
||||
"12hour": "HH-nn-éé-ó-pp-mm-a"
|
||||
"24hour": "yy-MM-dd-HH-mm-ss",
|
||||
"12hour": "yy-MM-dd-h-mm-ss-a"
|
||||
},
|
||||
"formattedTimestampMonthDayHourMinute": {
|
||||
"24hour": "HHH n, ÓÓ:pp",
|
||||
"12hour": "HHH n, ó:pp aaa"
|
||||
"24hour": "MMM d, HH:mm",
|
||||
"12hour": "MMM d, h:mm aaa"
|
||||
},
|
||||
"formattedTimestampMonthDay": "HHH n"
|
||||
"formattedTimestampMonthDay": "MMM d"
|
||||
},
|
||||
"menu": {
|
||||
"darkMode": {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"ask_a": "Ez a tárgy egy <code>{{label}}</code>?",
|
||||
"label": "Erősítse meg ezt a cimkét a Frigate plus felé",
|
||||
"ask_an": "Ez a tárgy egy <code>{{label}}</code>?",
|
||||
"ask_full": "Ez egy <code>{{untranslatedLabel}}</code>{{translatedLabel}} tárgy?"
|
||||
"ask_full": "Ez a tárgy egy <code>{{untranslatedLabel}}</code> ({{translatedLabel}})?"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
"recordings": {
|
||||
"documentTitle": "Felvételek - Frigate"
|
||||
},
|
||||
"markTheseItemsAsReviewed": "Ezen elwmek megjelölése áttekintettként",
|
||||
"markTheseItemsAsReviewed": "Ezen elemek megjelölése áttekintettként",
|
||||
"markAsReviewed": "Megjelölés Áttekintettként",
|
||||
"selected_one": "{{count}} kiválasztva",
|
||||
"selected_other": "{{count}} kiválasztva"
|
||||
|
||||
@@ -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": "Áltlános Beállítások - Frigate",
|
||||
"frigatePlus": "Frigate+ beállítások - Frigate",
|
||||
"notifications": "Értesítések beállítása - Frigate",
|
||||
"motionTuner": "Mozgás Hangoló - Frigate",
|
||||
@@ -143,7 +143,7 @@
|
||||
"success": "A kiegészítő beállítások elmentésre kerültek. A módosítások alkalmazásához indítsa újra a Frigate-et."
|
||||
},
|
||||
"unsavedChanges": "Mentetlen gazdagítási beállítás változtatások",
|
||||
"title": "Kiegészítés Beállítások",
|
||||
"title": "Kiegészítők Beállítása",
|
||||
"restart_required": "Újraindítás szükséges (a kiegészítő beállítások megváltoztak)"
|
||||
},
|
||||
"notification": {
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
},
|
||||
"review": {
|
||||
"question": {
|
||||
"label": "Konfirmasi label ini untuk Frigate Plus"
|
||||
"label": "Konfirmasi label ini untuk Frigate Plus",
|
||||
"ask_a": "Apakah objek ini adalah sebuah<code>{{label}}</code>?"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,5 +11,6 @@
|
||||
"alert": "Tidak ada peringatan untuk ditinjau",
|
||||
"motion": "Data gerakan tidak ditemukan"
|
||||
},
|
||||
"timeline.aria": "Pilih timeline"
|
||||
"timeline.aria": "Pilih timeline",
|
||||
"timeline": "Linimasa"
|
||||
}
|
||||
|
||||
@@ -7,7 +7,10 @@
|
||||
"context": "Jelajahi dapat digunakan setelah embedding objek yang dilacak selesai di-reindex.",
|
||||
"startingUp": "Sedang memulai…",
|
||||
"estimatedTime": "Perkiraan waktu tersisa:",
|
||||
"finishingShortly": "Selesai sesaat lagi"
|
||||
"finishingShortly": "Selesai sesaat lagi",
|
||||
"step": {
|
||||
"thumbnailsEmbedded": "Keluku dilampirkan "
|
||||
}
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
|
||||
@@ -8,5 +8,6 @@
|
||||
"delete": "Hapus pencarian yang disimpan",
|
||||
"filterInformation": "Saring Informasi",
|
||||
"filterActive": "Filter aktif"
|
||||
}
|
||||
},
|
||||
"trackedObjectId": "Tracked Object ID"
|
||||
}
|
||||
|
||||
@@ -27,5 +27,12 @@
|
||||
"vehicle": "Mašina",
|
||||
"animal": "Gyvūnas",
|
||||
"bark": "Lojimas",
|
||||
"goat": "Ožka"
|
||||
"goat": "Ožka",
|
||||
"bellow": "Apačioje",
|
||||
"whoop": "Rėkavimas",
|
||||
"whispering": "Šnabždėjimas",
|
||||
"laughter": "Juokas",
|
||||
"snicker": "Kikenimas",
|
||||
"crying": "Verkimas",
|
||||
"singing": "Dainavimas"
|
||||
}
|
||||
|
||||
@@ -2,6 +2,21 @@
|
||||
"group": {
|
||||
"label": "Kamerų Grupės",
|
||||
"add": "Sukurti Kamerų Grupę",
|
||||
"edit": "Modifikuoti Kamerų Grupę"
|
||||
"edit": "Modifikuoti Kamerų Grupę",
|
||||
"delete": {
|
||||
"label": "Ištrinti Kamerų Grupę",
|
||||
"confirm": {
|
||||
"title": "Patvirtinti ištrynimą",
|
||||
"desc": "Ar tikrai norite ištrinti šią kamerų grupę <em>{{name}}</em>?"
|
||||
}
|
||||
},
|
||||
"name": {
|
||||
"label": "Pavadinimas",
|
||||
"placeholder": "Įveskite pavadinimą…",
|
||||
"errorMessage": {
|
||||
"mustLeastCharacters": "Kamerų grupės pavadinimas turi būti bent 2 simbolių.",
|
||||
"exists": "Kamerų grupės pavadinimas jau egzistuoja."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,23 @@
|
||||
"title": "Ar įsitikinę kad norite perkrauti Frigate?",
|
||||
"button": "Perkrauti",
|
||||
"restarting": {
|
||||
"title": "Frigate Persikrauna"
|
||||
"title": "Frigate Persikrauna",
|
||||
"content": "Šis puslapis persikraus už {{countdown}} sekundžių.",
|
||||
"button": "Priverstinai Perkrauti Dabar"
|
||||
}
|
||||
},
|
||||
"explore": {
|
||||
"plus": {
|
||||
"review": {
|
||||
"question": {
|
||||
"ask_a": "Ar šis objektas yra <code>{{label}}</code>?",
|
||||
"ask_an": "Ar šis objektas yra <code>{{label}}</code>?",
|
||||
"label": "Patvirtinti šią etiketę į Frigate Plus"
|
||||
}
|
||||
},
|
||||
"submitToPlus": {
|
||||
"label": "Pateiktį į Frigate+"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,17 @@
|
||||
"labels": {
|
||||
"label": "Etiketės",
|
||||
"all": {
|
||||
"title": "Visos Etiketės"
|
||||
"title": "Visos Etiketės",
|
||||
"short": "Etiketės"
|
||||
},
|
||||
"count_one": "{{count}} Etiketė",
|
||||
"count_other": "{{count}} Etiketės"
|
||||
},
|
||||
"zones": {
|
||||
"label": "Zonos",
|
||||
"all": {
|
||||
"title": "Visos Zonos",
|
||||
"short": "Zonos"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
{
|
||||
"documentTitle": "Tyrinėti - Frigate",
|
||||
"generativeAI": "Generatyvinis DI",
|
||||
"exploreMore": "Apžvelgti daugiau {{label}} objektų"
|
||||
"exploreMore": "Apžvelgti daugiau {{label}} objektų",
|
||||
"exploreIsUnavailable": {
|
||||
"embeddingsReindexing": {
|
||||
"startingUp": "Paleidžiama…",
|
||||
"estimatedTime": "Apytikris likęs laikas:"
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"timestamp": "Laiko žyma"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,5 +3,11 @@
|
||||
"addFace": "Apžiūrėkite naujų kolekcijų pridėjimą prie Veidų Bibliotekos.",
|
||||
"placeholder": "Įveskite pavadinimą šiai kolekcijai",
|
||||
"invalidName": "Netinkamas vardas. Vardai gali turėti tik raides, numerius, tarpus, apostrofus, pabraukimus ir brukšnelius."
|
||||
},
|
||||
"details": {
|
||||
"person": "Žmogus",
|
||||
"face": "Veido detelės",
|
||||
"timestamp": "Laiko žyma",
|
||||
"unknown": "Nežinoma"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
{
|
||||
"documentTitle": "Gyvai - Frigate",
|
||||
"documentTitle.withCamera": "{{camera}} - Tiesiogiai - Frigate",
|
||||
"lowBandwidthMode": "Mažo-pralaidumo Rėžimas"
|
||||
"lowBandwidthMode": "Mažo-pralaidumo Rėžimas",
|
||||
"cameraAudio": {
|
||||
"enable": "Įgalinti Kamerų Garsą",
|
||||
"disable": "Išjungti Kamerų Garsą"
|
||||
},
|
||||
"twoWayTalk": {
|
||||
"enable": "Įgalinti Dvipusį Pokalbį",
|
||||
"disable": "Išjungti Dvipusį Pokalbį"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,18 @@
|
||||
{
|
||||
"search": "Paieška",
|
||||
"savedSearches": "Išsaugotos Paieškos"
|
||||
"savedSearches": "Išsaugotos Paieškos",
|
||||
"searchFor": "Ieškoti {{inputValue}}",
|
||||
"button": {
|
||||
"clear": "Išvalyti paiešką",
|
||||
"save": "Išsaugoti paiešką",
|
||||
"delete": "Ištrinti išsaugotą paiešką",
|
||||
"filterInformation": "Filtruoti informaciją",
|
||||
"filterActive": "Aktyvūs filtrai"
|
||||
},
|
||||
"trackedObjectId": "Sekamo Objekto ID",
|
||||
"filter": {
|
||||
"label": {
|
||||
"cameras": "Kameros"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
{
|
||||
"documentTitle": {
|
||||
"default": "Nustatymai - Frigate",
|
||||
"authentication": "Autentifikavimo Nustatymai - Frigate"
|
||||
"authentication": "Autentifikavimo Nustatymai - Frigate",
|
||||
"camera": "Kameros Nustatymai - Frigate",
|
||||
"object": "Derinti - Frigate",
|
||||
"general": "Bendrieji Nustatymai - Frigate",
|
||||
"frigatePlus": "Frigate+ Nustatymai - Frigate",
|
||||
"notifications": "Pranešimų Nustatymai - Frigate",
|
||||
"motionTuner": "Judesio Derinimas - Frigate"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,19 @@
|
||||
{
|
||||
"documentTitle": {
|
||||
"cameras": "Kamerų Statistika - Frigate",
|
||||
"storage": "Saugyklos Statistika - Frigate"
|
||||
"storage": "Saugyklos Statistika - Frigate",
|
||||
"logs": {
|
||||
"frigate": "Frigate Žurnalas - Frigate",
|
||||
"go2rtc": "Go2RTC Žurnalas - Frigate",
|
||||
"nginx": "Nginx Žurnalas - Frigate"
|
||||
},
|
||||
"general": "Bendroji Statistika - Frigate"
|
||||
},
|
||||
"title": "Sistema",
|
||||
"metrics": "Sistemos metrikos",
|
||||
"logs": {
|
||||
"download": {
|
||||
"label": "Parsisiųsti Žurnalą"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -644,7 +644,7 @@
|
||||
}
|
||||
},
|
||||
"title": "Semantisch zoeken",
|
||||
"desc": "Semantische zoektocht in Frigate laat je opsporingsberichten vinden binnen je beoordelingsvoorwerpen met het beeld zelf, een gebruiker-definieerde tekstbeschrijving, of een automatisch gegen.",
|
||||
"desc": "Semantisch zoeken in Frigate stelt je in staat om getraceerde objecten binnen je review-items te vinden, met behulp van de afbeelding zelf, een door de gebruiker gedefinieerde tekstbeschrijving of een automatisch gegenereerde beschrijving.",
|
||||
"readTheDocumentation": "Lees de documentatie"
|
||||
},
|
||||
"faceRecognition": {
|
||||
|
||||
@@ -0,0 +1,429 @@
|
||||
{
|
||||
"mantra": "Mantra",
|
||||
"child_singing": "Criança cantando",
|
||||
"speech": "Discurso",
|
||||
"yell": "Gritar",
|
||||
"chant": "Canto",
|
||||
"babbling": "Balbuciando",
|
||||
"bellow": "Abaixo",
|
||||
"whoop": "Grito de Felicidade",
|
||||
"whispering": "Sussurrando",
|
||||
"laughter": "Risada",
|
||||
"snicker": "Risada",
|
||||
"crying": "Choro",
|
||||
"sigh": "Suspirar",
|
||||
"singing": "Cantoria",
|
||||
"choir": "Coro",
|
||||
"yodeling": "Cantando",
|
||||
"bicycle": "Bicicleta",
|
||||
"car": "Carro",
|
||||
"motorcycle": "Moto",
|
||||
"bus": "Ônibus",
|
||||
"train": "Trem",
|
||||
"boat": "Barco",
|
||||
"bird": "Pássaro",
|
||||
"cat": "Gato",
|
||||
"dog": "Cachorro",
|
||||
"rapping": "Cantando rap",
|
||||
"horse": "Cavalo",
|
||||
"humming": "Cantarolando",
|
||||
"sheep": "Ovelha",
|
||||
"synthetic_singing": "Canto Sintético",
|
||||
"groan": "Gemido",
|
||||
"grunt": "Grunhido",
|
||||
"whistling": "Assobio",
|
||||
"breathing": "Respiração",
|
||||
"camera": "Câmera",
|
||||
"wheeze": "Chiado",
|
||||
"snoring": "Ronco",
|
||||
"gasp": "Respiração Ofegante",
|
||||
"pant": "Arfado",
|
||||
"snort": "Bufado",
|
||||
"cough": "Tosse",
|
||||
"throat_clearing": "Pigarro",
|
||||
"sneeze": "Espirro",
|
||||
"sniff": "Fungado",
|
||||
"run": "Executar",
|
||||
"shuffle": "Embaralhar",
|
||||
"footsteps": "Passos",
|
||||
"chewing": "Mastigação",
|
||||
"biting": "Mordida",
|
||||
"gargling": "Gargarejo",
|
||||
"stomach_rumble": "Ronco de Estômago",
|
||||
"burping": "Arroto",
|
||||
"skateboard": "Skate",
|
||||
"hiccup": "Soluço",
|
||||
"fart": "Flatulência",
|
||||
"hands": "Mãos",
|
||||
"finger_snapping": "Estalar de Dedos",
|
||||
"clapping": "Palmas",
|
||||
"heartbeat": "Batida de Coração",
|
||||
"heart_murmur": "Sopro Cardíaco",
|
||||
"cheering": "Comemoração",
|
||||
"applause": "Aplausos",
|
||||
"chatter": "Conversa",
|
||||
"crowd": "Multidão",
|
||||
"children_playing": "Crianças Brincando",
|
||||
"animal": "Animal",
|
||||
"pets": "Animais de Estimação",
|
||||
"bark": "Latido",
|
||||
"yip": "Latido / Grito Agudo",
|
||||
"howl": "Uivado",
|
||||
"bow_wow": "Latido",
|
||||
"growling": "Rosnado",
|
||||
"whimper_dog": "Choro de Cachorro",
|
||||
"purr": "Ronronado",
|
||||
"meow": "Miado",
|
||||
"hiss": "Sibilo",
|
||||
"caterwaul": "Lamúria",
|
||||
"livestock": "Animais de Criação",
|
||||
"clip_clop": "Galope",
|
||||
"neigh": "Relincho",
|
||||
"door": "Porta",
|
||||
"cattle": "Gado",
|
||||
"moo": "Mugido",
|
||||
"cowbell": "Sino de Vaca",
|
||||
"mouse": "Rato",
|
||||
"pig": "Porco",
|
||||
"oink": "Grunhido de Porco",
|
||||
"keyboard": "Teclado",
|
||||
"goat": "Cabra",
|
||||
"bleat": "Balido",
|
||||
"fowl": "Ave",
|
||||
"chicken": "Galinha",
|
||||
"sink": "Pia",
|
||||
"cluck": "Cacarejo",
|
||||
"cock_a_doodle_doo": "Cacarejado",
|
||||
"blender": "Liquidificador",
|
||||
"turkey": "Peru",
|
||||
"gobble": "Deglutição",
|
||||
"clock": "Relógio",
|
||||
"duck": "Pato",
|
||||
"quack": "Grasnado",
|
||||
"scissors": "Tesouras",
|
||||
"goose": "Ganso",
|
||||
"honk": "Buzina",
|
||||
"hair_dryer": "Secador de Cabelo",
|
||||
"wild_animals": "Animais Selvagens",
|
||||
"toothbrush": "Escova de Dentes",
|
||||
"roaring_cats": "Felinos Rugindo",
|
||||
"roar": "Rugido",
|
||||
"vehicle": "Veículo",
|
||||
"chirp": "Piado",
|
||||
"squawk": "Guincho Animal",
|
||||
"pigeon": "Pombo",
|
||||
"dogs": "Cachorros",
|
||||
"rats": "Ratos",
|
||||
"coo": "Arrulhado de Pombo",
|
||||
"crow": "Corvo",
|
||||
"caw": "Grasnado de Corvo",
|
||||
"owl": "Coruja",
|
||||
"hoot": "Chirriado de Coruja",
|
||||
"flapping_wings": "Bater de Asas",
|
||||
"patter": "Passos Leves",
|
||||
"insect": "Inseto",
|
||||
"cricket": "Grilo",
|
||||
"mosquito": "Mosquito",
|
||||
"fly": "Mosca",
|
||||
"buzz": "Zumbido",
|
||||
"frog": "Sapo",
|
||||
"croak": "Coaxado",
|
||||
"snake": "Cobra",
|
||||
"rattle": "Chocalho",
|
||||
"whale_vocalization": "Vocalização de Baleia",
|
||||
"music": "Música",
|
||||
"musical_instrument": "Instrumento Musical",
|
||||
"plucked_string_instrument": "Instrumento de Cordas Dedilhadas",
|
||||
"guitar": "Violão",
|
||||
"electric_guitar": "Guitarra",
|
||||
"bass_guitar": "Baixo",
|
||||
"acoustic_guitar": "Violão Acústico",
|
||||
"steel_guitar": "Guitarra Havaiana",
|
||||
"tapping": "Batidas Leves",
|
||||
"strum": "Dedilhado",
|
||||
"banjo": "Banjo",
|
||||
"sitar": "Sitar",
|
||||
"mandolin": "Bandolim",
|
||||
"zither": "Cítara",
|
||||
"ukulele": "Ukulele",
|
||||
"piano": "Piano",
|
||||
"electric_piano": "Piano Elétrico",
|
||||
"organ": "Órgão",
|
||||
"electronic_organ": "Órgão Eletrônico",
|
||||
"hammond_organ": "Órgão Hammond",
|
||||
"synthesizer": "Sintetizador",
|
||||
"sampler": "Sampler",
|
||||
"harpsichord": "Cravo (Instrumento Musical)",
|
||||
"percussion": "Percussão",
|
||||
"drum_kit": "Kit de Baterias",
|
||||
"drum_machine": "Bateria Eletrônica",
|
||||
"drum": "Tambor",
|
||||
"snare_drum": "Caixa Clara",
|
||||
"rimshot": "Rimshot",
|
||||
"drum_roll": "Tambores Rufando",
|
||||
"bass_drum": "Bumbo",
|
||||
"timpani": "Tímpanos (Instrumento Musical)",
|
||||
"tabla": "Tabla",
|
||||
"wood_block": "Bloco de Madeira",
|
||||
"bagpipes": "Gaita de Fole",
|
||||
"pop_music": "Música Pop",
|
||||
"grunge": "Grunge",
|
||||
"middle_eastern_music": "Música do Oriente Médio",
|
||||
"jazz": "Jazz",
|
||||
"disco": "Disco",
|
||||
"classical_music": "Música Clássica",
|
||||
"opera": "Ópera",
|
||||
"electronic_music": "Música Eletrónica",
|
||||
"house_music": "Música House",
|
||||
"techno": "Techno",
|
||||
"dubstep": "Dubstep",
|
||||
"drum_and_bass": "Drum and Bass",
|
||||
"electronica": "Eletrónica",
|
||||
"cymbal": "Címbalo",
|
||||
"hi_hat": "Chimbau",
|
||||
"tambourine": "Pandeiro",
|
||||
"maraca": "Maraca",
|
||||
"gong": "Gongo",
|
||||
"tubular_bells": "Sinos Tubulares",
|
||||
"mallet_percussion": "Percussão de Martelo",
|
||||
"marimba": "Marimba",
|
||||
"glockenspiel": "Glockenspiel",
|
||||
"vibraphone": "Vibrafone",
|
||||
"steelpan": "Panela de Aço",
|
||||
"orchestra": "Orquestra",
|
||||
"brass_instrument": "Instrumento de Metal",
|
||||
"french_horn": "Trompa Francesa",
|
||||
"trumpet": "Trombeta",
|
||||
"trombone": "Trombone",
|
||||
"bowed_string_instrument": "Instrumento de Cordas Friccionadas",
|
||||
"string_section": "Seção de Cordas",
|
||||
"violin": "Violino",
|
||||
"pizzicato": "Pizzicato",
|
||||
"cello": "Violoncelo",
|
||||
"double_bass": "Contrabaixo",
|
||||
"wind_instrument": "Instrumento de Sopro",
|
||||
"flute": "Flauta",
|
||||
"saxophone": "Saxofone",
|
||||
"clarinet": "Clarinete",
|
||||
"harp": "Harpa",
|
||||
"bell": "Sino",
|
||||
"church_bell": "Sino de Igreja",
|
||||
"jingle_bell": "Guizo",
|
||||
"bicycle_bell": "Campainha de Bicicleta",
|
||||
"tuning_fork": "Diapasão",
|
||||
"chime": "Carrilhão",
|
||||
"wind_chime": "Sinos de Vento",
|
||||
"harmonica": "Gaita",
|
||||
"accordion": "Acordeão",
|
||||
"didgeridoo": "Didjeridu",
|
||||
"theremin": "Teremim",
|
||||
"scratching": "Arranhado",
|
||||
"hip_hop_music": "Música Hip-Hop",
|
||||
"beatboxing": "Beatbox",
|
||||
"rock_music": "Rock",
|
||||
"heavy_metal": "Heavy Metal",
|
||||
"punk_rock": "Punk Rock",
|
||||
"progressive_rock": "Rock Progressivo",
|
||||
"rock_and_roll": "Rock and Roll",
|
||||
"psychedelic_rock": "Rock Psicodélico",
|
||||
"rhythm_and_blues": "Rhythm and Blues",
|
||||
"soul_music": "Música Soul",
|
||||
"music_of_latin_america": "Music of Latin America",
|
||||
"salsa_music": "Música Salsa",
|
||||
"flamenco": "Flamenco",
|
||||
"blues": "Blues",
|
||||
"music_for_children": "Música para Crianças",
|
||||
"new-age_music": "Música New Age",
|
||||
"vocal_music": "Música Vocal",
|
||||
"a_capella": "A Capella",
|
||||
"music_of_africa": "Music of Africa",
|
||||
"afrobeat": "Afrobeat",
|
||||
"christian_music": "Música Cristã",
|
||||
"gospel_music": "Música Gospel",
|
||||
"music_of_asia": "Music of Asia",
|
||||
"carnatic_music": "Música Carnática",
|
||||
"music_of_bollywood": "Música de Bollywood",
|
||||
"ska": "Ska",
|
||||
"traditional_music": "Música Tradicional",
|
||||
"independent_music": "Música Independente",
|
||||
"song": "Música",
|
||||
"thunderstorm": "Tempestade",
|
||||
"thunder": "Trovão",
|
||||
"water": "Água",
|
||||
"rain": "Chuva",
|
||||
"raindrop": "Gota de Chuva",
|
||||
"rain_on_surface": "Chuva na Superfície",
|
||||
"stream": "Transmissão",
|
||||
"waterfall": "Cachoeira",
|
||||
"ocean": "Oceano",
|
||||
"waves": "Ondas",
|
||||
"steam": "Vapor",
|
||||
"gurgling": "Borbulhado",
|
||||
"fire": "Fogo",
|
||||
"crackle": "Estalo",
|
||||
"sailboat": "Veleiro",
|
||||
"rowboat": "Barco a Remo",
|
||||
"motorboat": "Lancha",
|
||||
"ship": "Navio",
|
||||
"motor_vehicle": "Veículo Motorizado",
|
||||
"toot": "Buzinado",
|
||||
"car_alarm": "Alarme de Carro",
|
||||
"power_windows": "Vidros Elétricos",
|
||||
"skidding": "Derrapado",
|
||||
"singing_bowl": "Tigela Tibetana",
|
||||
"reggae": "Reggae",
|
||||
"country": "País",
|
||||
"swing_music": "Música Swing",
|
||||
"bluegrass": "Música Bluegrass",
|
||||
"funk": "Funk",
|
||||
"folk_music": "Música Folk",
|
||||
"electronic_dance_music": "Música Eletrônica",
|
||||
"ambient_music": "Música Ambiente",
|
||||
"trance_music": "Música Trance",
|
||||
"background_music": "Música de Fundo",
|
||||
"theme_music": "Música Tema",
|
||||
"jingle": "Jingle",
|
||||
"soundtrack_music": "Música de Trilha Sonora",
|
||||
"lullaby": "Canção de Ninar",
|
||||
"video_game_music": "Música de Video Game",
|
||||
"christmas_music": "Música Natalina",
|
||||
"dance_music": "Música Dance",
|
||||
"wedding_music": "Música de Casamento",
|
||||
"happy_music": "Música Feliz",
|
||||
"sad_music": "Música Triste",
|
||||
"tender_music": "Música Suave",
|
||||
"exciting_music": "Música Empolgante",
|
||||
"angry_music": "Música Raivosa",
|
||||
"scary_music": "Música Assustadora",
|
||||
"wind": "Vento",
|
||||
"rustling_leaves": "Folhas Farfalhantes",
|
||||
"fixed-wing_aircraft": "Aeronave de Asa Fixa",
|
||||
"engine": "Motor",
|
||||
"light_engine": "Motor Leve",
|
||||
"dental_drill's_drill": "Broca Odontológica",
|
||||
"lawn_mower": "Cortador de Grama",
|
||||
"chainsaw": "Motosserra",
|
||||
"medium_engine": "Motor Médio",
|
||||
"heavy_engine": "Motor Pesado",
|
||||
"engine_knocking": "Motor Batendo",
|
||||
"engine_starting": "Motor Partindo",
|
||||
"idling": "Marcha Lenta",
|
||||
"chopping": "Cortando",
|
||||
"frying": "Fritando",
|
||||
"microwave_oven": "Forno Microondas",
|
||||
"water_tap": "Torneira de Água",
|
||||
"bathtub": "Banheira",
|
||||
"toilet_flush": "Descarga de Vaso Sanitário",
|
||||
"computer_keyboard": "Teclado de Computador",
|
||||
"writing": "Escrita",
|
||||
"alarm": "Alarme",
|
||||
"telephone": "Telefone",
|
||||
"telephone_bell_ringing": "Telefone Tocando",
|
||||
"ringtone": "Toque de Celular",
|
||||
"telephone_dialing": "Telefone Discando",
|
||||
"dial_tone": "Tom de Discagem",
|
||||
"busy_signal": "Sinal de Ocupado",
|
||||
"alarm_clock": "Despertador",
|
||||
"siren": "Sirene",
|
||||
"civil_defense_siren": "Sirene de Defesa Civil",
|
||||
"wind_noise": "Ruído de Vento",
|
||||
"tire_squeal": "Pneus Cantando",
|
||||
"car_passing_by": "Carro Passando",
|
||||
"race_car": "Carro de Corrida",
|
||||
"truck": "Pickup / Caminhão",
|
||||
"air_brake": "Freios a Ar",
|
||||
"air_horn": "Buzina a Ar",
|
||||
"reversing_beeps": "Alarme de Ré",
|
||||
"ice_cream_truck": "Carro de Sorvete",
|
||||
"emergency_vehicle": "Veículo de Emergência",
|
||||
"police_car": "Carro de Polícia",
|
||||
"ambulance": "Ambulância",
|
||||
"fire_engine": "Caminhão de Bombeiros",
|
||||
"traffic_noise": "Barulho de Tráfego",
|
||||
"rail_transport": "Transporte Ferroviário",
|
||||
"train_whistle": "Apito de Trem",
|
||||
"train_horn": "Buzina de Trem",
|
||||
"railroad_car": "Vagão de Trem",
|
||||
"train_wheels_squealing": "Rodas de Trem Rangendo",
|
||||
"subway": "Metrô",
|
||||
"aircraft": "Aeronave",
|
||||
"aircraft_engine": "Motor de Aeronave",
|
||||
"jet_engine": "Motor a Jato",
|
||||
"propeller": "Hélice",
|
||||
"helicopter": "Helicóptero",
|
||||
"accelerating": "Acelerando",
|
||||
"doorbell": "Campainha",
|
||||
"ding-dong": "Toque de Campainha",
|
||||
"sliding_door": "Porta de Correr",
|
||||
"slam": "Batida Forte",
|
||||
"knock": "Batida na Porta",
|
||||
"burst": "Estouro / Rajada",
|
||||
"eruption": "Erupção",
|
||||
"boom": "Estrondo",
|
||||
"wood": "Madeira",
|
||||
"chop": "Barulho de Corte",
|
||||
"splinter": "Lascado",
|
||||
"crack": "Rachado",
|
||||
"glass": "Vidro",
|
||||
"chink": "Fenda",
|
||||
"shatter": "Estilhaçado",
|
||||
"silence": "Silêncio",
|
||||
"sound_effect": "Efeito Sonoro",
|
||||
"environmental_noise": "Ruido Ambiente",
|
||||
"static": "Estático",
|
||||
"white_noise": "Ruido Branco",
|
||||
"pink_noise": "Ruido Rosa",
|
||||
"television": "Televisão",
|
||||
"radio": "Rádio",
|
||||
"field_recording": "Gravação de Campo",
|
||||
"scream": "Grito",
|
||||
"tap": "Toque",
|
||||
"squeak": "Rangido",
|
||||
"cupboard_open_or_close": "Cristaleira Abrindo ou Fechando",
|
||||
"drawer_open_or_close": "Gaveteiro Abrindo ou Fechando",
|
||||
"dishes": "Pratos",
|
||||
"cutlery": "Talheres",
|
||||
"electric_toothbrush": "Escova de Dentes Elétrica",
|
||||
"vacuum_cleaner": "Aspirador de Pó",
|
||||
"zipper": "Zíper",
|
||||
"keys_jangling": "Chaves Chacoalhando",
|
||||
"coin": "Moeda",
|
||||
"electric_shaver": "Barbeador Elétrico",
|
||||
"shuffling_cards": "Embaralhar de Cartas",
|
||||
"typing": "Digitação",
|
||||
"typewriter": "Máquina de Escrever",
|
||||
"buzzer": "Zumbador",
|
||||
"smoke_detector": "Detector de Fumaça",
|
||||
"fire_alarm": "Alarme de Incêndio",
|
||||
"foghorn": "Buzina de Nevoeiro",
|
||||
"whistle": "Apito",
|
||||
"steam_whistle": "Apito a Vapor",
|
||||
"mechanisms": "Mecanismos",
|
||||
"ratchet": "Catraca",
|
||||
"tick": "Tique",
|
||||
"tick-tock": "Tique-Toque",
|
||||
"gears": "Engrenagens",
|
||||
"pulleys": "Polias",
|
||||
"sewing_machine": "Máquina de Costura",
|
||||
"mechanical_fan": "Ventilador Mecânico",
|
||||
"air_conditioning": "Ar-Condicionado",
|
||||
"cash_register": "Caixa Registradora",
|
||||
"printer": "Impressora",
|
||||
"single-lens_reflex_camera": "Câmera Single-Lens Reflex",
|
||||
"tools": "Ferramentas",
|
||||
"hammer": "Martelo",
|
||||
"jackhammer": "Britadeira",
|
||||
"sawing": "Som de Serra",
|
||||
"filing": "Som de Lima",
|
||||
"sanding": "Lixamento",
|
||||
"power_tool": "Ferramenta Elétrica",
|
||||
"drill": "Furadeira",
|
||||
"explosion": "Explosão",
|
||||
"gunshot": "Tiro",
|
||||
"machine_gun": "Metralhadora",
|
||||
"fusillade": "Fuzilamento",
|
||||
"artillery_fire": "Fogo de Artilharia",
|
||||
"cap_gun": "Espoleta",
|
||||
"fireworks": "Fogos de Artifício",
|
||||
"firecracker": "Rojões"
|
||||
}
|
||||
@@ -25,27 +25,27 @@
|
||||
"yr": "{{time}}ano",
|
||||
"year_one": "{{time}} ano",
|
||||
"year_many": "{{time}} anos",
|
||||
"year_other": "",
|
||||
"year_other": "{{time}} anos",
|
||||
"mo": "{{time}}mês",
|
||||
"month_one": "{{time}} mês",
|
||||
"month_many": "{{time}} meses",
|
||||
"month_other": "",
|
||||
"month_other": "{{time}} meses",
|
||||
"d": "{{time}} dia",
|
||||
"day_one": "{{time}} dia",
|
||||
"day_many": "{{time}} dias",
|
||||
"day_other": "",
|
||||
"day_other": "{{time}} dias",
|
||||
"h": "{{time}}h",
|
||||
"hour_one": "{{time}} hora",
|
||||
"hour_many": "{{time}} horas",
|
||||
"hour_other": "",
|
||||
"hour_other": "{{time}} horas",
|
||||
"m": "{{time}}m",
|
||||
"minute_one": "{{time}} minuto",
|
||||
"minute_many": "{{time}} minutos",
|
||||
"minute_other": "",
|
||||
"minute_other": "{{time}} minutos",
|
||||
"s": "{{time}}s",
|
||||
"second_one": "{{time}} segundo",
|
||||
"second_many": "{{time}} segundos",
|
||||
"second_other": "",
|
||||
"second_other": "{{time}} segundos",
|
||||
"formattedTimestamp": {
|
||||
"12hour": "d MMM,h:mm:ss aaa",
|
||||
"24hour": "d MMM, HH:mm:ss"
|
||||
@@ -57,7 +57,209 @@
|
||||
"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-hh-mm-ss",
|
||||
"24hour": "dd-MM-yy-HH-mm-ss"
|
||||
}
|
||||
},
|
||||
"selectItem": "Selecione {{item}}"
|
||||
"selectItem": "Selecione {{item}}",
|
||||
"unit": {
|
||||
"speed": {
|
||||
"mph": "mi/h",
|
||||
"kph": "km/h"
|
||||
},
|
||||
"length": {
|
||||
"feet": "pés",
|
||||
"meters": "metros"
|
||||
}
|
||||
},
|
||||
"label": {
|
||||
"back": "Voltar"
|
||||
},
|
||||
"button": {
|
||||
"apply": "Aplicar",
|
||||
"reset": "Resetar",
|
||||
"done": "Concluído",
|
||||
"enabled": "Habilitado",
|
||||
"enable": "Habilitar",
|
||||
"disabled": "Desativado",
|
||||
"disable": "Desativar",
|
||||
"save": "Salvar",
|
||||
"saving": "Salvando…",
|
||||
"cancel": "Cancelar",
|
||||
"close": "Fechar",
|
||||
"copy": "Copiar",
|
||||
"back": "Voltar",
|
||||
"history": "Histórico",
|
||||
"fullscreen": "Tela Inteira",
|
||||
"exitFullscreen": "Sair da Tela Inteira",
|
||||
"pictureInPicture": "Miniatura Flutuante",
|
||||
"twoWayTalk": "Áudio Bidirecional",
|
||||
"cameraAudio": "Áudio da Câmera",
|
||||
"on": "LIGADO",
|
||||
"off": "DESLIGADO",
|
||||
"edit": "Editar",
|
||||
"copyCoordinates": "Copiar coordenadas",
|
||||
"delete": "Deletar",
|
||||
"yes": "Sim",
|
||||
"no": "Não",
|
||||
"download": "Baixar",
|
||||
"info": "Informação",
|
||||
"suspended": "Suspenso",
|
||||
"unsuspended": "Não Suspenso",
|
||||
"play": "Reproduzir",
|
||||
"unselect": "Deselecionar",
|
||||
"export": "Exportar",
|
||||
"deleteNow": "Deletar Agora",
|
||||
"next": "Próximo"
|
||||
},
|
||||
"menu": {
|
||||
"system": "Sistema",
|
||||
"systemMetrics": "Métricas de sistema",
|
||||
"configuration": "Configuração",
|
||||
"language": {
|
||||
"hi": "हिन्दी (Hindi)",
|
||||
"fr": "Français (Francês)",
|
||||
"en": "English (Inglês)",
|
||||
"es": "Español (Espanhol)",
|
||||
"zhCN": "简体中文 (Chinês Simplificado)",
|
||||
"ar": "العربية (Arábico)",
|
||||
"pt": "Português (Português)",
|
||||
"ru": "Русский (Russo)",
|
||||
"de": "Deustch (Alemão)",
|
||||
"ja": "日本語 (Japonês)",
|
||||
"tr": "Türkçe (Turco)",
|
||||
"it": "Italiano (Italiano)",
|
||||
"nl": "Nederlands (Holandês)",
|
||||
"sv": "Svenska (Sueco)",
|
||||
"cs": "Čeština (Checo)",
|
||||
"nb": "Norsk Bokmål (Bokmål Norueguês)",
|
||||
"ko": "한국어 (Coreano)",
|
||||
"vi": "Tiếng Việt (Vietnamita)",
|
||||
"fa": "فارسی (Persa)",
|
||||
"pl": "Polski (Polonês)",
|
||||
"uk": "Українська (Ucraniano)",
|
||||
"he": "עברית (Hebraico)",
|
||||
"el": "Ελληνικά (Grego)",
|
||||
"ro": "Română (Romeno)",
|
||||
"hu": "Magyar (Húngaro)",
|
||||
"fi": "Suomi (Finlandês)",
|
||||
"da": "Dansk (Dinamarquês)",
|
||||
"sk": "Slovenčina (Eslovaco)",
|
||||
"yue": "粵語 (Cantonês)",
|
||||
"th": "ไทย (Tailandês)",
|
||||
"ca": "Català (Catalão)",
|
||||
"withSystem": {
|
||||
"label": "Usar as configurações de sistema para o idioma"
|
||||
}
|
||||
},
|
||||
"systemLogs": "Logs de sistema",
|
||||
"settings": "Configurações",
|
||||
"configurationEditor": "Editor de Configuração",
|
||||
"languages": "Idiomas",
|
||||
"appearance": "Aparência",
|
||||
"darkMode": {
|
||||
"label": "Modo Escuro",
|
||||
"light": "Claro",
|
||||
"dark": "Escuro",
|
||||
"withSystem": {
|
||||
"label": "Use as configurações do sistema para modo claro ou escuro"
|
||||
}
|
||||
},
|
||||
"withSystem": "Sistema",
|
||||
"theme": {
|
||||
"label": "Tema",
|
||||
"blue": "Azul",
|
||||
"green": "Verde",
|
||||
"nord": "Nord",
|
||||
"red": "Vermelho",
|
||||
"highcontrast": "Alto Contraste",
|
||||
"default": "Padrão"
|
||||
},
|
||||
"help": "Ajuda",
|
||||
"documentation": {
|
||||
"title": "Documentação",
|
||||
"label": "Documentação do Frigate"
|
||||
},
|
||||
"restart": "Reiniciar o Frigate",
|
||||
"live": {
|
||||
"title": "Ao Vivo",
|
||||
"allCameras": "Todas as câmeras",
|
||||
"cameras": {
|
||||
"title": "Câmeras",
|
||||
"count_one": "{{count}} Câmera",
|
||||
"count_many": "{{count}} Câmeras",
|
||||
"count_other": "{{count}} Câmeras"
|
||||
}
|
||||
},
|
||||
"review": "Revisão",
|
||||
"explore": "Explorar",
|
||||
"export": "Exportar",
|
||||
"uiPlayground": "Playground da UI",
|
||||
"faceLibrary": "Biblioteca de Rostos",
|
||||
"user": {
|
||||
"title": "Usuário",
|
||||
"account": "Conta",
|
||||
"current": "Usuário Atual: {{user}}",
|
||||
"anonymous": "anônimo",
|
||||
"logout": "Sair",
|
||||
"setPassword": "Definir Senha"
|
||||
}
|
||||
},
|
||||
"toast": {
|
||||
"copyUrlToClipboard": "URL copiada para a área de transferência.",
|
||||
"save": {
|
||||
"title": "Salvar",
|
||||
"error": {
|
||||
"title": "Falha ao salvar as alterações de configuração: {{errorMessage}}",
|
||||
"noMessage": "Falha ao salvar as alterações de configuração"
|
||||
}
|
||||
}
|
||||
},
|
||||
"role": {
|
||||
"title": "Papel",
|
||||
"admin": "Administrador",
|
||||
"viewer": "Espectador",
|
||||
"desc": "Administradores possuem acesso total a todos os recursos da interface do Frigate. Espectadores são limitados a ver as câmeras, revisar itens, e filmagens históricas na interface."
|
||||
},
|
||||
"pagination": {
|
||||
"label": "paginação",
|
||||
"previous": {
|
||||
"title": "Anterior",
|
||||
"label": "Ir para a página anterior"
|
||||
},
|
||||
"next": {
|
||||
"title": "Próximo",
|
||||
"label": "Ir para a próxima página"
|
||||
},
|
||||
"more": "Mais páginas"
|
||||
},
|
||||
"accessDenied": {
|
||||
"documentTitle": "Acesso Negado - Frigate",
|
||||
"title": "Acesso Negado",
|
||||
"desc": "Você não possui permissão para visualizar essa página."
|
||||
},
|
||||
"notFound": {
|
||||
"documentTitle": "Não Encontrado - Frigate",
|
||||
"title": "404",
|
||||
"desc": "Página não encontrada"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,6 +79,8 @@
|
||||
"zones": "Zonas",
|
||||
"mask": "Máscara",
|
||||
"motion": "Movimento",
|
||||
"regions": "Regiões"
|
||||
"regions": "Regiões",
|
||||
"boundingBox": "Caixa Delimitadora",
|
||||
"timestamp": "Timestamp"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
},
|
||||
"review": {
|
||||
"question": {
|
||||
"label": "Confirmar essa etiqueta para Frigate Plus",
|
||||
"label": "Confirmar esse rótulo para Frigate Plus",
|
||||
"ask_a": "Este objeto é um <code>{{label}}</code>?",
|
||||
"ask_an": "Este objeto é um<code>{{label}}</code>?",
|
||||
"ask_full": "Este objeto é um<code>{{untranslatedLabel}}</code> ({{translatedLabel}})?"
|
||||
@@ -100,11 +100,15 @@
|
||||
"selected": "Tem certeza de que deseja excluir todos os vídeos gravados associados a este item de revisão?<br /><br />Segure a tecla <em>Shift</em> para ignorar esta caixa de diálogo no futuro."
|
||||
},
|
||||
"toast": {
|
||||
"success": "As filmagens associadas aos itens de revisão selecionados foram excluídas com sucesso."
|
||||
}
|
||||
"success": "As filmagens associadas aos itens de revisão selecionados foram excluídas com sucesso.",
|
||||
"error": "Falha ao deletar: {{error}}"
|
||||
},
|
||||
"title": "Confirmar Exclusão"
|
||||
},
|
||||
"button": {
|
||||
"markAsReviewed": "Marcar como revisado"
|
||||
"markAsReviewed": "Marcar como revisado",
|
||||
"export": "Exportar",
|
||||
"deleteNow": "Deletar Agora"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,11 +3,11 @@
|
||||
"labels": {
|
||||
"label": "Rótulos",
|
||||
"all": {
|
||||
"title": "Todas as Etiquetas",
|
||||
"short": "Etiquetas"
|
||||
"title": "Todos os Rótulos",
|
||||
"short": "Rótulos"
|
||||
},
|
||||
"count_one": "{{count}} Etiqueta",
|
||||
"count_other": "{{count}} Etiquetas"
|
||||
"count_one": "{{count}} Rótulo",
|
||||
"count_other": "{{count}} Rótulos"
|
||||
},
|
||||
"zones": {
|
||||
"label": "Zonas",
|
||||
@@ -29,8 +29,8 @@
|
||||
},
|
||||
"timeRange": "Intervalo de Tempo",
|
||||
"subLabels": {
|
||||
"label": "Sub-etiquetas",
|
||||
"all": "Todas as Sub-etiquetas"
|
||||
"label": "Sub-Rótulos",
|
||||
"all": "Todos os Sub-Rótulos"
|
||||
},
|
||||
"score": "Pontuação",
|
||||
"estimatedSpeed": "Velocidade Estimada {{unit}}",
|
||||
@@ -71,14 +71,56 @@
|
||||
"title": "Configurações",
|
||||
"defaultView": {
|
||||
"title": "Visualização Padrão",
|
||||
"desc": "Quando nenhum filtro é selecionado, exibir um sumário dos objetos mais recentes rastreados por categoria, ou exiba uma grade sem filtro."
|
||||
"desc": "Quando nenhum filtro é selecionado, exibir um sumário dos objetos mais recentes rastreados por categoria, ou exiba uma grade sem filtro.",
|
||||
"summary": "Sumário",
|
||||
"unfilteredGrid": "Grade Sem Filtros"
|
||||
},
|
||||
"gridColumns": {
|
||||
"desc": "Selecione o número de colunas na visualização em grade."
|
||||
"desc": "Selecione o número de colunas na visualização em grade.",
|
||||
"title": "Colunas de Grade"
|
||||
},
|
||||
"searchSource": {
|
||||
"desc": "Escolha se deseja pesquisar nas miniaturas ou descrições dos seus objetos rastreados."
|
||||
"desc": "Escolha se deseja pesquisar nas miniaturas ou descrições dos seus objetos rastreados.",
|
||||
"label": "Buscar Fonte",
|
||||
"options": {
|
||||
"thumbnailImage": "Imagem da Miniatura",
|
||||
"description": "Descrição"
|
||||
}
|
||||
}
|
||||
},
|
||||
"date": {
|
||||
"selectDateBy": {
|
||||
"label": "Selecione uma data para filtrar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"logSettings": {
|
||||
"label": "Nível de filtro de log",
|
||||
"filterBySeverity": "Filtrar logs por severidade",
|
||||
"loading": {
|
||||
"title": "Carregando",
|
||||
"desc": "Quando o painel de log é rolado para baixo, novos logs são transmitidos automaticamente conforme são adicionados."
|
||||
},
|
||||
"disableLogStreaming": "Desativar o log de tranmissão",
|
||||
"allLogs": "Todos os logs"
|
||||
},
|
||||
"trackedObjectDelete": {
|
||||
"title": "Confirmar Exclusão",
|
||||
"desc": "Deletar esses {{objectLength}} objetos rastreados remove as capturas de imagem, qualquer embeddings salvos, e quaisquer entradas do ciclo de vida associadas do objeto. Gravações desses objetos rastreados na visualização de Histórico <em>NÃO</em> irão ser deletadas.<br /><br />Tem certeza que quer proceder?<br /><br />Segure a tecla <em>Shift</em> para pular esse diálogo no futuro.",
|
||||
"toast": {
|
||||
"success": "Objetos rastreados deletados com sucesso.",
|
||||
"error": "Falha ao deletar objeto rastreado: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"zoneMask": {
|
||||
"filterBy": "Filtrar por máscara de zona"
|
||||
},
|
||||
"recognizedLicensePlates": {
|
||||
"title": "Placas de Identificação Reconhecidas",
|
||||
"loadFailed": "Falha ao carregar placas de identificação reconhecidas.",
|
||||
"loading": "Carregando placas de identificação reconhecidas…",
|
||||
"placeholder": "Digite para pesquisar por placas de identificação…",
|
||||
"noLicensePlatesFound": "Nenhuma placa de identificação encontrada.",
|
||||
"selectPlatesFromList": "Seleciona uma ou mais placas da lista."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"value": "{{seconds}} segundos",
|
||||
"short": {
|
||||
"title": "Latência",
|
||||
"value": "{{seconds}} segundos"
|
||||
"value": "{{seconds}} s"
|
||||
}
|
||||
},
|
||||
"totalFrames": "Total de Quadros:",
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"person": "Pessoa",
|
||||
"bicycle": "Bicicleta",
|
||||
"car": "Carro",
|
||||
"motorcycle": "Moto",
|
||||
"airplane": "Avião",
|
||||
"bus": "Ônibus",
|
||||
"train": "Trem",
|
||||
"boat": "Barco",
|
||||
"traffic_light": "Semáforo",
|
||||
"fire_hydrant": "Hidrante",
|
||||
"street_sign": "Placa de rua",
|
||||
"stop_sign": "Sinal de parada",
|
||||
"parking_meter": "Parquímetro",
|
||||
"bench": "Banco",
|
||||
"bird": "Pássaro",
|
||||
"cat": "Gato",
|
||||
"dog": "Cachorro",
|
||||
"horse": "Cavalo",
|
||||
"sheep": "Ovelha",
|
||||
"cow": "Vaca",
|
||||
"elephant": "Elefante",
|
||||
"bear": "Urso",
|
||||
"zebra": "Zebra",
|
||||
"giraffe": "Girafa",
|
||||
"hat": "Chapéu",
|
||||
"backpack": "Mochila",
|
||||
"umbrella": "Guarda-Chuva",
|
||||
"shoe": "Sapato",
|
||||
"eye_glasses": "Óculos",
|
||||
"handbag": "Bolsa",
|
||||
"tie": "Gravata",
|
||||
"suitcase": "Mala",
|
||||
"frisbee": "Frisbe",
|
||||
"skis": "Esquis",
|
||||
"snowboard": "Snowboard",
|
||||
"sports_ball": "Bola de Esportes",
|
||||
"kite": "Pipa",
|
||||
"baseball_bat": "Taco de Basebol",
|
||||
"baseball_glove": "Luva de Basebol",
|
||||
"skateboard": "Skate",
|
||||
"plate": "Placa",
|
||||
"surfboard": "Prancha de Surfe",
|
||||
"tennis_racket": "Raquete de Tênis",
|
||||
"bottle": "Garrafa",
|
||||
"wine_glass": "Garrafa de Vinho",
|
||||
"cup": "Copo",
|
||||
"fork": "Garfo",
|
||||
"knife": "Faca",
|
||||
"spoon": "Colher",
|
||||
"bowl": "Tigela",
|
||||
"banana": "Banana",
|
||||
"apple": "Maçã",
|
||||
"animal": "Animal",
|
||||
"sandwich": "Sanduíche",
|
||||
"orange": "Laranja",
|
||||
"broccoli": "Brócolis",
|
||||
"bark": "Latido",
|
||||
"carrot": "Cenoura",
|
||||
"hot_dog": "Cachorro-Quente",
|
||||
"pizza": "Pizza",
|
||||
"donut": "Donut",
|
||||
"cake": "Bolo",
|
||||
"chair": "Cadeira",
|
||||
"couch": "Sofá",
|
||||
"potted_plant": "Planta em Vaso",
|
||||
"bed": "Cama",
|
||||
"mirror": "Espelho",
|
||||
"dining_table": "Mesa de Jantar",
|
||||
"window": "Janela",
|
||||
"desk": "Mesa",
|
||||
"toilet": "Vaso Sanitário",
|
||||
"door": "Porta",
|
||||
"tv": "TV",
|
||||
"laptop": "Laptop",
|
||||
"mouse": "Rato",
|
||||
"remote": "Controle Remoto",
|
||||
"keyboard": "Teclado",
|
||||
"goat": "Cabra",
|
||||
"cell_phone": "Celular",
|
||||
"microwave": "Microondas",
|
||||
"oven": "Forno",
|
||||
"toaster": "Torradeira",
|
||||
"sink": "Pia",
|
||||
"refrigerator": "Geladeira",
|
||||
"blender": "Liquidificador",
|
||||
"book": "Livro",
|
||||
"clock": "Relógio",
|
||||
"vase": "Vaso",
|
||||
"scissors": "Tesouras",
|
||||
"teddy_bear": "Ursinho de Pelúcia",
|
||||
"hair_dryer": "Secador de Cabelo",
|
||||
"toothbrush": "Escova de Dentes",
|
||||
"hair_brush": "Escova de Cabelo",
|
||||
"vehicle": "Veículo",
|
||||
"squirrel": "Esquilo",
|
||||
"deer": "Veado",
|
||||
"on_demand": "Sob Demanda",
|
||||
"face": "Rosto",
|
||||
"fox": "Raposa",
|
||||
"rabbit": "Coelho",
|
||||
"raccoon": "Guaxinim",
|
||||
"robot_lawnmower": "Cortador de Grama Robô",
|
||||
"waste_bin": "Lixeira",
|
||||
"license_plate": "Placa de Identificação",
|
||||
"package": "Pacote",
|
||||
"bbq_grill": "Grelha de Churrasco",
|
||||
"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"
|
||||
}
|
||||
@@ -31,7 +31,75 @@
|
||||
}
|
||||
},
|
||||
"details": {
|
||||
"timestamp": "Carimbo de data e hora"
|
||||
"timestamp": "Carimbo de data e hora",
|
||||
"item": {
|
||||
"title": "Rever Detalhe dos itens",
|
||||
"desc": "Revisar os detalhes do item",
|
||||
"button": {
|
||||
"share": "Compartilhar esse item revisado",
|
||||
"viewInExplore": "Ver em Explorar"
|
||||
},
|
||||
"tips": {
|
||||
"mismatch_one": "{{count}} objeto indisponível foi detectado e incluido nesse item de revisão. Esse objeto ou não se qualifica para um alerta ou detecção, ou já foi limpo/deletado.",
|
||||
"mismatch_many": "{{count}} objetos indisponíveis foram detectados e incluídos nesse item de revisão. Esses objetos ou não se qualificam para um alerta ou detecção, ou já foram limpos/deletados.",
|
||||
"mismatch_other": "{{count}} objetos indisponíveis foram detectados e incluídos nesse item de revisão. Esses objetos ou não se qualificam para um alerta ou detecção, ou já foram limpos/deletados.",
|
||||
"hasMissingObjects": "Ajustar a sua configuração se quiser que o Frigate salve objetos rastreados com as seguintes categorias: <em>{{objects}}</em>"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"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-categoria atualizada com sucesso.",
|
||||
"updatedLPR": "Placa de identificação atualizada com sucesso."
|
||||
},
|
||||
"error": {
|
||||
"regenerate": "Falha ao ligar para {{provider}} para uma descrição nova: {{errorMessage}}",
|
||||
"updatedSublabelFailed": "Falha ao atualizar sub-categoria: {{errorMessage}}",
|
||||
"updatedLPRFailed": "Falha ao atualizar placa de identificação: {{errorMessage}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"label": "Categoria",
|
||||
"editSubLabel": {
|
||||
"title": "Editar sub-categoria",
|
||||
"desc": "Nomeie uma nova sub categoria para esse(a) {{label}}",
|
||||
"descNoLabel": "Nomeie uma nova sub-categoria para esse objeto rastreado"
|
||||
},
|
||||
"editLPR": {
|
||||
"title": "Editar placa de identificação",
|
||||
"desc": "Entre um valor de placa de identificação para esse(a) {{label}}",
|
||||
"descNoLabel": "Entre um novo valor de placa de identificação para esse objeto rastrado"
|
||||
},
|
||||
"snapshotScore": {
|
||||
"label": "Pontuação da Captura de Imagem"
|
||||
},
|
||||
"topScore": {
|
||||
"label": "Pontuação Mais Alta",
|
||||
"info": "A pontuação mais alta é a pontuação mediana mais alta para o objeto rastreado, então pode ser diferente da pontuação mostrada na miniatura dos resultados de busca."
|
||||
},
|
||||
"recognizedLicensePlate": "Placa de Identificação Reconhecida",
|
||||
"estimatedSpeed": "Velocidade Estimada",
|
||||
"objects": "Objetos",
|
||||
"camera": "Câmera",
|
||||
"zones": "Zonas",
|
||||
"button": {
|
||||
"findSimilar": "Encontrar Semelhante",
|
||||
"regenerate": {
|
||||
"title": "Regenerar",
|
||||
"label": "Regenerar descrição de objetos rastreados"
|
||||
}
|
||||
},
|
||||
"description": {
|
||||
"label": "Descrição",
|
||||
"placeholder": "Descrição do objeto rastreado",
|
||||
"aiTips": "O Frigate não solicitará a descrição do seu fornecedor de IA Generativa até que o ciclo de vida do objeto rastreado tenha finalizado."
|
||||
},
|
||||
"expandRegenerationMenu": "Expandir menu de regeneração",
|
||||
"regenerateFromSnapshot": "Regenerar a partir de Captura de Imagem",
|
||||
"regenerateFromThumbnails": "Regenerar a partir de Miniaturas",
|
||||
"tips": {
|
||||
"descriptionSaved": "Descrição salva com sucesso",
|
||||
"saveDescriptionFailed": "Falha ao atualizar a descrição: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"trackedObjectDetails": "Detalhes do Objeto Rastreado",
|
||||
"type": {
|
||||
@@ -62,13 +130,79 @@
|
||||
"heard": "{{label}} escutado(a)",
|
||||
"header": {
|
||||
"zones": "Zonas",
|
||||
"area": "Área"
|
||||
}
|
||||
"area": "Área",
|
||||
"ratio": "Proporção"
|
||||
},
|
||||
"external": "{{label}} detectado(a)"
|
||||
},
|
||||
"annotationSettings": {
|
||||
"title": "Configurações de anotação",
|
||||
"showAllZones": {
|
||||
"title": "Mostrar todas as zonas"
|
||||
"title": "Mostrar todas as zonas",
|
||||
"desc": "Sempre exibir zonas nos quadros em que objetos entraram em uma zona."
|
||||
},
|
||||
"offset": {
|
||||
"label": "Deslocamento da Anotação",
|
||||
"desc": "Esses dados vem do feed de detecção da sua câmera, porém estão sobrepondo imagens da gravação. É improvável que duas transmissões estejam perfeitamente sincronizadas. Como resultado, as caixas delimitadoras e a gravação não se alinharam perfeitamente. Porém, o campo <code>annotation_offset</code> pode ser utilizado para ajustar isso.",
|
||||
"documentation": "Leia a documentação. ",
|
||||
"millisecondsToOffset": "Milisegundos para separar detecções de anotações.<em>Default: 0</em>",
|
||||
"tips": "DICA: Imagine que haja um clipe de evento com uma pessoa caminhando da esquerda para a direita. Se a caixa delimitadora da linha do tempo do evento está consistentemente à esquerda da pessoa, então o valor deve ser reduzido. Similarmente, se a pessoa está caminhando da esquerda para a direita e a caixa delimitadora está consistentemente à frente da pessoa, então o valor deve ser aumentado.",
|
||||
"toast": {
|
||||
"success": "O deslocamento de anotação para a câmera {{camera}} foi salvo no arquivo de configuração. Reinicie o Frigate para aplicar as alterações."
|
||||
}
|
||||
}
|
||||
},
|
||||
"carousel": {
|
||||
"previous": "Slide anterior",
|
||||
"next": "Próximo slide"
|
||||
}
|
||||
},
|
||||
"itemMenu": {
|
||||
"findSimilar": {
|
||||
"aria": "Encontrar objetos rastreados similares",
|
||||
"label": "Encontrar similar"
|
||||
},
|
||||
"submitToPlus": {
|
||||
"label": "Enviar ao Frigate+",
|
||||
"aria": "Enviar ao Frigate Plus"
|
||||
},
|
||||
"downloadVideo": {
|
||||
"label": "Baixar vídeo",
|
||||
"aria": "Baixar vídeo"
|
||||
},
|
||||
"downloadSnapshot": {
|
||||
"label": "Baixar captura de imagem",
|
||||
"aria": "Baixar captura de imagem"
|
||||
},
|
||||
"viewObjectLifecycle": {
|
||||
"label": "Ver ciclo de vida do objeto",
|
||||
"aria": "Exibir o ciclo de vida do objeto"
|
||||
},
|
||||
"viewInHistory": {
|
||||
"label": "Ver no Histórico",
|
||||
"aria": "Ver no Histórico"
|
||||
},
|
||||
"deleteTrackedObject": {
|
||||
"label": "Deletar esse objeto rastreado"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"confirmDelete": {
|
||||
"title": "Confirmar Exclusão",
|
||||
"desc": "Deletar esse objeto rastreado remove a captura de imagem, qualquer embedding salvo, e quaisquer entradas de ciclo de vida de objeto associadas. Gravações desse objeto rastreado na visualização de Histórico <em>NÃO</em> serão deletadas.<br /><br />Tem certeza que quer prosseguir?"
|
||||
}
|
||||
},
|
||||
"noTrackedObjects": "Nenhum Objeto Rastreado Encontrado",
|
||||
"fetchingTrackedObjectsFailed": "Erro ao buscar por objetos rastreados: {{errorMessage}}",
|
||||
"trackedObjectsCount_one": "{{count}} objeto rastreado ",
|
||||
"trackedObjectsCount_many": "{{count}} objetos rastreados ",
|
||||
"trackedObjectsCount_other": "{{count}} objetos rastreados ",
|
||||
"searchResult": {
|
||||
"tooltip": "Correspondência com {{type}} de {{confidence}}%",
|
||||
"deleteTrackedObject": {
|
||||
"toast": {
|
||||
"success": "Objeto rastreado deletado com sucesso.",
|
||||
"error": "Falha ao detectar objeto rastreado {{errorMessage}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
"person": "Pessoa",
|
||||
"unknown": "Desconhecido",
|
||||
"face": "Detalhes do Rosto",
|
||||
"subLabelScore": "Pontuação do sub-rótulo",
|
||||
"scoreInfo": "A pontuação da sub etiqueta é a pontuação ponderada de todas as confidências faciais reconhecidas, então a pontuação pode ser diferente da mostrada na foto instantânea.",
|
||||
"subLabelScore": "Pontuação do Sub-Rótulo",
|
||||
"scoreInfo": "A pontuação do sub-rótulo é a pontuação ponderada de todas as confidências faciais reconhecidas, então a pontuação pode ser diferente da mostrada na foto instantânea.",
|
||||
"faceDesc": "Detalhes do objeto rastreado que gerou este rosto",
|
||||
"timestamp": "Carimbo de data e hora"
|
||||
},
|
||||
@@ -53,7 +53,7 @@
|
||||
"faceName": "Digite o Nome do Rosto",
|
||||
"uploadFace": "Enviar Imagem de Rosto",
|
||||
"description": {
|
||||
"uploadFace": "Faça o upload de uma imagem de {{name}} que mostre mostre seu rosto visto de frente. A imagem não precisa estar recortada apenas com o rosto."
|
||||
"uploadFace": "Faça o upload de uma imagem de {{name}} que mostre seu rosto visto de frente. A imagem não precisa estar recortada apenas com o rosto."
|
||||
}
|
||||
},
|
||||
"description": {
|
||||
@@ -72,5 +72,31 @@
|
||||
"aria": "Selecionar treinar",
|
||||
"empty": "Não há tentativas recentes de reconhecimento facial"
|
||||
},
|
||||
"selectFace": "Selecionar Rosto"
|
||||
"selectFace": "Selecionar Rosto",
|
||||
"trainFaceAs": "Treinar Rosto como:",
|
||||
"trainFace": "Treinar Rosto",
|
||||
"toast": {
|
||||
"success": {
|
||||
"uploadedImage": "Imagens enviadas com sucesso.",
|
||||
"addFaceLibrary": "{{name}} foi adicionado com sucesso à Biblioteca de Rostos!",
|
||||
"deletedFace_one": "{{count}} rosto apagado com sucesso.",
|
||||
"deletedFace_many": "{{count}} rostos apagados com sucesso.",
|
||||
"deletedFace_other": "{{count}} rostos apagados com sucesso.",
|
||||
"trainedFace": "Rosto treinado com sucesso.",
|
||||
"updatedFaceScore": "Pontuação de rosto atualizada com sucesso.",
|
||||
"renamedFace": "O rosto foi renomeado com sucesso para {{name}}",
|
||||
"deletedName_one": "{{count}} rosto foi deletado com sucesso.",
|
||||
"deletedName_many": "{{count}} rostos foram deletados com sucesso.",
|
||||
"deletedName_other": "{{count}} rostos foram deletados com sucesso."
|
||||
},
|
||||
"error": {
|
||||
"uploadingImageFailed": "Falha ao enviar a imagem: {{errorMessage}}",
|
||||
"addFaceLibraryFailed": "Falha ao definir o nome do rosto: {{errorMessage}}",
|
||||
"deleteFaceFailed": "Falha em deletar: {{errorMessage}}",
|
||||
"deleteNameFailed": "Falha ao deletar nome: {{errorMessage}}",
|
||||
"renameFaceFailed": "Falha ao renomear rosto: {{errorMessage}}",
|
||||
"trainFailed": "Falha ao treinar: {{errorMessage}}",
|
||||
"updateFaceScoreFailed": "Falha ao atualizar pontuação de rosto: {{errorMessage}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +93,66 @@
|
||||
"failedToStart": "Falha ao iniciar a gravação manual sob demanda.",
|
||||
"recordDisabledTips": "Como a gravação está desabilitada ou restrita na configuração desta câmera, apenas um instantâneo será salvo.",
|
||||
"end": "Fim da gravação sob demanda",
|
||||
"failedToEnd": "Falha ao finalizar a gravação manual sob demanda."
|
||||
"failedToEnd": "Falha ao finalizar a gravação manual sob demanda.",
|
||||
"debugView": "Visualização de Depuração",
|
||||
"ended": "Gravação manual sob demanda finalizada."
|
||||
},
|
||||
"streamingSettings": "Configurações de Transmissão",
|
||||
"notifications": "Notificações",
|
||||
"audio": "Áudio",
|
||||
"suspend": {
|
||||
"forTime": "Suspender por: "
|
||||
},
|
||||
"stream": {
|
||||
"title": "Transmissão",
|
||||
"audio": {
|
||||
"tips": {
|
||||
"title": "O áudio deve sair da sua câmera e configurado no go2rtc para essa transmissão.",
|
||||
"documentation": "Leia da documentação. "
|
||||
},
|
||||
"available": "Áudio disponível para essa transmissão",
|
||||
"unavailable": "O áudio não está disponível para essa transmissão"
|
||||
},
|
||||
"twoWayTalk": {
|
||||
"tips": "O seu dispostivio precisa suportar esse recurso e o WebRTC precisa estar configurado para áudio bidirecional.",
|
||||
"tips.documentation": "Leia a documentação. ",
|
||||
"available": "Áudio bidirecional está disponível para essa transmissão",
|
||||
"unavailable": "Áudio bidirecional está indisponível para essa transmissão"
|
||||
},
|
||||
"lowBandwidth": {
|
||||
"tips": "A transmissão ao vivo está em modo de economia de dados devido a erros de buffering ou de transmissão.",
|
||||
"resetStream": "Resetar transmissão"
|
||||
},
|
||||
"playInBackground": {
|
||||
"label": "Reproduzir em segundo plano",
|
||||
"tips": "Habilitar essa opção para continuar a transmissão quando o reprodutor estiver oculto."
|
||||
}
|
||||
},
|
||||
"cameraSettings": {
|
||||
"title": "Configurações de {{camera}}",
|
||||
"cameraEnabled": "Câmera Habilitada",
|
||||
"objectDetection": "Detecção de Objeto",
|
||||
"recording": "Gravação",
|
||||
"snapshots": "Capturas de Imagem",
|
||||
"audioDetection": "Detecção de Áudio",
|
||||
"autotracking": "Auto Rastreamento"
|
||||
},
|
||||
"history": {
|
||||
"label": "Exibir gravação histórica"
|
||||
},
|
||||
"effectiveRetainMode": {
|
||||
"modes": {
|
||||
"all": "Todos",
|
||||
"motion": "Movimento",
|
||||
"active_objects": "Objetos Ativos"
|
||||
},
|
||||
"notAllTips": "A configuração de retenção da sua gravação do(a) {{source}} está definida para o <code>modo: {{effectiveRetainMode}}</code>, então essa gravação sob demanda irá manter somente os segmentos com o {{effectiveRetainModeName}}."
|
||||
},
|
||||
"editLayout": {
|
||||
"label": "Editar Layout",
|
||||
"group": {
|
||||
"label": "Editar Grupo de Câmera"
|
||||
},
|
||||
"exitEdit": "Sair da Edição"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"filter": {
|
||||
"label": {
|
||||
"cameras": "Câmeras",
|
||||
"labels": "Etiquetas",
|
||||
"labels": "Rótulos",
|
||||
"zones": "Zonas",
|
||||
"before": "Antes",
|
||||
"after": "Depois",
|
||||
@@ -21,7 +21,7 @@
|
||||
"max_score": "Pontuação Máxima",
|
||||
"min_speed": "Velocidade Mínima",
|
||||
"max_speed": "Velocidade Máxima",
|
||||
"sub_labels": "Sub-etiquetas",
|
||||
"sub_labels": "Sub-Rótulos",
|
||||
"search_type": "Tipo de Busca",
|
||||
"time_range": "Intervalo de Tempo",
|
||||
"recognized_license_plate": "Placa de Carro Reconhecida",
|
||||
@@ -57,11 +57,14 @@
|
||||
},
|
||||
"header": {
|
||||
"noFilters": "Filtros",
|
||||
"activeFilters": "Filtros ativos"
|
||||
"activeFilters": "Filtros ativos",
|
||||
"currentFilterType": "Valores de Filtros"
|
||||
}
|
||||
},
|
||||
"similaritySearch": {
|
||||
"active": "Pesquisa por similaridade ativa"
|
||||
"active": "Pesquisa por similaridade ativa",
|
||||
"title": "Buscar por Similaridade",
|
||||
"clear": "Limpar buscar por similaridade"
|
||||
},
|
||||
"placeholder": {
|
||||
"search": "Pesquisar…"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"camera": "Configurações de Câmera - Frigate",
|
||||
"enrichments": "Configurações de Enriquecimento - Frigate",
|
||||
"masksAndZones": "Editor de Máscara e Zona - Frigate",
|
||||
"motionTuner": "Virada de Movimento - Frigate",
|
||||
"motionTuner": "Ajuste de Movimento - Frigate",
|
||||
"object": "Debug - Frigate",
|
||||
"general": "Configurações Gerais - Frigate",
|
||||
"frigatePlus": "Frigate+ Configurações- Frigate",
|
||||
@@ -18,8 +18,8 @@
|
||||
"users": "Usuários",
|
||||
"notifications": "Notificações",
|
||||
"frigateplus": "Frigate+",
|
||||
"motionTuner": "Ajuste de Detecção de Movimento",
|
||||
"debug": "Depuração",
|
||||
"motionTuner": "Ajuste de Movimento",
|
||||
"debug": "Depurar",
|
||||
"enrichments": "Melhorias"
|
||||
},
|
||||
"dialog": {
|
||||
@@ -94,8 +94,529 @@
|
||||
"desc": "A Busca Semântica no Frigate permite você encontrar objetos rastreados dentro dos seus itens revisados, usando ou a imagem em si, uma descrição de texto definida pelo usuário ou uma gerada automaticamente.",
|
||||
"readTheDocumentation": "Leia a Documentação",
|
||||
"reindexNow": {
|
||||
"label": "Reindexar Agora"
|
||||
"label": "Reindexar Agora",
|
||||
"desc": "A reindexação irá regenerar os embeddings para todos os objetos rastreados. Esse processo roda em segundo plano e pode 100% da CPU e levar um tempo considerável dependendo do número de objetos rastreados que você possui.",
|
||||
"confirmTitle": "Confirmar Reindexação",
|
||||
"confirmDesc": "Tem certeza que quer reindexar todos os embeddings de objetos rastreados? Esse processo rodará em segundo plano porém utilizará 100% da CPU e levará uma quantidade de tempo considerável. Você pode acompanhar o progresso na página Explorar.",
|
||||
"confirmButton": "Reindexar",
|
||||
"success": "A reindexação iniciou com sucesso.",
|
||||
"alreadyInProgress": "A reindexação já está em progresso.",
|
||||
"error": "Falha ao iniciar a reindexação: {{errorMessage}}"
|
||||
},
|
||||
"modelSize": {
|
||||
"label": "Tamanho do Modelo",
|
||||
"desc": "O tamanho do modelo usado para embeddings de pesquisa semântica.",
|
||||
"small": {
|
||||
"title": "pequeno",
|
||||
"desc": "Usando<em>pequeno</em> emprega a versão quantizada do modelo que utiliza menos RAM e roda mais rápido na CPU, com diferenças negligíveis na qualidade dos embeddings."
|
||||
},
|
||||
"large": {
|
||||
"title": "grande",
|
||||
"desc": "Usar <em>grande</em> emprega o modelo Jina completo e roda na GPU automáticamente caso aplicável."
|
||||
}
|
||||
}
|
||||
},
|
||||
"faceRecognition": {
|
||||
"title": "Reconhecimento Facial",
|
||||
"desc": "O reconhecimento facial permite que pessoas sejam associadas a nomes e quando seus rostos forem reconhecidos, o Frigate associará o nome da pessoa como uma sub-categoria. Essa informação é inclusa na UI, filtros e notificações.",
|
||||
"readTheDocumentation": "Leia a Documentação",
|
||||
"modelSize": {
|
||||
"label": "Tamanho do Modelo",
|
||||
"desc": "O tamanho do modelo usado para reconhecimento facial.",
|
||||
"small": {
|
||||
"title": "pequeno",
|
||||
"desc": "Usar <em>pequeno</em> emprega o modelo de embedding de rosto FaceNet, que roda de maneira eficiente na maioria das CPUs."
|
||||
},
|
||||
"large": {
|
||||
"title": "grande",
|
||||
"desc": "Usando o <em>grande</em> emprega um modelo de embedding de rosto ArcFace e irá automáticamente roda pela GPU se aplicável."
|
||||
}
|
||||
}
|
||||
},
|
||||
"licensePlateRecognition": {
|
||||
"title": "Reconhecimento de Placa de Identificação",
|
||||
"desc": "O Frigate pode reconhecer placas de identificação em veículos e automáticamente adicionar os caracteres detectados ao campo placas_de_identificação_reconhecidas ou um nome conhecido como uma sub-categoria a objetos que são do tipo carro. Um uso típico é ler a placa de carros entrando em uma garagem ou carros passando pela rua.",
|
||||
"readTheDocumentation": "Leia a Documentação"
|
||||
},
|
||||
"restart_required": "Necessário reiniciar (configurações de enriquecimento foram alteradas)",
|
||||
"toast": {
|
||||
"success": "As regras de enriquecimento foram salvas. Reinicie o Frigate para aplicar as alterações.",
|
||||
"error": "Falha ao salvar alterações de configurações: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"camera": {
|
||||
"title": "Configurações de Câmera",
|
||||
"streams": {
|
||||
"title": "Transmissões",
|
||||
"desc": "Temporáriamente desativar a câmera até o Frigate reiniciar. Desatiar a câmera completamente impede o processamento da transmissão dessa câmera pelo Frigate. Detecções, gravações e depuração estarão indisponíveis.<br /><em>Nota: Isso não desativa as retransmissões do go2rtc.</em>"
|
||||
},
|
||||
"review": {
|
||||
"title": "Revisar",
|
||||
"desc": "Temporariamente habilitar/desabilitar alertas e detecções para essa câmera até o Frigate reiniciar. Quando desabilitado, nenhum novo item de revisão será gerado. ",
|
||||
"alerts": "Alertas ",
|
||||
"detections": "Detecções "
|
||||
},
|
||||
"reviewClassification": {
|
||||
"title": "Revisar Classificação",
|
||||
"desc": "O Frigate categoriza itens de revisão como Alertas e Detecções. Por padrão, todas as <em>pessoa</em> e <em>carros</em> são considerados alertas. Você pode refinar a categorização dos seus itens revisados configurando as zonas requeridas para eles.",
|
||||
"readTheDocumentation": "Leia a Documentação",
|
||||
"noDefinedZones": "Nenhuma zona definida para essa câmera.",
|
||||
"selectAlertsZones": "Selecionar as zonas para Alertas",
|
||||
"selectDetectionsZones": "Selecionar as zonas para Detecções",
|
||||
"objectAlertsTips": "Todos os {{alertsLabels}} objetos em {{cameraName}} serão exibidos como Alertas.",
|
||||
"zoneObjectAlertsTips": "Todos os {{alertsLabels}} objetos detectados em {{zone}} em {{cameraName}} serão exibidos como Alertas.",
|
||||
"objectDetectionsTips": "Todos os objetos {{detectionsLabels}} não categorizados em {{cameraName}} serão exibidos como Detecções independente de qual zona eles estiverem.",
|
||||
"zoneObjectDetectionsTips": {
|
||||
"text": "Todos os objetos de {{detectionsLabels}} não categorizados em {{zone}} em {{cameraName}} serão exibidos como Detecções.",
|
||||
"notSelectDetections": "Todos os objetos {{detectionsLabels}} detectados em {{zone}} em {{cameraName}} não categorizados como Alertas serão exibidos como Detecções independente da zona em que estiverem.",
|
||||
"regardlessOfZoneObjectDetectionsTips": "Todos os objetos {{detectionsLabels}} não categorizados em {{cameraName}} serão exibidos como Detecções independente de quais zonas estiverem."
|
||||
},
|
||||
"unsavedChanges": "Configurações de Classificação de Revisões Não Salvas para {{camera}}",
|
||||
"limitDetections": "Limitar detecções a zonas específicas",
|
||||
"toast": {
|
||||
"success": "A configuração de Revisão de Classificação foi salva. Reinicie o Frigate para aplicar as mudanças."
|
||||
}
|
||||
}
|
||||
},
|
||||
"masksAndZones": {
|
||||
"filter": {
|
||||
"all": "Todas as Máscaras e Zonas"
|
||||
},
|
||||
"restart_required": "Reinicialização requerida (máscaras/zonas foram alteradas)",
|
||||
"toast": {
|
||||
"success": {
|
||||
"copyCoordinates": "Coordenadas copiadas para {{polyName}} para a área de transferência."
|
||||
},
|
||||
"error": {
|
||||
"copyCoordinatesFailed": "Não foi possível copiar as coordenadas para a área de transferência."
|
||||
}
|
||||
},
|
||||
"motionMaskLabel": "Máscara de Movimento {{number}}",
|
||||
"objectMaskLabel": "Máscara de Objeto {{number}} ({{label}})",
|
||||
"form": {
|
||||
"zoneName": {
|
||||
"error": {
|
||||
"mustBeAtLeastTwoCharacters": "O nome da zona deve conter ao menos 2 caracteres.",
|
||||
"mustNotBeSameWithCamera": "O nome da zona não pode ser igual ao nome da câmera.",
|
||||
"alreadyExists": "Uma zona com esse noma já existe para essa câmera.",
|
||||
"mustNotContainPeriod": "O nome da zona não pode conter ponto final.",
|
||||
"hasIllegalCharacter": "O nome da zona contém caracteres ilegais."
|
||||
}
|
||||
},
|
||||
"distance": {
|
||||
"error": {
|
||||
"text": "A distância deve sair maior ou igual a 0.1.",
|
||||
"mustBeFilled": "Todos os campos de distância devem ser preenchidos para utilizar a estimativa de velocidade."
|
||||
}
|
||||
},
|
||||
"inertia": {
|
||||
"error": {
|
||||
"mustBeAboveZero": "A inércia deve ser maior que 0."
|
||||
}
|
||||
},
|
||||
"loiteringTime": {
|
||||
"error": {
|
||||
"mustBeGreaterOrEqualZero": "O tempo de permanência deve ser maior ou igual a zero."
|
||||
}
|
||||
},
|
||||
"speed": {
|
||||
"error": {
|
||||
"mustBeGreaterOrEqualTo": "O limiar de velocidade deve ser maior ou igual a 0.1."
|
||||
}
|
||||
},
|
||||
"polygonDrawing": {
|
||||
"removeLastPoint": "Remover o ultimo ponto",
|
||||
"reset": {
|
||||
"label": "Limpar todos os pontos"
|
||||
},
|
||||
"snapPoints": {
|
||||
"true": "Pontos de encaixe",
|
||||
"false": "Não encaixar os ponts"
|
||||
},
|
||||
"delete": {
|
||||
"title": "Confirmar Deletar",
|
||||
"desc": "Tem certeza que quer deletar o {{type}} <em>{{name}}</em>?",
|
||||
"success": "{{name}} foi deletado."
|
||||
},
|
||||
"error": {
|
||||
"mustBeFinished": "O desenho do polígono deve ser finalizado antes de salvar."
|
||||
}
|
||||
}
|
||||
},
|
||||
"zones": {
|
||||
"label": "Zonas",
|
||||
"documentTitle": "Editar Zona - Frigate",
|
||||
"desc": {
|
||||
"title": "Zonas permitem que você defina uma área específica do quadro para que você possa determinar se um objeto está ou não em uma área em particular.",
|
||||
"documentation": "Documentação"
|
||||
},
|
||||
"add": "Adicionar Zona",
|
||||
"edit": "Editar Zona",
|
||||
"point_one": "{{count}} ponto",
|
||||
"point_many": "{{count}} pontos",
|
||||
"point_other": "{{count}} pontos",
|
||||
"clickDrawPolygon": "Clique para desenhar um polígono na imagem.",
|
||||
"name": {
|
||||
"title": "Nome",
|
||||
"inputPlaceHolder": "Digite um nome…",
|
||||
"tips": "O nome deve ter no mínimo 2 caracteres e não pode ter o nome de uma câmera ou outra zona."
|
||||
},
|
||||
"inertia": {
|
||||
"title": "Inércia",
|
||||
"desc": "Especifica por quantos quadros um objeto deve permanecer em uma zona para que seja considerado na zona. <em>Padrão: 3</em>"
|
||||
},
|
||||
"loiteringTime": {
|
||||
"title": "Tempo de Permanência",
|
||||
"desc": "Define o tempo mínimo em segundos que o objeto deve estar na zona para ser ativado. <em>Padrão: 0</em>"
|
||||
},
|
||||
"objects": {
|
||||
"title": "Objetos",
|
||||
"desc": "Lista de objetos que se aplicam a essa zona."
|
||||
},
|
||||
"allObjects": "Todos os Objetos",
|
||||
"speedEstimation": {
|
||||
"title": "Estimativa de Velocidade",
|
||||
"desc": "Habilitar estimativa de velocidade para objetos nesta zona. A zona deve ter exatamente 4 pontos.",
|
||||
"docs": "Leia a documentação",
|
||||
"lineADistance": "Distância da linha A ({{unit}})",
|
||||
"lineBDistance": "Distância da Linha B ({{unit}})",
|
||||
"lineCDistance": "Distância da linha C ({{unit}})",
|
||||
"lineDDistance": "Distância da linha D ({{unit}})"
|
||||
},
|
||||
"speedThreshold": {
|
||||
"title": "Limiar de Velocidade ({{unit}})",
|
||||
"desc": "Especifique a velocidade mínima para o objeto ser considerado nessa zona.",
|
||||
"toast": {
|
||||
"error": {
|
||||
"pointLengthError": "A estimativa de velocidade foi desativada para essa zona. Zonas com estimação de velocidade devem ter exatamente 4 pontos.",
|
||||
"loiteringTimeError": "Zonas com tempo de permanência acima de 0 não devem ser usadas com estimativa de velocidade."
|
||||
}
|
||||
}
|
||||
},
|
||||
"toast": {
|
||||
"success": "A zona ({{zoneName}}) foi salva. Reinicie o Frigate para aplicar as mudanças."
|
||||
}
|
||||
},
|
||||
"objectMasks": {
|
||||
"objects": {
|
||||
"allObjectTypes": "Todos os tipos de objetos",
|
||||
"title": "Objetos",
|
||||
"desc": "O tipo de objeto que se aplica para essa máscara de objeto."
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"title": "{{polygonName}} foi salvo. Reinicie o Frigate para aplicar as alterações.",
|
||||
"noName": "A máscara de objeto foi salva. Reinicie o Frigate para aplicar as alterações."
|
||||
}
|
||||
},
|
||||
"label": "Máscaras de Objeto",
|
||||
"documentTitle": "Editar Máscara de Objeto - Frigate",
|
||||
"desc": {
|
||||
"title": "Máscaras de filtro de objetos são usadas para filtrar falsos positivos para um determinado tipo de objeto baseado na localização.",
|
||||
"documentation": "Documentação"
|
||||
},
|
||||
"add": "Adicionar Máscara de Objeto",
|
||||
"edit": "Editar Máscara de Objeto",
|
||||
"context": "Filtro de máscaras de objeto são usados para filtrar falsos positivos para um dado tipo de objeto baseado na localização.",
|
||||
"point_one": "{{count}} ponto",
|
||||
"point_many": "{{count}} pontos",
|
||||
"point_other": "{{count}} pontos",
|
||||
"clickDrawPolygon": "Clique para desenhar um polígono na imagem."
|
||||
},
|
||||
"motionMasks": {
|
||||
"label": "Máscara de Movimento",
|
||||
"documentTitle": "Editar Máscara de Movimento - Frigate",
|
||||
"desc": {
|
||||
"title": "Máscaras de movimento são usadas para prevenir tipos de movimento de ativarem uma detecção. Excesso de mascaramento tornará mais difícil que objetos sejam rastreados.",
|
||||
"documentation": "Documentação"
|
||||
},
|
||||
"add": "Nova Máscara de Movimento",
|
||||
"edit": "Editar Máscara de Movimento",
|
||||
"context": {
|
||||
"title": "Máscaras de movimento são usadas para prevenir typos de movimento não desejados de ativarem uma detecção (exemplo: galhos de árvores, timestamps de câmeras). Máscaras de movimento devem ser usadas com <em> muita parcimônia</em>, excesso de mascaramento tornará mais difícil de objetos serem rastreados.",
|
||||
"documentation": "Leia a documentação"
|
||||
},
|
||||
"point_one": "{{count}} ponto",
|
||||
"point_many": "{{count}} pontos",
|
||||
"point_other": "{{count}} pontos",
|
||||
"clickDrawPolygon": "Clique para desenhar um polígono na imagem.",
|
||||
"polygonAreaTooLarge": {
|
||||
"title": "A máscara de movimento está cobrindo {{polygonArea}}% do quadro da câmera. Máscaras de movimento grandes não são recomendadas.",
|
||||
"tips": "Máscaras de movimento não previnem objetos de serem detectados. Em vez disso você deve usar uma zona obrigatória.",
|
||||
"documentation": "Leia a documentação"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"title": "{{polygonName}} foi salvo. Reinicie o Frigate para aplicar as alterações.",
|
||||
"noName": "Máscara de Movimento salva. Reinicie o Frigate para aplicar as alterações."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"motionDetectionTuner": {
|
||||
"desc": {
|
||||
"title": "O Frigate usa a detecção de movimento como uma verificação de primeira linha para ver se há algo acontecendo no quadro que valha a pena verificar com a detecção de objetos.",
|
||||
"documentation": "Leia o Guia de Ajuste de Movimento"
|
||||
},
|
||||
"Threshold": {
|
||||
"title": "Limite",
|
||||
"desc": "O valor do limiar dita o quanto de mudança na luminância de um pixel é requerida para ser considerada movimento. <em>Padrão: 30</em>"
|
||||
},
|
||||
"contourArea": {
|
||||
"title": "Área de contorno",
|
||||
"desc": "O valor do contorno da área é usado para decidir quais grupos de mudança de pixel se qualificam como movimento. <em>Padrão: 10</em>"
|
||||
},
|
||||
"improveContrast": {
|
||||
"title": "Melhorar o contraste",
|
||||
"desc": "Melhorar contraste para cenas escuras. <em>Padrão: ON</em>"
|
||||
},
|
||||
"toast": {
|
||||
"success": "As configurações de movimento foram salvas."
|
||||
},
|
||||
"title": "Ajuste de Detecção de Movimento",
|
||||
"unsavedChanges": "Alterações do Ajuste de Movimento Não Salvas ({{camera}})"
|
||||
},
|
||||
"debug": {
|
||||
"detectorDesc": "O Frigate usa seus detectores ({{detectors}}) para detectar objetos no fluxo de vídeo da sua câmera.",
|
||||
"desc": "A visualização de depuração mostra uma visão em tempo real dos objetos rastreados e suas estatísticas. A lista de objetos mostra um resumo com atraso de tempo dos objetos detectados.",
|
||||
"objectList": "Lista de Objetos",
|
||||
"boundingBoxes": {
|
||||
"desc": "Mostrar caixas delimitadoras ao redor de objetos rastreados",
|
||||
"colors": {
|
||||
"label": "Cores da caixa delimitadora de objetos",
|
||||
"info": "<li>Na inicialização, cores diferentes serão atribuídas a cada rótulo de objeto</li><li>Uma linha fina azul escura indica que o objeto não foi detectado neste momento</li><li>Uma linha fina cinza indica que o objeto foi detectado como estacionário</li><li>Uma linha grossa indica que o objeto está sujeito ao rastreamento automático (quando ativado)</li>"
|
||||
},
|
||||
"title": "Caixas delimitadoras"
|
||||
},
|
||||
"zones": {
|
||||
"title": "Zonas",
|
||||
"desc": "Mostrar um esboço de quaisquer zonas definidas"
|
||||
},
|
||||
"mask": {
|
||||
"title": "Máscaras de movimento",
|
||||
"desc": "Mostrar polígonos de máscara de movimento"
|
||||
},
|
||||
"motion": {
|
||||
"title": "Caixas de movimento",
|
||||
"desc": "Mostrar caixas ao redor das áreas onde o movimento é detectado",
|
||||
"tips": "<p><strong>Caixas de movimento</strong></p><br><p>Caixas vermelhas serão sobrepostas em áreas do quadro onde o movimento está sendo detectado</p>"
|
||||
},
|
||||
"regions": {
|
||||
"title": "Regiões",
|
||||
"desc": "Mostrar uma caixa da região de interesse enviada ao detector de objetos",
|
||||
"tips": "<p><strong>Caixas de Região</strong></p><br><p>Caixas verdes claras serão sobrepostas em áreas de interesse no quadro que está sendo enviado ao detector de objetos.</p>"
|
||||
},
|
||||
"title": "Depuração",
|
||||
"debugging": "Depuração",
|
||||
"objectShapeFilterDrawing": {
|
||||
"desc": "Desenhe um retângulo na imagem para ver os detalhes da área e proporções",
|
||||
"tips": "Habilite essa opção para desenhar um retângulo na imagem da camera para mostrar a sua área e proporção. Esses valores podem ser usados para estabelecer parâmetros de filtro de formato de objetos na sua configuração.",
|
||||
"document": "Leia a documentação ",
|
||||
"score": "Pontuação",
|
||||
"ratio": "Proporção",
|
||||
"area": "Área",
|
||||
"title": "Desenho de Filtro de Formato de Objeto"
|
||||
},
|
||||
"noObjects": "Nenhum Objeto",
|
||||
"timestamp": {
|
||||
"title": "Timestamp",
|
||||
"desc": "Sobreponha um timestamp na imagem"
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
"title": "Usuários",
|
||||
"management": {
|
||||
"title": "Gerenciamento de Usuário",
|
||||
"desc": "Gerencias as contas de usuário dessa instância do Frigate."
|
||||
},
|
||||
"addUser": "Adicionar Usuário",
|
||||
"updatePassword": "Atualizar Senha",
|
||||
"toast": {
|
||||
"success": {
|
||||
"createUser": "Usuário {{user}} criado com sucesso",
|
||||
"deleteUser": "Usuário {{user}} deletado com sucesso",
|
||||
"updatePassword": "Senha atualizada com sucesso.",
|
||||
"roleUpdated": "Papel atualizado para {{user}}"
|
||||
},
|
||||
"error": {
|
||||
"setPasswordFailed": "Falha ao salvar a senha: {{errorMessage}}",
|
||||
"createUserFailed": "Falha ao criar usuário: {{errorMessage}}",
|
||||
"deleteUserFailed": "Falha ao deletar usuário: {{errorMessage}}",
|
||||
"roleUpdateFailed": "Falha ao atualizar papel: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"form": {
|
||||
"password": {
|
||||
"match": "As senhas correspondem",
|
||||
"notMatch": "As senhas são diferentes",
|
||||
"title": "Senha",
|
||||
"placeholder": "Digita a senha",
|
||||
"confirm": {
|
||||
"title": "Confirmar Senha",
|
||||
"placeholder": "Confirmar Senha"
|
||||
},
|
||||
"strength": {
|
||||
"title": "Nível de segurança da senha: ",
|
||||
"weak": "Fraca",
|
||||
"medium": "Mediana",
|
||||
"strong": "Forte",
|
||||
"veryStrong": "Muito Forte"
|
||||
}
|
||||
},
|
||||
"newPassword": {
|
||||
"title": "Senha Nova",
|
||||
"placeholder": "Digite uma senha nova",
|
||||
"confirm": {
|
||||
"placeholder": "Digite a senha novamente"
|
||||
}
|
||||
},
|
||||
"usernameIsRequired": "Nome de usuário requerido",
|
||||
"passwordIsRequired": "Senha requerida",
|
||||
"user": {
|
||||
"title": "Nome de Usuário",
|
||||
"desc": "Apenas letras, números, pontos e sublinhados são permitidos.",
|
||||
"placeholder": "Digite o nome de usuário"
|
||||
}
|
||||
},
|
||||
"createUser": {
|
||||
"title": "Criar Novo Usuário",
|
||||
"desc": "Adicionar um novo usuário e especificar um papel para acesso às áreas da interface do Frigate.",
|
||||
"usernameOnlyInclude": "O nome de usuário pode conter apenas letras, números, . ou _",
|
||||
"confirmPassword": "Por favor confirme a sua senha"
|
||||
},
|
||||
"deleteUser": {
|
||||
"title": "Deletar Usuário",
|
||||
"desc": "Essa ação não pode ser desfeita. Isso irá deletar permanentemente a conta do usuário e remover todos os dados associados.",
|
||||
"warn": "Tem certeza que quer deletar <strong>{{username}}</strong>?"
|
||||
},
|
||||
"passwordSetting": {
|
||||
"cannotBeEmpty": "A senha não pode estar vazia",
|
||||
"doNotMatch": "As senhas não correspondem",
|
||||
"updatePassword": "Atualizar Senha para {{username}}",
|
||||
"setPassword": "Definir Senha",
|
||||
"desc": "Crie uma senha forte para proteger essa conta."
|
||||
},
|
||||
"changeRole": {
|
||||
"title": "Alterar Papel do Usuário",
|
||||
"select": "Selecionar um papel",
|
||||
"desc": "Atualizar permissões para <strong>{{username}}</strong>",
|
||||
"roleInfo": {
|
||||
"intro": "Selecione o papel apropriado para esse usuário:",
|
||||
"admin": "Administrador",
|
||||
"adminDesc": "Acesso total a todos os recursos.",
|
||||
"viewer": "Espectador",
|
||||
"viewerDesc": "Limitado aos Painéis ao Vivo, Revisar, Explorar, e Exportar somente."
|
||||
}
|
||||
}
|
||||
},
|
||||
"table": {
|
||||
"username": "Nome de Usuário",
|
||||
"actions": "Ações",
|
||||
"role": "Papel",
|
||||
"noUsers": "Nenhum usuário encontrado.",
|
||||
"changeRole": "Mudar papel do usuário",
|
||||
"password": "Senha",
|
||||
"deleteUser": "Deletar usuário"
|
||||
}
|
||||
},
|
||||
"notification": {
|
||||
"suspendTime": {
|
||||
"10minutes": "Suspender por 10 minutos",
|
||||
"30minutes": "Suspender por 30 minutos",
|
||||
"1hour": "Suspender por 1 hora",
|
||||
"12hours": "Suspender por 12 horas",
|
||||
"24hours": "Suspender por 24 horas",
|
||||
"untilRestart": "Suspender até reiniciar",
|
||||
"suspend": "Suspender",
|
||||
"5minutes": "Suspender por 5 minutos"
|
||||
},
|
||||
"cancelSuspension": "Cancelar Suspensão",
|
||||
"toast": {
|
||||
"success": {
|
||||
"registered": "Registrados para notificações com sucesso. É necessário reiniciar o Frigate para que as notificações possam ser enviadas (incluindo a notificação de teste).",
|
||||
"settingSaved": "As configurações de notificações foram salvas."
|
||||
},
|
||||
"error": {
|
||||
"registerFailed": "Falha ao salvar o registro para notificações."
|
||||
}
|
||||
},
|
||||
"title": "Notificações",
|
||||
"notificationSettings": {
|
||||
"title": "Configurações de Notificação",
|
||||
"desc": "O Frigate pode enviar notificações push nativamente ao seu dispositivo quando estiver sendo executado no navegador ou instalado como um PWA.",
|
||||
"documentation": "Leia a Documentação"
|
||||
},
|
||||
"notificationUnavailable": {
|
||||
"title": "Notificações Indisponíveis",
|
||||
"desc": "Notificações push da Web exigem um contexto seguro (<code>https://…</code>). Essa é uma limitação do navegador. Acesse o Frigate com seguraça para usar as notificações.",
|
||||
"documentation": "Leia a Documentação"
|
||||
},
|
||||
"globalSettings": {
|
||||
"title": "Configurações Globais",
|
||||
"desc": "Suspender as notificações temporáriamente para câmeras específicas em todos os dispositivos registrados."
|
||||
},
|
||||
"email": {
|
||||
"title": "Email",
|
||||
"placeholder": "ex: exemplo@email.com",
|
||||
"desc": "Um email válido é requerido e será usado para notificar você caso haja algum problema com o serviço push."
|
||||
},
|
||||
"cameras": {
|
||||
"title": "Câmeras",
|
||||
"noCameras": "Nenhuma câmera disponível",
|
||||
"desc": "Selecionar para quais câmeras habilitar as notificações."
|
||||
},
|
||||
"deviceSpecific": "Configurações Específicas do Dispositivo",
|
||||
"registerDevice": "Registre Esse Dispositivo",
|
||||
"unregisterDevice": "Cancelar Registro Desse Dispositivo",
|
||||
"sendTestNotification": "Enviar uma notificação de teste",
|
||||
"unsavedRegistrations": "Registros de Notificações Não Salvos",
|
||||
"unsavedChanges": "Alterações de Notificações Não Salvas",
|
||||
"active": "Notificações Ativas",
|
||||
"suspended": "Notificações suspensas {{time}}"
|
||||
},
|
||||
"frigatePlus": {
|
||||
"title": "Configurações do Frigate+",
|
||||
"apiKey": {
|
||||
"title": "Chave de API do Frigate+",
|
||||
"validated": "A chave de API do Frigate+ detectada e validada",
|
||||
"notValidated": "A chave de API do Frigate+ não detectada ou não validada",
|
||||
"desc": "A chave de API do Frigate+ habilita a integração com o serviço do Frigate+.",
|
||||
"plusLink": "Leia mais sobre o Frigate+"
|
||||
},
|
||||
"modelInfo": {
|
||||
"plusModelType": {
|
||||
"baseModel": "Modelo Base",
|
||||
"userModel": "Ajuste Refinado"
|
||||
},
|
||||
"supportedDetectors": "Detectores Suportados",
|
||||
"cameras": "Câmeras",
|
||||
"loading": "Carregando informações do modelo…",
|
||||
"error": "Falha ao carregar as informações do modelo",
|
||||
"availableModels": "Modelos Disponíveis",
|
||||
"loadingAvailableModels": "Carregando modelos disponíveis…",
|
||||
"title": "Informação do Modelo",
|
||||
"modelType": "Tipo de Modelo",
|
||||
"trainDate": "Data do Treinamento",
|
||||
"baseModel": "Modelo Base",
|
||||
"modelSelect": "Os seus modelos disponíveis no Frigate+ podem ser selecionados aqui. Note que apenas modelos compatíveis com a sua configuração atual de detector podem ser selecionados."
|
||||
},
|
||||
"snapshotConfig": {
|
||||
"title": "Configuração de Captura de Imagem",
|
||||
"desc": "Enviar ao Frigate+ requer tanto a captura de imagem quanto a captura de imagem <code>clean_copy</code> estarem habilitadas na sua configuração.",
|
||||
"documentation": "Leia a documentação",
|
||||
"cleanCopyWarning": "Algumas câmeras possuem captura de imagem habilitada porém têm a cópia limpa desabilitada. Você precisa habilitar a <code>clean_copy</code> nas suas configurações de captura de imagem para poder submeter imagems dessa câmera ao Frigate+.",
|
||||
"table": {
|
||||
"camera": "Câmera",
|
||||
"snapshots": "Capturas de Imagem",
|
||||
"cleanCopySnapshots": "Capturas de Imagem <code>clean_copy</code>"
|
||||
}
|
||||
},
|
||||
"unsavedChanges": "Alterações de configurações do Frigate+ não salvas",
|
||||
"restart_required": "Reinicialização necessária (modelo do Frigate+ foi alterado)",
|
||||
"toast": {
|
||||
"success": "As configurações do Frigate+ foram salvas. Reinicie o Frigate para aplicar as alterações.",
|
||||
"error": "Falha ao salvar as alterações de configuração: {{errorMessage}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"type": {
|
||||
"label": "Tipo",
|
||||
"timestamp": "Marca temporal",
|
||||
"tag": "Etiqueta",
|
||||
"tag": "Marcador",
|
||||
"message": "Mensagem"
|
||||
},
|
||||
"tips": "Os Registros estão sendo transmitidos do servidor",
|
||||
@@ -61,7 +61,8 @@
|
||||
"title": "Saída SMI da Nvidia",
|
||||
"name": "Nome: {{name}}",
|
||||
"driver": "Motorista: {{driver}}",
|
||||
"cudaComputerCapability": "Capacidade de Computação CUDA: {{cuda_compute}}"
|
||||
"cudaComputerCapability": "Capacidade de Computação CUDA: {{cuda_compute}}",
|
||||
"vbios": "Informação de VBios: {{vbios}}"
|
||||
},
|
||||
"closeInfo": {
|
||||
"label": "Fechar informações da GPU"
|
||||
@@ -77,7 +78,103 @@
|
||||
"npuMemory": "Memória da NPU"
|
||||
},
|
||||
"otherProcesses": {
|
||||
"title": "Outros processos"
|
||||
"title": "Outros processos",
|
||||
"processCpuUsage": "Uso de Processamento da CPU",
|
||||
"processMemoryUsage": "Uso de Memória de Processos"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"title": "Armazenamento",
|
||||
"overview": "Visão Geral",
|
||||
"recordings": {
|
||||
"title": "Gravações",
|
||||
"earliestRecording": "Gravação mais recente disponível:",
|
||||
"tips": "Esse valor representa o armazenamento total usado pelas gravações no banco de dados do Frigate. O Frigate não rastreia o uso de armazenamento para todos os arquivos do seu disco."
|
||||
},
|
||||
"cameraStorage": {
|
||||
"title": "Armazenamento da Câmera",
|
||||
"camera": "Câmera",
|
||||
"unusedStorageInformation": "Informação de Armazenamento Não Utilizado",
|
||||
"storageUsed": "Armazenamento",
|
||||
"percentageOfTotalUsed": "Porcentagem do Total",
|
||||
"bandwidth": "Largura de Banda",
|
||||
"unused": {
|
||||
"title": "Não Utilizado",
|
||||
"tips": "Esse valor por não representar com precisão o espaço livre disponí®el para o Frigate se você possui outros arquivos armazenados no seu drive além das gravações do Frigate. O Frigate não rastreia a utilização do armazenamento além de suas próprias gravações."
|
||||
}
|
||||
}
|
||||
},
|
||||
"cameras": {
|
||||
"title": "Câmeras",
|
||||
"overview": "Visão Geral",
|
||||
"info": {
|
||||
"aspectRatio": "proporção",
|
||||
"cameraProbeInfo": "{{camera}} Informação de Probe da Câmera",
|
||||
"streamDataFromFFPROBE": "Os dados da tranmissão são obtidos com o <code>ffprobe</code>.",
|
||||
"fetching": "Buscando Dados da Câmera",
|
||||
"stream": "Transmissão {{idx}}",
|
||||
"video": "Vídeo:",
|
||||
"codec": "Codec:",
|
||||
"resolution": "Resolução:",
|
||||
"fps": "FPS:",
|
||||
"unknown": "Desconhecido",
|
||||
"audio": "Áudio:",
|
||||
"error": "Erro: {{error}}",
|
||||
"tips": {
|
||||
"title": "Informação de Probe de Câmera"
|
||||
}
|
||||
},
|
||||
"framesAndDetections": "Quadros / Detecções",
|
||||
"label": {
|
||||
"camera": "câmera",
|
||||
"detect": "detectar",
|
||||
"skipped": "ignoradas",
|
||||
"ffmpeg": "FFmpeg",
|
||||
"capture": "captura",
|
||||
"overallFramesPerSecond": "quadros por segundo em geral",
|
||||
"overallDetectionsPerSecond": "detecções por segundo em geral",
|
||||
"overallSkippedDetectionsPerSecond": "detecções puladas por segundo em geral",
|
||||
"cameraFfmpeg": "{{camName}} FFmpeg",
|
||||
"cameraCapture": "{{camName}} captura",
|
||||
"cameraDetect": "{{camName}} detectar",
|
||||
"cameraFramesPerSecond": "{{camName}} quadros por segundo",
|
||||
"cameraDetectionsPerSecond": "{{camName}} detecções por segundo",
|
||||
"cameraSkippedDetectionsPerSecond": "{{camName}} detecções puladas por segundo"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"copyToClipboard": "Dados do probe copiados para a área de transferência."
|
||||
},
|
||||
"error": {
|
||||
"unableToProbeCamera": "Não foi possível fazer o probe da câmera: {{errorMessage}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"lastRefreshed": "Atualizado pela última vez: ",
|
||||
"stats": {
|
||||
"detectIsVerySlow": "{{detect}} está muito lento ({{speed}} ms)",
|
||||
"ffmpegHighCpuUsage": "{{camera}} possui alta utilização de CPU para FFmpeg ({{ffmpegAvg}}%)",
|
||||
"detectHighCpuUsage": "{{camera}} possui alta utilização de CPU para detecção ({{detectAvg}}%)",
|
||||
"healthy": "O sistema está saudável",
|
||||
"cameraIsOffline": "{{camera}} está offline",
|
||||
"reindexingEmbeddings": "Reindexando os vetores de característica de imagens ({{processed}}% completado)",
|
||||
"detectIsSlow": "{{detect}} está lento ({{speed}} ms)"
|
||||
},
|
||||
"enrichments": {
|
||||
"title": "Enriquecimentos",
|
||||
"infPerSecond": "Inferências por Segundo",
|
||||
"embeddings": {
|
||||
"face_recognition": "Reconhecimento Facial",
|
||||
"plate_recognition": "Reconhecimento de Placa",
|
||||
"plate_recognition_speed": "Velocidade de Reconhecimento de Placas",
|
||||
"text_embedding_speed": "Velocidade de Geração de Vetores de Texto",
|
||||
"yolov9_plate_detection_speed": "Velocidade de Reconhecimento de Placas do YOLOv9",
|
||||
"yolov9_plate_detection": "Detecção de Placas do YOLOv9",
|
||||
"image_embedding": "Vetores de Características de Imagens",
|
||||
"text_embedding": "Vetor de Característica de Texto",
|
||||
"image_embedding_speed": "Velocidade de Geração de Vetores de Imagem",
|
||||
"face_embedding_speed": "Velocidade de Geração de Vetores de Rostos",
|
||||
"face_recognition_speed": "Velocidade de Reconhecimento de Rostos"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
{
|
||||
"mantra": "Mantra",
|
||||
"child_singing": "Criança cantando",
|
||||
"speech": "Discurso",
|
||||
"yell": "Gritar",
|
||||
"chant": "Canto",
|
||||
"babbling": "Balbuciando",
|
||||
"bellow": "Abaixo",
|
||||
"whoop": "Grito",
|
||||
"whispering": "Sussurrando",
|
||||
"laughter": "Risada",
|
||||
"snicker": "Risada",
|
||||
"crying": "Choro",
|
||||
"sigh": "Suspirar",
|
||||
"singing": "Cantoria",
|
||||
"choir": "Coro",
|
||||
"yodeling": "Cantando",
|
||||
"bicycle": "Bicicleta",
|
||||
"car": "Carro",
|
||||
"motorcycle": "Moto",
|
||||
"bus": "Ônibus",
|
||||
"train": "Trem",
|
||||
"boat": "Barco",
|
||||
"bird": "Pássaro",
|
||||
"cat": "Gato",
|
||||
"dog": "Cachorro",
|
||||
"rapping": "Cantando rap",
|
||||
"horse": "Cavalo",
|
||||
"humming": "Cantarolando",
|
||||
"sheep": "Ovelha",
|
||||
"synthetic_singing": "Canto Sintético",
|
||||
"groan": "Gemido",
|
||||
"grunt": "Grunhido",
|
||||
"whistling": "Assobio",
|
||||
"breathing": "Respiração",
|
||||
"camera": "Câmera",
|
||||
"wheeze": "Chiado",
|
||||
"snoring": "Ronco",
|
||||
"gasp": "Respiração Ofegante",
|
||||
"pant": "Arfado",
|
||||
"snort": "Bufado",
|
||||
"cough": "Tosse",
|
||||
"throat_clearing": "Pigarro",
|
||||
"sneeze": "Espirro",
|
||||
"sniff": "Fungado",
|
||||
"run": "Executar",
|
||||
"shuffle": "Embaralhar",
|
||||
"footsteps": "Passos",
|
||||
"chewing": "Mastigação",
|
||||
"biting": "Mordida",
|
||||
"gargling": "Gargarejo",
|
||||
"stomach_rumble": "Ronco de Estômago",
|
||||
"burping": "Arroto",
|
||||
"skateboard": "Skate"
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
{
|
||||
"person": "Pessoa",
|
||||
"bicycle": "Bicicleta",
|
||||
"car": "Carro",
|
||||
"motorcycle": "Moto",
|
||||
"airplane": "Avião",
|
||||
"bus": "Ônibus",
|
||||
"train": "Trem",
|
||||
"boat": "Barco",
|
||||
"traffic_light": "Semáforo",
|
||||
"fire_hydrant": "Hidrante",
|
||||
"street_sign": "Placa de rua",
|
||||
"stop_sign": "Sinal de parada",
|
||||
"parking_meter": "Parquímetro",
|
||||
"bench": "Banco",
|
||||
"bird": "Pássaro",
|
||||
"cat": "Gato",
|
||||
"dog": "Cachorro",
|
||||
"horse": "Cavalo",
|
||||
"sheep": "Ovelha",
|
||||
"cow": "Vaca",
|
||||
"elephant": "Elefante",
|
||||
"bear": "Urso",
|
||||
"zebra": "Zebra",
|
||||
"giraffe": "Girafa",
|
||||
"hat": "Chapéu",
|
||||
"backpack": "Mochila",
|
||||
"umbrella": "Guarda-Chuva",
|
||||
"shoe": "Sapato",
|
||||
"eye_glasses": "Óculos",
|
||||
"handbag": "Bolsa",
|
||||
"tie": "Gravata",
|
||||
"suitcase": "Mala",
|
||||
"frisbee": "Frisbe",
|
||||
"skis": "Esquis",
|
||||
"snowboard": "Snowboard",
|
||||
"sports_ball": "Bola de Esportes",
|
||||
"kite": "Pipa",
|
||||
"baseball_bat": "Taco de Basebol",
|
||||
"baseball_glove": "Luva de Basebol",
|
||||
"skateboard": "Skate",
|
||||
"plate": "Placa"
|
||||
}
|
||||
@@ -9,15 +9,15 @@
|
||||
"horse": "Cal",
|
||||
"bird": "Pasare",
|
||||
"sheep": "Oaie",
|
||||
"boat": "Barca",
|
||||
"motorcycle": "Motocicleta",
|
||||
"boat": "Barcă",
|
||||
"motorcycle": "Motocicletă",
|
||||
"bus": "Autobuz",
|
||||
"train": "Tren",
|
||||
"skateboard": "Skateboard",
|
||||
"camera": "Camera foto",
|
||||
"bicycle": "Bicicletă",
|
||||
"car": "Mașină",
|
||||
"cat": "Pisica",
|
||||
"cat": "Pisică",
|
||||
"animal": "Animal",
|
||||
"goat": "Capra",
|
||||
"keyboard": "Orga",
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
"button": "Repornește",
|
||||
"restarting": {
|
||||
"title": "Frigate repornește",
|
||||
"content": "Această pagină se va reâncărca în {{countdown}} secunde.",
|
||||
"button": "Forteaza Reincarcarea Acum"
|
||||
"content": "Această pagină se va reâncărca automat în {{countdown}} secunde.",
|
||||
"button": "Forțează acum reîncărcarea"
|
||||
}
|
||||
},
|
||||
"explore": {
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
"label": "Filtru camere"
|
||||
},
|
||||
"review": {
|
||||
"showReviewed": "Afișează revizuitele"
|
||||
"showReviewed": "Afișează cele revizuite"
|
||||
},
|
||||
"motion": {
|
||||
"showMotionOnly": "Afișează doar mișcarea"
|
||||
@@ -98,10 +98,10 @@
|
||||
"label": "Filtrează nivelul jurnalului",
|
||||
"filterBySeverity": "Filtrează jurnalele după severitate",
|
||||
"loading": {
|
||||
"title": "Se încarcă",
|
||||
"title": "Încărcare continuă",
|
||||
"desc": "Când panoul de jurnale este derulat până jos, noile jurnale sunt afișate automat pe măsură ce sunt adăugate."
|
||||
},
|
||||
"disableLogStreaming": "Dezactivează fluxul jurnalelor",
|
||||
"disableLogStreaming": "Dezactivează încărcarea continuă",
|
||||
"allLogs": "Toate jurnalele"
|
||||
},
|
||||
"trackedObjectDelete": {
|
||||
|
||||
@@ -5,17 +5,17 @@
|
||||
"airplane": "Avion",
|
||||
"bus": "Autobuz",
|
||||
"train": "Tren",
|
||||
"boat": "Barca",
|
||||
"boat": "Barcă",
|
||||
"fire_hydrant": "Hidrant",
|
||||
"street_sign": "Semn de Circulatie",
|
||||
"stop_sign": "Semn de Stop",
|
||||
"parking_meter": "Automat de Parcare",
|
||||
"bench": "Bancheta",
|
||||
"bird": "Pasare",
|
||||
"cat": "Pisica",
|
||||
"cat": "Pisică",
|
||||
"dog": "Câine",
|
||||
"horse": "Cal",
|
||||
"cow": "Vaca",
|
||||
"cow": "Vacă",
|
||||
"elephant": "Elefant",
|
||||
"bear": "Urs",
|
||||
"giraffe": "Girafa",
|
||||
@@ -46,7 +46,7 @@
|
||||
"bowl": "Castron",
|
||||
"banana": "Banana",
|
||||
"apple": "Mar",
|
||||
"motorcycle": "Motocicleta",
|
||||
"motorcycle": "Motocicletă",
|
||||
"traffic_light": "Semafor",
|
||||
"sheep": "Oaie",
|
||||
"zebra": "Zebra",
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
},
|
||||
"objectLifecycle": {
|
||||
"lifecycleItemDesc": {
|
||||
"visible": "{{label}} detectata",
|
||||
"visible": "S-a detectat {{label}}",
|
||||
"active": "{{label}} a devenit activ",
|
||||
"entered_zone": "{{label}} a intrat în {{zones}}",
|
||||
"stationary": "{{label}} a devenit staționar",
|
||||
@@ -50,7 +50,7 @@
|
||||
"ratio": "Raport",
|
||||
"area": "Suprafață"
|
||||
},
|
||||
"gone": "{{label}} a ieșit",
|
||||
"gone": "{{label}} a părasit cadrul",
|
||||
"heard": "{{label}} auzit(ă)",
|
||||
"external": "{{label}} detectat(ă)"
|
||||
},
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
"title": "Calendar",
|
||||
"firstWeekday": {
|
||||
"label": "Prima zi a săptămânii",
|
||||
"desc": "Ziua în care încep săptămânile calendarului de revizuire.",
|
||||
"desc": "Ziua cu care încep săptămânile calendarului de revizuire.",
|
||||
"sunday": "Duminică",
|
||||
"monday": "Luni"
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
},
|
||||
"title": "Spațiu stocare",
|
||||
"cameraStorage": {
|
||||
"title": "Spațiu tocare camere",
|
||||
"title": "Spațiu stocare camere",
|
||||
"camera": "Camera",
|
||||
"unusedStorageInformation": "Informații despre stocarea neutilizată",
|
||||
"storageUsed": "Spațiu stocare",
|
||||
@@ -86,12 +86,12 @@
|
||||
},
|
||||
"copy": {
|
||||
"label": "Copiază",
|
||||
"success": "Copiază jurnalul",
|
||||
"success": "Jurnalul a fost copiat",
|
||||
"error": "Jurnalul nu s-a putut copia"
|
||||
},
|
||||
"type": {
|
||||
"label": "Tip",
|
||||
"timestamp": "Marca temporală",
|
||||
"timestamp": "Data / ora",
|
||||
"tag": "Etichetă",
|
||||
"message": "Mesaj"
|
||||
},
|
||||
@@ -110,7 +110,7 @@
|
||||
"image_embedding": "Încorporare imagini",
|
||||
"text_embedding": "Încorporare text",
|
||||
"plate_recognition": "Recunoaștere numere de înmatriculare",
|
||||
"image_embedding_speed": "Viteză încorporarei imaginii",
|
||||
"image_embedding_speed": "Viteză încorporare imagini",
|
||||
"face_recognition": "Recunoaștere facială",
|
||||
"face_recognition_speed": "Viteză recunoaștere facială",
|
||||
"plate_recognition_speed": "Viteză recunoaștere numere de înmatriculare",
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
},
|
||||
"label": "Etiketter",
|
||||
"count": "{{count}} Etiketter",
|
||||
"count_one": "{{count}} Etikett"
|
||||
"count_one": "{{count}} Etikett",
|
||||
"count_other": "{{count}} Etiketter"
|
||||
},
|
||||
"filter": "Filter",
|
||||
"zones": {
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
"general": "Allmän statistik - Frigate",
|
||||
"cameras": "Kamerastatistik - Frigate",
|
||||
"logs": {
|
||||
"frigate": "Frigate loggar - Frigate"
|
||||
"frigate": "Frigate loggar - Frigate",
|
||||
"go2rtc": "Go2RTC Loggar - Frigate"
|
||||
}
|
||||
},
|
||||
"logs": {
|
||||
@@ -19,18 +20,52 @@
|
||||
"type": {
|
||||
"label": "Typ",
|
||||
"timestamp": "Tidsstämpel",
|
||||
"message": "Meddelande"
|
||||
"message": "Meddelande",
|
||||
"tag": "Tagg"
|
||||
},
|
||||
"tips": "Loggarna strömmas från Server",
|
||||
"toast": {
|
||||
"error": {
|
||||
"fetchingLogsFailed": "Fel vid hämtning av loggar: {{errorMessage}}"
|
||||
"fetchingLogsFailed": "Fel vid hämtning av loggar: {{errorMessage}}",
|
||||
"whileStreamingLogs": "Fel vid uppspelning av loggar: {{errorMessage}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"title": "System",
|
||||
"metrics": "System detaljer",
|
||||
"general": {
|
||||
"title": "Generellt"
|
||||
"title": "Generellt",
|
||||
"detector": {
|
||||
"title": "Detektorer"
|
||||
},
|
||||
"hardwareInfo": {
|
||||
"title": "Hårdvaruinformation",
|
||||
"gpuUsage": "GPU-användning",
|
||||
"gpuMemory": "GPU-minne"
|
||||
},
|
||||
"otherProcesses": {
|
||||
"title": "Övriga processer"
|
||||
}
|
||||
},
|
||||
"storage": {
|
||||
"cameraStorage": {
|
||||
"storageUsed": "Lagring",
|
||||
"percentageOfTotalUsed": "Procentandel av totalt",
|
||||
"bandwidth": "Bandbredd",
|
||||
"unused": {
|
||||
"title": "Oanvänt",
|
||||
"tips": "Det här värdet kanske inte korrekt representerar det lediga utrymmet tillgängligt för Frigate om du har andra filer lagrade på din hårddisk utöver Frigates inspelningar. Frigate spårar inte lagringsanvändning utanför sina egna inspelningar."
|
||||
}
|
||||
}
|
||||
},
|
||||
"cameras": {
|
||||
"title": "Kameror",
|
||||
"overview": "Översikt",
|
||||
"info": {
|
||||
"aspectRatio": "bildförhållande"
|
||||
},
|
||||
"label": {
|
||||
"detect": "detektera"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
"nb": "Norsk Bokmål (Tiếng Na Uy)",
|
||||
"ko": "한국어 (Tiếng Hàn)",
|
||||
"pl": "Polski (Tiếng Ba Lan)",
|
||||
"vi": "Tiếng Việt",
|
||||
"vi": "Tiếng Việt (Tiếng Việt)",
|
||||
"fa": "فارسی (Tiếng Ba Tư)",
|
||||
"uk": "Українська (Tiếng Ukraina)",
|
||||
"he": "עברית (Tiếng Do Thái)",
|
||||
@@ -121,7 +121,7 @@
|
||||
},
|
||||
"yue": "粵語 (Tiếng Quảng Đông)",
|
||||
"ca": "Català (Tiếng Catalan)",
|
||||
"th": "ไทย (Tiếng Thái Lan)"
|
||||
"th": "ไทย (Tiếng Thái)"
|
||||
},
|
||||
"system": "Hệ thống",
|
||||
"systemMetrics": "Thông số hệ thống",
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
"camera": "Camera",
|
||||
"unusedStorageInformation": "Thông tin Lưu trữ Chưa sử dụng",
|
||||
"storageUsed": "Lưu trữ",
|
||||
"percentageOfTotalUsed": "Phần trăm dung lượng sử dụng",
|
||||
"percentageOfTotalUsed": "Tổng phần trăm",
|
||||
"bandwidth": "Băng thông",
|
||||
"unused": {
|
||||
"title": "Chưa sử dụng",
|
||||
|
||||
Regular → Executable
+3
-3
@@ -420,11 +420,11 @@ export default function InputWithTags({
|
||||
? t("button.yes", { ns: "common" })
|
||||
: t("button.no", { ns: "common" });
|
||||
} else if (filterType === "labels") {
|
||||
return getTranslatedLabel(filterValues as string);
|
||||
return getTranslatedLabel(String(filterValues));
|
||||
} else if (filterType === "search_type") {
|
||||
return t("filter.searchType." + (filterValues as string));
|
||||
return t("filter.searchType." + String(filterValues));
|
||||
} else {
|
||||
return (filterValues as string).replaceAll("_", " ");
|
||||
return String(filterValues).replaceAll("_", " ");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -85,6 +85,7 @@ export default function GeneralSettings({ className }: GeneralSettingsProps) {
|
||||
"nb-NO": "nb",
|
||||
"yue-Hant": "yue",
|
||||
"zh-CN": "zhCN",
|
||||
"pt-BR": "ptBR",
|
||||
};
|
||||
|
||||
return supportedLanguageKeys.map((key) => {
|
||||
|
||||
@@ -47,9 +47,9 @@ export default function useApiFilter<
|
||||
return [filter, setFilter, searchParams];
|
||||
}
|
||||
|
||||
export function useApiFilterArgs<
|
||||
F extends FilterType,
|
||||
>(): useApiFilterReturn<F> {
|
||||
export function useApiFilterArgs<F extends FilterType>(
|
||||
arrayKeys: string[],
|
||||
): useApiFilterReturn<F> {
|
||||
const [rawParams, setRawParams] = useSearchParams();
|
||||
|
||||
const setFilter = useCallback(
|
||||
@@ -64,30 +64,37 @@ export function useApiFilterArgs<
|
||||
|
||||
const filter: { [key: string]: unknown } = {};
|
||||
|
||||
rawParams.forEach((value, key) => {
|
||||
const isValidNumber = /^-?\d+(\.\d+)?(?!.)/.test(value);
|
||||
const isValidEventID = /^\d+\.\d+-[a-zA-Z0-9]+$/.test(value);
|
||||
// always treat these keys as string[], not as a number or event id
|
||||
const arrayKeySet = new Set(arrayKeys);
|
||||
|
||||
if (
|
||||
value != "true" &&
|
||||
value != "false" &&
|
||||
!isValidNumber &&
|
||||
!isValidEventID
|
||||
) {
|
||||
rawParams.forEach((value, key) => {
|
||||
if (arrayKeySet.has(key)) {
|
||||
filter[key] = value.includes(",") ? value.split(",") : [value];
|
||||
} else {
|
||||
if (value != undefined) {
|
||||
try {
|
||||
filter[key] = JSON.parse(value);
|
||||
} catch {
|
||||
filter[key] = `${value}`;
|
||||
const isValidNumber = /^-?\d+(\.\d+)?(?!.)/.test(value);
|
||||
const isValidEventID = /^\d+\.\d+-[a-zA-Z0-9]+$/.test(value);
|
||||
|
||||
if (
|
||||
value != "true" &&
|
||||
value != "false" &&
|
||||
!isValidNumber &&
|
||||
!isValidEventID
|
||||
) {
|
||||
filter[key] = value.includes(",") ? value.split(",") : [value];
|
||||
} else {
|
||||
if (value != undefined) {
|
||||
try {
|
||||
filter[key] = JSON.parse(value);
|
||||
} catch {
|
||||
filter[key] = `${value}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return filter as F;
|
||||
}, [rawParams]);
|
||||
}, [rawParams, arrayKeys]);
|
||||
|
||||
const searchParams = useMemo(() => {
|
||||
if (filter == undefined || Object.keys(filter).length == 0) {
|
||||
|
||||
@@ -10,6 +10,7 @@ const localeMap: Record<string, () => Promise<Locale>> = {
|
||||
fr: () => import("date-fns/locale/fr").then((module) => module.fr),
|
||||
ar: () => import("date-fns/locale/ar").then((module) => module.ar),
|
||||
pt: () => import("date-fns/locale/pt").then((module) => module.pt),
|
||||
"pt-BR": () => import("date-fns/locale/pt").then((module) => module.pt),
|
||||
ru: () => import("date-fns/locale/ru").then((module) => module.ru),
|
||||
de: () => import("date-fns/locale/de").then((module) => module.de),
|
||||
ja: () => import("date-fns/locale/ja").then((module) => module.ja),
|
||||
|
||||
@@ -17,7 +17,7 @@ export function useVideoDimensions(
|
||||
});
|
||||
|
||||
const videoAspectRatio = useMemo(() => {
|
||||
return videoResolution.width / videoResolution.height || 16 / 9;
|
||||
return videoResolution.width / videoResolution.height;
|
||||
}, [videoResolution]);
|
||||
|
||||
const containerAspectRatio = useMemo(() => {
|
||||
@@ -25,7 +25,7 @@ export function useVideoDimensions(
|
||||
}, [containerWidth, containerHeight]);
|
||||
|
||||
const videoDimensions = useMemo(() => {
|
||||
if (!containerWidth || !containerHeight)
|
||||
if (!containerWidth || !containerHeight || !videoAspectRatio)
|
||||
return { width: "100%", height: "100%" };
|
||||
if (containerAspectRatio > videoAspectRatio) {
|
||||
const height = containerHeight;
|
||||
|
||||
@@ -2,6 +2,7 @@ export const supportedLanguageKeys = [
|
||||
"en",
|
||||
"es",
|
||||
"pt",
|
||||
"pt-BR",
|
||||
"fr",
|
||||
"de",
|
||||
"it",
|
||||
|
||||
@@ -26,6 +26,15 @@ import { useDocDomain } from "@/hooks/use-doc-domain";
|
||||
|
||||
const API_LIMIT = 25;
|
||||
|
||||
// always parse these as string arrays
|
||||
const SEARCH_FILTER_ARRAY_KEYS = [
|
||||
"cameras",
|
||||
"labels",
|
||||
"sub_labels",
|
||||
"recognized_license_plate",
|
||||
"zones",
|
||||
];
|
||||
|
||||
export default function Explore() {
|
||||
// search field handler
|
||||
|
||||
@@ -58,7 +67,7 @@ export default function Explore() {
|
||||
const [search, setSearch] = useState("");
|
||||
|
||||
const [searchFilter, setSearchFilter, searchSearchParams] =
|
||||
useApiFilterArgs<SearchFilter>();
|
||||
useApiFilterArgs<SearchFilter>(SEARCH_FILTER_ARRAY_KEYS);
|
||||
|
||||
const searchTerm = useMemo(
|
||||
() => searchSearchParams?.["query"] || "",
|
||||
|
||||
@@ -118,50 +118,6 @@ export default function NotificationView({
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [changedValue]);
|
||||
|
||||
// notification key handling
|
||||
|
||||
const { data: publicKey } = useSWR(
|
||||
config?.notifications?.enabled ? "notifications/pubkey" : null,
|
||||
{ revalidateOnFocus: false },
|
||||
);
|
||||
|
||||
const subscribeToNotifications = useCallback(
|
||||
(registration: ServiceWorkerRegistration) => {
|
||||
if (registration) {
|
||||
addMessage(
|
||||
"notification_settings",
|
||||
t("notification.unsavedRegistrations"),
|
||||
undefined,
|
||||
"registration",
|
||||
);
|
||||
|
||||
registration.pushManager
|
||||
.subscribe({
|
||||
userVisibleOnly: true,
|
||||
applicationServerKey: publicKey,
|
||||
})
|
||||
.then((pushSubscription) => {
|
||||
axios
|
||||
.post("notifications/register", {
|
||||
sub: pushSubscription,
|
||||
})
|
||||
.catch(() => {
|
||||
toast.error(t("notification.toast.error.registerFailed"), {
|
||||
position: "top-center",
|
||||
});
|
||||
pushSubscription.unsubscribe();
|
||||
registration.unregister();
|
||||
setRegistration(null);
|
||||
});
|
||||
toast.success(t("notification.toast.success.registered"), {
|
||||
position: "top-center",
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
[publicKey, addMessage, t],
|
||||
);
|
||||
|
||||
// notification state
|
||||
|
||||
const [registration, setRegistration] =
|
||||
@@ -206,8 +162,70 @@ export default function NotificationView({
|
||||
},
|
||||
});
|
||||
|
||||
const watchAllEnabled = form.watch("allEnabled");
|
||||
const watchCameras = form.watch("cameras");
|
||||
|
||||
const anyCameraNotificationsEnabled = useMemo(
|
||||
() =>
|
||||
config &&
|
||||
Object.values(config.cameras).some(
|
||||
(c) =>
|
||||
c.enabled_in_config &&
|
||||
c.notifications &&
|
||||
c.notifications.enabled_in_config,
|
||||
),
|
||||
[config],
|
||||
);
|
||||
|
||||
const shouldFetchPubKey = Boolean(
|
||||
config &&
|
||||
(config.notifications?.enabled || anyCameraNotificationsEnabled) &&
|
||||
(watchAllEnabled ||
|
||||
(Array.isArray(watchCameras) && watchCameras.length > 0)),
|
||||
);
|
||||
|
||||
const { data: publicKey } = useSWR(
|
||||
shouldFetchPubKey ? "notifications/pubkey" : null,
|
||||
{ revalidateOnFocus: false },
|
||||
);
|
||||
|
||||
const subscribeToNotifications = useCallback(
|
||||
(registration: ServiceWorkerRegistration) => {
|
||||
if (registration) {
|
||||
addMessage(
|
||||
"notification_settings",
|
||||
t("notification.unsavedRegistrations"),
|
||||
undefined,
|
||||
"registration",
|
||||
);
|
||||
|
||||
registration.pushManager
|
||||
.subscribe({
|
||||
userVisibleOnly: true,
|
||||
applicationServerKey: publicKey,
|
||||
})
|
||||
.then((pushSubscription) => {
|
||||
axios
|
||||
.post("notifications/register", {
|
||||
sub: pushSubscription,
|
||||
})
|
||||
.catch(() => {
|
||||
toast.error(t("notification.toast.error.registerFailed"), {
|
||||
position: "top-center",
|
||||
});
|
||||
pushSubscription.unsubscribe();
|
||||
registration.unregister();
|
||||
setRegistration(null);
|
||||
});
|
||||
toast.success(t("notification.toast.success.registered"), {
|
||||
position: "top-center",
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
[publicKey, addMessage, t],
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
if (watchCameras.length > 0) {
|
||||
form.setValue("allEnabled", false);
|
||||
@@ -521,11 +539,7 @@ export default function NotificationView({
|
||||
</Heading>
|
||||
<Button
|
||||
aria-label={t("notification.registerDevice")}
|
||||
disabled={
|
||||
(!config?.notifications.enabled &&
|
||||
notificationCameras.length === 0) ||
|
||||
publicKey == undefined
|
||||
}
|
||||
disabled={!shouldFetchPubKey || publicKey == undefined}
|
||||
onClick={() => {
|
||||
if (registration == null) {
|
||||
Notification.requestPermission().then((permission) => {
|
||||
|
||||
Reference in New Issue
Block a user