{
	"api_kicker": "API per sviluppatori",
	"api_title": "Crea attività dal tuo sistema",
	"api_intro": "Invia i tuoi contenuti in formato JSON con una richiesta POST all'endpoint del tipo di attività scelto. L'API crea l'attività nel tuo account Puzzel.org e restituisce un URL da condividere o incorporare in un iframe.",
	"api_search_placeholder": "Cerca endpoint, campi e impostazioni",
	"api_search_results": "corrispondenze in questa pagina",
	"api_search_empty": "Niente in questa pagina corrisponde alla ricerca. Prova con il nome di un endpoint, un campo come activity_key o un codice di stato.",
	"api_search_clear": "Cancella la ricerca",
	"api_nav_guide": "Per iniziare",
	"api_nav_endpoints": "Endpoint",
	"api_toc_label": "In questa pagina",
	"api_hero_base_label": "URL di base",
	"api_hero_method_label": "Metodo",
	"api_hero_method_value": "POST, corpo JSON",
	"api_hero_auth_label": "Autenticazione",
	"api_hero_auth_value": "Chiave + e-mail nel corpo",
	"api_hero_limit_label": "Quota",
	"api_hero_limit_value": "[limit] attività al giorno",
	"api_hero_count_label": "Endpoint",
	"api_hero_count_value": "[count] tipi di attività",
	"api_s_quickstart_title": "La tua prima richiesta",
	"api_s_quickstart_body": "Invia una richiesta con un corpo JSON contenente la chiave API, l'indirizzo e-mail del tuo account e i contenuti. La risposta contiene la chiave della nuova attività e l'URL per aprirla.",
	"api_s_quickstart_note": "Ogni esempio di questa pagina è una richiesta completa e pronta da eseguire. Metti la tua chiave e i tuoi contenuti e funziona così com'è.",
	"api_s_auth_title": "Autenticazione",
	"api_s_auth_body": "Non serve un header di autenticazione né un bearer token: invia la chiave API e l'indirizzo e-mail nel corpo JSON di ogni richiesta. La chiave è valida solo per l'account associato a quell'indirizzo.",
	"api_s_auth_where": "Trovi la chiave API nella sezione account della dashboard: fai clic su Mostra per visualizzarla.",
	"api_s_auth_where_link": "Apri la mia chiave API",
	"api_s_auth_premium": "Le chiavi API vengono assegnate quando inizia un abbonamento, quindi un account gratuito non ne ha ancora una.",
	"api_s_auth_plans": "Guarda i piani",
	"api_s_auth_secret": "Tratta la chiave API come una password: permette di creare e sovrascrivere attività nel tuo account. Conservala sul server e non inserirla nel codice accessibile dal browser.",
	"api_prefill_kicker": "Esempi",
	"api_prefill_label": "Riempi gli esempi con la mia chiave API",
	"api_prefill_signed_out": "Accedi e la tua chiave finisce in ogni esempio di questa pagina.",
	"api_prefill_sign_in": "Accedi",
	"api_prefill_none": "Su questo account non c'è ancora nessuna chiave API.",
	"api_prefill_warning": "Gli esempi ora contengono la tua chiave API. Rimuovila prima di condividere un esempio in una chat, in una segnalazione o in un repository pubblico.",
	"api_s_request_title": "Il corpo della richiesta",
	"api_s_request_body": "Tutti gli endpoint accettano gli stessi cinque campi comuni. I contenuti richiesti variano: la maggior parte usa un array items, alcuni una frase o un'immagine. Il sudoku non richiede un campo per i contenuti.",
	"api_s_request_settings": "settings contiene le opzioni specifiche dell'endpoint. Per ogni endpoint sono elencate qui sotto le impostazioni supportate; le altre vengono ignorate.",
	"api_col_field": "Campo",
	"api_col_type": "Tipo",
	"api_col_notes": "Cosa fa",
	"api_col_status": "Stato",
	"api_col_meaning": "Cosa significa",
	"api_required": "obbligatorio",
	"api_optional": "facoltativo",
	"api_default_label": "Predefinito",
	"api_allowed_label": "Uno tra",
	"api_in_settings": "in settings",
	"api_f_account_api_key": "La chiave API del tuo account. Va nel corpo, non in un header.",
	"api_f_email": "L'indirizzo con cui accedi al tuo account Puzzel.org. La chiave è valida solo insieme a esso.",
	"api_f_title": "Il nome dell'attività nella dashboard. Se ometti questo campo, viene usato il nome predefinito dell'endpoint.",
	"api_f_language": "Imposta la lingua dell'URL restituito, senza tradurre i contenuti inviati. Per il crucipuzzle, il valore \"ar\" seleziona anche le lettere arabe con cui riempire le caselle libere.",
	"api_f_activity_key": "Ometterlo crea una nuova attività. Passa la chiave di una che possiedi già e quell'attività viene invece ricostruita.",
	"api_f_sentence_cryptogram": "La frase da cifrare. I giocatori la decodificano carattere per carattere.",
	"api_f_sentence_calculation": "La frase che i giocatori scoprono risolvendo i calcoli.",
	"api_f_image": "URL assoluto dell'immagine da tagliare. Va inviato al primo livello, non dentro settings.",
	"api_f_image_setting": "URL assoluto dell'immagine da mescolare. A differenza di quella del puzzle, questa sta dentro settings.",
	"api_s_response_title": "Cosa ricevi in risposta",
	"api_s_response_body": "Una chiamata riuscita risponde 200 con la chiave della nuova attività e l'URL su cui si gioca. Tutto il resto risponde con success impostato a false e una sola stringa di errore.",
	"api_response_success": "Successo",
	"api_response_error": "Errore",
	"api_s_response_urls": "L'url che ricevi è la vista di incorporamento. Sostituisci embed con play per aprirla a pagina intera, o con build per aprirla nell'editor — la chiave dopo p= resta la stessa.",
	"api_s_updating_title": "Creare o aggiornare",
	"api_s_updating_body": "Invia activity_key e l'attività corrispondente viene ricostruita sul posto: i contenuti vengono sostituiti, il nome e la marca temporale della versione vengono aggiornati e la chiave resta la stessa — così i link e i codici di incorporamento che hai già condiviso continuano a funzionare. Risultati, posizione nelle cartelle e ogni impostazione che l'endpoint non scrive restano come erano.",
	"api_s_updating_own": "Puoi aggiornare solo le attività di cui è proprietario il tuo account. La chiave di qualcun altro risponde 403.",
	"api_s_updating_name": "title viene applicato anche agli aggiornamenti. Se lo ometti, il nome dell'attività viene sostituito con quello predefinito dell'endpoint.",
	"api_s_updating_settings": "I blocchi di impostazioni che un endpoint scrive da sé vengono riscritti da zero, quindi anche un aggiornamento li riporta ai valori che invii, o ai valori predefiniti dell'endpoint.",
	"api_s_updating_quota": "Un aggiornamento costa quanto una creazione: una chiamata sulla quota di oggi.",
	"api_s_limits_title": "Limite di frequenza",
	"api_s_limits_body": "Ogni richiesta riuscita viene conteggiata nel limite giornaliero, sia per creare sia per aggiornare un'attività. Una volta raggiunto il limite, le richieste successive restituiscono il codice 429 fino all'azzeramento del contatore.",
	"api_s_limits_counter": "[limit] attività per account al giorno",
	"api_s_limits_reset": "Il contatore viene azzerato una volta al giorno da un processo pianificato, non su una finestra mobile di 24 ore.",
	"api_s_errors_title": "Errori",
	"api_s_errors_body": "Gli errori arrivano sempre come JSON con gli stessi due campi, mai come pagina HTML. La stringa di errore è scritta per essere letta da una persona: indica il campo o il limite che non ha funzionato.",
	"api_err_400": "Qualcosa nel corpo manca, è malformato o fuori intervallo. Il messaggio indica il campo.",
	"api_err_401": "L'e-mail è sconosciuta, oppure la chiave non appartiene a quell'account.",
	"api_err_403": "L'activity_key che hai inviato appartiene a un altro account.",
	"api_err_429": "La quota di oggi è esaurita. Si azzera una volta al giorno.",
	"api_err_500": "Il generatore non è riuscito a costruire un rompicapo con quello che hai inviato — di solito troppe poche parole, o parole che non si incastrano tra loro.",
	"api_endpoints_title": "Endpoint",
	"api_endpoints_intro": "Un percorso per ogni tipo di attività, tutti in POST, tutti sotto lo stesso URL di base. Ognuno elenca i contenuti che gli servono, le impostazioni che legge e una richiesta che puoi eseguire.",
	"api_group_words": "Parole e lettere",
	"api_group_cards": "Carte e coppie",
	"api_group_questions": "Domande e risposte",
	"api_group_text": "Frasi e numeri",
	"api_group_images": "Immagini",
	"api_ep_content_label": "Contenuti",
	"api_ep_settings_label": "Impostazioni che legge",
	"api_ep_settings_none": "Questo endpoint non legge nessuna impostazione.",
	"api_ep_example_label": "Richiesta di esempio",
	"api_ep_notes_label": "Da sapere",
	"api_ep_min_items": "Almeno [count] in items",
	"api_ep_no_items": "Non accetta items",
	"api_ep_default_title": "Ripiega sul nome “[title]”",
	"api_copy": "Copia",
	"api_copied": "Copiato",
	"api_toast_copied": "Copiato negli appunti",
	"api_ep_open_builder": "Apri l'editor",
	"api_ep_back_to_top": "Torna su",
	"api_e_crossword": "Incastra le tue risposte in una griglia e numera le definizioni al posto tuo.",
	"api_c_crossword": "Un array di parole. Ogni voce abbina la risposta alla definizione che la indica.",
	"api_note_crossword_length": "Le risposte con meno di due caratteri vengono escluse prima di generare la griglia. Devono restare almeno due risposte valide.",
	"api_note_crossword_layout": "Le risposte vengono convertite in maiuscolo e il generatore ha venti tentativi per incastrarle. Se non riesce a piazzare nemmeno una parola, la chiamata risponde 500.",
	"api_e_wordseeker": "Nasconde le tue parole in una griglia di lettere, nelle direzioni e nella forma che scegli.",
	"api_c_wordseeker": "Un array di parole. Il testo della definizione diventa la lista di parole da cui lavorano i giocatori.",
	"api_note_wordseeker_length": "Le risposte sotto i due caratteri vengono scartate, e ogni risposta viene convertita in maiuscolo prima di finire nella griglia.",
	"api_note_wordseeker_arabic": "La griglia viene riempita con lettere latine, a meno che language non sia \"ar\", che passa il riempimento all'arabo.",
	"api_set_wordseeker_hidden_solution": "Le lettere rimaste dopo aver trovato tutte le parole formano questa soluzione nascosta. Se la imposti, il generatore dà priorità alla soluzione rispetto al numero di parole da inserire nella griglia.",
	"api_set_wordseeker_directions": "Le direzioni in cui possono essere inserite le parole. Se ometti questa impostazione, vengono usate solo est, sud-est e sud.",
	"api_set_wordseeker_template": "Ritaglia la griglia in una forma invece di lasciarla quadrata.",
	"api_e_acrostic": "Impila le tue risposte in modo che una colonna componga una parola nascosta.",
	"api_c_acrostic": "Un array di parole. Tutte insieme devono fornire ogni lettera della parola nascosta.",
	"api_set_acrostic_hidden_solution": "La parola composta dalla colonna evidenziata. Senza, questo endpoint non funziona.",
	"api_note_acrostic_letters": "Se le risposte non forniscono le lettere che servono alla soluzione, la chiamata risponde 500 invece di salvare una griglia a metà.",
	"api_note_acrostic_order": "Il generatore riordina le tue risposte perché la colonna funzioni, quindi l'ordine che invii non è l'ordine che vedono i giocatori.",
	"api_e_word-scramble": "Mescola le lettere di ogni risposta perché i giocatori le rimettano a posto.",
	"api_c_word-scramble": "Un array di parole. La definizione viene mostrata accanto alle lettere mescolate.",
	"api_set_scramble_hidden_solution": "Una parola bonus facoltativa che i giocatori inseriscono quando hanno risolto il resto.",
	"api_note_scramble_random": "Le attività create tramite API hanno sempre attiva l'impostazione che mescola l'ordine, quindi l'ordine che invii non è quello che ricevono i giocatori.",
	"api_e_hangman": "Trasforma le tue parole o frasi in partite in cui si indovinano le lettere.",
	"api_c_hangman": "Un array di parole o frasi brevi. L'indizio è il suggerimento che vedono i giocatori.",
	"api_e_wordle": "Trasforma ogni parola che invii in una partita in cui indovinare la parola.",
	"api_c_wordle": "Un array di parole. I giocatori fanno un round per ogni parola.",
	"api_note_wordle_dictionary": "Il controllo delle parole nel dizionario è attivo nelle attività create dall'API. Disattivalo nell'editor se usi nomi propri o parole inventate.",
	"api_e_typing-practice": "Trasforma le frasi in esercizi di digitazione.",
	"api_c_typing-practice": "Un array di parole o frasi da digitare. Il campo della definizione funge anche da istruzione.",
	"api_e_wheel-of-fortune": "Riempie una ruota che gira con i tuoi segmenti.",
	"api_c_wheel-of-fortune": "Un array di segmenti. Ogni risposta diventa uno spicchio.",
	"api_note_wheel_outcome": "Creata con “mostra il risultato solo nella ruota”, così il risultato si legge sulla ruota invece di essere annunciato accanto.",
	"api_e_memory": "Carte coperte da girare e abbinare a coppie.",
	"api_c_memory": "Un array di coppie. Ogni coppia contiene le due carte che vanno insieme.",
	"api_note_cards_media": "Una carta è un oggetto con un type e un value. Usa \"text\" per le parole, oppure \"image\", \"audio\", \"youtube\" o \"link\" con un URL in value, e aggiungi alt per una descrizione.",
	"api_e_matching-pairs": "Due colonne di carte da trascinare l'una sull'altra.",
	"api_c_matching-pairs": "Un array di coppie. La prima carta di ogni coppia finisce da un lato, la sua compagna dall'altro.",
	"api_e_flash-cards": "Carte a due facce da sfogliare.",
	"api_c_flash-cards": "Un array di carte. La prima carta è il fronte, la seconda il retro.",
	"api_note_flashcards_sides": "L'endpoint salva tutte le carte che invii, quindi inviane esattamente due per voce — prima il fronte, poi il retro.",
	"api_e_categorize": "Carte da smistare nella categoria a cui appartengono.",
	"api_c_categorize": "Un array di categorie, ognuna con un nome e le carte che le appartengono.",
	"api_note_categorize_name": "Una categoria inviata senza nome viene salvata come “Untitled Category”, quindi inviane sempre uno.",
	"api_e_reorder": "Una sequenza che i giocatori devono rimettere in ordine.",
	"api_c_reorder": "Un array di sequenze. Ognuna contiene le sue carte nell'ordine corretto.",
	"api_note_reorder_order": "L'ordine che invii viene salvato come ordine corretto — il numero uno per primo.",
	"api_e_quiz": "Domande a scelta multipla e aperte, con il punteggio calcolato mentre si gioca.",
	"api_c_quiz": "Un array di domande. Ogni domanda a scelta multipla include le opzioni di risposta; ogni domanda aperta include la risposta accettata.",
	"api_note_question_types": "question_type è \"multiple_choice\", dove l'opzione giusta ha isCorrect true, oppure \"open_answer\", che usa invece correct_answer. Se lo ometti, viene trattata come scelta multipla.",
	"api_note_quiz_settings": "L'endpoint quiz passa settings direttamente come blocchi di impostazioni dell'attività, quindi non è il posto per opzioni sparse — regola il quiz nell'editor dopo.",
	"api_e_board-game": "Un tabellone da percorrere di corsa, con le tue domande sulle caselle.",
	"api_c_board-game": "Un array di domande, esattamente nella forma che accetta l'endpoint quiz.",
	"api_set_board_tiles": "Quante caselle ha il tabellone. Tra 10 e 75.",
	"api_set_board_mode": "Se i giocatori corrono al traguardo o raccolgono oggetti lungo il percorso.",
	"api_e_cryptogram": "Trasforma una frase in un codice da decifrare, un carattere alla volta.",
	"api_c_cryptogram": "Una sola frase, nel campo sentence. Questo endpoint non accetta items.",
	"api_note_cryptogram_no_items": "Tutto quello che invii in items viene ignorato — il rompicapo si costruisce solo dalla frase.",
	"api_set_cryptogram_helpers": "Le lettere da rivelare all'inizio per aiutare i giocatori: nessuna, le più frequenti, le vocali oppure una selezione personalizzata.",
	"api_set_cryptogram_character_list": "L'alfabeto su cui si basa il cifrario. Se lo lasci vuoto, la cifratura ne sceglie uno da sé.",
	"api_set_cryptogram_extra_letters": "I caratteri svelati quando helpers è \"custom\". Ignorato con le altre modalità di aiuto.",
	"api_set_cryptogram_hide_unused": "Tiene fuori dalla chiave di cifratura i caratteri che la frase non usa mai.",
	"api_e_calculation": "Nasconde una frase dietro dei calcoli — risolvi il calcolo, scopri la lettera.",
	"api_c_calculation": "Una sola frase, nel campo sentence. Questo endpoint non accetta items.",
	"api_set_calc_difficulty": "Il risultato più alto che un calcolo può avere.",
	"api_set_calc_operators": "Quali operazioni possono comparire. x è la moltiplicazione, : la divisione.",
	"api_set_calc_max_operations": "Quante operazioni può concatenare un singolo calcolo.",
	"api_set_calc_number_difficulty": "Limita i singoli numeri all'interno di un calcolo. Da 5 a 1000.",
	"api_note_calculation_fit": "Se i vincoli sono troppo stretti per codificare la frase, la chiamata risponde 400 e ti chiede di allentarli, invece di salvare un rompicapo a metà.",
	"api_e_sudoku": "Genera una griglia risolta, poi ne toglie di nuovo dei numeri.",
	"api_c_sudoku": "Niente. L'intero rompicapo nasce dalle sue due impostazioni.",
	"api_note_sudoku_no_items": "Non inviare né items né sentence — dimensione e difficoltà sono tutto l'input.",
	"api_note_sudoku_difficulty_sizes": "L'editor offre la difficoltà solo per 2x3, 3x3 e 3x4. L'API la applica a ogni dimensione, 2x2 e 4x4 comprese.",
	"api_set_sudoku_size": "La dimensione di un blocco, scritta come righe per colonne — 3x3 dà la classica griglia 9x9. L'endpoint verifica solo che sia leggibile come due numeri, quindi resta sulle dimensioni che offre l'editor.",
	"api_set_sudoku_difficulty": "Quanti numeri restano sulla griglia come punto di partenza.",
	"api_e_jigsaw": "Taglia un'immagine in pezzi da ricomporre trascinandoli.",
	"api_c_jigsaw": "Un solo URL di immagine, nel campo image. Questo endpoint non accetta items.",
	"api_note_jigsaw_grid": "L'API crea sempre un puzzle 4 per 4. Il numero di pezzi, i pezzi irregolari e i bordi dritti sono impostazioni dell'editor — inviare qui rows o columns non fa niente.",
	"api_note_image_reachable": "L'URL viene salvato così come lo hai inviato e il file non viene mai copiato, quindi deve restare pubblicamente raggiungibile per tutto il tempo in cui l'attività viene giocata.",
	"api_e_slidingpuzzle": "Mescola un'immagine in tessere che scorrono al loro posto.",
	"api_c_slidingpuzzle": "Un solo URL di immagine, dentro settings. Questo endpoint non accetta items.",
	"api_note_sliding_image_slot": "A differenza del puzzle, questo endpoint legge la sua immagine da settings.image. Un campo image di primo livello viene ignorato e la chiamata risponde 400.",
	"api_help_title": "Qualcosa non funziona come dovrebbe?",
	"api_help_body": "Inviaci la richiesta che hai provato, senza la chiave API, e il messaggio di errore ricevuto. Ti risponderà direttamente chi ha sviluppato l'endpoint.",
	"api_help_cta": "Scrivi all'assistenza",
	"api_int_kicker": "Integrazioni per sviluppatori",
	"api_int_title": "Collega Puzzel alla tua piattaforma",
	"api_int_intro": "Puzzel può inviare il risultato di un giocatore direttamente a un altro sistema — il suo punteggio, quanto ha completato, cosa ha risposto — senza che quel sistema sia un LMS completo. Questa pagina raccoglie tutti i canali disponibili: cosa viene inviato, quando viene inviato e il minimo che devi costruire per riceverlo.",
	"api_int_hero_out_label": "I risultati escono tramite",
	"api_int_hero_out_value": "Un webhook, oppure un messaggio alla pagina che circonda l'attività",
	"api_int_hero_in_label": "La tua pagina può",
	"api_int_hero_in_value": "Far accedere il giocatore e azzerare l'attività",
	"api_int_hero_where_label": "Si attiva",
	"api_int_hero_where_value": "Per singola attività, nel menu Sviluppatore dell'editor",
	"api_int_hero_plan_label": "Incluso con",
	"api_int_hero_plan_value": "Un piano a pagamento — su un account gratuito queste impostazioni sono disattivate",
	"api_int_search_placeholder": "Cerca canali, campi ed esempi",
	"api_int_search_empty": "Nessun risultato in questa pagina. Prova un canale come webhook o postMessage, oppure un campo come progress.",
	"api_int_nav_channels": "Canali",
	"api_int_s_choose_title": "Di quale canale hai bisogno?",
	"api_int_s_choose_body": "Tre cose possono uscire da un'attività e una può entrare. Quale ti serve dipende da una sola domanda: il giocatore si trova dentro la tua pagina, oppure altrove?",
	"api_int_choose_out": "In uscita da Puzzel",
	"api_int_choose_in": "In entrata verso Puzzel",
	"api_int_choose_when": "Usalo quando",
	"api_int_choose_needs": "Ti serve",
	"api_int_choose_setting": "Impostazione",
	"api_int_ch_webhook_name": "Webhook dei risultati",
	"api_int_ch_webhook_summary": "Ogni risultato salvato viene inviato in POST, come JSON, a un URL di tua proprietà.",
	"api_int_ch_webhook_when": "Il giocatore può trovarsi ovunque — un link condiviso, un codice QR, il sito di qualcun altro — e vuoi avere il risultato nel tuo database.",
	"api_int_ch_webhook_needs": "Un endpoint HTTPS che accetta una richiesta POST cross-origin.",
	"api_int_ch_parent_name": "Risultati alla pagina che la circonda",
	"api_int_ch_parent_summary": "Lo stesso JSON, inviato alla pagina che incorpora l'attività invece che a un server.",
	"api_int_ch_parent_when": "Incorpori l'attività nella pagina del tuo corso e la pagina stessa può fare qualcosa con il risultato.",
	"api_int_ch_parent_needs": "Un iframe nella tua pagina e un listener per i messaggi. Nessun server, nessun CORS.",
	"api_int_ch_completion_name": "Segnale di completamento",
	"api_int_ch_completion_summary": "Un unico messaggio quando il giocatore finisce, che comunica solo questo.",
	"api_int_ch_completion_when": "Ti basta sapere se hanno finito — per spuntare la lezione, sbloccare la successiva o mostrare una tua schermata.",
	"api_int_ch_completion_needs": "Un iframe nella tua pagina e un listener per i messaggi.",
	"api_int_ch_trigger_name": "Azzeramento dalla tua pagina",
	"api_int_ch_trigger_summary": "La tua pagina dice all'attività incorporata di cancellare le risposte del giocatore e ricominciare.",
	"api_int_ch_trigger_when": "Hai un tuo pulsante \"riprova\" fuori dall'attività.",
	"api_int_ch_trigger_needs": "Un iframe nella tua pagina. Il messaggio viene accettato solo dalla pagina che esegue l'incorporamento.",
	"api_int_s_webhook_title": "Webhook dei risultati",
	"api_int_s_webhook_body": "Attiva \"Invia i risultati a un webhook\" nell'editor e indica un URL. Da quel momento, ogni volta che i progressi del giocatore vengono salvati, il suo browser invia in POST l'intero risultato a quell'URL, come JSON.",
	"api_int_webhook_steps_title": "Come configurarlo",
	"api_int_webhook_step_1": "Apri l'attività nell'editor e vai al menu Sviluppatore.",
	"api_int_webhook_step_2": "Attiva \"Invia i risultati a un webhook\" e incolla il tuo endpoint nel campo sottostante. Deve essere un URL completo — un semplice dominio viene rifiutato — e deve essere https, perché il browser blocca una chiamata http semplice fatta da una pagina servita in https.",
	"api_int_webhook_step_3": "Gioca tu stesso l'attività una volta. Il primo POST arriva non appena rispondi a qualcosa.",
	"api_int_webhook_receiver": "Un ricevitore, dall'inizio alla fine",
	"api_int_webhook_timing_title": "Si attiva mentre giochi, non solo alla fine",
	"api_int_webhook_timing_body": "Un risultato viene inviato ogni volta che la voce viene salvata: dopo una pausa nella digitazione, quando viene posizionata una carta, quando il tempo si ferma, e ancora una volta quando l'attività viene completata. Un cruciverba lungo genera una ventina di chiamate, non una sola — quindi scrivi il tuo gestore come un upsert basato su playerUid e activityKey, non come un inserimento. Ogni chiamata porta lo stato completo, quindi la più recente sostituisce sempre l'ultima e una chiamata persa viene compensata dalla successiva.",
	"api_int_webhook_finished_title": "Distinguere un completamento da un salvataggio",
	"api_int_webhook_finished_body": "progress è una percentuale: 100 significa che l'attività è completa. Alcuni tipi possono terminare senza raggiungerla — un quiz risposto fino in fondo, un campo soluzione risolto — e in quel caso portano invece hasAlternateCompletion. Considera entrambi i casi come completati.",
	"api_int_webhook_cors_title": "Viene inviato dal browser del giocatore",
	"api_int_webhook_cors_body": "Il POST arriva dalla scheda in cui si sta giocando l'attività, non da un server di Puzzel. La maggior parte degli endpoint costruiti per ricevere webhook lo accetta già. Se il tuo non riceve mai nessuna richiesta, ecco perché: il browser chiede prima il permesso, quindi rispondi al preflight OPTIONS con un'intestazione Access-Control-Allow-Origin, e il vero POST arriverà subito dopo.",
	"api_int_webhook_trust_title": "Tratta il payload come una dichiarazione, non come una prova",
	"api_int_webhook_trust_body": "La richiesta non ha una firma e proviene da un browser che non controlli, quindi chiunque guardi la pagina può inviartene una anche lui. Va benissimo per riempire una barra di avanzamento o una dashboard. Per qualsiasi cosa che non lasceresti impostare a uno studente in autonomia — un voto che conta, un attestato, un pagamento — verificalo con i risultati nella tua dashboard di Puzzel, oppure lascia che siano i connettori di voto per LMS a trasmettere il punteggio.",
	"api_int_s_parent_title": "Risultati alla pagina che la circonda",
	"api_int_s_parent_body": "Se incorpori l'attività, puoi far arrivare lo stesso JSON alla tua pagina invece che a un server. Attiva \"Invia i risultati alla pagina principale\" e resta in ascolto del messaggio. Nulla esce dal browser, quindi non c'è nessun endpoint da costruire e nessun CORS di cui preoccuparti.",
	"api_int_parent_origin_title": "Verifica da dove proviene il messaggio",
	"api_int_parent_origin_body": "Il tuo listener riceve ogni messaggio inviato alla pagina, comprese le estensioni del browser e altri frame. Confronta event.origin con https://puzzel.org prima di fidarti del suo contenuto.",
	"api_int_parent_same_title": "Lo stesso payload, la stessa tempistica",
	"api_int_parent_same_body": "È il gemello del webhook: gli stessi campi, inviati negli stessi momenti. Tutto quanto scritto in \"Cosa contiene un risultato\" vale anche qui.",
	"api_int_s_completion_title": "Segnale di completamento",
	"api_int_s_completion_body": "Il canale più piccolo, per quando il risultato in sé non ti riguarda: attiva \"Invia un segnale di completamento\" e la tua pagina riceve un messaggio nel momento in cui il giocatore finisce.",
	"api_int_completion_shape": "Cosa arriva",
	"api_int_completion_order_title": "Il risultato è già salvato quando arriva",
	"api_int_completion_order_body": "Il segnale viene inviato deliberatamente dopo che il salvataggio di completamento è avvenuto, quindi una pagina che reagisce rileggendo il risultato lo troverà già disponibile.",
	"api_int_completion_embed_title": "Solo dentro un iframe",
	"api_int_completion_embed_body": "Entrambi i canali a messaggi inviano alla pagina che incornicia l'attività. Se aperta nella propria scheda non c'è nessuno a cui dirlo, quindi non viene inviato nulla.",
	"api_int_s_payload_title": "Cosa contiene un risultato",
	"api_int_s_payload_body": "Una sola struttura, qualunque sia il canale che la trasporta. Le risposte del giocatore sono indicizzate dagli id degli elementi dell'attività, quindi le stesse chiavi compaiono anche in correctUids.",
	"api_int_col_when": "Quando è presente",
	"api_int_always": "sempre",
	"api_int_sometimes": "a volte",
	"api_int_payload_absent_title": "Assente, non vuoto",
	"api_int_payload_absent_body": "Un campo che non si applica viene omesso dal JSON invece di essere inviato come null o zero. È così che un tipo che non assegna un punteggio si distingue da un tentativo che ha ottenuto zero punti — quindi leggi sempre con un valore predefinito e non dare mai per scontato che una chiave sia presente.",
	"api_int_payload_example": "Un quiz completato, così come arriva",
	"api_int_f_activity_key": "L'attività a cui appartiene il risultato. La stessa chiave che vedi nell'URL dell'attività, dopo ?p=.",
	"api_int_f_player_uid": "Chi ha giocato, come id anonimo. Stabile per questo giocatore su questo dispositivo, quindi è ciò su cui basare l'indicizzazione dei risultati — non è un indirizzo e-mail né un account Puzzel.",
	"api_int_f_player": "I campi di registrazione richiesti dall'attività, come li hai configurati: nome, e-mail, classe, student_id e così via. Assente finché il giocatore non si è registrato, e del tutto assente su un'attività che non chiede nulla.",
	"api_int_f_progress": "Quanto è avanzato, in percentuale. 100 significa completato.",
	"api_int_f_time_passed": "Tempo trascorso sull'attività, in millisecondi.",
	"api_int_f_last_played_at": "Quando questo risultato è stato salvato, come timestamp Unix in millisecondi.",
	"api_int_f_created": "Quando il tentativo è iniziato, come timestamp Unix in millisecondi.",
	"api_int_f_player_input": "Ciò che il giocatore ha effettivamente inserito, indicizzato dall'id dell'elemento a cui appartiene. La struttura interna dipende dal tipo di attività — una parola, un elenco di carte posizionate, un'opzione scelta.",
	"api_int_f_correct_uids": "Quali di quegli elementi sono corretti, indicizzati allo stesso modo. Assente finché non è stata data ancora nessuna risposta.",
	"api_int_f_score": "Punti ottenuti, sui tipi che assegnano un punteggio a un tentativo. Assente in tutti gli altri casi — incluso un tentativo che ha davvero ottenuto zero punti, quindi verifica che la chiave esista prima di leggerla.",
	"api_int_f_performance": "Una misura specifica del tipo di quanto sia andato bene, dove ne tiene una — ad esempio le parole al minuto nell'esercizio di digitazione.",
	"api_int_f_attempts": "A quale tentativo corrisponde: 1 la prima volta, uno in più a ogni nuovo inizio. Solo sui tipi che possono terminare un tentativo in anticipo e ne contano le ripetizioni.",
	"api_int_f_knocked_out": "Il tentativo si è concluso con una risposta sbagliata ed è terminato senza essere completo.",
	"api_int_f_alternate": "L'attività è stata completata in un modo che non raggiunge il 100% — un quiz risposto fino in fondo, un campo soluzione risolto. Considerala comunque un completamento.",
	"api_int_f_missed_keys": "I caratteri che il giocatore ha continuato a sbagliare, in ordine di frequenza. Solo nell'esercizio di digitazione.",
	"api_int_f_content_version": "A quale versione del contenuto dell'attività si riferisce questo tentativo. Cambia quando il proprietario modifica le domande, così un risultato vecchio si può distinguere da uno attuale.",
	"api_int_s_control_title": "Azzerare l'attività dalla tua pagina",
	"api_int_s_control_body": "Un'istruzione viaggia nella direzione opposta. Con \"Accetta comandi dalla pagina principale\" attivato, la pagina che esegue l'incorporamento può cancellare le risposte del giocatore e riportare l'attività all'inizio — per un tuo pulsante \"riprova\" esterno al frame.",
	"api_int_control_only_title": "L'azzeramento è l'unico comando",
	"api_int_control_only_body": "Non esiste un messaggio per inviare un risultato, aprire il messaggio finale o passare a una domanda. Un messaggio che chiede qualcosa di diverso da un azzeramento viene ignorato.",
	"api_int_control_guard_title": "Viene ascoltata solo la pagina che incorpora",
	"api_int_control_guard_body": "Il comando viene accettato solo dalla pagina che incornicia l'attività e da nessun'altra parte — non un frame vicino, non uno script sulla pagina. L'impostazione è disattivata per impostazione predefinita, quindi attivala per le attività che controlli.",
	"api_int_s_identity_title": "Portare la propria identità del giocatore",
	"api_int_s_identity_body": "Se la tua piattaforma sa già chi sta giocando, l'attività non deve chiederglielo di nuovo. Esistono due handshake, entrambi per un'attività dentro la tua pagina, ed entrambi attivati da noi anziché nell'editor — cambiano a chi appartiene un risultato, quindi vengono configurati insieme a te e non da una casella di spunta.",
	"api_int_identity_pm_title": "Inviaci il giocatore",
	"api_int_identity_pm_body": "L'attività si annuncia con 'app-loaded' e resta in attesa. La tua pagina rimanda indietro i dati del giocatore, e il risultato viene archiviato sotto di essi senza che il giocatore digiti nulla o veda una schermata di registrazione.",
	"api_int_identity_sso_title": "Inviaci un token",
	"api_int_identity_sso_body": "Lo stesso handshake, ma la tua pagina invia il JWT emesso dal tuo provider di identità invece dei singoli campi. Lo verifichiamo rispetto agli emittenti configurati per il tuo account prima di far entrare il giocatore, quindi l'identità è dimostrata e non solo dichiarata — è questo da chiedere quando il risultato deve essere affidabile.",
	"api_int_identity_cta_title": "Chiedici di attivarlo",
	"api_int_identity_cta_body": "Dicci quale dei due vuoi e dove verranno incorporate le attività, e configureremo il tuo account guidandoti passo dopo passo.",
	"api_int_identity_cta_button": "Scrivici per l'identità",
	"api_int_s_create_title": "Creare attività dal tuo sistema",
	"api_int_s_create_body": "Tutto quanto sopra riguarda un risultato in uscita. Fare il percorso inverso — creare le attività stesse a partire da contenuti che hai già — è compito della Puzzle API: un POST per ogni tipo di attività, e in cambio ricevi una chiave e un URL da incorporare.",
	"api_int_create_link": "Leggi il riferimento API",
	"api_int_s_lms_title": "Quando un connettore già pronto è la soluzione migliore",
	"api_int_s_lms_body": "Se la piattaforma dall'altra parte è un vero LMS, probabilmente non ti serve niente di tutto questo. I voti possono tornare da soli al suo registro, senza che tu debba ospitare nulla.",
	"api_int_lms_lti_title": "Moodle, Canvas, Brightspace, Schoology, itslearning",
	"api_int_lms_lti_body": "Avviato dall'interno dell'LMS, con il punteggio scritto direttamente nel suo registro.",
	"api_int_lms_gc_title": "Google Classroom",
	"api_int_lms_gc_body": "Pubblica un'attività come compito e ricevi i voti in automatico.",
	"api_int_lms_not_title": "Non è nessuno di questi?",
	"api_int_lms_not_body": "Piattaforme per corsi, siti ad accesso riservato, intranet e qualsiasi cosa tu abbia costruito da solo sono esattamente ciò per cui servono i canali di questa pagina. Un incorporamento più il segnale di completamento copre la maggior parte dei casi.",
	"api_int_s_limits_title": "Cosa non c'è",
	"api_int_s_limits_body": "Così non lo cerchi invano:",
	"api_int_limit_no_read": "Nessun endpoint per rileggere i risultati. La API crea le attività; i risultati escono tramite i canali di questa pagina, oppure tramite le esportazioni nella tua dashboard.",
	"api_int_limit_no_signature": "Nessuna firma sul webhook. Non c'è nulla su cui verificare la richiesta, ed è per questo che un risultato non dovrebbe essere l'unica cosa a garantire qualcosa di importante.",
	"api_int_limit_per_activity": "Nessun webhook a livello di account. L'URL è un'impostazione di una singola attività, quindi un'attività che copi la porta con sé, mentre una nuova ne parte priva.",
	"api_int_limit_no_multiplayer": "Niente in un gioco a squadre o in una stanza dal vivo. Sia i canali a messaggi sia il webhook sono pensati per il gioco singolo, e le impostazioni si disattivano da sole quando il gioco a squadre è attivo.",
	"api_int_limit_no_retry": "Nessuna coda di consegna. Niente viene memorizzato e reinviato — il prossimo salvataggio funge da nuovo tentativo, e l'ultima chiamata del tentativo è quella che conta.",
	"api_nav_integrations": "Far uscire i risultati"
}
