/** pl — batch 3. */ const plBatch3 = { settingsUi: { proSupport: { title: "Pro i wsparcie", subtitle: "Opcjonalne dodatki, dzięki którym SkateSpots jest darmowy", prepaidTitle: "Przedpłata, nie subskrypcja", prepaidBody: "Każdy zakup to jednorazowa płatność w Bitcoinie/Lightningu — bez konta, bez cyklicznych opłat, bez powiernictwa. Kolejna płatność wydłuża Twój czas.", sasquatchTitle: "Sasquatch Pro", sasquatchBenefit: "Odblokowuje osobistego asystenta AI — może czytać Twój Stash, ekipy i ogłoszenia — i pomaga finansować projekt.", active: "Aktywny", activeUntil: "Aktywne do {{date}}", daysLeft: "Pozostało {{count}} dni", notActive: "Nieaktywne", goPro: "Przejdź na Pro", extend: "Przedłuż Pro", day: "dzień", featuredTitle: "Wyróżnione miejsce", featuredBenefit: "Wypchnij ogłoszenie na górę z odznaką Pro — dla profili The Lab, wydarzeń, sklepów i wycieczek.", featuredHow: "Progi czasowe dotyczą każdego typu; dłuższe zobowiązania kosztują mniej za dzień. Ogłoszenie wyróżniasz podczas jego tworzenia lub edycji.", featuredUntil: "Do {{date}}", yourFeatured: "Twoje wyróżnione ogłoszenia", noneFeatured: "Brak aktywnych wyróżnień.", freeTitle: "Darmowe ścieżki", freeBody: "FAQ AI i lokalne wyszukiwanie są zawsze darmowe, a ogłoszenie na marketplace możesz opublikować za darmowy proof-of-work zamiast opłaty w sats." }, notFound: { seoTitle: "404 — nie znaleziono strony", seoDescription: "Strona, której szukasz, nie została znaleziona. Wróć na stronę główną, aby kontynuować przeglądanie.", message: "Ups! Nie znaleziono strony", returnHome: "Wróć do strony głównej" }, loginArea: { signUp: "Zarejestruj się", logIn: "Zaloguj się" }, accountSwitcher: { switchAccount: "Przełącz konto", walletSettings: "Ustawienia portfela", addAccount: "Dodaj kolejne konto", logout: "Wyloguj się" }, amberHint: { defaultAction: "wysłać", multiBefore: "Twój signer poprosi Cię o zatwierdzenie", multiTimes: "{{approvals}} razy", multiAfter: ", aby {{action}} — to normalne dla zaszyfrowanych wiadomości (jedno zatwierdzenie na odbiorcę). Zatwierdź każde.", single: "Twój signer poprosi Cię o zatwierdzenie, aby {{action}}." }, amberCallback: { processing: "Przetwarzanie logowania przez Amber...", gotResult: "Otrzymano wynik: {{result}}", noResultDebug: "Brak wyniku z Amber", noResultToast: "Nie otrzymano wyniku z Amber. Operacja mogła zostać anulowana.", validPubkey: "Prawidłowy pubkey! Logowanie...", loginSuccessful: "Logowanie udane!", loginErrorDebug: "Błąd logowania: {{error}}", invalidResultDebug: "Nieprawidłowy format wyniku: {{result}}", loggedInTitle: "Zalogowano", amberLoginDesc: "Pomyślnie zalogowano przez Amber!", loginFailedTitle: "Logowanie nie powiodło się", loginFailedDesc: "Nie udało się dokończyć logowania przez Amber. Spróbuj ponownie.", invalidPubkeyDesc: "Otrzymano nieprawidłowy pubkey z Amber.", sessionLostToast: "Dane sesji zostały utracone. Spróbuj ponownie.", eventSignedTitle: "Wydarzenie podpisane", eventSignedDesc: "Twoje wydarzenie zostało podpisane przez Amber.", signingFailedTitle: "Podpisywanie nie powiodło się", signingFailedDesc: "Nie udało się przetworzyć podpisanego wydarzenia z Amber.", operationCompleteTitle: "Operacja zakończona", operationCompleteDesc: "{{op}} zakończono." }, loginDialog: { loginWithAmber: "Zaloguj się przez Amber (Android)", welcomeTitle: "Witaj w SkateSpots", welcomeSubtitle: "Zarejestruj się lub zaloguj, aby kontynuować", newHere: "Jesteś tu nowy?", createFree: "Załóż darmowe konto. E-mail nie jest wymagany.", createAccount: "Załóż konto", orLogIn: "Albo zaloguj się", loggedInTitle: "🛹 Zalogowano!", loggedIn: "Zalogowano!", connectedAmber: "Połączono przez Amber!", amberLoginFailed: "Logowanie przez Amber nie powiodło się", amberCancelled: "Logowanie anulowane. Dotknij „Open Amber”, aby spróbować ponownie.", amberNotFound: "Nie znaleziono Amber. Upewnij się, że Amber jest zainstalowany ze ZapStore.", loginFailed: "Logowanie nie powiodło się", pubkeyError: "Wklej swój pubkey hex (64 znaki) lub npub z Amber", pairedSigner: "Sparowano z Twoim signerem.", connectFailed: "Nie udało się połączyć z Twoim signerem.", openedEncrypted: "Otwarto Twój zaszyfrowany klucz.", openKeyFailed: "Nie udało się otworzyć tego klucza.", bunkerPrefix: "Musi zaczynać się od bunker://", connectedBunker: "Połączono przez bunker!", bunkerFailed: "Nie powiodło się: {{error}}", checkBunkerUri: "Sprawdź swój URI bunkera", nsecPrefix: "Musi zaczynać się od nsec1", invalidNsec: "Nieprawidłowy nsec: {{error}}", checkKey: "Sprawdź swój klucz", noExtensionTitle: "Nie znaleziono rozszerzenia", noExtensionDesc: "Zainstaluj Alby lub inne rozszerzenie NIP-07.", amberIdleDesc: "Twój klucz pozostaje wewnątrz Amber. Jedno dotknięcie — zatwierdź w Amber i wracasz tutaj, zalogowany. Nic do kopiowania.", continueWithAmber: "Kontynuuj z Amber", noAmberGetIt: "Nie masz Amber? Pobierz go →", waitingAmberTitle: "Czekam na Amber…", waitingAmberDesc: "Zatwierdź prośbę w Amber. Zostaniesz zalogowany automatycznie, gdy tylko wrócisz.", openAmberAgain: "Otwórz Amber ponownie", havingTrouble: "Masz problem? Wpisz klucz ręcznie", enterPublicKey: "Wpisz swój klucz publiczny", enterPublicKeyDescBefore: "Tylko jeśli automatyczny proces nie zadziałał. W Amber: dotknij swojego profilu →", copyPublicKey: "Skopiuj klucz publiczny", enterPublicKeyDescAfter: "następnie wklej go tutaj.", connect: "Połącz", back: "← Wstecz", signInWithPhone: "Zaloguj się telefonem", signInWithPhoneDesc: "Zeskanuj aplikacją signera (Amber, nsec.app). Twój klucz nigdy nie opuszcza telefonu.", showPairingCode: "Pokaż kod parowania", waitingSigner: "Czekam na Twój signer…", copyLink: "Skopiuj link", orPasteBunker: "albo wklej adres URL bunkera", bunkerTitle: "Bunker (NIP-46)", bunkerPasteBefore: "Wklej swój", bunkerPasteAfter: "URI.", amberInstructions: "Ustawienia → Bunker NIP-46 → Utwórz → Skopiuj", nsecAppInstructions: "Połącz aplikację → Skopiuj URI bunkera", secretKeyTitle: "Klucz tajny", secretKeyRawDesc: "Wklej bezpośrednio swój klucz tajny Nostr.", secretKeyEncDesc: "Otwórz kopię zapasową klucza chronioną hasłem.", rawNsec: "Surowy nsec", encryptedNip49: "Zaszyfrowany (NIP-49)", nsecWarning: "⚠️ Używaj tego tylko na zaufanym urządzeniu. Nigdy nie udostępniaj swojego nsec.", login: "Zaloguj się", encSaferDesc: "Bezpieczniej: klucz pozostaje zaszyfrowany, dopóki nie wpiszesz hasła, więc kopię zapasową można bezpiecznie trzymać w chmurze lub menedżerze haseł.", password: "Hasło", openEncryptedKey: "Otwórz zaszyfrowany klucz", browserExtensionTitle: "Rozszerzenie przeglądarki (NIP-07)", browserExtensionDesc: "Najlepsze na komputer. Działa z Alby, nos2x, Flamingo.", loginWithExtension: "Zaloguj się przez rozszerzenie" }, signupDialog: { download: "Pobierz", stepChoose: "Wybierz", stepProfile: "Profil", stepSaveKey: "Zapisz klucz", somethingWrong: "Coś poszło nie tak", createFailed: "Nie udało się utworzyć Twojego konta. Spróbuj ponownie.", keySavedTitle: "Klucz tajny zapisany!", keySavedDesc: "Twój klucz został bezpiecznie zapisany.", downloadFailedTitle: "Pobieranie nie powiodło się", downloadFailedDesc: "Nie udało się pobrać pliku z kluczem. Skopiuj go ręcznie.", encSavedTitle: "Zaszyfrowana kopia zapasowa zapisana 🔐", encSavedDesc: "Zachowaj plik ORAZ hasło — potrzebujesz obu, aby się ponownie zalogować.", encFailed: "Nie udało się zaszyfrować tego klucza.", invalidFileTitle: "Nieprawidłowy typ pliku", invalidFileDesc: "Wybierz plik obrazu na swój avatar.", fileTooLargeTitle: "Plik jest za duży", fileTooLargeDesc: "Obraz avatara musi być mniejszy niż 5 MB.", avatarUploadedTitle: "Avatar przesłany!", avatarUploadedDesc: "Twój avatar został pomyślnie przesłany.", uploadFailedTitle: "Przesyłanie nie powiodło się", uploadFailedDesc: "Nie udało się przesłać avatara. Spróbuj ponownie.", nameRequiredTitle: "Wymagana nazwa wyświetlana", nameRequiredDesc: "Wybierz nazwę wyświetlaną, aby inni skaterzy wiedzieli, kim jesteś. Możesz ją zmienić w dowolnym momencie.", reserveFailedTitle: "Nie udało się zarezerwować tej nazwy", reserveFailedDesc: "{{error}} Możesz ją zarezerwować później w Ustawieniach.", profileCreatedTitle: "Profil utworzony!", profileCreatedDesc: "Twój profil został skonfigurowany.", profileFailedTitle: "Konfiguracja profilu nie powiodła się", profileFailedDesc: "Twoje konto zostało utworzone, ale konfiguracja profilu nie powiodła się. Możesz go zaktualizować później.", welcomeToastTitle: "Witaj!", welcomeToastDesc: "Twoje konto jest gotowe.", titleWelcome: "Dołącz do SkateSpots", titleProfile: "Skonfiguruj swój profil", titleDone: "Witaj!", createFreeAccount: "Załóż darmowe konto", createFreeAccountDesc: "Bez e-maila, bez telefonu, bez hasła. Twoje konto to klucz Nostr — wybierz, gdzie ma mieszkać.", recommended: "Zalecane", signUpWithAmber: "Zarejestruj się przez Amber", signUpWithAmberDesc: "Twój klucz jest tworzony i przechowywany w aplikacji Amber — SkateSpots nigdy go nie dotyka. Najbezpieczniej. Jedno dotknięcie, aby zatwierdzić.", continueWithAmber: "Kontynuuj z Amber", orQuickWay: "albo szybka droga", quickAccount: "Szybkie konto na tym urządzeniu", quickAccountDesc: "Generujemy klucz, który mieszka na tym urządzeniu. Najszybszy start — pomożemy Ci zaraz zapisać kopię zapasową.", createQuickAccount: "Utwórz szybkie konto", quickReassurance: "Zajmuje 5 sekund · mieszka na tym urządzeniu · pomożemy Ci je zaraz zapisać", preferAnotherSigner: "Wolisz inny signer?", iosDesktopNudge: "Na iOS lub komputerze? Aplikacja signera lub rozszerzenie przeglądarki to najbezpieczniejsza opcja —", seeAllOptions: "Zobacz wszystkie opcje", youreInPickName: "Jesteś w środku! 🛹 Wybierz nazwę wyświetlaną, aby skaterzy wiedzieli, kim jesteś", changeAnytime: "Możesz ją zmienić później w dowolnym momencie. Bio i avatar są opcjonalne.", publishingProfile: "Publikowanie Twojego profilu...", displayName: "Nazwa wyświetlana", displayNamePlaceholder: "np. Tony, gnarlyGrind albo nazwa Twojej ekipy", displayNameHint: "Wymagane — tak będziesz widoczny w całym SkateSpots. Zmień w dowolnym momencie.", skateName: "Twoja nazwa w SkateSpots", skateNameHint: "Darmowa i opcjonalna — zweryfikowany handle, który pokazuje ✓ na Twoim profilu.", bio: "Bio", bioPlaceholder: "Opowiedz innym o sobie...", avatar: "Avatar", uploadAvatar: "Prześlij obraz avatara", saving: "Zapisywanie...", saveAndStart: "Zapisz i zacznij jeździć", addNameToContinue: "Dodaj nazwę wyświetlaną, aby kontynuować.", savingPublishesNote: "Zapis publikuje Twój profil w Nostr — Twój signer może poprosić Cię o jednorazowe zatwierdzenie.", youreIn: "Jesteś w środku! 🛹", oneQuickThing: "Jeszcze jedna szybka rzecz, zanim wskoczysz…", saveLoginKey: "Zapisz swój klucz logowania", saveLoginKeyBefore: "To jest", only: "jedyna", saveLoginKeyAfter: "droga powrotna do Twojego konta — bez e-maila, bez resetowania hasła. Zapisz go teraz, a będziesz mógł zalogować się na dowolnym urządzeniu, gdziekolwiek jeździsz.", revealSaveKey: "Pokaż i zapisz mój klucz", recoveryCopied: "Kod odzyskiwania skopiowany. Trzymaj go w bezpiecznym miejscu.", saved: "Zapisano", treatLikeBoardKeys: "Traktuj go jak klucze do swojej deski — każdy, kto ma ten kod, kontroluje Twoje konto. Nigdy go nie udostępniaj.", hideEncBackup: "Ukryj zaszyfrowaną kopię zapasową", saveEncBackup: "Zapisz zaszyfrowaną kopię zapasową", encBackupBefore: "Kopia chroniona hasłem — bezpieczna w chmurze lub menedżerze haseł. Będziesz potrzebować pliku", and: "i", encBackupAfter: "hasła.", choosePassword: "Wybierz hasło", saveEncBackupCta: "Zapisz zaszyfrowaną kopię zapasową", savedCodeAria: "Zapisałem swój kod odzyskiwania", savedCodeLabel: "Zapisałem swój kod odzyskiwania w bezpiecznym miejscu — w menedżerze haseł lub offline na papierze.", letsSkate: "Jedziemy", saveLater: "Zapiszę go później w Ustawieniach", advancedSigner: "Zaawansowane: użyj aplikacji signera" }, mnemonic: { generatedTitle: "Fraza odzyskiwania wygenerowana! 🎉", generatedDesc: "Zapisz te 12 słów w kolejności. To klucz do Twojego konta!", savedTitle: "Fraza odzyskiwania zapisana!", savedDesc: "Trzymaj ten plik w bezpiecznym miejscu.", downloadFailedTitle: "Pobieranie nie powiodło się", downloadFailedDesc: "Nie udało się pobrać pliku. Skopiuj go ręcznie.", copiedTitle: "Skopiowano do schowka!", copiedDesc: "Twoja fraza odzyskiwania została skopiowana.", qrWindowTitle: "Kod QR frazy odzyskiwania", qrHeading: "Twój kod QR frazy odzyskiwania", qrAlt: "Kod QR frazy odzyskiwania", qrWarning: "Trzymaj ten kod QR prywatnie i bezpiecznie!", qrPrint: "Wydrukuj kod QR", qrFailedTitle: "Kod QR nie powiódł się", qrFailedDesc: "Nie udało się wygenerować kodu QR.", accountCreatedTitle: "Konto utworzone! 🎉", accountCreatedDesc: "Wszystko gotowe! Twoja fraza odzyskiwania jest bezpieczna.", loginFailedTitle: "Logowanie nie powiodło się", loginFailedDesc: "Nie udało się utworzyć konta. Spróbuj ponownie.", verifyFailedTitle: "Weryfikacja nie powiodła się", verifyFailedDesc: "Słowa się nie zgadzają. Sprawdź i spróbuj ponownie.", titlePrefix: "Załóż konto za pomocą", titleSuffix: "frazy odzyskiwania", twelveWordTitle: "12-słowna fraza odzyskiwania", twelveWordDesc: "Twoja fraza odzyskiwania jest jak hasło główne. Zapisz ją na papierze i trzymaj bezpiecznie. Będziesz jej potrzebować, aby dostać się do konta z innych urządzeń lub jeśli wyczyścisz dane przeglądarki.", generate: "Wygeneruj frazę odzyskiwania", useNsecInstead: "Użyj zamiast tego zaawansowanego klucza nsec", yourPhrase: "Twoja fraza odzyskiwania", copy: "Kopiuj", download: "Pobierz", qrCode: "Kod QR", criticalWarning: "Krytyczne ostrzeżenie o bezpieczeństwie", warnWriteStrong: "Zapisz to", warnWrite: "na papierze i przechowuj bezpiecznie", warnNeverShareStrong: "Nigdy nie udostępniaj", warnNeverShare: "swojej frazy odzyskiwania nikomu", warnBackupsStrong: "Trzymaj wiele kopii zapasowych", warnBackups: "w różnych bezpiecznych miejscach", warnAnyoneStrong: "Każdy, kto ma tę frazę", warnAnyone: "kontroluje Twoje konto na zawsze", warnLoseStrong: "Jeśli ją zgubisz", warnLose: "trwale tracisz swoje konto", savedSecurely: "Zapisałem ją bezpiecznie", verifyTitle: "Zweryfikuj swoją frazę odzyskiwania", verifyDesc: "Aby upewnić się, że zapisałeś ją poprawnie, wpisz te słowa:", wordLabel: "Słowo nr {{n}}", wordPlaceholder: "Wpisz słowo nr {{n}}", goBack: "Wróć", verifyCreate: "Zweryfikuj i utwórz konto", completeTitle: "Konto utworzone!", completeDesc: "Twoje konto Nostr jest gotowe!", signerTitle: "Zalecane: skonfiguruj aplikację signera", signerSubtitle: "Trzymaj klucze jeszcze bezpieczniej", signerDesc: "Dla lepszego bezpieczeństwa użyj dedykowanej aplikacji signera zamiast wklejać swoją frazę odzyskiwania wszędzie. Aplikacje signera chronią klucze, pozwalając korzystać z dowolnej aplikacji Nostr.", signerCta: "Dowiedz się o aplikacjach signera", skip: "Na razie pomiń" }, signupMethod: { titlePrefix: "Wybierz swoją", titleSuffix: "metodę rejestracji", subtitle: "Obie metody są bezpieczne. Wybierz tę, która najbardziej Ci odpowiada!", recommended: "Zalecane", mnemonicTitle: "Fraza odzyskiwania", mnemonicDesc: "12 łatwych do zapamiętania słów. Standard branżowy używany przez Bitcoin, Ethereum i większość portfeli krypto.", mnemonicF1: "Łatwa do zapisania na papierze", mnemonicF2: "Działa z innymi aplikacjami Nostr (NIP-06)", mnemonicF3: "Może generować wiele kont", mnemonicF4: "Znana użytkownikom krypto", useMnemonic: "Użyj frazy odzyskiwania", advanced: "Zaawansowane", nsecTitle: "Klucz tajny (nsec)", nsecDesc: "Surowy klucz kryptograficzny. Bardziej techniczny, ale daje bezpośredni dostęp do Twojej tożsamości Nostr.", nsecF1: "Bezpośrednia kontrola kryptograficzna", nsecF2: "Zgodny ze wszystkimi aplikacjami Nostr", nsecF3: "Pojedynczy ciąg do kopii zapasowej", nsecF4: "Bez warstwy pochodnej", useNsec: "Użyj klucza tajnego", footer: "🔒 Obie metody są równie bezpieczne. Wybierz według własnych preferencji!" }, skateNip05: { placeholder: "twojanazwa", claimedSuffix: "jest Twoja — zapisz profil, aby ją opublikować.", checking: "Sprawdzanie dostępności…", available: "{{name}}@{{domain}} jest dostępna", claim: "Zarezerwuj ją", hint: "Litery, cyfry, myślniki. Darmowa, pokazywana jako odznaka ✓ na Twoim profilu." }, nip05Required: { getFree: "Zdobądź darmowy / tani NIP-05", paid: "Płatne", requiredTitle: "Wymagana weryfikacja NIP-05", bannerReason: "Aby zapobiegać spamowi i budować zaufanie, {{role}} potrzebuje zweryfikowanego adresu Nostr (NIP-05).", gateReason: "Aby zapobiegać spamowi i budować zaufanie, {{role}} musi mieć weryfikację NIP-05.", addInSettings: "Dodaj NIP-05 w Ustawieniach", explainer: "NIP-05 potwierdza Twoją tożsamość, łącząc Twój profil Nostr z domeną — na przykład", updateProfile: "Zaktualizuj swój profil" }, editProfile: { uploadSuccessTitle: "Sukces", uploadSuccessDesc: "{{field}} przesłano pomyślnie", uploadErrorDesc: "Nie udało się przesłać {{field}}. Spróbuj ponownie.", mustBeLoggedIn: "Musisz być zalogowany, aby zaktualizować swój profil", invalidClinkTitle: "Nieprawidłowy kod CLINK", invalidClinkDesc: "To nie wygląda na prawidłowy kod noffer1… Wyczyść go lub wklej prawidłowy.", invalidLightningTitle: "Nieprawidłowy adres Lightning", invalidLightningDesc: "Użyj adresu podobnego do e-maila, np. ty@walletofsatoshi.com.", invalidSpTitle: "Nieprawidłowy adres Silent Payment", invalidSpDesc: "Adres Silent Payment zaczyna się od „sp1” i jest dość długi. Wyczyść go lub wklej prawidłowy.", invalidCordnTitle: "Nieprawidłowy link Cordn", invalidCordnDesc: "Wklej pełny link kontaktowy Cordn https://…", updateSuccessTitle: "Sukces", updateSuccessDesc: "Twój profil został zaktualizowany", updateErrorDesc: "Nie udało się opublikować profilu. Sprawdź połączenia z relayami w Ustawienia > Relays", identityTitle: "Tożsamość", identityDesc: "Jak się prezentujesz w całym SkateSpots.", displayName: "Nazwa wyświetlana", displayNamePlaceholder: "Twoja nazwa", bio: "Bio", bioPlaceholder: "Kilka słów o Tobie i Twoim jeżdżeniu…", profilePicture: "Zdjęcie profilowe", pictureDesc: "Prześlij lub wklej kwadratowy obraz.", bannerImage: "Obraz banera", bannerDesc: "Szeroki obraz na górę Twojego profilu.", website: "Strona internetowa", bitcoinTitle: "Bitcoin i płatności", bitcoinDesc: "Pozwól ludziom wysyłać Ci zaps, napiwki i płatności bezpośrednio — bez pośredników.", lightningAddress: "Adres Lightning", lud16Invalid: "Użyj adresu podobnego do e-maila, np. ty@twojadomena.com.", lud16Ok: "Zasila przycisk „Zap” na Twoim profilu.", lud16Hint: "Natychmiastowe napiwki Bitcoin. Zasila przycisk „Zap” na Twoim profilu.", silentPaymentAddress: "Adres Silent Payment", spInvalid: "Powinien zaczynać się od „sp1” i być dość długi.", spOk: "Prawidłowy — adres on-chain wielokrotnego użytku i prywatny.", spHint: "Statyczny adres on-chain wielokrotnego użytku (BIP-352). Udostępnij raz; każda płatność jest niepowiązywalna.", clinkTipCode: "Kod napiwku CLINK", nofferInvalid: "To nie wygląda na prawidłowy kod noffer1…", nofferOk: "Prawidłowy — na Twoim profilu pojawi się przycisk „Napiwek w Bitcoinie”.", nofferHint: "Samodzielny kod CLINK, dzięki któremu każdy może wysłać Ci napiwek przez Nostr — bez pośredników.", skateProfileTitle: "Profil skatera", skateProfileDesc: "Twoi sponsorzy i sposób, w jaki ekipa się z Tobą kontaktuje.", badges: "Odznaki", badgesHint: "(etykieta + opcjonalny link)", badgeExample: "np. Independent Trucks", badgeLabelPlaceholder: "Etykieta odznaki…", badgeUrlPlaceholder: "https://… (opcjonalnie)", removeBadge: "Usuń odznakę", addBadge: "Dodaj odznakę", badgesDescBefore: "Sponsorzy, sklepy lub osoby wspierające Twoje jeżdżenie — i cokolwiek innego, czym chcesz się pochwalić. Każda staje się klikalnym chipem na Twoim profilu. Twoja", badgesDescAfter: "odznaka członka jest dodawana automatycznie.", coordinator: "Koordynator", cordnInvalid: "To nie wygląda na koordynatora. Wklej nprofile, link cordn.net lub adres URL https://.", cordnOk: "Pokazywany na Twoim profilu — inni mogą dodać go jednym dotknięciem.", cordnHint: "Koordynator Cordn, którego inni używają, aby pisać do Ciebie. Prywatny, zaszyfrowany, Twój.", useMyCoordinator: "Użyj mojego koordynatora", accountTitle: "Konto", accountDesc: "Dodatkowe ustawienia konta.", botAccount: "Konto bota", botAccountDesc: "Oznacz to konto jako zautomatyzowane lub bota.", saving: "Zapisywanie…", saveProfile: "Zapisz profil", nip05VerifiedHandle: "Zweryfikowany handle NIP-05", nip05How: "Jak?", extraHandles: "Dodatkowe handle", extraHandlesHint: "opcjonalne — dodaj do 5", nip05HintEmpty: "Zweryfikowany handle, taki jak ty@twojadomena.com — odpowiednik niebieskiego znaczka w Nostr. Pokazuje odznakę ✓ na Twoim profilu i odblokowuje filtr „Zweryfikowani” w katalogu skaterów.", nip05Invalid: "Użyj handle podobnego do e-maila, np. ty@twojadomena.com — bez „https://” i spacji.", nip05Checking: "Sprawdzanie Twojej domeny…", nip05Verified: "Zweryfikowano — Twoja domena potwierdza, że ten handle należy do Ciebie. ✓", nip05Mismatch: "Twoja domena mapuje ten handle na INNY klucz. Popraw swój .well-known/nostr.json, aby wskazywał na to konto.", nip05Unreachable: "Nie udało się jeszcze dotrzeć do /.well-known/nostr.json Twojej domeny. Zapisane handle nadal działają, gdy domena będzie poprawnie skonfigurowana.", nip05Enter: "Wpisz swój handle NIP-05.", freeHandleBefore: "Nie masz własnej domeny? Zarezerwuj darmowy handle", freeHandleAfter: "od SkateSpots.", uploadLabel: "Prześlij {{label}}", previewLabel: "Podgląd {{label}}" }, security: { recoveryCopied: "Kod odzyskiwania skopiowany. Przechowuj go w bezpiecznym miejscu.", savedTitle: "Zapisano!", recoveryDownloaded: "Kod odzyskiwania pobrany. Trzymaj go w bezpiecznym miejscu.", downloadFailedTitle: "Pobieranie nie powiodło się", downloadFailedDesc: "Skopiuj go ręcznie.", loginRequired: "Wymagane logowanie", loginRequiredDesc: "Zaloguj się, aby uzyskać dostęp do ustawień bezpieczeństwa.", backupConfirmedTitle: "Kopia zapasowa potwierdzona! ✅", backupConfirmedDesc: "Świetnie! Twoje klucze są bezpieczne.", yourRecoveryCode: "Twój kod odzyskiwania", recoveryCodeDesc: "Nie zapisałeś go przy rejestracji? Możesz go stąd odebrać w dowolnym momencie.", recoveryCodeBefore: "Ten kod to", only: "jedyna", recoveryCodeAfter: "droga do ponownego zalogowania się na nowym urządzeniu lub w przeglądarce. Zapisz go w bezpiecznym miejscu (menedżer haseł lub na papierze). Każdy, kto go ma, kontroluje Twoje konto — nigdy go nie udostępniaj.", revealRecovery: "Pokaż mój kod odzyskiwania", qrHint: "Zeskanuj inną aplikacją Nostr, aby się zalogować. Trzymaj ten ekran prywatnie.", neverShareHide: "⚠️ Nigdy tego nie udostępniaj. Ukryj, gdy skończysz.", hide: "Ukryj", amberNoteBefore: "Jesteś zalogowany przez", amberNoteAfter: ". Twój kod odzyskiwania znajduje się w Amber — otwórz aplikację Amber, aby zrobić kopię zapasową. SkateSpots nigdy nie widzi Twojego klucza.", bunkerNoteBefore: "Jesteś zalogowany przez", remoteSigner: "zdalny signer (bunker)", bunkerNoteAfter: ". Twój kod odzyskiwania jest przechowywany przez usługę signera, nie przez SkateSpots. Zrób tam kopię zapasową.", extensionNoteBefore: "Jesteś zalogowany przez", browserExtension: "rozszerzenie przeglądarki", extensionNoteAfter: ". Twój kod odzyskiwania znajduje się w rozszerzeniu — użyj jego własnej opcji kopii zapasowej/eksportu. SkateSpots nigdy nie widzi Twojego klucza.", otherNote: "Twoim kodem odzyskiwania zarządza aplikacja signera, nie SkateSpots. Zrób tam kopię zapasową.", backupWarningTitle: "⚠️ Czy zrobiłeś kopię zapasową frazy odzyskiwania lub klucza tajnego?", backupWarningBody: "Twoje klucze to JEDYNY sposób dostępu do konta. Jeśli je zgubisz, tracisz wszystko — nie ma resetowania hasła!", iveBackedUp: "Zrobiłem kopię zapasową kluczy", backupConfirmed: "✅ Kopia zapasowa potwierdzona", backupNotConfirmed: "⚠️ Kopia zapasowa niepotwierdzona", backupConfirmedStatusDesc: "Potwierdziłeś, że Twoje klucze są bezpiecznie zapisane.", backupNotConfirmedDesc: "Pamiętaj, aby zrobić kopię zapasową frazy odzyskiwania lub klucza tajnego!", notSavedYetBefore: "Nie zapisałeś jeszcze kodu odzyskiwania? Nie ma problemu — odbierz go z sekcji", notSavedYetAfter: "powyżej, zapisz w bezpiecznym miejscu, a następnie potwierdź poniżej.", yesBackedUp: "Tak, zrobiłem kopię zapasową kluczy", bestPracticesTitle: "Najlepsze praktyki bezpieczeństwa kluczy", bestPracticesDesc: "Jak chronić swoje konto Nostr", bp1Title: "Zapisz to na papierze", bp1Desc: "Fizyczna kopia zapasowa jest najbezpieczniejsza. Przechowuj ją w bezpiecznym miejscu, np. w sejfie.", bp2Title: "Wiele kopii zapasowych", bp2Desc: "Trzymaj kopie w różnych bezpiecznych miejscach (sejf w domu, skrytka bankowa itp.)", bp3Title: "Nigdy nie udostępniaj kluczy", bp3Desc: "Prawdziwe aplikacje Nostr NIGDY nie proszą o Twój nsec ani frazę odzyskiwania po pierwszym zalogowaniu", bp4Title: "Nie trzymaj w chmurze bez szyfrowania", bp4Desc: "Unikaj Google Docs, wersji roboczych e-maili czy zwykłego tekstu w chmurze", bp5Title: "Rozważ użycie rozszerzenia przeglądarki", bp5Desc: "Alby, nos2x lub Flamingo chronią Twoje klucze i nigdy nie ujawniają ich stronom", importantReminders: "⚠️ Ważne przypomnienia", rem1: "Jeśli zgubisz klucze, trwale tracisz konto", rem2: "Żadna firma ani osoba nie może zresetować Twojego hasła — nawet my", rem3: "Każdy, kto ma Twoje klucze, ma pełną kontrolę nad Twoim kontem", rem4: "Twoje klucze kontrolują wszystkie Twoje dane Nostr we WSZYSTKICH aplikacjach", recommendedSigners: "🔌 Zalecane signery Nostr", recommendedSignersDesc: "Użyj signera Nostr dla lepszego bezpieczeństwa i wygody", recommended: "Zalecane", amberDesc: "Bezpieczny signer Nostr na Androida. Chroni klucze na telefonie i podpisuje wydarzenia, nie ujawniając ich.", albyDesc: "Pełnoprawne rozszerzenie z portfelem Lightning, WebLN i obsługą NWC.", flamingoDesc: "Prosty, przejrzysty interfejs. Skupia się na podpisywaniu Nostr bez funkcji portfela.", nos2xDesc: "Minimalne, lekkie rozszerzenie dla zaawansowanych użytkowników.", nostrConnectTitle: "☁️ Nostr Connect (zdalne signery)", nostrConnectDesc: "Użyj zdalnego signera, aby uzyskać dostęp do konta z dowolnego urządzenia", nostrConnectBody: "Nostr Connect (zwany też „bunkerami”) pozwala przechowywać klucze na bezpiecznym serwerze i logować się z dowolnego urządzenia. Twoje klucze nigdy nie opuszczają serwera, ale możesz korzystać z konta wszędzie!", nsecAppDesc: "Darmowy, bezpieczny zdalny signer. Utwórz URI bunker:// i wklej go przy logowaniu.", nostrumDesc: "Kolejna opcja zdalnego signera z obsługą mobilną.", howToUse: "💡 Jak używać:", howToUseDesc: "Załóż konto w jednej z tych usług, pobierz swój ciąg połączenia bunker://, a następnie wklej go w zakładce „Nostr Connect” podczas logowania." }, relayList: { connected: "Połączono", connecting: "Łączenie…", offline: "Offline", removeUrl: "Usuń {{url}}", add: "Dodaj", publishedTitle: "Lista relayów opublikowana", publishedDesc: "Zsynchronizowano z Nostr (kind 10002).", publishFailedTitle: "Nie udało się opublikować listy relayów", invalidUrlTitle: "Nieprawidłowy URL relaya", invalidUrlDesc: "Spróbuj czegoś takiego jak wss://relay.example.com", alreadyInList: "Relay jest już na Twojej liście", keepReadWriteTitle: "Zachowaj odczyt lub zapis", keepReadWriteDesc: "Relay potrzebuje co najmniej jednego z: odczyt/zapis.", alreadyInThisList: "Relay jest już na tej liście", dmPublishedTitle: "Relaye DM opublikowane", dmPublishedDesc: "Skrzynka NIP-17 zaktualizowana.", dmPublishFailedTitle: "Nie udało się opublikować relayów DM", nip65Title: "Relaye (NIP-65)", nip65DescUser: "Dotknij Odczyt / Zapis, aby przełączyć. Publikowane w Nostr jako Twoja lista kind 10002.", nip65DescLoggedOut: "Dotknij Odczyt / Zapis, aby przełączyć. Zaloguj się, aby opublikować listę w Nostr.", noRelays: "Brak relayów — dodaj jeden poniżej.", local: "Lokalny", read: "Odczyt", readHint: "Pobieraj treści z tego relaya", write: "Zapis", writeHint: "Publikuj swoje wydarzenia na tym relayu", dmTitle: "Relaye skrzynki DM", dmDesc: "Gdzie odbierasz bezpośrednie wiadomości NIP-17 (kind 10050). Gdy puste, używa Twoich relayów zapisu.", localTitle: "Relaye lokalne", localDesc: "Tylko w aplikacji (np. węzeł LAN). Używane do odczytu i zapisu; nigdy niepublikowane.", blockedTitle: "Zablokowane relaye", blockedDesc: "Nigdy się z nimi nie łącz — wykluczone z każdego odczytu i zapisu." }, relatr: { searchingTitle: "Szukam usługi Relatr...", searchingDesc: "Odpytywanie Nostr o profile Relatr", foundTitle: "Znaleziono usługę Relatr!", foundDesc: "Usługa: {{name}}", unknown: "Nieznana", notFoundTitle: "Nie znaleziono usługi Relatr", notFoundDesc: "Spróbuj wpisać pubkey ręcznie lub sprawdź https://www.relatr.xyz/", searchFailedTitle: "Wyszukiwanie nie powiodło się", searchFailedDesc: "Nie udało się odpytać Nostr o profile Relatr", invalidPubkeyTitle: "Nieprawidłowy pubkey", invalidPubkeyDesc: "Wpisz prawidłowy 64-znakowy pubkey hex", enabledTitle: "Relatr włączony!", enabledDesc: "Globalne oceny zaufania są teraz aktywne.", disabledTitle: "Relatr wyłączony", disabledDesc: "Oceny zaufania nie są już pobierane.", title: "Oceny zaufania Relatr", desc: "Globalne oceny zaufania pomagają identyfikować godnych zaufania użytkowników i ograniczać spam", status: "Status", active: "Aktywny", disabled: "Wyłączony", activeStrong: "Relatr jest aktywny.", activeDesc: "Oceny zaufania z globalnej analizy sieci ContextVM pomagają identyfikować godnych zaufania skaterów i ograniczać spam.", disabledStrong: "Relatr jest wyłączony.", disabledHint: "Włącz go, aby otrzymywać oceny zaufania z globalnej sieci Nostr.", disable: "Wyłącz Relatr", enable: "Włącz Relatr", advancedSettings: "Ustawienia zaawansowane", servicePubkey: "Pubkey usługi Relatr", pubkeyPlaceholder: "Wpisz 64-znakowy pubkey hex...", searching: "Szukam...", autoDiscover: "Automatyczne wykrywanie", pubkeyDefault: "Domyślnie: oficjalna usługa Relatr ContextVM (npub1dvmc...)", relayLabel: "Relay (gdzie Relatr publikuje oceny)", relayDefault: "Domyślnie: wss://relay.contextvm.org (oficjalny relay ContextVM)", applyChanges: "Zastosuj zmiany", learnMore: "Dowiedz się więcej:", website: "Strona Relatr", github: "GitHub Relatr", nip85Spec: "Specyfikacja NIP-85" }, followList: { unfollow: "Przestań obserwować", title: "Twoja sieć Nostr", desc: "Zarządzaj tym, kogo obserwujesz. Obserwowanie użytkowników pomaga budować Twoją sieć zaufania i decyduje, które spoty pokazują odznaki zaufania.", following: "Obserwowani ({{count}})", followers: "Obserwujący ({{count}})", follow: "Obserwuj", followHint: "💡 Wklej pubkey Nostr (npub1...), adres NIP-05 (user@domain.com) lub pubkey hex", notFollowing: "Nikogo jeszcze nie obserwujesz", notFollowingHint: "Obserwuj skaterów, aby widzieć ich spoty z odznakami ✅ ZWERYFIKOWANE", trustActiveStrong: "✅ Odznaki zaufania aktywne:", trustActive: "Spoty tworzone przez osoby, które obserwujesz, będą teraz pokazywać odznaki ZWERYFIKOWANE. Spoty ich znajomych będą pokazywać odznaki ZAUFANE.", noFollowers: "Brak obserwujących", noFollowersHint: "Udostępnij swój profil Nostr, aby zdobyć obserwujących!", howTitle: "💡 Jak obserwowanie wpływa na odznaki zaufania", verifiedStrong: "✅ ZWERYFIKOWANE (zielone):", verifiedDesc: "Spoty tworzone przez osoby, które bezpośrednio obserwujesz", trustedStrong: "🟡 ZAUFANE (żółte):", trustedDesc: "Spoty tworzone przez osoby, które obserwują Twoi znajomi (2 kroki)", unverifiedStrong: "⚪ Niezweryfikowane:", unverifiedDesc: "Spoty użytkowników bez powiązania z Twoją siecią", tip: "💡 Wskazówka: Obserwuj aktywnych skaterów, aby widzieć więcej zweryfikowanych spotów i budować swoją sieć zaufania!" }, notify: { enableTitle: "Włącz powiadomienia", enableDesc: "Powiadom to urządzenie, gdy coś Cię dotyczy.", checkingPermission: "Sprawdzanie uprawnień…", unsupported: "To urządzenie nie obsługuje tutaj powiadomień. Przebuduj aplikację na Androida, aby włączyć je na telefonie.", denied: "Powiadomienia są zablokowane dla tej strony. Zezwól na nie w ustawieniach przeglądarki/systemu i spróbuj ponownie.", backgroundTitle: "Powiadomienia w tle", backgroundDesc: "Otrzymuj powiadomienia o wiadomościach i transakcjach, nawet gdy SkateSpots jest zamknięty.", pushUnsupported: "Ta przeglądarka nie obsługuje push w tle. Na telefonie dodaj SkateSpots do ekranu głównego.", pushPrivacy: "Aby dotrzeć do Ciebie, gdy aplikacja jest zamknięta, serwer powiadomień SkateSpots otrzymuje sygnał z Twojego relaya, gdy coś przychodzi na Twój klucz, i przekazuje go do usługi push Twojego telefonu. Widzi tylko, że Twój klucz ma coś — nigdy kto to wysłał ani co mówi, i nie może odszyfrować Twoich wiadomości. Włącz to dla każdego urządzenia osobno.", bgDeliveryTitle: "Dostarczanie w tle (Android)", bgDeliveryDesc: "Sprawdzaj nowe wiadomości, oferty i transakcje, gdy aplikacja jest zamknięta — bez usług Google.", off: "Wyłączone", standard: "Standardowe (~15 min)", fast: "Szybkie (~5 min)", bgDeliveryNote: "Standardowe działa w miarę możliwości — Android może je odroczyć w trybie Doze. Szybkie pokazuje stałe powiadomienie i zużywa więcej baterii. Nic nie jest odszyfrowywane na naszym serwerze.", notifyMeAbout: "Powiadom mnie o", couldNotEnable: "Nie udało się włączyć", sendTest: "Wyślij testowe powiadomienie", testTitle: "Powiadomienia SkateSpots są włączone 🛹", testBody: "Tak będzie wyglądać DM, zap lub zaproszenie do ekipy.", footerBefore: "Alerty są tworzone na Twoim urządzeniu na podstawie danych, które aplikacja już ma, a alerty o wiadomościach bezpośrednich nigdy nie odszyfrowują wiadomości — więc Amber nigdy nie jest proszony o ich otwarcie. Gdy", footerAfter: "jest wyłączone, całkowicie zamknięta aplikacja jest nieosiągalna, więc alerty dotrą przy następnym otwarciu SkateSpots.", cat_dms_label: "Wiadomości bezpośrednie", cat_dms_hint: "Ktoś wysyła Ci prywatną wiadomość", cat_crew_label: "Ekipy", cat_crew_hint: "Zaproszenia, prośby o dołączenie i potwierdzenia członkostwa", cat_social_label: "Zapsy, odpowiedzi i wzmianki", cat_social_hint: "Reakcje, reposty, zapsy, odpowiedzi i aktualizacje wydarzeń", cat_newsletter_label: "Newsletter", cat_newsletter_hint: "Nowości SkateSpots (tylko dla subskrybentów)", cat_trades_label: "Oferty i transakcje", cat_trades_hint: "Oferty, kontroferty i potwierdzenia transakcji", cat_reminders_label: "Przypomnienia o wydarzeniach", cat_reminders_hint: "Przypomnienie godzinę przed wydarzeniami, na które się wybierasz (aplikacja Android)" }, regionBackfill: { taggedTitle: "Oznaczono {{count}} spot{{s}}", taggedSkipped: "{{count}} pominięto (brak współrzędnych lub brak dopasowania geokodera).", taggedOk: "Tagi regionu zapisane na relayu społeczności.", nothingTitle: "Nie ma czego oznaczać", nothingDesc: "Nie udało się zgeokodować żadnych pinezek. Spróbuj ponownie później.", failedTitle: "Uzupełnianie nie powiodło się", title: "Uzupełnij tagi regionu", admin: "Admin", descBefore: "Pinezki utworzone przed wprowadzeniem geokodowania mają współrzędne, ale nie mają tagu miasta/kraju, więc mapa je rysuje, a Statystyki społeczności mogą powiedzieć tylko „Nieskategoryzowane”. To ponownie wyprowadza tagi z każdej pinezki i publikuje na nowo", descStrong: "Twoje własne", descAfter: "nieoznaczone spoty i sklepy.", scanning: "Skanowanie Twoich spotów…", allTagged: "Każdy spot i sklep, który posiadasz, ma już tag regionu. 🎉 Pozostałe „Nieskategoryzowane” pinezki należą do innych mapujących — tylko ich własne klucze mogą je oznaczyć.", countLine: "{{count}} z Twoich spot{{s}}/sklepów nie ma tagu regionu. Twój signer może poprosić o zatwierdzenie każdego z osobna.", tagging: "Oznaczanie {{done}}/{{total}}…", run: "Uzupełnij tagi regionu", summary: "{{updated}} zaktualizowano · {{skipped}} pominięto · {{failed}} niepowodzeń" }, adminReview: { title: "Kolejka przeglądu", flagged: "{{count}} spot{{s}} wyzwala sygnały junk — ukryj lub odrzuć.", clean: "Spoty, które wyglądają na wpisy testowe lub pinezki nie na temat." }, grantPro: { invalidNpub: "Wpisz prawidłowy npub (lub pubkey hex)", invalidDays: "Liczba dni musi być liczbą dodatnią", grantedTitle: "Pro przyznane ⚡", grantedDesc: "{{npub}} do {{date}}", failedTitle: "Przyznawanie nie powiodło się", title: "Przyznaj Sasquatch Pro", owner: "Właściciel", desc: "Ręczne obejście dla zweryfikowanej płatności, którą przegapił paragon zapsa. Publikuje przyznanie podpisane przez właściciela; użytkownik nie może go podrobić.", targetPlaceholder: "npub1… (lub hex)", grant: "Przyznaj" }, myData: { reactionTitle: "Reakcja {{emoji}}", deleting: "Usuwanie...", requestDeletion: "Poproś o usunięcie", selectContentTitle: "Wybierz treści do usunięcia", selectContentDesc: "Wybierz konkretne elementy, dla których chcesz poprosić o usunięcie.", all: "Wszystko", spots: "Spoty", events: "Wydarzenia", shops: "Sklepy", listings: "Ogłoszenia", collections: "Kolekcje", lab: "The Lab", posts: "Posty", reactions: "Reakcje", selectAll: "Zaznacz wszystko", selectAllVisible: "Zaznacz wszystkie widoczne", selectedCount: "Zaznaczono {{count}}", noItemsCategory: "Brak elementów w tej kategorii", decentralizedStrong: "Ważne:", decentralizedNote: "Nostr jest zdecentralizowany. Relaye powinny honorować prośby o usunięcie, ale niektóre mogą tego nie robić. To nie jest gwarantowane trwałe usunięcie.", deleteCount: "Usuń {{count}} element{{s}}", noDataTitle: "Brak danych do eksportu", noDataDesc: "Nie opublikowałeś jeszcze żadnych wydarzeń.", exportedTitle: "Dane wyeksportowane!", exportedDesc: "Pobrano {{count}} wydarzeń jako JSON.", deletionRequestedTitle: "Poproszono o usunięcie", deletionRequestedDesc: "Prośba o usunięcie została opublikowana na relayach.", deletionRequestedMany: "Poproszono o usunięcie {{count}} elementów. Uwaga: niektóre relaye mogą nie honorować tej prośby.", deletionFailedTitle: "Usuwanie nie powiodło się", deletionFailedDesc: "Nie udało się opublikować prośby o usunięcie. Spróbuj ponownie.", loginRequired: "Wymagane logowanie", loginRequiredDesc: "Zaloguj się, aby przeglądać swoje dane i zarządzać nimi.", title: "Moje dane", desc: "Twoje treści w sieci Nostr. Dane należą do Ciebie — eksportuj je w dowolnym momencie lub poproś o usunięcie.", coachFilmer: "Trener/Filmer", zaps: "Zapsy", received: "Otrzymane", exportAll: "Eksportuj wszystkie dane", recentActivity: "Ostatnia aktywność", viewAll: "Zobacz wszystkie ({{count}})", noDataPublished: "Nie opublikowano jeszcze żadnych danych", startBy: "Zacznij od", addingASpot: "dodania spotu", aboutYourData: "O Twoich danych", ownDataStrong: "Posiadasz swoje dane.", ownData: "Wszystkie treści są podpisane Twoimi kluczami kryptograficznymi i przechowywane na relayach Nostr. Żadna firma ich nie kontroluje.", exportAnytimeStrong: "Eksportuj w dowolnym momencie", exportAnytime: "- Pobierz wszystkie swoje wydarzenia jako JSON", portableStrong: "Przenośne", portable: "- Używaj swoich kluczy w dowolnej aplikacji Nostr", selectiveStrong: "Selektywne usuwanie", selective: "- Wybierz dokładnie, co usunąć", caveatStrong: "Zastrzeżenie o decentralizacji", caveat: "- Niektóre relaye mogą zachować dane mimo próśb o usunięcie" }, settingsPage: { seoTitle: "Ustawienia — SkateSpots", seoDescription: "Zarządzaj ustawieniami swojego konta SkateSpots.", heading: "USTAWIENIA", subtitle: "Preferencje konta i aplikacji", editProfile: "Edytuj profil", profileRefreshed: "Profil odświeżony!", found: "Znaleziono: {{name}}", unnamed: "bez nazwy", profileNotFound: "Nie znaleziono profilu", notFoundOnRelay: "Nie znaleziono na żadnym relayu.", refreshFailed: "Odświeżanie nie powiodło się", refreshFailedDesc: "Nie udało się połączyć z relayami.", loginToEdit: "Zaloguj się, aby edytować swój profil", noProfileRelays: "Nie udało się znaleźć profilu na relayach. Jeśli ustawiłeś go wcześniej, spróbuj odświeżyć.", checkDisplayName: "nazwę wyświetlaną", checkPhoto: "zdjęcie profilowe", checkBio: "krótkie bio", checkLightning: "adres Lightning, aby ludzie mogli wysyłać Ci zapsy", checkHandle: "darmowy handle @skate-spots.org", finishProfile: "Dokończ swój profil", addItem: "Dodaj {{item}}", nip05Title: "Weryfikacja NIP-05", nip05Desc: "Zdobądź zweryfikowany adres Nostr (np. imie@domena.com), aby budować zaufanie. Wymagany do tworzenia wydarzeń, profili trenerskich i sklepów.", freeFromSkateSpots: "Darmowy od SkateSpots", claimHandleBefore: "Zarezerwuj handle taki jak", claimHandleAfter: "— bez rejestracji, bez kosztów, bez własnej domeny. Zarezerwuj go w zakładce Profil, a następnie zapisz.", claimInProfile: "Zarezerwuj w Profilu", nip05Footer: "Po uzyskaniu NIP-05 dodaj go w polu Profil i zapisz.", localRelayOn: "Relay lokalny włączony", localRelayOff: "Relay lokalny wyłączony", lookingForCitrine: "Szukam Citrine na tym urządzeniu…", noLongerUsing: "Nie używasz już relaya na urządzeniu.", localRelay: "Relay lokalny", citrineOff: "Szybsze odczyty i kopia offline na tym urządzeniu", citrineSearching: "Szukam Citrine na tym urządzeniu…", citrineLive: "Połączono — odczyt i kopia lokalna", citrineWaiting: "Włączono — uruchom Citrine, aby się połączyć", toggleCitrine: "Przełącz lokalny relay Citrine", citrineDetected: "Wykryto relay Citrine", citrineLooking: "Szukam Citrine…", citrineNotDetected: "Nie wykryto Citrine", recheckCitrine: "Sprawdź ponownie relay Citrine", checking: "Sprawdzanie", recheck: "Sprawdź ponownie", chipInstantReads: "Natychmiastowe odczyty", chipWorksOffline: "Działa offline", chipOnDeviceBackup: "Kopia na urządzeniu", cantReachStrong: "Nie można połączyć się z Citrine.", cantReachBefore: "Upewnij się, że darmowa aplikacja Citrine jest zainstalowana, a jej relay jest", started: "uruchomiony", cantReachAfter: ", a następnie dotknij Sprawdź ponownie. Uruchamia prywatny relay Nostr na Twoim telefonie dla natychmiastowych odczytów i kopii offline.", citrineStep1Before: "Otwórz Citrine → dotknij", start: "Start", citrineStep2Before: "Wróć tutaj → dotknij", getCitrine: "Pobierz Citrine", citrinePrivacy: "Twój Stash i wiadomości pozostają tu kompleksowo szyfrowane, dokładnie jak wszędzie indziej. Lokalny relay tylko przyspiesza działanie i trzyma kopię na urządzeniu — nigdy nie zastępuje szyfrowania.", communityRelayDisabled: "Relay społeczności wyłączony", communityRelayEnabled: "Relay społeczności włączony", usingOnlyPersonal: "Używasz tylko swoich skonfigurowanych relayów.", skateRelayIncluded: "Relay SkateSpots włączony.", relays: "Relaye", relayPrivacyBefore: "Relaye mogą zobaczyć Twój", ipAddress: "adres IP", relayPrivacyAfter: "gdy się łączysz. Tor go ukrywa — a „darmowy” VPN traktuj jako sygnał ostrzegawczy; zwykle zarabiają na Twoim ruchu.", communityRelay: "Relay społeczności", syncingGlobal: "Synchronizacja z globalną społecznością skate", usingOnlyPersonalShort: "Używasz tylko osobistych relayów", appearance: "Wygląd", language: "Język", darkModeOnly: "Tylko tryb ciemny", darkModeDesc: "SkateSpots działa w ciemnej, neonowej estetyce inspirowanej kulturą skate. Czarne tło, neonowy róż, limonka i pomarańcz.", navigation: "Nawigacja", sasquatchExpanded: "Sasquatch został rozwinięty! 🦧 Odśwież stronę, aby go zobaczyć.", advanced: "Zaawansowane", sasquatchGuide: "🦧 Przewodnik Sasquatcha", sasquatchResetDesc: "Zresetuj przewodnik powitalny do widoku rozwiniętego", expandSasquatch: "Rozwiń The Sasquatch", wallet: "Portfel", loginToWallet: "Zaloguj się, aby zarządzać portfelem", openWallet: "Otwórz portfel", balanceSendReceive: "Saldo, wyślij, odbierz", connectNwc: "Połącz portfel NWC", account: "Konto", security: "Bezpieczeństwo", securitySub: "Klucze, podpisywanie, Amber", nip05Sub: "Zdobądź zweryfikowany adres Nostr", app: "Aplikacja", myStash: "My Stash", myStashSub: "Prywatny inwentarz sprzętu", relaysSub: "Połączenia z relayami Nostr", appearanceSub: "Język i motyw", assistant: "Asystent", showSasquatch: "Pokaż asystenta Sasquatch", showSasquatchDesc: "Pokaż pływający przycisk Sasquatcha na mapie i innych ekranach.", showMapFooter: "Pokaż pasek linków mapy", showMapFooterDesc: "Pokaż cienki pasek linków na dole mapy.", notifications: "Powiadomienia", notificationsSub: "Alerty o DM, ekipach i zapsach", coordinator: "Koordynator", coordinatorSub: "Twój serwer grupowy Cordn", data: "Dane", myData: "Moje dane", myDataSub: "Eksportuj, importuj, zarządzaj", advancedSub: "Relatr, Sasquatch, narzędzia", notLoaded: "Nie wczytano", notLoggedIn: "Nie zalogowano" }, onboarding: { seoTitle: "Zacznij — SkateSpots", seoDescription: "Dołącz do zdecentralizowanej społeczności skateboardingu. Znajdź spoty, połącz się z trenerami, wysyłaj zapsy. Darmowe na zawsze.", homeSetTitle: "Dom ustawiony 🛹", homeSetDesc: "Mapa będzie się teraz otwierać na Twoim obszarze.", locationFailedTitle: "Nie udało się pobrać Twojej lokalizacji", locationFailedDesc: "Sprawdź uprawnienia do lokalizacji lub wybierz swój obszar na mapie.", niceTitle: "🎉 Świetnie!", niceDesc: "Rozumiesz już, jak działa Nostr. Jedziemy!", npubCopied: "npub skopiowany do schowka.", saveLoginNow: "Zapisz swój login — zrób to teraz", saveLoginNowDesc: "Twój kod odzyskiwania to jedyna droga powrotna do konta. Bez e-maila, bez resetowania hasła.", betaBadge: "Beta — otwarte dla skaterów na całym świecie", headline1: "JEŹDŹ", headline2: "W SWOIM ŚWIECIE", heroBefore: "To", decentralized: "zdecentralizowana", heroAfter: "społeczność skate. Żadna firma jej nie posiada. Żaden algorytm nie zakopuje Twoich spotów. Żaden ban. Tylko skaterzy.", pillMap: "Mapa spotów", pillCoaches: "Trenerzy i filmerzy", pillEvents: "Wydarzenia", pillGear: "Kup/sprzedaj sprzęt", pillZaps: "Zapsy Bitcoin", pillStash: "Stash sprzętu", pillCrews: "Ekipy", createFreeAccount: "Załóż darmowe konto", noEmailNoPassword: "Bez e-maila. Bez hasła. Twoja tożsamość na zawsze należy do Ciebie.", findSpots: "Znajdź spoty w pobliżu", addFirstSpot: "Dodaj swój pierwszy spot", accountCreated: "Jesteś w środku! Konto utworzone ✓", identityYours: "Twoja tożsamość należy do Ciebie — przechowywana w Twoim kluczu, nie na naszych serwerach.", whereSkate: "Gdzie jeździsz?", whereSkateDesc: "Ustaw swój domowy obszar raz, a mapa będzie się otwierać na Twoich spotach za każdym razem. Twój GPS nigdy nie opuszcza urządzenia.", useMyLocation: "Użyj mojej lokalizacji", pickOnMap: "Wybierz na mapie", loginSaved: "Login zapisany — Twoje konto można bezpiecznie odzyskać.", whyBother: "Po co się tym przejmować?", why1Title: "Każdy spot, jedna mapa", why1Body: "Krawężniki, poręcze, DIY, parki — mapowane przez skaterów, którzy naprawdę na nich jeżdżą. Sprawdź status, zanim ruszysz, żeby nie zmarnować sesji na wyproszeniu.", why2Title: "Tworzone przez skaterów, nie garnitury", why2Body: "Bez reklam, bez algorytmu wpychającego śmieci w Twarz, bez zbierania danych. Open source. Mapa należy do społeczności — w tym do Ciebie.", why3Title: "Zarabiaj za jeżdżenie", why3Body: "Zamapuj perełkę, nagraj kocura, poprowadź sesję — i zgarniaj prawdziwego Bitcoina zapsem prosto do portfela. Bez prowizji platformy, bez pośredników.", why4Title: "Twoje konto naprawdę należy do Ciebie", why4Body: "Jeden klucz loguje Cię do każdej aplikacji Nostr. Żadna firma nie może Cię zablokować ani usunąć konta według kaprysu. Zabierz swoją tożsamość wszędzie.", everythingFree: "Wszystko, co możesz robić — za darmo", featSpots: "Odkrywaj spoty", featSpotsDesc: "Interaktywna mapa z tysiącami spotów na całym świecie", featLab: "The Lab", featLabDesc: "Znajdź trenerów, filmerów i montażystów wideo w pobliżu", featEvents: "Wydarzenia", featEventsDesc: "Zawody, sesje, spotkania", featGear: "Kup / sprzedaj sprzęt", featGearDesc: "Marketplace peer-to-peer na używany sprzęt skate", featStash: "My Stash", featStashDesc: "Prywatny, zaszyfrowany inwentarz wszystkiego, co posiadasz", featCrews: "Ekipy", featCrewsDesc: "Jeźdź ze swoją ekipą — wspólne spoty, czat i sesje", whatIsNostr: "Czym jest Nostr?", whatIsNostrSub: "Protokół, który napędza SkateSpots", nostrBefore: "Nostr to otwarty protokół — jak e-mail, ale dla aplikacji społecznościowych. Twoje konto to", cryptoKeyPair: "para kluczy kryptograficznych", nostrAfter: "która należy do Ciebie. Żadna pojedyncza firma nie kontroluje Twojego konta ani danych — Ty wybierasz, które relaye je przechowują, i możesz nawet uruchomić własny. Twoja tożsamość działa w każdej aplikacji Nostr.", nostrPoint1: "Posiadasz swoje dane i klucze", nostrPoint2: "Żadna firma nie może Cię zbanować", nostrPoint3: "Tożsamość działa wszędzie", nostrPoint4: "Bezpośrednie napiwki Bitcoin", deepDive: "Głębiej: jak działa Nostr", privacyTip: "Wskazówka o prywatności: Twój GPS nigdy nie opuszcza urządzenia. Serwery, z którymi się łączysz (np. kafle mapy), nadal mogą widzieć Twoje IP — jeśli chcesz ukryć i to, VPN lub Tor działa. Całkowicie opcjonalne.", readPrivacy: "Przeczytaj naszą stronę o prywatności", zapsWallet: "⚡ Zapsy i portfel", optional: "Opcjonalne", walletDesc: "Zapsy to napiwki Bitcoin, które wysyłasz bezpośrednio skaterowi, który dodał zajebisty spot, nagrał kocura lub poprowadził świetną sesję. Bez opłat platformy. Bez pośredników. 100% trafia do niego.", builtInWallet: "Wbudowany portfel Cashu", builtInWalletDesc: "Otrzymuj płatności Lightning prosto w aplikacji. Bez konfiguracji.", balance: "Saldo", connectExternal: "Połącz zewnętrzny portfel", connectExternalDesc: "Masz Alby, Mutiny lub inny portfel? Połącz go przez NWC.", connectViaNwc: "Połącz przez NWC", loginToConnect: "Zaloguj się, aby połączyć własny portfel.", fiveDollars: "💡 5 $ w Bitcoinie = setki zapsów do rozdania w społeczności", commonQuestions: "Częste pytania", faq1Q: "Czy SkateSpots jest darmowy?", faq1A: "W 100% darmowy. Przeglądaj spoty, dodawaj lokalizacje, znajdź trenerów, twórz wydarzenia, dołączaj do sesji — wszystko darmowe, na zawsze. Bitcoin (zapsy) jest opcjonalny, jeśli chcesz dawać napiwki twórcom.", faq2Q: "Czym jest Nostr i dlaczego SkateSpots go używa?", faq2Before: "Nostr to otwarty protokół dla zdecentralizowanych aplikacji — pomyśl o nim jak o samym internecie, nieposiadanym przez żadną firmę. Twoje konto SkateSpots to para kluczy kryptograficznych, którą", faq2Strong: "posiadasz", faq2After: ". Żadna pojedyncza firma nie może zbanować Twojego konta ani przetrzymywać Twoich danych jako zakładnika — Ty wybierasz, które relaye przechowują Twoje dane, i możesz nawet uruchomić własne. Twoja tożsamość działa też w innych aplikacjach Nostr, takich jak Primal, Damus czy Amethyst.", faq3Q: "Czym jest nsec i dlaczego jest ważny?", faq3Before: "Twój", faq3Mid: "to Twój klucz prywatny — jedyny dowód, że posiadasz swoje konto. W przeciwieństwie do haseł istnieje", faq3Strong: "brak „nie pamiętam hasła”", faq3After: ". Jeśli zgubisz swój nsec, Twoje konto przepadnie na zawsze. Gdy tworzysz konto, od razu pobierz kopię zapasową i przechowuj ją w bezpiecznym miejscu (menedżer haseł, zapisana offline).", faq4Q: "Które signery / aplikacje działają ze SkateSpots?", faq4Desktop: "Na komputerze:", faq4Extensions: "rozszerzenia przeglądarki.", faq4Android: "Na Androidzie:", faq4AndroidAfter: "(najlepsze doświadczenie z aplikacją natywną).", faq4Ios: "Na iOS:", faq4IosAfter: "lub wklej swój nsec bezpośrednio (mniej bezpieczne).", faq4Note: "Możesz też zalogować się, wklejając swój nsec bezpośrednio — ale użycie rozszerzenia signera jest bezpieczniejsze.", faq5Q: "Czy mogę używać SkateSpots na telefonie?", faq5Before: "Tak! SkateSpots to PWA (Progressive Web App). Odwiedź", faq5Mid: "w przeglądarce telefonu i dotknij", faq5Em: "„Dodaj do ekranu głównego”", faq5After: "aby uzyskać pełne doświadczenie aplikacji. Możesz też pobrać ją z", faq5End: "— zdecentralizowanego sklepu z aplikacjami.", faq6Q: "Czym jest zap?", faq6A: "Zap to natychmiastowy napiwek Bitcoin wysyłany przez Lightning Network. Gdy wysyłasz zaps skaterowi, sats trafiają do jego portfela w kilka sekund — bez PayPal, bez Venmo, bez prowizji. Osoba, która nagrała ten set, dostaje zapłatę bezpośrednio od fanów.", faq7Q: "Czy moje spoty zostaną usunięte, jeśli SkateSpots zostanie zamknięty?", faq7A: "Nie. Twoje spoty są publikowane na relayach Nostr — rozproszonych serwerach, które każdy może prowadzić. Nawet jeśli SkateSpots jako produkt zniknąłby jutro, Twoje dane nadal istniałyby na relayach i każdy klient Nostr mógłby je wyświetlić.", faq8Q: "Czy mogę dodać spot na prywatnym terenie?", faq8A: "Możesz, ale kieruj się zdrowym rozsądkiem. Spoty na prywatnym terenie powinny być odpowiednio oznaczone, żeby skaterzy wiedzieli, na czym stoją. SkateSpots nie odpowiada za wtargnięcie — zawsze szanuj właścicieli i miejscowych.", faq9Q: "Jak zgłosić błąd lub przekazać opinię?", faq9Before: "Napisz bezpośrednio do zespołu SkateSpots na Nostr lub skontaktuj się z naszym koordynatorem bety:", faq9Link: "Opinie o becie → cordn.net", readyToShred: "GOTOWY DO SHREDOWANIA?", stopScrolling: "Przestań przewijać. Weź aplikację. Znajdź spot. Pojeźdź.", exploreSpots: "Przeglądaj spoty", betaFeedbackTitle: "Beta — chcemy Twojej opinii", betaFeedbackDesc: "SkateSpots jest w aktywnym rozwoju. Możesz natrafić na niedoróbki — to nasza wina, nie Twoja. Zgłaszaj błędy, proponuj funkcje, mów nam, co jest do bani.", betaCoordinator: "Koordynator bety", betaCoordinatorDesc: "cordn.net → napisz do nas", dmOnNostr: "DM na Nostr", fixSameDay: "Znalazłeś błąd? Naprawiamy go tego samego dnia. Twoje zgłoszenia czynią aplikację lepszą dla każdego skatera.", relaySetup: "Konfiguracja relayów" }, relayEdu: { understandingNostr: "Zrozumieć Nostr", stepOf: "Krok {{current}} z {{total}}", step1Title: "Zrozumieć relaye", step1Desc: "Wyobraź sobie relaye jako sklepy skate'owe, które dzielą się wieściami o spotach", you: "Ty", relays: "Relaye", skaters: "Skaterzy", s1Good1: "Żadna firma nie jest właścicielem Twojego konta", s1Good1Desc: "Twoja tożsamość mieszka na wielu serwerach relay", s1Good2: "Kontrolujesz, gdzie mieszkają Twoje dane", s1Good2Desc: "Twoje posty synchronizują się między wybranymi relayami — wybierz własne lub uruchom własny", s1Warn: "Operatorzy relayów widzą publiczne posty", s1WarnDesc: "Pomyśl o tym jak o publikowaniu na tablicy ogłoszeń", step2Title: "Publiczne vs prywatne", step2Desc: "Wiedz, co jest widoczne, a co zaszyfrowane", publicTitle: "Publiczne (każdy może zobaczyć)", pub1: "Spoty, które dodajesz do mapy", pub2: "Opinie i komentarze", pub3: "Informacje z Twojego profilu (imię, zdjęcie)", pub4: "Kogo obserwujesz", privateTitle: "Prywatne (zaszyfrowane)", priv1: "Wiadomości bezpośrednie", priv2: "Komunikacja z portfelem", noteStrong: "Uwaga:", note: "Posty mogą być przechowywane na relayach na stałe. Pomyśl, zanim coś opublikujesz — tak jak w prawdziwym życiu!", step3Title: "Twoje klucze = Twoje konto", step3Desc: "To najważniejsza rzecz do zrozumienia", secretKeyTitle: "Twój klucz tajny (nsec)", secretKeyDesc: "Pomyśl o nim jak o swojej desce — nigdy nikomu jej nie pożyczaj. Potwierdza, że posiadasz swoje konto.", s3Bad1: "Jeśli go zgubisz, konta nie da się odzyskać", s3Bad2: "Bez „nie pamiętam hasła” — nikt nie może go zresetować", s3Good: "Zrób kopię zapasową i przechowuj go bezpiecznie", publicKeyTitle: "Twój klucz publiczny (npub)", publicKeyDesc: "To jak Twoja nazwa użytkownika — udostępniaj go swobodnie, aby inni mogli Cię znaleźć!", inControl: "🔐 Masz kontrolę — żadna firma nie może Cię zablokować!", skip: "Pomiń", gotIt: "Rozumiem!" }, about: { seoTitle: "O nas — SkateSpots", seoDescription: "Dowiedz się o SkateSpots i naszej misji budowania zdecentralizowanej społeczności skateboardingu.", npubCopied: "npub skopiowany do schowka. Wklej go w ulubionym kliencie Nostr, aby wysłać DM.", bugReport: "🐛 Zgłoszenie błędu", bugWhatHappened: "Co się stało:", bugExpected: "Czego oczekiwałem:", bugSteps: "Kroki do odtworzenia:", aboutWord: "O NAS", heroBefore: "Łącz się z lokalnymi scenami skate'owymi na całym świecie.", skaterOwned: "Dane należące do skaterów", heroAfter: ", relaye prowadzone przez społeczność.", viewStats: "Zobacz statystyki społeczności", missionTitle: "Nasza misja", mission1: "SkateSpots pomaga skaterom odkrywać spoty, łączyć się z profesjonalistami w The Lab i organizować sesje — bez korporacyjnej kontroli. Prawdziwe jeżdżenie dzieje się offline, to narzędzie tylko Cię z nim łączy.", mission2: "Wiedza o skateboardingu powinna mieszkać ze społecznością, a nie być zamknięta w korporacyjnych aplikacjach. Dlatego SkateSpots działa na Nostr — systemie opartym na relayach, w którym skaterzy kontrolują własne dane, wybierają, które relaye je przechowują, i mogą nawet uruchomić własne. Żadna firma nie jest właścicielem mapy.", whyNostr: "Dlaczego Nostr?", why1Title: "Kontrolowany przez społeczność", why1Desc: "Twoje spoty mieszkają na relayach społeczności. Serwery prowadzą skaterzy, nie korporacje.", why2Title: "Posiadasz swoje dane", why2Desc: "Twoja tożsamość Nostr należy do Ciebie. Zabierz ją do dowolnej aplikacji Nostr — bez przywiązania.", why3Title: "Integracja z Bitcoinem", why3Desc: "Wysyłaj zapsy twórcom bezpośrednio w Bitcoinie. Żadna platforma nie zabiera 30%.", why4Title: "Open source", why4Desc: "Tworzony otwarcie. Każdy może współtworzyć lub rozwidlić kod.", getInvolved: "Zaangażuj się", getInvolvedDesc: "SkateSpots jest open source i napędzany przez społeczność. Współtwórz kod, udostępniaj spoty lub pomagaj innym zacząć.", betaTitle: "Testy beta", betaDesc: "Drogi Użytkowniku! Dziękujemy za testowanie SkateSpots w wersji beta. Pamiętaj, że aplikacja jest wciąż w fazie beta i mogą występować błędy lub problemy z bezpieczeństwem. Jeśli napotkasz problemy lub chcesz zgłosić błąd, odezwij się!", giveFeedback: "Przekaż nam opinię:", copyNpub: "Kopiuj npub", reportBug: "Zgłoś błąd", viewProfile: "Zobacz profil", downloadApp: "Pobierz aplikację", downloadAppDesc: "Zainstaluj SkateSpots na Androidzie przez Zapstore — open source'owy sklep z aplikacjami natywny dla Bitcoina.", getOnZapstore: "Pobierz z Zapstore", credits: "Twórcy", creditPoweredBy: "Napędzane przez", creditNostr: "Zdecentralizowany protokół", creditCrewChat: "Czat ekipy przez", creditCordn: "Kompleksowo szyfrowany czat grupowy", creditEcash: "Ecash przez", creditCashu: "Ecash Chaumiana dla Lightning", creditWalletConnect: "Połączenie z portfelem przez", creditNwc: "Nostr Wallet Connect (NIP-47)", creditSigning: "Podpisywanie na Androidzie z", creditAmber: "Signer Nostr na Androida", creditMapData: "Dane mapy Bitcoin z", creditBtcmap: "Miejsca akceptujące Bitcoina", creditCrowdfunding: "Crowdfunding", creditAngor: "Zdecentralizowany crowdfunding Bitcoin", creditDistributed: "Dystrybuowane przez", creditZapstore: "Sklep z aplikacjami open source", creditTrust: "Zaufanie i czat ekipy przez", creditContextvm: "Oceny zaufania Relatr i koordynacja szyfrowanego czatu ekipy", stillQuestions: "Masz jeszcze pytania?", stillQuestionsDesc: "Sasquatch to nasz przewodnik AI — napędzany danymi SkateSpots na żywo. Zapytaj go o spoty, wydarzenia, trenerów, sprzęt lub jak coś działa.", askSasquatch: "Zapytaj The Sasquatch", poweredBy: "Napędzane przez", decentralized: "Zdecentralizowany", communityOwned: "Należący do społeczności" }, faq: { seoTitle: "FAQ — SkateSpots", seoDescription: "Zapytaj The Sasquatch o cokolwiek związanego z SkateSpots.", greeting: "Hej! Jestem The Sasquatch 🦧 — pytaj mnie o cokolwiek związanego z SkateSpots. Spoty, wydarzenia, sprzęt, portfele, prywatność, Nostr — służę pomocą. Co chcesz wiedzieć?", gotQuestions: "Masz pytania?", heroDesc: "Zapytaj The Sasquatch — wie wszystko o SkateSpots, Nostr, Bitcoinie i skateboardingu.", askTitle: "Zapytaj The Sasquatch", askDesc: "The Sasquatch jest otwarty w lewym dolnym rogu ekranu — kliknij go i wpisz swoje pytanie. Ma dostęp na żywo do spotów, wydarzeń, trenerów i pogody.", askQuestion: "W czym możesz mi pomóc w SkateSpots?", openSasquatch: "Otwórz The Sasquatch", commonQuestions: "Częste pytania — dotknij, aby zapytać", quickAnswers: "Szybkie odpowiedzi", footerHint: "The Sasquatch korzysta z danych Nostr na żywo z relaya SkateSpots + AI, aby odpowiadać na Twoje pytania. 🛹", chip1Label: "Czym jest SkateSpots?", chip1Q: "Czym jest SkateSpots i jak działa?", chip2Label: "Jak dodać spot?", chip2Q: "Jak dodać spot do mapy?", chip3Label: "Czym są zapsy?", chip3Q: "Czym są zapsy?", chip4Label: "Czy to darmowe?", chip4Q: "Czy SkateSpots jest darmowy?", chip5Label: "Czym jest My Stash?", chip5Q: "Czym jest My Stash?", chip6Label: "Jak się zalogować?", chip6Q: "Jak się zalogować lub utworzyć konto?", chip7Label: "Czym jest Nostr?", chip7Q: "Czym jest Nostr?", chip8Label: "Prywatność i dane", chip8Q: "Które dane są publiczne, a które prywatne w SkateSpots?", chip9Label: "Jak sprzedać sprzęt?", chip9Q: "Jak sprzedać sprzęt na SkateSpots?", chip10Label: "Czym jest The Lab?", chip10Q: "Czym jest The Lab?", fact1Label: "Spoty na całym świecie", fact1Value: "Odkrywaj i dodawaj", fact2Label: "Zapsy Bitcoin Lightning", fact2Value: "100% darmowe", fact3Label: "Zdecentralizowany na Nostr", fact3Value: "Posiadasz swoje dane", fact4Label: "Prywatny inwentarz sprzętu", fact4Value: "Zaszyfrowany Stash", s1Q: "Czym jest SkateSpots?", s1A: "Zdecentralizowana mapa i społeczność skateboardingu, zbudowana na Nostr. Odkrywaj spoty, znajdź trenerów i filmerów, dołączaj do ekip, publikuj wydarzenia i kupuj/sprzedawaj sprzęt — bez firmy pośrodku.", s2Q: "Jak dodać spot?", s2A: "Dotknij mapy lub użyj przycisku + / „Dodaj spot”, następnie upuść pinezkę i wypełnij szczegóły. Potrzebujesz darmowego konta Nostr (dotknij Zaloguj się → Utwórz konto — e-mail nie jest wymagany).", s3Q: "Czym są zapsy?", s3A: "Zapsy to napiwki Bitcoin Lightning. Możesz wysyłać zapsy spotom, wydarzeniom, ekipom i osobom, które doceniasz. Trafiają prosto do odbiorcy przez Lightning — SkateSpots nigdy nie przechowuje Twoich środków.", s4Q: "Czy to darmowe?", s4A: "Tak. Tworzenie konta, dodawanie spotów i przeglądanie są darmowe. Opcjonalne płatne dodatki (np. wyróżnione ogłoszenia) i napiwki (zapsy) są płacone bezpośrednio między ludźmi.", s5Q: "Które dane są publiczne?", s5A: "Wszystko, co publikujesz — spoty, wydarzenia, Twój profil — jest publiczne na relayach Nostr. Twoje prywatne wiadomości i Twój Stash są kompleksowo szyfrowane. Szczegóły znajdziesz na stronie Prywatność.", s6Q: "Czym jest The Lab?", s6A: "The Lab to miejsce, w którym znajdziesz osoby do zatrudnienia lub nauki: trenerów, szkoleniowców, filmerów, montażystów wideo, fotografów, budowniczych, artystów i innych." }, privacy: { seoTitle: "Prywatność — SkateSpots", seoDescription: "Jak SkateSpots obchodzi się z Twoimi danymi: Twój GPS zostaje na urządzeniu, publikowane spoty są publiczne, a oto jak ukryć IP przez VPN lub Tor, jeśli chcesz.", heroBefore: "Twoja", heroHighlight: "Prywatność", heroDesc: "Bez śledzenia, bez reklam, bez sprzedaży danych. Oto dokładnie, co zostaje na Twoim urządzeniu, co jest publiczne i jak dodatkowo się zabezpieczyć, jeśli chcesz.", locationTitle: "Twoja lokalizacja zostaje na urządzeniu", locationBefore: "Gdy dotkniesz", nearMe: "„W pobliżu”,", locationAfter: "Twoja lokalizacja GPS jest odczytywana na urządzeniu i używana tylko do wyśrodkowania mapy i sortowania pobliskich spotów.", locationGood1: "Nigdy nie jest publikowana w Nostr.", locationGood2: "Nigdy nie jest wysyłana do SkateSpots — nie ma serwera SkateSpots, który by ją zbierał.", locationGood3: "Nigdy nie jest udostępniana żadnej stronie trzeciej.", locationGood4: "W aplikacji natywnej używamy bezpośrednio systemu lokalizacji telefonu i pomijamy Google Play Services — więc działa na telefonach bez Google (GrapheneOS, /e/OS), a Google nigdy jej nie widzi.", weatherBefore: "Pogoda jest domyślnie wyłączona. Gdy ją włączysz, sprawdza warunki dla", weatherEm: "publicznej", weatherAfter: "lokalizacji spotu — nie Twojej.", publicTitle: "Co jest publiczne z założenia", publicDesc: "SkateSpots to wspólna mapa, więc niektóre rzeczy są przeznaczone dla wszystkich. Gdy zdecydujesz się je opublikować, są publiczne w sieci Nostr:", public1Strong: "Spoty, które dodajesz", public1: "— wraz z ich współrzędnymi. Jeśli dodasz spot w swojej dokładnej lokalizacji, ta lokalizacja staje się publiczna. Pomyśl, zanim upuścisz pinezkę na własnym podjeździe.", public2Strong: "Opinie, komentarze i Twój publiczny profil", public2: "(imię, zdjęcie).", public3: "Kogo obserwujesz i publiczne reakcje.", public4Strong: "Zapsy", public4: "są domyślnie publiczne: zap łączy Twoje konto — często Twój adres Lightning — z postem, za który zapłaciłeś, i z samym napiwkiem. Twój portfel może wysłać go anonimowo, jeśli wolisz, żeby tak nie było.", publicNoteBefore: "VPN lub Tor", notWord: "nie", publicNoteAfter: "ukrywa treści tego, co publikujesz — współrzędne spotu są publiczne niezależnie od tego. Narzędzia prywatności ukrywają Twoją tożsamość sieciową (IP), a nie rzeczy, które zdecydujesz się opublikować.", encryptedTitle: "Co jest prywatne i zaszyfrowane", enc1Strong: "Wiadomości bezpośrednie", enc1Mid: "i", enc1Strong2: "czaty ekip", enc1: "są kompleksowo szyfrowane (NIP-17). Tylko uczestnicy mogą je czytać.", enc2Strong: "My Stash", enc2: "— Twój prywatny inwentarz sprzętu — jest zaszyfrowany Twoim własnym kluczem.", enc3Strong: "Członkowie tylko swojej ekipy", enc3: "mogą wybrać widoczność wyłącznie dla swoich kolegów z ekipy.", ipTitle: "Co opuszcza Twoje urządzenie: Twoje IP", ipBefore: "Jak każda strona internetowa, serwery, z którymi rozmawia SkateSpots, mogą zobaczyć Twój", ipAddress: "adres IP", ipAfter: "(przybliżony wskaźnik Twojego regionu). To normalne dla każdej aplikacji webowej i mapowej i nie jest czymś, co wyróżnia nas. Te serwery to:", ipTileStrong: "Kafle mapy", ipTile: "(OpenStreetMap) — widzą Twoje IP i to, na który obszar mapy patrzysz.", ipGeoStrong: "Geokodowanie spotów/sklepów", ipGeo: "— gdy tworzysz lub edytujesz spot lub sklep, jego współrzędne trafiają do OpenStreetMap Nominatim, aby uzupełnić tag miasta/kraju. Gdy otwierasz Statystyki społeczności, współrzędne pinezek bez tagu lokalizacji trafiają do BigDataCloud, aby można je było pogrupować według regionu (buforowane na urządzeniu — najwyżej raz na pinezkę). Oba widzą Twoje IP. To pinezka, którą umieściłeś / publiczne współrzędne pinezki, nigdy bieżący GPS Twojego urządzenia.", ipPushStrong: "Powiadomienia w tle", ipPush: "(opcjonalne) — jeśli je włączysz, serwer push SkateSpots widzi, że Twój klucz coś otrzymał i kiedy (nigdy kto to wysłał ani co mówi — wiadomości pozostają zaszyfrowane), a usługa push Twojego systemu (Google/Mozilla/Apple) dostarcza alert.", ipBtcStrong: "Miejsca Bitcoin", ipBtc: "(BTCMap, gdy włączysz tę warstwę) — widzą Twoje IP i obszar, który przeglądasz.", ipRelayStrong: "Relaye Nostr", ipRelay: "— widzą Twoje IP, gdy aplikacja czyta lub publikuje.", ipMintStrong: "Minty Cashu", ipMint: "— widzą Twoje IP, gdy Twój portfel wysyła, odbiera lub wymienia.", ipRouteStrong: "Trasy", ipRoute: "(OSRM, a dla transportu publicznego Transitous) — otrzymują początek i koniec każdej trasy, o którą poprosisz, nie tylko Twoje IP. Wyznaczanie trasy zostaje w aplikacji: Twój start i cel nigdy nie są przekazywane do Map Google ani Apple.", ipWeatherStrong: "Pogoda", ipWeatherMid: "(Open-Meteo, opcjonalnie) i", ipUploadStrong: "przesyłanie obrazów", ipWeather: "(Blossom), gdy z nich korzystasz.", ipAiStrong: "AI Sasquatcha", ipAi: "— Twoja wiadomość trafia na nasz własny serwer, a następnie do dostawcy modelu.", ipLink1: "Ponieważ wysyłasz swój klucz publiczny (npub) na tym samym połączeniu, relay może powiązać Twoje IP z Tobą — nie tylko „ktoś się połączył”, ale „ta osoba, z tego adresu”.", ipShieldBefore: "Jedna rzecz, którą osłaniamy:", ipMintsStrong: "katalog mintów", ipShieldAfter: "jest pobierany przez nasz serwer, więc MintRadar nigdy nie widzi Twojego IP.", vpnTitle: "Chcesz więcej prywatności? VPN lub Tor (opcjonalnie)", vpnDesc: "Dla większości skaterów nie jest to konieczne — ale jeśli chcesz ukryć swoje IP i przybliżoną lokalizację przed powyższymi serwerami, masz dwie darmowe opcje:", vpnReputable: "🛡️ Zaufany VPN", vpnReputableDesc: "Ukrywa Twoje IP za serwerami VPN. Łatwy i szybki. Używaj takiego, za który płacisz i któremu ufasz; darmowe VPN-y zwykle zarabiają na Twoim ruchu, więc „darmowy” traktuj jako sygnał ostrzegawczy.", torBrowser: "🧅 Przeglądarka Tor", torDesc: "Darmowa, maksymalna prywatność IP, prowadzi ruch przez wiele relayów. Wolniejsza — mapy i niektóre relaye Nostr mogą zwalniać lub blokować węzły wyjściowe Tora. Świetna dla szczególnie ostrożnych.", readThis: "Przeczytaj to, żeby się nie dać nabrać", caveat1Before: "VPN/Tor ukrywa Twój", ipWord: "IP", caveat1: "— a nie spoty, które publikujesz. Pinezka w Twoim domu jest publiczna niezależnie od tego, czy używasz VPN.", caveat2Before: "Nie włączaj", nearMeGps: "„W pobliżu” / GPS przeglądarki", caveat2: "jeśli zależy Ci na anonimowości — dokładny GPS niweczy każde ukrycie IP.", caveat3: "Żadne narzędzie nie czyni Cię w pełni „anonimowym”. To tylko ogranicza to, co serwery mogą wywnioskować o Twojej lokalizacji sieciowej — i tyle.", keysTitle: "Twoje klucze, Twoje konto", keysBefore: "Twoje konto to para kluczy kryptograficznych, którą posiadasz. Najbezpieczniejszym sposobem logowania jest", signer: "signer", keysAfter: "(Alby, nos2x lub Amber na Androidzie), aby Twój klucz tajny nigdy nie został wklejony do aplikacji.", keysCaveatBefore: "Jeśli wkleisz swój", keysCaveatAfter: "bezpośrednio, zostanie zapisany w przeglądarce. Gdy możesz, użyj rozszerzenia signera i trzymaj kopię zapasową nsec w bezpiecznym miejscu offline.", footerBefore: "Pytania? Zapytaj", sasquatchName: "The Sasquatch", footerMid: "w aplikacji lub przeczytaj", gettingStarted: "przewodnik na start", about: "O nas" }, license: { seoTitle: "Licencja — SkateSpots", seoDescription: "Licencja SkateSpots. Możesz swobodnie jeździć na deskorolce.", tagline: "Jeźdź, zarabiaj, baw się dobrze i wydawaj Sats, gdziekolwiek jesteś.", copyright: "Współtwórcy SkateSpots i społeczność", licenseLabel: "Licencja", freeLine1: "MASZ WOLNOŚĆ", freeLine2: "JEŹDZIĆ NA DESKOROLCE", body: "Ten projekt jest otwarty. Udostępniaj go, rozwidlaj, buduj na nim, jeźdź. Ulice należą do wszystkich. Ten kod też. Jeźdź dalej, baw się dobrze, ucz się trików, wspieraj budowniczych i jeźdź znowu.", builtBefore: "Zbudowane z ❤️ na", builtMid: "· Napędzane przez", lightning: "Bitcoin Lightning ⚡", viewSource: "Zobacz źródło", aboutSkateSpots: "O SkateSpots", supporters: "Wspierający" }, glossary: { seoTitle: "Glosariusz trików · SkateSpots", seoDescription: "Kompletny glosariusz skateboardingu — {{count}} haseł obejmujących flips, grinds, slides, grabs, airs, tricki na lipie, handplante, freestyle, terminy transition, stance i sprzęt, wraz z alternatywnymi nazwami.", heading: "GLOSARIUSZ TRIKÓW", subheading: "{{count}} haseł · tricki, transition, freestyle, stance i sprzęt", searchPlaceholder: "Szukaj trików lub przezwisk — tre flip, crooks, method…", clearSearch: "Wyczyść wyszukiwanie", all: "Wszystkie", results: "{{count}} wynik{{s}} dla", noMatch: "Żaden trik nie pasuje. Spróbuj przezwiska takiego jak „tre flip”, „crooks” lub „melon”.", tricksCount: "{{count}} trików", footerBefore: "Znasz trik lub przezwisko, które przegapiliśmy? Triki dostają różne nazwy w każdej scenie — napisz do", sasquatch: "The Sasquatch 🦧", footerAfter: "i daj nam znać." }, signers: { seoTitle: "Aplikacje signera — zabezpiecz klucze Nostr | SkateSpots", seoDescription: "Dowiedz się o aplikacjach signera, które chronią Twoje klucze Nostr. Znajdź najlepszą opcję na Androida, iOS lub przeglądarkę na komputerze.", securityGuide: "Przewodnik po bezpieczeństwie", protect: "Chroń swoje", nostrKeys: "klucze Nostr", heroDesc: "Aplikacje signera chronią Twoje klucze prywatne, podpisując wydarzenia bez ich ujawniania. Zamiast wklejać klucz do każdej aplikacji, pozwól signerowi zrobić to bezpiecznie.", whySignerStrong: "Po co używać signera?", whySigner: "Twój klucz prywatny Nostr jest jak hasło, którego nie można nigdy zmienić. Aplikacja signera chroni go, pozwalając korzystać z dowolnej aplikacji Nostr.", androidTitle: "Signery na Androida", androidDesc: "Natywne aplikacje signera na urządzenia z Androidem, w tym GrapheneOS.", iosTitle: "Signery na iOS", iosDesc: "Opcje signera dla użytkowników iPhone'a i iPada.", browserTitle: "Rozszerzenia przeglądarki", browserDesc: "Rozszerzenia do przeglądarek na komputerze do podpisywania w aplikacjach webowych.", recommended: "Zalecane", yourPlatform: "Twoja platforma", get: "Pobierz {{name}}", protocolsTitle: "Zrozumieć protokoły", nip07Desc: "Standard rozszerzeń przeglądarki. Rozszerzenie wstrzykuje możliwości podpisywania do aplikacji webowych. Używany przez Alby, nos2x, Flamingo i podobne rozszerzenia.", nip46Desc: "Protokół zdalnego podpisywania („bunker”). Twoja aplikacja signera zatwierdza żądania z innych aplikacji bez udostępniania kluczy. Używany przez Nsec.app, Nostria i Nowser.", nip55Desc: "Protokół signera specyficzny dla Androida. Aplikacje natywne mogą prosić Amber o podpisy bez ujawniania kluczy. Najpłynniejsze doświadczenie na Androidzie.", whichChoose: "Co wybrać?", chooseAndroid: "Android:", chooseAndroidDesc: "Amber (NIP-55) dla aplikacji natywnych", chooseIos: "iOS:", chooseIosDesc: "Nsec.app (NIP-46) dla najlepszej zgodności", chooseDesktop: "Komputer:", chooseDesktopDesc: "Alby, nos2x lub Flamingo (NIP-07)", amberDesc: "Natywny signer na Androida skupiony na bezpieczeństwie i łatwości użycia. Najlepszy wybór dla użytkowników Androida.", nsecAppDesc: "Wieloplatformowy zdalny signer działający jako bezpieczny sejf na Twoje klucze.", nostriaDesc: "Aplikacja zdalnego signera z kluczami przechowywanymi w bezpiecznej pamięci urządzenia.", nowserDesc: "Signer z wieloma metodami uwierzytelniania obsługujący zarówno rozszerzenia przeglądarki, jak i protokoły zdalnego podpisywania.", nsecAppIosDesc: "Najlepsza opcja na iOS. Używaj go jako zdalnego signera z dowolnym klientem Nostr.", nowserTfDesc: "Signer na iOS dostępny przez TestFlight z możliwościami podpisywania podobnymi do Androida.", nostriaIosDesc: "Zdalny signer z bezpiecznym przechowywaniem kluczy na urządzeniu.", nos2xDesc: "Proste i niezawodne rozszerzenie przeglądarki do podpisywania wydarzeń Nostr.", albyDesc: "Portfel Bitcoin Lightning z wbudowanym zarządzaniem kluczami Nostr i WebLN.", flamingoDesc: "Rozszerzenie przeglądarki skupione na Nostr z przejrzystym interfejsem.", kiwiDesc: "Na Androidzie/GrapheneOS użyj przeglądarki Kiwi, aby załadować rozszerzenia nos2x lub Alby.", fNativeApp: "Aplikacja natywna", fMultiKey: "Obsługa wielu kluczy", fEventSigning: "Podpisywanie wydarzeń", fSecureStorage: "Bezpieczne przechowywanie kluczy", fRemoteSigning: "Zdalne podpisywanie", fAnyClient: "Działa z dowolnym klientem", fCrossDevice: "Synchronizacja między urządzeniami", fMultiKeySupport: "Obsługa wielu kluczy", fNip07: "Obsługa NIP-07", fNip46: "Obsługa NIP-46", fFlexibleSigning: "Elastyczne podpisywanie", fNativeIos: "Natywna aplikacja na iOS", fLightweight: "Lekki", fEasyToUse: "Łatwy w użyciu", fChromeSupport: "Obsługa Chrome/Brave/Edge", fLightningPayments: "Płatności Lightning", fNostrSigning: "Podpisywanie Nostr", fWebln: "Obsługa WebLN", fNwc: "Obsługa NWC", fCleanUi: "Przejrzysty interfejs", fPrivacyFocused: "Nastawiony na prywatność", fExtensionMobile: "Obsługa rozszerzeń na telefonie", fFullBrowser: "Pełne doświadczenie przeglądarki", fGraphene: "Działa na GrapheneOS" }, betaDisclaimer: { title: "Uwaga — to wersja beta", subtitle: "Kilka słów, zanim wskoczysz.", ossTitle: "Open source i eksperymentalne", ossBody: "Tworzone otwarcie przez społeczność. Grzeb w nim, rozwidlaj, psuj.", betaTitle: "W wersji beta — bez audytu", betaBody: "Kod nie przeszedł jeszcze formalnego audytu bezpieczeństwa. Błędy się zdarzają.", moneyTitle: "Obsługuje prawdziwego Bitcoina i Lightning", moneyBody: "Używaj na nim pieniędzy na własne ryzyko. Ładuj tylko tyle, ile możesz stracić.", finePrint: "Bez jakiejkolwiek gwarancji. Odpowiadasz wyłącznie za własne środki i klucze.", viewCode: "Zobacz kod", accept: "Rozumiem, wpuszczaj mnie" } }, }; export default plBatch3;