{
	"api_kicker": "Utvecklar-API",
	"api_title": "Bygg aktiviteter från ditt eget system",
	"api_intro": "En POST per aktivitetstyp. Skicka ditt innehåll som JSON och få tillbaka en aktivitet i ditt Puzzel.org-konto samt en URL du kan ge till spelare eller lägga in i en iframe.",
	"api_search_placeholder": "Sök efter endpoints, fält och inställningar",
	"api_search_results": "som matchar den här sidan",
	"api_search_empty": "Inget på den här sidan matchar det. Prova ett endpointnamn, ett fält som activity_key, eller en statuskod.",
	"api_search_clear": "Rensa sökning",
	"api_nav_guide": "Kom igång",
	"api_nav_endpoints": "Endpoints",
	"api_toc_label": "På den här sidan",
	"api_hero_base_label": "Bas-URL",
	"api_hero_method_label": "Metod",
	"api_hero_method_value": "POST, JSON-body",
	"api_hero_auth_label": "Autentisering",
	"api_hero_auth_value": "Nyckel + e-post i body",
	"api_hero_limit_label": "Kvot",
	"api_hero_limit_value": "[limit] aktiviteter per dag",
	"api_hero_count_label": "Endpoints",
	"api_hero_count_value": "[count] aktivitetstyper",
	"api_s_quickstart_title": "Ditt första anrop",
	"api_s_quickstart_body": "Inget att installera och ingen handskakning: skicka en JSON-body med din nyckel, din e-post och ditt innehåll. Svaret innehåller den nya aktivitetens nyckel och URL:en den spelas på.",
	"api_s_quickstart_note": "Varje exempel på den här sidan är ett komplett, körbart anrop. Byt ut mot din egen nyckel och ditt eget innehåll så fungerar det direkt.",
	"api_s_auth_title": "Autentisering",
	"api_s_auth_body": "Det finns inga headers och ingen bearer-token. Båda uppgifterna skickas i JSON-bodyn i varje anrop, och nyckeln accepteras bara för kontot som e-postadressen tillhör.",
	"api_s_auth_where": "Din nyckel finns under kontodelen av instrumentpanelen, bakom Visa.",
	"api_s_auth_where_link": "Öppna min API-nyckel",
	"api_s_auth_premium": "API-nycklar delas ut när en prenumeration startar, så ett gratiskonto har ingen ännu.",
	"api_s_auth_plans": "Se paketen",
	"api_s_auth_secret": "Behandla nyckeln som ett lösenord. Den skapar och skriver över aktiviteter i ditt konto, så håll den på serversidan och borta från allt en webbläsare kan läsa.",
	"api_prefill_kicker": "Exempel",
	"api_prefill_label": "Fyll i exemplen med min egen API-nyckel",
	"api_prefill_signed_out": "Logga in så läggs din nyckel in i alla exempel på den här sidan.",
	"api_prefill_sign_in": "Logga in",
	"api_prefill_none": "Ingen API-nyckel på det här kontot ännu.",
	"api_prefill_warning": "Varje exempel innehåller nu din riktiga nyckel. Klistra inte in den i en chatt, ett ärende eller ett publikt repo.",
	"api_s_request_title": "Anropets body",
	"api_s_request_body": "Varje endpoint tar samma fem fält. Det som skiljer är innehållsfältet under dem: de flesta tar en array av items, några tar en mening eller en bild, och sudoku tar ingenting alls.",
	"api_s_request_settings": "settings är ett objekt med alternativ per endpoint. Vilka en endpoint läser listas nedan för respektive endpoint; allt annat du lägger där ignoreras.",
	"api_col_field": "Fält",
	"api_col_type": "Typ",
	"api_col_notes": "Vad det gör",
	"api_col_status": "Status",
	"api_col_meaning": "Vad det betyder",
	"api_required": "obligatoriskt",
	"api_optional": "valfritt",
	"api_default_label": "Standard",
	"api_allowed_label": "En av",
	"api_in_settings": "i settings",
	"api_f_account_api_key": "Ditt kontos API-nyckel. Den skickas i body, inte i en header.",
	"api_f_email": "Adressen ditt Puzzel.org-konto loggar in med. Nyckeln är bara giltig tillsammans med den.",
	"api_f_title": "Namnet aktiviteten får i instrumentpanelen. Utelämna det så använder endpointen sitt eget standardnamn.",
	"api_f_language": "Avgör bara språket i URL:en du får tillbaka — det översätter inget du skickar. Ordsök läser det också för att växla sina utfyllnadsbokstäver till arabiska när det är \"ar\".",
	"api_f_activity_key": "Utelämna det för att skapa en ny aktivitet. Skicka nyckeln till en du redan äger så byggs den aktiviteten om istället.",
	"api_f_sentence_cryptogram": "Meningen som ska krypteras. Spelarna avkodar den tecken för tecken.",
	"api_f_sentence_calculation": "Meningen spelarna avslöjar genom att lösa uträkningarna.",
	"api_f_image": "Absolut URL till bilden som ska delas upp i bitar. Skickas på toppnivå, inte inuti settings.",
	"api_f_image_setting": "Absolut URL till bilden som ska blandas. Till skillnad från bitpusslets ligger den här inuti settings.",
	"api_s_response_title": "Vad du får tillbaka",
	"api_s_response_body": "Ett lyckat anrop svarar 200 med den nya aktivitetens nyckel och URL:en den spelas på. Allt annat svarar med success satt till false och en enda felsträng.",
	"api_response_success": "Lyckades",
	"api_response_error": "Misslyckades",
	"api_s_response_urls": "URL:en du får tillbaka är embed-vyn. Byt embed mot play för att öppna den i helskärm, eller mot build för att öppna den i redigeraren — nyckeln efter p= är densamma.",
	"api_s_updating_title": "Skapa kontra uppdatera",
	"api_s_updating_body": "Skicka activity_key så byggs aktiviteten bakom den om på plats: dess innehåll ersätts, dess namn och versionsstämpel uppdateras, och själva nyckeln förblir densamma — så länkar och inbäddningar du redan delat fortsätter fungera. Resultat, mappplacering och varje inställning som endpointen inte själv skriver lämnas som de var.",
	"api_s_updating_own": "Du kan bara uppdatera aktiviteter ditt eget konto äger. Någon annans nyckel svarar 403.",
	"api_s_updating_name": "title tillämpas vid varje uppdatering, dess standardvärde inräknat — utelämna det så byter aktiviteten namn till den endpointens standardnamn.",
	"api_s_updating_settings": "Inställningsblocken en endpoint skriver själv skrivs om helt från grunden, så en uppdatering återställer också dem till värdena du skickar, eller till endpointens standardvärden.",
	"api_s_updating_quota": "En uppdatering kostar lika mycket som att skapa: ett anrop av dagens kvot.",
	"api_s_limits_title": "Anropsgräns",
	"api_s_limits_body": "Varje lyckat anrop räknas, skapande och uppdatering lika. Går du över svarar nästa anrop 429 tills räknaren nollställs.",
	"api_s_limits_counter": "[limit] aktiviteter per konto och dag",
	"api_s_limits_reset": "Räknaren nollställs en gång om dagen av ett schemalagt jobb, inte i ett rullande 24-timmarsfönster.",
	"api_s_errors_title": "Fel",
	"api_s_errors_body": "Fel kommer alltid som JSON med samma två fält, aldrig som en HTML-sida. Felsträngen är skriven för att läsas av en människa — den namnger fältet eller gränsen som gjorde att det misslyckades.",
	"api_err_400": "Något i body saknas, är felaktigt formaterat eller utanför tillåtet intervall. Meddelandet namnger fältet.",
	"api_err_401": "E-postadressen är okänd, eller så tillhör nyckeln inte det kontot.",
	"api_err_403": "activity_key du skickade tillhör ett annat konto.",
	"api_err_429": "Dagens kvot är förbrukad. Den nollställs en gång om dagen.",
	"api_err_500": "Generatorn kunde inte bygga ett pussel av det du skickade — oftast för få ord, eller ord som inte går att passa ihop.",
	"api_endpoints_title": "Endpoints",
	"api_endpoints_intro": "En sökväg per aktivitetstyp, alla POST, alla under samma bas-URL. Var och en listar innehållet den behöver, inställningarna den läser och ett anrop du kan köra.",
	"api_group_words": "Ord & bokstäver",
	"api_group_cards": "Kort & par",
	"api_group_questions": "Frågor & svar",
	"api_group_text": "Meningar & tal",
	"api_group_images": "Bilder",
	"api_ep_content_label": "Innehåll",
	"api_ep_settings_label": "Inställningar den läser",
	"api_ep_settings_none": "Den här endpointen läser inga inställningar.",
	"api_ep_example_label": "Exempelanrop",
	"api_ep_notes_label": "Bra att veta",
	"api_ep_min_items": "Minst [count] i items",
	"api_ep_no_items": "Tar inga items",
	"api_ep_default_title": "Faller tillbaka på namnet “[title]”",
	"api_copy": "Kopiera",
	"api_copied": "Kopierat",
	"api_toast_copied": "Kopierat till urklipp",
	"api_ep_open_builder": "Öppna redigeraren",
	"api_ep_back_to_top": "Till toppen",
	"api_e_crossword": "Länkar ihop dina svar i ett rutnät och numrerar definitionerna åt dig.",
	"api_c_crossword": "En array av ord. Varje post kopplar ihop svaret med definitionen som pekar på det.",
	"api_note_crossword_length": "Svar kortare än två tecken tas bort innan rutnätet byggs, och minst två måste finnas kvar efter det.",
	"api_note_crossword_layout": "Svaren skrivs med versaler och generatorn får tjugo försök att passa in dem. Om den inte kan placera ett enda ord svarar anropet 500.",
	"api_e_wordseeker": "Gömmer dina ord i ett bokstavsrutnät, i de riktningar och den form du väljer.",
	"api_c_wordseeker": "En array av ord. Definitionstexten blir ordbanken spelarna arbetar utifrån.",
	"api_note_wordseeker_length": "Svar under två tecken tas bort, och varje svar skrivs med versaler innan det läggs in i rutnätet.",
	"api_note_wordseeker_arabic": "Rutnätet fylls ut med latinska bokstäver om inte language är \"ar\", vilket växlar utfyllnaden till arabiska.",
	"api_set_wordseeker_hidden_solution": "De överblivna bokstäverna stavar ut det här. Att ange det säger också åt generatorn att passa in lösningen först istället för att packa in så många ord som möjligt.",
	"api_set_wordseeker_directions": "Vilka riktningar ett ord får löpa i. Utelämna det så löper orden bara österut, sydöst och söderut.",
	"api_set_wordseeker_template": "Skär till rutnätet i en form istället för att lämna det kvadratiskt.",
	"api_e_acrostic": "Staplar dina svar så att en kolumn stavar ett dolt ord.",
	"api_c_acrostic": "En array av ord. Tillsammans måste de innehålla varje bokstav i det dolda ordet.",
	"api_set_acrostic_hidden_solution": "Ordet den markerade kolumnen stavar ut. Den här endpointen körs inte utan det.",
	"api_note_acrostic_letters": "Om svaren inte kan tillhandahålla bokstäverna lösningen behöver svarar anropet 500 istället för att spara ett halvbyggt rutnät.",
	"api_note_acrostic_order": "Generatorn ändrar ordningen på dina svar för att få kolumnen att fungera, så ordningen du skickar är inte den ordning spelarna ser.",
	"api_e_word-scramble": "Blandar bokstäverna i varje svar som spelarna ska reda ut.",
	"api_c_word-scramble": "En array av ord. Ledtråden visas bredvid de blandade bokstäverna.",
	"api_set_scramble_hidden_solution": "Ett valfritt bonusord spelarna anger när resten är löst.",
	"api_note_scramble_random": "Aktiviteter som skapas via API:et har alltid inställningen för att blanda ordningen påslagen, så ordningen du skickar är inte den ordning spelarna får.",
	"api_e_hangman": "Gör om dina ord eller fraser till gissa-bokstaven-omgångar.",
	"api_c_hangman": "En array av ord eller korta fraser. Ledtråden är tipset spelarna ser.",
	"api_e_wordle": "Gör om varje ord du skickar till ett gissa-ordet-spel.",
	"api_c_wordle": "En array av ord. Spelarna får en omgång per ord.",
	"api_note_wordle_dictionary": "Skapas med inställningen för att kontrollera att gissningar är riktiga ord påslagen. Stäng av den i redigeraren om dina ord är namn eller påhittade.",
	"api_e_typing-practice": "Gör om meningar till skrivövningar.",
	"api_c_typing-practice": "En array av ord eller meningar att skriva av. Ledtrådsfältet fungerar även som instruktion.",
	"api_e_wheel-of-fortune": "Fyller ett lyckohjul med dina egna segment.",
	"api_c_wheel-of-fortune": "En array av segment. Varje svar blir en kil.",
	"api_note_wheel_outcome": "Skapas med “visa resultatet enbart i hjulet”, så resultatet läses av hjulet istället för att meddelas bredvid det.",
	"api_e_memory": "Kort med baksidan upp som vänds och paras ihop.",
	"api_c_memory": "En array av par. Varje par innehåller de två kort som hör ihop.",
	"api_note_cards_media": "Ett kort är ett objekt med en type och ett value. Använd \"text\" för ord, eller \"image\", \"audio\", \"youtube\" eller \"link\" med en URL i value, och lägg till alt för en beskrivning.",
	"api_e_matching-pairs": "Två kolumner med kort som dras ihop.",
	"api_c_matching-pairs": "En array av par. Det första kortet i varje par hamnar på ena sidan, dess partner på den andra.",
	"api_e_flash-cards": "Dubbelsidiga kort att bläddra igenom.",
	"api_c_flash-cards": "En array av kort. Det första kortet är framsidan, det andra baksidan.",
	"api_note_flashcards_sides": "Endpointen sparar lika många kort som du skickar, så skicka exakt två per post — framsida, sedan baksida.",
	"api_e_categorize": "Kort som sorteras i kategorin de hör hemma i.",
	"api_c_categorize": "En array av kategorier, var och en med ett namn och de kort som hör till den.",
	"api_note_categorize_name": "En kategori som skickas utan namn sparas som “Untitled Category”, så skicka alltid ett.",
	"api_e_reorder": "En sekvens spelarna måste sätta i rätt ordning.",
	"api_c_reorder": "En array av sekvenser. Var och en innehåller sina kort i rätt ordning.",
	"api_note_reorder_order": "Ordningen du skickar sparas som den rätta ordningen — nummer ett först.",
	"api_e_quiz": "Flervalsfrågor och öppna frågor som poängsätts allteftersom spelarna svarar.",
	"api_c_quiz": "En array av frågor. Flervalsfrågor har sina svarsalternativ; öppna frågor har svaret du godkänner.",
	"api_note_question_types": "question_type är antingen \"multiple_choice\", där det rätta alternativet har isCorrect satt till true, eller \"open_answer\", som istället använder correct_answer. Utelämnas det behandlas det som flerval.",
	"api_note_quiz_settings": "Quizendpointen skickar settings rakt igenom som aktivitetens inställningsblock, så det är inte en plats för lösa alternativ — justera quizet i redigeraren efteråt.",
	"api_e_board-game": "Ett spelbräde att kapplöpa över, med dina frågor på rutorna.",
	"api_c_board-game": "En array av frågor, exakt samma form som quiz-endpointen tar.",
	"api_set_board_tiles": "Hur många rutor spelbrädet har. Mellan 10 och 75.",
	"api_set_board_mode": "Om spelarna kapplöper till mål eller samlar föremål på vägen.",
	"api_e_cryptogram": "Gör om en mening till en kod att knäcka, ett tecken i taget.",
	"api_c_cryptogram": "En mening, i fältet sentence. Den här endpointen tar inga items.",
	"api_note_cryptogram_no_items": "Allt du skickar i items ignoreras — pusslet byggs enbart från sentence.",
	"api_set_cryptogram_helpers": "Vilka tecken som avslöjas gratis som en ingång: inga, de vanligaste, vokalerna, eller de du listar själv.",
	"api_set_cryptogram_character_list": "Alfabetet chiffret byggs från. Lämnas det tomt väljer krypteringen sitt eget.",
	"api_set_cryptogram_extra_letters": "Tecknen som avslöjas när helpers är \"custom\". Ignoreras för de andra hjälplägena.",
	"api_set_cryptogram_hide_unused": "Utelämnar tecken meningen aldrig använder från nyckeln.",
	"api_e_calculation": "Gömmer en mening bakom uträkningar — lös uträkningen, avslöja bokstaven.",
	"api_c_calculation": "En mening, i fältet sentence. Den här endpointen tar inga items.",
	"api_set_calc_difficulty": "Det högsta svar en uträkning får ha.",
	"api_set_calc_operators": "Vilka räknesätt som får förekomma. x är multiplikation, : är division.",
	"api_set_calc_max_operations": "Hur många räknesätt en uträkning får kedja ihop.",
	"api_set_calc_number_difficulty": "Begränsar de enskilda talen inuti en uträkning. Allt från 5 till 1000.",
	"api_note_calculation_fit": "Om begränsningarna är för snäva för att koda meningen svarar anropet 400 och ber dig lätta på dem, istället för att spara ett halvfärdigt pussel.",
	"api_e_sudoku": "Genererar ett löst rutnät och tar sedan bort siffror igen.",
	"api_c_sudoku": "Ingenting. Hela pusslet kommer ur dess två inställningar.",
	"api_note_sudoku_no_items": "Skicka inga items och ingen sentence — size och difficulty är hela inmatningen.",
	"api_note_sudoku_difficulty_sizes": "Redigeraren erbjuder bara svårighetsgraden för 2x3, 3x3 och 3x4. API:et tillämpar den på alla storlekar, 2x2 och 4x4 inräknat.",
	"api_set_sudoku_size": "Storleken på ett block, skrivet som rader gånger kolumner — 3x3 ger det klassiska 9x9-rutnätet. Endpointen kontrollerar bara att det tolkas som två tal, så håll dig till storlekarna redigeraren erbjuder.",
	"api_set_sudoku_difficulty": "Hur många siffror som lämnas kvar i rutnätet att utgå från.",
	"api_e_jigsaw": "Delar en bild i bitar som dras ihop igen.",
	"api_c_jigsaw": "En bild-URL, i fältet image. Den här endpointen tar inga items.",
	"api_note_jigsaw_grid": "API:et gör alltid ett 4 gånger 4-bitpussel. Antal bitar, oregelbundna bitar och raka kanter är inställningar i redigeraren — att skicka rows eller columns här gör ingenting.",
	"api_note_image_reachable": "URL:en sparas precis som du skickade den och filen kopieras aldrig, så den måste förbli publikt nåbar så länge aktiviteten spelas.",
	"api_e_slidingpuzzle": "Blandar en bild till brickor som glider på plats.",
	"api_c_slidingpuzzle": "En bild-URL, inuti settings. Den här endpointen tar inga items.",
	"api_note_sliding_image_slot": "Till skillnad från bitpusslet läser den här endpointen sin bild från settings.image. Ett image-fält på toppnivå ignoreras och anropet svarar 400.",
	"api_help_title": "Något som inte funkar som det ska?",
	"api_help_body": "Skicka anropet du testade och felet du fick tillbaka, så får du ett riktigt svar från personen som skrev endpointen.",
	"api_help_cta": "E-posta support",
	"api_int_kicker": "Integrationer för utvecklare",
	"api_int_title": "Koppla samman Puzzel med din egen plattform",
	"api_int_intro": "Puzzel kan lämna en spelares resultat direkt till ett annat system — poängen, hur långt de kom, vad de svarade — utan att det systemet behöver vara ett fullständigt LMS. Den här sidan visar alla kanaler som finns: vad som skickas, när det skickas, och det minsta du behöver bygga för att ta emot det.",
	"api_int_hero_out_label": "Resultat skickas via",
	"api_int_hero_out_value": "En webhook, eller ett meddelande till sidan runt aktiviteten",
	"api_int_hero_in_label": "Din sida kan",
	"api_int_hero_in_value": "Logga in spelaren och nollställa aktiviteten",
	"api_int_hero_where_label": "Slås på",
	"api_int_hero_where_value": "Per aktivitet, under Utvecklare i redigeraren",
	"api_int_hero_plan_label": "Ingår i",
	"api_int_hero_plan_value": "Ett betalpaket — de här inställningarna är avstängda på ett gratiskonto",
	"api_int_search_placeholder": "Sök kanaler, fält och exempel",
	"api_int_search_empty": "Inget på den här sidan matchar det. Prova en kanal som webhook eller postMessage, eller ett fält som progress.",
	"api_int_nav_channels": "Kanaler",
	"api_int_s_choose_title": "Vilken kanal behöver du?",
	"api_int_s_choose_body": "Tre saker kan lämna en aktivitet och en kan komma in. Vilken som passar avgörs av en enda fråga: sitter spelaren inne i din sida, eller någon helt annanstans?",
	"api_int_choose_out": "Ut från Puzzel",
	"api_int_choose_in": "In till Puzzel",
	"api_int_choose_when": "Använd den när",
	"api_int_choose_needs": "Du behöver",
	"api_int_choose_setting": "Inställning",
	"api_int_ch_webhook_name": "Resultatwebhook",
	"api_int_ch_webhook_summary": "Varje sparat resultat POSTas som JSON till en URL du äger.",
	"api_int_ch_webhook_when": "Spelaren kan vara var som helst — en delad länk, en QR-kod, någon annans webbplats — och du vill ha resultatet i din egen databas.",
	"api_int_ch_webhook_needs": "En HTTPS-slutpunkt som tar emot en cross-origin-POST.",
	"api_int_ch_parent_name": "Resultat till sidan runt om",
	"api_int_ch_parent_summary": "Samma JSON, skickad till sidan som bäddar in aktiviteten istället för till en server.",
	"api_int_ch_parent_when": "Du bäddar in aktiviteten på din egen kurssida och sidan själv kan göra något med resultatet.",
	"api_int_ch_parent_needs": "En iframe på din sida och en meddelandelyssnare. Ingen server, ingen CORS.",
	"api_int_ch_completion_name": "Klarsignal",
	"api_int_ch_completion_summary": "Ett meddelande när spelaren är klar, som inte innehåller något annat än det faktumet.",
	"api_int_ch_completion_when": "Allt du vill veta är om de är klara — för att bocka av lektionen, låsa upp nästa, eller visa din egen skärm.",
	"api_int_ch_completion_needs": "En iframe på din sida och en meddelandelyssnare.",
	"api_int_ch_trigger_name": "Nollställning från din sida",
	"api_int_ch_trigger_summary": "Din sida talar om för den inbäddade aktiviteten att rensa spelarens svar och börja om.",
	"api_int_ch_trigger_when": "Du har en egen knapp för \"försök igen\" utanför aktiviteten.",
	"api_int_ch_trigger_needs": "En iframe på din sida. Meddelandet accepteras bara från sidan som gör inbäddningen.",
	"api_int_s_webhook_title": "Resultatwebhook",
	"api_int_s_webhook_body": "Slå på \"Skicka resultat till en webhook\" i redigeraren och ange en URL. Från och med då POSTar spelarens webbläsare hela resultatet som JSON till den URL:en varje gång deras framsteg sparas.",
	"api_int_webhook_steps_title": "Så ställer du in det",
	"api_int_webhook_step_1": "Öppna aktiviteten i redigeraren och gå till menyn Utvecklare.",
	"api_int_webhook_step_2": "Slå på \"Skicka resultat till en webhook\" och klistra in din slutpunkt i fältet under. Det måste vara en fullständig URL — en bar domän avvisas — och den måste vara https, eftersom webbläsaren blockerar ett vanligt http-anrop från en sida som levereras via https.",
	"api_int_webhook_step_3": "Spela aktiviteten en gång själv. Den första POST:en kommer in så fort du svarar på något.",
	"api_int_webhook_receiver": "En mottagare, från början till slut",
	"api_int_webhook_timing_title": "Den utlöses medan du spelar, inte bara i slutet",
	"api_int_webhook_timing_body": "Ett resultat skickas varje gång posten sparas: efter en paus i skrivandet, när ett kort placeras, när klockan stannar, och en gång till när aktiviteten är klar. Ett långt korsord är ett tjugotal anrop, inte ett — så skriv din hanterare som en upsert nyckelsatt på playerUid och activityKey istället för som en insert. Varje anrop bär det fullständiga tillståndet, så det senaste ersätter alltid det föregående, och ett anrop som uteblir kompenseras av nästa.",
	"api_int_webhook_finished_title": "Att skilja ett avslut från ett sparande",
	"api_int_webhook_finished_body": "progress är en procentsats: 100 betyder att aktiviteten är klar. Några typer kan avslutas utan att nå dit — ett quiz som besvarats hela vägen igenom, ett löst lösningsfält — och de bär istället hasAlternateCompletion. Behandla båda som avslutade.",
	"api_int_webhook_cors_title": "Den skickas av spelarens webbläsare",
	"api_int_webhook_cors_body": "POST:en kommer från fliken där aktiviteten spelas, inte från en Puzzel-server. De flesta slutpunkter som byggts för att ta emot webhooks accepterar den redan. Om din aldrig ser en förfrågan är det här förklaringen: webbläsaren frågar om lov först, så svara på OPTIONS-preflighten med en Access-Control-Allow-Origin-header, sedan följer den riktiga POST:en.",
	"api_int_webhook_trust_title": "Behandla nyttolasten som ett påstående, inte ett bevis",
	"api_int_webhook_trust_body": "Det finns ingen signatur på förfrågan, och den kommer från en webbläsare du inte kontrollerar, så vem som helst som tittar på sidan kan skicka en till dig också. Det duger för att fylla i en förloppsindikator eller en instrumentpanel. För allt du inte skulle låta en elev sätta själv — ett betyg som räknas, ett certifikat, en betalning — kontrollera det mot resultaten i din egen Puzzel-instrumentpanel, eller låt LMS-betygskopplingarna föra över poängen istället.",
	"api_int_s_parent_title": "Resultat till sidan runt om",
	"api_int_s_parent_body": "Om du bäddar in aktiviteten kan du få samma JSON skickad till din egen sida istället för till en server. Slå på \"Skicka resultat till den överordnade sidan\" och lyssna efter meddelandet. Inget lämnar webbläsaren, så det finns ingen slutpunkt att bygga och ingen CORS att tänka på.",
	"api_int_parent_origin_title": "Kontrollera var meddelandet kom ifrån",
	"api_int_parent_origin_body": "Din lyssnare hör varje meddelande som skickas till sidan, inklusive från andra ramar och webbläsartillägg. Jämför event.origin med https://puzzel.org innan du litar på innehållet.",
	"api_int_parent_same_title": "Samma nyttolast, samma tidpunkter",
	"api_int_parent_same_body": "Det här är webhookens tvilling: samma fält, skickade vid samma tillfällen. Allt under \"Vad ett resultat innehåller\" gäller även här.",
	"api_int_s_completion_title": "Klarsignal",
	"api_int_s_completion_body": "Den minsta kanalen, för när själva resultatet inte är din sak: slå på \"Skicka en klarsignal\" så får din sida ett meddelande i samma stund som spelaren blir klar.",
	"api_int_completion_shape": "Vad som kommer in",
	"api_int_completion_order_title": "Resultatet är redan sparat när det kommer in",
	"api_int_completion_order_body": "Signalen skickas avsiktligt efter att det avslutande sparandet har landat, så en sida som reagerar genom att läsa tillbaka resultatet hittar det där.",
	"api_int_completion_embed_title": "Bara inuti en iframe",
	"api_int_completion_embed_body": "Båda meddelandekanalerna skickar till sidan som ramar in aktiviteten. Öppnad i en egen flik finns det ingen att meddela, så inget skickas.",
	"api_int_s_payload_title": "Vad ett resultat innehåller",
	"api_int_s_payload_body": "En och samma form, oavsett vilken kanal som bär den. Spelarens svar är nyckelsatta med aktivitetens egna objekt-id:n, så samma nycklar dyker upp i correctUids.",
	"api_int_col_when": "När den finns",
	"api_int_always": "alltid",
	"api_int_sometimes": "ibland",
	"api_int_payload_absent_title": "Saknas, inte tomt",
	"api_int_payload_absent_body": "Ett fält som inte är tillämpligt utelämnas ur JSON:en istället för att skickas som null eller noll. Det är så en typ som inte poängsätter en omgång skiljs från en omgång som fick noll poäng — så läs med ett standardvärde och anta aldrig att en nyckel finns.",
	"api_int_payload_example": "Ett avslutat quiz, som det kommer in",
	"api_int_f_activity_key": "Aktiviteten resultatet hör till. Samma nyckel som du ser i aktivitetens egen URL, efter ?p=.",
	"api_int_f_player_uid": "Vem som spelade, som ett anonymt id. Stabilt för den här spelaren på den här enheten, så det är det du nyckelsätter resultat på — det är varken en e-postadress eller ett Puzzel-konto.",
	"api_int_f_player": "De registreringsfält aktiviteten frågar efter, så som du konfigurerat dem: name, email, class, student_id och så vidare. Saknas tills spelaren har registrerat sig, och saknas helt på en aktivitet som inte frågar efter något.",
	"api_int_f_progress": "Hur långt spelaren kommit, som en procentsats. 100 betyder klar.",
	"api_int_f_time_passed": "Tid på aktiviteten, i millisekunder.",
	"api_int_f_last_played_at": "När det här resultatet sparades, som en Unix-tidsstämpel i millisekunder.",
	"api_int_f_created": "När försöket startades, som en Unix-tidsstämpel i millisekunder.",
	"api_int_f_player_input": "Vad spelaren faktiskt skrev in, nyckelsatt med id:t för det objekt det hör till. Formen inuti beror på aktivitetstypen — ett ord, en lista med placerade kort, ett valt alternativ.",
	"api_int_f_correct_uids": "Vilka av de objekten som är rätt, nyckelsatta på samma sätt. Saknas så länge inget har besvarats än.",
	"api_int_f_score": "Poäng som gjorts, på de typer som poängsätter en omgång. Saknas överallt annars — även på en omgång som verkligen fick noll poäng, så kontrollera att nyckeln finns innan du läser den.",
	"api_int_f_performance": "En typs eget mått på hur det gick, där ett sådant finns — ord per minut i tangentbordsträning, till exempel.",
	"api_int_f_attempts": "Vilken omgång det här är: 1 första gången, en till för varje omstart. Bara på typer som avslutar en omgång i förtid och räknar omtagningarna.",
	"api_int_f_knocked_out": "Omgången avslutades på ett fel svar och är över utan att vara klar.",
	"api_int_f_alternate": "Aktiviteten avslutades på ett sätt som inte når 100 % — ett quiz som besvarats hela vägen igenom, ett löst lösningsfält. Behandla det som avslutat.",
	"api_int_f_missed_keys": "Tecken spelaren fortsatte att skriva fel, de mest missade först. Bara tangentbordsträning.",
	"api_int_f_content_version": "Vilken version av aktivitetens innehåll det här spelades mot. Den ändras när ägaren redigerar frågorna, så ett gammalt resultat kan skiljas från ett aktuellt.",
	"api_int_s_control_title": "Nollställa aktiviteten från din sida",
	"api_int_s_control_body": "En instruktion går åt andra hållet. Med \"Ta emot kommandon från den överordnade sidan\" påslagen kan sidan som gör inbäddningen rensa spelarens svar och sätta tillbaka aktiviteten till starten — för en egen knapp för \"försök igen\" utanför ramen.",
	"api_int_control_only_title": "Nollställning är det enda kommandot",
	"api_int_control_only_body": "Det finns inget meddelande för att skicka in ett resultat, öppna slutmeddelandet eller hoppa till en fråga. Ett meddelande som ber om något annat än en nollställning ignoreras.",
	"api_int_control_guard_title": "Bara den inbäddande sidan hörs",
	"api_int_control_guard_body": "Kommandot accepteras bara från sidan som ramar in aktiviteten och ingen annanstans ifrån — inte en syskonram, inte ett skript på sidan. Inställningen är avstängd som standard, så slå på den för de aktiviteter du driver.",
	"api_int_s_identity_title": "Ta med din egen spelaridentitet",
	"api_int_s_identity_body": "Om din plattform redan vet vem som spelar behöver aktiviteten inte fråga igen. Det finns två handskakningar, båda för en aktivitet inne i din sida, och båda slås på av oss istället för i redigeraren — de ändrar vem ett resultat tillhör, så de ställs in tillsammans med dig istället för via en kryssruta.",
	"api_int_identity_pm_title": "Skicka spelaren till oss",
	"api_int_identity_pm_body": "Aktiviteten meddelar sig själv med 'app-loaded' och väntar. Din sida skickar tillbaka spelarens uppgifter, och resultatet arkiveras under dem utan att spelaren skriver något eller ser en registreringsskärm.",
	"api_int_identity_sso_title": "Skicka en token till oss",
	"api_int_identity_sso_body": "Samma handskakning, men din sida skickar JWT:n som din identitetsleverantör utfärdat istället för själva fälten. Vi verifierar den mot de utfärdare som är inställda för ditt konto innan spelaren släpps in, så identiteten bevisas istället för att bara påstås — det här är den att be om när resultatet måste gå att lita på.",
	"api_int_identity_cta_title": "Be oss slå på det",
	"api_int_identity_cta_body": "Berätta för oss vilken av de två du vill ha och var aktiviteterna kommer att bäddas in, så ställer vi in ditt konto och går igenom det tillsammans med dig.",
	"api_int_identity_cta_button": "Skriv till oss om identitet",
	"api_int_s_create_title": "Skapa aktiviteter från ditt system",
	"api_int_s_create_body": "Allt ovanför handlar om att ett resultat kommer ut. Att göra tvärtom — skapa själva aktiviteterna från innehåll du redan har — är Puzzle API:et: en POST per aktivitetstyp, och du får tillbaka en nyckel och en URL att bädda in.",
	"api_int_create_link": "Läs API-referensen",
	"api_int_s_lms_title": "När en färdig koppling är det bättre svaret",
	"api_int_s_lms_body": "Om plattformen på andra sidan är ett riktigt LMS behöver du förmodligen inget av det här. Betyg kan gå tillbaka till dess betygsbok av sig själva, utan att du behöver driva något själv.",
	"api_int_lms_lti_title": "Moodle, Canvas, Brightspace, Schoology, itslearning",
	"api_int_lms_lti_body": "Startas inifrån LMS:et, med poängen skriven tillbaka till dess betygsbok.",
	"api_int_lms_gc_title": "Google Classroom",
	"api_int_lms_gc_body": "Lägg upp en aktivitet som en uppgift och få betygen tillbaka automatiskt.",
	"api_int_lms_not_title": "Inget av de här?",
	"api_int_lms_not_body": "Kursplattformar, medlemssidor, intranät och allt du byggt själv är precis vad kanalerna på den här sidan är till för. En inbäddning plus klarsignalen täcker det mesta.",
	"api_int_s_limits_title": "Vad som inte finns",
	"api_int_s_limits_body": "Så att du inte letar efter det:",
	"api_int_limit_no_read": "Ingen slutpunkt för att läsa tillbaka resultat. API:et skapar aktiviteter; resultat lämnar genom kanalerna på den här sidan, eller genom exporterna i din instrumentpanel.",
	"api_int_limit_no_signature": "Ingen signatur på webhooken. Det finns inget att verifiera förfrågan mot, vilket är varför ett resultat inte bör vara det enda som står bakom något som är viktigt.",
	"api_int_limit_per_activity": "Ingen kontoomfattande webhook. URL:en är en inställning på en aktivitet, så en aktivitet du kopierar för med sig den, och en ny börjar utan den.",
	"api_int_limit_no_multiplayer": "Inget i ett lagspel eller ett live-rum. Både meddelandekanalerna och webhooken är till för spel på egen hand, och inställningarna stänger av sig själva när lagspel är påslaget.",
	"api_int_limit_no_retry": "Ingen leveranskö. Inget lagras och skickas om — nästa sparning är omförsöket, och omgångens sista anrop är det som räknas.",
	"api_nav_integrations": "Få tillbaka resultat"
}
