Files
HealthLog/messages/pl.json
T

9579 lines
512 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"common": {
"save": "Zapisz",
"conflictReloaded": "Odświeżono z serwera. Wprowadź zmianę jeszcze raz.",
"cancel": "Anuluj",
"delete": "Usuń",
"undo": "Cofnij",
"edit": "Edytuj",
"moreOptions": "Więcej opcji",
"create": "Utwórz",
"close": "Zamknij",
"loading": "Ładowanie…...",
"loadFailed": "Nie udało się załadować",
"error": "Błąd",
"saved": "Zapisano",
"pullToRefresh": "Odświeżanie…",
"no": "Nie",
"noData": "Brak danych",
"optional": "Opcjonalne",
"active": "Aktywne",
"inactive": "Nieaktywne",
"disabled": "Wyłączone",
"networkError": "Błąd sieci",
"openDatePicker": "Otwórz wybór daty",
"openTimePicker": "Otwórz wybór godziny",
"hours": "Godziny",
"minutes": "Minuty",
"feet": "ft",
"inches": "in",
"heightFeet": "Wzrost w stopach",
"heightInches": "Wzrost w calach",
"period": "AM/PM",
"am": "AM",
"pm": "PM",
"unknownError": "Nieznany błąd",
"copied": "Skopiowano!",
"or": "lub",
"unknown": "Nieznane",
"add": "Dodaj",
"import": "Importuj",
"test": "Testuj",
"reset": "Resetuj",
"copy": "Kopiuj",
"copyDetails": "Kopiuj szczegóły",
"retry": "Spróbuj ponownie",
"showPassword": "Pokaż hasło",
"hidePassword": "Ukryj hasło",
"learnMore": "Dowiedz się więcej",
"dismiss": "Odrzuć",
"moreInfo": "Więcej informacji",
"durationHoursMinutes": "{hours} godz. {minutes} min",
"durationMinutes": "{minutes} min"
},
"apiErrors": {
"measurement": {
"create": {
"invalid": "Sprawdź dane pomiaru i spróbuj ponownie."
},
"duplicate_timestamp": "Pomiar dla tego czasu już istnieje."
},
"mood": {
"list": {
"invalid": "Filtry listy nastroju są nieprawidłowe."
},
"create": {
"invalid": "Sprawdź wpis nastroju i spróbuj ponownie."
},
"update": {
"invalid": "Sprawdź wpis nastroju i spróbuj ponownie."
},
"duplicate_timestamp": "Wpis nastroju dla tego czasu już istnieje.",
"not_found": "Ten wpis nastroju nie jest już dostępny.",
"ratedFactor": {
"out_of_range": "Ocena czynnika jest poza dozwolonym zakresem."
}
},
"labs": {
"create": {
"invalid": "Sprawdź wynik badania i spróbuj ponownie."
},
"result": {
"notFound": "Ten wynik badania nie jest już dostępny."
},
"biomarker": {
"notFound": "Ten biomarker nie jest już dostępny.",
"duplicate": "Biomarker o tej nazwie już istnieje.",
"create": {
"invalid": "Sprawdź dane biomarkera i spróbuj ponownie."
},
"update": {
"invalid": "Sprawdź dane biomarkera i spróbuj ponownie.",
"referenceRangeInvalid": "Dolna wartość referencyjna nie może przekraczać górnej."
}
},
"update": {
"invalid": "Sprawdź wynik badania i spróbuj ponownie.",
"linkedFieldsImmutable": "Edytuj biomarker, aby zmienić nazwę, jednostkę, panel lub zakres referencyjny.",
"qualitativeExpected": "Wprowadź wynik tekstowy dla tego odczytu jakościowego.",
"numericExpected": "Wprowadź liczbę dla tego odczytu ilościowego.",
"referenceRangeInvalid": "Dolna wartość referencyjna nie może przekraczać górnej."
}
},
"onboarding": {
"disclaimer": {
"invalid": "Potwierdź ponownie informację medyczną."
},
"tour": {
"invalid": "Nie udało się zapisać postępu prezentacji."
},
"complete": {
"invalid": "Sprawdź dane profilu i spróbuj ponownie."
},
"user": {
"notFound": "Nie znaleziono Twojego konta."
},
"step": {
"rateLimited": "Zbyt wiele prób. Zaczekaj i spróbuj ponownie.",
"invalid": "Nie udało się zapisać tego kroku wprowadzenia.",
"completed": "Wprowadzenie zostało już ukończone.",
"outOfOrder": "Twój postęp się zmienił. Odśwież stronę i kontynuuj.",
"concurrent": "Twój postęp się zmienił. Odśwież stronę i kontynuuj."
}
},
"profile": {
"update": {
"nothingSaved": "Nic nie zostało zapisane. Sprawdź oznaczone pole i spróbuj ponownie.",
"invalidBody": "Nie udało się odczytać aktualizacji profilu.",
"emailInUse": "Ten adres e-mail jest już używany."
}
}
},
"doctorReport": {
"title": "Raport zdrowotny",
"anamnesisTitle": "Profil zdrowotny",
"anamnesisNotRecorded": "Brak danych",
"anamnesisUnreadable": "Nie udało się odczytać zapisanej wartości",
"anamnesisConditions": "Choroby przewlekłe",
"anamnesisSmoking": "Palenie tytoniu",
"anamnesisAlcohol": "Wzorzec spożycia alkoholu",
"anamnesisShiftSchedule": "Harmonogram pracy",
"anamnesisColFact": "Pozycja profilu",
"anamnesisColValue": "Zapisana wartość",
"subtitle": "HealthLog — Osobisty raport zdrowotny",
"patient": "Pacjent",
"dateOfBirth": "Data urodzenia",
"gender": "Płeć",
"genderMale": "Mężczyzna",
"genderFemale": "Kobieta",
"genderOther": "Niebinarna",
"height": "Wzrost",
"period": "Okres raportu",
"createdOn": "Utworzono",
"vitalsTitle": "Parametry życiowe — Podsumowanie",
"colParameter": "Parametr",
"colCurrent": "Aktualny",
"colAvgPeriod": "Śr. okresu",
"colMin": "Min",
"colMax": "Maks",
"colN": "n",
"bpClassificationTitle": "Ciśnienie tętnicze — klasyfikacja ESH (2023)",
"avgBp": "Średnie ciśnienie tętnicze",
"classification": "Klasyfikacja",
"bmiTitle": "Wskaźnik masy ciała (BMI)",
"bmiRow": "BMI:{bmi} kg/m² — Classification: {class} (WHO)",
"complianceTitle": "Przestrzeganie leków",
"glp1Title": "Terapia GLP-1",
"glp1WeightSummary": "Waga w okresie raportu: {start} kg → {end} kg ({delta} kg)",
"glp1CurrentDose": "Aktualna dawka:{value} {unit} (since {since})",
"glp1Compliance": "Przestrzeganie zaleceń:{taken} / {total} ({rate}%)",
"glp1SideEffectsTitle": "Zarejestrowane działania niepożądane",
"colGlp1Date": "Data",
"colGlp1Dose": "Dawka",
"colGlp1Note": "Notatka",
"colGlp1SideEffect": "Skutek uboczny",
"colMedication": "Lek",
"colTaken": "Przyjęte",
"colSkipped": "Pominięte",
"colMissed": "Pominięte",
"colExpected": "Oczekiwane",
"colComplianceRate": "Wskaźnik przestrzegania",
"moodTitle": "Przebieg nastroju",
"moodSummary": "Średnia:{avg} / 5.0 · Entries: {count} · Range: {min}–{max}",
"colMood": "Nastrój",
"colCount": "Liczba",
"colShare": "Udział",
"footerDisclaimer1": "Ten raport został wygenerowany automatycznie z danych samodzielnie rejestrowanych i ma na celu wspierać",
"footerDisclaimer2": "rozmowę lekarza z pacjentem. Nie zastępuje diagnozy medycznej. Korelacje nie oznaczają związku przyczynowego.",
"footerSource": "Źródło: HealthLog | Strefa czasowa: {timezone} | Utworzono: {timestamp}",
"unitSteps": "Kroki",
"bmiUnderweight": "Niedowaga",
"bmiNormal": "Waga prawidłowa",
"bmiOverweight": "Nadwaga (preobesyty)",
"bmiObeseGrade1": "Otyłość I stopnia",
"bmiObeseGrade2": "Otyłość II stopnia",
"bmiObeseGrade3": "Otyłość III stopnia",
"bpOptimal": "Optymalne",
"bpNormal": "Prawidłowe",
"bpHighNormal": "Wysokie prawidłowe",
"bpHypertensionGrade1": "Nadciśnienie 1 stopnia",
"bpHypertensionGrade2": "Nadciśnienie 2 stopnia",
"bpHypertensionGrade3": "Nadciśnienie 3 stopnia",
"moodAwful": "Bardzo zły",
"moodBad": "Źle",
"moodNeutral": "Neutralny",
"moodGood": "Dobrze",
"moodGreat": "Bardzo dobry",
"typeGlucoseFasting": "Glukoza (na czczo)",
"typeGlucosePostprandial": "Glukoza (po posiłku)",
"typeGlucoseRandom": "Glukoza (dowolna)",
"typeGlucoseBedtime": "Glukoza (przed snem)",
"glucoseClassificationTitle": "Glikemia — zakresy referencyjne (ADA 2024 / DDG)",
"glucoseRow": "{label}: śr. {avg} {unit} (cel {rangeMin}–{rangeMax}) — {class}",
"glucoseInTarget": "w celu",
"glucoseBelowTarget": "poniżej celu",
"glucoseAboveTarget": "powyżej celu",
"practiceLabel": "Gabinet",
"insurer": "Ubezpieczyciel zdrowotny",
"insuranceNumber": "Nr ubezpieczonego",
"summaryTitle": "Podsumowanie kliniczne",
"summaryReadings": "Zarejestrowano w ciągu {days} dni: {count} pomiarów w {params} parametrach.",
"summaryTrend": "{label}: ostatnio {latest} {arrow}",
"summaryAdherence": "Przestrzeganie zaleceń lekowych: {rate}% (średnia ważona).",
"chartsTitle": "Wykresy trendów",
"packageReadme": "Dokumentacja zdrowotna HealthLog\n\nTen pakiet zawiera:\n- report.pdf: raport zdrowotny dla lekarza.\n- bundle.json: te same dane jako dokument HL7 FHIR R4 (Bundle), zgodny z ePA.\n\nWygenerowano w HealthLog.",
"wellnessTitle": "Podsumowanie dobrostanu",
"wellnessDisclaimer": "To opisowe wyniki dobrostanu obliczone na podstawie śledzonych sygnałów (0–100). Nie są to oceny kliniczne ani diagnozy.",
"wellnessRecovery": "Regeneracja",
"wellnessStress": "Stres",
"wellnessStrain": "Obciążenie",
"cycleTitle": "Cykl menstruacyjny",
"cycleLmp": "Ostatnia miesiączka",
"cycleAvgLength": "Średnia długość cyklu",
"cycleAvgPeriod": "Średnia długość miesiączki",
"cyclePhase": "Bieżąca faza",
"cycleDays": "dni",
"cycleColStart": "Początek miesiączki",
"cycleColLength": "Długość cyklu (dni)",
"cycleColPeriod": "Długość miesiączki (dni)",
"cyclePhases": {
"MENSTRUAL": "Menstruacyjna",
"FOLLICULAR": "Folikularna",
"OVULATORY": "Owulacyjna",
"LUTEAL": "Lutealna"
},
"labsTitle": "Wyniki badań",
"labsColAnalyte": "Biomarker",
"labsColValue": "Wartość",
"labsColReference": "Norma",
"labsColStatus": "Status",
"labsColDate": "Data",
"glucoseClinical": {
"title": "Przegląd glukozy (kliniczny)",
"colMetric": "Wskaźnik",
"colValue": "Wartość",
"tirInRange": "Czas w zakresie (70–180 mg/dl)",
"tirLow": "Niski (< 70 mg/dl)",
"tirVeryLow": "Bardzo niski (< 54 mg/dl)",
"tirHigh": "Wysoki (> 180 mg/dl)",
"tirVeryHigh": "Bardzo wysoki (> 250 mg/dl)",
"mean": "Średnia glukoza",
"gmi": "Wskaźnik zarządzania glukozą (GMI)",
"eA1c": "Szacowane HbA1c",
"cv": "Zmienność (CV%)",
"spotCaveat": "To szacunki z pojedynczych pomiarów, nie profil z monitora ciągłego — czytaj je jako kierunek zmian, a nie kliniczny werdykt."
},
"illnessTitle": "Schorzenia i choroby",
"illnessOngoing": "Trwająca",
"illnessColCondition": "Schorzenie",
"illnessColType": "Typ",
"illnessColLifecycle": "Przebieg",
"illnessColOnset": "Początek",
"illnessColResolved": "Ustąpiła",
"allergiesTitle": "Alergie i nietolerancje",
"reactionUnreadable": "Reakcja zapisana, ale nie można jej odszyfrować",
"allergiesColSubstance": "Substancja",
"allergiesColCategory": "Kategoria",
"allergiesColKind": "Rodzaj",
"allergiesColSeverity": "Nasilenie",
"allergiesColReaction": "Reakcja",
"allergiesColStatus": "Status",
"familyHistoryTitle": "Wywiad rodzinny",
"familyHistoryColRelationship": "Pokrewieństwo",
"familyHistoryColCondition": "Schorzenie",
"familyHistoryColAgeAtOnset": "Wiek zachorowania"
},
"errorBoundary": {
"title": "Coś poszło nie tak",
"description": "Wystąpił nieoczekiwany błąd. Możesz spróbować ponownie, skopiować szczegóły techniczne lub otworzyć zgłoszenie błędu."
},
"notFound": {
"title": "Ta strona nie istnieje.",
"backToDashboard": "Powrót do panelu"
},
"offlineBanner": {
"message": "Brak połączenia — zmian nie można zapisać, dopóki nie wrócisz online.",
"saveFailed": "Nie udało się zapisać — jesteś offline. Spróbuj ponownie, gdy wrócisz online.",
"showingCached": "Wyświetlane są ostatnio zsynchronizowane dane."
},
"demoBanner": {
"message": "Tryb demo — zmiany nie są zapisywane."
},
"nav": {
"dashboard": "Panel",
"measurements": "Pomiary",
"medications": "Leki",
"insights": "Insights",
"achievements": "Osiągnięcia",
"settings": "Ustawienia",
"admin": "Konsola administratora",
"logout": "Wyloguj",
"login": "Zaloguj",
"notifications": "Powiadomienia",
"theme": "Motyw",
"themeSystem": "Systemowy",
"themeDark": "Ciemny",
"themeLight": "Jasny",
"collapseSidebar": "Zwiń",
"userMenu": "Menu użytkownika",
"accountSettings": "Ustawienia konta",
"mood": "Nastrój",
"coach": "Coach",
"skipToContent": "Przejdź do treści",
"sidebar": "Pasek boczny",
"mainNavigation": "Nawigacja główna",
"mobileNavigation": "Nawigacja mobilna",
"loadingScreen": "Ładowanie…",
"more": "Więcej",
"moreSheetTitle": "Więcej",
"moreSheetDescription": "Przejdź do reszty HealthLog.",
"capture": {
"title": "Zapisz",
"description": "Co chcesz zapisać?",
"measurement": "Pomiar",
"measurementDescription": "Waga, ciśnienie, tętno i więcej",
"medication": "Lek",
"medicationDescription": "Oznacz dawkę jako przyjętą",
"mood": "Nastrój",
"moodDescription": "Zapisz nastrój i tagi",
"water": "Woda",
"waterDescription": "Szybko dodaj ilość wypitej wody"
},
"cycle": "Cykl",
"labs": "Wyniki badań",
"vorsorge": "Badania",
"illness": "Choroba",
"documents": "Dokumenty",
"mentalWellbeing": "Dobrostan psychiczny"
},
"auth": {
"login": "Zaloguj się",
"register": "Zarejestruj się",
"username": "Nazwa użytkownika",
"password": "Hasło",
"email": "Adres e-mail",
"emailPlaceholder": "imie@przyklad.pl",
"emailOrUsername": "Adres e-mail lub nazwa użytkownika",
"emailOrUsernamePlaceholder": "imie@przyklad.pl lub nazwauzytkownika",
"loginWithPasskey": "Zaloguj się za pomocą passkey",
"loginWithPassword": "Zaloguj się hasłem",
"noAccount": "Nie masz jeszcze konta?",
"hasAccount": "Masz już konto?",
"loginFailed": "Logowanie nie powiodło się",
"registerFailed": "Rejestracja nie powiodła się",
"invitedBanner": "Otrzymano zaproszenie — utwórz konto, nawet jeśli rejestracja jest zamknięta.",
"createAccount": "Utwórz konto",
"newAccount": "Utwórz nowe konto",
"backToPasskey": "Wróć do passkey",
"passkeySetupLater": "Passkey możesz skonfigurować później w ustawieniach.",
"passwordMinLength": "Min. 12 znaków",
"passwordTooShort": "Hasło musi mieć co najmniej {minLength} znaków.",
"privacyPolicy": "Polityka prywatności",
"passwordBreached": "To hasło pojawia się w znanych wyciekach danych. Wybierz inne.",
"oidc": {
"signInDefault": "Zaloguj się przez SSO",
"errorDenied": "Logowanie zostało anulowane.",
"errorNoEmail": "Twój dostawca tożsamości nie przekazał zweryfikowanego adresu e-mail.",
"errorEmailUnverified": "Twój dostawca tożsamości nie oznaczył Twojego adresu e-mail jako zweryfikowanego.",
"errorIdentityConflict": "Ten adres e-mail należy do konta powiązanego już z inną tożsamością SSO.",
"errorRegistrationDisabled": "Żadne konto nie pasuje do tej tożsamości, a nowe rejestracje są obecnie zamknięte.",
"errorFailed": "Logowanie jednokrotne nie powiodło się. Spróbuj ponownie."
},
"native": {
"signingInToApp": "Logowanie do aplikacji HealthLog"
},
"mfa": {
"title": "Uwierzytelnianie dwuskładnikowe",
"totpHint": "Wprowadź 6-cyfrowy kod z aplikacji uwierzytelniającej.",
"recoveryHint": "Wprowadź jeden z zapisanych kodów odzyskiwania.",
"securityKeyHint": "Użyj zarejestrowanego klucza bezpieczeństwa, aby kontynuować.",
"codeLabel": "Kod uwierzytelniający",
"recoveryLabel": "Kod odzyskiwania",
"verify": "Zweryfikuj",
"verifyFailed": "Weryfikacja nie powiodła się. Spróbuj ponownie.",
"useSecurityKey": "Użyj klucza bezpieczeństwa",
"useRecoveryCode": "Użyj kodu odzyskiwania",
"useAuthenticator": "Użyj aplikacji uwierzytelniającej",
"backToLogin": "Powrót do logowania",
"rememberDevice": "Zaufaj temu urządzeniu na 30 dni"
},
"enrollMfa": {
"title": "Skonfiguruj drugi składnik",
"body": "Administrator wymaga drugiego składnika na tym koncie. Dodaj aplikację uwierzytelniającą lub klucz bezpieczeństwa, aby kontynuować.",
"signOut": "Wyloguj się"
}
},
"dashboard": {
"title": "Pulpit",
"greeting": {
"morning": "Dzień dobry",
"day": "Cześć",
"evening": "Dobry wieczór"
},
"welcomeBack": "{greeting}, witaj ponownie.",
"welcomeBackWithName": "{greeting} {name}, witaj ponownie.",
"greetingSalutation": "Cześć, {name}",
"streakLabel": "dni z rzędu",
"weight": "Waga",
"bloodPressure": "Ciśnienie krwi",
"pulse": "Tętno",
"bodyFat": "Tkanka tłuszczowa",
"sleep": "Sen",
"steps": "Kroki",
"vo2Max": "VO₂ max",
"vo2MaxUnit": "mL/(kg·min)",
"bpInTarget": "RR w zakresie docelowym",
"weightShort": "Waga",
"bloodPressureSysShort": "RR (Sk)",
"bloodPressureDiaShort": "RR (Rk)",
"pulseShort": "Tętno",
"bodyFatShort": "TT",
"moodShort": "Nastrój",
"sleepShort": "Sen",
"stepsShort": "Kroki",
"vo2MaxShort": "VO₂ max",
"bpInTargetWindow90": "RR-cel · 90 d",
"bpInTargetWindowDynamic": "RR-cel · {days} d",
"bpInTargetCollecting": "zbieranie danych",
"medications": "Leki",
"quickAddMeasurement": "Zarejestruj pomiar",
"quickAddMood": "Zarejestruj nastrój",
"quickAddMedicationIntake": "Zarejestruj przyjęcie",
"quickAddWater": "Zapisz wodę",
"customizeDashboard": "Dostosuj pulpit",
"medicationIntakeQuickAdd": {
"sheetTitle": "Zarejestruj przyjęcie leku",
"sheetDescription": "Zapisz dawkę, godzinę i lek w kilku stuknięciach.",
"medicationLabel": "Lek",
"medicationPlaceholder": "Wybierz lek",
"doseLabel": "Dawka",
"dosePlaceholder": "np. 5 mg",
"doseHint": "Wstępnie wypełnione standardową dawką. Zmień ją, aby zapisać inną dawkę tylko dla tego przyjęcia.",
"timeLabel": "Godzina przyjęcia",
"saveError": "Nie udało się zapisać przyjęcia.",
"emptyTitle": "Brak leków",
"emptyDescription": "Najpierw dodaj lek z harmonogramem, a potem wróć tutaj, aby zarejestrować jego przyjęcie.",
"emptyCta": "Dodaj lek"
},
"quickEntryDiscard": {
"title": "Odrzucić ten wpis?",
"description": "Masz niezapisane dane. Zamknąć formularz i utracić to, co wpisano?",
"confirm": "Odrzuć",
"cancel": "Kontynuuj edycję"
},
"compliance7d": "Przestrzeganie (7 dni)",
"mood": "Nastrój",
"customizeTitle": "Układ panelu",
"heroItemsTitle": "Dzisiejsze wyróżnienia",
"heroItemsDescription": "Wybierz typy elementów, które mogą pojawiać się w dzisiejszych wyróżnieniach.",
"heroItemsNotificationNote": "Ustawieniami powiadomień zarządzasz osobno.",
"heroItems": {
"coach_checkin": "Podsumowania z Coachem",
"dose_window": "Dawki leków",
"preventive_care": "Profilaktyka",
"sync_issue": "Problemy z synchronizacją",
"milestone": "Kamienie milowe",
"ecg_new_recording": "Nowe zapisy EKG",
"tension_window": "Okresy napięcia",
"same_time_baseline": "Aktywność o tej samej porze"
},
"layoutReset": "Przywróć wartości domyślne",
"layoutResetTitle": "Zresetować układ pulpitu?",
"layoutResetBody": "Układ kafelków i wybory dotyczące dzisiejszych wyróżnień wracają do ustawień domyślnych.",
"layoutResetConfirm": "Zresetuj układ",
"layoutSaveSuccess": "Układ panelu zapisany",
"layoutSaveError": "Nie udało się zapisać układu",
"layoutConflictReloaded": "Układ został ponownie wczytany z serwera. Wprowadź zmianę jeszcze raz.",
"layoutResetSuccess": "Przywrócono układ domyślny",
"layoutUsingDefaults": "Aktywny układ domyślny",
"layoutCustomized": "Aktywny układ niestandardowy",
"moveUp": "W górę",
"moveDown": "W dół",
"layoutTileColumn": "Kafelek",
"layoutChartColumn": "Wykres",
"layoutNativeOnlyTitle": "Widoczne w aplikacji mobilnej",
"layoutNativeOnlyHint": "Te widżety rysuje aplikacja mobilna, nie ta strona. Są zapisane w tym samym układzie, więc to tutaj ustawia się ich widoczność.",
"dragHandle": "Przeciągnij, aby zmienić kolejność",
"dragHandleHint": "Strzałki Góra/Dół, lub Spacja plus strzałki na zaznaczonym uchwycie.",
"emptyTitle": "Twój panel jest pusty",
"emptyDescription": "Zarejestruj pierwszy pomiar lub nastrój. Kafelki i wykresy pojawią się automatycznie, gdy będą dane.",
"emptyAddMeasurement": "Zarejestruj pierwszy pomiar",
"staleHint": "Ostatni odczyt {count} d temu",
"staleHintWeeksOne": "Ostatni odczyt 1 tydzień temu",
"staleHintWeeksOther": "Ostatni odczyt {count} tygodni temu",
"staleHintWeeksFew": "Ostatni odczyt {count} tygodnie temu",
"staleHintMonthsOne": "Ostatni odczyt 1 miesiąc temu",
"staleHintMonthsOther": "Ostatni odczyt {count} miesięcy temu",
"staleHintMonthsFew": "Ostatni odczyt {count} miesiące temu",
"recentWorkouts": {
"title": "Ostatnie treningi",
"viewAll": "Zobacz wszystkie",
"empty": {
"title": "Brak treningów",
"cta": "Otwórz aplikację Apple Zdrowie na iPhonie, aby zsynchronizować treningi."
}
},
"metric": {
"title": {
"weight": "Waga",
"bloodPressure": "Ciśnienie krwi",
"pulse": "Tętno",
"bodyFat": "Tkanka tłuszczowa",
"glucose": "Glikemia",
"sleep": "Sen",
"steps": "Kroki",
"totalBodyWater": "Całkowita woda w organizmie",
"boneMass": "Masa kostna",
"oxygenSaturation": "Saturacja tlenem",
"mood": "Nastrój",
"bmi": "BMI"
},
"unit": {
"weight": "kg",
"bloodPressure": "mmHg",
"pulse": "bpm",
"bodyFat": "%",
"glucose": "mg/dL",
"sleep": "h",
"steps": "kroki",
"totalBodyWater": "kg",
"boneMass": "kg",
"oxygenSaturation": "%",
"mood": "/5",
"bmi": "kg/m²"
}
}
},
"measurements": {
"title": "Pomiary",
"subtitle": "Zapisuj pomiary i przeglądaj pełną historię. Trendy i analizy znajdziesz w Analizach.",
"addMeasurement": "Dodaj",
"editMeasurement": "Edytuj pomiar",
"type": "Typ",
"value": "Wartość",
"date": "Data",
"source": "Źródło",
"notes": "Notatki",
"typeWeight": "Waga",
"typeBloodPressure": "Ciśnienie krwi",
"typeBpSys": "Skur",
"typeBpDia": "Rozk",
"typePulse": "Tętno",
"typeBodyFat": "Tkanka tłuszczowa",
"typeSleep": "Sen",
"typeSteps": "Kroki",
"typeBloodGlucose": "Glikemia",
"typeTotalBodyWater": "Całkowita woda w organizmie",
"typeBoneMass": "Masa kostna",
"typeOxygenSaturation": "Saturacja tlenem",
"typeHeartRateVariability": "Zmienność rytmu serca",
"typeRestingHeartRate": "Tętno spoczynkowe",
"typeActiveEnergyBurned": "Aktywna energia",
"typeFlightsClimbed": "Pokonane piętra",
"typeWalkingRunningDistance": "Dystans marszu i biegu",
"typeVo2Max": "VO₂ max",
"typeBodyTemperature": "Temperatura ciała",
"typeFatFreeMass": "Masa beztłuszczowa",
"typeFatMass": "Masa tłuszczu",
"typeMuscleMass": "Masa mięśniowa",
"typeSkinTemperature": "Temperatura skóry",
"typePulseWaveVelocity": "Prędkość fali tętna",
"typeVascularAge": "Wiek naczyniowy",
"typeVisceralFat": "Tłuszcz trzewny",
"typeAudioExposureEnv": "Ekspozycja na hałas (otoczenie)",
"typeAudioExposureHeadphone": "Ekspozycja na hałas (słuchawki)",
"typeTimeInDaylight": "Czas w świetle dziennym",
"typeWalkingSteadiness": "Stabilność chodu",
"typeAudioExposureEvent": "Zdarzenie głośnego słuchania",
"typeRespiratoryRate": "Częstość oddechów",
"typeBodyMassIndex": "Wskaźnik masy ciała",
"typeLeanBodyMass": "Masa beztłuszczowa",
"typeWalkingHeartRateAverage": "Tętno przy chodzeniu (śr.)",
"typeWalkingAsymmetry": "Asymetria chodu",
"typeWalkingDoubleSupport": "Podwójna podpora chodu",
"typeWalkingStepLength": "Długość kroku",
"typeWalkingSpeed": "Prędkość chodu",
"glucoseContext": "Kontekst",
"glucoseContextFasting": "Na czczo (≥8 godz. bez jedzenia)",
"glucoseContextPostprandial": "Po posiłku (2 godz. po jedzeniu)",
"glucoseContextRandom": "Dowolny / bez kontekstu",
"glucoseContextBedtime": "Przed snem",
"unitHours": "Godziny",
"unitSteps": "Kroki",
"sourceManual": "Ręcznie",
"sourceWithings": "Withings",
"sourceImport": "Importuj",
"sourceAppleHealth": "Apple Health",
"systolicLabel": "Skurczowe (mmHg)",
"diastolicLabel": "Rozkurczowe (mmHg)",
"pulseLabel": "Tętno (uderz./min)",
"valueWithUnit": "Wartość ({unit})",
"timestamp": "Czas",
"timestampBackdateHint": "Dostosuj datę i godzinę, aby zapisać odczyt z przeszłości.",
"notesPlaceholder": "np. po jedzeniu",
"formReset": "Resetuj formularz",
"saveError": "Błąd zapisu",
"duplicateTimestamp": "Pomiar tego typu już istnieje dla wybranej daty.",
"serverOwnedSource": "Wartości z połączonego źródła nie można edytować — znacznik czasu i notatka pozostają edytowalne.",
"deleteError": "Błąd usuwania",
"deletedToast": "Pomiar usunięty",
"restoredToast": "Pomiar przywrócony",
"restoreError": "Przywracanie nie powiodło się",
"invalidValue": "Wprowadź poprawną wartość.",
"invalidTimestamp": "Wybierz poprawną datę i godzinę.",
"loginRequired": "Zaloguj się, aby zobaczyć pomiary.",
"allTypes": "Wszystkie typy",
"measurementCount": "{count} pomiarów",
"emptyTitle": "Brak pomiarów",
"emptyDescription": "Zarejestruj wagę, ciśnienie, tętno lub inne wartości, aby zauważyć trendy.",
"emptyFilteredTitle": "Żaden pomiar nie pasuje do filtra",
"emptyFilteredDescription": "Wybierz inny typ lub usuń filtr, aby zobaczyć wszystkie pomiary.",
"emptyAddFirst": "Zarejestruj pierwszy pomiar",
"emptyResetFilter": "Pokaż wszystkie typy",
"comment": "Komentarz",
"actions": "Akcje",
"deleteConfirmTitle": "Usunąć pomiar?",
"deleteConfirmDescription": "Ten pomiar zostanie usunięty. Zaraz po usunięciu możesz to przez chwilę cofnąć.",
"pageInfo": "Strona {page} z {total}",
"previousPage": "Poprzednia strona",
"nextPage": "Następna strona",
"dailyTotalCaption": "({count} pomiarów)",
"openMetricInsights": "Otwórz analizę {type}",
"sleepNapCaption": "+{count} drzemka/i",
"sleepAwakeningsCaption": "{count} przebudzenia",
"expandDay": "Pokaż pomiary z tego dnia",
"collapseDay": "Ukryj pomiary z tego dnia",
"loadError": "Nie udało się załadować pomiarów.",
"typeCardioRecovery": "Regeneracja serca",
"typeWristTemperature": "Temperatura nadgarstka",
"typeFallCount": "Upadki",
"typeSixMinuteWalkDistance": "Dystans marszu 6-minutowego",
"typeStairAscentSpeed": "Prędkość wchodzenia po schodach",
"typeStairDescentSpeed": "Prędkość schodzenia po schodach",
"typeBreathingDisturbances": "Zaburzenia oddychania we śnie",
"typeIrregularRhythmNotification": "Powiadomienie o nieregularnym rytmie",
"typeHighHeartRateEvent": "Powiadomienie o wysokim tętnie",
"typeLowHeartRateEvent": "Powiadomienie o niskim tętnie",
"typeWalkingSteadinessEvent": "Alert stabilności chodu",
"typeBreathingDisturbanceEvent": "Zaburzenie oddychania",
"typeRecoveryScore": "Wynik regeneracji",
"typeStressScore": "Wynik stresu",
"typeStrainScore": "Wynik obciążenia",
"typeHrvRmssd": "HRV (RMSSD)",
"typeDayStrain": "Obciążenie dzienne",
"typeWorkoutStrain": "Obciążenie treningowe",
"typeSleepPerformance": "Wydajność snu",
"typeSleepEfficiency": "Efektywność snu",
"typeSleepConsistency": "Regularność snu",
"typeSleepNeed": "Zapotrzebowanie na sen",
"typeEnergyExpenditureKj": "Wydatek energetyczny",
"typeAverageHeartRate": "Średnie tętno",
"typeMaxHeartRate": "Maksymalne tętno",
"typeSleepDisturbanceCount": "Zakłócenia snu",
"typeAnsCharge": "Ładunek ANS",
"typeCardioLoad": "Obciążenie kardio",
"typeSleepScore": "Wynik snu",
"typeBodyTemperatureDeviation": "Odchylenie temperatury ciała",
"typeResilience": "Odporność",
"sourceComputed": "Obliczone",
"sourceWhoop": "WHOOP",
"sourceFitbit": "Fitbit",
"bulkDeleteSuccess": "Usunięto pomiary: {count}",
"bulkDeleteError": "Błąd podczas usuwania wybranych pomiarów",
"bulkDeleteConfirmTitle": "Usunąć pomiary ({count})?",
"bulkDeleteConfirmBody": "Wybrane pomiary ({count}) zostaną usunięte. Zaraz po usunięciu możesz to przez chwilę cofnąć.",
"typePhq9Score": "Wynik PHQ-9",
"typeGad7Score": "Wynik GAD-7",
"typeGripStrength": "Siła chwytu",
"typePainNrs": "Ból (0–10)",
"typeWaistCircumference": "Obwód talii",
"typeWaistToHeight": "Stosunek talii do wzrostu",
"unitScore": "pkt",
"unitRatio": "stosunek",
"typeWho5Score": "Wynik WHO-5",
"typeSciScore": "Wynik SCI"
},
"metricCatalog": {
"title": "Co HealthLog potrafi śledzić",
"description": "Wszystkie obszary metryk obsługiwane przez HealthLog — również te, dla których nie masz jeszcze danych — oraz co je dostarcza.",
"statusPresent": "Śledzone",
"statusAbsent": "Jeszcze nieśledzone",
"statusModuleOff": "Wyłączone",
"loadError": "Nie udało się załadować statusu śledzenia.",
"connectCta": "Połącz źródło",
"viewCta": "Zobacz",
"ecg": {
"source": "Jednoodprowadzeniowe zapisy EKG z kompatybilnego zegarka — obecnie Withings ScanWatch — synchronizowane automatycznie."
},
"watchdog": {
"title": "Automatyczny nadzór",
"description": "HealthLog dyskretnie obserwuje też dane w tle — powiadomienia o nieregularnym rytmie i zaburzeniach oddychania z podłączonego zegarka, alerty o odchyleniu od Twojej wartości bazowej oraz zauważalne zmiany między dwoma ostatnimi panelami badań laboratoryjnych — i pokazuje kartę tylko wtedy, gdy coś zwraca uwagę. Jeśli podłączone jest co najmniej jedno z tych źródeł, brak karty to dobry znak, a nie brakująca funkcja; jeśli żadne nie jest jeszcze podłączone, po prostu nic nie jest jeszcze monitorowane."
}
},
"mood": {
"title": "Nastrój",
"subtitle": "Trend i wpisy nastroju",
"mentalWellbeingLink": "Wykonaj sprawdzian dobrostanu psychicznego",
"addEntry": "Dodaj",
"editEntry": "Edytuj wpis",
"moodLevel": "Nastrój",
"heroQuestion": "Jak się masz?",
"factorYes": "Tak",
"factorNo": "Nie",
"factorRatingOption": "{label}: {value} z {max}",
"tags": "Tagi",
"tagsPlaceholder": "np. sport, praca, rodzina",
"tagsHelp": "Oddziel przecinkami",
"timestamp": "Czas",
"date": "Data",
"source": "Źródło",
"levelSuperGut": "Świetnie",
"levelGut": "Dobrze",
"levelOkay": "OK",
"levelSchlecht": "Źle",
"levelLausig": "Fatalnie",
"sourceMoodlog": "moodLog",
"allMoods": "Wszystkie nastroje",
"entryCount": "{count} wpisów",
"emptyTitle": "Brak wpisów nastroju",
"emptyDescription": "Zapisz, jak się dziś czujesz, aby z czasem dostrzec wzorce.",
"emptyFilteredTitle": "Żaden wpis nie pasuje do filtra",
"emptyFilteredDescription": "Wybierz inny poziom lub usuń filtr, aby zobaczyć wszystkie wpisy.",
"emptyAddFirst": "Zapisz pierwszy nastrój",
"emptyResetFilter": "Pokaż wszystkie nastroje",
"actions": "Akcje",
"formReset": "Resetuj formularz",
"noteCharCount": "{count}/{max}",
"formResetConfirmTitle": "Zresetować ten formularz?",
"formResetConfirmBody": "Spowoduje to usunięcie wprowadzonego nastroju, tagów i notatki. Tej operacji nie można cofnąć.",
"formResetConfirmAction": "Resetuj",
"saveError": "Błąd zapisu",
"deleteError": "Błąd usuwania",
"deletedToast": "Wpis usunięty",
"restoredToast": "Wpis przywrócony",
"restoreError": "Przywracanie nie powiodło się",
"invalidTimestamp": "Wybierz poprawną datę i godzinę.",
"deleteConfirmTitle": "Usunąć wpis?",
"deleteConfirmDescription": "Ten wpis nastroju zostanie usunięty. Zaraz po usunięciu możesz to przez chwilę cofnąć.",
"pageInfo": "Strona {page} z {total}",
"previousPage": "Poprzednia strona",
"nextPage": "Następna strona",
"loginRequired": "Zaloguj się, aby zobaczyć wpisy nastroju.",
"note": "Notatka",
"noteCollapse": "Zwiń notatkę",
"noteExpand": "Pokaż całą notatkę",
"notePlaceholder": "Dodaj notatkę o swoim samopoczuciu…",
"tagPicker": "Tagi",
"tagCategory": {
"feelings": "Uczucia",
"sleep": "Sen",
"health": "Zdrowie",
"social": "Społeczne",
"work": "Praca",
"hobbies": "Hobby",
"factors": "Czynniki",
"custom": "Własne"
},
"tag": {
"happy": "szczęśliwy",
"excited": "podekscytowany",
"grateful": "wdzięczny",
"relaxed": "zrelaksowany",
"content": "zadowolony",
"tired": "zmęczony",
"unsure": "niepewny",
"bored": "znudzony",
"tense": "spięty",
"angry": "zły",
"stressed": "zestresowany",
"sad": "smutny",
"sleptWell": "dobrze spałem",
"sleptOk": "sen średni",
"sleptPoorly": "źle spałem",
"earlyNight": "wcześnie spać",
"workedOut": "trening",
"ateWell": "zdrowo zjadłem",
"hydrated": "piłem wodę",
"walked": "spacer",
"alcohol": "alkohol",
"caffeine": "kofeina",
"nicotine": "nikotyna",
"family": "rodzina",
"friends": "znajomi",
"party": "impreza",
"alone": "sam",
"productive": "produktywny",
"overtime": "nadgodziny",
"dayOff": "dzień wolny",
"travel": "podróż",
"sickDay": "dzień chorobowy",
"movies": "filmy",
"reading": "czytanie",
"gaming": "gry",
"music": "muzyka",
"outdoors": "na dworze",
"fastFood": "fast food",
"noSweets": "bez słodyczy",
"bigMeal": "obfity posiłek",
"factorWork": "praca",
"factorSocial": "życie towarzyskie",
"factorSleepQuality": "jakość snu",
"factorStress": "stres",
"factorConflict": "konflikt",
"factorFamily": "rodzina",
"factorSadness": "smutek",
"praise": "pochwała"
},
"sourceManual": "Ręcznie",
"sourceWeb": "Web",
"sourceTelegram": "Telegram",
"sourceDaylio": "Daylio",
"bulkDeleteSuccess": "Usunięto wpisy: {count}",
"bulkDeleteError": "Błąd podczas usuwania wybranych wpisów",
"bulkDeleteConfirmTitle": "Usunąć wpisy ({count})?",
"bulkDeleteConfirmBody": "Wybrane wpisy nastroju ({count}) zostaną usunięte. Zaraz po usunięciu możesz to przez chwilę cofnąć.",
"customize": "Dostosuj tagi nastroju",
"addTagInline": "Dodaj tag",
"manage": {
"groupsTitle": "Grupy",
"groupsDescription": "Twórz własne grupy i ustal ich kolejność w wyborze.",
"newGroup": "Nowa grupa",
"groupLabel": "Nazwa grupy",
"groupIcon": "Ikona",
"groupCreated": "Grupa utworzona",
"groupRenamed": "Grupa zapisana",
"groupDeleteTitle": "Usunąć grupę?",
"groupDeleteBody": "Tagi z tej grupy wracają do swojej pierwotnej grupy. Żadne wpisy nie zostaną usunięte.",
"groupDeleted": "Grupa usunięta",
"groupEmpty": "Brak własnych grup.",
"groupLimitReached": "Osiągnięto limit grup",
"tagsTitle": "Tagi",
"tagsDescription": "Ukrywaj, porządkuj, przenoś lub edytuj tagi widoczne w wyborze.",
"newTag": "Nowy tag",
"tagLabel": "Nazwa tagu",
"tagIcon": "Ikona",
"tagGroup": "Grupa",
"usageCount": "{count} wpisów",
"hideTag": "Ukryj tag",
"showTag": "Pokaż tag",
"moveToGroup": "Przenieś do grupy",
"archive": "Archiwizuj",
"restore": "Przywróć",
"archivedTitle": "Zarchiwizowane tagi",
"archivedDescription": "Zarchiwizowane tagi pozostają w Twoich wcześniejszych wpisach — znikają tylko z wyboru.",
"archivedEmpty": "Nic nie zarchiwizowano.",
"purgeTitle": "Usunąć tag na zawsze?",
"purgeBody": "Tag zostanie usunięty z {count} wcześniejszych wpisów. Tej operacji nie można cofnąć.",
"purgeAction": "Usuń na zawsze",
"purged": "Tag usunięty",
"tagLimitReached": "Osiągnięto limit tagów",
"iconPickerTitle": "Wybierz ikonę",
"iconSearchPlaceholder": "Szukaj ikon…",
"iconSearchEmpty": "Brak pasującej ikony.",
"iconSearchClear": "Wyczyść wyszukiwanie",
"orderSave": "Zapisz kolejność",
"orderSaved": "Kolejność zapisana",
"moveUp": "W górę",
"moveDown": "W dół",
"iconGroupEmotions": "Emocje",
"iconGroupActivities": "Aktywności",
"iconGroupHealth": "Zdrowie",
"iconGroupFood": "Jedzenie i napoje",
"iconGroupWeather": "Pogoda",
"iconGroupPlaces": "Miejsca",
"iconGroupMisc": "Inne"
},
"sectionMoreTags": "Więcej tagów",
"sectionFactors": "Czynniki",
"sectionNoteDetails": "Notatka i szczegóły",
"quickTagsHelp": "Twoje częste tagi — jedno dotknięcie",
"quickTagsExpand": "Więcej",
"loadError": "Nie udało się załadować wpisów nastroju."
},
"medications": {
"title": "Leki",
"subtitle": "Leki, harmonogramy i przyjęcia",
"loginRequired": "Zaloguj się, aby zarządzać lekami.",
"addMedication": "Dodaj",
"firstMedication": "Dodaj pierwszy lek",
"addChoice": {
"logIntake": "Zarejestruj przyjęcie",
"newMedication": "Nowy lek"
},
"takeAllDue": {
"button": "Przyjmij wszystkie zaległe",
"dialogTitle": "Przyjmij zaległe leki",
"dialogDescription": "Te leki są teraz do przyjęcia. Potwierdź, aby zarejestrować je wszystkie jako przyjęte.",
"confirm": "Przyjmij wszystkie ({count})",
"successToast": "Zarejestrowano przyjęcia: {count}",
"partialToast": "Zarejestrowano: {taken}, nieudane: {failed} – spróbuj ponownie",
"failedToast": "Nie zarejestrowano żadnego przyjęcia – spróbuj ponownie"
},
"logIntake": {
"dialogTitle": "Zarejestruj przyjęcie",
"dialogDescription": "Zarejestruj dawkę istniejącego leku. Możesz wstawić ją wstecznie na przeszłą datę i godzinę.",
"medicationLabel": "Lek",
"slotLabel": "Przedział harmonogramu",
"slotNone": "Bez konkretnego przedziału",
"doseLabel": "Dawka",
"doseHint": "Wstępnie wypełnione dawką leku lub przedziału. Zmień ją, aby zapisać inną dawkę tylko dla tego przyjęcia.",
"takenAtLabel": "Data i godzina",
"takenAtHint": "Domyślnie teraz; wybierz wcześniejszą datę i godzinę, aby zarejestrować przeszłą dawkę.",
"skippedLabel": "Zarejestruj jako pominięte",
"noMedications": "Najpierw dodaj lek, a potem będziesz mógł rejestrować jego przyjęcia.",
"cancel": "Anuluj",
"submit": "Zarejestruj przyjęcie",
"slotError": "Nie udało się przypisać godziny do wybranego slotu. Wybierz inny slot lub „Brak konkretnego slotu”."
},
"emptyTitle": "Brak leków",
"emptyDescription": "Utwórz leki, dawki i okna czasowe, aby śledzić przestrzeganie.",
"loadFailed": "Nie udało się załadować leków",
"retryLoad": "Spróbuj ponownie",
"inactive": "Wstrzymany",
"intakeHistory": "Historia przyjęć",
"openDetailPage": "Otwórz stronę szczegółów leku",
"compliance": "Przestrzeganie zaleceń",
"importIntakes": "Importuj przyjęcia",
"importDescription": "Wklej tablicę JSON z danymi przyjęć. Oczekiwany format:",
"importUploadFile": "Prześlij plik JSON",
"importPaste": "Wklej tutaj JSON...",
"importSelected": "Wybrano: {name}",
"importFileLoaded": "Plik „{name}” wczytany",
"importInvalidJson": "Plik nie zawiera prawidłowego JSON",
"importNoArray": "Nie znaleziono tablicy",
"importFailed": "Import nie powiódł się",
"importInvalidFormat": "Nieprawidłowy format JSON",
"requestExample": "Przykład żądania",
"categoryBloodPressure": "Ciśnienie krwi",
"categoryVitamin": "Witaminy",
"categoryThyroid": "Tarczyca",
"categoryHormone": "Hormony",
"categorySupplement": "Suplement",
"categoryPainRelief": "Przeciwbólowy",
"categoryAllergy": "Alergia",
"categoryDigestive": "Trawienne",
"categorySkin": "Pielęgnacja skóry",
"categorySleepAid": "Na sen",
"categoryDiabetes": "Diabetes",
"categoryAntibiotic": "Antybiotyk",
"categoryOther": "Inne",
"daysSun": "Nd",
"daysMon": "Pn",
"daysTue": "Wt",
"daysWed": "Śr",
"daysThu": "Czw",
"daysFri": "Pt",
"daysSat": "Sob",
"back": "Wstecz",
"today": "Dzisiaj",
"yesterday": "Wczoraj",
"tomorrow": "Jutro",
"asNeededMarker": "W razie potrzeby",
"withoutNotification": "Bez powiadomienia",
"pausedSince": "Wstrzymane od",
"takeNow": "Przyjmij teraz",
"lastDoseYesterday": "Ostatnia dawka wczoraj",
"lastDoseDaysAgo": "Ostatnia dawka {count} dni temu",
"overdue": "Po terminie",
"veryOverdue": "Mocno po terminie",
"complianceWindow": "Przestrzeganie {days} dni",
"complianceUnavailable": "Nie udało się wczytać danych o przestrzeganiu",
"complianceInfo": "Udział zarejestrowanych dawek względem oczekiwanych. Plany tygodniowe liczone są tydzień po tygodniu.",
"complianceInfoLabel": "Co oznacza przestrzeganie zaleceń?",
"lastIntake": "Ostatnie przyjęcie:",
"nextIntake": "Następne przyjęcie:",
"nextIntakeOverdue": "Zaległa · {time} — wciąż można przyjąć",
"dayStreak": "dni serii",
"dayStreakOne": "dzień serii",
"cycleDueToday": "Termin dzisiaj",
"cycleNoClosedCycles": "Brak zakończonych cykli dawkowania",
"taken": "Przyjęte",
"skipped": "Pominięte",
"intakeToastTaken": "{name} oznaczone jako przyjęte",
"intakeToastSkipped": "{name} pominięte",
"intakeToastFailed": "Nie udało się zapisać {name} — spróbuj ponownie",
"intakeUndo": "Cofnij",
"intakeUndone": "Wpis cofnięty",
"intakeUndoFailed": "Nie udało się cofnąć — popraw w historii",
"glp1LastInjection": "{label}",
"glp1NextInjectionDays": "{label} (za {days} dni)",
"glp1NextInjectionToday": "dziś",
"glp1NextInjectionTomorrow": "jutro",
"glp1RotationSuggested": "Sugerowane: {site}",
"glp1LogSideEffect": "Zapisz działanie niepożądane",
"sideEffects": {
"section": "Skutki uboczne",
"addCta": "Dodaj",
"sheetTitle": "Zarejestruj skutek uboczny",
"categoryLabel": "Kategoria",
"entryLabel": "Objaw",
"severityLabel": "Nasilenie",
"severity": {
"mild": "Łagodne",
"moderate": "Umiarkowane",
"significant": "Wyraźne",
"severe": "Silne",
"verySevere": "Bardzo silne"
},
"notesLabel": "Notatka (opcjonalnie)",
"notesPlaceholder": "Cokolwiek warto zapamiętać, maks. 280 znaków",
"submitCta": "Zapisz",
"cancelCta": "Anuluj",
"emptyState": "Nie zarejestrowano jeszcze skutków ubocznych. Śledzenie może pomóc lekarzowi i ujawnić wzorce w czasie.",
"recentTitle": "Ostatnie 30 dni",
"loading": "Ładowanie…",
"deleteCta": "Usuń",
"deleteError": "Nie udało się usunąć wpisu",
"errorSeverity": "Nasilenie musi mieścić się w zakresie 1–5",
"errorEntry": "Wybierz objaw",
"categories": {
"gi": "Żołądkowo-jelitowe",
"metabolic": "Metaboliczne",
"injectionSite": "Miejsce wstrzyknięcia",
"cognitive": "Poznawcze",
"glp1Specific": "Specyficzne dla GLP-1"
},
"entries": {
"nausea": "Nudności",
"vomiting": "Wymioty",
"diarrhea": "Biegunka",
"constipation": "Zaparcia",
"abdominalPain": "Ból brzucha",
"hypoglycemiaSymptoms": "Objawy hipoglikemii",
"dehydration": "Odwodnienie",
"anorexia": "Utrata apetytu",
"electrolyteFatigue": "Zmęczenie elektrolitowe",
"injectionRedness": "Zaczerwienienie miejsca wstrzyknięcia",
"injectionSwelling": "Obrzęk miejsca wstrzyknięcia",
"injectionBruising": "Siniak w miejscu wstrzyknięcia",
"injectionInduration": "Stwardnienie miejsca wstrzyknięcia",
"brainFog": "Mgła umysłowa",
"dizziness": "Zawroty głowy",
"lowMood": "Obniżony nastrój",
"lowEnergy": "Brak energii",
"earlySatiety": "Wczesne uczucie sytości",
"gastroparesisLike": "Spowolnione opróżnianie żołądka",
"dysgeusia": "Zmiana smaku",
"gallbladderDiscomfort": "Dolegliwości pęcherzyka żółciowego"
},
"deleteConfirmTitle": "Usunąć ten wpis?",
"deleteConfirmBody": "Ten wpis o skutku ubocznym zostanie trwale usunięty."
},
"scheduling": {
"naturalLanguage": {
"title": "Opisz lek",
"description": "Opisz lek własnymi słowami, a my wstępnie wypełnimy formularz za Ciebie.",
"placeholder": "np. Mounjaro 5 mg co tydzień w środę rano od najbliższego poniedziałku",
"submit": "Wyodrębnij",
"submitBusy": "Wyodrębnianie…",
"cancel": "Anuluj",
"examples": {
"label": "Wypróbuj jeden z tych przykładów",
"weekly": "Mounjaro 5 mg co tydzień w środę rano",
"daily": "Ibuprofen 200 mg codziennie, 3 razy dziennie",
"rolling": "Metotreksat 7,5 mg co 7 dni od ostatniego wstrzyknięcia"
},
"error": {
"empty": "Najpierw wpisz opis.",
"tooLong": "Utrzymuj opis poniżej 2000 znaków.",
"rateLimit": "Zbyt wiele żądań — poczekaj chwilę i spróbuj ponownie.",
"noProvider": "Brak skonfigurowanego dostawcy AI — skonfiguruj go w Ustawieniach.",
"budget": "Osiągnięto dzienny limit AI — spróbuj jutro.",
"network": "Nie udało się połączyć z dostawcą AI — spróbuj ponownie."
}
},
"cadence": {
"section": "Częstotliwość",
"label": "Jak często",
"kind": {
"daily": "Codziennie",
"weekdays": "W określone dni tygodnia",
"everyNWeeks": "Co N tygodni w określone dni",
"monthly": "Co miesiąc w określonym dniu",
"everyNMonths": "Co N miesięcy w określonym dniu",
"yearly": "Raz w roku",
"rolling": "Co N dni od ostatniego przyjęcia (elastycznie)",
"rollingExplainer": "Liczy od ostatniego zarejestrowanego przyjęcia — wstrzymuje się, jeśli pominiesz dawkę.",
"oneShot": "Dawka jednorazowa"
},
"weekdays": {
"label": "Dni tygodnia",
"short": {
"mo": "Mo",
"tu": "Wt",
"we": "Śr",
"th": "Cz",
"fr": "Fr",
"sa": "Sa",
"su": "Nd"
},
"long": {
"mo": "Poniedziałek",
"tu": "Wtorek",
"we": "Środa",
"th": "Czwartek",
"fr": "Piątek",
"sa": "Sobota",
"su": "Niedziela"
}
},
"intervalWeeks": {
"suffix": "tygodni"
},
"dayOfMonth": {
"label": "Dzień"
},
"intervalMonths": {
"suffix": "miesięcy",
"dayOnLabel": "w dniu"
},
"yearly": {
"date": {
"label": "Data"
}
},
"rollingDays": {
"suffix": "dni"
}
},
"timesOfDay": {
"section": "Pory dnia",
"label": "Pory dnia",
"empty": {
"cta": "Dodaj pierwszą godzinę."
},
"add": "Dodaj godzinę",
"remove": "Usuń",
"presets": {
"morning": "Rano",
"noon": "Południe",
"evening": "Wieczór",
"night": "Noc"
},
"max": {
"reached": "Osiągnięto maksimum — usuń jedną godzinę przed dodaniem kolejnej."
}
},
"courseWindow": {
"section": "Okres leczenia",
"startsOn": {
"label": "Rozpoczyna się"
},
"endsOn": {
"label": "Kończy się"
},
"noEndDate": "Brak daty zakończenia",
"oneShotCaption": "(dawka jednorazowa)",
"invalidRange": "Data zakończenia musi być taka sama jak data rozpoczęcia lub późniejsza."
}
},
"wizard": {
"header": {
"stepOf": "Krok {current} z {total}",
"createTitle": "Nowy lek",
"editTitle": "Edytuj {name}"
},
"nav": {
"back": "Wstecz",
"next": "Dalej",
"save": "Zapisz",
"saveEdit": "Zapisz zmiany",
"nextHint": "Dalej: {step}",
"reviewHint": "Dalej: Zapisz",
"jumpFirst": "Przejdź do pierwszego kroku",
"jumpLast": "Przejdź do podsumowania i zapisu"
},
"nl": {
"button": "Opisz"
},
"steps": {
"step1": {
"title": "Jak nazywa się lek?",
"subline": "Dokładnie tak, jak na opakowaniu.",
"label": "Name",
"placeholder": "np. Ramipryl",
"short": "Nazwa"
},
"step2": {
"title": "Jaki to rodzaj leku?",
"subline": "Wykorzystujemy to do odpowiednich szablonów i analiz.",
"short": "Rodzaj"
},
"step3": {
"title": "Jaka jest dawka?",
"subline": "Tabletka, wziew, kropla — w zależności od formy.",
"amountLabel": "Ilość",
"amountPlaceholder": "np. 5",
"unitLabel": "Jednostka",
"unit": {
"mg": "mg",
"ml": "ml",
"iu": "j.m.",
"mcg": "µg",
"g": "g",
"tablets": "tabletka/i",
"capsules": "kapsułka/i",
"drops": "krople",
"puffs": "wziew",
"sprays": "rozpylenie",
"pieces": "sztuki",
"other": "inne"
},
"deliveryFormLabel": "Droga podania",
"deliveryForm": {
"ORAL": "Doustnie",
"INJECTION": "Iniekcja",
"OTHER": "Inna"
},
"dosesPerUnitLabel": "Dawki na jednostkę",
"dosesPerUnitPlaceholder": "np. 4",
"dosesPerUnitHint": "Dawki na wstrzykiwacz / fiolkę — zostaw puste, aby nie śledzić zapasów.",
"short": "Dawka",
"unitsPerDoseLabel": "Jednostki na dawkę",
"unitsPerDoseHint": "np. 2 tabletki po 2 mg na dawkę 4 mg lub ½ tabletki przy dzielonej dawce"
},
"step4": {
"title": "Przez jaki okres go przyjmujesz?",
"subline": "Na dziś wystarczy data rozpoczęcia. Datę zakończenia możesz dodać później.",
"short": "Kiedy"
},
"step5": {
"title": "Jak często go przyjmujesz?",
"subline": "Wybierz częstotliwość — szczegóły w następnym kroku.",
"short": "Częstotliwość"
},
"step6": {
"title": "Jak to wygląda szczegółowo?",
"subline": "Ustaw dni tygodnia, interwały lub dzień miesiąca.",
"intervalWeeks": {
"label": "Co",
"suffix": "tygodni"
},
"dayOfMonth": {
"label": "W dniu",
"suffix": "dzień miesiąca"
},
"rollingDays": {
"label": "Co",
"suffix": "dni od ostatniego przyjęcia"
},
"short": "Szczegóły"
},
"step7": {
"title": "Kiedy go przyjmujesz?",
"subline": "Jedna lub więcej pór dnia — przypomnienia opierają się na tej liście.",
"presetsLabel": "Ustawienia wstępne pory dnia",
"presets": {
"morning": "Rano",
"noon": "Południe",
"evening": "Wieczór",
"night": "Noc"
},
"short": "Godziny"
},
"step8": {
"title": "Gotowe — czy HealthLog ma Ci przypominać?",
"subline": "Sprawdź wszystko poniżej przed zapisaniem.",
"remindersLabel": "Przypomnienia włączone",
"remindersDescription": "Push, Telegram lub ntfy — w zależności od ustawień.",
"noChannelHint": "Przypomnienia wymagają kanału powiadomień — obecnie żaden nie jest aktywny.",
"noChannelHintLink": "Skonfiguruj powiadomienia",
"short": "Gotowe"
}
},
"classRow": {
"bloodPressure": "Ciśnienie krwi",
"diabetes": "Diabetes",
"hormone": "Hormony",
"glp1": "Iniekcja GLP-1",
"painRelief": "Ból",
"allergy": "Alergia",
"vitamin": "Witaminy",
"supplement": "Suplement",
"antibiotic": "Antybiotyk",
"other": "Inne"
},
"cadence": {
"daily": {
"label": "Codziennie",
"description": "Codziennie o tej samej porze."
},
"weekdays": {
"label": "Określone dni tygodnia",
"description": "Np. poniedziałek, środa, piątek."
},
"everyNWeeks": {
"label": "Co kilka tygodni",
"description": "Np. co 2 tygodnie w czwartki (GLP-1, leki biologiczne)."
},
"monthly": {
"label": "Co miesiąc",
"description": "W stały dzień każdego miesiąca (np. zawsze 1.)."
},
"rolling": {
"label": "Elastycznie od ostatniej dawki",
"description": "Pozostaw kolejną dawkę otwartą. Po naciśnięciu „przyjęto” licznik startuje od nowa od tego momentu."
},
"oneShot": {
"label": "Jednorazowo",
"description": "Jednorazowe podanie, np. szczepionka lub kuracja antybiotykowa."
},
"asNeeded": {
"label": "W razie potrzeby",
"description": "Bez stałego planu — zapisz przyjęcie, gdy go potrzebujesz (np. lek przeciwbólowy)."
}
},
"summary": {
"title": "Podsumowanie",
"cadence": {
"daily": "Codziennie",
"weekdays": "W wybrane dni tygodnia",
"biweekly": "Co dwa tygodnie",
"monthly": "Co miesiąc",
"quarterly": "Co trzy miesiące",
"yearly": "Raz w roku",
"rolling": "Co {n} dni od ostatniego przyjęcia",
"oneShot": "Pojedyncza dawka",
"asNeeded": "W razie potrzeby",
"everyNWeeks": "Co {n} tygodni",
"everyNMonths": "Co {n} miesięcy"
},
"weekdaysDetail": ", w {days}",
"dayOfMonthDetail": ", dnia {day}.",
"times": "o {times}",
"startsOn": "Początek: {date}",
"endsOn": "Koniec: {date}",
"noEndDate": "Brak daty zakończenia"
},
"compose": {
"scheduleIndex": "Harmonogram {n} z {total}",
"list": {
"add": "Dodaj kolejny harmonogram",
"edit": "Edytuj",
"remove": "Usuń",
"removeDisabled": "Wymagany jest co najmniej jeden harmonogram."
}
},
"errors": {
"submitFailed": "Nie udało się zapisać leku — spróbuj ponownie."
}
},
"doseStrength": {
"title": "Dawka w czasie",
"axisLabel": "Zapisana dawka ({unit})",
"tooltipLabel": "Dawka",
"currentDose": "Aktualna dawka: {dose} {unit}",
"noCurrentDose": "Nie zapisano jeszcze żadnej dawki.",
"empty": "Brak historii titracji. Zapisz zmianę dawki, aby zobaczyć krzywą dawki."
},
"titration": {
"title": "Plan titracji",
"empty": "Nie zarejestrowano jeszcze kroków zwiększania dawki. Dodaj datowane zmiany dawki, aby nakreślić plan.",
"youAreHere": "Jesteś tutaj",
"doseStep": "{dose} {unit}",
"plannedFor": "Zaplanowano · {date}"
},
"injectionSiteBodyOutlineAriaLabel": "Sylwetka ciała",
"injectionSitePickerAriaLabel": "Wybór miejsca iniekcji",
"injectionSiteRecommendedAriaLabel": "{site} — zalecane następne miejsce",
"injectionSiteLegendAriaLabel": "Legenda oznaczeń",
"injectionSiteLegendRecommended": "Zalecane następne miejsce",
"injectionSiteLegendLastUsed": "Ostatnio użyte miejsce",
"siteAbdomenLeft": "Brzuch, dolny lewy",
"siteAbdomenRight": "Brzuch, dolny prawy",
"siteAbdomenUpperLeft": "Brzuch, górny lewy",
"siteAbdomenUpperRight": "Brzuch, górny prawy",
"siteThighLeft": "Lewe udo",
"siteThighRight": "Prawe udo",
"siteUpperArmLeft": "Lewe ramię",
"siteUpperArmRight": "Prawe ramię",
"sideEffectTagsHelp": "Stuknij chip, aby dodać go do tagów nastroju.",
"sideEffectTagNausea": "Nudności",
"sideEffectTagConstipation": "Zaparcia",
"sideEffectTagDiarrhea": "Biegunka",
"sideEffectTagFatigue": "Zmęczenie",
"sideEffectTagAppetiteLoss": "Utrata apetytu",
"sideEffectTagHeartburn": "Zgaga",
"sideEffectTagHeadache": "Ból głowy",
"phaseConfig": "Fazy przypomnień",
"phaseConfigDescription": "Skonfiguruj momenty przypomnień.",
"phaseGreen": "Zielony",
"phaseYellow": "Żółty",
"phaseOrange": "Pomarańczowy",
"phaseRed": "Czerwony",
"phaseMinutes": "Min",
"phasePercent": "%",
"phaseResetDefaults": "Przywróć wartości domyślne",
"phaseSaved": "Fazy przypomnień zapisane",
"sourceWeb": "Web",
"sourceApi": "Aplikacja iOS",
"sourceReminder": "Przypomnienie",
"sourceImport": "Import",
"intakeSourceVia": "przez {origin}",
"intakeHistoryEmptyTitle": "Brak przyjęć",
"intakeHistoryEmptyDescription": "Gdy tylko zarejestrujesz przyjęcie, pojawi się tu wraz z godziną i źródłem.",
"intakeHistoryEmptyAction": "Zarejestruj przyjęcie",
"intakeHistoryColTaken": "Przyjęty",
"intakeHistoryColScheduled": "Zaplanowany",
"intakeHistoryColStatus": "Status",
"intakeHistoryColSource": "Źródło",
"intakeHistoryStatusTaken": "Przyjęty",
"intakeHistoryStatusSkipped": "Pominięty",
"intakeHistorySortByTaken": "Sortuj wg czasu przyjęcia",
"intakeHistorySortByScheduled": "Sortuj wg czasu zaplanowanego",
"intakeHistoryPageInfo": "Strona {page} z {total} · {count} wpisów",
"intakeHistoryPrev": "Poprzednia",
"intakeHistoryNext": "Następna",
"glp1": {
"drug": {
"tirzepatide": {
"name": "Tyrzepatyd"
},
"semaglutide": {
"name": "Semaglutyd"
},
"liraglutide": {
"name": "Liraglutyd"
},
"dulaglutide": {
"name": "Dulaglutyd"
},
"exenatide": {
"name": "Eksenatyd"
}
}
},
"researchMode": {
"dialog": {
"title": "Włącz tryb Badawczy",
"intro": "Tryb Badawczy dodaje szacowany wykres poziomu leku do twojej strony GLP-1. Przed jego włączeniem przeczytaj granicę poniżej — wykres jest pomocą edukacyjną, nigdy pomiarem i nigdy poradą medyczną.",
"whatItIsHeader": "Czym to jest",
"whatItIs": "Piłokształtną krzywą, która symuluje nakładanie się twoich zarejestrowanych dawek w czasie, na podstawie jednokompartmentowego modelu Batemana z parametrami absorpcji i okresu półtrwania opublikowanymi w EPAR EMA dla każdego zatwierdzonego agonisty GLP-1. Oś pionowa jest bezjednostkowa i nieopisana. To kształt, a nie liczba, jest tym, co pokazuje wykres.",
"whatItIsntHeader": "Czym to nie jest",
"whatItIsnt": "Nie jest poziomem we krwi. Nie jest pomiarem. Nie jest prognozą faktycznej reakcji twojego organizmu. Nie jest podstawą żadnej decyzji o dawce, czasie ani eskalacji. We wszystkim, co dotyczy sposobu przyjmowania leku, porozmawiaj z lekarzem prowadzącym.",
"whyEstimateHeader": "Dlaczego to oszacowanie",
"whyEstimate": "Farmakokinetyka populacyjna opisuje typowego pacjenta. Zmienność osobnicza jest duża — model Schneck/Urva 2024 dla tirzepatydu raportuje około 22 % międzyosobniczej zmienności absorpcji i około 49 % objętości dystrybucji. Krzywa z podręcznika nie uchwyci ani twojej masy ciała, ani funkcji nerek, ani techniki iniekcji, ani precyzji czasu. Czytaj krzywą jako rytm dawkowania, a nie twój poziom.",
"mdrBoundaryHeader": "Granica regulacyjna",
"mdrBoundary": "HealthLog wyświetla publiczne dane regulacyjne i twoje własne wpisy. Aplikacja nie prognozuje, nie diagnozuje, nie leczy i nie rekomenduje żadnej terapii. Rozporządzenie UE 2017/745 (Medical Device Regulation, MDR) oraz dokument MDCG 2021-24 wyznaczają granicę przy oprogramowaniu interpretującym dane do celów medycznych — ten wykres pozostaje zdecydowanie po edukacyjnej stronie tej granicy. Jeśli kiedykolwiek poczujesz, że kieruje cię w stronę decyzji klinicznej, zamknij go.",
"citationsHeader": "Źródła",
"citations": "European Public Assessment Reports EMA dla Mounjaro, Ozempic, Wegovy, Saxenda, Trulicity, Byetta i Bydureon (Sekcja 5.2). Schneck K, Urva S. Population pharmacokinetics of the GIP/GLP receptor agonist tirzepatide. CPT Pharmacometrics Syst Pharmacol 2024;13(3):494-503 (DOI 10.1002/psp4.13099).",
"versionLine": "Wersja disclaimera: {version}",
"acknowledgeCta": "Rozumiem — włącz",
"cancelCta": "Anuluj",
"successToast": "Tryb Badawczy włączony. Krzywa poziomu leku jest teraz widoczna na twojej stronie GLP-1.",
"errorToast": "Nie udało się włączyć trybu Badawczego. Spróbuj ponownie.",
"staleVersionToast": "Disclaimer został zaktualizowany od czasu wczytania tej strony. Odśwież, aby przeczytać aktualną wersję."
},
"chart": {
"title": "Szacowany poziom leku",
"axisLabel": "Szacowany poziom (względny)",
"emptyState": "Brak zarejestrowanych przyjęć.",
"emptyStateCta": "Zarejestruj dawkę, aby zobaczyć kształtującą się krzywą szacunkową.",
"estimateNote": "Edukacyjne oszacowanie z opublikowanej przez EMA farmakokinetyki populacyjnej. To nie jest pomiar.",
"unknownDrug": "{name} nie znajduje się w katalogu GLP-1 zatwierdzonym przez EMA, więc HealthLog nie może wyrysować krzywej farmakokinetyki populacyjnej."
}
},
"detail": {
"status": {
"active": "Aktywny",
"paused": "Wstrzymany",
"ended": "Zakończony"
},
"cadence": {
"oneShotOn": "Dawka jednorazowa w dniu {date}.",
"oneShotPending": "Dawka jednorazowa oczekuje.",
"asNeeded": "W razie potrzeby — bez stałego planu."
},
"intake": {
"title": "Historia przyjęć",
"importButton": "Importuj",
"rowActions": {
"openMenu": "Otwórz akcje wiersza",
"edit": "Edytuj",
"delete": "Usuń"
},
"selection": {
"rowToggleLabel": "Zaznacz wiersz"
},
"bulkDelete": {
"selectionCount": "{count} wpisów zaznaczono",
"deleteButton": "Usuń zaznaczone",
"cancelButton": "Anuluj",
"confirmTitle": "Usunąć zaznaczone wpisy?",
"confirmBody": "{count} wpisów zostanie trwale usuniętych. Sam lek pozostaje.",
"confirmAction": "Usuń",
"toast": "Zaznaczone usunięto",
"failed": "Nie udało się usunąć zaznaczonych."
},
"edit": {
"dialogTitle": "Edytuj przyjęcie",
"takenAtLabel": "Przyjęto o",
"scheduledForHint": "Zaplanowano: {dateTime}",
"farFromScheduledWarning": "Znacznie odbiega od zaplanowanego terminu — sprawdź datę.",
"skippedLabel": "Pominięto",
"save": "Zapisz",
"cancel": "Anuluj",
"savedToast": "Przyjęcie zaktualizowane",
"failed": "Nie udało się zaktualizować przyjęcia."
},
"deleteRow": {
"confirmTitle": "Usunąć to przyjęcie?",
"confirmBody": "Wpis zostanie trwale usunięty.",
"confirmAction": "Usuń",
"toast": "Przyjęcie usunięte",
"failed": "Nie udało się usunąć przyjęcia."
},
"viewRecent90": "Ostatnie 90 dni",
"viewAll": "Pełna historia",
"viewToggleLabel": "Zakres historii"
},
"verlauf": {
"loading": "Wczytywanie historii …",
"loadError": "Nie udało się wczytać historii.",
"empty": "Brak przyjęć w tym okresie.",
"summaryEmpty": "Brak dawek do oceny.",
"adherenceLabel": "Przestrzeganie",
"adherenceBarLabel": "{onTime} na czas, {late} z opóźnieniem, {missed} pominięte",
"add": "Wpis",
"markTaken": "Przyjęte",
"markSkipped": "Pominięte",
"rowActionsLabel": "Akcje dla {time}",
"markAsTaken": "Oznacz jako przyjętą",
"markAsSkipped": "Oznacz jako pominiętą",
"adHocTag": "poza planem",
"takenDetail": "planowo {planned} · przyjęto {taken}",
"doseTaken": "Dawka: {dose}",
"status": {
"taken_on_time": "na czas",
"taken_late": "z opóźnieniem",
"skipped": "pominięte",
"missed": "nieprzyjęte",
"upcoming": "oczekujące",
"ad_hoc": "poza planem"
},
"addDialog": {
"title": "Dodaj przyjęcie",
"description": "Zarejestruj dawkę — także wstecznie lub poza planem.",
"takenAtLabel": "Przyjęto o",
"skippedLabel": "Pominięte",
"nudgeHint": "Blisko slotu {slot} — przy zapisie zapytamy, czy przypisać.",
"cancel": "Anuluj",
"submit": "Zapisz"
},
"nudge": {
"title": "Przypisać do tego slotu?",
"body": "To przyjęcie wypada tuż poza oknem {slot}. Przypisać je do tego slotu czy zachować jako wpis poza planem?",
"keepAdHoc": "Poza planem",
"pin": "Przypisz"
},
"pin": {
"action": "Przypisz do slotu {time}",
"release": "Usuń przypisanie",
"pinnedTag": "przypisana",
"pinnedToast": "Dawka przypisana do slotu",
"unpinnedToast": "Przypisanie usunięte",
"dueContext": "termin: {time} ({delta})",
"confirmTitle": "Przypisać do slotu {time}?",
"confirmBody": "Dawka zostanie policzona jako przyjęta z opóźnieniem dla tego slotu – wskaźnik nie jest zawyżany. Przypisanie można w każdej chwili usunąć.",
"confirmCancel": "Anuluj",
"confirmAction": "Przypisz"
}
},
"notifications": {
"title": "Przypomnienia",
"switchLabel": "Wyślij przypomnienie, gdy nadejdzie czas tej dawki",
"helperOn": "Przypomnienia są włączone.",
"helperOff": "Przypomnienia są wyłączone.",
"enabledToast": "Przypomnienia włączone",
"disabledToast": "Przypomnienia wyłączone",
"toggleFailed": "Nie udało się zmienić ustawienia przypomnień.",
"clientManagedChip": "Twój iPhone zarządza przypomnieniami dla tego leku."
},
"settings": {
"title": "Ustawienia",
"phases": {
"openButton": "Skonfiguruj fazy",
"requiresCourseWindow": "Fazy są dostępne po ustawieniu okresu leczenia."
},
"grace": {
"label": "Okno przypomnienia",
"appliesToAllNote": "Dotyczy wszystkich harmonogramów tego leku.",
"unit": "minut",
"saved": "Okno przypomnienia zapisane",
"failed": "Nie udało się zapisać okna przypomnienia."
},
"codes": {
"label": "Kody kliniczne (ATC / RxNorm)",
"note": "Opcjonalne. Używane w eksporcie FHIR dokumentacji zdrowotnej. Kody są zapisywane dokładnie tak, jak wprowadzone — nigdy nie są zgadywane.",
"atcLabel": "ATC",
"rxNormLabel": "RxNorm",
"saved": "Kody kliniczne zapisane",
"failed": "Nie udało się zapisać kodów klinicznych."
}
},
"zone": {
"title": "Zarządzanie i strefa zagrożenia",
"pause": {
"title": "Wstrzymaj",
"helper": "Wstrzymaj przypomnienia, aż włączysz je ponownie. Historia pozostaje nienaruszona.",
"pausedToast": "Przypomnienia wstrzymane",
"resumedToast": "Przypomnienia wznowione",
"failed": "Nie udało się zmienić stanu wstrzymania."
},
"end": {
"title": "Zakończ lek",
"helper": "Zatrzymuje przypomnienia i oznacza lek jako zakończony. Historia pozostaje widoczna.",
"button": "Zakończ",
"dialogTitle": "Zakończ {name} — zatrzymuje przypomnienia, historia pozostaje widoczna",
"dialogBody": "Brak kolejnych przypomnień. Stare wpisy pozostają na osi czasu.",
"toast": "Lek zakończony",
"failed": "Nie udało się zakończyć leku."
},
"purge": {
"title": "Usuń historię",
"helper": "Dla tego leku zapisano {count} przyjęć.",
"button": "Usuń historię",
"dialogTitle": "Na pewno usunąć historię?",
"dialogBody": "{count} przyjęć zostanie trwale usuniętych. Sam lek pozostaje.",
"toast": "Historia usunięta",
"failed": "Nie udało się usunąć historii."
},
"delete": {
"title": "Usuń lek",
"helper": "Usuwa lek i wszystkie powiązane rekordy.",
"button": "Usuń",
"dialogTitle": "Usunąć {name}?",
"dialogBody": "Lek, jego harmonogramy, historia przyjęć, tokeny API, konfiguracja faz i przypomnienia zostaną trwale usunięte.",
"toast": "Lek usunięty",
"failed": "Nie udało się usunąć leku."
}
},
"phases": {
"modeLabel": "Tryb {phase}",
"saveFailed": "Nie udało się zapisać faz przypomnień."
},
"api": {
"caption": "Punkt końcowy dla „{name}”",
"copyUrl": "Kopiuj URL",
"urlCopied": "Skopiowano URL",
"mintToken": "Wygeneruj token",
"mintAnotherToken": "Wygeneruj kolejny token",
"mintFailed": "Nie udało się wygenerować tokena.",
"copyFailed": "Nie udało się skopiować.",
"tokenCopied": "Token skopiowany",
"copyToken": "Kopiuj token",
"mintedHint": "Skopiuj ten token teraz — jest pokazywany tylko raz."
},
"advanced": {
"dataPortability": {
"import": {
"title": "Importuj przyjęcia",
"helper": "Wczytaj wcześniejsze przyjęcia z pliku JSON lub wklejonego JSON.",
"button": "Importuj JSON"
},
"export": {
"title": "Eksportuj lek",
"helper": "Pobierz ten lek jako plik CSV.",
"includeIntake": "Dołącz historię przyjęć",
"button": "Eksportuj CSV"
}
}
},
"header": {
"historyLabel": "Zobacz historię przyjęć"
},
"history": {
"plannedSuffix": "zaplanowane"
},
"tabs": {
"uebersicht": "Przegląd",
"zeitplan": "Harmonogram",
"bestand": "Zapas",
"verlauf": "Historia",
"injektion": "Iniekcja",
"api": "API",
"erweitert": "Zaawansowane",
"wirkung": "Działanie"
},
"shell": {
"loadFailed": "Nie udało się załadować tego leku.",
"tablistLabel": "Sekcje szczegółów leku"
},
"uebersicht": {
"statusTitle": "Status",
"nextDoseLabel": "Następna dawka",
"nextDoseNone": "Brak nadchodzącej dawki.",
"nextDoseAsNeeded": "W razie potrzeby — brak zaplanowanej dawki.",
"pausedHint": "Wstrzymano — brak przypomnień.",
"reminderLabel": "Przypomnienie",
"reminderOn": "Włączone",
"reminderOff": "Wyłączone",
"supplyLabel": "Zapas",
"supplyRunway": "Wystarczy na około {days} dni",
"jumpToZeitplan": "Otwórz harmonogram",
"jumpToVerlauf": "Otwórz historię",
"jumpToBestand": "Otwórz zapas",
"complianceTitle": "Przestrzeganie",
"complianceEmpty": "Brak danych o przestrzeganiu."
},
"bestand": {
"title": "Zapas",
"summary": "Pozostało {remaining} z {total} dawek",
"itemsTitle": "Opakowania i pojemniki",
"doses": "{remaining} / {total} dawek",
"unknown": "Nieznane",
"state": {
"ACTIVE": "Nieotwarte",
"IN_USE": "W użyciu",
"EXPIRED": "Przeterminowane",
"USED_UP": "Zużyte"
},
"empty": "Nie zarejestrowano zapasu.",
"emptyHelper": "Zarejestruj opakowanie lub pojemnik, aby śledzić pozostały zapas i jego wystarczalność.",
"emptyCta": "Zarejestruj opakowanie",
"addButton": "Zarejestruj",
"lowStockLinkOn": "Powiadomienie o niskim zapasie: poniżej {days} dni",
"lowStockLinkOff": "Powiadomienie o niskim zapasie: wyłączone",
"addTitle": "Zarejestruj opakowanie lub pojemnik",
"addDescription": "Zapisz nowy zapas z liczbą jednostek; data ważności jest opcjonalna.",
"addQuantityLabel": "Ilość (jednostki)",
"addQuantityHelper": "1–1000 jednostek na opakowanie lub pojemnik.",
"addExpiryLabel": "Data ważności (opcjonalnie)",
"addSubmit": "Zarejestruj",
"addSuccess": "Zapas zarejestrowany.",
"addFailed": "Nie udało się zarejestrować zapasu.",
"adjustButton": "Skoryguj",
"adjustTitle": "Popraw opakowanie",
"adjustDescription": "Ustaw pozostałe jednostki i popraw daty tego opakowania. 0 jednostek oznacza je jako zużyte.",
"adjustQuantityLabel": "Pozostałe jednostki",
"adjustHelper": "Pojemność: {total} jednostek.",
"adjustSubmit": "Zapisz",
"adjustSuccess": "Zapas zaktualizowany.",
"adjustFailed": "Nie udało się zaktualizować zapasu.",
"deleteTitle": "Usunąć opakowanie?",
"deleteDescription": "Trwale usuwa to opakowanie lub pojemnik z zapasu. Zarejestrowane dawki pozostają bez zmian.",
"deleteSuccess": "Zapas usunięty.",
"deleteFailed": "Nie udało się usunąć zapasu.",
"containerTypeLabel": "Rodzaj pojemnika",
"containerType": {
"PEN": "Wstrzykiwacz",
"AMPOULE": "Ampułka",
"BLISTER": "Opakowanie tabletek",
"INHALER": "Inhalator",
"BOTTLE": "Butelka",
"OTHER": "Inne"
},
"unitsDetail": "{remaining} / {total} jednostek",
"quantityModeDoses": "Dawki",
"quantityModeUnits": "Jednostki",
"quantityInUnits": "= {units} jednostek",
"quantityInDoses": "Dawki: ≈ {doses}",
"quantityUnderOneDose": "< 1 dawka",
"expiredSuffix": "+ przeterminowane jednostki: {units}",
"packagingTitle": "Opakowanie i dawka",
"packagingUnitsPerDose": "1 dawka = {units} jedn.",
"packagingDefaultPack": "Domyślny rozmiar opakowania: {units} jedn.",
"packagingNoDefaultPack": "Brak domyślnego rozmiaru opakowania",
"packagingEdit": "Edytuj",
"packagingDescription": "Określ, ile jednostek zużywa jedna dawka i jaki jest typowy rozmiar nowego opakowania — np. po zmianie producenta z innym blistrem.",
"packagingUnitsPerDoseLabel": "Jednostki na dawkę",
"packagingUnitsPerDoseHelper": "Np. dwie tabletki 2 mg na dawkę 4 mg (1–100). Zarejestrowane dawki pozostają bez zmian.",
"packagingDefaultPackLabel": "Domyślny rozmiar opakowania (jednostki)",
"packagingDefaultPackHelper": "Wstępnie wypełnia ilość przy dodawaniu nowych opakowań (1–1000). Zostaw puste, jeśli nie dotyczy.",
"packagingSuccess": "Zapisano dane opakowania",
"packagingFailed": "Zapis nie powiódł się",
"addManufacturerLabel": "Producent",
"addDoseStrengthLabel": "Moc",
"addDoseStrengthHint": "Zgodnie z nadrukiem na opakowaniu, np. 5 mg/0,5 ml.",
"openedOn": "Otwarto {date}",
"expiresOn": "Ważne do {date}",
"summaryAllExpired": "Brak zapasu do użycia: {units} jednostek oznaczono jako przeterminowane",
"editExpiryLabel": "Data ważności z opakowania",
"editExpiryHelper": "Data nadrukowana na opakowaniu. Zostaw puste, jeśli nie została zapisana.",
"editOpenedLabel": "Data otwarcia",
"editOpenedHelper": "Zostaw puste, jeśli opakowanie jest jeszcze zamknięte.",
"editOpenedHelperClock": "Pen lub ampułka traci ważność 30 dni po otwarciu. Zostaw puste, jeśli jest jeszcze zamknięta."
},
"erweitert": {
"group": {
"lifecycle": "Cykl życia",
"externalApi": "Zewnętrzne API",
"data": "Dane",
"danger": "Strefa zagrożenia"
},
"editor": {
"title": "Edytuj lek w edytorze",
"helper": "Zmień nazwę, klasę leczenia, częstotliwość i harmonogramy w edytorze krok po kroku.",
"button": "Otwórz edytor"
}
},
"zeitplan": {
"title": "Harmonogram",
"timesTitle": "Godziny przyjęcia",
"timesNote": "Dostosuj godzinę i okno punktualności każdej dawki. Częstotliwość (codziennie, co tydzień…) zmieniasz w edytorze w sekcji Zaawansowane.",
"scheduleLabel": "Harmonogram {index}",
"fullEditNote": "Częstotliwość, klasę leczenia i okno kuracji edytujesz w edytorze w sekcji Zaawansowane → Cykl życia.",
"graceEcho": "Okno przypomnienia: {minutes} minut",
"reminderTitle": "Przypomnienie",
"manageChannels": "Zarządzaj kanałami powiadomień",
"history": {
"title": "Historia planu",
"currentSince": "Aktualny plan od {date}",
"noTimes": "Brak stałych godzin",
"manualChip": "Dodano ręcznie",
"showErasOne": "Pokaż 1 wcześniejszy okres",
"showErasOther": "Pokaż wcześniejsze okresy ({count})",
"hideEras": "Ukryj wcześniejsze okresy",
"addEra": "Dodaj wcześniejszy okres",
"addEraTitle": "Dodaj wcześniejszy okres",
"addEraDescription": "Zapisz, o których godzinach ten lek był wcześniej przyjmowany — np. zanim zmieniono go tutaj.",
"editAria": "Edytuj okres",
"editEraTitle": "Edytuj okres",
"editEraDescription": "Dostosuj godziny przyjmowania i zakres dat tego okresu.",
"archivedEditHint": "Ten okres został zapisany automatycznie — Twoja zmiana koryguje zarejestrowaną historię; oryginał pozostaje wewnętrznie jako zapis.",
"updatedToast": "Okres zaktualizowany",
"updateError": "Nie udało się zaktualizować okresu. Nie może nakładać się na inne okresy i musi kończyć się przed aktualnym planem.",
"timesLabel": "Godziny przyjmowania",
"fromLabel": "Od",
"untilLabel": "Do",
"untilHint": "„Do\" to dzień, od którego obowiązywał kolejny plan (wyłącznie).",
"validationTimes": "Podaj co najmniej jedną godzinę.",
"validationRangeMissing": "Podaj daty od i do.",
"validationRangeOrder": "Data od musi być wcześniejsza niż data do.",
"cancel": "Anuluj",
"submit": "Zapisz okres",
"createdToast": "Wcześniejszy okres zapisany",
"createError": "Nie udało się zapisać okresu. Nie może nakładać się na istniejące okresy i musi kończyć się przed aktualnym planem.",
"deletedToast": "Okres usunięty",
"deleteError": "Nie udało się usunąć okresu",
"deleteAria": "Usuń okres",
"deleteConfirmTitle": "Usunąć okres?",
"deleteConfirmBody": "Historia i przestrzeganie zaleceń w tym zakresie zostaną ponownie obliczone według aktualnego planu.",
"deleteConfirmAction": "Usuń",
"loadError": "Nie udało się wczytać historii planu"
},
"save": "Zapisz harmonogram",
"saved": "Zapisano harmonogram",
"failed": "Nie udało się zapisać harmonogramu",
"window": {
"intro": "Dla każdej dawki ustal, kiedy przyjęcie jest jeszcze punktualne — dokładna godzina (±1 h) lub własne okno, np. 07:00–09:00.",
"explicitToggle": "Własne okno",
"startLabel": "Początek okna",
"endLabel": "Koniec okna",
"onTimeBand": "Punktualnie: {start}–{end}",
"lateUntil": "z opóźnieniem do {time}",
"lateDays": "z opóźnieniem do {days} dni później",
"orderError": "Początek musi być przed końcem.",
"noTimes": "Nie ustawiono jeszcze godzin przyjęcia."
}
}
},
"logInjectionSiteTitle": "Zarejestruj miejsce iniekcji",
"logInjectionSiteDescription": "Gdzie wstrzyknięto {name}? Opcjonalnie — możesz to pominąć.",
"logInjectionSiteSkip": "Pomiń",
"logInjectionSiteConfirm": "Zapisz miejsce",
"logInjectionSiteNoneAvailable": "Brak dostępnego miejsca iniekcji — wszystkie miejsca są wykluczone w Twoich ustawieniach.",
"logInjectionSiteSaveFailed": "Nie udało się zapisać miejsca iniekcji. Spróbuj ponownie.",
"trackInjectionSitesToggle": "Rejestruj miejsca iniekcji",
"trackInjectionSitesHint": "Po przyjęciu dawki zapytaj, którego miejsca użyto, i zaproponuj kolejną rotację.",
"allowedSitesLabel": "Dozwolone miejsca",
"allowedSitesHint": "Pozostaw wszystkie zaznaczone, aby nie stosować ograniczeń. Miejsca wykluczone globalnie nigdy nie są proponowane.",
"viewToggleLabel": "Widok",
"viewToggleHint": "Wybierz, czy leki mają być wyświetlane jako karty, czy jako tabela.",
"viewCards": "Widok kart",
"viewTable": "Widok tabeli",
"viewSaveFailed": "Nie udało się zapisać widoku",
"tableCaption": "Leki w formie tabeli ze statusem, następną dawką, przestrzeganiem zaleceń i zapasem",
"tableColName": "Nazwa",
"tableColStatus": "Status",
"tableColNextDose": "Następna dawka",
"tableColCompliance": "Przestrzeganie",
"tableColStock": "Zapas",
"tableColActions": "Akcje",
"tableSortBy": "Sortuj według {column}",
"tableComplianceDays": "{days} dni",
"tableStockDoseOne": "1 dawka",
"tableStockDoses": "Dawki: {count}",
"tableStockRunway": "≈ {days} dni zapasu",
"cardLowStockRunway": "Zapas: ≈ {days} dni",
"takeActionFor": "Przyjmij – {name}",
"skipActionFor": "Pomiń – {name}",
"reorderTitle": "Zmień kolejność",
"reorderDescription": "Ustal kolejność swoich leków – obowiązuje w widoku kart i w tabeli.",
"reorderSaved": "Kolejność zapisana",
"reorderSaveFailed": "Nie udało się zapisać kolejności",
"customize": "Dostosuj leki",
"efficacy": {
"title": "Działanie",
"intro": "Jak zmieniały się pomiary, na które ma wpływać ten lek, w okolicach rozpoczęcia jego przyjmowania. Pokazuje to, co zbiega się w czasie — powiązanie, nie przyczynę — i nigdy porady dotyczącej leczenia ani dawki.",
"notEligible": "Brak pomiaru, który można powiązać z tym lekiem.",
"startFallback": "Nie ustawiono daty rozpoczęcia, więc porównanie używa pierwszego zapisanego pomiaru jako punktu odniesienia.",
"noStart": "Ustaw datę rozpoczęcia, aby porównać pomiary sprzed i po rozpoczęciu.",
"disclaimer": "Tylko powiązanie: te liczby pokazują, co zmieniło się w tym samym okresie, a nie że lek spowodował tę zmianę. Wszelkie decyzje dotyczące leczenia omów z lekarzem.",
"primaryBadge": "Główny cel",
"noSeries": "Brak zapisanych pomiarów dla tego celu.",
"startMarker": "Początek",
"adherenceLane": "Regularność",
"typicalRange": "Typowy zakres",
"levelShift": "Wykryto zmianę poziomu w okolicach {date}.",
"plateau": {
"title": "Plateau masy ciała przy obecnej dawce",
"evidence": "Zmiana masy ciała o {delta} {unit} w ciągu ostatnich {window} dni ({readings} pomiarów) — {days} dni na dawce {dose}."
},
"retarget": {
"label": "To nie ten pomiar?",
"placeholder": "Śledź według…",
"apply": "Zastosuj",
"reset": "Przywróć domyślne",
"error": "Nie udało się zapisać tej zmiany. Spróbuj ponownie."
},
"beforeAfter": {
"summary": "Ø {before} przedtem → Ø {after} od tego czasu — zmiana o {delta}.",
"counts": "Na podstawie {beforeCount} pomiarów przedtem i {afterCount} od tego czasu.",
"needBefore": "Za mało pomiarów przed rozpoczęciem — do porównania potrzeba około {weeks} tygodni przed i po.",
"needAfter": "Za mało pomiarów od rozpoczęcia — do porównania potrzeba około {weeks} tygodni przed i po.",
"needStart": "Ustaw datę rozpoczęcia, aby porównać pomiary sprzed i po rozpoczęciu.",
"needData": "Za mało pomiarów — do porównania potrzeba około {weeks} tygodni przed i po rozpoczęciu."
},
"insights": {
"title": "Działanie leków",
"subtitle": "Co zbiega się w czasie z pomiarami, na które celują Twoje leki — tylko powiązanie, nigdy werdykt.",
"link": "Otwórz widok działania",
"empty": "Za mało danych, aby powiązać Twoje leki z docelowymi pomiarami."
},
"scaleAbsolute": "Bezwzględne",
"scalePercentSinceStart": "% od początku",
"scaleToggleLabel": "Skala wykresu"
},
"import": {
"resultSuccess": "Zaimportowano przyjęcia: {imported}.",
"resultPartial": "Zaimportowano {imported}, pominięto {skipped}.",
"resultNothing": "Nic nie zaimportowano: pominięto wszystkie wpisy ({skipped}).",
"resultAlreadyRecorded": "Przyjęcia już zapisane: {recorded}. Nie dodano niczego nowego.",
"resultEmpty": "Ten plik nie zawierał żadnych przyjęć.",
"showSkipDetails": "Pokaż pominięte wiersze ({count})",
"skipDetailLine": "Wiersz {line}: {reason}",
"skipDetailsOmitted": "Nie pokazano kolejnych pominiętych wierszy: {count}.",
"skipGroupOne": "Pominięto {count} wpis: {reason}",
"skipGroupFew": "Pominięto {count} wpisy: {reason}",
"skipGroupOther": "Pominięto {count} wpisów: {reason}",
"reasonDuplicateInFile": "inny wpis w tym samym pliku ma tę samą datę i godzinę",
"reasonAlreadyRecorded": "przyjęcie o tej dacie i godzinie jest już zapisane",
"reasonUnknown": "powód nieodnotowany",
"reasonMedicationNotFound": "żaden zapisany lek nie odpowiada nazwie z pliku",
"reasonMedicationAmbiguous": "nazwa z pliku odpowiada więcej niż jednemu lekowi",
"reasonMedicationIsMirrored": "lek jest kopią tylko do odczytu z innej aplikacji",
"reasonStatusUnknown": "status w pliku nie należy do tych, które definiuje format",
"reasonMissingTimestamp": "wiersz nie podaje godziny",
"reasonMissingOffset": "godzina nie ma przesunięcia UTC, więc moment jest nieznany",
"reasonUnreadableTimestamp": "godzina nie ma formatu opisanego w dokumentacji eksportu",
"reasonImplausibleTimestamp": "godzina nie wskazuje rzeczywistego momentu albo leży w przyszłości",
"reasonMissingMedication": "wiersz nie nazywa żadnego leku",
"reasonUnreadableDosage": "dawka nie jest liczbą",
"reasonUnreadableRow": "wiersz ma mniej kolumn niż nagłówek",
"reasonStatusNoDoseInformation": "plik nie zapisuje nic o tej dawce — nikt nie odpowiedział i nic nie zostało zanotowane",
"reasonStatusReminderEvent": "wiersz dotyczy odłożonego przypomnienia, co nic nie mówi o dawce",
"reasonStatusNotificationNotSent": "wiersz zapisuje, że nie wysłano powiadomienia, co dotyczy aplikacji, a nie dawki"
}
},
"charts": {
"loadingLabel": "Ładowanie wykresu…",
"loadingSlowHint": "Obliczanie analiz — to może chwilę potrwać.",
"weight": "Waga",
"bloodPressure": "Ciśnienie tętnicze",
"pulse": "Tętno",
"bodyFat": "Tkanka tłuszczowa",
"sleep": "Sen",
"steps": "Kroki",
"hrv": "HRV",
"restingHeartRate": "Tętno spoczynkowe",
"activeEnergy": "Energia czynna",
"flights": "Pokonane piętra",
"distance": "Dystans marsz + bieg",
"vo2Max": "VO₂ max",
"bodyTemperature": "Temperatura ciała",
"noData": "Brak danych w wybranym okresie",
"bucketWeekly": "Średnia tygodniowa",
"bucketMonthly": "Średnia miesięczna",
"points7Label": "7 pkt",
"points7Title": "Ostatnie 7 punktów",
"points30Label": "30 pkt",
"points30Title": "Ostatnie 30 punktów",
"points90Label": "90 pkt",
"points90Title": "Ostatnie 90 punktów",
"pointsAllLabel": "Wszystkie",
"pointsAllTitle": "Wszystkie dostępne punkty",
"systolic": "Skurczowe",
"diastolic": "Rozkurczowe",
"bodyWater": "Woda w organizmie",
"boneMass": "Masa kostna",
"spo2": "SpO₂",
"movingAverage7d": "Trend 7-dniowy",
"avg7dShort": "7D",
"avg30dShort": "30D",
"trend7dShort": "Trend 7-dniowy",
"trend": "Trend",
"perWeek": "/tydzień",
"totalDelta": "Łącznie",
"colorGreen": "Zielony:",
"colorOrange": "Pomarańczowy:",
"colorRed": "Czerwony:",
"mood": "Nastrój",
"moodScore": "Wynik nastroju",
"weekdays": {
"mon": "Pon",
"wed": "Śr",
"fri": "Pt",
"sun": "Nd"
},
"months": {
"jan": "Sty",
"feb": "Lut",
"mar": "Mar",
"apr": "Kwi",
"may": "Maj",
"jun": "Cze",
"jul": "Lip",
"aug": "Sie",
"sep": "Wrz",
"oct": "Paź",
"nov": "Lis",
"dec": "Gru"
},
"heatmapOnTime": "na czas",
"heatmapLate": "spóźniona",
"heatmapVeryLate": "mocno spóźniona",
"legendOnTime": "Na czas",
"legendLate": "Spóźniona",
"legendVeryLate": "Mocno spóźniona",
"legendMissed": "Pominięta",
"emptyStateTitle": "Zarejestruj więcej pomiarów, aby zobaczyć trendy",
"emptyStateDescription": "Zarejestruj co najmniej 3 wpisy, aby odblokować linię trendu.",
"needMoreDistinctDaysTitle": "Potrzeba więcej różnych dni",
"needMoreDistinctDaysDescription": "Rejestruj w więcej dni, aby odblokować linię trendu.",
"noDataInRangeTitle": "Brak danych w tym zakresie",
"noDataInRangeDescription": "Żadne pomiary nie mieszczą się w wybranym zakresie. Zmień zakres lub dodaj nowy pomiar.",
"errorTitle": "Nie udało się załadować danych",
"loadErrorTitle": "Nie udało się załadować wykresu",
"loadErrorReload": "Załaduj ponownie",
"sparseDataCaption": "Więcej dni dopełni trend.",
"dataTable": {
"toggle": "Punkty danych ({count})",
"columnDate": "Data",
"noValue": "Brak wartości",
"captionDay": "Jeden wiersz na dzień dla {metric} — dokładnie te punkty, które rysuje wykres.",
"captionWeek": "Jeden wiersz na tydzień dla {metric}, średnia z dni tego tygodnia — dokładnie te punkty, które rysuje wykres.",
"captionMonth": "Jeden wiersz na miesiąc dla {metric}, średnia z dni tego miesiąca — dokładnie te punkty, które rysuje wykres."
},
"personalBaseline": "Twoja średnia",
"deltaVsBaseline": "{delta} vs. twoja średnia",
"deltaUnchanged": "odpowiada twojej średniej",
"deltaVsTarget": "{delta} vs. cel",
"weekdaysFull": {
"mon": "Poniedziałek",
"tue": "Wtorek",
"wed": "Środa",
"thu": "Czwartek",
"fri": "Piątek",
"sat": "Sobota",
"sun": "Niedziela"
},
"rangeBand": "Zakres",
"a11y": {
"summary": "Wykres {metric}. Zakres od {min} do {max}, ostatnio {latest}, trend {trend}.",
"noData": "Wykres {metric}. Brak dostępnych danych.",
"trendUp": "rosnący",
"trendDown": "malejący",
"trendFlat": "stały",
"scatterSummary": "Wykres korelacji, {count} punktów porównujących {xLabel} z {yLabel}.",
"scatterNoData": "Wykres korelacji {xLabel} i {yLabel}. Brak dostępnych danych.",
"moodHeatmap": "Mapa cieplna nastroju od {start} do {end}, zarejestrowano {days} dni.",
"moodHeatmapEmpty": "Mapa cieplna nastroju, brak zarejestrowanych dni.",
"complianceHeatmap": "Mapa cieplna przyjmowania leków od {start} do {end}, {days} aktywnych dni.",
"complianceHeatmapEmpty": "Mapa cieplna przyjmowania leków, brak aktywnych dni."
}
},
"chart": {
"overlay": {
"controls": {
"title": "Warstwy wykresu",
"trendIndicator": "Trend 7-dniowy",
"trendArrow": "Strzałka trendu",
"targetRange": "Zakres docelowy",
"comparisonBaseline": "Porównanie",
"comparisonUnavailable": "Brak dostępnego poprzedniego okresu",
"tooltip": {
"openSettings": "Ustawienia warstw wykresu"
}
}
}
},
"comparison": {
"toggleLabel": "Porównaj z",
"baseline": {
"none": "Wyłączone",
"lastMonth": "Poprzedni miesiąc",
"lastYear": "Poprzedni rok"
},
"captionLastMonth": "vs. poprzedni miesiąc",
"captionLastYear": "vs. poprzedni rok",
"deltaVs": {
"lastMonth": "{delta} vs. poprzedni miesiąc",
"lastYear": "{delta} vs. poprzedni rok"
},
"tooltipPrior": "Poprzedni okres",
"unavailable": {
"lastMonth": "Porównanie niedostępne — brak danych z poprzedniego miesiąca",
"lastYear": "Porównanie niedostępne — brak danych z poprzedniego roku"
},
"notAvailableForCompliance": "Porównanie niedostępne dla przestrzegania"
},
"insights": {
"pattern": {
"dismiss": "Odrzuć",
"dismissed": "Ten wzorzec pozostanie odrzucony, dopóki nie zmienią się dowody.",
"restore": "Pokaż ponownie",
"dismissError": "Nie udało się odrzucić tego wzorca.",
"restoreError": "Nie udało się przywrócić tego wzorca.",
"loadError": "Nie udało się wczytać wzorców.",
"empty": "Żaden aktualny wzorzec nie przekroczył progu dowodów."
},
"correlation": {
"direction": {
"higher": "wzrostu",
"lower": "spadku"
},
"weekdayDirection": {
"above": "powyżej",
"below": "poniżej"
},
"channelFactor": "ocena czynnika {factor}",
"channel": {
"WEIGHT": "waga",
"BLOOD_GLUCOSE": "poziom cukru we krwi",
"BLOOD_PRESSURE_SYS": "ciśnienie skurczowe",
"BLOOD_PRESSURE_DIA": "ciśnienie rozkurczowe",
"ACTIVITY_STEPS": "dzienna liczba kroków",
"SLEEP_DURATION": "długość snu",
"HEART_RATE_VARIABILITY": "zmienność rytmu serca",
"RESTING_HEART_RATE": "spoczynkowe tętno",
"TIME_IN_DAYLIGHT": "czas w świetle dziennym",
"MOOD": "nastrój",
"PULSE": "tętno spoczynkowe",
"MEDICATION_COMPLIANCE": "przyjmowanie leków",
"SYMPTOM_SEVERITY": "nasilenie objawów",
"ENV_TEMP_MEAN": "temperatura dobowa",
"ENV_TEMP_MIN": "nocna temperatura minimalna",
"ENV_SUNSHINE": "nasłonecznienie",
"ENV_DAYLIGHT": "światło dzienne",
"ENV_PRECIP": "opady",
"ENV_PRESSURE_MEAN": "ciśnienie atmosferyczne",
"ENV_PRESSURE_DELTA": "dobowa zmiana ciśnienia"
},
"daily": {
"high": "Gdy {behaviour} rośnie, {outcome} następnego dnia zwykle wykazuje tendencję do {direction} w Twoich danych — wzorzec wart obserwacji, nie przyczyna.",
"moderate": "Gdy {behaviour} rośnie, {outcome} następnego dnia wydaje się wykazywać tendencję do {direction}, na podstawie dostępnych danych — wzorzec wart obserwacji, nie przyczyna.",
"faint": "Gdy {behaviour} rośnie, w Twoich danych pojawia się co najwyżej słaba wskazówka, że {outcome} następnego dnia wykazuje tendencję do {direction} — zbyt słaba, by na niej polegać, nigdy przyczyna."
},
"lab": {
"default": "Wyższe wartości {lab} idą w parze z tym, że {outcome} wykazuje tendencję do {direction} w tych samych okresach w Twoich danych — zależność, którą warto obserwować z lekarzem, nigdy przyczyna.",
"faint": "Wyższe wartości {lab} co najwyżej słabo sugerują, że {outcome} wykazuje tendencję do {direction} w tych samych okresach w Twoich danych — zbyt słabo, by na tym polegać, zależność do omówienia z lekarzem, nigdy przyczyna."
},
"hypothesis": {
"bpCompliance": {
"support": "Lepsze przyjmowanie leków idzie w parze z niższymi wartościami skurczowymi — wzorzec wart obserwacji.",
"surprising": "Przyjmowanie leków i ciśnienie skurczowe zmieniają się razem w Twoich danych — zaskakujące; skonsultuj się z lekarzem, zanim coś zmienisz.",
"none": "Przyjmowanie leków i ciśnienie skurczowe nie zmieniają się wyraźnie razem w tym okresie."
},
"moodPulse": {
"support": "Dni z gorszym nastrojem idą w parze z wyższym tętnem spoczynkowym — wzorzec wart obserwacji.",
"surprising": "Dni z lepszym nastrojem idą w parze z wyższym tętnem spoczynkowym w Twoich danych — zaskakujące.",
"none": "Nastrój i tętno spoczynkowe nie zmieniają się wyraźnie razem w tym okresie."
},
"weightWeekday": "Waga w {weekday} jest {delta} kg {direction} Twojej średniej z pozostałych dni — wzorzec wart obserwacji."
}
},
"noAnalysisYet": "Brak oceny.",
"assessmentPreparing": "Przygotowywanie oceny…",
"emptyTitle": "Jeszcze za mało danych",
"emptyDescription": "Insights pojawią się, gdy zarejestrujesz kilka pomiarów. Zacznij od wagi lub ciśnienia.",
"emptyAddMeasurement": "Zarejestruj pomiar",
"editMode": {
"done": "Gotowe",
"reset": "Przywróć",
"resetTitle": "Zresetować przegląd?",
"resetBody": "Kolejność sekcji i ukryte sekcje wracają do ustawień domyślnych. Twój układ nie jest nigdzie indziej zapisany.",
"resetConfirm": "Zresetuj przegląd",
"title": "Dostosuj przegląd",
"description": "Przeciągnij, aby zmienić kolejność, dotknij oka, aby pokazać lub ukryć.",
"dragHandle": "Przeciągnij, aby zmienić kolejność",
"show": "Pokaż",
"hide": "Ukryj",
"manageInSettings": "Zarządzaj pigułkami i stronami szczegółów w ustawieniach",
"groupSleep": "Sen",
"groupMood": "Nastrój",
"groupEvents": "Zdarzenia",
"gatedHint": "Pojawi się, gdy dane lub funkcja będą dostępne",
"allHiddenHint": "Wszystkie sekcje są ukryte. Pokaż co najmniej jedną, aby zobaczyć przegląd.",
"saveSuccess": "Przegląd zapisany",
"saveError": "Nie udało się zapisać przeglądu",
"resetSuccess": "Przegląd przywrócony do ustawień domyślnych",
"emptyTitle": "Wszystkie karty są ukryte",
"emptyDescription": "Ukryto wszystkie sekcje. Otwórz Dostosuj, aby je ponownie pokazać."
},
"bmiEmptyTitle": "Dodaj wzrost, aby obliczyć BMI",
"bmiEmptyDescription": "BMI wymaga twojego wzrostu. Zapisz go w Ustawieniach → Konto.",
"bmiEmptyAction": "Otwórz ustawienia konta",
"noProviderConfigured": "Połącz dostawcę AI, aby zobaczyć tutaj ocenę swoich pomiarów.",
"noProviderAction": "Otwórz ustawienia AI",
"personalRecord": {
"badge": "PR",
"tooltip": "Rekord osobisty: {value} {unit} dnia {date}"
},
"recommendation": {
"source": "Źródło",
"viewSource": "Otwórz wytyczne w nowej karcie",
"rationaleWindow": "Okno",
"rationaleComparedTo": "W porównaniu z",
"rationaleDeviation": "Odchylenie",
"rationaleExpand": "Pokaż uzasadnienie",
"rationaleCollapse": "Ukryj uzasadnienie",
"feedbackHelpful": "Przydatne",
"feedbackNotHelpful": "Mało przydatne",
"feedbackThanks": "Dzięki za opinię",
"feedbackAlreadyRated": "Już ocenione",
"feedbackError": "Nie udało się zapisać opinii. Spróbuj ponownie.",
"confidenceAria": "Pewność: {value} na 100",
"confidenceLow": "Niska pewność — mało danych",
"confidenceDraft": "Wersja robocza"
},
"loadError": "Nie udało się załadować analiz",
"heroPersonalBaseline": "Na podstawie ostatnich 90 dni",
"heroRegenerating": "Generowanie",
"regenerateAnalysis": "Uruchom ocenę ponownie",
"regenerateSuccess": "Ocena wygenerowana ponownie",
"narrativeTitle": "Przegląd",
"narrativeWeek": "Ten tydzień",
"narrativeMonth": "Ten miesiąc",
"narrativeUpdating": "Aktualizowanie…",
"heroFallbackSubtitle": "Codzienne spojrzenie na twoje trendy — prosto z liczb, które rejestrujesz.",
"heroGreetingMorning": "Dzień dobry",
"heroGreetingAfternoon": "Dzień dobry",
"heroGreetingEvening": "Dobry wieczór",
"heroActionAskCoach": "Zapytaj coacha",
"healthScore": {
"label": "Wynik zdrowia",
"band": {
"green": "W zakresie referencyjnym",
"yellow": "Niektóre filary wymagają uwagi",
"red": "Co najmniej jeden filar jest poza zakresem referencyjnym"
},
"insufficient": "{count} z {required} obszarów zdrowia ma wystarczająco świeżych danych. Wynik potrzebuje {required}, w tym co najmniej jednego pomiaru fizycznego.",
"anatomyToggle": "Jak powstaje ten wynik",
"notScored": "Jeszcze bez oceny ({count})",
"method": "Wynik to średnia o równych wagach z filarów, które się do niego liczą, w skali od 0 do 100. Każdy filar jest porównywany z opublikowanym zakresem referencyjnym, a najsłabszy filar może wyznaczyć ogólny zakres. Filar bez wystarczających aktualnych danych jest pomijany, a nie liczony jako zero. Zakresy referencyjne pochodzą z opublikowanych źródeł; to ty decydujesz, które filary się liczą, więc łączna liczba sama w sobie nie jest standardem klinicznym.",
"bandSetter": "Ogólny zakres wyznacza {pillar}",
"versionAndNoise": "Wersja metody {version}. Próg porównania tygodniowego: {noise} pkt.",
"methodVersion": "Wersja metody {version}.",
"configured": "Wybrane przez Ciebie filary decydują o tym wyniku.",
"none": "brak",
"delta": "{delta} względem poprzedniego porównywalnego okresu",
"deltaReason": {
"algorithm_changed": "Brak porównania, ponieważ zmieniła się metoda obliczeń.",
"config_changed": "Brak porównania, ponieważ zmieniono, co wlicza się do wyniku.",
"composition_changed": "Brak porównania, ponieważ zmieniły się uwzględnione filary.",
"first_eligibility_window": "Brak porównania, ponieważ to pierwszy kwalifikujący się okres.",
"below_noise_floor": "Zmiana mieści się w łącznej zmienności pomiarów.",
"no_previous_window": "Brak wcześniejszego porównywalnego okresu.",
"no_current_score": "Brak porównania, ponieważ bieżący okres nie spełnia warunków."
},
"restMode": "Tryb odpoczynku aktywny od {since}. Wynik służy jako kontekst i nie jest obniżany.",
"pillar": {
"bloodPressure": "Ciśnienie krwi",
"glycaemia": "Glikemia",
"activity": "Aktywność",
"sleep": "Sen",
"adiposity": "Otłuszczenie",
"wellbeing": "Samopoczucie",
"lipids": "Lipidy"
},
"observed": "Zaobserwowano: {value}",
"reference": "Zakres referencyjny: {value}",
"fastingObserved": "Glukoza na czczo: {value} {unit}",
"fastingReference": "Od {low} do {high} {unit} na czczo",
"personalReference": "Twój cel: {value}",
"bpBasisAbove": "Decyduje: {axis}, około {offset} mmHg powyżej swojej granicy {boundary} mmHg.",
"bpBasisBelowFloor": "Decyduje: {axis}, około {offset} mmHg poniżej granicy niskiego ciśnienia {boundary} mmHg.",
"bpBasisInBand": "Obie wartości są na poziomie swoich granic referencyjnych lub poniżej.",
"bpScale": "Przy granicy wynik to 85; 100 oznacza około 12 mmHg poniżej.",
"bpRepresentative": "Opiera się na średniej z ostatnich {days} dni, która mocniej waży nowsze pomiary, więc może nie odpowiadać żadnemu pojedynczemu pomiarowi.",
"source": "Źródło: {source}, stan na {date}",
"observedActivity": "{value} kroków dziennie",
"observedSleep": "{value} minut na noc",
"observedAdiposity": "Stosunek obwodu talii do wzrostu {value}",
"referenceActivity": "Korzyść stabilizuje się przy {high} krokach dziennie",
"referenceSleep": "Co najmniej {low} minut na noc; dłuższy sen nie obniża wyniku",
"referenceAdiposity": "Stosunek obwodu talii do wzrostu poniżej {high}",
"referenceHba1c": "HbA1c od {low} do {high}%",
"referenceDetail": "{label} · {source} · {kind} · od {low} do {high}",
"openBound": "otwarty",
"laboratoryReferenceSource": "Zakresy referencyjne laboratorium",
"personalTargetSource": "Osobisty cel",
"referenceKind": {
"clinical": "Próg kliniczny",
"population": "Percentyl populacji",
"guideline": "Zakres wytycznych"
},
"reason": {
"readFailed": "Nie udało się wczytać danych",
"notTracked": "Brak pomiarów",
"missingProfile": "Brakuje wieku lub profilu referencyjnego",
"missingHeight": "Brakuje wzrostu",
"incompletePanel": "Potrzebny jest aktualny pełny panel z zakresami referencyjnymi",
"crisis": "Zamiast wyniku wyświetlane są wskazówki bezpieczeństwa",
"insufficientHistory": "Za mało aktualnych danych spełniających kryteria",
"unavailable": "Ten filar obecnie nie spełnia kryteriów"
},
"tension": "Sygnały gotowości są rozbieżne. Sprzyjające: {positive}. Obciążone: {negative}.",
"returnToBand": "{metric} od {days} dni ponownie mieści się w typowym zakresie.",
"weightGoal": {
"title": "Osobisty cel wagowy",
"value": "Obecnie {current} {unit}. Cel od {min} do {max} {unit}. Odległość od celu: {distance} {unit}.",
"delta": "Odległość od celu zmieniła się o {delta} {unit} od poprzedniego pomiaru.",
"noDelta": "Brak wcześniejszego pomiaru masy ciała do porównania.",
"no_personal_goal": "Ustaw osobisty cel wagowy, aby zobaczyć tutaj postęp.",
"weight_not_tracked": "Zapisz pomiar masy ciała, aby zobaczyć postęp w kierunku celu.",
"read_failed": "Nie udało się wczytać danych masy ciała. Spróbuj ponownie.",
"notScored": "Postęp celu wagowego jest osobistym kontekstem i nie wpływa na wynik zdrowia."
},
"configureLink": "Wybierz, co liczy się do Twojego wyniku",
"coverage": {
"minimumMet": "Pokrywa trzy obszary wymagane przez wynik",
"areas": "{present} z {required} obszarów zdrowia"
}
},
"suggestedPrompts": {
"label": "Zapytaj mnie",
"tellMyDoctor": "Co powinienem powiedzieć lekarzowi?",
"medicationWorking": "Czy mój lek działa?"
},
"dailyBriefing": {
"title": "Briefing dnia",
"keyFindingsTitle": "Kluczowe wnioski",
"signalsTitle": "Sygnały dnia",
"emptyTitle": "Jeszcze brak briefingu",
"emptyDescription": "Wygeneruj dzisiejszy briefing, aby zobaczyć podsumowanie trendów.",
"emptyAction": "Wygeneruj briefing",
"loadingLabel": "Przygotowanie briefingu",
"noProviderTitle": "Brak połączonego dostawcy AI",
"noProviderDescription": "Skieruj HealthLog na model lokalny (Ollama, LM Studio — nic nie opuszcza Twojej sieci) lub podaj własny klucz OpenAI albo Anthropic, a codzienne podsumowanie zamieni Twoje pomiary w zrozumiały opis — na przykład: „waga niższa o 1,2 kg w dwa tygodnie, tętno spoczynkowe stabilne na 58, ciśnienie w normie przez 6 z 7 dni”. Konfiguracja zajmuje około minuty.",
"noProviderAction": "Otwórz ustawienia AI",
"staleNoProviderHint": "Tego briefingu nie można odświeżyć — nie połączono żadnego dostawcy AI.",
"refreshFailedHint": "Nie udało się odświeżyć briefingu — pokazujemy poprzedni.",
"retryAction": "Spróbuj ponownie",
"failedTitle": "Nie udało się wygenerować briefingu",
"failedDescription": "Dostawca AI przekroczył limit czasu lub zwrócił błąd. Spróbuj ponownie albo zwiększ limit czasu odpowiedzi w ustawieniach AI dla wolnego modelu lokalnego.",
"failedDescriptionTimeout": "Żądanie AI przekroczyło limit czasu, zanim briefing był gotowy. W przypadku wolnego modelu lokalnego zwiększ limit czasu odpowiedzi w Ustawieniach i spróbuj ponownie.",
"failedDescriptionProvider": "Dostawca AI odrzucił żądanie. Sprawdź dostawcę i klucz API w ustawieniach AI, a następnie spróbuj ponownie.",
"failedDescriptionRateLimit": "Dostawca AI ogranicza teraz liczbę żądań. Spróbuj ponownie za chwilę.",
"omittedTitle": "Briefing wstrzymany",
"omittedUngroundedDescription": "Wygenerowany briefing zawierał liczbę, której nie udało się zweryfikować na podstawie Twoich danych, więc nie został wyświetlony. Spróbuj ponownie."
},
"trendsRow": {
"title": "Trendy",
"subtitle": "Ostatnie 30 dni w skrócie",
"caption": {
"bp": "Wartości skurczowe i rozkurczowe z ostatnich 30 dni.",
"weight": "Trend masy ciała z ostatnich 30 dni.",
"pulse": "Tętno spoczynkowe z ostatnich 30 dni.",
"mood": "Dzienna ocena nastroju z ostatnich 30 dni.",
"sleep": "Długość snu nocnego z ostatnich 30 dni.",
"steps": "Dzienna liczba kroków z ostatnich 30 dni.",
"hrv": "Zmienność rytmu serca z ostatnich 30 dni.",
"resting_hr": "Spoczynkowe tętno z ostatnich 30 dni.",
"active_energy": "Aktywnie spalona energia z ostatnich 30 dni.",
"flights": "Pokonane piętra z ostatnich 30 dni.",
"distance": "Dystans marszu i biegu z ostatnich 30 dni.",
"vo2_max": "VO₂ max z ostatnich 30 dni.",
"body_temp": "Temperatura ciała z ostatnich 30 dni."
},
"viewDetail": "Zobacz szczegóły: {metric}"
},
"vo2Max": {
"cardioLinkTitle": "Wydolność krążeniowa (VO₂ max)",
"cardioLinkBody": "VO₂ max to główna miara wydolności tlenowej. Pełny wykres i ocenę znajdziesz na osobnej stronie.",
"cardioLinkCta": "Otwórz wydolność krążeniową"
},
"trendAnnotation": {
"emptyBp": "Potrzeba więcej danych, aby skomentować ten trend.",
"emptyWeight": "Potrzeba więcej danych, aby skomentować ten trend.",
"emptyMood": "Potrzeba więcej danych, aby skomentować ten trend.",
"confidenceHigh": "Wysoka pewność",
"confidenceModerate": "Średnia pewność",
"confidenceLow": "Niska pewność",
"pendingLabel": "Komentarz trendu jest generowany"
},
"correlationRow": {
"title": "Korelacje",
"experimentCta": "Uruchom 7-dniowy eksperyment",
"experimentTooltip": "Wkrótce",
"emptyTitle": "Potrzeba więcej danych, aby pokazać tę korelację",
"sourceChip": "na podstawie {n} sparowanych pomiarów · {window}",
"sourceWindowLast30": "Ostatnie 30 dni",
"confidenceHigh": "Wysoka pewność",
"confidenceModerate": "Średnia pewność",
"confidenceLow": "Niska pewność",
"card": {
"bpComplianceTitle": "RR × przestrzeganie leków",
"bpComplianceSubtitle": "Dzienne skurczowe wobec % przestrzegania",
"moodPulseTitle": "Nastrój × tętno spoczynkowe",
"moodPulseSubtitle": "Nastrój i tętno spoczynkowe w tym samym dniu",
"weightWeekdayTitle": "Waga × dzień tygodnia",
"weightWeekdaySubtitle": "Waga pogrupowana wg dnia tygodnia"
}
},
"coach": {
"refusalOutOfScope": "Mogę pomóc tylko w sprawach danych zdrowotnych z twojego logu — pomiarów, leków, nastroju, trendów. Pytań spoza tego zakresu nie podejmuję.",
"refusalInjection": "Twoja wiadomość zawiera instrukcje, które próbują nadpisać moje wytyczne. Jestem coachem HealthLog i podsumowuję wyłącznie twoje własne dane zdrowotne — przeformułuj pytanie w tych ramach.",
"errorBudget": "Osiągnięto dzienny limit coacha. Limit resetuje się o północy (UTC).",
"errorProvider": "Coach nie mógł teraz skontaktować się z dostawcą analizy. Spróbuj za chwilę.",
"errorNoProvider": "Coach czyta Twoje zapisane dane zdrowotne i odpowiada na pytania o nie (to nie porada medyczna). HealthLog potrzebuje do tego dostawcy AI — połącz własny klucz lub model lokalny.",
"errorNoProviderAction": "Połącz dostawcę AI",
"errorNetwork": "Brak połączenia z Internetem — spróbuj ponownie, gdy wrócisz online.",
"prefsSaveError": "Nie udało się zapisać ustawień Coacha. Spróbuj ponownie.",
"errorCredentialExpired": "Połączenie z dostawcą AI wygasło. Połącz je ponownie w Ustawieniach, aby Coach działał dalej.",
"tagline": "Osobisty coach zdrowia, oparty na twoich danych.",
"newChat": "Nowa rozmowa",
"docScope": {
"badge": "Dokument",
"chattingAbout": "Rozmowa o: {title}",
"chattingAboutMore": "Rozmowa o: {titles} i {count} więcej",
"notIndexedHint": "Najpierw wczytaj ten dokument z pomocą AI w archiwum, aby Coach mógł na jego temat odpowiadać."
},
"actionsMenu": "Działania",
"maximizeAriaLabel": "Otwórz na pełnej stronie",
"minimizeAriaLabel": "Powrót do panelu",
"send": "Wyślij",
"stop": "Zatrzymaj",
"thinking": "Myślę…",
"unverifiedFiguresNotice": "Niektórych liczb nie udało się zweryfikować z Twoimi danymi, więc je pominięto.",
"composerPlaceholder": "Zapytaj mnie …",
"nudgeBubbleLabel": "Nowa wiadomość od trenera — otwórz czat",
"fabLabel": "Otwórz trenera",
"readAloud": "Czytaj na głos",
"readAloudStop": "Zatrzymaj czytanie",
"messageTimeLabel": "Wiadomość wysłana {time}",
"copyMessage": "Kopiuj",
"copyMessageError": "Nie udało się skopiować",
"regenerate": "Spróbuj ponownie",
"selfContextAdopt": {
"offer": "Dodać tę odpowiedź do Twoich informacji o sobie?",
"confirm": "Dodaj",
"dismiss": "Odrzuć",
"done": "Dodano do informacji o sobie",
"duplicate": "Już znajduje się w informacjach o sobie",
"failed": "Nie udało się dodać. Spróbuj ponownie."
},
"rememberMessage": {
"action": "Zapamiętaj",
"done": "Zapisano w informacjach o sobie",
"duplicate": "Już znajduje się w informacjach o sobie",
"failed": "Nie udało się zapisać. Spróbuj ponownie."
},
"guided": {
"offerTitle": "Coach ma {count} pytania do Ciebie",
"offerTitleOne": "Coach ma pytanie do Ciebie",
"offerBody": "Krótkie odpowiedzi doprecyzują Twoje informacje o sobie — jedno pytanie po drugim, tutaj na czacie.",
"offerStart": "Odpowiedz teraz",
"offerLater": "Później",
"offerDismiss": "Nie pytaj więcej",
"dismissError": "Nie udało się odrzucić pytań. Spróbuj ponownie.",
"progress": "Pytanie {current} z {total}",
"skip": "Pomiń",
"later": "Później",
"dismissRemaining": "Nie pytaj więcej",
"answerPlaceholder": "Twoja odpowiedź…",
"summaryTitle": "Gotowe — dzięki za odpowiedzi!",
"summaryAnswered": "odpowiedziano na {answered} z {total}",
"summaryAdopted": "{adopted} dodano do informacji o sobie",
"summaryAdoptedNone": "nie dodano nic nowego do informacji o sobie",
"summaryLink": "Zobacz informacje o sobie"
},
"threadEmpty": "Zapytaj o swoje trendy, leki lub pomiary, aby zacząć.",
"historyTitle": "Rozmowy",
"historySearchPlaceholder": "Szukaj w rozmowach…",
"historyEmpty": "Twoje rozmowy pojawią się tutaj. Zadaj pytanie, aby zacząć.",
"historyDeleteAria": "Usuń rozmowę",
"historyDeleted": "Rozmowa usunięta",
"rename": {
"action": "Zmień nazwę rozmowy",
"input": "Tytuł rozmowy",
"save": "Zapisz tytuł",
"cancel": "Anuluj zmianę nazwy",
"error": "Nie udało się zapisać tytułu rozmowy."
},
"historySearchEmpty": "Żadna rozmowa nie pasuje do wyszukiwania.",
"historyLoadingMore": "Wczytywanie…",
"sourcesTitle": "Do czego mam dostęp",
"sourcesFresh": "Aktualne",
"sourcesStale": "Nieaktualne",
"sourcesFooter": "Coach czyta tylko dane, które podłączyłeś.",
"evidenceLabel": "Na czym to się opiera?",
"metric": {
"bp": "Ciśnienie krwi",
"weight": "Waga",
"pulse": "Tętno",
"mood": "Nastrój",
"compliance": "Przestrzeganie zaleceń",
"general": "Ogólne",
"hrv": "HRV",
"sleep": "Sen",
"resting_hr": "Tętno spoczynkowe",
"steps": "Kroki",
"active_energy": "Aktywna energia",
"flights": "Piętra",
"distance": "Dystans",
"vo2_max": "VO₂ max",
"body_temp": "Temperatura ciała",
"medications": "Leki",
"anthropometrics": "Profil (wzrost, wiek, płeć)",
"walking_hr": "Tętno podczas chodzenia",
"respiratory_rate": "Częstość oddechów",
"spo2": "Saturacja krwi",
"pulse_wave_velocity": "Prędkość fali tętna",
"vascular_age": "Wiek naczyniowy",
"body_fat": "Tkanka tłuszczowa",
"fat_mass": "Masa tłuszczowa",
"fat_free_mass": "Masa beztłuszczowa",
"muscle_mass": "Masa mięśniowa",
"lean_body_mass": "Beztłuszczowa masa ciała",
"bone_mass": "Masa kostna",
"total_body_water": "Woda w organizmie",
"bmi": "BMI",
"visceral_fat": "Tłuszcz trzewny",
"glucose": "Glukoza",
"walking_steadiness": "Stabilność chodu",
"walking_asymmetry": "Asymetria chodu",
"walking_double_support": "Czas podwójnego podparcia",
"walking_step_length": "Długość kroku",
"walking_speed": "Prędkość chodu",
"audio_env": "Dźwięk otoczenia",
"audio_headphone": "Dźwięk słuchawek",
"audio_event": "Zdarzenia głośnego dźwięku",
"daylight": "Czas w świetle dziennym",
"skin_temp": "Temperatura skóry",
"workouts": "Treningi"
},
"window": {
"last7days": "Ostatnie 7 dni",
"last30days": "Ostatnie 30 dni",
"last90days": "Ostatnie 90 dni",
"lastYear": "od początku roku",
"allTime": "Cały okres"
},
"windowLabel": "Okres",
"settingsAriaLabel": "Ustawienia coacha",
"settingsTitle": "Ustawienia coacha",
"settingsDescription": "Ustaw, jak coach do ciebie mówi.",
"settingsToneLabel": "Ton",
"settingsToneWarm": "Ciepły",
"settingsToneNeutral": "Neutralny",
"settingsToneConcise": "Zwięzły",
"settingsVerbosityLabel": "Długość odpowiedzi",
"settingsVerbosityBrief": "Krótka",
"settingsVerbosityDefault": "Standardowa",
"settingsVerbosityDetailed": "Szczegółowa",
"settingsSourcesPointer": "Tym, z jakich grup danych może korzystać coach, oraz domyślnym oknem analizy zarządzasz bezpośrednio w czacie coacha (panel „Z czego korzystam”).",
"settingsSourcesPointerLink": "Otwórz coacha",
"settingsExcludeLabel": "Wyklucz metryki",
"settingsExcludeHint": "Coach nie zobaczy danych wybranych metryk.",
"settingsContextLabel": "Wysyłaj kontekst",
"settingsContextHint": "Opcjonalne bloki, na których coach może się opierać. Wyłączenie pominie blok w każdej odpowiedzi.",
"settingsEvidenceLabel": "Pokazuj dowody domyślnie",
"settingsEvidenceHint": "Automatycznie otwiera pole dowodów pod każdą odpowiedzią.",
"settingsDefaultWindowLabel": "Domyślny okres analizy",
"settingsDefaultWindowHint": "Coach czyta ten okres na rozmowę, chyba że wybierzesz inny w nagłówku panelu.",
"settingsSave": "Zapisz",
"settingsSaved": "Zapisano.",
"settingsCancel": "Anuluj",
"feedbackHelpful": "Przydatne",
"feedbackUnhelpful": "Mało przydatne",
"feedbackThanks": "Dzięki za sygnał.",
"feedbackError": "Nie udało się zapisać opinii",
"dailyLimitTitle": "Osiągnięto dzienny limit",
"dailyLimitBody": "Osiągnięto dzienny limit. Limit resetuje się o północy (UTC).",
"providerRateLimitTitle": "Dostawca z ograniczeniem",
"providerRateLimitBody": "Dostawca jest tymczasowo przeciążony; reset za ~5 min.",
"cluster": {
"cardio": {
"label": "Sercowo-naczyniowe",
"hint": "Ciśnienie · tętno · HRV · tętno spoczynkowe i marszowe"
},
"body": {
"label": "Skład ciała",
"hint": "Waga · tłuszcz · mięśnie · BMI"
},
"activity": {
"label": "Aktywność",
"hint": "Kroki · energia · dystans · VO₂ max"
},
"workouts": {
"label": "Treningi",
"hint": "Biegi · przejażdżki · sesje"
},
"sleep": {
"label": "Sen",
"hint": "Czas trwania · fazy"
},
"mood": {
"label": "Nastrój",
"hint": "Codzienne wpisy nastroju"
},
"glucose": {
"label": "Glukoza",
"hint": "Pomiary na czczo i poposiłkowe"
},
"medication": {
"label": "Leki",
"hint": "Przestrzeganie · kontekst GLP-1"
},
"mobility": {
"label": "Mobilność i chód",
"hint": "Stabilność · asymetria · chód"
},
"environment": {
"label": "Środowisko",
"hint": "Hałas · światło · temp. skóry"
}
},
"settingsClustersLabel": "Dane widziane przez Coacha",
"settingsClustersHint": "Wybierz, które grupy danych Coach może czytać. Więcej danych to bogatsze odpowiedzi i większy prompt.",
"settingsClusterNoData": "Brak danych",
"sourcesMemberCount": "{count} wskaźników",
"showConversations": "Pokaż rozmowy",
"hideConversations": "Ukryj rozmowy",
"heroGreeting": "Zapytaj mnie o cokolwiek na temat twoich danych",
"heroSubline": "Zapytaj o swoje trendy, leki lub pomiary.",
"thinkingElapsed": "{seconds}s",
"thinkingDuration": "Myślał przez {seconds}s",
"thinkingExpandAria": "Pokaż, co Coach wziął pod uwagę",
"thinkingDetail": "Odpowiedź na podstawie Twojego podsumowania zdrowia.",
"tokensUsed": "{count} tokenów",
"tokensUsedWithModel": "{count} tokenów · {model}",
"askAboutThis": "Zapytaj trenera o to",
"readStrip": {
"label": "Typowy zakres",
"baselineWithin": "Twój zwykły zakres to {low}–{high} {unit}; dzisiejsza wartość {value} mieści się w nim.",
"baselineAbove": "Twój zwykły zakres to {low}–{high} {unit}; dzisiejsza wartość {value} jest powyżej niego.",
"baselineBelow": "Twój zwykły zakres to {low}–{high} {unit}; dzisiejsza wartość {value} jest poniżej niego.",
"insufficient": "Wciąż poznaję twój zwykły zakres — rejestruj jeszcze przez kilka dni.",
"driver": "{note}"
},
"scope": {
"prefix": "Coach jest już przy {metric}",
"tap": "Dotknij, aby zapytać",
"question": "Wytłumacz mi tę wartość — na co powinienem zwrócić uwagę?"
},
"seeded": {
"prefix": "Dziś warto rzucić okiem: {signal}",
"signal": {
"readiness": "gotowość",
"recovery": "regeneracja"
},
"question": {
"readiness": "Moja gotowość jest dziś nietypowa — z czego to wynika?",
"recovery": "Moja regeneracja się zmieniła — co za tym stoi?"
},
"dismiss": "Odrzuć"
},
"settings": "Ustawienia",
"history": {
"groupToday": "Dziś",
"groupYesterday": "Wczoraj",
"groupThisWeek": "W tym tygodniu",
"groupEarlier": "Wcześniej"
},
"seed": {
"bloodPressure": "Przejdź ze mną przez trend mojego ciśnienia krwi z ostatnich 30 dni — czy jest coś, na co powinienem zwrócić uwagę?",
"weight": "Jak zmieniała się ostatnio moja waga i czy ten kierunek wymaga reakcji?",
"bmi": "Co mówi mi mój trend BMI i jak powinienem go odczytywać?",
"pulse": "Przejdź ze mną przez moje odczyty tętna — czy coś odbiega od normy?",
"restingHr": "Jak zmieniało się moje tętno spoczynkowe i co mówi o mojej kondycji?",
"hrv": "Co moja zmienność rytmu serca mówi mi o regeneracji i stresie w ostatnim czasie?",
"sleep": "Przejdź ze mną przez mój ostatni sen — długość, regularność i wszystko, co warto zmienić.",
"mood": "Jakie wzorce widzisz w moim nastroju w ciągu ostatnich kilku tygodni?",
"medications": "Jak wygląda moje przestrzeganie zaleceń lekowych i czy pokrywa się z tym, jak się czułem?",
"steps": "Jak aktywny byłem ostatnio na podstawie moich kroków i jak wypada to na tle zdrowego punktu odniesienia?",
"activeEnergy": "Co mój trend aktywnej energii mówi o moim poziomie aktywności w ostatnim czasie?",
"cardioFitness": "Co oznacza trend mojej wydolności krążeniowo-oddechowej (VO₂ max) i jak skierować go we właściwą stronę?",
"bloodGlucose": "Przejdź ze mną przez moje ostatnie odczyty glukozy — czy mieszczą się w zdrowym zakresie?",
"oxygenSaturation": "Co mówi mi mój trend saturacji krwi tlenem (SpO₂)?",
"respiratoryRate": "Co mój trend częstości oddechów mówi o moim zdrowiu?",
"workouts": "Przejdź ze mną przez moje ostatnie treningi — obciążenie, częstotliwość i jak regeneruję się między nimi.",
"recoveryPage": "Dlaczego moja regeneracja jest teraz na takim poziomie i co na nią wpływa?",
"briefing": "Przejdź ze mną przez dzisiejszy briefing — na czym powinienem się skupić i czy jest coś, co warto podjąć?",
"healthScore": "Dlaczego mój wynik zdrowia wynosi {score} na 100 i co poprawiłoby go najbardziej?",
"periodWeek": "Przejdź ze mną przez to, jak minął mój ostatni tydzień w moich wskaźnikach zdrowia — co się wyróżnia?",
"periodMonth": "Przejdź ze mną przez to, jak minął mój ostatni miesiąc w moich wskaźnikach zdrowia — co się wyróżnia?",
"correlationBpCompliance": "Jak moje przestrzeganie zaleceń lekowych wiąże się z moim ciśnieniem krwi? Wyjaśnij mi, co ta korelacja oznacza dla mnie.",
"correlationMoodPulse": "Czy istnieje rzeczywisty związek między moim nastrojem a tętnem? Pomóż mi odczytać tę korelację.",
"correlationWeightWeekday": "Czy moja waga podlega cotygodniowemu wzorcowi? Co mówi mi ta korelacja według dnia tygodnia?",
"recommendation": "Powiedz mi więcej o tej rekomendacji: \"{text}\" — dlaczego mnie dotyczy i co powinienem z nią zrobić?"
},
"assessmentPrompt": "Wyjaśnij mi moją ocenę {metric} — co oznacza i co powinienem z tym zrobić?",
"attach": {
"menuChooseFromDocuments": "Wybierz z dokumentów",
"menuUploadNew": "Prześlij nowy dokument",
"trigger": "Załącz dokumenty",
"pickerTitle": "Załącz dokumenty",
"pickerDescription": "Coach czyta tylko załączone dokumenty, a nie Twoje dane zdrowotne.",
"pickerSearchPlaceholder": "Szukaj dokumentów…",
"pickerEmpty": "Nie masz jeszcze dokumentów w archiwum.",
"pickerNotIndexed": "Jeszcze nie zindeksowano",
"pickerCap": "Możesz załączyć jeszcze do {max}.",
"pickerConfirm": "Załącz ({count})",
"pillRemove": "Usuń {title}",
"indexing": "Indeksowanie…",
"indexingHint": "Dokument jest jeszcze indeksowany – wyślesz, gdy będzie gotowy.",
"fencedHint": "Ta rozmowa działa bez dostępu do Twoich danych zdrowotnych – coach czyta tylko załączone dokumenty.",
"documentsAttachedOne": "1 załączony dokument",
"documentsAttachedOther": "Załączone dokumenty: {count}",
"railBadge": "Odizolowany czat dokumentu",
"uploadError": "Przesyłanie nie powiodło się. Spróbuj ponownie.",
"notFoundError": "Ten link do dokumentu jest już nieprawidłowy – zamiast tego rozpoczynamy zwykły czat."
}
},
"relativeJustNow": "przed chwilą",
"relativeMinutesAgoOne": "{count} minutę temu",
"relativeMinutesAgoOther": "{count} minut temu",
"relativeMinutesAgoFew": "{count} minuty temu",
"relativeHoursAgoOne": "{count} godzinę temu",
"relativeHoursAgoOther": "{count} godzin temu",
"relativeHoursAgoFew": "{count} godziny temu",
"relativeDaysAgoOne": "{count} dzień temu",
"relativeDaysAgoOther": "{count} dni temu",
"relativeDaysAgoFew": "{count} dni temu",
"navOverview": "Przegląd",
"navCatalog": "Wszystkie metryki",
"navBloodPressure": "Ciśnienie krwi",
"navWeight": "Waga",
"navPulse": "Tętno",
"navMood": "Nastrój",
"navMedication": "Lek",
"navNutrients": "Składniki odżywcze",
"navBmi": "BMI",
"navSleep": "Sen",
"navHrv": "HRV",
"navRestingHr": "Tętno spoczynkowe",
"navOxygenSaturation": "Tlen",
"navBodyTemperature": "Temperatura",
"navSteps": "Kroki",
"navActiveEnergy": "Energia czynna",
"navAriaLabel": "Przejdź do sekcji",
"pillScrollLeft": "Przewiń karty w lewo",
"pillScrollRight": "Przewiń karty w prawo",
"tabStrip": {
"vitalsParent": {
"label": "Witalne",
"header": "Parametry witalne"
},
"bodyParent": {
"label": "Ciało",
"header": "Skład ciała"
},
"activityParent": {
"label": "Aktywność",
"header": "Aktywność i mobilność"
},
"heartParent": {
"label": "Serce",
"header": "Zdrowie serca"
},
"hearingParent": {
"label": "Słuch",
"header": "Słuch i ekspozycja na dźwięk"
},
"environmentParent": {
"label": "Środowisko",
"header": "Środowisko"
},
"metabolicParent": {
"label": "Metaboliczne",
"header": "Metaboliczne"
}
},
"hrv": {
"title": "HRV",
"description": "Zmienność rytmu serca w czasie — sygnał regeneracji układu nerwowego, rejestrowany nocą przez Apple Watch i inne zgodne wearable.",
"chartTitle": "Zmienność rytmu serca",
"emptyState": {
"title": "Brak wartości HRV",
"description": "Wartości HRV pojawią się tutaj, gdy Apple Watch (lub zgodne urządzenie Withings) zsynchronizuje pomiary nocne."
}
},
"restingHr": {
"title": "Tętno spoczynkowe",
"description": "Dzienna linia bazowa rytmu serca — różna od tętna punktowego na stronie Pulse. Apple Zdrowie podaje jedną wartość na dobę.",
"chartTitle": "Tętno spoczynkowe",
"emptyState": {
"title": "Brak tętna spoczynkowego",
"description": "Tętno spoczynkowe pojawi się, gdy Apple Watch lub zgodne urządzenie Withings spędzi spokojny dzień na nadgarstku."
},
"coachPrefill": "Nie zarejestrowałem jeszcze tętna spoczynkowego — dlaczego dzienna wartość spoczynkowa różni się od pojedynczego pomiaru tętna i jak ją poprawić?"
},
"oxygenSaturation": {
"title": "Saturacja tlenu",
"description": "Tlen we krwi (SpO₂) — kliniczny zakres normy 95–100 %, ze strefami docelowymi zacienionymi na wykresie.",
"chartTitle": "Saturacja tlenu",
"emptyState": {
"title": "Brak próbek SpO₂",
"description": "Próbki SpO₂ trafią tutaj, gdy zgodne wearable (Apple Watch, Withings ScanWatch) wykona pomiar."
}
},
"bodyTemperature": {
"title": "Temperatura ciała",
"description": "Trend temperatury rdzenia ciała w stopniach Celsjusza. Temperatura skóry z Withings działa na osobnej metryce.",
"chartTitle": "Temperatura ciała",
"emptyState": {
"title": "Brak temperatury ciała",
"description": "Zarejestruj pomiar lub pozwól wearable zsynchronizować jeden — trend pojawi się tutaj.",
"cta": "Zarejestruj temperaturę ciała"
}
},
"steps": {
"title": "Kroki",
"description": "Dzienna liczba kroków — jeden wiersz na dobę, z Apple Zdrowie lub podłączonego urządzenia aktywności.",
"chartTitle": "Kroki dziennie",
"emptyState": {
"title": "Brak danych o krokach",
"description": "Dzienne sumy kroków pojawią się tutaj, gdy Apple Zdrowie lub urządzenie aktywności zsynchronizuje pełny dzień."
}
},
"activeEnergy": {
"title": "Energia czynna",
"description": "Dzienna suma energii czynnej w kilokaloriach — jeden wiersz na dobę, z Apple Zdrowie lub aktywności Withings.",
"chartTitle": "Energia czynna",
"emptyState": {
"title": "Brak danych o energii czynnej",
"description": "Sumy energii czynnej pojawią się tutaj, gdy Apple Zdrowie lub urządzenie Withings zsynchronizuje pełny dzień."
}
},
"subPage": {
"loadError": "Nie udało się teraz wczytać tej metryki.",
"blutdruckDescription": "Twój przebieg skurczowego/rozkurczowego z zakresami docelowymi dopasowanymi do wieku i oceną tekstową.",
"gewichtDescription": "Przebieg wagi na tle zdrowego pasma wyliczonego z twojego wzrostu, z oceną.",
"pulsDescription": "Resting pulse vs. the personalised Karvonen target band, plus a written assessment.",
"stimmungDescription": "Dzienne wartości nastroju w czasie wraz z oceną tekstową.",
"medikamenteDescription": "Kalendarz przyjęć dla każdego leku plus ocena tekstowa.",
"bmiDescription": "BMI obliczone z twojej wagi i wzrostu, z oceną.",
"target": {
"adjustLink": "Dostosuj zakres docelowy"
},
"explainer": {
"bloodPressureBody": "Ciśnienie krwi to siła, z jaką krew napiera na ściany tętnic, zapisywana jako skurczowe do rozkurczowego (szczyt podczas uderzenia serca do wartości spoczynkowej między uderzeniami). Stale wysokie wartości z czasem obciążają serce i naczynia.",
"pulseBody": "Tętno to liczba uderzeń serca na minutę. Pojedynczy pomiar odzwierciedla to, co robiłeś w danej chwili — w spoczynku wynosi zwykle 60–100 uderzeń na minutę i naturalnie rośnie przy ruchu, stresie lub kofeinie.",
"weightBody": "Masa ciała to jeden z najprostszych sygnałów długoterminowego bilansu energetycznego i ogólnego zdrowia. Trend na przestrzeni tygodni liczy się znacznie bardziej niż pojedynczy odczyt, który zmienia się wraz z nawodnieniem, jedzeniem i porą dnia.",
"bmiBody": "BMI to waga podzielona przez wzrost do kwadratu — jedna liczba przypisująca Cię do szerokiej kategorii wagowej. To badanie przesiewowe dla populacji, a nie diagnoza, i nie odróżnia mięśni od tłuszczu.",
"sleepBody": "Długość snu to czas, który faktycznie przespałeś w nocy, podzielony na fazy lekką, głęboką i REM. Większość dorosłych potrzebuje około siedmiu do dziewięciu godzin; stała ilość i jakość wspierają regenerację, nastrój i metabolizm.",
"moodBody": "Śledzenie nastroju rejestruje Twoje samopoczucie w czasie na prostej skali. Regularne zapisywanie ujawnia wzorce — jak sen, aktywność czy leki łączą się z samopoczuciem — których pojedynczy dzień nigdy nie pokaże.",
"medicationsBody": "Przestrzeganie zaleceń to rzetelność przyjmowania leków zgodnie z zaleceniami, pokazana tu jako odsetek oczekiwanych dawek, które zarejestrowałeś. Regularne przyjmowanie często decyduje o tym, czy terapia działa zgodnie z zamierzeniem.",
"restingHrBody": "Tętno spoczynkowe to częstość uderzeń serca w pełnym spoczynku, zwykle mierzona w nocy. Niższe tętno zwykle wskazuje na lepszą wydolność krążeniową, a rosnący trend może być wczesnym sygnałem stresu lub choroby.",
"hrvBody": "HRV to drobna zmienność czasu między kolejnymi uderzeniami serca. Wyższa zmienność zwykle odzwierciedla dobrze zregenerowany, elastyczny układ nerwowy, a utrzymujący się spadek może sygnalizować zmęczenie, stres lub niewystarczającą regenerację.",
"oxygenSaturationBody": "SpO₂ to odsetek czerwonych krwinek przenoszących tlen. Wartości 95–100% są normalne w spoczynku; wartości utrzymujące się poniżej 90% wymagają uwagi, choć krótkie nocne spadki są częste.",
"bodyTemperatureBody": "Temperatura ciała odzwierciedla stan cieplny rdzenia, zwykle około 37 °C z niewielkimi dobowymi wahaniami. Utrzymujący się wzrost może wskazywać na infekcję, podczas gdy nocne pomiary na nadgarstku śledzą głównie zmiany względne, a nie wartość kliniczną.",
"activeEnergyBody": "Energia aktywna to kalorie spalane przez ruch, ponad podstawowy wydatek w spoczynku. To bezpośrednia miara tego, jak aktywny fizycznie był Twój dzień.",
"workoutsBody": "Treningi to ustrukturyzowane sesje ćwiczeń rejestrowane przez Twoje urządzenia, wraz z typem, czasem trwania i energią. Ich śledzenie pokazuje, jak regularny trening kumuluje się przez tygodnie i jak wiąże się z innymi sygnałami zdrowotnymi.",
"respiratoryRateBody": "Częstość oddechów to liczba wdechów na minutę. W spoczynku większość dorosłych oddycha około dwunastu do dwudziestu razy na minutę; utrzymujący się wzrost może towarzyszyć chorobie, wysiłkowi lub stresowi.",
"bodyWaterBody": "Całkowita woda w organizmie to udział płynów w masie ciała, wewnątrz i wokół komórek. Zmienia się wraz z nawodnieniem, posiłkami i aktywnością, więc trend w ciągu tygodni mówi więcej niż pojedynczy pomiar.",
"boneMassBody": "Masa kostna to szacowana waga minerałów w szkielecie. Pomiary z wagi są przybliżone, ale stabilny lub rosnący trend sprzyja długotrwałej wytrzymałości kości.",
"fatFreeMassBody": "Masa beztłuszczowa to wszystko w ciele, co nie jest tłuszczem — mięśnie, kości, narządy i woda. Utrzymanie lub jej budowanie przy spadku wagi zwykle wskazuje na zdrowszy skład ciała.",
"fatMassBody": "Masa tłuszczowa to łączna waga tłuszczu w ciele. Pewna ilość tłuszczu jest niezbędna dla hormonów i magazynowania energii, ale jego nadmiar — zwłaszcza w okolicy brzucha — zwiększa długoterminowe ryzyko zdrowotne (WHO 2024).",
"muscleMassBody": "Masa mięśniowa to szacowana waga mięśni w ciele. Więcej mięśni wspiera siłę, metabolizm i sprawność, a ich utrzymanie z wiekiem zwykle wymaga aktywnego wysiłku.",
"visceralFatBody": "Tłuszcz trzewny to tłuszcz gromadzony głęboko w jamie brzusznej wokół narządów. W odróżnieniu od tłuszczu podskórnego jego wysoki poziom jest ściśle powiązany z chorobami serca i cukrzycą typu 2 (AHA, Circulation 2021), więc im niżej, tym lepiej. Skala pokazuje wartość bezjednostkową (mniej więcej 1–12 to zakres zdrowy, 13 i więcej to wartość podwyższona); to inna skala niż progi w cm² z badań obrazowych stosowane przez klinicystów i nie należy jej traktować z nimi zamiennie.",
"leanBodyMassBody": "Beztłuszczowa masa ciała to całkowita waga pomniejszona o tłuszcz — mięśnie, kości, narządy i woda razem. Śledzenie jej obok wagi pokazuje, czy zmiany wynikają z mięśni, czy z tłuszczu.",
"flightsClimbedBody": "Pokonane piętra liczą kondygnacje, które pokonujesz w górę każdego dnia, gdzie jedno piętro to około trzech metrów wzniesienia. To prosty wskaźnik codziennej aktywności i wysiłku nóg.",
"walkingDistanceBody": "Dystans marszu i biegu to droga, jaką pokonujesz pieszo każdego dnia. Uzupełnia liczbę kroków, pokazując, jak daleko się poruszałeś, a nie tylko jak często stawiałeś kroki.",
"walkingSteadinessBody": "Stabilność chodu szacuje, jak stabilny i zrównoważony jest twój sposób chodzenia, w skali od dobrej do niskiej. Niski poziom wskazuje na większe ryzyko upadku i warto omówić go z lekarzem.",
"walkingHeartRateBody": "Tętno podczas chodzenia to średni puls w trakcie równego marszu. Niższa wartość w czasie często odzwierciedla poprawę wydolności krążeniowej przy tym samym wysiłku.",
"walkingAsymmetryBody": "Asymetria chodu to odsetek czasu, w którym kroki są nierówne między lewą a prawą nogą. Wyższy procent może wskazywać na ból, kontuzję lub problem z chodem wart sprawdzenia.",
"doubleSupportTimeBody": "Czas podwójnego podparcia to udział każdego cyklu chodu, w którym obie stopy dotykają ziemi jednocześnie. Wyższy procent zwykle oznacza ostrożniejszy, mniej stabilny chód.",
"stepLengthBody": "Długość kroku to średnia odległość od jednego postawienia stopy do następnego. Krótszy krok w czasie może odzwierciedlać zmęczenie, ostrożność lub zmianę sprawności ruchowej.",
"walkingSpeedBody": "Prędkość chodu to tempo poruszania się po płaskim terenie. To dobrze zbadany wskaźnik ogólnego zdrowia i sprawności, a stałe lub rosnące tempo to dobry znak.",
"pulseWaveVelocityBody": "Prędkość fali tętna mierzy, jak szybko fala ciśnienia z każdego uderzenia serca przemieszcza się przez tętnice. Szybsza fala wskazuje na sztywniejsze tętnice, co wiąże się z wyższym ryzykiem sercowo-naczyniowym.",
"vascularAgeBody": "Wiek naczyniowy szacuje, jak stare zachowują się twoje tętnice w porównaniu z rzeczywistym wiekiem, na podstawie sztywności tętnic. Wiek naczyniowy niższy od rzeczywistego sugeruje zdrowsze naczynia krwionośne.",
"environmentalAudioBody": "Poziom dźwięku otoczenia śledzi głośność otoczenia w decybelach. Długotrwała ekspozycja powyżej około 70 dB może z czasem uszkodzić słuch, więc niższe średnie dzienne są bezpieczniejsze.",
"headphoneAudioBody": "Poziom dźwięku w słuchawkach śledzi w decybelach, jak głośno słuchasz przez słuchawki. Ściszanie głośności i robienie przerw chroni słuch w dłuższej perspektywie.",
"audioEventsBody": "Zdarzenia głośnego dźwięku oznaczają momenty, gdy hałas wokół ciebie osiągnął poziom mogący przy wystarczającej ekspozycji uszkodzić słuch. Częste zdarzenia to sygnał, by poszukać cichszego otoczenia lub ochrony słuchu.",
"daylightBody": "Czas w świetle dziennym to ilość czasu spędzanego w świetle na zewnątrz każdego dnia. Regularne światło dzienne wspiera zdrowy rytm snu i czuwania oraz nastrój (CDC 2024), a czas na świeżym powietrzu wiąże się ze zdrowiem oczu.",
"bloodGlucoseBody": "Poziom glukozy we krwi to ilość cukru we krwi, głównego źródła energii organizmu. Rośnie po jedzeniu i ustala się między posiłkami; wartości utrzymujące się wysoko mogą sygnalizować cukrzycę lub stan przedcukrzycowy.",
"skinTemperatureBody": "Temperatura skóry to tutaj niewielka nocna zmiana temperatury nadgarstka względem twojej własnej wartości bazowej, a nie bezwzględny pomiar gorączki. Zmiany mogą odzwierciedlać sen, otoczenie, chorobę lub fazę cyklu menstruacyjnego.",
"cardioFitnessBody": "VO₂ max to ilość tlenu, jaką organizm potrafi wykorzystać przy maksymalnym wysiłku — najlepszy laboratoryjny wskaźnik wydolności tlenowej, który urządzenia noszone szacują pośrednio. Dla orientacji: sprawność fizyczna jest stopniowanym predyktorem przeżycia — każdy dodatkowy MET (około 3,5 ml/kg/min) wiąże się z mniej więcej 10–25 % niższą śmiertelnością (AHA, Circulation 2016). Wyższy lub rosnący trend to mocny sygnał dobrego zdrowia układu krążenia.",
"cardioRecoveryBody": "Regeneracja serca to liczba uderzeń na minutę, o jaką spada tętno w pierwszej minucie po zakończeniu intensywnego wysiłku. Większy spadek oznacza, że serce szybciej się uspokaja, co świadczy o dobrej kondycji.",
"wristTemperatureBody": "Temperatura nadgarstka jest mierzona podczas snu i podawana jako różnica względem Twojej wartości bazowej, a nie jako wartość bezwzględna. Stabilny odczyt jest normalny, a utrzymujący się wzrost może wskazywać na chorobę, intensywny trening lub zmianę cyklu.",
"fallsBody": "Tutaj liczone są poważne upadki wykryte przez urządzenie noszone. Celem jest zero; rosnąca liczba to sygnał ryzyka związanego z mobilnością, który warto omówić z lekarzem, zwłaszcza u osób starszych (CDC STEADI 2024).",
"sixMinuteWalkBody": "To szacunek, jak daleko mógłbyś przejść w sześć minut — klasyczny test kliniczny mobilności i wydolności krążeniowo-oddechowej. Wartość z urządzenia noszonego to przybliżenie, a nie nadzorowany test kliniczny; liczy się stały lub rosnący trend.",
"stairAscentSpeedBody": "To prędkość, z jaką pokonujesz bieg schodów. To czuły wskaźnik siły nóg i mobilności — stałe lub rosnące tempo to dobry znak, a spadające warto obserwować.",
"stairDescentSpeedBody": "To prędkość, z jaką schodzisz bieg schodów. Razem z prędkością wchodzenia odzwierciedla kontrolę nóg i równowagę — stałe tempo to dobry znak, a spadające warto obserwować.",
"breathingDisturbancesBody": "Urządzenie noszone potrafi oszacować, jak często Twój oddech był przerywany podczas snu. Niższy wskaźnik jest lepszy; poziom oznaczony jako podwyższony — zwłaszcza przez wiele nocy — warto omówić z lekarzem. To przybliżenie przesiewowe, a nie diagnoza bezdechu sennego.",
"stepsBody": "Liczba kroków to łączna liczba kroków wykonanych każdego dnia. To najprostsza miara codziennego ruchu — wyższa dzienna liczba zwykle odzwierciedla bardziej aktywny tryb życia, a stały nawyk liczy się bardziej niż pojedynczy intensywny dzień.",
"readinessBody": "Gotowość to pojedynczy dzienny odczyt tego, jak przygotowane jest Twoje ciało, by zmierzyć się z dniem — łączy tętno spoczynkowe, zmienność rytmu serca, sen i regularność ostatnich nocy. Wyższy wynik oznacza, że Twój organizm wygląda na wypoczęty i pełen zasobów; niższy to delikatna wskazówka, by zwolnić tempo.",
"sleepScoreBody": "Twój wynik snu streszcza całą noc w jednej liczbie — długość, efektywność, regularność pór oraz proporcje snu lekkiego, głębokiego i REM. Obserwuj wzorzec w ujęciu tygodni, zamiast gonić za idealnym wynikiem jednej nocy.",
"recoveryBody": "Regeneracja odzwierciedla, jak dobrze Twoje ciało się odbudowało — opiera się na nocnych sygnałach, takich jak zmienność rytmu serca i tętno spoczynkowe. Wysoki wynik to zielone światło, by przyspieszyć; niższy sugeruje, że organizm wciąż się regeneruje.",
"strainBody": "Obciążenie ujmuje, ile wysiłku sercowo-naczyniowego i fizycznego nałożyłeś na swoje ciało — od treningów po aktywny dzień na nogach. Gdy zbierze się wystarczająco danych, jest oceniane względem Twojego własnego typowego wysiłku, a nie cudzej miary.",
"stressBody": "Stres jest tu szacunkiem fizjologicznego obciążenia Twojego układu nerwowego, odczytywanym głównie ze wzorców zmienności rytmu serca, a nie z tego, jak się świadomie czujesz. Niższy wynik wskazuje na spokojny, dobrze regulowany stan; wyższy to zachęta, by wpleść regenerację.",
"recoveryPageBody": "Regeneracja łączy nocne sygnały rejestrowane przez Twoje urządzenie – recharge, obciążenie, load oraz dzienne sumy tętna i energii – aby pokazać, jak dobrze Twój organizm się zregenerował. Patrz na wzorzec w ciągu kilku dni, a nie na pojedynczą liczbę; niższy wynik to zaproszenie do zwolnienia tempa, a nie alarm.",
"pulsePressureBody": "Ciśnienie tętna to różnica między wartością skurczową a rozkurczową (skurczowe minus rozkurczowe). Jako ogólna wskazówka, około 40 mmHg jest typowe w spoczynku; szeroka różnica powyżej około 60 mmHg w średnim wieku może odzwierciedlać usztywnienie tętnic, a wąska różnica poniżej około 25 mmHg może towarzyszyć niskiej objętości wyrzutowej (StatPearls/NIH 2023). To powód do rozmowy, nie diagnoza.",
"meanArterialPressureBody": "Średnie ciśnienie tętnicze to przeciętne ciśnienie, jakie widzą Twoje narządy w trakcie uderzenia serca, w przybliżeniu rozkurczowe plus jedna trzecia różnicy do skurczowego. Jako ogólna wskazówka, wartość spoczynkowa mieści się w okolicy 70–100 mmHg (StatPearls/NIH 2023). Często przywoływany próg ~60 mmHg to pojęcie z medycyny ostrej, nie alarm do samodzielnego pomiaru.",
"cycleEducationBody": "Twój cykl przebiega przez cztery fazy sterowane hormonami, a jego długość i regularność to dostępne okno na ogólny stan zdrowia. Jako ogólna wskazówka, u osób dorosłych cykle trwają zwykle 21–35 dni (źródła kliniczne podają 24–38), z krwawieniem około pięciu dni (ACOG 2015). Faza lutealna jest stałą kotwicą, dlatego owulację najlepiej szacować, licząc wstecz od następnej spodziewanej miesiączki, nigdy według stałego „14. dnia”. Przewidziane okno płodne to oszacowanie, które wymaga kilku zarejestrowanych cykli i pozostaje przybliżone, a podstawowa temperatura ciała potwierdza owulację po fakcie, a nie ją przewiduje. To nie jest metoda antykoncepcji.",
"sleepHygieneBody": "Kilka opartych na dowodach nawyków wspiera sen: stałe pory kładzenia się i wstawania także w weekendy, jasne światło rano i przyciemnione wieczory, chłodna, ciemna i cicha sypialnia oraz unikanie kofeiny po południu, alkoholu późnym wieczorem i obfitych posiłków przed snem (CDC 2024). Regularność przewiduje zdrowie co najmniej tak silnie jak długość snu, a całkowity czas snu z urządzenia jest znacznie bardziej wiarygodny niż jego podział na sen głęboki, lekki i REM."
},
"bpDerived": {
"pulsePressure": "Ciśnienie tętna (różnica między Twoimi wartościami) wynosi około {value} mmHg – około 40 jest typowe w spoczynku.",
"meanArterialPressure": "Średnie ciśnienie tętnicze (średnia, jaką widzą Twoje narządy) wynosi około {value} mmHg, zwykle w okolicy 70–100.",
"caveat": "Te wartości są wyliczone z ostatniego pomiaru jako ogólna wskazówka, nie jako diagnoza."
},
"stats": {
"label": "Statystyki podsumowujące",
"min": "Min",
"max": "Maks",
"median": "Mediana",
"mean": "Średnia"
},
"showAllValues": "Pokaż wszystkie pomiary",
"valuesPageTitle": "{metric} — wszystkie pomiary",
"valuesPageDescription": "Każdy pomiar stojący za tą metryką. Edytuj lub usuń wpis bezpośrednio.",
"diversity": {
"trigger": "Wskazówka pomiarowa",
"weekday": "Większość Twoich pomiarów {metric} przypada na jeden dzień tygodnia. Pomiary w inne dni dają pełniejszy obraz.",
"timeOfDay": "Większość Twoich pomiarów {metric} przypada o podobnej porze dnia. Różne pory dają pełniejszy obraz."
},
"valuesBack": "Powrót do Insights",
"valuesBackToMetric": "Powrót do {metric}",
"scoresBack": "Powrót do Insights",
"ecgDescription": "Zapisy EKG jednoodprowadzeniowe z Twojego urządzenia, każdy z wynikiem samego urządzenia. HealthLog pokazuje przebieg i zapis — nie interpretuje krzywej."
},
"units": {
"steps": "kroki",
"flights": "piętra",
"falls": "upadki",
"years": "lata",
"breathingEvents": "zdarzenia",
"respiratoryRate": "oddechów/min"
},
"sleep": {
"title": "Sen",
"description": "Podział na fazy i nocna długość snu, dane z Apple Health.",
"headlineTitle": "Średnia na noc",
"compositionTitle": "Rozkład faz",
"compositionSubtitle": "Ostatnie {nights} nocy",
"compositionAriaLabel": "Rozkład faz snu w {nights} nocach",
"sourceDiscrepancy": {
"tooltipTitle": "Źródła się różnią"
},
"stages": {
"deep": "Głęboki",
"rem": "REM",
"core": "Lekki",
"asleep": "Śpi",
"awake": "Czuwa",
"inBed": "W łóżku",
"nap": "Drzemka",
"napCount": "{count} drzemki/ek",
"unavailable": "Brak danych o fazach — fazy snu pojawią się tutaj, gdy tylko dostarczy je połączone źródło."
},
"empty": {
"title": "Brak danych o śnie",
"description": "Połącz źródło takie jak Apple Health lub urządzenie noszone — albo zapisuj sen ręcznie — a ten widok wypełni się automatycznie.",
"action": "Zarządzaj urządzeniami"
},
"debt": {
"title": "Dług snu",
"value": "{hours} godz. {minutes} min niedoboru",
"caption": "Pozostały bilans z ostatnich {nights} nocy",
"clearValue": "Na bieżąco",
"clearCaption": "Nic do nadrobienia w ostatnich {nights} nocach",
"learning": "Wciąż analizujemy Twój sen — {counted} nocy do tej pory, jeszcze {remaining}, aby uzyskać wiarygodny bilans.",
"computedInfo": "To własne oszacowanie HealthLog: ruchomy bilans potrzeby snu minus sen z ostatnich nocy, który sen nadrabiający zmniejsza. Może różnić się od natywnego wskaźnika długu snu z urządzenia, które korzysta z własnego modelu zapotrzebowania."
},
"average": {
"title": "Średnia na noc",
"value": "{hours} godz. {minutes} min",
"caption": "Średni sen w ciągu ostatnich {nights} nocy",
"learning": "Wciąż analizujemy Twój sen — {counted} nocy do tej pory, jeszcze {remaining}, aby uzyskać wiarygodną średnią."
},
"chronotype": {
"title": "Chronotyp",
"learning": "Wciąż poznajemy Twój rytm — {counted} z {total} wolnych nocy. Chronotyp wymaga kilku poranków bez budzika, aby coś znaczył.",
"advancedToggle": "Zaawansowane",
"socialJetlagValue": "{hours} godz. {minutes} min jet lagu społecznego",
"socialJetlagCaption": "Różnica między porą snu w dni robocze i wolne — jak niewielka cotygodniowa zmiana strefy czasowej.",
"msfScValue": "Skorygowany środek snu {clock}",
"msfScCaption": "Skorygowany o sen nadrabiany w weekend (MSFsc).",
"dayTypeNote": "Dni wolne przyjmuje się jako weekendy, dopóki nie zostanie dodane śledzenie typu dnia.",
"band": {
"extreme_early": "Wyraźny typ poranny",
"early": "Typ poranny",
"intermediate": "Typ pośredni",
"late": "Typ wieczorny",
"extreme_late": "Wyraźny typ wieczorny"
},
"midpointHeadline": "Naturalny środek Twojego snu przypada około {clock}."
},
"rhythm": {
"loadError": "Nie udało się teraz wczytać Twojego rytmu snu. Pojawi się ponownie, gdy połączenie się ustabilizuje."
}
},
"medicationCompliance": "Przestrzeganie leków",
"dayStreak": "{count} dni serii",
"dayStreakOne": "{count} dzień serii",
"compliance7d": "Przestrzeganie 7 dni",
"compliance30d": "Przestrzeganie 30 dni",
"taken": "Przyjęte",
"skipped": "Pominięte",
"missed": "Pominięte",
"assessmentTitle": "Ocena",
"restMode": {
"title": "Tryb odpoczynku",
"body": "Trwa epizod choroby lub dolegliwości, więc odzwierciedla to okres rekonwalescencji. Twój wynik nie jest za to obniżany.",
"bodySince": "Od {since} trwa epizod choroby lub dolegliwości, więc odzwierciedla to okres rekonwalescencji. Twój wynik nie jest za to obniżany."
},
"bloodPressureSectionTitle": "Ciśnienie krwi",
"weightSectionTitle": "Waga",
"pulseSectionTitle": "Tętno",
"bmiSectionTitle": "BMI",
"complianceNoData": "Brak danych o przestrzeganiu",
"generate": "Wygeneruj nową analizę",
"moodSectionTitle": "Nastrój",
"emptyState": {
"bloodPressure": {
"title": "Brak pomiarów ciśnienia krwi",
"description": "Zarejestruj pomiar ciśnienia, a pojawi się tu trend, udział w zakresie docelowym i klasyfikacja WHO.",
"cta": "Zarejestruj ciśnienie"
},
"weight": {
"title": "Brak pomiarów wagi",
"description": "Zarejestruj wagę, a trend, średnia krocząca i zakres docelowy pojawią się automatycznie.",
"cta": "Zarejestruj wagę"
},
"pulse": {
"title": "Brak pomiarów tętna",
"description": "Zarejestruj tętno, a w tym widoku pojawi się tętno spoczynkowe, HRV i VO₂ max.",
"cta": "Zarejestruj tętno"
},
"bmi": {
"title": "BMI jeszcze nie obliczone",
"description": "Po wpisaniu wzrostu i co najmniej jednej wagi pojawi się tu trend BMI z zakresami WHO.",
"cta": "Zarejestruj wagę"
},
"mood": {
"title": "Brak wpisów nastroju",
"description": "Zarejestruj nastrój, a pojawi się trend, pasmo stabilności i korelacje.",
"cta": "Zarejestruj nastrój"
},
"medication": {
"title": "Brak skonfigurowanych leków",
"description": "Skonfiguruj lek, a pojawi się adherencja, poziom we krwi i schemat titracji.",
"cta": "Dodaj lek"
},
"sleep": {
"title": "Brak danych o śnie",
"description": "Gdy pojawią się dane o śnie (ręcznie lub przez Withings / Apple Health), wyświetli się tu rozkład faz na noc.",
"cta": "Połącz źródło"
}
},
"navWorkouts": "Treningi",
"navRecovery": "Regeneracja",
"workouts": {
"title": "Treningi",
"askWhy": "Dlaczego",
"askWhyPrompt": "Dlaczego ta sesja wypadła w ten sposób? Wyjaśnij mi moje własne wyniki.",
"description": "Ostatnie biegi, jazdy, marsze i treningi siłowe — zdeduplikowane między Apple Watch a Withings.",
"emptyState": {
"title": "Brak treningów",
"description": "Otwórz aplikację Apple Zdrowie na iPhonie, aby zsynchronizować treningi. Import aktywności z Withings także dorzuca marsze i przejażdżki."
},
"detail": {
"backToList": "Powrót do treningów",
"statsTitle": "Statystyki",
"statsDuration": "Czas trwania",
"statsDistance": "Dystans",
"statsActiveEnergy": "Energia czynna",
"statsAvgHr": "Średnie tętno",
"statsMaxHr": "Maks. tętno",
"statsMinHr": "Min. tętno",
"statsStepCount": "Kroki",
"statsElevation": "Przewyższenie",
"statsPace": "Tempo",
"routeTitle": "Trasa",
"hrChartTitle": "Tętno",
"notFound": "Nie znaleziono treningu.",
"hrFromPulse": "Na podstawie Twoich danych tętna z okolic tej sesji",
"hrAxisMinutes": "min",
"sportAverageLabel": "Twoja ostatnia średnia:",
"zonesTitle": "Strefy wysiłku",
"zonesCaption": "Jak Twój wysiłek rozłożył się na strefy tętna.",
"zonesCaptionDevice": "Czas w strefach według Twojego urządzenia.",
"exportGpx": "Eksportuj GPX",
"elevationTitle": "Wznios",
"splitsTitle": "Międzyczasy",
"splitsKm": "km",
"splitsTime": "Czas",
"splitsPace": "Tempo",
"thatDayTitle": "Tego dnia",
"daySleepTitle": "Noc wcześniej",
"daySleepNone": "Brak zapisanego snu tej nocy",
"daySleepAwakeningsOne": "{count} przebudzenie",
"daySleepAwakeningsMany": "{count} przebudzeń",
"dayMoodTitle": "Nastrój tego dnia",
"dayMoodNone": "Brak zapisanego nastroju tego dnia",
"sleepTrendsLink": "Trendy snu",
"moodHistoryLink": "Historia nastroju",
"previousSessionLink": "Poprzedni trening",
"insightTitle": "Analiza aktywności"
},
"sport": {
"walking": "Marsz",
"running": "Bieg",
"cycling": "Rower",
"hiking": "Górska wędrówka",
"swimming": "Pływanie",
"rowing": "Wioślarstwo",
"elliptical": "Orbitrek",
"stairClimber": "Stepper",
"yoga": "Joga",
"mindAndBody": "Umysł i ciało",
"strength": "Siła",
"hiit": "HIIT",
"dance": "Taniec",
"golf": "Golf",
"badminton": "Badminton",
"tennis": "Tenis",
"basketball": "Koszykówka",
"soccer": "Piłka nożna",
"crossTraining": "Cross-trening",
"mixedCardio": "Cardio mieszane",
"other": "Inne"
},
"loadError": "Nie udało się wczytać treningów",
"loadMore": "Wczytaj więcej treningów",
"loadingMore": "Wczytywanie kolejnych treningów",
"loadMoreError": "Nie udało się wczytać kolejnych treningów",
"countOne": "{count} trening",
"countOther": "{count} treningów",
"countFew": "{count} treningi",
"filterLabel": "Filtruj według sportu",
"filterAll": "Wszystkie sporty",
"filterEmpty": "Brak treningów tego sportu w Twojej historii."
},
"bloodGlucose": {
"title": "Poziom glukozy",
"description": "Twoje odczyty glukozy w czasie, w mg/dL.",
"chartTitle": "Poziom glukozy",
"medianLabel": "Mediana glukozy",
"emptyState": {
"title": "Brak danych o glukozie",
"description": "Odczyty glukozy pojawią się tutaj po zapisaniu jednego lub synchronizacji urządzenia."
},
"clinical": {
"title": "Przegląd glukozy",
"subtitle": "Spojrzenie na ostatnie {days} dni, na podstawie {count} pomiarów.",
"spotCaveat": "To szacunki z pojedynczych pomiarów punktowych, a nie profil z czujnika ciągłego — traktuj je jako kierunek, nie jako diagnozę.",
"labsLink": "Wyniki laboratoryjne? HbA1c lub glukozę na czczo z pobrania krwi zapisz w sekcji Laboratorium.",
"learningTitle": "Wciąż poznajemy Twoją glukozę",
"learningBody": "Na razie to {count} w ciągu {days}. Przy nieco dłuższej historii obraz się wyostrza — rejestruj dalej lub pozwól uzupełnić to podłączonemu urządzeniu.",
"learningBodyEmpty": "Gdy pojawi się kilka pomiarów — wpisanych przez Ciebie lub zsynchronizowanych z urządzenia — czas w zakresie, średnia i zmienność nabiorą tu kształtu.",
"readingsCount": "{count} pomiarów",
"readingsCountOne": "1 pomiar",
"daysCount": "{days} dni",
"daysCountOne": "1 dzień",
"tir": {
"title": "Czas w zakresie",
"caption": "Udział pomiarów w każdym przedziale (70–180 mg/dl to cel).",
"veryLow": "Bardzo niski",
"low": "Niski",
"inRange": "W zakresie",
"high": "Wysoki",
"veryHigh": "Bardzo wysoki",
"ariaLabel": "Czas w zakresie: {tir}% w celu, {below}% poniżej, {above}% powyżej.",
"empty": "Brak pomiarów do wykresu."
},
"gmi": {
"label": "Wskaźnik zarządzania glukozą",
"help": "Szacunek zbliżony do HbA1c na podstawie średniej glukozy."
},
"eA1c": {
"label": "Szacowane HbA1c",
"help": "Szacunek HbA1c na podstawie średniej glukozy (ADAG)."
},
"mean": {
"label": "Średnia glukoza"
},
"cv": {
"label": "Zmienność",
"steady": "Stabilna",
"unstable": "Niestabilna",
"help": "Współczynnik zmienności. Od 36 % glukozę uznaje się za niestabilną; niżej znaczy stabilniej."
},
"advanced": {
"toggle": "Wskaźniki zaawansowane",
"intro": "Złożone miary o poziomie badawczym dla bliższego spojrzenia. Każda sprowadza Twoje pomiary do jednej liczby ważonej ryzykiem.",
"jIndex": {
"label": "Indeks J",
"help": "Pojedynczy wynik łączący średnią i jej rozrzut — niższy oznacza ściślejszą kontrolę."
},
"lbgi": {
"label": "Ryzyko niedocukrzeń (LBGI)",
"help": "Indeks Kovatcheva ważący, jak często i jak głęboko odczyty spadają."
},
"hbgi": {
"label": "Ryzyko przecukrzeń (HBGI)",
"help": "Indeks Kovatcheva ważący, jak często i jak wysoko odczyty rosną."
},
"byContext": {
"title": "Wg kontekstu",
"fasting": "Na czczo",
"postprandial": "Po posiłku",
"random": "Losowy",
"bedtime": "Przed snem",
"readingsShort": "{count} pomiarów",
"readingsShortOne": "1 pomiar"
}
}
}
},
"navBloodGlucose": "Glukoza",
"totalBodyWater": {
"title": "Całkowita woda w organizmie",
"description": "Twoja całkowita woda w organizmie w czasie, w kilogramach.",
"chartTitle": "Całkowita woda w organizmie",
"emptyState": {
"title": "Brak danych o wodzie",
"description": "Odczyty wody pojawią się tutaj po synchronizacji wagi analitycznej."
}
},
"navTotalBodyWater": "Woda w organizmie",
"boneMass": {
"title": "Masa kostna",
"description": "Twoja masa kostna w czasie, w kilogramach.",
"chartTitle": "Masa kostna",
"emptyState": {
"title": "Brak danych o masie kostnej",
"description": "Odczyty masy kostnej pojawią się tutaj po synchronizacji wagi analitycznej."
}
},
"navBoneMass": "Masa kostna",
"flightsClimbed": {
"title": "Pokonane piętra",
"description": "Kondygnacje schodów pokonane każdego dnia.",
"chartTitle": "Pokonane piętra dziennie",
"emptyState": {
"title": "Brak danych o piętrach",
"description": "Sumy pięter pojawią się tutaj po synchronizacji dnia przez Apple Health."
}
},
"navFlightsClimbed": "Piętra",
"walkingRunningDistance": {
"title": "Dystans marsz + bieg",
"description": "Dystans marszu i biegu pokonany każdego dnia, w kilometrach.",
"chartTitle": "Dystans dziennie",
"emptyState": {
"title": "Brak danych o dystansie",
"description": "Dzienny dystans pojawi się tutaj po synchronizacji dnia przez Apple Health."
}
},
"navWalkingRunningDistance": "Dystans",
"fatFreeMass": {
"title": "Masa beztłuszczowa",
"description": "Twoja masa beztłuszczowa w czasie, w kilogramach.",
"chartTitle": "Masa beztłuszczowa",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji wagi analitycznej."
}
},
"navFatFreeMass": "Masa beztłuszczowa",
"fatMass": {
"title": "Masa tłuszczowa",
"description": "Twoja masa tłuszczowa w czasie, w kilogramach.",
"chartTitle": "Masa tłuszczowa",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji wagi analitycznej."
}
},
"navFatMass": "Masa tłuszczowa",
"muscleMass": {
"title": "Masa mięśniowa",
"description": "Twoja masa mięśniowa w czasie, w kilogramach.",
"chartTitle": "Masa mięśniowa",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji wagi analitycznej."
}
},
"navMuscleMass": "Masa mięśniowa",
"skinTemperature": {
"title": "Temperatura skóry",
"description": "Temperatura skóry nadgarstka w czasie, w stopniach Celsjusza.",
"chartTitle": "Temperatura skóry",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji nocnej temperatury przez urządzenie."
}
},
"navSkinTemperature": "Temp. skóry",
"pulseWaveVelocity": {
"title": "Prędkość fali tętna",
"description": "Prędkość fali tętna tętniczego w czasie, w m/s — wyższe wartości sugerują sztywniejsze tętnice.",
"chartTitle": "Prędkość fali tętna",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji zgodnego urządzenia Withings."
}
},
"navPulseWaveVelocity": "Prędkość fali tętna",
"vascularAge": {
"title": "Wiek naczyniowy",
"description": "Twój szacowany wiek naczyniowy w czasie, w latach.",
"chartTitle": "Wiek naczyniowy",
"emptyState": {
"title": "Brak danych",
"description": "Szacunki pojawią się tutaj po synchronizacji zgodnego urządzenia Withings."
}
},
"navVascularAge": "Wiek naczyniowy",
"visceralFat": {
"title": "Tłuszcz trzewny",
"description": "Twój wskaźnik tłuszczu trzewnego w czasie.",
"chartTitle": "Tłuszcz trzewny",
"emptyState": {
"title": "Brak danych",
"description": "Wskaźniki pojawią się tutaj po synchronizacji zgodnej wagi analitycznej."
}
},
"navVisceralFat": "Tłuszcz trzewny",
"audioExposureEnv": {
"title": "Hałas otoczenia",
"description": "Twoja średnia dzienna ekspozycja na dźwięk otoczenia, w dBA.",
"chartTitle": "Ekspozycja na dźwięk otoczenia",
"emptyState": {
"title": "Brak danych",
"description": "Poziomy dźwięku pojawią się tutaj po synchronizacji Apple Health."
}
},
"navAudioExposureEnv": "Hałas otoczenia",
"audioExposureHeadphone": {
"title": "Dźwięk słuchawek",
"description": "Twoja średnia dzienna ekspozycja na dźwięk słuchawek, w dBA.",
"chartTitle": "Ekspozycja słuchawek",
"emptyState": {
"title": "Brak danych",
"description": "Poziomy pojawią się tutaj po synchronizacji Apple Health."
}
},
"navAudioExposureHeadphone": "Dźwięk słuchawek",
"timeInDaylight": {
"title": "Czas w świetle dziennym",
"description": "Minuty spędzone w świetle dziennym każdego dnia.",
"chartTitle": "Światło dzienne dziennie",
"emptyState": {
"title": "Brak danych",
"description": "Sumy pojawią się tutaj po synchronizacji dnia przez Apple Health."
}
},
"navTimeInDaylight": "Światło dzienne",
"walkingSteadiness": {
"title": "Stabilność chodu",
"description": "Twoja stabilność chodu w czasie, w procentach.",
"chartTitle": "Stabilność chodu",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji Apple Health."
}
},
"navWalkingSteadiness": "Stabilność chodu",
"audioExposureEvent": {
"title": "Głośne zdarzenia dźwiękowe",
"description": "Dni ze zdarzeniem ekspozycji na głośny hałas.",
"chartTitle": "Zdarzenia hałasu dziennie",
"emptyState": {
"title": "Brak danych",
"description": "Zdarzenia pojawią się tutaj po synchronizacji Apple Health."
}
},
"navAudioExposureEvent": "Zdarzenia hałasu",
"respiratoryRate": {
"title": "Częstość oddechów",
"description": "Twoja częstość oddechów w czasie, w oddechach na minutę.",
"chartTitle": "Częstość oddechów",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji oddechu snu lub treningu przez Apple Health."
}
},
"navRespiratoryRate": "Częstość oddechów",
"leanBodyMass": {
"title": "Beztłuszczowa masa ciała",
"description": "Twoja beztłuszczowa masa ciała w czasie, w kilogramach.",
"chartTitle": "Beztłuszczowa masa ciała",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji wagi analitycznej."
}
},
"navLeanBodyMass": "Beztłuszczowa masa ciała",
"walkingHeartRateAverage": {
"title": "Tętno podczas chodu",
"description": "Twoje średnie tętno podczas chodzenia, w ud./min.",
"chartTitle": "Średnie tętno podczas chodu",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji Apple Health."
}
},
"navWalkingHeartRateAverage": "Tętno podczas chodu",
"walkingAsymmetry": {
"title": "Asymetria chodu",
"description": "Twoja asymetria chodu w czasie, w procentach.",
"chartTitle": "Asymetria chodu",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji Apple Health."
}
},
"navWalkingAsymmetry": "Asymetria chodu",
"walkingDoubleSupport": {
"title": "Czas podwójnego podparcia",
"description": "Odsetek każdego kroku z obiema stopami na ziemi.",
"chartTitle": "Czas podwójnego podparcia",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji Apple Health."
}
},
"navWalkingDoubleSupport": "Podwójne podparcie",
"walkingStepLength": {
"title": "Długość kroku",
"description": "Twoja średnia długość kroku w czasie, w metrach.",
"chartTitle": "Długość kroku",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji Apple Health."
}
},
"navWalkingStepLength": "Długość kroku",
"walkingSpeed": {
"title": "Prędkość chodu",
"description": "Twoja średnia prędkość chodu w czasie, w km/h.",
"chartTitle": "Prędkość chodu (km/h)",
"emptyState": {
"title": "Brak danych",
"description": "Odczyty pojawią się tutaj po synchronizacji Apple Health."
}
},
"navWalkingSpeed": "Prędkość chodu",
"mood": {
"logLink": "Zapisz nastrój",
"mentalWellbeingLink": "Wykonaj sprawdzian dobrostanu psychicznego",
"heatmapTitle": "Kalendarz nastroju",
"heatmapNoEntry": "Brak wpisu",
"legendGreat": "Świetnie",
"legendGood": "Dobrze",
"legendOkay": "W porządku",
"legendLow": "Nisko",
"distributionTitle": "Rozkład nastroju",
"distributionDaysUnit": "dni",
"weekdayTitle": "Średnia wg dnia tygodnia",
"weekdayNoData": "Brak danych",
"weekdayBestWorst": "Najlepszy dzień: {best} · Najtrudniejszy dzień: {worst}",
"tagsTitle": "Tagi i wyzwalacze",
"tagAvgMood": "Średni nastrój z tym tagiem",
"correlationsTitle": "Nastrój a inne wskaźniki",
"correlationsDescription": "Jak Twój nastrój zmienia się wraz ze snem, aktywnością i tętnem tego samego dnia.",
"correlation": {
"sleepTitle": "Nastrój a sen",
"stepsTitle": "Nastrój a aktywność",
"pulseTitle": "Nastrój a tętno",
"sleepAxis": "Sen (min)",
"stepsAxis": "Kroki",
"pulseAxis": "Tętno (bpm)",
"strengthStrong": "Silna",
"strengthModerate": "Umiarkowana",
"strengthWeak": "Słaba",
"strengthNone": "Brak",
"source": "{n} sparowanych dni · r = {r}",
"emptyTitle": "Za mało sparowanych danych",
"emptyDescription": "Rejestruj nastrój i ten wskaźnik w te same dni, aby zobaczyć korelację.",
"weightTitle": "Nastrój vs. waga",
"bloodPressureTitle": "Nastrój vs. ciśnienie krwi",
"weightAxis": "Waga",
"bloodPressureAxis": "Skurczowe (mmHg)",
"sourceLabel": "Jak to obliczono"
},
"structuredTagsTitle": "Podział tagów",
"inTargetValue": "{pct}%",
"inTargetCaption": "ostatnich dni w zakresie dobrego nastroju",
"narrative": {
"title": "Co się wyróżnia",
"weekdayDip": "Twój nastrój najbardziej spada w {weekday} — {delta} poniżej twojego tygodnia.",
"weekdayPeak": "{weekday} to zawsze twój najlepszy dzień, średnio {value}.",
"trendUp": "Twój nastrój rośnie w ciągu ostatnich {days} dni (+{delta} względem poprzedniego okresu).",
"trendDown": "Twój nastrój spada w ciągu ostatnich {days} dni (-{delta} względem poprzedniego okresu).",
"weekendUp": "W weekendy czujesz się lepiej (+{delta} względem dni roboczych).",
"weekendDown": "Twój nastrój jest niższy w weekendy (-{delta} względem dni roboczych).",
"tagLift": "Dni z tagiem „{tag}” są średnio o {delta} powyżej twojego ogólnego nastroju.",
"tagDrop": "Dni z tagiem „{tag}” są o {delta} poniżej twojej średniej.",
"inTarget": "Przez {pct}% ostatnich 30 dni byłeś w zakresie dobrego nastroju.",
"streak": "Rejestrujesz nastrój od {days} dni z rzędu — tak trzymaj.",
"timeOfDay": "Najlepiej czujesz się {bucket}, średnio {value}."
},
"timeOfDay": {
"title": "Nastrój według pory dnia",
"morning": "Rano",
"afternoon": "Popołudnie",
"evening": "Wieczór",
"night": "Noc",
"bestCaption": "Zwykle najlepiej czujesz się {bucket}."
},
"stability": {
"value": "{score}/100",
"bandVerySteady": "Twój nastrój był bardzo stabilny",
"bandSteady": "Twój nastrój był dość stabilny",
"bandVariable": "Twój nastrój był zauważalnie zmienny",
"bandVeryVariable": "Twój nastrój ostatnio mocno się wahał",
"title": "Stabilność"
},
"influence": {
"title": "Wpływ na nastrój",
"detail": "Średnia {withAvg} w {withDays} dniach z tym tagiem wobec {withoutAvg} bez niego.",
"confidenceLow": "Niska pewność",
"confidenceMedium": "Średnia pewność",
"confidenceHigh": "Wysoka pewność"
},
"betterDays": {
"title": "Co towarzyszy Twoim lepszym dniom",
"description": "Tagi i wskaźniki, które pokrywają się z dniami lepszego i gorszego nastroju, uszeregowane według siły powiązania."
},
"crosstab": {
"title": "Tagi a Twoje wskaźniki zdrowia",
"description": "Jak wskaźnik zdrowia różni się w dniach z danym tagiem w porównaniu z dniami bez niego.",
"pairLabel": "{tag} · {metric}",
"metricActiveEnergy": "Aktywna energia",
"metricSleepDuration": "Sen",
"metricNextDayRecovery": "Regeneracja następnego dnia",
"metricNextDayRestingHr": "Tętno spoczynkowe następnego dnia",
"metricNextDayHrv": "Zmienność rytmu serca następnego dnia",
"unitHours": "godz.",
"unitKcal": "kcal",
"unitScore": "pkt",
"unitBpm": "bpm",
"unitMs": "ms",
"detailSameDay": "Średnio {withAvg} {unit} w {withDays} dniach z tym tagiem wobec {withoutAvg} {unit} bez niego.",
"detailNextDay": "Średnio {withAvg} {unit} dzień po {withDays} dniach z tym tagiem wobec {withoutAvg} {unit} w pozostałe dni."
},
"factorCrosstab": {
"title": "Twoje ocenione czynniki i parametry życiowe",
"description": "Jak parametr życiowy różni się w dniach, w których oceniłeś dany czynnik nisko, w porównaniu z dniami, w których oceniłeś go wysoko.",
"pairLabel": "{factor} · {metric}",
"metricSleepDuration": "Sen",
"metricSteps": "Kroki",
"metricRestingHeartRate": "Tętno spoczynkowe",
"metricHrv": "Zmienność rytmu serca",
"metricWeight": "Waga",
"metricBloodPressureSys": "Skurczowe",
"unitHours": "godz.",
"unitScore": "pkt",
"unitSteps": "kroki",
"unitBpm": "bpm",
"unitMs": "ms",
"unitKg": "kg",
"unitMmHg": "mmHg",
"detail": "Średnio {lowAvg} {unit} w {lowDays} dniach z niską oceną {factor} wobec {highAvg} {unit} w dniach z wysoką oceną.",
"detailInverse": "Średnio {lowAvg} {unit} w Twoich {lowDays} gorszych dniach {factor} wobec {highAvg} {unit} w lepszych."
},
"discovery": {
"title": "Co się wyróżnia",
"subheading": "Wykryte relacje",
"footer": "Wyłonione z {tested} par dzień po dniu testowanych na wszystkich Twoich wskaźnikach, po korekcie fałszywych odkryć.",
"disclaimer": "Przefiltrowane statystycznie, ale wciąż obserwacyjne — wzorzec warty uwagi, nie przyczyna.",
"moodUp": "Wyższy {factor} zwykle wiąże się z lepszym nastrojem następnego dnia w Twoich danych.",
"moodDown": "Wyższy {factor} zwykle wiąże się z gorszym nastrojem następnego dnia w Twoich danych.",
"outcomeUp": "Lepszy nastrój zwykle wiąże się z wyższym {factor} następnego dnia w Twoich danych.",
"outcomeDown": "Lepszy nastrój zwykle wiąże się z niższym {factor} następnego dnia w Twoich danych.",
"stat": "{n} sparowanych dni · r = {r} · q = {q}",
"statLabel": "Jak to obliczono",
"explainerLabel": "Jak to obliczono"
},
"inTargetTitle": "W Twoim zakresie"
},
"derived": {
"coverage": {
"summary": "{present} z {required} danych · {percent}%",
"ratioLabel": "{present}/{required}",
"historyDays": "Na podstawie {count} dni historii",
"missing": "Zapisuj te dane, aby uściślić wartość: {list}",
"summaryLabelled": "{label} · {percent}%"
},
"scoreRing": {
"aria": "Wynik {score} na 100, {band}",
"ariaProvisional": "Wynik jeszcze niedostępny — za mało danych",
"provisionalCaption": "Wciąż za mało danych",
"band": {
"green": "dobry",
"yellow": "średni",
"red": "niski"
}
},
"provenance": {
"title": "Jak to jest obliczane",
"trigger": "Jak to jest obliczane",
"inputsLabel": "Dane wejściowe",
"noInputs": "Żadne dane nie potwierdzają jeszcze tej wartości.",
"methodLabel": "Metoda",
"window": "Z ostatnich {days} dni · dane {source}",
"asOf": "na dzień {date}",
"standardLink": "Standard: {name}"
},
"vitals": {
"sectionTitle": "Twoje parametry życiowe",
"sectionSubtitle": "Spoczynkowe sygnały sercowo-naczyniowe i oddechowe na tle Twojej własnej linii bazowej",
"loadingLabel": "Wczytywanie parametrów życiowych",
"loadError": "Nie udało się teraz wczytać Twoich parametrów życiowych.",
"infoLabel": "Jak to jest obliczane?",
"building": "Budowanie Twojego typowego zakresu — {count} z {target} dni",
"typicalRange": "Typowe dla Ciebie: {low}–{high}",
"fitnessYounger": "Kondycja jak u osoby ~{years} lat młodszej",
"fitnessOlder": "Kondycja ~{years} lat powyżej Twojego wieku",
"fitnessTypical": "Kondycja typowa dla Twojego wieku",
"fitnessNoNorm": "Dodaj wiek i płeć, aby to ująć w kontekście",
"vascularBelow": "{years} lat poniżej Twojego wieku",
"vascularAbove": "{years} lat powyżej Twojego wieku",
"vascularMatch": "Zgodnie z Twoim wiekiem",
"vascularNoAge": "Dodaj datę urodzenia, aby to ująć w kontekście",
"hrvBand": {
"balanced": "Zrównoważone dla Ciebie",
"unbalanced": "Powyżej Twojego zwykłego zakresu",
"low": "Poniżej Twojego zwykłego zakresu"
},
"bmiCategory": {
"underweight": "Niedowaga (WHO)",
"normal": "Zakres prawidłowy (WHO)",
"overweight": "Nadwaga (WHO)",
"obese": "Otyłość (WHO)"
},
"sixMinuteBand": {
"green": "{percent}% wartości przewidywanej dla Twojego profilu",
"yellow": "{percent}% wartości przewidywanej dla Twojego profilu",
"red": "{percent}% wartości przewidywanej dla Twojego profilu"
},
"sixMinuteNoBand": "Dodaj wiek, wzrost, wagę i płeć, aby to ująć w kontekście",
"mobilitySectionTitle": "Mobilność i ciało"
},
"anatomy": {
"outOf": "/100",
"contributorsLabel": "Czynniki",
"contributorValue": "{value} · {weight}% wagi",
"contributorMissing": "brak danych",
"disclaimer": "Orientacyjne — to nie ocena kliniczna.",
"insufficient": "Za mało danych, by to ocenić. Rejestruj dalej, a wynik pojawi się tutaj."
},
"composite": {
"SLEEP_SCORE": {
"title": "Wynik snu",
"description": "Przejrzysty wynik jakości snu z każdym podwynikiem.",
"method": "Mieszanka 0–100 z wystarczalności (sen vs zapotrzebowanie według wieku), wydajności (sen ÷ czas w łóżku), regularności (jak stabilny jest środek twojego snu), pory (vs twój zwykły środek snu) i struktury (udział REM + snu głębokiego). Podwyniki są ważone na nowo wokół tych, których dane nie wspierają; nic nie jest zmyślane.",
"sub": {
"sufficiency": "Wystarczalność",
"efficiency": "Wydajność",
"consistency": "Regularność",
"timing": "Pora",
"composition": "Struktura"
}
},
"READINESS": {
"title": "Gotowość",
"description": "Codzienny wskaźnik samopoczucia oparty na tym, jak twoje sygnały wypadają względem twojej własnej bazy.",
"method": "Mieszanka 0–100 z odchylenia tętna spoczynkowego, odchylenia HRV (SDNN), jakości snu, stabilności częstości oddechu i stabilności nastroju — każde mierzone względem twojej osobistej bazy. Wagi są renormalizowane na komponentach wspieranych przez twoje dane. Wskaźnik samopoczucia, nie wynik regeneracji ani kliniczny.",
"component": {
"rhr": "Tętno spoczynkowe",
"hrv": "HRV (SDNN)",
"sleep": "Sen",
"respiratory": "Częstość oddechu",
"mood": "Stabilność nastroju"
},
"caveat": "Wskaźnik dobrostanu, nie ocena regeneracji ani wynik kliniczny."
},
"VITALS_BASELINE": {
"method": "Twój osobisty typowy zakres to mediana Twoich dziennych wartości w danym okresie ± odporne rozproszenie (skalowane medianowe odchylenie bezwzględne). Śledzi TWOJE odczyty, a nie normę populacyjną — wartość w obrębie pasma jest więc typowa dla Ciebie."
},
"HRV_BALANCE": {
"method": "Twoja niedawna średnia HRV (SDNN) na tle Twojej własnej ruchomej linii bazowej (mediana ± odporne rozproszenie). Zrównoważone oznacza, że mieści się w Twoim osobistym zakresie; pasmo budowane jest z Twoich danych, nigdy z progu populacyjnego."
},
"BMI": {
"method": "Masa ÷ wzrost², sklasyfikowane według kategorii WHO dla dorosłych (niedowaga / norma / nadwaga / otyłość). To tylko wskaźnik przesiewowy — nie odróżnia mięśni od tłuszczu."
},
"FITNESS_AGE": {
"method": "Twoje VO₂max odniesione do percentyli wydolności krążeniowo-oddechowej według wieku i płci, wyrażone jako różnica wieku sprawnościowego. VO₂max to szacunek Twojego urządzenia — tutaj nigdy nie jest przeliczany ponownie."
},
"VASCULAR_AGE_DELTA": {
"method": "Szacunek wieku naczyniowego / prędkości fali tętna z Twojego urządzenia porównany z Twoim wiekiem metrykalnym, wyrażony jako różnica w latach. Szacunek pochodzi z urządzenia; HealthLog jedynie go przedstawia.",
"caveat": "Własny szacunek Twojego urządzenia, jedynie przedstawiony — opisowy, nie kliniczna ocena naczyniowa.",
"description": "Jak szacunek wieku naczyniowego Twojego urządzenia wypada na tle Twojego wieku metrykalnego."
},
"COINCIDENT_DEVIATION": {
"method": "Sygnał pojawiający się, gdy co najmniej dwa Twoje parametry życiowe wykraczają tego samego dnia poza swój osobisty typowy zakres. Każde pasmo to odporna mediana ± k·MAD Twojej historii, więc dostosowuje się do Ciebie, a nie do progu populacyjnego.",
"caveat": "Sygnał z Twoich własnych linii bazowych — opisowy, nie diagnoza ani alarm kliniczny."
},
"RECOVERY_SCORE": {
"method": "Nocny wskaźnik regeneracji 0–100 łączący Twoje HRV, tętno spoczynkowe i sen względem Twojej linii bazowej. Wyższy oznacza lepszą regenerację. Liczony raz na noc i tu tylko odczytywany — nigdy nieprzeliczany na bieżąco.",
"caveat": "Opisowy wskaźnik dobrostanu, nie kliniczna ani treningowa miara regeneracji.",
"description": "Nocny wskaźnik regeneracji z Twojego HRV, tętna spoczynkowego i snu."
},
"STRESS_SCORE": {
"method": "Nocny wskaźnik stresu 0–100 na podstawie kształtu Twojego HRV w ciągu dnia względem linii bazowej. Wyższy oznacza większe obciążenie fizjologiczne.",
"caveat": "Wskaźnik pochodzący z HRV, a NIE pomiar stresu metodą EDA / reakcji skórno-galwanicznej — Twój zegarek nie ma czujnika EDA. Opisowy, nie kliniczny.",
"description": "Nocny wskaźnik stresu na podstawie kształtu Twojego HRV w ciągu dnia."
},
"STRAIN_SCORE": {
"method": "Nocny wskaźnik obciążenia 0–100 na podstawie Twojego obciążenia aktywnością ważonego tętnem (model impulsu treningowego typu TRIMP). Wyższy oznacza cięższy dzień.",
"anchorPersonal": "Zakotwiczony w Twoim własnym niedawnym obciążeniu z dni treningowych — oceniany względem Twojego typowego wysiłku, więc naprawdę ciężki dzień dla Ciebie wypada wysoko.",
"anchorPopulation": "Oceniany względem ogólnego punktu odniesienia, gdy dopiero budujesz historię treningów; gdy zbierzesz jej wystarczająco, przełącza się na Twój własny typowy wysiłek.",
"caveat": "Opisowy wskaźnik obciążenia aktywnością, nie kliniczna ani treningowa miara obciążenia.",
"description": "Nocny wskaźnik obciążenia aktywnością z Twojego wysiłku ważonego tętnem, względem Twojego typowego wysiłku."
},
"WRIST_TEMPERATURE_BASELINE": {
"method": "Twoja typowa nocna temperatura nadgarstka to mediana Twoich nocnych odczytów w danym okresie, ± solidny rozrzut (przeskalowane medianowe odchylenie bezwzględne). Śledzi TWOJE odczyty — ostatnia noc jest pokazana jako odchylenie od Twojej własnej bazy, a nie od normy populacyjnej.",
"caveat": "Tylko osobiste pasmo odchylenia — opisowe, nie sygnał choroby, gorączki ani fazy cyklu. Interpretujesz je samodzielnie."
},
"STAIR_ASCENT_SPEED_BASELINE": {
"method": "Twoje typowe tempo wchodzenia po schodach to mediana Twoich dziennych wartości w danym okresie, ± solidny rozrzut (przeskalowane medianowe odchylenie bezwzględne). Pasmo jest budowane z Twoich danych — nie ma populacyjnego progu prędkości na schodach, bo tempo zależy od geometrii schodów i długości nóg.",
"caveat": "Osobiste pasmo trendu mobilności — opisowe, nie ocena kruchości ani ryzyka upadku."
},
"STAIR_DESCENT_SPEED_BASELINE": {
"method": "Twoje typowe tempo schodzenia po schodach to mediana Twoich dziennych wartości w danym okresie, ± solidny rozrzut (przeskalowane medianowe odchylenie bezwzględne). Pasmo jest budowane z Twoich danych — nie ma populacyjnego progu prędkości na schodach, bo tempo zależy od geometrii schodów i długości nóg.",
"caveat": "Osobiste pasmo trendu mobilności — opisowe, nie ocena kruchości ani ryzyka upadku."
},
"SIX_MINUTE_WALK_BAND": {
"method": "SZACOWANY przez Twoje urządzenie dystans sześciominutowego marszu odniesiony do wzorca Enrighta i Sherrilla dla Twojego wieku, wzrostu, wagi i płci, jako procent wartości przewidywanej. Dystans to szacunek urządzenia — nigdy nie jest tu przeliczany. Bez Twojego wieku, wzrostu, wagi i płci procent jest ukryty i pokazywane są tylko dystans i trend.",
"caveat": "Szacunek odniesiony do opublikowanego wzorca — sygnał wydolności funkcjonalnej, nie kliniczny test sześciominutowego marszu ani diagnoza. Wzorzec opracowano dla wieku 40–80 lat; poza tym zakresem wartość przewidywana jest ekstrapolacją."
},
"TRAJECTORY": {
"method": "Prosta dopasowana metodą najmniejszych kwadratów do Twoich ostatnich wartości dziennych i rzutowana w przód na krótki horyzont, z klasycznym przedziałem predykcji, który poszerza się tym bardziej, im dalej sięga. Obliczana tylko wtedy, gdy ostatni trend jest dość wyraźny, a Twoja historia wystarczająco długa i aktualna; w przeciwnym razie linia nie jest rysowana.",
"caveat": "Rzut Twojego własnego ostatniego trendu — nie prognoza, cel ani kliniczne przewidywanie. Sprawdza się tylko, jeśli ostatni wzorzec się utrzyma; zacieniony pas pokazuje, jak szybko ta pewność maleje."
},
"SAME_TIME_BASELINE": {
"method": "Twoja dzisiejsza suma narastająca zestawiona z medianą tej samej godziny lokalnej z ostatnich czterech tygodni, z odpornym pasmem mediana ± MAD wokół niej. Liczą się tylko dni z wystarczającą liczbą zapisów, a porównanie nie pojawia się, dopóki nie ma ich co najmniej czternastu.",
"caveat": "Porównanie z twoją własną niedawną historią, a nie cel. Mówi, gdzie dziś jesteś względem swojego zwykłego wzorca o tej godzinie — i nic o tym, czy ten wzorzec jest dla ciebie właściwy."
}
},
"scores": {
"sectionTitle": "Twoje wskaźniki zdrowia",
"sectionSubtitle": "Złożone wartości regeneracji, stresu i obciążenia odczytane z Twoich połączonych urządzeń",
"loadError": "Nie udało się teraz wczytać Twoich wyników dobrostanu.",
"loadingLabel": "Wczytywanie Twoich wskaźników zdrowia",
"recovery": "Wynik regeneracji",
"recoveryCrossLink": "Zobacz dane regeneracji i obciążenia z Twojego urządzenia",
"stress": "Stres",
"strain": "Obciążenie"
},
"coincident": {
"label": "Kilka parametrów poza bazą",
"summary": "Dziś {count} Twoich parametrów życiowych znalazło się poza osobistym zakresem.",
"vitals": "Poza zakresem: {list}",
"cardTitle": "Sygnały dnia",
"allClear": "Dziś wszystkie Twoje parametry życiowe mieszczą się w osobistym zakresie.",
"allClearMeta": "Sprawdzono {count} Twoich parametrów względem Twojego typowego zakresu.",
"watch": "Dziś jeden parametr jest poza swoim zwykłym zakresem.",
"watchVital": "Poza zakresem: {vital}. Często to jednorazowy odczyt — warto obserwować przez kilka dni.",
"firedHeadline": "Dziś {count} Twoich parametrów życiowych jest poza osobistym zakresem.",
"factors": "Możliwe czynniki — nigdy przyczyna: intensywny trening, słaby sen, alkohol, wysokość, stres lub choroba. To wskazówka z Twoich własnych baz, nie diagnoza.",
"building": "Budujemy Twoje osobiste bazy — zarejestruj jeszcze kilka dni, a to się pojawi.",
"illnessExplained": "Te odchylenia prawdopodobnie wynikają z zapisanego schorzenia."
},
"trajectory": {
"cardTitle": "Krótkoterminowy rzut",
"headline": "Jeśli ten wzorzec się utrzyma — następne {days} dni",
"range": "Rzutowane na około {low}–{high} {unit} za {days} dni.",
"caveat": "Rzut Twojego własnego ostatniego trendu, nie prognoza. Zacieniony pas poszerza się, pokazując, jak szybko rośnie niepewność.",
"insufficient": "Jeszcze brak wystarczająco wyraźnego trendu do rzutowania — rejestruj dalej, a rzut pojawi się, gdy ostatni wzorzec będzie dość wyraźny.",
"daysNeeded": "Potrzeba jeszcze około {count} dni rejestrowania, zanim pojawi się rzut."
},
"sameTime": {
"sectionTitle": "Dziś do tej pory",
"sectionSubtitle": "Twoje sumy narastające względem tego, co o tej godzinie jest u ciebie zwykłe",
"learning": "Uczę się twojego zwykłego dnia — {count} z {target} dni",
"framing": "Zwykle do {time}: {typical} {unit}",
"comparisonLabel": "Twój zwykły dzień"
}
},
"cardioFitness": {
"title": "Wydolność",
"description": "Twoje VO₂ max w czasie — główna miara wydolności tlenowej.",
"chartTitle": "VO₂ max (mL/(kg·min))",
"emptyState": {
"title": "Brak danych o wydolności",
"description": "Wartości VO₂ max pojawią się tutaj, gdy Apple Health zsynchronizuje je z Twoich treningów."
}
},
"navCardioFitness": "Wydolność",
"cardioRecovery": {
"title": "Regeneracja serca",
"description": "O ile spada tętno minutę po szczytowym wysiłku.",
"chartTitle": "Regeneracja serca (bpm)",
"emptyState": {
"title": "Brak danych o regeneracji serca",
"description": "Wartości regeneracji serca pojawią się tutaj, gdy Apple Health zsynchronizuje je z treningu."
}
},
"navCardioRecovery": "Regeneracja serca",
"wristTemperature": {
"title": "Temperatura nadgarstka",
"description": "Nocna temperatura nadgarstka, odniesiona do Twojej wartości bazowej.",
"chartTitle": "Temperatura nadgarstka (°C)",
"emptyState": {
"title": "Brak danych o temperaturze nadgarstka",
"description": "Wartości pojawią się tutaj, gdy Apple Health zsynchronizuje nocne noszenie."
}
},
"navWristTemperature": "Temp. nadgarstka",
"falls": {
"title": "Upadki",
"description": "Poważne upadki wykryte przez Apple Watch, liczone na dzień.",
"chartTitle": "Upadki na dzień",
"emptyState": {
"title": "Brak danych o upadkach",
"description": "Wykryte upadki pojawią się tutaj, gdy Apple Health się zsynchronizuje. Celem jest brak upadków."
}
},
"navFalls": "Upadki",
"sixMinuteWalk": {
"title": "Marsz 6-minutowy",
"description": "Szacunek Apple, jak daleko możesz przejść w sześć minut.",
"chartTitle": "Dystans w 6 minut (m)",
"emptyState": {
"title": "Brak danych o marszu 6-minutowym",
"description": "Szacunki pojawią się tutaj, gdy Apple Health się zsynchronizuje."
}
},
"navSixMinuteWalk": "Marsz 6 min",
"stairAscentSpeed": {
"title": "Prędkość wchodzenia po schodach",
"description": "Jak szybko wchodzisz po schodach, mierzone przez iPhone'a lub Watch.",
"chartTitle": "Prędkość wchodzenia (m/s)",
"emptyState": {
"title": "Brak danych o wchodzeniu po schodach",
"description": "Wartości pojawią się tutaj, gdy Apple Health się zsynchronizuje."
}
},
"navStairAscentSpeed": "Wchodzenie",
"stairDescentSpeed": {
"title": "Prędkość schodzenia po schodach",
"description": "Jak szybko schodzisz po schodach, mierzone przez iPhone'a lub Watch.",
"chartTitle": "Prędkość schodzenia (m/s)",
"emptyState": {
"title": "Brak danych o schodzeniu po schodach",
"description": "Wartości pojawią się tutaj, gdy Apple Health się zsynchronizuje."
}
},
"navStairDescentSpeed": "Schodzenie",
"breathingDisturbances": {
"title": "Zaburzenia oddychania",
"description": "Jak często Twój oddech był zakłócany podczas snu.",
"chartTitle": "Zaburzenia oddychania we śnie",
"emptyState": {
"title": "Brak danych o zaburzeniach oddychania",
"description": "Wartości pojawią się tutaj, gdy Apple Health zsynchronizuje je z obsługiwanego Apple Watch."
}
},
"navBreathingDisturbances": "Oddychanie",
"rhythmEvents": {
"sectionTitle": "Powiadomienia zdrowotne urządzenia",
"sectionIntro": "Powiadomienia, które zegarek wysłał samodzielnie. HealthLog jedynie je wyświetla — nie wykrywa ich, nie potwierdza ani nie interpretuje.",
"loadError": "Nie udało się wczytać powiadomień urządzenia.",
"disclaimer": "To alerty wygenerowane przez Twoje urządzenie za pomocą jego wbudowanego wykrywania. Są tu pokazywane wyłącznie dla Twojej informacji. To nie jest ocena medyczna wykonana przez HealthLog, a HealthLog nie diagnozuje żadnych schorzeń. Jeśli powiadomienie Cię niepokoi, skontaktuj się z lekarzem.",
"event": {
"irregularRhythm": "Powiadomienie o nieregularnym rytmie",
"highHeartRate": "Powiadomienie o wysokim tętnie",
"lowHeartRate": "Powiadomienie o niskim tętnie",
"walkingSteadiness": "Alert o stabilności chodu",
"breathingDisturbance": "Zaburzenie oddychania podczas snu"
},
"verdict": {
"irregular": "Twoje urządzenie wykryło możliwy nieregularny rytm.",
"notDetected": "Twoje urządzenie nie wykryło nieregularnego rytmu.",
"inconclusive": "Twoje urządzenie nie mogło wykonać pomiaru.",
"low": "Twoje urządzenie wykryło niską stabilność chodu.",
"veryLow": "Twoje urządzenie wykryło bardzo niską stabilność chodu.",
"fired": "Twoje urządzenie zgłosiło to zdarzenie."
}
},
"trendDescriptor": {
"rising": "Rośnie w ciągu 30 dni ({delta}{unit}).",
"falling": "Spada w ciągu 30 dni ({delta}{unit}).",
"stable": "Stabilnie przez ostatnie 30 dni.",
"moodImproved": "Nastrój nieco się poprawił w ciągu 30 dni.",
"moodDeclined": "Nastrój nieco się pogorszył w ciągu 30 dni.",
"moodStable": "Nastrój pozostał stabilny przez ostatnie 30 dni."
},
"target": {
"heading": "Cel"
},
"settings": {
"overviewTitle": "Uporządkuj przegląd",
"overviewDescription": "Pokaż lub ukryj sekcje i ustaw ich kolejność w przeglądzie Analiz."
},
"pillOrder": {
"title": "Sortuj pigułki nawigacyjne",
"description": "Przeciągnij pigułki w wybranej kolejności i pokaż lub ukryj je ikoną oka. Ukryte strony szczegółów znikają również z górnej nawigacji.",
"dragHandle": "Zmień kolejność",
"saveSuccess": "Zapisano kolejność pigułek.",
"saveError": "Zapisanie kolejności pigułek nie powiodło się.",
"save": "Zapisz",
"empty": "Brak dostępnych pigułek nawigacyjnych."
},
"customize": "Dostosuj Analizy",
"regenerateRateLimited": "Osiągnięto limit odświeżeń — spróbuj ponownie później.",
"regenerateUnavailable": "Nie otrzymano nowej analizy — spróbuj ponownie później.",
"regenerateError": "Trwa odświeżanie — spróbuj ponownie za chwilę.",
"deviceScore": {
"learning": "Wciąż poznajemy Twoją linię bazową – kilka kolejnych nocy uzupełni trend.",
"average": "Średnia z 30 dni {value}",
"unitScore": "pkt",
"unitMinutes": "min",
"unitBpm": "ud./min",
"unitKj": "kJ"
},
"sleepQuality": {
"title": "Jakość snu",
"subtitle": "Nocne wyniki z Twojego urządzenia"
},
"recovery": {
"title": "Regeneracja",
"description": "Jak dobrze Twój organizm się zregenerował – sygnały regeneracji, obciążenia i load, które Twoje urządzenie rejestruje w nocy.",
"scoreCrossLink": "Zobacz łączny wynik regeneracji",
"emptyTitle": "Brak danych o regeneracji",
"empty": "Brak danych o regeneracji. Połącz konto WHOOP, Polar lub Oura, a te wyniki uzupełnią się po synchronizacji urządzenia.",
"block": {
"ansChargeExplainer": "Jak naładowany jest Twój autonomiczny układ nerwowy na dany dzień — odczyt regeneracji oparty na nocnych sygnałach serca i oddechu.",
"dayStrainExplainer": "Dzienne obciążenie sercowo-naczyniowe na skali wysiłku Twojego urządzenia. Odczytuj je w odniesieniu do regeneracji, nie jako cel sam w sobie.",
"workoutStrainExplainer": "Jak wymagający był pojedynczy trening na tej samej skali wysiłku — koszt sercowo-naczyniowy tej sesji.",
"cardioLoadExplainer": "Przybliżenie obciążenia treningowego, które śledzi nagromadzone obciążenie sercowo-naczyniowe. Porównuj je z własnymi ostatnimi dniami.",
"averageHeartRateExplainer": "Twoje średnie tętno w ciągu całego dnia lub cyklu, zgodnie z odczytem Twojego urządzenia.",
"maxHeartRateExplainer": "Twoje maksymalne tętno w ciągu całego dnia lub cyklu, zgodnie z odczytem Twojego urządzenia.",
"energyExpenditureKjExplainer": "Energia, którą Twój organizm wydatkował w ciągu dnia, w kilodżulach, zgodnie z natywnym odczytem urządzenia."
}
},
"bodyTempDeviation": {
"title": "Odchylenie temperatury ciała",
"subtitle": "Nocne odchylenie od Twojej linii bazowej"
},
"resilience": {
"explainer": "Jak dobrze Twój organizm równoważy codzienne obciążenie z regeneracją — odczytane z nocnych sygnałów z ostatnich dni.",
"learning": "Wciąż poznajemy Twoją odporność — kilka kolejnych dni ustali poziom.",
"band": {
"limited": "Ograniczona",
"adequate": "Wystarczająca",
"solid": "Solidna",
"strong": "Silna",
"exceptional": "Wyjątkowa"
},
"trend": {
"above": "Powyżej Twojej ostatniej średniej.",
"steady": "Zgodnie z Twoją ostatnią średnią.",
"below": "Poniżej Twojej ostatniej średniej."
}
},
"briefing": {
"memory": {
"forwardWatch": "Warto mieć na oku {metric}.",
"forwardHolding": "Na razie wszystko jest stabilne."
}
},
"updatedTodayAt": "Zaktualizowano dzisiaj, {time}",
"updatedYesterday": "Zaktualizowano wczoraj",
"updatedOn": "Zaktualizowano {date}",
"healthStatus": {
"sectionTitle": "Co się zmieniło",
"subtitle": "Sygnały odbiegające od Twojego zwykłego zakresu.",
"deviationAbove": "{vital} jest powyżej Twojego zwykłego zakresu.",
"deviationBelow": "{vital} jest poniżej Twojego zwykłego zakresu.",
"shiftUp": "{vital} przesunął się w górę względem Twojej ostatniej normy.",
"shiftDown": "{vital} przesunął się w dół względem Twojej ostatniej normy.",
"rangeContext": "Teraz {value}, zwykle {low}–{high}.",
"shiftContext": "Około {before} wcześniej, {after} od tego czasu."
},
"breathingScreening": {
"sectionTitle": "Oddychanie podczas snu",
"subtitle": "Sygnał przesiewowy z Twoich danych o śnie.",
"classificationElevated": "Twoje urządzenie wykryło podwyższone zaburzenia oddychania.",
"classificationNotElevated": "Klasyfikacja Twojego urządzenia nie jest podwyższona.",
"trendUp": "Wzrost względem wcześniejszych nocy.",
"trendDown": "Spadek względem wcześniejszych nocy.",
"trendStable": "Stabilnie względem wcześniejszych nocy.",
"nights": "Śledzono {count} nocy",
"indexLine": "ostatni średni indeks {value}",
"eventsFlagged": "{count} zdarzeń oznaczonych przez urządzenie",
"disclaimer": "To sygnał przesiewowy, a nie diagnoza — skonsultuj się z lekarzem."
},
"labsChanges": {
"sectionTitle": "Od ostatnich badań",
"subtitle": "Jak najnowsze wyniki wypadają na tle poprzednich badań.",
"statusInRange": "w normie",
"statusBelow": "poniżej zakresu",
"statusAbove": "powyżej zakresu",
"directionFlat": "bez zmian"
},
"navGripStrength": "Siła chwytu",
"navPainNrs": "Ból",
"navWaistCircumference": "Talia",
"navWaistToHeight": "Talia/wzrost",
"gripStrength": {
"title": "Siła chwytu",
"description": "Maksymalna siła chwytu dłoni — solidny wskaźnik ogólnej siły ciała. Poniżej progu zależnego od płci (mężczyźni 27 kg, kobiety 16 kg) sygnalizuje prawdopodobną sarkopenię; odczyt prowadzi Twój własny trend.",
"chartTitle": "Siła chwytu",
"emptyState": {
"title": "Brak pomiarów siły chwytu",
"description": "Zapisz pomiar z dynamometru ręcznego (zanotuj najlepszy z kilku ściśnięć), a trend pojawi się tutaj.",
"cta": "Zapisz siłę chwytu"
},
"coachPrefill": "Nie zapisałem jeszcze siły chwytu — co mówi o zdrowiu moich mięśni i jak ją zmierzyć oraz poprawić?"
},
"pain": {
"title": "Ból (0–10)",
"description": "Zgłaszana przez pacjenta intensywność bólu w skali numerycznej 0–10, gdzie 0 to brak bólu, a 10 najgorszy wyobrażalny. Utrzymująca się zmiana o 2 punkty to sygnał do obserwacji.",
"chartTitle": "Ból (0–10)",
"emptyState": {
"title": "Brak ocen bólu",
"description": "Zapisz, jak odczuwasz ból teraz, w skali 0–10, a trend pojawi się tutaj.",
"cta": "Zapisz ocenę bólu"
},
"coachPrefill": "Nie zapisałem jeszcze ocen bólu — jak śledzić ból w skali 0–10 i co liczy się jako istotna zmiana?"
},
"waist": {
"title": "Obwód talii",
"description": "Obwód talii w centymetrach — wskaźnik tłuszczu brzusznego. Próg zwiększonego ryzyka WHO zależy od płci (mężczyźni 94 cm, kobiety 80 cm); odczyt prowadzi Twój własny trend.",
"chartTitle": "Obwód talii",
"emptyState": {
"title": "Brak pomiarów talii",
"description": "Zmierz talię w połowie odległości między najniższym żebrem a kością biodrową, na końcu normalnego wydechu, i zapisz tutaj.",
"cta": "Zapisz obwód talii"
},
"coachPrefill": "Nie zapisałem jeszcze pomiarów talii — jak prawidłowo zmierzyć talię i co oznacza ta liczba dla mojego zdrowia?"
},
"waistToHeight": {
"title": "Stosunek talii do wzrostu",
"description": "Twoja talia podzielona przez wzrost — najbardziej uniwersalna pojedyncza liczba. Utrzymanie go poniżej 0,5 (talia mniejsza niż połowa wzrostu) to prosty cel.",
"chartTitle": "Stosunek talii do wzrostu",
"emptyState": {
"title": "Brak stosunku talii do wzrostu",
"description": "Zapisz stosunek talii do wzrostu, a trend pojawi się tutaj. Zasada: utrzymuj talię poniżej połowy wzrostu.",
"cta": "Zapisz stosunek talii do wzrostu"
},
"coachPrefill": "Nie zapisałem jeszcze stosunku talii do wzrostu — dlaczego to przydatna liczba i jak utrzymać ją poniżej 0,5?"
},
"ecg": {
"sectionTitle": "Zapisy EKG",
"sectionIntro": "Jednoodprowadzeniowe zapisy EKG zarejestrowane przez Twoje urządzenie. HealthLog pokazuje tylko zapis i wynik wygenerowany przez urządzenie — nie odczytuje ani nie interpretuje przebiegu.",
"loadError": "Nie udało się wczytać Twoich zapisów EKG.",
"backToList": "Powrót do zapisów",
"disclaimer": "To jest wynik wygenerowany przez Twoje urządzenie rejestrujące. HealthLog nie odczytuje ani nie interpretuje zapisów EKG i nie stawia diagnozy.",
"clinicianNote": "Jeśli ten wynik Cię niepokoi, omów ten zapis z lekarzem.",
"resultAttribution": "Zarejestrowany wynik: {result}, zgodnie z informacją z urządzenia rejestrującego.",
"result": {
"irregular": "Wykryto migotanie przedsionków",
"notDetected": "Brak oznak migotania przedsionków",
"inconclusive": "Zapis niejednoznaczny",
"none": "Nie zgłoszono wyniku"
},
"meta": {
"recorded": "Zarejestrowano",
"duration": "Czas trwania",
"lead": "Odprowadzenie",
"averageHeartRate": "Średnie tętno",
"samplingRate": "Częstotliwość próbkowania",
"leadSingle": "Jedno odprowadzenie (odprowadzenie I)",
"durationValue": "{seconds} s",
"bpmValue": "{bpm} bpm",
"hzValue": "{hz} Hz",
"unknown": "—"
},
"waveform": {
"ariaLabel": "Zapis EKG zarejestrowany {date}, czas trwania {duration}, średnie tętno {heartRate}, zarejestrowany wynik: {result}."
},
"crossLink": {
"title": "Zapisy EKG",
"recordingsOne": "1 zapis w kartotece.",
"recordingsMany": "Zapisy w kartotece: {count}.",
"latestResult": "Ostatni wynik urządzenia: {result}.",
"cta": "Zobacz zapisy"
},
"emptyTitle": "Brak zapisów EKG",
"emptyDescription": "Zapisy EKG synchronizują się z kompatybilnego urządzenia jednoodprowadzeniowego. Gdy urządzenie prześle zapis, pojawi się tutaj.",
"emptyCta": "Połącz urządzenie"
},
"intradayPulse": {
"title": "Przebieg Twojego dnia",
"caption": "Twoje tętno w ciągu dnia, uśrednione w 10-minutowych odcinkach.",
"hourlyNote": "Pokazano średnią godzinową dla tego dnia — ostatnie dni pokazują pełny, 10-minutowy szczegół.",
"empty": "Za mało pomiarów z tego dnia, aby pokazać jego przebieg.",
"coverageOne": "Na podstawie 1 pomiaru w ciągu {hours}h.",
"coverageMany": "Na podstawie {count} pomiarów w ciągu {hours}h.",
"baseline": "Spoczynek",
"today": "Dziś",
"previousDay": "Poprzedni dzień",
"nextDay": "Następny dzień",
"tension": {
"morning": "Utrzymujący się podwyższony spoczynek rano — możliwe napięcie.",
"afternoon": "Utrzymujący się podwyższony spoczynek po południu — możliwe napięcie.",
"evening": "Utrzymujący się podwyższony spoczynek wieczorem — możliwe napięcie.",
"night": "Utrzymujący się podwyższony spoczynek w nocy — możliwe napięcie."
}
},
"navEcg": "EKG"
},
"thresholds": {
"defaultLabel": "Domyślne",
"overrideToggleLabel": "Własne wartości",
"resetAction": "Przywróć wartość domyślną",
"resetAllAction": "Przywróć wszystkie wartości domyślne",
"resetAllTitle": "Zresetować wszystkie własne zakresy?",
"resetAllBody": "Każda metryka wraca do zakresu domyślnego. Ustawione wartości nie są nigdzie indziej zapisane i nie da się ich odzyskać.",
"resetAllConfirm": "Zresetuj wszystkie",
"resetTitle": "Zresetować ten zakres?",
"resetBody": "Metryka wraca do zakresu domyślnego. Ustawione wartości nie są nigdzie indziej zapisane i nie da się ich odzyskać.",
"resetConfirm": "Zresetuj zakres",
"minLabel": "Min",
"maxLabel": "Maks",
"unitSuffix": "({unit})",
"outOfBoundsHint": "Dozwolony zakres: {min}–{max} {unit}",
"overrideWarning": "Wartości poza wytycznymi mogą prowadzić do niezdrowych celów. Personalizuj tylko po konsultacji z lekarzem.",
"saveSuccess": "Cele zaktualizowane",
"saveError": "Nie udało się zapisać celów",
"resetSuccess": "Przywrócono wartość domyślną",
"sourceOverride": "Własna wartość",
"metricWeight": "Waga",
"metricBpSys": "Ciśnienie tętnicze (skurczowe)",
"metricBpDia": "Ciśnienie tętnicze (rozkurczowe)",
"metricPulse": "Tętno spoczynkowe",
"metricBodyFat": "Tkanka tłuszczowa",
"metricSleep": "Czas snu",
"metricSteps": "Kroki/dzień",
"metricGlucoseFasting": "Glikemia — na czczo",
"metricGlucosePostprandial": "Glikemia — po posiłku",
"metricGlucoseRandom": "Glikemia — dowolna",
"metricGlucoseBedtime": "Glikemia — przed snem",
"metricBodyWater": "Woda w organizmie",
"metricBoneMass": "Masa kostna",
"metricOxygenSaturation": "Saturacja tlenem (SpO₂)",
"unsetExplanation": "Brak własnej wartości — aktywna jest wartość domyślna."
},
"onboarding": {
"errorGeneric": "Coś poszło nie tak podczas kończenia konfiguracji. Spróbuj ponownie.",
"tour": {
"stepOf": "Krok {current} z {total}",
"next": "Dalej",
"back": "Wstecz",
"skip": "Pomiń tour",
"done": "Rozumiem",
"steps": {
"dashboardOverview": {
"title": "Twój pulpit",
"body": "Pulpit zbiera wszystkie moduły na jednym ekranie. Przytrzymaj kafelek, aby go przestawić lub ukryć (Ustawienia → Układ pulpitu). Kafelek jest wart tyle, ile dane za nim — kolejne moduły je wypełniają."
},
"quickAdd": {
"title": "Zapisane w kilka sekund",
"body": "Przez „+ Dodaj” zapiszesz każdy pomiar w sekundy — wagę, ciśnienie, tętno, glukozę. Ukryta moc: datowanie wstecz zapomnianych wartości. Wszystko, co tu wpiszesz, zasila trendy, wynik zdrowia i analizy AI."
},
"measurements": {
"title": "Pomiary i zakresy docelowe",
"body": "Pomiary pokazują historię i zakres docelowy każdej metryki. Ukryta perełka: ustaw zakres na wartość, aby odchylenia rzucały się w oczy kolorem. Te serie są podstawą korelacji Coacha i raportu dla lekarza."
},
"medications": {
"title": "Leki i przyjęcia",
"body": "Leki zarządzają harmonogramami, przyjęciami, zapasem i titracją. Ukryte: plany cykliczne (RRULE/przesuwne) i ostrzeżenia o niskim zapasie. Twój wskaźnik przyjęć zasila filar stosowania na pulpicie oraz kontekst AI."
},
"labs": {
"title": "Wyniki laboratoryjne",
"body": "Laboratorium gromadzi biomarkery z zakresami referencyjnymi — morfologia, cholesterol, HbA1c. Atut: import i eksport FHIR. Wartości poza zakresem wracają jako dowody w analizach i w raporcie dla lekarza."
},
"illness": {
"title": "Dziennik chorób",
"body": "Dziennik chorób zapisuje ostre epizody i przewlekłe diagnozy wraz z zaostrzeniami. Ukryte: korelacja epizodu z pomiarami oraz Tryb odpoczynku wstrzymujący przypomnienia. Dzięki temu Coach rozumie, czemu wartości przez chwilę odbiegają."
},
"vorsorge": {
"title": "Badania",
"body": "Badania przypominają o przeglądach i szczepieniach z własnym interwałem. Wskazówka: „Wykonane” może od razu utworzyć pomiar lub wynik laboratoryjny. Terminy pojawiają się jako przypomnienia i w raporcie dla lekarza."
},
"cycle": {
"title": "Cykl",
"body": "Śledzenie cyklu zapisuje fazy i objawy. Ukryte: zestawienie objawów z nastrojem i snem. Cykl daje kontekst wahaniom, które inaczej wyglądałyby na niewyjaśnione."
},
"mood": {
"title": "Nastrój",
"body": "Nastrój zapisuje samopoczucie i tagi w dwie sekundy. Atut: własne tagi. Trendy nastroju korelują ze snem, lekami i cyklem — Coach dostrzega wzorce."
},
"insights": {
"title": "Analizy",
"body": "Analizy to serce aplikacji: dynamiczna analiza oparta na dowodach zamiast ogólnych porad — każde stwierdzenie wskazuje na Twoje realne dane. Ukryte: układ można dostosować. Analizy łączą wszystko, co dostarczają moduły powyżej."
},
"coach": {
"title": "Coach",
"body": "Coach odpowiada na pytania o Twoje dane w dialogu, korzystając z wywiadu, leków i wyników jako kontekstu. Dostawcę AI wybierasz sam (własny klucz lub lokalnie). Niczego nie przelicza — czyta te same liczby co pulpit."
},
"integrations": {
"title": "Integracje",
"body": "Integracje synchronizują Withings, WHOOP, Polar, Oura i Apple Health automatycznie. Waga, sen i regeneracja uzupełniają się bez wpisywania, a z kolei zasilają analizy i Coacha."
},
"export": {
"title": "Raport dla lekarza",
"body": "Raport dla lekarza łączy pomiary, leki, wyniki laboratoryjne i badania w PDF lub FHIR na wizytę. Tu zbiegają się wszystkie moduły — pełny raport powstaje tylko z zadbanych danych."
},
"achievements": {
"title": "Osiągnięcia",
"body": "Osiągnięcia nagradzają konsekwencję — passy i kamienie milowe. Mała pętla motywacji, dzięki której łatwiej wytrwać."
},
"wrapUp": {
"title": "To koniec przewodnika",
"body": "Ten przewodnik pokazuje się tylko raz — nie otworzy się ponownie sam. Wszystko, co pokazał, zostaje na miejscu, a funkcje możesz włączać i wyłączać w dowolnym momencie w Ustawienia → Moduły."
}
}
},
"shell": {
"back": "Wstecz",
"skip": "Pomiń",
"next": "Dalej",
"step1of4": "Krok 1 z 4",
"step2of4": "Krok 2 z 4",
"step3of4": "Krok 3 z 4",
"step4of4": "Krok 4 z 4"
},
"goals": {
"title": "Co chcesz śledzić?",
"body": "Wybierz obszary, które są dla Ciebie ważne — pokażemy je najpierw na pulpicie i pomogą Ci zdecydować, co skonfigurować dalej.",
"helpHint": "Od jednego do trzech priorytetów zwykle sprawdza się najlepiej — możesz dodać kolejne w dowolnej chwili.",
"options": {
"weightManagement": "Kontrola wagi",
"bpTracking": "Ciśnienie",
"glucoseTracking": "Glukoza",
"sleepImprovement": "Lepszy sen",
"medicationCompliance": "Leki",
"generalWellness": "Ogólna forma"
}
},
"source": {
"title": "Połącz źródło",
"body": "Pobieraj pomiary automatycznie lub zostań przy wpisywaniu ręcznym. Nic nie jest tu konfigurowane za Ciebie — każda karta pokazuje tylko, gdzie to połączyć. Źródła sprzętowe wymagają darmowej aplikacji deweloperskiej na Twoim własnym koncie (około 5 minut); przewodnik na każdej karcie prowadzi krok po kroku.",
"recommended": "Polecane",
"manual": {
"title": "Wpis ręczny",
"body": "Rejestruj pomiary samodzielnie, kiedy Ci pasuje. Działa na każdym urządzeniu, bez konta u podmiotu trzeciego."
},
"withings": {
"title": "Withings",
"body": "Wagi, ciśnieniomierze i trackery Withings synchronizują się automatycznie po połączeniu.",
"cta": "Połącz Withings",
"setupCta": "Skonfiguruj w Ustawieniach",
"setupHint": "Najpierw wymaga własnej, darmowej aplikacji deweloperskiej Withings — około 5 minut, jednorazowo."
},
"more": {
"title": "Więcej źródeł",
"body": "Połącz dowolne z nich w Ustawieniach, gdy zechcesz — większość wymaga najpierw darmowej aplikacji deweloperskiej na Twoim własnym koncie.",
"appleHealth": "Apple Health",
"whoop": "WHOOP",
"oura": "Oura",
"polar": "Polar",
"nightscout": "Nightscout",
"fitbit": "Fitbit"
},
"import": "Importuj istniejącą historię"
},
"baseline": {
"title": "Kilka słów o Tobie",
"body": "Cztery opcjonalne pola doprecyzują wartości docelowe, BMI i przypomnienia. Wszystko możesz później zmienić w ustawieniach.",
"displayNameLabel": "Nazwa wyświetlana",
"displayNamePlaceholder": "Jak HealthLog ma się do Ciebie zwracać?",
"displayNameHint": "Pojawia się w powitaniu na pulpicie i w raportach.",
"heightLabel": "Wzrost (cm)",
"heightLabelFtIn": "Wzrost (ft, in)",
"genderLabel": "Płeć",
"genderNone": "Wolę nie podawać",
"genderMale": "Mężczyzna",
"genderFemale": "Kobieta",
"genderOther": "Inna",
"dateOfBirthLabel": "Data urodzenia",
"dateOfBirthHint": "Używana wyłącznie do analiz zależnych od wieku.",
"saveCta": "Zapisz i kontynuuj"
},
"done": {
"title": "Wszystko gotowe",
"body": "Witaj na pokładzie. Pulpit czeka na Ciebie.",
"returnCta": "Otwórz pulpit",
"learning": "Niektóre wnioski — glukoza, rytm snu, trendy ciśnienia, cykl — wyostrzają się w ciągu pierwszego tygodnia lub dwóch, w miarę gromadzenia danych. Puste kafelki oznaczają teraz tylko, że wciąż poznajemy Twój punkt odniesienia.",
"connectCta": "Połącz urządzenie",
"logCta": "Zapisz pierwszy pomiar",
"importCta": "Importuj istniejącą historię",
"modulesCta": "Wybierz swoje moduły"
},
"welcomeBack": {
"title": "Witaj ponownie",
"body": "Wstępne kroki masz już za sobą. Aby coś zmienić, otwórz ustawienia — wszystko, co skonfigurowałeś, da się tam edytować.",
"cta": "Otwórz pulpit"
},
"disclaimer": {
"acknowledge": "Rozumiem: HealthLog to prywatne narzędzie do śledzenia, a nie ocena kliniczna ani diagnoza. Gdy się niepokoję, rozmawiam z lekarzem, a nie z tą aplikacją.",
"learnMore": "Dowiedz się więcej"
},
"welcome": {
"title": "Witaj w HealthLog",
"carouselLabel": "Karuzela powitalna",
"slideOf": "Slajd {current} z {total}",
"prevSlide": "Poprzedni slajd",
"nextSlide": "Następny slajd",
"gotoSlide": "Przejdź do slajdu {index}",
"cta": "Zaczynamy",
"slide1": {
"title": "Śledź każdy sygnał",
"body": "Waga, ciśnienie, glukoza, sen, nastrój — wszystko w jednym dzienniku, który należy do Ciebie."
},
"slide2": {
"title": "Połącz swoje źródła",
"body": "Synchronizuj z Apple Health i Withings lub dodawaj odczyty ręcznie. Twoje dane zostają na Twoim serwerze."
},
"slide3": {
"title": "Zobacz wzorce",
"body": "Codzienne podsumowania, wykresy trendów i coach, który wskazuje co się zmieniło — wszystko na Twoim urządzeniu."
}
},
"anamnesis": {
"title": "O Twoim zdrowiu (opcjonalnie)",
"subtitle": "Trochę kontekstu, aby HealthLog rzetelniej odczytywał Twoje wyniki.",
"intro": "Podziel się tym, czym chcesz — każde pole jest opcjonalne i możesz je zmienić w dowolnej chwili w Ustawieniach.",
"conditionsLabel": "Aktualne schorzenia",
"conditionsPlaceholder": "np. nadciśnienie, cukrzyca typu 2",
"conditionsHint": "Pomaga HealthLog ujmować Twoje pomiary w kontekście, zamiast oznaczać to, czego należy się spodziewać.",
"allergiesLabel": "Alergie lub nietolerancje",
"allergiesPlaceholder": "np. penicylina, laktoza",
"privacyNote": "Przechowywane w postaci zaszyfrowanej i używane tylko po to, by dać Ci lepszy kontekst. Nie pytamy tu o leki — dodasz je w dowolnej chwili na stronie Leki."
},
"ai": {
"panelTitle": "Zobacz, jak wyglądają insighty",
"panelIntro": "Coach, codzienny briefing i oceny dla poszczególnych metryk zamieniają Twoje własne liczby w prosty język. Oto jak to wygląda — zanim cokolwiek podłączysz.",
"showSample": "Zobacz przykładowy briefing",
"sampleTitle": "Codzienny briefing",
"sampleTag": "Przykład",
"sampleAriaLabel": "Przykładowy codzienny briefing",
"sampleBody": "Waga niższa o 1,2 kg w ciągu dwóch tygodni. Tętno spoczynkowe stabilne na 58 bpm. Ciśnienie w normie przez 6 z 7 dni — jedyny wysoki odczyt nastąpił po późnej, słonej kolacji.",
"sampleCaption": "Tylko przykład — to nie są Twoje dane. Tak czyta się briefing, gdy insighty są włączone.",
"ladderTitle": "Trzy sposoby, by to włączyć",
"ladderLocalTitle": "Model lokalny — nic nie opuszcza Twojej sieci",
"ladderLocalBody": "Skieruj HealthLog na Ollama lub LM Studio na własnej maszynie. Za darmo i w pełni prywatnie — spokojny wybór domyślny.",
"ladderByokTitle": "Użyj własnego klucza",
"ladderByokBody": "Użyj własnego klucza OpenAI lub Anthropic. Działa na Twoim koncie i rozliczeniu, a poziom API domyślnie wyklucza Twoje dane z treningu.",
"ladderOauthTitle": "Zaloguj się przez subskrypcję",
"ladderOauthBody": "Podłącz konto ChatGPT — bez kosztu za token, ale warunki poziomu konsumenckiego mogą wykorzystywać treści do treningu, więc to świadomy wybór, nigdy domyślny dla danych o zdrowiu.",
"keylessLine": "HealthLog jest w pełni użyteczny bez AI. Twoje kafelki, wykresy, trendy i eksporty działają — AI dokłada tylko odczyt prostym językiem.",
"setupCta": "Skonfiguruj (około minuty)",
"sharedKeyNote": "Ta instancja udostępnia już wspólnego dostawcę AI, więc insighty działają dla Ciebie od razu — bez konfiguracji."
}
},
"gettingStarted": {
"title": "Pierwsze kroki",
"subtitle": "Szybkie zwycięstwa, aby wycisnąć z HealthLog maksimum.",
"progress": "{done} z {total} wykonanych",
"dismissAll": "Ukryj listę",
"dismissTooltip": "Ukryj ten punkt",
"items": {
"profileTitle": "Skonfiguruj profil",
"profileDescription": "Wzrost, data urodzenia i płeć odblokowują spersonalizowane cele.",
"profileCta": "Otwórz profil",
"measurementTitle": "Zarejestruj pierwszy pomiar",
"measurementDescription": "Jeden pomiar aktywuje kafelek — trend rysuje się od 5. pomiaru.",
"measurementCta": "Dodaj pomiar",
"medicationTitle": "Dodaj lek",
"medicationDescription": "Śledź przestrzeganie i otrzymuj przypomnienia dokładnie wtedy, kiedy ich potrzebujesz.",
"medicationCta": "Dodaj lek",
"dataSourceTitle": "Połącz źródło danych (opcjonalnie)",
"dataSourceDescription": "Automatycznie synchronizuj wagę, ciśnienie, sen i więcej z Withings, WHOOP, Oura, Polar, Nightscout, Fitbit lub Apple Health.",
"dataSourceCta": "Połącz",
"notificationsTitle": "Skonfiguruj powiadomienia",
"notificationsDescription": "Wybierz, jak HealthLog ma ci przypominać — Telegram, ntfy lub Web Push.",
"notificationsCta": "Otwórz powiadomienia",
"insightsTitle": "Włącz insighty (opcjonalnie)",
"insightsDescription": "Dodaj model lokalny lub własny klucz AI, aby odblokować codzienny briefing i Coach.",
"insightsCta": "Włącz insighty"
}
},
"trendHints": {
"title": "Pierwszy trend po 5 pomiarach",
"remainingOne": "Jeszcze 1 pomiar do trendu.",
"remainingMany": "Jeszcze {count} pomiarów do trendu."
},
"settings": {
"researchMode": {
"sectionTitle": "Tryb Badawczy",
"subtitle": "Opcjonalne wyświetlanie szacowanej krzywej poziomu leku GLP-1, wyprowadzonej z farmakokinetyki populacyjnej opublikowanej przez EMA. Tylko do odczytu — nigdy pomiar ani porada medyczna.",
"toggleLabel": "Pokaż szacowaną krzywą poziomu leku",
"disabledStatus": "Wyłączone. Krzywa jest ukryta.",
"enabledStaleStatus": "Disclaimer został zaktualizowany. Potwierdź ponownie poniżej, aby przywrócić krzywą.",
"acknowledgedOn": "Potwierdzono {date}.",
"rePromptTitle": "Zaktualizowano disclaimer",
"rePromptBody": "Disclaimer trybu Badawczego został zaktualizowany od czasu twojego ostatniego potwierdzenia. Przeczytaj go ponownie i potwierdź, aby krzywa pozostała widoczna.",
"rePromptCta": "Potwierdź ponownie disclaimer",
"disableError": "Nie udało się wyłączyć trybu Badawczego. Spróbuj ponownie."
},
"shell": {
"sectionsNav": "Sekcje ustawień",
"groups": {
"account": "Konto",
"yourData": "Twoje dane",
"display": "Wyświetlanie",
"healthProfile": "Profil zdrowotny",
"ai": "AI",
"connectivity": "Łączność",
"system": "System"
}
},
"sections": {
"account": {
"title": "Konto",
"description": "Profil, hasło, klucze dostępu i przewodnik wprowadzający.",
"subtitle": "Twój profil, tożsamość i dane logowania."
},
"integrations": {
"title": "Integracje",
"description": "Połączone usługi, kanały dostarczania i priorytet źródeł w jednym miejscu.",
"subtitle": "Połącz i zarządzaj źródłami danych oraz urządzeniami.",
"connectionsHeading": "Połączenia",
"connectionsDescription": "Połącz i zarządzaj źródłami danych oraz urządzeniami.",
"channelsHeading": "Kanały dostarczania",
"channelsDescription": "Gdzie dostarczane są przypomnienia i powiadomienia.",
"matrixLink": "Powiadomienia wg kanału"
},
"notifications": {
"title": "Powiadomienia",
"description": "Wszystkie przypomnienia w jednym miejscu — co i kiedy oraz gdzie są dostarczane.",
"subtitle": "Wybierz, które przypomnienia otrzymujesz i gdzie są dostarczane.",
"remindersHeading": "Przypomnienia",
"remindersDescription": "Co otrzymujesz.",
"matrixLink": "Powiadomienia wg kanału",
"channelsLink": "Kanały dostarczania"
},
"layout": {
"title": "Wygląd",
"description": "Ustal, jak wyglądają i są rozłożone pulpit, analizy i Twoje moduły śledzenia.",
"backToHub": "Powrót do Wygląd",
"dashboard": {
"title": "Pulpit",
"description": "Układ i kolejność kafelków."
},
"insights": {
"title": "Analizy",
"description": "Kolejność przeglądu i pigułek nawigacyjnych."
},
"subtitle": "Dostosuj wygląd pulpitu, analiz i modułów śledzenia.",
"medications": {
"title": "Leki",
"description": "Widok listy i ręczna kolejność."
},
"labs": {
"title": "Laboratorium",
"description": "Widok, sortowanie i ręczna kolejność."
},
"illness": {
"title": "Dziennik chorób",
"description": "Widok listy i kolejność epizodów."
},
"vorsorge": {
"title": "Badania kontrolne",
"description": "Widok listy i kolejność przypomnień."
},
"mood": {
"title": "Tagi nastroju",
"description": "Grupy, tagi i zarchiwizowane tagi w wyborze nastroju."
}
},
"dashboard": {
"title": "Pulpit",
"description": "Układ i kolejność kafelków.",
"subtitle": "Rozmieść kafelki na pulpicie."
},
"thresholds": {
"title": "Cele",
"description": "Dla każdej metryki: własny zakres docelowy zdrowych wartości.",
"subtitle": "Ustaw osobiste zakresy docelowe dla każdej metryki."
},
"sources": {
"title": "Priorytet źródeł",
"description": "Wybierz, które źródło wygrywa, gdy kilka rejestruje tę samą metrykę tego samego dnia.",
"integrationsHint": "Źródła danych podłączysz lub odłączysz na stronie integracji.",
"integrationsHintLink": "Otwórz integracje",
"cardTitle": "Priorytet źródeł według metryki",
"help": "Gdy kilka źródeł dostarcza tę samą wartość tego samego dnia, źródło na górze liczy się jako kanoniczne. Pozostałe pozostają zapisane na potrzeby audytu.",
"resetDefaults": "Przywróć wartości domyślne",
"resetDefaultsTitle": "Zresetować kolejność źródeł?",
"resetDefaultsBody": "Każda ustawiona przez ciebie kolejność wraca do domyślnej, dla wszystkich metryk i typów urządzeń naraz. Zapis następuje natychmiast i nie da się go cofnąć.",
"resetDefaultsConfirm": "Zresetuj kolejność",
"moveUp": "W górę",
"moveDown": "W dół",
"saveSuccess": "Zapisano priorytet źródeł.",
"saveError": "Zapisanie priorytetu źródeł nie powiodło się.",
"resetSuccess": "Przywrócono domyślny priorytet źródeł.",
"perMetricToggle": "Ustawienia dla poszczególnych metryk ({count})",
"perMetricHelp": "Metryki dostosowane względem domyślnej kolejności. Użyj tej listy, aby przywrócić pojedynczą metrykę do wartości domyślnej, nie zmieniając pozostałych.",
"perMetricEmpty": "Brak indywidualnych ustawień — każda metryka korzysta z globalnej kolejności powyżej.",
"resetMetric": "Resetuj",
"deviceTypeToggle": "Priorytet według typu urządzenia ({count})",
"deviceTypeHelp": "W obrębie źródła decyduje, które urządzenie wygrywa. Gdy Apple Watch i iPhone rejestrują kroki, wyżej sklasyfikowany typ urządzenia liczy się jako odczyt kanoniczny.",
"deviceTypeDefault": "Domyślna kolejność typów urządzeń",
"resetDeviceTypes": "Resetuj typy urządzeń",
"metrics": {
"steps": "Kroki",
"activeEnergy": "Aktywna energia",
"walkingRunningDistance": "Dystans marszu + biegu",
"flightsClimbed": "Pokonane piętra",
"sleep": "Sen",
"weight": "Waga",
"bloodPressure": "Ciśnienie krwi",
"pulse": "Tętno",
"bodyFat": "Tkanka tłuszczowa",
"bodyTemperature": "Temperatura ciała",
"spo2": "Saturacja tlenem",
"hrv": "Zmienność rytmu serca",
"restingHeartRate": "Tętno spoczynkowe",
"vo2Max": "VO2 max",
"skinTemperature": "Temperatura skóry",
"respiratoryRate": "Częstość oddechów",
"recovery": "Regeneracja",
"stress": "Stres",
"sleepDebt": "Dług snu"
},
"sourceLabels": {
"WITHINGS": "Withings",
"APPLE_HEALTH": "Apple Health",
"MANUAL": "Wpis ręczny",
"IMPORT": "Importuj",
"WHOOP": "WHOOP",
"FITBIT": "Fitbit",
"COMPUTED": "Obliczone"
},
"deviceLabels": {
"watch": "Zegarek",
"band": "Opaska",
"ring": "Pierścień",
"phone": "Telefon",
"scale": "Waga",
"other": "Inne",
"unknown": "Nieznane"
},
"subtitle": "Zdecyduj, które źródło wygrywa, gdy dwa podają tę samą metrykę.",
"nutrients": {
"title": "Zsynchronizowane spożycie składników",
"description": "Dzienne sumy z Apple Health z ostatnich {days} dni. Tylko do odczytu — wartości należą do aplikacji źródłowej.",
"empty": "Nie zsynchronizowano jeszcze danych o składnikach odżywczych.",
"latest": "{amount} {unit} dnia {date}",
"daysWithData": "{count} z {days} dni",
"moduleHint": "Synchronizacją steruje moduł spożycia składników odżywczych.",
"moduleHintLink": "Zarządzaj modułami"
}
},
"ai": {
"title": "Dostawca AI",
"description": "Dostawca, model i klucz API do analiz, a także Twój kontekst „o mnie”.",
"subtitle": "Wybierz dostawcę AI i użyj własnego klucza."
},
"api": {
"title": "API & Tokens",
"description": "Tokeny Bearer dla własnych skryptów i aplikacji — zapisuj pomiary lub przyjęcia leków z dowolnego miejsca.",
"subtitle": "Zarządzaj punktami końcowymi API i tokenami dostępu."
},
"advanced": {
"title": "Zaawansowane",
"description": "Opt-in przełącznika trybu Badawczego oraz strefa zagrożenia umożliwiająca nieodwracalne wymazanie wszystkich danych zdrowotnych.",
"subtitle": "Tryb badawczy, reset danych i usunięcie konta."
},
"export": {
"title": "Eksport i import",
"description": "Pobierz swoje dane jako CSV lub pełną kopię zapasową JSON albo zaimportuj z Apple Health, JSON lub CSV. Raport dla lekarza znajdziesz teraz w Dokumentacji zdrowotnej.",
"otherOptionsHeading": "Inne opcje eksportu",
"downloadFailed": "Nie udało się pobrać eksportu. Spróbuj ponownie.",
"actions": {
"download": "Pobierz"
},
"filters": {
"since": "Od",
"until": "Do"
},
"cards": {
"measurementsCsv": {
"title": "Pomiary",
"description": "Waga, ciśnienie, tętno, glukoza i wszystkie inne pomiary jako wartości rozdzielone przecinkami."
},
"medicationsCsv": {
"title": "Leki",
"description": "Lista leków z dawkowaniem, harmonogramem i (opcjonalnie) pełną historią przyjęć.",
"includeIntake": "Dołącz historię przyjęć"
},
"moodCsv": {
"title": "Nastrój",
"description": "Codzienne wpisy nastroju z oceną, tagami i znacznikami czasu."
},
"fullBackup": {
"title": "Pełna kopia zapasowa",
"description": "Twoje pomiary, leki, nastrój, cykl, wyniki badań, epizody chorobowe, alergie, wywiad rodzinny, składniki odżywcze, treningi, Twój profil zdrowia i własne wskaźniki w jednym pliku JSON. Ten sam kształt co cotygodniowa kopia automatyczna. Niektóre rodzaje wpisów nie są jeszcze przenoszone — manifest pliku wskazuje, co zawiera.",
"scopeNote": "Metadane dokumentów oraz podsumowanie AI, jeśli istnieje, są uwzględnione jako czysty tekst; oryginalne pliki dokumentów oraz dane tras GPS/próbek treningów nie są uwzględnione — pobierz je osobno z archiwum dokumentów lub eksportu treningów.",
"encryptToggle": "Zaszyfruj hasłem-frazą",
"passphrasePlaceholder": "Hasło-fraza (min. 12 znaków)",
"passphraseHelp": "Wyprowadza klucz archiwum za pomocą Argon2id i pieczętuje je AES-256-GCM. Zapisz plik z rozszerzeniem .hlx.",
"noRecoveryWarning": "Nie ma odzyskiwania — jeśli zgubisz tę frazę, archiwum nie da się otworzyć. Przechowuj ją bezpiecznie.",
"stepUpNeeded": "Potwierdź drugi składnik i spróbuj ponownie."
}
},
"import": {
"heading": "Import",
"description": "Zaimportuj dane do HealthLog z eksportu Apple Health lub pliku JSON. Import pomija wiersze, które już istnieją, więc ponowne uruchomienie jest bezpieczne.",
"charCount": "{used} / {max} znaków",
"appleHealth": {
"title": "Apple Health",
"description": "Prześlij plik export.zip z aplikacji Zdrowie na iPhonie (Profil → Eksportuj wszystkie dane zdrowotne).",
"dropLabel": "Upuść tutaj export.zip",
"dropHint": "lub kliknij, aby wybrać plik",
"fileInputLabel": "Wybierz plik export.zip z Apple Health",
"choose": "Wybierz plik",
"idempotencyNote": "Ponowne przesłanie tego samego archiwum scala dane — nie tworzy duplikatów. Duże archiwa są przetwarzane w tle.",
"uploading": "Przesyłanie…",
"uploadFailed": "Przesyłanie nie powiodło się. Spróbuj ponownie.",
"rateLimited": "Zbyt wiele przesłań. Poczekaj chwilę i spróbuj ponownie.",
"tooLarge": "Ten plik jest za duży (limit 1,5 GB).",
"failed": "Import nie powiódł się.",
"rowsImported": "Zaimportowano dotąd {count} wierszy",
"doneSummary": "Gotowe — zaimportowano {imported} z {read} rekordów, pominięto {skipped} rekordów klinicznych.",
"doneNothing": "Z tego archiwum nic nie zaimportowano: dotarło 0 z {read} rekordów.",
"ecgResult": "EKG: wykryto {discovered}, zaimportowano {imported}, zaktualizowano {updated}, pominięto {skipped}, nie powiodło się {failed}. Błędy EKG nie usuwają obsługiwanych rekordów zaimportowanych z pliku export.xml.",
"estimateWarning": "Łączne wartości dla {count} dni oszacowano na podstawie największego źródła w eksporcie. Natywne statystyki Apple Health pozostają nadrzędne.",
"phase": {
"queued": "W kolejce…",
"unpacking": "Rozpakowywanie archiwum…",
"parsing": "Odczytywanie eksportu…",
"upserting": "Importowanie rekordów…"
}
},
"json": {
"title": "Plik JSON",
"description": "Wklej JSON lub prześlij plik .json z pomiarami i wpisami nastroju.",
"pasteLabel": "Wklej JSON",
"fileInputLabel": "Wybierz plik JSON do zaimportowania",
"schemaHint": "Dwie tablice: measurements i moodEntries.",
"docsLink": "Zobacz schemat i przykład.",
"uploadFile": "Prześlij plik",
"downloadExample": "Pobierz przykład",
"import": "Importuj",
"invalidJson": "To nie jest prawidłowy JSON. Sprawdź składnię i spróbuj ponownie.",
"invalidPayload": "Dane nie pasują do schematu importu.",
"rateLimited": "Zbyt wiele importów w tej godzinie (limit 5). Spróbuj później.",
"failed": "Import nie powiódł się. Spróbuj ponownie.",
"readFailed": "Nie można odczytać tego pliku.",
"resultSummary": "Zaimportowano {measurements} pomiarów i {moods} wpisów nastroju, pominięto {skipped}.",
"resultSuccess": "Zaimportowano {measurements} pomiarów i {moods} wpisów nastroju.",
"resultNothing": "Nic nie zaimportowano. Pominięto wszystkie {skipped} wpisów.",
"resultEmpty": "Ten plik nie zawierał pomiarów ani wpisów nastroju."
},
"csv": {
"title": "Plik CSV",
"description": "Importuj pomiary z arkusza lub eksportu z urządzenia. Jeden wiersz na odczyt.",
"pasteLabel": "Wklej CSV",
"fileInputLabel": "Wybierz plik CSV do zaimportowania",
"schemaHint": "Kolumny: type, value, unit, measuredAt (z przesunięciem strefy czasowej) oraz opcjonalnie glucoseContext, notes, externalId.",
"docsLink": "Zobacz schemat kolumn i przykład.",
"uploadFile": "Prześlij plik",
"downloadExample": "Pobierz przykład",
"preview": "Podgląd",
"import": "Importuj",
"empty": "Dodaj co najmniej jeden wiersz CSV przed importem.",
"rateLimited": "Zbyt wiele importów w tej godzinie (limit 5). Spróbuj ponownie później.",
"tooLarge": "Ten plik jest za duży (limit 16 MB).",
"invalidPayload": "Nie udało się przetworzyć pliku CSV. Sprawdź wiersz nagłówka i spróbuj ponownie.",
"failed": "Import nie powiódł się. Spróbuj ponownie.",
"readFailed": "Nie udało się odczytać tego pliku.",
"previewSummary": "Podgląd: {inserted} zostanie zaimportowanych, pominięto {skipped}.",
"resultSummary": "Zaimportowano {inserted} nowych i zaktualizowano {updated}, pominięto {skipped}.",
"rowError": "Wiersz {line}: {reason}",
"resultSuccess": "Zaimportowano {inserted} nowych i zaktualizowano {updated}.",
"resultNothing": "Nic nie zaimportowano. Pominięto wszystkie {skipped} wierszy.",
"resultEmpty": "Ten plik ma nagłówek, ale nie zawiera wierszy danych.",
"previewSuccess": "Podgląd: {inserted} zostanie zaimportowanych.",
"previewNothing": "Podgląd: nic nie zostanie zaimportowane. Pominięte zostaną wszystkie {skipped} wierszy.",
"skipGroupOne": "Pominięto {count} wiersz: {reason}",
"skipGroupFew": "Pominięto {count} wiersze: {reason}",
"skipGroupOther": "Pominięto {count} wierszy: {reason}",
"skipDetails": "Pokaż wszystkie pominięte wiersze",
"reasonUnknownType": "nieznany typ pomiaru",
"reasonInvalidValue": "wartość nie jest liczbą",
"reasonValueOutOfRange": "wartość poza wiarygodnym zakresem",
"reasonUnknownUnit": "jednostka nierozpoznana dla tego typu",
"reasonMissingTimezoneOffset": "znacznik czasu bez przesunięcia strefy czasowej",
"reasonInvalidTimestamp": "nie udało się odczytać znacznika czasu",
"reasonImplausibleTimestamp": "znacznik czasu w przyszłości lub sprzed 1900 roku",
"reasonUnexpectedGlucoseContext": "kontekst glukozy w wierszu, który nie jest pomiarem glukozy",
"reasonInvalidGlucoseContext": "kontekst glukozy nie jest dozwoloną wartością",
"reasonNotesTooLong": "notatka jest zbyt długa",
"reasonExternalIdTooLong": "identyfikator zewnętrzny jest zbyt długi",
"reasonUnstableExternalId": "identyfikator zewnętrzny nie jest stabilny między eksportami",
"reasonDuplicate": "już zaimportowano",
"reasonUnknown": "pominięto"
},
"doseHistory": {
"title": "Historia dawek",
"description": "Historia dawek wyeksportowana z innej aplikacji, czytana wprost. Jeden plik obejmuje wszystkie leki, które zawiera.",
"pasteLabel": "Wklej eksport",
"fileInputLabel": "Wybierz plik z historią dawek",
"uploadFile": "Wybierz plik",
"preview": "Podgląd",
"import": "Importuj",
"empty": "Najpierw wklej eksport albo wybierz plik.",
"readFailed": "Nie udało się odczytać tego pliku.",
"rateLimited": "Maksymalnie 5 importów na godzinę. Spróbuj później.",
"tooLarge": "Ten plik przekracza limit 16 MB.",
"inProgress": "Import historii dawek już trwa. Poczekaj, aż się zakończy.",
"workerUnavailable": "Proces w tle jest niedostępny, więc nic nie zostało zaimportowane.",
"failed": "Import nie udał się. Nic nie zostało zapisane.",
"columnsHeading": "Co się dzieje z każdą kolumną",
"jsonOnly": "tylko JSON",
"previewLine": "Odczytane wiersze: {rows} · do zaimportowania: {queued} · odrzucone: {refused}",
"submittedLine": "Odczytane wiersze: {rows} · w kolejce do importu: {queued}",
"unmatched": "Żaden zapisany lek nie odpowiada: {names}",
"ambiguous": "Odpowiada więcej niż jednemu lekowi: {names}",
"mirrored": "Skopiowany z innej aplikacji, więc nie można dodać dawki: {names}",
"unknownColumns": "Kolumny bez reguły w importerze, nieodczytane: {names}",
"codingsNotRead": "Wiersze z nieodczytaną wartością Codings: {count}",
"archivedRowsPresent": "Wiersze oznaczone jako należące do zarchiwizowanych leków: {count}. To oznaczenie nie pomija ich ani nie reaktywuje leków; wynik końcowy pokazuje, co dodano.",
"verdict": {
"honoured": "użyta",
"reported": "zgłoszona",
"ignored": "nieodczytana"
},
"column": {
"date": "Godzina rzeczywistego przyjęcia dawki. Jej przesunięcie UTC czytane jest dokładnie tak, jak zapisane.",
"scheduledDate": "Okno, do którego należała dawka, trzymane osobno od godziny przyjęcia. Puste znaczy, że dawka nie należała do żadnego okna.",
"medication": "Dopasowane do leku, który już jest w Twojej kartotece. Z pliku nic nie jest tworzone.",
"nickname": "Próbowane jako druga nazwa, gdy pierwsza do niczego nie pasuje.",
"dosage": "Zapisywane przy dawce tylko wtedy, gdy różni się od zaplanowanej ilości.",
"scheduledDosage": "Porównywane z rzeczywistą ilością, by rozstrzygnąć, czy dawka odbiegła od planu. Nigdy nie zapisywane samo.",
"unit": "Zapisywana razem z ilością, dokładnie tak, jak w pliku. „count” oznacza wielokrotności skonfigurowanej dawki.",
"status": "„Taken” staje się dawką, a „Skipped” świadomym pominięciem. Każda inna wartość nie zapisuje żadnej decyzji i wiersz zostaje odrzucony.",
"archived": "Liczone i zgłaszane. Dawka, która się odbyła, nie znika przez późniejsze zarchiwizowanie leku.",
"codings": "CSV nie dokumentuje dla tej kolumny żadnego kodowania, więc zostaje nietknięta zamiast zgadywana. Wypełnione komórki są liczone.",
"form": "Opisuje lek, nie dawkę.",
"start": "Data rozpoczęcia leku, nie godzina tej dawki.",
"end": "Data zakończenia leku, nie godzina tej dawki."
},
"fatal": {
"emptyFile": "Ten plik nie zawiera wierszy.",
"missingColumns": "W tym pliku brakuje kolumny, której potrzebuje importer: Date, Medication albo Status.",
"unreadableJson": "Ten plik nie jest poprawnym JSON-em.",
"jsonNotAnArray": "Ten JSON nie zawiera listy dawek.",
"jsonNoIntakeTime": "Eksport JSON zapisuje, kiedy dawka była zaplanowana, a nie kiedy została przyjęta, i zaplanowana godzina nie zostanie zapisana jako godzina przyjęcia. Wyeksportuj CSV, który zawiera obie.",
"tooManyRows": "Ten plik ma więcej wierszy, niż może przyjąć jeden import. Podziel go i zaimportuj części."
}
}
},
"subtitle": "Wyeksportuj dane lub zaimportuj z kopii zapasowej."
},
"about": {
"title": "O tej aplikacji",
"description": "Wersja, licencja, linki.",
"subtitle": "Wersja, licencja i linki do projektu."
},
"sharing": {
"title": "Udostępnianie",
"description": "Utwórz link tylko do odczytu, aby udostępnić swoją dokumentację zdrowotną lekarzowi.",
"subtitle": "Udostępnij dostęp tylko do odczytu do swoich danych."
},
"insights": {
"title": "Analizy",
"description": "Kolejność przeglądu i pigułek nawigacyjnych.",
"subtitle": "Rozmieść sekcje przeglądu i kolejność etykiet."
},
"medications": {
"title": "Leki",
"description": "Widok listy, kolejność i miejsca wstrzyknięć Twoich leków.",
"subtitle": "Zarządzaj widokiem i kolejnością listy leków."
},
"mood": {
"title": "Tagi nastroju",
"description": "Grupy, tagi i zarchiwizowane tagi w wyborze nastroju.",
"subtitle": "Uporządkuj tagi nastroju, grupy i kolejność wyboru."
},
"labs": {
"title": "Wyniki badań",
"description": "Widok, sortowanie i biomarkery Twoich wyników badań.",
"subtitle": "Zarządzaj widokiem, sortowaniem i biomarkerami."
},
"illness": {
"title": "Dziennik chorób",
"description": "Widok i kolejność Twoich epizodów chorobowych.",
"subtitle": "Zarządzaj widokiem i kolejnością epizodów."
},
"vorsorge": {
"title": "Badania",
"description": "Widok, kolejność i poszczególne przypomnienia o badaniach.",
"subtitle": "Zarządzaj widokiem, kolejnością i poszczególnymi przypomnieniami."
},
"modules": {
"title": "Moduły",
"saved": "Zapisano.",
"error": "Nie udało się zapisać. Spróbuj ponownie.",
"toggleable": {
"title": "Co śledzisz",
"description": "Obszary opcjonalne. Wyłączone moduły znikają z nawigacji, kafelków i analiz — Twoje dane pozostają nienaruszone."
},
"manageIn": "Zarządzaj w {section}",
"operatorDisabled": "Wyłączone na całym serwerze",
"subtitle": "Wybierz, które obszary śledzenia pokazuje HealthLog w aplikacji."
},
"gesundheitsakte": {
"title": "Dokumentacja zdrowotna",
"description": "Wyeksportuj pełną dokumentację zdrowotną jako PDF, FHIR R4 lub łączony pakiet ZIP.",
"subtitle": "Eksportuj kompletną dokumentację zdrowotną gotową dla lekarza."
},
"coach": {
"title": "Coach",
"description": "Włącz Coacha, ton i zakres, zapisane wspomnienia.",
"subtitle": "Dostosuj Coacha, jego proaktywne podpowiedzi i pamięć."
},
"security": {
"title": "Bezpieczeństwo",
"subtitle": "Uwierzytelnianie dwuskładnikowe, kody odzyskiwania i klucze dostępu."
},
"privacy": {
"title": "Dane i prywatność",
"subtitle": "Twoje dane, retencja, szyfrowanie i bezpieczeństwo konta w jednym miejscu.",
"description": "Eksport, usuwanie, retencja, stan szyfrowania, sesje i aktywność zabezpieczeń."
},
"mcp": {
"title": "Łącznik MCP",
"subtitle": "Połącz zewnętrznego asystenta z własnymi danymi zdrowotnymi."
},
"anamnesis": {
"title": "Wywiad medyczny",
"subtitle": "Zarządzaj swoimi alergiami i wywiadem rodzinnym.",
"description": "Ustrukturyzowane rekordy alergii i wywiadu rodzinnego."
},
"environment": {
"title": "Lokalizacja i pogoda",
"subtitle": "Kontekst pogody, światła dziennego i lokalizacji.",
"disabledHint": "Włącz moduł Środowisko, aby ustawić lokalizację domową i pobierać dzienną pogodę oraz długość dnia.",
"searchPlaceholder": "Szukaj miasta",
"search": "Szukaj",
"searchError": "Nie udało się wyszukać tego miejsca.",
"use": "Użyj",
"select": "Wybierz",
"saveError": "Nie udało się zapisać zmiany.",
"homeSaved": "Zapisano lokalizację domową.",
"travelAdded": "Dodano okres lokalizacji.",
"travelRemoved": "Usunięto okres lokalizacji.",
"backfillQueued": "Zaplanowano uzupełnianie.",
"backfillError": "Nie udało się rozpocząć uzupełniania.",
"startDate": "Data początkowa",
"endDate": "Data końcowa",
"storedDays": "Zapisano dni pogody: {count}.",
"home": {
"title": "Lokalizacja domowa",
"description": "Przybliżona lokalizacja na poziomie miasta – nigdy dokładny ślad. Pogoda i światło dzienne są pobierane dla tego miejsca w dni bez okresu lokalizacji, od dnia jego ustawienia.",
"current": "Obecnie: {label}",
"none": "Nie ustawiono jeszcze lokalizacji domowej.",
"since": "Pogoda zapisywana od {date}. Wcześniejsze dni pozostają puste, dopóki nie dodasz okresu lokalizacji."
},
"travel": {
"title": "Okresy lokalizacji",
"description": "Dodaj miejsce i zakres dat: podróż lub fragment wcześniejszej historii. Okres zastępuje Twój dom w dniach, które obejmuje, aby pogoda odpowiadała miejscu, w którym naprawdę byłeś. W ten sposób korygujesz przeszłość.",
"none": "Brak okresów lokalizacji.",
"add": "Dodaj {label}",
"remove": "Usuń okres lokalizacji",
"removeConfirmTitle": "Usunąć tę podróż?",
"removeConfirmBody": "Pomiary z tego okresu pozostają w historii; znika tylko wpis podróży."
},
"backfill": {
"title": "Uzupełnij minione dni",
"description": "Pobierz i zapisz pogodę dla minionego zakresu dat, aby starsze dni weszły do korelacji. Początek domyślnie przyjmuje datę obowiązywania Twojego domu; aby sięgnąć dalej wstecz, najpierw dodaj okres lokalizacji dla tego zakresu.",
"run": "Uzupełnij"
},
"noResults": "Nie znaleziono pasujących miejsc.",
"fetchFailedOne": "Ostatnia aktualizacja pogody w tle nie powiodła się ({when}).",
"fetchFailedFew": "Ostatnie {count} aktualizacje pogody w tle nie powiodły się, najnowsza {when}.",
"fetchFailedOther": "Ostatnich {count} aktualizacji pogody w tle nie powiodło się, najnowsza {when}."
},
"score": {
"title": "Wynik zdrowia",
"subtitle": "Wybierz, które filary liczą się do Twojego wyniku.",
"card": {
"title": "Co liczy się do Twojego wyniku",
"description": "Każdy filar, który zapisujesz, liczy się, dopóki nie powiesz tutaj inaczej."
},
"threeAxes": "Zapisywanie, pokazywanie i liczenie to trzy różne rzeczy. Ta strona zmienia tylko ostatnią. Filar wyłączony tutaj nadal jest zapisywany i nadal widoczny w całym HealthLogu, przestaje jedynie ruszać liczbą.",
"axis": {
"countsFor": "Licz {pillar} do wyniku"
},
"domain": {
"cardiometabolic": "Serce i metabolizm",
"activity": "Aktywność",
"sleep": "Sen",
"adiposity": "Sylwetka",
"wellbeing": "Samopoczucie"
},
"state": {
"counting": "Liczy się do Twojego wyniku",
"waiting": "Wybrany, czeka na dane",
"crisis": "Zamiast wyniku pokazywana jest wskazówka bezpieczeństwa. Z Twoim wyborem wszystko w porządku.",
"readFailed": "Tego filaru nie udało się odczytać przy ostatnim liczeniu."
},
"presets": {
"label": "Punkt wyjścia",
"all": "Wszystkie filary",
"current": "Twój zapisany wybór"
},
"save": "Zapisz",
"saved": "Zapisano.",
"error": "Nie udało się zapisać. Spróbuj ponownie.",
"loadFailed": "Nie udało się wczytać Twojego wyboru.",
"eligibilityFailed": "Nie udało się sprawdzić, które filary mają teraz dane. Przełączniki poniżej i tak działają.",
"omitted": "{count} filarów nie ma na liście, bo ich śledzenie jest wyłączone. Włącz moduł z powrotem, a jego filar wróci.",
"omittedLink": "Otwórz moduły",
"refusal": {
"physiological": "Wynik zdrowia potrzebuje co najmniej jednego pomiaru fizycznego. Zostaw w wyborze ciśnienie, glukozę, sen, sylwetkę albo cholesterol, obok wszystkiego innego, co wybierzesz.",
"domains": "Wynik zdrowia potrzebuje co najmniej trzech różnych obszarów zdrowia. Ciśnienie, glukoza i cholesterol opisują ten sam obszar, więc wybór złożony tylko z nich liczy się jako jeden."
},
"notice": {
"upgrade": {
"title": "Teraz to Ty decydujesz, co się liczy",
"body": "To, które filary liczyły się do Twojego Health Score, szło wcześniej za modułami, które miałeś włączone. Teraz jest to osobna decyzja i podejmujesz ją tutaj. Twoja liczba się przy tym nie ruszyła: nadal liczy dokładnie to, co liczyła wcześniej."
},
"changed": {
"title": "Zmieniłeś to, co się liczy",
"body": "Od {date} Twój wynik liczony jest z innego zestawu filarów. Dni wcześniejsze pochodzą ze starego zestawu, więc obu nie porównujemy, a zmiana tygodniowa pozostaje wstrzymana, dopóki okno porównania nie minie tej zmiany. Historia każdego filaru z osobna biegnie przez nią bez przerwy.",
"bodyUndated": "Twój wynik liczony jest z innego zestawu filarów niż wcześniej. Dni sprzed zmiany pochodzą ze starego zestawu, więc obu nie porównujemy, a zmiana tygodniowa pozostaje wstrzymana, dopóki okno porównania nie minie tej zmiany. Historia każdego filaru z osobna biegnie przez nią bez przerwy."
},
"dismiss": "Rozumiem",
"dismissError": "Nie udało się zapisać. Spróbuj ponownie."
}
},
"access": {
"title": "Udostępniony dostęp",
"subtitle": "Kto może otworzyć twoją kartę zdrowia i czyją kartę możesz otworzyć ty."
}
},
"profile": "Profil",
"language": "Język",
"languageDescription": "Wybierz język wyświetlania aplikacji.",
"timeFormat": {
"title": "Format godziny",
"description": "Określa, czy godziny są wyświetlane w formacie 24-godzinnym czy 12-godzinnym (AM/PM).",
"auto": "Automatycznie (język)",
"h24": "24-godzinny",
"h12": "12-godzinny (AM/PM)",
"saved": "Zapisano format godziny.",
"saveError": "Nie udało się zapisać formatu godziny."
},
"dateFormat": {
"title": "Format daty",
"description": "Określa kolejność dnia, miesiąca i roku przy wyświetlaniu dat.",
"auto": "Automatycznie (język)",
"dmy": "DD.MM.RRRR",
"mdy": "MM/DD/RRRR",
"ymd": "RRRR-MM-DD",
"saved": "Zapisano format daty.",
"saveError": "Nie udało się zapisać formatu daty."
},
"username": "Nazwa użytkownika",
"height": "Wzrost (cm)",
"heightFtIn": "Wzrost (ft, in)",
"dateOfBirth": "Data urodzenia",
"dateOfBirthHint": "Używane do automatycznego obliczania docelowych wartości ciśnienia.",
"gender": "Płeć",
"genderNone": "Nie podano",
"genderMale": "Mężczyzna",
"genderFemale": "Kobieta",
"genderHint": "Używane do wartości docelowych zależnych od płci.",
"timezone": "Strefa czasowa",
"timezoneHint": "Używane do etykiet osi wykresów, godzin przypomnień, znaczników czasu eksportu i kontekstu Coacha. Zapisane dane pozostają niezmienione.",
"timezoneInvalid": "To nie jest prawidłowa strefa czasowa IANA.",
"profileSaved": "Profil zapisany",
"profilePartiallySaved": "Profil zapisany, ale nie udało się zaktualizować pola {field}.",
"profileNothingSaved": "Nic nie zostało zapisane. Popraw {field} i spróbuj ponownie.",
"avatar": {
"title": "Zdjęcie profilowe",
"description": "Prześlij zdjęcie przechowywane na własnym serwerze. Pojawia się w całej aplikacji zamiast zewnętrznej usługi awatarów.",
"upload": "Prześlij zdjęcie",
"replace": "Zmień zdjęcie",
"remove": "Usuń",
"removeTitle": "Usunąć zdjęcie profilowe?",
"removeBody": "Obraz zostanie usunięty z twojego serwera, a jego miejsce zajmą inicjały. Do ponownego wgrania potrzebny będzie oryginalny plik.",
"removeConfirm": "Usuń zdjęcie",
"hint": "JPEG, PNG lub WebP. Do 2 MB i 2048×2048 pikseli.",
"uploaded": "Zaktualizowano zdjęcie profilowe",
"removed": "Usunięto zdjęcie profilowe",
"invalidType": "Nieobsługiwany typ obrazu. Użyj JPEG, PNG lub WebP.",
"tooLarge": "Obraz przekracza limit 2 MB.",
"error": "Nie udało się zaktualizować zdjęcia profilowego. Spróbuj ponownie."
},
"changePassword": "Zmień hasło",
"changePasswordDescription": "Zastąp obecne hasło nowym.",
"passwordReset": "Resetowanie hasła",
"currentPassword": "Obecne hasło",
"newPassword": "Nowe hasło",
"confirmNewPassword": "Potwierdź nowe hasło",
"passwordMismatch": "Nowe hasła nie są zgodne",
"passwordUpdated": "Hasło zaktualizowane pomyślnie",
"passkeys": "Passkeys",
"passkeysDescription": "Klucze dostępu umożliwiają bezpieczne logowanie bez hasła.",
"passkeyReauth": {
"title": "Potwierdź swoją tożsamość",
"description": "Przed dodaniem nowego klucza dostępu zweryfikuj jedną z istniejących metod logowania.",
"methodLabel": "Metoda weryfikacji",
"methods": {
"password": "Hasło",
"totp": "Kod z aplikacji uwierzytelniającej",
"passkey": "Klucz dostępu",
"webauthn": "Klucz bezpieczeństwa"
},
"currentPassword": "Aktualne hasło",
"authenticatorCode": "Kod z aplikacji uwierzytelniającej",
"authenticatorPlaceholder": "6-cyfrowy kod z aplikacji uwierzytelniającej",
"verifyAndAdd": "Zweryfikuj i dodaj"
},
"passkeyName": "Nazwa",
"noPasskeys": "Brak zarejestrowanych kluczy dostępu.",
"addPasskey": "Dodaj klucz dostępu",
"passkeyRegistrationFailed": "Rejestracja klucza dostępu nie powiodła się",
"passkeyRegistrationCancelled": "Rejestracja klucza dostępu anulowana",
"passkeyNotSupported": "Twoja przeglądarka lub urządzenie nie obsługuje jeszcze kluczy dostępu. Wypróbuj inną przeglądarkę lub urządzenie.",
"passkeyAlreadyRegistered": "To urządzenie jest już zarejestrowane jako klucz dostępu Twojego konta.",
"passkeySecurityBlocked": "Twoja przeglądarka zablokowała żądanie klucza dostępu ze względów bezpieczeństwa. Upewnij się, że jesteś w zaufanym źródle HTTPS i spróbuj ponownie.",
"passkeyTimeout": "Żądanie klucza dostępu wygasło. Spróbuj ponownie.",
"passkeyUnknownError": "Rejestracja klucza dostępu nie powiodła się: {message}",
"deletePasskey": "Usunąć klucz dostępu?",
"deletePasskeyDescription": "Klucz dostępu zostanie trwale usunięty.",
"singleDevice": "Pojedyncze urządzenie",
"multiDevice": "Wiele urządzeń",
"backedUp": "z kopią zapasową",
"telegram": "Telegram Notifications",
"telegramDescription": "Get reminders for missed medication intake via Telegram.",
"botToken": "Token bota",
"chatId": "ID czatu",
"enableNotifications": "Włącz powiadomienia",
"telegramStep1": "1. Utwórz bota przez @BotFather w Telegramie i skopiuj token.",
"telegramStep2": "2. Wyślij /start do swojego bota, aby aktywować czat.",
"telegramStep3": "3. Znajdź swoje ID czatu przez @userinfobot lub API bota.",
"ntfy": "ntfy",
"ntfyDescription": "Powiadomienia przez ntfy (własny serwer lub ntfy.sh).",
"ntfyEnable": "Włącz ntfy",
"ntfyServer": "Adres URL serwera",
"ntfyTopic": "Topic",
"ntfyAuthToken": "Token uwierzytelniania (opcjonalny)",
"ntfyAuthTokenHint": "Wymagany tylko dla prywatnych tematów z kontrolą dostępu.",
"webhook": "Webhook",
"webhookDescription": "Wysyłaj powiadomienia metodą POST na dowolny URL — Gotify, Discord, Slack, Matrix lub Home Assistant.",
"webhookEnable": "Włącz webhook",
"webhookUrl": "Adres URL webhooka",
"webhookUrlHint": "Pełny adres URL dla żądania POST. Musi być publicznie dostępny.",
"webhookHeaderName": "Nazwa nagłówka (opcjonalnie)",
"webhookHeaderValue": "Wartość nagłówka (opcjonalnie)",
"email": "E-mail",
"emailDescription": "Otrzymuj alerty i przypomnienia e-mailem.",
"emailEnable": "Włącz e-mail",
"emailRecipient": "Adres odbiorcy",
"webPush": "Push przeglądarki",
"webPushDescription": "Otrzymuj powiadomienia bezpośrednio w przeglądarce, nawet gdy HealthLog nie jest otwarty.",
"webPushNotSupported": "Twoja przeglądarka nie obsługuje powiadomień push.",
"webPushDenied": "Powiadomienia push są zablokowane. Zezwól na nie w ustawieniach przeglądarki.",
"webPushNotConfigured": "Web Push nie jest skonfigurowany na serwerze.",
"webPushSubscribe": "Włącz push",
"webPushUnsubscribe": "Wyłącz push",
"webPushSubscribed": "Powiadomienia push włączone!",
"webPushUnsubscribed": "Powiadomienia push wyłączone.",
"webPushSubscribeFailed": "Aktywacja nie powiodła się",
"kiInsightsDescription": "Opcjonalnie: zapisz swój klucz OpenAI, aby uzyskać codzienne, automatyczne analizy w Insights.",
"codexConnected": "ChatGPT połączony pomyślnie! Insights jest teraz aktywny.",
"codexDisconnected": "Połączenie z ChatGPT usunięte.",
"codexConnectionFailed": "Połączenie z ChatGPT nie powiodło się. Spróbuj ponownie.",
"rawData": "Wysyłaj surowe dane",
"rawDataOnDescription": "Wysyłane są zagregowane metryki oraz zanonimizowane pojedyncze punkty z ostatnich 30 dni z kontekstem czasowym — nigdy imię, adres e-mail ani bezpośrednie identyfikatory konta.",
"rawDataOffDescription": "Wysyłane są tylko podsumowane metryki (np. średnie, trendy, minimum/maksimum) — bez pojedynczych punktów i bez dokładnego kontekstu czasowego.",
"rawDataWarning": "Tryb surowych danych włączony: dostawca otrzymuje dodatkowe zanonimizowane punkty z ostatnich 30 dni dla dokładniejszej analizy.",
"regenerateInsights": "Wygeneruj raporty ponownie",
"regenerateSuccess": "Raporty wygenerowane ponownie",
"regenerateRateLimit": "Poczekaj — osiągnięto godzinny limit analiz.",
"lastGeneratedAt": "Ostatnio wygenerowano",
"ai": {
"chatgptConnectedBadge": "ChatGPT połączony",
"adminAiActiveBadge": "Aktywny dostawca administratora",
"connectionExpiredBadge": "Połączenie wygasło",
"connectedSince": "Połączono od {when}.",
"deviceCodeHeading": "Dokończ łączenie na chatgpt.com",
"deviceCodeStep1": "Otwórz ten link na dowolnym urządzeniu:",
"deviceCodeStep2": "Wprowadź ten jednorazowy kod:",
"deviceCodeStep3": "Zatwierdź połączenie — ta strona zaktualizuje się automatycznie.",
"deviceCodeCopy": "Kopiuj",
"deviceCodeWaiting": "Oczekiwanie na zatwierdzenie…",
"deviceCodeCancel": "Anuluj",
"oauthNotConfigured": "OAuth ChatGPT nie jest skonfigurowany w tej instancji — użyj zamiast tego własnego klucza API poniżej.",
"modelLabel": "Model",
"modelOptionDefault": "— Domyślny —",
"modelOptionCustom": "Niestandardowy…",
"customModelLabel": "Nazwa niestandardowego modelu",
"anthropicKeyLabel": "Klucz API Anthropic",
"baseUrlLabel": "Base URL",
"localKeyLabel": "Klucz API (opcjonalny)",
"localDescription": "Działa tu każdy punkt końcowy zgodny z OpenAI — model lokalny (Ollama, LM Studio) albo brama taka jak LiteLLM, OpenRouter czy vLLM. Adres bazowy kończy się na /v1; klucz API jest opcjonalny.",
"savedPreview": "(zapisano {preview})",
"savedShort": "(zapisano)",
"saveCta": "Zapisz",
"saved": "Zapisano",
"errorGeneric": "Błąd",
"providerChain": {
"types": {
"codex": "ChatGPT (Codex)",
"openai": "OpenAI (Twój klucz)",
"anthropic": "Anthropic (Claude)",
"local": "Model lokalny",
"openai-compatible": "Brama zgodna z OpenAI",
"admin-openai": "OpenAI administratora"
},
"title": "Łańcuch zapasowy",
"description": "Jeśli główny dostawca zawiedzie, HealthLog przechodzi przez łańcuch po kolei. Przeciągaj wiersze, aby zmienić kolejność; użyj przełącznika, aby wyłączyć dostawcę bez usuwania go.",
"moveUp": "Przesuń w górę",
"moveDown": "Przesuń w dół",
"removeFromChain": "Usuń z łańcucha",
"addProvider": "Dodaj dostawcę",
"addNoneAvailable": "Wszyscy dostawcy są już w łańcuchu",
"saveOrder": "Zapisz kolejność łańcucha",
"saved": "Łańcuch zapisany",
"saveFailed": "Zapis łańcucha nie powiódł się",
"resetDefaults": "Przywróć domyślne",
"resetConfirmTitle": "Przywrócić domyślny łańcuch?",
"resetConfirmBody": "Łańcuch wraca do Codex → OpenAI → Anthropic → Lokalny → OpenAI administratora. Zapisane dane logowania pozostają nienaruszone."
},
"providerCardTitle": "Dostawca AI",
"activeProviderHeading": "Aktywny dostawca",
"activeProviderBody": "Wybierz dostawcę, którego chcesz użyć jako pierwszego. Formularz poniżej konfiguruje tylko wybranego dostawcę; łańcuch zapasowy na dole decyduje, co się stanie w razie awarii.",
"activeProviderLabel": "Główny dostawca",
"providerConfigTitle": "Konfiguracja dostawcy",
"providerSelect": {
"codex": "Konto ChatGPT (Codex)",
"openai": "OpenAI (Twój klucz API)",
"anthropic": "Anthropic (Claude)",
"local": "Model lokalny (zgodny z OpenAI)",
"openai-compatible": "Brama zgodna z OpenAI",
"admin-openai": "OpenAI udostępniony przez administratora"
},
"compat": {
"description": "Pełnoprawny dostawca dla każdego punktu końcowego mówiącego API /v1/chat/completions OpenAI: LiteLLM, OpenRouter, vLLM lub inna brama. Adres bazowy kończy się na /v1, klucz API jest opcjonalny, a model to ten, który kieruje twoja brama. Twój klucz OpenAI nigdy nie trafia do tego punktu końcowego — ten dostawca ma własny.",
"keyLabel": "Klucz API (opcjonalny)",
"modelHint": "Nazwa modelu, której oczekuje twoja brama. Pozostawione puste, użyty zostanie model zapisany dla pozostałych dostawców; gdy nie ustawiono żadnego, ten dostawca jest pomijany."
},
"openai": {
"modelSelect": "Model",
"modelOptionCustom": "Niestandardowy slug…",
"modelCustomLabel": "Slug niestandardowego modelu",
"modelCustomPlaceholder": "gpt-5",
"baseUrlLabel": "Adres URL bazowy (zaawansowane)",
"baseUrlPlaceholder": "https://api.openai.com/v1",
"baseUrlHelp": "Nadpisuj tylko przy korzystaniu z bramy zgodnej z OpenAI. Pozostaw puste dla samego OpenAI.",
"showAdvanced": "Pokaż zaawansowane",
"hideAdvanced": "Ukryj zaawansowane",
"apiKey": "Klucz API",
"apiKeyPlaceholder": "sk-…"
},
"codex": {
"statusConnected": "Połączono",
"statusDisconnected": "Niepołączono",
"statusExpired": "Połączenie wygasło",
"connectButton": "Połącz z ChatGPT",
"disconnectButton": "Rozłącz",
"disconnectTitle": "Odłączyć ChatGPT?",
"disconnectBody": "Zapisane logowanie zostanie usunięte razem z zapisanym tekstem analiz. Ponowne połączenie wymaga przejścia przez kod urządzenia jeszcze raz.",
"disconnectConfirm": "Odłącz",
"modelSlugLabel": "Slug modelu",
"modelSlugBody": "Codex używa modelu, do którego kieruje Twoja subskrypcja ChatGPT. Zmienna środowiskowa CODEX_MODEL pozwala operatorowi nadpisać to w instancji.",
"lastInsight": "Ostatnia analiza: {when}"
},
"adminOpenai": {
"title": "OpenAI administratora",
"body": "Klucz OpenAI udostępniony przez operatora, używany jako ostateczność bez osobistego dostawcy. Nie ma tu nic do skonfigurowania.",
"notConfigured": "Operator nie skonfigurował współdzielonego klucza OpenAI w tej instancji."
},
"testProvider": "Przetestuj aktywnego dostawcę",
"testSuccess": "OK — {provider} ({model})",
"testFailedShort": "Test nie powiódł się: {message}",
"testUnexpectedResponse": "Połączenie z dostawcą AI nie powiodło się — nieoczekiwana odpowiedź serwera.",
"testReasonCredentials": "Dostawca odrzucił dane logowania — uwierzytelnij się ponownie w ustawieniach AI.",
"testReasonRateLimited": "Dostawca ograniczył żądanie — spróbuj ponownie za chwilę.",
"testReasonServerError": "Dostawca AI zwrócił błąd serwera.",
"testReasonBadRequest": "Dostawca odrzucił żądanie (HTTP {status}) — punkt końcowy odpowiedział, więc problem dotyczy formatu żądania lub nazwy modelu, a nie łączności.",
"testReasonUnreachable": "Nie udało się połączyć z dostawcą AI.",
"coachMemory": {
"title": "Co Coach pamięta",
"description": "Trwałe informacje, które przekazałeś Coachowi. Wykorzystuje je, aby jego odpowiedzi pozostawały trafne. Usuń wszystko, o czym wolisz, by zapomniał.",
"empty": "Coach nie zapisał jeszcze żadnych informacji. Podczas rozmowy zapamiętuje trwałe szczegóły, którymi się dzielisz — Twoje cele, dolegliwości, preferencje — i możesz je tutaj w każdej chwili usunąć.",
"learnedPrefix": "zapamiętano {when}",
"categoryPreference": "Preferencje",
"categoryCondition": "Dolegliwości",
"categoryGoal": "Cele",
"categoryConstraint": "Ograniczenia",
"categoryContext": "Kontekst",
"forget": "Zapomnij",
"forgetAria": "Zapomnij tę informację",
"forgetTitle": "Zapomnieć tę informację?",
"forgetBody": "Coach przestanie z niej korzystać od następnej wiadomości. Zapomnianej informacji nie da się odzyskać.",
"forgetConfirm": "Zapomnij",
"forgetAll": "Zapomnij wszystko",
"forgetAllConfirmTitle": "Zapomnieć wszystko, co Coach pamięta?",
"forgetAllConfirmBody": "Spowoduje to usunięcie wszystkich zapisanych informacji. Coach zacznie od nowa przy następnej rozmowie. Tej operacji nie można cofnąć.",
"forgetAllConfirmAction": "Zapomnij wszystko",
"cancel": "Anuluj",
"summaryNote": "Coach może też przechowywać krótkie, bieżące podsumowanie każdej rozmowy. Nie ma dla niego osobnej kontrolki — usunięcie rozmowy usuwa jej podsumowanie.",
"loadError": "Nie udało się wczytać tego, co Coach pamięta.",
"forgotToast": "Informacja zapomniana.",
"forgotError": "Nie udało się zapomnieć tej informacji. Spróbuj ponownie.",
"clearedToast": "Zapomniano {count} zapisanych informacji.",
"clearError": "Nie udało się usunąć zapisanych informacji. Spróbuj ponownie."
},
"coachReminders": {
"title": "Twoje przypomnienia",
"description": "Rzeczy, o których przypomnienie poprosiłeś Coacha. Te, których termin nadszedł, pojawiają się tutaj i w Coachu.",
"empty": "Brak przypomnień. Poproś Coacha, aby przypomniał Ci o czymś, a pojawi się tutaj.",
"loadError": "Nie udało się wczytać Twoich przypomnień.",
"dueHeading": "Termin teraz",
"allHeading": "Zapisane",
"duePrefix": "termin {when}",
"confirm": "Zachowaj",
"markDone": "Gotowe",
"dismiss": "Odrzuć",
"deleteAria": "Usuń to przypomnienie",
"note": "Przypomnienia są przechowywane w postaci zaszyfrowanej. Usuń je w dowolnej chwili — znika z tego, co widzi Coach.",
"status": {
"proposed": "Sugerowane",
"active": "Zapisane",
"due": "Termin",
"surfaced": "Wyświetlone",
"done": "Gotowe",
"dismissed": "Odrzucone"
},
"deleteConfirmTitle": "Usunąć to przypomnienie?",
"deleteConfirmBody": "Przestanie się pojawiać. Zapisane wcześniej dane pozostają bez zmian.",
"deleteConfirmAction": "Usuń"
},
"aboutMe": {
"title": "O mnie",
"description": "Osobisty kontekst, który Coach i codzienny briefing czytają obok Twoich danych.",
"placeholder": "Np. praca zmianowa, dieta wegetariańska, kontuzja kolana, trening do półmaratonu…",
"charCount": "{used} / {max} znaków",
"clear": "Wyczyść",
"clearTitle": "Wyczyścić notatkę „O mnie”?",
"clearBody": "Usuwa tylko tekst notatki. Alergie i nietolerancje pozostają bez zmian.",
"clearConfirm": "Wyczyść notatkę",
"save": "Zapisz",
"savedToast": "Notatka „O mnie” zapisana.",
"clearedToast": "Notatka „O mnie” usunięta.",
"saveError": "Nie udało się zapisać. Spróbuj ponownie.",
"loadError": "Nie udało się wczytać notatki.",
"hint": "Przekazywane Coachowi i codziennemu briefingowi jako dodatkowy kontekst. Zostaw puste, aby nic nie wysyłać.",
"profileHint": "Wiek i płeć pochodzą z Twojego profilu i są dołączane automatycznie.",
"freeTextLabel": "O mnie (tekst dowolny)",
"conditionsPlaceholder": "Np. nadciśnienie, cukrzyca typu 2…",
"allergiesLabel": "Alergie i nietolerancje",
"allergiesPlaceholder": "Np. nietolerancja laktozy, alergia na penicylinę…",
"focusPlaceholder": "Np. pilnuj mojego ciśnienia, motywuj mnie do ruchu…",
"completeness": "Wypełnione: {answered} z {total}",
"questionsTitle": "Coach ma pytania",
"questionsOpenCoach": "Odpowiedz w Coachu",
"recordsLink": "Alergie, wywiad rodzinny i Twoje choroby przewlekłe są częścią Twojego wywiadu medycznego.",
"recordsLinkCta": "Otwórz wywiad medyczny"
},
"responseTimeoutHeading": "Limit czasu odpowiedzi",
"responseTimeoutBody": "Jak długo czekać na odpowiedź AI, zanim nastąpi przerwanie. Zwiększ wartość dla lokalnego lub samodzielnie hostowanego modelu, który potrzebuje czasu na załadowanie przy pierwszym żądaniu.",
"responseTimeoutLabel": "Limit czasu odpowiedzi (sekundy)",
"responseTimeoutPlaceholder": "Domyślnie (~120)",
"responseTimeoutInvalid": "Podaj liczbę od 10 do 600 sekund.",
"autoRead": {
"title": "Automatyczne czytanie dokumentów przez AI",
"subLabel": "Dokumenty są czytane i indeksowane przez skonfigurowanego dostawcę AI bez potwierdzania każdego dokumentu.",
"honesty": "Po włączeniu każdy przesłany dokument jest wysyłany do skonfigurowanego dostawcy AI, aby go odczytać, opisać i zaindeksować do wyszukiwania — bez potwierdzania każdego dokumentu. Włączenie działa też wstecz: dokumenty już przesłane, które nie mają jeszcze streszczenia, również zostaną wysłane — do 200 przy każdym włączeniu. Dzieje się to na serwerze, a treść dokumentu opuszcza to urządzenie i trafia do tego dostawcy. Jeśli skonfigurowany dostawca to połączenie subskrypcyjne (zalogowane konto AI zamiast klucza API), obowiązują jego własne ustawienia danych — dostawcy subskrypcyjni mogą wykorzystywać treść do ulepszania swoich modeli i nie obejmuje tego żadna umowa powierzenia przetwarzania danych. Dokumenty odczytywane przez samodzielnie hostowany model lokalny nigdy nie opuszczają Twojego serwera. Domyślnie wyłączone; włącz je tylko wtedy, gdy akceptujesz ten kompromis dla swoich dokumentów.",
"confirm": "Rozumiem — włącz automatyczne czytanie przez AI",
"cancel": "Anuluj"
},
"centralCodex": {
"title": "Użyj wspólnego dostępu AI serwera",
"subLabel": "Kieruj zapytania AI przez połączenie skonfigurowane przez operatora dla tego serwera, obok Twoich własnych dostawców jako rozwiązanie awaryjne.",
"honesty": "Wspólny dostęp to jedno zalogowane konto AI, które operator podłączył dla wszystkich na tym serwerze — nie Twój własny klucz. Zapytania, które przez nie wysyłasz, są domyślnie wykorzystywane do trenowania modeli dostawcy i nie obejmuje ich żadna umowa powierzenia przetwarzania danych, godzinowe i tygodniowe limity konta dzielisz z wszystkimi innymi, którzy się zgodzili, a Twoi właśni dostawcy są próbowani jako pierwsi. Włącz to tylko, jeśli akceptujesz ten kompromis.",
"confirm": "Rozumiem — użyj wspólnego połączenia",
"cancel": "Anuluj"
},
"consent": {
"title": "Zgoda na AI",
"activeSince": "Udzielona {date}. Twoje dane zdrowotne mogą być wysyłane do skonfigurowanego dostawcy na potrzeby funkcji AI.",
"withdrawn": "Wycofana. Żadne dane zdrowotne nie są wysyłane do dostawcy AI; funkcje AI pozostają wyłączone.",
"withdraw": "Wycofaj zgodę",
"confirmBody": "Funkcje AI przestają działać natychmiast. Nic z już zapisanych danych nie zostaje usunięte — użyj sekcji Dane i prywatność, aby wyeksportować lub usunąć swoją historię.",
"confirmWithdraw": "Wycofaj",
"regrantHint": "Aby ponownie korzystać z funkcji AI, włącz automatyczne czytanie dokumentów lub udziel zgody w aplikacji.",
"error": "Nie udało się zapisać wycofania. Spróbuj ponownie."
}
},
"dashboard": {
"units": {
"title": "Jednostki",
"description": "Wybierz sposób wyświetlania odległości i prędkości na wykresach i kafelkach.",
"metric": "Metryczne",
"imperial": "Imperialne",
"saved": "Zapisano preferencję jednostek.",
"saveError": "Nie udało się zapisać preferencji jednostek."
}
},
"withings": "Withings",
"withingsDescription": "Połącz wagę i ciśnieniomierz Withings, aby automatycznie synchronizować wagę, skład ciała i ciśnienie krwi.",
"withingsCredentials": "Dane logowania API",
"withingsClientId": "ID klienta",
"withingsClientSecret": "Sekret klienta",
"withingsCredentialsSaved": "Dane logowania zapisane",
"withingsCredentialsSavedPlaceholder": "Zapisano — wprowadź nowy, aby zastąpić",
"withingsCredentialsSavedPlaceholderSecret": "Zapisano — wprowadź nowy, aby zastąpić",
"withingsSaveCredentials": "Zapisz",
"configured": "Skonfigurowano",
"withingsSync": "Synchronizuj teraz",
"withingsFullSync": "Synchronizuj wszystkie dane",
"withingsFullSyncTitle": "Pełna synchronizacja?",
"withingsFullSyncDescription": "Wszystkie dostępne dane Withings zostaną w pełni zsynchronizowane. Może to chwilę potrwać w zależności od historii.",
"withingsSyncResult": "{count} pomiarów zsynchronizowano",
"syncOutcome": {
"empty": "Nie ma nic nowego do zaimportowania. Wszystko jest aktualne.",
"failed": "Nic nie zostało zapisane. Następne uruchomienie spróbuje ponownie.",
"partial": "Zsynchronizowano {count} pomiarów. Części danych nie udało się zapisać; następne uruchomienie spróbuje ponownie."
},
"withingsFullSyncResult": "{count} pomiarów w pełni zsynchronizowano",
"withingsSyncFailed": "Synchronizacja nie powiodła się",
"withingsOauthConnected": "Withings połączony — pierwsza synchronizacja rozpocznie się w tle.",
"withingsOauthFailed": "Połączenie z Withings nie powiodło się",
"withingsOauthError": {
"csrf1": "Kontrola bezpieczeństwa nie powiodła się, ponieważ brakowało pliku cookie przeglądarki. Rozpocznij połączenie ponownie w tej samej przeglądarce.",
"replay": "Ten link potwierdzający został już użyty. Rozpocznij połączenie ponownie.",
"state": "Odpowiedź Withings nie pasuje do żadnego otwartego żądania połączenia. Rozpocznij połączenie ponownie.",
"expired": "Żądanie połączenia wygasło. Rozpocznij połączenie ponownie i dokończ autoryzację w ciągu kilku minut.",
"cross_user": "Odpowiedź należy do żądania innego konta. Rozpocznij połączenie ponownie z własnego konta.",
"nocode": "Withings nie zwrócił kodu autoryzacji. Spróbuj ponownie i zezwól na dostęp w oknie Withings.",
"nocreds": "Brak zapisanych danych dostępowych API Withings. Najpierw zapisz Client ID i Client Secret, potem połącz ponownie.",
"token": "Wymiana tokenów z Withings nie powiodła się. Sprawdź Client ID i Client Secret i spróbuj ponownie.",
"generic": "Nieznany błąd podczas łączenia. Rozpocznij połączenie ponownie."
},
"withingsSynchronize": "Synchronizuj",
"withingsDisconnect": "Rozłącz",
"withingsDisconnectTitle": "Rozłączyć Withings?",
"withingsDisconnectDescription": "Połączenie z Withings zostanie rozłączone. Wcześniej zsynchronizowane dane zostaną zachowane.",
"withingsConnect": "Połącz z Withings",
"withingsNoCredentials": "Najpierw wprowadź powyżej dane logowania API, aby połączyć Withings.",
"whoop": "WHOOP",
"whoopDescription": "Połącz opaskę WHOOP, aby synchronizować regenerację, sen, obciążenie i treningi prosto do HealthLog.",
"whoopCredentials": "Dane API",
"whoopClientId": "Client ID",
"whoopClientSecret": "Client Secret",
"whoopCredentialsSaved": "Dane zapisane",
"whoopCredentialsSavedPlaceholder": "Zapisano — wpisz nowe, aby zastąpić",
"whoopCredentialsSavedPlaceholderSecret": "Zapisano — wpisz nowe, aby zastąpić",
"whoopSaveCredentials": "Zapisz",
"whoopSync": "Synchronizuj teraz",
"whoopFullSync": "Synchronizuj wszystkie dane",
"whoopFullSyncTitle": "Pełna synchronizacja?",
"whoopFullSyncDescription": "Cała dostępna historia WHOOP zostanie w pełni zsynchronizowana. Może to chwilę potrwać w zależności od historii.",
"whoopSyncResult": "Zsynchronizowano {count} pomiarów",
"whoopSyncFailed": "Synchronizacja nie powiodła się",
"whoopSynchronize": "Synchronizuj",
"whoopDisconnect": "Odłącz",
"whoopDisconnectTitle": "Odłączyć WHOOP?",
"whoopDisconnectDescription": "Połączenie z WHOOP zostanie zakończone. Wcześniej zsynchronizowane dane zostaną zachowane.",
"whoopConnect": "Połącz z WHOOP",
"whoopNoCredentials": "Wprowadź powyżej swoje dane API, aby połączyć WHOOP.",
"whoopBackfillInProgress": "Importowanie historii WHOOP w tle…",
"whoopOauthConnected": "WHOOP połączony — pierwsza synchronizacja startuje w tle.",
"whoopOauthFailed": "Połączenie z WHOOP nie powiodło się",
"whoopOauthError": {
"csrf1": "Kontrola bezpieczeństwa nie powiodła się, ponieważ brakowało pliku cookie przeglądarki. Rozpocznij połączenie ponownie w tej samej przeglądarce.",
"state": "Odpowiedź z WHOOP nie pasowała do żadnego otwartego żądania połączenia. Rozpocznij połączenie ponownie.",
"expired": "Żądanie połączenia wygasło przed zakończeniem. Rozpocznij połączenie ponownie.",
"cross_user": "Odpowiedź należy do żądania z innego konta. Rozpocznij połączenie ponownie z własnego konta.",
"nocode": "WHOOP nie zwrócił kodu autoryzacji. Spróbuj ponownie i zezwól na dostęp w oknie WHOOP.",
"nocreds": "WHOOP nie jest skonfigurowany. Dodaj powyżej swoje dane OAuth WHOOP i spróbuj ponownie.",
"token": "Wymiana tokena z WHOOP nie powiodła się. Rozpocznij połączenie ponownie.",
"generic": "Nieznany błąd podczas łączenia. Rozpocznij połączenie ponownie."
},
"fitbit": "Fitbit",
"fitbitTag": "Fitbit i Pixel",
"fitbitDescription": "Połącz Fitbit, aby synchronizować dane z Fitbit i Pixel Watch — wagę, tętno i więcej.",
"fitbitExperimentalBadge": "Eksperymentalne",
"fitbitCredentials": "Dane uwierzytelniające API",
"fitbitClientId": "Client ID",
"fitbitClientSecret": "Client Secret",
"fitbitCredentialsSaved": "Dane uwierzytelniające zapisane",
"fitbitCredentialsSavedPlaceholder": "Zapisano — wpisz nowe, aby zastąpić",
"fitbitCredentialsSavedPlaceholderSecret": "Zapisano — wpisz nowe, aby zastąpić",
"fitbitSaveCredentials": "Zapisz",
"fitbitSync": "Synchronizuj teraz",
"fitbitFullSync": "Synchronizuj wszystkie dane",
"fitbitFullSyncTitle": "Pełna synchronizacja?",
"fitbitFullSyncDescription": "Cała dostępna historia Fitbit zostanie w pełni zsynchronizowana. W zależności od historii może to chwilę potrwać.",
"fitbitSyncResult": "Zsynchronizowano {count} pomiarów",
"fitbitSyncFailed": "Synchronizacja nie powiodła się",
"fitbitSynchronize": "Synchronizuj",
"fitbitDisconnect": "Rozłącz",
"fitbitDisconnectTitle": "Rozłączyć Fitbit?",
"fitbitDisconnectDescription": "Połączenie z Fitbit zostanie rozłączone. Wcześniej zsynchronizowane dane zostaną zachowane.",
"fitbitConnect": "Połącz z Fitbit",
"fitbitNoCredentials": "Wprowadź powyżej swoje dane uwierzytelniające API, aby połączyć Fitbit.",
"fitbitBackfillInProgress": "Importowanie historii Fitbit w tle…",
"fitbitOauthConnected": "Fitbit połączony — pierwsza synchronizacja startuje w tle.",
"fitbitOauthFailed": "Połączenie z Fitbit nie powiodło się",
"googleHealth": "Google Health",
"googleHealthTag": "Fitbit i Pixel",
"googleHealthBetaBadge": "Beta",
"googleHealthDescription": "Połącz Fitbit, Pixel Watch i Fitbit Air przez konto Google — waga, tętno, sen i aktywność. Zastępuje to klasyczne połączenie Fitbit, które Google wyłącza we wrześniu 2026.",
"googleHealthDescriptionSecondary": "Rejestrujesz własnego klienta Google Cloud i wprowadzasz tutaj dane logowania. API nie udostępnia stresu ani gotowości, a Google może od czasu do czasu poprosić o ponowne połączenie. Pierwsza konfiguracja? Skorzystaj z",
"googleHealthCredentials": "Dane API",
"googleHealthClientId": "Identyfikator klienta",
"googleHealthClientSecret": "Sekret klienta",
"googleHealthCredentialsSaved": "Dane logowania zapisane",
"googleHealthCredentialsSavedPlaceholder": "Zapisane — wpisz nowe, aby zastąpić",
"googleHealthCredentialsSavedPlaceholderSecret": "Zapisane — wpisz nowe, aby zastąpić",
"googleHealthSaveCredentials": "Zapisz",
"googleHealthSync": "Synchronizuj teraz",
"googleHealthSyncCheckStatus": "Odśwież stan",
"googleHealthFullSync": "Synchronizuj wszystkie dane",
"googleHealthFullSyncTitle": "Pełna synchronizacja?",
"googleHealthFullSyncDescription": "Cała dostępna historia Google Health zostanie w pełni zsynchronizowana. Może to chwilę potrwać w zależności od historii.",
"googleHealthSyncResult": "Zsynchronizowano pomiary: {count}",
"googleHealthSyncFailed": "Synchronizacja nie powiodła się",
"googleHealthSyncInProgress": "Synchronizacja trwa: zapisano {count} pomiarów, przetworzono {completed} z {total} obszarów.",
"googleHealthResourceFailuresTitle": "Te obszary nadal wymagają uwagi:",
"googleHealthResource": {
"workout": "Treningi",
"sleep": "Sen",
"boundedMetrics": "Pomiary zdrowotne",
"activity": "Aktywność",
"heartRate": "Tętno",
"other": "Inne dane"
},
"googleHealthReason": {
"collectionFailed": "Google nie mogło udostępnić tych danych. Spróbuj zsynchronizować je później.",
"tokenFailed": "Połączenie wygasło. Połącz Google Health ponownie.",
"upsertFailed": "Nie udało się zapisać danych. Spróbuj zsynchronizować je ponownie.",
"rollupFailed": "Dane zostały odebrane, ale ich podsumowanie nie jest jeszcze zaktualizowane. Spróbuj później.",
"pageLimit": "Przetworzono tylko część dostępnej historii. Kolejna synchronizacja będzie ją kontynuować.",
"generic": "Ten obszar nie został w pełni zsynchronizowany. Spróbuj ponownie."
},
"googleHealthSynchronize": "Synchronizuj",
"googleHealthDisconnect": "Rozłącz",
"googleHealthDisconnectTitle": "Rozłączyć Google Health?",
"googleHealthDisconnectDescription": "Połączenie z Google Health zostanie rozłączone. Wcześniej zsynchronizowane dane zostaną zachowane.",
"googleHealthConnect": "Połącz z Google",
"googleHealthNoCredentials": "Wprowadź powyżej swoje dane API, aby połączyć Google Health.",
"googleHealthBackfillInProgress": "Importowanie historii Google Health w tle…",
"googleHealthReauthBanner": "Google unieważnił połączenie — dzieje się to okresowo, dopóki Twoja aplikacja OAuth pozostaje w trybie testowym. Połącz ponownie, aby wznowić synchronizację.",
"googleHealthReconnect": "Połącz ponownie",
"googleHealthOauthConnected": "Google Health połączony — pierwsza synchronizacja startuje w tle.",
"googleHealthOauthFailed": "Połączenie z Google Health nie powiodło się",
"googleHealthOauthError": {
"csrf1": "Kontrola bezpieczeństwa nie powiodła się, ponieważ brakowało pliku cookie przeglądarki. Rozpocznij połączenie ponownie w tej samej przeglądarce.",
"state": "Odpowiedź od Google nie pasowała do żadnego otwartego żądania połączenia. Rozpocznij połączenie ponownie.",
"expired": "Żądanie połączenia wygasło przed zakończeniem. Rozpocznij połączenie ponownie.",
"cross_user": "Odpowiedź należy do żądania z innego konta. Rozpocznij połączenie ponownie z własnego konta.",
"nocode": "Google nie zwrócił kodu autoryzacji. Spróbuj ponownie i zezwól na dostęp w oknie Google.",
"nocreds": "Google Health nie jest skonfigurowany. Dodaj powyżej swoje dane OAuth Google i spróbuj ponownie.",
"token": "Wymiana tokenu z Google nie powiodła się. Rozpocznij połączenie ponownie.",
"generic": "Nieznany błąd podczas łączenia. Rozpocznij połączenie ponownie."
},
"fitbitOauthError": {
"csrf1": "Kontrola bezpieczeństwa nie powiodła się, ponieważ brakowało pliku cookie przeglądarki. Rozpocznij połączenie ponownie w tej samej przeglądarce.",
"state": "Odpowiedź z Fitbit nie pasowała do żadnego otwartego żądania połączenia. Rozpocznij połączenie ponownie.",
"expired": "Żądanie połączenia wygasło przed zakończeniem. Rozpocznij połączenie ponownie.",
"cross_user": "Odpowiedź należy do żądania z innego konta. Rozpocznij połączenie ponownie z własnego konta.",
"nocode": "Fitbit nie zwrócił kodu autoryzacji. Spróbuj ponownie i zezwól na dostęp w oknie Fitbit.",
"nocreds": "Fitbit nie jest skonfigurowany. Dodaj powyżej swoje dane OAuth Fitbit i spróbuj ponownie.",
"token": "Wymiana tokena z Fitbit nie powiodła się. Rozpocznij połączenie ponownie.",
"generic": "Nieznany błąd podczas łączenia. Rozpocznij połączenie ponownie."
},
"integrations": {
"withings": {
"reconnect": {
"banner": {
"title": "Dostępna synchronizacja aktywności",
"body": "Twoje połączenie z Withings zostało autoryzowane przed dodaniem synchronizacji aktywności. Połącz ponownie jeden raz, aby włączyć import kroków, energii aktywnej, dystansu marszu i biegu oraz pokonanych pięter z urządzeń Withings.",
"action": "Połącz ponownie Withings"
}
}
}
},
"integrationPill": {
"connected": "Połączono",
"errorReconnect": "Błąd — połącz ponownie",
"warningServerError": "Synchronizacja nie działa",
"failureCount": "{count}/{threshold}",
"parkedReconnect": "Wstrzymane — połącz ręcznie",
"notConnected": "Nie połączono",
"justNow": "przed chwilą",
"minutesAgo": "{count} min temu",
"hoursAgo": "{count} godz. temu",
"daysAgo": "{count} dni temu",
"resumeCta": "Połącz ponownie",
"resumeSuccess": "Integracja wznowiona",
"resumeError": "Ponowne połączenie nieudane",
"stale": "Połączono, brak nowych danych",
"stalled": "Synchronizacja zatrzymana",
"pendingSetup": "Czekam na pierwsze dane"
},
"integrationFreshness": {
"title": "Odebrane dane",
"summary": "{count} typów danych · najnowsze {relative}",
"quiet": "{count} bez danych",
"workouts": "Treningi"
},
"integrationFallback": {
"description": "Skonfigurowane na tym koncie, ale bez własnej karty ustawień. Ten wiersz istnieje po to, by przerwane połączenie nie pozostało niezauważone.",
"lastAttempt": "Ostatnia próba {relative}",
"noAttempt": "Brak zapisanej próby synchronizacji"
},
"withingsViewData": "Zobacz swoje pomiary",
"whoopViewData": "Zobacz swoją regenerację",
"fitbitViewData": "Zobacz swój sen",
"googleHealthViewData": "Zobacz swoje kroki",
"apiTokens": "Tokeny API",
"apiTokensDescription": "Przeglądaj i unieważniaj tokeny API do zewnętrznego rejestrowania przyjęć leków. Tokeny są wydawane dla pojedynczego leku z jego przełącznika punktu końcowego API.",
"tokenMintMovedDescription": "Tokeny są wydawane dla pojedynczego leku. Otwórz lek i włącz jego punkt końcowy API, aby otrzymać token obejmujący wyłącznie ten lek.",
"tokenNamePlaceholder": "Nazwa tokena (np. Skrót iPhone)",
"tokenCreated": "Token utworzony — skopiuj go teraz! Nie zostanie pokazany ponownie.",
"tokenCopy": "Kopiuj token",
"tokenCopied": "Token skopiowany do schowka",
"tokenCopyFailed": "Nie udało się skopiować tokenu",
"tokenRevokeFailed": "Nie udało się unieważnić tokenu. Spróbuj ponownie.",
"tokenRevoke": "Cofnąć token?",
"tokenRevokeAction": "Unieważnij token",
"tokenRevokeDescription": "Token zostanie trwale dezaktywowany. Aplikacje, które go używają, stracą dostęp.",
"tokenRevoked": "Cofnięto",
"tokenExpired": "Wygasł",
"tokenActive": "Aktywne",
"activeTokensTitle": "Aktywne tokeny",
"revokedTokensTitle": "Cofnięte tokeny ({count})",
"tokenTableName": "Nazwa",
"tokenTablePermissions": "Uprawnienia",
"tokenTableStatus": "Status",
"tokenTableCreated": "Utworzono",
"tokenTableLastUsed": "Ostatnio użyto",
"tokenTableActions": "Akcje",
"noActiveTokens": "Brak aktywnych tokenów.",
"tokenNeverUsed": "Nigdy",
"apiEndpointsTitle": "Punkty końcowe API",
"apiEndpointsDescription": "Przegląd dostępnych obecnie zewnętrznych punktów końcowych do wprowadzania danych za pomocą tokenów.",
"apiEndpointMethod": "Metoda",
"apiEndpointPath": "Ścieżka",
"apiEndpointAuth": "Uwierzytelnianie",
"apiEndpointExample": "Przykład treści",
"dangerZone": "Usuń wszystkie dane",
"dangerZoneDescription": "Kasuje całą Twoją dokumentację zdrowotną i wszystkie połączenia integracji. Konto i dane logowania zostają zachowane.",
"dangerZoneConfirm": "Usunąć wszystkie dane?",
"dangerZoneConfirmDescription": "Ta czynność trwale usuwa wszystko z Twojej dokumentacji: pomiary, leki, wpisy nastroju, wyniki badań, wpisy cyklu, dokumenty, rozmowy z SI oraz wszystkie połączenia integracji, a wraz z nimi wszystko, co z nich wyliczono, i wszystko, co usunięto wcześniej. Linki udostępnione poradni natychmiast przestają działać. Konto zostaje, razem z danymi logowania i ustawieniami wyświetlania, takimi jak język, strefa czasowa i jednostki. Nie można tego cofnąć.",
"dangerZoneSuccess": "Twoja dokumentacja zdrowotna została usunięta. Konto i logowanie pozostają bez zmian.",
"dangerZoneDeleteFailed": "Usuwanie nie powiodło się",
"finalDelete": "Usuń trwale",
"deleteAccountCardTitle": "Usuń całe konto",
"deleteAccountCardDescription": "Usuwa Twoje konto wraz z kluczami dostępu, dziennikiem audytu i sesjami. Tej operacji nie można cofnąć.",
"deleteAccountCta": "Usuń konto",
"deleteAccountConfirmTitle": "Trwale usunąć konto?",
"deleteAccountConfirmDescription": "Twoje konto, wszystkie dane zdrowotne, klucze dostępu, sesje i wpisy audytu zostaną trwale usunięte. Zostaniesz wylogowany natychmiast po tym.",
"deleteAccountSuccess": "Konto usunięte — trwa wylogowywanie.",
"deleteAccountFailed": "Nie udało się usunąć konta",
"deleteAccountFinal": "Usuń trwale",
"saved": "Zapisano",
"savingError": "Błąd podczas zapisywania",
"about": {
"version": "Wersja aplikacji",
"gitSha": "Build",
"builtAtLabel": "Skompilowano",
"license": "Licencja",
"repository": "Kod źródłowy",
"changelog": "Changelog",
"docs": "Dokumentacja",
"linksHeading": "Źródła i dokumentacja",
"identityDescription": "Wersja, licencja i szczegóły kompilacji tej instancji.",
"linksDescription": "Kod źródłowy, dziennik zmian i dokumentacja.",
"newerAvailable": "Nowa wersja: {tag}"
},
"testConnection": {
"test": "Testuj połączenie",
"testing": "Testowanie…",
"ok": "Połączono (opóźnienie {latency} ms)",
"errors": {
"credentials_rejected": "Dane logowania odrzucone — sprawdź token",
"rate_limited": "Ograniczone przez usługę nadrzędną",
"timeout": "Przekroczono limit czasu żądania",
"upstream_error": "Usługa nadrzędna zwróciła błąd",
"connection_failed": "Połączenie nie powiodło się",
"not_configured": "Nieskonfigurowano",
"url_not_public": "Adres URL nie jest publicznym punktem końcowym",
"url_invalid": "Adres URL jest nieprawidłowy",
"redirected": "Punkt końcowy przekierowuje — sprawdź adres URL",
"endpoint_not_found": "Nie znaleziono punktu końcowego pod adresem URL",
"credentials_unreadable": "Nie można odszyfrować danych logowania",
"upstream_invalid_json": "Usługa nadrzędna wysłała nieprawidłowy JSON",
"vapid_not_configured": "Web Push nieskonfigurowany (brak kluczy VAPID)",
"rate_limited_self": "Zbyt wiele żądań testowych",
"generic": "Test nie powiódł się"
}
},
"notificationStatus": {
"title": "Channel reliability",
"description": "Live status of every notification channel — Auto-disabled means HealthLog stopped retrying after a permanent error.",
"emptyDescription": "Nie skonfigurowano jeszcze żadnych kanałów. Dodaj kanał poniżej, aby zacząć śledzić jego dostarczalność.",
"stateActive": "Aktywne",
"stateAutoDisabled": "Automatycznie wyłączone",
"stateSendingPaused": "Wysyłanie wstrzymane",
"stateManuallyDisabled": "Wyłączone",
"lastSuccess": "Ostatnia udana wysyłka",
"lastFailure": "Ostatni błąd",
"consecutiveFailures": "Kolejne błędy",
"disabledReason": "Powód",
"nextRetry": "Następna próba",
"reEnable": "Włącz ponownie",
"sendTest": "Wyślij test"
},
"identity": {
"description": "Opcjonalne dane do eksportu dokumentacji zdrowotnej (okładka PDF + eksport FHIR). Wszystkie pola są opcjonalne.",
"fullName": "Imię i nazwisko",
"fullNamePlaceholder": "np. Anna Kowalska",
"insurer": "Ubezpieczyciel zdrowotny",
"insurerPlaceholder": "np. AOK Bayern",
"insuranceNumber": "Numer ubezpieczonego (KVNR)",
"insuranceNumberHint": "10 znaków: jedna litera + dziewięć cyfr (np. A123456780)."
},
"healthRecord": {
"title": "Eksportuj dokumentację zdrowotną",
"description": "Wygeneruj pełną dokumentację zdrowotną dla lekarza — jako PDF, ustrukturyzowaną (FHIR) lub łączny pakiet.",
"format": "Format",
"format_pdf": "PDF",
"format_fhir": "Ustrukturyzowany (FHIR)",
"format_package": "Pakiet: PDF + FHIR",
"range": "Okres",
"range90": "Ostatnie 90 dni",
"range180": "Ostatnie 6 miesięcy",
"range365": "Ostatnie 12 miesięcy",
"practiceName": "Gabinet (opcjonalnie)",
"practiceNamePlaceholder": "np. dr Kowalski",
"includedData": "Uwzględnione dane",
"includeCharts": "Osadź wykresy trendów (tylko PDF)",
"fhirNote": "Dane ustrukturyzowane są zgodne ze standardem FHIR R4 (kompatybilne z ePA).",
"generate": "Generuj",
"documentsLink": "Dokumenty z tego okresu",
"range30": "Ostatnie 30 dni",
"rangeCustom": "Własny okres",
"rangeCustomStart": "Od",
"rangeCustomEnd": "Do",
"errorGeneric": "Nie udało się wygenerować eksportu. Spróbuj ponownie.",
"errorRateLimit": "Osiągnięto limit eksportów w tej godzinie.",
"errorModuleDisabled": "Eksport dokumentacji jest wyłączony dla tego konta."
},
"globalExcludedInjectionSitesLabel": "Globalnie wykluczone miejsca iniekcji",
"globalExcludedInjectionSitesHint": "Miejsca wymienione tutaj nie są proponowane dla żadnego leku i są odrzucane przy rejestrowaniu dawki, nawet jeśli lek je preferuje.",
"sharing": {
"createTitle": "Nowy link udostępniania",
"createDescription": "Link jest tylko do odczytu i ograniczony czasowo. Token jest pokazywany tylko raz przy tworzeniu — zapisz go wtedy; nie można go odzyskać.",
"label": "Etykieta",
"labelPlaceholder": "np. dr Kowalski — kontrola roczna",
"range": "Dni historii",
"rangeHint": "Jak daleko wstecz sięga udostępnione okno.",
"expiry": "Wygasa za (dni)",
"expiryHint": "Najwyżej {max} dni.",
"expiryInvalid": "Wygaśnięcie musi mieścić się między 1 a {max} dniami.",
"create": "Utwórz link",
"tokenCreated": "Link udostępniania utworzony",
"copied": "Skopiowano do schowka.",
"activeTitle": "Aktywne linki",
"noActive": "Brak aktywnych linków udostępniania.",
"created": "Utworzono",
"expires": "Wygasa",
"accessCount": "Wyświetlenia",
"revoke": "Unieważnij",
"revokeDescription": "Unieważnij ten link natychmiast. Każdy, kto go ma, traci dostęp od razu. Tej operacji nie można cofnąć.",
"statusActive": "Aktywny",
"statusRevoked": "Unieważniony",
"statusExpired": "Wygasły",
"inactiveTitle": "Unieważnione i wygasłe ({count})",
"shownOnce": "Wyświetlane tylko raz. Zapisz teraz kod QR i hasło — nie można ich później odzyskać.",
"qrAlt": "Kod QR zawierający link do udostępniania i hasło",
"linkLabel": "Link",
"passphraseLabel": "Hasło",
"passphraseHint": "Odbiorca potrzebuje linku i tego hasła. Kod QR zawiera oba.",
"copyLink": "Kopiuj link",
"copyPassphrase": "Kopiuj hasło",
"protected": "Hasło",
"attachTitle": "Dołącz dokumenty",
"attachButton": "Wybierz dokumenty",
"attachCount": "Wybrano {count} z {max}",
"attachFrozen": "Zestaw dokumentów jest ustalany przy tworzeniu linku — później nie można dodawać ani usuwać dokumentów.",
"attachRemove": "Usuń {title}",
"exifNote": "Metadane aparatu (EXIF/GPS) są usuwane z obrazów JPEG, PNG i WebP podczas udostępniania. Pliki PDF, TIFF, HEIC i Office są przekazywane bez zmian.",
"documentCount": "Dołączone dokumenty: {count}",
"qrScanTitle": "Zeskanuj, aby otworzyć na innym urządzeniu",
"qrScanHint": "Skieruj aparat telefonu na kod, aby otworzyć udostępnioną dokumentację — hasło jest już dołączone.",
"pickerTitle": "Dołącz dokumenty",
"pickerDescription": "Przeszukaj swój sejf i wybierz dokumenty do udostępnienia. Maksymalnie {max}.",
"pickerSearch": "Szukaj dokumentów",
"pickerEmpty": "Nie znaleziono dokumentów.",
"pickerDone": "Gotowe",
"pickerSelectedCount": "Wybrano {count} z {max}",
"pickerMaxReached": "Osiągnięto maksymalną liczbę {max} dokumentów.",
"scopeTitle": "Co zawiera ten link",
"scopeInsuranceExcluded": "Dane ubezpieczenia nigdy nie są udostępniane przez link.",
"statusNeedsReselect": "Wybierz zawartość ponownie",
"reselectReason": "Ten link udostępniał zakres, którego nikt nie wybrał, więc został zamknięty. Utwórz nowy i wybierz jego zawartość.",
"reselectAction": "Utwórz zamiennik"
},
"genderOther": "Inna",
"cycleTracking": {
"title": "Śledzenie cyklu",
"description": "Śledź swój cykl menstruacyjny, prognozy, objawy i analizy faz. Domyślnie włączone dla kont ustawionych jako kobiece; dostępne dla wszystkich.",
"enable": "Włącz śledzenie cyklu",
"manage": "Otwórz śledzenie cyklu",
"error": "Nie udało się zaktualizować śledzenia cyklu."
},
"nightscout": "Nightscout",
"nightscoutTag": "CGM",
"nightscoutDescription": "Połącz własną stronę Nightscout, aby synchronizować ciągłe odczyty glukozy w panelu glukozy.",
"nightscoutViewData": "Zobacz swoją glukozę",
"nightscoutUrl": "Adres URL Nightscout",
"nightscoutUrlSavedPlaceholder": "Zapisano — wpisz nowy adres URL, aby go zastąpić",
"nightscoutToken": "Token API",
"nightscoutTokenOptional": "Opcjonalny dla witryny publicznej",
"nightscoutTokenSavedPlaceholder": "Zapisano — wpisz nowy token, aby go zastąpić",
"nightscoutTokenHelp": "Wklej token dostępu z narzędzi administracyjnych Nightscout. Pozostaw puste, jeśli witryna jest publicznie czytelna.",
"nightscoutPrivateOperatorTitle": "Dostęp do prywatnego serwera Nightscout wymaga zgody administratora serwera.",
"nightscoutPrivateOperatorDescription": "Poproś administratora serwera o zatwierdzenie dokładnie tego pochodzenia Nightscout.",
"nightscoutConnect": "Połącz",
"nightscoutUpdate": "Zapisz zmiany",
"nightscoutConnected": "Nightscout połączony.",
"nightscoutConnectFailed": "Nie można połączyć z Nightscout.",
"nightscoutSync": "Synchronizuj teraz",
"nightscoutSyncResult": "Zsynchronizowano {count} pomiarów",
"nightscoutSyncFailed": "Synchronizacja nie powiodła się",
"nightscoutDisconnect": "Rozłącz",
"nightscoutDisconnectTitle": "Rozłączyć Nightscout?",
"nightscoutDisconnectDescription": "Przyszłe synchronizacje zostaną zatrzymane. Już zaimportowane odczyty glukozy pozostaną w historii.",
"polar": "Polar",
"polarDescription": "Połącz konto Polar, aby synchronizować regenerację Nightly Recharge, fazy snu, dzienną aktywność i treningi.",
"polarViewData": "Zobacz sen i regenerację",
"polarCredentials": "Dane API",
"polarClientId": "Client ID",
"polarClientSecret": "Client Secret",
"polarCredentialsSaved": "Dane zapisane",
"polarCredentialsSavedPlaceholder": "Zapisano — wpisz nowe, aby zastąpić",
"polarSaveCredentials": "Zapisz",
"polarUnavailable": "Polar nie jest skonfigurowany na tym serwerze. Dodaj powyżej własne dane OAuth Polar lub poproś administratora o skonfigurowanie współdzielonej aplikacji.",
"polarConnect": "Połącz Polar",
"polarSync": "Synchronizuj teraz",
"polarSyncResult": "Zsynchronizowano {count} pomiarów",
"polarSyncFailed": "Synchronizacja nie powiodła się",
"polarDisconnect": "Rozłącz",
"polarDisconnectTitle": "Rozłączyć Polar?",
"polarDisconnectDescription": "Przyszłe synchronizacje zostaną zatrzymane. Już zaimportowane odczyty pozostaną w historii.",
"polarOauthConnected": "Polar połączony — pierwsza synchronizacja startuje w tle.",
"polarOauthFailed": "Połączenie z Polar nie powiodło się",
"polarOauthError": {
"csrf1": "Kontrola bezpieczeństwa nie powiodła się, ponieważ brakowało pliku cookie przeglądarki. Rozpocznij połączenie ponownie w tej samej przeglądarce.",
"state": "Odpowiedź z Polar nie pasowała do żadnego otwartego żądania połączenia. Rozpocznij połączenie ponownie.",
"cross_user": "Odpowiedź należy do żądania z innego konta. Rozpocznij połączenie ponownie z własnego konta.",
"nocode": "Polar nie zwrócił kodu autoryzacji. Spróbuj ponownie i zezwól na dostęp w oknie Polar.",
"nocreds": "Polar nie jest skonfigurowany na tym serwerze. Poproś administratora o dodanie danych OAuth Polar.",
"token": "Wymiana tokena z Polar nie powiodła się. Rozpocznij połączenie ponownie.",
"rate_limited": "Zbyt wiele prób połączenia. Poczekaj chwilę i spróbuj ponownie.",
"generic": "Nieznany błąd podczas łączenia. Rozpocznij połączenie ponownie."
},
"oura": "Oura",
"ouraDescription": "Połącz konto Oura, aby synchronizować gotowość, fazy snu, zmienność rytmu serca i dzienną aktywność.",
"ouraViewData": "Zobacz sen i regenerację",
"ouraCredentials": "Dane API",
"ouraClientId": "Client ID",
"ouraClientSecret": "Client Secret",
"ouraCredentialsSaved": "Dane zapisane",
"ouraCredentialsSavedPlaceholder": "Zapisano — wpisz nowe, aby zastąpić",
"ouraSaveCredentials": "Zapisz",
"ouraUnavailable": "Oura nie jest skonfigurowana na tym serwerze. Dodaj powyżej własne dane OAuth Oura lub poproś administratora o skonfigurowanie współdzielonej aplikacji.",
"ouraConnect": "Połącz Oura",
"ouraSync": "Synchronizuj teraz",
"ouraSyncResult": "Zsynchronizowano {count} pomiarów",
"ouraSyncFailed": "Synchronizacja nie powiodła się",
"ouraDisconnect": "Rozłącz",
"ouraDisconnectTitle": "Rozłączyć Oura?",
"ouraDisconnectDescription": "Przyszłe synchronizacje zostaną zatrzymane. Już zaimportowane odczyty pozostaną w historii.",
"ouraOauthConnected": "Oura połączona — pierwsza synchronizacja startuje w tle.",
"ouraOauthFailed": "Połączenie z Oura nie powiodło się",
"ouraOauthError": {
"csrf1": "Kontrola bezpieczeństwa nie powiodła się, ponieważ brakowało pliku cookie przeglądarki. Rozpocznij połączenie ponownie w tej samej przeglądarce.",
"state": "Odpowiedź z Oura nie pasowała do żadnego otwartego żądania połączenia. Rozpocznij połączenie ponownie.",
"cross_user": "Odpowiedź należy do żądania z innego konta. Rozpocznij połączenie ponownie z własnego konta.",
"nocode": "Oura nie zwróciła kodu autoryzacji. Spróbuj ponownie i zezwól na dostęp w oknie Oura.",
"nocreds": "Oura nie jest skonfigurowana na tym serwerze. Poproś administratora o dodanie danych OAuth Oura.",
"token": "Wymiana tokena z Oura nie powiodła się. Rozpocznij połączenie ponownie.",
"rate_limited": "Zbyt wiele prób połączenia. Poczekaj chwilę i spróbuj ponownie.",
"generic": "Nieznany błąd podczas łączenia. Rozpocznij połączenie ponownie."
},
"integrationSetupGuide": "Przewodnik konfiguracji",
"coach": {
"activate": {
"title": "Włącz Coacha",
"description": "Pokazuje przycisk i panel Coacha. Domyślnie włączony — wyłącz, aby ukryć Coacha wszędzie.",
"toggleAria": "Włącz przycisk i panel Coacha",
"savedOn": "Coach włączony.",
"savedOff": "Coach ukryty.",
"saveError": "Nie udało się zapisać zmiany. Spróbuj ponownie."
}
},
"withingsDescriptionSecondary": "Odczyty trafiają do panelu w tle. Pierwszy raz? Skorzystaj z",
"whoopDescriptionSecondary": "Odczyty trafiają do panelu w tle. Pierwszy raz? Skorzystaj z",
"fitbitDescriptionSecondary": "Odczyty trafiają do panelu w tle. Pierwszy raz? Skorzystaj z",
"polarDescriptionSecondary": "Odczyty trafiają do panelu w tle. Pierwszy raz? Skorzystaj z",
"ouraDescriptionSecondary": "Odczyty trafiają do panelu w tle. Pierwszy raz? Skorzystaj z",
"nightscoutDescriptionSecondary": "Odczyty trafiają do panelu w tle. Pierwszy raz? Skorzystaj z",
"integrationCredentialsHint": "Gdzie znaleźć te dane logowania i jak zarejestrować własną aplikację, opisano w przewodniku konfiguracji powyżej.",
"integrationRedirectGuide": {
"intro": "To połączenie działa przez Twoją własną aplikację deweloperską {provider} — około 5 minut konfiguracji:",
"step1": "Utwórz aplikację w portalu deweloperskim {provider}.",
"step2": "Ustaw jej URL przekierowania/callback na:",
"step3": "Wklej powyżej otrzymany identyfikator klienta i sekret klienta."
},
"security": {
"sessionsTitle": "Aktywne sesje",
"sessionsDescription": "Urządzenia i przeglądarki obecnie zalogowane na Twoje konto.",
"sessionsLoadError": "Nie udało się załadować aktywnych sesji.",
"sessionsEmpty": "Brak aktywnych sesji.",
"currentSession": "To urządzenie",
"lastActive": "Ostatnia aktywność {time}",
"unknownLocation": "Nieznana lokalizacja",
"revokeSession": "Wyloguj",
"revokeError": "Nie udało się zrealizować żądania. Spróbuj ponownie.",
"signOutEverywhere": "Wyloguj na pozostałych urządzeniach",
"signOutEverywhereDone": "Wylogowano {count} inną/e sesję/e.",
"activityTitle": "Aktywność zabezpieczeń",
"activityDescription": "Ostatnie logowania, zmiany zabezpieczeń i eksporty danych Twojego konta.",
"activityEmpty": "Brak aktywności zabezpieczeń.",
"activityLoadError": "Nie udało się załadować aktywności zabezpieczeń.",
"action": {
"newDevice": "Logowanie z nowego urządzenia",
"loginFailed": "Nieudane logowanie",
"login": "Logowanie",
"passwordChange": "Zmieniono hasło",
"mfa": "Zmiana uwierzytelniania dwuskładnikowego",
"sessionRevoke": "Wylogowano sesję",
"token": "Zmiana tokenu API",
"accountDelete": "Konto usunięte",
"dataClear": "Zresetowano dane",
"export": "Eksport danych",
"other": "Zdarzenie zabezpieczeń"
},
"active": "Aktywne",
"inactive": "Nieaktywne",
"stepUpRequired": "Ze względów bezpieczeństwa zaloguj się ponownie, aby zmienić drugi składnik.",
"useRecoveryCode": "Użyj zamiast tego kodu odzyskiwania",
"useAuthenticator": "Użyj zamiast tego aplikacji uwierzytelniającej",
"totp": {
"title": "Aplikacja uwierzytelniająca",
"description": "Użyj kodu czasowego z aplikacji uwierzytelniającej jako drugiego składnika.",
"setUp": "Skonfiguruj",
"step1": "Zeskanuj kod QR aplikacją uwierzytelniającą lub wprowadź sekret ręcznie.",
"step2": "Wprowadź 6-cyfrowy kod wyświetlany przez aplikację, aby potwierdzić.",
"qrAlt": "Kod QR do konfiguracji aplikacji uwierzytelniającej",
"qrUnavailable": "Kod QR niedostępny",
"manualEntry": "Lub wprowadź ten sekret ręcznie",
"enterCode": "Wprowadź 6-cyfrowy kod",
"verify": "Zweryfikuj",
"setupFailed": "Nie udało się rozpocząć konfiguracji. Spróbuj ponownie.",
"invalidCode": "Ten kod jest nieprawidłowy. Spróbuj ponownie.",
"disable": "Wyłącz",
"disableTitle": "Wyłącz uwierzytelnianie dwuskładnikowe",
"disableConfirm": "Wprowadź bieżący kod, aby wyłączyć drugi składnik. Spowoduje to również usunięcie kodów odzyskiwania.",
"currentCode": "Bieżący kod",
"disableFailed": "Nie udało się wyłączyć drugiego składnika."
},
"recovery": {
"saveNow": "Zapisz teraz te kody odzyskiwania",
"saveNowHint": "Każdy kod działa raz. Są wyświetlane tylko teraz — przechowuj je w bezpiecznym miejscu. Jeśli stracisz aplikację uwierzytelniającą, kod odzyskiwania będzie jedyną drogą powrotu.",
"download": "Pobierz",
"remainingOne": "Pozostał {count} kod odzyskiwania.",
"remainingOther": "Pozostało {count} kodów odzyskiwania.",
"regenerate": "Wygeneruj kody ponownie",
"regenFailed": "Nie udało się ponownie wygenerować kodów odzyskiwania.",
"savedIt": "Zapisałem je",
"regenerateTitle": "Wygenerować nowe kody odzyskiwania?",
"regenerateConfirm": "Spowoduje to zastąpienie obecnych kodów odzyskiwania. Dotychczasowe kody natychmiast przestaną działać, a nowy zestaw zostanie pokazany tylko raz."
},
"keys": {
"title": "Klucze bezpieczeństwa",
"description": "Zarejestruj sprzętowy lub systemowy klucz bezpieczeństwa jako drugi składnik.",
"empty": "Nie zarejestrowano jeszcze żadnych kluczy bezpieczeństwa.",
"add": "Dodaj klucz bezpieczeństwa",
"addFailed": "Nie udało się zarejestrować klucza bezpieczeństwa.",
"rename": "Zmień nazwę",
"renameFailed": "Nie udało się zmienić nazwy klucza bezpieczeństwa.",
"remove": "Usuń klucz bezpieczeństwa",
"removeFailed": "Nie udało się usunąć klucza bezpieczeństwa.",
"removeConfirm": "Ten klucz bezpieczeństwa nie będzie już działać jako drugi składnik.",
"lastUsed": "Ostatnio użyty {date}",
"neverUsed": "Nigdy nieużywany",
"added": "dodany {date}",
"nameLabel": "Nazwa klucza bezpieczeństwa"
},
"passkeyNudge": {
"title": "Dodaj klucz dostępu, aby logować się szybciej",
"body": "Klucze dostępu pozwalają logować się odciskiem palca, twarzą lub kodem PIN urządzenia — bez hasła do zapamiętania."
},
"trustedDevices": {
"title": "Zaufane urządzenia",
"description": "Przeglądarki, którym zaufałeś, pomijają drugi składnik przez 30 dni. Hasło jest nadal wymagane. Cofnij zaufanie tym, których nie rozpoznajesz.",
"loadError": "Nie udało się załadować zaufanych urządzeń.",
"revokeError": "Nie udało się cofnąć urządzenia. Spróbuj ponownie.",
"revoke": "Cofnij",
"revokeAll": "Zapomnij wszystkie urządzenia",
"revokeAllDone": "Zapomniano {count} zaufane urządzenie/a.",
"unnamed": "Nieznane urządzenie",
"current": "To urządzenie",
"expires": "Zaufane do {date}",
"revokeConfirmTitle": "Przestać ufać temu urządzeniu?",
"revokeConfirmBody": "Przy następnym logowaniu z tego urządzenia ponownie poprosi o drugi składnik.",
"revokeAllConfirmTitle": "Przestać ufać wszystkim urządzeniom?",
"revokeAllConfirmBody": "Każde urządzenie przy następnym logowaniu ponownie poprosi o drugi składnik, łącznie z tym."
},
"revokeSessionConfirmTitle": "Wylogować to urządzenie?",
"revokeSessionConfirmBody": "{device} będzie musiało zalogować się ponownie. Zapisane na nim dane pozostają bez zmian.",
"signOutEverywhereConfirmTitle": "Wylogować wszystkie pozostałe urządzenia?",
"signOutEverywhereConfirmBody": "Każde urządzenie poza tym będzie musiało zalogować się ponownie. To urządzenie pozostaje zalogowane. Zapisane dane pozostają bez zmian."
},
"privacy": {
"intro": {
"title": "Twoje dane pozostają Twoje",
"body": "HealthLog jest hostowany samodzielnie. Ta strona zbiera w jednym miejscu informacje o tym, jak chronione są Twoje dane, jak długo są przechowywane, jak je wyeksportować i jak je usunąć."
},
"encryption": {
"title": "Szyfrowane w spoczynku",
"description": "Wrażliwe pola są szyfrowane w bazie danych.",
"summary": "Twoje wrażliwe dane są szyfrowane w spoczynku algorytmem {algorithm} w {columns} polach w {models} typach rekordów.",
"statement": "Twoje wrażliwe dane są szyfrowane w spoczynku algorytmem AES-256-GCM."
},
"stored": {
"title": "Co jest przechowywane",
"description": "Kategorie danych przechowywanych na tym koncie.",
"measurements": "Pomiary (waga, ciśnienie, tętno, glukoza, sen, skład ciała)",
"medications": "Leki i historia przyjmowania",
"moodLabs": "Wpisy nastroju i wyniki badań laboratoryjnych",
"coach": "Rozmowy z asystentem",
"integrations": "Tokeny integracji (szyfrowane)",
"security": "Aktywność konta i zabezpieczeń (sesje, dziennik logowań)"
},
"retention": {
"title": "Retencja",
"description": "Jak długo rekordy ograniczone czasowo są przechowywane przed automatycznym czyszczeniem.",
"coach": "Rozmowy z asystentem: {days} dni",
"audit": "Dziennik zabezpieczeń: {days} dni",
"delivery": "Dziennik wysyłki powiadomień: {days} dni",
"unavailable": "Szczegóły przechowywania są obecnie niedostępne."
},
"export": {
"title": "Pobierz moje dane",
"description": "Wyeksportuj swoje rekordy jako CSV lub JSON, opcjonalnie zaszyfrowane hasłem, albo wygeneruj pełną dokumentację medyczną.",
"openExport": "Eksport i kopia zapasowa",
"openHealthRecord": "Dokumentacja medyczna"
},
"delete": {
"title": "Usuń lub zresetuj",
"description": "Usuń całe konto albo wyczyść dane zdrowotne, zachowując konto.",
"backupLag": "Usunięcie natychmiast usuwa Twoje dane. Zaszyfrowane kopie zapasowe poza serwerem nadal je zawierają, dopóki nie wygasną zgodnie z oknem retencji operatora.",
"openAdvanced": "Usuń lub zresetuj"
},
"posture": {
"title": "Ustawienia prywatności",
"description": "Kontroluj, ile Twoich danych jest udostępnianych funkcjom AI i opcjonalnym badaniom.",
"openAi": "Tryb prywatności AI",
"openResearch": "Tryb badawczy"
}
},
"mcp": {
"enableTitle": "Zdalny punkt końcowy MCP",
"enableDescription": "Zezwól asystentowi obsługującemu MCP (Claude.ai, ChatGPT) na odczyt danych zdrowotnych za pomocą ograniczonego tokenu. Domyślnie wyłączone.",
"enabled": "Włączony",
"disabled": "Wyłączony",
"enableToggleLabel": "Włącz punkt końcowy MCP",
"endpointLabel": "Adres URL łącznika",
"connectDescription": "Wklej ten adres URL w konfiguracji własnego łącznika asystenta, a następnie autoryzuj za pomocą poniższego tokenu lub zaloguj się po wyświetleniu monitu.",
"tokensTitle": "Tokeny łącznika",
"tokensDescription": "Wygeneruj token tylko do odczytu, aby połączyć asystenta. Token jest wyświetlany tylko raz.",
"scopeNote": "Tokeny są ograniczone do health:read — dostęp tylko do odczytu własnych danych. Nigdy nie mogą uzyskać dostępu do funkcji administracyjnych.",
"writeScopeToggleLabel": "Zezwól na zapis (health:write)",
"writeScopeNote": "Dodaje zakres health:write, aby asystent mógł zapisywać nowe pomiary i wpisy nastroju na Twoim koncie. Każdy zapis jest najpierw potwierdzany. Token nadal nie może usuwać ani edytować istniejących wpisów, zmieniać leków ani uzyskiwać dostępu do funkcji REST lub administracyjnych. Pozostaw wyłączone, aby uzyskać dostęp tylko do odczytu.",
"connectionsTitle": "Połączeni asystenci",
"connectionsDescription": "Asystenci autoryzowani podczas logowania. Cofnięcie połączenia natychmiast kończy dostęp, w tym możliwość odnawiania.",
"noConnections": "Brak połączonych asystentów.",
"connectionConnected": "Połączono",
"connectionLastUsed": "Ostatnio użyto",
"connectionNeverUsed": "Nigdy nie użyto",
"connectionRevoke": "Rozłącz",
"connectionRevokeDescription": "To natychmiast kończy dostęp asystenta i uniemożliwia odnawianie. Ponowne połączenie będzie wymagać nowej autoryzacji.",
"connectionRevokeFailed": "Nie udało się rozłączyć asystenta."
},
"strava": "Strava",
"stravaDescription": "Połącz konto Strava, aby synchronizować aktywności z historią treningów.",
"stravaDescriptionSecondary": "Aktywności trafiają na pulpit w tle. Nowy w konfiguracji? Skorzystaj z",
"stravaViewData": "Zobacz treningi",
"stravaCredentials": "Dane API",
"stravaClientId": "Identyfikator klienta",
"stravaClientSecret": "Sekret klienta",
"stravaCredentialsSaved": "Dane zapisane",
"stravaCredentialsSavedPlaceholder": "Zapisane — wpisz nowe, aby zastąpić",
"stravaSaveCredentials": "Zapisz",
"stravaUnavailable": "Strava nie jest skonfigurowana na tym serwerze. Dodaj powyżej własne dane API Strava lub poproś administratora o skonfigurowanie wspólnej aplikacji.",
"stravaConnect": "Połącz Strava",
"stravaSync": "Synchronizuj teraz",
"stravaSyncResult": "Zsynchronizowano {count} pomiarów",
"stravaSyncFailed": "Synchronizacja nie powiodła się",
"stravaDisconnect": "Rozłącz",
"stravaDisconnectTitle": "Rozłączyć Strava?",
"stravaDisconnectDescription": "Przyszłe synchronizacje zostaną zatrzymane. Już zaimportowane aktywności pozostaną w historii.",
"stravaOauthConnected": "Strava połączona — pierwsza synchronizacja rusza w tle.",
"stravaOauthFailed": "Połączenie ze Strava nie powiodło się",
"stravaOauthError": {
"csrf1": "Kontrola bezpieczeństwa nie powiodła się, ponieważ brakowało pliku cookie przeglądarki. Rozpocznij połączenie ponownie w tej samej przeglądarce.",
"state": "Odpowiedź ze Strava nie pasowała do żadnego otwartego żądania połączenia. Rozpocznij połączenie ponownie.",
"cross_user": "Odpowiedź należy do żądania z innego konta. Rozpocznij połączenie ponownie z własnego konta.",
"nocode": "Strava nie zwróciła kodu autoryzacji. Spróbuj ponownie i zezwól na dostęp w oknie Strava.",
"nocreds": "Strava nie jest skonfigurowana na tym serwerze. Poproś administratora o dodanie danych API Strava.",
"token": "Wymiana tokenu ze Strava nie powiodła się. Rozpocznij połączenie ponownie.",
"rate_limited": "Zbyt wiele prób połączenia. Poczekaj chwilę i spróbuj ponownie.",
"generic": "Nieznany błąd podczas łączenia. Rozpocznij połączenie ponownie."
},
"appleHealth": {
"title": "Apple Health",
"description": "Synchronizacja na żywo odbywa się przez aplikację HealthLog na iOS, a nie przez połączenie internetowe ani OAuth.",
"status": {
"unavailable": "Stan Apple Health jest niedostępny"
},
"setupTitle": "Włącz synchronizację na żywo",
"permissionStep": "W aplikacji HealthLog na iOS otwórz Ustawienia → Apple Health i zezwól na udostępnianie wybranych kategorii zdrowotnych.",
"backgroundStep": "Pozostaw włączone odświeżanie aplikacji w tle. Aplikacja synchronizuje nowe dane automatycznie na pierwszym planie oraz gdy iOS przydzieli jej czas w tle.",
"importNote": "Potrzebujesz starszej historii lub nie możesz użyć aplikacji iOS? Przesłanie pliku XML/ZIP z Apple Health jest jednorazową alternatywą i nie włącza synchronizacji na żywo.",
"importAction": "Otwórz jednorazowy import",
"staleNote": "Od ponad tygodnia nie napłynęły żadne dane z Apple Health. Otwórz aplikację HealthLog na iPhonie i sprawdź uprawnienia Apple Health.",
"delivery": {
"title": "Dostarczanie",
"lastTriggerLabel": "Ostatnia synchronizacja dotarła",
"lastBackgroundLabel": "Ostatnia synchronizacja w tle",
"backgroundNever": "Nigdy — jak dotąd każda synchronizacja dotarła przy otwartej aplikacji",
"noSyncYet": "Żadna synchronizacja jeszcze nie dotarła, więc nie ma tu nic do zgłoszenia.",
"trigger": {
"foreground": "przy otwartej aplikacji",
"background": "w tle",
"push": "z wybudzenia push",
"unknown": "aplikacja nie zgłosiła wyzwalacza"
}
}
},
"garminInfo": {
"title": "Garmin",
"body": "Garmin nie ma tutaj bezpośredniego połączenia. Połącz przez Apple Health (iOS) lub Google Health Connect (Android). Zastrzeżone wskaźniki Garmina — Body Battery, Training Load, status HRV, VO₂ max — nie są udostępniane przez Garmina żadnej z tych platform.",
"docsLink": "Przeczytaj przewodnik"
},
"glucoseReference": {
"title": "Zakres referencyjny glukozy",
"description": "Do jakiego zakresu porównywane są twoje wyniki glukozy we krwi.",
"enable": "Użyj zakresu docelowego dla cukrzycy",
"explainer": "Wyłączone — wyniki są oceniane względem ogólnego zakresu referencyjnego dla osób bez cukrzycy. Włączone — są oceniane względem węższego zakresu docelowego glikemii z ADA Standards of Care, a Coach opiera na nim swoje uwagi o glukozie. Twoje własne wartości docelowe poniżej nadal mają pierwszeństwo.",
"disclaimer": "To wybiera zakres referencyjny. Nie jest to diagnoza, nigdy nie jest wywnioskowane z pomiaru, a aplikacja nie podejmuje na tej podstawie działań klinicznych. O to, jakie cele dotyczą ciebie, zapytaj swojego lekarza.",
"error": "Nie udało się zapisać ustawienia."
}
},
"admin": {
"title": "Administracja",
"subtitle": "Stan systemu, użytkownicy i ustawienia",
"settingsSaveError": "Nie udało się zapisać ustawień",
"systemStatus": "Stan systemu",
"systemStatusDescription": "Stan działania tej instancji: baza danych, worker i liczniki rekordów.",
"database": "Baza danych",
"databaseConnected": "Połączona",
"databaseError": "Błąd",
"startedAt": "Uruchomiono",
"users": "Użytkownicy",
"measurementsCount": "Pomiary",
"activeTokens": "Aktywne tokeny API",
"activeSessions": "Aktywne sesje",
"loadingStatus": "Ładowanie stanu...",
"systemStatusLoadError": "Nie udało się załadować stanu systemu.",
"systemStatusRetry": "Spróbuj ponownie",
"adminSettingsLoadError": "Nie udało się załadować ustawień administracyjnych. Przełączniki poniżej mogą nie odzwierciedlać bieżącego stanu — odśwież stronę.",
"hostMetrics": {
"title": "Obciążenie hosta",
"load1": "Obciążenie (1m)",
"memUsedPercent": "Pamięć",
"diskBusyPercent": "Disk I/O",
"last2hours": "Ostatnie 2 godziny",
"empty": "Rozpoczęto próbkowanie — dane pojawią się w ciągu 1–2 minut.",
"loadError": "Nie udało się załadować metryk hosta. Spróbuj odświeżyć stronę."
},
"aiServerKey": {
"title": "Serwerowy klucz AI",
"description": "Klucz dostawcy na poziomie operatora, z którego może skorzystać każde konto, gdy nie skonfigurowano klucza osobistego.",
"byokHint": "Własny klucz użytkownika (BYOK, logowanie ChatGPT lub dostawca lokalny) zawsze ma pierwszeństwo — klucz serwera jest ostatnim ogniwem łańcucha dostawców.",
"consentHint": "Żądania przez klucz serwera wymagają aktywnej zgody użytkownika na AI; bez potwierdzenia zgody nic nie jest wysyłane.",
"statusConfigured": "Skonfigurowany",
"statusNotConfigured": "Nieskonfigurowany",
"keyLabel": "Klucz API",
"keyPlaceholder": "sk-...",
"keyPlaceholderSet": "Zapisany ({preview}) — wpisz nowy klucz, aby go zastąpić",
"modelLabel": "Model",
"baseUrlLabel": "Adres bazowy URL",
"save": "Zapisz",
"remove": "Usuń klucz",
"removeTitle": "Usunąć klucz serwera?",
"removeBody": "Konta bez własnego klucza natychmiast tracą funkcje AI. Po zapisaniu klucz nie jest nigdzie pokazywany, więc do przywrócenia potrzebny będzie oryginał.",
"removeConfirm": "Usuń klucz",
"saved": "Zapisano ustawienia serwerowego klucza AI",
"error": "Nie udało się zapisać serwerowego klucza AI"
},
"aiQuality": {
"title": "Jakość analiz",
"loading": "Ładowanie podsumowania opinii...",
"loadError": "Nie udało się załadować podsumowania jakości analiz. Spróbuj odświeżyć stronę.",
"empty": "Brak opinii. Agregator uruchamia się codziennie o 04:00 — gdy użytkownicy zaczną oceniać rekomendacje, tutaj pojawią się wskaźniki przydatności.",
"windowLabel": "Ostatnie {days} dni",
"generatedAtLabel": "Wygenerowano",
"colSeverity": "Ważność",
"colMetric": "Metryka",
"colProvider": "Dostawca",
"colPromptVersion": "Prompt",
"colHelpful": "Pomocne",
"colNotHelpful": "Niepomocne",
"colHelpfulRate": "Wskaźnik przydatności"
},
"coachFeedback": {
"title": "Opinie o Coachu",
"loading": "Ładowanie podsumowania opinii o Coachu...",
"loadError": "Nie udało się załadować podsumowania opinii o Coachu. Spróbuj odświeżyć stronę.",
"empty": "Brak opinii o Coachu. Agregator uruchamia się codziennie o 04:00 — gdy użytkownicy ocenią odpowiedzi Coacha, tutaj pojawią się wskaźniki przydatności.",
"windowLabel": "Ostatnie {days} dni",
"generatedAtLabel": "Wygenerowano",
"colPromptVersion": "Wersja promptu",
"colTone": "Ton",
"colVerbosity": "Szczegółowość",
"colHelpful": "Pomocne",
"colNotHelpful": "Niepomocne",
"colN": "n",
"colHelpfulRate": "Wskaźnik przydatności"
},
"workerStatus": "Worker zadań",
"workerRunning": "Działa",
"workerStopped": "Zatrzymano",
"lastReminderCheck": "Ostatnie sprawdzenie przypomnień",
"appSettings": "Ustawienia aplikacji",
"appSettingsDescription": "Globalne ustawienia domyślne rejestracji, języka i strefy czasowej nowych kont.",
"registrationEnabled": "Zezwól na rejestrację",
"registrationEnabledDescription": "Gdy wyłączone, nowi użytkownicy nie mogą się zarejestrować.",
"registrationOpenHint": "Rejestracja jest otwarta — każdy, kto ma dostęp do tej instancji, może założyć konto. Zamknij ją tutaj, gdy wszyscy będą mieć konto.",
"defaultLanguage": "Domyślny język",
"defaultLanguageDescription": "Używany dla nowych użytkowników i jako rozwiązanie zapasowe.",
"defaultUserTimezone": "Domyślna strefa czasowa dla nowych kont",
"defaultUserTimezoneDescription": "Używana dla nowych kont bez strefy wykrytej przez przeglądarkę. Nie wpływa na istniejących użytkowników.",
"defaultUserTimezoneFallback": "Europe/Berlin (domyślna)",
"servicesGlobal": "Usługi (globalne)",
"servicesGlobalDescription": "Wyłączone usługi nie są dostępne dla żadnego użytkownika.",
"telegramGlobal": "Zezwól na powiadomienia Telegram.",
"ntfyGlobal": "Zezwól na powiadomienia ntfy.",
"webPushGlobal": "Zezwól na powiadomienia push przeglądarki.",
"integrationWebPush": "Web Push",
"offlineGeoLabel": "Dane geograficzne",
"offlineGeoEnabled": "Offline (GeoLite2)",
"offlineGeoFallback": "Online ({host}) — podłącz bazy GeoLite2 i ustaw GEOLITE2_DIR",
"apiGlobal": "Zezwól na punkty końcowe API i tokeny API.",
"umamiTitle": "Umami",
"umamiDescription": "Analityka internetowa z Umami",
"glitchtipTitle": "GlitchTip",
"glitchtipDescription": "Śledzenie błędów z GlitchTip",
"webPushVapidTitle": "Web Push VAPID",
"umamiEnabled": "Włącz śledzenie Umami.",
"umamiScriptUrl": "Adres URL skryptu Umami",
"umamiScriptUrlPlaceholder": "https://analytics.example.com/script.js",
"umamiWebsiteId": "Identyfikator witryny Umami",
"umamiWebsiteIdPlaceholder": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"glitchtipEnabled": "Włącz śledzenie błędów GlitchTip.",
"glitchtipDsn": "GlitchTip DSN",
"glitchtipDsnPlaceholder": "https://<public-key>@glitchtip.example.com/<project-id>",
"glitchtipEnvironment": "Środowisko GlitchTip",
"glitchtipEnvironmentPlaceholder": "production",
"webPushVapidDescription": "Skonfiguruj tutaj klucze VAPID i subject, aby push przeglądarki działał bez zmiennych środowiskowych.",
"webPushVapidPublicKey": "Klucz publiczny VAPID",
"webPushVapidPublicKeyPlaceholder": "BElx... (Base64URL)",
"webPushVapidPrivateKey": "Klucz prywatny VAPID",
"webPushVapidPrivateKeyPlaceholder": "Opcjonalnie: wprowadź nowy klucz prywatny",
"webPushVapidSubject": "Subject VAPID",
"webPushVapidSubjectPlaceholder": "mailto:you@example.com",
"webPushVapidGenerate": "Wygeneruj klucze",
"webPushVapidGenerating": "Generowanie…",
"webPushVapidGenerated": "Klucze VAPID wygenerowane. Zapisz temat, aby zakończyć.",
"webPushVapidGenerateFailed": "Nie udało się wygenerować kluczy VAPID.",
"webPushVapidGenerateConfirm": "Klucze VAPID są już skonfigurowane. Wygenerowanie nowej pary unieważnia wszystkie subskrypcje push w przeglądarce — każde urządzenie musi zasubskrybować ponownie. Kontynuować?",
"webPushVapidGenerateConfirmTitle": "Wygenerować nowe klucze VAPID?",
"webPushVapidRegenerate": "Wygeneruj ponownie",
"configured": "Skonfigurowano",
"monitoringTestSuccess": "Wysłano zdarzenie testowe",
"monitoringTestFailed": "Test monitorowania nie powiódł się",
"assistant": {
"title": "Powierzchnie asystenta",
"description": "Każdy przełącznik ukrywa powierzchnię opartą na modelu w całej aplikacji bez usuwania konfiguracji dostawcy. Główny wyłącznik wymusza wyłączenie każdej opcji podrzędnej.",
"master": {
"title": "Asystent włączony",
"description": "Główny wyłącznik dla każdej powierzchni opartej na modelu. Gdy wyłączony, każda opcja podrzędna jest wymuszana na off."
},
"coach": {
"title": "Coach",
"description": "Szuflada czatu, przycisk uruchamiający i mobilny FAB na każdej stronie Insights."
},
"briefing": {
"title": "Codzienny briefing",
"description": "Karta briefingu, narracja hero strip, siatka rekomendacji i akcja Regeneruj."
},
"insightStatus": {
"title": "Karty statusu",
"description": "Karty statusu na metrykę na każdej podstronie /insights."
},
"correlations": {
"title": "Korelacje",
"description": "Narracja kafelka korelacji w przeglądzie Insights."
}
},
"modules": {
"title": "Dostępność modułów",
"description": "Wyłącz moduł dla całego serwera. Moduł wyłączony tutaj jest nieaktywny dla każdego konta, niezależnie od preferencji użytkownika. Domeny podstawowe (waga, ciśnienie, tętno, leki) są zawsze włączone i nie można ich wyłączyć.",
"saveError": "Nie udało się zaktualizować dostępności modułów."
},
"invites": {
"title": "Zaproszenia",
"description": "Linki z zaproszeniem do rejestracji — działają nawet przy zamkniętej rejestracji. Link jest wyświetlany tylko raz.",
"adminOnlyHint": "Tylko administratorzy mogą tworzyć i unieważniać zaproszenia.",
"create": "Utwórz zaproszenie",
"createTitle": "Utwórz zaproszenie",
"createDescription": "Link umożliwia rejestrację nawet przy zamkniętej rejestracji.",
"ttlLegend": "Ważne przez",
"createDays": "{days} dni",
"maxUsesLabel": "Maksymalna liczba użyć",
"maxUsesHint": "Ile rejestracji dopuszcza ten link (1–50).",
"createConfirm": "Utwórz zaproszenie",
"createdToast": "Zaproszenie utworzone.",
"createError": "Nie udało się utworzyć zaproszenia.",
"tokenTitle": "Link z zaproszeniem",
"tokenOnceHint": "Do skopiowania tylko teraz — skopiuj link lub udostępnij kod QR do zeskanowania.",
"hashExplainer": "Zapisywany jest tylko hash linku — nie można go później ponownie wyświetlić. W razie utraty unieważnij zaproszenie i utwórz nowe.",
"copyLink": "Kopiuj link",
"copiedToast": "Link skopiowany.",
"copyError": "Kopiowanie nie powiodło się.",
"qrAlt": "Kod QR linku z zaproszeniem",
"loadError": "Nie udało się wczytać zaproszeń.",
"emptyTitle": "Brak zaproszeń",
"emptyDescription": "Utwórz link z zaproszeniem, aby przyjąć kogoś mimo zamkniętej rejestracji.",
"colStatus": "Status",
"colCreated": "Utworzono",
"colExpires": "Wygasa",
"colUses": "Użycia",
"colRedeemedBy": "Wykorzystane przez",
"colActions": "Akcje",
"byCreator": "przez {by}",
"expiresInDaysOne": "za 1 dzień",
"expiresInDaysOther": "za {count} dni",
"statusActive": "Aktywne",
"statusExpired": "Wygasłe",
"statusExhausted": "Wyczerpane",
"statusRevoked": "Unieważnione",
"redeemerDeleted": "usunięte konto",
"redeemedByMore": "{username} + {count} więcej",
"redemptionsTitle": "Wykorzystania: {count}",
"revoke": "Unieważnij",
"revokeAria": "Unieważnij zaproszenie",
"revokeConfirmTitle": "Unieważnić to zaproszenie?",
"revokeConfirmBody": "Link z zaproszeniem natychmiast straci ważność. Konta już zarejestrowane przez ten link pozostaną, a historia wykorzystań będzie nadal widoczna.",
"revokeConfirmAction": "Unieważnij",
"cancel": "Anuluj",
"revokedToast": "Zaproszenie unieważnione.",
"revokeError": "Nie udało się unieważnić zaproszenia."
},
"userManagement": "Zarządzanie użytkownikami",
"userManagementDescription": "Zarządzaj kontami: role, resety haseł i wymuszone wylogowania.",
"userName": "Nazwa",
"userEmail": "E-mail",
"userRole": "Rola",
"userPasskeys": "Passkeys",
"userCreated": "Utworzono",
"userActions": "Akcje",
"editUser": "Edytuj użytkownika",
"editUserTitle": "Edytuj użytkownika: {name}",
"demoteToUser": "Obniż do użytkownika",
"promoteToAdmin": "Awansuj na administratora",
"toUser": "Ustaw jako użytkownika",
"toAdmin": "Ustaw jako administratora",
"ownRoleUnchangeable": "Nie można zmienić własnej roli",
"resetPassword": "Zresetuj hasło",
"resetPasswordTitle": "Zresetuj hasło: {name}",
"newPassword": "Nowe hasło",
"newPasswordPlaceholder": "Co najmniej 12 znaków",
"passwordReset": "Hasło zostało zresetowane",
"reset": "Resetuj",
"loadingUsers": "Ładowanie użytkowników...",
"apiTokens": "Tokeny API",
"apiTokensDescription": "Wszystkie aktywne i unieważnione tokeny API ze wszystkich kont.",
"tokenUser": "Użytkownik",
"tokenName": "Nazwa",
"tokenPermissions": "Uprawnienia",
"tokenPermissionAll": "Wszystko",
"tokenPermissionAllTooltip": "Uprawnienie wieloznaczne — ten token może wywołać każdą trasę API.",
"tokenStatus": "Stan",
"tokenLastUsed": "Ostatnio użyto",
"tokenCreated": "Utworzono",
"tokenNeverUsed": "Nigdy",
"tokensEmptyTitle": "Brak tokenów API",
"tokensEmptyDescription": "Tokeny są wydawane, gdy klient natywny się loguje, lub przez Ustawienia → Konto.",
"loginOverview": "Przegląd logowań",
"loginOverviewDescription": "Zdarzenia logowania i uwierzytelniania wszystkich kont, z filtrowaniem i eksportem CSV.",
"allAuthEvents": "Wszystkie zdarzenia uwierzytelniania",
"failedOnly": "Tylko nieudane",
"loginEmptyDescription": "Tutaj pojawią się logowania, wylogowania i zmiany kluczy passkey.",
"loginEmptyFailedTitle": "Brak nieudanych prób logowania",
"loginEmptyFailedDescription": "To bezpieczny stan. Przełącz na wszystkie zdarzenia, aby zobaczyć udane logowania.",
"loginEmptyResetFilter": "Pokaż wszystkie zdarzenia",
"showingEntries": "Wyświetlanie {count} z {total} wpisów uwierzytelniania",
"status": "Stan",
"action": "Akcja",
"ip": "IP",
"location": "Lokalizacja",
"timestamp": "Czas",
"provider": "Dostawca",
"providerPassword": "Hasło",
"providerPasskey": "Passkey",
"providerApiToken": "Token API",
"providerWithings": "Withings",
"providerUnknown": "Nieznane",
"outcome": "Wynik",
"outcomeSuccess": "Sukces",
"outcomeFailed": "Nieudane",
"auditDetails": "Szczegóły",
"deleteAllData": "Usuń wszystkie dane globalnie",
"deleteAllDescription": "Usuwa wszystkie dane pomiarów, leków, integracji i logów wszystkich użytkowników. Konta użytkowników zostaną zachowane.",
"deleteAllConfirm": "Na pewno usunąć wszystkie dane?",
"deleteAllConfirmDescription": "Spowoduje to trwałe usunięcie wszystkich pomiarów, leków, zdarzeń przyjęcia, tokenów API, połączeń Withings, otwartych wyzwań uwierzytelniania, kanałów powiadomień (Telegram, ntfy, Web Push), subskrypcji push oraz zakolejkowanych usunięć wiadomości Telegram wszystkich użytkowników. Konta użytkowników, dziennik audytu i przesłane opinie zostają zachowane, aby samo usunięcie pozostało możliwe do prześledzenia, a zgłoszenia błędów — do obsłużenia.",
"deleteButton": "Usuń wszystkie dane",
"deleteAllPromptLabel": "Wpisz {token}, aby kontynuować",
"finalDelete": "Usuń trwale",
"deletedResult": "Deleted: {measurements} measurements, {medications} Leki,{intakeEvents} intakes, {apiTokens} API tokens, {withingsConnections} Withings connections, {authChallenges} auth challenges, {notificationChannels} notification channels, {pushSubscriptions} push subscriptions, {telegramScheduledDeletions} queued Telegram deletions. Feedback rows preserved.",
"authRegister": "Rejestracja",
"authLogin": "Zaloguj",
"authLoginPasskey": "Logowanie kluczem passkey",
"authLoginPassword": "Logowanie hasłem",
"authLoginFailed": "Nieudane",
"authLogout": "Wyloguj",
"authPasskeyRegister": "Dodano klucz passkey",
"authPasskeyDelete": "Usunięto klucz passkey",
"authTokenAutoissueNative": "Wydano token klienta natywnego",
"authTokenRefresh": "Token odświeżony",
"authTokenRevoke": "Token unieważniony",
"medicationReminders": "Przypomnienia o lekach",
"medicationRemindersDescription": "Progi zmian koloru oznaczeń przypomnień na kartach leków.",
"notificationHealth": {
"title": "Stan dostarczania",
"description": "Wyniki dostarczania wszystkich użytkowników z ostatnich 24 godzin.",
"empty": "W tym okresie nie wysłano żadnych powiadomień.",
"ok": "OK",
"error": "Nieudane",
"skipped": "Pominięte",
"autoDisabled": "Automatycznie wyłączone kanały"
},
"reminderLateMinutes": "Próg opóźnienia (minuty)",
"reminderLateMinutesDescription": "Minuty po końcu okna, zanim oznaczenie zmieni kolor z żółtego na pomarańczowy.",
"reminderMissedMinutes": "Próg pominięcia (minuty)",
"reminderMissedMinutesDescription": "Minuty po końcu okna, zanim przyjęcie zostanie uznane za pominięte.",
"notificationTestSend": "Wyślij test",
"notificationTestSuccess": "Wysłano powiadomienie testowe",
"notificationTestFailed": "Nie udało się wysłać powiadomienia testowego",
"reminderCheckRun": "Uruchom sprawdzenie przypomnień",
"reminderCheckSuccess": "Zakończono sprawdzanie przypomnień",
"reminderCheckFailed": "Nie udało się uruchomić sprawdzenia przypomnień",
"reminderCheckResults": "Wyniki",
"reminderCheckNotifOn": "Powiadomienia włączone",
"reminderCheckNotifOff": "Powiadomienia wyłączone",
"reminderCheckEventsToday": "Zdarzenia dzisiaj",
"reminderCheckNotifSent": "Wysłane",
"shell": {
"overview": "Przegląd",
"sectionsNav": "Sekcje administracyjne"
},
"overview": {
"welcomeTitle": "Witamy,{name}",
"welcomeSubtitle": "Zalogowano jako administrator. Wybierz sekcję, aby zarządzać HealthLog.",
"snapshotTitle": "Migawka systemu",
"snapshotVersion": "Wersja",
"snapshotDatabase": "Baza danych",
"snapshotWorker": "Worker",
"snapshotStarted": "Uruchomiono",
"snapshotBuildSha": "Build SHA",
"snapshotBuiltAt": "Skompilowano",
"snapshotOfflineGeo": "Dane geograficzne",
"snapshotOfflineGeoOn": "Offline (GeoLite2)",
"snapshotOfflineGeoOff": "Online ({host})",
"versionTileTitle": "Wersja",
"versionTileVersion": "Uruchomiona wersja",
"versionTileBuildSha": "SHA kompilacji",
"versionTileBuiltAt": "Skompilowano",
"versionTileUpdateAvailable": "Dostępna aktualizacja: {tag}",
"versionTileUpToDate": "Aktualne",
"snapshotLoadError": "Nie udało się załadować migawki systemu.",
"snapshotLoading": "Ładowanie migawki...",
"auditTitle": "Ostatnia aktywność",
"auditEmpty": "Brak ostatnich wpisów audytu.",
"auditLoadError": "Nie udało się załadować ostatniej aktywności.",
"auditLoading": "Ładowanie aktywności...",
"auditViewAll": "Pokaż wszystko"
},
"section": {
"system-status": {
"title": "Stan systemu",
"subtitle": "Stan workera, bazy danych i integracji w jednym miejscu."
},
"general": {
"title": "Ogólne",
"subtitle": "Rejestracja, domyślny język i inne przełączniki obejmujące całą aplikację."
},
"services": {
"title": "Usługi",
"subtitle": "Włącz lub wyłącz kanały powiadomień i integracje w całym systemie."
},
"integrations": {
"title": "Integracje",
"subtitle": "Skonfiguruj Umami, GlitchTip, Web Push i zgłoszenia błędów."
},
"coach": {
"title": "Coach",
"subtitle": "Powierzchnie asystenta, klucz serwera oraz tabele jakości opinii Coacha i analiz w jednym miejscu."
},
"reminders": {
"title": "Przypomnienia",
"subtitle": "Dostrój progi przypomnień o lekach i uruchom ręczne sprawdzenie."
},
"users": {
"title": "Użytkownicy",
"subtitle": "Zarządzaj kontami użytkowników, rolami i aktywnymi sesjami.",
"filter": {
"all": "Wszystko",
"admin": "Administratorzy",
"user": "Użytkownicy"
},
"forceLogout": "Wymuś wylogowanie",
"forceLogoutConfirmTitle": "Wymusić wylogowanie {name}?",
"forceLogoutConfirmBody": "Wszystkie aktywne sesje tego użytkownika zostaną unieważnione. Będzie musiał zalogować się ponownie na każdym urządzeniu.",
"forceLogoutSuccess": "Wylogowano {name} z {count} sesji",
"forceLogoutFailed": "Nie udało się wymusić wylogowania",
"cannotLogoutSelf": "Nie można wymusić wylogowania samego siebie",
"emptyTitle": "Brak użytkowników w tym widoku",
"emptyDescription": "Brak użytkowników pasujących do bieżącego filtra.",
"emptyResetFilter": "Pokaż wszystkich użytkowników"
},
"invites": {
"title": "Zaproszenia",
"subtitle": "Tworzenie, śledzenie i unieważnianie linków z zaproszeniem."
},
"api-tokens": {
"title": "Tokeny API",
"subtitle": "Aktywne tokeny bearer wydane klientom natywnym i integracjom."
},
"login-overview": {
"title": "Przegląd logowań",
"subtitle": "Ślad audytu zdarzeń uwierzytelniania i administracyjnych."
},
"auditLog": {
"filterActor": "Podmiot (ID użytkownika lub nazwa użytkownika)",
"filterAction": "Akcja",
"filterActionAll": "Wszystkie akcje",
"filterTarget": "Cel (ID lub ścieżka)",
"filterDate": "Zakres dat",
"range24h": "Ostatnie 24 godziny",
"range7d": "Ostatnie 7 dni",
"range30d": "Ostatnie 30 dni",
"rangeAll": "Cały okres",
"perPage": "Na stronę",
"prev": "Poprzednia",
"next": "Dalej",
"pageOf": "Strona {page} z {total}",
"export": "Eksportuj CSV",
"empty": "Żaden wpis audytu nie pasuje do bieżących filtrów."
},
"app-logs": {
"title": "Logi aplikacji",
"subtitle": "Wyświetl najnowsze ustrukturyzowane wide-events emitowane przez ten proces.",
"processNote": "Wyświetlane są tylko logi procesu aplikacji — logi procesu workera trafiają do Loki, gdy ta integracja jest skonfigurowana. Bufor jest ulotny i ograniczony do 500 wpisów.",
"filterTraceId": "Identyfikator śladu",
"filterAction": "Akcja zawiera…",
"filterLevel": "Poziom",
"levelAll": "Wszystkie poziomy",
"filterRange": "Okno czasowe",
"range15m": "Ostatnie 15 minut",
"range1h": "Ostatnia godzina",
"range6h": "Ostatnie 6 godzin",
"rangeAll": "Cały bufor",
"colLevel": "Poziom",
"colTimestamp": "Znacznik czasu",
"colAction": "Akcja",
"colDuration": "Czas trwania",
"colTraceId": "Trace",
"viewDetails": "Zobacz szczegóły dla {action} o {timestamp}",
"showing": "Wyświetlono {count} z maksymalnie {bufferMax} buforowanych zdarzeń",
"empty": "Bufor jest pusty",
"emptyDescription": "Żadne zdarzenie nie pasuje jeszcze do bieżących filtrów. Kliknij Odśwież po wygenerowaniu ruchu.",
"refresh": "Odśwież",
"eventDetails": "Szczegóły zdarzenia",
"closeDetails": "Zamknij szczegóły"
},
"backups": {
"title": "Kopie zapasowe",
"subtitle": "Cotygodniowe migawki danych dla każdego użytkownika przechowywane w PostgreSQL.",
"description": "Każdy użytkownik ma jedną przesuwaną migawkę na typ kopii. Rozmiary pokazują zaszyfrowany blob — zawartości nie można pobrać z tej strony.",
"runNow": "Utwórz kopię teraz",
"runEnqueued": "Zadanie kopii zapasowej dodano do kolejki",
"runFailed": "Nie udało się dodać kopii do kolejki",
"loading": "Ładowanie kopii zapasowych...",
"loadError": "Nie udało się załadować kopii zapasowych.",
"emptyTitle": "Brak kopii zapasowych",
"emptyDescription": "Kopie zapasowe wykonują się automatycznie w każdą niedzielę o 03:00 — lub uruchom jedną teraz, aby utworzyć pierwszą migawkę.",
"colUser": "Użytkownik",
"colType": "Typ",
"typeWeeklyAuto": "Cotygodniowo (auto)",
"typeManual": "Ręcznie",
"colSize": "Rozmiar",
"colCreatedAt": "Ostatnia migawka",
"colActions": "Akcje",
"retentionLabel": "Przechowywanie: {days} dni",
"download": "Pobierz",
"downloadAria": "Pobierz kopię zapasową dla {username}",
"downloadFailed": "Pobieranie nie powiodło się",
"downloadStarted": "Rozpoczęto pobieranie",
"uploadTitle": "Prześlij kopię zapasową",
"uploadDescription": "Sprawdź plik kopii zapasowej i zapisz go jako ręczną migawkę. Przywracanie to osobny krok.",
"uploadButton": "Prześlij plik",
"uploadHelp": "Plik JSON zgodny z bieżącym schematem kopii zapasowej. Maks. 10 MB.",
"uploadSuccess": "Przesłano kopię zapasową ({count} rekordów)",
"uploadFailed": "Przesyłanie nie powiodło się",
"restore": "Przywróć",
"restoreAria": "Przywróć z kopii zapasowej dla {username}",
"restoreTitle": "Przywróć z kopii zapasowej",
"restoreDescription": "Spowoduje to zastąpienie WSZYSTKICH bieżących danych {username} migawką z {when}. Istniejące pomiary, leki, zdarzenia przyjęcia, wpisy nastroju, kanały powiadomień, subskrypcje push i zakolejkowane usunięcia Telegram zostaną usunięte.",
"restorePromptLabel": "Wpisz RESTORE, aby kontynuować",
"restoreConfirm": "Przywróć teraz",
"restoreInProgress": "Przywracanie...",
"restoreSuccess": "Przywracanie zakończone",
"restoreFailed": "Przywracanie nie powiodło się",
"restoreSkippedToast": "Przywracanie zakończone, {links} powiązań objawów nie udało się odtworzyć",
"restoreSkippedTitle": "{links} powiązań nie zostało przywróconych",
"restoreSkippedDescription": "Plik odwołuje się do wpisów, których ta instalacja nie zna. Wszystko pozostałe zostało przywrócone. Ta sama lista znajduje się w dzienniku audytu.",
"restoreSkippedLinks": "{count} powiązań",
"restoreSkippedCycleSymptom": "Objaw cyklu",
"restoreSkippedIllnessSymptom": "Objaw choroby",
"restoreSkippedMoodFactor": "Czynnik nastroju",
"docsLink": "Dokumentacja"
},
"danger-zone": {
"title": "Strefa zagrożenia",
"subtitle": "Destrukcyjne operacje obejmujące cały system."
},
"about": {
"title": "O programie",
"subtitle": "Wersja, licencja i stan aktualizacji."
},
"module-availability": {
"title": "Moduły",
"subtitle": "Włącz lub wyłącz moduły dla wszystkich kont na tym serwerze."
},
"encryption": {
"title": "Szyfrowanie",
"subtitle": "Pokrycie szyfrowaniem i status rotacji kluczy dla danych w spoczynku.",
"loading": "Ładowanie statusu szyfrowania...",
"loadError": "Nie udało się wczytać statusu szyfrowania.",
"coverageTitle": "Pokrycie",
"coverageDescription": "Ile zaszyfrowanych wierszy przypada na każdy identyfikator klucza. Pokazywane są tylko identyfikatory kluczy i liczby — nigdy materiał klucza.",
"activeKeyId": "Identyfikator aktywnego klucza",
"configuredKeys": "Skonfigurowane klucze",
"totalRows": "Zaszyfrowane wiersze",
"staleRows": "Wiersze poza aktywnym kluczem",
"safeToDropLegacy": "Można bezpiecznie usunąć stary klucz",
"rotationIncomplete": "Pozostało {count} wierszy do rotacji",
"rotationTitle": "Rotacja kluczy",
"rotationDescription": "Ponownie szyfruje każdą zaszyfrowaną kolumnę aktywnym kluczem. Narzędzie wiersza poleceń pozostaje kanoniczną drogą; ten przycisk to udogodnienie.",
"rotationState": "Status",
"lastRun": "Ostatni przebieg: sprawdzono {scanned}, zrotowano {rotated}, błędy {errors}.",
"rotateNow": "Rotuj teraz",
"rotateConfirmTitle": "Ponownie zaszyfrować cały rekord?",
"rotateConfirmDescription": "Ponownie szyfruje każdą zaszyfrowaną kolumnę aktywnym kluczem. Nigdy nie dodaje ani nie usuwa klucza i można go bezpiecznie uruchomić ponownie. Na dużych kontach może to chwilę potrwać.",
"cancel": "Anuluj",
"rotateConfirm": "Rozpocznij rotację",
"rotateEnqueued": "Rotacja rozpoczęta.",
"rotateFailed": "Nie udało się rozpocząć rotacji.",
"stepUpNeeded": "Wymagany jest świeży drugi składnik. Potwierdź drugi składnik lub użyj narzędzia wiersza poleceń, jeśli nie masz skonfigurowanego żadnego.",
"cliNote": "Do tego przycisku wymagany jest drugi składnik. Operatorzy bez niego rotują przez scripts/rotate-encryption-key.ts.",
"columnsTitle": "Pokrycie wg kolumn",
"columnsDescription": "Każda zaszyfrowana kolumna z liczbą wierszy na aktywnym kluczu względem starszych kluczy.",
"colColumn": "Kolumna",
"colTotal": "Razem",
"colActive": "Na aktywnym kluczu",
"colStale": "Przestarzałe",
"state": {
"idle": "Bezczynny",
"running": "W toku",
"completed": "Zakończono",
"failed": "Niepowodzenie"
}
}
},
"carrier": "Operator",
"mfaRequired": "Wymagaj drugiego składnika",
"mfaRequiredDescription": "Każde konto bez aktywnego drugiego składnika jest po zalogowaniu kierowane do konfiguracji. To zachęca użytkowników sieci do włączenia go, ale nie blokuje bezpośredniego dostępu przez API ani natywnego (Bearer) dla kont jeszcze nieskonfigurowanych.",
"mfaEnforcedOn": "MFA wł.",
"mfaEnforcedOff": "MFA wył.",
"mfaEnforcedOnHint": "Ten użytkownik musi używać drugiego składnika. Kliknij, aby przestać go wymagać.",
"mfaEnforcedOffHint": "Wymagaj drugiego składnika dla tego użytkownika.",
"copyIp": "Kopiuj adres IP",
"ipCopied": "Skopiowano adres IP",
"copyFailed": "Nie udało się skopiować.",
"documentMaxFile": "Limit przesyłania dokumentów",
"documentMaxFileDescription": "Maksymalny rozmiar pliku w archiwum dokumentów (1–100 MB).",
"documentQuota": "Limit miejsca na dokumenty",
"documentQuotaDescription": "Domyślne miejsce na dokumenty na konto (0,1–1024 GB).",
"userDocumentQuota": "Indywidualny limit dokumentów",
"userDocumentQuotaDefault": "Domyślny",
"userDocumentQuotaHint": "Pozostaw puste, aby użyć domyślnego limitu instancji.",
"centralCodex": {
"title": "Wspólne połączenie AI",
"description": "Podłącz jedno zalogowane konto ChatGPT, które każdy użytkownik tego serwera może włączyć dla funkcji AI.",
"honesty": "To jedno wspólne, zalogowane konto AI — nie klucz API. Każdy, kto je włączy, wysyła przez nie zapytania, więc godzinowe i tygodniowe limity konta są dzielone między nimi, a te same limity zasilają już Coacha. Dostawcy subskrypcyjni mogą wykorzystywać treść do ulepszania swoich modeli i nie obejmuje tego żadna umowa powierzenia przetwarzania danych, dlatego nigdy nie jest to opcja domyślna i pozostaje poniżej dostawców bez trenowania przy odczycie dokumentów. Podłącz tylko konto, które chcesz udostępniać w ten sposób.",
"statusConnected": "Połączono",
"statusDisconnected": "Nie połączono",
"statusExpired": "Wygasło",
"connectButton": "Podłącz konto ChatGPT",
"disconnectButton": "Rozłącz",
"disconnectTitle": "Odłączyć wspólne konto AI?",
"disconnectBody": "Wszyscy użytkownicy tego serwera korzystający ze wspólnego połączenia stracą funkcje AI, dopóki ktoś nie podłączy konta ponownie. Zapisanego logowania nie da się odzyskać.",
"disconnectConfirm": "Odłącz",
"connectedSince": "Połączono od {when}",
"connected": "Wspólne połączenie AI podłączone",
"disconnected": "Wspólne połączenie AI usunięte",
"error": "Coś poszło nie tak — spróbuj ponownie"
},
"failingJobs": {
"title": "Zadania w tle",
"description": "Kolejki, których zadania poddały się po wyczerpaniu ponowień.",
"none": "W ciągu ostatnich {hours} godzin żadne zadanie nie zawiodło.",
"unavailable": "Brak kolejki zadań do odczytu — to wdrożenie działa bez workera w tle.",
"countOne": "{count} niepowodzenie",
"countFew": "{count} niepowodzenia",
"countOther": "{count} niepowodzeń",
"lastFailed": "Ostatnie niepowodzenie {when}"
}
},
"achievements": {
"title": "Osiągnięcia",
"subtitle": "Zdobywaj osiągnięcia, śledząc swoje zdrowie i przyjmując leki na czas.",
"loginRequired": "Zaloguj się, aby zobaczyć osiągnięcia.",
"points": "Punkty",
"unlocked": "Odblokowano",
"nextGoal": "Następny cel",
"allCompleted": "Wszystkie osiągnięcia odblokowane!",
"completed": "Ukończono",
"goalReached": "Cel osiągnięty",
"remainingUnlocks": "Jeszcze {count} do odblokowania",
"noneUnlockedYet": "Nie odblokowano jeszcze żadnego osiągnięcia.",
"pointsValue": "{points} punktów",
"metricCount": "{count}",
"metricDays": "{count} dni",
"metricPercent": "{count}%",
"badges": {
"intakeTotal1": {
"title": "Pierwsze przyjęcie",
"description": "Zarejestruj swoje pierwsze przyjęcie leku."
},
"intakeTotal10": {
"title": "Początkujący w przyjęciach",
"description": "Zarejestruj 10 przyjęć leków."
},
"intakeTotal50": {
"title": "Rutyna przyjęć",
"description": "Zarejestruj 50 przyjęć leków."
},
"intakeTotal150": {
"title": "Ekspert przyjęć",
"description": "Zarejestruj 150 przyjęć leków."
},
"intakeTotal300": {
"title": "Legenda przyjęć",
"description": "Zarejestruj 300 przyjęć leków."
},
"overIntake1": {
"title": "Podwójna dawka",
"description": "Przyjmij lek co najmniej raz więcej niż zaplanowano."
},
"skippedIntake1": {
"title": "Krok wstecz",
"description": "Pomiń co najmniej jedno zaplanowane przyjęcie."
},
"passkeyCreated1": {
"title": "Klucz dostępu ustawiony",
"description": "Utwórz swój pierwszy klucz dostępu."
},
"passkeyLogin1": {
"title": "Logowanie kluczem dostępu",
"description": "Zaloguj się co najmniej raz kluczem dostępu."
},
"passwordLogin1": {
"title": "Stara szkoła",
"description": "Zaloguj się co najmniej raz nazwą użytkownika i hasłem."
},
"loginStreak7": {
"title": "Seria logowań 7d",
"description": "Zaloguj się przez 7 kolejnych dni."
},
"loginStreak30": {
"title": "Seria logowań 30d",
"description": "Zaloguj się przez 30 kolejnych dni."
},
"onTimePerfect1": {
"title": "Na czas 1d",
"description": "Przyjmij wszystkie leki na czas przez 1 dzień."
},
"compliance801": {
"title": "Przestrzeganie 80% · 1d",
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 1 dzień."
},
"bmiGreen1": {
"title": "BMI na zielono · 1d",
"description": "Utrzymaj BMI w normie przez 1 dzień."
},
"bpGreen1": {
"title": "Ciśnienie na zielono · 1d",
"description": "Utrzymaj ciśnienie w normie przez 1 dzień."
},
"pulseGreen1": {
"title": "Tętno na zielono · 1d",
"description": "Utrzymaj tętno spoczynkowe w normie przez 1 dzień."
},
"onTimePerfect7": {
"title": "Na czas 7d",
"description": "Przyjmij wszystkie leki na czas przez 7 kolejnych dni."
},
"compliance807": {
"title": "Przestrzeganie 80% · 7d",
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 7 kolejnych dni."
},
"bmiGreen7": {
"title": "BMI na zielono · 7d",
"description": "Utrzymaj BMI w normie przez 7 kolejnych dni."
},
"bpGreen7": {
"title": "Ciśnienie na zielono · 7d",
"description": "Utrzymaj ciśnienie w normie przez 7 kolejnych dni."
},
"pulseGreen7": {
"title": "Tętno na zielono · 7d",
"description": "Utrzymaj tętno spoczynkowe w normie przez 7 kolejnych dni."
},
"onTimePerfect30": {
"title": "Na czas 30d",
"description": "Przyjmij wszystkie leki na czas przez 30 kolejnych dni."
},
"compliance8030": {
"title": "Przestrzeganie 80% · 30d",
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 30 kolejnych dni."
},
"bmiGreen30": {
"title": "BMI na zielono · 30d",
"description": "Utrzymaj BMI w normie przez 30 kolejnych dni."
},
"bpGreen30": {
"title": "Ciśnienie na zielono · 30d",
"description": "Utrzymaj ciśnienie w normie przez 30 kolejnych dni."
},
"pulseGreen30": {
"title": "Tętno na zielono · 30d",
"description": "Utrzymaj tętno spoczynkowe w normie przez 30 kolejnych dni."
},
"onTimePerfect180": {
"title": "Na czas 180d",
"description": "Przyjmij wszystkie leki na czas przez 180 kolejnych dni."
},
"compliance80180": {
"title": "Przestrzeganie 80% · 180d",
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 180 kolejnych dni."
},
"bmiGreen180": {
"title": "BMI na zielono · 180d",
"description": "Utrzymaj BMI w normie przez 180 kolejnych dni."
},
"bpGreen180": {
"title": "Ciśnienie na zielono · 180d",
"description": "Utrzymaj ciśnienie w normie przez 180 kolejnych dni."
},
"pulseGreen180": {
"title": "Tętno na zielono · 180d",
"description": "Utrzymaj tętno spoczynkowe w normie przez 180 kolejnych dni."
},
"onTimePerfect360": {
"title": "Na czas 360d",
"description": "Przyjmij wszystkie leki na czas przez 360 kolejnych dni."
},
"compliance80360": {
"title": "Przestrzeganie 80% · 360d",
"description": "Osiągnij co najmniej 80% przestrzegania w 30 dni przez 360 kolejnych dni."
},
"bmiGreen360": {
"title": "BMI na zielono · 360d",
"description": "Utrzymaj BMI w normie przez 360 kolejnych dni."
},
"bpGreen360": {
"title": "Ciśnienie na zielono · 360d",
"description": "Utrzymaj ciśnienie w normie przez 360 kolejnych dni."
},
"pulseGreen360": {
"title": "Tętno na zielono · 360d",
"description": "Utrzymaj tętno spoczynkowe w normie przez 360 kolejnych dni."
},
"moodFirst": {
"title": "Pierwszy nastrój",
"description": "Zapisz swój pierwszy wpis nastroju."
},
"moodStreak7": {
"title": "Dziennik nastroju 7d",
"description": "Zapisuj nastrój przez 7 kolejnych dni."
},
"moodStreak30": {
"title": "Dziennik nastroju 30d",
"description": "Zapisuj nastrój przez 30 kolejnych dni."
},
"moodUp7": {
"title": "Pogodniejszy tydzień",
"description": "Twoja 7-dniowa średnia nastroju poprawiła się o co najmniej 1,0 punkt względem poprzedniego tygodnia."
},
"weightFirst": {
"title": "Pierwsze ważenie",
"description": "Zapisz swój pierwszy pomiar wagi."
},
"weight50": {
"title": "Pięćdziesiąt ważeń",
"description": "Zapisz 50 pomiarów wagi."
},
"weight200": {
"title": "200 ważeń",
"description": "Zapisz 200 pomiarów wagi."
},
"bpFirst": {
"title": "Pierwszy pomiar",
"description": "Zapisz swój pierwszy pomiar ciśnienia."
},
"bp50": {
"title": "Pięćdziesiąt pomiarów ciśnienia",
"description": "Zapisz 50 pomiarów ciśnienia."
},
"bp200": {
"title": "200 pomiarów ciśnienia",
"description": "Zapisz 200 pomiarów ciśnienia."
},
"pulseFirst": {
"title": "Pierwsze tętno",
"description": "Zapisz swój pierwszy pomiar tętna."
},
"consistentMonth": {
"title": "Konsekwentny miesiąc",
"description": "Zapisz wpisy w co najmniej 25 różnych dniach w jednym miesiącu kalendarzowym."
},
"entryStreak7": {
"title": "Seria wpisów 7d",
"description": "Zapisuj co najmniej jeden wpis przez 7 kolejnych dni."
},
"entryStreak30": {
"title": "Seria wpisów 30d",
"description": "Zapisuj co najmniej jeden wpis przez 30 kolejnych dni."
},
"weekendWarrior": {
"title": "Weekendowy rejestrator",
"description": "Zapisuj wpisy w 4 kolejnych weekendach (sobota + niedziela)."
},
"hiddenNightOwl": {
"title": "Nocny marek",
"description": "Zapisałeś wpis między 02:00 a 04:00 nad ranem."
},
"hiddenEarlyBird": {
"title": "Ranny ptaszek",
"description": "Zapisałeś wpis między 04:00 a 06:00 rano."
},
"hiddenLeapDay": {
"title": "Legenda dnia przestępnego",
"description": "Zapisałeś wpis 29 lutego."
},
"hiddenDoctorPdf": {
"title": "Wizyta domowa",
"description": "Wyeksportowałeś swój pierwszy raport dla lekarza w PDF."
},
"hiddenLocaleFlip": {
"title": "Poliglota",
"description": "Zmieniłeś język aplikacji co najmniej raz."
},
"missFree7": {
"title": "Bez pominiętej dawki · 7 dni",
"description": "7 kolejnych dni bez pominiętej dawki."
},
"missFree30": {
"title": "Bez pominiętej dawki · 30 dni",
"description": "30 kolejnych dni bez pominiętej dawki."
},
"missFree90": {
"title": "Bez pominiętej dawki · 90 dni",
"description": "90 kolejnych dni bez pominiętej dawki."
},
"measurementWeeks4": {
"title": "Rutyna pomiarów",
"description": "4 kolejne tygodnie z pomiarami przez co najmniej 5 dni w każdym."
},
"selfContextComplete": {
"title": "Wywiad uzupełniony",
"description": "Wszystkie cztery pola wywiadu wypełnione — Coach zna Twój kontekst."
},
"sleepLog7": {
"title": "Dziennik snu · 7 dni",
"description": "Dane o śnie zapisane przez 7 kolejnych dni."
}
},
"nextProgressLabel": "Postęp do odblokowania",
"completedOn": "Ukończono {date}",
"locked": "Zablokowane",
"criterionHint": "{current} / {target}",
"progressPercent": "{percent}%",
"categories": {
"medication": "Lek",
"vitals": "Parametry życiowe",
"mood": "Nastrój",
"security": "Konto i bezpieczeństwo",
"engagement": "Engagement",
"hidden": "Ukryte"
},
"hiddenCard": {
"title": "Ukryte osiągnięcie",
"description": "Śledź dalej — może na nie natrafisz.",
"ariaLabel": "Ukryte zablokowane osiągnięcie"
},
"hiddenUnlockToast": {
"title": "Odblokowałeś ukryte osiągnięcie!"
},
"dashboardCard": {
"title": "Ostatnio odblokowane",
"viewAll": "Zobacz wszystkie",
"empty": "Brak osiągnięć — zapisuj dalej, aby odblokować pierwsze."
}
},
"notifications": {
"title": "Powiadomienia",
"eventColumn": "Zdarzenie",
"subtitle": "Wybierz, które powiadomienia chcesz otrzymywać i którym kanałem.",
"loadError": "Nie udało się załadować ustawień powiadomień.",
"noChannels": "Najpierw skonfiguruj kanał powiadomień w Ustawienia → Integracje.",
"goToSettings": "Przejdź do ustawień kanału",
"channelDisabled": "Wyłączone",
"admin": {
"deployFailedTitle": "Wdrożenie nie powiodło się: {application}",
"deployFailedBody": "Wystąpił błąd podczas wdrażania {application} (#{deployment}): {error}. Zobacz logi: {logsUrl}",
"testNotificationTitle": "HealthLog powiadomienie testowe",
"testNotificationBody": "To powiadomienie testowe zostało wywołane z panelu administracyjnego. Jeśli je widzisz, kanał działa.",
"reminderCheckMissedTitle": "Pominięte przypomnienie: {medication}",
"reminderCheckMissedBody": "{medication} ({dose}) nie zostało zarejestrowane w przedziale {window}.",
"reminderCheckOverdueTitle": "Dawka opóźniona: {medication}",
"reminderCheckOverdueBody": "{medication} ({dose}) w przedziale {window} jest opóźnione o {minutes} minut.",
"offlineGeoUnavailableTitle": "Bazy geolokalizacji offline nie zostały załadowane",
"offlineGeoUnavailableBody": "HealthLog rozwiązuje lokalizacje logowania przez zapytanie online do {host}, więc każdy adres IP logowania opuszcza ten serwer. Aby rozwiązywać je lokalnie, pobierz bazy GeoLite2-City i GeoLite2-ASN na bezpłatnym koncie MaxMind, podłącz katalog do kontenera i ustaw na niego GEOLITE2_DIR. Kroki: {docsUrl}",
"tlsPinChangedTitle": "Zmieniono certyfikat liścia TLS: {host}",
"tlsPinChangedBody": "Liść TLS serwowany przez {host} ma teraz pin SPKI {servedPin}, którego nie ma w znanym zestawie pinów. Klienci z przypiętym pinem (aplikacja natywna) nie połączą się po usunięciu starego pinu. Ponownie wyodrębnij nowy pin liścia, dodaj go do TLS_LEAF_SPKI_PINS oraz do zestawu pinów klienta natywnego i opublikuj kompilację, zanim ten certyfikat wygaśnie {validTo}. Zobacz docs/ops/tls-cert-pin.md."
},
"user": {
"telegramTestBody": "HealthLog: połączenie udane. Powiadomienia Telegram są aktywne."
},
"moodReminder": {
"title": "Codzienne przypomnienie o nastroju",
"description": "Delikatne przypomnienie o wybranej przez Ciebie godzinie, jeśli dziś jeszcze nie zapisano nastroju. Wysyłane tylko skonfigurowanymi już kanałami (Telegram, ntfy, Web Push, Apple Push) i milknie, gdy dziś zapisano nastrój.",
"toggleAria": "Włącz lub wyłącz codzienne przypomnienie o nastroju",
"statusOn": "Aktywne o wybranej godzinie",
"statusOff": "Wyłączone",
"enabledToast": "Przypomnienie o nastroju włączone.",
"disabledToast": "Przypomnienie o nastroju wyłączone.",
"saveError": "Zapis nieudany. Spróbuj ponownie.",
"hourLabel": "Godzina przypomnienia",
"hourAria": "Godzina przypomnienia o nastroju",
"hourSavedToast": "Godzina przypomnienia zaktualizowana."
},
"coachNudge": {
"title": "Proaktywny Coach",
"description": "Odzywa się, gdy Twoje dane sugerują zajrzenie do Coacha — np. niska systematyczność przyjmowania leków lub podwyższona tygodniowa średnia ciśnienia. Tematy i częstotliwość można dostosować.",
"toggleAria": "Przełącz proaktywne podpowiedzi Coacha",
"statusOn": "Aktywne",
"groupsLabel": "Tematy",
"groupMedication": "Leki",
"groupMedicationDesc": "Nieregularne przyjmowanie leków w ostatnim tygodniu.",
"groupVitals": "Parametry życiowe",
"groupVitalsDesc": "Ciśnienie, regeneracja, trend wagi, sen.",
"groupRoutine": "Rutyna",
"groupRoutineDesc": "Nagłe przerwy w pomiarach i przegląd opisu o sobie.",
"frequencyLabel": "Częstotliwość",
"frequencyWeekly": "Najwyżej raz w tygodniu",
"frequencyBiweekly": "Najwyżej co dwa tygodnie",
"frequencyAria": "Wybierz częstotliwość podpowiedzi",
"statusOff": "Wyłączone",
"enabledToast": "Proaktywne podpowiedzi Coacha włączone.",
"disabledToast": "Proaktywne podpowiedzi Coacha wyłączone.",
"saveError": "Nie udało się zapisać. Spróbuj ponownie później.",
"suggestionsLabel": "Przykładowe sugestie",
"suggestionsDesc": "Czasami pokazuje gotowe przykładowe pytanie na ekranie Coacha.",
"suggestionsAria": "Przełącz przykładowe sugestie Coacha",
"aiComposedLabel": "Pozwól Coachowi sformułować przypomnienie",
"aiComposedDesc": "Gdy dostawca jest dostępny, proaktywne przypomnienie tworzy model zamiast stałego szablonu. Domyślnie wyłączone.",
"aiComposedAria": "Przełącz proaktywne przypomnienie tworzone przez SI"
},
"lowStock": {
"title": "Alert niskiego zapasu",
"description": "Raz dziennie sprawdza śledzone zapasy leków i powiadamia, gdy któryś wystarcza na mniej dni niż ten próg. Jedno powiadomienie na niedobór; po uzupełnieniu uzbraja się ponownie.",
"toggleAria": "Przełącz alerty niskiego zapasu",
"statusOn": "Aktywne",
"statusOff": "Wyłączone",
"daysLabel": "Powiadom poniżej (dni)",
"daysAria": "Wybierz próg zapasu w dniach",
"leadLabel": "Czas na ponowne zamówienie (dni)",
"leadAria": "Czas na ponowne zamówienie w dniach",
"leadHelp": "Alert pojawia się o tyle dni plus jeden interwał dawki wcześniej, aby nowy zapas dotarł przed Twoją ostatnią dawką. Pojedynczy lek może nadpisać tę wartość na swojej karcie zapasu.",
"leadSavedToast": "Czas na ponowne zamówienie zapisany.",
"savedToast": "Próg zapasu zapisany.",
"enabledToast": "Alerty niskiego zapasu włączone.",
"disabledToast": "Alerty niskiego zapasu wyłączone.",
"saveError": "Zapis nieudany. Spróbuj ponownie.",
"medicationsLink": "Przejdź do swoich leków"
},
"eventMedicationReminder": "Przypomnienie o leku",
"eventMedicationReminderDesc": "Wysyłane o każdej zaplanowanej godzinie dawki.",
"eventMeasurementAnomaly": "Nietypowy pomiar",
"eventMeasurementAnomalyDesc": "Wysyłane, gdy odczyt znacznie odbiega od Twojego zwykłego zakresu.",
"eventComplianceLow": "Niska zgodność",
"eventComplianceLowDesc": "Wysyłane, gdy odsetek przyjętych dawek z ostatnich dni spadnie poniżej 80 %.",
"eventWithingsSyncFailed": "Synchronizacja Withings nie powiodła się",
"eventWithingsSyncFailedDesc": "Wysyłane, gdy synchronizacja Withings nie powiedzie się kilka razy z rzędu.",
"eventSystemAlert": "Powiadomienie systemowe",
"eventSystemAlertDesc": "Ogólne komunikaty z serwera HealthLog, na przykład okna serwisowe lub uwagi do konta.",
"eventPersonalRecord": "Rekord osobisty",
"eventPersonalRecordDesc": "Wysyłane, gdy odczyt pobije Twój dotychczasowy rekord.",
"eventMoodReminder": "Przypomnienie o nastroju",
"eventMoodReminderDesc": "Codzienne przypomnienie, aby zapisać swój aktualny nastrój.",
"eventCyclePeriodSoon": "Zbliża się okres",
"eventCyclePeriodSoonDesc": "Wysyłane kilka dni przed przewidywanym okresem.",
"eventCyclePeriodConfirm": "Czy okres się zaczął?",
"eventCyclePeriodConfirmDesc": "Delikatne przypomnienie w dniu przewidywanego początku lub później, gdy nie zarejestrowano okresu.",
"eventCycleFertileSoon": "Zbliża się okno płodności",
"eventCycleFertileSoonDesc": "Wysyłane kilka dni przed szacowanym oknem płodności, gdy Twoim celem jest poczęcie.",
"eventMedicationLowStock": "Niski zapas leku",
"eventMedicationLowStockDesc": "Gdy śledzony zapas leku wystarcza na mniej dni niż twój próg zapasu",
"eventCoachNudge": "Wskazówka Coacha",
"eventCoachNudgeDesc": "Okazjonalna wskazówka od Coacha, gdy twoje ostatnie trendy wymagają sprawdzenia.",
"eventMeasurementReminder": "Przypomnienie o pomiarze",
"eventMeasurementReminderDesc": "Wysyłane, gdy śledzony pomiar jest wymagany.",
"eventMedicationIntakeSync": "Synchronizacja przyjęć leku",
"eventMedicationIntakeSyncDesc": "Aktualizacja między urządzeniami, gdy dawka zostanie zapisana, przyjęta lub pominięta.",
"eventDailyBriefing": "Codzienne podsumowanie",
"eventDailyBriefingDesc": "Spokojne poranne podsumowanie Twojego dnia. Wyłączone, dopóki go nie włączysz.",
"eventSecurityAlert": "Nowe logowanie",
"eventSecurityAlertDesc": "Wysyłane, gdy Twoje konto zostanie użyte na nieznanym urządzeniu lub z nieznanego miejsca.",
"eventSharedRecordIntake": "Ktoś z dostępem oznacza dawkę",
"eventSharedRecordIntakeDesc": "Wysyłane tylko wtedy, gdy robi to inna osoba, nigdy przy Twoich własnych wpisach.",
"security": {
"newDeviceTitle": "Nowe logowanie do Twojego konta",
"newDeviceBody": "Nowe logowanie z {device} ({location}). Jeśli to nie Ty, natychmiast zmień hasło.",
"unknownLocation": "nieznana lokalizacja"
},
"sharedRecordIntake": {
"title": "{name} oznaczył(a) dawkę",
"bodyTaken": "{medication}: oznaczona jako przyjęta przez {name}.",
"bodySkipped": "{medication}: oznaczona jako pominięta przez {name}."
},
"loginRequired": "Zaloguj się, aby zarządzać powiadomieniami.",
"someChannelsGloballyDisabled": "Co najmniej jeden kanał jest wyłączony w ustawieniach i nie będzie otrzymywać powiadomień.",
"reminderSettingsLink": "Ustawienia przypomnień",
"channelsLink": "Kanały"
},
"i18n": {
"maintainershipBanner": {
"notice": "Ta wersja językowa jest tłumaczona maszynowo, w tym instrukcje krytyczne dla bezpieczeństwa Coacha. Automatyczna kontrola dryftu działa w CI; proszę zgłaszać wszelkie regresje Coacha na GitHubie.",
"cta": "Zgłoś na GitHubie",
"dismiss": "Zamknij"
}
},
"targets": {
"bmi": "BMI",
"average30d": "Średnia 30-dniowa:",
"consistency": {
"ariaLabel": "Ostatnie 7 dni, status w/poza zakresem na dzień",
"daysInRange": "{count} z {total} w zakresie",
"daysLogged": "{count} z {total} zarejestrowanych",
"dotInRange": "w zakresie",
"dotNearRange": "blisko zakresu",
"dotOutOfRange": "poza zakresem",
"dotNotLogged": "nie zarejestrowano",
"relativeDay": {
"today": "Dzisiaj",
"yesterday": "Wczoraj",
"twoDaysAgo": "2 dni temu",
"threeDaysAgo": "3 dni temu",
"fourDaysAgo": "4 dni temu",
"fiveDaysAgo": "5 dni temu",
"sixDaysAgo": "6 dni temu"
}
},
"edit": {
"title": "Edytuj zakres docelowy — {metric}",
"description": "Dostosuj zakres docelowy używany w wykresach, insights i raporcie medycznym. Wartości w {unit}.",
"derivedHint": "Ta karta jest wyprowadzona z innych metryk. Edytuj cele bazowe (np. ciśnienie lub waga).",
"minLabel": "Min",
"maxLabel": "Maks",
"systolicMin": "Skurczowe min",
"systolicMax": "Skurczowe maks",
"diastolicMin": "Rozkurczowe min",
"diastolicMax": "Rozkurczowe maks",
"boundsHint": "Dozwolony zakres: {min}–{max} {unit}",
"resetToDefault": "Przywróć wartość domyślną",
"resetTitle": "Zresetować ten cel?",
"resetBody": "Zakres wraca do wartości domyślnej. Ustawione wartości nie są nigdzie indziej zapisane i nie da się ich odzyskać.",
"resetBodyBp": "Zarówno zakres skurczowy, jak i rozkurczowy wracają do wartości domyślnej. Ustawione wartości nie są nigdzie indziej zapisane i nie da się ich odzyskać.",
"resetConfirm": "Zresetuj cel",
"saveSuccess": "Zakres docelowy zaktualizowany",
"saveError": "Nie udało się zapisać zakresu docelowego",
"resetSuccess": "Zakres docelowy przywrócono do domyślnego",
"validationOrder": "Wartość minimalna musi być niższa niż maksymalna.",
"validationBounds": "Wprowadź wartości w dozwolonym zakresie podanym poniżej."
},
"currentValue": "Aktualnie: {value} {unit}",
"targetRangeValue": "Zakres docelowy: {min}–{max} {unit}",
"sourceLabel": "Źródło: {source}",
"inTarget": "W zakresie docelowym",
"aboveTarget": "{delta} {unit} powyżej zakresu",
"belowTarget": "{delta} {unit} poniżej zakresu",
"diastolic": "Rozkurczowe",
"glucoseFasting": "Glikemia — na czczo",
"glucosePostprandial": "Glikemia — po posiłku",
"glucoseRandom": "Glikemia — dowolna",
"glucoseBedtime": "Glikemia — przed snem",
"status": {
"underweight": "Niedowaga",
"normal": "Normal",
"overweight": "Nadwaga",
"obesityGrade1": "Otyłość I stopnia",
"obesityGrade2": "Otyłość II stopnia",
"obesityGrade3": "Otyłość III stopnia",
"optimal": "Optymalne",
"highNormal": "Wysokie prawidłowe",
"hypertensionGrade1": "Nadciśnienie 1 stopnia",
"hypertensionGrade2": "Nadciśnienie 2 stopnia",
"hypertensionGrade3": "Nadciśnienie 3 stopnia",
"belowTypicalRange": "Poniżej typowego zakresu",
"elevated": "Podwyższone",
"aboveTypicalRange": "Powyżej typowego zakresu",
"significantlyLow": "Znacząco niskie",
"slightlyLow": "Lekko niskie",
"onTarget": "W zakresie docelowym",
"slightlyElevated": "Lekko podwyższone",
"significantlyElevated": "Znacząco podwyższone",
"farTooShort": "Zdecydowanie zbyt krótki",
"tooShort": "Zbyt krótki",
"slightlyLong": "Lekko zbyt długi",
"farTooLong": "Zdecydowanie zbyt długi",
"belowEssential": "Poniżej niezbędnego",
"essential": "Niezbędny",
"athletic": "Atletyczny",
"fitness": "Fitness",
"acceptable": "Akceptowalny",
"obese": "Otyły",
"veryLow": "Bardzo niski",
"lowActive": "Mało aktywny",
"moderatelyActive": "Umiarkowanie aktywny",
"active": "Aktywny",
"veryActive": "Bardzo aktywny",
"good": "Dobre",
"moderate": "Umiarkowane",
"low": "Niskie",
"high": "Wysokie",
"veryGood": "Bardzo dobre",
"veryStable": "Bardzo stabilny",
"stable": "Stabilny",
"fluctuating": "Zmienny"
}
},
"passwordStrength": {
"veryWeak": "Bardzo słabe",
"weak": "Słabe",
"acceptable": "Akceptowalne",
"strong": "Silne",
"veryStrong": "Bardzo silne",
"tooShort": "Za krótkie",
"characters": "znaków",
"minLength": "Wymagane co najmniej {count} znaków."
},
"telegram": {
"errorInvalidAction": "Nieprawidłowa akcja.",
"errorMedicationNotFound": "Nie znaleziono leku.",
"errorMedicationInactive": "Nie znaleziono leku lub jest nieaktywny.",
"errorUnknownAction": "Nieznana akcja.",
"snoozeOneHour": "1 godzina",
"snoozeThreeHours": "3 godziny",
"snoozedFor": "{name} odłożone o {duration}.",
"skipped": "{name} pominięte.",
"alreadyRecorded": "{name} było już zarejestrowane.",
"recordedAsTaken": "{name} zarejestrowane jako przyjęte.",
"confirmed": "{name} potwierdzone.",
"genericConfirmed": "Potwierdzone.",
"cancelled": "Anulowane.",
"moodLogged": "Zapisano: {score}/5",
"moodNotePrompt": "Dodaj krótką notatkę (opcjonalnie).",
"moodNoteSaved": "Notatka zapisana.",
"moodNoteExpired": "Ta prośba wygasła.",
"remindLater": "Przypomnienie przełożone o {duration}.",
"measurementDone": "Oznaczono jako wykonane.",
"measurementNotFound": "Nie znaleziono przypomnienia.",
"buttonMoodNote": "Notatka…",
"buttonLater": "Później",
"buttonDone": "Gotowe",
"noActiveMedications": "Nie znaleziono aktywnych leków.",
"whichMedication": "<b>Który lek został przyjęty?</b>",
"cancelButton": "Anuluj",
"askMedicationName": "Podaj lek, np. <b>przyjęty Ramipril</b>.",
"medicationNotFoundExact": "Nie znaleziono leku. Wyślij nazwę dokładnie tak, jak w HealthLog.",
"helpHeader": "<b>Dostępne polecenia:</b>",
"helpBody": "/help — pokaż tę pomoc\n/add — zapisz przyjęcie\n/start — uruchom bota\n\n<b>Polecenia tekstowe:</b>\ntaken &lt;nazwa&gt; — potwierdź przyjęcie\n\n<b>Przyciski w przypomnieniach:</b>\n• Przyjęto — potwierdź przyjęcie\n• 🕐 1h / 🕐 3h — odłóż przypomnienie\n• ⏭ Pomiń — pomiń przyjęcie\n• ✓ Potwierdź — potwierdź pominięte przyjęcie",
"measureValuePrompt": "Odpowiedz wartością, aby ją zapisać (opcjonalnie).",
"buttonMeasureValue": "Wartość…",
"measureValueSaved": "Pomiar zapisany.",
"measureValueInvalid": "Odpowiedz liczbą, aby zapisać pomiar.",
"measureValueOutOfRange": "Ta wartość jest poza wiarygodnym zakresem.",
"measureValueExpired": "Ten monit wygasł."
},
"medicationReminders": {
"phaseGreenTitle": "🟢 Przypomnienie: {medName}",
"phaseGreenMessage": "🟢 Reminder:\n<b>{medName}</b> ({doseInfo}, {timeWindow})\nWindow closes in {minutes} Min.",
"phaseYellowTitle": "🟡 Wkrótce: {medName}",
"phaseYellowMessage": "🟡 Wkrótce:\n<b>{medName}</b> ({doseInfo}, {timeWindow})\nPozostało {minutes} min.",
"phaseOrangeTitle": "🟠 Zaległe: {medName}",
"phaseOrangeMessage": "🟠 Overdue:\n<b>{medName}</b> ({doseInfo}, {timeWindow})\nOverdue by {minutes} Min.",
"phaseRedTitle": "🔴 Pominięte: {medName}",
"phaseRedMessage": "🔴 Pominięte:\n<b>{medName}</b> ({doseInfo}, {timeWindow})\nOznaczone jako pominięte.",
"buttonTaken": "Przyjęty",
"buttonConfirm": "✓ Potwierdź",
"buttonSnoozeOneHour": "🕐 1h",
"buttonSnoozeThreeHours": "🕐 3h",
"buttonSkip": "⏭ Pomiń"
},
"lowStockReminders": {
"title": "Niski zapas: {medName}",
"bodyToday": "{medName}: pozostało {units} jednostek — mniej niż jeden dzień zapasu.",
"bodyReorder": "{medName}: pozostało {units} jednostek. Zapas skończy się około {runsOutOn} — zamów ponownie do {reorderBy}.",
"bodyLastDose": "{medName}: pozostało {units} jednostek — to mniej więcej Twoja ostatnia dawka. Zapas skończy się około {runsOutOn}.",
"bodyExpired": "{medName}: brak zapasu do użycia. {units} jednostek oznaczono jako przeterminowane."
},
"moodReminders": {
"dailyTitle": "Zapisz nastrój",
"dailyBody": "Jak się dzisiaj czujesz?"
},
"coachNudges": {
"greetingMorning": "Dzień dobry",
"greetingMorningNamed": "Dzień dobry, {name}",
"greetingHey": "Cześć",
"greetingHeyNamed": "Cześć, {name}",
"complianceBody": "W tym tygodniu Twoje przyjmowanie dawek trochę się rozjechało. Jeśli chcesz, zobaczmy razem, co by Ci to ułatwiło.",
"bpBody": "Twoje ciśnienie było w tym tygodniu nieco powyżej zwykłego zakresu. Kiedy zechcesz, chętnie przyjrzę się temu z Tobą.",
"scoreBody": "Twoja regeneracja od kilku dni nieco słabnie. Jeśli jesteś ciekaw przyczyny, jestem tu, żeby o tym porozmawiać.",
"selfContextBody": "Dawno nie aktualizowano Twojego opisu o sobie. Gdy znajdziesz chwilę, odświeżenie go pomaga mi lepiej Cię zrozumieć.",
"weightBody": "Twoja waga ostatnio nieco oddaliła się od zakresu docelowego. Jeśli chcesz, spokojnie podsumujemy to razem.",
"sleepDebtBody": "Kilka Twoich nocy było w tym tygodniu krótkich. Jeśli masz ochotę, poszukajmy razem wzorca.",
"measurementGapBody": "Twój dziennik milczy od około tygodnia. Kiedy Ci pasuje, krótka rozmowa pomoże wrócić do rutyny.",
"focusNote": "Wiąże się to też z tym, na co chciałeś/chciałaś zwracać uwagę.",
"questionConditions": "Czy masz choroby przewlekłe, o których Coach powinien wiedzieć?",
"questionFocus": "Czy jest coś konkretnego, na co Coach powinien zwracać uwagę?",
"questionAllergies": "Czy masz alergie lub nietolerancje?",
"questionAboutMe": "Chcesz opowiedzieć Coachowi coś o sobie — codzienność, cele, kontekst?"
},
"clinicianView": {
"title": "Udostępniona dokumentacja zdrowotna",
"period": "Okres raportu: {start} – {end}",
"expires": "Ten link wygasa dnia {date}.",
"provenance": "To jest tylko do odczytu podsumowanie udostępnione przez osobę, do której należy, wyeksportowane z jej samodzielnie rejestrowanych danych HealthLog. Wartości są zgłaszane samodzielnie i mogą obejmować odczyty zsynchronizowane z urządzeń; należy je traktować jako zgłoszone przez pacjenta, a nie jako badanie kliniczne.",
"labs": "Wyniki laboratoryjne",
"medications": "Leki i przestrzeganie zaleceń",
"bmi": "Wskaźnik masy ciała (BMI)",
"statSummary": "ostatnio {latest} (śr. {avg}, zakres {min}–{max})",
"adherence": "{rate} przestrzegania",
"noAdherence": "—",
"glucose": {
"FASTING": "Glukoza (na czczo)",
"POSTPRANDIAL": "Glukoza (poposiłkowa)",
"RANDOM": "Glukoza (losowa)",
"BEDTIME": "Glukoza (przed snem)"
},
"wellness": {
"title": "Wyniki dobrostanu",
"disclaimer": "Opisowe wyniki (0–100) obliczone na podstawie śledzonych sygnałów. Nie są one oceną kliniczną ani diagnozą.",
"recovery": "Wynik regeneracji",
"stress": "Wynik stresu",
"strain": "Wynik obciążenia",
"score": "Wynik dobrostanu"
},
"footer": "Udostępnione z HealthLog — samodzielnie hostowanego trackera zdrowia.",
"unlock": {
"title": "Wprowadź hasło",
"description": "Ta udostępniona dokumentacja zdrowotna jest chroniona. Wprowadź otrzymane hasło, aby ją wyświetlić.",
"label": "Hasło",
"error": "To hasło jest nieprawidłowe.",
"submit": "Odblokuj"
},
"loadError": {
"title": "Nie udało się załadować udostępnionego widoku",
"description": "Podczas otwierania udostępnionej dokumentacji zdrowotnej wystąpił błąd. Link mógł wygasnąć lub wystąpił chwilowy problem. Spróbuj ponownie albo poproś osobę, która go udostępniła, o nowy link.",
"retry": "Spróbuj ponownie"
},
"documents": {
"title": "Dokumenty",
"untitled": "Dokument bez tytułu",
"download": "Pobierz",
"attachmentHint": "Ten plik zostanie pobrany na Twoje urządzenie (bez podglądu na stronie).",
"exifNote": "Metadane aparatu (EXIF/GPS) zostały usunięte z udostępnionych obrazów JPEG, PNG i WebP."
},
"downloadPdf": "Pobierz jako PDF",
"downloadFhir": "Pobierz jako FHIR",
"bmiSection": "Wskaźnik masy ciała"
},
"cycle": {
"symptomCategory": {
"physical": "Fizyczne",
"emotional": "Emocjonalne",
"digestive": "Trawienne",
"custom": "Własne"
},
"symptom": {
"cramps": "Skurcze",
"headache": "Ból głowy",
"bloating": "Wzdęcia",
"acne": "Trądzik",
"breastTenderness": "Tkliwość piersi",
"fatigue": "Zmęczenie",
"backPain": "Ból pleców",
"insomnia": "Bezsenność",
"libidoHigh": "Wysokie libido",
"libidoLow": "Niskie libido",
"moodSwings": "Wahania nastroju",
"foodCravings": "Zachcianki",
"nausea": "Nudności",
"diarrhea": "Biegunka",
"constipation": "Zaparcia",
"custom": {
"add": "Dodaj objaw",
"label": "Nazwa",
"labelPlaceholder": "np. Zawroty głowy",
"icon": "Ikona",
"limitReached": "Osiągnięto limit własnych objawów.",
"remove": "Usuń {label}",
"removeTitle": "Usunąć ten objaw?",
"removeBody": "„{label}” zniknie z listy objawów. Dni już nim oznaczone zachowają go, ale nie wybierzesz go ponownie.",
"removeConfirm": "Usuń",
"fallbackLabel": "Objaw własny"
}
},
"prediction": {
"disclaimer": "Prognozy to szacunki na podstawie zapisanych danych, a nie porada medyczna ani metoda antykoncepcji. Dokładność rośnie wraz z liczbą zapisanych cykli."
},
"insights": {
"headline": {
"title": "Twój cykl i Twoje ciało",
"restingHeartRate": "Twoje tętno spoczynkowe jest o około {delta} {unit} {dir} w fazie lutealnej niż w fazie folikularnej.",
"heartRateVariability": "Twoja zmienność rytmu serca jest o około {delta} {unit} {dir} w fazie lutealnej niż w fazie folikularnej.",
"generic": "Twoje {metric} jest o około {delta} {unit} {dir} w fazie lutealnej niż w fazie folikularnej.",
"dirHigher": "wyższe",
"dirLower": "niższe",
"empty": "Za mało cykli i pomiarów, aby pokazać wzorzec fazy. Rejestruj dalej — uzupełni się to wraz z historią."
},
"crosstab": {
"description": "Jak każdy pomiar wypada między fazą lutealną a folikularną, na Twoich danych.",
"pairLabel": "{metric} · lutealna vs folikularna",
"detail": "Lutealna {lutealAvg} {unit} ({lutealDays} dni) vs folikularna {follicularAvg} {unit} ({follicularDays} dni).",
"metricRestingHeartRate": "Tętno spoczynkowe",
"metricHrv": "Zmienność rytmu serca",
"metricSleepDuration": "Czas snu",
"metricSteps": "Kroki",
"metricWeight": "Waga",
"metricBasalBodyTemp": "Temperatura podstawowa",
"metricWristTemperature": "Nocna temperatura nadgarstka",
"metricSkinTemperature": "Temperatura skóry",
"metricBloodGlucose": "Glukoza we krwi",
"metricMood": "Nastrój",
"unitHours": "godz.",
"unitSteps": "kroki",
"unitBpm": "ud./min",
"unitMs": "ms",
"unitKg": "kg",
"unitCelsius": "°C",
"unitGlucose": "mg/dL",
"unitMood": "pkt",
"confidenceLow": "Niska pewność",
"confidenceMedium": "Średnia pewność",
"confidenceHigh": "Wysoka pewność"
},
"title": "Analizy cyklu",
"symptomPatternsTitle": "Wzorce objawów wg fazy",
"symptomPatternsEmpty": "Zapisuj objawy przez cały cykl, aby zobaczyć, w której fazie się grupują.",
"symptomMostlyIn": "Głównie w fazie {phase} ({count}/{total} dni)"
},
"phaseEducation": {
"title": "Co się teraz dzieje",
"whatsHappening": {
"MENSTRUAL": "Miesiączka to początek nowego cyklu, gdy złuszcza się błona śluzowa macicy. W tych pierwszych dniach energia i nastrój często są niższe.",
"FOLLICULAR": "Po miesiączce poziom estrogenu stopniowo rośnie, gdy organizm przygotowuje komórkę jajową. Wiele osób odczuwa w tej fazie bardziej stabilną energię.",
"OVULATORY": "W połowie cyklu uwalniana jest komórka jajowa, a płodność osiąga szczyt przez krótkie okno czasu. Ta faza jest najkrótsza z czterech.",
"LUTEAL": "Po owulacji rośnie poziom progesteronu i organizm się wycisza. W dniach przed kolejną miesiączką niektóre osoby zauważają zmiany przedmiesiączkowe."
},
"context": {
"MENSTRUAL": "Poziom hormonów jest teraz najniższy, dlatego te dni mogą sprawiać wrażenie spokojnego resetu. Niektóre osoby zauważają skurcze, lżejszy sen albo chęć zwolnienia tempa; inne przechodzą przez nie niemal bez zmian. To wszystko mieści się w normie, a odczucia potrafią zmieniać się z cyklu na cykl.",
"FOLLICULAR": "Wraz z rosnącym estrogenem wiele osób opisuje te dni jako jasne i pełne otwartości – sen często przychodzi łatwiej, a umysł wydaje się bardziej klarowny. Podstawowa temperatura ciała zwykle utrzymuje się w niższym zakresie aż do chwili tuż przed owulacją. Długość tej fazy różni się najbardziej – od osoby do osoby i od cyklu do cyklu.",
"OVULATORY": "Estrogen osiąga szczyt tuż przed uwolnieniem komórki jajowej, często z krótkim wzrostem nastroju i niewielkim podniesieniem podstawowej temperatury ciała w ciągu kolejnego dnia lub dwóch. Śluz szyjkowy w tym oknie zwykle staje się bardziej przejrzysty i ciągliwy. Krótkie ukłucie po jednej stronie niektóre osoby zauważają; wiele nie czuje nic, a oba warianty są zupełnie normalne.",
"LUTEAL": "Progesteron prowadzi przez drugą połowę cyklu, a podstawowa temperatura ciała zwykle ustala się nieco wyżej niż wcześniej. Niektóre osoby zauważają z dnia na dzień zmiany w śnie, apetycie, nastroju czy energii, podczas gdy inne czują się stabilnie przez cały czas. Ten wzorzec jest indywidualny i często wygląda inaczej z miesiąca na miesiąc."
},
"commonHere": "To często zauważasz tutaj",
"stillLearning": "Wciąż poznajemy Twój cykl. Zapisuj dalej, a to wypełni się wzorcami z Twoich własnych dni."
},
"insightsSummary": {
"title": "Twój cykl",
"currentDay": "Dzień {day} Twojego cyklu",
"noActiveCycle": "Brak aktywnego cyklu",
"viewDetails": "Zobacz analizy cyklu"
},
"wellnessRing": {
"label": "Cykl"
},
"disclaimer": "Te prognozy to opisowe szacunki na podstawie zapisanych danych, a nie metoda antykoncepcji ani porada medyczna. Nigdy nie oznaczają, że współżycie bez zabezpieczenia jest bezpieczne. W sprawach antykoncepcji lub decyzji medycznych skonsultuj się z pracownikiem ochrony zdrowia.",
"title": "Twój cykl",
"subtitle": "Zapisuj miesiączkę i objawy oraz sprawdzaj, co dalej.",
"tabs": {
"calendar": "Kalendarz",
"predictions": "Prognozy",
"insights": "Analizy",
"settings": "Ustawienia"
},
"logToday": "Zapisz dziś",
"startedPeriod": "Miesiączka zaczęła się dzisiaj",
"endedPeriod": "Miesiączka skończyła się dzisiaj",
"phase": {
"MENSTRUAL": "Miesiączkowa",
"FOLLICULAR": "Folikularna",
"OVULATORY": "Owulacyjna",
"LUTEAL": "Lutealna",
"none": "Brak fazy",
"label": "Faza"
},
"flow": {
"NONE": "Brak",
"SPOTTING": "Plamienie",
"LIGHT": "Słaby",
"MEDIUM": "Średni",
"HEAVY": "Obfity",
"label": "Krwawienie"
},
"ovulationTest": {
"NEGATIVE": "Negatywny",
"POSITIVE_LH_SURGE": "Skok LH",
"ESTROGEN_SURGE": "Skok estrogenu",
"INDETERMINATE": "Nieokreślony",
"label": "Test owulacyjny"
},
"mucus": {
"DRY": "Suchy",
"STICKY": "Lepki",
"CREAMY": "Kremowy",
"WATERY": "Wodnisty",
"EGG_WHITE": "Jak białko jaja",
"label": "Śluz szyjkowy"
},
"cervixPosition": {
"LOW": "Nisko",
"HIGH": "Wysoko"
},
"cervixFirmness": {
"FIRM": "Twarda",
"SOFT": "Miękka"
},
"cervixOpening": {
"CLOSED": "Zamknięta",
"OPEN": "Otwarta"
},
"goal": {
"GENERAL_HEALTH": "Ogólne zdrowie",
"AVOID_PREGNANCY": "Unikanie ciąży",
"TRYING_TO_CONCEIVE": "Staranie o dziecko",
"PERIMENOPAUSE": "Perimenopauza",
"OFF": "Śledzenie wyłączone",
"label": "W jakim celu śledzisz?",
"description": "To dostosowuje język i widoczne prognozy. Wskazówki dotyczące okna płodnego pojawiają się tylko przy staraniu o dziecko."
},
"ring": {
"dayOfCycle": "Dzień {day}",
"dayUnknown": "—",
"ariaPhase": "Dzień {day} cyklu, faza {phase}",
"ariaUnknown": "Brak aktywnego cyklu",
"caption": "twojego cyklu",
"firstPeriodCta": "Zapisz pierwszą miesiączkę",
"periodOverdue": "Okres jest późniejszy niż zwykle — licznik dni jest wstrzymany, dopóki nie zapiszesz następnego okresu.",
"periodOverdueDays": "Okres jest {days} dni późniejszy niż zwykle — licznik dni jest wstrzymany, dopóki nie zapiszesz następnego okresu.",
"logPeriodCta": "Zapisz okres"
},
"calendar": {
"legendPeriod": "Zapisana miesiączka",
"legendPredicted": "Prognozowana miesiączka",
"legendFertile": "Okno płodne",
"legendOvulation": "Owulacja",
"legendSymptoms": "Zapisane objawy",
"prevMonth": "Poprzedni miesiąc",
"nextMonth": "Następny miesiąc",
"loading": "Ładowanie kalendarza…",
"learning": "Uczymy się Twojego cyklu — zapisz co najmniej trzy pełne cykle, a okno płodne, owulacja i fazy się uzupełnią. Do tego czasu kalendarz pokazuje tylko to, co zapisałaś.",
"legendSymptom": "Objawy",
"legendOvulationConfirmed": "Potwierdzona owulacja",
"flowSpotting": "plamienie",
"flowLight": "lekkie",
"flowMedium": "średnie",
"flowHeavy": "obfite"
},
"predictions": {
"title": "Co dalej",
"nextPeriod": "Następna miesiączka",
"nextPeriodWindow": "{low} – {high}",
"fertileWindow": "Okno płodne",
"ovulation": "Szacowana owulacja",
"confidenceHigh": "Wysoka",
"confidenceMedium": "Średnia",
"confidenceLow": "Niska",
"stillLearning": "Wciąż się uczę",
"stillLearningBody": "Zapisz co najmniej trzy pełne cykle, a prognozy się wyostrzą. Do tego czasu to zgrubne oszacowanie.",
"rawMode": "Prognoza wyłączona",
"rawModeBody": "Wyłączyłaś prognozy — pokazywane są tylko zapisane dane, bez przewidywań.",
"none": "Brak prognozy. Zapisz miesiączkę, aby zacząć.",
"ovulationConfirmed": "Owulacja (potwierdzona)"
},
"history": {
"title": "Twoje cykle",
"avgLength": "Średnia długość",
"variability": "Zmienność",
"avgPeriodLength": "Średnia miesiączka",
"regularity": "Regularność",
"regularityREGULAR": "Regularny",
"regularityIRREGULAR": "Nieregularny",
"regularityLEARNING": "Uczenie",
"days": "{count} dni",
"daysPlusMinus": "± {count} dni",
"none": "Brak zapisanych cykli.",
"recentCycles": "Ostatnie cykle",
"ongoing": "w toku",
"periodDays": "okres {count} d",
"ovulationChip": "Owulacja",
"chartTitle": "Długość cyklu w czasie",
"chartCaption": "Każdy słupek to jeden cykl: różowa podstawa to miesiączka, reszta to długość cyklu.",
"chartAria": "Wykres długości {count} ostatnich cykli, średnio {avg} dni, sklasyfikowany jako {regularity}.",
"legendPeriodSegment": "Dni miesiączki",
"legendRestSegment": "Pozostała część cyklu"
},
"sheet": {
"title": "Zapisz swój dzień",
"description": "Zapisz dzisiejsze krwawienie, objawy i notatki.",
"flow": "Krwawienie",
"symptoms": "Objawy",
"temperature": "Podstawowa temperatura ciała",
"temperaturePlaceholder": "°C",
"temperatureDisturbed": "Oznacz pomiar jako zakłócony",
"temperatureDisturbedHint": "Gorączka, choroba, alkohol lub spóźniony pomiar — wykluczony z oceny temperatury.",
"ovulationTest": "Test owulacyjny",
"mucus": "Śluz szyjkowy",
"cervix": "Szyjka macicy",
"cervixPosition": "Położenie",
"cervixFirmness": "Twardość",
"cervixOpening": "Rozwarcie",
"intercourse": "Współżycie",
"protected": "Zabezpieczone",
"note": "Notatka",
"notePlaceholder": "Cokolwiek chcesz zapamiętać z dzisiaj…",
"save": "Zapisz",
"saving": "Zapisywanie…",
"cancel": "Anuluj",
"saveError": "Nie udało się zapisać. Spróbuj ponownie.",
"intermenstrualBleeding": "Plamienie między okresami",
"pregnancyTest": "Test ciążowy",
"progesteroneTest": "Test progesteronu",
"contraceptive": "Antykoncepcja",
"severity": "Nasilenie",
"severityLevel": "Nasilenie {level} z 4",
"delete": "Usuń",
"deleteTitle": "Usunąć ten dzień?",
"deleteBody": "Zniknie wszystko, co zapisano tego dnia: krwawienie, temperatura, objawy i twoja notatka. Nie da się tego przywrócić.",
"deleteConfirm": "Usuń dzień",
"temperatureSection": "Temperatura i owulacja",
"intimacySection": "Intymność i antykoncepcja",
"testsSection": "Testy",
"phaseDayHeader": "Dzień {day} · {phase}",
"bbtHint": "Zmierz ją rano zaraz po przebudzeniu, przed wstaniem."
},
"settings": {
"title": "Ustawienia cyklu",
"typicalCycleLength": "Typowa długość cyklu (dni)",
"typicalPeriodLength": "Typowa długość miesiączki (dni)",
"lutealPhaseLength": "Długość fazy lutealnej (dni)",
"priorsDescription": "Te wartości pomagają prognozom, zanim zapiszesz wiele cykli. Zostaw puste, aby użyć wartości domyślnych.",
"rawChartMode": "Tryb surowego wykresu",
"rawChartModeDescription": "Pokazuj tylko zapisane dane, bez prognoz i interpretacji.",
"secondarySymptomLabel": "Drugi objaw płodności",
"secondarySymptomDescription": "Drugi objaw łączony z temperaturą w podwójnej kontroli objawowo-termicznej. Większość obserwuje śluz szyjkowy; przełącz na obserwację szyjki macicy, jeśli wolisz.",
"secondarySymptomCitation": "Więcej o metodzie (badanie)",
"secondarySymptom": {
"MUCUS": "Śluz szyjkowy",
"CERVIX": "Szyjka macicy"
},
"prediction": "Prognozy",
"predictionDescription": "Prognozuj następną miesiączkę oraz, gdy to istotne, okno płodne.",
"encryption": "Szyfruj wrażliwe wpisy",
"encryptionDescription": "Szyfruj w spoczynku pola ujawniające intencje (testy ciążowe, antykoncepcja, współżycie), obok zawsze szyfrowanych notatek.",
"discreet": "Dyskretne powiadomienia",
"discreetDescription": "Ukryj szczegóły cyklu w treści powiadomień na ekranie blokady.",
"saved": "Ustawienia zapisane",
"saveError": "Nie udało się zapisać. Spróbuj ponownie.",
"save": "Zapisz",
"reminders": "Przypomnienia",
"remindersDescription": "Włącz przypomnienia o okresie dla każdego kanału w ustawieniach powiadomień.",
"remindersLink": "Ustawienia powiadomień",
"fertileReminder": "Przypomnienie o oknie płodności",
"fertileReminderDescription": "Otrzymaj powiadomienie kilka dni przed szacowanym oknem płodności. Domyślnie wyłączone – włącz je dla każdego kanału w ustawieniach powiadomień."
},
"testResult": {
"POSITIVE": "Pozytywny",
"NEGATIVE": "Negatywny",
"INDETERMINATE": "Niejasny"
},
"contraceptive": {
"NONE": "Brak",
"UNSPECIFIED": "Inne",
"IMPLANT": "Implant",
"INJECTION": "Zastrzyk",
"IUD": "Wkładka",
"INTRAVAGINAL_RING": "Krążek",
"ORAL": "Tabletka",
"PATCH": "Plaster",
"EMERGENCY": "Awaryjna"
},
"loadError": "Nie udało się wczytać danych cyklu.",
"saveError": "Nie udało się zapisać wpisu cyklu.",
"deleteError": "Nie udało się usunąć wpisu.",
"bbt": {
"title": "Podstawowa temperatura ciała",
"caption": "Twoja poranna temperatura w tym cyklu. Trwały wzrost o około 0,2 °C następuje po owulacji.",
"empty": "Brak pomiarów temperatury",
"emptyHint": "Zapisuj podstawową temperaturę ciała każdego ranka, aby zobaczyć przesunięcie temperatury w cyklu.",
"ovulationEstimate": "Szac. owulacja",
"tooltipTemp": "{temp} °C",
"ovulationConfirmed": "Potwierdzona owulacja"
},
"fieldInfo": {
"bbt": "Twoja temperatura spoczynkowa, mierzona rano zaraz po przebudzeniu, przed wstaniem. Po owulacji nieznacznie rośnie (o około 0,2–0,3 °C).",
"bbtLabel": "Czym jest temperatura podstawowa?",
"mucus": "Wydzielina z pochwy zmienia się w cyklu — od suchej lub lepkiej do kremowej, a następnie wodnistej i przypominającej białko jaja w najbardziej płodnych dniach.",
"mucusLabel": "Czym jest śluz szyjkowy?",
"ovulationTest": "Domowy test moczu wykrywający skok LH — wyrzut hormonu około 24–36 h przed owulacją. Wynik dodatni wskazuje najbardziej płodne okno.",
"ovulationTestLabel": "Czym jest test owulacyjny?",
"spotting": "Lekkie krwawienie poza okresem.",
"spottingLabel": "Czym jest plamienie między okresami?",
"pregnancyTest": "Wynik domowego testu ciążowego (hCG).",
"pregnancyTestLabel": "Czym jest test ciążowy?",
"progesteroneTest": "Test potwierdzający, że doszło do owulacji — progesteron rośnie po niej.",
"progesteroneTestLabel": "Czym jest test progesteronu?",
"intercourse": "Czy tego dnia doszło do stosunku.",
"intercourseLabel": "Co śledzi stosunek?",
"protected": "Czy podczas stosunku zastosowano antykoncepcję.",
"protectedLabel": "Co oznacza zabezpieczony?"
}
},
"cycleReminders": {
"periodSoonTitle": "Miesiączka prawdopodobnie wkrótce",
"periodSoonBody": "Twoja następna miesiączka jest przewidywana za około dwa dni.",
"periodConfirmTitle": "Czy miesiączka się zaczęła?",
"periodConfirmBody": "Twoja miesiączka była przewidywana mniej więcej teraz. Zapisz ją, aby prognozy pozostały dokładne.",
"fertileSoonTitle": "Zbliża się okno płodności",
"fertileSoonBody": "Szacowane okno płodności rozpocznie się prawdopodobnie za około dwa dni. To szacunek, a nie gwarancja medyczna ani antykoncepcyjna.",
"discreetTitle": "Przypomnienie HealthLog",
"discreetBody": "Masz przypomnienie w HealthLog."
},
"dataList": {
"allSources": "Wszystkie źródła",
"dateFrom": "Od",
"dateTo": "Do",
"dateRange": "Zakres dat",
"valueRange": "Wartość",
"valueMin": "Min.",
"valueMax": "Maks.",
"typeLabel": "Typ",
"sourceLabel": "Źródło",
"resetFilters": "Resetuj",
"clearFilter": "Usuń filtr: {label}",
"selectAll": "Zaznacz wszystko na tej stronie",
"selectRow": "Zaznacz wiersz",
"selected": "Zaznaczono: {count}",
"deleteN": "Usuń ({count})",
"clearSelection": "Wyczyść zaznaczenie",
"selectionBarLabel": "Akcje zaznaczenia"
},
"measurementReminders": {
"sectionTitle": "Badania",
"sectionDescription": "Przypomnienia, co, kiedy i gdzie zmierzyć lub sprawdzić.",
"markDone": "Gotowe",
"delete": "Usuń",
"deleteConfirmTitle": "Usunąć przypomnienie?",
"deleteConfirmDescription": "To przypomnienie o badaniu zostanie trwale usunięte.",
"disabledBadge": "Wył.",
"nextDue": {
"none": "Niezaplanowane",
"today": "Termin dzisiaj",
"tomorrow": "Termin jutro",
"inDays": "Za {days} dni"
},
"overdueByDays": "Zaległe od {days} dni",
"cadence": {
"everyNDays": "Co {days} dni",
"custom": "Własny harmonogram",
"customInterval": "Niestandardowe (co N dni)",
"rruleOption": "Własna reguła (RRULE)"
},
"location": {
"prefix": "U: {location}"
},
"types": {
"WEIGHT": "Waga",
"BLOOD_PRESSURE_SYS": "Ciśnienie krwi",
"PULSE": "Tętno",
"BLOOD_GLUCOSE": "Glukoza we krwi",
"OXYGEN_SATURATION": "Saturacja tlenem",
"BODY_FAT": "Tkanka tłuszczowa",
"BODY_TEMPERATURE": "Temperatura ciała",
"FAT_MASS": "Masa tłuszczowa",
"FAT_FREE_MASS": "Masa beztłuszczowa",
"MUSCLE_MASS": "Masa mięśniowa",
"LEAN_BODY_MASS": "Masa szczupła",
"BONE_MASS": "Masa kostna",
"TOTAL_BODY_WATER": "Woda w organizmie",
"VISCERAL_FAT": "Tłuszcz trzewny",
"BODY_MASS_INDEX": "Wskaźnik masy ciała (BMI)",
"WAIST_CIRCUMFERENCE": "Obwód talii",
"PHQ9_SCORE": "PHQ-9 · nastrój",
"GAD7_SCORE": "GAD-7 · lęk",
"WHO5_SCORE": "WHO-5 · dobrostan",
"SCI_SCORE": "SCI · sen"
},
"typeGroups": {
"vitals": "Parametry życiowe",
"bodyComposition": "Skład ciała",
"mentalWellbeing": "Dobrostan psychiczny"
},
"empty": {
"title": "Brak przypomnień",
"description": "Dodaj przypomnienie, aby regularnie mierzyć ciśnienie krwi lub zaplanować coroczne badanie krwi."
},
"form": {
"label": "Etykieta",
"labelPlaceholder": "np. Zmierz ciśnienie krwi",
"kind": "Typ",
"kindType": "Powiązane z pomiarem",
"kindFreeText": "Sprawdzenie tekstowe",
"measurementType": "Pomiar",
"cadence": "Powtarzaj",
"notifyHour": "Przypomnij o",
"location": "Gdzie (opcjonalnie)",
"locationPlaceholder": "np. Lekarz, Laboratorium",
"save": "Zapisz",
"createTitle": "Nowe przypomnienie",
"editTitle": "Edytuj przypomnienie",
"customInterval": "Powtarzaj co (dni)",
"rrule": "Reguła powtarzania (RRULE)",
"rruleHint": "RFC-5545, np. FREQ=YEARLY dla corocznego badania.",
"firstDue": "Pierwszy termin (opcjonalnie)"
},
"pushTitle": "Przypomnienie o badaniu",
"pushBody": "Czas na: {label}",
"pushLocation": "(u {location})",
"edit": "Edytuj",
"originCoach": "Coach",
"until": "Do {date}",
"selfPlanned": "Zaplanowane samodzielnie",
"captureValue": "Zapisz wartość",
"measureNow": "Zmierz teraz",
"startCheckIn": "Rozpocznij check-in",
"nextDueLabel": "Następny termin:",
"lastDoneLabel": "Ostatnio wykonano:",
"customize": "Dostosuj badania",
"adherence": {
"label": "W interwale",
"onTrack": "Zgodnie z planem",
"due": "Termin teraz"
},
"capture": {
"title": "Zapisz pomiar",
"description": "Wpisz wartość; przypomnienie zostanie oznaczone jako wykonane."
},
"manage": {
"title": "Zarządzaj przypomnieniami",
"description": "Włącz lub wyłącz poszczególne przypomnienia.",
"empty": "Brak przypomnień do dostosowania."
},
"dashboard": {
"empty": "Brak nadchodzących przypomnień o badaniach.",
"openLink": "Otwórz badania"
},
"showMeasurements": "Pokaż pomiary",
"loadError": "Nie udało się załadować przypomnień."
},
"moduleList": {
"viewToggleLabel": "Widok",
"viewCards": "Widok kart",
"viewList": "Widok listy",
"viewHeading": "Widok",
"viewDescription": "Wybierz, czy pozycje mają być pokazywane jako karty czy jako zwarta lista.",
"reorder": {
"heading": "Kolejność",
"description": "Przeciągnij pozycje, aby ustawić kolejność ich wyświetlania.",
"empty": "Brak pozycji do uporządkowania."
}
},
"labs": {
"title": "Wyniki badań",
"subtitle": "Badania krwi i biomarkery",
"addResult": "Dodaj wynik",
"addDescription": "Zapisz biomarker z wyniku laboratoryjnego.",
"addFirst": "Dodaj pierwszy wynik",
"emptyTitle": "Brak wyników badań",
"emptyDescription": "Zapisuj badania takie jak HbA1c, LDL czy ferrytyna, aby śledzić je w czasie i udostępniać lekarzowi.",
"referenceLabel": "Norma",
"readingsCount": "{count} pomiarów",
"deleteConfirmTitle": "Usunąć wynik laboratoryjny?",
"deleteConfirmDescription": "Ten wynik laboratoryjny zostanie usunięty. Zaraz po usunięciu możesz to przez chwilę cofnąć.",
"deletedToast": "Wynik usunięty",
"deleteError": "Nie udało się usunąć wyniku",
"loadError": "Nie udało się wczytać wyników",
"customize": "Dostosuj wyniki badań",
"localOcr": {
"heading": "Odczytuj skany na tym urządzeniu",
"description": "Pozwala zeskanować wynik laboratoryjny nawet wtedy, gdy Twój dostawca AI nie potrafi odczytywać obrazów: zdjęcie jest odczytywane na Twoim urządzeniu, a do dostawcy wysyłany jest tylko wyodrębniony tekst. Mniej dokładne — sprawdź każdą wartość przed zapisaniem."
},
"sort": {
"heading": "Sortowanie",
"label": "Kolejność wartości",
"recentDesc": "Najnowszy pomiar najpierw",
"recentAsc": "Najstarszy pomiar najpierw",
"alphaAsc": "Nazwa (A–Z)",
"alphaDesc": "Nazwa (Z–A)",
"manual": "Sortuj ręcznie",
"hint": "Przy sortowaniu ręcznym możesz przeciągnąć biomarkery poniżej we własnej kolejności."
},
"range": {
"inRange": "W normie",
"below": "Poniżej normy",
"above": "Powyżej normy"
},
"form": {
"value": "Wartość",
"takenAt": "Data pobrania",
"note": "Notatka",
"notePlaceholder": "Opcjonalny kontekst tego wyniku",
"requiredError": "Podaj wartość.",
"save": "Zapisz",
"saveAndAddAnother": "Zapisz i dodaj kolejny",
"savedToast": "Wynik zapisany",
"saveError": "Nie udało się zapisać wyniku",
"biomarker": "Biomarker",
"biomarkerPlaceholder": "Wybierz biomarker",
"defineNew": "+ Zdefiniuj nowy biomarker",
"noBiomarkersHint": "Najpierw zdefiniuj biomarker, aby zapisać wartość.",
"pickBiomarkerError": "Najpierw wybierz biomarker.",
"resultType": "Typ wyniku",
"numeric": "Liczbowy",
"qualitative": "Jakościowy",
"qualitativeResult": "Wynik",
"qualitativePlaceholder": "np. ujemny",
"qualNegative": "ujemny",
"qualPositive": "dodatni",
"qualBorderline": "graniczny"
},
"backToLabs": "Wróć do wyników",
"hasNote": "Notatka",
"editTitle": "Edytuj pomiar",
"editDescription": "Popraw wartość, datę lub notatkę tego pomiaru.",
"editedToast": "Pomiar zaktualizowany",
"editError": "Nie udało się zaktualizować pomiaru",
"editTimestampError": "Podaj prawidłową datę.",
"editReading": "Edytuj pomiar",
"deleteReading": "Usuń pomiar",
"restoredToast": "Pomiar przywrócony",
"restoreError": "Nie udało się przywrócić pomiaru",
"detail": {
"emptyTitle": "Brak pomiarów",
"emptyDescription": "Dodaj wartość, aby śledzić ten biomarker w czasie.",
"title": "Biomarker",
"genericDescription": "Biomarker laboratoryjny, który śledzisz. Dodaj pomiary, aby obserwować jego trend względem zakresu referencyjnego.",
"valuesTitle": "{marker} — wszystkie odczyty",
"valuesDescription": "Każdy odczyt tego biomarkera. Edytuj lub usuń wpis bezpośrednio.",
"backToMarker": "Powrót do {marker}",
"latestResult": "Ostatni wynik"
},
"chart": {
"empty": "Brak pomiarów w tym okresie.",
"valueLabel": "Wartość",
"range": {
"30": "30 d",
"90": "90 d",
"365": "1 r",
"all": "Wszystko"
}
},
"biomarker": {
"manageTitle": "Biomarkery",
"managerDescription": "Zdefiniuj marker raz — jednostka i zakres są używane dla każdego pomiaru.",
"define": "Zdefiniuj",
"defineFirst": "Zdefiniuj pierwszy biomarker",
"defineTitle": "Zdefiniuj biomarker",
"defineDescription": "Ustaw nazwę, jednostkę i zakres raz. Marker wybierasz przy dodawaniu wartości.",
"editTitle": "Edytuj biomarker",
"edit": "Edytuj",
"delete": "Usuń",
"deletedToast": "Biomarker usunięty",
"deleteError": "Nie udało się usunąć biomarkera",
"deleteConfirmTitle": "Usunąć biomarker?",
"deleteConfirmDescription": "Biomarker i wszystkie jego zapisane wartości zostaną trwale usunięte. Tej operacji nie można cofnąć.",
"emptyTitle": "Brak biomarkerów",
"emptyDescription": "Zdefiniuj markery, takie jak LDL lub HbA1c, aby zapisywać wartości.",
"loadError": "Nie udało się wczytać biomarkerów",
"noRange": "Brak zakresu referencyjnego",
"form": {
"seedLabel": "Zacznij od popularnego markera",
"seedPlaceholder": "Wybierz marker (opcjonalnie)",
"seedHint": "Wybór wypełnia pola poniżej — dopasuj zakres do swojego laboratorium.",
"name": "Nazwa",
"namePlaceholder": "np. Cholesterol LDL",
"unit": "Jednostka",
"unitPlaceholder": "np. mg/dl",
"panel": "Panel",
"panelPlaceholder": "np. Lipidy",
"lowerBound": "Dolna granica",
"upperBound": "Górna granica",
"lowerPlaceholder": "Dolna granica",
"upperPlaceholder": "Górna granica",
"context": "Kontekst",
"contextPlaceholder": "Opcjonalna notatka o tym markerze",
"rangeHint": "Obie granice są opcjonalne — zostaw jedną pustą dla zakresu otwartego (np. LDL < 116).",
"requiredError": "Nazwa i jednostka są wymagane.",
"rangeOrderError": "Dolna granica nie może przekraczać górnej.",
"save": "Zapisz biomarker",
"savedToast": "Biomarker zapisany",
"updatedToast": "Biomarker zaktualizowany",
"saveError": "Nie udało się zapisać biomarkera"
},
"hide": "Ukryj",
"unhide": "Przywróć",
"hiddenToast": "Biomarker ukryty",
"unhiddenToast": "Biomarker przywrócony",
"hideError": "Nie udało się zaktualizować biomarkera",
"allHidden": "Wszystkie biomarkery są ukryte.",
"hiddenSection": "Ukryte"
},
"catalog": {
"total-cholesterol": "Cholesterol całkowity",
"ldl": "Cholesterol LDL",
"hdl": "Cholesterol HDL",
"triglycerides": "Trójglicerydy",
"fasting-glucose": "Glukoza na czczo",
"hba1c": "HbA1c",
"tsh": "TSH",
"ft3": "Wolne T3",
"ft4": "Wolne T4",
"ferritin": "Ferrytyna",
"transferrin-saturation": "Wysycenie transferyny",
"vitamin-d": "Witamina D (25-OH)",
"vitamin-b12": "Witamina B12",
"folate": "Kwas foliowy",
"hs-crp": "hs-CRP",
"creatinine": "Kreatynina",
"egfr": "eGFR",
"alt": "ALT",
"ast": "AST",
"ggt": "GGTP",
"sodium": "Sód",
"potassium": "Potas",
"hemoglobin": "Hemoglobina",
"hematocrit": "Hematokryt",
"wbc": "Leukocyty",
"platelets": "Płytki krwi",
"panel": {
"lipids": "Lipidy",
"glucose": "Metabolizm glukozy",
"thyroid": "Tarczyca",
"iron": "Żelazo",
"vitamins": "Witaminy",
"inflammation": "Stan zapalny",
"renal": "Nerki",
"liver": "Wątroba",
"electrolytes": "Elektrolity",
"bloodCount": "Morfologia krwi"
},
"desc": {
"total-cholesterol": "Cholesterol całkowity to suma cholesterolu przenoszonego przez wszystkie cząstki lipoprotein we krwi, w tym frakcje LDL, HDL i pozostałości. Sam cholesterol jest niezbędnym budulcem błon komórkowych, hormonów i kwasów żółciowych. Jako pojedyncza liczba pozostaje miarą zgrubną, ponieważ zarówno wysoki udział HDL, jak i wysoki udział LDL podnoszą sumę — dlatego zwykle odczytuje się go wraz z poszczególnymi frakcjami. Oznacza się go przede wszystkim w ramach długoterminowej oceny ryzyka sercowo-naczyniowego.",
"ldl": "Cholesterol LDL to cholesterol przenoszony przez cząstki lipoprotein o małej gęstości, czyli frakcja, która dostarcza cholesterol do tkanek, ale może też odkładać go w ścianach tętnic. Przez lata odkładanie to przyczynia się do blaszki miażdżycowej, dlatego LDL jest jednym z najbaczniej obserwowanych markerów lipidowych. Mniejsza ekspozycja w długim okresie zwykle wiąże się z niższym ryzykiem sercowo-naczyniowym. Interpretuje się go według kategorii ryzyka, a nie wobec jednej stałej wartości prawidłowej.",
"hdl": "Cholesterol HDL to cholesterol przenoszony przez cząstki lipoprotein o dużej gęstości, które zbierają nadmiar cholesterolu z tkanek i odprowadzają go do wątroby w celu ponownego wykorzystania lub usunięcia. Z powodu tej funkcji transportowej często nazywa się go frakcją ochronną. Bardzo niskie wartości zwykle towarzyszą wyższemu ryzyku sercowo-naczyniowemu, jednak sztuczne jego podnoszenie nie obniżało ryzyka w sposób wiarygodny, dlatego odczytuje się go jako marker, a nie cel. Zwykle interpretuje się go razem z LDL i trójglicerydami.",
"triglycerides": "Trójglicerydy to główna postać tłuszczu krążącego we krwi, dostarczana zarówno z dietą, jak i wytwarzana przez wątrobę, i stanowią kluczowy zapas energii. Wartości rosną po posiłkach, dlatego próbkę pobiera się zwykle na czczo, aby była porównywalna. Utrzymujące się wysokie trójglicerydy wiążą się z ryzykiem metabolicznym i sercowo-naczyniowym i często towarzyszą insulinooporności oraz niskiemu HDL. Odczytuje się je jako jeden ze składników całościowego obrazu lipidowego.",
"fasting-glucose": "Glukoza na czczo to stężenie cukru we krwi mierzone po nocnym poście, odzwierciedlające, jak organizm utrzymuje swój podstawowy poziom cukru bez niedawnego posiłku. Glukoza jest głównym natychmiastowym paliwem organizmu, a insulina utrzymuje ją zwykle w wąskim zakresie. Pomiar na czczo eliminuje wpływ niedawnych posiłków, co czyni go standardowym badaniem przesiewowym działania regulacji glukozy. To jeden z markerów, którymi ocenia się zdrowie metaboliczne w czasie.",
"hba1c": "HbA1c to odsetek hemoglobiny w czerwonych krwinkach, który związał się z glukozą i gromadzi się proporcjonalnie do średniej ekspozycji na cukier we krwi. Ponieważ czerwone krwinki żyją około trzech miesięcy, odzwierciedla średnie stężenie glukozy z poprzednich dwóch–trzech miesięcy, a nie pojedynczej chwili. Czyni to z niego stabilny, niezależny od posiłków obraz kontroli glikemii. Jego wiarygodność mogą zaburzać stany zmieniające czas życia czerwonych krwinek.",
"tsh": "TSH (hormon tyreotropowy) jest uwalniany przez przysadkę, aby sygnalizować tarczycy wytwarzanie jej hormonów, i dostosowuje się w górę lub w dół, by utrzymać je w równowadze. Dzięki tej pętli sprzężenia zwrotnego TSH jest najczulszym badaniem przesiewowym pierwszego rzutu funkcji tarczycy: zwykle zmienia się, zanim same hormony tarczycy odbiegną od normy. Podwyższona lub obniżona wartość wskazuje na niedoczynną lub nadczynną tarczycę i zwykle prowadzi do bezpośredniego oznaczenia hormonów tarczycy. Ciąża i wiek przesuwają oczekiwany zakres.",
"ft3": "Wolne T3 (trójjodotyronina) to niezwiązana, biologicznie czynna postać silniejszego hormonu tarczycy — frakcja dostępna do działania na tkanki. Większość krążącego T3 jest związana z białkami nośnikowymi i nieaktywna, dlatego wolna część odzwierciedla rzeczywistą dostępność hormonu. Oznacza się je, aby scharakteryzować funkcję tarczycy, zwłaszcza wraz z TSH i wolnym T4, gdy wyniki są niejasne. Wartości silnie zależą od metody oznaczenia i odczytuje się je w kontekście klinicznym.",
"ft4": "Wolne T4 (tyroksyna) to niezwiązana postać głównego hormonu, który tarczyca uwalnia do krwi; służy jako rezerwa, którą tkanki w razie potrzeby przekształcają w bardziej aktywne T3. Wolna frakcja odzwierciedla to, co jest faktycznie dostępne dla organizmu, niezależnie od poziomu białek nośnikowych. Zwykle oznacza się je wraz z TSH, aby odróżnić problemy samej tarczycy od zaburzeń sygnalizacji przysadkowej. Ciąża i niektóre leki mogą je przesuwać.",
"ferritin": "Ferrytyna to główne białko magazynujące żelazo w organizmie, a jej poziom we krwi z grubsza odzwierciedla całkowite zapasy żelaza. Niska wartość wskazuje na wyczerpane zapasy, a wysoka może odzwierciedlać przeładowanie żelazem — lub po prostu stan zapalny, ponieważ ferrytyna rośnie także jako białko ostrej fazy. Z tego powodu często interpretuje się ją wraz z innymi markerami żelaza i oznakami zapalenia. To jedna z podstawowych miar oceny gospodarki żelazem.",
"transferrin-saturation": "Wysycenie transferyny to odsetek transferyny — białka przenoszącego żelazo we krwi — który jest aktualnie obładowany żelazem. Łączy ono ilość żelaza w transporcie ze zdolnością organizmu do jego przenoszenia, dając migawkę dostępności żelaza, która uzupełnia obraz zapasów dawany przez ferrytynę. Niskie wysycenie sugeruje niedobór żelaza, a wysoka wartość może wskazywać na przeładowanie. Odczytuje się je wraz z ferrytyną i pełnym profilem żelaza.",
"vitamin-d": "Witaminę D oznacza się jako 25-hydroksywitaminę D, krążącą postać magazynową i standardowy marker ogólnego stanu witaminy D. Organizm wytwarza ją w skórze wystawionej na światło słoneczne i część przyswaja z pożywienia; wspiera ona gospodarkę wapniową, zdrowie kości i funkcję odpornościową. Wartości zmieniają się wraz z porą roku, szerokością geograficzną, odcieniem skóry i suplementacją. Oznacza się ją, aby z czasem ocenić, czy zapasy są wystarczające.",
"vitamin-b12": "Witamina B12 (kobalamina) to niezbędna witamina pozyskiwana głównie z produktów pochodzenia zwierzęcego i magazynowana w dużej mierze w wątrobie. Jest potrzebna do tworzenia czerwonych krwinek, syntezy DNA i zdrowia układu nerwowego. Długotrwały niedobór — z powodu małego spożycia lub upośledzonego wchłaniania — może prowadzić do niedokrwistości i objawów neurologicznych. Oznacza się ją, aby ocenić stan odżywienia, zwłaszcza tam, gdzie spożycie lub wchłanianie mogą być ograniczone.",
"folate": "Foliany (witamina B9) to witamina z grupy B obecna w zielonych warzywach liściastych, roślinach strączkowych i żywności wzbogacanej, kluczowa dla tworzenia czerwonych krwinek i syntezy DNA. Działa w ścisłym powiązaniu z witaminą B12, a niedobór któregokolwiek z nich może wywołać podobny rodzaj niedokrwistości. Odpowiednia ilość folianów jest szczególnie ważna na początku ciąży dla zdrowego rozwoju płodu. Oznacza się je, aby ocenić stan odżywienia i przyczynę niektórych niedokrwistości.",
"hs-crp": "Wysokoczułe CRP mierzy białko C-reaktywne, marker uwalniany przez wątrobę w odpowiedzi na stan zapalny, metodą dostrojoną do wykrywania niskich stężeń istotnych dla ryzyka sercowo-naczyniowego. W odróżnieniu od standardowego CRP stosowanego przy ostrych infekcjach wersja wysokoczuła wychwytuje subtelny, przewlekły stan zapalny powiązany z chorobą naczyń. Ponieważ każda niedawna infekcja lub uraz może je podnieść, interpretuje się je z dala od ostrej choroby i często potwierdza powtórną próbką. Odczytuje się je jako jeden z czynników całościowego ryzyka sercowo-naczyniowego.",
"creatinine": "Kreatynina to produkt przemiany materii prawidłowego metabolizmu mięśni, który nerki filtrują z krwi w dość stałym tempie. Ponieważ jej wytwarzanie jest stosunkowo stałe, jej poziom we krwi służy jako praktyczna miara tego, jak dobrze nerki usuwają produkty przemiany materii. Na wartości wpływają też masa mięśniowa, nawodnienie i dieta, dlatego zwykle interpretuje się je wraz z szacowanym współczynnikiem filtracji. To podstawowy marker funkcji nerek.",
"egfr": "eGFR (szacowany współczynnik filtracji kłębuszkowej) szacuje, ile krwi nerki filtrują w ciągu minuty, na podstawie kreatyniny oraz wieku i płci. Przekłada surową wartość kreatyniny na bardziej bezpośrednio zrozumiałą miarę funkcji nerek. Spadek eGFR w czasie to główny sposób klasyfikowania i śledzenia przewlekłych zmian w nerkach. Jako wartość szacunkowa odczytuje się go jako trend, a nie pojedynczą dokładną liczbę.",
"alt": "ALT (aminotransferaza alaninowa) to enzym skupiony w komórkach wątroby, uwalniany do krwi, gdy komórki te są obciążone lub uszkodzone. Ponieważ jest stosunkowo swoisty dla wątroby, należy do głównych markerów wykrywania uszkodzenia lub zapalenia wątroby. Wartości mogą rosnąć przy stłuszczeniu wątroby, wirusowym zapaleniu wątroby, alkoholu lub niektórych lekach. Zwykle odczytuje się go wraz z AST i pozostałymi markerami profilu wątrobowego.",
"ast": "AST (aminotransferaza asparaginianowa) to enzym obecny w wątrobie, ale także w mięśniach, sercu i czerwonych krwinkach, uwalniany przy uszkodzeniu którejkolwiek z tych tkanek. Ponieważ jest mniej swoisty dla wątroby niż ALT, oba interpretuje się razem, a ich stosunek może wskazywać na źródło i charakter problemu. Intensywny wysiłek lub uraz mięśni mogą go podnieść niezależnie od wątroby. To jeden ze standardowych enzymów profilu wątrobowego.",
"ggt": "GGT (gamma-glutamylotransferaza) to enzym wątroby i dróg żółciowych, który rośnie zwłaszcza przy utrudnionym odpływie żółci lub w wyniku ekspozycji na alkohol. Często służy do wyjaśnienia, dlaczego inny marker wątrobowy jest podwyższony — na przykład, aby odróżnić źródło wątrobowe od żółciowego. Jest czuły, ale mało swoisty, dlatego odczytuje się go w kontekście reszty profilu wątrobowego. To jeden z kilku markerów używanych do oceny zdrowia wątroby i dróg żółciowych.",
"sodium": "Sód to główny elektrolit płynu poza komórkami organizmu i podstawowy regulator gospodarki płynami oraz objętości krwi. Organizm reguluje go ściśle poprzez pragnienie, hormony i nerki, dlatego jego poziom we krwi odzwierciedla raczej równowagę między wodą a solą niż samo spożycie. Nieprawidłowe wartości zwykle sygnalizują zaburzenie gospodarki wodnej, a nie samego sodu. To podstawowy element panelu metabolicznego i elektrolitowego.",
"potassium": "Potas to główny elektrolit wewnątrz komórek organizmu i jest niezbędny do przewodzenia nerwowego oraz równego rytmu mięśnia sercowego. Jego poziom we krwi utrzymywany jest w wąskim zakresie przez nerki i sygnały hormonalne, ponieważ zarówno wysokie, jak i niskie wartości mogą zaburzać aktywność elektryczną serca. Na wartości mogą wpływać funkcja nerek, nawodnienie i kilka powszechnych leków. To podstawowa miara panelu elektrolitowego.",
"hemoglobin": "Hemoglobina to zawierające żelazo białko czerwonych krwinek, które wiąże tlen w płucach i przenosi go do tkanek. Jej stężenie jest główną miarą zdolności krwi do przenoszenia tlenu i centralnym markerem wykrywania niedokrwistości. Niskie wartości mogą odzwierciedlać utratę krwi, niedobór żelaza lub witamin albo zmniejszone wytwarzanie, a wysokie mogą następować po odwodnieniu lub w warunkach niedoboru tlenu. To filar pełnej morfologii krwi.",
"hematocrit": "Hematokryt to udział czerwonych krwinek w objętości krwi, wyrażony w procentach. Zmienia się ściśle wraz z hemoglobiną i daje uzupełniający obraz masy czerwonych krwinek oraz zdolności krwi do przenoszenia tlenu. Wpływa na niego nawodnienie, ponieważ zmiany objętości osocza przesuwają ten udział nawet wtedy, gdy liczba czerwonych krwinek pozostaje stała. Odczytuje się go wraz z hemoglobiną i resztą morfologii.",
"wbc": "Liczba białych krwinek to całkowita liczba komórek odpornościowych krążących we krwi, ruchomej obrony organizmu przed infekcjami. Rośnie w odpowiedzi na infekcję, stan zapalny lub stres i może spadać, gdy szpik kostny jest osłabiony lub w niektórych chorobach odpornościowych. Ponieważ sumuje kilka odrębnych typów komórek, wyraźną zmianę często uzupełnia się rozmazem, który rozbija ją na składowe. To podstawowy element pełnej morfologii krwi.",
"platelets": "Płytki krwi to drobne fragmenty komórek we krwi, które zlepiają się i tworzą początkowy czop zatrzymujący krwawienie z uszkodzonego naczynia. Ich liczba odzwierciedla równowagę między wytwarzaniem w szpiku kostnym a zużyciem lub rozpadem. Niska liczba może zwiększać skłonność do krwawień, a wysoka może następować po stanie zapalnym lub innych bodźcach. Stanowią część pełnej morfologii krwi i są podstawową miarą zdolności krzepnięcia.",
"apob": "Apolipoproteina B to białko strukturalne obecne na każdej z aterogennych cząstek lipoprotein, więc jej pomiar zlicza te cząstki bezpośrednio, a nie cholesterol, który przenoszą. Ponieważ na każdej cząstce LDL, VLDL i pokrewnej znajduje się jedna cząsteczka ApoB, może ona wychwycić ryzyko sercowo-naczyniowe, które umyka wartości cholesterolu LDL — zwłaszcza gdy liczba cząstek i ich zawartość cholesterolu się rozchodzą. Z tego powodu coraz częściej używa się jej do uściślenia oceny ryzyka opartej na lipidach. Interpretuje się ją wraz ze zwykłym profilem lipidowym.",
"lp-a": "Lipoproteina(a) to cząstka podobna do LDL z dodatkowo przyłączonym białkiem, której poziom jest w dużej mierze uwarunkowany genetycznie i pozostaje dość stabilny przez całe życie. Podwyższona Lp(a) jest niezależnym, dziedzicznym czynnikiem ryzyka chorób sercowo-naczyniowych i zwężenia zastawki aortalnej. Ponieważ niewiele się zmienia, zwykle oznacza się ją raz, aby ustalić ryzyko danej osoby na całe życie, a nie śledzić wielokrotnie. Podaje się ją w jednostkach molowych i odczytuje w ramach całościowego ryzyka sercowo-naczyniowego.",
"fasting-insulin": "Insulina na czczo to poziom insuliny — hormonu, który przenosi glukozę z krwi do komórek — mierzony po nocnym poście. W połączeniu z glukozą na czczo pomaga oszacować insulinooporność, czyli stan, w którym organizm potrzebuje więcej insuliny, aby utrzymać glukozę w zakresie. Wysoka insulina na czczo przy prawidłowej glukozie może być wczesnym znakiem, że ta kompensacja jest w toku. Odczytuje się ją w ramach obrazu zdrowia metabolicznego, a nie w oderwaniu.",
"omega-3-index": "Indeks omega-3 to udział EPA i DHA — dwóch długołańcuchowych morskich kwasów tłuszczowych omega-3 — wśród kwasów tłuszczowych błon czerwonych krwinek. Ponieważ czerwone krwinki odnawiają się powoli, odzwierciedla on długoterminowe spożycie omega-3, a nie niedawny posiłek. Wyższy indeks wiązano w badaniach obserwacyjnych z niższym ryzykiem sercowo-naczyniowym. Śledzi się go jako stabilny marker stanu omega-3, który reaguje na dietę w ciągu miesięcy."
},
"apob": "Apolipoproteina B (ApoB)",
"lp-a": "Lipoproteina(a)",
"fasting-insulin": "Insulina na czczo",
"omega-3-index": "Indeks omega-3"
},
"noteLoadFailed": "Nie udało się wczytać notatki; pozostanie niezmieniona po zapisaniu.",
"showingLatestOf": "Wyświetlanie najnowszych {shown} z {total} wyników",
"ocr": {
"scanButton": "Zeskanuj wynik",
"addScan": "Zeskanuj dokument",
"addManual": "Dodaj wartość ręcznie",
"uploadHint": "Prześlij zdjęcie lub PDF wyniku laboratoryjnego",
"acceptWithPdf": "JPEG, PNG, WebP lub PDF",
"acceptImageOnly": "JPEG, PNG lub WebP",
"extracting": "Odczytywanie wyniku…",
"readingOnDevice": "Odczytywanie na Twoim urządzeniu…",
"localModeHint": "Odczytywane na Twoim urządzeniu i wysyłane jako tekst. Mniej dokładne — sprawdź każdą wartość.",
"rangeFromScan": "Zakres referencyjny pobrany ze skanu",
"rangeVerify": "Zweryfikuj zakres referencyjny",
"reviewTitle": "Sprawdź przed zapisaniem",
"reviewHint": "Sprawdź każdy wynik, a następnie zapisz te, które chcesz zachować.",
"foundCount": "Znaleziono {count} wyników",
"confirmRow": "Uwzględnij ten wynik",
"analyteLabel": "Nazwa badania",
"resultLabel": "Wynik",
"valueLabel": "Wartość",
"unitLabel": "Jednostka",
"dateLabel": "Data",
"refLowLabel": "Dolna granica",
"refHighLabel": "Górna granica",
"newBiomarker": "Nowy biomarker — zostanie utworzony",
"linksExisting": "Łączy z istniejącym {name}",
"duplicateWarning": "Pasujący wynik już istnieje",
"lowConfidence": "Sprawdź tę wartość",
"lowConfidenceBadge": "Niska pewność",
"valueUnreadable": "Wartość nieczytelna — wprowadź ją ręcznie",
"saveSelected": "Zapisz {count} wybranych",
"discardAll": "Odrzuć wszystko",
"savedToast": "Zapisano {count} wyników laboratoryjnych",
"savedPartialToast": "Zapisano {count} wyników laboratoryjnych, {skipped} pominięto jako duplikaty",
"savedNothingToast": "Nic nie zapisano: {skipped} wyników było już zarejestrowanych",
"savedEmptyToast": "Nie ma nic do zapisania",
"noRows": "W tym wyniku nie znaleziono żadnych wartości.",
"nothingToSave": "Wybierz co najmniej jeden wynik do zapisania.",
"saveFailed": "Nie udało się zapisać wyników. Spróbuj ponownie.",
"providerUnsupported": "Twój dostawca AI nie może odczytywać obrazów. Skonfiguruj model z obsługą obrazu.",
"consentRequired": "Do zeskanowania wyniku wymagana jest zgoda na przetwarzanie przez AI.",
"rateLimited": "Zbyt wiele skanów. Spróbuj ponownie później.",
"budgetExceeded": "Osiągnięto dzienny limit użycia AI.",
"fileTooLarge": "Plik jest za duży (maks. 12 MB).",
"fileType": "Prześlij plik JPEG, PNG, WebP lub PDF.",
"extractFailed": "Nie udało się odczytać wyniku. Spróbuj wyraźniejszego zdjęcia.",
"pdfNeedsAnthropic": "Skanowanie PDF wymaga dostawcy wizji Claude; prześlij zamiast tego zdjęcie."
},
"loadMoreReadings": "Wczytaj więcej pomiarów",
"documentsLink": "Dokumenty wyników badań",
"notLinkedYet": "Jeszcze niepowiązane z biomarkerem"
},
"modules": {
"cycle": {
"label": "Cykl",
"description": "Śledź miesiączkę, fazy i prognozy."
},
"mood": {
"label": "Nastrój",
"description": "Zapisuj codzienny nastrój i tagi."
},
"sleep": {
"label": "Sen",
"description": "Długość, fazy i oś czasu snu."
},
"glucose": {
"label": "Glukoza",
"description": "Odczyty glukozy i trendy."
},
"workouts": {
"label": "Treningi",
"description": "Sesje treningowe i aktywność."
},
"recovery": {
"label": "Regeneracja",
"description": "Wskaźniki regeneracji i obciążenia z Twoich urządzeń."
},
"labs": {
"label": "Wyniki badań",
"description": "Zapisuj wyniki badań laboratoryjnych i ich historię."
},
"achievements": {
"label": "Osiągnięcia",
"description": "Odznaki i serie dla Twojej rutyny."
},
"coach": {
"label": "Coach",
"description": "Czat AI oparty na Twoich danych."
},
"insights": {
"label": "Insights",
"description": "Analizy AI, briefing i korelacje."
},
"doctorReport": {
"label": "Raport dla lekarza",
"description": "Eksport PDF i FHIR dla Twojej przychodni."
},
"medications": {
"label": "Leki",
"description": "Schematy, przyjęcia i zgodność."
},
"illness": {
"label": "Dziennik chorób",
"description": "Zapisuj epizody chorób i dolegliwości z dziennym przebiegiem objawów."
},
"mcp": {
"label": "Dostęp asystenta zewnętrznego (MCP)",
"description": "Pozwól asystentowi obsługującemu MCP czytać Twoje dane zdrowotne za pomocą tokena o ograniczonym zakresie. Domyślnie wyłączone."
},
"environment": {
"label": "Środowisko",
"description": "Pobieraj dzienną pogodę i długość dnia dla swojej lokalizacji, aby powiązać je z nastrojem, snem i parametrami życiowymi. Domyślnie wyłączone."
},
"inboundDocuments": {
"label": "Dokumenty",
"description": "Przechowuj każde pismo lekarskie, wynik i skan w jednym zaszyfrowanym, przeszukiwalnym miejscu — powiązane z Twoimi schorzeniami. Domyślnie wyłączone."
},
"mentalHealth": {
"label": "Dobrostan psychiczny",
"description": "Dobrowolne testy PHQ-9 i GAD-7 obok dziennika nastroju. Domyślnie wyłączone; odpowiedzi są szyfrowane i pozostają poza Coachem AI."
},
"nutrients": {
"label": "Spożycie składników odżywczych",
"description": "Zapisuje dzienne sumy mikroskładników (witaminy, minerały, woda, kofeina) synchronizowane z Apple Health. Domyślnie wyłączone."
}
},
"illness": {
"title": "Dziennik chorób",
"subtitle": "Retrospektywny zapis Twoich epizodów chorób i dolegliwości.",
"settings": {
"viewDescription": "Wybierz, czy epizody mają być wyświetlane jako karty czy zwarta lista.",
"orderDescription": "Przeciągnij epizody w kolejność, w jakiej chcesz je widzieć."
},
"customize": "Dostosuj dziennik chorób",
"newEpisode": "Nowy epizod",
"logDay": "Zapisz dzień",
"markRecovered": "Oznacz jako wyleczone",
"deletedToast": "Wpis usunięty",
"restoreError": "Nie udało się przywrócić wpisu",
"onsetOn": "Początek {date}",
"recoveredOn": "wyleczono {date}",
"status": {
"active": "Aktywny",
"ongoing": "Trwający",
"recovered": "Wyleczony"
},
"empty": {
"title": "Brak epizodów",
"body": "Rozpocznij epizod, aby prowadzić dzienny przebieg objawów i prześledzić, jak się rozwijał."
},
"type": {
"INFECTION": "Infekcja",
"ALLERGY": "Alergia",
"INJURY": "Uraz",
"MENTAL_HEALTH": "Zdrowie psychiczne",
"AUTOIMMUNE": "Autoimmunologiczna",
"CHRONIC": "Przewlekła",
"OTHER": "Inne"
},
"lifecycle": {
"ACUTE": "Ostra",
"CHRONIC_ONGOING": "Przewlekła / trwająca",
"RECURRING": "Nawracająca",
"FLARE": "Zaostrzenie"
},
"new": {
"title": "Nowy epizod",
"description": "Zapisz chorobę lub dolegliwość. Codzienne objawy możesz notować później.",
"label": "Nazwa",
"labelPlaceholder": "np. Przeziębienie",
"type": "Typ",
"lifecycle": "Przebieg",
"onset": "Początek",
"note": "Notatka",
"notePlaceholder": "Cokolwiek wartego zapamiętania (zaszyfrowane).",
"saveError": "Nie udało się zapisać epizodu. Spróbuj ponownie.",
"parent": "Część",
"parentNone": "Niepowiązane",
"resolved": "Zakończono",
"resolvedHelp": "Pozostaw puste, dopóki epizod nadal trwa.",
"markOngoing": "Nadal trwa"
},
"sheet": {
"title": "Zapisz {date}",
"description": "Zanotuj dzisiejsze objawy, swoją sprawność i ewentualną gorączkę.",
"symptoms": "Objawy",
"functionalImpact": "Sprawność",
"fever": "Temperatura",
"note": "Notatka",
"noteSet": "Ustawiona",
"notePlaceholder": "Jak minął dzień (zaszyfrowane).",
"severityFor": "Nasilenie: {symptom}",
"saveError": "Nie udało się zapisać dnia. Spróbuj ponownie.",
"day": "Day"
},
"impact": {
"0": "Pełna sprawność",
"1": "Lekko ograniczona",
"2": "Głównie odpoczynek",
"3": "W łóżku"
},
"symptom": {
"runnyNose": "Katar",
"stuffyNose": "Zatkany nos",
"sneezing": "Kichanie",
"soreThroat": "Ból gardła",
"cough": "Kaszel",
"headache": "Ból głowy",
"bodyAches": "Bóle ciała",
"fatigue": "Zmęczenie"
},
"correlation": {
"title": "Jak przebiegało",
"learning": "Wciąż się uczę — zapisz jeszcze kilka dni, aby zobaczyć tu wzorce.",
"preOnsetTitle": "Jak się zapowiadało",
"preOnsetBody": "Sygnały, które odbiegły od Twojej bazy przed oznaczonym początkiem.",
"nadirTitle": "Co się zmieniło",
"nadirBody": "Jak daleko każdy śledzony sygnał odbiegł od Twojego typowego zakresu.",
"recoveryGapTitle": "Luka rekonwalescencji",
"recoveryGapLag": "Twoje wartości ustabilizowały się {days} dni po tym, jak poczułeś się lepiej.",
"recoveryGapLead": "Twoje wartości ustabilizowały się {days} dni przed oznaczeniem wyzdrowienia.",
"recoveryGapLagSymptom": "Poczułeś się lepiej {days} dni przed ustąpieniem zapisanych objawów.",
"recoveryGapLeadSymptom": "Twoje zapisane objawy ustąpiły {days} dni przed oznaczeniem wyzdrowienia.",
"recoveryGapSame": "Twoje wartości ustabilizowały się tego samego dnia, gdy poczułeś się lepiej.",
"sleepContextMore": "Podczas tego epizodu spałeś zauważalnie więcej niż zwykle (około {hours} godz./noc).",
"sleepContextLess": "Podczas tego epizodu spałeś zauważalnie mniej niż zwykle (około {hours} godz./noc).",
"redFlagTitle": "Warto przyjrzeć się bliżej",
"redFlagSpo2": "Twoje wysycenie tlenem pozostawało niskie przez kilka dni. Jeśli się powtórzy, zasięgnij pomocy medycznej.",
"redFlagFever": "Miałeś utrzymującą się gorączkę. Jeśli się powtórzy, zasięgnij pomocy medycznej.",
"direction": {
"above": "powyżej Twojej normy",
"below": "poniżej Twojej normy"
},
"settled": "Podczas tego epizodu nic istotnego nie odbiegało od twojego zwykłego zakresu."
},
"insights": {
"title": "Twoja historia chorób",
"countOne": "W tym okresie zapisałeś 1 epizod.",
"countOther": "W tym okresie zapisałeś {count} epizodów.",
"typicalGap": "Typowa luka rekonwalescencji: {days} dni między poprawą a ustabilizowaniem wartości.",
"typicalGapWithDriver": "Typowa luka rekonwalescencji: {days} dni – zwykle czujesz się lepiej, zanim {vital} się ustabilizuje.",
"typicalGapLearning": "Jeszcze kilka zakończonych epizodów i pojawi się tu typowa luka rekonwalescencji.",
"none": "Brak epizodów zapisanych w tym okresie.",
"analyze": "Przeanalizuj lukę rekonwalescencji"
},
"section": {
"active": "Aktywne",
"resolved": "Zakończone"
},
"flares": {
"countOne": "1 zaostrzenie",
"countOther": "Zaostrzenia: {count}"
},
"timeline": {
"title": "Oś dnia",
"error": "Nie udało się wczytać osi.",
"severity": "Nasilenie {severity}",
"noSymptoms": "Nie zapisano objawów.",
"impact": "Jak funkcjonowałeś: {impact}",
"fever": "Temperatura: {value} °C",
"empty": "Nie zapisano jeszcze żadnych dni."
},
"loadError": "Nie udało się wczytać tego epizodu.",
"backToList": "Powrót do dziennika",
"detail": {
"note": "Note"
},
"edit": {
"title": "Edytuj epizod",
"description": "Zaktualizuj szczegóły tego epizodu."
},
"menu": {
"label": "Działania epizodu"
},
"deleteConfirm": {
"title": "Usunąć ten epizod?",
"body": "„{label}” oraz wszystkie powiązane wpisy dzienne zostaną usunięte. Zaraz po usunięciu możesz to przez chwilę cofnąć."
},
"vital": {
"RESTING_HEART_RATE": "Spoczynkowe tętno",
"HEART_RATE_VARIABILITY": "Zmienność rytmu serca",
"RECOVERY_SCORE": "Recovery",
"OXYGEN_SATURATION": "Saturacja tlenem",
"BODY_TEMPERATURE": "Temperatura ciała",
"RESPIRATORY_RATE": "Częstość oddechów",
"BLOOD_PRESSURE_SYS": "Ciśnienie skurczowe",
"BLOOD_PRESSURE_DIA": "Ciśnienie rozkurczowe",
"PULSE": "Pulse",
"WEIGHT": "Weight",
"FUNCTIONAL_IMPACT": "Wpływ na funkcjonowanie"
},
"listLoadError": "Nie udało się załadować epizodów."
},
"coach": {
"reminderSuggestion": {
"title": "Ustawić przypomnienie?",
"accept": "Ustaw przypomnienie",
"dismiss": "Nie teraz",
"stop": "Mierzę wystarczająco",
"accepted": "Przypomnienie ustawione",
"dismissed": "Dobrze, nie zaproponuję tego ponownie",
"stopped": "Rozumiem, przestanę proponować przypomnienia",
"failed": "Nie udało się ustawić, spróbuj ponownie",
"cadence": {
"weightDaily": "Waż się codziennie, mniej więcej o tej samej porze",
"bp722": "Mierz ciśnienie dwa razy dziennie przez tydzień",
"glucoseStructured": "Mierz glukozę według ustrukturyzowanego planu dziennego"
}
},
"suggestedAction": {
"apply": "Dodaj",
"dismiss": "Nie teraz",
"applied": "Dodano",
"dismissed": "Odrzucono",
"failed": "Nie udało się dodać — spróbuj ponownie",
"checkup": {
"title": "Dodać przypomnienie o badaniu?"
},
"note": {
"title": "Zapisać przypomnienie?"
},
"interval": {
"yearly": "Co roku",
"halfYearly": "Co sześć miesięcy",
"quarterly": "Co trzy miesiące",
"monthly": "Co miesiąc"
}
},
"settings": {
"reminderSuggestionsLabel": "Sugestie częstotliwości",
"reminderSuggestionsDescription": "Pozwól Coachowi od czasu do czasu zaproponować oparte na dowodach przypomnienie, aby mierzyć daną wartość bardziej regularnie."
},
"plans": {
"title": "Plany",
"pageDescription": "Plany typu „jeśli… to” uzgodnione w rozmowach z Coachem. Potwierdź propozycję, aby Coach ją zapamiętał.",
"proposalTitle": "Propozycja planu",
"ifThen": "Jeśli {cue}, to {action}.",
"targetPrefix": "Cel: {target}",
"reviewPrefix": "Przegląd: {when}",
"accept": "Przyjmij plan",
"decline": "Odrzuć",
"accepted": "Plan przyjęty — Coach będzie o nim pamiętał.",
"declined": "Propozycja odrzucona.",
"failed": "Nie udało się — spróbuj ponownie.",
"markMet": "Cel osiągnięty",
"abandon": "Zakończ plan",
"remove": "Usuń",
"removeTitle": "Usunąć ten plan?",
"removeBody": "Plan i jego przebieg znikną z historii. Nie da się go przywrócić.",
"removeConfirm": "Usuń plan",
"empty": "Nie ma jeszcze planów. Gdy w rozmowie zobowiążesz się do konkretnej intencji „jeśli… to”, Coach zaproponuje ją tutaj do potwierdzenia.",
"groupProposed": "Propozycje",
"groupActive": "Aktywne",
"groupPast": "Zakończone",
"status": {
"proposed": "Zaproponowany",
"active": "Aktywny",
"met": "Osiągnięty",
"abandoned": "Zakończony",
"review_due": "Przegląd do zrobienia",
"reviewed": "Oceniony"
}
},
"refusal": {
"outOfScope": "Mogę pomóc wyłącznie z danymi zdrowotnymi z Twojego dziennika: pomiarami, lekami, nastrojem, trendami. Na pytania spoza tego zakresu nie odpowiadam.",
"promptInjection": "Zauważyłem polecenia, które próbują obejść moje wytyczne. Jestem Coachem HealthLog i podsumowuję wyłącznie Twoje własne dane zdrowotne — sformułuj pytanie w tych ramach.",
"conversationPoisoned": "Wcześniejsza wiadomość w tej rozmowie zawiera polecenia, które próbują obejść moje wytyczne. Rozpocznij nową rozmowę."
}
},
"safety": {
"floor": {
"bpHighTitle": "Bardzo wysokie ciśnienie",
"bpHighDoctor": "Dwa ostatnie pomiary wyniosły {systolic}/{diastolic} mmHg lub więcej. Odpocznij, zmierz ponownie za kilka minut i jak najszybciej skontaktuj się z lekarzem, jeśli pozostaje tak wysokie.",
"bpHighEmergency": "Dwa ostatnie pomiary wyniosły {systolic}/{diastolic} mmHg lub więcej i zgłosiłeś objawy. W razie bólu w klatce piersiowej, duszności, osłabienia lub zaburzeń widzenia czy mowy natychmiast zadzwoń po pomoc.",
"bpLowTitle": "Niskie ciśnienie",
"bpLowDoctor": "Dwa ostatnie pomiary miały ciśnienie skurczowe poniżej {systolic} mmHg. Jeśli kręci ci się w głowie lub czujesz osłabienie, usiądź lub połóż się i skontaktuj się z lekarzem, jeśli to się utrzymuje.",
"bpLowEmergency": "Dwa ostatnie pomiary miały ciśnienie skurczowe poniżej {systolic} mmHg i zgłosiłeś objawy. Jeśli czujesz, że możesz zemdleć, jesteś zdezorientowany lub masz zimną, lepką skórę, natychmiast zadzwoń po pomoc.",
"glucoseLowTitle": "Niski poziom cukru",
"glucoseLowDoctor": "Dwa ostatnie pomiary były poniżej {threshold} {unit} ({value} {unit}). Przyjmij szybko działające węglowodany, zmierz ponownie za 15 minut i skontaktuj się z lekarzem, jeśli spadki się utrzymują.",
"glucoseLowEmergency": "Dwa ostatnie pomiary były poniżej {threshold} {unit} ({value} {unit}) i zgłosiłeś objawy. Lecz to teraz szybkim cukrem; jeśli nie możesz lub czujesz się bardzo źle, zadzwoń po pomoc.",
"glucoseLowSevereTitle": "Bardzo niski poziom cukru",
"glucoseLowSevereDoctor": "Dwa ostatnie pomiary były poniżej {threshold} {unit} ({value} {unit}). Lecz natychmiast szybko działającymi węglowodanami, zmierz ponownie za 15 minut i skontaktuj się z lekarzem.",
"glucoseLowSevereEmergency": "Dwa ostatnie pomiary były poniżej {threshold} {unit} ({value} {unit}) i zgłosiłeś objawy. Lecz to teraz; jeśli nie utrzymujesz pokarmu lub czujesz się bardzo źle, zadzwoń po pomoc.",
"glucoseHighTitle": "Bardzo wysoki poziom cukru",
"glucoseHighDoctor": "Dwa ostatnie pomiary wyniosły {value} {unit} lub więcej. Zmierz ponownie, nawodnij się i jak najszybciej skontaktuj się z lekarzem, jeśli pozostaje tak wysoki.",
"glucoseHighEmergency": "Dwa ostatnie pomiary wyniosły {value} {unit} lub więcej i zgłosiłeś objawy. W razie wymiotów, przyspieszonego oddechu lub dezorientacji natychmiast zadzwoń po pomoc."
}
},
"version": {
"updateAvailable": {
"title": "Dostępna jest nowa wersja",
"reload": "Załaduj ponownie",
"dismiss": "Odrzuć"
}
},
"mentalHealth": {
"pageTitle": "Dobrostan psychiczny",
"pageDescription": "Cztery zwalidowane, dobrowolne testy — PHQ-9 (nastrój), GAD-7 (lęk), WHO-5 (samopoczucie) i SCI (sen) — obok Twojego dziennika nastroju. Liczy się trend w czasie, a nie pojedynczy wynik.",
"moodLink": "Zobacz historię swojego nastroju",
"attributionLabel": "Źródło",
"attributionShow": "Źródło i licencja: {instrument}",
"choosePrompt": "Wybierz sprawdzenie",
"start": "Rozpocznij",
"back": "Wstecz",
"submit": "Zobacz mój wynik",
"submitting": "Zapisywanie…",
"saved": "Zapisano",
"error": "Coś poszło nie tak. Spróbuj ponownie.",
"instrument": {
"phq9": "PHQ-9 · nastrój",
"gad7": "GAD-7 · lęk",
"who5": "WHO-5 · samopoczucie",
"sci": "SCI · sen"
},
"instrumentSub": {
"phq9": "Przesiew depresji, 9 pytań",
"gad7": "Przesiew lęku, 7 pytań",
"who5": "Test samopoczucia, 5 pytań",
"sci": "Test snu, 8 pytań"
},
"options": {
"0": "Wcale",
"1": "Kilka dni",
"2": "Więcej niż połowę dni",
"3": "Niemal codziennie"
},
"functionalTitle": "Jeśli zaznaczyłeś(-aś) jakiekolwiek problemy, na ile utrudniły Ci one pracę, prowadzenie domu lub kontakty z innymi ludźmi?",
"functional": {
"0": "Wcale nie utrudniły",
"1": "Trochę utrudniły",
"2": "Bardzo utrudniły",
"3": "Skrajnie utrudniły"
},
"functionalOptionalHint": "Opcjonalne — możesz wysłać bez odpowiedzi na to pytanie.",
"result": {
"title": "Twój wynik",
"totalLabel": "Wynik łączny",
"bandLabel": "Zakres dla tego przesiewu",
"takeAnother": "Wykonaj kolejne sprawdzenie"
},
"band": {
"PHQ9": {
"minimal": "Brak / minimalny",
"mild": "Łagodny",
"moderate": "Umiarkowany",
"modSevere": "Umiarkowanie ciężki",
"severe": "Ciężki"
},
"GAD7": {
"minimal": "Brak / minimalny",
"mild": "Łagodny",
"moderate": "Umiarkowany",
"severe": "Ciężki"
},
"WHO5": {
"low": "Niższe samopoczucie",
"good": "Dobre samopoczucie"
},
"SCI": {
"belowThreshold": "Zakres możliwej bezsenności",
"aboveThreshold": "Brak wskazań na bezsenność"
}
},
"history": {
"title": "Twoja historia",
"empty": "Brak sprawdzeń. Twój trend pojawi się tutaj po ukończeniu pierwszego.",
"flaggedBadge": "Pokazano wsparcie",
"chartTitle": "Przebieg wyniku",
"totalLabel": "Wynik",
"bandLabel": "Kategoria"
},
"crisis": {
"title": "Nie musisz mierzyć się z tym sam(a)",
"intro": "Wskazałeś(-aś) myśli, że lepiej byłoby nie żyć lub zrobić sobie krzywdę. Wsparcie jest dostępne już teraz, a sięgnięcie po pomoc to oznaka siły.",
"ifDanger": "Jeśli grozi Ci bezpośrednie niebezpieczeństwo, zadzwoń teraz pod {emergency}.",
"resourcesTitle": "Osoby, które mogą pomóc"
},
"items": {
"phq9": {
"1": "Niewielkie zainteresowanie lub odczuwanie przyjemności z wykonywania czynności",
"2": "Uczucie przygnębienia, depresji lub beznadziejności",
"3": "Kłopoty z zaśnięciem lub utrzymaniem snu albo zbyt długi sen",
"4": "Uczucie zmęczenia lub brak energii",
"5": "Brak apetytu lub przejadanie się",
"6": "Złe myślenie o sobie — poczucie, że jest się nieudacznikiem lub że zawiodło się siebie albo rodzinę",
"7": "Trudności ze skupieniem się, na przykład podczas czytania gazety lub oglądania telewizji",
"8": "Poruszanie się lub mówienie tak wolno, że inni mogli to zauważyć? Albo przeciwnie — niepokój lub pobudzenie powodujące, że poruszasz się znacznie więcej niż zwykle",
"9": "Myśli, że lepiej byłoby umrzeć albo chęć zrobienia sobie w jakiś sposób krzywdy"
},
"gad7": {
"1": "Odczuwanie zdenerwowania, lęku lub napięcia",
"2": "Niemożność przerwania lub kontrolowania zamartwiania się",
"3": "Zbytnie zamartwianie się różnymi sprawami",
"4": "Trudności z odprężeniem się",
"5": "Niepokój tak duży, że trudno usiedzieć w miejscu",
"6": "Łatwe wpadanie w rozdrażnienie lub irytację",
"7": "Odczuwanie lęku, jakby miało się zdarzyć coś strasznego"
},
"who5": {
"1": "Czułam się wesoła/Czułem się wesoły i w dobrym nastroju",
"2": "Czułam się spokojna i odprężona/Czułem się spokojny i odprężony",
"3": "Czułam się aktywna i energiczna/Czułem się aktywny i energiczny",
"4": "Budziłam się z uczuciem świeżości i wypoczęta/Budziłem się z uczuciem świeżości i wypoczęty",
"5": "Moje życie codzienne było wypełnione interesującymi mnie sprawami"
},
"sci": {
"1": "… how long does it take you to fall asleep?",
"2": "… if you then wake up during the night … how long are you awake for in total? (add all the wakenings up)",
"3": "… how many nights a week do you have a problem with your sleep?",
"4": "… how would you rate your sleep quality?",
"5": "… affected your mood, energy, or relationships?",
"6": "… affected your concentration, productivity, or ability to stay awake?",
"7": "… troubled you in general?",
"8": "… how long have you had a problem with your sleep?"
}
},
"crisisResource": {
"telefonSeelsorge": {
"name": "TelefonSeelsorge (całodobowo, bezpłatnie i poufnie)"
},
"nummerGegenKummer": {
"name": "Nummer gegen Kummer (dla młodych ludzi)"
},
"telefonSeelsorgeAt": {
"name": "Telefonseelsorge Österreich (całodobowo, bezpłatnie i poufnie)"
},
"dargeboteneHand": {
"name": "Die Dargebotene Hand (całodobowo, bezpłatnie i poufnie)"
},
"krisenchat": {
"name": "krisenchat (czat całodobowy, dla młodych ludzi)"
},
"findahelpline": {
"name": "Find a Helpline (światowy katalog)"
},
"euEmotionalSupport": {
"name": "Telefon wsparcia emocjonalnego"
},
"lifeline988": {
"name": "988 Suicide & Crisis Lifeline"
},
"crisisTextLine": {
"name": "Crisis Text Line"
}
},
"instrumentDescription": {
"phq9": "Przesiew w kierunku depresji, 9 pytań. Odpowiadaj, myśląc o ostatnich dwóch tygodniach.",
"gad7": "Przesiew w kierunku lęku, 7 pytań. Odpowiadaj, myśląc o ostatnich dwóch tygodniach.",
"who5": "Test samopoczucia, 5 pytań. Odpowiadaj, myśląc o ostatnich dwóch tygodniach; wyższe cyfry oznaczają lepsze samopoczucie.",
"sci": "Test snu, 8 pytań. Większość pytań dotyczy ostatniego miesiąca; wyższe wyniki oznaczają lepszy sen."
},
"progress": "{current} / {total}",
"next": "Dalej",
"lastResult": "Ostatni test",
"lastScore": "Ostatni wynik",
"noResultYet": "Brak check-inów",
"backToList": "Przegląd",
"followUpHint": {
"phq9": "Twój wynik mieści się w zakresie, w którym rozmowa ze specjalistą może pomóc. To życzliwa sugestia, a nie diagnoza.",
"gad7": "Twój wynik mieści się w zakresie, w którym rozmowa ze specjalistą może pomóc. To życzliwa sugestia, a nie diagnoza.",
"who5": "Wynik samopoczucia 50 lub niższy może być wart bliższego spojrzenia. Jeśli chcesz, PHQ-9 na tej stronie przygląda się nastrojowi dokładniej. To życzliwa sugestia, a nie diagnoza.",
"sci": "W badaniu tego kwestionariusza wyniki 16 lub niższe wiązały się z prawdopodobną bezsennością. Jeśli zły sen nadal Ci doskwiera, rozmowa ze specjalistą może pomóc. To nie jest diagnoza."
},
"validatedInEnglishNote": "Ten kwestionariusz jest zwalidowany w języku angielskim; pytania są wyświetlane w angielskim oryginale.",
"who5Options": {
"0": "Nigdy",
"1": "Od czasu do czasu",
"2": "Mniej niż połowę czasu",
"3": "Więcej niż połowę czasu",
"4": "Prawie cały czas",
"5": "Cały czas"
},
"sciOptions": {
"duration": {
"0": "≥ 61 min",
"1": "46–60 min",
"2": "31–45 min",
"3": "16–30 min",
"4": "0–15 min"
},
"nights": {
"0": "5–7",
"1": "4",
"2": "3",
"3": "2",
"4": "0–1"
},
"quality": {
"0": "Very poor",
"1": "Poor",
"2": "Average",
"3": "Good",
"4": "Very good"
},
"impact": {
"0": "Very much",
"1": "Much",
"2": "Somewhat",
"3": "A little",
"4": "Not at all"
},
"problemDuration": {
"0": "> 1 year",
"1": "7–12 months",
"2": "3–6 months",
"3": "1–2 months",
"4": "I don't have a problem / < 1 month"
}
},
"stems": {
"who5": {
"period": "W ciągu ostatnich dwóch tygodni"
},
"sci": {
"night": "Thinking about a typical night in the last month …",
"impact": "Thinking about the past month, to what extent has poor sleep …",
"finally": "Finally …"
}
},
"openDetail": "Pokaż szczegóły",
"historyLoadError": "Nie udało się wczytać historii testów",
"historyLoadErrorHint": "To nie znaczy, że nie masz wyników — nie udało się pobrać listy. Spróbuj ponownie."
},
"records": {
"aiInclusion": {
"cardTitle": "Dostęp AI do profilu",
"cardDescription": "Wybierz części profilu zdrowotnego, z których mogą korzystać Coach i pełne podsumowania.",
"sectionAboutMe": "O mnie",
"sectionConditions": "Choroby przewlekłe",
"sectionAllergies": "Alergie i nietolerancje",
"sectionCoachFocus": "Priorytet Coacha",
"sectionFamilyHistory": "Historia rodzinna",
"sectionSmoking": "Palenie tytoniu",
"sectionAlcohol": "Wzorzec spożycia alkoholu",
"sectionShiftSchedule": "Harmonogram pracy",
"save": "Zapisz dostęp",
"savedToast": "Zapisano dostęp AI do profilu",
"saveError": "Nie udało się zapisać dostępu AI do profilu",
"loadError": "Nie udało się wczytać dostępu AI do profilu"
},
"profileFacts": {
"cardTitle": "Kontekst stylu życia",
"cardDescription": "Zapisz aktualne informacje, które zmieniają interpretację pomiarów zdrowotnych.",
"smokingLabel": "Palenie tytoniu",
"alcoholLabel": "Wzorzec spożycia alkoholu",
"shiftLabel": "Harmonogram pracy",
"notRecorded": "Brak danych",
"unreadable": "Nie udało się odczytać zapisanej wartości",
"save": "Zapisz",
"savedToast": "Zapisano kontekst stylu życia",
"saveError": "Nie udało się zapisać kontekstu stylu życia",
"loadError": "Nie udało się wczytać kontekstu stylu życia",
"remove": "Usuń: {kind}",
"removeConfirmTitle": "Usunąć: {kind}?",
"removeConfirmDescription": "Bieżąca wartość zmieni się na brak danych. Historia z datami zostanie zachowana.",
"removedToast": "Usunięto {kind} z bieżącego kontekstu stylu życia",
"removeError": "Nie udało się usunąć: {kind}",
"historyTitle": "Poprzednie wartości",
"to": "do",
"values": {
"SMOKING_STATUS": {
"NEVER": "Nigdy nie pali",
"FORMER": "Były palacz",
"CURRENT": "Obecnie pali"
},
"ALCOHOL_PATTERN": {
"NONE": "Nie spożywa",
"OCCASIONAL": "Okazjonalnie",
"WEEKLY": "Co tydzień",
"MOST_DAYS": "Przez większość dni"
},
"SHIFT_SCHEDULE": {
"NONE": "Bez pracy zmianowej",
"FIXED_SHIFT": "Stała zmiana",
"ROTATING": "Zmiany rotacyjne"
}
}
},
"disclaimer": "To Twoje własne wpisy, a nie diagnoza lekarska. HealthLog nie diagnozuje, nie leczy i ich nie interpretuje.",
"allergies": {
"cardTitle": "Alergie i nietolerancje",
"cardDescription": "Substancje, na które reagujesz, wraz z reakcją i jej nasileniem.",
"description": "Zapisz alergię lub nietolerancję.",
"add": "Dodaj alergię",
"addFirst": "Dodaj swoją pierwszą alergię",
"addTitle": "Dodaj alergię",
"editTitle": "Edytuj alergię",
"formDescription": "Substancja jest przechowywana jako tekst; reakcja i notatka są szyfrowane.",
"emptyTitle": "Brak zapisanych alergii",
"emptyDescription": "Dodaj substancje, na które reagujesz, i ich reakcje.",
"loadError": "Nie udało się wczytać Twoich alergii.",
"deletedToast": "Alergia usunięta",
"deleteError": "Nie udało się usunąć alergii.",
"deleteConfirmTitle": "Usunąć tę alergię?",
"deleteConfirmDescription": "To usuwa wpis. Nie można tego cofnąć.",
"category": {
"FOOD": "Pokarm",
"MEDICATION": "Lek",
"ENVIRONMENT": "Środowisko",
"BIOLOGIC": "Biologiczny",
"OTHER": "Inne"
},
"type": {
"ALLERGY": "Alergia",
"INTOLERANCE": "Nietolerancja"
},
"severity": {
"NONE": "Nieoceniona",
"MILD": "Łagodna",
"MODERATE": "Umiarkowana",
"SEVERE": "Ciężka"
},
"status": {
"ACTIVE": "Aktywna",
"INACTIVE": "Nieaktywna",
"RESOLVED": "Ustąpiła"
},
"form": {
"substance": "Substancja",
"substancePlaceholder": "np. Penicylina, Orzeszki ziemne",
"category": "Kategoria",
"type": "Typ",
"severity": "Nasilenie",
"status": "Status",
"onset": "Pierwszy raz zauważono",
"reaction": "Reakcja",
"reactionPlaceholder": "np. pokrzywka, obrzęk, anafilaksja",
"note": "Notatka",
"notePlaceholder": "Cokolwiek innego, co warto zapamiętać",
"requiredError": "Podaj substancję.",
"savedToast": "Alergia zapisana",
"updatedToast": "Alergia zaktualizowana",
"saveError": "Nie udało się zapisać alergii."
}
},
"family": {
"cardTitle": "Wywiad rodzinny",
"cardDescription": "Choroby u Twoich krewnych, jeden wpis na chorobę.",
"description": "Zapisz chorobę u krewnego.",
"add": "Dodaj wpis",
"addFirst": "Dodaj swój pierwszy wpis",
"addTitle": "Dodaj wywiad rodzinny",
"editTitle": "Edytuj wywiad rodzinny",
"formDescription": "Pokrewieństwo i choroba są przechowywane jako tekst; notatka jest szyfrowana.",
"emptyTitle": "Brak wywiadu rodzinnego",
"emptyDescription": "Dodaj choroby występujące w Twojej rodzinie.",
"loadError": "Nie udało się wczytać Twojego wywiadu rodzinnego.",
"deletedToast": "Wpis usunięty",
"deleteError": "Nie udało się usunąć wpisu.",
"deleteConfirmTitle": "Usunąć ten wpis?",
"deleteConfirmDescription": "To usuwa wpis. Nie można tego cofnąć.",
"ageAtOnsetShort": "Wiek {age}",
"relationship": {
"MOTHER": "Matka",
"FATHER": "Ojciec",
"SISTER": "Siostra",
"BROTHER": "Brat",
"DAUGHTER": "Córka",
"SON": "Syn",
"GRANDMOTHER_MATERNAL": "Babcia (ze strony matki)",
"GRANDFATHER_MATERNAL": "Dziadek (ze strony matki)",
"GRANDMOTHER_PATERNAL": "Babcia (ze strony ojca)",
"GRANDFATHER_PATERNAL": "Dziadek (ze strony ojca)",
"AUNT": "Ciotka",
"UNCLE": "Wujek",
"COUSIN": "Kuzyn/kuzynka",
"HALF_SIBLING": "Przyrodnie rodzeństwo",
"OTHER": "Inny krewny"
},
"form": {
"relationship": "Krewny",
"condition": "Choroba",
"conditionPlaceholder": "np. Cukrzyca typu 2, Rak piersi",
"ageAtOnset": "Wiek zachorowania",
"ageAtOnsetPlaceholder": "np. 55",
"note": "Notatka",
"notePlaceholder": "Cokolwiek innego, co warto zapamiętać",
"requiredError": "Podaj chorobę.",
"ageError": "Podaj wiek od 0 do 120.",
"savedToast": "Wpis zapisany",
"updatedToast": "Wpis zaktualizowany",
"saveError": "Nie udało się zapisać wpisu."
}
},
"conditions": {
"cardTitle": "Choroby przewlekłe",
"cardDescription": "Choroby przewlekłe i to, na co Coach ma zwracać uwagę.",
"conditionsLabel": "Choroby przewlekłe",
"focusLabel": "Na co zwraca uwagę Coach",
"loadError": "Nie udało się wczytać Twoich chorób.",
"savedToast": "Choroby zapisane.",
"saveError": "Nie udało się zapisać. Spróbuj ponownie."
}
},
"environment": {
"fields": {
"tempMean": "Temperatura dzienna",
"tempMin": "Minimum nocne",
"sunshine": "Nasłonecznienie",
"daylight": "Światło dzienne",
"precip": "Opady",
"pressureMean": "Ciśnienie atmosferyczne",
"pressureDelta": "Wahanie ciśnienia"
}
},
"documents": {
"title": "Dokumenty",
"subtitle": "Każde pismo, wynik i skan w jednym przeszukiwalnym miejscu — zaszyfrowane w spoczynku.",
"pageUpload": "Prześlij",
"kind": {
"DOCTOR_REPORT": "Raport lekarski",
"DISCHARGE_LETTER": "Wypis ze szpitala",
"OTHER": "Inne",
"LAB_RESULT": "Wynik laboratoryjny",
"IMAGING": "Obrazowanie",
"PRESCRIPTION": "Recepta",
"REFERRAL": "Skierowanie",
"INSURANCE": "Ubezpieczenie",
"VACCINATION": "Szczepienie"
},
"filter": {
"searchLabel": "Szukaj dokumentów",
"searchPlaceholder": "Szukaj tytułu lub nazwy pliku…",
"typeGroup": "Typ dokumentu",
"conditionGroup": "Schorzenie",
"yearGroup": "Rok",
"clear": "Wyczyść filtry",
"typeAll": "Wszystkie typy",
"typeCount": "{count} typy",
"conditionAll": "Wszystkie schorzenia",
"yearAll": "Wszystkie lata"
},
"card": {
"untitled": "Dokument bez tytułu",
"selectLabel": "Zaznacz {title}",
"openLabel": "Otwórz {title}",
"attachmentBadge": "Tylko do pobrania",
"uploading": "Przesyłanie…",
"dismissFailed": "Odrzuć nieudane przesyłanie",
"processing": "Przetwarzanie…",
"ready": "Gotowe",
"deleteKey": "Del"
},
"error": {
"fileTooLarge": "Ten plik przekracza limit {maxSize}.",
"quotaExceeded": "Miejsce jest pełne — użyto {used} z {quota}.",
"unsupportedType": "Ten typ pliku nie jest obsługiwany.",
"purged": "Ten dokument został trwale usunięty i nie można go przywrócić.",
"duplicateExists": "Identyczny dokument jest już zapisany.",
"rateLimited": "Zbyt wiele przesyłań — spróbuj ponownie za kilka minut.",
"generic": "Przesyłanie nie powiodło się. Spróbuj ponownie."
},
"toast": {
"duplicate": "Już zapisano — istniejący dokument został wyróżniony.",
"deleted": "Dokument usunięty.",
"restoreFailed": "Nie udało się przywrócić dokumentu."
},
"timeline": {
"loadingMore": "Wczytywanie…",
"listLabel": "Oś czasu dokumentów"
},
"upload": {
"browse": "Wybierz pliki",
"quotaAlmostFull": "Miejsce prawie pełne",
"quotaUsed": "Użyto {used} z {quota}",
"queuedAnnouncement": "Dodano pliki do kolejki przesyłania: {count}"
},
"selection": {
"count": "Zaznaczono: {count}",
"clear": "Wyczyść zaznaczenie"
},
"list": {
"loadError": "Nie udało się wczytać Twoich dokumentów."
},
"empty": {
"title": "Twój sejf dokumentów jest pusty",
"description": "Przechowuj pisma lekarskie, wyniki laboratoryjne, obrazowanie, recepty i zaświadczenia o szczepieniach — zaszyfrowane i przeszukiwalne według typu, schorzenia i roku.",
"action": "Prześlij pierwszy dokument",
"noMatchesTitle": "Brak pasujących dokumentów",
"noMatchesDescription": "Nic nie pasuje do bieżącego wyszukiwania i filtrów."
},
"detail": {
"title": "Szczegóły dokumentu",
"summary": {
"title": "Podsumowanie",
"pending": "Podsumowanie jest przygotowywane.",
"none": "Dla tego dokumentu nie wygenerowano jeszcze podsumowania.",
"withheld": "Podsumowanie zostało wygenerowane, ale nie przeszło kontroli bezpieczeństwa, więc nie jest wyświetlane. Możesz spróbować ponownie lub przeczytać sam dokument.",
"unavailable": "Nie udało się wygenerować podsumowania dla tego dokumentu.",
"generate": "Wygeneruj podsumowanie",
"generating": "Generowanie…"
},
"loadError": "Nie udało się wczytać tego dokumentu.",
"saveError": "Nie udało się zapisać zmiany.",
"deleteError": "Nie udało się usunąć dokumentu.",
"download": "Pobierz",
"delete": "Usuń",
"titleLabel": "Tytuł",
"titlePlaceholder": "Dodaj tytuł",
"kindLabel": "Typ",
"dateLabel": "Data dokumentu",
"conditionsLabel": "Powiązane schorzenia",
"linkCondition": "Powiąż",
"noConditions": "Niepowiązany ze schorzeniem",
"previewUnavailable": "Brak podglądu dla tego typu pliku",
"uploadedMeta": "Dodano {date} · {size}",
"share": "Udostępnij",
"labValuesLink": "Zobacz {count} wyników laboratoryjnych"
},
"dropOverlay": {
"title": "Upuść pliki, aby je przesłać",
"hint": "Są zapisywane w Twoich dokumentach w postaci zaszyfrowanej"
},
"bulk": {
"barLabel": "Akcje dla zaznaczonych dokumentów",
"setKind": "Zmień typ",
"linkCondition": "Powiąż ze schorzeniem",
"delete": "Usuń",
"updated": "Zaktualizowano dokumenty: {count}",
"deleted": "Usunięto dokumenty: {count}",
"restored": "Przywrócono dokumenty: {count}",
"partialFailure": "Nie udało się zaktualizować {failed} z {total}",
"failed": "Nie udało się wykonać akcji",
"share": "Udostępnij",
"shareTooMany": "Link do udostępniania obejmuje maksymalnie {max} dokumentów. Odznacz kilka i spróbuj ponownie."
},
"episodeCard": {
"title": "Dokumenty",
"link": "Powiąż",
"upload": "Prześlij",
"viewAll": "Pokaż wszystkie",
"emptyLine": "Brak dokumentów powiązanych z tym schorzeniem.",
"loadError": "Nie udało się wczytać połączonych dokumentów"
},
"linkPicker": {
"title": "Powiąż dokumenty",
"description": "Wybierz dokumenty z archiwum, które dotyczą tego schorzenia.",
"searchPlaceholder": "Szukaj po tytule lub nazwie pliku",
"empty": "Nie znaleziono dokumentów."
},
"assist": {
"suggest": "Zaproponuj szczegóły",
"suggesting": "Odczytywanie…",
"suggestedTitle": "Sugerowany tytuł",
"suggestedKind": "Sugerowany typ",
"suggestedDate": "Sugerowana data",
"apply": "Zastosuj",
"useTitle": "Użyj tytułu",
"applied": "Zastosowano",
"dismiss": "Odrzuć",
"empty": "Nie udało się nic odczytać z tego dokumentu.",
"unavailableBody": "Skonfiguruj dostawcę AI, aby zaproponować tytuł, typ i datę.",
"unavailableLocalOcr": "Włącz lokalne OCR w ustawieniach AI, aby odczytywać obrazy na tym urządzeniu.",
"unavailableAction": "Otwórz ustawienia AI",
"errorGeneric": "Nie udało się odczytać dokumentu. Spróbuj ponownie.",
"errorOcr": "Nie udało się odczytać tekstu z tego obrazu.",
"errorRateLimited": "Zbyt wiele żądań AI — spróbuj za kilka minut.",
"errorBudget": "Twój dzisiejszy budżet AI został wyczerpany.",
"errorPdfNeedsVision": "Skanowanie plików PDF wymaga dostawcy wizji Claude.",
"errorFileType": "Tego typu pliku nie można odczytać.",
"errorLocalOcrDisabled": "Najpierw włącz lokalne OCR w ustawieniach AI.",
"errorProvider": "Nie skonfigurowano dostawcy AI do tego celu.",
"errorTextImageOnly": "Lokalne OCR odczytuje tylko obrazy, nie ten plik."
},
"summary": {
"summarise": "Podsumuj",
"showText": "Pokaż wyodrębniony tekst",
"summaryTitle": "Podsumowanie",
"textTitle": "Wyodrębniony tekst",
"close": "Ukryj"
},
"ai": {
"readDone": "AI odczytało Twój dokument.",
"read": "Odczytaj z AI",
"reread": "Odczytaj ponownie",
"reading": "Odczytywanie…"
},
"contentIndex": {
"indexPrompt": "Udostępnij treść dokumentów do wyszukiwania.",
"indexAll": "Zindeksuj wszystko do wyszukiwania",
"indexAllPending": "Uruchamianie…",
"indexAllQueued": "Indeksowanie {count} dokumentu/ów w tle.",
"indexAllNothing": "Wszystko jest już zindeksowane.",
"indexAllError": "Nie udało się uruchomić indeksowania."
},
"share": {
"title": "Udostępnij ten dokument",
"multiTitle": "Udostępnij te dokumenty",
"multiLabel": "{count} dokumentów",
"description": "Utwórz link tylko do odczytu dla lekarza z dołączonym tym dokumentem. Link i hasło pojawią się tylko raz."
},
"chat": {
"title": "Porozmawiaj o tym dokumencie",
"openAria": "Zapytaj Coacha o ten dokument",
"openButton": "Zapytaj Coacha"
}
},
"selfDescription": {
"dataPosture": "HealthLog jest hostowany samodzielnie: Twoje dane zdrowotne pozostają na Twojej instancji, zaszyfrowane w spoczynku. Funkcje AI korzystają z dostarczonego przez Ciebie klucza dostawcy lub modelu lokalnego, więc nic nie opuszcza Twojej instancji poza skonfigurowanym dostawcą i nie ma analityki firm trzecich na Twoich danych zdrowotnych."
},
"customMetrics": {
"sectionTitle": "Metryki własne",
"sectionSubtitle": "Pomiary, które sam definiujesz i śledzisz.",
"add": "Dodaj metrykę własną",
"addValue": "Dodaj wartość",
"defineTitle": "Zdefiniuj metrykę własną",
"defineDescription": "Nazwij pomiar, ustaw jego jednostkę i opcjonalnie zakres docelowy.",
"editTitle": "Edytuj metrykę własną",
"edit": "Edytuj",
"delete": "Usuń",
"deleteConfirmTitle": "Usunąć tę metrykę własną?",
"deleteConfirmDescription": "Metryka zostanie usunięta z listy. Zapisane wartości pozostaną.",
"deletedToast": "Usunięto metrykę własną",
"deleteError": "Nie udało się usunąć metryki własnej",
"showAllValues": "Pokaż wszystkie wartości",
"emptyDescription": "Zdefiniuj własne pomiary, aby je śledzić i przedstawiać na wykresie.",
"noValuesYet": "Brak wartości",
"loadError": "Nie udało się wczytać metryk własnych",
"loadMore": "Wczytaj więcej wartości",
"showingLatestOf": "Wyświetlono najnowsze {shown} z {total}",
"backToMeasurements": "Powrót do pomiarów",
"form": {
"name": "Nazwa",
"namePlaceholder": "np. Siła chwytu rano",
"unit": "Jednostka",
"unitPlaceholder": "np. kg",
"decimals": "Miejsca dziesiętne",
"decimalsPlaceholder": "np. 1",
"targetLow": "Cel dolny",
"targetLowPlaceholder": "Dolna granica",
"targetHigh": "Cel górny",
"targetHighPlaceholder": "Górna granica",
"description": "Opis",
"descriptionPlaceholder": "Co to mierzy (opcjonalnie)",
"targetHint": "Zakres docelowy jest opcjonalny i jest rysowany jako pasmo na wykresie.",
"correlationEnabled": "Używaj w analizie korelacji",
"correlationEnabledHint": "Dodaje tę metrykę jako ograniczony dzienny kanał zachowania. Domyślnie jest wyłączona.",
"requiredError": "Nazwa i jednostka są wymagane",
"rangeOrderError": "Cel dolny nie może przekraczać celu górnego",
"save": "Zapisz",
"savedToast": "Zapisano metrykę własną",
"updatedToast": "Zaktualizowano metrykę własną",
"saveError": "Nie udało się zapisać metryki własnej"
},
"entry": {
"value": "Wartość",
"measuredAt": "Data",
"note": "Notatka",
"addDescription": "Zapisz wartość dla tej metryki.",
"edit": "Edytuj wartość",
"editTitle": "Edytuj wartość",
"editDescription": "Zaktualizuj wartość, datę lub notatkę.",
"delete": "Usuń wartość",
"deleteConfirmTitle": "Usunąć tę wartość?",
"deleteConfirmDescription": "Ta wartość zostanie trwale usunięta.",
"valueError": "Podaj wartość liczbową",
"timestampError": "Podaj prawidłową datę",
"savedToast": "Zapisano wartość",
"saveError": "Nie udało się zapisać wartości",
"editedToast": "Zaktualizowano wartość",
"editError": "Nie udało się zaktualizować wartości",
"deletedToast": "Usunięto wartość",
"deleteError": "Nie udało się usunąć wartości"
},
"chart": {
"empty": "Brak wartości w tym zakresie",
"valueLabel": "Wartość",
"range": {
"30": "30d",
"90": "90d",
"365": "1r",
"all": "Wszystko"
}
},
"detail": {
"title": "Metryka własna",
"genericDescription": "Pomiar, który śledzisz. Dodawaj wartości, aby obserwować go w czasie.",
"emptyTitle": "Brak wartości",
"emptyDescription": "Dodaj pierwszą wartość, aby zacząć przedstawiać tę metrykę na wykresie.",
"valuesTitle": "{metric} — wszystkie wartości",
"valuesDescription": "Wszystkie zapisane wartości tej metryki.",
"backToMetric": "Powrót do {metric}"
}
},
"nutrients": {
"names": {
"vitamin_a": "Witamina A",
"thiamin": "Tiamina (B1)",
"riboflavin": "Ryboflawina (B2)",
"niacin": "Niacyna (B3)",
"pantothenic_acid": "Kwas pantotenowy (B5)",
"vitamin_b6": "Witamina B6",
"biotin": "Biotyna (B7)",
"folate": "Foliany (B9)",
"vitamin_b12": "Witamina B12",
"vitamin_c": "Witamina C",
"vitamin_d": "Witamina D",
"vitamin_e": "Witamina E",
"vitamin_k": "Witamina K",
"calcium": "Wapń",
"iron": "Żelazo",
"magnesium": "Magnez",
"phosphorus": "Fosfor",
"zinc": "Cynk",
"copper": "Miedź",
"manganese": "Mangan",
"selenium": "Selen",
"chromium": "Chrom",
"molybdenum": "Molibden",
"iodine": "Jod",
"water": "Woda",
"caffeine": "Kofeina"
},
"page": {
"title": "Spożycie składników odżywczych",
"description": "Nawodnienie oraz spożycie witamin/minerałów zsynchronizowane z aplikacji zdrowia telefonu, plus ręczne wpisy wody.",
"moduleOffTitle": "Śledzenie składników odżywczych jest wyłączone",
"moduleOffDescription": "Włącz moduł składników odżywczych, aby zobaczyć tu nawodnienie i spożycie witamin/minerałów. Zsynchronizowane dane staną się częścią zapisu, który może odczytać Coach.",
"moduleOffCta": "Włącz składniki odżywcze",
"emptyTitle": "Brak jeszcze danych o składnikach odżywczych",
"emptyDescription": "Dane pochodzą z synchronizacji aplikacji zdrowia telefonu lub z ręcznego wpisu wody.",
"loadError": "Nie udało się wczytać danych o składnikach odżywczych",
"lastAttemptTitle": "Synchronizacja dotarła, ale nic nie udało się zapisać",
"lastAttemptAt": "Ostatnia próba: {date}",
"lastAttemptReason": {
"unitMismatch": "Otrzymane wartości nie pasowały do jednostek, których ta aplikacja oczekuje dla tych składników odżywczych, więc nie udało się ich zapisać.",
"valueOutOfRange": "Otrzymane ilości były wyższe, niż ta aplikacja może wiarygodnie zapisać, więc nie udało się ich zapisać.",
"dayInvalid": "Wpisy zawierały datę, której serwer nie mógł zaakceptować. Może się to zdarzyć, gdy zegar lub strefa czasowa po stronie wysyłającej są nieprawidłowe — warto to sprawdzić.",
"upsertFailed": "Te wpisy dotarły do serwera, ale problem po naszej stronie uniemożliwił ich zapisanie. Nie musisz nic robić.",
"unknown": "Te wpisy dotarły, ale nie udało się ich zapisać."
}
},
"hydration": {
"referenceMeta": "Zalecane spożycie {value} {unit}/dzień · EFSA",
"quickAddTitle": "Dodaj wodę",
"quickAddCustomLabel": "Własna ilość (mL)",
"quickAddCustomPlaceholder": "250",
"quickAddSubmit": "Dodaj",
"quickAddError": "Nie udało się zapisać — spróbuj ponownie.",
"quickAddSuccess": "Dodano {amount} mL wody.",
"editTotal": "Edytuj dzisiejszą sumę"
},
"caffeine": {
"ceilingMeta": "Bezpieczny limit {value} {unit}/dzień · EFSA"
},
"micronutrients": {
"title": "Witaminy i minerały",
"rowMeta": "{days} z {window} dni · zalecane {value} {unit} (EFSA)",
"rowMetaNoRef": "{days} z {window} dni",
"footer": "{tracked} z {total} śledzonych mikroskładników ma dane w tym okresie.",
"emptyTitle": "Brak jeszcze zsynchronizowanych danych o mikroskładnikach",
"loadError": "Nie udało się wczytać danych o składnikach odżywczych"
},
"sparseNote": "Niska wartość zwykle oznacza tu rzadkie zapisywanie, a nie niedobór — dzienne sumy z Apple Health odzwierciedlają to, co zapisały twoje aplikacje, a nie całkowite spożycie w diecie."
},
"daily": {
"line": {
"score": "Twój dzisiejszy wynik zdrowia to {score}.",
"allClear": "Dziś nic nie wymaga Twojej uwagi."
},
"push": {
"title": "Twoje poranne podsumowanie",
"bodyProvisional": "{line} · Brakuje jeszcze snu z zeszłej nocy."
},
"item": {
"doseWindow": {
"title": "Lek do przyjęcia",
"body": "Dawka wkrótce do przyjęcia.",
"bodyNamed": "{name} wkrótce do przyjęcia.",
"overdueTitle": "Lek zaległy",
"overdueBody": "Dawka jest zaległa.",
"overdueBodyNamed": "{name} jest zaległy."
},
"preventiveCare": {
"title": "Badanie do wykonania",
"body": "{label} jest do wykonania.",
"bodyMany": "Do wykonania jest {count} badań."
},
"syncIssue": {
"title": "Synchronizacja wymaga uwagi",
"body": "{integration} się nie synchronizuje — połącz ponownie, aby dane były aktualne."
},
"coachCheckin": {
"title": "Czas przyjrzeć się planowi",
"body": "Minął mniej więcej tydzień, odkąd ustaliłeś ten plan — zachowaj go, dostosuj lub odpuść. Bez presji.",
"bodyPlan": "Około tygodnia temu postanowiłeś: „{plan}”. Zachowaj to, dostosuj lub odpuść — bez presji.",
"adjustPrompt": "Chciałbym dostosować mój plan kontrolny.",
"adjustPromptPlan": "Chciałbym dostosować ten plan: „{plan}”"
},
"tensionWindow": {
"title": "Może chwila napięcia dzisiaj",
"body": {
"morning": "Twoje tętno przez dłuższą chwilę rano utrzymywało się powyżej wartości spoczynkowej, gdy byłeś w bezruchu — możliwe napięcie.",
"afternoon": "Twoje tętno przez dłuższą chwilę po południu utrzymywało się powyżej wartości spoczynkowej, gdy byłeś w bezruchu — możliwe napięcie.",
"evening": "Twoje tętno przez dłuższą chwilę wieczorem utrzymywało się powyżej wartości spoczynkowej, gdy byłeś w bezruchu — możliwe napięcie.",
"night": "Twoje tętno przez dłuższą chwilę w nocy utrzymywało się powyżej wartości spoczynkowej, gdy byłeś w bezruchu — możliwe napięcie."
}
},
"ecgNewRecording": {
"title": "Nowy zapis EKG",
"body": "Twoje urządzenie zarejestrowało nowe EKG — gotowe do podglądu.",
"bodyVerdict": "Twoje urządzenie zarejestrowało nowe EKG i zgłosiło: {verdict}.",
"verdict": {
"irregular": "możliwy nieregularny rytm",
"notDetected": "brak nieregularnego rytmu",
"inconclusive": "wynik niejednoznaczny"
}
},
"sameTimeBaseline": {
"title": {
"below": "Poniżej swojego zwykłego tempa",
"above": "Powyżej swojego zwykłego tempa"
},
"body": {
"below": "Do {time} masz {today} kroków. W zwykły dzień o tej porze jesteś w okolicach {typical}.",
"above": "Do {time} masz {today} kroków, powyżej zwykłych {typical} o tej porze."
}
}
},
"action": {
"logDose": "Zapisz dawkę",
"reconnect": "Połącz ponownie",
"viewCheckups": "Zobacz badania",
"checkinKeep": "Zachowaj",
"checkinAdjust": "Dostosuj",
"checkinLetGo": "Odpuść",
"viewMilestone": "Zobacz",
"viewPulse": "Zobacz tętno",
"viewEcg": "Zobacz zapis",
"viewSteps": "Zobacz kroki"
},
"today": {
"scoreLabel": "Wynik zdrowia",
"deltaVsBaseline": "{delta} wzgl. Twojej wartości bazowej",
"deltaFlat": "Zgodnie z Twoją wartością bazową",
"sleepPending": "Sen z ostatniej nocy jeszcze nie dotarł — dzisiejszy odczyt jest wstępny.",
"worthALook": "Warto sprawdzić",
"allClear": "Dziś nic nie wymaga Twojej uwagi.",
"ringLink": "Otwórz szczegóły: {metric}"
},
"milestone": {
"metric": {
"restingHeartRate": "tętno spoczynkowe",
"heartRateVariability": "zmienność rytmu serca",
"respiratoryRate": "częstość oddechów",
"weight": "waga",
"generic": "ta wartość"
},
"record": {
"title": "Nowy rekord: {metric}",
"body": "Dziś osiągnięto Twój najlepszy wynik dla {metric}. Spokojnie odnotowane, nic nie musisz robić."
},
"returnToBaseline": {
"title": "Znów w Twoim zakresie: {metric}",
"body": "Twoja {metric} wróciła do zwykłego zakresu. Cokolwiek to było, minęło."
},
"sustainedInRange": {
"week1": {
"title": "Tydzień w zakresie",
"body": "Twoja {metric} od tygodnia mieści się w zwykłym zakresie. Ładnie i spokojnie."
},
"week2": {
"title": "Dwa tygodnie w zakresie",
"body": "Twoja {metric} od dwóch tygodni mieści się w zwykłym zakresie. Spokojnie i stabilnie."
},
"week3": {
"title": "Trzy tygodnie w zakresie",
"body": "Trzy tygodnie z {metric} w zwykłym zakresie. Naprawdę spokojny odcinek."
},
"week4": {
"title": "Miesiąc w zakresie",
"body": "Cały miesiąc z {metric} w zwykłym zakresie. Wspaniale stabilnie."
}
}
}
},
"reportSelection": {
"leafAnamnesis": "Profil zdrowotny",
"groupIdentity": "Dane osobowe",
"groupVitals": "Parametry życiowe",
"groupCardio": "Serce i krążenie",
"groupBody": "Wymiary ciała",
"groupSleepRecovery": "Sen i regeneracja",
"groupActivity": "Aktywność",
"groupMobility": "Mobilność i chód",
"groupEnvironment": "Otoczenie",
"groupGlucose": "Poziom glukozy",
"groupLabs": "Wyniki badań",
"groupMedications": "Leki",
"groupHistory": "Choroby i alergie",
"groupSensitive": "Dane wrażliwe",
"leafPatientIdentity": "Imię, data urodzenia, płeć, wzrost",
"leafInsurance": "Ubezpieczyciel i numer ubezpieczenia",
"leafGlucosePanel": "Panel glukozy (czas w zakresie, GMI, zmienność)",
"leafLabResults": "Wyniki badań",
"leafMedicationList": "Lista leków",
"leafMedicationAdministrations": "Każda zarejestrowana dawka",
"leafMedicationCompliance": "Przestrzeganie zaleceń",
"leafGlp1Therapy": "Terapia GLP-1 (historia dawek, działania niepożądane)",
"leafAllergies": "Alergie i nietolerancje",
"leafIllnessEpisodes": "Epizody chorobowe",
"leafFamilyHistory": "Wywiad rodzinny",
"leafMood": "Nastrój",
"leafCycle": "Cykl menstruacyjny",
"templateStandard": "Standardowy raport lekarski",
"applyStandard": "Zastosuj {template}",
"standardHint": "Jedno kliknięcie wypełnia to, czego zwykle wymaga wizyta u lekarza rodzinnego. Każdą pozycję można potem zmienić.",
"groupCount": "{on}/{total}",
"groupDisclosure": "Pokaż pozycje w {group}",
"sensitiveHint": "Nic tu nie jest wstępnie wybrane. Wybierz każdą pozycję samodzielnie.",
"scopeNone": "Nic jeszcze nie wybrano. Wybierz, co ma się znaleźć w dokumencie, albo zastosuj raport standardowy.",
"scopeCount": "{count} pozycji z {groups} obszarów",
"scopeSensitive": "w tym {names}"
},
"recordSharing": {
"banner": {
"viewing": "Jesteś w karcie użytkownika {name}",
"readOnly": "Możesz ją czytać, nie zmieniać.",
"canAdd": "Możesz coś dodać, ale nie zmieniać ani usuwać tego, co już jest.",
"leave": "Wróć do mojej karty"
},
"switcher": {
"label": "Otwórz kartę",
"ownRecord": "Moja własna karta",
"readOnly": "Tylko odczyt",
"canWrite": "Może dodawać wpisy"
},
"switch": {
"failed": "Nie udało się otworzyć tej karty. Spróbuj ponownie.",
"noLongerAvailable": "Ta karta nie jest już dla ciebie udostępniona."
},
"unavailable": {
"title": "Nie należy do udostępnionego dostępu",
"description": "Udostępniana jest sama karta zdrowia. Ustawienia, połączone usługi, powiadomienia i funkcje SI pozostają przy osobie, do której należy konto.",
"leave": "Wróć do mojej karty"
},
"state": {
"active": "Aktywny",
"pending": "Czeka na akceptację",
"expired": "Wygasł",
"revoked": "Zakończony"
},
"row": {
"readOnly": "Może czytać kartę",
"canWrite": "Może czytać i dodawać wpisy",
"canManage": "Może czytać kartotekę, dodawać wpisy oraz zmieniać i usuwać to, co w niej jest",
"entireRecord": "Obejmuje całą kartotekę",
"sections": "Obejmuje: {sections}",
"noSections": "Nie obejmuje niczego: ten dostęp nie otwiera żadnej części kartoteki",
"invited": "Zaproszono",
"accepted": "Zaakceptowano",
"expires": "Wygasa",
"lastUsed": "Ostatnio otwarto",
"neverUsed": "nigdy",
"endedByYou": "Zakończone przez ciebie",
"endedByOwner": "Wycofane",
"handedBack": "Zwrócone",
"ended": "Zakończone"
},
"invite": {
"title": "Zaproś kogoś",
"description": "Nic nie jest udostępniane, dopóki ta osoba nie zaakceptuje. Do tego czasu zaproszenie leży w jej ustawieniach i nic jej nie daje.",
"identifierLabel": "Nazwa użytkownika lub e-mail",
"identifierPlaceholder": "Nazwa, którą się loguje",
"identifierHint": "Ta osoba potrzebuje konta na tej instancji. Nie można wysłać zaproszenia na niezarejestrowany adres.",
"accessLegend": "Co ta osoba może robić",
"accessReadLabel": "Może przeglądać",
"accessReadCapability": "Może czytać wszystko, co ta karta udostępnia. Nie może niczego dodać ani zmienić.",
"accessWriteLabel": "Może przeglądać i dodawać",
"accessWriteCapability": "Może też dodawać do kartoteki: pomiary, wyniki badań, nowy analit do śledzenia, wpis o chorobie, działanie niepożądane leku, nowy lek oraz oznaczyć dawkę jako przyjętą lub pominiętą. Nie może niczego edytować ani usuwać, nawet tego, co sama dodała, ani odłożyć żadnego z Twoich przypomnień. Tylko Ty możesz.",
"accessManageLabel": "Może zarządzać",
"accessManageCapability": "Może dodawać, zmieniać i usuwać wpisy w Twojej kartotece, także te, które wprowadziłeś samodzielnie, oraz czytać wygenerowane na jej podstawie analizy. Nie może zmienić Twojego logowania, ustawień bezpieczeństwa, połączonych usług ani tego, kto jeszcze ma dostęp. Możesz to zakończyć w dowolnym momencie.",
"manageStepUpNote": "Przy takim zaproszeniu prosimy o drugi składnik logowania, dlatego można to zrobić tylko w przeglądarce.",
"scopeLegend": "Co ta osoba może otworzyć",
"scopeAllLabel": "Cała kartoteka",
"scopeAllCapability": "Każda jej część, tak jak udostępnianie działało do tej pory.",
"scopeSomeLabel": "Tylko wybrane przez Ciebie sekcje",
"scopeSomeCapability": "Wszystko, czego nie wybierzesz, pozostaje dla niej zamknięte.",
"scopeManageNote": "Dostęp zarządzający zawsze obejmuje całą kartotekę.",
"scopeLeakNote": "Sekcja może wspominać o reszcie Twojego zdrowia w notatkach i nazwach. Udostępnienie sekcji oznacza udostępnienie wszystkiego, co w niej zapisano.",
"scopeAggregateNote": "Przegląd na pulpicie, wynik zdrowia i dzienne podsumowanie pojawiają się tylko wtedy, gdy udostępniona jest cała kartoteka.",
"scopeDocumentsNote": "Dokument może zawierać wszystko. Udostępnij tę sekcję tylko wtedy, gdy ta osoba może przeczytać całość.",
"scopeEmptyHint": "Wybierz co najmniej jedną sekcję albo wróć do udostępniania całej kartoteki.",
"expiresLabel": "Dostęp kończy się (opcjonalnie)",
"expiresHint": "Zostaw puste, aby dostęp trwał, dopóki ktoś go nie zakończy. Data jest sprawdzana przy każdym żądaniu, więc dostęp kończy się sam z końcem tego dnia.",
"submit": "Wyślij zaproszenie",
"submitting": "Wysyłanie…",
"sent": "Zaproszenie wysłane do {name}.",
"errorNoAccount": "Na tej instancji nie ma konta o takiej nazwie.",
"errorDuplicate": "To konto ma już dostęp do twojej karty.",
"errorSelf": "To twoje własne konto.",
"errorInvalid": "Podaj nazwę użytkownika lub adres e-mail.",
"errorRateLimited": "Zbyt wiele zaproszeń. Spróbuj później.",
"errorFailed": "Nie udało się wysłać zaproszenia. Spróbuj ponownie.",
"errorScope": "Tych sekcji nie da się udostępnić w ten sposób. Wybierz co najmniej jedną sekcję albo udostępnij całą kartotekę.",
"errorManageBrowserOnly": "Dostęp zarządzający można przyznać tylko w przeglądarce, ponieważ wymaga drugiego składnika logowania.",
"errorStepUp": "Potwierdź drugi składnik logowania i spróbuj ponownie."
},
"given": {
"title": "Kto może otworzyć moją kartę",
"description": "Zakończony dostęp zostaje na liście, żebyś zawsze widział, kto go miał i kiedy.",
"emptyTitle": "Nikt inny nie może otworzyć twojej karty",
"emptyDescription": "Zaproś kogoś powyżej, jeśli chcesz, żeby mógł ją czytać.",
"loadError": "Nie udało się wczytać listy.",
"revoke": "Zakończ dostęp",
"withdrawInvite": "Wycofaj",
"revokeTitle": "Zakończyć dostęp dla {name}?",
"revokeBody": "Dostęp kończy się natychmiast, także w każdej przeglądarce, w której twoja karta jest otwarta. Tego, co już zostało zobaczone, nie da się cofnąć. Możesz zaprosić ponownie w dowolnej chwili.",
"revokeEntriesStay": "To, co ta osoba wpisała, zostaje w twojej karcie i możesz to samodzielnie usunąć.",
"revokeAttribution": "Kto co wpisał, pozostaje widoczne w widoku aktywności przez {days} dni.",
"revokeConfirm": "Zakończ dostęp"
},
"received": {
"title": "Karty, które mogę otworzyć",
"description": "Zaproszenie nic ci nie daje, dopóki go nie zaakceptujesz. Dostęp możesz zwrócić w dowolnej chwili.",
"emptyTitle": "Nikt nie udostępnił ci karty",
"emptyDescription": "Kiedy ktoś cię zaprosi, zaproszenie pojawi się tutaj.",
"loadError": "Nie udało się wczytać listy.",
"accept": "Akceptuj",
"accepting": "Akceptowanie…",
"writeConsent": "Jeśli zaakceptujesz, to, co dodasz, stanie się częścią karty użytkownika {name}. Później nie będziesz mieć możliwości zmiany ani usunięcia wpisów; może to zrobić tylko {name}.",
"manageConsent": "Jeśli zaakceptujesz, będziesz mieć możliwość uzupełniania kartoteki użytkownika {name}, a także zmieniania i usuwania tego, co już w niej jest, łącznie z wpisami samego {name}. Wszystko, co zrobisz, zostanie zapisane pod Twoim imieniem w widoku aktywności, a {name} może zakończyć Twój dostęp w dowolnej chwili.",
"open": "Otwórz",
"renounce": "Zwróć",
"renounceTitle": "Zwrócić kartę użytkownika {name}?",
"renounceBody": "Tracisz dostęp natychmiast. Ta osoba może zaprosić cię ponownie w dowolnej chwili.",
"renounceConfirm": "Zwróć"
},
"activity": {
"title": "Kiedy otwierano moją kartę",
"description": "Za każdym razem, gdy ktoś inny otworzył twoją kartę.",
"retention": "Obejmuje ostatnie {days} dni. Starsze wpisy są usuwane.",
"emptyTitle": "Nikt nie otworzył twojej karty",
"emptyDescription": "Otwarcia przez inne osoby pojawiają się tutaj, jedna linia na osobę i dzień.",
"loadError": "Nie udało się wczytać aktywności.",
"opened": "{name} otworzył twoją kartę {count}×",
"acted": "{name} wprowadził zmianę w twojej karcie",
"deletedAccount": "Usunięte konto"
},
"delegate": {
"addOnlyNote": "Możesz dodawać wpisy do tej karty. Zmieniać je i usuwać może tylko {name}."
},
"lookingAfter": {
"title": "Opiekuję się",
"description": "Karty, które udostępniły ci inne osoby.",
"levelRead": "Może przeglądać",
"levelWrite": "Może przeglądać i dodawać",
"kindShared": "Udostępniona karta",
"kindManaged": "Zarządzany profil",
"open": "Otwórz kartę użytkownika {name}"
},
"toast": {
"savedTo": "Zapisano w karcie użytkownika {name}."
},
"activityVerb": {
"measurementCreate": "{name} dodał pomiar",
"labResultCreate": "{name} dodał wynik badania",
"allergyCreate": "{name} dodał alergię",
"familyHistoryCreate": "{name} dodał wpis w wywiadzie rodzinnym",
"illnessEpisodeCreate": "{name} dodał chorobę",
"biomarkerCreate": "{name} dodał biomarker",
"customMetricEntryCreate": "{name} zapisał własny pomiar",
"medicationSideEffectCreate": "{name} zanotował działanie niepożądane",
"medicationCreate": "{name} dodał lek",
"medicationIntake": "{name} zapisał przyjęcie dawki",
"medicationIntakeRefused": "{name} próbował(a) zmienić dawkę lub odłożyć przypomnienie i został(a) odrzucony(-a)"
},
"section": {
"measurements": {
"label": "Pomiary",
"detail": "Waga, ciśnienie, tętno, glukoza, sen, treningi i śledzone przez Ciebie wartości."
},
"medications": {
"label": "Leki",
"detail": "Lista leków, harmonogramy, przyjęte dawki, działania niepożądane i stan zapasów."
},
"labs": {
"label": "Wyniki badań",
"detail": "Wyniki laboratoryjne i lista analitów, które za nimi stoją."
},
"profile": {
"label": "Historia zdrowia",
"detail": "Alergie, wywiad rodzinny i dane z Twojego profilu zdrowia."
},
"illness": {
"label": "Choroby",
"detail": "Epizody chorobowe i prowadzone przy nich wpisy dzienne."
},
"mind": {
"label": "Nastrój i zdrowie psychiczne",
"detail": "Wpisy o nastroju i historia kwestionariuszy zdrowia psychicznego."
},
"cycle": {
"label": "Cykl",
"detail": "Śledzenie cyklu."
},
"documents": {
"label": "Dokumenty",
"detail": "Wszystko, co jest przechowywane w sejfie dokumentów."
}
}
}
}