diff --git a/web/public/locales/pl/audio.json b/web/public/locales/pl/audio.json
index 62cd7b465..4d8e1f28d 100644
--- a/web/public/locales/pl/audio.json
+++ b/web/public/locales/pl/audio.json
@@ -124,7 +124,7 @@
"zither": "Cytra",
"ukulele": "Ukulele",
"keyboard": "Klawiatura",
- "rimshot": "Rimshot",
+ "rimshot": "Uderzenie w obręcz",
"drum_roll": "Werbel (tremolo)",
"bass_drum": "Bęben basowy",
"timpani": "Kotły",
@@ -168,14 +168,14 @@
"didgeridoo": "Didgeridoo",
"theremin": "Theremin",
"singing_bowl": "Misa dźwiękowa",
- "scratching": "Scratching",
+ "scratching": "Drapanie",
"pop_music": "Muzyka pop",
"hip_hop_music": "Muzyka hip-hopowa",
"beatboxing": "Beatbox",
"rock_music": "Muzyka rockowa",
"heavy_metal": "Heavy metal",
"punk_rock": "Punk rock",
- "grunge": "Grunge",
+ "grunge": "Paskudztwo",
"progressive_rock": "Rock progresywny",
"rock_and_roll": "Rock and roll",
"psychedelic_rock": "Rock psychodeliczny",
@@ -425,5 +425,79 @@
"pulleys": "Bloczki",
"sanding": "Szlifowanie",
"clock": "Zegar",
- "tick": "Tykanie"
+ "tick": "Tykanie",
+ "sodeling": "Sodeling",
+ "liquid": "Płyn",
+ "splash": "Plusk",
+ "slosh": "Rozchlapywanie",
+ "squish": "Ściskanie",
+ "drip": "Kapanie",
+ "pour": "Wlewanie",
+ "spray": "Pryskanie",
+ "pump": "Pompowanie",
+ "stir": "Mieszanie",
+ "boiling": "Gotowanie",
+ "arrow": "Strzała",
+ "breaking": "Łamanie",
+ "bouncing": "Odbijanie",
+ "beep": "Pisk",
+ "clicking": "Klikanie",
+ "inside": "Wewnątrz",
+ "outside": "Na zewnątrz",
+ "chird": "Child",
+ "change_ringing": "Zmienny dzwonek",
+ "shofar": "Shofar",
+ "trickle": "Trickle",
+ "gush": "Wylew",
+ "fill": "Napełnianie",
+ "sonar": "Sonar",
+ "whoosh": "Szybki ruch",
+ "thump": "Uderzenie",
+ "thunk": "Odgłos uderzenia",
+ "electronic_tuner": "Tuner elektroniczny",
+ "effects_unit": "Moduł efektów",
+ "chorus_effect": "Efekt chóru",
+ "basketball_bounce": "Odbijanie piłki",
+ "bang": "Bum",
+ "slap": "Policzkowanie",
+ "whack": "Uderzyć",
+ "smash": "Rozbić",
+ "whip": "Bicz",
+ "flap": "Klapa",
+ "scratch": "Zdrapywanie",
+ "scrape": "Skrobać",
+ "rub": "Pocierać",
+ "roll": "Rolować",
+ "crushing": "Rozbijać",
+ "crumpling": "Zgniatanie",
+ "tearing": "Rozrywanie",
+ "ping": "Ping",
+ "ding": "Dzwonienie",
+ "clang": "Brzdęk",
+ "squeal": "Piszczenie",
+ "creak": "Skrzypieć",
+ "rustle": "Szelest",
+ "whir": "Świst",
+ "clatter": "Stukot",
+ "sizzle": "Sizzle",
+ "clickety_clack": "Klik-klak",
+ "rumble": "Grzmot",
+ "plop": "Plop",
+ "hum": "Szum",
+ "zing": "Zing",
+ "boing": "Odbicie",
+ "crunch": "Chrupnięcie",
+ "sine_wave": "Sinusoida",
+ "harmonic": "Harmoniczna",
+ "chirp_tone": "Ustawianie tonów",
+ "pulse": "Puls",
+ "reverberation": "Pogłos",
+ "echo": "Echo",
+ "noise": "Hałas",
+ "mains_hum": "Szum sieciowy",
+ "distortion": "Zniekształcenie",
+ "sidetone": "Sygnał zwrotny",
+ "throbbing": "Pulsowanie",
+ "vibration": "Wibracja",
+ "cacophony": "Kakofonia"
}
diff --git a/web/public/locales/pl/common.json b/web/public/locales/pl/common.json
index 0c68e1813..dbf1576a0 100644
--- a/web/public/locales/pl/common.json
+++ b/web/public/locales/pl/common.json
@@ -22,18 +22,18 @@
"yesterday": "Wczoraj",
"pm": "po południu",
"am": "przed południem",
- "yr": "{{time}}r.",
+ "yr": "{{time}}r",
"year_one": "{{time}} rok",
"year_few": "{{time}} lata",
"year_many": "{{time}} lat",
- "mo": "{{time}}m.",
- "d": "{{time}}d.",
+ "mo": "{{time}}m",
+ "d": "{{time}}d",
"day_one": "{{time}} dzień",
"day_few": "{{time}} dni",
"day_many": "{{time}} dni",
- "h": "{{time}}godz.",
- "m": "{{time}}min.",
- "s": "{{time}}s.",
+ "h": "{{time}}godz",
+ "m": "{{time}}min",
+ "s": "{{time}}s",
"month_one": "{{time}} miesiąc",
"month_few": "{{time}} miesiące",
"month_many": "{{time}} miesięcy",
@@ -105,9 +105,9 @@
"kbps": "kB/s",
"mbps": "MB/s",
"gbps": "GB/s",
- "kbph": "kB/godz.",
- "mbph": "MB/godz.",
- "gbph": "GB/godz."
+ "kbph": "kB/godz",
+ "mbph": "MB/godz",
+ "gbph": "GB/godz"
}
},
"label": {
@@ -304,6 +304,11 @@
},
"list": {
"two": "{{0}} i {{1}}",
- "many": "{{items}}, oraz {{last}}"
+ "many": "{{items}}, oraz {{last}}",
+ "separatorWithSpace": "; "
+ },
+ "field": {
+ "optional": "Opcjonalny",
+ "internalID": "Wewnętrzny identyfikator używany przez Frigate w konfiguracji i bazie danych"
}
}
diff --git a/web/public/locales/pl/components/dialog.json b/web/public/locales/pl/components/dialog.json
index b9a4d9a0f..24842e140 100644
--- a/web/public/locales/pl/components/dialog.json
+++ b/web/public/locales/pl/components/dialog.json
@@ -130,6 +130,7 @@
"search": {
"placeholder": "Wyszukaj po etykiecie (label) lub etykiecie potomnej (sub label)..."
},
- "noImages": "Brak miniatur dla tej kamery"
+ "noImages": "Brak miniatur dla tej kamery",
+ "unknownLabel": "Zapisany obraz wyzwalacza"
}
}
diff --git a/web/public/locales/pl/components/filter.json b/web/public/locales/pl/components/filter.json
index f718061a5..7de30b2dd 100644
--- a/web/public/locales/pl/components/filter.json
+++ b/web/public/locales/pl/components/filter.json
@@ -134,6 +134,7 @@
"count_other": "{{count}} Klas(y)"
},
"attributes": {
- "all": "Wszystkie atrybuty"
+ "all": "Wszystkie atrybuty",
+ "label": "Atrybuty klasyfikacji"
}
}
diff --git a/web/public/locales/pl/views/classificationModel.json b/web/public/locales/pl/views/classificationModel.json
index d2fa9815a..c68baf133 100644
--- a/web/public/locales/pl/views/classificationModel.json
+++ b/web/public/locales/pl/views/classificationModel.json
@@ -5,7 +5,7 @@
"renameCategory": "Zmień nazwę klasy",
"deleteCategory": "Usuń klasyfikację",
"deleteImages": "Usuń obrazy",
- "trainModel": "Przeszkol model",
+ "trainModel": "Trenuj model",
"addClassification": "Dodaj klasyfikację",
"deleteModels": "Usuń modele",
"editModel": "Edytuj model"
@@ -23,7 +23,7 @@
"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",
+ "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}}"
@@ -79,7 +79,7 @@
},
"train": {
"title": "Ostatnie Klasyfikacje",
- "titleShort": "Najnowsze",
+ "titleShort": "Ostatnie",
"aria": "Wybierz Najnowsze Klasyfikacje"
},
"createCategory": {
@@ -115,25 +115,47 @@
"title": "Tworzenie nowej klasyfikacji",
"steps": {
"nameAndDefine": "Nazwij i zdefiniuj",
- "stateArea": "Obszar stanu"
+ "stateArea": "Obszar stanu",
+ "chooseExamples": "Wybierz przykłady"
},
"step1": {
"name": "Nazwa",
"type": "Typ",
"classes": "Klasy",
"errors": {
- "noneNotAllowed": "Klasa „żadne” jest niedozwolona.",
- "stateRequiresTwoClasses": "Modele stanowe wymagają co najmniej dwie klasy.",
+ "noneNotAllowed": "Klasa 'żadne' jest niedozwolona",
+ "stateRequiresTwoClasses": "Modele stanowe wymagają co najmniej dwie klasy",
"objectLabelRequired": "Proszę wybrać etykietę obiektu",
- "objectTypeRequired": "Proszę wybrać typ klasyfikacji"
- }
+ "objectTypeRequired": "Proszę wybrać typ klasyfikacji",
+ "nameRequired": "Nazwa modelu jest wymagana",
+ "nameLength": "Nazwa modelu może mieć 64 znaki lub mniej",
+ "nameOnlyNumbers": "Nazwa modelu nie może być ciągiem cyfr",
+ "classRequired": "Przynajmniej jedna klasa jest wymagana",
+ "classesUnique": "Nazwa klasy musi być unikalna"
+ },
+ "classPlaceholder": "Wpisz nazwę klasy...",
+ "classesObjectDesc": "Zdefiniuj różne kategorie, do których będą klasyfikowane wykryte obiekty. Na przykład: 'dostawca', 'mieszkaniec', 'nieznajomy' w przypadku klasyfikacji osób.",
+ "description": "Modele stanowe monitorują stałe obszary kamer pod kątem zmian (np. otwarte/zamknięte drzwi). Modele obiektów dodają klasyfikacje do wykrytych obiektów (np. znane zwierzęta, dostawcy itp.).",
+ "namePlaceholder": "Wprowadź nazwę modelu...",
+ "typeState": "Stan",
+ "typeObject": "Obiekt",
+ "objectLabel": "Etykieta obiektu",
+ "objectLabelPlaceholder": "Wybierz typ obiektu...",
+ "classificationType": "Rodzaj klasyfikacji",
+ "classificationTypeTip": "Dowiedz się więcej o typach klasyfikacji",
+ "classificationTypeDesc": "Podetykiety dodają dodatkowy tekst do etykiety obiektu (np. 'Osoba: UPS'). Atrybuty to metadane, które można przeszukiwać, przechowywane oddzielnie w metadanych obiektu.",
+ "classificationSubLabel": "Podetykieta",
+ "classificationAttribute": "Atrybut",
+ "states": "Stany",
+ "classesTip": "Dowiedz się więcej o klasach obiektów",
+ "classesStateDesc": "Zdefiniuj różne stany, w jakich może znajdować się obszar objęty zasięgiem kamery. Na przykład: 'otwarte' i 'zamknięte' dla bramy garażowej."
},
"step2": {
"description": "Wybierz kamery i określ obszar monitorowania dla każdej z nich. Model sklasyfikuje stan tych obszarów.",
"cameras": "Kamery",
"selectCamera": "Wybierz kamerę",
"noCameras": "Kliknij +, aby dodać kamery",
- "selectCameraPrompt": "Wybierz kamerę z listy, aby zdefiniować jej obszar monitorowania."
+ "selectCameraPrompt": "Wybierz kamerę z listy, aby zdefiniować jej obszar monitorowania"
},
"step3": {
"selectImagesPrompt": "Zaznacz wszystkie obrazy z: {{className}}",
@@ -142,9 +164,30 @@
"allImagesRequired_few": "Proszę sklasyfikować wszystkie obrazy. Pozostały {{count}} obrazy.",
"allImagesRequired_many": "Proszę sklasyfikować wszystkie obrazy. Pozostało {{count}} obrazów.",
"generating": {
- "title": "Generowanie przykładowych obrazów"
+ "title": "Generowanie przykładowych obrazów",
+ "description": "Frigate pobiera reprezentatywne obrazy z Twoich nagrań. Może to chwilę potrwać..."
},
- "trainingStarted": "Szkolenie rozpoczęło się pomyślnie"
+ "trainingStarted": "Szkolenie rozpoczęło się pomyślnie",
+ "training": {
+ "title": "Model treningowy",
+ "description": "Twój model jest szkolony w tle. Zamknij to okno dialogowe, a model zacznie działać zaraz po zakończeniu szkolenia."
+ },
+ "retryGenerate": "Ponowne generowanie",
+ "noImages": "Nie wygenerowano przykładowych obrazów",
+ "classifying": "Klasyfikacja i szkolenie...",
+ "modelCreated": "Model został pomyślnie utworzony. Użyj widoku Ostatnie klasyfikacje, aby dodać obrazy dla brakujących stanów, a następnie wytrenuj model.",
+ "errors": {
+ "noCameras": "Brak skonfigurowanych kamer",
+ "noObjectLabel": "Nie wybrano żadnej etykiety obiektu",
+ "generateFailed": "Nie udało się wygenerować przykładów: {{error}}",
+ "generationFailed": "Generowanie nie powiodło się. Spróbuj ponownie.",
+ "classifyFailed": "Nie udało się sklasyfikować obrazów: {{error}}"
+ },
+ "generateSuccess": "Pomyślnie wygenerowane przykładowe obrazy",
+ "missingStatesWarning": {
+ "title": "Przykłady brakujących stanów",
+ "description": "Aby uzyskać najlepsze wyniki, zaleca się wybranie przykładów dla wszystkich stanów. Można kontynuować bez wybierania wszystkich stanów, ale model nie zostanie wytrenowany, dopóki wszystkie stany nie będą miały obrazów. Po kontynuowaniu należy użyć widoku Ostatnie klasyfikacje, aby sklasyfikować obrazy dla brakujących stanów, a następnie wytrenować model."
+ }
}
}
}
diff --git a/web/public/locales/pl/views/events.json b/web/public/locales/pl/views/events.json
index cc7b258c6..0ffc5419f 100644
--- a/web/public/locales/pl/views/events.json
+++ b/web/public/locales/pl/views/events.json
@@ -10,7 +10,11 @@
"empty": {
"alert": "Brak alertów do przejrzenia",
"detection": "Brak detekcji do przejrzenia",
- "motion": "Nie znaleziono danych o ruchu"
+ "motion": "Nie znaleziono danych o ruchu",
+ "recordingsDisabled": {
+ "title": "Nagrywanie musi być włączone",
+ "description": "Elementy przeglądu można tworzyć dla kamery tylko wtedy, gdy dla tej kamery włączono nagrywanie."
+ }
},
"timeline": "Oś czasu",
"timeline.aria": "Wybierz oś czasu",
@@ -57,5 +61,7 @@
"clickToSeek": "Kliknij aby przewinąć do tego miejsca"
},
"needsReview": "Wymaga manualnego sprawdzenia",
- "normalActivity": "Normalne"
+ "normalActivity": "Normalne",
+ "select_all": "Wszystko",
+ "securityConcern": "Kwestie bezpieczeństwa"
}
diff --git a/web/public/locales/pl/views/explore.json b/web/public/locales/pl/views/explore.json
index cceb1a162..d18d065b8 100644
--- a/web/public/locales/pl/views/explore.json
+++ b/web/public/locales/pl/views/explore.json
@@ -77,6 +77,14 @@
},
"score": {
"label": "Wynik"
+ },
+ "editAttributes": {
+ "title": "Edytuj atrybuty",
+ "desc": "Wybierz atrybuty klasyfikacji dla tego {{label}}"
+ },
+ "attributes": "Atrybuty klasyfikacji",
+ "title": {
+ "label": "Tytuł"
}
},
"objectLifecycle": {
@@ -200,6 +208,20 @@
"audioTranscription": {
"label": "Rozpisz",
"aria": "Poproś o audiotranskrypcję"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Pobierz czysty snapshot",
+ "aria": "Pobierz czysty snapshot"
+ },
+ "viewTrackingDetails": {
+ "label": "Wyświetl szczegóły śledzenia",
+ "aria": "Pokaż szczegóły śledzenia"
+ },
+ "showObjectDetails": {
+ "label": "Pokaż ścieżkę obiektu"
+ },
+ "hideObjectDetails": {
+ "label": "Ukryj ścieżkę obiektu"
}
},
"trackedObjectsCount_one": "{{count}} śledzony obiekt ",
@@ -208,7 +230,7 @@
"noTrackedObjects": "Nie znaleziono śledzonych obiektów",
"dialog": {
"confirmDelete": {
- "desc": "Usunięcie tego śledzonego obiektu usuwa zrzut ekranu, wszelkie zapisane osadzenia i wszystkie powiązane wpisy cyklu życia obiektu. Nagrany materiał tego śledzonego obiektu w widoku Historii NIE zostanie usunięty.
Czy na pewno chcesz kontynuować?",
+ "desc": "Usunięcie tego śledzonego obiektu usuwa zrzut ekranu, wszelkie zapisane osadzenia i wszystkie powiązane wpisy śledzenia obiektu. Nagrany materiał tego śledzonego obiektu w widoku Historii NIE zostanie usunięty.
Czy na pewno chcesz kontynuować?",
"title": "Potwierdź usunięcie"
}
},
@@ -220,7 +242,9 @@
"error": "Nie udało się usunąć śledzonego obiektu: {{errorMessage}}"
}
},
- "tooltip": "Pasuje do {{type}} z pewnością {{confidence}}%"
+ "tooltip": "Pasuje do {{type}} z pewnością {{confidence}}%",
+ "previousTrackedObject": "Poprzednio śledzony obiekt",
+ "nextTrackedObject": "Następny śledzony obiekt"
},
"exploreMore": "Odkryj więcej obiektów typu {{label}}",
"aiAnalysis": {
@@ -251,16 +275,31 @@
"header": {
"zones": "Strefy",
"area": "Powierzchnia",
- "score": "Wynik"
- }
+ "score": "Wynik",
+ "ratio": "Proporcje"
+ },
+ "heard": "{{label}} słyszałem"
},
"annotationSettings": {
"title": "Ustawienia adnotacji",
"showAllZones": {
"title": "Pokaż wszystkie strefy",
"desc": "Pokazuj linie stref w momencie wejścia obiektu w strefę."
+ },
+ "offset": {
+ "label": "Przesunięcie adnotacji",
+ "desc": "Dane te pochodzą z kanału wykrywania kamery, ale są nakładane na obrazy z kanału nagrywania. Jest mało prawdopodobne, aby oba strumienie były idealnie zsynchronizowane. W rezultacie ramka ograniczająca i materiał filmowy nie będą idealnie dopasowane. Można użyć tego ustawienia, aby przesunąć adnotacje do przodu lub do tyłu w czasie, aby lepiej dopasować je do nagranego materiału filmowego.",
+ "millisecondsToOffset": "Milisekundy, po których wykrywane są adnotacje. Domyślnie: 0",
+ "tips": "Zmniejsz wartość, jeśli odtwarzanie wideo wyprzedza pola i punkty ścieżki, i zwiększ wartość, jeśli odtwarzanie wideo pozostaje w tyle. Wartość ta może być ujemna.",
+ "toast": {
+ "success": "Przesunięcie adnotacji dla {{camera}} zostało zapisane w pliku konfiguracyjnym."
+ }
}
},
- "trackedPoint": "Śledzony Punkt"
+ "trackedPoint": "Śledzony Punkt",
+ "carousel": {
+ "previous": "Poprzedni slajd",
+ "next": "Następny slajd"
+ }
}
}
diff --git a/web/public/locales/pl/views/faceLibrary.json b/web/public/locales/pl/views/faceLibrary.json
index 5edfcba70..4bd3944f8 100644
--- a/web/public/locales/pl/views/faceLibrary.json
+++ b/web/public/locales/pl/views/faceLibrary.json
@@ -29,7 +29,8 @@
"train": {
"aria": "Wybierz ostatnio rozpoznane",
"title": "Ostatnie rozpoznania",
- "empty": "Nie podjęto ostatnio żadnych prób rozpoznawania twarzy"
+ "empty": "Nie podjęto ostatnio żadnych prób rozpoznawania twarzy",
+ "titleShort": "Ostatnie"
},
"selectFace": "Wybierz twarz",
"deleteFaceLibrary": {
diff --git a/web/public/locales/pl/views/search.json b/web/public/locales/pl/views/search.json
index 175b42a80..9de364f59 100644
--- a/web/public/locales/pl/views/search.json
+++ b/web/public/locales/pl/views/search.json
@@ -26,7 +26,8 @@
"after": "Po",
"search_type": "Typ wyszukiwania",
"time_range": "Zakres czasu",
- "before": "Przed"
+ "before": "Przed",
+ "attributes": "Właściwości"
},
"searchType": {
"thumbnail": "Miniatura",
diff --git a/web/public/locales/pl/views/settings.json b/web/public/locales/pl/views/settings.json
index 956eb5f02..dfc74b7dc 100644
--- a/web/public/locales/pl/views/settings.json
+++ b/web/public/locales/pl/views/settings.json
@@ -242,7 +242,8 @@
"mustNotBeSameWithCamera": "Nazwa strefy nie może być taka sama jak nazwa kamery.",
"alreadyExists": "Strefa z tą nazwą już istnieje dla tej kamery.",
"hasIllegalCharacter": "Nazwa strefy zawiera niedozwolone znaki.",
- "mustNotContainPeriod": "Nazwa strefy nie może zawierać kropki."
+ "mustNotContainPeriod": "Nazwa strefy nie może zawierać kropki.",
+ "mustHaveAtLeastOneLetter": "Nazwa strefy musi zawierać co najmniej jedną literę."
}
},
"distance": {
@@ -298,7 +299,7 @@
"name": {
"title": "Nazwa",
"inputPlaceHolder": "Wprowadź nazwę…",
- "tips": "Nazwa musi mieć co najmniej 2 znaki i nie może być taka sama jak nazwa kamery lub innej strefy."
+ "tips": "Nazwa musi mieć co najmniej 1 znak i nie może być taka sama jak nazwa kamery lub innej strefy."
},
"objects": {
"title": "Obiekty",
@@ -336,7 +337,7 @@
"lineDDistance": "Odległość linii D ({{unit}})"
},
"toast": {
- "success": "Strefa ({{zoneName}}) została zapisana. Uruchom ponownie Frigate, aby zastosować zmiany."
+ "success": "Strefa ({{zoneName}}) została zapisana."
}
},
"motionMasks": {
@@ -357,8 +358,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} został zapisany. Uruchom ponownie Frigate, aby zastosować zmiany.",
- "noName": "Maska Ruchu została zapisana. Uruchom ponownie Frigate, aby zastosować zmiany."
+ "title": "{{polygonName}} został zapisany.",
+ "noName": "Maska Ruchu została zapisana."
}
},
"label": "Maska ruchu",
@@ -371,8 +372,8 @@
"objectMasks": {
"toast": {
"success": {
- "title": "{{polygonName}} został zapisany. Uruchom ponownie Frigate aby wprowadzić zmiany.",
- "noName": "Maska Obiektu została zapisana. Uruchom ponownie Frigate, aby zastosować zmiany."
+ "title": "{{polygonName}} został zapisany.",
+ "noName": "Maska Obiektu została zapisana."
}
},
"objects": {
@@ -491,7 +492,7 @@
},
"users": {
"addUser": "Dodaj Użytkownika",
- "updatePassword": "Aktualizuj Hasło",
+ "updatePassword": "Resetuj Hasło",
"toast": {
"success": {
"createUser": "Użytkownik {{user}} został utworzony pomyślnie",
@@ -512,7 +513,7 @@
"role": "Rola",
"noUsers": "Nie znaleziono użytkowników.",
"changeRole": "Zmień rolę użytkownika",
- "password": "Hasło",
+ "password": "Resetuj hasło",
"deleteUser": "Usuń użytkownika"
},
"dialog": {
@@ -537,7 +538,16 @@
},
"title": "Hasło",
"placeholder": "Wprowadź hasło",
- "notMatch": "Hasła nie pasują"
+ "notMatch": "Hasła nie pasują",
+ "show": "Pokaż hasło",
+ "hide": "Ukryj hasło",
+ "requirements": {
+ "title": "Wymagania hasła:",
+ "length": "Co najmniej 8 znaków",
+ "uppercase": "Co najmniej jedna duża litera",
+ "digit": "Co najmniej jedna cyfra",
+ "special": "Co najmniej jeden znak specjalny (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"placeholder": "Wprowadź nowe hasło",
@@ -547,7 +557,11 @@
}
},
"usernameIsRequired": "Nazwa użytkownika jest wymagana",
- "passwordIsRequired": "Hasło jest wymagane"
+ "passwordIsRequired": "Hasło jest wymagane",
+ "currentPassword": {
+ "title": "Aktualne hasło",
+ "placeholder": "Wprowadź aktualne hasło"
+ }
},
"changeRole": {
"desc": "Aktualizuj uprawnienia dla {{username}}",
@@ -578,7 +592,12 @@
"setPassword": "Ustaw hasło",
"desc": "Utwórz silne hasło, aby zabezpieczyć to konto.",
"cannotBeEmpty": "Hasło nie może być puste",
- "doNotMatch": "Hasła nie pasują do siebie"
+ "doNotMatch": "Hasła nie pasują do siebie",
+ "currentPasswordRequired": "Wymagane jest aktualne hasło",
+ "incorrectCurrentPassword": "Aktualne hasło jest nieprawidłowe",
+ "passwordVerificationFailed": "Nie udało się zweryfikować hasła",
+ "multiDeviceWarning": "Wszystkie inne urządzenia, na których jesteś zalogowany, będą wymagały ponownego zalogowania się w ciągu {{refresh_time}}.",
+ "multiDeviceAdmin": "Możesz również wymusić natychmiastowe ponowne uwierzytelnienie wszystkich użytkowników poprzez zmianę sekretu JWT."
}
},
"management": {
@@ -814,7 +833,7 @@
"triggers": {
"documentTitle": "Wyzwalacze",
"management": {
- "title": "Zarządzanie wyzwalaczami",
+ "title": "Wyzwalacze",
"desc": "Zarządzaj wyzwalaczami dla kamery {{camera}}. Użyj typu miniatury, aby aktywować miniatury podobne do wybranego śledzonego obiektu, i typu opisu, aby aktywować opisy podobne do określonego tekstu."
},
"addTrigger": "Dodaj wyzwalacz",
@@ -835,7 +854,9 @@
},
"actions": {
"alert": "Oznacz jako alarm",
- "notification": "Wyślij powiadomienie"
+ "notification": "Wyślij powiadomienie",
+ "sub_label": "Dodaj podetykietę",
+ "attribute": "Dodaj atrybut"
},
"dialog": {
"createTrigger": {
@@ -855,23 +876,26 @@
"title": "Nazwa",
"placeholder": "Wprowadź nazwę wyzwalacza",
"error": {
- "minLength": "Nazwa musi mieć co najmniej 2 znaki.",
- "invalidCharacters": "Nazwa może zawierać jedynie litery, liczby, podkreślenie i myślniki.",
+ "minLength": "Pole musi mieć co najmniej 2 znaki.",
+ "invalidCharacters": "Pole może zawierać jedynie litery, liczby, podkreślenie i myślniki.",
"alreadyExists": "Wyzwalacz o tej nazwie istnieje już dla tej kamery."
- }
+ },
+ "description": "Wprowadź unikalną nazwę lub opis, aby zidentyfikować ten wyzwalacz"
},
"enabled": {
"description": "Włącz lub wyłącz ten wyzwalacz"
},
"type": {
"title": "Typ",
- "placeholder": "Wybierz typ wyzwalacza"
+ "placeholder": "Wybierz typ wyzwalacza",
+ "description": "Uruchom, gdy wykryty zostanie podobny opis śledzonego obiektu",
+ "thumbnail": "Uruchom, gdy wykryta zostanie podobna miniatura śledzonego obiektu"
},
"content": {
"title": "Zawartość",
- "imagePlaceholder": "Wybierz obraz",
+ "imagePlaceholder": "Wybierz miniaturkę",
"textPlaceholder": "Wprowadź treść",
- "imageDesc": "Wybierz obraz, aby uruchomić tę akcję po wykryciu podobnego obrazu.",
+ "imageDesc": "Wyświetlane jest tylko 100 najnowszych miniatur. Jeśli nie możesz znaleźć żądanej miniatury, przejrzyj wcześniejsze obiekty w sekcji Eksploruj i skonfiguruj wyzwalacz z menu w tym miejscu.",
"textDesc": "Wprowadź tekst, który spowoduje uruchomienie tej akcji po wykryciu podobnego opisu śledzonego obiektu.",
"error": {
"required": "Zawartość jest wymagana."
@@ -882,11 +906,12 @@
"error": {
"min": "Próg musi wynosić co najmniej 0",
"max": "Próg nie może być większy niż 1"
- }
+ },
+ "desc": "Ustaw próg podobieństwa dla tego wyzwalacza. Wyższy próg oznacza, że do uruchomienia wyzwalacza wymagane jest większe dopasowanie."
},
"actions": {
"title": "Akcje",
- "desc": "Domyślnie Frigate wysyła wiadomość MQTT dla wszystkich wyzwalaczy. Wybierz dodatkową akcję, która ma zostać wykonana po uruchomieniu tego wyzwalacza.",
+ "desc": "Domyślnie Frigate wysyła komunikat MQTT dla wszystkich wyzwalaczy. Podetykiety dodają nazwę wyzwalacza do etykiety obiektu. Atrybuty to metadane, które można przeszukiwać, przechowywane oddzielnie w metadanych śledzonego obiektu.",
"error": {
"min": "Musisz wybrać co najmniej jedną akcję."
}
@@ -913,6 +938,23 @@
"semanticSearch": {
"title": "Wyszukiwanie semantyczne jest zablokowane",
"desc": "Wyszukiwanie semantyczne musi być włączone, aby korzystać z triggerów."
+ },
+ "wizard": {
+ "title": "Utwórz wyzwalacz",
+ "step1": {
+ "description": "Skonfiguruj podstawowe ustawienia wyzwalacza."
+ },
+ "step2": {
+ "description": "Skonfiguruj treść, która uruchomi tę akcję."
+ },
+ "step3": {
+ "description": "Skonfiguruj próg i działania dla tego wyzwalacza."
+ },
+ "steps": {
+ "nameAndType": "Nazwa i typ",
+ "configureData": "Skonfiguruj dane",
+ "thresholdAndActions": "Próg i akcje"
+ }
}
},
"cameraWizard": {
@@ -1002,7 +1044,15 @@
"probeSuccessful": "Wykrywanie udane",
"probeError": "Błąd wykrywania",
"probeNoSuccess": "Niepowodzenie wykrywania",
- "presets": "Ustawienia wstępne"
+ "presets": "Ustawienia wstępne",
+ "rtspCandidates": "Kandydaci RTSP",
+ "rtspCandidatesDescription": "W wyniku sprawdzania kamery znaleziono następujące adresy URL RTSP. Przetestuj połączenie, aby wyświetlić metadane strumienia.",
+ "noRtspCandidates": "Nie znaleziono adresów URL RTSP z kamery. Twoje dane uwierzytelniające mogą być nieprawidłowe lub kamera może nie obsługiwać protokołu ONVIF lub metody używanej do pobierania adresów URL RTSP. Wróć i wprowadź adres URL RTSP ręcznie.",
+ "candidateStreamTitle": "Kandydat {{number}}",
+ "useCandidate": "Użyj",
+ "toggleUriView": "Kliknij, aby przełączyć widok pełnego adresu URI",
+ "connected": "Połączony",
+ "notConnected": "Niepołączony"
},
"step3": {
"streamTitle": "Strumień numer: {{number}}",
@@ -1032,11 +1082,19 @@
"detectRoleWarning": "Przynajmniej jeden strumień musi mieć rolę \"detect\".",
"rolesPopover": {
"title": "Role strumienia",
- "detect": "Główny strumień służący do wykrywania obiektów."
+ "detect": "Główny strumień służący do wykrywania obiektów.",
+ "record": "Zapisuje fragmenty strumienia wideo zgodnie z ustawieniami konfiguracyjnymi.",
+ "audio": "Kanał do wykrywania opartego na dźwięku."
},
"featuresPopover": {
- "title": "Funkcje strumienia"
- }
+ "title": "Funkcje strumienia",
+ "description": "Użyj funkcji ponownego przesyłania strumienia go2rtc, aby zmniejszyć liczbę połączeń z kamerą."
+ },
+ "description": "Skonfiguruj role strumieni i dodaj dodatkowe strumienie dla swojej kamery.",
+ "streamsTitle": "Strumienie kamery",
+ "addStream": "Dodaj strumień",
+ "addAnotherStream": "Dodaj kolejny strumień",
+ "searchCandidates": "Szukaj kandydatów..."
},
"step4": {
"description": "Końcowa walidacja i analiza przed zapisaniem ustawień nowej kamery. Połącz się z każdym strumieniem przed zapisaniem.",
@@ -1053,7 +1111,7 @@
"ffmpegModuleDescription": "Jeżeli po kilku próbach strumień nadal nie ładuje się, uruchom ten tryb. Gdy włączony jest ten tryb Frigate będzie używać modułu ffmpeg z go2rtc. Może to zapewnić lepszą kompatybilność z niektórymi typami strumieniów.",
"none": "Brak",
"error": "Błąd",
- "streamValidated": "Strumień numer: {{number}} przeszedł test pozytywnie.",
+ "streamValidated": "Strumień numer: {{number}} przeszedł test pozytywnie",
"streamValidationFailed": "Strumień numer: {{number}} test nieudany",
"saveAndApply": "Zapisz nową kamerę",
"saveError": "Nieprawidłowa konfiguracja. Sprawdź ustawienia.",
@@ -1065,11 +1123,26 @@
"noAudioWarning": "Nie wykryto dźwięku dla tego strumienia, nagrania również nie będą zawierać dźwięku.",
"audioCodecRecordError": "Kodek AAC jest wymagany aby uwzględnić dźwięk w nagraniach.",
"audioCodecRequired": "Strumień audio jest wymagany aby umożliwić wykrywanie dźwięku.",
- "restreamingWarning": "Ograniczenie ilości połączeń do strumienia nagrań może delikatnie zwiększyć użycie procesora",
+ "restreamingWarning": "Ograniczenie ilości połączeń do strumienia nagrań może delikatnie zwiększyć użycie procesora.",
"brands": {
- "reolink-rtsp": "Strumień RTSP dla kamer firmy Reolink nie jest rekomendowany. Uruchom strumień HTTP w oprogramowaniu kamery i uruchom kreator jeszcze raz."
+ "reolink-rtsp": "Strumień RTSP dla kamer firmy Reolink nie jest rekomendowany. Uruchom strumień HTTP w oprogramowaniu kamery i uruchom kreator jeszcze raz.",
+ "reolink-http": "Strumienie HTTP Reolink powinny korzystać z FFmpeg w celu zapewnienia lepszej kompatybilności. Włącz opcję 'Użyj trybu kompatybilności strumienia' dla tego strumienia."
+ },
+ "videoCodecGood": "Kodek wideo to {{codec}}.",
+ "dahua": {
+ "substreamWarning": "Podstrumień 1 jest zablokowany na niskiej rozdzielczości. Wiele kamer Dahua / Amcrest / EmpireTech obsługuje dodatkowe podstrumienie, które należy włączyć w ustawieniach kamery. Zaleca się sprawdzenie i wykorzystanie tych strumieni, jeśli są dostępne."
+ },
+ "hikvision": {
+ "substreamWarning": "Podstrumień 1 jest zablokowany na niskiej rozdzielczości. Wiele kamer Hikvision obsługuje dodatkowe podstrumienie, które należy włączyć w ustawieniach kamery. Zaleca się sprawdzenie i wykorzystanie tych strumieni, jeśli są dostępne."
}
- }
+ },
+ "connectAllStreams": "Podłącz wszystkie strumienie",
+ "reconnectionPartial": "Niektóre strumienie nie zostały ponownie połączone.",
+ "reload": "Przeładuj",
+ "failed": "Nie powiodło się",
+ "notTested": "Nietestowane",
+ "connectStream": "Połącz",
+ "ffmpegModule": "Użyj trybu zgodności strumienia"
},
"description": "Wykonaj poniższe kroki aby dodać nową kamerę do Frigate."
},
@@ -1080,7 +1153,8 @@
"selectCamera": "Wybierz kamerę",
"backToSettings": "Powrót do ustawień kamery",
"streams": {
- "title": "Włącz / Wyłącz kamery"
+ "title": "Włącz / Wyłącz kamery",
+ "desc": "Tymczasowo wyłącz kamerę do momentu ponownego uruchomienia Frigate. Wyłączenie kamery całkowicie zatrzymuje przetwarzanie strumieni z tej kamery przez program Frigate. Funkcje detekcji, nagrywania i debugowania będą niedostępne.
Uwaga: nie powoduje to wyłączenia strumieni go2rtc."
},
"cameraConfig": {
"add": "Dodaj kamerę",
@@ -1115,7 +1189,9 @@
"cameraReview": {
"review": {
"alerts": "Alerty ",
- "detections": "Wykrycia "
+ "detections": "Wykrycia ",
+ "title": "Recenzja",
+ "desc": "Tymczasowo włącz/wyłącz alerty i wykrywania dla tej kamery do momentu ponownego uruchomienia programu Frigate. Po wyłączeniu nie będą generowane żadne nowe elementy do przeglądu. "
},
"reviewClassification": {
"title": "Przegląd klasyfikacji",
@@ -1129,7 +1205,22 @@
"unsavedChanges": "Niezapisane ustawienia klasyfikacji przeglądu dla kamery {{camera}}",
"selectAlertsZones": "Wybierz strefę dla Alertów",
"selectDetectionsZones": "Wybierz strefę dla Wykryć",
- "limitDetections": "Ogranicz detekcje do konkretnych stref"
+ "limitDetections": "Ogranicz detekcje do konkretnych stref",
+ "desc": "Frigate dzieli elementy do przeglądu na alarmy i detekcje. Domyślnie wszystkie obiekty typu osoba i samochód są traktowane jako alerty. Możesz doprecyzować kategoryzację elementów do przeglądu, konfigurując dla nich wymagane strefy.",
+ "objectAlertsTips": "Wszystkie obiekty {{alertsLabels}} w {{cameraName}} będą wyświetlane jako alarmy.",
+ "zoneObjectAlertsTips": "Wszystkie obiekty {{alertsLabels}} wykryte w {{zone}} na {{cameraName}} zostaną wyświetlone jako alarmy.",
+ "toast": {
+ "success": "Konfiguracja klasyfikacji została zapisana. Uruchom ponownie program Frigate, aby zastosować zmiany."
+ }
+ },
+ "title": "Ustawienia przeglądu kamery",
+ "object_descriptions": {
+ "title": "Generatywne opisy obiektów AI",
+ "desc": "Tymczasowo włącz/wyłącz generatywne opisy obiektów AI dla tej kamery. Po wyłączeniu funkcja nie będzie generować opisów AI dla obiektów śledzonych przez tę kamerę."
+ },
+ "review_descriptions": {
+ "title": "Opisy generatywnej sztucznej inteligencji",
+ "desc": "Tymczasowo włącz/wyłącz generatywne opisy AI dla tej kamery. Po wyłączeniu opisy generowane przez AI nie będą wymagane dla elementów przeglądu w tej kamerze."
}
}
}
diff --git a/web/public/locales/pl/views/system.json b/web/public/locales/pl/views/system.json
index d6fe5ea89..ebcc11463 100644
--- a/web/public/locales/pl/views/system.json
+++ b/web/public/locales/pl/views/system.json
@@ -45,7 +45,8 @@
"npuMemory": "Pamięć NPU",
"intelGpuWarning": {
"message": "Statystyki układu graficznego niedostępne",
- "description": "W narzędziach telemetrii i statystyki układów graficznych firmy Intel (intel_gpu_top) znajduje się znany błąd powodujący raportowanie użycia układu graficznego wynoszące 0%, nawet gdy akceleracja sprzętowa i wykrywanie obiektów działa prawidłowo korzystając ze zintegrowanego układu graficznego. To nie jest błąd oprogramowania Frigate. Restart hosta może chwilowo rozwiązać problem i pozwolić na weryfikację działania układu graficznego. Ten bład nie wpływa na wydajność systemu,"
+ "description": "W narzędziach telemetrii i statystyki układów graficznych firmy Intel (intel_gpu_top) znajduje się znany błąd powodujący raportowanie użycia układu graficznego wynoszące 0%, nawet gdy akceleracja sprzętowa i wykrywanie obiektów działa prawidłowo korzystając ze zintegrowanego układu graficznego. To nie jest błąd oprogramowania Frigate. Restart hosta może chwilowo rozwiązać problem i pozwolić na weryfikację działania układu graficznego. Ten bład nie wpływa na wydajność systemu.",
+ "title": "Ostrzeżenie dotyczące statystyk Intel GPU"
}
},
"title": "Ogólne",
@@ -60,13 +61,20 @@
"otherProcesses": {
"title": "Inne procesy",
"processCpuUsage": "Użycie CPU przez proces",
- "processMemoryUsage": "Użycie pamięci przez proces"
+ "processMemoryUsage": "Użycie pamięci przez proces",
+ "series": {
+ "audio_detector": "detektor dźwięku",
+ "go2rtc": "go2rtc",
+ "recording": "nagranie",
+ "review_segment": "przejrzyj fragment",
+ "embeddings": "osadzone opisy"
+ }
}
},
"cameras": {
"info": {
"stream": "Strumień {{idx}}",
- "cameraProbeInfo": "{{camera}} Informacje o sondowaniu kamery",
+ "cameraProbeInfo": "{{camera}} Informacje o ustawieniach kamery",
"streamDataFromFFPROBE": "Dane strumienia są pozyskiwane za pomocą ffprobe.",
"video": "Wideo:",
"codec": "Kodek:",
@@ -117,12 +125,12 @@
},
"title": "Magazyn kamery",
"camera": "Kamera",
- "storageUsed": "Wykorzystany magazyn",
+ "storageUsed": "Wykorzystana przestrzeń",
"percentageOfTotalUsed": "Procent całości",
"bandwidth": "Przepustowość",
"unusedStorageInformation": "Informacja o niewykorzystanym magazynie"
},
- "title": "Magazyn",
+ "title": "Przestrzeń dyskowa",
"overview": "Przegląd",
"recordings": {
"title": "Nagrania",
@@ -187,7 +195,14 @@
"face_recognition": "Rozpoznawanie twarzy",
"classification_events_per_second": "{{name}} Klasyfikacja zdarzeń na sekundę",
"classification_speed": "{{name}} Szybkość klasyfikacji",
- "classification": "{{name}} Klasyfikacja"
- }
+ "classification": "{{name}} Klasyfikacja",
+ "review_description": "Opis recenzji",
+ "review_description_speed": "Szybkość opisu recenzji",
+ "review_description_events_per_second": "Opis recenzji",
+ "object_description": "Opis obiektu",
+ "object_description_speed": "Szybkość opisu obiektu",
+ "object_description_events_per_second": "Opis obiektu"
+ },
+ "averageInf": "Średni czas wnioskowania"
}
}