diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 3540738382..c4d8aa7a03 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,9 +19,9 @@ jobs: - uses: actions/checkout@v6 with: persist-credentials: false - - uses: actions/setup-node@master + - uses: actions/setup-node@v6 with: - node-version: 16.x + node-version: 20.x - run: npm install working-directory: ./web - name: Lint @@ -35,7 +35,7 @@ jobs: - uses: actions/checkout@v6 with: persist-credentials: false - - uses: actions/setup-node@master + - uses: actions/setup-node@v6 with: node-version: 20.x - run: npm install @@ -78,7 +78,7 @@ jobs: uses: actions/checkout@v6 with: persist-credentials: false - - uses: actions/setup-node@master + - uses: actions/setup-node@v6 with: node-version: 20.x - name: Install devcontainer cli diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6961fcffb6..1fbf58f6e3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,14 +39,14 @@ jobs: STABLE_TAG=${BASE}:stable PULL_TAG=${BASE}:${BUILD_TAG} docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG} docker://${VERSION_TAG} - for variant in standard-arm64 tensorrt tensorrt-jp6 rk rocm; do + for variant in standard-arm64 tensorrt tensorrt-jp6 rk rocm synaptics; do docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG}-${variant} docker://${VERSION_TAG}-${variant} done # stable tag if [[ "${BUILD_TYPE}" == "stable" ]]; then docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG} docker://${STABLE_TAG} - for variant in standard-arm64 tensorrt tensorrt-jp6 rk rocm; do + for variant in standard-arm64 tensorrt tensorrt-jp6 rk rocm synaptics; do docker run --rm -v $HOME/.docker/config.json:/config.json quay.io/skopeo/stable:latest copy --authfile /config.json --multi-arch all docker://${PULL_TAG}-${variant} docker://${STABLE_TAG}-${variant} done fi diff --git a/LICENSE b/LICENSE index 0c1fc1f536..924cb4148c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License -Copyright (c) 2025 Frigate LLC (Frigate™) +Copyright (c) 2026 Frigate, Inc. (Frigate™) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index b1eab6c534..1fb158b191 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ If you would like to make a donation to support development, please use [Github This project is licensed under the **MIT License**. - **Code:** The source code, configuration files, and documentation in this repository are available under the [MIT License](LICENSE). You are free to use, modify, and distribute the code as long as you include the original copyright notice. -- **Trademarks:** The "Frigate" name, the "Frigate NVR" brand, and the Frigate logo are **trademarks of Frigate LLC** and are **not** covered by the MIT License. +- **Trademarks:** The "Frigate" name, the "Frigate NVR" brand, and the Frigate logo are **trademarks of Frigate, Inc.** and are **not** covered by the MIT License. Please see our [Trademark Policy](TRADEMARK.md) for details on acceptable use of our brand assets. @@ -67,7 +67,7 @@ Please see our [Trademark Policy](TRADEMARK.md) for details on acceptable use of ### Built-in mask and zone editor
{{label}}?",
+ "ask_an": "Kas see objekt on {{label}}?",
+ "ask_full": "Kas see objekt on {{untranslatedLabel}} ({{translatedLabel}})?",
+ "label": "Kinnita see silt Frigate+ teenuse jaoks"
+ }
+ },
+ "submitToPlus": {
+ "label": "Saada teenusesse Frigate+",
+ "desc": "Objektid asukohtades, mida sa tahad vältida, pole valepositiivsed. Kui sa neid sellistena saadad teenusele, siis see ainult ajab tehisaru mudeli sassi."
+ }
+ }
+ },
+ "export": {
+ "time": {
+ "fromTimeline": "Vali ajajoonelt",
+ "lastHour_one": "Viimase tunni jooksul",
+ "lastHour_other": "Viimase {{count}} tunni jooksul",
+ "custom": "Sinu valitud ajavahemik",
+ "start": {
+ "title": "Algusaeg",
+ "label": "Vali algusaeg"
+ },
+ "end": {
+ "title": "Lõpuaeg",
+ "label": "Vali lõpuaeg"
+ }
+ },
+ "name": {
+ "placeholder": "Sisesta ekspordifaili nimi"
+ },
+ "select": "Vali",
+ "export": "Ekspordi",
+ "selectOrExport": "Vali või ekspordi",
+ "toast": {
+ "success": "Eksportimise käivitamine õnnestus. Faili leiad eksportimise lehelt.",
+ "view": "Vaata",
+ "error": {
+ "failed": "Eksportimise käivitamine ei õnnestunud: {{error}}",
+ "endTimeMustAfterStartTime": "Ajavahemiku lõpp peab olema peale algust",
+ "noVaildTimeSelected": "Ühtegi kehtivat ajavahemikku pole valitud"
+ }
+ },
+ "fromTimeline": {
+ "saveExport": "Salvesta eksporditud sisu",
+ "previewExport": "Eksporditud sisu eelvaade"
+ }
+ },
+ "streaming": {
+ "label": "Voogedastus",
+ "restreaming": {
+ "disabled": "Voogedastuse kordus pole selle kaamera puhul kasutatav.",
+ "desc": {
+ "title": "Kui tahad selle kaameraga kasutada täiendavaid otseeetri ja helivõimalusi, siis seadista go2rtc."
+ }
+ },
+ "debugView": "Veaotsinguvaade",
+ "showStats": {
+ "label": "Näita voogedastuse statistikat",
+ "desc": "Lülita see eelistus sisse, kui soovid kaamerapildi ülekattena näha voogedastuse statistikat."
+ }
+ },
+ "recording": {
+ "button": {
+ "export": "Ekspordi",
+ "markAsReviewed": "Märgi ülevaadatuks",
+ "markAsUnreviewed": "Märgi mitteülevaadatuks",
+ "deleteNow": "Kustuta kohe"
+ },
+ "confirmDelete": {
+ "title": "Kinnita kustutamine",
+ "desc": {
+ "selected": "Kas sa oled kindel et soovid selle kõik ülevaadatava objektiga seotud kirjed kustutada?clean_copy Hetkvõtted",
+ "camera": "Kaamera"
+ }
}
},
"masksAndZones": {
@@ -135,5 +160,34 @@
"point_one": "{{count}} punkt",
"point_other": "{{count}} punkti"
}
+ },
+ "roles": {
+ "toast": {
+ "success": {
+ "userRolesUpdated_one": "{{count}} selle rolliga kasutaja on nüüd määratud Vaatajaks, kellel on ligipääs kõikidele kaameratele.",
+ "userRolesUpdated_other": "{{count}} selle rolliga kasutajat on nüüd määratud Vaatajaks, kellel on ligipääs kõikidele kaameratele."
+ }
+ }
+ },
+ "menu": {
+ "ui": "Kasutajaliides",
+ "cameraManagement": "Haldus",
+ "masksAndZones": "Maskid ja tsoonid",
+ "triggers": "Päästikud",
+ "debug": "Silumine ja veaotsing",
+ "users": "Kasutajad",
+ "roles": "Rollid",
+ "notifications": "Teavitused",
+ "frigateplus": "Frigate+"
+ },
+ "dialog": {
+ "unsavedChanges": {
+ "title": "Sul on salvestamata muudatusi.",
+ "desc": "Kas soovid muudatused enne jätkamist salvestada?"
+ }
+ },
+ "cameraSetting": {
+ "camera": "Kaamera",
+ "noCamera": "Kaamerat pole"
}
}
diff --git a/web/public/locales/et/views/system.json b/web/public/locales/et/views/system.json
index 2a258b6e6f..deb38f24b5 100644
--- a/web/public/locales/et/views/system.json
+++ b/web/public/locales/et/views/system.json
@@ -1,5 +1,12 @@
{
"documentTitle": {
- "general": "Üldine statistika - Frigate"
+ "general": "Üldine statistika - Frigate",
+ "cameras": "Kaamerate statistika - Frigate",
+ "storage": "Andmeruumi statistika - Frigate"
+ },
+ "logs": {
+ "download": {
+ "label": "Laadi logid alla"
+ }
}
}
diff --git a/web/public/locales/fa/common.json b/web/public/locales/fa/common.json
index e3b44ba550..2bb9555cbf 100644
--- a/web/public/locales/fa/common.json
+++ b/web/public/locales/fa/common.json
@@ -2,6 +2,8 @@
"time": {
"untilForTime": "تا {{time}}",
"untilForRestart": "تا زمانی که فریگیت دوباره شروع به کار کند.",
- "untilRestart": "تا زمان ریاستارت"
+ "untilRestart": "تا زمان ریاستارت",
+ "ago": "{{timeAgo}} قبل",
+ "justNow": "هم اکنون"
}
}
diff --git a/web/public/locales/fa/components/auth.json b/web/public/locales/fa/components/auth.json
index b74e4b03f6..6b87e72575 100644
--- a/web/public/locales/fa/components/auth.json
+++ b/web/public/locales/fa/components/auth.json
@@ -2,6 +2,7 @@
"form": {
"user": "نام کاربری",
"password": "رمز عبور",
- "login": "ورود"
+ "login": "ورود",
+ "firstTimeLogin": "اولین باز است وارد می شود؟ اطلاعات هویتی در ثبت رخداد های فریگیت چاپ خواهد شد."
}
}
diff --git a/web/public/locales/fa/components/camera.json b/web/public/locales/fa/components/camera.json
index b5567927ba..ee4d1d1720 100644
--- a/web/public/locales/fa/components/camera.json
+++ b/web/public/locales/fa/components/camera.json
@@ -2,6 +2,9 @@
"group": {
"label": "گروههای دوربین",
"add": "افزودن گروه دوربین",
- "edit": "ویرایش گروه دوربین"
+ "edit": "ویرایش گروه دوربین",
+ "delete": {
+ "label": "حذف گروه دوربین ها"
+ }
}
}
diff --git a/web/public/locales/fa/components/dialog.json b/web/public/locales/fa/components/dialog.json
index 05f66ce60d..121a732242 100644
--- a/web/public/locales/fa/components/dialog.json
+++ b/web/public/locales/fa/components/dialog.json
@@ -3,7 +3,9 @@
"title": "آیا از ریاستارت فریگیت اطمینان دارید؟",
"button": "ریاستارت",
"restarting": {
- "title": "فریگیت در حال ریاستارت شدن"
+ "title": "فریگیت در حال ریاستارت شدن",
+ "content": "صفحه تا {{countdown}} ثانیه دیگر مجددا بارگزاری خواهد شد.",
+ "button": "بارگزاری مجدد هم اکنون اجرا شود"
}
}
}
diff --git a/web/public/locales/fa/components/filter.json b/web/public/locales/fa/components/filter.json
index 97410c81e6..ad7827e253 100644
--- a/web/public/locales/fa/components/filter.json
+++ b/web/public/locales/fa/components/filter.json
@@ -1,6 +1,10 @@
{
"filter": "فیلتر",
"classes": {
- "label": "کلاسها"
+ "label": "کلاسها",
+ "all": {
+ "title": "تمامی کلاس ها"
+ },
+ "count_one": "{{count}} کلاس"
}
}
diff --git a/web/public/locales/fa/components/player.json b/web/public/locales/fa/components/player.json
index dae6c8b373..d82c22d9bc 100644
--- a/web/public/locales/fa/components/player.json
+++ b/web/public/locales/fa/components/player.json
@@ -1,5 +1,8 @@
{
"noRecordingsFoundForThisTime": "ویدیویی برای این زمان وجود ندارد",
"noPreviewFound": "پیشنمایش پیدا نشد",
- "noPreviewFoundFor": "هیچ پیشنمایشی برای {{cameraName}} پیدا نشد"
+ "noPreviewFoundFor": "هیچ پیشنمایشی برای {{cameraName}} پیدا نشد",
+ "submitFrigatePlus": {
+ "title": "این فریم به فریگیت+ ارسال شود؟"
+ }
}
diff --git a/web/public/locales/fa/views/classificationModel.json b/web/public/locales/fa/views/classificationModel.json
index a4bdd37e4d..7369674e5a 100644
--- a/web/public/locales/fa/views/classificationModel.json
+++ b/web/public/locales/fa/views/classificationModel.json
@@ -18,5 +18,14 @@
"deleteImageFailed": "حذف نشد:{{پیغام خطا}}",
"deleteCategoryFailed": "کلاس حذف نشد:{{پیغام خطا}}"
}
+ },
+ "documentTitle": "دسته بندی مدل ها - فریگیت",
+ "description": {
+ "invalidName": "نام نامعتبر، نام ها فقط می توانند شامل حروف، اعداد، فاصله، آپستروف، زیرخط و خط فاصله باشند."
+ },
+ "details": {
+ "none": "هیچکدام",
+ "scoreInfo": "امتیاز، نشان دهنده میانگین دقت در تشخیص و دسته بندی این شیء در بین تمام تشخیصهاست.",
+ "unknown": "ناشناخته"
}
}
diff --git a/web/public/locales/fa/views/configEditor.json b/web/public/locales/fa/views/configEditor.json
index 0a57836db0..0c97e3f624 100644
--- a/web/public/locales/fa/views/configEditor.json
+++ b/web/public/locales/fa/views/configEditor.json
@@ -1,4 +1,7 @@
{
"documentTitle": "ویرایشگر کانفیگ - فریگیت",
- "configEditor": "ویرایشگر کانفیگ"
+ "configEditor": "ویرایشگر کانفیگ",
+ "safeConfigEditor": "ویرایشگر تنظیمات (حالت امن)",
+ "safeModeDescription": "فریگیت به دلیل خطا در صحت سنجی پیکربندی، در حالت امن می باشد.",
+ "copyConfig": "کپی پیکربندی"
}
diff --git a/web/public/locales/fa/views/events.json b/web/public/locales/fa/views/events.json
index 4fc9338d64..a566947124 100644
--- a/web/public/locales/fa/views/events.json
+++ b/web/public/locales/fa/views/events.json
@@ -2,6 +2,7 @@
"alerts": "هشدارها",
"detections": "تشخیصها",
"motion": {
- "label": "حرکت"
+ "label": "حرکت",
+ "only": "فقط حرکتی"
}
}
diff --git a/web/public/locales/fa/views/explore.json b/web/public/locales/fa/views/explore.json
index 8cbff25823..7ee77df16e 100644
--- a/web/public/locales/fa/views/explore.json
+++ b/web/public/locales/fa/views/explore.json
@@ -1,4 +1,14 @@
{
"generativeAI": "هوش مصنوعی تولید کننده",
- "documentTitle": "کاوش کردن - فرایگیت"
+ "documentTitle": "کاوش کردن - فرایگیت",
+ "exploreMore": "نمایش اشیا {{label}} بیشتر",
+ "details": {
+ "timestamp": "زمان دقیق"
+ },
+ "exploreIsUnavailable": {
+ "title": "نمایش کلی موجود نمی باشد",
+ "embeddingsReindexing": {
+ "startingUp": "درحال شروع…"
+ }
+ }
}
diff --git a/web/public/locales/fa/views/exports.json b/web/public/locales/fa/views/exports.json
index a025b07523..30532619c8 100644
--- a/web/public/locales/fa/views/exports.json
+++ b/web/public/locales/fa/views/exports.json
@@ -1,5 +1,6 @@
{
"search": "جستجو",
"documentTitle": "گرفتن خروجی - فریگیت",
- "noExports": "هیچ خروجی یافت نشد"
+ "noExports": "هیچ خروجی یافت نشد",
+ "deleteExport": "حذف خروجی"
}
diff --git a/web/public/locales/fa/views/faceLibrary.json b/web/public/locales/fa/views/faceLibrary.json
index d14ad4fdc4..fa2595f8e4 100644
--- a/web/public/locales/fa/views/faceLibrary.json
+++ b/web/public/locales/fa/views/faceLibrary.json
@@ -1,6 +1,11 @@
{
"description": {
- "addFace": "مراحل اضافه کردن یک مجموعه جدید به کتابخانه چهره را دنبال کنید.",
- "placeholder": "نامی برای این مجموعه وارد کنید"
+ "addFace": "با بارگزاری اولین عکستان، یک مجموعه جدید به کتابخانه چهره اضافه کنید.",
+ "placeholder": "نامی برای این مجموعه وارد کنید",
+ "invalidName": "نام نامعتبر، نام ها فقط می توانند شامل حروف، اعداد، فاصله، آپستروف، زیرخط و خط فاصله باشند."
+ },
+ "details": {
+ "timestamp": "زمان دقیق",
+ "unknown": "ناشناخته"
}
}
diff --git a/web/public/locales/fa/views/live.json b/web/public/locales/fa/views/live.json
index b459a7cff1..97faeda8bd 100644
--- a/web/public/locales/fa/views/live.json
+++ b/web/public/locales/fa/views/live.json
@@ -1,4 +1,11 @@
{
"documentTitle": "زنده - فریگیت",
- "documentTitle.withCamera": "{{camera}} - زنده - فریگیت"
+ "documentTitle.withCamera": "{{camera}} - زنده - فریگیت",
+ "lowBandwidthMode": "حالت کاهش مصرف پهنای باند",
+ "twoWayTalk": {
+ "enable": "فعال سازی مکالمه دوطرفه"
+ },
+ "cameraAudio": {
+ "enable": "فعالسازی صدای دوربین"
+ }
}
diff --git a/web/public/locales/fa/views/recording.json b/web/public/locales/fa/views/recording.json
index 5dbfe95bef..664f93ef69 100644
--- a/web/public/locales/fa/views/recording.json
+++ b/web/public/locales/fa/views/recording.json
@@ -1,5 +1,6 @@
{
"filter": "فیلتر",
"export": "گرفتن خروجی",
- "calendar": "تفویم"
+ "calendar": "تفویم",
+ "filters": "فیلترها"
}
diff --git a/web/public/locales/fa/views/search.json b/web/public/locales/fa/views/search.json
index b4931ae700..092c45f82c 100644
--- a/web/public/locales/fa/views/search.json
+++ b/web/public/locales/fa/views/search.json
@@ -1,5 +1,9 @@
{
"search": "جستجو",
"savedSearches": "جستجوهای ذخیره شده",
- "searchFor": "جستجو برای {{inputValue}}"
+ "searchFor": "جستجو برای {{inputValue}}",
+ "button": {
+ "clear": "پاک کردن جستجو",
+ "save": "ذخیره جستجو"
+ }
}
diff --git a/web/public/locales/fa/views/settings.json b/web/public/locales/fa/views/settings.json
index ea7753a5be..4861489d3e 100644
--- a/web/public/locales/fa/views/settings.json
+++ b/web/public/locales/fa/views/settings.json
@@ -2,6 +2,9 @@
"documentTitle": {
"default": "تنظیمات - فریگیت",
"authentication": "تنظیمات احراز هویت - فریگیت",
- "camera": "تنظیمات دوربین - فریگیت"
+ "camera": "تنظیمات دوربین - فریگیت",
+ "cameraManagement": "مدیریت دوربین ها - فریگیت",
+ "cameraReview": "بازبینی تنظیمات دوربین - فریگیت",
+ "masksAndZones": "ویرایشگر ماسک و منطقه - فریگیت"
}
}
diff --git a/web/public/locales/fa/views/system.json b/web/public/locales/fa/views/system.json
index 4cc9550d7e..b33d6e5053 100644
--- a/web/public/locales/fa/views/system.json
+++ b/web/public/locales/fa/views/system.json
@@ -2,6 +2,10 @@
"documentTitle": {
"cameras": "آمار دوربینها - فریگیت",
"storage": "آمار حافظه - فریگیت",
- "general": "آمار عمومی - فریگیت"
+ "general": "آمار عمومی - فریگیت",
+ "enrichments": "آمار بهینه سازی - فریگیت",
+ "logs": {
+ "frigate": "ثبت رخدادهای فریگیت - فریگیت"
+ }
}
}
diff --git a/web/public/locales/fr/components/filter.json b/web/public/locales/fr/components/filter.json
index b8af1d69c0..0af924f8b2 100644
--- a/web/public/locales/fr/components/filter.json
+++ b/web/public/locales/fr/components/filter.json
@@ -133,5 +133,9 @@
},
"count_one": "{{count}} classe",
"count_other": "{{count}} classes"
+ },
+ "attributes": {
+ "label": "Attributs de classification",
+ "all": "Tous les attributs"
}
}
diff --git a/web/public/locales/fr/views/classificationModel.json b/web/public/locales/fr/views/classificationModel.json
index c18944fb9b..0926f4cd68 100644
--- a/web/public/locales/fr/views/classificationModel.json
+++ b/web/public/locales/fr/views/classificationModel.json
@@ -116,7 +116,8 @@
"classesUnique": "Les noms de classe doivent être uniques.",
"stateRequiresTwoClasses": "Les modèles d'état nécessitent au moins deux classes.",
"objectLabelRequired": "Veuillez sélectionner une étiquette d'objet.",
- "objectTypeRequired": "Veuillez sélectionner un type de classification."
+ "objectTypeRequired": "Veuillez sélectionner un type de classification.",
+ "noneNotAllowed": "La classe 'aucun' n'est pas autorisée."
},
"states": "États"
},
@@ -172,7 +173,9 @@
"states": "États"
},
"details": {
- "scoreInfo": "Le score représente la moyenne de la confiance de classification pour toutes les détections de cet objet."
+ "scoreInfo": "Le score représente la moyenne de la confiance de classification pour toutes les détections de cet objet.",
+ "none": "Aucun",
+ "unknown": "Inconnu"
},
"edit": {
"title": "Modifier le modèle de classification",
diff --git a/web/public/locales/fr/views/explore.json b/web/public/locales/fr/views/explore.json
index 542999b3a6..652c8bf565 100644
--- a/web/public/locales/fr/views/explore.json
+++ b/web/public/locales/fr/views/explore.json
@@ -42,13 +42,15 @@
"regenerate": "Une nouvelle description a été demandée à {{provider}}. Selon la vitesse de votre fournisseur, la régénération de la nouvelle description peut prendre un certain temps.",
"updatedSublabel": "Sous-étiquette mise à jour avec succès",
"updatedLPR": "Plaque d'immatriculation mise à jour avec succès",
- "audioTranscription": "Transcription audio demandée avec succès. Selon la vitesse de votre serveur Frigate, la transcription peut prendre un certain temps."
+ "audioTranscription": "Transcription audio demandée avec succès. Selon la vitesse de votre serveur Frigate, la transcription peut prendre un certain temps.",
+ "updatedAttributes": "Attributs mis à jour avec succès"
},
"error": {
"regenerate": "Échec de l'appel de {{provider}} pour une nouvelle description : {{errorMessage}}",
"updatedSublabelFailed": "Échec de la mise à jour de la sous-étiquette : {{errorMessage}}",
"updatedLPRFailed": "Échec de la mise à jour de la plaque d'immatriculation : {{errorMessage}}",
- "audioTranscription": "Échec de la demande de transcription audio : {{errorMessage}}"
+ "audioTranscription": "Échec de la demande de transcription audio : {{errorMessage}}",
+ "updatedAttributesFailed": "Échec de la mise à jour des attributs : {{errorMessage}}"
}
},
"tips": {
@@ -103,7 +105,12 @@
},
"score": {
"label": "Score"
- }
+ },
+ "editAttributes": {
+ "title": "Modifier les attributs",
+ "desc": "Sélectionnez les attributs de classification pour : {{label}}"
+ },
+ "attributes": "Attributs de classification"
},
"type": {
"details": "détails",
diff --git a/web/public/locales/fr/views/search.json b/web/public/locales/fr/views/search.json
index 8b76ebe5d2..a9938bff7d 100644
--- a/web/public/locales/fr/views/search.json
+++ b/web/public/locales/fr/views/search.json
@@ -26,7 +26,8 @@
"recognized_license_plate": "Plaque d'immatriculation reconnue",
"has_clip": "Avec une séquence vidéo",
"has_snapshot": "Avec un instantané",
- "max_score": "Score maximum"
+ "max_score": "Score maximum",
+ "attributes": "Attributs"
},
"searchType": {
"thumbnail": "Miniature",
diff --git a/web/public/locales/fr/views/settings.json b/web/public/locales/fr/views/settings.json
index cae223813a..d44b0117ac 100644
--- a/web/public/locales/fr/views/settings.json
+++ b/web/public/locales/fr/views/settings.json
@@ -598,7 +598,7 @@
"desc": "Gérez les comptes utilisateurs de cette instance Frigate."
},
"addUser": "Ajouter un utilisateur",
- "updatePassword": "Mettre à jour le mot de passe",
+ "updatePassword": "Réinitialiser le mot de passe",
"toast": {
"success": {
"roleUpdated": "Rôle mis à jour pour {{user}}",
@@ -618,7 +618,7 @@
"actions": "Actions",
"noUsers": "Aucun utilisateur trouvé.",
"changeRole": "Changer le rôle d'utilisateur",
- "password": "Mot de passe",
+ "password": "Réinitialiser le mot de passe",
"deleteUser": "Supprimer un utilisateur",
"role": "Rôle"
},
diff --git a/web/public/locales/fr/views/system.json b/web/public/locales/fr/views/system.json
index 53f12b0030..f261fa9966 100644
--- a/web/public/locales/fr/views/system.json
+++ b/web/public/locales/fr/views/system.json
@@ -191,7 +191,10 @@
"review_description_events_per_second": "Description de l'activité",
"object_description": "Description de l'objet",
"object_description_speed": "Vitesse de la description d'objet",
- "object_description_events_per_second": "Description de l'objet"
+ "object_description_events_per_second": "Description de l'objet",
+ "classification": "Classification {{name}}",
+ "classification_speed": "Vitesse de classification {{name}}",
+ "classification_events_per_second": "Événements de classification par seconde {{name}}"
},
"averageInf": "Temps d'inférence moyen"
}
diff --git a/web/public/locales/he/audio.json b/web/public/locales/he/audio.json
index 841dfa83bf..711a8d3384 100644
--- a/web/public/locales/he/audio.json
+++ b/web/public/locales/he/audio.json
@@ -94,7 +94,7 @@
"electronic_organ": "אורגן חשמלי",
"hammond_organ": "עוגב המונד",
"synthesizer": "סינתיסייזר",
- "sampler": "דגם",
+ "sampler": "דוגם",
"harpsichord": "צֶ'מבָּלוֹ",
"percussion": "הַקָשָׁה",
"boat": "סירה",
@@ -102,7 +102,7 @@
"motorcycle": "אופנוע",
"bus": "אוטובוס",
"bicycle": "אופניים",
- "train": "למד פנים",
+ "train": "אימון",
"skateboard": "סקייטבורד",
"camera": "מצלמה",
"howl": "יללה",
@@ -474,5 +474,30 @@
"bouncing": "הַקפָּצָה",
"whip": "שׁוֹט",
"flap": "מַדָף",
- "scratch": "לְגַרֵד"
+ "scratch": "לְגַרֵד",
+ "scrape": "סריקה",
+ "rub": "שפשוף",
+ "roll": "גלגול",
+ "crushing": "מעיכה",
+ "crumpling": "קימוט",
+ "tearing": "קריעה",
+ "beep": "ביפ",
+ "ping": "פינג",
+ "ding": "דינג",
+ "clang": "צלצול מתכתי",
+ "squeal": "חריקה",
+ "creak": "חריקה",
+ "rustle": "רשרוש",
+ "whir": "זמזום",
+ "clatter": "רעש נקישות",
+ "chird": "Chird",
+ "sizzle": "צליל חריכה",
+ "clicking": "נקישות",
+ "clickety_clack": "נקישות רצופות",
+ "rumble": "רעם נמוך",
+ "plop": "פלופ",
+ "hum": "המהום",
+ "zing": "זמזום חד",
+ "boing": "בּוֹאִינְג (צליל קפיצי / אלסטי)",
+ "crunch": "חריקה / פיצוח"
}
diff --git a/web/public/locales/he/common.json b/web/public/locales/he/common.json
index 813d44e51c..0496941bb0 100644
--- a/web/public/locales/he/common.json
+++ b/web/public/locales/he/common.json
@@ -78,7 +78,10 @@
"12hour": "MMM d, yyyy"
},
"30minutes": "30 דקות",
- "thisMonth": "החודש"
+ "thisMonth": "החודש",
+ "inProgress": "בתהליך",
+ "invalidStartTime": "זמן התחלה לא תקין",
+ "invalidEndTime": "זמן סיום לא תקין"
},
"unit": {
"speed": {
@@ -88,10 +91,23 @@
"length": {
"feet": "רגל",
"meters": "מטרים"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/hour",
+ "mbph": "MB/hour",
+ "gbph": "GB/hour"
}
},
"label": {
- "back": "אחורה"
+ "back": "אחורה",
+ "hide": "הסתר {{item}}",
+ "show": "הצג {{item}}",
+ "ID": "ID",
+ "none": "ללא",
+ "all": "הכל"
},
"button": {
"apply": "החל",
@@ -128,7 +144,8 @@
"on": "פעיל",
"download": "הורדה",
"info": "מידע",
- "next": "הבא"
+ "next": "הבא",
+ "continue": "המשך"
},
"menu": {
"system": "מערכת",
@@ -229,7 +246,8 @@
"current": "משתמש מחובר: {{user}}",
"setPassword": "קביעת סיסמה",
"title": "משתמש"
- }
+ },
+ "classification": "סיווג"
},
"toast": {
"copyUrlToClipboard": "כתובת האתר המועתקת.",
@@ -270,5 +288,17 @@
"desc": "דף לא נמצא"
},
"selectItem": "בחירה:{{item}}",
- "readTheDocumentation": "קרא את התיעוד"
+ "readTheDocumentation": "קרא את התיעוד",
+ "list": {
+ "two": "{{0}} ו־{{1}}",
+ "many": "{{items}}, ו־{{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "אופציונלי",
+ "internalID": "המזהה הפנימי ש־Frigate משתמש בו בהגדרות ובמסד הנתונים"
+ },
+ "information": {
+ "pixels": "{{area}}px"
+ }
}
diff --git a/web/public/locales/he/components/auth.json b/web/public/locales/he/components/auth.json
index 17b28cba1f..0f6caf3cf4 100644
--- a/web/public/locales/he/components/auth.json
+++ b/web/public/locales/he/components/auth.json
@@ -10,6 +10,7 @@
"webUnknownError": "שגיאה לא ידועה, בדוק את הלוגים.",
"rateLimit": "חרגת מהמגבלת בקשות. נסה שוב מאוחר יותר.",
"loginFailed": "ההתחברות נכשלה"
- }
+ },
+ "firstTimeLogin": "מתחבר בפעם הראשונה? פרטי ההתחברות מודפסים בלוגים של פריגייט."
}
}
diff --git a/web/public/locales/he/components/camera.json b/web/public/locales/he/components/camera.json
index f9de9a6c14..184b192bd6 100644
--- a/web/public/locales/he/components/camera.json
+++ b/web/public/locales/he/components/camera.json
@@ -41,7 +41,8 @@
"label": "מצב תאימות",
"desc": "הפעל אפשרות זו רק אם השידור החי של המצלמה שלך מציג עיוותים בצבע ויש לו קו אלכסוני בצד ימין של התמונה."
}
- }
+ },
+ "birdseye": "מבט על"
},
"edit": "ערכית קבוצת מצלמות",
"delete": {
diff --git a/web/public/locales/he/components/dialog.json b/web/public/locales/he/components/dialog.json
index 472d3d541e..85353b9938 100644
--- a/web/public/locales/he/components/dialog.json
+++ b/web/public/locales/he/components/dialog.json
@@ -15,7 +15,8 @@
"failed": "נכשל בהתחלת הייצוא: {{error}}",
"noVaildTimeSelected": "לא נבחר טווח זמן תקף"
},
- "success": "הייצוא הוחל בהצלחה. הצג את הקובץ בתיקייה /ייצוא."
+ "success": "הייצוא התחיל בהצלחה. ניתן לצפות בקובץ בעמוד הייצוא.",
+ "view": "תצוגה"
},
"time": {
"end": {
@@ -108,7 +109,16 @@
"button": {
"export": "ייצוא",
"markAsReviewed": "סמן כסוקר",
- "deleteNow": "מחיקה כעת"
+ "deleteNow": "מחיקה כעת",
+ "markAsUnreviewed": "סימון כלא נבדק"
}
+ },
+ "imagePicker": {
+ "selectImage": "בחר תמונה ממוזערת של אובייקט במעקב",
+ "unknownLabel": "תמונת הטריגר נשמרה",
+ "search": {
+ "placeholder": "חיפוש לפי תווית או תווית משנה…"
+ },
+ "noImages": "לא נמצאו תמונות ממוזערות עבור מצלמה זו"
}
}
diff --git a/web/public/locales/he/components/filter.json b/web/public/locales/he/components/filter.json
index 17f7914cfc..b11aba954d 100644
--- a/web/public/locales/he/components/filter.json
+++ b/web/public/locales/he/components/filter.json
@@ -5,7 +5,7 @@
"tips": "עליך תחילה לסנן לפי אובייקטים במעקב שיש להם תמונת מצב.נתיבים
קווים ועיגולים יציינו נקודות משמעותיות שבהן האובייקט במעקב נע במהלך מחזור חייו.
" + } }, "users": { "title": "משתמשים", @@ -436,7 +458,7 @@ "desc": "נהל את חשבונות המשתמשים של מופע Frigate זה." }, "addUser": "הוספת משתמש", - "updatePassword": "עדכון סיסמה", + "updatePassword": "איפוס סיסמה", "toast": { "success": { "createUser": "המשתמש {{user}} נוצר בהצלחה", @@ -456,7 +478,7 @@ "role": "הרשאות", "noUsers": "לא נמצאו משתמשים.", "changeRole": "שינוי הרשאות משתמש", - "password": "סיסמה", + "password": "איפוס סיסמה", "deleteUser": "מחיקת משתמש", "username": "שם משתמש" }, @@ -482,7 +504,16 @@ "veryStrong": "מאוד חזק" }, "match": "סיסמאות תואמות", - "notMatch": "הסיסמאות אינן תואמות." + "notMatch": "הסיסמאות אינן תואמות.", + "show": "הצג סיסמה", + "hide": "הסתר סיסמה", + "requirements": { + "title": "דרישות סיסמה:", + "length": "לפחות 8 תווים", + "uppercase": "לפחות אות גדולה אחת", + "digit": "לפחות ספרה אחת", + "special": "לפחות תו מיוחד אחד (!@#$%^&*(),.?\":{}|<>)" + } }, "newPassword": { "title": "סיסמה חדשה", @@ -492,7 +523,11 @@ } }, "usernameIsRequired": "נדרש שם משתמש", - "passwordIsRequired": "נדרשת סיסמה" + "passwordIsRequired": "נדרשת סיסמה", + "currentPassword": { + "title": "סיסמה נוכחית", + "placeholder": "הזן את הסיסמה הנוכחית שלך" + } }, "createUser": { "title": "יצירת משתמש חדש", @@ -510,7 +545,12 @@ "doNotMatch": "הסיסמאות אינן תואמות", "updatePassword": "עדכון סיסמה עבור {{username}}", "setPassword": "קבע סיסמה", - "desc": "צור סיסמה חזקה כדי לאבטח חשבון זה." + "desc": "צור סיסמה חזקה כדי לאבטח חשבון זה.", + "currentPasswordRequired": "נדרשת הסיסמה הנוכחית", + "incorrectCurrentPassword": "הסיסמה הנוכחית שגויה", + "passwordVerificationFailed": "נכשל באימות הסיסמה", + "multiDeviceWarning": "כל מכשיר אחר שבו אתה מחובר יידרש להתחבר מחדש בתוך {{refresh_time}}.", + "multiDeviceAdmin": "ניתן גם לאלץ את כל המשתמשים להתחבר מחדש באופן מיידי על־ידי החלפת מפתח ה־JWT שלך." }, "changeRole": { "title": "שינוי הרשאות משתמש", @@ -521,7 +561,8 @@ "admin": "מנהל", "adminDesc": "גישה מלאה לכל התכונות.", "viewer": "צופה", - "viewerDesc": "מוגבל לדשבורד שידור חי, סקירה, גילוי וייצוא בלבד." + "viewerDesc": "מוגבל לדשבורד שידור חי, סקירה, גילוי וייצוא בלבד.", + "customDesc": "תפקיד מותאם אישית עם גישה למצלמות מסוימות." } } } @@ -624,5 +665,454 @@ "success": "הגדרות Frigate+ נשמרו. הפעל מחדש את Frigate כדי להחיל את השינויים.", "error": "שמירת שינויי התצורה נכשלה: {{errorMessage}}" } + }, + "cameraWizard": { + "step1": { + "brandInformation": "פרטי יצרן", + "brandUrlFormat": "למצלמות עם פורמט כתובת RTSP כמו: {{exampleUrl}}", + "connectionSettings": "הגדרות חיבור", + "detectionMethod": "שיטת זיהוי זרם", + "onvifPort": "פורט ONVIF", + "probeMode": "בדיקת מצלמה", + "manualMode": "בחירה ידנית", + "detectionMethodDescription": "בדוק את המצלמה באמצעות ONVIF (אם נתמך) כדי למצוא את כתובות הזרמים שלה, או בחר ידנית את יצרן המצלמה כדי להשתמש בכתובות מוגדרות מראש.\nכדי להזין כתובת RTSP מותאמת אישית, בחר בשיטה ידנית ואז בחר \"אחר\".", + "onvifPortDescription": "במצלמות שתומכות ב-ONVIF, זה בדרך כלל 80 או 8080.", + "useDigestAuth": "שימוש באימות Digest", + "useDigestAuthDescription": "השתמש באימות HTTP Digest עבור ONVIF. בחלק מהמצלמות נדרש שם משתמש/סיסמה ייעודיים ל-ONVIF, ולא משתמש ה-Admin הרגיל.", + "errors": { + "brandOrCustomUrlRequired": "בחר יצרן מצלמה והזן Host/IP, או בחר “אחר” והזן כתובת מותאמת אישית", + "nameRequired": "שם המצלמה הוא שדה חובה", + "nameLength": "שם המצלמה חייב להיות באורך של עד 64 תווים", + "invalidCharacters": "שם המצלמה מכיל תווים לא חוקיים", + "nameExists": "שם המצלמה כבר קיים", + "customUrlRtspRequired": "כתובות מותאמות אישית חייבות להתחיל ב־\"rtsp://\". עבור זרמי מצלמה שאינם RTSP נדרשת הגדרה ידנית." + }, + "description": "הזן את פרטי המצלמה ובחר אם לבצע בדיקה למצלמה או לבחור ידנית את היצרן.", + "cameraName": "שם מצלמה", + "cameraNamePlaceholder": "לדוגמה: front_door או סקירת החצר האחורית", + "host": "HOST / כתובת IP", + "port": "פורט", + "username": "שם משתמש", + "usernamePlaceholder": "אופציונלי", + "password": "סיסמה", + "passwordPlaceholder": "אופציונלי", + "selectTransport": "בחר פרוטוקול תעבורה", + "cameraBrand": "יצרן מצלמה", + "selectBrand": "בחר יצרן מצלמה עבור תבנית כתובת ה-URL", + "customUrl": "כתובת (URL) זרם מותאמת אישית", + "customUrlPlaceholder": "rtsp://username:password@host:port/path" + }, + "step2": { + "description": "בדוק את המצלמה כדי לאתר זרמים זמינים, או הגדר ידנית את ההגדרות לפי שיטת הזיהוי שבחרת.", + "testSuccess": "בדיקת החיבור הצליחה!", + "testFailed": "בדיקת החיבור נכשלה. בדוק את הנתונים שהזנת ונסה שוב.", + "testFailedTitle": "הבדיקה נכשלה", + "streamDetails": "פרטי זרם", + "probing": "בודק מצלמה...", + "retry": "נסה שוב", + "testing": { + "probingMetadata": "בודק את נתוני המטא של המצלמה…", + "fetchingSnapshot": "שולף תמונת מצב מהמצלמה…" + }, + "probeFailed": "בדיקת המצלמה נכשלה: {{error}}", + "probingDevice": "בודק את ההתקן…", + "probeSuccessful": "הבדיקה הצליחה", + "probeError": "בדיקה נכשלה", + "probeNoSuccess": "הבדיקה לא הצליחה", + "deviceInfo": "מידע על ההתקן", + "manufacturer": "יצרן", + "model": "דגם", + "firmware": "קושחה", + "profiles": "פרופילים", + "ptzSupport": "תמיכה ב-PTZ", + "autotrackingSupport": "תמיכה ב-Autotracking", + "presets": "פריסטים", + "rtspCandidates": "כתובות RTSP מוצעות", + "rtspCandidatesDescription": "כתובות ה־RTSP הבאות נמצאו בבדיקת המצלמה. בצע בדיקת חיבור כדי לצפות בנתוני הזרם (Metadata).", + "noRtspCandidates": "לא נמצאו כתובות RTSP מהמצלמה. ייתכן שפרטי ההתחברות שגויים, או שהמצלמה לא תומכת ב-ONVIF, או שהשיטה שבה השתמשנו לשליפת כתובות RTSP אינה נתמכת. חזור אחורה והזן את כתובת ה-RTSP ידנית.", + "candidateStreamTitle": "אפשרות {{number}}", + "useCandidate": "השתמש", + "uriCopy": "העתק", + "uriCopied": "הכתובת (URI) הועתקה ללוח", + "testConnection": "בדיקת חיבור", + "toggleUriView": "לחץ כדי להציג/להסתיר את הכתובת המלאה", + "connected": "מחובר", + "notConnected": "לא מחובר", + "errors": { + "hostRequired": "כתובת Host/IP היא שדה חובה" + } + }, + "step3": { + "description": "הגדר תפקידי זרם (Roles) והוסף זרמים נוספים למצלמה שלך.", + "streamsTitle": "זרמי מצלמה", + "addStream": "הוסף זרם", + "addAnotherStream": "הוסף זרם נוסף", + "streamTitle": "זרם {{number}}", + "streamUrl": "כתובת הזרם (URL)", + "selectStream": "בחר זרם", + "searchCandidates": "חיפוש אפשרויות…", + "noStreamFound": "לא נמצא זרם", + "url": "URL", + "resolution": "רזולוציה", + "selectResolution": "בחר רזולוציה", + "quality": "איכות", + "selectQuality": "בחר איכות", + "roles": "תפקידים", + "roleLabels": { + "detect": "זיהוי אובייקטים", + "record": "הקלטה", + "audio": "קול (Audio)" + }, + "testStream": "בדיקת חיבור", + "testSuccess": "בדיקת הזרם הצליחה!", + "testFailed": "בדיקת הזרם נכשלה", + "testFailedTitle": "הבדיקה נכשלה", + "connected": "מחובר", + "notConnected": "לא מחובר", + "featuresTitle": "תכונות", + "go2rtc": "הפחתת חיבורים למצלמה", + "detectRoleWarning": "כדי להמשיך, לפחות זרם אחד חייב להיות עם ייעוד \"detect\".", + "rolesPopover": { + "title": "ייעודי הזרם", + "detect": "הזרם הראשי לזיהוי אובייקטים.", + "record": "שומר קטעים מזרם הווידאו לפי הגדרות התצורה.", + "audio": "זרם לזיהוי מבוסס אודיו." + }, + "featuresPopover": { + "title": "תכונות הזרם", + "description": "השתמש ב־go2rtc לריסטרים (Restream) כדי להפחית את מספר החיבורים למצלמה שלך." + }, + "streamUrlPlaceholder": "rtsp://username:password@host:port/path" + }, + "step4": { + "description": "אימות וניתוח סופיים לפני שמירת המצלמה החדשה. התחבר לכל זרם לפני השמירה.", + "validationTitle": "אימות הזרם", + "connectAllStreams": "התחברות לכל הזרמים", + "reconnectionSuccess": "חיבור מחדש הצליח.", + "reconnectionPartial": "חלק מהזרמים לא הצליחו להתחבר מחדש.", + "streamUnavailable": "תצוגה מקדימה של הזרם אינה זמינה", + "reload": "טעינה מחדש", + "connecting": "מתחבר...", + "streamTitle": "זרם {{number}}", + "valid": "תקין", + "failed": "נכשל", + "notTested": "לא נבדק", + "connectStream": "התחבר", + "connectingStream": "מתחבר", + "disconnectStream": "נתק", + "estimatedBandwidth": "רוחב־פס משוער", + "roles": "ייעודים", + "ffmpegModule": "שימוש במצב תאימות לזרם", + "ffmpegModuleDescription": "אם הזרם לא נטען אחרי כמה ניסיונות, נסה להפעיל את זה. כשהאפשרות פעילה, Frigate ישתמש במודול ffmpeg יחד עם go2rtc. זה עשוי לשפר תאימות עם זרמים של חלק מהמצלמות.", + "none": "ללא", + "error": "שגיאה", + "streamValidated": "הזרם {{number}} אומת בהצלחה", + "streamValidationFailed": "אימות הזרם {{number}} נכשל", + "saveAndApply": "שמירת מצלמה חדשה", + "saveError": "תצורה לא תקינה. בדוק את ההגדרות שלך.", + "issues": { + "title": "אימות הזרם", + "videoCodecGood": "קידוד הווידאו הוא {{codec}}.", + "audioCodecGood": "קידוד האודיו הוא {{codec}}.", + "resolutionHigh": "רזולוציה של {{resolution}} עשויה לגרום לשימוש מוגבר במשאבים.", + "resolutionLow": "רזולוציה של {{resolution}} עשויה להיות נמוכה מדי לזיהוי אמין של אובייקטים קטנים.", + "noAudioWarning": "לא זוהה אודיו בזרם הזה, ולכן ההקלטות יהיו ללא שמע.", + "audioCodecRecordError": "כדי לכלול אודיו בהקלטות נדרש קידוד שמע AAC.", + "audioCodecRequired": "כדי לאפשר זיהוי אודיו נדרש זרם שמע.", + "restreamingWarning": "הפחתת מספר החיבורים למצלמה עבור זרם ההקלטה (record) עשויה להעלות מעט את השימוש ב־CPU.", + "brands": { + "reolink-rtsp": "RTSP של Reolink לא מומלץ. הפעל HTTP בהגדרות הקושחה של המצלמה, ואז הפעל מחדש את אשף ההגדרה.", + "reolink-http": "בזרמי HTTP של Reolink מומלץ להשתמש ב־FFmpeg לתאימות טובה יותר. הפעל עבור הזרם הזה את האפשרות “שימוש במצב תאימות לזרם”." + }, + "dahua": { + "substreamWarning": "זרם משנה 1 נעול לרזולוציה נמוכה. מצלמות רבות של Dahua / Amcrest / EmpireTech תומכות בזרמי משנה נוספים שצריך להפעיל בהגדרות המצלמה מומלץ לבדוק אם קיימים זרמי משנה כאלה ולהשתמש בהם במידה וזמינים." + }, + "hikvision": { + "substreamWarning": "זרם משנה 1 נעול לרזולוציה נמוכה. מצלמות רבות של Hikvision תומכות בזרמי משנה נוספים שצריך להפעיל בהגדרות המצלמה. מומלץ לבדוק אם קיימים זרמי משנה כאלה ולהשתמש בהם, אם הם זמינים." + } + } + }, + "title": "הוסף מצלמה", + "description": "בצע את השלבים הבאים כדי להוסיף מצלמה חדשה להתקנת ה־Frigate שלך.", + "steps": { + "nameAndConnection": "שם וחיבור", + "probeOrSnapshot": "בדיקה (Probe) או צילום תמונה (Snapshot)", + "streamConfiguration": "הגדרות זרם", + "validationAndTesting": "אימות ובדיקה" + }, + "save": { + "success": "המצלמה החדשה {{cameraName}} נשמרה בהצלחה.", + "failure": "שגיאה בשמירת {{cameraName}}." + }, + "testResultLabels": { + "resolution": "רזולוציה", + "video": "וידיאו", + "audio": "אודיו", + "fps": "FPS" + }, + "commonErrors": { + "noUrl": "אנא ספק כתובת URL תקינה לזרם", + "testFailed": "בדיקת הזרם נכשלה: {{error}}" + } + }, + "cameraManagement": { + "title": "ניהול מצלמות", + "addCamera": "הוספת מצלמה חדשה", + "editCamera": "עריכת מצלמה:", + "selectCamera": "בחירת מצלמה", + "backToSettings": "חזרה להגדרות מצלמה", + "streams": { + "title": "הפעלה / השבתה של מצלמות", + "desc": "השבת מצלמה זמנית עד ש־Frigate יופעל מחדש. השבתת מצלמה עוצרת לחלוטין את העיבוד של Frigate עבור זרמי המצלמה הזו. זיהוי, הקלטה וניפוי שגיאות לא יהיו זמינים.{{label}}?",
+ "ask_an": "Da li je ovaj objekt {{label}}?",
+ "ask_full": "Da li je ovaj objekt {{untranslatedLabel}} ({{translatedLabel}})?"
+ },
+ "state": {
+ "submitted": "Poslano"
+ }
+ }
+ },
+ "video": {
+ "viewInHistory": "Pogledaj u povijesti"
+ }
+ },
+ "export": {
+ "time": {
+ "lastHour_one": "Zadnji sat",
+ "lastHour_few": "Zadnja {{count}} sata",
+ "lastHour_other": "Zadnjih {{count}} sati",
+ "start": {
+ "title": "Vrijeme početka",
+ "label": "Odaberi vrijeme početka"
+ },
+ "end": {
+ "title": "Vrijeme kraja",
+ "label": "Odaberi vrijeme kraja"
+ }
+ }
}
}
diff --git a/web/public/locales/hr/components/filter.json b/web/public/locales/hr/components/filter.json
index 37845aa999..d501197435 100644
--- a/web/public/locales/hr/components/filter.json
+++ b/web/public/locales/hr/components/filter.json
@@ -2,5 +2,29 @@
"filter": "Filter",
"classes": {
"label": "Klase"
- }
+ },
+ "labels": {
+ "label": "Oznake",
+ "all": {
+ "title": "Sve oznake",
+ "short": "Oznake"
+ },
+ "count_one": "{{count}} oznake",
+ "count_other": "{{count}} oznake"
+ },
+ "zones": {
+ "label": "Zone",
+ "all": {
+ "title": "Sve zone",
+ "short": "Zone"
+ }
+ },
+ "dates": {
+ "selectPreset": "Odaberi predložak…",
+ "all": {
+ "title": "Svi datumi",
+ "short": "Datumi"
+ }
+ },
+ "more": "Više filtera"
}
diff --git a/web/public/locales/hr/components/icons.json b/web/public/locales/hr/components/icons.json
index b973f10727..f6c0fa5d54 100644
--- a/web/public/locales/hr/components/icons.json
+++ b/web/public/locales/hr/components/icons.json
@@ -1,5 +1,8 @@
{
"iconPicker": {
- "selectIcon": "Odaberite ikonu"
+ "selectIcon": "Odaberite ikonu",
+ "search": {
+ "placeholder": "Traži ikonu…"
+ }
}
}
diff --git a/web/public/locales/hr/components/input.json b/web/public/locales/hr/components/input.json
index ffeca81c5c..0df384beab 100644
--- a/web/public/locales/hr/components/input.json
+++ b/web/public/locales/hr/components/input.json
@@ -1,7 +1,10 @@
{
"button": {
"downloadVideo": {
- "label": "Preuzmi video"
+ "label": "Preuzmi video",
+ "toast": {
+ "success": "Preuzimanje vašeg videa za recenziju je počelo."
+ }
}
}
}
diff --git a/web/public/locales/hr/components/player.json b/web/public/locales/hr/components/player.json
index 752b358dcd..f322719041 100644
--- a/web/public/locales/hr/components/player.json
+++ b/web/public/locales/hr/components/player.json
@@ -1,3 +1,19 @@
{
- "noRecordingsFoundForThisTime": "Nisu pronađene snimke za ovo vrijeme"
+ "noRecordingsFoundForThisTime": "Nisu pronađene snimke za ovo vrijeme",
+ "submitFrigatePlus": {
+ "title": "Pošalji ovaj kadar u Frigate+?",
+ "submit": "Pošalji"
+ },
+ "cameraDisabled": "Kamera je onemogućena",
+ "stats": {
+ "streamType": {
+ "short": "Vrsta"
+ },
+ "latency": {
+ "value": "{{seconds}} sekundi",
+ "short": {
+ "value": "{{seconds}} sekundi"
+ }
+ }
+ }
}
diff --git a/web/public/locales/hr/objects.json b/web/public/locales/hr/objects.json
index afc1338078..1a9a743921 100644
--- a/web/public/locales/hr/objects.json
+++ b/web/public/locales/hr/objects.json
@@ -1,3 +1,21 @@
{
- "person": "Osoba"
+ "person": "Osoba",
+ "bicycle": "Bicikl",
+ "car": "Automobil",
+ "motorcycle": "Motocikl",
+ "airplane": "Zrakoplov",
+ "bus": "Autobus",
+ "train": "Vlak",
+ "boat": "Čamac",
+ "traffic_light": "Semafor",
+ "fire_hydrant": "Hidrant",
+ "street_sign": "Prometni znak",
+ "stop_sign": "Znak stop",
+ "bench": "Klupa",
+ "bird": "Ptica",
+ "cat": "Mačka",
+ "dog": "Pas",
+ "horse": "Konj",
+ "sheep": "Ovca",
+ "cow": "Krava"
}
diff --git a/web/public/locales/hr/views/classificationModel.json b/web/public/locales/hr/views/classificationModel.json
index 0967ef424b..e3070af27b 100644
--- a/web/public/locales/hr/views/classificationModel.json
+++ b/web/public/locales/hr/views/classificationModel.json
@@ -1 +1,22 @@
-{}
+{
+ "documentTitle": "Klasifikacijski modeli - Frigate",
+ "button": {
+ "deleteImages": "Obriši slike",
+ "trainModel": "Treniraj model",
+ "addClassification": "Dodaj klasifikaciju",
+ "deleteModels": "Obriši modele",
+ "editModel": "Uredi model"
+ },
+ "tooltip": {
+ "trainingInProgress": "Model se trenutno trenira",
+ "modelNotReady": "Model nije spreman za treniranje"
+ },
+ "details": {
+ "unknown": "Nepoznato"
+ },
+ "toast": {
+ "success": {
+ "deletedImage": "Obrisane slike"
+ }
+ }
+}
diff --git a/web/public/locales/hr/views/configEditor.json b/web/public/locales/hr/views/configEditor.json
index 6443eaa831..fe4011ecc1 100644
--- a/web/public/locales/hr/views/configEditor.json
+++ b/web/public/locales/hr/views/configEditor.json
@@ -1,3 +1,12 @@
{
- "documentTitle": "Uređivač konfiguracije - Frigate"
+ "documentTitle": "Uređivač konfiguracije - Frigate",
+ "copyConfig": "Kopiraj konfiguraciju",
+ "saveAndRestart": "Spremi i pokreni ponovno",
+ "saveOnly": "Samo spremi",
+ "confirm": "Izađi bez spremanja?",
+ "toast": {
+ "error": {
+ "savingError": "Greška pri spremanju konfiguracije"
+ }
+ }
}
diff --git a/web/public/locales/hr/views/events.json b/web/public/locales/hr/views/events.json
index b38704712e..47c1530f25 100644
--- a/web/public/locales/hr/views/events.json
+++ b/web/public/locales/hr/views/events.json
@@ -1,3 +1,26 @@
{
- "alerts": "Upozorenja"
+ "alerts": "Upozorenja",
+ "detections": "Detekcije",
+ "motion": {
+ "label": "Pokret",
+ "only": "Samo pokret"
+ },
+ "allCameras": "Sve kamere",
+ "empty": {
+ "alert": "Nema uzbuna za pregledati",
+ "detection": "Nema detekcija za pregled",
+ "motion": "Nema podataka o pokretu"
+ },
+ "timeline": "Vremenska linija",
+ "timeline.aria": "Odaberi vremensku liniju",
+ "zoomOut": "Udalji",
+ "events": {
+ "label": "Događaji",
+ "aria": "Odaberi događaje",
+ "noFoundForTimePeriod": "Nema pronađenih događaja za ovaj vremenski period."
+ },
+ "zoomIn": "Približi",
+ "detail": {
+ "label": "Detalji"
+ }
}
diff --git a/web/public/locales/hr/views/explore.json b/web/public/locales/hr/views/explore.json
index c4f84e742f..114e4f8935 100644
--- a/web/public/locales/hr/views/explore.json
+++ b/web/public/locales/hr/views/explore.json
@@ -1,3 +1,24 @@
{
- "documentTitle": "Istražite - Frigate"
+ "documentTitle": "Istražite - Frigate",
+ "generativeAI": "Generativni AI",
+ "exploreIsUnavailable": {
+ "title": "Istraživanje je nedostupno",
+ "embeddingsReindexing": {
+ "startingUp": "Pokretanje…",
+ "finishingShortly": "Završava uskoro",
+ "estimatedTime": "Procjenjeno preostalo vrijeme:"
+ },
+ "downloadingModels": {
+ "setup": {
+ "textModel": "Tekstualni model"
+ }
+ }
+ },
+ "details": {
+ "timestamp": "Vremenska oznaka"
+ },
+ "trackedObjectDetails": "Detalji praćenog objekta",
+ "type": {
+ "details": "detalji"
+ }
}
diff --git a/web/public/locales/hr/views/exports.json b/web/public/locales/hr/views/exports.json
index 529e7c42e0..6a4956e699 100644
--- a/web/public/locales/hr/views/exports.json
+++ b/web/public/locales/hr/views/exports.json
@@ -1,4 +1,18 @@
{
"documentTitle": "Izvoz - Frigate",
- "search": "Pretraga"
+ "search": "Pretraga",
+ "deleteExport.desc": "Da li si siguran da želiš obrisati {{exportName}}?",
+ "editExport": {
+ "saveExport": "Spremi izvoz",
+ "title": "Preimenuj izvoz",
+ "desc": "Unesite novo ime ovog izvoza."
+ },
+ "tooltip": {
+ "shareExport": "Podijeli izvoz",
+ "downloadVideo": "Preuzmi video",
+ "editName": "Uredi ime",
+ "deleteExport": "Obriši izvoz"
+ },
+ "noExports": "Izvozi nisu pronađeni",
+ "deleteExport": "Obriši izvoz"
}
diff --git a/web/public/locales/hr/views/faceLibrary.json b/web/public/locales/hr/views/faceLibrary.json
index 7f5754c9a8..b500f4b90c 100644
--- a/web/public/locales/hr/views/faceLibrary.json
+++ b/web/public/locales/hr/views/faceLibrary.json
@@ -1,6 +1,7 @@
{
"description": {
- "addFace": "Vodič za dodavanje nove kolekcije u Biblioteku lica."
+ "addFace": "Dodaj novu kolekcije u Biblioteku lica učitavanjem prve slike.",
+ "placeholder": "Unesi ime za ovu kolekciju"
},
"steps": {
"faceName": "Unesi Ime Lica",
@@ -24,5 +25,17 @@
"desc_one": "Jeste li sigurni da želite izbrisati {{count}} lice? Ova se radnja ne može poništiti.",
"desc_few": "Jeste li sigurni da želite izbrisati {{count}} lica? Ova se radnja ne može poništiti.",
"desc_other": "Jeste li sigurni da želite izbrisati {{count}} lica? Ova se radnja ne može poništiti."
+ },
+ "details": {
+ "timestamp": "Vremenska oznaka",
+ "unknown": "Nepoznato"
+ },
+ "documentTitle": "Biblioteka lica - Frigate",
+ "uploadFaceImage": {
+ "title": "Učitaj sliku lica"
+ },
+ "collections": "Kolekcije",
+ "createFaceLibrary": {
+ "new": "Stvori novo lice"
}
}
diff --git a/web/public/locales/hr/views/live.json b/web/public/locales/hr/views/live.json
index 93f59972a7..edf847efc6 100644
--- a/web/public/locales/hr/views/live.json
+++ b/web/public/locales/hr/views/live.json
@@ -1,3 +1,46 @@
{
- "documentTitle": "Uživo - Frigate"
+ "documentTitle": "Uživo - Frigate",
+ "documentTitle.withCamera": "{{camera}} - Uživo - Frigate",
+ "twoWayTalk": {
+ "enable": "Omogući dvosmjerni razgovor",
+ "disable": "Onemogući dvosmjerni razgovor"
+ },
+ "cameraAudio": {
+ "enable": "Omogući zvuk kamere",
+ "disable": "Onemogući zvuk kamere"
+ },
+ "ptz": {
+ "move": {
+ "clickMove": {
+ "label": "Klikni unutar kadra da centriraš kameru",
+ "enable": "Omogući pomicanje klikom",
+ "disable": "Onemogući pomicanje klikom"
+ },
+ "left": {
+ "label": "Pomakni PTZ kameru u lijevo"
+ },
+ "up": {
+ "label": "Pomakni PTZ kameru gore"
+ },
+ "down": {
+ "label": "Pomakni PTZ kameru dolje"
+ },
+ "right": {
+ "label": "Pomakni PTZ kameru u desno"
+ }
+ },
+ "zoom": {
+ "in": {
+ "label": "Približi PTZ kameru"
+ },
+ "out": {
+ "label": "Udalji PTZ kameru"
+ }
+ },
+ "focus": {
+ "in": {
+ "label": "Izoštri fokus PTZ kamere"
+ }
+ }
+ }
}
diff --git a/web/public/locales/hr/views/recording.json b/web/public/locales/hr/views/recording.json
index 110cf71ebc..8470b3e3d4 100644
--- a/web/public/locales/hr/views/recording.json
+++ b/web/public/locales/hr/views/recording.json
@@ -1,4 +1,12 @@
{
"filter": "Filter",
- "export": "Izvoz"
+ "export": "Izvoz",
+ "calendar": "Kalendar",
+ "filters": "Filteri",
+ "toast": {
+ "error": {
+ "endTimeMustAfterStartTime": "Vrijeme završetka mora biti nakon vremena početka",
+ "noValidTimeSelected": "Nije izabran ispravan vremenski raspon"
+ }
+ }
}
diff --git a/web/public/locales/hr/views/search.json b/web/public/locales/hr/views/search.json
index 370cb28b91..c31ff77c89 100644
--- a/web/public/locales/hr/views/search.json
+++ b/web/public/locales/hr/views/search.json
@@ -1,3 +1,25 @@
{
- "search": "Pretraga"
+ "search": "Pretraga",
+ "savedSearches": "Spremljene pretrage",
+ "searchFor": "Pretraži {{inputValue}}",
+ "button": {
+ "clear": "Izbriši pretragu",
+ "save": "Spremi pretragu",
+ "delete": "Obriši spremljene pretrage",
+ "filterInformation": "Filtriraj informacije",
+ "filterActive": "Filteri aktivni"
+ },
+ "filter": {
+ "label": {
+ "cameras": "Kamere",
+ "labels": "Oznake",
+ "zones": "Zone",
+ "search_type": "Pretraži vrstu",
+ "time_range": "Vremenski raspon",
+ "attributes": "Atributi",
+ "before": "Prije",
+ "after": "Poslije",
+ "min_score": "Min ocjena"
+ }
+ }
}
diff --git a/web/public/locales/hr/views/settings.json b/web/public/locales/hr/views/settings.json
index c2153a6099..500361bf33 100644
--- a/web/public/locales/hr/views/settings.json
+++ b/web/public/locales/hr/views/settings.json
@@ -1,5 +1,20 @@
{
"documentTitle": {
- "default": "Postavke - Frigate"
+ "default": "Postavke - Frigate",
+ "authentication": "Postavke autentikacije - Frigate",
+ "cameraManagement": "Upravljaj kamerama - Frigate",
+ "masksAndZones": "Uređivač maski i zona - Frigate",
+ "general": "Postavke sučelja - Frigate",
+ "frigatePlus": "Frigate+ postavke - Frigate",
+ "notifications": "Postavke notifikacija - Frigate",
+ "enrichments": "Postavke obogaćivanja - Frigate"
+ },
+ "menu": {
+ "ui": "Sučelje",
+ "cameraReview": "Pregled",
+ "enrichments": "Obogaćenja",
+ "masksAndZones": "Maske / Zone",
+ "triggers": "Okidači",
+ "users": "Korisnici"
}
}
diff --git a/web/public/locales/hr/views/system.json b/web/public/locales/hr/views/system.json
index 076c823a0a..417209030a 100644
--- a/web/public/locales/hr/views/system.json
+++ b/web/public/locales/hr/views/system.json
@@ -1,5 +1,25 @@
{
"documentTitle": {
- "cameras": "Statistika kamera - Frigate"
+ "cameras": "Statistika kamera - Frigate",
+ "general": "Generalne statistike - Frigate",
+ "logs": {
+ "go2rtc": "Go2RTC dnevnik - Frigate",
+ "nginx": "Nginx dnevnik - Frigate",
+ "frigate": "Frigate logovi - Frigate"
+ },
+ "storage": "Statistika pohrane - Frigate",
+ "enrichments": "Statistika obogaćivanja - Frigate"
+ },
+ "title": "Sustav",
+ "logs": {
+ "download": {
+ "label": "Preuzmi dnevnik"
+ },
+ "type": {
+ "label": "Vrsta",
+ "timestamp": "Vremenska oznaka",
+ "tag": "Oznaka",
+ "message": "Poruka"
+ }
}
}
diff --git a/web/public/locales/id/common.json b/web/public/locales/id/common.json
index 9072354dce..34ededad10 100644
--- a/web/public/locales/id/common.json
+++ b/web/public/locales/id/common.json
@@ -9,7 +9,8 @@
"untilForTime": "Hingga {{time}}",
"last7": "7 hari terakhir",
"last14": "14 hari terakhir",
- "last30": "30 hari terakhir"
+ "last30": "30 hari terakhir",
+ "thisWeek": "Minggu Ini"
},
"readTheDocumentation": "Baca dokumentasi"
}
diff --git a/web/public/locales/id/components/dialog.json b/web/public/locales/id/components/dialog.json
index 5d5f20fb81..1a2c284fb7 100644
--- a/web/public/locales/id/components/dialog.json
+++ b/web/public/locales/id/components/dialog.json
@@ -17,7 +17,9 @@
"review": {
"question": {
"label": "Konfirmasi label ini untuk Frigate Plus",
- "ask_a": "Apakah objek ini adalah sebuah{{label}}?"
+ "ask_a": "Apakah objek ini adalah sebuah{{label}}?",
+ "ask_an": "Apakah objek ini {{label}}?",
+ "ask_full": "Apakah ini object {{untranslatedLabel}} ({{translatedLabel}})?"
}
}
}
diff --git a/web/public/locales/id/components/filter.json b/web/public/locales/id/components/filter.json
index 0ea01e61b6..070963badb 100644
--- a/web/public/locales/id/components/filter.json
+++ b/web/public/locales/id/components/filter.json
@@ -15,5 +15,13 @@
"title": "Semua Zona",
"short": "Zona"
}
+ },
+ "classes": {
+ "label": "Kelas",
+ "all": {
+ "title": "Semua Kelas"
+ },
+ "count_one": "{{count}} Kelas",
+ "count_other": "{{count}} Kelas"
}
}
diff --git a/web/public/locales/id/components/player.json b/web/public/locales/id/components/player.json
index 097e50a686..151fd41ceb 100644
--- a/web/public/locales/id/components/player.json
+++ b/web/public/locales/id/components/player.json
@@ -14,7 +14,8 @@
"cameraDisabled": "Kamera dinonaktifkan",
"stats": {
"streamType": {
- "title": "Tipe stream:"
+ "title": "Tipe stream:",
+ "short": "Jenis"
}
}
}
diff --git a/web/public/locales/id/objects.json b/web/public/locales/id/objects.json
index bfeeca8ea8..43d98cddeb 100644
--- a/web/public/locales/id/objects.json
+++ b/web/public/locales/id/objects.json
@@ -16,5 +16,6 @@
"horse": "Kuda",
"goat": "Kambing",
"sheep": "Domba",
- "bird": "Burung"
+ "bird": "Burung",
+ "street_sign": "Rambu Jalan"
}
diff --git a/web/public/locales/id/views/classificationModel.json b/web/public/locales/id/views/classificationModel.json
index 0967ef424b..6ea3a79158 100644
--- a/web/public/locales/id/views/classificationModel.json
+++ b/web/public/locales/id/views/classificationModel.json
@@ -1 +1,16 @@
-{}
+{
+ "documentTitle": "Klasifikasi Model - Frigate",
+ "details": {
+ "scoreInfo": "Skor tersebut mewakili rata-rata kepercayaan klasifikasi di seluruh deteksi objek ini."
+ },
+ "button": {
+ "deleteClassificationAttempts": "Hapus Gambar Klasifikasi",
+ "renameCategory": "Ubah Nama Kelas",
+ "deleteCategory": "Hapus Kelas",
+ "deleteImages": "Hapus Gambar",
+ "trainModel": "Latih Model",
+ "addClassification": "Tambah Klasifikasi",
+ "deleteModels": "Hapus Model",
+ "editModel": "Ubah Model"
+ }
+}
diff --git a/web/public/locales/id/views/explore.json b/web/public/locales/id/views/explore.json
index de062e132b..979ceaf7b5 100644
--- a/web/public/locales/id/views/explore.json
+++ b/web/public/locales/id/views/explore.json
@@ -9,7 +9,8 @@
"estimatedTime": "Perkiraan waktu tersisa:",
"finishingShortly": "Selesai sesaat lagi",
"step": {
- "thumbnailsEmbedded": "Keluku dilampirkan "
+ "thumbnailsEmbedded": "Keluku dilampirkan ",
+ "descriptionsEmbedded": "Deskripsi terlampir: "
}
}
},
diff --git a/web/public/locales/id/views/live.json b/web/public/locales/id/views/live.json
index 97a733541f..51817a84b0 100644
--- a/web/public/locales/id/views/live.json
+++ b/web/public/locales/id/views/live.json
@@ -14,7 +14,8 @@
"move": {
"clickMove": {
"label": "Klik kotak ini untuk menengahkan kamera",
- "enable": "Aktifkan klik untuk bergerak"
+ "enable": "Aktifkan klik untuk bergerak",
+ "disable": "Non-aktifkan klik untuk bergerak"
}
}
}
diff --git a/web/public/locales/id/views/search.json b/web/public/locales/id/views/search.json
index c4c5989904..fbca84c8d4 100644
--- a/web/public/locales/id/views/search.json
+++ b/web/public/locales/id/views/search.json
@@ -9,5 +9,10 @@
"filterInformation": "Saring Informasi",
"filterActive": "Filter aktif"
},
- "trackedObjectId": "Tracked Object ID"
+ "trackedObjectId": "Tracked Object ID",
+ "filter": {
+ "label": {
+ "cameras": "Kamera"
+ }
+ }
}
diff --git a/web/public/locales/id/views/settings.json b/web/public/locales/id/views/settings.json
index 8d1b4dec81..45e49fd1ef 100644
--- a/web/public/locales/id/views/settings.json
+++ b/web/public/locales/id/views/settings.json
@@ -9,10 +9,40 @@
"general": "Frigate - Pengaturan Umum",
"object": "Debug - Frigate",
"enrichments": "Frigate - Pengaturan Pengayaan",
- "cameraManagement": "Pengaturan Kamera - Frigate"
+ "cameraManagement": "Pengaturan Kamera - Frigate",
+ "cameraReview": "Pengaturan Ulasan Kamera - Frigate",
+ "frigatePlus": "Pengaturan Frigate+ - Frigate"
},
"menu": {
- "cameraManagement": "Pengaturan",
- "notifications": "Notifikasi"
+ "cameraManagement": "Manajemen",
+ "notifications": "Notifikasi",
+ "ui": "Antarmuka Pengguna",
+ "enrichments": "Peningkatan",
+ "cameraReview": "Ulasan",
+ "motionTuner": "Pengatur Gerak",
+ "triggers": "Pemicu",
+ "users": "Pengguna",
+ "roles": "Peran",
+ "frigateplus": "Frigate+"
+ },
+ "dialog": {
+ "unsavedChanges": {
+ "title": "Anda memiliki perubahan yang belum disimpan.",
+ "desc": "Apakah Anda ingin menyimpan perubahan Anda sebelum melanjutkan?"
+ }
+ },
+ "cameraSetting": {
+ "camera": "Kamera",
+ "noCamera": "Tidak Ada Kamera"
+ },
+ "general": {
+ "title": "Pengaturan Antarmuka Pengguna",
+ "liveDashboard": {
+ "title": "Dashboard Langsung",
+ "automaticLiveView": {
+ "label": "Tampilan Langsung Otomatis",
+ "desc": "Secara otomatis beralih ke tampilan langsung kamera saat aktivitas terdeteksi. Menonaktifkan opsi ini menyebabkan gambar statis kamera di dasbor langsung hanya diperbarui sekali per menit."
+ }
+ }
}
}
diff --git a/web/public/locales/id/views/system.json b/web/public/locales/id/views/system.json
index 183e7ca34b..9a70ff6ca2 100644
--- a/web/public/locales/id/views/system.json
+++ b/web/public/locales/id/views/system.json
@@ -11,5 +11,10 @@
}
},
"title": "Sistem",
- "metrics": "Metrik sistem"
+ "metrics": "Metrik sistem",
+ "logs": {
+ "download": {
+ "label": "Unduh Log"
+ }
+ }
}
diff --git a/web/public/locales/it/components/filter.json b/web/public/locales/it/components/filter.json
index 22fc520931..ac5eaebada 100644
--- a/web/public/locales/it/components/filter.json
+++ b/web/public/locales/it/components/filter.json
@@ -132,5 +132,9 @@
},
"count_one": "{{count}} Classe",
"count_other": "{{count}} Classi"
+ },
+ "attributes": {
+ "label": "Attributi di classificazione",
+ "all": "Tutti gli attributi"
}
}
diff --git a/web/public/locales/it/views/classificationModel.json b/web/public/locales/it/views/classificationModel.json
index 84fb1299f1..a35a391723 100644
--- a/web/public/locales/it/views/classificationModel.json
+++ b/web/public/locales/it/views/classificationModel.json
@@ -116,7 +116,8 @@
"classesUnique": "I nomi delle classi devono essere univoci",
"stateRequiresTwoClasses": "I modelli di stato richiedono almeno 2 classi",
"objectLabelRequired": "Seleziona un'etichetta per l'oggetto",
- "objectTypeRequired": "Seleziona un tipo di classificazione"
+ "objectTypeRequired": "Seleziona un tipo di classificazione",
+ "noneNotAllowed": "La classe 'nessuno' non è consentita"
},
"states": "Stati"
},
@@ -156,7 +157,7 @@
"modelCreated": "Modello creato correttamente. Utilizza la vista Classificazioni recenti per aggiungere immagini per gli stati mancanti, quindi addestrare il modello.",
"missingStatesWarning": {
"title": "Esempi di stati mancanti",
- "description": "Non hai selezionato esempi per tutti gli stati. Il modello non verrà addestrato finché tutti gli stati non avranno immagini. Dopo aver continuato, utilizza la vista Classificazioni recenti per classificare le immagini per gli stati mancanti, quindi addestra il modello."
+ "description": "Per ottenere risultati ottimali, si consiglia di selezionare esempi per tutti gli stati. È possibile continuare senza selezionare tutti gli stati, ma il modello non verrà addestrato finché tutti gli stati non avranno immagini. Dopo aver continuato, utilizza la vista Classificazioni recenti per classificare le immagini per gli stati mancanti, quindi addestra il modello."
}
}
},
@@ -172,7 +173,9 @@
"states": "Stati"
},
"details": {
- "scoreInfo": "Il punteggio rappresenta la confidenza media della classificazione in tutti i rilevamenti di questo oggetto."
+ "scoreInfo": "Il punteggio rappresenta la confidenza media della classificazione in tutti i rilevamenti di questo oggetto.",
+ "none": "Nessuno",
+ "unknown": "Sconosciuto"
},
"edit": {
"title": "Modifica modello di classificazione",
@@ -185,5 +188,6 @@
"modelNotReady": "Il modello non è pronto per l'addestramento",
"noNewImages": "Nessuna nuova immagine da addestrare. Classifica prima più immagini nel database.",
"noChanges": "Nessuna modifica al database dall'ultimo addestramento."
- }
+ },
+ "none": "Nessuno"
}
diff --git a/web/public/locales/it/views/events.json b/web/public/locales/it/views/events.json
index d5e861ccfb..623fb1deec 100644
--- a/web/public/locales/it/views/events.json
+++ b/web/public/locales/it/views/events.json
@@ -59,5 +59,6 @@
"zoomOut": "Rimpicciolisci",
"normalActivity": "Normale",
"needsReview": "Necessita revisione",
- "securityConcern": "Rischio per la sicurezza"
+ "securityConcern": "Rischio per la sicurezza",
+ "select_all": "Tutti"
}
diff --git a/web/public/locales/it/views/explore.json b/web/public/locales/it/views/explore.json
index 9277ee993a..2ec1f4614e 100644
--- a/web/public/locales/it/views/explore.json
+++ b/web/public/locales/it/views/explore.json
@@ -53,13 +53,15 @@
"regenerate": "È stata richiesta una nuova descrizione a {{provider}}. A seconda della velocità del tuo provider, la rigenerazione della nuova descrizione potrebbe richiedere del tempo.",
"updatedSublabel": "Sottoetichetta aggiornata correttamente.",
"updatedLPR": "Targa aggiornata con successo.",
- "audioTranscription": "Trascrizione audio richiesta con successo. A seconda della velocità del server Frigate, la trascrizione potrebbe richiedere del tempo."
+ "audioTranscription": "Trascrizione audio richiesta con successo. A seconda della velocità del server Frigate, la trascrizione potrebbe richiedere del tempo.",
+ "updatedAttributes": "Attributi aggiornati correttamente."
},
"error": {
"regenerate": "Impossibile chiamare {{provider}} per una nuova descrizione: {{errorMessage}}",
"updatedSublabelFailed": "Impossibile aggiornare la sottoetichetta: {{errorMessage}}",
"updatedLPRFailed": "Impossibile aggiornare la targa: {{errorMessage}}",
- "audioTranscription": "Impossibile richiedere la trascrizione audio: {{errorMessage}}"
+ "audioTranscription": "Impossibile richiedere la trascrizione audio: {{errorMessage}}",
+ "updatedAttributesFailed": "Impossibile aggiornare gli attributi: {{errorMessage}}"
}
}
},
@@ -103,7 +105,12 @@
},
"score": {
"label": "Punteggio"
- }
+ },
+ "editAttributes": {
+ "title": "Modifica attributi",
+ "desc": "Seleziona gli attributi di classificazione per questa {{label}}"
+ },
+ "attributes": "Attributi di classificazione"
},
"objectLifecycle": {
"annotationSettings": {
@@ -207,6 +214,10 @@
"viewTrackingDetails": {
"label": "Visualizza i dettagli di tracciamento",
"aria": "Mostra i dettagli di tracciamento"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Scarica istantanea pulita",
+ "aria": "Scarica istantanea pulita"
}
},
"dialog": {
@@ -279,7 +290,7 @@
"millisecondsToOffset": "Millisecondi per compensare il rilevamento delle annotazioni. Predefinito: 0",
"tips": "Ridurre il valore se la riproduzione video è in anticipo rispetto ai riquadri e ai punti del percorso, e aumentarlo se la riproduzione video è in ritardo rispetto ad essi. Questo valore può essere negativo.",
"toast": {
- "success": "La differenza dell'annotazione per {{camera}} è stato salvato nel file di configurazione. Riavvia Frigate per applicare le modifiche."
+ "success": "La differenza dell'annotazione per {{camera}} è stato salvato nel file di configurazione."
}
}
},
diff --git a/web/public/locales/it/views/faceLibrary.json b/web/public/locales/it/views/faceLibrary.json
index ad47e7bc02..b40e7fbcf0 100644
--- a/web/public/locales/it/views/faceLibrary.json
+++ b/web/public/locales/it/views/faceLibrary.json
@@ -18,7 +18,8 @@
"train": {
"title": "Riconoscimenti recenti",
"aria": "Seleziona i riconoscimenti recenti",
- "empty": "Non ci sono recenti tentativi di riconoscimento facciale"
+ "empty": "Non ci sono recenti tentativi di riconoscimento facciale",
+ "titleShort": "Recente"
},
"button": {
"addFace": "Aggiungi volto",
diff --git a/web/public/locales/it/views/search.json b/web/public/locales/it/views/search.json
index 873ef007c1..97f8000c1c 100644
--- a/web/public/locales/it/views/search.json
+++ b/web/public/locales/it/views/search.json
@@ -25,7 +25,8 @@
"after": "Dopo",
"max_speed": "Velocità massima",
"recognized_license_plate": "Targa riconosciuta",
- "sub_labels": "Sottoetichette"
+ "sub_labels": "Sottoetichette",
+ "attributes": "Attributi"
},
"tips": {
"desc": {
diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json
index afaf31078f..9cdcea5fb3 100644
--- a/web/public/locales/it/views/settings.json
+++ b/web/public/locales/it/views/settings.json
@@ -143,8 +143,8 @@
"add": "Nuova maschera di movimento",
"toast": {
"success": {
- "title": "{{polygonName}} è stato salvato. Riavvia Frigate per applicare le modifiche.",
- "noName": "La maschera di movimento è stata salvata. Riavvia Frigate per applicare le modifiche."
+ "title": "{{polygonName}} è stato salvato.",
+ "noName": "La maschera di movimento è stata salvata."
}
}
},
@@ -239,7 +239,7 @@
"name": {
"inputPlaceHolder": "Inserisci un nome…",
"title": "Nome",
- "tips": "Il nome deve essere composto da almeno 2 caratteri, contenere almeno una lettera e non deve essere il nome di una telecamera o di un'altra zona."
+ "tips": "Il nome deve essere composto da almeno 2 caratteri, contenere almeno una lettera e non deve essere il nome di una telecamera o di un'altra zona di questa telecamera."
},
"clickDrawPolygon": "Fai clic per disegnare un poligono sull'immagine.",
"point_one": "{{count}} punto",
@@ -261,7 +261,7 @@
},
"allObjects": "Tutti gli oggetti",
"toast": {
- "success": "La zona ({{zoneName}}) è stata salvata. Riavvia Frigate per applicare le modifiche."
+ "success": "La zona ({{zoneName}}) è stata salvata."
}
},
"objectMasks": {
@@ -283,8 +283,8 @@
},
"toast": {
"success": {
- "noName": "La maschera oggetto è stata salvata. Riavvia Frigate per applicare le modifiche.",
- "title": "{{polygonName}} è stato salvato. Riavvia Frigate per applicare le modifiche."
+ "noName": "La maschera oggetto è stata salvata.",
+ "title": "{{polygonName}} è stato salvato."
}
},
"label": "Maschere di oggetti",
@@ -427,7 +427,16 @@
"title": "Password",
"placeholder": "Inserisci la password",
"match": "Le password corrispondono",
- "notMatch": "Le password non corrispondono"
+ "notMatch": "Le password non corrispondono",
+ "show": "Mostra password",
+ "hide": "Nascondi password",
+ "requirements": {
+ "title": "Requisiti password:",
+ "length": "Almeno 8 caratteri",
+ "uppercase": "Almeno una lettera maiuscola",
+ "digit": "Almeno una cifra",
+ "special": "Almeno un carattere speciale (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"title": "Nuova password",
@@ -437,7 +446,11 @@
}
},
"usernameIsRequired": "Il nome utente è obbligatorio",
- "passwordIsRequired": "La password è obbligatoria"
+ "passwordIsRequired": "La password è obbligatoria",
+ "currentPassword": {
+ "title": "Password attuale",
+ "placeholder": "Inserisci la password attuale"
+ }
},
"createUser": {
"desc": "Aggiungi un nuovo account utente e specifica un ruolo per l'accesso alle aree dell'interfaccia utente di Frigate.",
@@ -450,11 +463,16 @@
"setPassword": "Imposta password",
"desc": "Crea una password complessa per proteggere questo account.",
"cannotBeEmpty": "La password non può essere vuota",
- "doNotMatch": "Le password non corrispondono"
+ "doNotMatch": "Le password non corrispondono",
+ "currentPasswordRequired": "È richiesta la password attuale",
+ "incorrectCurrentPassword": "La password attuale è errata",
+ "passwordVerificationFailed": "Impossibile verificare la password",
+ "multiDeviceWarning": "Sarà necessario effettuare nuovamente l'accesso su qualsiasi altro dispositivo entro {{refresh_time}}.",
+ "multiDeviceAdmin": "Puoi anche forzare tutti gli utenti a riautenticarsi immediatamente ruotando il tuo segreto JWT."
}
},
"table": {
- "password": "Password",
+ "password": "Reimposta password",
"username": "Nome utente",
"actions": "Azioni",
"role": "Ruolo",
@@ -482,7 +500,7 @@
"desc": "Gestisci gli account utente di questa istanza Frigate."
},
"addUser": "Aggiungi utente",
- "updatePassword": "Aggiorna password"
+ "updatePassword": "Reimposta password"
},
"general": {
"liveDashboard": {
@@ -1240,7 +1258,8 @@
"audioCodecRequired": "Per supportare il rilevamento audio è necessario un flusso audio.",
"restreamingWarning": "Riducendo le connessioni alla telecamera per il flusso di registrazione l'utilizzo della CPU potrebbe aumentare leggermente.",
"brands": {
- "reolink-rtsp": "Reolink RTSP non è consigliato. Abilita HTTP nelle impostazioni del firmware della telecamera e riavvia la procedura guidata."
+ "reolink-rtsp": "Reolink RTSP non è consigliato. Abilita HTTP nelle impostazioni del firmware della telecamera e riavvia la procedura guidata.",
+ "reolink-http": "I flussi HTTP di Reolink dovrebbero utilizzare FFmpeg per una migliore compatibilità. Abilita \"Usa modalità compatibilità flusso\" per questo flusso."
},
"dahua": {
"substreamWarning": "Il sottoflusso 1 è bloccato a bassa risoluzione. Molte telecamere Dahua/Amcrest/EmpireTech supportano sottoflussi aggiuntivi che devono essere abilitati nelle impostazioni della telecamera. Si consiglia di controllare e utilizzare tali flussi, se disponibili."
diff --git a/web/public/locales/it/views/system.json b/web/public/locales/it/views/system.json
index b031828e1c..c4f4b96772 100644
--- a/web/public/locales/it/views/system.json
+++ b/web/public/locales/it/views/system.json
@@ -105,7 +105,10 @@
"review_description_events_per_second": "Descrizione della revisione",
"object_description": "Descrizione dell'oggetto",
"object_description_speed": "Velocità della descrizione dell'oggetto",
- "object_description_events_per_second": "Descrizione dell'oggetto"
+ "object_description_events_per_second": "Descrizione dell'oggetto",
+ "classification": "Classificazione {{name}}",
+ "classification_speed": "Velocità di classificazione {{name}}",
+ "classification_events_per_second": "Eventi di classificazione {{name}} al secondo"
},
"title": "Miglioramenti",
"infPerSecond": "Inferenze al secondo",
diff --git a/web/public/locales/ja/audio.json b/web/public/locales/ja/audio.json
index c546c09b26..e049b882ef 100644
--- a/web/public/locales/ja/audio.json
+++ b/web/public/locales/ja/audio.json
@@ -425,5 +425,79 @@
"television": "テレビ",
"radio": "ラジオ",
"field_recording": "フィールド録音",
- "scream": "悲鳴"
+ "scream": "悲鳴",
+ "sodeling": "ソデリング",
+ "chird": "チャープ",
+ "change_ringing": "着信音の変更",
+ "shofar": "ショファー",
+ "liquid": "液体",
+ "splash": "水しぶき",
+ "slosh": "水が揺れる音",
+ "squish": "ぐちゃっという音",
+ "drip": "滴る音",
+ "pour": "注ぐ",
+ "trickle": "ちょろちょろ流れる音",
+ "gush": "勢いよく噴き出す",
+ "fill": "満たす",
+ "spray": "噴霧",
+ "pump": "ポンプ",
+ "stir": "かき混ぜる",
+ "boiling": "沸騰",
+ "sonar": "ソナー",
+ "arrow": "矢",
+ "whoosh": "ヒューという音",
+ "thump": "ドンという音",
+ "thunk": "鈍い衝撃音",
+ "electronic_tuner": "電子チューナー",
+ "effects_unit": "エフェクター",
+ "chorus_effect": "コーラス効果",
+ "basketball_bounce": "バスケットボールのバウンド",
+ "bang": "バンという音",
+ "slap": "平手打ち",
+ "whack": "強打",
+ "smash": "粉砕",
+ "breaking": "破壊",
+ "bouncing": "跳ねる音",
+ "whip": "ムチの音",
+ "flap": "はためく音",
+ "scratch": "引っかく音",
+ "scrape": "こする音",
+ "rub": "こする",
+ "roll": "転がる",
+ "crushing": "押しつぶす",
+ "crumpling": "くしゃくしゃにする音",
+ "tearing": "引き裂く音",
+ "beep": "ビープ音",
+ "ping": "ピン音",
+ "ding": "ディン音",
+ "clang": "金属音",
+ "squeal": "きしむ音",
+ "creak": "きしみ",
+ "rustle": "かさかさ音",
+ "whir": "ブーンという音",
+ "clatter": "ガタガタ音",
+ "sizzle": "ジュージュー音",
+ "clicking": "クリック音",
+ "clickety_clack": "カチカチ音",
+ "rumble": "ゴロゴロ音",
+ "plop": "ポチャン",
+ "hum": "ハム音",
+ "zing": "ジーン音",
+ "boing": "ボイン音",
+ "crunch": "バリバリ音",
+ "sine_wave": "正弦波",
+ "harmonic": "倍音",
+ "chirp_tone": "チャープ音",
+ "pulse": "パルス",
+ "inside": "内側",
+ "outside": "外側",
+ "reverberation": "残響",
+ "echo": "エコー",
+ "noise": "ノイズ",
+ "mains_hum": "電源ハム",
+ "distortion": "歪み",
+ "sidetone": "サイドトーン",
+ "cacophony": "不協和音",
+ "throbbing": "脈動",
+ "vibration": "振動"
}
diff --git a/web/public/locales/ja/common.json b/web/public/locales/ja/common.json
index ba84f3e2fa..7cef62aa5c 100644
--- a/web/public/locales/ja/common.json
+++ b/web/public/locales/ja/common.json
@@ -66,7 +66,10 @@
"formattedTimestampFilename": {
"12hour": "MM-dd-yy-h-mm-ss-a",
"24hour": "MM-dd-yy-HH-mm-ss"
- }
+ },
+ "inProgress": "処理中",
+ "invalidStartTime": "開始時刻が無効です",
+ "invalidEndTime": "終了時刻が無効です"
},
"readTheDocumentation": "ドキュメントを見る",
"unit": {
@@ -88,7 +91,12 @@
}
},
"label": {
- "back": "戻る"
+ "back": "戻る",
+ "hide": "{{item}} を非表示",
+ "show": "{{item}} を表示",
+ "ID": "ID",
+ "none": "なし",
+ "all": "すべて"
},
"button": {
"apply": "適用",
@@ -125,7 +133,8 @@
"unselect": "選択解除",
"export": "書き出し",
"deleteNow": "今すぐ削除",
- "next": "次へ"
+ "next": "次へ",
+ "continue": "続行"
},
"menu": {
"system": "システム",
@@ -224,7 +233,8 @@
"withSystem": {
"label": "システム設定に従う"
}
- }
+ },
+ "classification": "分類"
},
"toast": {
"copyUrlToClipboard": "URLをクリップボードにコピーしました。",
@@ -267,5 +277,14 @@
"selectItem": "{{item}} を選択",
"information": {
"pixels": "{{area}}ピクセル"
+ },
+ "list": {
+ "two": "{{0}} と {{1}}",
+ "many": "{{items}}と {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "任意",
+ "internalID": "Frigate が設定で使用する内部 ID です"
}
}
diff --git a/web/public/locales/ja/components/auth.json b/web/public/locales/ja/components/auth.json
index b9ff983253..d767e3282c 100644
--- a/web/public/locales/ja/components/auth.json
+++ b/web/public/locales/ja/components/auth.json
@@ -10,6 +10,7 @@
"loginFailed": "ログインに失敗しました",
"unknownError": "不明なエラー。ログを確認してください。",
"webUnknownError": "不明なエラー。コンソールログを確認してください。"
- }
+ },
+ "firstTimeLogin": "初めてログインしますか?認証情報は Frigate のログに表示されています。"
}
}
diff --git a/web/public/locales/ja/components/dialog.json b/web/public/locales/ja/components/dialog.json
index 2c5f5e0d44..6294745483 100644
--- a/web/public/locales/ja/components/dialog.json
+++ b/web/public/locales/ja/components/dialog.json
@@ -51,12 +51,13 @@
"export": "書き出し",
"selectOrExport": "選択または書き出し",
"toast": {
- "success": "書き出しを開始しました。/exports フォルダでファイルを確認できます。",
+ "success": "書き出しを開始しました。出力ページでファイルを確認できます。",
"error": {
"failed": "書き出しの開始に失敗しました: {{error}}",
"endTimeMustAfterStartTime": "終了時間は開始時間より後である必要があります",
"noVaildTimeSelected": "有効な時間範囲が選択されていません"
- }
+ },
+ "view": "表示"
},
"fromTimeline": {
"saveExport": "書き出しを保存",
@@ -114,6 +115,7 @@
"search": {
"placeholder": "ラベルまたはサブラベルで検索…"
},
- "noImages": "このカメラのサムネイルは見つかりません"
+ "noImages": "このカメラのサムネイルは見つかりません",
+ "unknownLabel": "保存済みトリガー画像"
}
}
diff --git a/web/public/locales/ja/components/filter.json b/web/public/locales/ja/components/filter.json
index 66a52a29ec..bbcc3149d0 100644
--- a/web/public/locales/ja/components/filter.json
+++ b/web/public/locales/ja/components/filter.json
@@ -132,5 +132,9 @@
"selectPlatesFromList": "リストから1件以上選択してください。",
"selectAll": "すべて選択",
"clearAll": "すべてクリア"
+ },
+ "attributes": {
+ "label": "分類属性",
+ "all": "すべての属性"
}
}
diff --git a/web/public/locales/ja/views/classificationModel.json b/web/public/locales/ja/views/classificationModel.json
index 54710f96c5..e16f1fce5b 100644
--- a/web/public/locales/ja/views/classificationModel.json
+++ b/web/public/locales/ja/views/classificationModel.json
@@ -1,14 +1,182 @@
{
- "documentTitle": "分類モデル",
+ "documentTitle": "分類モデル - Frigate",
"button": {
- "deleteImages": "画像を削除"
+ "deleteImages": "画像を削除",
+ "deleteClassificationAttempts": "分類画像を削除",
+ "renameCategory": "クラス名を変更",
+ "deleteCategory": "クラスを削除",
+ "trainModel": "モデルを学習",
+ "addClassification": "分類を追加",
+ "deleteModels": "モデルを削除",
+ "editModel": "モデルを編集"
},
"toast": {
"success": {
"deletedImage": "削除された画像",
"categorizedImage": "画像の分類に成功しました",
"trainedModel": "モデルを正常に学習させました。",
- "trainingModel": "モデルのトレーニングを正常に開始しました。"
+ "trainingModel": "モデルのトレーニングを正常に開始しました。",
+ "deletedCategory": "クラスを削除しました",
+ "deletedModel_other": "{{count}} 件のモデルを削除しました",
+ "updatedModel": "モデル設定を更新しました",
+ "renamedCategory": "クラス名を {{name}} に変更しました"
+ },
+ "error": {
+ "deleteImageFailed": "削除に失敗しました: {{errorMessage}}",
+ "deleteCategoryFailed": "クラスの削除に失敗しました: {{errorMessage}}",
+ "deleteModelFailed": "モデルの削除に失敗しました: {{errorMessage}}",
+ "categorizeFailed": "画像の分類に失敗しました: {{errorMessage}}",
+ "trainingFailed": "モデルの学習に失敗しました。Frigate のログを確認してください。",
+ "trainingFailedToStart": "モデルの学習を開始できませんでした: {{errorMessage}}",
+ "updateModelFailed": "モデルの更新に失敗しました: {{errorMessage}}",
+ "renameCategoryFailed": "クラス名の変更に失敗しました: {{errorMessage}}"
+ }
+ },
+ "train": {
+ "titleShort": "Classifications,最近の分類結果を選択,,False,train.aria,,",
+ "title": "最近の分類結果",
+ "aria": "最近の分類結果を選択"
+ },
+ "wizard": {
+ "step1": {
+ "typeObject": "Classification",
+ "typeState": "Classification",
+ "description": "状態モデルは固定カメラ領域の状態変化(例:ドアの開閉)を監視し、オブジェクトモデルは検出されたオブジェクトに分類(例:既知の動物や配達員など)を追加します。",
+ "name": "名前",
+ "namePlaceholder": "モデル名を入力...",
+ "type": "タイプ",
+ "objectLabel": "オブジェクトラベル",
+ "objectLabelPlaceholder": "オブジェクトタイプを選択...",
+ "classificationType": "分類タイプ",
+ "classificationTypeTip": "分類タイプについて",
+ "classificationTypeDesc": "サブラベルはオブジェクトのラベルに追加のテキストを追加します(例:「人: UPS」)。属性は、オブジェクトのメタデータとは別に保存される、検索可能なメタデータです。",
+ "classificationSubLabel": "サブラベル",
+ "classificationAttribute": "属性",
+ "classes": "クラス",
+ "states": "状態",
+ "classesTip": "クラスについて",
+ "classesStateDesc": "カメラ領域の状態を定義します。例: ガレージドアの「開」「閉」。",
+ "classesObjectDesc": "検出されたオブジェクトを分類するための、異なるカテゴリを定義します。例:人物の分類として「delivery_person」「resident」「stranger」など。",
+ "classPlaceholder": "クラス名を入力...",
+ "errors": {
+ "nameRequired": "モデル名は必須です",
+ "nameLength": "モデル名は 64 文字以内で入力してください",
+ "nameOnlyNumbers": "モデル名を数字のみにはできません",
+ "classRequired": "少なくとも 1 つのクラスが必要です",
+ "classesUnique": "クラス名は一意である必要があります",
+ "noneNotAllowed": "「none」というクラス名は使用できません",
+ "stateRequiresTwoClasses": "状態モデルには少なくとも 2 つのクラスが必要です",
+ "objectLabelRequired": "オブジェクトラベルを選択してください",
+ "objectTypeRequired": "分類タイプを選択してください"
+ }
+ },
+ "title": "新しい分類を作成",
+ "steps": {
+ "nameAndDefine": "名前と定義",
+ "stateArea": "状態エリア",
+ "chooseExamples": "例を選択"
+ },
+ "step2": {
+ "description": "カメラを選択し、それぞれの監視エリアを定義します。モデルはこれらのエリアの状態を分類します。",
+ "cameras": "カメラ",
+ "selectCamera": "カメラを選択",
+ "noCameras": "+ をクリックしてカメラを追加",
+ "selectCameraPrompt": "リストからカメラを選択して監視エリアを定義します"
+ },
+ "step3": {
+ "selectImagesPrompt": "{{className}} の画像をすべて選択",
+ "selectImagesDescription": "画像をクリックして選択します。このクラスの作業が完了したら「続行」をクリックしてください。",
+ "allImagesRequired_other": "すべての画像を分類してください。残り {{count}} 枚です。",
+ "generating": {
+ "title": "サンプル画像を生成中",
+ "description": "Frigate が録画から代表的な画像を抽出しています。しばらくお待ちください..."
+ },
+ "training": {
+ "title": "モデルを学習中",
+ "description": "モデルはバックグラウンドで学習されています。このダイアログを閉じると、学習完了後すぐにモデルが有効になります。"
+ },
+ "retryGenerate": "再生成",
+ "noImages": "サンプル画像が生成されませんでした",
+ "classifying": "分類・学習中...",
+ "trainingStarted": "学習を開始しました",
+ "modelCreated": "モデルを作成しました。不足している状態の画像を「最近の分類」から追加し、モデルを学習してください。",
+ "errors": {
+ "noCameras": "カメラが設定されていません",
+ "noObjectLabel": "オブジェクトラベルが選択されていません",
+ "generateFailed": "例の生成に失敗しました: {{error}}",
+ "generationFailed": "生成に失敗しました。もう一度お試しください。",
+ "classifyFailed": "画像の分類に失敗しました: {{error}}"
+ },
+ "generateSuccess": "サンプル画像を生成しました",
+ "missingStatesWarning": {
+ "title": "状態の例が不足しています",
+ "description": "最良の結果を得るため、すべての状態の例を選択することを推奨します。すべてを選択しなくても続行できますが、全状態に画像が揃うまでモデルは学習されません。続行後、「最近の分類」から不足分を分類し、学習を行ってください。"
+ }
+ }
+ },
+ "details": {
+ "scoreInfo": "このスコアは、このオブジェクトに対するすべての検出結果の分類信頼度の平均を表します。",
+ "none": "なし",
+ "unknown": "不明"
+ },
+ "tooltip": {
+ "trainingInProgress": "モデルは現在学習中です",
+ "noNewImages": "学習に使用できる新しい画像がありません。先にデータセット内の画像を分類してください。",
+ "noChanges": "前回の学習以降、データセットに変更はありません。",
+ "modelNotReady": "モデルはまだ学習可能な状態ではありません"
+ },
+ "deleteCategory": {
+ "title": "クラスを削除",
+ "desc": "クラス {{name}} を削除してもよろしいですか?関連するすべての画像が完全に削除され、モデルの再学習が必要になります。",
+ "minClassesTitle": "クラスを削除できません",
+ "minClassesDesc": "分類モデルには少なくとも 2 つのクラスが必要です。別のクラスを追加してから削除してください。"
+ },
+ "deleteModel": {
+ "title": "分類モデルを削除",
+ "single": "{{name}} を削除してもよろしいですか?画像や学習データを含むすべての関連データが完全に削除され、この操作は元に戻せません。",
+ "desc_other": "{{count}} 件のモデルを削除してもよろしいですか?関連するすべてのデータが完全に削除され、この操作は元に戻せません。"
+ },
+ "edit": {
+ "title": "分類モデルを編集",
+ "descriptionState": "この状態分類モデルのクラスを編集します。変更を反映するにはモデルの再学習が必要です。",
+ "descriptionObject": "このオブジェクト分類モデルのオブジェクトタイプおよび分類タイプを編集します。",
+ "stateClassesInfo": "注意: 状態クラスを変更すると、更新後のクラスでモデルを再学習する必要があります。"
+ },
+ "deleteDatasetImages": {
+ "title": "データセット画像を削除",
+ "desc_other": "{{dataset}} から {{count}} 枚の画像を削除してもよろしいですか?この操作は元に戻せず、モデルの再学習が必要になります。"
+ },
+ "deleteTrainImages": {
+ "title": "学習用画像を削除",
+ "desc_other": "{{count}} 枚の画像を削除してもよろしいですか?この操作は元に戻すことができません。"
+ },
+ "renameCategory": {
+ "title": "クラス名を変更",
+ "desc": "{{name}} の新しい名前を入力してください。変更を有効にするにはモデルの再学習が必要です。"
+ },
+ "description": {
+ "invalidName": "無効な名前です。使用できるのは、英数字、空白、アポストロフィ、アンダースコア、ハイフンのみです。"
+ },
+ "categories": "クラス",
+ "createCategory": {
+ "new": "新しいクラスを作成"
+ },
+ "categorizeImageAs": "画像を次として分類:",
+ "categorizeImage": "画像を分類",
+ "menu": {
+ "objects": "オブジェクト",
+ "states": "状態"
+ },
+ "noModels": {
+ "object": {
+ "title": "オブジェクト分類モデルがありません",
+ "description": "検出されたオブジェクトを分類するためのカスタムモデルを作成します。",
+ "buttonText": "オブジェクトモデルを作成"
+ },
+ "state": {
+ "title": "状態分類モデルがありません",
+ "description": "特定のカメラ領域の状態変化を監視・分類するためのカスタムモデルを作成します。",
+ "buttonText": "状態モデルを作成"
}
}
}
diff --git a/web/public/locales/ja/views/events.json b/web/public/locales/ja/views/events.json
index b19ad95537..b1f85a0661 100644
--- a/web/public/locales/ja/views/events.json
+++ b/web/public/locales/ja/views/events.json
@@ -36,5 +36,28 @@
"selected_other": "{{count}} 件選択",
"detected": "検出",
"suspiciousActivity": "不審なアクティビティ",
- "threateningActivity": "脅威となるアクティビティ"
+ "threateningActivity": "脅威となるアクティビティ",
+ "zoomIn": "ズームイン",
+ "zoomOut": "ズームアウト",
+ "detail": {
+ "label": "詳細",
+ "noDataFound": "確認する詳細データはありません",
+ "aria": "詳細表示を切り替え",
+ "trackedObject_one": "{{count}} 件のオブジェクト",
+ "trackedObject_other": "{{count}} 件のオブジェクト",
+ "noObjectDetailData": "オブジェクトの詳細データがありません。",
+ "settings": "詳細表示設定",
+ "alwaysExpandActive": {
+ "title": "アクティブ項目を常に展開",
+ "desc": "利用可能な場合、アクティブなレビュー項目のオブジェクト詳細を常に展開する。"
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "追跡ポイント",
+ "clickToSeek": "クリックしてこの時点に移動"
+ },
+ "select_all": "すべて",
+ "normalActivity": "通常",
+ "needsReview": "要確認",
+ "securityConcern": "セキュリティ上の懸念"
}
diff --git a/web/public/locales/ja/views/explore.json b/web/public/locales/ja/views/explore.json
index 3e782f926a..ccee1d47aa 100644
--- a/web/public/locales/ja/views/explore.json
+++ b/web/public/locales/ja/views/explore.json
@@ -19,13 +19,15 @@
"regenerate": "{{provider}} に新しい説明をリクエストしました。プロバイダの速度により再生成に時間がかかる場合があります。",
"updatedSublabel": "サブラベルを更新しました。",
"updatedLPR": "ナンバープレートを更新しました。",
- "audioTranscription": "音声文字起こしをリクエストしました。"
+ "audioTranscription": "音声文字起こしのリクエストは正常に送信されました。Frigate サーバーの処理速度によっては、文字起こしの完了までにしばらく時間がかかる場合があります。",
+ "updatedAttributes": "属性が正常に更新されました。"
},
"error": {
"regenerate": "{{provider}} への新しい説明の呼び出しに失敗しました: {{errorMessage}}",
"updatedSublabelFailed": "サブラベルの更新に失敗しました: {{errorMessage}}",
"updatedLPRFailed": "ナンバープレートの更新に失敗しました: {{errorMessage}}",
- "audioTranscription": "音声文字起こしのリクエストに失敗しました: {{errorMessage}}"
+ "audioTranscription": "音声文字起こしのリクエストに失敗しました: {{errorMessage}}",
+ "updatedAttributesFailed": "属性の更新に失敗しました: {{errorMessage}}"
}
}
},
@@ -73,7 +75,12 @@
"tips": {
"descriptionSaved": "説明を保存しました",
"saveDescriptionFailed": "説明の更新に失敗しました: {{errorMessage}}"
- }
+ },
+ "editAttributes": {
+ "title": "属性を編集",
+ "desc": "この {{label}} の分類属性を選択してください"
+ },
+ "attributes": "分類属性"
},
"exploreMore": "{{label}} のオブジェクトをさらに探索",
"exploreIsUnavailable": {
@@ -108,7 +115,9 @@
"details": "詳細",
"snapshot": "スナップショット",
"video": "動画",
- "object_lifecycle": "オブジェクトのライフサイクル"
+ "object_lifecycle": "オブジェクトのライフサイクル",
+ "thumbnail": "サムネイル",
+ "tracking_details": "追跡詳細"
},
"objectLifecycle": {
"title": "オブジェクトのライフサイクル",
@@ -193,12 +202,26 @@
},
"deleteTrackedObject": {
"label": "この追跡オブジェクトを削除"
+ },
+ "downloadCleanSnapshot": {
+ "label": "クリーンなスナップショットをダウンロード",
+ "aria": "クリーンなスナップショットをダウンロード"
+ },
+ "viewTrackingDetails": {
+ "label": "追跡詳細を表示",
+ "aria": "追跡詳細を表示"
+ },
+ "showObjectDetails": {
+ "label": "オブジェクトの移動経路を表示"
+ },
+ "hideObjectDetails": {
+ "label": "オブジェクトの移動経路を非表示"
}
},
"dialog": {
"confirmDelete": {
"title": "削除の確認",
- "desc": "この追跡オブジェクトを削除すると、スナップショット、保存された埋め込み、および関連するライフサイクル項目が削除されます。履歴ビューの録画映像は削除されません。{{label}}?",
+ "ask_an": "Vai šis objekts ir{{label}}?",
+ "ask_full": "Vai šis objekts{{untranslatedLabel}} ({{translatedLabel}})?"
+ },
+ "state": {
+ "submitted": "Iesniegts"
+ }
+ }
+ },
+ "video": {
+ "viewInHistory": "Skatīt vēsturē"
+ }
+ },
+ "export": {
+ "time": {
+ "fromTimeline": "Izvēlieties no laika skalas",
+ "lastHour_zero": "Pēdējās stundas",
+ "lastHour_one": "Pēdējās{{count}}stundas",
+ "lastHour_other": "Pēdējās {{count}} stundas",
+ "custom": "Pielāgots",
+ "start": {
+ "title": "Sākuma laiks",
+ "label": "Izvēlieties Sākuma laiks"
+ },
+ "end": {
+ "title": "Beigu laiks",
+ "label": "Atlasiet Beigu laiks"
+ }
+ },
+ "name": {
+ "placeholder": "Ievadiet eksporta nosaukumu"
+ },
+ "select": "Izvēlieties",
+ "export": "Eksportēt",
+ "selectOrExport": "Atlasīt vai Eksportēt",
+ "toast": {
+ "success": "Eksportēšana veiksmīgi sākta. Skatiet failu eksportēšanas lapā.",
+ "view": "Skatīt",
+ "error": {
+ "failed": "Neizdevās sākt eksportēšanu: {{error}}",
+ "endTimeMustAfterStartTime": "Beigu laikam ir jābūt pēc sākuma laika",
+ "noVaildTimeSelected": "Nav izvēlēts derīgs laika diapazons"
+ }
+ },
+ "fromTimeline": {
+ "saveExport": "Saglabāt Eksportu",
+ "previewExport": "Priekšskatīt Eksportu"
+ }
+ },
+ "streaming": {
+ "label": "Straume",
+ "restreaming": {
+ "disabled": "Šai kamerai nav iespējota atkārtota straumēšana.",
+ "desc": {
+ "title": "Konfigurējiet go2rtc, lai šai kamerai varētu piekļūt papildu tiešraides skatīšanās un audio opcijām."
+ }
+ },
+ "showStats": {
+ "label": "Rādīt straumes statistiku",
+ "desc": "Iespējojiet šo opciju, lai straumes statistika tiktu rādīta kā pārklājums kameras attēlam."
+ },
+ "debugView": "Atkļūdošanas režīms"
+ },
+ "search": {
+ "saveSearch": {
+ "label": "Saglabāt meklēšanu",
+ "desc": "Norādiet šīs saglabātās meklēšanas nosaukumu.",
+ "placeholder": "Ievadiet meklēšanas nosaukumu",
+ "overwrite": "{{searchName}} jau pastāv. Saglabājot, esošā vērtība tiks pārrakstīta.",
+ "success": "Meklēšanas ({{searchName}}) ir saglabāts.",
+ "button": {
+ "save": {
+ "label": "Saglabāt šo meklēšanu"
+ }
+ }
+ }
+ },
+ "recording": {
+ "confirmDelete": {
+ "title": "Apstipriniet dzēšanu",
+ "desc": {
+ "selected": "Vai tiešām vēlaties dzēst visus ierakstītos video, kas saistīti ar šo pārskata vienumu?detect straumes netika saņemti kadri, pārbaudiet kļūdu žurnālus."
+ },
+ "cameraDisabled": "Kamera ir izslēgta",
+ "stats": {
+ "streamType": {
+ "title": "Straumes veids:",
+ "short": "Tips"
+ },
+ "bandwidth": {
+ "title": "Joslas platums:",
+ "short": "Joslas platums"
+ },
+ "latency": {
+ "title": "Latentums:",
+ "value": "{{seconds}} sekundes",
+ "short": {
+ "title": "Latentums",
+ "value": "{{seconds}} sek"
+ }
+ },
+ "totalFrames": "Kopējais kadru skaits:",
+ "droppedFrames": {
+ "title": "Izlaisti kadri:",
+ "short": {
+ "title": "Izlaisti",
+ "value": "{{droppedFrames}} kadri"
+ }
+ },
+ "decodedFrames": "Dekodētie kadri:",
+ "droppedFrameRate": "Kadru nomaiņas ātruma kritums:"
+ },
+ "toast": {
+ "success": {
+ "submittedFrigatePlus": "Kadrs veiksmīgi iesniegts pakalpojumam Frigate+"
+ },
+ "error": {
+ "submitFrigatePlusFailed": "Neizdevās iesniegt kadru Frigate+"
+ }
+ }
+}
diff --git a/web/public/locales/lv/objects.json b/web/public/locales/lv/objects.json
index 0967ef424b..981d5cb44e 100644
--- a/web/public/locales/lv/objects.json
+++ b/web/public/locales/lv/objects.json
@@ -1 +1,19 @@
-{}
+{
+ "person": "Persona",
+ "bicycle": "Velosipēds",
+ "car": "Automašīna",
+ "motorcycle": "Motocikls",
+ "airplane": "Lidmašīna",
+ "bus": "Autobuss",
+ "train": "Vilciens",
+ "package": "Paciņa",
+ "bbq_grill": "Grils",
+ "amazon": "Amazon",
+ "usps": "USPS",
+ "ups": "UPS",
+ "fedex": "FedEx",
+ "dhl": "DHL",
+ "postnl": "PostNL",
+ "dpd": "DPD",
+ "boat": "Laiva"
+}
diff --git a/web/public/locales/lv/views/classificationModel.json b/web/public/locales/lv/views/classificationModel.json
index 0967ef424b..5d26d5b74f 100644
--- a/web/public/locales/lv/views/classificationModel.json
+++ b/web/public/locales/lv/views/classificationModel.json
@@ -1 +1,36 @@
-{}
+{
+ "documentTitle": "Klassifikācijas modeļi",
+ "details": {
+ "scoreInfo": "Rezultāts atbilst vidējai klasifikācijas ticamībai no visām objekta detektēšanas reizēm.",
+ "none": "Nav",
+ "unknown": "Nezināms"
+ },
+ "description": {
+ "invalidName": "Nederīgs nosaukums. Nosaukumi drīkst saturēt tikai burtus, ciparus, atstarpes, apostrofus, pasvītras un defises."
+ },
+ "button": {
+ "deleteClassificationAttempts": "Dzēst klasifikācijas attēlus",
+ "renameCategory": "Pārdēvēt klasi",
+ "deleteCategory": "Dzēst klasi",
+ "deleteImages": "Dzēst attēlus"
+ },
+ "wizard": {
+ "step3": {
+ "training": {
+ "title": "Trenē modeli",
+ "description": "Tavs modelis tiek trenēts. Aizver šo paziņojumu, un tavs modelis tiks izmantots, tiklīdz trenēšana ir pabeigta."
+ },
+ "retryGenerate": "Atkārtot ģenerēšanu",
+ "classifying": "Klasificē un trenē...",
+ "trainingStarted": "Trenēšana veiksmīgi uzsākta",
+ "errors": {
+ "generateFailed": "Neizdevās ģenerēt piemērus: {{error}}",
+ "generationFailed": "Ģenerēšana neizdevās. Mēģini vēlreiz.",
+ "classifyFailed": "Neizdevās klasificēt attēlus: {{error}}"
+ }
+ }
+ },
+ "train": {
+ "titleShort": "Pēdējās"
+ }
+}
diff --git a/web/public/locales/lv/views/configEditor.json b/web/public/locales/lv/views/configEditor.json
index 0967ef424b..286da8e9ab 100644
--- a/web/public/locales/lv/views/configEditor.json
+++ b/web/public/locales/lv/views/configEditor.json
@@ -1 +1,18 @@
-{}
+{
+ "documentTitle": "Konfigurācijas rediģēšana - Frigate",
+ "configEditor": "Konfigurācijas redaktors",
+ "safeConfigEditor": "Konfigurācijas redaktors (drošais režīms)",
+ "safeModeDescription": "Frigate ir drošajā režīmā konfigurācijas pārbaudes kļūdas dēļ.",
+ "copyConfig": "Kopēt konfigurāciju",
+ "saveAndRestart": "Saglabāt un pārstartēt",
+ "saveOnly": "Tikai saglabāt",
+ "confirm": "Vai iziet, nesaglabājot?",
+ "toast": {
+ "success": {
+ "copyToClipboard": "Konfigurācija ir kopēta starpliktuvē."
+ },
+ "error": {
+ "savingError": "Saglabājot konfigurāciju, radās kļūda"
+ }
+ }
+}
diff --git a/web/public/locales/lv/views/events.json b/web/public/locales/lv/views/events.json
index 0967ef424b..77d4d34e57 100644
--- a/web/public/locales/lv/views/events.json
+++ b/web/public/locales/lv/views/events.json
@@ -1 +1,61 @@
-{}
+{
+ "alerts": "Paziņojumi",
+ "detections": "Atklājumi",
+ "motion": {
+ "label": "Kustība",
+ "only": "Tikai kustība"
+ },
+ "allCameras": "Visas kameras",
+ "empty": {
+ "alert": "Nav paziņojumu, kurus pārskatīt",
+ "detection": "Nav apskatāmu konstatējumu",
+ "motion": "Nav atrasti kustības dati"
+ },
+ "timeline": "Laika skala",
+ "timeline.aria": "Izvēlieties laika skalu",
+ "zoomIn": "Pietuvināt",
+ "zoomOut": "Tālināt",
+ "events": {
+ "label": "Notikumi",
+ "aria": "Izvēlieties notikumus",
+ "noFoundForTimePeriod": "Šajā laika periodā nav atrasts neviens notikums."
+ },
+ "detail": {
+ "label": "Detaļas",
+ "noDataFound": "Nav detalizētu datu pārskatīšanai",
+ "aria": "Pārslēgt detalizēto skatu",
+ "trackedObject_one": "{{count}} objekts",
+ "trackedObject_other": "{{count}} objekti",
+ "noObjectDetailData": "Nav pieejami objekta detalizēti dati.",
+ "settings": "Detaļas skata iestatījumi",
+ "alwaysExpandActive": {
+ "title": "Vienmēr izvērst aktīvs",
+ "desc": "Vienmēr izvērsiet aktīvā pārskata vienuma objekta informāciju, ja tāda ir pieejama."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Izsekots punkts",
+ "clickToSeek": "Noklikšķiniet, lai pārietu uz šo laiku"
+ },
+ "documentTitle": "Pārskats - Frigate",
+ "recordings": {
+ "documentTitle": "Ieraksti - Frigate"
+ },
+ "calendarFilter": {
+ "last24Hours": "Pēdējās 24 stundas"
+ },
+ "markAsReviewed": "Atzīmēt kā pārskatītu",
+ "markTheseItemsAsReviewed": "Atzīmēt šos vienumus kā pārskatītus",
+ "newReviewItems": {
+ "label": "Skatīt jaunus atsauksmju vienumus",
+ "button": "Jauni vienumi, kas jāpārskata"
+ },
+ "selected_one": "atlasīts {{count}}",
+ "selected_other": "atlasīts {{count}}",
+ "select_all": "Viss",
+ "camera": "Kamera",
+ "detected": "atklāts",
+ "normalActivity": "Normāls",
+ "needsReview": "Nepieciešama pārskatīšana",
+ "securityConcern": "Drošības jautājums"
+}
diff --git a/web/public/locales/lv/views/explore.json b/web/public/locales/lv/views/explore.json
index 0967ef424b..63a2d2cbc9 100644
--- a/web/public/locales/lv/views/explore.json
+++ b/web/public/locales/lv/views/explore.json
@@ -1 +1,49 @@
-{}
+{
+ "documentTitle": "Notikumu meklēšana - Frigate",
+ "generativeAI": "Ģeneratīvs AI",
+ "exploreMore": "Paskatīt vairāk objektu{{label}}",
+ "details": {
+ "timestamp": "Laika zīmogs"
+ },
+ "exploreIsUnavailable": {
+ "title": "Notikumu meklēšana nav pieejama",
+ "embeddingsReindexing": {
+ "context": "Meklēšana būs pieejama pēc tam, kad būs pabeigta izsekoto objektu atkārtota indeksēšana.",
+ "startingUp": "Notiek palaišana…",
+ "estimatedTime": "Paredzamais atlikušais laiks:"
+ }
+ },
+ "itemMenu": {
+ "findSimilar": {
+ "label": "Atrast līdzīgus",
+ "aria": "Atrast līdzīgus izsekotos priekšmetus"
+ },
+ "submitToPlus": {
+ "label": "Iesniegt Frigate+",
+ "aria": "Iesniegt Frigate Plus"
+ },
+ "viewInHistory": {
+ "label": "Atrast vēsturē"
+ },
+ "deleteTrackedObject": {
+ "label": "Dzēst šo izsekoto priekšmetu"
+ }
+ },
+ "dialog": {
+ "confirmDelete": {
+ "title": "Apstiprināt dzēšanu"
+ }
+ },
+ "searchResult": {
+ "nextTrackedObject": "Nākamais izsekotais objekts",
+ "deleteTrackedObject": {
+ "toast": {
+ "success": "Izsekotais objekts veiksmīgi izdzēsts.",
+ "error": "Neizdevās izdzēst izsekoto objektu: {{errorMessage}}"
+ }
+ }
+ },
+ "aiAnalysis": {
+ "title": "MI analīze"
+ }
+}
diff --git a/web/public/locales/lv/views/exports.json b/web/public/locales/lv/views/exports.json
index 0967ef424b..73209ce9e8 100644
--- a/web/public/locales/lv/views/exports.json
+++ b/web/public/locales/lv/views/exports.json
@@ -1 +1,23 @@
-{}
+{
+ "documentTitle": "Eksportēt - Frigate",
+ "search": "Meklēt",
+ "noExports": "Eksporti nav atrasti",
+ "deleteExport": "Dzēst eksportu",
+ "deleteExport.desc": "Vai esi pārliecināts, ka vēlies izdzēst{{exportName}}?",
+ "editExport": {
+ "title": "Pārdēvēt eksportu",
+ "desc": "Ievadiet jaunu nosaukumu šim eksportam.",
+ "saveExport": "Saglabāt eksportu"
+ },
+ "tooltip": {
+ "shareExport": "Kopīgot eksportu",
+ "downloadVideo": "Lejupielādēt video",
+ "editName": "Rediģēt nosaukumu",
+ "deleteExport": "Eksporta dzēšana"
+ },
+ "toast": {
+ "error": {
+ "renameExportFailed": "Neizdevās pārdēvēt eksporta failu: {{errorMessage}}"
+ }
+ }
+}
diff --git a/web/public/locales/lv/views/faceLibrary.json b/web/public/locales/lv/views/faceLibrary.json
index 0967ef424b..f6e254c22c 100644
--- a/web/public/locales/lv/views/faceLibrary.json
+++ b/web/public/locales/lv/views/faceLibrary.json
@@ -1 +1,93 @@
-{}
+{
+ "description": {
+ "addFace": "Pievienojiet savai seju bibliotēkai jaunu kolekciju, augšupielādējot savu pirmo attēlu.",
+ "placeholder": "Ievadi kolekcijas nosaukumu",
+ "invalidName": "Nederīgs nosaukums. Nosaukumi drīkst saturēt tikai burtus, ciparus, atstarpes, apostrofus, pasvītras un defises."
+ },
+ "details": {
+ "timestamp": "Laika zīmogs",
+ "unknown": "Nezināms",
+ "scoreInfo": "Rezultāts ir visu seju rezultāta vidējais, svērts pēc sejas izmēra katrā attēlā."
+ },
+ "documentTitle": "Seju bibliotēka - Frigate",
+ "uploadFaceImage": {
+ "title": "Augšupielādējiet sejas attēlu",
+ "desc": "Augšupielādējiet attēlu, lai skenētu sejas un iekļautu to lapā {{pageToggle}}"
+ },
+ "collections": "Kolekcijas",
+ "createFaceLibrary": {
+ "new": "Izveidojiet jaunu seju",
+ "nextSteps": "Lai izveidotu stabilu pamatu:ffprobe获取。",
"fetching": "正在获取摄像头数据",
"stream": "视频流{{idx}}",
@@ -186,12 +186,15 @@
"plate_recognition": "车牌识别",
"yolov9_plate_detection_speed": "YOLOv9 车牌检测速度",
"yolov9_plate_detection": "YOLOv9 车牌检测",
- "review_description": "核查描述",
- "review_description_speed": "核查描述速度",
- "review_description_events_per_second": "核查描述",
+ "review_description": "核查总结",
+ "review_description_speed": "核查总结速度",
+ "review_description_events_per_second": "核查总结",
"object_description": "目标描述",
"object_description_speed": "目标描述速度",
- "object_description_events_per_second": "目标描述"
+ "object_description_events_per_second": "目标描述",
+ "classification": "分类 {{name}}",
+ "classification_speed": "{{name}} 的分类速度",
+ "classification_events_per_second": "{{name}} 的每秒分类速度"
},
"averageInf": "平均推理时间"
}
diff --git a/web/public/locales/zh-Hant/common.json b/web/public/locales/zh-Hant/common.json
index b785c8b52b..f512332f05 100644
--- a/web/public/locales/zh-Hant/common.json
+++ b/web/public/locales/zh-Hant/common.json
@@ -64,7 +64,7 @@
},
"formattedTimestampMonthDay": "M 月 d 日",
"formattedTimestampFilename": {
- "12hour": "MM-dd-yy-h-mm-ss-a",
+ "12hour": "yy年MM月dd日 h時mm分ss秒",
"24hour": "yy年MM月dd日 HH時mm分ss秒"
},
"inProgress": "處理中",
@@ -81,9 +81,9 @@
"meters": "公尺"
},
"data": {
- "kbps": "kB/秒",
- "mbps": "MB/秒",
- "gbps": "GB/秒",
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
"kbph": "kB/小時",
"mbph": "MB/小時",
"gbph": "GB/小時"
@@ -276,13 +276,13 @@
"selectItem": "選擇 {{item}}",
"readTheDocumentation": "閱讀文件",
"list": {
- "two": "{{0}} 和 {{1}}",
- "many": "{{items}}, 及 {{last}}",
+ "two": "{{0}}和{{1}}",
+ "many": "{{items}}和{{last}}",
"separatorWithSpace": ", "
},
"field": {
"optional": "可選的",
- "internalID": "在Frigate 設定檔與資料庫使用的內部ID"
+ "internalID": "在Frigate 設定檔和資料庫使用的內部ID"
},
"information": {
"pixels": "{{area}}px"
diff --git a/web/public/locales/zh-Hant/views/classificationModel.json b/web/public/locales/zh-Hant/views/classificationModel.json
index f0b1d0cc91..32fce24236 100644
--- a/web/public/locales/zh-Hant/views/classificationModel.json
+++ b/web/public/locales/zh-Hant/views/classificationModel.json
@@ -2,8 +2,8 @@
"toast": {
"success": {
"deletedImage": "已刪除的圖片",
- "deletedModel_other": "成功刪除 {{count}} 個模型",
- "deletedCategory": "刪除分類",
+ "deletedModel_other": "已成功刪除 {{count}} 個模型",
+ "deletedCategory": "已刪除分類",
"categorizedImage": "成功分類圖片",
"trainedModel": "訓練模型成功。",
"trainingModel": "已開始訓練模型。",
@@ -23,7 +23,9 @@
},
"documentTitle": "分類模型",
"details": {
- "scoreInfo": "分數表示該目標所有偵測結果的平均分類置信度。"
+ "scoreInfo": "分數表示該目標所有偵測結果的平均分類置信度。",
+ "none": "沒有",
+ "unknown": "未知"
},
"button": {
"deleteClassificationAttempts": "刪除分類圖片",
@@ -81,5 +83,22 @@
"categories": "類別",
"createCategory": {
"new": "建立新的類別"
+ },
+ "wizard": {
+ "step1": {
+ "objectLabel": "物件標籤",
+ "objectLabelPlaceholder": "請選擇物件類型...",
+ "classificationType": "分類類型",
+ "classificationTypeTip": "學習更多有關分類類型",
+ "description": "狀態模型監視固定攝像頭區域的變化(例如:開關門)。物件模型為檢測到的物件(例如:已知動物、送貨員等等)添加分類。",
+ "name": "名稱",
+ "namePlaceholder": "請輸入模型名稱...",
+ "type": "類別",
+ "typeState": "狀態",
+ "typeObject": "物件"
+ },
+ "steps": {
+ "chooseExamples": "選擇範本"
+ }
}
}
diff --git a/web/src/App.tsx b/web/src/App.tsx
index 2fbfa4c99d..d7a9ec3e9d 100644
--- a/web/src/App.tsx
+++ b/web/src/App.tsx
@@ -14,6 +14,8 @@ import ProtectedRoute from "@/components/auth/ProtectedRoute";
import { AuthProvider } from "@/context/auth-context";
import useSWR from "swr";
import { FrigateConfig } from "./types/frigateConfig";
+import ActivityIndicator from "@/components/indicators/activity-indicator";
+import { isRedirectingToLogin } from "@/api/auth-redirect";
const Live = lazy(() => import("@/pages/Live"));
const Events = lazy(() => import("@/pages/Events"));
@@ -50,6 +52,23 @@ function DefaultAppView() {
const { data: config } = useSWR