mirror of
https://github.com/blakeblackshear/frigate.git
synced 2025-12-06 13:34:13 +03:00
Merge branch 'dev' into dev-zones-friendly-name
This commit is contained in:
commit
5e6ffd62a3
@ -68,6 +68,36 @@ The mere presence of an unidentified person in private areas during late night h
|
||||
|
||||
</details>
|
||||
|
||||
### Camera Spatial Context
|
||||
|
||||
In addition to defining activity patterns, you can provide spatial context for specific cameras to help the LLM generate more accurate and descriptive titles and scene descriptions. The `camera_context` field allows you to describe physical features and locations that are outside the camera's field of view but are relevant for understanding the scene.
|
||||
|
||||
**Important Guidelines:**
|
||||
|
||||
- This context is used **only for descriptive purposes** to help the LLM write better titles and scene descriptions
|
||||
- It should describe **physical features and spatial relationships** (e.g., "front door is to the right", "driveway on the left")
|
||||
- It should **NOT** include subjective assessments or threat evaluations (e.g., "high-crime area")
|
||||
- Threat level determination remains based solely on observable actions defined in the activity patterns
|
||||
|
||||
Example configuration:
|
||||
|
||||
```yaml
|
||||
cameras:
|
||||
front_door:
|
||||
review:
|
||||
genai:
|
||||
enabled: true
|
||||
camera_context: |
|
||||
- Front door entrance is to the right of the frame
|
||||
- Driveway and street are to the left
|
||||
- Steps in the center lead from the sidewalk to the front door
|
||||
- Garage is located beyond the left edge of the frame
|
||||
```
|
||||
|
||||
This helps the LLM generate more natural descriptions like "Person approaching front door" instead of "Person walking toward right side of frame".
|
||||
|
||||
The `camera_context` can be defined globally under `genai.review` and overridden per camera for specific spatial details.
|
||||
|
||||
### Image Source
|
||||
|
||||
By default, review summaries use preview images (cached preview frames) which have a lower resolution but use fewer tokens per image. For better image quality and more detailed analysis, you can configure Frigate to extract frames directly from recordings at a higher resolution:
|
||||
|
||||
@ -912,7 +912,7 @@ def events_summary(
|
||||
"count": int(g.count or 0),
|
||||
}
|
||||
|
||||
return JSONResponse(content=list(grouped.values()))
|
||||
return JSONResponse(content=sorted(grouped.values(), key=lambda x: x["day"]))
|
||||
|
||||
|
||||
@router.get(
|
||||
|
||||
@ -496,7 +496,7 @@ def all_recordings_summary(
|
||||
for g in period_query:
|
||||
days[g.day] = True
|
||||
|
||||
return JSONResponse(content=days)
|
||||
return JSONResponse(content=dict(sorted(days.items())))
|
||||
|
||||
|
||||
@router.get(
|
||||
|
||||
@ -140,6 +140,10 @@ Evaluate in this order:
|
||||
The mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is.""",
|
||||
title="Custom activity context prompt defining normal and suspicious activity patterns for this property.",
|
||||
)
|
||||
camera_context: str = Field(
|
||||
default="",
|
||||
title="Spatial context about the camera's field of view to help with descriptive accuracy. Should describe physical features and locations outside the frame.",
|
||||
)
|
||||
|
||||
|
||||
class ReviewConfig(FrigateBaseModel):
|
||||
|
||||
@ -458,6 +458,7 @@ def run_analysis(
|
||||
genai_config.preferred_language,
|
||||
genai_config.debug_save_thumbnails,
|
||||
genai_config.activity_context_prompt,
|
||||
genai_config.camera_context,
|
||||
)
|
||||
review_inference_speed.update(datetime.datetime.now().timestamp() - start)
|
||||
|
||||
|
||||
@ -234,7 +234,10 @@ class OpenVINOModelRunner(BaseModelRunner):
|
||||
# Import here to avoid circular imports
|
||||
from frigate.embeddings.types import EnrichmentModelTypeEnum
|
||||
|
||||
return model_type in [EnrichmentModelTypeEnum.paddleocr.value]
|
||||
return model_type in [
|
||||
EnrichmentModelTypeEnum.paddleocr.value,
|
||||
EnrichmentModelTypeEnum.jina_v2.value,
|
||||
]
|
||||
|
||||
def __init__(self, model_path: str, device: str, model_type: str, **kwargs):
|
||||
self.model_path = model_path
|
||||
@ -345,6 +348,16 @@ class OpenVINOModelRunner(BaseModelRunner):
|
||||
|
||||
# Create tensor with the correct element type
|
||||
input_element_type = input_port.get_element_type()
|
||||
|
||||
# Ensure input data matches the expected dtype to prevent type mismatches
|
||||
# that can occur with models like Jina-CLIP v2 running on OpenVINO
|
||||
expected_dtype = input_element_type.to_dtype()
|
||||
if input_data.dtype != expected_dtype:
|
||||
logger.debug(
|
||||
f"Converting input '{input_name}' from {input_data.dtype} to {expected_dtype}"
|
||||
)
|
||||
input_data = input_data.astype(expected_dtype)
|
||||
|
||||
input_tensor = ov.Tensor(input_element_type, input_data.shape)
|
||||
np.copyto(input_tensor.data, input_data)
|
||||
|
||||
|
||||
@ -45,6 +45,7 @@ class GenAIClient:
|
||||
preferred_language: str | None,
|
||||
debug_save: bool,
|
||||
activity_context_prompt: str,
|
||||
camera_context: str = "",
|
||||
) -> ReviewMetadata | None:
|
||||
"""Generate a description for the review item activity."""
|
||||
|
||||
@ -69,6 +70,16 @@ class GenAIClient:
|
||||
else:
|
||||
return "\n- (No objects detected)"
|
||||
|
||||
def get_camera_context_section() -> str:
|
||||
if camera_context:
|
||||
return f"""## Camera Spatial Context
|
||||
|
||||
Use this spatial information when writing the title and scene description to provide more accurate context about where activity is occurring or where people/objects are moving to/from.
|
||||
|
||||
{camera_context}"""
|
||||
return ""
|
||||
|
||||
camera_context_section = get_camera_context_section()
|
||||
context_prompt = f"""
|
||||
Your task is to analyze the sequence of images ({len(thumbnails)} total) taken in chronological order from the perspective of the {review_data["camera"].replace("_", " ")} security camera.
|
||||
|
||||
@ -76,6 +87,8 @@ Your task is to analyze the sequence of images ({len(thumbnails)} total) taken i
|
||||
|
||||
{activity_context_prompt}
|
||||
|
||||
{camera_context_section}
|
||||
|
||||
## Task Instructions
|
||||
|
||||
Your task is to provide a clear, accurate description of the scene that:
|
||||
@ -100,7 +113,7 @@ When forming your description:
|
||||
## Response Format
|
||||
|
||||
Your response MUST be a flat JSON object with:
|
||||
- `title` (string): A concise, direct title that describes the purpose or overall action, not just what you literally see. Use names from "Objects in Scene" based on what you visually observe. If you see both a name and an unidentified object of the same type but visually observe only one person/object, use ONLY the name. Examples: "Joe walking dog", "Person taking out trash", "Joe accessing vehicle", "Joe and person on front porch".
|
||||
- `title` (string): A concise, direct title that describes the purpose or overall action, not just what you literally see. {"Use spatial context when available to make titles more meaningful." if camera_context_section else ""} Use names from "Objects in Scene" based on what you visually observe. If you see both a name and an unidentified object of the same type but visually observe only one person/object, use ONLY the name. Examples: "Joe walking dog", "Person taking out trash", "Joe accessing vehicle", "Person leaving porch for driveway", "Joe and person on front porch".
|
||||
- `scene` (string): A narrative description of what happens across the sequence from start to finish. **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.
|
||||
- `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.
|
||||
|
||||
379
frigate/test/http_api/test_http_media.py
Normal file
379
frigate/test/http_api/test_http_media.py
Normal file
@ -0,0 +1,379 @@
|
||||
"""Unit tests for recordings/media API endpoints."""
|
||||
|
||||
from datetime import datetime, timezone
|
||||
from typing import Any
|
||||
|
||||
import pytz
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from frigate.api.auth import get_allowed_cameras_for_filter, get_current_user
|
||||
from frigate.models import Recordings
|
||||
from frigate.test.http_api.base_http_test import BaseTestHttp
|
||||
|
||||
|
||||
class TestHttpMedia(BaseTestHttp):
|
||||
"""Test media API endpoints, particularly recordings with DST handling."""
|
||||
|
||||
def setUp(self):
|
||||
"""Set up test fixtures."""
|
||||
super().setUp([Recordings])
|
||||
self.app = super().create_app()
|
||||
|
||||
# Mock auth to bypass camera access for tests
|
||||
async def mock_get_current_user(request: Any):
|
||||
return {"username": "test_user", "role": "admin"}
|
||||
|
||||
self.app.dependency_overrides[get_current_user] = mock_get_current_user
|
||||
self.app.dependency_overrides[get_allowed_cameras_for_filter] = lambda: [
|
||||
"front_door",
|
||||
"back_door",
|
||||
]
|
||||
|
||||
def tearDown(self):
|
||||
"""Clean up after tests."""
|
||||
self.app.dependency_overrides.clear()
|
||||
super().tearDown()
|
||||
|
||||
def test_recordings_summary_across_dst_spring_forward(self):
|
||||
"""
|
||||
Test recordings summary across spring DST transition (spring forward).
|
||||
|
||||
In 2024, DST in America/New_York transitions on March 10, 2024 at 2:00 AM
|
||||
Clocks spring forward from 2:00 AM to 3:00 AM (EST to EDT)
|
||||
"""
|
||||
tz = pytz.timezone("America/New_York")
|
||||
|
||||
# March 9, 2024 at 12:00 PM EST (before DST)
|
||||
march_9_noon = tz.localize(datetime(2024, 3, 9, 12, 0, 0)).timestamp()
|
||||
|
||||
# March 10, 2024 at 12:00 PM EDT (after DST transition)
|
||||
march_10_noon = tz.localize(datetime(2024, 3, 10, 12, 0, 0)).timestamp()
|
||||
|
||||
# March 11, 2024 at 12:00 PM EDT (after DST)
|
||||
march_11_noon = tz.localize(datetime(2024, 3, 11, 12, 0, 0)).timestamp()
|
||||
|
||||
with TestClient(self.app) as client:
|
||||
# Insert recordings for each day
|
||||
Recordings.insert(
|
||||
id="recording_march_9",
|
||||
path="/media/recordings/march_9.mp4",
|
||||
camera="front_door",
|
||||
start_time=march_9_noon,
|
||||
end_time=march_9_noon + 3600, # 1 hour recording
|
||||
duration=3600,
|
||||
motion=100,
|
||||
objects=5,
|
||||
).execute()
|
||||
|
||||
Recordings.insert(
|
||||
id="recording_march_10",
|
||||
path="/media/recordings/march_10.mp4",
|
||||
camera="front_door",
|
||||
start_time=march_10_noon,
|
||||
end_time=march_10_noon + 3600,
|
||||
duration=3600,
|
||||
motion=150,
|
||||
objects=8,
|
||||
).execute()
|
||||
|
||||
Recordings.insert(
|
||||
id="recording_march_11",
|
||||
path="/media/recordings/march_11.mp4",
|
||||
camera="front_door",
|
||||
start_time=march_11_noon,
|
||||
end_time=march_11_noon + 3600,
|
||||
duration=3600,
|
||||
motion=200,
|
||||
objects=10,
|
||||
).execute()
|
||||
|
||||
# Test recordings summary with America/New_York timezone
|
||||
response = client.get(
|
||||
"/recordings/summary",
|
||||
params={"timezone": "America/New_York", "cameras": "all"},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
summary = response.json()
|
||||
|
||||
# Verify we get exactly 3 days
|
||||
assert len(summary) == 3, f"Expected 3 days, got {len(summary)}"
|
||||
|
||||
# Verify the correct dates are returned (API returns dict with True values)
|
||||
assert "2024-03-09" in summary, f"Expected 2024-03-09 in {summary}"
|
||||
assert "2024-03-10" in summary, f"Expected 2024-03-10 in {summary}"
|
||||
assert "2024-03-11" in summary, f"Expected 2024-03-11 in {summary}"
|
||||
assert summary["2024-03-09"] is True
|
||||
assert summary["2024-03-10"] is True
|
||||
assert summary["2024-03-11"] is True
|
||||
|
||||
def test_recordings_summary_across_dst_fall_back(self):
|
||||
"""
|
||||
Test recordings summary across fall DST transition (fall back).
|
||||
|
||||
In 2024, DST in America/New_York transitions on November 3, 2024 at 2:00 AM
|
||||
Clocks fall back from 2:00 AM to 1:00 AM (EDT to EST)
|
||||
"""
|
||||
tz = pytz.timezone("America/New_York")
|
||||
|
||||
# November 2, 2024 at 12:00 PM EDT (before DST transition)
|
||||
nov_2_noon = tz.localize(datetime(2024, 11, 2, 12, 0, 0)).timestamp()
|
||||
|
||||
# November 3, 2024 at 12:00 PM EST (after DST transition)
|
||||
# Need to specify is_dst=False to get the time after fall back
|
||||
nov_3_noon = tz.localize(
|
||||
datetime(2024, 11, 3, 12, 0, 0), is_dst=False
|
||||
).timestamp()
|
||||
|
||||
# November 4, 2024 at 12:00 PM EST (after DST)
|
||||
nov_4_noon = tz.localize(datetime(2024, 11, 4, 12, 0, 0)).timestamp()
|
||||
|
||||
with TestClient(self.app) as client:
|
||||
# Insert recordings for each day
|
||||
Recordings.insert(
|
||||
id="recording_nov_2",
|
||||
path="/media/recordings/nov_2.mp4",
|
||||
camera="front_door",
|
||||
start_time=nov_2_noon,
|
||||
end_time=nov_2_noon + 3600,
|
||||
duration=3600,
|
||||
motion=100,
|
||||
objects=5,
|
||||
).execute()
|
||||
|
||||
Recordings.insert(
|
||||
id="recording_nov_3",
|
||||
path="/media/recordings/nov_3.mp4",
|
||||
camera="front_door",
|
||||
start_time=nov_3_noon,
|
||||
end_time=nov_3_noon + 3600,
|
||||
duration=3600,
|
||||
motion=150,
|
||||
objects=8,
|
||||
).execute()
|
||||
|
||||
Recordings.insert(
|
||||
id="recording_nov_4",
|
||||
path="/media/recordings/nov_4.mp4",
|
||||
camera="front_door",
|
||||
start_time=nov_4_noon,
|
||||
end_time=nov_4_noon + 3600,
|
||||
duration=3600,
|
||||
motion=200,
|
||||
objects=10,
|
||||
).execute()
|
||||
|
||||
# Test recordings summary with America/New_York timezone
|
||||
response = client.get(
|
||||
"/recordings/summary",
|
||||
params={"timezone": "America/New_York", "cameras": "all"},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
summary = response.json()
|
||||
|
||||
# Verify we get exactly 3 days
|
||||
assert len(summary) == 3, f"Expected 3 days, got {len(summary)}"
|
||||
|
||||
# Verify the correct dates are returned (API returns dict with True values)
|
||||
assert "2024-11-02" in summary, f"Expected 2024-11-02 in {summary}"
|
||||
assert "2024-11-03" in summary, f"Expected 2024-11-03 in {summary}"
|
||||
assert "2024-11-04" in summary, f"Expected 2024-11-04 in {summary}"
|
||||
assert summary["2024-11-02"] is True
|
||||
assert summary["2024-11-03"] is True
|
||||
assert summary["2024-11-04"] is True
|
||||
|
||||
def test_recordings_summary_multiple_cameras_across_dst(self):
|
||||
"""
|
||||
Test recordings summary with multiple cameras across DST boundary.
|
||||
"""
|
||||
tz = pytz.timezone("America/New_York")
|
||||
|
||||
# March 9, 2024 at 10:00 AM EST (before DST)
|
||||
march_9_morning = tz.localize(datetime(2024, 3, 9, 10, 0, 0)).timestamp()
|
||||
|
||||
# March 10, 2024 at 3:00 PM EDT (after DST transition)
|
||||
march_10_afternoon = tz.localize(datetime(2024, 3, 10, 15, 0, 0)).timestamp()
|
||||
|
||||
with TestClient(self.app) as client:
|
||||
# Insert recordings for front_door on March 9
|
||||
Recordings.insert(
|
||||
id="front_march_9",
|
||||
path="/media/recordings/front_march_9.mp4",
|
||||
camera="front_door",
|
||||
start_time=march_9_morning,
|
||||
end_time=march_9_morning + 3600,
|
||||
duration=3600,
|
||||
motion=100,
|
||||
objects=5,
|
||||
).execute()
|
||||
|
||||
# Insert recordings for back_door on March 10
|
||||
Recordings.insert(
|
||||
id="back_march_10",
|
||||
path="/media/recordings/back_march_10.mp4",
|
||||
camera="back_door",
|
||||
start_time=march_10_afternoon,
|
||||
end_time=march_10_afternoon + 3600,
|
||||
duration=3600,
|
||||
motion=150,
|
||||
objects=8,
|
||||
).execute()
|
||||
|
||||
# Test with all cameras
|
||||
response = client.get(
|
||||
"/recordings/summary",
|
||||
params={"timezone": "America/New_York", "cameras": "all"},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
summary = response.json()
|
||||
|
||||
# Verify we get both days
|
||||
assert len(summary) == 2, f"Expected 2 days, got {len(summary)}"
|
||||
assert "2024-03-09" in summary
|
||||
assert "2024-03-10" in summary
|
||||
assert summary["2024-03-09"] is True
|
||||
assert summary["2024-03-10"] is True
|
||||
|
||||
def test_recordings_summary_at_dst_transition_time(self):
|
||||
"""
|
||||
Test recordings that span the exact DST transition time.
|
||||
"""
|
||||
tz = pytz.timezone("America/New_York")
|
||||
|
||||
# March 10, 2024 at 1:00 AM EST (1 hour before DST transition)
|
||||
# At 2:00 AM, clocks jump to 3:00 AM
|
||||
before_transition = tz.localize(datetime(2024, 3, 10, 1, 0, 0)).timestamp()
|
||||
|
||||
# Recording that spans the transition (1:00 AM to 3:30 AM EDT)
|
||||
# This is 1.5 hours of actual time but spans the "missing" hour
|
||||
after_transition = tz.localize(datetime(2024, 3, 10, 3, 30, 0)).timestamp()
|
||||
|
||||
with TestClient(self.app) as client:
|
||||
Recordings.insert(
|
||||
id="recording_during_transition",
|
||||
path="/media/recordings/transition.mp4",
|
||||
camera="front_door",
|
||||
start_time=before_transition,
|
||||
end_time=after_transition,
|
||||
duration=after_transition - before_transition,
|
||||
motion=100,
|
||||
objects=5,
|
||||
).execute()
|
||||
|
||||
response = client.get(
|
||||
"/recordings/summary",
|
||||
params={"timezone": "America/New_York", "cameras": "all"},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
summary = response.json()
|
||||
|
||||
# The recording should appear on March 10
|
||||
assert len(summary) == 1
|
||||
assert "2024-03-10" in summary
|
||||
assert summary["2024-03-10"] is True
|
||||
|
||||
def test_recordings_summary_utc_timezone(self):
|
||||
"""
|
||||
Test recordings summary with UTC timezone (no DST).
|
||||
"""
|
||||
# Use UTC timestamps directly
|
||||
march_9_utc = datetime(2024, 3, 9, 17, 0, 0, tzinfo=timezone.utc).timestamp()
|
||||
march_10_utc = datetime(2024, 3, 10, 17, 0, 0, tzinfo=timezone.utc).timestamp()
|
||||
|
||||
with TestClient(self.app) as client:
|
||||
Recordings.insert(
|
||||
id="recording_march_9_utc",
|
||||
path="/media/recordings/march_9_utc.mp4",
|
||||
camera="front_door",
|
||||
start_time=march_9_utc,
|
||||
end_time=march_9_utc + 3600,
|
||||
duration=3600,
|
||||
motion=100,
|
||||
objects=5,
|
||||
).execute()
|
||||
|
||||
Recordings.insert(
|
||||
id="recording_march_10_utc",
|
||||
path="/media/recordings/march_10_utc.mp4",
|
||||
camera="front_door",
|
||||
start_time=march_10_utc,
|
||||
end_time=march_10_utc + 3600,
|
||||
duration=3600,
|
||||
motion=150,
|
||||
objects=8,
|
||||
).execute()
|
||||
|
||||
# Test with UTC timezone
|
||||
response = client.get(
|
||||
"/recordings/summary", params={"timezone": "utc", "cameras": "all"}
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
summary = response.json()
|
||||
|
||||
# Verify we get both days
|
||||
assert len(summary) == 2
|
||||
assert "2024-03-09" in summary
|
||||
assert "2024-03-10" in summary
|
||||
assert summary["2024-03-09"] is True
|
||||
assert summary["2024-03-10"] is True
|
||||
|
||||
def test_recordings_summary_no_recordings(self):
|
||||
"""
|
||||
Test recordings summary when no recordings exist.
|
||||
"""
|
||||
with TestClient(self.app) as client:
|
||||
response = client.get(
|
||||
"/recordings/summary",
|
||||
params={"timezone": "America/New_York", "cameras": "all"},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
summary = response.json()
|
||||
assert len(summary) == 0
|
||||
|
||||
def test_recordings_summary_single_camera_filter(self):
|
||||
"""
|
||||
Test recordings summary filtered to a single camera.
|
||||
"""
|
||||
tz = pytz.timezone("America/New_York")
|
||||
march_10_noon = tz.localize(datetime(2024, 3, 10, 12, 0, 0)).timestamp()
|
||||
|
||||
with TestClient(self.app) as client:
|
||||
# Insert recordings for both cameras
|
||||
Recordings.insert(
|
||||
id="front_recording",
|
||||
path="/media/recordings/front.mp4",
|
||||
camera="front_door",
|
||||
start_time=march_10_noon,
|
||||
end_time=march_10_noon + 3600,
|
||||
duration=3600,
|
||||
motion=100,
|
||||
objects=5,
|
||||
).execute()
|
||||
|
||||
Recordings.insert(
|
||||
id="back_recording",
|
||||
path="/media/recordings/back.mp4",
|
||||
camera="back_door",
|
||||
start_time=march_10_noon,
|
||||
end_time=march_10_noon + 3600,
|
||||
duration=3600,
|
||||
motion=150,
|
||||
objects=8,
|
||||
).execute()
|
||||
|
||||
# Test with only front_door camera
|
||||
response = client.get(
|
||||
"/recordings/summary",
|
||||
params={"timezone": "America/New_York", "cameras": "front_door"},
|
||||
)
|
||||
|
||||
assert response.status_code == 200
|
||||
summary = response.json()
|
||||
assert len(summary) == 1
|
||||
assert "2024-03-10" in summary
|
||||
assert summary["2024-03-10"] is True
|
||||
@ -196,7 +196,9 @@ class CameraWatchdog(threading.Thread):
|
||||
self.sleeptime = self.config.ffmpeg.retry_interval
|
||||
|
||||
self.config_subscriber = CameraConfigUpdateSubscriber(
|
||||
None, {config.name: config}, [CameraConfigUpdateEnum.enabled]
|
||||
None,
|
||||
{config.name: config},
|
||||
[CameraConfigUpdateEnum.enabled, CameraConfigUpdateEnum.record],
|
||||
)
|
||||
self.requestor = InterProcessRequestor()
|
||||
self.was_enabled = self.config.enabled
|
||||
|
||||
@ -218,7 +218,10 @@
|
||||
}
|
||||
},
|
||||
"label": {
|
||||
"back": "Torna enrere"
|
||||
"back": "Torna enrere",
|
||||
"hide": "Oculta {{item}}",
|
||||
"show": "Mostra {{item}}",
|
||||
"ID": "ID"
|
||||
},
|
||||
"button": {
|
||||
"apply": "Aplicar",
|
||||
@ -281,5 +284,14 @@
|
||||
"readTheDocumentation": "Llegir la documentació",
|
||||
"information": {
|
||||
"pixels": "{{area}}px"
|
||||
},
|
||||
"list": {
|
||||
"two": "{{0}} i {{1}}",
|
||||
"many": "{{items}}, i {{last}}",
|
||||
"separatorWithSpace": ",· "
|
||||
},
|
||||
"field": {
|
||||
"optional": "Opcional",
|
||||
"internalID": "L'ID intern que Frigate s'utilitza a la configuració i a la base de dades"
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,6 +117,7 @@
|
||||
"search": {
|
||||
"placeholder": "Cerca per etiqueta o subetiqueta..."
|
||||
},
|
||||
"noImages": "No s'han trobat miniatures per a aquesta càmera"
|
||||
"noImages": "No s'han trobat miniatures per a aquesta càmera",
|
||||
"unknownLabel": "Imatge activadora desada"
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,7 +5,10 @@
|
||||
"renameCategory": "Reanomena la classe",
|
||||
"deleteCategory": "Suprimeix la classe",
|
||||
"deleteImages": "Suprimeix les imatges",
|
||||
"trainModel": "Model de tren"
|
||||
"trainModel": "Model de tren",
|
||||
"addClassification": "Afegeix una classificació",
|
||||
"deleteModels": "Suprimeix els models",
|
||||
"editModel": "Edita el model"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
@ -13,13 +16,19 @@
|
||||
"deletedImage": "Imatges suprimides",
|
||||
"categorizedImage": "Imatge classificada amb èxit",
|
||||
"trainedModel": "Model entrenat amb èxit.",
|
||||
"trainingModel": "S'ha iniciat amb èxit la formació de models."
|
||||
"trainingModel": "S'ha iniciat amb èxit la formació de models.",
|
||||
"deletedModel_one": "S'ha suprimit correctament el model {{count}}",
|
||||
"deletedModel_many": "S'han suprimit correctament {{count}} models",
|
||||
"deletedModel_other": "",
|
||||
"updatedModel": "S'ha actualitzat correctament la configuració del model"
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "No s'ha pogut suprimir: {{errorMessage}}",
|
||||
"deleteCategoryFailed": "No s'ha pogut suprimir la classe: {{errorMessage}}",
|
||||
"categorizeFailed": "No s'ha pogut categoritzar la imatge: {{errorMessage}}",
|
||||
"trainingFailed": "No s'ha pogut iniciar l'entrenament del model: {{errorMessage}}"
|
||||
"trainingFailed": "No s'ha pogut iniciar l'entrenament del model: {{errorMessage}}",
|
||||
"deleteModelFailed": "No s'ha pogut suprimir el model: {{errorMessage}}",
|
||||
"updateModelFailed": "No s'ha pogut actualitzar el model: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
@ -43,7 +52,8 @@
|
||||
},
|
||||
"train": {
|
||||
"title": "Classificacions recents",
|
||||
"aria": "Selecciona les classificacions recents"
|
||||
"aria": "Selecciona les classificacions recents",
|
||||
"titleShort": "Recent"
|
||||
},
|
||||
"categories": "Classes",
|
||||
"createCategory": {
|
||||
@ -98,7 +108,8 @@
|
||||
"stateRequiresTwoClasses": "Els models d'estat requereixen almenys 2 classes",
|
||||
"objectLabelRequired": "Seleccioneu una etiqueta d'objecte",
|
||||
"objectTypeRequired": "Seleccioneu un tipus de classificació"
|
||||
}
|
||||
},
|
||||
"states": "Estats"
|
||||
},
|
||||
"step2": {
|
||||
"description": "Seleccioneu les càmeres i definiu l'àrea a monitoritzar per a cada càmera. El model classificarà l'estat d'aquestes àrees.",
|
||||
@ -131,5 +142,23 @@
|
||||
},
|
||||
"generateSuccess": "Imatges de mostra generades amb èxit"
|
||||
}
|
||||
},
|
||||
"deleteModel": {
|
||||
"title": "Suprimeix el model de classificació",
|
||||
"single": "Esteu segur que voleu suprimir {{name}}? Això suprimirà permanentment totes les dades associades, incloses les imatges i les dades d'entrenament. Aquesta acció no es pot desfer.",
|
||||
"desc": "Esteu segur que voleu suprimir {{count}} model(s)? Això suprimirà permanentment totes les dades associades, incloses les imatges i les dades d'entrenament. Aquesta acció no es pot desfer."
|
||||
},
|
||||
"menu": {
|
||||
"objects": "Objectes",
|
||||
"states": "Estats"
|
||||
},
|
||||
"details": {
|
||||
"scoreInfo": "La puntuació representa la confiança mitjana de la classificació en totes les deteccions d'aquest objecte."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Edita el model de classificació",
|
||||
"descriptionState": "Edita les classes per a aquest model de classificació d'estats. Els canvis requeriran tornar a entrenar el model.",
|
||||
"descriptionObject": "Edita el tipus d'objecte i el tipus de classificació per a aquest model de classificació d'objectes.",
|
||||
"stateClassesInfo": "Nota: Canviar les classes d'estat requereix tornar a entrenar el model amb les classes actualitzades."
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,10 +43,17 @@
|
||||
"aria": "Canvia la vista de detall",
|
||||
"trackedObject_other": "objectes",
|
||||
"noObjectDetailData": "No hi ha dades de detall d'objecte disponibles.",
|
||||
"label": "Detall"
|
||||
"label": "Detall",
|
||||
"settings": "Configuració de la vista detallada",
|
||||
"alwaysExpandActive": {
|
||||
"title": "Expandeix sempre actiu",
|
||||
"desc": "Expandeix sempre els detalls de l'objecte de la revisió activa quan estigui disponible."
|
||||
}
|
||||
},
|
||||
"objectTrack": {
|
||||
"clickToSeek": "Feu clic per cercar aquesta hora",
|
||||
"trackedPoint": "Punt de seguiment"
|
||||
}
|
||||
},
|
||||
"zoomIn": "Amplia",
|
||||
"zoomOut": "Redueix"
|
||||
}
|
||||
|
||||
@ -84,7 +84,8 @@
|
||||
"details": "detalls",
|
||||
"snapshot": "instantània",
|
||||
"video": "vídeo",
|
||||
"object_lifecycle": "cicle de vida de l'objecte"
|
||||
"object_lifecycle": "cicle de vida de l'objecte",
|
||||
"thumbnail": "miniatura"
|
||||
},
|
||||
"details": {
|
||||
"timestamp": "Marca temporal",
|
||||
@ -240,7 +241,7 @@
|
||||
"noImageFound": "No s'ha trobat cap imatge amb aquesta hora.",
|
||||
"createObjectMask": "Crear màscara d'objecte",
|
||||
"adjustAnnotationSettings": "Ajustar configuració d'anotacions",
|
||||
"scrollViewTips": "Desplaça per veure els moments significants del cicle de vida d'aquest objecte.",
|
||||
"scrollViewTips": "Feu clic per veure els moments significatius del cicle de vida d'aquest objecte.",
|
||||
"autoTrackingTips": "Limitar les posicións de la caixa serà inacurat per càmeras de seguiment automàtic.",
|
||||
"count": "{{first}} de {{second}}",
|
||||
"trackedPoint": "Punt Seguit",
|
||||
@ -270,7 +271,7 @@
|
||||
},
|
||||
"offset": {
|
||||
"label": "Òfset d'Anotació",
|
||||
"desc": "Aquestes dades provenen del flux de detecció de la càmera, però se superposen a les imatges del flux de gravació. És poc probable que els dos fluxos estiguin perfectament sincronitzats. Com a resultat, el quadre delimitador i el metratge no s'alinearan perfectament. Tanmateix, es pot utilitzar el camp <code>annotation_offset</code> per ajustar-ho.",
|
||||
"desc": "Aquestes dades provenen del flux de detecció de la càmera, però se superposen a les imatges del flux de gravació. És poc probable que els dos fluxos estiguin perfectament sincronitzats. Com a resultat, el quadre delimitador i les imatges no s'alinearan perfectament. Tanmateix, es pot utilitzar el camp <code>annotation_offset</code> per ajustar-ho.",
|
||||
"millisecondsToOffset": "Millisegons per l'òfset de detecció d'anotacions per. <em>Per defecte: 0</em>",
|
||||
"tips": "CONSELL: Imagineu-vos que hi ha un clip d'esdeveniment amb una persona caminant d'esquerra a dreta. Si el quadre delimitador de la cronologia de l'esdeveniment està constantment a l'esquerra de la persona, aleshores s'hauria de disminuir el valor. De la mateixa manera, si una persona camina d'esquerra a dreta i el quadre delimitador està constantment per davant de la persona, aleshores s'hauria d'augmentar el valor.",
|
||||
"toast": {
|
||||
|
||||
@ -13,5 +13,11 @@
|
||||
"error": {
|
||||
"renameExportFailed": "Error al canviar el nom de l’exportació: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"tooltip": {
|
||||
"shareExport": "Comparteix l'exportació",
|
||||
"downloadVideo": "Baixa el vídeo",
|
||||
"editName": "Edita el nom",
|
||||
"deleteExport": "Suprimeix l'exportació"
|
||||
}
|
||||
}
|
||||
|
||||
@ -55,12 +55,12 @@
|
||||
"searchFor": "Buscar {{inputValue}}",
|
||||
"button": {
|
||||
"clear": "Netejar cerca",
|
||||
"save": "Desar la cerca",
|
||||
"delete": "Suprimeix la recerca desada",
|
||||
"filterInformation": "Informació de filtre",
|
||||
"save": "Desa la cerca",
|
||||
"delete": "Elimina la recerca desada",
|
||||
"filterInformation": "Informació del filtre",
|
||||
"filterActive": "Filtres actius"
|
||||
},
|
||||
"trackedObjectId": "ID d'objecte rastrejat",
|
||||
"trackedObjectId": "ID de l'objecte rastrejat",
|
||||
"placeholder": {
|
||||
"search": "Cercar…"
|
||||
},
|
||||
|
||||
@ -49,6 +49,10 @@
|
||||
"playAlertVideos": {
|
||||
"label": "Reproduir vídeos d’alerta",
|
||||
"desc": "Per defecte, les alertes recents al tauler en directe es reprodueixen com a vídeos petits en bucle. Desactiva aquesta opció per mostrar només una imatge estàtica de les alertes recents en aquest dispositiu/navegador."
|
||||
},
|
||||
"displayCameraNames": {
|
||||
"label": "Mostra sempre els noms de la càmera",
|
||||
"desc": "Mostra sempre els noms de les càmeres en un xip al tauler de visualització en directe multicàmera."
|
||||
}
|
||||
},
|
||||
"storedLayouts": {
|
||||
@ -695,7 +699,9 @@
|
||||
},
|
||||
"actions": {
|
||||
"alert": "Marcar com Alerta",
|
||||
"notification": "Enviar Notificació"
|
||||
"notification": "Enviar Notificació",
|
||||
"sub_label": "Afegeix una subetiqueta",
|
||||
"attribute": "Afegeix un atribut"
|
||||
},
|
||||
"dialog": {
|
||||
"createTrigger": {
|
||||
@ -713,25 +719,28 @@
|
||||
"form": {
|
||||
"name": {
|
||||
"title": "Nom",
|
||||
"placeholder": "Entrar el nom del disparador",
|
||||
"placeholder": "Anomena aquest activador",
|
||||
"error": {
|
||||
"minLength": "El nom ha de tenir almenys 2 caràcters de llargada.",
|
||||
"invalidCharacters": "El nom només pot contenir lletres, números, guions i guinons baixos.",
|
||||
"minLength": "El camp ha de tenir almenys 2 caràcters.",
|
||||
"invalidCharacters": "El camp només pot contenir lletres, números, guions baixos i guions.",
|
||||
"alreadyExists": "El disparador amb aquest nom ja existeix per aquesta càmera."
|
||||
}
|
||||
},
|
||||
"description": "Introduïu un nom o una descripció únics per a identificar aquest activador"
|
||||
},
|
||||
"enabled": {
|
||||
"description": "Activar o desactivar aquest disparador"
|
||||
},
|
||||
"type": {
|
||||
"title": "Tipus",
|
||||
"placeholder": "Selecciona un tipus de disparador"
|
||||
"placeholder": "Selecciona un tipus de disparador",
|
||||
"description": "Activa quan es detecta una descripció similar d'un objecte rastrejat",
|
||||
"thumbnail": "Activa quan es detecti una miniatura d'objecte rastrejada similar"
|
||||
},
|
||||
"content": {
|
||||
"title": "Contingut",
|
||||
"imagePlaceholder": "Selecciona una imatge",
|
||||
"imagePlaceholder": "Selecciona una miniatura",
|
||||
"textPlaceholder": "Entra el contingut de text",
|
||||
"imageDesc": "Selecciona una imatge per disparar aquesta acció quan una imatge similar sigui detectada.",
|
||||
"imageDesc": "Només es mostren les 100 miniatures més recents. Si no podeu trobar la miniatura desitjada, reviseu els objectes anteriors a Explora i configureu un activador des del menú.",
|
||||
"textDesc": "Entra el text per disparar aquesta acció quan es detecti una descripció d'objecte a rastrejar similar.",
|
||||
"error": {
|
||||
"required": "Contigunt requerit."
|
||||
@ -742,11 +751,12 @@
|
||||
"error": {
|
||||
"min": "El llindar ha de ser mínim 0",
|
||||
"max": "El llindar ha de ser máxim 1"
|
||||
}
|
||||
},
|
||||
"desc": "Estableix el llindar de similitud per a aquest activador. Un llindar més alt significa que es requereix una coincidència més propera per disparar el disparador."
|
||||
},
|
||||
"actions": {
|
||||
"title": "Accions",
|
||||
"desc": "Per defecte, Frigate dispara un missatge MQTT per tots els disparadors. Tria una acció adicional per realitzar quan aquest disparador dispari.",
|
||||
"desc": "Per defecte, Frigate dispara un missatge MQTT per a tots els activadors. Subetiquetes afegeix el nom de l'activador a l'etiqueta de l'objecte. Els atributs són metadades cercables emmagatzemades per separat a les metadades de l'objecte rastrejat.",
|
||||
"error": {
|
||||
"min": "S'ha de seleccionar una acció com a mínim."
|
||||
}
|
||||
@ -772,13 +782,30 @@
|
||||
},
|
||||
"documentTitle": "Disparadors",
|
||||
"management": {
|
||||
"title": "Gestió de disparadors",
|
||||
"title": "Activadors",
|
||||
"desc": "Gestionar els disparadors de {{camera}}. Usa les tipus de miniatures per disparar miniatures similars a l'objecte a seguir seleccionat, i el tipus de descripció per disparar en cas de descripcions similars a l'especificada."
|
||||
},
|
||||
"addTrigger": "Afegir disaprador",
|
||||
"semanticSearch": {
|
||||
"desc": "La cerca semàntica ha d'estar activada per a utilitzar els activadors.",
|
||||
"title": "La cerca semàntica està desactivada"
|
||||
},
|
||||
"wizard": {
|
||||
"title": "Crea un activador",
|
||||
"step1": {
|
||||
"description": "Configura la configuració bàsica per al vostre activador."
|
||||
},
|
||||
"step2": {
|
||||
"description": "Configura el contingut que activarà aquesta acció."
|
||||
},
|
||||
"step3": {
|
||||
"description": "Configura el llindar i les accions d'aquest activador."
|
||||
},
|
||||
"steps": {
|
||||
"nameAndType": "Nom i tipus",
|
||||
"configureData": "Configura les dades",
|
||||
"thresholdAndActions": "Llindar i accions"
|
||||
}
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
@ -831,7 +858,9 @@
|
||||
"createRole": "Rol {{role}} creat exitosament",
|
||||
"updateCameras": "Càmeres actualitzades per al rol {{role}}",
|
||||
"deleteRole": "Rol {{role}} eliminat exitosament",
|
||||
"userRolesUpdated": "{{count}} usuari(s) asignats a aquest rol s'han actualitzat a 'visor', i tenen accés a totes les càmeres."
|
||||
"userRolesUpdated_one": "{{count}} usuari(s) asignats a aquest rol s'han actualitzat a 'visor', i tenen accés a totes les càmeres.",
|
||||
"userRolesUpdated_many": "",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Error al crear el rol: {{errorMessage}}",
|
||||
@ -985,7 +1014,9 @@
|
||||
"estimatedBandwidth": "Amplada de banda estimad",
|
||||
"roles": "Rols",
|
||||
"streamValidated": "El flux {{number}} s'ha validat correctament",
|
||||
"streamValidationFailed": "Ha fallat la validació del flux {{number}}"
|
||||
"streamValidationFailed": "Ha fallat la validació del flux {{number}}",
|
||||
"ffmpegModule": "Usa el mode de compatibilitat del flux",
|
||||
"ffmpegModuleDescription": "Si el flux no es carrega després de diversos intents, proveu d'activar-ho. Quan està activat, Frigate utilitzarà el mòdul ffmpeg amb go2rtc. Això pot proporcionar una millor compatibilitat amb alguns fluxos de càmera."
|
||||
}
|
||||
},
|
||||
"cameraManagement": {
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
"unknownError": "Neznámá chyba. Zkontrolujte logy.",
|
||||
"webUnknownError": "Neznámá chuba. Zkontrolujte logy konzoly.",
|
||||
"rateLimit": "Limit požadavků překročen. Zkuste to znovu později."
|
||||
}
|
||||
},
|
||||
"firstTimeLogin": "Přihlašujete se poprvé? Přihlašovací údaje jsou vypsány v logu Frigate."
|
||||
}
|
||||
}
|
||||
|
||||
@ -1 +1,7 @@
|
||||
{}
|
||||
{
|
||||
"documentTitle": "Klasifikační modely",
|
||||
"button": {
|
||||
"deleteClassificationAttempts": "Odstranit Klasifikační obrazy",
|
||||
"renameCategory": "Přejmenovat třídu"
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
"aria": "Vybrat trénink"
|
||||
},
|
||||
"description": {
|
||||
"addFace": "Prúvodce přidání nové kolekce do Knižnice obličejů.",
|
||||
"addFace": "Přidejte novou kolekci do Knihovny obličejů nahráním prvního obrázku.",
|
||||
"placeholder": "Zadejte název pro tuto kolekci",
|
||||
"invalidName": "Neplatný název. Názvy mohou obsahovat pouze písmena, čísla, mezery, apostrofy, podtržítka a pomlčky."
|
||||
},
|
||||
|
||||
@ -11,7 +11,8 @@
|
||||
"general": "Obecné nastavení - Frigate",
|
||||
"frigatePlus": "Frigate+ nastavení - Frigate",
|
||||
"enrichments": "Nastavení obohacení - Frigate",
|
||||
"cameraManagement": "Správa kamer - Frigate"
|
||||
"cameraManagement": "Správa kamer - Frigate",
|
||||
"cameraReview": "Nastavení kontroly kamery - Frigate"
|
||||
},
|
||||
"frigatePlus": {
|
||||
"toast": {
|
||||
@ -846,7 +847,9 @@
|
||||
"createRole": "Role {{role}} byla úspěšně vytvořena",
|
||||
"updateCameras": "Kamery byly aktualizovány pro roli {{role}}",
|
||||
"deleteRole": "Role {{role}} byla úspěšně smazána",
|
||||
"userRolesUpdated": "{{count}} uživatel(ů) přiřazených k této roli bylo aktualizováno na „Divák“, který má přístup ke všem kamerám."
|
||||
"userRolesUpdated_one": "{{count}} uživatel(ů) přiřazených k této roli bylo aktualizováno na „Divák“, který má přístup ke všem kamerám.",
|
||||
"userRolesUpdated_few": "",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Nepodařilo se vytvořit roli: {{errorMessage}}",
|
||||
|
||||
@ -892,7 +892,8 @@
|
||||
"createRole": "Rolle {{role}} erfolgreich erstellt",
|
||||
"updateCameras": "Kameras für Rolle {{role}} aktualisiert",
|
||||
"deleteRole": "Rolle {{role}} erfolgreich gelöscht",
|
||||
"userRolesUpdated": "{{count}} Benutzer, denen diese Rolle zugewiesen wurde, wurden auf „Zuschauer“ aktualisiert, der Zugriff auf alle Kameras hat."
|
||||
"userRolesUpdated_one": "{{count}} Benutzer, denen diese Rolle zugewiesen wurde, wurden auf „Zuschauer“ aktualisiert, der Zugriff auf alle Kameras hat.",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Fehler beim Erstellen der Rolle: {{errorMessage}}",
|
||||
|
||||
@ -67,8 +67,11 @@
|
||||
},
|
||||
"activity_context_prompt": {
|
||||
"label": "Custom activity context prompt defining normal activity patterns for this property."
|
||||
},
|
||||
"camera_context": {
|
||||
"label": "Spatial context about the camera's field of view to help with descriptive accuracy. Should describe physical features and locations outside the frame. This is for spatial reference only and should NOT include subjective assessments."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,7 +74,7 @@
|
||||
"label": "Annotation Offset",
|
||||
"desc": "This data comes from your camera's detect feed but is overlayed on images from the the record feed. It is unlikely that the two streams are perfectly in sync. As a result, the bounding box and the footage will not line up perfectly. You can use this setting to offset the annotations forward or backward in time to better align them with the recorded footage.",
|
||||
"millisecondsToOffset": "Milliseconds to offset detect annotations by. <em>Default: 0</em>",
|
||||
"tips": "TIP: Imagine there is an event clip with a person walking from left to right. If the event timeline bounding box is consistently to the left of the person then the value should be decreased. Similarly, if a person is walking from left to right and the bounding box is consistently ahead of the person then the value should be increased.",
|
||||
"tips": "Lower the value if the video playback is ahead of the boxes and path points, and increase the value if the video playback is behind them. This value can be negative.",
|
||||
"toast": {
|
||||
"success": "Annotation offset for {{camera}} has been saved to the config file. Restart Frigate to apply your changes."
|
||||
}
|
||||
@ -215,6 +215,8 @@
|
||||
"trackedObjectsCount_other": "{{count}} tracked objects ",
|
||||
"searchResult": {
|
||||
"tooltip": "Matched {{type}} at {{confidence}}%",
|
||||
"previousTrackedObject": "Previous tracked object",
|
||||
"nextTrackedObject": "Next tracked object",
|
||||
"deleteTrackedObject": {
|
||||
"toast": {
|
||||
"success": "Tracked object deleted successfully.",
|
||||
|
||||
@ -745,7 +745,8 @@
|
||||
"createRole": "Role {{role}} created successfully",
|
||||
"updateCameras": "Cameras updated for role {{role}}",
|
||||
"deleteRole": "Role {{role}} deleted successfully",
|
||||
"userRolesUpdated": "{{count}} user(s) assigned to this role have been updated to 'viewer', which has access to all cameras."
|
||||
"userRolesUpdated_one": "{{count}} user assigned to this role has been updated to 'viewer', which has access to all cameras.",
|
||||
"userRolesUpdated_other": "{{count}} users assigned to this role have been updated to 'viewer', which has access to all cameras."
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Failed to create role: {{errorMessage}}",
|
||||
|
||||
@ -69,7 +69,7 @@
|
||||
"noVaildTimeSelected": "No se seleccionó un rango de tiempo válido.",
|
||||
"endTimeMustAfterStartTime": "La hora de finalización debe ser posterior a la hora de inicio."
|
||||
},
|
||||
"success": "Exportación iniciada con éxito. Ver el archivo en la carpeta /exports."
|
||||
"success": "Exportación iniciada con éxito. Ver el archivo en la página exportaciones."
|
||||
},
|
||||
"fromTimeline": {
|
||||
"saveExport": "Guardar exportación",
|
||||
|
||||
@ -1 +1,40 @@
|
||||
{}
|
||||
{
|
||||
"documentTitle": "Modelos de Clasificación",
|
||||
"button": {
|
||||
"deleteClassificationAttempts": "Borrar Imágenes de Clasificación.",
|
||||
"renameCategory": "Renombrar Clase",
|
||||
"deleteCategory": "Borrar Clase",
|
||||
"deleteImages": "Borrar Imágenes",
|
||||
"trainModel": "Entrenar Modelo",
|
||||
"addClassification": "Añadir Clasificación",
|
||||
"deleteModels": "Borrar Modelos",
|
||||
"editModel": "Editar Modelo"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"deletedCategory": "Clase Borrada",
|
||||
"deletedImage": "Imágenes Borradas",
|
||||
"deletedModel_one": "Borrado con éxito {{count}} modelo",
|
||||
"deletedModel_many": "Borrados con éxito {{count}} modelos",
|
||||
"deletedModel_other": "Borrados con éxito {{count}} modelos",
|
||||
"categorizedImage": "Imagen Clasificada Correctamente",
|
||||
"trainedModel": "Modelo entrenado correctamente."
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Fallo al borrar: {{errorMessage}}",
|
||||
"deleteCategoryFailed": "Fallo al borrar clase: {{errorMessage}}",
|
||||
"deleteModelFailed": "Fallo al borrar modelo: {{errorMessage}}",
|
||||
"categorizeFailed": "Fallo al categorizar imagen: {{errorMessage}}",
|
||||
"trainingFailed": "Fallo al iniciar el entrenamiento del modelo: {{errorMessage}}",
|
||||
"updateModelFailed": "Fallo al actualizar modelo: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
"title": "Borrar Clase",
|
||||
"desc": "¿Esta seguro de que quiere borrar la clase {{name}}? Esto borrará permanentemente todas las imágenes asociadas y requerirá reentrenar el modelo."
|
||||
},
|
||||
"deleteModel": {
|
||||
"title": "Borrar Modelo de Clasificación",
|
||||
"single": "¿Está seguro de que quiere eliminar {{name}}? Esto borrar permanentemente todos los datos asociados incluidas las imágenes y los datos de entrenamiento. Esta acción no se puede deshacer."
|
||||
}
|
||||
}
|
||||
|
||||
@ -37,5 +37,17 @@
|
||||
"selected_other": "{{count}} seleccionados",
|
||||
"detected": "detectado",
|
||||
"suspiciousActivity": "Actividad Sospechosa",
|
||||
"threateningActivity": "Actividad Amenzadora"
|
||||
"threateningActivity": "Actividad Amenzadora",
|
||||
"zoomIn": "Agrandar",
|
||||
"zoomOut": "Alejar",
|
||||
"detail": {
|
||||
"label": "Detalle",
|
||||
"trackedObject_one": "objeto",
|
||||
"trackedObject_other": "objetos",
|
||||
"noObjectDetailData": "No hay datos detallados del objeto.",
|
||||
"settings": "Configuración de la Vista Detalle"
|
||||
},
|
||||
"objectTrack": {
|
||||
"clickToSeek": "Clic para ir a este momento"
|
||||
}
|
||||
}
|
||||
|
||||
@ -110,7 +110,8 @@
|
||||
"snapshot": "captura instantánea",
|
||||
"video": "vídeo",
|
||||
"object_lifecycle": "ciclo de vida del objeto",
|
||||
"details": "detalles"
|
||||
"details": "detalles",
|
||||
"thumbnail": "miniatura"
|
||||
},
|
||||
"objectLifecycle": {
|
||||
"title": "Ciclo de vida del objeto",
|
||||
@ -224,5 +225,11 @@
|
||||
},
|
||||
"concerns": {
|
||||
"label": "Preocupaciones"
|
||||
},
|
||||
"trackingDetails": {
|
||||
"title": "Detalles del Seguimiento",
|
||||
"noImageFound": "No se ha encontrado imagen en este momento.",
|
||||
"createObjectMask": "Crear Máscara de Objeto",
|
||||
"adjustAnnotationSettings": "Ajustar configuración de anotaciones"
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,5 +13,11 @@
|
||||
"renameExportFailed": "No se pudo renombrar la exportación: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteExport.desc": "¿Estás seguro de que quieres eliminar {{exportName}}?"
|
||||
"deleteExport.desc": "¿Estás seguro de que quieres eliminar {{exportName}}?",
|
||||
"tooltip": {
|
||||
"shareExport": "Compartir exportación",
|
||||
"downloadVideo": "Descargar video",
|
||||
"editName": "Editar nombre",
|
||||
"deleteExport": "Eliminar exportación"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"description": {
|
||||
"addFace": "Guía para agregar una nueva colección a la Biblioteca de Rostros.",
|
||||
"addFace": "Agregar una nueva colección a la Biblioteca de Rostros subiendo tu primera imagen.",
|
||||
"placeholder": "Introduce un nombre para esta colección",
|
||||
"invalidName": "Nombre inválido. Los nombres solo pueden incluir letras, números, espacios, apóstrofes, guiones bajos y guiones."
|
||||
},
|
||||
@ -23,11 +23,11 @@
|
||||
"title": "Crear colección",
|
||||
"desc": "Crear una nueva colección",
|
||||
"new": "Crear nuevo rostro",
|
||||
"nextSteps": "Para construir una base sólida: <li>Usa la pestaña Entrenar para seleccionar y entrenar con imágenes de cada persona detectada.</li> <li>Enfócate en imágenes frontales para obtener los mejores resultados; evita entrenar con imágenes que capturen rostros en ángulo.</li>"
|
||||
"nextSteps": "Para construir una base sólida: <li>Usa la pestaña Reconocimientos Recientes para seleccionar y entrenar con imágenes de cada persona detectada.</li> <li>Céntrate en imágenes frontales para obtener los mejores resultados; evita entrenar con imágenes que capturen rostros de perfil.</li>"
|
||||
},
|
||||
"train": {
|
||||
"title": "Entrenar",
|
||||
"aria": "Seleccionar entrenamiento",
|
||||
"title": "Reconocimientos Recientes",
|
||||
"aria": "Seleccionar reconocimientos recientes",
|
||||
"empty": "No hay intentos recientes de reconocimiento facial"
|
||||
},
|
||||
"selectItem": "Seleccionar {{item}}",
|
||||
|
||||
@ -27,7 +27,8 @@
|
||||
"enrichments": "Análisis avanzado",
|
||||
"triggers": "Disparadores",
|
||||
"roles": "Rols",
|
||||
"cameraManagement": "Administración"
|
||||
"cameraManagement": "Administración",
|
||||
"cameraReview": "Revisar"
|
||||
},
|
||||
"dialog": {
|
||||
"unsavedChanges": {
|
||||
@ -864,7 +865,9 @@
|
||||
"createRole": "Rol {{role}} creado exitosamente",
|
||||
"updateCameras": "Cámara actualizada para el rol {{role}}",
|
||||
"deleteRole": "Rol {{role}} eliminado exitosamente",
|
||||
"userRolesUpdated": "{{count}} usuarios asignados a este rol han sido actualizados a 'visor', que tiene acceso a todas las cámaras."
|
||||
"userRolesUpdated_one": "{{count}} usuarios asignados a este rol han sido actualizados a 'visor', que tiene acceso a todas las cámaras.",
|
||||
"userRolesUpdated_many": "",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Creación de rol fallida: {{errorMessage}}",
|
||||
|
||||
@ -301,6 +301,7 @@
|
||||
},
|
||||
"list": {
|
||||
"two": "{{0}} et {{1}}",
|
||||
"many": "{{items}}, et {{last}}"
|
||||
"many": "{{items}}, et {{last}}",
|
||||
"separatorWithSpace": ", "
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,7 +5,10 @@
|
||||
"renameCategory": "Renommer la classe",
|
||||
"deleteCategory": "Supprimer la classe",
|
||||
"deleteImages": "Supprimer les images",
|
||||
"trainModel": "Entraîner le modèle"
|
||||
"trainModel": "Entraîner le modèle",
|
||||
"addClassification": "Ajouter une classification",
|
||||
"deleteModels": "Supprimer les modèles",
|
||||
"editModel": "Modifier le modèle"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
@ -13,13 +16,19 @@
|
||||
"deletedImage": "Images supprimées",
|
||||
"categorizedImage": "Image classifiée avec succès",
|
||||
"trainedModel": "Modèle entraîné avec succès.",
|
||||
"trainingModel": "L'entraînement du modèle a démarré avec succès."
|
||||
"trainingModel": "L'entraînement du modèle a démarré avec succès.",
|
||||
"deletedModel_one": "{{count}} modèle supprimé avec succès",
|
||||
"deletedModel_many": "{{count}} modèles supprimés avec succès",
|
||||
"deletedModel_other": "{{count}} modèles supprimés avec succès",
|
||||
"updatedModel": "Configuration du modèle mise à jour avec succès"
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Échec de la suppression : {{errorMessage}}",
|
||||
"deleteCategoryFailed": "Échec de la suppression de la classe : {{errorMessage}}",
|
||||
"categorizeFailed": "Échec de la catégorisation de l'image : {{errorMessage}}",
|
||||
"trainingFailed": "Échec du démarrage de l'entraînement du modèle : {{errorMessage}}"
|
||||
"trainingFailed": "Échec du démarrage de l'entraînement du modèle : {{errorMessage}}",
|
||||
"deleteModelFailed": "Impossible de supprimer le modèle : {{errorMessage}}",
|
||||
"updateModelFailed": "Impossible de mettre à jour le modèle : {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
@ -43,7 +52,8 @@
|
||||
},
|
||||
"train": {
|
||||
"title": "Classifications récentes",
|
||||
"aria": "Sélectionner des classifications récentes"
|
||||
"aria": "Sélectionner des classifications récentes",
|
||||
"titleShort": "Récent"
|
||||
},
|
||||
"categories": "Classes",
|
||||
"createCategory": {
|
||||
@ -98,7 +108,8 @@
|
||||
"stateRequiresTwoClasses": "Les modèles d'état nécessitent au moins deux classes.",
|
||||
"objectLabelRequired": "Veuillez sélectionner une étiquette d'objet.",
|
||||
"objectTypeRequired": "Veuillez sélectionner un type de classification."
|
||||
}
|
||||
},
|
||||
"states": "États"
|
||||
},
|
||||
"step2": {
|
||||
"description": "Sélectionnez les caméras et définissez la zone à surveiller pour chaque caméra. Le modèle classifiera l'état de ces zones.",
|
||||
@ -131,5 +142,23 @@
|
||||
},
|
||||
"generateSuccess": "Génération des images d'exemple réussie"
|
||||
}
|
||||
},
|
||||
"deleteModel": {
|
||||
"title": "Supprimer le modèle de classification",
|
||||
"single": "Voulez-vous vraiment supprimer {{name}} ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible.",
|
||||
"desc": "Voulez-vous vraiment supprimer {{count}} modèle(s) ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible."
|
||||
},
|
||||
"menu": {
|
||||
"objects": "Objets",
|
||||
"states": "États"
|
||||
},
|
||||
"details": {
|
||||
"scoreInfo": "Le score représente la moyenne de la confiance de classification pour toutes les détections de cet objet."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Modifier le modèle de classification",
|
||||
"descriptionState": "Modifier les classes pour ce modèle de classification d'état. Les modifications nécessiteront un réentraînement du modèle.",
|
||||
"descriptionObject": "Modifier le type d'objet et le type de classification pour ce modèle de classification d'objet",
|
||||
"stateClassesInfo": "Note : La modification des classes d'état nécessite un réentraînement du modèle avec les classes mises à jour."
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,10 +44,17 @@
|
||||
"trackedObject_one": "objet",
|
||||
"trackedObject_other": "objets",
|
||||
"noObjectDetailData": "Aucun détail d'objet disponible",
|
||||
"label": "Détail"
|
||||
"label": "Détail",
|
||||
"settings": "Paramètres de la vue Détail",
|
||||
"alwaysExpandActive": {
|
||||
"title": "Toujours développer l'élément actif",
|
||||
"desc": "Toujours développer les détails de l'objet de l'événement actif si disponibles"
|
||||
}
|
||||
},
|
||||
"objectTrack": {
|
||||
"trackedPoint": "Point suivi",
|
||||
"clickToSeek": "Cliquez pour atteindre ce moment."
|
||||
}
|
||||
},
|
||||
"zoomIn": "Zoom avant",
|
||||
"zoomOut": "Zoom arrière"
|
||||
}
|
||||
|
||||
@ -109,7 +109,8 @@
|
||||
"details": "détails",
|
||||
"video": "vidéo",
|
||||
"object_lifecycle": "cycle de vie de l'objet",
|
||||
"snapshot": "instantané"
|
||||
"snapshot": "instantané",
|
||||
"thumbnail": "Miniature"
|
||||
},
|
||||
"objectLifecycle": {
|
||||
"title": "Cycle de vie de l'objet",
|
||||
@ -240,7 +241,7 @@
|
||||
"noImageFound": "Aucune image trouvée pour cet horodatage",
|
||||
"createObjectMask": "Créer un masque d'objet",
|
||||
"adjustAnnotationSettings": "Ajuster les paramètres d'annotation",
|
||||
"scrollViewTips": "Défilez pour voir les moments significatifs du cycle de vie de cet objet.",
|
||||
"scrollViewTips": "Cliquez pour voir les moments significatifs du cycle de vie de cet objet.",
|
||||
"autoTrackingTips": "Les positions des cadres de détection seront imprécises pour les caméras à suivi automatique.",
|
||||
"count": "{{first}} sur {{second}}",
|
||||
"trackedPoint": "Point suivi",
|
||||
@ -264,7 +265,7 @@
|
||||
},
|
||||
"annotationSettings": {
|
||||
"offset": {
|
||||
"desc": "Ces données proviennent du flux de détection de votre caméra mais sont superposées aux images du flux d'enregistrement. Il est peu probable que les deux flux soient parfaitement synchronisés. Par conséquent, le cadre de détection et l'enregistrement ne seront pas parfaitement alignés. Cependant, le champ <code>annotation_offset</code> peut être utilisé pour corriger cela.",
|
||||
"desc": "Ces données proviennent du flux de détection de votre caméra, mais elles sont superposées aux images du flux d'enregistrement. Il est peu probable que les deux flux soient parfaitement synchronisés. Par conséquent, le cadre de délimitation et la vidéo ne s'aligneront pas parfaitement. Vous pouvez utiliser ce paramètre pour décaler les annotations vers l'avant ou vers l'arrière dans le temps afin de mieux les aligner avec la vidéo enregistrée.",
|
||||
"millisecondsToOffset": "Millisecondes de décalage pour les annotations de détection. <em>Par défaut : 0</em>",
|
||||
"tips": "ASTUCE : Imaginez une séquence d'événement avec une personne marchant de gauche à droite. Si le cadre de détection sur la chronologie de l'événement est constamment à gauche de la personne, la valeur doit être diminuée. De même, si une personne marche de gauche à droite et que le cadre de détection est constamment devant la personne, la valeur doit être augmentée.",
|
||||
"toast": {
|
||||
|
||||
@ -51,6 +51,10 @@
|
||||
"playAlertVideos": {
|
||||
"label": "Lire les vidéos d'alerte",
|
||||
"desc": "Par défaut, les alertes récentes du tableau de bord en direct sont diffusées sous forme de petites vidéos en boucle. Désactivez cette option pour afficher uniquement une image statique des alertes récentes sur cet appareil/navigateur."
|
||||
},
|
||||
"displayCameraNames": {
|
||||
"label": "Toujours afficher les noms des caméras",
|
||||
"desc": "Toujours afficher les noms des caméras dans une puce sur le tableau de bord de la vue en direct multi-caméras"
|
||||
}
|
||||
},
|
||||
"storedLayouts": {
|
||||
@ -767,7 +771,9 @@
|
||||
},
|
||||
"actions": {
|
||||
"alert": "Marquer comme alerte",
|
||||
"notification": "Envoyer une notification"
|
||||
"notification": "Envoyer une notification",
|
||||
"sub_label": "Ajouter une sous-étiquette",
|
||||
"attribute": "Ajouter un attribut"
|
||||
},
|
||||
"dialog": {
|
||||
"createTrigger": {
|
||||
@ -822,7 +828,7 @@
|
||||
},
|
||||
"actions": {
|
||||
"title": "Actions",
|
||||
"desc": "Par défaut, Frigate publie un message MQTT à chaque déclenchement. Sélectionnez une action complémentaire à exécuter lors de ce déclenchement.",
|
||||
"desc": "Par défaut, Frigate envoie un message MQTT pour tous les déclencheurs. Les sous-étiquettes ajoutent le nom du déclencheur à l'étiquette de l'objet. Les attributs sont des métadonnées recherchables stockées séparément dans les métadonnées de l'objet suivi.",
|
||||
"error": {
|
||||
"min": "Au moins une action doit être sélectionnée."
|
||||
}
|
||||
@ -887,7 +893,9 @@
|
||||
"createRole": "Rôle {{role}} créé avec succès",
|
||||
"updateCameras": "Caméras mis à jour pour le rôle {{role}}",
|
||||
"deleteRole": "Rôle {{role}} supprimé avec succès",
|
||||
"userRolesUpdated": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras."
|
||||
"userRolesUpdated_one": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras.",
|
||||
"userRolesUpdated_many": "",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Échec dans la création du rôle : {{errorMessage}}",
|
||||
@ -1072,7 +1080,9 @@
|
||||
"resolutionHigh": "La résolution {{resolution}} risque d'augmenter l'utilisation des ressources.",
|
||||
"resolutionLow": "La résolution {{resolution}} risque d'être trop faible pour détecter les petits objets de manière fiable."
|
||||
},
|
||||
"valid": "Valide"
|
||||
"valid": "Valide",
|
||||
"ffmpegModule": "Utiliser le mode de compatibilité du flux",
|
||||
"ffmpegModuleDescription": "Si le flux ne se charge pas après plusieurs tentatives, essayez d'activer cette option. Lorsqu'elle est activée, Frigate utilisera le module ffmpeg avec go2rtc. Cela peut offrir une meilleure compatibilité avec certains flux de caméra."
|
||||
}
|
||||
},
|
||||
"cameraManagement": {
|
||||
|
||||
@ -10,6 +10,7 @@
|
||||
"unknownError": "Ismeretlen hiba. Ellenőrizze a naplókat.",
|
||||
"webUnknownError": "Ismeretlen hiba. Ellenőrizze a konzol naplókat.",
|
||||
"rateLimit": "Túl sokszor próbálkozott. Próbálja meg később."
|
||||
}
|
||||
},
|
||||
"firstTimeLogin": "Először próbálsz bejelentkezni? A hitelesítési adatok a Frigate naplóiban vannak feltüntetve."
|
||||
}
|
||||
}
|
||||
|
||||
@ -1 +1,17 @@
|
||||
{}
|
||||
{
|
||||
"documentTitle": "Osztályozási modellek",
|
||||
"button": {
|
||||
"deleteClassificationAttempts": "Osztályozási képek törlése",
|
||||
"deleteImages": "Képek törlése",
|
||||
"trainModel": "Modell betanítása",
|
||||
"deleteModels": "Modellek törlése"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"deletedImage": "Törölt képek",
|
||||
"deletedModel_one": "Sikeresen törölt {{count}} modellt",
|
||||
"deletedModel_other": "",
|
||||
"categorizedImage": "A kép sikeresen osztályozva"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -36,5 +36,6 @@
|
||||
"selected_one": "{{count}} kiválasztva",
|
||||
"selected_other": "{{count}} kiválasztva",
|
||||
"suspiciousActivity": "Gyanús Tevékenység",
|
||||
"threateningActivity": "Fenyegető Tevékenység"
|
||||
"threateningActivity": "Fenyegető Tevékenység",
|
||||
"zoomIn": "Nagyítás"
|
||||
}
|
||||
|
||||
@ -13,5 +13,11 @@
|
||||
"error": {
|
||||
"renameExportFailed": "Sikertelen export átnevezés: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"tooltip": {
|
||||
"downloadVideo": "Videó letöltése",
|
||||
"editName": "Név szerkesztése",
|
||||
"deleteExport": "Export törlése",
|
||||
"shareExport": "Export megosztása"
|
||||
}
|
||||
}
|
||||
|
||||
@ -42,12 +42,12 @@
|
||||
"title": "Gyűjtemény létrehozása",
|
||||
"desc": "Új gyűjtemény létrehozása",
|
||||
"new": "Új arc létrhozása",
|
||||
"nextSteps": "A jó alap készítéséhez:<li>Használja a Tanítás fület az egyes észlelt személyekhez tartozó képek kiválasztására és betanítására.</li>A legjobb eredmény érdekében válassza az egyenesen előre néző arcokat ábrázoló képeket és kerülje a ferde szögből készült arcképeket a tanításhoz.</li></ul>"
|
||||
"nextSteps": "A jó alap készítéséhez:<li>Használja a Legutóbbi felismerések fület az egyes észlelt személyekhez tartozó képek kiválasztásához és betanításához.</li>A legjobb eredmény érdekében válassza az egyenesen előre néző arcokat ábrázoló képeket és kerülje a ferde szögből készült arcképeket a tanításhoz.</li></ul>"
|
||||
},
|
||||
"description": {
|
||||
"placeholder": "Adj nevet ennek a gyűjteménynek",
|
||||
"invalidName": "Nem megfelelő név. A nevek csak betűket, számokat, szóközöket, aposztrófokat, alulhúzásokat és kötőjeleket tartalmazhatnak.",
|
||||
"addFace": "Segédlet új gyűjtemény hozzáadásához az arckép könyvtárban."
|
||||
"addFace": "Adj hozzá egy új gyűjteményt az Arcképtárhoz az első képed feltöltésével."
|
||||
},
|
||||
"selectFace": "Arc kiválasztása",
|
||||
"deleteFaceLibrary": {
|
||||
|
||||
@ -799,7 +799,8 @@
|
||||
"createRole": "Szerepkör létrehozva: {{role}}",
|
||||
"updateCameras": "Kamerák frissítve a szerepkörhöz: {{role}}",
|
||||
"deleteRole": "Szerepkör sikeresen törölve: {{role}}",
|
||||
"userRolesUpdated": "{{count}} felhasználó, akit ehhez a szerepkörhöz rendeltünk, frissült „néző”-re, amely hozzáféréssel rendelkezik az összes kamerához."
|
||||
"userRolesUpdated_one": "{{count}} felhasználó, akit ehhez a szerepkörhöz rendeltünk, frissült „néző”-re, amely hozzáféréssel rendelkezik az összes kamerához.",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Nem sikerült létrehozni a szerepkört: {{errorMessage}}",
|
||||
|
||||
@ -84,5 +84,6 @@
|
||||
"banjo": "Banjo",
|
||||
"snoring": "Ngorok",
|
||||
"cough": "Batuk",
|
||||
"clapping": "Tepukan"
|
||||
"clapping": "Tepukan",
|
||||
"camera": "Kamera"
|
||||
}
|
||||
|
||||
@ -4,12 +4,13 @@
|
||||
"password": "Kata sandi",
|
||||
"login": "Masuk",
|
||||
"errors": {
|
||||
"usernameRequired": "Wajib Menggunakan Username",
|
||||
"passwordRequired": "Wajib memakai Password",
|
||||
"usernameRequired": "Username diperlukan",
|
||||
"passwordRequired": "Password diperlukan",
|
||||
"rateLimit": "Melewati batas permintaan. Coba lagi nanti.",
|
||||
"loginFailed": "Gagal Masuk",
|
||||
"unknownError": "Eror tidak diketahui. Mohon lihat log.",
|
||||
"webUnknownError": "Eror tidak diketahui. Mohon lihat log konsol."
|
||||
}
|
||||
},
|
||||
"firstTimeLogin": "Mencoba masuk untuk pertama kali? Kredensial sudah dicetak di dalam riwayat Frigate."
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,5 +13,6 @@
|
||||
}
|
||||
},
|
||||
"confirm": "Keluar tanpa menyimpan?",
|
||||
"safeModeDescription": "Frigate sedang dalam mode aman karena kesalahan validasi konfigurasi."
|
||||
"safeModeDescription": "Frigate sedang dalam mode aman karena kesalahan validasi konfigurasi.",
|
||||
"safeConfigEditor": "Editor Konfigurasi(Mode Aman)"
|
||||
}
|
||||
|
||||
@ -12,5 +12,48 @@
|
||||
"motion": "Data gerakan tidak ditemukan"
|
||||
},
|
||||
"timeline.aria": "Pilih timeline",
|
||||
"timeline": "Linimasa"
|
||||
"timeline": "Linimasa",
|
||||
"zoomIn": "Perbesar",
|
||||
"zoomOut": "Perkecil",
|
||||
"events": {
|
||||
"label": "Peristiwa-Peristiwa",
|
||||
"aria": "Pilih peristiwa",
|
||||
"noFoundForTimePeriod": "Tidak ada peristiwa dalam periode waktu berikut."
|
||||
},
|
||||
"detail": {
|
||||
"label": "Detil",
|
||||
"noDataFound": "Tidak ada detil data untuk di review",
|
||||
"aria": "Beralih tampilan detil",
|
||||
"trackedObject_one": "objek",
|
||||
"trackedObject_other": "objek-objek",
|
||||
"noObjectDetailData": "Tidak ada data objek detil tersedia.",
|
||||
"settings": "Pengaturan Tampilan Detil",
|
||||
"alwaysExpandActive": {
|
||||
"title": "Selalu lebarkan yang aktif",
|
||||
"desc": "Selalu perluas detil objek item tinjauan aktif jika tersedia."
|
||||
}
|
||||
},
|
||||
"objectTrack": {
|
||||
"trackedPoint": "Titik terlacak",
|
||||
"clickToSeek": "Klik untuk mencari waktu ini"
|
||||
},
|
||||
"documentTitle": "Tinjauan - Frigate",
|
||||
"recordings": {
|
||||
"documentTitle": "Rekaman - Frigate"
|
||||
},
|
||||
"calendarFilter": {
|
||||
"last24Hours": "24 Jam Terakhir"
|
||||
},
|
||||
"markAsReviewed": "Tandai sebagai sudah ditinjau",
|
||||
"markTheseItemsAsReviewed": "Tandai item-item berikut sebagai sudah ditinjau",
|
||||
"newReviewItems": {
|
||||
"button": "Item Batu Untuk Ditinjau",
|
||||
"label": "Lihat item ulasan baru"
|
||||
},
|
||||
"selected_one": "{{count}} terpilih",
|
||||
"selected_other": "{{count}} terpilih",
|
||||
"camera": "Kamera",
|
||||
"detected": "terdeteksi",
|
||||
"suspiciousActivity": "Aktivitas Mencurigakan",
|
||||
"threateningActivity": "Aktivitas yang Mengancam"
|
||||
}
|
||||
|
||||
@ -1,17 +1,23 @@
|
||||
{
|
||||
"documentTitle": "Expor - Frigate",
|
||||
"search": "Cari",
|
||||
"noExports": "Tidak bisa mengekspor",
|
||||
"noExports": "Ekspor tidak ditemukan",
|
||||
"deleteExport": "Hapus Ekspor",
|
||||
"deleteExport.desc": "Apakah Anda yakin ingin menghapus {{exportName}}?",
|
||||
"editExport": {
|
||||
"title": "Ganti Nama saat Ekspor",
|
||||
"desc": "Masukkan nama baru untuk mengekspor.",
|
||||
"title": "Ganti Nama Ekspor",
|
||||
"desc": "Masukkan nama baru untuk ekspor ini.",
|
||||
"saveExport": "Simpan Ekspor"
|
||||
},
|
||||
"toast": {
|
||||
"error": {
|
||||
"renameExportFailed": "Gagal mengganti nama export: {{errorMessage}}"
|
||||
"renameExportFailed": "Gagal mengganti nama ekspor: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"tooltip": {
|
||||
"shareExport": "Bagikan Ekspor",
|
||||
"downloadVideo": "Unduh Video",
|
||||
"editName": "Ubah nama",
|
||||
"deleteExport": "Hapus ekspor"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"description": {
|
||||
"addFace": "Tambah ke koleksi Pustaka Wajah.",
|
||||
"addFace": "Tambah ke koleksi Pustaka Wajah dengan men-upload gambar pertama anda.",
|
||||
"placeholder": "Masukkan Nama untuk koleksi ini",
|
||||
"invalidName": "Nama tidak valid. Nama hanya dapat berisi huruf, angka, spasi, apostrof, garis bawah, dan tanda hubung."
|
||||
},
|
||||
@ -18,13 +18,75 @@
|
||||
"createFaceLibrary": {
|
||||
"desc": "Buat koleksi baru",
|
||||
"title": "Buat Koleksi",
|
||||
"nextSteps": "Untuk membangun fondasi yang kuat:<li>Gunakan tab Latih untuk memilih dan melatih gambar untuk setiap orang yang terdeteksi.</li><li>Fokus pada gambar lurus untuk hasil terbaik; hindari melatih gambar yang menangkap wajah pada sudut tertentu.</li></ul>"
|
||||
"nextSteps": "Untuk membangun fondasi yang kuat:<li>Gunakan tab Pengenalan Terbaru untuk memilih dan melatih gambar untuk setiap orang yang terdeteksi.</li><li>Fokus pada gambar langsung untuk hasil terbaik; hindari melatih gambar yang menangkap wajah pada sudut tertentu.</li></ul>",
|
||||
"new": "Buat Wajah Baru"
|
||||
},
|
||||
"uploadFaceImage": {
|
||||
"desc": "Unggah gambar untuk dipindai wajah dan sertakan untuk {{pageToggle}}",
|
||||
"title": "Unggah Gambar Wajah"
|
||||
},
|
||||
"steps": {
|
||||
"faceName": "Masukkan Nama Wajah"
|
||||
"faceName": "Masukkan Nama Wajah",
|
||||
"uploadFace": "Unggah Gambar Wajah",
|
||||
"nextSteps": "Langkah Berikutnya",
|
||||
"description": {
|
||||
"uploadFace": "Upload sebuah gambar dari {{name}} yang menunjukkan wajah mereka dari sisi depan. Gambar tidak perlu dipotong ke wajah mereka."
|
||||
}
|
||||
},
|
||||
"train": {
|
||||
"title": "Pengenalan Terkini",
|
||||
"aria": "Pilih pengenalan terkini",
|
||||
"empty": "Tidak ada percobaan pengenalan wajah baru-baru ini"
|
||||
},
|
||||
"deleteFaceLibrary": {
|
||||
"title": "Hapus Nama",
|
||||
"desc": "Apakah anda yakin ingin menghapus koleksi {{name}}? Ini akan menghapus semua wajah terkait secara permanen."
|
||||
},
|
||||
"deleteFaceAttempts": {
|
||||
"title": "Hapus Wajah-Wajah",
|
||||
"desc_other": "Apakah anda yakin ingin menghapis {{count}} wajah? Aksi ini tidak dapat diurungkan."
|
||||
},
|
||||
"renameFace": {
|
||||
"title": "Ganti Nama Wajah",
|
||||
"desc": "Masukkan nama baru untuk {{name}}"
|
||||
},
|
||||
"button": {
|
||||
"deleteFaceAttempts": "Hapus Wajah",
|
||||
"addFace": "Tambah Wajah",
|
||||
"renameFace": "Ganti Nama Wajah",
|
||||
"deleteFace": "Hapus Wajah",
|
||||
"uploadImage": "Unggah Gambar",
|
||||
"reprocessFace": "Proses Ulang Wajah"
|
||||
},
|
||||
"imageEntry": {
|
||||
"validation": {
|
||||
"selectImage": "Silahkan pilih sebuah file gambar."
|
||||
},
|
||||
"dropActive": "Letakkan gambar di sini…",
|
||||
"dropInstructions": "Seret dan lepaskan atau tempel gambar di sini, atau klik untuk memilih",
|
||||
"maxSize": "Ukuran maksimum: {{size}}MB"
|
||||
},
|
||||
"nofaces": "Tidak ada wajah tersedia",
|
||||
"trainFaceAs": "Latih Gambar sebagai:",
|
||||
"trainFace": "Latih Wajah",
|
||||
"toast": {
|
||||
"success": {
|
||||
"uploadedImage": "Berhasil men unggah gambar.",
|
||||
"addFaceLibrary": "{{name}} telah berhasil ditambahkan ke Pustaka Wajah!",
|
||||
"deletedFace_other": "Berhasil menghapus {{count}} wajah.",
|
||||
"deletedName_other": "{{count}} wajah telah berhasil dihapus.",
|
||||
"renamedFace": "Berhasil mengganti nama wajah ke {{name}}",
|
||||
"trainedFace": "Berhasil melatih wajah.",
|
||||
"updatedFaceScore": "Berhasil memperbaharui nilai wajah."
|
||||
},
|
||||
"error": {
|
||||
"uploadingImageFailed": "Gagal menunggah gambar: {{errorMessage}}",
|
||||
"addFaceLibraryFailed": "Gagal mengatur nama wajah: {{errorMessage}}",
|
||||
"deleteFaceFailed": "Gagal untuk menghapus: {{errorMessage}}",
|
||||
"deleteNameFailed": "Gagal menghapus nama: {{errorMessage}}",
|
||||
"renameFaceFailed": "Gagal mengganti nama wajah: {{errorMessage}}",
|
||||
"trainFailed": "Gagal untuk melatih: {{errorMessage}}",
|
||||
"updateFaceScoreFailed": "Gagal untuk memperbaharui nilai wajah: {{errorMessage}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -145,7 +145,10 @@
|
||||
}
|
||||
},
|
||||
"label": {
|
||||
"back": "Vai indietro"
|
||||
"back": "Vai indietro",
|
||||
"hide": "Nascondi {{item}}",
|
||||
"show": "Mostra {{item}}",
|
||||
"ID": "ID"
|
||||
},
|
||||
"menu": {
|
||||
"configuration": "Configurazione",
|
||||
@ -265,7 +268,7 @@
|
||||
"title": "Ruolo",
|
||||
"admin": "Amministratore",
|
||||
"viewer": "Spettatore",
|
||||
"desc": "Gli Amministratori hanno accesso completo a tutte le funzionalità dell'interfaccia di Frigate. Gli Spettatori sono limitati alla sola visualizzazione delle telecamere, rivedono gli oggetti e le registrazioni storiche nell'interfaccia utente."
|
||||
"desc": "Gli amministratori hanno accesso completo a tutte le funzionalità dell'interfaccia utente di Frigate. Gli spettatori possono visualizzare solo le telecamere, gli elementi di revisione e i filmati storici nell'interfaccia utente."
|
||||
},
|
||||
"accessDenied": {
|
||||
"desc": "Non hai i permessi per visualizzare questa pagina.",
|
||||
@ -291,5 +294,14 @@
|
||||
"readTheDocumentation": "Leggi la documentazione",
|
||||
"information": {
|
||||
"pixels": "{{area}}px"
|
||||
},
|
||||
"list": {
|
||||
"two": "{{0}} e {{1}}",
|
||||
"many": "{{items}}, e {{last}}",
|
||||
"separatorWithSpace": ", "
|
||||
},
|
||||
"field": {
|
||||
"optional": "Opzionale",
|
||||
"internalID": "L'ID interno che Frigate utilizza nella configurazione e nel database"
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,7 +61,7 @@
|
||||
"export": "Esporta",
|
||||
"selectOrExport": "Seleziona o esporta",
|
||||
"toast": {
|
||||
"success": "Esportazione avviata correttamente. Visualizza il file nella cartella /exports.",
|
||||
"success": "Esportazione avviata correttamente. Visualizza il file nella pagina delle esportazioni.",
|
||||
"error": {
|
||||
"failed": "Impossibile avviare l'esportazione: {{error}}",
|
||||
"endTimeMustAfterStartTime": "L'ora di fine deve essere successiva all'ora di inizio",
|
||||
@ -129,6 +129,7 @@
|
||||
"search": {
|
||||
"placeholder": "Cerca per etichetta o sottoetichetta..."
|
||||
},
|
||||
"noImages": "Nessuna miniatura trovata per questa fotocamera"
|
||||
"noImages": "Nessuna miniatura trovata per questa fotocamera",
|
||||
"unknownLabel": "Immagine di attivazione salvata"
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@
|
||||
"label": "Cerca la fonte",
|
||||
"desc": "Scegli se cercare nelle miniature o nelle descrizioni degli oggetti tracciati.",
|
||||
"options": {
|
||||
"thumbnailImage": "Immagine anteprima",
|
||||
"thumbnailImage": "Immagine in miniatura",
|
||||
"description": "Descrizione"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1 +1,164 @@
|
||||
{}
|
||||
{
|
||||
"documentTitle": "Modelli di classificazione",
|
||||
"button": {
|
||||
"deleteClassificationAttempts": "Elimina immagini di classificazione",
|
||||
"renameCategory": "Rinomina classe",
|
||||
"deleteCategory": "Elimina classe",
|
||||
"deleteImages": "Elimina immagini",
|
||||
"trainModel": "Modello di addestramento",
|
||||
"addClassification": "Aggiungi classificazione",
|
||||
"deleteModels": "Elimina modelli",
|
||||
"editModel": "Modifica modello"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"deletedCategory": "Classe eliminata",
|
||||
"deletedImage": "Immagini eliminate",
|
||||
"categorizedImage": "Immagine classificata con successo",
|
||||
"trainedModel": "Modello addestrato con successo.",
|
||||
"trainingModel": "Avviato con successo l'addestramento del modello.",
|
||||
"deletedModel_one": "Eliminato con successo {{count}} modello",
|
||||
"deletedModel_many": "Eliminati con successo {{count}} modelli",
|
||||
"deletedModel_other": "Eliminati con successo {{count}} modelli",
|
||||
"updatedModel": "Configurazione del modello aggiornata correttamente"
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Impossibile eliminare: {{errorMessage}}",
|
||||
"deleteCategoryFailed": "Impossibile eliminare la classe: {{errorMessage}}",
|
||||
"categorizeFailed": "Impossibile categorizzare l'immagine: {{errorMessage}}",
|
||||
"trainingFailed": "Impossibile avviare l'addestramento del modello: {{errorMessage}}",
|
||||
"deleteModelFailed": "Impossibile eliminare il modello: {{errorMessage}}",
|
||||
"updateModelFailed": "Impossibile aggiornare il modello: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
"title": "Elimina classe",
|
||||
"desc": "Vuoi davvero eliminare la classe {{name}}? Questa operazione eliminerà definitivamente tutte le immagini associate e richiederà un nuovo addestramento del modello."
|
||||
},
|
||||
"deleteDatasetImages": {
|
||||
"title": "Elimina immagini della base dati",
|
||||
"desc": "Vuoi davvero eliminare {{count}} immagini da {{dataset}}? Questa azione non può essere annullata e richiederà un nuovo addestramento del modello."
|
||||
},
|
||||
"deleteTrainImages": {
|
||||
"title": "Elimina le immagini di addestramento",
|
||||
"desc": "Vuoi davvero eliminare {{count}} immagini? Questa azione non può essere annullata."
|
||||
},
|
||||
"renameCategory": {
|
||||
"title": "Rinomina classe",
|
||||
"desc": "Inserisci un nuovo nome per {{name}}. Sarà necessario riaddestrare il modello affinché la modifica del nome abbia effetto."
|
||||
},
|
||||
"description": {
|
||||
"invalidName": "Nome non valido. I nomi possono contenere solo lettere, numeri, spazi, apostrofi, caratteri di sottolineatura e trattini."
|
||||
},
|
||||
"train": {
|
||||
"title": "Classificazioni recenti",
|
||||
"titleShort": "Recente",
|
||||
"aria": "Seleziona classificazioni recenti"
|
||||
},
|
||||
"categories": "Classi",
|
||||
"createCategory": {
|
||||
"new": "Crea nuova classe"
|
||||
},
|
||||
"categorizeImageAs": "Classifica immagine come:",
|
||||
"categorizeImage": "Classifica immagine",
|
||||
"noModels": {
|
||||
"object": {
|
||||
"title": "Nessun modello di classificazione degli oggetti",
|
||||
"description": "Crea un modello personalizzato per classificare gli oggetti rilevati.",
|
||||
"buttonText": "Crea modello oggetto"
|
||||
},
|
||||
"state": {
|
||||
"title": "Nessun modello di classificazione dello stato",
|
||||
"description": "Crea un modello personalizzato per monitorare e classificare i cambiamenti di stato in aree specifiche della telecamera.",
|
||||
"buttonText": "Crea modello di stato"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
"title": "Crea nuova classificazione",
|
||||
"steps": {
|
||||
"nameAndDefine": "Nome e definizione",
|
||||
"stateArea": "Area di stato",
|
||||
"chooseExamples": "Scegli esempi"
|
||||
},
|
||||
"step1": {
|
||||
"description": "I modelli di stato monitorano le aree fisse delle telecamere per rilevare eventuali cambiamenti (ad esempio, porta aperta/chiusa). I modelli di oggetti aggiungono classificazioni agli oggetti rilevati (ad esempio, animali noti, addetti alle consegne, ecc.).",
|
||||
"name": "Nome",
|
||||
"namePlaceholder": "Inserisci il nome del modello...",
|
||||
"type": "Tipo",
|
||||
"typeState": "Stato",
|
||||
"typeObject": "Oggetto",
|
||||
"objectLabel": "Etichetta oggetto",
|
||||
"objectLabelPlaceholder": "Seleziona il tipo di oggetto...",
|
||||
"classificationType": "Tipo di classificazione",
|
||||
"classificationTypeTip": "Scopri i tipi di classificazione",
|
||||
"classificationTypeDesc": "Le sottoetichette aggiungono testo aggiuntivo all'etichetta dell'oggetto (ad esempio, \"Persona: UPS\"). Gli attributi sono metadati ricercabili, archiviati separatamente nei metadati dell'oggetto.",
|
||||
"classificationSubLabel": "Etichetta secondaria",
|
||||
"classificationAttribute": "Attributo",
|
||||
"classes": "Classi",
|
||||
"classesTip": "Scopri di più sulle classi",
|
||||
"classesStateDesc": "Definisci i diversi stati in cui può trovarsi l'area della tua telecamera. Ad esempio: \"aperto\" e \"chiuso\" per una porta del garage.",
|
||||
"classesObjectDesc": "Definisci le diverse categorie in cui classificare gli oggetti rilevati. Ad esempio: \"corriere\", \"residente\", \"straniero\" per la classificazione delle persone.",
|
||||
"classPlaceholder": "Inserisci il nome della classe...",
|
||||
"errors": {
|
||||
"nameRequired": "Il nome del modello è obbligatorio",
|
||||
"nameLength": "Il nome del modello deve contenere al massimo 64 caratteri",
|
||||
"nameOnlyNumbers": "Il nome del modello non può contenere solo numeri",
|
||||
"classRequired": "È richiesta almeno 1 classe",
|
||||
"classesUnique": "I nomi delle classi devono essere univoci",
|
||||
"stateRequiresTwoClasses": "I modelli di stato richiedono almeno 2 classi",
|
||||
"objectLabelRequired": "Seleziona un'etichetta per l'oggetto",
|
||||
"objectTypeRequired": "Seleziona un tipo di classificazione"
|
||||
},
|
||||
"states": "Stati"
|
||||
},
|
||||
"step2": {
|
||||
"description": "Seleziona le telecamere e definisci l'area da monitorare per ciascuna telecamera. Il modello classificherà lo stato di queste aree.",
|
||||
"cameras": "Telecamere",
|
||||
"selectCamera": "Seleziona telecamera",
|
||||
"noCameras": "Fai clic su + per aggiungere telecamere",
|
||||
"selectCameraPrompt": "Selezionare una telecamera dall'elenco per definire la sua area di monitoraggio"
|
||||
},
|
||||
"step3": {
|
||||
"selectImagesPrompt": "Seleziona tutte le immagini con: {{className}}",
|
||||
"selectImagesDescription": "Clicca sulle immagini per selezionarle. Clicca su Continua quando hai finito con questa classe.",
|
||||
"generating": {
|
||||
"title": "Generazione di immagini campione",
|
||||
"description": "Frigate sta estraendo immagini rappresentative dalle registrazioni. L'operazione potrebbe richiedere qualche istante..."
|
||||
},
|
||||
"training": {
|
||||
"title": "Modello di addestramento",
|
||||
"description": "Il tuo modello è in fase di addestramento in sottofondo. Chiudi questa finestra di dialogo e il tuo modello inizierà a funzionare non appena l'addestramento sarà completato."
|
||||
},
|
||||
"retryGenerate": "Riprova generazione",
|
||||
"noImages": "Nessuna immagine campione generata",
|
||||
"classifying": "Classificazione e addestramento...",
|
||||
"trainingStarted": "Addestramento iniziato con successo",
|
||||
"errors": {
|
||||
"noCameras": "Nessuna telecamera configurata",
|
||||
"noObjectLabel": "Nessuna etichetta oggetto selezionata",
|
||||
"generateFailed": "Impossibile generare esempi: {{error}}",
|
||||
"generationFailed": "Generazione fallita. Per favore riprova.",
|
||||
"classifyFailed": "Impossibile classificare le immagini: {{error}}"
|
||||
},
|
||||
"generateSuccess": "Immagini campione generate correttamente"
|
||||
}
|
||||
},
|
||||
"deleteModel": {
|
||||
"title": "Elimina modello di classificazione",
|
||||
"single": "Vuoi davvero eliminare {{name}}? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di allenamento. Questa azione non può essere annullata.",
|
||||
"desc": "Vuoi davvero eliminare {{count}} modello/i? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di addestramento. Questa azione non può essere annullata."
|
||||
},
|
||||
"menu": {
|
||||
"objects": "Oggetti",
|
||||
"states": "Stati"
|
||||
},
|
||||
"details": {
|
||||
"scoreInfo": "Il punteggio rappresenta la confidenza media della classificazione in tutti i rilevamenti di questo oggetto."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Modifica modello di classificazione",
|
||||
"descriptionState": "Modifica le classi per questo modello di classificazione dello stato. Le modifiche richiederanno un nuovo addestramento del modello.",
|
||||
"descriptionObject": "Modifica il tipo di oggetto e il tipo di classificazione per questo modello di classificazione degli oggetti.",
|
||||
"stateClassesInfo": "Nota: la modifica delle classi di stato richiede il riaddestramento del modello con le classi aggiornate."
|
||||
}
|
||||
}
|
||||
|
||||
@ -44,10 +44,17 @@
|
||||
"trackedObject_one": "oggetto",
|
||||
"trackedObject_other": "oggetti",
|
||||
"noObjectDetailData": "Non sono disponibili dati dettagliati sull'oggetto.",
|
||||
"label": "Dettaglio"
|
||||
"label": "Dettaglio",
|
||||
"settings": "Impostazioni di visualizzazione dettagliata",
|
||||
"alwaysExpandActive": {
|
||||
"title": "Espandi sempre attivo",
|
||||
"desc": "Espandere sempre i dettagli dell'oggetto dell'elemento di revisione attivo quando disponibili."
|
||||
}
|
||||
},
|
||||
"objectTrack": {
|
||||
"trackedPoint": "Punto tracciato",
|
||||
"clickToSeek": "Premi per cercare in questo momento"
|
||||
}
|
||||
},
|
||||
"zoomIn": "Ingrandisci",
|
||||
"zoomOut": "Rimpicciolisci"
|
||||
}
|
||||
|
||||
@ -158,7 +158,8 @@
|
||||
"snapshot": "istantanea",
|
||||
"object_lifecycle": "ciclo di vita dell'oggetto",
|
||||
"details": "dettagli",
|
||||
"video": "video"
|
||||
"video": "video",
|
||||
"thumbnail": "miniatura"
|
||||
},
|
||||
"itemMenu": {
|
||||
"downloadSnapshot": {
|
||||
@ -201,11 +202,15 @@
|
||||
},
|
||||
"hideObjectDetails": {
|
||||
"label": "Nascondi il percorso dell'oggetto"
|
||||
},
|
||||
"viewTrackingDetails": {
|
||||
"label": "Visualizza i dettagli di tracciamento",
|
||||
"aria": "Mostra i dettagli di tracciamento"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"confirmDelete": {
|
||||
"desc": "L'eliminazione di questo oggetto tracciato rimuove l'istantanea, eventuali incorporamenti salvati e tutte le voci associate al ciclo di vita dell'oggetto. Il filmato registrato di questo oggetto tracciato nella vista Storico <em>NON</em> verrà eliminato.<br /><br />Vuoi davvero procedere?",
|
||||
"desc": "L'eliminazione di questo oggetto tracciato rimuove l'istantanea, eventuali incorporamenti salvati e tutte le voci associate ai dettagli di tracciamento. Il filmato registrato di questo oggetto tracciato nella vista Storico <em>NON</em> verrà eliminato.<br /><br />Vuoi davvero procedere?",
|
||||
"title": "Conferma eliminazione"
|
||||
}
|
||||
},
|
||||
@ -230,5 +235,53 @@
|
||||
},
|
||||
"concerns": {
|
||||
"label": "Preoccupazioni"
|
||||
},
|
||||
"trackingDetails": {
|
||||
"title": "Dettagli di tracciamento",
|
||||
"noImageFound": "Nessuna immagine trovata per questo orario.",
|
||||
"createObjectMask": "Crea maschera oggetto",
|
||||
"adjustAnnotationSettings": "Regola le impostazioni di annotazione",
|
||||
"scrollViewTips": "Clicca per visualizzare i momenti più significativi del ciclo di vita di questo oggetto.",
|
||||
"autoTrackingTips": "Le posizioni dei riquadri di delimitazione saranno imprecise per le telecamere con tracciamento automatico.",
|
||||
"count": "{{first}} di {{second}}",
|
||||
"trackedPoint": "Punto tracciato",
|
||||
"lifecycleItemDesc": {
|
||||
"visible": "{{label}} rilevato",
|
||||
"entered_zone": "{{label}} è entrato in {{zones}}",
|
||||
"active": "{{label}} è diventato attivo",
|
||||
"stationary": "{{label}} è diventato stazionario",
|
||||
"attribute": {
|
||||
"faceOrLicense_plate": "{{attribute}} rilevato per {{label}}",
|
||||
"other": "{{label}} riconosciuto come {{attribute}}"
|
||||
},
|
||||
"gone": "{{label}} lasciato",
|
||||
"heard": "{{label}} sentito",
|
||||
"external": "{{label}} rilevato",
|
||||
"header": {
|
||||
"zones": "Zone",
|
||||
"ratio": "Rapporto",
|
||||
"area": "Area"
|
||||
}
|
||||
},
|
||||
"annotationSettings": {
|
||||
"title": "Impostazioni di annotazione",
|
||||
"showAllZones": {
|
||||
"title": "Mostra tutte le zone",
|
||||
"desc": "Mostra sempre le zone nei fotogrammi in cui gli oggetti sono entrati in una zona."
|
||||
},
|
||||
"offset": {
|
||||
"label": "Differenza annotazione",
|
||||
"desc": "Questi dati provengono dal flusso di rilevamento della telecamera, ma vengono sovrapposti alle immagini del flusso di registrazione. È improbabile che i due flussi siano perfettamente sincronizzati. Di conseguenza, il riquadro di delimitazione e il filmato non saranno perfettamente allineati. È possibile utilizzare questa impostazione per spostare le annotazioni in avanti o indietro nel tempo per allinearle meglio al filmato registrato.",
|
||||
"millisecondsToOffset": "Millisecondi per compensare il rilevamento delle annotazioni. <em>Predefinito: 0</em>",
|
||||
"tips": "SUGGERIMENTO: Immagina un video evento con una persona che cammina da sinistra a destra. Se il riquadro di delimitazione della cronologia dell'evento si trova costantemente a sinistra della persona, il valore dovrebbe essere diminuito. Allo stesso modo, se una persona cammina da sinistra a destra e il riquadro di delimitazione si trova costantemente davanti alla persona, il valore dovrebbe essere aumentato.",
|
||||
"toast": {
|
||||
"success": "La differenza dell'annotazione per {{camera}} è stato salvato nel file di configurazione. Riavvia Frigate per applicare le modifiche."
|
||||
}
|
||||
}
|
||||
},
|
||||
"carousel": {
|
||||
"previous": "Diapositiva precedente",
|
||||
"next": "Diapositiva successiva"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,5 +13,11 @@
|
||||
"error": {
|
||||
"renameExportFailed": "Impossibile rinominare l'esportazione: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"tooltip": {
|
||||
"shareExport": "Condividi esportazione",
|
||||
"downloadVideo": "Scarica video",
|
||||
"editName": "Modifica nome",
|
||||
"deleteExport": "Elimina esportazione"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{
|
||||
"selectItem": "Seleziona {{item}}",
|
||||
"description": {
|
||||
"addFace": "Procedura per aggiungere una nuova raccolta alla Libreria dei Volti.",
|
||||
"addFace": "Aggiungi una nuova raccolta alla Libreria dei Volti caricando la tua prima immagine.",
|
||||
"placeholder": "Inserisci un nome per questa raccolta",
|
||||
"invalidName": "Nome non valido. I nomi possono contenere solo lettere, numeri, spazi, apostrofi, caratteri di sottolineatura e trattini."
|
||||
},
|
||||
|
||||
@ -494,7 +494,11 @@
|
||||
"label": "Riproduci video di avvisi",
|
||||
"desc": "Per impostazione predefinita, gli avvisi recenti nella schermata dal vivo vengono riprodotti come brevi video in ciclo. Disattiva questa opzione per visualizzare solo un'immagine statica degli avvisi recenti su questo dispositivo/browser."
|
||||
},
|
||||
"title": "Schermata dal vivo"
|
||||
"title": "Schermata dal vivo",
|
||||
"displayCameraNames": {
|
||||
"label": "Mostra sempre i nomi delle telecamere",
|
||||
"desc": "Mostra sempre i nomi delle telecamere in una scheda nel cruscotto della visualizzazione dal vivo multi telecamera."
|
||||
}
|
||||
},
|
||||
"title": "Impostazioni generali",
|
||||
"storedLayouts": {
|
||||
@ -745,7 +749,7 @@
|
||||
"triggers": {
|
||||
"documentTitle": "Inneschi",
|
||||
"management": {
|
||||
"title": "Gestione inneschi",
|
||||
"title": "Inneschi",
|
||||
"desc": "Gestisci gli inneschi per {{camera}}. Utilizza il tipo miniatura per attivare miniature simili all'oggetto tracciato selezionato e il tipo descrizione per attivare descrizioni simili al testo specificato."
|
||||
},
|
||||
"addTrigger": "Aggiungi innesco",
|
||||
@ -766,7 +770,9 @@
|
||||
},
|
||||
"actions": {
|
||||
"alert": "Contrassegna come avviso",
|
||||
"notification": "Invia notifica"
|
||||
"notification": "Invia notifica",
|
||||
"sub_label": "Aggiungi sottoetichetta",
|
||||
"attribute": "Aggiungi attributo"
|
||||
},
|
||||
"dialog": {
|
||||
"createTrigger": {
|
||||
@ -784,25 +790,28 @@
|
||||
"form": {
|
||||
"name": {
|
||||
"title": "Nome",
|
||||
"placeholder": "Inserisci il nome dell'innesco",
|
||||
"placeholder": "Assegna un nome a questo innesco",
|
||||
"error": {
|
||||
"minLength": "Il nome deve essere lungo almeno 2 caratteri.",
|
||||
"invalidCharacters": "Il nome può contenere solo lettere, numeri, caratteri di sottolineatura e trattini.",
|
||||
"minLength": "Il campo deve contenere almeno 2 caratteri.",
|
||||
"invalidCharacters": "Il campo può contenere solo lettere, numeri, caratteri di sottolineatura e trattini.",
|
||||
"alreadyExists": "Per questa telecamera esiste già un innesco con questo nome."
|
||||
}
|
||||
},
|
||||
"description": "Inserisci un nome o una descrizione univoca per identificare questo innesco"
|
||||
},
|
||||
"enabled": {
|
||||
"description": "Abilita o disabilita questo innesco"
|
||||
},
|
||||
"type": {
|
||||
"title": "Tipo",
|
||||
"placeholder": "Seleziona il tipo di innesco"
|
||||
"placeholder": "Seleziona il tipo di innesco",
|
||||
"description": "Si attiva quando viene rilevata una descrizione di un oggetto simile tracciato",
|
||||
"thumbnail": "Attiva quando viene rilevata una miniatura di un oggetto simile tracciato"
|
||||
},
|
||||
"content": {
|
||||
"title": "Contenuto",
|
||||
"imagePlaceholder": "Seleziona un'immagine",
|
||||
"imagePlaceholder": "Seleziona una miniatura",
|
||||
"textPlaceholder": "Inserisci il contenuto del testo",
|
||||
"imageDesc": "Seleziona un'immagine per attivare questa azione quando viene rilevata un'immagine simile.",
|
||||
"imageDesc": "Vengono visualizzate solo le 100 miniature più recenti. Se non riesci a trovare la miniatura desiderata, controlla gli oggetti precedenti in Esplora e imposta un innesco dal menu.",
|
||||
"textDesc": "Inserisci il testo per attivare questa azione quando viene rilevata una descrizione simile dell'oggetto tracciato.",
|
||||
"error": {
|
||||
"required": "Il contenuto è obbligatorio."
|
||||
@ -813,11 +822,12 @@
|
||||
"error": {
|
||||
"min": "La soglia deve essere almeno 0",
|
||||
"max": "La soglia deve essere al massimo 1"
|
||||
}
|
||||
},
|
||||
"desc": "Imposta la soglia di similarità per questo innesco. Una soglia più alta indica che è necessaria una corrispondenza più vicina per attivare l'innesco."
|
||||
},
|
||||
"actions": {
|
||||
"title": "Azioni",
|
||||
"desc": "Per impostazione predefinita, Frigate invia un messaggio MQTT per tutti gli inneschi. Scegli un'azione aggiuntiva da eseguire quando questo innesco si attiva.",
|
||||
"desc": "Per impostazione predefinita, Frigate invia un messaggio MQTT per tutti gli inneschi. Le sottoetichette aggiungono il nome dell'innesco all'etichetta dell'oggetto. Gli attributi sono metadati ricercabili, memorizzati separatamente nei metadati dell'oggetto tracciato.",
|
||||
"error": {
|
||||
"min": "È necessario selezionare almeno un'azione."
|
||||
}
|
||||
@ -844,6 +854,23 @@
|
||||
"semanticSearch": {
|
||||
"title": "La ricerca semantica è disabilitata",
|
||||
"desc": "Per utilizzare gli inneschi, è necessario abilitare la ricerca semantica."
|
||||
},
|
||||
"wizard": {
|
||||
"title": "Crea innesco",
|
||||
"step1": {
|
||||
"description": "Configura le impostazioni di base per il tuo innesco."
|
||||
},
|
||||
"step2": {
|
||||
"description": "Imposta il contenuto che attiverà questa azione."
|
||||
},
|
||||
"step3": {
|
||||
"description": "Configura la soglia e le azioni per questo innesco."
|
||||
},
|
||||
"steps": {
|
||||
"nameAndType": "Nome e tipo",
|
||||
"configureData": "Configurare i dati",
|
||||
"thresholdAndActions": "Soglia e azioni"
|
||||
}
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
@ -865,7 +892,9 @@
|
||||
"createRole": "Ruolo {{role}} creato con successo",
|
||||
"updateCameras": "Telecamere aggiornate per il ruolo {{role}}",
|
||||
"deleteRole": "Ruolo {{role}} eliminato con successo",
|
||||
"userRolesUpdated": "{{count}} utenti assegnati a questo ruolo sono stati aggiornati a \"spettatore\", che ha accesso a tutte le telecamere."
|
||||
"userRolesUpdated_one": "{{count}} utenti assegnati a questo ruolo sono stati aggiornati a \"spettatore\", che ha accesso a tutte le telecamere.",
|
||||
"userRolesUpdated_many": "",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Impossibile creare il ruolo: {{errorMessage}}",
|
||||
@ -984,7 +1013,9 @@
|
||||
},
|
||||
"resolutionHigh": "Una risoluzione di {{resolution}} potrebbe causare un aumento dell'utilizzo delle risorse.",
|
||||
"resolutionLow": "Una risoluzione di {{resolution}} potrebbe essere troppo bassa per un rilevamento affidabile di oggetti di piccole dimensioni."
|
||||
}
|
||||
},
|
||||
"ffmpegModule": "Utilizza la modalità di compatibilità della trasmissione",
|
||||
"ffmpegModuleDescription": "Se il flusso non si carica dopo diversi tentativi, prova ad abilitare questa opzione. Se abilitata, Frigate utilizzerà il modulo ffmpeg con go2rtc. Questo potrebbe garantire una migliore compatibilità con alcuni flussi di telecamere."
|
||||
},
|
||||
"title": "Aggiungi telecamera",
|
||||
"description": "Per aggiungere una nuova telecamera alla tua installazione Frigate, segui i passaggi indicati di seguito.",
|
||||
|
||||
@ -582,7 +582,7 @@
|
||||
"createRole": "ロール {{role}} を作成しました",
|
||||
"updateCameras": "ロール {{role}} のカメラを更新しました",
|
||||
"deleteRole": "ロール {{role}} を削除しました",
|
||||
"userRolesUpdated": "このロールに割り当てられていた {{count}} ユーザーは「viewer」に更新され、すべてのカメラへの閲覧アクセスが付与されました。"
|
||||
"userRolesUpdated_other": "このロールに割り当てられていた {{count}} ユーザーは「viewer」に更新され、すべてのカメラへの閲覧アクセスが付与されました。"
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "ロールの作成に失敗しました: {{errorMessage}}",
|
||||
|
||||
@ -782,7 +782,9 @@
|
||||
"toast": {
|
||||
"success": {
|
||||
"deleteRole": "Rolė {{role}} sėkmingai pašalinta",
|
||||
"userRolesUpdated": "{{count}} šios rolės vartotojai buvo priskirti rolei 'žiūrovas', kuri turi prieigą prie visų kamerų.",
|
||||
"userRolesUpdated_one": "{{count}} šios rolės vartotojai buvo priskirti rolei 'žiūrovas', kuri turi prieigą prie visų kamerų.",
|
||||
"userRolesUpdated_few": "",
|
||||
"userRolesUpdated_other": "",
|
||||
"createRole": "Rolė {{role}} sėkmingai sukurta",
|
||||
"updateCameras": "Atnaujintos kameros rolei {{role}}"
|
||||
},
|
||||
|
||||
@ -294,6 +294,7 @@
|
||||
},
|
||||
"list": {
|
||||
"two": "{{0}} og {{1}}",
|
||||
"many": "{{items}}, og {{last}}"
|
||||
"many": "{{items}}, og {{last}}",
|
||||
"separatorWithSpace": ", "
|
||||
}
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
"false_other": "Dette er ikke en {{label}}"
|
||||
},
|
||||
"question": {
|
||||
"label": "Bekreft denne merkelappen for Frigate Plus",
|
||||
"label": "Bekreft denne etiketten for Frigate Plus",
|
||||
"ask_an": "Er dette objekt en <code>{{label}}</code>?",
|
||||
"ask_a": "Er dette objektet en <code>{{label}}</code>?",
|
||||
"ask_full": "Er dette objekt en <code>{{untranslatedLabel}}</code> ({{translatedLabel}})?"
|
||||
@ -56,7 +56,7 @@
|
||||
}
|
||||
},
|
||||
"toast": {
|
||||
"success": "Eksport startet. Se filen på eksportsiden.",
|
||||
"success": "Eksport startet. Se filen på eksportsiden.",
|
||||
"error": {
|
||||
"failed": "Klarte ikke å starte eksport: {{error}}",
|
||||
"noVaildTimeSelected": "Ingen gyldig tidsperiode valgt",
|
||||
@ -124,7 +124,7 @@
|
||||
"imagePicker": {
|
||||
"selectImage": "Velg et sporet objekts miniatyrbilde",
|
||||
"search": {
|
||||
"placeholder": "Søk etter (under-)merkelapp..."
|
||||
"placeholder": "Søk etter (under-)etikett..."
|
||||
},
|
||||
"noImages": "Ingen miniatyrbilder funnet for dette kameraet",
|
||||
"unknownLabel": "Lagret utløserbilde"
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
{
|
||||
"filter": "Filter",
|
||||
"labels": {
|
||||
"label": "Merkelapper",
|
||||
"label": "Etiketter",
|
||||
"all": {
|
||||
"title": "Alle masker / soner",
|
||||
"short": "Merkelapper"
|
||||
"short": "Etiketter"
|
||||
},
|
||||
"count": "{{count}} merkelapper",
|
||||
"count_other": "{{count}} Merkelapper",
|
||||
"count_one": "{{count}} Merkelapp"
|
||||
"count_other": "{{count}} Etiketter",
|
||||
"count_one": "{{count}} Etikett"
|
||||
},
|
||||
"features": {
|
||||
"hasVideoClip": "Har et videoklipp",
|
||||
@ -39,7 +39,7 @@
|
||||
"title": "Innstillinger",
|
||||
"defaultView": {
|
||||
"title": "Standard visning",
|
||||
"desc": "Når ingen filtre er valgt, vis et sammendrag av de nyeste sporede objektene per merkelapp, eller vis et ufiltrert rutenett.",
|
||||
"desc": "Når ingen filtre er valgt, vis et sammendrag av de nyeste sporede objektene per etikett, eller vis et ufiltrert rutenett.",
|
||||
"summary": "Sammendrag",
|
||||
"unfilteredGrid": "Ufiltrert rutenett"
|
||||
},
|
||||
@ -101,8 +101,8 @@
|
||||
},
|
||||
"timeRange": "Tidsrom",
|
||||
"subLabels": {
|
||||
"label": "Under-Merkelapper",
|
||||
"all": "Alle under-Merkelapper"
|
||||
"label": "Underetiketter",
|
||||
"all": "Alle underetiketter"
|
||||
},
|
||||
"score": "Poengsum",
|
||||
"estimatedSpeed": "Estimert hastighet ({{unit}})",
|
||||
|
||||
@ -5,7 +5,9 @@
|
||||
"renameCategory": "Gi nytt navn til kategori",
|
||||
"deleteCategory": "Slett kategori",
|
||||
"deleteImages": "Slett bilder",
|
||||
"trainModel": "Tren modell"
|
||||
"trainModel": "Tren modell",
|
||||
"addClassification": "Legg til klassifisering",
|
||||
"deleteModels": "Slett modeller"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
@ -13,13 +15,16 @@
|
||||
"deletedImage": "Bilder slettet",
|
||||
"categorizedImage": "Bildet ble klassifisert",
|
||||
"trainedModel": "Modellen ble trent.",
|
||||
"trainingModel": "Modelltrening startet."
|
||||
"trainingModel": "Modelltrening startet.",
|
||||
"deletedModel_one": "{{count}} modell(er) ble slettet",
|
||||
"deletedModel_other": ""
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Kunne ikke slette: {{errorMessage}}",
|
||||
"deleteCategoryFailed": "Kunne ikke slette kategori: {{errorMessage}}",
|
||||
"categorizeFailed": "Kunne ikke klassifisere bilde: {{errorMessage}}",
|
||||
"trainingFailed": "Kunne ikke starte modelltrening: {{errorMessage}}"
|
||||
"trainingFailed": "Kunne ikke starte modelltrening: {{errorMessage}}",
|
||||
"deleteModelFailed": "Kunne ikke slette modell: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
@ -43,7 +48,8 @@
|
||||
},
|
||||
"train": {
|
||||
"title": "Nylige klassifiseringer",
|
||||
"aria": "Velg nylige klassifiseringer"
|
||||
"aria": "Velg nylige klassifiseringer",
|
||||
"titleShort": "Nylig"
|
||||
},
|
||||
"categories": "Kategorier",
|
||||
"createCategory": {
|
||||
@ -98,7 +104,8 @@
|
||||
"stateRequiresTwoClasses": "Tilstandsmodeller krever minst to kategorier",
|
||||
"objectLabelRequired": "Velg en objektetikett",
|
||||
"objectTypeRequired": "Velg en klassifiseringstype"
|
||||
}
|
||||
},
|
||||
"states": "Tilstander"
|
||||
},
|
||||
"step2": {
|
||||
"description": "Velg kameraer og definer området som skal overvåkes for hvert kamera. Modellen vil klassifisere tilstanden til disse områdene.",
|
||||
@ -131,5 +138,17 @@
|
||||
},
|
||||
"generateSuccess": "Eksempelbilder ble generert"
|
||||
}
|
||||
},
|
||||
"deleteModel": {
|
||||
"title": "Slett klassifiseringsmodell",
|
||||
"single": "Er du sikker på at du vil slette {{name}}? Dette vil permanent slette alle tilknyttede data, inkludert bilder og treningsdata. Denne handlingen kan ikke angres.",
|
||||
"desc": "Er du sikker på at du vil slette {{count}} modell(er)? Dette vil permanent slette alle tilknyttede data, inkludert bilder og treningsdata. Denne handlingen kan ikke angres."
|
||||
},
|
||||
"menu": {
|
||||
"objects": "Objekter",
|
||||
"states": "Tilstander"
|
||||
},
|
||||
"details": {
|
||||
"scoreInfo": "Poengsummen representerer gjennomsnittlig klassifiseringskonfidens på tvers av alle deteksjoner av dette objektet."
|
||||
}
|
||||
}
|
||||
@ -43,10 +43,17 @@
|
||||
"trackedObject_one": "objekt",
|
||||
"trackedObject_other": "objekter",
|
||||
"noObjectDetailData": "Ingen detaljdata for objektet tilgjengelig.",
|
||||
"label": "Detalj"
|
||||
"label": "Detalj",
|
||||
"settings": "Detaljvisning – innstillinger",
|
||||
"alwaysExpandActive": {
|
||||
"desc": "Utvid alltid objektdetaljene for det aktive gjennomgangselementet når tilgjengelig.",
|
||||
"title": "Utvid alltid for aktive"
|
||||
}
|
||||
},
|
||||
"objectTrack": {
|
||||
"trackedPoint": "Sporingspunkt",
|
||||
"clickToSeek": "Klikk for å gå til dette tidspunktet"
|
||||
}
|
||||
},
|
||||
"zoomIn": "Zoom inn",
|
||||
"zoomOut": "Zoom ut"
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"updatedSublabel": "Under-merkelapp oppdatert med suksess.",
|
||||
"updatedSublabel": "Underetikett ble oppdatert.",
|
||||
"updatedLPR": "Vellykket oppdatering av kjennemerke.",
|
||||
"regenerate": "En ny beskrivelse har blitt anmodet fra {{provider}}. Avhengig av hastigheten til leverandøren din, kan den nye beskrivelsen ta litt tid å regenerere.",
|
||||
"audioTranscription": "Lydtranskripsjon ble forespurt."
|
||||
@ -95,7 +95,7 @@
|
||||
"error": {
|
||||
"regenerate": "Feil ved anrop til {{provider}} for en ny beskrivelse: {{errorMessage}}",
|
||||
"updatedLPRFailed": "Oppdatering av kjennemerke feilet: {{errorMessage}}",
|
||||
"updatedSublabelFailed": "Feil ved oppdatering av under-merkelapp: {{errorMessage}}",
|
||||
"updatedSublabelFailed": "Feil ved oppdatering av underetikett: {{errorMessage}}",
|
||||
"audioTranscription": "Forespørsel om lydtranskripsjon feilet: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
@ -103,7 +103,7 @@
|
||||
"tips": {
|
||||
"mismatch_one": "{{count}} utilgjengelig objekt ble oppdaget og inkludert i dette inspeksjonselementet. Disse objektene kvalifiserte ikke som et varsel eller deteksjon, eller har allerede blitt ryddet opp/slettet.",
|
||||
"mismatch_other": "{{count}} utilgjengelige objekter ble oppdaget og inkludert i dette inspeksjonselementet. Disse objektene kvalifiserte ikke som et varsel eller deteksjon, eller har allerede blitt ryddet opp/slettet.",
|
||||
"hasMissingObjects": "Juster konfigurasjonen hvis du vil at Frigate skal lagre sporede objekter for følgende merkelapper: <em>{{objects}}</em>"
|
||||
"hasMissingObjects": "Juster konfigurasjonen hvis du vil at Frigate skal lagre sporede objekter for følgende etiketter: <em>{{objects}}</em>"
|
||||
}
|
||||
},
|
||||
"topScore": {
|
||||
@ -126,10 +126,10 @@
|
||||
},
|
||||
"regenerateFromThumbnails": "Regenerer fra miniatyrbilder",
|
||||
"tips": {
|
||||
"descriptionSaved": "Beskrivelse lagret med suksess",
|
||||
"descriptionSaved": "Beskrivelsen ble lagret",
|
||||
"saveDescriptionFailed": "Feil ved lagring av beskrivelse: {{errorMessage}}"
|
||||
},
|
||||
"label": "Merkelapp",
|
||||
"label": "Etikett",
|
||||
"editLPR": {
|
||||
"title": "Rediger kjennemerke",
|
||||
"descNoLabel": "Skriv inn et nytt kjennemerke for dette sporede objekt",
|
||||
@ -142,9 +142,9 @@
|
||||
"expandRegenerationMenu": "Utvid regenereringsmenyen",
|
||||
"regenerateFromSnapshot": "Regenerer fra øyeblikksbilde",
|
||||
"editSubLabel": {
|
||||
"title": "Rediger under-merkelapp",
|
||||
"desc": "Angi en ny under-merkelapp for denne {{label}}",
|
||||
"descNoLabel": "Angi en ny under-merkelapp for dette sporede objektet"
|
||||
"title": "Rediger underetikett",
|
||||
"desc": "Angi en ny underetikett for \"{{label}}\"",
|
||||
"descNoLabel": "Angi en ny underetikett for dette sporede objektet"
|
||||
},
|
||||
"snapshotScore": {
|
||||
"label": "Øyeblikksbilde poengsum"
|
||||
@ -204,7 +204,7 @@
|
||||
"deleteTrackedObject": {
|
||||
"toast": {
|
||||
"error": "Feil ved sletting av sporet objekt: {{errorMessage}}",
|
||||
"success": "Sporet objekt ble slettet med suksess."
|
||||
"success": "Sporet objekt ble slettet."
|
||||
}
|
||||
},
|
||||
"tooltip": "Samsvarer {{type}} til {{confidence}}%"
|
||||
@ -214,7 +214,8 @@
|
||||
"details": "detaljer",
|
||||
"snapshot": "øyeblikksbilde",
|
||||
"video": "video",
|
||||
"object_lifecycle": "objektets livssyklus"
|
||||
"object_lifecycle": "objektets livssyklus",
|
||||
"thumbnail": "miniatyrbilde"
|
||||
},
|
||||
"dialog": {
|
||||
"confirmDelete": {
|
||||
@ -238,7 +239,7 @@
|
||||
"noImageFound": "Ingen bilder funnet for dette tidsstempelet.",
|
||||
"createObjectMask": "Opprett objektmaske",
|
||||
"adjustAnnotationSettings": "Juster annoteringsinnstillinger",
|
||||
"scrollViewTips": "Rull for å se de viktige øyeblikkene i dette objektets livssyklus.",
|
||||
"scrollViewTips": "Klikk for å se de viktige øyeblikkene i dette objektets livssyklus.",
|
||||
"autoTrackingTips": "Posisjonene til avgrensningsboksene vil være unøyaktige for kameraer med automatisk sporing.",
|
||||
"count": "{{first}} av {{second}}",
|
||||
"trackedPoint": "Sporet punkt",
|
||||
@ -268,11 +269,11 @@
|
||||
},
|
||||
"offset": {
|
||||
"label": "Annoteringsforskyvning",
|
||||
"desc": "Disse dataene kommer fra kameraets deteksjonsstrøm, men legges over bilder fra opptaksstrømmen. Det er usannsynlig at de to strømmene er perfekt synkronisert. Som et resultat vil avgrensningsboksen og opptaket ikke stemme perfekt overens. Feltet <code>annotation_offset</code> kan imidlertid brukes til å justere dette.",
|
||||
"desc": "Disse dataene kommer fra kameraets deteksjonsstrøm, men legges over bilder fra opptaksstrømmen. Det er lite sannsynlig at de to strømmene er perfekt synkronisert. Som et resultat vil avgrensningsboksen og opptaket ikke stemme perfekt overens. Du kan bruke denne innstillingen til å forskyve annoteringene fremover eller bakover i tid for å tilpasse dem bedre til det innspilte opptaket.",
|
||||
"millisecondsToOffset": "Antall millisekunder deteksjonsannoteringene skal forskyves med. <em>Standard: 0</em>",
|
||||
"tips": "TIPS: Se for deg et hendelsesklipp med en person som går fra venstre mot høyre. Hvis avgrensningsboksen på tidslinjen for hendelsen konsekvent er til venstre for personen, bør verdien reduseres. På samme måte, hvis en person går fra venstre mot høyre og avgrensningsboksen konsekvent er foran personen, bør verdien økes.",
|
||||
"toast": {
|
||||
"success": "Annoteringsforskyvning for {{camera}} er lagret i konfigurasjonsfilen. Start Frigate på nytt for å ta i bruk endringene."
|
||||
"success": "Annoteringsforskyvning for {{camera}} er lagret i konfigurasjonsfilen. Start Frigate på nytt for å aktivere endringene."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@ -71,15 +71,15 @@
|
||||
"label": "Vis statistikk",
|
||||
"desc": "Aktiver dette alternativet for å vise strømmestatistikk som et overlegg på kamerastrømmen."
|
||||
},
|
||||
"started": "Startet manuelt opptak på forespørsel.",
|
||||
"end": "Avslutt opptak på forespørsel",
|
||||
"title": "På forespørsel",
|
||||
"started": "Startet manuelt opptak.",
|
||||
"end": "Avslutt manuelt opptak",
|
||||
"title": "Manuelt opptak",
|
||||
"debugView": "Feilsøkingsvisning",
|
||||
"start": "Start opptak på forespørsel",
|
||||
"failedToStart": "Kunne ikke starte manuelt opptak på forespørsel.",
|
||||
"start": "Start manuelt opptak",
|
||||
"failedToStart": "Kunne ikke starte manuelt opptak.",
|
||||
"recordDisabledTips": "Siden opptak er deaktivert eller begrenset i konfigurasjonen for dette kameraet, vil kun et øyeblikksbilde bli lagret.",
|
||||
"ended": "Avsluttet manuelt opptak på forespørsel.",
|
||||
"failedToEnd": "Kunne ikke avslutte manuelt opptak på forespørsel."
|
||||
"ended": "Avsluttet manuelt opptak.",
|
||||
"failedToEnd": "Kunne ikke avslutte manuelt opptak."
|
||||
},
|
||||
"audio": "Lyd",
|
||||
"suspend": {
|
||||
|
||||
@ -12,14 +12,14 @@
|
||||
"filter": {
|
||||
"label": {
|
||||
"cameras": "Kameraer",
|
||||
"labels": "Merkelapper",
|
||||
"labels": "Etiketter",
|
||||
"search_type": "Søketype",
|
||||
"after": "Etter",
|
||||
"min_score": "Min. poengsum",
|
||||
"max_score": "Maks. poengsum",
|
||||
"min_speed": "Min. hastighet",
|
||||
"zones": "Soner",
|
||||
"sub_labels": "Under-merkelapper",
|
||||
"sub_labels": "Underetiketter",
|
||||
"time_range": "Tidsintervall",
|
||||
"before": "Før",
|
||||
"max_speed": "Maks. hastighet",
|
||||
|
||||
@ -50,6 +50,10 @@
|
||||
"automaticLiveView": {
|
||||
"label": "Automatisk direktevisning",
|
||||
"desc": "Bytt automatisk til et kameras direktevisning når aktivitet oppdages. Deaktivering av dette valget gjør at statiske kamerabilder i Direkte-dashbord kun oppdateres én gang i minuttet."
|
||||
},
|
||||
"displayCameraNames": {
|
||||
"label": "Vis alltid kameranavn",
|
||||
"desc": "Vis alltid kameranavnene i en merkelapp i dashbordet for direktevisning med flere kameraer."
|
||||
}
|
||||
},
|
||||
"storedLayouts": {
|
||||
@ -337,7 +341,7 @@
|
||||
}
|
||||
},
|
||||
"toast": {
|
||||
"success": "Sone ({{zoneName}}) er lagret. Start Frigate på nytt for å bruke endringer."
|
||||
"success": "Sone ({{zoneName}}) er lagret. Start Frigate på nytt for å aktivere endringer."
|
||||
}
|
||||
},
|
||||
"motionMasks": {
|
||||
@ -681,12 +685,12 @@
|
||||
"enrichments": {
|
||||
"title": "Innstillinger for utvidelser",
|
||||
"licensePlateRecognition": {
|
||||
"desc": "Frigate kan gjenkjenne kjennemerker på kjøretøy og automatisk legge til de oppdagede tegnene i feltet \"recognized_license_plate\", eller et kjent navn som en under-merkelapp på objekter av typen bil. Et vanlig brukstilfelle kan være å lese kjennemerker på biler som kjører inn i en innkjørsel eller biler som passerer på en gate.",
|
||||
"desc": "Frigate kan gjenkjenne kjennemerker på kjøretøy og automatisk legge til de oppdagede tegnene i feltet \"recognized_license_plate\", eller et kjent navn som en underetikett på objekter av typen bil. Et vanlig brukstilfelle kan være å lese kjennemerker på biler som kjører inn i en innkjørsel eller biler som passerer på en gate.",
|
||||
"title": "Kjennemerke gjenkjenning",
|
||||
"readTheDocumentation": "Se dokumentasjonen"
|
||||
},
|
||||
"birdClassification": {
|
||||
"desc": "Fugleklassifisering identifiserer kjente fugler ved hjelp av en kvantisert TensorFlow-modell. Når en fugl gjenkjennes, vil det vanlige navnet legges til som en under-merkelapp. Denne informasjonen vises i brukergrensesnittet, filtre, samt i meldingsvarsler.",
|
||||
"desc": "Fugleklassifisering identifiserer kjente fugler ved hjelp av en kvantisert TensorFlow-modell. Når en fugl gjenkjennes, vil det vanlige navnet legges til som en underetikett. Denne informasjonen vises i brukergrensesnittet, filtre, samt i meldingsvarsler.",
|
||||
"title": "Klassifisering av fugler"
|
||||
},
|
||||
"semanticSearch": {
|
||||
@ -730,7 +734,7 @@
|
||||
}
|
||||
},
|
||||
"title": "Ansiktsgjenkjenning",
|
||||
"desc": "Ansiktsgjenkjenning gjør det mulig å tildele navn til personer, og når ansiktet deres gjenkjennes, vil Frigate tildele personens navn som en under-merkelapp. Denne informasjonen vises i brukergrensesnittet, filtre, samt i meldingsvarsler.",
|
||||
"desc": "Ansiktsgjenkjenning gjør det mulig å tildele navn til personer, og når ansiktet deres gjenkjennes, vil Frigate tildele personens navn som en underetikett. Denne informasjonen vises i brukergrensesnittet, filtre, samt i meldingsvarsler.",
|
||||
"readTheDocumentation": "Se dokumentasjonen"
|
||||
},
|
||||
"unsavedChanges": "Ulagrede endringer i innstillinger for utvidelser",
|
||||
@ -764,7 +768,9 @@
|
||||
},
|
||||
"actions": {
|
||||
"alert": "Marker som varsel",
|
||||
"notification": "Send meldingsvarsel"
|
||||
"notification": "Send meldingsvarsel",
|
||||
"sub_label": "Legg til underetikett",
|
||||
"attribute": "Legg til attributt"
|
||||
},
|
||||
"dialog": {
|
||||
"createTrigger": {
|
||||
@ -819,7 +825,7 @@
|
||||
},
|
||||
"actions": {
|
||||
"title": "Handlinger",
|
||||
"desc": "Som standard sender Frigate en MQTT-melding for alle utløsere. Velg en ekstra handling som skal utføres når denne utløseren aktiveres.",
|
||||
"desc": "Som standard sender Frigate en MQTT-melding for alle utløsere. Underetiketter legger til navnet på utløseren i objektetiketten. Attributter er søkbare metadata som lagres separat i objektets sporingsmetadata.",
|
||||
"error": {
|
||||
"min": "Minst én handling må velges."
|
||||
}
|
||||
@ -884,7 +890,8 @@
|
||||
"createRole": "Rollen {{role}} ble opprettet",
|
||||
"updateCameras": "Kameraer oppdatert for rollen {{role}}",
|
||||
"deleteRole": "Rollen {{role}} ble slettet",
|
||||
"userRolesUpdated": "{{count}} bruker(e) som var tildelt denne rollen er oppdatert til \"visningsbruker\", som har tilgang til alle kameraer."
|
||||
"userRolesUpdated_one": "{{count}} bruker(e) som var tildelt denne rollen er oppdatert til \"visningsbruker\", som har tilgang til alle kameraer.",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Kunne ikke opprette rolle: {{errorMessage}}",
|
||||
@ -1069,7 +1076,9 @@
|
||||
},
|
||||
"resolutionHigh": "En oppløsning på {{resolution}} kan føre til økt ressursbruk.",
|
||||
"resolutionLow": "En oppløsning på {{resolution}} kan være for lav for pålitelig deteksjon av små objekter."
|
||||
}
|
||||
},
|
||||
"ffmpegModuleDescription": "Hvis strømmen ikke lastes inn etter flere forsøk, kan du prøve å aktivere dette. Når det er aktivert, vil Frigate bruke ffmpeg-modulen sammen med go2rtc. Dette kan gi bedre kompatibilitet med enkelte kamerastrømmer.",
|
||||
"ffmpegModule": "Bruk kompatibilitetsmodus for strøm"
|
||||
}
|
||||
},
|
||||
"cameraManagement": {
|
||||
@ -1145,7 +1154,7 @@
|
||||
"selectDetectionsZones": "Velg soner for deteksjoner",
|
||||
"limitDetections": "Avgrens deteksjoner til bestemte soner",
|
||||
"toast": {
|
||||
"success": "Konfigurasjonen for inspeksjonsklassifisering er lagret. Start Frigate på nytt for å bruke endringer."
|
||||
"success": "Konfigurasjonen for inspeksjonsklassifisering er lagret. Start Frigate på nytt for å aktivere endringer."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -290,7 +290,8 @@
|
||||
},
|
||||
"list": {
|
||||
"two": "{{0}} en {{1}}",
|
||||
"many": "{{items}}, en {{last}}"
|
||||
"many": "{{items}}, en {{last}}",
|
||||
"separatorWithSpace": ", "
|
||||
},
|
||||
"field": {
|
||||
"optional": "Optioneel",
|
||||
|
||||
@ -5,7 +5,10 @@
|
||||
"renameCategory": "Klasse hernoemen",
|
||||
"deleteCategory": "Klasse verwijderen",
|
||||
"deleteImages": "Afbeeldingen verwijderen",
|
||||
"trainModel": "Model trainen"
|
||||
"trainModel": "Model trainen",
|
||||
"addClassification": "Classificatie toevoegen",
|
||||
"deleteModels": "Modellen verwijderen",
|
||||
"editModel": "Model bewerken"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
@ -13,13 +16,18 @@
|
||||
"deletedImage": "Verwijderde afbeeldingen",
|
||||
"categorizedImage": "Succesvol geclassificeerde afbeelding",
|
||||
"trainedModel": "Succesvol getraind model.",
|
||||
"trainingModel": "Modeltraining succesvol gestart."
|
||||
"trainingModel": "Modeltraining succesvol gestart.",
|
||||
"deletedModel_one": "{{count}} model succesvol verwijderd",
|
||||
"deletedModel_other": "{{count}} modellen succesvol verwijderd",
|
||||
"updatedModel": "Modelconfiguratie succesvol bijgewerkt"
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Verwijderen mislukt: {{errorMessage}}",
|
||||
"deleteCategoryFailed": "Het verwijderen van de klasse is mislukt: {{errorMessage}}",
|
||||
"categorizeFailed": "Afbeelding categoriseren mislukt: {{errorMessage}}",
|
||||
"trainingFailed": "Het starten van de modeltraining is mislukt: {{errorMessage}}"
|
||||
"trainingFailed": "Het starten van de modeltraining is mislukt: {{errorMessage}}",
|
||||
"deleteModelFailed": "Model verwijderen mislukt: {{errorMessage}}",
|
||||
"updateModelFailed": "Bijwerken van model mislukt: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
@ -43,7 +51,8 @@
|
||||
},
|
||||
"train": {
|
||||
"title": "Recente classificaties",
|
||||
"aria": "Selecteer recente classificaties"
|
||||
"aria": "Selecteer recente classificaties",
|
||||
"titleShort": "Recent"
|
||||
},
|
||||
"categories": "Klassen",
|
||||
"createCategory": {
|
||||
@ -98,7 +107,8 @@
|
||||
"stateRequiresTwoClasses": "Toestandsmodellen vereisen minimaal 2 klassen",
|
||||
"objectLabelRequired": "Selecteer een objectlabel",
|
||||
"objectTypeRequired": "Selecteer een classificatietype"
|
||||
}
|
||||
},
|
||||
"states": "Staten"
|
||||
},
|
||||
"step2": {
|
||||
"description": "Selecteer camera’s en definieer voor elke camera het te monitoren gebied. Het model zal de toestand van deze gebieden classificeren.",
|
||||
@ -131,5 +141,23 @@
|
||||
},
|
||||
"generateSuccess": "Met succes gegenereerde voorbeeldafbeeldingen"
|
||||
}
|
||||
},
|
||||
"deleteModel": {
|
||||
"title": "Classificatiemodel verwijderen",
|
||||
"single": "Weet u zeker dat u {{name}} wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, definitief verwijderd. Deze actie kan niet ongedaan worden gemaakt.",
|
||||
"desc": "Weet u zeker dat u {{count}} model(len) wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt."
|
||||
},
|
||||
"menu": {
|
||||
"objects": "Objecten",
|
||||
"states": "Staten"
|
||||
},
|
||||
"details": {
|
||||
"scoreInfo": "Score geeft het gemiddelde classificatievertrouwen weer over alle detecties van dit object."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Classificatiemodel bewerken",
|
||||
"descriptionState": "Bewerk de klassen voor dit statusclassificatiemodel. Wijzigingen vereisen dat het model opnieuw wordt getraind.",
|
||||
"descriptionObject": "Bewerk het objecttype en het classificatietype voor dit objectclassificatiemodel.",
|
||||
"stateClassesInfo": "Let op: het wijzigen van statusklassen vereist dat het model opnieuw wordt getraind met de bijgewerkte klassen."
|
||||
}
|
||||
}
|
||||
|
||||
@ -43,10 +43,17 @@
|
||||
"trackedObject_one": "object",
|
||||
"trackedObject_other": "objecten",
|
||||
"noObjectDetailData": "Geen objectdetails beschikbaar.",
|
||||
"label": "Detail"
|
||||
"label": "Detail",
|
||||
"settings": "Instellingen voor detailweergave",
|
||||
"alwaysExpandActive": {
|
||||
"desc": "Altijd de objectdetails van het actieve beoordelingsitem uitklappen wanneer deze beschikbaar zijn.",
|
||||
"title": "Het huidige item altijd uitvouwen"
|
||||
}
|
||||
},
|
||||
"objectTrack": {
|
||||
"trackedPoint": "Gevolgd punt",
|
||||
"clickToSeek": "Klik om naar deze tijd te zoeken"
|
||||
}
|
||||
},
|
||||
"zoomIn": "Zoom in",
|
||||
"zoomOut": "Zoom uit"
|
||||
}
|
||||
|
||||
@ -33,7 +33,8 @@
|
||||
"details": "Details",
|
||||
"video": "video",
|
||||
"snapshot": "snapshot",
|
||||
"object_lifecycle": "objectlevenscyclus"
|
||||
"object_lifecycle": "objectlevenscyclus",
|
||||
"thumbnail": "thumbnail"
|
||||
},
|
||||
"objectLifecycle": {
|
||||
"createObjectMask": "Objectmasker maken",
|
||||
@ -238,7 +239,7 @@
|
||||
"noImageFound": "Er is geen afbeelding beschikbaar voor dit tijdstip.",
|
||||
"createObjectMask": "Objectmasker maken",
|
||||
"adjustAnnotationSettings": "Annotatie-instellingen aanpassen",
|
||||
"scrollViewTips": "Scroll om de belangrijke momenten uit de levenscyclus van dit object te bekijken.",
|
||||
"scrollViewTips": "Klik om de belangrijke momenten uit de levenscyclus van dit object te bekijken.",
|
||||
"autoTrackingTips": "Als u een automatische objectvolgende camera gebruikt, zal het objectkader onnauwkeurig zijn.",
|
||||
"count": "{{first}} van {{second}}",
|
||||
"trackedPoint": "Volgpunt",
|
||||
@ -251,7 +252,7 @@
|
||||
"faceOrLicense_plate": "{{attribute}} Gedetecteerd voor {{label}}",
|
||||
"other": "{{label}} Herkend als {{attribute}}"
|
||||
},
|
||||
"gone": "{{label}} Links",
|
||||
"gone": "{{label}} vertrok",
|
||||
"heard": "{{label}} gehoord",
|
||||
"external": "{{label}} gedetecteerd",
|
||||
"header": {
|
||||
@ -268,7 +269,7 @@
|
||||
},
|
||||
"offset": {
|
||||
"label": "Annotatie-afwijking",
|
||||
"desc": "Deze gegevens zijn afkomstig van de detectiestream van je camera, maar worden weergegeven op beelden uit de opnamestream. Het is onwaarschijnlijk dat deze twee streams perfect gesynchroniseerd zijn. Hierdoor zullen het objectkader en het beeld niet exact op elkaar aansluiten. Het veld <code>annotation_offset</code> kan echter worden gebruikt om deze annotatie-afwijking te corrigeren.",
|
||||
"desc": "Deze gegevens zijn afkomstig van de detectiestream van je camera, maar worden weergegeven op beelden uit de opnamestream. Het is onwaarschijnlijk dat deze twee streams perfect gesynchroniseerd zijn. Hierdoor zullen het objectkader en het beeld niet exact op elkaar aansluiten. Met deze instelling kun je de annotaties vooruit of achteruit in de tijd verschuiven om ze beter uit te lijnen met het opgenomen beeldmateriaal.",
|
||||
"millisecondsToOffset": "Aantal milliseconden om objectkader mee te verschuiven. <em>Standaard: 0</em>",
|
||||
"tips": "TIP: Stel je voor dat er een clip is waarin een persoon van links naar rechts loopt. Als het objectkader in de tijdlijn van de activiteit steeds links van de persoon ligt, dan moet de waarde verlaagd worden. Op dezelfde manier als het objectkader consequent vóór de persoon ligt dus vooruitloopt, moet de waarde verhoogd worden.",
|
||||
"toast": {
|
||||
|
||||
@ -128,7 +128,7 @@
|
||||
"documentation": "Lees de documentatie ",
|
||||
"title": "Audio moet via je camera komen en in go2rtc geconfigureerd zijn voor deze stream."
|
||||
},
|
||||
"unavailable": "Audio is niet beschikbaar voor deze stroom",
|
||||
"unavailable": "Audio is niet beschikbaar voor deze stream",
|
||||
"available": "Audio is beschikbaar voor deze stream"
|
||||
},
|
||||
"playInBackground": {
|
||||
|
||||
@ -50,6 +50,10 @@
|
||||
"playAlertVideos": {
|
||||
"label": "Meldingen afspelen",
|
||||
"desc": "Standaard worden recente meldingen op het Live dashboard afgespeeld als kleine lusvideo's. Schakel deze optie uit om alleen een statische afbeelding van recente meldingen weer te geven op dit apparaat/browser."
|
||||
},
|
||||
"displayCameraNames": {
|
||||
"label": "Altijd cameranamen weergeven",
|
||||
"desc": "Toon altijd de cameranamen in een label op het live-cameradashboard."
|
||||
}
|
||||
},
|
||||
"title": "Algemene instellingen",
|
||||
@ -764,7 +768,9 @@
|
||||
},
|
||||
"actions": {
|
||||
"alert": "Markeren als waarschuwing",
|
||||
"notification": "Melding verzenden"
|
||||
"notification": "Melding verzenden",
|
||||
"sub_label": "Sublabel toevoegen",
|
||||
"attribute": "Attribuut toevoegen"
|
||||
},
|
||||
"dialog": {
|
||||
"createTrigger": {
|
||||
@ -819,7 +825,7 @@
|
||||
},
|
||||
"actions": {
|
||||
"title": "Acties",
|
||||
"desc": "Standaard verstuurt Frigate een MQTT-bericht voor alle triggers. Kies een extra actie die moet worden uitgevoerd wanneer deze trigger wordt geactiveerd.",
|
||||
"desc": "Standaard stuurt Frigate een MQTT-bericht voor alle triggers. Sublabels voegen de triggernaam toe aan het objectlabel. Attributen zijn doorzoekbare metadata die afzonderlijk worden opgeslagen in de metadata van het gevolgde object.",
|
||||
"error": {
|
||||
"min": "Er moet ten minste één actie worden geselecteerd."
|
||||
}
|
||||
@ -884,7 +890,8 @@
|
||||
"createRole": "Rol {{role}} succesvol aangemaakt",
|
||||
"updateCameras": "Camera's bijgewerkt voor rol {{role}}",
|
||||
"deleteRole": "Rol {{role}} succesvol verwijderd",
|
||||
"userRolesUpdated": "{{count}} gebruiker(s) die aan deze rol waren toegewezen, zijn bijgewerkt naar ‘kijker’, die toegang heeft tot alle camera’s."
|
||||
"userRolesUpdated_one": "{{count}} gebruiker(s) die aan deze rol waren toegewezen, zijn bijgewerkt naar ‘kijker’, die toegang heeft tot alle camera’s.",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Kan rol niet aanmaken: {{errorMessage}}",
|
||||
@ -1069,7 +1076,9 @@
|
||||
},
|
||||
"resolutionHigh": "Een resolutie van {{resolution}} kan leiden tot een verhoogd gebruik van systeembronnen.",
|
||||
"resolutionLow": "Een resolutie van {{resolution}} kan te laag zijn voor betrouwbare detectie van kleine objecten."
|
||||
}
|
||||
},
|
||||
"ffmpegModule": "Gebruik stream-compatibiliteitsmodus",
|
||||
"ffmpegModuleDescription": "Als de stream na meerdere pogingen niet wordt geladen, probeer dit dan in te schakelen. Wanneer deze optie is ingeschakeld, gebruikt Frigate de ffmpeg-module samen met go2rtc. Dit kan zorgen voor een betere compatibiliteit met sommige camerastreams."
|
||||
}
|
||||
},
|
||||
"cameraManagement": {
|
||||
|
||||
@ -757,7 +757,9 @@
|
||||
"createRole": "Utworzono rolę {{role}}",
|
||||
"updateCameras": "Zaktualizowano kamery dla roli {{role}}",
|
||||
"deleteRole": "Rola {{role}} została usunięta",
|
||||
"userRolesUpdated": "{{count}} użytkowników przypisanych do tej roli zostało zaktualizowanych do roli 'viewer', która ma dostęp do wszystkich kamer."
|
||||
"userRolesUpdated_one": "{{count}} użytkowników przypisanych do tej roli zostało zaktualizowanych do roli 'viewer', która ma dostęp do wszystkich kamer.",
|
||||
"userRolesUpdated_few": "",
|
||||
"userRolesUpdated_many": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Nie udało się utworzyć roli: {{errorMessage}}",
|
||||
|
||||
39
web/public/locales/pt-BR/views/classificationModel.json
Normal file
39
web/public/locales/pt-BR/views/classificationModel.json
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
"documentTitle": "Modelos de Classificação",
|
||||
"button": {
|
||||
"deleteClassificationAttempts": "Apagar Imagens de Classificação",
|
||||
"renameCategory": "Renomear Classe",
|
||||
"deleteCategory": "Apagar Classe",
|
||||
"deleteImages": "Apagar Imagens",
|
||||
"trainModel": "Treinar Modelo",
|
||||
"addClassification": "Adicionar classificação",
|
||||
"deleteModels": "Excluir modelos"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"deletedCategory": "Classe Apagada",
|
||||
"deletedImage": "Imagens Apagadas",
|
||||
"categorizedImage": "Imagem Classificada com Sucesso",
|
||||
"trainedModel": "Modelo treinado com sucesso.",
|
||||
"trainingModel": "Treinamento do modelo iniciado com sucesso.",
|
||||
"deletedModel_one": "Modelo(s) {{count}} excluído(s) com sucesso",
|
||||
"deletedModel_many": "",
|
||||
"deletedModel_other": ""
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Falha ao deletar:{{errorMessage}}",
|
||||
"deleteCategoryFailed": "Falha ao deletar classe:{{errorMessage}}",
|
||||
"categorizeFailed": "Falha ao categorizar imagem:{{errorMessage}}",
|
||||
"deleteModelFailed": "Falha ao excluir o modelo: {{errorMessage}}",
|
||||
"trainingFailed": "Falha ao iniciar o treinamento do modelo: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
"title": "Excluir Classe",
|
||||
"desc": "Tem certeza de que deseja excluir a classe {{name}}? Isso excluirá permanentemente todas as imagens associadas e exigirá o treinamento do modelo novamente."
|
||||
},
|
||||
"deleteModel": {
|
||||
"title": "Deletar modelo de classificação",
|
||||
"single": "Tem certeza de que deseja excluir {{name}}? Isso excluirá permanentemente todos os dados associados, incluindo imagens e dados de treinamento. Esta ação não pode ser desfeita."
|
||||
}
|
||||
}
|
||||
@ -40,13 +40,19 @@
|
||||
"detail": {
|
||||
"noDataFound": "Nenhum dado de detalhe para revisar",
|
||||
"aria": "Alternar visualização de detalhe",
|
||||
"trackedObject_one": "objeto rastreado",
|
||||
"trackedObject_other": "objetos rastreados",
|
||||
"trackedObject_one": "objeto",
|
||||
"trackedObject_other": "objetos",
|
||||
"noObjectDetailData": "Nenhum dado de detalhe de objeto disponível.",
|
||||
"label": "Detalhe"
|
||||
"label": "Detalhe",
|
||||
"settings": "Configurações de visualização detalhada",
|
||||
"alwaysExpandActive": {
|
||||
"title": "Expandir sempre o modo ativo"
|
||||
}
|
||||
},
|
||||
"objectTrack": {
|
||||
"trackedPoint": "Ponto rastreado",
|
||||
"clickToSeek": "Clique para ir para esse horário"
|
||||
}
|
||||
},
|
||||
"zoomIn": "Ampliar",
|
||||
"zoomOut": "Diminuir o zoom"
|
||||
}
|
||||
|
||||
@ -111,7 +111,8 @@
|
||||
"details": "detalhes",
|
||||
"snapshot": "captura de imagem",
|
||||
"video": "vídeo",
|
||||
"object_lifecycle": "ciclo de vida do objeto"
|
||||
"object_lifecycle": "ciclo de vida do objeto",
|
||||
"thumbnail": "thumbnail"
|
||||
},
|
||||
"objectLifecycle": {
|
||||
"title": "Ciclo de Vida do Objeto",
|
||||
|
||||
@ -800,7 +800,9 @@
|
||||
"createRole": "Papel {{role}} criado com sucesso",
|
||||
"updateCameras": "Câmeras atualizados para o papel {{role}}",
|
||||
"deleteRole": "Papel {{role}} apagado com sucesso",
|
||||
"userRolesUpdated": "{{count}} usuário(os) atribuídos a esse papel foram atualizados para 'visualizador', que possui acesso a todas as câmeras."
|
||||
"userRolesUpdated_one": "{{count}} usuário(os) atribuídos a esse papel foram atualizados para 'visualizador', que possui acesso a todas as câmeras.",
|
||||
"userRolesUpdated_many": "",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Falha ao criar papel: {{errorMessage}}",
|
||||
|
||||
@ -864,7 +864,9 @@
|
||||
"createRole": "Papel {{role}} criado com sucesso",
|
||||
"updateCameras": "Câmaras atualizados para o papel {{role}}",
|
||||
"deleteRole": "Papel {{role}} apagado com sucesso",
|
||||
"userRolesUpdated": "{{count}} utilizador(os) atribuídos a este papel foram atualizados para 'visualizador', que possui acesso a todas as câmaras."
|
||||
"userRolesUpdated_one": "{{count}} utilizador(os) atribuídos a este papel foram atualizados para 'visualizador', que possui acesso a todas as câmaras.",
|
||||
"userRolesUpdated_many": "",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Falha ao criar papel: {{errorMessage}}",
|
||||
|
||||
@ -1,24 +0,0 @@
|
||||
{
|
||||
"documentTitle": "Modelos de Classificação",
|
||||
"button": {
|
||||
"deleteClassificationAttempts": "Apagar Imagens de Classificação",
|
||||
"renameCategory": "Renomear Classe",
|
||||
"deleteCategory": "Apagar Classe",
|
||||
"deleteImages": "Apagar Imagens",
|
||||
"trainModel": "Treinar Modelo"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"deletedCategory": "Classe Apagada",
|
||||
"deletedImage": "Imagens Apagadas",
|
||||
"categorizedImage": "Imagem Classificada com Sucesso",
|
||||
"trainedModel": "Modelo treinado com sucesso.",
|
||||
"trainingModel": "Treinamento do modelo iniciado com sucesso."
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Falha ao deletar:{{errorMessage}}",
|
||||
"deleteCategoryFailed": "Falha ao deletar classe:{{errorMessage}}",
|
||||
"categorizeFailed": "Falha ao categorizar imagem:{{errorMessage}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -237,7 +237,10 @@
|
||||
}
|
||||
},
|
||||
"label": {
|
||||
"back": "Mergi înapoi"
|
||||
"back": "Mergi înapoi",
|
||||
"hide": "Ascunde {{item}}",
|
||||
"show": "Afișează {{item}}",
|
||||
"ID": "ID"
|
||||
},
|
||||
"selectItem": "Selectează {{item}}",
|
||||
"pagination": {
|
||||
@ -281,5 +284,14 @@
|
||||
"readTheDocumentation": "Citește documentația",
|
||||
"information": {
|
||||
"pixels": "{{area}}px"
|
||||
},
|
||||
"list": {
|
||||
"two": "{{0}} și {{1}}",
|
||||
"many": "{{items}}, și {{last}}",
|
||||
"separatorWithSpace": ", "
|
||||
},
|
||||
"field": {
|
||||
"optional": "Opțional",
|
||||
"internalID": "ID-ul Intern pe care Frigate îl folosește în configurație și în baza de date"
|
||||
}
|
||||
}
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
"export": "Exportă",
|
||||
"selectOrExport": "Selectează sau exportă",
|
||||
"toast": {
|
||||
"success": "Exportul a început cu succes. Vizualizați fișierul în dosarul /exports.",
|
||||
"success": "Exportul a început cu succes. Vizualizați fișierul pe pagina de exporturi.",
|
||||
"error": {
|
||||
"failed": "Eroare la pornirea exportului: {{error}}",
|
||||
"endTimeMustAfterStartTime": "Ora de sfârșit trebuie să fie după ora de început",
|
||||
@ -129,6 +129,7 @@
|
||||
"search": {
|
||||
"placeholder": "Caută după etichetă sau subetichetă..."
|
||||
},
|
||||
"noImages": "Nu s-au găsit miniaturi pentru această cameră"
|
||||
"noImages": "Nu s-au găsit miniaturi pentru această cameră",
|
||||
"unknownLabel": "Imaginea declanșator salvată"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1 +1,164 @@
|
||||
{}
|
||||
{
|
||||
"documentTitle": "Modele de clasificare",
|
||||
"button": {
|
||||
"deleteClassificationAttempts": "Șterge imaginile de clasificare",
|
||||
"renameCategory": "Redenumește clasa",
|
||||
"deleteCategory": "Șterge clasa",
|
||||
"deleteImages": "Șterge imaginile",
|
||||
"trainModel": "Antrenează modelul",
|
||||
"addClassification": "Adaugă clasificare",
|
||||
"deleteModels": "Șterge modelele",
|
||||
"editModel": "Editează modelul"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"deletedCategory": "Clasă ștearsă",
|
||||
"deletedImage": "Imagini șterse",
|
||||
"categorizedImage": "Imagine clasificată cu succes",
|
||||
"trainedModel": "Model antrenat cu succes.",
|
||||
"trainingModel": "Antrenamentul modelului a fost pornit cu succes.",
|
||||
"deletedModel_one": "{{count}} model șters cu succes",
|
||||
"deletedModel_few": "{{count}} modele șterse cu succes",
|
||||
"deletedModel_other": "{{count}} modele șterse cu succes",
|
||||
"updatedModel": "Configurația modelului a fost actualizată cu succes"
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Ștergerea a eșuat: {{errorMessage}}",
|
||||
"deleteCategoryFailed": "Ștergerea clasei a eșuat: {{errorMessage}}",
|
||||
"categorizeFailed": "Categorisirea imaginii a eșuat: {{errorMessage}}",
|
||||
"trainingFailed": "Pornirea antrenamentului modelului a eșuat: {{errorMessage}}",
|
||||
"deleteModelFailed": "Ștergerea modelului a eșuat: {{errorMessage}}",
|
||||
"updateModelFailed": "Actualizarea modelului a eșuat: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
"title": "Șterge clasa",
|
||||
"desc": "Sigur doriți să ștergeți clasa {{name}}? Aceasta va șterge permanent toate imaginile asociate și va necesita reantrenarea modelului."
|
||||
},
|
||||
"deleteDatasetImages": {
|
||||
"title": "Șterge imaginile setului de date",
|
||||
"desc": "Sigur doriți să ștergeți {{count}} imagini din {{dataset}}? Această acțiune nu poate fi anulată și va necesita reantrenarea modelului."
|
||||
},
|
||||
"deleteTrainImages": {
|
||||
"title": "Șterge imaginile de antrenament",
|
||||
"desc": "Sigur doriți să ștergeți {{count}} imagini? Această acțiune nu poate fi anulată."
|
||||
},
|
||||
"renameCategory": {
|
||||
"title": "Redenumește clasa",
|
||||
"desc": "Introduceți un nume nou pentru {{name}}. Va trebui să reantrenați modelul pentru ca modificarea numelui să aibă efect."
|
||||
},
|
||||
"description": {
|
||||
"invalidName": "Nume invalid. Numele pot include doar litere, cifre, spații, apostrofuri, underscore-uri și liniuțe."
|
||||
},
|
||||
"train": {
|
||||
"title": "Clasificări recente",
|
||||
"titleShort": "Recente",
|
||||
"aria": "Selectează clasificările recente"
|
||||
},
|
||||
"categories": "Clase",
|
||||
"createCategory": {
|
||||
"new": "Creează clasă nouă"
|
||||
},
|
||||
"categorizeImageAs": "Clasifică imaginea ca:",
|
||||
"categorizeImage": "Clasifică imaginea",
|
||||
"noModels": {
|
||||
"object": {
|
||||
"title": "Nu există modele de clasificare a obiectelor",
|
||||
"description": "Creează un model personalizat pentru a clasifica obiectele detectate.",
|
||||
"buttonText": "Creează model de obiect"
|
||||
},
|
||||
"state": {
|
||||
"title": "Nu există modele de clasificare a stării",
|
||||
"description": "Creează un model personalizat pentru a monitoriza și clasifica schimbările de stare în anumite zone ale camerei.",
|
||||
"buttonText": "Creează model de stare"
|
||||
}
|
||||
},
|
||||
"wizard": {
|
||||
"title": "Creează clasificare nouă",
|
||||
"steps": {
|
||||
"nameAndDefine": "Numire și definire",
|
||||
"stateArea": "Zona de stare",
|
||||
"chooseExamples": "Alege exemple"
|
||||
},
|
||||
"step1": {
|
||||
"description": "Modelele de stare monitorizează zone fixe ale camerei pentru schimbări (de exemplu, ușă deschisă/închisă). Modelele de obiect adaugă clasificări obiectelor detectate (de exemplu, animale cunoscute, curieri etc.).",
|
||||
"name": "Nume",
|
||||
"namePlaceholder": "Introduceți numele modelului...",
|
||||
"type": "Tip",
|
||||
"typeState": "Stare",
|
||||
"typeObject": "Obiect",
|
||||
"objectLabel": "Etichetă obiect",
|
||||
"objectLabelPlaceholder": "Selectează tipul obiectului...",
|
||||
"classificationType": "Tip de clasificare",
|
||||
"classificationTypeTip": "Află despre tipurile de clasificare",
|
||||
"classificationTypeDesc": "Subetichetele adaugă text suplimentar la eticheta obiectului (de exemplu, 'Persoană: UPS'). Atributele sunt metadate căutabile, stocate separat în metadatele obiectului.",
|
||||
"classificationSubLabel": "Subeticheta",
|
||||
"classificationAttribute": "Atribut",
|
||||
"classes": "Clase",
|
||||
"classesTip": "Află despre clase",
|
||||
"classesStateDesc": "Definește diferitele stări în care poate fi zona camerei tale. De exemplu: 'deschis' și 'închis' pentru o ușă de garaj.",
|
||||
"classesObjectDesc": "Definește diferitele categorii în care să fie clasificate obiectele detectate. De exemplu: 'curier', 'rezident', 'necunoscut' pentru clasificarea persoanelor.",
|
||||
"classPlaceholder": "Introduceți numele clasei...",
|
||||
"errors": {
|
||||
"nameRequired": "Numele modelului este obligatoriu",
|
||||
"nameLength": "Numele modelului trebuie să aibă 64 de caractere sau mai puțin",
|
||||
"nameOnlyNumbers": "Numele modelului nu poate conține doar cifre",
|
||||
"classRequired": "Este necesară cel puțin 1 clasă",
|
||||
"classesUnique": "Numele claselor trebuie să fie unice",
|
||||
"stateRequiresTwoClasses": "Modelele de stare necesită cel puțin 2 clase",
|
||||
"objectLabelRequired": "Vă rugăm să selectați o etichetă de obiect",
|
||||
"objectTypeRequired": "Vă rugăm să selectați un tip de clasificare"
|
||||
},
|
||||
"states": "Stări"
|
||||
},
|
||||
"step2": {
|
||||
"description": "Selectați camerele și definiți zona de monitorizat pentru fiecare cameră. Modelul va clasifica starea acestor zone.",
|
||||
"cameras": "Camere",
|
||||
"selectCamera": "Selectează camera",
|
||||
"noCameras": "Apasă pe + pentru a adăuga camere",
|
||||
"selectCameraPrompt": "Selectați o cameră din listă pentru a defini aria sa de monitorizare"
|
||||
},
|
||||
"step3": {
|
||||
"selectImagesPrompt": "Selectați toate imaginile cu: {{className}}",
|
||||
"selectImagesDescription": "Apăsați pe imagini pentru a le selecta. Apăsați pe Continuare când ați terminat cu această clasă.",
|
||||
"generating": {
|
||||
"title": "Generare imagini de exemplu",
|
||||
"description": "Frigate preia imagini reprezentative din înregistrările tale. Aceasta poate dura câteva momente..."
|
||||
},
|
||||
"training": {
|
||||
"title": "Antrenare model",
|
||||
"description": "Modelul tău este antrenat în fundal. Închide această fereastră și modelul va începe să ruleze imediat ce antrenamentul este finalizat."
|
||||
},
|
||||
"retryGenerate": "Reîncearcă generarea",
|
||||
"noImages": "Nu s-au generat imagini de exemplu",
|
||||
"classifying": "Clasificare și antrenare...",
|
||||
"trainingStarted": "Antrenamentul a început cu succes",
|
||||
"errors": {
|
||||
"noCameras": "Nu există camere configurate",
|
||||
"noObjectLabel": "Nu a fost selectată nicio etichetă de obiect",
|
||||
"generateFailed": "Generarea exemplelor a eșuat: {{error}}",
|
||||
"generationFailed": "Generarea a eșuat. Vă rugăm să încercați din nou.",
|
||||
"classifyFailed": "Clasificarea imaginilor a eșuat: {{error}}"
|
||||
},
|
||||
"generateSuccess": "Imaginile de exemplu au fost generate cu succes"
|
||||
}
|
||||
},
|
||||
"deleteModel": {
|
||||
"title": "Șterge modelul de clasificare",
|
||||
"single": "Sigur doriți să ștergeți {{name}}? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată.",
|
||||
"desc": "Sigur doriți să ștergeți {{count}} model(e)? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată."
|
||||
},
|
||||
"menu": {
|
||||
"objects": "Obiecte",
|
||||
"states": "Stări"
|
||||
},
|
||||
"details": {
|
||||
"scoreInfo": "Scorul reprezintă încrederea medie a clasificării pentru toate detecțiile acestui obiect."
|
||||
},
|
||||
"edit": {
|
||||
"title": "Editează modelul de clasificare",
|
||||
"descriptionState": "Editează clasele pentru acest model de clasificare a stării. Modificările vor necesita reantrenarea modelului.",
|
||||
"descriptionObject": "Editează tipul de obiect și tipul de clasificare pentru acest model de clasificare a obiectelor.",
|
||||
"stateClassesInfo": "Notă: Modificarea claselor de stare necesită reantrenarea modelului cu clasele actualizate."
|
||||
}
|
||||
}
|
||||
|
||||
@ -40,12 +40,20 @@
|
||||
"detail": {
|
||||
"noDataFound": "Nicio dată detaliată de revizuit",
|
||||
"aria": "Comută vizualizarea detaliată",
|
||||
"trackedObject_one": "obiect urmărit",
|
||||
"trackedObject_other": "obiecte urmărite",
|
||||
"noObjectDetailData": "Nicio dată de detaliu obiect disponibilă."
|
||||
"trackedObject_one": "obiect",
|
||||
"trackedObject_other": "obiecte",
|
||||
"noObjectDetailData": "Nicio dată de detaliu obiect disponibilă.",
|
||||
"label": "Detaliu",
|
||||
"settings": "Setări vizualizare detaliată",
|
||||
"alwaysExpandActive": {
|
||||
"title": "Extinde întotdeauna activul",
|
||||
"desc": "Extinde întotdeauna detaliile obiectului elementului activ de revizuire, atunci când sunt disponibile."
|
||||
}
|
||||
},
|
||||
"objectTrack": {
|
||||
"trackedPoint": "Punct urmărit",
|
||||
"clickToSeek": "Fă clic pentru a naviga la acest moment"
|
||||
}
|
||||
"clickToSeek": "Apasă pentru a naviga la acest moment"
|
||||
},
|
||||
"zoomIn": "Mărește",
|
||||
"zoomOut": "Micșorează"
|
||||
}
|
||||
|
||||
@ -33,7 +33,8 @@
|
||||
"details": "detalii",
|
||||
"snapshot": "snapshot",
|
||||
"video": "video",
|
||||
"object_lifecycle": "ciclul de viață al obiectului"
|
||||
"object_lifecycle": "ciclul de viață al obiectului",
|
||||
"thumbnail": "miniatură"
|
||||
},
|
||||
"objectLifecycle": {
|
||||
"lifecycleItemDesc": {
|
||||
@ -200,12 +201,22 @@
|
||||
"audioTranscription": {
|
||||
"label": "Transcrie",
|
||||
"aria": "Solicită transcrierea audio"
|
||||
},
|
||||
"viewTrackingDetails": {
|
||||
"label": "Vizualizați detaliile de urmărire",
|
||||
"aria": "Vizualizați detaliile de urmărire"
|
||||
},
|
||||
"showObjectDetails": {
|
||||
"label": "Afișează traseul obiectului"
|
||||
},
|
||||
"hideObjectDetails": {
|
||||
"label": "Ascunde traseul obiectului"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"confirmDelete": {
|
||||
"title": "Confirmă ștergerea",
|
||||
"desc": "Ștergerea acestui obiect urmărit elimină instantaneul, orice încorporări salvate și orice intrări asociate ciclului de viață al obiectului. Materialul video înregistrat al acestui obiect urmărit în vizualizarea Istoric <em>NU</em> va fi șters.<br /><br />Ești sigur că vrei să continui?"
|
||||
"desc": "Ștergerea acestui obiect urmărit elimină snapshot-ul, orice încorporări salvate și orice intrări asociate detaliilor de urmărire. Materialul video înregistrat al acestui obiect urmărit în vizualizarea Istoric <em>NU</em> va fi șters.<br /><br />Ești sigur că vrei să continui?"
|
||||
}
|
||||
},
|
||||
"noTrackedObjects": "Nu au fost găsite obiecte urmărite",
|
||||
@ -224,5 +235,53 @@
|
||||
},
|
||||
"concerns": {
|
||||
"label": "Îngrijorări"
|
||||
},
|
||||
"trackingDetails": {
|
||||
"title": "Detalii de Urmărire",
|
||||
"noImageFound": "Nu s-a găsit nicio imagine pentru acest marcaj de timp.",
|
||||
"createObjectMask": "Creează Masca Obiectului",
|
||||
"adjustAnnotationSettings": "Ajustează Setările de anotare",
|
||||
"scrollViewTips": "Apasă pentru a vizualiza momentele semnificative din ciclul de viață al acestui obiect.",
|
||||
"autoTrackingTips": "Pozițiile casetelor de delimitare vor fi inexacte pentru camerele cu urmărire automată.",
|
||||
"count": "{{first}} din {{second}}",
|
||||
"trackedPoint": "Punct Urmărit",
|
||||
"lifecycleItemDesc": {
|
||||
"visible": "detectat {{label}}",
|
||||
"entered_zone": "{{label}} a intrat în {{zones}}",
|
||||
"active": "{{label}} a devenit activ",
|
||||
"stationary": "{{label}} a devenit staționar",
|
||||
"attribute": {
|
||||
"faceOrLicense_plate": "{{attribute}} detectat pentru {{label}}",
|
||||
"other": "{{label}} recunoscut ca {{attribute}}"
|
||||
},
|
||||
"gone": "{{label}} a plecat",
|
||||
"heard": "{{label}} auzit",
|
||||
"external": "{{label}} detectat",
|
||||
"header": {
|
||||
"zones": "Zone",
|
||||
"ratio": "Raport",
|
||||
"area": "Aria"
|
||||
}
|
||||
},
|
||||
"annotationSettings": {
|
||||
"title": "Setări de adnotare",
|
||||
"showAllZones": {
|
||||
"title": "Afișează toate",
|
||||
"desc": "Afișează întotdeauna zonele pe cadrele în care obiectele au intrat într-o zonă."
|
||||
},
|
||||
"offset": {
|
||||
"label": "Compensare adnotare",
|
||||
"desc": "Aceste date provin din fluxul de detectare al camerei tale, dar sunt suprapuse pe imaginile din fluxul de înregistrare. Este puțin probabil ca cele două fluxuri să fie perfect sincronizate. Drept urmare, caseta delimitatoare și materialul video nu se vor alinia perfect. Poți folosi această setare pentru a decală adnotările înainte sau înapoi în timp, pentru a le alinia mai bine cu materialul înregistrat.",
|
||||
"millisecondsToOffset": "Millisecunde pentru a decalca adnotările de detectare. <em>Implicit: 0</em>",
|
||||
"tips": "SFAT: Imaginează-ți că există un clip al unui eveniment cu o persoană care merge de la stânga la dreapta. Dacă caseta delimitatoare a cronologiei evenimentului este constant în stânga persoanei, atunci valoarea ar trebui să fie scăzută. În mod similar, dacă o persoană merge de la stânga la dreapta și caseta delimitatoare este constant în fața persoanei, atunci valoarea ar trebui să fie crescută.",
|
||||
"toast": {
|
||||
"success": "Decalajul de adnotare pentru {{camera}} a fost salvat în fișierul de configurare. Repornește Frigate pentru a aplica modificările."
|
||||
}
|
||||
}
|
||||
},
|
||||
"carousel": {
|
||||
"previous": "Slide-ul anterior",
|
||||
"next": "Slide-ul următor"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,5 +13,11 @@
|
||||
"error": {
|
||||
"renameExportFailed": "Eroare redenumire export: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"tooltip": {
|
||||
"shareExport": "Partajează exportul",
|
||||
"downloadVideo": "Descarcă videoclipul",
|
||||
"editName": "Editează numele",
|
||||
"deleteExport": "Șterge exportul"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
{
|
||||
"description": {
|
||||
"addFace": "Parcurge adăugarea unei colecții noi la biblioteca de fețe.",
|
||||
"addFace": "Adaugă o colecție nouă în Biblioteca de fețe încărcând prima ta imagine.",
|
||||
"placeholder": "Introduceti un nume pentru aceasta colectie",
|
||||
"invalidName": "Nume invalid. Numele poate conține doar litere, cifre, spații, apostrofuri, liniuțe de subliniere și cratime."
|
||||
"invalidName": "Nume invalid. Numele pot include doar litere, cifre, spații, apostrofuri, underscore-uri și liniuțe."
|
||||
},
|
||||
"details": {
|
||||
"person": "Persoană",
|
||||
|
||||
@ -17,9 +17,9 @@
|
||||
},
|
||||
"move": {
|
||||
"clickMove": {
|
||||
"label": "Fă click în cadrul imaginii pentru a centra camera",
|
||||
"enable": "Activează clic pentru a muta",
|
||||
"disable": "Dezactivează clic pentru a muta"
|
||||
"label": "Apasă în cadrul imaginii pentru a centra camera",
|
||||
"enable": "Activează mutarea prin clic",
|
||||
"disable": "Dezactivează mutarea prin clic"
|
||||
},
|
||||
"left": {
|
||||
"label": "Mișcă camera PTZ spre stânga"
|
||||
@ -36,7 +36,7 @@
|
||||
},
|
||||
"frame": {
|
||||
"center": {
|
||||
"label": "Fă clic în cadru pentru a centra camera PTZ"
|
||||
"label": "Apasă în cadru pentru a centra camera PTZ"
|
||||
}
|
||||
},
|
||||
"presets": "Presetări cameră PTZ",
|
||||
@ -100,7 +100,7 @@
|
||||
"start": "Pornește înregistrarea la cerere",
|
||||
"started": "Înregistrare la cerere pornită manual.",
|
||||
"failedToStart": "Nu s-a putut porni înregistrarea manuală la cerere.",
|
||||
"recordDisabledTips": "Deoarece înregistrarea este dezactivată sau restricționată în configurația pentru această cameră, va fi salvată doar o captură de ecran.",
|
||||
"recordDisabledTips": "Deoarece înregistrarea este dezactivată sau restricționată în configurația pentru această cameră, doar un snapshot va fi salvat.",
|
||||
"end": "Oprește înregistrarea la cerere",
|
||||
"ended": "Înregistrarea manuală la cerere s-a încheiat.",
|
||||
"failedToEnd": "Nu s-a reușit încheierea înregistrării manuale la cerere."
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
"step1": "Tastează un nume de filtru urmat de două puncte (ex. „camere:” ).",
|
||||
"step3": "Folosește mai multe filtre adăugându-le unul după altul, separate prin spațiu.",
|
||||
"step4": "Filtrele de dată (înainte: și după:) folosesc formatul {{DateFormat}}.",
|
||||
"step6": "Elimină filtrele făcând clic pe „X”-ul de lângă ele.",
|
||||
"step6": "Elimină filtrele apăsând pe „X”-ul de lângă ele.",
|
||||
"exampleLabel": "Exemplu:",
|
||||
"step5": "Filtrul pentru intervalul de timp folosește formatul {{exampleTime}}.",
|
||||
"step2": "Selectează o valoare din sugestii sau tastează propria valoare.",
|
||||
|
||||
@ -50,6 +50,10 @@
|
||||
"playAlertVideos": {
|
||||
"label": "Redă videoclipurile de alertă",
|
||||
"desc": "În mod implicit, alertele recente din panoul Live se redau ca videoclipuri mici, ce ruleaza repetat. Dezactivează această opțiune pentru a afișa doar o imagine statică a alertelor recente pe acest dispozitiv/browser."
|
||||
},
|
||||
"displayCameraNames": {
|
||||
"label": "Afișează întotdeauna numele camerelor",
|
||||
"desc": "Afișează întotdeauna numele camerelor într-un indicator în tabloul de bord cu vizualizare live pe mai multe camere."
|
||||
}
|
||||
},
|
||||
"storedLayouts": {
|
||||
@ -267,7 +271,7 @@
|
||||
"desc": "Specifică o viteză minimă pe care trebuie să o aibă obiectele pentru a fi considerate în această zonă."
|
||||
},
|
||||
"documentTitle": "Editează zone - Frigate",
|
||||
"clickDrawPolygon": "Click pentru a desena un poligon pe imagine.",
|
||||
"clickDrawPolygon": "Apasă pentru a desena un poligon pe imagine.",
|
||||
"toast": {
|
||||
"success": "Zona ({{zoneName}}) a fost salvată. Repornește Frigate pentru a aplica modificările."
|
||||
},
|
||||
@ -282,7 +286,7 @@
|
||||
"point_one": "{{count}} punct",
|
||||
"point_few": "{{count}} puncte",
|
||||
"point_other": "{{count}} de puncte",
|
||||
"clickDrawPolygon": "Fă click pentru a desena un poligon pe imagine.",
|
||||
"clickDrawPolygon": "Fă clic pentru a desena un poligon pe imagine.",
|
||||
"label": "Măști de mișcare",
|
||||
"documentTitle": "Editează masca de mișcare - Frigate",
|
||||
"desc": {
|
||||
@ -330,7 +334,7 @@
|
||||
"title": "{{polygonName}} a fost salvat. Repornește Frigate pentru a aplica modificările."
|
||||
}
|
||||
},
|
||||
"clickDrawPolygon": "Fă click pentru a desena un poligon pe imagine.",
|
||||
"clickDrawPolygon": "Fă clic pentru a desena un poligon pe imagine.",
|
||||
"context": "Măștile de filtrare a obiectelor sunt folosite pentru a elimina falsele pozitive pentru un anumit tip de obiect, în funcție de locația acestuia."
|
||||
},
|
||||
"restart_required": "Repornire necesară (măști/zone modificate)",
|
||||
@ -682,7 +686,7 @@
|
||||
"triggers": {
|
||||
"documentTitle": "Declanșatoare",
|
||||
"management": {
|
||||
"title": "Gestionarea declanșatoarelor",
|
||||
"title": "Declanșatoare",
|
||||
"desc": "Gestionează declanșatoarele pentru {{camera}}. Folosește tipul miniatură pentru a declanșa pe miniaturi similare cu obiectul urmărit selectat și tipul descriere pentru a declanșa pe descrieri similare textului pe care îl specifici."
|
||||
},
|
||||
"addTrigger": "Adaugă declanșator",
|
||||
@ -703,7 +707,9 @@
|
||||
},
|
||||
"actions": {
|
||||
"alert": "Marchează ca alertă",
|
||||
"notification": "Trimite notificare"
|
||||
"notification": "Trimite notificare",
|
||||
"sub_label": "Adaugă subeticheta",
|
||||
"attribute": "Adaugă atribut"
|
||||
},
|
||||
"dialog": {
|
||||
"createTrigger": {
|
||||
@ -721,25 +727,28 @@
|
||||
"form": {
|
||||
"name": {
|
||||
"title": "Nume",
|
||||
"placeholder": "Introdu numele declanșatorului",
|
||||
"placeholder": "Denumește acest declanșator",
|
||||
"error": {
|
||||
"minLength": "Numele trebuie să aibă cel puțin 2 caractere.",
|
||||
"invalidCharacters": "Numele poate conține doar litere, cifre, underscore-uri și cratime.",
|
||||
"minLength": "Câmpul trebuie să aibă cel puțin 2 caractere.",
|
||||
"invalidCharacters": "Câmpul poate conține doar litere, cifre, underscore-uri și cratime.",
|
||||
"alreadyExists": "Un declanșator cu acest nume există deja pentru această cameră."
|
||||
}
|
||||
},
|
||||
"description": "Introduceți un nume sau o descriere unică pentru a identifica acest declanșator"
|
||||
},
|
||||
"enabled": {
|
||||
"description": "Activează sau dezactivează acest declanșator"
|
||||
},
|
||||
"type": {
|
||||
"title": "Tip",
|
||||
"placeholder": "Selectează tipul de declanșator"
|
||||
"placeholder": "Selectează tipul de declanșator",
|
||||
"description": "Declanșează atunci când este detectată o descriere de obiect urmărit similară",
|
||||
"thumbnail": "Declanșează atunci când este detectată o miniatură de obiect urmărit similară"
|
||||
},
|
||||
"content": {
|
||||
"title": "Conținut",
|
||||
"imagePlaceholder": "Selectează o imagine",
|
||||
"imagePlaceholder": "Selectează o miniatură",
|
||||
"textPlaceholder": "Introdu conținutul textului",
|
||||
"imageDesc": "Selectează o imagine pentru a declanșa această acțiune atunci când o imagine similară este detectată.",
|
||||
"imageDesc": "Sunt afișate doar ultimele 100 de miniaturi. Dacă nu găsiți miniatura dorită, vă rugăm să verificați obiectele anterioare în Explorator și să configurați un declanșator din meniul de acolo.",
|
||||
"textDesc": "Introduceți textul pentru a declanșa această acțiune atunci când este detectată o descriere de obiect urmărit similară.",
|
||||
"error": {
|
||||
"required": "Conținutul este obligatoriu."
|
||||
@ -750,11 +759,12 @@
|
||||
"error": {
|
||||
"min": "Pragul trebuie să fie cel puțin 0",
|
||||
"max": "Pragul trebuie să fie cel mult 1"
|
||||
}
|
||||
},
|
||||
"desc": "Setați pragul de similitudine pentru acest declanșator. Un prag mai mare înseamnă că este necesară o potrivire mai apropiată pentru declanșarea acestuia."
|
||||
},
|
||||
"actions": {
|
||||
"title": "Acțiuni",
|
||||
"desc": "Implicit, Frigate trimite un mesaj MQTT pentru toate declanșatoarele. Alegeți o acțiune suplimentară de efectuat atunci când acest declanșator se activează.",
|
||||
"desc": "În mod implicit, Frigate trimite un mesaj MQTT pentru toate declanșatoarele. Subetichetele adaugă numele declanșatorului la eticheta obiectului. Atributele sunt metadate căutabile, stocate separat în metadatele obiectului urmărit.",
|
||||
"error": {
|
||||
"min": "Trebuie selectată cel puțin o acțiune."
|
||||
}
|
||||
@ -781,6 +791,23 @@
|
||||
"semanticSearch": {
|
||||
"title": "Căutarea semantică este dezactivată",
|
||||
"desc": "Căutarea semantică trebuie să fie activată pentru a utiliza declanșatoarele."
|
||||
},
|
||||
"wizard": {
|
||||
"title": "Creează declanșator",
|
||||
"step1": {
|
||||
"description": "Configurează setările de bază pentru declanșatorul tău."
|
||||
},
|
||||
"step2": {
|
||||
"description": "Configurează conținutul care va declanșa această acțiune."
|
||||
},
|
||||
"step3": {
|
||||
"description": "Configurează pragul și acțiunile pentru acest declanșator."
|
||||
},
|
||||
"steps": {
|
||||
"nameAndType": "Nume și Tip",
|
||||
"configureData": "Configurează datele",
|
||||
"thresholdAndActions": "Prag și Acțiuni"
|
||||
}
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
@ -802,7 +829,9 @@
|
||||
"createRole": "Rolul {{role}} a fost creat cu succes",
|
||||
"updateCameras": "Camerele au fost actualizate pentru rolul {{role}}",
|
||||
"deleteRole": "Rolul {{role}} a fost șters cu succes",
|
||||
"userRolesUpdated": "{{count}} utilizator(i) atribuiți acestui rol au fost actualizați la „vizualizator”, care are acces la toate camerele."
|
||||
"userRolesUpdated_one": "{{count}} utilizator(i) atribuiți acestui rol au fost actualizați la „vizualizator”, care are acces la toate camerele.",
|
||||
"userRolesUpdated_few": "",
|
||||
"userRolesUpdated_other": ""
|
||||
},
|
||||
"error": {
|
||||
"createRoleFailed": "Crearea rolului a eșuat: {{errorMessage}}",
|
||||
@ -896,11 +925,16 @@
|
||||
"invalidCharacters": "Numele camerei conține caractere nevalide",
|
||||
"nameExists": "Numele camerei există deja",
|
||||
"brands": {
|
||||
"reolink-rtsp": "RTSP Reolink nu este recomandat. Se recomandă să activezi HTTP în setările camerei și să repornești asistentul de cameră."
|
||||
}
|
||||
"reolink-rtsp": "RTSP Reolink nu este recomandat. Activează HTTP în setările firmware ale camerei și repornește asistentul."
|
||||
},
|
||||
"customUrlRtspRequired": "URL-urile personalizate trebuie să înceapă cu \"rtsp://\". Este necesară configurare manuală pentru stream-urile de cameră non-RTSP."
|
||||
},
|
||||
"docs": {
|
||||
"reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
|
||||
},
|
||||
"testing": {
|
||||
"probingMetadata": "Sondare metadate cameră...",
|
||||
"fetchingSnapshot": "Preluare snapshot cameră..."
|
||||
}
|
||||
},
|
||||
"step2": {
|
||||
@ -982,7 +1016,9 @@
|
||||
},
|
||||
"resolutionHigh": "O rezoluție de {{resolution}} poate cauza o utilizare crescută a resurselor.",
|
||||
"resolutionLow": "O rezoluție de {{resolution}} poate fi prea mică pentru detectarea fiabilă a obiectelor mici."
|
||||
}
|
||||
},
|
||||
"ffmpegModule": "Folosește modul de compatibilitate pentru stream-uri",
|
||||
"ffmpegModuleDescription": "Dacă fluxul nu se încarcă după mai multe încercări, activați această opțiune. Când este activată, Frigate va folosi modulul ffmpeg împreună cu go2rtc. Aceasta poate oferi o compatibilitate mai bună cu unele fluxuri de camere."
|
||||
}
|
||||
},
|
||||
"cameraManagement": {
|
||||
|
||||
@ -1 +1,40 @@
|
||||
{}
|
||||
{
|
||||
"documentTitle": "Модели классификации",
|
||||
"details": {
|
||||
"scoreInfo": "Оценка представляет собой среднюю степень достоверности классификации по всем обнаружениям данного объекта."
|
||||
},
|
||||
"button": {
|
||||
"deleteClassificationAttempts": "Удалить изображения классификации",
|
||||
"renameCategory": "Переименовать класс",
|
||||
"deleteCategory": "Удалить класс",
|
||||
"deleteImages": "Удалить изображения",
|
||||
"trainModel": "Тренировать модель",
|
||||
"addClassification": "Добавить классификацию",
|
||||
"deleteModels": "Удалить модели",
|
||||
"editModel": "Редактировать модель"
|
||||
},
|
||||
"toast": {
|
||||
"success": {
|
||||
"deletedCategory": "Удаленный класс",
|
||||
"deletedImage": "Удалённые изображения",
|
||||
"deletedModel_one": "Успешно удалена {{count}} модель",
|
||||
"deletedModel_few": "Успешно удалены {{count}} модели",
|
||||
"deletedModel_many": "Успешно удалены {{count}} моделей",
|
||||
"categorizedImage": "Изображение успешно классифицировано",
|
||||
"trainedModel": "Успешно обученная модель.",
|
||||
"trainingModel": "Успешно начато обучение моделей.",
|
||||
"updatedModel": "Успешно обновлена конфигурация модели"
|
||||
},
|
||||
"error": {
|
||||
"deleteImageFailed": "Не удалось удалить: {{errorMessage}}",
|
||||
"deleteCategoryFailed": "Не удалось удалить класс: {{errorMessage}}",
|
||||
"deleteModelFailed": "Не удалось удалить модель: {{errorMessage}}",
|
||||
"categorizeFailed": "Не удалось классифицировать изображение: {{errorMessage}}",
|
||||
"trainingFailed": "Не удалось начать обучение модели: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"deleteCategory": {
|
||||
"title": "Удалить класс",
|
||||
"desc": "Вы уверены, что хотите удалить класс {{name}}? Это приведёт к безвозвратному удалению всех связанных с ним изображений и потребует повторного обучения модели."
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,12 +41,16 @@
|
||||
"detail": {
|
||||
"noDataFound": "Нет данных для просмотра",
|
||||
"aria": "Переключить подробный режим просмотра",
|
||||
"trackedObject_one": "отслеживаемый объект",
|
||||
"trackedObject_other": "отслеживаемые объекты",
|
||||
"noObjectDetailData": "Данные о деталях объекта недоступны."
|
||||
"trackedObject_one": "объект",
|
||||
"trackedObject_other": "объекты",
|
||||
"noObjectDetailData": "Данные о деталях объекта недоступны.",
|
||||
"label": "Деталь",
|
||||
"settings": "Настройки подробного просмотра"
|
||||
},
|
||||
"objectTrack": {
|
||||
"trackedPoint": "Отслеживаемая точка",
|
||||
"clickToSeek": "Перейти к этому моменту"
|
||||
}
|
||||
},
|
||||
"zoomIn": "Увеличить",
|
||||
"zoomOut": "Отдалить"
|
||||
}
|
||||
|
||||
@ -110,7 +110,8 @@
|
||||
"details": "детали",
|
||||
"snapshot": "снимок",
|
||||
"video": "видео",
|
||||
"object_lifecycle": "жизненный цикл объекта"
|
||||
"object_lifecycle": "жизненный цикл объекта",
|
||||
"thumbnail": "миниатюра"
|
||||
},
|
||||
"objectLifecycle": {
|
||||
"title": "Жизненный цикл объекта",
|
||||
|
||||
@ -13,5 +13,11 @@
|
||||
"error": {
|
||||
"renameExportFailed": "Не удалось переименовать экспорт: {{errorMessage}}"
|
||||
}
|
||||
},
|
||||
"tooltip": {
|
||||
"shareExport": "Поделиться экспортом",
|
||||
"downloadVideo": "Скачать видео",
|
||||
"editName": "Изменить название",
|
||||
"deleteExport": "Удалить экспорт"
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
"documentTitle": "Библиотека лиц - Frigate",
|
||||
"description": {
|
||||
"placeholder": "Введите название коллекции",
|
||||
"addFace": "Пошаговое добавление новой коллекции в Библиотеку лиц.",
|
||||
"addFace": "Добавьте новую коллекцию в библиотеку лиц, загрузив свое первое изображение.",
|
||||
"invalidName": "Недопустимое имя. Имена могут содержать только буквы, цифры, пробелы, апострофы, подчеркивания и дефисы."
|
||||
},
|
||||
"createFaceLibrary": {
|
||||
@ -28,8 +28,8 @@
|
||||
},
|
||||
"selectItem": "Выбор {{item}}",
|
||||
"train": {
|
||||
"aria": "Выбор обучения",
|
||||
"title": "Обучение",
|
||||
"aria": "Выберите последние распознавания",
|
||||
"title": "Последние распознавания",
|
||||
"empty": "Нет недавних попыток распознавания лиц"
|
||||
},
|
||||
"toast": {
|
||||
|
||||
@ -432,5 +432,72 @@
|
||||
"shofar": "Šofar",
|
||||
"liquid": "Kvapalina",
|
||||
"splash": "Šplechnutie",
|
||||
"slosh": "Slosh"
|
||||
"slosh": "Slosh",
|
||||
"squish": "Vytlačiť",
|
||||
"drip": "Kvapkať",
|
||||
"pour": "Nalej",
|
||||
"trickle": "Pokvapkať",
|
||||
"gush": "Striekať",
|
||||
"fill": "Vyplňte",
|
||||
"spray": "Striekajte",
|
||||
"pump": "Pumpa",
|
||||
"stir": "Miešajte",
|
||||
"boiling": "Varenie",
|
||||
"sonar": "Sonar",
|
||||
"arrow": "Šípka",
|
||||
"whoosh": "Whoosh",
|
||||
"thump": "Palec",
|
||||
"thunk": "Thunk",
|
||||
"electronic_tuner": "Elektronický tuner",
|
||||
"effects_unit": "Efektuje jednotky",
|
||||
"chorus_effect": "Zborový efekt",
|
||||
"basketball_bounce": "Odrážanie basketbalovej lopty",
|
||||
"bang": "Bang",
|
||||
"slap": "Buchnutie",
|
||||
"whack": "Odpáliť",
|
||||
"smash": "Rozbiť",
|
||||
"breaking": "Prelomenie",
|
||||
"bouncing": "Odskakovanie",
|
||||
"whip": "Bič",
|
||||
"flap": "Klapka",
|
||||
"scratch": "Poškriabanie",
|
||||
"scrape": "Škrabať",
|
||||
"rub": "Potrieť",
|
||||
"roll": "Rolovať",
|
||||
"crushing": "Rozdrvovanie",
|
||||
"crumpling": "Mačkanie",
|
||||
"tearing": "Trhanie",
|
||||
"beep": "Pípnutie",
|
||||
"ping": "Ping",
|
||||
"ding": "Ding",
|
||||
"clang": "Zvonenie",
|
||||
"squeal": "Kňučať",
|
||||
"creak": "Vŕzganie",
|
||||
"rustle": "Šuchot",
|
||||
"whir": "Vrčanie",
|
||||
"clatter": "Cvakať",
|
||||
"sizzle": "Syčať",
|
||||
"clicking": "Klikanie",
|
||||
"clickety_clack": "Klikanie kľak",
|
||||
"rumble": "Rachot",
|
||||
"plop": "Prasknutie",
|
||||
"hum": "Hmkanie",
|
||||
"zing": "Zing",
|
||||
"boing": "Boing",
|
||||
"crunch": "Chrumnutie",
|
||||
"sine_wave": "Sínusoida",
|
||||
"harmonic": "Harmonický",
|
||||
"chirp_tone": "Cvrlikací tón",
|
||||
"pulse": "Pulz",
|
||||
"inside": "Vnútri",
|
||||
"outside": "Vonku",
|
||||
"reverberation": "Dozvuk",
|
||||
"echo": "Ozvena",
|
||||
"noise": "Zvuk",
|
||||
"mains_hum": "Hlavné Hum",
|
||||
"distortion": "Skreslenie",
|
||||
"sidetone": "Vedľajší tón",
|
||||
"cacophony": "Kakofónia",
|
||||
"throbbing": "Pulzujúci",
|
||||
"vibration": "Vibrácia"
|
||||
}
|
||||
|
||||
@ -101,7 +101,10 @@
|
||||
},
|
||||
"readTheDocumentation": "Prečítajte si dokumentáciu",
|
||||
"label": {
|
||||
"back": "Choď späť"
|
||||
"back": "Choď späť",
|
||||
"hide": "Skryť {{item}}",
|
||||
"show": "Zobraziť {{item}}",
|
||||
"ID": "ID"
|
||||
},
|
||||
"button": {
|
||||
"apply": "Použiť",
|
||||
@ -281,5 +284,14 @@
|
||||
},
|
||||
"information": {
|
||||
"pixels": "{{area}}px"
|
||||
},
|
||||
"list": {
|
||||
"two": "{{0}} a {{1}}",
|
||||
"many": "{{items}}, a {{last}}",
|
||||
"separatorWithSpace": ", "
|
||||
},
|
||||
"field": {
|
||||
"optional": "Voliteľné",
|
||||
"internalID": "Interné ID Frigate používa v konfigurácii a databáze"
|
||||
}
|
||||
}
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
"export": "Exportovať",
|
||||
"selectOrExport": "Vybrať pre Export",
|
||||
"toast": {
|
||||
"success": "Export úspešne spustený. Súbor nájdete v adresári /exports.",
|
||||
"success": "Export bol úspešne spustený. Súbor si pozrite na stránke exportov.",
|
||||
"error": {
|
||||
"failed": "Chyba spustenia exportu: {{error}}",
|
||||
"endTimeMustAfterStartTime": "Čas konca musí byť po čase začiatku",
|
||||
@ -117,6 +117,7 @@
|
||||
"search": {
|
||||
"placeholder": "Hľadať podľa štítku alebo podštítku..."
|
||||
},
|
||||
"noImages": "Pre tuto kameru sa nenašli žiadne miniatúry"
|
||||
"noImages": "Pre tuto kameru sa nenašli žiadne miniatúry",
|
||||
"unknownLabel": "Uložený obrázok spúšťača"
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user