{
	"api_kicker": "API dla programistów",
	"api_title": "Twórz aktywności z własnego systemu",
	"api_intro": "Jeden POST na typ aktywności. Wyślij swoją treść jako JSON, a w zamian dostaniesz aktywność na koncie Puzzel.org i adres URL, który przekażesz graczom albo wstawisz do iframe.",
	"api_search_placeholder": "Szukaj endpointów, pól i ustawień",
	"api_search_results": "pasujących na tej stronie",
	"api_search_empty": "Nic na tej stronie nie pasuje. Spróbuj nazwy endpointu, pola takiego jak activity_key albo kodu statusu.",
	"api_search_clear": "Wyczyść wyszukiwanie",
	"api_nav_guide": "Pierwsze kroki",
	"api_nav_endpoints": "Endpointy",
	"api_toc_label": "Na tej stronie",
	"api_hero_base_label": "Bazowy URL",
	"api_hero_method_label": "Metoda",
	"api_hero_method_value": "POST, treść JSON",
	"api_hero_auth_label": "Uwierzytelnianie",
	"api_hero_auth_value": "Klucz + e-mail w treści żądania",
	"api_hero_limit_label": "Limit",
	"api_hero_limit_value": "[limit] aktywności dziennie",
	"api_hero_count_label": "Endpointy",
	"api_hero_count_value": "[count] typów aktywności",
	"api_s_quickstart_title": "Twoje pierwsze żądanie",
	"api_s_quickstart_body": "Nic nie instalujesz i nie ma żadnej wstępnej wymiany tokenów: wyślij metodą POST treść JSON ze swoim kluczem, adresem e-mail i zawartością. W odpowiedzi wracają klucz nowej aktywności i adres URL, pod którym się w nią gra.",
	"api_s_quickstart_note": "Każdy przykład na tej stronie to kompletne, gotowe do uruchomienia żądanie. Podstaw własny klucz i własną treść, a zadziała bez żadnych zmian.",
	"api_s_auth_title": "Uwierzytelnianie",
	"api_s_auth_body": "Nie ma żadnych nagłówków ani tokenu bearer. Oba dane uwierzytelniające jadą w treści JSON każdego żądania, a klucz jest akceptowany tylko dla konta, do którego należy ten adres e-mail.",
	"api_s_auth_where": "Twój klucz znajdziesz w sekcji konta w panelu, pod przyciskiem Pokaż.",
	"api_s_auth_where_link": "Otwórz mój klucz API",
	"api_s_auth_premium": "Klucze API przyznajemy w chwili rozpoczęcia subskrypcji, więc bezpłatne konto jeszcze go nie ma.",
	"api_s_auth_plans": "Zobacz plany",
	"api_s_auth_secret": "Traktuj klucz jak hasło. Tworzy i nadpisuje aktywności na twoim koncie, więc trzymaj go po stronie serwera, z dala od wszystkiego, co może odczytać przeglądarka.",
	"api_prefill_kicker": "Przykłady",
	"api_prefill_label": "Wypełnij przykłady moim własnym kluczem API",
	"api_prefill_signed_out": "Zaloguj się, a twój klucz wskoczy do każdego przykładu na tej stronie.",
	"api_prefill_sign_in": "Zaloguj się",
	"api_prefill_none": "Na tym koncie nie ma jeszcze klucza API.",
	"api_prefill_warning": "Każdy przykład zawiera teraz twój prawdziwy klucz. Nie wklejaj go na czacie, w zgłoszeniu ani w publicznym repozytorium.",
	"api_s_request_title": "Treść żądania",
	"api_s_request_body": "Każdy endpoint przyjmuje te same pięć pól. Różni się tylko pole z zawartością pod nimi: większość przyjmuje tablicę items, kilka jedno zdanie albo jeden obraz, a sudoku nie przyjmuje niczego.",
	"api_s_request_settings": "settings to obiekt z opcjami danego endpointu. Które z nich endpoint odczytuje, wypisane jest przy nim niżej; wszystko inne, co tam umieścisz, jest ignorowane.",
	"api_col_field": "Pole",
	"api_col_type": "Typ",
	"api_col_notes": "Do czego służy",
	"api_col_status": "Status",
	"api_col_meaning": "Co oznacza",
	"api_required": "wymagane",
	"api_optional": "opcjonalne",
	"api_default_label": "Domyślnie",
	"api_allowed_label": "Jedna z wartości",
	"api_in_settings": "w settings",
	"api_f_account_api_key": "Klucz API twojego konta. Trafia do treści żądania, a nie do nagłówka.",
	"api_f_email": "Adres, którym logujesz się na swoje konto Puzzel.org. Klucz jest ważny tylko razem z nim.",
	"api_f_title": "Nazwa, jaką aktywność dostanie w twoim panelu. Pomiń je, a endpoint użyje własnej nazwy zapasowej.",
	"api_f_language": "Decyduje tylko o języku w zwracanym adresie URL — nie tłumaczy niczego, co wysyłasz. Wykreślanka dodatkowo z niego korzysta, by przełączyć litery wypełniające na arabskie, gdy ma wartość \"ar\".",
	"api_f_activity_key": "Pomiń je, aby utworzyć nową aktywność. Podaj klucz aktywności, którą już masz, a zostanie ona przebudowana.",
	"api_f_sentence_cryptogram": "Zdanie do zaszyfrowania. Gracze rozszyfrowują je znak po znaku.",
	"api_f_sentence_calculation": "Zdanie, które gracze odkrywają, rozwiązując działania.",
	"api_f_image": "Bezwzględny adres URL obrazu do pocięcia. Wysyłany na najwyższym poziomie, nie w settings.",
	"api_f_image_setting": "Bezwzględny adres URL obrazu do wymieszania. W odróżnieniu od puzzli, ten trafia do settings.",
	"api_s_response_title": "Co wraca w odpowiedzi",
	"api_s_response_body": "Udane wywołanie odpowiada kodem 200 z kluczem nowej aktywności i adresem URL, pod którym się w nią gra. Wszystko inne odpowiada polem success ustawionym na false i jednym tekstem błędu.",
	"api_response_success": "Sukces",
	"api_response_error": "Niepowodzenie",
	"api_s_response_urls": "Zwracany url to widok osadzony. Zamień embed na play, aby otworzyć go na całej stronie, albo na build, aby otworzyć go w edytorze — klucz po p= pozostaje ten sam.",
	"api_s_updating_title": "Tworzenie a aktualizacja",
	"api_s_updating_body": "Wyślij activity_key, a stojąca za nim aktywność zostanie przebudowana na miejscu: jej zawartość jest zastępowana, nazwa i znacznik wersji odświeżane, a sam klucz pozostaje ten sam — więc udostępnione już linki i osadzenia działają dalej. Wyniki, umieszczenie w folderze i wszystkie ustawienia, których endpoint sam nie zapisuje, zostają bez zmian.",
	"api_s_updating_own": "Aktualizować możesz tylko aktywności należące do twojego konta. Cudzy klucz kończy się odpowiedzią 403.",
	"api_s_updating_name": "title jest stosowane przy każdej aktualizacji, razem z wartością domyślną — pomiń je, a aktywność zostanie przemianowana na nazwę zapasową tego endpointu.",
	"api_s_updating_settings": "Bloki ustawień, które endpoint zapisuje sam, są pisane od zera, więc aktualizacja resetuje je do wartości, które wyślesz, albo do wartości domyślnych endpointu.",
	"api_s_updating_quota": "Aktualizacja kosztuje tyle samo co utworzenie: jedno wywołanie z dziennego limitu.",
	"api_s_limits_title": "Limit żądań",
	"api_s_limits_body": "Liczy się każde udane wywołanie, zarówno tworzenie, jak i aktualizacja. Po przekroczeniu limitu kolejne żądanie odpowiada kodem 429, dopóki licznik nie zostanie wyzerowany.",
	"api_s_limits_counter": "[limit] aktywności na konto dziennie",
	"api_s_limits_reset": "Licznik jest zerowany raz dziennie przez zaplanowane zadanie, a nie w ruchomym oknie 24 godzin.",
	"api_s_errors_title": "Błędy",
	"api_s_errors_body": "Błędy zawsze przychodzą jako JSON z tymi samymi dwoma polami, nigdy jako strona HTML. Tekst błędu jest napisany tak, by przeczytał go człowiek — nazywa pole albo limit, na którym coś się wysypało.",
	"api_err_400": "Czegoś w treści żądania brakuje, coś jest źle zbudowane albo poza zakresem. Komunikat wskazuje pole.",
	"api_err_401": "Adres e-mail jest nieznany albo klucz nie należy do tego konta.",
	"api_err_403": "Wysłany activity_key należy do innego konta.",
	"api_err_429": "Dzisiejszy limit został wyczerpany. Zeruje się raz dziennie.",
	"api_err_500": "Generator nie zdołał zbudować łamigłówki z tego, co wysłano — zwykle za mało słów albo słowa, których nie da się ze sobą dopasować.",
	"api_endpoints_title": "Endpointy",
	"api_endpoints_intro": "Jedna ścieżka na typ aktywności, wszystkie POST, wszystkie pod tym samym bazowym URL. Przy każdej wypisana jest treść, której potrzebuje, ustawienia, które odczytuje, i żądanie, które możesz uruchomić.",
	"api_group_words": "Słowa i litery",
	"api_group_cards": "Karty i pary",
	"api_group_questions": "Pytania i odpowiedzi",
	"api_group_text": "Zdania i liczby",
	"api_group_images": "Obrazy",
	"api_ep_content_label": "Treść",
	"api_ep_settings_label": "Odczytywane ustawienia",
	"api_ep_settings_none": "Ten endpoint nie odczytuje żadnych ustawień.",
	"api_ep_example_label": "Przykładowe żądanie",
	"api_ep_notes_label": "Warto wiedzieć",
	"api_ep_min_items": "Co najmniej [count] elementów w items",
	"api_ep_no_items": "Nie przyjmuje items",
	"api_ep_default_title": "W razie braku używa nazwy “[title]”",
	"api_copy": "Kopiuj",
	"api_copied": "Skopiowano",
	"api_toast_copied": "Skopiowano do schowka",
	"api_ep_open_builder": "Otwórz edytor",
	"api_ep_back_to_top": "Powrót na górę",
	"api_e_crossword": "Splata twoje odpowiedzi w siatkę i sam numeruje definicje.",
	"api_c_crossword": "Tablica słów. Każdy wpis łączy odpowiedź z definicją, która na nią wskazuje.",
	"api_note_crossword_length": "Odpowiedzi krótsze niż dwa znaki są odrzucane przed zbudowaniem siatki i co najmniej dwie muszą to przetrwać.",
	"api_note_crossword_layout": "Odpowiedzi są zamieniane na wielkie litery, a generator ma dwadzieścia prób, żeby je dopasować. Jeśli nie zdoła umieścić ani jednego słowa, wywołanie odpowiada kodem 500.",
	"api_e_wordseeker": "Ukrywa twoje słowa w siatce liter, w wybranych przez ciebie kierunkach i kształcie.",
	"api_c_wordseeker": "Tablica słów. Tekst definicji staje się listą słów, z której korzystają gracze.",
	"api_note_wordseeker_length": "Odpowiedzi krótsze niż dwa znaki są odrzucane, a każda odpowiedź trafia do siatki zamieniona na wielkie litery.",
	"api_note_wordseeker_arabic": "Siatka jest wypełniana literami łacińskimi, chyba że language ma wartość \"ar\" — wtedy litery wypełniające przełączają się na arabskie.",
	"api_set_wordseeker_hidden_solution": "Pozostałe litery układają się w to rozwiązanie. Ustawienie go mówi też generatorowi, żeby najpierw dopasował rozwiązanie, zamiast upchnąć jak najwięcej słów.",
	"api_set_wordseeker_directions": "W których kierunkach może biec słowo. Pomiń je, a słowa pobiegną tylko na wschód, na południowy wschód i na południe.",
	"api_set_wordseeker_template": "Wycina siatkę w kształt, zamiast zostawiać ją kwadratową.",
	"api_e_acrostic": "Układa twoje odpowiedzi jedna pod drugą tak, by jedna kolumna tworzyła ukryte słowo.",
	"api_c_acrostic": "Tablica słów. Razem muszą dostarczyć wszystkie litery ukrytego słowa.",
	"api_set_acrostic_hidden_solution": "Słowo, które układa się w wyróżnionej kolumnie. Bez niego ten endpoint nie zadziała.",
	"api_note_acrostic_letters": "Jeśli odpowiedzi nie dostarczą liter potrzebnych do rozwiązania, wywołanie odpowiada kodem 500, zamiast zapisać niedokończoną siatkę.",
	"api_note_acrostic_order": "Generator zmienia kolejność twoich odpowiedzi, żeby kolumna zadziałała, więc kolejność, którą wysyłasz, nie jest tą, którą widzą gracze.",
	"api_e_word-scramble": "Miesza litery każdej odpowiedzi, a gracze układają je z powrotem.",
	"api_c_word-scramble": "Tablica słów. Definicja pokazuje się obok pomieszanych liter.",
	"api_set_scramble_hidden_solution": "Opcjonalne słowo bonusowe, które gracze wpisują po rozwiązaniu reszty.",
	"api_note_scramble_random": "Aktywności tworzone przez API zawsze mają włączone losowanie kolejności, więc kolejność, którą wysyłasz, nie jest tą, którą dostają gracze.",
	"api_e_hangman": "Zamienia twoje słowa lub zwroty w rundy zgadywania liter.",
	"api_c_hangman": "Tablica słów lub krótkich zwrotów. Wskazówka jest podpowiedzią, którą widzą gracze.",
	"api_e_wordle": "Z każdego wysłanego słowa robi grę w zgadywanie słowa.",
	"api_c_wordle": "Tablica słów. Gracze dostają jedną rundę na każde słowo.",
	"api_note_wordle_dictionary": "Tworzone z włączonym sprawdzaniem, czy zgadywane słowa naprawdę istnieją. Wyłącz je w edytorze, jeśli twoje słowa to nazwy własne albo wyrazy wymyślone.",
	"api_e_typing-practice": "Zamienia zdania w ćwiczenia z pisania na klawiaturze.",
	"api_c_typing-practice": "Tablica słów lub zdań do przepisania. Pole wskazówki pełni jednocześnie rolę polecenia.",
	"api_e_wheel-of-fortune": "Wypełnia obracające się koło twoimi własnymi segmentami.",
	"api_c_wheel-of-fortune": "Tablica segmentów. Każda odpowiedź staje się jednym wycinkiem.",
	"api_note_wheel_outcome": "Tworzone z ustawieniem “pokaż wynik tylko w kole”, więc rezultat odczytuje się z koła, zamiast być ogłaszanym obok.",
	"api_e_memory": "Karty odwrócone rewersem do góry, które odkrywa się i dobiera w pary.",
	"api_c_memory": "Tablica par. Każda para zawiera dwie karty, które do siebie pasują.",
	"api_note_cards_media": "Karta to obiekt z polami type i value. Użyj \"text\" dla słów albo \"image\", \"audio\", \"youtube\" czy \"link\" z adresem URL w value i dodaj alt z opisem.",
	"api_e_matching-pairs": "Dwie kolumny kart, które przeciąga się do siebie.",
	"api_c_matching-pairs": "Tablica par. Pierwsza karta każdej pary ląduje po jednej stronie, jej partnerka po drugiej.",
	"api_e_flash-cards": "Dwustronne karty do przewracania.",
	"api_c_flash-cards": "Tablica kart. Pierwsza karta to przód, druga to tył.",
	"api_note_flashcards_sides": "Endpoint zapisuje tyle kart, ile wyślesz, więc wysyłaj dokładnie dwie na wpis — najpierw przód, potem tył.",
	"api_e_categorize": "Karty do rozdzielenia do kategorii, do których należą.",
	"api_c_categorize": "Tablica kategorii, każda z nazwą i kartami, które do niej należą.",
	"api_note_categorize_name": "Kategoria wysłana bez nazwy zapisuje się jako “Untitled Category”, więc zawsze podawaj nazwę.",
	"api_e_reorder": "Sekwencja, którą gracze muszą ułożyć z powrotem w kolejności.",
	"api_c_reorder": "Tablica sekwencji. Każda zawiera swoje karty w poprawnej kolejności.",
	"api_note_reorder_order": "Kolejność, którą wysyłasz, jest zapisywana jako poprawna — pozycja numer jeden na początku.",
	"api_e_quiz": "Pytania wielokrotnego wyboru i otwarte, punktowane na bieżąco.",
	"api_c_quiz": "Tablica pytań. Pytania wielokrotnego wyboru niosą swoje odpowiedzi, pytania otwarte — odpowiedź, którą akceptujesz.",
	"api_note_question_types": "question_type to albo \"multiple_choice\", gdzie poprawna opcja ma isCorrect ustawione na true, albo \"open_answer\", które zamiast tego korzysta z correct_answer. Pominięte, jest traktowane jako pytanie wielokrotnego wyboru.",
	"api_note_quiz_settings": "Endpoint quizu przekazuje settings prosto jako bloki ustawień aktywności, więc nie jest to miejsce na luźne opcje — quiz dopracuj potem w edytorze.",
	"api_e_board-game": "Plansza, po której gracze się ścigają, z twoimi pytaniami na polach.",
	"api_c_board-game": "Tablica pytań, dokładnie w takim kształcie, jaki przyjmuje endpoint quizu.",
	"api_set_board_tiles": "Ile pól ma plansza. Od 10 do 75.",
	"api_set_board_mode": "Czy gracze ścigają się do mety, czy zbierają po drodze przedmioty.",
	"api_e_cryptogram": "Zamienia zdanie w szyfr do złamania, znak po znaku.",
	"api_c_cryptogram": "Jedno zdanie, w polu sentence. Ten endpoint nie przyjmuje items.",
	"api_note_cryptogram_no_items": "Wszystko, co wyślesz w items, jest ignorowane — łamigłówka powstaje z samego zdania.",
	"api_set_cryptogram_helpers": "Które znaki są odsłaniane za darmo na wejście: żadne, najczęstsze, samogłoski albo te, które wypiszesz samodzielnie.",
	"api_set_cryptogram_character_list": "Alfabet, z którego budowany jest szyfr. Zostawiony pusty, szyfrowanie wybierze go samo.",
	"api_set_cryptogram_extra_letters": "Znaki odsłaniane, gdy helpers ma wartość \"custom\". Przy pozostałych trybach ignorowane.",
	"api_set_cryptogram_hide_unused": "Pomija w kluczu znaki, których zdanie w ogóle nie używa.",
	"api_e_calculation": "Ukrywa zdanie za działaniami — rozwiąż działanie, odsłoń literę.",
	"api_c_calculation": "Jedno zdanie, w polu sentence. Ten endpoint nie przyjmuje items.",
	"api_set_calc_difficulty": "Najwyższy wynik, jaki może dać działanie.",
	"api_set_calc_operators": "Które operacje mogą się pojawić. x to mnożenie, : to dzielenie.",
	"api_set_calc_max_operations": "Ile operacji może połączyć w sobie jedno działanie.",
	"api_set_calc_number_difficulty": "Ogranicza pojedyncze liczby w działaniu. Od 5 do 1000.",
	"api_note_calculation_fit": "Jeśli ograniczenia są zbyt ciasne, by zakodować zdanie, wywołanie odpowiada kodem 400 z prośbą o ich poluzowanie, zamiast zapisać niepełną łamigłówkę.",
	"api_e_sudoku": "Generuje rozwiązaną siatkę, a potem wyjmuje z niej liczby.",
	"api_c_sudoku": "Nic. Cała łamigłówka powstaje z dwóch ustawień.",
	"api_note_sudoku_no_items": "Nie wysyłaj ani items, ani sentence — rozmiar i poziom trudności to całe wejście.",
	"api_note_sudoku_difficulty_sizes": "Edytor oferuje poziom trudności tylko dla 2x3, 3x3 i 3x4. API stosuje go do każdego rozmiaru, w tym 2x2 i 4x4.",
	"api_set_sudoku_size": "Rozmiar jednego bloku, zapisany jako wiersze na kolumny — 3x3 daje klasyczną siatkę 9x9. Endpoint sprawdza tylko, czy da się to odczytać jako dwie liczby, więc trzymaj się rozmiarów, które oferuje edytor.",
	"api_set_sudoku_difficulty": "Ile liczb zostaje w siatce na start.",
	"api_e_jigsaw": "Tnie obraz na elementy, które trzeba z powrotem złożyć.",
	"api_c_jigsaw": "Jeden adres URL obrazu, w polu image. Ten endpoint nie przyjmuje items.",
	"api_note_jigsaw_grid": "API zawsze tworzy puzzle 4 na 4. Liczba elementów, nieregularne kształty i proste krawędzie to ustawienia edytora — wysyłanie tutaj rows albo columns nic nie daje.",
	"api_note_image_reachable": "Adres URL jest zapisywany dokładnie tak, jak go wyślesz, a plik nigdy nie jest kopiowany, więc musi pozostać publicznie dostępny tak długo, jak długo gra się w tę aktywność.",
	"api_e_slidingpuzzle": "Rozsypuje obraz na kafelki, które wsuwa się na miejsce.",
	"api_c_slidingpuzzle": "Jeden adres URL obrazu, w settings. Ten endpoint nie przyjmuje items.",
	"api_note_sliding_image_slot": "W odróżnieniu od puzzli, ten endpoint czyta obraz z settings.image. Pole image na najwyższym poziomie jest ignorowane, a wywołanie odpowiada kodem 400.",
	"api_help_title": "Coś nie działa jak trzeba?",
	"api_help_body": "Wyślij swoje żądanie i błąd, który wrócił, a dostaniesz konkretną odpowiedź — od osoby, która napisała ten endpoint.",
	"api_help_cta": "Napisz do pomocy",
	"api_int_kicker": "Integracje dla deweloperów",
	"api_int_title": "Podłącz Puzzel do własnej platformy",
	"api_int_intro": "Puzzel może przekazać wynik gracza bezpośrednio do innego systemu — jego punktację, to, jak daleko doszedł, co odpowiedział — bez potrzeby, żeby ten system był pełnym systemem LMS. Ta strona zawiera wszystkie dostępne kanały: co z niej wychodzi, kiedy wychodzi i najmniejszą rzecz, którą musisz zbudować, żeby to odebrać.",
	"api_int_hero_out_label": "Wyniki wychodzą przez",
	"api_int_hero_out_value": "Webhook lub wiadomość do strony osadzającej aktywność",
	"api_int_hero_in_label": "Twoja strona może",
	"api_int_hero_in_value": "Zalogować gracza i zresetować aktywność",
	"api_int_hero_where_label": "Włączane",
	"api_int_hero_where_value": "Dla każdej aktywności osobno, w sekcji Deweloper w edytorze",
	"api_int_hero_plan_label": "Dostępne w",
	"api_int_hero_plan_value": "Płatnym planie — na koncie bezpłatnym te ustawienia są wyłączone",
	"api_int_search_placeholder": "Szukaj kanałów, pól i przykładów",
	"api_int_search_empty": "Nic na tej stronie nie pasuje do tego zapytania. Spróbuj kanału takiego jak webhook lub postMessage, albo pola takiego jak progress.",
	"api_int_nav_channels": "Kanały",
	"api_int_s_choose_title": "Którego kanału potrzebujesz?",
	"api_int_s_choose_body": "Z aktywności mogą wyjść trzy rzeczy, a jedna może do niej wejść. To, która pasuje, zależy od jednego pytania: czy gracz znajduje się wewnątrz twojej strony, czy zupełnie gdzie indziej?",
	"api_int_choose_out": "Wyjście z Puzzel",
	"api_int_choose_in": "Wejście do Puzzel",
	"api_int_choose_when": "Użyj, gdy",
	"api_int_choose_needs": "Potrzebujesz",
	"api_int_choose_setting": "Ustawienie",
	"api_int_ch_webhook_name": "Webhook wyników",
	"api_int_ch_webhook_summary": "Każdy zapisany wynik jest wysyłany metodą POST jako JSON na adres URL, który podasz.",
	"api_int_ch_webhook_when": "Gracz może być gdziekolwiek — na udostępnionym linku, kodzie QR, cudzej stronie — a ty chcesz mieć wynik we własnej bazie danych.",
	"api_int_ch_webhook_needs": "Endpointu HTTPS, który przyjmuje zapytania POST z innej domeny.",
	"api_int_ch_parent_name": "Wyniki do strony osadzającej",
	"api_int_ch_parent_summary": "Ten sam JSON, wysyłany do strony, w której osadzono aktywność, zamiast na serwer.",
	"api_int_ch_parent_when": "Osadzasz aktywność na własnej stronie kursu, a ta strona sama może coś zrobić z wynikiem.",
	"api_int_ch_parent_needs": "Iframe na twojej stronie i nasłuchiwacz wiadomości. Bez serwera, bez CORS.",
	"api_int_ch_completion_name": "Sygnał ukończenia",
	"api_int_ch_completion_summary": "Jedna wiadomość, gdy gracz skończy — niosąca tylko tę jedną informację.",
	"api_int_ch_completion_when": "Chcesz wiedzieć tylko, czy gracz skończył — żeby odhaczyć lekcję, odblokować kolejną albo pokazać własny ekran.",
	"api_int_ch_completion_needs": "Iframe na twojej stronie i nasłuchiwacz wiadomości.",
	"api_int_ch_trigger_name": "Reset ze strony",
	"api_int_ch_trigger_summary": "Twoja strona każe osadzonej aktywności wyczyścić odpowiedzi gracza i zacząć od nowa.",
	"api_int_ch_trigger_when": "Masz własny przycisk \"spróbuj ponownie\" poza aktywnością.",
	"api_int_ch_trigger_needs": "Iframe na twojej stronie. Wiadomość jest przyjmowana tylko ze strony, która osadza aktywność.",
	"api_int_s_webhook_title": "Webhook wyników",
	"api_int_s_webhook_body": "Włącz ustawienie \"Wysyłaj wyniki do webhooka\" w edytorze i podaj adres URL. Od tej pory za każdym razem, gdy postęp gracza zostanie zapisany, jego przeglądarka wyśle metodą POST cały wynik na ten adres jako JSON.",
	"api_int_webhook_steps_title": "Konfiguracja",
	"api_int_webhook_step_1": "Otwórz aktywność w edytorze i przejdź do menu Deweloper.",
	"api_int_webhook_step_2": "Włącz \"Wysyłaj wyniki do webhooka\" i wklej adres swojego endpointu w polu poniżej. Musi to być pełny URL — sama domena zostanie odrzucona — i musi zaczynać się od https, bo przeglądarka blokuje zwykłe zapytanie http wysyłane ze strony serwowanej przez https.",
	"api_int_webhook_step_3": "Zagraj raz sam w aktywność. Pierwsze zapytanie POST dotrze, gdy tylko coś odpowiesz.",
	"api_int_webhook_receiver": "Odbiornik od początku do końca",
	"api_int_webhook_timing_title": "Uruchamia się w trakcie gry, nie dopiero na końcu",
	"api_int_webhook_timing_body": "Wynik wychodzi za każdym razem, gdy wpis zostanie zapisany: po przerwie w pisaniu, gdy karta zostanie odłożona, gdy zatrzyma się stoper, i jeszcze raz, gdy aktywność zostanie ukończona. Długa krzyżówka to kilkadziesiąt wywołań, nie jedno — dlatego napisz swój handler jako upsert po kluczu playerUid i activityKey, a nie jako insert. Każde wywołanie niesie kompletny stan, więc najnowsze zawsze zastępuje poprzednie, a wywołanie, które nie dotrze, zostanie nadrobione przez następne.",
	"api_int_webhook_finished_title": "Jak odróżnić zakończenie od zwykłego zapisu",
	"api_int_webhook_finished_body": "progress to wartość procentowa: 100 oznacza, że aktywność jest ukończona. Kilka typów może się zakończyć bez osiągnięcia tej wartości — quiz, na który odpowiedziano do końca, rozwiązane pole solution — i wtedy zamiast tego niosą hasAlternateCompletion. Oba przypadki traktuj jako ukończenie.",
	"api_int_webhook_cors_title": "Wysyła to przeglądarka gracza",
	"api_int_webhook_cors_body": "Zapytanie POST pochodzi z karty przeglądarki, w której toczy się gra, a nie z serwera Puzzel. Większość endpointów zbudowanych do odbierania webhooków już to obsługuje. Jeśli twój nigdy nie widzi żadnego zapytania, to właśnie dlatego: przeglądarka najpierw pyta o zgodę, więc odpowiedz na zapytanie wstępne OPTIONS nagłówkiem Access-Control-Allow-Origin, a właściwe zapytanie POST przyjdzie zaraz po nim.",
	"api_int_webhook_trust_title": "Traktuj dane jako deklarację, nie dowód",
	"api_int_webhook_trust_body": "Zapytanie nie ma podpisu i pochodzi z przeglądarki, nad którą nie masz kontroli, więc każdy, kto zajrzy na tę stronę, może wysłać ci taki sam. To wystarcza do wypełnienia paska postępu czy panelu. Do wszystkiego, czego nie pozwoliłbyś ustawić uczniowi samodzielnie — liczącej się oceny, certyfikatu, płatności — sprawdź to z wynikami we własnym panelu Puzzel albo pozwól, aby punktację przekazały zamiast tego integracje ocen z LMS.",
	"api_int_s_parent_title": "Wyniki do strony osadzającej",
	"api_int_s_parent_body": "Jeśli osadzasz aktywność, możesz sprawić, że ten sam JSON trafi na twoją własną stronę zamiast na serwer. Włącz \"Wysyłaj wyniki do strony nadrzędnej\" i nasłuchuj wiadomości. Nic nie opuszcza przeglądarki, więc nie musisz budować żadnego endpointu ani martwić się o CORS.",
	"api_int_parent_origin_title": "Sprawdź, skąd przyszła wiadomość",
	"api_int_parent_origin_body": "Twój nasłuchiwacz odbiera każdą wiadomość wysłaną do strony, w tym z innych ramek i rozszerzeń przeglądarki. Zanim zaufasz jej zawartości, porównaj event.origin z https://puzzel.org.",
	"api_int_parent_same_title": "Te same dane, ten sam moment wysyłki",
	"api_int_parent_same_body": "To bliźniak webhooka: te same pola, wysyłane w tych samych momentach. Wszystko, co jest napisane w sekcji \"Co zawiera wynik\", dotyczy też tego kanału.",
	"api_int_s_completion_title": "Sygnał ukończenia",
	"api_int_s_completion_body": "Najmniejszy kanał, na wypadek gdy sam wynik cię nie interesuje: włącz \"Wysyłaj sygnał ukończenia\", a twoja strona dostanie jedną wiadomość w chwili, gdy gracz skończy.",
	"api_int_completion_shape": "Co przychodzi",
	"api_int_completion_order_title": "Wynik jest już zapisany, gdy sygnał dociera",
	"api_int_completion_order_body": "Sygnał jest celowo wysyłany dopiero po tym, jak zapis kończący dotrze do celu, więc strona, która w reakcji na niego odczyta wynik z powrotem, znajdzie go już zapisany.",
	"api_int_completion_embed_title": "Tylko wewnątrz iframe",
	"api_int_completion_embed_body": "Oba kanały wiadomości wysyłają dane do strony, która osadza aktywność w ramce. Otwarta we własnej karcie aktywność nie ma komu nic przekazać, więc nic nie zostaje wysłane.",
	"api_int_s_payload_title": "Co zawiera wynik",
	"api_int_s_payload_body": "Jeden kształt danych, niezależnie od tego, który kanał je niesie. Odpowiedzi gracza są indeksowane identyfikatorami elementów samej aktywności, więc te same klucze pojawiają się w correctUids.",
	"api_int_col_when": "Kiedy występuje",
	"api_int_always": "zawsze",
	"api_int_sometimes": "czasami",
	"api_int_payload_absent_title": "Brak pola, nie puste pole",
	"api_int_payload_absent_body": "Pole, które nie ma zastosowania, jest pomijane w JSON, zamiast być wysyłane jako null albo zero. Dzięki temu typ, który w ogóle nie liczy punktacji, da się odróżnić od przebiegu, który zdobył zero punktów — dlatego odczytuj dane z wartością domyślną i nigdy nie zakładaj, że dany klucz na pewno tam jest.",
	"api_int_payload_example": "Ukończony quiz, tak jak przychodzi",
	"api_int_f_activity_key": "Aktywność, do której należy wynik. Ten sam klucz, który widzisz w adresie URL aktywności, po ?p=.",
	"api_int_f_player_uid": "Kto grał, jako anonimowy identyfikator. Stały dla tego gracza na tym urządzeniu, więc to na nim powinieneś indeksować wyniki — to nie jest adres e-mail ani konto Puzzel.",
	"api_int_f_player": "Pola rejestracyjne, o które prosi aktywność, tak jak je skonfigurowano: imię, e-mail, klasa, student_id i tak dalej. Nieobecne, dopóki gracz się nie zarejestruje, a całkowicie nieobecne w aktywności, która o nic nie pyta.",
	"api_int_f_progress": "Jak daleko gracz doszedł, w procentach. 100 oznacza ukończenie.",
	"api_int_f_time_passed": "Czas spędzony na aktywności, w milisekundach.",
	"api_int_f_last_played_at": "Kiedy ten wynik został zapisany, jako znacznik czasu Unix w milisekundach.",
	"api_int_f_created": "Kiedy rozpoczęto podejście, jako znacznik czasu Unix w milisekundach.",
	"api_int_f_player_input": "Co gracz faktycznie wpisał, indeksowane identyfikatorem elementu, do którego to należy. Kształt danych w środku zależy od typu aktywności — słowo, lista rozłożonych kart, wybrana opcja.",
	"api_int_f_correct_uids": "Które z tych elementów są poprawne, indeksowane w ten sam sposób. Nieobecne, dopóki nic nie zostało jeszcze odpowiedziane.",
	"api_int_f_score": "Zdobyte punkty, w typach, które liczą punktację przebiegu. Nieobecne wszędzie indziej — także przy przebiegu, który naprawdę zdobył zero punktów, dlatego przed odczytem sprawdź, czy klucz w ogóle istnieje.",
	"api_int_f_performance": "Własna miara danego typu określająca, jak dobrze poszło — tam, gdzie taka miara w ogóle istnieje — na przykład liczba słów na minutę w nauce pisania na klawiaturze.",
	"api_int_f_attempts": "Który to przebieg: 1 za pierwszym razem, o jeden więcej przy każdym starcie od nowa. Występuje tylko w typach, które mogą zakończyć przebieg przedwcześnie i liczą podejścia.",
	"api_int_f_knocked_out": "Przebieg zakończył się na błędnej odpowiedzi i jest zakończony bez ukończenia.",
	"api_int_f_alternate": "Aktywność została ukończona w sposób, który nie osiąga 100% — quiz, na który odpowiedziano do końca, rozwiązane pole solution. Traktuj to jako ukończenie.",
	"api_int_f_missed_keys": "Znaki, w których gracz najczęściej się mylił, od najczęściej mylonych. Tylko w nauce pisania na klawiaturze.",
	"api_int_f_content_version": "Wersja treści aktywności, na której rozegrano ten przebieg. Zmienia się, gdy właściciel edytuje pytania, dzięki czemu stary wynik da się odróżnić od aktualnego.",
	"api_int_s_control_title": "Resetowanie aktywności z twojej strony",
	"api_int_s_control_body": "Jedna instrukcja podróżuje w drugą stronę. Gdy włączysz \"Przyjmuj polecenia ze strony nadrzędnej\", strona osadzająca może wyczyścić odpowiedzi gracza i cofnąć aktywność do początku — na potrzeby własnego przycisku \"spróbuj ponownie\" poza ramką.",
	"api_int_control_only_title": "Reset to jedyne polecenie",
	"api_int_control_only_body": "Nie ma wiadomości do przesłania wyniku, otwarcia wiadomości końcowej ani przeskoczenia do pytania. Wiadomość z prośbą o cokolwiek innego niż reset jest ignorowana.",
	"api_int_control_guard_title": "Słuchana jest tylko strona osadzająca",
	"api_int_control_guard_body": "Polecenie jest przyjmowane wyłącznie ze strony, która osadza aktywność w ramce, i znikąd indziej — nie z sąsiedniej ramki, nie ze skryptu na stronie. Ustawienie jest domyślnie wyłączone, więc włącz je dla aktywności, którymi sterujesz.",
	"api_int_s_identity_title": "Wykorzystanie własnej tożsamości gracza",
	"api_int_s_identity_body": "Jeśli twoja platforma już wie, kto gra, aktywność nie musi pytać o to ponownie. Istnieją dwa uzgodnienia, oba dla aktywności osadzonej na twojej stronie, i oba włączane przez nas, a nie w edytorze — zmieniają one, do kogo należy wynik, więc ustawiamy je razem z tobą, a nie za pomocą zwykłego przełącznika.",
	"api_int_identity_pm_title": "Wyślij nam gracza",
	"api_int_identity_pm_body": "Aktywność zgłasza się komunikatem 'app-loaded' i czeka. Twoja strona odsyła z powrotem dane gracza, a wynik zostaje zapisany pod nimi bez konieczności, żeby gracz cokolwiek wpisywał albo widział ekran rejestracji.",
	"api_int_identity_sso_title": "Wyślij nam token",
	"api_int_identity_sso_body": "To samo uzgodnienie, ale zamiast samych pól twoja strona wysyła token JWT wystawiony przez twojego dostawcę tożsamości. Zanim wpuścimy gracza, weryfikujemy go względem wystawców skonfigurowanych dla twojego konta, więc tożsamość jest udowodniona, a nie tylko zadeklarowana — o to warto poprosić, gdy wynik musi być wiarygodny.",
	"api_int_identity_cta_title": "Poproś nas o włączenie",
	"api_int_identity_cta_body": "Powiedz nam, którego z tych dwóch rozwiązań potrzebujesz i gdzie będą osadzone aktywności, a my skonfigurujemy twoje konto i przeprowadzimy cię przez cały proces.",
	"api_int_identity_cta_button": "Napisz do nas o tożsamości",
	"api_int_s_create_title": "Tworzenie aktywności z twojego systemu",
	"api_int_s_create_body": "Wszystko powyżej dotyczy wyniku, który wychodzi na zewnątrz. W drugą stronę — tworzenie samych aktywności z treści, które już masz — służy do tego Puzzle API: jedno zapytanie POST na typ aktywności, w zamian dostajesz klucz i adres URL do osadzenia.",
	"api_int_create_link": "Przeczytaj dokumentację API",
	"api_int_s_lms_title": "Kiedy gotowa integracja jest lepszym rozwiązaniem",
	"api_int_s_lms_body": "Jeśli platforma po drugiej stronie to prawdziwy LMS, prawdopodobnie nic z tego nie jest ci potrzebne. Oceny mogą trafiać do jego dziennika ocen same, bez niczego, co musiałbyś hostować.",
	"api_int_lms_lti_title": "Moodle, Canvas, Brightspace, Schoology, itslearning",
	"api_int_lms_lti_body": "Uruchamiane z poziomu LMS, z punktacją zapisywaną z powrotem do jego dziennika ocen.",
	"api_int_lms_gc_title": "Google Classroom",
	"api_int_lms_gc_body": "Opublikuj aktywność jako zadanie, a oceny wrócą automatycznie.",
	"api_int_lms_not_title": "Żadne z powyższych?",
	"api_int_lms_not_body": "Platformy kursowe, strony z dostępem członkowskim, intranety i wszystko, co zbudowałeś sam, to dokładnie to, do czego służą kanały na tej stronie. Osadzenie plus sygnał ukończenia pokrywa większość przypadków.",
	"api_int_s_limits_title": "Czego tu nie ma",
	"api_int_s_limits_body": "Żebyś nie szukał tego na próżno:",
	"api_int_limit_no_read": "Brak endpointu do odczytu wyników z powrotem. API tworzy aktywności; wyniki wychodzą przez kanały opisane na tej stronie albo przez eksporty w twoim panelu.",
	"api_int_limit_no_signature": "Brak podpisu na webhooku. Nie ma niczego, względem czego można zweryfikować zapytanie, dlatego wynik nie powinien być jedyną rzeczą stojącą za czymś, na czym naprawdę zależy.",
	"api_int_limit_per_activity": "Brak webhooka na poziomie całego konta. Adres URL jest ustawieniem pojedynczej aktywności, więc skopiowana aktywność przenosi go ze sobą, a nowa zaczyna bez niego.",
	"api_int_limit_no_multiplayer": "Nic w grze drużynowej ani w pokoju na żywo. Oba kanały wiadomości i webhook są przeznaczone do gry solo, a ustawienia same się wyłączają, gdy włączony jest tryb drużynowy.",
	"api_int_limit_no_retry": "Brak kolejki dostarczania. Nic nie jest przechowywane i wysyłane ponownie — kolejny zapis pełni rolę ponowienia, a liczy się tylko ostatnie wywołanie danego przebiegu.",
	"api_nav_integrations": "Odbieranie wyników"
}
