Compare commits

..

No commits in common. "5254bfd00e7ff672afc93c61f3f1e6c191a53110" and "e8b92251757ee7bee3f5c57e3d76979be02dd338" have entirely different histories.

284 changed files with 755 additions and 11223 deletions

View File

@ -32,7 +32,7 @@ jobs:
with: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push amd64 standard build - name: Build and push amd64 standard build
uses: docker/build-push-action@v7 uses: docker/build-push-action@v5
with: with:
context: . context: .
file: docker/main/Dockerfile file: docker/main/Dockerfile
@ -56,7 +56,7 @@ jobs:
with: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push arm64 standard build - name: Build and push arm64 standard build
uses: docker/build-push-action@v7 uses: docker/build-push-action@v5
with: with:
context: . context: .
file: docker/main/Dockerfile file: docker/main/Dockerfile
@ -67,7 +67,7 @@ jobs:
${{ steps.setup.outputs.image-name }}-standard-arm64 ${{ steps.setup.outputs.image-name }}-standard-arm64
cache-from: type=registry,ref=${{ steps.setup.outputs.cache-name }}-arm64 cache-from: type=registry,ref=${{ steps.setup.outputs.cache-name }}-arm64
- name: Build and push RPi build - name: Build and push RPi build
uses: docker/bake-action@v7 uses: docker/bake-action@v6
with: with:
source: . source: .
push: true push: true
@ -96,7 +96,7 @@ jobs:
BASE_IMAGE: nvcr.io/nvidia/tensorrt:23.12-py3-igpu BASE_IMAGE: nvcr.io/nvidia/tensorrt:23.12-py3-igpu
SLIM_BASE: nvcr.io/nvidia/tensorrt:23.12-py3-igpu SLIM_BASE: nvcr.io/nvidia/tensorrt:23.12-py3-igpu
TRT_BASE: nvcr.io/nvidia/tensorrt:23.12-py3-igpu TRT_BASE: nvcr.io/nvidia/tensorrt:23.12-py3-igpu
uses: docker/bake-action@v7 uses: docker/bake-action@v6
with: with:
source: . source: .
push: true push: true
@ -124,7 +124,7 @@ jobs:
- name: Build and push TensorRT (x86 GPU) - name: Build and push TensorRT (x86 GPU)
env: env:
COMPUTE_LEVEL: "50 60 70 80 90" COMPUTE_LEVEL: "50 60 70 80 90"
uses: docker/bake-action@v7 uses: docker/bake-action@v6
with: with:
source: . source: .
push: true push: true
@ -137,7 +137,7 @@ jobs:
- name: AMD/ROCm general build - name: AMD/ROCm general build
env: env:
HSA_OVERRIDE: 0 HSA_OVERRIDE: 0
uses: docker/bake-action@v7 uses: docker/bake-action@v6
with: with:
source: . source: .
push: true push: true
@ -163,7 +163,7 @@ jobs:
with: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Rockchip build - name: Build and push Rockchip build
uses: docker/bake-action@v7 uses: docker/bake-action@v6
with: with:
source: . source: .
push: true push: true
@ -188,7 +188,7 @@ jobs:
with: with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Synaptics build - name: Build and push Synaptics build
uses: docker/bake-action@v7 uses: docker/bake-action@v6
with: with:
source: . source: .
push: true push: true

View File

@ -4,24 +4,20 @@ from pydantic import BaseModel, ConfigDict, Field
class ReviewMetadata(BaseModel): class ReviewMetadata(BaseModel):
model_config = ConfigDict(extra="ignore", protected_namespaces=()) model_config = ConfigDict(extra="ignore", protected_namespaces=())
title: str = Field( title: str = Field(description="A concise title for the activity.")
description="A short title characterizing what took place and where, under 10 words."
)
scene: str = Field( scene: str = Field(
description="A chronological narrative of what happens from start to finish." description="A comprehensive description of the setting and entities, including relevant context and plausible inferences if supported by visual evidence."
) )
shortSummary: str = Field( shortSummary: str = Field(
description="A brief 2-sentence summary of the scene, suitable for notifications." description="A brief 2-sentence summary of the scene, suitable for notifications. Should capture the key activity and context without full detail."
) )
confidence: float = Field( confidence: float = Field(
ge=0.0, description="A float between 0 and 1 representing your overall confidence in this analysis."
le=1.0,
description="Confidence in the analysis, from 0 to 1.",
) )
potential_threat_level: int = Field( potential_threat_level: int = Field(
ge=0, ge=0,
le=2, le=3,
description="Threat level: 0 = normal, 1 = suspicious, 2 = critical threat.", description="An integer representing the potential threat level (1-3). 1: Minor anomaly. 2: Moderate concern. 3: High threat. Only include this field if a clear security concern is observable; otherwise, omit it.",
) )
other_concerns: list[str] | None = Field( other_concerns: list[str] | None = Field(
default=None, default=None,

View File

@ -89,7 +89,12 @@ Your task is to analyze a sequence of images taken in chronological order from a
## Task Instructions ## Task Instructions
Describe the scene based on observable actions and movements, evaluate the activity against the Activity Indicators above, and assign a potential_threat_level (0, 1, or 2) by applying the threat level indicators consistently. Your task is to provide a clear, accurate description of the scene that:
1. States exactly what is happening based on observable actions and movements.
2. Evaluates the activity against the Normal and Suspicious Activity Indicators above.
3. Assigns a potential_threat_level (0, 1, or 2) based on the threat level indicators defined above, applying them consistently.
**Use the activity patterns above as guidance to calibrate your assessment. Match the activity against both normal and suspicious indicators, then use your judgment based on the complete context.**
## Analysis Guidelines ## Analysis Guidelines
@ -103,12 +108,14 @@ When forming your description:
- **Consider duration as a primary factor**: Apply the duration thresholds defined in the activity patterns above. Brief sequences during normal hours with apparent purpose typically indicate normal activity unless explicit suspicious actions are visible. - **Consider duration as a primary factor**: Apply the duration thresholds defined in the activity patterns above. Brief sequences during normal hours with apparent purpose typically indicate normal activity unless explicit suspicious actions are visible.
- **Weigh all evidence holistically**: Match the activity against the normal and suspicious patterns defined above, then evaluate based on the complete context (zone, objects, time, actions, duration). Apply the threat level indicators consistently. Use your judgment for edge cases. - **Weigh all evidence holistically**: Match the activity against the normal and suspicious patterns defined above, then evaluate based on the complete context (zone, objects, time, actions, duration). Apply the threat level indicators consistently. Use your judgment for edge cases.
## Response Field Guidelines ## Response Format
Respond with a JSON object matching the provided schema. Field-specific guidance: Your response MUST be a flat JSON object with:
- `scene`: Describe how the sequence begins, then the progression of events all significant movements and actions in order. For example, if a vehicle arrives and then a person exits, describe both sequentially. Your description should align with and support the threat level you assign. - `scene` (string): A narrative description of what happens across the sequence from start to finish, in chronological order. Start by describing how the sequence begins, then describe the progression of events. **Describe all significant movements and actions in the order they occur.** For example, if a vehicle arrives and then a person exits, describe both actions sequentially. **Only describe actions you can actually observe happening in the frames provided.** Do not infer or assume actions that aren't visible (e.g., if you see someone walking but never see them sit, don't say they sat down). Include setting, detected objects, and their observable actions. Avoid speculation or filling in assumed behaviors. Your description should align with and support the threat level you assign.
- `title`: Characterize **what took place and where** interpret the overall purpose or outcome, do not simply compress the scene description into fewer words. Include the relevant location (zone, area, or entry point). Always include subject names from "Objects in Scene" do not replace named subjects with generic terms. No editorial qualifiers like "routine" or "suspicious." - `title` (string): A concise, grammatically complete title in the format "[Subject] [action verb] [context]" that matches your scene description. Use names from "Objects in Scene" when you visually observe them.
- `potential_threat_level`: Must be consistent with your scene description and the activity patterns above. - `shortSummary` (string): A brief 2-sentence summary of the scene, suitable for notifications. Should capture the key activity and context without full detail. This should be a condensed version of the scene description above.
- `confidence` (float): 0-1 confidence in your analysis. Higher confidence when objects/actions are clearly visible and context is unambiguous. Lower confidence when the sequence is unclear, objects are partially obscured, or context is ambiguous.
- `potential_threat_level` (integer): 0, 1, or 2 as defined in "Normal Activity Patterns for This Property" above. Your threat level must be consistent with your scene description and the guidance above.
{get_concern_prompt()} {get_concern_prompt()}
## Sequence Details ## Sequence Details
@ -127,6 +134,10 @@ Each line represents a detection state, not necessarily unique individuals. Pare
**Note: Unidentified objects (without names) are NOT indicators of suspicious activitythey simply mean the system hasn't identified that object.** **Note: Unidentified objects (without names) are NOT indicators of suspicious activitythey simply mean the system hasn't identified that object.**
{get_objects_list()} {get_objects_list()}
## Important Notes
- Values must be plain strings, floats, or integers no nested objects, no extra commentary.
- Only describe objects from the "Objects in Scene" list above. Do not hallucinate additional objects.
- When describing people or vehicles, use the exact names provided.
{get_language_prompt()} {get_language_prompt()}
""" """
logger.debug( logger.debug(
@ -142,27 +153,7 @@ Each line represents a detection state, not necessarily unique individuals. Pare
) as f: ) as f:
f.write(context_prompt) f.write(context_prompt)
# Build JSON schema for structured output from ReviewMetadata model response = self._send(context_prompt, thumbnails)
schema = ReviewMetadata.model_json_schema()
schema.get("properties", {}).pop("time", None)
if "time" in schema.get("required", []):
schema["required"].remove("time")
if not concerns:
schema.get("properties", {}).pop("other_concerns", None)
if "other_concerns" in schema.get("required", []):
schema["required"].remove("other_concerns")
response_format = {
"type": "json_schema",
"json_schema": {
"name": "review_metadata",
"strict": True,
"schema": schema,
},
}
response = self._send(context_prompt, thumbnails, response_format)
if debug_save and response: if debug_save and response:
with open( with open(
@ -306,12 +297,7 @@ Guidelines:
"""Initialize the client.""" """Initialize the client."""
return None return None
def _send( def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
self,
prompt: str,
images: list[bytes],
response_format: Optional[dict] = None,
) -> Optional[str]:
"""Submit a request to the provider.""" """Submit a request to the provider."""
return None return None

View File

@ -42,18 +42,13 @@ class OpenAIClient(GenAIClient):
azure_endpoint=azure_endpoint, azure_endpoint=azure_endpoint,
) )
def _send( def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
self,
prompt: str,
images: list[bytes],
response_format: Optional[dict] = None,
) -> Optional[str]:
"""Submit a request to Azure OpenAI.""" """Submit a request to Azure OpenAI."""
encoded_images = [base64.b64encode(image).decode("utf-8") for image in images] encoded_images = [base64.b64encode(image).decode("utf-8") for image in images]
try: try:
request_params = { result = self.provider.chat.completions.create(
"model": self.genai_config.model, model=self.genai_config.model,
"messages": [ messages=[
{ {
"role": "user", "role": "user",
"content": [{"type": "text", "text": prompt}] "content": [{"type": "text", "text": prompt}]
@ -69,12 +64,9 @@ class OpenAIClient(GenAIClient):
], ],
}, },
], ],
"timeout": self.timeout, timeout=self.timeout,
**self.genai_config.runtime_options, **self.genai_config.runtime_options,
} )
if response_format:
request_params["response_format"] = response_format
result = self.provider.chat.completions.create(**request_params)
except Exception as e: except Exception as e:
logger.warning("Azure OpenAI returned an error: %s", str(e)) logger.warning("Azure OpenAI returned an error: %s", str(e))
return None return None

View File

