From 03898c91fe81f7df2888657c2efb5ffb6db7e03b Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:37:52 +0100 Subject: [PATCH 01/24] Translated using Weblate (Turkish) Currently translated at 35.8% (38 of 106 strings) Co-authored-by: Emircanos Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/tr/ Translation: Frigate NVR/views-classificationmodel --- web/public/locales/tr/views/classificationModel.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/web/public/locales/tr/views/classificationModel.json b/web/public/locales/tr/views/classificationModel.json index 82790b549..b7e7eac65 100644 --- a/web/public/locales/tr/views/classificationModel.json +++ b/web/public/locales/tr/views/classificationModel.json @@ -36,15 +36,18 @@ "deleteModel": { "title": "Sınıflandırma Modelini Sil", "single": "{{name}} öğesini silmek istediğinizden emin misiniz? Bu işlem, görseller ve eğitim verileri dâhil olmak üzere tüm ilişkili verileri kalıcı olarak silecektir. Bu işlem geri alınamaz.", - "desc": "{{count}} modeli silmek istediğinizden emin misiniz? Bu işlem, görseller ve eğitim verileri dâhil olmak üzere tüm ilişkili verileri kalıcı olarak silecektir. Bu işlem geri alınamaz." + "desc_one": "{{count}} modeli silmek istediğinizden emin misiniz? Bu işlem, görseller ve eğitim verileri dâhil olmak üzere tüm ilişkili verileri kalıcı olarak silecektir. Bu işlem geri alınamaz.", + "desc_other": "" }, "deleteDatasetImages": { "title": "Eğitim verisi görsellerini sil", - "desc": "{{dataset}} veri kümesinden {{count}} görseli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz ve modelin yeniden eğitilmesini gerektirecektir." + "desc_one": "{{dataset}} veri kümesinden {{count}} görseli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz ve modelin yeniden eğitilmesini gerektirecektir.", + "desc_other": "" }, "deleteTrainImages": { "title": "Eğitim Görsellerini Sil", - "desc": "{{count}} görseli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz." + "desc_one": "{{count}} görseli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", + "desc_other": "" }, "renameCategory": { "title": "Sınıfı Yeniden Adlandır", From cd944ae948e2b539abb03c5260aa2cd94c466dfb Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:37:54 +0100 Subject: [PATCH 02/24] Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Added translation using Weblate (Latvian) Update translation files Updated by "Squash Git commits" add-on in Weblate. Co-authored-by: Hosted Weblate Co-authored-by: Languages add-on Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ Translation: Frigate NVR/common --- web/public/locales/lv/audio.json | 1 + web/public/locales/lv/common.json | 1 + web/public/locales/lv/components/auth.json | 1 + web/public/locales/lv/components/camera.json | 1 + web/public/locales/lv/components/dialog.json | 1 + web/public/locales/lv/components/filter.json | 1 + web/public/locales/lv/components/icons.json | 1 + web/public/locales/lv/components/input.json | 1 + web/public/locales/lv/components/player.json | 1 + web/public/locales/lv/objects.json | 1 + web/public/locales/lv/views/classificationModel.json | 1 + web/public/locales/lv/views/configEditor.json | 1 + web/public/locales/lv/views/events.json | 1 + web/public/locales/lv/views/explore.json | 1 + web/public/locales/lv/views/exports.json | 1 + web/public/locales/lv/views/faceLibrary.json | 1 + web/public/locales/lv/views/live.json | 1 + web/public/locales/lv/views/recording.json | 1 + web/public/locales/lv/views/search.json | 1 + web/public/locales/lv/views/settings.json | 1 + web/public/locales/lv/views/system.json | 1 + 21 files changed, 21 insertions(+) create mode 100644 web/public/locales/lv/audio.json create mode 100644 web/public/locales/lv/common.json create mode 100644 web/public/locales/lv/components/auth.json create mode 100644 web/public/locales/lv/components/camera.json create mode 100644 web/public/locales/lv/components/dialog.json create mode 100644 web/public/locales/lv/components/filter.json create mode 100644 web/public/locales/lv/components/icons.json create mode 100644 web/public/locales/lv/components/input.json create mode 100644 web/public/locales/lv/components/player.json create mode 100644 web/public/locales/lv/objects.json create mode 100644 web/public/locales/lv/views/classificationModel.json create mode 100644 web/public/locales/lv/views/configEditor.json create mode 100644 web/public/locales/lv/views/events.json create mode 100644 web/public/locales/lv/views/explore.json create mode 100644 web/public/locales/lv/views/exports.json create mode 100644 web/public/locales/lv/views/faceLibrary.json create mode 100644 web/public/locales/lv/views/live.json create mode 100644 web/public/locales/lv/views/recording.json create mode 100644 web/public/locales/lv/views/search.json create mode 100644 web/public/locales/lv/views/settings.json create mode 100644 web/public/locales/lv/views/system.json diff --git a/web/public/locales/lv/audio.json b/web/public/locales/lv/audio.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/audio.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/common.json b/web/public/locales/lv/common.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/common.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/components/auth.json b/web/public/locales/lv/components/auth.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/components/auth.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/components/camera.json b/web/public/locales/lv/components/camera.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/components/camera.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/components/dialog.json b/web/public/locales/lv/components/dialog.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/components/dialog.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/components/filter.json b/web/public/locales/lv/components/filter.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/components/filter.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/components/icons.json b/web/public/locales/lv/components/icons.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/components/icons.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/components/input.json b/web/public/locales/lv/components/input.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/components/input.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/components/player.json b/web/public/locales/lv/components/player.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/components/player.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/objects.json b/web/public/locales/lv/objects.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/objects.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/classificationModel.json b/web/public/locales/lv/views/classificationModel.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/classificationModel.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/configEditor.json b/web/public/locales/lv/views/configEditor.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/configEditor.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/events.json b/web/public/locales/lv/views/events.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/events.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/explore.json b/web/public/locales/lv/views/explore.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/explore.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/exports.json b/web/public/locales/lv/views/exports.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/exports.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/faceLibrary.json b/web/public/locales/lv/views/faceLibrary.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/faceLibrary.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/live.json b/web/public/locales/lv/views/live.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/live.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/recording.json b/web/public/locales/lv/views/recording.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/recording.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/search.json b/web/public/locales/lv/views/search.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/search.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/settings.json b/web/public/locales/lv/views/settings.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/settings.json @@ -0,0 +1 @@ +{} diff --git a/web/public/locales/lv/views/system.json b/web/public/locales/lv/views/system.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/web/public/locales/lv/views/system.json @@ -0,0 +1 @@ +{} From 4be578dc2786adcae56105a07ade8f7a909220b3 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:37:56 +0100 Subject: [PATCH 03/24] Translated using Weblate (Lithuanian) Currently translated at 30.1% (32 of 106 strings) Co-authored-by: Hosted Weblate Co-authored-by: MaBeniu Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/lt/ Translation: Frigate NVR/views-classificationmodel --- web/public/locales/lt/views/classificationModel.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/web/public/locales/lt/views/classificationModel.json b/web/public/locales/lt/views/classificationModel.json index f797f69d0..9deea3608 100644 --- a/web/public/locales/lt/views/classificationModel.json +++ b/web/public/locales/lt/views/classificationModel.json @@ -28,11 +28,15 @@ }, "deleteDatasetImages": { "title": "Ištrinti Imties Nuotraukas", - "desc": "Esate įsitikinę norite ištrinti {{count}} nautraukas iš {{dataset}}? Šis veiksmas negrįžtamas ir reikės iš naujo apmokinti modelį." + "desc_one": "Esate įsitikinę norite ištrinti {{count}} nautraukas iš {{dataset}}? Šis veiksmas negrįžtamas ir reikės iš naujo apmokinti modelį.", + "desc_few": "", + "desc_other": "" }, "deleteTrainImages": { "title": "Ištrinti Apmokymo Nuotraukas", - "desc": "Ar esate įsitikinę, kad norite ištrinti {{count}} nuotraukas? Šis veiksmas negrįžtamas." + "desc_one": "Ar esate įsitikinę, kad norite ištrinti {{count}} nuotraukas? Šis veiksmas negrįžtamas.", + "desc_few": "", + "desc_other": "" }, "renameCategory": { "title": "Pervadinti Klasę", From 1681ba5984e8c8f46205eb54d1d92c1b294fd2df Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:37:58 +0100 Subject: [PATCH 04/24] Translated using Weblate (Portuguese (Brazil)) Currently translated at 24.1% (28 of 116 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 68.7% (439 of 639 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.4% (38 of 39 strings) Co-authored-by: Hosted Weblate Co-authored-by: Marcelo Popper Costa Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/ Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-settings --- .../pt-BR/views/classificationModel.json | 18 ++++++++++++++---- web/public/locales/pt-BR/views/events.json | 4 ++-- web/public/locales/pt-BR/views/settings.json | 2 +- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/web/public/locales/pt-BR/views/classificationModel.json b/web/public/locales/pt-BR/views/classificationModel.json index 5cfed4b10..2340ffa68 100644 --- a/web/public/locales/pt-BR/views/classificationModel.json +++ b/web/public/locales/pt-BR/views/classificationModel.json @@ -7,7 +7,8 @@ "deleteImages": "Apagar Imagens", "trainModel": "Treinar Modelo", "addClassification": "Adicionar classificação", - "deleteModels": "Excluir modelos" + "deleteModels": "Excluir modelos", + "editModel": "Editar Modelo" }, "toast": { "success": { @@ -16,9 +17,9 @@ "categorizedImage": "Imagem Classificada com Sucesso", "trainedModel": "Modelo treinado com sucesso.", "trainingModel": "Treinamento do modelo iniciado com sucesso.", - "deletedModel_one": "Modelo(s) {{count}} excluído(s) com sucesso", - "deletedModel_many": "", - "deletedModel_other": "" + "deletedModel_one": "{{count}} modelo excluído com sucesso", + "deletedModel_many": "{{count}} modelos excluídos com sucesso", + "deletedModel_other": "{{count}} modelos excluídos com sucesso" }, "error": { "deleteImageFailed": "Falha ao deletar:{{errorMessage}}", @@ -35,5 +36,14 @@ "deleteModel": { "title": "Deletar modelo de classificação", "single": "Tem certeza de que deseja excluir {{name}}? Isso excluirá permanentemente todos os dados associados, incluindo imagens e dados de treinamento. Esta ação não pode ser desfeita." + }, + "details": { + "scoreInfo": "A pontuação representa a média de confiança da classificação de todas as detecções deste objeto." + }, + "tooltip": { + "trainingInProgress": "O modelo está sendo treinado", + "noNewImages": "Nenhuma nova imagem para treinar. Classifique mais imagens para treinar mais.", + "noChanges": "Nenhuma alteração ao conjunto de dados desde o último treinamento.", + "modelNotReady": "O modelo não está pronto para treinamento" } } diff --git a/web/public/locales/pt-BR/views/events.json b/web/public/locales/pt-BR/views/events.json index 8edaa67ca..37785ab13 100644 --- a/web/public/locales/pt-BR/views/events.json +++ b/web/public/locales/pt-BR/views/events.json @@ -40,8 +40,8 @@ "detail": { "noDataFound": "Nenhum dado de detalhe para revisar", "aria": "Alternar visualização de detalhe", - "trackedObject_one": "objeto", - "trackedObject_other": "objetos", + "trackedObject_one": "{{count}} objeto(s)", + "trackedObject_other": "{{count}} objetos", "noObjectDetailData": "Nenhum dado de detalhe de objeto disponível.", "label": "Detalhe", "settings": "Configurações de visualização detalhada", diff --git a/web/public/locales/pt-BR/views/settings.json b/web/public/locales/pt-BR/views/settings.json index dbf8cf433..541fd8bf4 100644 --- a/web/public/locales/pt-BR/views/settings.json +++ b/web/public/locales/pt-BR/views/settings.json @@ -7,7 +7,7 @@ "masksAndZones": "Editor de Máscara e Zona - Frigate", "motionTuner": "Ajuste de Movimento - Frigate", "object": "Debug - Frigate", - "general": "Configurações Gerais - Frigate", + "general": "Configurações de Interface de Usuário - Frigate", "frigatePlus": "Frigate+ Configurações- Frigate", "notifications": "Configurações de notificação - Frigate", "cameraManagement": "Gerenciar Câmeras - Frigate", From 11405710d6ff340c5cd9743bc00afc64a3db7dac Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:00 +0100 Subject: [PATCH 05/24] Translated using Weblate (German) Currently translated at 19.8% (23 of 116 strings) Translated using Weblate (German) Currently translated at 89.7% (35 of 39 strings) Translated using Weblate (German) Currently translated at 100.0% (13 of 13 strings) Translated using Weblate (German) Currently translated at 77.7% (497 of 639 strings) Translated using Weblate (German) Currently translated at 98.0% (51 of 52 strings) Translated using Weblate (German) Currently translated at 18.1% (21 of 116 strings) Translated using Weblate (German) Currently translated at 84.6% (33 of 39 strings) Translated using Weblate (German) Currently translated at 6.0% (7 of 116 strings) Translated using Weblate (German) Currently translated at 92.3% (48 of 52 strings) Translated using Weblate (German) Currently translated at 93.7% (119 of 127 strings) Translated using Weblate (German) Currently translated at 71.6% (91 of 127 strings) Translated using Weblate (German) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (635 of 635 strings) Translated using Weblate (German) Currently translated at 100.0% (209 of 209 strings) Translated using Weblate (German) Currently translated at 88.4% (443 of 501 strings) Co-authored-by: Christos Sidiropoulos Co-authored-by: Hosted Weblate Co-authored-by: Marijn <168113859+Marijn0@users.noreply.github.com> Co-authored-by: mvdberge Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/de/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nl/ Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings --- web/public/locales/de/audio.json | 18 +++++- web/public/locales/de/common.json | 16 ++++- web/public/locales/de/components/auth.json | 3 +- web/public/locales/de/components/dialog.json | 5 +- .../locales/de/views/classificationModel.json | 39 +++++++++++- web/public/locales/de/views/events.json | 13 +++- web/public/locales/de/views/explore.json | 62 ++++++++++++++++++- web/public/locales/de/views/exports.json | 6 ++ web/public/locales/de/views/faceLibrary.json | 8 +-- web/public/locales/de/views/settings.json | 2 +- 10 files changed, 157 insertions(+), 15 deletions(-) diff --git a/web/public/locales/de/audio.json b/web/public/locales/de/audio.json index 0e0e50935..28d3881c2 100644 --- a/web/public/locales/de/audio.json +++ b/web/public/locales/de/audio.json @@ -425,5 +425,21 @@ "sanding": "Schleifen", "machine_gun": "Maschinengewehr", "boom": "Dröhnen", - "field_recording": "Außenaufnahme" + "field_recording": "Außenaufnahme", + "liquid": "Flüssigkeit", + "splash": "Spritzer", + "slosh": "Schwenken", + "squish": "Quetschen", + "drip": "Tropfen", + "pour": "Gießen", + "trickle": "Tröpfeln", + "fill": "Füllen", + "spray": "Sprühen", + "pump": "Pumpen", + "stir": "Umrühren", + "boiling": "Köchelnd", + "arrow": "Pfeil", + "electronic_tuner": "Elektronischer Tuner", + "effects_unit": "Effekteinheit", + "chorus_effect": "Chorus-Effekt" } diff --git a/web/public/locales/de/common.json b/web/public/locales/de/common.json index 98c3f4d7a..9764a8809 100644 --- a/web/public/locales/de/common.json +++ b/web/public/locales/de/common.json @@ -121,7 +121,12 @@ "unsuspended": "fortsetzen" }, "label": { - "back": "Zurück" + "back": "Zurück", + "hide": "Verstecke {{item}}", + "show": "Zeige {{item}}", + "ID": "ID", + "none": "Nichts", + "all": "Alle" }, "menu": { "configurationEditor": "Konfigurationseditor", @@ -284,5 +289,14 @@ }, "information": { "pixels": "{{area}}px" + }, + "field": { + "optional": "Optional", + "internalID": "Die interne ID, die Frigate in der Konfiguration und Datenbank verwendet" + }, + "list": { + "two": "{{0}} und {{1}}", + "many": "{{items}}, und {{last}}", + "separatorWithSpace": ", " } } diff --git a/web/public/locales/de/components/auth.json b/web/public/locales/de/components/auth.json index 8cbd1ff8c..6b8a5164a 100644 --- a/web/public/locales/de/components/auth.json +++ b/web/public/locales/de/components/auth.json @@ -10,6 +10,7 @@ "unknownError": "Unbekannter Fehler. Prüfe Logs." }, "user": "Benutzername", - "password": "Kennwort" + "password": "Kennwort", + "firstTimeLogin": "Versuchen Sie sich zum ersten Mal anzumelden? Die Anmeldedaten sind in den Frigate-Logs aufgeführt." } } diff --git a/web/public/locales/de/components/dialog.json b/web/public/locales/de/components/dialog.json index 4ef555e76..bff70e206 100644 --- a/web/public/locales/de/components/dialog.json +++ b/web/public/locales/de/components/dialog.json @@ -66,7 +66,7 @@ "failed": "Fehler beim Starten des Exports: {{error}}", "noVaildTimeSelected": "Kein gültiger Zeitraum ausgewählt" }, - "success": "Export erfolgreich gestartet. Die Datei befindet sich im Ordner /exports." + "success": "Export erfolgreich gestartet. Die Datei befindet sich auf der Exportseite." }, "fromTimeline": { "saveExport": "Export speichern", @@ -126,6 +126,7 @@ "search": { "placeholder": "Nach Label oder Unterlabel suchen..." }, - "noImages": "Kein Vorschaubild für diese Kamera gefunden" + "noImages": "Kein Vorschaubild für diese Kamera gefunden", + "unknownLabel": "Gespeichertes Triggerbild" } } diff --git a/web/public/locales/de/views/classificationModel.json b/web/public/locales/de/views/classificationModel.json index 0967ef424..dfe2965af 100644 --- a/web/public/locales/de/views/classificationModel.json +++ b/web/public/locales/de/views/classificationModel.json @@ -1 +1,38 @@ -{} +{ + "documentTitle": "Klassifizierungsmodelle", + "details": { + "scoreInfo": "Die Punktzahl gibt die durchschnittliche Klassifizierungssicherheit aller Erkennungen dieses Objekts wieder." + }, + "button": { + "deleteClassificationAttempts": "Lösche Klassifizierungs-Bilder", + "renameCategory": "Klasse umbenennen", + "deleteCategory": "Klasse löschen", + "deleteImages": "Bilder löschen", + "trainModel": "Modell trainieren", + "addClassification": "Klassifizierung hinzufügen", + "deleteModels": "Modell löschen", + "editModel": "Modell bearbeiten" + }, + "tooltip": { + "trainingInProgress": "Modell wird gerade trainiert", + "noNewImages": "Keine weiteren Bilder zum trainieren. Bitte klassifiziere weitere Bilder im Datensatz.", + "noChanges": "Keine Veränderungen des Datensatzes seit dem letzten Training.", + "modelNotReady": "Modell ist nicht bereit trainiert zu werden." + }, + "toast": { + "success": { + "deletedCategory": "Klasse gelöscht", + "deletedImage": "Gelöschte Bilder", + "deletedModel_one": "{{count}} Model erfolgreich gelöscht", + "deletedModel_other": "{{count}} Modelle erfolgreich gelöscht", + "categorizedImage": "Bild erfolgreich klassifiziert", + "trainedModel": "Modell erfolgreich trainiert.", + "trainingModel": "Modelltraining erfolgreich gestartet.", + "updatedModel": "Modellkonfiguration erfolgreich aktualisiert", + "renamedCategory": "Klasse erfolgreich in {{name}} umbenannt" + }, + "error": { + "deleteImageFailed": "Löschen fehlgeschlagen: {{errorMessage}}" + } + } +} diff --git a/web/public/locales/de/views/events.json b/web/public/locales/de/views/events.json index e9bdcf4ff..37cfbde2f 100644 --- a/web/public/locales/de/views/events.json +++ b/web/public/locales/de/views/events.json @@ -36,5 +36,16 @@ "selected_other": "{{count}} ausgewählt", "detected": "erkannt", "suspiciousActivity": "Verdächtige Aktivität", - "threateningActivity": "Bedrohliche Aktivität" + "threateningActivity": "Bedrohliche Aktivität", + "zoomIn": "Hereinzoomen", + "zoomOut": "Herauszoomen", + "detail": { + "label": "Detail", + "aria": "Detailansicht umschalten", + "trackedObject_one": "{{count}} Objekt", + "trackedObject_other": "{{count}} Objekte", + "noObjectDetailData": "Keine detaillierten Daten des Objekt verfügbar.", + "noDataFound": "Keine Detaildaten zur Überprüfung", + "settings": "Detailansicht Einstellungen" + } } diff --git a/web/public/locales/de/views/explore.json b/web/public/locales/de/views/explore.json index 96d64e167..e54e390f1 100644 --- a/web/public/locales/de/views/explore.json +++ b/web/public/locales/de/views/explore.json @@ -158,7 +158,8 @@ "details": "Details", "video": "Video", "object_lifecycle": "Objekt-Lebenszyklus", - "snapshot": "Snapshot" + "snapshot": "Snapshot", + "thumbnail": "Vorschaubild" }, "itemMenu": { "downloadSnapshot": { @@ -195,12 +196,22 @@ "addTrigger": { "aria": "Einen Trigger für dieses verfolgte Objekt hinzufügen", "label": "Trigger hinzufügen" + }, + "viewTrackingDetails": { + "label": "Details zum Verfolgen anzeigen", + "aria": "Details zum Verfolgen anzeigen" + }, + "showObjectDetails": { + "label": "Objektpfad anzeigen" + }, + "hideObjectDetails": { + "label": "Objektpfad verbergen" } }, "dialog": { "confirmDelete": { "title": "Löschen bestätigen", - "desc": "Beim Löschen dieses verfolgten Objekts werden der Schnappschuss, alle gespeicherten Einbettungen und alle zugehörigen Objektlebenszykluseinträge entfernt. Aufgezeichnetes Filmmaterial dieses verfolgten Objekts in der Verlaufsansicht wird NICHT gelöscht.

Sind Sie sicher, dass Sie fortfahren möchten?" + "desc": "Beim Löschen dieses verfolgten Objekts werden der Schnappschuss, alle gespeicherten Einbettungen und alle zugehörigen Verfolgungsdetails entfernt. Aufgezeichnetes Filmmaterial dieses verfolgten Objekts in der Verlaufsansicht wird NICHT gelöscht.

Sind Sie sicher, dass Sie fortfahren möchten?" } }, "searchResult": { @@ -210,7 +221,9 @@ "error": "Das verfolgte Objekt konnte nicht gelöscht werden: {{errorMessage}}" } }, - "tooltip": "Entspricht {{type}} bei {{confidence}}%" + "tooltip": "Entspricht {{type}} bei {{confidence}}%", + "previousTrackedObject": "Vorheriges verfolgtes Objekt", + "nextTrackedObject": "Nächstes verfolgtes Objekt" }, "noTrackedObjects": "Keine verfolgten Objekte gefunden", "fetchingTrackedObjectsFailed": "Fehler beim Abrufen von verfolgten Objekten: {{errorMessage}}", @@ -222,5 +235,48 @@ }, "concerns": { "label": "Bedenken" + }, + "trackingDetails": { + "noImageFound": "Kein Bild mit diesem Zeitstempel gefunden.", + "createObjectMask": "Objekt-Maske erstellen", + "scrollViewTips": "Klicke, um die relevanten Momente aus dem Lebenszyklus dieses Objektes zu sehen.", + "lifecycleItemDesc": { + "visible": "{{label}} erkannt", + "entered_zone": "{{label}} betrat {{zones}}", + "active": "{{label}} wurde aktiv", + "stationary": "{{label}} wurde stationär", + "attribute": { + "faceOrLicense_plate": "{{attribute}} erkannt für {{label}}", + "other": "{{label}} erkannt als {{attribute}}" + }, + "gone": "{{label}} verließ", + "heard": "{{label}} wurde gehört", + "external": "{{label}} erkannt", + "header": { + "zones": "Zonen", + "ratio": "Verhältnis", + "area": "Bereich" + } + }, + "annotationSettings": { + "title": "Anmerkungseinstellungen", + "showAllZones": { + "title": "Zeige alle Zonen", + "desc": "Immer Zonen auf Rahmen anzeigen, in die Objekte eingetreten sind." + }, + "offset": { + "label": "Anmerkungen Versatz", + "desc": "Diese Daten stammen aus dem Erkennungsfeed der Kamera, werden jedoch über Bilder aus dem Aufzeichnungsfeed gelegt. Es ist unwahrscheinlich, dass beide Streams perfekt synchron sind. Daher stimmen der Begrenzungsrahmen und das Filmmaterial nicht vollständig überein. Mit dieser Einstellung lassen sich die Anmerkungen zeitlich nach vorne oder hinten verschieben, um sie besser an das aufgezeichnete Filmmaterial anzupassen.", + "millisecondsToOffset": "Millisekunden, um Erkennungs-Anmerkungen zu verschieben. Standard: 0", + "tips": "Verringere den Wert, wenn die Videowiedergabe den Boxen und Wegpunkten voraus ist, und erhöhe den Wert, wenn die Videowiedergabe hinter ihnen zurückbleibt. Dieser Wert kann negativ sein.", + "toast": { + "success": "Der Anmerkungs-Offset für {{camera}} wurde in der Konfigurationsdatei gespeichert. Starte Frigate neu, um Ihre Änderungen zu übernehmen." + } + } + }, + "carousel": { + "previous": "Vorherige Anzeige", + "next": "Nächste Anzeige" + } } } diff --git a/web/public/locales/de/views/exports.json b/web/public/locales/de/views/exports.json index 2fb729cc2..c3bae1239 100644 --- a/web/public/locales/de/views/exports.json +++ b/web/public/locales/de/views/exports.json @@ -13,5 +13,11 @@ "error": { "renameExportFailed": "Umbenennen des Exports fehlgeschlagen: {{errorMessage}}" } + }, + "tooltip": { + "shareExport": "Export teilen", + "downloadVideo": "Video herunterladen", + "editName": "Name ändern", + "deleteExport": "Export löschen" } } diff --git a/web/public/locales/de/views/faceLibrary.json b/web/public/locales/de/views/faceLibrary.json index b9df73594..d28459ef2 100644 --- a/web/public/locales/de/views/faceLibrary.json +++ b/web/public/locales/de/views/faceLibrary.json @@ -1,7 +1,7 @@ { "description": { "placeholder": "Gib einen Name für diese Kollektion ein", - "addFace": "Anleitung für das Hinzufügen einer neuen Kollektion zur Gesichtsbibliothek.", + "addFace": "Füge der Gesichtsbibliothek eine neue Sammlung hinzu, indem ein erstes Bild hochgeladen wird.", "invalidName": "Ungültiger Name. Namen dürfen nur Buchstaben, Zahlen, Leerzeichen, Apostrophe, Unterstriche und Bindestriche enthalten." }, "details": { @@ -22,7 +22,7 @@ "title": "Kollektion erstellen", "new": "Lege ein neues Gesicht an", "desc": "Erstelle eine neue Kollektion", - "nextSteps": "Um eine solide Grundlage zu bilden:
  • Benutze den Trainieren Tab, um Bilder für jede erkannte Person auszuwählen und zu trainieren.
  • Konzentriere dich für gute Ergebnisse auf Frontalfotos; vermeide Bilder zu Trainingszwecken, bei denen Gesichter aus einem Winkel erfasst wurden.
  • " + "nextSteps": "Um eine solide Grundlage zu bilden:
  • Benutze den \"Aktuelle Erkennungen\" Tab, um Bilder für jede erkannte Person auszuwählen und zu trainieren.
  • Konzentriere dich für gute Ergebnisse auf Frontalfotos; vermeide Bilder zu Trainingszwecken, bei denen Gesichter aus einem Winkel erfasst wurden.
  • " }, "documentTitle": "Gesichtsbibliothek - Frigate", "selectItem": "Wähle {{item}}", @@ -44,8 +44,8 @@ "deleteFace": "Lösche Gesicht" }, "train": { - "title": "Trainiere", - "aria": "Wähle Training", + "title": "Aktuelle Erkennungen", + "aria": "Wähle aktuelle Erkennungen", "empty": "Es gibt keine aktuellen Versuche zur Gesichtserkennung" }, "deleteFaceLibrary": { diff --git a/web/public/locales/de/views/settings.json b/web/public/locales/de/views/settings.json index be4ec3259..96a16bdff 100644 --- a/web/public/locales/de/views/settings.json +++ b/web/public/locales/de/views/settings.json @@ -5,7 +5,7 @@ "camera": "Kameraeinstellungen - Frigate", "masksAndZones": "Masken- und Zonen-Editor – Frigate", "object": "Debug - Frigate", - "general": "Allgemeine Einstellungen – Frigate", + "general": "UI Einstellungen – Frigate", "frigatePlus": "Frigate+ Einstellungen – Frigate", "classification": "Klassifizierungseinstellungen – Frigate", "motionTuner": "Bewegungserkennungs-Optimierer – Frigate", From d3b1f5da430fd5501a0201458d75f49380534dcf Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:01 +0100 Subject: [PATCH 06/24] Translated using Weblate (Danish) Currently translated at 48.3% (57 of 118 strings) Translated using Weblate (Danish) Currently translated at 16.6% (9 of 54 strings) Translated using Weblate (Danish) Currently translated at 7.7% (9 of 116 strings) Translated using Weblate (Danish) Currently translated at 6.7% (8 of 118 strings) Translated using Weblate (Danish) Currently translated at 1.4% (9 of 639 strings) Translated using Weblate (Danish) Currently translated at 16.6% (8 of 48 strings) Translated using Weblate (Danish) Currently translated at 100.0% (6 of 6 strings) Translated using Weblate (Danish) Currently translated at 10.0% (9 of 90 strings) Translated using Weblate (Danish) Currently translated at 17.3% (9 of 52 strings) Translated using Weblate (Danish) Currently translated at 61.5% (8 of 13 strings) Translated using Weblate (Danish) Currently translated at 9.4% (12 of 127 strings) Translated using Weblate (Danish) Currently translated at 25.6% (10 of 39 strings) Translated using Weblate (Danish) Currently translated at 80.0% (8 of 10 strings) Translated using Weblate (Danish) Currently translated at 36.0% (9 of 25 strings) Translated using Weblate (Danish) Currently translated at 100.0% (2 of 2 strings) Translated using Weblate (Danish) Currently translated at 12.5% (9 of 72 strings) Translated using Weblate (Danish) Currently translated at 14.8% (8 of 54 strings) Translated using Weblate (Danish) Currently translated at 19.5% (9 of 46 strings) Translated using Weblate (Danish) Currently translated at 90.0% (9 of 10 strings) Translated using Weblate (Danish) Currently translated at 16.9% (85 of 501 strings) Co-authored-by: Hosted Weblate Co-authored-by: demention666 Co-authored-by: dinf60 Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/da/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/da/ Translation: Frigate NVR/audio Translation: Frigate NVR/components-auth Translation: Frigate NVR/components-camera Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/components-input Translation: Frigate NVR/components-player Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-configeditor Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-recording Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/da/audio.json | 6 +- web/public/locales/da/components/auth.json | 6 +- web/public/locales/da/components/camera.json | 6 +- web/public/locales/da/components/dialog.json | 18 +++- web/public/locales/da/components/filter.json | 6 +- web/public/locales/da/components/input.json | 5 +- web/public/locales/da/components/player.json | 12 ++- .../locales/da/views/classificationModel.json | 18 +++- web/public/locales/da/views/configEditor.json | 6 +- web/public/locales/da/views/events.json | 7 +- web/public/locales/da/views/explore.json | 14 ++- web/public/locales/da/views/exports.json | 7 +- web/public/locales/da/views/faceLibrary.json | 15 ++- web/public/locales/da/views/live.json | 9 ++ web/public/locales/da/views/recording.json | 3 +- web/public/locales/da/views/search.json | 3 +- web/public/locales/da/views/settings.json | 8 +- web/public/locales/da/views/system.json | 93 ++++++++++++++++++- 18 files changed, 219 insertions(+), 23 deletions(-) diff --git a/web/public/locales/da/audio.json b/web/public/locales/da/audio.json index bc4be50ee..81481336e 100644 --- a/web/public/locales/da/audio.json +++ b/web/public/locales/da/audio.json @@ -80,5 +80,9 @@ "hammer": "Hammer", "drill": "Bore", "explosion": "Eksplosion", - "fireworks": "Nytårskrudt" + "fireworks": "Nytårskrudt", + "babbling": "Pludren", + "yell": "Råb", + "whoop": "Jubel", + "snicker": "Smålatter" } diff --git a/web/public/locales/da/components/auth.json b/web/public/locales/da/components/auth.json index 49b428fb8..ee1018299 100644 --- a/web/public/locales/da/components/auth.json +++ b/web/public/locales/da/components/auth.json @@ -7,7 +7,9 @@ "usernameRequired": "Brugernavn kræves", "passwordRequired": "Kodeord kræves", "loginFailed": "Login fejlede", - "unknownError": "Ukendt fejl. Tjek logs." - } + "unknownError": "Ukendt fejl. Tjek logs.", + "rateLimit": "Grænsen for forespørgsler er overskredet. Prøv igen senere." + }, + "firstTimeLogin": "Forsøger du at logge ind for første gang? Loginoplysningerne står i Frigate-loggene." } } diff --git a/web/public/locales/da/components/camera.json b/web/public/locales/da/components/camera.json index 5de77e997..769c6cc2a 100644 --- a/web/public/locales/da/components/camera.json +++ b/web/public/locales/da/components/camera.json @@ -11,7 +11,11 @@ } }, "name": { - "label": "Navn" + "label": "Navn", + "placeholder": "Indtast et navn…", + "errorMessage": { + "mustLeastCharacters": "Kameragruppens navn skal være mindst 2 tegn." + } } } } diff --git a/web/public/locales/da/components/dialog.json b/web/public/locales/da/components/dialog.json index 39e65d3b6..4d4a85174 100644 --- a/web/public/locales/da/components/dialog.json +++ b/web/public/locales/da/components/dialog.json @@ -3,7 +3,23 @@ "title": "Er du sikker på at du vil genstarte Frigate?", "button": "Genstart", "restarting": { - "title": "Frigate genstarter" + "title": "Frigate genstarter", + "button": "Gennemtving genindlæsning nu", + "content": "Denne side genindlæses om {{countdown}} sekunder." + } + }, + "explore": { + "plus": { + "submitToPlus": { + "label": "Indsend til Frigate+", + "desc": "Objekter på steder, du ønsker at undgå, er ikke falske positiver. Hvis du indsender dem som falske positiver, vil det forvirre modellen." + }, + "review": { + "question": { + "label": "Bekræft denne etiket til Frigate Plus", + "ask_a": "Er dette objekt et {{label}}?" + } + } } } } diff --git a/web/public/locales/da/components/filter.json b/web/public/locales/da/components/filter.json index 096374f16..2891247e8 100644 --- a/web/public/locales/da/components/filter.json +++ b/web/public/locales/da/components/filter.json @@ -10,8 +10,10 @@ }, "labels": { "all": { - "short": "Labels" + "short": "Labels", + "title": "Alle etiketter" }, - "count_one": "{{count}} Label" + "count_one": "{{count}} Label", + "label": "Etiketter" } } diff --git a/web/public/locales/da/components/input.json b/web/public/locales/da/components/input.json index 9d3f04a7f..0a8c89716 100644 --- a/web/public/locales/da/components/input.json +++ b/web/public/locales/da/components/input.json @@ -1,7 +1,10 @@ { "button": { "downloadVideo": { - "label": "Download Video" + "label": "Download Video", + "toast": { + "success": "Din video til gennemgang er begyndt at blive downloadet." + } } } } diff --git a/web/public/locales/da/components/player.json b/web/public/locales/da/components/player.json index 0a4adcc0e..8a89b29ab 100644 --- a/web/public/locales/da/components/player.json +++ b/web/public/locales/da/components/player.json @@ -1,5 +1,15 @@ { "noRecordingsFoundForThisTime": "Ingen optagelser fundet i det angivet tidsrum", "noPreviewFound": "Ingen forhåndsvisning fundet", - "cameraDisabled": "Kamera er deaktiveret" + "cameraDisabled": "Kamera er deaktiveret", + "noPreviewFoundFor": "Ingen forhåndsvisning fundet for {{cameraName}}", + "submitFrigatePlus": { + "title": "Indsend denne frame til Frigate+?", + "submit": "Indsend" + }, + "livePlayerRequiredIOSVersion": "iOS 17.1 eller nyere kræves for denne type livestream.", + "streamOffline": { + "title": "Stream offline", + "desc": "Der er ikke modtaget nogen frames på {{cameraName}}-detect-streamen, tjek fejlloggene." + } } diff --git a/web/public/locales/da/views/classificationModel.json b/web/public/locales/da/views/classificationModel.json index 0967ef424..b30e65d5c 100644 --- a/web/public/locales/da/views/classificationModel.json +++ b/web/public/locales/da/views/classificationModel.json @@ -1 +1,17 @@ -{} +{ + "documentTitle": "Klassifikationsmodeller", + "details": { + "scoreInfo": "Scoren repræsenterer den gennemsnitlige klassifikationssikkerhed på tværs af alle registreringer af dette objekt." + }, + "description": { + "invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger." + }, + "button": { + "deleteClassificationAttempts": "Slet klassifikationsbilleder", + "renameCategory": "Omdøb klasse", + "deleteCategory": "Slet klasse", + "deleteImages": "Slet billeder", + "trainModel": "Træn model", + "addClassification": "Tilføj klassifikation" + } +} diff --git a/web/public/locales/da/views/configEditor.json b/web/public/locales/da/views/configEditor.json index 9d8a9a87f..ba1d6a715 100644 --- a/web/public/locales/da/views/configEditor.json +++ b/web/public/locales/da/views/configEditor.json @@ -2,5 +2,9 @@ "documentTitle": "Konfigurationsstyring - Frigate", "copyConfig": "Kopiér konfiguration", "saveAndRestart": "Gem & Genstart", - "saveOnly": "Kun gem" + "saveOnly": "Kun gem", + "configEditor": "Konfigurationseditor", + "safeConfigEditor": "Konfigurationseditor (Sikker tilstand)", + "safeModeDescription": "Frigate er i sikker tilstand på grund af en fejl ved validering af konfigurationen.", + "confirm": "Afslut uden at gemme?" } diff --git a/web/public/locales/da/views/events.json b/web/public/locales/da/views/events.json index 9f065c38e..f59b2f356 100644 --- a/web/public/locales/da/views/events.json +++ b/web/public/locales/da/views/events.json @@ -7,5 +7,10 @@ }, "allCameras": "Alle kameraer", "timeline": "Tidslinje", - "camera": "Kamera" + "camera": "Kamera", + "empty": { + "alert": "Der er ingen advarsler at gennemgå", + "detection": "Der er ingen registreringer at gennemgå", + "motion": "Ingen bevægelsesdata fundet" + } } diff --git a/web/public/locales/da/views/explore.json b/web/public/locales/da/views/explore.json index ec8a805e8..afe962aea 100644 --- a/web/public/locales/da/views/explore.json +++ b/web/public/locales/da/views/explore.json @@ -13,7 +13,17 @@ "exploreIsUnavailable": { "embeddingsReindexing": { "startingUp": "Starter…", - "estimatedTime": "Estimeret tid tilbage:" - } + "estimatedTime": "Estimeret tid tilbage:", + "context": "Udforsk kan bruges, når genindekseringen af de sporede objektindlejringer er fuldført.", + "finishingShortly": "Afsluttes om lidt", + "step": { + "thumbnailsEmbedded": "Miniaturer indlejret: " + } + }, + "title": "Udforsk er ikke tilgængelig" + }, + "exploreMore": "Udforsk flere {{label}}-objekter", + "details": { + "timestamp": "Tidsstempel" } } diff --git a/web/public/locales/da/views/exports.json b/web/public/locales/da/views/exports.json index ea9879a11..8c5f119c4 100644 --- a/web/public/locales/da/views/exports.json +++ b/web/public/locales/da/views/exports.json @@ -4,6 +4,9 @@ "deleteExport.desc": "Er du sikker på at du vil slette {{exportName}}?", "editExport": { "title": "Omdøb Eksport", - "saveExport": "Gem Eksport" - } + "saveExport": "Gem Eksport", + "desc": "Indtast et nyt navn for denne eksport." + }, + "noExports": "Ingen eksporter fundet", + "deleteExport": "Slet eksport" } diff --git a/web/public/locales/da/views/faceLibrary.json b/web/public/locales/da/views/faceLibrary.json index e826586f6..f309e6fa0 100644 --- a/web/public/locales/da/views/faceLibrary.json +++ b/web/public/locales/da/views/faceLibrary.json @@ -1,10 +1,19 @@ { "selectItem": "Vælg {{item}}", "description": { - "addFace": "Gennemgang af tilføjelse til ansigts bibliotek", - "placeholder": "Angiv et navn for bibliotek" + "addFace": "Tilføj en ny samling til ansigtsbiblioteket ved at uploade dit første billede.", + "placeholder": "Angiv et navn for bibliotek", + "invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger." }, "details": { - "person": "Person" + "person": "Person", + "timestamp": "Tidsstempel", + "unknown": "Ukendt", + "scoreInfo": "Scoren er et vægtet gennemsnit af alle ansigtsscorer, vægtet efter ansigtets størrelse på hvert billede." + }, + "documentTitle": "Ansigtsbibliotek - Frigate", + "uploadFaceImage": { + "title": "Upload ansigtsbillede", + "desc": "Upload et billede for at scanne efter ansigter og inkludere det for {{pageToggle}}" } } diff --git a/web/public/locales/da/views/live.json b/web/public/locales/da/views/live.json index 73cf941c1..254539b38 100644 --- a/web/public/locales/da/views/live.json +++ b/web/public/locales/da/views/live.json @@ -8,5 +8,14 @@ "cameraAudio": { "enable": "Aktivér kameralyd", "disable": "Deaktivér kamera lyd" + }, + "lowBandwidthMode": "Lavbåndbredde-tilstand", + "ptz": { + "move": { + "clickMove": { + "label": "Klik i billedrammen for at centrere kameraet", + "enable": "Aktivér klik for at flytte" + } + } } } diff --git a/web/public/locales/da/views/recording.json b/web/public/locales/da/views/recording.json index a78f4c793..4028727ac 100644 --- a/web/public/locales/da/views/recording.json +++ b/web/public/locales/da/views/recording.json @@ -5,7 +5,8 @@ "filters": "Filtere", "toast": { "error": { - "endTimeMustAfterStartTime": "Sluttidspunkt skal være efter starttidspunkt" + "endTimeMustAfterStartTime": "Sluttidspunkt skal være efter starttidspunkt", + "noValidTimeSelected": "Intet gyldigt tidsinterval valgt" } } } diff --git a/web/public/locales/da/views/search.json b/web/public/locales/da/views/search.json index 5aea579ee..1cdc1460b 100644 --- a/web/public/locales/da/views/search.json +++ b/web/public/locales/da/views/search.json @@ -6,6 +6,7 @@ "save": "Gem søgning", "delete": "Slet gemt søgning", "filterInformation": "Filter information", - "filterActive": "Filtre aktiv" + "filterActive": "Filtre aktiv", + "clear": "Ryd søgning" } } diff --git a/web/public/locales/da/views/settings.json b/web/public/locales/da/views/settings.json index 4563a1a76..61fce336f 100644 --- a/web/public/locales/da/views/settings.json +++ b/web/public/locales/da/views/settings.json @@ -3,6 +3,12 @@ "default": "Indstillinger - Frigate", "authentication": "Bruger Indstillinger - Frigate", "camera": "Kamera indstillinger - Frigate", - "object": "Debug - Frigate" + "object": "Debug - Frigate", + "cameraManagement": "Administrér kameraer - Frigate", + "cameraReview": "Indstillinger for kameragennemgang - Frigate", + "enrichments": "Indstillinger for berigelser - Frigate", + "masksAndZones": "Maske- og zoneeditor - Frigate", + "motionTuner": "Bevægelsesjustering - Frigate", + "general": "Brugergrænsefladeindstillinger - Frigate" } } diff --git a/web/public/locales/da/views/system.json b/web/public/locales/da/views/system.json index 4fe2ea265..31d7ac946 100644 --- a/web/public/locales/da/views/system.json +++ b/web/public/locales/da/views/system.json @@ -6,7 +6,98 @@ "frigate": "Frigate Logs - Frigate", "go2rtc": "Go2RTC Logs - Frigate", "nginx": "Nginx Logs - Frigate" + }, + "general": "Generelle statistikker - Frigate", + "enrichments": "Beredningsstatistikker - Frigate" + }, + "title": "System", + "logs": { + "copy": { + "label": "Kopier til udklipsholder", + "success": "Logs er kopieret til udklipsholder", + "error": "Kunne ikke kopiere logs til udklipsholder" + }, + "type": { + "label": "Type", + "timestamp": "Tidsstempel", + "message": "Besked", + "tag": "Tag" + }, + "tips": "Logs bliver streamet fra serveren", + "toast": { + "error": { + "fetchingLogsFailed": "Fejl ved indhentning af logs: {{errorMessage}}", + "whileStreamingLogs": "Fejl ved streaming af logs: {{errorMessage}}" + } + }, + "download": { + "label": "Download logs" } }, - "title": "System" + "general": { + "title": "Generelt", + "hardwareInfo": { + "gpuUsage": "GPU forbrug", + "gpuMemory": "GPU hukommelse", + "gpuEncoder": "GPU indkoder", + "gpuDecoder": "GPU afkoder", + "title": "Hardware information", + "gpuInfo": { + "closeInfo": { + "label": "Luk GPU information" + }, + "copyInfo": { + "label": "Kopier GPU information" + }, + "toast": { + "success": "Kopierede GPU information til udklipsholder" + } + }, + "npuUsage": "NPU forbrug", + "npuMemory": "NPU hukommelse" + }, + "detector": { + "title": "Detektorer", + "inferenceSpeed": "Detektorinferenshastighed", + "temperature": "Detektor temperatur", + "cpuUsage": "Detektor CPU forbrug", + "cpuUsageInformation": "CPU brugt til at forberede input- og outputdata til/fra detektionsmodeller. Denne værdi måler ikke inferensforbrug, selvom der bruges en GPU eller accelerator.", + "memoryUsage": "Detektorhummelsesforbrug" + }, + "otherProcesses": { + "title": "Andre processer", + "processCpuUsage": "Proces CPU forbrug", + "processMemoryUsage": "Proceshukommelsesforbrug" + } + }, + "metrics": "System metrikker", + "storage": { + "title": "Lagring", + "overview": "Overblik", + "recordings": { + "title": "Optagelser", + "tips": "Denne værdi repræsenterer den samlede lagerplads, der bruges af optagelserne i Frigates database. Frigate sporer ikke lagerpladsforbruget for alle filer på din disk.", + "earliestRecording": "Tidligste optagelse til rådighed:" + }, + "shm": { + "title": "SHM (delt hukommelse) tildeling", + "warning": "Den nuværende SHM størrelse af {{total}}MB er for lille. Øg den til minimum {{min_shm}}MB." + }, + "cameraStorage": { + "title": "Kamera lagring", + "camera": "Kamera", + "unusedStorageInformation": "Ubrugt lagringsinformation", + "storageUsed": "Lagring", + "percentageOfTotalUsed": "Procentandel af total", + "bandwidth": "Båndbredde", + "unused": { + "title": "Ubrugt", + "tips": "Denne værdi repræsenterer muligvis ikke nøjagtigt den ledige plads, der er tilgængelig for Frigate, hvis du har andre filer gemt på dit drev ud over Frigates optagelser. Frigate sporer ikke lagerforbrug ud over sine optagelser." + } + } + }, + "cameras": { + "title": "Kameraer", + "overview": "Overblik" + } } From 3e851c6eef3dadc526aed08653fb63987da819c5 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:03 +0100 Subject: [PATCH 07/24] Translated using Weblate (Greek) Currently translated at 100.0% (10 of 10 strings) Co-authored-by: Christos Sidiropoulos Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/el/ Translation: Frigate NVR/components-auth --- web/public/locales/el/components/auth.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/public/locales/el/components/auth.json b/web/public/locales/el/components/auth.json index 95d30f919..c978b3667 100644 --- a/web/public/locales/el/components/auth.json +++ b/web/public/locales/el/components/auth.json @@ -10,6 +10,7 @@ "loginFailed": "Αποτυχία σύνδεσης", "unknownError": "Άγνωστο σφάλμα. Ελέγξτε το αρχείο καταγραφής.", "webUnknownError": "Άγνωστο σφάλμα. Εξετάστε το αρχείο καταγραφής κονσόλας." - } + }, + "firstTimeLogin": "Προσπαθείτε να συνδεθείτε για πρώτη φορά; Τα διαπιστευτήρια είναι τυπωμένα στα logs του Frigate." } } From 2664f289b910efffe5da12a918e302d59af71fb4 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:04 +0100 Subject: [PATCH 08/24] Translated using Weblate (Russian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 68.7% (439 of 639 strings) Translated using Weblate (Russian) Currently translated at 98.5% (211 of 214 strings) Translated using Weblate (Russian) Currently translated at 95.5% (108 of 113 strings) Translated using Weblate (Russian) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Russian) Currently translated at 100.0% (209 of 209 strings) Translated using Weblate (Russian) Currently translated at 100.0% (501 of 501 strings) Translated using Weblate (Russian) Currently translated at 100.0% (108 of 108 strings) Translated using Weblate (Russian) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Russian) Currently translated at 100.0% (106 of 106 strings) Translated using Weblate (Russian) Currently translated at 78.0% (467 of 598 strings) Translated using Weblate (Russian) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Russian) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Russian) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Russian) Currently translated at 73.9% (442 of 598 strings) Translated using Weblate (Russian) Currently translated at 95.5% (86 of 90 strings) Translated using Weblate (Russian) Currently translated at 98.0% (51 of 52 strings) Translated using Weblate (Russian) Currently translated at 71.6% (91 of 127 strings) Translated using Weblate (Russian) Currently translated at 86.4% (433 of 501 strings) Co-authored-by: Hosted Weblate Co-authored-by: Артём Владимиров Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ru/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ru/ Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings --- web/public/locales/ru/audio.json | 78 +++++++++- web/public/locales/ru/common.json | 22 ++- web/public/locales/ru/components/dialog.json | 8 +- .../locales/ru/views/classificationModel.json | 145 +++++++++++++++++- web/public/locales/ru/views/events.json | 6 +- web/public/locales/ru/views/explore.json | 70 ++++++++- web/public/locales/ru/views/faceLibrary.json | 8 +- web/public/locales/ru/views/live.json | 11 +- web/public/locales/ru/views/settings.json | 69 ++++++++- 9 files changed, 390 insertions(+), 27 deletions(-) diff --git a/web/public/locales/ru/audio.json b/web/public/locales/ru/audio.json index 9f5e58530..e9e6bfc21 100644 --- a/web/public/locales/ru/audio.json +++ b/web/public/locales/ru/audio.json @@ -315,7 +315,7 @@ "slam": "Хлопок", "knock": "Стук", "tap": "Небольшой стук", - "squeak": "Скрип", + "squeak": "Писк", "cupboard_open_or_close": "Открытие или закрытие шкафа", "drawer_open_or_close": "Открытие или закрытие ящика", "dishes": "Тарелки", @@ -425,5 +425,79 @@ "pink_noise": "Розовый шум", "hammer": "Молоток", "firecracker": "Петарда", - "television": "Телевидение" + "television": "Телевидение", + "echo": "Эхо", + "noise": "Шум", + "mains_hum": "Гул сети", + "cacophony": "Какофония", + "throbbing": "Пульсирующий", + "vibration": "Вибрация", + "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": "Реверберация", + "distortion": "Искажение", + "sidetone": "Боковой тон" } diff --git a/web/public/locales/ru/common.json b/web/public/locales/ru/common.json index 8b15aed2a..341cad236 100644 --- a/web/public/locales/ru/common.json +++ b/web/public/locales/ru/common.json @@ -87,7 +87,8 @@ "formattedTimestampMonthDayYear": { "12hour": "d MMM, yyyy", "24hour": "d MMM, yyyy" - } + }, + "inProgress": "В процессе" }, "selectItem": "Выбрать {{item}}", "button": { @@ -128,7 +129,12 @@ "next": "Следующий" }, "label": { - "back": "Вернуться" + "back": "Вернуться", + "hide": "Скрыть {{item}}", + "show": "Показать {{item}}", + "ID": "ID", + "all": "Все", + "none": "Ничего" }, "unit": { "speed": { @@ -248,7 +254,8 @@ "logout": "Выход", "setPassword": "Установить пароль" }, - "appearance": "Внешний вид" + "appearance": "Внешний вид", + "classification": "Распознование" }, "pagination": { "label": "пагинация", @@ -291,5 +298,14 @@ "readTheDocumentation": "Читать документацию", "information": { "pixels": "{{area}}px" + }, + "list": { + "two": "{{0}} и {{1}}", + "many": "{{items}}, и {{last}}", + "separatorWithSpace": ", " + }, + "field": { + "optional": "Необязательный", + "internalID": "Внутренний идентификатор Frigate, используемый в конфигурации и базе данных" } } diff --git a/web/public/locales/ru/components/dialog.json b/web/public/locales/ru/components/dialog.json index 748d079db..a1dc88e86 100644 --- a/web/public/locales/ru/components/dialog.json +++ b/web/public/locales/ru/components/dialog.json @@ -65,7 +65,7 @@ "export": "Экспорт", "selectOrExport": "Выбрать или экспортировать", "toast": { - "success": "Экспорт успешно запущен. Файл доступен в папке /exports.", + "success": "Экспорт успешно запущен. Файл доступен на странице экспорта.", "error": { "failed": "Не удалось запустить экспорт: {{error}}", "noVaildTimeSelected": "Не выбран допустимый временной диапазон", @@ -120,7 +120,8 @@ "button": { "export": "Экспорт", "markAsReviewed": "Пометить как просмотренное", - "deleteNow": "Удалить сейчас" + "deleteNow": "Удалить сейчас", + "markAsUnreviewed": "Отметить как непросмотренное" } }, "imagePicker": { @@ -128,6 +129,7 @@ "placeholder": "Искать по метке..." }, "selectImage": "Выбор миниатюры отслеживаемого объекта", - "noImages": "Не обнаружено миниатюр для этой камеры" + "noImages": "Не обнаружено миниатюр для этой камеры", + "unknownLabel": "Сохраненное изображение триггера" } } diff --git a/web/public/locales/ru/views/classificationModel.json b/web/public/locales/ru/views/classificationModel.json index cabb7793e..1017128fe 100644 --- a/web/public/locales/ru/views/classificationModel.json +++ b/web/public/locales/ru/views/classificationModel.json @@ -15,26 +15,159 @@ }, "toast": { "success": { - "deletedCategory": "Удаленный класс", - "deletedImage": "Удалённые изображения", + "deletedCategory": "Класс удалён", + "deletedImage": "Изображения удалены", "deletedModel_one": "Успешно удалена {{count}} модель", "deletedModel_few": "Успешно удалены {{count}} модели", "deletedModel_many": "Успешно удалены {{count}} моделей", "categorizedImage": "Изображение успешно классифицировано", - "trainedModel": "Успешно обученная модель.", - "trainingModel": "Успешно начато обучение моделей.", - "updatedModel": "Успешно обновлена конфигурация модели" + "trainedModel": "Модель успешно обучена.", + "trainingModel": "Обучение модели успешно запущено.", + "updatedModel": "Конфигурация модели успешно обновлена", + "renamedCategory": "Класс успешно переименован в {{name}}" }, "error": { "deleteImageFailed": "Не удалось удалить: {{errorMessage}}", "deleteCategoryFailed": "Не удалось удалить класс: {{errorMessage}}", "deleteModelFailed": "Не удалось удалить модель: {{errorMessage}}", "categorizeFailed": "Не удалось классифицировать изображение: {{errorMessage}}", - "trainingFailed": "Не удалось начать обучение модели: {{errorMessage}}" + "trainingFailed": "Не удалось начать обучение модели: {{errorMessage}}", + "updateModelFailed": "Не удалось обновить модель: {{errorMessage}}", + "renameCategoryFailed": "Не удалось переименовать класс: {{errorMessage}}", + "trainingFailedToStart": "Не удалось начать обучение модели: {{errorMessage}}" } }, "deleteCategory": { "title": "Удалить класс", "desc": "Вы уверены, что хотите удалить класс {{name}}? Это приведёт к безвозвратному удалению всех связанных с ним изображений и потребует повторного обучения модели." + }, + "deleteModel": { + "title": "Удалить модель классификации", + "single": "Вы уверены, что хотите удалить {{name}}? Это приведёт к безвозвратному удалению всех связанных данных, включая изображения и данные обучения. Это действие нельзя отменить.", + "desc_one": "Вы уверены, что хотите удалить {{count}} модель? Это приведёт к безвозвратному удалению всех связанных данных, включая изображения и данные обучения. Это действие нельзя отменить.", + "desc_few": "Вы уверены, что хотите удалить {{count}} модели? Это приведёт к безвозвратному удалению всех связанных данных, включая изображения и данные обучения. Это действие нельзя отменить.", + "desc_many": "Вы уверены, что хотите удалить {{count}} моделей? Это приведёт к безвозвратному удалению всех связанных данных, включая изображения и данные обучения. Это действие нельзя отменить." + }, + "edit": { + "title": "Редактировать модель классификации", + "descriptionState": "Редактировать классы для этой модели классификации состояний. Изменения потребуют повторного обучения модели.", + "descriptionObject": "Редактировать тип объекта и тип классификации для этой модели классификации объектов.", + "stateClassesInfo": "Примечание: изменение классов состояний требует повторного обучения модели с обновлёнными классами." + }, + "deleteDatasetImages": { + "title": "Удалить изображения набора данных", + "desc_one": "Вы уверены, что хотите удалить {{count}} изображение из {{dataset}}? Это действие нельзя отменить и потребует повторного обучения модели.", + "desc_few": "Вы уверены, что хотите удалить {{count}} изображения из {{dataset}}? Это действие нельзя отменить и потребует повторного обучения модели.", + "desc_many": "Вы уверены, что хотите удалить {{count}} изображений из {{dataset}}? Это действие нельзя отменить и потребует повторного обучения модели." + }, + "deleteTrainImages": { + "title": "Удалить обучающие изображения", + "desc_one": "Вы уверены, что хотите удалить {{count}} изображение? Это действие нельзя отменить.", + "desc_few": "Вы уверены, что хотите удалить {{count}} изображения? Это действие нельзя отменить.", + "desc_many": "Вы уверены, что хотите удалить {{count}} изображений? Это действие нельзя отменить." + }, + "renameCategory": { + "title": "Переименовать класс", + "desc": "Введите новое имя для {{name}}. Вам потребуется повторно обучить модель, чтобы изменение имени вступило в силу." + }, + "description": { + "invalidName": "Недопустимое имя. Имена могут содержать только буквы, цифры, пробелы, апострофы, подчёркивания и дефисы." + }, + "train": { + "title": "Недавние классификации", + "titleShort": "Недавние", + "aria": "Выбрать недавние классификации" + }, + "categories": "Классы", + "createCategory": { + "new": "Создать новый класс" + }, + "categorizeImageAs": "Классифицировать изображение как:", + "categorizeImage": "Классифицировать изображение", + "menu": { + "objects": "Объекты", + "states": "Состояния" + }, + "noModels": { + "object": { + "title": "Нет моделей классификации объектов", + "description": "Создайте пользовательскую модель для классификации обнаруженных объектов.", + "buttonText": "Создать модель объекта" + }, + "state": { + "title": "Нет моделей классификации состояний", + "description": "Создайте пользовательскую модель для мониторинга и классификации изменений состояний в определённых областях камеры.", + "buttonText": "Создать модель состояния" + } + }, + "wizard": { + "title": "Создать новую классификацию", + "steps": { + "nameAndDefine": "Имя и определение", + "stateArea": "Область состояния", + "chooseExamples": "Выбрать примеры" + }, + "step1": { + "description": "Модели состояний отслеживают фиксированные области камеры на предмет изменений (например, дверь открыта/закрыта). Модели объектов добавляют классификации к обнаруженным объектам (например, известные животные, курьеры и т.д.).", + "name": "Имя", + "namePlaceholder": "Введите имя модели…", + "type": "Тип", + "typeState": "Состояние", + "typeObject": "Объект", + "objectLabel": "Метка объекта", + "objectLabelPlaceholder": "Выберите тип объекта…", + "classificationType": "Тип классификации", + "classificationTypeTip": "Узнать о типах классификации", + "classificationTypeDesc": "Подметки добавляют дополнительный текст к метке объекта (например, 'Человек: UPS'). Атрибуты — это доступные для поиска метаданные, хранящиеся отдельно в метаданных объекта.", + "classificationSubLabel": "Подметка", + "classificationAttribute": "Атрибут", + "classes": "Классы", + "states": "Состояния", + "classesTip": "Узнать о классах", + "classesStateDesc": "Определите различные состояния, в которых может находиться область вашей камеры. Например: 'открыто' и 'закрыто' для гаражных ворот.", + "classesObjectDesc": "Определите различные категории для классификации обнаруженных объектов. Например: 'курьер', 'житель', 'незнакомец' для классификации людей.", + "classPlaceholder": "Введите имя класса…", + "errors": { + "nameRequired": "Имя модели обязательно", + "nameLength": "Имя модели должно содержать не более 64 символов", + "nameOnlyNumbers": "Имя модели не может состоять только из цифр", + "classRequired": "Требуется хотя бы 1 класс", + "classesUnique": "Имена классов должны быть уникальными", + "stateRequiresTwoClasses": "Модели состояний требуют не менее 2 классов", + "objectLabelRequired": "Пожалуйста, выберите метку объекта", + "objectTypeRequired": "Пожалуйста, выберите тип классификации" + } + }, + "step2": { + "description": "Выберите камеры и определите область для мониторинга для каждой камеры. Модель будет классифицировать состояние этих областей.", + "cameras": "Камеры", + "selectCamera": "Выбрать камеру", + "noCameras": "Нажмите +, чтобы добавить камеры", + "selectCameraPrompt": "Выберите камеру из списка, чтобы определить область её мониторинга" + }, + "step3": { + "selectImagesPrompt": "Выберите все изображения с {{className}}", + "selectImagesDescription": "Нажмите на изображения, чтобы выбрать их. Нажмите Продолжить, когда закончите с этим классом.", + "generating": { + "title": "Генерация примеров изображений", + "description": "Frigate извлекает репрезентативные изображения из ваших записей. Это может занять некоторое время…" + }, + "training": { + "title": "Обучение модели", + "description": "Ваша модель обучается в фоновом режиме. Закройте это диалоговое окно, и ваша модель начнёт работать, как только обучение будет завершено." + }, + "retryGenerate": "Повторить генерацию", + "noImages": "Примеры изображений не сгенерированы", + "classifying": "Классификация и обучение…", + "trainingStarted": "Обучение успешно запущено", + "errors": { + "noCameras": "Камеры не настроены", + "noObjectLabel": "Метка объекта не выбрана", + "generateFailed": "Не удалось сгенерировать примеры: {{error}}", + "generationFailed": "Генерация не удалась. Пожалуйста, попробуйте снова.", + "classifyFailed": "Не удалось классифицировать изображения: {{error}}" + }, + "generateSuccess": "Примеры изображений успешно сгенерированы" + } } } diff --git a/web/public/locales/ru/views/events.json b/web/public/locales/ru/views/events.json index 85f8bed39..c54e54262 100644 --- a/web/public/locales/ru/views/events.json +++ b/web/public/locales/ru/views/events.json @@ -45,7 +45,11 @@ "trackedObject_other": "объекты", "noObjectDetailData": "Данные о деталях объекта недоступны.", "label": "Деталь", - "settings": "Настройки подробного просмотра" + "settings": "Настройки подробного просмотра", + "alwaysExpandActive": { + "title": "Всегда раскрывать активный", + "desc": "Всегда раскрывать сведения об объекте активного элемента обзора, если они доступны." + } }, "objectTrack": { "trackedPoint": "Отслеживаемая точка", diff --git a/web/public/locales/ru/views/explore.json b/web/public/locales/ru/views/explore.json index 778ffd7d1..18c211a95 100644 --- a/web/public/locales/ru/views/explore.json +++ b/web/public/locales/ru/views/explore.json @@ -102,7 +102,7 @@ "label": "Оценка снимка" }, "score": { - "label": "Балл" + "label": "Оценка" } }, "trackedObjectDetails": "Детали объекта", @@ -197,16 +197,26 @@ "audioTranscription": { "label": "Транскрибировать", "aria": "Запросить аудиотранскрипцию" + }, + "viewTrackingDetails": { + "label": "Просмотреть детали отслеживания", + "aria": "Показать детали отслеживания" + }, + "showObjectDetails": { + "label": "Показать путь объекта" + }, + "hideObjectDetails": { + "label": "Скрыть путь объекта" } }, "dialog": { "confirmDelete": { "title": "Подтвердить удаление", - "desc": "Удаление этого отслеживаемого объекта приведёт к удалению его снимка, всех сохранённых эмбеддингов и записей жизненного цикла. Сами записи в разделе История НЕ будут удалены.

    Вы уверены, что хотите продолжить?" + "desc": "Удаление этого отслеживаемого объекта приведёт к удалению снимка, всех сохранённых эмбеддингов и всех связанных записей деталей отслеживания. Записанное видео этого отслеживаемого объекта в представлении Истории НЕ будет удалено.

    Вы уверены, что хотите продолжить?" } }, - "noTrackedObjects": "Не найдено отслеживаемых объектов", - "fetchingTrackedObjectsFailed": "При получении списка отслеживаемых объектов произошла ошибка: {{errorMessage}}", + "noTrackedObjects": "Отслеживаемые объекты не найдены", + "fetchingTrackedObjectsFailed": "Ошибка при получении отслеживаемых объектов: {{errorMessage}}", "trackedObjectsCount_one": "{{count}} отслеживаемый объект ", "trackedObjectsCount_few": "{{count}} отслеживаемых объекта ", "trackedObjectsCount_many": "{{count}} отслеживаемых объектов ", @@ -217,7 +227,9 @@ "error": "Не удалось удалить отслеживаемый объект: {{errorMessage}}" } }, - "tooltip": "Соответствие с {{type}} на {{confidence}}%" + "tooltip": "Соответствие с {{type}} на {{confidence}}%", + "previousTrackedObject": "Предыдущий отслеживаемый объект", + "nextTrackedObject": "Следующий отслеживаемый объект" }, "exploreMore": "Просмотреть больше объектов {{label}}", "aiAnalysis": { @@ -225,5 +237,53 @@ }, "concerns": { "label": "Требуют внимания" + }, + "trackingDetails": { + "count": "{{first}} из {{second}}", + "title": "Детали отслеживания", + "noImageFound": "Для этой метки времени изображение не найдено.", + "createObjectMask": "Создать маску объекта", + "adjustAnnotationSettings": "Изменить настройки аннотаций", + "scrollViewTips": "Нажмите, чтобы просмотреть ключевые моменты жизненного цикла этого объекта.", + "autoTrackingTips": "Позиции ограничивающих рамок будут неточными для камер с автотрекингом.", + "trackedPoint": "Отслеживаемая точка", + "lifecycleItemDesc": { + "visible": "Обнаружен(а) {{label}}", + "entered_zone": "{{label}} зафиксирован(а) в {{zones}}", + "active": "{{label}} активировался(ась)", + "stationary": "{{label}} перестал(а) двигаться", + "attribute": { + "faceOrLicense_plate": "{{attribute}} обнаружен для {{label}}", + "other": "{{label}} распознан(а) как {{attribute}}" + }, + "gone": "{{label}} покинул(а) зону", + "heard": "Обнаружен звук {{label}}", + "external": "Обнаружен(а) {{label}}", + "header": { + "zones": "Зоны", + "ratio": "Соотношение", + "area": "Область" + } + }, + "annotationSettings": { + "title": "Настройки аннотаций", + "showAllZones": { + "title": "Показать все зоны", + "desc": "Всегда показывать зоны на кадрах, где объекты вошли в зону." + }, + "offset": { + "label": "Сдвиг аннотаций", + "desc": "Эти данные поступают из потока детекции вашей камеры, но накладываются на изображения из потока записи. Потоки вряд ли идеально синхронизированы, поэтому ограничивающая рамка и видео могут не совпадать. Вы можете использовать эту настройку для смещения аннотаций вперед или назад во времени, чтобы лучше выровнять их с записанным видео.", + "millisecondsToOffset": "Смещение аннотаций детекции в миллисекундах. По умолчанию: 0", + "tips": "Уменьшите значение, если воспроизведение видео опережает рамки и точки пути, и увеличьте значение, если воспроизведение видео отстаёт от них. Это значение может быть отрицательным.", + "toast": { + "success": "Смещение аннотаций для {{camera}} сохранено в конфигурационном файле. Перезапустите Frigate, чтобы применить изменения." + } + } + }, + "carousel": { + "previous": "Предыдущий слайд", + "next": "Следующий слайд" + } } } diff --git a/web/public/locales/ru/views/faceLibrary.json b/web/public/locales/ru/views/faceLibrary.json index 3dcfd7cd5..ee8d702fb 100644 --- a/web/public/locales/ru/views/faceLibrary.json +++ b/web/public/locales/ru/views/faceLibrary.json @@ -13,11 +13,11 @@ "description": { "placeholder": "Введите название коллекции", "addFace": "Добавьте новую коллекцию в библиотеку лиц, загрузив свое первое изображение.", - "invalidName": "Недопустимое имя. Имена могут содержать только буквы, цифры, пробелы, апострофы, подчеркивания и дефисы." + "invalidName": "Недопустимое имя. Имена могут содержать только буквы, цифры, пробелы, апострофы, подчёркивания и дефисы." }, "createFaceLibrary": { "desc": "Создание новой коллекции", - "nextSteps": "Для создания надежной базы:
  • Используйте вкладку Обучение, чтобы выбрать изображения и обучить систему для каждого обнаруженного человека.
  • Используйте фронтальные изображения для лучшего результата; избегайте изображений с лицами, снятыми под углом.
  • ", + "nextSteps": "Для создания надежной базы:
  • Используйте вкладку \"Недавние распознавания\", чтобы выбрать изображения каждого обнаруженного человека и обучить систему
  • Используйте фронтальные изображения для лучшего результата; избегайте изображений с лицами, снятыми под углом.
  • ", "title": "Создать коллекцию", "new": "Создать новое лицо" }, @@ -43,7 +43,7 @@ "uploadedImage": "Изображение успешно загружено.", "trainedFace": "Лицо успешно запомнено.", "addFaceLibrary": "{{name}} успешно добавлен(а) в Библиотеку лиц!", - "updatedFaceScore": "Оценка лица успешно обновлена.", + "updatedFaceScore": "Оценка лица успешно обновлена для {{name}} {{score}}.", "renamedFace": "Лицо успешно переименовано в {{name}}" }, "error": { @@ -62,7 +62,7 @@ }, "imageEntry": { "dropActive": "Перетащите изображение сюда…", - "dropInstructions": "Перетащите изображение сюда или нажмите для выбора", + "dropInstructions": "Перетащите или вставьте изображение сюда или щелкните, чтобы выбрать", "maxSize": "Макс. размер: {{size}}Мб", "validation": { "selectImage": "Пожалуйста, выберите файл изображения." diff --git a/web/public/locales/ru/views/live.json b/web/public/locales/ru/views/live.json index 950a9b946..8a189bf76 100644 --- a/web/public/locales/ru/views/live.json +++ b/web/public/locales/ru/views/live.json @@ -86,7 +86,7 @@ "disable": "Скрыть статистику потока" }, "manualRecording": { - "title": "Запись по требованию", + "title": "По требованию", "tips": "Создать ручное событие на основе настроек хранения записей этой камеры.", "playInBackground": { "label": "Воспроизведение в фоне", @@ -170,5 +170,14 @@ "transcription": { "enable": "Включить транскрипцию звука в реальном времени", "disable": "Выключить транскрипцию звука" + }, + "snapshot": { + "noVideoSource": "Нет видеоисточника для снимка", + "captureFailed": "Не удалось сделать снимок." + }, + "noCameras": { + "title": "Камеры не настроены", + "description": "Начните с подключения камеры к Frigate.", + "buttonText": "Добавить камеру" } } diff --git a/web/public/locales/ru/views/settings.json b/web/public/locales/ru/views/settings.json index 73a302ccd..4f45db1bb 100644 --- a/web/public/locales/ru/views/settings.json +++ b/web/public/locales/ru/views/settings.json @@ -4,7 +4,7 @@ "camera": "Настройки камеры - Frigate", "masksAndZones": "Маски и Зоны - Frigate", "motionTuner": "Детекции движения - Frigate", - "general": "Общие настройки - Frigate", + "general": "Настройки интерфейса - Frigate", "frigatePlus": "Настройки Frigate+ - Frigate", "authentication": "Настройки аутентификации - Frigate", "classification": "Настройки распознавания - Frigate", @@ -41,7 +41,7 @@ "noCamera": "Нет камеры" }, "general": { - "title": "Общие настройки", + "title": "Настройки интерфейса", "liveDashboard": { "title": "Панель мониторинга", "automaticLiveView": { @@ -51,6 +51,9 @@ "playAlertVideos": { "label": "Воспроизводить видео с тревогами", "desc": "По умолчанию последние тревоги на панели мониторинга воспроизводятся как короткие зацикленные видео. Отключите эту опцию, чтобы показывать только статичное изображение последних оповещений на этом устройстве/браузере." + }, + "displayCameraNames": { + "label": "Всегда показывать названия камер" } }, "calendar": { @@ -903,6 +906,10 @@ }, "docs": { "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras" + }, + "testing": { + "probingMetadata": "Проверка метаданных камеры…", + "fetchingSnapshot": "Получение снимка с камеры…" } }, "step2": { @@ -928,5 +935,63 @@ "testSuccess": "Тест потока выполнен успешно!", "testFailed": "Тест потока не пройден" } + }, + "roles": { + "addRole": "Добавить роль", + "table": { + "role": "Роль", + "cameras": "Камеры", + "actions": "Действия", + "editCameras": "Редактировать камеры", + "deleteRole": "Удалить роль", + "noRoles": "Пользовательских ролей не найдено." + }, + "toast": { + "success": { + "createRole": "Роль {{role}} успешно создана", + "updateCameras": "Камеры обновлены для роли {{role}}", + "deleteRole": "Роль {{role}} успешно удалена", + "userRolesUpdated_one": "{{count}} пользователь, назначенный на эту роль, был обновлён до роли 'наблюдатель', которая имеет доступ ко всем камерам.", + "userRolesUpdated_few": "{{count}} пользователя, назначенных на эту роль, были обновлены до роли 'наблюдатель', которая имеет доступ ко всем камерам.", + "userRolesUpdated_many": "{{count}} пользователей, назначенных на эту роль, были обновлены до роли 'наблюдатель', которая имеет доступ ко всем камерам." + }, + "error": { + "createRoleFailed": "Не удалось создать роль: {{errorMessage}}", + "updateCamerasFailed": "Не удалось обновить камеры: {{errorMessage}}", + "deleteRoleFailed": "Не удалось удалить роль: {{errorMessage}}", + "userUpdateFailed": "Не удалось обновить роли пользователей: {{errorMessage}}" + } + }, + "dialog": { + "createRole": { + "title": "Создать новую роль", + "desc": "Добавьте новую роль и укажите права доступа к камерам." + }, + "editCameras": { + "title": "Редактировать камеры роли", + "desc": "Обновите доступ к камерам для роли {{role}}." + }, + "deleteRole": { + "title": "Удалить роль", + "desc": "Это действие нельзя отменить. Это действие навсегда удалит роль и назначит всех пользователей с этой ролью на роль 'наблюдатель', что даст наблюдателю доступ ко всем камерам.", + "warn": "Вы уверены, что хотите удалить {{role}}?", + "deleting": "Удаление…" + }, + "form": { + "role": { + "title": "Название роли", + "placeholder": "Введите название роли", + "desc": "Разрешены только буквы, цифры, точки и подчёркивания.", + "roleIsRequired": "Требуется название роли", + "roleOnlyInclude": "Название роли может содержать только буквы, цифры, . или _", + "roleExists": "Роль с таким названием уже существует." + }, + "cameras": { + "title": "Камеры", + "desc": "Выберите камеры, к которым эта роль имеет доступ. Необходимо выбрать хотя бы одну камеру.", + "required": "Необходимо выбрать хотя бы одну камеру." + } + } + } } } From edaa23c1b0ada88324875dcded37ed0fee30c176 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:05 +0100 Subject: [PATCH 09/24] Translated using Weblate (Romanian) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (125 of 125 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (108 of 108 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (106 of 106 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (598 of 598 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (209 of 209 strings) Translated using Weblate (Romanian) Currently translated at 97.1% (103 of 106 strings) Co-authored-by: Hosted Weblate Co-authored-by: lukasig Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ro/ Translation: Frigate NVR/common Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/ro/common.json | 15 +- .../locales/ro/views/classificationModel.json | 36 +++- web/public/locales/ro/views/events.json | 4 +- web/public/locales/ro/views/explore.json | 11 +- web/public/locales/ro/views/faceLibrary.json | 2 +- web/public/locales/ro/views/live.json | 6 +- web/public/locales/ro/views/settings.json | 154 ++++++++++++++++-- web/public/locales/ro/views/system.json | 24 ++- 8 files changed, 214 insertions(+), 38 deletions(-) diff --git a/web/public/locales/ro/common.json b/web/public/locales/ro/common.json index d232a8047..3707fc392 100644 --- a/web/public/locales/ro/common.json +++ b/web/public/locales/ro/common.json @@ -78,7 +78,10 @@ "minute_other": "{{time}} de minute", "second_one": "{{time}} secundă", "second_few": "{{time}} secunde", - "second_other": "{{time}} de secunde" + "second_other": "{{time}} de secunde", + "inProgress": "În desfășurare", + "invalidStartTime": "Oră de început invalidă", + "invalidEndTime": "Oră de sfârșit invalidă" }, "menu": { "documentation": { @@ -179,7 +182,8 @@ }, "withSystem": "Modul sistemului", "restart": "Repornește Frigate", - "review": "Revizuire" + "review": "Revizuire", + "classification": "Clasificare" }, "button": { "cameraAudio": "Sunet cameră", @@ -216,7 +220,8 @@ "unselect": "Deselectează", "export": "Exportă", "deleteNow": "Șterge acum", - "next": "Următorul" + "next": "Următorul", + "continue": "Continuă" }, "unit": { "speed": { @@ -240,7 +245,9 @@ "back": "Mergi înapoi", "hide": "Ascunde {{item}}", "show": "Afișează {{item}}", - "ID": "ID" + "ID": "ID", + "none": "Niciuna", + "all": "Toate" }, "selectItem": "Selectează {{item}}", "pagination": { diff --git a/web/public/locales/ro/views/classificationModel.json b/web/public/locales/ro/views/classificationModel.json index 1e48893ba..72b063107 100644 --- a/web/public/locales/ro/views/classificationModel.json +++ b/web/public/locales/ro/views/classificationModel.json @@ -20,28 +20,37 @@ "deletedModel_one": "{{count}} model șters cu succes", "deletedModel_few": "{{count}} modele șterse cu succes", "deletedModel_other": "{{count}} modele șterse cu succes", - "updatedModel": "Configurația modelului a fost actualizată cu succes" + "updatedModel": "Configurația modelului a fost actualizată cu succes", + "renamedCategory": "Clasa a fost redenumită cu succes în {{name}}" }, "error": { "deleteImageFailed": "Ștergerea a eșuat: {{errorMessage}}", "deleteCategoryFailed": "Ștergerea clasei a eșuat: {{errorMessage}}", "categorizeFailed": "Categorisirea imaginii a eșuat: {{errorMessage}}", - "trainingFailed": "Pornirea antrenamentului modelului a eșuat: {{errorMessage}}", + "trainingFailed": "Antrenarea modelului a eșuat. Verifică jurnalele Frigate pentru detalii.", "deleteModelFailed": "Ștergerea modelului a eșuat: {{errorMessage}}", - "updateModelFailed": "Actualizarea modelului a eșuat: {{errorMessage}}" + "updateModelFailed": "Actualizarea modelului a eșuat: {{errorMessage}}", + "renameCategoryFailed": "Redenumirea clasei a eșuat: {{errorMessage}}", + "trainingFailedToStart": "Nu s-a putut porni antrenarea modelului: {{errorMessage}}" } }, "deleteCategory": { "title": "Șterge clasa", - "desc": "Sigur doriți să ștergeți clasa {{name}}? Aceasta va șterge permanent toate imaginile asociate și va necesita reantrenarea modelului." + "desc": "Sigur doriți să ștergeți clasa {{name}}? Aceasta va șterge permanent toate imaginile asociate și va necesita reantrenarea modelului.", + "minClassesTitle": "Nu se poate șterge clasa", + "minClassesDesc": "Un model de clasificare trebuie să aibă cel puțin 2 clase. Adaugă o altă clasă înainte de a o șterge pe aceasta." }, "deleteDatasetImages": { "title": "Șterge imaginile setului de date", - "desc": "Sigur doriți să ștergeți {{count}} imagini din {{dataset}}? Această acțiune nu poate fi anulată și va necesita reantrenarea modelului." + "desc_one": "Sigur doriți să ștergeți {{count}} imagine din {{dataset}}? Această acțiune nu poate fi anulată și va necesita reantrenarea modelului.", + "desc_few": "Sigur doriți să ștergeți {{count}} imagini din {{dataset}}? Această acțiune nu poate fi anulată și va necesita reantrenarea modelului.", + "desc_other": "Sigur doriți să ștergeți {{count}} de imagini din {{dataset}}? Această acțiune nu poate fi anulată și va necesita reantrenarea modelului." }, "deleteTrainImages": { "title": "Șterge imaginile de antrenament", - "desc": "Sigur doriți să ștergeți {{count}} imagini? Această acțiune nu poate fi anulată." + "desc_one": "Sigur doriți să ștergeți {{count}} imagine? Această acțiune nu poate fi anulată.", + "desc_few": "Sigur doriți să ștergeți {{count}} imagini? Această acțiune nu poate fi anulată.", + "desc_other": "Sigur doriți să ștergeți {{count}} de imagini? Această acțiune nu poate fi anulată." }, "renameCategory": { "title": "Redenumește clasa", @@ -140,13 +149,18 @@ "generationFailed": "Generarea a eșuat. Vă rugăm să încercați din nou.", "classifyFailed": "Clasificarea imaginilor a eșuat: {{error}}" }, - "generateSuccess": "Imaginile de exemplu au fost generate cu succes" + "generateSuccess": "Imaginile de exemplu au fost generate cu succes", + "allImagesRequired_one": "Te rog să clasifici toate imaginile. {{count}} imagine rămasă.", + "allImagesRequired_few": "Te rog să clasifici toate imaginile. {{count}} imagini rămase.", + "allImagesRequired_other": "Te rog să clasifici toate imaginile. {{count}} de imagini rămase." } }, "deleteModel": { "title": "Șterge modelul de clasificare", "single": "Sigur doriți să ștergeți {{name}}? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată.", - "desc": "Sigur doriți să ștergeți {{count}} model(e)? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată." + "desc_one": "Sigur doriți să ștergeți {{count}} model? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată.", + "desc_few": "Sigur doriți să ștergeți {{count}} modele? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată.", + "desc_other": "Sigur doriți să ștergeți {{count}} de modele? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată." }, "menu": { "objects": "Obiecte", @@ -160,5 +174,11 @@ "descriptionState": "Editează clasele pentru acest model de clasificare a stării. Modificările vor necesita reantrenarea modelului.", "descriptionObject": "Editează tipul de obiect și tipul de clasificare pentru acest model de clasificare a obiectelor.", "stateClassesInfo": "Notă: Modificarea claselor de stare necesită reantrenarea modelului cu clasele actualizate." + }, + "tooltip": { + "trainingInProgress": "Modelul este în curs de antrenare", + "noNewImages": "Nu există imagini noi pentru antrenare. Clasifică mai întâi mai multe imagini în setul de date.", + "modelNotReady": "Modelul nu este pregătit pentru antrenare", + "noChanges": "Nicio modificare a setului de date de la ultima antrenare." } } diff --git a/web/public/locales/ro/views/events.json b/web/public/locales/ro/views/events.json index c0210ce36..651d3b249 100644 --- a/web/public/locales/ro/views/events.json +++ b/web/public/locales/ro/views/events.json @@ -40,8 +40,8 @@ "detail": { "noDataFound": "Nicio dată detaliată de revizuit", "aria": "Comută vizualizarea detaliată", - "trackedObject_one": "obiect", - "trackedObject_other": "obiecte", + "trackedObject_one": "{{count}} obiect", + "trackedObject_other": "{{count}} obiecte", "noObjectDetailData": "Nicio dată de detaliu obiect disponibilă.", "label": "Detaliu", "settings": "Setări vizualizare detaliată", diff --git a/web/public/locales/ro/views/explore.json b/web/public/locales/ro/views/explore.json index 2c9e1c072..5b3b58b73 100644 --- a/web/public/locales/ro/views/explore.json +++ b/web/public/locales/ro/views/explore.json @@ -34,7 +34,8 @@ "snapshot": "snapshot", "video": "video", "object_lifecycle": "ciclul de viață al obiectului", - "thumbnail": "miniatură" + "thumbnail": "miniatură", + "tracking_details": "detalii de urmărire" }, "objectLifecycle": { "lifecycleItemDesc": { @@ -228,7 +229,9 @@ "error": "Ștergerea obiectului urmărit a eșuat: {{errorMessage}}" } }, - "tooltip": "Potrivire {{type}} cu {{confidence}}%" + "tooltip": "Potrivire {{type}} cu {{confidence}}%", + "previousTrackedObject": "Obiectul urmărit anterior", + "nextTrackedObject": "Următorul obiect urmărit" }, "aiAnalysis": { "title": "Analiză AI" @@ -271,9 +274,9 @@ }, "offset": { "label": "Compensare adnotare", - "desc": "Aceste date provin din fluxul de detectare al camerei tale, dar sunt suprapuse pe imaginile din fluxul de înregistrare. Este puțin probabil ca cele două fluxuri să fie perfect sincronizate. Drept urmare, caseta delimitatoare și materialul video nu se vor alinia perfect. Poți folosi această setare pentru a decală adnotările înainte sau înapoi în timp, pentru a le alinia mai bine cu materialul înregistrat.", + "desc": "Aceste date provin din stream-ul de detectare al camerei tale, dar sunt suprapuse pe imaginile din stream-ul de înregistrare. Este puțin probabil ca cele două stream-uri să fie perfect sincronizate. Drept urmare, caseta delimitatoare și materialul video nu se vor alinia perfect. Poți folosi această setare pentru a decală adnotările înainte sau înapoi în timp, pentru a le alinia mai bine cu materialul înregistrat.", "millisecondsToOffset": "Millisecunde pentru a decalca adnotările de detectare. Implicit: 0", - "tips": "SFAT: Imaginează-ți că există un clip al unui eveniment cu o persoană care merge de la stânga la dreapta. Dacă caseta delimitatoare a cronologiei evenimentului este constant în stânga persoanei, atunci valoarea ar trebui să fie scăzută. În mod similar, dacă o persoană merge de la stânga la dreapta și caseta delimitatoare este constant în fața persoanei, atunci valoarea ar trebui să fie crescută.", + "tips": "Reduceți valoarea dacă redarea video este înaintea casetelor și punctelor de traseu și creșteți valoarea dacă redarea video este în urma acestora. Această valoare poate fi negativă.", "toast": { "success": "Decalajul de adnotare pentru {{camera}} a fost salvat în fișierul de configurare. Repornește Frigate pentru a aplica modificările." } diff --git a/web/public/locales/ro/views/faceLibrary.json b/web/public/locales/ro/views/faceLibrary.json index a1e03f734..16b75b264 100644 --- a/web/public/locales/ro/views/faceLibrary.json +++ b/web/public/locales/ro/views/faceLibrary.json @@ -69,7 +69,7 @@ "deletedName_other": "{{count}} de fețe au fost șterse cu succes.", "trainedFace": "Față antrenată cu succes.", "renamedFace": "Fața a fost redenumită cu succes ca {{name}}", - "updatedFaceScore": "Scorul feței a fost actualizat cu succes.", + "updatedFaceScore": "Scorul feței a fost actualizat cu succes la {{name}} ({{score}}).", "deletedFace_one": "{{count}} față a fost ștersă cu succes.", "deletedFace_few": "{{count}} fețe au fost șterse cu succes.", "deletedFace_other": "{{count}} de fețe au fost șterse cu succes.", diff --git a/web/public/locales/ro/views/live.json b/web/public/locales/ro/views/live.json index ed57d49f7..7ddaa53d8 100644 --- a/web/public/locales/ro/views/live.json +++ b/web/public/locales/ro/views/live.json @@ -180,6 +180,10 @@ "noCameras": { "title": "Nicio Cameră Configurată", "description": "Începe prin a conecta o cameră la Frigate.", - "buttonText": "Adaugă cameră" + "buttonText": "Adaugă cameră", + "restricted": { + "title": "Nicio Cameră Disponibilă", + "description": "Nu aveți permisiunea de a vizualiza camere în acest grup." + } } } diff --git a/web/public/locales/ro/views/settings.json b/web/public/locales/ro/views/settings.json index 262d50547..4c5aa5749 100644 --- a/web/public/locales/ro/views/settings.json +++ b/web/public/locales/ro/views/settings.json @@ -8,7 +8,7 @@ "notifications": "Setări notificări - Frigate", "motionTuner": "Ajustare mișcare - Frigate", "object": "Depanare - Frigate", - "general": "Setări generale - Frigate", + "general": "Setări interfață - Frigate", "frigatePlus": "Setări Frigate+ - Frigate", "enrichments": "Setări de Îmbogățiri - Frigate", "cameraManagement": "Gestionează Camerele - Frigate", @@ -40,7 +40,7 @@ "noCamera": "Nicio cameră" }, "general": { - "title": "Setări generale", + "title": "Setări interfață", "liveDashboard": { "title": "Tabloul de bord live", "automaticLiveView": { @@ -54,6 +54,10 @@ "displayCameraNames": { "label": "Afișează întotdeauna numele camerelor", "desc": "Afișează întotdeauna numele camerelor într-un indicator în tabloul de bord cu vizualizare live pe mai multe camere." + }, + "liveFallbackTimeout": { + "label": "Timp de expirare pentru redarea live", + "desc": "Când stream-ul live de înaltă calitate al unei camere nu este disponibil, revino la modul de lățime de bandă redusă după acest număr de secunde. Valoare implicită: 3." } }, "storedLayouts": { @@ -830,8 +834,8 @@ "updateCameras": "Camerele au fost actualizate pentru rolul {{role}}", "deleteRole": "Rolul {{role}} a fost șters cu succes", "userRolesUpdated_one": "{{count}} utilizator(i) atribuiți acestui rol au fost actualizați la „vizualizator”, care are acces la toate camerele.", - "userRolesUpdated_few": "", - "userRolesUpdated_other": "" + "userRolesUpdated_few": "{{count}} utilizator atribuit acestui rol a fost actualizat la „vizualizator”, care are acces la toate camerele.", + "userRolesUpdated_other": "{{count}} utilizatori atribuiți acestui rol au fost actualizați la „vizualizator”, care are acces la toate camerele." }, "error": { "createRoleFailed": "Crearea rolului a eșuat: {{errorMessage}}", @@ -878,7 +882,8 @@ "steps": { "nameAndConnection": "Nume și Conexiune", "streamConfiguration": "Configurare streaming", - "validationAndTesting": "Validare și Testare" + "validationAndTesting": "Validare și Testare", + "probeOrSnapshot": "Test sau snapshot" }, "save": { "success": "Camera nouă {{cameraName}} a fost salvată cu succes.", @@ -895,7 +900,7 @@ "testFailed": "Testul de streaming a eșuat: {{error}}" }, "step1": { - "description": "Introdu detaliile camerei și testează conexiunea.", + "description": "Introduceți detaliile camerei și alegeți să testați camera sau să selectați manual marca.", "cameraName": "Nume cameră", "cameraNamePlaceholder": "ex. usă_intrare sau Vedere Curte Spate", "host": "Gazdă/Adresă IP", @@ -935,10 +940,19 @@ "testing": { "probingMetadata": "Sondare metadate cameră...", "fetchingSnapshot": "Preluare snapshot cameră..." - } + }, + "connectionSettings": "Setări de conexiune", + "detectionMethod": "Metodă de detectare a stream-ului", + "onvifPort": "Portul ONVIF", + "probeMode": "Testează camera", + "manualMode": "Selectare manuală", + "detectionMethodDescription": "Testează camera cu ONVIF (dacă este suportat) pentru a găsi URL-urile de stream ale camerei sau selectează manual marca camerei pentru a folosi URL-uri predefinite. Pentru a introduce un URL RTSP personalizat, alege metoda manuală și selectează „Altele”.", + "onvifPortDescription": "Pentru camerele care suportă ONVIF, acesta este de obicei 80 sau 8080.", + "useDigestAuth": "Folosește autentificare digest", + "useDigestAuthDescription": "Folosește autentificare HTTP digest pentru ONVIF. Unele camere pot necesita un nume de utilizator/parolă ONVIF dedicat în locul utilizatorului standard admin." }, "step2": { - "description": "Configurează rolurile de streaming și adaugă stream-uri suplimentare pentru camera ta.", + "description": "Testează camera pentru fluxurile disponibile sau configurează setările manuale pe baza metodei de detectare selectate.", "streamsTitle": "Stream-uri cameră", "addStream": "Adaugă stream", "addAnotherStream": "Adaugă un alt stream", @@ -957,8 +971,8 @@ "audio": "Audio" }, "testStream": "Testează conexiunea", - "testSuccess": "Testul de streaming a reușit!", - "testFailed": "Testul de streaming a eșuat", + "testSuccess": "Testul de conexiune a fost realizat cu succes!", + "testFailed": "Testul de conexiune a eșuat. Verifică datele introduse și încearcă din nou.", "testFailedTitle": "Test eșuat", "connected": "Conectat", "notConnected": "Neconectat", @@ -974,10 +988,42 @@ "featuresPopover": { "title": "Funcționalități streaming", "description": "Folosește restreaming go2rtc pentru a reduce conexiunile la cameră." + }, + "streamDetails": "Detalii stream", + "probing": "Se testează camera...", + "retry": "Reîncearcă", + "testing": { + "probingMetadata": "Se testează metadatele camerei...", + "fetchingSnapshot": "Se preia snapshot-ul camerei..." + }, + "probeFailed": "Nu s-a putut testa camera: {{error}}", + "probingDevice": "Se testează dispozitivul...", + "probeSuccessful": "Testul a fost realizat cu succes", + "probeError": "Eroare la testare", + "probeNoSuccess": "Testul a eșuat", + "deviceInfo": "Informații dispozitiv", + "manufacturer": "Producător", + "model": "Model", + "firmware": "Firmware", + "profiles": "Profiluri", + "ptzSupport": "Suport PTZ", + "autotrackingSupport": "Suport pentru urmărire automată", + "presets": "Presetări", + "rtspCandidates": "Candidați RTSP", + "rtspCandidatesDescription": "Următoarele URL-uri RTSP au fost găsite în urma testului camerei. Testează conexiunea pentru a vizualiza metadatele fluxului.", + "noRtspCandidates": "Nu au fost găsite URL-uri RTSP pentru cameră. Datele tale de autentificare pot fi incorecte sau camera poate să nu suporte ONVIF sau metoda folosită pentru a obține URL-urile RTSP. Revino și introdu URL-ul RTSP manual.", + "candidateStreamTitle": "Candidat {{number}}", + "useCandidate": "Folosește", + "uriCopy": "Copiază", + "uriCopied": "URI copiat în clipboard", + "testConnection": "Testează conexiunea", + "toggleUriView": "Click pentru a comuta la vizualizarea completă a URI-ulu", + "errors": { + "hostRequired": "Adresa gazdă/IP este obligatorie" } }, "step3": { - "description": "Validare finală și analiză înainte de a salva noua cameră. Conectează fiecare stream înainte de a salva.", + "description": "Configurează rolurile stream-ului și adaugă stream-uri suplimentare pentru camera ta.", "validationTitle": "Validare stream", "connectAllStreams": "Conectează toate stream-urile", "reconnectionSuccess": "Reconectare reușită.", @@ -1018,7 +1064,91 @@ "resolutionLow": "O rezoluție de {{resolution}} poate fi prea mică pentru detectarea fiabilă a obiectelor mici." }, "ffmpegModule": "Folosește modul de compatibilitate pentru stream-uri", - "ffmpegModuleDescription": "Dacă fluxul nu se încarcă după mai multe încercări, activați această opțiune. Când este activată, Frigate va folosi modulul ffmpeg împreună cu go2rtc. Aceasta poate oferi o compatibilitate mai bună cu unele fluxuri de camere." + "ffmpegModuleDescription": "Dacă fluxul nu se încarcă după mai multe încercări, activați această opțiune. Când este activată, Frigate va folosi modulul ffmpeg împreună cu go2rtc. Aceasta poate oferi o compatibilitate mai bună cu unele fluxuri de camere.", + "streamsTitle": "Stream-uri cameră", + "addStream": "Adaugă stream", + "addAnotherStream": "Adaugă alt stream", + "streamUrl": "URL stream", + "streamUrlPlaceholder": "rtsp://utilizator:parolă@gazdă:port/cale", + "selectStream": "Selectează stream", + "searchCandidates": "Se caută candidați...", + "noStreamFound": "Nu a fost găsit niciun stream", + "url": "URL", + "resolution": "Rezoluție", + "quality": "Calitate", + "selectResolution": "Selectează rezoluția", + "selectQuality": "Selectează calitatea", + "roleLabels": { + "detect": "Detectare obiecte", + "record": "Înregistrare", + "audio": "Audio" + }, + "testStream": "Testează conexiunea", + "testSuccess": "Stream-ul a fost testat cu succes!", + "testFailed": "Testul stream-ului a eșuat", + "testFailedTitle": "Testul a eșuat", + "connected": "Conectat", + "notConnected": "Neconectat", + "featuresTitle": "Funcționalități", + "go2rtc": "Reduceți conexiunile la cameră", + "detectRoleWarning": "Cel puțin un stream trebuie să aibă rolul „detect” pentru a continua.", + "rolesPopover": { + "title": "Roluri stream", + "detect": "Stream principal pentru detectarea obiectelor.", + "record": "Salvează segmente din stream-ul video pe baza setărilor de configurare.", + "audio": "Stream pentru detectarea bazată pe audio." + }, + "featuresPopover": { + "title": "Funcționalități stream", + "description": "Folosește redirecționarea go2rtc pentru a reduce conexiunile către camera ta." + } + }, + "step4": { + "description": "Validare și analiză finală înainte de salvarea noii camere. Conectează fiecare stream înainte de a salva.", + "validationTitle": "Validare stream", + "connectAllStreams": "Conectează toate streamurile", + "reconnectionSuccess": "Reconectare reușită.", + "reconnectionPartial": "Unele stream-uri nu s-au reconectat.", + "streamUnavailable": "Previzualizarea stream indisponibilă", + "reload": "Reîncarcă", + "connecting": "Se conectează...", + "streamTitle": "Stream {{number}}", + "valid": "Valid", + "failed": "A eșuat", + "notTested": "Nu s-a testat", + "connectStream": "Conectare", + "connectingStream": "Se conectează", + "disconnectStream": "Deconectare", + "estimatedBandwidth": "Lățime de bandă estimată", + "roles": "Roluri", + "ffmpegModule": "Folosește modul de compatibilitate al fluxului", + "ffmpegModuleDescription": "Dacă stream-ul nu se încarcă după mai multe încercări, încearcă să activezi această opțiune. Când este activată, Frigate va folosi modulul ffmpeg împreună cu go2rtc. Aceasta poate oferi o compatibilitate mai bună cu unele stream-uri de camere.", + "none": "Niciunul", + "error": "Eroare", + "streamValidated": "Stream-ul {{number}} a fost validat cu succes", + "streamValidationFailed": "Validarea stream-ului {{number}} a eșuat", + "saveAndApply": "Salvează camera nouă", + "saveError": "Configurație invalidă. Vă rugăm să verificați setările.", + "issues": { + "title": "Validare Stream", + "videoCodecGood": "Codec-ul video este {{codec}}.", + "audioCodecGood": "Codec-ul audio este {{codec}}.", + "resolutionHigh": "O rezoluție de {{resolution}} poate cauza o utilizare crescută a resurselor.", + "resolutionLow": "O rezoluție de {{resolution}} poate fi prea scăzută pentru detectarea fiabilă a obiectelor mici.", + "noAudioWarning": "Nu s-a detectat audio pentru acest flux, înregistrările nu vor avea sunet.", + "audioCodecRecordError": "Codec-ul audio AAC este necesar pentru a suporta audio în înregistrări.", + "audioCodecRequired": "Un stream audio este necesar pentru a suporta detectarea audio.", + "restreamingWarning": "Reducerea conexiunilor la cameră pentru stream-ul de înregistrare poate crește ușor utilizarea procesorului.", + "brands": { + "reolink-rtsp": "Reolink RTSP nu este recomandat. Activați HTTP în setările de firmware ale camerei și reporniți asistentul." + }, + "dahua": { + "substreamWarning": "Substream-ul 1 este blocat la o rezoluție scăzută. Multe camere Dahua / Amcrest / EmpireTech suportă substream-uri adiționale care trebuie activate în setările camerei. Este recomandat să verificați și să utilizați acele stream-uri, dacă sunt disponibile." + }, + "hikvision": { + "substreamWarning": "Substream-ul 1 este blocat la o rezoluție scăzută. Multe camere Hikvision suportă substream-uri adiționale care trebuie activate în setările camerei. Este recomandat să verificați și să utilizați acele stream-uri, dacă sunt disponibile." + } + } } }, "cameraManagement": { diff --git a/web/public/locales/ro/views/system.json b/web/public/locales/ro/views/system.json index ee79d9780..2584d8581 100644 --- a/web/public/locales/ro/views/system.json +++ b/web/public/locales/ro/views/system.json @@ -42,6 +42,11 @@ "closeInfo": { "label": "Închide informațiile GPU" } + }, + "intelGpuWarning": { + "title": "Avertisment statistici GPU Intel", + "message": "Statistici GPU indisponibile", + "description": "Aceasta este o eroare cunoscută în instrumentele Intel pentru raportarea statisticilor GPU (intel_gpu_top), unde acestea se blochează și returnează repetat o utilizare GPU de 0%, chiar și în cazurile în care accelerarea hardware și detectarea obiectelor rulează corect pe (i)GPU. Aceasta nu este o eroare Frigate. Poți reporni gazda pentru a remedia temporar problema și pentru a confirma că GPU-ul funcționează corect. Aceasta nu afectează performanța." } }, "detector": { @@ -123,15 +128,22 @@ "face_embedding_speed": "Viteză încorporare fețe", "yolov9_plate_detection_speed": "Viteza detecției numerelor de înmatriculare YOLOv9", "text_embedding_speed": "Viteză încorporare text", - "yolov9_plate_detection": "Detectare numere de înmatriculare YOLOv9" + "yolov9_plate_detection": "Detectare numere de înmatriculare YOLOv9", + "review_description": "Descriere Revizuire", + "review_description_speed": "Viteză Descriere Revizuire", + "review_description_events_per_second": "Descriere Revizuire", + "object_description": "Descriere Obiect", + "object_description_speed": "Viteză Descriere Obiect", + "object_description_events_per_second": "Descriere Obiect" }, - "infPerSecond": "Inferențe pe secundă" + "infPerSecond": "Inferențe pe secundă", + "averageInf": "Timp Mediu de Inferență" }, "cameras": { "info": { "codec": "Codec:", "resolution": "Rezoluție:", - "cameraProbeInfo": "Informații sondare cameră {{camera}}", + "cameraProbeInfo": "Informații testare cameră {{camera}}", "streamDataFromFFPROBE": "Datele stream-ului sunt obținute cu ffprobe.", "aspectRatio": "raport aspect", "fetching": "Se preiau datele camerei", @@ -140,7 +152,7 @@ "audio": "Sunet:", "error": "Eroare:{{error}}", "tips": { - "title": "Informații sondă cameră" + "title": "Informații test cameră" }, "fps": "Cadre/s:", "unknown": "Necunoscut" @@ -166,10 +178,10 @@ "framesAndDetections": "Cadre / Detecții", "toast": { "success": { - "copyToClipboard": "Datele sondei au fost copiate." + "copyToClipboard": "Datele testului au fost copiate." }, "error": { - "unableToProbeCamera": "Sondarea camerei nu a fost posibilă: {{errorMessage}}" + "unableToProbeCamera": "Testarea camerei nu a fost posibilă: {{errorMessage}}" } } }, From 9c481b41cf05f1702087114e0452ca4f8c613227 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:07 +0100 Subject: [PATCH 10/24] Translated using Weblate (Bulgarian) Currently translated at 31.1% (28 of 90 strings) Translated using Weblate (Bulgarian) Currently translated at 7.6% (1 of 13 strings) Translated using Weblate (Bulgarian) Currently translated at 50.0% (1 of 2 strings) Translated using Weblate (Bulgarian) Currently translated at 50.0% (1 of 2 strings) Translated using Weblate (Bulgarian) Currently translated at 7.4% (4 of 54 strings) Translated using Weblate (Bulgarian) Currently translated at 10.0% (1 of 10 strings) Translated using Weblate (Bulgarian) Currently translated at 17.7% (21 of 118 strings) Co-authored-by: Borislav Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/bg/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/bg/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-icons/bg/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-input/bg/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/bg/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/bg/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/bg/ Translation: Frigate NVR/components-auth Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-icons Translation: Frigate NVR/components-input Translation: Frigate NVR/objects Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-live --- web/public/locales/bg/components/auth.json | 6 +++++- web/public/locales/bg/components/dialog.json | 3 +++ web/public/locales/bg/components/icons.json | 6 +++++- web/public/locales/bg/components/input.json | 8 +++++++- web/public/locales/bg/objects.json | 3 ++- web/public/locales/bg/views/exports.json | 4 +++- web/public/locales/bg/views/live.json | 3 ++- 7 files changed, 27 insertions(+), 6 deletions(-) diff --git a/web/public/locales/bg/components/auth.json b/web/public/locales/bg/components/auth.json index 0967ef424..782571ec3 100644 --- a/web/public/locales/bg/components/auth.json +++ b/web/public/locales/bg/components/auth.json @@ -1 +1,5 @@ -{} +{ + "form": { + "user": "Потребителско име" + } +} diff --git a/web/public/locales/bg/components/dialog.json b/web/public/locales/bg/components/dialog.json index d58e72203..9a78d85b3 100644 --- a/web/public/locales/bg/components/dialog.json +++ b/web/public/locales/bg/components/dialog.json @@ -8,5 +8,8 @@ "lastHour_other": "Последните {{count}} часа" }, "select": "Избери" + }, + "restart": { + "title": "Сигурен ли сте, че искате да рестартирате Frigate?" } } diff --git a/web/public/locales/bg/components/icons.json b/web/public/locales/bg/components/icons.json index 0967ef424..e9c5e7a5f 100644 --- a/web/public/locales/bg/components/icons.json +++ b/web/public/locales/bg/components/icons.json @@ -1 +1,5 @@ -{} +{ + "iconPicker": { + "selectIcon": "Изберете иконка" + } +} diff --git a/web/public/locales/bg/components/input.json b/web/public/locales/bg/components/input.json index 0967ef424..ab7610dd7 100644 --- a/web/public/locales/bg/components/input.json +++ b/web/public/locales/bg/components/input.json @@ -1 +1,7 @@ -{} +{ + "button": { + "downloadVideo": { + "label": "Свали видео" + } + } +} diff --git a/web/public/locales/bg/objects.json b/web/public/locales/bg/objects.json index bb4ad4968..a12c53c3a 100644 --- a/web/public/locales/bg/objects.json +++ b/web/public/locales/bg/objects.json @@ -18,5 +18,6 @@ "bicycle": "Велосипед", "skateboard": "Скейтборд", "door": "Врата", - "blender": "Блендер" + "blender": "Блендер", + "person": "Човек" } diff --git a/web/public/locales/bg/views/exports.json b/web/public/locales/bg/views/exports.json index 0967ef424..ff39681e9 100644 --- a/web/public/locales/bg/views/exports.json +++ b/web/public/locales/bg/views/exports.json @@ -1 +1,3 @@ -{} +{ + "documentTitle": "Експорт - Frigate" +} diff --git a/web/public/locales/bg/views/live.json b/web/public/locales/bg/views/live.json index c1b6ac1dc..6587e006a 100644 --- a/web/public/locales/bg/views/live.json +++ b/web/public/locales/bg/views/live.json @@ -63,5 +63,6 @@ }, "cameraSettings": { "cameraEnabled": "Камерата е включена" - } + }, + "documentTitle": "Наживо - Frigate" } From 3a39872eff9f381806e007eb5f7916eeb9b90794 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:08 +0100 Subject: [PATCH 11/24] Translated using Weblate (Ukrainian) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (125 of 125 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (635 of 635 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (108 of 108 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (209 of 209 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (106 of 106 strings) Translated using Weblate (Ukrainian) Currently translated at 97.1% (103 of 106 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (598 of 598 strings) Translated using Weblate (Ukrainian) Currently translated at 100.0% (127 of 127 strings) Co-authored-by: Alex Taran Co-authored-by: Hosted Weblate Co-authored-by: Максим Горпиніч Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/uk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/uk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/uk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/uk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/uk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/uk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/uk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/uk/ Translation: Frigate NVR/common Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/uk/common.json | 17 +- .../locales/uk/views/classificationModel.json | 36 +++- web/public/locales/uk/views/events.json | 4 +- web/public/locales/uk/views/explore.json | 11 +- web/public/locales/uk/views/faceLibrary.json | 2 +- web/public/locales/uk/views/live.json | 6 +- web/public/locales/uk/views/settings.json | 156 ++++++++++++++++-- web/public/locales/uk/views/system.json | 16 +- 8 files changed, 212 insertions(+), 36 deletions(-) diff --git a/web/public/locales/uk/common.json b/web/public/locales/uk/common.json index a3338a223..b6692bad8 100644 --- a/web/public/locales/uk/common.json +++ b/web/public/locales/uk/common.json @@ -78,7 +78,10 @@ "formattedTimestampMonthDayYear": { "24hour": "MMM d, yyyy", "12hour": "MMM d, yyyy" - } + }, + "inProgress": "У процесі", + "invalidStartTime": "Недійсний час початку", + "invalidEndTime": "Недійсний час завершення" }, "button": { "exitFullscreen": "Вийти з повноекранного режиму", @@ -115,7 +118,8 @@ "export": "Експортувати", "deleteNow": "Видалити негайно", "next": "Наступне", - "unsuspended": "Відновити дію" + "unsuspended": "Відновити дію", + "continue": "Продовжити" }, "menu": { "language": { @@ -216,8 +220,9 @@ "label": "Використовуйте налаштування системи для світлого або темного режиму" } }, - "appearance": "Поява", - "withSystem": "Система" + "appearance": "Зовнішність", + "withSystem": "Система", + "classification": "Класифікація" }, "unit": { "speed": { @@ -241,7 +246,9 @@ "back": "Повернутись", "hide": "Приховати {{item}}", "show": "Показати {{item}}", - "ID": "ID" + "ID": "ID", + "none": "Жоден", + "all": "Усі" }, "toast": { "save": { diff --git a/web/public/locales/uk/views/classificationModel.json b/web/public/locales/uk/views/classificationModel.json index 943aebba3..11d2c7bb9 100644 --- a/web/public/locales/uk/views/classificationModel.json +++ b/web/public/locales/uk/views/classificationModel.json @@ -20,28 +20,37 @@ "deletedModel_one": "Успішно видалено модель {{count}}", "deletedModel_few": "Успішно видалено моделей {{count}}", "deletedModel_many": "Успішно видалено моделі {{count}}", - "updatedModel": "Конфігурацію моделі успішно оновлено" + "updatedModel": "Конфігурацію моделі успішно оновлено", + "renamedCategory": "Клас успішно перейменовано на {{name}}" }, "error": { "deleteImageFailed": "Не вдалося видалити: {{errorMessage}}", "deleteCategoryFailed": "Не вдалося видалити клас: {{errorMessage}}", "categorizeFailed": "Не вдалося класифікувати зображення: {{errorMessage}}", - "trainingFailed": "Не вдалося розпочати навчання моделі: {{errorMessage}}", + "trainingFailed": "Навчання моделі не вдалося. Перегляньте журнали Frigate для отримання детальної інформації.", "deleteModelFailed": "Не вдалося видалити модель: {{errorMessage}}", - "updateModelFailed": "Не вдалося оновити модель: {{errorMessage}}" + "updateModelFailed": "Не вдалося оновити модель: {{errorMessage}}", + "renameCategoryFailed": "Не вдалося перейменувати клас: {{errorMessage}}", + "trainingFailedToStart": "Не вдалося розпочати навчання моделі: {{errorMessage}}" } }, "deleteCategory": { "title": "Видалити клас", - "desc": "Ви впевнені, що хочете видалити клас {{name}}? Це назавжди видалить усі пов'язані зображення та вимагатиме повторного навчання моделі." + "desc": "Ви впевнені, що хочете видалити клас {{name}}? Це назавжди видалить усі пов'язані зображення та вимагатиме повторного навчання моделі.", + "minClassesTitle": "Не вдається видалити клас", + "minClassesDesc": "Модель класифікації повинна мати щонайменше 2 класи. Додайте ще один клас, перш ніж видаляти цей." }, "deleteDatasetImages": { "title": "Видалити зображення набору даних", - "desc": "Ви впевнені, що хочете видалити {{count}} зображень з {{dataset}}? Цю дію неможливо скасувати, вона вимагатиме повторного навчання моделі." + "desc_one": "Ви впевнені, що хочете видалити {{count}} зображень з {{dataset}}? Цю дію неможливо скасувати, вона вимагатиме повторного навчання моделі.", + "desc_few": "Ви впевнені, що хочете видалити {{count}} зображенні з {{dataset}}? Цю дію неможливо скасувати, вона вимагатиме повторного навчання моделі.", + "desc_many": "Ви впевнені, що хочете видалити {{count}} зображенні з {{dataset}}? Цю дію неможливо скасувати, вона вимагатиме повторного навчання моделі." }, "deleteTrainImages": { "title": "Видалити зображення поїздів", - "desc": "Ви впевнені, що хочете видалити {{count}} зображень? Цю дію не можна скасувати." + "desc_one": "Ви впевнені, що хочете видалити {{count}} зображень? Цю дію не можна скасувати.", + "desc_few": "Ви впевнені, що хочете видалити {{count}} зображенні? Цю дію не можна скасувати.", + "desc_many": "Ви впевнені, що хочете видалити {{count}} зображенні? Цю дію не можна скасувати." }, "renameCategory": { "title": "Перейменувати клас", @@ -140,13 +149,18 @@ "generationFailed": "Помилка генерації. Будь ласка, спробуйте ще раз.", "classifyFailed": "Не вдалося класифікувати зображення: {{error}}" }, - "generateSuccess": "Зразки зображень успішно створено" + "generateSuccess": "Зразки зображень успішно створено", + "allImagesRequired_one": "Будь ласка, класифікуйте всі зображення. Залишилося {{count}} зображення.", + "allImagesRequired_few": "Будь ласка, класифікуйте всі зображення. Залишилося зображень: {{count}}.", + "allImagesRequired_many": "Будь ласка, класифікуйте всі зображення. Залишилося зображень: {{count}}." } }, "deleteModel": { "title": "Видалити модель класифікації", "single": "Ви впевнені, що хочете видалити {{name}}? Це назавжди видалить усі пов’язані дані, включаючи зображення та дані навчання. Цю дію не можна скасувати.", - "desc": "Ви впевнені, що хочете видалити {{count}} модель(і)? Це назавжди видалить усі пов’язані дані, включаючи зображення та навчальні дані. Цю дію не можна скасувати." + "desc_one": "Ви впевнені, що хочете видалити {{count}} модель? Це назавжди видалить усі пов’язані дані, включаючи зображення та навчальні дані. Цю дію не можна скасувати.", + "desc_few": "Ви впевнені, що хочете видалити {{count}} моделей? Це назавжди видалить усі пов’язані дані, включаючи зображення та навчальні дані. Цю дію не можна скасувати.", + "desc_many": "Ви впевнені, що хочете видалити {{count}} моделі? Це назавжди видалить усі пов’язані дані, включаючи зображення та навчальні дані. Цю дію не можна скасувати." }, "menu": { "objects": "Об'єкти", @@ -160,5 +174,11 @@ "descriptionState": "Відредагуйте класи для цієї моделі класифікації штатів. Зміни вимагатимуть перенавчання моделі.", "descriptionObject": "Відредагуйте тип об'єкта та тип класифікації для цієї моделі класифікації об'єктів.", "stateClassesInfo": "Примітка: Зміна класів станів вимагає перенавчання моделі з використанням оновлених класів." + }, + "tooltip": { + "trainingInProgress": "Модель зараз тренується", + "noNewImages": "Немає нових зображень для навчання. Спочатку класифікуйте більше зображень у наборі даних.", + "modelNotReady": "Модель не готова до навчання", + "noChanges": "З моменту останнього навчання в наборі даних не було змін." } } diff --git a/web/public/locales/uk/views/events.json b/web/public/locales/uk/views/events.json index 993933d6c..97ad0e1ef 100644 --- a/web/public/locales/uk/views/events.json +++ b/web/public/locales/uk/views/events.json @@ -40,8 +40,8 @@ "detail": { "noDataFound": "Немає детальних даних для перегляду", "aria": "Перемикання детального перегляду", - "trackedObject_one": "об'єкт", - "trackedObject_other": "об'єкти", + "trackedObject_one": "{{count}} об'єкт", + "trackedObject_other": "{{count}} об'єкти", "noObjectDetailData": "Детальні дані про об'єкт недоступні.", "label": "Деталь", "settings": "Налаштування детального перегляду", diff --git a/web/public/locales/uk/views/explore.json b/web/public/locales/uk/views/explore.json index 5d90544a6..9d24db9da 100644 --- a/web/public/locales/uk/views/explore.json +++ b/web/public/locales/uk/views/explore.json @@ -35,7 +35,9 @@ "error": "Не вдалося видалити відстежуваний об'єкт: {{errorMessage}}", "success": "Відстежуваний об'єкт успішно видалено." } - } + }, + "previousTrackedObject": "Попередній відстежуваний об'єкт", + "nextTrackedObject": "Наступний відстежуваний об'єкт" }, "trackedObjectsCount_one": "{{count}} відстежуваний об'єкт ", "trackedObjectsCount_few": "{{count}} відстежувані об'єкти ", @@ -102,7 +104,7 @@ "updatedLPR": "Номерний знак успішно оновлено.", "updatedSublabel": "Підмітку успішно оновлено.", "regenerate": "Новий опис було запрошено від {{provider}}. Залежно від швидкості вашого провайдера, його перегенерація може зайняти деякий час.", - "audioTranscription": "Запит на аудіотранскрипцію успішно надіслано." + "audioTranscription": "Запит на аудіотранскрипцію успішно надіслано. Залежно від швидкості вашого сервера Frigate, транскрипція може тривати деякий час." }, "error": { "regenerate": "Не вдалося звернутися до {{provider}} для отримання нового опису: {{errorMessage}}", @@ -227,7 +229,8 @@ "snapshot": "знімок", "video": "відео", "object_lifecycle": "життєвий цикл об'єкта", - "thumbnail": "мініатюра" + "thumbnail": "мініатюра", + "tracking_details": "деталі відстеження" }, "exploreMore": "Дослідіть більше об'єктів {{label}}", "aiAnalysis": { @@ -273,7 +276,7 @@ "label": "Зсув анотації", "desc": "Ці дані надходять із каналу виявлення вашої камери, але накладаються на зображення з каналу запису. Малоймовірно, що ці два потоки будуть ідеально синхронізовані. Як результат, обмежувальна рамка та відеоматеріал не будуть ідеально збігатися. Ви можете використовувати це налаштування, щоб змістити анотації вперед або назад у часі, щоб краще узгодити їх із записаним відеоматеріалом.", "millisecondsToOffset": "Мілісекунди для зміщення виявлених анотацій. За замовчуванням: 0", - "tips": "ПІДКАЗКА: Уявіть, що є кліп події, на якому людина йде зліва направо. Якщо обмежувальний прямокутник часової шкали події постійно знаходиться ліворуч від людини, то значення слід зменшити. Аналогічно, якщо людина йде зліва направо, а обмежувальний прямокутник постійно знаходиться попереду людини, то значення слід збільшити.", + "tips": "Зменште значення, якщо відтворення відео відбувається попереду блоків та точок шляху, і збільште значення, якщо відтворення відео відбувається позаду них. Це значення може бути від’ємним.", "toast": { "success": "Зміщення анотації для {{camera}} збережено у файлі конфігурації. Перезапустіть Frigate, щоб застосувати зміни." } diff --git a/web/public/locales/uk/views/faceLibrary.json b/web/public/locales/uk/views/faceLibrary.json index 621dc0e8b..6c233d47a 100644 --- a/web/public/locales/uk/views/faceLibrary.json +++ b/web/public/locales/uk/views/faceLibrary.json @@ -17,7 +17,7 @@ "trainFailed": "Не вдалося тренуватися: {{errorMessage}}" }, "success": { - "updatedFaceScore": "Оцінку обличчя успішно оновлено.", + "updatedFaceScore": "Оцінку обличчя успішно оновлено до {{name}} ({{score}}).", "deletedName_one": "{{count}} Обличчя успішно видалено.", "deletedName_few": "{{count}} Обличчі успішно видалено.", "deletedName_many": "{{count}} Облич. успішно видалено.", diff --git a/web/public/locales/uk/views/live.json b/web/public/locales/uk/views/live.json index 8562f5115..0b8b405b2 100644 --- a/web/public/locales/uk/views/live.json +++ b/web/public/locales/uk/views/live.json @@ -174,7 +174,11 @@ "noCameras": { "title": "Немає налаштованих камер", "description": "Почніть з підключення камери до Frigate.", - "buttonText": "Додати камеру" + "buttonText": "Додати камеру", + "restricted": { + "title": "Немає Доступних Камер", + "description": "У вас немає дозволу на перегляд будь-яких камер у цій групі." + } }, "snapshot": { "takeSnapshot": "Завантажити миттєвий знімок", diff --git a/web/public/locales/uk/views/settings.json b/web/public/locales/uk/views/settings.json index 965cc8440..74be8345f 100644 --- a/web/public/locales/uk/views/settings.json +++ b/web/public/locales/uk/views/settings.json @@ -478,7 +478,7 @@ "monday": "Понеділок" } }, - "title": "Загальна налаштування", + "title": "Налаштування інтерфейсу користувача", "liveDashboard": { "title": "Панель керування в прямому ефірі", "automaticLiveView": { @@ -492,6 +492,10 @@ "displayCameraNames": { "label": "Завжди показувати назви камер", "desc": "Завжди відображати назви камер у чіпі на панелі керування режимом живого перегляду з кількох камер." + }, + "liveFallbackTimeout": { + "label": "Час очікування резервного програвача в реальному часі", + "desc": "Коли високоякісна пряма трансляція з камери недоступна, повернутися до режиму низької пропускної здатності через певну кількість секунд. За замовчуванням: 3." } }, "storedLayouts": { @@ -554,7 +558,7 @@ "classification": "Налаштування класифікації – Фрегат", "masksAndZones": "Редактор масок та зон – Фрегат", "motionTuner": "Тюнер руху - Фрегат", - "general": "Основна Налаштування – Frigate", + "general": "Налаштування інтерфейсу користувача - Frigate", "frigatePlus": "Налаштування Frigate+ – Frigate", "enrichments": "Налаштуваннях збагачення – Frigate", "cameraManagement": "Керування камерами - Frigate", @@ -888,9 +892,9 @@ "createRole": "Роль {{role}} успішно створена", "updateCameras": "Камери оновлено для ролі {{role}}", "deleteRole": "Роль {{role}} успішно видалено", - "userRolesUpdated_one": "Користувачів ({{count}}), яким призначено цю роль, оновлено до ролі «глядача», що має доступ до всіх камер.", - "userRolesUpdated_few": "", - "userRolesUpdated_many": "" + "userRolesUpdated_one": "{{count}} користувача, призначену цій ролі, оновлено до «глядача», який має доступ до всіх камер.", + "userRolesUpdated_few": "{{count}} Користувачі, яким призначено цю роль, оновлено до ролі «глядача», що має доступ до всіх камер.", + "userRolesUpdated_many": "{{count}} Користувачів, яким призначено цю роль, оновлено до ролі «глядача», що має доступ до всіх камер." }, "error": { "createRoleFailed": "Не вдалося створити роль: {{errorMessage}}", @@ -941,7 +945,8 @@ "steps": { "nameAndConnection": "Ім'я та з'єднання", "streamConfiguration": "Конфігурація потоку", - "validationAndTesting": "Валідація та тестування" + "validationAndTesting": "Валідація та тестування", + "probeOrSnapshot": "Зонд або знімок" }, "save": { "success": "Нову камеру успішно збережено {{cameraName}}.", @@ -958,7 +963,7 @@ "testFailed": "Тест потоку не вдався: {{error}}" }, "step1": { - "description": "Введіть дані вашої камери та перевірте з’єднання.", + "description": "Введіть дані вашої камери та виберіть тестування камери або виберіть бренд вручну.", "cameraName": "Назва камери", "cameraNamePlaceholder": "наприклад, передні_двері або огляд заднього двору", "host": "Хост/IP-адреса", @@ -998,10 +1003,19 @@ "testing": { "probingMetadata": "Зондування метаданих камери...", "fetchingSnapshot": "Отримання знімка камери..." - } + }, + "connectionSettings": "Налаштування підключення", + "detectionMethod": "Метод виявлення потоку", + "onvifPort": "Порт ONVIF", + "probeMode": "Зонд-камера", + "manualMode": "Ручний вибір", + "detectionMethodDescription": "Перевірте камеру з ONVIF (якщо підтримується) для пошуку URL-адресів потоку камери або вручну виберіть бренд камери, щоб використовувати попередньо визначені URL. Щоб введіти налаштований URL-адрес RTSP, виберіть ручний метод і вибрати \"Інший\".", + "onvifPortDescription": "Для камер, що підтримують ONVIF, це зазвичай 80 або 8080.", + "useDigestAuth": "Використовувати дайджест-автентифікацію", + "useDigestAuthDescription": "Використовуйте автентифікацію HTTP-дайджест для ONVIF. Деякі камери можуть вимагати спеціальне ім’я користувача/пароль ONVIF замість стандартного користувача-адміністратора." }, "step2": { - "description": "Налаштуйте ролі потоків та додайте додаткові потоки для вашої камери.", + "description": "Перевірте камеру на наявність доступних потоків або налаштуйте ручні параметри на основі вибраного методу виявлення.", "streamsTitle": "Потоки з камери", "addStream": "Додати потік", "addAnotherStream": "Додати ще один потік", @@ -1020,8 +1034,8 @@ "audio": "Аудіо" }, "testStream": "Тестове з'єднання", - "testSuccess": "Тестування трансляції успішне!", - "testFailed": "Тест потоку не вдався", + "testSuccess": "Тестування з'єднання успішне!", + "testFailed": "Перевірка з’єднання не вдалася. Перевірте введені дані та повторіть спробу.", "testFailedTitle": "Тест не вдався", "connected": "Підключено", "notConnected": "Не підключено", @@ -1037,10 +1051,42 @@ "featuresPopover": { "title": "Функції потоку", "description": "Використовуйте ретрансляцію go2rtc, щоб зменшити кількість підключень до вашої камери." + }, + "streamDetails": "Деталі трансляції", + "probing": "Зондуюча камера...", + "retry": "Повторити спробу", + "testing": { + "probingMetadata": "Зондування метаданих камери...", + "fetchingSnapshot": "Отримання знімка камери..." + }, + "probeFailed": "Не вдалося дослідити камеру: {{error}}", + "probingDevice": "Зондуючий пристрій...", + "probeSuccessful": "Зонд успішно", + "probeError": "Помилка зонда", + "probeNoSuccess": "Зондування Невдало", + "deviceInfo": "Інформація про пристрій", + "manufacturer": "Виробник", + "model": "Модель", + "firmware": "Прошивка", + "profiles": "Профілі", + "ptzSupport": "Підтримка PTZ-камер", + "autotrackingSupport": "Підтримка автоматичного відстеження", + "presets": "Пресети", + "rtspCandidates": "Кандидати RTSP", + "rtspCandidatesDescription": "З камери було знайдено такі URL-адреси RTSP. Перевірте з’єднання, щоб переглянути метадані потоку.", + "noRtspCandidates": "Не знайдено URL-адрес RTSP з камери. Ваші облікові дані можуть бути неправильними, або камера може не підтримувати ONVIF чи метод, який використовується для отримання URL-адрес RTSP. Поверніться та введіть URL-адресу RTSP вручну.", + "candidateStreamTitle": "Кандидат {{number}}", + "useCandidate": "Використання", + "uriCopy": "Копіювати", + "uriCopied": "URI скопійовано в буфер обміну", + "testConnection": "Тестове з'єднання", + "toggleUriView": "Натисніть, щоб перемкнути повний вигляд URI", + "errors": { + "hostRequired": "Потрібно вказати хост/IP-адресу" } }, "step3": { - "description": "Фінальна перевірка та аналіз перед збереженням нової камери. Підключіть кожен потік перед збереженням.", + "description": "Налаштуйте ролі потоків та додайте додаткові потоки для вашої камери.", "validationTitle": "Перевірка потоку", "connectAllStreams": "Підключити всі потоки", "reconnectionSuccess": "Повторне підключення успішне.", @@ -1081,7 +1127,91 @@ "resolutionLow": "Роздільна здатність {{resolution}} може бути занадто низькою для надійного виявлення малих об'єктів." }, "ffmpegModule": "Використовувати режим сумісності з потоками", - "ffmpegModuleDescription": "Якщо потік не завантажується після кількох спроб, спробуйте ввімкнути цю функцію. Коли вона ввімкнена, Frigate використовуватиме модуль ffmpeg з go2rtc. Це може забезпечити кращу сумісність з деякими потоками камер." + "ffmpegModuleDescription": "Якщо потік не завантажується після кількох спроб, спробуйте ввімкнути цю функцію. Коли вона ввімкнена, Frigate використовуватиме модуль ffmpeg з go2rtc. Це може забезпечити кращу сумісність з деякими потоками камер.", + "streamsTitle": "Трансляції з камери", + "addStream": "Додати потік", + "addAnotherStream": "Додати ще один потік", + "streamUrl": "URL-адреса потоку", + "streamUrlPlaceholder": "rtsp://username:password@host:port/path", + "selectStream": "Виберіть потік", + "searchCandidates": "Пошук кандидатів...", + "noStreamFound": "Потік не знайдено", + "url": "URL", + "resolution": "Роздільна здатність", + "selectResolution": "Виберіть роздільну здатність", + "quality": "Якість", + "selectQuality": "Виберіть якість", + "roleLabels": { + "detect": "Виявлення об'єктів", + "record": "Запис", + "audio": "Аудіо" + }, + "testStream": "Тестове з'єднання", + "testSuccess": "Тестування трансляції успішне!", + "testFailed": "Тест потоку не вдався", + "testFailedTitle": "Тест не вдався", + "connected": "Підключено", + "notConnected": "Не підключено", + "featuresTitle": "Особливості", + "go2rtc": "Зменште кількість підключень до камери", + "detectRoleWarning": "Для продовження принаймні один потік повинен мати роль \"виявлення\".", + "rolesPopover": { + "title": "Ролі потоку", + "detect": "Основний канал для виявлення об'єктів.", + "record": "Зберігає сегменти відеоканалу на основі налаштувань конфігурації.", + "audio": "Стрічка даних для виявлення на основі аудіо." + }, + "featuresPopover": { + "title": "Функції потоку", + "description": "Використовуйте ретрансляцію go2rtc, щоб зменшити кількість підключень до вашої камери." + } + }, + "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": "Зменшення кількості підключень до камери для потоку запису може дещо збільшити використання процесора.", + "brands": { + "reolink-rtsp": "Не рекомендується використовувати Reolink RTSP. Увімкніть HTTP у налаштуваннях прошивки камери та перезапустіть майстер." + }, + "dahua": { + "substreamWarning": "Підпотік 1 заперечений до низького розділу. Багато камери Dahua / Amcrest / EmpireTech підтримують додаткові підтоки, які потрібно включити в налаштуваннях камери. Рекомендується перевірити та використовувати ці потоки, якщо вони доступні." + }, + "hikvision": { + "substreamWarning": "Підпотік 1 заперечений до низького розділу. Багато камер Hikvision підтримують додаткові підтоки, які повинні бути включені в налаштуваннях камери. Рекомендується перевірити та використовувати ці потоки, якщо вони доступні." + } + } } }, "cameraManagement": { diff --git a/web/public/locales/uk/views/system.json b/web/public/locales/uk/views/system.json index 43e8cfcb0..d76a729a7 100644 --- a/web/public/locales/uk/views/system.json +++ b/web/public/locales/uk/views/system.json @@ -57,10 +57,17 @@ "text_embedding": "Вбудовування тексту", "face_recognition": "Розпізнавання обличчя", "yolov9_plate_detection_speed": "Швидкість виявлення номерних знаків YOLOv9", - "yolov9_plate_detection": "Виявлення пластин YOLOv9" + "yolov9_plate_detection": "Виявлення пластин YOLOv9", + "review_description": "Опис огляду", + "review_description_speed": "Огляд Опис Швидкість", + "review_description_events_per_second": "Опис огляду", + "object_description": "Опис об'єкта", + "object_description_speed": "Опис об'єкта Швидкість", + "object_description_events_per_second": "Опис об'єкта" }, "title": "Збагаченням", - "infPerSecond": "Висновки за секунду" + "infPerSecond": "Висновки за секунду", + "averageInf": "Середній час висновування" }, "general": { "title": "Загальна", @@ -95,6 +102,11 @@ "toast": { "success": "Інформацію про графічний процесор скопійовано в буфер обміну" } + }, + "intelGpuWarning": { + "title": "Попередження щодо статистики графічного процесора Intel", + "message": "Статистика графічного процесора недоступна", + "description": "Це відома помилка в інструментах звітності статистики графічного процесора Intel (intel_gpu_top), яка неодноразово повертає використання графічного процесора на рівні 0%, навіть у випадках, коли апаратне прискорення та виявлення об'єктів працюють належним чином на (i)GPU. Це не помилка Frigate. Ви можете перезавантажити хост, щоб тимчасово виправити проблему та переконатися, що графічний процесор працює правильно. Це не впливає на продуктивність." } }, "otherProcesses": { From 4d6e3a80d9bcd518104599f569b14a2702600194 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:10 +0100 Subject: [PATCH 12/24] Translated using Weblate (Catalan) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (125 of 125 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (108 of 108 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (209 of 209 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (106 of 106 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (598 of 598 strings) Translated using Weblate (Catalan) Currently translated at 97.1% (103 of 106 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (106 of 106 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (598 of 598 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (127 of 127 strings) Co-authored-by: Eduardo Pastor Fernández <123eduardoneko123@gmail.com> Co-authored-by: Gerard Ricart Castells Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ca/ Translation: Frigate NVR/common Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/ca/common.json | 15 +- .../locales/ca/views/classificationModel.json | 42 +++-- web/public/locales/ca/views/events.json | 4 +- web/public/locales/ca/views/explore.json | 11 +- web/public/locales/ca/views/faceLibrary.json | 2 +- web/public/locales/ca/views/live.json | 6 +- web/public/locales/ca/views/settings.json | 160 ++++++++++++++++-- web/public/locales/ca/views/system.json | 18 +- 8 files changed, 217 insertions(+), 41 deletions(-) diff --git a/web/public/locales/ca/common.json b/web/public/locales/ca/common.json index fa5ce3b62..03d217ae0 100644 --- a/web/public/locales/ca/common.json +++ b/web/public/locales/ca/common.json @@ -104,7 +104,8 @@ "anonymous": "Anònim", "logout": "Tanca la sessió", "current": "Usuari actual: {{user}}" - } + }, + "classification": "Classificació" }, "pagination": { "previous": { @@ -197,7 +198,10 @@ "formattedTimestampMonthDayYearHourMinute": { "12hour": "MMM d yyyy, h:mm aaa", "24hour": "MMM d yyyy, HH:mm" - } + }, + "inProgress": "En curs", + "invalidStartTime": "Hora d'inici no vàlida", + "invalidEndTime": "Hora de finalització no vàlida" }, "unit": { "speed": { @@ -221,7 +225,9 @@ "back": "Torna enrere", "hide": "Oculta {{item}}", "show": "Mostra {{item}}", - "ID": "ID" + "ID": "ID", + "none": "Cap", + "all": "Tots" }, "button": { "apply": "Aplicar", @@ -258,7 +264,8 @@ "off": "APAGAT", "unselect": "Desseleccionar", "enable": "Habilitar", - "enabled": "Habilitat" + "enabled": "Habilitat", + "continue": "Continua" }, "toast": { "copyUrlToClipboard": "URL copiada al porta-retalls.", diff --git a/web/public/locales/ca/views/classificationModel.json b/web/public/locales/ca/views/classificationModel.json index b64214a89..09702648f 100644 --- a/web/public/locales/ca/views/classificationModel.json +++ b/web/public/locales/ca/views/classificationModel.json @@ -17,31 +17,40 @@ "categorizedImage": "Imatge classificada amb èxit", "trainedModel": "Model entrenat amb èxit.", "trainingModel": "S'ha iniciat amb èxit la formació de models.", - "deletedModel_one": "S'ha suprimit correctament el model {{count}}", - "deletedModel_many": "S'han suprimit correctament {{count}} models", - "deletedModel_other": "", - "updatedModel": "S'ha actualitzat correctament la configuració del model" + "deletedModel_one": "S'ha suprimit correctament {{count}} model", + "deletedModel_many": "S'han suprimit correctament els {{count}} models", + "deletedModel_other": "S'han suprimit correctament els {{count}} models", + "updatedModel": "S'ha actualitzat correctament la configuració del model", + "renamedCategory": "S'ha canviat el nom de la classe a {{name}}" }, "error": { "deleteImageFailed": "No s'ha pogut suprimir: {{errorMessage}}", "deleteCategoryFailed": "No s'ha pogut suprimir la classe: {{errorMessage}}", "categorizeFailed": "No s'ha pogut categoritzar la imatge: {{errorMessage}}", - "trainingFailed": "No s'ha pogut iniciar l'entrenament del model: {{errorMessage}}", + "trainingFailed": "Ha fallat l'entrenament del model. Comproveu els registres de fragata per a més detalls.", "deleteModelFailed": "No s'ha pogut suprimir el model: {{errorMessage}}", - "updateModelFailed": "No s'ha pogut actualitzar el model: {{errorMessage}}" + "updateModelFailed": "No s'ha pogut actualitzar el model: {{errorMessage}}", + "renameCategoryFailed": "No s'ha pogut canviar el nom de la classe: {{errorMessage}}", + "trainingFailedToStart": "Errar en arrencar l'entrenament del model: {{errorMessage}}" } }, "deleteCategory": { "title": "Suprimeix la classe", - "desc": "Esteu segur que voleu suprimir la classe {{name}}? Això suprimirà permanentment totes les imatges associades i requerirà tornar a entrenar el model." + "desc": "Esteu segur que voleu suprimir la classe {{name}}? Això suprimirà permanentment totes les imatges associades i requerirà tornar a entrenar el model.", + "minClassesTitle": "No es pot suprimir la classe", + "minClassesDesc": "Un model de classificació ha de tenir almenys 2 classes. Afegeix una altra classe abans d'eliminar aquesta." }, "deleteDatasetImages": { "title": "Suprimeix les imatges del conjunt de dades", - "desc": "Esteu segur que voleu suprimir {{count}} imatges de {{dataset}}? Aquesta acció no es pot desfer i requerirà tornar a entrenar el model." + "desc_one": "Esteu segur que voleu suprimir {{count}} imatge de {{dataset}}? Aquesta acció no es pot desfer i requerirà tornar a entrenar el model.", + "desc_many": "Esteu segur que voleu suprimir {{count}} imatges de {{dataset}}? Aquesta acció no es pot desfer i requerirà tornar a entrenar el model.", + "desc_other": "Esteu segur que voleu suprimir {{count}} imatges de {{dataset}}? Aquesta acció no es pot desfer i requerirà tornar a entrenar el model." }, "deleteTrainImages": { "title": "Suprimeix les imatges del tren", - "desc": "Esteu segur que voleu suprimir {{count}} imatges? Aquesta acció no es pot desfer." + "desc_one": "Esteu segur que voleu suprimir {{count}} imatge? Aquesta acció no es pot desfer.", + "desc_many": "Esteu segur que voleu suprimir {{count}} imatges? Aquesta acció no es pot desfer.", + "desc_other": "Esteu segur que voleu suprimir {{count}} imatges? Aquesta acció no es pot desfer." }, "renameCategory": { "title": "Reanomena la classe", @@ -140,13 +149,18 @@ "generationFailed": "Ha fallat la generació. Torneu-ho a provar.", "classifyFailed": "No s'han pogut classificar les imatges: {{error}}" }, - "generateSuccess": "Imatges de mostra generades amb èxit" + "generateSuccess": "Imatges de mostra generades amb èxit", + "allImagesRequired_one": "Classifiqueu totes les imatges. Queda {{count}} imatge.", + "allImagesRequired_many": "Classifiqueu totes les imatges. Queden {{count}} imatges.", + "allImagesRequired_other": "Classifiqueu totes les imatges. Queden {{count}} imatges." } }, "deleteModel": { "title": "Suprimeix el model de classificació", "single": "Esteu segur que voleu suprimir {{name}}? Això suprimirà permanentment totes les dades associades, incloses les imatges i les dades d'entrenament. Aquesta acció no es pot desfer.", - "desc": "Esteu segur que voleu suprimir {{count}} model(s)? Això suprimirà permanentment totes les dades associades, incloses les imatges i les dades d'entrenament. Aquesta acció no es pot desfer." + "desc_one": "Esteu segur que voleu suprimir el model {{count}}? Això suprimirà permanentment totes les dades associades, incloses les imatges i les dades d'entrenament. Aquesta acció no es pot desfer.", + "desc_many": "Esteu segur que voleu suprimir {{count}} models? Això suprimirà permanentment totes les dades associades, incloses les imatges i les dades d'entrenament. Aquesta acció no es pot desfer.", + "desc_other": "Esteu segur que voleu suprimir {{count}} models? Això suprimirà permanentment totes les dades associades, incloses les imatges i les dades d'entrenament. Aquesta acció no es pot desfer." }, "menu": { "objects": "Objectes", @@ -160,5 +174,11 @@ "descriptionState": "Edita les classes per a aquest model de classificació d'estats. Els canvis requeriran tornar a entrenar el model.", "descriptionObject": "Edita el tipus d'objecte i el tipus de classificació per a aquest model de classificació d'objectes.", "stateClassesInfo": "Nota: Canviar les classes d'estat requereix tornar a entrenar el model amb les classes actualitzades." + }, + "tooltip": { + "trainingInProgress": "El model s'està entrenant actualment", + "noNewImages": "Sense noves imatges per entrenar. Classifica més imatges primer.", + "modelNotReady": "El model no está preparat per entrenar", + "noChanges": "No hi ha canvis al conjunt de dades des de l'última formació." } } diff --git a/web/public/locales/ca/views/events.json b/web/public/locales/ca/views/events.json index 2bb9bc0e1..f96b38bb9 100644 --- a/web/public/locales/ca/views/events.json +++ b/web/public/locales/ca/views/events.json @@ -39,9 +39,9 @@ "threateningActivity": "Activitat amenaçadora", "detail": { "noDataFound": "No hi ha dades detallades a revisar", - "trackedObject_one": "objecte", + "trackedObject_one": "{{count}} objecte", "aria": "Canvia la vista de detall", - "trackedObject_other": "objectes", + "trackedObject_other": "{{count}} objectes", "noObjectDetailData": "No hi ha dades de detall d'objecte disponibles.", "label": "Detall", "settings": "Configuració de la vista detallada", diff --git a/web/public/locales/ca/views/explore.json b/web/public/locales/ca/views/explore.json index d45f92665..c4af415d0 100644 --- a/web/public/locales/ca/views/explore.json +++ b/web/public/locales/ca/views/explore.json @@ -85,7 +85,8 @@ "snapshot": "instantània", "video": "vídeo", "object_lifecycle": "cicle de vida de l'objecte", - "thumbnail": "miniatura" + "thumbnail": "miniatura", + "tracking_details": "detalls del seguiment" }, "details": { "timestamp": "Marca temporal", @@ -99,7 +100,7 @@ "updatedSublabel": "Subetiqueta actualitzada amb èxit.", "updatedLPR": "Matrícula actualitzada amb èxit.", "regenerate": "El {{provider}} ha sol·licitat una nova descripció. En funció de la velocitat del vostre proveïdor, la nova descripció pot trigar un temps a regenerar-se.", - "audioTranscription": "Transcripció d'àudio sol·licitada amb èxit." + "audioTranscription": "S'ha sol·licitat correctament la transcripció d'àudio. Depenent de la velocitat del vostre servidor Frigate, la transcripció pot trigar una estona a completar-se." }, "error": { "regenerate": "No s'ha pogut contactar amb {{provider}} per obtenir una nova descripció: {{errorMessage}}", @@ -170,7 +171,9 @@ "success": "L'objectes amb seguiment s'ha suprimit correctament.", "error": "No s'ha pogut suprimir l'objecte rastrejat: {{errorMessage}}" } - } + }, + "nextTrackedObject": "Següent objecte rastrejat", + "previousTrackedObject": "Objecte rastrejat anterior" }, "itemMenu": { "downloadVideo": { @@ -273,7 +276,7 @@ "label": "Òfset d'Anotació", "desc": "Aquestes dades provenen del flux de detecció de la càmera, però se superposen a les imatges del flux de gravació. És poc probable que els dos fluxos estiguin perfectament sincronitzats. Com a resultat, el quadre delimitador i les imatges no s'alinearan perfectament. Tanmateix, es pot utilitzar el camp annotation_offset per ajustar-ho.", "millisecondsToOffset": "Millisegons per l'òfset de detecció d'anotacions per. Per defecte: 0", - "tips": "CONSELL: Imagineu-vos que hi ha un clip d'esdeveniment amb una persona caminant d'esquerra a dreta. Si el quadre delimitador de la cronologia de l'esdeveniment està constantment a l'esquerra de la persona, aleshores s'hauria de disminuir el valor. De la mateixa manera, si una persona camina d'esquerra a dreta i el quadre delimitador està constantment per davant de la persona, aleshores s'hauria d'augmentar el valor.", + "tips": "Reduïu el valor si la reproducció del vídeo es troba per davant dels quadres i els punts de ruta, i augmenteu-lo si es troba per darrere. Aquest valor pot ser negatiu.", "toast": { "success": "L'Òfset d'anotació per a {{camera}} s'ha desat al fitxer de configuració. Reinicieu Frigate per aplicar els canvis." } diff --git a/web/public/locales/ca/views/faceLibrary.json b/web/public/locales/ca/views/faceLibrary.json index f99629bdb..c00be3516 100644 --- a/web/public/locales/ca/views/faceLibrary.json +++ b/web/public/locales/ca/views/faceLibrary.json @@ -67,7 +67,7 @@ "toast": { "success": { "trainedFace": "Rostre entrenat amb èxit.", - "updatedFaceScore": "Puntació de rostre actualitzada amb èxit.", + "updatedFaceScore": "S'ha actualitzat correctament la puntuació de la cara a {{name}} ({{score}}).", "uploadedImage": "Imatge pujada amb èxit.", "addFaceLibrary": "{{name}} s'ha afegit amb èxit a la biblioteca de rostres!", "deletedName_one": "{{count}} rostre s'ha suprimit amb èxit.", diff --git a/web/public/locales/ca/views/live.json b/web/public/locales/ca/views/live.json index f98b33d62..d9245fe7c 100644 --- a/web/public/locales/ca/views/live.json +++ b/web/public/locales/ca/views/live.json @@ -180,6 +180,10 @@ "noCameras": { "title": "No s'ha configurat cap càmera", "description": "Comenceu connectant una càmera a Frigate.", - "buttonText": "Afegeix una càmera" + "buttonText": "Afegeix una càmera", + "restricted": { + "title": "No hi ha càmeres disponibles", + "description": "No teniu permís per veure cap càmera en aquest grup." + } } } diff --git a/web/public/locales/ca/views/settings.json b/web/public/locales/ca/views/settings.json index 36a041510..1c48df354 100644 --- a/web/public/locales/ca/views/settings.json +++ b/web/public/locales/ca/views/settings.json @@ -7,7 +7,7 @@ "authentication": "Configuració d'autenticació - Frigate", "camera": "Paràmetres de càmera - Frigate", "masksAndZones": "Editor de màscares i zones - Frigate", - "general": "Paràmetres Generals - Frigate", + "general": "Configuració de la interfície d'usuari - Fragata", "frigatePlus": "Paràmetres de Frigate+ - Frigate", "notifications": "Paràmetres de notificació - Frigate", "cameraManagement": "Gestionar càmeres - Frigate", @@ -39,7 +39,7 @@ "noCamera": "Cap càmera" }, "general": { - "title": "Paràmetres generals", + "title": "Paràmetres de la interfície d'usuari", "liveDashboard": { "title": "Panell en directe", "automaticLiveView": { @@ -53,6 +53,10 @@ "displayCameraNames": { "label": "Mostra sempre els noms de la càmera", "desc": "Mostra sempre els noms de les càmeres en un xip al tauler de visualització en directe multicàmera." + }, + "liveFallbackTimeout": { + "label": "Temps d'espera per a la reserva del jugador en directe", + "desc": "Quan el flux en viu d'alta qualitat d'una càmera no està disponible, torneu al mode d'amplada de banda baixa després d'aquests molts segons. Per defecte: 3." } }, "storedLayouts": { @@ -858,9 +862,9 @@ "createRole": "Rol {{role}} creat exitosament", "updateCameras": "Càmeres actualitzades per al rol {{role}}", "deleteRole": "Rol {{role}} eliminat exitosament", - "userRolesUpdated_one": "{{count}} usuari(s) asignats a aquest rol s'han actualitzat a 'visor', i tenen accés a totes les càmeres.", - "userRolesUpdated_many": "", - "userRolesUpdated_other": "" + "userRolesUpdated_one": "{{count}} l'usuari assignat a aquest rol s'ha actualitzat a 'visor', que té accés a totes les càmeres.", + "userRolesUpdated_many": "{{count}} usuaris assignats a aquest rol s'han actualitzat a 'visor', que té accés a totes les càmeres.", + "userRolesUpdated_other": "{{count}} usuaris assignats a aquest rol s'han actualitzat a 'visor', que té accés a totes les càmeres." }, "error": { "createRoleFailed": "Error al crear el rol: {{errorMessage}}", @@ -871,16 +875,17 @@ } }, "cameraWizard": { - "title": "Afegir C àmera", + "title": "Afegir Càmera", "description": "Seguiu els passos de sota per afegir una nova càmera a la instal·lació.", "steps": { "nameAndConnection": "Nom i connexió", "streamConfiguration": "Configuració de stream", - "validationAndTesting": "Validació i proves" + "validationAndTesting": "Validació i proves", + "probeOrSnapshot": "Prova o instantània" }, "step1": { "cameraBrand": "Marca de la càmera", - "description": "Introduïu els detalls de la càmera i proveu la connexió.", + "description": "Introduïu els detalls de la càmera i trieu provar la càmera o seleccionar manualment la marca.", "cameraName": "Nom de la càmera", "cameraNamePlaceholder": "p. ex., vista general de la porta davantera o de la barra posterior", "host": "Adreça de l'amfitrió/IP", @@ -919,7 +924,16 @@ "testing": { "probingMetadata": "S'estan provant les metadades de la càmera...", "fetchingSnapshot": "S'està recuperant la instantània de la càmera..." - } + }, + "connectionSettings": "Configuració de la connexió", + "detectionMethod": "Mètode de detecció de flux", + "onvifPort": "ONVIF Port", + "probeMode": "Càmera de prova", + "manualMode": "Selecció manual", + "detectionMethodDescription": "Proveu la càmera amb ONVIF (si és compatible) per trobar URL de flux de càmera, o seleccioneu manualment la marca de càmera per utilitzar URL predefinits. Per a introduir un URL RTSP personalitzat, trieu el mètode manual i seleccioneu \"Altres\".", + "onvifPortDescription": "Per a les càmeres que suporten ONVIF, això sol ser 80 o 8080.", + "useDigestAuth": "Utilitza l'autenticació digest", + "useDigestAuthDescription": "Usa l'autenticació de resum HTTP per a ONVIF. Algunes càmeres poden requerir un nom d'usuari/contrasenya ONVIF dedicat en lloc de l'usuari administrador estàndard." }, "save": { "failure": "SS'ha produït un error en desar {{cameraName}}.", @@ -936,7 +950,7 @@ "testFailed": "Ha fallat la prova de flux: {{error}}" }, "step2": { - "description": "Configura els rols de flux i afegeix fluxos addicionals per a la càmera.", + "description": "Proveu la càmera per als fluxos disponibles o configureu la configuració manual basada en el mètode de detecció seleccionat.", "streamsTitle": "Fluxos de la càmera", "addStream": "Afegeix un flux", "addAnotherStream": "Afegeix un altre flux", @@ -953,8 +967,8 @@ "audio": "Àudio" }, "testStream": "Prova la connexió", - "testSuccess": "Prova de flux amb èxit!", - "testFailed": "Ha fallat la prova del flux", + "testSuccess": "Prova de connexió correcta!", + "testFailed": "Ha fallat la prova de connexió. Si us plau, comproveu la vostra entrada i torneu-ho a provar.", "testFailedTitle": "Ha fallat la prova", "connected": "Connectat", "notConnected": "No connectat", @@ -972,7 +986,39 @@ "description": "Utilitzeu el restreaming go2rtc per reduir les connexions a la càmera." }, "roles": "Rols", - "streamUrlPlaceholder": "rtsp://usuari:contrasenya@host:port/ruta" + "streamUrlPlaceholder": "rtsp://usuari:contrasenya@host:port/ruta", + "streamDetails": "Detalls del flux", + "probing": "Provant càmera...", + "retry": "Intentar de nou", + "testing": { + "probingMetadata": "S'estan provant les metadades de la càmera...", + "fetchingSnapshot": "S'està recuperant la instantània de la càmera..." + }, + "probeFailed": "No s'ha pogut provar la càmera: {{error}}", + "probingDevice": "Provant dispositiu...", + "probeSuccessful": "Prova exitosa", + "probeError": "Error de prova", + "probeNoSuccess": "La prova no ha tingut èxit", + "deviceInfo": "Informació del dispositiu", + "manufacturer": "Fabricant", + "model": "Model", + "firmware": "Firmware", + "profiles": "Perfils", + "ptzSupport": "Suport PTZ", + "autotrackingSupport": "Implementació de seguiment automàtic", + "presets": "Predefinits", + "rtspCandidates": "Candidats RTSP", + "rtspCandidatesDescription": "S'han trobat els següents URL RTSP de la sonda de la càmera. Proveu la connexió per a veure les metadades del flux.", + "noRtspCandidates": "No s'ha trobat cap URL RTSP a la càmera. Les vostres credencials poden ser incorrectes, o la càmera pot no admetre ONVIF o el mètode utilitzat per recuperar els URL RTSP. Torneu enrere i introduïu l'URL RTSP manualment.", + "candidateStreamTitle": "Candidat {{number}}", + "useCandidate": "Utilitza", + "uriCopy": "Copia", + "uriCopied": "URI copiat al porta-retalls", + "testConnection": "Prova la connexió", + "toggleUriView": "Feu clic per a commutar la vista completa de l'URI", + "errors": { + "hostRequired": "Es requereix l'adreça de l'amfitrió/IP" + } }, "step3": { "none": "Cap", @@ -996,7 +1042,7 @@ "resolutionHigh": "Una resolució de {{resolution}} pot causar un ús més gran dels recursos.", "resolutionLow": "Una resolució de {{resolution}} pot ser massa baixa per a la detecció fiable d'objectes petits." }, - "description": "Validació i anàlisi final abans de desar la nova càmera. Connecta cada flux abans de desar-lo.", + "description": "Configura els rols de flux i afegeix fluxos addicionals per a la càmera.", "validationTitle": "Validació del flux", "connectAllStreams": "Connecta tots els fluxos", "reconnectionSuccess": "S'ha reconnectat correctament.", @@ -1016,7 +1062,91 @@ "streamValidated": "El flux {{number}} s'ha validat correctament", "streamValidationFailed": "Ha fallat la validació del flux {{number}}", "ffmpegModule": "Usa el mode de compatibilitat del flux", - "ffmpegModuleDescription": "Si el flux no es carrega després de diversos intents, proveu d'activar-ho. Quan està activat, Frigate utilitzarà el mòdul ffmpeg amb go2rtc. Això pot proporcionar una millor compatibilitat amb alguns fluxos de càmera." + "ffmpegModuleDescription": "Si el flux no es carrega després de diversos intents, proveu d'activar-ho. Quan està activat, Frigate utilitzarà el mòdul ffmpeg amb go2rtc. Això pot proporcionar una millor compatibilitat amb alguns fluxos de càmera.", + "streamsTitle": "Fluxos de la càmera", + "addStream": "Afegeix un flux", + "addAnotherStream": "Afegeix un altre flux", + "streamUrl": "URL del flux", + "streamUrlPlaceholder": "rtsp://usuari:contrasenya@host:port/ruta", + "selectStream": "Selecciona un flux", + "searchCandidates": "Cerca candidats...", + "noStreamFound": "No s'ha trobat cap flux", + "url": "URL", + "resolution": "Resolució", + "selectResolution": "Selecciona la resolució", + "quality": "Qualitat", + "selectQuality": "Selecciona la qualitat", + "roleLabels": { + "detect": "Detecció d'objectes", + "record": "Enregistrament", + "audio": "Àudio" + }, + "testStream": "Prova la connexió", + "testSuccess": "Prova de flux amb èxit!", + "testFailed": "Ha fallat la prova del flux", + "testFailedTitle": "Ha fallat la prova", + "connected": "Connectat", + "notConnected": "No connectat", + "featuresTitle": "Característiques", + "go2rtc": "Redueix les connexions a la càmera", + "detectRoleWarning": "Almenys un flux ha de tenir el rol de \"detecte\" per continuar.", + "rolesPopover": { + "title": "Roles de flux", + "detect": "Canal principal per a la detecció d'objectes.", + "record": "Desa els segments del canal de vídeo basats en la configuració.", + "audio": "Canal per a la detecció basada en àudio." + }, + "featuresPopover": { + "title": "Característiques del flux", + "description": "Utilitzeu el restreaming go2rtc per reduir les connexions a la càmera." + } + }, + "step4": { + "description": "Validació i anàlisi final abans de desar la nova càmera. Connecta cada flux abans de desar-lo.", + "validationTitle": "Validació del flux", + "connectAllStreams": "Connecta tots els fluxos", + "reconnectionSuccess": "S'ha reconnectat correctament.", + "reconnectionPartial": "Alguns fluxos no s'han pogut tornar a connecta.", + "streamUnavailable": "La vista prèvia del flux no està disponible", + "reload": "Torna a carregar", + "connecting": "S'està connectant...", + "streamTitle": "Flux {{number}}", + "valid": "Vàlid", + "failed": "Ha fallat", + "notTested": "No provat", + "connectStream": "Connecta", + "connectingStream": "Connectant", + "disconnectStream": "Desconnecta", + "estimatedBandwidth": "Amplada de banda estimada", + "roles": "Roles", + "ffmpegModule": "Usa el mode de compatibilitat del flux", + "ffmpegModuleDescription": "Si el flux no es carrega després de diversos intents, proveu d'activar-ho. Quan està activat, Frigate utilitzarà el mòdul ffmpeg amb go2rtc. Això pot proporcionar una millor compatibilitat amb alguns fluxos de càmera.", + "none": "Cap", + "error": "Error", + "streamValidated": "El flux {{number}} s'ha validat correctament", + "streamValidationFailed": "Ha fallat la validació del flux {{number}}", + "saveAndApply": "Desa una càmera nova", + "saveError": "Configuració no vàlida. Si us plau, comproveu la configuració.", + "issues": { + "title": "Validació del flux", + "videoCodecGood": "El còdec de vídeo és {{codec}}.", + "audioCodecGood": "El còdec d'àudio és {{codec}}.", + "resolutionHigh": "Una resolució de {{resolution}} pot causar un ús més gran dels recursos.", + "resolutionLow": "Una resolució de {{resolution}} pot ser massa baixa per a la detecció fiable d'objectes petits.", + "noAudioWarning": "No s'ha detectat cap àudio per a aquest flux, els enregistraments no tindran àudio.", + "audioCodecRecordError": "El còdec d'àudio AAC és necessari per a suportar l'àudio en els enregistraments.", + "audioCodecRequired": "Es requereix un flux d'àudio per admetre la detecció d'àudio.", + "restreamingWarning": "Reduir les connexions a la càmera per al flux de registre pot augmentar lleugerament l'ús de la CPU.", + "brands": { + "reolink-rtsp": "No és racomana utilitzar Reolink RSTP. Activeu HTTP a la configuració del microprogramari de la càmera i reinicieu l'assistent." + }, + "dahua": { + "substreamWarning": "El substream 1 està bloquejat a una resolució baixa. Moltes càmeres Dahua / Amcrest / EmpireTech suporten subfluxos addicionals que han d'estar habilitats a la configuració de la càmera. Es recomana comprovar i utilitzar aquests corrents si estan disponibles." + }, + "hikvision": { + "substreamWarning": "El substream 1 està bloquejat a una resolució baixa. Moltes càmeres Hikvision suporten subfluxos addicionals que han d'estar habilitats a la configuració de la càmera. Es recomana comprovar i utilitzar aquests corrents si estan disponibles." + } + } } }, "cameraManagement": { diff --git a/web/public/locales/ca/views/system.json b/web/public/locales/ca/views/system.json index 30f5257d1..f610e6a2a 100644 --- a/web/public/locales/ca/views/system.json +++ b/web/public/locales/ca/views/system.json @@ -76,7 +76,12 @@ } }, "npuUsage": "Ús de NPU", - "npuMemory": "Memòria de NPU" + "npuMemory": "Memòria de NPU", + "intelGpuWarning": { + "title": "Avís d'estadístiques de la GPU d'Intel", + "message": "Estadístiques de GPU no disponibles", + "description": "Aquest és un error conegut en les eines d'informació de les estadístiques de GPU d'Intel (intel.gpu.top) on es trencarà i retornarà repetidament un ús de GPU del 0% fins i tot en els casos en què l'acceleració del maquinari i la detecció d'objectes s'executen correctament a la (i)GPU. Això no és un error de fragata. Podeu reiniciar l'amfitrió per a corregir temporalment el problema i confirmar que la GPU funciona correctament. Això no afecta el rendiment." + } }, "otherProcesses": { "title": "Altres processos", @@ -179,8 +184,15 @@ "plate_recognition_speed": "Velocitat de reconeixement de matrícules", "text_embedding_speed": "Velocitat d'incrustació de text", "yolov9_plate_detection": "Detecció de matrícules YOLOv9", - "yolov9_plate_detection_speed": "Velocitat de detecció de matrícules YOLOv9" + "yolov9_plate_detection_speed": "Velocitat de detecció de matrícules YOLOv9", + "review_description": "Descripció de la revisió", + "review_description_speed": "Velocitat de la descripció de la revisió", + "review_description_events_per_second": "Descripció de la revisió", + "object_description": "Descripció de l'objecte", + "object_description_speed": "Velocitat de la descripció de l'objecte", + "object_description_events_per_second": "Descripció de l'objecte" }, - "infPerSecond": "Inferències per segon" + "infPerSecond": "Inferències per segon", + "averageInf": "Temps mitjà d'inferència" } } From f50941cbb685550cff9de4838465845215247107 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:12 +0100 Subject: [PATCH 13/24] Translated using Weblate (Czech) Currently translated at 14.6% (17 of 116 strings) Translated using Weblate (Czech) Currently translated at 13.7% (16 of 116 strings) Translated using Weblate (Czech) Currently translated at 100.0% (13 of 13 strings) Translated using Weblate (Czech) Currently translated at 63.0% (403 of 639 strings) Translated using Weblate (Czech) Currently translated at 76.9% (30 of 39 strings) Translated using Weblate (Czech) Currently translated at 4.7% (5 of 106 strings) Co-authored-by: Hosted Weblate Co-authored-by: Jakub Sojka Co-authored-by: Martin Janda Co-authored-by: Michal K Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/cs/ Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-settings --- .../locales/cs/views/classificationModel.json | 28 +++++++++++++++++-- web/public/locales/cs/views/events.json | 8 +++++- web/public/locales/cs/views/exports.json | 6 ++++ web/public/locales/cs/views/settings.json | 3 +- 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/web/public/locales/cs/views/classificationModel.json b/web/public/locales/cs/views/classificationModel.json index a8d060290..63613bc74 100644 --- a/web/public/locales/cs/views/classificationModel.json +++ b/web/public/locales/cs/views/classificationModel.json @@ -1,7 +1,31 @@ { "documentTitle": "Klasifikační modely", "button": { - "deleteClassificationAttempts": "Odstranit Klasifikační obrazy", - "renameCategory": "Přejmenovat třídu" + "deleteClassificationAttempts": "Odstrániť Klasifikačné obrazy", + "renameCategory": "Premenovať triedu", + "deleteCategory": "Zmazať triedu", + "deleteImages": "Zmazať obrázok", + "trainModel": "Trenovací model", + "addClassification": "Pridať klasifikáciu", + "deleteModels": "Zmazať modeli", + "editModel": "Upraviť model" + }, + "details": { + "scoreInfo": "Skóre predstavuje priemernú istotu klasifikácie naprieč detekciami tohoto objektu." + }, + "tooltip": { + "trainingInProgress": "Model se práve trénuje", + "noNewImages": "Žiadne nové obrázky na trénovanie. Najskôr klasifikujte viac obrazkov v datasete.", + "noChanges": "Od posledného treningu nedošlo k žiadnym zmenám v datasete.", + "modelNotReady": "Model nieje pripravený na trénovanie." + }, + "toast": { + "success": { + "deletedImage": "Zmazať obrazky", + "deletedModel_one": "Úspešne odstranený {{count}} model", + "deletedModel_few": "Úspešne odstranené {{count}} modely", + "deletedModel_other": "Úspěšne ostranených {{count}} modelov", + "deletedCategory": "Zmazať triedu" + } } } diff --git a/web/public/locales/cs/views/events.json b/web/public/locales/cs/views/events.json index 34a00ce57..db01c10b7 100644 --- a/web/public/locales/cs/views/events.json +++ b/web/public/locales/cs/views/events.json @@ -36,5 +36,11 @@ "selected_one": "{{count}} vybráno", "selected_other": "{{count}} vybráno", "suspiciousActivity": "Podezřelá aktivita", - "threateningActivity": "Ohrožující činnost" + "threateningActivity": "Ohrožující činnost", + "zoomIn": "Přiblížit", + "zoomOut": "Oddálit", + "detail": { + "label": "Detail", + "noDataFound": "Žádná detailní data k prohlédnutí" + } } diff --git a/web/public/locales/cs/views/exports.json b/web/public/locales/cs/views/exports.json index d27bf05e9..5fb25d638 100644 --- a/web/public/locales/cs/views/exports.json +++ b/web/public/locales/cs/views/exports.json @@ -13,5 +13,11 @@ "error": { "renameExportFailed": "Nepodařilo se přejmenovat export: {{errorMessage}}" } + }, + "tooltip": { + "shareExport": "Sdílet export", + "downloadVideo": "Stáhnout video", + "deleteExport": "Smazat export", + "editName": "Upravit jméno" } } diff --git a/web/public/locales/cs/views/settings.json b/web/public/locales/cs/views/settings.json index c0ff72f5f..b5f11c8b4 100644 --- a/web/public/locales/cs/views/settings.json +++ b/web/public/locales/cs/views/settings.json @@ -306,7 +306,8 @@ "notifications": "Notifikace", "frigateplus": "Frigate+", "enrichments": "Obohacení", - "triggers": "Spouštěče" + "triggers": "Spouštěče", + "cameraManagement": "Správa" }, "dialog": { "unsavedChanges": { From 95f151c693e9ce6bcb83212b8f192d5b0780d762 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:13 +0100 Subject: [PATCH 14/24] Translated using Weblate (Croatian) Currently translated at 33.3% (2 of 6 strings) Translated using Weblate (Croatian) Currently translated at 21.1% (11 of 52 strings) Translated using Weblate (Croatian) Currently translated at 2.7% (2 of 72 strings) Co-authored-by: Hosted Weblate Co-authored-by: Josip Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/hr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/hr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/hr/ Translation: Frigate NVR/components-filter Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-recording --- web/public/locales/hr/components/filter.json | 2 +- web/public/locales/hr/views/faceLibrary.json | 23 ++++++++++++++++++++ web/public/locales/hr/views/recording.json | 2 +- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/web/public/locales/hr/components/filter.json b/web/public/locales/hr/components/filter.json index e81df54d8..37845aa99 100644 --- a/web/public/locales/hr/components/filter.json +++ b/web/public/locales/hr/components/filter.json @@ -1,5 +1,5 @@ { - "filter": "Filtar", + "filter": "Filter", "classes": { "label": "Klase" } diff --git a/web/public/locales/hr/views/faceLibrary.json b/web/public/locales/hr/views/faceLibrary.json index 242c150b1..7f5754c9a 100644 --- a/web/public/locales/hr/views/faceLibrary.json +++ b/web/public/locales/hr/views/faceLibrary.json @@ -1,5 +1,28 @@ { "description": { "addFace": "Vodič za dodavanje nove kolekcije u Biblioteku lica." + }, + "steps": { + "faceName": "Unesi Ime Lica", + "uploadFace": "Prenesi Sliku Lica", + "nextSteps": "Sljedeći Koraci", + "description": { + "uploadFace": "Prenesite sliku {{name}} koja prikazuje njezino lice iz prednjeg kuta. Slika ne mora biti obrezana samo na njezino lice." + } + }, + "train": { + "title": "Nedavna Prepoznavanja", + "aria": "Odaberite nedavna prepoznavanja", + "empty": "Nema nedavnih pokušaja prepoznavanja lica" + }, + "deleteFaceLibrary": { + "title": "Izbriši Ime", + "desc": "Jeste li sigurni da želite izbrisati kolekciju {{name}}? Ovim će se trajno izbrisati sva povezana lica." + }, + "deleteFaceAttempts": { + "title": "Izbriši Lica", + "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." } } diff --git a/web/public/locales/hr/views/recording.json b/web/public/locales/hr/views/recording.json index a408537b3..110cf71eb 100644 --- a/web/public/locales/hr/views/recording.json +++ b/web/public/locales/hr/views/recording.json @@ -1,4 +1,4 @@ { - "filter": "Filtar", + "filter": "Filter", "export": "Izvoz" } From 09aa713b76585e125d5dd1fd4146a14859e2a9f4 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:15 +0100 Subject: [PATCH 15/24] Translated using Weblate (Polish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 63.8% (408 of 639 strings) Translated using Weblate (Polish) Currently translated at 30.0% (34 of 113 strings) Translated using Weblate (Polish) Currently translated at 75.5% (96 of 127 strings) Translated using Weblate (Polish) Currently translated at 27.3% (29 of 106 strings) Translated using Weblate (Polish) Currently translated at 68.3% (409 of 598 strings) Translated using Weblate (Polish) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Polish) Currently translated at 98.1% (53 of 54 strings) Translated using Weblate (Polish) Currently translated at 100.0% (13 of 13 strings) Translated using Weblate (Polish) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Polish) Currently translated at 74.8% (95 of 127 strings) Translated using Weblate (Polish) Currently translated at 100.0% (10 of 10 strings) Co-authored-by: Hosted Weblate Co-authored-by: Mateusz Paś Co-authored-by: Wojciech Niziński Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pl/ Translation: Frigate NVR/components-auth Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-settings --- web/public/locales/pl/components/auth.json | 3 +- web/public/locales/pl/components/dialog.json | 2 +- .../locales/pl/views/classificationModel.json | 53 ++++++++++++++++++- web/public/locales/pl/views/events.json | 21 +++++++- web/public/locales/pl/views/explore.json | 11 +++- web/public/locales/pl/views/exports.json | 6 +++ web/public/locales/pl/views/faceLibrary.json | 6 +-- web/public/locales/pl/views/settings.json | 9 ++-- 8 files changed, 100 insertions(+), 11 deletions(-) diff --git a/web/public/locales/pl/components/auth.json b/web/public/locales/pl/components/auth.json index 094e0ca97..12aba0fb6 100644 --- a/web/public/locales/pl/components/auth.json +++ b/web/public/locales/pl/components/auth.json @@ -10,6 +10,7 @@ "unknownError": "Nieznany błąd. Sprawdź logi.", "webUnknownError": "Nieznany błąd. Sprawdź konsolę.", "rateLimit": "Przekroczono limit częstotliwości. Spróbuj ponownie później." - } + }, + "firstTimeLogin": "Próbujesz się zalogować po raz pierwszy? Dane logowania są dostępne w logach Frigate." } } diff --git a/web/public/locales/pl/components/dialog.json b/web/public/locales/pl/components/dialog.json index 73a29704b..fb4341d7f 100644 --- a/web/public/locales/pl/components/dialog.json +++ b/web/public/locales/pl/components/dialog.json @@ -65,7 +65,7 @@ "export": "Eksportuj", "selectOrExport": "Wybierz lub Eksportuj", "toast": { - "success": "Pomyślnie rozpoczęto eksport. Zobacz plik w folderze /exports.", + "success": "Pomyślnie rozpoczęto eksport. Zobacz plik na stronie eksportów.", "error": { "failed": "Nie udało się rozpocząć eksportu: {{error}}", "endTimeMustAfterStartTime": "Czas zakończenia musi być późniejszy niż czas rozpoczęcia", diff --git a/web/public/locales/pl/views/classificationModel.json b/web/public/locales/pl/views/classificationModel.json index faf2aa416..c9befbdc2 100644 --- a/web/public/locales/pl/views/classificationModel.json +++ b/web/public/locales/pl/views/classificationModel.json @@ -2,6 +2,57 @@ "documentTitle": "Modele klasyfikacji", "button": { "deleteClassificationAttempts": "Usuń obrazy klasyfikacyjne", - "renameCategory": "Zmień nazwę klasy" + "renameCategory": "Zmień nazwę klasy", + "deleteCategory": "Usuń klasę", + "deleteImages": "Usuń obrazy", + "trainModel": "Przeszkol model", + "addClassification": "Dodaj klasyfikację", + "deleteModels": "Usuń modele", + "editModel": "Edytuj model" + }, + "details": { + "scoreInfo": "Wynik przedstawia średnią pewność klasyfikacji wszystkich wykryć danego obiektu." + }, + "toast": { + "success": { + "deletedCategory": "Usunięte klasy", + "deletedImage": "Usunięte obrazy", + "deletedModel_one": "Pomyślenie usunięto {{count}} model", + "deletedModel_few": "Pomyślenie usunięto {{count}} modele", + "deletedModel_many": "Pomyślenie usunięto {{count}} modeli", + "categorizedImage": "Obraz pomyślnie sklasyfikowany", + "trainedModel": "Model pomyślnie wytrenowany", + "trainingModel": "Pomyślnie uruchomiono trenowanie modelu.", + "updatedModel": "Pomyślnie zaktualizowane ustawienia modelu", + "renamedCategory": "Pomyślnie zmieniono nazwę klasy na {{name}}" + }, + "error": { + "deleteImageFailed": "Nie udało się usunąć: {{errorMessage}}", + "deleteCategoryFailed": "Nie udało się usunąć klasy: {{errorMessage}}", + "deleteModelFailed": "Nie udało się usunąć modelu: {{errorMessage}}", + "categorizeFailed": "Nie udało się skategoryzować obrazka: {{errorMessage}}", + "trainingFailed": "Trening modelu zakończył się niepowodzeniem. Sprawdź logi Frigate aby uzyskać więcej informacji.", + "updateModelFailed": "Nie udało się zaktualizować modelu: {{errorMessage}}", + "trainingFailedToStart": "Nie udało się rozpocząć trenowania modelu: {{errorMessage}}", + "renameCategoryFailed": "Nie udało się zmienić nazwy klasy: {{errorMessage}}" + } + }, + "deleteCategory": { + "title": "Usuń klasę", + "desc": "Czy na pewno chcesz usunąć klasę {{name}}? Spowoduje to trawałe usunięcie wszystkich powiązanych obrazków i konieczność ponownego trenowania modelu." + }, + "deleteModel": { + "title": "Usuń model klasyfikacji", + "single": "Czy na pewno chcesz usunąć {{name}}? Spowoduje to trwałe usunięcie wszystkich powiązanych data włącznie z obrazkami i danymi treningowymi. Nie można cofnąć tej operacji.", + "desc_one": "Czy na pewno chcesz usunąć {{count}} model? Spowoduje to trwałe usunięcie wszystkich powiązanych danych, włącznie z obrazami i danymi treningowymi. Nie można cofnąć tej operacji.", + "desc_few": "Czy na pewno chcesz usunąć {{count}} modele? Spowoduje to trwałe usunięcie wszystkich powiązanych danych, włącznie z obrazami i danymi treningowymi. Nie można cofnąć tej operacji.", + "desc_many": "Czy na pewno chcesz usunąć {{count}} modeli? Spowoduje to trwałe usunięcie wszystkich powiązanych danych, włącznie z obrazami i danymi treningowymi. Nie można cofnąć tej operacji." + }, + "edit": { + "title": "Edytuj model klasyfikacji" + }, + "tooltip": { + "trainingInProgress": "Trwa trenowanie modelu", + "modelNotReady": "Mode nie jest gotowy do trenowania" } } diff --git a/web/public/locales/pl/views/events.json b/web/public/locales/pl/views/events.json index 173ff277e..92adee328 100644 --- a/web/public/locales/pl/views/events.json +++ b/web/public/locales/pl/views/events.json @@ -36,5 +36,24 @@ "selected_other": "{{count}} wybrane", "detected": "wykryto", "suspiciousActivity": "Podejrzana aktywność", - "threateningActivity": "Niebezpieczne działania" + "threateningActivity": "Niebezpieczne działania", + "zoomIn": "Przybliż", + "zoomOut": "Oddal", + "detail": { + "label": "Szczegóły", + "noDataFound": "Brak szczegółów do przejrzenia", + "aria": "Przełącz widok szczegółów", + "trackedObject_one": "obiekt", + "trackedObject_other": "obiekty", + "noObjectDetailData": "Brak danych szczegółowych dla obiektu.", + "settings": "Ustawienia widoku szczegółów", + "alwaysExpandActive": { + "title": "Zawsze rozwiń aktywne", + "desc": "Zawsze rozwijaj szczegóły aktywnego obiektu, jeżeli są dostępne." + } + }, + "objectTrack": { + "trackedPoint": "Śledzony punkt", + "clickToSeek": "Kliknij aby przewinąć do tego miejsca" + } } diff --git a/web/public/locales/pl/views/explore.json b/web/public/locales/pl/views/explore.json index f96fba057..e5fcae355 100644 --- a/web/public/locales/pl/views/explore.json +++ b/web/public/locales/pl/views/explore.json @@ -159,7 +159,8 @@ "details": "szczegóły", "snapshot": "zrzut ekranu", "video": "wideo", - "object_lifecycle": "cykl życia obiektu" + "object_lifecycle": "cykl życia obiektu", + "thumbnail": "miniaturka" }, "itemMenu": { "downloadSnapshot": { @@ -224,5 +225,13 @@ }, "concerns": { "label": "Obawy" + }, + "trackingDetails": { + "title": "Szczegóły śledzenia", + "noImageFound": "Nie znaleziono obrazka dla podanego czasu.", + "createObjectMask": "Utwórz maskę obiektu", + "adjustAnnotationSettings": "Dostosuj ustawienia adnotacji", + "scrollViewTips": "Kliknij, aby zobaczyć najważniejsze momenty cyklu życia tego obiektu.", + "count": "{{first}} z {{second}}" } } diff --git a/web/public/locales/pl/views/exports.json b/web/public/locales/pl/views/exports.json index 954849a1a..b0d41bbc3 100644 --- a/web/public/locales/pl/views/exports.json +++ b/web/public/locales/pl/views/exports.json @@ -13,5 +13,11 @@ "error": { "renameExportFailed": "Nie udało się zmienić nazwy eksportu: {{errorMessage}}" } + }, + "tooltip": { + "shareExport": "Udostępnij eksport", + "downloadVideo": "Pobierz wideo", + "editName": "Edytuj nazwę", + "deleteExport": "Usuń eksport" } } diff --git a/web/public/locales/pl/views/faceLibrary.json b/web/public/locales/pl/views/faceLibrary.json index be17253a0..ec13f5f11 100644 --- a/web/public/locales/pl/views/faceLibrary.json +++ b/web/public/locales/pl/views/faceLibrary.json @@ -24,11 +24,11 @@ "title": "Utwórz kolekcję", "desc": "Utwórz nową kolekcję", "new": "Utwórz nową twarz", - "nextSteps": "Aby zbudować solidną podstawę:
  • Użyj zakładki Trenuj, aby wybrać i trenować na obrazach dla każdej wykrytej osoby.
  • Skup się na zdjęciach twarzy na wprost dla najlepszych wyników; unikaj trenowania na zdjęciach, które pokazują twarze pod kątem.
  • " + "nextSteps": "Aby zbudować solidną podstawę:
  • Użyj zakładki Ostatnie rozpoznania, aby wybrać i trenować na obrazach dla każdej wykrytej osoby.
  • Skup się na zdjęciach twarzy na wprost dla najlepszych wyników; unikaj trenowania na zdjęciach, które pokazują twarze pod kątem.
  • " }, "train": { - "aria": "Wybierz trenowanie", - "title": "Trenuj", + "aria": "Wybierz ostatnio rozpoznane", + "title": "Ostatnie rozpoznania", "empty": "Nie podjęto ostatnio żadnych prób rozpoznawania twarzy" }, "selectFace": "Wybierz twarz", diff --git a/web/public/locales/pl/views/settings.json b/web/public/locales/pl/views/settings.json index 0291f39c5..7f2cfee18 100644 --- a/web/public/locales/pl/views/settings.json +++ b/web/public/locales/pl/views/settings.json @@ -11,7 +11,9 @@ "debug": "Debugowanie", "enrichments": "Wzbogacenia", "triggers": "Wyzwalacze", - "roles": "Role" + "roles": "Role", + "cameraManagement": "Zarządzanie", + "cameraReview": "Przejrzyj" }, "dialog": { "unsavedChanges": { @@ -79,13 +81,14 @@ "masksAndZones": "Edytor Masek i Stref - Frigate", "frigatePlus": "Ustawienia Frigate+ - Frigate", "classification": "Ustawienia Klasyfikacji - Frigate", - "general": "Ustawienia Ogólne - Frigate", + "general": "Ustawienia Interfejsu - Frigate", "authentication": "Ustawienia Uwierzytelniania - Frigate", "motionTuner": "Konfigurator Ruchu - Frigate", "object": "Debug - Frigate", "notifications": "Ustawienia powiadomień - Frigate", "enrichments": "Ustawienia wzbogacania - Frigate", - "cameraManagement": "Zarządzanie kamerami – Frigate" + "cameraManagement": "Zarządzanie kamerami – Frigate", + "cameraReview": "Ustawienia przeglądu kamer - Frigate" }, "classification": { "title": "Ustawienia Klasyfikacji", From 31b492dbc4a802a238330f7f4f2ac70841e2010b Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:17 +0100 Subject: [PATCH 16/24] Translated using Weblate (Italian) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Italian) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Italian) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Italian) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Italian) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Italian) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Italian) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Italian) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Italian) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Italian) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Italian) Currently translated at 100.0% (501 of 501 strings) Co-authored-by: Gringo Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/it/ Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/it/audio.json | 2 +- web/public/locales/it/common.json | 15 +- web/public/locales/it/components/dialog.json | 2 +- .../locales/it/views/classificationModel.json | 36 +++- web/public/locales/it/views/events.json | 4 +- web/public/locales/it/views/explore.json | 9 +- web/public/locales/it/views/faceLibrary.json | 2 +- web/public/locales/it/views/live.json | 6 +- web/public/locales/it/views/settings.json | 158 ++++++++++++++++-- web/public/locales/it/views/system.json | 22 ++- 10 files changed, 216 insertions(+), 40 deletions(-) diff --git a/web/public/locales/it/audio.json b/web/public/locales/it/audio.json index caf48582b..17ca12ce1 100644 --- a/web/public/locales/it/audio.json +++ b/web/public/locales/it/audio.json @@ -399,7 +399,7 @@ "mechanical_fan": "Ventilatore meccanico", "air_conditioning": "Aria condizionata", "cash_register": "Registratore di cassa", - "single-lens_reflex_camera": "Fotocamera reflex a obiettivo singolo", + "single-lens_reflex_camera": "Telecamera reflex a obiettivo singolo", "tools": "Utensili", "jackhammer": "Martello pneumatico", "sawing": "Segare", diff --git a/web/public/locales/it/common.json b/web/public/locales/it/common.json index 48c37740c..7fc7fc2bf 100644 --- a/web/public/locales/it/common.json +++ b/web/public/locales/it/common.json @@ -87,7 +87,10 @@ "formattedTimestampMonthDayYear": { "12hour": "d MMM, yyyy", "24hour": "d MMM, yyyy" - } + }, + "inProgress": "In corso", + "invalidStartTime": "Ora di inizio non valida", + "invalidEndTime": "Ora di fine non valida" }, "button": { "cancel": "Annulla", @@ -124,7 +127,8 @@ "back": "Indietro", "pictureInPicture": "Immagine nell'immagine", "twoWayTalk": "Comunicazione bidirezionale", - "cameraAudio": "Audio della telecamera" + "cameraAudio": "Audio della telecamera", + "continue": "Continua" }, "unit": { "speed": { @@ -148,7 +152,9 @@ "back": "Vai indietro", "hide": "Nascondi {{item}}", "show": "Mostra {{item}}", - "ID": "ID" + "ID": "ID", + "none": "Nessuna", + "all": "Tutte" }, "menu": { "configuration": "Configurazione", @@ -250,7 +256,8 @@ "setPassword": "Imposta password" }, "withSystem": "Sistema", - "faceLibrary": "Raccolta volti" + "faceLibrary": "Raccolta volti", + "classification": "Classificazione" }, "pagination": { "next": { diff --git a/web/public/locales/it/components/dialog.json b/web/public/locales/it/components/dialog.json index 0f69e7213..1ed986dd7 100644 --- a/web/public/locales/it/components/dialog.json +++ b/web/public/locales/it/components/dialog.json @@ -129,7 +129,7 @@ "search": { "placeholder": "Cerca per etichetta o sottoetichetta..." }, - "noImages": "Nessuna miniatura trovata per questa fotocamera", + "noImages": "Nessuna miniatura trovata per questa telecamera", "unknownLabel": "Immagine di attivazione salvata" } } diff --git a/web/public/locales/it/views/classificationModel.json b/web/public/locales/it/views/classificationModel.json index 343cc3602..a07abfd87 100644 --- a/web/public/locales/it/views/classificationModel.json +++ b/web/public/locales/it/views/classificationModel.json @@ -20,28 +20,37 @@ "deletedModel_one": "Eliminato con successo {{count}} modello", "deletedModel_many": "Eliminati con successo {{count}} modelli", "deletedModel_other": "Eliminati con successo {{count}} modelli", - "updatedModel": "Configurazione del modello aggiornata correttamente" + "updatedModel": "Configurazione del modello aggiornata correttamente", + "renamedCategory": "Classe rinominata correttamente in {{name}}" }, "error": { "deleteImageFailed": "Impossibile eliminare: {{errorMessage}}", "deleteCategoryFailed": "Impossibile eliminare la classe: {{errorMessage}}", "categorizeFailed": "Impossibile categorizzare l'immagine: {{errorMessage}}", - "trainingFailed": "Impossibile avviare l'addestramento del modello: {{errorMessage}}", + "trainingFailed": "Addestramento del modello fallito. Controlla i registri di Frigate per i dettagli.", "deleteModelFailed": "Impossibile eliminare il modello: {{errorMessage}}", - "updateModelFailed": "Impossibile aggiornare il modello: {{errorMessage}}" + "updateModelFailed": "Impossibile aggiornare il modello: {{errorMessage}}", + "trainingFailedToStart": "Impossibile avviare l'addestramento del modello: {{errorMessage}}", + "renameCategoryFailed": "Impossibile rinominare la classe: {{errorMessage}}" } }, "deleteCategory": { "title": "Elimina classe", - "desc": "Vuoi davvero eliminare la classe {{name}}? Questa operazione eliminerà definitivamente tutte le immagini associate e richiederà un nuovo addestramento del modello." + "desc": "Vuoi davvero eliminare la classe {{name}}? Questa operazione eliminerà definitivamente tutte le immagini associate e richiederà un nuovo addestramento del modello.", + "minClassesTitle": "Impossibile eliminare la classe", + "minClassesDesc": "Un modello di classificazione deve avere almeno 2 classi. Aggiungi un'altra classe prima di eliminare questa." }, "deleteDatasetImages": { "title": "Elimina immagini della base dati", - "desc": "Vuoi davvero eliminare {{count}} immagini da {{dataset}}? Questa azione non può essere annullata e richiederà un nuovo addestramento del modello." + "desc_one": "Vuoi davvero eliminare {{count}} immagine da {{dataset}}? Questa azione non può essere annullata e richiederà un nuovo addestramento del modello.", + "desc_many": "Vuoi davvero eliminare {{count}} immagini da {{dataset}}? Questa azione non può essere annullata e richiederà un nuovo addestramento del modello.", + "desc_other": "Vuoi davvero eliminare {{count}} immagini da {{dataset}}? Questa azione non può essere annullata e richiederà un nuovo addestramento del modello." }, "deleteTrainImages": { "title": "Elimina le immagini di addestramento", - "desc": "Vuoi davvero eliminare {{count}} immagini? Questa azione non può essere annullata." + "desc_one": "Vuoi davvero eliminare {{count}} immagine? Questa azione non può essere annullata.", + "desc_many": "Vuoi davvero eliminare {{count}} immagini? Questa azione non può essere annullata.", + "desc_other": "Vuoi davvero eliminare {{count}} immagini? Questa azione non può essere annullata." }, "renameCategory": { "title": "Rinomina classe", @@ -140,13 +149,18 @@ "generationFailed": "Generazione fallita. Per favore riprova.", "classifyFailed": "Impossibile classificare le immagini: {{error}}" }, - "generateSuccess": "Immagini campione generate correttamente" + "generateSuccess": "Immagini campione generate correttamente", + "allImagesRequired_one": "Classifica tutte le immagini. Rimane {{count}} immagine.", + "allImagesRequired_many": "Classifica tutte le immagini. Rimangono {{count}} immagini.", + "allImagesRequired_other": "Classifica tutte le immagini. Rimangono {{count}} immagini." } }, "deleteModel": { "title": "Elimina modello di classificazione", "single": "Vuoi davvero eliminare {{name}}? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di allenamento. Questa azione non può essere annullata.", - "desc": "Vuoi davvero eliminare {{count}} modello/i? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di addestramento. Questa azione non può essere annullata." + "desc_one": "Vuoi davvero eliminare {{count}} modello? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di addestramento. Questa azione non può essere annullata.", + "desc_many": "Vuoi davvero eliminare {{count}} modelli? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di addestramento. Questa azione non può essere annullata.", + "desc_other": "Vuoi davvero eliminare {{count}} modelli? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di addestramento. Questa azione non può essere annullata." }, "menu": { "objects": "Oggetti", @@ -160,5 +174,11 @@ "descriptionState": "Modifica le classi per questo modello di classificazione dello stato. Le modifiche richiederanno un nuovo addestramento del modello.", "descriptionObject": "Modifica il tipo di oggetto e il tipo di classificazione per questo modello di classificazione degli oggetti.", "stateClassesInfo": "Nota: la modifica delle classi di stato richiede il riaddestramento del modello con le classi aggiornate." + }, + "tooltip": { + "trainingInProgress": "Il modello è attualmente in addestramento", + "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." } } diff --git a/web/public/locales/it/views/events.json b/web/public/locales/it/views/events.json index c5c90509f..62a93e9b4 100644 --- a/web/public/locales/it/views/events.json +++ b/web/public/locales/it/views/events.json @@ -41,8 +41,8 @@ "detail": { "noDataFound": "Nessun dato dettagliato da rivedere", "aria": "Attiva/disattiva la visualizzazione dettagliata", - "trackedObject_one": "oggetto", - "trackedObject_other": "oggetti", + "trackedObject_one": "{{count}} oggetto", + "trackedObject_other": "{{count}} oggetti", "noObjectDetailData": "Non sono disponibili dati dettagliati sull'oggetto.", "label": "Dettaglio", "settings": "Impostazioni di visualizzazione dettagliata", diff --git a/web/public/locales/it/views/explore.json b/web/public/locales/it/views/explore.json index cbe20ab4f..1a02245f5 100644 --- a/web/public/locales/it/views/explore.json +++ b/web/public/locales/it/views/explore.json @@ -159,7 +159,8 @@ "object_lifecycle": "ciclo di vita dell'oggetto", "details": "dettagli", "video": "video", - "thumbnail": "miniatura" + "thumbnail": "miniatura", + "tracking_details": "dettagli di tracciamento" }, "itemMenu": { "downloadSnapshot": { @@ -222,7 +223,9 @@ "success": "Oggetto tracciato eliminato correttamente." } }, - "tooltip": "Corrispondenza {{type}} al {{confidence}}%" + "tooltip": "Corrispondenza {{type}} al {{confidence}}%", + "previousTrackedObject": "Oggetto tracciato in precedenza", + "nextTrackedObject": "Prossimo oggetto tracciato" }, "trackedObjectsCount_one": "{{count}} oggetto tracciato ", "trackedObjectsCount_many": "{{count}} oggetti tracciati ", @@ -273,7 +276,7 @@ "label": "Differenza annotazione", "desc": "Questi dati provengono dal flusso di rilevamento della telecamera, ma vengono sovrapposti alle immagini del flusso di registrazione. È improbabile che i due flussi siano perfettamente sincronizzati. Di conseguenza, il riquadro di delimitazione e il filmato non saranno perfettamente allineati. È possibile utilizzare questa impostazione per spostare le annotazioni in avanti o indietro nel tempo per allinearle meglio al filmato registrato.", "millisecondsToOffset": "Millisecondi per compensare il rilevamento delle annotazioni. Predefinito: 0", - "tips": "SUGGERIMENTO: Immagina un video evento con una persona che cammina da sinistra a destra. Se il riquadro di delimitazione della cronologia dell'evento si trova costantemente a sinistra della persona, il valore dovrebbe essere diminuito. Allo stesso modo, se una persona cammina da sinistra a destra e il riquadro di delimitazione si trova costantemente davanti alla persona, il valore dovrebbe essere aumentato.", + "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." } diff --git a/web/public/locales/it/views/faceLibrary.json b/web/public/locales/it/views/faceLibrary.json index 040d28680..ad47e7bc0 100644 --- a/web/public/locales/it/views/faceLibrary.json +++ b/web/public/locales/it/views/faceLibrary.json @@ -38,7 +38,7 @@ "deletedFace_one": "Eliminato con successo {{count}} volto.", "deletedFace_many": "Eliminati con successo {{count}} volti.", "deletedFace_other": "Eliminati con successo {{count}} volti.", - "updatedFaceScore": "Punteggio del volto aggiornato con successo.", + "updatedFaceScore": "Punteggio del volto aggiornato con successo a {{name}} ({{score}}).", "uploadedImage": "Immagine caricata correttamente.", "addFaceLibrary": "{{name}} è stato aggiunto con successo alla Libreria dei Volti!", "renamedFace": "Rinominato correttamente il volto in {{name}}" diff --git a/web/public/locales/it/views/live.json b/web/public/locales/it/views/live.json index 774c151e8..c32113e66 100644 --- a/web/public/locales/it/views/live.json +++ b/web/public/locales/it/views/live.json @@ -174,7 +174,11 @@ "noCameras": { "buttonText": "Aggiungi telecamera", "title": "Nessuna telecamera configurata", - "description": "Per iniziare, collega una telecamera a Frigate." + "description": "Per iniziare, collega una telecamera a Frigate.", + "restricted": { + "title": "Nessuna telecamera disponibile", + "description": "Non hai l'autorizzazione per visualizzare alcuna telecamera in questo gruppo." + } }, "snapshot": { "takeSnapshot": "Scarica l'istantanea attuale", diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json index 5f20486ff..afaf31078 100644 --- a/web/public/locales/it/views/settings.json +++ b/web/public/locales/it/views/settings.json @@ -7,7 +7,7 @@ "masksAndZones": "Editor di maschere e zone - Frigate", "motionTuner": "Regolatore di movimento - Frigate", "object": "Correzioni - Frigate", - "general": "Impostazioni generali - Frigate", + "general": "Impostazioni interfaccia - Frigate", "frigatePlus": "Impostazioni Frigate+ - Frigate", "notifications": "Impostazioni di notifiche - Frigate", "enrichments": "Impostazioni di miglioramento - Frigate", @@ -498,9 +498,13 @@ "displayCameraNames": { "label": "Mostra sempre i nomi delle telecamere", "desc": "Mostra sempre i nomi delle telecamere in una scheda nel cruscotto della visualizzazione dal vivo multi telecamera." + }, + "liveFallbackTimeout": { + "label": "Scadenza attesa lettore dal vivo", + "desc": "Quando la trasmissione dal vivo ad alta qualità di una telecamera non è disponibile, dopo questo numero di secondi torna alla modalità a bassa larghezza di banda. Valore predefinito: 3." } }, - "title": "Impostazioni generali", + "title": "Impostazioni interfaccia", "storedLayouts": { "title": "Formati memorizzati", "desc": "La disposizione delle telecamere in un gruppo può essere trascinata/ridimensionata. Le posizioni vengono salvate nella memoria locale del browser.", @@ -892,9 +896,9 @@ "createRole": "Ruolo {{role}} creato con successo", "updateCameras": "Telecamere aggiornate per il ruolo {{role}}", "deleteRole": "Ruolo {{role}} eliminato con successo", - "userRolesUpdated_one": "{{count}} utenti assegnati a questo ruolo sono stati aggiornati a \"spettatore\", che ha accesso a tutte le telecamere.", - "userRolesUpdated_many": "", - "userRolesUpdated_other": "" + "userRolesUpdated_one": "{{count}} utente assegnato a questo ruolo è stato aggiornato a \"spettatore\", che ha accesso a tutte le telecamere.", + "userRolesUpdated_many": "{{count}} utenti assegnati a questo ruolo sono stati aggiornati a \"spettatore\", che ha accesso a tutte le telecamere.", + "userRolesUpdated_other": "{{count}} utenti assegnati a questo ruolo sono stati aggiornati a \"spettatore\", che ha accesso a tutte le telecamere." }, "error": { "createRoleFailed": "Impossibile creare il ruolo: {{errorMessage}}", @@ -975,7 +979,7 @@ "cameraWizard": { "step3": { "streamUnavailable": "Anteprima trasmissione non disponibile", - "description": "Convalida e analisi finale prima di salvare la nuova telecamera. Connetti ogni flusso prima di salvare.", + "description": "Configura i ruoli del flusso e aggiungi altri flussi alla tua telecamera.", "validationTitle": "Convalida del flusso", "connectAllStreams": "Connetti tutti i flussi", "reconnectionSuccess": "Riconnessione riuscita.", @@ -1015,14 +1019,52 @@ "resolutionLow": "Una risoluzione di {{resolution}} potrebbe essere troppo bassa per un rilevamento affidabile di oggetti di piccole dimensioni." }, "ffmpegModule": "Utilizza la modalità di compatibilità della trasmissione", - "ffmpegModuleDescription": "Se il flusso non si carica dopo diversi tentativi, prova ad abilitare questa opzione. Se abilitata, Frigate utilizzerà il modulo ffmpeg con go2rtc. Questo potrebbe garantire una migliore compatibilità con alcuni flussi di telecamere." + "ffmpegModuleDescription": "Se il flusso non si carica dopo diversi tentativi, prova ad abilitare questa opzione. Se abilitata, Frigate utilizzerà il modulo ffmpeg con go2rtc. Questo potrebbe garantire una migliore compatibilità con alcuni flussi di telecamere.", + "streamsTitle": "Flussi della telecamera", + "addStream": "Aggiungi flusso", + "addAnotherStream": "Aggiungi un altro flusso", + "streamUrl": "URL del flusso", + "streamUrlPlaceholder": "rtsp://nomeutente:password@sistema:porta/percorso", + "selectStream": "Seleziona un flusso", + "searchCandidates": "Ricerca candidati in corso...", + "noStreamFound": "Nessun flusso trovato", + "url": "URL", + "resolution": "Risoluzione", + "selectResolution": "Seleziona la risoluzione", + "quality": "Qualità", + "selectQuality": "Seleziona la qualità", + "roleLabels": { + "detect": "Rilevamento di oggetti", + "record": "Registrazione", + "audio": "Audio" + }, + "testStream": "Prova di connessione", + "testSuccess": "Prova del flusso riuscita!", + "testFailed": "Prova del flusso fallita", + "testFailedTitle": "Prova fallita", + "connected": "Connesso", + "notConnected": "Non connesso", + "featuresTitle": "Caratteristiche", + "go2rtc": "Riduci le connessioni alla telecamera", + "detectRoleWarning": "Per procedere, almeno un flusso deve avere il ruolo \"rilevamento\".", + "rolesPopover": { + "title": "Ruoli del flusso", + "detect": "Flusso principale per il rilevamento degli oggetti.", + "record": "Salva segmenti del flusso video in base alle impostazioni di configurazione.", + "audio": "Flusso per il rilevamento basato sull'audio." + }, + "featuresPopover": { + "title": "Caratteristiche del flusso", + "description": "Utilizza la ritrasmissione go2rtc per ridurre le connessioni alla tua telecamera." + } }, "title": "Aggiungi telecamera", "description": "Per aggiungere una nuova telecamera alla tua installazione Frigate, segui i passaggi indicati di seguito.", "steps": { "nameAndConnection": "Nome e connessione", "streamConfiguration": "Configurazione flusso", - "validationAndTesting": "Validazione e prova" + "validationAndTesting": "Validazione e prova", + "probeOrSnapshot": "Analisi o istantanea" }, "save": { "success": "Nuova telecamera {{cameraName}} salvata correttamente.", @@ -1035,11 +1077,11 @@ "fps": "FPS" }, "commonErrors": { - "noUrl": "Si prega di fornire un URL di flusso valido", + "noUrl": "Fornisci un URL di flusso valido", "testFailed": "Prova del flusso fallita: {{error}}" }, "step1": { - "description": "Inserisci i dettagli della tua telecamera e verifica la connessione.", + "description": "Inserisci i dettagli della tua telecamera e scegli se analizzarla o selezionarne manualmente la marca.", "cameraName": "Nome telecamera", "cameraNamePlaceholder": "ad esempio, porta_anteriore o Panoramica cortile", "host": "Indirizzo sistema/IP", @@ -1079,10 +1121,19 @@ "testing": { "probingMetadata": "Analisi dei metadati della telecamera in corso...", "fetchingSnapshot": "Recupero istantanea della telecamera in corso..." - } + }, + "probeMode": "Analisi telecamera", + "detectionMethodDescription": "Analizza la telecamera con ONVIF (se supportato) per trovare gli URL dei flussi video della telecamera oppure seleziona manualmente la marca della telecamera per utilizzare URL predefiniti. Per inserire un URL RTSP personalizzato, scegli il metodo manuale e seleziona \"Altro\".", + "connectionSettings": "Impostazioni di connessione", + "detectionMethod": "Metodo di rilevamento del flusso", + "onvifPort": "Porta ONVIF", + "manualMode": "Selezione manuale", + "onvifPortDescription": "Per le telecamere che supportano ONVIF, in genere è 80 o 8080.", + "useDigestAuth": "Utilizza l'autenticazione digest", + "useDigestAuthDescription": "Utilizza l'autenticazione HTTP digest per ONVIF. Alcune telecamere potrebbero richiedere un nome utente e una password ONVIF dedicati, anziché l'utente amministratore classico." }, "step2": { - "description": "Configura i ruoli del flusso e aggiungi altri flussi per la tua telecamera.", + "description": "Analizza la telecamera per individuare i flussi disponibili oppure configura le impostazioni manuali in base al metodo di rilevamento selezionato.", "streamsTitle": "Flussi della telecamera", "addStream": "Aggiungi flusso", "addAnotherStream": "Aggiungi un altro flusso", @@ -1101,8 +1152,8 @@ "audio": "Audio" }, "testStream": "Prova connessione", - "testSuccess": "Prova del flusso riuscita!", - "testFailed": "Prova del flusso fallita", + "testSuccess": "Prova di connessione riuscita!", + "testFailed": "Prova di connessione fallita. Controlla i dati inseriti e riprova.", "testFailedTitle": "Prova fallita", "connected": "Connessa", "notConnected": "Non connessa", @@ -1118,6 +1169,85 @@ "featuresPopover": { "title": "Caratteristiche del flusso", "description": "Utilizza la ritrasmissione go2rtc per ridurre le connessioni alla tua telecamera." + }, + "probeFailed": "Impossibile analizzare la telecamera: {{error}}", + "probeSuccessful": "Analisi riuscita", + "probeError": "Errore analisi", + "probeNoSuccess": "Analisi non riuscita", + "rtspCandidatesDescription": "I seguenti URL RTSP sono stati trovati dall'analisi della telecamera. Prova la connessione per visualizzare i metadati della trasmissione.", + "streamDetails": "Dettagli del flusso", + "probing": "Analisi telecamera in corso...", + "retry": "Riprova", + "testing": { + "probingMetadata": "Analisi dei metadati della telecamera in corso...", + "fetchingSnapshot": "Recupero dell'istantanea della telecamera in corso..." + }, + "probingDevice": "Analisi del dispositivo in corso...", + "deviceInfo": "Informazioni sul dispositivo", + "manufacturer": "Produttore", + "model": "Modello", + "firmware": "Firmware", + "profiles": "Profili", + "ptzSupport": "Supporto PTZ", + "autotrackingSupport": "Supporto per il tracciamento automatico", + "presets": "Preimpostazioni", + "rtspCandidates": "Candidati RTSP", + "noRtspCandidates": "Nessun URL RTSP trovato dalla telecamera. Le credenziali potrebbero essere errate oppure la telecamera potrebbe non supportare ONVIF o il metodo utilizzato per recuperare gli URL RTSP. Torna indietro e inserisci manualmente l'URL RTSP.", + "candidateStreamTitle": "Candidato {{number}}}}", + "useCandidate": "Utilizza", + "uriCopy": "Copia", + "uriCopied": "URI copiato negli appunti", + "testConnection": "Prova di connessione", + "toggleUriView": "Fai clic per attivare/disattivare la visualizzazione completa dell'URI", + "errors": { + "hostRequired": "È richiesto il nome sistema/indirizzo IP" + } + }, + "step4": { + "description": "Convalida e analisi finale prima di salvare la nuova telecamera. Collega ogni flusso prima di salvare.", + "validationTitle": "Validazione del flusso", + "connectAllStreams": "Connetti tutti i flussi", + "reconnectionSuccess": "Riconnessione riuscita.", + "reconnectionPartial": "Alcuni flussi non sono riusciti a riconnettersi.", + "streamUnavailable": "Anteprima del flusso non disponibile", + "reload": "Ricarica", + "connecting": "Connessione in corso...", + "streamTitle": "Flusso {{number}}", + "valid": "Valida", + "failed": "Fallito", + "notTested": "Non verificato", + "connectStream": "Connetti", + "connectingStream": "Connessione in corso", + "disconnectStream": "Disconnetti", + "estimatedBandwidth": "Larghezza di banda stimata", + "roles": "Ruoli", + "ffmpegModule": "Utilizza la modalità di compatibilità del flusso", + "ffmpegModuleDescription": "Se il flusso non si carica dopo diversi tentativi, prova ad abilitare questa opzione. Se abilitata, Frigate utilizzerà il modulo ffmpeg con go2rtc. Questo potrebbe garantire una migliore compatibilità con alcuni flussi di telecamere.", + "none": "Nessuno", + "error": "Errore", + "streamValidated": "Flusso {{number}} convalidato con successo", + "streamValidationFailed": "Convalida del flusso {{number}} non riuscita", + "saveAndApply": "Salva nuova telecamera", + "saveError": "Configurazione non valida. Controlla le impostazioni.", + "issues": { + "title": "Validazione del flusso", + "videoCodecGood": "Il codec video è {{codec}}.", + "audioCodecGood": "Il codec audio è {{codec}}.", + "resolutionHigh": "Una risoluzione di {{resolution}} potrebbe causare un aumento dell'utilizzo delle risorse.", + "resolutionLow": "Una risoluzione di {{resolution}} potrebbe essere troppo bassa per un rilevamento affidabile di oggetti di piccole dimensioni.", + "noAudioWarning": "Nessun audio rilevato per questo flusso, le registrazioni non avranno audio.", + "audioCodecRecordError": "Per supportare l'audio nelle registrazioni è necessario il codec audio AAC.", + "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." + }, + "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." + }, + "hikvision": { + "substreamWarning": "Il sottoflusso 1 è bloccato a bassa risoluzione. Molte telecamere Hikvision 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 695b83213..b031828e1 100644 --- a/web/public/locales/it/views/system.json +++ b/web/public/locales/it/views/system.json @@ -65,7 +65,12 @@ "gpuUsage": "Utilizzo GPU", "gpuMemory": "Memoria GPU", "npuUsage": "Utilizzo NPU", - "npuMemory": "Memoria NPU" + "npuMemory": "Memoria NPU", + "intelGpuWarning": { + "title": "Avviso statistiche GPU Intel", + "message": "Statistiche GPU non disponibili", + "description": "Si tratta di un problema noto negli strumenti di reportistica delle statistiche GPU di Intel (intel_gpu_top), che si interrompe e restituisce ripetutamente un utilizzo della GPU pari a 0% anche nei casi in cui l'accelerazione hardware e il rilevamento degli oggetti funzionano correttamente sulla (i)GPU. Non si tratta di un problema di Frigate. È possibile riavviare il sistema per risolvere temporaneamente il problema e verificare che la GPU funzioni correttamente. Ciò non influisce sulle prestazioni." + } }, "detector": { "inferenceSpeed": "Velocità inferenza rilevatore", @@ -94,16 +99,23 @@ "yolov9_plate_detection_speed": "Velocità di rilevamento della targa con YOLOv9", "yolov9_plate_detection": "Rilevamento della targa con YOLOv9", "image_embedding": "Incorporamento di immagini", - "text_embedding": "Incorporamento di testo" + "text_embedding": "Incorporamento di testo", + "review_description": "Descrizione della revisione", + "review_description_speed": "Velocità della descrizione di revisione", + "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" }, "title": "Miglioramenti", - "infPerSecond": "Inferenze al secondo" + "infPerSecond": "Inferenze al secondo", + "averageInf": "Tempo medio di inferenza" }, "cameras": { "info": { "fetching": "Recupero dati della telecamera", "streamDataFromFFPROBE": "I dati del flusso vengono ottenuti con ffprobe.", - "cameraProbeInfo": "Informazioni flussi telecamera {{camera}}", + "cameraProbeInfo": "Informazioni analisi telecamera {{camera}}", "stream": "Flusso {{idx}}", "video": "Video:", "codec": "Codec:", @@ -113,7 +125,7 @@ "audio": "Audio:", "error": "Errore: {{error}}", "tips": { - "title": "Informazioni flussi telecamera" + "title": "Informazioni analisi telecamera" }, "aspectRatio": "rapporto d'aspetto" }, From 2fba55c72fa98756929ddda0cc9785c056c19d12 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:18 +0100 Subject: [PATCH 17/24] Translated using Weblate (Dutch) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (125 of 125 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (635 of 635 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (108 of 108 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (209 of 209 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (106 of 106 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (106 of 106 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (598 of 598 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (207 of 207 strings) Translated using Weblate (Dutch) Currently translated at 97.1% (103 of 106 strings) Translated using Weblate (Dutch) Currently translated at 97.1% (103 of 106 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (598 of 598 strings) Translated using Weblate (Dutch) Currently translated at 100.0% (127 of 127 strings) Co-authored-by: Anonymous Co-authored-by: Hosted Weblate Co-authored-by: Marijn <168113859+Marijn0@users.noreply.github.com> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nl/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/nl/ Translation: Frigate NVR/common Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/nl/common.json | 17 +- .../locales/nl/views/classificationModel.json | 46 +++-- web/public/locales/nl/views/events.json | 4 +- web/public/locales/nl/views/explore.json | 11 +- web/public/locales/nl/views/faceLibrary.json | 2 +- web/public/locales/nl/views/live.json | 6 +- web/public/locales/nl/views/settings.json | 160 ++++++++++++++++-- web/public/locales/nl/views/system.json | 18 +- 8 files changed, 218 insertions(+), 46 deletions(-) diff --git a/web/public/locales/nl/common.json b/web/public/locales/nl/common.json index 5ff9ca549..17d91279c 100644 --- a/web/public/locales/nl/common.json +++ b/web/public/locales/nl/common.json @@ -81,7 +81,10 @@ "formattedTimestampMonthDayYear": { "12hour": "d MMM yyyy", "24hour": "d MMM yyyy" - } + }, + "inProgress": "Wordt uitgevoerd", + "invalidStartTime": "Ongeldige starttijd", + "invalidEndTime": "Ongeldige eindtijd" }, "button": { "enabled": "Ingeschakeld", @@ -118,7 +121,8 @@ "download": "Download", "unselect": "Deselecteren", "next": "Volgende", - "deleteNow": "Nu verwijderen" + "deleteNow": "Nu verwijderen", + "continue": "Doorgaan" }, "unit": { "speed": { @@ -142,7 +146,9 @@ "back": "Ga terug", "hide": "Verberg {{item}}", "show": "Toon {{item}}", - "ID": "ID" + "ID": "ID", + "none": "Geen", + "all": "Alle" }, "menu": { "system": "Systeem", @@ -243,7 +249,8 @@ "setPassword": "Wachtwoord instellen", "account": "Account", "anonymous": "anoniem" - } + }, + "classification": "Classificatie" }, "toast": { "copyUrlToClipboard": "URL naar klembord gekopieerd.", @@ -258,7 +265,7 @@ "role": { "title": "Rol", "admin": "Beheerder", - "viewer": "Gebruiker", + "viewer": "Kijker", "desc": "Beheerders hebben volledige toegang tot alle functies in de Frigate-interface. Kijkers kunnen alleen camera’s bekijken, items beoordelen en historische beelden terugkijken." }, "pagination": { diff --git a/web/public/locales/nl/views/classificationModel.json b/web/public/locales/nl/views/classificationModel.json index 79956bf3d..b4b0926a8 100644 --- a/web/public/locales/nl/views/classificationModel.json +++ b/web/public/locales/nl/views/classificationModel.json @@ -19,28 +19,35 @@ "trainingModel": "Modeltraining succesvol gestart.", "deletedModel_one": "{{count}} model succesvol verwijderd", "deletedModel_other": "{{count}} modellen succesvol verwijderd", - "updatedModel": "Modelconfiguratie succesvol bijgewerkt" + "updatedModel": "Modelconfiguratie succesvol bijgewerkt", + "renamedCategory": "Klasse succesvol hernoemd naar {{name}}" }, "error": { "deleteImageFailed": "Verwijderen mislukt: {{errorMessage}}", "deleteCategoryFailed": "Het verwijderen van de klasse is mislukt: {{errorMessage}}", "categorizeFailed": "Afbeelding categoriseren mislukt: {{errorMessage}}", - "trainingFailed": "Het starten van de modeltraining is mislukt: {{errorMessage}}", + "trainingFailed": "Modeltraining mislukt. Raadpleeg de Frigate-logs voor details.", "deleteModelFailed": "Model verwijderen mislukt: {{errorMessage}}", - "updateModelFailed": "Bijwerken van model mislukt: {{errorMessage}}" + "updateModelFailed": "Bijwerken van model mislukt: {{errorMessage}}", + "renameCategoryFailed": "Hernoemen van klasse mislukt: {{errorMessage}}", + "trainingFailedToStart": "Het is niet gelukt om het model te trainen: {{errorMessage}}" } }, "deleteCategory": { "title": "Klasse verwijderen", - "desc": "Weet je zeker dat je de klasse {{name}} wilt verwijderen? Hiermee worden alle bijbehorende afbeeldingen permanent verwijderd en moet het model opnieuw worden getraind." + "desc": "Weet je zeker dat je de klasse {{name}} wilt verwijderen? Hiermee worden alle bijbehorende afbeeldingen permanent verwijderd en moet het model opnieuw worden getraind.", + "minClassesTitle": "Kan klasse niet verwijderen", + "minClassesDesc": "Een classificatiemodel moet minimaal twee klassen hebben. Voeg een andere klasse toe voordat u deze verwijdert." }, "deleteDatasetImages": { "title": "Datasetafbeeldingen verwijderen", - "desc": "Weet u zeker dat u {{count}} afbeeldingen uit {{dataset}} wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt en vereist een hertraining van het model." + "desc_one": "Weet u zeker dat u {{count}} afbeelding uit {{dataset}} wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt en vereist een hertraining van het model.", + "desc_other": "Weet u zeker dat u {{count}} afbeeldingen uit {{dataset}} wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt en vereist een hertraining van het model." }, "deleteTrainImages": { "title": "Trainingsafbeeldingen verwijderen", - "desc": "Weet je zeker dat je {{count}} afbeeldingen wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt." + "desc_one": "Weet je zeker dat je {{count}} afbeelding wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", + "desc_other": "Weet je zeker dat je {{count}} afbeeldingen wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt." }, "renameCategory": { "title": "Klasse hernoemen", @@ -67,9 +74,9 @@ "buttonText": "Objectmodel maken" }, "state": { - "title": "Geen State-classificatiemodellen beschikbaar", + "title": "Geen status-classificatiemodellen", "description": "Maak een aangepast model om statuswijzigingen in specifieke cameragebieden te monitoren en te classificeren.", - "buttonText": "Maak een toestandsmodel" + "buttonText": "Maak een statusmodel" } }, "wizard": { @@ -80,7 +87,7 @@ "chooseExamples": "Voorbeelden kiezen" }, "step1": { - "description": "Toestandsmodellen houden vaste cameragebieden in de gaten op veranderingen (bijv. deur open/dicht). Objectmodellen voegen classificaties toe aan gedetecteerde objecten (bijv. bekende dieren, bezorgers, enz.).", + "description": "Statusmodellen houden vaste cameragebieden in de gaten op veranderingen (bijv. deur open/dicht). Objectmodellen voegen classificaties toe aan gedetecteerde objecten (bijv. bekende dieren, bezorgers, enz.).", "name": "Naam", "namePlaceholder": "Voer modelnaam in...", "type": "Type", @@ -95,7 +102,7 @@ "classificationAttribute": "Attribuut", "classes": "Klassen", "classesTip": "Meer over klassen leren", - "classesStateDesc": "Definieer de verschillende toestanden waarin het cameragebied zich kan bevinden. Bijvoorbeeld: ‘open’ en ‘dicht’ voor een garagedeur.", + "classesStateDesc": "Definieer de verschillende staten waarin uw cameragebied zich kan bevinden. Bijvoorbeeld: ‘open’ en ‘gesloten’ voor een garagedeur.", "classesObjectDesc": "Definieer de verschillende categorieën om gedetecteerde objecten in te classificeren. Bijvoorbeeld: ‘bezorger’, ‘bewoner’, ‘vreemdeling’ voor persoonsclassificatie.", "classPlaceholder": "Voer klassenaam in...", "errors": { @@ -104,14 +111,14 @@ "nameOnlyNumbers": "Modelnaam mag niet alleen uit cijfers bestaan", "classRequired": "Minimaal 1 klasse is vereist", "classesUnique": "Klassennamen moeten uniek zijn", - "stateRequiresTwoClasses": "Toestandsmodellen vereisen minimaal 2 klassen", + "stateRequiresTwoClasses": "Statusmodellen vereisen minimaal 2 klassen", "objectLabelRequired": "Selecteer een objectlabel", "objectTypeRequired": "Selecteer een classificatietype" }, "states": "Staten" }, "step2": { - "description": "Selecteer camera’s en definieer voor elke camera het te monitoren gebied. Het model zal de toestand van deze gebieden classificeren.", + "description": "Selecteer camera’s en definieer voor elke camera het te monitoren gebied. Het model zal de status van deze gebieden classificeren.", "cameras": "Camera's", "selectCamera": "Selecteer camera", "noCameras": "Klik op + om camera’s toe te voegen", @@ -119,7 +126,7 @@ }, "step3": { "selectImagesPrompt": "Selecteer alle afbeeldingen met: {{className}}", - "selectImagesDescription": "Klik op afbeeldingen om ze te selecteren. Klik op Doorgaan wanneer je klaar bent met deze klasse.", + "selectImagesDescription": "Klik op afbeeldingen om ze te selecteren. Klik op doorgaan wanneer je klaar bent met deze klasse.", "generating": { "title": "Voorbeeldafbeeldingen genereren", "description": "Frigate haalt representatieve afbeeldingen uit je opnames. Dit kan even duren..." @@ -139,13 +146,16 @@ "generationFailed": "Generatie mislukt. Probeer het opnieuw.", "classifyFailed": "Afbeeldingen classificeren mislukt: {{error}}" }, - "generateSuccess": "Met succes gegenereerde voorbeeldafbeeldingen" + "generateSuccess": "Met succes gegenereerde voorbeeldafbeeldingen", + "allImagesRequired_one": "Classificeer alle afbeeldingen. {{count}} afbeelding resterend.", + "allImagesRequired_other": "Classificeer alle afbeeldingen. {{count}} afbeeldingen resterend." } }, "deleteModel": { "title": "Classificatiemodel verwijderen", "single": "Weet u zeker dat u {{name}} wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, definitief verwijderd. Deze actie kan niet ongedaan worden gemaakt.", - "desc": "Weet u zeker dat u {{count}} model(len) wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt." + "desc_one": "Weet u zeker dat u {{count}} model wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt.", + "desc_other": "Weet u zeker dat u {{count}} modellen wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt." }, "menu": { "objects": "Objecten", @@ -159,5 +169,11 @@ "descriptionState": "Bewerk de klassen voor dit statusclassificatiemodel. Wijzigingen vereisen dat het model opnieuw wordt getraind.", "descriptionObject": "Bewerk het objecttype en het classificatietype voor dit objectclassificatiemodel.", "stateClassesInfo": "Let op: het wijzigen van statusklassen vereist dat het model opnieuw wordt getraind met de bijgewerkte klassen." + }, + "tooltip": { + "trainingInProgress": "Model is momenteel aan het trainen", + "noNewImages": "Geen nieuwe afbeeldingen om te trainen. Classificeer eerst meer afbeeldingen in de dataset.", + "modelNotReady": "Model is niet klaar voor training", + "noChanges": "Geen wijzigingen in de dataset sinds de laatste training." } } diff --git a/web/public/locales/nl/views/events.json b/web/public/locales/nl/views/events.json index 643fef8b0..a9ee06d90 100644 --- a/web/public/locales/nl/views/events.json +++ b/web/public/locales/nl/views/events.json @@ -40,8 +40,8 @@ "detail": { "noDataFound": "Geen gedetailleerde gegevens om te beoordelen", "aria": "Detailweergave in- of uitschakelen", - "trackedObject_one": "object", - "trackedObject_other": "objecten", + "trackedObject_one": "{{count}} object", + "trackedObject_other": "{{count}} objecten", "noObjectDetailData": "Geen objectdetails beschikbaar.", "label": "Detail", "settings": "Instellingen voor detailweergave", diff --git a/web/public/locales/nl/views/explore.json b/web/public/locales/nl/views/explore.json index 10fa78697..6ed4422ca 100644 --- a/web/public/locales/nl/views/explore.json +++ b/web/public/locales/nl/views/explore.json @@ -34,7 +34,8 @@ "video": "video", "snapshot": "snapshot", "object_lifecycle": "objectlevenscyclus", - "thumbnail": "thumbnail" + "thumbnail": "thumbnail", + "tracking_details": "trackinggegevens" }, "objectLifecycle": { "createObjectMask": "Objectmasker maken", @@ -104,7 +105,7 @@ "regenerate": "Er is een nieuwe beschrijving aangevraagd bij {{provider}}. Afhankelijk van de snelheid van je provider kan het regenereren van de nieuwe beschrijving enige tijd duren.", "updatedSublabel": "Sublabel succesvol bijgewerkt.", "updatedLPR": "Kenteken succesvol bijgewerkt.", - "audioTranscription": "Audiotranscriptie succesvol aangevraagd." + "audioTranscription": "Audio-transcriptie succesvol aangevraagd. Afhankelijk van de snelheid van uw Frigate-server kan het even duren voordat de transcriptie voltooid is." }, "error": { "updatedSublabelFailed": "Het is niet gelukt om het sublabel bij te werken: {{errorMessage}}", @@ -218,7 +219,9 @@ "error": "Verwijderen van gevolgd object mislukt: {{errorMessage}}" } }, - "tooltip": "{{type}} komt voor {{confidence}}% overeen met de zoekopdracht" + "tooltip": "{{type}} komt voor {{confidence}}% overeen met de zoekopdracht", + "previousTrackedObject": "Vorig gevolgd object", + "nextTrackedObject": "Volgende gevolgde object" }, "dialog": { "confirmDelete": { @@ -271,7 +274,7 @@ "label": "Annotatie-afwijking", "desc": "Deze gegevens zijn afkomstig van de detectiestream van je camera, maar worden weergegeven op beelden uit de opnamestream. Het is onwaarschijnlijk dat deze twee streams perfect gesynchroniseerd zijn. Hierdoor zullen het objectkader en het beeld niet exact op elkaar aansluiten. Met deze instelling kun je de annotaties vooruit of achteruit in de tijd verschuiven om ze beter uit te lijnen met het opgenomen beeldmateriaal.", "millisecondsToOffset": "Aantal milliseconden om objectkader mee te verschuiven. Standaard: 0", - "tips": "TIP: Stel je voor dat er een clip is waarin een persoon van links naar rechts loopt. Als het objectkader in de tijdlijn van de activiteit steeds links van de persoon ligt, dan moet de waarde verlaagd worden. Op dezelfde manier als het objectkader consequent vóór de persoon ligt dus vooruitloopt, moet de waarde verhoogd worden.", + "tips": "Verlaag de waarde als de videoweergave sneller is dan de objectkaders en hun trajectpunten, en verhoog de waarde als de videoweergave achterloopt. Deze waarde kan negatief zijn.", "toast": { "success": "Annotatieverschuiving voor {{camera}} is opgeslagen in het configuratiebestand. Herstart Frigate om je wijzigingen toe te passen." } diff --git a/web/public/locales/nl/views/faceLibrary.json b/web/public/locales/nl/views/faceLibrary.json index 11b8fbd27..23c4f2d70 100644 --- a/web/public/locales/nl/views/faceLibrary.json +++ b/web/public/locales/nl/views/faceLibrary.json @@ -36,7 +36,7 @@ "deletedFace_one": "{{count}} gezicht is succesvol verwijderd.", "deletedFace_other": "{{count}} gezichten zijn succesvol verwijderd.", "trainedFace": "Met succes getraind gezicht.", - "updatedFaceScore": "De gezichtsscore is succesvol bijgewerkt.", + "updatedFaceScore": "De gezichtsscore is succesvol bijgewerkt naar {{name}} ({{score}}).", "deletedName_one": "{{count}} gezicht is succesvol verwijderd.", "deletedName_other": "{{count}} gezichten zijn succesvol verwijderd.", "uploadedImage": "Afbeelding succesvol geüpload.", diff --git a/web/public/locales/nl/views/live.json b/web/public/locales/nl/views/live.json index 798d24368..e6dd73bea 100644 --- a/web/public/locales/nl/views/live.json +++ b/web/public/locales/nl/views/live.json @@ -180,6 +180,10 @@ "noCameras": { "title": "Geen camera’s ingesteld", "description": "Begin door een camera te verbinden met Frigate.", - "buttonText": "Camera toevoegen" + "buttonText": "Camera toevoegen", + "restricted": { + "title": "Geen camera's beschikbaar", + "description": "Je hebt geen toestemming om camera's in deze groep te bekijken." + } } } diff --git a/web/public/locales/nl/views/settings.json b/web/public/locales/nl/views/settings.json index d62df1215..7509381d2 100644 --- a/web/public/locales/nl/views/settings.json +++ b/web/public/locales/nl/views/settings.json @@ -7,7 +7,7 @@ "classification": "Classificatie-instellingen - Frigate", "masksAndZones": "Masker- en zone-editor - Frigate", "object": "Foutopsporing Frigate", - "general": "Algemene instellingen - Frigate", + "general": "Gebruikersinterface-instellingen - Frigate", "frigatePlus": "Frigate+ Instellingen - Frigate", "notifications": "Meldingsinstellingen - Frigate", "enrichments": "Verrijkingsinstellingen - Frigate", @@ -26,7 +26,7 @@ "frigateplus": "Frigate+", "enrichments": "Verrijkingen", "triggers": "Triggers", - "roles": "Functie", + "roles": "Rollen", "cameraManagement": "Beheer", "cameraReview": "Beoordeel" }, @@ -54,9 +54,13 @@ "displayCameraNames": { "label": "Altijd cameranamen weergeven", "desc": "Toon altijd de cameranamen in een label op het live-cameradashboard." + }, + "liveFallbackTimeout": { + "label": "Live speler fallback time-out", + "desc": "Wanneer de hoogwaardige livestream van een camera niet beschikbaar is, schakel dan na dit aantal seconden terug naar de modus voor lage bandbreedte. Standaard: 3." } }, - "title": "Algemene instellingen", + "title": "Gebruikersinterface instellingen", "storedLayouts": { "title": "Opgeslagen indelingen", "clearAll": "Alle indelingen wissen", @@ -68,7 +72,7 @@ "clearAll": "Alle streaminginstellingen wissen" }, "recordingsViewer": { - "title": "Opnamebekijker", + "title": "Opnameweergave", "defaultPlaybackRate": { "label": "Standaard afspeelsnelheid", "desc": "Standaard afspeelsnelheid voor het afspelen van opnames." @@ -567,7 +571,7 @@ "intro": "Selecteer een gepaste rol voor deze gebruiker:", "admin": "Beheerder", "adminDesc": "Volledige toegang tot alle functies.", - "viewer": "Gebruiker", + "viewer": "Kijker", "viewerDesc": "Alleen toegang tot Live-dashboards, Beoordelen, Verkennen en Exports.", "customDesc": "Aangepaste rol met specifieke cameratoegang." }, @@ -890,8 +894,8 @@ "createRole": "Rol {{role}} succesvol aangemaakt", "updateCameras": "Camera's bijgewerkt voor rol {{role}}", "deleteRole": "Rol {{role}} succesvol verwijderd", - "userRolesUpdated_one": "{{count}} gebruiker(s) die aan deze rol waren toegewezen, zijn bijgewerkt naar ‘kijker’, die toegang heeft tot alle camera’s.", - "userRolesUpdated_other": "" + "userRolesUpdated_one": "{{count}} gebruiker die aan deze rol was toegewezen, is bijgewerkt naar de rol ‘kijker’, die toegang heeft tot alle camera’s.", + "userRolesUpdated_other": "{{count}} gebruikers die aan deze rol waren toegewezen, zijn bijgewerkt naar de rol ‘kijker’, die toegang heeft tot alle camera’s." }, "error": { "createRoleFailed": "Kan rol niet aanmaken: {{errorMessage}}", @@ -938,7 +942,8 @@ "steps": { "nameAndConnection": "Naam & Verbinding", "streamConfiguration": "Streamconfiguratie", - "validationAndTesting": "Validatie & testen" + "validationAndTesting": "Validatie & testen", + "probeOrSnapshot": "Test of Snapshot" }, "save": { "success": "Nieuwe camera {{cameraName}} succesvol opgeslagen.", @@ -955,7 +960,7 @@ "testFailed": "Streamtest mislukt: {{error}}" }, "step1": { - "description": "Voer je cameragegevens in en test de verbinding.", + "description": "Voer de gegevens van uw camera in en kies ervoor om de camera te scannen of selecteer handmatig het merk.", "cameraName": "Cameranaam", "cameraNamePlaceholder": "bijv. voordeur of achtertuin camera", "host": "Host/IP-adres", @@ -995,10 +1000,19 @@ "testing": { "probingMetadata": "Camerametadata wordt onderzocht...", "fetchingSnapshot": "Camerasnapshot ophalen..." - } + }, + "connectionSettings": "Verbindingsinstellingen", + "detectionMethod": "Stream-detectiemethode", + "onvifPort": "ONVIF-poort", + "probeMode": "Camera testen", + "manualMode": "Handmatige selectie", + "detectionMethodDescription": "Test de camera met ONVIF (indien ondersteund) om de stream-URL’s van de camera te vinden, of selecteer handmatig het cameramerk om vooraf gedefinieerde URL’s te gebruiken. Om een aangepaste RTSP-URL in te voeren, kies de handmatige methode en selecteer “Anders”.", + "onvifPortDescription": "Voor camera's die ONVIF ondersteunen, is dit meestal 80 of 8080.", + "useDigestAuth": "Gebruik digest-authenticatie", + "useDigestAuthDescription": "Gebruik HTTP-digestauthenticatie voor ONVIF. Sommige camera’s vereisen mogelijk een aparte ONVIF-gebruikersnaam en -wachtwoord in plaats van de standaard ‘admin’ gebruiker." }, "step2": { - "description": "Configureer streamrollen en voeg extra streams toe voor uw camera.", + "description": "Controleer de camera op beschikbare streams of configureer handmatige instellingen op basis van de door u geselecteerde detectiemethode.", "streamsTitle": "Camerastreams", "addStream": "Stream toevoegen", "addAnotherStream": "Voeg een extra stream toe", @@ -1017,8 +1031,8 @@ "audio": "Audio" }, "testStream": "Testverbinding", - "testSuccess": "Streamtest succesvol!", - "testFailed": "Streamtest mislukt", + "testSuccess": "Verbindingstest succesvol!", + "testFailed": "Verbindingstest mislukt. Controleer uw invoer en probeer het opnieuw.", "testFailedTitle": "Test mislukt", "connected": "Aangesloten", "notConnected": "Niet verbonden", @@ -1034,10 +1048,42 @@ "featuresPopover": { "title": "Streamfuncties", "description": "Gebruik go2rtc-herstreaming om het aantal verbindingen met je camera te verminderen." + }, + "streamDetails": "Streamdetails", + "probing": "Camera wordt getest...", + "retry": "Opnieuw proberen", + "testing": { + "probingMetadata": "Camera-metadata onderzoeken...", + "fetchingSnapshot": "Camerasnapshot ophalen..." + }, + "probeFailed": "Het testen van de camera is mislukt: {{error}}", + "probingDevice": "Onderzoekapparaat...", + "probeSuccessful": "Test succesvol", + "probeError": "Testfout", + "probeNoSuccess": "Test mislukt", + "deviceInfo": "Apparaatinformatie", + "manufacturer": "Fabrikant", + "model": "Model", + "firmware": "Firmware", + "profiles": "Profielen", + "ptzSupport": "PTZ-ondersteuning", + "autotrackingSupport": "Ondersteuning voor automatische tracking", + "presets": "Standaardinstellingen", + "rtspCandidates": "RTSP-kandidaten", + "rtspCandidatesDescription": "De volgende RTSP-URL's zijn gevonden door de camera te scannen. Test de verbinding om de metagegevens van de stream te bekijken.", + "noRtspCandidates": "Er zijn geen RTSP-URL’s gevonden van de camera. Je inloggegevens zijn mogelijk onjuist, of de camera ondersteunt ONVIF of de gebruikte methode voor het ophalen van RTSP-URL’s niet. Ga terug en voer de RTSP-URL handmatig in.", + "candidateStreamTitle": "Kandidaat {{number}}", + "useCandidate": "Gebruik", + "uriCopy": "Kopiëren", + "uriCopied": "URI gekopieerd naar klembord", + "testConnection": "Testverbinding", + "toggleUriView": "Klik om te schakelen tussen volledige URI-weergave", + "errors": { + "hostRequired": "Host/IP-adres is vereist" } }, "step3": { - "description": "Laatste controle en analyse voordat je je nieuwe camera opslaat. Verbind elke stream voordat je opslaat.", + "description": "Configureer streamrollen en voeg extra streams toe voor uw camera.", "validationTitle": "Streamvalidatie", "connectAllStreams": "Verbind alle streams", "reconnectionSuccess": "Opnieuw verbinden gelukt.", @@ -1078,7 +1124,91 @@ "resolutionLow": "Een resolutie van {{resolution}} kan te laag zijn voor betrouwbare detectie van kleine objecten." }, "ffmpegModule": "Gebruik stream-compatibiliteitsmodus", - "ffmpegModuleDescription": "Als de stream na meerdere pogingen niet wordt geladen, probeer dit dan in te schakelen. Wanneer deze optie is ingeschakeld, gebruikt Frigate de ffmpeg-module samen met go2rtc. Dit kan zorgen voor een betere compatibiliteit met sommige camerastreams." + "ffmpegModuleDescription": "Als de stream na meerdere pogingen niet wordt geladen, probeer dit dan in te schakelen. Wanneer deze optie is ingeschakeld, gebruikt Frigate de ffmpeg-module samen met go2rtc. Dit kan zorgen voor een betere compatibiliteit met sommige camerastreams.", + "streamsTitle": "Camerastreams", + "addStream": "Stream toevoegen", + "addAnotherStream": "Voeg een extra stream toe", + "streamUrl": "Stream-URL", + "streamUrlPlaceholder": "rtsp://gebruikersnaam:wachtwoord@host:poort/pad", + "selectStream": "Selecteer een stream", + "searchCandidates": "Zoek kandidaten...", + "noStreamFound": "Geen stream gevonden", + "url": "URL", + "resolution": "Resolutie", + "selectResolution": "Selecteer resolutie", + "quality": "Kwaliteit", + "selectQuality": "Selecteer kwaliteit", + "roleLabels": { + "detect": "Objectdetectie", + "record": "Opname", + "audio": "Audio" + }, + "testStream": "Testverbinding", + "testSuccess": "Streamtest succesvol!", + "testFailed": "Streamtest mislukt", + "testFailedTitle": "Test mislukt", + "connected": "Aangesloten", + "notConnected": "Niet verbonden", + "featuresTitle": "Functies", + "go2rtc": "Verminder verbindingen met de camera", + "detectRoleWarning": "Er moet minimaal één stream de rol 'detecteren' hebben om door te kunnen gaan.", + "rolesPopover": { + "title": "Streamrollen", + "detect": "Hoofdstream voor objectdetectie.", + "record": "Slaat segmenten van de videostream op op basis van de configuratie-instellingen.", + "audio": "Stream voor op audio gebaseerde detectie." + }, + "featuresPopover": { + "title": "Streamfuncties", + "description": "Gebruik go2rtc-herstreaming om het aantal verbindingen met je camera te verminderen." + } + }, + "step4": { + "description": "Laatste controle en analyse voordat je je nieuwe camera opslaat. Verbind elke stream voordat je opslaat.", + "validationTitle": "Streamvalidatie", + "connectAllStreams": "Verbind alle streams", + "reconnectionSuccess": "Opnieuw verbinden gelukt.", + "reconnectionPartial": "Bij sommige streams kon de verbinding niet worden hersteld.", + "streamUnavailable": "Streamvoorbeeld niet beschikbaar", + "reload": "Herladen", + "connecting": "Verbinden...", + "streamTitle": "Stream {{number}}", + "valid": "Geldig", + "failed": "Mislukt", + "notTested": "Niet getest", + "connectStream": "Verbinden", + "connectingStream": "Verbinden", + "disconnectStream": "Verbreek verbinding", + "estimatedBandwidth": "Geschatte bandbreedte", + "roles": "Rollen", + "ffmpegModule": "Gebruik stream-compatibiliteitsmodus", + "ffmpegModuleDescription": "Als de stream na meerdere pogingen niet wordt geladen, probeer dit dan in te schakelen. Wanneer deze optie is ingeschakeld, gebruikt Frigate de ffmpeg-module samen met go2rtc. Dit kan zorgen voor een betere compatibiliteit met sommige camerastreams.", + "none": "Geen", + "error": "Fout", + "streamValidated": "Stream {{number}} is succesvol gevalideerd", + "streamValidationFailed": "Stream {{number}} validatie mislukt", + "saveAndApply": "Nieuwe camera opslaan", + "saveError": "Ongeldige configuratie, Controleer uw instellingen.", + "issues": { + "title": "Streamvalidatie", + "videoCodecGood": "Videocodec is {{codec}}.", + "audioCodecGood": "Audiocodec is {{codec}}.", + "resolutionHigh": "Een resolutie van {{resolution}} kan leiden tot een verhoogd gebruik van systeembronnen.", + "resolutionLow": "Een resolutie van {{resolution}} kan te laag zijn voor betrouwbare detectie van kleine objecten.", + "noAudioWarning": "Geen audio gedetecteerd voor deze stream, opnames bevatten geen audio.", + "audioCodecRecordError": "De AAC-audiocodec is vereist om audio in opnames te ondersteunen.", + "audioCodecRequired": "Ter ondersteuning van audiodetectie is een audiostream vereist.", + "restreamingWarning": "Als u het aantal verbindingen met de camera voor de opnamestream vermindert, kan het CPU-gebruik iets toenemen.", + "brands": { + "reolink-rtsp": "Reolink RTSP wordt niet aanbevolen. Schakel HTTP in via de firmware-instellingen van de camera en start de wizard opnieuw." + }, + "dahua": { + "substreamWarning": "Substream 1 is beperkt tot een lage resolutie. Veel Dahua / Amcrest / EmpireTech camera’s ondersteunen extra substreams die in de instellingen van de camera ingeschakeld moeten worden. Het wordt aanbevolen deze streams te controleren en te gebruiken indien beschikbaar." + }, + "hikvision": { + "substreamWarning": "Substream 1 is beperkt tot een lage resolutie. Veel Hikvision-camera’s ondersteunen extra substreams die in de instellingen van de camera ingeschakeld moeten worden. Het wordt aanbevolen deze streams te controleren en te gebruiken indien beschikbaar." + } + } } }, "cameraManagement": { diff --git a/web/public/locales/nl/views/system.json b/web/public/locales/nl/views/system.json index 2a0fe9e8d..94797952c 100644 --- a/web/public/locales/nl/views/system.json +++ b/web/public/locales/nl/views/system.json @@ -75,7 +75,12 @@ "gpuEncoder": "GPU Encodeerder", "gpuMemory": "GPU-geheugen", "npuUsage": "NPU-gebruik", - "npuMemory": "NPU-geheugen" + "npuMemory": "NPU-geheugen", + "intelGpuWarning": { + "title": "Waarschuwing Intel GPU-statistieken", + "message": "GPU-statistieken niet beschikbaar", + "description": "Dit is een bekend probleem in de GPU-statistiekentools van Intel (intel_gpu_top). Deze raken defect en geven herhaaldelijk een GPU-gebruik van 0% weer, zelfs wanneer hardware-acceleratie en objectdetectie correct draaien op de (i)GPU. Dit is geen bug in Frigate. Je kunt de host opnieuw opstarten om het tijdelijk op te lossen en te controleren dat de GPU goed werkt. Dit heeft geen invloed op de prestaties." + } }, "otherProcesses": { "processMemoryUsage": "Process Geheugen Gebruik", @@ -181,7 +186,14 @@ "face_recognition": "Gezichtsherkenning", "yolov9_plate_detection_speed": "YOLOv9 Kentekenplaat Detectiesnelheid", "yolov9_plate_detection": "YOLOv9 Kentekenplaatdetectie", - "plate_recognition": "Kentekenherkenning" - } + "plate_recognition": "Kentekenherkenning", + "review_description": "Beoordelingsbeschrijving", + "review_description_speed": "Snelheid beoordelingsbeschrijving", + "review_description_events_per_second": "Beoordelingsbeschrijving", + "object_description": "Objectbeschrijving", + "object_description_speed": "Objectbeschrijvingssnelheid", + "object_description_events_per_second": "Objectbeschrijving" + }, + "averageInf": "Gemiddelde inferentietijd" } } From 7329563d627864f06eaef4d2b2e354ce9c8bda9d Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:20 +0100 Subject: [PATCH 18/24] Translated using Weblate (Spanish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 90.2% (83 of 92 strings) Translated using Weblate (Spanish) Currently translated at 30.1% (35 of 116 strings) Translated using Weblate (Spanish) Currently translated at 64.0% (409 of 639 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Spanish) Currently translated at 76.3% (97 of 127 strings) Translated using Weblate (Spanish) Currently translated at 29.3% (34 of 116 strings) Translated using Weblate (Spanish) Currently translated at 24.1% (28 of 116 strings) Translated using Weblate (Spanish) Currently translated at 25.4% (27 of 106 strings) Translated using Weblate (Spanish) Currently translated at 26.4% (28 of 106 strings) Translated using Weblate (Spanish) Currently translated at 76.3% (97 of 127 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (39 of 39 strings) Co-authored-by: Adrian C Co-authored-by: Gerard Ricart Castells Co-authored-by: Hosted Weblate Co-authored-by: Josep Olivé Co-authored-by: Ramòn Rueda Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/es/ Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings --- .../locales/es/views/classificationModel.json | 27 ++++++++++++++++--- web/public/locales/es/views/events.json | 15 ++++++++--- web/public/locales/es/views/explore.json | 14 +++++++--- web/public/locales/es/views/live.json | 2 +- web/public/locales/es/views/settings.json | 4 +-- 5 files changed, 47 insertions(+), 15 deletions(-) diff --git a/web/public/locales/es/views/classificationModel.json b/web/public/locales/es/views/classificationModel.json index b2446ea01..4890ed058 100644 --- a/web/public/locales/es/views/classificationModel.json +++ b/web/public/locales/es/views/classificationModel.json @@ -18,15 +18,19 @@ "deletedModel_many": "Borrados con éxito {{count}} modelos", "deletedModel_other": "Borrados con éxito {{count}} modelos", "categorizedImage": "Imagen Clasificada Correctamente", - "trainedModel": "Modelo entrenado correctamente." + "trainedModel": "Modelo entrenado correctamente.", + "trainingModel": "Entrenamiento del modelo iniciado correctamente.", + "updatedModel": "Configuración del modelo actualizada correctamente", + "renamedCategory": "Clase renombrada correctamente a {{name}}" }, "error": { "deleteImageFailed": "Fallo al borrar: {{errorMessage}}", "deleteCategoryFailed": "Fallo al borrar clase: {{errorMessage}}", "deleteModelFailed": "Fallo al borrar modelo: {{errorMessage}}", "categorizeFailed": "Fallo al categorizar imagen: {{errorMessage}}", - "trainingFailed": "Fallo al iniciar el entrenamiento del modelo: {{errorMessage}}", - "updateModelFailed": "Fallo al actualizar modelo: {{errorMessage}}" + "trainingFailed": "El entrenamiento del modelo ha fallado. Revisa los registros de Frigate para más detalles.", + "updateModelFailed": "Fallo al actualizar modelo: {{errorMessage}}", + "trainingFailedToStart": "No se pudo iniciar el entrenamiento del modelo: {{errorMessage}}" } }, "deleteCategory": { @@ -35,6 +39,21 @@ }, "deleteModel": { "title": "Borrar Modelo de Clasificación", - "single": "¿Está seguro de que quiere eliminar {{name}}? Esto borrar permanentemente todos los datos asociados incluidas las imágenes y los datos de entrenamiento. Esta acción no se puede deshacer." + "single": "¿Está seguro de que quiere eliminar {{name}}? Esto borrar permanentemente todos los datos asociados incluidas las imágenes y los datos de entrenamiento. Esta acción no se puede deshacer.", + "desc_one": "¿Estas seguro de que quiere borrar {{count}} modelo? Esto borrara permanentemente todos los datos asociados, incluyendo imágenes y datos de entrenamiento. Esta acción no puede ser desehecha.", + "desc_many": "¿Estas seguro de que quiere borrar {{count}} modelos? Esto borrara permanentemente todos los datos asociados, incluyendo imágenes y datos de entrenamiento. Esta acción no puede ser desehecha.", + "desc_other": "¿Estas seguro de que quiere borrar {{count}} modelos? Esto borrara permanentemente todos los datos asociados, incluyendo imágenes y datos de entrenamiento. Esta acción no puede ser desehecha." + }, + "edit": { + "title": "Editar modelo de clasificación" + }, + "tooltip": { + "noChanges": "No se han realizado cambios en el conjunto de datos desde el último entrenamiento.", + "modelNotReady": "El modelo no está listo para el entrenamiento", + "trainingInProgress": "El modelo está entrenándose actualmente.", + "noNewImages": "No hay imágenes nuevas para entrenar. Clasifica antes más imágenes del conjunto de datos." + }, + "details": { + "scoreInfo": "La puntuación representa la confianza media de clasificación en todas las detecciones de este objeto." } } diff --git a/web/public/locales/es/views/events.json b/web/public/locales/es/views/events.json index 097b08b64..b2b4001ba 100644 --- a/web/public/locales/es/views/events.json +++ b/web/public/locales/es/views/events.json @@ -42,12 +42,19 @@ "zoomOut": "Alejar", "detail": { "label": "Detalle", - "trackedObject_one": "objeto", - "trackedObject_other": "objetos", + "trackedObject_one": "{{count}} objeto", + "trackedObject_other": "{{count}} objetos", "noObjectDetailData": "No hay datos detallados del objeto.", - "settings": "Configuración de la Vista Detalle" + "settings": "Configuración de la Vista Detalle", + "noDataFound": "No hay datos detallados para revisar", + "aria": "Alternar vista de detalles", + "alwaysExpandActive": { + "title": "Expandir siempre los activos", + "desc": "Expandir siempre los detalles del objeto activo cuando esten disponibles." + } }, "objectTrack": { - "clickToSeek": "Clic para ir a este momento" + "clickToSeek": "Clic para ir a este momento", + "trackedPoint": "Puntro trazado" } } diff --git a/web/public/locales/es/views/explore.json b/web/public/locales/es/views/explore.json index 064bdf0d8..7fcd50fb0 100644 --- a/web/public/locales/es/views/explore.json +++ b/web/public/locales/es/views/explore.json @@ -111,7 +111,8 @@ "video": "vídeo", "object_lifecycle": "ciclo de vida del objeto", "details": "detalles", - "thumbnail": "miniatura" + "thumbnail": "miniatura", + "tracking_details": "detalles de seguimiento" }, "objectLifecycle": { "title": "Ciclo de vida del objeto", @@ -227,9 +228,14 @@ "label": "Preocupaciones" }, "trackingDetails": { - "title": "Detalles del Seguimiento", + "title": "Detalles del seguimiento", "noImageFound": "No se ha encontrado imagen en este momento.", - "createObjectMask": "Crear Máscara de Objeto", - "adjustAnnotationSettings": "Ajustar configuración de anotaciones" + "createObjectMask": "Crear máscara de objeto", + "adjustAnnotationSettings": "Ajustar configuración de anotaciones", + "scrollViewTips": "Haz clic para ver los momentos relevantes del ciclo de vida de este objeto.", + "count": "{{first}} de {{second}}", + "lifecycleItemDesc": { + "visible": "{{label}} detectado" + } } } diff --git a/web/public/locales/es/views/live.json b/web/public/locales/es/views/live.json index 2109cbb28..85ad87cbf 100644 --- a/web/public/locales/es/views/live.json +++ b/web/public/locales/es/views/live.json @@ -85,7 +85,7 @@ "disable": "Ocultar estadísticas de transmisión" }, "manualRecording": { - "title": "Grabación bajo demanda", + "title": "Bajo demanda", "tips": "Iniciar un evento manual basado en la configuración de retención de grabaciones de esta cámara.", "playInBackground": { "label": "Reproducir en segundo plano", diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json index 42bead0be..7fe10b3ff 100644 --- a/web/public/locales/es/views/settings.json +++ b/web/public/locales/es/views/settings.json @@ -7,7 +7,7 @@ "camera": "Configuración de cámara - Frigate", "motionTuner": "Ajuste de movimiento - Frigate", "classification": "Configuración de clasificación - Frigate", - "general": "Configuración General - Frigate", + "general": "Configuración de Interfaz de Usuario - Frigate", "frigatePlus": "Configuración de Frigate+ - Frigate", "notifications": "Configuración de Notificaciones - Frigate", "enrichments": "Configuración de Análisis Avanzado - Frigate", @@ -78,7 +78,7 @@ "title": "Diseños guardados", "clearAll": "Borrar todos los diseños" }, - "title": "Configuración general", + "title": "Ajustes de Interfaz de Usuario", "toast": { "success": { "clearStoredLayout": "Diseño almacenado eliminado para {{cameraName}}", From f48be307dd40ab660cb20b98ea9aae2fa489b833 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:22 +0100 Subject: [PATCH 19/24] Translated using Weblate (French) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (French) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (French) Currently translated at 100.0% (125 of 125 strings) Translated using Weblate (French) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (French) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (French) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (French) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (French) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (French) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (French) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (French) Currently translated at 100.0% (635 of 635 strings) Translated using Weblate (French) Currently translated at 100.0% (113 of 113 strings) Translated using Weblate (French) Currently translated at 100.0% (108 of 108 strings) Translated using Weblate (French) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (French) Currently translated at 100.0% (209 of 209 strings) Translated using Weblate (French) Currently translated at 100.0% (106 of 106 strings) Translated using Weblate (French) Currently translated at 97.1% (103 of 106 strings) Translated using Weblate (French) Currently translated at 97.1% (103 of 106 strings) Translated using Weblate (French) Currently translated at 100.0% (598 of 598 strings) Translated using Weblate (French) Currently translated at 100.0% (127 of 127 strings) Co-authored-by: Anonymous Co-authored-by: Apocoloquintose Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/fr/ Translation: Frigate NVR/common Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/fr/common.json | 15 +- .../locales/fr/views/classificationModel.json | 36 +++- web/public/locales/fr/views/events.json | 4 +- web/public/locales/fr/views/explore.json | 11 +- web/public/locales/fr/views/faceLibrary.json | 2 +- web/public/locales/fr/views/live.json | 6 +- web/public/locales/fr/views/settings.json | 156 ++++++++++++++++-- web/public/locales/fr/views/system.json | 20 ++- 8 files changed, 213 insertions(+), 37 deletions(-) diff --git a/web/public/locales/fr/common.json b/web/public/locales/fr/common.json index 3cf25e977..78a3f7c18 100644 --- a/web/public/locales/fr/common.json +++ b/web/public/locales/fr/common.json @@ -87,7 +87,10 @@ "formattedTimestampMonthDayYear": { "12hour": "d MMM, yyyy", "24hour": "d MMM,yyyy" - } + }, + "inProgress": "En cours", + "invalidStartTime": "Heure de début invalide", + "invalidEndTime": "Heure de fin invalide" }, "button": { "apply": "Appliquer", @@ -124,7 +127,8 @@ "export": "Exporter", "deleteNow": "Supprimer maintenant", "download": "Télécharger", - "done": "Terminé" + "done": "Terminé", + "continue": "Continuer" }, "menu": { "configuration": "Configuration", @@ -226,7 +230,8 @@ }, "uiPlayground": "Bac à sable de l'interface", "faceLibrary": "Bibliothèque de visages", - "languages": "Langues" + "languages": "Langues", + "classification": "Classification" }, "toast": { "save": { @@ -272,7 +277,9 @@ "back": "Retour", "hide": "Masquer {{item}}", "show": "Afficher {{item}}", - "ID": "ID" + "ID": "ID", + "none": "Aucun", + "all": "Tous" }, "unit": { "speed": { diff --git a/web/public/locales/fr/views/classificationModel.json b/web/public/locales/fr/views/classificationModel.json index 7d7d93ba3..640640c22 100644 --- a/web/public/locales/fr/views/classificationModel.json +++ b/web/public/locales/fr/views/classificationModel.json @@ -20,28 +20,37 @@ "deletedModel_one": "{{count}} modèle supprimé avec succès", "deletedModel_many": "{{count}} modèles supprimés avec succès", "deletedModel_other": "{{count}} modèles supprimés avec succès", - "updatedModel": "Configuration du modèle mise à jour avec succès" + "updatedModel": "Configuration du modèle mise à jour avec succès", + "renamedCategory": "Classe renommée en {{name}} avec succès" }, "error": { "deleteImageFailed": "Échec de la suppression : {{errorMessage}}", "deleteCategoryFailed": "Échec de la suppression de la classe : {{errorMessage}}", "categorizeFailed": "Échec de la catégorisation de l'image : {{errorMessage}}", - "trainingFailed": "Échec du démarrage de l'entraînement du modèle : {{errorMessage}}", + "trainingFailed": "L'entraînement du modèle a échoué. Consultez les journaux de Frigate pour plus de détails.", "deleteModelFailed": "Impossible de supprimer le modèle : {{errorMessage}}", - "updateModelFailed": "Impossible de mettre à jour le modèle : {{errorMessage}}" + "updateModelFailed": "Impossible de mettre à jour le modèle : {{errorMessage}}", + "renameCategoryFailed": "Impossible de renommer la classe : {{errorMessage}}", + "trainingFailedToStart": "Impossible de démarrer l'entraînement du modèle : {{errorMessage}}" } }, "deleteCategory": { "title": "Supprimer la classe", - "desc": "Êtes-vous sûr de vouloir supprimer la classe {{name}} ? Cette action supprimera définitivement toutes les images associées et nécessitera un réentraînement du modèle." + "desc": "Êtes-vous sûr de vouloir supprimer la classe {{name}} ? Cette action supprimera définitivement toutes les images associées et nécessitera un réentraînement du modèle.", + "minClassesTitle": "Impossible de supprimer la classe", + "minClassesDesc": "Un modèle de classification doit avoir au moins 2 classes. Ajoutez une autre classe avant de supprimer celle-ci." }, "deleteDatasetImages": { "title": "Supprimer les images du jeu de données", - "desc": "Êtes-vous sûr de vouloir supprimer {{count}} images du jeu de données {{dataset}} ? Cette action est irréversible et nécessitera un réentraînement du modèle." + "desc_one": "Êtes-vous sûr de vouloir supprimer {{count}} image du jeu de données {{dataset}} ? Cette action est irréversible et nécessitera un réentraînement du modèle.", + "desc_many": "Êtes-vous sûr de vouloir supprimer {{count}} images du jeu de données {{dataset}} ? Cette action est irréversible et nécessitera un réentraînement du modèle.", + "desc_other": "Êtes-vous sûr de vouloir supprimer {{count}} images du jeu de données {{dataset}} ? Cette action est irréversible et nécessitera un réentraînement du modèle." }, "deleteTrainImages": { "title": "Supprimer les images d'entraînement", - "desc": "Êtes-vous sûr de vouloir supprimer {{count}} images ? Cette action est irréversible." + "desc_one": "Êtes-vous sûr de vouloir supprimer {{count}} image ? Cette action est irréversible.", + "desc_many": "Êtes-vous sûr de vouloir supprimer {{count}} images ? Cette action est irréversible.", + "desc_other": "Êtes-vous sûr de vouloir supprimer {{count}} images ? Cette action est irréversible." }, "renameCategory": { "title": "Renommer la classe", @@ -140,13 +149,18 @@ "generationFailed": "Échec de la génération. Veuillez réessayer.", "classifyFailed": "Échec de la classification des images : {{error}}" }, - "generateSuccess": "Génération des images d'exemple réussie" + "generateSuccess": "Génération des images d'exemple réussie", + "allImagesRequired_one": "Veuillez classifier toutes les images. {{count}} image restante.", + "allImagesRequired_many": "Veuillez classifier toutes les images. {{count}} images restantes.", + "allImagesRequired_other": "Veuillez classifier toutes les images. {{count}} images restantes." } }, "deleteModel": { "title": "Supprimer le modèle de classification", "single": "Voulez-vous vraiment supprimer {{name}} ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible.", - "desc": "Voulez-vous vraiment supprimer {{count}} modèle(s) ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible." + "desc_one": "Voulez-vous vraiment supprimer {{count}} modèle ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible.", + "desc_many": "Voulez-vous vraiment supprimer {{count}} modèles ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible.", + "desc_other": "Voulez-vous vraiment supprimer {{count}} modèles ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible." }, "menu": { "objects": "Objets", @@ -160,5 +174,11 @@ "descriptionState": "Modifier les classes pour ce modèle de classification d'état. Les modifications nécessiteront un réentraînement du modèle.", "descriptionObject": "Modifier le type d'objet et le type de classification pour ce modèle de classification d'objet", "stateClassesInfo": "Note : La modification des classes d'état nécessite un réentraînement du modèle avec les classes mises à jour." + }, + "tooltip": { + "trainingInProgress": "Modèle en cours d'entraînement", + "noNewImages": "Aucune nouvelle image pour l'entraînement. Veuillez d'abord classifier plus d'images dans le jeu de données.", + "modelNotReady": "Le modèle n'est pas prêt pour l'entraînement.", + "noChanges": "Aucune modification du jeu de données depuis le dernier entraînement" } } diff --git a/web/public/locales/fr/views/events.json b/web/public/locales/fr/views/events.json index c32ffec3c..a5001ada8 100644 --- a/web/public/locales/fr/views/events.json +++ b/web/public/locales/fr/views/events.json @@ -41,8 +41,8 @@ "detail": { "noDataFound": "Aucun détail à examiner", "aria": "Activer/désactiver la vue détaillée", - "trackedObject_one": "objet", - "trackedObject_other": "objets", + "trackedObject_one": "{{count}} objet", + "trackedObject_other": "{{count}} objets", "noObjectDetailData": "Aucun détail d'objet disponible", "label": "Détail", "settings": "Paramètres de la vue Détail", diff --git a/web/public/locales/fr/views/explore.json b/web/public/locales/fr/views/explore.json index 015d7560b..71930c368 100644 --- a/web/public/locales/fr/views/explore.json +++ b/web/public/locales/fr/views/explore.json @@ -42,7 +42,7 @@ "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" + "audioTranscription": "Transcription audio demandée avec succès. Selon la vitesse de votre serveur Frigate, la transcription peut prendre un certain temps." }, "error": { "regenerate": "Échec de l'appel de {{provider}} pour une nouvelle description : {{errorMessage}}", @@ -110,7 +110,8 @@ "video": "vidéo", "object_lifecycle": "cycle de vie de l'objet", "snapshot": "instantané", - "thumbnail": "Miniature" + "thumbnail": "Miniature", + "tracking_details": "Détails du suivi" }, "objectLifecycle": { "title": "Cycle de vie de l'objet", @@ -227,7 +228,9 @@ "error": "Échec de la suppression de l'objet suivi : {{errorMessage}}" } }, - "tooltip": "Correspondance : {{type}} à {{confidence}}%" + "tooltip": "Correspondance : {{type}} à {{confidence}}%", + "previousTrackedObject": "Objet suivi précédent", + "nextTrackedObject": "Objet suivi suivant" }, "exploreMore": "Explorer plus d'objets {{label}}", "aiAnalysis": { @@ -267,7 +270,7 @@ "offset": { "desc": "Ces données proviennent du flux de détection de votre caméra, mais elles sont superposées aux images du flux d'enregistrement. Il est peu probable que les deux flux soient parfaitement synchronisés. Par conséquent, le cadre de délimitation et la vidéo ne s'aligneront pas parfaitement. Vous pouvez utiliser ce paramètre pour décaler les annotations vers l'avant ou vers l'arrière dans le temps afin de mieux les aligner avec la vidéo enregistrée.", "millisecondsToOffset": "Millisecondes de décalage pour les annotations de détection. Par défaut : 0", - "tips": "ASTUCE : Imaginez une séquence d'événement avec une personne marchant de gauche à droite. Si le cadre de détection sur la chronologie de l'événement est constamment à gauche de la personne, la valeur doit être diminuée. De même, si une personne marche de gauche à droite et que le cadre de détection est constamment devant la personne, la valeur doit être augmentée.", + "tips": "Diminuez la valeur si la lecture vidéo est en avance sur les cadres de détection et les points de tracé, et augmentez-la si la lecture vidéo est en retard sur ceux-ci. Cette valeur peut être négative.", "toast": { "success": "Le décalage des annotations pour {{camera}} a été sauvegardé dans le fichier de configuration. Redémarrez Frigate pour appliquer vos modifications." }, diff --git a/web/public/locales/fr/views/faceLibrary.json b/web/public/locales/fr/views/faceLibrary.json index 7cdfb6c88..1fcf4d000 100644 --- a/web/public/locales/fr/views/faceLibrary.json +++ b/web/public/locales/fr/views/faceLibrary.json @@ -60,7 +60,7 @@ "deletedName_other": "{{count}} visages ont été supprimés avec succès.", "uploadedImage": "Image téléversée avec succès", "addFaceLibrary": "{{name}} a été ajouté avec succès à la bibliothèque de visages !", - "updatedFaceScore": "Score du visage mis à jour avec succès", + "updatedFaceScore": "Score du visage ({{score}}) de {{name}} mis à jour avec succès", "deletedFace_one": "{{count}} visage supprimé avec succès", "deletedFace_many": "{{count}} visages supprimés avec succès", "deletedFace_other": "{{count}} visages supprimés avec succès", diff --git a/web/public/locales/fr/views/live.json b/web/public/locales/fr/views/live.json index 39cebdd02..e3edc5a0f 100644 --- a/web/public/locales/fr/views/live.json +++ b/web/public/locales/fr/views/live.json @@ -174,7 +174,11 @@ "noCameras": { "title": "Aucune caméra n'est configurée", "description": "Pour commencer, connectez une caméra à Frigate.", - "buttonText": "Ajouter une caméra" + "buttonText": "Ajouter une caméra", + "restricted": { + "title": "Aucune caméra disponible", + "description": "Vous n'avez pas la permission de visionner les caméras de ce groupe." + } }, "snapshot": { "takeSnapshot": "Télécharger un instantané", diff --git a/web/public/locales/fr/views/settings.json b/web/public/locales/fr/views/settings.json index 61202dc6f..404201275 100644 --- a/web/public/locales/fr/views/settings.json +++ b/web/public/locales/fr/views/settings.json @@ -5,7 +5,7 @@ "camera": "Paramètres des caméras - Frigate", "classification": "Paramètres de classification - Frigate", "motionTuner": "Réglage de la détection de mouvement - Frigate", - "general": "Paramètres généraux - Frigate", + "general": "Paramètres de l'interface utilisateur - Frigate", "masksAndZones": "Éditeur de masques et de zones - Frigate", "object": "Débogage - Frigate", "frigatePlus": "Paramètres Frigate+ - Frigate", @@ -41,7 +41,7 @@ "noCamera": "Aucune caméra" }, "general": { - "title": "Paramètres généraux", + "title": "Paramètres de l'interface utilisateur", "liveDashboard": { "title": "Tableau de bord en direct", "automaticLiveView": { @@ -55,6 +55,10 @@ "displayCameraNames": { "label": "Toujours afficher les noms des caméras", "desc": "Toujours afficher les noms des caméras dans une puce sur le tableau de bord de la vue en direct multi-caméras" + }, + "liveFallbackTimeout": { + "label": "Délai d'attente avant repli (Lecteur en direct)", + "desc": "Lorsque le flux en direct haute qualité d'une caméra est indisponible, le lecteur bascule en mode faible bande passante après ce nombre de secondes. Par défaut : 3." } }, "storedLayouts": { @@ -893,9 +897,9 @@ "createRole": "Rôle {{role}} créé avec succès", "updateCameras": "Caméras mis à jour pour le rôle {{role}}", "deleteRole": "Rôle {{role}} supprimé avec succès", - "userRolesUpdated_one": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras.", - "userRolesUpdated_many": "", - "userRolesUpdated_other": "" + "userRolesUpdated_one": "{{count}} utilisateur affecté à ce rôle a été mis à jour avec des droits \"Observateur\", et a accès à toutes les caméras.", + "userRolesUpdated_many": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras.", + "userRolesUpdated_other": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras." }, "error": { "createRoleFailed": "Échec dans la création du rôle : {{errorMessage}}", @@ -942,7 +946,8 @@ "steps": { "nameAndConnection": "Nom et connexion", "streamConfiguration": "Configuration du flux", - "validationAndTesting": "Validation et tests" + "validationAndTesting": "Validation et tests", + "probeOrSnapshot": "Sondage ou Instantané" }, "save": { "success": "Nouvelle caméra {{cameraName}} enregistrée avec succès", @@ -959,7 +964,7 @@ "testFailed": "Échec du test de flux : {{error}}" }, "step1": { - "description": "Saisissez les détails de votre caméra et testez la connexion.", + "description": "Saisissez les détails de votre caméra et choisissez d'interroger la caméra ou de sélectionner manuellement la marque.", "cameraName": "Nom de la caméra", "cameraNamePlaceholder": "par ex., porte_entree ou apercu_cour_arriere", "host": "Hôte / Adresse IP", @@ -999,10 +1004,19 @@ "testing": { "probingMetadata": "Vérification des métadonnées de la caméra en cours...", "fetchingSnapshot": "Récupération de l'instantané de la caméra en cours..." - } + }, + "connectionSettings": "Paramètres de connexion", + "detectionMethod": "Méthode de détection du flux", + "onvifPort": "Port ONVIF", + "probeMode": "Interroger la caméra", + "manualMode": "Sélection manuelle", + "detectionMethodDescription": "Interrogez la caméra avec ONVIF (si pris en charge) pour trouver les URL de flux de la caméra, ou sélectionnez manuellement la marque de la caméra pour utiliser des URL prédéfinies. Pour saisir une URL RTSP personnalisée, choisissez la méthode manuelle et sélectionnez \"Autre\".", + "onvifPortDescription": "Pour les caméras prenant en charge ONVIF, il s'agit généralement de 80 ou 8080.", + "useDigestAuth": "Utiliser l'authentification Digest", + "useDigestAuthDescription": "Utilisez l'authentification Digest HTTP pour ONVIF. Certaines caméras peuvent nécessiter un nom d'utilisateur/mot de passe ONVIF dédié au lieu de l'utilisateur administrateur standard." }, "step2": { - "description": "Définissez les rôles du flux et ajoutez des flux supplémentaires pour votre caméra.", + "description": "Interrogez la caméra pour les flux disponibles ou configurez des paramètres manuels en fonction de la méthode de détection sélectionnée.", "streamsTitle": "Flux de caméra", "addStream": "Ajouter un flux", "addAnotherStream": "Ajouter un autre flux", @@ -1021,8 +1035,8 @@ "detect": "Détection d'objets" }, "testStream": "Tester la connexion", - "testSuccess": "Test du flux réussi !", - "testFailed": "Échec du test du flux", + "testSuccess": "Test de connexion réussi !", + "testFailed": "Échec du test de connexion. Veuillez vérifier votre saisie et réessayer.", "testFailedTitle": "Échec du test", "connected": "Connecté", "notConnected": "Non connecté", @@ -1038,10 +1052,42 @@ "featuresPopover": { "title": "Fonctionnalités du flux", "description": "Utilisez la rediffusion du flux go2rtc pour réduire le nombre de connexions à votre caméra." + }, + "streamDetails": "Détails du flux", + "probing": "Interrogation de la caméra en cours...", + "retry": "Réessayer", + "testing": { + "probingMetadata": "Interrogation des métadonnées de la caméra en cours...", + "fetchingSnapshot": "Récupération de l'instantané de la caméra en cours..." + }, + "probeFailed": "Impossible d'interroger la caméra : {{error}}", + "probingDevice": "Interrogation de l'appareil en cours...", + "probeSuccessful": "Interrogation réussie", + "probeError": "Erreur d'interrogation", + "probeNoSuccess": "Échec de l'interrogation", + "deviceInfo": "Informations sur l'appareil", + "manufacturer": "Fabricant", + "model": "Modèle", + "firmware": "Micrologiciel", + "profiles": "Profils", + "ptzSupport": "Prise en charge PTZ", + "autotrackingSupport": "Prise en charge du suivi automatique", + "presets": "Préréglages", + "rtspCandidates": "Candidats RTSP", + "rtspCandidatesDescription": "Les URL RTSP suivantes ont été trouvées lors de l'interrogation de la caméra. Testez la connexion pour afficher les métadonnées du flux.", + "noRtspCandidates": "Aucune URL RTSP n'a été trouvée sur la caméra. Vos identifiants sont peut-être incorrects, ou la caméra ne prend peut-être pas en charge ONVIF ou la méthode utilisée pour récupérer les URL RTSP. Revenez en arrière et saisissez l'URL RTSP manuellement.", + "candidateStreamTitle": "Candidat {{number}}", + "useCandidate": "Utiliser", + "uriCopy": "Copier", + "uriCopied": "URI copiée dans le presse-papiers", + "testConnection": "Tester la connexion", + "toggleUriView": "Cliquer pour basculer l'affichage de l'URI complet", + "errors": { + "hostRequired": "L'hôte/adresse IP est requis." } }, "step3": { - "description": "Validation et analyse finales avant l'enregistrement de votre nouvelle caméra. Connectez chaque flux avant d'enregistrer.", + "description": "Configurez les rôles des flux et ajoutez des flux supplémentaires pour votre caméra.", "validationTitle": "Validation du flux", "connectAllStreams": "Connecter tous les flux", "reconnectionSuccess": "Reconnexion réussie.", @@ -1082,7 +1128,91 @@ }, "valid": "Valide", "ffmpegModule": "Utiliser le mode de compatibilité du flux", - "ffmpegModuleDescription": "Si le flux ne se charge pas après plusieurs tentatives, essayez d'activer cette option. Lorsqu'elle est activée, Frigate utilisera le module ffmpeg avec go2rtc. Cela peut offrir une meilleure compatibilité avec certains flux de caméra." + "ffmpegModuleDescription": "Si le flux ne se charge pas après plusieurs tentatives, essayez d'activer cette option. Lorsqu'elle est activée, Frigate utilisera le module ffmpeg avec go2rtc. Cela peut offrir une meilleure compatibilité avec certains flux de caméra.", + "streamsTitle": "Flux de la caméra", + "addStream": "Ajouter un flux", + "addAnotherStream": "Ajouter un autre flux", + "streamUrl": "URL du flux", + "streamUrlPlaceholder": "rtsp://nomdutilisateur:motdepasse@hote:port/chemin", + "selectStream": "Sélectionner un flux", + "searchCandidates": "Rechercher des candidats", + "noStreamFound": "Aucun flux trouvé", + "url": "URL", + "resolution": "Résolution", + "selectResolution": "Sélectionner la résolution", + "quality": "Qualité", + "selectQuality": "Sélectionner la qualité", + "roleLabels": { + "detect": "Détection d'objet", + "record": "Enregistrement", + "audio": "Audio" + }, + "testStream": "Tester la connexion", + "testSuccess": "Test du flux réussi !", + "testFailed": "Échec du test du flux", + "testFailedTitle": "Échec du test", + "connected": "Connecté", + "notConnected": "Non connecté", + "featuresTitle": "Fonctionnalités", + "go2rtc": "Réduire les connexions à la caméra", + "detectRoleWarning": "Au moins un flux doit avoir le rôle 'détection' pour continuer.", + "rolesPopover": { + "title": "Rôles du flux", + "detect": "Flux principal pour la détection d'objet", + "record": "Enregistre des segments du flux vidéo en fonction des paramètres de configuration", + "audio": "Flux pour la détection basée sur l'audio" + }, + "featuresPopover": { + "title": "Fonctionnalités du flux", + "description": "Utiliser la rediffusion go2rtc pour réduire les connexions à votre caméra" + } + }, + "step4": { + "description": "Validation et analyse finales avant d'enregistrer votre nouvelle caméra. Connectez chaque flux avant d'enregistrer.", + "validationTitle": "Validation du flux", + "connectAllStreams": "Connecter tous les flux", + "reconnectionSuccess": "Reconnexion réussie", + "reconnectionPartial": "Certains flux n'ont pas réussi à se reconnecter.", + "streamUnavailable": "Aperçu du flux non disponible", + "reload": "Recharger", + "connecting": "En cours de connexion...", + "streamTitle": "Flux {{number}}", + "valid": "Valide", + "failed": "Échec", + "notTested": "Non testé", + "connectStream": "Connecter", + "connectingStream": "En cours de connexion", + "disconnectStream": "Déconnecter", + "estimatedBandwidth": "Bande passante estimée", + "roles": "Rôles", + "ffmpegModule": "Utiliser le mode de compatibilité du flux", + "ffmpegModuleDescription": "Si le flux ne se charge pas après plusieurs tentatives, essayez d'activer cette option. Lorsqu'elle est activée, Frigate utilisera le module ffmpeg avec go2rtc. Cela peut offrir une meilleure compatibilité avec certains flux de caméra.", + "none": "Aucun", + "error": "Erreur", + "streamValidated": "Flux {{number}} validé avec succès", + "streamValidationFailed": "Échec de la validation du flux {{number}}", + "saveAndApply": "Enregistrer la nouvelle caméra", + "saveError": "Configuration invalide. Veuillez vérifier vos paramètres.", + "issues": { + "title": "Validation du flux", + "videoCodecGood": "Le codec vidéo est {{codec}}.", + "audioCodecGood": "Le codec audio est {{codec}}.", + "resolutionHigh": "Une résolution de {{resolution}} peut entraîner une utilisation accrue des ressources.", + "resolutionLow": "Une résolution de {{resolution}} peut être trop faible pour une détection fiable des petits objets.", + "noAudioWarning": "Aucun audio détecté pour ce flux, les enregistrements n'auront pas de son.", + "audioCodecRecordError": "Le codec audio AAC est requis pour prendre en charge l'audio dans les enregistrements.", + "audioCodecRequired": "Un flux audio est requis pour prendre en charge la détection audio.", + "restreamingWarning": "Réduire les connexions à la caméra pour le flux d'enregistrement peut légèrement augmenter l'utilisation du processeur.", + "brands": { + "reolink-rtsp": "Le RTSP Reolink n'est pas recommandé. Activez HTTP dans les paramètres du micrologiciel de la caméra et redémarrez l'assistant." + }, + "dahua": { + "substreamWarning": "Le sous-flux 1 est limité à une basse résolution. De nombreuses caméras Dahua / Amcrest / EmpireTech prennent en charge des sous-flux supplémentaires qui doivent être activés dans les paramètres de la caméra. Il est recommandé de vérifier et d'utiliser ces flux s'ils sont disponibles." + }, + "hikvision": { + "substreamWarning": "Le sous-flux 1 est limité à une basse résolution. De nombreuses caméras Hikvision prennent en charge des sous-flux supplémentaires qui doivent être activés dans les paramètres de la caméra. Il est recommandé de vérifier et d'utiliser ces flux s'ils sont disponibles." + } + } } }, "cameraManagement": { diff --git a/web/public/locales/fr/views/system.json b/web/public/locales/fr/views/system.json index 9b432ba7f..4ac6a54ad 100644 --- a/web/public/locales/fr/views/system.json +++ b/web/public/locales/fr/views/system.json @@ -76,7 +76,12 @@ } }, "npuUsage": "Utilisation NPU", - "npuMemory": "Mémoire NPU" + "npuMemory": "Mémoire NPU", + "intelGpuWarning": { + "title": "Avertissement relatif aux statistiques du GPU Intel", + "message": "Statistiques du GPU non disponibles", + "description": "Il s'agit d'un bug connu de l'outil de statistiques GPU d'Intel (intel_gpu_top) : il peut afficher à tort une utilisation de 0 %, même lorsque l'accélération matérielle et la détection d'objets fonctionnent correctement sur l'iGPU. Ce problème ne vient pas de Frigate. Vous pouvez redémarrer l'hôte pour rétablir temporairement l'affichage et confirmer le fonctionnement du GPU. Les performances ne sont pas affectées." + } }, "otherProcesses": { "title": "Autres processus", @@ -151,7 +156,7 @@ "copyToClipboard": "Données de la sonde copiées dans le presse-papiers" }, "error": { - "unableToProbeCamera": "Impossible d'inspecter la caméra : {{errorMessage}}" + "unableToProbeCamera": "Impossible d'interroger la caméra : {{errorMessage}}" } } }, @@ -180,7 +185,14 @@ "yolov9_plate_detection": "Détection de plaques d'immatriculation YOLOv9", "face_recognition": "Reconnaissance faciale", "text_embedding": "Vitesse d'embedding de visage", - "yolov9_plate_detection_speed": "Vitesse de détection de plaques d'immatriculation YOLOv9" - } + "yolov9_plate_detection_speed": "Vitesse de détection de plaques d'immatriculation YOLOv9", + "review_description": "Description de la revue", + "review_description_speed": "Vitesse de la description de la revue", + "review_description_events_per_second": "Description de la revue", + "object_description": "Description de l'objet", + "object_description_speed": "Vitesse de la description d'objet", + "object_description_events_per_second": "Description de l'objet" + }, + "averageInf": "Temps d'inférence moyen" } } From 4b0e37f80015771882c1e27b56f372ce1994ee20 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:24 +0100 Subject: [PATCH 20/24] Translated using Weblate (Swedish) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (125 of 125 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Swedish) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (118 of 118 strings) Co-authored-by: Hosted Weblate Co-authored-by: Kristian Johansson Co-authored-by: OverTheHillsAndFarAway Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sv/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sv/ Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/objects Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/sv/common.json | 27 +-- web/public/locales/sv/components/dialog.json | 2 +- .../locales/sv/views/classificationModel.json | 32 +++- web/public/locales/sv/views/events.json | 4 +- web/public/locales/sv/views/explore.json | 9 +- web/public/locales/sv/views/live.json | 10 +- web/public/locales/sv/views/settings.json | 154 ++++++++++++++++-- web/public/locales/sv/views/system.json | 11 +- 8 files changed, 208 insertions(+), 41 deletions(-) diff --git a/web/public/locales/sv/common.json b/web/public/locales/sv/common.json index 2e9e1a627..a1ad12bb0 100644 --- a/web/public/locales/sv/common.json +++ b/web/public/locales/sv/common.json @@ -16,10 +16,10 @@ "pm": "pm", "am": "am", "yr": "{{time}}år", - "mo": "{{time}} mån", + "mo": "{{time}}må", "month_one": "{{time}} månad", "month_other": "{{time}} månader", - "d": "{{time}}dag", + "d": "{{time}}d", "last7": "Senaste 7 dagarna", "5minutes": "5 minuter", "last30": "Senaste 30 dagarna", @@ -35,13 +35,13 @@ "12hour": "d MMM, yyyy", "24hour": "d MMM, yyy" }, - "h": "{{time}} h", + "h": "{{time}}t", "hour_one": "{{time}} timme", "hour_other": "{{time}} timmar", - "m": "{{time}} m", + "m": "{{time}}m", "minute_one": "{{time}} minut", "minute_other": "{{time}} minuter", - "s": "{{time}} s", + "s": "{{time}}s", "formattedTimestamp": { "12hour": "d MMM, kl. h:mm:ss a", "24hour": "d MMM, HH:mm:ss" @@ -72,7 +72,10 @@ "24hour": "dd-MM-yy-HH-mm-ss" }, "day_one": "{{time}} dag", - "day_other": "{{time}} dagar" + "day_other": "{{time}} dagar", + "inProgress": "Pågår", + "invalidStartTime": "Ogiltig starttid", + "invalidEndTime": "Ogiltig sluttid" }, "button": { "save": "Spara", @@ -104,12 +107,13 @@ "cameraAudio": "Kameraljud", "on": "PÅ", "off": "AV", - "delete": "Släng", + "delete": "Radera", "yes": "Ja", "no": "Nej", "download": "Ladda ner", "info": "Info", - "export": "Exportera" + "export": "Exportera", + "continue": "Fortsätta" }, "menu": { "language": { @@ -209,7 +213,8 @@ "languages": "Språk", "configurationEditor": "Konfigurationsredigerare", "withSystem": "System", - "appearance": "Utseende" + "appearance": "Utseende", + "classification": "Klassificering" }, "pagination": { "next": { @@ -253,7 +258,9 @@ "back": "Gå tillbaka", "hide": "Dölj {{item}}", "show": "Visa {{item}}", - "ID": "ID" + "ID": "ID", + "none": "Ingen", + "all": "Alla" }, "unit": { "speed": { diff --git a/web/public/locales/sv/components/dialog.json b/web/public/locales/sv/components/dialog.json index 88ad466fa..712ddd1d6 100644 --- a/web/public/locales/sv/components/dialog.json +++ b/web/public/locales/sv/components/dialog.json @@ -34,7 +34,7 @@ "time": { "fromTimeline": "Välj från tidslinjen", "lastHour_one": "Sista timma", - "lastHour_other": "Sista t {{count}} Timmarna", + "lastHour_other": "Sista {{count}} timmar", "start": { "title": "Start Tid", "label": "Välj Start Tid" diff --git a/web/public/locales/sv/views/classificationModel.json b/web/public/locales/sv/views/classificationModel.json index d7ee2ddfc..abe0e19da 100644 --- a/web/public/locales/sv/views/classificationModel.json +++ b/web/public/locales/sv/views/classificationModel.json @@ -19,28 +19,35 @@ "trainingModel": "Modellträning har startat.", "deletedModel_one": "{{count}} modell har raderats", "deletedModel_other": "{{count}} modeller har raderats", - "updatedModel": "Uppdaterade modellkonfiguration" + "updatedModel": "Uppdaterade modellkonfiguration", + "renamedCategory": "Klassen har bytt namn till {{name}}" }, "error": { "deleteImageFailed": "Misslyckades med att ta bort: {{errorMessage}}", "deleteCategoryFailed": "Misslyckades med att ta bort klassen: {{errorMessage}}", "categorizeFailed": "Misslyckades med att kategorisera bilden: {{errorMessage}}", - "trainingFailed": "Misslyckades med att starta modellträning: {{errorMessage}}", + "trainingFailed": "Modellträningen misslyckades. Kontrollera Frigate loggarna för mer information.", "deleteModelFailed": "Misslyckades med att ta bort modellen: {{errorMessage}}", - "updateModelFailed": "Misslyckades med att uppdatera modell: {{errorMessage}}" + "updateModelFailed": "Misslyckades med att uppdatera modell: {{errorMessage}}", + "trainingFailedToStart": "Misslyckades med att starta modellträning: {{errorMessage}}", + "renameCategoryFailed": "Misslyckades med att byta namn på klassen: {{errorMessage}}" } }, "deleteCategory": { "title": "Ta bort klass", - "desc": "Är du säker på att du vill ta bort klassen {{name}}? Detta kommer att ta bort alla associerade bilder permanent och kräva att modellen tränas om." + "desc": "Är du säker på att du vill ta bort klassen {{name}}? Detta kommer att ta bort alla associerade bilder permanent och kräva att modellen tränas om.", + "minClassesTitle": "Kan inte ta bort klassen", + "minClassesDesc": "En klassificeringsmodell måste ha minst två klasser. Lägg till ytterligare en klass innan du tar bort den här." }, "deleteDatasetImages": { "title": "Ta bort datamängdsbilder", - "desc": "Är du säker på att du vill ta bort {{count}} bilder från {{dataset}}? Den här åtgärden kan inte ångras och kräver att modellen tränas om." + "desc_one": "Är du säker på att du vill ta bort {{count}} bild från {{dataset}}? Den här åtgärden kan inte ångras och kräver att modellen tränas om.", + "desc_other": "Är du säker på att du vill ta bort {{count}} bilder från {{dataset}}? Den här åtgärden kan inte ångras och kräver att modellen tränas om." }, "deleteTrainImages": { "title": "Ta bort tränade bilder", - "desc": "Är du säker på att du vill ta bort {{count}} bilder? Den här åtgärden kan inte ångras." + "desc_one": "Är du säker på att du vill ta bort {{count}} bild? Den här åtgärden kan inte ångras.", + "desc_other": "Är du säker på att du vill ta bort {{count}} bilder? Den här åtgärden kan inte ångras." }, "renameCategory": { "title": "Byt namn på klass", @@ -139,13 +146,16 @@ "generationFailed": "Genereringen misslyckades. Försök igen.", "classifyFailed": "Misslyckades med att klassificera bilder: {{error}}" }, - "generateSuccess": "Exempelbilder har genererats" + "generateSuccess": "Exempelbilder har genererats", + "allImagesRequired_one": "Vänligen klassificera alla bilder. {{count}} bild återstår.", + "allImagesRequired_other": "Vänligen klassificera alla bilder. {{count}} bilder återstår." } }, "deleteModel": { "title": "Ta bort klassificeringsmodell", "single": "Är du säker på att du vill ta bort {{name}}? Detta kommer att permanent ta bort all tillhörande data, inklusive bilder och träningsdata. Åtgärden kan inte ångras.", - "desc": "Är du säker på att du vill ta bort {{count}} modell(er)? Detta kommer att permanent ta bort all tillhörande data, inklusive bilder och träningsdata. Åtgärden kan inte ångras." + "desc_one": "Är du säker på att du vill ta bort {{count}} modell? Detta kommer att permanent ta bort all tillhörande data, inklusive bilder och träningsdata. Åtgärden kan inte ångras.", + "desc_other": "Är du säker på att du vill ta bort {{count}} modeller? Detta kommer att permanent ta bort all tillhörande data, inklusive bilder och träningsdata. Åtgärden kan inte ångras." }, "menu": { "objects": "Objekt", @@ -159,5 +169,11 @@ "descriptionState": "Redigera klasserna för denna tillståndsklassificeringsmodell. Ändringar kräver omträning av modellen.", "descriptionObject": "Redigera objekttyp och klassificeringstyp för denna objektklassificeringsmodell.", "stateClassesInfo": "Observera: För att ändra tillståndsklasser måste modellen omtränas med de uppdaterade klasserna." + }, + "tooltip": { + "trainingInProgress": "Modellen tränar för närvarande", + "noNewImages": "Inga nya bilder att träna. Klassificera fler bilder i datasetet först.", + "noChanges": "Inga ändringar i datamängden sedan senaste träningen.", + "modelNotReady": "Modellen är inte redo för träning" } } diff --git a/web/public/locales/sv/views/events.json b/web/public/locales/sv/views/events.json index aed86c7ea..4d39c8fed 100644 --- a/web/public/locales/sv/views/events.json +++ b/web/public/locales/sv/views/events.json @@ -40,8 +40,8 @@ "detail": { "noDataFound": "Inga detaljerade data att granska", "aria": "Växla detaljvy", - "trackedObject_one": "objekt", - "trackedObject_other": "objekt", + "trackedObject_one": "{{count}} objekt", + "trackedObject_other": "{{count}} objekt", "noObjectDetailData": "Inga objektdetaljdata tillgängliga.", "label": "Detalj", "settings": "Detaljvy inställningar", diff --git a/web/public/locales/sv/views/explore.json b/web/public/locales/sv/views/explore.json index b66acead6..ece0f27f2 100644 --- a/web/public/locales/sv/views/explore.json +++ b/web/public/locales/sv/views/explore.json @@ -110,7 +110,8 @@ "video": "video", "snapshot": "ögonblicksbild", "object_lifecycle": "objektets livscykel", - "thumbnail": "miniatyrbild" + "thumbnail": "miniatyrbild", + "tracking_details": "spårningsdetaljer" }, "trackedObjectDetails": "Detaljer om spårade objekt", "objectLifecycle": { @@ -226,7 +227,9 @@ "success": "Spårat objekt har raderats.", "error": "Misslyckades med att ta bort spårat objekt: {{errorMessage}}" } - } + }, + "previousTrackedObject": "Föregående spårade objekt", + "nextTrackedObject": "Nästa spårade objekt" }, "aiAnalysis": { "title": "AI-analys" @@ -252,7 +255,7 @@ "faceOrLicense_plate": "{{attribute}} upptäckt för {{label}}", "other": "{{label}} igenkänd som {{attribute}}" }, - "gone": "{{label}} vänster", + "gone": "{{label}} lämnade", "heard": "{{label}} hördes", "external": "{{label}} upptäckt", "header": { diff --git a/web/public/locales/sv/views/live.json b/web/public/locales/sv/views/live.json index 65b4667c1..d6eb6d71f 100644 --- a/web/public/locales/sv/views/live.json +++ b/web/public/locales/sv/views/live.json @@ -73,8 +73,8 @@ "disable": "Avaktivera ljudaktivering" }, "autotracking": { - "enable": "Aktivera automatisk panorering", - "disable": "Avaktivera automatisk panorering" + "enable": "Aktivera Autospårning", + "disable": "Avaktivera Autospårning" }, "notifications": "Notifikationer", "audio": "Ljud", @@ -174,7 +174,11 @@ "noCameras": { "title": "Inga kameror konfigurerade", "description": "Börja med att ansluta en kamera till Frigate.", - "buttonText": "Lägg till kamera" + "buttonText": "Lägg till kamera", + "restricted": { + "title": "Inga kameror tillgängliga", + "description": "Du har inte behörighet att visa några kameror i den här gruppen." + } }, "snapshot": { "takeSnapshot": "Ladda ner omedelbar ögonblicksbild", diff --git a/web/public/locales/sv/views/settings.json b/web/public/locales/sv/views/settings.json index 0045d30bb..3d4a018e8 100644 --- a/web/public/locales/sv/views/settings.json +++ b/web/public/locales/sv/views/settings.json @@ -2,7 +2,7 @@ "documentTitle": { "camera": "Kamerainställningar - Frigate", "default": "Inställningar - Frigate", - "general": "Allmänna inställningar - Frigate", + "general": "Användargränssnitt Inställningar - Frigate", "authentication": "Autentiseringsinställningar - Frigate", "classification": "Klassificeringsinställningar - Frigate", "masksAndZones": "Maskerings- och zonverktyg - Frigate", @@ -15,7 +15,7 @@ "cameraReview": "Kameragranskningsinställningar - Frigate" }, "general": { - "title": "Allmänna Inställningar", + "title": "UI inställningar", "liveDashboard": { "automaticLiveView": { "desc": "Automatiskt byte till kamera där aktivitet registreras. Inaktivering av denna inställning gör att en statisk bild visas i Live Panelen som uppdateras en gång per minut.", @@ -29,6 +29,10 @@ "displayCameraNames": { "label": "Visa alltid kameranamn", "desc": "Visa alltid kameranamnen i ett chip i instrumentpanelen för livevisning med flera kameror." + }, + "liveFallbackTimeout": { + "label": "Live spelare reserv timeout", + "desc": "När en kameras högkvalitativa liveström inte är tillgänglig, återgå till lågbandbreddsläge efter så här många sekunder. Standard: 3." } }, "storedLayouts": { @@ -439,7 +443,7 @@ "desc": "Visa avgränsningsrutor runt spårade objekt", "colors": { "label": "Färger för objektgränser", - "info": "
  • Vid uppstart tilldelas olika färger till varje objektetikett
  • En mörkblå tunn linje indikerar att objektet inte detekteras vid denna aktuella tidpunkt
  • En grå tunn linje indikerar att objektet detekteras som stillastående
  • En tjock linje indikerar att objektet är föremål för automatisk spårning (när det är aktiverat)
  • " + "info": "
  • Vid uppstart tilldelas olika färger till varje objektetikett
  • En mörkblå tunn linje indikerar att objektet inte detekteras vid denna aktuella tidpunkt
  • En grå tunn linje indikerar att objektet detekteras som stillastående
  • En tjock linje indikerar att objektet är föremål för autospårning (när det är aktiverat)
  • " } }, "timestamp": { @@ -645,7 +649,7 @@ "updateCameras": "Kameror uppdaterade för roll {{role}}", "deleteRole": "Roll {{role}} raderad", "userRolesUpdated_one": "{{count}} användare som tilldelats den här rollen har uppdaterats till 'tittare', vilket har åtkomst till alla kameror.", - "userRolesUpdated_other": "" + "userRolesUpdated_other": "{{count}} användare som tilldelats den här rollen har uppdaterats till 'tittare', vilket har åtkomst till alla kameror." }, "error": { "createRoleFailed": "Misslyckades att skapa roll: {{errorMessage}}", @@ -866,7 +870,8 @@ "steps": { "nameAndConnection": "Namn och anslutning", "streamConfiguration": "Strömkonfiguration", - "validationAndTesting": "Validering och testning" + "validationAndTesting": "Validering och testning", + "probeOrSnapshot": "Prob eller ögonblicksbild" }, "save": { "success": "Ny kamera {{cameraName}} har sparats.", @@ -883,7 +888,7 @@ "testFailed": "Strömtest misslyckades: {{error}}" }, "step1": { - "description": "Ange dina kamerauppgifter och testa anslutningen.", + "description": "Ange dina kamerauppgifter och välj att undersöka kameran eller manuellt välja märke.", "cameraName": "Kameranamn", "cameraNamePlaceholder": "t.ex. ytterdörr eller Översikt över bakgård", "host": "Värd-/IP-adress", @@ -923,10 +928,19 @@ "testing": { "probingMetadata": "Undersöker kamerans metadata...", "fetchingSnapshot": "Hämtar kamerabild..." - } + }, + "connectionSettings": "Anslutningsinställningar", + "detectionMethod": "Strömdetekteringsmetod", + "onvifPort": "ONVIF-port", + "probeMode": "Undersök kameran", + "manualMode": "Manuellt val", + "detectionMethodDescription": "Undersök kameran med ONVIF (om det stöds) för att hitta kameraströms-URL:er, eller välj kameramärke manuellt för att använda fördefinierade URL:er. För att ange en anpassad RTSP-URL, välj den manuella metoden och välj \"Annat\".", + "onvifPortDescription": "För kameror som stöder ONVIF är detta vanligtvis 80 eller 8080.", + "useDigestAuth": "Använd digest-autentisering", + "useDigestAuthDescription": "Använd HTTP-sammanfattningsautentisering för ONVIF. Vissa kameror kan kräva ett dedikerat ONVIF-användarnamn/lösenord istället för standardadministratörsanvändaren." }, "step2": { - "description": "Konfigurera strömningsroller och lägg till ytterligare strömmar för din kamera.", + "description": "Undersök kameran efter tillgängliga strömmar eller konfigurera manuella inställningar baserat på din valda detekteringsmetod.", "streamsTitle": "Kameraströmmar", "addStream": "Lägg till ström", "addAnotherStream": "Lägg till ytterligare en ström", @@ -945,8 +959,8 @@ "audio": "Ljud" }, "testStream": "Testa anslutning", - "testSuccess": "Ström testet lyckades!", - "testFailed": "Ström testet misslyckades", + "testSuccess": "Anslutningstestet lyckades!", + "testFailed": "Anslutningstestet misslyckades. Kontrollera dina indata och försök igen.", "testFailedTitle": "Testet misslyckades", "connected": "Ansluten", "notConnected": "Inte ansluten", @@ -962,10 +976,42 @@ "featuresPopover": { "title": "Strömfunktioner", "description": "Använd go2rtc-omströmning för att minska anslutningar till din kamera." + }, + "streamDetails": "Streamdetaljer", + "probing": "Undersöker kameran...", + "retry": "Försöka igen", + "testing": { + "probingMetadata": "Undersöker kamerans metadata...", + "fetchingSnapshot": "Hämtar kamerabild..." + }, + "probeFailed": "Misslyckades med att undersöka kameran: {{error}}", + "probingDevice": "Undersöker enheten...", + "probeSuccessful": "Kontroll lyckades", + "probeError": "Kontroll fel", + "probeNoSuccess": "Kontroll misslyckades", + "deviceInfo": "Enhetsinformation", + "manufacturer": "Tillverkare", + "model": "Modell", + "firmware": "Inbyggd programvara", + "profiles": "Profiler", + "ptzSupport": "PTZ-stöd", + "autotrackingSupport": "Stöd för Autospårning", + "presets": "Förinställningar", + "rtspCandidates": "RTSP-kandidater", + "rtspCandidatesDescription": "Följande RTSP-URL:er hittades från kamera kontrollen. Testa anslutningen för att visa strömmetadata.", + "noRtspCandidates": "Inga RTSP-URL:er hittades från kameran. Dina inloggningsuppgifter kan vara felaktiga, eller så kanske kameran inte stöder ONVIF eller metoden som används för att hämta RTSP-URL:er. Gå tillbaka och ange RTSP-URL:en manuellt.", + "candidateStreamTitle": "Kandidat {{number}}", + "useCandidate": "Använda", + "uriCopy": "Kopiera", + "uriCopied": "URI kopierad till urklipp", + "testConnection": "Testa anslutning", + "toggleUriView": "Klicka för att växla mellan fullständig URI-vy", + "errors": { + "hostRequired": "Värd-/IP-adress krävs" } }, "step3": { - "description": "Slutgiltig validering och analys innan du sparar din nya kamera. Anslut varje ström innan du sparar.", + "description": "Konfigurera strömningsroller och lägg till ytterligare strömmar för din kamera.", "validationTitle": "Strömvalidering", "connectAllStreams": "Anslut alla strömmar", "reconnectionSuccess": "Återanslutningen lyckades.", @@ -1006,7 +1052,91 @@ "resolutionLow": "En upplösning på {{resolution}} kan vara för låg för tillförlitlig detektering av små objekt." }, "ffmpegModule": "Använd läge för strömkompatibilitet", - "ffmpegModuleDescription": "Om strömmen inte läses in efter flera försök, prova att aktivera detta. När det är aktiverat kommer Frigate att använda ffmpeg-modulen med go2rtc. Detta kan ge bättre kompatibilitet med vissa kameraströmmar." + "ffmpegModuleDescription": "Om strömmen inte läses in efter flera försök, prova att aktivera detta. När det är aktiverat kommer Frigate att använda ffmpeg-modulen med go2rtc. Detta kan ge bättre kompatibilitet med vissa kameraströmmar.", + "streamsTitle": "Kameraströmmar", + "addStream": "Lägg till ström", + "addAnotherStream": "Lägg till ytterligare en ström", + "streamUrl": "Stream-URL", + "streamUrlPlaceholder": "rtsp://användarnamn:lösenord@värd:portnummer/plats", + "selectStream": "Välj en ström", + "searchCandidates": "Sök kandidater...", + "noStreamFound": "Ingen ström hittades", + "url": "URL", + "resolution": "Upplösning", + "selectResolution": "Välj upplösning", + "quality": "Kvalitet", + "selectQuality": "Välj kvalitet", + "roleLabels": { + "detect": "Objektdetektering", + "record": "Inspelning", + "audio": "Ljud" + }, + "testStream": "Testa anslutning", + "testSuccess": "Streamtestet lyckades!", + "testFailed": "Strömtestet misslyckades", + "testFailedTitle": "Testet misslyckades", + "connected": "Ansluten", + "notConnected": "Inte ansluten", + "featuresTitle": "Funktioner", + "go2rtc": "Minska anslutningar till kameran", + "detectRoleWarning": "Minst en ström måste ha rollen \"upptäck\" för att fortsätta.", + "rolesPopover": { + "title": "Stream-roller", + "detect": "Huvud kamera flöde för objektdetektering.", + "record": "Sparar segment av videoflödet baserat på konfigurationsinställningar.", + "audio": "Flöde för ljudbaserad detektering." + }, + "featuresPopover": { + "title": "Streamfunktioner", + "description": "Använd go2rtc-omströmning för att minska anslutningar till din kamera." + } + }, + "step4": { + "description": "Slutgiltig validering och analys innan du sparar din nya kamera. Anslut varje ström innan du sparar.", + "validationTitle": "Ström validering", + "connectAllStreams": "Anslut alla strömmar", + "reconnectionSuccess": "Återanslutningen lyckades.", + "reconnectionPartial": "Vissa strömmar kunde inte återanslutas.", + "streamUnavailable": "Förhandsgranskning av strömmen är inte tillgänglig", + "reload": "Ladda om", + "connecting": "Ansluter...", + "streamTitle": "Ström {{number}}", + "valid": "Giltig", + "failed": "Misslyckades", + "notTested": "Inte testad", + "connectStream": "Ansluta", + "connectingStream": "Ansluter", + "disconnectStream": "Koppla från", + "estimatedBandwidth": "Uppskattad bandbredd", + "roles": "Roller", + "ffmpegModule": "Använd strömkompatibilitetsläge", + "ffmpegModuleDescription": "Om strömmen inte laddas efter flera försök, försök att aktivera detta. När det är aktiverat kommer Frigate att använda ffmpeg-modulen med go2rtc. Detta kan ge bättre kompatibilitet med vissa kameraströmmar.", + "none": "Ingen", + "error": "Fel", + "streamValidated": "Ström {{number}} har validerats", + "streamValidationFailed": "Validering av ström {{number}} misslyckades", + "saveAndApply": "Spara ny kamera", + "saveError": "Ogiltig konfiguration. Kontrollera dina inställningar.", + "issues": { + "title": "Ström validering", + "videoCodecGood": "Videokodeken är {{codec}}.", + "audioCodecGood": "Ljudkodeken är {{codec}}.", + "resolutionHigh": "En upplösning på {{resolution}} kan orsaka ökad resursanvändning.", + "resolutionLow": "En upplösning på {{resolution}} kan vara för låg för tillförlitlig detektering av små objekt.", + "noAudioWarning": "Inget ljud upptäcktes för den här strömmen, inspelningarna kommer inte att ha ljud.", + "audioCodecRecordError": "AAC-ljudkodeken krävs för att stödja ljud i inspelningar.", + "audioCodecRequired": "En ljudström krävs för att stödja ljuddetektering.", + "restreamingWarning": "Att minska anslutningarna till kameran för inspelningsströmmen kan öka CPU-användningen något.", + "brands": { + "reolink-rtsp": "Reolink RTSP rekommenderas inte. Aktivera HTTP i kamerans firmwareinställningar och starta om guiden." + }, + "dahua": { + "substreamWarning": "Delström 1 är låst till en låg upplösning. Många Dahua/Amcrest/EmpireTech-kameror stöder ytterligare delströmmar som måste aktiveras i kamerans inställningar. Det rekommenderas att kontrollera och använda dessa strömmar om de är tillgängliga." + }, + "hikvision": { + "substreamWarning": "Delström 1 är låst till en låg upplösning. Många Hikvision-kameror stöder ytterligare delströmmar som måste aktiveras i kamerans inställningar. Det rekommenderas att kontrollera och använda dessa strömmar om de är tillgängliga." + } + } } }, "cameraManagement": { diff --git a/web/public/locales/sv/views/system.json b/web/public/locales/sv/views/system.json index 87465b9e6..e60c0cbee 100644 --- a/web/public/locales/sv/views/system.json +++ b/web/public/locales/sv/views/system.json @@ -180,7 +180,14 @@ "plate_recognition_speed": "Hastighet för igenkänning av nummerplåtar", "text_embedding_speed": "Textinbäddningshastighet", "yolov9_plate_detection_speed": "YOLOv9 nummerplåt detekterings hastighet", - "yolov9_plate_detection": "YOLOv9 nummerplåt detektering" - } + "yolov9_plate_detection": "YOLOv9 nummerplåt detektering", + "review_description": "Recensionsbeskrivning", + "review_description_speed": "Recensionsbeskrivning Hastighet", + "review_description_events_per_second": "Recensionsbeskrivning", + "object_description": "Objekt beskrivning", + "object_description_speed": "Objekt beskrivning hastighet", + "object_description_events_per_second": "Objekt beskrivning" + }, + "averageInf": "Genomsnittlig inferenstid" } } From fcd8823c6f52167002a9e8876d66e76361b02e13 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:25 +0100 Subject: [PATCH 21/24] Translated using Weblate (Slovak) Currently translated at 97.6% (125 of 128 strings) Translated using Weblate (Slovak) Currently translated at 99.1% (115 of 116 strings) Translated using Weblate (Slovak) Currently translated at 99.5% (213 of 214 strings) Translated using Weblate (Slovak) Currently translated at 83.8% (536 of 639 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Slovak) Currently translated at 100.0% (92 of 92 strings) Co-authored-by: Hosted Weblate Co-authored-by: Michal K Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/sk/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/sk/ Translation: Frigate NVR/common Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/sk/common.json | 12 +++++-- .../locales/sk/views/classificationModel.json | 31 ++++++++++++++++--- web/public/locales/sk/views/explore.json | 7 +++-- web/public/locales/sk/views/live.json | 6 +++- web/public/locales/sk/views/settings.json | 20 +++++++++--- web/public/locales/sk/views/system.json | 15 +++++++-- 6 files changed, 74 insertions(+), 17 deletions(-) diff --git a/web/public/locales/sk/common.json b/web/public/locales/sk/common.json index a1a13eed1..6f29b78fa 100644 --- a/web/public/locales/sk/common.json +++ b/web/public/locales/sk/common.json @@ -78,7 +78,10 @@ "formattedTimestampFilename": { "12hour": "MM-dd-yy-h-mm-ss-a", "24hour": "MM-dd-yy-HH-mm-ss" - } + }, + "inProgress": "Spracováva sa", + "invalidStartTime": "Neplatný čas štartu", + "invalidEndTime": "Neplatný čas ukončenia" }, "selectItem": "Vyberte {{item}}", "unit": { @@ -104,7 +107,9 @@ "back": "Choď späť", "hide": "Skryť {{item}}", "show": "Zobraziť {{item}}", - "ID": "ID" + "ID": "ID", + "none": "None", + "all": "Všetko" }, "button": { "apply": "Použiť", @@ -141,7 +146,8 @@ "next": "Ďalej", "unsuspended": "Zrušte pozastavenie", "play": "Hrať", - "unselect": "Zrušte výber" + "unselect": "Zrušte výber", + "continue": "Pokračovať" }, "menu": { "system": "Systém", diff --git a/web/public/locales/sk/views/classificationModel.json b/web/public/locales/sk/views/classificationModel.json index 0442406fc..5e857cfac 100644 --- a/web/public/locales/sk/views/classificationModel.json +++ b/web/public/locales/sk/views/classificationModel.json @@ -7,7 +7,8 @@ "deleteImages": "Odstrániť obrázky", "trainModel": "Model vlaku", "addClassification": "Pridať klasifikáciu", - "deleteModels": "Odstrániť modely" + "deleteModels": "Odstrániť modely", + "editModel": "Editovať model" }, "toast": { "success": { @@ -18,19 +19,26 @@ "trainingModel": "Úspešne spustený modelový tréning.", "deletedModel_one": "Úspešne zmazané {{count}} model (y)", "deletedModel_few": "", - "deletedModel_other": "" + "deletedModel_other": "", + "updatedModel": "Úspešne zmenená konfigurácia modelu", + "renamedCategory": "Úspešne premenovaná trieda na" }, "error": { "deleteImageFailed": "Nepodarilo sa odstrániť: {{errorMessage}}", "deleteCategoryFailed": "Nepodarilo sa odstrániť triedu: {{errorMessage}}", "categorizeFailed": "Nepodarilo sa kategorizovať obrázok: {{errorMessage}}", "trainingFailed": "Nepodarilo sa spustiť trénovanie modelu: {{errorMessage}}", - "deleteModelFailed": "Nepodarilo sa odstrániť model: {{errorMessage}}" + "deleteModelFailed": "Nepodarilo sa odstrániť model: {{errorMessage}}", + "trainingFailedToStart": "Neuspešny štart trenovania modelu:", + "updateModelFailed": "Chyba pri úprave modelu:", + "renameCategoryFailed": "Chyba pri premenovani triedy:" } }, "deleteCategory": { "title": "Odstrániť triedu", - "desc": "Naozaj chcete odstrániť triedu {{name}}? Týmto sa natrvalo odstránia všetky súvisiace obrázky a bude potrebné pretrénovať model." + "desc": "Naozaj chcete odstrániť triedu {{name}}? Týmto sa natrvalo odstránia všetky súvisiace obrázky a bude potrebné pretrénovať model.", + "minClassesTitle": "Nemožete zmazať triedu", + "minClassesDesc": "Klasifikačný model musí mať aspoň 2 triedy. Pred odstránením tejto triedy pridajte ďalšiu triedu." }, "deleteDatasetImages": { "title": "Odstrániť obrázky množiny údajov", @@ -148,5 +156,20 @@ "menu": { "objects": "Objekty", "states": "Štátov" + }, + "details": { + "scoreInfo": "Skóre predstavuje priemernú istotu klasifikácie naprieč detekciami tohoto objektu." + }, + "tooltip": { + "trainingInProgress": "Model sa aktuálne trénuje", + "noNewImages": "Žiadne nové obrázky na trénovanie. Najskor klasifikuj nové obrazky do datasetu.", + "noChanges": "Žiadne zmeny v datasete od posledného tréningu.", + "modelNotReady": "Model nie je pripravený na trénovanie." + }, + "edit": { + "title": "Nastavenie modelu", + "descriptionState": "Upravte triedy pre tento model klasifikácie. Zmeny budú vyžadovať pretrénovanie modelu.", + "descriptionObject": "Upravte typ objektu a typ klasifikácie pre tento model klasifikácie.", + "stateClassesInfo": "Poznámka: Zmena tried stavov vyžaduje pretrénovanie modelu s aktualizovanými triedami." } } diff --git a/web/public/locales/sk/views/explore.json b/web/public/locales/sk/views/explore.json index e406dfa89..6e2cf7fc7 100644 --- a/web/public/locales/sk/views/explore.json +++ b/web/public/locales/sk/views/explore.json @@ -112,7 +112,8 @@ "snapshot": "snímka", "video": "video", "object_lifecycle": "životný cyklus objektu", - "thumbnail": "Náhľad" + "thumbnail": "Náhľad", + "tracking_details": "Pohybové detaili" }, "objectLifecycle": { "title": "Životný cyklus Objektu", @@ -228,7 +229,9 @@ "success": "Sledovaný objekt úspešne zmazaný.", "error": "Sledovaný objekt sa nepodarilo zmazať: {{errorMessage}}" } - } + }, + "previousTrackedObject": "Predchádzajúci trackovaný objekt", + "nextTrackedObject": "Ďalší trackovaný objekt" }, "aiAnalysis": { "title": "Analýza AI" diff --git a/web/public/locales/sk/views/live.json b/web/public/locales/sk/views/live.json index fcc9df06d..546a6035e 100644 --- a/web/public/locales/sk/views/live.json +++ b/web/public/locales/sk/views/live.json @@ -172,7 +172,11 @@ "noCameras": { "title": "Nie sú konfigurované žiadne kamery", "description": "Začnite tým, že pripojíte kameru do Frigate.", - "buttonText": "Pridať kameru" + "buttonText": "Pridať kameru", + "restricted": { + "title": "Žiadne kamery k dispozícii", + "description": "Nemáte povolenie na zobrazenie akýchkoľvek kamier v tejto skupine." + } }, "snapshot": { "takeSnapshot": "Stiahnite si okamžité snímky", diff --git a/web/public/locales/sk/views/settings.json b/web/public/locales/sk/views/settings.json index 424ce5f0c..8c4ae5bd3 100644 --- a/web/public/locales/sk/views/settings.json +++ b/web/public/locales/sk/views/settings.json @@ -7,7 +7,7 @@ "masksAndZones": "Editor masky a zón - Frigate", "motionTuner": "Ladič detekcie pohybu - Frigate", "object": "Ladenie - Frigate", - "general": "Všeobecné nastavenia – Frigate", + "general": "UI nastavenia – Frigate", "frigatePlus": "Nastavenia Frigate+ – Frigate", "notifications": "Nastavenia upozornení – Frigate", "cameraManagement": "Manažment kamier - Frigate", @@ -39,7 +39,7 @@ "noCamera": "Žiadna Kamera" }, "general": { - "title": "Hlavné nastavenia", + "title": "UI nastavenia", "liveDashboard": { "title": "Živý Dashboard", "automaticLiveView": { @@ -53,6 +53,10 @@ "displayCameraNames": { "label": "Vždy Zobraziť názvy kamier", "desc": "Vždy zobrazujte názvy kamier v čipe na ovládacom paneli živého náhľadu z viacerých kamier." + }, + "liveFallbackTimeout": { + "label": "Časový limit", + "desc": "Keď je kamerový vysoko kvalitný živý stream nedostupný, prejdite späť na režim nízkej kvality. Predvolené: 3." } }, "storedLayouts": { @@ -482,7 +486,8 @@ "steps": { "nameAndConnection": "Meno a pripojenie", "streamConfiguration": "Konfigurácia prúdu", - "validationAndTesting": "Platnosť a testovanie" + "validationAndTesting": "Platnosť a testovanie", + "probeOrSnapshot": "Probe alebo Snapshot" }, "save": { "success": "Úspešne zachránil novú kameru {{cameraName}}.", @@ -539,7 +544,14 @@ "testing": { "probingMetadata": "Skúmanie metadát kamery...", "fetchingSnapshot": "Načítava sa snímka z kamery..." - } + }, + "connectionSettings": "Nastavenie pripojenia", + "detectionMethod": "Stream Detekcia Metóda", + "onvifPort": "ONVIF Port", + "probeMode": "Probe kamera", + "manualMode": "Ručný výber", + "detectionMethodDescription": "Vyskúša cez ONVIF (ak je podporovaný) nájsť kamery streamové adresy, alebo ručne vyberte značku kamery a jej preddefinované URL. Ak chcete zadať vlastnú URL RTSP, vyberte manuálne zadanie a označte \"Ostatné\".", + "onvifPortDescription": "Pre kamery, ktoré podporujú ONVIF, to je zvyčajne 80 alebo 8080." }, "step2": { "description": "Konfigurovať prúdové role a pridať ďalšie prúdy pre vašu kameru.", diff --git a/web/public/locales/sk/views/system.json b/web/public/locales/sk/views/system.json index e2ea330e6..c017f974c 100644 --- a/web/public/locales/sk/views/system.json +++ b/web/public/locales/sk/views/system.json @@ -76,7 +76,12 @@ } }, "npuUsage": "Použitie NPU", - "npuMemory": "Pamäť NPU" + "npuMemory": "Pamäť NPU", + "intelGpuWarning": { + "title": "Intel GPU Stats Upozornenie", + "message": "Štatistiky GPU nedostupné", + "description": "Toto je známa chyba v Štatistike správ Intel (intel_gpu_top) kde sa rozpadne a opakovane vráti používanie GPU 0% aj v prípadoch, keď hardvér detekcie objektov správne beží na (i)GPU. Toto nie je Frigate chyba. Môžete reštartovať a tak dočasne opraviť problém a potvrdiť, že GPU funguje správne. Toto nemá vplyv na výkon." + } }, "otherProcesses": { "title": "Iné procesy", @@ -180,7 +185,11 @@ "plate_recognition_speed": "Rýchlosť rozpoznávania ŠPZ", "text_embedding_speed": "Rýchlosť vkladania textu", "yolov9_plate_detection_speed": "YOLOv9 rýchlosť detekcie ŠPZ", - "yolov9_plate_detection": "YOLOv9 Detekcia ŠPZ" - } + "yolov9_plate_detection": "YOLOv9 Detekcia ŠPZ", + "review_description": "Popis recenzie", + "review_description_speed": "Popis recenzie Rýchlosťi", + "review_description_events_per_second": "Popis" + }, + "averageInf": "Priemerný čas inferencie" } } From a151df29d43191c120fdff4d5f1c065167f22e90 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:27 +0100 Subject: [PATCH 22/24] Translated using Weblate (Slovenian) Currently translated at 100.0% (214 of 214 strings) Co-authored-by: Hosted Weblate Co-authored-by: Kaboom Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/sl/ Translation: Frigate NVR/common --- web/public/locales/sl/common.json | 51 ++++++++++++++++++++++++++----- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/web/public/locales/sl/common.json b/web/public/locales/sl/common.json index 4468781f5..25bc0644e 100644 --- a/web/public/locales/sl/common.json +++ b/web/public/locales/sl/common.json @@ -51,7 +51,7 @@ "h": "{{time}}h", "m": "{{time}}m", "s": "{{time}}s", - "yr": "le", + "yr": "{{time}}l.", "formattedTimestamp": { "12hour": "d MMM, h:mm:ss aaa", "24hour": "d MMM, HH:mm:ss" @@ -84,7 +84,10 @@ "formattedTimestampFilename": { "12hour": "dd-MM-yy-h-mm-ss-a", "24hour": "dd-MM-yy-HH-mm-ss" - } + }, + "invalidStartTime": "Napačen čas začetka", + "invalidEndTime": "Napačen čas konca", + "inProgress": "V teku" }, "menu": { "live": { @@ -152,7 +155,13 @@ "bg": "Български (bulgarščina)", "withSystem": { "label": "Uporabi sistemske nastavitve za jezik" - } + }, + "ptBR": "Português brasileiro (Brazilska portugalščina)", + "ca": "Català (Katalonščina)", + "lt": "Lietuvių (Litovščina)", + "gl": "Galego (Galicijščina)", + "id": "Bahasa Indonesia (Indonezijščina)", + "ur": "اردو (Urdujščina)" }, "appearance": "Izgled", "darkMode": { @@ -179,7 +188,9 @@ "anonymous": "anonimen", "logout": "Odjava", "setPassword": "Nastavi Geslo" - } + }, + "uiPlayground": "UI Peskovnik", + "classification": "Klasifikacija" }, "button": { "apply": "Uporabi", @@ -216,7 +227,8 @@ "unselect": "Odznači", "export": "Izvoz", "deleteNow": "Izbriši Zdaj", - "next": "Naprej" + "next": "Naprej", + "continue": "Nadaljuj" }, "unit": { "speed": { @@ -226,10 +238,23 @@ "length": { "feet": "čevelj", "meters": "metri" + }, + "data": { + "kbps": "kB/s", + "mbps": "MB/s", + "gbps": "GB/s", + "kbph": "kB/uro", + "mbph": "MB/uro", + "gbph": "GB/uro" } }, "label": { - "back": "Pojdi nazaj" + "back": "Pojdi nazaj", + "hide": "Skrij {{item}}", + "show": "Prikaži {{item}}", + "ID": "ID", + "none": "Brez", + "all": "Vse" }, "pagination": { "next": { @@ -270,5 +295,17 @@ "title": "404", "desc": "Stran ni najdena" }, - "readTheDocumentation": "Preberite dokumentacijo" + "readTheDocumentation": "Preberite dokumentacijo", + "list": { + "two": "{{0}} in {{1}}", + "many": "{{items}}, in {{last}}", + "separatorWithSpace": ", " + }, + "field": { + "optional": "Izbirno", + "internalID": "Interni ID, ki ga Frigate uporablja v konfiguraciji in podatkovni bazi" + }, + "information": { + "pixels": "{{area}}px" + } } From 84cf7748c7d63a06aa89764dca0906d28fd491f7 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:28 +0100 Subject: [PATCH 23/24] Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (125 of 125 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (90 of 90 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Chinese (Simplified Han script)) Currently translated at 100.0% (214 of 214 strings) Co-authored-by: GuoQing Liu <842607283@qq.com> Co-authored-by: Hosted Weblate Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/zh_Hans/ Translation: Frigate NVR/common Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/zh-CN/common.json | 17 +- .../zh-CN/views/classificationModel.json | 22 ++- web/public/locales/zh-CN/views/events.json | 4 +- web/public/locales/zh-CN/views/explore.json | 19 ++- .../locales/zh-CN/views/faceLibrary.json | 2 +- web/public/locales/zh-CN/views/live.json | 2 +- web/public/locales/zh-CN/views/settings.json | 154 ++++++++++++++++-- web/public/locales/zh-CN/views/system.json | 11 +- 8 files changed, 195 insertions(+), 36 deletions(-) diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json index d4e3aba21..b9bdbad33 100644 --- a/web/public/locales/zh-CN/common.json +++ b/web/public/locales/zh-CN/common.json @@ -75,7 +75,10 @@ "formattedTimestampMonthDayYear": { "12hour": "yy年MM月dd日", "24hour": "yy年MM月dd日" - } + }, + "inProgress": "进行中", + "invalidStartTime": "无效的开始时间", + "invalidEndTime": "无效的结束时间" }, "unit": { "speed": { @@ -99,7 +102,9 @@ "back": "返回", "hide": "隐藏 {{item}}", "show": "显示 {{item}}", - "ID": "ID" + "ID": "ID", + "none": "无", + "all": "所有" }, "pagination": { "label": "分页", @@ -148,7 +153,8 @@ "deleteNow": "立即删除", "next": "下一个", "cameraAudio": "摄像头音频", - "twoWayTalk": "双向对话" + "twoWayTalk": "双向对话", + "continue": "继续" }, "menu": { "system": "系统", @@ -248,7 +254,8 @@ "setPassword": "设置密码", "title": "用户" }, - "restart": "重启 Frigate" + "restart": "重启 Frigate", + "classification": "目标分类" }, "toast": { "copyUrlToClipboard": "已复制链接到剪贴板。", @@ -284,7 +291,7 @@ "list": { "two": "{{0}} 和 {{1}}", "many": "{{items}} 以及 {{last}}", - "separatorWithSpace": ", " + "separatorWithSpace": "、 " }, "field": { "optional": "可选", diff --git a/web/public/locales/zh-CN/views/classificationModel.json b/web/public/locales/zh-CN/views/classificationModel.json index 6d59c1431..5cf463e5c 100644 --- a/web/public/locales/zh-CN/views/classificationModel.json +++ b/web/public/locales/zh-CN/views/classificationModel.json @@ -18,20 +18,25 @@ "trainedModel": "训练模型成功。", "trainingModel": "已开始训练模型。", "deletedModel_other": "已删除 {{count}} 个模型", - "updatedModel": "已更新模型配置" + "updatedModel": "已更新模型配置", + "renamedCategory": "成功修改类别名称为 {{name}}" }, "error": { "deleteImageFailed": "删除失败:{{errorMessage}}", "deleteCategoryFailed": "删除类别失败:{{errorMessage}}", "categorizeFailed": "图片分类失败:{{errorMessage}}", - "trainingFailed": "开始训练模型失败:{{errorMessage}}", + "trainingFailed": "训练模型失败,请查看 Frigate 日志获取详情。", "deleteModelFailed": "删除模型失败:{{errorMessage}}", - "updateModelFailed": "更新模型失败:{{errorMessage}}" + "updateModelFailed": "更新模型失败:{{errorMessage}}", + "trainingFailedToStart": "开始训练模型失败:{{errorMessage}}", + "renameCategoryFailed": "修改类别名称失败:{{errorMessage}}" } }, "deleteCategory": { "title": "删除类别", - "desc": "确定要删除类别 {{name}} 吗?此操作将永久删除所有关联的图片,并需要重新训练模型。" + "desc": "确定要删除类别 {{name}} 吗?此操作将永久删除所有关联的图片,并需要重新训练模型。", + "minClassesTitle": "无法删除此类别", + "minClassesDesc": "分类模型必须至少有2个类别。你需要先添加一个新的类别,然后再删除当前这个类别。" }, "deleteDatasetImages": { "title": "删除图片数据集", @@ -138,7 +143,8 @@ "generationFailed": "生成失败,请重试。", "classifyFailed": "图片分类失败:{{error}}" }, - "generateSuccess": "样本图片生成成功" + "generateSuccess": "样本图片生成成功", + "allImagesRequired_other": "请对所有图片进行分类。还有 {{count}} 张图片需要分类。" } }, "deleteModel": { @@ -158,5 +164,11 @@ "descriptionState": "编辑此状态分类模型的类别;更改后需要重新训练模型。", "descriptionObject": "编辑此目标分类模型的目标类型和分类类型。", "stateClassesInfo": "注意:更改状态类别后需使用更新后的类别重新训练模型。" + }, + "tooltip": { + "trainingInProgress": "模型正在训练中", + "noNewImages": "没有新的图片可用于训练。请先对数据集中的更多图片进行分类。", + "noChanges": "自上次训练以来,数据集未作任何更改。", + "modelNotReady": "模型尚未准备好进行训练" } } diff --git a/web/public/locales/zh-CN/views/events.json b/web/public/locales/zh-CN/views/events.json index 8269da7d7..cc6b62561 100644 --- a/web/public/locales/zh-CN/views/events.json +++ b/web/public/locales/zh-CN/views/events.json @@ -41,8 +41,8 @@ "detail": { "noDataFound": "没有可供核查的详细数据", "aria": "切换详细视图", - "trackedObject_one": "目标或物体", - "trackedObject_other": "目标或物体", + "trackedObject_one": "{{count}}个目标或物体", + "trackedObject_other": "{{count}}个目标或物体", "noObjectDetailData": "没有目标详细信息。", "label": "详细信息", "settings": "详细视图设置", diff --git a/web/public/locales/zh-CN/views/explore.json b/web/public/locales/zh-CN/views/explore.json index 45dcd46e8..2ca7558c3 100644 --- a/web/public/locales/zh-CN/views/explore.json +++ b/web/public/locales/zh-CN/views/explore.json @@ -4,14 +4,14 @@ "exploreIsUnavailable": { "title": "浏览功能不可用", "embeddingsReindexing": { - "context": "完成跟踪目标嵌入重新索引后,才可以使用 浏览 功能。", + "context": "完成追踪目标嵌入重新索引后,才可以使用 浏览 功能。", "startingUp": "启动中…", "estimatedTime": "预计剩余时间:", "finishingShortly": "即将完成", "step": { "thumbnailsEmbedded": "缩略图嵌入:", "descriptionsEmbedded": "描述嵌入:", - "trackedObjectsProcessed": "跟踪目标已处理: " + "trackedObjectsProcessed": "追踪目标已处理: " } }, "downloadingModels": { @@ -23,7 +23,7 @@ "textTokenizer": "文本分词器" }, "tips": { - "context": "模型下载完成后,您可能需要重新索引跟踪目标的嵌入。", + "context": "模型下载完成后,您可能需要重新索引追踪目标的嵌入。", "documentation": "阅读文档" }, "error": "发生错误。请检查Frigate日志。" @@ -35,7 +35,8 @@ "snapshot": "快照", "video": "视频", "object_lifecycle": "目标全周期", - "thumbnail": "缩略图" + "thumbnail": "缩略图", + "tracking_details": "追踪详情" }, "objectLifecycle": { "title": "目标全周期", @@ -96,7 +97,7 @@ }, "tips": { "mismatch_other": "检测到 {{count}} 个不可用的目标,并已包含在此核查项中。这些目标可能未达到警报或检测标准,或者已被清理/删除。", - "hasMissingObjects": "如果希望 Frigate 保存以下标签的跟踪目标,请调整您的配置:{{objects}}" + "hasMissingObjects": "如果希望 Frigate 保存 {{objects}} 标签的追踪目标,请调整您的配置。" }, "toast": { "success": { @@ -117,7 +118,7 @@ "editSubLabel": { "title": "编辑子标签", "desc": "为 {{label}} 输入新的子标签", - "descNoLabel": "为此跟踪目标输入新的子标签" + "descNoLabel": "为该追踪目标输入新的子标签" }, "topScore": { "label": "最高得分", @@ -210,7 +211,7 @@ "dialog": { "confirmDelete": { "title": "确认删除", - "desc": "删除此追踪目标后将移除快照、所有已保存的嵌入向量数据以及任何相关的目标追踪详情条目,但在 历史 页面中跟踪对象的录制视频片段不会被删除。

    你确定要继续删除该追踪目标吗?" + "desc": "删除此追踪目标后,将移除快照、所有已保存的嵌入向量数据以及任何相关的目标追踪详情条目,但在 历史 页面中追踪对象的录制视频片段不会被删除。

    你确定要继续删除该追踪目标吗?" } }, "noTrackedObjects": "未找到追踪目标", @@ -223,7 +224,9 @@ "error": "删除追踪目标失败:{{errorMessage}}" } }, - "tooltip": "与 {{type}} 匹配度为 {{confidence}}%" + "tooltip": "与 {{type}} 匹配度为 {{confidence}}%", + "previousTrackedObject": "上一个追踪目标", + "nextTrackedObject": "下一个追踪目标" }, "exploreMore": "浏览更多的 {{label}}", "aiAnalysis": { diff --git a/web/public/locales/zh-CN/views/faceLibrary.json b/web/public/locales/zh-CN/views/faceLibrary.json index d43b1c366..5feae2b2c 100644 --- a/web/public/locales/zh-CN/views/faceLibrary.json +++ b/web/public/locales/zh-CN/views/faceLibrary.json @@ -62,7 +62,7 @@ "deletedFace_other": "成功删除 {{count}} 个 人脸特征。", "deletedName_other": "成功删除 {{count}} 个 人脸特征。", "trainedFace": "人脸特征训练成功。", - "updatedFaceScore": "更新人脸特征评分成功。", + "updatedFaceScore": "更新 {{name}} 人脸特征评分({{score}})成功。", "renamedFace": "成功重命名人脸为{{name}}" }, "error": { diff --git a/web/public/locales/zh-CN/views/live.json b/web/public/locales/zh-CN/views/live.json index 7c4b5f3a4..48daee8b9 100644 --- a/web/public/locales/zh-CN/views/live.json +++ b/web/public/locales/zh-CN/views/live.json @@ -146,7 +146,7 @@ "recording": "录制", "snapshots": "快照", "audioDetection": "音频检测", - "autotracking": "自动跟踪", + "autotracking": "自动追踪", "transcription": "音频转录" }, "history": { diff --git a/web/public/locales/zh-CN/views/settings.json b/web/public/locales/zh-CN/views/settings.json index a12350c14..e5a4a9e9a 100644 --- a/web/public/locales/zh-CN/views/settings.json +++ b/web/public/locales/zh-CN/views/settings.json @@ -7,7 +7,7 @@ "masksAndZones": "遮罩和区域编辑器 - Frigate", "motionTuner": "运动调整器 - Frigate", "object": "调试 - Frigate", - "general": "常规设置 - Frigate", + "general": "页面设置 - Frigate", "frigatePlus": "Frigate+ 设置 - Frigate", "notifications": "通知设置 - Frigate", "enrichments": "增强功能设置 - Frigate", @@ -41,7 +41,7 @@ "noCamera": "没有摄像头" }, "general": { - "title": "常规设置", + "title": "页面设置", "liveDashboard": { "title": "实时监控面板", "automaticLiveView": { @@ -55,6 +55,10 @@ "displayCameraNames": { "label": "始终显示摄像头名称", "desc": "在有多摄像头情况下的实时监控页面,将始终显示摄像头名称标签。" + }, + "liveFallbackTimeout": { + "label": "实时监控播放器回退超时", + "desc": "当摄像头的高清实时监控流不可用时,将在此时间后回退到低带宽模式。默认值:3秒。" } }, "storedLayouts": { @@ -305,7 +309,7 @@ "name": { "title": "区域名称", "inputPlaceHolder": "请输入名称…", - "tips": "名称至少包含两个字符,其中至少需要一个英文字母,且不能和摄像头或其他区域同名。同时,当前仅支持英文与数字组合。" + "tips": "名称至少包含两个字符,且不能和摄像头或其他区域同名。" }, "inertia": { "title": "惯性", @@ -433,7 +437,7 @@ "desc": "将在被追踪的目标周围显示边界框", "colors": { "label": "目标边界框颜色定义", - "info": "
  • 启用后,将会为每个目标的标签分配不同的颜色
  • 深蓝色细线代表该目标或物体在当前时间点未被检测到
  • 灰色细线代表检测到的目标或物体静止不动
  • 粗线表示该目标或物体为自动跟踪的主体(在启动时)
  • " + "info": "
  • 启用后,将会为每个目标的标签分配不同的颜色
  • 深蓝色细线代表该目标或物体在当前时间点未被检测到
  • 灰色细线代表检测到的目标或物体静止不动
  • 粗线表示在启动自动追踪时,该目标为自动追踪的主体
  • " } }, "timestamp": { @@ -934,7 +938,8 @@ "steps": { "nameAndConnection": "名称与连接", "streamConfiguration": "视频流配置", - "validationAndTesting": "验证与测试" + "validationAndTesting": "验证与测试", + "probeOrSnapshot": "探测或快照" }, "save": { "success": "已保存新摄像头 {{cameraName}}。", @@ -951,7 +956,7 @@ "testFailed": "视频流测试失败:{{error}}" }, "step1": { - "description": "请输入你的摄像头信息并测试连接是否正常。", + "description": "请输入你的摄像头信息,并选择是自动探测摄像头信息还是手动指定品牌。", "cameraName": "摄像头名称", "cameraNamePlaceholder": "例如:大门,后院等", "host": "主机/IP地址", @@ -991,10 +996,19 @@ "testing": { "probingMetadata": "正在获取摄像头基本数据……", "fetchingSnapshot": "正在获取摄像头快照……" - } + }, + "connectionSettings": "连接设置", + "detectionMethod": "视频流检测方法", + "onvifPort": "ONVIF 端口", + "probeMode": "探测摄像头", + "manualMode": "手动选择", + "detectionMethodDescription": "如果支持 ONVIF 协议,将使用该协议探测摄像头,以自动获取摄像头视频流地址;若不支持,也可手动选择摄像头品牌来使用预设地址。如需输入自定义RTSP地址,请选择手动模式并选取\"其他\"选项。", + "onvifPortDescription": "对于支持ONVIF协议的摄像头,该端口通常为80或8080。", + "useDigestAuth": "使用摘要认证", + "useDigestAuthDescription": "为ONVIF协议启用HTTP摘要认证。部分摄像头可能需要专用的 ONVIF 用户名/密码,而非默认的admin账户。" }, "step2": { - "description": "配置视频流的功能并为摄像头添加额外的视频流。", + "description": "将根据你选择的检测方式,将会自动查找摄像头可用流配置,或进行手动配置。", "streamsTitle": "摄像头视频流", "addStream": "添加视频流", "addAnotherStream": "添加另一个视频流", @@ -1013,8 +1027,8 @@ "audio": "音频" }, "testStream": "测试连接", - "testSuccess": "视频流测试通过!", - "testFailed": "视频流测试失败", + "testSuccess": "连接测试通过!", + "testFailed": "连接测试失败,请检查输入项后重试。", "testFailedTitle": "测试失败", "connected": "已连接", "notConnected": "未连接", @@ -1030,10 +1044,42 @@ "featuresPopover": { "title": "视频流特殊功能", "description": "将使用go2rtc的转流功能来减少摄像头连接数。" + }, + "streamDetails": "视频流详情", + "probing": "正在检测摄像头中……", + "retry": "重试", + "testing": { + "probingMetadata": "正在查询摄像头参数……", + "fetchingSnapshot": "正在获取摄像头快照……" + }, + "probeFailed": "检测摄像头失败:{{error}}", + "probingDevice": "寻找设备中……", + "probeSuccessful": "检测成功", + "probeError": "检测遇到错误", + "probeNoSuccess": "检测未成功", + "deviceInfo": "设备信息", + "manufacturer": "制造商", + "model": "型号", + "firmware": "固件", + "profiles": "配置文件", + "ptzSupport": "支持 PTZ", + "autotrackingSupport": "支持自动追踪", + "presets": "预设配置", + "rtspCandidates": "RTSP候选地址", + "rtspCandidatesDescription": "通过摄像头自动检测发现了以下RTSP地址。测试连接以查看视频流参数。", + "noRtspCandidates": "未从摄像头检测到任何 RTSP 地址。可能是你的账号密码错误,或者摄像头不支持 ONVIF 协议,亦或是当前采用的 RTSP 地址获取方式无效。请返回上一步,尝试手动输入RTSP地址。", + "candidateStreamTitle": "候选{{number}}", + "useCandidate": "使用", + "uriCopy": "复制", + "uriCopied": "地址已复制到剪贴板", + "testConnection": "测试连接", + "toggleUriView": "点击切换完整 URI 显示", + "errors": { + "hostRequired": "主机/IP地址为必填" } }, "step3": { - "description": "在保存新摄像头前将进行最终验证与分析。保存前请连接所有视频流。", + "description": "为你的摄像头配置视频流功能并添加额外视频流。", "validationTitle": "视频流验证", "connectAllStreams": "连接所有视频流", "reconnectionSuccess": "重连成功。", @@ -1074,7 +1120,91 @@ "resolutionLow": "使用 {{resolution}} 分辨率可能过低,难以检测较小的物体。" }, "ffmpegModule": "使用视频流兼容模式", - "ffmpegModuleDescription": "如果多次尝试后视频流仍无法加载,可以尝试启用此功能。启用后,Frigate 将使用集成 go2rtc 的 ffmpeg 模块,这可能会提高与某些摄像头视频流的兼容性。" + "ffmpegModuleDescription": "如果多次尝试后视频流仍无法加载,可以尝试启用此功能。启用后,Frigate 将使用集成 go2rtc 的 ffmpeg 模块,这可能会提高与某些摄像头视频流的兼容性。", + "streamsTitle": "摄像头视频流", + "addStream": "添加视频流", + "addAnotherStream": "添加其他视频流", + "streamUrl": "视频流地址", + "streamUrlPlaceholder": "rtsp://用户名:密码@主机:端口/路径", + "selectStream": "选择一个视频流", + "searchCandidates": "搜索候选项……", + "noStreamFound": "没有找到视频流", + "url": "URL地址", + "resolution": "分辨率", + "selectResolution": "选择分辨率", + "quality": "质量", + "selectQuality": "选择质量", + "roleLabels": { + "detect": "目标检测", + "record": "录制", + "audio": "音频检测" + }, + "testStream": "测试连接", + "testSuccess": "视频流测试成功!", + "testFailed": "视频流测试失败", + "testFailedTitle": "测试失败", + "connected": "已连接", + "notConnected": "未连接", + "featuresTitle": "功能特性", + "go2rtc": "减少与摄像头的连接数", + "detectRoleWarning": "必须得有一个视频流设置了“检测”功能才能继续操作。", + "rolesPopover": { + "title": "视频流功能", + "detect": "用于目标检测的主码流。", + "record": "根据配置设置保存视频流片段。", + "audio": "用于音频检测的音视频流。" + }, + "featuresPopover": { + "title": "视频流功能特性", + "description": "使用 go2rtc 中继转流功能,减少与摄像头的网络连接数,提升效率。" + } + }, + "step4": { + "description": "将进行保存新摄像头配置前的最终验证与分析,请在保存前确保所有视频流均已连接。", + "validationTitle": "视频流验证", + "connectAllStreams": "连接所有视频流", + "reconnectionSuccess": "重新连接成功。", + "reconnectionPartial": "部分视频流重新连接失败。", + "streamUnavailable": "视频流预览不可用", + "reload": "重新加载", + "connecting": "连接中……", + "streamTitle": "视频流 {{number}}", + "valid": "通过", + "failed": "失败", + "notTested": "未测试", + "connectStream": "连接", + "connectingStream": "连接中", + "disconnectStream": "断开连接", + "estimatedBandwidth": "预估带宽", + "roles": "功能", + "ffmpegModule": "使用视频流兼容模式", + "ffmpegModuleDescription": "若多次尝试后仍无法加载视频流,可尝试启用此功能。启用后,Frigate 将通过 go2rtc 调用 ffmpeg 模块。这可能会提升与部分摄像头视频流的兼容性。", + "none": "无", + "error": "错误", + "streamValidated": "视频流 {{number}} 验证成功", + "streamValidationFailed": "视频流 {{number}} 验证失败", + "saveAndApply": "保存新摄像头", + "saveError": "配置无效,请检查您的设置。", + "issues": { + "title": "视频流验证", + "videoCodecGood": "视频编解码器为 {{codec}}。", + "audioCodecGood": "音频编解码器为 {{codec}}。", + "resolutionHigh": "使用 {{resolution}} 分辨率可能导致资源使用率增加。", + "resolutionLow": "{{resolution}} 分辨率可能过低,难以可靠检测小型目标或物体。", + "noAudioWarning": "检测到该视频流无音频信号,录制视频将没有声音。", + "audioCodecRecordError": "录制功能需要 AAC 音频编解码器以实现音频支持。", + "audioCodecRequired": "要实现音频检测功能,必须要有音频流。", + "restreamingWarning": "为录制流开启“减少与摄像头的连接数”可能会略微增加CPU使用率。", + "brands": { + "reolink-rtsp": "不建议使用 Reolink 的 RTSP 协议。请在摄像头后台设置中启用 HTTP协议,并重新启动向导。" + }, + "dahua": { + "substreamWarning": "子码流1当前被锁定为低分辨率。多数大华、安讯士、EmpireTech品牌的摄像头都支持额外的子码流,这些子码流需要在摄像头设置中手动启用。如果你的设备支持,建议你检查并使用这些高分辨率子码流。" + }, + "hikvision": { + "substreamWarning": "子码流1当前被锁定为低分辨率。多数海康威视的摄像头都支持额外的子码流,这些子码流需要在摄像头设置中手动启用。如果你的设备支持,建议你检查并使用这些高分辨率子码流。" + } + } } }, "cameraManagement": { diff --git a/web/public/locales/zh-CN/views/system.json b/web/public/locales/zh-CN/views/system.json index 5bd877736..7182ff000 100644 --- a/web/public/locales/zh-CN/views/system.json +++ b/web/public/locales/zh-CN/views/system.json @@ -180,7 +180,14 @@ "face_recognition": "人脸特征提取", "plate_recognition": "车牌识别", "yolov9_plate_detection_speed": "YOLOv9 车牌检测速度", - "yolov9_plate_detection": "YOLOv9 车牌检测" - } + "yolov9_plate_detection": "YOLOv9 车牌检测", + "review_description": "核查描述", + "review_description_speed": "核查描述速度", + "review_description_events_per_second": "核查描述", + "object_description": "目标描述", + "object_description_speed": "目标描述速度", + "object_description_events_per_second": "目标描述" + }, + "averageInf": "平均推理时间" } } From 64f9e7076b9a425742baa653a450dc647b918359 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 24 Nov 2025 14:38:30 +0100 Subject: [PATCH 24/24] =?UTF-8?q?Translated=20using=20Weblate=20(Norwegian?= =?UTF-8?q?=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (92 of 92 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (116 of 116 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (639 of 639 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 93.1% (108 of 116 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (127 of 127 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (39 of 39 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (214 of 214 strings) Translated using Weblate (Norwegian Bokmål) Currently translated at 100.0% (118 of 118 strings) Co-authored-by: Hosted Weblate Co-authored-by: OverTheHillsAndFarAway Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/nb_NO/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/nb_NO/ Translation: Frigate NVR/common Translation: Frigate NVR/objects Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/nb-NO/common.json | 15 +- web/public/locales/nb-NO/objects.json | 2 +- .../nb-NO/views/classificationModel.json | 44 +++-- web/public/locales/nb-NO/views/events.json | 4 +- web/public/locales/nb-NO/views/explore.json | 7 +- .../locales/nb-NO/views/faceLibrary.json | 2 +- web/public/locales/nb-NO/views/live.json | 6 +- web/public/locales/nb-NO/views/settings.json | 156 ++++++++++++++++-- web/public/locales/nb-NO/views/system.json | 18 +- 9 files changed, 216 insertions(+), 38 deletions(-) diff --git a/web/public/locales/nb-NO/common.json b/web/public/locales/nb-NO/common.json index 52058ab6e..dce195531 100644 --- a/web/public/locales/nb-NO/common.json +++ b/web/public/locales/nb-NO/common.json @@ -81,7 +81,10 @@ "formattedTimestampMonthDayYear": { "24hour": "d. MMM, yyyy", "12hour": "d. MMM, yyyy" - } + }, + "inProgress": "Pågår", + "invalidStartTime": "Ugyldig starttid", + "invalidEndTime": "Ugyldig sluttid" }, "button": { "copy": "Kopier", @@ -118,7 +121,8 @@ "unselect": "Fjern valg", "export": "Eksporter", "deleteNow": "Slett nå", - "next": "Neste" + "next": "Neste", + "continue": "Fortsett" }, "menu": { "help": "Hjelp", @@ -219,7 +223,8 @@ "contrast": "Høy kontrast", "default": "Standard", "highcontrast": "Høy kontrast" - } + }, + "classification": "Klassifisering" }, "pagination": { "next": { @@ -255,7 +260,9 @@ "back": "Gå tilbake", "hide": "Skjul {{item}}", "show": "Vis {{item}}", - "ID": "ID" + "ID": "ID", + "none": "Ingen", + "all": "Alle" }, "toast": { "copyUrlToClipboard": "Nettadresse kopiert til utklippstavlen.", diff --git a/web/public/locales/nb-NO/objects.json b/web/public/locales/nb-NO/objects.json index d292b63b8..5c7c5edd2 100644 --- a/web/public/locales/nb-NO/objects.json +++ b/web/public/locales/nb-NO/objects.json @@ -101,7 +101,7 @@ "raccoon": "Vaskebjørn", "robot_lawnmower": "Robotgressklipper", "waste_bin": "Avfallsbeholder", - "on_demand": "På forespørsel", + "on_demand": "Manuelt opptak", "face": "Ansikt", "license_plate": "Kjennemerke", "package": "Pakke", diff --git a/web/public/locales/nb-NO/views/classificationModel.json b/web/public/locales/nb-NO/views/classificationModel.json index 0dc06ea32..7e0404247 100644 --- a/web/public/locales/nb-NO/views/classificationModel.json +++ b/web/public/locales/nb-NO/views/classificationModel.json @@ -2,12 +2,13 @@ "documentTitle": "Klassifiseringsmodeller", "button": { "deleteClassificationAttempts": "Slett klassifiseringsbilder", - "renameCategory": "Gi nytt navn til kategori", - "deleteCategory": "Slett kategori", + "renameCategory": "Omdøp klasse", + "deleteCategory": "Slett klasse", "deleteImages": "Slett bilder", "trainModel": "Tren modell", "addClassification": "Legg til klassifisering", - "deleteModels": "Slett modeller" + "deleteModels": "Slett modeller", + "editModel": "Rediger modell" }, "toast": { "success": { @@ -16,20 +17,27 @@ "categorizedImage": "Bildet ble klassifisert", "trainedModel": "Modellen ble trent.", "trainingModel": "Modelltrening startet.", - "deletedModel_one": "{{count}} modell(er) ble slettet", - "deletedModel_other": "" + "deletedModel_one": "{{count}} modell ble slettet", + "deletedModel_other": "{{count}} modeller ble slettet", + "updatedModel": "Modellkonfigurasjonen ble oppdatert", + "renamedCategory": "Kategorien ble omdøpt til {{name}}" }, "error": { "deleteImageFailed": "Kunne ikke slette: {{errorMessage}}", "deleteCategoryFailed": "Kunne ikke slette kategori: {{errorMessage}}", "categorizeFailed": "Kunne ikke klassifisere bilde: {{errorMessage}}", - "trainingFailed": "Kunne ikke starte modelltrening: {{errorMessage}}", - "deleteModelFailed": "Kunne ikke slette modell: {{errorMessage}}" + "trainingFailed": "Modelltrening mislyktes. Sjekk Frigate-loggene for detaljer.", + "deleteModelFailed": "Kunne ikke slette modell: {{errorMessage}}", + "trainingFailedToStart": "Kunne ikke starte modelltrening: {{errorMessage}}", + "updateModelFailed": "Kunne ikke oppdatere modell: {{errorMessage}}", + "renameCategoryFailed": "Kunne ikke omdøpe klasse: {{errorMessage}}" } }, "deleteCategory": { "title": "Slett kategori", - "desc": "Er du sikker på at du vil slette kategorien {{name}}? Dette vil permanent slette alle tilknyttede bilder og kreve at modellen trenes på nytt." + "desc": "Er du sikker på at du vil slette kategorien {{name}}? Dette vil permanent slette alle tilknyttede bilder og kreve at modellen trenes på nytt.", + "minClassesTitle": "Kan ikke slette klasse", + "minClassesDesc": "En klassifiseringsmodell må ha minst 2 kategorier. Legg til en ny kategori før du sletter denne." }, "deleteDatasetImages": { "title": "Slett datasettbilder", @@ -64,7 +72,7 @@ "buttonText": "Opprett objektmodell" }, "state": { - "title": "Ingen tilstands­klassifiseringsmodeller", + "title": "Ingen tilstandsklassifiseringsmodeller", "description": "Opprett en tilpasset modell for å overvåke og klassifisere tilstandsendringer i spesifikke kamerasoner.", "buttonText": "Opprett tilstandsmodell" } @@ -94,7 +102,7 @@ "classesTip": "Lær om kategorier", "classesStateDesc": "Definer de ulike tilstandene kamerasonen kan være i. For eksempel: 'åpen' og 'lukket' for en garasjeport.", "classesObjectDesc": "Definer kategoriene du vil klassifisere oppdagede objekter i. For eksempel: 'bud', 'beboer', 'fremmed' for personklassifisering.", - "classPlaceholder": "Skriv inn kategorinavn...", + "classPlaceholder": "Skriv inn tilstandsnavn...", "errors": { "nameRequired": "Modellnavn er påkrevd", "nameLength": "Modellnavn må være på 64 tegn eller mindre", @@ -136,7 +144,9 @@ "generationFailed": "Generering mislyktes. Prøv igjen.", "classifyFailed": "Kunne ikke klassifisere bilder: {{error}}" }, - "generateSuccess": "Eksempelbilder ble generert" + "generateSuccess": "Eksempelbilder ble generert", + "allImagesRequired_one": "Vennligst klassifiser alle bildene. {{count}} bilde gjenstår.", + "allImagesRequired_other": "Vennligst klassifiser alle bildene. {{count}} bilder gjenstår." } }, "deleteModel": { @@ -150,5 +160,17 @@ }, "details": { "scoreInfo": "Poengsummen representerer gjennomsnittlig klassifiseringskonfidens på tvers av alle deteksjoner av dette objektet." + }, + "tooltip": { + "trainingInProgress": "Modellen trenes for øyeblikket", + "noNewImages": "Ingen nye bilder å trene på. Klassifiser flere bilder i datasettet først.", + "noChanges": "Ingen endringer i datasettet siden forrige trening.", + "modelNotReady": "Modellen er ikke klar til å trenes" + }, + "edit": { + "title": "Rediger klassifiseringsmodell", + "descriptionState": "Rediger klassene for denne tilstandsklassifiseringsmodellen. Endringer vil kreve at modellen trenes på nytt.", + "descriptionObject": "Rediger objekttypen og klassifiseringstypen for denne objektklassifiseringsmodellen.", + "stateClassesInfo": "Merk: Endring av tilstandsklasser krever at modellen trenes på nytt med de oppdaterte klassene." } } diff --git a/web/public/locales/nb-NO/views/events.json b/web/public/locales/nb-NO/views/events.json index f28a06a0c..a16d952e4 100644 --- a/web/public/locales/nb-NO/views/events.json +++ b/web/public/locales/nb-NO/views/events.json @@ -40,8 +40,8 @@ "detail": { "noDataFound": "Ingen detaljer å inspisere", "aria": "Vis/skjul detaljvisning", - "trackedObject_one": "objekt", - "trackedObject_other": "objekter", + "trackedObject_one": "{{count}} objekt", + "trackedObject_other": "{{count}} objekter", "noObjectDetailData": "Ingen detaljdata for objektet tilgjengelig.", "label": "Detalj", "settings": "Detaljvisning – innstillinger", diff --git a/web/public/locales/nb-NO/views/explore.json b/web/public/locales/nb-NO/views/explore.json index bfa70cde3..6b1a2df09 100644 --- a/web/public/locales/nb-NO/views/explore.json +++ b/web/public/locales/nb-NO/views/explore.json @@ -207,7 +207,9 @@ "success": "Sporet objekt ble slettet." } }, - "tooltip": "Samsvarer {{type}} til {{confidence}}%" + "tooltip": "Samsvarer {{type}} til {{confidence}}%", + "previousTrackedObject": "Forrige sporede objekt", + "nextTrackedObject": "Neste sporede objekt" }, "trackedObjectDetails": "Detaljer om sporet objekt", "type": { @@ -215,7 +217,8 @@ "snapshot": "øyeblikksbilde", "video": "video", "object_lifecycle": "objektets livssyklus", - "thumbnail": "miniatyrbilde" + "thumbnail": "miniatyrbilde", + "tracking_details": "sporingsdetaljer" }, "dialog": { "confirmDelete": { diff --git a/web/public/locales/nb-NO/views/faceLibrary.json b/web/public/locales/nb-NO/views/faceLibrary.json index 49ec8520f..bb6540655 100644 --- a/web/public/locales/nb-NO/views/faceLibrary.json +++ b/web/public/locales/nb-NO/views/faceLibrary.json @@ -49,7 +49,7 @@ "deletedName_one": "{{count}} ansikt ble slettet.", "deletedName_other": "{{count}} ansikter ble slettet.", "trainedFace": "Ansiktet ble trent.", - "updatedFaceScore": "Ansiktsskåring ble oppdatert.", + "updatedFaceScore": "Ansiktsskåring ble oppdatert til {{name}} ({{score}}).", "uploadedImage": "Bildet ble lastet opp.", "addFaceLibrary": "{{name}} ble lagt til i ansiktsbiblioteket!", "renamedFace": "Nytt navn ble gitt til ansikt {{name}}" diff --git a/web/public/locales/nb-NO/views/live.json b/web/public/locales/nb-NO/views/live.json index 78270c0ce..4aab3012d 100644 --- a/web/public/locales/nb-NO/views/live.json +++ b/web/public/locales/nb-NO/views/live.json @@ -180,6 +180,10 @@ "noCameras": { "title": "Ingen kameraer konfigurert", "description": "Kom i gang ved å koble et kamera til Frigate.", - "buttonText": "Legg til kamera" + "buttonText": "Legg til kamera", + "restricted": { + "title": "Ingen kameraer tilgjengelig", + "description": "Du har ikke tilgang for å se noen kameraer i denne gruppen." + } } } diff --git a/web/public/locales/nb-NO/views/settings.json b/web/public/locales/nb-NO/views/settings.json index e37e546f1..26949e9d2 100644 --- a/web/public/locales/nb-NO/views/settings.json +++ b/web/public/locales/nb-NO/views/settings.json @@ -6,7 +6,7 @@ "masksAndZones": "Maske- og soneeditor - Frigate", "motionTuner": "Bevegelsesjustering - Frigate", "object": "Test og feilsøk - Frigate", - "general": "Generelle innstillinger - Frigate", + "general": "Brukergrensesnitt innstillinger - Frigate", "classification": "Klassifiseringsinnstillinger - Frigate", "frigatePlus": "Frigate+ innstillinger - Frigate", "notifications": "Meldingsvarsler Innstillinger - Frigate", @@ -54,6 +54,10 @@ "displayCameraNames": { "label": "Vis alltid kameranavn", "desc": "Vis alltid kameranavnene i en merkelapp i dashbordet for direktevisning med flere kameraer." + }, + "liveFallbackTimeout": { + "label": "Tidsavbrudd for reserveløsning for direkteavspiller", + "desc": "Når et kameras direktestrøm med høy kvalitet er utilgjengelig, bytt til lav båndbreddemodus etter dette antallet sekunder. Standard: 3." } }, "storedLayouts": { @@ -87,7 +91,7 @@ "clearStreamingSettingsFailed": "Kunne ikke fjerne strømmingsinnstillinger: {{errorMessage}}" } }, - "title": "Generelle innstillinger", + "title": "Brukergrensesnitt innstillinger", "cameraGroupStreaming": { "title": "Strømmingsinnstillinger for kameragrupper", "desc": "Strømmingsinnstillingene lagres lokalt i nettleseren.", @@ -890,8 +894,8 @@ "createRole": "Rollen {{role}} ble opprettet", "updateCameras": "Kameraer oppdatert for rollen {{role}}", "deleteRole": "Rollen {{role}} ble slettet", - "userRolesUpdated_one": "{{count}} bruker(e) som var tildelt denne rollen er oppdatert til \"visningsbruker\", som har tilgang til alle kameraer.", - "userRolesUpdated_other": "" + "userRolesUpdated_one": "{{count}} bruker tildelt denne rollen er oppdatert til \"visningsbruker\", som har tilgang til alle kameraer.", + "userRolesUpdated_other": "{{count}} brukere tildelt denne rollen er oppdatert til \"visningsbruker\", som har tilgang til alle kameraer." }, "error": { "createRoleFailed": "Kunne ikke opprette rolle: {{errorMessage}}", @@ -938,7 +942,8 @@ "steps": { "nameAndConnection": "Navn og tilkobling", "streamConfiguration": "Strømkonfigurasjon", - "validationAndTesting": "Validering og testing" + "validationAndTesting": "Validering og testing", + "probeOrSnapshot": "Sjekk eller øyeblikksbilde" }, "save": { "success": "Lagret nytt kamera {{cameraName}}.", @@ -955,7 +960,7 @@ "testFailed": "Strømmetest feilet: {{error}}" }, "step1": { - "description": "Skriv inn kameradetaljene dine og test tilkoblingen.", + "description": "Skriv inn kameradetaljene dine og velg å sjekke kameraet eller manuelt velg produsent.", "cameraName": "Kameranavn", "cameraNamePlaceholder": "f.eks. front_dor eller Hageoversikt", "host": "Vert/IP-adresse", @@ -995,10 +1000,19 @@ "testing": { "probingMetadata": "Henter kamerametadata…", "fetchingSnapshot": "Henter øyeblikksbilde for kamera..." - } + }, + "connectionSettings": "Tilkoblingsinnstillinger", + "detectionMethod": "Metode for strømdeteksjon", + "onvifPort": "ONVIF-port", + "probeMode": "Sjekk kamera", + "manualMode": "Manuelt valg", + "detectionMethodDescription": "Sjekk kameraet med ONVIF (hvis støttet) for å finne kameraets strømme-URL-er, eller velg kameramerke manuelt for å bruke forhåndsdefinerte URL-er. For å skrive inn en egendefinert RTSP URL, velg manuell metode og velg \"Annet\".", + "onvifPortDescription": "For kameraer som støtter ONVIF, er dette vanligvis 80 eller 8080.", + "useDigestAuth": "Bruk digest-autentisering", + "useDigestAuthDescription": "Bruk HTTP digest-autentisering for ONVIF. Noen kameraer kan kreve et dedikert ONVIF brukernavn/passord i stedet for standard administrator-bruker." }, "step2": { - "description": "Konfigurer strømroller og legg til flere strømmer for kameraet ditt.", + "description": "Sjekk kameraet for tilgjengelige strømmer eller konfigurer manuelle innstillinger basert på valgt deteksjonsmetode.", "streamsTitle": "Kamerastrømmer", "addStream": "Legg til strøm", "addAnotherStream": "Legg til en annen strøm", @@ -1017,8 +1031,8 @@ "audio": "Lyd" }, "testStream": "Test tilkobling", - "testSuccess": "Strømmetesten var vellykket!", - "testFailed": "Strømmetesten feilet", + "testSuccess": "Tilkoblingstest vellykket!", + "testFailed": "Tilkoblingstest feilet. Vennligst sjekk inndataene dine og prøv igjen.", "testFailedTitle": "Test feilet", "connected": "Tilkoblet", "notConnected": "Ikke tilkoblet", @@ -1034,10 +1048,42 @@ "featuresPopover": { "title": "Strømfunksjoner", "description": "Bruk go2rtc-restrømming for å redusere antall tilkoblinger til kameraet ditt." + }, + "streamDetails": "Strømdetaljer", + "probing": "Test kamera...", + "retry": "Prøv på nytt", + "testing": { + "probingMetadata": "Sjekker metadata for kamera...", + "fetchingSnapshot": "Henter øyeblikksbilde fra kamera..." + }, + "probeFailed": "Kunne ikke å sjekke kamera: {{error}}", + "probingDevice": "Tester enhet...", + "probeSuccessful": "Sjekk vellykket", + "probeError": "Sjekk feilet", + "probeNoSuccess": "Sjekk mislyktes", + "deviceInfo": "Enhetsinformasjon", + "manufacturer": "Produsent", + "model": "Modell", + "firmware": "Fastvare", + "profiles": "Profiler", + "ptzSupport": "PTZ-støtte", + "autotrackingSupport": "Autosporing-støtte", + "presets": "Forhåndsinnstillinger", + "rtspCandidates": "RTSP-kandidater", + "rtspCandidatesDescription": "Følgende RTSP URL-er ble funnet ved sjekk av kameraet. Test tilkoblingen for å se strømmetadata.", + "noRtspCandidates": "Ingen RTSP URL-er ble funnet fra kameraet. Det kan hende at påloggingsinformasjonen din er feil, eller at kameraet ikke støtter ONVIF eller metoden som brukes for å hente RTSP URL-er. Gå tilbake og skriv inn RTSP URL-en manuelt.", + "candidateStreamTitle": "Kandidat {{number}}", + "useCandidate": "Bruk", + "uriCopy": "Kopier", + "uriCopied": "URI kopiert til utklippstavlen", + "testConnection": "Test tilkobling", + "toggleUriView": "Klikk for å vise/skjule full URI", + "errors": { + "hostRequired": "Vert/IP-adresse er påkrevd" } }, "step3": { - "description": "Endelig validering og analyse før du lagrer det nye kameraet. Koble til hver strøm før du lagrer.", + "description": "Konfigurer strømroller og legg til flere strømmer for kameraet ditt.", "validationTitle": "Strømvalidering", "connectAllStreams": "Koble til alle strømmer", "reconnectionSuccess": "Gjenoppkobling vellykket.", @@ -1078,7 +1124,91 @@ "resolutionLow": "En oppløsning på {{resolution}} kan være for lav for pålitelig deteksjon av små objekter." }, "ffmpegModuleDescription": "Hvis strømmen ikke lastes inn etter flere forsøk, kan du prøve å aktivere dette. Når det er aktivert, vil Frigate bruke ffmpeg-modulen sammen med go2rtc. Dette kan gi bedre kompatibilitet med enkelte kamerastrømmer.", - "ffmpegModule": "Bruk kompatibilitetsmodus for strøm" + "ffmpegModule": "Bruk kompatibilitetsmodus for strøm", + "streamsTitle": "Kamerastrømmer", + "addStream": "Legg til strøm", + "addAnotherStream": "Legg til en annen strøm", + "streamUrl": "Strøm-URL", + "streamUrlPlaceholder": "rtsp://brukernavn:passord@vert:port/sti", + "selectStream": "Velg en strøm", + "searchCandidates": "Søk blant kandidater...", + "noStreamFound": "Ingen strøm funnet", + "url": "URL", + "resolution": "Oppløsning", + "selectResolution": "Velg oppløsning", + "quality": "Kvalitet", + "selectQuality": "Velg kvalitet", + "roleLabels": { + "detect": "Objektdeteksjon", + "record": "Opptak", + "audio": "Lyd" + }, + "testStream": "Test tilkobling", + "testSuccess": "Strømmetest vellykket!", + "testFailed": "Strømmetest feilet", + "testFailedTitle": "Test feilet", + "connected": "Tilkoblet", + "notConnected": "Ikke tilkoblet", + "featuresTitle": "Funksjoner", + "go2rtc": "Reduser antall tilkoblinger til kamera", + "detectRoleWarning": "Minst én strøm må ha \"deteksjon\"-rollen for å fortsette.", + "rolesPopover": { + "title": "Strømroller", + "detect": "Hovedstrøm for objektdeteksjon.", + "record": "Lagrer segmenter av videostrømmen basert på konfigurasjonsinnstillinger.", + "audio": "Strøm for lydbasert deteksjon." + }, + "featuresPopover": { + "title": "Strømfunksjoner", + "description": "Bruk go2rtc-restrømming for å redusere antall tilkoblinger til kameraet." + } + }, + "step4": { + "description": "Endelig validering og analyse før du lagrer det nye kameraet. Koble til hver strøm før du lagrer.", + "validationTitle": "Strømvalidering", + "connectAllStreams": "Koble til alle strømmer", + "reconnectionSuccess": "Tilkobling vellykket.", + "reconnectionPartial": "Noen strømmer kunne ikke koble til på nytt.", + "streamUnavailable": "Forhåndsvisning av strøm utilgjengelig", + "reload": "Last på nytt", + "connecting": "Kobler til...", + "streamTitle": "Strøm {{number}}", + "valid": "Gyldig", + "failed": "Feilet", + "notTested": "Ikke testet", + "connectStream": "Koble til", + "connectingStream": "Kobler til", + "disconnectStream": "Koble fra", + "estimatedBandwidth": "Estimert båndbredde", + "roles": "Roller", + "ffmpegModule": "Bruk kompatibilitetsmodus for strøm", + "ffmpegModuleDescription": "Hvis strømmen ikke lastes etter flere forsøk, prøv å aktivere dette. Når aktivert, vil Frigate bruke ffmpeg-modulen med go2rtc. Dette kan gi bedre kompatibilitet med noen kamerastrømmer.", + "none": "Ingen", + "error": "Feil", + "streamValidated": "Strøm {{number}} validert", + "streamValidationFailed": "Validering av strøm {{number}} feilet", + "saveAndApply": "Lagre nytt kamera", + "saveError": "Ugyldig konfigurasjon. Vennligst sjekk innstillingene dine.", + "issues": { + "title": "Strømvalidering", + "videoCodecGood": "Videokodek er {{codec}}.", + "audioCodecGood": "Lydkodek er {{codec}}.", + "resolutionHigh": "En oppløsning på {{resolution}} kan føre til økt ressursbruk.", + "resolutionLow": "En oppløsning på {{resolution}} kan være for lav for pålitelig deteksjon av små objekter.", + "noAudioWarning": "Ingen lyd oppdaget for denne strømmen, opptak vil ikke ha lyd.", + "audioCodecRecordError": "AAC-lydkodeken kreves for å støtte lyd i opptak.", + "audioCodecRequired": "En lydstrøm kreves for å støtte lyddeteksjon.", + "restreamingWarning": "Å redusere tilkoblinger til kameraet for opptaksstrømmen kan øke CPU-bruken noe.", + "brands": { + "reolink-rtsp": "Reolink RTSP anbefales ikke. Aktiver HTTP i kameraets fastvareinnstillinger og start veiviseren på nytt." + }, + "dahua": { + "substreamWarning": "Substrøm 1 er låst til lav oppløsning. Mange Dahua / Amcrest / EmpireTech-kameraer støtter flere substrømmer som må aktiveres i kameraets innstillinger. Det anbefales å sjekke og benytte disse strømmene hvis de er tilgjengelige." + }, + "hikvision": { + "substreamWarning": "Substrøm 1 er låst til lav oppløsning. Mange Hikvision-kameraer støtter flere substrømmer som må aktiveres i kameraets innstillinger. Det anbefales å sjekke og benytte disse strømmene hvis de er tilgjengelige." + } + } } }, "cameraManagement": { @@ -1132,7 +1262,7 @@ "desc": "Midlertidig aktiver/deaktiver inspeksjonsbeskrivelser med generativ KI for dette kameraet. Når deaktivert, vil det ikke bli bedt om KI-genererte beskrivelser for inspeksjonselementer på dette kameraet." }, "review": { - "title": "Inspeksjon", + "title": "Inspiser", "desc": "Aktiver/deaktiver varsler og deteksjoner midlertidig for dette kameraet til Frigate startes på nytt. Når deaktivert, vil det ikke genereres nye inspeksjonselementer. ", "alerts": "Varsler ", "detections": "Deteksjoner " diff --git a/web/public/locales/nb-NO/views/system.json b/web/public/locales/nb-NO/views/system.json index 3a642d804..80acfddf5 100644 --- a/web/public/locales/nb-NO/views/system.json +++ b/web/public/locales/nb-NO/views/system.json @@ -74,7 +74,12 @@ "title": "Maskinvareinformasjon", "gpuUsage": "GPU-belastning", "npuMemory": "NPU minne", - "npuUsage": "NPU belastning" + "npuUsage": "NPU belastning", + "intelGpuWarning": { + "title": "Advarsel om Intel GPU-statistikk", + "message": "GPU statistikk ikke tilgjengelig", + "description": "Dette er en kjent feil i Intels verktøy for rapportering av GPU-statistikk (intel_gpu_top), der verktøyet slutter å fungere og gjentatte ganger viser 0 % GPU-bruk, selv om maskinvareakselerasjon og objektdeteksjon kjører korrekt på (i)GPU-en. Dette er ikke en feil i Frigate. Du kan starte verten på nytt for å løse problemet midlertidig, og for å bekrefte at GPU-en fungerer som den skal. Dette påvirker ikke ytelsen." + } }, "otherProcesses": { "title": "Andre prosesser", @@ -165,10 +170,17 @@ "text_embedding": "Tekst-vektorrepresentasjoner", "plate_recognition": "Kjennemerke gjenkjenning", "yolov9_plate_detection_speed": "Hastighet for YOLOv9 kjennemerkedeteksjon", - "yolov9_plate_detection": "YOLOv9 kjennemerkedeteksjon" + "yolov9_plate_detection": "YOLOv9 kjennemerkedeteksjon", + "object_description": "Objektbeskrivelse", + "object_description_speed": "Objektbeskrivelse hastighet", + "object_description_events_per_second": "Objektbeskrivelse", + "review_description": "Inspeksjonsbeskrivelse", + "review_description_events_per_second": "Inspeksjonsbeskrivelse", + "review_description_speed": "Inspeksjonsbeskrivelse hastighet" }, "title": "Utvidelser", - "infPerSecond": "Inferenser per sekund" + "infPerSecond": "Inferenser per sekund", + "averageInf": "Gjennomsnittlig inferenstid" }, "title": "System", "metrics": "Systemmålinger",