{
  "ai": {
    "notice": {
      "preliminary": "wstępna ocena AI, niezatwierdzona przez korepetytora"
    },
    "help": {
      "link": "Jak działa AI w Korepecie →"
    }
  },
  "login": {
    "title": "Zaloguj się do Korepety",
    "subtitle": "E-mail albo nick i hasło.",
    "identifier": "E-mail lub nick",
    "identifierPh": "e-mail lub nick",
    "email": "E-mail",
    "emailPh": "adres@example.com",
    "password": "Hasło",
    "submit": "Zaloguj się",
    "submitting": "Loguję…",
    "forgot": "Nie pamiętasz hasła?",
    "register": "Załóż konto",
    "finishSignup": "Dokończ rejestrację",
    "errProfile": "Zalogowano, ale nie udało się potwierdzić profilu. Spróbuj ponownie."
  },
  "register": {
    "title": "Załóż konto",
    "subtitle": "Ustaw hasło — kod potwierdzający wyślemy e-mailem.",
    "password": "Hasło",
    "submit": "Wyślij kod",
    "sending": "Wysyłam…",
    "codeSent": "Kod wysłany na {{email}}. Sprawdź skrzynkę i spam.",
    "code": "Kod z e-maila",
    "verify": "Potwierdź i zaloguj się",
    "verifying": "Sprawdzam…",
    "resend": "Wyślij kod ponownie",
    "haveAccount": "Masz już konto? Zaloguj się",
    "inviteCode": "Kod zaproszenia",
    "inviteCodeHint": "Opcjonalnie. Masz kod zaproszenia? Wpisz go, a dostaniesz bonus do konta",
    "inviteCodePh": "KOR-XXXXX-XXXXX",
    "role": {
      "title": "Kto się rejestruje?",
      "subtitle": "Wybierz — na następnym ekranie można to zmienić.",
      "tutor": "Zarejestruj się jako korepetytor",
      "tutorHint": "E-mail i hasło. Kod zaproszenia — jeśli masz.",
      "student": "Zarejestruj się jako uczeń",
      "studentHint": "Potrzebny będzie kod od korepetytora.",
      "change": "Wybierz inną rolę",
      "parent": "Jestem rodzicem — mam kod od korepetytora",
      "parentHint": "Sprawdzone prace dziecka, lekcje i powiadomienia."
    },
    "student": {
      "subtitle": "Wpisz e-mail i kod, który masz od korepetytora.",
      "codeHint": "Kod od korepetytora — ważny około tygodnia",
      "submit": "Dalej"
    },
    "plan": {
      "title": "Ostatni krok: wybierz taryfę",
      "subtitle": "Konto gotowe. Wybierz, ile pracy AI chcesz mieć w cenie — albo zacznij za darmo, bez AI."
    },
    "parent": {
      "title": "Konto rodzica",
      "subtitle": "E-mail, hasło i kod od korepetytora — i zobaczysz sprawdzone prace dziecka.",
      "code": "Kod od korepetytora",
      "codeHint": "Kod w formie KOR-… — przyszedł razem z linkiem.",
      "codePh": "KOR-…",
      "loginToLink": "Zaloguj się",
      "closedTitle": "Konto rodzica nie jest jeszcze dostępne",
      "closedBody": "Rejestracja rodziców nie jest jeszcze otwarta. Raporty korepetytor może przysyłać linkiem — do niego konto nie jest potrzebne."
    },
    "parentCode": {
      "title": "Wpisz nowy kod od korepetytora",
      "subtitle": "E-mail jest potwierdzony, ale poprzedni kod już nie działa — został wykorzystany. Poproś korepetytora o nowy.",
      "submit": "Dalej",
      "signOut": "Wyloguj się"
    }
  },
  "reset": {
    "title": "Nowe hasło",
    "subtitle": "Wyślemy kod e-mailem — ustawisz nim nowe hasło.",
    "submit": "Wyślij kod",
    "sending": "Wysyłam…",
    "codeSent": "Jeśli adres {{email}} jest zarejestrowany, kod został wysłany. Sprawdź skrzynkę i spam.",
    "code": "Kod z e-maila",
    "newPassword": "Nowe hasło",
    "apply": "Zapisz i zaloguj się",
    "applying": "Zapisuję…",
    "resend": "Wyślij kod ponownie",
    "backToLogin": "Wróć do logowania"
  },
  "emailCode": {
    "resendIn": "Wyślij ponownie za {{time}}",
    "sendIn": "Wyślij kod za {{time}}",
    "tooSoon": "Kod można wysłać raz na minutę, a po kilku próbach — rzadziej. Przycisk odblokuje się sam, gdy będzie można."
  },
  "password": {
    "show": "Pokaż",
    "hide": "Ukryj",
    "rule": "Co najmniej 8 znaków.",
    "tooShort": "Za krótkie — co najmniej 8 znaków",
    "tooLong": "To hasło jest za długie",
    "tooCommon": "To hasło jest zbyt popularne — trzeba wybrać inne",
    "likeEmail": "Hasło powtarza adres e-mail — trzeba wybrać inne",
    "current": "Obecne hasło",
    "new": "Nowe hasło",
    "change": "Zmień hasło",
    "set": "Ustaw hasło",
    "changeHint": "Nie pamiętasz obecnego hasła? Skorzystaj z „{{link}}” na ekranie logowania.",
    "setHint": "To konto nie ma jeszcze hasła. Z hasłem można logować się bez kodu z e-maila.",
    "saved": "Hasło zapisane",
    "saving": "Zapisuję…"
  },
  "nickname": {
    "rule": "3–20 znaków: litery, cyfry, „_”, „.”, „-”. Bez spacji.",
    "tooShort": "Za krótki — co najmniej 3 znaki",
    "tooLong": "Za długi — najwyżej 20 znaków",
    "invalid": "Tylko litery, cyfry i „_”, „.”, „-” — i nie na brzegach",
    "taken": "Ten nick jest już zajęty — wymyśl inny"
  },
  "auth": {
    "signOut": "Wyloguj się",
    "pitchTitle": "Mniej papierów. Więcej lekcji.",
    "pitch1": "Raport z lekcji i praca domowa w minutę — ze zdjęć i notatek.",
    "pitch2": "AI sprawdza prace, a ocenę zatwierdzasz Ty.",
    "pitch3": "Rodzic widzi postępy pod jednym linkiem."
  },
  "brand": {
    "name": "Korepeta"
  },
  "role": {
    "tutor": "Korepetytor",
    "student": "Uczeń",
    "parent": "Rodzic"
  },
  "nav": {
    "students": "Uczniowie",
    "schedule": "Harmonogram",
    "homework": "Zadania domowe",
    "myDashboard": "Mój pulpit",
    "myProgress": "Mój postęp",
    "myLessons": "Lekcje",
    "analyze": "Analiza lekcji",
    "tasks": "Bank zadań",
    "notifications": "Powiadomienia",
    "plan": "Taryfa",
    "owner": "Platforma",
    "ownerGroup": "Właściciel",
    "settings": "Ustawienia",
    "notificationsAttention": "Powiadomienia na tym urządzeniu nie działają",
    "parent": {
      "children": "Dzieci",
      "overview": "Przegląd",
      "homework": "Prace domowe",
      "lessons": "Lekcje",
      "reports": "Raporty"
    }
  },
  "upload": {
    "addPhotos": "Dodaj",
    "removePhoto": "Usuń zdjęcie",
    "uploading": "Wysyłanie…",
    "counter": "{{n}} z {{max}}",
    "errorType": "Nieobsługiwany format",
    "errorSize": "Plik za duży",
    "errorTooMany": "Można dodać najwyżej {{max}} zdjęć",
    "errorGeneric": "Nie udało się wysłać — spróbuj ponownie"
  },
  "assign": {
    "title": "Zadaj pracę domową",
    "subtitle": "Całej klasie, grupie albo kilku uczniom naraz",
    "blockWho": "Dla kogo i na kiedy",
    "blockTask": "Zadanie",
    "blockMaterials": "Materiały dla ucznia",
    "blockMaterialsSub": "Nieobowiązkowe — opis i zdjęcia, które uczeń zobaczy przy zadaniu",
    "titleHint": "To pierwsza rzecz, którą uczeń zobaczy na swojej liście; bez imienia i daty. Zostaw puste — AI zaproponuje tytuł, gdy dopisze zadania.",
    "addOwnTask": "Własne zadanie",
    "pickBtn": "Wybierz uczniów albo grupę",
    "pickerTitle": "Komu zadać",
    "chosenNone": "Nikt jeszcze nie wybrany",
    "photosLabel": "Zdjęcia",
    "photosHint": "Do {{mb}} MB na plik",
    "descriptionLabel": "Co zrobić",
    "descriptionPh": "Na przykład: podręcznik, str. 45, zadania 3–5",
    "addFromBank": "Z banku",
    "ai": {
      "toggle": "AI dopisze zadania",
      "promptLabel": "Co dopisać",
      "promptPh": "Na przykład: jeszcze trzy zadania tekstowe, trochę trudniejsze",
      "photosLabel": "Zdjęcia dla AI",
      "photosHint": "Widzi je tylko AI — uczeń ich nie dostanie. Na przykład strona z podręcznika albo kartka z zadaniami.",
      "useMaterials": "Uwzględnij materiały dla ucznia (opis i zdjęcia)",
      "materialsBoth": "AI zobaczy opis i zdjęcia: {{n}}",
      "materialsNoteOnly": "AI zobaczy opis",
      "materialsPhotosOnly": "AI zobaczy zdjęcia: {{n}}",
      "materialsEmpty": "W materiałach dla ucznia na razie nic nie ma",
      "append": "Dopisz zadania",
      "rewrite": "Przepisz wszystkie",
      "rewriteNote": "„Przepisz wszystkie” zmienia całą listę według wskazówki — także Twoje zadania.",
      "rewriteNeedsPrompt": "Żeby przepisać wszystkie zadania, napisz wyżej wskazówkę — co w nich zmienić.",
      "needSource": "Napisz, co dopisać, albo dodaj zdjęcia dla AI, zadania lub materiały — inaczej AI nie ma się na czym oprzeć",
      "remembered": "Poprawki zapamiętane przez AI: {{n}}",
      "rememberedShow": "Pokaż",
      "rememberedHide": "Ukryj",
      "turn": {
        "instruction": "Wskazówka: {{text}}",
        "noInstruction": "Bez wskazówki",
        "edited": "Zmienione zadania: {{list}}",
        "added": "Dodane zadania: {{list}}",
        "removed": "Usunięte zadania: {{list}}",
        "moved": "Przestawione zadania: {{list}}",
        "notAccepted": "Odpowiedź AI odrzucona — lista wróciła do poprzedniej wersji",
        "answer": "Odpowiedź AI — zadań: {{n}}",
        "retry": "Ponowienie po autokontroli AI"
      },
      "verify": {
        "title": "Autokontrola AI — do sprawdzenia",
        "tutor": "To Twój tekst — AI go nie poprawi",
        "requirement": "Nie potwierdzono: „{{requirement}}”",
        "task": "Zadanie {{n}}: rozwiązanie niepotwierdzone",
        "answer": "Wynik autokontroli: {{answer}}",
        "count": "„{{requirement}}” — oczekiwano zadań: {{expected}}, jest: {{actual}}",
        "material": "W zadaniach brakuje liczb z Twojego materiału: {{list}}",
        "untouched": "Zadanie {{n}}: zmieniło się, choć wskazówka go nie dotyczyła",
        "markup": {
          "title": "Zbędne formatowanie w tytule: {{mark}}",
          "theory": "Zbędne formatowanie w przypomnieniu teorii: {{mark}}",
          "task": "Zbędne formatowanie w zadaniu {{n}}: {{mark}}"
        },
        "unclosed": {
          "title": "Niezamknięta formuła w tytule",
          "theory": "Niezamknięta formuła w przypomnieniu teorii",
          "task": "Niezamknięta formuła w zadaniu {{n}}"
        },
        "skipped": {
          "BUDGET": "Autokontrola AI nie dobiegła końca: zabrakło limitu AI",
          "TIME": "Autokontrola AI nie dobiegła końca: zabrakło czasu",
          "ERROR": "Autokontrola AI nie dobiegła końca: wystąpił błąd"
        }
      }
    },
    "theory": {
      "label": "Przypomnienie teorii",
      "hint": "Krótka teoria nad zadaniami — uczeń przeczyta ją najpierw. Możesz ją poprawić albo usunąć.",
      "remove": "Usuń",
      "removed": "Przypomnienie teorii usunięte — AI go nie napisze",
      "restore": "Przywróć"
    },
    "sendBtn": "Wyślij",
    "sending": "Wysyłam…",
    "sentTitle": "Wysłane",
    "sentBody": "Uczniowie, którzy dostali pracę: {{n}}",
    "sentNext": "Formularz jest pusty — możesz zadać kolejną.",
    "replayTitle": "To zadanie zostało już wysłane",
    "replayBody": "Ponowne kliknięcie nic nie utworzyło — uczniowie z pracą: {{n}}. Kogo wtedy pominięto, serwer już nie pamięta.",
    "skippedTitle": "Nie dotarło",
    "skipped": {
      "DELETED": "uczeń usunięty",
      "ARCHIVED": "uczeń w archiwum"
    },
    "blocked": {
      "needRecipients": "Wybierz, komu zadajesz.",
      "needContent": "Dodaj zadania, opis albo zdjęcie — pustej pracy nie wyślesz.",
      "emptyTask": "Każde zadanie musi mieć treść.",
      "needTitle": "Wpisz tytuł — uczeń zobaczy go na liście.",
      "needDueAt": "Ustaw termin.",
      "dueTooSoon": "Termin za blisko — daj uczniowi przynajmniej trzy godziny."
    }
  },
  "assignments": {
    "due": "termin {{when}}",
    "notIssued": "Nie dostali pracy: {{names}}",
    "submittedOf": "Oddało {{k}} z {{n}}",
    "average": "Średnia",
    "reviewRun": "Sprawdzaj po kolei ({{n}})",
    "stage": {
      "toReview": "Czekają na sprawdzenie",
      "withAi": "U AI",
      "late": "Po terminie",
      "notSubmitted": "Nie oddali",
      "returned": "Do poprawy",
      "done": "Sprawdzone",
      "unknown": "Zaktualizuj aplikację"
    },
    "target": {
      "groups": "Dla: {{groups}}",
      "students": "Dla: wybrani uczniowie ({{n}})",
      "mixed": "Dla: {{groups}} i jeszcze {{n}}",
      "lesson": "Po lekcji"
    },
    "run": {
      "position": "{{i}} z {{n}}",
      "skip": "Pomiń",
      "returnNext": "Odeślij i następna",
      "closeNext": "Zamknij i następna",
      "tally": "do poprawy: {{returned}} · zamknięte: {{closed}}"
    },
    "bulkAi": {
      "body": "Prac bez sprawdzenia AI: {{n}} — sprawdzenie można uruchomić jeszcze raz.",
      "start": "Uruchom AI ({{n}})",
      "running": "Sprawdzanie…",
      "budgetExceeded": "Na pozostałe prace zabrakło limitu AI.",
      "notReached": "AI nie zdążyło sprawdzić wszystkiego za jednym razem — zostało jeszcze: {{n}}",
      "continue": "Kontynuuj",
      "reviewed": "Sprawdzone przez AI: {{n}}",
      "outcome": {
        "reviewed": "Sprawdzone przez AI",
        "skippedNotSubmitted": "Nie było czego sprawdzać",
        "skippedInProgress": "AI właśnie to sprawdza",
        "noPhotos": "Brak zdjęć w pracy",
        "budgetExceeded": "Zabrakło limitu",
        "failed": "AI nie dało rady — sprawdź ręcznie",
        "notReached": "AI nie zdążyło tego sprawdzić"
      }
    }
  },
  "recipients": {
    "searchPh": "Szukaj po imieniu",
    "groups": "Grupy",
    "students": "Pojedynczy uczniowie",
    "memberCount": "w grupie: {{n}}",
    "fromGroup": "z grupy „{{group}}”",
    "selected": "Wybrano osób: {{n}}",
    "nothingFound": "Nikogo nie znaleziono",
    "nobodyToPick": "Nie ma kogo wybrać"
  },
  "theme": {
    "label": "Motyw",
    "light": "Jasny motyw",
    "dark": "Ciemny motyw"
  },
  "sidebar": {
    "closeMenu": "Zamknij menu",
    "openMenu": "Otwórz menu",
    "menu": "Menu"
  },
  "notifications": {
    "title": "Powiadomienia",
    "empty": "Na razie pusto",
    "homeworkAssigned": "Nowe zadanie domowe",
    "homeworkDueTomorrow": "Termin się zbliża",
    "homeworkNotDone": {
      "dueNear": "Masz nieodrobione zadanie domowe „{{title}}” — termin: {{day}} o {{time}}",
      "dueOnDate": "Masz nieodrobione zadanie domowe „{{title}}” — termin: {{date}}, {{time}}",
      "overdueNear": "Masz nieodrobione zadanie domowe „{{title}}” — termin minął {{day}} o {{time}}",
      "overdueOnDate": "Masz nieodrobione zadanie domowe „{{title}}” — termin minął {{date}}, {{time}}",
      "plain": "Masz nieodrobione zadanie domowe"
    },
    "homeworkCanFix": {
      "titled": "Praca domowa „{{title}}” czeka na poprawki — zobacz błędy i oddaj ją jeszcze raz",
      "tutor": "Korepetytor odesłał „{{title}}” do poprawy — zobacz komentarze i oddaj pracę jeszcze raz",
      "plain": "Masz pracę, którą możesz poprawić i oddać jeszcze raz"
    },
    "aiReviewReady": {
      "fix": "Praca domowa „{{title}}” jest wstępnie sprawdzona — zobacz błędy i popraw je: możesz oddać ją jeszcze raz",
      "allCorrect": "Praca domowa „{{title}}” jest wstępnie sprawdzona — wszystko dobrze, korepetytor wkrótce zatwierdzi ocenę",
      "allCorrectAfterTutor": "AI sprawdziło „{{title}}” i nie znalazło błędów — porównaj pracę z komentarzami korepetytora: jeśli czegoś nie poprawiłeś, możesz oddać ją jeszcze raz",
      "result": "Praca domowa „{{title}}” jest wstępnie sprawdzona — zobacz wynik",
      "plain": "Wstępna ocena gotowa"
    },
    "homeworkReviewed": {
      "titled": "Korepetytor sprawdził pracę domową „{{title}}” — ocena jest ostateczna",
      "plain": "Korepetytor sprawdził pracę",
      "checked": "Korepetytor sprawdził pracę domową „{{title}}”"
    },
    "homeworkReturned": {
      "titled": "Korepetytor sprawdził „{{title}}” i odesłał do poprawy — przeczytaj komentarze, popraw i oddaj jeszcze raz",
      "plain": "Korepetytor odesłał pracę do poprawy — przeczytaj komentarze, popraw i oddaj jeszcze raz"
    },
    "homeworkSubmitted": "{{name}} — oddano zadanie",
    "homeworkResubmitted": "{{name}} — oddano poprawione zadanie",
    "dailyDigestStudent": {
      "lesson": "Jutro lekcja o {{time}}",
      "lessonAndHomework": "Jutro lekcja o {{time}} — i nie zapomnij o zadaniu domowym",
      "homework": "Masz nieoddane zadanie domowe — nie zapomnij o nim",
      "plain": "Podsumowanie na jutro — zajrzyj"
    },
    "dailyDigestTutor": "Jutro lekcje",
    "aiLessonStarted": "Lekcja z AI się zaczęła",
    "aiLessonCallTeacher": "{{name}} potrzebuje Twojej pomocy na lekcji z AI",
    "aiLessonAlarm": "{{name}} — niepokojąca wiadomość na lekcji z AI",
    "pushBanner": {
      "title": "Włącz powiadomienia push",
      "body": "Pozwól przeglądarce wysyłać powiadomienia — nie trzeba otwierać strony tylko po to, żeby sprawdzić.",
      "error": "Nie udało się włączyć. Sprawdź uprawnienia przeglądarki i spróbuj ponownie.",
      "enabling": "Włączanie…",
      "enable": "Włącz",
      "later": "Później",
      "enabled": "Push włączony na tym urządzeniu",
      "desyncTitle": "Push nie jest włączony do końca",
      "desyncBody": "Przeglądarka zezwoliła na powiadomienia, ale serwer nie przyjął tej subskrypcji — dlatego nic nie przychodzi. Naciśnij „Zapisz ponownie”.",
      "resubscribe": "Zapisz ponownie",
      "notConfigured": "Push nie jest jeszcze skonfigurowany na serwerze — zajrzyj później.",
      "blocked": "Powiadomienia są zablokowane w przeglądarce — zezwól na nie w ustawieniach strony i wróć tutaj.",
      "unsupported": "Ta przeglądarka nie obsługuje powiadomień push. Na iPhonie: Udostępnij → „Pokaż więcej” → „Dodaj do ekranu początkowego”, otwórz aplikację stamtąd i wróć tutaj. W trybie prywatnym nie działają nigdzie.",
      "offText": "Powiadomienia są wyłączone — włącz je, żeby od razu wiedzieć o pracach domowych",
      "connectText": "Na tym urządzeniu powiadomienia nie są podłączone",
      "connect": "Podłącz",
      "manualText": "Brak zgody na powiadomienia — spróbuj ponownie albo zezwól ręcznie:",
      "blockedText": "Przeglądarka zablokowała powiadomienia",
      "unsupportedText": "Ta przeglądarka nie obsługuje powiadomień — otwórz Korepetę w Chrome lub Safari",
      "togglesOffText": "Wszystkie przełączniki powiadomień są wyłączone",
      "configure": "Ustaw",
      "howTo": "Jak włączyć",
      "recheck": "Sprawdź ponownie",
      "retry": "Spróbuj ponownie",
      "enabledToast": "Powiadomienia włączone — wyślij sobie testowe, żeby się upewnić",
      "check": "Sprawdź"
    },
    "pushTest": {
      "btn": "Wyślij testowe powiadomienie",
      "sending": "Wysyłanie…",
      "sent": "Wysłano na urządzenia: {{n}}. Jeśli nic się nie pojawiło — sprawdź powiadomienia w ustawieniach telefonu.",
      "noSubscriptions": "Brak zapisanego urządzenia — włącz push ponownie na tym.",
      "failed": "Usługa push przeglądarki odrzuciła wiadomość."
    },
    "unblock": {
      "chromeDesktop": "Kliknij ikonę po lewej od adresu strony → „Powiadomienia” → „Zezwalaj”.",
      "chromeAndroid": "Dotknij ikony po lewej od adresu → „Uprawnienia” → „Powiadomienia” → „Zezwalaj”.",
      "samsung": "Menu ≡ → „Ustawienia” → „Witryny i pobieranie” → „Powiadomienia” → zezwól korepeta.com.",
      "firefox": "Kliknij kłódkę po lewej od adresu i odblokuj powiadomienia.",
      "safariMac": "Safari → „Ustawienia” → „Witryny” → „Powiadomienia” → dla korepeta.com wybierz „Zezwalaj”.",
      "iosApp": "Otwórz „Ustawienia” → „Powiadomienia” → Korepeta i włącz „Zezwalaj na powiadomienia”.",
      "androidApp": "Przytrzymaj ikonę Korepety → „Informacje o aplikacji” → „Powiadomienia” → włącz.",
      "desktopApp": "W menu okna aplikacji (⋮) otwórz „Ustawienia witryny” → „Powiadomienia” → „Zezwalaj”.",
      "other": "Zezwól na powiadomienia dla korepeta.com w ustawieniach witryny w swojej przeglądarce."
    },
    "parent": {
      "reviewed": {
        "titled": "„{{title}}” — sprawdzone, {{score}}%{{child}}",
        "plain": "Korepetytor sprawdził pracę{{child}}"
      },
      "returned": {
        "titled": "„{{title}}” — {{score}}%, jest coś do poprawy{{child}}",
        "plain": "Praca wróciła do poprawy{{child}}"
      },
      "digest": {
        "lessonAndWork": "Jutro lekcja o {{time}} · do dokończenia: {{n}}{{child}}",
        "lesson": "Jutro lekcja o {{time}}{{child}}",
        "work": "Prace do dokończenia: {{n}}{{child}}",
        "plain": "Wieczorne podsumowanie{{child}}"
      },
      "report": "Nowy raport od korepetytora{{child}}"
    }
  },
  "toast": {
    "open": "Zobacz",
    "resubmit": "Popraw"
  },
  "update": {
    "message": "Dostępna jest nowa wersja.",
    "button": "Zaktualizuj",
    "stateUnknown": "Zaktualizuj aplikację",
    "stateUnknownText": "Ta wersja aplikacji jeszcze nie wie, co dzieje się z tą pracą — zaktualizuj aplikację."
  },
  "pieceFailed": {
    "terms": "Nie udało się wczytać Regulaminu — bez jego akceptacji nie da się dalej korzystać z aplikacji.",
    "guide": "Nie udało się wczytać instrukcji instalacji.",
    "math": "Nie udało się wczytać panelu wzorów. „Spróbuj ponownie” odświeży stronę — niewysłany tekst przepadnie.",
    "tour": "Nie udało się wczytać przewodnika po aplikacji. „Spróbuj ponownie” odświeży stronę i przewodnik ruszy.",
    "screen": "Nie udało się wczytać ekranu."
  },
  "installNag": {
    "message": "Korepeta można zainstalować jako aplikację — pełny ekran, własna ikona, szybszy dostęp.",
    "button": "Zainstaluj",
    "forPush": "Zainstaluj Korepetę jako aplikację — bez tego nie będzie tu powiadomień."
  },
  "install": {
    "menuItem": {
      "install": "Zainstaluj aplikację",
      "installed": "Aplikacja zainstalowana"
    },
    "guide": {
      "title": "Zainstaluj Korepeta jako aplikację",
      "intro": "Korepeta otworzy się we własnym oknie, jak zwykła aplikacja: bez paska adresu, z własną ikoną. Instalacja prosto z tej strony — w zwykłym oknie przeglądarki, nie w trybie incognito.",
      "installedTitle": "Korepeta jest już zainstalowana",
      "installedIntro": "Przeglądarka podaje, że aplikacja Korepeta jest już na tym urządzeniu. Otwórz ją — albo zainstaluj ponownie, jeśli potrzebna jest nowa ikona.",
      "deviceLabel": "Urządzenie",
      "openTitle": "Jak otworzyć",
      "reinstallTitle": "Jak zainstalować ponownie",
      "family": {
        "android": "Android",
        "ios": "iPhone i iPad",
        "desktop": "Komputer"
      }
    },
    "card": {
      "label": "Instalacja aplikacji",
      "ready": "Przeglądarka może już zainstalować Korepeta jako aplikację.",
      "more": "Szczegóły",
      "copy": "Skopiuj link",
      "copied": "Link skopiowany",
      "copyFailed": "Nie udało się skopiować — zaznacz adres i skopiuj go sam:",
      "openIn": {
        "safari": "Otwórz w Safari",
        "chrome": "Otwórz w Chrome"
      },
      "coach": {
        "safariIphone": "Stuknij ••• w prawym dolnym rogu → Udostępnij → Do ekranu głównego. W starszym iOS — od razu Udostępnij na dole.",
        "safariIpad": "Stuknij Udostępnij w prawym górnym rogu → Do ekranu głównego → Dodaj.",
        "chromeIos": "Stuknij Udostępnij po prawej stronie paska adresu → Do ekranu głównego → Dodaj.",
        "browserIos": "Otwórz menu przeglądarki → Udostępnij → Do ekranu głównego. Nie ma tej opcji? Otwórz tę stronę w Safari.",
        "chromeDesktop": "Okno incognito lub gościa? Otwórz zwykłe, by zainstalować. Już zainstalowana? ⋮ → „Przesyłaj, zapisuj i udostępniaj” → „Otwórz w: Korepeta”.",
        "edgeDesktop": "Okno InPrivate lub gościa? Otwórz zwykłe, by zainstalować. Już zainstalowana? Otwórz ją z menu Start lub Docka.",
        "chromiumDesktop": "Kliknij ikonę instalacji po prawej stronie paska adresu → „Zainstaluj”.",
        "safariMac": "Na pasku menu u góry ekranu: Plik → Dodaj do Docka… → Dodaj.",
        "firefoxWindows": "Kliknij ikonę „Dodaj kartę do paska zadań” po prawej stronie paska adresu.",
        "chromeAndroid": "Karta incognito? Otwórz zwykłą, by zainstalować. Już zainstalowana? Otwórz ją ikoną na ekranie głównym.",
        "edgeAndroid": "Karta InPrivate? Otwórz zwykłą, by zainstalować. Już zainstalowana? Otwórz ją ikoną na ekranie głównym.",
        "samsungAndroid": "Stuknij ≡ w prawym dolnym rogu → „Dodaj stronę do” → „Ekran startowy” → „Dodaj”.",
        "firefoxAndroid": "Stuknij ⋮ → „Dodaj aplikację do ekranu głównego” → „Dodaj”.",
        "chromiumAndroid": "Otwórz menu przeglądarki → „Zainstaluj aplikację” albo „Dodaj do ekranu głównego”."
      },
      "escape": {
        "safari": "To okno wewnątrz innej aplikacji — stąd nie da się zainstalować. Otwórz stronę w Safari.",
        "chrome": "To okno wewnątrz innej aplikacji — stąd nie da się zainstalować. Otwórz stronę w Chrome.",
        "browser": "Ta przeglądarka nie instaluje stron jako aplikacji. Otwórz stronę w Chrome lub Edge."
      },
      "open": {
        "desktop": "Korepeta jest już zainstalowana — otwórz ją ikoną na pulpicie, w menu Start albo w Docku.",
        "android": "Korepeta jest już zainstalowana — otwórz ją ikoną na ekranie głównym.",
        "ios": "Korepeta jest już zainstalowana — otwórz ją ikoną na ekranie głównym."
      }
    },
    "for": {
      "chromeDesktop": "Chrome na komputerze",
      "edgeDesktop": "Edge na komputerze",
      "chromiumDesktop": "Opera, Yandex Browser i inne przeglądarki na Chromium",
      "safariMac": "Safari na Macu",
      "firefoxWindows": "Firefox w Windows",
      "desktopUnsupported": "Ta przeglądarka",
      "chromeAndroid": "Chrome na Androidzie",
      "edgeAndroid": "Edge na Androidzie",
      "samsungAndroid": "Samsung Internet",
      "firefoxAndroid": "Firefox na Androidzie",
      "chromiumAndroid": "Inna przeglądarka na Androidzie",
      "inAppAndroid": "Okno wewnątrz innej aplikacji",
      "safariIos": "Safari na iPhonie i iPadzie",
      "browserIos": "Chrome, Edge lub Firefox na iPhonie i iPadzie",
      "inAppIos": "Okno wewnątrz innej aplikacji"
    },
    "steps": {
      "chromeDesktop": {
        "step1": "Kliknij ⋮ w prawym górnym rogu → „Przesyłaj, zapisuj i udostępniaj” → „Zainstaluj: Korepeta…” (w niektórych wersjach — „Zainstaluj stronę jako aplikację…”).",
        "step2": "Albo szybciej: ikona instalacji po prawej stronie paska adresu (monitor ze strzałką) → „Zainstaluj”.",
        "step3": "Zamiast instalacji widać „Otwórz w: Korepeta”? To znaczy, że Korepeta już jest na tym komputerze — być może stara kopia. Usuń ją: wpisz w pasku adresu chrome://apps, kliknij Korepeta prawym przyciskiem → „Usuń z Chrome” — i powtórz pierwszy krok.",
        "privateWindow": "Nie ma opcji instalacji, a „Utwórz skrót…” jest wyszarzone? To okno prywatne — w prawym górnym rogu widać „Incognito” albo „Gość”, a z takiego okna Chrome niczego nie instaluje. Skopiuj adres tej strony, otwórz go w zwykłym oknie Chrome i powtórz pierwszy krok. Okno jest zwykłe, a opcji dalej nie ma? Instalację zablokował administrator (tak bywa na komputerach w pracy i w szkole)."
      },
      "edgeDesktop": {
        "step1": "Kliknij „…” w prawym górnym rogu (Ustawienia i nie tylko) → „Aplikacje” → „Zainstaluj tę witrynę jako aplikację”.",
        "step2": "Albo szybciej: ikona „Aplikacja jest dostępna” po prawej stronie paska adresu → „Zainstaluj”.",
        "step3": "Edge zamiast instalacji proponuje otworzyć Korepeta? Czyli już jest zainstalowana — być może stara kopia. Wpisz w pasku adresu edge://apps, przy Korepeta kliknij „…” → „Odinstaluj” — i powtórz pierwszy krok.",
        "privateWindow": "W menu „Aplikacje” nie ma „Zainstaluj tę witrynę jako aplikację” albo jest wyszarzone? Sprawdź, czy to nie okno InPrivate albo okno gościa — z nich Edge niczego nie instaluje. Skopiuj adres tej strony, otwórz go w zwykłym oknie Edge i powtórz pierwszy krok. Okno jest zwykłe, a opcji dalej nie ma? Instalację zablokował administrator (tak bywa na komputerach w pracy i w szkole)."
      },
      "chromiumDesktop": {
        "step1": "Kliknij ikonę instalacji po prawej stronie paska adresu (monitor ze strzałką albo „+”) → „Zainstaluj”.",
        "step2": "Nie ma ikony? Poszukaj w menu przeglądarki „Zainstaluj Korepeta” albo „Zainstaluj aplikację”. Dalej nic — otwórz tę stronę w Chrome lub Edge.",
        "privateWindow": "Nie ma ani ikony, ani opcji? Sprawdź, czy to nie okno prywatne (incognito) albo profil gościa — z nich przeglądarki na Chromium niczego nie instalują. Skopiuj adres tej strony, otwórz go w zwykłym oknie i powtórz pierwszy krok."
      },
      "safariMac": {
        "step1": "Na pasku menu wybierz Plik → Dodaj do Docka… (albo przycisk Udostępnij → Dodaj do Docka).",
        "step2": "Kliknij Dodaj — Korepeta pojawi się w Docku i będzie się otwierać we własnym oknie. Wymaga macOS Sonoma 14 lub nowszego."
      },
      "firefoxWindows": {
        "step1": "Kliknij ikonę „Dodaj kartę do paska zadań” po prawej stronie paska adresu — Korepeta otworzy się w osobnym oknie z własną ikoną na pasku zadań.",
        "step2": "Nie ma ikony? Zaktualizuj Firefoksa (potrzebna wersja 143 lub nowsza) albo otwórz tę stronę w Chrome lub Edge — tam Korepeta instaluje się jako pełna aplikacja.",
        "privateWindow": "Nie ma ikony, choć Firefox jest aktualny? Sprawdź, czy na pasku tytułu okna nie ma napisu „Tryb prywatny” — w oknach prywatnych Firefox tej ikony nie pokazuje. Skopiuj adres tej strony, otwórz go w zwykłym oknie Firefoksa i powtórz pierwszy krok."
      },
      "desktopUnsupported": {
        "step1": "Ta przeglądarka nie umie instalować stron jako aplikacji.",
        "step2": "Otwórz tę stronę w Chrome lub Edge (na Macu także w Safari) i wybierz tam „Zainstaluj aplikację” w menu Korepeta."
      },
      "chromeAndroid": {
        "step1": "Stuknij ⋮ po prawej stronie paska adresu → „Zainstaluj i utwórz skrót” (w starszych wersjach — „Dodaj do ekranu głównego”).",
        "step2": "Wybierz „Zainstaluj” — ikona Korepeta pojawi się na ekranie głównym.",
        "privateWindow": "W menu ⋮ nie ma „Zainstaluj i utwórz skrót”? Sprawdź, czy to nie karta incognito — z niej Chrome niczego nie instaluje. Skopiuj adres tej strony, otwórz go w zwykłej karcie Chrome i powtórz pierwszy krok."
      },
      "edgeAndroid": {
        "step1": "Stuknij menu na dole ekranu (≡ albo •••) → „Dodaj do telefonu” (w starszych wersjach — „Dodaj do ekranu głównego”).",
        "step2": "Wybierz „Zainstaluj” — ikona Korepeta pojawi się na ekranie głównym.",
        "privateWindow": "Nie ma „Dodaj do telefonu” albo aplikacja się nie instaluje? Sprawdź, czy to nie karta InPrivate — z niej przeglądarki na Chromium nie instalują aplikacji. Skopiuj adres tej strony, otwórz go w zwykłej karcie Edge i powtórz pierwszy krok."
      },
      "samsungAndroid": {
        "step1": "Jeśli w pasku adresu jest ikona instalacji (strzałka w dół), stuknij ją → „Zainstaluj”.",
        "step2": "Albo: ≡ w prawym dolnym rogu → „Dodaj stronę do” → „Ekran startowy” → „Dodaj”.",
        "privateWindow": "Nie udało się zainstalować? Sprawdź, czy nie jest włączony tryb chroniony — wyłącz go, otwórz tę stronę ponownie i powtórz pierwszy krok."
      },
      "firefoxAndroid": {
        "step1": "Stuknij ⋮ → „Dodaj aplikację do ekranu głównego” (może być ukryte w „Więcej”; w starszych wersjach — „Dodaj do ekranu głównego”).",
        "step2": "Stuknij „Dodaj” — ikona Korepeta pojawi się na ekranie głównym."
      },
      "chromiumAndroid": {
        "step1": "Otwórz menu przeglądarki i wybierz „Zainstaluj aplikację” albo „Dodaj do ekranu głównego”.",
        "step2": "Nie ma takiej opcji? Otwórz tę stronę w Chrome i zainstaluj ją tam.",
        "privateWindow": "Nie ma tej opcji w żadnym menu? Sprawdź, czy to nie karta prywatna (incognito) — z niej przeglądarki na Chromium nie instalują aplikacji. Skopiuj adres tej strony, otwórz go w zwykłej karcie i powtórz pierwszy krok."
      },
      "inAppAndroid": {
        "step1": "Strona jest otwarta wewnątrz innej aplikacji — komunikatora albo serwisu społecznościowego. Stąd Korepeta nie da się zainstalować.",
        "step2": "Stuknij ⋮ u góry → „Otwórz w przeglądarce” (albo „Otwórz w Chrome”) i zainstaluj Korepeta już tam."
      },
      "safariIos": {
        "step1": "Stuknij ••• obok paska adresu, potem Udostępnij. W starszym iOS — od razu przycisk Udostępnij (kwadrat ze strzałką w górę).",
        "step2": "Przewiń w dół i stuknij Do ekranu głównego.",
        "step3": "Sprawdź, czy włączone jest Otwórz jako aplikację www, i stuknij Dodaj."
      },
      "browserIos": {
        "step1": "Stuknij Udostępnij: w Chrome to ikona po prawej stronie paska adresu, w Edge i Firefoksie — w menu przeglądarki.",
        "step2": "Wybierz Do ekranu głównego i stuknij Dodaj. Wymaga iOS 16.4 lub nowszego.",
        "step3": "Nie ma tej opcji? Otwórz tę stronę w Safari — tam instalacja działa zawsze."
      },
      "inAppIos": {
        "step1": "Strona jest otwarta wewnątrz innej aplikacji — stąd Korepeta nie da się dodać do ekranu głównego.",
        "step2": "Stuknij ••• (albo ikonę kompasu) → Otwórz w Safari i zainstaluj Korepeta już tam."
      }
    },
    "reinstall": {
      "chrome": {
        "step1": "Wpisz w pasku adresu chrome://apps i naciśnij Enter.",
        "step2": "Kliknij ikonę Korepeta prawym przyciskiem → „Usuń z Chrome”. Jest kilka ikon Korepeta? Usuń wszystkie — stare kopie instalowały się pod innym adresem. Nie zaznaczaj usuwania danych, bo trzeba będzie zalogować się ponownie."
      },
      "edge": {
        "step1": "Wpisz w pasku adresu edge://apps i naciśnij Enter.",
        "step2": "Przy każdej Korepeta kliknij „…” → „Odinstaluj”. Nie zaznaczaj usuwania danych, bo trzeba będzie zalogować się ponownie."
      },
      "chromium": {
        "step1": "Usuń Korepeta z listy aplikacji przeglądarki (zwykle: ustawienia → „Aplikacje”)."
      },
      "safariMac": {
        "step1": "W Finderze otwórz folder Aplikacje w swoim folderze domowym i przeciągnij Korepeta do Kosza.",
        "step2": "Wróć tutaj i jeszcze raz: Plik → Dodaj do Docka…"
      },
      "firefoxWindows": {
        "step1": "Kliknij ikonę Korepeta na pasku zadań prawym przyciskiem → „Odepnij od paska zadań”."
      },
      "android": {
        "step1": "Przytrzymaj ikonę Korepeta → „Odinstaluj” (albo „Informacje o aplikacji” → „Odinstaluj”).",
        "step2": "Otwórz tę stronę jeszcze raz i stuknij „Zainstaluj aplikację”."
      },
      "ios": {
        "step1": "Przytrzymaj ikonę Korepeta → Usuń zakładkę (albo Usuń aplikację).",
        "step2": "Otwórz tę stronę w Safari i zainstaluj ponownie: ••• → Udostępnij → Do ekranu głównego."
      },
      "reload": "Wróć tutaj, odśwież stronę (Ctrl+Shift+R) i kliknij „Zainstaluj aplikację”."
    },
    "open": {
      "desktop": "Ikoną Korepeta na pulpicie, w menu Start albo na pasku zadań (na Macu — w Docku lub Launchpadzie). W Chrome i Edge można też przyciskiem „Otwórz w aplikacji” po prawej stronie paska adresu.",
      "android": "Ikoną Korepeta na ekranie głównym albo na liście aplikacji.",
      "ios": "Ikoną Korepeta na ekranie głównym."
    },
    "browser": {
      "chrome": "Chrome",
      "edge": "Edge",
      "samsung": "Samsung Internet",
      "opera": "Opera",
      "yandex": "Yandex Browser",
      "firefox": "Firefox",
      "safari": "Safari",
      "inApp": "okno wewnątrz aplikacji",
      "other": "nieznana przeglądarka"
    },
    "os": {
      "windows": "Windows",
      "mac": "macOS",
      "linux": "Linux",
      "chromeos": "ChromeOS",
      "android": "Android",
      "ios": "iOS",
      "ipados": "iPadOS"
    },
    "diag": {
      "title": "Dane techniczne:",
      "prompt": "zaproszenie przeglądarki",
      "promptReady": "jest",
      "promptWaiting": "jeszcze nie (w oknie incognito ani gościa nigdy nie przyjdzie)",
      "promptNever": "ta przeglądarka go nie wysyła",
      "worker": "usługa w tle",
      "workerActive": "działa",
      "workerStarting": "uruchamia się",
      "workerMissing": "nie uruchomiła się",
      "workerUnsupported": "nieobsługiwana",
      "copies": "kopie aplikacji",
      "copiesNone": "nie znaleziono",
      "copiesUnknown": "przeglądarka nie podaje"
    }
  },
  "common": {
    "addStudent": "Dodaj ucznia",
    "save": "Zapisz",
    "cancel": "Anuluj",
    "edit": "Edytuj",
    "back": "Wróć",
    "loading": "Ładowanie…",
    "loadError": "Nie udało się wczytać danych.",
    "retry": "Spróbuj ponownie",
    "retryIn": "Spróbuj ponownie za {{time}}",
    "refresh": "Odśwież",
    "photoFailed": "Zdjęcie się nie wczytało",
    "refreshFailed": "Nie udało się odświeżyć — sprawdź połączenie",
    "refreshFailedServer": "Nie udało się odświeżyć — spróbuj ponownie za chwilę",
    "rewrite": "Przepisz",
    "next": "Dalej",
    "aiThinking": "Myśli…",
    "aiThinkingBackground": "Myśli… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
    "aiUnreachable": "Brak połączenia. Odpowiedź AI nie przepadnie — pokażemy ją, gdy połączenie wróci",
    "aiOverdue": "AI odpowiada dłużej niż zwykle",
    "weekdaysShort": [
      "pn",
      "wt",
      "śr",
      "cz",
      "pt",
      "sb",
      "nd"
    ],
    "close": "Zamknij",
    "noLessonsDay": "Brak zajęć",
    "addLessonHere": "Dodaj zajęcia",
    "copyFailed": "Nie udało się skopiować — zaznacz link i skopiuj go ręcznie."
  },
  "aiJob": {
    "done": "Gdy Cię nie było, AI skończyło: {{what}}",
    "failed": "AI nie dało rady: {{what}}",
    "running": "AI jeszcze pisze: {{what}}…",
    "stage": {
      "writing": "AI pisze odpowiedź… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
      "generating": "AI układa zadania… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
      "verifying": "AI sprawdza, czy zadania spełniają Twoje polecenie… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
      "retrying": "AI poprawia to, czego sprawdzenie nie przepuściło… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
      "reverifying": "AI sprawdza poprawioną wersję… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
      "reviewing": "AI sprawdza pracę ucznia… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
      "queuedCheck": "Szkic gotowy, czeka na sprawdzenie przez AI… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
      "checking": "AI sprawdza szkic i poprawia błędy… Możesz zminimalizować aplikację — odpowiedź nie przepadnie",
      "modelRetry": "Brak odpowiedzi od AI, próbujemy jeszcze raz… Możesz zminimalizować aplikację — odpowiedź nie przepadnie"
    },
    "what": {
      "lessonReport": "raport z lekcji",
      "homework": "zadania domowe",
      "taskSet": "zestaw zadań",
      "parentReport": "raport dla rodzica",
      "review": "sprawdzenie pracy",
      "assignment": "sprawdzenie prac klasy",
      "lessonPrep": "plan lekcji",
      "other": "odpowiedź na Twoją prośbę"
    },
    "offer": {
      "lessonReport": "AI napisało raport z lekcji",
      "lessonReportRewritten": "AI przepisało raport",
      "homework": "AI ułożyło zadania",
      "homeworkRewritten": "AI przepisało zadania",
      "parentReport": "AI napisało raport dla rodzica",
      "parentReportRewritten": "AI przepisało raport dla rodzica",
      "taskSet": "AI ułożyło zestaw „{{title}}”",
      "lessonPrep": "AI przygotowało plan lekcji"
    },
    "open": "Otwórz",
    "insert": "Wstaw",
    "replace": "Zastąp",
    "dismiss": "Nie trzeba",
    "appended": "Gdy Cię nie było, AI dopisało zadania: {{n}}",
    "otherLesson": "AI skończyło odpowiedź do innej lekcji ({{student}}) — wybierz tę lekcję, aby wstawić",
    "otherLessonUnnamed": "AI skończyło odpowiedź do innej lekcji — wybierz tę lekcję, aby wstawić",
    "takenElsewhere": "Ta odpowiedź AI jest już wstawiona w innym oknie",
    "superseded": "Tę odpowiedź AI zastąpiła nowsza prośba",
    "editClosed": "AI dopisało zadania, ale edycja jest już zamknięta — praca oddana",
    "checking": "Sprawdzam, czy nie ma gotowej odpowiedzi AI…"
  },
  "profile": {
    "title": "Profil",
    "nameLabel": "Jak się nazywasz",
    "namePh": "Imię lub pseudonim",
    "nameHint": "Tak będziesz podpisany w aplikacji.",
    "langLabel": "Język aplikacji",
    "save": "Zapisz",
    "saving": "Zapisuję…",
    "saved": "Zapisano",
    "noName": "Bez imienia",
    "changePhoto": "Zmień zdjęcie",
    "removePhoto": "Usuń zdjęcie",
    "cropTitle": "Dopasuj zdjęcie",
    "cropZoom": "Powiększenie",
    "cropCancel": "Anuluj",
    "cropUnsupported": "Tego zdjęcia nie da się tu pokazać, ale nadal można je wysłać.",
    "cropUseOriginal": "Wyślij bez zmian",
    "avatarNudge": "Dodaj zdjęcie — tak łatwiej cię rozpoznać.",
    "avatarNudgeDismiss": "Nie teraz"
  },
  "tutor": {
    "students": {
      "title": "Uczniowie",
      "subtitle": "Aktywnych: {{n}}",
      "searchPh": "Szukaj ucznia…",
      "th": {
        "student": "Uczeń",
        "accuracy30": "Skuteczność · 30 dni",
        "streak": "Seria",
        "nextLesson": "Następna lekcja",
        "hw": "ZD"
      },
      "doneCount": "zrobione",
      "emptyTitle": "Nie ma jeszcze uczniów",
      "emptyBody": "Dodaj pierwszego — potem pojawią się zadania, ogniki i lekcje.",
      "emptySearchTitle": "Nikogo nie znaleziono",
      "emptySearchBody": "Brak ucznia dla tego zapytania. Sprawdź pisownię lub wyczyść wyszukiwanie.",
      "tabs": {
        "people": "Uczniowie",
        "groups": "Grupy"
      }
    },
    "groups": {
      "subtitle": "Grup: {{n}}",
      "newOne": "Nowa grupa",
      "emptyTitle": "Nie ma jeszcze grup",
      "emptyBody": "Załóż klasę lub grupę — wtedy zadanie domowe pójdzie do wszystkich naraz, a nie trzydzieści razy z rzędu.",
      "allInGroup": "Wszyscy uczniowie są już w tej grupie",
      "th": {
        "group": "Grupa",
        "members": "Uczniów"
      },
      "newTitle": "Nowa grupa",
      "editTitle": "Grupa",
      "titleLabel": "Nazwa",
      "titlePh": "4P, Matura — powtórki, wtorek 18:00",
      "commentLabel": "Notatka dla siebie",
      "commentPh": "opcjonalnie",
      "membersTitle": "Skład",
      "noMembers": "Na razie nikogo w grupie",
      "inactive": "w archiwum",
      "removeMember": "Usuń z grupy",
      "addTitle": "Dodaj uczniów",
      "addBtn": "Dodaj: {{n}}",
      "archive": "Do archiwum",
      "unarchive": "Przywróć z archiwum",
      "deleteBtn": "Usuń",
      "deleteConfirm": "Usunąć grupę „{{title}}”? Uczniowie i ich zadania zostaną — zniknie tylko sama grupa.",
      "skippedAlready": "Już w grupie: {{n}}",
      "skippedMissing": "Nie znaleziono: {{n}}",
      "createdSkipped": "Grupa „{{title}}” utworzona, ale nie wszyscy do niej trafili. {{details}}",
      "memberCard": "Otwórz kartę ucznia",
      "invite": {
        "btn": "Link do zapisu klasy",
        "title": "Wyślij ten link do klasy",
        "hint": "Link działa 24 godziny. Każdy, kto go otworzy w tym czasie, sam założy sobie konto i dołączy do grupy — nie trzeba wcześniej zakładać kart uczniów.",
        "expiresAt": "Ważny do {{date}}",
        "copy": "Kopiuj",
        "copied": "Skopiowano",
        "close": "Zamknij",
        "error": "Nie udało się utworzyć linku — spróbuj ponownie"
      }
    },
    "settings": {
      "cabinet": {
        "title": "Usunięcie konta",
        "hint": "Usuwa całe konto razem z uczniami, ich pracami i zdjęciami. Nie da się tego cofnąć.",
        "btn": "Usuń konto",
        "modalTitle": "Usunąć konto bezpowrotnie?",
        "warning": "Konto „{{name}}” zostanie usunięte razem z tym, co w nim jest:",
        "willStudents": "uczniowie ze wszystkimi pracami, oddaniami i sprawdzeniami — {{n}}",
        "willAccounts": "konta do logowania — {{n}}",
        "willTaskSets": "zestawy zadań — {{n}}",
        "willPhotos": "zdjęcia w magazynie — {{n}} ({{size}})",
        "irreversible": "Tego nie da się cofnąć. Kopii nie zostawiamy.",
        "wordLabel": "Wpisz {{word}}, żeby potwierdzić",
        "word": "USUŃ",
        "confirm": "Usuń na zawsze",
        "done": "Konto zostało usunięte.",
        "doneStudents": "usunięci uczniowie — {{n}}",
        "doneAccounts": "zamknięte konta — {{n}}",
        "doneStray": "usunięte pliki — {{n}}",
        "storageLeft": "Konto i dane zostały usunięte. Części zdjęć nie udało się skasować z magazynu — zostały tam.",
        "leave": "Zamknij i wyjdź"
      },
      "title": "Ustawienia",
      "nameHint": "Tak podpisujemy Cię w aplikacji i w raportach dla rodziców.",
      "billing": {
        "title": "Płatność",
        "choose": "Wybierz taryfę",
        "plans": "Taryfy",
        "manage": "Zarządzaj płatnością"
      },
      "ai": {
        "title": "Wydatki na AI w tym okresie rozliczeniowym",
        "calls": "wywołań: {{n}}",
        "lastModel": "Ostatnio użyty model: {{model}}",
        "ofLimit": "z limitu {{limit}}",
        "ofLimitPercent": "z limitu taryfy",
        "exceeded": "Limit AI w tym okresie rozliczeniowym wyczerpany — nowe wywołania AI są odrzucane.",
        "priceFresh": "Ceny pobrane z Google {{when}}",
        "priceStale": "Cennik Google nie odświeżał się ponad tydzień — wywołania AI wstrzymane do czasu potwierdzenia cen.",
        "kind": {
          "HOMEWORK_REVIEW": "Sprawdzanie prac",
          "HOMEWORK_GENERATION": "Szkice prac domowych",
          "TASK_SET_GENERATION": "Zestawy zadań",
          "TASK_VERIFICATION": "Autokontrola AI",
          "TASK_CHECK": "Sprawdzanie i poprawa szkiców",
          "AI_LESSON_PREP": "Plany lekcji z AI",
          "AI_LESSON_TURN": "Odpowiedzi na lekcjach z AI",
          "LESSON_REPORT": "Raporty z lekcji",
          "PARENT_REPORT": "Raporty dla rodziców"
        }
      }
    },
    "notifications": {
      "title": "Powiadomienia",
      "homeworkSubmitted": "Uczeń oddał zadanie domowe",
      "homeworkResubmitted": "Uczeń oddał poprawione zadanie",
      "dailyDigest": "Podsumowanie na jutro — raz dziennie: jakie lekcje jutro"
    },
    "studentAdd": {
      "title": "Dodaj ucznia",
      "cancel": "Anuluj",
      "save": "Zapisz",
      "saving": "Zapisuję…",
      "previewName": "Nowy uczeń",
      "nameLabel": "Imię i nazwisko",
      "namePh": "Anna Kowalczyk",
      "shortLabel": "Inicjały",
      "colorLabel": "Kolor awatara",
      "languageLabel": "Język komunikacji",
      "timezoneLabel": "Strefa czasowa"
    },
    "taskLanguage": {
      "label": "Język zadań",
      "inherit": "Jak na koncie",
      "hintCabinet": "W tym języku AI pisze zadania, gdy uczeń lub grupa nie ma własnego języka zadań. Sprawdzenia i raporty uczeń dostaje w języku komunikacji.",
      "hintStudent": "W tym języku AI pisze zadania i podaje terminy w sprawdzeniach. Same sprawdzenia i raporty są w języku komunikacji.",
      "hintGroup": "W tym języku AI pisze zadania dla grupy i podaje terminy w sprawdzeniach. Sprawdzenia i raporty każdy uczeń dostaje we własnym języku komunikacji.",
      "saveError": "Nie udało się zapisać języka zadań — spróbuj ponownie."
    },
    "gaps": {
      "title": "Luki w wiedzy",
      "aiNote": "AI zaznacza je na podstawie sprawdzonych zadań domowych i lekcji",
      "empty": "Na razie brak luk",
      "loadError": "Nie udało się wczytać luk",
      "patched": "załatana na lekcji",
      "seen": "Wystąpień: {{n}}",
      "close": "Zamknij",
      "closeError": "Nie udało się zamknąć luki — spróbuj ponownie."
    },
    "detail": {
      "back": "Wszyscy uczniowie",
      "ownName": "podpisuje się: {{name}}",
      "rename": {
        "btn": "Zmień imię",
        "label": "Imię ucznia",
        "error": "Nie udało się zapisać imienia — spróbuj ponownie"
      },
      "btnSendHw": "Wyślij ZD",
      "pairing": {
        "close": "Zamknij"
      },
      "inviteCode": {
        "btn": "Kod zaproszenia",
        "title": "Podaj ten kod uczniowi",
        "hint": "Kod jest ważny około tygodnia. Uczeń otworzy aplikację, kliknie Załóż konto → Uczeń, wpisze e-mail i ten kod — a potem założy sobie logowanie: potwierdzi e-mail, wybierze nick, hasło i PIN.",
        "share": "Udostępnij",
        "copy": "Kopiuj",
        "copied": "Skopiowano",
        "copyFailed": "Nie udało się skopiować — przepisz kod z ekranu",
        "error": "Nie udało się utworzyć kodu — spróbuj ponownie",
        "close": "Zamknij",
        "message": "Dołącz do korepeta jako uczeń: {{link}} · Kod zaproszenia: {{code}}",
        "inProgress": "Uczeń już zaczął rejestrację i jeszcze jej nie skończył. Dokończy ją tym kodem albo poprzednim — kod działa do końca rejestracji.",
        "registeredTitle": "Uczeń ma już konto",
        "registeredBody": "Kod nie jest potrzebny: uczeń loguje się e-mailem albo nickiem i hasłem. Jeśli zapomniał hasła — „Nie pamiętasz hasła?” na ekranie logowania."
      },
      "parentLink": {
        "btn": "Link dla rodzica",
        "copy": "Kopiuj",
        "copied": "Skopiowano",
        "error": "Nie udało się utworzyć linku — spróbuj ponownie"
      },
      "stat": {
        "accuracy30": "Skuteczność · 30 dni",
        "fromHw": "ze zadań domowych",
        "streak": "Seria",
        "restoreStreak": "Przywróć passę",
        "restoreStreakError": "Nie udało się przywrócić passy — spróbuj ponownie",
        "nextLesson": "Następna lekcja",
        "hwDone": "Prace domowe"
      },
      "tabs": {
        "overview": "Przegląd",
        "lessons": "Lekcje",
        "progress": "Postęp",
        "parents": "Rodzice"
      },
      "rightCol": {
        "next": "Następna lekcja",
        "hw": "Zadania domowe",
        "deadline": "termin: {{date}}",
        "hwAi": "AI ✓ → sprawdź",
        "hwSent": "wysłane",
        "hwOverdue": "spóźnione",
        "hwDone": "zrobione · {{pct}}",
        "hwEmpty": "brak zadań domowych",
        "parents": "Rodzice",
        "parentsRO": "dostęp tylko do podglądu postępów",
        "formReport": "Utwórz raport"
      },
      "lessons": {
        "title": "Odbyte i zaplanowane lekcje",
        "duration": "{{n}} min",
        "scheduled": "Zaplanowana",
        "hwPrefix": "ZD: {{title}}",
        "error": "Nie udało się wczytać zajęć",
        "emptyTitle": "Brak zajęć",
        "emptyBody": "Zaplanuj lekcję w kalendarzu",
        "noReport": "Brak raportu z tych zajęć"
      },
      "notFound": "Nie znaleziono ucznia",
      "delete": {
        "btn": "Usuń",
        "title": "Usunąć ucznia {{name}}?",
        "warning": "Zostanie usunięte bezpowrotnie:",
        "willHw": "prace domowe z oddaniami, zdjęciami i sprawdzeniami AI — {{n}}",
        "willFuture": "zaplanowane zajęcia — {{n}}",
        "willReports": "raporty dla rodzica, teksty raportów z zajęć i notatki",
        "willAvatar": "zdjęcie profilowe ucznia",
        "willAccess": "logowanie ucznia, powiązane urządzenie i link rodzica",
        "willKeep": "Zostanie: odbyte zajęcia w kalendarzu ({{n}}) — z imieniem ucznia, ale bez tekstów raportów.",
        "irreversible": "Tego nie da się cofnąć.",
        "confirm": "Usuń na zawsze",
        "error": "Nie udało się usunąć. Spróbuj ponownie.",
        "flashDone": "Uczeń {{name}} został usunięty.",
        "flashDonePhotos": "Uczeń {{name}} został usunięty, ale zdjęć nie udało się skasować z magazynu."
      },
      "history": {
        "title": "Historia zadań domowych",
        "average": "średnia {{pct}}%",
        "due": "termin {{date}}",
        "attempt": "próba {{n}}: {{pct}}",
        "final": "wynik {{pct}}",
        "returned": "do poprawy · {{pct}}",
        "notSubmitted": "nie oddano",
        "check": "Sprawdź",
        "recheck": "Zmień ocenę",
        "edit": "Edytuj",
        "error": "Nie udało się wczytać historii",
        "emptyTitle": "Nie było jeszcze zadań",
        "emptyBody": "Pierwsze pojawi się po analizie lekcji",
        "previous": "poprzednia ocena · {{pct}}"
      }
    },
    "aiCheck": {
      "pending": "AI sprawdza…",
      "failed": "Wymaga Twojego sprawdzenia"
    },
    "queue": {
      "title": "Zadania domowe",
      "summary": "Do sprawdzenia: {{rev}} · po terminie: {{od}}",
      "newOne": "Wyślij nowe",
      "tabs": {
        "review": "Do sprawdzenia",
        "sent": "Wysłane",
        "overdue": "Spóźnione",
        "done": "Zrobione"
      },
      "emptyTitle": "Pusto",
      "emptyBody": "W tej kolejce nic nie ma.",
      "deadline": "termin",
      "states": {
        "checking": "czeka na sprawdzenie",
        "sent": "wysłane",
        "overdue": "spóźnione",
        "returned": "do poprawy"
      },
      "tasksCount": "zadań: {{n}}",
      "canFix": "można poprawić",
      "canFixHint": "AI znalazło błędy, a uczeń ma jeszcze próbę, żeby je poprawić.",
      "fixedAfterReview": "poprawione po sprawdzeniu",
      "returnedWhen": "odesłane {{when}}",
      "remindersOver": "przypomnienia dla ucznia się skończyły — przypomnij sam lub zamknij pracę"
    },
    "homeworkEdit": {
      "back": "Wróć do prac domowych",
      "title": "Edycja pracy domowej",
      "subtitle": "Uczeń jeszcze nie oddał pracy — możesz zmienić wszystko, jak przy zadawaniu.",
      "delete": "Usuń pracę domową",
      "deleteConfirm": "Usunąć pracę domową „{{title}}”? Uczeń przestanie ją widzieć.",
      "deleted": "Praca domowa „{{title}}” usunięta.",
      "saving": "Zapisuję…",
      "saved": "Zapisano — uczeń widzi już nową wersję.",
      "groupCopy": "To praca z zadania dla grupy: zmieniasz tylko kopię tego ucznia — u pozostałych nic się nie zmieni.",
      "locked": "Uczeń oddał pracę, zanim zmiany się zapisały — nie zostały wprowadzone. Po oddaniu zadań już się nie zmienia: zostaje tylko sprawdzanie.",
      "toReview": "Przejdź do sprawdzania",
      "redirected": "Uczeń już oddał tę pracę — zadań nie można już zmieniać. Otwarto sprawdzanie.",
      "notFound": "Nie ma takiej pracy domowej — może została usunięta."
    },
    "review": {
      "back": "Pulpit",
      "submittedAt": "oddane {{when}}, {{time}}",
      "attempt": "próba {{n}}",
      "aiPanel": "Przegląd AI",
      "suggested": "sugerowana",
      "taskShort": "zad. {{n}}",
      "studentWork": "Praca ucznia",
      "kindPhoto": "zdjęcie",
      "noSubmission": "Jeszcze brak zdjęć",
      "studentNote": "Notatka ucznia",
      "openPhoto": "Otwórz zdjęcie {{n}} w powiększeniu",
      "taskHead": "Przegląd zadania {{n}}",
      "task": "Zadanie",
      "aiSeen": "Co AI zobaczył",
      "yourFix": "Twoja poprawka",
      "yourGrade": "Twoja ocena",
      "fixCommentPh": "Dopisz własny komentarz, który zobaczy uczeń…",
      "finalLabel": "Ocena końcowa (zobaczy uczeń i rodzic)",
      "notePh": "Krótka notatka dla ucznia (opcjonalna)…",
      "approveError": "Nie udało się zapisać oceny — sprawdź połączenie i spróbuj ponownie",
      "gradedFlash": "Ocena wystawiona: {{name}} — {{score}}%",
      "redirected": "Uczeń jeszcze nie oddał tej pracy — nie ma czego sprawdzać. Otwarto edycję zadań.",
      "noHw": "Brak ZD do sprawdzenia",
      "preliminary": "wstępnie",
      "graded": "oceniono",
      "aiStatus": {
        "pendingTitle": "AI sprawdza pracę…",
        "pendingBody": "Zwykle trwa to około minuty — strona odświeży się sama.",
        "slowTitle": "Sprawdzanie się przedłuża",
        "slowBody": "AI odpowiada dłużej niż zwykle i strona nie odświeża się już sama. Kliknij „Odśwież” za chwilę — albo oceń pracę ręcznie niżej.",
        "unreachableBody": "Kliknij „Spróbuj ponownie” za chwilę — albo oceń pracę ręcznie niżej.",
        "failedTitle": "AI nie sprawdziło tej pracy",
        "failedBody": "Uruchom sprawdzanie jeszcze raz albo oceń pracę ręcznie — punkty za zadania i ocena końcowa są niżej.",
        "retry": "Sprawdź z AI jeszcze raz",
        "retrying": "AI sprawdza…",
        "inProgress": "AI wciąż sprawdza tę pracę — poczekaj chwilę.",
        "budget": "Pozostały limit AI nie wystarczy na to sprawdzenie — oceń pracę ręcznie.",
        "budgetShort": "Sprawdzenie tej pracy przez AI może kosztować do {{estimate}}, a w limicie AI zostało {{remaining}} — oceń pracę ręcznie.",
        "failedAgain": "AI znów sobie nie poradziło — oceń pracę ręcznie.",
        "noPhotos": "W pracy nie ma zdjęć, więc AI nie ma czego sprawdzać. Oceń ręcznie."
      },
      "aiReason": {
        "photoTooLarge": "Zdjęcie nr {{photoNumber}} w pracy jest za duże dla AI — oceń pracę ręcznie",
        "tooManyPhotos": "W pracy jest za dużo zdjęć na jedno sprawdzenie przez AI — oceń ją ręcznie",
        "conditionUnavailable": "AI nie mogło otworzyć zdjęć do pracy domowej, a zadań z punktami ani tekstu „Co zrobić” w niej nie ma — oceń pracę ręcznie",
        "nothingToCheck": "W pracy domowej nie ma zadań z punktami, tekstu „Co zrobić” ani zdjęć — AI nie ma według czego sprawdzać. Oceń ręcznie",
        "budgetBusy": "Część limitu AI zajmowały inne trwające zapytania — uruchom sprawdzenie ponownie za {{retryAfter}} albo oceń pracę ręcznie",
        "contextTooLong": "Praca ucznia razem z treścią pracy domowej jest za długa — AI nie przeczyta jej za jednym razem. Oceń pracę ręcznie",
        "contextTooLongTokens": "Praca ucznia razem z treścią pracy domowej jest za długa dla AI (tokenów: {{tokens}}, limit: {{maxTokens}}) — oceń pracę ręcznie",
        "outputTooLong": "Sprawdzenie przez AI nie zmieściło się w limicie długości odpowiedzi modelu — oceń pracę ręcznie",
        "contentBlocked": "Google nie pozwolił AI sprawdzić tej pracy (filtr treści) — oceń ją ręcznie"
      },
      "points": "Punkty",
      "notGraded": "bez oceny",
      "pointsLabel": "Punkty za zadanie",
      "outOf": "z {{n}}",
      "afterYourReview": "po Twoim sprawdzeniu",
      "earlierTitle": "Twoja poprzednia ocena",
      "returnLabel": "Odeślij uczniowi do poprawy",
      "returnHint": "Uczeń zobaczy ocenę i Twoje komentarze i odda pracę jeszcze raz. AI ją sprawdzi, a uczeń będzie miał jeszcze jedną próbę poprawy, zanim praca wróci do Ciebie.",
      "closeHint": "Praca zostanie zamknięta z tą oceną — uczeń zobaczy ją jako ostateczną.",
      "returnSend": "Odeślij do poprawy",
      "closeSend": "Zatwierdź i zamknij",
      "saveReturnSend": "Zapisz i odeślij do poprawy",
      "saveCloseSend": "Zapisz ocenę i zamknij",
      "returnedFlash": "Odesłano do poprawy: {{name}} — {{score}}%",
      "submissionChanged": "Uczeń oddał nową wersję — ekran został odświeżony, sprawdź ją",
      "reviewChanged": "Tę wersję sprawdzono już w innej karcie lub na innym urządzeniu — ekran został odświeżony",
      "staleReloadFailed": "Praca zmieniła się w trakcie sprawdzania, a ekranu nie udało się odświeżyć — przeładuj stronę"
    },
    "parentReport": {
      "title": "Raport dla rodzica",
      "subtitle": "{{name}} — postęp od ostatniego raportu",
      "promptLabel": "Uwagi do raportu (opcjonalnie)",
      "promptPh": "np. „wspomnij, że w końcu ogarnęła ułamki”",
      "generateBtn": "Utwórz raport",
      "sentOk": "Raport opublikowany. Wyślij ten link rodzicowi:",
      "statStreak": "Passa",
      "statHwDone": "Prace domowe",
      "statGrades": "Oceny w tym okresie",
      "reportTextLabel": "Treść raportu",
      "reportPromptLabel": "Wskazówki do przepisania",
      "reportPromptPh": "np. „krócej” lub „dodaj wskazówkę o geometrii”",
      "sending": "Wysyłanie…",
      "sendBtn": "Wyślij raport",
      "statHwReturned": "Do poprawy",
      "parentsNotified": "Rodzice z kontem dostaną powiadomienie: {{names}}."
    },
    "schedule": {
      "title": "Harmonogram",
      "subtitle": "Tydzień: {{range}}",
      "prev": "Poprzedni",
      "next": "Następny",
      "today": "Dziś",
      "newLesson": "Zaplanuj lekcję",
      "minShort": "{{n}} min",
      "newLessonTitle": "Nowa lekcja",
      "studentLabel": "Uczeń",
      "studentPlaceholder": "Wybierz ucznia…",
      "startsAtLabel": "Data i godzina",
      "durationLabel": "Czas trwania, min",
      "createBtn": "Zaplanuj",
      "rescheduleBtn": "Zapisz nowy termin",
      "rescheduledFrom": "Przeniesiono z {{when}}",
      "deleteBtn": "Usuń",
      "deleteConfirm": "Na pewno usunąć tę lekcję?",
      "overlapError": "Koliduje z inną lekcją — wybierz inny termin",
      "repeat": {
        "enable": "Powtarzaj zajęcia",
        "everyLabel": "Jak często",
        "everyWeeks": "Co {{n}} tygodnie",
        "daysLabel": "Dni tygodnia",
        "endLabel": "Do kiedy",
        "endCount": "Liczba zajęć",
        "endUntil": "Nie później niż",
        "created": "Utworzono zajęć: {{n}}",
        "skipped": "Pominięto: {{n}} — te terminy są już zajęte",
        "deleteSeriesBtn": "Usuń całą serię",
        "deleteSeriesConfirm": "Usunąć wszystkie przyszłe zajęcia z tej serii? Odbyte zostaną w kalendarzu.",
        "everyWeek": "Co tydzień",
        "daysHintOwn": "Nic nie wybrano — bierzemy dzień samych zajęć: {{day}}",
        "daysHintExtra": "Pierwsze zajęcia: {{day}}, {{date}}. Wejdą do serii, nawet jeśli ten dzień nie jest zaznaczony",
        "onDays": "w {{days}}",
        "previewLabel": "Co powstanie",
        "previewSpan": "od {{from}} do {{to}}, o {{time}}",
        "previewMore": "Pokaż pozostałe ({{n}})",
        "previewNone": "Żadne zajęcia się nie zmieszczą — poniżej widać, co przeszkadza każdym",
        "previewFailed": "Nie udało się policzyć z góry — serię i tak można utworzyć",
        "previewIdle": "Wybierz ucznia i godzinę — pokażę, jakie zajęcia powstaną",
        "previewFits": "Zmieści się zajęć: {{n}} z {{total}}",
        "openDayHint": "Kliknij dzień, aby zobaczyć jego plan i zmienić godzinę",
        "busyBy": "Zajęte: {{name}}, {{from}}–{{to}}",
        "busyBySeries": "Nakłada się na inne zajęcia z tej samej serii",
        "busyByUnnamed": "inne zajęcia",
        "movedByHand": "Godzina zmieniona ręcznie",
        "occFree": "zmieści się",
        "occBusy": "nie zmieści się",
        "thisLesson": "Te zajęcia",
        "dayBack": "Powrót do serii",
        "dayEmpty": "Tego dnia nie ma innych zajęć",
        "dayLoadFailed": "Nie udało się wczytać planu na ten dzień",
        "newTimeLabel": "Godzina zajęć",
        "resetTime": "Przywróć godzinę serii",
        "dayStillBusy": "Ta godzina nadal jest zajęta — wybierz inną",
        "dayNowFree": "Godzina jest wolna"
      },
      "previousNoteLabel": "Notatka z poprzedniej lekcji",
      "outcome": {
        "question": "Lekcja się nie odbyła?",
        "noShow": "Uczeń nie przyszedł",
        "canceledByStudent": "Odwołał uczeń",
        "canceledByTutor": "Odwołałem/am ja",
        "restore": "Przywróć jako odbytą",
        "marked": "Zapisano: lekcja się nie odbyła",
        "restored": "Lekcja znów jest odbyta",
        "overlap": "W tym terminie jest już inna lekcja — najpierw ją przenieś albo usuń",
        "published": "Raport z lekcji został już wysłany — lekcja liczy się jako odbyta",
        "notStarted": "Lekcja jeszcze się nie zaczęła — przyszłą lekcję można tylko usunąć"
      }
    },
    "aiLesson": {
      "open": "Lekcja z AI",
      "back": "Wróć do harmonogramu",
      "title": "Przygotowanie lekcji z AI",
      "when": "{{name}} · {{date}}, {{time}} · {{n}} min",
      "aiNote": "AI przygotowuje plan i prowadzi lekcję pod Twoim nadzorem",
      "goalLabel": "Cel lekcji",
      "goalPh": "Co uczeń ma rozumieć albo umieć pod koniec lekcji?",
      "tasksLabel": "Zadania na lekcję",
      "tasksEmpty": "Nie ma jeszcze zadań — dodaj własne albo wybierz z banku.",
      "required": "Obowiązkowe",
      "removeTask": "Usuń zadanie",
      "ownTaskPh": "Wpisz własne zadanie…",
      "addOwn": "Dodaj zadanie",
      "saving": "Zapisuję…",
      "saved": "Zapisano.",
      "saveDropsApproval": "Zapisanie cofnie zatwierdzenie — plan trzeba będzie zatwierdzić ponownie.",
      "saveDropsPlan": "Zapisanie usunie przygotowany plan — powstał dla poprzedniego celu i zadań. Potem przygotuj nowy.",
      "tooManyTasks": "Zadań na lekcję — najwyżej {{n}}. Usuń nadmiarowe, żeby zapisać.",
      "goalTooLong": "Znaków w celu lekcji — najwyżej {{n}}. Skróć go, żeby zapisać.",
      "approve": "Zatwierdź plan",
      "approving": "Zatwierdzam…",
      "approved": "Zatwierdzony",
      "approveSaveFirst": "Najpierw zapisz zmiany — zatwierdza się zapisany plan.",
      "planTitle": "Plan lekcji",
      "planEmpty": "Plan nie jest jeszcze przygotowany",
      "prepare": "Przygotuj plan",
      "prepareAgain": "Przygotuj od nowa",
      "prepareReplaces": "Nowy plan zastąpi obecny razem z Twoimi poprawkami.",
      "prepareReplacesApproved": "Nowy plan zastąpi obecny razem z Twoimi poprawkami, a zatwierdzenie zostanie cofnięte.",
      "prepareNoDraft": "Najpierw zapisz cel i zadania lekcji — plan powstaje na ich podstawie.",
      "prepareSaveFirst": "Najpierw zapisz zmiany — plan powstaje na podstawie zapisanej wersji.",
      "prepareStarted": "Lekcja już trwa, minęła albo została odwołana — planu nie da się już przygotować.",
      "saveMaterials": "Zapisz plan",
      "notFound": "Ta lekcja jest niedostępna — mogła zostać usunięta albo lekcje z AI są wyłączone na Twoim koncie.",
      "changedElsewhere": "Tę lekcję zmieniono, gdy strona była otwarta — strona została odświeżona. Sprawdź plan i spróbuj ponownie.",
      "materials": {
        "done": "Gotowe",
        "remove": "Usuń z planu",
        "lastTopic": "Ostatniego tematu nie da się usunąć — w planie musi zostać choć jeden",
        "lastSlot": "Ostatniego etapu nie da się usunąć — w planie musi zostać choć jeden",
        "minutesOf": "Razem {{sum}} z {{total}} min",
        "minutesOff": "Nie zgadza się z długością lekcji — popraw minuty etapów",
        "problem": "Treść",
        "solution": "Rozwiązanie",
        "answer": "Odpowiedź",
        "level": "Poziom {{n}}",
        "prerequisites": "Potrzebna wiedza",
        "min": "min",
        "empty": "Brak"
      },
      "section": {
        "topics": "Tematy i potrzebna wiedza",
        "explanation": "Jak wyjaśniać",
        "workedExamples": "Rozwiązane przykłady",
        "practice": "Podobne zadania",
        "checkQuestions": "Pytania sprawdzające zrozumienie",
        "expectedGaps": "Możliwe luki w wiedzy",
        "timePlan": "Podział czasu"
      },
      "status": {
        "not_ready": "Plan niezatwierdzony",
        "waiting": "Czeka na lekcję",
        "live": "Trwa",
        "overtime": "Czas minął",
        "ended": "Zakończona",
        "canceled": "Odwołana"
      },
      "feed": {
        "title": "Czat lekcji",
        "hint": "Tylko do odczytu: lekcję prowadzi AI, a Ty widzisz rozmowę.",
        "empty": "Uczeń jeszcze nic nie napisał.",
        "student": "Uczeń",
        "ai": "Asystent AI",
        "you": "Ty",
        "typing": "AI pisze odpowiedź…",
        "alarmTitle": "Niepokojąca wiadomość w rozmowie",
        "alarmReason": "Ocena AI: {{reason}}",
        "alarmNoReason": "Asystent AI zauważył niepokojącą wiadomość — przeczytaj rozmowę powyżej.",
        "callTeacher": "Uczeń prosi o Twoją pomoc",
        "unread": "Asystent AI nie zdołał przeczytać wiadomości ucznia powyżej — przeczytaj je.",
        "limit": "Asystent AI nie odpowiedział: limit AI Twojego konta jest wyczerpany.",
        "aiFailed": "Asystent AI nie zdołał odpowiedzieć uczniowi.",
        "end": "Zakończ czat",
        "endTitle": "Zakończyć czat lekcji?",
        "endBody": "Uczeń nie będzie mógł już pisać na tym czacie, a AI — odpowiadać. Rozmowa zostanie zachowana.",
        "endConfirm": "Zakończ",
        "ended": "Czat zakończony."
      }
    },
    "analyze": {
      "title": "Analiza lekcji",
      "subtitle": "Wrzuć zdjęcia i notatki po lekcji — dostaniesz raport i gotową pracę domową",
      "studentLabel": "Uczeń",
      "studentPlaceholder": "Wybierz ucznia…",
      "lessonLabel": "Której lekcji to dotyczy",
      "lessonPlaceholder": "Wybierz lekcję…",
      "lessonEmpty": "Ten uczeń nie miał jeszcze żadnych lekcji — najpierw zaplanuj jedną w kalendarzu.",
      "photosLabel": "Zdjęcia z lekcji",
      "photoHint": "JPEG, PNG, WEBP, HEIC — do {{mb}} MB każde",
      "notesLabel": "Co było na lekcji",
      "notesPh": "Własnymi słowami: co robiliście, jak poszło…",
      "promptLabel": "Wskazówki do pracy domowej",
      "promptPh": "np. „trzy trudniejsze zadania na ułamki i dwa łatwe na rozgrzewkę”",
      "analyzeBtn": "Analizuj",
      "notReady": "Wybierz lekcję i dodaj zdjęcia lub notatki, żeby zacząć analizę.",
      "previousNoteLabel": "Notatka z poprzedniego razu",
      "previousNoteAccept": "Uwzględnij",
      "previousNotePostpone": "Odłóż",
      "reportTextLabel": "Raport z lekcji",
      "reportPromptLabel": "Co Ci się nie podoba?",
      "reportPromptPh": "np. „krócej i cieplej, mniej lania wody”",
      "nextNoteLabel": "Notatka na następną lekcję",
      "nextNotePh": "Przypomnienie dla siebie na następny raz (opcjonalnie)…",
      "homeworkPromptLabel": "Co poprawić?",
      "homeworkPromptPh": "np. „zrób pierwsze zadanie trudniejsze”",
      "tasksLabel": "Zadania",
      "taskBodyPh": "Treść zadania, wzory w LaTeX: $\\frac{1}{2}$",
      "taskPointsLabel": "Punkty",
      "taskPointsHint": "0 = nieoceniane (przykład, rozgrzewka)",
      "addTask": "Dodaj zadanie",
      "removeTask": "Usuń zadanie",
      "tasksEmpty": "Nie ma jeszcze zadań.",
      "hwTitleLabel": "Tytuł pracy domowej",
      "hwTitlePh": "np. „Ułamki: dodawanie i odejmowanie”",
      "hwTitleHint": "To pierwsza rzecz, którą uczeń zobaczy na swojej liście. Bez imienia i daty — te i tak są widoczne.",
      "dueAtLabel": "Termin oddania",
      "dueAtHint": "Minimum 3 godziny od teraz — żeby uczeń miał realny czas na wykonanie",
      "dueAtTooSoon": "Za wcześnie — minimum 3 godziny od teraz",
      "sendBtn": "Wyślij",
      "sending": "Wysyłanie…",
      "sentOk": "Wysłano — raport opublikowany, praca domowa poszła do ucznia.",
      "sentDetails": "Zadano: {{assigned}} · Termin: {{due}}",
      "bankLabel": "Zadania z banku",
      "bankCount": "Dołączone zadania: {{n}}",
      "bankClear": "Usuń",
      "bankAugment": "Niech AI dogeneruje zadania",
      "bankAugmentOn": "AI dopisze swoje zadania do bankowych, nie zastępując ich",
      "bankAugmentOff": "AI napisze tylko raport — zadania zostaną te z banku",
      "bankAdd": "Dodaj zadania z banku",
      "bankSave": "Zapisz do banku",
      "bankEmptyHint": "Możesz dołączyć gotowe zadania ze swojego banku — wtedy AI napisze tylko raport."
    },
    "tasks": {
      "title": "Bank zadań",
      "subtitle": "Zestawy: {{sets}} · zadania: {{tasks}}",
      "generateBtn": "Wygeneruj",
      "emptyTitle": "Bank jest na razie pusty",
      "emptyBody": "Opisz własnymi słowami, jakich zadań potrzebujesz — pojawią się tutaj. Później zadasz je dowolnemu uczniowi.",
      "taskCount": "{{n}} zad.",
      "points": "{{n}} pkt",
      "deleteSet": "Usuń zestaw",
      "deleteConfirm": "Usunąć zestaw „{{title}}”? Już zadane prace domowe się nie zmienią.",
      "pickStart": "Wybierz do pracy domowej",
      "pickDone": "Gotowe",
      "pickTask": "Wybierz zadanie",
      "picked": "Wybrano: {{n}}",
      "pickClear": "Wyczyść",
      "assignBtn": "Zadaj jako pracę domową",
      "newTitle": "Nowe zadania",
      "editTitle": "Zestaw zadań",
      "promptLabel": "Czego potrzebujesz",
      "promptPh": "pięć zadań na dodawanie ułamków, dwa trudniejsze",
      "promptHint": "Pisz jak do człowieka: ile zadań, na jaki temat, o jakiej trudności.",
      "setTitleLabel": "Nazwa zestawu",
      "setTitlePh": "Ułamki: dodawanie i odejmowanie",
      "setTitleHint": "Po niej rozpoznasz zestaw w banku. Propozycję AI możesz poprawić.",
      "commentLabel": "Notatka dla siebie",
      "commentPh": "opcjonalnie",
      "saveBtn": "Zapisz do banku",
      "pickerTitle": "Zadania z banku",
      "pickerEmptyBody": "Najpierw zbierz zestawy w zakładce „Bank zadań”.",
      "pickerAdd": "Dodaj: {{n}}"
    },
    "noStudents": {
      "text": "Najpierw dodaj ucznia.",
      "loadError": "Nie udało się wczytać uczniów."
    },
    "parents": {
      "title": "Rodzice z kontem",
      "invite": "Zaproś rodzica",
      "closed": "Na razie nie można zapraszać rodziców: panel rodzica nie jest jeszcze otwarty. Podłączonych można odłączyć.",
      "none": "Na razie nikt nie jest podłączony.",
      "noName": "Rodzic bez imienia",
      "since": "podłączony(-a) {{date}}",
      "access": {
        "paused": "Tylko odczyt — uczeń wstrzymany",
        "closed": "Konto wyłączone"
      },
      "unlink": "Odłącz",
      "unlinkTitle": "Odłączyć: {{name}}?",
      "unlinkBody": "{{name}} przestanie widzieć prace ucznia {{student}}.",
      "unlinkLast": "{{name}} nie ma innych dzieci — konto zostanie zamknięte za 7 dni, jeśli nie pojawi się nowy kod.",
      "unlinkConfirm": "Odłącz",
      "unlinked": "{{name}} nie widzi już prac ucznia.",
      "unlinkedLast": "{{name}} nie widzi już prac ucznia. Nie ma innych dzieci — konto zostanie zamknięte {{date}}, jeśli nie pojawi się nowy kod.",
      "pending": "Czekają na rejestrację",
      "until": "ważny do {{date}}",
      "claimed": "rodzic zaczął rejestrację · do {{date}}",
      "revoke": "Odwołaj",
      "revoked": "Kod odwołany.",
      "code": {
        "title": "Kod dla rodzica",
        "hint": "Ważny do {{date}}, dla jednego rodzica. Rodzic otworzy link albo wpisze kod przy rejestracji.",
        "message": "Panel rodzica w Korepeta — sprawdzone prace, lekcje i powiadomienia: {{link}} · Kod: {{code}}"
      }
    },
    "reactions": {
      "you": "Ty",
      "student": "Uczeń"
    }
  },
  "student": {
    "dashboard": {
      "hello": "Cześć, {{name}}!",
      "helloAnon": "Cześć!",
      "askName": "Jak się nazywasz?",
      "askNameSub": "Podpisz się, żeby korepetytor wiedział, czyja to praca.",
      "kpiAccuracy": "Skuteczność · 30 dni",
      "kpiStreak": "Seria",
      "kpiStreakSub": "dni z rzędu",
      "kpiPending": "ZD czekają",
      "submitOnTime": "oddaj na czas",
      "allDone": "wszystko zrobione",
      "sentTitle": "Wysłane do sprawdzenia",
      "todoTitle": "Do zrobienia",
      "deadline": "termin: {{when}}",
      "submit": "Oddaj",
      "askAccount": "Załóż sobie wejście",
      "askAccountSub": "Bez e-maila i hasła wchodzisz tylko z linku od korepetytora, a on działa dobę.",
      "askAccountCta": "Zrób to teraz",
      "tutorAvatarAlt": "Twój korepetytor",
      "fixTitle": "Sprawdzone — możesz poprawić",
      "fixSub": "Są błędy: popraw je i oddaj pracę jeszcze raz",
      "fixSubUnknown": "Zobacz sprawdzenie: błędy możesz poprawić i oddać pracę jeszcze raz",
      "fixBtn": "Zobacz błędy",
      "fixBtnUnknown": "Otwórz sprawdzenie",
      "allCorrect": "Wszystko dobrze — korepetytor wkrótce zatwierdzi ocenę",
      "reviewedSeeFeedback": "Sprawdzone — zobacz wynik",
      "returnedSub": "Korepetytor odesłał do poprawy — przeczytaj komentarze, popraw i oddaj jeszcze raz",
      "returnedBtn": "Komentarze korepetytora",
      "allCorrectAfterTutor": "AI nie znalazło błędów — porównaj pracę z komentarzami korepetytora",
      "parentsSee": "Rodzic widzi twoje prace po sprawdzeniu przez korepetytora."
    },
    "notifications": {
      "title": "Powiadomienia",
      "homeworkAssigned": "Przyszło nowe zadanie domowe",
      "homeworkReviewed": "Korepetytor potwierdził ocenę",
      "dailyDigest": "Podsumowanie na jutro — raz dziennie: o której jutro lekcja"
    },
    "submitForm": {
      "photoHint": "Zrób zdjęcie zeszytu — może być kilka stron, do {{max}}. Rozwiązania wpisane w telefonie nie liczą się.",
      "noteLabel": "Notatka (opcjonalna)",
      "notePh": "Np. „nie zrozumiałem zadania 3, ale próbowałem…”",
      "taskTitle": "Zadanie",
      "cancel": "Anuluj",
      "sendBtn": "Wyślij",
      "afterSend": "Po wysłaniu AI od razu sprawdzi pracę i pokaże błędy — będzie można je poprawić i oddać pracę jeszcze raz. Ocenę wystawi korepetytor.",
      "tasksTitle": "Zadania",
      "points": "{{n}} pkt",
      "sample": "przykład",
      "photoOnly": "Tylko zdjęcie zeszytu — nic więcej",
      "sending": "Wysyłanie…",
      "noAttemptsLeft": "Obie próby przed sprawdzeniem wykorzystane — dalej decyduje korepetytor",
      "noAttemptsError": "Próby przed sprawdzeniem się skończyły — korepetytor obejrzy pracę i w razie potrzeby odeśle ją do poprawy.",
      "stateChangedError": "Teraz nie można jej oddać — praca jest już wysłana albo sprawdzona. Zobacz wynik.",
      "attemptChangedError": "Ta praca była już oddana wcześniej — z tego albo innego urządzenia, więc te zdjęcia nie zostały wysłane. Strona się odświeżyła: zobacz, co się z nią teraz dzieje.",
      "attemptChangedReloadError": "Ta praca była już oddana wcześniej — z tego albo innego urządzenia, więc te zdjęcia nie zostały wysłane. Odśwież stronę, żeby zobaczyć, co się z nią teraz dzieje.",
      "alreadyReviewedNotice": "Praca została już przyjęta i sprawdzona przez AI — zobacz wynik, popraw błędy i sfotografuj pracę od nowa.",
      "viewResult": "Zobacz wynik",
      "pageTitle": "Oddaj zadanie domowe",
      "retryTitle": "Poprawa — próba {{attempt}} z {{max}}",
      "retryLead": "Popraw w zeszycie zadania oznaczone „Błąd” albo „Częściowo” — wskazówki AI są pod nimi.",
      "retryLeadComment": "Popraw w zeszycie to, o czym mówi komentarz AI poniżej.",
      "retryLeadPlain": "Pracę można oddać jeszcze raz: popraw w zeszycie, co chcesz.",
      "retryTasksTitle": "Zadania — co poprawić",
      "retryPhotoHint": "Sfotografuj całą pracę od nowa — wszystkie strony z poprawkami, do {{max}}. AI sprawdzi całość, a nie tylko poprawki.",
      "retrySendBtn": "Wyślij poprawioną pracę",
      "retryAfterSend": "Po tej próbie pracę sprawdzi korepetytor.",
      "checkingNow": "Praca wysłana — AI ją sprawdza.",
      "aiFailed": "AI nie zdołało sprawdzić pracy — sprawdzi i oceni ją korepetytor. Nie musisz oddawać jej ponownie.",
      "finalGrade": "Korepetytor już sprawdził tę pracę — ocena jest ostateczna.",
      "returnedTitle": "Poprawa według komentarzy korepetytora",
      "returnedLead": "Popraw w zeszycie to, co wskazał korepetytor — jego wskazówki są pod zadaniami poniżej.",
      "returnedNotice": "Korepetytor właśnie sprawdził pracę i odesłał ją do poprawy — zdjęcia nie zostały wysłane. Przeczytaj komentarze i oddaj ją jeszcze raz."
    },
    "login": {
      "title": "Logowanie",
      "subtitle": "Wpisz swój kod PIN",
      "submit": "Zaloguj się",
      "checking": "Sprawdzanie…",
      "errInvalidPin": "Nieprawidłowy PIN",
      "errGeneric": "Nie udało się zalogować — spróbuj ponownie",
      "forgotPin": "Nie pamiętasz PIN-u? Jeśli masz e-mail i hasło, wejdź nimi."
    },
    "pair": {
      "nameLabel": "Jak się nazywasz",
      "connecting": "Łączenie…",
      "setPinTitle": "Ustaw PIN",
      "setPinSubtitle": "4 cyfry — będziesz je wpisywać przy każdym logowaniu",
      "setPinBtn": "Zapisz i przejdź dalej",
      "saving": "Zapisywanie…",
      "errorTitle": "Link nie zadziałał",
      "errorSubtitle": "Wygasł albo już był użyty — poproś nauczyciela o nowy",
      "retryTitle": "Nie udało się teraz wejść",
      "errSetPin": "Nie udało się zapisać PIN-u — spróbuj ponownie",
      "tutorWarnTitle": "Jesteś zalogowany jako korepetytor",
      "tutorWarnBody": "Ten link jest przeznaczony dla ucznia. Jeśli przejdziesz dalej, wylogujesz się ze swojego panelu — powiązanie zakłada sesję ucznia zamiast Twojej.",
      "tutorWarnProceed": "Mimo to powiąż to urządzenie",
      "parentWarnTitle": "Teraz otwarty jest panel rodzica",
      "parentWarnBody": "Ten link jest dla ucznia. Jeśli przejdziesz dalej, wylogujesz się z panelu rodzica: na tym urządzeniu otworzy się sesja ucznia."
    },
    "join": {
      "title": "Dołącz do grupy",
      "nameLabel": "Jak się nazywasz",
      "namePh": "Imię i nazwisko",
      "joinBtn": "Dołącz",
      "joining": "Dołączanie…",
      "errorTitle": "Link nie zadziałał",
      "errorSubtitle": "Wygasł — poproś nauczyciela o nowy link",
      "resumeTitle": "To ty, {{name}}?",
      "resumeTitleAnon": "Kontynuować rejestrację?",
      "resumeBody": "Na tym urządzeniu zaczęła się już rejestracja w tej grupie. Dokończ ją — nie trzeba zaczynać od nowa.",
      "resumeRegisteredBody": "Masz już konto w tej grupie — wystarczy do niego wejść.",
      "resumeContinue": "Kontynuuj jako {{name}}",
      "resumeContinueAnon": "Kontynuuj",
      "resumeOpen": "Przejdź do konta",
      "resumeSomeoneElse": "To nie ja — dołączam jako ktoś inny"
    },
    "register": {
      "title": "Twoje konto",
      "emailSub": "Podaj swój e-mail — tam przyjdzie kod. Przyda się, jeśli zapomnisz hasła.",
      "codeSub": "Wpisz kod z e-maila — tak sprawdzimy, że adres jest twój.",
      "accountSub": "Wymyśl nick i hasło — będziesz się nimi logować z każdego urządzenia.",
      "emailLabel": "Twój e-mail",
      "sendCode": "Wyślij kod",
      "sending": "Wysyłanie…",
      "codeSent": "Kod wysłany na {{email}}. Sprawdź skrzynkę i folder spam.",
      "codeResent": "Wysłaliśmy nowy kod na {{email}} — poprzedni już nie działa.",
      "codeLabel": "Kod z e-maila",
      "confirm": "Potwierdź",
      "checking": "Sprawdzanie…",
      "wrongEmail": "Nie ten adres? Popraw",
      "resend": "Wyślij kod ponownie",
      "nicknameLabel": "Nick",
      "nicknamePh": "np. kira77",
      "passwordLabel": "Hasło",
      "finish": "Gotowe",
      "saving": "Zapisywanie…",
      "later": "Później"
    },
    "backToTutor": "Wróć do panelu korepetytora",
    "pairExpired": {
      "title": "Urządzenie niepołączone",
      "subtitle": "Poproś nauczyciela o nowy link do logowania",
      "orPassword": "Masz już podpięty e-mail i hasło? Wtedy link nie jest potrzebny."
    },
    "result": {
      "final": "Ocena zatwierdzona",
      "overall": "Komentarz ogólny",
      "perTaskTitle": "Zadania",
      "retryBtn": "Popraw i oddaj ponownie",
      "pageTitle": "Wynik zadania",
      "toHome": "Na stronę główną",
      "headFinal": "Korepetytor sprawdził twoją pracę",
      "tallyCorrect": "Dobrze: {{correct}} z {{graded}}",
      "tallyPoints": "Punkty: {{earned}} z {{total}}",
      "retryTitle": "Możesz poprawić błędy i oddać pracę jeszcze raz",
      "retryStep1": "Zobacz poniżej zadania oznaczone „Błąd” albo „Częściowo” — pod każdym jest napisane, co poprawić.",
      "retryStep2": "Popraw je w zeszycie.",
      "retryStep3": "Naciśnij „Popraw i oddaj ponownie” i sfotografuj całą pracę od nowa — wszystkie strony.",
      "retryStep1Comment": "Przeczytaj komentarz AI poniżej — jest w nim napisane, co poprawić.",
      "retryStep2Comment": "Popraw te błędy w zeszycie.",
      "retryOnce": "Po sprawdzeniu przez AI można poprawić raz — potem pracę sprawdzi korepetytor.",
      "allCorrectTitle": "Wszystko dobrze!",
      "allCorrectText": "Nie ma błędów — korepetytor wkrótce przejrzy pracę i zatwierdzi ocenę.",
      "lastAttemptTitle": "Próby przed sprawdzeniem się skończyły",
      "lastAttemptText": "Teraz decyduje korepetytor: wystawi ocenę albo odeśle pracę do poprawy.",
      "fixLabel": "Co poprawić",
      "missingHint": "Brak sprawdzenia — zadanie nie zostało zaliczone. Upewnij się, że jego rozwiązanie jest na zdjęciu.",
      "noHint": "Porównaj rozwiązanie z treścią zadania i znajdź błąd.",
      "verdict": {
        "correct": "Dobrze",
        "partial": "Częściowo",
        "wrong": "Błąd",
        "missing": "Brak sprawdzenia"
      },
      "notSubmitted": "Ta praca nie jest jeszcze oddana — najpierw ją sfotografuj i wyślij.",
      "pendingTitle": "AI sprawdza twoją pracę…",
      "pendingText": "Ekran odświeży się sam, gdy sprawdzenie będzie gotowe. Możesz też wyjść — dostaniesz powiadomienie.",
      "slowTitle": "Sprawdzanie się przedłuża",
      "slowText": "AI odpowiada dłużej niż zwykle i ekran nie odświeża się już sam. Kliknij „Odśwież” za chwilę — albo zajrzyj tu później.",
      "aiFailedTitle": "AI nie zdołało sprawdzić pracy",
      "aiFailedText": "Tak się zdarza. Pracę sprawdzi i oceni korepetytor — nie musisz oddawać jej ponownie.",
      "reviewedTitle": "Praca sprawdzona",
      "reviewedText": "Nie ma w niej zadań punktowanych, więc nie ma tu oznaczeń „Dobrze” ani „Błąd”. Ocenę wystawi korepetytor, gdy przejrzy pracę.",
      "previousGrade": "poprzednia ocena",
      "returnedTitle": "Korepetytor odesłał pracę do poprawy",
      "earlierTitle": "Komentarze korepetytora do poprzedniej wersji",
      "earlierScore": "Poprzednia ocena: {{score}}%",
      "fixListTitle": "Co poprawić",
      "taskNo": "Zadanie {{n}}",
      "resubmitBtn": "Oddaj jeszcze raz",
      "allCorrectAfterTutorTitle": "AI nie znalazło błędów",
      "allCorrectAfterTutorText": "Ale AI nie widzi komentarzy korepetytora — porównaj z nimi pracę (są poniżej). Jeśli czegoś nie poprawiłeś, możesz oddać ją jeszcze raz."
    },
    "aiLesson": {
      "title": "Lekcja z AI",
      "disclosure": "Rozmawiasz z asystentem AI. Może się mylić.",
      "typing": "Asystent AI pisze…",
      "startsAt": "Lekcja zacznie się {{day}} o {{time}}. Wtedy będzie można tu pisać.",
      "ended": "Lekcja się skończyła.",
      "inputPh": "Napisz wiadomość…",
      "send": "Wyślij",
      "callTeacher": "Zawołaj korepetytora",
      "teacher": "Korepetytor",
      "open": "Otwórz",
      "cardLive": "Trwa teraz — wejdź na czat",
      "cardWaiting": "Zacznie się {{day}} o {{time}}",
      "system": {
        "callTeacher": "Zawołaliśmy korepetytora.",
        "unread": "Daliśmy znać korepetytorowi, że asystent AI nie odpowiedział.",
        "limit": "Asystent AI nie może teraz odpowiadać: limit się wyczerpał. Zawołaj korepetytora.",
        "aiFailed": "Asystent AI nie zdołał odpowiedzieć. Napisz jeszcze raz albo zawołaj korepetytora."
      }
    },
    "calendar": {
      "title": "Moje lekcje",
      "subtitle": "Tydzień: {{range}}",
      "prev": "Poprzedni",
      "next": "Następny",
      "today": "Dziś",
      "lessonLabel": "Lekcja",
      "minShort": "{{n}} min"
    },
    "settings": {
      "title": "Mój profil",
      "nameHint": "To imię widzisz ty i twój korepetytor. On podpisuje cię u siebie po swojemu — to nie zmienia twojego imienia.",
      "account": {
        "title": "Twoje logowanie",
        "why": "Na razie wchodzisz tylko z linku od korepetytora. Podepnij swój e-mail i hasło — wtedy zalogujesz się z każdego telefonu, nawet jeśli zgubisz ten.",
        "start": "Podepnij e-mail i hasło",
        "continue": "Dokończ zakładanie konta",
        "nickname": "Login",
        "email": "E-mail",
        "ready": "Możesz logować się loginem albo e-mailem i swoim hasłem."
      },
      "parents": {
        "title": "Kto widzi moje sprawdzone prace",
        "noName": "Rodzic",
        "since": "od {{date}}",
        "about": "Rodzic widzi prace po sprawdzeniu przez korepetytora — ocenę, komentarze i zdjęcia oddanych prac. Podłącza go korepetytor."
      }
    },
    "history": {
      "title": "Moje postępy",
      "error": "Nie udało się wczytać historii — spróbuj jeszcze raz",
      "emptyTitle": "Nie ma jeszcze prac domowych",
      "emptyBody": "Tu pojawią się wszystkie twoje prace z ocenami — gdy tylko dostaniesz pierwszą",
      "kpiDone": "Sprawdzone prace",
      "kpiAverage": "Średnia ocena",
      "due": "Termin: {{date}}",
      "attempt": "Podejście {{n}}:",
      "stateDone": "Sprawdzone",
      "statePreliminary": "Wstępnie",
      "stateSubmitted": "Oddane",
      "stateOverdue": "Po terminie",
      "stateAssigned": "Zadane",
      "stateReturned": "Do poprawy",
      "canFix": "Można poprawić"
    },
    "loginByPassword": "Zaloguj się hasłem",
    "alreadyRegistered": {
      "title": "Masz już konto",
      "body": "To zaproszenie nie jest już potrzebne — rejestracja jest zakończona. Zaloguj się e-mailem albo nickiem i hasłem. Nie pamiętasz hasła? Ustawisz nowe na ekranie logowania.",
      "otherCode": "Wpisz inny kod"
    },
    "condition": {
      "title": "Co zrobić",
      "openPhoto": "Otwórz zdjęcie {{n}} w powiększeniu",
      "theory": "Teoria do zadań"
    },
    "resubmitNag": {
      "one": "„{{title}}” sprawdzone przez AI — są błędy",
      "many": "Czekają na poprawę — prac: {{n}}",
      "button": "Popraw",
      "show": "Pokaż",
      "returned": "Korepetytor odesłał „{{title}}” do poprawy — oddaj ją jeszcze raz",
      "neutral": "„{{title}}” możesz poprawić i oddać jeszcze raz"
    },
    "backToParent": "Wróć do panelu rodzica",
    "exit": {
      "hint": "Wylogujesz się na tym urządzeniu. Wrócisz e-mailem i hasłem, jeśli je masz, albo linkiem lub kodem od korepetytora."
    },
    "reactions": {
      "you": "Ty",
      "tutor": "Twój korepetytor"
    }
  },
  "terms": {
    "accept": {
      "before": "Oświadczam, że mam ukończone 18 lat, i zakładając konto akceptuję ",
      "beforeExisting": "Oświadczam, że mam ukończone 18 lat, i akceptuję ",
      "link": "Regulamin Korepety",
      "after": " (wersja {{version}}) w całości — wraz z umową powierzenia przetwarzania danych i zasadami korzystania ze sztucznej inteligencji — potwierdzam zapoznanie się z informacją o przetwarzaniu danych i przyjmuję aplikację taką, jaką ten dokument opisuje."
    },
    "gate": {
      "firstTitle": "Potrzebna akceptacja Regulaminu",
      "firstBody": "Korzystanie z aplikacji wymaga akceptacji Regulaminu Korepety w wersji {{version}}.",
      "updatedTitle": "Zaktualizowaliśmy Regulamin",
      "updatedBody": "Obowiązuje nowa wersja Regulaminu Korepety — {{version}}. Dalsze korzystanie z aplikacji wymaga jej akceptacji.",
      "changesTitle": "Co się zmieniło",
      "changes": {
        "twoStepDrafts": "Propozycje zadań — do pracy domowej i do banku zadań — powstają teraz w dwóch krokach. Najpierw AI układa szkic, a serwer sprawdza go bez udziału AI (m.in. liczbę zadań i formatowanie). Potem jedno wywołanie AI czyta szkic razem z Twoim poleceniem, materiałem, z którego szkic powstał, i uwagami serwera, a następnie albo go potwierdza, albo zwraca poprawioną wersję — zamiast dotychczasowej weryfikacji, poprawki i ponownej weryfikacji. Oba kroki — również drugi, choć weryfikację wykonywały dotąd wyłącznie modele stabilne — wykonuje najnowszy model Gemini Flash, także w wersji podglądowej. Jeśli drugi krok się nie powiedzie, nie zdąży albo zabraknie na niego Limitu AI, dostajesz szkic z pierwszego kroku; jeśli poprawiona wersja ma w sprawdzeniu serwera błędy, których szkic nie miał — szkic razem z uwagami drugiego kroku. Oba kroki liczą się do Limitu AI, a drugi krok nie zwalnia Cię z przeczytania propozycji.",
        "lessonNotesToHomework": "Przy pracy domowej zadawanej po zajęciach AI dostaje teraz — w obu krokach — nie tylko opis tych zajęć, ale też Twoje notatki z tych zajęć. Dlatego, tak jak w poleceniu i w opisie zajęć, nie umieszczaj w tych notatkach imienia, nazwiska ani innych danych, po których można rozpoznać ucznia. Imię, pod którym uczeń jest zapisany w aplikacji, aplikacja i tak wycina z opisu i z notatek przed wysłaniem.",
        "aiLessonPrep": "Przygotowanie lekcji z AI jest teraz w Regulaminie osobną, piątą czynnością AI. Trafiają do niej zapisane przez Ciebie cel i zadania lekcji, czas trwania zajęć, język zadań oraz luki w wiedzy ucznia zapisane w aplikacji — bez jego imienia, zdjęć i cytatów z prac. Wykonuje ją wyłącznie model Gemini Flash w wersji stabilnej — nigdy wersja podglądowa. Przygotowanie lekcji liczy się do Limitu AI.",
        "photos45": "Zdjęcia prac oraz zdjęcia, które dołączasz wyłącznie dla AI — także zdjęcia z zajęć — aplikacja usuwa teraz sama po 45 dniach od przesłania. Dotąd zdjęcia prac usuwała po 12 miesiącach, a zdjęć dołączanych dla AI nie usuwała automatycznie. Nowy termin dotyczy także zdjęć przesłanych wcześniej.",
        "studentLessonsAndPhotos": "Gdy korepetytor przygotowuje z pomocą AI pracę domową po zajęciach, AI dostaje teraz także jego notatki z tych zajęć; imię, pod którym uczeń jest zapisany w aplikacji, aplikacja wycina z nich przed wysłaniem. Gdy korepetytor przygotowuje z pomocą AI lekcję, AI dostaje luki w wiedzy ucznia zapisane w aplikacji — bez imienia, zdjęć i cytatów z prac; tę czynność wykonuje wyłącznie model w wersji stabilnej. Zdjęcia prac ucznia oraz zdjęcia, które korepetytor dołącza wyłącznie dla AI, aplikacja usuwa teraz sama po 45 dniach od przesłania, także te przesłane wcześniej.",
        "parentLessonsAndPhotos": "Gdy korepetytor przygotowuje z pomocą AI pracę domową po zajęciach ucznia, AI dostaje teraz także notatki korepetytora z tych zajęć; imię, pod którym uczeń jest zapisany w aplikacji, aplikacja wycina z nich przed wysłaniem. Gdy korepetytor przygotowuje z pomocą AI lekcję, AI dostaje luki w wiedzy ucznia zapisane w aplikacji — bez imienia, zdjęć i cytatów z prac; tę czynność wykonuje wyłącznie model w wersji stabilnej. Zdjęcia prac ucznia oraz zdjęcia, które korepetytor dołącza wyłącznie dla AI, aplikacja usuwa teraz sama po 45 dniach od przesłania, także te przesłane wcześniej — po tym terminie zdjęć prac nie ma już także na koncie rodzica."
      },
      "read": "Przeczytaj Regulamin",
      "accept": "Akceptuję i kontynuuję",
      "declineHint": "Bez akceptacji z aplikacji nie da się korzystać. Wylogowanie niczego nie usuwa — konto i dane zostają bez zmian.",
      "outdated": "W międzyczasie Regulamin znów się zmienił. Poniżej jest już aktualna wersja — oświadczenie trzeba zaznaczyć jeszcze raz.",
      "noPasswordHint": "Nie masz jeszcze własnego wejścia — ani potwierdzonego e-maila, ani nicku z hasłem. Po wylogowaniu wrócisz tylko przez link albo kod od korepetytora."
    }
  },
  "parent": {
    "title": "Postępy — {{name}}",
    "titleNoName": "Postępy ucznia",
    "invalid": {
      "title": "Link jest nieprawidłowy",
      "subtitle": "Ten link wygląda na nieaktualny lub błędnie wpisany — poproś korepetytora o nowy."
    },
    "loadFailed": {
      "title": "Strona się nie otworzyła",
      "subtitle": "Być może zerwało się połączenie albo serwer jest zajęty — spróbuj ponownie za chwilę."
    },
    "reportsTitle": "Raporty postępów",
    "reportsEmpty": "Nie ma jeszcze żadnego raportu.",
    "statStreak": "Passa",
    "statHwDone": "Prace domowe",
    "statGrades": "Oceny w tym okresie",
    "lessonFeedTitle": "Z lekcji",
    "lessonFeedEmpty": "Nie ma jeszcze raportów z lekcji.",
    "calendarTitle": "Kalendarz",
    "calendarToday": "Dziś",
    "calendarLessonLabel": "Lekcja",
    "calendarMinShort": "{{n}} min",
    "statHwReturned": "Do poprawy"
  },
  "reactions": {
    "add": "Dodaj reakcję",
    "gif": "gif",
    "gifTitle": "GIF",
    "gifSearchPlaceholder": "Na przykład: brawo, hurra, myślę",
    "gifIdle": "Napisz, czego szukać",
    "gifNothing": "Nic nie znaleziono — spróbuj innego słowa",
    "gifFailed": "Wyszukiwarka gifów nie odpowiada. Spróbuj później",
    "gifUnavailable": "Gify nie są jeszcze podłączone",
    "gifBusy": "Wyszukiwarka gifów jest teraz przeciążona. Spróbuj za kilka minut",
    "gifRemove": "Usuń gifa",
    "gifAlt": "GIF",
    "poweredByGiphy": "Powered by GIPHY",
    "failed": "Reakcja nie została wysłana — sprawdź połączenie i spróbuj ponownie."
  },
  "errors": {
    "generic": "Coś poszło nie tak. Spróbuj jeszcze raz.",
    "offline": "Brak połączenia z internetem. Sprawdź je i spróbuj ponownie.",
    "server": "Serwer w tej chwili nie odpowiada. Spróbuj za kilka minut.",
    "timeout": "Serwer nie zdążył odpowiedzieć — zwykle dzieje się tak, gdy AI dostaje za dużo materiału naraz. Podziel go na części i spróbuj jeszcze raz.",
    "rateLimitWait": "Za dużo prób naraz — to chwilowe. Przycisk odblokuje się sam, gdy będzie można spróbować ponownie.",
    "byCode": {
      "rateLimit": "Za dużo prób pod rząd. Poczekaj minutę",
      "validation": "Sprawdź pola — coś się nie zgadza",
      "unauthenticated": "Sesja się skończyła. Zaloguj się ponownie",
      "pinRequired": "Trzeba podać PIN",
      "pinNotSet": "Najpierw trzeba ustawić PIN",
      "invalidPin": "Błędny PIN",
      "deviceMissing": "To urządzenie nie jest już powiązane. Poproś korepetytora o nowy link",
      "inviteInvalid": "Link nie zadziałał — być może już go użyto",
      "lessonOverlap": "Ta godzina jest zajęta przez inne zajęcia",
      "notFound": "Nie znaleziono — mogło już zostać usunięte",
      "alreadyPublished": "To zostało już wysłane",
      "noAttemptsLeft": "Próby przed sprawdzeniem się skończyły",
      "invalidDueDate": "Termin musi być co najmniej trzy godziny później",
      "invalidState": "Teraz nie da się tego zrobić — stan pracy się zmienił",
      "photoRequired": "Dołącz przynajmniej jedno zdjęcie",
      "fileTooLarge": "Plik jest za duży",
      "badMime": "Ten plik nie pasuje — potrzebne jest zdjęcie",
      "storageFailed": "Nie udało się wysłać pliku. Spróbuj ponownie",
      "aiImageTooLarge": "Zdjęcie nr {{photoNumber}} jest za duże dla AI — zrób je ponownie albo usuń",
      "aiImageTooLargeAny": "Jedno ze zdjęć jest za duże dla AI — zrób je ponownie albo usuń",
      "aiRequestTooLarge": "Za dużo zdjęć naraz — usuń część",
      "aiContextTooLong": "Materiał jest za długi — AI nie przeczyta go za jednym razem. Skróć go albo podziel na części",
      "aiContextTooLongTokens": "Materiał jest za długi dla AI (tokenów: {{tokens}}, limit: {{maxTokens}}). Skróć go albo podziel na części",
      "aiOutputTooLong": "Odpowiedź AI nie zmieściła się w limicie długości odpowiedzi modelu — poproś o mniej naraz (np. mniej zadań) albo podziel prośbę na części",
      "aiContentBlocked": "Google nie pozwolił AI odpowiedzieć na to zapytanie (filtr treści) — zmień materiał albo sformułowanie",
      "requestTooLarge": "Za dużo danych, żeby wysłać je naraz — skróć materiał albo podziel go na części",
      "requestTooLargeSize": "Do wysłania jest {{size}}, a serwer przyjmuje naraz najwyżej {{limit}} — skróć materiał albo podziel go na części",
      "gifUnavailable": "Gify nie są jeszcze podłączone",
      "gifFailed": "Wyszukiwarka gifów nie odpowiada",
      "gifSearchBusy": "Wyszukiwarka gifów jest teraz przeciążona — spróbuj za kilka minut",
      "nothingToRestore": "Nie ma czego przywracać",
      "invalidCredentials": "Nieprawidłowy e-mail lub hasło",
      "emailNotConfirmed": "E-mail nie jest jeszcze potwierdzony — wpisz kod z wiadomości",
      "emailTaken": "Na ten adres jest już konto — po prostu się zaloguj",
      "signupClosed": "Rejestracja jest teraz niedostępna — spróbuj za chwilę albo napisz do nas",
      "emailRejected": "Ten adres e-mail nie zadziała",
      "invalidOtp": "Kod jest błędny lub wygasł — poproś o nowy",
      "weakPassword": "To hasło jest za słabe — wybierz inne",
      "samePassword": "To takie samo hasło jak poprzednie",
      "currentPasswordRequired": "Wpisz obecne hasło",
      "currentPasswordInvalid": "Obecne hasło się nie zgadza",
      "authMisconfigured": "Logowanie nie jest do końca skonfigurowane — napisz do administratora",
      "authFailed": "Nie udało się zalogować. Spróbuj ponownie",
      "alreadyRegistered": "To konto jest już gotowe — po prostu zaloguj się e-mailem albo nickiem",
      "termsRequired": "Trzeba zaznaczyć zgodę na Regulamin — bez niej nie można założyć konta.",
      "inviteCodeUnknown": "Nie ma takiego kodu. Sprawdź, czy nie zgubił się znak",
      "inviteCodeUsed": "Ten kod został już wykorzystany. Poproś o nowy",
      "inviteCodeRevoked": "Kod został unieważniony. Poproś o nowy",
      "inviteCodeTaken": "Kod jest już zajęty przez inny adres e-mail",
      "inviteCodeExpired": "Ten kod wygasł. Poproś o nowy",
      "inviteCodeMalformed": "To nie wygląda na kod zaproszenia. Sprawdź, czy nie ma literówki",
      "inviteAlreadyRegistered": "Masz już konto — to zaproszenie nie jest już potrzebne. Zaloguj się e-mailem albo nickiem i hasłem",
      "emailAlreadyConfirmed": "Ten e-mail jest już potwierdzony — możesz iść dalej",
      "inviteExists": "Ten adres ma już zaproszenie — kod nie jest potrzebny, po prostu się zarejestruj",
      "submissionChanged": "Uczeń oddał nową wersję pracy — odśwież stronę i sprawdź ją",
      "reviewChanged": "Tę wersję pracy sprawdzono już w innej karcie lub na innym urządzeniu — odśwież stronę",
      "roundChanged": "Korepetytor już sprawdził tę pracę — odśwież stronę i przeczytaj komentarze",
      "aiJobExpired": "AI nie zdążyło odpowiedzieć w 5 minut. Spróbuj jeszcze raz — a długi materiał najpierw podziel na części",
      "aiJobNotStarted": "Zapytanie do AI nie wystartowało. Kliknij jeszcze raz",
      "aiJobsBusy": "AI pracuje już nad trzema Twoimi prośbami — poczekaj na odpowiedź",
      "aiJobRunning": "AI jeszcze pisze odpowiedź na poprzednią prośbę — poczekaj na nią",
      "aiBadResponse": "AI odpowiedziało w złym formacie. Spróbuj jeszcze raz",
      "aiLessonNoMaterials": "Plan lekcji nie jest jeszcze gotowy — nie ma czego zatwierdzać ani poprawiać",
      "aiLessonStarted": "Ta lekcja już trwa albo się skończyła — jej planu nie można już zmienić",
      "aiLessonNoDraft": "Najpierw zapisz cel i zadania lekcji — plan powstaje na ich podstawie",
      "aiLessonEmpty": "Nie ma z czego przygotować planu — dodaj cel lekcji albo zadania",
      "aiLessonChanged": "Plan zmienił się, gdy AI go przygotowywało — przygotuj go jeszcze raz",
      "aiLessonStartsSoon": "Lekcja zacznie się, zanim AI zdąży przygotować nowy plan — zatwierdzony plan pozostaje bez zmian"
    }
  },
  "owner": {
    "title": "Platforma",
    "subtitle": "Kogo zaproszono, kto ile zużywa i ile to kosztuje",
    "refresh": "Odśwież",
    "noLimit": "bez limitu",
    "noPlan": "bez planu",
    "granted": "podarowany",
    "readOnly": "dostęp wygasł",
    "until": "do {{date}}",
    "months": "{{n}} mies.",
    "invite": {
      "title": "Zaproś korepetytora",
      "subtitle": "Kod jest jednorazowy: budżet dostaje ten, kto wpisze go pierwszy",
      "budget": "Budżet AI, zł",
      "budgetHint": "Tyle złotych na cały okres. Puste — bez limitu",
      "months": "Okres, miesięcy",
      "monthsHint": "Od 1 do 12. Później można przedłużyć",
      "note": "Notatka dla siebie",
      "notePh": "Matematyk ze szkoły",
      "generate": "Wygeneruj kod",
      "generating": "Wystawiam…",
      "readyTitle": "Kod gotowy",
      "readyBody": "Budżet {{budget}} na {{months}} mies. Kod wygasa, gdy ktoś go użyje",
      "share": "Udostępnij",
      "copy": "Kopiuj",
      "copied": "Skopiowano",
      "copyFailed": "Nie udało się skopiować — przepisz kod z ekranu",
      "message": "Dołącz do korepeta: {{link}} · Kod zaproszenia: {{code}}"
    },
    "totals": {
      "cabinets": "Gabinetów",
      "students": "Uczniów",
      "calls": "Wywołań AI",
      "spent": "Koszt AI",
      "revenue": "Przychód miesięczny",
      "ratio": "Przychód ÷ koszt",
      "ratioHint": "cel — nie mniej niż ×5"
    },
    "cabinets": {
      "title": "Gabinety",
      "emptyTitle": "Jeszcze nikogo",
      "emptyBody": "Wystaw kod powyżej i przekaż go komuś",
      "topUp": "Zmień budżet",
      "dialogTitle": "{{name}} — budżet",
      "budgetHint": "Puste — zdejmij własny limit (bez planu AI zamilknie)",
      "extend": "Przedłuż, miesięcy",
      "extendHint": "0 — nie zmieniaj okresu",
      "th": {
        "cabinet": "Gabinet",
        "plan": "Plan",
        "students": "Uczniów",
        "calls": "Wywołań",
        "spent": "Wydano",
        "budget": "Budżet"
      }
    },
    "codes": {
      "title": "Zaproszenia",
      "pending": "czeka: {{n}}",
      "empty": "Nie wystawiono jeszcze żadnego zaproszenia",
      "revoke": "Unieważnij",
      "revokeConfirm": "Unieważnić to zaproszenie? Kod przestanie działać.",
      "th": {
        "code": "Kod",
        "budget": "Budżet",
        "state": "Stan"
      },
      "state": {
        "PENDING": "czeka",
        "CLAIMED": "rejestruje się",
        "USED": "dołączył",
        "REVOKED": "unieważniony"
      }
    }
  },
  "plan": {
    "title": "Taryfa",
    "subtitle": "Wszystkie funkcje są w każdej taryfie. Różni je tylko to, ile pracy AI jest w cenie.",
    "testMode": "Testowy tryb płatności: pieniądze nie są pobierane.",
    "featured": "Polecany",
    "perMonth": "{{price}} / mies.",
    "oneTime": "{{price}} jednorazowo · {{span}}",
    "oneTimePlain": "{{price}} jednorazowo",
    "period": {
      "month": "/ mies.",
      "once": "jednorazowo · {{span}}",
      "oncePlain": "jednorazowo"
    },
    "empty": "Na razie brak taryf — zajrzyj tu później",
    "mine": "Twoja taryfa",
    "from": "Od {{date}}",
    "free": {
      "headline": "Bez AI",
      "continue": "Kontynuuj bez AI",
      "cancelNote": "{{plan}} działa do {{date}}, potem bez AI. Konto i dane zostają.",
      "cancelNoteSoon": "{{plan}} działa do końca opłaconego okresu, potem bez AI. Konto i dane zostają.",
      "points": {
        "students": "Uczniowie, grupy i kalendarz bez limitu",
        "homework": "Zadania, odbiór i ocenianie prac — ręcznie",
        "parents": "Strona raportów dla rodzica"
      }
    },
    "points": {
      "ai": "Wstępne sprawdzanie prac, zadania i raporty z AI",
      "free": "Wszystko, co w Free",
      "cancel": "Rezygnujesz w każdej chwili"
    },
    "audience": {
      "plus": "Na co dzień: regularne zadania i sprawdzanie prac",
      "pro": "Pełny grafik: AI przy każdej lekcji",
      "ultra": "Całe klasy i praca z AI każdego dnia"
    },
    "switch": {
      "action": "Przejdź na {{plan}}",
      "now": "Od razu. Dopłatę za resztę okresu zobaczysz przed potwierdzeniem.",
      "later": "Od {{date}} — do tego dnia zostaje {{plan}}.",
      "unknown": "Kwotę i termin zmiany Stripe pokaże przed potwierdzeniem."
    },
    "trialOffer": {
      "labelNew": "Nowe konto",
      "label": "Okres próbny",
      "title": "{{span}} taryfy {{plan}} za jedyne {{price}}",
      "titlePlain": "Okres próbny za jedyne {{price}}",
      "note": "Płatność jednorazowa — bez subskrypcji i bez automatycznego odnowienia.",
      "terms": "Raz na osobę · karta albo BLIK",
      "action": "Wypróbuj za {{price}}"
    },
    "keep": {
      "action": "Zostań przy {{plan}}",
      "note": "Przejście na {{next}} odwołasz w panelu płatności Stripe."
    },
    "resume": {
      "action": "Wznów subskrypcję",
      "note": "Wznowisz ją w panelu płatności Stripe — odnowi się jak dotąd."
    },
    "names": {
      "trial": "Próbny"
    },
    "usage": {
      "base": "Podstawowy limit AI",
      "times": "Limit AI ×{{n}} względem {{base}}",
      "equivalent": "{{plan}}, {{span}}"
    },
    "reason": {
      "trialUsed": "Okres próbny już był na tym koncie — przysługuje raz na osobę.",
      "trialIdentityUsed": "Okres próbny przysługuje raz na osobę — ten był już wykorzystany.",
      "trialWhileActive": "Okres próbny jest dla kont, które nie mają jeszcze taryfy.",
      "subscriptionExists": "Taryfę zmienisz w „Zarządzaj płatnością” — dopłata za różnicę policzy się sama.",
      "internalPlan": "To konto ma wewnętrzny limit bez ograniczeń — nie trzeba nic kupować.",
      "notConfigured": "Płatności nie są jeszcze podłączone — taryfy pojawią się tu wkrótce."
    },
    "current": {
      "none": "Bez AI — asystent AI działa w płatnych taryfach.",
      "ended": "Taryfa się skończyła — AI jest wstrzymane, dane i prace są bezpieczne.",
      "pastDue": "Płatność nie przeszła — zaktualizuj kartę w „Zarządzaj płatnością”, inaczej AI zostanie wstrzymane.",
      "endsOn": "Subskrypcja anulowana — skończy się {{date}}",
      "renewsOn": "Przedłuży się {{date}} — tego dnia odnowi się też limit AI.",
      "giftUntil": "Prezent do {{date}}",
      "giftForever": "Prezent bezterminowy",
      "until": "Ważna do {{date}}",
      "active": "Aktywna",
      "used": "AI: wykorzystano {{percent}} limitu",
      "usedRenews": "AI: wykorzystano {{percent}} limitu · odnowi się {{date}}",
      "scheduled": "Od {{date}} — taryfa {{plan}}"
    },
    "return": {
      "waiting": "Sprawdzamy płatność — to potrwa kilka sekund…",
      "done": "Gotowe: taryfa {{plan}} jest aktywna.",
      "late": "Potwierdzenie płatności jeszcze nie dotarło — to zwykle kilka minut. Odśwież stronę za chwilę.",
      "canceled": "Płatność nie została zakończona — taryfa się nie zmieniła.",
      "switchLater": "Gotowe: od {{date}} — taryfa {{plan}}. Do tego dnia działa obecna.",
      "subCanceled": "Subskrypcja anulowana: taryfa działa do {{date}}, potem aplikacja zostaje bez AI.",
      "changeLate": "Stripe przyjął zmianę, ale potwierdzenie jeszcze do nas nie dotarło — odśwież stronę za chwilę.",
      "toApp": "Zacznij pracę",
      "declined": {
        "trialIdentityUsed": "Okres próbny przysługuje raz na osobę, więc tego zakupu nie zrealizowaliśmy.",
        "unavailable": "Tego zakupu nie udało się zrealizować.",
        "paymentFailed": "Płatność nie przeszła — nic nie pobraliśmy. Spróbuj jeszcze raz."
      },
      "money": {
        "released": "Blokada na karcie została zdjęta — nic nie pobraliśmy (bank może ją jeszcze pokazywać przez kilka dni).",
        "refunded": "Pieniądze zwróciliśmy — wrócą na konto w ciągu kilku dni roboczych."
      }
    },
    "order": {
      "title": "Zamówienie: {{plan}}",
      "renewsNote": "Subskrypcja odnawia się co miesiąc. Możesz ją anulować w każdej chwili w „Zarządzaj płatnością” — dostęp zostaje do końca opłaconego miesiąca.",
      "oneTimeNote": "Płatność jednorazowa — nie odnawia się sama.",
      "button": "Zamawiam z obowiązkiem zapłaty",
      "stripeNote": "Płatność na bezpiecznej stronie Stripe."
    },
    "consent": {
      "before": "Żądam rozpoczęcia świadczenia przed upływem terminu do odstąpienia od umowy i przyjmuję do wiadomości, że w razie odstąpienia zapłacę za świadczenie spełnione do chwili odstąpienia. Akceptuję ",
      "link": "Regulamin Korepety",
      "after": "."
    }
  },
  "billing": {
    "upsell": {
      "unknownTitle": "AI jest teraz niedostępne",
      "unknownBody": "Limitu AI nie wystarcza albo nie wybrano jeszcze taryfy.",
      "noPlanTitle": "AI nie jest jeszcze włączone",
      "noPlanBody": "Wybierz taryfę, żeby AI zaczęło działać — każda ma wszystkie funkcje.",
      "endedTitle": "Taryfa się skończyła",
      "endedBody": "AI jest wstrzymane, dane i prace są bezpieczne. Przedłuż taryfę, żeby wrócić do AI.",
      "limitTitle": "Za mało limitu AI",
      "limitRenewsBody": "Odnowi się {{date}}, a jeśli potrzebujesz więcej już teraz — wybierz większą taryfę.",
      "limitBody": "Żeby działać dalej, wybierz taryfę.",
      "cta": "Wybierz taryfę"
    },
    "banner": {
      "noPlan": "Asystent AI działa w ramach taryfy — wybierz odpowiednią, każda ma wszystkie funkcje.",
      "ended": "Taryfa się skończyła — AI jest wstrzymane. Dane i prace są bezpieczne.",
      "choose": "Wybierz taryfę",
      "more": "Więcej AI",
      "exceeded": "Limit AI wyczerpany — nowe wywołania AI są odrzucane.",
      "exceededRenews": "Limit AI wyczerpany — odnowi się {{date}}",
      "exceededMoney": "Limit wyczerpany: {{spent}} z {{limit}}. Nowe wywołania AI są odrzucane, dopóki limit nie zostanie podniesiony.",
      "spentMoney": "AI kosztowała w tym okresie {{spent}}",
      "used": "AI: wykorzystano {{percent}} limitu",
      "usedRenews": "AI: wykorzystano {{percent}} limitu · odnowi się {{date}}"
    },
    "usage": {
      "title": "Limit AI w tym okresie rozliczeniowym",
      "ofLimitRenews": "z limitu taryfy · odnowi się {{date}}",
      "refusedUntil": "Nowe wywołania AI są odrzucane do {{date}}"
    },
    "errors": {
      "aiBudgetExceeded": "Limit AI w taryfie się wyczerpał — wybierz taryfę w sekcji „Taryfa” albo poczekaj, aż limit się odnowi.",
      "aiBudgetInsufficient": "Pozostały limit AI nie wystarczy na to zapytanie — skróć materiał, wybierz większą taryfę w sekcji „Taryfa” albo poczekaj, aż limit się odnowi.",
      "aiBudgetInsufficientAmounts": "To zapytanie do AI może kosztować do {{estimate}}, a w limicie AI zostało {{remaining}} — wybierz większą taryfę w sekcji „Taryfa” albo poczekaj, aż limit się odnowi.",
      "aiBudgetBusy": "Część limitu AI zajmują teraz zapytania, które jeszcze trwają — spróbuj ponownie za chwilę.",
      "aiBudgetBusyWait": "Część limitu AI zajmują teraz zapytania, które jeszcze trwają — spróbuj ponownie za {{retryAfter}}.",
      "consentRequired": "Zaznacz pole — bez zgody zamówienia nie da się złożyć.",
      "planNotForSale": "Ta taryfa nie jest już sprzedawana.",
      "planNotConfigured": "Taryfa nie jest jeszcze podłączona do płatności — zajrzyj tu wkrótce.",
      "notConfigured": "Płatności są teraz niedostępne — zajrzyj tu wkrótce.",
      "trialUsed": "Okres próbny już był na tym koncie — przysługuje raz na osobę.",
      "trialIdentityUsed": "Okres próbny przysługuje raz na osobę — ten był już wykorzystany.",
      "trialWhileActive": "Okres próbny jest dla kont, które nie mają jeszcze taryfy.",
      "subscriptionExists": "Masz już subskrypcję — taryfę zmienisz w „Zarządzaj płatnością”.",
      "internalPlan": "To konto ma wewnętrzny limit bez ograniczeń — nie trzeba nic kupować.",
      "noBillingAccount": "Nie było jeszcze płatności — na razie nie ma czym zarządzać.",
      "noSubscription": "Nie widzimy aktywnej subskrypcji — odśwież stronę.",
      "samePlan": "To już Twoja taryfa.",
      "planNotSwitchable": "Na tę taryfę nie da się przejść z subskrypcji.",
      "alreadyCanceled": "Subskrypcja jest już anulowana — wznowisz ją w „Zarządzaj płatnością”.",
      "subscriptionNotSwitchable": "Tej subskrypcji nie da się zmienić tutaj — zrób to w „Zarządzaj płatnością”."
    }
  },
  "math": {
    "panel": {
      "label": "Wzory",
      "screen": "Wzór",
      "done": "Gotowe",
      "layers": "Warstwy klawiatury"
    },
    "strip": {
      "formula": "Wzór"
    },
    "tab": {
      "num": "Cyfry i ułamki",
      "func": "Funkcje",
      "abc": "Litery łacińskie",
      "greek": "Litery greckie",
      "rel": "Relacje i zbiory"
    },
    "key": {
      "frac": "Ułamek",
      "mixed": "Liczba mieszana",
      "square": "Kwadrat",
      "power": "Potęga",
      "sqrt": "Pierwiastek kwadratowy",
      "nroot": "Pierwiastek n-tego stopnia",
      "digit": "Cyfra {{value}}",
      "letter": "Litera {{value}}",
      "greek": "Grecka litera {{value}}",
      "div": "Dzielenie",
      "times": "Mnożenie",
      "minus": "Minus",
      "plus": "Plus",
      "eq": "Równa się",
      "lparen": "Nawias otwierający",
      "rparen": "Nawias zamykający",
      "pi": "Liczba pi",
      "decimal": "Przecinek dziesiętny",
      "e": "Liczba e",
      "lt": "Mniejsze niż",
      "gt": "Większe niż",
      "sin": "Sinus",
      "cos": "Cosinus",
      "tan": "Tangens",
      "cot": "Cotangens",
      "asin": "Arcus sinus",
      "acos": "Arcus cosinus",
      "atan": "Arcus tangens",
      "log": "Logarytm dziesiętny",
      "ln": "Logarytm naturalny",
      "logn": "Logarytm o podstawie",
      "exp": "e do potęgi",
      "tenpow": "10 do potęgi",
      "inverse": "Odwrotność",
      "cube": "Sześcian",
      "cbrt": "Pierwiastek sześcienny",
      "abs": "Wartość bezwzględna",
      "sub": "Indeks dolny",
      "fact": "Silnia",
      "percent": "Procent",
      "degree": "Stopień",
      "infty": "Nieskończoność",
      "lim": "Granica",
      "deriv": "Pochodna",
      "integral": "Całka",
      "sum": "Suma",
      "shift": "Wielkie litery",
      "le": "Mniejsze lub równe",
      "ge": "Większe lub równe",
      "ne": "Różne od",
      "approx": "W przybliżeniu równe",
      "equiv": "Tożsamościowo równe",
      "pm": "Plus minus",
      "in": "Należy do",
      "notin": "Nie należy do",
      "subset": "Podzbiór",
      "subseteq": "Podzbiór lub równy",
      "cup": "Suma zbiorów",
      "cap": "Iloczyn zbiorów",
      "empty": "Zbiór pusty",
      "neg": "Negacja",
      "and": "Koniunkcja (i)",
      "or": "Alternatywa (lub)",
      "implies": "Implikacja",
      "iff": "Równoważność",
      "forall": "Dla każdego",
      "exists": "Istnieje",
      "to": "Dąży do",
      "perp": "Prostopadłe do",
      "parallel": "Równoległe do",
      "angle": "Kąt",
      "triangle": "Trójkąt",
      "reals": "Liczby rzeczywiste",
      "naturals": "Liczby naturalne",
      "integers": "Liczby całkowite",
      "rationals": "Liczby wymierne",
      "complex": "Liczby zespolone",
      "left": "Kursor w lewo",
      "right": "Kursor w prawo",
      "up": "Kursor w górę",
      "down": "Kursor w dół",
      "backspace": "Usuń",
      "undo": "Cofnij",
      "redo": "Ponów",
      "lbrack": "Nawias kwadratowy otwierający",
      "rbrack": "Nawias kwadratowy zamykający",
      "langle": "Nawias ostry otwierający",
      "rangle": "Nawias ostry zamykający",
      "lbrace": "Nawias klamrowy otwierający",
      "rbrace": "Nawias klamrowy zamykający",
      "ll": "Dużo mniejsze",
      "gg": "Dużo większe",
      "prime": "Prim",
      "dprime": "Bis",
      "mp": "Minus plus",
      "cases": "Układ równań",
      "row": "Nowy wiersz układu",
      "units": "Jednostki",
      "vec": "Wektor",
      "overline": "Odcinek",
      "set": "Nawiasy zbioru",
      "sim": "Podobne",
      "cong": "Przystające",
      "revert": "Jak było",
      "semicolon": "Średnik",
      "comma": "Przecinek",
      "cross": "Znak mnożenia ×",
      "cdot": "Mnożenie kropką",
      "obelus": "Znak dzielenia ÷",
      "colon": "Dzielenie dwukropkiem"
    },
    "say": {
      "selected": "Zaznaczono: {{what}} — ⌫ jeszcze raz usunie",
      "emptyCell": "Puste pole",
      "deleted": "Usunięto",
      "bump": "Dalej się nie da",
      "reverted": "Jak było",
      "rowAdded": "Nowy wiersz"
    },
    "unit": {
      "frac": "ułamek",
      "sqrt": "pierwiastek",
      "script": "potęga",
      "operator": "operator",
      "fence": "nawias",
      "abs": "wartość bezwzględna",
      "cases": "układ",
      "accent": "wektor",
      "struct": "wyrażenie",
      "mixed": "liczba mieszana",
      "cell": "pole",
      "leaf": "znak",
      "apply": "funkcja"
    },
    "readonly": {
      "note": "Kalkulator nie edytuje tego wzoru",
      "erase": "Usuń wzór",
      "keep": "Zostaw"
    },
    "measure": {
      "cm": "centymetr",
      "m": "metr",
      "km": "kilometr",
      "mm": "milimetr",
      "cm2": "centymetr kwadratowy",
      "m2": "metr kwadratowy",
      "kg": "kilogram",
      "g": "gram",
      "l": "litr",
      "ml": "mililitr",
      "s": "sekunda",
      "min": "minuta",
      "h": "godzina",
      "zl": "złoty",
      "degc": "stopień Celsjusza"
    }
  },
  "photoZoom": {
    "label": "Zdjęcie w powiększeniu"
  },
  "tour": {
    "label": "Poznaj aplikację",
    "progress": "Krok {{n}} z {{total}}",
    "skip": "Pomiń",
    "done": "Gotowe",
    "installTitle": "Zainstaluj aplikację",
    "action": {
      "notifications": "Włącz powiadomienia",
      "photo": "Dodaj zdjęcie",
      "addStudent": "Dodaj pierwszego ucznia"
    },
    "replay": {
      "title": "Poznaj aplikację",
      "text": "Pokażemy jeszcze raz, co gdzie jest.",
      "button": "Obejrzyj przewodnik ponownie"
    },
    "tutor": {
      "welcome": {
        "title": "Witaj w aplikacji Korepeta!",
        "text": "W minutę pokażemy, co gdzie jest: uczniowie, harmonogram, zadania domowe i asystent AI."
      },
      "students": "Tu są Twoi uczniowie. W karcie ucznia znajdziesz kod zaproszenia, link dla rodziców i raport.",
      "schedule": "Lekcje tydzień po tygodniu — pojedynczo albo w serii: co tydzień, co dwa tygodnie.",
      "analyze": "Po lekcji wrzuć zdjęcia i notatki — AI przygotuje raport dla rodziców i zadanie domowe.",
      "homework": "Zadawaj i sprawdzaj zadania domowe: AI sprawdza wstępnie, ostatnie słowo należy do Ciebie.",
      "tasks": "Własne zestawy zadań i generowanie przez AI — do zadania domowego jednym kliknięciem.",
      "bell": "Tu pojawiają się nowości: kto oddał, co jest sprawdzone. Włącz powiadomienia, a dowiesz się od razu — nawet przy zamkniętej karcie.",
      "install": "Zainstaluj aplikację na ekranie — otworzysz ją jednym dotknięciem.",
      "profile": {
        "title": "Twój profil",
        "text": "Imię i zdjęcie widzą Twoi uczniowie. Język, motyw, hasło i taryfa — też tutaj."
      }
    },
    "student": {
      "welcome": {
        "title": "Cześć!",
        "text": "Tu znajdziesz zadania od korepetytora, swoje postępy i lekcje. Pokażę ci, co gdzie jest."
      },
      "dashboard": "Co oddać teraz i co możesz poprawić po sprawdzeniu.",
      "progress": "Oceny i omówienia wcześniejszych prac.",
      "schedule": "Twój plan lekcji.",
      "bell": "Tu pojawiają się wiadomości od korepetytora. Włącz powiadomienia — od razu dowiesz się, że praca jest sprawdzona.",
      "install": "Zainstaluj aplikację na ekranie — otworzysz ją jednym dotknięciem.",
      "profile": {
        "title": "Twój profil",
        "text": "Imię i zdjęcie — żeby korepetytor wiedział, kto oddał pracę. Język i motyw też są tutaj."
      }
    }
  },
  "lesson": {
    "missed": {
      "noShow": "Nie odbyła się: uczeń nie przyszedł",
      "canceledByStudent": "Nie odbyła się: odwołał uczeń",
      "canceledByTutor": "Nie odbyła się: odwołał korepetytor"
    },
    "refusal": {
      "published": "Raport z tej lekcji został już wysłany — lekcja jest historią: nie da się jej przenieść, usunąć ani oznaczyć",
      "missed": "Lekcja jest oznaczona jako nieodbyta — żeby ją przenieść albo wysłać raport, najpierw przywróć ją jako odbytą",
      "notScheduled": "Ta lekcja została przeniesiona — działaj na nowym terminie",
      "notStarted": "Lekcja jeszcze się nie zaczęła — przyszłą lekcję można tylko przenieść albo usunąć",
      "changed": "Lekcja zmieniła się w międzyczasie — odśwież kalendarz i spróbuj ponownie"
    }
  },
  "parentCabinet": {
    "childSwitch": "Dziecko",
    "child": {
      "numbered": "Dziecko {{n}}",
      "paused": "Zajęcia są wstrzymane: historia jest widoczna, powiadomień nie ma."
    },
    "noAccess": {
      "title": "Brak dostępu do tego dziecka",
      "body": "Być może korepetytor zamknął dostęp albo link jest nieaktualny. Twoje dzieci są na stronie głównej.",
      "home": "Do moich dzieci"
    },
    "home": {
      "title": "Dzieci",
      "emptyTitle": "Żadne dziecko nie jest jeszcze podłączone",
      "emptyBody": "Wpisz kod od korepetytora — pojawią się tu sprawdzone prace, lekcje i raporty."
    },
    "link": {
      "title": "Dodaj dziecko",
      "body": "Kod od korepetytora podłączy dziecko do Twojego konta.",
      "submit": "Podłącz",
      "done": "Dziecko jest podłączone."
    },
    "overview": {
      "title": "Przegląd",
      "lessonsHeld": "Odbyte lekcje",
      "lessonsSub": "nie odbyło się: {{missed}} · w 30 dni: {{held30}} / {{missed30}}",
      "average": "Średnia ocena korepetytora",
      "averageSub": "ze sprawdzonych prac",
      "onTime": "Oddane na czas",
      "onTimeSub": "przy pierwszym oddaniu",
      "onTimeValue": "{{onTime}} z {{total}}",
      "streak": "Passa",
      "attention": "Wymaga uwagi",
      "attentionEmpty": "Nic nie czeka: wszystko oddane na czas.",
      "checks": "Ostatnie sprawdzenia",
      "checksEmpty": "Korepetytor jeszcze niczego nie sprawdził.",
      "next": "Najbliższa lekcja",
      "nextNone": "Lekcja nie jest jeszcze zaplanowana."
    },
    "attention": {
      "returned": "zwrócone do poprawy {{when}}",
      "overdue": "nie oddano, termin minął {{when}}"
    },
    "homework": {
      "title": "Prace domowe",
      "filterLabel": "Pokaż",
      "filterAll": "Wszystkie",
      "filterChild": "Czekają na dziecko",
      "filterTutor": "Czekają na sprawdzenie",
      "filterDone": "Sprawdzone",
      "due": "Termin: {{date}}",
      "dueWas": "Termin minął {{date}}",
      "submissions": "oddań: {{n}}",
      "late": "pierwsze oddanie — po terminie",
      "waiting": "oddane {{when}}",
      "empty": "Na razie nie ma prac domowych.",
      "emptyFiltered": "Tu jest pusto — zobacz „Wszystkie”.",
      "back": "Wszystkie prace",
      "tasks": "Zadania",
      "points": "punkty: {{n}}",
      "submissionsTitle": "Oddania",
      "noSubmissions": "Dziecko jeszcze nie oddało tej pracy.",
      "openPhoto": "Otwórz zdjęcie {{n}} w powiększeniu"
    },
    "state": {
      "assigned": "Zadane",
      "overdue": "Po terminie",
      "submitted": "Oddane, czeka na sprawdzenie",
      "returned": "Do poprawy",
      "done": "Sprawdzone"
    },
    "submission": {
      "title": "Oddanie {{n}}",
      "onTime": "na czas",
      "late": "po terminie",
      "afterReturn": "poprawione {{span}} po zwrocie",
      "afterReturnSameDay": "poprawione jeszcze w dniu zwrotu",
      "afterReturnNextDay": "poprawione następnego dnia po zwrocie",
      "waiting": "Oddane {{when}} — czeka na sprawdzenie przez korepetytora.",
      "note": "Notatka dziecka dla korepetytora"
    },
    "check": {
      "checkedTitle": "Sprawdzone przez korepetytora",
      "returnedTitle": "Odesłane do poprawy",
      "score": "Ocena: {{score}}%",
      "mistakes": "Gdzie są błędy",
      "toFix": "Co poprawić",
      "edited": "{{decided}} · zmieniono {{edited}}"
    },
    "lessons": {
      "title": "Lekcje",
      "counts": "Odbyte: {{held}} · nie odbyło się: {{missed}}",
      "week": "Tydzień",
      "past": "Minione lekcje",
      "pastEmpty": "Nie ma jeszcze minionych lekcji.",
      "noReport": "Brak raportu z zajęć.",
      "more": "Pokaż więcej",
      "missed": "Nie odbyła się"
    },
    "reports": {
      "title": "Raporty"
    },
    "notifications": {
      "title": "Powiadomienia",
      "reviewed": "Korepetytor sprawdził pracę",
      "returned": "Praca wróciła do poprawy",
      "digest": "Wieczorne podsumowanie: jutrzejsza lekcja, co nieoddane",
      "report": "Nowy raport od korepetytora"
    },
    "settings": {
      "title": "Ustawienia",
      "nameHint": "Tak zobaczy Cię korepetytor w karcie ucznia.",
      "children": "Moje dzieci",
      "since": "podłączone od {{date}}",
      "noChildren": "Żadne dziecko nie jest podłączone.",
      "unlink": "Odłącz",
      "unlinkTitle": "Odłączyć: {{name}}?",
      "unlinkBody": "Przestaniesz widzieć prace i lekcje ({{name}}). Dostęp wróci tylko z nowym kodem od korepetytora.",
      "unlinkLast": "Nie masz innych dzieci — konto zostanie zamknięte za 7 dni, jeśli nie wpiszesz nowego kodu.",
      "unlinkConfirm": "Odłącz",
      "unlinked": "Dostęp ({{name}}) zamknięty.",
      "unlinkedLast": "Dostęp ({{name}}) zamknięty. Nie ma innych dzieci — konto zostanie zamknięte {{date}}, jeśli nie wpiszesz nowego kodu.",
      "addChild": "Dodaj dziecko kodem"
    },
    "delete": {
      "title": "Usuń konto",
      "hint": "Konto rodzica zostanie usunięte od razu. Prace i lekcje dzieci zostaną u korepetytora.",
      "button": "Usuń konto",
      "modalTitle": "Usunąć konto rodzica?",
      "willAccount": "logowanie e-mailem i hasłem",
      "willLinks": "dostęp do wszystkich podłączonych dzieci",
      "willNotifications": "powiadomienia i ich ustawienia",
      "keep": "Prace, oceny i lekcje dzieci nie są usuwane: to dane korepetytora i uczniów.",
      "confirm": "Usuń na zawsze",
      "done": "Konto zostało usunięte.",
      "leave": "Wyjdź"
    }
  },
  "parentErrors": {
    "closed": "Rejestracja rodziców nie jest jeszcze otwarta.",
    "emailHasAccount": "Na ten e-mail jest już konto rodzica. Zaloguj się — kod zostanie do niego dodany.",
    "emailIsChildLogin": "Ten e-mail to logowanie dziecka ({{childName}}). Konto rodzica potrzebuje innego — może być adres z plusem: imie+korepeta@…",
    "emailTaken": "Ten e-mail jest zajęty przez inne konto Korepeta. Konto rodzica potrzebuje innego.",
    "otherCabinet": "Ten kod jest od innego korepetytora. Potrzebne jest do niego osobne konto z innym e-mailem.",
    "alreadyLinked": "To dziecko jest już podłączone do Twojego konta.",
    "accountRequired": "Kod od korepetytora wpisuje się na koncie rodzica.",
    "studentGone": "Tego ucznia nie ma już u korepetytora.",
    "inviteLost": "Kod już nie działa — wpisz nowy kod od korepetytora.",
    "inviteNotFound": "Tego kodu już nie ma.",
    "inviteUsed": "Kod został już użyty — nie można go odwołać.",
    "linkNotFound": "Ten rodzic nie jest już podłączony."
  }
}