@ -42,12 +42,7 @@ class GeminiClient(GenAIClient):
http_options=types.HttpOptions(**http_options_dict), http_options=types.HttpOptions(**http_options_dict),
) )
def _send( def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
self,
prompt: str,
images: list[bytes],
response_format: Optional[dict] = None,
) -> Optional[str]:
"""Submit a request to Gemini.""" """Submit a request to Gemini."""
contents = [ contents = [
types.Part.from_bytes(data=img, mime_type="image/jpeg") for img in images types.Part.from_bytes(data=img, mime_type="image/jpeg") for img in images
@ -57,12 +52,6 @@ class GeminiClient(GenAIClient):
generation_config_dict = {"candidate_count": 1} generation_config_dict = {"candidate_count": 1}
generation_config_dict.update(self.genai_config.runtime_options) generation_config_dict.update(self.genai_config.runtime_options)
if response_format and response_format.get("type") == "json_schema":
generation_config_dict["response_mime_type"] = "application/json"
schema = response_format.get("json_schema", {}).get("schema")
if schema:
generation_config_dict["response_schema"] = schema
response = self.provider.models.generate_content( response = self.provider.models.generate_content(
model=self.genai_config.model, model=self.genai_config.model,
contents=contents, contents=contents,

View File

@ -57,12 +57,7 @@ class LlamaCppClient(GenAIClient):
else None else None
) )
def _send( def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
self,
prompt: str,
images: list[bytes],
response_format: Optional[dict] = None,
) -> Optional[str]:
"""Submit a request to llama.cpp server.""" """Submit a request to llama.cpp server."""
if self.provider is None: if self.provider is None:
logger.warning( logger.warning(
@ -101,9 +96,6 @@ class LlamaCppClient(GenAIClient):
**self.provider_options, **self.provider_options,
} }
if response_format:
payload["response_format"] = response_format
response = requests.post( response = requests.post(
f"{self.provider}/v1/chat/completions", f"{self.provider}/v1/chat/completions",
json=payload, json=payload,

View File

@ -53,12 +53,7 @@ class OllamaClient(GenAIClient):
logger.warning("Error initializing Ollama: %s", str(e)) logger.warning("Error initializing Ollama: %s", str(e))
return None return None
def _send( def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
self,
prompt: str,
images: list[bytes],
response_format: Optional[dict] = None,
) -> Optional[str]:
"""Submit a request to Ollama""" """Submit a request to Ollama"""
if self.provider is None: if self.provider is None:
logger.warning( logger.warning(
@ -70,10 +65,6 @@ class OllamaClient(GenAIClient):
**self.provider_options, **self.provider_options,
**self.genai_config.runtime_options, **self.genai_config.runtime_options,
} }
if response_format and response_format.get("type") == "json_schema":
schema = response_format.get("json_schema", {}).get("schema")
if schema:
ollama_options["format"] = schema
result = self.provider.generate( result = self.provider.generate(
self.genai_config.model, self.genai_config.model,
prompt, prompt,

View File

@ -36,12 +36,7 @@ class OpenAIClient(GenAIClient):
return OpenAI(api_key=self.genai_config.api_key, **provider_opts) return OpenAI(api_key=self.genai_config.api_key, **provider_opts)
def _send( def _send(self, prompt: str, images: list[bytes]) -> Optional[str]:
self,
prompt: str,
images: list[bytes],
response_format: Optional[dict] = None,
) -> Optional[str]:
"""Submit a request to OpenAI.""" """Submit a request to OpenAI."""
encoded_images = [base64.b64encode(image).decode("utf-8") for image in images] encoded_images = [base64.b64encode(image).decode("utf-8") for image in images]
messages_content = [] messages_content = []
@ -62,20 +57,17 @@ class OpenAIClient(GenAIClient):
} }
) )
try: try:
request_params = { result = self.provider.chat.completions.create(
"model": self.genai_config.model, model=self.genai_config.model,
"messages": [ messages=[
{ {
"role": "user", "role": "user",
"content": messages_content, "content": messages_content,
}, },
], ],
"timeout": self.timeout, timeout=self.timeout,
**self.genai_config.runtime_options, **self.genai_config.runtime_options,
} )
if response_format:
request_params["response_format"] = response_format
result = self.provider.chat.completions.create(**request_params)
if ( if (
result is not None result is not None
and hasattr(result, "choices") and hasattr(result, "choices")

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -106,9 +106,7 @@
"logout": "Tanca la sessió", "logout": "Tanca la sessió",
"current": "Usuari actual: {{user}}" "current": "Usuari actual: {{user}}"
}, },
"classification": "Classificació", "classification": "Classificació"
"chat": "Xat",
"actions": "Accions"
}, },
"pagination": { "pagination": {
"previous": { "previous": {
@ -270,18 +268,7 @@
"unselect": "Desseleccionar", "unselect": "Desseleccionar",
"enable": "Habilitar", "enable": "Habilitar",
"enabled": "Habilitat", "enabled": "Habilitat",
"continue": "Continua", "continue": "Continua"
"add": "Afegeix",
"undo": "Desfés",
"copiedToClipboard": "S'ha copiat al porta-retalls",
"modified": "Modificat",
"overridden": "Sobreescrit",
"resetToGlobal": "Restableix a global",
"resetToDefault": "Restableix al valor predeterminat",
"saveAll": "Desa-ho tot",
"savingAll": "S'està desant tot…",
"undoAll": "Desfés-ho tot",
"applying": "S'està aplicant…"
}, },
"toast": { "toast": {
"copyUrlToClipboard": "URL copiada al porta-retalls.", "copyUrlToClipboard": "URL copiada al porta-retalls.",

View File

@ -65,10 +65,6 @@
"fromTimeline": { "fromTimeline": {
"saveExport": "Guardar exportació", "saveExport": "Guardar exportació",
"previewExport": "Previsualitzar exportació" "previewExport": "Previsualitzar exportació"
},
"case": {
"label": "Cas",
"placeholder": "Selecciona un cas"
} }
}, },
"streaming": { "streaming": {

View File

@ -1,941 +0,0 @@
{
"label": "ConfiguracióDeLaCcàmera",
"name": {
"label": "Nom de la càmera",
"description": "Es requereix el nom de la càmera"
},
"friendly_name": {
"label": "Nom amistós",
"description": "Nom amigable de la càmera utilitzat a la interfície d'usuari de la Frigate"
},
"enabled": {
"label": "Habilitat",
"description": "Habilitat"
},
"audio": {
"label": "Esdeveniments d'àudio",
"description": "Configuració per a la detecció d'esdeveniments basats en àudio per a aquesta càmera.",
"enabled": {
"label": "Habilita la detecció d'àudio",
"description": "Activa o desactiva la detecció d'esdeveniments d'àudio per a aquesta càmera."
},
"max_not_heard": {
"label": "Temps d'espera final",
"description": "Quantitat de segons sense el tipus d'àudio configurat abans que acabi l'esdeveniment d'àudio."
},
"min_volume": {
"label": "Volum mínim",
"description": "Llindar mínim de volum RMS necessari per executar la detecció d'àudio; els valors més baixos augmenten la sensibilitat (p. ex., 200 alta, 500 mitjana, 1000 baixa)."
},
"listen": {
"label": "Tipus d'escoltes",
"description": "Llista de tipus d'esdeveniment d'àudio a detectar (per exemple: escorça, focarmalarma, crit, parla, crida)."
},
"filters": {
"label": "Filtres d'àudio",
"description": "Paràmetres de filtre per-àudio-tipus, com ara llindars de confiança utilitzats per reduir falsos positius."
},
"enabled_in_config": {
"label": "Estat d'àudio original",
"description": "Indica si la detecció d'àudio s'ha activat originalment al fitxer de configuració estàtic."
},
"num_threads": {
"label": "Fils de detecció",
"description": "Nombre de fils a utilitzar per al processament de detecció d'àudio."
}
},
"audio_transcription": {
"label": "Transcripció d'àudio",
"description": "Configuració per a la transcripció d'àudio en viu i de veu utilitzada per a esdeveniments i llegendes en directe.",
"enabled": {
"label": "Habilita la transcripció",
"description": "Activa o desactiva la transcripció d'esdeveniments d'àudio activada manualment."
},
"enabled_in_config": {
"label": "Estat de transcripció original"
},
"live_enabled": {
"label": "Transcripció en viu",
"description": "Habilita la transcripció en directe per a l'àudio a mesura que es rep."
}
},
"birdseye": {
"label": "Birdseye",
"description": "Arranjament per a la vista composta Birdseye que compon múltiples canals de càmera en una única disposició.",
"enabled": {
"label": "Habilita Birdseye",
"description": "Activa o desactiva la funció de vista Birdseye."
},
"mode": {
"label": "Mode de seguiment",
"description": "Mode per a incloure càmeres en Birdseye: 'objectes', 'motion' o 'continuous'."
},
"order": {
"label": "Posició",
"description": "Posició numèrica que controla l'ordenació de la càmera en la disposició Birdseye."
}
},
"detect": {
"label": "Detecció d'objectes",
"description": "Configuració del rol de detecció utilitzat per executar la detecció d'objectes i inicialitzar els rastrejadors.",
"enabled": {
"label": "Detecció activada",
"description": "Activa o desactiva la detecció d'objectes per a aquesta càmera. La detecció s'ha d'activar perquè s'executi el seguiment d'objectes."
},
"height": {
"label": "Detecta l'alçada",
"description": "Alçada (píxels) dels fotogrames utilitzats per al flux de detecció; deixeu-ho buit per a utilitzar la resolució nativa del flux."
},
"width": {
"label": "Detecta l'amplada",
"description": "Amplada (píxels) dels fotogrames utilitzats per al flux de detecció; deixeu-ho buit per a utilitzar la resolució nativa del flux."
},
"fps": {
"label": "Detecta FPS",
"description": "Fotogrames desitjats per segon per executar la detecció; els valors més baixos redueixen l'ús de la CPU (el valor recomanat és 5, només estableix més alt - com a màxim 10 - si el seguiment d'objectes en moviment extremadament ràpid)."
},
"min_initialized": {
"label": "Fotogrames d'inicialització mínims",
"description": "Nombre d'incidències de detecció consecutives necessàries abans de crear un objecte rastrejat. Incrementa per a reduir les falses inicialitzacions. El valor per defecte és fps dividit per 2."
},
"max_disappeared": {
"label": "Màxim de fotogrames desapareguts",
"description": "Nombre de fotogrames sense detecció abans que es consideri que un objecte rastrejat ha desaparegut."
},
"stationary": {
"label": "Configuració d'objectes estacionaris",
"description": "Configuració per detectar i gestionar objectes que romanen estacionaris durant un període de temps.",
"interval": {
"label": "Interval estacionari",
"description": "Amb quina freqüència (en fotogrames) s'executa una comprovació de detecció per confirmar un objecte estacionari."
},
"threshold": {
"label": "Llindar estacionari",
"description": "Nombre de fotogrames sense cap canvi de posició necessari per a marcar un objecte com a estacionari."
},
"max_frames": {
"label": "Fotogrames màxims",
"description": "Limita quant de temps es segueixen els objectes estacionaris abans de descartar-los.",
"default": {
"label": "Fotogrames màxims predeterminats",
"description": "Fotogrames màxims predeterminats per a fer el seguiment d'un objecte estacionari abans d'aturar-se."
},
"objects": {
"label": "Fotogrames màxims de l'objecte",
"description": "Sobreescriu l'objecte per als fotogrames màxims per fer un seguiment dels objectes estacionaris."
}
},
"classifier": {
"label": "Habilita el classificador visual",
"description": "Utilitzeu un classificador visual per detectar objectes realment estacionaris, fins i tot quan les caixes contenidores tremolen."
}
},
"annotation_offset": {
"label": "Desplaçament de l'anotació",
"description": "Mil·lisegons per a desplaçar detecta anotacions per a alinear millor els límits de la línia de temps amb els enregistraments; pot ser positiu o negatiu."
}
},
"face_recognition": {
"label": "Reconeixement de cares",
"description": "Configuració per a la detecció de la cara i el reconeixement d'aquesta càmera.",
"enabled": {
"label": "Habilita el reconeixement facial",
"description": "Activa o desactiva el reconeixement facial."
},
"min_area": {
"label": "Àrea mínima de la cara",
"description": "Àrea mínima (píxels) d'un quadre facial detectat requerit per intentar el reconeixement."
}
},
"ffmpeg": {
"label": "FFmpeg",
"description": "Paràmetres del FFmpeg que inclouen camins binaris, args, opcions de hwaccel i args de sortida per rol.",
"path": {
"label": "Ruta FFmpeg",
"description": "Ruta al binari FFmpeg a usar o un àlies de versió («5.0» o «7.0»)."
},
"global_args": {
"label": "Arguments globals del FFmpeg",
"description": "Arguments globals passats als processos FFmpeg."
},
"hwaccel_args": {
"label": "Arguments d'acceleració del maquinari",
"description": "Arguments d'acceleració de maquinari per a FFmpeg. Es recomanen predefinits específics del proveïdor."
},
"input_args": {
"label": "Arguments d'entrada",
"description": "Arguments d'entrada aplicats als fluxos d'entrada del FFmpeg."
},
"output_args": {
"label": "Arguments de sortida",
"description": "Arguments de sortida predeterminats utilitzats per a diferents rols FFmpeg com detecta i registra.",
"detect": {
"label": "Detecta els arguments de sortida",
"description": "Arguments de sortida predeterminats per a detectar fluxos de rol."
},
"record": {
"label": "Registra els arguments de sortida",
"description": "Arguments de sortida predeterminats per a enregistrar fluxos de rols."
}
},
"retry_interval": {
"label": "Temps de reintent del FFmpeg",
"description": "Segons a esperar abans d'intentar tornar a connectar un flux de càmera després d'un error. Per defecte és 10."
},
"apple_compatibility": {
"label": "Compatibilitat d'Apple",
"description": "Activa l'etiquetatge HEVC per a una millor compatibilitat amb el reproductor d'Apple en gravar H.265."
},
"gpu": {
"label": "Índex de GPU",
"description": "Índex de GPU predeterminat utilitzat per a l'acceleració de maquinari si està disponible."
},
"inputs": {
"label": "Entrada de la càmera",
"description": "Llista de definicions de flux d'entrada (camins i rols) per a aquesta càmera.",
"path": {
"label": "Ruta d'entrada",
"description": "URL o camí del flux d'entrada de la càmera."
},
"roles": {
"label": "Rols d'entrada",
"description": "Rols per a aquest flux d'entrada."
},
"global_args": {
"label": "Arguments globals del FFmpeg",
"description": "Arguments globals del FFmpeg per a aquest flux d'entrada."
},
"hwaccel_args": {
"label": "Arguments d'acceleració del maquinari",
"description": "Arguments d'acceleració del maquinari per a aquest flux d'entrada."
},
"input_args": {
"label": "Arguments d'entrada",
"description": "Arguments d'entrada específics d'aquest flux."
}
}
},
"live": {
"label": "Reproducció en directe",
"description": "Configuració utilitzada per la interfície d'usuari web per controlar la selecció, resolució i qualitat del flux en viu.",
"streams": {
"label": "Noms de flux en viu",
"description": "Assignació de noms de flux configurats per a restream/go2rtc noms utilitzats per a la reproducció en viu."
},
"height": {
"label": "Alçada del directe",
"description": "Alçada (píxels) per a renderitzar el flux en viu jsmpeg a la interfície d'usuari web; ha de ser . detecta l'alçada del flux."
},
"quality": {
"label": "Qualitat del directe",
"description": "Qualitat de codificació per al flux jsmpeg (1 més alt, 31 més baix)."
}
},
"lpr": {
"label": "Reconeixement de la placa de llicència",
"description": "Paràmetres de reconeixement de la matrícula de la llicència, inclosos els llindars de detecció, el format i les plaques conegudes.",
"enabled": {
"label": "Habilita el LPR",
"description": "Activa o desactiva LPR en aquesta càmera."
},
"expire_time": {
"label": "Caduca els segons",
"description": "Temps en segons després del qual una placa no vista expira del rastrejador (només per a càmeres LPR dedicades)."
},
"min_area": {
"label": "Àrea mínima de la placa",
"description": "Àrea mínima de placa (píxels) necessària per intentar el reconeixement."
},
"enhancement": {
"label": "Nivell de millora",
"description": "Nivell de millora (0-10) per aplicar als cultius de plaques abans de l'OCR; els valors més alts no sempre poden millorar els resultats, els nivells superiors a 5 només poden funcionar amb plaques nocturnes i s'han d'utilitzar amb precaució."
}
},
"motion": {
"label": "Detecció de moviment",
"enabled": {
"label": "Habilita la detecció de moviment",
"description": "Activa o desactiva la detecció de moviment d'aquesta càmera."
},
"description": "Configuració predeterminada de detecció de moviment per a aquesta càmera.",
"threshold": {
"label": "Llindar del moviment",
"description": "Llindar de diferència de píxels utilitzat pel detector de moviment; els valors més alts redueixen la sensibilitat (interval 1-255)."
},
"lightning_threshold": {
"label": "Llindar del llamp",
"description": "Llindar per detectar i ignorar les puntes d'il·luminació breu (més baixes són més sensibles, valors entre 0,3 i 1,0). Això no impedeix la detecció de moviment per complet; simplement fa que el detector deixi d'analitzar fotogrames addicionals una vegada que el llindar s'excedeix. Els enregistraments basats en moviment encara es creen durant aquests esdeveniments."
},
"improve_contrast": {
"label": "Millora el contrast",
"description": "Aplicar la millora del contrast als fotogrames abans de l'anàlisi del moviment per ajudar a la detecció."
},
"contour_area": {
"label": "Àrea de la vora",
"description": "Àrea mínima de contorn en píxels necessària per a comptar un contorn de moviment."
},
"delta_alpha": {
"label": "Delta alfa",
"description": "Factor de barreja alfa utilitzat en la diferència de fotogrames per al càlcul del moviment."
},
"frame_alpha": {
"label": "Alfa del fotograma",
"description": "Valor alfa utilitzat en la barreja de fotogrames per al preprocessament del moviment."
},
"frame_height": {
"label": "Alçada del marc",
"description": "Alçada en píxels per a escalar els fotogrames quan es computa el moviment."
},
"mask": {
"label": "Coordenades de la màscara",
"description": "Coordenades x,y que defineixen el polígon de màscara de moviment utilitzat per incloure/excloure àrees."
},
"mqtt_off_delay": {
"label": "Retard MQTT desactivat",
"description": "Segons a esperar després de l'última moció abans de publicar un estat MQTT 'off'."
},
"enabled_in_config": {
"label": "Estat del moviment original",
"description": "Indica si la detecció de moviment s'ha activat en la configuració estàtica original."
},
"raw_mask": {
"label": "Màscara en brut"
},
"skip_motion_threshold": {
"label": "Omet el llindar de moviment",
"description": "Si més d'aquesta fracció de la imatge canvia en un sol fotograma, el detector no retornarà cap caixa de moviment i recalibrarà immediatament. Això pot estalviar CPU i reduir falsos positius durant el llamp, tempestes, etc., però pot perdre esdeveniments reals com una càmera PTZ que fa un seguiment automàtic d'un objecte. La compensació es troba entre deixar caure uns quants megabytes d'enregistraments versus revisar un parell de clips curts. Interval de 0,0 a 1,0."
}
},
"objects": {
"label": "Objectes",
"description": "Object tracking defaults incloent quines etiquetes rastrejar i per objecte filtres.",
"track": {
"label": "Objectes a seguir",
"description": "Llista d'etiquetes d'objectes a seguir per a aquesta càmera."
},
"filters": {
"label": "Filtres d'objectes",
"description": "Filtres aplicats als objectes detectats per reduir falsos positius (àrea, relació, confiança).",
"min_area": {
"label": "Àrea mínima de l'objecte",
"description": "Es requereix una àrea de caixa contenidora mínima (píxels o percentatge) per a aquest tipus d'objecte. Pot ser píxels (int) o percentatge (float entre 0,000001 i 0.99)."
},
"max_area": {
"label": "Àrea màxima de l'objecte",
"description": "Es permet l'àrea màxima de la caixa contenidora (píxels o percentatge) per a aquest tipus d'objecte. Pot ser píxels (int) o percentatge (float entre 0,000001 i 0.99)."
},
"min_ratio": {
"label": "Relació mínima d'aspecte",
"description": "Relació mínima d'amplada/alçada requerida per a la casella contenidora a qualificar."
},
"max_ratio": {
"description": "Es permet la relació màxima d'amplada/alçada per a la casella contenidora a qualificar.",
"label": "Relació màxima d'aspecte"
},
"threshold": {
"label": "Llindar de confiança",
"description": "Es requereix un llindar de confiança mitjà per a la detecció perquè l'objecte es consideri un veritable positiu."
},
"min_score": {
"label": "Confiança mínima",
"description": "Es requereix una confiança mínima de detecció d'un sol fotograma per a comptar l'objecte."
},
"mask": {
"label": "Màscara de filtre",
"description": "Coordenades de polígon que defineixen on s'aplica aquest filtre dins del marc."
},
"raw_mask": {
"label": "Màscara en brut"
}
},
"mask": {
"label": "Màscara d'objecte",
"description": "Polígon de màscara utilitzat per evitar la detecció d'objectes en àrees especificades."
},
"raw_mask": {
"label": "Màscara en brut"
},
"genai": {
"label": "Configuració de l'objecte GenAI",
"description": "Opcions de GenAI per descriure objectes rastrejats i enviar fotogrames per a la generació.",
"enabled": {
"label": "Habilita el GenAI",
"description": "Habilita la generació de descripcions de GenAI per als objectes rastrejats de manera predeterminada."
},
"use_snapshot": {
"label": "Utilitza instantànies",
"description": "Usa instantànies d'objecte en lloc de miniatures per a la generació de descripcions de GenAI."
},
"prompt": {
"label": "Indicació de la llegenda",
"description": "Plantilla de pregunta predeterminada utilitzada en generar descripcions amb GenAI."
},
"object_prompts": {
"label": "Peticions d'objecte",
"description": "Per objecte demana personalitzar les sortides de GenAI per a etiquetes específiques."
},
"objects": {
"label": "Objectes GenAI",
"description": "Llista d'etiquetes d'objectes a enviar a GenAI per defecte."
},
"required_zones": {
"label": "Zones requerides",
"description": "Zones que s'han d'introduir perquè els objectes es puguin classificar per a la generació de descripcions de GenAI."
},
"debug_save_thumbnails": {
"label": "Desa les miniatures",
"description": "Desa les miniatures enviades a GenAI per a la depuració i la revisió."
},
"send_triggers": {
"label": "Activadors de GenAI",
"description": "Defineix quan s'han d'enviar fotogrames a GenAI (al final, després de les actualitzacions, etc.).",
"tracked_object_end": {
"label": "Envia al final",
"description": "Envia una sol·licitud a GenAI quan acabi l'objecte rastrejat."
},
"after_significant_updates": {
"label": "Activador de GenAI primerenc",
"description": "Envia una sol·licitud a GenAI després d'un nombre especificat d'actualitzacions significatives per a l'objecte rastrejat."
}
},
"enabled_in_config": {
"label": "Estat original de GenAI",
"description": "Indica si el GenAI s'ha activat a la configuració estàtica original."
}
}
},
"record": {
"label": "Enregistrament",
"description": "Configuració d'enregistrament i retenció d'aquesta càmera.",
"enabled": {
"label": "Habilita l'enregistrament",
"description": "Activa o desactiva l'enregistrament d'aquesta càmera."
},
"expire_interval": {
"label": "Interval de neteja de l'enregistrament",
"description": "Minuts entre passades de neteja que eliminen segments d'enregistrament caducats."
},
"continuous": {
"label": "Retenció contínua",
"description": "Nombre de dies per a retenir els enregistraments independentment dels objectes rastrejats o del moviment. Establiu-ho a 0 si només voleu retenir enregistraments d'alertes i deteccions.",
"days": {
"label": "Dies de retenció",
"description": "Dies per retenir enregistraments."
}
},
"motion": {
"label": "Retenció del moviment",
"description": "Nombre de dies per a retenir els enregistraments activats pel moviment independentment dels objectes rastrejats. Establiu-ho a 0 si només voleu retenir enregistraments d'alertes i deteccions.",
"days": {
"label": "Dies de retenció",
"description": "Dies per retenir enregistraments."
}
},
"detections": {
"label": "Retenció de detecció",
"description": "Configuració de retenció de l'enregistrament per a esdeveniments de detecció, incloent-hi la durada de la captura anterior a la publicació.",
"pre_capture": {
"label": "Segons de precaptura",
"description": "Nombre de segons abans de l'esdeveniment de detecció a incloure en l'enregistrament."
},
"post_capture": {
"label": "Segons de postcaptura",
"description": "Nombre de segons després de l'esdeveniment de detecció que s'inclourà a l'enregistrament."
},
"retain": {
"label": "Retenció d'esdeveniments",
"description": "Configuració de retenció per a enregistraments d'esdeveniments de detecció.",
"days": {
"label": "Dies de retenció",
"description": "Nombre de dies per a retenir enregistraments d'esdeveniments de detecció."
},
"mode": {
"label": "Mode de retenció",
"description": "Mode de retenció: tot (desa tots els segments), moviment (desa els segments amb moviment), o actiuobobjectes (desa els segments amb objectes actius)."
}
}
},
"alerts": {
"label": "Retenció d'alerta",
"description": "Configuració de retenció de l'enregistrament per a esdeveniments d'alerta, incloses les durades de captura anteriors a la publicació.",
"pre_capture": {
"label": "Segons de precaptura",
"description": "Nombre de segons abans de l'esdeveniment de detecció a incloure en l'enregistrament."
},
"post_capture": {
"label": "Segons de postcaptura",
"description": "Nombre de segons després de l'esdeveniment de detecció que s'inclourà a l'enregistrament."
},
"retain": {
"label": "Retenció d'esdeveniments",
"description": "Configuració de retenció per a enregistraments d'esdeveniments de detecció.",
"days": {
"label": "Dies de retenció",
"description": "Nombre de dies per a retenir enregistraments d'esdeveniments de detecció."
},
"mode": {
"label": "Mode de retenció",
"description": "Mode de retenció: tot (desa tots els segments), moviment (desa els segments amb moviment), o actiuobobjectes (desa els segments amb objectes actius)."
}
}
},
"export": {
"label": "Exporta la configuració",
"description": "Paràmetres utilitzats en exportar enregistraments com el timelapse i l'acceleració del maquinari.",
"hwaccel_args": {
"label": "Exporta els arguments de l'hwaccel",
"description": "Args d'acceleració de maquinari a utilitzar per a operacions d'exportació/transcodificació."
}
},
"preview": {
"label": "Configuració de la vista prèvia",
"description": "Paràmetres que controlen la qualitat de les vistes prèvies de l'enregistrament que es mostren a la interfície d'usuari.",
"quality": {
"label": "Qualitat de la vista prèvia",
"description": "Nivell de qualitat de la vista prèvia (moltlowbaix, baix, mitjà, alt, molt).alt)."
}
},
"enabled_in_config": {
"label": "Estat de l'enregistrament original",
"description": "Indica si l'enregistrament s'ha activat en la configuració estàtica original."
}
},
"review": {
"label": "Revisió",
"description": "Configuració que controla les alertes, les deteccions i els resums de revisió de GenAI utilitzats per la interfície d'usuari i l'emmagatzematge d'aquesta càmera.",
"alerts": {
"label": "Configuració d'alertes",
"description": "Paràmetres per als quals els objectes rastrejats generen alertes i com es mantenen les alertes",
"enabled": {
"label": "Habilita les alertes",
"description": "Activa o desactiva la generació d'alertes per a aquesta càmera."
},
"labels": {
"label": "Etiquetes d'alerta",
"description": "Llista d'etiquetes d'objectes que qualifiquen d'alertes (per exemple: cotxe, persona)."
},
"required_zones": {
"label": "Zones requerides",
"description": "Zones que un objecte ha d'introduir per a ser considerat una alerta; deixeu-ho buit per a permetre qualsevol zona."
},
"enabled_in_config": {
"label": "Estat de les alertes originals",
"description": "Fa un seguiment de si les alertes es van habilitar originalment a la configuració estàtica."
},
"cutoff_time": {
"label": "Temps de tall d'alertes",
"description": "Segons a esperar després de no provocar activitat d'alerta abans de tallar una alerta."
}
},
"detections": {
"label": "Configuració de les deteccions",
"description": "Paràmetres per a crear esdeveniments de detecció (no-alerta) i quant de temps conservar-los.",
"enabled": {
"label": "Habilita les deteccions",
"description": "Activa o desactiva els esdeveniments de detecció d'aquesta càmera."
},
"labels": {
"label": "Etiquetes de detecció",
"description": "Llista d'etiquetes d'objectes que es qualifiquen com a esdeveniments de detecció."
},
"required_zones": {
"label": "Zones requerides",
"description": "Zones que un objecte ha d'introduir per a ser considerat una detecció; deixeu-ho buit per a permetre qualsevol zona."
},
"cutoff_time": {
"label": "Temps de tall de detecció",
"description": "Segons a esperar després de no haver-hi activitat de detecció abans de tallar una detecció"
},
"enabled_in_config": {
"label": "Estat de les deteccions originals",
"description": "Fa un seguiment de si les deteccions es van habilitar originalment a la configuració estàtica."
}
},
"genai": {
"label": "Configuració del GenAI",
"description": "Controla l'ús de la IA generativa per a la producció de descripcions i resums d'articles de revisió.",
"enabled": {
"label": "Habilita les descripcions del GenAI",
"description": "Activa o desactiva les descripcions i resums generats per GenAI per als elements de revisió."
},
"alerts": {
"label": "Habilita el GenAI per a alertes",
"description": "Utilitzeu GenAI per a generar descripcions per als elements d'alerta."
},
"detections": {
"label": "Habilita el GenAI per a les deteccions",
"description": "Utilitzeu GenAI per generar descripcions per als elements de detecció."
},
"image_source": {
"label": "Revisa l'origen de la imatge",
"description": "Font d'imatges enviades a GenAI ('previsualització' o 'enregistraments'); 'enregistraments' utilitza Fotogrames de més qualitat però més tokens."
},
"additional_concerns": {
"label": "Altres preocupacions",
"description": "Una llista de preocupacions o notes addicionals que el GenAI ha de tenir en compte a l'hora d'avaluar l'activitat en aquesta càmera."
},
"debug_save_thumbnails": {
"label": "Desa les miniatures",
"description": "Desa les miniatures que s'envien al proveïdor GenAI per a la depuració i la revisió."
},
"enabled_in_config": {
"label": "Estat original de GenAI",
"description": "Fa un seguiment de si la revisió de GenAI es va habilitar originalment a la configuració estàtica."
},
"preferred_language": {
"label": "Idioma preferit",
"description": "Idioma preferit per sol·licitar al proveïdor GenAI respostes generades."
},
"activity_context_prompt": {
"label": "Indicador de context de l'activitat",
"description": "Pregunta personalitzada que descriu el que és i no és una activitat sospitosa per proporcionar context per als resums de GenAI."
}
}
},
"semantic_search": {
"label": "Cerca semàntica",
"description": "Paràmetres per a la cerca semàntica que construeix i consulta incrustacions d'objectes per a trobar elements similars.",
"triggers": {
"label": "Activadors",
"description": "Accions i criteris coincidents per als desencadenants de cerca semàntica específics de la càmera.",
"friendly_name": {
"label": "Nom amistós",
"description": "Nom opcional amistós que es mostra a la interfície d'usuari per a aquest activador."
},
"enabled": {
"label": "Habilita aquest activador",
"description": "Activa o desactiva aquest activador de cerca semàntica."
},
"type": {
"label": "Tipus d'activador",
"description": "Tipus d'activador: «miniatures» (match contra imatge) o «descripció» (match contra text)."
},
"data": {
"label": "Contingut del disparador",
"description": "Frase de text o ID de miniatures per a coincidir amb els objectes rastrejats."
},
"threshold": {
"label": "Llindar d'activació",
"description": "Puntuació mínima de similitud (0-1) necessària per activar aquest activador."
},
"actions": {
"label": "Accions d'activació",
"description": "Llista d'accions a executar quan coincideixi l'activador (notificació, sublabeletiqueta, atribut)."
}
}
},
"snapshots": {
"label": "Instantànies",
"description": "Configuració per a les instantànies JPEG desades dels objectes seguits per a aquesta càmera.",
"enabled": {
"label": "Instantànies habilitades",
"description": "Activa o desactiva el desament de les instantànies d'aquesta càmera."
},
"clean_copy": {
"label": "Desa la còpia neta",
"description": "Desa una còpia neta no anotada de les instantànies a més de les anotades."
},
"timestamp": {
"label": "Superposició de marca horària",
"description": "Superposa una marca horària a les instantànies desades."
},
"bounding_box": {
"label": "Superposició de la caixa contenidora",
"description": "Dibuixa caixes contenidores per als objectes seguits en les instantànies desades."
},
"crop": {
"label": "Retalla la instantània",
"description": "Retalla les instantànies desades a la caixa contenidora de l'objecte detectat."
},
"required_zones": {
"label": "Zones requerides",
"description": "Zones que ha d'introduir un objecte perquè es desi una instantània."
},
"height": {
"label": "Alçada de la instantània",
"description": "Alçada (píxels) per a canviar la mida de les instantànies desades; deixeu-ho buit per a preservar la mida original."
},
"retain": {
"label": "Retenció de la instantània",
"description": "Paràmetres de retenció per a les instantànies desades, inclosos els dies predeterminats i les anul·lacions per objecte.",
"default": {
"label": "Retenció predeterminada",
"description": "Nombre predeterminat de dies per a retenir les instantànies."
},
"mode": {
"label": "Mode de retenció",
"description": "Mode de retenció: tot (desa tots els segments), moviment (desa els segments amb moviment), o actiuobobjectes (desa els segments amb objectes actius)."
},
"objects": {
"label": "Retenció d'objectes",
"description": "Anul·lació per objecte per dies de retenció d'instantànies."
}
},
"quality": {
"label": "Qualitat JPEG",
"description": "Qualitat del codi JPEG per a les instantànies desades (0-100)."
}
},
"timestamp_style": {
"label": "Estil de la marca horària",
"description": "Opcions d'estilització per a marques de temps d'alimentació aplicades a enregistraments i instantànies.",
"position": {
"label": "Posició de la marca horària",
"description": "Posició de la marca horària a la imatge (tl/tr/bl/br)."
},
"format": {
"label": "Format de la marca horària",
"description": "Cadena de format de data i hora utilitzada per a marques horàries (codis de format de data i hora de Python)."
},
"color": {
"label": "Color de la marca horària",
"description": "Valors de color RGB per al text de la marca de temps (tots els valors 0-255).",
"red": {
"label": "Vermell",
"description": "Component vermell (0-255) per al color de la marca horària."
},
"green": {
"label": "Verd",
"description": "Component verd (0-255) per al color de la marca horària."
},
"blue": {
"label": "Blau",
"description": "Component blau (0-255) per al color de la marca horària."
}
},
"thickness": {
"label": "Gruix de la marca de temps",
"description": "Gruix de la línia del text de la marca de temps."
},
"effect": {
"label": "Efecte de marca horària",
"description": "Efecte visual per al text de la marca de temps (cap, sòlid, ombra)."
}
},
"best_image_timeout": {
"label": "Temps d'espera de la millor imatge",
"description": "Quant de temps s'espera per a la imatge amb la puntuació de confiança més alta."
},
"mqtt": {
"label": "MQTT",
"description": "Configuració de la publicació d'imatges MQTT.",
"enabled": {
"label": "Envia la imatge",
"description": "Habilita la publicació d'instantànies d'imatges per a objectes als temes MQTT d'aquesta càmera."
},
"timestamp": {
"label": "Afegeix una marca horària",
"description": "Superposa una marca horària a les imatges publicades a MQTT."
},
"bounding_box": {
"label": "Afegeix el quadre de delimitació",
"description": "Dibuixa caixes delimitadores en imatges publicades sobre MQTT."
},
"crop": {
"label": "Retalla la imatge",
"description": "Retalla les imatges publicades a MQTT a la caixa contenidora de l'objecte detectat."
},
"height": {
"label": "Alçada de la imatge",
"description": "Alçada (píxels) per a canviar la mida de les imatges publicades sobre MQTT."
},
"required_zones": {
"label": "Zones requerides",
"description": "Zones que ha d'introduir un objecte perquè es publiqui una imatge MQTT."
},
"quality": {
"label": "Qualitat JPEG",
"description": "Qualitat JPEG per a les imatges publicades a MQTT (0-100)."
}
},
"notifications": {
"label": "Notificacions",
"description": "Configuració per a habilitar i controlar les notificacions d'aquesta càmera.",
"enabled": {
"label": "Habilita les notificacions",
"description": "Activa o desactiva les notificacions d'aquesta càmera."
},
"email": {
"label": "Correu electrònic de notificació",
"description": "Adreça de correu electrònic utilitzada per a notificacions push o requerides per determinats proveïdors de notificacions."
},
"cooldown": {
"label": "Període de reducció",
"description": "Retirada (segons) entre notificacions per evitar els destinataris de correu brossa."
},
"enabled_in_config": {
"label": "Estat de les notificacions originals",
"description": "Indica si les notificacions s'han activat en la configuració estàtica original."
}
},
"onvif": {
"label": "ONVIF",
"description": "Connexió ONVIF i configuració de seguiment automàtic PTZ per a aquesta càmera.",
"host": {
"label": "Servidor ONVIF",
"description": "Host (i esquema opcional) per al servei ONVIF per a aquesta càmera."
},
"port": {
"label": "Port ONVIF",
"description": "Número de port del servei ONVIF."
},
"user": {
"label": "Nom d'usuari ONVIF",
"description": "Nom d'usuari per a l'autenticació ONVIF; alguns dispositius requereixen l'usuari administrador per a ONVIF."
},
"password": {
"label": "Contrasenya ONVIF",
"description": "Contrasenya per a l'autenticació ONVIF."
},
"tls_insecure": {
"label": "Inhabilita la verificació TLS",
"description": "Omet la verificació TLS i desactiva l'autenticació de resum per a ONVIF (no segur; només s'utilitza en xarxes segures)."
},
"autotracking": {
"label": "Aeguiment automàtic",
"description": "Segueix automàticament els objectes en moviment i els manté centrats en el marc utilitzant els moviments de la càmera PTZ.",
"enabled": {
"label": "Habilita el seguiment automàtic",
"description": "Activa o desactiva el seguiment automàtic de la càmera PTZ dels objectes detectats."
},
"calibrate_on_startup": {
"label": "Calibra a l'inici",
"description": "Mesura les velocitats del motor PTZ a l'inici per millorar la precisió del seguiment. Frigate actualitzarà la configuració amb «movtion.weights» després del calibratge."
},
"zooming": {
"label": "Mode de zoom",
"description": "Comportament de zoom de control: desactivat (només pan/tilt), absolut (més compatible) o relatiu (pa/tilt/zoom concurrent)."
},
"zoom_factor": {
"label": "Factor de zoom",
"description": "Controla el nivell d'ampliació dels objectes rastrejats. Els valors més baixos mantenen més escena a la vista; els valors més alts s'apropen, però poden perdre el seguiment. Valors entre 0,1 i 0,75."
},
"track": {
"label": "Objectes rastrejats",
"description": "Llista de tipus d'objectes que haurien d'activar el seguiment automàtic."
},
"required_zones": {
"label": "Zones requerides",
"description": "Els objectes han d'entrar en una d'aquestes zones abans que comenci el seguiment automàtic."
},
"return_preset": {
"label": "Retorna la predefinició",
"description": "Nom predefinit ONVIF configurat al microprogramari de la càmera per tornar després de finalitzar el seguiment."
},
"timeout": {
"label": "Temps d'espera de retorn",
"description": "Espereu tants segons després de perdre el seguiment abans de tornar la càmera a la posició preestablerta."
},
"movement_weights": {
"label": "Pes del moviment",
"description": "Valors de calibratge generats automàticament pel calibratge de la càmera. No modifiquis manualment."
},
"enabled_in_config": {
"label": "Estat de la pista automàtica original",
"description": "Camp intern per a fer el seguiment de si s'ha habilitat el seguiment automàtic a la configuració."
}
},
"ignore_time_mismatch": {
"label": "Ignora el desajust de temps",
"description": "Ignora les diferències de sincronització de temps entre càmera i servidor Frigate per a la comunicació ONVIF."
}
},
"type": {
"label": "Tipus de càmera",
"description": "Tipus de càmera"
},
"ui": {
"label": "Interfície d'usuari de la càmera",
"description": "Mostra l'ordre i la visibilitat d'aquesta càmera a la interfície d'usuari. La comanda afecta el tauler predeterminat. Per a un control més granular, utilitzeu grups de càmera.",
"order": {
"label": "Ordre de la interfície",
"description": "Ordre numèric utilitzat per ordenar la càmera a la interfície d'usuari (taulell de control i llistes per defecte); els nombres més grans apareixen més tard."
},
"dashboard": {
"label": "Mostra a l'interfície d'usuari",
"description": "Estableix si aquesta càmera és visible a tot arreu a la interfície d'usuari de la Frigate. Desactivar això requerirà editar manualment la configuració per tornar a veure aquesta càmera a la interfície d'usuari."
}
},
"webui_url": {
"label": "URL de la càmera",
"description": "URL per visitar la càmera directament des de la pàgina del sistema"
},
"zones": {
"label": "Zones",
"description": "Les zones permeten definir una àrea específica del marc perquè pugueu determinar si un objecte es troba dins d'una àrea determinada.",
"friendly_name": {
"label": "Nom de la zona",
"description": "Un nom fàcil d'utilitzar per a la zona, que es mostra a la interfície d'usuari de la fragata. Si no s'estableix, s'utilitzarà una versió amb format del nom de la zona."
},
"enabled": {
"label": "Habilitat",
"description": "Activa o desactiva aquesta zona. Les zones inhabilitades s'ignoren en temps d'execució."
},
"enabled_in_config": {
"label": "Feu un seguiment de l'estat original de la zona."
},
"filters": {
"label": "Filtres de zona",
"description": "Filtres que s'aplicaran als objectes d'aquesta zona. S'utilitza per reduir falsos positius o restringir quins objectes es consideren presents a la zona.",
"min_area": {
"label": "Àrea mínima de l'objecte",
"description": "Es requereix una àrea de caixa contenidora mínima (píxels o percentatge) per a aquest tipus d'objecte. Pot ser píxels (int) o percentatge (float entre 0,000001 i 0.99)."
},
"max_area": {
"label": "Àrea màxima de l'objecte",
"description": "Es permet l'àrea màxima de la caixa contenidora (píxels o percentatge) per a aquest tipus d'objecte. Pot ser píxels (int) o percentatge (float entre 0,000001 i 0.99)."
},
"min_ratio": {
"label": "Relació mínima d'aspecte",
"description": "Relació mínima d'amplada/alçada requerida per a la casella contenidora a qualificar."
},
"max_ratio": {
"label": "Relació màxima d'aspecte",
"description": "Es permet la relació màxima d'amplada/alçada per a la casella contenidora a qualificar."
},
"threshold": {
"label": "Llindar de confiança",
"description": "Es requereix un llindar de confiança mitjà per a la detecció perquè l'objecte es consideri un veritable positiu."
},
"min_score": {
"label": "Confiança mínima",
"description": "Es requereix una confiança mínima de detecció d'un sol fotograma per a comptar l'objecte."
},
"mask": {
"label": "Màscara de filtre",
"description": "Coordenades de polígon que defineixen on s'aplica aquest filtre dins del marc."
},
"raw_mask": {
"label": "Màscara en brut"
}
},
"objects": {
"description": "Llista de tipus d'objectes (des del mapa d'etiquetes) que poden activar aquesta zona. Pot ser una cadena o una llista de cadenes. Si està buit, es consideraran tots els objectes.",
"label": "Objectes d'activació"
},
"coordinates": {
"label": "Coordenades",
"description": "Coordenades de polígon que defineixen l'àrea de zona. Pot ser una cadena separada per comes o una llista de cadenes de coordenades. Les coordenades han de ser relatives (0-1) o absolutes (antic)."
},
"distances": {
"label": "Distàncies del món real",
"description": "Distàncies opcionals del món real per a cada costat del quadrilàter de la zona, utilitzades per a càlculs de velocitat o distància. Si s'estableix, ha de tenir exactament 4 valors."
},
"inertia": {
"label": "Fotogrames d'inèrcia",
"description": "Nombre de fotogrames consecutius que s'ha de detectar un objecte a la zona abans de considerar-lo present. Ajuda a filtrar les deteccions transitòries."
},
"loitering_time": {
"label": "Segons flotants",
"description": "Nombre de segons que un objecte ha de romandre a la zona a considerar com a errant. Establiu-ho a 0 per a desactivar la detecció de la itinerància."
},
"speed_threshold": {
"label": "Velocitat mínima",
"description": "Velocitat mínima (en unitats del món real si s'estableixen distàncies) necessària perquè un objecte es consideri present a la zona. S'utilitza per a activadors de zona basats en velocitat."
}
},
"enabled_in_config": {
"label": "Estat original de la càmera",
"description": "Feu un seguiment de l'estat original de la càmera."
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,73 +0,0 @@
{
"audio": {
"global": {
"detection": "Detecció global",
"sensitivity": "Sensibilitat global"
},
"cameras": {
"detection": "Detecció",
"sensitivity": "Sensibilitat"
}
},
"timestamp_style": {
"global": {
"appearance": "Aparença global"
},
"cameras": {
"appearance": "Aparença"
}
},
"motion": {
"global": {
"sensitivity": "Sensibilitat global",
"algorithm": "Algorisme global"
},
"cameras": {
"sensitivity": "Sensibilitat",
"algorithm": "Algorisme"
}
},
"snapshots": {
"global": {
"display": "Visualització global"
},
"cameras": {
"display": "Mostra"
}
},
"detect": {
"global": {
"resolution": "Resolució global",
"tracking": "Seguiment global"
},
"cameras": {
"resolution": "Resolució",
"tracking": "Seguiment"
}
},
"objects": {
"global": {
"tracking": "Seguiment global",
"filtering": "Filtratge global"
},
"cameras": {
"tracking": "Seguiment",
"filtering": "Filtra"
}
},
"record": {
"global": {
"retention": "Retenció global",
"events": "Esdeveniments globals"
},
"cameras": {
"retention": "Retenció",
"events": "Esdeveniment"
}
},
"ffmpeg": {
"cameras": {
"cameraFfmpeg": "Arguments específics del FFmpeg"
}
}
}

View File

@ -1,32 +0,0 @@
{
"minimum": "Ha de ser com a mínim {{limit}}",
"maximum": "Ha de ser com a màxim {{limit}}",
"exclusiveMinimum": "Ha de ser més gran que {{limit}}",
"exclusiveMaximum": "Ha de ser inferior a {{limit}}",
"minLength": "Ha de tenir com a mínim {{limit}} caràcters",
"maxLength": "Ha de tenir com a màxim {{limit}} caràcters",
"minItems": "Ha de tenir com a mínim {{limit}} elements",
"maxItems": "Ha de tenir com a màxim {{limit}} elements",
"pattern": "Format no vàlid",
"required": "Aquest camp és obligatori",
"type": "Tipus de valor no vàlid",
"enum": "Ha de ser un dels valors permesos",
"const": "El valor no coincideix amb la constant esperada",
"uniqueItems": "Tots els elements han de ser únics",
"format": "Format no vàlid",
"additionalProperties": "No es permet la propietat desconeguda",
"oneOf": "Ha de coincidir exactament amb un dels esquemes permesos",
"anyOf": "Ha de coincidir almenys amb un dels esquemes permesos",
"proxy": {
"header_map": {
"roleHeaderRequired": "Es requereix la capçalera del rol quan es configuren els mapes de rols."
}
},
"ffmpeg": {
"inputs": {
"rolesUnique": "Cada rol només es pot assignar a un flux d'entrada.",
"detectRequired": "Almenys un flux d'entrada ha de tenir assignat el rol «detecta».",
"hwaccelDetectOnly": "Només el flux d'entrada amb el rol detect pot definir arguments d'acceleració del maquinari."
}
}
}

View File

@ -39,7 +39,7 @@
"surfboard": "Taula de surf", "surfboard": "Taula de surf",
"tennis_racket": "Raqueta de tenis", "tennis_racket": "Raqueta de tenis",
"bottle": "Ampolla", "bottle": "Ampolla",
"plate": "Matrícula", "plate": "Placa",
"wine_glass": "Got de vi", "wine_glass": "Got de vi",
"cup": "Copa", "cup": "Copa",
"fork": "Forquilla", "fork": "Forquilla",

View File

@ -27,7 +27,7 @@
"deleteImageFailed": "No s'ha pogut suprimir: {{errorMessage}}", "deleteImageFailed": "No s'ha pogut suprimir: {{errorMessage}}",
"deleteCategoryFailed": "No s'ha pogut suprimir la classe: {{errorMessage}}", "deleteCategoryFailed": "No s'ha pogut suprimir la classe: {{errorMessage}}",
"categorizeFailed": "No s'ha pogut categoritzar la imatge: {{errorMessage}}", "categorizeFailed": "No s'ha pogut categoritzar la imatge: {{errorMessage}}",
"trainingFailed": "Ha fallat l'entrenament del model. Comproveu els registres de Frigate per a més detalls.", "trainingFailed": "Ha fallat l'entrenament del model. Comproveu els registres de fragata per a més detalls.",
"deleteModelFailed": "No s'ha pogut suprimir el model: {{errorMessage}}", "deleteModelFailed": "No s'ha pogut suprimir el model: {{errorMessage}}",
"updateModelFailed": "No s'ha pogut actualitzar el model: {{errorMessage}}", "updateModelFailed": "No s'ha pogut actualitzar el model: {{errorMessage}}",
"renameCategoryFailed": "No s'ha pogut canviar el nom de la classe: {{errorMessage}}", "renameCategoryFailed": "No s'ha pogut canviar el nom de la classe: {{errorMessage}}",

View File

@ -63,25 +63,5 @@
"normalActivity": "Normal", "normalActivity": "Normal",
"needsReview": "Necessita revisió", "needsReview": "Necessita revisió",
"securityConcern": "Preocupació per la seguretat", "securityConcern": "Preocupació per la seguretat",
"select_all": "Tots", "select_all": "Tots"
"motionSearch": {
"menuItem": "Cerca de moviment",
"openMenu": "Opcions de la càmera"
},
"motionPreviews": {
"menuItem": "Visualitza les vistes prèvies del moviment",
"title": "Vista prèvia del moviment: {{camera}}",
"mobileSettingsTitle": "Configuració de la vista prèvia del moviment",
"mobileSettingsDesc": "Ajusteu la velocitat de reproducció i l'enfosquiment, i trieu una data per a revisar clips només en moviment.",
"dim": "Atenuar",
"dimAria": "Ajusta la intensitat de l'enfosquiment",
"dimDesc": "Incrementa l'enfosquiment per augmentar la visibilitat de l'àrea de moviment.",
"speed": "Velocitat",
"speedAria": "Selecciona la velocitat de reproducció de la vista prèvia",
"speedDesc": "Trieu la rapidesa amb què es reprodueixen els clips de vista prèvia.",
"back": "Enrere",
"empty": "No hi ha cap vista prèvia disponible",
"noPreview": "Vista prèvia no disponible",
"seekAria": "Cerca el reproductor {{camera}} a {{time}}"
}
} }

View File

@ -234,10 +234,6 @@
"downloadCleanSnapshot": { "downloadCleanSnapshot": {
"label": "Descarrega la instantània neta", "label": "Descarrega la instantània neta",
"aria": "Descarrega la instantània neta" "aria": "Descarrega la instantània neta"
},
"debugReplay": {
"label": "Depura la repetició",
"aria": "Mostra aquest objecte rastrejat a la vista de reproducció de depuració"
} }
}, },
"noTrackedObjects": "No s'han trobat objectes rastrejats", "noTrackedObjects": "No s'han trobat objectes rastrejats",
@ -289,7 +285,7 @@
"title": "Configuració d'anotacions", "title": "Configuració d'anotacions",
"showAllZones": { "showAllZones": {
"title": "Mostra totes les Zones", "title": "Mostra totes les Zones",
"desc": "Mostra sempre les zones amb fotogrames on els objectes hagin entrat a la zona." "desc": "Mostra sempre les zones amb marcs on els objectes hagin entrat a la zona."
}, },
"offset": { "offset": {
"label": "Òfset d'Anotació", "label": "Òfset d'Anotació",

View File

@ -11,27 +11,13 @@
}, },
"toast": { "toast": {
"error": { "error": {
"renameExportFailed": "Error al canviar el nom de lexportació: {{errorMessage}}", "renameExportFailed": "Error al canviar el nom de lexportació: {{errorMessage}}"
"assignCaseFailed": "No s'ha pogut actualitzar l'assignació de cas:{{errorMessage}}"
} }
}, },
"tooltip": { "tooltip": {
"shareExport": "Comparteix l'exportació", "shareExport": "Comparteix l'exportació",
"downloadVideo": "Baixa el vídeo", "downloadVideo": "Baixa el vídeo",
"editName": "Edita el nom", "editName": "Edita el nom",
"deleteExport": "Suprimeix l'exportació", "deleteExport": "Suprimeix l'exportació"
"assignToCase": "Afegeix al cas"
},
"headings": {
"cases": "Casos",
"uncategorizedExports": "Exportacions sense categoria"
},
"caseDialog": {
"title": "Afegeix al cas",
"description": "Trieu un cas existent o creeu-ne un de nou.",
"selectLabel": "Cas",
"newCaseOption": "Crea un cas nou",
"nameLabel": "Nom del cas",
"descriptionLabel": "Descripció"
} }
} }

