mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-08-02 17:12:16 +03:00
Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c2f8de94e8 | ||
|
|
f46560d2bf | ||
|
|
a1acb504ee | ||
|
|
3d79eef227 | ||
|
|
efe0d2a931 | ||
|
|
cbd5bdfd88 | ||
|
|
6f2e6c4cb2 | ||
|
|
84f48ee3eb | ||
|
|
49793aa655 | ||
|
|
4869f46ab6 | ||
|
|
5e5beb9837 |
@@ -13,6 +13,7 @@ RUN sed -i "/https:\/\//d" /requirements-wheels.txt
|
|||||||
RUN sed -i "/onnxruntime/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 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/opencv_python-*
|
||||||
|
RUN rm -rf /rk-wheels/torch-*
|
||||||
|
|
||||||
FROM deps AS rk-frigate
|
FROM deps AS rk-frigate
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
|
|||||||
@@ -21,7 +21,12 @@ router = APIRouter(tags=[Tags.notifications])
|
|||||||
|
|
||||||
@router.get("/notifications/pubkey")
|
@router.get("/notifications/pubkey")
|
||||||
def get_vapid_pub_key(request: Request):
|
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(
|
return JSONResponse(
|
||||||
content=({"success": False, "message": "Notifications are not enabled."}),
|
content=({"success": False, "message": "Notifications are not enabled."}),
|
||||||
status_code=400,
|
status_code=400,
|
||||||
|
|||||||
@@ -140,6 +140,7 @@
|
|||||||
"fr": "Français (French)",
|
"fr": "Français (French)",
|
||||||
"ar": "العربية (Arabic)",
|
"ar": "العربية (Arabic)",
|
||||||
"pt": "Português (Portuguese)",
|
"pt": "Português (Portuguese)",
|
||||||
|
"ptBR": "Português brasileiro (Brazilian Portuguese)",
|
||||||
"ru": "Русский (Russian)",
|
"ru": "Русский (Russian)",
|
||||||
"de": "Deutsch (German)",
|
"de": "Deutsch (German)",
|
||||||
"ja": "日本語 (Japanese)",
|
"ja": "日本語 (Japanese)",
|
||||||
@@ -164,6 +165,13 @@
|
|||||||
"yue": "粵語 (Cantonese)",
|
"yue": "粵語 (Cantonese)",
|
||||||
"th": "ไทย (Thai)",
|
"th": "ไทย (Thai)",
|
||||||
"ca": "Català (Catalan)",
|
"ca": "Català (Catalan)",
|
||||||
|
"sr": "Српски (Serbian)",
|
||||||
|
"sl": "Slovenščina (Slovenian)",
|
||||||
|
"lt": "Lietuvių (Lithuanian)",
|
||||||
|
"bg": "Български (Bulgarian)",
|
||||||
|
"gl": "Galego (Galician)",
|
||||||
|
"id": "Bahasa Indonesia (Indonesian)",
|
||||||
|
"ur": "اردو (Urdu)",
|
||||||
"withSystem": {
|
"withSystem": {
|
||||||
"label": "Use the system settings for language"
|
"label": "Use the system settings for language"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.",
|
"untilForRestart": "Amíg a Frigate újraindul.",
|
||||||
"untilRestart": "Amíg újraindul",
|
"untilRestart": "Amíg újraindul",
|
||||||
"justNow": "Most",
|
"justNow": "Most",
|
||||||
"ago": "{{timeAgo}} ezelőtt",
|
"ago": "Ennyi ideje: {{timeAgo}}",
|
||||||
"today": "Ma",
|
"today": "Ma",
|
||||||
"yesterday": "Tegnap",
|
"yesterday": "Tegnap",
|
||||||
"last7": "Elmúlt 7 nap",
|
"last7": "Elmúlt 7 nap",
|
||||||
@@ -14,15 +14,15 @@
|
|||||||
"thisWeek": "Ezen a héten",
|
"thisWeek": "Ezen a héten",
|
||||||
"lastWeek": "Előző héten",
|
"lastWeek": "Előző héten",
|
||||||
"thisMonth": "Ebben a hónapban",
|
"thisMonth": "Ebben a hónapban",
|
||||||
"lastMonth": "Előző hónap",
|
"lastMonth": "Előző hónapban",
|
||||||
"5minutes": "5 perc",
|
"5minutes": "5 perc",
|
||||||
"10minutes": "10 perc",
|
"10minutes": "10 perc",
|
||||||
"30minutes": "30 perc",
|
"30minutes": "30 perc",
|
||||||
"1hour": "1 óra",
|
"1hour": "1 óra",
|
||||||
"12hours": "12 óra",
|
"12hours": "12 óra",
|
||||||
"24hours": "24 óra",
|
"24hours": "24 óra",
|
||||||
"pm": "PM",
|
"pm": "du",
|
||||||
"am": "AM",
|
"am": "de",
|
||||||
"yr": "{{time}} év",
|
"yr": "{{time}} év",
|
||||||
"mo": "{{time}} hónap",
|
"mo": "{{time}} hónap",
|
||||||
"d": "{{time}} nap",
|
"d": "{{time}} nap",
|
||||||
@@ -41,38 +41,38 @@
|
|||||||
"day_one": "{{time}} nap",
|
"day_one": "{{time}} nap",
|
||||||
"day_other": "{{time}} napok",
|
"day_other": "{{time}} napok",
|
||||||
"formattedTimestamp": {
|
"formattedTimestamp": {
|
||||||
"24hour": "HHH n, ÓÓ:pp:mm",
|
"24hour": "MMM d, HH:mm:ss",
|
||||||
"12hour": "HHH d, ó:pp:mm aaa"
|
"12hour": "MMM d, h:mm:ss aaa"
|
||||||
},
|
},
|
||||||
"formattedTimestampMonthDayYear": {
|
"formattedTimestampMonthDayYear": {
|
||||||
"12hour": "HHH d, éééé",
|
"12hour": "MMM d, yyyy",
|
||||||
"24hour": "HHH n, éééé"
|
"24hour": "MMM d, yyyy"
|
||||||
},
|
},
|
||||||
"formattedTimestampHourMinute": {
|
"formattedTimestampHourMinute": {
|
||||||
"24hour": "ÓÓ:pp",
|
"24hour": "HH:mm",
|
||||||
"12hour": "ó:pp aaa"
|
"12hour": "h:mm aaa"
|
||||||
},
|
},
|
||||||
"formattedTimestamp2": {
|
"formattedTimestamp2": {
|
||||||
"24hour": "n HHH ÓÓ:pp:mm",
|
"24hour": "d MMM HH:mm:ss",
|
||||||
"12hour": "HH/NN ó:pp:mma"
|
"12hour": "MM/dd h:mm:ssa"
|
||||||
},
|
},
|
||||||
"formattedTimestampHourMinuteSecond": {
|
"formattedTimestampHourMinuteSecond": {
|
||||||
"24hour": "ÓÓ:pp:mm",
|
"24hour": "HH:mm:ss",
|
||||||
"12hour": "ó:pp:mm aaa"
|
"12hour": "h:mm:ss aaa"
|
||||||
},
|
},
|
||||||
"formattedTimestampMonthDayYearHourMinute": {
|
"formattedTimestampMonthDayYearHourMinute": {
|
||||||
"24hour": "HHH n éééé, ÓÓ:pp",
|
"24hour": "MMM d yyyy, HH:mm",
|
||||||
"12hour": "HHH n éééé, ó:pp aaa"
|
"12hour": "MMM d yyyy, h:mm aaa"
|
||||||
},
|
},
|
||||||
"formattedTimestampFilename": {
|
"formattedTimestampFilename": {
|
||||||
"24hour": "HH-nn-éé-ÓÓ-pp-mm",
|
"24hour": "yy-MM-dd-HH-mm-ss",
|
||||||
"12hour": "HH-nn-éé-ó-pp-mm-a"
|
"12hour": "yy-MM-dd-h-mm-ss-a"
|
||||||
},
|
},
|
||||||
"formattedTimestampMonthDayHourMinute": {
|
"formattedTimestampMonthDayHourMinute": {
|
||||||
"24hour": "HHH n, ÓÓ:pp",
|
"24hour": "MMM d, HH:mm",
|
||||||
"12hour": "HHH n, ó:pp aaa"
|
"12hour": "MMM d, h:mm aaa"
|
||||||
},
|
},
|
||||||
"formattedTimestampMonthDay": "HHH n"
|
"formattedTimestampMonthDay": "MMM d"
|
||||||
},
|
},
|
||||||
"menu": {
|
"menu": {
|
||||||
"darkMode": {
|
"darkMode": {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
"ask_a": "Ez a tárgy egy <code>{{label}}</code>?",
|
"ask_a": "Ez a tárgy egy <code>{{label}}</code>?",
|
||||||
"label": "Erősítse meg ezt a cimkét a Frigate plus felé",
|
"label": "Erősítse meg ezt a cimkét a Frigate plus felé",
|
||||||
"ask_an": "Ez a tárgy egy <code>{{label}}</code>?",
|
"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": {
|
"recordings": {
|
||||||
"documentTitle": "Felvételek - Frigate"
|
"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",
|
"markAsReviewed": "Megjelölés Áttekintettként",
|
||||||
"selected_one": "{{count}} kiválasztva",
|
"selected_one": "{{count}} kiválasztva",
|
||||||
"selected_other": "{{count}} kiválasztva"
|
"selected_other": "{{count}} kiválasztva"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"classification": "Osztályozási beállítások - Frigate",
|
"classification": "Osztályozási beállítások - Frigate",
|
||||||
"masksAndZones": "Maszk és zónaszerkesztő - Frigate",
|
"masksAndZones": "Maszk és zónaszerkesztő - Frigate",
|
||||||
"object": "Hibakeresés - 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",
|
"frigatePlus": "Frigate+ beállítások - Frigate",
|
||||||
"notifications": "Értesítések beállítása - Frigate",
|
"notifications": "Értesítések beállítása - Frigate",
|
||||||
"motionTuner": "Mozgás Hangoló - 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."
|
"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",
|
"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)"
|
"restart_required": "Újraindítás szükséges (a kiegészítő beállítások megváltoztak)"
|
||||||
},
|
},
|
||||||
"notification": {
|
"notification": {
|
||||||
|
|||||||
@@ -644,7 +644,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Semantisch zoeken",
|
"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"
|
"readTheDocumentation": "Lees de documentatie"
|
||||||
},
|
},
|
||||||
"faceRecognition": {
|
"faceRecognition": {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
"chant": "Canto",
|
"chant": "Canto",
|
||||||
"babbling": "Balbuciando",
|
"babbling": "Balbuciando",
|
||||||
"bellow": "Abaixo",
|
"bellow": "Abaixo",
|
||||||
"whoop": "Grito",
|
"whoop": "Grito de Felicidade",
|
||||||
"whispering": "Sussurrando",
|
"whispering": "Sussurrando",
|
||||||
"laughter": "Risada",
|
"laughter": "Risada",
|
||||||
"snicker": "Risada",
|
"snicker": "Risada",
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
"bark": "Latido",
|
"bark": "Latido",
|
||||||
"yip": "Latido / Grito Agudo",
|
"yip": "Latido / Grito Agudo",
|
||||||
"howl": "Uivado",
|
"howl": "Uivado",
|
||||||
"bow_wow": "Bow Wow",
|
"bow_wow": "Latido",
|
||||||
"growling": "Rosnado",
|
"growling": "Rosnado",
|
||||||
"whimper_dog": "Choro de Cachorro",
|
"whimper_dog": "Choro de Cachorro",
|
||||||
"purr": "Ronronado",
|
"purr": "Ronronado",
|
||||||
@@ -129,7 +129,7 @@
|
|||||||
"frog": "Sapo",
|
"frog": "Sapo",
|
||||||
"croak": "Coaxado",
|
"croak": "Coaxado",
|
||||||
"snake": "Cobra",
|
"snake": "Cobra",
|
||||||
"rattle": "Guizo",
|
"rattle": "Chocalho",
|
||||||
"whale_vocalization": "Vocalização de Baleia",
|
"whale_vocalization": "Vocalização de Baleia",
|
||||||
"music": "Música",
|
"music": "Música",
|
||||||
"musical_instrument": "Instrumento Musical",
|
"musical_instrument": "Instrumento Musical",
|
||||||
@@ -139,7 +139,7 @@
|
|||||||
"bass_guitar": "Baixo",
|
"bass_guitar": "Baixo",
|
||||||
"acoustic_guitar": "Violão Acústico",
|
"acoustic_guitar": "Violão Acústico",
|
||||||
"steel_guitar": "Guitarra Havaiana",
|
"steel_guitar": "Guitarra Havaiana",
|
||||||
"tapping": "Tapping",
|
"tapping": "Batidas Leves",
|
||||||
"strum": "Dedilhado",
|
"strum": "Dedilhado",
|
||||||
"banjo": "Banjo",
|
"banjo": "Banjo",
|
||||||
"sitar": "Sitar",
|
"sitar": "Sitar",
|
||||||
@@ -163,5 +163,267 @@
|
|||||||
"drum_roll": "Tambores Rufando",
|
"drum_roll": "Tambores Rufando",
|
||||||
"bass_drum": "Bumbo",
|
"bass_drum": "Bumbo",
|
||||||
"timpani": "Tímpanos (Instrumento Musical)",
|
"timpani": "Tímpanos (Instrumento Musical)",
|
||||||
"tabla": "Tabla"
|
"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",
|
"yr": "{{time}}ano",
|
||||||
"year_one": "{{time}} ano",
|
"year_one": "{{time}} ano",
|
||||||
"year_many": "{{time}} anos",
|
"year_many": "{{time}} anos",
|
||||||
"year_other": "",
|
"year_other": "{{time}} anos",
|
||||||
"mo": "{{time}}mês",
|
"mo": "{{time}}mês",
|
||||||
"month_one": "{{time}} mês",
|
"month_one": "{{time}} mês",
|
||||||
"month_many": "{{time}} meses",
|
"month_many": "{{time}} meses",
|
||||||
"month_other": "",
|
"month_other": "{{time}} meses",
|
||||||
"d": "{{time}} dia",
|
"d": "{{time}} dia",
|
||||||
"day_one": "{{time}} dia",
|
"day_one": "{{time}} dia",
|
||||||
"day_many": "{{time}} dias",
|
"day_many": "{{time}} dias",
|
||||||
"day_other": "",
|
"day_other": "{{time}} dias",
|
||||||
"h": "{{time}}h",
|
"h": "{{time}}h",
|
||||||
"hour_one": "{{time}} hora",
|
"hour_one": "{{time}} hora",
|
||||||
"hour_many": "{{time}} horas",
|
"hour_many": "{{time}} horas",
|
||||||
"hour_other": "",
|
"hour_other": "{{time}} horas",
|
||||||
"m": "{{time}}m",
|
"m": "{{time}}m",
|
||||||
"minute_one": "{{time}} minuto",
|
"minute_one": "{{time}} minuto",
|
||||||
"minute_many": "{{time}} minutos",
|
"minute_many": "{{time}} minutos",
|
||||||
"minute_other": "",
|
"minute_other": "{{time}} minutos",
|
||||||
"s": "{{time}}s",
|
"s": "{{time}}s",
|
||||||
"second_one": "{{time}} segundo",
|
"second_one": "{{time}} segundo",
|
||||||
"second_many": "{{time}} segundos",
|
"second_many": "{{time}} segundos",
|
||||||
"second_other": "",
|
"second_other": "{{time}} segundos",
|
||||||
"formattedTimestamp": {
|
"formattedTimestamp": {
|
||||||
"12hour": "d MMM,h:mm:ss aaa",
|
"12hour": "d MMM,h:mm:ss aaa",
|
||||||
"24hour": "d MMM, HH:mm:ss"
|
"24hour": "d MMM, HH:mm:ss"
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
"selectItem": "Selecione {{item}}",
|
"selectItem": "Selecione {{item}}",
|
||||||
"unit": {
|
"unit": {
|
||||||
"speed": {
|
"speed": {
|
||||||
"mph": "mph",
|
"mph": "mi/h",
|
||||||
"kph": "km/h"
|
"kph": "km/h"
|
||||||
},
|
},
|
||||||
"length": {
|
"length": {
|
||||||
@@ -201,7 +201,65 @@
|
|||||||
},
|
},
|
||||||
"restart": "Reiniciar o Frigate",
|
"restart": "Reiniciar o Frigate",
|
||||||
"live": {
|
"live": {
|
||||||
"title": "Ao Vivo"
|
"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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
},
|
},
|
||||||
"review": {
|
"review": {
|
||||||
"question": {
|
"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_a": "Este objeto é um <code>{{label}}</code>?",
|
||||||
"ask_an": "Este objeto é um<code>{{label}}</code>?",
|
"ask_an": "Este objeto é um<code>{{label}}</code>?",
|
||||||
"ask_full": "Este objeto é um<code>{{untranslatedLabel}}</code> ({{translatedLabel}})?"
|
"ask_full": "Este objeto é um<code>{{untranslatedLabel}}</code> ({{translatedLabel}})?"
|
||||||
|
|||||||
@@ -3,11 +3,11 @@
|
|||||||
"labels": {
|
"labels": {
|
||||||
"label": "Rótulos",
|
"label": "Rótulos",
|
||||||
"all": {
|
"all": {
|
||||||
"title": "Todas as Etiquetas",
|
"title": "Todos os Rótulos",
|
||||||
"short": "Etiquetas"
|
"short": "Rótulos"
|
||||||
},
|
},
|
||||||
"count_one": "{{count}} Etiqueta",
|
"count_one": "{{count}} Rótulo",
|
||||||
"count_other": "{{count}} Etiquetas"
|
"count_other": "{{count}} Rótulos"
|
||||||
},
|
},
|
||||||
"zones": {
|
"zones": {
|
||||||
"label": "Zonas",
|
"label": "Zonas",
|
||||||
@@ -29,8 +29,8 @@
|
|||||||
},
|
},
|
||||||
"timeRange": "Intervalo de Tempo",
|
"timeRange": "Intervalo de Tempo",
|
||||||
"subLabels": {
|
"subLabels": {
|
||||||
"label": "Sub-etiquetas",
|
"label": "Sub-Rótulos",
|
||||||
"all": "Todas as Sub-etiquetas"
|
"all": "Todos os Sub-Rótulos"
|
||||||
},
|
},
|
||||||
"score": "Pontuação",
|
"score": "Pontuação",
|
||||||
"estimatedSpeed": "Velocidade Estimada {{unit}}",
|
"estimatedSpeed": "Velocidade Estimada {{unit}}",
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
"value": "{{seconds}} segundos",
|
"value": "{{seconds}} segundos",
|
||||||
"short": {
|
"short": {
|
||||||
"title": "Latência",
|
"title": "Latência",
|
||||||
"value": "{{seconds}} segundos"
|
"value": "{{seconds}} s"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"totalFrames": "Total de Quadros:",
|
"totalFrames": "Total de Quadros:",
|
||||||
|
|||||||
@@ -41,8 +41,8 @@
|
|||||||
},
|
},
|
||||||
"tips": {
|
"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_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á 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": "",
|
"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>"
|
"hasMissingObjects": "Ajustar a sua configuração se quiser que o Frigate salve objetos rastreados com as seguintes categorias: <em>{{objects}}</em>"
|
||||||
},
|
},
|
||||||
"toast": {
|
"toast": {
|
||||||
@@ -196,7 +196,7 @@
|
|||||||
"fetchingTrackedObjectsFailed": "Erro ao buscar por objetos rastreados: {{errorMessage}}",
|
"fetchingTrackedObjectsFailed": "Erro ao buscar por objetos rastreados: {{errorMessage}}",
|
||||||
"trackedObjectsCount_one": "{{count}} objeto rastreado ",
|
"trackedObjectsCount_one": "{{count}} objeto rastreado ",
|
||||||
"trackedObjectsCount_many": "{{count}} objetos rastreados ",
|
"trackedObjectsCount_many": "{{count}} objetos rastreados ",
|
||||||
"trackedObjectsCount_other": "",
|
"trackedObjectsCount_other": "{{count}} objetos rastreados ",
|
||||||
"searchResult": {
|
"searchResult": {
|
||||||
"tooltip": "Correspondência com {{type}} de {{confidence}}%",
|
"tooltip": "Correspondência com {{type}} de {{confidence}}%",
|
||||||
"deleteTrackedObject": {
|
"deleteTrackedObject": {
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
"person": "Pessoa",
|
"person": "Pessoa",
|
||||||
"unknown": "Desconhecido",
|
"unknown": "Desconhecido",
|
||||||
"face": "Detalhes do Rosto",
|
"face": "Detalhes do Rosto",
|
||||||
"subLabelScore": "Pontuação do sub-rótulo",
|
"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.",
|
"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",
|
"faceDesc": "Detalhes do objeto rastreado que gerou este rosto",
|
||||||
"timestamp": "Carimbo de data e hora"
|
"timestamp": "Carimbo de data e hora"
|
||||||
},
|
},
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
"faceName": "Digite o Nome do Rosto",
|
"faceName": "Digite o Nome do Rosto",
|
||||||
"uploadFace": "Enviar Imagem de Rosto",
|
"uploadFace": "Enviar Imagem de Rosto",
|
||||||
"description": {
|
"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": {
|
"description": {
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
"renamedFace": "O rosto foi renomeado com sucesso para {{name}}",
|
"renamedFace": "O rosto foi renomeado com sucesso para {{name}}",
|
||||||
"deletedName_one": "{{count}} rosto foi deletado com sucesso.",
|
"deletedName_one": "{{count}} rosto foi deletado com sucesso.",
|
||||||
"deletedName_many": "{{count}} rostos foram deletados com sucesso.",
|
"deletedName_many": "{{count}} rostos foram deletados com sucesso.",
|
||||||
"deletedName_other": ""
|
"deletedName_other": "{{count}} rostos foram deletados com sucesso."
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"uploadingImageFailed": "Falha ao enviar a imagem: {{errorMessage}}",
|
"uploadingImageFailed": "Falha ao enviar a imagem: {{errorMessage}}",
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
"filter": {
|
"filter": {
|
||||||
"label": {
|
"label": {
|
||||||
"cameras": "Câmeras",
|
"cameras": "Câmeras",
|
||||||
"labels": "Etiquetas",
|
"labels": "Rótulos",
|
||||||
"zones": "Zonas",
|
"zones": "Zonas",
|
||||||
"before": "Antes",
|
"before": "Antes",
|
||||||
"after": "Depois",
|
"after": "Depois",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"max_score": "Pontuação Máxima",
|
"max_score": "Pontuação Máxima",
|
||||||
"min_speed": "Velocidade Mínima",
|
"min_speed": "Velocidade Mínima",
|
||||||
"max_speed": "Velocidade Máxima",
|
"max_speed": "Velocidade Máxima",
|
||||||
"sub_labels": "Sub-etiquetas",
|
"sub_labels": "Sub-Rótulos",
|
||||||
"search_type": "Tipo de Busca",
|
"search_type": "Tipo de Busca",
|
||||||
"time_range": "Intervalo de Tempo",
|
"time_range": "Intervalo de Tempo",
|
||||||
"recognized_license_plate": "Placa de Carro Reconhecida",
|
"recognized_license_plate": "Placa de Carro Reconhecida",
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"camera": "Configurações de Câmera - Frigate",
|
"camera": "Configurações de Câmera - Frigate",
|
||||||
"enrichments": "Configurações de Enriquecimento - Frigate",
|
"enrichments": "Configurações de Enriquecimento - Frigate",
|
||||||
"masksAndZones": "Editor de Máscara e Zona - Frigate",
|
"masksAndZones": "Editor de Máscara e Zona - Frigate",
|
||||||
"motionTuner": "Virada de Movimento - Frigate",
|
"motionTuner": "Ajuste de Movimento - Frigate",
|
||||||
"object": "Debug - Frigate",
|
"object": "Debug - Frigate",
|
||||||
"general": "Configurações Gerais - Frigate",
|
"general": "Configurações Gerais - Frigate",
|
||||||
"frigatePlus": "Frigate+ Configurações- Frigate",
|
"frigatePlus": "Frigate+ Configurações- Frigate",
|
||||||
@@ -18,8 +18,8 @@
|
|||||||
"users": "Usuários",
|
"users": "Usuários",
|
||||||
"notifications": "Notificações",
|
"notifications": "Notificações",
|
||||||
"frigateplus": "Frigate+",
|
"frigateplus": "Frigate+",
|
||||||
"motionTuner": "Ajuste de Detecção de Movimento",
|
"motionTuner": "Ajuste de Movimento",
|
||||||
"debug": "Depuração",
|
"debug": "Depurar",
|
||||||
"enrichments": "Melhorias"
|
"enrichments": "Melhorias"
|
||||||
},
|
},
|
||||||
"dialog": {
|
"dialog": {
|
||||||
@@ -254,7 +254,7 @@
|
|||||||
"edit": "Editar Zona",
|
"edit": "Editar Zona",
|
||||||
"point_one": "{{count}} ponto",
|
"point_one": "{{count}} ponto",
|
||||||
"point_many": "{{count}} pontos",
|
"point_many": "{{count}} pontos",
|
||||||
"point_other": "",
|
"point_other": "{{count}} pontos",
|
||||||
"clickDrawPolygon": "Clique para desenhar um polígono na imagem.",
|
"clickDrawPolygon": "Clique para desenhar um polígono na imagem.",
|
||||||
"name": {
|
"name": {
|
||||||
"title": "Nome",
|
"title": "Nome",
|
||||||
@@ -275,8 +275,348 @@
|
|||||||
},
|
},
|
||||||
"allObjects": "Todos os Objetos",
|
"allObjects": "Todos os Objetos",
|
||||||
"speedEstimation": {
|
"speedEstimation": {
|
||||||
"title": "Estimativa de Velocidade"
|
"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": {
|
"type": {
|
||||||
"label": "Tipo",
|
"label": "Tipo",
|
||||||
"timestamp": "Marca temporal",
|
"timestamp": "Marca temporal",
|
||||||
"tag": "Etiqueta",
|
"tag": "Marcador",
|
||||||
"message": "Mensagem"
|
"message": "Mensagem"
|
||||||
},
|
},
|
||||||
"tips": "Os Registros estão sendo transmitidos do servidor",
|
"tips": "Os Registros estão sendo transmitidos do servidor",
|
||||||
@@ -157,7 +157,7 @@
|
|||||||
"detectHighCpuUsage": "{{camera}} possui alta utilização de CPU para detecção ({{detectAvg}}%)",
|
"detectHighCpuUsage": "{{camera}} possui alta utilização de CPU para detecção ({{detectAvg}}%)",
|
||||||
"healthy": "O sistema está saudável",
|
"healthy": "O sistema está saudável",
|
||||||
"cameraIsOffline": "{{camera}} está offline",
|
"cameraIsOffline": "{{camera}} está offline",
|
||||||
"reindexingEmbeddings": "Reindexando embeddings ({{processed}}% completado)",
|
"reindexingEmbeddings": "Reindexando os vetores de característica de imagens ({{processed}}% completado)",
|
||||||
"detectIsSlow": "{{detect}} está lento ({{speed}} ms)"
|
"detectIsSlow": "{{detect}} está lento ({{speed}} ms)"
|
||||||
},
|
},
|
||||||
"enrichments": {
|
"enrichments": {
|
||||||
@@ -167,13 +167,13 @@
|
|||||||
"face_recognition": "Reconhecimento Facial",
|
"face_recognition": "Reconhecimento Facial",
|
||||||
"plate_recognition": "Reconhecimento de Placa",
|
"plate_recognition": "Reconhecimento de Placa",
|
||||||
"plate_recognition_speed": "Velocidade de Reconhecimento de Placas",
|
"plate_recognition_speed": "Velocidade de Reconhecimento de Placas",
|
||||||
"text_embedding_speed": "Velocidade de Incorporação de Textos",
|
"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_speed": "Velocidade de Reconhecimento de Placas do YOLOv9",
|
||||||
"yolov9_plate_detection": "Detecção de Placas do YOLOv9",
|
"yolov9_plate_detection": "Detecção de Placas do YOLOv9",
|
||||||
"image_embedding": "Incorporação de Imagem",
|
"image_embedding": "Vetores de Características de Imagens",
|
||||||
"text_embedding": "Incorporação de Texto",
|
"text_embedding": "Vetor de Característica de Texto",
|
||||||
"image_embedding_speed": "Velocidade de Incorporação de Imagem",
|
"image_embedding_speed": "Velocidade de Geração de Vetores de Imagem",
|
||||||
"face_embedding_speed": "Velocidade de Incorporação de Rosto",
|
"face_embedding_speed": "Velocidade de Geração de Vetores de Rostos",
|
||||||
"face_recognition_speed": "Velocidade de Reconhecimento de Rostos"
|
"face_recognition_speed": "Velocidade de Reconhecimento de Rostos"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,15 +9,15 @@
|
|||||||
"horse": "Cal",
|
"horse": "Cal",
|
||||||
"bird": "Pasare",
|
"bird": "Pasare",
|
||||||
"sheep": "Oaie",
|
"sheep": "Oaie",
|
||||||
"boat": "Barca",
|
"boat": "Barcă",
|
||||||
"motorcycle": "Motocicleta",
|
"motorcycle": "Motocicletă",
|
||||||
"bus": "Autobuz",
|
"bus": "Autobuz",
|
||||||
"train": "Tren",
|
"train": "Tren",
|
||||||
"skateboard": "Skateboard",
|
"skateboard": "Skateboard",
|
||||||
"camera": "Camera foto",
|
"camera": "Camera foto",
|
||||||
"bicycle": "Bicicletă",
|
"bicycle": "Bicicletă",
|
||||||
"car": "Mașină",
|
"car": "Mașină",
|
||||||
"cat": "Pisica",
|
"cat": "Pisică",
|
||||||
"animal": "Animal",
|
"animal": "Animal",
|
||||||
"goat": "Capra",
|
"goat": "Capra",
|
||||||
"keyboard": "Orga",
|
"keyboard": "Orga",
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
"button": "Repornește",
|
"button": "Repornește",
|
||||||
"restarting": {
|
"restarting": {
|
||||||
"title": "Frigate repornește",
|
"title": "Frigate repornește",
|
||||||
"content": "Această pagină se va reâncărca în {{countdown}} secunde.",
|
"content": "Această pagină se va reâncărca automat în {{countdown}} secunde.",
|
||||||
"button": "Forteaza Reincarcarea Acum"
|
"button": "Forțează acum reîncărcarea"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"explore": {
|
"explore": {
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
"label": "Filtru camere"
|
"label": "Filtru camere"
|
||||||
},
|
},
|
||||||
"review": {
|
"review": {
|
||||||
"showReviewed": "Afișează revizuitele"
|
"showReviewed": "Afișează cele revizuite"
|
||||||
},
|
},
|
||||||
"motion": {
|
"motion": {
|
||||||
"showMotionOnly": "Afișează doar mișcarea"
|
"showMotionOnly": "Afișează doar mișcarea"
|
||||||
@@ -98,10 +98,10 @@
|
|||||||
"label": "Filtrează nivelul jurnalului",
|
"label": "Filtrează nivelul jurnalului",
|
||||||
"filterBySeverity": "Filtrează jurnalele după severitate",
|
"filterBySeverity": "Filtrează jurnalele după severitate",
|
||||||
"loading": {
|
"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."
|
"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"
|
"allLogs": "Toate jurnalele"
|
||||||
},
|
},
|
||||||
"trackedObjectDelete": {
|
"trackedObjectDelete": {
|
||||||
|
|||||||
@@ -5,17 +5,17 @@
|
|||||||
"airplane": "Avion",
|
"airplane": "Avion",
|
||||||
"bus": "Autobuz",
|
"bus": "Autobuz",
|
||||||
"train": "Tren",
|
"train": "Tren",
|
||||||
"boat": "Barca",
|
"boat": "Barcă",
|
||||||
"fire_hydrant": "Hidrant",
|
"fire_hydrant": "Hidrant",
|
||||||
"street_sign": "Semn de Circulatie",
|
"street_sign": "Semn de Circulatie",
|
||||||
"stop_sign": "Semn de Stop",
|
"stop_sign": "Semn de Stop",
|
||||||
"parking_meter": "Automat de Parcare",
|
"parking_meter": "Automat de Parcare",
|
||||||
"bench": "Bancheta",
|
"bench": "Bancheta",
|
||||||
"bird": "Pasare",
|
"bird": "Pasare",
|
||||||
"cat": "Pisica",
|
"cat": "Pisică",
|
||||||
"dog": "Câine",
|
"dog": "Câine",
|
||||||
"horse": "Cal",
|
"horse": "Cal",
|
||||||
"cow": "Vaca",
|
"cow": "Vacă",
|
||||||
"elephant": "Elefant",
|
"elephant": "Elefant",
|
||||||
"bear": "Urs",
|
"bear": "Urs",
|
||||||
"giraffe": "Girafa",
|
"giraffe": "Girafa",
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
"bowl": "Castron",
|
"bowl": "Castron",
|
||||||
"banana": "Banana",
|
"banana": "Banana",
|
||||||
"apple": "Mar",
|
"apple": "Mar",
|
||||||
"motorcycle": "Motocicleta",
|
"motorcycle": "Motocicletă",
|
||||||
"traffic_light": "Semafor",
|
"traffic_light": "Semafor",
|
||||||
"sheep": "Oaie",
|
"sheep": "Oaie",
|
||||||
"zebra": "Zebra",
|
"zebra": "Zebra",
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
},
|
},
|
||||||
"objectLifecycle": {
|
"objectLifecycle": {
|
||||||
"lifecycleItemDesc": {
|
"lifecycleItemDesc": {
|
||||||
"visible": "{{label}} detectata",
|
"visible": "S-a detectat {{label}}",
|
||||||
"active": "{{label}} a devenit activ",
|
"active": "{{label}} a devenit activ",
|
||||||
"entered_zone": "{{label}} a intrat în {{zones}}",
|
"entered_zone": "{{label}} a intrat în {{zones}}",
|
||||||
"stationary": "{{label}} a devenit staționar",
|
"stationary": "{{label}} a devenit staționar",
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
"ratio": "Raport",
|
"ratio": "Raport",
|
||||||
"area": "Suprafață"
|
"area": "Suprafață"
|
||||||
},
|
},
|
||||||
"gone": "{{label}} a ieșit",
|
"gone": "{{label}} a părasit cadrul",
|
||||||
"heard": "{{label}} auzit(ă)",
|
"heard": "{{label}} auzit(ă)",
|
||||||
"external": "{{label}} detectat(ă)"
|
"external": "{{label}} detectat(ă)"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
"title": "Calendar",
|
"title": "Calendar",
|
||||||
"firstWeekday": {
|
"firstWeekday": {
|
||||||
"label": "Prima zi a săptămânii",
|
"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ă",
|
"sunday": "Duminică",
|
||||||
"monday": "Luni"
|
"monday": "Luni"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
},
|
},
|
||||||
"title": "Spațiu stocare",
|
"title": "Spațiu stocare",
|
||||||
"cameraStorage": {
|
"cameraStorage": {
|
||||||
"title": "Spațiu tocare camere",
|
"title": "Spațiu stocare camere",
|
||||||
"camera": "Camera",
|
"camera": "Camera",
|
||||||
"unusedStorageInformation": "Informații despre stocarea neutilizată",
|
"unusedStorageInformation": "Informații despre stocarea neutilizată",
|
||||||
"storageUsed": "Spațiu stocare",
|
"storageUsed": "Spațiu stocare",
|
||||||
@@ -86,12 +86,12 @@
|
|||||||
},
|
},
|
||||||
"copy": {
|
"copy": {
|
||||||
"label": "Copiază",
|
"label": "Copiază",
|
||||||
"success": "Copiază jurnalul",
|
"success": "Jurnalul a fost copiat",
|
||||||
"error": "Jurnalul nu s-a putut copia"
|
"error": "Jurnalul nu s-a putut copia"
|
||||||
},
|
},
|
||||||
"type": {
|
"type": {
|
||||||
"label": "Tip",
|
"label": "Tip",
|
||||||
"timestamp": "Marca temporală",
|
"timestamp": "Data / ora",
|
||||||
"tag": "Etichetă",
|
"tag": "Etichetă",
|
||||||
"message": "Mesaj"
|
"message": "Mesaj"
|
||||||
},
|
},
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
"image_embedding": "Încorporare imagini",
|
"image_embedding": "Încorporare imagini",
|
||||||
"text_embedding": "Încorporare text",
|
"text_embedding": "Încorporare text",
|
||||||
"plate_recognition": "Recunoaștere numere de înmatriculare",
|
"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": "Recunoaștere facială",
|
||||||
"face_recognition_speed": "Viteză recunoaștere facială",
|
"face_recognition_speed": "Viteză recunoaștere facială",
|
||||||
"plate_recognition_speed": "Viteză recunoaștere numere de înmatriculare",
|
"plate_recognition_speed": "Viteză recunoaștere numere de înmatriculare",
|
||||||
|
|||||||
Regular → Executable
+3
-3
@@ -420,11 +420,11 @@ export default function InputWithTags({
|
|||||||
? t("button.yes", { ns: "common" })
|
? t("button.yes", { ns: "common" })
|
||||||
: t("button.no", { ns: "common" });
|
: t("button.no", { ns: "common" });
|
||||||
} else if (filterType === "labels") {
|
} else if (filterType === "labels") {
|
||||||
return getTranslatedLabel(filterValues as string);
|
return getTranslatedLabel(String(filterValues));
|
||||||
} else if (filterType === "search_type") {
|
} else if (filterType === "search_type") {
|
||||||
return t("filter.searchType." + (filterValues as string));
|
return t("filter.searchType." + String(filterValues));
|
||||||
} else {
|
} else {
|
||||||
return (filterValues as string).replaceAll("_", " ");
|
return String(filterValues).replaceAll("_", " ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,6 +85,7 @@ export default function GeneralSettings({ className }: GeneralSettingsProps) {
|
|||||||
"nb-NO": "nb",
|
"nb-NO": "nb",
|
||||||
"yue-Hant": "yue",
|
"yue-Hant": "yue",
|
||||||
"zh-CN": "zhCN",
|
"zh-CN": "zhCN",
|
||||||
|
"pt-BR": "ptBR",
|
||||||
};
|
};
|
||||||
|
|
||||||
return supportedLanguageKeys.map((key) => {
|
return supportedLanguageKeys.map((key) => {
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ const localeMap: Record<string, () => Promise<Locale>> = {
|
|||||||
fr: () => import("date-fns/locale/fr").then((module) => module.fr),
|
fr: () => import("date-fns/locale/fr").then((module) => module.fr),
|
||||||
ar: () => import("date-fns/locale/ar").then((module) => module.ar),
|
ar: () => import("date-fns/locale/ar").then((module) => module.ar),
|
||||||
pt: () => import("date-fns/locale/pt").then((module) => module.pt),
|
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),
|
ru: () => import("date-fns/locale/ru").then((module) => module.ru),
|
||||||
de: () => import("date-fns/locale/de").then((module) => module.de),
|
de: () => import("date-fns/locale/de").then((module) => module.de),
|
||||||
ja: () => import("date-fns/locale/ja").then((module) => module.ja),
|
ja: () => import("date-fns/locale/ja").then((module) => module.ja),
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ export function useVideoDimensions(
|
|||||||
});
|
});
|
||||||
|
|
||||||
const videoAspectRatio = useMemo(() => {
|
const videoAspectRatio = useMemo(() => {
|
||||||
return videoResolution.width / videoResolution.height || 16 / 9;
|
return videoResolution.width / videoResolution.height;
|
||||||
}, [videoResolution]);
|
}, [videoResolution]);
|
||||||
|
|
||||||
const containerAspectRatio = useMemo(() => {
|
const containerAspectRatio = useMemo(() => {
|
||||||
@@ -25,7 +25,7 @@ export function useVideoDimensions(
|
|||||||
}, [containerWidth, containerHeight]);
|
}, [containerWidth, containerHeight]);
|
||||||
|
|
||||||
const videoDimensions = useMemo(() => {
|
const videoDimensions = useMemo(() => {
|
||||||
if (!containerWidth || !containerHeight)
|
if (!containerWidth || !containerHeight || !videoAspectRatio)
|
||||||
return { width: "100%", height: "100%" };
|
return { width: "100%", height: "100%" };
|
||||||
if (containerAspectRatio > videoAspectRatio) {
|
if (containerAspectRatio > videoAspectRatio) {
|
||||||
const height = containerHeight;
|
const height = containerHeight;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ export const supportedLanguageKeys = [
|
|||||||
"en",
|
"en",
|
||||||
"es",
|
"es",
|
||||||
"pt",
|
"pt",
|
||||||
|
"pt-BR",
|
||||||
"fr",
|
"fr",
|
||||||
"de",
|
"de",
|
||||||
"it",
|
"it",
|
||||||
|
|||||||
@@ -26,6 +26,15 @@ import { useDocDomain } from "@/hooks/use-doc-domain";
|
|||||||
|
|
||||||
const API_LIMIT = 25;
|
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() {
|
export default function Explore() {
|
||||||
// search field handler
|
// search field handler
|
||||||
|
|
||||||
@@ -58,13 +67,7 @@ export default function Explore() {
|
|||||||
const [search, setSearch] = useState("");
|
const [search, setSearch] = useState("");
|
||||||
|
|
||||||
const [searchFilter, setSearchFilter, searchSearchParams] =
|
const [searchFilter, setSearchFilter, searchSearchParams] =
|
||||||
useApiFilterArgs<SearchFilter>([
|
useApiFilterArgs<SearchFilter>(SEARCH_FILTER_ARRAY_KEYS);
|
||||||
"cameras",
|
|
||||||
"labels",
|
|
||||||
"sub_labels",
|
|
||||||
"recognized_license_plate",
|
|
||||||
"zones",
|
|
||||||
]);
|
|
||||||
|
|
||||||
const searchTerm = useMemo(
|
const searchTerm = useMemo(
|
||||||
() => searchSearchParams?.["query"] || "",
|
() => searchSearchParams?.["query"] || "",
|
||||||
|
|||||||
@@ -118,50 +118,6 @@ export default function NotificationView({
|
|||||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, [changedValue]);
|
}, [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
|
// notification state
|
||||||
|
|
||||||
const [registration, setRegistration] =
|
const [registration, setRegistration] =
|
||||||
@@ -206,8 +162,70 @@ export default function NotificationView({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const watchAllEnabled = form.watch("allEnabled");
|
||||||
const watchCameras = form.watch("cameras");
|
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(() => {
|
useEffect(() => {
|
||||||
if (watchCameras.length > 0) {
|
if (watchCameras.length > 0) {
|
||||||
form.setValue("allEnabled", false);
|
form.setValue("allEnabled", false);
|
||||||
@@ -521,13 +539,7 @@ export default function NotificationView({
|
|||||||
</Heading>
|
</Heading>
|
||||||
<Button
|
<Button
|
||||||
aria-label={t("notification.registerDevice")}
|
aria-label={t("notification.registerDevice")}
|
||||||
disabled={
|
disabled={!shouldFetchPubKey || publicKey == undefined}
|
||||||
(!config?.notifications.enabled &&
|
|
||||||
notificationCameras.length === 0 &&
|
|
||||||
!form.watch("allEnabled") &&
|
|
||||||
form.watch("cameras").length === 0) ||
|
|
||||||
publicKey == undefined
|
|
||||||
}
|
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
if (registration == null) {
|
if (registration == null) {
|
||||||
Notification.requestPermission().then((permission) => {
|
Notification.requestPermission().then((permission) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user