Merge branch 'dev' into dev

This commit is contained in:
Dmytro Marchuk
2026-06-07 08:10:15 +03:00
committed by GitHub
708 changed files with 44080 additions and 7465 deletions
+181
View File
@@ -0,0 +1,181 @@
/**
* Camera clone dialog E2E tests.
*
* Covers the design invariants that don't depend on per-camera resolution
* differences in the mock fixture:
* 1. Dialog opens from the "Clone settings" button below Add/Delete.
* 2. A source camera must be chosen inside the dialog before cloning.
* 3. "Stream URLs and roles" is forced on and disabled for new-camera target.
* 4. Cloning to a new camera issues a single add PUT and shows a restart prompt.
* 5. The existing-camera target selects multiple destinations via a switch
* popover (with an "All cameras" toggle and source exclusion); the closed
* trigger summarizes the selection by name or as "All cameras".
*
* The spatial-mismatch warning path is exercised in unit-level review and via
* manual QA — the shared mock fixture ships every camera at 1280×720. The
* existing-camera PUT fan-out is likewise not asserted here: the mock cameras
* are identical apart from stream URLs (which existing-camera clones never
* copy) and the schema mock is empty, so a clone onto them produces no diff
* and no PUT. That path is covered by unit-level review and manual QA.
*/
import { test, expect } from "../fixtures/frigate-test";
async function openCloneDialog(frigateApp: {
page: import("@playwright/test").Page;
}) {
await frigateApp.page
.getByRole("button", { name: /^Clone settings$/i })
.click();
await expect(frigateApp.page.getByRole("dialog")).toBeVisible();
}
async function selectSource(
frigateApp: { page: import("@playwright/test").Page },
source: string,
) {
await frigateApp.page.getByRole("dialog").getByRole("combobox").click();
await frigateApp.page
.getByRole("option", { name: source, exact: true })
.click();
}
test.describe("Camera clone dialog @medium @mobile", () => {
test.beforeEach(async ({ frigateApp }) => {
await frigateApp.goto("/settings?page=cameraManagement");
await expect(
frigateApp.page.getByRole("heading", { name: /Manage Cameras/i }),
).toBeVisible();
});
test("opens the dialog from the Clone settings button", async ({
frigateApp,
}) => {
await openCloneDialog(frigateApp);
await expect(
frigateApp.page.getByRole("dialog").getByText(/Clone camera settings/i),
).toBeVisible();
// The Clone button is disabled until a source (and target) is chosen.
await expect(
frigateApp.page.getByRole("button", { name: /^Clone$/i }),
).toBeDisabled();
});
test("forces Stream URLs and roles on for new-camera target", async ({
frigateApp,
}) => {
await openCloneDialog(frigateApp);
await selectSource(frigateApp, "Front Door");
// The "New camera" radio is selected by default; the Streams group renders
// the ffmpeg_live checkbox as forced-checked and disabled.
const streamsLabel = frigateApp.page
.locator("label")
.filter({ hasText: /Stream URLs and roles/i });
await expect(streamsLabel).toBeVisible();
const streamsCheckbox = streamsLabel.getByRole("checkbox");
await expect(streamsCheckbox).toBeChecked();
await expect(streamsCheckbox).toBeDisabled();
});
test("issues a single add PUT and shows restart toast for new-camera target", async ({
frigateApp,
}) => {
const requests: { body: unknown }[] = [];
await frigateApp.page.route("**/api/config/set", async (route) => {
const body = route.request().postDataJSON();
requests.push({ body });
await route.fulfill({
status: 200,
contentType: "application/json",
body: JSON.stringify({ success: true, require_restart: false }),
});
});
await frigateApp.goto("/settings?page=cameraManagement");
await expect(
frigateApp.page.getByRole("heading", { name: /Manage Cameras/i }),
).toBeVisible();
await openCloneDialog(frigateApp);
await selectSource(frigateApp, "Front Door");
const nameInput = frigateApp.page.getByPlaceholder(
/e\.g\., back_door or Back Door/i,
);
await nameInput.fill("clone_target_one");
// With a source picked and a valid name, changeCount > 0 enables Clone.
await expect(
frigateApp.page.getByRole("button", { name: /^Clone$/i }),
).toBeEnabled({ timeout: 5_000 });
await frigateApp.page.getByRole("button", { name: /^Clone$/i }).click();
// New-camera clones bundle into a single atomic add PUT (avoids
// per-section validation ordering issues).
await expect.poll(() => requests.length, { timeout: 10_000 }).toBe(1);
const firstBody = requests[0].body as {
requires_restart?: number;
update_topic?: string;
};
expect(firstBody.update_topic).toMatch(
/config\/cameras\/clone_target_one\/add/,
);
expect(firstBody.requires_restart).toBe(1);
// The toast offers a Restart action because new-camera always needs restart.
// .first() avoids strict-mode rejection when both the toast action and the
// RestartDialog trigger render concurrently.
await expect(
frigateApp.page.getByRole("button", { name: /Restart/i }).first(),
).toBeVisible({ timeout: 8_000 });
});
test("selects multiple existing destination cameras via a switch popover", async ({
frigateApp,
}) => {
await openCloneDialog(frigateApp);
await selectSource(frigateApp, "Front Door");
await frigateApp.page
.getByRole("radio", { name: /Existing cameras/i })
.click();
const dialog = frigateApp.page.getByRole("dialog");
// The destination trigger starts with the empty-selection placeholder.
await dialog
.getByRole("button", { name: /Select at least one camera/i })
.click();
// The chosen source is excluded from the destination switch list.
await expect(
dialog.getByRole("switch", { name: /Backyard/i }),
).toBeVisible();
await expect(dialog.getByRole("switch", { name: /Garage/i })).toBeVisible();
await expect(
dialog.getByRole("switch", { name: /^Front Door$/i }),
).toHaveCount(0);
// Selecting a single camera summarizes by name once the popover closes.
await dialog.getByRole("switch", { name: /Backyard/i }).click();
await frigateApp.page.keyboard.press("Escape");
await expect(
dialog.getByRole("button", { name: /^Backyard$/i }),
).toBeVisible();
// Reopen and select everything; the trigger collapses to "All cameras".
await dialog.getByRole("button", { name: /^Backyard$/i }).click();
await dialog.getByRole("switch", { name: /^All cameras$/i }).click();
await frigateApp.page.keyboard.press("Escape");
await expect(
dialog.getByRole("button", { name: /^All cameras$/i }),
).toBeVisible();
});
});
+8 -2
View File
@@ -129,8 +129,14 @@ test.describe("Replay — active session @medium", () => {
);
await actionGroup.first().click();
const dialog = frigateApp.page.getByRole("dialog");
await expect(dialog).toBeVisible({ timeout: 5_000 });
// On mobile PlatformAwareSheet renders a MobilePage (full-screen panel)
// instead of a Radix Dialog, so assert the panel title heading is visible.
await expect(
frigateApp.page.getByRole("heading", {
level: 2,
name: /^Configuration$/i,
}),
).toBeVisible({ timeout: 5_000 });
});
test("Objects tab renders with the camera_activity objects list", async ({
@@ -0,0 +1,55 @@
/**
* Detectors and model settings page tests -- HIGH tier.
*
* Tests rendering of the merged page and navigation from the Frigate+ page.
*/
import { test, expect } from "../../fixtures/frigate-test";
test.describe("Detectors and model Settings @high", () => {
test("page renders with detector and model cards", async ({ frigateApp }) => {
await frigateApp.goto("/settings?page=systemDetectorsAndModel");
await frigateApp.page.waitForTimeout(2000);
await expect(frigateApp.page.locator("#pageRoot")).toBeVisible();
const text = await frigateApp.page.textContent("#pageRoot");
expect(text).toContain("Detectors and model");
expect(text?.toLowerCase()).toContain("detector hardware");
expect(text?.toLowerCase()).toContain("detection model");
});
test("Frigate+ page links to the merged page", async ({ frigateApp }) => {
await frigateApp.goto("/settings?page=frigateplus");
await frigateApp.page.waitForTimeout(2000);
const button = frigateApp.page.getByRole("button", {
name: /Change in Detectors and model/,
});
// Button only appears when Frigate+ is enabled in the test config; skip
// the click assertion if it's not present.
if ((await button.count()) > 0) {
await button.first().click();
await frigateApp.page.waitForURL(/page=systemDetectorsAndModel/);
await expect(frigateApp.page.locator("#pageRoot")).toContainText(
"Detectors and model",
);
} else {
test.skip(
true,
"Frigate+ not enabled in this test config; skipping link assertion",
);
}
});
test("old systemDetectionModel deep-link no longer routes here", async ({
frigateApp,
}) => {
await frigateApp.goto("/settings?page=systemDetectionModel");
await frigateApp.page.waitForTimeout(2000);
// The old page key is no longer in allSettingsViews; the router
// falls back to its default settings page (uiSettings).
const text = await frigateApp.page.textContent("#pageRoot");
expect(text).not.toContain("Detection model");
});
});
@@ -0,0 +1,235 @@
/**
* go2rtc streams settings page tests -- MEDIUM tier.
*
* Regression coverage for the compat-mode (ffmpeg:) URL editor: unknown
* fragments like #timeout=10 must remain visible and editable when the
* stream is using compatibility mode.
*/
import { test, expect } from "../../fixtures/frigate-test";
import type { Page } from "@playwright/test";
const STREAM_NAME = "dome_sub";
const FFMPEG_URL_WITH_TIMEOUT =
"ffmpeg:rtsp://user:pass@192.168.0.20:554/Stream1#video=copy#audio=copy#timeout=10";
async function installRawPathsRoute(page: Page, streamUrl: string) {
let lastSavedConfig: unknown = null;
await page.route("**/api/config/raw_paths", (route) =>
route.fulfill({
json: {
cameras: {},
go2rtc: { streams: { [STREAM_NAME]: [streamUrl] } },
},
}),
);
await page.route("**/api/config/set", async (route) => {
lastSavedConfig = route.request().postDataJSON();
await route.fulfill({ json: { success: true, require_restart: false } });
});
return {
capturedConfig: () => lastSavedConfig,
};
}
async function expandStream(page: Page, streamName: string) {
// Each StreamCard renders the stream name as an h4 next to a rename
// button, with the chevron toggle as the last button in the header row.
// Scope to the header row (h4's grandparent) and click that last button.
const headerRow = page
.locator(`h4:text-is("${streamName}")`)
.locator("xpath=../..");
await headerRow.getByRole("button").last().click();
}
test.describe("go2rtc streams settings — ffmpeg compat mode @medium", () => {
test("preserves unknown fragments like #timeout= in the URL input", async ({
frigateApp,
}) => {
await installRawPathsRoute(frigateApp.page, FFMPEG_URL_WITH_TIMEOUT);
await frigateApp.goto("/settings?page=systemGo2rtcStreams");
await expect(
frigateApp.page.getByRole("heading", { name: STREAM_NAME }),
).toBeVisible();
await expandStream(frigateApp.page, STREAM_NAME);
const urlInput = frigateApp.page.getByPlaceholder(
"e.g., rtsp://user:pass@192.168.1.100/stream",
);
await expect(urlInput).toBeVisible();
// Focus the input so credential masking is bypassed and the raw value
// is rendered — this matches how a user would inspect the URL before
// editing it.
await urlInput.focus();
await expect(urlInput).toHaveValue(
"rtsp://user:pass@192.168.0.20:554/Stream1#timeout=10",
);
});
test("lets the user add an extra fragment in compat mode", async ({
frigateApp,
}) => {
const capture = await installRawPathsRoute(
frigateApp.page,
FFMPEG_URL_WITH_TIMEOUT,
);
await frigateApp.goto("/settings?page=systemGo2rtcStreams");
await expandStream(frigateApp.page, STREAM_NAME);
const urlInput = frigateApp.page.getByPlaceholder(
"e.g., rtsp://user:pass@192.168.1.100/stream",
);
await urlInput.focus();
await urlInput.fill(
"rtsp://user:pass@192.168.0.20:554/Stream1#timeout=10#backchannel=0",
);
await urlInput.blur();
// Reopen and re-focus to assert the new value round-tripped through
// parseFfmpegBaseAndExtras + buildFfmpegUrl back into the displayed text.
await urlInput.focus();
await expect(urlInput).toHaveValue(
"rtsp://user:pass@192.168.0.20:554/Stream1#timeout=10#backchannel=0",
);
// Save and verify the persisted URL includes both extras after the
// recognized video/audio directives.
await frigateApp.page.getByRole("button", { name: "Save" }).click();
await expect
.poll(() => capture.capturedConfig(), { timeout: 5_000 })
.toMatchObject({
config_data: {
go2rtc: {
streams: {
[STREAM_NAME]: [
"ffmpeg:rtsp://user:pass@192.168.0.20:554/Stream1#video=copy#audio=copy#timeout=10#backchannel=0",
],
},
},
},
});
});
test("preserves repeatable #audio= fallback chain and lets the user add another codec", async ({
frigateApp,
}) => {
const capture = await installRawPathsRoute(
frigateApp.page,
// Idiomatic go2rtc fallback: copy if source has the codec, else transcode
"ffmpeg:rtsp://user:pass@192.168.0.20:554/Stream1#video=copy#audio=copy#audio=opus",
);
await frigateApp.goto("/settings?page=systemGo2rtcStreams");
await expandStream(frigateApp.page, STREAM_NAME);
// Two pre-populated audio rows — one per #audio= fragment.
const audioLabel = frigateApp.page.locator(`label:text-is("Audio")`);
const audioRowsContainer = audioLabel.locator("xpath=../..");
await expect(audioRowsContainer.getByRole("combobox")).toHaveCount(2);
await expect(audioRowsContainer.getByRole("combobox").first()).toHaveText(
"Copy",
);
await expect(audioRowsContainer.getByRole("combobox").nth(1)).toHaveText(
"Transcode to Opus",
);
// Add a third audio codec via the LuPlus next to the "Audio" label.
await audioRowsContainer
.getByRole("button", { name: "Add audio codec" })
.click();
await expect(audioRowsContainer.getByRole("combobox")).toHaveCount(3);
// Change the newly-added entry to AAC.
await audioRowsContainer.getByRole("combobox").nth(2).click();
await frigateApp.page
.getByRole("option", { name: "Transcode to AAC" })
.click();
await frigateApp.page.getByRole("button", { name: "Save" }).click();
await expect
.poll(() => capture.capturedConfig(), { timeout: 5_000 })
.toMatchObject({
config_data: {
go2rtc: {
streams: {
[STREAM_NAME]: [
"ffmpeg:rtsp://user:pass@192.168.0.20:554/Stream1#video=copy#audio=copy#audio=opus#audio=aac",
],
},
},
},
});
});
test("LuX is only shown on fallback rows and removes only that codec", async ({
frigateApp,
}) => {
const capture = await installRawPathsRoute(
frigateApp.page,
"ffmpeg:rtsp://user:pass@192.168.0.20:554/Stream1#video=copy#audio=copy#audio=opus",
);
await frigateApp.goto("/settings?page=systemGo2rtcStreams");
await expandStream(frigateApp.page, STREAM_NAME);
const audioLabel = frigateApp.page.locator(`label:text-is("Audio")`);
const audioRowsContainer = audioLabel.locator("xpath=../..");
const removeButtons = audioRowsContainer.getByRole("button", {
name: "Remove codec",
});
// Primary (audio=copy) row is permanent and has no X; only the audio=opus
// fallback exposes a remove button.
await expect(removeButtons).toHaveCount(1);
await removeButtons.first().click();
await expect(audioRowsContainer.getByRole("combobox")).toHaveCount(1);
await expect(audioRowsContainer.getByRole("combobox")).toHaveText("Copy");
await frigateApp.page.getByRole("button", { name: "Save" }).click();
await expect
.poll(() => capture.capturedConfig(), { timeout: 5_000 })
.toMatchObject({
config_data: {
go2rtc: {
streams: {
[STREAM_NAME]: [
"ffmpeg:rtsp://user:pass@192.168.0.20:554/Stream1#video=copy#audio=copy",
],
},
},
},
});
});
test("picking Exclude on the primary row drops the #video= fragment entirely", async ({
frigateApp,
}) => {
const capture = await installRawPathsRoute(
frigateApp.page,
"ffmpeg:rtsp://user:pass@192.168.0.20:554/Stream1#video=copy#audio=copy",
);
await frigateApp.goto("/settings?page=systemGo2rtcStreams");
await expandStream(frigateApp.page, STREAM_NAME);
const videoLabel = frigateApp.page.locator(`label:text-is("Video")`);
const videoRowsContainer = videoLabel.locator("xpath=../..");
await videoRowsContainer.getByRole("combobox").first().click();
await frigateApp.page.getByRole("option", { name: "Exclude" }).click();
await frigateApp.page.getByRole("button", { name: "Save" }).click();
await expect
.poll(() => capture.capturedConfig(), { timeout: 5_000 })
.toMatchObject({
config_data: {
go2rtc: {
streams: {
[STREAM_NAME]: [
"ffmpeg:rtsp://user:pass@192.168.0.20:554/Stream1#audio=copy",
],
},
},
},
});
});
});
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/images/branding/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover" />
<title>Frigate</title>
<link
rel="apple-touch-icon"
+1 -1
View File
@@ -3,7 +3,7 @@
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/images/branding/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>Frigate</title>
<link
rel="apple-touch-icon"
+78 -3
View File
@@ -23,7 +23,7 @@
"singing": "غناء",
"choir": "فرقة غناء",
"chant": "تَرْنِيم",
"mantra": َرْنِيمَة",
"mantra": عويذة",
"child_singing": "غِنَاء طِفْل",
"synthetic_singing": "غِنَاء اِصْطِنَاعِيّ",
"rapping": "رَاب",
@@ -50,7 +50,7 @@
"hands": "أَيْدِي",
"finger_snapping": "طَقْطَقَة الأَصَابِع",
"clapping": "تَصْفِيق",
"heart_murmur": "لَغَط القَلْب",
"heart_murmur": "نفخة القَلْب",
"cheering": "صِيَاح",
"applause": "تَصْفِيق",
"chatter": "حَدِيث",
@@ -74,5 +74,80 @@
"bus": "حافلة",
"train": "قطار",
"boat": "زورق",
"bird": "طائر"
"bird": "طائر",
"sine_wave": "موجة الإشارة",
"harmonic": "أوزة",
"caw": "نُعَاقُ الغراب",
"owl": "بومة",
"hoot": "صاح",
"flapping_wings": "أجنحة ترفرف",
"dogs": "كلاب",
"rats": "فئران",
"mouse": "فأر",
"patter": "طقطق",
"insect": "حشرة",
"cricket": "كريكيت",
"mosquito": "بعوضة",
"fly": "سافر",
"buzz": "طنين",
"frog": "ضفدع",
"croak": "نق الضفدع",
"snake": "ثعبان",
"rattle": "جلجلية",
"whale_vocalization": "أصوات الحيتان",
"music": "موسيقى",
"musical_instrument": "آلة موسيقية",
"plucked_string_instrument": "آلة وترية",
"guitar": "غيتار",
"electric_guitar": "غيتار كهربائي",
"bass_guitar": "غيتار البيس",
"acoustic_guitar": "غيتار صوتي",
"steel_guitar": "غيتار فولاذي",
"tapping": "نقر",
"strum": "داعب الأ وتار",
"banjo": "البانجو",
"sitar": "سيتار",
"mandolin": "الماندولين",
"zither": "زيثارة",
"ukulele": "أوكوليلي",
"keyboard": "لوحة المفاتيح",
"piano": "بيانو",
"electric_piano": "بيانو كهربائي",
"organ": "أرغن",
"electronic_organ": "الأورغن الإلكتروني",
"hammond_organ": "أورغن هاموند",
"synthesizer": "مُركِّب صوتي",
"sampler": "عينة",
"harpsichord": "بيان القيثاري",
"percussion": "آلات الإيقاع",
"drum_kit": "طقم طبول",
"drum_machine": "آلة الطبول",
"drum": "طبل",
"snare_drum": "طبلة جانبية",
"rimshot": "طقطة",
"drum_roll": "قرع الطبول",
"bass_drum": "طبلة الباس",
"timpani": "الطبول",
"tabla": "طبلة",
"cymbal": "الصنج",
"hi_hat": "هاي-هات",
"wood_block": "كتلة خشبية",
"tambourine": "دف",
"maraca": "ماراكا",
"gong": "غونغ",
"tubular_bells": "أجراس أنبوبية",
"cattle": "ماشية",
"moo": "خوار",
"cowbell": "جرس البقر",
"pig": "خنزير",
"oink": "أوينك",
"goat": "معزة",
"bleat": "ثغاء",
"sheep": "غنم",
"fowl": "الدواجن",
"chicken": "دجاجة",
"cluck": "قرقرة",
"cock_a_doodle_doo": "كوكو-كو-كوووووو",
"turkey": "ديك رومى",
"gobble": "كركرة"
}
+5 -1
View File
@@ -18,5 +18,9 @@
"train": "قطار",
"boat": "زورق",
"bench": "مقعدة",
"bird": "طائر"
"bird": "طائر",
"mouse": "فأر",
"keyboard": "لوحة المفاتيح",
"goat": "معزة",
"sheep": "غنم"
}
+94 -1
View File
@@ -265,5 +265,98 @@
"stomach_rumble": "Къркорене на стомах",
"heartbeat": "Сърцебиене",
"scream": "Вик",
"snicker": "Хихикане"
"snicker": "Хихикане",
"chant": "Скандиране",
"synthetic_singing": "Синтетично Пеене",
"grunt": "Грухтене",
"wheeze": "Хриптене",
"gasp": "Издихание",
"snort": "Смъркане",
"heart_murmur": "Сърдечен Шум",
"cheering": "Радостни Викове",
"yip": "Джавкане",
"howl": "Вой",
"bow_wow": "Кучешки Вой",
"growling": "Ръмжене",
"whimper_dog": "Кучешко Скимтене",
"caterwaul": "Мяукане",
"clip_clop": "Копита",
"cattle": "Добитък",
"bleat": "Блеене",
"fowl": "Домашни Птици",
"honk": "Бибиткане",
"chirp": "Пиукане",
"squawk": "Кряскане/Грачене",
"patter": "Ромолене/Потупване",
"rattle": "Тракане",
"tapping": "Потупване",
"strum": "Звук от струни",
"zither": "Цитра",
"harpsichord": "Клавесин",
"snare_drum": "Малко барабанче",
"rimshot": "Римшот",
"bass_drum": "Голям барабан",
"hi_hat": "Фус",
"wood_block": "Парче дърво",
"electronic_dance_music": "Електронна денс музика",
"music_of_bollywood": "Музика от Боливут",
"traditional_music": "Традиционна Музика",
"soundtrack_music": "Саундтрак музика",
"lullaby": "Приспивна песен",
"video_game_music": "Музика от компютърна игра",
"christmas_music": "Коледна музика",
"dance_music": "Денс музика",
"wedding_music": "Сватбена музика",
"happy_music": "Радостна музика",
"sad_music": "Тъжна музика",
"tender_music": "Нежна музика",
"exciting_music": "Вълнуваща музика",
"angry_music": "Яростна музика",
"scary_music": "Страшна музика",
"wind": "Вятър",
"rustling_leaves": "Шумолящи листа",
"wind_noise": "Шум от вятър",
"rain_on_surface": "Дъжд на повърхност",
"crackle": "Пукане",
"emergency_vehicle": "Кола на спешна помощ",
"engine_knocking": "Чукане от двигател",
"cupboard_open_or_close": "Отваряне или затваряне на шкаф",
"sink": "Мивка",
"bathtub": "Вана",
"hair_dryer": "Сешоар",
"toilet_flush": "Пускане на вода в тоалетна",
"toothbrush": "Четка за зъби",
"electric_toothbrush": "Електрическа четка за зъби",
"vacuum_cleaner": "Прахосмукачка",
"zipper": "Цип",
"keys_jangling": "Дрънкане на ключове",
"coin": "Монета",
"scissors": "Ножица",
"electric_shaver": "Електрическа самобръсначка",
"shuffling_cards": "Разбъркване на карти",
"typing": "Пишене",
"typewriter": "Пишеща машина",
"computer_keyboard": "Клавиатура",
"writing": "Писане на ръка",
"alarm": "Аларма",
"telephone": "Телефон",
"telephone_bell_ringing": "Камбанен звук от телефон",
"ringtone": "Мелодия за звънене",
"telephone_dialing": "Набиране на телефон",
"dial_tone": "Набиране на цифра на телефон",
"busy_signal": "Сигнал заето",
"alarm_clock": "Алармен часовник",
"siren": "Сирена",
"civil_defense_siren": "Сирена на гражданска защита",
"buzzer": "Бъзър",
"smoke_detector": "Детектор за пушек",
"fire_alarm": "Пожарна аларма",
"whistle": "Свиркане",
"steam_whistle": "Парна свирка",
"mechanisms": "Механизми",
"clock": "Часовник",
"tick": "",
"tick-tock": "Тиктакане",
"gears": "Зъбни колела",
"sewing_machine": "Шиеща машина"
}
+6 -1
View File
@@ -19,5 +19,10 @@
"skateboard": "Скейтборд",
"door": "Врата",
"blender": "Блендер",
"person": "Човек"
"person": "Човек",
"sink": "Мивка",
"hair_dryer": "Сешоар",
"toothbrush": "Четка за зъби",
"scissors": "Ножица",
"clock": "Часовник"
}
+1 -1
View File
@@ -138,7 +138,7 @@
"plucked_string_instrument": "Instrument de corda pinçada",
"guitar": "Guitarra",
"electric_guitar": "Guitarra elèctrica",
"bass_guitar": "Baix",
"bass_guitar": "Guitarra baixa",
"acoustic_guitar": "Guitarra acústica",
"steel_guitar": "Guitarra steel",
"tapping": "Tapping",
+7 -2
View File
@@ -49,7 +49,9 @@
"gl": "Galego (Gallec)",
"id": "Bahasa Indonesia (Indonesi)",
"ur": "اردو (Urdú)",
"hr": "Hrvatski (croat)"
"hr": "Hrvatski (croat)",
"bs": "Bosanski (Bosni)",
"zhHant": "繁體中文 (Xinès Tradicional)"
},
"system": "Sistema",
"systemMetrics": "Mètriques del sistema",
@@ -322,5 +324,8 @@
"internalID": "L'ID intern que Frigate s'utilitza a la configuració i a la base de dades"
},
"no_items": "Sense elements",
"validation_errors": "Errors de validació"
"validation_errors": "Errors de validació",
"credentialField": {
"savedPlaceholder": "Desat — deixa en blanc per mantenir l'actual"
}
}
+4 -1
View File
@@ -68,7 +68,10 @@
},
"success": "El grup de càmeres ({{name}}) ha estat guardat.",
"icon": "Icona",
"label": "Grups de Càmeres"
"label": "Grups de Càmeres",
"showAll": "Mostra tots els grups de càmeres",
"showLess": "Mostra menys",
"editGroups": "Edita els grups de la càmera"
},
"debug": {
"options": {
+2 -1
View File
@@ -48,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "Error al enviar fotograma a Frigate+"
}
}
},
"cameraOff": "La càmera està apagada"
}
+10 -2
View File
@@ -33,7 +33,11 @@
},
"filters": {
"label": "Filtres d'àudio",
"description": "Paràmetres de filtre per-àudio-tipus, com ara llindars de confiança utilitzats per reduir falsos positius."
"description": "Paràmetres de filtre per-àudio-tipus, com ara llindars de confiança utilitzats per reduir falsos positius.",
"threshold": {
"label": "Confiança mínima de l'àudio",
"description": "Llindar mínim de confiança per a l'esdeveniment d'àudio a comptar."
}
},
"enabled_in_config": {
"label": "Estat d'àudio original",
@@ -682,7 +686,7 @@
},
"timestamp_style": {
"label": "Estil de la marca horària",
"description": "Opcions d'estilització per a marques de temps d'alimentació aplicades a enregistraments i instantànies.",
"description": "Opcions d'estilització per a marques de temps aplicades instantànies i la vista de depuració.",
"position": {
"label": "Posició de la marca horària",
"description": "Posició de la marca horària a la imatge (tl/tr/bl/br)."
@@ -862,6 +866,10 @@
"dashboard": {
"label": "Mostra a l'interfície d'usuari",
"description": "Estableix si aquesta càmera és visible a tot arreu a la interfície d'usuari de la Frigate. Desactivar això requerirà editar manualment la configuració per tornar a veure aquesta càmera a la interfície d'usuari."
},
"review": {
"label": "Mostra en la revisió",
"description": "Alterna si aquesta càmera és visible a la revisió (la pàgina de revisió i el seu filtre de càmera, la revisió de moviment i la vista de l'historial)."
}
},
"webui_url": {
+49 -6
View File
@@ -258,6 +258,41 @@
},
"raw_mask": {
"label": "Màscara en brut"
},
"filters_attribute": {
"label": "Filtres d'atribut",
"description": "Filtres aplicats als atributs detectats per reduir falsos positius (àrea, relació, confiança).",
"min_area": {
"label": "Àrea mínima de l'atribut",
"description": "Es requereix una àrea de caixa contenidora mínima (píxels o percentatge) per a aquest atribut. Pot ser píxels (int) o percentatge (float entre 0,000001 i 0.99)."
},
"max_area": {
"label": "Àrea màxima de l'atribut",
"description": "Es permet l'àrea màxima del contenidor (píxels o percentatge) per a aquest atribut. Pot ser píxels (int) o percentatge (float entre 0,000001 i 0.99)."
},
"min_ratio": {
"label": "Relació mínima d'aspecte",
"description": "Relació mínima d'amplada/alçada requerida per a la casella contenidora a qualificar."
},
"max_ratio": {
"label": "Relació màxima d'aspecte",
"description": "Es permet la relació màxima d'amplada/alçada per a la casella contenidora a qualificar."
},
"threshold": {
"label": "Llindar de confiança",
"description": "Es requereix un llindar de confiança mitjà per a la detecció perquè l'atribut es consideri un veritable positiu."
},
"min_score": {
"label": "Confiança mínima",
"description": "Es requereix una confiança mínima de detecció d'un sol fotograma per a associar aquest atribut amb el seu objecte pare."
},
"mask": {
"label": "Màscara de filtre",
"description": "Coordenades de polígon que defineixen on s'aplica aquest filtre dins del marc."
},
"raw_mask": {
"label": "Màscara en brut"
}
}
},
"record": {
@@ -489,11 +524,11 @@
},
"reindex": {
"label": "Reindexa en iniciar",
"description": "Activa un reíndex complet d'objectes rastrejats històrics a la base de dades d'incrustacions."
"description": "Activa un reindexat complet d'objectes rastrejats històrics a la base de dades d'incrustacions."
},
"model": {
"label": "Model de cerca semàntica o nom del proveïdor GenAI",
"description": "El model d'incrustació a utilitzar per a la cerca semàntica (per exemple 'jinav1'), o el nom d'un proveïdor de GenAI amb el rol d'incrustació."
"description": "El model de vectors a utilitzar per a la cerca semàntica (per exemple 'jinav1'), o el nom d'un proveïdor de GenAI amb el rol de vectors."
},
"model_size": {
"label": "Mida del model",
@@ -773,7 +808,7 @@
},
"model_size": {
"label": "Mida del model",
"description": "Mida del model a utilitzar per a incrustacions facials (petit/gran); més gran pot requerir GPU."
"description": "Mida del model a utilitzar per als vectors facials (petit/gran); més gran pot requerir GPU."
},
"unknown_score": {
"label": "Llindar de puntuació desconegut",
@@ -949,7 +984,7 @@
},
"default_role": {
"label": "Rol predeterminat",
"description": "Rol predeterminat assignat als usuaris intermediaris autenticats quan no s'aplica cap mapatge de rols (administrador o visor)."
"description": "Rol predeterminat assignat als usuaris intermediaris autenticats quan no s'aplica cap mapatge de rols."
},
"separator": {
"label": "Caràcter separador",
@@ -1987,7 +2022,11 @@
},
"filters": {
"label": "Filtres d'àudio",
"description": "Paràmetres de filtre per-àudio-tipus, com ara llindars de confiança utilitzats per reduir falsos positius."
"description": "Paràmetres de filtre per-àudio-tipus, com ara llindars de confiança utilitzats per reduir falsos positius.",
"threshold": {
"label": "Confiança mínima de l'àudio",
"description": "Llindar mínim de confiança per a l'esdeveniment d'àudio a comptar."
}
},
"enabled_in_config": {
"label": "Estat d'àudio original",
@@ -2207,7 +2246,7 @@
},
"match_distance": {
"label": "Distància de la coincidència",
"description": "Nombre de desajustos de caràcters permesos quan es comparen les plaques detectades amb les plaques conegudes."
"description": "Nombre de discrepàncies de caràcters permesos en comparar les plaques detectades amb les plaques conegudes."
},
"known_plates": {
"label": "Matricules conegudes",
@@ -2298,6 +2337,10 @@
"dashboard": {
"label": "Mostra a la interfície",
"description": "Estableix si aquesta càmera és visible a tot arreu a la interfície d'usuari de Frigate. Desactivar això requerirà editar manualment la configuració per tornar a veure aquesta càmera a la interfície d'usuari."
},
"review": {
"label": "Mostra en la revisió",
"description": "Alterna si aquesta càmera és visible a la revisió (la pàgina de revisió i el seu filtre de càmera, la revisió de moviment i la vista de l'historial)."
}
},
"profiles": {
@@ -28,5 +28,8 @@
"detectRequired": "Almenys un flux d'entrada ha de tenir assignat el rol «detecta».",
"hwaccelDetectOnly": "Només el flux d'entrada amb el rol detect pot definir arguments d'acceleració del maquinari."
}
},
"detect": {
"dimensionMustBeEven": "Ha de ser un nombre parell."
}
}
+6 -1
View File
@@ -121,5 +121,10 @@
"royal_mail": "Royal Mail",
"school_bus": "Bus escolar",
"skunk": "Mofeta",
"kangaroo": "Cangur"
"kangaroo": "Cangur",
"baby": "Nadó",
"baby_stroller": "Cotxet",
"rickshaw": "Ricksaw",
"Rodent": "Rosegador",
"rodent": "Rosegador"
}
+26
View File
@@ -42,5 +42,31 @@
"show_camera_status": "Quin és l'estat actual de les meves càmeres?",
"recap": "Què va passar mentre jo era fora?",
"watch_camera": "Vigila la porta d'entrada i fes-me saber si algú apareix"
},
"new_chat": "Xat nou",
"settings": {
"title": "Configuració del xat",
"show_stats": {
"title": "Mostra les estadístiques",
"desc": "Mostra la velocitat de generació i la mida del context per a les respostes del xat.",
"while_generating": "En generar",
"always": "Sempre"
},
"auto_scroll": {
"title": "Desplaçament automàtic",
"desc": "Segueix els missatges nous a mesura que arriben."
}
},
"stats": {
"context": "{{tokens}} tokens",
"tokens_per_second": "{{rate}} t/s"
},
"reasoning": {
"active": "Raonant…",
"show": "Mostra el raonament",
"hide": "Amaga el raonament"
},
"thinking": {
"toggle": "Commuta el pensament"
}
}
+4 -4
View File
@@ -2,10 +2,10 @@
"exploreIsUnavailable": {
"downloadingModels": {
"tips": {
"context": "Potser voldreu reindexar les incrustacions dels objectes seguits un cop s'hagin descarregat els models.",
"context": "Potser voldreu reindexar els vectors dels objectes seguits un cop s'hagin descarregat els models.",
"documentation": "Llegir la documentació"
},
"context": "Frigate està descarregant els models d'embeddings necessaris per a donar suport a la funció de cerca semàntica. Això pot trigar diversos minuts, depenent de la velocitat de la teva connexió de xarxa.",
"context": "El Frigate està baixant els models de vectors necessaris per a admetre la funció de Cerca Semàntica. Això pot trigar uns quants minuts depenent de la velocitat de la vostra connexió de xarxa.",
"setup": {
"visionModel": "Model de visió",
"visionModelFeatureExtractor": "Extractor de característiques del model de visió",
@@ -248,7 +248,7 @@
"dialog": {
"confirmDelete": {
"title": "Confirmar la supressió",
"desc": "Suprimir aquest objecte rastrejat elimina la instantània, qualsevol incrustació desada, i qualsevol entrada de detalls de seguiment associada. Les imatges gravades d'aquest objecte seguit en l'historial <em>NO</em> seràn eliminades.<br /><br />Estas segur que vols continuar?"
"desc": "En eliminar aquest objecte detectat, s'esborrarà la instantània, els vectors desats i qualsevol entrada associada als detalls de seguiment d'aquest objecte. El metratge enregistrat d'aquest objecte detectat a la vista de l'Historial <em>NO</em> s'esborrarà.<br /><br />Segur que voleu continuar?"
},
"toast": {
"error": "S'ha produït un error en suprimir aquest objecte rastrejat: {{errorMessage}}"
@@ -282,7 +282,7 @@
"faceOrLicense_plate": "{{attribute}} detectat per {{label}}",
"other": "{{label}} reconegut com a {{attribute}}"
},
"gone": "{{label}} esquerra",
"gone": "{{label}} ha sortit",
"heard": "{{label}} sentit",
"external": "{{label}} detectat",
"header": {
+5 -1
View File
@@ -14,7 +14,11 @@
"empty": "No hi ha intents recents de reconeixement de rostres",
"title": "Reconeixements recents",
"aria": "Selecciona els reconeixements recents",
"titleShort": "Recent"
"titleShort": "Recent",
"emptyNoLibrary": {
"title": "Puja una cara",
"description": "Heu d'afegir com a mínim una cara a la biblioteca perquè el reconeixement de la cara funcioni."
}
},
"description": {
"addFace": "Afegiu una col·lecció nova a la biblioteca de cares pujant la vostra primera imatge.",
+5 -2
View File
@@ -58,7 +58,9 @@
},
"camera": {
"enable": "Habilitar la càmera",
"disable": "Deshabilita la càmera"
"disable": "Deshabilita la càmera",
"turnOn": "Activa la càmera",
"turnOff": "Apaga la càmera"
},
"muteCameras": {
"enable": "Silencia totes les càmeres",
@@ -151,7 +153,8 @@
"autotracking": "Seguiment automàtic",
"objectDetection": "Detecció d'objectes",
"audioDetection": "Detecció d'àudio",
"transcription": "Transcripció d'audio"
"transcription": "Transcripció d'audio",
"camera": "Càmera"
},
"history": {
"label": "Mostrar gravacions històriques"
+10 -5
View File
@@ -26,7 +26,9 @@
"points_many": "{{count}} punts",
"points_other": "{{count}} punts",
"undo": "Desfés l'últim punt",
"reset": "Restableix el polígon"
"reset": "Restableix el polígon",
"drawMode": "Dibuxa",
"moveMode": "Moure"
},
"motionHeatmapLabel": "Mapa de calor del moviment",
"dialog": {
@@ -42,11 +44,11 @@
"settings": {
"title": "Configuració de la cerca",
"parallelMode": "Mode paral·lel",
"parallelModeDesc": "Escaneja múltiples segments d'enregistrament al mateix temps (més ràpid, però significativament més intensiu en CPU)",
"parallelModeDesc": "Escaneja múltiples intervals d'enregistrament al mateix temps (més ràpid; utilitza més recursos de descodificació)",
"threshold": "Llindar de la sensibilitat",
"thresholdDesc": "Els valors més baixos detecten canvis més petits (1-255)",
"minArea": "Àrea de canvi mínim",
"minAreaDesc": "Percentatge mínim de la regió d'interès que s'ha de canviar per considerar-se significatiu",
"minAreaDesc": "Mida mínima d'una sola regió en moviment, com a percentatge de la regió d'interès",
"frameSkip": "Omet el fotograma",
"frameSkipDesc": "Processa cada N fotograma. Establiu això a la velocitat de fotogrames de la càmera per processar un fotograma per segon (p. ex. 5 per a una càmera de 5 FPS, 30 per a una càmera de 30 FPS). Els valors més alts seran més ràpids, però poden perdre els esdeveniments de curt moviment.",
"maxResults": "Resultats màxims",
@@ -72,6 +74,9 @@
"framesDecoded": "Fotogrames descodificats",
"wallTime": "Temps de cerca",
"segmentErrors": "Errors del segment",
"seconds": "{{seconds}}s"
}
"seconds": "{{seconds}}s",
"scanSummary": "{{segments}} segments · {{time}}",
"minutesSeconds": "{{minutes}}m {{seconds}}s"
},
"scanning": "S'està analitzant {{time}}"
}
+1 -1
View File
@@ -55,5 +55,5 @@
"goToReplay": "Ves a la repetició"
}
},
"description": "Reprodueix els enregistraments de la càmera per a la depuració. La llista d'objectes mostra un resum retardat en el temps dels objectes detectats i la pestanya Missatges mostra un flux de missatges interns de la fragata a partir del metratge de reproducció."
"description": "Reprodueix els enregistraments de la càmera per a la depuració. La llista d'objectes mostra un resum retardat en el temps dels objectes detectats i la pestanya Missatges mostra un flux de missatges interns de frigate a partir del metratge de reproducció."
}
+333 -35
View File
@@ -15,7 +15,8 @@
"globalConfig": "Configuració global - Frigate",
"cameraConfig": "Configuració de la càmera - Frigate",
"maintenance": "Manteniment - Frigate",
"profiles": "Perfils - Frigate"
"profiles": "Perfils - Frigate",
"detectorsAndModel": "Detectors i model - Frigate"
},
"menu": {
"ui": "Interfície d'usuari",
@@ -28,7 +29,7 @@
"frigateplus": "Frigate+",
"enrichments": "Enriquiments",
"triggers": "Disparadors",
"cameraManagement": "Gestió",
"cameraManagement": "Gestió de la càmera",
"cameraReview": "Revisió",
"roles": "Rols",
"general": "General",
@@ -90,7 +91,8 @@
"regionGrid": "Quadrícula de la regió",
"uiSettings": "Paràmetres de la IU",
"profiles": "Perfils",
"systemGo2rtcStreams": "go2rtc streams"
"systemGo2rtcStreams": "go2rtc streams",
"systemDetectorsAndModel": "Detectors i model"
},
"dialog": {
"unsavedChanges": {
@@ -134,7 +136,7 @@
"clearAll": "Esborra tots els paràmetres de transmissió"
},
"recordingsViewer": {
"title": "Visor d'enregistraments",
"title": "Visualitzador d'enregistraments",
"defaultPlaybackRate": {
"label": "Velocitat de reproducció predeterminada",
"desc": "Velocitat de reproducció predeterminada per a la reproducció de gravacions."
@@ -424,7 +426,8 @@
"notificationUnavailable": {
"title": "Notificacions no disponibles",
"documentation": "Llegir la documentació",
"desc": "Les notificacions push web requereixen un context segur (<code>https://…</code>). Aquesta és una limitació del navegador. Accedeix a Frigate de manera segura per utilitzar les notificacions."
"desc": "Les notificacions push web requereixen un context segur (<code>https://…</code>). Aquesta és una limitació del navegador. Accedeix a Frigate de manera segura per utilitzar les notificacions.",
"descPwa": "A iOS, les notificacions push web només estàn disponibles quan Frigate està instalat a la pantalla principal. Obre el menú <strong>Compartir</strong> , selecciona <strong>Afegir a la pantalla</strong>, i obre Frigate des del nou icona per registrar les notificacions en aquest dispositiu."
},
"unsavedChanges": "Canvis de notificació no desats",
"globalSettings": {
@@ -526,7 +529,7 @@
},
"title": "Afinador de detecció de moviment",
"toast": {
"success": "Els ajustos de la detecció de moviment s'han desat."
"success": "S'han desat els paràmetres del moviment."
},
"unsavedChanges": "Canvis no desats en l'ajust de moviment {{camera}}"
},
@@ -724,7 +727,7 @@
"trainDate": "Data d'entrenament",
"title": "Informació del model",
"supportedDetectors": "Detectors compatibles",
"availableModels": "Models disponibles",
"availableModels": "Models Frigate+ disponibles",
"cameras": "Càmeres",
"plusModelType": {
"userModel": "Afinat",
@@ -733,7 +736,15 @@
"loadingAvailableModels": "Carregant models disponibles…",
"loading": "Carregant informació del model…",
"error": "No s'ha pogut carregar la informació del model",
"modelSelect": "Els models disponibles a Frigate+ es poden seleccionar aquí. Tingues en compte que només es poden triar els models compatibles amb la configuració actual del detector."
"modelSelect": "Els models disponibles a Frigate+ es poden seleccionar aquí. Tingues en compte que només es poden triar els models compatibles amb la configuració actual del detector.",
"noModelLoaded": "Actualment no s'ha carregat cap model Frigate+.",
"selectModel": "Selecciona un model",
"noModelsAvailable": "No hi ha models disponibles",
"filter": {
"ariaLabel": "Filtra els models per tipus",
"baseModels": "Models de base",
"fineTunedModels": "Models ajustats"
}
},
"apiKey": {
"plusLink": "Llegeix més sobre Frigate+",
@@ -755,29 +766,30 @@
"currentModel": "Model actual",
"otherModels": "Altres models",
"configuration": "Configuració"
}
},
"changeInDetectorsAndModel": "Canviar model"
},
"enrichments": {
"semanticSearch": {
"modelSize": {
"small": {
"title": "petit",
"desc": "Lopció <em>small</em> fa servir una versió quantitzada del model que consumeix menys RAM i sexecuta més ràpidament a la CPU, amb una diferència gairebé inapreciable en la qualitat de les incrustacions (embeddings)."
"desc": "Si s'utilitza <em>small</em>, s'empra una versió quantitzada del model que consumeix menys memòria RAM i s'executa més ràpidament a la CPU, amb una diferència inapreciable en la qualitat dels vectors."
},
"label": "Mida del model",
"large": {
"title": "gran",
"desc": "Lopció <em>large</em> fa servir el model complet de Jina i sexecutarà automàticament a la GPU si està disponible."
},
"desc": "La mida del model utilitzat per incrustacions de cerca semàntica."
"desc": "La mida del model utilitzat per als vectors de la cerca semàntica."
},
"reindexNow": {
"confirmButton": "Reindexar",
"success": "La reindexació ha començat amb èxit.",
"label": "Reindexar ara",
"confirmTitle": "Confirmar la reindexació",
"desc": "La reindexació regenerarà les incrustacions per a tots els objectes rastrejats. Aquest procés s'executa en segon pla i pot treure el màxim de la CPU i prendre una quantitat de temps raonable depenent del nombre d'objectes rastrejats que tingueu.",
"confirmDesc": "Estàs segur que vols reindexar totes les incrustacions (embeddings) dels objectes seguits? Aquest procés sexecuta en segon pla, però pot arribar a saturar la CPU i trigar bastant temps. Pots seguir-ne el progrés a la pàgina dExplora.",
"desc": "La reindexació tornarà a generar els vectors de tots els objectes detectats. Aquest procés s'executa en segon pla, pot posar la CPU al màxim i trigar una bona estona segons el nombre d'objectes detectats que tingueu.",
"confirmDesc": "Segur que voleu tornar a indexar els vectors de tots els objectes detectats? Aquest procés s'executa en segon pla, però pot posar la CPU al màxim i trigar una bona estona. En podeu veure el progrés a la pàgina Explora.",
"alreadyInProgress": "La reindexació ja està en curs.",
"error": "Error en iniciar la reindexació: {{errorMessage}}"
},
@@ -1048,7 +1060,7 @@
"brands": {
"reolink-rtsp": "No es recomana Reolink RST. Es recomana habilitar HTTP a la configuració de la càmera i reiniciar l'assistent de la càmera."
},
"customUrlRtspRequired": "Els URL personalitzats han de començar amb \"rtsp://\". Es requereix configuració manual per a fluxos de càmera no RTSP."
"customUrlRtspRequired": "Els URL personalitzats han de començar amb \"rtsp://\" o \"rtsps://\". Es requereix configuració manual per a fluxos de càmera no RTSP."
},
"selectBrand": "Seleccioneu la marca de la càmera per a la plantilla d'URL",
"customUrl": "URL de flux personalitzat",
@@ -1292,19 +1304,45 @@
"selectCamera": "Selecciona una càmera",
"backToSettings": "Torna a la configuració de la càmera",
"streams": {
"title": "Habilita / Inhabilita les càmeres",
"title": "Estat i detalls de la càmera",
"desc": "Inhabilita temporalment una càmera fins que es reiniciï la fragata. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles.<br /> <em>Nota: això no desactiva les retransmissions de go2rtc.</em>",
"enableLabel": "Càmeres habilitades",
"enableDesc": "Inhabilita temporalment una càmera habilitada fins que es reiniciï Frigate. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles.<br /> <em>Nota: això no desactiva les retransmissions de go2rtc.</em>",
"enableDesc": "Inhabilita temporalment una càmera habilitada fins que es reiniciï Frigate. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles.<br /> <em>Nota: això no inhabilita els restreams go2rtc.</em><br /><br />Drag el handle per reordenar les càmeres tal com apareixen a la interfície d'usuari. L'ordre de les càmeres habilitades es reflectirà en tota la interfície d'usuari, incloent el tauler en viu i els desplegables de selecció de càmeres.",
"disableLabel": "Càmeres inhabilitades",
"disableDesc": "Habilita una càmera que actualment no és visible a la interfície d'usuari i està desactivada a la configuració. Es requereix un reinici de Frigate després d'activar-la.",
"enableSuccess": "{{cameraName}} activat a la configuració. Reinicia Frigate per aplicar els canvis.",
"enableSuccess": "{{cameraName}} activat. Reinicia Frigate a aplicar.",
"friendlyName": {
"edit": "Edita el nom de la pantalla de la càmera",
"title": "Edita el nom de la pantalla",
"description": "Estableix el nom amigable que es mostra per a aquesta càmera a tota la interfície d'usuari de la Fragata. Deixeu-ho en blanc per utilitzar l'ID de la càmera.",
"rename": "Canvia el nom"
}
},
"reorderHandle": "Arrossega per reordenar",
"saving": "S'està desant…",
"saved": "Desat",
"details": {
"edit": "Edita els detalls de la càmera",
"title": "Edita els detalls de la càmera",
"description": "Actualitza el nom de visualització, l'URL extern i la visibilitat utilitzada per a aquesta càmera a tota la interfície d'usuari de la Fragata.",
"friendlyNameLabel": "Nom a mostrar",
"friendlyNameHelp": "Nom amistós que es mostra per a aquesta càmera a tota la interfície d'usuari de Frigate. Deixeu-ho en blanc per utilitzar l'ID de la càmera.",
"webuiUrlLabel": "URL de la interfície web de la càmera",
"webuiUrlHelp": "URL per a visitar la interfície d'usuari web de la càmera directament des de la vista de depuració. Deixeu-ho en blanc per desactivar l'enllaç.",
"webuiUrlInvalid": "Ha de ser un URL vàlid (p. ex., https://example.com).",
"dashboardLabel": "Mostra al tauler en directe",
"dashboardHelp": "Mostra aquesta càmera al Tauler en viu.",
"reviewLabel": "Mostra a la ressenya",
"reviewHelp": "Mostra aquesta càmera a Revisió, incloent el filtre de càmera, la revisió de moviment i la vista de l'historial."
},
"label": "Estat de la càmera",
"description": "Estableix l'estat operatiu de cada càmera.<br /><br /><strong>A</strong>: els fluxos es processen normalment.<br /><strong>Off</strong>: pausa temporalment el processament. No persisteix a través de reinicis de Frigate.<br /><strong>Inhabilitat</strong>: deixa de processar i desa el canvi a la configuració. Es requereix un reinici per a tornar a habilitar una càmera inhabilitada.<br /><br /><em>Nota: La inhabilitació no afecta els restreams de go2rtc.</em><br /><br />Arrossegueu l'ansa per a reordenar les càmeres actives a mesura que apareguin a tota la interfície d'usuari, inclosos els desplegables de selecció de quadres en viu i de càmera.",
"disabledSubheading": "Desactivat en la configuració",
"status": {
"on": "Engegat",
"off": "Apagat",
"disabled": "Desactivat"
},
"disableSuccess": "{{cameraName}} desactivat i desat a la configuració."
},
"cameraConfig": {
"add": "Afegeix una càmera",
@@ -1350,18 +1388,109 @@
"profiles": {
"title": "Sobreescriu la càmera de perfil",
"selectLabel": "Seleccioneu el perfil",
"description": "Configura quines càmeres estan habilitades o desactivades quan s'activa un perfil. Les càmeres establertes a «Inherit» mantenen el seu estat base habilitat.",
"description": "Configura quines càmeres estan activades o desactivades quan s'activa un perfil. Les càmeres establertes a «herit» mantenen el seu estat per defecte.",
"inherit": "Hereta",
"enabled": "Habilitat",
"disabled": "Desactivat"
"disabled": "Desactivat",
"on": "Engegat",
"off": "Apagat"
},
"cameraType": {
"title": "Tipus de càmera",
"label": "Tipus de càmera",
"description": "Estableix el tipus per a cada càmera. Les càmeres LPR dedicades són càmeres d'un sol ús amb un potent zoom òptic per capturar matrícules en vehicles distants. La majoria de les càmeres haurien d'utilitzar el tipus de càmera normal llevat que la càmera sigui específicament per a LPR i tingui una vista molt centrada en les matrícules.",
"dedicatedLpr": "LPR dedicat",
"saveSuccess": "Tipus de càmera actualitzat per {{cameraName}}. Reinicia la fragata per aplicar els canvis.",
"saveSuccess": "Tipus de càmera actualitzat per {{cameraName}}. Reinicia Frigate per aplicar els canvis.",
"normal": "Normal"
},
"description": "Afegiu, editeu i suprimiu les càmeres, controleu l'estat de cada càmera, i configureu les superposicions per perfil i tipus de càmera. Per a configurar fluxos, detecció, moviment i altres paràmetres específics de la càmera, trieu la secció específica a Configuració de la càmera.",
"clone": {
"sectionTitle": "Clona la configuració",
"sectionDescription": "Copia la configuració d'una càmera a una altra càmera o una de nova.",
"button": "Clona la configuració",
"title": "Clona la configuració de la càmera",
"description": "Copia la configuració d'una càmera a una o més càmeres o a una càmera nova. La identitat (nom, nom amigable, URL de la interfície d'usuari web, ordre de visualització) no es copia mai.",
"source": {
"label": "Càmera d'origen",
"placeholder": "Seleccioneu una càmera d'origen",
"required": "Seleccioneu una càmera d'origen"
},
"target": {
"legend": "Objectiu",
"newRadio": "Càmara nova",
"newNameLabel": "Nom de la càmera",
"newNamePlaceholder": "p. ex., porta enrere orporta o porta posterior",
"newNameInvalid": "Es requereix el nom de la càmera",
"newNameCollision": "Ja existeix una càmera amb aquest nom",
"newStreamsForced": "Els fluxos sempre es copien per a una càmera nova.",
"existingCamerasRadio": "Càmeres existents",
"allCameras": "Totes les càmeres",
"existingPlaceholder": "Selecciona almenys una càmera",
"existingDisabled": "No hi ha cap altra càmera a la qual copiar",
"newNameRequired": "Es requereix el nom de la càmera"
},
"categories": {
"legend": "Configuració per clonar",
"description": "Trieu quina configuració voleu copiar de la càmera d'origen.",
"selectAll": "Selecciona-ho tot",
"selectNone": "No en seleccioneu cap",
"resetDefaults": "Restableix als valors predeterminats",
"general": "General",
"spatial": "Paràmetres espacials",
"streams": "Fluxos",
"spatialWarningTitle": "La resolució no coincideix",
"spatialWarning": "La càmera d'origen {{srcCamera}} detecta la resolució ({{srcWidth}}.{{srcHeight}}) difereix de: {{cameras}}. És possible que els polígons no s'alineïn en aquestes càmeres. Aquests valors predeterminats estan desactivats; habiliteu-ho per a copiar tal qual.",
"restartHint": "Reinicia requerit",
"items": {
"record": "Enregistrament",
"snapshots": "Instantànies",
"review": "Revisió",
"motion": "Detecció de moviment",
"objects": "Objectes",
"audio": "Detecció d'àudio",
"audio_transcription": "Transcripció d'àudio",
"notifications": "Notificacions",
"birdseye": "Birdseye",
"timestamp_style": "Estil de la marca horària",
"lpr": "Reconeixement de la matrícula",
"face_recognition": "Reconeixement de cares",
"semantic_search": "Cerca semàntica",
"genai": "IA generativa",
"type": "Tipus de càmera (LPR normal / dedicat)",
"profiles": "Perfils",
"detect": "Detecta les dimensions",
"zones": "Zones",
"motion_mask": "Màscares de moviment",
"object_masks": "Màscares d'objecte",
"ffmpeg_live": "URL i rols de flux",
"mqtt": "MQTT",
"onvif": "ONVIF"
}
},
"footer": {
"changeCount_one": "{{count}} s'aplicarà el canvi",
"changeCount_many": "{{count}} canvis s'aplicaran",
"changeCount_other": "{{count}} canvis s'aplicaran",
"restartNeeded": "Es requerirà reiniciar per a alguns canvis.",
"liveOnly": "Tots els canvis s'aplicaran en viu sense reiniciar.",
"submit": "Clona",
"submitting": "S'està clonant…"
},
"toast": {
"success": "Configuració copiada a {{cameraName}}",
"successWithRestart": "Configuració copiada a {{cameraName}}. Reinicia Frigate per aplicar tots els canvis.",
"successMulti_one": "Configuració copiada a la càmera {{count}}",
"successMulti_many": "Configuració copiada a {{count}} càmeres",
"successMulti_other": "Configuració copiada a {{count}} càmeres",
"successMultiWithRestart_one": "Configuració copiada a la càmera {{count}}. Reinicia Frigate per aplicar tots els canvis.",
"successMultiWithRestart_many": "Configuració copiada a {{count}} càmeres. Reinicia Frigate per aplicar tots els canvis.",
"successMultiWithRestart_other": "Configuració copiada a {{count}} càmeres. Reinicia la fragata per aplicar tots els canvis.",
"partialFailure": "{{successCount}} seccions aplicades; «{{failedSection}}» ha fallat: {{errorMessage}}",
"partialFailureMulti": "S'ha copiat a {{successCount}} càmera(es); ha fallat {{failed}}: {{errorMessage}}",
"newCameraPartialFailure": "S'ha creat la càmera {{cameraName}} però no s'han pogut copiar alguns paràmetres: {{errorMessage}}",
"sourceMissing": "La càmera d'origen ja no existeix",
"submitError": "No s'ha pogut clonar la càmera: {{errorMessage}}"
}
}
},
"cameraReview": {
@@ -1484,7 +1613,7 @@
"desc": "La quadrícula de regions és una optimització que aprèn on solen aparèixer objectes de diferents mides en el camp de visió de cada càmera. Frigate utilitza aquestes dades per detectar regions de mida eficient. La quadrícula es construeix automàticament amb el temps a partir de dades d'objectes rastrejats.",
"clear": "Neteja la quadrícula de la regió",
"clearConfirmTitle": "Neteja la quadrícula de la regió",
"clearConfirmDesc": "No es recomana netejar la quadrícula de la regió tret que hagi canviat recentment la mida del model del detector o hagi canviat la posició física de la càmera i tingui problemes de seguiment d'objectes. La quadrícula es reconstruirà automàticament amb el temps a mesura que els objectes siguin rastrejats. Es requereix un reinici de la fragata perquè els canvis tinguin efecte.",
"clearConfirmDesc": "No es recomana netejar la quadrícula de la regió tret que hagi canviat recentment la mida del model del detector o hagi canviat la posició física de la càmera i tingui problemes de seguiment d'objectes. La quadrícula es reconstruirà automàticament amb el temps a mesura que els objectes siguin rastrejats. Es requereix un reinici de Frigate perquè els canvis tinguin efecte.",
"clearSuccess": "La quadrícula de la regió s'ha netejat correctament",
"clearError": "Ha fallat en netejar la graella de la regió",
"restartRequired": "Cal reiniciar per a que els canvis de la quadrícula de la regió tinguin efecte"
@@ -1659,9 +1788,11 @@
"searchPlaceholder": "Cerca...",
"genaiRoles": {
"options": {
"embeddings": "Incrustació",
"embeddings": "Vectors",
"vision": "Visió",
"tools": "Eines"
"tools": "Eines",
"descriptions": "Descripcions",
"chat": "Xat"
}
},
"semanticSearchModel": {
@@ -1676,13 +1807,43 @@
},
"addCustomLabel": "Afegeix una etiqueta personalitzada...",
"genaiModel": {
"placeholder": "Selecciona el model…",
"search": "Cerca models…",
"noModels": "No hi ha models disponibles"
"placeholder": "Seleccioneu o introduïu un model…",
"search": "Cerca o introdueix un model…",
"noModels": "No hi ha models disponibles",
"available": "Models disponibles",
"useCustom": "Utilitza \"{{value}}\"",
"refresh": "Actualitza els models",
"probeFailed": "No s'han pogut investigar els models",
"fetchedModels": "S'ha obtingut correctament la llista de models"
},
"knownPlates": {
"namePlaceholder": "per exemple. Cotxe de la parella",
"platePlaceholder": "Matricula o regex"
},
"semanticSearchModelSize": {
"notApplicable": "No aplicable als proveïdors de GenAI"
},
"liveStreams": {
"streamNameLabel": "Nom del flux",
"streamNamePlaceholder": "p. ex., corrent HD principal",
"go2rtcStreamLabel": "flux go2rtc",
"go2rtcStreamPlaceholder": "Selecciona un flux go2rtc",
"go2rtcStreamSearch": "Cerca o introdueix un nom de flux…",
"noGo2rtcStreams": "No s'ha configurat cap flux go2rtc",
"availableStreams": "Fluxos disponibles",
"useCustom": "Utilitza \"{{value}}\"",
"addStream": "Afegeix un flux"
},
"ptzPresets": {
"placeholder": "Selecciona o entra una configuració...",
"search": "Busca o entra una configuració...",
"noPresets": "No hi ha configuracions disponibles",
"available": "Parámetres de Cámera",
"useCustom": "Usa \"{{value}}\""
},
"defaultRole": {
"admin": "Administrar",
"viewer": "Visor"
}
},
"globalConfig": {
@@ -1718,7 +1879,10 @@
"saveAllPartial_many": "{{successCount}} de {{totalCount}} seccions desades. {{failCount}} ha fallat.",
"saveAllPartial_other": "{{successCount}} de {{totalCount}} seccions desades. {{failCount}} ha fallat.",
"saveAllFailure": "Ha fallat en desar totes les seccions.",
"applied": "La configuració s'ha aplicat correctament"
"applied": "La configuració s'ha aplicat correctament",
"saveAllSuccessRestartRequired_one": "S'ha desat la secció {{count}} correctament. Reinicia Frigate per aplicar els canvis.",
"saveAllSuccessRestartRequired_many": "Totes les {{count}} seccions s'han desat correctament. Reinicia Frigate per aplicar els canvis.",
"saveAllSuccessRestartRequired_other": "Totes les {{count}} seccions s'han desat correctament. Reinicia Frigate per aplicar els canvis."
},
"unsavedChanges": "Teniu canvis sense desar",
"confirmReset": "Confirma el restabliment",
@@ -1743,7 +1907,15 @@
"othersField_many": "{{count}} altres",
"othersField_other": "{{count}} altres",
"profilePrefix": "Perfil {{profile}}: {{fields}}"
}
},
"overriddenGlobalHeading_one": "Aquesta càmera substitueix el camp {{count}} de la configuració global:",
"overriddenGlobalHeading_many": "Aquesta càmera anul·la {{count}} camps de la configuració global:",
"overriddenGlobalHeading_other": "Aquesta càmera anul·la {{count}} camps de la configuració global:",
"overriddenGlobalNoDeltas": "Aquesta càmera anul·la la configuració global, però no hi ha valors de camp diferents.",
"overriddenBaseConfigHeading_one": "El perfil {{profile}} substitueix el camp {{count}} de la configuració base:",
"overriddenBaseConfigHeading_many": "El perfil {{profile}} substitueix {{count}} camps de la configuració base:",
"overriddenBaseConfigHeading_other": "El perfil {{profile}} substitueix {{count}} camps de la configuració base:",
"overriddenBaseConfigNoDeltas": "El perfil {{profile}} substitueix aquesta secció, però no hi ha valors de camp diferents de la configuració base."
},
"profiles": {
"title": "Perfils",
@@ -1827,8 +1999,18 @@
"audioMp3": "Transcodifica a MP3",
"audioExclude": "Exclou",
"hardwareNone": "Sense acceleració de hardware",
"hardwareAuto": "Acceleració de hardware automàtica"
}
"hardwareAuto": "Automàtic (recomanat)",
"addVideoCodec": "Afegeix un còdec de vídeo",
"addAudioCodec": "Afegeix un còdec d'àudio",
"removeCodec": "Elimina el còdec",
"hardwareVaapi": "VAAPI",
"hardwareCuda": "CUDA",
"hardwareV4l2m2m": "V4L2 M2M",
"hardwareDxva2": "DXVA2",
"hardwareVideotoolbox": "VideoToolbox"
},
"streamNumber": "Flux {{index}}",
"sourceNumber": "Font {{index}}"
},
"timestampPosition": {
"tl": "A dalt a l'esquerra",
@@ -1838,14 +2020,21 @@
},
"onvif": {
"profileAuto": "Automàtic",
"profileLoading": "S'estan carregant perfils..."
"profileLoading": "S'estan carregant perfils...",
"autotracking": {
"zooming": {
"disabled": "Desactivat",
"absolute": "Absolut",
"relative": "Relatiu"
}
}
},
"configMessages": {
"review": {
"recordDisabled": "L'enregistrament està desactivat, els elements de revisió no es generaran.",
"detectDisabled": "La detecció d'objectes està desactivada. Els elements de revisió requereixen objectes detectats per categoritzar alertes i deteccions.",
"allNonAlertDetections": "Totes les activitats no alertes s'inclouran com a deteccions.",
"genaiImageSourceRecordingsRecordDisabled": "La font d'imatges està configurada com a 'enregistraments', però l'enregistrament està desactivat. La fragata tornarà a la vista prèvia de les imatges."
"genaiImageSourceRecordingsRecordDisabled": "La font d'imatges està configurada com a 'enregistraments', però l'enregistrament està desactivat. Frigate tornarà a la vista prèvia de les imatges."
},
"audio": {
"noAudioRole": "Cap flux té definit el rol d'àudio. Heu d'habilitar el rol d'àudio per a la detecció d'àudio perquè funcioni."
@@ -1855,7 +2044,13 @@
},
"detect": {
"fpsGreaterThanFive": "No es recomana establir el detect FPS superior a 5. Els valors més alts poden causar problemes de rendiment i no proporcionaran cap benefici.",
"disabled": "La detecció d'objectes està desactivada. Les instantànies, articles de revisió i enriquiments com el reconeixement de rostres, el reconeixement de matrícules i la IA Generativa no funcionaran."
"disabled": "La detecció d'objectes està desactivada. Les instantànies, articles de revisió i enriquiments com el reconeixement de rostres, el reconeixement de matrícules i la IA Generativa no funcionaran.",
"resolutionShouldBeMultipleOfFour": "Per obtenir els millors resultats, detectar l'amplada i l'alçada han de ser múltiples de 4. Altres valors parells poden produir artefactes visuals o una lleugera distorsió en el flux de detecció.",
"aspectRatioMismatch": "L'amplada i alçada que heu introduït no coincideixen amb la relació d'aspecte de la resolució de detecció actual. Això pot produir una imatge estirada o distorsionada.",
"maxFramesSet": "La configuració dels fotogrames màxims anul·la el comportament predeterminat i desactiva el seguiment d'objectes estacionaris. Hi ha molt poques situacions en què això sigui necessari, utilitzeu-lo amb precaució.",
"squareResolution": "Una resolució de detecció quadrada és inusual. L'amplada i l'alçada de la detecció han de coincidir amb la relació d'aspecte de la càmera (per exemple, 16:9), no amb les dimensions del model de detecció d'objectes. Una relació d'aspecte no coincident pot estirar la imatge i reduir la precisió de detecció.",
"resolutionHigh": "Aquesta resolució de detecció és més alta del recomanat i pot causar un ús més elevat dels recursos sense millorar la precisió de detecció. Es recomana una resolució de detecció a o per sota de 1080p per a la majoria de les càmeres.",
"globalResolutionMultipleCameras": "S'estableix una resolució de detecció global mentre es configuren diverses càmeres. Tret que totes les càmeres comparteixin la mateixa resolució i relació d'aspecte, l'amplada i l'alçada de la detecció s'haurien de definir per càmera perquè coincideixi amb la relació d'aspecte nativa de cada càmera."
},
"faceRecognition": {
"globalDisabled": "L'enriquiment del reconeixement facial s'ha d'habilitar perquè les funcions de reconeixement facial funcionin en aquesta càmera.",
@@ -1884,7 +2079,110 @@
"genaiNoDescriptionsProvider": "Heu de configurar un proveïdor de GenAI amb el rol 'descripcions' per a les descripcions que es generaran."
},
"semanticSearch": {
"jinav2SmallModelSize": "La mida 'petita' amb el model Jina V2 té un alt cost de RAM i d'inferència. Es recomana el model 'gran' amb una GPU discreta."
"jinav2SmallModelSize": "La mida 'petita' amb el model Jina V2 té un alt cost de RAM i d'inferència. Es recomana el model 'gran' amb una GPU discreta.",
"modelSizeIgnoredForProvider": "La mida del model només s'aplica als models de Jina incorporats. Aquest valor s'ignorarà quan s'utilitzi un proveïdor d'incrustació GenAI."
},
"onvif": {
"autotrackingNoZones": "Autotraquejar requereix al menys una zona. Defineix una zona per aquesta cámera a Mascares/Zones, després usa'l com a requerit a la part inferior."
}
},
"modelSize": {
"large": "Gran",
"small": "Petit"
},
"birdseye": {
"trackingMode": {
"objects": "Objectes",
"motion": "Moviment",
"continuous": "Continu"
},
"cameraOrder": {
"label": "Ordre de la càmera",
"description": "Arrossega les càmeres per establir el seu ordre en la disposició Birdseye.",
"reorderHandle": "Arrossega per reordenar",
"saving": "S'està desant…",
"saved": "Desat"
}
},
"snapshot": {
"retainMode": {
"all": "Tots",
"motion": "Moviment",
"active_objects": "Objectes Actius"
}
},
"ui": {
"timeFormat": {
"browser": "Visor",
"12hour": "12 hores",
"24hour": "24 hores"
},
"TimeOrDateStyle": {
"full": "Complet",
"long": "Llarg",
"medium": "Mitjà",
"short": "Curt"
},
"unitSystem": {
"metric": "Métric",
"imperial": "Imperial"
}
},
"review": {
"imageSource": {
"recordings": "Gravacions",
"previews": "Previsualitzacions"
}
},
"logger": {
"logLevel": {
"debug": "Depurar",
"info": "Informació",
"warning": "Avís",
"error": "Error",
"critical": "Crític"
}
},
"retainMode": {
"all": "Tots",
"motion": "Moviment",
"active_objects": "Objectes actius"
},
"previewQuality": {
"very_high": "Molt alta",
"high": "Alta",
"medium": "Mitja",
"low": "Baix",
"very_low": "Molt baix"
},
"detectorsAndModel": {
"restartRequired": "Reinici requerit (canvi en detector o model)",
"title": "Detectors i model",
"description": "Configuri el detector final que corre la detecció d'objectes i el model que usa. Els canvis es gravaràn junts i així el detector i el model estan sincronitzats.",
"cardTitles": {
"detector": "Detector Hardware",
"model": "Model de detecció"
},
"tabs": {
"plus": "Frigate+",
"custom": "Model personalitzat"
},
"mismatch": {
"warning": "El model actual de Frigate+ \"{{model}}\" requereix el detector {{required}}. Selecciona un model compatible a baix o canvía e model personalitzat abans de gravar."
},
"plusModel": {
"requiresDetector": "Requereix: {{detector}}",
"noModelSelected": "Selecciona un model Frigate+"
},
"toast": {
"saveSuccess": "Configuració de detectors i model guardats. Reinicia Frigate per aplicar els canvis.",
"saveError": "Fallo en gravar la configuració de detector i model"
},
"unsavedChanges": "Canvis de detector i model no gravats"
},
"menuDot": {
"overrideGlobal": "Aquesta secció substitueix la configuració global",
"overrideProfile": "Aquesta secció està substituïda pel perfil {{profile}}",
"unsaved": "Aquesta secció té canvis sense desar"
}
}
+10 -10
View File
@@ -66,10 +66,10 @@
},
"general": {
"detector": {
"memoryUsage": "Ús de memòria del detector",
"memoryUsage": "Ús de la memòria del detector",
"title": "Detectors",
"inferenceSpeed": "Velocitat d'inferència del detector",
"cpuUsage": "Ús de CPU del detector",
"cpuUsage": "Ús de la CPU del detector",
"temperature": "Temperatura del detector",
"cpuUsageInformation": "CPU usada en la preparació d'entrades i sortides desde/cap als models de detecció. Aquest valor no mesura l'utilització d'inferència, encara que usis una GPU o accelerador."
},
@@ -118,11 +118,11 @@
"otherProcesses": {
"title": "Altres processos",
"processMemoryUsage": "Ús de memòria de procés",
"processCpuUsage": "Ús de la CPU del procés",
"processCpuUsage": "Ús de la CPU per procés",
"series": {
"recording": "gravant",
"review_segment": "segment de revisió",
"embeddings": "incrustacions",
"embeddings": "Vectors",
"audio_detector": "detector d'àudio",
"go2rtc": "go2rtc"
}
@@ -220,7 +220,7 @@
},
"lastRefreshed": "Darrera actualització: ",
"stats": {
"reindexingEmbeddings": "Reindexant incrustacions ({{processed}}% completat)",
"reindexingEmbeddings": "Reindexant vectors ({{processed}}% completat)",
"healthy": "El sistema és saludable",
"cameraIsOffline": "{{camera}} està fora de línia",
"ffmpegHighCpuUsage": "{{camera}} te un ús elevat de CPU per FFmpeg ({{ffmpegAvg}}%)",
@@ -234,14 +234,14 @@
"title": "Enriquiments",
"embeddings": {
"face_recognition_speed": "Velocitat de reconeixement facial",
"image_embedding": "Incrustació d'imatges",
"text_embedding": "Incrustació de text",
"image_embedding": "Vectors d'imatges",
"text_embedding": "Vectors de text",
"face_recognition": "Reconeixement de rostres",
"plate_recognition": "Reconeixemnt de matrícules",
"image_embedding_speed": "Velocitat d'ncrustació d'imatges",
"face_embedding_speed": "Velocitat d'incrustació de rostres",
"image_embedding_speed": "Velocitat de generació de vectors",
"face_embedding_speed": "Velocitat de generació de vectors facials",
"plate_recognition_speed": "Velocitat de reconeixement de matrícules",
"text_embedding_speed": "Velocitat d'incrustació de text",
"text_embedding_speed": "Velocitat de generació de vectors de text",
"yolov9_plate_detection": "Detecció de matrícules YOLOv9",
"yolov9_plate_detection_speed": "Velocitat de detecció de matrícules YOLOv9",
"review_description": "Descripció de la revisió",
+9 -1
View File
@@ -116,7 +116,9 @@
"error": "Sledovaný objekt se nepodařilo smazat: {{errorMessage}}",
"success": "Sledovaný objekt úspěšně smazán."
}
}
},
"previousTrackedObject": "Předchozí sledovaný objekt",
"nextTrackedObject": "Následující sledovaný objekt"
},
"objectLifecycle": {
"count": "{{first}} z {{second}}",
@@ -202,6 +204,12 @@
"audioTranscription": {
"label": "Přepsat",
"aria": "Požádat o přepis zvukového záznamu"
},
"showObjectDetails": {
"label": "Zobrazit trasu objektu"
},
"hideObjectDetails": {
"label": "Skrýt trasu objektu"
}
},
"dialog": {
+7 -2
View File
@@ -192,7 +192,9 @@
"bg": "Български (bulgarisch)",
"gl": "Galego (Galicisch)",
"id": "Bahasa Indonesia (Indonesisch)",
"hr": "Hrvatski (Kroatisch)"
"hr": "Hrvatski (Kroatisch)",
"bs": "Bosnisch",
"zhHant": "Traditional Chinese"
},
"appearance": "Erscheinung",
"theme": {
@@ -325,5 +327,8 @@
"separatorWithSpace": ", "
},
"no_items": "Keine Artikel",
"validation_errors": "Validierungsfehler"
"validation_errors": "Validierungsfehler",
"credentialField": {
"savedPlaceholder": "Gespeichert leer lassen, um den aktuellen Stand beizubehalten"
}
}
+2 -1
View File
@@ -48,5 +48,6 @@
"submittedFrigatePlus": "Bild erfolgreich an Frigate+ gesendet"
}
},
"noPreviewFoundFor": "Keine Vorschau für {{cameraName}} gefunden"
"noPreviewFoundFor": "Keine Vorschau für {{cameraName}} gefunden",
"cameraOff": "Kamera ist ausgeschaltet"
}
+7 -3
View File
@@ -9,7 +9,7 @@
"description": "Aktiviert"
},
"audio": {
"label": "Audioerkennung",
"label": "Audioereignisse",
"description": "Einstellungen für audiobasierte Ereigniserkennung für diese Kamera.",
"enabled": {
"label": "Aktivieren der Audioerkennung",
@@ -25,7 +25,11 @@
},
"filters": {
"label": "Audiofilter",
"description": "Filtereinstellungen pro Audiotyp, wie z. B. Konfidenzschwellenwerte, die zur Reduzierung von Fehlalarmen verwendet werden."
"description": "Filtereinstellungen pro Audiotyp, wie z. B. Konfidenzschwellenwerte, die zur Reduzierung von Fehlalarmen verwendet werden.",
"threshold": {
"label": "Mindestvertrauensgrad für Audio",
"description": "Mindestschwellenwert für die Zuverlässigkeit, damit das Audioereignis gezählt wird."
}
},
"max_not_heard": {
"label": "Ende Timeout",
@@ -822,7 +826,7 @@
},
"timestamp_style": {
"label": "Format für Zeitstempel",
"description": "Gestaltungsmöglichkeiten für Zeitstempel im Feed, die auf Aufzeichnungen und Momentaufnahmen angewendet werden.",
"description": "Gestaltungsoptionen für Zeitstempel, die auf Momentaufnahmen und die Debug-Ansicht angewendet werden.",
"position": {
"label": "Position des Zeitstempels",
"description": "Position des Zeitstempels auf dem Bild (tl/tr/bl/br)."
+42 -3
View File
@@ -8,7 +8,7 @@
"description": "Wenn aktiviert, startet Frigate im abgesicherten Modus mit reduzierten Features für die Fehlersuche."
},
"audio": {
"label": "Audioerkennung",
"label": "Audioereignisse",
"enabled": {
"label": "Aktivieren der Audioerkennung",
"description": "Aktivieren oder deaktivieren Sie die Erkennung von Audioereignissen für alle Kameras; diese Einstellung kann für jede Kamera individuell überschrieben werden."
@@ -23,7 +23,11 @@
},
"filters": {
"label": "Audiofilter",
"description": "Filtereinstellungen pro Audiotyp, wie z. B. Konfidenzschwellenwerte, die zur Reduzierung von Fehlalarmen verwendet werden."
"description": "Filtereinstellungen pro Audiotyp, wie z. B. Konfidenzschwellenwerte, die zur Reduzierung von Fehlalarmen verwendet werden.",
"threshold": {
"label": "Mindestvertrauensgrad für Audio",
"description": "Mindestschwellenwert für die Zuverlässigkeit, damit das Audioereignis gezählt wird."
}
},
"max_not_heard": {
"label": "Ende Timeout",
@@ -492,7 +496,7 @@
},
"default_role": {
"label": "Standardrolle",
"description": "Standardrolle, die proxy-authentifizierten Benutzern zugewiesen wird, wenn keine Rollenzuordnung gilt (Admin oder Betrachter)."
"description": "Standardrolle, die proxy-authentifizierten Benutzern zugewiesen wird, wenn keine Rollenzuordnung vorliegt."
},
"separator": {
"label": "Trennzeichen",
@@ -1275,6 +1279,41 @@
},
"raw_mask": {
"label": "Rohmaske"
},
"filters_attribute": {
"label": "Attributfilter",
"description": "Auf erkannte Attribute angewendete Filter zur Reduzierung von Fehlalarmen (Fläche, Verhältnis, Konfidenz).",
"min_area": {
"label": "Mindestfläche des Attributs",
"description": "Für dieses Attribut erforderliche Mindestfläche des Begrenzungsrahmens (in Pixeln oder Prozent). Kann als Pixelwert (Ganzzahl) oder als Prozentwert (Gleitkommawert zwischen 0,000001 und 0,99) angegeben werden."
},
"max_area": {
"label": "Maximale Attributfläche",
"description": "Maximal zulässige Fläche des Begrenzungsrahmens (in Pixeln oder Prozent) für dieses Attribut. Kann als Pixelwert (Ganzzahl) oder als Prozentwert (Gleitkommawert zwischen 0,000001 und 0,99) angegeben werden."
},
"min_ratio": {
"label": "Mindestseitenverhältnis",
"description": "Erforderliches Mindestverhältnis von Breite zu Höhe, damit die Begrenzungsbox die Anforderungen erfüllt."
},
"max_ratio": {
"label": "Maximales Seitenverhältnis",
"description": "Maximal zulässiges Verhältnis von Breite zu Höhe für die Begrenzungsbox, damit diese die Anforderungen erfüllt."
},
"threshold": {
"label": "Konfidenzschwelle",
"description": "Durchschnittlicher Schwellenwert für die Erkennungssicherheit, der erforderlich ist, damit das Merkmal als echtes Positiv gewertet wird."
},
"min_score": {
"label": "Mindestvertrauen",
"description": "Mindestwert für die Erkennungssicherheit eines einzelnen Bildes, der erforderlich ist, um dieses Attribut seinem übergeordneten Objekt zuzuordnen."
},
"mask": {
"label": "Filtermaske",
"description": "Polygonkoordinaten, die festlegen, wo dieser Filter innerhalb des Bildausschnitts angewendet wird."
},
"raw_mask": {
"label": "Rohmaske"
}
}
},
"record": {
@@ -28,5 +28,8 @@
"detectRequired": "Es muss mindestens ein input stream die Rolle 'erkennen' tragen.",
"hwaccelDetectOnly": "Nur der input-stream mit der Rolle 'erkennen' kann Hardwarebeschleunigungs Argumente definieren."
}
},
"detect": {
"dimensionMustBeEven": "Es muss eine gerade Zahl sein."
}
}
+5 -1
View File
@@ -121,5 +121,9 @@
"royal_mail": "Royal-Mail",
"school_bus": "Schulbus",
"skunk": "Stinktier",
"kangaroo": "Känguruh"
"kangaroo": "Känguruh",
"baby": "Baby",
"baby_stroller": "Kinderwagen",
"rickshaw": "Rikscha",
"rodent": "Nagetier"
}
+26
View File
@@ -42,5 +42,31 @@
"show_camera_status": "Wie ist der aktuelle Status meiner Kameras?",
"recap": "Was ist passiert, während ich weg war?",
"watch_camera": "Pass auf die Haustür auf und sag mir Bescheid, wenn jemand kommt"
},
"new_chat": "Neuer Chat",
"settings": {
"title": "Chat Einstellung",
"show_stats": {
"title": "Statistiken anzeigen",
"desc": "Generierungsrate und Kontextgröße für Chat-Antworten anzeigen.",
"while_generating": "Während der Erstellung",
"always": "Immer"
},
"auto_scroll": {
"title": "Auto scrollen",
"desc": "Verfolgen Sie neue Nachrichten, sobald sie eintreffen."
}
},
"stats": {
"context": "{{tokens}} tokens",
"tokens_per_second": "{{rate}} t/s"
},
"reasoning": {
"active": "Begründung…",
"show": "Begründung anzeigen",
"hide": "Begründung ausblenden"
},
"thinking": {
"toggle": "Umschalten"
}
}
+5 -1
View File
@@ -48,7 +48,11 @@
"title": "Neueste Erkennungen",
"aria": "Wähle aktuelle Erkennungen",
"empty": "Es gibt keine aktuellen Versuche zur Gesichtserkennung",
"titleShort": "frisch"
"titleShort": "frisch",
"emptyNoLibrary": {
"title": "Gesicht hinzufügen",
"description": "Sie müssen mindestens ein Gesicht zur Bibliothek hinzufügen, damit die Gesichtserkennung funktioniert."
}
},
"deleteFaceLibrary": {
"title": "Lösche Name",
+5 -2
View File
@@ -144,7 +144,9 @@
},
"camera": {
"enable": "Kamera aktivieren",
"disable": "Kamera deaktivieren"
"disable": "Kamera deaktivieren",
"turnOn": "Schalte die Kamera ein",
"turnOff": "Schalte die Kamera aus"
},
"audioDetect": {
"enable": "Audioerkennung aktivieren",
@@ -162,7 +164,8 @@
"autotracking": "Autotracking",
"audioDetection": "Audioerkennung",
"title": "{{camera}} Einstellungen",
"transcription": "Audio Transkription"
"transcription": "Audio Transkription",
"camera": "Kamera"
},
"history": {
"label": "Historisches Filmmaterial zeigen"
@@ -24,7 +24,9 @@
"points_one": "{{count}} Punkt",
"points_other": "{{count}} Punkte",
"undo": "Letzten Schritt rückgängig machen",
"reset": "Polygon zurücksetzen"
"reset": "Polygon zurücksetzen",
"drawMode": "ziehen",
"moveMode": "bewegen"
},
"motionHeatmapLabel": "Bewegungs-Heatmap",
"dialog": {
+301 -25
View File
@@ -16,7 +16,8 @@
"globalConfig": "Grundeinstellungen - Frigate",
"cameraConfig": "Kameraeinstellungen - Frigate",
"maintenance": "Wartung - Frigate",
"profiles": "Profile - Frigate"
"profiles": "Profile - Frigate",
"detectorsAndModel": "Sensoren und Modell Frigate"
},
"menu": {
"ui": "Benutzeroberfläche",
@@ -31,7 +32,7 @@
"enrichments": "Erkennungsfunktionen",
"triggers": "Auslöser",
"roles": "Rollen",
"cameraManagement": "Verwaltung",
"cameraManagement": "Kamera Verwaltung",
"cameraReview": "Überprüfung",
"system": "System",
"general": "allgemein",
@@ -92,7 +93,8 @@
"uiSettings": "Benutzeroberfläche Einstellung",
"profiles": "Profile",
"systemGo2rtcStreams": "go2rtc-streams",
"maintenance": "Wartung"
"maintenance": "Wartung",
"systemDetectorsAndModel": "Detektoren und Modell"
},
"dialog": {
"unsavedChanges": {
@@ -728,7 +730,8 @@
"notificationUnavailable": {
"title": "Benachrichtigungen nicht verfügbar",
"desc": "Web Push Benachrichtigungen erfordern einen sicheren Kontext (<code>https://…</code>). Das ist eine Vorgabe des Browsers. Greife auf Frigate gesichert zu um Benachrichtigungen zu nutzen.",
"documentation": "Dokumentation lesen"
"documentation": "Dokumentation lesen",
"descPwa": "Unter iOS sind Web-Push-Benachrichtigungen nur verfügbar, wenn Frigate auf Ihrem Startbildschirm installiert ist. Öffnen Sie das Menü <strong>Teilen</strong>, wählen Sie <strong>Zum Startbildschirm hinzufügen</strong> und öffnen Sie Frigate über das neue Symbol, um dieses Gerät für Benachrichtigungen zu registrieren."
},
"cameras": {
"desc": "Wähle aus für welche Kameras Benachrichtigungen aktiviert werden sollen.",
@@ -800,10 +803,18 @@
"cameras": "Kameras",
"loading": "Lade Model Informationen…",
"error": "Model Informationen laden fehlgeschlagen",
"availableModels": "Verfügbare Modelle",
"availableModels": "Verfügbare Frigate+ Modelle",
"loadingAvailableModels": "Lade verfügbare Modelle…",
"baseModel": "Basis Model",
"title": "Model Informationen"
"title": "Model Informationen",
"noModelLoaded": "Derzeit ist kein „Frigate+“-Modell geladen.",
"selectModel": "Wählen Sie ein Modell aus",
"noModelsAvailable": "Keine Modelle verfügbar",
"filter": {
"ariaLabel": "Modelle nach Typ filtern",
"baseModels": "Basismodelle",
"fineTunedModels": "Optimierte Modelle"
}
},
"toast": {
"error": "Speichern der Konfigurationsänderungen fehlgeschlagen: {{errorMessage}}",
@@ -817,7 +828,8 @@
"currentModel": "Aktuelles Modell",
"otherModels": "Anderes Modell",
"configuration": "Konfiguration"
}
},
"changeInDetectorsAndModel": "Modell wechseln"
},
"enrichments": {
"birdClassification": {
@@ -1125,7 +1137,7 @@
"brands": {
"reolink-rtsp": "Reolink RTSP wird nicht empfohlen. Es wird empfohlen, http in den Kameraeinstellungen zu aktivieren und den Kamera-Assistenten neu zu starten."
},
"customUrlRtspRequired": "Benutzerdefinierte URLs müssen mit „rtsp://“ beginnen. Für Nicht-RTSP-Kamerastreams ist eine manuelle Konfiguration erforderlich."
"customUrlRtspRequired": "Benutzerdefinierte URLs müssen mit „rtsp://“ oder \"rtsps://\" beginnen. Für Nicht-RTSP-Kamerastreams ist eine manuelle Konfiguration erforderlich."
},
"docs": {
"reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
@@ -1345,19 +1357,41 @@
"selectCamera": "Wähle eine Kamera",
"backToSettings": "Zurück zu Kameraeinstellungen",
"streams": {
"title": "Kameras aktivieren / deaktivieren",
"title": "Kamerastatus und Details",
"desc": "Deaktiviere eine Kamera vorübergehend, bis Frigate neu gestartet wird. Deaktivierung einer Kamera stoppt die Verarbeitung der Streams dieser Kamera durch Frigate vollständig. Erkennung, Aufzeichnung und Debugging sind dann nicht mehr verfügbar. <br /> <em>Hinweis: Dies deaktiviert nicht die go2rtc restreams.</em>",
"enableLabel": "Aktivierte Kameras",
"enableDesc": "</em>Eine aktivierte Kamera vorübergehend deaktivieren, bis Frigate neu gestartet wird. Durch das Deaktivieren einer Kamera wird die Verarbeitung der Streams dieser Kamera durch Frigate vollständig unterbrochen. Erkennung, Aufzeichnung und Fehlerbehebung stehen dann nicht mehr zur Verfügung.<br /><em> Hinweis: go2rtc-Restreams werden dadurch nicht deaktiviert.</em>",
"disableLabel": "Deaktivierte Kameras",
"disableDesc": "Aktivieren Sie eine Kamera, die derzeit in der Benutzeroberfläche nicht sichtbar und in der Konfiguration deaktiviert ist. Nach der Aktivierung ist ein Neustart von Frigate erforderlich.",
"enableSuccess": "{{cameraName}} wurde in der Konfiguration aktiviert. Starte Frigate neu, um die Änderungen zu übernehmen.",
"enableSuccess": "{{cameraName}} wurde aktiviert. Starte Frigate neu, um die Änderung zu übernehmen.",
"friendlyName": {
"edit": "Anzeigenamen der Kamera bearbeiten",
"title": "Anzeigenamen bearbeiten",
"description": "Legen Sie den Anzeigenamen fest, der für diese Kamera in der gesamten Benutzeroberfläche von „Frigate“ angezeigt wird. Lassen Sie das Feld leer, um die Kamera-ID zu verwenden.",
"rename": "Umbenennen"
}
},
"reorderHandle": "Zum Neuanordnen ziehen",
"saving": "Speichern…",
"saved": "gespeichert",
"details": {
"edit": "Kameradaten bearbeiten",
"title": "Kameradaten bearbeiten",
"description": "Aktualisieren Sie den Anzeigenamen und die externe URL, die für diese Kamera in der gesamten Frigate-Benutzeroberfläche verwendet werden.",
"friendlyNameLabel": "Display Name",
"friendlyNameHelp": "Der in der Benutzeroberfläche von „Frigate“ für diese Kamera angezeigte Spitzname. Lassen Sie das Feld leer, um die Kamera-ID zu verwenden.",
"webuiUrlLabel": "URL der Web-Benutzeroberfläche",
"webuiUrlHelp": "URL, um die Web-Benutzeroberfläche der Kamera direkt aus der Debug-Ansicht aufzurufen. Lassen Sie das Feld leer, um den Link zu deaktivieren.",
"webuiUrlInvalid": "Es muss sich um eine gültige URL handeln (z. B. https://example.com)."
},
"label": "Kamerazustand",
"description": "Legen Sie den Betriebszustand für jede Kamera fest.<br /><br /><strong>Ein</strong>: Streams werden normal verarbeitet.<br /><strong>Aus</strong>: Die Verarbeitung wird vorübergehend angehalten. Diese Einstellung bleibt bei einem Neustart von Frigate nicht erhalten.<br /><strong>Deaktiviert</strong>: Die Verarbeitung wird beendet und die Änderung in Ihrer Konfiguration gespeichert. Um eine deaktivierte Kamera wieder zu aktivieren, ist ein Neustart erforderlich.<br /><br /><em>Hinweis: Die Deaktivierung hat keine Auswirkungen auf go2rtc-Restreams.</em><br /><br />Ziehen Sie den Griff, um die Reihenfolge der aktiven Kameras in der Benutzeroberfläche anzupassen, einschließlich des Live-Dashboards und der Dropdown-Menüs zur Kameraauswahl.",
"disabledSubheading": "In der Konfiguration deaktiviert",
"status": {
"on": "Eingeschaltet",
"off": "Ausgeschaltet",
"disabled": "Deaktiviert"
},
"disableSuccess": "{{cameraName}} wurde deaktiviert und in der Konfiguration gespeichert."
},
"cameraConfig": {
"add": "Kamera hinzufügen",
@@ -1403,18 +1437,106 @@
"profiles": {
"title": "Profilkameraumschaltungen",
"selectLabel": "Profil auswählen",
"description": "Legen Sie fest, welche Kameras bei der Aktivierung eines Profils aktiviert oder deaktiviert werden sollen. Kameras, für die „Übernehmen“ eingestellt ist, behalten ihren ursprünglichen Aktivierungsstatus bei.",
"description": "Legen Sie fest, welche Kameras bei der Aktivierung eines Profils ein- oder ausgeschaltet werden. Kameras, die auf „Übernehmen“ eingestellt sind, behalten ihren Standardzustand bei.",
"inherit": "Erben",
"enabled": "Aktiviert",
"disabled": "Deaktiviert"
"disabled": "Deaktiviert",
"on": "Eingeschaltet",
"off": "Ausgeschaltet"
},
"cameraType": {
"title": "Kamerytyp",
"label": "Kameratyp",
"title": "Kamera Art",
"label": "Kamera Art",
"description": "Legen Sie den Kameratyp für jede Kamera fest. Spezielle LPR-Kameras sind Kameras mit leistungsstarkem optischen Zoom, um Kennzeichen von weit entfernten Fahrzeugen zu erfassen. Für die meisten Kameras sollte der normale Kameratyp verwendet werden, es sei denn, die Kamera ist speziell für LPR vorgesehen und verfügt über einen stark fokussierten Blickwinkel auf die Kennzeichen.",
"normal": "Normal",
"dedicatedLpr": "Spezielles LPR-System",
"saveSuccess": "Der Kameratyp für {{cameraName}} wurde aktualisiert. Starte Frigate neu, um die Änderungen zu übernehmen."
},
"description": "Fügen Sie Kameras hinzu, bearbeiten und löschen Sie sie, steuern Sie den Status jeder einzelnen Kamera und konfigurieren Sie profil- und kameratypabhängige Übersteuerungen. Um Streams, Erkennung, Bewegung und andere kameraspezifische Einstellungen zu konfigurieren, wählen Sie den entsprechenden Abschnitt unter „Kamerakonfiguration“ aus.",
"clone": {
"sectionTitle": "Einstellungen klonen",
"sectionDescription": "Konfiguration von einer Kamera auf eine andere oder eine neue Kamera kopieren.",
"button": "Einstellungen klonen",
"title": "Kameraeinstellungen kopieren",
"description": "Kopieren Sie die Konfiguration einer Kamera auf eine oder mehrere andere Kameras oder auf eine neue Kamera. Die Identitätsdaten (Name, Anzeigename, URL der Web-Benutzeroberfläche, Anzeigereihenfolge) werden dabei nicht kopiert.",
"source": {
"label": "Quellkamera",
"placeholder": "Wählen Sie eine Quellkamera aus",
"required": "Wählen Sie eine Quellkamera aus"
},
"target": {
"legend": "Ziel",
"newRadio": "Neue Kamera",
"newNameLabel": "Kamera Name",
"newNamePlaceholder": "z. B. back_door oder Back Door",
"newNameRequired": "Kamera Name ist erforderlich",
"newNameInvalid": "ungültiger Kamera Name",
"newNameCollision": "Eine Kamera mit diesem Namen gibt es bereits",
"newStreamsForced": "Streams werden bei einer neuen Kamera immer kopiert.",
"existingCamerasRadio": "Vorhandene Kameras",
"allCameras": "Alle Kameras",
"existingPlaceholder": "Wählen Sie mindestens eine Kamera aus",
"existingDisabled": "Es gibt keine weiteren Kameras, auf die kopiert werden kann"
},
"categories": {
"legend": "Zu klonende Einstellungen",
"description": "Wählen Sie aus, welche Einstellungen von der Quellkamera kopiert werden sollen.",
"selectAll": "Alle auswählen",
"selectNone": "Keine auswählen",
"resetDefaults": "Auf Standardwerte zurücksetzen",
"general": "Allgemeines",
"spatial": "Räumliche Rahmenbedingungen",
"streams": "Streams",
"spatialWarningTitle": "Auflösungsdiskrepanz",
"spatialWarning": "Die Quellkamera {{srcCamera}} hat eine andere Auflösung ({{srcWidth}}×{{srcHeight}}) als: {{cameras}}. Die Polygone sind möglicherweise nicht auf diese Kameras ausgerichtet. Diese Standardeinstellungen sind deaktiviert; aktivieren Sie sie, um die Daten unverändert zu kopieren.",
"restartHint": "Neustart erforderlich",
"items": {
"record": "Aufnahme",
"snapshots": "Momentaufnahmen",
"motion": "Bewegungserkennung",
"objects": "Objekte",
"audio": "Tonerkennung",
"audio_transcription": "Audio-Transkription",
"notifications": "Benachrichtigungen",
"birdseye": "Birdseye",
"mqtt": "MQTT",
"timestamp_style": "Format für Zeitstempel",
"onvif": "ONVIF",
"lpr": "Kennzeichenerkennung",
"face_recognition": "Gesichtserkennung",
"semantic_search": "Semantische Suche",
"genai": "Generative AI",
"type": "Kameratyp (Standard / speziell für Kennzeichenerkennung)",
"profiles": "Profile",
"detect": "Abmessungen ermitteln",
"zones": "Zonen",
"motion_mask": "Bewegungsmaske",
"object_masks": "Objektmaske",
"ffmpeg_live": "Stream-URLs und Rollen",
"review": "Rezension"
}
},
"footer": {
"restartNeeded": "Für einige Änderungen ist ein Neustart erforderlich.",
"liveOnly": "Alle Änderungen werden sofort wirksam, ohne dass ein Neustart erforderlich ist.",
"submit": "Klon",
"submitting": "Klonen…",
"changeCount_one": "Die Änderung von {{count}} wird übernommen",
"changeCount_other": "Die Änderungen von {{count}} werden übernommen"
},
"toast": {
"success": "Einstellungen wurden auf {{cameraName}} kopiert",
"successWithRestart": "Die Einstellungen wurden auf {{cameraName}} kopiert. Starte Frigate neu, um alle Änderungen zu übernehmen.",
"successMulti_one": "Einstellungen wurden auf {{count}} Kamera kopiert",
"successMulti_other": "Einstellungen wurden auf {{count}} Kameras kopiert",
"successMultiWithRestart_one": "Die Einstellungen wurden auf die Kamera {{count}} kopiert. Starte Frigate neu, um alle Änderungen zu übernehmen.",
"successMultiWithRestart_other": "Die Einstellungen wurden auf {{count}} Kameras kopiert. Starten Sie Frigate neu, um alle Änderungen zu übernehmen.",
"partialFailure": "{{successCount}} Abschnitte wurden angewendet; '{{failedSection}}' ist fehlgeschlagen: {{errorMessage}}",
"partialFailureMulti": "{{successCount}} Kamera(s) wurden kopiert; bei {{failed}} ist ein Fehler aufgetreten: {{errorMessage}}",
"newCameraPartialFailure": "Die Kamera {{cameraName}} wurde erstellt, einige Einstellungen konnten jedoch nicht kopiert werden: {{errorMessage}}",
"sourceMissing": "Die Quellkamera existiert nicht mehr",
"submitError": "Das Klonen der Kamera ist fehlgeschlagen: {{errorMessage}}"
}
}
},
"cameraReview": {
@@ -1489,7 +1611,13 @@
"othersField_one": "{{count}} andere",
"othersField_other": "{{count}} weitere",
"profilePrefix": "{{profile}} Profile: {{fields}}"
}
},
"overriddenGlobalHeading_one": "Diese Kamera überschreibt das Feld {{count}} aus der globalen Konfiguration:",
"overriddenGlobalHeading_other": "Diese Kamera überschreibt alle Felder {{count}} aus der globalen Konfiguration:",
"overriddenGlobalNoDeltas": "Diese Kamera überschreibt die globale Konfiguration, es gibt jedoch keine Abweichungen bei den Feldwerten.",
"overriddenBaseConfigHeading_one": "Das Profil {{profile}} überschreibt das Feld {{count}} aus der Basiskonfiguration:",
"overriddenBaseConfigHeading_other": "Das Profil {{profile}} überschreibt di Felder {{count}} aus der Basiskonfiguration:",
"overriddenBaseConfigNoDeltas": "Das Profil {{profile}} überschreibt diesen Abschnitt, jedoch weichen keine Feldwerte von der Basiskonfiguration ab."
},
"timestampPosition": {
"tl": "Oben links",
@@ -1726,7 +1854,9 @@
"options": {
"embeddings": "Einbetten",
"vision": "Vision",
"tools": "Werkzeuge"
"tools": "Werkzeuge",
"descriptions": "Beschreibung",
"chat": "Chat"
}
},
"semanticSearchModel": {
@@ -1756,9 +1886,39 @@
"platePlaceholder": "Kennzeichen oder regulärer Ausdruck"
},
"genaiModel": {
"placeholder": "Modell auswählen…",
"search": "Modell suchen…",
"noModels": "Keine Modelle verfügbar"
"placeholder": "Modell auswählen oder eingeben…",
"search": "Modell suchen oder eingeben…",
"noModels": "Keine Modelle verfügbar",
"available": "Verfügbare Modelle",
"useCustom": "Verwende „{{value}}“",
"refresh": "Modelle aktualisieren",
"probeFailed": "Das Abrufen der Modelle ist fehlgeschlagen",
"fetchedModels": "Modellliste erfolgreich abgerufen"
},
"semanticSearchModelSize": {
"notApplicable": "Gilt nicht für GenAI-Anbieter"
},
"liveStreams": {
"streamNameLabel": "Streamname",
"streamNamePlaceholder": "z. B. Haupt-HD-Stream",
"go2rtcStreamLabel": "go2rtc stream",
"go2rtcStreamPlaceholder": "Wählen Sie einen go2rtc-Stream aus",
"go2rtcStreamSearch": "Suchen Sie nach einem Streamnamen oder geben Sie ihn ein…",
"noGo2rtcStreams": "Es sind keine go2rtc-Streams konfiguriert",
"availableStreams": "Verfügbare Streams",
"useCustom": "Verwende „{{value}}“",
"addStream": "Stream hinzufügen"
},
"ptzPresets": {
"placeholder": "Wählen Sie eine Voreinstellung aus oder geben Sie eine ein...",
"search": "Suchen oder eine Voreinstellung eingeben...",
"noPresets": "Es sind keine Voreinstellungen verfügbar",
"available": "Kamera-Voreinstellungen",
"useCustom": "Verwende „{{value}}“"
},
"defaultRole": {
"admin": "Admin",
"viewer": "Betrachter"
}
},
"globalConfig": {
@@ -1792,7 +1952,9 @@
"saveAllSuccess_other": "Alle {{count}} Abschnitte wurden erfolgreich gespeichert.",
"saveAllPartial_one": "{{successCount}} von {{totalCount}} Abschnitt wurden gespeichert. {{failCount}} sind fehlgeschlagen.",
"saveAllPartial_other": "{{successCount}} von {{totalCount}} Abschnitten wurden gespeichert. {{failCount}} sind fehlgeschlagen.",
"saveAllFailure": "Es konnten nicht alle Abschnitte gespeichert werden."
"saveAllFailure": "Es konnten nicht alle Abschnitte gespeichert werden.",
"saveAllSuccessRestartRequired_one": "Der Abschnitt {{count}} wurde erfolgreich gespeichert. Starte Frigate neu, um die Änderungen zu übernehmen.",
"saveAllSuccessRestartRequired_other": "Alle {{count}} Abschnitte wurden erfolgreich gespeichert. Starte Frigate neu, um die Änderungen zu übernehmen."
},
"profiles": {
"title": "Profile",
@@ -1879,12 +2041,29 @@
"audioMp3": "Transcode zu MP3",
"audioExclude": "Ausschließen",
"hardwareNone": "Keine Hardwarebeschleunigung",
"hardwareAuto": "Automatische Hardwarebeschleunigung"
}
"hardwareAuto": "Automatisch (empfohlen)",
"hardwareVaapi": "VAAPI",
"hardwareCuda": "CUDA",
"hardwareV4l2m2m": "V4L2 M2M",
"hardwareDxva2": "DXVA2",
"hardwareVideotoolbox": "VideoToolbox",
"addVideoCodec": "Videocodec hinzufügen",
"addAudioCodec": "Audio-Codec hinzufügen",
"removeCodec": "Codec entfernen"
},
"streamNumber": "Stream {{index}}",
"sourceNumber": "Quelle {{index}}"
},
"onvif": {
"profileAuto": "Auto",
"profileLoading": "Profile werden geladen..."
"profileLoading": "Profile werden geladen...",
"autotracking": {
"zooming": {
"disabled": "deaktiviert",
"absolute": "Absolut",
"relative": "Verwandter"
}
}
},
"configMessages": {
"review": {
@@ -1901,7 +2080,9 @@
},
"detect": {
"fpsGreaterThanFive": "Es wird nicht empfohlen, den Wert für die FPS-Erkennung auf mehr als 5 zu setzen. Höhere Werte können zu Leistungseinbußen führen und bieten keinerlei Vorteile.",
"disabled": "Die Objekterkennung ist deaktiviert. Momentaufnahmen, Überprüfungselemente und Erweiterungsfunktionen wie Gesichtserkennung, Kennzeichenerkennung und generative KI funktionieren nicht."
"disabled": "Die Objekterkennung ist deaktiviert. Momentaufnahmen, Überprüfungselemente und Erweiterungsfunktionen wie Gesichtserkennung, Kennzeichenerkennung und generative KI funktionieren nicht.",
"resolutionShouldBeMultipleOfFour": "Um optimale Ergebnisse zu erzielen, sollten Breite und Höhe ein Vielfaches von 4 sein. Andere gerade Werte können zu visuellen Artefakten oder leichten Verzerrungen im Erkennungsstrom führen.",
"aspectRatioMismatch": "Die von Ihnen eingegebene Breite und Höhe stimmen nicht mit dem Seitenverhältnis Ihrer aktuell erkannten Auflösung überein. Dies kann zu einem gestreckten oder verzerrten Bild führen."
},
"faceRecognition": {
"globalDisabled": "Die Gesichtserkennungserweiterung muss aktiviert sein, damit die Gesichtserkennungsfunktionen bei dieser Kamera funktionieren.",
@@ -1931,6 +2112,101 @@
},
"semanticSearch": {
"jinav2SmallModelSize": "Die „kleine“ Variante des Jina V2-Modells verursacht hohe RAM- und Inferenzkosten. Es wird das „große“ Modell mit einer dedizierten GPU empfohlen."
},
"onvif": {
"autotrackingNoZones": "Für die automatische Verfolgung ist mindestens eine Zone erforderlich. Definieren Sie unter „Masken / Zonen“ eine Zone für diese Kamera und legen Sie diese anschließend unten als erforderliche Zone fest."
}
},
"birdseye": {
"trackingMode": {
"objects": "Objekte",
"motion": "Bewegung",
"continuous": "Fortlaufend"
},
"cameraOrder": {
"label": "Kamerabestellung",
"description": "Ziehe die Kameras per Drag & Drop, um ihre Reihenfolge im Birdseye-Layout festzulegen.",
"reorderHandle": "Zum Neuanordnen ziehen",
"saving": "Wird gespeichert…",
"saved": "gespeichert"
}
},
"retainMode": {
"all": "Alle",
"motion": "Bewegung",
"active_objects": "Aktive Objekte"
},
"previewQuality": {
"very_high": "sehr hoch",
"high": "hoch",
"medium": "Mittel",
"low": "niedrig",
"very_low": "sehr niedrig"
},
"ui": {
"timeFormat": {
"browser": "Browser",
"12hour": "12 Stunden",
"24hour": "24 Stunden"
},
"TimeOrDateStyle": {
"full": "vollständig",
"long": "lang",
"medium": "mittel",
"short": "kurz"
},
"unitSystem": {
"metric": "Metrik",
"imperial": "Imperial"
}
},
"review": {
"imageSource": {
"recordings": "Aufnahmen",
"previews": "Vorschau"
}
},
"logger": {
"logLevel": {
"debug": "Debug",
"info": "Info",
"warning": "Warnung",
"error": "Fehler",
"critical": "Kritisch"
}
},
"modelSize": {
"small": "klein",
"large": "groß"
},
"menuDot": {
"overrideGlobal": "Dieser Abschnitt überschreibt die globale Konfiguration",
"overrideProfile": "Dieser Abschnitt wird durch das Profil {{profile}} überschrieben",
"unsaved": "Dieser Abschnitt enthält ungespeicherte Änderungen"
},
"detectorsAndModel": {
"title": "Detektoren und Modell",
"description": "Konfigurieren Sie das Detektor-Backend, das die Objekterkennung ausführt, sowie das dafür verwendete Modell. Änderungen werden gemeinsam gespeichert, sodass Detektor und Modell synchron bleiben.",
"cardTitles": {
"detector": "Detektor-Hardware",
"model": "Erkennungsmodell"
},
"tabs": {
"plus": "Frigate+",
"custom": "Benutzerdefiniertes Modell"
},
"mismatch": {
"warning": "Das aktuelle Frigate+-Modell „{{model}}“ erfordert den {{required}}-Detektor. Wählen Sie unten ein kompatibles Modell aus oder wechseln Sie vor dem Speichern zu „Benutzerdefiniertes Modell“."
},
"plusModel": {
"requiresDetector": "Voraussetzung: {{detector}}",
"noModelSelected": "Wählen Sie ein Modell der Frigate+ aus"
},
"toast": {
"saveSuccess": "Detektoren und Modelleinstellungen wurden gespeichert. Starten Sie Frigate neu, um die Änderungen zu übernehmen.",
"saveError": "Das Speichern der Detektor- und Modelleinstellungen ist fehlgeschlagen"
},
"unsavedChanges": "Nicht gespeicherte Änderungen an Detektor und Modell",
"restartRequired": "Neustart erforderlich (Detektor oder Modell geändert)"
}
}
+5 -1
View File
@@ -178,6 +178,7 @@
"en": "English (English)",
"es": "Español (Spanish)",
"zhCN": "简体中文 (Simplified Chinese)",
"zhHant": "繁體中文 (Traditional Chinese)",
"hi": "हिन्दी (Hindi)",
"fr": "Français (French)",
"ar": "العربية (Arabic)",
@@ -317,5 +318,8 @@
"pixels": "{{area}}px"
},
"no_items": "No items",
"validation_errors": "Validation Errors"
"validation_errors": "Validation Errors",
"credentialField": {
"savedPlaceholder": "Saved — leave blank to keep current"
}
}
@@ -2,7 +2,10 @@
"group": {
"label": "Camera Groups",
"add": "Add Camera Group",
"showAll": "Show all camera groups",
"showLess": "Show less",
"edit": "Edit Camera Group",
"editGroups": "Edit Camera Groups",
"delete": {
"label": "Delete Camera Group",
"confirm": {
+1 -1
View File
@@ -12,7 +12,7 @@
"title": "Stream Offline",
"desc": "No frames have been received on the {{cameraName}} <code>detect</code> stream, check error logs"
},
"cameraDisabled": "Camera is disabled",
"cameraOff": "Camera is off",
"stats": {
"streamType": {
"title": "Stream Type:",
+6 -2
View File
@@ -682,7 +682,7 @@
},
"timestamp_style": {
"label": "Timestamp style",
"description": "Styling options for in-feed timestamps applied to recordings and snapshots.",
"description": "Styling options for timestamps applied to snapshots and Debug view.",
"position": {
"label": "Timestamp position",
"description": "Position of the timestamp on the image (tl/tr/bl/br)."
@@ -862,6 +862,10 @@
"dashboard": {
"label": "Show in UI",
"description": "Toggle whether this camera is visible everywhere in the Frigate UI. Disabling this will require manually editing the config to view this camera in the UI again."
},
"review": {
"label": "Show in review",
"description": "Toggle whether this camera is visible in review (the review page and its camera filter, motion review, and the history view)."
}
},
"webui_url": {
@@ -950,4 +954,4 @@
"label": "Original camera state",
"description": "Keep track of original state of camera."
}
}
}
+41 -10
View File
@@ -212,7 +212,7 @@
},
"default_role": {
"label": "Default role",
"description": "Default role assigned to proxy-authenticated users when no role mapping applies (admin or viewer)."
"description": "Default role assigned to proxy-authenticated users when no role mapping applies."
},
"separator": {
"label": "Separator character",
@@ -270,14 +270,6 @@
"label": "Time format",
"description": "Time format to use in the UI (browser, 12hour, or 24hour)."
},
"date_style": {
"label": "Date style",
"description": "Date style to use in the UI (full, long, medium, short)."
},
"time_style": {
"label": "Time style",
"description": "Time style to use in the UI (full, long, medium, short)."
},
"unit_system": {
"label": "Unit system",
"description": "Unit system for display (metric or imperial) used in the UI and MQTT."
@@ -921,6 +913,41 @@
"label": "Original GenAI state",
"description": "Indicates whether GenAI was enabled in the original static config."
}
},
"filters_attribute": {
"label": "Attribute filters",
"description": "Filters applied to detected attributes to reduce false positives (area, ratio, confidence).",
"min_area": {
"label": "Minimum attribute area",
"description": "Minimum bounding box area (pixels or percentage) required for this attribute. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
},
"max_area": {
"label": "Maximum attribute area",
"description": "Maximum bounding box area (pixels or percentage) allowed for this attribute. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
},
"min_ratio": {
"label": "Minimum aspect ratio",
"description": "Minimum width/height ratio required for the bounding box to qualify."
},
"max_ratio": {
"label": "Maximum aspect ratio",
"description": "Maximum width/height ratio allowed for the bounding box to qualify."
},
"threshold": {
"label": "Confidence threshold",
"description": "Average detection confidence threshold required for the attribute to be considered a true positive."
},
"min_score": {
"label": "Minimum confidence",
"description": "Minimum single-frame detection confidence required to associate this attribute with its parent object."
},
"mask": {
"label": "Filter mask",
"description": "Polygon coordinates defining where this filter applies within the frame."
},
"raw_mask": {
"label": "Raw Mask"
}
}
},
"record": {
@@ -1519,6 +1546,10 @@
"dashboard": {
"label": "Show in UI",
"description": "Toggle whether this camera is visible everywhere in the Frigate UI. Disabling this will require manually editing the config to view this camera in the UI again."
},
"review": {
"label": "Show in review",
"description": "Toggle whether this camera is visible in review (the review page and its camera filter, motion review, and the history view)."
}
},
"onvif": {
@@ -1597,4 +1628,4 @@
"description": "Ignore time synchronization differences between camera and Frigate server for ONVIF communication."
}
}
}
}
@@ -28,5 +28,8 @@
"detectRequired": "At least one input stream must be assigned the 'detect' role.",
"hwaccelDetectOnly": "Only the input stream with the detect role can define hardware acceleration arguments."
}
},
"detect": {
"dimensionMustBeEven": "Must be an even number."
}
}
+8
View File
@@ -60,5 +60,13 @@
"stats": {
"context": "{{tokens}} tokens",
"tokens_per_second": "{{rate}} t/s"
},
"reasoning": {
"active": "Reasoning…",
"show": "Show reasoning",
"hide": "Hide reasoning"
},
"thinking": {
"toggle": "Toggle thinking"
}
}
+1 -1
View File
@@ -67,7 +67,7 @@
"needsReview": "Needs review",
"securityConcern": "Security concern",
"motionSearch": {
"menuItem": "Motion search",
"menuItem": "Motion Search",
"openMenu": "Camera options"
},
"motionPreviews": {
+1 -1
View File
@@ -222,7 +222,7 @@
"label": "Hide object path"
},
"debugReplay": {
"label": "Debug replay",
"label": "Debug Replay",
"aria": "View this tracked object in the debug replay view"
},
"more": {
+3 -3
View File
@@ -57,8 +57,8 @@
"presets": "PTZ camera presets"
},
"camera": {
"enable": "Enable Camera",
"disable": "Disable Camera"
"turnOn": "Turn Camera On",
"turnOff": "Turn Camera Off"
},
"muteCameras": {
"enable": "Mute All Cameras",
@@ -153,7 +153,7 @@
},
"cameraSettings": {
"title": "{{camera}} Settings",
"cameraEnabled": "Camera Enabled",
"camera": "Camera",
"objectDetection": "Object Detection",
"recording": "Recording",
"snapshots": "Snapshots",
@@ -8,6 +8,7 @@
"searchCancelled": "Search cancelled",
"cancelSearch": "Cancel",
"searching": "Search in progress.",
"scanning": "Scanning {{time}}",
"searchComplete": "Search complete",
"noResultsYet": "Run a search to find motion changes in the selected region",
"noChangesFound": "No pixel changes detected in the selected region",
@@ -24,7 +25,9 @@
"points_one": "{{count}} point",
"points_other": "{{count}} points",
"undo": "Undo last point",
"reset": "Reset polygon"
"reset": "Reset polygon",
"drawMode": "Draw",
"moveMode": "Move"
},
"motionHeatmapLabel": "Motion Heatmap",
"dialog": {
@@ -40,13 +43,11 @@
"settings": {
"title": "Search Settings",
"parallelMode": "Parallel mode",
"parallelModeDesc": "Scan multiple recording segments at the same time (faster, but significantly more CPU intensive)",
"parallelModeDesc": "Scan multiple recording ranges at the same time (faster; uses more decoding resources)",
"threshold": "Sensitivity Threshold",
"thresholdDesc": "Lower values detect smaller changes (1-255)",
"minArea": "Minimum Change Area",
"minAreaDesc": "Minimum percentage of the region of interest that must change to be considered significant",
"frameSkip": "Frame Skip",
"frameSkipDesc": "Process every Nth frame. Set this to your camera's frame rate to process one frame per second (e.g. 5 for a 5 FPS camera, 30 for a 30 FPS camera). Higher values will be faster, but may miss short motion events.",
"minAreaDesc": "Minimum size of a single moving region, as a percentage of the region of interest",
"maxResults": "Maximum Results",
"maxResultsDesc": "Stop after this many matching timestamps"
},
@@ -70,6 +71,8 @@
"framesDecoded": "Frames decoded",
"wallTime": "Search time",
"segmentErrors": "Segment errors",
"seconds": "{{seconds}}s"
"seconds": "{{seconds}}s",
"minutesSeconds": "{{minutes}}m {{seconds}}s",
"scanSummary": "{{segments}} segments · {{time}}"
}
}
+216 -40
View File
@@ -12,6 +12,7 @@
"globalConfig": "Global Configuration - Frigate",
"cameraConfig": "Camera Configuration - Frigate",
"frigatePlus": "Frigate+ Settings - Frigate",
"detectorsAndModel": "Detectors and model - Frigate",
"notifications": "Notification Settings - Frigate",
"maintenance": "Maintenance - Frigate",
"profiles": "Profiles - Frigate"
@@ -39,6 +40,11 @@
"profilePrefix": "{{profile}} profile: {{fields}}"
}
},
"menuDot": {
"overrideGlobal": "This section overrides the global configuration",
"overrideProfile": "This section is overridden by the {{profile}} profile",
"unsaved": "This section has unsaved changes"
},
"menu": {
"general": "General",
"globalConfig": "Global configuration",
@@ -69,8 +75,7 @@
"systemTelemetry": "Telemetry",
"systemBirdseye": "Birdseye",
"systemFfmpeg": "FFmpeg",
"systemDetectorHardware": "Detector hardware",
"systemDetectionModel": "Detection model",
"systemDetectorsAndModel": "Detectors and model",
"systemMqtt": "MQTT",
"systemGo2rtcStreams": "go2rtc streams",
"integrationSemanticSearch": "Semantic search",
@@ -98,7 +103,7 @@
"cameraUi": "Camera UI",
"cameraTimestampStyle": "Timestamp style",
"cameraMqtt": "Camera MQTT",
"cameraManagement": "Management",
"cameraManagement": "Camera management",
"cameraReview": "Review",
"masksAndZones": "Masks / Zones",
"motionTuner": "Motion tuner",
@@ -315,7 +320,7 @@
"nameLength": "Camera name must be 64 characters or less",
"invalidCharacters": "Camera name contains invalid characters",
"nameExists": "Camera name already exists",
"customUrlRtspRequired": "Custom URLs must begin with \"rtsp://\". Manual configuration is required for non-RTSP camera streams."
"customUrlRtspRequired": "Custom URLs must begin with \"rtsp://\" or \"rtsps://\". Manual configuration is required for non-RTSP camera streams."
}
},
"step2": {
@@ -452,7 +457,7 @@
},
"cameraManagement": {
"title": "Manage Cameras",
"description": "Add, edit, and delete cameras, control which cameras are enabled, and configure per-profile and camera type overrides. To configure streams, detection, motion, and other camera-specific settings, choose the specific section under Camera Configuration.",
"description": "Add, edit, and delete cameras, control the state of each camera, and configure per-profile and camera type overrides. To configure streams, detection, motion, and other camera-specific settings, choose the specific section under Camera Configuration.",
"addCamera": "Add New Camera",
"deleteCamera": "Delete Camera",
"deleteCameraDialog": {
@@ -470,17 +475,33 @@
"selectCamera": "Select a Camera",
"backToSettings": "Back to Camera Settings",
"streams": {
"title": "Enable / Disable Cameras",
"enableLabel": "Enabled cameras",
"enableDesc": "Temporarily disable an enabled camera until Frigate restarts. Disabling a camera completely stops Frigate's processing of this camera's streams. Detection, recording, and debugging will be unavailable.<br /> <em>Note: This does not disable go2rtc restreams.</em>",
"disableLabel": "Disabled cameras",
"disableDesc": "Enable a camera that is currently not visible in the UI and disabled in the configuration. A restart of Frigate is required after enabling.",
"enableSuccess": "Enabled {{cameraName}} in configuration. Restart Frigate to apply the changes.",
"friendlyName": {
"edit": "Edit camera display name",
"title": "Edit Display Name",
"description": "Set the friendly name shown for this camera throughout the Frigate UI. Leave blank to use the camera ID.",
"rename": "Rename"
"title": "Camera State and Details",
"label": "Camera state",
"description": "Set the operating state for each camera.<br /><br /><strong>On</strong>: streams are processed normally.<br /><strong>Off</strong>: temporarily pauses processing. Does not persist across Frigate restarts.<br /><strong>Disabled</strong>: stops processing and saves the change to your configuration. A restart is required to re-enable a disabled camera.<br /><br /><em>Note: Disabling does not affect go2rtc restreams.</em><br /><br />Drag the handle to reorder active cameras as they appear throughout the UI, including the Live dashboard and camera selection dropdowns.",
"disabledSubheading": "Disabled in configuration",
"status": {
"on": "On",
"off": "Off",
"disabled": "Disabled"
},
"enableSuccess": "Enabled {{cameraName}}. Restart Frigate to apply.",
"disableSuccess": "Disabled {{cameraName}} and saved to configuration.",
"reorderHandle": "Drag to reorder",
"saving": "Saving…",
"saved": "Saved",
"details": {
"edit": "Edit camera details",
"title": "Edit Camera Details",
"description": "Update the display name, external URL, and visibility used for this camera throughout the Frigate UI.",
"friendlyNameLabel": "Display Name",
"friendlyNameHelp": "Friendly name shown for this camera throughout the Frigate UI. Leave blank to use the camera ID.",
"webuiUrlLabel": "Camera Web UI URL",
"webuiUrlHelp": "URL to visit the camera's web UI directly from the Debug view. Leave blank to disable the link.",
"webuiUrlInvalid": "Must be a valid URL (e.g., https://example.com).",
"dashboardLabel": "Show on Live dashboard",
"dashboardHelp": "Show this camera on the Live dashboard.",
"reviewLabel": "Show in Review",
"reviewHelp": "Show this camera in Review, including the camera filter, motion review, and the history view."
}
},
"cameraConfig": {
@@ -515,10 +536,10 @@
"profiles": {
"title": "Profile Camera Overrides",
"selectLabel": "Select profile",
"description": "Configure which cameras are enabled or disabled when a profile is activated. Cameras set to \"Inherit\" keep their base enabled state.",
"description": "Configure which cameras are turned on or off when a profile is activated. Cameras set to \"Inherit\" keep their default state.",
"inherit": "Inherit",
"enabled": "Enabled",
"disabled": "Disabled"
"on": "On",
"off": "Off"
},
"cameraType": {
"title": "Camera Type",
@@ -527,6 +548,92 @@
"normal": "Normal",
"dedicatedLpr": "Dedicated LPR",
"saveSuccess": "Updated camera type for {{cameraName}}. Restart Frigate to apply the changes."
},
"clone": {
"sectionTitle": "Clone settings",
"sectionDescription": "Copy configuration from one camera to another camera or a new one.",
"button": "Clone settings",
"title": "Clone camera settings",
"description": "Copy a camera's configuration to one or more other cameras or a new camera. Identity (name, friendly name, web UI URL, display order) is never copied.",
"source": {
"label": "Source camera",
"placeholder": "Select a source camera",
"required": "Select a source camera"
},
"target": {
"legend": "Target",
"newRadio": "New camera",
"newNameLabel": "Camera name",
"newNamePlaceholder": "e.g., back_door or Back Door",
"newNameRequired": "Camera name is required",
"newNameInvalid": "Invalid camera name",
"newNameCollision": "A camera with this name already exists",
"newStreamsForced": "Streams are always copied for a new camera.",
"existingCamerasRadio": "Existing cameras",
"allCameras": "All cameras",
"existingPlaceholder": "Select at least one camera",
"existingDisabled": "No other cameras to copy to"
},
"categories": {
"legend": "Settings to clone",
"description": "Choose which settings to copy from the source camera.",
"selectAll": "Select all",
"selectNone": "Select none",
"resetDefaults": "Reset to defaults",
"general": "General",
"spatial": "Spatial settings",
"streams": "Streams",
"spatialWarningTitle": "Resolution mismatch",
"spatialWarning": "Source camera {{srcCamera}} detect resolution ({{srcWidth}}×{{srcHeight}}) differs from: {{cameras}}. Polygons may not align on those cameras. These defaults are off; enable to copy as-is.",
"restartHint": "Restart required",
"items": {
"record": "Recording",
"snapshots": "Snapshots",
"review": "Review",
"motion": "Motion detection",
"objects": "Objects",
"audio": "Audio detection",
"audio_transcription": "Audio transcription",
"notifications": "Notifications",
"birdseye": "Birdseye",
"mqtt": "MQTT",
"timestamp_style": "Timestamp style",
"onvif": "ONVIF",
"lpr": "License plate recognition",
"face_recognition": "Face recognition",
"semantic_search": "Semantic search",
"genai": "Generative AI",
"type": "Camera type (normal / dedicated LPR)",
"profiles": "Profiles",
"detect": "Detect dimensions",
"zones": "Zones",
"motion_mask": "Motion masks",
"object_masks": "Object masks",
"ffmpeg_live": "Stream URLs and roles"
}
},
"footer": {
"changeCount_zero": "No changes selected",
"changeCount_one": "{{count}} change will be applied",
"changeCount_other": "{{count}} changes will be applied",
"restartNeeded": "Restart will be required for some changes.",
"liveOnly": "All changes will apply live without a restart.",
"submit": "Clone",
"submitting": "Cloning…"
},
"toast": {
"success": "Settings copied to {{cameraName}}",
"successWithRestart": "Settings copied to {{cameraName}}. Restart Frigate to apply all changes.",
"successMulti_one": "Settings copied to {{count}} camera",
"successMulti_other": "Settings copied to {{count}} cameras",
"successMultiWithRestart_one": "Settings copied to {{count}} camera. Restart Frigate to apply all changes.",
"successMultiWithRestart_other": "Settings copied to {{count}} cameras. Restart Frigate to apply all changes.",
"partialFailure": "{{successCount}} sections applied; '{{failedSection}}' failed: {{errorMessage}}",
"partialFailureMulti": "Copied to {{successCount}} camera(s); failed for {{failed}}: {{errorMessage}}",
"newCameraPartialFailure": "Camera {{cameraName}} was created but some settings failed to copy: {{errorMessage}}",
"sourceMissing": "Source camera no longer exists",
"submitError": "Failed to clone camera: {{errorMessage}}"
}
}
},
"cameraReview": {
@@ -1051,7 +1158,8 @@
},
"notificationUnavailable": {
"title": "Notifications Unavailable",
"desc": "Web push notifications require a secure context (<code>https://…</code>). This is a browser limitation. Access Frigate securely to use notifications."
"desc": "Web push notifications require a secure context (<code>https://…</code>). This is a browser limitation. Access Frigate securely to use notifications.",
"descPwa": "On iOS, web push notifications are only available when Frigate is installed to your Home Screen. Open the <strong>Share</strong> menu, choose <strong>Add to Home Screen</strong>, then open Frigate from the new icon to register this device for notifications."
},
"globalSettings": {
"title": "Global Settings",
@@ -1142,7 +1250,7 @@
"loading": "Loading model information…",
"error": "Failed to load model information",
"noModelLoaded": "No Frigate+ model is currently loaded.",
"availableModels": "Available Models",
"availableModels": "Available Frigate+ models",
"loadingAvailableModels": "Loading available models…",
"selectModel": "Select a model",
"noModelsAvailable": "No models available",
@@ -1153,6 +1261,7 @@
},
"modelSelect": "Your available models on Frigate+ can be selected here. Note that only models compatible with your current detector configuration can be selected."
},
"changeInDetectorsAndModel": "Change model",
"unsavedChanges": "Unsaved Frigate+ settings changes",
"restart_required": "Restart required (Frigate+ model changed)",
"toast": {
@@ -1160,14 +1269,30 @@
"error": "Failed to save config changes: {{errorMessage}}"
}
},
"detectionModel": {
"plusActive": {
"title": "Frigate+ model management",
"label": "Current model source",
"description": "This instance is running a Frigate+ model. Select or change your model in Frigate+ settings.",
"goToFrigatePlus": "Go to Frigate+ settings",
"showModelForm": "Manually configure a model"
}
"detectorsAndModel": {
"title": "Detectors and model",
"description": "Configure the detector backend that runs object detection and the model it uses. Changes are saved together so the detector and model stay in sync.",
"cardTitles": {
"detector": "Detector Hardware",
"model": "Detection Model"
},
"tabs": {
"plus": "Frigate+",
"custom": "Custom Model"
},
"mismatch": {
"warning": "The current Frigate+ model \"{{model}}\" requires the {{required}} detector. Pick a compatible model below or switch to Custom Model before saving."
},
"plusModel": {
"requiresDetector": "Requires: {{detector}}",
"noModelSelected": "Select a Frigate+ model"
},
"toast": {
"saveSuccess": "Detectors and model settings saved. Restart Frigate to apply changes.",
"saveError": "Failed to save detector and model settings"
},
"unsavedChanges": "Unsaved detector and model changes",
"restartRequired": "Restart required (detector or model changed)"
},
"triggers": {
"documentTitle": "Triggers",
@@ -1378,6 +1503,17 @@
"namePlaceholder": "e.g., Wife's Car",
"platePlaceholder": "Plate number or regex"
},
"liveStreams": {
"streamNameLabel": "Stream name",
"streamNamePlaceholder": "e.g., Main HD Stream",
"go2rtcStreamLabel": "go2rtc stream",
"go2rtcStreamPlaceholder": "Select a go2rtc stream",
"go2rtcStreamSearch": "Search or enter a stream name…",
"noGo2rtcStreams": "No go2rtc streams configured",
"availableStreams": "Available streams",
"useCustom": "Use \"{{value}}\"",
"addStream": "Add stream"
},
"timezone": {
"defaultOption": "Use browser timezone"
},
@@ -1521,6 +1657,9 @@
"builtIn": "Built-in Models",
"genaiProviders": "GenAI Providers"
},
"semanticSearchModelSize": {
"notApplicable": "Not applicable for GenAI providers"
},
"review": {
"title": "Review Settings"
},
@@ -1539,9 +1678,25 @@
"searchPlaceholder": "Search...",
"addCustomLabel": "Add custom label...",
"genaiModel": {
"placeholder": "Select model…",
"search": "Search models…",
"noModels": "No models available"
"placeholder": "Select or enter a model…",
"search": "Search or enter a model…",
"noModels": "No models available",
"available": "Available models",
"useCustom": "Use \"{{value}}\"",
"refresh": "Refresh models",
"probeFailed": "Failed to probe models",
"fetchedModels": "Successfully fetched model list"
},
"ptzPresets": {
"placeholder": "Select or enter a preset...",
"search": "Search or enter a preset...",
"noPresets": "No presets available",
"available": "Camera presets",
"useCustom": "Use \"{{value}}\""
},
"defaultRole": {
"admin": "Admin",
"viewer": "Viewer"
}
},
"globalConfig": {
@@ -1573,6 +1728,8 @@
"resetError": "Failed to reset settings",
"saveAllSuccess_one": "Saved {{count}} section successfully.",
"saveAllSuccess_other": "All {{count}} sections saved successfully.",
"saveAllSuccessRestartRequired_one": "Saved {{count}} section successfully. Restart Frigate to apply your changes.",
"saveAllSuccessRestartRequired_other": "All {{count}} sections saved successfully. Restart Frigate to apply your changes.",
"saveAllPartial_one": "{{successCount}} of {{totalCount}} section saved. {{failCount}} failed.",
"saveAllPartial_other": "{{successCount}} of {{totalCount}} sections saved. {{failCount}} failed.",
"saveAllFailure": "Failed to save all sections."
@@ -1629,6 +1786,7 @@
"addStream": "Add stream",
"addStreamDesc": "Enter a name for the new stream. This name will be used to reference the stream in your camera configuration.",
"addUrl": "Add URL",
"sourceNumber": "Source {{index}}",
"streamName": "Stream name",
"streamNamePlaceholder": "e.g., front_door",
"streamUrlPlaceholder": "e.g., rtsp://user:pass@192.168.1.100/stream",
@@ -1662,7 +1820,15 @@
"audioMp3": "Transcode to MP3",
"audioExclude": "Exclude",
"hardwareNone": "No hardware acceleration",
"hardwareAuto": "Automatic hardware acceleration"
"hardwareAuto": "Automatic (recommended)",
"hardwareVaapi": "VAAPI",
"hardwareCuda": "CUDA",
"hardwareV4l2m2m": "V4L2 M2M",
"hardwareDxva2": "DXVA2",
"hardwareVideotoolbox": "VideoToolbox",
"addVideoCodec": "Add video codec",
"addAudioCodec": "Add audio codec",
"removeCodec": "Remove codec"
}
},
"birdseye": {
@@ -1670,6 +1836,13 @@
"objects": "Objects",
"motion": "Motion",
"continuous": "Continuous"
},
"cameraOrder": {
"label": "Camera order",
"description": "Drag cameras to set their order in the Birdseye layout.",
"reorderHandle": "Drag to reorder",
"saving": "Saving…",
"saved": "Saved"
}
},
"retainMode": {
@@ -1690,12 +1863,6 @@
"12hour": "12 hour",
"24hour": "24 hour"
},
"TimeOrDateStyle": {
"full": "Full",
"long": "Long",
"medium": "Medium",
"short": "Short"
},
"unitSystem": {
"metric": "Metric",
"imperial": "Imperial"
@@ -1746,7 +1913,13 @@
},
"detect": {
"fpsGreaterThanFive": "Setting the detect FPS higher than 5 is not recommended. Higher values may cause performance issues and will not provide any benefit.",
"disabled": "Object detection is disabled. Snapshots, review items, and enrichments such as face recognition, license plate recognition, and Generative AI will not function."
"disabled": "Object detection is disabled. Snapshots, review items, and enrichments such as face recognition, license plate recognition, and Generative AI will not function.",
"resolutionShouldBeMultipleOfFour": "For best results, detect width and height should be multiples of 4. Other even values may produce visual artifacts or slight distortion in the detect stream.",
"aspectRatioMismatch": "The width and height you've entered don't match the aspect ratio of your current detect resolution. This may produce a stretched or distorted image.",
"maxFramesSet": "Setting max frames overrides default behavior and disables stationary object tracking. There are very few situations where this is needed, use with caution.",
"squareResolution": "A square detect resolution is unusual. The detect width and height should match your camera's aspect ratio (for example, 16:9), not the dimensions of the object detection model. A mismatched aspect ratio can stretch the image and reduce detection accuracy.",
"resolutionHigh": "This detect resolution is higher than recommended and may cause increased resource usage without improving detection accuracy. A detect resolution at or below 1080p is recommended for most cameras.",
"globalResolutionMultipleCameras": "A global detect resolution is set while multiple cameras are configured. Unless all cameras share the same resolution and aspect ratio, the detect width and height should be defined per camera to match each camera's native aspect ratio."
},
"objects": {
"genaiNoDescriptionsProvider": "You must configure a GenAI provider with the 'descriptions' role for descriptions to be generated."
@@ -1776,6 +1949,9 @@
},
"semanticSearch": {
"jinav2SmallModelSize": "The 'small' size with the Jina V2 model has high RAM and inference cost. The 'large' model with a discrete GPU is recommended."
},
"onvif": {
"autotrackingNoZones": "Autotracking requires at least one zone. Define a zone for this camera in Masks / Zones, then set it as a required zone below."
}
}
}
+27 -4
View File
@@ -154,7 +154,9 @@
"gl": "Galego (Gallego)",
"id": "Bahasa Indonesia (Indonesio)",
"ur": "اردو (Urdu)",
"hr": "Hrvatski (Croata)"
"hr": "Hrvatski (Croata)",
"bs": "Bosanski (Bosnio)",
"zhHant": "繁體中文 (Chino Tradicional)"
},
"appearance": "Apariencia",
"darkMode": {
@@ -196,7 +198,10 @@
"uiPlayground": "Zona de pruebas de la interfaz de usuario",
"faceLibrary": "Biblioteca de rostros",
"classification": "Clasificación",
"profiles": "Perfiles"
"profiles": "Perfiles",
"actions": "Acciones",
"features": "Funciones",
"chat": "Chat"
},
"unit": {
"speed": {
@@ -252,7 +257,19 @@
"saving": "Guardando…",
"exitFullscreen": "Salir de pantalla completa",
"on": "ENCENDIDO",
"continue": "Continuar"
"continue": "Continuar",
"add": "Añadir",
"applying": "Aplicando…",
"undo": "Deshacer",
"copiedToClipboard": "Copiado al portapapeles",
"modified": "Modificado",
"overridden": "Sobrescrito",
"resetToGlobal": "Restablecer a global",
"resetToDefault": "Restablecer valores predeterminados",
"saveAll": "Guardar todo",
"savingAll": "Guardando todo…",
"undoAll": "Deshacer todo",
"retry": "Reintentar"
},
"toast": {
"save": {
@@ -260,7 +277,8 @@
"noMessage": "No se pudieron guardar los cambios de configuración",
"title": "No se pudieron guardar los cambios de configuración: {{errorMessage}}"
},
"title": "Guardar"
"title": "Guardar",
"success": "Cambios de configuración guardados correctamente."
},
"copyUrlToClipboard": "URL copiada al portapapeles."
},
@@ -314,5 +332,10 @@
"field": {
"optional": "Opcional",
"internalID": "La ID interna que usa Frigate en la configuración y en la base de datos"
},
"no_items": "No hay elementos",
"validation_errors": "Errores de validación",
"credentialField": {
"savedPlaceholder": "Guardado — déjalo en blanco para mantener el actual"
}
}
+4 -1
View File
@@ -68,7 +68,10 @@
"stream": "Transmitir"
},
"birdseye": "Vista Aérea"
}
},
"showAll": "Mostrar todos los grupos de cámaras",
"showLess": "Mostrar menos",
"editGroups": "Editar grupos de cámaras"
},
"debug": {
"options": {
+70 -4
View File
@@ -71,16 +71,77 @@
"endTimeMustAfterStartTime": "La hora de finalización debe ser posterior a la hora de inicio"
},
"success": "Exportación iniciada con éxito. Ver el archivo en la página exportaciones.",
"view": "Ver"
"view": "Vista",
"queued": "Exportación en cola. Consulta el progreso en la página de exportaciones.",
"batchSuccess_one": "Se inició 1 exportación. Abriendo el caso ahora.",
"batchSuccess_many": "Se iniciaron {{count}} exportaciones. Abriendo el caso ahora.",
"batchSuccess_other": "Se iniciaron {{count}} exportaciones. Abriendo el caso ahora.",
"batchPartial": "Se iniciaron {{successful}} de {{total}} exportaciones. Cámaras fallidas: {{failedCameras}}",
"batchFailed": "No se pudieron iniciar {{total}} exportaciones. Cámaras fallidas: {{failedCameras}}",
"batchQueuedSuccess_one": "1 exportación en cola. Abriendo el caso ahora.",
"batchQueuedSuccess_many": "{{count}} exportaciones en cola. Abriendo el caso ahora.",
"batchQueuedSuccess_other": "{{count}} exportaciones en cola. Abriendo el caso ahora.",
"batchQueuedPartial": "{{successful}} de {{total}} exportaciones en cola. Cámaras fallidas: {{failedCameras}}",
"batchQueueFailed": "No se pudieron poner en cola {{total}} exportaciones. Cámaras fallidas: {{failedCameras}}"
},
"fromTimeline": {
"saveExport": "Guardar exportación",
"previewExport": "Vista previa de la exportación"
"previewExport": "Vista previa de la exportación",
"queueingExport": "Poniendo exportación en cola...",
"useThisRange": "Usar este intervalo"
},
"selectOrExport": "Seleccionar o exportar",
"case": {
"label": "Caso",
"newCaseDescriptionPlaceholder": "Descripción de caso"
"newCaseDescriptionPlaceholder": "Descripción de caso",
"newCaseOption": "Crear nuevo caso",
"newCaseNamePlaceholder": "Nombre del nuevo caso",
"nonAdminHelp": "Se creará un nuevo caso para estas exportaciones.",
"placeholder": "Selecciona un caso"
},
"queueing": "Poniendo la exportación en cola…",
"tabs": {
"export": "Una Cámara",
"multiCamera": "Multicámara"
},
"multiCamera": {
"timeRange": "Intervalo de tiempo",
"selectFromTimeline": "Seleccionar desde la línea de tiempo",
"cameraSelection": "Cámaras",
"cameraSelectionHelp": "Las cámaras con objetos detectados en este intervalo de tiempo están preseleccionadas",
"checkingActivity": "Comprobando actividad de las cámaras...",
"noCameras": "No hay cámaras disponibles",
"detectionCount_one": "1 objeto detectado",
"detectionCount_many": "{{count}} objetos detectados",
"detectionCount_other": "{{count}} objetos detectados",
"nameLabel": "Nombre de la exportación",
"namePlaceholder": "Nombre base opcional para estas exportaciones",
"queueingButton": "Poniendo exportaciones en cola...",
"exportButton_one": "Exportar 1 cámara",
"exportButton_many": "Exportar {{count}} cámaras",
"exportButton_other": "Exportar {{count}} cámaras"
},
"multi": {
"title_one": "Exportar 1 revisión",
"title_many": "Exportar {{count}} revisiones",
"title_other": "Exportar {{count}} revisiones",
"description": "Exportar cada revisión seleccionada. Todas las exportaciones se agruparán en un único caso.",
"descriptionNoCase": "Exportar cada revisión seleccionada.",
"caseNamePlaceholder": "Exportación de revisión - {{date}}",
"exportButton_one": "Exportar 1 revisión",
"exportButton_many": "Exportar {{count}} revisiones",
"exportButton_other": "Exportar {{count}} revisiones",
"exportingButton": "Exportando...",
"toast": {
"started_one": "Se inició 1 exportación. Abriendo el caso ahora.",
"started_many": "Se iniciaron {{count}} exportaciones. Abriendo el caso ahora.",
"started_other": "Se iniciaron {{count}} exportaciones. Abriendo el caso ahora.",
"startedNoCase_one": "Se inició 1 exportación.",
"startedNoCase_many": "Se iniciaron {{count}} exportaciones.",
"startedNoCase_other": "Se iniciaron {{count}} exportaciones.",
"partial": "Se iniciaron {{successful}} de {{total}} exportaciones. Fallidas: {{failedItems}}",
"failed": "No se pudieron iniciar {{total}} exportaciones. Fallidas: {{failedItems}}"
}
}
},
"streaming": {
@@ -130,7 +191,12 @@
"markAsUnreviewed": "Marcar como no revisado"
},
"shareTimestamp": {
"description": "Comparta una URL con marca de tiempo de la posición actual del reproductor o elija una marca de tiempo personalizada. Tenga en cuenta que esta no es una URL pública para compartir y solo es accesible para los usuarios que tienen acceso a Frigate y a esta cámara."
"description": "Comparta una URL con marca de tiempo de la posición actual del reproductor o elija una marca de tiempo personalizada. Tenga en cuenta que esta no es una URL pública para compartir y solo es accesible para los usuarios que tienen acceso a Frigate y a esta cámara.",
"label": "Compartir marca de tiempo",
"title": "Compartir marca de tiempo",
"custom": "Marca de tiempo personalizada",
"button": "Compartir URL de la marca de tiempo",
"shareTitle": "Marca de tiempo de revisión de Frigate: {{camera}}"
}
},
"imagePicker": {
+2 -1
View File
@@ -48,5 +48,6 @@
}
},
"livePlayerRequiredIOSVersion": "Se requiere iOS 17.1 o superior para este tipo de transmisión en vivo.",
"noRecordingsFoundForThisTime": "No se encontraron grabaciones para este momento"
"noRecordingsFoundForThisTime": "No se encontraron grabaciones para este momento",
"cameraOff": "La cámara está apagada"
}
+727 -59
View File
@@ -1,6 +1,6 @@
{
"name": {
"label": "Nombre de cámara",
"label": "Nombre de Cámara",
"description": "El nombre de la cámara es necesario"
},
"enabled": {
@@ -8,7 +8,7 @@
"description": "Habilitado"
},
"audio": {
"label": "Eventos de audio",
"label": "Detección de audio",
"description": "Configuración para la detección de eventos basada en audio para esta cámara.",
"enabled": {
"label": "Habilitar la detección de audio",
@@ -28,14 +28,19 @@
},
"filters": {
"label": "Filtros de audio",
"description": "Ajustes de filtrado por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos."
"description": "Ajustes de filtro por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.",
"threshold": {
"label": "Confianza mínima de audio",
"description": "Umbral mínimo de confianza para que se cuente el evento de audio."
}
},
"enabled_in_config": {
"description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estática.",
"label": "Estado original del audio"
"description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estático.",
"label": "Estado de audio original"
},
"num_threads": {
"label": "Hilos de detección"
"label": "Hilos de detección",
"description": "Número de hilos a usar para procesamiento de detección de audio."
}
},
"friendly_name": {
@@ -50,29 +55,79 @@
},
"autotracking": {
"zoom_factor": {
"description": "Controla el nivel de zoom en los objetos rastreados. Los valores más bajos mantienen una mayor parte de la escena a la vista; los valores más altos acercan la imagen, pero pueden provocar la pérdida del rastreo. Valores entre 0.1 y 0.75."
"description": "Controla el nivel de zoom en los objetos rastreados. Los valores más bajos mantienen una mayor parte de la escena a la vista; los valores más altos acercan la imagen, pero pueden provocar la pérdida del rastreo. Valores entre 0.1 y 0.75.",
"label": "Factor de zoom"
},
"calibrate_on_startup": {
"description": "Mida la velocidad de los motores PTZ al encenderlos para mejorar la precisión del seguimiento. Frigate actualizará la configuración con los `movement_weights` tras la calibración."
"description": "Mida la velocidad de los motores PTZ al encenderlos para mejorar la precisión del seguimiento. Frigate actualizará la configuración con los `movement_weights` tras la calibración.",
"label": "Calibrar al iniciar"
},
"description": "Realice un seguimiento automático de objetos en movimiento y manténgalos centrados en el encuadre mediante movimientos de cámara PTZ.",
"zooming": {
"description": "Control del comportamiento del zoom: deshabilitado (solo panorámica/inclinación), absoluto (mayor compatibilidad) o relativo (panorámica/inclinación/zoom simultáneos)."
"description": "Control del comportamiento del zoom: deshabilitado (solo panorámica/inclinación), absoluto (mayor compatibilidad) o relativo (panorámica/inclinación/zoom simultáneos).",
"label": "Modo de zoom"
},
"return_preset": {
"description": "Nombre del preajuste ONVIF configurado en el firmware de la cámara al que regresar una vez finalizado el seguimiento."
"description": "Nombre del preajuste ONVIF configurado en el firmware de la cámara al que regresar una vez finalizado el seguimiento.",
"label": "Preajuste de retorno"
},
"timeout": {
"description": "Espere esta cantidad de segundos después de perder el seguimiento antes de devolver la cámara a la posición preestablecida."
"description": "Espere esta cantidad de segundos después de perder el seguimiento antes de devolver la cámara a la posición preestablecida.",
"label": "Tiempo de espera de retorno"
},
"label": "Seguimiento automático",
"enabled": {
"label": "Habilitar seguimiento automático",
"description": "Habilita o deshabilita el seguimiento automático con cámara PTZ de objetos detectados."
},
"track": {
"label": "Objetos rastreados",
"description": "Lista de tipos de objetos que deben activar el seguimiento automático."
},
"required_zones": {
"label": "Zonas requeridas",
"description": "Los objetos deben entrar en una de estas zonas antes de que comience el seguimiento automático."
},
"movement_weights": {
"label": "Pesos de movimiento",
"description": "Valores de calibración generados automáticamente por la calibración de la cámara. No los modifiques manualmente."
},
"enabled_in_config": {
"label": "Estado original de autoseguimiento",
"description": "Campo interno para rastrear si el seguimiento automático estaba habilitado en la configuración."
}
},
"tls_insecure": {
"description": "Omitir la verificación TLS y deshabilitar la autenticación digest para ONVIF (no seguro; usar solo en redes seguras)."
"description": "Omitir la verificación TLS y deshabilitar la autenticación digest para ONVIF (no seguro; usar solo en redes seguras).",
"label": "Deshabilitar verificación TLS"
},
"label": "ONVIF",
"description": "Ajustes de conexión ONVIF y seguimiento automático PTZ para esta cámara.",
"host": {
"label": "Host ONVIF",
"description": "Host (y esquema opcional) para el servicio ONVIF de esta cámara."
},
"port": {
"label": "Puerto ONVIF",
"description": "Número de puerto del servicio ONVIF."
},
"user": {
"label": "Nombre de usuario ONVIF",
"description": "Nombre de usuario para la autenticación ONVIF; algunos dispositivos requieren un usuario administrador para ONVIF."
},
"password": {
"label": "Contraseña ONVIF",
"description": "Contraseña para la autenticación ONVIF."
},
"ignore_time_mismatch": {
"label": "Ignorar discrepancia horaria",
"description": "Ignora las diferencias de sincronización horaria entre la cámara y el servidor Frigate para la comunicación ONVIF."
}
},
"zones": {
"distances": {
"label": "Distancias reales"
"label": "Distancias reales",
"description": "Distancias reales opcionales para cada lado del cuadrilátero de la zona, usadas para cálculos de velocidad o distancia. Debe tener exactamente 4 valores si se establece."
},
"coordinates": {
"description": "Coordenadas del polígono que definen el área de la zona. Puede ser una cadena separada por comas o una lista de cadenas de coordenadas. Las coordenadas deben ser relativas (0-1) o absolutas (heredadas).",
@@ -106,23 +161,41 @@
"description": "Área máxima del cuadro delimitador (píxeles o porcentaje) permitida para este tipo de objeto. Puede expresarse en píxeles (entero) o como porcentaje (decimal entre 0,000001 y 0,99).",
"label": "Área máxima del objeto"
},
"description": "Filtros para aplicar a los objetos dentro de esta zona. Se utilizan para reducir los falsos positivos o restringir qué objetos se consideran presentes en la zona."
"description": "Filtros para aplicar a los objetos dentro de esta zona. Se utilizan para reducir los falsos positivos o restringir qué objetos se consideran presentes en la zona.",
"label": "Filtros de zona",
"min_area": {
"label": "Área mínima de objeto",
"description": "Área mínima del cuadro delimitador (píxeles o porcentaje) necesaria para este tipo de objeto. Puede ser píxeles (int) o porcentaje (float entre 0.000001 y 0.99)."
}
},
"objects": {
"description": "Lista de tipos de objetos (del mapa de etiquetas) que pueden activar esta zona. Puede ser una cadena de texto o una lista de cadenas. Si está vacío, se consideran todos los objetos."
"description": "Lista de tipos de objetos (del mapa de etiquetas) que pueden activar esta zona. Puede ser una cadena de texto o una lista de cadenas. Si está vacío, se consideran todos los objetos.",
"label": "Objetos activadores"
},
"description": "Las zonas le permiten definir un área específica del fotograma, de modo que pueda determinar si un objeto se encuentra o no dentro de un área determinada.",
"speed_threshold": {
"description": "Velocidad mínima (en unidades del mundo real, si se han configurado distancias) requerida para que un objeto se considere presente en la zona. Se utiliza para los disparadores de zona basados en la velocidad."
"description": "Velocidad mínima (en unidades del mundo real, si se han configurado distancias) requerida para que un objeto se considere presente en la zona. Se utiliza para los disparadores de zona basados en la velocidad.",
"label": "Velocidad mínima"
},
"friendly_name": {
"description": "Un nombre fácil de usar para la zona, que se muestra en la interfaz de usuario de Frigate. Si no se especifica, se utilizará una versión formateada del nombre de la zona."
"description": "Un nombre fácil de usar para la zona, que se muestra en la interfaz de usuario de Frigate. Si no se especifica, se utilizará una versión formateada del nombre de la zona.",
"label": "Nombre de zona"
},
"inertia": {
"description": "Número de fotogramas consecutivos en los que se debe detectar un objeto dentro de la zona antes de considerarlo presente. Ayuda a filtrar las detecciones transitorias."
"description": "Número de fotogramas consecutivos en los que se debe detectar un objeto dentro de la zona antes de considerarlo presente. Ayuda a filtrar las detecciones transitorias.",
"label": "Fotogramas de inercia"
},
"loitering_time": {
"description": "Número de segundos que un objeto debe permanecer en la zona para ser considerado como merodeo. Establezca en 0 para desactivar la detección de merodeo."
"description": "Número de segundos que un objeto debe permanecer en la zona para ser considerado como merodeo. Establezca en 0 para desactivar la detección de merodeo.",
"label": "Segundos de permanencia"
},
"label": "Zonas",
"enabled": {
"label": "Habilitado",
"description": "Habilita o deshabilita esta zona. Las zonas deshabilitadas se ignoran en tiempo de ejecución."
},
"enabled_in_config": {
"label": "Mantiene el registro del estado original de la zona."
}
},
"objects": {
@@ -142,148 +215,743 @@
},
"send_triggers": {
"after_significant_updates": {
"description": "Envía una solicitud a GenAI tras un número especificado de actualizaciones significativas del objeto rastreado."
"description": "Envía una solicitud a GenAI tras un número especificado de actualizaciones significativas del objeto rastreado.",
"label": "Activador temprano de GenAI"
},
"description": "Define cuándo se deben enviar los fotogramas a GenAI (al finalizar, después de las actualizaciones, etc.)."
"description": "Define cuándo se deben enviar los fotogramas a GenAI (al finalizar, después de las actualizaciones, etc.).",
"label": "Activadores de GenAI",
"tracked_object_end": {
"label": "Enviar al finalizar",
"description": "Envía una solicitud a GenAI cuando finaliza el objeto rastreado."
}
},
"required_zones": {
"description": "Zonas en las que deben ubicarse los objetos para ser elegibles para la generación de descripciones con GenAI."
"description": "Zonas en las que deben ubicarse los objetos para ser elegibles para la generación de descripciones con GenAI.",
"label": "Zonas requeridas"
},
"prompt": {
"label": "Prompt de descripción",
"description": "Plantilla de prompt predeterminada usada al generar descripciones con GenAI."
},
"object_prompts": {
"label": "Prompts de objetos",
"description": "Prompts por objeto para personalizar las salidas de GenAI para etiquetas concretas."
},
"objects": {
"label": "Objetos de GenAI",
"description": "Lista de etiquetas de objetos que se enviarán a GenAI de forma predeterminada."
},
"debug_save_thumbnails": {
"label": "Guardar miniaturas",
"description": "Guarda las miniaturas enviadas a GenAI para depuración y revisión."
},
"enabled_in_config": {
"label": "Estado original de GenAI",
"description": "Indica si GenAI estaba habilitado en la configuración estática original."
}
},
"label": "Objetos",
"description": "Valores predeterminados de seguimiento de objetos, incluidas las etiquetas que se rastrean y los filtros por objeto.",
"track": {
"label": "Objetos a rastrear",
"description": "Lista de etiquetas de objetos a rastrear para esta cámara."
},
"filters": {
"label": "Filtros de objetos",
"description": "Filtros aplicados a los objetos detectados para reducir falsos positivos (área, relación, confianza).",
"min_area": {
"label": "Área mínima de objeto",
"description": "Área mínima del cuadro delimitador (píxeles o porcentaje) necesaria para este tipo de objeto. Puede ser píxeles (int) o porcentaje (float entre 0.000001 y 0.99)."
},
"max_area": {
"label": "Área máxima de objeto",
"description": "Área máxima del cuadro delimitador (píxeles o porcentaje) permitida para este tipo de objeto. Puede ser píxeles (int) o porcentaje (float entre 0.000001 y 0.99)."
},
"min_ratio": {
"label": "Relación de aspecto mínima",
"description": "Relación mínima anchura/altura necesaria para que el cuadro delimitador sea válido."
},
"max_ratio": {
"label": "Relación de aspecto máxima",
"description": "Relación máxima anchura/altura permitida para que el cuadro delimitador sea válido."
},
"threshold": {
"label": "Umbral de confianza",
"description": "Umbral medio de confianza de detección necesario para que el objeto se considere un positivo verdadero."
},
"min_score": {
"label": "Confianza mínima",
"description": "Confianza mínima de detección en un único fotograma necesaria para que el objeto se contabilice."
},
"mask": {
"label": "Máscara de filtro",
"description": "Coordenadas del polígono que definen dónde se aplica este filtro dentro del fotograma."
},
"raw_mask": {
"label": "Máscara sin procesar"
}
},
"mask": {
"label": "Máscara de objeto",
"description": "Polígono de máscara usado para evitar la detección de objetos en áreas especificadas."
}
},
"mqtt": {
"label": "MQTT",
"required_zones": {
"description": "Zonas en las que debe entrar un objeto para que se publique una imagen MQTT."
"description": "Zonas en las que debe entrar un objeto para que se publique una imagen MQTT.",
"label": "Zonas requeridas"
},
"description": "Ajustes de publicación de imágenes MQTT.",
"enabled": {
"label": "Enviar imagen",
"description": "Habilita la publicación de instantáneas de objetos en temas MQTT para esta cámara."
},
"timestamp": {
"label": "Añadir marca de tiempo",
"description": "Superpone una marca de tiempo en las imágenes publicadas en MQTT."
},
"bounding_box": {
"label": "Añadir cuadro delimitador",
"description": "Dibuja cuadros delimitadores en las imágenes publicadas mediante MQTT."
},
"crop": {
"label": "Recortar imagen",
"description": "Recorta las imágenes publicadas en MQTT al cuadro delimitador del objeto detectado."
},
"height": {
"label": "Altura de imagen",
"description": "Altura (píxeles) a la que redimensionar las imágenes publicadas mediante MQTT."
},
"quality": {
"label": "Calidad JPEG",
"description": "Calidad JPEG de las imágenes publicadas en MQTT (0-100)."
}
},
"notifications": {
"email": {
"label": "Email de notificacion"
"label": "Email de notificacion",
"description": "Dirección de correo electrónico usada para notificaciones push o requerida por ciertos proveedores de notificaciones."
},
"label": "Notificaciones",
"description": "Ajustes para habilitar y controlar las notificaciones de esta cámara.",
"enabled": {
"label": "Habilitar notificaciones",
"description": "Habilita o deshabilita las notificaciones para esta cámara."
},
"cooldown": {
"label": "Periodo de enfriamiento",
"description": "Periodo de enfriamiento (segundos) entre notificaciones para evitar saturar a los destinatarios."
},
"enabled_in_config": {
"label": "Estado original de notificaciones",
"description": "Indica si las notificaciones estaban habilitadas en la configuración estática original."
}
},
"audio_transcription": {
"description": "Configuración para la transcripción de audio en vivo y de voz, utilizada para eventos y subtítulos en tiempo real.",
"description": "Configuración para la transcripción de audio en directo y de voz utilizada para eventos y subtítulos en directo.",
"enabled": {
"label": "Habilitar transcripción"
"label": "Habilitar transcripción",
"description": "Habilitar o deshabilitar la transcripción de eventos de audio activados manualmente."
},
"label": "Transcripción de audio",
"enabled_in_config": {
"label": "Estado original de la transcripción"
},
"live_enabled": {
"label": "Transcripción en directo",
"description": "Habilitar la transcripción en directo del audio a medida que se recibe."
}
},
"motion": {
"skip_motion_threshold": {
"description": "Si se establece en un valor entre 0,0 y 1,0, y más de esta fracción de la imagen cambia en un solo fotograma, el detector no devolverá cuadros de movimiento y se recalibrará inmediatamente. Esto puede ahorrar recursos de CPU y reducir los falsos positivos durante tormentas eléctricas, tempestades, etc., aunque podría pasar por alto eventos reales, como el seguimiento automático de un objeto por parte de una cámara PTZ. La disyuntiva está entre descartar unos cuantos megabytes de grabaciones o revisar un par de clips cortos. Deje este parámetro sin establecer (None) para desactivar esta función."
"description": "Si se establece en un valor entre 0,0 y 1,0, y más de esta fracción de la imagen cambia en un solo fotograma, el detector no devolverá cuadros de movimiento y se recalibrará inmediatamente. Esto puede ahorrar recursos de CPU y reducir los falsos positivos durante tormentas eléctricas, tempestades, etc., aunque podría pasar por alto eventos reales, como el seguimiento automático de un objeto por parte de una cámara PTZ. La disyuntiva está entre descartar unos cuantos megabytes de grabaciones o revisar un par de clips cortos. Deje este parámetro sin establecer (None) para desactivar esta función.",
"label": "Omitir umbral de movimiento"
},
"lightning_threshold": {
"description": "Umbral para detectar e ignorar breves picos de luz (un valor menor indica mayor sensibilidad; valores entre 0,3 y 1,0). Esto no impide por completo la detección de movimiento; Simplemente provoca que el detector deje de analizar fotogramas adicionales una vez que se supera el umbral. Durante estos eventos aún se realizan grabaciones basadas en el movimiento."
"description": "Umbral para detectar e ignorar breves picos de luz (un valor menor indica mayor sensibilidad; valores entre 0,3 y 1,0). Esto no impide por completo la detección de movimiento; Simplemente provoca que el detector deje de analizar fotogramas adicionales una vez que se supera el umbral. Durante estos eventos aún se realizan grabaciones basadas en el movimiento.",
"label": "Umbral de iluminación"
},
"threshold": {
"description": "Umbral de diferencia de píxeles utilizado por el detector de movimiento; los valores más altos reducen la sensibilidad (rango 1-255)."
"description": "Umbral de diferencia de píxeles utilizado por el detector de movimiento; los valores más altos reducen la sensibilidad (rango 1-255).",
"label": "Umbral de movimiento"
},
"label": "Detección de movimiento",
"description": "Ajustes predeterminados de detección de movimiento para esta cámara.",
"enabled": {
"label": "Habilitar detección de movimiento",
"description": "Habilita o deshabilita la detección de movimiento para esta cámara."
},
"improve_contrast": {
"label": "Mejorar contraste",
"description": "Aplica una mejora de contraste a los fotogramas antes del análisis de movimiento para ayudar a la detección."
},
"contour_area": {
"label": "Área de contorno",
"description": "Área mínima de contorno en píxeles necesaria para que se cuente un contorno de movimiento."
},
"delta_alpha": {
"label": "Delta alfa",
"description": "Factor de mezcla alfa usado en la diferencia entre fotogramas para calcular el movimiento."
},
"frame_alpha": {
"label": "Alfa del fotograma",
"description": "Valor alfa usado al mezclar fotogramas para el preprocesamiento de movimiento."
},
"frame_height": {
"label": "Altura del fotograma",
"description": "Altura en píxeles a la que escalar los fotogramas al calcular el movimiento."
},
"mask": {
"label": "Coordenadas de máscara",
"description": "Coordenadas x,y ordenadas que definen el polígono de máscara de movimiento usado para incluir/excluir áreas."
},
"mqtt_off_delay": {
"label": "Retraso de apagado MQTT",
"description": "Segundos a esperar tras el último movimiento antes de publicar un estado MQTT 'off'."
},
"enabled_in_config": {
"label": "Estado de movimiento original",
"description": "Indica si la detección de movimiento estaba habilitada en la configuración estática original."
},
"raw_mask": {
"label": "Máscara sin procesar"
}
},
"lpr": {
"enhancement": {
"description": "Nivel de mejora (0-10) que se aplicará a los recortes de matrículas antes del OCR; los valores más altos no siempre mejoran los resultados, y los niveles superiores a 5 podrían funcionar únicamente con matrículas capturadas de noche, por lo que deben utilizarse con precaución."
"description": "Nivel de mejora (0-10) que se aplicará a los recortes de matrículas antes del OCR; los valores más altos no siempre mejoran los resultados, y los niveles superiores a 5 podrían funcionar únicamente con matrículas capturadas de noche, por lo que deben utilizarse con precaución.",
"label": "Nivel de mejora"
},
"expire_time": {
"description": "Tiempo en segundos tras el cual una matrícula no detectada caduca en el sistema de seguimiento (solo para cámaras LPR dedicadas)."
"description": "Tiempo en segundos tras el cual una matrícula no detectada caduca en el sistema de seguimiento (solo para cámaras LPR dedicadas).",
"label": "Segundos hasta caducar"
},
"label": "Reconocimiento de matrículas",
"description": "Ajustes de reconocimiento de matrículas, incluidos umbrales de detección, formato y matrículas conocidas.",
"enabled": {
"label": "Habilitar LPR",
"description": "Habilita o deshabilita LPR en esta cámara."
},
"min_area": {
"label": "Área mínima de matrícula",
"description": "Área mínima de matrícula (píxeles) necesaria para intentar el reconocimiento."
}
},
"detect": {
"fps": {
"description": "Fotogramas por segundo deseados para ejecutar la detección; los valores más bajos reducen el uso de la CPU (el valor recomendado es 5; establezca un valor superior —como máximo de 10— únicamente si realiza el seguimiento de objetos que se mueven con extrema rapidez)."
"description": "Fotogramas por segundo deseados para ejecutar la detección; los valores más bajos reducen el uso de la CPU (el valor recomendado es 5; establezca un valor superior —como máximo de 10— únicamente si realiza el seguimiento de objetos que se mueven con extrema rapidez).",
"label": "FPS de detección"
},
"min_initialized": {
"description": "Número de detecciones consecutivas requeridas antes de crear un objeto rastreado. Auméntelo para reducir las inicializaciones falsas. El valor predeterminado es los FPS divididos por 2."
"description": "Número de detecciones consecutivas requeridas antes de crear un objeto rastreado. Auméntelo para reducir las inicializaciones falsas. El valor predeterminado es los FPS divididos por 2.",
"label": "Fotogramas mínimos de inicialización"
},
"height": {
"description": "Altura (en píxeles) de los fotogramas utilizados para la transmisión de detección; déjelo vacío para utilizar la resolución nativa de la transmisión."
"description": "Altura (en píxeles) de los fotogramas utilizados para la transmisión de detección; déjelo vacío para utilizar la resolución nativa de la transmisión.",
"label": "Altura de detección"
},
"width": {
"description": "Ancho (en píxeles) de los fotogramas utilizados para la transmisión de detección; déjelo vacío para utilizar la resolución nativa de la transmisión."
"description": "Ancho (en píxeles) de los fotogramas utilizados para la transmisión de detección; déjelo vacío para utilizar la resolución nativa de la transmisión.",
"label": "Anchura de detección"
},
"stationary": {
"description": "Configuración para detectar y gestionar objetos que permanecen inmóviles durante un periodo de tiempo."
"description": "Configuración para detectar y gestionar objetos que permanecen inmóviles durante un periodo de tiempo.",
"label": "Configuración de objetos estacionarios",
"interval": {
"label": "Intervalo estacionario",
"description": "Frecuencia (en fotogramas) con la que se ejecuta una comprobación de detección para confirmar un objeto estacionario."
},
"threshold": {
"label": "Umbral estacionario",
"description": "Número de fotogramas sin cambio de posición necesarios para marcar un objeto como estacionario."
},
"max_frames": {
"label": "Fotogramas máximos",
"description": "Limita durante cuánto tiempo se rastrean los objetos estacionarios antes de descartarlos.",
"default": {
"label": "Fotogramas máximos predeterminados",
"description": "Número máximo predeterminado de fotogramas para rastrear un objeto estacionario antes de detenerse."
},
"objects": {
"label": "Fotogramas máximos por objeto",
"description": "Sobrescrituras por objeto para el número máximo de fotogramas en los que rastrear objetos estacionarios."
}
},
"classifier": {
"label": "Habilitar clasificador visual",
"description": "Usa un clasificador visual para detectar objetos realmente estacionarios incluso cuando los cuadros delimitadores oscilan."
}
},
"label": "Detección de objetos",
"description": "Ajustes del rol de detección/detect usado para ejecutar la detección de objetos e inicializar los rastreadores.",
"enabled": {
"label": "Habilitar detección de objetos",
"description": "Habilita o deshabilita la detección de objetos para esta cámara."
},
"max_disappeared": {
"label": "Fotogramas máximos desaparecido",
"description": "Número de fotogramas sin detección antes de que un objeto rastreado se considere desaparecido."
},
"annotation_offset": {
"label": "Desplazamiento de anotaciones",
"description": "Milisegundos para desplazar las anotaciones de detección y alinear mejor los cuadros delimitadores de la línea de tiempo con las grabaciones; puede ser positivo o negativo."
}
},
"record": {
"motion": {
"description": "Número de días para conservar las grabaciones activadas por movimiento, independientemente de los objetos rastreados. Establézcalo en 0 si solo desea conservar las grabaciones de alertas y detecciones."
"description": "Número de días para conservar las grabaciones activadas por movimiento, independientemente de los objetos rastreados. Establézcalo en 0 si solo desea conservar las grabaciones de alertas y detecciones.",
"label": "Retención de movimiento",
"days": {
"label": "Días de retención",
"description": "Días durante los que conservar las grabaciones."
}
},
"continuous": {
"description": "Número de días para conservar las grabaciones, independientemente de los objetos rastreados o del movimiento. Establézcalo en 0 si solo desea conservar las grabaciones de alertas y detecciones."
"description": "Número de días para conservar las grabaciones, independientemente de los objetos rastreados o del movimiento. Establézcalo en 0 si solo desea conservar las grabaciones de alertas y detecciones.",
"label": "Retención continua",
"days": {
"label": "Días de retención",
"description": "Días durante los que conservar las grabaciones."
}
},
"detections": {
"pre_capture": {
"description": "Número de segundos antes del evento de detección que se incluirán en la grabación."
"description": "Número de segundos antes del evento de detección que se incluirán en la grabación.",
"label": "Segundos de captura previa"
},
"post_capture": {
"description": "Número de segundos después del evento de detección que se incluirán en la grabación."
"description": "Número de segundos después del evento de detección que se incluirán en la grabación.",
"label": "Segundos de captura posterior"
},
"label": "Retención de detección",
"description": "Ajustes de retención de grabaciones para eventos de detección, incluidas las duraciones de captura previa/posterior.",
"retain": {
"label": "Retención de eventos",
"description": "Ajustes de retención para grabaciones de eventos de detección.",
"days": {
"label": "Días de retención",
"description": "Número de días durante los que conservar grabaciones de eventos de detección."
},
"mode": {
"label": "Modo de retención",
"description": "Modo de retención: all (guarda todos los segmentos), motion (guarda segmentos con movimiento) o active_objects (guarda segmentos con objetos activos)."
}
}
},
"alerts": {
"pre_capture": {
"description": "Número de segundos antes del evento de detección que se incluirán en la grabación."
"description": "Número de segundos antes del evento de detección que se incluirán en la grabación.",
"label": "Segundos de captura previa"
},
"post_capture": {
"description": "Número de segundos después del evento de detección que se incluirán en la grabación."
"description": "Número de segundos después del evento de detección que se incluirán en la grabación.",
"label": "Segundos de captura posterior"
},
"label": "Retención de alertas",
"description": "Ajustes de retención de grabaciones para eventos de alerta, incluidas las duraciones de captura previa/posterior.",
"retain": {
"label": "Retención de eventos",
"description": "Ajustes de retención para grabaciones de eventos de detección.",
"days": {
"label": "Días de retención",
"description": "Número de días durante los que conservar grabaciones de eventos de detección."
},
"mode": {
"label": "Modo de retención",
"description": "Modo de retención: all (guarda todos los segmentos), motion (guarda segmentos con movimiento) o active_objects (guarda segmentos con objetos activos)."
}
}
},
"label": "Grabación",
"description": "Ajustes de grabación y retención para esta cámara.",
"enabled": {
"label": "Habilitar grabación",
"description": "Habilita o deshabilita la grabación para esta cámara."
},
"expire_interval": {
"label": "Intervalo de limpieza de grabaciones",
"description": "Minutos entre pasadas de limpieza que eliminan segmentos de grabación caducados."
},
"export": {
"label": "Configuración de exportación",
"description": "Ajustes usados al exportar grabaciones, como timelapse y aceleración por hardware.",
"hwaccel_args": {
"label": "Argumentos hwaccel de exportación",
"description": "Argumentos de aceleración por hardware que se usarán en operaciones de exportación/transcodificación."
},
"max_concurrent": {
"label": "Exportaciones simultáneas máximas",
"description": "Número máximo de trabajos de exportación que se procesarán al mismo tiempo."
}
},
"preview": {
"label": "Configuración de vista previa",
"description": "Ajustes que controlan la calidad de las vistas previas de grabaciones mostradas en la interfaz.",
"quality": {
"label": "Calidad de vista previa",
"description": "Nivel de calidad de vista previa (very_low, low, medium, high, very_high)."
}
},
"enabled_in_config": {
"label": "Estado de grabación original",
"description": "Indica si la grabación estaba habilitada en la configuración estática original."
}
},
"ui": {
"dashboard": {
"description": "Alterna si esta cámara es visible en toda la interfaz de usuario de Frigate. Desactivar esta opción requerirá editar manualmente la configuración para volver a visualizar esta cámara en la interfaz."
"description": "Alterna si esta cámara es visible en toda la interfaz de usuario de Frigate. Desactivar esta opción requerirá editar manualmente la configuración para volver a visualizar esta cámara en la interfaz.",
"label": "Mostrar en la interfaz"
},
"label": "Interfaz de cámara",
"description": "Orden de visualización y visibilidad de esta cámara en la interfaz. El orden afecta al panel predeterminado. Para un control más granular, usa grupos de cámaras.",
"order": {
"label": "Orden en la interfaz",
"description": "Orden numérico usado para ordenar la cámara en la interfaz (panel predeterminado y listas); los números más altos aparecen más tarde."
},
"review": {
"label": "Mostrar en Revisión",
"description": "Activa o desactiva si esta cámara es visible en Revisión (la página de Revisión y su filtro de cámaras, la revisión de movimiento y la vista de historial)."
}
},
"live": {
"height": {
"description": "Altura (en píxeles) para renderizar la transmisión en vivo de jsmpeg en la interfaz web; debe ser <= a la altura de la transmisión de detección."
"description": "Altura (en píxeles) para renderizar la transmisión en vivo de jsmpeg en la interfaz web; debe ser <= a la altura de la transmisión de detección.",
"label": "Altura en directo"
},
"description": "Configuraciones utilizadas por la interfaz web para controlar la selección, la resolución y la calidad de transmisiónes en vivo."
"description": "Configuraciones utilizadas por la interfaz web para controlar la selección, la resolución y la calidad de transmisiónes en vivo.",
"label": "Reproducción en directo",
"streams": {
"label": "Nombres de flujos en directo",
"description": "Asignación de nombres de flujos configurados a nombres de restream/go2rtc usados para la reproducción en directo."
},
"quality": {
"label": "Calidad en directo",
"description": "Calidad de codificación para el flujo jsmpeg (1 la más alta, 31 la más baja)."
}
},
"review": {
"description": "Configuraciones que controlan las alertas, las detecciones y los resúmenes de revisión de GenAI utilizados por la interfaz de usuario y el almacenamiento de esta cámara.",
"alerts": {
"required_zones": {
"description": "Zonas en las que debe entrar un objeto para ser considerado una alerta; dejar vacío para permitir cualquier zona."
"description": "Zonas en las que debe entrar un objeto para ser considerado una alerta; dejar vacío para permitir cualquier zona.",
"label": "Zonas requeridas"
},
"labels": {
"description": "Lista de etiquetas de objetos que califican como alertas (por ejemplo: car, person)."
"description": "Lista de etiquetas de objetos que califican como alertas (por ejemplo: car, person).",
"label": "Etiquetas de alerta"
},
"label": "Configuración de alertas",
"description": "Ajustes sobre qué objetos rastreados generan alertas y cómo se conservan las alertas.",
"enabled": {
"label": "Habilitar alertas",
"description": "Habilita o deshabilita la generación de alertas para esta cámara."
},
"enabled_in_config": {
"label": "Estado original de alertas",
"description": "Rastrea si las alertas estaban habilitadas originalmente en la configuración estática."
},
"cutoff_time": {
"label": "Tiempo de corte de alertas",
"description": "Segundos que se esperarán tras dejar de haber actividad causante de alerta antes de cortar una alerta."
}
},
"detections": {
"required_zones": {
"description": "Zonas en las que debe entrar un objeto para ser considerado detectado; dejar vacío para permitir cualquier zona."
"description": "Zonas en las que debe entrar un objeto para ser considerado detectado; dejar vacío para permitir cualquier zona.",
"label": "Zonas requeridas"
},
"description": "Configuración para determinar qué objetos rastreados generan detecciones (no alertas) y cómo se retienen dichas detecciones."
"description": "Configuración para determinar qué objetos rastreados generan detecciones (no alertas) y cómo se retienen dichas detecciones.",
"label": "Configuración de detecciones",
"enabled": {
"label": "Habilitar detecciones",
"description": "Habilita o deshabilita los eventos de detección para esta cámara."
},
"labels": {
"label": "Etiquetas de detección",
"description": "Lista de etiquetas de objetos que cuentan como eventos de detección."
},
"cutoff_time": {
"label": "Tiempo de corte de detecciones",
"description": "Segundos que se esperarán tras dejar de haber actividad causante de detección antes de cortar una detección."
},
"enabled_in_config": {
"label": "Estado original de detecciones",
"description": "Rastrea si las detecciones estaban habilitadas originalmente en la configuración estática."
}
},
"genai": {
"image_source": {
"description": "Fuente de las imágenes enviadas a GenAI ('preview' o 'recordings'); La opción 'recordings' utiliza fotogramas de mayor calidad, pero requiere más tokens."
"description": "Fuente de las imágenes enviadas a GenAI ('preview' o 'recordings'); La opción 'recordings' utiliza fotogramas de mayor calidad, pero requiere más tokens.",
"label": "Origen de imagen de revisión"
},
"additional_concerns": {
"description": "Una lista de preocupaciones o notas adicionales que GenAI debería tener en cuenta al evaluar la actividad en esta cámara."
"description": "Una lista de preocupaciones o notas adicionales que GenAI debería tener en cuenta al evaluar la actividad en esta cámara.",
"label": "Consideraciones adicionales"
},
"activity_context_prompt": {
"description": "Instrucción personalizada que describe qué constituye y qué no una actividad sospechosa, con el fin de proporcionar contexto para los resúmenes generados por GenAI."
"description": "Instrucción personalizada que describe qué constituye y qué no una actividad sospechosa, con el fin de proporcionar contexto para los resúmenes generados por GenAI.",
"label": "Prompt de contexto de actividad"
},
"description": "Controla el uso de IA generativa (GenAI) para la elaboración de descripciones y resúmenes de elementos de revisión.",
"debug_save_thumbnails": {
"description": "Guarde las miniaturas que se envían al proveedor de GenAI para su depuración y revisión."
"description": "Guarde las miniaturas que se envían al proveedor de GenAI para su depuración y revisión.",
"label": "Guardar miniaturas"
},
"label": "Configuración de GenAI",
"enabled": {
"label": "Habilitar descripciones de GenAI",
"description": "Habilita o deshabilita las descripciones y resúmenes generados por GenAI para los elementos de revisión."
},
"alerts": {
"label": "Habilitar GenAI para alertas",
"description": "Usa GenAI para generar descripciones de elementos de alerta."
},
"detections": {
"label": "Habilitar GenAI para detecciones",
"description": "Usa GenAI para generar descripciones de elementos de detección."
},
"enabled_in_config": {
"label": "Estado original de GenAI",
"description": "Rastrea si la revisión de GenAI estaba habilitada originalmente en la configuración estática."
},
"preferred_language": {
"label": "Idioma preferido",
"description": "Idioma preferido que se solicitará al proveedor de GenAI para las respuestas generadas."
}
}
},
"label": "Revisión"
},
"birdseye": {
"description": "Configuración para la vista compuesta Birdseye, que combina las transmisiones de múltiples cámaras en una sola vista."
"description": "Configuración para la vista compuesta Birdseye, que combina las transmisiones de múltiples cámaras en una sola vista.",
"label": "Birdseye",
"enabled": {
"label": "Habilitar Birdseye",
"description": "Habilita o deshabilita la función de vista Birdseye."
},
"mode": {
"label": "Modo de seguimiento",
"description": "Modo para incluir cámaras en Birdseye: 'objects', 'motion' o 'continuous'."
},
"order": {
"label": "Posición",
"description": "Posición numérica que controla el orden de la cámara en el diseño de Birdseye."
}
},
"ffmpeg": {
"retry_interval": {
"description": "Segundos de espera antes de intentar reconectar la transmisión de una cámara tras un fallo. El valor predeterminado es 10."
"description": "Segundos de espera antes de intentar reconectar la transmisión de una cámara tras un fallo. El valor predeterminado es 10.",
"label": "Tiempo de reintento de FFmpeg"
},
"path": {
"description": "Ruta al binario de FFmpeg que se va a utilizar o un alias de versión (\"5.0\" o \"7.0\")."
"description": "Ruta al binario de FFmpeg que se va a utilizar o un alias de versión (\"5.0\" o \"7.0\").",
"label": "Ruta de FFmpeg"
},
"output_args": {
"description": "Argumentos de salida predeterminados utilizados para diferentes roles de FFmpeg, tales como detección y grabación."
"description": "Argumentos de salida predeterminados utilizados para diferentes roles de FFmpeg, tales como detección y grabación.",
"label": "Argumentos de salida",
"detect": {
"label": "Argumentos de salida de detección",
"description": "Argumentos de salida predeterminados para los flujos con rol de detección."
},
"record": {
"label": "Argumentos de salida de grabación",
"description": "Argumentos de salida predeterminados para los flujos con rol de grabación."
}
},
"description": "Configuración de FFmpeg, incluyendo la ruta del binario, argumentos, opciones de aceleración por hardware y argumentos de salida por rol."
"description": "Configuración de FFmpeg, incluyendo la ruta del binario, argumentos, opciones de aceleración por hardware y argumentos de salida por rol.",
"label": "FFmpeg",
"global_args": {
"label": "Argumentos globales de FFmpeg",
"description": "Argumentos globales pasados a los procesos de FFmpeg."
},
"hwaccel_args": {
"label": "Argumentos de aceleración por hardware",
"description": "Argumentos de aceleración por hardware para FFmpeg. Se recomiendan preajustes específicos del proveedor."
},
"input_args": {
"label": "Argumentos de entrada",
"description": "Argumentos de entrada aplicados a los flujos de entrada de FFmpeg."
},
"apple_compatibility": {
"label": "Compatibilidad con Apple",
"description": "Habilita el etiquetado HEVC para mejorar la compatibilidad con reproductores de Apple al grabar H.265."
},
"gpu": {
"label": "Índice de GPU",
"description": "Índice de GPU predeterminado usado para la aceleración por hardware si está disponible."
},
"inputs": {
"label": "Entradas de cámara",
"description": "Lista de definiciones de flujos de entrada (rutas y roles) para esta cámara.",
"path": {
"label": "Ruta de entrada",
"description": "URL o ruta del flujo de entrada de la cámara."
},
"roles": {
"label": "Roles de entrada",
"description": "Roles para este flujo de entrada."
},
"global_args": {
"label": "Argumentos globales de FFmpeg",
"description": "Argumentos globales de FFmpeg para este flujo de entrada."
},
"hwaccel_args": {
"label": "Argumentos de aceleración por hardware",
"description": "Argumentos de aceleración por hardware para este flujo de entrada."
},
"input_args": {
"label": "Argumentos de entrada",
"description": "Argumentos de entrada específicos para este flujo."
}
}
},
"face_recognition": {
"label": "Reconocimiento facial",
"description": "Ajustes de detección y reconocimiento facial para esta cámara.",
"enabled": {
"label": "Habilitar reconocimiento facial",
"description": "Habilita o deshabilita el reconocimiento facial."
},
"min_area": {
"label": "Área mínima de rostro",
"description": "Área mínima (píxeles) del cuadro de un rostro detectado necesaria para intentar el reconocimiento."
}
},
"semantic_search": {
"label": "Búsqueda semántica",
"description": "Ajustes de búsqueda semántica, que crea y consulta embeddings de objetos para encontrar elementos similares.",
"triggers": {
"label": "Activadores",
"description": "Acciones y criterios de coincidencia para activadores de búsqueda semántica específicos de la cámara.",
"friendly_name": {
"label": "Nombre descriptivo",
"description": "Nombre descriptivo opcional mostrado en la interfaz para este activador."
},
"enabled": {
"label": "Habilitar este activador",
"description": "Habilita o deshabilita este activador de búsqueda semántica."
},
"type": {
"label": "Tipo de activador",
"description": "Tipo de activador: 'thumbnail' (coincidir con imagen) o 'description' (coincidir con texto)."
},
"data": {
"label": "Contenido del activador",
"description": "Frase de texto o ID de miniatura que se comparará con objetos rastreados."
},
"threshold": {
"label": "Umbral del activador",
"description": "Puntuación mínima de similitud (0-1) necesaria para activar este activador."
},
"actions": {
"label": "Acciones del activador",
"description": "Lista de acciones que se ejecutarán cuando el activador coincida (notification, sub_label, attribute)."
}
}
},
"snapshots": {
"label": "Instantáneas",
"description": "Ajustes de instantáneas generadas por la API de objetos rastreados para esta cámara.",
"enabled": {
"label": "Habilitar instantáneas",
"description": "Habilita o deshabilita el guardado de instantáneas para esta cámara."
},
"timestamp": {
"label": "Superposición de marca de tiempo",
"description": "Superpone una marca de tiempo en las instantáneas de la API."
},
"bounding_box": {
"label": "Superposición de cuadro delimitador",
"description": "Dibuja cuadros delimitadores para los objetos rastreados en las instantáneas de la API."
},
"crop": {
"label": "Recortar instantánea",
"description": "Recorta las instantáneas de la API al cuadro delimitador del objeto detectado."
},
"required_zones": {
"label": "Zonas requeridas",
"description": "Zonas en las que debe entrar un objeto para que se guarde una instantánea."
},
"height": {
"label": "Altura de instantánea",
"description": "Altura (píxeles) a la que redimensionar las instantáneas de la API; déjalo vacío para conservar el tamaño original."
},
"retain": {
"label": "Retención de instantáneas",
"description": "Ajustes de retención de instantáneas, incluidos días predeterminados y sobrescrituras por objeto.",
"default": {
"label": "Retención predeterminada",
"description": "Número predeterminado de días durante los que conservar instantáneas."
},
"mode": {
"label": "Modo de retención",
"description": "Modo de retención: all (guarda todos los segmentos), motion (guarda segmentos con movimiento) o active_objects (guarda segmentos con objetos activos)."
},
"objects": {
"label": "Retención por objeto",
"description": "Sobrescrituras por objeto para los días de retención de instantáneas."
}
},
"quality": {
"label": "Calidad de instantánea",
"description": "Calidad de codificación de las instantáneas guardadas (0-100)."
}
},
"timestamp_style": {
"label": "Estilo de marca de tiempo",
"description": "Opciones de estilo para las marcas de tiempo aplicadas a las instantáneas y a la vista de depuración.",
"position": {
"label": "Posición de marca de tiempo",
"description": "Posición de la marca de tiempo en la imagen (tl/tr/bl/br)."
},
"format": {
"label": "Formato de marca de tiempo",
"description": "Cadena de formato de fecha y hora usada para las marcas de tiempo (códigos de formato datetime de Python)."
},
"color": {
"label": "Color de marca de tiempo",
"description": "Valores de color RGB para el texto de la marca de tiempo (todos los valores 0-255).",
"red": {
"label": "Rojo",
"description": "Componente rojo (0-255) para el color de la marca de tiempo."
},
"green": {
"label": "Verde",
"description": "Componente verde (0-255) para el color de la marca de tiempo."
},
"blue": {
"label": "Azul",
"description": "Componente azul (0-255) para el color de la marca de tiempo."
}
},
"thickness": {
"label": "Grosor de marca de tiempo",
"description": "Grosor de línea del texto de la marca de tiempo."
},
"effect": {
"label": "Efecto de marca de tiempo",
"description": "Efecto visual para el texto de la marca de tiempo (none, solid, shadow)."
}
},
"best_image_timeout": {
"label": "Tiempo de espera de mejor imagen",
"description": "Tiempo que se esperará la imagen con la puntuación de confianza más alta."
},
"type": {
"label": "Tipo de cámara",
"description": "Tipo de cámara"
},
"webui_url": {
"label": "URL de la cámara",
"description": "URL para visitar la cámara directamente desde la página del sistema"
},
"profiles": {
"label": "Perfiles",
"description": "Perfiles de configuración con nombre y sobrescrituras parciales que pueden activarse en tiempo de ejecución."
},
"enabled_in_config": {
"label": "Estado original de cámara",
"description": "Mantiene el registro del estado original de la cámara."
}
}
File diff suppressed because it is too large Load Diff
@@ -28,5 +28,8 @@
"header_map": {
"roleHeaderRequired": "Se requiere el encabezado de rol cuando hay mapeos de roles configurados."
}
},
"detect": {
"dimensionMustBeEven": "Debe ser un número par."
}
}
+11 -1
View File
@@ -116,5 +116,15 @@
"animal": "Animal",
"postnord": "PostNord",
"usps": "USPS",
"gls": "GLS"
"gls": "GLS",
"canada_post": "Canada Post",
"royal_mail": "Royal Mail",
"school_bus": "Autobús escolar",
"skunk": "Mofeta",
"kangaroo": "Canguro",
"baby": "Bebé",
"baby_stroller": "Cochecito de bebé",
"rickshaw": "Rickshaw",
"Rodent": "Roedor",
"rodent": "Roedor"
}
+72 -1
View File
@@ -1 +1,72 @@
{}
{
"documentTitle": "Chat - Frigate",
"title": "Frigate Chat",
"subtitle": "Tu asistente de IA para la gestión de cámaras y análisis",
"placeholder": "Pregunta cualquier cosa...",
"error": "Algo salió mal. Por favor, inténtalo de nuevo.",
"processing": "Procesando...",
"toolsUsed": "Usado: {{tools}}",
"showTools": "Mostrar herramientas ({{count}})",
"hideTools": "Ocultar herramientas",
"call": "Llamar",
"result": "Resultado",
"arguments": "Argumentos:",
"response": "Respuesta:",
"attachment_chip_label": "{{label}} en {{camera}}",
"attachment_chip_remove": "Eliminar adjunto",
"open_in_explore": "Abrir en Explorar",
"attach_event_aria": "Adjuntar evento {{eventId}}",
"attachment_picker_paste_label": "O pega el ID del evento",
"attachment_picker_attach": "Adjuntar",
"attachment_picker_placeholder": "Adjuntar un evento",
"quick_reply_find_similar": "Buscar avistamientos similares",
"quick_reply_tell_me_more": "Cuéntame más sobre esto",
"quick_reply_when_else": "¿Cuándo más se vio?",
"quick_reply_find_similar_text": "Buscar avistamientos similares a este.",
"quick_reply_tell_me_more_text": "Cuéntame más sobre este.",
"quick_reply_when_else_text": "¿Cuándo más se vio esto?",
"anchor": "Referencia",
"similarity_score": "Similitud",
"no_similar_objects_found": "No se encontraron objetos similares.",
"semantic_search_required": "La búsqueda semántica debe estar activada para encontrar objetos similares.",
"send": "Enviar",
"suggested_requests": "Prueba preguntando:",
"starting_requests": {
"show_recent_events": "Mostrar eventos recientes",
"show_camera_status": "Mostrar estado de la cámara",
"recap": "¿Qué ha pasado mientras estaba fuera?",
"watch_camera": "Vigilar una cámara en busca de actividad"
},
"starting_requests_prompts": {
"show_recent_events": "Muéstrame los eventos recientes de la última hora",
"show_camera_status": "¿Cuál es el estado actual de mis cámaras?",
"recap": "¿Qué ha pasado mientras estaba fuera?",
"watch_camera": "Vigila la puerta principal y avísame si aparece alguien"
},
"new_chat": "Nuevo chat",
"settings": {
"title": "Ajustes del chat",
"show_stats": {
"title": "Mostrar estadísticas",
"desc": "Mostrar la velocidad de generación y el tamaño del contexto en las respuestas del chat.",
"while_generating": "Durante la generación",
"always": "Siempre"
},
"auto_scroll": {
"title": "Desplazamiento automático",
"desc": "Seguir los mensajes nuevos a medida que llegan."
}
},
"stats": {
"context": "{{tokens}} tokens",
"tokens_per_second": "{{rate}} t/s"
},
"reasoning": {
"active": "Razonando…",
"show": "Mostrar razonamiento",
"hide": "Ocultar razonamiento"
},
"thinking": {
"toggle": "Alternar razonamiento"
}
}
@@ -36,14 +36,14 @@
"trainingFailed": "El entrenamiento del modelo ha fallado. Revisa los registros de Frigate para más detalles.",
"updateModelFailed": "Fallo al actualizar modelo: {{errorMessage}}",
"trainingFailedToStart": "No se pudo iniciar el entrenamiento del modelo: {{errorMessage}}",
"renameCategoryFailed": "Falló el renombrado de la clase: {{errorMessage}}",
"renameCategoryFailed": "Fallo al renombrar la clase:{{errorMessage}}",
"reclassifyFailed": "Error al reclasificar la imagen: {{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.",
"minClassesTitle": "No se puede Borrar la Clase",
"minClassesTitle": "No se puede borrar la clase",
"minClassesDesc": "Un modelo de clasificación debe tener al menos 2 clases. Añade otra clase antes de borrar esta."
},
"deleteModel": {
@@ -66,7 +66,7 @@
"noNewImages": "No hay imágenes nuevas para entrenar. Clasifica antes más imágenes del conjunto de datos."
},
"details": {
"scoreInfo": "La puntuación representa la confianza media de clasificación en todas las detecciones de este objeto.",
"scoreInfo": "La puntuación representa la confianza promedio de la clasificación en todas las detecciones de este objeto.",
"unknown": "Desconocido",
"none": "Ninguno"
},
@@ -146,7 +146,7 @@
"generateSuccess": "Imágenes de ejemplo generadas correctamente",
"missingStatesWarning": {
"title": "Faltan Ejemplos de Estado",
"description": "Se recomienda seleccionar ejemplos para todos los estados para obtener mejores resultados. Puede continuar sin seleccionar todos los estados, pero el modelo no se entrenará hasta que todos los estados tengan imágenes. Después de continuar, use la vista \"Clasificaciones recientes\" para clasificar las imágenes de los estados faltantes y luego entrene el modelo."
"description": "No todas las clases tienen ejemplos. Prueba a generar nuevos ejemplos para encontrar la clase que falta, o continúa y usa la vista de Clasificaciones recientes para añadir imágenes más tarde."
},
"allImagesRequired_one": "Por favor clasifique todas las imágenes. Queda {{count}} imagen.",
"allImagesRequired_many": "Por favor clasifique todas las imágenes. Quedan {{count}} imágenes.",
@@ -166,7 +166,7 @@
"desc_other": "¿Está seguro de que quiere eliminar {{count}} imágenes de {{dataset}}? Esta acción no puede ser deshecha y requerirá reentrenar el modelo."
},
"deleteTrainImages": {
"title": "Borrar Imágenes de Entrenamiento",
"title": "Borrar imágenes de entrenamiento",
"desc_one": "¿Está seguro de que quiere eliminar {{count}} imagen? Esta acción no puede ser deshecha.",
"desc_many": "¿Está seguro de que quiere eliminar {{count}} imágenes? Esta acción no puede ser deshecha.",
"desc_other": "¿Está seguro de que quiere eliminar {{count}} imágenes? Esta acción no puede ser deshecha."
@@ -14,5 +14,5 @@
"documentTitle": "Editor de Configuración - Frigate",
"confirm": "¿Salir sin guardar?",
"safeConfigEditor": "Editor de Configuración (Modo Seguro)",
"safeModeDescription": "Frigate esta en modo seguro debido a un error en la validación de la configuración."
"safeModeDescription": "Frigate se encuentra en modo seguro debido a un error de validación en la configuración."
}
+27 -2
View File
@@ -32,7 +32,9 @@
},
"camera": "Cámara",
"recordings": {
"documentTitle": "Grabaciones - Frigate"
"documentTitle": "Grabaciones - Frigate",
"invalidSharedLink": "No se puede abrir el enlace de la grabación con marca de tiempo debido a un error de análisis.",
"invalidSharedCamera": "No se puede abrir el enlace de la grabación con marca de tiempo debido a una cámara desconocida o no autorizada."
},
"calendarFilter": {
"last24Hours": "Últimas 24 horas"
@@ -66,5 +68,28 @@
"select_all": "Todas",
"normalActivity": "Normal",
"needsReview": "Necesita revisión",
"securityConcern": "Aviso de seguridad"
"securityConcern": "Aviso de seguridad",
"motionSearch": {
"menuItem": "Búsqueda de movimiento",
"openMenu": "Opciones de cámara"
},
"motionPreviews": {
"menuItem": "Ver vistas previas de movimiento",
"title": "Vistas previas de movimiento: {{camera}}",
"mobileSettingsTitle": "Ajustes de vistas previas de movimiento",
"mobileSettingsDesc": "Ajusta la velocidad de reproducción y el atenuado, y elige una fecha para revisar clips solo de movimiento.",
"dim": "Atenuar",
"dimAria": "Ajustar intensidad de atenuado",
"dimDesc": "Aumenta el atenuado para mejorar la visibilidad de las áreas con movimiento.",
"speed": "Velocidad",
"speedAria": "Seleccionar velocidad de reproducción de las vistas previas",
"speedDesc": "Elige la velocidad a la que se reproducen los clips de vista previa.",
"back": "Atrás",
"empty": "No hay vistas previas disponibles",
"noPreview": "Vista previa no disponible",
"seekAria": "Mover el reproductor de {{camera}} a {{time}}",
"filter": "Filtrar",
"filterDesc": "Selecciona áreas para mostrar solo clips con movimiento en esas regiones.",
"filterClear": "Limpiar"
}
}
+11 -4
View File
@@ -208,7 +208,7 @@
},
"addTrigger": {
"label": "Añadir disparador",
"aria": "Añadir disparador para el objeto seguido"
"aria": "Añadir disparador para este objeto rastreado"
},
"downloadCleanSnapshot": {
"label": "Descargue instantánea limpia",
@@ -226,6 +226,10 @@
},
"more": {
"aria": "Más"
},
"debugReplay": {
"label": "Reproducción de depuración",
"aria": "Ver este objeto rastreado en la reproducción de depuración"
}
},
"dialog": {
@@ -269,8 +273,8 @@
"count": "{{first}} de {{second}}",
"lifecycleItemDesc": {
"visible": "{{label}} detectado",
"active": "{{label}} ha sido activado/a",
"stationary": "{{label}} se volvió estacionaria",
"active": "{{label}} está activo",
"stationary": "{{label}} se volvió estacionario",
"attribute": {
"faceOrLicense_plate": "{{attribute}} detectado para {{label}}",
"other": "{{label}} reconocido como {{attribute}}"
@@ -282,7 +286,10 @@
"zones": "Zonas",
"area": "Área",
"score": "Puntuación",
"ratio": "Ratio(proporción)"
"ratio": "Ratio(proporción)",
"computedScore": "Puntuación calculada",
"topScore": "Puntuación más alta",
"toggleAdvancedScores": "Alternar puntuaciones avanzadas"
},
"entered_zone": "{{label}} ha entrado en {{zones}}"
},
+86 -5
View File
@@ -13,7 +13,9 @@
"toast": {
"error": {
"renameExportFailed": "No se pudo renombrar la exportación: {{errorMessage}}",
"assignCaseFailed": "Fallo en la actualización de la asignación de caso: {{errorMessage}}"
"assignCaseFailed": "No se pudo actualizar la asignación al caso: {{errorMessage}}",
"caseSaveFailed": "No se pudo guardar el caso: {{errorMessage}}",
"caseDeleteFailed": "No se pudo eliminar el caso: {{errorMessage}}"
}
},
"deleteExport.desc": "¿Estás seguro de que quieres eliminar {{exportName}}?",
@@ -23,11 +25,11 @@
"editName": "Editar nombre",
"deleteExport": "Eliminar exportación",
"assignToCase": "Añadir al caso",
"removeFromCase": "Remover del contenedor"
"removeFromCase": "Eliminar del caso"
},
"headings": {
"cases": "Casos",
"uncategorizedExports": "Exportaciones sin Categorizar"
"uncategorizedExports": "Exportaciones sin categorización"
},
"caseDialog": {
"title": "Añadir al caso",
@@ -38,10 +40,89 @@
"descriptionLabel": "Descripción"
},
"toolbar": {
"addExport": "Añadir Exportación"
"addExport": "Agregar exportación",
"newCase": "Nuevo caso",
"editCase": "Editar caso",
"deleteCase": "Eliminar caso"
},
"deleteCase": {
"label": "Eliminar caso",
"desc": "¿Estás seguro de que quieres eliminar {{caseName}}?"
"desc": "¿Estás seguro de que quieres eliminar {{caseName}}?",
"descKeepExports": "Las exportaciones seguirán disponibles como exportaciones sin categoría.",
"descDeleteExports": "Todas las exportaciones de este caso se eliminarán de forma permanente.",
"deleteExports": "Eliminar también las exportaciones"
},
"caseCard": {
"emptyCase": "Aún no hay exportaciones"
},
"jobCard": {
"defaultName": "Exportación de {{camera}}",
"queued": "En cola",
"running": "En ejecución",
"preparing": "Preparando",
"copying": "Copiando",
"encoding": "Codificando",
"encodingRetry": "Codificando (reintento)",
"finalizing": "Finalizando"
},
"caseView": {
"noDescription": "Sin descripción",
"createdAt": "Creado {{value}}",
"exportCount_one": "1 exportación",
"exportCount_other": "{{count}} exportaciones",
"cameraCount_one": "1 cámara",
"cameraCount_other": "{{count}} cámaras",
"showMore": "Mostrar más",
"showLess": "Mostrar menos",
"emptyTitle": "Este caso está vacío",
"emptyDescription": "Añade exportaciones existentes sin categorizar para mantener el caso organizado.",
"emptyDescriptionNoExports": "Todavía no hay exportaciones sin categorizar disponibles para añadir."
},
"caseEditor": {
"createTitle": "Crear caso",
"editTitle": "Editar caso",
"namePlaceholder": "Nombre del caso",
"descriptionPlaceholder": "Añade notas o contexto para este caso"
},
"addExportDialog": {
"title": "Añadir exportación a {{caseName}}",
"searchPlaceholder": "Buscar exportaciones sin categorizar",
"empty": "Ninguna exportación sin categorizar coincide con esta búsqueda.",
"addButton_one": "Añadir 1 exportación",
"addButton_other": "Añadir {{count}} exportaciones",
"adding": "Añadiendo..."
},
"selected_one": "{{count}} seleccionados",
"selected_other": "{{count}} seleccionados",
"bulkActions": {
"addToCase": "Añadir al caso",
"moveToCase": "Mover al caso",
"removeFromCase": "Eliminar del caso",
"delete": "Eliminar",
"deleteNow": "Eliminar ahora"
},
"bulkDelete": {
"title": "Eliminar exportaciones",
"desc_one": "¿Seguro que quieres eliminar {{count}} exportación?",
"desc_other": "¿Seguro que quieres eliminar {{count}} exportaciones?"
},
"bulkRemoveFromCase": {
"title": "Eliminar del caso",
"desc_one": "¿Eliminar {{count}} exportación de este caso?",
"desc_other": "¿Eliminar {{count}} exportaciones de este caso?",
"descKeepExports": "Las exportaciones se moverán a sin categorizar.",
"descDeleteExports": "Las exportaciones se eliminarán permanentemente.",
"deleteExports": "Eliminar exportaciones en su lugar"
},
"bulkToast": {
"success": {
"delete": "Exportaciones eliminadas correctamente",
"reassign": "Asignación de caso actualizada correctamente",
"remove": "Exportaciones eliminadas del caso correctamente"
},
"error": {
"deleteFailed": "No se pudieron eliminar las exportaciones: {{errorMessage}}",
"reassignFailed": "No se pudo actualizar la asignación del caso: {{errorMessage}}"
}
}
}
+5 -1
View File
@@ -30,7 +30,11 @@
"title": "Reconocimientos Recientes",
"aria": "Seleccionar reconocimientos recientes",
"empty": "No hay intentos recientes de reconocimiento facial",
"titleShort": "Reciente"
"titleShort": "Reciente",
"emptyNoLibrary": {
"title": "Subir una cara",
"description": "Debes añadir al menos una cara a la biblioteca para que el reconocimiento facial funcione."
}
},
"selectItem": "Seleccionar {{item}}",
"selectFace": "Seleccionar rostro",
+7 -3
View File
@@ -57,7 +57,9 @@
},
"camera": {
"enable": "Habilitar cámara",
"disable": "Deshabilitar cámara"
"disable": "Deshabilitar cámara",
"turnOn": "Encender cámara",
"turnOff": "Apagar cámara"
},
"muteCameras": {
"enable": "Silenciar todas las cámaras",
@@ -69,7 +71,8 @@
},
"recording": {
"enable": "Habilitar grabación",
"disable": "Deshabilitar grabación"
"disable": "Deshabilitar grabación",
"disabledInConfig": "La grabación debe activarse primero en Ajustes para esta cámara."
},
"snapshots": {
"enable": "Habilitar capturas de pantalla",
@@ -150,7 +153,8 @@
"snapshots": "Capturas de pantalla",
"autotracking": "Seguimiento automático",
"cameraEnabled": "Cámara habilitada",
"transcription": "Transcripción de Audio"
"transcription": "Transcripción de Audio",
"camera": "Cámara"
},
"history": {
"label": "Mostrar grabaciones históricas"
+82 -1
View File
@@ -1 +1,82 @@
{}
{
"documentTitle": "Búsqueda por movimiento - Frigate",
"title": "Búsqueda por movimiento",
"description": "Dibuja un polígono para definir la región de interés y especifica un intervalo de tiempo para buscar cambios de movimiento dentro de esa región.",
"selectCamera": "Búsqueda por movimiento se está cargando",
"startSearch": "Iniciar búsqueda",
"searchStarted": "Búsqueda iniciada",
"searchCancelled": "Búsqueda cancelada",
"cancelSearch": "Cancelar",
"searching": "Búsqueda en progreso.",
"searchComplete": "Búsqueda completada",
"noResultsYet": "Ejecuta una búsqueda para encontrar cambios de movimiento en la región seleccionada",
"noChangesFound": "No se detectaron cambios de píxeles en la región seleccionada",
"changesFound_one": "Encontrado {{count}} cambio de movimiento",
"changesFound_many": "Encontrados {{count}} cambios de movimiento",
"changesFound_other": "Encontrados {{count}} cambios de movimiento",
"framesProcessed": "{{count}} fotogramas procesados",
"jumpToTime": "Saltar a este tiempo",
"results": "Resultados",
"showSegmentHeatmap": "Mapa de calor",
"newSearch": "Nueva búsqueda",
"clearResults": "Borrar resultados",
"clearROI": "Borrar polígono",
"polygonControls": {
"points_one": "{{count}} punto",
"points_many": "{{count}} puntos",
"points_other": "{{count}} puntos",
"undo": "Deshacer el último punto",
"reset": "Restablecer polígono",
"drawMode": "Dibujar",
"moveMode": "Mover"
},
"motionHeatmapLabel": "Mapa de calor de movimiento",
"dialog": {
"title": "Búsqueda de movimiento",
"cameraLabel": "Cámara",
"previewAlt": "Vista previa de la cámara {{camera}}"
},
"timeRange": {
"title": "Rango de búsqueda",
"start": "Hora de inicio",
"end": "Hora de finalización"
},
"settings": {
"title": "Ajustes de búsqueda",
"parallelMode": "Modo paralelo",
"parallelModeDesc": "Analiza varios intervalos de grabación al mismo tiempo (más rápido, pero utiliza más recursos de decodificación)",
"threshold": "Umbral de sensibilidad",
"thresholdDesc": "Los valores más bajos detectan cambios más pequeños (1-255)",
"minArea": "Área mínima de cambio",
"minAreaDesc": "Tamaño mínimo de una única región en movimiento, expresado como porcentaje de la región de interés",
"frameSkip": "Salto de fotogramas",
"frameSkipDesc": "Procesa cada N fotogramas. Establécelo según la tasa de FPS de tu cámara para procesar un fotograma por segundo (p. ej., 5 para una cámara de 5 FPS, 30 para una cámara de 30 FPS). Los valores más altos serán más rápidos, pero pueden omitir eventos de movimiento breves.",
"maxResults": "Resultados máximos",
"maxResultsDesc": "Detener después de esta cantidad de marcas de tiempo coincidentes"
},
"errors": {
"noCamera": "Selecciona una cámara",
"noROI": "Dibuja una región de interés",
"noTimeRange": "Selecciona un rango de tiempo",
"invalidTimeRange": "La hora de fin debe ser posterior a la hora de inicio",
"searchFailed": "La búsqueda falló: {{message}}",
"polygonTooSmall": "El polígono debe tener al menos 3 puntos",
"unknown": "Error desconocido"
},
"changePercentage": "{{percentage}}% cambiado",
"metrics": {
"title": "Métricas de búsqueda",
"segmentsScanned": "Segmentos analizados",
"segmentsProcessed": "Procesado",
"segmentsSkippedInactive": "Omitido (sin actividad)",
"segmentsSkippedHeatmap": "Omitido (sin superposición de ROI)",
"fallbackFullRange": "Análisis completo de respaldo",
"framesDecoded": "Fotogramas decodificados",
"wallTime": "Tiempo de búsqueda",
"segmentErrors": "Errores de segmento",
"seconds": "{{seconds}} s",
"minutesSeconds": "{{minutes}}m {{seconds}}s",
"scanSummary": "{{segments}} segmentos · {{time}}"
},
"scanning": "Escaneando {{time}}"
}
+59 -1
View File
@@ -1 +1,59 @@
{}
{
"title": "Depuración de reproducción",
"description": "Reproducir grabaciones de cámara para depuración. La lista de objetos muestra un resumen con retraso temporal de los objetos detectados y la pestaña Mensajes muestra un flujo de los mensajes internos de Frigate de la grabación reproducida.",
"websocket_messages": "Mensajes",
"dialog": {
"title": "Iniciar depuración de reproducción",
"description": "Crea una cámara de reproducción temporal que reproduzca en bucle imágenes históricas para depurar problemas de detección y seguimiento de objetos. La cámara de reproducción tendrá la misma configuración de detección que la cámara de origen. Elige un intervalo de tiempo para comenzar.",
"camera": "Cámara de origen",
"timeRange": "Intervalo de tiempo",
"preset": {
"1m": "Último 1 minuto",
"5m": "Últimos 5 minutos",
"timeline": "Desde la línea de tiempo",
"custom": "Personalizado"
},
"startButton": "Iniciar reproducción",
"selectFromTimeline": "Seleccionar",
"starting": "Iniciando reproducción...",
"startLabel": "Iniciar",
"endLabel": "Fin",
"toast": {
"error": "No se pudo iniciar la reproducción de depuración: {{error}}",
"alreadyActive": "Ya hay una sesión de reproducción activa",
"stopError": "No se pudo detener la reproducción de depuración: {{error}}",
"goToReplay": "Ir a la reproducción"
}
},
"page": {
"noSession": "No hay ninguna sesión activa de reproducción de depuración",
"noSessionDesc": "Inicia una reproducción de depuración desde la vista Historial haciendo clic en el botón Acciones de la barra de herramientas y seleccionando Reproducción de depuración.",
"goToRecordings": "Ir al historial",
"preparingClip": "Preparando clip…",
"preparingClipDesc": "Frigate está uniendo las grabaciones del intervalo de tiempo seleccionado. Esto puede tardar un minuto en intervalos más largos.",
"startingCamera": "Iniciando reproducción de depuración…",
"startError": {
"title": "No se pudo iniciar la reproducción de depuración",
"back": "Volver al historial"
},
"sourceCamera": "Cámara de origen",
"replayCamera": "Cámara de reproducción",
"initializingReplay": "Inicializando reproducción de depuración…",
"stoppingReplay": "Deteniendo repetición de depuración...",
"stopReplay": "Detener repetición",
"confirmStop": {
"title": "¿Detener repetición de depuración?",
"description": "Esto detendrá la sesión y eliminará todos los datos temporales. ¿Estás seguro?",
"confirm": "Detener repetición",
"cancel": "Cancelar"
},
"activity": "Actividad",
"objects": "Lista de objetos",
"audioDetections": "Detecciones de audio",
"noActivity": "No se detectó actividad",
"activeTracking": "Seguimiento activo",
"noActiveTracking": "No hay seguimiento activo",
"configuration": "Configuración",
"configurationDesc": "Ajusta con precisión la detección de movimiento y los ajustes de seguimiento de objetos para la cámara de repetición de depuración. No se guardará ningún cambio en el archivo de configuración de Frigate."
}
}
File diff suppressed because it is too large Load Diff
+7 -1
View File
@@ -55,7 +55,10 @@
},
"count_other": "{{count}} mensajes",
"count_one": "{{count}} mensaje",
"empty": "No se han capturado mensaje aún"
"empty": "No se han capturado mensaje aún",
"expanded": {
"payload": "Carga útil"
}
}
},
"title": "Sistema",
@@ -209,6 +212,9 @@
"unusable": "No usable",
"fair": "Normal",
"stallsLastHour": "Bloqueos (última hora)"
},
"noCameras": {
"title": "No se han encontrado cámaras"
}
},
"lastRefreshed": "Última actualización: ",
+7 -2
View File
@@ -140,7 +140,9 @@
"gl": "Galego (galeegi keel)",
"id": "Bahasa Indonesia (indoneesia keel)",
"ur": "اردو (urdu keel)",
"hr": "Hrvatski (horvaadi keel)"
"hr": "Hrvatski (horvaadi keel)",
"bs": "Bosanski (bosnia keel)",
"zhHant": "繁體中文 (hiina keel traditsiooniliste hieroglüüfidega)"
},
"system": "Süsteem",
"systemMetrics": "Süsteemi meetrika",
@@ -315,5 +317,8 @@
"pixels": "{{area}} px"
},
"no_items": "Objekte pole",
"validation_errors": "Valideerimise vead"
"validation_errors": "Valideerimise vead",
"credentialField": {
"savedPlaceholder": "Salvestatud - senise kasutamiseks jäta tühjaks"
}
}
+4 -1
View File
@@ -67,7 +67,10 @@
"desc": "Vali kaamerad selle grupi jaoks."
},
"icon": "Ikoon",
"success": "Kaameragrupp ({{name}}) on salvestatud."
"success": "Kaameragrupp ({{name}}) on salvestatud.",
"showAll": "Näita kõiki kaameragruppe",
"showLess": "Näita vähem",
"editGroups": "Muuda kaameragruppe"
},
"debug": {
"options": {
+2 -1
View File
@@ -48,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "Kaadri saatmine Frigate+ teenusesse ei õnnestunud"
}
}
},
"cameraOff": "Kaamera on lülitatud välja"
}
+17
View File
@@ -18,5 +18,22 @@
"mode": {
"label": "Jälgimisrežiim"
}
},
"label": "Kaameraseadistus",
"semantic_search": {
"triggers": {
"threshold": {
"description": "Minimaalne sarnasuse punktiskoor (0-1), mis on vajalik selle päästiku käivitamiseks."
}
}
},
"lpr": {
"label": "Sõidukite numbrimärkide tuvastus",
"description": "Sõidukite numbrimärkide tuvastuse seadistus sisaldab tuvastuse lävendeid, vormindust ja teadaolevaid numbrimärke."
},
"review": {
"genai": {
"description": "Kontrollib generatiivse tehisaru kasutamist kirjelduste ja kokkuvõtete koostamiseks ülevaatamisele kuuluvate objektide jaoks."
}
}
}
+46
View File
@@ -6,5 +6,51 @@
"mode": {
"label": "Jälgimisrežiim"
}
},
"version": {
"label": "Praegune seadistuse versioon",
"description": "Aktiivse seadistuse numbriline või tekstiline versioon, mis aitab tuvastada vormingumuudatusi."
},
"classification": {
"bird": {
"threshold": {
"label": "Minimaalne punktiskoor",
"description": "Objekti määratlemiseks linnina vajalik mlassifitseerimise minimaalne punktiskoor."
}
},
"custom": {
"threshold": {
"label": "Punktiskoori lävend",
"description": "Punktiskoori lävend, mida kasutatakse klassifitseerimise oleku muutmiseks."
}
}
},
"semantic_search": {
"triggers": {
"threshold": {
"description": "Minimaalne sarnasuse punktiskoor (0-1), mis on vajalik selle päästiku käivitamiseks."
}
}
},
"face_recognition": {
"unknown_score": {
"label": "Tundmatu punktiskoori lävend"
}
},
"lpr": {
"label": "Sõidukite numbrimärkide tuvastus",
"description": "Sõidukite numbrimärkide tuvastuse seadistus sisaldab tuvastuse lävendeid, vormindust ja teadaolevaid numbrimärke.",
"enabled": {
"description": "Lülita sõidukite numbrimärkide tuvastus kõikide kaamerate jaoks sisse; seda saad kaamerakohaselt ka sürjutada."
}
},
"genai": {
"label": "Generatiivse tehisaru seadistus",
"description": "Seadistsued generatiivse tehisaru teenusepakkujate kasutamisel kirjelduste ja kokkuvõtete loomiseks ülevaatamisele kuuluvate objektide jaoks."
},
"review": {
"genai": {
"description": "Kontrollib generatiivse tehisaru kasutamist kirjelduste ja kokkuvõtete koostamiseks ülevaatamisele kuuluvate objektide jaoks."
}
}
}
@@ -28,5 +28,8 @@
"detectRequired": "„Tuvasta“ rollile pead määrama vähemalt ühe sisendvoo.",
"hwaccelDetectOnly": "Vaid „Tuvasta“ rolliga sisendvoog võib määratleda raudvaralise kiirenduse argumente."
}
},
"detect": {
"dimensionMustBeEven": "Peab olema paarisarv."
}
}
+6 -1
View File
@@ -121,5 +121,10 @@
"royal_mail": "Royal Mail",
"school_bus": "Koolibuss",
"skunk": "Vinukloom (skunk)",
"kangaroo": "Känguru"
"kangaroo": "Känguru",
"baby": "Väikelaps",
"baby_stroller": "Lapsevanker",
"rickshaw": "Rikša",
"Rodent": "Näriline",
"rodent": "Näriline"
}
+2 -1
View File
@@ -5,5 +5,6 @@
"placeholder": "Küsi mida iganes…",
"error": "Midagi läks valesti. Palun proovi uuesti.",
"processing": "Töötlen…",
"toolsUsed": "Kasutatud: {{tools}}"
"toolsUsed": "Kasutatud: {{tools}}",
"similarity_score": "Sarnasus"
}
@@ -7,7 +7,7 @@
},
"documentTitle": "Klassifitseerimise mudelid - Frigate",
"details": {
"scoreInfo": "Skoor näitab selle objekti kõigi tuvastuste keskmist klassifitseerimise usaldusväärsust.",
"scoreInfo": "Punktiskoor näitab selle objekti kõigi tuvastuste keskmist klassifitseerimise usaldusväärsust.",
"none": "Puudub",
"unknown": "Pole teada"
},
+27 -4
View File
@@ -35,7 +35,9 @@
"zones": "Tsoonid",
"ratio": "Suhtarv",
"area": "Ala",
"score": "Punktiskoor"
"score": "Punktiskoor",
"computedScore": "Arvutatud punktiskoor",
"topScore": "Suuremad punktiskoorid"
},
"external": "{{label}} on tuvastatud",
"heard": "{{label}} on kuuldud",
@@ -79,13 +81,34 @@
"mismatch_other": "Tuvastasin {{count}} võõrast objekti ja need on lisatud ülevaatamiseks. Need objektid kas ei ole piisavad häire või tuvastamise jaoks, aga ka võivad juba olla eemaldatud või kustutatud."
},
"title": "Vaata objekti üksikasju",
"desc": "Vaata objekti üksikasju"
"desc": "Vaata objekti üksikasju",
"toast": {
"success": {
"updatedLPR": "Sõiduki numbrimärgi uuendamine õnnestus."
},
"error": {
"updatedLPRFailed": "Sõiduki numbrimärgi uuendamine ei õnnestunud: {{errorMessage}}"
}
}
},
"snapshotScore": {
"label": "Hetkvõttete punktiskoor"
"label": "Hetkvõtete punktiskoor"
},
"regenerateFromSnapshot": "Loo uuesti hetkvõttest",
"timestamp": "Ajatampel"
"timestamp": "Ajatampel",
"score": {
"label": "Punktiskoor"
},
"scoreInfo": "Punktiskoori teave",
"editLPR": {
"title": "Muuda sõiduki numbrimärki",
"desc": "Sisesta sõiduki numbrimärgi uus väärtus: {{label}}",
"descNoLabel": "Sisesta sõiduki numbrimärgi uus väärtus selle jälgitava objekti jaoks"
},
"recognizedLicensePlate": "Tuvastatud sõiduki numbrimärk",
"description": {
"aiTips": "Frigate ei küsi sinu generatiivse tehisaru teenusepakkujalt kirjeldust enne, kui jälgitava objekti elutsükkel on lõppenud."
}
},
"trackedObjectDetails": "Jälgitava objekti üksikasjad"
}
+5 -3
View File
@@ -18,14 +18,16 @@
},
"toast": {
"error": {
"addFaceLibraryFailed": "Näo sidumine nimega ei õnnestunud: {{errorMessage}}"
"addFaceLibraryFailed": "Näo sidumine nimega ei õnnestunud: {{errorMessage}}",
"updateFaceScoreFailed": "Näo punktiskoori uuendamine ei õnnestunud: {{errorMessage}}"
},
"success": {
"addFaceLibrary": "Lisamine Näoteeki õnnestus: {{name}}!",
"deletedFace_one": "{{count}} näo kustutamine õnnestus.",
"deletedFace_other": "{{count}} näo kustutamine õnnestus.",
"deletedName_one": "{{count}} näo kustutamine õnnestus.",
"deletedName_other": "{{count}} näo kustutamine õnnestus."
"deletedName_other": "{{count}} näo kustutamine õnnestus.",
"updatedFaceScore": "Näo punktiskoori uuendamine õnnestus: {{name}} ({{score}})."
}
},
"deleteFaceAttempts": {
@@ -35,7 +37,7 @@
"details": {
"timestamp": "Ajatampel",
"unknown": "Pole teada",
"scoreInfo": "Skoor on kõigi nägude hindete kaalutud keskmine, kus kaalukoefitsiendiks on iga pildi näo suurus."
"scoreInfo": "Punktiskoor on kõigi nägude hinnete kaalutud keskmine, kus kaalukoefitsiendiks on iga pildi näo suurus."
},
"uploadFaceImage": {
"title": "Laadi näopilt üles",
+5 -2
View File
@@ -12,7 +12,8 @@
"transcription": "Heli üleskirjutus",
"snapshots": "Hetkvõtted",
"autotracking": "Automaatne jälgimine",
"recording": "Salvestus"
"recording": "Salvestus",
"camera": "Kaamera"
},
"documentTitle": {
"default": "Frigate reaalajas"
@@ -73,7 +74,9 @@
},
"camera": {
"enable": "Lülita kaamera sisse",
"disable": "Lülita kaamera välja"
"disable": "Lülita kaamera välja",
"turnOn": "Lülita kaamera sisse",
"turnOff": "Lülita kaamera välja"
},
"detect": {
"enable": "Lülita tuvastamine sisse",
@@ -1 +1,4 @@
{}
{
"documentTitle": "Liikumise tuvastus - Frigate",
"title": "Liikumise otsing"
}
+2 -1
View File
@@ -13,5 +13,6 @@
"starting": "Käivitan kordust…",
"startLabel": "Algus",
"endLabel": "Lõpp"
}
},
"title": "Kordus veaotsinguks"
}
+36 -3
View File
@@ -23,7 +23,13 @@
"search_type": "Otsingutüüp",
"time_range": "Ajavahemik",
"before": "Enne",
"after": "Pärast"
"after": "Pärast",
"min_score": "Minimaalne punktiskoor",
"max_score": "Maksimaalne punktiskoor",
"min_speed": "Miinimumkiirus",
"max_speed": "Maksimumkiirus",
"recognized_license_plate": "Tuvastatud sõiduki numbrimärk",
"has_clip": "Klipp on olemas"
},
"searchType": {
"thumbnail": "Pisipilt",
@@ -32,9 +38,36 @@
"toast": {
"error": {
"beforeDateBeLaterAfter": "„Enne“ kuupäev peab olema varasem, kui „Pärast“ kuupäev.",
"afterDatebeEarlierBefore": "„Pärast“ kuupäev peab olema hilisem, kui „Enne“ kuupäev."
"afterDatebeEarlierBefore": "„Pärast“ kuupäev peab olema hilisem, kui „Enne“ kuupäev.",
"minScoreMustBeLessOrEqualMaxScore": "Minimaalne punktiskoor peab olema väiksem või võrdne kui maksimaalne punktiskoor.",
"maxScoreMustBeGreaterOrEqualMinScore": "Maksimaalne punktiskoor peab olema suurem või võrdne kui minimaalne punktiskoor.",
"minSpeedMustBeLessOrEqualMaxSpeed": "Minimaalne kiirus peab olema väiksem või võrdne kui maksimaalne kiirus.",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "Maksimaalne kiirus peab olema suurem või võrdne kui minimaalne kiirus."
}
},
"tips": {
"title": "Kuidas saad kasutada tekstifiltreid",
"desc": {
"text": "Filtrid aitavad sul otsingutulemusi kitsendada. Siin on juhised nende kasutamiseks sisestusväljal:",
"step1": "Sisesta filtri nimi, millele järgnev koolon (nt, „cameras:“).",
"step2": "Vali soovitatud väärtus või sisesta enda oma.",
"step3": "Kasuta mitmeid filtreid lisades neid üksteise järgi ning eraldades tühikuga.",
"step4": "Kuupäevafiltrid (before: ja after:) kasutavad {{DateFormat}} vormingut.",
"step5": "Ajavahemiku filter kasutab {{exampleTime}} vormingut.",
"step6": "Filtreid saad eemaldada klõpsates nende kõrval leiduvad märget „x“.",
"exampleLabel": "Näide:"
}
},
"header": {
"currentFilterType": "Filtri väärtused",
"noFilters": "Filtrid",
"activeFilters": "Aktiivsed filtrid"
}
},
"trackedObjectId": "Jälgitava objekti tunnus"
"trackedObjectId": "Jälgitava objekti tunnus",
"similaritySearch": {
"title": "Sarnaste objektide otsing",
"active": "Sarnaste objektide otsing on aktiivne",
"clear": "Eemalda sarnaste objektide otsing"
}
}
+81 -4
View File
@@ -115,11 +115,13 @@
"placeholder": "Sisesta oma senine salasõna"
},
"user": {
"title": "Kasutajanimi"
"title": "Kasutajanimi",
"desc": "Lubatud on vaid tähed, numbrid, punktid ja alakriipsud."
}
},
"createUser": {
"confirmPassword": "Palun kinnita oma uus salasõna"
"confirmPassword": "Palun kinnita oma uus salasõna",
"usernameOnlyInclude": "Kasutajanimes võivad olla vaid tähed, numbrid, punkt (.) või alakriips (_)"
},
"passwordSetting": {
"cannotBeEmpty": "Salasõna ei või jääda tühjaks",
@@ -213,6 +215,14 @@
"pathPlaceholder": "rtsp://...",
"roles": "Rollid"
}
},
"clone": {
"categories": {
"items": {
"lpr": "Sõidukite numbrimärkide tuvastus",
"genai": "Generatiivne tehisaru"
}
}
}
},
"notification": {
@@ -315,6 +325,10 @@
"form": {
"cameras": {
"title": "Kaamerad"
},
"role": {
"desc": "Lubatud on vaid tähed, numbrid, punktid ja alakriipsud.",
"roleOnlyInclude": "Rolli nimes võivad olla vaid tähed, numbrid, punkt (.) või alakriips (_)"
}
}
}
@@ -330,7 +344,36 @@
"notifications": "Teavitused",
"frigateplus": "Frigate+",
"cameraReview": "Ülevaatamine",
"profiles": "Profiilid"
"profiles": "Profiilid",
"integrationLpr": "Sõidukite numbrimärkide tuvastus",
"cameraLpr": "Sõidukite numbrimärkide tuvastus",
"uiSettings": "Kasutajaliidese seadistused",
"globalDetect": "Objektide tuvastamine",
"globalRecording": "Salvestamine",
"globalSnapshots": "Hetkvõtted",
"globalFfmpeg": "FFmpeg",
"globalMotion": "Liikumise tuvastus",
"globalObjects": "Objektid",
"globalReview": "Ülevaatamine",
"globalAudioEvents": "Heli tuvastus",
"globalLivePlayback": "Reaalajas sisu taasesitus",
"globalTimestampStyle": "Ajatempli stiil",
"systemDatabase": "Andmebaas",
"systemTls": "TLS",
"systemAuthentication": "Autentimine",
"systemNetworking": "Võrgundus",
"systemProxy": "Proksiserver",
"systemUi": "Kasutajaliides",
"systemLogging": "Logimine",
"systemEnvironmentVariables": "Keskkonnamuutujad",
"systemTelemetry": "Telemeetria",
"systemBirdseye": "Vaade linnulennult",
"systemFfmpeg": "FFmpeg",
"systemDetectorsAndModel": "Tuvastamine ja mudelid",
"systemMqtt": "MQTT",
"systemGo2rtcStreams": "go2rtc voogedastus",
"integrationSemanticSearch": "Semantiline otsing",
"integrationGenerativeAi": "Generatiivne tehisaru"
},
"dialog": {
"unsavedChanges": {
@@ -370,6 +413,9 @@
},
"birdClassification": {
"title": "Lindude klassifikatsioon"
},
"licensePlateRecognition": {
"title": "Sõidukite numbrimärkide tuvastus"
}
},
"cameraReview": {
@@ -377,6 +423,13 @@
"title": "Ülevaatamine",
"alerts": "Hoiatused ",
"detections": "Tuvastamise tulemused "
},
"object_descriptions": {
"title": "Generatiivse tehisaru objektikirjeldused",
"desc": "Luba/keela ajutiselt selle kaamera jaoks generatiivse tehisaru objektikirjeldused kuni Frigate'i taaskäivitamiseni. Kui see on keelatud, ei küsita selle kaamera jälgitavate objektide kohta tehisintellekti poolt loodud kirjeldusi."
},
"review_descriptions": {
"title": "Generatiivne tehisaru ülevaatamisele kuuluva sisu kirjedlused"
}
},
"motionDetectionTuner": {
@@ -404,7 +457,10 @@
"dialog": {
"form": {
"name": {
"title": "Nimi"
"title": "Nimi",
"error": {
"invalidCharacters": "Välja nimes võivad olla vaid tähed, numbrid, alakriipsud (_) või sidekriipsud (-)."
}
},
"type": {
"title": "Tüüp"
@@ -420,5 +476,26 @@
}
}
}
},
"profiles": {
"nameInvalid": "Lubatud on vaid väiketähed, numbrid ja alakriipsud"
},
"go2rtcStreams": {
"validation": {
"nameInvalid": "Voogedastuse nimes on lubatud vaid tähed, numbrid alakriipsud ja sidekriipsud"
}
},
"configForm": {
"sections": {
"lpr": "Sõidukite numbrimärkide tuvastus"
}
},
"configMessages": {
"detect": {
"disabled": "Objektide tuvastamine on lülitatud välja. Hetkepildid, läbivaatamisele kuuluvad objektid ja täiendavad funktsioonid, nagu näotuvastus, sõidukite numbrimärkide tuvastus ja generatiivne tehisintellekt, ei tööta."
},
"lpr": {
"vehicleNotTracked": "Sõidukite numbrimärkide tuvastus eeldab, et auto või mootorratas on jälgitav. Lülita menüüst Objektid sell kaamera jaoks sisse valikud „auto“ või „mootorratas“."
}
}
}
+24 -1
View File
@@ -10,7 +10,30 @@
},
"copy": {
"label": "Kopeeri lõikelauale",
"success": "Logid on kopeeritud lõikelauale"
"success": "Logid on kopeeritud lõikelauale",
"error": "Logide kopeerimine lõikelauale ei õnnestunud"
},
"websocket": {
"filter": {
"cameras_count_one": "{{count}} kaamera",
"cameras_count_other": "{{count}} kaamerat"
},
"empty": "Ühtegi sõnumit pole veel hõivatud",
"count_one": "{{count}} sõnum",
"count_other": "{{count}} sõnumit"
},
"type": {
"label": "Tüüp",
"timestamp": "Ajatempel",
"tag": "Silt",
"message": "Sõnum"
},
"tips": "Logid on serverist voogedastamisel",
"toast": {
"error": {
"fetchingLogsFailed": "Viga logide laadimisel: {{errorMessage}}",
"whileStreamingLogs": "Viga logide voogedastamisel: {{errorMessage}}"
}
}
},
"title": "Süsteem"
+30 -6
View File
@@ -102,7 +102,8 @@
"all": "همه",
"back": "برگشت به قبل",
"show": "نمایش {{item}}",
"none": "هیچ‌کدام"
"none": "هیچ‌کدام",
"other": "دیگر"
},
"list": {
"many": "{{items}}، و {{last}}",
@@ -136,7 +137,7 @@
"enabled": "فعال",
"disable": "غیرفعال کردن",
"save": "ذخیره",
"saving": "در حال ذخیره…",
"saving": "در حال ذخیره‌سازی…",
"copy": "کپی",
"history": "تاریخچه",
"pictureInPicture": "تصویر در تصویر",
@@ -149,7 +150,18 @@
"continue": "ادامه",
"on": "روشن",
"edit": "ویرایش",
"suspended": "تعلیق‌شده"
"suspended": "تعلیق‌شده",
"add": "افزودن",
"applying": "در حال اعمال…",
"undo": "برگرداندن",
"copiedToClipboard": "در کلیپ‌بورد کپی شد",
"modified": "اصلاح شده",
"retry": "تلاش دوباره",
"resetToGlobal": "بازنشانی به حالت جهانی",
"resetToDefault": "بازنشانی به پیش‌فرض",
"saveAll": "ذخیره همه",
"savingAll": "ذخیره‌سازی همه…",
"undoAll": "بازگردانی همه"
},
"menu": {
"systemMetrics": "شاخص‌های سیستم",
@@ -197,7 +209,9 @@
"ur": "اردو (زبان اردو)",
"withSystem": {
"label": "برای زبان از تنظیمات سامانه استفاده کنید"
}
},
"zhHant": "چینی سنتی",
"hr": "کرواسیایی"
},
"system": "سامانه",
"systemLogs": "لاگ‌های سامانه",
@@ -250,7 +264,11 @@
"anonymous": "ناشناس",
"logout": "خروج",
"setPassword": "تنظیم گذرواژه"
}
},
"profiles": "پروفایل‌ها",
"actions": "اقدام‌ها",
"features": "ویژگی‌ها",
"chat": "چت"
},
"toast": {
"copyUrlToClipboard": "نشانی اینترنتی در کلیپ‌بورد کپی شد.",
@@ -259,7 +277,8 @@
"error": {
"title": "ذخیرهٔ تغییرات پیکربندی ناموفق بود: {{errorMessage}}",
"noMessage": "ذخیرهٔ تغییرات پیکربندی ناموفق بود"
}
},
"success": "تغییرات پیکربندی با موفقیت ذخیره شد."
}
},
"role": {
@@ -294,5 +313,10 @@
"readTheDocumentation": "مستندات را بخوانید",
"information": {
"pixels": "{{area}}px"
},
"no_items": "هیچ چیزی یافت نشد",
"validation_errors": "خطاهای اعتبارسنجی",
"credentialField": {
"savedPlaceholder": "ذخیره شد — برای نگه‌داشت وضعیت کنونی، خالی بگذارید"
}
}
+6 -2
View File
@@ -67,7 +67,10 @@
"desc": "گزینه‌های پخش زنده را برای داشبورد این گروه دوربین تغییر دهید. <em>این تنظیمات مخصوص دستگاه/مرورگر هستند. </em>"
},
"birdseye": "نمای پرنده"
}
},
"showAll": "نمایش تمام گروه های دوربین",
"showLess": "نمایش کمتر",
"editGroups": "ویرایش گروه های دوربین"
},
"debug": {
"options": {
@@ -81,6 +84,7 @@
"zones": "ناحیه‌ها",
"mask": "ماسک",
"motion": "حرکت",
"regions": "مناطق"
"regions": "مناطق",
"paths": "مسیرها"
}
}
+4 -2
View File
@@ -4,7 +4,8 @@
"noPreviewFoundFor": "هیچ پیش‌نمایشی برای {{cameraName}} پیدا نشد",
"submitFrigatePlus": {
"title": "این فریم به فریگیت+ ارسال شود؟",
"submit": "ارسال"
"submit": "ارسال",
"previewError": "نمی توان پیش نمایش عکس فوری را بارگذاری کرد. ممکن است ضبط در این زمان در دسترس نباشد."
},
"livePlayerRequiredIOSVersion": "برای این نوع پخش زنده، iOS 17.1 یا بالاتر لازم است.",
"streamOffline": {
@@ -47,5 +48,6 @@
"error": {
"submitFrigatePlusFailed": "ارسال فریم به Frigate+ ناموفق بود"
}
}
},
"cameraOff": "دوربین خاموش است"
}
+30
View File
@@ -768,5 +768,35 @@
},
"mqtt": {
"label": "MQTT یک پروتکل تبادل پیام سبک ."
},
"version": {
"label": "نسخه فعلی config"
},
"safe_mode": {
"label": "حالت امن"
},
"environment_vars": {
"label": "متغیر های محیطی"
},
"logger": {
"label": "گزارش گیری",
"default": {
"label": "سطح گزارش گیری"
}
},
"auth": {
"label": "احراز هویت",
"enabled": {
"label": "فعال سازی احراز هویت"
},
"reset_admin_password": {
"label": "بازنشانی رمز ادمین"
},
"trusted_proxies": {
"label": "پراکسی های مورد اعتماد"
}
},
"database": {
"label": "پایگاه داده"
}
}
+1 -1
View File
@@ -1,5 +1,5 @@
{
"search": "یافتن",
"search": "جستجو",
"documentTitle": "گرفتن خروجی - فریگیت",
"noExports": "هیچ خروجی یافت نشد",
"deleteExport": "حذف خروجی",
+13 -5
View File
@@ -3,7 +3,7 @@
"addFace": "با بارگزاری اولین عکستان، یک مجموعه جدید به کتابخانه چهره اضافه کنید.",
"placeholder": "نامی برای این مجموعه وارد کنید",
"invalidName": "نام نامعتبر، نام ها فقط می توانند شامل حروف، اعداد، فاصله، آپستروف، زیرخط و خط فاصله باشند.",
"nameCannotContainHash": "نام نمی‌تواند شامل # باشد ."
"nameCannotContainHash": "نام نمی‌تواند شامل # باشد."
},
"details": {
"timestamp": "زمان دقیق",
@@ -48,7 +48,11 @@
"title": "تشخیص‌های اخیر",
"titleShort": "اخیر",
"aria": "تشخیص‌های اخیر را انتخاب کنید",
"empty": "تلاشِ اخیر برای تشخیص چهره وجود ندارد"
"empty": "تلاشِ اخیر برای تشخیص چهره وجود ندارد",
"emptyNoLibrary": {
"title": "یک صورت را آپلود کنید",
"description": "شما باید حداقل یک چهره به کتابخانه اضافه کنید تا عملکرد تشخیص چهره کار کند."
}
},
"deleteFaceLibrary": {
"title": "حذف نام",
@@ -76,7 +80,8 @@
"deletedName_other": "{{count}} چهره با موفقیت حذف شدند.",
"renamedFace": "نام چهره با موفقیت به {{name}} تغییر یافت",
"trainedFace": "آموزش چهره با موفقیت انجام شد.",
"updatedFaceScore": "امتیاز چهره با موفقیت به {{name}} ( {{score}}) به‌روزرسانی شد."
"updatedFaceScore": "امتیاز چهره با موفقیت به {{name}} ( {{score}}) به‌روزرسانی شد.",
"reclassifiedFace": "کلاسه بندی مجدد چهره با موفقیت انجام شد."
},
"error": {
"uploadingImageFailed": "آپلود تصویر ناموفق بود: {{errorMessage}}",
@@ -85,7 +90,10 @@
"deleteNameFailed": "حذف نام ناموفق بود: {{errorMessage}}",
"renameFaceFailed": "تغییر نام چهره ناموفق بود: {{errorMessage}}",
"trainFailed": "آموزش ناموفق بود: {{errorMessage}}",
"updateFaceScoreFailed": "به‌روزرسانی امتیاز چهره ناموفق بود: {{errorMessage}}"
"updateFaceScoreFailed": "به‌روزرسانی امتیاز چهره ناموفق بود: {{errorMessage}}",
"reclassifyFailed": "کلاسه بندی مجدد برای چهره: {{errorMessage}} دچار مشکل شد"
}
}
},
"reclassifyFaceAs": "کلاسه بندی مجدد چهره به عنوان:",
"reclassifyFace": "کلاسه بندی مجدد چهره"
}
+10 -10
View File
@@ -1,15 +1,15 @@
{
"search": "یافتن",
"search": "جستجو",
"savedSearches": "جستجوهای ذخیره شده",
"searchFor": "جستجو برای {{inputValue}}",
"button": {
"clear": "پاک کردن جستجو",
"save": "ذخیره جست‌وجو",
"save": "ذخیره جستجو",
"delete": "حذف جستجوی ذخیره‌شده",
"filterInformation": "اطلاعات فیلتر",
"filterActive": "فیلترها فعال‌اند"
},
"trackedObjectId": "شناسهٔ شیء ردیابی‌شده",
"trackedObjectId": "شناسه‌ی شی ردیابی‌شده",
"filter": {
"label": {
"cameras": "دوربین‌ها",
@@ -17,15 +17,15 @@
"sub_labels": "زیر‌برچسب‌ها",
"attributes": "صفت‌ها",
"search_type": "نوع جستجو",
"time_range": "بازهٔ زمانی",
"time_range": "بازه زمانی",
"zones": "ناحیه‌ها",
"before": "قبل از",
"after": "بعد از",
"min_score": "حداقل امتیاز",
"max_score": "حداکثر امتیاز",
"min_speed": "حداقل سرعت",
"max_speed": "حداکثر سرعت",
"recognized_license_plate": "پلاک شناساییشده",
"min_score": "کمینه امتیاز",
"max_score": "بیشینه امتیاز",
"min_speed": "کمینه سرعت",
"max_speed": "بیشینه سرعت",
"recognized_license_plate": "پلاک شناسایی شده",
"has_clip": "دارای کلیپ",
"has_snapshot": "دارای عکس فوری"
},
@@ -40,7 +40,7 @@
}
},
"searchType": {
"thumbnail": "پیش‌نمایش",
"thumbnail": "بندانگشتی",
"description": "توضیحات"
},
"tips": {
+2 -1
View File
@@ -25,7 +25,8 @@
"users": "کاربران",
"roles": "نقش‌ها",
"notifications": "اعلان‌ها",
"frigateplus": "فریگیت+"
"frigateplus": "فریگیت+",
"profiles": "پروفایل‌ها"
},
"general": {
"title": "تنظیمات رابط کاربری",
+6 -2
View File
@@ -188,7 +188,8 @@
"gl": "Galego (Galicien)",
"id": "Bahasa Indonesia (Indonésien)",
"ur": "اردو (Ourdou)",
"hr": "Hrvatski (Croate)"
"hr": "Hrvatski (Croate)",
"bs": "Bosanski (Bosnien)"
},
"appearance": "Apparence",
"darkMode": {
@@ -332,5 +333,8 @@
"separatorWithSpace": ", "
},
"no_items": "Aucun élément",
"validation_errors": "Erreurs de validation"
"validation_errors": "Erreurs de validation",
"credentialField": {
"savedPlaceholder": "Enregistré — laissez vide pour conserver la version actuelle"
}
}
+4 -1
View File
@@ -68,7 +68,10 @@
"placeholder": "Choisissez un flux."
},
"birdseye": "Birdseye"
}
},
"showAll": "Afficher tout les groupes de caméras",
"showLess": "Réduire l'affichage",
"editGroups": "Modifier les groupes de caméras"
},
"debug": {
"timestamp": "Horodatage",
+9 -6
View File
@@ -67,7 +67,8 @@
"noVaildTimeSelected": "La plage horaire sélectionnée n'est pas valide."
},
"success": "Exportation démarrée avec succès. Consultez le fichier sur la page des exportations.",
"view": "Vue"
"view": "Vue",
"queued": "Exportation en attente. Consultez la progression sur la page des exportations."
},
"select": "Sélectionner",
"name": {
@@ -112,7 +113,7 @@
"title_one": "Export {{count}} revue",
"title_many": "Export {{count}} revues",
"title_other": "Export {{count}} revues",
"description": "Export chaque revue sélectionnée. Tous les exports sont regroupés sous un cas unique.",
"description": "Exporter chaque revue sélectionnée. Tous les exports sont regroupés sous un cas unique.",
"descriptionNoCase": "Exporter chaque revue sélectionnée.",
"caseNamePlaceholder": "Vérification de l'export {{date}}",
"exportButton_one": "Exporter {{count}} revue",
@@ -120,12 +121,14 @@
"exportButton_other": "Exporter {{count}} revues",
"exportingButton": "Exportation...",
"toast": {
"started_one": "Un export a démarré. Ouverture du dossier en cours",
"started_many": "{{count}} exports ont démarré. Ouverture du dossier en cours",
"started_other": "",
"started_one": "Un export a démarré. Ouverture du dossier en cours.",
"started_many": "{{count}} exports ont démarré. Ouverture du dossier en cours.",
"started_other": "{{count}} exports ont démarré. Ouverture du dossier en cours.",
"startedNoCase_one": "Un export a démarré.",
"startedNoCase_many": "{{count}} exports ont démarré.",
"startedNoCase_other": "{{count}} exports ont démarré."
"startedNoCase_other": "{{count}} exports ont démarré.",
"partial": "{{successful}} exportations sur {{total}} lancées. Échecs : {{failedItems}}",
"failed": "Échec du démarrage des exports {{total}}. Échec : {{failedItems}}"
}
}
},
+3
View File
@@ -112,5 +112,8 @@
"label": "Rapport d'aspect minimal"
}
}
},
"audio_transcription": {
"label": "Transcription audio"
}
}
+5 -1
View File
@@ -121,5 +121,9 @@
"royal_mail": "Poste du Royaume Uni",
"school_bus": "Bus scolaire",
"skunk": "Mouffette",
"kangaroo": "Kangourou"
"kangaroo": "Kangourou",
"baby": "Bébé",
"baby_stroller": "Poussette",
"rickshaw": "Pousse-pousse",
"Rodent": "Rongeur"
}

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