View File

@ -7,20 +7,17 @@
"authentication": "Configuració d'autenticació - Frigate", "authentication": "Configuració d'autenticació - Frigate",
"camera": "Paràmetres de càmera - Frigate", "camera": "Paràmetres de càmera - Frigate",
"masksAndZones": "Editor de màscares i zones - Frigate", "masksAndZones": "Editor de màscares i zones - Frigate",
"general": "Configuració del perfil - Frigate", "general": "Configuració de la interfície d'usuari - Fragata",
"frigatePlus": "Paràmetres de Frigate+ - Frigate", "frigatePlus": "Paràmetres de Frigate+ - Frigate",
"notifications": "Paràmetres de notificació - Frigate", "notifications": "Paràmetres de notificació - Frigate",
"cameraManagement": "Gestionar càmeres - Frigate", "cameraManagement": "Gestionar càmeres - Frigate",
"cameraReview": "Configuració Revisió de Càmeres - Frigate", "cameraReview": "Configuració Revisió de Càmeres - Frigate"
"globalConfig": "Configuració global - Frigate",
"cameraConfig": "Configuració de la càmera - Frigate",
"maintenance": "Manteniment - Frigate"
}, },
"menu": { "menu": {
"ui": "Interfície d'usuari", "ui": "Interfície d'usuari",
"cameras": "Paràmetres de la càmera", "cameras": "Paràmetres de la càmera",
"masksAndZones": "Màscares / Zones", "masksAndZones": "Màscares / Zones",
"motionTuner": "Afinador de moviment", "motionTuner": "Ajust de detecció de moviment",
"users": "Usuaris", "users": "Usuaris",
"notifications": "Notificacions", "notifications": "Notificacions",
"debug": "Depuració", "debug": "Depuració",
@ -29,64 +26,7 @@
"triggers": "Disparadors", "triggers": "Disparadors",
"cameraManagement": "Gestió", "cameraManagement": "Gestió",
"cameraReview": "Revisió", "cameraReview": "Revisió",
"roles": "Rols", "roles": "Rols"
"general": "General",
"globalConfig": "Configuració global",
"system": "Sistema",
"integrations": "Integracions",
"profileSettings": "Configuració del perfil",
"globalDetect": "Detecció d'objectes",
"globalRecording": "Enregistrament",
"globalSnapshots": "Instantànies",
"globalFfmpeg": "FFmpeg",
"globalMotion": "Detecció de moviment",
"globalObjects": "Objectes",
"globalReview": "Revisió",
"globalAudioEvents": "Esdeveniments d'àudio",
"globalLivePlayback": "Reproducció en directe",
"globalTimestampStyle": "Estil de la marca horària",
"systemDatabase": "Base de dades",
"systemTls": "TLS",
"systemAuthentication": "Autenticació",
"systemNetworking": "Xarxa",
"systemProxy": "Proxy",
"systemUi": "UI",
"systemLogging": "Registre",
"systemEnvironmentVariables": "Variables d'entorn",
"systemTelemetry": "Telemetria",
"systemBirdseye": "Birdseye",
"systemFfmpeg": "FFmpeg",
"systemDetectorHardware": "Hardware del detector",
"systemDetectionModel": "Model de detecció",
"systemMqtt": "MQTT",
"integrationSemanticSearch": "Cerca semàntica",
"integrationGenerativeAi": "IA generativa",
"integrationFaceRecognition": "Reconeixement de cares",
"integrationLpr": "Reconeixement de la matrícula",
"integrationObjectClassification": "Classificació de l'objecte",
"integrationAudioTranscription": "Transcripció d'àudio",
"cameraDetect": "Detecció d'objectes",
"cameraFfmpeg": "FFmpeg",
"cameraRecording": "Enregistrament",
"cameraSnapshots": "Instantànies",
"cameraMotion": "Detecció de moviment",
"cameraObjects": "Objectes",
"cameraConfigReview": "Revisió",
"cameraAudioEvents": "Esdeveniments d'àudio",
"cameraAudioTranscription": "Transcripció d'àudio",
"cameraNotifications": "Notificacions",
"cameraLivePlayback": "Reproducció en directe",
"cameraBirdseye": "Birdseye",
"cameraFaceRecognition": "Reconeixement de cares",
"cameraLpr": "Reconeixement de la matrícula",
"cameraMqttConfig": "MQTT",
"cameraOnvif": "ONVIF",
"cameraUi": "UI de la càmera",
"cameraTimestampStyle": "Estil de la marca horària",
"cameraMqtt": "Càmera MQTT",
"maintenance": "Manteniment",
"mediaSync": "Sincronització multimèdia",
"regionGrid": "Quadrícula de la regió"
}, },
"dialog": { "dialog": {
"unsavedChanges": { "unsavedChanges": {
@ -99,7 +39,7 @@
"noCamera": "Cap càmera" "noCamera": "Cap càmera"
}, },
"general": { "general": {
"title": "Configuració del perfil", "title": "Paràmetres de la interfície d'usuari",
"liveDashboard": { "liveDashboard": {
"title": "Panell en directe", "title": "Panell en directe",
"automaticLiveView": { "automaticLiveView": {
@ -265,10 +205,6 @@
"clickDrawPolygon": "Fes click per a dibuixar un polígon a la imatge.", "clickDrawPolygon": "Fes click per a dibuixar un polígon a la imatge.",
"toast": { "toast": {
"success": "S'ha desat la zona ({{zoneName}})." "success": "S'ha desat la zona ({{zoneName}})."
},
"enabled": {
"title": "Habilitat",
"description": "Si aquesta zona està activa i activada al fitxer de configuració. Si està desactivat, no pot ser habilitat per MQTT. Les zones inhabilitades s'ignoren en temps d'execució."
} }
}, },
"filter": { "filter": {
@ -301,12 +237,6 @@
"title": "{{polygonName}} s'ha desat.", "title": "{{polygonName}} s'ha desat.",
"noName": "La màscara de moviment ha estat desada." "noName": "La màscara de moviment ha estat desada."
} }
},
"defaultName": "Màscara de moviment {{number}}",
"name": {
"title": "Nom",
"description": "Un nom opcional per a aquesta màscara de moviment.",
"placeholder": "Introduïu un nom..."
} }
}, },
"objectMasks": { "objectMasks": {
@ -333,16 +263,11 @@
"noName": "La màscara d'objectes ha estat desada." "noName": "La màscara d'objectes ha estat desada."
} }
}, },
"context": "Les màscares de filtratge dobjectes sutilitzen per descartar falsos positius dun tipus dobjecte concret segons la seva ubicació.", "context": "Les màscares de filtratge dobjectes sutilitzen per descartar falsos positius dun tipus dobjecte concret segons la seva ubicació."
"name": {
"title": "Nom",
"description": "Un nom opcional per a aquesta màscara d'objecte.",
"placeholder": "Introduïu un nom..."
}
}, },
"restart_required": "Reinici necessari (canvi de màscares o zones)", "restart_required": "Reinici necessari (canvi de màscares o zones)",
"motionMaskLabel": "Màscara de moviment {{number}}", "motionMaskLabel": "Màscara de moviment {{number}}",
"objectMaskLabel": "Màscara d'objecte {{number}}", "objectMaskLabel": "Màscara d'objecte {{number}} ({{label}})",
"toast": { "toast": {
"success": { "success": {
"copyCoordinates": "S'han copiat les coordenades per a {{polyName}} al porta-retalls." "copyCoordinates": "S'han copiat les coordenades per a {{polyName}} al porta-retalls."
@ -350,13 +275,6 @@
"error": { "error": {
"copyCoordinatesFailed": "No s'han pogut copiar les coordenades al porta-retalls." "copyCoordinatesFailed": "No s'han pogut copiar les coordenades al porta-retalls."
} }
},
"disabledInConfig": "L'element està desactivat al fitxer de configuració",
"masks": {
"enabled": {
"title": "Habilitat",
"description": "Si aquesta màscara està activada al fitxer de configuració. Si està desactivat, no pot ser habilitat per MQTT. Les màscares desactivades s'ignoren en temps d'execució."
}
} }
}, },
"notification": { "notification": {
@ -726,14 +644,7 @@
"error": "No s'han pogut guardar els canvis de configuració: {{errorMessage}}", "error": "No s'han pogut guardar els canvis de configuració: {{errorMessage}}",
"success": "Els paràmetres de Frigate+ han estat desats. Reincia Frigate per aplicar els canvis." "success": "Els paràmetres de Frigate+ han estat desats. Reincia Frigate per aplicar els canvis."
}, },
"restart_required": "Es necessari un reinici (El model de Frigate+ ha cambiat)", "restart_required": "Es necessari un reinici (El model de Frigate+ ha cambiat)"
"description": "Frigate+ és un servei de subscripció que proporciona accés a funcions i capacitats addicionals per a la vostra instància de Frigate, inclosa la capacitat d'utilitzar models de detecció d'objectes personalitzats entrenats en les vostres pròpies dades. Podeu gestionar la configuració del model Frigate+ aquí.",
"cardTitles": {
"api": "API",
"currentModel": "Model actual",
"otherModels": "Altres models",
"configuration": "Configuració"
}
}, },
"enrichments": { "enrichments": {
"semanticSearch": { "semanticSearch": {
@ -754,7 +665,7 @@
"success": "La reindexació ha començat amb èxit.", "success": "La reindexació ha començat amb èxit.",
"label": "Reindexar ara", "label": "Reindexar ara",
"confirmTitle": "Confirmar la reindexació", "confirmTitle": "Confirmar la reindexació",
"desc": "La reindexació regenerarà les incrustacions per a tots els objectes rastrejats. Aquest procés s'executa en segon pla i pot treure el màxim de la CPU i prendre una quantitat de temps raonable depenent del nombre d'objectes rastrejats que tingueu.", "desc": "La reindexació regenerarà les incrustacions (embeddings) de tots els objectes seguits. Aquest procés sexecuta en segon pla i pot arribar a saturar la CPU, així com trigar una bona estona depenent del nombre dobjectes seguits que tinguis.",
"confirmDesc": "Estàs segur que vols reindexar totes les incrustacions (embeddings) dels objectes seguits? Aquest procés sexecutarà en segon pla, però pot arribar a saturar la CPU i trigar bastant temps. Pots seguir-ne el progrés a la pàgina dExplora.", "confirmDesc": "Estàs segur que vols reindexar totes les incrustacions (embeddings) dels objectes seguits? Aquest procés sexecutarà en segon pla, però pot arribar a saturar la CPU i trigar bastant temps. Pots seguir-ne el progrés a la pàgina dExplora.",
"alreadyInProgress": "La reindexació ja està en curs.", "alreadyInProgress": "La reindexació ja està en curs.",
"error": "Error en iniciar la reindexació: {{errorMessage}}" "error": "Error en iniciar la reindexació: {{errorMessage}}"
@ -1270,12 +1181,7 @@
"backToSettings": "Torna a la configuració de la càmera", "backToSettings": "Torna a la configuració de la càmera",
"streams": { "streams": {
"title": "Habilita / Inhabilita les càmeres", "title": "Habilita / Inhabilita les càmeres",
"desc": "Inhabilita temporalment una càmera fins que es reiniciï la fragata. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles.<br /> <em>Nota: això no desactiva les retransmissions de go2rtc.</em>", "desc": "Inhabilita temporalment una càmera fins que es reiniciï la fragata. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles.<br /> <em>Nota: això no desactiva les retransmissions de go2rtc.</em>"
"enableLabel": "Càmeres habilitades",
"enableDesc": "Inhabilita temporalment una càmera habilitada fins que es reiniciï Frigate. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles.<br /> <em>Nota: això no desactiva les retransmissions de go2rtc.</em>",
"disableLabel": "Càmeres inhabilitades",
"disableDesc": "Habilita una càmera que actualment no és visible a la interfície d'usuari i està desactivada a la configuració. Es requereix un reinici de Frigate després d'activar-la.",
"enableSuccess": "{{cameraName}} activat a la configuració. Reinicia Frigate per aplicar els canvis."
}, },
"cameraConfig": { "cameraConfig": {
"add": "Afegeix una càmera", "add": "Afegeix una càmera",
@ -1305,18 +1211,6 @@
"toast": { "toast": {
"success": "La càmera {{cameraName}} s'ha desat correctament" "success": "La càmera {{cameraName}} s'ha desat correctament"
} }
},
"deleteCamera": "Suprimeix la càmera",
"deleteCameraDialog": {
"title": "Suprimeix la càmera",
"description": "Suprimir una càmera eliminarà permanentment tots els enregistraments, els objectes rastrejats i la configuració d'aquesta càmera. Qualsevol flux go2rtc associat amb aquesta càmera encara pot haver de ser eliminat manualment.",
"selectPlaceholder": "Trieu la càmera...",
"confirmTitle": "N'estàs segur?",
"confirmWarning": "Suprimir <strong>{{cameraName}}</strong> no es pot desfer.",
"deleteExports": "Elimina també les exportacions d'aquesta càmera",
"confirmButton": "Suprimeix permanentment",
"success": "La càmera {{cameraName}} s'ha suprimit correctament",
"error": "No s'ha pogut suprimir la càmera {{cameraName}}"
} }
}, },
"cameraReview": { "cameraReview": {
@ -1342,7 +1236,7 @@
"selectDetectionsZones": "Selecció de zones per a les deteccions", "selectDetectionsZones": "Selecció de zones per a les deteccions",
"limitDetections": "Limita les deteccions a zones específiques", "limitDetections": "Limita les deteccions a zones específiques",
"toast": { "toast": {
"success": "S'ha desat la configuració de la classificació de la revisió. Reinicia Frigate per aplicar canvis." "success": "S'ha desat la configuració de la classificació de la revisió. Reinicia la fragata per aplicar canvis."
}, },
"unsavedChanges": "Paràmetres de classificació de revisions sense desar per {{camera}}", "unsavedChanges": "Paràmetres de classificació de revisions sense desar per {{camera}}",
"objectAlertsTips": "Totes els objectes {{alertsLabels}} de {{cameraName}} es mostraran com avisos.", "objectAlertsTips": "Totes els objectes {{alertsLabels}} de {{cameraName}} es mostraran com avisos.",
@ -1355,265 +1249,5 @@
} }
}, },
"title": "Paràmetres de Revisió de la Càmera" "title": "Paràmetres de Revisió de la Càmera"
}, }
"saveAllPreview": {
"title": "Canvis a desar",
"triggerLabel": "Revisa els canvis pendents",
"empty": "No hi ha canvis pendents.",
"scope": {
"label": "Àmbit",
"global": "Global",
"camera": "Càmara:{{cameraName}}"
},
"field": {
"label": "Camp"
},
"value": {
"label": "Valor nou",
"reset": "Restableix"
}
},
"detectionModel": {
"plusActive": {
"title": "Gestió del model Frigate+",
"label": "Font del model actual",
"description": "Aquesta instància està executant un model Frigate+. Seleccioneu o canvieu el vostre model a la configuració de Frigate+.",
"goToFrigatePlus": "Ves a la configuració de Frigate+",
"showModelForm": "Configuració manual d'un model"
}
},
"maintenance": {
"title": "Manteniment",
"sync": {
"title": "Sincronització multimèdia",
"desc": "Frigate netejarà periòdicament els mitjans en un horari regular segons la configuració de la seva retenció. És normal veure alguns arxius orfes mentre corre Frigate. Utilitzeu aquesta característica per eliminar fitxers multimèdia orfes del disc que ja no estan referenciats a la base de dades.",
"started": "S'ha iniciat la sincronització del mitjà.",
"alreadyRunning": "Ja s'està executant una tasca de sincronització",
"error": "No s'ha pogut iniciar la sincronització",
"currentStatus": "Estat",
"jobId": "ID de la tasca",
"startTime": "Hora d'inici",
"endTime": "Hora final",
"statusLabel": "Estat",
"results": "Resultats",
"errorLabel": "Error",
"mediaTypes": "Tipus de suport",
"allMedia": "Tots els suports",
"dryRun": "Executa en sec",
"dryRunEnabled": "No s'eliminarà cap fitxer",
"dryRunDisabled": "S'eliminaran els fitxers",
"force": "Força",
"forceDesc": "Evita el llindar de seguretat i completa la sincronització fins i tot si més del 50% dels fitxers s'eliminarien.",
"running": "Sincronització en execució...",
"start": "Inicia la sincronització",
"inProgress": "La sincronització està en curs. Aquesta pàgina està desactivada.",
"status": {
"queued": "En cua",
"running": "En execució",
"completed": "Completat",
"failed": "Ha fallat",
"notRunning": "No s'està executant"
},
"resultsFields": {
"filesChecked": "Fitxers comprovats",
"orphansFound": "Orfes trobades",
"orphansDeleted": "Orfes eliminats",
"aborted": "Avortat. La supressió superaria el llindar de seguretat.",
"error": "Error",
"totals": "Totals"
},
"event_snapshots": "Instantànies de l'objecte rastrejat",
"event_thumbnails": "Miniatures d'objecte rastrejat",
"review_thumbnails": "Revisa les miniatures",
"previews": "Previsualitzacions",
"exports": "Exporta",
"recordings": "Enregistraments"
},
"regionGrid": {
"title": "Quadrícula de la regió",
"desc": "La quadrícula de regions és una optimització que aprèn on solen aparèixer objectes de diferents mides en el camp de visió de cada càmera. Frigate utilitza aquestes dades per detectar regions de mida eficient. La quadrícula es construeix automàticament amb el temps a partir de dades d'objectes rastrejats.",
"clear": "Neteja la quadrícula de la regió",
"clearConfirmTitle": "Neteja la quadrícula de la regió",
"clearConfirmDesc": "No es recomana netejar la quadrícula de la regió tret que hagi canviat recentment la mida del model del detector o hagi canviat la posició física de la càmera i tingui problemes de seguiment d'objectes. La quadrícula es reconstruirà automàticament amb el temps a mesura que els objectes siguin rastrejats. Es requereix un reinici de la fragata perquè els canvis tinguin efecte.",
"clearSuccess": "La quadrícula de la regió s'ha netejat correctament",
"clearError": "Ha fallat en netejar la graella de la regió",
"restartRequired": "Cal reiniciar per a que els canvis de la quadrícula de la regió tinguin efecte"
}
},
"configForm": {
"global": {
"title": "Configuració global",
"description": "Aquestes opcions de configuració s'apliquen a totes les càmeres, llevat que se substitueixin en la configuració específica de la càmera."
},
"camera": {
"title": "Configuració de la càmera",
"description": "Aquests paràmetres només s'apliquen a aquesta càmera i substitueixen els paràmetres globals."
},
"advancedSettingsCount": "Configuració avançada ({{count}})",
"advancedCount": "Avançat ({{count}})",
"showAdvanced": "Mostra la configuració avançada",
"tabs": {
"sharedDefaults": "Per defecte compartit",
"system": "Sistema",
"integrations": "Integracions"
},
"additionalProperties": {
"keyLabel": "Clau",
"valueLabel": "Valor",
"keyPlaceholder": "Nou valor",
"remove": "Elimina"
},
"timezone": {
"defaultOption": "Utilitza la zona horària del navegador"
},
"roleMap": {
"empty": "No hi ha assignacions de rols",
"roleLabel": "Rol",
"groupsLabel": "Grups",
"addMapping": "Afegeix un mapatge de rol",
"remove": "Elimina"
},
"ffmpegArgs": {
"preset": "Predefinit",
"manual": "Arguments manuals",
"inherit": "Hereta de la configuració de la càmera",
"selectPreset": "Selecció de valors predefinits",
"manualPlaceholder": "ntroduïu els arguments FFmpeg"
},
"cameraInputs": {
"itemTitle": "Flux {{index}}"
},
"restartRequiredField": "Reinicia requerit",
"restartRequiredFooter": "S'ha canviat la configuració - es requereix reiniciar",
"sections": {
"detect": "Detecció",
"record": "Enregistrament",
"snapshots": "Instantànies",
"motion": "Moviment",
"objects": "Objectes",
"review": "Revisió",
"audio": "Àudio",
"notifications": "Notificacions",
"live": "Vista en viu",
"timestamp_style": "Marques temporals",
"mqtt": "MQTT",
"database": "Base de dades",
"telemetry": "Telemetria",
"auth": "Autenticació",
"tls": "TLS",
"proxy": "Proxy",
"go2rtc": "go2rtc",
"ffmpeg": "FFmpeg",
"detectors": "Detectors",
"model": "Model",
"semantic_search": "Cerca semàntica",
"genai": "GenAI",
"face_recognition": "Reconeixement de cares",
"lpr": "Reconeixement de matrícules",
"birdseye": "Birdseye"
},
"detect": {
"title": "Configuració de detecció"
},
"detectors": {
"title": "Configuració del detector",
"singleType": "Només es permet un detector {{type}}.",
"keyRequired": "Es requereix el nom del detector.",
"keyDuplicate": "El nom del detector ja existeix.",
"noSchema": "No hi ha esquemes de detector disponibles.",
"none": "No s'ha configurat cap instància de detector.",
"add": "Afegeix un detector"
},
"record": {
"title": "Configuració de l'enregistrament"
},
"snapshots": {
"title": "Configuració de la instantània"
},
"motion": {
"title": "Configuració del moviment"
},
"objects": {
"title": "Configuració de l'objecte"
},
"audioLabels": {
"summary": "{{count}} etiquetes d'àudio seleccionades",
"empty": "No hi ha etiquetes d'àudio disponibles"
},
"objectLabels": {
"summary": "{{count}} tipus d'objectes seleccionats",
"empty": "No hi ha cap etiqueta d'objecte disponible"
},
"filters": {
"objectFieldLabel": "{{field}} per {{label}}"
},
"zoneNames": {
"summary": "{{count}} seleccionats",
"empty": "No hi ha zones disponibles"
},
"inputRoles": {
"summary": "{{count}} rols seleccionats",
"empty": "No hi ha cap rol disponible",
"options": {
"detect": "Detecta",
"record": "Enregistrament",
"audio": "Àudio"
}
},
"review": {
"title": "Configuració de la revisió"
},
"audio": {
"title": "Configuració de l'àudio"
},
"notifications": {
"title": "Configuració de notificacions"
},
"live": {
"title": "Configuració de la vista en viu"
},
"timestamp_style": {
"title": "Configuració de la marca horària"
},
"searchPlaceholder": "Cerca..."
},
"globalConfig": {
"title": "Configuració global",
"description": "Configura la configuració global que s'aplica a totes les càmeres llevat que se sobreescriti.",
"toast": {
"success": "La configuració global s'ha desat correctament",
"error": "No s'ha pogut desar la configuració global",
"validationError": "Ha fallat la validació"
}
},
"cameraConfig": {
"title": "Configuració de la càmera",
"description": "Configura la configuració per a les càmeres individuals. La configuració substitueix els valors predeterminats globals.",
"overriddenBadge": "Sobreescrit",
"resetToGlobal": "Restableix a global",
"toast": {
"success": "La configuració de la càmera s'ha desat correctament",
"error": "Ha fallat en desar la configuració de la càmera"
}
},
"toast": {
"success": "La configuració s'ha desat correctament",
"successRestartRequired": "La configuració s'ha desat correctament. Reinicia Frigate per aplicar els canvis.",
"error": "No s'ha pogut desar la configuració",
"validationError": "Ha fallat la validació: {{message}}",
"resetSuccess": "Restableix als valors predeterminats globals",
"resetError": "No s'ha pogut restablir la configuració",
"saveAllSuccess_one": "S'ha desat la secció {{count}} correctament.",
"saveAllSuccess_many": "Totes les {{count}} seccions s'han desat correctament.",
"saveAllSuccess_other": "Totes les {{count}} seccions s'han desat correctament.",
"saveAllPartial_one": "{{successCount}} de la secció {{totalCount}} desada. {{failCount}} ha fallat.",
"saveAllPartial_many": "{{successCount}} de {{totalCount}} seccions desades. {{failCount}} ha fallat.",
"saveAllPartial_other": "{{successCount}} de {{totalCount}} seccions desades. {{failCount}} ha fallat.",
"saveAllFailure": "Ha fallat en desar totes les seccions.",
"applied": "La configuració s'ha aplicat correctament"
},
"unsavedChanges": "Teniu canvis sense desar",
"confirmReset": "Confirma el restabliment",
"resetToDefaultDescription": "Això restablirà tots els paràmetres d'aquesta secció als seus valors predeterminats. Aquesta acció no es pot desfer.",
"resetToGlobalDescription": "Això restablirà la configuració d'aquesta secció als valors predeterminats globals. Aquesta acció no es pot desfer."
} }

