{
	"api_kicker": "Kehittäjä-API",
	"api_title": "Rakenna aktiviteetteja omasta järjestelmästäsi",
	"api_intro": "Yksi POST-pyyntö per aktiviteettityyppi. Lähetä sisältösi JSON-muodossa ja saat vastauksena aktiviteetin Puzzel.org-tilillesi sekä URL-osoitteen, jonka voit antaa pelaajille tai upottaa iframeen.",
	"api_search_placeholder": "Hae päätepisteitä, kenttiä ja asetuksia",
	"api_search_results": "osumaa tällä sivulla",
	"api_search_empty": "Tämä ei täsmää mihinkään tällä sivulla. Kokeile päätepisteen nimeä, kenttää kuten activity_key, tai tilakoodia.",
	"api_search_clear": "Tyhjennä haku",
	"api_nav_guide": "Aloitusopas",
	"api_nav_endpoints": "Päätepisteet",
	"api_toc_label": "Tällä sivulla",
	"api_hero_base_label": "Perus-URL",
	"api_hero_method_label": "Metodi",
	"api_hero_method_value": "POST, JSON-runko",
	"api_hero_auth_label": "Todennus",
	"api_hero_auth_value": "Avain + sähköposti rungossa",
	"api_hero_limit_label": "Kiintiö",
	"api_hero_limit_value": "[limit] aktiviteettia päivässä",
	"api_hero_count_label": "Päätepisteet",
	"api_hero_count_value": "[count] aktiviteettityyppiä",
	"api_s_quickstart_title": "Ensimmäinen pyyntösi",
	"api_s_quickstart_body": "Ei asennettavaa eikä kättelyä: lähetä JSON-runko, jossa on avaimesi, sähköpostisi ja sisältösi. Vastaus sisältää uuden aktiviteetin avaimen ja URL-osoitteen, jossa sitä pelataan.",
	"api_s_quickstart_note": "Jokainen tämän sivun esimerkki on täydellinen, suoraan ajettava pyyntö. Vaihda tilalle oma avaimesi ja sisältösi, niin se toimii sellaisenaan.",
	"api_s_auth_title": "Todennus",
	"api_s_auth_body": "Otsikkokenttiä tai bearer-tokenia ei tarvita. Molemmat tunnistetiedot kulkevat jokaisen pyynnön JSON-rungossa, ja avain hyväksytään vain sille tilille, johon kyseinen sähköposti kuuluu.",
	"api_s_auth_where": "Avaimesi löytyy hallintapaneelisi tili-osiosta Näytä-painikkeen takaa.",
	"api_s_auth_where_link": "Avaa API-avaimeni",
	"api_s_auth_premium": "API-avaimia jaetaan tilauksen alkaessa, joten ilmaisella tilillä ei vielä ole sellaista.",
	"api_s_auth_plans": "Katso paketit",
	"api_s_auth_secret": "Käsittele avainta kuin salasanaa. Se luo ja korvaa aktiviteetteja tililläsi, joten pidä se palvelinpuolella ja poissa kaikesta, mitä selain voi lukea.",
	"api_prefill_kicker": "Esimerkit",
	"api_prefill_label": "Täytä esimerkit omalla API-avaimellani",
	"api_prefill_signed_out": "Kirjaudu sisään, niin avaimesi lisätään jokaiseen tämän sivun esimerkkiin.",
	"api_prefill_sign_in": "Kirjaudu sisään",
	"api_prefill_none": "Tällä tilillä ei ole vielä API-avainta.",
	"api_prefill_warning": "Jokainen esimerkki sisältää nyt oikean avaimesi. Älä liitä sitä keskusteluun, issueen tai julkiseen repoon.",
	"api_s_request_title": "Pyynnön runko",
	"api_s_request_body": "Jokainen päätepiste ottaa vastaan samat viisi kenttää. Niiden alla oleva sisältökenttä vaihtelee: useimmat ottavat vastaan taulukollisen items-kohteita, muutamat yhden lauseen tai yhden kuvan, ja sudoku ei ota vastaan mitään.",
	"api_s_request_settings": "settings on objekti, joka sisältää päätepistekohtaiset asetukset. Mitkä niistä kukin päätepiste lukee, on lueteltu sen kohdalla alla; kaikki muu, mitä sinne laitat, jätetään huomiotta.",
	"api_col_field": "Kenttä",
	"api_col_type": "Tyyppi",
	"api_col_notes": "Mitä se tekee",
	"api_col_status": "Tila",
	"api_col_meaning": "Mitä se tarkoittaa",
	"api_required": "pakollinen",
	"api_optional": "valinnainen",
	"api_default_label": "Oletus",
	"api_allowed_label": "Yksi seuraavista",
	"api_in_settings": "asetuksissa",
	"api_f_account_api_key": "Tilisi API-avain. Se annetaan rungossa, ei otsikkokentässä.",
	"api_f_email": "Osoite, jolla Puzzel.org-tilisi kirjautuu sisään. Avain on voimassa vain yhdessä sen kanssa.",
	"api_f_title": "Nimi, jonka aktiviteetti saa hallintapaneelissasi. Jätä se pois, niin päätepiste käyttää omaa oletusnimeään.",
	"api_f_language": "Määrittää vain kielialueen palautettavassa URL-osoitteessa — se ei käännä mitään lähettämästäsi. Sanasokkelo lukee sen myös vaihtaakseen täytekirjaimensa arabiaksi, kun arvo on \"ar\".",
	"api_f_activity_key": "Jätä pois, jos haluat luoda uuden aktiviteetin. Anna jo omistamasi aktiviteetin avain, niin kyseinen aktiviteetti rakennetaan sen sijaan uudelleen.",
	"api_f_sentence_cryptogram": "Salattava lause. Pelaajat purkavat sen merkki kerrallaan.",
	"api_f_sentence_calculation": "Lause, jonka pelaajat paljastavat ratkaisemalla laskut.",
	"api_f_image": "Pilkottavan kuvan absoluuttinen URL-osoite. Lähetetään ylätasolla, ei settings-kentän sisällä.",
	"api_f_image_setting": "Sekoitettavan kuvan absoluuttinen URL-osoite. Toisin kuin palapelissä, tämä sijaitsee settings-kentän sisällä.",
	"api_s_response_title": "Mitä vastauksena tulee",
	"api_s_response_body": "Onnistunut kutsu vastaa koodilla 200 ja palauttaa uuden aktiviteetin avaimen sekä URL-osoitteen, jossa sitä pelataan. Kaikki muu vastaa siten, että success on false, ja mukana on yksi virhemerkkijono.",
	"api_response_success": "Onnistui",
	"api_response_error": "Epäonnistui",
	"api_s_response_urls": "Saamasi url on upotusnäkymä. Vaihda embed sanaan play, niin se avautuu koko sivun näkymässä, tai sanaan build, niin se avautuu editorissa — p=-parametrin jälkeinen avain pysyy samana.",
	"api_s_updating_title": "Luominen vs. päivittäminen",
	"api_s_updating_body": "Lähetä activity_key, niin sen takana oleva aktiviteetti rakennetaan uudelleen paikallaan: sen sisältö korvataan, sen nimi ja versioleima päivitetään, ja itse avain pysyy samana — joten jo jakamasi linkit ja upotukset toimivat edelleen. Tulokset, kansiosijoitus ja jokainen asetus, jota päätepiste ei itse kirjoita, jätetään ennalleen.",
	"api_s_updating_own": "Voit päivittää vain aktiviteetteja, jotka oma tilisi omistaa. Toisen tilin avain vastaa koodilla 403.",
	"api_s_updating_name": "title otetaan käyttöön joka päivityksessä, myös sen oletusarvo — jätä se pois, niin aktiviteetti nimetään uudelleen kyseisen päätepisteen oletusnimeksi.",
	"api_s_updating_settings": "Asetuslohkot, joita päätepiste itse kirjoittaa, kirjoitetaan kokonaan uudelleen, joten päivitys palauttaa myös ne lähettämiisi arvoihin tai päätepisteen oletusarvoihin.",
	"api_s_updating_quota": "Päivitys maksaa saman verran kuin luominen: yhden kutsun tämän päivän kiintiöstä.",
	"api_s_limits_title": "Kutsurajoitus",
	"api_s_limits_body": "Jokainen onnistunut kutsu lasketaan mukaan, sekä luonnit että päivitykset. Jos raja ylittyy, seuraava pyyntö vastaa koodilla 429, kunnes laskuri nollataan.",
	"api_s_limits_counter": "[limit] aktiviteettia tiliä kohden päivässä",
	"api_s_limits_reset": "Laskuri nollataan kerran päivässä ajastetulla tehtävällä, ei liukuvalla 24 tunnin ikkunalla.",
	"api_s_errors_title": "Virheet",
	"api_s_errors_body": "Virheet saapuvat aina JSON-muodossa samoilla kahdella kentällä, ei koskaan HTML-sivuna. Virhemerkkijono on kirjoitettu ihmisen luettavaksi — se nimeää kentän tai rajan, joka ei täyttynyt.",
	"api_err_400": "Jokin rungossa puuttuu, on virheellinen tai ylittää sallitun alueen. Viesti nimeää kentän.",
	"api_err_401": "Sähköposti on tuntematon, tai avain ei kuulu kyseiselle tilille.",
	"api_err_403": "Lähettämäsi activity_key kuuluu toiselle tilille.",
	"api_err_429": "Tämän päivän kiintiö on käytetty loppuun. Se nollautuu kerran päivässä.",
	"api_err_500": "Generaattori ei pystynyt rakentamaan pulmapeliä lähettämästäsi sisällöstä — yleensä liian vähän sanoja tai sanoja, joita ei saada sovitettua yhteen.",
	"api_endpoints_title": "Päätepisteet",
	"api_endpoints_intro": "Yksi polku per aktiviteettityyppi, kaikki POST-pyyntöjä, kaikki saman perus-URL:n alla. Jokaisen kohdalla on lueteltu tarvittava sisältö, luettavat asetukset ja pyyntö, jonka voit ajaa.",
	"api_group_words": "Sanat ja kirjaimet",
	"api_group_cards": "Kortit ja parit",
	"api_group_questions": "Kysymykset ja vastaukset",
	"api_group_text": "Lauseet ja luvut",
	"api_group_images": "Kuvat",
	"api_ep_content_label": "Sisältö",
	"api_ep_settings_label": "Luettavat asetukset",
	"api_ep_settings_none": "Tämä päätepiste ei lue asetuksia.",
	"api_ep_example_label": "Esimerkkipyyntö",
	"api_ep_notes_label": "Hyvä tietää",
	"api_ep_min_items": "Vähintään [count] items-kohdassa",
	"api_ep_no_items": "Ei ota vastaan items-kohteita",
	"api_ep_default_title": "Käyttää oletuksena nimeä “[title]”",
	"api_copy": "Kopioi",
	"api_copied": "Kopioitu",
	"api_toast_copied": "Kopioitu leikepöydälle",
	"api_ep_open_builder": "Avaa editori",
	"api_ep_back_to_top": "Takaisin alkuun",
	"api_e_crossword": "Lomittaa vastauksesi ruudukkoon ja numeroi vihjeet puolestasi.",
	"api_c_crossword": "Taulukko sanoja. Jokainen kohta yhdistää vastauksen siihen viittaavaan vihjeeseen.",
	"api_note_crossword_length": "Alle kaksi merkkiä pitkät vastaukset poistetaan ennen ruudukon rakentamista, ja vähintään kahden on säilyttävä sen jälkeen.",
	"api_note_crossword_layout": "Vastaukset muutetaan isoiksi kirjaimiksi, ja generaattori saa kaksikymmentä yritystä niiden sovittamiseen. Jos se ei saa sijoitettua yhtäkään sanaa, kutsu vastaa koodilla 500.",
	"api_e_wordseeker": "Piilottaa sanasi kirjainruudukkoon valitsemiisi suuntiin ja muotoon.",
	"api_c_wordseeker": "Taulukko sanoja. Vihjeteksti muodostaa sanapankin, jonka pohjalta pelaajat työskentelevät.",
	"api_note_wordseeker_length": "Alle kaksi merkkiä pitkät vastaukset poistetaan, ja jokainen vastaus muutetaan isoiksi kirjaimiksi ennen ruudukkoon lisäämistä.",
	"api_note_wordseeker_arabic": "Ruudukko täytetään latinalaisilla kirjaimilla, ellei language ole \"ar\", jolloin täyte vaihtuu arabiaksi.",
	"api_set_wordseeker_hidden_solution": "Jäljelle jäävät kirjaimet muodostavat tämän. Sen asettaminen kertoo generaattorille myös, että se sovittaa ratkaisun ensin sen sijaan, että se mahduttaisi mahdollisimman monta sanaa.",
	"api_set_wordseeker_directions": "Mihin suuntiin sana saa kulkea. Jätä pois, niin sanat kulkevat vain itään, kaakkoon ja etelään.",
	"api_set_wordseeker_template": "Leikkaa ruudukon muotoon sen sijaan, että se jätettäisiin neliöksi.",
	"api_e_acrostic": "Pinoaa vastauksesi niin, että yksi sarake muodostaa piilotetun sanan.",
	"api_c_acrostic": "Taulukko sanoja. Yhdessä niiden on sisällettävä piilotetun sanan jokainen kirjain.",
	"api_set_acrostic_hidden_solution": "Sana, jonka korostettu sarake muodostaa. Tämä päätepiste ei toimi ilman sitä.",
	"api_note_acrostic_letters": "Jos vastaukset eivät riitä tuottamaan ratkaisun tarvitsemia kirjaimia, kutsu vastaa koodilla 500 sen sijaan, että se tallentaisi puolivalmiin ruudukon.",
	"api_note_acrostic_order": "Generaattori järjestää vastauksesi uudelleen, jotta sarake toimii, joten lähettämäsi järjestys ei ole se, jonka pelaajat näkevät.",
	"api_e_word-scramble": "Sekoittaa jokaisen vastauksen kirjaimet pelaajien selvitettäväksi.",
	"api_c_word-scramble": "Taulukko sanoja. Vihje näytetään sekoitettujen kirjainten vieressä.",
	"api_set_scramble_hidden_solution": "Valinnainen bonussana, jonka pelaajat syöttävät, kun muu on ratkaistu.",
	"api_note_scramble_random": "API:n kautta tehdyissä aktiviteeteissa järjestyksen sekoitus -asetus on aina päällä, joten lähettämäsi järjestys ei ole se, jonka pelaajat saavat.",
	"api_e_hangman": "Muuttaa sanasi tai ilmauksesi kirjaimenarvauskierroksiksi.",
	"api_c_hangman": "Taulukko sanoja tai lyhyitä ilmauksia. Vihje on se, minkä pelaajat näkevät.",
	"api_e_wordle": "Tekee jokaisesta lähettämästäsi sanasta sananarvauspelin.",
	"api_c_wordle": "Taulukko sanoja. Pelaajat saavat yhden kierroksen per sana.",
	"api_note_wordle_dictionary": "Tehty niin, että arvausten tarkistus oikeiksi sanoiksi -asetus on päällä. Kytke se pois editorissa, jos sanasi ovat nimiä tai keksittyjä.",
	"api_e_typing-practice": "Muuttaa lauseet näppäilyharjoituksiksi.",
	"api_c_typing-practice": "Taulukko kirjoitettavia sanoja tai lauseita. Vihjekenttä toimii myös ohjeena.",
	"api_e_wheel-of-fortune": "Täyttää pyörivän onnenpyörän omilla lohkoillasi.",
	"api_c_wheel-of-fortune": "Taulukko lohkoja. Jokaisesta vastauksesta tulee yksi pyörän siivu.",
	"api_note_wheel_outcome": "Tehty asetuksella “näytä tulos vain pyörässä”, joten tulos luetaan pyörästä sen sijaan, että se ilmoitettaisiin sen vierellä.",
	"api_e_memory": "Pöytään käännettyjä kortteja, jotka käännetään ja yhdistetään pareiksi.",
	"api_c_memory": "Taulukko pareja. Jokainen pari sisältää kaksi yhteenkuuluvaa korttia.",
	"api_note_cards_media": "Kortti on objekti, jolla on type ja value. Käytä arvoa \"text\" sanoille, tai \"image\", \"audio\", \"youtube\" tai \"link\" siten, että value sisältää URL-osoitteen, ja lisää alt kuvausta varten.",
	"api_e_matching-pairs": "Kaksi korttisaraketta, jotka vedetään yhteen.",
	"api_c_matching-pairs": "Taulukko pareja. Jokaisen parin ensimmäinen kortti sijoittuu toiselle puolelle, sen pari toiselle.",
	"api_e_flash-cards": "Kaksipuolisia kortteja selattavaksi.",
	"api_c_flash-cards": "Taulukko kortteja. Ensimmäinen kortti on etupuoli, toinen on takapuoli.",
	"api_note_flashcards_sides": "Päätepiste tallentaa täsmälleen niin monta korttia kuin lähetät, joten lähetä täsmälleen kaksi per kohta — ensin etupuoli, sitten takapuoli.",
	"api_e_categorize": "Kortteja lajiteltavaksi niille kuuluvaan kategoriaan.",
	"api_c_categorize": "Taulukko kategorioita, joista jokaisella on nimi ja siihen kuuluvat kortit.",
	"api_note_categorize_name": "Ilman nimeä lähetetty kategoria tallennetaan nimellä “Untitled Category”, joten lähetä nimi aina.",
	"api_e_reorder": "Järjestys, jonka pelaajat palauttavat oikeaksi.",
	"api_c_reorder": "Taulukko järjestyksiä. Jokainen sisältää korttinsa oikeassa järjestyksessä.",
	"api_note_reorder_order": "Lähettämäsi järjestys tallennetaan oikeana järjestyksenä — numero yksi ensin.",
	"api_e_quiz": "Monivalinta- ja avoimia kysymyksiä, joista pisteet lasketaan pelin edetessä.",
	"api_c_quiz": "Taulukko kysymyksiä. Monivalintakysymyksillä on omat vastausvaihtoehtonsa; avoimilla kysymyksillä on hyväksymäsi vastaus.",
	"api_note_question_types": "question_type on joko \"multiple_choice\", jolloin oikealla vaihtoehdolla on isCorrect true, tai \"open_answer\", joka käyttää sen sijaan kenttää correct_answer. Jos se jätetään pois, sitä käsitellään monivalintana.",
	"api_note_quiz_settings": "Quiz-päätepiste välittää settings-kentän suoraan aktiviteetin asetuslohkoiksi, joten se ei ole paikka irrallisille valinnoille — säädä quiz jälkikäteen editorissa.",
	"api_e_board-game": "Lauta, jonka poikki kilpaillaan, kysymyksesi ruuduissa.",
	"api_c_board-game": "Taulukko kysymyksiä, täsmälleen samassa muodossa kuin quiz-päätepiste ottaa vastaan.",
	"api_set_board_tiles": "Kuinka monta ruutua laudalla on. Väliltä 10–75.",
	"api_set_board_mode": "Kilpailevatko pelaajat maaliin vai keräävätkö he esineitä matkan varrella.",
	"api_e_cryptogram": "Muuttaa lauseen murrettavaksi koodiksi, yksi merkki kerrallaan.",
	"api_c_cryptogram": "Yksi lause sentence-kentässä. Tämä päätepiste ei ota vastaan items-kohteita.",
	"api_note_cryptogram_no_items": "Kaikki, mitä lähetät kohdassa items, jätetään huomiotta — pulmapeli rakennetaan pelkästä lauseesta.",
	"api_set_cryptogram_helpers": "Mitkä merkit annetaan ilmaiseksi avuksi alkuun: ei mitään, yleisimmät, vokaalit tai itse luettelemasi.",
	"api_set_cryptogram_character_list": "Aakkosto, josta salakirjoitus rakennetaan. Jos jätetään tyhjäksi, salaus valitsee omansa.",
	"api_set_cryptogram_extra_letters": "Merkit, jotka annetaan, kun helpers on \"custom\". Jätetään huomiotta muissa aputiloissa.",
	"api_set_cryptogram_hide_unused": "Jättää avaimen ulkopuolelle merkit, joita lause ei koskaan käytä.",
	"api_e_calculation": "Piilottaa lauseen laskujen taakse — ratkaise lasku, paljasta kirjain.",
	"api_c_calculation": "Yksi lause sentence-kentässä. Tämä päätepiste ei ota vastaan items-kohteita.",
	"api_set_calc_difficulty": "Suurin sallittu vastaus, joka laskulla saa olla.",
	"api_set_calc_operators": "Mitkä laskutoimitukset voivat esiintyä. x on kertolasku, : on jakolasku.",
	"api_set_calc_max_operations": "Kuinka monta laskutoimitusta yksi lasku voi ketjuttaa yhteen.",
	"api_set_calc_number_difficulty": "Rajoittaa laskun yksittäisiä lukuja. Väliltä 5–1000.",
	"api_note_calculation_fit": "Jos rajoitukset ovat liian tiukat lauseen koodaamiseen, kutsu vastaa koodilla 400 ja pyytää löysäämään niitä sen sijaan, että se tallentaisi keskeneräisen pulmapelin.",
	"api_e_sudoku": "Luo ratkaistun ruudukon ja poistaa siitä sitten numeroita.",
	"api_c_sudoku": "Ei mitään. Koko pulmapeli syntyy sen kahdesta asetuksesta.",
	"api_note_sudoku_no_items": "Älä lähetä items-kohteita äläkä lausetta — size ja difficulty ovat koko syöte.",
	"api_note_sudoku_difficulty_sizes": "Editori tarjoaa vaikeustason vain kooille 2x3, 3x3 ja 3x4. API soveltaa sitä jokaiseen kokoon, mukaan lukien 2x2 ja 4x4.",
	"api_set_sudoku_size": "Yhden lohkon koko, kirjoitettuna rivit kertaa sarakkeet — 3x3 antaa klassisen 9x9-ruudukon. Päätepiste vain tarkistaa, että se jäsentyy kahdeksi luvuksi, joten pysy editorin tarjoamissa koissa.",
	"api_set_sudoku_difficulty": "Kuinka monta numeroa jätetään laudalle lähtökohdaksi.",
	"api_e_jigsaw": "Leikkaa kuvan palasiksi, jotka vedetään takaisin yhteen.",
	"api_c_jigsaw": "Yksi kuvan URL-osoite image-kentässä. Tämä päätepiste ei ota vastaan items-kohteita.",
	"api_note_jigsaw_grid": "API tekee aina 4x4-palapelin. Palojen määrä, epäsäännölliset palat ja suorat reunat ovat editorin asetuksia — rivien tai sarakkeiden lähettäminen tässä ei tee mitään.",
	"api_note_image_reachable": "URL-osoite tallennetaan sellaisenaan kuin lähetit sen, eikä tiedostoa koskaan kopioida, joten sen on pysyttävä julkisesti saatavilla niin kauan kuin aktiviteettia pelataan.",
	"api_e_slidingpuzzle": "Sekoittaa kuvan ruutuihin, jotka liu'utetaan paikoilleen.",
	"api_c_slidingpuzzle": "Yksi kuvan URL-osoite settings-kentän sisällä. Tämä päätepiste ei ota vastaan items-kohteita.",
	"api_note_sliding_image_slot": "Toisin kuin palapeli, tämä päätepiste lukee kuvansa kohdasta settings.image. Ylätason image-kenttä jätetään huomiotta, ja kutsu vastaa koodilla 400.",
	"api_help_title": "Jokin ei toimi odotetusti?",
	"api_help_body": "Lähetä pyyntö, jota kokeilit, ja virhe, jonka sait vastaukseksi, niin saat oikean vastauksen henkilöltä, joka kirjoitti päätepisteen.",
	"api_help_cta": "Lähetä sähköpostia tukeen",
	"api_int_kicker": "Kehittäjän integraatiot",
	"api_int_title": "Yhdistä Puzzel omaan alustaasi",
	"api_int_intro": "Puzzel voi antaa pelaajan tuloksen suoraan toiselle järjestelmälle — pistemäärän, etenemisen, vastatut kysymykset — ilman että kyseisen järjestelmän tarvitsee olla täysi LMS. Tämä sivu käy läpi jokaisen kanavan: mitä lähtee ulos, milloin se lähtee, ja pienimmän asian, joka sinun täytyy rakentaa sen vastaanottamiseksi.",
	"api_int_hero_out_label": "Tulokset lähtevät",
	"api_int_hero_out_value": "Webhookin kautta, tai viestinä aktiviteettia ympäröivälle sivulle",
	"api_int_hero_in_label": "Sivusi voi",
	"api_int_hero_in_value": "Kirjata pelaajan sisään ja nollata aktiviteetin",
	"api_int_hero_where_label": "Otetaan käyttöön",
	"api_int_hero_where_value": "Aktiviteettikohtaisesti, editorin Kehittäjä-valikossa",
	"api_int_hero_plan_label": "Sisältyy",
	"api_int_hero_plan_value": "Maksulliseen pakettiin — nämä asetukset ovat pois päältä ilmaisella tilillä",
	"api_int_search_placeholder": "Hae kanavia, kenttiä ja esimerkkejä",
	"api_int_search_empty": "Mikään tällä sivulla ei vastaa hakuasi. Kokeile kanavaa kuten webhook tai postMessage, tai kenttää kuten progress.",
	"api_int_nav_channels": "Kanavat",
	"api_int_s_choose_title": "Minkä kanavan tarvitset?",
	"api_int_s_choose_body": "Kolme asiaa voi lähteä aktiviteetista ulos ja yksi voi tulla sisään. Kumpi sopii, riippuu yhdestä kysymyksestä: istuuko pelaaja sinun sivullasi vai jossain aivan muualla?",
	"api_int_choose_out": "Puzzelista ulos",
	"api_int_choose_in": "Puzzeliin sisään",
	"api_int_choose_when": "Käytä tätä, kun",
	"api_int_choose_needs": "Tarvitset",
	"api_int_choose_setting": "Asetus",
	"api_int_ch_webhook_name": "Tulosten webhook",
	"api_int_ch_webhook_summary": "Jokainen tallennettu tulos lähetetään POST-pyynnöllä omistamaasi URL-osoitteeseen JSON-muodossa.",
	"api_int_ch_webhook_when": "Pelaaja voi olla missä tahansa — jaetussa linkissä, QR-koodissa, jonkun toisen sivustolla — ja haluat tuloksen omaan tietokantaasi.",
	"api_int_ch_webhook_needs": "HTTPS-päätepisteen, joka hyväksyy cross-origin-POST-pyynnön.",
	"api_int_ch_parent_name": "Tulokset sen ympäröivälle sivulle",
	"api_int_ch_parent_summary": "Sama JSON, lähetettynä aktiviteetin upottavalle sivulle palvelimen sijaan.",
	"api_int_ch_parent_when": "Upotat aktiviteetin omalle kurssisivullesi ja sivu itse voi tehdä jotain tuloksella.",
	"api_int_ch_parent_needs": "Iframen sivullasi ja viestikuuntelijan. Ei palvelinta, ei CORSia.",
	"api_int_ch_completion_name": "Valmistumissignaali",
	"api_int_ch_completion_summary": "Yksi viesti, kun pelaaja lopettaa, eikä se sisällä muuta kuin tämän tiedon.",
	"api_int_ch_completion_when": "Haluat tietää vain, onko pelaaja valmis — merkitäksesi oppitunnin suoritetuksi, avataksesi seuraavan tai näyttääksesi oman näkymäsi.",
	"api_int_ch_completion_needs": "Iframen sivullasi ja viestikuuntelijan.",
	"api_int_ch_trigger_name": "Nollaus sivultasi",
	"api_int_ch_trigger_summary": "Sivusi käskee upotettua aktiviteettia tyhjentämään pelaajan vastaukset ja aloittamaan alusta.",
	"api_int_ch_trigger_when": "Sinulla on oma \"yritä uudelleen\" -painike aktiviteetin ulkopuolella.",
	"api_int_ch_trigger_needs": "Iframen sivullasi. Viesti hyväksytään vain sivulta, joka upottaa aktiviteetin.",
	"api_int_s_webhook_title": "Tulosten webhook",
	"api_int_s_webhook_body": "Kytke editorissa päälle \"Lähetä tulokset webhookiin\" ja anna sille URL-osoite. Siitä lähtien pelaajan selain lähettää koko tuloksen POST-pyynnöllä kyseiseen osoitteeseen JSON-muodossa aina, kun pelaajan eteneminen tallennetaan.",
	"api_int_webhook_steps_title": "Käyttöönotto",
	"api_int_webhook_step_1": "Avaa aktiviteetti editorissa ja siirry Kehittäjä-valikkoon.",
	"api_int_webhook_step_2": "Kytke päälle \"Lähetä tulokset webhookiin\" ja liitä päätepisteesi sen alla olevaan kenttään. Sen täytyy olla täydellinen URL-osoite — pelkkä verkkotunnus hylätään — ja sen täytyy olla https, koska selain estää tavallisen http-kutsun sivulta, joka on tarjottu https:n kautta.",
	"api_int_webhook_step_3": "Pelaa aktiviteettia itse kerran. Ensimmäinen POST-pyyntö saapuu heti, kun vastaat johonkin.",
	"api_int_webhook_receiver": "Vastaanottaja alusta loppuun",
	"api_int_webhook_timing_title": "Se laukeaa pelin aikana, ei vasta lopussa",
	"api_int_webhook_timing_body": "Tulos lähtee ulos aina, kun merkintä tallennetaan: kirjoittamisen tauon jälkeen, kun kortti asetetaan paikalleen, kun kello pysähtyy, ja vielä kerran, kun aktiviteetti on valmis. Pitkässä sanaristikossa kutsuja kertyy pari kymmentä, ei yhtä — kirjoita siis käsittelijäsi upsertiksi, jonka avaimena on playerUid ja activityKey, älä lisäykseksi. Jokainen kutsu kantaa mukanaan koko tilan, joten uusin korvaa aina edellisen, ja kadonneen kutsun korjaa seuraava.",
	"api_int_webhook_finished_title": "Miten erottaa valmistuminen tallennuksesta",
	"api_int_webhook_finished_body": "progress on prosenttiluku: 100 tarkoittaa, että aktiviteetti on valmis. Muutama tyyppi voi päättyä saavuttamatta sitä — kokonaan vastattu Quiz, ratkaistu ratkaisukenttä — ja niissä on sen sijaan hasAlternateCompletion. Kohtele kumpaakin valmiina.",
	"api_int_webhook_cors_title": "Sen lähettää pelaajan selain",
	"api_int_webhook_cors_body": "POST-pyyntö tulee välilehdeltä, jolla aktiviteettia pelataan, ei Puzzelin palvelimelta. Useimmat webhookeja vastaanottamaan rakennetut päätepisteet hyväksyvät sen jo valmiiksi. Jos omasi ei koskaan näe pyyntöä, tämä on syy: selain kysyy luvan ensin, joten vastaa OPTIONS-esitarkistukseen Access-Control-Allow-Origin-otsakkeella, niin varsinainen POST seuraa perässä.",
	"api_int_webhook_trust_title": "Kohtele hyötykuormaa väitteenä, ei todisteena",
	"api_int_webhook_trust_body": "Pyynnössä ei ole allekirjoitusta, ja se tulee selaimesta, jota et hallitse, joten kuka tahansa sivua katsova voi lähettää sinulle samanlaisen. Se riittää edistymispalkkiin tai hallintapaneeliin. Kaikkea, mitä et antaisi oppilaan itse asettaa — laskettavaa arvosanaa, todistusta, maksua — varten tarkista se omasta Puzzel-hallintapaneelistasi löytyviä tuloksia vasten, tai anna pistemäärän kulkea sen sijaan LMS-arvosanaliitäntöjen kautta.",
	"api_int_s_parent_title": "Tulokset sen ympäröivälle sivulle",
	"api_int_s_parent_body": "Jos upotat aktiviteetin, voit lähettää saman JSON:n omalle sivullesi palvelimen sijaan. Kytke päälle \"Lähetä tulokset upottavalle sivulle\" ja kuuntele viestiä. Mikään ei poistu selaimesta, joten päätepistettä ei tarvitse rakentaa eikä CORSia tarvitse miettiä.",
	"api_int_parent_origin_title": "Tarkista, mistä viesti tuli",
	"api_int_parent_origin_body": "Kuuntelijasi kuulee jokaisen sivulle lähetetyn viestin, myös muilta kehyksiltä ja selainlaajennuksilta. Vertaa event.origin-arvoa osoitteeseen https://puzzel.org ennen kuin luotat sen sisältöön.",
	"api_int_parent_same_title": "Sama hyötykuorma, sama ajoitus",
	"api_int_parent_same_body": "Tämä on webhookin kaksoisolento: samat kentät, lähetettynä samoina hetkinä. Kaikki kohdassa \"Mitä tulos sisältää\" pätee myös tähän.",
	"api_int_s_completion_title": "Valmistumissignaali",
	"api_int_s_completion_body": "Pienin kanava, kun itse tulos ei kuulu sinulle: kytke päälle \"Lähetä valmistumissignaali\", ja sivusi saa yhden viestin heti, kun pelaaja lopettaa.",
	"api_int_completion_shape": "Mitä saapuu",
	"api_int_completion_order_title": "Tulos on jo tallennettu, kun signaali saapuu",
	"api_int_completion_order_body": "Signaali lähetetään tarkoituksella vasta, kun valmistumiseen johtanut tallennus on tehty, joten sivu, joka reagoi lukemalla tuloksen takaisin, löytää sen jo sieltä.",
	"api_int_completion_embed_title": "Vain iframen sisällä",
	"api_int_completion_embed_body": "Molemmat viestikanavat lähettävät viestin sivulle, joka kehystää aktiviteetin. Omalla välilehdellä avattuna kellekään ei ole ketä kertoa, joten mitään ei lähetetä.",
	"api_int_s_payload_title": "Mitä tulos sisältää",
	"api_int_s_payload_body": "Yksi muoto, kanavasta riippumatta. Pelaajan vastausten avaimina toimivat aktiviteetin omat kohdetunnisteet, joten samat avaimet löytyvät myös kohteesta correctUids.",
	"api_int_col_when": "Milloin se on mukana",
	"api_int_always": "aina",
	"api_int_sometimes": "joskus",
	"api_int_payload_absent_title": "Puuttuu, ei ole tyhjä",
	"api_int_payload_absent_body": "Kenttä, joka ei sovellu, jätetään pois JSON:sta sen sijaan, että se lähetettäisiin null-arvona tai nollana. Näin tyyppi, joka ei pisteytä pelikertaa, erotetaan pelikerrasta, joka pisteytyi nollaan — lue siis oletusarvolla äläkä koskaan oleta, että avain on olemassa.",
	"api_int_payload_example": "Valmis Quiz, sellaisena kuin se saapuu",
	"api_int_f_activity_key": "Aktiviteetti, johon tulos kuuluu. Sama avain, jonka näet aktiviteetin omassa URL-osoitteessa, kohdan ?p= jälkeen.",
	"api_int_f_player_uid": "Kuka pelasi, anonyyminä tunnisteena. Pysyy samana tälle pelaajalle tällä laitteella, joten juuri sen mukaan tulokset kannattaa ryhmitellä — se ei ole sähköpostiosoite eikä Puzzel-tili.",
	"api_int_f_player": "Rekisteröitymiskentät, joita aktiviteetti kysyy, sellaisina kuin määritit ne: nimi, sähköposti, luokka, student_id ja niin edelleen. Puuttuu, kunnes pelaaja on rekisteröitynyt, ja puuttuu kokonaan aktiviteetista, joka ei kysy mitään.",
	"api_int_f_progress": "Kuinka pitkälle on edetty, prosentteina. 100 tarkoittaa valmista.",
	"api_int_f_time_passed": "Aktiviteetissa käytetty aika, millisekunteina.",
	"api_int_f_last_played_at": "Milloin tämä tulos tallennettiin, Unix-aikaleimana millisekunteina.",
	"api_int_f_created": "Milloin yritys aloitettiin, Unix-aikaleimana millisekunteina.",
	"api_int_f_player_input": "Mitä pelaaja todella syötti, ryhmiteltynä sen kohteen tunnisteen mukaan, johon syöte kuuluu. Sisällön muoto riippuu aktiviteettityypistä — sana, sijoitettujen korttien luettelo, valittu vaihtoehto.",
	"api_int_f_correct_uids": "Mitkä näistä kohteista ovat oikein, ryhmiteltynä samalla tavalla. Puuttuu, kun mihinkään ei ole vielä vastattu.",
	"api_int_f_score": "Saadut pisteet, tyypeillä, jotka pisteyttävät pelikerran. Puuttuu kaikkialla muualla — myös pelikerrasta, joka aidosti sai nolla pistettä, joten tarkista avaimen olemassaolo ennen kuin luet sen.",
	"api_int_f_performance": "Tyypin oma mittari sille, kuinka hyvin meni, jos sellainen on käytössä — esimerkiksi sanaa minuutissa näppäilyharjoituksessa.",
	"api_int_f_attempts": "Monesko yritys tämä on: 1 ensimmäisellä kerralla, yksi lisää joka uudella aloituksella. Vain tyypeillä, jotka päättävät pelikerran kesken ja laskevat uusintayritykset.",
	"api_int_f_knocked_out": "Pelikerta päättyi väärään vastaukseen ja on ohi tulematta valmiiksi.",
	"api_int_f_alternate": "Aktiviteetti saatiin valmiiksi tavalla, joka ei yllä 100 %:iin — kokonaan vastattu Quiz, ratkaistu ratkaisukenttä. Kohtele sitä valmistumisena.",
	"api_int_f_missed_keys": "Merkit, joissa pelaaja jatkuvasti erehtyi, eniten erehdytty ensin. Vain näppäilyharjoituksessa.",
	"api_int_f_content_version": "Mitä versiota aktiviteetin sisällöstä vastaan tätä pelattiin. Se muuttuu, kun omistaja muokkaa kysymyksiä, joten vanha tulos erottuu tuoreesta.",
	"api_int_s_control_title": "Aktiviteetin nollaaminen sivultasi",
	"api_int_s_control_body": "Yksi komento kulkee toiseen suuntaan. Kun \"Hyväksy komennot upottavalta sivulta\" on kytketty päälle, upottava sivu voi tyhjentää pelaajan vastaukset ja palauttaa aktiviteetin alkuun — omaa \"yritä uudelleen\" -painiketta varten kehyksen ulkopuolella.",
	"api_int_control_only_title": "Nollaus on ainoa komento",
	"api_int_control_only_body": "Tuloksen lähettämiselle, lopetusviestin avaamiselle tai kysymykseen hyppäämiselle ei ole viestiä. Viesti, joka pyytää muuta kuin nollausta, jätetään huomiotta.",
	"api_int_control_guard_title": "Vain upottavaa sivua kuunnellaan",
	"api_int_control_guard_body": "Komento hyväksytään vain sivulta, joka kehystää aktiviteetin, eikä mistään muualta — ei sisarkehykseltä, ei sivulla olevalta skriptiltä. Asetus on oletuksena pois päältä, joten kytke se päälle niille aktiviteeteille, joita ohjaat.",
	"api_int_s_identity_title": "Oman pelaajaidentiteetin tuominen mukaan",
	"api_int_s_identity_body": "Jos alustasi jo tietää, kuka pelaa, aktiviteetin ei tarvitse kysyä sitä uudelleen. Kaksi kättelyä on olemassa, molemmat sivullesi upotettua aktiviteettia varten, ja molemmat me kytkemme päälle emmekä sinä editorista — ne muuttavat sen, kenelle tulos kuuluu, joten ne otetaan käyttöön yhdessä kanssasi, ei valintaruudusta.",
	"api_int_identity_pm_title": "Lähetä pelaaja meille",
	"api_int_identity_pm_body": "Aktiviteetti ilmoittautuu viestillä 'app-loaded' ja odottaa. Sivusi lähettää pelaajan tiedot takaisin, ja tulos tallennetaan hänen nimiinsä ilman, että pelaaja kirjoittaa mitään tai näkee rekisteröitymisnäyttöä.",
	"api_int_identity_sso_title": "Lähetä meille tunniste",
	"api_int_identity_sso_body": "Sama kättely, mutta sivusi lähettää identiteetintarjoajasi myöntämän JWT:n itse kenttien sijaan. Vahvistamme sen tilillesi määritettyjä myöntäjiä vasten, ennen kuin pelaaja päästetään sisään, joten identiteetti todistetaan eikä vain väitetä — tämä on se, jota kannattaa pyytää, kun tuloksen täytyy olla luotettava.",
	"api_int_identity_cta_title": "Pyydä meitä kytkemään se päälle",
	"api_int_identity_cta_body": "Kerro, kumman näistä kahdesta haluat ja mihin aktiviteetit upotetaan, niin otamme tilisi käyttöön ja käymme sen läpi kanssasi.",
	"api_int_identity_cta_button": "Lähetä meille sähköpostia identiteetistä",
	"api_int_s_create_title": "Aktiviteettien luominen omasta järjestelmästäsi",
	"api_int_s_create_body": "Kaikki edellä on tuloksesta, joka tulee ulos. Toiseen suuntaan — aktiviteettien tekeminen sisällöstä, joka sinulla jo on — on Puzzle API: yksi POST per aktiviteettityyppi, ja saat takaisin avaimen ja upotettavan URL-osoitteen.",
	"api_int_create_link": "Lue API-viitedokumentaatio",
	"api_int_s_lms_title": "Kun valmis liitäntä on parempi vastaus",
	"api_int_s_lms_body": "Jos toisella puolella on oikea LMS, et todennäköisesti tarvitse mitään tästä. Arvosanat voivat palautua sen arvosanataulukkoon itsestään, eikä sinun tarvitse isännöidä mitään.",
	"api_int_lms_lti_title": "Moodle, Canvas, Brightspace, Schoology, itslearning",
	"api_int_lms_lti_body": "Käynnistetään LMS:n sisältä, ja pistemäärä kirjoitetaan takaisin sen arvosanataulukkoon.",
	"api_int_lms_gc_title": "Google Classroom",
	"api_int_lms_gc_body": "Julkaise aktiviteetti tehtävänä ja anna arvosanojen palautua automaattisesti.",
	"api_int_lms_not_title": "Ei mikään noista?",
	"api_int_lms_not_body": "Kurssialustat, jäsensivustot, intranetit ja mikä tahansa itse rakentamasi järjestelmä ovat juuri sitä varten, mitä tämän sivun kanavat tarjoavat. Upotus ja valmistumissignaali kattavat suurimman osan siitä.",
	"api_int_s_limits_title": "Mitä ei ole",
	"api_int_s_limits_body": "Ettet turhaan etsi näitä:",
	"api_int_limit_no_read": "Ei päätepistettä tulosten lukemiseen takaisin. API luo aktiviteetteja; tulokset lähtevät tämän sivun kanavien kautta tai hallintapaneelisi vientien kautta.",
	"api_int_limit_no_signature": "Ei allekirjoitusta webhookissa. Ei ole mitään, mitä vasten pyyntö voisi tarkistaa, minkä vuoksi tuloksen ei pitäisi olla ainoa asia, joka kannattelee jotain tärkeää.",
	"api_int_limit_per_activity": "Ei tilinlaajuista webhookia. URL-osoite on aktiviteettikohtainen asetus, joten kopioimasi aktiviteetti kuljettaa sen mukanaan, ja uusi aktiviteetti aloittaa ilman sitä.",
	"api_int_limit_no_multiplayer": "Ei mitään joukkuepelissä tai livehuoneessa. Molemmat viestikanavat ja webhook on tarkoitettu yksinpeliin, ja asetukset kytkeytyvät itse pois päältä, kun moninpeli on käytössä.",
	"api_int_limit_no_retry": "Ei toimitusjonoa. Mitään ei tallenneta ja lähetetä uudelleen — seuraava tallennus on uusintayritys, ja pelikerran viimeinen kutsu on se, joka ratkaisee.",
	"api_nav_integrations": "Tulosten tuominen ulos"
}
