SkateSpots/src/i18n/pl/batch6.ts

1958 lines
90 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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;