View File

@ -6,8 +6,7 @@
"logs": { "logs": {
"frigate": "Registres de Frigate - Frigate", "frigate": "Registres de Frigate - Frigate",
"go2rtc": "Registres de Go2RTC - Frigate", "go2rtc": "Registres de Go2RTC - Frigate",
"nginx": "Registres de Nginix - Frigate", "nginx": "Registres de Nginix - Frigate"
"websocket": "Registres de missatges - Frigate"
}, },
"enrichments": "Estadístiques complementàries - Frigate" "enrichments": "Estadístiques complementàries - Frigate"
}, },
@ -34,32 +33,6 @@
"fetchingLogsFailed": "Error al obtenir els registres: {{errorMessage}}", "fetchingLogsFailed": "Error al obtenir els registres: {{errorMessage}}",
"whileStreamingLogs": "Error en la transmissió dels registres: {{errorMessage}}" "whileStreamingLogs": "Error en la transmissió dels registres: {{errorMessage}}"
} }
},
"websocket": {
"label": "Missatges",
"pause": "Pausa",
"resume": "Reprèn",
"clear": "Neteja",
"filter": {
"all": "Tots els temes",
"topics": "Temes",
"events": "Esdeveniment",
"reviews": "Revisions",
"classification": "Classificació",
"face_recognition": "Reconeixement facial",
"lpr": "LPR",
"camera_activity": "Activitat de la càmera",
"system": "Sistema",
"camera": "Càmara",
"all_cameras": "Totes les càmeres",
"cameras_count_one": "{{count}} càmera",
"cameras_count_other": "{{count}} Càmeres"
},
"empty": "Encara no s'ha capturat cap missatge",
"count": "{{count}} missatges",
"expanded": {
"payload": "Payload"
}
} }
}, },
"general": { "general": {
@ -107,10 +80,8 @@
"intelGpuWarning": { "intelGpuWarning": {
"title": "Avís d'estadístiques de la GPU d'Intel", "title": "Avís d'estadístiques de la GPU d'Intel",
"message": "Estadístiques de GPU no disponibles", "message": "Estadístiques de GPU no disponibles",
"description": "Aquest és un error conegut en les eines d'informació de les estadístiques de GPU d'Intel (intel.gpu.top) on es trencarà i retornarà repetidament un ús de GPU del 0% fins i tot en els casos en què l'acceleració del maquinari i la detecció d'objectes s'executen correctament a la (i)GPU. Això no és un error de Frigate. Podeu reiniciar l'amfitrió per a corregir temporalment el problema i confirmar que la GPU funciona correctament. Això no afecta el rendiment." "description": "Aquest és un error conegut en les eines d'informació de les estadístiques de GPU d'Intel (intel.gpu.top) on es trencarà i retornarà repetidament un ús de GPU del 0% fins i tot en els casos en què l'acceleració del maquinari i la detecció d'objectes s'executen correctament a la (i)GPU. Això no és un error de fragata. Podeu reiniciar l'amfitrió per a corregir temporalment el problema i confirmar que la GPU funciona correctament. Això no afecta el rendiment."
}, }
"gpuTemperature": "Temperatura de la GPU",
"npuTemperature": "Temperatura NPU"
}, },
"otherProcesses": { "otherProcesses": {
"title": "Altres processos", "title": "Altres processos",
@ -194,17 +165,6 @@
"error": { "error": {
"unableToProbeCamera": "No s'ha pogut sondejar la càmera: {{errorMessage}}" "unableToProbeCamera": "No s'ha pogut sondejar la càmera: {{errorMessage}}"
} }
},
"connectionQuality": {
"title": "Qualitat de la connexió",
"excellent": "Excel·lent",
"fair": "Fira",
"poor": "Pobre",
"unusable": "No utilitzable",
"fps": "FPS",
"expectedFps": "FPS esperat",
"reconnectsLastHour": "Reconnecta (última hora)",
"stallsLastHour": "Parades (última hora)"
} }
}, },
"lastRefreshed": "Darrera actualització: ", "lastRefreshed": "Darrera actualització: ",
@ -216,8 +176,7 @@
"detectHighCpuUsage": "{{camera}} te un ús elevat de CPU per la detecció ({{detectAvg}}%)", "detectHighCpuUsage": "{{camera}} te un ús elevat de CPU per la detecció ({{detectAvg}}%)",
"detectIsVerySlow": "{{detect}} és molt lent ({{speed}} ms)", "detectIsVerySlow": "{{detect}} és molt lent ({{speed}} ms)",
"detectIsSlow": "{{detect}} és lent ({{speed}} ms)", "detectIsSlow": "{{detect}} és lent ({{speed}} ms)",
"shmTooLow": "/dev/shm directori ({{total}} MB) hauria de ser incrementat com a mínim {{min}} MB.", "shmTooLow": "/dev/shm directori ({{total}} MB) hauria de ser incrementat com a mínim {{min}} MB."
"debugReplayActive": "La sessió de repetició de depuració està activa"
}, },
"enrichments": { "enrichments": {
"title": "Enriquiments", "title": "Enriquiments",

View File

@ -133,7 +133,7 @@
}, },
"unit": { "unit": {
"speed": { "speed": {
"kph": "km/h", "kph": "Km/h",
"mph": "míle/h" "mph": "míle/h"
}, },
"length": { "length": {
@ -177,7 +177,7 @@
"fi": "Suomi (Finština)", "fi": "Suomi (Finština)",
"sk": "Slovenčina (Slovenština)", "sk": "Slovenčina (Slovenština)",
"withSystem": { "withSystem": {
"label": "Použít systémové nastavení jazyka" "label": "Použít systémové nastavení pro jazyk"
}, },
"zhCN": "简体中文 (Zjednodušená čínština)", "zhCN": "简体中文 (Zjednodušená čínština)",
"es": "Español (Španělština)", "es": "Español (Španělština)",
@ -205,15 +205,14 @@
"pl": "Polski (Polština)", "pl": "Polski (Polština)",
"th": "ไทย (Thaiština)", "th": "ไทย (Thaiština)",
"ca": "Català (Katalánština)", "ca": "Català (Katalánština)",
"sl": "Slovinština (Slovinština)", "sl": "Slovinština (Slovinsko)",
"ptBR": "Português brasileiro (Brazilská Portugalština)", "ptBR": "Português brasileiro (Brazilian Portuguese)",
"sr": "Српски (Srbština)", "sr": "Српски (Serbian)",
"lt": "Lietuvių (Litevština)", "lt": "Lietuvių (Lithuanian)",
"bg": "Български (Bulharština)", "bg": "Български (Bulgarian)",
"gl": "Galego (Galicijština)", "gl": "Galego (Galician)",
"id": "Bahasa Indonesia (Indonéština)", "id": "Bahasa Indonesia (Indonesian)",
"ur": "اردو (Urdština)", "ur": "اردو (Urdu)"
"hr": "Hrvatski (Chorvatština)"
}, },
"theme": { "theme": {
"highcontrast": "Vysoký kontrast", "highcontrast": "Vysoký kontrast",

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -123,18 +123,7 @@
"on": "AN", "on": "AN",
"suspended": "Pausierte", "suspended": "Pausierte",
"unsuspended": "fortsetzen", "unsuspended": "fortsetzen",
"continue": "Weiter", "continue": "Weiter"
"add": "Hinzufügen",
"applying": "Wird angewendet…",
"undo": "Rückgängig",
"copiedToClipboard": "In die Zwischenablage kopiert",
"modified": "Verändert",
"overridden": "Überschrieben",
"resetToGlobal": "Auf Global zurückgesetzen",
"resetToDefault": "Auf Werkseinstellungen zurücksetzten",
"saveAll": "Alle speichern",
"savingAll": "Alle werden gespeichert…",
"undoAll": "Alle rückgängig"
}, },
"label": { "label": {
"back": "Zurück", "back": "Zurück",

View File

@ -74,11 +74,7 @@
"saveExport": "Export speichern", "saveExport": "Export speichern",
"previewExport": "Exportvorschau" "previewExport": "Exportvorschau"
}, },
"export": "Exportieren", "export": "Exportieren"
"case": {
"label": "Fall",
"placeholder": "Einen Fall auswählen"
}
}, },
"streaming": { "streaming": {
"restreaming": { "restreaming": {

View File

@ -1,81 +0,0 @@
{
"label": "KameraEinstellungen",
"name": {
"label": "Name der Kamera",
"description": "Kameraname ist erforderlich"
},
"enabled": {
"label": "Aktiviert",
"description": "Aktiviert"
},
"audio": {
"label": "Audioereignisse",
"description": "Einstellungen für audiobasierte Ereigniserkennung für diese Kamera.",
"enabled": {
"label": "Aktivieren der Audioerkennung",
"description": "Aktivieren / Deaktivieren der audiobasierten Ereigniserkennung für diese Kamera."
},
"min_volume": {
"label": "Mindestlautstärke",
"description": "Mindest-RMS-Lautstärkeschwelle, die für die Audioerkennung erforderlich ist; niedrigere Werte erhöhen die Empfindlichkeit (z. B. 200 hoch, 500 mittel, 1000 niedrig)."
},
"listen": {
"description": "Liste der zu erkennenden Audioereignisse (z.B: bellen, Feueralarm, schreien, sprechen, rufen).",
"label": "Hörtypen"
},
"filters": {
"label": "Audiofilter",
"description": "Filtereinstellungen pro Audiotyp, wie z. B. Konfidenzschwellenwerte, die zur Reduzierung von Fehlalarmen verwendet werden."
},
"max_not_heard": {
"label": "Zeitüberschreitung beendet",
"description": "Anzahl der Sekunden ohne den konfigurierten Audiotyp, bevor das Audioereignis beendet wird."
},
"enabled_in_config": {
"label": "Ursprünglicher Audiozustand",
"description": "Gibt an, ob die Audioerkennung ursprünglich in der statischen Konfigurationsdatei aktiviert war."
},
"num_threads": {
"label": "Erkennungsthreads",
"description": "Anzahl der Threads, die für die Audioerkennungsverarbeitung verwendet werden sollen."
}
},
"friendly_name": {
"label": "Anzeigename",
"description": "Kamera-Anzeigename in der Frigate-Benutzeroberfläche"
},
"audio_transcription": {
"label": "Audio-Transkription",
"description": "Einstellungen für Live- und Sprach-Audio-Transkription, die für Veranstaltungen und Live-Untertitel verwendet werden.",
"enabled": {
"label": "Transkription aktivieren",
"description": "Aktivieren oder deaktivieren Sie die manuell ausgelöste Transkription von Audioereignissen."
},
"enabled_in_config": {
"label": "Ursprünglicher Transkriptionszustand"
},
"live_enabled": {
"label": "Live-Transkription",
"description": "Aktivieren Sie die Live-Transkription für Audio, sobald es empfangen wird."
}
},
"birdseye": {
"label": "Birdseye",
"description": "Einstellungen für die Birdseye-Kompositansicht, die mehrere Kamerafeeds zu einem einzigen Layout zusammenfasst.",
"enabled": {
"label": "Birdseye aktivieren",
"description": "Aktivieren oder deaktivieren der Birdseye-Funktion."
},
"mode": {
"label": "Verfolgungsmodus",
"description": "Modus zum Einbeziehen von Kameras in Birdseye: „Objekte“, „Bewegung“ oder „kontinuierlich“."
},
"order": {
"label": "Position",
"description": "Numerische Position, die die Reihenfolge der Kamera im Birdseye-Layout steuert."
}
},
"detect": {
"label": "Objekterkennung"
}
}

View File

@ -1,138 +0,0 @@
{
"version": {
"label": "Aktuelle Version der Konfiguration",
"description": "Die Version Numerisch oder als Zeichenketten der aktiven Konfiguration, um Migrationen oder Formatänderungen zu erkennen."
},
"safe_mode": {
"label": "abgesicherter Modus",
"description": "Wenn aktiviert, starte Frigate im abgesicherten Modus mit reduzierten Features für die Fehlersuche."
},
"audio": {
"label": "Audioereignisse",
"enabled": {
"label": "Aktivieren der Audioerkennung"
},
"min_volume": {
"label": "Mindestlautstärke",
"description": "Mindest-RMS-Lautstärkeschwelle, die für die Audioerkennung erforderlich ist; niedrigere Werte erhöhen die Empfindlichkeit (z. B. 200 hoch, 500 mittel, 1000 niedrig)."
},
"listen": {
"description": "Liste der zu erkennenden Audioereignisse (z.B: bellen, Feueralarm, schreien, sprechen, rufen).",
"label": "Hörtypen"
},
"filters": {
"label": "Audiofilter",
"description": "Filtereinstellungen pro Audiotyp, wie z. B. Konfidenzschwellenwerte, die zur Reduzierung von Fehlalarmen verwendet werden."
},
"max_not_heard": {
"label": "Zeitüberschreitung beendet",
"description": "Anzahl der Sekunden ohne den konfigurierten Audiotyp, bevor das Audioereignis beendet wird."
},
"enabled_in_config": {
"label": "Ursprünglicher Audiozustand",
"description": "Gibt an, ob die Audioerkennung ursprünglich in der statischen Konfigurationsdatei aktiviert war."
},
"num_threads": {
"label": "Erkennungsthreads",
"description": "Anzahl der Threads, die für die Audioerkennungsverarbeitung verwendet werden sollen."
}
},
"environment_vars": {
"label": "Umgebungsvariablen",
"description": "Schlüssel-/Wertpaare für Umgebungsvariablen des Frigate-Prozesses in Home Assistant OS. Nicht-HAOS Benutzer müssen anstatt dessen Docker Umgebungsvariablen nutzen."
},
"logger": {
"label": "Protokollierung",
"description": "Steuert die Standard-Protokollierungsausführlichkeit und Überschreibungen der Protokollierungsstufe pro Komponente.",
"default": {
"label": "Loglevel",
"description": "Standardmäßiges globales Log Level (Debug, Info, Warnung, Fehler)."
},
"logs": {
"label": "Prozessspezifisches Log Level",
"description": "Überschreiben der Protokollierungsstufe pro Komponente, um die Ausführlichkeit für bestimmte Module zu erhöhen oder zu verringern."
}
},
"auth": {
"label": "Authentifizierung",
"description": "Einstellungen für die Authentifizierung und Sitzungen, einschließlich Optionen für Cookies und Limits.",
"enabled": {
"label": "Authentifizierung aktivieren",
"description": "Aktivierung native Authentifizierung für Frigate UI."
},
"reset_admin_password": {
"label": "Zurücksetzen vom Admin Passwort",
"description": "Wenn wahr, wird das Passwort beim nächsten start zurückgesetzt und das neue Passwort steht in den Logs."
},
"cookie_name": {
"label": "JWT cookie Name",
"description": "Name des Cookies, das zum Speichern des JWT-Tokens für die native Authentifizierung verwendet wird."
},
"cookie_secure": {
"label": "Sicheres Cookie-Flag",
"description": "Setzen Sie das Sicherheitsflag im Authentifizierungs-Cookie; sollte bei Verwendung von TLS auf „true“ gesetzt sein."
},
"session_length": {
"label": "Sitzungssdauer",
"description": "Sitzungsdauer in Sekunden für JWT-basierte Sitzungen."
},
"refresh_time": {
"label": "Sitzung aktualisieren",
"description": "Wenn eine Sitzung innerhalb dieser Sekunden abläuft, aktualisieren Sie sie wieder auf ihre volle Länge."
},
"failed_login_rate_limit": {
"label": "Fehlgeschlagene Anmeldeversuche",
"description": "Begrenzungsregeln für fehlgeschlagene Anmeldeversuche zur Reduzierung von Brute-Force-Angriffen."
},
"trusted_proxies": {
"label": "Vertrauenswürdige Proxys",
"description": "Liste vertrauenswürdiger Proxy-IPs, die bei der Ermittlung der Client-IP für die Ratenbegrenzung verwendet werden."
},
"hash_iterations": {
"label": "Hash-Iterationen",
"description": "Anzahl der PBKDF2-SHA256-Iterationen, die beim Hashing von Benutzerkennwörtern verwendet werden sollen."
},
"roles": {
"label": "Rollen zuweisen",
"description": "Ordnen Sie Rollen zu Kameralisten zu. Eine leere Liste gewährt der Rolle Zugriff auf alle Kameras."
},
"admin_first_time_login": {
"label": "Erstmalige Admin-Markierung",
"description": "Wenn dies zutrifft, zeigt die Benutzeroberfläche möglicherweise einen Hilfe-Link auf der Anmeldeseite an, der Benutzer darüber informiert, wie sie sich nach einer Zurücksetzung des Administratorpassworts anmelden können. "
}
},
"audio_transcription": {
"label": "Audio-Transkription",
"description": "Einstellungen für Live- und Sprach-Audio-Transkription, die für Veranstaltungen und Live-Untertitel verwendet werden.",
"live_enabled": {
"label": "Live-Transkription",
"description": "Aktivieren Sie die Live-Transkription für Audio, sobald es empfangen wird."
}
},
"birdseye": {
"label": "Birdseye",
"description": "Einstellungen für die Birdseye-Kompositansicht, die mehrere Kamerafeeds zu einem einzigen Layout zusammenfasst.",
"enabled": {
"label": "Birdseye aktivieren",
"description": "Aktivieren oder deaktivieren der Birdseye-Funktion."
},
"mode": {
"label": "Verfolgungsmodus",
"description": "Modus zum Einbeziehen von Kameras in Birdseye: „Objekte“, „Bewegung“ oder „kontinuierlich“."
},
"order": {
"label": "Position",
"description": "Numerische Position, die die Reihenfolge der Kamera im Birdseye-Layout steuert."
}
},
"database": {
"label": "Datenbank",
"description": "Einstellungen für die SQLite-Datenbank, die von Frigate zum Speichern von verfolgten Objekten und Aufzeichnungsmetadaten verwendet wird.",
"path": {
"label": "Pfad zur Datenbank"
}
},
"detect": {
"label": "Objekterkennung"
}
}

View File

@ -1,73 +0,0 @@
{
"audio": {
"global": {
"detection": "Globale Erkennung",
"sensitivity": "Globale Empfindlichkeit"
},
"cameras": {
"detection": "Erkennung",
"sensitivity": "Empfindlichkeit"
}
},
"timestamp_style": {
"global": {
"appearance": "Globale Darstellung"
},
"cameras": {
"appearance": "Erscheinungsbild"
}
},
"motion": {
"global": {
"sensitivity": "Globale Empfindlichkeit",
"algorithm": "Globaler Algorithmus"
},
"cameras": {
"sensitivity": "Genauhigkeit",
"algorithm": "Algorithmus"
}
},
"snapshots": {
"global": {
"display": "Globale Anzeige"
},
"cameras": {
"display": "Anzeige"
}
},
"detect": {
"global": {
"resolution": "Globale Auflösung",
"tracking": "Globale Verfolgung"
},
"cameras": {
"resolution": "Auflösung",
"tracking": "Verfolgung"
}
},
"objects": {
"global": {
"tracking": "Globale Verfolgung",
"filtering": "Globaler Filter"
},
"cameras": {
"tracking": "Verfolgung",
"filtering": "Filtern"
}
},
"record": {
"global": {
"retention": "Globale Bindung",
"events": "Globale Ereignisse"
},
"cameras": {
"retention": "Bindung",
"events": "Events"
}
},
"ffmpeg": {
"cameras": {
"cameraFfmpeg": "Kameraspezifische FFmpeg-Argumente"
}
}
}

View File

@ -1,32 +0,0 @@
{
"maximum": "Darf nicht größer sein als {{limit}}",
"minimum": "Darf nicht kleiner sein als {{limit}}",
"exclusiveMinimum": "Muss größer sein als {{limit}}",
"minLength": "Muss mindestens {{limit}} Zeichen lang sein",
"maxLength": "Muss maximal {{limit}} Zeichen lang sein",
"minItems": "Muss mindestens {{limit}} mal vorkommen",
"exclusiveMaximum": "Muss kleiner sein als {{limit}}",
"maxItems": "Muss maximal {{limit}} mal vorkommen",
"pattern": "Ungültiges Format",
"required": "Pflichtfeld",
"type": "Ungültiger Wertetyp",
"enum": "Muss einer der erlaubten Werte sein",
"const": "Wert stimmt nicht mit erwarteter Konstante überein",
"uniqueItems": "Alle Einträge müssen eindeutig sein",
"format": "Ungültiges Format",
"additionalProperties": "Unbekannte Eigenschaft ist nicht erlaubt",
"oneOf": "Muss exakt mit einem der erlaubten Schemas übereinstimmen",
"anyOf": "Muss mindestens mit einem der erlaubten Schemas übereinstimmen",
"proxy": {
"header_map": {
"roleHeaderRequired": "Rollen-Header muss angegeben werden, wenn Rollen-Zuordnungen konfiguriert sind."
}
},
"ffmpeg": {
"inputs": {
"rolesUnique": "Jede Rolle kann nur einem input stream zugeteilt werden.",
"detectRequired": "Es muss mindestens ein input stream die Rolle 'erkennen' tragen.",
"hwaccelDetectOnly": "Nur der input-stream mit der Rolle 'erkennen' kann Hardwarebeschleunigungs Argumente definieren."
}
}
}

View File

@ -11,27 +11,13 @@
"noExports": "Keine Exporte gefunden", "noExports": "Keine Exporte gefunden",
"toast": { "toast": {
"error": { "error": {
"renameExportFailed": "Umbenennen des Exports fehlgeschlagen: {{errorMessage}}", "renameExportFailed": "Umbenennen des Exports fehlgeschlagen: {{errorMessage}}"
"assignCaseFailed": "Aktualisierung der Fallzuweisung fehlgeschlagen: {{errorMessage}}"
} }
}, },
"tooltip": { "tooltip": {
"shareExport": "Export teilen", "shareExport": "Export teilen",
"downloadVideo": "Video herunterladen", "downloadVideo": "Video herunterladen",
"editName": "Name ändern", "editName": "Name ändern",
"deleteExport": "Export löschen", "deleteExport": "Export löschen"
"assignToCase": "Hinzufügen zum Fall"
},
"headings": {
"cases": "Fälle",
"uncategorizedExports": "Unkategorisierte Exporte"
},
"caseDialog": {
"title": "Zum Fall hinzufügen",
"description": "Wählen Sie einen bestehenden Fall aus oder erstellen Sie einen neuen.",
"selectLabel": "Fall",
"newCaseOption": "Neuen Fall erstellen",
"nameLabel": "Fallname",
"descriptionLabel": "Beschreibung"
} }
} }

View File

@ -5,17 +5,14 @@
"camera": "Kameraeinstellungen - Frigate", "camera": "Kameraeinstellungen - Frigate",
"masksAndZones": "Masken- und Zoneneditor Frigate", "masksAndZones": "Masken- und Zoneneditor Frigate",
"object": "Debug - Frigate", "object": "Debug - Frigate",
"general": "Profileinstellungen - Frigate", "general": "UI-Einstellungen - Frigate",
"frigatePlus": "Frigate+ Einstellungen Frigate", "frigatePlus": "Frigate+ Einstellungen Frigate",
"classification": "Klassifizierungseinstellungen Frigate", "classification": "Klassifizierungseinstellungen Frigate",
"motionTuner": "Bewegungserkennungs-Optimierer Frigate", "motionTuner": "Bewegungserkennungs-Optimierer Frigate",
"notifications": "Benachrichtigungseinstellungen", "notifications": "Benachrichtigungseinstellungen",
"enrichments": "Erweiterte Statistiken - Frigate", "enrichments": "Erweiterte Statistiken - Frigate",
"cameraManagement": "Kameras verwalten - Frigate", "cameraManagement": "Kameras verwalten - Frigate",
"cameraReview": "Kameraeinstellungen prüfen - Frigate", "cameraReview": "Kameraeinstellungen prüfen - Frigate"
"globalConfig": "Globale Konfiguration - Frigate",
"cameraConfig": "Kamera Konfiguration - Frigate",
"maintenance": "Wartung - Frigate"
}, },
"menu": { "menu": {
"ui": "Benutzeroberfläche", "ui": "Benutzeroberfläche",
@ -31,31 +28,7 @@
"triggers": "Auslöser", "triggers": "Auslöser",
"roles": "Rollen", "roles": "Rollen",
"cameraManagement": "Verwaltung", "cameraManagement": "Verwaltung",
"cameraReview": "Überprüfung", "cameraReview": "Überprüfung"
"system": "System",
"general": "allgemein",
"globalConfig": "Globale Konfiguration",
"integrations": "Integrationen",
"profileSettings": "Profil Einstellung",
"globalDetect": "Objekterkennung",
"globalRecording": "Aufnahme",
"globalSnapshots": "Schnappschüsse",
"globalFfmpeg": "FFmpeg",
"globalMotion": "Bewegungserkennung",
"globalObjects": "Objekte",
"globalReview": "Überprüfung",
"globalAudioEvents": "Audio Events",
"globalLivePlayback": "Live Wiedergabe",
"globalTimestampStyle": "Zeitstempelformat",
"systemDatabase": "Datenbank",
"systemTls": "TLS",
"systemAuthentication": "Authentifizierung",
"systemNetworking": "Netzwerk",
"systemProxy": "Proxy",
"systemUi": "UI",
"systemLogging": "Log",
"systemEnvironmentVariables": "Umgebungsvariablen",
"systemTelemetry": "Telemetrie"
}, },
"dialog": { "dialog": {
"unsavedChanges": { "unsavedChanges": {
@ -68,7 +41,7 @@
"noCamera": "Keine Kamera" "noCamera": "Keine Kamera"
}, },
"general": { "general": {
"title": "Profileinstellungen", "title": "Einstellungen der Benutzeroberfläche",
"liveDashboard": { "liveDashboard": {
"title": "Live Übersicht", "title": "Live Übersicht",
"playAlertVideos": { "playAlertVideos": {
@ -435,7 +408,7 @@
} }
}, },
"motionMaskLabel": "Bewegungsmaske {{number}}", "motionMaskLabel": "Bewegungsmaske {{number}}",
"objectMaskLabel": "Objektmaske {{number}}" "objectMaskLabel": "Objektmaske {{number}} ({{label}})"
}, },
"debug": { "debug": {
"objectShapeFilterDrawing": { "objectShapeFilterDrawing": {

View File

@ -67,8 +67,7 @@
"logs": { "logs": {
"frigate": "Frigate Protokolle Frigate", "frigate": "Frigate Protokolle Frigate",
"go2rtc": "Go2RTC Protokolle - Frigate", "go2rtc": "Go2RTC Protokolle - Frigate",
"nginx": "Nginx Protokolle - Frigate", "nginx": "Nginx Protokolle - Frigate"
"websocket": "Nachrichten Logs- Frigate"
}, },
"enrichments": "Erweiterte Statistiken - Frigate" "enrichments": "Erweiterte Statistiken - Frigate"
}, },
@ -94,32 +93,7 @@
"whileStreamingLogs": "Beim Übertragen der Protokolle ist ein Fehler aufgetreten: {{errorMessage}}" "whileStreamingLogs": "Beim Übertragen der Protokolle ist ein Fehler aufgetreten: {{errorMessage}}"
} }
}, },
"tips": "Protokolle werden in Echtzeit vom Server übertragen", "tips": "Protokolle werden in Echtzeit vom Server übertragen"
"websocket": {
"label": "Nachrichten",
"pause": "Pause",
"clear": "Säubern",
"filter": {
"all": "alle Themen",
"topics": "Themen",
"events": "Event",
"reviews": "Bewertungen",
"classification": "Klassifizierung",
"face_recognition": "Gesichtserkennung",
"lpr": "LPR",
"camera_activity": "Kameraaktivität",
"system": "System",
"camera": "Kamera",
"all_cameras": "Alle Kameras",
"cameras_count_one": "{{count}} Kamera",
"cameras_count_other": "{{count}} Kameras"
},
"empty": "Noch keine Nachrichten erfasst",
"count": "{{count}} Nachrichten",
"expanded": {
"payload": "Nutzlast"
}
}
}, },
"metrics": "Systemmetriken", "metrics": "Systemmetriken",
"storage": { "storage": {

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1,30 +0,0 @@
{
"name": {
"label": "Nombre de cámara",
"description": "El nombre de la cámara es necesario"
},
"enabled": {
"label": "Habilitado",
"description": "Habilitado"
},
"audio": {
"label": "Eventos de audio",
"description": "Configuración para la detección de eventos basada en audio para esta cámara.",
"enabled": {
"label": "Habilitar la detección de audio",
"description": "Activar o deshabilitar la detección de eventos de audio para esta cámara."
},
"max_not_heard": {
"label": "Finalizar el tiempo de espera",
"description": "Cantidad de segundos sin el tipo de audio configurado antes de que finalice el evento de audio."
},
"min_volume": {
"label": "Volumen mínimo"
}
},
"friendly_name": {
"label": "Nombre descriptivo",
"description": "Nombre descriptivo de la cámara utilizado en la interfaz de usuario de Frigate"
},
"label": "Configuración de Cámara"
}

View File

@ -1,43 +0,0 @@
{
"version": {
"label": "Versión de configuración actual",
"description": "Versión numérica o de cadena de la configuración activa para ayudar a detectar migraciones o cambios de formato."
},
"safe_mode": {
"label": "Modo seguro",
"description": "Cuando está habilitado, inicia Frigate en modo seguro con funciones reducidas para la solución de problemas."
},
"environment_vars": {
"label": "Variables de entorno",
"description": "Pares clave/valor de variables de entorno para establecer para el proceso de Frigate en el sistema operativo Home Assistant. Los usuarios que no son de HAOS deben usar la configuración de variables de entorno de Docker."
},
"logger": {
"label": "Registro",
"description": "Controla la verbosidad de registro predeterminada y la sobre-escritura de nivel de registro por componente.",
"default": {
"label": "Nivel de registro",
"description": "Nivel de detalle global predeterminada del registro (depuración, información, advertencia, error)."
},
"logs": {
"label": "Nivel de registro por proceso",
"description": "Sobre-escribir el nivel de registro por componente para aumentar o disminuir el nivel de detalle de módulos específicos."
}
},
"audio": {
"label": "Eventos de audio",
"enabled": {
"label": "Habilitar la detección de audio"
},
"max_not_heard": {
"label": "Finalizar el tiempo de espera",
"description": "Cantidad de segundos sin el tipo de audio configurado antes de que finalice el evento de audio."
},
"min_volume": {
"label": "Volumen mínimo"
}
},
"auth": {
"label": "Autenticación",
"description": "Configuración relacionada con la autenticación y la sesión, incluidas las opciones de cookies y límite de peticiones."
}
}

View File

@ -1,44 +0,0 @@
{
"audio": {
"global": {
"detection": "Detección Global",
"sensitivity": "Sensibilidad Global"
},
"cameras": {
"detection": "Detección",
"sensitivity": "Sensibilidad"
}
},
"timestamp_style": {
"global": {
"appearance": "Apariencia Global"
},
"cameras": {
"appearance": "Apariencia"
}
},
"motion": {
"global": {
"sensitivity": "Sensibilidad Global",
"algorithm": "Algoritmo Global"
},
"cameras": {
"sensitivity": "Sensibilidad",
"algorithm": "Algoritmo"
}
},
"snapshots": {
"global": {
"display": "Pantalla Global"
},
"cameras": {
"display": "Pantalla"
}
},
"detect": {
"global": {
"resolution": "Resolución Global",
"tracking": "Seguimiento Global"
}
}
}

View File

@ -1,16 +0,0 @@
{
"minimum": "Debe ser al menos {{limit}}",
"maximum": "Debe ser como mucho {{limit}}",
"exclusiveMinimum": "Debe ser mayor que {{limit}}",
"exclusiveMaximum": "Debe ser menor que {{limit}}",
"minLength": "Debe ser al menos {{limit}} carácter(es)",
"maxLength": "Debe ser como máximo {{limit}} carácter(es)",
"minItems": "Debe tener al menos {{limit}} objetos",
"maxItems": "Debe tener como máximo {{limit}} objetos",
"pattern": "Formato no válido",
"required": "Este campo es requerido",
"type": "Tipo de valor no válido",
"enum": "Debe ser uno de los valores permitidos",
"const": "El valor no coincide con la constante esperada",
"uniqueItems": "Todos los objetos deben ser únicos"
}

View File

@ -10,8 +10,7 @@
}, },
"toast": { "toast": {
"error": { "error": {
"renameExportFailed": "No se pudo renombrar la exportación: {{errorMessage}}", "renameExportFailed": "No se pudo renombrar la exportación: {{errorMessage}}"
"assignCaseFailed": "Fallo en la actualización de la asignación de caso: {{errorMessage}}"
} }
}, },
"deleteExport.desc": "¿Estás seguro de que quieres eliminar {{exportName}}?", "deleteExport.desc": "¿Estás seguro de que quieres eliminar {{exportName}}?",
@ -19,11 +18,6 @@
"shareExport": "Compartir exportación", "shareExport": "Compartir exportación",
"downloadVideo": "Descargar video", "downloadVideo": "Descargar video",
"editName": "Editar nombre", "editName": "Editar nombre",
"deleteExport": "Eliminar exportación", "deleteExport": "Eliminar exportación"
"assignToCase": "Añadir al caso"
},
"headings": {
"cases": "Casos",
"uncategorizedExports": "Exportaciones sin categorizar"
} }
} }

