{
  "badge": {
    "artifact_tip": "{n} poikkeavaa havaittu (esim. oven avautuminen kesken syklin) – avaa nähdäksesi ne kaaviossa",
    "auto": "(tunnistettu automaattisesti)",
    "built_in_tag": "sisäänrakennettu",
    "declining": "↘ vähenemässä",
    "energy_low": "Tavallista vähemmän energiaa",
    "energy_spike": "Tavallista enemmän energiaa",
    "fair_fit": "tyydyttävä laatu",
    "fair_fit_tip": "Kohtalainen vastaavuus – joillakin tälle profiilille määritetyillä jaksoilla on alhaisemmat luottamuspisteet. Merkitse lisää jaksoja tai tallenna profiili uudelleen tarkkuuden parantamiseksi.",
    "feedback_requested": "Palautetta pyydetty",
    "golden_cycle": "Tallennettu vertailujakso",
    "improving": "↗ paranee",
    "manual": "(manuaalisesti valittu)",
    "needs_review": "Vaatii tarkistuksen",
    "overrun": "Juoksi tavallista pidempään",
    "poor_fit": "heikko laatu",
    "poor_fit_tip": "Epäjohdonmukainen otteluhistoria – harkitse tämän profiilin rakentamista uudelleen",
    "restart_gap_tip": "{n} HA-uudelleenkäynnistyskatkos: tehoviivan datassa on aukko",
    "reviewed": "Tarkistettu",
    "steady": "→ tasainen",
    "underrun": "Päättyi tavallista nopeammin",
    "using_defaults": "Toimitettujen oletusarvojen käyttäminen",
    "using_tuned": "Käyttämällä viritettyjä painoja",
    "overrun_ratio": "({x}x odotetusta)",
    "underrun_ratio": "({pct}% odotetusta)",
    "awaiting_tip": "Odottaa yhteisön hyväksyntää",
    "awaiting_n": "Odottaa hyväksyntää · {n} vahvistusta",
    "approved": "Hyväksytty",
    "awaiting": "Odottaa hyväksyntää",
    "imported_tip": "Tuotu yhteisökaupasta. Käytetään vain täsmäytykseen, ei lasketa tilastoihin."
  },
  "btn": {
    "add_device": "+ Lisää laite",
    "add_device_tip": "Lisää toinen WashData-laite",
    "add_maintenance": "Lisää huoltotapahtuma",
    "add_phase": "+ Lisää vaihe",
    "add_timer": "+ Lisää ajastin",
    "apply_all": "Käytä kaikkia",
    "apply_label": "Käytä etikettiä",
    "apply_set_b": "Ota käyttöön joukko B",
    "apply_split": "Käytä jakoa",
    "apply_trim": "Käytä leikkausta",
    "auto_detect_split": "Automaattinen tunnistus",
    "auto_label_cycles": "Automaattinen merkintäjaksot",
    "auto_label_cycles_tip": "Määritä profiilinimet automaattisesti merkitsemättömille sykleille, joiden osuvuusvarmuus ylittää kynnyksen",
    "cancel": "Peruuta",
    "clear_debug": "Tyhjennä virheenkorjaustiedot",
    "clear_splits": "Tyhjennä",
    "close": "Sulje",
    "compare": "Vertaa",
    "confirm": "Vahvista",
    "convert_to_automation": "Muunna automaatioon",
    "correct": "Korjaa…",
    "create": "Luo",
    "create_from_cluster": "Luo profiili {count} sykliltä",
    "create_profile": "+ Luo profiili",
    "delete": "Poista",
    "delete_group": "Poista ryhmä",
    "delete_group_tip": "Poista vain tämä ryhmä - jäsenprofiilit säilytetään",
    "delete_profile": "Poista profiili",
    "discard": "Hävitä",
    "discard_tip": "Hylkää tallennettu jälki tallentamatta",
    "dismiss": "Hylkää",
    "done": "Tehty",
    "edit": "Muokkaa",
    "export": "Vie",
    "export_json": "Vie JSONiin",
    "force_stop": "Pakota pysäytys",
    "force_stop_tip": "Lopeta nykyinen sykli välittömästi ja merkitse se pakotetusti pysäytetyksi",
    "from_template": "Mallista ▾",
    "ignore": "Sivuuta",
    "import_json": "Tuo JSONista",
    "import_overwrite": "Tuo (korvaa tiedot)",
    "inspect": "Tarkasta",
    "label": "Merkitse",
    "load": "Lataa",
    "load_more": "Lataa lisää",
    "manage": "Hallitse",
    "merge": "Yhdistä",
    "new_automation": "＋ Uusi automaatio",
    "new_group": "+ Uusi ryhmä",
    "new_group_tip": "Ryhmittele lähes identtiset profiilit (sama muoto/kesto, eri lämpötila tai linkous), jotta täsmäytys valitsee niiden välillä luotettavasti",
    "new_phase": "+ Uusi vaihe",
    "new_profile": "+ Uusi profiili",
    "new_profile_tip": "Luo uusi ohjelmaprofiili olemassa olevasta merkitystä syklistä tai tallennuksesta",
    "on_cycle_finished": "Kierros päättyi",
    "on_cycle_started": "Kierros alkoi",
    "pause_cycle": "Tauko",
    "pause_cycle_tip": "Keskeytä käynnissä oleva sykli – laite jatkaa siitä, mihin se jäi",
    "pg_apply_device": "Käytä laitteeseen",
    "pg_autofill": "Autotäyttö",
    "play": "Toista",
    "process": "Käsittele",
    "process_history": "Käsittele nyt",
    "process_recording": "Tallenna tallennus",
    "process_tip": "Tallenna tallennettu jälki uutena tai olemassa olevana profiilina",
    "rebuild": "Rakenna kirjekuoret uudelleen",
    "rebuild_envelope": "Rakenna kirjekuori uudelleen",
    "rebuild_tip": "Laske uudelleen kaikkien profiilien odotettu tehokuori (min/maks-alue) merkityistä sykleistä – suorita uusien syklien merkitsemisen tai vanhojen korjaamisen jälkeen",
    "rec_start_tip": "Aloita laitteen tehojäljen tallentaminen – käynnistä juuri ennen syklin suorittamista",
    "rec_stop": "Pysäytä",
    "rec_stop_tip": "Lopeta tallennus ja pidä tallennettu jälki tarkistettavana",
    "record": "Aloita tallennus",
    "refresh": "Päivitä",
    "refresh_diag_tip": "Lataa tallennustilastot uudelleen",
    "refresh_logs_tip": "Lataa uusimmat lokitietueet uudelleen",
    "refresh_settings_tip": "Lataa asetukset uudelleen palvelimelta",
    "relabel": "Nimeä uudelleen ({count})",
    "remove": "Poista",
    "remove_timer": "Poista ajastin",
    "reset": "Nollaa",
    "reset_ml_models_tip": "Hävitä hienosäädetyt mallit ja palaa sisäänrakennettuun malliin. WashData voi oppia ne uudelleen myöhemmin.",
    "reset_to_builtin": "Palauta sisäänrakennetut mallit",
    "reset_to_defaults": "Palauta oletusasetukset",
    "resume_cycle": "Jatka sykliä",
    "resume_cycle_tip": "Jatka pysäytettyä sykliä",
    "revert_settings": "Hylkää muutokset",
    "revert_settings_tip": "Palauta asetukset viimeistä tallennusta edeltävään tilaan",
    "revert_settings_tip_none": "Tallenna ensin ottaaksesi kumoamisen käyttöön",
    "revert": "Palauta",
    "revert_to_previous": "Palauta tämä asetus edelliseen arvoon",
    "review": "Arvioi",
    "run": "Aja",
    "run_analysis": "🔍 Suorita ehdotusanalyysi",
    "run_analysis_tip": "Analysoi tallennetut jaksot nyt ja päivitä viritysehdotukset",
    "run_auto_label": "Suorita Auto-Label",
    "run_both": "Aja A vs B",
    "run_simulation": "Aja simulaatio",
    "save": "Tallenna",
    "save_access_control": "Tallenna kulunvalvonta",
    "save_group": "Tallenna ryhmä",
    "save_panel_settings": "Tallenna paneelin asetukset",
    "save_phases": "Tallenna vaiheet",
    "save_preferences": "Tallenna asetukset",
    "save_reminders": "Tallenna muistutukset",
    "save_review": "Tallenna arvostelu",
    "save_settings": "Tallenna asetukset",
    "select": "Valitse",
    "select_all": "Valitse kaikki",
    "select_last20": "Viimeiset 20",
    "select_none": "Ei mitään",
    "show_only": "Näytä vain",
    "skip_setup": "Ohita määritys",
    "split": "Jaa",
    "stop": "Pysäytä",
    "submit_correction": "Lähetä korjaus",
    "train_now": "Treenaa nyt",
    "trim": "Leikkaa",
    "trim_split": "Leikkaa / jaa",
    "undo": "Kumoa",
    "use": "Käytä",
    "wipe_all": "Pyyhi kaikki tiedot",
    "delete_selected": "Poista valitut ({n})",
    "group_suggest": "Ryhmä {n}: {members}",
    "pg_apply_best": "Käytä parasta",
    "pg_apply_to_settings": "Tallenna asetuksiin",
    "pg_apply_to_settings_tip": "Kopioi tässä muokkaamasi arvot tämän laitteen aktiivisiin asetuksiin",
    "search": "Hae",
    "import": "Tuo",
    "disconnect": "Katkaise yhteys",
    "connect_github": "Yhdistä GitHub",
    "save_appliance": "Tallenna laite",
    "share_to_store": "Jaa kauppaan",
    "share": "Jaa",
    "confirm_appliance": "Vahvista tämä laite",
    "confirmed": "Vahvistettu",
    "browse_community_setups": "Selaa yhteisön asetuksia",
    "download_device": "Lataa tämä asetus",
    "share_device": "⬆ Jaa tämä laite",
    "share_device_tip": "Jaa tämä laite ja sen tallennetut viitesyklit yhteisökauppaan, jotta muut saman koneen omistajat voivat ottaa ne käyttöön",
    "share_n": "Jaa {n} sykli(ä)"
  },
  "conflict": {
    "anti_wrinkle_exit": {
      "exit": "Täytyy olla alle pysäytyskynnyksen ({stop} W); muuten ryppyjeneston poistumistehoa ei huomioida",
      "stop": "Täytyy olla yli ryppyjeneston poistumistehon ({exit} W)"
    },
    "anti_wrinkle_max": {
      "max": "Täytyy olla yli käynnistyskynnyksen ({start} W); muuten ryppyjeneston kestoraja ohitetaan",
      "start": "Täytyy olla alle ryppyjeneston enimmäistehon ({max} W)"
    },
    "attn_sub": "Korjaa ristiriidat ennen tallentamista",
    "attn_title": "{n} asetusten ristiriita{s}",
    "confidence": {
      "auto": "Täytyy olla vähintään täsmäytyskynnys ({match})",
      "learning": "Täytyy olla enintään täsmäytyskynnys ({match})",
      "match_for_auto": "Täytyy olla enintään automaattimerkinnän varmuus ({alc})",
      "match_for_learning": "Täytyy olla vähintään oppimisen varmuus ({lc})"
    },
    "duration_ratio": {
      "max": "Täytyy olla yli vähimmäiskestosuhteen ({min})",
      "min": "Täytyy olla alle enimmäiskestosuhteen ({max})"
    },
    "hysteresis": {
      "start": "Täytyy olla yli pysäytyskynnyksen ({stop} W)",
      "stop": "Täytyy olla alle käynnistyskynnyksen ({start} W)"
    },
    "min_power": {
      "min_power": "Täytyy olla enintään pysäytyskynnys ({stop} W)",
      "stop": "Täytyy olla vähintään minimiteho ({min} W)"
    },
    "no_update_timeout": {
      "timeout": "Täytyy olla enemmän kuin tarkkailijaväli ({wi} s)",
      "watchdog": "Täytyy olla alle päivityksettömyyden aikakatkaisun ({to} s)"
    },
    "off_delay": {
      "gap": "Minimipysähdysvälin tulee olla vähintään sammutusviiveen verran ({delay} s)",
      "off_delay": "Sammutusviive ({off_delay} s) ylittää minimipysähdysvälin ({gap} s); peräkkäiset syklit saattavat yhdistyä"
    },
    "power_off": {
      "stop": "Täytyy olla yli virran sammutuksen kynnyksen ({pot} W)",
      "threshold": "Täytyy olla alle pysäytyskynnyksen ({stop} W), jotta se astuu voimaan"
    },
    "pump_stuck": {
      "duration": "Täytyy olla alle päivityksettömyyden aikakatkaisun ({to} s), jotta jumihälytys aktivoituu ennen kuin tarkkailija lopettaa syklin",
      "timeout": "Täytyy ylittää pumpun jumiutumiskesto ({ps} s), jotta jumihälytys aktivoituu ennen syklin pakotettua pysäytystä"
    },
    "start_dur": {
      "sampling": "Näytteenottoväli ylittää käynnistyksen keston ({sdt} s); yksittäiset piikit voivat avata syklin",
      "threshold": "Tulee olla vähintään yksi näytteenottoväli ({si} s) yksittäisen näytteen väärän käynnistyksen estämiseksi"
    },
    "unmatch": {
      "match": "Täytyy olla yli eritäsmäytyskynnyksen ({un})",
      "unmatch": "Täytyy olla alle täsmäytyskynnyksen ({match}); muuten vahvistettu vastaavuus purkautuu heti"
    },
    "cascade_toast": "Myös {n} asetusta muutettiin johdonmukaisuuden vuoksi.",
    "suggestion_resolves": "Ota alla oleva ehdotus ({val}) käyttöön tämän korjaamiseksi",
    "use_fix": "Käytä {val}",
    "watchdog": {
      "interval": "Tulisi olla vähintään 2x näytteenottoväli ({si} s)",
      "sampling": "Näytteenottovälin tulee olla enintään puolet tarkkailijavälistä ({wi} s)"
    },
    "settings_banner": "{n} asetusten ristiriita{s} – tarkista korostetut osiot ja korjaa ne ennen tallentamista.",
    "settings_banner_btn": "Siirry ensimmäiseen"
  },
  "hdr": {
    "ab_comparison": "A/B-asetusten vertailu",
    "access_control": "Kulunvalvonta",
    "add_maintenance": "Lisää huoltotapahtuma",
    "automation_delete": "Poista tämä automaatio",
    "automation_needs_review": "Tämä sykli kaipaa tarkistamista",
    "automation_open": "Avaa automaatioeditorissa",
    "automation_review_this_cycle": "Tarkista tämä sykli",
    "automations": "Automaatiot",
    "clear_debug": "Tyhjennä virheenkorjausjäljet",
    "cycle_simulator": "Syklisimulaattori",
    "diagnostics_pref": "Diagnostiikka",
    "display": "Näyttö",
    "dtw_inspector": "DTW-tarkastin",
    "export_import": "Vienti / tuonti",
    "getting_started": "Aloittaminen",
    "live_power": "Reaaliaikainen teho",
    "logs": "Lokit",
    "logs_diagnostics": "Diagnostiikka",
    "maintenance": "Ylläpitotoimet",
    "maintenance_log": "Huoltoloki",
    "maintenance_reminders": "Huoltomuistutukset",
    "manual_recording": "Manuaalinen tallennus",
    "manual_recording_tip": "Suorita sykli tarkoituksella WashDatan tallentaessa tehojälkeä. Käynnistä juuri ennen laitteen käynnistymistä, pysäytä kun se päättyy, sitten käsittele tallentaaksesi se nimettynä profiilina.",
    "ml_learned": "Mitä WashData on oppinut",
    "ml_matching_tuning": "Ohjelmasovitus hienosäätö",
    "ml_settings_card": "Asetukset",
    "ml_smart_learning": "Älykäs oppiminen",
    "my_preferences": "Omat asetukset",
    "no_automations": "Mikään automaatio ei viittaa tähän laitteeseen vielä.",
    "panel_settings": "Paneelin asetukset",
    "param_sweep": "Parametripyyhkäisy",
    "phase_catalog": "Vaiheen katalogi",
    "playground": "Leikkikenttä",
    "process_history": "Prosessihistoria",
    "settings_history": "Asetusten historia",
    "status": "Tila",
    "status_graph": "Tilakaavio",
    "storage_stats": "Tallennustilastot",
    "test_history": "Testaa historialla",
    "toggle_sidebar": "Vaihda Home Assistant -sivupalkki",
    "tools_and_data": "Työkalut ja tiedot",
    "wipe_history": "Pyyhi historia",
    "recommendations": "Suositukset ({n})",
    "pg_detection_params": "Tunnistusasetukset",
    "pg_timeline": "Tapahtuma-aikajana",
    "pg_outcome": "Simulaation tulos",
    "pg_across_cycles": "Kaikissa jaksoissasi",
    "community_store": "Yhteisökauppa",
    "online_account": "Yhteisökauppa ja verkkotoiminnot"
  },
  "health": {
    "fair": "Tyydyttävä profiililaatu",
    "good": "✓ Hyvä profiililaatu",
    "poor": "⚠ Heikko profiililaatu"
  },
  "lbl": {
    "actions": "Toiminnot",
    "activity": "Toiminta",
    "administrators": "Järjestelmänvalvojat",
    "aria_compare_chart": "Syklien vertailukaavio",
    "aria_cycle_chart": "Syklin tehokäyrä",
    "aria_envelope_chart": "Profiilin tehon verhokäyrän kaavio",
    "aria_phase_chart": "Vaihe-editorin kaavio",
    "aria_playground_chart": "Syklin tehokäyrä ja raahattavat tunnistuskynnykset",
    "aria_power_chart": "Tehonkulutuskaavio",
    "aria_spaghetti_chart": "Päällekkäiset syklien tehokäyrät",
    "aria_sweep_chart": "Parametripyyhkäisyn tuloskaavio",
    "artifact_anomaly": "Anomalia",
    "artifact_high_power": "Korkea teho",
    "artifact_interruption": "Keskeytys",
    "artifact_low_power": "Alhainen teho",
    "auto_detect": "Automaattinen tunnistus",
    "auto_fine_tune_off": "automaattinen hienosäätö pois päältä",
    "auto_fine_tune_on": "automaattinen hienosäätö päällä (noin {hour}:00)",
    "avg_cost": "Keskim. kustannus",
    "change": "Muutos",
    "clock_time": "Kellon aika",
    "cohesion_good": "koheesio {pct} %",
    "cohesion_low": "⚠ matala koheesio {pct} %",
    "compare_profiles": "Vertaa profiileihin",
    "concurrency": "Samanaikaisuus",
    "confidence": "Luottamus",
    "confidence_threshold": "Luottamusraja",
    "correct_duration": "Oikea kesto (min, valinnainen)",
    "correct_profile": "Oikea profiili",
    "correlation": "Korrelaatio",
    "cost": "Maksaa",
    "create_new_profile": "+ Luo uusi profiili…",
    "current_phase": "Nykyinen vaihe",
    "curves": "Käyrät",
    "cycle": "Sykli",
    "cycle_date_display": "Jakson päivämäärän näyttö",
    "cycle_health": "Syklin kunto",
    "cycle_index": "syklin indeksi →",
    "cycles": "Syklit",
    "cycles_count": "Syklit",
    "cycles_lc": "sykliä",
    "dashed": "katkoviiva",
    "date": "Päivämäärä",
    "debug_traces": "Virheenkorjausjäljet",
    "default": "Oletus",
    "default_access_level": "Oletustaso käyttäjille, joita ei ole lueteltu alla",
    "default_other": "Oletus (muut laitteet)",
    "default_tab": "Oletusvälilehti paneelia avattaessa",
    "delta": "Δ",
    "description": "Kuvaus",
    "dtw_blend_w": "Sekoituspaino",
    "dtw_blended": "Yhdistetty pisteet",
    "dtw_ddtw": "DDTW-pisteet",
    "dtw_l1": "L1-pisteet",
    "dtw_matched_profile": "(syklin täsmätty profiili)",
    "duration": "Kesto",
    "duration_agreement": "Keston vastaavuus",
    "emphasis": "Painopiste",
    "enable_access_control": "Ota käyttöön käyttäjäkohtainen pääsynhallinta",
    "energy": "Energiaa",
    "energy_agreement": "Energian vastaavuus",
    "event_timeline": "Tapahtumien aikajana",
    "event_type": "Tapahtuman tyyppi",
    "expected": "Odotettu",
    "expected_duration": "Odotettu kesto (min)",
    "file_kb": "Tiedosto (kB)",
    "final_score": "Lopulliset pisteet",
    "from": "Mistä",
    "gap_s": "aukko (t)",
    "group_name": "Ryhmän nimi",
    "head_trim": "Pään leikkaus (s)",
    "health": "Terveys",
    "hide_tabs": "Piilota välilehdet muille kuin järjestelmänvalvojille",
    "in_use": "Käytössä",
    "json_data": "JSON-tiedot",
    "label": "Vastaava ohjelma",
    "last": "Viimeiset",
    "last_checked": "Viimeksi tarkistettu:",
    "load_from_file": "Lataa tiedostosta",
    "mae_score": "MAE-pisteet",
    "manual_duration": "Manuaalinen kesto (min, valinnainen)",
    "match": "Osuma",
    "members": "Jäsenet",
    "metric": "Mittari",
    "mode_existing_profile": "Lisää olemassa olevaan profiiliin",
    "mode_new_profile": "Luo uusi profiili",
    "models_fine_tuned": "({count} mallia hienosäädetty)",
    "n_classic_suggestions": "{n} klassinen",
    "n_ml_suggestions": "{n} ML",
    "n_selected": "{n} valittu",
    "n_tuning_suggestions": "{n} viritysehdotus",
    "na": "ei saatavilla",
    "new_profile_name": "Uusi profiilinimi",
    "notes": "Muistiinpanot",
    "of": "/",
    "outcome": "Tulos",
    "panel_default_tab": "Oletus-välilehti",
    "panel_language": "Paneelin kieli",
    "per_cycle_short": "sykli",
    "pg_autofill_tip": "Täytä väli automaattisesti nykyisestä arvosta ({lo}–{hi})",
    "pg_best_value": "Paras löydetty arvo",
    "pg_current_value": "Nykyinen arvo:",
    "pg_drag_hint": "Vedä viivaa kaaviossa",
    "pg_dtw": "DTW",
    "pg_ev_ending": "Päättyy",
    "pg_ev_running": "Käynnissä",
    "pg_group_advanced": "Erikoistapaukset",
    "pg_group_detection": "Tunnistuksen laukaisimet",
    "pg_group_timing": "Ajoitussäännöt",
    "pg_idle": "Vapaana",
    "pg_last_run": "Viimeisin ajo: {date}",
    "pg_match_score": "Osumapisteet",
    "pg_pct_of": "{p} % / {total}",
    "pg_poor_match": "Huono osuma",
    "pg_strong_match": "Vahva osuma",
    "pg_tile_ambiguous": "Epäselvä",
    "pg_tile_ambiguous_tip": "Syklit, joissa kaksi ohjelmaa ovat lähes tasoissa",
    "pg_tile_detected": "Tunnistettu",
    "pg_tile_detected_tip": "Syklit, joissa teho ylitti aloituskynnyksen riittävän pitkään rekisteröityäkseen käynnissä olevaksi",
    "pg_tile_matched": "Täsmätty",
    "pg_tile_matched_tip": "Syklit, jotka on liitetty oikein tunnettuun ohjelmaan",
    "pg_time_left": "Aikaa jäljellä",
    "pg_weak_match": "Heikko osuma",
    "phase_name": "Nimi",
    "phase_timeline": "Vaiheiden aikajana",
    "power": "Teho",
    "profile": "Profiili",
    "profile_index": "profiilin indeksi →",
    "profile_name": "Profiilin nimi",
    "program": "Ohjelma",
    "program_tip": "Ohita, mikä profiili sovitetaan nykyiseen sykliin. Automaattinen tunnistus antaa integraation valita parhaan vastaavuuden automaattisesti. Kiinnitä tietty ohjelma pakottaaksesi vastaavuuden, kun automaattinen tunnistus on väärässä tai tiedät, mitä on käynnissä.",
    "progress": "Edistyminen",
    "raw_socket": "Raaka signaali",
    "read_only": "Vain luku",
    "ref_cycle": "Viitesykli (valinnainen)",
    "refresh_interval": "Päivitysväli (s)",
    "remaining": "Jäljellä",
    "reminder_every": "Muistuta joka (sykli)",
    "remove_label": "- Poista etiketti -",
    "rename_profile": "Nimeä profiili uudelleen",
    "replay_duration": "Toisto",
    "resulting_profile": "Tuloksena oleva profiili",
    "save_mode": "Tallennustila",
    "score": "Pisteet",
    "score_breakdown": "Pisteiden erittely",
    "seconds_from_start": "Sekunteja alusta",
    "select_profile": "Valitse Profiili",
    "setting": "Asetus",
    "settings_a": "Asetukset A (nykyiset)",
    "settings_a_short": "A",
    "settings_advanced": "Edistynyt",
    "settings_b": "Asetukset B (testi)",
    "settings_b_short": "B",
    "settings_basic": "Perus",
    "settings_detail_level": "Asetusten yksityiskohtien taso",
    "settings_overrides": "Asetusten ohitukset",
    "show_debug": "Näytä live-ottelun virheenkorjauskortti Tila-sivulla (luottamus, epäselvyys, parhaat ehdokkaat)",
    "show_expected": "Näytä odotettu käyrän peittokuva (vastaava profiili, oranssi)",
    "show_raw": "Näytä raakadatan pistorasiakytkin reaaliaikaisessa tehograafissa",
    "sparkline": "Viimeaikainen syklin keston suuntaus",
    "stage2": "Vaihe 2 – ydinsamankaltaisuus",
    "stage3": "Vaihe 3 – DTW",
    "stage4": "Vaihe 4 – vastaavuus",
    "status": "Tila",
    "tail_trim": "Hännän leikkaus (s)",
    "timer_auto_pause": "Automaattinen tauko",
    "timer_min": "min",
    "timer_msg_placeholder": "Viesti (valinnainen, {device}/{program}/{minutes})",
    "to": "Mihin",
    "ungrouped": "Ryhmittelemätön",
    "unlabelled": "Merkitsemätön",
    "unlabelled_paren": "(merkitsemätön)",
    "warp_path": "Vääntöpolku",
    "input": "Syöte:",
    "start": "Alku",
    "end": "Loppu",
    "unit_s": "(s)",
    "reviewed_on": "tarkistettu {date}",
    "unknown": "Tuntematon",
    "quality": "Laatu",
    "tags": "Tunnisteet",
    "at": "klo",
    "pct_match_confidence": "{pct}% osumaluottamus",
    "ha_restarted": "HA käynnistyi uudelleen",
    "from_start": "Alusta",
    "to_end": "Loppuun",
    "click_to_select": "napsauta valitaksesi",
    "envelope": "Tehoalue",
    "zoom_hint": "vieritä zoomataksesi · kaksoisnapsauta nollataksesi",
    "loading_paren": "(ladataan…)",
    "time_remaining": "~{v} jäljellä",
    "no_duration": "ei kestoa",
    "duration_avg": "~{v}m ka.",
    "name_placeholder": "(nimi)",
    "n_shown": ", {n} näkyvissä",
    "cycles_title": "Syklit ({n})",
    "pg_detecting": "Havaitaan",
    "pg_best_marker": "Paras: {v}",
    "pg_time_left_model": "Aikaa jäljellä (malli)",
    "pg_time_left_model_tip": "Mallin arvioima jäljellä oleva aika (vaihe-estimaattori + ML-yhdistelmä), ei kiinteä laskuri",
    "phase": "Vaihe",
    "pg_mode_simulate": "Simuloi",
    "pg_mode_history": "Testaa historialla",
    "pg_mode_sweep": "Pyyhkäisy",
    "pg_ev_detected": "Havaittu",
    "pg_ev_match": "Osuma vahvistettu",
    "pg_ev_match_changed": "Osuma vaihtui",
    "pg_ev_ambiguous": "Epäselvä",
    "pg_ev_unmatched": "Ei osumaa",
    "pg_ev_notify_start": "Aloitusilmoitus",
    "pg_ev_notify_pre": "Melkein valmis -ilmoitus",
    "pg_ev_notify_finish": "Valmistumisilmoitus",
    "pg_ev_notify_milestone": "Välitavoiteilmoitus",
    "pg_ev_notify_held": "Ilmoitus pidätetty (hiljaiset tunnit)",
    "pg_ev_finished": "Valmistui",
    "pg_ended": "Päättyi",
    "pg_proj_energy": "Arv. energia",
    "pg_alert_overrun": "Ylitys",
    "pg_alert_underrun": "Alitus",
    "pg_alert_did_not_finish": "Ei valmistunut",
    "pg_alert_false_end": "Jakautui useaan sykliin",
    "pg_alert_unmatched": "Ei osumaa",
    "pg_alert_ambiguous": "Epäselvä osuma",
    "pg_alert_energy": "Energiapoikkeama",
    "pg_newly_correct": "nyt oikein",
    "pg_regressed": "heikkeni",
    "pg_end_timing_changed": "lopetusaika muuttui",
    "pg_vs_current": "vs. nykyinen",
    "pg_fixed": "korjattu",
    "pg_broke": "rikkoutui",
    "pg_sweep_param": "Parametri",
    "pg_objective": "Tavoite",
    "pg_steps": "Askeleet",
    "pg_sweep_2d": "2D-lämpökartta",
    "pg_sweep_param_y": "2. parametri",
    "pg_obj_match": "Osumatarkkuus",
    "pg_obj_endtiming": "Lopetusajan tarkkuus",
    "pg_obj_falseend": "Väärien lopetusten osuus",
    "pg_obj_overrun": "Keston poikkeama",
    "pg_obj_ambiguity": "Epäselvyyksien osuus",
    "pg_best_combo": "paras yhdistelmä",
    "pg_mode_optimize": "Optimoi",
    "pg_group_matching": "Ohjelman täsmäytys",
    "pg_zoom_hint": "kaksoisnapsauta nollataksesi zoomauksen",
    "aria_playground_chart2": "Interaktiivinen jakson tehokaavio: vie osoitin päälle lukeaksesi ajan/tehon, vieritä zoomataksesi, vedä panoroidaksesi",
    "pg_alert_timeout_end": "Päättyi aikakatkaisuun, ei ennusteeseen",
    "pg_alert_indefinite": "Kävisi loputtomiin",
    "task_pg_history": "Testaa historialla",
    "task_pg_sweep": "Optimoi",
    "task_reprocess": "Uudelleenkäsittely",
    "task_ml_training": "Oppiminen",
    "eta_secs": "~{n} s jäljellä",
    "eta_mins": "~{n} min jäljellä",
    "pg_recent_runs": "Viimeaikaiset ajot",
    "pg_load_run": "Lataa tämä ajo uudelleen",
    "pg_match_confidence": "Osuman varmuus",
    "pg_envelope_fit": "Verhokäyrän sopivuus",
    "pg_envelope_fit_tip": "Kuinka tarkasti sykli pysyy tämän profiilin tallennetun tehon verhokäyrän sisällä, eri näkökulma kuin osuman varmuus.",
    "n_imported_note": ", {n} tuotua",
    "enable_online": "Ota verkkotoiminnot käyttöön",
    "store_brand": "Laitteen merkki",
    "store_model": "Laitteen malli",
    "anonymous": "Anonyymi",
    "rate_quality": "Arvioi laatu",
    "rate_n": "{n} tähteä",
    "approved_only": "Vain hyväksytyt",
    "adopt_settings": "Ota myös asetukset käyttöön",
    "flags": "Liput",
    "include_phase_map": "Sisällytä vaihdekartta",
    "include_settings": "Sisällytä tunnistus- ja täsmäytysasetukset",
    "show_contributor": "Näytä osallistujien nimet",
    "task_pg_detail": "Simuloidaan sykliä",
    "task_split": "Jaetaan sykliä",
    "task_trim": "Rajataan sykliä",
    "task_merge": "Yhdistetään syklejä",
    "task_rebuild": "Rakennetaan tehoalueita uudelleen"
  },
  "log": {
    "all_levels": "Kaikki tasot",
    "all_devices": "Kaikki laitteet",
    "all_components": "Kaikki komponentit",
    "search_ph": "Hae lokeista…"
  },
  "ml": {
    "builtin_models": "● Sisäänrakennettujen mallien käyttö",
    "fit_fair": "Tyydyttävä",
    "fit_good": "Hyvä",
    "fit_slight": "Lievä",
    "fit_strong": "Vahva",
    "fit_weak": "Heikko",
    "fit_word": "sopivuus",
    "personalized": "● Mukautettu tälle koneelle",
    "better_than_baseline": "{pct}% parempi kuin perusarvio ({metric})",
    "trend_improving_tip": "Tämän mallin sopivuus on parantunut viimeisimpien tarkistusten aikana.",
    "trend_declining_tip": "Tämän mallin sopivuus on heikentynyt viimeisimpien tarkistusten aikana · useampien syklien tarkistaminen voi auttaa sitä oppimaan uudelleen.",
    "trend_steady_tip": "Tämän mallin sopivuus on pysynyt suunnilleen vakaana viimeisimpien tarkistusten aikana.",
    "cap_blurb": {
      "end": "Sen tunnistaminen, milloin jakso on todella päättynyt",
      "live_match": "Käynnissä olevan ohjelman tunnistaminen nopeammin",
      "quality": "Väärin tunnistettujen tai vioittuneiden jaksojen havaitseminen",
      "remaining_time": "Jäljellä olevan ajan ennustaminen",
      "total_energy": "Kokonaisenergian ja -kustannuksen ennustaminen"
    },
    "cap_label": {
      "end": "Jakson lopun tunnistus",
      "live_match": "Ohjelman tunnistus",
      "quality": "Jakson laatutarkistus",
      "remaining_time": "Jäljellä olevan ajan arvio",
      "total_energy": "Energia-arvio"
    },
    "metric_auc": "AUC {auc} validointidatalla",
    "metric_mae": "virhe {model} vs. perustaso {baseline}"
  },
  "modal": {
    "auto_label": "Automaattiset etikettisyklit",
    "correct_feedback": "Oikea palaute",
    "create_profile": "Luo profiili",
    "cycle": "Kierrä",
    "edit_group": "Muokkaa profiiliryhmää",
    "edit_phase": "Muokkaa vaihetta",
    "import_config": "Tuo kokoonpano",
    "label_cycle": "Merkitse sykli",
    "merge_cycles": "Yhdistä {n} sykliä",
    "new_group": "Uusi profiiliryhmä",
    "new_phase": "Uusi vaihe",
    "process_history_msg": "Suorita täsmäytys uudelleen, päivitä ehdotukset, kouluta ML uudelleen (jos käytössä) ja laske syklipistemäärät uudelleen kaikkien tallennettujen syklien osalta. Tämä voi kestää hetken.",
    "process_history_ok": "Käsittele",
    "process_history_title": "Käsittele historia",
    "process_recording": "Prosessin tallennus",
    "delete_maintenance_msg": "Poistetaanko tämä huoltomerkintä? Tätä ei voi kumota.",
    "delete_maintenance_title": "Poista huoltotapahtuma",
    "relabel_cycles": "Nimeä uudelleen {count} sykliä",
    "delete_automation_title": "Poista automaatio",
    "delete_automation_msg": "Poistetaanko automaatio \"{name}\" Home Assistantista? Tätä ei voi kumota.",
    "remove_legacy_title": "Poista vanhat toiminnot",
    "remove_legacy_msg": "Poistetaanko vanhat mukautetut toiminnot? Ne eivät enää laukea syklitapahtumista. Tätä ei voi kumota paneelista.",
    "discard_recording_title": "Hävitä nauhoitus",
    "discard_recording_msg": "Hävitetäänkö tallennettu nauhoitus? Tätä ei voi kumota.",
    "dismiss_all_title": "Hylkää kaikki palautteet",
    "dismiss_all_msg": "Hylätäänkö kaikki {count} odottavaa palautepyyntöä?",
    "dismiss_all_ok": "Hylkää kaikki",
    "delete_phase_title": "Poista vaihe",
    "delete_phase_msg": "Poistetaanko vaihe \"{name}\"?",
    "clear_debug_title": "Tyhjennä vianmääritystiedot",
    "clear_debug_msg": "Poistetaanko kaikki tallennetut vianmääritysjäljet?",
    "wipe_all_title": "Pyyhi kaikki tiedot",
    "wipe_all_msg": "⚠️ Tämä poistaa pysyvästi KAIKKI syklit ja profiilit. Tätä ei voi kumota.",
    "wipe_all_ok": "Pyyhi kaikki",
    "force_stop_title": "Pakota sykli pysähtymään",
    "force_stop_msg": "Pakotetaanko aktiivinen sykli pysähtymään nyt? Sykli tallennetaan keskeytyneenä.",
    "store_import": "Tuo viitesykli",
    "store_share": "Jaa yhteisökauppaan",
    "store_share_device": "Jaa tämä laite"
  },
  "msg": {
    "appliance_monitor": "Laitteen näyttö",
    "artifact_dip_detail": "Alitti tavallisen tehon alarajan noin {n} sekunnin ajan.",
    "artifact_footer": "Korostettu yllä olevassa kaaviossa. Nämä ovat ohimeneviä esineitä (esim. ovi avautui kesken syklin), eivät välttämättä ongelmia.",
    "artifact_header": "{n} poikkeavaa havaittu tämän jakson aikana",
    "artifact_pause_detail": "Teho laski lähes nollaan noin {n} sekunniksi ja jatkui sitten – todennäköisesti ovi avattiin syklin aikana tai sykli pysäytettiin.",
    "artifact_spike_detail": "Ylitti tavallisen tehon ylärajan noin {n} sekunnin ajan.",
    "auto_label_intro": "Määritä profiilit nimeämättömille sykleille, joiden osuvuusvarmuus tyhjentää kynnyksen.",
    "automations_intro": "WashData laukaisee {start} / {end}-tapahtumat ja tarjoaa entiteetit, joten ilmoitukset ja toiminnot kannattaa rakentaa tavallisina Home Assistant -automaatioina. Tätä laitetta käyttävät automaatiot näkyvät alla.",
    "cleanup_intro": "Jokainen merkitty sykli peitetään. Tyhjennä profiili valitsemalla poikkeamat ja poistamalla ne.",
    "clear_debug_hint": "Poista tallennetut virheenkorjaustiedot vapauttaaksesi tilaa.",
    "collecting_data": "Kerätään tietoja - vielä {need} sykliä tarvitaan ennen hienosäädön käynnistymistä ({current}/{min}).",
    "compare_overlay_profiles": "Päällekkäiset profiilit (himmeä)",
    "compare_profiles_tip": "Aseta muut profiilikuoret yllä olevaan kaavioon nähdäksesi, mikä sopii parhaiten tähän jaksoon.",
    "compare_selected_cycles": "Valitut jaksot (kiinteä) – näytä/piilota",
    "consider_new_profile": "Harkitse uuden profiilin luomista.",
    "coverage_gap": "viimeaikaisilla jaksoilla ei ole vastaavaa profiilia ({pct} % viimeisestä 30:stä).",
    "coverage_gap_similar_cycles": "{count} samanlaista merkitsemätöntä sykliä löydetty – luo profiili, jotta voit aloittaa niiden täsmäämisen.",
    "cycles_deleted": "{count} sykli(ä) poistettu",
    "enough_data": "Tarpeeksi tietoja oppimiseen ({current}/{min} sykliä).",
    "export_description": "Vie kaikki profiilit ja syklit JSONiin tai palauta edellisestä viennistä.",
    "feedback_cycles_pending": "{n} sykliä tarkistettavana",
    "feedback_prompt": "Vahvista, että se oli oikein, korjaa ohjelma tai jätä huomiotta.",
    "filter_by_profile": "Suodata profiilin mukaan…",
    "group_modal_help": "Ryhmäohjelmat, joilla on sama muoto ja jotka eroavat lämpötilassa/linkouksessa (kesto voi vaihdella). Matching antaa ryhmän yhdeksi ehdokkaaksi ja valitsee sitten parhaiten sopivan jäsenen. Valitse vähintään 2; peittokuva osoittaa, kuinka samanlaisia ​​ne ovat.",
    "group_not_cohesive": "Nämä profiilit eivät ole riittävän samankaltaisia ​​ryhmittelemään niitä luotettavasti, joten vastaavuudessa käsitellään niitä yksitellen, kunnes poistat poikkeaman tai jaat ryhmän.",
    "group_preview_hint": "Valitse vähintään 2 jäsentä esikatsellaksesi ja vertaillaksesi tehokäyriä.",
    "import_intro": "Lataa viety tiedosto tai liitä JSON-hyötykuorma alle.",
    "legacy_actions_title": "{count} vanha muokattu toiminto on edelleen käynnissä",
    "live_chart_loading": "Live-tehokaavio tulee näkyviin lukemien saapuessa.",
    "loading": "Ladataan…",
    "loading_curve": "Ladataan käyrää…",
    "loading_settings": "Ladataan asetuksia…",
    "log_buffer_hint": "Uusin ensin · puskuroi viimeiset 500 ha_washdata-tietuetta uudelleenkäynnistyksen jälkeen · Vedä alareunaa muuttaaksesi kokoa.",
    "maintenance_advisory": "Keston/energian lisääntyminen voi viitata laitteen huoltotarpeeseen (esim. kalkinpoisto, suodattimen puhdistus).",
    "maintenance_due": "Huolto tarpeen: {items}",
    "maintenance_intro": "Kirjaa tälle laitteelle tekemäsi huoltotoimet ja saat muistutuksen, kun kukin tehtävä on taas ajankohtainen.",
    "maintenance_load_error": "Huoltotietoja ei voitu ladata: {error}",
    "maintenance_requires_access": "Ylläpito ja vienti/tuonti vaativat täyden käyttöoikeuden.",
    "manual_duration_hint": "Profiilin keskimääräinen/odotettu syklin pituus, jota käytetään jäljellä olevan ajan arvioihin. Muokkaa asettaaksesi sen; sen jättäminen ennalleen säilyttää nykyisen arvon.",
    "matching_tuning_intro": "Oppiessaan WashData säätää myös, kuinka paljon ohjelman yhteensovittaminen painaa muotoa kestoon ja energiaan.",
    "merge_intro": "Valitut syklit yhdistetään yhdeksi (kronologinen järjestys; välit täytetty 0 W:lla). Valitse tuloksena oleva profiili.",
    "ml_intro": "WashData toimitetaan älykkäillä malleilla, jotka toimivat heti pakkauksesta.",
    "ml_learned_intro": "Mallit hienosäädetty tälle koneelle.",
    "ml_loading": "ladataan ML…",
    "ml_settings_intro": "Kaksi erillistä kytkintä: toinen käyttää malleja syklin aikana, toinen antaa WashDatan hienosäätää ne koneellesi ajan myötä.",
    "name_first_program": "Sinulla on tarpeeksi syklejä – nimeä ensimmäinen ohjelma aloittaaksesi täsmäyksen.",
    "near_duplicate_cluster": "lähes kaksoiskappale profiiliklusteri havaittu. Ryhmittely mahdollistaa täsmäämisen luotettavasti valitsemaan samankaltaisten ohjelmien välillä (esim. sama ohjelma eri lämpötilassa/linkouksessa).",
    "no_cycles_match": "Yksikään jakso ei vastaa nykyistä suodatinta.",
    "no_cycles_profile": "Ei jaksoja tälle profiilille.",
    "no_cycles_selected": "Valitse ensin vähintään yksi sykli.",
    "no_cycles_yet": "Syklejä ei ole vielä tallennettu.",
    "no_device_selected": "Laitetta ei ole valittu.",
    "no_devices": "WashData-laitteita ei ole vielä määritetty.",
    "no_envelope": "Ei vielä kirjekuorta - uusi merkintäjaksojen jälkeen.",
    "no_envelope_overlay": "Peittokuorta ei ole saatavilla.",
    "no_fine_tuned": "Mitään ei ole vielä hienosäädetty – WashData käyttää sisäänrakennettuja mallejaan.",
    "no_logs": "Lokitietueita ei ole puskuroitu vielä.",
    "no_maintenance": "Huoltoja ei ole vielä kirjattu.",
    "no_match_yet": "Ei vielä täsmäytysyritystä – tämä täyttyy juoksujakson aikana.",
    "no_other_users": "Muita Home Assistant -käyttäjiä ei löytynyt.",
    "no_phases": "Ei määriteltyjä vaiheita.",
    "no_phases_assigned": "Ei määritettyjä vaiheita.",
    "no_profiles_compare": "Ei vertailtavia profiileja.",
    "no_profiles_overlay": "Ei profiileja päällekkäin.",
    "no_profiles_yet": "Ei vielä profiileja. Luo yksi merkitystä syklistä.",
    "no_profiles_yet_short": "Ei vielä profiileja.",
    "no_settings_match": "Yksikään asetus ei vastaa \"{q}\"",
    "no_split_points": "Ei jakopisteitä vielä.",
    "no_suggestions": "Ei aktiivisia ehdotuksia.",
    "notify_services_hint": "Käytä {entity}-palvelun tunnuksia (pilkulla eroteltuna usealle). Mallimuuttujat: {vars}.",
    "old_actions_warning": "Määritetty vanhalla toimintoeditorilla (nyt poistettu). Ne käynnistyvät edelleen syklitapahtumissa, mutta niitä ei voi enää muokata täällä. Muunna ne normaaliksi automaatioksi tai poista ne.",
    "onboarding_progress": "{n} / 3 sykliä havaittu",
    "onboarding_watching": "Käytä laitettasi normaalisti – WashData tarkkailee. Kolmen syklin jälkeen ohjelmien täsmäys alkaa.",
    "pending_feedback": "Odottaa tunnistuspalautetta",
    "performance_trend": "Tehotrendi ({n} jaksoa)",
    "pg_analysis_empty": "Lataa sykli nähdäksesi osuma-analyysin.",
    "pg_apply_confirm": "Otetaanko paras arvo käyttöön: {label} = {value}?",
    "pg_canvas_empty": "Valitse sykli yltä ja paina sitten Lataa nähdäksesi sen tehokäyrän.",
    "pg_chart_caption": "Tunnistus-/osumaprosentti {param}-arvojen mukaan",
    "pg_match_rate": "{pct}% osumaprosentti {total} syklillä",
    "pg_restart_note": "Käynnistä Home Assistant uudelleen ottaaksesi simulointityökalut käyttöön.",
    "pg_sim_progress": "{done} / {total} sykliä",
    "pg_starting": "Aloitetaan…",
    "pg_sweep_intro": "Entä jos {param} olisi erilainen? Testaa {steps} arvoa viimeisten {cycles} syklin perusteella löytääksesi asetuksen, jolla useimmat syklit täsmätään oikein.",
    "pg_sweep_step": "Vaihe {done} / {total}",
    "pg_undetected": "{n} sykliä tunnistamatta",
    "pg_verdict_bad": "Vaatii huomiota: monet syklit jäävät tunnistamatta.",
    "pg_verdict_good": "Hyvin viritetty: useimmat syklit tunnistetaan ja täsmätään oikein.",
    "pg_verdict_ok": "Hyväksyttävä: osa sykleistä jäi huomaamatta. Kokeile laskea aloituskynnystä.",
    "phase_catalog_intro": "Jakson nimetyt osat (esipesu, lämmitys, linkous…). Määritä ne profiiliin sen ohjauspaneelista.",
    "phase_ranges_intro": "Vaihealueet (minuutit syklin alusta) peittyvät keskiarvokäyrällä. Muokkaa arvoja esikatsellaksesi livenä.",
    "playground_intro": "Turvallinen hiekkalaatikko aiempien syklien toistamiseen eri asetuksilla, kahden kokoonpanon vertailuun rinnakkain ja sen tarkasteluun, miten sykli kohdistuu profiiliin. Mikään tässä ei muuta live-tietojasi ennen kuin otat sen nimenomaisesti käyttöön.",
    "playground_needs_restart": "Käynnistä Home Assistant uudelleen ottaaksesi Hiekkalaatikko-työkalut käyttöön.",
    "preferences_admin": "Asetukset, paneeli ja kulunvalvonta",
    "preferences_adv": "Asetukset",
    "prefs_personal": "Nämä koskevat vain Home Assistant -tiliäsi.",
    "process_history_hint": "Suorita täsmäytys uudelleen kaikille tallennetuille sykleille, päivitä virityssuositukset, kouluta ML-mallit uudelleen (jos käytössä) ja laske syklipistemäärät uudelleen. Suorita tämä arviointierän jälkeen.",
    "profile_deleted": "Profiili poistettu",
    "profile_poor_health_detail": "Tälle profiilille määritetyillä sykleillä on epäjohdonmukainen muoto tai alhainen luotettavuus. Harkitse kirjekuoren rakentamista uudelleen tai merkittyjen syklien tarkistamista.",
    "profiles_intro": "Napsauta profiilia nähdäksesi tilastot, vaiheet ja puhdistus. Ryhmittele lähes identtiset ohjelmat (sama muoto/kesto, eri lämpötila tai linkous), jotta yhteensopivuus valitsee niiden välillä luotettavasti.",
    "rbac_hint": "Kun se ei ole käytössä, jokaisella Home Assistant -käyttäjällä on täydet käyttöoikeudet (oletus). Järjestelmänvalvojilla on aina täydet käyttöoikeudet ja he voivat hallita kaikkia.",
    "recent_logs": "Viimeisimmät ha_washdata-tietueet",
    "recording_in_progress": "Tallennus käynnissä",
    "reminders_intro": "Näytä paneelissa muistutus näin monta sykliä viimeisen huollon jälkeen. Poista muistutus käytöstä jättämällä tyhjäksi tai asettamalla 0.",
    "restart_gap_footer": "Korostettu kuvaajalla. Tehodata puuttuu näiltä väleiltä; tunnistus käytti vain todellisia lukemia.",
    "restart_gap_header": "{n} HA-uudelleenkäynnistyskatkos tämän syklin aikana",
    "restart_gap_item": "{dur} katkos",
    "review_confirm_help": "Varmista, tunnistettiinko tämä jakso oikein. Arvostelusi opettavat mallia koneessasi – mitä enemmän jaksoja vahvistat, sitä paremmat yhteensopivuus- ja kuntopisteet ovat. Nopea Hyvä/Paha riittää.",
    "review_in_settings": "Tarkista asetuksista",
    "review_notes_placeholder": "Huomautuksia (valinnainen)",
    "review_notes_tip": "Vapaatekstiiset muistiinpanot omaksi viitteeksi. Ei käytössä otteluissa tai harjoituksissa.",
    "review_profile_tip": "Tämän syklin ohjelma on nimetty. Jos automaattisesti havaittu ohjelma oli väärä, korjaa se tässä - merkintä opettaa vastaavuuden tulevia jaksoja varten.",
    "review_quality_tip": "Kuinka puhdas tämä kierto on. Hyvä = tämän ohjelman oppikirjaesimerkki; Huono = havaittu, mutta meluisa tai epätyypillinen; Käyttökelvoton = väärin havaittu (yhdistetty, katkaistu tai harhaanjohtava). Ajaa terveyspisteitä ja mitkä syklit ovat sallittuja mallin kouluttamiseen.",
    "review_recorded_tip": "Merkitse tämä käsin valituksi referenssijaksoksi ohjelmaansa varten - sama rooli kuin manuaalisesti tallennetulla jaksolla. Vertailusyklit säilytetään aina, siemennä vastaava malli, eikä niitä koskaan pudoteta puhdistuksen yhteydessä. (Tämä on \"kultainen\" / tallennettu lippu; molemmat ovat sama asia.)",
    "review_tags_tip": "Valinnaiset liput, jotka kuvaavat, mikä meni pieleen tässä syklissä, joten koulutus ja siivous voivat selittää sen.",
    "review_to_cycles": "Avaa Cycles tarkistusjono",
    "saving_triggers_reload": "Tallentaminen käynnistää integroinnin uudelleenlatauksen. HA-entiteetit voivat hetken näkyä poissa käytöstä.",
    "search_placeholder": "Hakuasetukset…",
    "see_recorder": "Katso tallennin-widget alta",
    "setting_changed": "Muutettu {old} → {new} {date}",
    "settings_basic_note": "Näytetään olennaiset asetukset. Vaihda Edistynyt-tilaan nähdäksesi koko luettelon.",
    "shape_drift_advisory": "⚠ Muoto ajautuu",
    "shape_drift_detail": "Tämän profiilin tehomuoto on muuttunut ajan myötä – mahdollinen laitteen kuluminen tai huolto tarvitaan (esim. kalkinpoisto, suodattimen puhdistus).",
    "show_all_settings": "Näytä kaikki asetukset",
    "showing_suggestions": "Näytetään asetus {count} ja ehdotuksia.",
    "split_intro": "Napsauta kaaviota lisätäksesi tai poistaaksesi jakopisteen tai tunnistaa automaattisesti tyhjäkäynnin väliltä. Jokainen tuloksena oleva segmentti voi saada oman profiilinsa.",
    "storage_diagnostics": "Varastointitilastot, ylläpito, vienti/tuonti",
    "sug_staged": "{key} = {val} asetettu. Tallenna ottaaksesi käyttöön.",
    "toast_auto_detect_enabled": "Automaattinen tunnistus käytössä",
    "toast_auto_label_complete": "Automaattinen merkintä valmis",
    "toast_auto_label_failed": "Automaattinen merkintä epäonnistui: {error}",
    "toast_automation_failed": "Automaatiota ei voitu luoda: {error}",
    "toast_automation_migrated": "Toiminnot siirretty automaatioon; avataan editori",
    "toast_convert_failed": "Muuntaminen epäonnistui: {error}",
    "toast_create_failed": "Luominen epäonnistui: {error}",
    "toast_delete_failed": "Poistaminen epäonnistui: {error}",
    "toast_error": "Virhe: {error}",
    "toast_failed": "Epäonnistui: {error}",
    "toast_force_stop_failed": "Pakollinen pysäytys epäonnistui: {error}",
    "toast_name_required": "Nimi vaaditaan",
    "toast_no_automation": "Tähän ei voi luoda automaatiota",
    "toast_profile_name_required": "Profiilin nimi vaaditaan",
    "toast_program_set": "Ohjelma asetettu: {program}",
    "toast_rebuild_failed": "Uudelleenrakennus epäonnistui: {error}",
    "toast_resume_failed": "Jatkaminen epäonnistui: {error}",
    "toast_revert_failed": "Palautus epäonnistui: {error}",
    "toast_reverted": "{key} palautettu",
    "toast_save_failed": "Tallennus epäonnistui: {error}",
    "trend_duration_longer": "Kesto trendi pidempi ({pct} %/sykli) – viimeaikainen keskim. {avg}",
    "trend_duration_shorter": "Kesto trendi lyhyempi ({pct}%/sykli) – viimeaikainen keskim. {avg}",
    "trend_energy_down": "Energia laskee ({pct} %/sykli)",
    "trend_energy_up": "Energiatrendi nousussa ({pct} %/sykli) – viimeaikainen keskiarvo {avg}",
    "trim_intro": "Vedä punaisia ​​kahvoja tai syötä arvot. Kaikki ikkunan ulkopuolella poistetaan.",
    "tuning_suggestions_available": "{count} viritysehdotus saatavilla havaituista sykleistä. Ne näkyvät asianmukaisten kenttien vieressä.",
    "unsure_detected_prefix": "WashData ei ole varma, onko se havaittu",
    "updated": "Päivitetty",
    "warmup_badge": "Oppii vielä ({done}/{needed} sykliä)",
    "warmup_detail": "Tämä profiili tarvitsee {needed} merkittyä sykliä ennen automaattisen täsmäämisen alkua. Jokainen vahvistettu sykli auttaa sitä oppimaan.",
    "wipe_history_warning": "Poista pysyvästi kaikki syklit ja profiilit. Ei voi kumota.",
    "compare_overlay_tip": "Aseta opitut profiilien tehoalueet päällekkäin nähdäksesi, mitä ohjelmaa kukin sykli muistuttaa.",
    "duration_trend_up_tip": "Kesto nousussa ({pct}%/sykli)",
    "duration_trend_down_tip": "Kesto laskussa ({pct}%/sykli)",
    "energy_trend_up_tip": "Energia nousussa ({pct}%/sykli)",
    "energy_trend_down_tip": "Energia laskussa ({pct}%/sykli)",
    "performance_trending": "Suorituskyvyn kehityssuunta",
    "pg_select_cycle_hint": "Valitse sykli ja napsauta ↺ ladataksesi",
    "pg_sweep_progress": "Askel {done} / {total}",
    "pg_analysis_hint": "Valitse sykli ja napsauta ↺ ladataksesi analyysin.",
    "diagnostics_load_failed": "Diagnostiikkaa ei voitu ladata: {error}",
    "manual_duration_ref_hint": "Käytetään vain, kun viitesykliä ei ole valittu. Viitesykli asettaa keston oman pituutensa mukaan.",
    "toast_convert_rolled_back": "Muuntaminen epäonnistui ja peruttiin (automaatiota ei jäänyt): {error}",
    "toast_convert_orphan": "Automaatio luotiin, mutta vanhojen toimintojen poistaminen epäonnistui. Älä yritä uudelleen: poista vanhat toiminnot manuaalisesti, jotta vältät automaation kahdentumisen.",
    "advisory_duration_trend_up": "'{name}'-jaksot kestävät vähitellen pidempään (noin +{pct}% per jakso). Jos laitteen toiminta on muuttunut, tallenna tai rakenna tämä profiili uudelleen.",
    "advisory_energy_trend_up": "'{name}' kuluttaa vähitellen enemmän energiaa (noin +{pct}% per jakso) - laite kannattaa tarkistaa, jos tämä on odottamatonta.",
    "advisory_poor_health": "'{name}'-profiilin sopivuusarvo on matala - sen viimeaikaiset jaksot vaihtelevat paljon tai tunnistuvat heikosti. Käy läpi sen jaksot tai tallenna profiili uudelleen, jotta tunnistus ja aika-arviot pysyvät tarkkoina.",
    "advisory_shape_drift": "'{name}' on muuttunut merkittävästi alkuperäisestä tehokäyrästään. Laitteen toiminta on voinut muuttua ajan myötä (esim. kalkki, kuluminen). Harkitse profiilin tallentamista uudelleen tuoreilla jaksoilla.",
    "advisory_shape_drift_corr": "'{name}' on muuttunut merkittävästi alkuperäisestä tehokäyrästään (korrelaatio {corr}). Laitteen toiminta on voinut muuttua ajan myötä (esim. kalkki, kuluminen). Harkitse profiilin tallentamista uudelleen tuoreilla jaksoilla.",
    "pg_no_alerts": "Tässä ajossa ei havaittu ongelmia.",
    "pg_override_active": "Käytetään muokattuja asetuksiasi vs. nykyiset",
    "pg_history_intro": "Toista viimeisimmät syklisi todellisen tunnistimen ja täsmääjän läpi. Muokkaa ensin tunnistusasetusta Simuloi-tilassa nähdäksesi tässä ennen/jälkeen-vertailun.",
    "pg_history_empty": "Paina Aja toistaaksesi syklisi.",
    "pg_history_summary": "{detected}/{total} havaittu · {correct} täsmätty oikein",
    "pg_sweep_no_metric": "Ei tarpeeksi dataa tämän tavoitteen pisteyttämiseen.",
    "pg_sweep_intro2": "Etsi asetus, joka parhaiten täyttää tavoitteen viimeisimmissä sykleissäsi. Mikään ei muutu ennen kuin otat sen käyttöön.",
    "pg_running_history": "Toistetaan jaksojasi…",
    "pg_running_sweep": "Testataan arvoja kaikissa jaksoissasi…",
    "pg_row_load_hint": "Lataa tämä jakso yllä olevaan kaavioon",
    "pg_history_intro2": "Toista viimeisimmät jaksosi todellisen tunnistimen ja täsmäyttimen läpi yllä olevilla asetuksilla. Napsauta mitä tahansa riviä ladataksesi kyseisen jakson kaavioon; muokkaa asetusta nähdäksesi ennen/jälkeen-vertailun.",
    "pg_simulating": "Simuloidaan jaksoa…",
    "pg_canvas_empty2": "Valitse jakso yltä ja paina Suorita simuloidaksesi sen. Vie sitten osoitin päälle lukeaksesi arvoja, vieritä zoomataksesi ja vedä panoroidaksesi.",
    "pg_apply_settings_confirm": "Tallennetaanko nämä {n} asetusta tähän laitteeseen? {list}",
    "no_logs_match": "Mikään lokitietue ei vastaa näitä suodattimia.",
    "pg_analysis_hint2": "Valitse sykli ja paina Aja-painiketta ladataksesi osuma-analyysin.",
    "pg_analysis_empty2": "Paina Aja-painiketta nähdäksesi osuma-analyysin.",
    "imported_readonly": "Tuotu yhteisökaupasta. Näytetään viitteeksi ja täsmäytystä varten. Sitä ei lasketa tilastoihisi eikä sitä voi muokata.",
    "merge_no_imports": "Tuotuja tallennuksia ei voi yhdistää oikeaan sykliin. Poista niiden valinta yhdistääksesi.",
    "store_enable_hint": "Ota verkkotoiminnot käyttöön asetuksista selataksesi ja tuodaksesi yhteisön viitesyklejä.",
    "online_intro": "Jaa ja lataa viitesyklejä muiden WashData-käyttäjien kanssa. Kaikki verkkotoiminnot ovat vapaaehtoisia ja oletuksena pois päältä.",
    "store_share_intro": "Lataa tämä viitesykli, jotta muut samaa laitetta käyttävät voivat hyödyntää sitä. Se tarkistetaan ennen julkaisua.",
    "online_intro_global": "Selaa ja jaa viitetallennuksia muiden WashData-käyttäjien kanssa ja vahvista laitemerkintöjä. Yksi yhteys koskee koko WashData-integraatiotasi; laitteen merkki ja malli asetetaan laitekohtaisesti Perusmääritykset-osiossa. Kaikki verkkotoiminnot ovat vapaaehtoisia ja oletuksena pois päältä.",
    "online_unavailable": "Verkkotoiminnot eivät ole käytettävissä tällä palvelimella.",
    "store_picker_offline": "Ota verkkotoiminnot käyttöön asetusten rattaasta valitaksesi yhteisön luettelosta.",
    "pick_brand_first": "Valitse ensin laitteen merkki.",
    "model_not_found": "Ei vielä luettelossa.",
    "connect_to_confirm": "Yhdistä asetusten rattaasta vahvistaaksesi tai arvioidaksesi.",
    "adopt_settings_hint": "Korvaa tämän laitteen tunnistus- ja täsmäytyskynnykset jaetuilla. Ilmoituksiasi, entiteettejäsi tai energiahintaasi ei koskaan muuteta.",
    "include_settings_hint": "Jaa tämän laitteen tunnistus- ja täsmäytyskynnykset (ei ilmoituksiasi, entiteettejäsi tai energiahintaasi). Käyttöönottajat päättävät, otetaanko ne käyttöön.",
    "onboard_download": "Uusi laite? Ota käyttöön valmis asetus (ohjelmat, viitesyklit ja vaiheet) toiselta WashData-käyttäjältä, jolla on sama laite.",
    "share_consent": "Vahvistan, että nämä syklit suoritettiin normaalisti loppuun ilman keskeytystä",
    "share_device_none": "Ei vielä jaettavia syklejä. Merkitse tallennettu tai käsin valittu sykli viitesykliksi (⭐) ensin Syklit-välilehdessä.",
    "share_guideline_naming": "Nimeä kukin profiili täsmälleen kuten laitteen säätimessä tai näytössä näkyy (esim. 'Cotton 40', 'Eco 60').",
    "share_guideline_quality": "Jaa vain syklit, jotka suorittivat normaalisti -- ei keskeytyksiä kesken syklin, oven avaustapahtumia tai tehohäiriöitä.",
    "share_guideline_review": "Latauksesi alkaa odottavana ja tulee julkiseksi, kun riittävästi yhteisön jäseniä vahvistaa sen.",
    "share_guidelines_title": "Ennen jakamista",
    "store_download_device_intro": "Ota käyttöön jokainen jaettu ohjelma ja sen viitesyklit laitteellesi. Omat tallennetut syklisi ja tilastosi eivät vaikutu.",
    "store_share_device_intro": "Lataa {brand} {model} valitsemiesi viitesyklien kanssa. Muut saman laitteen omistajat voivat ottaa ohjelmiasi käyttöön. Merkinnät tarkistetaan ennen julkaisua.",
    "share_profile_no_cycles": "Ei viitesyklejä -- merkitse sykli ⭐:ksi Syklit-välilehdessä sisällyttääksesi tämän profiilin",
    "advisory_phase_inconsistent": "'{name}' vaikuttaa sekoittavan eri ohjelmia tai lämpötiloja - sen syklit lämmittävät hyvin eripituisia aikoja. Sen jakaminen erillisiin profiileihin (esim. lämpötilan mukaan) parantaa täsmäytystä ja aika-arvioita.",
    "advisory_phase_inconsistent_title": "⚠ Mahdollisesti sekoittuneet ohjelmat"
  },
  "pg_desc": {
    "completion_min_seconds": "Lyhin ajo, joka lasketaan oikeaksi sykliksi",
    "end_repeat_count": "Peräkkäisten matalien lukemien määrä ennen päättymistä",
    "interrupted_min_seconds": "Lyhyet syklit merkitään keskeytyneiksi",
    "min_off_gap": "Kahden syklin erottamiseen vaadittava tauko",
    "off_delay": "Sekunteja matalaa tehoa ennen syklin päättymistä",
    "start_duration_threshold": "Sekunteja kynnyksen yläpuolella käynnistyksen vahvistamiseksi",
    "start_threshold_w": "Vähimmäiswatit, jotta lasketaan käynnistyneeksi",
    "stop_threshold_w": "Tämän alapuolella laite lasketaan pois päältä olevaksi",
    "dtw_bandwidth": "Vaihe 3: Sakoe-Chiba-ajankäyristyskaista (0 = DTW pois; oletus 0,2 = 20% syklinpituudesta)",
    "corr_weight": "Vaihe 2: tasapaino käyrän muodon (korrelaatio) ja tehotason (MAE) välillä; oletus 0,45",
    "duration_weight": "Vaihe 4: kuinka vahvasti keston yhdenmukaisuus vaikuttaa lopullisiin pisteisiin (oletus 0,22)",
    "energy_weight": "Vaihe 4: kuinka vahvasti energian yhdenmukaisuus vaikuttaa lopullisiin pisteisiin (oletus 0,22)",
    "profile_match_min_duration_ratio": "Vaihe 1: lyhin sykli profiilinkeston murto-osana; oletus 0,1 (10%)",
    "profile_match_max_duration_ratio": "Vaihe 1: pisin sykli profiilinkeston murto-osana; oletus 1,5 (150%)",
    "keep_min_score": "Vaihe 2: alin pisteet pysyäkseen mukana; oletus 0,1 sallii heikot ehdokkaat, myöhemmät vaiheet valitsevat parhaan",
    "dtw_blend": "Vaihe 3: 0 = vain ydinpisteet, 1 = vain DTW-pisteet, 0,5 = tasainen sekoitus (oletus)",
    "dtw_ensemble_w": "Vaihe 3 (ensemble-tila): skaloidun L1 paino vs. derivatiivinen DTW; oletus 0,7 suosii tasonhavainnoivaa",
    "dtw_ddtw_scale": "Vaihe 3: DDTW:n puolikyllästymisetäisyys; pienempi = herkempi muodon eroille (oletus 30)",
    "dtw_refine_top_n": "Vaihe 3: ehdokkaat joille DTW laskee pisteet uudelleen; nosta 7-9:ään jos oikea profiili sijoittuu 4.-5. (oletus 5)",
    "duration_scale": "Vaihe 4: log-suhde jossa keston yhdenmukaisuus puolittuu; pienempi = tiukempi rangaistus (oletus 0,175)",
    "energy_scale": "Vaihe 4: log-suhde jossa energian yhdenmukaisuus puolittuu; pienempi = tiukempi rangaistus (oletus 0,25)"
  },
  "phase_desc": {
    "anti_crease": "Satunnaisia lyhyitä rumpujaksia valmistumisen jälkeen vaatteiden rypistyistä ehkäisemiseksi.",
    "anti_wrinkle": "Jaksoittainen rummun pyörittäminen syklin jälkeen vaatteiden rypistyistä ehkäisemiseksi.",
    "cool_down": "Pyöriminen ilman lämpöä syklin lopussa.",
    "drain_and_switch": "Siirtymäaika pesusta kuivaustilaan.",
    "dry": "Kuivausvaihe lämmittimellä ja/tai jälkilämmöllä.",
    "drying": "Lämmitetty pääjakso.",
    "heat_up": "Lämmittimen ensimmäinen lämmitys ennen täyden kuivumisen alkamista.",
    "pre_rinse": "Ensimmäinen suihkutus ennen pesuainepesua.",
    "pre_wash": "Ensimmäinen liotus tai esikäsittely ennen pääpesua.",
    "rinse": "Puhdasvesihuuhteluvaihe. Tämä vaihe voi toistua useita kertoja.",
    "sanitize": "Korkean lämpötilan puhdistusvaihe desinfiointiohjelmia varten.",
    "sensor_check": "Lyhyt vähätehoinen tauko, kun kuivuutta mitataan.",
    "soak": "Vähäaktiivinen liotusjakso aktiivisten pesuvaiheiden välillä.",
    "soak_dw": "Pidennetty liotusaika raskaalle maaperälle.",
    "spin": "Nopea poisto veden poistamiseksi kuormasta.",
    "spin_wd": "Nopea uutto ennen kuivaussiirtymää.",
    "wash": "Pääpesuohjelma rummun liikkeellä ja valinnaisella lämmityksellä.",
    "wash_dw": "Pääpesuaine pesu lämmityksellä."
  },
  "placeholder": {
    "add": "lisää…",
    "group_name": "esim. Puuvilla 2:47",
    "json_buttons": "[{\"action\":\"ID\",\"title\":\"Label\"}]",
    "notify": "lisää ilmoituspalvelu…",
    "notify_services_list": "notify.mobile_app_phone, ...",
    "person": "lisää henkilö…",
    "phase_name": "esim. Esipesu",
    "profile_name": "esim. Puuvilla 40°C",
    "maintenance_notes": "esim. suodatin vaihdettu, luukun tiiviste puhdistettu",
    "store_brand": "esim. Bosch",
    "store_model": "esim. WAT28401"
  },
  "pref": {
    "date_absolute": "Absoluuttinen (esim. 14:32 2. heinäkuuta)",
    "date_relative": "Suhteellinen (esim. 2 tuntia sitten)",
    "lang_auto": "Järjestelmän oletus ({lang})",
    "lang_en": "Englanti",
    "use_panel_default": "(paneelin oletus)"
  },
  "quality": {
    "bad": "Huono",
    "good": "Hyvä",
    "unusable": "Käyttämätön"
  },
  "section": {
    "anti_wrinkle": {
      "intro": "Ryppyjenestotila tunnistaa lyhyet pienet pyörimisjaksot päävaiheen jälkeen ja pitää ne kiinnitettynä valmiiseen sykliin.",
      "label": "Ryppyjenesto"
    },
    "basic": {
      "intro": "Ydinidentiteetti ja olennaiset tiedot, joita useimmat asetukset tarvitsevat.",
      "label": "Perusasetukset"
    },
    "delay": {
      "intro": "Viivästetyn käynnistyksen tunnistus havaitsee, kun laite on päällä mutta sykliä ei ole vielä aloitettu.",
      "label": "Viivästetty käynnistys"
    },
    "detection": {
      "intro": "Miten sykli tunnistetaan alkaneeksi, käynnissä olevaksi ja päättyneeksi.",
      "label": "Tunnistus"
    },
    "matching": {
      "intro": "Miten valmiit syklit täsmäytetään opittuihin profiileihin ja merkitään.",
      "label": "Täsmäytys"
    },
    "ml_training": {
      "intro": "Laitteen koneoppimisen uudelleenkoulutusaikataulu ja tietoasetukset.",
      "label": "ML-koulutus"
    },
    "notifications": {
      "intro": "Milloin ja miten saat ilmoituksia syklitapahtumista.",
      "label": "Ilmoitukset"
    },
    "timing": {
      "intro": "Taustatoiminnot, offline-tarkkailija ja huolto.",
      "label": "Ajoitus ja tarkkailija"
    },
    "triggers": {
      "intro": "Valinnaiset ulkoiset signaalit: päätyssignaali, ovianturi, taukokytkin ja purkamismuistutus.",
      "label": "Käynnistysimpulssit ja ovet"
    },
    "phase_eta": {
      "label": "Jäljellä oleva aika",
      "intro": "Vaihetietoinen jäljellä oleva aika koneille, joiden syklin pituus riippuu lämpötilasta tai linkouksesta."
    }
  },
  "setting": {
    "anti_wrinkle_enabled": {
      "doc": "Tunnista lyhyet vähätehoiset rumpupulssit, joita kuivausrumpu lähettää päälämpövaiheen jälkeen, ja pidä ne kiinni valmiissa jaksossa sen sijaan, että luet ne uusina jaksoina.",
      "label": "Ota ryppyjenesto käyttöön"
    },
    "anti_wrinkle_exit_power": {
      "doc": "Tehon on oltava tämän alapuolella pulssien välillä, jotta ryppyjä estävä tila pysyy aktiivisena.",
      "label": "Poistumistehokynnys"
    },
    "anti_wrinkle_max_duration": {
      "doc": "Tätä pidempiä pulsseja käsitellään pikemminkin todellisena syklinä kuin ryppyjä ehkäisevänä ryppynä.",
      "label": "Enimmäiskesto"
    },
    "anti_wrinkle_max_power": {
      "doc": "Tämän tehon yläpuolella olevaa pulssia pidetään todellisena uutena syklinä, ei ryppyjä vähentävänä ryppynä. Aseta juuri rumpupulssin tehon yläpuolelle.",
      "label": "Ryppyjeneston enimmäisteho"
    },
    "auto_label_confidence": {
      "doc": "Jos ottelun tulos syklin lopussa on tätä suurempi tai suurempi, ohjelma merkitään automaattisesti ilman vahvistuskehotetta. Nosta se vaatimaan suurempaa varmuutta ennen automaattista merkitsemistä; alenna sitä automatisoidaksesi enemmän. Toimii yhdessä sen alla olevan Learning Confidencen kanssa.",
      "label": "Automaattimerkinnän varmuus"
    },
    "auto_maintenance": {
      "doc": "Suorita iltasiivous: rakenna profiilikuoret uudelleen, laske syklin kunto uudelleen, karsi virheenkorjausjälkiä ja säilytä viimeisimmät jaksot.",
      "label": "Automaattinen huolto (yösiivous)"
    },
    "completion_min_seconds": {
      "doc": "Tätä lyhyemmät syklit hylätään haamujaksoina (koeajot, oven avaaminen sukan lisäämiseksi).",
      "label": "Syklin vähimmäiskesto"
    },
    "delay_confirm_seconds": {
      "doc": "Virran on pysyttävä valmiustilassa niin kauan, ennen kuin laitetta käsitellään käynnistystä odottavana eikä käynnissä.",
      "label": "Vahvistusaika sekunteina"
    },
    "delay_start_detect_enabled": {
      "doc": "Havaitsee, kun laite on päällä ja odottaa (viivästetty käynnistys / valmiustila), mutta ei ole aloittanut jaksoaan, joten valmiustilan vetoa ei pidä sekoittaa käynnissä olevaan jaksoon.",
      "label": "Ota viivästetyn käynnistyksen tunnistus käyttöön"
    },
    "delay_timeout_hours": {
      "doc": "Lopeta odottaminen viivästetty käynnistystilassa näin monen tunnin jälkeen ja palaa tyhjäkäynnille, jotta kone, joka on jätetty päälle mutta ei käynnistynyt, ei odota ikuisesti.",
      "label": "Aikakatkaisutunnit"
    },
    "device_type": {
      "doc": "Kodinkoneluokka. Asettaa järkevät tunnistuksen oletusasetukset (kynnykset, viive, loppukäsittely), jotka on viritetty kyseiselle laitetyypille; muuta sitä vain, jos laite on alun perin määritetty vääräksi tyypiksi.",
      "label": "Laitteen tyyppi"
    },
    "door_sensor_entity": {
      "doc": "Valinnainen oven binaarisensori. Käytetään tunnistamaan, milloin laite on avattu/purettu syklin jälkeen.",
      "label": "Ovianturin entiteetti"
    },
    "duration_tolerance": {
      "doc": "Jäljellä olevan ajan arvioiden toleranssi (oppimispalaute, ei täsmääminen). Jos todellinen kesto on +/-X prosentin sisällä arviosta, se lasketaan hyväksi osuudeksi.",
      "label": "Arviotoleranssi"
    },
    "enable_ml_models": {
      "doc": "Kun sykli on käynnissä, anna mallien tarkentaa reaaliaikaisia ​​tuloksia: vakaampi jäljellä oleva aika- ja energia-/kustannusarvio ja ennenaikaisen pysäytyksen eston varoitus päätteen havaitsemisessa (se voi vain viivästyttää maalia, ei koskaan lopettaa yhtä aikaisin ja on rajallinen). Käyttää hienosäädettyjä mallejasi, kun niitä on saatavilla, muuten sisäänrakennettuja. Off = vain klassinen tehopohjainen logiikka (vielä luotettava).",
      "label": "Käytä älykkäitä malleja syklin aikana"
    },
    "end_energy_threshold": {
      "doc": "Off-viivelaskennan aikana kertynyttä energiaa (wattia x aika) verrataan tähän kynnykseen. Jos se ylittyy, lähtölaskenta nollautuu – rypistymisenestorummut ja astianpesukoneen kuivauspäät pysyvät kiinni syklissä sen sijaan, että niitä leikattaisiin lyhyiksi. Nosta sitä, jos jaksot päättyvät liian aikaisin jäähdytyksen aikana; alenna sitä, jos tunnistus on hidasta.",
      "label": "Lopetuksen energiakynnys"
    },
    "end_repeat_count": {
      "doc": "Peräkkäisten pysäytyskynnyksen alapuolella olevien lukemien määrä, joka vaaditaan ennen syklin päättymistä. 1 sopii useimpiin pistokkeisiin. Nosta arvoon 2–3, jos älypistoke ilmoittaa toisinaan väärän nollan näytteen kesken jakson ja syklisi päättyvät ennenaikaisesti.",
      "label": "Lopetuksen toistomäärä"
    },
    "energy_price_entity": {
      "doc": "Anturi nykyisellä sähkön hinnalla kWh (esim. dynaaminen tariffi). Ensisijainen alla olevaan staattiseen hintaan. Jokainen sykli jäädyttää hinnan, joka on voimassa sen päättyessä.",
      "label": "Energiahinnan entiteetti"
    },
    "energy_price_static": {
      "doc": "Kiinteää kWh-hintaa käytetään kustannusluvuissa, kun yllä ei ole asetettu reaaliaikaista hintakokonaisuutta.",
      "label": "Kiinteä energiahinta (per kWh)"
    },
    "energy_sensor": {
      "doc": "Valinnainen kumulatiivinen energialaskuri (total_increasing kWh/Wh, esim. pistokkeen oma kokonaismittari). Kun tämä on asetettu, kunkin syklin raportoitu energia otetaan tämän laskurin alku- ja loppuarvon erotuksesta, mikä välttää alilaskennan, jonka saat integroimalla hitaasti raportoivaa tehoanturia. Palaa integroituun arvoon, jos lukema puuttuu, sen yksikkö on tuntematon tai erotus ei ole positiivinen. Jätä tyhjäksi jatkaaksesi tehoanturin integrointia.",
      "label": "Energiamittarin entiteetti"
    },
    "expose_debug_entities": {
      "doc": "Julkaise ylimääräisiä diagnostisia HA-kokonaisuuksia (osumavarmuus, moniselitteisyys, tilan sisäiset tiedot). Pois päältä pitää entiteettiluettelon puhtaana normaalia käyttöä varten.",
      "label": "Näytä virheenkorjausentiteetit"
    },
    "external_end_trigger": {
      "doc": "Binaarisensori, jonka tilan muutos merkitsee syklin loppua (esim. laitteen \"valmis\" kosketin tai kumppaniintegraatio).",
      "label": "Ulkoisen signaalin entiteetti"
    },
    "external_end_trigger_enabled": {
      "doc": "Anna ulkoisen binaarisensorin signaloida jakson päättymisestä sisäänrakennetun tehopohjaisen tunnistuksen lisäksi.",
      "label": "Ota ulkoinen päätyssignaali käyttöön"
    },
    "external_end_trigger_inverted": {
      "doc": "Käsittele liipaisuanturin sammuttamista (eikä PÄÄLLÄ) syklin päättymissignaalina.",
      "label": "Käännä ulkoinen signaali (laukaise POIS)"
    },
    "learning_confidence": {
      "doc": "Jos osumapisteet jäävät tämän ja Auto-Label Confidence -toiminnon väliin, palauteilmoitus pyytää sinua vahvistamaan tunnistetun ohjelman. Tämän pistemäärän alapuolella ottelu on liian epävarma tullakseen pintaan. On säilytettävä Auto-Label Confidence -arvon alapuolella.",
      "label": "Oppimisen varmuus"
    },
    "linked_device": {
      "doc": "Vaihtoehtoisesti voit sijoittaa tämän WashData-laitteen toisen laitteen (esim. älypistokkeen) alle HA-laiterekisterissä, joka näkyy muodossa \"Yhdistetty ...\".",
      "label": "Ryhmittele laitteen alle"
    },
    "min_off_gap": {
      "doc": "Jos kone sammuu tämän ajan lyhyemmäksi ajaksi, päälle/pois/päälle-jaksoa käsitellään yhtenä jatkuvana jaksona. Estää liotusohjelmia (kone sammuu useiksi minuutiksi kesken pesun) jakamasta kahteen erilliseen jaksoon. Aseta se lyhyemmäksi kuin peräkkäisten kuormitustesi välinen ero, jos haluat, että ne lasketaan erillisiksi jaksoiksi. Laitetyyppiset oletusasetukset suojaavat kunkin laitteen tyypillistä jakson sisäistä taukoa.",
      "label": "Pienin sammutusväli"
    },
    "min_power": {
      "doc": "Absoluuttinen minimiteho katsotaan aktiiviseksi. Tämän alapuolella olevia lukemia käsitellään 0 W:na (valmiustila), mikä suodattaa älypistokkeiden ja valmiustilan LEDien haamukuorman.",
      "label": "Minimiteho"
    },
    "ml_training_enabled": {
      "doc": "Tutki ajoittain tarkasteltuja jaksojasi yön yli ja hienosäädä mallit tälle koneelle. Muutos säilyy vain silloin, kun se todella saa paremman tuloksen pidennetyillä sykleillä, joten tämä voi vain auttaa tai pysyä samana - älä koskaan heikkene.",
      "label": "Opi tästä koneesta"
    },
    "ml_training_hour": {
      "doc": "Paikallinen kellonaika (0-23) yön yli tapahtuvaa hienosäätöä varten. Valitse hiljainen tunti, kuten 2 (02:00).",
      "label": "Opi tunnilla"
    },
    "ml_training_interval_days": {
      "doc": "Tarkista parannukset uudelleen enintään kerran näin monen päivän välein.",
      "label": "Tarkista enintään joka"
    },
    "ml_training_min_cycles": {
      "doc": "Odota, kunnes ainakin näin monta sykliä on tallennettu ennen hienosäätöä, jotta opittavaa riittää.",
      "label": "Tarvittavat syklit ensin"
    },
    "name": {
      "doc": "Näyttönimi näkyy HA-integraatioluettelossa ja laiterekisterissä.",
      "label": "Laitteen nimi"
    },
    "no_update_active_timeout": {
      "doc": "Jos virtapäivityksiä ei tule näin pitkään käynnissä ollessa, oleta, että pistoke putoaa offline-tilassa ja pakota pysäytys välttääksesi zombie-syklin. Oletusarvo 600 s mahdollistaa pilvi- tai mesh-viiveen.",
      "label": "Päivityksettömyyden aikakatkaisuaika"
    },
    "notify_before_end_minutes": {
      "doc": "Lähetä Lähes valmis -ilmoitus, kun arvioitu jäljellä oleva aika putoaa tämän alle. 0 poistaa sen käytöstä.",
      "label": "Lopetusennakkoilmoitus"
    },
    "notify_channel": {
      "doc": "Android-ilmoituskanavan nimi aloitus-/lähetysviesteille (ohjaa kanavakohtaista ääntä ja prioriteettia mobiilisovelluksessa). Tyhjä käyttää kumppanisovelluksen oletusarvoa.",
      "label": "Android-kanava (käynnistys/suora)"
    },
    "notify_cycle_timers": {
      "doc": "Ilmoitukset tiettyinä minuutteina jakson aikana (esim. huuhteluaineen lisäämiseksi). Viesti tukee seuraavia: {device}, {program}, {minutes}. Ota automaattinen tauko käyttöön keskeyttääksesi kyseisessä kohdassa ja vastaanottaaksesi interaktiivisen ilmoituksen Jatka-painikkeella. Jatka paneelin, keskeytys/jatka-palvelun tai ilmoitustoiminnon kautta.",
      "label": "Sykliajastimet"
    },
    "notify_finish_channel": {
      "doc": "Android-ilmoituskanavan nimi viimeistelyviestille. Tyhjä käyttää uudelleen aloitus/live-kanavaa.",
      "label": "Android-kanava (lopetus)"
    },
    "notify_finish_message": {
      "doc": "Ilmoituksen runko, joka lähetetään syklin päättyessä. Mallin muuttujat: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}. {time_finished} ja {vs_typical} ovat tässä hyödyllisimmät.",
      "label": "Lopetusviesti"
    },
    "notify_finish_services": {
      "doc": "notify.* -palvelut kutsuvat, kun jakso päättyy. Lisää yksi kohdetta kohden; jätä tyhjäksi, jotta et halua lopettaa ilmoitusta.",
      "label": "Lopetuspalvelut"
    },
    "notify_fire_events": {
      "doc": "Sammuta myös ha_washdata_*-tapahtumat syklin alussa/lopetuksessa, jotta voit rakentaa omia automaatioitasi.",
      "label": "Käynnistä HA-tapahtumat ilmoituksille"
    },
    "notify_icon": {
      "doc": "Valinnainen mdi-kuvake ilmoitukselle (esim. mdi:washing-machine). Jätä tyhjäksi alustan oletuksena.",
      "label": "Ilmoituksen kuvake"
    },
    "notify_live_chronometer": {
      "doc": "Näytä reaaliaikaisesti päivittyvä ajastin ilmoituksessa (setä tukevilla alustoilla) staattisen arvion sijaan.",
      "label": "Käytä suoraa kronometriä"
    },
    "notify_live_interval_seconds": {
      "doc": "Kuinka usein live-etenemisilmoitukset päivitetään syklin aikana.",
      "label": "Suoran päivityksen väli"
    },
    "notify_live_overrun_percent": {
      "doc": "Jos sykli ylittää arvionsa enemmän kuin tämä prosenttiosuus, lähetä ylitysvaroitus.",
      "label": "Suoran yliajan % ennen hälytystä"
    },
    "notify_live_services": {
      "doc": "notify.* -palvelut vaativat reaaliaikaisia ​​edistymispäivityksiä syklin aikana. Jätä tyhjäksi, jos haluat poistaa live-edistymisilmoitukset käytöstä.",
      "label": "Suoran edistymisen palvelut"
    },
    "notify_only_when_home": {
      "doc": "Lähetä ilmoituksia vain, kun vähintään yksi linkitetyistä henkilöistä (yllä) on kotona.",
      "label": "Ilmoita vain kotona ollessa"
    },
    "notify_people": {
      "doc": "henkilö.* entiteetit, joita \"Ilmoita vain kotona\" käyttää päättääkseen, onko kukaan kotona.",
      "label": "Henkilöt (Ilmoita vain kotona ollessa)"
    },
    "notify_pre_complete_message": {
      "doc": "Loppua edeltävän / melkein valmis -ilmoituksen runko. Mallin muuttujat: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Ennen valmistumista -viesti"
    },
    "notify_reminder_message": {
      "doc": "Vielä odottavan purkumuistutuksen runko. Tyhjä käyttää sisäänrakennettua oletusarvoa. Mallin muuttujat: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Muistutusviesti"
    },
    "notify_start_message": {
      "doc": "Ilmoituksen runko, joka lähetetään syklin alkaessa. Mallin muuttujat: {device}, {duration}, {minutes}, {program}, {energy_kwh}, {cost}, {time_finished}, {vs_typical}, {cycle_count}.",
      "label": "Käynnistysviesti"
    },
    "notify_start_services": {
      "doc": "notify.* -palvelut kutsuvat, kun sykli alkaa. Lisää yksi kohdetta kohden (puhelin, kojelauta jne.); jätä tyhjäksi, jos et aloita ilmoitusta.",
      "label": "Käynnistyspalvelut"
    },
    "notify_timeout_seconds": {
      "doc": "Hylkää ilmoitus automaattisesti tämän muutaman sekunnin kuluttua (käyttöympäristöissä, jotka tukevat sitä). 0 säilyttää sen, kunnes se hylätään manuaalisesti.",
      "label": "Piilota automaattisesti sen jälkeen"
    },
    "notify_title": {
      "doc": "Ilmoituksen otsikko. Mallin muuttujat: {device}, {program}, {duration}, {energy}, {cost}, {date}, {time}, {minutes}.",
      "label": "Ilmoituksen otsikko"
    },
    "notify_unload_delay_minutes": {
      "doc": "Minuutit syklin päättymisen jälkeen ennen edelleen odottavan koneen purkamisen muistutuksen lähettämistä. Aseta 0 poistaaksesi muistutuksen käytöstä.",
      "label": "Purkamismuistutuksen viive"
    },
    "off_delay": {
      "doc": "Aika odottaa tehon putoamisen jälkeen ennen kuin sykli julistetaan päättyneeksi. Jos virta palaa tämän ikkunan sisällä, jakso jatkuu saumattomasti - tämä siltaa taukoja pesuvaiheiden välillä. Astianpesukoneissa on pitkät kuivausvaiheet (virta pois päältä 20-60 min), joten sammutusviiveen on oltava tätä suurempi, jotta koko pesu+kuivaus pysyy yhtenä jaksona.",
      "label": "Sammutusviive"
    },
    "pause_cuts_power": {
      "doc": "Kun sykli on keskeytetty, sammuta myös alla oleva Switch Entity. Vain laitteille, joiden pistoke voidaan katkaista turvallisesti kesken jakson.",
      "label": "Tauko katkaisee myös virran (kytkimen kautta)"
    },
    "power_off_delay": {
      "doc": "Kuinka kauan tehon on pysyttävä Virran sammutuksen kynnyksen alapuolella jakson päätyttyä, ennen kuin tila palaa Pois päältä -tilaan. Käytetään vain, kun Virran sammutuksen kynnys on yli 0. Tarkistetaan taustasyklin mukaan, joten todellinen viive pyöristyy ylöspäin seuraavaan tilan vanhenemisajankohtaan.",
      "label": "Virran sammutuksen viive"
    },
    "power_off_threshold_w": {
      "doc": "Valinnainen tehoon perustuva Pois päältä -tilan tunnistus. Kun arvo on yli 0 ja jakso on päättynyt sekä teho pysyy tämän tason alapuolella Virran sammutuksen viiveen ajan, koneen katsotaan olevan sammutettu ja tila palaa Pois päältä -tilaan. Poista käytöstä jättämällä arvoon 0 (oletus). Aseta se todellisen sammutetun tason yläpuolelle mutta Pysäytyskynnyksen ja koneesi valmis-mutta-päällä-valmiustilan kulutuksen alapuolelle; jos se ei ole Pysäytyskynnyksen alapuolella, se ohitetaan. Käytössä ollessaan se korvaa Edistymisen nollausviiveen paluussa Pois päältä -tilaan, joten valmistunut kone pysyy Valmis/Puhdas-tilassa, kunnes se todella sammutetaan.",
      "label": "Virran sammutuksen kynnys"
    },
    "power_sensor": {
      "doc": "Anturientiteetti, joka raportoi tämän laitteen reaaliaikaisen tehon watteina (esim. sensor.washer_power). Kaikki syklin tunnistus perustuu tähän signaaliin.",
      "label": "Tehoanturi"
    },
    "profile_duration_tolerance": {
      "doc": "+/- nauha profiilin keskimääräisen keston ympärillä, jota käytetään täsmäämisen aikana. 0,25 tarkoittaa, että 60 minuutin profiili vastaa 45-75 minuutin jaksoja.",
      "label": "Profiilin kestotoleranssi"
    },
    "profile_match_interval": {
      "doc": "Kuinka usein profiilin täsmäämistä yritetään juoksujakson aikana. Oletusarvo 300 s (5 minuuttia) tasapainottaa tunnistusnopeuden ja suorittimen.",
      "label": "Täsmäytysväli"
    },
    "profile_match_max_duration_ratio": {
      "doc": "Jakson enimmäispituus suhteessa profiiliin. 1.3 tarkoittaa, että syklin on oltava alle 130 % profiilin kestosta, jotta se täsmää.",
      "label": "Enimmäiskestosuhde"
    },
    "profile_match_min_duration_ratio": {
      "doc": "Jakson vähimmäispituus suhteessa profiiliin. 0,9 tarkoittaa, että jakson on oltava vähintään 90 % profiilin kestosta, jotta se täsmää.",
      "label": "Vähimmäiskestosuhde"
    },
    "profile_match_threshold": {
      "doc": "Minimi samankaltaisuuspisteet (0-1) vaaditaan syklin lopussa ohjelman tunnisteen hyväksymiseksi. Nosta se vähentääksesi vääriä tunnistuksia; alenna sitä, jos koneesi ohjelmia ei täsmää. Oletusarvo 0,4 on konservatiivinen lähtökohta.",
      "label": "Täsmäytyskynnys"
    },
    "profile_unmatch_threshold": {
      "doc": "Jos live-ottelu puolivälissä putoaa tämän pistemäärän alapuolelle, alustava tunnistaminen tyhjennetään. Pidä se hieman vastaavuuskynnyksen alapuolella, jotta lyhyt samankaltaisuus ei käännä näyttöä takaisin vertaansa vailla.",
      "label": "Eritäsmäytyskynnys"
    },
    "progress_reset_delay": {
      "doc": "Kun olet valmis, pidä edistymistä 100 %:ssa näin kauan, jotta Valmis näkyy kojelaudoissa, ennen kuin palautat sen tyhjäkäynnille.",
      "label": "Edistymisen nollausviive"
    },
    "pump_stuck_duration": {
      "doc": "Sekunteja pumppu voi käydä jatkuvasti ennen kuin se merkitään mahdollisesti jumiutuneeksi (käynnistää juuttunut pumppu -tapahtuman).",
      "label": "Pumpun jumiutumiskesto"
    },
    "running_dead_zone": {
      "doc": "Jakson alkamisen jälkeen tämän ikkunan sisällä olevat virrankatkaisut ohitetaan. Pyykinpesukoneet täyttyvät kylmällä vedellä (lämpenee lähes 0 W ennen lämmitystä) - ilman tätä suojaa täyttövaihe näyttää syklin päättymiseltä. Tämä EI ohita tietoja: täysi tehojälki tallennetaan T=0:sta. Ehdotusmoottori mittaa koneesi todellisen käynnistyskuvion ja määrittää sen automaattisesti.",
      "label": "Käynnissäolon kuolualue"
    },
    "sampling_interval": {
      "doc": "Odotettu aika anturin lukemien välillä - käytetään tasoitusikkunan mitoittamiseen ja oikeaan palautumiseen. Jokainen anturin päivitys tallennetaan tästä arvosta riippumatta; se vain kalibroi alavirran laskelmia. Ehdotusmoottori mittaa anturin todellisen poljinnopeuden aiemmista sykleistä ja asettaa sen automaattisesti.",
      "label": "Näytteenottoväli"
    },
    "save_debug_traces": {
      "doc": "Tallenna täyden tehon jäljitys ja vastaavat virheenkorjaustiedot jokaiselle jaksolle. Hyödyllinen vianetsinnässä, mutta lisää tallennustilaa.",
      "label": "Tallenna virheenkorjausjäljet"
    },
    "smoothing_window": {
      "doc": "Kuinka paljon raakatehosignaali tasoittuu. Matala (2) on herkkä, mutta meluisa; korkea (5) tasoittaa piikkejä, mutta lisää viivettä.",
      "label": "Tasoitusikkuna"
    },
    "start_duration_threshold": {
      "doc": "Tehon on pysyttävä käynnistyskynnyksen yläpuolella näin kauan varmistaakseen todellisen käynnistyksen, estäen sekunnin osan päälle/pois-kytkimiä käynnistämästä sykliä.",
      "label": "Käynnistyksen kesto"
    },
    "start_energy_threshold": {
      "doc": "Laitteen tulee kuluttaa energiaa (teho x aika) ennen KÄYTTÖÄ. Lyhyellä suuritehoisella piikkillä on erittäin vähän energiaa, ja se jätetään huomiotta, mikä estää väärät käynnistykset.",
      "label": "Käynnistyksen energia"
    },
    "start_threshold_w": {
      "doc": "Tehon on noustava tämän tason yläpuolelle varmistaakseen, että sykli on alkanut. Liian alhaiseksi asettaminen aiheuttaa vääriä käynnistyksiä valmiustilasta; liian korkea ja hitaasti käynnistyvät ohjelmat (kylmätäyttö) jäävät huomiotta. Ehdotusmoottori asettaa tämän juuri koneen havaitun alhaisimman aktiivisen tehon yläpuolelle.",
      "label": "Käynnistyskynnys"
    },
    "stop_threshold_w": {
      "doc": "Tehon on laskettava tämän tason alapuolelle ennen kuin poiskytkentäviiveen laskenta alkaa. Aseta se aloituskynnyksen alapuolelle - niiden välinen rako on hystereesinauha, joka estää välkkymisen. Jos asetettu liian korkeaksi, vähän tehoa käyttävät vaiheet (huuhteluesteet, rypistymisen esto) laukaisevat virheellisesti loppujakson.",
      "label": "Pysäytyskynnys"
    },
    "switch_entity": {
      "doc": "Valinnainen kytkin kytketään pois päältä taukotilanteessa ja takaisin päälle, kun jatkat, käytetään yhdessä \"Tauko katkaisee myös virran\" kanssa.",
      "label": "Kytkimen entiteetti"
    },
    "watchdog_interval": {
      "doc": "Kuinka usein taustavahti tarkistaa jumiutuneiden antureiden ja kuluneiden aikakatkaisujen varalta. Oletusarvo 30 s.",
      "label": "Tarkkailijaväli"
    },
    "notify_milestone_message": {
      "doc": "Virstanpylväsilmoituksen viesti. Mallin muuttujat: {device}, {cycle_count}.",
      "label": "Virstanpylväsviesti"
    },
    "notify_milestones": {
      "doc": "Pilkuin eroteltu määrä syklejä, jotka saavutettaessa laukaisevat kertaluontoisen juhlistusilmoituksen (esim. 50, 100, 500, 1000). Tyhjä poistaa virstanpylväsilmoitukset käytöstä.",
      "label": "Syklien virstanpylväät"
    },
    "notify_quiet_end_hour": {
      "doc": "Älä häiritse -ikkunan loppu (0-23). Pidätetyt ilmoitukset toimitetaan tällä tunnilla. Poista käytöstä jättämällä tyhjäksi.",
      "label": "Hiljaisten tuntien loppu"
    },
    "notify_quiet_start_hour": {
      "doc": "Älä häiritse -ikkunan alku (0-23). Valmistumis-, muistutus- ja puhtaat pyykit -ilmoitukset, jotka laukeaisivat hiljaisina tunteina, pidätetään ja toimitetaan ikkunan päättyessä. Poista käytöstä jättämällä tyhjäksi. Tukee keskiyön yli meneviä ikkunoita (esim. alku 22, loppu 7).",
      "label": "Hiljaisten tuntien alku"
    },
    "peak_rate_message": {
      "doc": "Valinnainen mukautettu teksti huippuhintavihjeelle, joka liitetään käynnistysilmoitukseen. Mallin muuttujat: {device}, {price}. Tyhjä käyttää sisäänrakennettua oletusarvoa.",
      "label": "Huippuhintaviesti"
    },
    "peak_rate_threshold": {
      "doc": "Kun sykli alkaa ja nykyinen hinta per kWh on tämä arvo tai suurempi, käynnistysilmoitukseen liitetään huippuhintavihje. 0 tai tyhjä poistaa vihjeen käytöstä.",
      "label": "Huippuhintakynnys (per kWh)"
    },
    "dtw_bandwidth": {
      "label": "Muodon täsmäytyksen toleranssi",
      "doc": "Kuinka paljon täsmäytin saa venyttää jaksoa ajassa, jotta se sopii tallennetun ohjelman muotoon. Suurempi sallii enemmän nopeusvaihtelua; liian suuri voi täsmätä väärän ohjelman."
    },
    "corr_weight": {
      "label": "Muodon ja tason painotus",
      "doc": "Tasapaino käyrän muodon ja absoluuttisen tehotason välillä täsmäytystä pisteytettäessä. Suurempi suosii muotoa; pienempi suosii tehotason täsmäystä."
    },
    "duration_weight": {
      "label": "Keston painotus",
      "doc": "Kuinka voimakkaasti suositaan ohjelmaa, jonka tyypillinen kesto vastaa tätä jaksoa."
    },
    "energy_weight": {
      "label": "Energian painotus",
      "doc": "Kuinka voimakkaasti suositaan ohjelmaa, jonka tyypillinen energiankulutus vastaa tätä jaksoa."
    },
    "store_brand": {
      "label": "Laitteen merkki",
      "doc": "Valinnainen. Laitteen merkki, joka valitaan yhteisön luettelosta. Käytetään vastaavien viitetallennusten löytämiseen ja jakamiseen. Jätä tyhjäksi, jos et käytä verkkotoimintoja."
    },
    "store_model": {
      "label": "Laitteen malli",
      "doc": "Valinnainen. Laitteen malli, joka valitaan yhteisön luettelosta merkin asettamisen jälkeen. Jos malliasi ei ole luettelossa, voit lisätä sen luetteloon."
    },
    "show_contributor": {
      "doc": "Näytä \"tekijä <osallistuja>\" -merkintä yhteisön laitteissa ja viitesykleissä."
    },
    "enable_phase_matching": {
      "label": "Vaihetietoinen jäljellä oleva aika",
      "doc": "Jaa jokainen käynnissä oleva sykli vaiheisiin (lämmitys, pesu, linkous) ja budjetoi jäljellä oleva aika vaihekohtaisesti, yhdistettynä klassiseen arvioon - nojaten syklin alkuvaiheessa vaihebudjettiin ja lopussa klassiseen arvioon. Tämä mukauttaa laskurin siihen, kuinka kauan koneesi todella lämmittää ja käy, mikä näkyy selvimmin syklin alkupuoliskolla. Pois = vain klassinen arvio. Vaikuttaa vain jäljellä olevan ajan näyttöön; ohjelman täsmäytys ja syklin tunnistus pysyvät ennallaan."
    },
    "keep_min_score": {
      "label": "Vähim. vastaavuuspisteet",
      "doc": "Alin samankaltaisuuspisteet, jotka ehdokas tarvitsee pysyäkseen täsmäytyksessä mukana. Oletus 0,1 on tarkoituksellisesti salliva – se sallii jopa heikot ehdokkaat ja luottaa myöhempiin vaiheisiin parhaan löytämiseksi. Nosta leikkaamaan epätodennäköiset profiilit aikaisemmin; laske laajentamaan alkuperäistä ehdokaspoolia."
    },
    "dtw_blend": {
      "label": "DTW-sekoitus",
      "doc": "Kuinka paljon DTW-kohdistuspisteet korvaavat Vaiheen 2 ydinpisteet. 0 = käytä vain Vaiheen 2 pisteitä, 1 = käytä vain DTW-pisteitä, 0,5 (oletus) = tasainen sekoitus. Nosta luottamaan enemmän aikakohdistukseen kun ohjelmilla on samanlaiset tehotasot mutta erilaiset ajoitusmustrit."
    },
    "dtw_ensemble_w": {
      "label": "DTW-ensemble-miksaus",
      "doc": "Ensemble-DTW-tilassa (oletus) tämä on skaloidun L1:n paino verrattuna derivatiiviseen DTW:hen (DDTW). 1,0 = vain skaloitu L1, 0 = vain DDTW, 0,7 = oletus. Skaloitu muunnelma vertaa tehotasoja; derivatiivinen reagoi siihen miten teho muuttuu ajan kuluessa. Ensemble yhdistää molemmat."
    },
    "dtw_ddtw_scale": {
      "label": "Deriv. DTW-skala",
      "doc": "Derivatiivisen DTW-pisteytyksen puolikyllästymisetäisyys. Pisteet puolittuvat kun DDTW-etäisyys on yhtä suuri kuin tämä arvo. Pienempi = herkempi muodon eroille. Oletus 30 on kalibroitu tyypillisten laitteiden tehokäyrille. Vaikuttaa vain ensemble- ja ddtw-DTW-tiloihin."
    },
    "dtw_refine_top_n": {
      "label": "DTW-tarkistusmäärä",
      "doc": "Kuinka monelle Vaiheen 2 parhaalle ehdokkaalle DTW laskee pisteet uudelleen. DTW on kalliimpaa joten se sovelletaan vain N parhaaseen. Oletus 5. Nosta (7-9:ään) jos oikea profiili pääsee joskus vain 4. tai 5. sijalle Vaiheen 2 jälkeen – DTW voi pelastaa sen. Pienempi arvo nopeuttaa täsmäytystä hieman."
    },
    "duration_scale": {
      "label": "Keston tarkkuus",
      "doc": "Vaiheen 4 keston yhdenmukaisuusrangaistuksen tarkkuus. Tämä on log-suhde jossa yhdenmukaisuuspisteet puolittuvat. Pienempi = tiukempi: keston poikkeama haittaa enemmän. Oletus 0,175 vastaa noin 18% kestontoleranssia puolipainolla. Yhdistä Kestopaino-asetukseen."
    },
    "energy_scale": {
      "label": "Energian tarkkuus",
      "doc": "Vaiheen 4 energian yhdenmukaisuusrangaistuksen tarkkuus. Pienempi = tiukempi: energian poikkeama haittaa enemmän. Oletus 0,25 on tarkoituksellisesti sallivampi kuin kestotarkkuus koska energia vaihtelee kuorman mukaan. Yhdistä Energiapaino-asetukseen."
    }
  },
  "setting_group": {
    "auto_labeling": {
      "label": "Automaattiset merkinnät"
    },
    "cycle_end": {
      "label": "Syklin loppu"
    },
    "cycle_start": {
      "label": "Syklin alku"
    },
    "cycle_timers": {
      "label": "Sykliajastimet"
    },
    "data_management": {
      "label": "Tiedonhallinta"
    },
    "debug": {
      "label": "Virhehaku"
    },
    "dishwasher_end": {
      "label": "Astianpesukoneen lopetus"
    },
    "door_pause": {
      "label": "Ovi ja tauko"
    },
    "dtw_refinement": {
      "label": "DTW-tarkennus"
    },
    "duration_gates": {
      "label": "Keston portit"
    },
    "energy": {
      "label": "Energia"
    },
    "external_end_trigger": {
      "label": "Ulkoinen päätyssignaali"
    },
    "housekeeping": {
      "label": "Huolto"
    },
    "match_scoring": {
      "label": "Täsmäytyspisteet"
    },
    "messages": {
      "label": "Viestit"
    },
    "power_off": {
      "label": "Virran sammutus"
    },
    "predictive_end": {
      "label": "Ennakoiva lopetus"
    },
    "schedule": {
      "label": "Aikataulu"
    },
    "services": {
      "label": "Palvelut"
    },
    "signal_processing": {
      "label": "Signaalinkäsittely"
    },
    "thresholds_gap": {
      "label": "Kynnykset ja väli"
    },
    "timing": {
      "label": "Ajoitus"
    },
    "unload_reminder": {
      "label": "Purkamismuistutus"
    },
    "watchdog": {
      "label": "Tarkkailija"
    },
    "quiet_hours_milestones": {
      "label": "Hiljaiset tunnit ja virstanpylväät"
    },
    "device_info": {
      "label": "Laitteen tiedot"
    },
    "basic_configuration": {
      "label": "Perusmääritykset"
    }
  },
  "status": {
    "active": "Aktiivinen",
    "all_statuses": "Kaikki tilat",
    "ambiguous": "Epäselvä",
    "auto_detect": "Automaattinen tunnistus",
    "clear": "Selkeä",
    "completed": "Valmis",
    "fine_tuning": "hienosäätöä nyt...",
    "force_stopped": "Voima pysähtyi",
    "idle": "Tyhjäkäynti",
    "interrupted": "Keskeytetty",
    "ready": "Valmis käsiteltäväksi",
    "recording": "Tallennetaan",
    "training": "Koulutetaan…",
    "saving": "Tallennetaan…",
    "rebuilding": "Rakennetaan uudelleen…",
    "analyzing": "Analysoidaan…",
    "resetting": "Nollataan…",
    "reverting": "Palautetaan…",
    "trimming": "Leikataan…",
    "splitting": "Jaetaan…",
    "deleting": "Poistetaan…",
    "imported": "Tuotu"
  },
  "suggestion": {
    "both_agree": "WashData suosittelee",
    "calibrated_label": "Kalibroitu",
    "observed_label": "Havaittu",
    "impact": {
      "auto_label_confidence": {
        "higher": "Vähemmän automaattisia merkintöjä – useammat syklit menevät tarkistukseen",
        "lower": "Enemmän automaattisia merkintöjä – osa voi olla virheellisiä"
      },
      "duration_tolerance": {
        "higher": "Hyväksyy laajemman kestoalueen – joustavampi tunnistus",
        "lower": "Edellyttää tarkempaa kestomatchausta – tiukempi, mutta voi hylätä epätavalliset syklit"
      },
      "end_energy_threshold": {
        "higher": "Sulkee vain syklit, jotka kuluttivat merkittävästi energiaa",
        "lower": "Sulkee myös lyhyemmät tai vähän energiaa kuluttavat syklit"
      },
      "end_repeat_count": {
        "higher": "Päätyssignaali täytyy toistua useammin – luotettavampi, hieman hitaampi",
        "lower": "Päättyy vähemmän toistojen jälkeen – nopeampi tunnistus, enemmän riskiä väärästä lopetuksesta"
      },
      "learning_confidence": {
        "higher": "Oppii vain erittäin varmoista osumista – hitaampi mutta luotettavampi",
        "lower": "Oppii useammista sykleistä – malli voi olla epätarkempi"
      },
      "min_off_gap": {
        "higher": "Pidempi tauko vaaditaan ennen uuden syklin alkua",
        "lower": "Lyhyt tauko riittää – peräkkäiset ajot voivat jakaantua"
      },
      "min_power": {
        "higher": "Vähemmän herkkä standby-teholle – hyvin hiljaiset ohjelmat voivat jäädä huomaamatta",
        "lower": "Herkempi – standby-teho voidaan tunnistaa aktiviteetiksi"
      },
      "no_update_active_timeout": {
        "higher": "Enemmän aikaa ennen kuin jumiutunut sykli pakotetaan lopetettavaksi",
        "lower": "Pakottaa jumiutuneen syklin loppumaan nopeammin"
      },
      "off_delay": {
        "higher": "Enemmän aikaa laitteen tauoille – pitkät likoamis- tai kuivausvaiheet sillataan",
        "lower": "Nopeampi lopetuksen tunnistus – sopii laitteille, joilla on selkeä päällä/pois-käyttäytyminen"
      },
      "profile_match_threshold": {
        "higher": "Vain erittäin varmat osumat vahvistetaan – useammat syklit jäävät merkitsemättä",
        "lower": "Useammat syklit täsmäytetään – osa voi olla hieman väärin"
      },
      "running_dead_zone": {
        "higher": "Lyhyet tehohuiput tyhjäkäynnin aikana ohitetaan – vähemmän häiriöherkkä",
        "lower": "Reagoi lyhyempiin tehoimpulsseihin – havaitsee nopeat transientit"
      },
      "start_threshold_w": {
        "higher": "Välttää väärät käynnistykset lyhyistä tehohuipuista",
        "lower": "Tunnistaa vähätehoiset ohjelmat – voi aktivoitua häiriöistä"
      },
      "stop_threshold_w": {
        "higher": "Päättää syklin nopeammin – voi aktivoitua tauon aikana",
        "lower": "Odottaa kauemmin ennen lopetusta – vähemmän ennenaikaisia päätöksiä"
      },
      "watchdog_interval": {
        "higher": "Pidempiä hiljaisia vaiheita sallitaan – vähemmän tahattomia pakotettuja pysäytyksiä",
        "lower": "Havaitsee jumissa olevat syklit nopeammin"
      }
    },
    "reason": {
      "auto_label_confidence": "15. persentiilin luottamus {cycles} automaattiselle merkinnälle, joita käyttäjä ei koskaan korjannut ({p15}).",
      "completion_min_seconds": "Puolet puhtaiden jaksojen p05-kestosta ({minutes} min) {cycles} jakson joukossa; suodattaa haamujaksot pois.{excl}",
      "dead_zone_batch": "Pidetään lyhyenä (käynnistyksen epävakausikkunan mediaani {cycles} jakson joukossa = {s}s), jotta todellinen loppu havaitaan nopeasti.",
      "dead_zone_from_dip": "Perustuu varhaiseen tehonlaskuun, joka havaittiin kohdassa {s}s.",
      "end_energy_default": "Suositeltu oletusarvo jakson lopun kohinakynnykselle.",
      "end_energy_false": "p95 väärien loppujen energialle ({p95}Wh) {cycles} jakson joukossa, alarajana 0.2% jakson mediaanienergiasta ({floor}Wh).",
      "end_energy_no_false": "Ei vääriä loppuja {cycles} jakson joukossa; alarajana 0.2% jakson mediaanienergiasta ({floor}Wh).",
      "end_repeat_count": "{false}/{total} puhtaasta jaksosta ({pct}%) sisälsi yli 60s kestäneen sisäisen tauon, joka jatkui; vaatii {val} loppuvahvistusta.",
      "learning_confidence": "p05-luottamus {cycles} käyttäjän merkitsemälle jaksolle ({p05}); tämän alle pyydetään vahvistusta.",
      "match_interval": "Perustuu havaittuun päivitystahtiin (mediaani={median}s) * 10.",
      "max_duration_ratio": "Perustuu merkittyjen jaksojen kestoihin (p95={p95}).",
      "min_active": "Perustuu pienimpään aktiiviseen tehoon ({min}W), joka havaittiin viime jaksossa.",
      "min_duration_ratio": "Pidetään mahdollisimman matalana, jotta ohjelma tunnistetaan jakson alkuvaiheessa; luottamus- ja epäselvyysrajat estävät ennenaikaiset päätökset.",
      "min_off_gap": "Perustuu {gaps} havaittuun jaksojen väliseen taukoon (p05={p05}s). Laitteen alaraja: {floor}s.",
      "min_power": "40% pienimmästä aktiivisesta tehosta p05:ssä ({p05}W) {cycles} puhtaan jakson joukossa, mikä pitää sammutuskynnyksen todellisen kulutuksen alapuolella.{excl}",
      "ml_auto_label": "Pienin luottamus, jonka laatumalli arvioi vielä puhtaaksi (p10 {cycles} puhtaasta jaksosta = {p10}).",
      "ml_end_repeat": "{false}/{total} jaksosta ({pct}%) sisälsi tauon, jolle loppudetektori antoi >50%; vaatii {val} loppuvahvistusta.",
      "ml_off_delay": "Loppudetektorin vahvistamat tauot: p95 {p95}s + 60s puskuri, {pauses} mallin varmistamasta tauosta {cycles} jakson joukossa (alaraja {floor}s).",
      "no_update_timeout": "Perustuu havaittuun päivitystahtiin (p95={p95}s) * 20 (väh. 60s).",
      "off_delay_cadence": "Perustuu havaittuun päivitystahtiin (p95={p95}s) * 5",
      "off_delay_device_floor": "Käytettiin laitekohtaista turvallista vähimmäisarvoa laitteelle {device} ({floor}s).",
      "off_delay_generic_floor": "Käytettiin yleistä turvallista vähimmäisarvoa ({floor}s).",
      "off_delay_pauses": "Mitoitettu kestämään todellisia taukoja pidempään: p95 jakson sisäiselle tauolle {p95}s + 60s puskuri, {pauses} tauosta {cycles} puhtaan jakson joukossa (alaraja {floor}s).",
      "profile_match_threshold": "p10-luottamus {cycles} oikealle automaattiselle merkinnälle ({p10}); turvallinen alaraja reaaliaikaiselle vahvistukselle.",
      "sampling_interval": "Päivitysvälin mediaani {cycles} puhtaan jakson joukossa ({si}s).{excl}",
      "smoothing_window": "Mitoitettu tasoittamaan noin 30s lukemia {si}s näytteenottovälillä ({samples} näytettä).",
      "start_duration": "Pidetään lyhyenä (~yksi {si}s näytteenottoväli), jotta tunnistus alkaa mahdollisimman aikaisin mutta jättää silti yksittäiset piikit huomiotta.",
      "thr_batch": "Pidetään juuri pienimmän aktiivisen tehon yläpuolella p05:ssä {cycles} jakson joukossa ({p05}W), jotta käynnistys havaitaan mahdollisimman aikaisin ja pysäytyskynnys pysyy koneen pienimmän käyntitehon alapuolella.",
      "tol_per_profile": "p75 profiilikohtaisesta keston varianssista {profiles} profiilin joukossa ({cycles} jaksoa); tiiviitä profiileja ei rangaista.",
      "tol_pooled": "Perustuu {cycles} viimeisimmän merkityn jakson yhdistettyyn keston varianssiin (p95 poikkeama={dev}).",
      "watchdog": "Pidetään niin matalana kuin on turvallista (3x p95-päivitysväli {p95}s, väh. 30s), jotta pysähdykset havaitaan nopeasti ilman vääriä pysäytyksiä."
    },
    "exclusions": {
      "summary": "Suljettu pois {total} väärin tunnistettua sykliä: {parts}.",
      "reason": {
        "force_stopped": "pakotetusti pysäytettyä",
        "interrupted": "keskeytettyä",
        "incomplete": "keskeneräistä",
        "noise": "kohinaa",
        "unlabeled": "merkitsemätöntä",
        "no_trace_short": "tarkastukseen liian lyhyttä",
        "high_start": "korkealla teholla alkanutta",
        "abrupt_end": "äkillisesti päättynyttä",
        "mid_restart": "kesken uudelleenkäynnistynyttä",
        "no_power": "ilman tehoa",
        "no_active_power": "ilman aktiivista tehoa"
      }
    }
  },
  "tab": {
    "advanced": "Edistynyt",
    "diagnostics": "Diagnostiikka",
    "history": "Syklit",
    "ml": "ML koulutus",
    "pp_cleanup": "Puhdistus",
    "pp_manage": "Hallitse",
    "pp_overview": "Yleiskatsaus",
    "pp_phases": "Vaiheet",
    "profiles": "Profiilit",
    "settings": "Asetukset",
    "status": "Yleiskatsaus",
    "subtab_phase_catalog": "Vaiheen katalogi",
    "subtab_profiles": "Profiilit",
    "maintenance": "Huolto",
    "playground": "Hiekkalaatikko",
    "store": "Kauppa"
  },
  "tag": {
    "early_end": "Varhainen loppu",
    "late_start": "Myöhäinen aloitus",
    "merged": "Yhdistetyt syklit",
    "noise": "Melu",
    "sensor_gap": "Anturin väli",
    "split": "Jaettu sykli",
    "wrong_profile": "Väärä profiili"
  },
  "toast": {
    "access_saved": "Kulunvalvonta tallennettu",
    "all_wiped": "Kaikki tiedot pyyhitty",
    "analysis_complete_none": "Analyysi valmis: ei uusia ehdotuksia",
    "auto_label_complete": "Automaattinen tarra valmis",
    "automation_deleted": "Automaatio poistettu",
    "correction_submitted": "Oikaisu lähetetty",
    "cycle_deleted": "Jakso poistettu",
    "cycle_force_stopped": "Jakso pysäytetty",
    "cycle_labelled": "Sykli merkitty",
    "cycle_paused": "Jakso keskeytetty",
    "cycle_resumed": "Kierto jatkui",
    "cycle_trimmed": "Pyörä trimmattu",
    "cycles_merged": "Syklit yhdistettiin",
    "envelope_rebuilt": "Kirjekuori uusittu",
    "envelopes_rebuilt": "Kirjekuoret uusittu",
    "export_downloaded": "Vienti ladattu",
    "feedback_all_dismissed": "Kaikki palautteet hylätty",
    "feedback_confirmed": "Palaute vahvistettu",
    "feedback_dismissed": "Palaute hylätty",
    "group_deleted": "Ryhmä poistettu",
    "group_name_required": "Ryhmän nimi vaaditaan",
    "group_saved": "Ryhmä tallennettu",
    "import_successful": "Tuonti onnistui; integroinnin uudelleenlataus",
    "json_required": "JSON-tiedot vaaditaan",
    "legacy_removed": "Vanhat toiminnot poistettu",
    "logs_exported": "Lokit viety",
    "matching_reverted": "Vastaavat painot palautettiin oletusarvoihin",
    "min_2_profiles": "Valitse vähintään 2 profiilia ryhmälle",
    "ml_training_no_improvement": "Harjoittelu suoritettu: lähtötaso pidetty (ei parannusta)",
    "models_reverted": "Laitteessa olevat mallit palautettiin lähtötasolle",
    "name_required": "Nimi vaaditaan",
    "no_split_found": "Tyhjäkäyntiä ei löytynyt halkeamista varten",
    "panel_settings_saved": "Paneelin asetukset tallennettu",
    "phase_name_required": "Vaiheen nimi vaaditaan",
    "phase_updated": "Vaihe päivitetty",
    "phases_saved": "Vaiheet tallennettu",
    "preferences_saved": "Asetukset tallennettu",
    "profile_name_required": "Profiilin nimi vaaditaan",
    "profile_renamed": "Profiili nimetty uudelleen",
    "recording_discarded": "Tallennus hylätty",
    "recording_saved": "Tallenne tallennettu profiiliin",
    "recording_started": "Nauhoitus alkoi",
    "recording_stopped": "Tallennus lopetettiin",
    "review_saved": "Arvostelu tallennettu",
    "settings_conflicts": "Korjaa korostetut asetusten ristiriidat ennen tallentamista.",
    "settings_reverted": "Asetukset palautettu; integroinnin uudelleenlataus",
    "settings_saved": "Asetukset tallennettu; integroinnin uudelleenlataus",
    "suggestions_applied": "Ehdotuksia otettu käyttöön; integroinnin uudelleenlataus",
    "suggestions_dismissed": "Ehdotukset hylätty",
    "apply_failed": "Käyttöönotto epäonnistui: {error}",
    "delete_failed": "Poisto epäonnistui: {error}",
    "load_more_failed": "Lisää ei voitu ladata: {error}",
    "maint_add_failed": "Tapahtuman lisääminen epäonnistui: {error}",
    "maint_added": "Huoltotapahtuma lisätty",
    "maint_delete_failed": "Tapahtuman poisto epäonnistui: {error}",
    "maint_deleted": "Huoltotapahtuma poistettu",
    "relabel_done": "{count} sykli(ä) nimetty uudelleen",
    "relabel_failed": "Uudelleennimeäminen epäonnistui: {error}",
    "reminders_save_failed": "Muistutuksia ei voitu tallentaa: {error}",
    "reminders_saved": "Huoltomuistutukset tallennettu",
    "pause_no_cycle": "Ei aktiivista sykliä tauotettavaksi",
    "resume_no_cycle": "Ei tauotettua sykliä jatkettavaksi",
    "delete_partial_failed": "Joitakin kohteita ei voitu poistaa, ja ne palautettiin",
    "pg_run_gone": "Tätä ajoa ei ole enää saatavilla.",
    "task_cancelled": "Peruutettu.",
    "processed": "Käsitelty {bits}",
    "processed_cycles": "{n} sykliä",
    "processed_suggestions": "{n} ehdotusta",
    "processed_models": "{n} mallia otettu käyttöön",
    "store_search_failed": "Haku epäonnistui: {error}",
    "store_connect_failed": "Yhdistäminen epäonnistui: {error}",
    "store_connected": "Yhdistetty yhteisökauppaan",
    "store_disconnected": "Yhteys yhteisökauppaan katkaistu",
    "store_error": "Virhe: {error}",
    "store_unavailable": "Yhteisökauppa ei ole käytettävissä.",
    "store_pick_profile": "Valitse profiili, johon yhdistetään",
    "store_name_required": "Anna profiilin nimi",
    "store_import_failed": "Tuonti epäonnistui: {error}",
    "store_imported": "Tuotu profiiliin {profile}",
    "store_program_required": "Anna ohjelman nimi",
    "store_no_appliance": "Aseta ensin laitteen merkki ja malli asetuksista.",
    "store_share_failed": "Jakaminen epäonnistui: {error}",
    "store_shared": "Jaettu yhteisökauppaan - odottaa tarkistusta.",
    "appliance_added": "Laite lisätty - odottaa hyväksyntää",
    "thanks_confirming": "Kiitos vahvistuksesta",
    "device_approved": "Yhteisö hyväksyi",
    "rating_saved": "Laatuarvio tallennettu",
    "brand_added": "Merkki lisätty - odottaa hyväksyntää",
    "profile_added": "Profiili lisätty - odottaa hyväksyntää",
    "saved_except_conflicts": "Tallennettu. Korjaa korostetut ristiriidat tallentaaksesi loput.",
    "share_device_none_sel": "Valitse vähintään yksi sykli jaettavaksi",
    "store_device_downloaded": "{p} ohjelma(a), {c} tallennus(ta) lisätty",
    "store_device_downloaded_phases": "{p} ohjelma(a), {c} tallennus(ta), {ph} vaihdekartta(a) lisätty",
    "store_device_downloaded_settings": "{p} ohjelma(a), {c} tallennus(ta), {ph} vaihdekartta(a), {s} asetus(ta) lisätty",
    "store_device_shared": "{n} sykli(ä) jaettu yhteisökauppaan - odottaa tarkistusta.",
    "store_device_shared_all_dup": "Kaikki {n} sykli(ä) olivat jo yhteisökaupassa.",
    "store_device_shared_partial": "{n} sykliä jaettu; {failed} ei voitu ladata.",
    "store_device_shared_some_dup": "{created} sykliä jaettu; {dup} olivat jo kaupassa.",
    "store_download_failed": "Lataus epäonnistui: {error}",
    "store_download_nothing": "Ei uutta ladattavaa - tämä asetus on jo laitteellasi."
  },
  "trend": {
    "down": "Trendikäs alaspäin",
    "up": "Nouseva suunta"
  },
  "maint": {
    "bearing_service": "Laakerihuolto",
    "descale": "Kalkinpoisto",
    "drum_clean": "Puhdista rumpu",
    "filter_clean": "Puhdista suodatin",
    "other": "Muu"
  },
  "col": {
    "profile_tip": "Osunut ohjelman nimi. Merkitsemätön tarkoittaa, ettei yksikään profiili osunut syklin lopussa.",
    "status_tip": "Syklin lopputulos: Valmistunut (luonnollinen loppu), Keskeytynyt (äkillinen tehon lasku), Pakotettu pysäytys (manuaalinen) tai Vaatii tarkistuksen (palaute odottaa).",
    "date_tip": "Syklin alkamispäivä ja -aika.",
    "duration_tip": "Syklin kokonaiskesto alusta loppuun.",
    "energy_tip": "Kulutettu kokonaisenergia (kWh). Laskettu integroimalla teho ajan yli.",
    "cost_tip": "Tämän syklin energiakustannus, lukittu valmistuessa käyttäen silloin voimassa ollutta hintaa (energia x hinta per kWh). Aseta hinta Asetuksista täyttääksesi sen.",
    "confidence_tip": "Profiilin osumaluottamus (0-100%). Kuinka tarkasti syklin tehokäyrä osui tunnistettuun ohjelmaan.",
    "health_tip": "ML-syklin kunto (korkeampi = parempi). Napsauta sykliä tarkastellaksesi ja arvioidaksesi sitä.",
    "flags_tip": "Syklin tarkistus-, poikkeama- ja lähdeliput. Siirrä hiiri kuvakkeen päälle saadaksesi lisätiedot."
  },
  "stat": {
    "avg": "ka.",
    "min": "min {v}",
    "max": "max {v}",
    "consistency": "johdonmukaisuus ±{v}",
    "total": "yhteensä {v}",
    "last_run": "viimeisin ajo {v}",
    "score": "pisteet {pct}%",
    "duration_cv": "keston CV {pct}%",
    "avg_confidence": "ka. luottamus {pct}%"
  },
  "pg_evd": {
    "detected": "Tunnistin havaitsi, että jakso oli alkanut.",
    "match_commit": "Ohjelmantunnistin valitsi ohjelman riittävän varmasti.",
    "match_changed": "Johtava ohjelma vaihtui, kun jaksosta nähtiin enemmän.",
    "match_ambiguous": "Kaksi ohjelmaa sai lähes samat pisteet, joten tunnistus oli epävarma.",
    "unmatched": "Mikään tallennettu ohjelma ei sopinut tähän jaksoon.",
    "notify_start": "Lähetettäisiin aloitusilmoitus.",
    "notify_pre_complete": "Lähetettäisiin lähes valmis -ilmoitus.",
    "notify_finish": "Lähetettäisiin valmistumisilmoitus.",
    "notify_milestone": "Lähetettäisiin välitavoiteilmoitus.",
    "notify_held": "Ilmoitus pidätettiin hiljaisten tuntien vuoksi.",
    "finished": "Jakso saavutti lopputilan ja päättyi."
  },
  "store": {
    "browse": "Selaa",
    "device": "Laite",
    "favorites": "Suosikit",
    "search_ph": "Hae merkin tai mallin mukaan…",
    "no_results": "Vastaavia laitteita ei löytynyt. Kokeile toista hakua.",
    "n_programs": "{n} ohjelmaa",
    "n_cycles": "{n} sykliä",
    "no_programs": "Tälle laitteelle ei ole vielä jaettuja ohjelmia.",
    "no_cycles": "Tälle ohjelmalle ei ole vielä jaettu viitesyklejä.",
    "anon": "anonyymi",
    "uploaded_by": "Jakanut {name}",
    "connected_as": "Yhdistetty käyttäjänä {name}",
    "not_connected": "Ei yhdistetty. Yhdistä GitHub-tili jakaaksesi omia syklejäsi.",
    "import_new": "Uusi profiili",
    "import_merge": "Yhdistä olemassa olevaan",
    "merge_target": "Yhdistä profiiliin",
    "description": "Kuvaus (valinnainen)",
    "contributed_by": "tekijä {name}",
    "rating_summary": "★ {avg} ({n})",
    "no_ratings": "Ei vielä arvioita",
    "website": "Kaupan sivusto ↗",
    "website_tip": "Avaa yhteisökaupan verkkosivusto"
  },
  "settings": {
    "gear": {
      "title": "Asetukset"
    }
  },
  "link": {
    "manual": "Käyttöohje ↗",
    "add_appliance": "Lisää laitteesi"
  },
  "tip": {
    "add_brand": "Merkkiä ei ole listalla? Lisää se yhteisön luetteloon",
    "add_appliance": "Mallia ei ole listalla? Lisää laitteesi yhteisön luetteloon",
    "add_profile": "Lisää profiili tälle laitteelle yhteisösivustolla"
  },
  "task": {
    "reprocess": {
      "matching": "Uudelleenkäsittely: syklien täsmäytys",
      "golden": "Uudelleenkäsittely: vertailujaksojen täydennys",
      "suggestions": "Uudelleenkäsittely: ehdotukset",
      "ml_training": "Uudelleenkäsittely: ML-koulutus",
      "health": "Uudelleenkäsittely: syklien kunto"
    },
    "pg_sweep": {
      "optimize": "Optimointi: {param}"
    },
    "pg_detail": {
      "simulate": "Simuloidaan sykliä"
    },
    "split": {
      "apply": "Jaetaan sykliä"
    },
    "trim": {
      "apply": "Rajataan sykliä"
    },
    "merge": {
      "apply": "Yhdistetään syklejä"
    },
    "rebuild": {
      "envelopes": "Rakennetaan tehoalueita uudelleen"
    },
    "cancelling": "Perutaan..."
  },
  "setup": {
    "hdr": {
      "card": "Laitteen asetukset",
      "healthy_chip": "Asetukset valmiit"
    },
    "phase0": {
      "washer": "WashData tunnistaa jo syklisi. Tallenna ensimmäinen sykli ottaaksesi käyttöön ohjelmanimet ja aikaarviot.",
      "dishwasher": "WashData tarkkailee. Astianpesukoneilla on monimutkaisia syklejä – ensimmäisen syklin tallentaminen on erittäin suositeltavaa. Jos tunnistettu sykli kestää liian kauan, käytä syklin editoria sen leikkaamiseen ennen profiilina tallentamista.",
      "generic": "WashData tarkkailee. Tallenna tai merkitse tunnistettu sykli aloittaaksesi profiilien luomisen."
    },
    "phase1a": {
      "labelled": "Hyvä alku – ensimmäinen ohjelmasi on tallennettu. Puhtaimman datan saamiseksi harkitse seuraavan syklin tallentamista tallennuswidgetillä."
    },
    "phase1b": {
      "recorded": "Tallennuksesi on tallennettu nimellä {profile_name}. Tallenna tai merkitse nyt muut yleisimmät ohjelmasi kattavuuden rakentamiseksi."
    },
    "phase1c": {
      "verify": "Sinulla on {count} ohjelmaa yhteisöltä. Suorita sykli tarkistaaksesi, tunnistaako WashData sen oikein – täsmäytys paranee laitteen kerätessä omaa historiaansa."
    },
    "phase2": {
      "cluster": "WashData on havainnut {count} sykliä, jotka eivät täsmää mihinkään tallennettuun ohjelmaan – ne näyttävät samanlaisilta keskenään. Haluatko luoda niille uuden profiilin?",
      "unmatched": "Viimeisin sykli ei täsmännyt mihinkään tallennettuun ohjelmaan. Onko se uusi ohjelma?"
    },
    "phase3": {
      "suggestions": "WashDatalla on asetussuosituksia syklihistoriasi perusteella – tarkista ne tunnistustarkkuuden parantamiseksi.",
      "groups": "Jotkut profiileistasi näyttävät samalta ohjelmalta eri lämpötiloissa. Järjestä ne ryhmään parempaa täsmäytystä varten.",
      "phases": "Lisää ohjelman vaiheet profiiliin {profile_name} tarkempien jäljellä olevan ajan arvioiden saamiseksi."
    },
    "phase4": {
      "healthy": "Tämä laite on täysin asennettu ({profile_count} profiilia)."
    },
    "cta": {
      "start_recording": "Aloita tallennus",
      "label_detected_cycle": "Minulla on jo tunnistettu sykli – merkitse se sen sijaan",
      "browse_cycles": "Selaa syklejä merkitäksesi toisen",
      "view_profiles": "Näytä profiilit",
      "create_from_cluster": "Luo profiili näistä sykleistä",
      "create_profile": "Luo sille profiili",
      "review_suggestions": "Tarkista ehdotukset",
      "organise_profiles": "Järjestä profiilit",
      "configure_phases": "Määritä vaiheet",
      "skip_step": "Ohita tämä vaihe",
      "skip_forever": "Älä näytä enää",
      "hide_guidance": "Piilota opastus",
      "show_guidance": "Näytä opastus"
    }
  }
}
