{
  "badge": {
    "artifact_tip": "Wykryto {n} anomalii (np. drzwi otwarte w połowie cyklu) – otwórz, aby zobaczyć je na wykresie",
    "auto": "(automatycznie wykryty)",
    "built_in_tag": "wbudowany",
    "declining": "↘ maleje",
    "energy_low": "Niższe zużycie energii niż zwykle",
    "energy_spike": "Wyższe zużycie energii niż zwykle",
    "fair_fit": "akceptowalne dopasowanie",
    "fair_fit_tip": "Umiarkowana spójność dopasowania – niektóre cykle przypisane do tego profilu mają niższy poziom pewności. Oznacz więcej cykli lub ponownie zapisz profil, aby poprawić dokładność.",
    "feedback_requested": "Poproszono o opinię",
    "golden_cycle": "Zarejestrowany cykl referencyjny",
    "improving": "↗ poprawa",
    "manual": "(wybierane ręcznie)",
    "needs_review": "Wymaga recenzji",
    "overrun": "Trwało dłużej niż zwykle",
    "poor_fit": "słabe dopasowanie",
    "poor_fit_tip": "Niespójna historia dopasowań - rozważ przebudowę tego profilu",
    "restart_gap_tip": "{n} przerwa restartu HA: przebieg mocy ma lukę",
    "reviewed": "Zrecenzowano",
    "steady": "→ stały",
    "underrun": "Zakończono szybciej niż zwykle",
    "using_defaults": "Używanie dostarczonych ustawień domyślnych",
    "using_tuned": "Używanie dostrojonych wag",
    "overrun_ratio": "({x}x oczekiwanego)",
    "underrun_ratio": "({pct}% oczekiwanego)",
    "awaiting_tip": "Oczekuje na zatwierdzenie przez społeczność",
    "awaiting_n": "Oczekuje na zatwierdzenie · potwierdzono {n}",
    "approved": "Zatwierdzone",
    "awaiting": "Oczekuje na zatwierdzenie",
    "imported_tip": "Zaimportowano ze sklepu społecznościowego. Używane tylko do dopasowywania, nie liczy się do statystyk."
  },
  "btn": {
    "add_device": "+ Dodaj urządzenie",
    "add_device_tip": "Dodaj kolejne urządzenie WashData",
    "add_maintenance": "Dodaj zdarzenie konserwacji",
    "add_phase": "+ Dodaj fazę",
    "add_timer": "+ Dodaj timer",
    "apply_all": "Zastosuj wszystko",
    "apply_label": "Zastosuj etykietę",
    "apply_set_b": "Zastosuj zestaw B",
    "apply_split": "Zastosuj podział",
    "apply_trim": "Zastosuj przycięcie",
    "auto_detect_split": "Automatyczne wykrywanie",
    "auto_label_cycles": "Cykle automatycznego etykietowania",
    "auto_label_cycles_tip": "Automatycznie przypisz nazwy profili do nieoznakowanych cykli, których pewność dopasowania przekracza próg",
    "cancel": "Anuluj",
    "clear_debug": "Wyczyść dane debugowania",
    "clear_splits": "Wyczyść",
    "close": "Zamknij",
    "compare": "Porównaj",
    "confirm": "Potwierdź",
    "convert_to_automation": "Przekształć w automatyzację",
    "correct": "Popraw…",
    "create": "Utwórz",
    "create_from_cluster": "Utwórz profil z {count} cykli",
    "create_profile": "+ Utwórz profil",
    "delete": "Usuń",
    "delete_group": "Usuń grupę",
    "delete_group_tip": "Usuń tylko tę grupę – profile członków zostaną zachowane",
    "delete_profile": "Usuń profil",
    "discard": "Odrzuć",
    "discard_tip": "Odrzuć nagranie bez zapisywania",
    "dismiss": "Odrzuć",
    "done": "Zrobione",
    "edit": "Edytuj",
    "export": "Eksportuj",
    "export_json": "Eksportuj do JSON",
    "force_stop": "Wymuś zatrzymanie",
    "force_stop_tip": "Natychmiast zakończ bieżący cykl i oznacz go jako wymuszony do zatrzymania",
    "from_template": "Z szablonu ▾",
    "ignore": "Ignoruj",
    "import_json": "Importuj z JSON",
    "import_overwrite": "Importuj (nadpisuje dane)",
    "inspect": "Zbadaj",
    "label": "Oznacz",
    "load": "Wczytaj",
    "load_more": "Wczytaj więcej",
    "manage": "Zarządzaj",
    "merge": "Scal",
    "new_automation": "+ Nowa automatyzacja",
    "new_group": "+ Nowa grupa",
    "new_group_tip": "Grupuj niemal identyczne profile (ten sam kształt/czas trwania, różna temperatura lub wirowanie), aby dopasowanie niezawodnie wybierało między nimi",
    "new_phase": "+ Nowa faza",
    "new_profile": "+ Nowy profil",
    "new_profile_tip": "Utwórz nowy profil programu z istniejącego oznakowanego cyklu lub nagrania",
    "on_cycle_finished": "Po zakończeniu cyklu",
    "on_cycle_started": "Po rozpoczęciu cyklu",
    "pause_cycle": "Pauza",
    "pause_cycle_tip": "Wstrzymaj bieżący cykl – urządzenie wznowi pracę od miejsca, w którym zostało zatrzymane",
    "pg_apply_device": "Zastosuj do urządzenia",
    "pg_autofill": "Wypełnij automatycznie",
    "play": "Odtwórz",
    "process": "Przetwórz",
    "process_history": "Przetwarzaj teraz",
    "process_recording": "Zapisz nagranie",
    "process_tip": "Zapisz zarejestrowany przebieg jako nowy lub istniejący profil",
    "rebuild": "Odbuduj koperty",
    "rebuild_envelope": "Odbuduj kopertę",
    "rebuild_tip": "Przelicz oczekiwaną obwiednię mocy (pasmo min/maks) dla wszystkich profili z ich oznakowanych cykli – uruchom po oznaczeniu nowych cykli lub korekcie starych",
    "rec_start_tip": "Rozpocznij rejestrowanie przebiegu mocy urządzenia – uruchom tuż przed rozpoczęciem cyklu",
    "rec_stop": "Zatrzymaj",
    "rec_stop_tip": "Zatrzymaj nagrywanie i zachowaj zarejestrowany przebieg do przeglądu",
    "record": "Rozpocznij nagrywanie",
    "refresh": "Odśwież",
    "refresh_diag_tip": "Przeładuj statystyki przechowywania",
    "refresh_logs_tip": "Przeładuj najnowsze rekordy dziennika",
    "refresh_settings_tip": "Przeładuj ustawienia z serwera",
    "relabel": "Zmień etykietę ({count})",
    "remove": "Usuń",
    "remove_timer": "Usuń timer",
    "reset": "Resetuj",
    "reset_ml_models_tip": "Odrzuć modele dopracowane i wróć do wbudowanych. WashData może później nauczyć się ich ponownie.",
    "reset_to_builtin": "Zresetuj do modeli wbudowanych",
    "reset_to_defaults": "Przywróć ustawienia domyślne",
    "resume_cycle": "Wznów cykl",
    "resume_cycle_tip": "Wznów wstrzymany cykl",
    "revert_settings": "Odrzuć zmiany",
    "revert_settings_tip": "Przywróć ustawienia sprzed ostatniego zapisu",
    "revert_settings_tip_none": "Najpierw zapisz, aby włączyć cofanie",
    "revert": "Cofnij",
    "revert_to_previous": "Przywróć to ustawienie do poprzedniej wartości",
    "review": "Sprawdź",
    "run": "Uruchom",
    "run_analysis": "🔍 Przeprowadź analizę sugestii",
    "run_analysis_tip": "Przeanalizuj już teraz swoje zarejestrowane cykle i odśwież sugestie dotyczące tuningu",
    "run_auto_label": "Uruchom automatyczne etykietowanie",
    "run_both": "Uruchom A vs B",
    "run_simulation": "Uruchom symulację",
    "save": "Zapisz",
    "save_access_control": "Zapisz kontrolę dostępu",
    "save_group": "Zapisz grupę",
    "save_panel_settings": "Zapisz ustawienia panelu",
    "save_phases": "Zapisz fazy",
    "save_preferences": "Zapisz preferencje",
    "save_reminders": "Zapisz przypomnienia",
    "save_review": "Zapisz recenzję",
    "save_settings": "Zapisz ustawienia",
    "select": "Wybierz",
    "select_all": "Zaznacz wszystko",
    "select_last20": "Ostatnie 20",
    "select_none": "Wyczyść",
    "show_only": "Pokaż tylko",
    "skip_setup": "Pomiń konfigurację",
    "split": "Podziel",
    "stop": "Zatrzymaj",
    "submit_correction": "Prześlij poprawkę",
    "train_now": "Trenuj teraz",
    "trim": "Przytnij",
    "trim_split": "Przytnij / Podziel",
    "undo": "Cofnij",
    "use": "Użyj",
    "wipe_all": "Wyczyść wszystkie dane",
    "delete_selected": "Usuń zaznaczone ({n})",
    "group_suggest": "Grupa {n}: {members}",
    "pg_apply_best": "Zastosuj najlepsze",
    "pg_apply_to_settings": "Zapisz w ustawieniach",
    "pg_apply_to_settings_tip": "Skopiuj wartości edytowane tutaj do aktywnych ustawień tego urządzenia",
    "search": "Szukaj",
    "import": "Importuj",
    "disconnect": "Rozłącz",
    "connect_github": "Połącz z GitHub",
    "save_appliance": "Zapisz urządzenie",
    "share_to_store": "Udostępnij w sklepie",
    "share": "Udostępnij",
    "confirm_appliance": "Potwierdź to urządzenie",
    "confirmed": "Potwierdzone",
    "browse_community_setups": "Przeglądaj konfiguracje społeczności",
    "download_device": "Pobierz konfigurację urządzenia",
    "share_device": "Udostępnij konfigurację urządzenia",
    "share_device_tip": "Udostępnij programy i ustawienia tego urządzenia społeczności",
    "share_n": "Udostępnij {n} program{s}"
  },
  "conflict": {
    "anti_wrinkle_exit": {
      "exit": "Musi być poniżej Progu Zatrzymania ({stop} W); w przeciwnym razie moc wyjścia antygniotowego jest ignorowana",
      "stop": "Musi być powyżej Progu Wyjścia Mocy antygniotowej ({exit} W)"
    },
    "anti_wrinkle_max": {
      "max": "Musi być powyżej Progu Startu ({start} W); w przeciwnym razie limit czasu trwania ochrony antygniotowej jest pomijany",
      "start": "Musi być poniżej Maks. Mocy Antygniotowej ({max} W)"
    },
    "attn_sub": "Przed zapisaniem napraw konflikty",
    "attn_title": "{n} konflikt{s} ustawień",
    "confidence": {
      "auto": "Musi być równy lub wyższy niż Próg Dopasowania ({match})",
      "learning": "Musi być równy lub niższy niż Próg Dopasowania ({match})",
      "match_for_auto": "Musi być równy lub niższy niż Pewność Automatycznego Etykietowania ({alc})",
      "match_for_learning": "Musi być równy lub wyższy niż Pewność Uczenia ({lc})"
    },
    "duration_ratio": {
      "max": "Musi być większy niż Minimalna Proporcja Czasu Trwania ({min})",
      "min": "Musi być mniejszy niż Maksymalna Proporcja Czasu Trwania ({max})"
    },
    "hysteresis": {
      "start": "Musi być powyżej Progu Zatrzymania ({stop} W)",
      "stop": "Musi być poniżej Progu Startu ({start} W)"
    },
    "min_power": {
      "min_power": "Musi być równy lub niższy niż Próg Zatrzymania ({stop} W)",
      "stop": "Musi być równy lub wyższy niż Minimalna Moc ({min} W)"
    },
    "no_update_timeout": {
      "timeout": "Musi być większy niż Interwał Watchdog ({wi} s)",
      "watchdog": "Musi być mniejszy niż Limit Czasu Braku Aktualizacji ({to} s)"
    },
    "off_delay": {
      "gap": "Minimalna Przerwa Wyłączenia powinna wynosić co najmniej Opóźnienie Wyłączenia ({delay} s)",
      "off_delay": "Opóźnienie Wyłączenia ({off_delay} s) przekracza Minimalną Przerwę Wyłączenia ({gap} s); kolejne cykle mogą się scalić"
    },
    "power_off": {
      "stop": "Musi być powyżej Progu Wyłączenia Zasilania ({pot} W)",
      "threshold": "Musi być poniżej Progu Zatrzymania ({stop} W), aby zadziałać"
    },
    "pump_stuck": {
      "duration": "Musi być mniejszy niż Limit Czasu Braku Aktualizacji ({to} s), aby alarm zacięcia zadziałał przed wyłączeniem cyklu przez watchdoga",
      "timeout": "Musi przekraczać Czas Zacięcia Pompy ({ps} s), aby alarm zadziałał przed wymuszonym zatrzymaniem cyklu"
    },
    "start_dur": {
      "sampling": "Interwał Próbkowania przekracza Czas Trwania Startu ({sdt} s); pojedynczy impuls może otworzyć cykl",
      "threshold": "Powinien wynosić co najmniej jeden Interwał Próbkowania ({si} s), aby zapobiec fałszywym startom z pojedynczej próbki"
    },
    "unmatch": {
      "match": "Musi być powyżej Progu Niedopasowania ({un})",
      "unmatch": "Musi być poniżej Progu Dopasowania ({match}); w przeciwnym razie potwierdzone dopasowanie natychmiast się cofa"
    },
    "cascade_toast": "Dodatkowo dostosowano {n} ustawień w celu zachowania spójności.",
    "suggestion_resolves": "Zastosuj oczekującą sugestię ({val}) poniżej, aby rozwiązać ten konflikt",
    "use_fix": "Użyj {val}",
    "watchdog": {
      "interval": "Powinien wynosić co najmniej 2× Interwał Próbkowania ({si} s)",
      "sampling": "Interwał Próbkowania powinien wynosić co najwyżej połowę Interwału Watchdog ({wi} s)"
    },
    "settings_banner": "{n} konflikt{s} ustawień – sprawdź podświetlone sekcje i popraw przed zapisaniem.",
    "settings_banner_btn": "Przejdź do pierwszego"
  },
  "hdr": {
    "ab_comparison": "Porównanie ustawień A/B",
    "access_control": "Kontrola dostępu",
    "add_maintenance": "Dodaj zdarzenie konserwacji",
    "automation_delete": "Usuń tę automatyzację",
    "automation_needs_review": "Ten cykl wymaga przeglądu",
    "automation_open": "Otwórz w edytorze automatyzacji",
    "automation_review_this_cycle": "Przejrzyj ten cykl",
    "automations": "Automatyka",
    "clear_debug": "Wyczyść ślady debugowania",
    "cycle_simulator": "Symulator cykli",
    "diagnostics_pref": "Diagnostyka",
    "display": "Wyświetlacz",
    "dtw_inspector": "Inspektor DTW",
    "export_import": "Eksportuj/Importuj",
    "getting_started": "Pierwsze kroki",
    "live_power": "Moc na żywo",
    "logs": "Dzienniki",
    "logs_diagnostics": "Diagnostyka",
    "maintenance": "Działania konserwacyjne",
    "maintenance_log": "Dziennik konserwacji",
    "maintenance_reminders": "Przypomnienia serwisowe",
    "manual_recording": "Nagrywanie ręczne",
    "manual_recording_tip": "Uruchom cykl celowo, gdy WashData rejestruje przebieg mocy. Naciśnij Start tuż przed uruchomieniem urządzenia, Stop po zakończeniu, a następnie Przetwórz, aby zapisać jako nazwany profil.",
    "ml_learned": "Czego nauczył się WashData",
    "ml_matching_tuning": "Dostrajanie dopasowania programu",
    "ml_settings_card": "Ustawienia",
    "ml_smart_learning": "Inteligentne uczenie się",
    "my_preferences": "Moje preferencje",
    "no_automations": "Żadna automatyzacja nie odwołuje się jeszcze do tego urządzenia.",
    "panel_settings": "Ustawienia panelu",
    "param_sweep": "Przemiatanie parametru",
    "phase_catalog": "Katalog faz",
    "playground": "Piaskownica",
    "process_history": "Historia procesu",
    "settings_history": "Historia ustawień",
    "status": "Status",
    "status_graph": "Wykres stanu",
    "storage_stats": "Statystyki przechowywania",
    "test_history": "Testuj na historii",
    "toggle_sidebar": "Przełącz pasek boczny Asystenta Home",
    "tools_and_data": "Narzędzia i dane",
    "wipe_history": "Wyczyść historię",
    "recommendations": "Zalecenia ({n})",
    "pg_detection_params": "Ustawienia wykrywania",
    "pg_timeline": "Oś czasu zdarzeń",
    "pg_outcome": "Wynik symulacji",
    "pg_across_cycles": "We wszystkich Twoich cyklach",
    "community_store": "Sklep społecznościowy",
    "online_account": "Sklep społecznościowy i funkcje online"
  },
  "health": {
    "fair": "Akceptowalna jakość profilu",
    "good": "✓ Dobra jakość profilu",
    "poor": "⚠ Słaba jakość profilu"
  },
  "lbl": {
    "actions": "Działania",
    "activity": "Działalność",
    "administrators": "Administratorzy",
    "aria_compare_chart": "Wykres porównania cykli",
    "aria_cycle_chart": "Krzywa mocy cyklu",
    "aria_envelope_chart": "Obwiednia mocy profilu",
    "aria_phase_chart": "Wykres edytora faz",
    "aria_playground_chart": "Krzywa mocy cyklu z przeciąganymi progami wykrywania",
    "aria_power_chart": "Wykres mocy",
    "aria_spaghetti_chart": "Nałożone krzywe mocy cykli",
    "aria_sweep_chart": "Wykres wyników przemiatania parametru",
    "artifact_anomaly": "Anomalia",
    "artifact_high_power": "Wysoka moc",
    "artifact_interruption": "Przerwanie",
    "artifact_low_power": "Niska moc",
    "auto_detect": "Automatyczne wykrywanie",
    "auto_fine_tune_off": "automatyczne dostrajanie wyłączone",
    "auto_fine_tune_on": "automatyczne dostrajanie włączone (około {hour}:00)",
    "avg_cost": "Śr. koszt",
    "change": "Zmiana",
    "clock_time": "Czas zegarowy",
    "cohesion_good": "spójność {pct}%",
    "cohesion_low": "⚠ niska spójność {pct}%",
    "compare_profiles": "Porównaj z profilami",
    "concurrency": "Współbieżność",
    "confidence": "Zaufanie",
    "confidence_threshold": "Próg ufności",
    "correct_duration": "Prawidłowy czas trwania (min, opcjonalnie)",
    "correct_profile": "Prawidłowy profil",
    "correlation": "Korelacja",
    "cost": "Koszt",
    "create_new_profile": "+ Utwórz nowy profil…",
    "current_phase": "Bieżąca faza",
    "curves": "Krzywe",
    "cycle": "Cykl",
    "cycle_date_display": "Wyświetlanie daty cyklu",
    "cycle_health": "Zdrowie na rowerze",
    "cycle_index": "indeks cyklu →",
    "cycles": "Cykle",
    "cycles_count": "Cykle",
    "cycles_lc": "cykli",
    "dashed": "przerywana",
    "date": "Data",
    "debug_traces": "Debuguj ślady",
    "default": "Domyślny",
    "default_access_level": "Domyślny poziom dla użytkowników niewymienionych poniżej",
    "default_other": "Domyślne (inne urządzenia)",
    "default_tab": "Domyślna zakładka podczas otwierania panelu",
    "delta": "Δ",
    "description": "Opis",
    "dtw_blend_w": "Waga mieszania",
    "dtw_blended": "Wynik mieszany",
    "dtw_ddtw": "Wynik DDTW",
    "dtw_l1": "Wynik L1",
    "dtw_matched_profile": "(dopasowany profil cyklu)",
    "duration": "Czas trwania",
    "duration_agreement": "Zgodność czasu trwania",
    "emphasis": "Podkreślenie",
    "enable_access_control": "Włącz kontrolę dostępu dla poszczególnych użytkowników",
    "energy": "Energia",
    "energy_agreement": "Zgodność energii",
    "event_timeline": "Oś czasu zdarzeń",
    "event_type": "Typ zdarzenia",
    "expected": "Oczekiwane",
    "expected_duration": "Oczekiwany czas trwania (min)",
    "file_kb": "Plik (kB)",
    "final_score": "Wynik końcowy",
    "from": "Od",
    "gap_s": "Luka (y)",
    "group_name": "Nazwa grupy",
    "head_trim": "Głowica (e)",
    "health": "Zdrowie",
    "hide_tabs": "Ukryj karty dla osób niebędących administratorami",
    "in_use": "W użyciu",
    "json_data": "Dane JSON",
    "label": "Dopasowany program",
    "last": "Ostatnie",
    "last_checked": "Ostatnio sprawdzane:",
    "load_from_file": "Załaduj z pliku",
    "mae_score": "Wynik MAE",
    "manual_duration": "Ręczny czas trwania (min, opcjonalnie)",
    "match": "Dopasowanie",
    "members": "Członkowie",
    "metric": "Metryka",
    "mode_existing_profile": "Dodaj do istniejącego profilu",
    "mode_new_profile": "Utwórz nowy profil",
    "models_fine_tuned": "({count} modeli dostrojonych)",
    "n_classic_suggestions": "{n} klasyczne",
    "n_ml_suggestions": "{n} ML",
    "n_selected": "Wybrano {n}",
    "n_tuning_suggestions": "{n} sugestia dostrajania",
    "na": "nd.",
    "new_profile_name": "Nowa nazwa profilu",
    "notes": "Notatki",
    "of": "z",
    "outcome": "Wynik",
    "panel_default_tab": "Zakładka domyślna",
    "panel_language": "Język panelu",
    "per_cycle_short": "cykl",
    "pg_autofill_tip": "Wypełnij automatycznie zakres na podstawie bieżącej wartości ({lo}–{hi})",
    "pg_best_value": "Znaleziona najlepsza wartość",
    "pg_current_value": "Bieżąca wartość:",
    "pg_drag_hint": "Przeciągnij linię na wykresie",
    "pg_dtw": "DTW",
    "pg_ev_ending": "Kończenie",
    "pg_ev_running": "Działa",
    "pg_group_advanced": "Przypadki brzegowe",
    "pg_group_detection": "Wyzwalacze wykrywania",
    "pg_group_timing": "Reguły czasowe",
    "pg_idle": "Bezczynny",
    "pg_last_run": "Ostatnie uruchomienie: {date}",
    "pg_match_score": "Wynik dopasowania",
    "pg_pct_of": "{p}% z {total}",
    "pg_poor_match": "Kiepskie dopasowanie",
    "pg_strong_match": "Silne dopasowanie",
    "pg_tile_ambiguous": "Niejednoznaczny",
    "pg_tile_ambiguous_tip": "Cykle z niemal równym dopasowaniem do dwóch programów",
    "pg_tile_detected": "Wykryto",
    "pg_tile_detected_tip": "Cykle, w których moc przekroczyła próg startu na tyle długo, by zostać zarejestrowana jako działanie",
    "pg_tile_matched": "Dopasowano",
    "pg_tile_matched_tip": "Cykle poprawnie przypisane do znanego programu",
    "pg_time_left": "Pozostały czas",
    "pg_weak_match": "Słabe dopasowanie",
    "phase_name": "Nazwa",
    "phase_timeline": "Oś czasu faz",
    "power": "Moc",
    "profile": "Profil",
    "profile_index": "indeks profilu →",
    "profile_name": "Nazwa profilu",
    "program": "Program",
    "program_tip": "Zastąp profil dopasowywany do bieżącego cyklu. Automatyczne wykrywanie pozwala integracji automatycznie wybrać najlepsze dopasowanie. Przypnij określony program, aby wymusić dopasowanie, gdy automatyczne wykrywanie jest błędne lub wiesz, co jest uruchomione.",
    "progress": "Postęp",
    "raw_socket": "Surowe gniazdo",
    "read_only": "Tylko do odczytu",
    "ref_cycle": "Cykl referencyjny (opcjonalnie)",
    "refresh_interval": "Interwał odświeżania (s)",
    "remaining": "Pozostały",
    "reminder_every": "Przypominaj co (cykle)",
    "remove_label": "- Usuń etykietę -",
    "rename_profile": "Zmień nazwę profilu",
    "replay_duration": "Odtwarzanie",
    "resulting_profile": "Wynikowy profil",
    "save_mode": "Tryb oszczędzania",
    "score": "Wynik",
    "score_breakdown": "Rozbicie wyniku",
    "seconds_from_start": "Sekundy od początku",
    "select_profile": "Wybierz opcję Profil",
    "setting": "Ustawienie",
    "settings_a": "Ustawienia A (bieżące)",
    "settings_a_short": "A",
    "settings_advanced": "Zaawansowane",
    "settings_b": "Ustawienia B (test)",
    "settings_b_short": "B",
    "settings_basic": "Podstawowe",
    "settings_detail_level": "Poziom szczegółowości ustawień",
    "settings_overrides": "Zastąpienia ustawień",
    "show_debug": "Pokaż kartę debugowania dopasowania na żywo na stronie Status (pewność, niejednoznaczność, najlepsi kandydaci)",
    "show_expected": "Pokaż oczekiwaną nakładkę krzywej (dopasowany profil, pomarańczowy)",
    "show_raw": "Pokaż przełącznik surowych odczytów gniazdka na wykresie mocy na żywo",
    "sparkline": "Ostatni trend czasu trwania cykli",
    "stage2": "Etap 2 – podstawowe podobieństwo",
    "stage3": "Etap 3 – DTW",
    "stage4": "Etap 4 – zgodność",
    "status": "Status",
    "tail_trim": "Trymowanie ogona",
    "timer_auto_pause": "Automatyczna pauza",
    "timer_min": "min",
    "timer_msg_placeholder": "Wiadomość (opcjonalnie, {device}/{program}/{minutes})",
    "to": "Do",
    "ungrouped": "Rozgrupowane",
    "unlabelled": "Nieoznakowane",
    "unlabelled_paren": "(bez etykiety)",
    "warp_path": "Ścieżka dopasowania",
    "input": "Wejście:",
    "start": "Początek",
    "end": "Koniec",
    "unit_s": "(s)",
    "reviewed_on": "sprawdzono {date}",
    "unknown": "Nieznany",
    "quality": "Jakość",
    "tags": "Etykiety",
    "at": "o",
    "pct_match_confidence": "{pct}% pewności dopasowania",
    "ha_restarted": "HA uruchomiono ponownie",
    "from_start": "Od początku",
    "to_end": "Do końca",
    "click_to_select": "kliknij, aby wybrać",
    "envelope": "Obwiednia",
    "zoom_hint": "przewiń, aby przybliżyć · dwuklik, aby zresetować",
    "loading_paren": "(wczytywanie…)",
    "time_remaining": "~{v} pozostało",
    "no_duration": "brak czasu trwania",
    "duration_avg": "~{v}m śr.",
    "name_placeholder": "(nazwa)",
    "n_shown": ", pokazano {n}",
    "cycles_title": "Cykle ({n})",
    "pg_detecting": "Wykrywanie",
    "pg_best_marker": "Najlepszy: {v}",
    "pg_time_left_model": "Pozostały czas (model)",
    "pg_time_left_model_tip": "Szacowany przez model pozostały czas (estymator faz + mieszanie z ML), a nie statyczne odliczanie",
    "phase": "Faza",
    "pg_mode_simulate": "Symuluj",
    "pg_mode_history": "Testuj na historii",
    "pg_mode_sweep": "Przemiatanie",
    "pg_ev_detected": "Wykryto",
    "pg_ev_match": "Dopasowanie zatwierdzone",
    "pg_ev_match_changed": "Dopasowanie zmienione",
    "pg_ev_ambiguous": "Niejednoznaczne",
    "pg_ev_unmatched": "Bez dopasowania",
    "pg_ev_notify_start": "Powiadomienie o starcie",
    "pg_ev_notify_pre": "Powiadomienie o zbliżającym się końcu",
    "pg_ev_notify_finish": "Powiadomienie o zakończeniu",
    "pg_ev_notify_milestone": "Powiadomienie o kamieniu milowym",
    "pg_ev_notify_held": "Powiadomienie wstrzymane (ciche godziny)",
    "pg_ev_finished": "Zakończono",
    "pg_ended": "Zakończony",
    "pg_proj_energy": "Szac. energia",
    "pg_alert_overrun": "Wydłużenie",
    "pg_alert_underrun": "Skrócenie",
    "pg_alert_did_not_finish": "Nie zakończono",
    "pg_alert_false_end": "Podzielono na wiele cykli",
    "pg_alert_unmatched": "Bez dopasowania",
    "pg_alert_ambiguous": "Niejednoznaczne dopasowanie",
    "pg_alert_energy": "Anomalia energii",
    "pg_newly_correct": "nowo poprawne",
    "pg_regressed": "pogorszone",
    "pg_end_timing_changed": "zmiana czasu końca",
    "pg_vs_current": "wobec bieżącego",
    "pg_fixed": "naprawione",
    "pg_broke": "zepsute",
    "pg_sweep_param": "Parametr",
    "pg_objective": "Cel",
    "pg_steps": "Kroki",
    "pg_sweep_2d": "Mapa cieplna 2D",
    "pg_sweep_param_y": "2. parametr",
    "pg_obj_match": "Trafność dopasowania",
    "pg_obj_endtiming": "Trafność końca",
    "pg_obj_falseend": "Wskaźnik fałszywych końców",
    "pg_obj_overrun": "Odchylenie czasu trwania",
    "pg_obj_ambiguity": "Wskaźnik niejednoznaczności",
    "pg_best_combo": "najlepsza kombinacja",
    "pg_mode_optimize": "Optymalizuj",
    "pg_group_matching": "Dopasowywanie programów",
    "pg_zoom_hint": "kliknij dwukrotnie, aby zresetować powiększenie",
    "aria_playground_chart2": "Interaktywny wykres mocy cyklu: najedź, aby odczytać czas/moc, przewiń, aby powiększyć, przeciągnij, aby przesunąć",
    "pg_alert_timeout_end": "Zakończono z powodu limitu czasu, nie na podstawie prognozy",
    "pg_alert_indefinite": "Działałby w nieskończoność",
    "task_pg_history": "Test na historii",
    "task_pg_sweep": "Optymalizuj",
    "task_reprocess": "Ponowne przetwarzanie",
    "task_ml_training": "Uczenie",
    "eta_secs": "pozostało ~{n} s",
    "eta_mins": "pozostało ~{n} min",
    "pg_recent_runs": "Ostatnie uruchomienia",
    "pg_load_run": "Wczytaj ponownie to uruchomienie",
    "pg_match_confidence": "Pewność dopasowania",
    "pg_envelope_fit": "Zgodność z obwiednią",
    "pg_envelope_fit_tip": "Jak dokładnie cykl mieści się w zapisanej obwiedni mocy tego profilu, inne spojrzenie niż pewność dopasowania.",
    "n_imported_note": ", {n} zaimportowanych",
    "enable_online": "Włącz funkcje online",
    "store_brand": "Marka urządzenia",
    "store_model": "Model urządzenia",
    "anonymous": "Anonimowo",
    "rate_quality": "Oceń jakość",
    "rate_n": "{n} gwiazdek",
    "approved_only": "Tylko zatwierdzone",
    "adopt_settings": "Przyjmij ustawienia",
    "flags": "Flagi",
    "include_phase_map": "Dołącz mapę faz",
    "include_settings": "Dołącz ustawienia",
    "show_contributor": "Pokaż współtwórcę",
    "task_pg_detail": "Symuluj cykl",
    "task_split": "Dzielenie cyklu",
    "task_trim": "Przycinanie cyklu",
    "task_merge": "Scalanie cykli",
    "task_rebuild": "Przeliczanie obwiedni"
  },
  "log": {
    "all_levels": "Wszystkie poziomy",
    "all_devices": "Wszystkie urządzenia",
    "all_components": "Wszystkie komponenty",
    "search_ph": "Szukaj w dziennikach…"
  },
  "ml": {
    "builtin_models": "● Korzystanie z wbudowanych modeli",
    "fit_fair": "Akceptowalny",
    "fit_good": "Dobry",
    "fit_slight": "Niewielki",
    "fit_strong": "Mocny",
    "fit_weak": "Słaby",
    "fit_word": "dopasowanie",
    "personalized": "● Spersonalizowane dla tego urządzenia",
    "better_than_baseline": "{pct}% lepiej niż szacunek bazowy ({metric})",
    "trend_improving_tip": "Dopasowanie tego modelu poprawiło się w ostatnich ponownych sprawdzeniach.",
    "trend_declining_tip": "Dopasowanie tego modelu pogorszyło się w ostatnich ponownych sprawdzeniach, przejrzenie większej liczby cykli może pomóc mu ponownie się nauczyć.",
    "trend_steady_tip": "Dopasowanie tego modelu pozostało mniej więcej stabilne w ostatnich ponownych sprawdzeniach.",
    "cap_blurb": {
      "end": "Wykrywanie, kiedy cykl faktycznie się zakończył",
      "live_match": "Szybsze rozpoznawanie uruchomionego programu",
      "quality": "Wykrywanie błędnie rozpoznanych lub uszkodzonych cykli",
      "remaining_time": "Przewidywanie, ile czasu pozostało",
      "total_energy": "Przewidywanie całkowitej energii i kosztu"
    },
    "cap_label": {
      "end": "Wykrywanie końca cyklu",
      "live_match": "Rozpoznawanie programu",
      "quality": "Kontrola jakości cyklu",
      "remaining_time": "Szacowanie pozostałego czasu",
      "total_energy": "Szacowanie energii"
    },
    "metric_auc": "AUC {auc} na danych walidacyjnych",
    "metric_mae": "błąd {model} względem modelu bazowego {baseline}"
  },
  "modal": {
    "auto_label": "Cykle automatycznego etykietowania",
    "correct_feedback": "Prawidłowa informacja zwrotna",
    "create_profile": "Utwórz profil",
    "cycle": "Cykl",
    "edit_group": "Edytuj grupę profili",
    "edit_phase": "Edytuj fazę",
    "import_config": "Importuj konfigurację",
    "label_cycle": "Cykl etykiet",
    "merge_cycles": "Połącz {n} cykli",
    "new_group": "Nowa grupa profili",
    "new_phase": "Nowa faza",
    "process_history_msg": "Ponownie uruchom dopasowywanie, odśwież sugestie, przetrenuj ML (jeśli włączone) i przelicz kondycję cykli dla wszystkich zapisanych cykli. Może to chwilę potrwać.",
    "process_history_ok": "Przetwórz",
    "process_history_title": "Przetwarzanie historii",
    "process_recording": "Nagrywanie procesu",
    "delete_maintenance_msg": "Usunąć ten wpis konserwacji? Tej operacji nie można cofnąć.",
    "delete_maintenance_title": "Usuń zdarzenie konserwacji",
    "relabel_cycles": "Zmień etykietę {count} cykli",
    "delete_automation_title": "Usuń automatyzację",
    "delete_automation_msg": "Usunąć automatyzację \"{name}\" z Home Assistant? Tej operacji nie można cofnąć.",
    "remove_legacy_title": "Usuń starsze akcje",
    "remove_legacy_msg": "Usunąć starsze niestandardowe akcje? Przestaną się uruchamiać przy zdarzeniach cyklu. Nie można tego cofnąć z panelu.",
    "discard_recording_title": "Odrzuć nagranie",
    "discard_recording_msg": "Odrzucić zapisane nagranie? Tej operacji nie można cofnąć.",
    "dismiss_all_title": "Odrzuć wszystkie prośby o opinię",
    "dismiss_all_msg": "Odrzucić wszystkie {count} oczekujące prośby o opinię?",
    "dismiss_all_ok": "Odrzuć wszystkie",
    "delete_phase_title": "Usuń fazę",
    "delete_phase_msg": "Usunąć fazę \"{name}\"?",
    "clear_debug_title": "Wyczyść dane debugowania",
    "clear_debug_msg": "Usunąć wszystkie zapisane ślady debugowania?",
    "wipe_all_title": "Wyczyść wszystkie dane",
    "wipe_all_msg": "⚠️ To trwale usuwa WSZYSTKIE cykle i profile. Tej operacji nie można cofnąć.",
    "wipe_all_ok": "Wyczyść wszystko",
    "force_stop_title": "Wymuś zatrzymanie cyklu",
    "force_stop_msg": "Wymusić teraz zatrzymanie aktywnego cyklu? Cykl zostanie zapisany jako przerwany.",
    "store_import": "Importuj cykl referencyjny",
    "store_share": "Udostępnij w sklepie społecznościowym",
    "store_share_device": "Udostępnij konfigurację urządzenia"
  },
  "msg": {
    "appliance_monitor": "Monitor urządzenia",
    "artifact_dip_detail": "Moc spadła poniżej normalnego zakresu przez ~{n}s.",
    "artifact_footer": "Zaznaczono na powyższym wykresie. Są to artefakty przejściowe (np. otwarcie drzwi w połowie cyklu), niekoniecznie problemy.",
    "artifact_header": "W tym cyklu wykryto {n} anomalii",
    "artifact_pause_detail": "Moc spadła prawie do zera przez ~{n}s, a następnie wzrosła – prawdopodobnie drzwi zostały otwarte w trakcie cyklu lub cykl był wstrzymany.",
    "artifact_spike_detail": "Moc przekroczyła normalny zakres przez ~{n}s.",
    "auto_label_intro": "Przypisz profile do nieoznakowanych cykli, których pewność dopasowania przekracza próg.",
    "automations_intro": "WashData uruchamia zdarzenia {start} / {end} i udostępnia encje, więc powiadomienia i akcje najlepiej budować jako normalne automatyzacje Home Assistant. Automatyzacje korzystające z tego urządzenia są widoczne poniżej.",
    "cleanup_intro": "Każdy oznaczony cykl został nałożony. Zaznacz wartości odstające i usuń, aby oczyścić profil.",
    "clear_debug_hint": "Usuń zapisane dane debugowania, aby zwolnić miejsce.",
    "collecting_data": "Zbieranie danych: jeszcze {need} cykli do rozpoczęcia dostrajania ({current}/{min}).",
    "compare_overlay_profiles": "Profile nakładkowe (słabe)",
    "compare_profiles_tip": "Nałóż inne koperty profili na powyższy wykres, aby zobaczyć, która z nich najlepiej pasuje do tego cyklu.",
    "compare_selected_cycles": "Wybrane cykle (pełne) – pokaż / ukryj",
    "consider_new_profile": "Rozważ utworzenie nowego profilu.",
    "coverage_gap": "ostatnie cykle nie mają pasującego profilu ({pct}% z ostatnich 30).",
    "coverage_gap_similar_cycles": "Znaleziono {count} podobnych nieoznaczonych cykli – utwórz profil, aby zacząć je dopasowywać.",
    "cycles_deleted": "Usunięto cykle: {count}",
    "enough_data": "Wystarczająco danych do nauki ({current}/{min} cykli).",
    "export_description": "Eksportuj wszystkie profile i cykle do formatu JSON lub przywróć dane z poprzedniego eksportu.",
    "feedback_cycles_pending": "{n} cykl{s} do sprawdzenia",
    "feedback_prompt": "Potwierdź, że wszystko było w porządku, popraw program lub zignoruj.",
    "filter_by_profile": "Filtruj według profilu…",
    "group_modal_help": "Grupuj programy o tym samym kształcie, różniące się temperaturą/wirowaniem (czas trwania może się różnić). Dopasowanie ocenia grupę jako jednego kandydata, a następnie wybiera najlepiej dopasowanego członka. Wybierz co najmniej 2; nakładka pokazuje, jak bardzo są podobni.",
    "group_not_cohesive": "Te profile nie są na tyle podobne, aby można było je bezpiecznie grupować, więc dopasowywanie traktuje je indywidualnie, dopóki nie usuniesz wartości odstającej lub nie podzielisz grupy.",
    "group_preview_hint": "Zaznacz co najmniej 2 członków, aby podejrzeć i porównać ich krzywe mocy.",
    "import_intro": "Załaduj wyeksportowany plik lub wklej poniżej ładunek JSON.",
    "legacy_actions_title": "{count} starsze działanie niestandardowe nadal działa",
    "live_chart_loading": "Wykres mocy na żywo pojawia się po otrzymaniu odczytów.",
    "loading": "Załadunek…",
    "loading_curve": "Ładowanie krzywej…",
    "loading_settings": "Ładowanie ustawień…",
    "log_buffer_hint": "Najpierw najnowsze · buforuje ostatnie 500 rekordów ha_washdata od ponownego uruchomienia · przeciągnij dolną krawędź, aby zmienić rozmiar.",
    "maintenance_advisory": "Zwiększenie czasu trwania/energii może wskazywać na konieczność konserwacji urządzenia (np. odkamieniania, czyszczenia filtra).",
    "maintenance_due": "Wymagana konserwacja: {items}",
    "maintenance_intro": "Zapisuj czynności serwisowe wykonywane przy tym urządzeniu i otrzymuj przypomnienia, gdy każde zadanie znów będzie wymagane.",
    "maintenance_load_error": "Nie można wczytać danych konserwacji: {error}",
    "maintenance_requires_access": "Konserwacja i eksport/import wymagają pełnego dostępu.",
    "manual_duration_hint": "Średnia/oczekiwana długość cyklu profilu, używana do szacunków pozostałego czasu. Edytuj, aby to ustawić; pozostawienie go bez zmian powoduje zachowanie bieżącej wartości.",
    "matching_tuning_intro": "Podczas nauki WashData dostosowuje również wpływ dopasowania programu na kształt w porównaniu z czasem trwania i energią.",
    "merge_intro": "Wybrane cykle są łączone w jeden (kolejność chronologiczna; przerwy wypełnione 0 W). Wybierz wynikowy profil.",
    "ml_intro": "WashData jest dostarczana z inteligentnymi modelami, które działają od razu po wyjęciu z pudełka.",
    "ml_learned_intro": "Modele dopasowane do tej maszyny.",
    "ml_loading": "ładowanie ML…",
    "ml_settings_intro": "Dwa niezależne przełączniki: jeden stosuje modele w trakcie trwania cyklu, drugi pozwala WashData dostosować je do Twojej maszyny w miarę upływu czasu.",
    "name_first_program": "Masz wystarczająco dużo cykli – nadaj nazwę pierwszemu programowi, aby rozpocząć dopasowywanie.",
    "near_duplicate_cluster": "Wykryto prawie zduplikowany klaster profili. Grupowanie umożliwia niezawodne wybieranie podobnych programów (np. tego samego programu w innej temperaturze/wirowaniu).",
    "no_cycles_match": "Żaden cykl nie pasuje do bieżącego filtra.",
    "no_cycles_profile": "Brak cykli dla tego profilu.",
    "no_cycles_selected": "Najpierw wybierz co najmniej jeden cykl.",
    "no_cycles_yet": "Nie zapisano jeszcze żadnych cykli.",
    "no_device_selected": "Nie wybrano żadnego urządzenia.",
    "no_devices": "Nie skonfigurowano jeszcze żadnych urządzeń WashData.",
    "no_envelope": "Nie ma jeszcze koperty - odbuduj po cyklach etykietowania.",
    "no_envelope_overlay": "Brak koperty do nałożenia.",
    "no_fine_tuned": "Nic jeszcze nie zostało dopracowane – WashData korzysta z wbudowanych modeli.",
    "no_logs": "Żadne rekordy dziennika nie zostały jeszcze zbuforowane.",
    "no_maintenance": "Nie zarejestrowano jeszcze żadnej konserwacji.",
    "no_match_yet": "Brak jeszcze próby dopasowania – komunikat pojawia się podczas trwającego cyklu.",
    "no_other_users": "Nie znaleziono innych użytkowników Home Assistant.",
    "no_phases": "Nie zdefiniowano faz.",
    "no_phases_assigned": "Brak przypisanych faz.",
    "no_profiles_compare": "Brak profili do porównania.",
    "no_profiles_overlay": "Brak profili do nałożenia.",
    "no_profiles_yet": "Nie ma jeszcze profili. Utwórz jeden z oznaczonego cyklu.",
    "no_profiles_yet_short": "Nie ma jeszcze profili.",
    "no_settings_match": "Żadne ustawienia nie pasują do „{q}”",
    "no_split_points": "Nie ma jeszcze punktów podziału.",
    "no_suggestions": "Brak aktywnych sugestii.",
    "notify_services_hint": "Użyj identyfikatorów usług {entity} (oddzielonych przecinkami dla kilku). Zmienne szablonu: {vars}.",
    "old_actions_warning": "Skonfigurowano przy użyciu starego edytora akcji (teraz usuniętego). Nadal uruchamiają się w przypadku wydarzeń cyklicznych, ale nie można ich już tutaj edytować. Przekształć je w normalną automatyzację lub usuń.",
    "onboarding_progress": "Zaobserwowano {n} / 3 cykli",
    "onboarding_watching": "Używaj urządzenia normalnie – WashData obserwuje. Po 3 cyklach rozpocznie się dopasowywanie programów.",
    "pending_feedback": "Oczekuje na informację zwrotną dotyczącą wykrycia",
    "performance_trend": "Trend wydajności ({n} cykli)",
    "pg_analysis_empty": "Wczytaj cykl, aby zobaczyć analizę dopasowania.",
    "pg_apply_confirm": "Zastosować najlepszą wartość: {label} = {value}?",
    "pg_canvas_empty": "Wybierz cykl powyżej, a następnie naciśnij Wczytaj, aby zobaczyć jego przebieg mocy.",
    "pg_chart_caption": "Współczynnik wykrywania/dopasowania dla wartości {param}",
    "pg_match_rate": "{pct}% skuteczności dopasowania na {total} cyklach",
    "pg_restart_note": "Uruchom ponownie Home Assistant, aby włączyć narzędzia symulacji.",
    "pg_sim_progress": "{done} / {total} cykli",
    "pg_starting": "Rozpoczynanie…",
    "pg_sweep_intro": "Co by było, gdyby {param} był inny? Przetestuj {steps} wartości na swoich ostatnich {cycles} cyklach, aby znaleźć ustawienie, przy którym najwięcej cykli jest poprawnie dopasowanych.",
    "pg_sweep_step": "Krok {done} / {total}",
    "pg_undetected": "{n} niewykrytych cykli",
    "pg_verdict_bad": "Wymaga uwagi: wiele cykli pozostaje niewykrytych.",
    "pg_verdict_good": "Dobrze dostrojone: większość cykli jest poprawnie rozpoznawana i dopasowywana.",
    "pg_verdict_ok": "Akceptowalnie: część cykli pominięto. Spróbuj obniżyć próg startu.",
    "phase_catalog_intro": "Nazwane segmenty cyklu (pranie wstępne, podgrzewanie, wirowanie…). Przypisz je do profilu z panelu sterowania.",
    "phase_ranges_intro": "Zakresy faz (minuty od początku cyklu) nałożone na krzywą średnią. Edytuj wartości, aby wyświetlić podgląd na żywo.",
    "playground_intro": "Bezpieczna piaskownica do odtwarzania wcześniejszych cykli z innymi ustawieniami, porównywania dwóch konfiguracji obok siebie i sprawdzania, jak cykl dopasowuje się do profilu. Nic tutaj nie zmienia Twoich aktywnych danych, dopóki wyraźnie tego nie zastosujesz.",
    "playground_needs_restart": "Uruchom ponownie Home Assistant, aby włączyć narzędzia Piaskownicy.",
    "preferences_admin": "Preferencje, panel i kontrola dostępu",
    "preferences_adv": "Preferencje",
    "prefs_personal": "Dotyczą one wyłącznie Twojego konta Home Assistant.",
    "process_history_hint": "Ponownie uruchom dopasowywanie na wszystkich zapisanych cyklach, odśwież sugestie dostrajania, ponownie wytrenuj modele ML (jeśli włączone) i przelicz kondycję cykli. Uruchom po serii przeglądów.",
    "profile_deleted": "Profil usunięty",
    "profile_poor_health_detail": "Cykle przypisane do tego profilu mają niespójne kształty lub niską pewność. Rozważ przebudowę koperty lub przejrzenie oznakowanych cykli.",
    "profiles_intro": "Kliknij profil, aby zobaczyć statystyki, fazy i porządki. Grupuj niemal identyczne programy (ten sam kształt/czas trwania, różna temperatura lub wirowanie), aby dopasowanie umożliwiało niezawodne wybieranie między nimi.",
    "rbac_hint": "Gdy opcja jest wyłączona, każdy użytkownik Home Assistant ma pełny dostęp (domyślnie). Administratorzy zawsze mają pełny dostęp i mogą zarządzać wszystkimi.",
    "recent_logs": "Najnowsze rekordy ha_washdata",
    "recording_in_progress": "Trwa nagrywanie",
    "reminders_intro": "Pokaż przypomnienie w panelu po tylu cyklach od ostatniego serwisu. Pozostaw puste lub 0, aby wyłączyć przypomnienie.",
    "restart_gap_footer": "Zaznaczone na wykresie. Dane mocy są niedostępne dla tych przedziałów; dopasowanie używało tylko rzeczywistych odczytów.",
    "restart_gap_header": "{n} przerwa restartu HA podczas tego cyklu",
    "restart_gap_item": "{dur} przerwa",
    "review_confirm_help": "Sprawdź, czy ten cykl został prawidłowo wykryty. Twoje recenzje szkolą model na Twojej maszynie – im więcej cykli potwierdzisz, tym lepsze dopasowanie i punktacja kondycji. Wystarczy szybkie dobre/złe.",
    "review_in_settings": "Przejrzyj w Ustawieniach",
    "review_notes_placeholder": "Notatki (opcjonalnie)",
    "review_notes_tip": "Notatki tekstowe do własnego użytku. Nieużywane podczas dopasowywania lub treningu.",
    "review_profile_tip": "Program tego cyklu jest oznaczony jako. Jeśli automatycznie wykryty program był błędny, popraw go tutaj - etykietowanie uczy dopasowywania dla przyszłych cykli.",
    "review_quality_tip": "Jak czysty jest ten cykl. Dobry = podręcznikowy przykład tego programu; Zły = wykryty, ale głośny lub nietypowy; Nieużyteczny = błędnie wykryty (połączony, obcięty lub fałszywy). Określa wynik kondycji i liczbę cykli, które mogą trenować model.",
    "review_recorded_tip": "Oznacz to jako ręcznie wybrany cykl referencyjny dla swojego programu – pełni tę samą rolę, co cykl nagrany ręcznie. Cykle referencyjne są zawsze zachowywane, zaszczepiają pasujący szablon i nigdy nie są usuwane podczas czyszczenia. (To jest „złota”/nagrana flaga; obie są tym samym.)",
    "review_tags_tip": "Opcjonalne flagi opisujące, co poszło nie tak w tym cyklu, więc szkolenie i czyszczenie mogą to wyjaśnić.",
    "review_to_cycles": "Otwórz kolejkę przeglądu Cykli",
    "saving_triggers_reload": "Zapisanie powoduje przeładowanie integracji. Jednostki HA mogą przez chwilę być wyświetlane jako niedostępne.",
    "search_placeholder": "Ustawienia wyszukiwania…",
    "see_recorder": "Zobacz widżet rejestratora poniżej",
    "setting_changed": "Zmieniono z {old} na {new} dnia {date}",
    "settings_basic_note": "Wyświetlane są podstawowe ustawienia. Przełącz na Zaawansowane, aby zobaczyć pełną listę.",
    "shape_drift_advisory": "⚠ Dryf kształtu",
    "shape_drift_detail": "Wzorzec mocy dla tego profilu zmienił się z biegiem czasu – możliwe zużycie urządzenia lub konieczna konserwacja (np. odkamienianie, czyszczenie filtra).",
    "show_all_settings": "Pokaż wszystkie ustawienia",
    "showing_suggestions": "Wyświetlam ustawienie {count} z sugestiami.",
    "split_intro": "Kliknij wykres, aby dodać lub usunąć punkt podziału albo automatycznie wykryć na podstawie pustych przerw. Każdy powstały segment może otrzymać swój własny profil.",
    "storage_diagnostics": "Statystyki przechowywania, konserwacja, eksport/import",
    "sug_staged": "Ustawiono {key} = {val}. Zapisz, aby zastosować.",
    "toast_auto_detect_enabled": "Automatyczne wykrywanie włączone",
    "toast_auto_label_complete": "Automatyczne oznaczanie zakończone",
    "toast_auto_label_failed": "Automatyczne oznaczanie nie powiodło się: {error}",
    "toast_automation_failed": "Nie można było utworzyć automatyzacji: {error}",
    "toast_automation_migrated": "Akcje przeniesione do automatyzacji; otwieranie edytora",
    "toast_convert_failed": "Konwersja nie powiodła się: {error}",
    "toast_create_failed": "Tworzenie nie powiodło się: {error}",
    "toast_delete_failed": "Usuwanie nie powiodło się: {error}",
    "toast_error": "Błąd: {error}",
    "toast_failed": "Nie powiodło się: {error}",
    "toast_force_stop_failed": "Wymuszone zatrzymanie nie powiodło się: {error}",
    "toast_name_required": "Wymagana nazwa",
    "toast_no_automation": "Nie można tu utworzyć automatyzacji",
    "toast_profile_name_required": "Wymagana jest nazwa profilu",
    "toast_program_set": "Ustawiony program: {program}",
    "toast_rebuild_failed": "Odbudowanie nie powiodło się: {error}",
    "toast_resume_failed": "Wznowienie nie powiodło się: {error}",
    "toast_revert_failed": "Przywracanie nie powiodło się: {error}",
    "toast_reverted": "Cofnięto: {key}",
    "toast_save_failed": "Zapisywanie nie powiodło się: {error}",
    "trend_duration_longer": "Trwanie w trendzie dłuższym ({pct}%/cykl) – ostatnia średnia {avg}",
    "trend_duration_shorter": "Trwanie w trendzie krótszym ({pct}%/cykl) – ostatnia średnia {avg}",
    "trend_energy_down": "Energia wykazuje tendencję spadkową ({pct}%/cykl)",
    "trend_energy_up": "Trend wzrostowy w zakresie energii ({pct}%/cykl) – ostatnia średnia {avg}",
    "trim_intro": "Przeciągnij czerwone uchwyty lub wprowadź wartości. Wszystko za oknem jest usuwane.",
    "tuning_suggestions_available": "Sugestia dostrojenia {count} dostępna z obserwowanych cykli. Pojawiają się obok odpowiednich pól.",
    "unsure_detected_prefix": "WashData nie jest pewien, czy został wykryty",
    "updated": "Zaktualizowano",
    "warmup_badge": "Wciąż się uczy ({done}/{needed} cykli)",
    "warmup_detail": "Ten profil potrzebuje {needed} oznaczonych cykli, zanim rozpocznie się automatyczne dopasowywanie. Każdy potwierdzony cykl pomaga mu się uczyć.",
    "wipe_history_warning": "Usuń trwale wszystkie cykle i profile. Nie można tego cofnąć.",
    "compare_overlay_tip": "Nałóż wyuczone obwiednie profili, aby zobaczyć, który program przypomina każdy cykl.",
    "duration_trend_up_tip": "Czas trwania rośnie ({pct}%/cykl)",
    "duration_trend_down_tip": "Czas trwania spada ({pct}%/cykl)",
    "energy_trend_up_tip": "Energia rośnie ({pct}%/cykl)",
    "energy_trend_down_tip": "Energia spada ({pct}%/cykl)",
    "performance_trending": "Trend wydajności",
    "pg_select_cycle_hint": "Wybierz cykl i kliknij ↺, aby wczytać",
    "pg_sweep_progress": "Krok {done} / {total}",
    "pg_analysis_hint": "Wybierz cykl i kliknij ↺, aby wczytać analizę.",
    "diagnostics_load_failed": "Nie udało się wczytać diagnostyki: {error}",
    "manual_duration_ref_hint": "Używane tylko wtedy, gdy nie wybrano cyklu referencyjnego. Cykl referencyjny ustawia czas trwania na podstawie własnej długości.",
    "toast_convert_rolled_back": "Konwersja nie powiodła się i została wycofana (nie pozostawiono żadnej automatyzacji): {error}",
    "toast_convert_orphan": "Automatyzacja została utworzona, ale wyczyszczenie starych akcji nie powiodło się. Nie próbuj ponownie: usuń stare akcje ręcznie, aby uniknąć zduplikowanej automatyzacji.",
    "advisory_duration_trend_up": "Cykle '{name}' trwają coraz dłużej (około +{pct}% na cykl). Jeśli zachowanie urządzenia się zmieniło, nagraj ponownie lub przebuduj ten profil.",
    "advisory_energy_trend_up": "'{name}' pobiera coraz więcej energii (około +{pct}% na cykl) - warto sprawdzić urządzenie, jeśli jest to nieoczekiwane.",
    "advisory_poor_health": "'{name}' ma niski wskaźnik dopasowania - jego ostatnie cykle mocno się różnią lub słabo pasują. Przejrzyj jego cykle lub nagraj profil ponownie, aby rozpoznawanie i szacunki czasu pozostały dokładne.",
    "advisory_shape_drift": "'{name}' znacząco odbiegł od pierwotnego kształtu krzywej mocy. Zachowanie urządzenia mogło zmienić się z czasem (np. kamień, zużycie). Rozważ ponowne nagranie tego profilu na podstawie ostatnich cykli.",
    "advisory_shape_drift_corr": "'{name}' znacząco odbiegł od pierwotnego kształtu krzywej mocy (korelacja {corr}). Zachowanie urządzenia mogło zmienić się z czasem (np. kamień, zużycie). Rozważ ponowne nagranie tego profilu na podstawie ostatnich cykli.",
    "pg_no_alerts": "W tym uruchomieniu nie wykryto żadnych problemów.",
    "pg_override_active": "Używane są Twoje edytowane ustawienia zamiast bieżących",
    "pg_history_intro": "Odtwórz swoje ostatnie cykle przez rzeczywisty detektor i mechanizm dopasowania. Najpierw edytuj ustawienie wykrywania w trybie Symuluj, aby zobaczyć tu porównanie przed/po.",
    "pg_history_empty": "Naciśnij Uruchom, aby odtworzyć swoje cykle.",
    "pg_history_summary": "{detected}/{total} wykryto · {correct} poprawnie dopasowano",
    "pg_sweep_no_metric": "Za mało danych, aby ocenić ten cel.",
    "pg_sweep_intro2": "Znajdź ustawienie, które najlepiej spełnia cel dla Twoich ostatnich cykli. Nic się nie zmieni, dopóki go nie zastosujesz.",
    "pg_running_history": "Odtwarzanie Twoich cykli…",
    "pg_running_sweep": "Testowanie wartości w Twoich cyklach…",
    "pg_row_load_hint": "Wczytaj ten cykl na wykresie powyżej",
    "pg_history_intro2": "Odtwórz swoje ostatnie cykle przez rzeczywisty detektor i mechanizm dopasowywania programów z ustawieniami powyżej. Kliknij dowolny wiersz, aby wczytać dany cykl na wykresie; zmień ustawienie, aby zobaczyć porównanie przed zmianą i po niej.",
    "pg_simulating": "Symulowanie cyklu…",
    "pg_canvas_empty2": "Wybierz cykl powyżej i naciśnij Uruchom, aby go zasymulować. Następnie najedź, aby odczytać wartości, przewiń, aby powiększyć, i przeciągnij, aby przesunąć.",
    "pg_apply_settings_confirm": "Zapisać te ustawienia ({n}) w tym urządzeniu? {list}",
    "no_logs_match": "Żadne wpisy dziennika nie pasują do tych filtrów.",
    "pg_analysis_hint2": "Wybierz cykl i naciśnij Uruchom, aby wczytać analizę dopasowania.",
    "pg_analysis_empty2": "Naciśnij Uruchom, aby zobaczyć analizę dopasowania.",
    "imported_readonly": "Zaimportowano ze sklepu społecznościowego. Wyświetlane w celach referencyjnych i do dopasowywania. Nie liczy się do Twoich statystyk i nie można go edytować.",
    "merge_no_imports": "Zaimportowanych nagrań nie można scalić z rzeczywistym cyklem. Odznacz je, aby scalić.",
    "store_enable_hint": "Włącz funkcje online w Ustawieniach, aby przeglądać i importować cykle referencyjne społeczności.",
    "online_intro": "Udostępniaj i pobieraj cykle referencyjne z innymi użytkownikami WashData. Wszystkie funkcje online są dobrowolne i domyślnie wyłączone.",
    "store_share_intro": "Prześlij ten cykl referencyjny, aby inni z tym samym urządzeniem mogli go używać. Zostanie sprawdzony przed publicznym udostępnieniem.",
    "online_intro_global": "Przeglądaj i udostępniaj nagrania referencyjne innym użytkownikom WashData oraz potwierdzaj wpisy urządzeń. Jedno połączenie dotyczy całej integracji WashData; markę i model urządzenia ustawia się osobno dla każdego urządzenia w sekcji Podstawowe. Wszystkie funkcje online są dobrowolne i domyślnie wyłączone.",
    "online_unavailable": "Funkcje online nie są dostępne na tym serwerze.",
    "store_picker_offline": "Włącz funkcje online w kółku zębatym ustawień, aby wybierać z katalogu społeczności.",
    "pick_brand_first": "Najpierw wybierz markę urządzenia.",
    "model_not_found": "Nie ma go jeszcze w katalogu.",
    "connect_to_confirm": "Połącz się w kółku zębatym ustawień, aby potwierdzić lub ocenić.",
    "adopt_settings_hint": "Zastosuj ustawienia wykrywania i dopasowywania udostępnionego urządzenia do tego urządzenia",
    "include_settings_hint": "Dołącz progi wykrywania, wagi dopasowywania i inne parametry do udostępnianego pakietu",
    "onboard_download": "Pobierz gotową konfigurację ze sklepu społeczności",
    "share_consent": "Udostępniasz rzeczywiste dane ze swojego urządzenia. Nie udostępniaj, jeśli Twoje wzorce użytkowania są prywatne.",
    "share_device_none": "Nie skonfigurowano jeszcze żadnych urządzeń. Najpierw dodaj urządzenie.",
    "share_guideline_naming": "Używaj czytelnych nazw programów (np. 'Cotton 40', 'Eco 60'), żeby inni mogli je zidentyfikować",
    "share_guideline_quality": "Udostępniaj tylko profile z ⭐ cyklami referencyjnymi lub co najmniej {n} potwierdzonymi uruchomieniami",
    "share_guideline_review": "Przejrzyj swoje profile przed udostępnieniem -- usuń te, które wyglądają błędnie",
    "share_guidelines_title": "Przed udostępnieniem",
    "store_download_device_intro": "Pobierz konfigurację urządzenia ze społeczności i zastosuj ją do nowego lub istniejącego urządzenia",
    "store_share_device_intro": "Udostępnij programy swojego urządzenia (profile + cykle referencyjne) społeczności. Ustawienia są opcjonalne.",
    "share_profile_no_cycles": "Profil '{p}' nie ma ⭐ cykli referencyjnych -- zostanie pominięty, chyba że masz {n}+ potwierdzonych uruchomień",
    "advisory_phase_inconsistent": "Wygląda na to, że '{name}' miesza różne programy lub temperatury - jego cykle nagrzewają się przez bardzo różne czasy. Podzielenie go na osobne profile (np. dla każdej temperatury) poprawi dopasowanie i szacowanie czasu.",
    "advisory_phase_inconsistent_title": "⚠ Prawdopodobnie pomieszane programy"
  },
  "phase_desc": {
    "anti_crease": "Sporadyczne krótkie obroty bębna po zakończeniu w celu zapobiegania gnieceniu tkanin.",
    "anti_wrinkle": "Okresowe obroty bębna po zakończeniu cyklu w celu zapobiegania gnieceniu tkanin.",
    "cool_down": "Obracanie bez ogrzewania pod koniec cyklu.",
    "drain_and_switch": "Okres przejścia z trybu prania do trybu suszenia.",
    "dry": "Etap suszenia przy użyciu grzejnika i/lub ciepła resztkowego.",
    "drying": "Główny okres podgrzewania.",
    "heat_up": "Wstępne rozgrzewanie grzejnika przed rozpoczęciem pełnego suszenia.",
    "pre_rinse": "Wstępne spryskanie przed praniem w detergencie.",
    "pre_wash": "Wstępne namoczenie lub obróbka wstępna przed praniem zasadniczym.",
    "rinse": "Etap płukania czystą wodą. Faza ta może powtarzać się wielokrotnie.",
    "sanitize": "Etap czyszczenia w wysokiej temperaturze w programach odkażania.",
    "sensor_check": "Krótka przerwa przy małej mocy podczas pomiaru suchości.",
    "soak": "Okres namaczania o niskiej aktywności pomiędzy aktywnymi etapami prania.",
    "soak_dw": "Wydłużony okres moczenia w przypadku ciężkich gleb.",
    "spin": "Ekstrakcja z dużą prędkością w celu usunięcia wody z wsadu.",
    "spin_wd": "Ekstrakcja z dużą szybkością przed przejściem do suszenia.",
    "wash": "Cykl prania głównego z ruchem bębna i opcjonalnym ogrzewaniem.",
    "wash_dw": "Pranie w detergencie głównym z ogrzewaniem."
  },
  "placeholder": {
    "add": "dodaj…",
    "group_name": "np. Bawełna 2:47",
    "json_buttons": "[{\"action\":\"ID\",\"title\":\"Label\"}]",
    "notify": "dodaj usługę powiadomień…",
    "notify_services_list": "notify.mobile_app_phone, ...",
    "person": "dodaj osobę…",
    "phase_name": "np. Pranie wstępne",
    "profile_name": "np. Bawełna 40°C",
    "maintenance_notes": "np. wymieniono filtr, wyczyszczono uszczelkę drzwi",
    "store_brand": "np. Bosch",
    "store_model": "np. WAT28401"
  },
  "pref": {
    "date_absolute": "Absolutne (np. 14:32 w dniu 2 lipca)",
    "date_relative": "Względnie (np. 2 godziny temu)",
    "lang_auto": "Domyślny systemowy ({lang})",
    "lang_en": "Angielski",
    "use_panel_default": "(domyślna panelu)"
  },
  "quality": {
    "bad": "Zły",
    "good": "Dobry",
    "unusable": "Nie nadaje się do użytku"
  },
  "section": {
    "anti_wrinkle": {
      "intro": "Tryb antygniotowy wykrywa impulsy bębnowania przy niskiej mocy po fazie głównej i utrzymuje je przyłączone do zakończonego cyklu.",
      "label": "Antygniotowy"
    },
    "basic": {
      "intro": "Kluczowa tożsamość i essentials dla większości konfiguracji.",
      "label": "Podstawowe"
    },
    "delay": {
      "intro": "Wykrywanie opóźnionego startu identyfikuje, gdy urządzenie jest zasilane, ale jeszcze nie rozpoczęło cyklu.",
      "label": "Opóźniony Start"
    },
    "detection": {
      "intro": "Jak cykl jest wykrywany jako uruchamiany, działający i kończący się.",
      "label": "Wykrywanie"
    },
    "matching": {
      "intro": "Jak zakończone cykle są dopasowywane do nauczonych profili i etykietowane.",
      "label": "Dopasowanie"
    },
    "ml_training": {
      "intro": "Harmonogram i ustawienia danych do ponownego trenowania uczenia maszynowego na urządzeniu.",
      "label": "Trenowanie ML"
    },
    "notifications": {
      "intro": "Kiedy i jak otrzymujesz powiadomienia o zdarzeniach cyklu.",
      "label": "Powiadomienia"
    },
    "timing": {
      "intro": "Harmonogram tła, watchdog offline i konserwacja.",
      "label": "Czas i Watchdog"
    },
    "triggers": {
      "intro": "Opcjonalne zewnętrzne sygnały: wyzwalacz zakończenia, czujnik drzwi, przełącznik pauzy i przypomnienie o rozładunku.",
      "label": "Wyzwalacze i Drzwi"
    },
    "phase_eta": {
      "label": "Pozostały czas",
      "intro": "Pozostały czas uwzględniający fazy, dla urządzeń, których długość cyklu zależy od temperatury lub wirowania."
    }
  },
  "setting": {
    "abrupt_drop_ratio": {
      "doc": "Spadek większy niż ten ułamek mocy prądu jest również traktowany jako gwałtowny (0,6 = spadek o 60%). Uzupełnia próg watów dla różnych rozmiarów urządzeń.",
      "label": "Współczynnik Nagłego Spadku"
    },
    "abrupt_drop_watts": {
      "doc": "Większy spadek mocy oznacza cykl jako przerwany (ręczne anulowanie), a nie jako naturalne zakończenie.",
      "label": "Nagły Spadek"
    },
    "anti_wrinkle_enabled": {
      "doc": "Rozpoznawaj krótkie impulsy suszenia o małej mocy, które suszarka emituje po głównej fazie nagrzewania, i pamiętaj o ich dołączeniu do zakończonego cyklu, zamiast odczytywać je jako nowe cykle.",
      "label": "Włącz Wykrywanie Antygniotowe"
    },
    "anti_wrinkle_exit_power": {
      "doc": "Moc musi spaść poniżej tej wartości pomiędzy impulsami, aby tryb przeciwzmarszczkowy pozostał aktywny.",
      "label": "Próg Wyjścia Mocy"
    },
    "anti_wrinkle_max_duration": {
      "doc": "Impulsy dłuższe niż ten traktowane są jako prawdziwy cykl, a nie przeciwzmarszczkowy upadek.",
      "label": "Maks. Czas Trwania"
    },
    "anti_wrinkle_max_power": {
      "doc": "Impuls powyżej tej mocy traktowany jest jako prawdziwy nowy cykl, a nie przeciwzmarszczkowy upadek. Ustaw tuż powyżej mocy impulsu opadającego.",
      "label": "Maks. Moc Antygniotowa"
    },
    "auto_label_confidence": {
      "doc": "Jeśli wynik dopasowania na koniec cyklu jest równy lub wyższy, program jest automatycznie oznaczany bez monitu o potwierdzenie. Podnieś, aby wymagać większej pewności przed automatycznym etykietowaniem; opuść go, aby bardziej zautomatyzować. Działa w połączeniu z Learning Confidence poniżej.",
      "label": "Pewność Automatycznego Etykietowania"
    },
    "auto_maintenance": {
      "doc": "Wykonuj nocne porządki: odbuduj obwiednie profili, ponownie oblicz kondycję cykli, usuń ślady debugowania i zachowaj najnowsze cykle.",
      "label": "Automatyczna Konserwacja (nocne czyszczenie)"
    },
    "completion_min_seconds": {
      "doc": "Cykle krótsze niż ta są odrzucane jako cykle widma (przebiegi próbne, otwarcie drzwi w celu dodania skarpetki).",
      "label": "Minimalny Czas Trwania Cyklu"
    },
    "delay_confirm_seconds": {
      "doc": "Zasilanie musi pozostać w paśmie czuwania przez tak długi czas, zanim urządzenie zostanie potraktowane jako oczekujące na uruchomienie, a nie działające.",
      "label": "Sekundy Potwierdzenia"
    },
    "delay_start_detect_enabled": {
      "doc": "Wykryj, kiedy urządzenie jest włączone i czeka (opóźniony start / tryb czuwania), ale nie rozpoczęło swojego cyklu, dzięki czemu pobieranie w trybie gotowości nie jest mylone z cyklem pracy.",
      "label": "Włącz Wykrywanie Opóźnionego Startu"
    },
    "delay_timeout_hours": {
      "doc": "Po tylu godzinach przestań czekać w trybie opóźnionego startu i wróć do stanu bezczynności, aby maszyna pozostawiona pod napięciem, ale nigdy nie uruchomiona, nie czekała wiecznie.",
      "label": "Czas Oczekiwania (godziny)"
    },
    "device_type": {
      "doc": "Klasa urządzenia. Ustawia rozsądne domyślne ustawienia wykrywania (progi, opóźnienie wyłączenia, obsługa końcówek) dostosowane do tego typu urządzenia; zmień go tylko wtedy, gdy urządzenie zostało pierwotnie skonfigurowane jako niewłaściwego typu.",
      "label": "Typ Urządzenia"
    },
    "door_sensor_entity": {
      "doc": "Opcjonalny czujnik binarny drzwi. Służy do wykrywania, kiedy urządzenie zostało otwarte/rozładowane po cyklu.",
      "label": "Encja Czujnika Drzwi"
    },
    "duration_tolerance": {
      "doc": "Tolerancja dla szacunków pozostałego czasu (uczenie się informacji zwrotnej, brak dopasowania). Jeśli rzeczywisty czas trwania mieści się w granicach +/-X% szacunkowej wartości, liczy się to jako dobre dopasowanie.",
      "label": "Tolerancja Szacowania"
    },
    "enable_ml_models": {
      "doc": "Podczas trwania cyklu pozwól modelom udoskonalić wyniki na żywo: bardziej stabilne oszacowanie pozostałego czasu i energii/kosztów oraz zabezpieczenie przed przedwczesnym zatrzymaniem w przypadku wykrycia końca (może zawsze opóźnić zakończenie, nigdy nie zakończyć wcześniej i jest ograniczone). Używa Twoich dopracowanych modeli, jeśli są dostępne, w przeciwnym razie wbudowanych. Off = tylko klasyczna logika oparta na zasilaniu (nadal niezawodna).",
      "label": "Stosuj inteligentne modele podczas cyklu"
    },
    "end_energy_threshold": {
      "doc": "Podczas odliczania opóźnienia wyłączenia skumulowana energia (waty x czas) jest porównywana z tym progiem. Jeśli zostanie przekroczony, odliczanie zostanie zresetowane – utrzymując bębny zapobiegające zagnieceniom i końcówki suszące w zmywarce dołączone do cyklu, zamiast je skracać. Podnieś go, jeśli cykle kończą się zbyt wcześnie podczas schładzania; obniż ją, jeśli wykrywanie jest powolne.",
      "label": "Energia Zakończenia"
    },
    "end_repeat_count": {
      "doc": "Liczba kolejnych odczytów poniżej progu wymaganych przed zakończeniem cyklu. 1 jest odpowiedni dla większości wtyczek. Zwiększ do 2-3, jeśli inteligentna wtyczka czasami zgłasza w połowie cyklu próbkę fałszywie zerową, a cykle kończą się przedwcześnie.",
      "label": "Liczba Powtórzeń Zakończenia"
    },
    "energy_price_entity": {
      "doc": "Czujnik z aktualną ceną energii elektrycznej za kWh (np. taryfa dynamiczna). Ma pierwszeństwo przed ceną statyczną poniżej. Każdy cykl zamraża cenę obowiązującą w momencie jego zakończenia.",
      "label": "Encja Ceny Energii"
    },
    "energy_price_static": {
      "doc": "Stała cena za kWh używana do danych o kosztach, gdy powyżej nie określono żadnej jednostki ceny rzeczywistej.",
      "label": "Statyczna Cena Energii (za kWh)"
    },
    "energy_sensor": {
      "doc": "Opcjonalny skumulowany licznik energii (total_increasing kWh/Wh, np. własny licznik całkowitego zużycia wtyczki). Po ustawieniu energia raportowana dla każdego cyklu jest pobierana z różnicy wskazań tego licznika między początkiem a końcem, co pozwala uniknąć zaniżania wynikającego z całkowania wolno raportującego czujnika mocy. W razie braku odczytu, nieznanej jednostki lub niedodatniej różnicy następuje powrót do wartości całkowanej. Pozostaw puste, aby nadal całkować czujnik mocy.",
      "label": "Encja Licznika Energii"
    },
    "expose_debug_entities": {
      "doc": "Publikuj dodatkowe jednostki diagnostyczne HA (pewność dopasowania, niejednoznaczność, elementy wewnętrzne stanu). Opcja Off utrzymuje listę encji w czystości podczas normalnego użytkowania.",
      "label": "Ujawnij Encje Debugowania"
    },
    "external_end_trigger": {
      "doc": "Czujnik binarny, którego zmiana stanu oznacza koniec cyklu (np. „zakończony” styk urządzenia lub integracja towarzysząca).",
      "label": "Encja Zewnętrznego Wyzwalacza"
    },
    "external_end_trigger_enabled": {
      "doc": "Pozwól zewnętrznemu czujnikowi binarnemu zasygnalizować koniec cyklu, oprócz wbudowanej detekcji opartej na mocy.",
      "label": "Włącz Zewnętrzny Wyzwalacz Zakończenia"
    },
    "external_end_trigger_inverted": {
      "doc": "Traktuj wyłączenie czujnika wyzwalającego (a nie włączenie) jako sygnał zakończenia cyklu.",
      "label": "Odwróć Zewnętrzny Wyzwalacz (wyzwalaj przy WYŁ)"
    },
    "learning_confidence": {
      "doc": "Jeżeli wynik dopasowania mieści się w przedziale pomiędzy tą a Pewnością automatycznej etykiety, zostanie wyświetlone powiadomienie zwrotne z prośbą o zweryfikowanie zidentyfikowanego programu. Poniżej tego wyniku mecz jest zbyt niepewny, aby go wystawić na światło dzienne. Musi być utrzymywany poniżej poziomu pewności automatycznej etykiety.",
      "label": "Pewność Uczenia"
    },
    "linked_device": {
      "doc": "Opcjonalnie zagnieżdż to urządzenie WashData pod innym urządzeniem (np. inteligentną wtyczką) w rejestrze urządzeń HA, pokazanym jako „Połączono przez…”.",
      "label": "Grupuj pod Urządzeniem"
    },
    "min_off_gap": {
      "doc": "Jeśli urządzenie wyłączy się na krócej niż ten czas, sekwencja włączenia/wyłączenia/włączenia jest traktowana jako jeden ciągły cykl. Zapobiega podziałowi programów namaczania (urządzenie wyłącza się na kilka minut w połowie prania) na dwa oddzielne cykle. Ustaw go na krótszy niż przerwa między obciążeniami, jeśli chcesz, aby były one liczone jako oddzielne cykle. Domyślne ustawienia typu urządzenia chronią typową przerwę w cyklu dla każdego urządzenia.",
      "label": "Minimalna Przerwa Wyłączenia"
    },
    "min_power": {
      "doc": "Absolutna minimalna moc uważana za aktywną. Odczyty poniżej są traktowane jako 0 W (tryb czuwania), odfiltrowując obciążenie fantomowe inteligentnych wtyczek i diod LED stanu czuwania.",
      "label": "Minimalna Moc"
    },
    "ml_training_enabled": {
      "doc": "Okresowo analizuj sprawdzone cykle przez noc i dostosowuj modele do konkretnej maszyny. Zmiana zostaje utrzymana tylko wtedy, gdy rzeczywiście osiąga lepsze wyniki w przetrzymywanych cyklach, więc może to tylko pomóc lub pozostać bez zmian – nigdy nie cofać się.",
      "label": "Ucz się od tej maszyny"
    },
    "ml_training_hour": {
      "doc": "Lokalna godzina dnia (0-23), w której należy dokonać dostrajania w nocy. Wybierz spokojną godzinę, na przykład 2 (02:00).",
      "label": "Ucz się o godzinie"
    },
    "ml_training_interval_days": {
      "doc": "Sprawdzaj ponownie, czy nie ma ulepszeń, najwyżej raz na tę liczbę dni.",
      "label": "Sprawdzaj co najwyżej co"
    },
    "ml_training_min_cycles": {
      "doc": "Przed dostrojeniem poczekaj, aż zarejestrowanych zostanie co najmniej tyle cykli, aby było z czego się uczyć.",
      "label": "Wymagane minimum cykli"
    },
    "name": {
      "doc": "Nazwa wyświetlana na liście integracji HA i rejestrze urządzeń.",
      "label": "Nazwa Urządzenia"
    },
    "no_update_active_timeout": {
      "doc": "Jeśli przez tak długi czas nie zostaną dostarczone żadne aktualizacje zasilania, załóż, że wtyczka została odłączona od sieci i wymuś zatrzymanie, aby uniknąć cyklu zombie. Domyślna wartość 600 s pozwala na opóźnienie w chmurze lub siatce.",
      "label": "Limit Czasu Braku Aktualizacji"
    },
    "notify_before_end_minutes": {
      "doc": "Wyślij powiadomienie Prawie gotowe, gdy szacowany pozostały czas spadnie poniżej tego poziomu. 0 wyłącza to.",
      "label": "Alert Przed Zakończeniem"
    },
    "notify_channel": {
      "doc": "Nazwa kanału powiadomień Androida dla wiadomości startowych/na żywo (steruje dźwiękiem i priorytetem poszczególnych kanałów w aplikacji mobilnej). Blank używa domyślnej aplikacji towarzyszącej.",
      "label": "Kanał Android (start/na żywo)"
    },
    "notify_cycle_timers": {
      "doc": "Powiadomienia w określonych minutach cyklu (np. o konieczności dodania zmiękczacza). Wiadomość obsługuje {device}, {program}, {minutes}. Włącz automatyczną pauzę, aby wstrzymać w tym momencie i otrzymać interaktywne powiadomienie za pomocą przycisku Wznów; wznów poprzez panel, usługę wstrzymania/wznowienia lub akcję powiadomienia.",
      "label": "Timery Cyklu"
    },
    "notify_finish_channel": {
      "doc": "Nazwa kanału powiadomień Androida dla wiadomości końcowej. Blank ponownie wykorzystuje kanał startowy/na żywo.",
      "label": "Kanał Android (zakończenie)"
    },
    "notify_finish_message": {
      "doc": "Treść wysyłana po zakończeniu cyklu. Zmienne szablonu: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}. {time_finished} i {vs_typical} są tutaj najbardziej przydatne.",
      "label": "Wiadomość Zakończenia"
    },
    "notify_finish_services": {
      "doc": "notify.* usługi wywoływane po zakończeniu cyklu. Dodaj po jednym na cel; pozostaw puste, aby nie było powiadomienia o zakończeniu.",
      "label": "Usługi Zakończenia"
    },
    "notify_fire_events": {
      "doc": "Odpalaj także zdarzenia ha_washdata_* na początku/zakończeniu cyklu, dzięki czemu możesz budować własne automatyzacje.",
      "label": "Wysyłaj Zdarzenia HA dla Powiadomień"
    },
    "notify_icon": {
      "doc": "Opcjonalna ikona mdi dla powiadomienia (np. mdi:washer-machine). Pozostaw puste dla domyślnej platformy.",
      "label": "Ikona Powiadomienia"
    },
    "notify_live_chronometer": {
      "doc": "Wyświetlaj w powiadomieniu licznik czasu aktualizacji na żywo (na platformach, które je obsługują) zamiast statycznego oszacowania.",
      "label": "Używaj Chronometru na Żywo"
    },
    "notify_live_interval_seconds": {
      "doc": "Jak często powiadomienia o postępie na żywo są odświeżane podczas trwania cyklu.",
      "label": "Interwał Aktualizacji na Żywo"
    },
    "notify_live_overrun_percent": {
      "doc": "Jeśli cykl przekroczy szacunkową wartość o więcej niż ten procent, wyślij alert o przekroczeniu.",
      "label": "% Przekroczenia przed Alertem"
    },
    "notify_live_services": {
      "doc": "notify.* usługi wymagały aktualizacji postępu na żywo podczas trwania cyklu. Pozostaw puste, aby wyłączyć powiadomienia o postępie na żywo.",
      "label": "Usługi Aktualizacji na Żywo"
    },
    "notify_only_when_home": {
      "doc": "Wysyłaj powiadomienia tylko wtedy, gdy co najmniej jedna z połączonych osób (powyżej) jest w domu.",
      "label": "Powiadamiaj Tylko Gdy Jestem w Domu"
    },
    "notify_people": {
      "doc": "osoba.* podmioty wykorzystywane przez funkcję „Powiadamiaj tylko, gdy jesteś w domu” w celu ustalenia, czy ktoś jest w domu.",
      "label": "Osoby (dla Tylko Gdy Jestem w Domu)"
    },
    "notify_pre_complete_message": {
      "doc": "Treść alertu przed zakończeniem / prawie gotowe. Zmienne szablonu: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Wiadomość Przed Zakończeniem"
    },
    "notify_reminder_message": {
      "doc": "Treść przypomnienia o wciąż oczekującym rozładunku. Puste używa wbudowanej wartości domyślnej. Zmienne szablonu: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Wiadomość Przypomnienia"
    },
    "notify_start_message": {
      "doc": "Treść wysyłana po rozpoczęciu cyklu. Zmienne szablonu: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Wiadomość Startu"
    },
    "notify_start_services": {
      "doc": "notify.* usługi wywoływane po rozpoczęciu cyklu. Dodaj po jednym na cel (telefon, pulpit nawigacyjny itp.); pozostaw puste, aby nie było powiadomienia o rozpoczęciu.",
      "label": "Usługi Startu"
    },
    "notify_timeout_seconds": {
      "doc": "Automatycznie odrzuć powiadomienie po tylu sekundach (na platformach, które je obsługują). 0 przechowuje go do momentu ręcznego usunięcia.",
      "label": "Automatyczne Zamknięcie Po"
    },
    "notify_title": {
      "doc": "Tytuł powiadomienia. Zmienne szablonu: {device}, {program}, {duration}, {energy}, {cost}, {date}, {time}, {minutes}.",
      "label": "Tytuł Powiadomienia"
    },
    "notify_unload_delay_minutes": {
      "doc": "Minuty po zakończeniu cyklu przed wysłaniem wciąż oczekującego przypomnienia o „rozładowaniu maszyny”. Ustaw 0, aby wyłączyć przypomnienie.",
      "label": "Opóźnienie Przypomnienia o Rozładunku"
    },
    "off_delay": {
      "doc": "Czas oczekiwania po spadku mocy przed ogłoszeniem zakończenia cyklu. Jeżeli w tym oknie zasilanie zostanie przywrócone, cykl będzie przebiegał płynnie – eliminując przerwy pomiędzy etapami prania. Zmywarki mają długie fazy suszenia (wyłączenie zasilania na 20–60 minut), więc opóźnienie wyłączenia musi być dłuższe, aby całe pranie+suszenie trwało w jednym cyklu.",
      "label": "Opóźnienie Wyłączenia"
    },
    "pause_cuts_power": {
      "doc": "Kiedy cykl zostanie wstrzymany, wyłącz także Jednostkę Przełączającą poniżej. Tylko do urządzeń, których wtyczkę można bezpiecznie odciąć w połowie cyklu.",
      "label": "Pauza Odcina Zasilanie (przez przełącznik)"
    },
    "power_off_delay": {
      "doc": "Jak długo moc musi pozostawać poniżej „Próg Wyłączenia Zasilania” po zakończeniu cyklu, zanim stan wróci do „Wyłączony”. Używane tylko wtedy, gdy „Próg Wyłączenia Zasilania” jest większy niż 0. Sprawdzane w rytmie działania w tle, więc efektywne opóźnienie jest zaokrąglane w górę do następnego taktu wygaśnięcia stanu.",
      "label": "Opóźnienie Wyłączenia Zasilania"
    },
    "power_off_threshold_w": {
      "doc": "Opcjonalne wykrywanie stanu „Wyłączony” na podstawie mocy. Gdy wartość jest większa niż 0, po zakończeniu cyklu, jeśli moc pozostaje poniżej tego poziomu przez czas „Opóźnienie Wyłączenia Zasilania”, urządzenie jest traktowane jako wyłączone, a stan wraca do „Wyłączony”. Pozostaw 0, aby wyłączyć (wartość domyślna). Ustaw powyżej rzeczywistego poziomu wyłączonego urządzenia, a poniżej „Próg Zatrzymania” oraz poniżej poboru w trybie czuwania po zakończeniu; jeśli wartość nie jest niższa niż „Próg Zatrzymania”, jest ignorowana. Po włączeniu zastępuje „Opóźnienie Resetowania Postępu” przy powrocie do „Wyłączony”, więc zakończone urządzenie pozostaje w stanie „Zakończony”/„Czysty”, dopóki nie zostanie faktycznie wyłączone.",
      "label": "Próg Wyłączenia Zasilania"
    },
    "power_sensor": {
      "doc": "Jednostka czujnika zgłaszająca moc bieżącą tego urządzenia w watach (np. sensor.washer_power). Cała detekcja cykli opiera się na tym sygnale.",
      "label": "Czujnik Mocy"
    },
    "profile_duration_tolerance": {
      "doc": "Pasmo +/- wokół średniego czasu trwania profilu używanego podczas dopasowywania. Wartość 0,25 oznacza, że ​​profil 60-minutowy odpowiada cyklom 45-75-minutowym.",
      "label": "Tolerancja Czasu Profilu"
    },
    "profile_match_interval": {
      "doc": "Jak często podejmować próby dopasowania profilu podczas cyklu biegowego. Domyślnie 300 s (5 minut) równoważy szybkość wykrywania i procesor.",
      "label": "Interwał Dopasowania"
    },
    "profile_match_max_duration_ratio": {
      "doc": "Maksymalna długość cyklu w stosunku do profilu. 1.3 oznacza, że ​​cykl musi trwać krócej niż 130% czasu trwania profilu, aby uzyskać zgodność.",
      "label": "Maksymalna Proporcja Czasu Trwania"
    },
    "profile_match_min_duration_ratio": {
      "doc": "Minimalna długość cyklu w stosunku do profilu. Wartość 0,9 oznacza, że ​​aby cykl był zgodny, musi wynosić co najmniej 90% czasu trwania profilu.",
      "label": "Minimalna Proporcja Czasu Trwania"
    },
    "profile_match_threshold": {
      "doc": "Minimalny wynik podobieństwa (0-1) wymagany na koniec cyklu, aby zaakceptować identyfikację programu. Podnieś go, aby ograniczyć błędne identyfikacje; obniż go, jeśli programy twojego komputera nie są dopasowane. Wartość domyślna 0,4 to konserwatywny punkt wyjścia.",
      "label": "Próg Dopasowania"
    },
    "profile_unmatch_threshold": {
      "doc": "Jeśli wynik meczu na żywo w połowie cyklu spadnie poniżej tego wyniku, wstępna identyfikacja zostanie wyczyszczona. Trzymaj go nieco poniżej progu dopasowania, aby krótki spadek podobieństwa nie spowodował powrotu do stanu niezrównanego.",
      "label": "Próg Niedopasowania"
    },
    "progress_reset_delay": {
      "doc": "Po zakończeniu utrzymaj postęp na poziomie 100% przez tak długi czas, aby na pulpitach nawigacyjnych pojawił się komunikat Ukończono, zanim przejdziesz do stanu bezczynności.",
      "label": "Opóźnienie Resetowania Postępu"
    },
    "pump_stuck_duration": {
      "doc": "Przez kilka sekund pompa może pracować nieprzerwanie, zanim zostanie oznaczona jako prawdopodobnie zablokowana (wywołane zostanie zdarzenie zablokowania pompy).",
      "label": "Czas Zacięcia Pompy"
    },
    "running_dead_zone": {
      "doc": "Po rozpoczęciu cyklu spadki mocy w tym oknie są ignorowane. Pralki napełniają się zimną wodą (spadającą w okolicach 0 W przed nagrzaniem) - bez tego zabezpieczenia faza napełniania wygląda jak koniec cyklu. NIE powoduje to pominięcia danych: zapis pełnej mocy jest rejestrowany od T=0. Silnik sugestii mierzy rzeczywisty wzorzec uruchamiania Twojej maszyny i automatycznie go dopasowuje.",
      "label": "Strefa Martwa"
    },
    "sampling_interval": {
      "doc": "Oczekiwany czas pomiędzy odczytami czujnika – używany do określenia rozmiaru okna wygładzającego i prawidłowego rozpoczęcia odbijania. Każda aktualizacja czujnika jest rejestrowana niezależnie od tej wartości; kalibruje jedynie dalsze obliczenia. Silnik sugestii mierzy rzeczywistą kadencję czujnika z poprzednich cykli i ustawia ją automatycznie.",
      "label": "Interwał Próbkowania"
    },
    "save_debug_traces": {
      "doc": "Przechowuj ślad pełnej mocy i pasujące dane debugowania dla każdego cyklu. Przydatne do rozwiązywania problemów, ale zwiększa rozmiar pamięci.",
      "label": "Zapisuj Ślady Debugowania"
    },
    "smoothing_window": {
      "doc": "W jakim stopniu surowy sygnał mocy jest wygładzany. Niski (2) reaguje, ale jest głośny; wysoki (5) wygładza skoki, ale dodaje opóźnienia.",
      "label": "Okno Wygładzania"
    },
    "start_duration_threshold": {
      "doc": "Moc musi pozostać powyżej progu rozruchu przez tak długi czas, aby potwierdzić prawdziwy start i zapobiec rozpoczęciu cyklu przez przełączniki włączania/wyłączania trwające ułamek sekundy.",
      "label": "Czas Trwania Startu"
    },
    "start_energy_threshold": {
      "doc": "Energia (moc x czas), jaką urządzenie musi zużyć przed PRACĄ. Krótki skok dużej mocy ma bardzo niską energię i jest ignorowany, co zapobiega fałszywym startom.",
      "label": "Energia Startu"
    },
    "start_threshold_w": {
      "doc": "Moc musi wzrosnąć powyżej tego poziomu, aby potwierdzić rozpoczęcie cyklu. Ustawienie zbyt niskiego poziomu powoduje falowe starty z zasilania w trybie gotowości; pominięte są programy zbyt wysokie i wolno uruchamiające się (napełnianie na zimno). Silnik sugestii ustawia tę wartość tuż powyżej zaobserwowanej najniższej mocy czynnej maszyny.",
      "label": "Próg Startu"
    },
    "stop_threshold_w": {
      "doc": "Moc musi spaść poniżej tego poziomu, zanim rozpocznie się odliczanie opóźnienia wyłączenia. Ustaw go poniżej progu początkowego – odstęp między nimi to pasmo histerezy zapobiegające migotaniu. W przypadku ustawienia zbyt wysokiego, fazy o małej mocy (zatrzymanie płukania, zapobieganie zagnieceniom) błędnie uruchamiają sekwencję końcową.",
      "label": "Próg Zatrzymania"
    },
    "switch_entity": {
      "doc": "Opcjonalny przełącznik wyłączany podczas pauzy i włączany ponownie po wznowieniu, używany razem z opcją „Pauza powoduje również odcięcie zasilania”.",
      "label": "Encja Przełącznika"
    },
    "watchdog_interval": {
      "doc": "Jak często funkcja nadzorująca działająca w tle sprawdza, czy czujniki nie uległy zablokowaniu i nie upłynęły limity czasu. Domyślnie 30 s.",
      "label": "Interwał Watchdog"
    },
    "notify_milestone_message": {
      "doc": "Wiadomość powiadomienia o kamieniu milowym. Zmienne szablonu: {device}, {cycle_count}.",
      "label": "Wiadomość o kamieniu milowym"
    },
    "notify_milestones": {
      "doc": "Rozdzielone przecinkami liczby cykli, które po osiągnięciu wyzwalają jednorazowe powiadomienie z gratulacjami (np. 50, 100, 500, 1000). Puste wyłącza powiadomienia o kamieniach milowych.",
      "label": "Kamienie milowe cykli"
    },
    "notify_quiet_end_hour": {
      "doc": "Koniec okna „nie przeszkadzać” (0–23). Wstrzymane powiadomienia są dostarczane o tej godzinie. Pozostaw puste, aby wyłączyć.",
      "label": "Koniec cichych godzin"
    },
    "notify_quiet_start_hour": {
      "doc": "Początek okna „nie przeszkadzać” (0–23). Powiadomienia o zakończeniu, przypomnienia i powiadomienia o czystym praniu, które wypadłyby w cichych godzinach, są wstrzymywane i dostarczane po zakończeniu okna. Pozostaw puste, aby wyłączyć. Obsługuje okna przekraczające północ (np. początek 22, koniec 7).",
      "label": "Początek cichych godzin"
    },
    "peak_rate_message": {
      "doc": "Opcjonalny własny tekst wskazówki o taryfie szczytowej dołączanej do powiadomienia o starcie. Zmienne szablonu: {device}, {price}. Puste używa wbudowanej wartości domyślnej.",
      "label": "Wiadomość o taryfie szczytowej"
    },
    "peak_rate_threshold": {
      "doc": "Gdy cykl się rozpoczyna, a bieżąca cena za kWh jest równa tej wartości lub wyższa, do powiadomienia o starcie dołączana jest wskazówka o taryfie szczytowej. 0 lub puste wyłącza wskazówkę.",
      "label": "Próg taryfy szczytowej (za kWh)"
    },
    "dtw_bandwidth": {
      "label": "Tolerancja dopasowania kształtu",
      "doc": "Jak bardzo mechanizm dopasowywania może zniekształcić cykl w czasie, aby dopasować go do kształtu zapisanego programu. Wyższa wartość toleruje większe wahania tempa; zbyt wysoka grozi dopasowaniem niewłaściwego programu."
    },
    "corr_weight": {
      "label": "Waga kształtu względem poziomu",
      "doc": "Równowaga między kształtem krzywej a bezwzględnym poziomem mocy przy ocenie dopasowania. Wyższa preferuje kształt; niższa preferuje zgodność poziomu mocy."
    },
    "duration_weight": {
      "label": "Waga czasu trwania",
      "doc": "Jak silnie preferowany jest program, którego typowy czas trwania odpowiada temu cyklowi."
    },
    "energy_weight": {
      "label": "Waga energii",
      "doc": "Jak silnie preferowany jest program, którego typowe zużycie energii odpowiada temu cyklowi."
    },
    "store_brand": {
      "label": "Marka urządzenia",
      "doc": "Opcjonalne. Marka urządzenia wybrana z katalogu społeczności. Używana do wyszukiwania i udostępniania pasujących nagrań referencyjnych. Pozostaw puste, jeśli nie korzystasz z funkcji online."
    },
    "store_model": {
      "label": "Model urządzenia",
      "doc": "Opcjonalne. Model urządzenia wybrany z katalogu społeczności po ustawieniu marki. Jeśli Twojego modelu nie ma na liście, możesz go dodać do katalogu."
    },
    "show_contributor": {
      "doc": "Pokaż nazwę współtwórcy na profilach pobranych ze sklepu społeczności"
    },
    "enable_phase_matching": {
      "label": "Pozostały czas uwzględniający fazy",
      "doc": "Dzieli każdy trwający cykl na fazy (podgrzewanie, pranie, wirowanie) i planuje pozostały czas dla każdej fazy, łącząc go z klasycznym szacowaniem - opierając się na budżecie faz na początku cyklu, a na klasycznym szacowaniu pod koniec. Personalizuje to odliczanie do tego, jak długo urządzenie faktycznie się nagrzewa i pracuje, co jest najbardziej zauważalne w pierwszej połowie cyklu. Wyłączone = tylko klasyczne szacowanie. Wpływa to wyłącznie na wyświetlanie pozostałego czasu; dopasowanie programów i wykrywanie cykli pozostają bez zmian."
    },
    "keep_min_score": {
      "label": "Min. wynik dopasowania",
      "doc": "Minimalny wynik podobieństwa potrzebny kandydatowi, by pozostać w wyścigu dopasowań. Domyślna wartość 0,1 jest celowo łagodna - dopuszcza nawet słabych kandydatów i polega na późniejszych etapach w wyborze najlepszego dopasowania. Zwiększ, by wcześniej odrzucać mało prawdopodobne profile; zmniejsz, by poszerzyć początkową pulę kandydatów."
    },
    "dtw_blend": {
      "label": "Mieszanie znieksztalcenia",
      "doc": "Jak bardzo wynik wyrównania DTW zastępuje wynik główny Etapu 2. 0 = używaj tylko wyniku Etapu 2, 1 = używaj tylko wyniku DTW, 0,5 (domyślnie) = równe mieszanie. Zwiększ, by bardziej polegać na wyrównaniu, gdy programy mają podobne poziomy mocy, ale różne wzorce czasowe."
    },
    "dtw_ensemble_w": {
      "label": "Mix kombinacji DTW",
      "doc": "W trybie kombinacji DTW (domyślnym), waga skalowanego L1 względem pochodnego DTW (DDTW). 1,0 = tylko skalowane L1, 0 = tylko DDTW, 0,7 = domyślnie. Wariant skalowany L1 porównuje poziomy mocy; wariant pochodny reaguje na zmiany mocy w czasie. Kombinacja łączy oba."
    },
    "dtw_ddtw_scale": {
      "label": "Skala pochodnej DTW",
      "doc": "Odległość półnasycenia dla oceniania pochodnym DTW. Wynik spada do połowy, gdy odległość DDTW równa się tej wartości. Mniejsza = większa wrażliwość na różnice kształtu. Domyślna wartość 30 jest skalibrowana do typowych przebiegów mocy urządzeń. Dotyczy tylko trybów DTW kombinacji i ddtw."
    },
    "dtw_refine_top_n": {
      "label": "Liczba doprecyzowanych kandydatow",
      "doc": "Ile najlepszych kandydatów Etapu 2 jest ponownie ocenianych przez DTW. DTW jest kosztowniejszy, więc stosowany jest tylko do N najlepszych kandydatów. Domyślnie 5. Zwiększ (do 7-9), jeśli właściwy profil czasem zajmuje tylko 4. lub 5. miejsce po Etapie 2 - DTW może go uratować. Zmniejszenie nieznacznie przyspiesza dopasowanie."
    },
    "duration_scale": {
      "label": "Ostrość czasu trwania",
      "doc": "Ostrość kary za niezgodność czasu trwania w Etapie 4. To logarytm stosunku, przy którym wynik zgodności spada do połowy. Mniejszy = surowszy: niezgodność czasu trwania bardziej obniża wynik. Domyślna wartość 0,175 odpowiada tolerancji ok. 18% przy połowie wagi. Używaj razem z Wagą Czasu Trwania."
    },
    "energy_scale": {
      "label": "Ostrość energii",
      "doc": "Ostrość kary za niezgodność energii w Etapie 4. Mniejszy = surowszy: niezgodność energii bardziej obniża wynik. Domyślna wartość 0,25 jest celowo bardziej łagodna niż Ostrość Czasu Trwania, ponieważ energia zmienia się z obciążeniem. Używaj razem z Wagą Energii."
    }
  },
  "setting_group": {
    "auto_labeling": {
      "label": "Automatyczne Etykietowanie"
    },
    "cycle_end": {
      "label": "Koniec Cyklu"
    },
    "cycle_start": {
      "label": "Start Cyklu"
    },
    "cycle_timers": {
      "label": "Timery Cyklu"
    },
    "data_management": {
      "label": "Zarządzanie Danymi"
    },
    "debug": {
      "label": "Debugowanie"
    },
    "dishwasher_end": {
      "label": "Zakończenie Zmywarki"
    },
    "door_pause": {
      "label": "Drzwi i Pauza"
    },
    "dtw_refinement": {
      "label": "Uściślenie DTW"
    },
    "duration_gates": {
      "label": "Bramki Czasowe"
    },
    "energy": {
      "label": "Energia"
    },
    "external_end_trigger": {
      "label": "Zewnętrzny Wyzwalacz Zakończenia"
    },
    "housekeeping": {
      "label": "Utrzymanie"
    },
    "match_scoring": {
      "label": "Punktacja Dopasowania"
    },
    "messages": {
      "label": "Wiadomości"
    },
    "power_off": {
      "label": "Wyłączenie zasilania"
    },
    "predictive_end": {
      "label": "Przewidywane Zakończenie"
    },
    "schedule": {
      "label": "Harmonogram"
    },
    "services": {
      "label": "Usługi"
    },
    "signal_processing": {
      "label": "Przetwarzanie Sygnału"
    },
    "thresholds_gap": {
      "label": "Progi i Przerwy"
    },
    "timing": {
      "label": "Czas"
    },
    "unload_reminder": {
      "label": "Przypomnienie o Rozładunku"
    },
    "watchdog": {
      "label": "Watchdog"
    },
    "quiet_hours_milestones": {
      "label": "Ciche godziny i kamienie milowe"
    },
    "device_info": {
      "label": "Informacje o urządzeniu"
    },
    "basic_configuration": {
      "label": "Podstawowa konfiguracja"
    }
  },
  "status": {
    "active": "Aktywny",
    "all_statuses": "Wszystkie statusy",
    "ambiguous": "Dwuznaczny",
    "auto_detect": "Automatyczne wykrywanie",
    "clear": "Jasne",
    "completed": "Zakończony",
    "fine_tuning": "teraz dostrajanie…",
    "force_stopped": "Wymuszone zatrzymanie",
    "idle": "Bezczynny",
    "interrupted": "Przerwano",
    "ready": "Gotowe do przetworzenia",
    "recording": "Nagrywanie",
    "training": "Trenowanie…",
    "saving": "Zapisywanie…",
    "rebuilding": "Przebudowywanie…",
    "analyzing": "Analizowanie…",
    "resetting": "Resetowanie…",
    "reverting": "Przywracanie…",
    "trimming": "Przycinanie…",
    "splitting": "Dzielenie…",
    "deleting": "Usuwanie…",
    "imported": "Zaimportowano"
  },
  "suggestion": {
    "both_agree": "WashData zaleca",
    "calibrated_label": "Skalibrowano",
    "observed_label": "Zmierzono",
    "impact": {
      "auto_label_confidence": {
        "higher": "Mniej cykli jest oznaczanych automatycznie; więcej trafia do przeglądu",
        "lower": "Więcej cykli jest oznaczanych automatycznie; niektóre mogą być błędnie zidentyfikowane"
      },
      "duration_tolerance": {
        "higher": "Akceptuje szerszy zakres czasu trwania – bardziej elastyczne dopasowanie",
        "lower": "Wymaga bliższego dopasowania czasu trwania – bardziej rygorystyczne, ale może odrzucić nietypowe cykle"
      },
      "end_energy_threshold": {
        "higher": "Zamyka tylko cykle o znacznym zużyciu energii",
        "lower": "Zamyka również krótsze lub mniej energochłonne cykle"
      },
      "end_repeat_count": {
        "higher": "Wymaga więcej powtórzeń sygnału końca – bardziej niezawodne, nieco wolniejsze",
        "lower": "Kończy po mniejszej liczbie powtórzeń – szybsze wykrywanie, większe ryzyko fałszywego zakończenia"
      },
      "learning_confidence": {
        "higher": "Uczy się tylko z bardzo pewnych dopasowań – wolniejsze, ale bardziej niezawodne",
        "lower": "Uczy się z większej liczby cykli; model może być mniej precyzyjny"
      },
      "min_off_gap": {
        "higher": "Potrzeba dłuższego spokoju przed rozpoczęciem nowego cyklu",
        "lower": "Krótki spokój uruchamia nowy cykl – kolejne uruchomienia mogą się rozdzielić"
      },
      "min_power": {
        "higher": "Mniej wrażliwy na pobór mocy w stanie gotowości; może przeoczyć bardzo ciche programy",
        "lower": "Bardziej wrażliwy; może rejestrować pobór mocy w trybie czuwania jako aktywność"
      },
      "no_update_active_timeout": {
        "higher": "Więcej czasu przed uznaniem cyklu za zablokowany",
        "lower": "Zablokowany cykl jest kończony wcześniej"
      },
      "off_delay": {
        "higher": "Więcej czasu na przerwy urządzenia – dobre dla długich faz namaczania lub suszenia",
        "lower": "Szybsze wykrywanie końca – działa dobrze dla urządzeń z czystym włączaniem/wyłączaniem"
      },
      "profile_match_threshold": {
        "higher": "Zatwierdza tylko dopasowania o wysokiej pewności; więcej cykli pozostaje nieoznakowanych",
        "lower": "Dopasowuje więcej cykli; niektóre mogą być lekko błędne"
      },
      "running_dead_zone": {
        "higher": "Ignoruje krótkie skoki mocy podczas bezczynności – mniej wrażliwy na zakłócenia",
        "lower": "Reaguje na krótsze impulsy mocy – wykrywa szybką aktywność przejściową"
      },
      "start_threshold_w": {
        "higher": "Zapobiega fałszywym startom z krótkich skoków mocy",
        "lower": "Wykrywa programy o niskiej mocy; może reagować na zakłócenia"
      },
      "stop_threshold_w": {
        "higher": "Kończy cykl szybciej – może zamknąć w trakcie przerwy",
        "lower": "Czeka dłużej na zakończenie – mniej przedwczesnych zakończeń"
      },
      "watchdog_interval": {
        "higher": "Dopuszcza dłuższe ciche fazy; mniej fałszywych wymuszeń zatrzymania",
        "lower": "Zablokowane cykle są wykrywane bardziej agresywnie"
      }
    },
    "reason": {
      "auto_label_confidence": "Pewność na 15. percentylu dla {cycles} etykiet automatycznych, których użytkownik nigdy nie poprawił ({p15}).",
      "completion_min_seconds": "Połowa czasu trwania p05 poprawnego cyklu ({minutes} min) dla {cycles} cykli; odfiltrowuje fałszywe cykle.{excl}",
      "dead_zone_batch": "Utrzymane krótkie (mediana okna niestabilności rozruchu dla {cycles} cykli = {s}s), aby rzeczywisty koniec był szybko wykrywany.",
      "dead_zone_from_dip": "Na podstawie wczesnego spadku mocy wykrytego przy {s}s.",
      "end_energy_default": "Domyślna zalecana wartość bazowa dla progu szumu na końcu cyklu.",
      "end_energy_false": "Energia p95 fałszywych zakończeń ({p95}Wh) dla {cycles} cykli, z dolną granicą 0.2% mediany energii cyklu ({floor}Wh).",
      "end_energy_no_false": "Brak fałszywych zakończeń dla {cycles} cykli; dolna granica 0.2% mediany energii cyklu ({floor}Wh).",
      "end_repeat_count": "{false}/{total} poprawnych cykli ({pct}%) miało wewnętrzną pauzę >60s, która została wznowiona; wymagaj {val} potwierdzeń zakończenia.",
      "learning_confidence": "Pewność p05 dla {cycles} cykli oznaczonych przez użytkownika ({p05}); poniżej tej wartości żądaj weryfikacji.",
      "match_interval": "Na podstawie obserwowanej częstotliwości aktualizacji (mediana={median}s) * 10.",
      "max_duration_ratio": "Na podstawie czasów trwania oznaczonych cykli (p95={p95}).",
      "min_active": "Na podstawie minimalnej mocy czynnej ({min}W) zaobserwowanej w ostatnim cyklu.",
      "min_duration_ratio": "Utrzymane jak najniżej, aby program był rozpoznawany na wczesnym etapie cyklu; progi pewności i niejednoznaczności zapobiegają przedwczesnym decyzjom.",
      "min_off_gap": "Na podstawie {gaps} zaobserwowanych przerw między cyklami (p05={p05}s). Minimum urządzenia: {floor}s.",
      "min_power": "40% najniższej mocy czynnej p05 ({p05}W) w {cycles} poprawnych cyklach, tak aby próg wyłączenia pozostał poniżej rzeczywistego poboru.{excl}",
      "ml_auto_label": "Najniższa pewność, przy której model jakości nadal uznawał cykl za poprawny (p10 z {cycles} poprawnych cykli = {p10}).",
      "ml_end_repeat": "{false}/{total} cykli ({pct}%) miało pauzę, którą detektor końca ocenił powyżej 50%; wymagaj {val} potwierdzeń zakończenia.",
      "ml_off_delay": "Pauzy potwierdzone przez detektor końca: p95 {p95}s + zapas 60s, z {pauses} pauz zweryfikowanych przez model w {cycles} cyklach (minimum {floor}s).",
      "no_update_timeout": "Na podstawie obserwowanej częstotliwości aktualizacji (p95={p95}s) * 20 (min. 60s).",
      "off_delay_cadence": "Na podstawie obserwowanej częstotliwości aktualizacji (p95={p95}s) * 5",
      "off_delay_device_floor": "Użyto bezpiecznego minimum specyficznego dla urządzenia {device} ({floor}s).",
      "off_delay_generic_floor": "Użyto ogólnego bezpiecznego minimum ({floor}s).",
      "off_delay_pauses": "Dobrane tak, aby przetrwać rzeczywiste pauzy: pauza w cyklu p95 {p95}s + zapas 60s, z {pauses} pauz w {cycles} poprawnych cyklach (minimum {floor}s).",
      "profile_match_threshold": "Pewność p10 dla {cycles} poprawnych etykiet automatycznych ({p10}); bezpieczny próg potwierdzenia na żywo.",
      "sampling_interval": "Mediana interwału aktualizacji zaobserwowana w {cycles} poprawnych cyklach ({si}s).{excl}",
      "smoothing_window": "Dobrane do wygładzania ~30s odczytów przy próbkowaniu {si}s ({samples} próbek).",
      "start_duration": "Utrzymane krótkie (~jeden interwał próbkowania {si}s), aby wykrywanie rozpoczynało się jak najwcześniej, jednocześnie ignorując pojedyncze skoki.",
      "thr_batch": "Utrzymane tuż powyżej najniższej mocy czynnej p05 w {cycles} cyklach ({p05}W), aby start był wykrywany jak najwcześniej, a próg zatrzymania pozostawał poniżej najniższej mocy pracy urządzenia.",
      "tol_per_profile": "p75 wariancji czasu trwania na profil w {profiles} profilach ({cycles} cykli); spójne profile nie są karane.",
      "tol_pooled": "Na podstawie łącznej wariancji czasu trwania {cycles} ostatnich oznaczonych cykli (odchylenie p95={dev}).",
      "watchdog": "Utrzymane tak nisko, jak to bezpieczne (3x przerwa aktualizacji p95 wynosząca {p95}s, min. 30s), aby zawieszenia były szybko wykrywane bez fałszywych zatrzymań."
    },
    "exclusions": {
      "summary": "Wykluczono {total} błędnie wykrytych cykli: {parts}.",
      "reason": {
        "force_stopped": "zatrzymane przymusowo",
        "interrupted": "przerwane",
        "incomplete": "niekompletne",
        "noise": "hałas",
        "unlabeled": "bez etykiety",
        "no_trace_short": "zbyt krótkie do analizy",
        "high_start": "rozpoczęte przy wysokiej mocy",
        "abrupt_end": "gwałtownie zakończone",
        "mid_restart": "restart w połowie cyklu",
        "no_power": "bez mocy",
        "no_active_power": "bez aktywnej mocy"
      }
    }
  },
  "tab": {
    "advanced": "Zaawansowany",
    "diagnostics": "Diagnostyka",
    "history": "Cykle",
    "ml": "Szkolenie ML",
    "pp_cleanup": "Czyszczenie",
    "pp_manage": "Zarządzanie",
    "pp_overview": "Przegląd",
    "pp_phases": "Fazy",
    "profiles": "Profile",
    "settings": "Ustawienia",
    "status": "Przegląd",
    "subtab_phase_catalog": "Katalog faz",
    "subtab_profiles": "Profile",
    "maintenance": "Konserwacja",
    "playground": "Piaskownica",
    "store": "Sklep"
  },
  "tag": {
    "early_end": "Wczesny koniec",
    "late_start": "Późny start",
    "merged": "Połączone cykle",
    "noise": "Hałas",
    "sensor_gap": "Szczelina czujnika",
    "split": "Cykl podziału",
    "wrong_profile": "Zły profil"
  },
  "toast": {
    "access_saved": "Kontrola dostępu zapisana",
    "all_wiped": "Wszystkie dane zostały usunięte",
    "analysis_complete_none": "Analiza ukończona: brak nowych sugestii",
    "auto_label_complete": "Automatyczne etykietowanie zakończone",
    "automation_deleted": "Automatyzacja usunięta",
    "correction_submitted": "Poprawka złożona",
    "cycle_deleted": "Cykl usunięty",
    "cycle_force_stopped": "Cykl wymuszony zatrzymany",
    "cycle_labelled": "Cykl oznaczony",
    "cycle_paused": "Cykl wstrzymany",
    "cycle_resumed": "Cykl wznowiony",
    "cycle_trimmed": "Cykl przycięty",
    "cycles_merged": "Cykle połączyły się",
    "envelope_rebuilt": "Koperta odnowiona",
    "envelopes_rebuilt": "Koperty odbudowane",
    "export_downloaded": "Eksport pobrany",
    "feedback_all_dismissed": "Wszystkie opinie odrzucone",
    "feedback_confirmed": "Opinia potwierdzona",
    "feedback_dismissed": "Opinia odrzucona",
    "group_deleted": "Grupa usunięta",
    "group_name_required": "Nazwa grupy jest wymagana",
    "group_saved": "Grupa zapisana",
    "import_successful": "Import udany; przeładowanie integracji",
    "json_required": "Wymagane są dane JSON",
    "legacy_removed": "Usunięto starsze działania",
    "logs_exported": "Logi wyeksportowane",
    "matching_reverted": "Dopasowane wagi przywrócono do wartości domyślnych",
    "min_2_profiles": "Wybierz co najmniej 2 profile dla grupy",
    "ml_training_no_improvement": "Trening ukończony: poziom bazowy utrzymany (brak poprawy)",
    "models_reverted": "Modele na urządzeniu przywrócono do stanu bazowego",
    "name_required": "Wymagane imię i nazwisko",
    "no_split_found": "Nie znaleziono żadnych wolnych luk, które można by podzielić",
    "panel_settings_saved": "Ustawienia panelu zostały zapisane",
    "phase_name_required": "Nazwa fazy jest wymagana",
    "phase_updated": "Faza zaktualizowana",
    "phases_saved": "Fazy ​​zapisane",
    "preferences_saved": "Preferencje zostały zapisane",
    "profile_name_required": "Nazwa profilu jest wymagana",
    "profile_renamed": "Zmieniono nazwę profilu",
    "recording_discarded": "Nagranie odrzucone",
    "recording_saved": "Nagranie zapisane w profilu",
    "recording_started": "Rozpoczęło się nagrywanie",
    "recording_stopped": "Nagrywanie zatrzymane",
    "review_saved": "Recenzja zapisana",
    "settings_conflicts": "Napraw zaznaczone konflikty ustawień przed zapisem.",
    "settings_reverted": "Ustawienia przywrócono; integracja jest przeładowywana",
    "settings_saved": "Ustawienia zapisane; przeładowanie integracji",
    "suggestions_applied": "Zastosowano sugestie; przeładowanie integracji",
    "suggestions_dismissed": "Sugestie odrzucone",
    "apply_failed": "Zastosowanie nie powiodło się: {error}",
    "delete_failed": "Usuwanie nie powiodło się: {error}",
    "load_more_failed": "Nie można wczytać więcej: {error}",
    "maint_add_failed": "Nie można dodać zdarzenia: {error}",
    "maint_added": "Dodano zdarzenie konserwacji",
    "maint_delete_failed": "Nie można usunąć zdarzenia: {error}",
    "maint_deleted": "Usunięto zdarzenie konserwacji",
    "relabel_done": "Zmieniono etykietę {count} cykli",
    "relabel_failed": "Zmiana etykiety nie powiodła się: {error}",
    "reminders_save_failed": "Nie można zapisać przypomnień: {error}",
    "reminders_saved": "Zapisano przypomnienia serwisowe",
    "pause_no_cycle": "Brak aktywnego cyklu do wstrzymania",
    "resume_no_cycle": "Brak wstrzymanego cyklu do wznowienia",
    "delete_partial_failed": "Nie można było usunąć niektórych elementów i zostały one przywrócone",
    "pg_run_gone": "To uruchomienie nie jest już dostępne.",
    "task_cancelled": "Anulowano.",
    "processed": "Przetworzono {bits}",
    "processed_cycles": "{n} cykli",
    "processed_suggestions": "{n} sugestii",
    "processed_models": "{n} aktywowanych modeli",
    "store_search_failed": "Wyszukiwanie nie powiodło się: {error}",
    "store_connect_failed": "Połączenie nie powiodło się: {error}",
    "store_connected": "Połączono ze sklepem społecznościowym",
    "store_disconnected": "Rozłączono ze sklepem społecznościowym",
    "store_error": "Błąd: {error}",
    "store_unavailable": "Sklep społecznościowy jest niedostępny.",
    "store_pick_profile": "Wybierz profil do scalenia",
    "store_name_required": "Wprowadź nazwę profilu",
    "store_import_failed": "Import nie powiódł się: {error}",
    "store_imported": "Zaimportowano do {profile}",
    "store_program_required": "Wprowadź nazwę programu",
    "store_no_appliance": "Najpierw ustaw markę i model urządzenia w Ustawieniach.",
    "store_share_failed": "Udostępnianie nie powiodło się: {error}",
    "store_shared": "Udostępniono w sklepie społecznościowym, oczekuje na weryfikację.",
    "appliance_added": "Urządzenie dodane, oczekuje na zatwierdzenie",
    "thanks_confirming": "Dziękujemy za potwierdzenie",
    "device_approved": "Zatwierdzone przez społeczność",
    "rating_saved": "Ocena jakości zapisana",
    "brand_added": "Marka dodana, oczekuje na zatwierdzenie",
    "profile_added": "Profil dodany, oczekuje na zatwierdzenie",
    "saved_except_conflicts": "Ustawienia zapisane -- {n} ustawienie{s} pominięte z powodu konfliktów",
    "share_device_none_sel": "Wybierz co najmniej jeden program do udostępnienia",
    "store_device_downloaded": "Konfiguracja urządzenia pobrana: {created} profil{c} utworzony, {dup} już istniało",
    "store_device_downloaded_phases": "Konfiguracja urządzenia pobrana: {created} profil{c} utworzony, {dup} już istniało, mapa faz zastosowana",
    "store_device_downloaded_settings": "Konfiguracja urządzenia pobrana: {created} profil{c} utworzony, {dup} już istniało, ustawienia zastosowane",
    "store_device_shared": "Konfiguracja urządzenia udostępniona: {n} program{s} przesłany",
    "store_device_shared_all_dup": "Nic nowego do udostępnienia -- wszystkie programy już istnieją w sklepie",
    "store_device_shared_partial": "Częściowe udostępnienie: {n} program{s} przesłany, {failed} pominięte",
    "store_device_shared_some_dup": "Konfiguracja urządzenia udostępniona: {n} program{s} przesłany ({dup} już istniało)",
    "store_download_failed": "Pobieranie nie powiodło się: {error}",
    "store_download_nothing": "Nic do pobrania -- wszystkie profile już istnieją na tym urządzeniu"
  },
  "trend": {
    "down": "Trend w dół",
    "up": "Trend w górę"
  },
  "maint": {
    "bearing_service": "Serwis łożysk",
    "descale": "Odkamienianie",
    "drum_clean": "Wyczyść bęben",
    "filter_clean": "Wyczyść filtr",
    "other": "Inne"
  },
  "pg_desc": {
    "abrupt_drop_watts": "Nagły spadek traktowany jako natychmiastowy koniec",
    "completion_min_seconds": "Najkrótszy przebieg liczony jako prawdziwy cykl",
    "end_repeat_count": "Kolejne niskie odczyty przed zakończeniem",
    "interrupted_min_seconds": "Krótkie cykle oznaczane jako przerwane",
    "min_off_gap": "Przerwa wymagana do rozdzielenia dwóch cykli",
    "off_delay": "Sekundy niskiej mocy przed zakończeniem cyklu",
    "start_duration_threshold": "Sekundy powyżej progu, by potwierdzić start",
    "start_threshold_w": "Minimalna moc w watach, by uznać za rozpoczęty",
    "stop_threshold_w": "Poniżej tej wartości urządzenie liczone jest jako wyłączone",
    "dtw_bandwidth": "Etap 3: pasmo zniekształcenia Sakoe-Chiba (0 = DTW wyłączony; domyślnie 0,2 = 20% długości cyklu)",
    "corr_weight": "Etap 2: balans między kształtem krzywej (korelacja) a poziomem mocy (MAE); domyślnie 0,45",
    "duration_weight": "Etap 4: jak mocno zgodność czasu trwania wpływa na wynik końcowy (domyślnie 0,22)",
    "energy_weight": "Etap 4: jak mocno zgodność energii wpływa na wynik końcowy (domyślnie 0,22)",
    "profile_match_min_duration_ratio": "Etap 1: minimalna długość cyklu jako ułamek czasu trwania profilu; domyślnie 0,1 (10%)",
    "profile_match_max_duration_ratio": "Etap 1: maksymalna długość cyklu jako ułamek czasu trwania profilu; domyślnie 1,5 (150%)",
    "keep_min_score": "Etap 2: minimalny wynik, by pozostać w wyścigu; domyślnie 0,1 dopuszcza słabe dopasowania, późniejsze etapy wybierają najlepsze",
    "dtw_blend": "Etap 3: 0 = tylko wynik główny, 1 = tylko wynik DTW, 0,5 = równe mieszanie (domyślnie)",
    "dtw_ensemble_w": "Etap 3 (tryb kombinacji): waga skalowanego L1 względem pochodnego DTW; domyślnie 0,7 faworyzuje poziom",
    "dtw_ddtw_scale": "Etap 3: odległość półnasycenia DDTW; mniejsza = bardziej wrażliwa na kształt (domyślnie 30)",
    "dtw_refine_top_n": "Etap 3: kandydaci ponownie oceniani przez DTW; zwiększ do 7-9, jeśli właściwy profil zajmuje 4-5 miejsce (domyślnie 5)",
    "duration_scale": "Etap 4: logarytm stosunku, przy którym zgodność czasu trwania spada do połowy; mniejszy = surowsza kara (domyślnie 0,175)",
    "energy_scale": "Etap 4: logarytm stosunku, przy którym zgodność energii spada do połowy; mniejszy = surowsza kara (domyślnie 0,25)"
  },
  "col": {
    "profile_tip": "Nazwa dopasowanego programu. Brak etykiety oznacza, że na końcu cyklu nie dopasowano żadnego profilu.",
    "status_tip": "Wynik cyklu: Zakończony (naturalny koniec), Przerwany (nagły spadek mocy), Wymuszone zatrzymanie (ręczne) lub Wymaga sprawdzenia (oczekuje opinii).",
    "date_tip": "Data i godzina rozpoczęcia cyklu.",
    "duration_tip": "Całkowity czas działania cyklu od początku do końca.",
    "energy_tip": "Całkowite zużycie energii (kWh). Obliczone przez całkowanie mocy w czasie.",
    "cost_tip": "Koszt energii dla tego cyklu, ustalony w momencie zakończenia na podstawie ceny obowiązującej wtedy (energia x cena za kWh). Ustaw cenę w Ustawieniach, aby go wypełnić.",
    "confidence_tip": "Pewność dopasowania profilu (0-100%). Jak dokładnie krzywa mocy cyklu dopasowała się do zidentyfikowanego programu.",
    "health_tip": "Kondycja cyklu ML (wyższa = lepsza). Kliknij cykl, aby go sprawdzić i ocenić.",
    "flags_tip": "Flagi społeczności i wskaźniki jakości danych"
  },
  "stat": {
    "avg": "śr.",
    "min": "min {v}",
    "max": "max {v}",
    "consistency": "spójność ±{v}",
    "total": "razem {v}",
    "last_run": "ostatnie uruchomienie {v}",
    "score": "wynik {pct}%",
    "duration_cv": "CV czasu trwania {pct}%",
    "avg_confidence": "śr. pewność {pct}%"
  },
  "pg_evd": {
    "detected": "Detektor rozpoznał, że cykl się rozpoczął.",
    "match_commit": "Mechanizm dopasowania z wystarczającą pewnością wybrał program.",
    "match_changed": "Wiodący program zmienił się, gdy widoczna była większa część cyklu.",
    "match_ambiguous": "Dwa programy uzyskały zbliżony wynik, więc dopasowanie było niepewne.",
    "unmatched": "Do tego cyklu nie pasował żaden zapisany program.",
    "notify_start": "Zostałoby wysłane powiadomienie o rozpoczęciu.",
    "notify_pre_complete": "Zostałoby wysłane powiadomienie, że cykl prawie się kończy.",
    "notify_finish": "Zostałoby wysłane powiadomienie o zakończeniu.",
    "notify_milestone": "Zostałoby wysłane powiadomienie o osiągnięciu etapu.",
    "notify_held": "Powiadomienie zostało wstrzymane z powodu godzin ciszy.",
    "finished": "Cykl osiągnął stan końcowy i zakończył się."
  },
  "store": {
    "browse": "Przeglądaj",
    "device": "Urządzenie",
    "favorites": "Ulubione",
    "search_ph": "Szukaj według marki lub modelu…",
    "no_results": "Nie znaleziono pasujących urządzeń. Spróbuj innego wyszukiwania.",
    "n_programs": "{n} programów",
    "n_cycles": "{n} cykli",
    "no_programs": "Brak udostępnionych programów dla tego urządzenia.",
    "no_cycles": "Brak udostępnionych cykli referencyjnych dla tego programu.",
    "anon": "anonimowo",
    "uploaded_by": "Udostępnił {name}",
    "connected_as": "Połączono jako {name}",
    "not_connected": "Brak połączenia. Połącz konto GitHub, aby udostępniać własne cykle.",
    "import_new": "Nowy profil",
    "import_merge": "Scal z istniejącym",
    "merge_target": "Scal z profilem",
    "description": "Opis (opcjonalnie)",
    "contributed_by": "od {name}",
    "rating_summary": "★ {avg} ({n})",
    "no_ratings": "Brak ocen",
    "website": "Strona sklepu ↗",
    "website_tip": "Otwórz stronę sklepu społecznościowego"
  },
  "settings": {
    "gear": {
      "title": "Ustawienia"
    }
  },
  "link": {
    "manual": "Instrukcja ↗",
    "add_appliance": "Dodaj swoje urządzenie"
  },
  "tip": {
    "add_brand": "Marki nie ma na liście? Dodaj ją do katalogu społeczności",
    "add_appliance": "Modelu nie ma na liście? Dodaj swoje urządzenie do katalogu społeczności",
    "add_profile": "Dodaj profil dla tego urządzenia w witrynie społeczności"
  },
  "task": {
    "reprocess": {
      "matching": "Ponowne przetwarzanie: dopasowywanie cykli",
      "golden": "Ponowne przetwarzanie: uzupełnianie referencyjnych",
      "suggestions": "Ponowne przetwarzanie: sugestie",
      "ml_training": "Ponowne przetwarzanie: trenowanie ML",
      "health": "Ponowne przetwarzanie: zdrowie cykli"
    },
    "pg_sweep": {
      "optimize": "Optymalizacja: {param}"
    },
    "pg_detail": {
      "simulate": "Symuluj cykl"
    },
    "split": {
      "apply": "Dzielenie cyklu"
    },
    "trim": {
      "apply": "Przycinanie cyklu"
    },
    "merge": {
      "apply": "Scalanie cykli"
    },
    "rebuild": {
      "envelopes": "Przeliczanie obwiedni"
    },
    "cancelling": "Anulowanie..."
  },
  "setup": {
    "hdr": {
      "card": "Konfiguracja urządzenia",
      "healthy_chip": "Konfiguracja ukończona"
    },
    "phase0": {
      "washer": "WashData już wykrywa Twoje cykle. Nagraj pierwszy cykl, aby włączyć nazwy programów i szacunki czasu.",
      "dishwasher": "WashData obserwuje. Zmywarki mają złożone cykle – nagranie pierwszego cyklu jest zdecydowanie zalecane. Jeśli wykryty cykl trwa zbyt długo, użyj edytora cyklu, aby go przyciąć przed zapisaniem jako profil.",
      "generic": "WashData obserwuje. Nagraj lub oznacz wykryty cykl, aby zacząć tworzyć profile."
    },
    "phase1a": {
      "labelled": "Dobry początek – Twój pierwszy program jest zapisany. Aby uzyskać najczystsze dane, rozważ nagranie następnego cyklu za pomocą widżetu rejestratora."
    },
    "phase1b": {
      "recorded": "Nagranie zostało zapisane jako {profile_name}. Teraz nagraj lub oznacz inne popularne programy, aby rozszerzyć pokrycie."
    },
    "phase1c": {
      "verify": "Masz {count} programów ze społeczności. Uruchom cykl, aby sprawdzić, czy WashData rozpoznaje go poprawnie – dopasowanie będzie się poprawiać w miarę jak urządzenie buduje własną historię."
    },
    "phase2": {
      "cluster": "WashData zauważył {count} cykli, które nie pasują do żadnego zapisanego programu – wyglądają podobnie do siebie. Chcesz utworzyć dla nich nowy profil?",
      "unmatched": "Twój ostatni cykl nie pasował do żadnego zapisanego programu. Czy to nowy program?"
    },
    "phase3": {
      "suggestions": "WashData ma zalecenia dotyczące ustawień oparte na historii Twoich cykli – przejrzyj je, aby poprawić dokładność wykrywania.",
      "groups": "Niektóre Twoje profile wyglądają jak ten sam program w różnych temperaturach. Zorganizuj je w grupę dla lepszego dopasowania.",
      "phases": "Dodaj fazy programu do {profile_name} dla dokładniejszych szacunków pozostałego czasu."
    },
    "phase4": {
      "healthy": "To urządzenie jest w pełni skonfigurowane ({profile_count} profili)."
    },
    "cta": {
      "start_recording": "Rozpocznij nagrywanie",
      "label_detected_cycle": "Mam już wykryty cykl – oznacz go zamiast tego",
      "browse_cycles": "Przeglądaj cykle, aby oznaczyć kolejny",
      "view_profiles": "Wyświetl swoje profile",
      "create_from_cluster": "Utwórz profil z tych cykli",
      "create_profile": "Utwórz dla niego profil",
      "review_suggestions": "Przejrzyj sugestie",
      "organise_profiles": "Zorganizuj profile",
      "configure_phases": "Skonfiguruj fazy",
      "skip_step": "Pomiń ten krok",
      "skip_forever": "Nie pokazuj ponownie",
      "hide_guidance": "Ukryj wskazówki",
      "show_guidance": "Pokaż wskazówki"
    }
  }
}