View File

@ -12,10 +12,7 @@
"notifications": "Configuración de Notificaciones - Frigate", "notifications": "Configuración de Notificaciones - Frigate",
"enrichments": "Configuración de Análisis Avanzado - Frigate", "enrichments": "Configuración de Análisis Avanzado - Frigate",
"cameraManagement": "Administrar Cámaras - Frigate", "cameraManagement": "Administrar Cámaras - Frigate",
"cameraReview": "Revisar Configuración de Cámaras - Frigate", "cameraReview": "Revisar Configuración de Cámaras - Frigate"
"globalConfig": "Configuración Global - Frigate",
"cameraConfig": "Configuración de Cámara - Frigate",
"maintenance": "Mantenimiento - Frigate"
}, },
"menu": { "menu": {
"cameras": "Configuración de Cámara", "cameras": "Configuración de Cámara",
@ -31,10 +28,7 @@
"triggers": "Disparadores", "triggers": "Disparadores",
"roles": "Rols", "roles": "Rols",
"cameraManagement": "Administración", "cameraManagement": "Administración",
"cameraReview": "Revisar", "cameraReview": "Revisar"
"general": "General",
"globalConfig": "Configuración Global",
"system": "Sistema"
}, },
"dialog": { "dialog": {
"unsavedChanges": { "unsavedChanges": {
@ -417,7 +411,7 @@
}, },
"restart_required": "Es necesario reiniciar (se han cambiado las máscaras/zonas)", "restart_required": "Es necesario reiniciar (se han cambiado las máscaras/zonas)",
"motionMaskLabel": "Máscara de movimiento {{number}}", "motionMaskLabel": "Máscara de movimiento {{number}}",
"objectMaskLabel": "Máscara de objeto {{number}}" "objectMaskLabel": "Máscara de objeto {{number}} ({{label}})"
}, },
"motionDetectionTuner": { "motionDetectionTuner": {
"title": "Sintonizador de Detección de Movimiento", "title": "Sintonizador de Detección de Movimiento",
@ -737,7 +731,7 @@
"alreadyInProgress": "El proceso de re-indexado ya se está ejecutando.", "alreadyInProgress": "El proceso de re-indexado ya se está ejecutando.",
"error": "Ha ocurrido un error al intentar iniciar el proceso de re-indexado: {{errorMessage}}", "error": "Ha ocurrido un error al intentar iniciar el proceso de re-indexado: {{errorMessage}}",
"label": "Re-indexar Ahora", "label": "Re-indexar Ahora",
"desc": "La re-indexación regenerará las incrustaciones para todos los objetos rastreados. Este proceso se ejecuta en segundo plano y puede utilizar al máximo tu CPU, además de tomar una cantidad considerable de tiempo dependiendo de la cantidad de objetos rastreados que tengas." "desc": "La re-indexación regenerará las embeddings para todos los objetos rastreados. Este proceso se ejecuta en segundo plano y puede utilizar al máximo tu CPU, además de tomar una cantidad considerable de tiempo dependiendo de la cantidad de objetos rastreados que tengas."
}, },
"modelSize": { "modelSize": {
"label": "Tamaño del Modelo", "label": "Tamaño del Modelo",

View File

@ -5,8 +5,7 @@
"logs": { "logs": {
"frigate": "Registros de Frigate - Frigate", "frigate": "Registros de Frigate - Frigate",
"go2rtc": "Registros de Go2RTC - Frigate", "go2rtc": "Registros de Go2RTC - Frigate",
"nginx": "Registros de Nginx - Frigate", "nginx": "Registros de Nginx - Frigate"
"websocket": "Mensajes Logs - Frigata"
}, },
"cameras": "Estadísticas de cámaras - Frigate", "cameras": "Estadísticas de cámaras - Frigate",
"enrichments": "Estadísticas de Enriquecimientos - Frigate" "enrichments": "Estadísticas de Enriquecimientos - Frigate"
@ -32,12 +31,6 @@
}, },
"download": { "download": {
"label": "Descargar registros" "label": "Descargar registros"
},
"websocket": {
"label": "Mensajes",
"pause": "Pausar",
"resume": "Continuar",
"clear": "Limpiar"
} }
}, },
"title": "Sistema", "title": "Sistema",

