/** * pl — batch 6: places / marketplace / lab option labels. * * Keep English: Spot, Shop, Event, Tour, Crew, Gear, Deck, Trucks, Wheels, * Bearings, Griptape, Stash, The Lab, Nostr, Lightning, Zap, Relay, sats, * Marketplace, WTB, escrow, mint, npub, CLINK, RSVP, KOTR; trick/brand names. * `{{placeholders}}` are preserved exactly. * * Keys MUST match the `en` namespaces exactly; missing keys fall back to * English (the `check:i18n` script reports Polish coverage). */ const plBatch6 = { placesUi: { addToCalendar: { add: "Dodaj do kalendarza", appleOutlook: "Apple / Outlook (.ics)", google: "Kalendarz Google", }, attendees: { goingCount: "idzie", goingTab: "Idą ({{count}})", interestedTab: "Zainteresowani ({{count}})", nobodyGoing: "Nikt jeszcze nie potwierdził.", nobodyInterested: "Nikt jeszcze nie oznaczył zainteresowania.", noRsvps: "Brak RSVP — bądź pierwszą osobą, która potwierdzi udział.", trusted: "Zaufany", trustedTitle: "Osoba, którą obserwujesz, lub zaufany twórca mapy", youTrust: "któremu ufasz", }, bounty: { addressCoords: "Adres i współrzędne", basic: "Podstawowe", contactInfo: "Dane kontaktowe", description: "Opis", earningPotential: "Możliwości zarobku", excellent: "Doskonale!", gettingStarted: "Pierwsze kroki", good: "Dobrze", onePhoto: "Co najmniej 1 zdjęcie", openingHours: "Godziny otwarcia", shopName: "Nazwa Shopu", threePhotos: "3+ zdjęcia", tip: "💡 Wyższa jakość = więcej Zapów od społeczności!", }, calendar: { allDay: "Cały dzień", eventDay: "Dzień Eventu", eventsOnDay: "{{count}} Eventów", eventsThisMonth: "Eventów w tym miesiącu", going: "idzie", months: { january: "Styczeń", february: "Luty", march: "Marzec", april: "Kwiecień", may: "Maj", june: "Czerwiec", july: "Lipiec", august: "Sierpień", september: "Wrzesień", october: "Październik", november: "Listopad", december: "Grudzień", }, nextMonth: "Następny miesiąc", nothingOnDay: "Nic w tym dniu.", prevMonth: "Poprzedni miesiąc", tapHighlighted: "Dotknij podświetlonego dnia, aby zobaczyć, co się dzieje.", today: "Dzisiaj", tourDay: "Dzień Touru", toursOnDay: "{{count}} Tourów", toursThisMonth: "Tourów w tym miesiącu", weekdays: { sun: "Nd", mon: "Pn", tue: "Wt", wed: "Śr", thu: "Cz", fri: "Pt", sat: "So", }, weekdaysShort: { sun: "N", mon: "P", tue: "W", wed: "Ś", thu: "C", fri: "P", sat: "S", }, }, countdown: { ended: "Zakończone", happeningNow: "Trwa teraz", inDays: "Za {{count}} dni", inHoursMins: "Za {{hours}} godz. {{mins}} min", inMins: "Za {{count}} min", startingNow: "Zaczyna się teraz", tomorrow: "Jutro", }, createEvent: { add: "Dodaj", addNewSpot: "Dodaj nowy Spot →", changeSpot: "Zmień Spot", created: "Event utworzony!", createdDesc: "Twój Event został opublikowany w sieci.", entryFee: "Opłata za wstęp", entryFeeHint: "(opcjonalnie — np. \"500 sats\" lub \"40 zł\")", entryFeePlaceholder: "Zostaw puste dla darmowych Eventów", featuring: "Występ: {{name}}", featuringDesc: "Ten występ zostanie oznaczony jako muzyka na żywo i pojawi się na liście koncertów.", fundingGoal: "Cel finansowania", fundingGoalHint: "(opcjonalnie — sats do zebrania przez Zapy)", fundingGoalPlaceholder: "np. 50000", geoNotSupported: "Geolokalizacja nieobsługiwana", geoNotSupportedDesc: "Twoja przeglądarka nie obsługuje geolokalizacji.", hideSpots: "Ukryj Spoty", hostingAs: "Organizujesz jako {{name}}", hostingAsDesc: "Ten Event pojawi się na stronie Twojego Crew i zostanie oznaczony jako organizowany przez Crew.", imageUploaded: "Zdjęcie przesłane", imageUploadedDesc: "Twoje zdjęcie zostało pomyślnie przesłane.", invalidDate: "Nieprawidłowa data", invalidDateDesc: "Podaj prawidłową datę i godzinę rozpoczęcia.", invalidEnd: "Nieprawidłowa godzina zakończenia", invalidEndDesc: "Godzina zakończenia musi być późniejsza niż godzina rozpoczęcia.", linkedTo: "Powiązane z: {{title}}", linkToSpot: "Powiąż ze Spotem", linkToShop: "Powiąż z Shopem", selectedShop: "Powiązane z {{name}}", selectShopHint: "Opcjonalnie — odbywa się w skate Shopie lub jest przez niego organizowane.", selectShop: "Wybierz Shop", changeShop: "Zmień Shop", hideShops: "Ukryj Shopy", searchShops: "Szukaj Shopów…", noShopsMatch: "Brak Shopów pasujących do wyszukiwania.", noShopsAvailable: "Brak dostępnych Shopów.", linkToTour: "Powiąż z Tourem (opcjonalnie)", linkTourDesc: "Powiąż ten Event z Tourem, aby pokazać, że jest częścią większej serii. Świetne dla tourów krajowych, międzynarodowych wypraw lub dni wyzwań World Destruction Tour.", loadingSpots: "Ładowanie Spotów...", loadingTours: "Ładowanie Tourów...", locationError: "Błąd lokalizacji", locationFound: "Znaleziono lokalizację", locationFoundDesc: "Twoja bieżąca lokalizacja została ustawiona.", logoUrl: "URL logo (opcjonalnie)", noSpotsAvailable: "Brak dostępnych Spotów", noSpotsMatch: "Brak Spotów pasujących do wyszukiwania", noTourLinked: "Brak powiązanego Touru", optional: "(opcjonalnie)", pastDesc: "Wybierz datę i godzinę w przyszłości, aby skaterzy mogli potwierdzić RSVP i przyjść.", pastTitle: "Ta godzina rozpoczęcia jest w przeszłości", publishFailed: "Nie udało się opublikować", publishFeatured: "Opublikuj wyróżniony Event", removeSponsor: "Usuń sponsora", searchSpots: "Szukaj Spotów po nazwie, lokalizacji lub kategorii...", selectedSpot: "Wybrano: {{name}}", selectSpot: "Wybierz Spot", selectSpotHint: "Wybierz Spot z mapy, w którym odbywa się ten Event", selectTour: "Wybierz Tour", somethingWrong: "Coś poszło nie tak", sponsorName: "Nazwa sponsora", sponsors: "Sponsorzy", sponsorsHint: "Masz sklep lub markę, które to wspierają? Dodaj ich logo — pojawi się jako pasek \"Prezentowane przez\" na Evencie.", startRequired: "Wymagana godzina rozpoczęcia", startRequiredDesc: "Podaj, kiedy zaczyna się Event.", titleRequired: "Wymagany tytuł", titleRequiredDesc: "Podaj nazwę tego Eventu.", uploadFailed: "Przesyłanie nie powiodło się", uploadFailedDesc: "Nie udało się przesłać zdjęcia", websiteUrl: "URL strony (opcjonalnie)", }, createShop: { address: "Adres Shopu", addressPlaceholder: "np. ul. Marszałkowska 1, 00-001 Warszawa", addressRequired: "Wymagany adres", addressRequiredDesc: "Podaj adres swojego Shopu.", contactHint: "Pomóż klientom się z Tobą skontaktować (zalecana co najmniej jedna metoda kontaktu)", contactInfo: "Dane kontaktowe", created: "🎉 Shop dodany!", createdDesc: "Twój skate Shop jest już na mapie. Skaterzy mogą Cię Zapować w podziękowaniu!", descriptionPlaceholder: "Opowiedz o swoim Shopie, co sprzedajesz, w czym się specjalizujesz...", detailsDesc: "Opowiedz społeczności o swoim Shopie. Wszystkie pola oznaczone * są wymagane.", email: "E-mail", hoursOfOperation: "Godziny otwarcia", hoursPlaceholder: "np. pon.–sob. 10:00–20:00, niedz. 12:00–18:00", instagram: "Instagram", invalidCoords: "Nieprawidłowe współrzędne", invalidCoordsDesc: "Podaj prawidłową szerokość geograficzną (–90 do 90) i długość (–180 do 180).", latPlaceholder: "Szerokość geograficzna (np. 52.2297)", lngPlaceholder: "Długość geograficzna (np. 21.0122)", locationRequired: "Wymagana lokalizacja", locationRequiredDesc: "Wprowadź współrzędne lub użyj bieżącej lokalizacji.", loginToAdd: "Musisz się zalogować, aby dodać skate Shop.", namePlaceholder: "np. Supreme Warszawa", nameRequired: "Wymagana nazwa Shopu", nameRequiredDesc: "Podaj nazwę swojego Shopu.", phoneNumber: "Numer telefonu", publishFailedDesc: "Coś poszło nie tak. Sprawdź konsolę, aby poznać szczegóły.", shopPhotoAlt: "Shop", shopPhotos: "Zdjęcia Shopu", subtitle: "Dodaj swój Shop na mapę i połącz się ze społecznością", upload: "Prześlij", }, createTour: { acceptedClipSources: "Akceptowane źródła klipów", acceptedClipSourcesDesc: "Jakie formaty będziesz akceptować przy zgłaszaniu klipów?", accommodationInfo: "Informacje o zakwaterowaniu", accommodationPlaceholder: "Rekomendacje lub ustalenia dotyczące zakwaterowania, np. 'Tanie hostele na trasie', 'Wymagany sprzęt biwakowy', 'Airbnb w cenie'", addChallenge: "Dodaj wyzwanie", addCity: "Dodaj miasto...", addCountry: "Dodaj kraj...", addShopFirst: "Najpierw dodaj Shop", alsoSelected: "Wybrano również:", availabilityPlaceholder: "np. Weekendy, Tylko rano, Po uzgodnieniu", availabilityQuestion: "Kiedy zwykle masz dostępność?", availableShops: "Dostępne skate Shopy ({{count}})", challengeDescPlaceholder: "Opcjonalny opis...", challenges: "Wyzwania", challengesRequired: "Wymagane wyzwania", challengesRequiredDesc: "Dodaj co najmniej jedno wyzwanie dla drużyn do wykonania.", challengesSecret: "Wszystkie wyzwania są TAJNE do dnia rozpoczęcia zawodów. Drużyny zobaczą je dopiero wtedy!", challengeTitlePlaceholder: "Tytuł wyzwania, np. 'Kickflip z 10-stopniowych schodów'", citiesLabel: "Miasta", citiesOnTour: "Miasta na Tourze", cityPlaceholder: "np. Berlin, Niemcy", cityRegion: "Miasto / region", cityRequired: "Wymagane miasto/region", cityRequiredDesc: "Podaj swoje miasto lub region.", clipAnyUrl: "🔗 Dowolny URL", clipBlossom: "📦 Przesyłanie przez Blossom", clipInstagram: "📸 Instagram", clipYouTube: "▶️ YouTube", competitionDates: "Daty zawodów", competitionDatesWarning: "⚠️ Wszystkie wyzwania są TAJNE do dnia rozpoczęcia! Drużyny zobaczą je dopiero, gdy zaczną się zawody.", competitionLocations: "Lokalizacje zawodów", competitionLocationsDesc: "Gdzie będą rywalizować drużyny? Dodaj wszystkie miasta i kraje.", coordsHint: "Współrzędne są opcjonalne. Dodaj je, aby przypiąć miejsce spotkania na mapie.", countriesLabel: "Kraje", countriesRequired: "Wymagane kraje", countriesRequiredDesc: "Dodaj co najmniej jeden kraj dla swojego międzynarodowego Touru.", createdDestruction: "💀 WORLD DESTRUCTION TOUR UTWORZONY!", createdDestructionDesc: "Drużyny mogą się rejestrować. Wyzwania zostaną ujawnione w dniu rozpoczęcia!", createDestructionTour: "Utwórz World Destruction Tour", createdInternational: "✈️ Międzynarodowy Tour utworzony!", createdInternationalDesc: "Twoja globalna przygoda jest na liście! Połącz się ze skaterami z całego świata.", createdLocal: "🏠 Lokalny Tour utworzony!", createdLocalDesc: "Twój Tour jest już widoczny. Skaterzy mogą rezerwować przez DM!", createdNational: "🚐 Krajowy Tour utworzony!", createdNationalDesc: "Twój road trip jest już na żywo! Zacznij koordynować z zainteresowanymi skaterami.", departure: "Wyjazd *", departureRequired: "Wymagana data wyjazdu", departureRequiredDesc: "Ustaw, kiedy zaczyna się wyprawa, aby skaterzy mogli zaplanować i zarezerwować.", descriptionPlaceholder: "Opisz, czego doświadczą skaterzy: miejsca, które odwiedzicie, atmosferę, co czyni Twój Tour wyjątkowym...", destructionDesc: "Zorganizuj globalne zawody w stylu KOTR — Ty ustalasz WSZYSTKO!", discountHint: "Uczestnicy Touru mogą pokazać potwierdzenie rezerwacji w Shopie, aby otrzymać ten rabat", discountPercentage: "Procent rabatu", dropTour: "Dodaj Tour", duration: "Czas trwania", durationHintDestruction: "Jak długo trwają zawody? (1–12 miesięcy)", durationHintInternational: "Ile tygodni trwa przygoda? (do 2 miesięcy)", durationHintLocal: "Jak długo trwa Twój typowy Tour?", durationHintNational: "Ile dni trwa road trip?", durationWeeksMonths: "{{weeks}} tyg. (~{{months}} mies.)", editTour: "Edytuj Tour", enable: "Włącz", enabled: "Włączone", endBeforeStart: "Koniec przed początkiem", endBeforeStartDesc: "Data zakończenia zawodów musi być równa lub późniejsza niż data rozpoczęcia.", endDate: "Data zakończenia", entryFeeHint: "Zatrzymujesz 95% • Platforma pobiera 5% • Zostaw puste dla darmowego wstępu", entryFeePerTeam: "Opłata za drużynę (sats)", entryFeePlaceholder: "np. 100000", entryPrizes: "Wstęp i nagrody", filmPremieres: "Premiery filmów drużyn", filmPremieresDesc: "Po zakończeniu zawodów klipy każdej drużyny staną się pełnym filmem, który może mieć premierę w lokalnych skate Shopach na całym świecie.", filmPremieresInfo: "🎥 Drużyny łączą swoje klipy z wyzwaniami w finalny film. Shopy mogą organizować premiery, łącząc globalne zawody z lokalnymi społecznościami.", filmReleaseDate: "Data premiery filmu (opcjonalnie)", filmReleaseDateHint: "Kiedy filmy będą dostępne. Zostaw puste, aby wydać od razu po zakończeniu zawodów.", fixedSession: "Stała sesja", fixedSessionDesc: "Ustalona data i godzina", flexible: "Elastycznie", flexibleDesc: "Rezerwuj w dowolnym momencie przez DM", hide: "Ukryj", howDestruction1: "• Globalne zawody drużynowe — do 12 miesięcy", howDestruction2: "• TY ustalasz wyzwania, punkty, nagrody — my dajemy tylko platformę", howDestruction3: "• Wszystkie wyzwania są TAJNE do dnia rozpoczęcia zawodów", howDestruction4: "• Klipy przez przesyłanie na Blossom LUB linki zewnętrzne (YouTube, Instagram, dowolny URL)", howDestruction5: "• Tylko poziom zaawansowany — wszystkie typy Spotów wliczone automatycznie", howDestruction6: "• Platforma pobiera tylko 5% opłat wpisowych (NIE z puli nagród)", howDestructionTitle: "💀 WORLD DESTRUCTION TOUR — styl KOTR", howInternational1: "• Transgraniczne przygody w wielu krajach", howInternational2: "• Ty ustalasz cenę — platforma pobiera tylko 5%", howInternational3: "• Ustaw daty wyjazdu i powrotu, aby Crew mogło zarezerwować loty", howInternational4: "• Połącz skaterów z całego świata", howInternational5: "• Twórz niezapomniane globalne doświadczenia!", howInternationalTitle: "Jak działają międzynarodowe Toury", howItWorks: "Jak to działa:", howLocal1: "• Ty ustalasz cenę — platforma pobiera 10%", howLocal2: "• Ukryte Spoty pozostają ukryte — pokazujesz je osobiście", howLocal3: "• Prowadź zaplanowaną sesję lub zachowaj elastyczność / umawianie indywidualne", howLocal4: "• Skaterzy rezerwują przez DM, płacą w Lightning i mogą dodać to do kalendarza", howLocal5: "• Buduj swoją reputację dzięki opiniom i Zapom", howLocalTitle: "Jak działają lokalne Toury", howNational1: "• Road tripy po wielu miastach w Twoim kraju", howNational2: "• Ty ustalasz cenę — platforma pobiera tylko 7%", howNational3: "• Ustaw daty wyprawy, aby skaterzy mogli zaplanować urlop i podróż", howNational4: "• Dodaj informacje o transporcie / zakwaterowaniu dla Crew", howNational5: "• Buduj legendarne skate przygody!", howNationalTitle: "Jak działają krajowe Toury", imageUploadedDesc: "Zdjęcie Twojego Touru zostało przesłane.", incompleteCoords: "Niekompletne współrzędne", incompleteCoordsDesc: "Podaj zarówno szerokość, jak i długość geograficzną albo pozostaw oba pola puste.", internationalDetails: "Szczegóły międzynarodowej przygody", languagesSelected: "Wybrano {{count}}", languagesSpoken: "Języki", latOptional: "Szerokość geograficzna (opcjonalnie)", lngOptional: "Długość geograficzna (opcjonalnie)", loadingProfile: "Ładowanie profilu...", loadingProfileDesc: "Sprawdzanie statusu weryfikacji NIP-05.", loadingShops: "Ładowanie Shopów...", localShopPremieres: "Lokalne premiery w Shopach", localShopPremieresDesc: "Skate Shopy na całym świecie mogą organizować wieczory filmowe", loginToCreate: "Musisz się zalogować, aby utworzyć Tour.", maxGroupSize: "Maks. wielkość grupy", maxTeams: "Maks. drużyn", maxTeamSize: "Maks. wielkość drużyny", meetingLocationSet: "Twoja bieżąca lokalizacja została ustawiona jako miejsce spotkania.", meetingPointDesc: "Gdzie spotkasz się z uczestnikami Touru? Wybierz publiczne, dobrze znane miejsce.", meetingPointLabel: "Miejsce spotkania", meetingPointPlaceholder: "np. Dworzec Centralny", meetingPointRequired: "Wymagane miejsce spotkania", meetingPointRequiredDesc: "Podaj, gdzie spotkasz się z uczestnikami Touru.", minTeamSize: "Min. wielkość drużyny", noChallenges: "Brak wyzwań", noChallengesDesc: "Dodaj wyzwania dla drużyn do wykonania", noPartnerShop: "Brak partnerskiego Shopu", noShopsFound: "Nie znaleziono jeszcze żadnych skate Shopów w sieci.", noShopsRegistered: "Brak zarejestrowanych skate Shopów", onlineRelease: "Wydanie online", onlineReleaseDesc: "Wydaj filmy także na YouTube/Nostr", organizerContact: "Dane kontaktowe organizatora", organizerContactHint: "Będą widoczne dla zarejestrowanych drużyn", organizerContactPlaceholder: "Jak drużyny mogą się z Tobą skontaktować? np. npub na Nostr, e-mail, Telegram itp.", partnerDiscountDesc: "Zaoferuj uczestnikom Touru rabat w lokalnym skate Shopie", partnerStep1: "1. Nawiąż współpracę z zaufanym lokalnym skate Shopem", partnerStep2: "2. Ustaw procent rabatu dla uczestników Touru", partnerStep3: "3. Po Tourze daj uczestnikom potwierdzenie do okazania w Shopie", partnerStep4: "4. Shop honoruje rabat — buduje społeczność i przyciąga klientów!", percentOff: "{{percent}}% ZNIŻKI", photoHint: "Dodaj zdjęcie siebie na desce lub fajnego Spotu z Twojego Touru.", pickRide: "Wybierz swój środek transportu", place1: "🥇 1. miejsce", place2: "🥈 2. miejsce", place3: "🥉 3. miejsce", platformFee: "Ty ustalasz cenę • Platforma pobiera {{percent}}", points: "Punkty:", pricePerPerson: "Cena za osobę (sats)", pricePlaceholder: "np. 25000", prizeDistribution: "Podział nagród", prizePoolHint: "Opcjonalnie — łączne dostępne nagrody", prizePoolPlaceholder: "np. 2000000", proTipDesc: "Przed dodaniem rabatu partnerskiego skontaktuj się z właścicielem Shopu przez DM, aby uzgodnić procent rabatu. Dzięki temu będzie poinformowany i honoruje rabat dla uczestników Twojego Touru.", proTipTitle: "💡 Wskazówka: najpierw uzgodnij ze Shopem!", return: "Powrót", returnBeforeDeparture: "Powrót przed wyjazdem", returnBeforeDepartureDesc: "Data powrotu musi być równa lub późniejsza niż data wyjazdu.", roadTripDetails: "Szczegóły road tripu", schedule: "Harmonogram", scheduleDesc: "Prowadź to jako jednorazową zaplanowaną sesję albo zachowaj elastyczność i pozwól skaterom zarezerwować termin przez DM.", secretUntilStart: "Tajne do rozpoczęcia", selectPartnerShop: "Wybierz partnerski Shop", sessionDateRequired: "Wymagana data sesji", sessionDateRequiredDesc: "Wybierz datę i godzinę zaplanowanej sesji lub przełącz na elastyczny harmonogram.", sessionDateTime: "Data i godzina sesji", sessionDateTimeHint: "Skaterzy zobaczą ten czas i będą mogli dodać go do kalendarza ze strony Touru.", shopPremieresContact: "Skontaktuj się z tymi Shopami bezpośrednio, aby umówić wieczory premier filmowych. Wszystkie ustalenia są prywatne.", shopPremieresHow: "💡 Jak działają premiery w Shopach: skontaktuj się z Shopami bezpośrednio, aby umówić wieczory premier. Wszystkie ustalenia są prywatne między Tobą a Shopami.", shopsCanRegister: "Shopy mogą się zarejestrować na /create-shop", show: "Pokaż", showAllLanguages: "Pokaż wszystkie {{count}} języków", somethingWrong: "Coś poszło nie tak.", spotTypes: "Typy Spotów", spotTypesRequired: "Wymagane typy Spotów", spotTypesRequiredDesc: "Wybierz co najmniej jeden typ Spotu, który pokażesz.", startDate: "Data rozpoczęcia", startDateRequired: "Wymagana data rozpoczęcia", startDateRequiredDesc: "Ustaw, kiedy zaczynają się zawody (wyzwania zostaną ujawnione tego dnia).", startingCity: "Miasto startowe", startingCityPlaceholder: "np. Warszawa, Polska", teamSettings: "Ustawienia drużyn", teamsCount: "{{count}} drużyn", titlePlaceholder: "np. Warszawa Śródmieście — Tour po undergroundowych Spotach", titleRequired: "Wymagany tytuł Touru", titleRequiredDesc: "Podaj nazwę swojego Touru.", totalPercent: "Razem: {{percent}}%", totalPrizePool: "Łączna pula nagród (sats)", tourDesc: "Opowiedz skaterom, czego mogą się spodziewać na Twoim Tourze", tourDetails: "Szczegóły Touru", tourPhoto: "Zdjęcie Touru", tourTitle: "Tytuł Touru", transportDestructionPlaceholder: "Jak drużyny będą podróżować między lokalizacjami? Zapewniasz lub zalecasz jakiś transport?", transportInfo: "Informacje o transporcie", transportPlaceholder: "Jak będą podróżować uczestnicy? np. 'Zapewniamy vana', 'Lot do Barcelony, wynajmujemy vana', 'Pociąg między miastami'", tripDatesDesc: "Ustal daty, aby skaterzy mogli poprosić o urlop, zarezerwować loty i zaplanować wyprawę.", tripDatesTitle: "Daty wyprawy", updated: "Tour zaktualizowany!", updatedDesc: "Twoje zmiany zostały opublikowane.", upload: "Prześlij", view: "Zobacz →", worldDestruction: "World Destruction Tour", youReceive: "Otrzymujesz: {{amount}} sats za osobę", }, editEvent: { accessDenied: "Brak dostępu", accessDeniedDesc: "Możesz edytować tylko Eventy, które utworzyłeś.", backToEvent: "Powrót do Eventu", detailsDesc: "Zaktualizuj informacje o tym Evencie. Wszystkie pola oznaczone * są wymagane.", eventCover: "Okładka Eventu", locationUpdated: "Lokalizacja zaktualizowana.", loginToEdit: "Musisz się zalogować, aby edytować ten Event.", newSpot: "Nowy Spot: {{location}}.", newTime: "Nowy czas: {{date}} o {{time}}.", saveChanges: "Zapisz zmiany", saving: "Zapisywanie...", title: "Edytuj Event", updated: "Event zaktualizowany!", updatedDesc: "Twoje zmiany zostały opublikowane w sieci.", updateDetails: "Zaktualizuj szczegóły dla {{title}}", updatedNotified: "Zmiany opublikowane — powiadomiono {{count}} uczestników.", updateFailed: "Nie udało się zaktualizować", updateMessage: "{{parts}} — zobacz Event, aby poznać szczegóły.", }, editShop: { accessDeniedDesc: "Możesz edytować tylko Shopy, które utworzyłeś.", backToShop: "Powrót do Shopu", detailsDesc: "Zaktualizuj informacje o swoim Shopie. Wszystkie pola oznaczone * są wymagane.", loginToEdit: "Musisz się zalogować, aby edytować ten Shop.", updated: "Shop zaktualizowany!", updateDetails: "Zaktualizuj szczegóły dla {{name}}", }, editTour: { accessDeniedDesc: "Możesz edytować tylko Toury, które utworzyłeś.", loginToEdit: "Musisz się zalogować, aby edytować ten Tour.", }, eventCard: { report: "Zgłoś", }, eventDetail: { aCrew: "Crew", addToCalendar: "Dodaj do kalendarza", backToEvents: "Powrót do Eventów", cancelled: "Ten Event został odwołany", checkUpdate: "— sprawdź aktualizację", copyFailed: "Kopiowanie nie powiodło się", date: "Data", editEvent: "Edytuj Event", eventFallback: "Event", eventOrganizer: "Organizator Eventu", getDirections: "Wyznacz trasę", linkCopied: "Link skopiowany", linkCopiedDesc: "Link do Eventu skopiowany do schowka — wklej go gdziekolwiek.", live: "Na żywo:", liveMusic: "muzyka na żywo", location: "Lokalizacja", newLocation: "Nowa lokalizacja", noRsvps: "Nie odnotowano żadnych RSVP.", organizer: "Organizator", rsvpsClosed: "RSVP są zamknięte — ten Event został odwołany przez gospodarza.", seeMap: "Zobacz mapę", shareEvent: "Udostępnij Event", shareText: "{{title}} — skate Event na SkateSpots", shareTextFallback: "Sprawdź ten skate Event na SkateSpots", time: "Godzina", timeChanged: "Zmieniono godzinę", updatesFromHost: "Aktualizacje od gospodarza", where: "Gdzie", whoCame: "Kto przyszedł", whosGoing: "Kto idzie", }, events: { calendar: "Kalendarz", createTour: "Utwórz Tour", events: "Eventy", faqFooter: "Masz pytania? Sprawdź FAQ →", hosting: "Organizowanie", hostingSubtitle: "Twoje Eventy — RSVP, aktualizacje i szybkie edycje", list: "Lista", noEventsMatchFilters: "Żadne Eventy nie pasują do Twoich filtrów. Spróbuj je zmienić lub wyczyścić.", noPast: "Brak przeszłych Eventów", noPastBody: "Nie znaleziono przeszłych skate Eventów w Twoich filtrach.", noTours: "Nie znaleziono Tourów", noToursBody: "Nie ma jeszcze skate Tourów. Utwórz pierwszy i zabierz skaterów na odkrywanie Spotów!", noToursMatchFilters: "Żadne Toury nie pasują do Twoich filtrów. Spróbuj je zmienić lub wyczyścić.", noUpcoming: "Brak nadchodzących Eventów", noUpcomingBody: "Nie znaleziono nadchodzących skate Eventów. Bądź pierwszą osobą, która go utworzy!", past: "Przeszłe", resultsCount: "{{count}} wyników", searchCity: "Miasto…", searchEvent: "Nazwa Eventu…", searchTour: "Nazwa Touru…", tours: "Toury", toursSubtitle: "Lokalni przewodnicy, road tripy i zawody World Destruction", upcoming: "Nadchodzące", }, eventTypes: { contest: "Zawody", demo: "Demo", jam: "Jam", meetup: "Spotkanie", premiere: "Premiera", session: "Sesja", workshop: "Warsztaty", }, featured: { active: "Aktywne", bodyEvent: "Dodanie jest darmowe. Wyróżnione Eventy dostają odznakę i trafiają na górę strony Eventów.", bodyTour: "Dodanie jest darmowe. Wyróżnione Toury dostają odznakę i trafiają na górę listy Tourów.", contextEvent: "Twój Event i tak pozostaje na liście bezpłatnie — wyróżnienie dodaje tylko odznakę i wzmocnienie.", contextTour: "Twój Tour i tak pozostaje na liście bezpłatnie — wyróżnienie dodaje tylko odznakę i wzmocnienie.", daysRemaining: "Wyróżnienie aktywne · pozostało {{count}} dni.", headingEvent: "Wyróżnij ten Event", headingTour: "Wyróżnij ten Tour", optional: "opcjonalnie", platformOwner: "Właściciel platformy — wyróżnienie jest zawsze włączone.", }, filters: { activeCount: "{{count}} aktywnych", all: "Wszystkie", allLevels: "Wszystkie poziomy", eventType: "Typ Eventu", following: "Obserwowani", newest: "Najnowsze", popular: "Popularne", showResults: "Pokaż wyniki", showResultsActive: "Pokaż wyniki · {{count}} aktywnych", skillLevel: "Poziom umiejętności", sortBy: "Sortuj według", topRated: "Najwyżej oceniane", tourCategory: "Kategoria Touru", trusted: "Zaufane", trustLevel: "Poziom zaufania", verified: "Zweryfikowane", }, food: { bar: "Bar", cafe: "Kawiarnia", call: "Zadzwoń", chooseSpot: "Wybierz Spot...", directions: "Trasa", fastFood: "Fast food", foodCourt: "Food court", locationLabel: "Lokalizacja:", noneFound: "Nie znaleziono miejsc z jedzeniem", noneFoundDesc: "Nie mogliśmy znaleźć żadnych restauracji ani kawiarni w promieniu 1 km od tego Spotu. Spróbuj wybrać inną lokalizację.", placesFound: "Znaleziono {{count}} miejsc w promieniu 1 km od {{spot}}", pub: "Pub", restaurant: "Restauracja", selectSpot: "Wybierz skate Spot", selectSpotDesc: "Wybierz skate Spot z listy powyżej, aby znaleźć pobliskie restauracje, kawiarnie i inne opcje jedzenia.", selectSpotTitle: "Wybierz skate Spot", subtitle: "Znajdź miejsca z jedzeniem w pobliżu ulubionych Spotów", title: "Jedzenie przy Spotach", unknown: "Nieznane", website: "Strona", }, rsvp: { areYouGoing: "Idziesz?", cant: "Nie mogę", cantMakeIt: "Nie dam rady", going: "Idę", goingCount: "idzie", goingShort: "Idę", hostNote: "Organizujesz to — ale nadal możesz ustawić swój status.", interested: "Zainteresowany", interestedCount: "zainteresowanych", loginToRsvp: "Zaloguj się, aby potwierdzić RSVP.", maybe: "Może", toastError: "Nie udało się potwierdzić RSVP", toastGoing: "Idziesz! 🛹", toastInterested: "Oznaczono jako zainteresowany.", toastNotGoing: "Oznaczono jako nieobecność.", tryAgain: "Spróbuj ponownie.", }, shop: { addNip05Settings: "Dodaj NIP-05 w Ustawieniach", adminRemovedReason: "Administrator SkateSpots usunął Shop \"{{name}}\"", areYouOwner: "Jesteś właścicielem Shopu?", backToMap: "Powrót do mapy", claimDesc: "Jeśli jesteś właścicielem lub zarządzasz tym Shopem, możesz go zastrzec, aby zweryfikować własność przez NIP-05.", claimNip05Intro: "Aby zastrzec ten Shop, dodaj identyfikator NIP-05 zgodny z domeną strony Shopu. Na przykład, jeśli strona Shopu to", claimNip05Your: "Twój NIP-05 powinien być", contactShop: "Skontaktuj się ze Shopem", deleted: "Shop usunięty", deletedDesc: "Żądanie usunięcia wysłane do Relayów. Większość Relayów usunie tę treść.", deleteDialogDesc: "Spowoduje to trwałe usunięcie \"{{name}}\" ze wszystkich Relayów. Tej operacji nie można cofnąć.", deleteDialogTitle: "Usunąć Shop?", deletedReason: "Usunięty Shop", deleteFailed: "Usuwanie nie powiodło się", deleteShop: "Usuń Shop", linkCopied: "Link skopiowany!", linkCopiedDesc: "Link do Shopu skopiowany do schowka.", nip05Required: "⚠️ Do zastrzeżenia Shopu wymagana jest weryfikacja NIP-05", opens: "Otwiera: {{domain}}", removeAdmin: "Usuń (administrator)", removed: "Shop usunięty", removedDesc: "Ten Shop został zdjęty i będzie ukryty w całym SkateSpots.", removeDialogDesc: "Jako administrator SkateSpots zdejmujesz \"{{name}}\". Będzie ukryty w całej aplikacji dla wszystkich, a do Relayów zostanie wysłane żądanie usunięcia.", removeDialogTitle: "Usunąć ten Shop? (administrator)", removeShop: "Usuń Shop", tipMapper: "Wspomóż twórcę mapy", tipMapperDesc: "Ten Shop został dodany przez członka społeczności. Zapnij go w podziękowaniu!", updateNip05: "Zaktualizuj NIP-05, aby zastrzec", viewPhotoFull: "Wyświetl zdjęcie pełnoekranowo", viewPhotoOf: "Wyświetl zdjęcie {{index}} z {{total}}", }, sponsors: { presentedBy: "Prezentowane przez", }, tourCard: { active: "Aktywny", completed: "Zakończony", contactForPrice: "Skontaktuj się w sprawie ceny", durationDays: "{{count}} dni", durationHours: "{{count}} godz.", durationMonths: "{{count}} mies.", durationWeeks: "{{count}} tyg.", entry: "Wpisowe: {{amount}} sats", happeningNow: "Trwa teraz", inDays: "Za {{count}} dni", inHours: "Za {{count}} godz.", inMonths: "Za {{count}} mies.", inWeeks: "Za {{count}} tyg.", maxGroup: "Maks. {{count}}", price: "{{amount}} sats", prizePool: "{{amount}} sats", registrationOpen: "Rejestracja otwarta", startingSoon: "Wkrótce start", teamsMax: "Maks. {{count}} drużyn", tomorrow: "Jutro", worldwide: "Cały świat", }, tourDetail: { about: "O tym Tourze", availability: "Dostępność", competitionWindow: "Okno zawodów", contactToBook: "Skontaktuj się z przewodnikiem, aby zarezerwować", discountAt: "{{percent}}% ZNIŻKI w {{shop}}", duration: "Czas trwania", languages: "Języki", loginToBook: "Zaloguj się, aby zarezerwować", loginToBookDesc: "Zaloguj się, aby skontaktować się z przewodnikiem i zarezerwować ten Tour", maxGroup: "Maks. grupa", meetingPoint: "Miejsce spotkania", notFound: "Nie znaleziono Touru", notFoundDesc: "Ten Tour mógł zostać usunięty lub nie istnieje.", organizer: "Organizator", partnerDiscount: "Rabat w partnerskim Shopie", partnerDiscountDesc: "Zarezerwuj ten Tour, aby otrzymać rabat w partnerskim skate Shopie. Pokaż potwierdzenie rezerwacji obsłudze Shopu.", people: "{{count}} osób", perPerson: "za osobę", price: "Cena", runsAbout: "Trwa około {{duration}}", scheduledSession: "Zaplanowana sesja", shareText: "Sprawdź ten lokalny skate Tour: {{title}}", skillLevel: "Poziom umiejętności", spotTypes: "Typy Spotów", tourGuide: "Przewodnik Touru", tourSponsors: "Sponsorzy Touru", tripDates: "Daty wyprawy", viewProfile: "Zobacz profil", }, updates: { admin: "Administrator", adminNote: "Publikujesz jako administrator SkateSpots. Zostanie to wyraźnie oznaczone jako ogłoszenie administratora, a nie od gospodarza.", kindCancelled: "Odwołane", kindNewSpot: "Nowy Spot", kindNewTime: "Nowa godzina", kindUpdate: "Aktualizacja", loading: "Ładowanie aktualizacji…", notifiedCount: "Powiadomiono {{count}} osób.", notifiedEveryone: "Wszyscy zobaczą to na Evencie.", notifiesRsvps: "Powiadamia {{count}} RSVP", noUpdates: "Brak aktualizacji od gospodarza. Potwierdź RSVP, a otrzymasz powiadomienie o zmianach.", placeholder: "Deszcz — przeniesione na niedzielę 14:00. Spotkanie przy tylnym murku…", post: "Opublikuj", postAdminUpdate: "Opublikuj aktualizację administratora", posted: "Aktualizacja opublikowana", postError: "Nie udało się opublikować aktualizacji", postUpdate: "Opublikuj aktualizację", tryAgain: "Spróbuj ponownie.", visibleToEveryone: "Widoczne dla wszystkich w tym Evencie", }, destination: { bitcoin: "Bitcoin", closeSearch: "Zamknij wyszukiwanie", nothingMatches: "Nic nie pasuje do „{{query}}”.", placeholder: "Szukaj Spotów, Shopów, sprzedawców Bitcoin…", shop: "Shop", spot: "Spot", typeChars: "Wpisz co najmniej 2 znaki. Wyszukuje skate Spoty, skate Shopy i sprzedawców Bitcoin.", typeCharsNear: "Wpisz co najmniej 2 znaki. Wyszukuje skate Spoty, skate Shopy i sprzedawców Bitcoin w pobliżu.", }, dateWindow: { any: "Dowolne", anytime: "Kiedykolwiek", month: "Ten miesiąc", monthShort: "Miesiąc", today: "Dzisiaj", todayShort: "Dzisiaj", week: "Ten tydzień", weekend: "Weekend", weekendShort: "Weekend", weekShort: "Tydzień", }, }, marketUi: { gearSwap: { title: "Gear Swap", subtitle: "Kupuj i sprzedawaj używany skate Gear innym skaterom", listGear: "Wystaw Gear", searchPlaceholder: "Szukaj Gear...", allCategories: "Wszystkie kategorie", forSale: "Na sprzedaż", wtb: "WTB", trust: "Zaufanie", filterByTrust: "Filtruj według zaufania", allSellers: "Wszyscy sprzedawcy", verifiedOnly: "Tylko zweryfikowani", trustedPlus: "Zaufani+", followingOnly: "Tylko obserwowani", pickupOrShip: "Odbiór lub wysyłka", localPickup: "Odbiór osobisty", ships: "Wysyłka", sortBy: "Sortuj według", newest: "Najnowsze", priceLowHigh: "Cena: od najniższej", priceHighLow: "Cena: od najwyższej", trustScore: "Wskaźnik zaufania", nearest: "Najbliżej (lokalnie)", listingFound: "Znaleziono {{count}} ogłoszenie", listingsFound: "Znaleziono {{count}} ogłoszeń", loadFailed: "Nie udało się załadować ogłoszeń", tryLater: "Spróbuj ponownie później.", noneTitle: "Nie znaleziono ogłoszeń", noneFiltered: "Żaden Gear nie pasuje do Twoich filtrów. Spróbuj je wyczyścić lub poszukaj czegoś innego.", noneFirst: "Wystaw swój Gear jako pierwszy — Deck, Trucks, Wheels, buty, cokolwiek skate!", listYourGear: "Wystaw swój Gear", faqLink: "Masz pytania? Sprawdź FAQ →", }, hub: { browse: "Przeglądaj", selling: "Sprzedaż", myTrades: "Moje transakcje", reputation: "Reputacja", loginListings: "Zaloguj się, aby zarządzać swoimi ogłoszeniami.", loginReputation: "Zaloguj się, aby zobaczyć swoją reputację i opinie.", }, marketplace: { heroTitle: "Shopy i Marketplace", heroBefore: "Nasz Marketplace działa dzięki", heroAfter: " — zdecentralizowanemu Marketplace na Nostr. Skate Shopy mogą wystawiać swoje produkty, a Ty możesz kupować i sprzedawać używany Gear bezpośrednio za Bitcoin.", whatIsTitle: "Czym jest Plebeian Market?", whatIsBody: "Plebeian Market to zdecentralizowany Marketplace zbudowany na Nostr. Kupuj i sprzedawaj Gear skateboardingowy bezpośrednio innym skaterom za Bitcoin. Bez pośredników, bez opłat, pełna wolność.", noFeesTitle: "Bez opłat", noFeesBody: "Żadna platforma nie bierze 30%. Sprzedaż bezpośrednio między osobami.", bitcoinTitle: "Płatności Bitcoin", bitcoinBody: "Płać Bitcoinem. Szybko, bezpiecznie, globalnie.", decentralizedTitle: "Zdecentralizowany", decentralizedBody: "Zbudowany na Nostr. Żadna firma nim nie zarządza.", visit: "Odwiedź Plebeian Market", buySellTitle: "Co możesz kupić i sprzedać", catCompletes: "Kompletne deskorolki", preBuilt: "Gotowe komplety", customSetups: "Niestandardowe zestawy", beginnerBoards: "Deski dla początkujących", catParts: "Części do deski", decks: "Decks", trucks: "Trucks", wheels: "Wheels", bearings: "Bearings", gripTape: "Griptape", hardware: "Hardware", catApparel: "Odzież i ochrona", skateShoes: "Buty skate", clothing: "Odzież", helmets: "Kaski", pads: "Ochraniacze", backpacks: "Plecaki", catAccessories: "Akcesoria", tools: "Narzędzia", wax: "Wosk", rails: "Rail'e", stickers: "Naklejki", videos: "Filmy", magazines: "Magazyny", howItWorks: "Jak to działa", step1Title: "Przeglądaj produkty", step1Body: "Odwiedź Plebeian Market i przeglądaj Gear skateboardingowy z Shopów i od osób z całego świata.", step2Title: "Skontaktuj się ze sprzedawcami", step2Body: "Napisz do sprzedawców bezpośrednio przez Nostr. Negocjuj ceny, zadawaj pytania, ustal wysyłkę.", step3Title: "Płać Bitcoinem", step3Body: "Sfinalizuj zakup za pomocą Bitcoin Lightning, aby otrzymać natychmiastowe płatności o niskich opłatach.", step4Title: "Zostaw opinię", step4Body: "Oceń swoje doświadczenie i buduj reputację sprzedawcy na Nostr. Twoje opinie pomagają społeczności.", needBitcoinTitle: "Potrzebujesz Bitcoin?", needBitcoinBefore: "Do zakupów potrzebujesz portfela Lightning z kilkoma sats. Sprawdź", onboardingGuide: "przewodnik dla początkujących", needBitcoinAfter: "z rekomendacjami portfeli.", ownShopTitle: "Masz skate Shop?", ownShopBody: "Dodaj swój Shop na SkateSpots i sprzedawaj produkty na Plebeian Market. Docieraj do klientów na całym świecie bez opłat platformy.", addShop: "Dodaj swój Shop", startSelling: "Zacznij sprzedawać", }, listingDetail: { notFound: "Nie znaleziono ogłoszenia", notFoundBody: "Mogło zostać usunięte lub link jest nieprawidłowy.", backToGearSwap: "Powrót do Gear Swap", gearSwap: "Gear Swap", viewPhoto: "Wyświetl zdjęcie {{n}}", photoAlt: "{{title}} — zdjęcie {{n}}", wantToBuy: "CHCĘ KUPIĆ", sold: "SPRZEDANE", description: "Opis", usuallyHere: "Zwykle tutaj {{availability}}", listed: "Wystawiono {{date}}", listingCountOne: "{{count}} ogłoszenie · {{age}} dni temu", listingCountMany: "{{count}} ogłoszeń · {{age}} dni temu", relistActive: "Wznów jako aktywne", markSold: "Oznacz jako sprzedane", deleteListing: "Usuń ogłoszenie", makeOffer: "Złóż ofertę", shareListing: "Udostępnij ogłoszenie", unknown: "Nieznane", linkCopied: "Link skopiowany", linkCopiedBody: "Udostępnij go skaterowi.", copyFailed: "Nie udało się skopiować linku", relisted: "Wznowione", relistedBody: "Twoje ogłoszenie jest znowu aktywne.", couldNotUpdate: "Nie udało się zaktualizować", somethingWrong: "Coś poszło nie tak", }, create: { imageUploaded: "Zdjęcie przesłane", uploadFailed: "Przesyłanie nie powiodło się", failed: "Nie udało się", cooldownActive: "Aktywny okres oczekiwania", cooldownWait: "Poczekaj {{time}}, zanim utworzysz kolejne ogłoszenie", limitReached: "Osiągnięto limit ogłoszeń", limitReachedBody: "Osiągnąłeś miesięczny limit {{limit}} ogłoszeń", feeRequired: "Wymagana opłata", feeRequiredBody: "Zapłać opłatę antyspamową, aby kontynuować", titleRequired: "Wymagany tytuł", categoryRequired: "Wymagana kategoria", photoRequired: "Wymagane zdjęcie", photoRequiredBody: "Przy sprzedaży Gear wymagane jest co najmniej jedno zdjęcie", nip05Required: "Wymagana weryfikacja NIP-05", nip05RequiredBody: "Potrzebujesz zweryfikowanego adresu Nostr, aby wystawiać Gear", priceRequired: "Cena wymagana dla ogłoszeń z ceną stałą", sizeRequired: "Wymagany rozmiar", sizeRequiredBody: "Wybierz rozmiar dla {{category}}", conditionRequired: "Wymagany stan", conditionRequiredBody: "Wybierz stan swojego {{category}}", wtbPosted: "Ogłoszenie „Chcę kupić” opublikowane!", wtbPostedBody: "Sprzedawcy będą mogli znaleźć Twoją prośbę.", listingCreated: "Ogłoszenie utworzone!", listingCreatedBody: "Twój Gear jest już wystawiony.", publishFailed: "Nie udało się opublikować", loginRequired: "Wymagane logowanie", loginRequiredBody: "Musisz się zalogować, aby wystawić Gear.", backToStash: "Powrót do Stash", backToSpot: "Powrót do {{title}}", backToMarketplace: "Powrót do Marketplace", backToMap: "Powrót do mapy", wantToBuy: "Chcę kupić", listYourGear: "Wystaw swój Gear", wtbSubtitle: "Powiedz społeczności, jakiego Gearu szukasz", sellSubtitle: "Sprzedaj Gear skateboardingowy społeczności", fromStashTitle: "Ogłoszenie z Twojego Stash", fromStashBody: "Wstępnie wypełnione danymi przedmiotu z Twojego Stash. Sprawdź i wybierz miejsce spotkania!", nip05Banner: "Aby zapobiegać spamowi i chronić kupujących, potrzebujesz zweryfikowanego adresu Nostr (NIP-05), aby wystawiać Gear.", verifiedLabel: "Zweryfikowany:", checkingTrust: "Sprawdzanie Twojego poziomu zaufania...", trustLevel: "Poziom zaufania:", trusted: "Zaufany", active: "Aktywny", newcomer: "Nowicjusz", newUser: "Nowy użytkownik", remaining: "Pozostało {{remaining}} z {{limit}} ogłoszeń w tym miesiącu", cooldownBody: "Nowi użytkownicy mają 24-godzinny okres oczekiwania między ogłoszeniami.", timeRemaining: "Pozostały czas: {{time}}", monthlyLimitTitle: "Osiągnięto miesięczny limit", monthlyLimitBody: "Osiągnąłeś limit {{limit}} ogłoszeń w tym miesiącu. Buduj reputację, tworząc Spoty lub finalizując sprzedaże, aby zwiększyć limit.", powAccepted: "Proof of work zaakceptowany!", feePaid: "Opłata zapłacona!", canCreateNow: "Możesz teraz utworzyć swoje ogłoszenie.", whatDoTitle: "Co chcesz zrobić?", sellGear: "SPRZEDAJ GEAR", categoryTitle: "Kategoria *", categoryHint: "Jaki rodzaj Gearu?", detailsTitle: "Szczegóły Gearu", detailsWtbHint: "Opisz, czego szukasz", detailsSellHint: "Opowiedz kupującym o swoim przedmiocie", titleLabel: "Tytuł *", titlePlaceholderWtb: "Szukam Deck 8.0\"", titlePlaceholderSell: "Prawie nowy Palace Deck 8.25\"", summaryLabel: "Krótkie podsumowanie", summaryPlaceholderWtb: "Dowolna marka, preferuję minimalistyczne grafiki", summaryPlaceholderSell: "Świetny stan, ledwo używany", descriptionLabel: "Opis", descriptionPlaceholderWtb: "Opisz dokładnie, czego szukasz — preferencje marek, wymagania dotyczące stanu itp.", descriptionPlaceholderSell: "Dostałem ten Deck na święta, ale wolę mniejszy rozmiar. Chętnie pozwolę Ci go wypróbować przed zakupem!", fulfilmentLabel: "Jak ma być zrealizowane?", pickup: "Odbiór", pickupHint: "Spotkanie lokalnie", ships: "Wysyłka", shipsHint: "Wyślij pocztą", both: "Oba", bothHint: "Dowolnie", addressNote: "Nigdy nie zbieramy Twojego adresu — przy wysyłce udostępnij go prywatnie na czacie transakcji.", postageLabel: "Kto płaci za przesyłkę?", requireEscrow: "Wymagaj escrow", requireEscrowHint: "Poproś kupującego o rozliczenie przez Cashu escrow.", postageBuyer: "Płaci kupujący", postageSeller: "Płacę ja", postageSplit: "Podział", sizeLabel: "Rozmiar", selectSize: "Wybierz rozmiar", truckHeight: "Wysokość Trucks", selectHeight: "Wybierz wysokość", wheelHardness: "Twardość Wheels", selectHardness: "Wybierz twardość", pricingTitle: "Cena", pricingWtbHint: "Jak chcesz zapłacić?", pricingSellHint: "Jak chcesz sprzedać?", priceLabel: "Cena *", currencyLabel: "Waluta", photosTitle: "Zdjęcia", photosSellHint: "Wymagane co najmniej jedno zdjęcie", photosWtbHint: "Opcjonalnie — dodaj zdjęcia referencyjne", productPhoto: "Produkt {{n}}", upload: "Prześlij", photosNote: "Dodaj do 5 zdjęć. Pierwsze zdjęcie będzie zdjęciem głównym.", pickupLocationTitle: "Miejsce odbioru", pickupLocationHint: "Powiąż ze Spotem, aby ułatwić spotkania", searchSpots: "Szukaj Spotów...", noSpotsFound: "Nie znaleziono Spotów. Spróbuj innego wyszukiwania.", availabilityLabel: "Kiedy zwykle masz dostępność?", availabilityPlaceholder: "Weekendy 10:00–14:00, wt./czw. wieczorem", availabilityHint: "Pomaga kupującym koordynować z Tobą spotkania", durationTitle: "Czas trwania ogłoszenia", durationHint: "Jak długo to ogłoszenie ma pozostać aktywne?", publishing: "Publikowanie...", checkingEligibility: "Sprawdzanie uprawnień...", cooldownButton: "OCZEKIWANIE: {{time}}", limitReachedButton: "OSIĄGNIĘTO LIMIT", payFeeButton: "ZAPŁAĆ OPŁATĘ, ABY KONTYNUOWAĆ", postWtbButton: "OPUBLIKUJ „CHCĘ KUPIĆ”", listForSaleButton: "WYSTAW GEAR NA SPRZEDAŻ", }, trades: { title: "Moje transakcje", loginBody: "Zaloguj się, aby zarządzać transakcjami i reputacją w Marketplace.", subtitle: "Potwierdzenia, prośby i budowana przez nie reputacja. Płatność ustalasz z drugim skaterem — aplikacja tylko rejestruje transakcję.", actionNeeded: "Wymagane działanie", askedToConfirmSale: "poprosił Cię o potwierdzenie sprzedaży", recordedSale: "zarejestrował sprzedaż — potwierdź swoją stronę", confirmSale: "Potwierdź sprzedaż", confirm: "Potwierdź", nothingWaiting: "Nic nie czeka na Ciebie w tej chwili. 🛹", yourRecords: "Twoje zapisy transakcji", noTrades: "Brak transakcji. Zamknij umowę i potwierdź ją, aby zacząć budować reputację.", browseGearSwap: "Przeglądaj Gear Swap", roleSold: "Sprzedane", roleBought: "Kupione", roleTrade: "Wymiana", with: "z", viewListing: "Zobacz ogłoszenie", revoke: "Wycofaj", revokeTitle: "Wycofać ten zapis transakcji?", revokeBody: "Przestanie liczyć się do Twojej reputacji. Druga strona zachowa swoje poświadczenie. Użyj tego w przypadku sporu lub pomyłki.", revokeNote: "Wycofane przez autora.", revoked: "Zapis transakcji wycofany", revokedBody: "Nie liczy się już do reputacji.", revokeFailed: "Nie udało się wycofać transakcji", saleConfirmed: "Sprzedaż potwierdzona", saleConfirmedBody: "Druga strona może teraz potwierdzić swoją stronę.", saleConfirmFailed: "Nie udało się potwierdzić sprzedaży", tradeConfirmed: "Transakcja potwierdzona", tradeConfirmedBody: "Reputacja zaktualizowana dla Was obojga.", tradeConfirmFailed: "Nie udało się potwierdzić transakcji", somethingWrong: "Coś poszło nie tak.", }, card: { listingDeleted: "Ogłoszenie usunięte", listingRemoved: "Ogłoszenie zdjęte", listingDeletedBody: "Twoje ogłoszenie zostało usunięte. Relay'e, które honorują usunięcia, przestaną je udostępniać.", listingRemovedBody: "To ogłoszenie zostało zdjęte i będzie ukryte w całym SkateSpots.", removeFailed: "Usuwanie nie powiodło się", somethingWrong: "Coś poszło nie tak", markedSold: "Oznaczono jako sprzedane", markedSoldBody: "Twoje ogłoszenie jest teraz wyświetlane jako sprzedane.", couldNotUpdate: "Nie udało się zaktualizować", relisted: "Wznowione", relistedBody: "Twoje ogłoszenie jest znowu aktywne.", listingOptions: "Opcje ogłoszenia", report: "Zgłoś", removeAdmin: "Usuń (administrator)", postage: "przesyłka", newSeller: "Nowy sprzedawca", saleOne: "{{count}} sprzedaż", saleMany: "{{count}} sprzedaży", iHaveThis: "Mam to!", deleteTitle: "Usunąć \"{{title}}\"?", adminRemoveTitle: "Usunąć to ogłoszenie? (administrator)", deleteBody: "To prosi Relay'e o usunięcie Twojego ogłoszenia \"{{title}}\". Nie można tego cofnąć z tego miejsca — trzeba utworzyć nowe.", adminRemoveBody: "Jako administrator SkateSpots zdejmujesz \"{{title}}\". Będzie ukryte w całej aplikacji dla wszystkich, a do Relayów zostanie wysłane żądanie usunięcia.", deleting: "Usuwanie…", removing: "Usuwanie…", deleteListing: "Usuń ogłoszenie", removeListing: "Zdejmij ogłoszenie", reportCount: "{{count}} zgłoszenie", reports: "{{count}} zgłoszeń", viewTitle: "Zobacz {{title}}", reportListing: "Zgłoś ogłoszenie", manageListing: "Zarządzaj ogłoszeniem", trusted: "Zaufany", daysOld: "{{n}} dni", monthsOld: "{{n}} mies.", yearsOld: "{{n}} lat", listingsCount: "{{count}} ogłoszeń", postageBuyer: "przesyłka: kupujący", postageSeller: "przesyłka: sprzedawca", postageSplit: "przesyłka: podział", powTitle: "NIP-13 proof of work — darmowy antyspam", verifiedTradeOne: "{{count}} zweryfikowana transakcja", verifiedTrades: "{{count}} zweryfikowanych transakcji", reportSubmitted: "Zgłoszenie wysłane", reportSubmittedBody: "Dziękujemy za pomoc w utrzymaniu bezpieczeństwa Marketplace.", reportFailed: "Nie udało się wysłać zgłoszenia", selectReason: "Wybierz powód", reportDialogBody: "Pomóż utrzymać bezpieczeństwo Marketplace, zgłaszając nieodpowiednie lub wprowadzające w błąd ogłoszenia.", reasonLabel: "Powód zgłoszenia *", detailsLabel: "Dodatkowe szczegóły (opcjonalnie)", detailsPlaceholder: "Podaj dodatkowy kontekst, który może pomóc...", reportNote: "Zgłoszenia są publikowane na Nostr i pomagają społeczności identyfikować problematyczne ogłoszenia. Ogłoszenia z wieloma zgłoszeniami mogą zostać automatycznie ukryte.", submitting: "Wysyłanie...", submitReport: "Wyślij zgłoszenie", }, tradeActions: { tradeConfirmed: "Transakcja potwierdzona", tradeConfirmedWithProof: "Dołączono weryfikowalny paragon — liczy się do zweryfikowanych transakcji.", tradeConfirmedBody: "Reputacja zaktualizowana dla Was obojga.", tradeConfirmFailed: "Nie udało się potwierdzić transakcji", somethingWrong: "Coś poszło nie tak.", requestNote: "Proszę o potwierdzenie naszej transakcji dla \"{{title}}\".", requestSent: "Poproszono o potwierdzenie", requestSentBody: "Sprzedawca może teraz potwierdzić sprzedaż i zbudować reputację obu stron.", requestFailed: "Nie udało się wysłać prośby", escrowRefunded: "Escrow zwrócone", escrowRefundedBody: "Środki wróciły do Twojego portfela Cashu.", escrowRefundFailed: "Nie udało się zwrócić escrow", confirmThisTrade: "Potwierdź tę transakcję", escrowAndRequest: "Escrow i prośba", shipsEscrowHint: "Wysyłkowa transakcja — użyj escrow, aby żadna strona nie wysłała w próżnię. Adres udostępnij prywatnie na czacie transakcji, nigdy tutaj.", shipsHint: "Wysyłkowa transakcja — preferuj escrow, jeśli sprzedawca je oferuje, a adres udostępniaj tylko na czacie.", askSeller: "Poproś sprzedawcę o potwierdzenie", waitingSeller: "Poproszono o potwierdzenie — czekamy na sprzedawcę.", refundEscrow: "Zwróć escrow", buyWithSats: "Kup za sats", depositTitle: "Zadatek dobrej woli (opcjonalnie)", payDeposit: "Zapłać zadatek", depositBefore: "Wymiana nie ma faktury, więc w ten sposób zyskuje", verifiableCost: "weryfikowalny koszt", depositAfter: ". Zwrot przy dostawie (albo użyj Cashu escrow dla automatycznego zwrotu). ⚠️ Dowodzi zaangażowania, nie dostawy.", depositPaid: "Zadatek zapłacony", depositPaidBody: "Zapisano — zostanie dołączony przy potwierdzeniu transakcji.", paid: "Zapłacono ⚡", paidWithProof: "Zapisano weryfikowalny paragon — potwierdź transakcję, aby został zaliczony.", paidBody: "Poproś sprzedawcę o potwierdzenie transakcji, aby została zaliczona Wam obojgu.", }, offers: { accepted: "Zaakceptowana", declined: "Odrzucona", withdrawn: "Wycofana", open: "Otwarta", noAmount: "brak kwoty", titleOwner: "Oferty ({{count}})", titleBuyer: "Twoje negocjacje", you: "Ty", them: "Oni", paidAskConfirm: "Zapłacono — poproś sprzedawcę o potwierdzenie transakcji.", payWithSats: "Zapłać sats", accept: "Akceptuj", decline: "Odrzuć", counter: "Kontroferta", counterPlaceholder: "Twoja kontroferta (sats)", send: "Wyślij", counterItemPlaceholder: "…albo kontroferta z przedmiotem na wymianę (opcjonalnie)", waitingOn: "Czekamy na", waitingOnSuffix: "— Twoja kolej wróci, jeśli złożą kontrofertę.", withdraw: "Wycofaj", dmAccepted: "✅ Twoja oferta została zaakceptowana! Napisz, aby ustalić przekazanie.", dmDeclined: "❌ Twoja oferta została odrzucona.", offerAccepted: "Oferta zaakceptowana", offerDeclined: "Oferta odrzucona", respondFailed: "Nie udało się odpowiedzieć", somethingWrong: "Coś poszło nie tak.", offerWithdrawn: "Oferta wycofana", withdrawFailed: "Nie udało się wycofać", enterAmountOrItem: "Wpisz kwotę lub przedmiot na wymianę", counterDm: "Kontroferta", counterSent: "Kontroferta wysłana", counterSentBody: "Teraz ich kolej.", counterFailed: "Nie udało się wysłać kontroferty", }, offer: { validAmount: "Wpisz prawidłową kwotę", describeOffer: "Opisz swoją ofertę", describeOfferBody: "Dodaj kwotę, przedmiot na wymianę lub wiadomość.", dmAmount: " za {{amount}} sats", dmItem: " (w ofercie: {{item}})", dmBody: "🛹 Nowa oferta na Twoje ogłoszenie \"{{title}}\"{{amount}}{{item}}.{{note}}", sent: "Oferta wysłana", sentBody: "{{sellerName}} może ją zaakceptować lub odrzucić.", sendFailed: "Nie udało się wysłać oferty", somethingWrong: "Coś poszło nie tak.", title: "Złóż ofertę", description: "Zaoferuj sats albo wymień coś — {{sellerName}} może zaakceptować, odrzucić lub złożyć kontrofertę. Przekazanie ustalacie między sobą.", amountLabel: "Kwota (sats, opcjonalnie)", amountPlaceholder: "np. 45000", itemLabel: "Albo wymiana przedmiotu (opcjonalnie)", itemPlaceholder: "np. mój Deck 8.25 + zapasowe Wheels", itemHint: "Wymiana? Wpisz tutaj, co oferujesz — możesz połączyć to z sats.", messageLabel: "Wiadomość (opcjonalnie)", messagePlaceholder: "Wszystko, co sprzedawca powinien wiedzieć…", send: "Wyślij ofertę", }, markSold: { enterBuyer: "Wpisz npub kupującego", dealClosed: "Umowa zamknięta 🎉", dealClosedBody: "Ogłoszenie oznaczone jako sprzedane, a transakcja opublikowana dla reputacji.", closeFailed: "Nie udało się zamknąć umowy", somethingWrong: "Coś poszło nie tak.", title: "Zamknij umowę", description: "Oznacza to ogłoszenie jako sprzedane i rejestruje podpisane poświadczenie transakcji dla Ciebie i kupującego.", buyerLabel: "npub kupującego", methodLabel: "Jak zapłacono? (samodzielnie zgłoszone)", amountLabel: "Kwota w sats (opcjonalnie)", submit: "Oznacz jako sprzedane", }, handoff: { title: "Ustal przekazanie", suggest: "Zaproponuj czas i miejsce", suggestDm: "Cześć! Chciałbym kupić \"{{title}}\". Zaproponuj czas i miejsce spotkania — chętnie spotkam się w publicznym skate Spocie.", orMeetAt: "Albo spotkaj się w pobliskim publicznym Spocie:", spotDm: "Cześć! Chciałbym kupić \"{{title}}\". Może spotkamy się w {{spot}}? {{url}}", shareDelivery: "Udostępnij dane dostawy", deliveryDm: "Cześć! Chciałbym kupić \"{{title}}\". Oto moje dane dostawy:\n\nImię i nazwisko:\nAdres:\n\n(Udostępnij tylko to, czego potrzebuje kurier.)", useLocker: "Użyj skrytki / punktu odbioru", lockerDm: "Cześć! Chciałbym kupić \"{{title}}\". Czy możemy użyć skrytki / punktu odbioru zamiast adresu domowego?", noteBefore: "Te dane pozostają na prywatnym czacie — SkateSpots nigdy ich nie widzi. Przy wysyłce preferuj", escrow: "escrow", noteMiddle: ", i", neverPay: "nigdy nie płać poza systemem aplikacji", noteAfter: ". Spotykaj się w miejscach publicznych.", }, shipping: { noCounterparty: "Brak drugiej strony", noCounterpartyBody: "Sprzedawca powinien najpierw zarejestrować sprzedaż (podając kupującego).", markedShipped: "Oznaczono jako wysłane", markedReceived: "Oznaczono jako otrzymane", issueReported: "Zgłoszono problem", receivedBody: "Dziękujemy — to nie zwalnia escrow; rozlicz się bezpośrednio ze sprzedawcą.", notifiedBody: "Druga strona została powiadomiona.", updateFailed: "Nie udało się zaktualizować", somethingWrong: "Coś poszło nie tak.", title: "Wysyłka", shipped: "wysłane", received: "otrzymane", issue: "problem", trackingPlaceholder: "Numer śledzenia (opcjonalnie)", iShipped: "Wysłałem to", iReceived: "Otrzymałem to", reportIssue: "Zgłoś problem", noteBefore: "Samodzielnie zgłoszone — notatka logistyczna,", notProof: "nie dowód", noteAfter: ". Oznaczenie \"otrzymane\" nie zwalnia escrow. ⚠️ Nie fotografuj paczki z widocznym adresem i udostępniaj numer śledzenia tylko, jeśli nie masz nic przeciwko jego publiczności.", }, pay: { sent: "Płatność wysłana ⚡", sentWithProof: "Zapisano weryfikowalny paragon płatności — zostanie zaliczony jako zweryfikowana płatność.", sentBody: "Daj znać sprzedawcy — może potwierdzić transakcję, aby została zaliczona Wam obojgu.", failed: "Płatność nie powiodła się", title: "Zapłać sats", descSendPrefix: "Wyślij", descSendSuffix: "do {{sellerName}}, aby rozliczyć tę transakcję.", descSettle: "Rozlicz tę transakcję bezpośrednio z {{sellerName}}.", paid: "Zapłacono!", paidBody: "Poproś sprzedawcę o potwierdzenie transakcji — dwa potwierdzenia budują reputację obu stron.", noMethod: "{{sellerName}} nie ustawił metody płatności (brak faktury Lightning lub adresu). Napisz do niego, aby ustalić płatność.", ownListing: "To Twoje własne ogłoszenie.", paying: "Płacenie…", pay: "Zapłać", payAmount: "Zapłać {{amount}} sats", footnote: "Płaci z Twojego połączonego portfela (NWC, WebLN lub Cashu) bezpośrednio do {{sellerName}} — SkateSpots nigdy nie przechowuje środków.", }, spamFee: { invoiceComment: "Opłata za ogłoszenie SkateSpots", generateFailed: "Nie udało się wygenerować faktury", paymentSuccess: "Płatność zakończona sukcesem!", satsSent: "Wysłano {{amount}} sats do {{name}}", autoPayFailed: "Automatyczna płatność nie powiodła się", autoPayFailedBody: "Zapłać ręcznie, używając kodu QR lub faktury", invoiceCopied: "Faktura skopiowana!", copyFailed: "Nie udało się skopiować", received: "Płatność otrzymana!", receivedBody: "Twoja opłata {{amount}} sats została zapłacona. Możesz teraz utworzyć swoje ogłoszenie.", title: "Jednorazowa opłata za ogłoszenie", subtitle: "Jako nowy członek musisz zapłacić niewielką opłatę za pierwsze ogłoszenie.", whyTitle: "Dlaczego muszę zapłacić?", spamLabel: "Zapobieganie spamowi:", spamBody: "Ta opłata powstrzymuje boty i oszustów przed zalewaniem Marketplace fałszywymi ogłoszeniami.", trustLabel: "Budowanie zaufania:", trustBody: "Nowe konta muszą udowodnić zaangażowanie przed wystawieniem. Po kilku udanych ogłoszeniach opłata jest znoszona.", supportsLabel: "Wspiera społeczność:", supportsPrefix: "Opłata trafia do", supportsSpotOwner: " — osoby, która utworzyła ten Spot!", supportsPlatform: " — pomagając utrzymać SkateSpots.", oneTimeFee: "~${{usd}} USD • Opłata jednorazowa", payToContinue: "Zapłać {{amount}} sats, aby kontynuować", proveWork: "Wykonaj pracę zamiast tego — za darmo", proveWorkBody: "Poświęć kilka sekund CPU zamiast {{amount}} sats. Bez pieniędzy, bez portfela — podatek antyspamowy, nie płatność.", generating: "Generowanie faktury...", processing: "Przetwarzanie płatności...", qrAlt: "Kod QR płatności", copyInvoice: "Skopiuj fakturę", openWallet: "Otwórz portfel", payWithWallet: "Zapłać połączonym portfelem", scanHint: "Zeskanuj kod QR portfelem Lightning lub użyj powyższych przycisków", skipTitle: "Jak w przyszłości pominąć tę opłatę:", skip1: "Dodaj skate Spot na mapę", skip2: "Zakończ 2–3 udane ogłoszenia", skip3: "Buduj swoją reputację w społeczności", skipNote: "Zaufani członkowie mają nielimitowane darmowe ogłoszenia!", }, reputation: { highlyTrusted: "Wysoce zaufany handlarz", building: "Budowanie reputacji", newTrader: "Nowy handlarz", title: "Transakcje", verified: "Zweryfikowane", sales: "Sprzedaże", purchases: "Zakupy", tradeConfirmedOne: "wzajemnie potwierdzona transakcja", tradeConfirmedMany: "wzajemnie potwierdzone transakcje", with: "z", personOne: "osoba", personMany: "osoby", awaiting: "Oczekuje na wzajemne potwierdzenie", withPaymentProof: "z dołączonym dowodem płatności", selfReported: "(samodzielnie zgłoszone — niezweryfikowane)", paymentVerified: "płatność zweryfikowana", zapReceipt: "(paragon Zap)", singlePartnerWarning: "Każde potwierdzenie jest z tym samym kontem. Wzajemne potwierdzenie jest samodzielnie zgłaszane, więc podchodź do tego zapisu ostrożnie.", lowDiversityWarning: "Większość potwierdzeń pochodzi z bardzo niewielu kont. Mała grupa poręczająca sobie nawzajem może wyglądać na aktywną — podchodź do tego zapisu ostrożnie.", ringWarning: "Te konta handlują głównie ze sobą — zamknięty klaster. Wzajemne potwierdzenia w takim kręgu to słaby dowód.", weighted: "Ważone zaufaniem i aktywnością", footnote: "Samodzielnie zgłoszone i wzajemnie podpisane — sygnał, nie dowód płatności.", }, reputationPanel: { reviewOfYou: "Opinia o Tobie", yourRecord: "Twój zapis", listing: "Ogłoszenie", averageOne: "średnia z {{count}} oceny", averageMany: "średnia z {{count}} ocen", reviewsTitle: "Opinie i zapisy transakcji", fromOthers: "{{count}} od innych", emptyBefore: "Brak zapisów transakcji. Zakończ umowę i potwierdź ją w", emptyAfter: "— każde potwierdzenie staje się opinią na obu profilach.", }, recommendations: { published: "Rekomendacja opublikowana", publishedBody: "Dziękujemy za poręczenie.", failed: "Nie udało się polecić", somethingWrong: "Coś poszło nie tak.", title: "Zaufany handlarz", recommendedBy: "Polecany przez", skaterOne: "skater", skaterMany: "skaterów", none: "Brak rekomendacji.", youRecommend: "Polecasz tego handlarza ✓", recommend: "Poleć jako zaufanego handlarza", }, notification: { newOffer: "Nowa oferta", counterOffer: "Kontroferta", offerAccepted: "Oferta zaakceptowana", offerDeclined: "Oferta odrzucona", offerWithdrawn: "Oferta wycofana", confirmTrade: "Potwierdź transakcję", tradeConfirmed: "Transakcja potwierdzona", reviewOffer: "Przejrzyj ofertę", openListing: "Otwórz ogłoszenie", }, confirmRow: { rateTrade: "Oceń transakcję:", }, deckRating: { title: "{{value}}/10 Decks", aria: "{{n}} z 10", }, clink: { tip: "Wspomóż w Bitcoin", copiedBody: "Kod CLINK skopiowany do schowka.", copyFailed: "Kopiowanie nie powiodło się", copyFailedBody: "Nie udało się uzyskać dostępu do schowka.", whatIs: "Czym jest CLINK?", tooltipTitle: "Płać bezpośrednio Bitcoinem przez Nostr", tooltipBody: "CLINK to samodzielnie przechowywany kod płatności — bez konta w aplikacji, bez pośrednika. Zeskanuj go kompatybilnym portfelem Lightning, a datek trafi prosto do odbiorcy.", descRecipient: "Wyślij samodzielnie przechowywaną płatność Bitcoin (Lightning) do {{recipientName}} — bez pośrednika.", descGeneric: "Wyślij samodzielnie przechowywaną płatność Bitcoin (Lightning) przez Nostr — bez pośrednika.", qrAlt: "Kod QR oferty CLINK", copyCode: "Skopiuj kod CLINK", openWallet: "Otwórz w portfelu CLINK", copyToWallet: "Skopiuj kod do portfela", priceFixed: "Stała — {{amount}} sats", priceFixedShort: "Cena stała", priceVariable: "Cena zmienna", priceVariableCurrency: "Wycena w {{currency}}", priceSpontaneous: "Ty wybierasz kwotę", footnote: "Zeskanuj portfelem zgodnym z CLINK (np. ShockWallet). Jeśli nic się nie otworzy, skopiuj kod powyżej — możesz nie mieć zainstalowanego portfela zgodnego z CLINK. Bez powiernika, bez serwera: faktura jest pobierana bezpośrednio przez Nostr.", }, paymentReadiness: { ready: "Możesz otrzymywać płatności", notReady: "Skonfiguruj płatności, aby otrzymywać pieniądze", readyBefore: "Twój adres Lightning", readyAfter: " jest na Twoim profilu — ludzie mogą Cię Zapować i płacić bezpośrednio.", silentSet: " Ustawiono też adres Bitcoin Silent Payment.", notReadyBefore: "Dodaj adres Lightning (i opcjonalnie adres Bitcoin Silent Payment) do swojego", nostrProfile: "profilu Nostr", notReadyAfter: ", aby skaterzy mogli Ci płacić. Ustawia się to raz i działa na każdym profilu, który tu masz.", }, seller: { trade: "Wymiana", active: "Aktywne", markSold: "Oznacz jako sprzedane", yourListings: "Twoje ogłoszenia", activeCount: "{{count}} aktywne", listItem: "Wystaw przedmiot", loading: "Ładowanie Twoich ogłoszeń…", empty: "Nie masz jeszcze żadnych ogłoszeń.", listFirst: "Wystaw pierwszy przedmiot", }, noffer: { label: "Kod oferty CLINK", optional: "(opcjonalnie, zaawansowane)", offerId: "Oferta: {{id}}", relay: "Relay: {{relay}}", invalidBefore: "To nie wygląda na prawidłowy", invalidAfter: "kod.", valid: "Prawidłowy kod CLINK — przycisk \"Zapłać przez CLINK\" pojawi się na Twoim profilu.", help: "Wklej samodzielnie przechowywany kod płatności CLINK (np. z ShockWallet / Lightning.Pub), aby przyjmować płatności Lightning natywne dla Nostr — bez serwera i powiernika.", learnSpecs: "Poznaj specyfikację", }, escrowPanel: { escrowed: "Zabezpieczono {{amount}} sats", mint: "Mint", refundSinceBefore: "Kupujący może zwrócić od", redeemBefore: "Sprzedawca może zrealizować teraz · kupujący zwrot po", noExpiry: "Dla tego tokena nie ustawiono terminu ważności.", }, escrowRequest: { enterAmount: "Wpisz kwotę escrow", minLock: "Zablokuj na co najmniej {{days}} dzień", requestNote: "Zabezpieczono {{amount}} sats na naszą transakcję — proszę o potwierdzenie sprzedaży.", created: "Escrow utworzone 🎉", createdBody: "{{amount}} sats zablokowane na {{days}} dni. {{sellerName}} może zrealizować po dostawie.", createFailed: "Nie udało się utworzyć escrow", somethingWrong: "Coś poszło nie tak.", title: "Zabezpiecz tę transakcję escrow", description: "Środki są zablokowane dla {{sellerName}} i zwracalne przez Ciebie, jeśli umowa nie dojdzie do skutku po terminie. Wymaga połączonego portfela Lightning.", amountLabel: "Kwota (sats)", daysLabel: "Zwrot dla kupującego po (dniach)", daysHint: "Po tylu dniach możesz odzyskać środki, jeśli sprzedawca nie dostarczył.", nativeOnly: "Cashu escrow jest dostępne tylko w aplikacji SkateSpots (nie w wersji web).", lockAndRequest: "Zablokuj i poproś", }, }, labOptions: { coach: { skill: { basics: "Podstawy", ollies: "Ollies", kickflips: "Kickflips", grinds: "Grindy i slidery", manuals: "Manuale", inverts: "Inverty", vert: "Vert/Ramp", bowl: "Bowl", street: "Street", freestyle: "Freestyle", safety: "Bezpieczeństwo", diy: "Moduły DIY Skate", }, skillDesc: { basics: "Odpychanie, postawa, równowaga, skręcanie", ollies: "Ollie i warianty (nollie, fakie)", kickflips: "Kickflip, heelflip i warianty", grinds: "50-50, 5-0, boardslide i więcej", manuals: "Manual, nose manual, kombinacje", inverts: "Invert, handplant, eggplant, andrecht", vert: "Half-pipe, quarter-pipe, drop-iny", bowl: "Jazda w bowl, pompowanie, linie", street: "Przeszkody uliczne i kreatywność", freestyle: "Tricki na płaskim i flow", safety: "Jak upadać, sprzęt ochronny, zapobieganie kontuzjom", diy: "Budowanie ramp, rail'i, krawężników i innych przeszkód skate", }, }, filmer: { service: { miniclips: "Mini klipy", longparts: "Długie video party", koth: "Styl King of the Road", documentaries: "Dokumenty", contests: "Filmowanie zawodów", raw: "Surowy materiał", followlines: "Filmowanie follow / linii", lines: "Filmowanie linii i B-roll", }, serviceDesc: { miniclips: "Klipy 15–60 s do mediów społecznościowych", longparts: "Pełne video party 3–10 min z muzyką", koth: "Skate video w stylu przygodowym / wyzwań", documentaries: "Treści o kulturze skate i oparte na historii", contests: "Profesjonalne relacje z zawodów i konkursów", raw: "Nieobrobiony materiał z wielu kątów", followlines: "Follow-cam typu fisheye do linii", lines: "Linie z długim obiektywem i filmowy b-roll", }, skill: { vx1000: "VX1000", hvx: "HVX / HPX", cinema: "Kamera filmowa", dslr: "DSLR / bezlusterkowiec", actioncam: "GoPro / kamera akcji", phone: "Filmowanie telefonem", drone: "Dron / ujęcia z powietrza", gimbal: "Gimbal / stabilizator", fisheye: "Obiektyw fisheye", longlens: "Długi obiektyw", "4k": "4K / wysoka liczba klatek", editing: "Montaż wideo", color: "Korekcja kolorów", }, skillDesc: { vx1000: "Klasyczna estetyka skateboardingu VX1000", hvx: "Look standard-def / HD Panasonic HVX/HPX", cinema: "Kamera filmowa (FX3, seria C, RED, BMPCC)", dslr: "Wysokiej jakości aparat DSLR lub bezlusterkowy", actioncam: "GoPro / kamera akcji POV i mocowania", phone: "Filmowanie telefonem z nowoczesnymi smartfonami", drone: "Ujęcia z powietrza i drona", gimbal: "Stabilizowany ruch gimbala", fisheye: "Ujęcia szerokokątnym obiektywem fisheye", longlens: "Długi obiektyw do szczegółowych ujęć", "4k": "Rozdzielczość 4K i slow-mo z wysoką liczbą klatek", editing: "Profesjonalny montaż i postprodukcja wideo", color: "Korekcja i grading kolorów", }, }, editor: { service: { parts: "Video party", montages: "Montaże", reels: "Reels / krótkie klipy", documentaries: "Dokumenty", contest: "Montaże z zawodów", brand: "Filmy marki / promocyjne", motion: "Motion graphics", colorgrade: "Tylko grading kolorów", }, serviceDesc: { parts: "Pełne skate video party ze ścieżką dźwiękową", montages: "Montaże kompilacyjne z surowego materiału", reels: "Klipy i reels 15–60 s do mediów społecznościowych", documentaries: "Filmy o kulturze skate oparte na historii", contest: "Montaże podsumowujące z zawodów i Eventów", brand: "Treści promocyjne dla marek i Shopów", motion: "Tytuły, przejścia, efekty i grafiki", colorgrade: "Korekcja kolorów i grading oparty na LUT", }, skill: { premiere: "Adobe Premiere", resolve: "DaVinci Resolve", finalcut: "Final Cut Pro", aftereffects: "After Effects", luts: "Własne LUT", vhs: "Estetyka VHS / retro", "4k": "Praca w 4K i RAW", sound: "Sound design / miks", }, skillDesc: { premiere: "Montaż w Adobe Premiere Pro", resolve: "Montaż i grading w DaVinci Resolve", finalcut: "Montaż w Final Cut Pro", aftereffects: "Motion graphics i kompozycja", luts: "Tworzenie własnych looków kolorystycznych", vhs: "Glitch VHS, super-8, retro looki filmowe", "4k": "Praca z kamerami wysokiej rozdzielczości RAW/LOG", sound: "Synchronizacja muzyki, SFX, mastering audio", }, }, photo: { service: { action: "Ujęcia akcji / tricków", sequence: "Ujęcia sekwencyjne", portraits: "Portrety", editorial: "Editorial / magazyn", product: "Fotografia produktowa / Shopowa", events: "Relacje z Eventów", lifestyle: "Lifestyle / dokument", prints: "Odbitki i ziny", }, serviceDesc: { action: "Zdjęcia szczytowej akcji tricków i linii", sequence: "Wieloklatkowe sekwencje tricków", portraits: "Portrety riderów i zdjęcia drużyny", editorial: "Rozkładówki editorial gotowe do magazynu", product: "Fotografia produktowa Decków, Gearu i Shopu", events: "Relacje z zawodów, jamów i premier", lifestyle: "Kulisy i dokument kulturowy", prints: "Fizyczne odbitki, ziny i albumy fotograficzne", }, camera: { dslr: "DSLR", mirrorless: "Bezlusterkowiec", medium: "Średni format", film35: "Film 35 mm", filmmedium: "Film średnioformatowy", point: "Mały kompakt", phone: "Telefon", }, lens: { fisheye: "Fisheye", wide: "Szerokokątny", standard: "Standardowy / stały", telephoto: "Teleobiektyw / długi obiektyw", macro: "Makro", zoom: "Zoom", }, lighting: { strobes: "Lampy studyjne", speedlights: "Lampy błyskowe", profoto: "Profoto", elinchrom: "Elinchrom", godox: "Godox", triggers: "Zdalne wyzwalacze", continuous: "Światło ciągłe / LED", reflectors: "Odbłyśniki / dyfuzory", naturallight: "Tylko światło naturalne", }, support: { tripod: "Statyw", monopod: "Monopod", lightstands: "Stojaki oświetleniowe", gimbal: "Gimbal", bag: "Mobilny rig / torba", laptop: "Tethering na miejscu", }, style: { flashfisheye: "Fisheye z lampą", natural: "Światło naturalne", bw: "Czerń i biel", film: "Estetyka filmowa", longlens: "Długi obiektyw", studio: "Studio / oświetlenie", street: "Ulica / dokument", }, }, builder: { service: { diy: "Spoty DIY", concrete: "Betonowe skateparki", wood: "Drewniane rampy", bowls: "Bowle i baseny", transitions: "Transition i quartery", rails: "Rail'e i krawężniki", boxes: "Manny pady i boxy", minis: "Mini rampy", pumptrack: "Pumptracki", foam: "Foam pity / hala", repairs: "Naprawy i renowacje", design: "Projekt i doradztwo", }, serviceDesc: { diy: "Społecznościowe Spoty DIY i partyzanckie budowy", concrete: "Skateparki i elementy z lanego betonu", wood: "Drewniane rampy, launch boxy i przeszkody", bowls: "Bowle, baseny i głębokie transition", transitions: "Quarterpipe'y, najazdy i transition", rails: "Stalowe rail'e, krawężniki i przeszkody do grindowania", boxes: "Manny pady, funboxy i przeszkody uliczne", minis: "Mini rampy i zestawy na podwórku", pumptrack: "Pumptracki i płynne linie", foam: "Foam pity, resi i elementy treningowe w hali", repairs: "Naprawa, łatanie i renowacja istniejących Spotów", design: "Plany, rysunki i doradztwo budowlane", }, skill: { concretework: "Beton / shotcrete", welding: "Spawanie / stal", carpentry: "Ciesielstwo / drewno", formwork: "Szalunki i zbrojenie", masonry: "Murarstwo / bloczki", coping: "Coping (basen / stal)", surfacing: "Skatelite / nawierzchnia", earthworks: "Roboty ziemne / wykopy", }, scale: { backyard: "Podwórko / mini", diycommunity: "Społecznościowe DIY", publicpark: "Pełny publiczny skatepark", indoor: "Obiekt w hali", event: "Trasa Eventu / zawodów", }, }, artist: { service: { boardart: "Grafiki na deski", logos: "Loga i branding", posters: "Plakaty i ulotki", merch: "Merch i odzież", zines: "Ziny i druk", illustration: "Ilustracja", stickers: "Naklejki i kalkomanie", webdesign: "Web / digital", typography: "Typografia / liternictwo", animation: "Animacja / motion", }, serviceDesc: { boardart: "Grafiki na Deck i sztuka na Griptape", logos: "Identyfikacja marki, loga i wordmarki", posters: "Plakaty Eventów, ulotki i grafiki koncertowe", merch: "Grafiki na koszulki, bluzy i odzież", zines: "Ziny, editorial i skład druku", illustration: "Ilustracje na zamówienie i prace z postaciami", stickers: "Pakiety naklejek, kalkomanie i slapy", webdesign: "Strony internetowe, digital i UI", typography: "Liternictwo ręczne i typografia na zamówienie", animation: "Motion graphics i animacja", }, medium: { digital: "Digital / wektor", handdrawn: "Rysunek ręczny", screenprint: "Sitodruk", paint: "Farba / akryl", collage: "Kolaż / techniki mieszane", photo: "Fotografia / Photoshop", "3d": "3D / render", }, tool: { illustrator: "Adobe Illustrator", photoshop: "Adobe Photoshop", procreate: "Procreate", affinity: "Affinity", figma: "Figma", blender: "Blender", aftereffects: "After Effects", clipstudio: "Clip Studio", }, }, graffiti: { style: { throwups: "Throw-upy", pieces: "Piece / burnery", murals: "Murale", characters: "Postacie", lettering: "Liternictwo / wildstyle", stencil: "Szablon", handstyles: "Handstyle / tagi", "3dstyle": "Styl 3D", abstract: "Abstrakcja", }, styleDesc: { throwups: "Szybkie dwukolorowe wypełnienia", pieces: "Pełnokolorowe piece i burnery", murals: "Murale i produkcje w dużej skali", characters: "Prace z postaciami i figurami", lettering: "Wildstyle i struktura liter", stencil: "Szablon i street art", handstyles: "Tagi i handstyle", "3dstyle": "Liternictwo 3D i anamorficzne", abstract: "Abstrakcja i freestyle", }, medium: { spray: "Spreje", rollers: "Wałki / emulsja", markers: "Markery / tusze", brush: "Pędzel / farba", digital: "Digital / Procreate", }, context: { legalwalls: "Legalne ściany", commissions: "Zamówienia", liveart: "Malowanie na żywo", skateparks: "Murale w skateparkach", interiors: "Wnętrza / Shopy", workshops: "Warsztaty", }, }, tattoo: { style: { traditional: "Traditional / old school", neotraditional: "Neo-traditional", fineline: "Fine line", blackwork: "Blackwork", realism: "Realizm", lettering: "Liternictwo / skrypt", illustrative: "Ilustracyjny", skateflash: "Skate flash", ignorant: "Ignorant / styl handpoke", japanese: "Japoński / irezumi", }, styleDesc: { traditional: "Grube linie, klasyczna americana", neotraditional: "Traditional z nowoczesnymi detalami", fineline: "Delikatna praca pojedynczą igłą", blackwork: "Lity czarny i wzory", realism: "Fotorealizm i portrety", lettering: "Skrypt, liternictwo i cytaty", illustrative: "Ilustracyjny i graficzny", skateflash: "Wzory flash z kultury skate", ignorant: "Ignorant / naiwny styl handpoke", japanese: "Japoński traditional / irezumi", }, method: { machine: "Maszynka", handpoke: "Hand-poke / stick & poke", flash: "Dostępny flash", custom: "Projekty na zamówienie", coverup: "Cover-upy", }, }, trainer: { focus: { strength: "Siła i kondycja", mobility: "Mobilność i elastyczność", injuryprevention: "Zapobieganie kontuzjom", rehab: "Rehabilitacja / fizjoterapia", recovery: "Regeneracja i praca z ciałem", balance: "Równowaga i stabilność", cardio: "Cardio / wytrzymałość", nutrition: "Poradnictwo żywieniowe", }, focusDesc: { strength: "Budowanie siły i mocy do jazdy", mobility: "Zakres ruchu i elastyczność", injuryprevention: "Prehab i zmniejszanie ryzyka kontuzji", rehab: "Fizjoterapia i rehabilitacja po kontuzji", recovery: "Masaż, praca z ciałem i regeneracja", balance: "Propriocepcja, równowaga i stabilność", cardio: "Kondycja i wytrzymałość", nutrition: "Odżywianie i porady żywieniowe", }, injury: { ankles: "Kostki", knees: "Kolana", wrists: "Nadgarstki", hips: "Biodra", back: "Plecy / kręgosłup", shoulders: "Barki", heelbruise: "Stłuczenia pięty", concussion: "Protokół wstrząśnienia mózgu", }, credential: { physio: "Licencjonowany fizjoterapeuta", osteo: "Osteopata", certtrainer: "Certyfikowany trener", sportstherapist: "Terapeuta sportowy", massage: "Masażysta", inperson: "Osobiście", remote: "Zdalnie / online", }, }, musician: { genre: { punk: "Punk", hardcore: "Hardcore", metal: "Metal", rock: "Rock", indie: "Indie / alt", hiphop: "Hip-hop / rap", electronic: "Elektronika", lofi: "Lo-fi / beaty", reggae: "Reggae / dub", ska: "Ska", jazz: "Jazz", funk: "Funk / soul", flamenco: "Flamenco", folk: "Folk / akustyczny", experimental: "Eksperymentalny", grunge: "Grunge", }, instrument: { vocals: "Wokal", guitar: "Gitara", bass: "Bas", drums: "Perkusja", keys: "Klawisze / synth", dj: "DJ / gramofony", producer: "Producent / beaty", sax: "Saksofon / instrumenty dęte", strings: "Instrumenty smyczkowe", other: "Inne", }, act: { solo: "Solowy artysta", band: "Zespół", dj: "DJ", producer: "Producent", collective: "Kolektyw", }, }, judge: { format: { game_of_skate: "Game of S.K.A.T.E.", best_trick: "Best Trick", jam: "Format jam", contest: "Zawody / comp", street_league: "Styl Street League", bowl: "Bowl / vert", mini_ramp: "Mini rampa", park: "Park", street: "Street", freestyle: "Freestyle", world_tour: "World Destruction Tour", am_series: "Seria am / kwalifikacje", local_jam: "Lokalny jam / grassroots", online: "Online / konkurs IG", }, specialty: { head_judge: "Główny sędzia", scoring: "Punktacja / tabela", mc: "MC / spiker", format_design: "Projekt formatu", rules: "Zasady / sędziowanie", brackets: "Drabinki / rundy", livestream: "Sędziowanie na livestreamie", am_scout: "Skauting am", }, level: { local: "Lokalny", regional: "Regionalny", national: "Krajowy", international: "Międzynarodowy", pro: "Obieg pro", }, }, organizer: { event: { street_jam: "Street jam", best_trick: "Best Trick", game_of_skate: "Game of S.K.A.T.E.", contest: "Zawody / comp", bowl: "Bowl / vert", mini_ramp: "Mini rampa", park: "Sesja w skateparku", demo: "Pro demo", clinic: "Klinika / warsztaty", meetup: "Spotkanie / przejażdżka", downhill: "Downhill / wyścig", slalom: "Slalom", kids: "Dzieci / młodzież", charity: "Charytatywne / zbiórka", tour_stop: "Etap Touru", premiere: "Premiera wideo", market: "Targi / wystawa sztuki", }, service: { organizing: "Pełna organizacja", hosting: "Prowadzenie / MC", permits: "Pozwolenia i urząd", sponsorship: "Sponsoring / umowy z markami", promotion: "Promocja i marketing", livestream: "Livestream / relacja", sound: "Dźwięk i muzyka", ramps: "Rampy i przeszkody", safety: "Bezpieczeństwo i pierwsza pomoc", vendors: "Jedzenie i wystawcy", media: "Relacja foto / wideo", registration: "Zapisy i drabinki", }, scale: { grassroots: "Grassroots", local: "Lokalny", regional: "Regionalny", national: "Krajowy", international: "Międzynarodowy", pro: "Obieg pro", }, }, barber: { service: { haircut: "Strzyżenie", fade: "Fade", beard: "Trymowanie brody", lineup: "Line-up / shape-up", colour: "Koloryzacja i farbowanie", kids: "Strzyżenie dzieci", }, serviceDesc: { haircut: "Klasyczne strzyżenie — maszynką i nożyczkami.", fade: "Płynne przejście — niski, średni lub wysoki fade.", beard: "Trymowanie, formowanie i pielęgnacja brody.", lineup: "Czyste krawędzie wokół linii włosów i karku.", colour: "Koloryzacja, rozjaśnianie, farbowanie i tonowanie.", kids: "Cierpliwe strzyżenie dla młodszych skaterów.", }, style: { skin_fade: "Skin fade", taper: "Taper", buzz: "Strzyżenie na jeża", mohawk: "Irokez", mullet: "Mullet", curly: "Loki / afro", long: "Długie włosy / warstwy", classic: "Klasyczne cięcie nożyczkami", }, setting: { shop: "Shop / barbershop", mobile: "Mobilnie / z dojazdem", event: "Skate Eventy i zawody", }, }, tour: { skill: { beginner: { label: "Początkujący", description: "Stawiasz pierwsze kroki w skate lub znasz podstawowe tricki", }, intermediate: { label: "Średniozaawansowany", description: "Komfortowo czujesz się na większości terenu", }, advanced: { label: "Zaawansowany", description: "Doświadczony skater, mocne Spoty", }, all: { label: "Wszystkie poziomy", description: "Odpowiedni dla każdego", }, }, }, }, }; export default plBatch6;