View File

@ -178,9 +178,7 @@
"export": "Ekspordi", "export": "Ekspordi",
"uiPlayground": "Leht kasutajaliidese katsetamiseks", "uiPlayground": "Leht kasutajaliidese katsetamiseks",
"faceLibrary": "Näoteek", "faceLibrary": "Näoteek",
"classification": "Klassifikatsioon", "classification": "Klassifikatsioon"
"chat": "Vestlus",
"actions": "Tegevused"
}, },
"unit": { "unit": {
"speed": { "speed": {
@ -236,18 +234,7 @@
"export": "Ekspordi", "export": "Ekspordi",
"deleteNow": "Kustuta kohe", "deleteNow": "Kustuta kohe",
"next": "Järgmine", "next": "Järgmine",
"continue": "Jätka", "continue": "Jätka"
"add": "Lisa",
"undo": "Võta tegevus tagasi",
"copiedToClipboard": "Kopeeritud lõikelauale",
"modified": "Muudetud",
"overridden": "Sürjutatud",
"resetToDefault": "Lähtesta vaikimisi väärtusteks",
"saveAll": "Salvesta kõik",
"resetToGlobal": "Lähtesta üldiseks väärtusteks",
"savingAll": "Salvestan kõiki…",
"undoAll": "Pööra kõik tegevused tagasi",
"applying": "Võtan kasutusele…"
}, },
"label": { "label": {
"back": "Mine tagasi", "back": "Mine tagasi",

View File

@ -78,10 +78,6 @@
"fromTimeline": { "fromTimeline": {
"saveExport": "Salvesta eksporditud sisu", "saveExport": "Salvesta eksporditud sisu",
"previewExport": "Eksporditud sisu eelvaade" "previewExport": "Eksporditud sisu eelvaade"
},
"case": {
"label": "Juhtum",
"placeholder": "Vali juhtum"
} }
}, },
"streaming": { "streaming": {

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -13,25 +13,11 @@
"shareExport": "Jaga eksporditud sisu", "shareExport": "Jaga eksporditud sisu",
"downloadVideo": "Laadi video alla", "downloadVideo": "Laadi video alla",
"editName": "Muuda nime", "editName": "Muuda nime",
"deleteExport": "Kustuta eksporditud sisu", "deleteExport": "Kustuta eksporditud sisu"
"assignToCase": "Lisa juhtumile"
}, },
"toast": { "toast": {
"error": { "error": {
"renameExportFailed": "Eksporditud sisu nime muutmine ei õnnestunud: {{errorMessage}}", "renameExportFailed": "Eksporditud sisu nime muutmine ei õnnestunud: {{errorMessage}}"
"assignCaseFailed": "Juhtumiga seose uuendamine ei õnnestunud: {{errorMessage}}"
} }
},
"headings": {
"cases": "Juhtumid",
"uncategorizedExports": "Kategooriata eksportimised"
},
"caseDialog": {
"title": "Lisa juhtumile",
"selectLabel": "Juhtum",
"newCaseOption": "Lisa uus juhtum",
"nameLabel": "Juhtumi nimi",
"descriptionLabel": "Kirjeldus",
"description": "Vali olemasolev juhtum või lisa uus."
} }
} }

View File

@ -6,8 +6,7 @@
"description": { "description": {
"placeholder": "Sisesta nimi selle kogumiku jaoks", "placeholder": "Sisesta nimi selle kogumiku jaoks",
"invalidName": "Vigane nimi. Nimed võivad sisaldada ainult tähti, numbreid, tühikuid, ülakomasid, alakriipse ja sidekriipse.", "invalidName": "Vigane nimi. Nimed võivad sisaldada ainult tähti, numbreid, tühikuid, ülakomasid, alakriipse ja sidekriipse.",
"addFace": "Laadides üles oma esimese pildi saad lisada uue kogumiku Näoteeki.", "addFace": "Laadides üles oma esimese pildi saad lisada uue kogumiku Näoteeki."
"nameCannotContainHash": "Nimi ei saa sisaldada # märki."
}, },
"documentTitle": "Näoteek - Frigate", "documentTitle": "Näoteek - Frigate",
"createFaceLibrary": { "createFaceLibrary": {

View File

@ -11,8 +11,7 @@
"audioDetection": "Heli tuvastus", "audioDetection": "Heli tuvastus",
"transcription": "Heli üleskirjutus", "transcription": "Heli üleskirjutus",
"snapshots": "Hetkvõtted", "snapshots": "Hetkvõtted",
"autotracking": "Automaatne jälgimine", "autotracking": "Automaatne jälgimine"
"recording": "Salvestus"
}, },
"documentTitle": "Otseülekanne - Frigate", "documentTitle": "Otseülekanne - Frigate",
"documentTitle.withCamera": "{{camera}} - Otseülekanne - Frigate", "documentTitle.withCamera": "{{camera}} - Otseülekanne - Frigate",
@ -101,10 +100,6 @@
"audio": { "audio": {
"available": "Selles voogedastuses on heliriba saadaval", "available": "Selles voogedastuses on heliriba saadaval",
"unavailable": "Selles voogedastuses pole heliriba saadaval" "unavailable": "Selles voogedastuses pole heliriba saadaval"
},
"title": "Voogedastus",
"lowBandwidth": {
"resetStream": "Lähtesta voogedastus"
} }
}, },
"notifications": "Teavitused", "notifications": "Teavitused",
@ -132,8 +127,7 @@
"playInBackground": { "playInBackground": {
"label": "Esita taustal", "label": "Esita taustal",
"desc": "Kasuta seda valikut, kui tahad voogedastuse jätkumist ka siis, kui pildivaade on peidetud." "desc": "Kasuta seda valikut, kui tahad voogedastuse jätkumist ka siis, kui pildivaade on peidetud."
}, }
"debugView": "Veaotsinguvaade"
}, },
"noCameras": { "noCameras": {
"buttonText": "Lisa kaamera", "buttonText": "Lisa kaamera",
@ -142,17 +136,7 @@
"description": "Sul pole õigust ühegi selle grupi kaamera vaatamiseks." "description": "Sul pole õigust ühegi selle grupi kaamera vaatamiseks."
}, },
"title": "Ühtegi kaamerat pole seadistatud", "title": "Ühtegi kaamerat pole seadistatud",
"description": "Alustamiseks ühenda mõni kaamera Frigate'iga.", "description": "Alustamiseks ühenda mõni kaamera Frigate'iga."
"default": {
"title": "Ühtegi kaamerat pole seadistatud",
"description": "Alustamiseks ühenda mõni kaamera Frigate'iga.",
"buttonText": "Lisa kaamera"
},
"group": {
"title": "Grupid pole ühtegi kaamerat",
"description": "Selles kaameragrupis pole ühtegi määratud ega kasutusel kaamerat.",
"buttonText": "Halda gruppe"
}
}, },
"effectiveRetainMode": { "effectiveRetainMode": {
"modes": { "modes": {

View File

@ -172,7 +172,7 @@
"default": "Seadistused - Frigate", "default": "Seadistused - Frigate",
"authentication": "Autentimise seadistused - Frigate", "authentication": "Autentimise seadistused - Frigate",
"cameraReview": "Kaamerate kordusvaatuste seadistused - Frigate", "cameraReview": "Kaamerate kordusvaatuste seadistused - Frigate",
"general": "Profiili seadistused - Frigate", "general": "Kasutajaliidese seadistused - Frigate",
"frigatePlus": "Frigate+ seadistused - Frigate", "frigatePlus": "Frigate+ seadistused - Frigate",
"notifications": "Teavituste seadistused - Frigate", "notifications": "Teavituste seadistused - Frigate",
"cameraManagement": "Kaamerate haldus - Frigate", "cameraManagement": "Kaamerate haldus - Frigate",
@ -180,7 +180,7 @@
"object": "Silumine ja veaotsing - Frigate" "object": "Silumine ja veaotsing - Frigate"
}, },
"general": { "general": {
"title": "Profiili seadistused", "title": "Kasutajaliidese seadistused",
"cameraGroupStreaming": { "cameraGroupStreaming": {
"clearAll": "Kustuta kõik voogedastuse seadistused" "clearAll": "Kustuta kõik voogedastuse seadistused"
}, },

View File

@ -75,8 +75,7 @@
}, },
"inProgress": "در حال انجام", "inProgress": "در حال انجام",
"invalidStartTime": "زمان شروع نامعتبر است", "invalidStartTime": "زمان شروع نامعتبر است",
"invalidEndTime": "زمان پایان نامعتبر است", "invalidEndTime": "زمان پایان نامعتبر است"
"never": "هرگز"
}, },
"unit": { "unit": {
"length": { "length": {

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -1 +0,0 @@
{}

View File

@ -129,17 +129,7 @@
"deleteNow": "Supprimer maintenant", "deleteNow": "Supprimer maintenant",
"download": "Télécharger", "download": "Télécharger",
"done": "Terminé", "done": "Terminé",
"continue": "Continuer", "continue": "Continuer"
"add": "Ajouter",
"undo": "Annuler",
"copiedToClipboard": "Copié dans le presse-papiers",
"modified": "Modifié",
"overridden": "Surpassé",
"resetToGlobal": "Réinitialiser aux réglages globaux",
"resetToDefault": "Réinitialiser aux réglages par défaut",
"saveAll": "Tout enregistrer",
"savingAll": "Enregistrement de tout en cours…",
"undoAll": "Tout annuler"
}, },
"menu": { "menu": {
"configuration": "Configuration", "configuration": "Configuration",

View File

@ -77,10 +77,6 @@
"fromTimeline": { "fromTimeline": {
"saveExport": "Enregistrer l'exportation", "saveExport": "Enregistrer l'exportation",
"previewExport": "Aperçu de l'exportation" "previewExport": "Aperçu de l'exportation"
},
"case": {
"label": "Dossier",
"placeholder": "Sélectionner un dossier"
} }
}, },
"search": { "search": {

Some files were not shown because too many files have changed in this diff Show More