diff --git a/src/components/LanguageToggle.tsx b/src/components/LanguageToggle.tsx index 5ed3dbc..86b476b 100644 --- a/src/components/LanguageToggle.tsx +++ b/src/components/LanguageToggle.tsx @@ -32,6 +32,7 @@ const languages: LanguageOption[] = [ { code: 'ja', name: 'Japanese', nativeName: '日本語', flag: '🇯🇵' }, { code: 'zh-CN', name: 'Chinese (Simplified)', nativeName: '简体中文', flag: '🇨🇳' }, { code: 'zh-TW', name: 'Chinese (Traditional)', nativeName: '繁體中文', flag: '🇹🇼' }, + { code: 'sv', name: 'Swedish', nativeName: 'Svenska', flag: '🇸🇪' }, { code: 'el', name: 'Greek', nativeName: 'Ελληνικά', flag: '🇬🇷' }, { code: 'vi', name: 'Vietnamese', nativeName: 'Tiếng Việt', flag: '🇻🇳' }, { code: 'tr', name: 'Turkish', nativeName: 'Türkçe', flag: '🇹🇷' }, diff --git a/src/i18n/sv/batch1.ts b/src/i18n/sv/batch1.ts index 69e36c1..cf67c00 100644 --- a/src/i18n/sv/batch1.ts +++ b/src/i18n/sv/batch1.ts @@ -1,4 +1,296 @@ -/** sv — batch 1. Filled by the translation pass; empty until then. */ -const svBatch1 = {}; +/** + * Svenska (sv) — batch 1: common, nav, chromeUi, desktopNav, navSheet, pwa, + * home, about, faq, onboarding. + * Engelska skate-termer behålls (Spot, Park, Bowl, Vert, Crew, Deck, Trucks, + * Wheels, Bearings, Griptape, Stash, The Lab, Nostr, Lightning, Zap, Relay, + * sats, NIP-05). + */ +const svBatch1 = { + common: { + loading: 'Laddar...', + error: 'Fel', + save: 'Spara', + cancel: 'Avbryt', + delete: 'Radera', + edit: 'Redigera', + add: 'Lägg till', + remove: 'Ta bort', + create: 'Skapa', + submit: 'Skicka', + close: 'Stäng', + back: 'Tillbaka', + next: 'Nästa', + done: 'Klart', + search: 'Sök', + filter: 'Filtrera', + sort: 'Sortera', + share: 'Dela', + more: 'Mer', + copy: 'Kopiera', + copied: 'Kopierat!', + viewAll: 'Visa alla', + seeMore: 'Se mer', + showMore: 'Visa mer', + showLess: 'Visa mindre', + noResults: 'Inga resultat hittades', + tryAgain: 'Försök igen', + learnMore: 'Lär dig mer', + getStarted: 'Kom igång', + yes: 'Ja', + no: 'Nej', + or: 'eller', + and: 'och', + free: 'Gratis', + new: 'Ny', + popular: 'Populär', + featured: 'Utvald', + verified: 'Verifierad', + sats: 'sats', + clear: 'Rensa', + clearFilters: 'Rensa filter', + clearAll: 'Rensa allt', + hide: 'Dölj', + undo: 'Ångra', + }, + nav: { + home: 'Hem', + map: 'Spots', + lab: 'The Lab', + events: 'Evenemang', + crews: 'Crews', + wallet: 'Plånbok', + settings: 'Inställningar', + more: 'Mer', + rewards: 'Belöningar', + stats: 'Gemenskapsstatistik', + about: 'Om', + food: 'Mat', + marketplace: 'Marknadsplats', + mints: 'Mints', + appShop: 'Appbutik', + diy: 'DIY', + trades: 'Marknadsplats', + stash: 'Stash', + collections: 'Samlingar', + contacts: 'Kontakter', + messages: 'Meddelanden', + skaters: 'Skatare', + glossary: 'Ordlista', + riderCard: 'Rider Card', + supporters: 'Supportrar ⚡', + newsletter: 'Nyhetsbrev', + viewProfile: 'Visa profil', + leaderboards: 'Topplistor', + }, + chromeUi: { + skipToContent: 'Hoppa till innehåll', + menu: 'Meny', + inBadge: 'In', + loggedIn: 'Inloggad', + profile: 'Profil', + logIn: 'Logga in', + logOut: 'Logga ut', + notLoggedIn: 'Inte inloggad', + loggedOutPrompt: 'Logga in för att lägga till spots, zappa skatare och spara dina favoriter', + accounts: 'Konton', + addAnotherAccount: 'Lägg till ett annat konto', + setStatus: 'Ange status', + setYourStatus: 'Ange din status', + status: 'Status', + addSpot: 'Lägg till Spot', + myData: 'Mina data', + myStash: 'Min Stash', + myCollections: 'Mina samlingar', + viewMyProfile: 'Visa min profil', + customizeNavBar: 'Anpassa navigeringsfältet', + ecash: 'Ecash', + madeWith: 'Skapad med', + forSkateCommunity: 'för skateboardgemenskapen', + beta: 'Beta', + license: 'Licens', + privacy: 'Integritet', + collaborators: 'Medarbetare & vänner', + notSponsoredBy: 'Inte sponsrad av', + errorTitle: 'Kunde inte ladda detta', + errorDescription: 'Nätverksbegäran misslyckades. Kontrollera din anslutning och försök igen.', + tryAgain: 'Försök igen', + weatherOn: 'Väder på', + weatherOff: 'Väder av', + trustFilter: 'Förtroendefilter', + filterByTrustLevel: 'Filtrera efter förtroendenivå', + trust: { + all: 'Alla användare', + allDesc: 'Visa innehåll från alla', + verified: 'Verifierad', + verifiedDesc: 'Du följer dem eller så är de verifierade (förtroende ≥90)', + trusted: 'Betrodd', + trustedDesc: 'Vänners vänner eller NIP-05-verifierade (förtroende ≥60)', + following: 'Endast följda', + followingDesc: 'Visa bara innehåll från personer du följer', + followingShort: 'Följer', + }, + sort: { + recent: 'Senaste', + recentDesc: 'Nyast först', + trust: 'Högst förtroende', + trustDesc: 'Mest betrodda skapare', + proximity: 'Närmast mig', + proximityDesc: 'Närmaste platser', + popular: 'Mest populär', + popularDesc: 'Flest kommentarer/reaktioner', + zaps: 'Flest Zaps', + zapsDesc: 'Högsta mottagna värde', + }, + spotType: { + street: 'Street', + transition: 'Transition', + park: 'Park', + plaza: 'Plaza', + diy: 'DIY', + bowl: 'Bowl', + vert: 'Vert', + indoor: 'Inomhus', + skatepark: 'Skatepark', + miniramp: 'Miniramp', + }, + }, + desktopNav: { + title: 'Datornavigering', + desc: 'Välj vilka flikar som visas i det övre fältet och deras ordning. Dolda flikar finns fortfarande i menyn ”Mer”.', + fixed: 'Fast', + shownInTopBar: 'Visas i det övre fältet ({{count}})', + noExtraTabs: 'Inga extra flikar visas — allt finns i menyn ”Mer”. Lägg till några nedan.', + inMoreMenu: 'I menyn ”Mer” ({{count}})', + moveUp: 'Flytta {{name}} upp', + moveDown: 'Flytta {{name}} ned', + hide: 'Dölj {{name}}', + moveToMore: 'Flytta till menyn Mer', + show: 'Visa', + showInTopBar: 'Visa {{name}} i det övre fältet', + showInTopBarTitle: 'Visa i det övre fältet', + reset: 'Återställ till standard', + }, + navSheet: { + title: 'Anpassa ditt fält', + desc: 'Välj de {{count}} flikar du använder mest. Allt annat finns kvar i menyn.', + preview: 'Förhandsgranska', + empty: 'Tom', + order: 'Ordning ({{done}}/{{total}})', + available: 'Tillgängliga flikar', + full: 'Fältet är fullt — ta bort en för att byta', + moveUp: 'Flytta {{name}} upp', + moveDown: 'Flytta {{name}} ned', + login: 'Logga in', + profile: 'Profil', + reset: 'Återställ', + done: 'Klart', + }, + pwa: { + installTitle: 'Installera SkateSpots', + installSubtitle: 'Få hela appupplevelsen', + addToHomeScreen: 'Lägg till på hemskärmen', + installApp: 'Installera appen', + maybeLater: 'Kanske senare', + gotIt: 'Uppfattat!', + benefits: { + fast: 'Blixtsnabbt', + offline: 'Fungerar offline', + fullAccess: 'Full åtkomst', + }, + iosStep1: 'Tryck på delningsknappen', + iosStep1Hint: 'längst ner i Safari', + iosStep2: 'Skrolla och tryck på "Lägg till på hemskärmen"', + iosStep2Hint: 'i delningsmenyn', + iosStep3: 'Tryck på "Lägg till" för att installera', + iosStep3Hint: 'Appen visas på din hemskärm', + androidStep1: 'Tryck på menyknappen', + androidStep1Hint: '(tre punkter) i din webbläsare', + androidStep2: 'Välj "Lägg till på hemskärmen"', + androidStep2Hint: 'eller "Installera appen"', + androidStep3: 'Bekräfta för att installera', + androidStep3Hint: 'Appen visas på din hemskärm', + tagline: 'Gratis • Fungerar offline • Snabb & pålitlig', + }, + home: { + tagline: 'Gemenskapsdriven • Relay-baserad', + title: 'SKATE SPOTS', + subtitle: 'Upptäck Spots • Träffas • Lär dig tricks • Stötta lokala', + description: 'Riktig skateboardåkning sker offline – det här verktyget hjälper dig att hitta den.', + betaWarning: 'BETA - Under uppbyggnad • Använd på egen risk', + pwaHint: 'Progressiv webbapp - installera på din enhet', + exploreMap: 'Utforska kartan', + addSpot: 'Lägg till Spot', + globalSpots: 'Globala Spots', + openCommunity: 'Öppen gemenskap', + lightningZaps: 'Lightning Zaps', + featuredSpots: 'Utvalda Spots', + featuredSpotsDesc: 'Gemenskapsverifierade skate-spots från hela världen', + upcomingEvents: 'Kommande evenemang', + upcomingEventsDesc: 'Tävlingar, träffar och sessioner som händer snart', + noSpotsYet: 'Inga Spots hittade än', + noSpotsHint: 'Bli först med att lägga till en Spot!', + noEventsYet: 'Inga kommande evenemang', + noEventsHint: 'Kom tillbaka senare eller skapa ett!', + theLab: 'The Lab', + theLabDesc: 'Lär dig tricks, hitta coacher och utveckla din åkning', + coaches: 'Coacher', + coachesDesc: 'Lär dig av erfarna skatare som kan hjälpa dig utvecklas', + filmers: 'Filmare', + filmersDesc: 'Kom i kontakt med filmare för att fånga dina bästa klipp', + findCoach: 'Hitta en coach', + becomeCoach: 'Bli coach', + findFilmer: 'Hitta en filmare', + becomeFilmer: 'Bli filmare', + viewAllSpots: 'Visa alla Spots', + viewAllEvents: 'Visa alla evenemang', + createEvent: 'Skapa evenemang', + readyToShare: 'Redo att dela?', + readyToShareDesc: 'Hjälp skateboardgemenskapen att växa genom att lägga till dina favoritspots. Varje plats du delar hjälper andra skatare att upptäcka nya ställen att åka på.', + }, + about: { + title: 'Om SkateSpots', + subtitle: 'En decentraliserad skateboardgemenskap', + whatIs: 'Vad är SkateSpots?', + whatIsDesc: 'SkateSpots är en gemenskapsdriven plattform för att upptäcka skateboardplatser världen över. Byggd på Nostr ger den skatare verkligt ägande av sina data.', + features: 'Funktioner', + featuresDesc: 'Hitta Spots, skapa evenemang, kom i kontakt med coacher och stötta din lokala skatebutik – allt på ett ställe.', + nostr: 'Byggd på Nostr', + nostrDesc: 'Nostr är ett enkelt, öppet protokoll som möjliggör verkligt censurresistent global kommunikation. Ditt konto och dina data tillhör dig.', + openSource: 'Öppen källkod', + openSourceDesc: 'SkateSpots är helt och hållet öppen källkod. Bidra, forka eller kör din egen instans.', + lightning: 'Lightning-betalningar', + lightningDesc: 'Zappa dina favoritskatare, coacher och innehållsskapare med Bitcoin Lightning-betalningar.', + }, + faq: { + title: 'Vanliga frågor', + subtitle: 'Allt du behöver veta om SkateSpots', + whatIsNostr: 'Vad är Nostr?', + whatIsNostrAnswer: 'Nostr är ett öppet protokoll för decentraliserat socialt nätverkande. Till skillnad från traditionella plattformar äger du dina data och din identitet.', + howToStart: 'Hur kommer jag igång?', + howToStartAnswer: 'Klicka på "Registrera dig" för att skapa ett nytt Nostr-konto, eller "Logga in" om du redan har ett. Du kan använda ett webbläsartillägg, en mobilapp eller en hemlig nyckel.', + whatAreZaps: 'Vad är Zaps?', + whatAreZapsAnswer: 'Zaps är Bitcoin Lightning-dricks som du kan skicka till andra användare. De är ett sätt att visa uppskattning för bra innehåll eller stötta skapare.', + howToAddSpot: 'Hur lägger jag till en Spot?', + howToAddSpotAnswer: 'Logga in på ditt konto, klicka på "Lägg till Spot" och fyll i detaljerna inklusive plats, foton och beskrivning.', + isItFree: 'Är SkateSpots gratis?', + isItFreeAnswer: 'Ja! SkateSpots är helt gratis att använda. Du kan valfritt skicka Zaps (Bitcoin-dricks) till andra användare.', + canIEditSpot: 'Kan jag redigera eller radera mina Spots?', + canIEditSpotAnswer: 'Ja, du kan redigera Spots som du har skapat. På grund av Nostrs decentraliserade natur skickas raderingsbegäranden men vissa relays kan behålla data.', + }, + onboarding: { + welcome: 'Välkommen till SkateSpots!', + welcomeDesc: 'Låt oss komma igång på bara några steg.', + step1Title: 'Skapa ditt konto', + step1Desc: 'Dina Nostr-nycklar genereras. Det här är som ett lösenord som du kontrollerar.', + step2Title: 'Säkerhetskopiera dina nycklar', + step2Desc: 'Spara din återställningsfras på ett säkert ställe. Detta är det enda sättet att återställa ditt konto!', + step3Title: 'Ställ in din profil', + step3Desc: 'Berätta om dig själv för gemenskapen.', + step4Title: 'Du är redo!', + step4Desc: 'Börja utforska Spots, evenemang och kom i kontakt med andra skatare.', + skipForNow: 'Hoppa över för nu', + continueToApp: 'Fortsätt till appen', + }, +}; export default svBatch1; diff --git a/src/i18n/sv/batch2.ts b/src/i18n/sv/batch2.ts index 8bfe339..990b920 100644 --- a/src/i18n/sv/batch2.ts +++ b/src/i18n/sv/batch2.ts @@ -1,4 +1,1658 @@ -/** sv — batch 2. Filled by the translation pass; empty until then. */ -const svBatch2 = {}; +/** + * Svenska (sv) — batch 2: mapUi, mapPage, spotUi, diyUi, labelsUi, feesUi, + * cardUi, routeUi, sasquatchUi, sasquatchChat. + * Engelska skate-termer behålls (Spot, Park, Bowl, Vert, Crew, Deck, Trucks, + * Wheels, Bearings, Griptape, Ledge, Rail, Stash, The Lab, Nostr, Lightning, + * Zap, Relay, sats, NIP-05). + */ +const svBatch2 = { + mapUi: { + mapFooter: { + links: 'Länkar', + hide: 'Dölj kartlänkfältet', + }, + findingSpots: 'Hittar spots', + loadingSpots: 'Laddar spots', + loadingMap: 'Laddar karta...', + mapViewAria: 'Kartvy', + listViewAria: 'Listvy', + layers: 'Lager', + mapLayers: 'Kartlager', + showOnMap: 'Visa på kartan', + showResults: 'Visa resultat', + quickActions: 'Snabbåtgärder', + spots: 'Spots', + shops: 'Butiker', + gear: 'Utrustning', + tours: 'Turer', + events: 'Evenemang', + crews: 'Crews', + spotType: 'Spot-typ', + sortBy: 'Sortera efter', + trustLevel: 'Förtroendenivå', + weather: 'Väder', + buySellGear: 'Köp/sälj utrustning', + stash: 'Stash', + more: 'Mer', + newHere: 'Ny här?', + welcomeDesc: 'Upptäck skate-spots, evenemang och gemenskapen.', + getOnZapstore: 'Hämta på Zapstore', + dismiss: 'Stäng', + addedBy: 'Tillagd av', + directions: 'Vägbeskrivning', + viewDetails: 'Visa detaljer', + viewDetailsArrow: 'Visa detaljer →', + spotDetails: 'Spot-detaljer', + skateShop: 'Skate-butik', + skateSpot: 'Skate-spot', + youAreHere: 'Du är här', + conditions: 'Förhållanden', + weatherScoreSuffix: '{{score}}/100 väder', + wind: 'Vind', + humidity: 'Luftfuktighet', + airQuality: 'Luftkvalitet', + threeDayForecast: '3-dygnsprognos', + gearForSale: 'Utrustning till salu ({{count}})', + viewItems: 'Visa objekt →', + viewAllItems: 'Visa alla {{count}} objekt →', + viewGear: 'Visa utrustning →', + localTour: 'Lokal tur', + meetAt: 'Möt upp vid: {{place}}', + hours: '{{count}} timmar', + level: 'nivå {{level}}', + viewTour: 'Visa tur →', + upcomingEvent: 'Kommande evenemang', + viewEvent: 'Visa evenemang →', + skateCrew: 'Skate-crew', + members: '{{count}} medlemmar', + since: 'Sedan {{year}}', + viewCrew: 'Visa crew →', + acceptsBitcoin: 'Tar emot Bitcoin', + boosted: 'Boostad', + website: 'Webbplats', + offlineSavedSpots: 'Offline · visar sparade spots', + cantReachRelays: 'Kan inte nå relayerna', + relayOnlineNoAnswer: 'Du är online, men gemenskapsrelayen svarar inte just nu.', + youreOffline: 'Du är offline.', + savedOnDevice: 'Spots du redan sett sparas på den här enheten och visas här.', + noSpotsMatchTitle: 'Inga spots matchar', + noSpotsMatchDesc: 'Prova en annan sökning eller rensa filtren.', + noSpotsMappedYet: 'Inga spots mappade än', + noSpotsMappedDesc: 'Bli först med att mappa din park — det tar en minut, den är din, och nästa skatare som rullar förbi tackar dig.', + addFirstSpot: 'Lägg till första spoten', + findSpotsNearMe: 'Hitta spots nära mig', + locating: 'Lokaliserar…', + refiningLocation: 'Finjusterar din plats…', + refiningLocationDesc: 'Centrerad på din senaste spot — hämtar en färsk GPS-position.', + locatingYou: 'Lokaliserar dig…', + locatingDesc: 'Hämtar en GPS-position. Det kan ta upp till en minut första gången.', + foundYou: 'Hittade dig', + foundYouDesc: 'Centrerade kartan på din plats.', + locationPermissionNeeded: 'Platsbehörighet krävs', + permissionNeededDesc: 'Tillåt plats för SkateSpots i enhetens Inställningar → Appar → SkateSpots → Behörigheter och tryck sedan på Nära mig igen.', + locationTimedOut: 'Platsen tog timeout', + timeoutNativeDesc: 'Kunde inte få en position i tid. Om du är inomhus kan GPS inte se satelliter — aktivera nätverksplats (Inställningar → Plats) eller gå ut och försök igen.', + timeoutWebDesc: 'Kunde inte hämta din plats i tid. Kontrollera signalen och försök igen.', + noLocationProvider: 'Ingen platsleverantör', + noProviderNativeDesc: 'Din telefon tillhandahåller ingen plats. På integritetsfokuserade ROM (t.ex. GrapheneOS), aktivera nätverksplats under Inställningar → Plats, eller se till att GPS är på och försök utomhus.', + noProviderWebDesc: 'Ingen platsleverantör är tillgänglig. Aktivera platstjänster och försök igen.', + locationUnavailable: 'Platsen är otillgänglig', + unavailableNativeDesc: 'Slå på Plats/GPS i telefonens inställningar, tillåt plats för SkateSpots (Inställningar → Appar → SkateSpots → Behörigheter) och försök igen.', + unavailableWebDesc: 'Din plats kunde inte fastställas. Se till att platstjänster är aktiverade.', + locationBlocked: 'Plats blockerad', + locationBlockedDesc: 'Din webbläsare har blockerat platsåtkomst för den här webbplatsen. Så här återaktiverar du den:', + locationPlatformAndroid: 'Android Chrome', + locationPlatformIos: 'iOS Safari', + locationPlatformDesktop: 'Desktop Chrome', + locationPlatformFirefox: 'Firefox', + locationStepsAndroid: 'Tryck på låsikonen i adressfältet → Webbplatsinställningar → Plats → Tillåt', + locationStepsIos: 'Inställningar-appen → Safari → Plats → Tillåt (eller tryck på "AA"-knappen i Safaris adressfält)', + locationStepsDesktop: 'Klicka på låsikonen → Webbplatsinställningar → Plats → Tillåt', + locationStepsFirefox: 'Klicka på låsikonen → Anslutning säker → Mer info → Behörigheter → Åtkomst till din plats → Tillåt', + gotIt: 'Uppfattat', + addSpot: 'Lägg till spot', + addShop: 'Lägg till butik', + addEvent: 'Lägg till evenemang', + addSpotHereTitle: 'Lägga till en spot här?', + addSpotHereDesc: 'Släpp en nål där du tryckte', + sellGear: 'Sälj utrustning', + offerTour: 'Erbjud tur', + closeAddMenu: 'Stäng tilläggsmenyn', + addMenuAria: 'Lägg till spot, butik, evenemang, utrustning eller tur', + localChat: 'Lokal chatt', + localChatDesc: 'Livechatt för var kartan är centrerad. Välj hur brett kanalen når.', + btcMapShowing: 'Visar {{count}} platser i närheten där du kan Spedn dina sats', + btcMapShow: 'Visa platser där du kan Spedn dina sats (via BTC Map)', + yourPrivateStash: 'Din privata Stash', + stashIntro: 'Håll koll på din utrustning, sätt priser och hitta byten med andra skatare.', + encryptionRequired: 'Kryptering krävs', + encryptionRequiredDesc: 'Använd en signerare med NIP-44-stöd (Alby, nos2x, Amber).', + myStash: 'Min Stash', + encrypted: 'Krypterad', + itemsCount: '{{count}} objekt', + items: 'Objekt', + wishlist: 'Önskelista', + types: 'Typer', + stashEmpty: 'Din Stash är tom', + addFirstItem: 'Lägg till första objektet', + wishlistCount: 'Önskelista ({{count}})', + myGearCount: 'Min utrustning ({{count}})', + openFullStash: 'Öppna hela Stash', + addItem: 'Lägg till objekt', + searchSpotsPlaceholder: 'Sök spots...', + selected: 'Vald', + noSpotsFound: 'Inga spots hittades. Prova en annan sökning.', + addingSpotsHint: 'Att lägga till spots hjälper användare att hitta dig när de bläddrar i specifika platser', + report: 'Rapportera', + spotSingular: '1 spot', + spotPlural: '{{count}} spots', + view: 'Visa', + myCollections: 'Mina samlingar', + collectionsSubtitle: 'Organisera dina favoritspots i personliga listor', + newCollection: 'Ny samling', + loginToCreate: 'Logga in för att skapa samlingar', + loginToCreateDesc: 'Spara dina favoritspots i personliga listor som "Barcelona-resan 2024" eller "Bästa railsen i LA"', + noCollections: 'Inga samlingar än', + noCollectionsDesc: 'Skapa din första samling för att börja organisera spots', + createFirstCollection: 'Skapa din första samling', + createNewCollection: 'Skapa ny samling', + createCollectionDesc: 'Ge din samling ett namn och en valfri beskrivning', + collectionName: 'Samlingens namn', + collectionNamePlaceholder: 'Barcelona-resan 2024', + descriptionOptional: 'Beskrivning (valfritt)', + descriptionPlaceholder: 'Mina favoritspots från Barcelona-resan...', + creating: 'Skapar...', + createCollection: 'Skapa samling', + editCollection: 'Redigera samling', + saving: 'Sparar...', + saveChanges: 'Spara ändringar', + deleteCollectionTitle: 'Ta bort samlingen?', + deleteCollectionDesc: 'Detta tar bort "{{title}}" permanent. Själva spotarna påverkas inte.', + deleting: 'Tar bort...', + collectionCreated: 'Samlingen skapad!', + collectionCreatedDesc: '"{{title}}" är redo för spots', + collectionCreateFailed: 'Kunde inte skapa samlingen', + collectionUpdated: 'Samlingen uppdaterad!', + changesSaved: 'Dina ändringar har sparats', + collectionUpdateFailed: 'Kunde inte uppdatera samlingen', + collectionDeleted: 'Samlingen borttagen', + collectionDeletedDesc: '"{{title}}" har tagits bort', + collectionDeleteFailed: 'Kunde inte ta bort samlingen', + somethingWentWrong: 'Något gick fel', + }, + mapPage: { + title: 'Butiker & spots', + spots: 'Spots', + shops: 'Butiker', + filters: 'Filter', + listView: 'Lista', + mapView: 'Karta', + nearMe: 'Nära mig', + searchPlaceholder: 'Sök spots...', + noSpotsInArea: 'Inga spots i det här området', + zoomIn: 'Zooma in', + zoomOut: 'Zooma ut', + myLocation: 'Min plats', + locationsFound: '{{count}} platser hittade', + spotsOnly: 'Endast spots', + shopsOnly: 'Endast butiker', + spotsAndShops: 'Spots & butiker', + noSpotsMatch: 'Inga spots matchar dina filter.', + noSpotsYet: 'Inga spots har lagts till än.', + addFirstSpot: 'Lägg till första spoten', + }, + spotUi: { + claim: { + areYouOwner: 'Är detta din spot?', + privateDesc: 'Den här spoten är markerad som privat. Om du äger eller sköter den kan du göra anspråk på den — en SkateSpots-moderator bekräftar ägarskapet, sedan tar du över listningen.', + claimSpot: 'Gör anspråk på denna spot', + nip05Required: 'Du behöver ett verifierat NIP-05-handtag för att göra anspråk på en privat spot (bevis på att du kontrollerar en Nostr-identitet). Lägg till ett i din profil och kom tillbaka.', + addNip05: 'Lägg till NIP-05 i Inställningar', + pendingTitle: 'Anspråk väntar på granskning', + pendingDesc: 'Ditt anspråk har skickats in. En SkateSpots-moderator granskar det — du kan slutföra anspråket när det har godkänts.', + approvedTitle: 'Anspråk godkänt', + approvedDesc: 'En moderator godkände ditt anspråk. Slutför för att bli ägare av denna spot.', + complete: 'Slutför anspråket', + submitted: 'Anspråk inskickat', + submittedDesc: 'En moderator granskar ditt anspråk. Du tar över spoten när det har godkänts.', + submitFailed: 'Kunde inte skicka in anspråket', + submit: 'Skicka anspråk', + submitting: 'Skickar…', + confirmTitle: 'Gör anspråk på "{{title}}"?', + confirmIntro: 'Du begär att bli ägare av denna privata spot.', + confirmBullet1: 'En SkateSpots-moderator granskar begäran (vi kan inte verifiera egendom, bara Nostr-nycklar)', + confirmBullet2: 'Om den godkänns slutför du anspråket för att bli ägare och kan redigera spoten', + confirmBullet3: 'Den ursprungliga spoten finns kvar på Nostr — nätverket är decentraliserat', + adminTitle: 'Väntande ägaranspråk', + adminApprove: 'Godkänn', + adminApproved: 'Godkänd', + adminApprovedDesc: 'De kan nu slutföra anspråket på spoten.', + adminApproveFailed: 'Kunde inte godkänna anspråket', + loginRequired: 'Logga in för att göra anspråk på denna privata spot, eller för att begära ägarskap.', + }, + abandonedDesc: 'Senast uppdaterad {{time}}. Om den ursprungliga ägaren är inaktiv kan du göra anspråk på denna spot för att underhålla och förbättra den.', + claimedNotice: 'Anspråkstagen listning', + claimedNoticeDesc: 'Denna spot publicerades om av en ny ägare efter ett anspråk. Den ursprungliga listningen kan fortfarande finnas separat.', + abandonedLoginDesc: 'Senast uppdaterad {{time}}. Logga in för att göra anspråk på och underhålla denna spot.', + accessDeniedDesc: 'Du kan bara redigera spots som du själv skapat.', + accessDeniedTitle: 'Åtkomst nekad', + addAtLeastOneTag: 'Lägg till minst en tagg.', + additionalDetails: 'Ytterligare detaljer (valfritt)', + additionalDetailsPlaceholder: 'Ange eventuell ytterligare kontext som kan hjälpa...', + addNewTags: 'Lägg till nya taggar:', + addNip05InSettings: 'Lägg till NIP-05 i Inställningar', + addPhoto: 'Lägg till foto', + addPhotoDesc: 'Bidra med ett foto för att hjälpa andra upptäcka denna spot.', + addPhotoOrDescription: 'Lägg till ett foto eller en beskrivning', + addPhotoOrDescriptionDesc: 'Ge skatare något att gå på — en bild, eller en rad om platsen.', + addPhotos: 'Lägg till foton', + addPhotoToSpot: 'Lägg till foto på spot', + adminDeleteDialogDesc: 'Som SkateSpots-admin tar du ner "{{title}}". Den döljs i hela appen för alla och en borttagningsbegäran skickas till relayerna.', + adminDeleteReason: 'SkateSpots-admin tog bort spoten "{{title}}"', + airQuality: 'Luftkvalitet', + altSkateSpot: 'Skate-spot: {{title}}', + areYouShopOwner: 'Är du butiksägaren?', + askBeforeSkating: 'Fråga innan du skatar', + backToSpot: 'Tillbaka till spoten', + beFirstToListGear: 'Bli först med att lista utrustning på denna spot!', + beFirstToSay: 'Bli först med att säga något.', + byAuthor: 'av {{name}}', + captionPlaceholder: 'Lägg till en bildtext (valfritt) – beskriv vad som är på fotot, när det togs, osv.', + chatPublicNote: 'Vem som helst kan läsa detta — meddelanden är offentliga och tillfälliga. För privata chattar, använd Direktmeddelanden.', + checkPinBelow: 'Kontrollera nålen nedan innan du lägger till en dubblett.', + claimBullet1: 'Du blir ägare och kan redigera spoten', + claimBullet2: 'Den ursprungliga spoten finns kvar (Nostr är decentraliserat)', + claimBullet3: 'Din version kan visas vid sidan av originalet', + claimFailed: 'Anspråket misslyckades', + claiming: 'Gör anspråk...', + claimIntro: 'Du är på väg att göra anspråk på ägarskapet av denna spot. Detta skapar din egen version av spoten som du kan redigera och underhålla.', + claimSpot: 'Gör anspråk på spot', + claimThisSpot: 'Gör anspråk på denna spot', + claimTitle: 'Gör anspråk på "{{title}}"?', + claimWhatHappens: 'Vad som händer när du gör anspråk:', + coachesAndFilmersAvailable: 'Coacher och filmare tillgängliga på denna spot', + coachesCount: 'Coacher ({{count}})', + coachHere: 'Coach här', + community: 'Gemenskap', + communityVerified: 'Gemenskapsverifierad', + communityVerifiedTitle: 'En annan skatare har bidragit här (foto eller statusrapport).', + conditions: 'Förhållanden', + contactForPermission: 'Kontakta för tillstånd', + contactInfo: 'Kontaktinfo', + contributePhoto: 'Bidra med foto', + contributing: 'Bidrar...', + couldNotSendMessage: 'Kunde inte skicka meddelandet.', + couldNotSubmit: 'Kunde inte skicka in', + couldNotUploadPhoto: 'Kunde inte ladda upp fotot. Du kan lägga till ett nedan.', + crewsThatSkateHere: 'Crews som skatar här', + current: 'Aktuella:', + currentTags: 'Aktuella taggar på denna spot:', + daysAgo: '{{count}} dag sedan', + daysAgoPlural: '{{count}} dagar sedan', + deleteDialogDesc: 'Detta tar bort "{{title}}" permanent från alla relayer. Åtgärden kan inte ångras.', + deletedSpotReason: 'Borttagen spot', + deleteFailed: 'Borttagning misslyckades', + deleteSpot: 'Ta bort spot', + deleteSpotTitle: 'Ta bort spoten?', + differentSpotPublishAnyway: 'Det är en annan spot — publicera ändå', + dragDropOrClick: 'Dra & släpp eller klicka', + dropPhotos: 'Släpp foton', + duplicateOne: 'Det finns en spot inom 60 m från din nål. Om det är samma plats, lägg till ditt foto eller en statusrapport där istället för att skapa en dubblett.', + duplicateOther: 'Det finns spots inom 60 m från din nål. Om det är samma plats, lägg till ditt foto eller en statusrapport där istället för att skapa en dubblett.', + editSpotSeoDesc: 'Redigera din skate-spot.', + failedToContribute: 'Kunde inte bidra', + failedToPublish: 'Kunde inte publicera', + failedToPublishDesc: 'Något gick fel. Kontrollera konsolen för detaljer.', + failedToSubmitReport: 'Kunde inte skicka in rapporten', + failedToSuggestTags: 'Kunde inte föreslå taggar', + failedToUpdate: 'Kunde inte uppdatera', + failedToUploadImage: 'Kunde inte ladda upp bilden', + failedToUploadPhoto: 'Kunde inte ladda upp fotot', + feelsLikeTemp: 'Känns som {{temp}}°C', + filmersCount: 'Filmare ({{count}})', + filmHere: 'Filma här', + gearSwap: 'Utrustningsbyte', + geolocationNotSupported: 'Geolokalisering stöds inte', + geolocationNotSupportedDesc: 'Din webbläsare stöder inte geolokalisering.', + getDirections: 'Få vägbeskrivning', + hangTight: 'Håll ut', + hangTightDesc: 'Ditt foto laddas fortfarande upp. Det bifogas om en sekund.', + helpImproveSpot: 'Hjälp till att förbättra denna spot genom att lägga till foton eller föreslå taggar', + hiddenByModerator: 'Dold av en moderator', + hiddenByModeratorDesc: 'Denna spot visas inte på kartan eller i sökningen. Du ser den fortfarande eftersom den är din. Att redigera den avdöljer den inte — den förblir dold tills en moderator drar tillbaka domen.', + humidity: 'Luftfuktighet', + imageUploaded: 'Bilden uppladdad', + imageUploadedDesc: 'Din bild har laddats upp.', + imHere: 'Jag är här', + invalidCoordinates: 'Ogiltiga koordinater', + invalidCoordinatesDesc: 'Ange giltig latitud (-90 till 90) och longitud (-180 till 180).', + invalidNpub: 'Ogiltig npub', + invalidNpubDesc: 'Ange en giltig npub-adress.', + lastReported: 'senast {{time}}', + listGear: 'Lista utrustning', + listYourGearHere: 'Lista din utrustning här', + loadingChat: 'Laddar chatt…', + locationError: 'Platsfel', + locationFound: 'Plats hittad', + locationFoundDesc: 'Din nuvarande plats har angetts.', + locationRequired: 'Plats krävs', + locationRequiredDesc: 'Ange koordinater eller använd din nuvarande plats.', + loginRequiredTitle: 'Inloggning krävs', + logInToChat: 'Logga in för att gå med i den lokala chatten.', + logInToContributePhotos: 'Logga in för att bidra med foton', + loginToEditSpot: 'Du måste logga in för att redigera denna spot.', + logInToReport: 'Du måste vara inloggad för att rapportera innehåll.', + logInToReportStatus: 'Logga in för att rapportera denna spots status.', + logInToSuggestTags: 'Logga in för att föreslå taggar', + manageNip05ToClaim: 'Hantera NIP-05 för att göra anspråk', + meetAtSpotForPickup: '💡 Möt upp vid denna spot för säker överlämning', + memberOne: '{{count}} medlem', + memberOther: '{{count}} medlemmar', + messageFailed: 'Meddelandet misslyckades', + messageMapper: 'Meddela mapparen', + messagePlaceholder: 'Skicka meddelande till denna spot… (prova /me eller /who)', + messagesHiddenOne: '{{count}} meddelande dolt av ditt förtroendefilter. Sänk filtret för att se mer.', + messagesHiddenOther: '{{count}} meddelanden dolda av ditt förtroendefilter. Sänk filtret för att se mer.', + messagesHiddenShortOne: '{{count}} meddelande dolt av ditt förtroendefilter', + messagesHiddenShortOther: '{{count}} meddelanden dolda av ditt förtroendefilter', + metresAway: '{{distance}} m bort', + moderatorVouchedDesc: 'En moderator granskade denna spot och gick i god för den. Snyggt.', + monthsAgo: '{{count}} månad sedan', + monthsAgoPlural: '{{count}} månader sedan', + newOwnerNpub: 'Ny ägares npub', + newOwnerNpubHint: 'Ange npub för den användare du vill överföra denna spot till.', + nip05RequiredToClaim: '⚠️ NIP-05-verifiering krävs för att göra anspråk på butiker', + noCommunitySignalTitle: 'Inget gemenskapsfoto eller statusrapport än — ingen har bekräftat denna plats.', + breakdownPhotos: '{{count}} foto(n)', + breakdownStatus: '{{count}} statusrapport(er)', + breakdownComments: '{{count}} kommentar(er)', + breakdownReactions: '{{count}} reaktion(er)', + breakdownCollections: '{{count}} sparad(e)', + breakdownZaps: '{{count}} zap(s)', + breakdownTags: '{{count}} taggförslag', + breakdownCrews: '{{count}} crew(s)', + breakdownLab: '{{count}} pro-länk(ar)', + verifyNudgeTitle: 'Bli först med att bekräfta denna spot', + verifyNudgeBody: 'Ett foto eller ett "Jag har skatat här" är hur en spot blir verifierad — hjälp nästa skatare.', + verifyNudgeStatus: 'Jag har skatat här', + communityChip: 'Gemenskap', + seenChip: 'Sedd', + noGearListedYet: 'Ingen utrustning listad än', + noMessagesYet: 'Inga meddelanden än i denna lokala kanal. Säg hej — "någon som skatar ikväll?"', + noPhoto: 'Inget foto', + noReportsYet: 'Inga rapporter än', + noTags: 'Inga taggar', + notASkateSpot: 'Inte en skate-spot', + offerServicesHere: '💡 Erbjud dina tjänster på denna spot', + photoCaptured: 'Foto taget!', + photoCapturedDesc: 'Ditt foto har laddats upp.', + photoContributed: 'Foto bidraget!', + photoContributedDesc: 'Ditt foto har lagts till på denna spot.', + photosAdded: 'Dina foton har lagts till.', + photosRecommended: 'rekommenderas starkt — spots utan foto förblir markerade Overifierade', + photosUploaded: '{{count}} foton uppladdade', + photoUploaded: 'Foto uppladdat', + photoUploadedDesc: 'Lägg till en bildtext och skicka in för att bidra!', + photoUploadFailed: 'Uppladdning av foto misslyckades', + pleaseTryAgain: 'Försök igen', + public: 'Offentlig', + publicChatTitle: 'Vem som helst kan läsa meddelanden i denna kanal — den är offentlig och okrypterad.', + recentReports: 'Senaste rapporterna', + recipientRequired: 'Mottagare krävs', + recipientRequiredDesc: 'Ange npub för den nya ägaren.', + removeAdmin: 'Ta bort (admin)', + removeSpot: 'Ta bort spot', + removeSpotAdminTitle: 'Ta bort denna spot? (admin)', + reportOne: 'rapport', + reportContent: 'Rapportera innehåll', + reportContentDesc: 'Hjälp till att hålla gemenskapen säker genom att rapportera olämpligt innehåll.', + reportedBySkaters: ' av {{count}} skatare — under granskning. Om detta är en riktig spot, lägg till ett foto eller en statusrapport för att bekräfta den.', + reportedNotASpot: 'Rapporterad som inte en skate-spot', + reportingType: 'Rapporterar {{type}}', + reports: 'rapporter', + reportShop: 'Rapportera butik', + reportSpot: 'Rapportera spot', + reportStatus: 'Rapportera status', + reportSubmitted: 'Rapport inskickad', + reportSubmittedDesc: 'Tack för att du hjälper till att hålla SkateSpots säkert.', + reportSubmittedLong: 'Tack för att du hjälper till att hålla SkateSpots säkert och korrekt. Din rapport granskas av betrodda gemenskapsmedlemmar.', + reportSubmittedTitle: 'Rapport inskickad', + report: { + notASkateSpot: { + label: 'Inte en skate-spot', + description: 'En testpost, eller en plats som inte alls är för skating', + }, + fakeSpot: { + label: 'Falsk/icke-existerande spot', + description: 'Denna spot finns inte eller platsen är fel', + }, + stolenPhotos: { + label: 'Stulna/falska foton', + description: 'Foton är stockbilder eller stulna någon annanstans ifrån', + }, + spamAd: { + label: 'Spam eller reklam', + description: 'Reklaminnehåll eller dubblerade listningar', + }, + dangerousLocation: { + label: 'Farlig plats', + description: 'Privat egendom, osäker eller olaglig att besöka', + }, + inappropriateContent: { + label: 'Olämpligt innehåll', + description: 'Innehåller stötande eller vuxet innehåll', + }, + impersonation: { + label: 'Identitetsstöld', + description: 'Någon som utger sig för att vara någon annan', + }, + other: { + label: 'Annat', + description: 'Något annat som inte listas ovan', + }, + }, + targetType: { + spot: 'Spot', + event: 'Evenemang', + tour: 'Tur', + shop: 'Butik', + user: 'Användare', + listing: 'Listning', + coach: 'Coach', + filmer: 'Filmare', + }, + sameOwner: 'Samma ägare', + sameOwnerDesc: 'Kan inte överföra till nuvarande ägare.', + saveChanges: 'Spara ändringar', + saving: 'Sparar...', + services: 'Tjänster', + shareSpotText: 'Kolla in denna skate-spot: {{title}}', + shelter: 'Skydd', + shelterHint: 'Är denna spot utsatt för väder? Hjälper skatare hitta torra spots när det regnar.', + shopClaimDesc: 'Om du äger eller sköter denna butik kan du göra anspråk på den för att verifiera ägarskap och hantera listningen.', + shopClaimNip05Hint: 'För att göra anspråk på denna butik, lägg till en NIP-05-identifierare som matchar butikens webbplatsdomän.', + skatersActiveDesc: 'Personer som postat i denna kanal de senaste 24 timmarna.', + skatersActiveOne: '{{count}} skatare aktiv här', + skatersActiveOther: '{{count}} skatare aktiva här', + skatersSellingGear: 'Skatare på denna spot säljer utrustning', + skateSpot: 'Skate-spot', + somethingWentWrong: 'Något gick fel', + spot: 'Spot', + spotAdded: 'Spot tillagd!', + spotAddedDesc: 'Din skate-spot har publicerats till nätverket.', + spotAddedNoPhoto: 'Publicerad — och markerad Overifierad tills någon lägger till ett foto. En bild på spoten gör stor skillnad.', + spotChat: 'Spot-chatt', + spotClaimed: 'Spot anspråkstagen!', + spotClaimedDesc: 'Du är nu ägare av denna spot. Du kan redigera den från din profil.', + spotDeleted: 'Spot borttagen', + spotDeletedDesc: 'Borttagningsbegäran skickad till relayerna. De flesta relayer tar bort detta innehåll.', + spotMayAlreadyBeOnMap: 'Den spoten kan redan finnas på kartan', + spotMayAlreadyExist: 'Denna spot kan redan finnas', + spotMayBeAbandoned: 'Spoten kan vara övergiven', + spotPhotoAlt: 'Spot', + spotRemoved: 'Spot borttagen', + spotRemovedDesc: 'Denna spot har tagits ner och döljs i hela SkateSpots.', + spotSeoDesc: 'Visa denna skate-spot på SkateSpots.', + spotStatus: 'Spot-status', + spotStatusDesc: 'Är "{{title}}" fortfarande skatbar? Låt gemenskapen veta dess nuvarande skick.', + spotTypeRequired: 'Spot-typ krävs', + spotTypeRequiredDesc: 'Välj en spot-typ så skatare vet vad de rullar upp till.', + spotUpdated: 'Spot uppdaterad!', + spotUpdatedDesc: 'Dina ändringar har publicerats till nätverket.', + staffVerifiedTitle: 'En SkateSpots-admin granskade och gick i god för denna spot.', + statusNotePlaceholder: 'Valfritt: lägg till detaljer (t.ex. "nya knobs på ledgen", "vakten kickar ut efter 18")', + statusReported: 'Status rapporterad', + statusReportedDesc: 'Tack för att du håller kartan fräsch. Din rapport är live.', + submitReport: 'Skicka rapport', + submitting: 'Skickar...', + suggestedByUser: 'Föreslagen av {{count}} användare', + suggestedByUsers: 'Föreslagen av {{count}} användare', + suggestedTagsContent: 'Föreslagna taggar för {{title}}: {{tags}}', + suggestNTags: 'Föreslå {{count}} taggar', + suggestOneTag: 'Föreslå 1 tagg', + suggestTags: 'Föreslå taggar', + suggestTagsDesc: 'Hjälp till att kategorisera denna spot genom att föreslå relevanta taggar.', + tags: 'Taggar', + tagsHint: 'Lägg till taggar för egenskaper, ytor, vibbar (max {{max}})', + tagsSuggested: 'Taggar föreslagna!', + tagsSuggestedDesc: 'Dina taggförslag har skickats in.', + takePhoto: 'Ta foto', + threeDayForecast: '3-dygnsprognos', + tipTheMapper: 'Tippa mapparen', + tipTheMapperDesc: 'Hittade du denna spot användbar? Skicka en zap för att tacka mapparen!', + titleRequired: 'Titel krävs', + titleRequiredDesc: 'Ange ett namn för denna spot.', + today: 'I dag', + tomorrow: 'I morgon', + transferDesc: 'Överför "{{title}}" till en annan användare. Åtgärden kan inte ångras.', + transferFailed: 'Överföringen misslyckades', + transferOwnership: 'Överför ägarskap', + transferRequestContent: 'Begäran om ägaröverföring för spoten "{{title}}"', + transferRequested: 'Överföring begärd', + transferRequestedDesc: 'Den nya ägaren måste göra anspråk på spoten för att slutföra överföringen.', + transferring: 'Överför...', + transferSpotOwnership: 'Överför spotens ägarskap', + transferWarningDesc: 'Efter överföringen kan du inte längre redigera eller ta bort denna spot.', + typeToSearchTags: 'Skriv för att söka eller lägga till taggar...', + underReview: ' — under granskning. Om detta är en riktig spot, lägg till ett foto eller en statusrapport för att bekräfta den.', + untitledSpot: 'Namnlös spot', + unverified: 'Overifierad', + updateDetailsFor: 'Uppdatera detaljerna för {{title}}', + updateSpotDesc: 'Uppdatera informationen om denna spot. Alla fält markerade med * är obligatoriska.', + uploadAPhoto: 'Ladda upp ett foto', + uploadAPhotoHint: 'Dra & släpp eller klicka · JPG, PNG, WebP', + uploadedAlt: 'Uppladdad', + uploadFailed: 'Uppladdning misslyckades', + uploadingPhoto: 'Laddar upp foto…', + uploadPhotoFirst: 'Ladda upp ett foto först.', + uvIndex: 'UV-index', + verifiedBySkateSpots: 'Verifierad av SkateSpots', + viewPhotoFullScreen: 'Visa foto i fullskärm', + viewPhotoOf: 'Visa foto {{n}} av {{total}}', + warning: 'Varning', + weatherConditions: 'Väderförhållanden', + weatherOnly: 'endast väder', + weatherOnlyUnconfirmed: 'Endast väder. Ingen har bekräftat att detta är en skate-spot än, så det finns ingen förhållandepoäng — lägg till ett foto eller en statusrapport för att bekräfta den.', + whyReporting: 'Varför rapporterar du detta?', + wind: 'Vind', + yearsAgo: '{{count}} år sedan', + yearsAgoPlural: '{{count}} år sedan', + }, + diyUi: { + title: 'DIY — Gör din egen', + tagline: 'Guider, öppna verktyg och ritningar för att bygga dina egna decks, ramper och betongspots — och hitta sedan människorna, platserna och marknaden som hör till.', + doItWithPeople: 'Gör det med folk', + backToDiy: 'Tillbaka till DIY', + calc: { + title: 'Kostnadskalkyl för deck', + intro: 'Vad ett deck kostar att tillverka — arbete, utrustning, material, processtid, förpackning och marginal — och ett rimligt försäljningspris. Sparas på den här enheten.', + }, + designer: { + title: 'Deck-designer', + intro: 'Forma en skateboard- eller longboardkontur och exportera en utskrivbar 1:1-mall, en SVG eller en DXF för CNC. Sparas på den här enheten.', + presets: 'Förval', + dimensions: 'Mått', + shape: 'Form', + kicks: 'Kicks', + hardware: 'Truck-hål', + width: 'Maxbredd', + wheelbase: 'Wheelbase', + nose: 'Noslängd', + tail: 'Taillängd', + length: 'Total längd', + waist: 'Midja', + endRound: 'Ändrundning', + concave: 'Concave', + thickness: 'Tjocklek', + tailKick: 'Tail-kick', + noseKick: 'Nose-kick', + holeNew: 'New school (2.125″)', + holeOld: 'Old school (2.5″)', + holeSpacing: 'New school är 2.125″ × 1.625″ (54 × 41 mm); old school är 2.5″ × 1.625″. 3/16″ monteringshål.', + topView: 'Ovanifrån', + sideView: 'Sidoprofil', + concaveSection: 'Concave-sektion', + export: 'Exportera', + pdfA4: '1:1 PDF · A4', + pdfLetter: '1:1 PDF · Letter', + printNote: 'Skriv ut PDF:en i 100 % (ingen "anpassa till sida") och tejpa sedan ihop rutorna med hjälp av hörnmarkeringarna. SVG:n är också i naturlig storlek.', + note: 'Detta är 2D-konturen du ritar av och skär ut. För fullständiga 3D-former och formdesign är ett riktigt CAD-verktyg fortfarande rätt val.', + }, + source: 'Källa', + comingSoon: 'Kommer snart', + footer: 'Steg-för-steg-guider är på väg. Under tiden: hitta de som bygger i The Lab, mappa din spot och köp eller sälj i Marketplace. Arbeta säkert — skydd, handskar och ögonskydd.', + categories: { + boards: 'Decks', + ramps: 'Ramper & trähinder', + concrete: 'Betong & DIY-spots', + repairs: 'Reparation & trimning', + tools: 'Verktyg & ritningar', + }, + cards: { + ossBuild: { + title: 'Bygg en skateboard', + blurb: 'Steg-för-steg-tillverkning av deck — faner, formar, pressar och ytbehandling.', + }, + sk8cad: { + title: 'SK8CAD', + blurb: 'CAD med öppen källkod för deckformer, concave och formdesign.', + }, + deckCost: { + title: 'Deck-kostnad & prissättning', + blurb: 'Räkna ut material, arbete och ett rimligt försäljningspris innan du bygger.', + }, + deckDesigner: { + title: 'Deck-designer', + blurb: 'Forma en kontur och skriv ut en 1:1-mall — eller exportera SVG/DXF för CNC.', + }, + ledgeBox: { + title: 'Bygg en ledge eller box', + blurb: 'Ett nybörjarvänligt trähinder du kan bygga på en helg.', + }, + quarterpipe: { + title: 'Bygg en quarterpipe', + blurb: 'Rampritningar, transition och coping för en mini på bakgården.', + }, + flatbar: { + title: 'Bygg en flatbar', + blurb: 'Billig, portabel och det bästa sättet att lära sig rails.', + }, + concreteBasics: { + title: 'Betonggrunder', + blurb: 'Blanda, forma och ytbehandla en ledge eller bank som håller.', + }, + coping: { + title: 'Coping & kanter', + blurb: 'Hur du sätter coping och avslutar en transition för en jämn grind.', + }, + buyParts: { + title: 'Köp delar & utrustning', + blurb: 'Hämta decks, hårdvara och verktyg från säljare i Marketplace.', + }, + mapSpot: { + title: 'Mappa din DIY-spot', + blurb: 'Byggt något? Lägg till det på kartan så andra kan hitta och skata det.', + }, + regrip: { + title: 'Griptapea om en bräda', + blurb: 'Riv bort gammal grip och lägg på ny grip snyggt.', + }, + tune: { + title: 'Trimma Bearings & Trucks', + blurb: 'Rengör Bearings, byt bushings och ställ in din truck-geometri.', + }, + printMolds: { + title: '3D-printade formar', + blurb: 'Utskrivbara form- och linjeringsfiler från gemenskapen.', + }, + sk8cadTools: { + title: 'Form- & linjeringsverktyg', + blurb: 'Designa formar med inbyggda linjeringsbaser.', + }, + }, + actions: { + findBuilder: { + title: 'Hitta en byggare', + blurb: 'Ramp- och DIY-byggare i The Lab som kan designa eller gjuta det åt dig.', + }, + findCrew: { + title: 'Hitta en DIY-crew', + blurb: 'Crews som fokuserar på att bygga — gå med i dem som förvandlar spots till verklighet.', + }, + mapSpot: { + title: 'Mappa en DIY-spot', + blurb: 'Lägg till spoten du byggde så den lever på kartan.', + }, + sellBuilds: { + title: 'Sälj dina byggen', + blurb: 'Lista decks, ramper eller delar du gör i Marketplace.', + }, + findCoach: { + title: 'Hitta en coach', + blurb: 'Coacher som lär ut DIY-skate-moduler och spotbygge.', + }, + }, + }, + labelsUi: { + spotCategory: { + street: { + label: 'Street', + description: 'Slumpmässiga hittade spots, urban terräng', + }, + transition: { + label: 'Transition', + description: 'Kurvade/rampade ytor', + }, + park: { + label: 'Park', + description: 'Byggda skateparks', + }, + plaza: { + label: 'Plaza', + description: 'Urbana plazas (som MACBA, Love Park)', + }, + }, + spotFeature: { + wallrides: 'Wallrides', + stairs: 'Trappor & räcken', + rails: 'Rails', + ledges: 'Ledges & kanter', + gaps: 'Gaps', + flatground: 'Platt mark', + 'manual-pads': 'Manual-pads', + 'half-pipes': 'Half pipes', + 'quarter-pipes': 'Quarter pipes', + 'mini-ramps': 'Miniramper', + bowls: 'Bowls', + vert: 'Vert-ramper', + 'mega-ramps': 'Megaramper', + hubbas: 'Hubbas', + 'euro-gaps': 'Euro gaps', + banks: 'Banks', + 'spine-ramps': 'Spineramper', + 'roll-ins': 'Roll-ins', + hips: 'Hips', + volcano: 'Volcano', + pyramids: 'Pyramider / Funboxes', + 'snake-runs': 'Snake runs', + 'pump-track': 'Pump track-rullar', + 'flat-bars': 'Flatbars', + }, + spotType: { + street: 'Street', + transition: 'Transition', + park: 'Park', + plaza: 'Plaza', + wallrides: 'Wallrides', + stairs: 'Trappor & räcken', + rails: 'Rails', + ledges: 'Ledges & kanter', + gaps: 'Gaps', + flatground: 'Platt mark', + 'manual-pads': 'Manual-pads', + 'half-pipes': 'Half pipes', + 'quarter-pipes': 'Quarter pipes', + 'mini-ramps': 'Miniramper', + bowls: 'Bowls', + vert: 'Vert-ramper', + 'mega-ramps': 'Megaramper', + hubbas: 'Hubbas', + 'euro-gaps': 'Euro gaps', + banks: 'Banks', + 'spine-ramps': 'Spineramper', + 'roll-ins': 'Roll-ins', + hips: 'Hips', + volcano: 'Volcano', + pyramids: 'Pyramider / Funboxes', + 'snake-runs': 'Snake runs', + 'pump-track': 'Pump track-rullar', + 'flat-bars': 'Flatbars', + diy: 'DIY', + rail: 'Rail', + ledge: 'Ledge', + gap: 'Gap', + bowl: 'Bowl', + stall: 'Stall', + slappy: 'Slappy', + }, + access: { + public: { + label: 'Offentlig – öppen för alla', + }, + private: { + label: 'Privat egendom – tillstånd krävs', + }, + locals: { + label: 'Fråga locals först', + }, + }, + shelter: { + outdoor: { + label: 'Utomhus', + short: 'Utomhus', + description: 'Helt utsatt — regn stoppar åkningen', + }, + partial: { + label: 'Delvis övertäckt', + short: 'Delvis övertäckt', + description: 'Vissa hinder hålls torra', + }, + covered: { + label: 'Övertäckt / under tak', + short: 'Övertäckt', + description: 'Utomhus men under tak', + }, + indoor: { + label: 'Inomhus', + short: 'Inomhus', + description: 'Helt inneslutet — skata oavsett väder', + }, + }, + eventType: { + contest: 'Tävling', + demo: 'Demo', + session: 'Session', + workshop: 'Workshop', + premiere: 'Premiär', + tradeshow: 'Mässa', + gameskate: 'Game of Skate', + concert: '🎸 Konsert', + jam: '🎵 Jam', + festival: '🎪 Festival', + popup: '🎯 Pop-up', + }, + gearCategory: { + deck: 'Deck', + trucks: 'Trucks', + wheels: 'Wheels', + bearings: 'Bearings', + shoes: 'Skateskor', + clothing: 'Kläder', + protective: 'Skyddsutrustning', + stickers: 'Klistermärken', + wax: 'Vax', + tools: 'Verktyg', + griptape: 'Griptape', + rubbrick: 'Rub brick', + }, + gearCondition: { + new: { + label: 'Ny', + description: 'Aldrig använd, fortfarande i förpackning', + }, + like_new: { + label: 'Som ny', + description: 'Knappt använd, utmärkt skick', + }, + good: { + label: 'Bra', + description: 'Normalt slitage, fungerar perfekt', + }, + well_used: { + label: 'Välanvänd', + description: 'Visar slitage men fungerar fortfarande', + }, + }, + priceType: { + fixed: { + label: 'Fast pris', + description: 'Sätt pris i USD eller sats', + }, + free: { + label: 'Gratis', + description: 'Skänkes bort', + }, + trade: { + label: 'Byte', + description: 'Vill byta', + }, + offer: { + label: 'Lägg bud', + description: 'Priset är förhandlingsbart', + }, + }, + listingType: { + selling: { + label: 'Säljer', + description: 'Listar utrustning till salu', + }, + wtb: { + label: 'Vill köpa', + description: 'Söker specifik utrustning', + }, + }, + tour: { + spotType: { + street: 'Street', + park: 'Park', + diy: 'DIY', + transition: 'Transition', + hidden: 'Dolda pärlor', + }, + category: { + local: { + label: 'Lokal tur', + description: 'Visa dolda spots i din stad', + }, + national: { + label: 'Nationell tur', + description: 'Roadtrips mellan flera städer i landet', + }, + international: { + label: 'Internationell tur', + description: 'Gränsöverskridande äventyr över flera länder', + }, + destruction: { + label: 'World Destruction', + description: 'KOTR-liknande global lagtävling', + }, + }, + }, + crew: { + vibe: { + street: 'Street', + transition: 'Transition / Vert', + park: 'Park', + diy: 'DIY', + cruising: 'Cruising / filmning', + oldschool: 'Old school', + allterrain: 'All terrain', + girls: 'Tjej / kvinna', + youth: 'Ungdom / groms', + adaptive: 'Adaptiv', + punk: 'Punk', + hiphop: 'Rap / hip-hop', + }, + focus: { + mixed: 'Blandat / allmänt', + builder: 'DIY & byggare', + photo: 'Foto & film', + coaching: 'Coaching', + art: 'Konst & design', + music: 'Band & musik', + wellness: 'Träning & fysio', + }, + focusDescription: { + mixed: 'En vanlig skate-crew — visas bara på Crews-sidan.', + builder: 'En DIY-/parkbyggar-crew — visas även i The Lab under Byggare.', + photo: 'En film-, foto- eller redigerings-crew — visas även i The Lab under Foto & film.', + coaching: 'En coach-/lektion-crew — visas även i The Lab under Coaching.', + art: 'Ett konst-, design-, graffiti- eller tatuering-kollektiv — visas även i The Lab under Konst & design.', + music: 'Ett band eller musik-kollektiv — visas även i The Lab under Musik.', + wellness: 'En tränings-, fitness- eller fysio-crew — visas även i The Lab under Träning.', + }, + lookingFor: { + filmer: 'Filmare', + photographer: 'Fotograf', + editor: 'Videoredigerare', + coach: 'Coach', + builder: 'Rampbyggare', + artist: 'Konstnär / designer', + musician: 'Musiker / band', + members: 'Nya medlemmar', + }, + role: { + filmer: 'Filmare', + photographer: 'Fotograf', + editor: 'Redigerare', + coach: 'Coach', + builder: 'Byggare', + artist: 'Konstnär', + graffiti: 'Graffiti', + tattoo: 'Tatuering', + trainer: 'Tränare', + musician: 'Musiker', + judge: 'Domare', + manager: 'Lagledare', + og: 'OG', + }, + }, + memberVisibility: { + public: { + label: 'Offentlig', + description: 'Alla kan se dig i denna crew — på den offentliga crew-sidan och i upptäckten av crew-kamrater.', + }, + crew: { + label: 'Endast crew', + description: 'Bara bekräftade crew-kamrater och grundaren ser dig här. För alla andra visas du som en anonym "dold medlem". Obs: detta är integritet på appnivå — din medlemstagg finns fortfarande offentligt på relayerna, den visas bara aldrig för utomstående.', + }, + }, + tagCategory: { + features: { + name: 'Egenskaper', + description: 'Hinder och terräng', + }, + surfaces: { + name: 'Ytor', + description: 'Material och texturer', + }, + sizes: { + name: 'Storlekar', + description: 'Mått och skala', + }, + stairs: { + name: 'Trappantal', + description: 'Antal trappsteg', + }, + vibes: { + name: 'Vibbar', + description: 'Atmosfär och skick', + }, + location: { + name: 'Plats', + description: 'Platskontext', + }, + tricks: { + name: 'Tricks', + description: 'Bra för specifika tricks', + }, + }, + spotTagCategory: { + street: { + label: 'Street', + description: 'Street-spots – trappor, rails, ledges', + }, + park: { + label: 'Park', + description: 'Skateparks – offentliga eller privata', + }, + diy: { + label: 'DIY', + description: 'DIY-/hemmagjorda spots', + }, + plaza: { + label: 'Plaza', + description: 'Offentliga plazas med skatevänlig arkitektur', + }, + }, + status: { + active: { + label: 'Aktiv', + description: 'Bara att köra — skata den.', + }, + bust: { + label: 'Bust', + description: 'Stor risk att bli utkastad — väktare eller polis.', + }, + skate_stopped: { + label: 'Skate-stoppad', + description: 'Knobbad / övertäckt, men delvis skatbar.', + }, + closed: { + label: 'Stängd', + description: 'Tillfälligt stängd — bygge eller evenemang.', + }, + gone: { + label: 'Borta', + description: 'Riven, överasfalterad eller permanent inhägnad.', + }, + }, + price: { + free: 'GRATIS', + trade: 'Byte', + makeOffer: 'Lägg bud', + offer: 'Bud', + }, + }, + feesUi: { + feeFeaturedEventLabel: 'Utvalt evenemang', + feeFeaturedEventDesc: 'Lyft fram ditt evenemang på SkateSpots', + feeFeaturedEventBenefit: 'Ditt evenemang visas högst upp på evenemangssidan', + feeLabProfileLabel: 'Lab Pro-profil', + feeLabProfileDesc: 'Lyft fram dina tjänster i The Lab', + feeLabProfileBenefit: 'Pro-badge + utvald placering när skatare bläddrar i The Lab', + feeFeaturedShopLabel: 'Utvald butik', + feeFeaturedShopDesc: 'Lyft fram din skate-butik på kartan och i katalogen', + feeFeaturedShopBenefit: 'Verifierad badge + utvald nål på kartan', + feeFeaturedTourLabel: 'Utvald tur', + feeFeaturedTourDesc: 'Lyft fram din tur på SkateSpots', + feeFeaturedTourBenefit: 'Pro-badge + topplacering när skatare bläddrar i turer', + duration7d: '7 dagar', + duration30d: '1 månad', + duration90d: '3 månader', + duration365d: '12 månader', + metaActive: '{{label}} — aktiv', + daysRemainingOne: '{{count}} dag kvar', + daysRemainingMany: '{{count}} dagar kvar', + zapRequestContent: 'SkateSpots {{label}} ({{tier}})', + errGenerate: 'Kunde inte skapa fakturan', + paymentReceived: '⚡ Betalning mottagen!', + paymentReceivedDesc: '{{amount}} sats — {{label}} är nu aktiv.', + autoPayFailed: 'Autobetalning misslyckades', + autoPayFailedDesc: 'Betala manuellt med QR-koden eller fakturan nedan.', + payStatusUnknown: 'Betalningsstatus okänd — betalningen kan ha gått igenom. Kontrollera din plånbok innan du betalar igen.', + invoiceCopied: 'Faktura kopierad!', + activeBang: '{{label}} aktiv!', + chooseDuration: 'Välj varaktighet', + bestValue: 'Bäst värde', + perDay: '{{price}}/dag', + validFor: 'Giltig i', + amountLine: '~${{usd}} USD · till {{name}} · {{tier}}', + payToContinue: 'Betala {{amount}} sats för att fortsätta', + generating: 'Skapar faktura…', + processing: 'Behandlar betalning…', + invoiceQrAlt: 'Lightning-faktura QR', + copyInvoice: 'Kopiera faktura', + openWallet: 'Öppna plånbok', + payConnected: 'Betala med ansluten plånbok', + scanAny: 'Skanna med valfri Lightning-plånbok', + tryAgain: 'Försök igen', + proReceiptTitle: '🦧⚡ Sasquatch Pro — du är med!', + proReceiptPass: 'Pass: {{pass}} ({{sats}} sats)', + proReceiptActiveUntil: 'Aktiv till: {{until}}', + proReceiptUnlocked: 'Vad du låste upp:', + proReceiptBullet1: '• Personlig assistent — jag läser din Stash, dina crews, spots & listningar', + proReceiptBullet2: '• Åtgärdsutkast — lista utrustning, publicera spot-status, planera resor (du bekräftar)', + proReceiptBullet3: '• Svar som använder din personliga kontext, inte bara offentlig data', + proReceiptBullet4: '• ⚡ Du stöttar SkateSpots direkt & håller det gratis + reklamfritt', + proReceiptThanks: 'Tack för att du håller SkateSpots gratis & reklamfritt. Nu ut och shredda. 🛹', + proReceiptSubject: 'Sasquatch Pro-kvitto', + receiptContent: 'Sasquatch Pro — {{tier}}-supporterpass 🦧⚡', + receiptAlt: 'Sasquatch Pro-supporterpass ({{tier}}), giltigt till {{until}}', + purchaseComment: 'Sasquatch Pro — {{tier}} 🦧', + errLogin: 'Logga in för att uppgradera till Pro.', + errStart: 'Kunde inte starta köpet.', + errRecord: 'Kunde inte registrera ditt pass.', + }, + cardUi: { + save: 'Spara kort till Nostr', + saved: 'Kortet sparat', + savedDesc: 'Ditt kort är nu signerat och verifierbart.', + saveFailed: 'Kunde inte spara kortet', + notPublished: 'Inte publicerat', + titleNeon: 'Rider', + titleRest: 'Card', + saveFrontPng: 'Spara framsida (PNG)', + expired: 'UTGÅNGEN', + logoUploaded: 'Logotyp uppladdad', + logoUploadFailed: 'Kunde inte ladda upp logotypen', + venue: 'Länkad plats (valfritt)', + venueNone: 'Ingen plats', + venueHint: 'Välj en av dina egna spots för att binda detta pass till en plats. En verifierare bekräftar att du äger den.', + venuePick: 'Välj din plats', + parkNoVenue: 'Ett Park-pass kan bara utfärdas av platsens ägare — mappa en spot du äger först.', + parkAddVenue: 'Lägg till en spot', + parkNeedsVenue: 'Välj en plats du äger', + parkIssued: 'Utfärdade pass', + parkRevoke: 'Återkalla', + parkRevoked: 'Återkallat', + parkRevokeFailed: 'Kunde inte återkalla', + v: { + valid: 'Giltigt', + validDesc: 'Signaturen är giltig och utfärdad av platsen.', + expired: 'Utgånget', + expiredDesc: 'Förbi sitt giltig-till-datum.', + revoked: 'Återkallat', + revokedDesc: 'Utfärdaren avbröt detta pass — acceptera det inte.', + invalid: 'Ogiltigt', + invalidDesc: 'Signaturen verifieras inte. Lita inte på det.', + notFound: 'Hittades inte', + notFoundDesc: 'Ingen matchande post på relayerna.', + unverifiedIssuer: 'Overifierad utfärdare', + unverifiedIssuerDesc: 'Detta pass anger en plats som inte ägs av utfärdarens nyckel.', + notBound: 'Inte bunden', + notBoundDesc: 'Inte bunden till en plats — bevisar inget om åtkomst.', + noRsvp: 'Ingen RSVP', + noRsvpDesc: 'Innehavaren har ingen registrerad RSVP för detta evenemang.', + admitted: 'Insläppt', + admittedDesc: 'Arrangörens evenemang + innehavaren har RSVP:at.', + noHolder: 'Ingen innehavare i länken', + noHolderDesc: 'Denna QR har ingen biljettinnehavare (`?h=`), så innehavaren kan inte kontrolleras.', + }, + passes: { + tab: 'Mina pass', + pass: 'Åtkomstpass', + none: 'Inga pass än. När en plats eller arrangör utfärdar ett till dig visas det här.', + }, + facets: { + title: 'Visa identitetsfasetter', + crews: 'Crews', + local: 'Lokal', + roles: 'Lab-roller', + }, + roles: { + coach: 'Coach', + filmer: 'Filmare', + editor: 'Redigerare', + photographer: 'Fotograf', + builder: 'Byggare', + artist: 'Konstnär', + graffiti: 'Graffiti', + tattoo: 'Tatuering', + trainer: 'Tränare', + musician: 'Musiker', + judge: 'Domare', + organizer: 'Arrangör', + barber: 'Barberare', + }, + crew: { + crewCard: 'CREW-KORT', + crewSub: 'Din crew, på ett kort', + pick: 'Välj en crew', + none: 'Du är inte med i en crew än — gå med i eller starta en först.', + hint: 'Kortet byggs från crewens egna signerade data. Redigera crewen på dess sida för att ändra det.', + members: 'MEDLEMMAR', + spots: 'SPOTS', + est: 'Grundad {{year}}', + openCall: 'Öppen rekrytering', + verifiedCrew: 'Verifierad crew', + viewCrew: 'Visa crewen', + }, + event: { + pass: 'EVENEMANGSPASS', + passSub: 'Ett pass för ett evenemang du ska gå på', + pick: 'Välj ett evenemang', + none: 'Inga evenemang än — skapa ett, eller RSVP:a till ett, först.', + hint: 'Passet byggs från evenemangets egna signerade data. Bara arrangören kan ändra det.', + admits: 'SLÄPPER IN', + going: '{{count}} kommer', + verifiedEvent: 'Verifierat evenemang', + viewEvent: 'Visa evenemanget', + issuePass: 'Utfärda ett incheckningspass', + issuePassBtn: 'Utfärda pass', + issuePassHint: 'Ett signerat pass för en specifik deltagare — de visar det i dörren.', + notOrganiser: 'Bara arrangören kan utfärda pass', + passIssued: 'Pass utfärdat', + issueFailed: 'Kunde inte utfärda passet', + issuedPasses: 'Utfärdade incheckningspass', + }, + studio: { + unsaved: 'Osparade ändringar', + saved: 'Sparat', + saveChanges: 'Spara ändringar', + allSaved: 'Sparat — uppdaterat', + showOnCard: 'Visa på kortet', + derived: 'Från din Skater-profil', + noSkaterProfile: 'Ingen Skater-profil än —', + editSkaterProfile: 'lägg till dina stilar & nivå', + noPhoto: 'Inget profilfoto än —', + addPhoto: 'lägg till ett i din profil', + finishTitle: 'Gör klart ditt kort', + finishDesc: 'Ett foto och en Skater-profil får det att se äkta ut.', + checkPhoto: 'Profilfoto', + checkName: 'Visningsnamn', + checkProfile: 'Stilar & nivå', + checkCrew: 'Gå med i en crew', + moreTypes: 'Fler korttyper låses upp när du mappar spots du äger, går med i crews eller RSVP:ar till evenemang.', + accent: 'Accentfärg', + accentHint: 'Åsidosätter temats accent', + accentClear: 'Använd temafärg', + logo: 'Egen logotyp / vapen', + logoAdd: 'Ladda upp', + logoChange: 'Byt', + logoClear: 'Ta bort', + }, + back: { + title: 'Utskrivbar baksida', + desc: 'Crews, roller, sponsorer & länkar på baksidan', + showBack: 'Visa baksida', + showFront: 'Visa framsida', + empty: 'Inget här än — lägg till crews, roller eller sponsorer.', + }, + verify: { + checking: 'Kontrollerar kortet…', + notFound: 'Kortet hittades inte', + notFoundDesc: 'Inget matchande evenemang hittades på relayerna. Det kan ha tagits bort, eller så är länken fel.', + invalid: 'Signaturen ogiltig', + invalidDesc: 'Detta evenemang finns men signaturen verifieras inte. Lita inte på det.', + authentic: 'Äkta', + authenticDesc: 'Utfärdarens signatur är giltig.', + kind: 'Typ', + kindPark: 'Park Access-kort', + kindRider: 'Rider-kort', + kindCrew: 'Crew-kort', + kindEvent: 'Evenemangspass', + organiser: 'Arrangör', + expired: 'Utgånget', + valid: 'Giltigt', + holder: 'Innehavare', + ticketHolder: 'Biljettinnehavare', + rsvp: 'RSVP', + rsvpGoing: 'Kommer', + rsvpInterested: 'Intresserad', + rsvpNone: 'Ingen RSVP hittades', + revoked: 'Passet återkallat', + revokedDesc: 'Utfärdaren avbröt detta pass — acceptera det inte.', + issuedBy: 'Utfärdat av', + accessLevel: 'Åtkomstnivå', + validThru: 'Giltigt till', + selfIssued: 'Status', + selfIssuedDesc: 'Självutfärdat identitetskort', + venue: 'Plats', + venueVerified: 'Verifierad — denna plats ägarnyckel matchar utfärdaren.', + venueMismatch: 'Detta pass anger en plats som inte ägs av utfärdarens nyckel.', + venueNone: 'Inte bunden till en plats.', + viewCard: 'Visa kortet', + disclaimer: 'En giltig signatur bevisar vem som signerade detta kort — det är inte bevis på skicklighet eller på åtkomsträttigheter utöver vad platsen utfärdat.', + details: 'Detaljer', + invalidLink: 'Ogiltig länk', + invalidLinkDesc: 'Det där ser inte ut som en giltig kortlänk.', + }, + public: { + invalid: 'Det där ser inte ut som en giltig kortlänk.', + createYourOwn: 'Skapa ditt eget kort', + editYourCard: 'Redigera ditt kort', + backToEditor: 'Tillbaka till redigeraren', + backHome: 'Tillbaka hem', + notCustomised: 'Den här skataren har inte anpassat sitt kort än — det här är standardutseendet.', + verifyNote: 'Skanna QR-koden på kortet för att verifiera det.', + }, + }, + routeUi: { + destination: 'Destination', + routeTo: 'Rutt till {{label}}', + routeToLabel: 'Rutt till', + search: 'Sök', + description: 'Ruttalternativ och vägbeskrivning i appen.', + routeMapAria: 'Ruttkarta', + findingLocation: 'Hittar din plats…', + plottingRoute: 'Ritar din rutt…', + refiningLocation: 'Finjusterar plats…', + offlineSavedRoute: 'Offline · sparad rutt {{age}}', + tapMapStart: 'Tryck på kartan för att ange startpunkt', + fitRouteAria: 'Anpassa hela rutten på kartan', + wholeRoute: 'Hela rutten', + next: 'Nästa', + nextStep: 'Nästa · steg {{n}}', + followTheLine: 'Följ linjen', + toTheTurn: 'till svängen', + toGo: 'kvar', + tryAgain: 'Försök igen', + mode: { + foot: 'Skate / gång', + bike: 'Cykel', + moto: 'Moto', + car: 'Bil', + transit: 'Kollektivt', + }, + from: 'Från', + myLocation: 'Min plats', + tapTheMap: 'Tryck på kartan…', + chooseOnMap: 'Välj på karta', + direct: 'direkt', + transferOne: '1 byte', + transfers: '{{count}} byten', + options: '{{count}} alternativ', + ride: 'åk', + arrive: 'framme', + speedAvg: '{{speed}} km/h snitt', + stepsCount: '{{count}} steg', + onABoard: 'på en bräda', + usesDrivingRoads: 'använder bilvägar', + drivingEstimate: 'biluppskattning', + updating: 'uppdaterar…', + pickMode: 'Välj ett färdmedel för att se din rutt.', + waitingLocation: 'Väntar på din plats…', + routeSteps: 'Ruttsteg', + walkingRoute: 'gångrutt — snabbare på en bräda', + planningView: 'Planeringsvy — tryck Start för att följa med live-svängar, röst och ankomst.', + leaveNow: 'Åk nu', + departAt: 'Avgå kl.', + arriveBy: 'Ankom före', + departureTime: 'Avgångstid', + arrivalTime: 'Ankomsttid', + only: 'Endast', + clear: 'rensa', + itinerary: 'Resplan', + group: { + bus: 'Buss', + tram: 'Spårvagn', + metro: 'Metro', + train: 'Tåg', + ferry: 'Färja', + }, + walk: 'Gå', + rideVerb: 'Åk', + walkLower: 'gå', + rideLower: 'åk', + toStop: 'till', + track: 'spår {{track}}', + stopOne: '1 hållplats', + stopsCount: '{{count}} hållplatser', + tickets: 'biljetter ↗', + done: 'Klar', + stop: 'Stoppa', + start: 'Start', + arrived: 'Du är framme. 🛹', + voiceOnNote: 'Skärmen hålls på · röst på — svängar och ankomst läses upp.', + voiceOffNote: 'Skärmen hålls på · röst av.', + followNote: 'Svängar, röst och ankomst medan du rullar. Håller skärmen på.', + voiceOffAria: 'Stäng av röstvägledning', + voiceOnAria: 'Sätt på röstvägledning', + voiceStart: 'Startar navigering', + voiceArrived: 'Du är framme', + voiceIn: 'Om {{metres}} meter, {{instruction}}', + voiceContinue: 'fortsätt', + voiceContinueCaps: 'Fortsätt', + errPermissionDenied: 'Platsbehörighet nekad.', + errWaitingGps: 'Väntar på GPS-position…', + errPermissionDeniedLong: 'Platsbehörighet nekad. Aktivera plats för att rutta från där du är.', + errNoLocation: 'Kunde inte hämta din plats. Försök igen.', + errNoLocationShort: 'Kunde inte hämta din plats.', + errTransitNoRouteFiltered: 'Ingen rutt för den tiden eller det färdmedlet — prova en annan tid, eller inkludera fler färdmedel.', + errTransitNoRoute: 'Ingen kollektivtrafikrutt hittades här — området kanske inte publicerar öppna tidtabeller.', + errTransitUnreachable: 'Kunde inte nå kollektivtrafiktjänsten. Kontrollera anslutningen och försök igen.', + errRoutingBusy: 'Ruttjänsten är upptagen just nu — försök igen om en stund.', + errNoRouteMode: 'Ingen rutt för detta färdmedel — destinationen kan ligga utanför vägnätet. Prova ett annat färdmedel.', + errRoutingUnreachable: 'Kunde inte nå ruttjänsten. Kontrollera anslutningen och försök igen.', + departures: 'Avgångar', + upcomingFrom: 'Kommande avgångar från {{stop}}', + loadingDepartures: 'Laddar avgångar…', + noDepartures: 'Inga kommande avgångar hittades vid denna hållplats.', + live: 'live', + cancelled: 'inställd', + refresh: 'Uppdatera', + tripLoginTitle: 'Logga in för att spara', + tripLoginDesc: 'Logga in för att spara denna resa som en samling.', + tripCollectionTitle: '{{destination}} skate-resa 🛹', + tripCollectionDesc: 'Resplan av The Sasquatch — {{count}} dagar i {{destination}}.', + tripCollectionDescOne: 'Resplan av The Sasquatch — {{count}} dag i {{destination}}.', + tripSavedTitle: 'Sparat i samlingar 🦧', + tripSavedDesc: 'Din {{destination}}-resa är bokmärkt.', + tripSaveFailed: 'Kunde inte spara', + tripSaveFailedDesc: 'Försök igen om en sekund.', + daysInDestinationOne: '{{count}} dag i {{destination}}', + daysInDestination: '{{count}} dagar i {{destination}}', + wetForecast: 'Blöt prognos — hör med en lokal crew om övertäckta/inomhusalternativ.', + dayLabel: 'Dag {{n}}', + freeSkate: 'Fri åkning — utforska & filma. 🎥', + tapToBook: 'tryck för att boka / zappa ⚡', + localCrews: 'Lokala crews', + saving: 'Sparar…', + savedToCollections: 'Sparat i samlingar', + saveSpotOne: 'Spara {{count}} spot i en samling', + saveSpots: 'Spara {{count}} spots i en samling', + flights: 'Flyg', + stays: 'Boende', + gettingAround: 'Ta sig runt', + noMiddleman: 'Jag planerar skatandet — flyg & boende öppnas på de riktiga sidorna (ingen KYC, ingen mellanhand).', + ageJustNow: 'nyss', + ageMinAgo: '{{count}} min sedan', + ageHourAgo: '{{count}} tim sedan', + ageDayAgo: '{{count}} d sedan', + skateRightHere: 'precis här', + skateMin: '~{{count}} min rull', + skateHours: '~{{hours}} tim rull', + maneuver: { + headOut: 'Ge dig av', + arrive: 'Anländ till spoten', + continueStraight: 'Fortsätt', + bearLeft: 'Håll vänster', + bearRight: 'Håll höger', + turnLeft: 'Sväng vänster', + turnRight: 'Sväng höger', + sharpLeft: 'Skarpt vänster', + sharpRight: 'Skarpt höger', + turn: 'Sväng', + keepLeft: 'Håll vänster', + keepRight: 'Håll höger', + takeFork: 'Ta klyftan', + merge: 'Församman', + roundabout: 'Ta rondellen', + takeRamp: 'Ta rampen', + takeExit: 'Ta avfarten', + }, + maneuverOnto: '{{instruction}} in på {{road}}', + }, + sasquatchUi: { + live: 'live', + offline: 'offline', + genericTitle: 'SkateSpots-assistenten 🦧', + genericGreeting: 'Tjena! Jag är The Sasquatch. Fråga mig vad som helst om spots, evenemang, coacher, utrustning eller hur appen fungerar. Jag har livedata från SkateSpots-relayen!', + q1: 'Planera 3 dagar i Lissabon åt mig', + q2: 'Hitta spots nära mig', + q3: 'Några kommande evenemang?', + q4: 'Vad är crews?', + q5: 'Hur fungerar zaps?', + q6: 'Vad är Nostr?', + q7: 'Vad är Min Stash?', + q8: 'Är detta gratis?', + bubbleTitle: 'Tryck och dra för att flytta · Tryck för att öppna', + openGuideAria: 'Öppna Sasquatch-guiden', + hideAria: 'Dölj Sasquatch-assistenten', + hide: 'Dölj assistenten', + showAria: 'Visa Sasquatch-assistenten', + activeUntil: 'Aktiv till {{date}}', + platformOwner: 'Plattformsägare', + upgradeTitle: 'Uppgradera till Sasquatch Pro', + goPro: 'Bli Pro', + goProBlurb: 'Personlig AI · från 2k sats', + aiBalanceTitle: 'Sasquatch AI-kreditsaldo (endast ägare) — fyll på hos {{provider}}', + aiChip: '⚡ AI {{balance}}', + minimizeToBubbleAria: 'Minimera till bubbla', + minimize: 'Minimera', + closePanelAria: 'Stäng panelen', + close: 'Stäng', + askLab: 'Fråga om Coaching & filmning', + askMap: 'Fråga om Spots, butiker & utrustning', + askAnything: 'Fråga mig vad som helst 🛹', + quickQuestions: 'Snabbfrågor:', + you: '🧑 Du', + thinking: 'tänker...', + inputPlaceholder: 'Fråga om spots, evenemang, coacher...', + liveDataFrom: 'Livedata från', + nostrRelays: 'Nostr-relayer', + clear: 'rensa', + gettingLocation: '📍 Hämtar din plats…', + findingClosest: '🔍 Hittar de närmaste spotarna…', + checkingLive: '🔍 Kontrollerar livedata…', + planningTrip: '🗺️ Planerar din {{destination}}-resa...', + searchingRelays: '🔍 Söker i relayerna efter {{tool}}...', + perk1: 'Personlig assistent — Sasquatch läser din egen Stash, dina crews, spots & listningar', + perk2: 'Åtgärdsutkast: lista utrustning, publicera en skate-status, planera en resa — du bekräftar innan något publiceras', + perk3: 'Svar använder din personliga kontext, inte bara offentlig data', + perk4: '⚡ Stötta SkateSpots direkt & håll det gratis och reklamfritt', + welcomeTitle: 'Tack för att du stöttar Sasquatch Pro! 🦧⚡', + welcomeDesc: 'Betalning skickad — ditt pass aktiveras när leverantören bekräftar det (oftast inom en minut). Tack för att du håller gatorna fria.', + invoiceCopied: 'Faktura kopierad', + dialogDesc: 'Ladda din AI-skateguide. 100 % finansierar en gratis gemenskapsapp utan reklam.', + proSupporter: 'Du är en Pro-supporter ⚡', + extendPrompt: 'Vill du förlänga? Välj en nivå nedan för att lägga till mer tid.', + scanToPayPre: 'Skanna för att betala', + scanToPayAmount: '{{sats}} sats', + scanToPayPost: 'för {{label}} Pro', + invoiceQrAlt: 'Lightning-faktura QR', + copyInvoice: 'Kopiera faktura', + ivePaid: 'Jag har betalat', + ivePaidHint: 'Tryck på "Jag har betalat" efter att din plånbok bekräftat — detta registrerar ditt pass till din Nostr-identitet.', + freeStaysPre: 'Gratis Sasquatch förblir gratis — offentlig sökning efter spots/evenemang/coacher, reseplanering + hela trick-ordlistan. Pro lägger till ', + freeStaysEmphasis: 'det personliga + åtgärder', + freeStaysPost: '-lagret.', + loginFirst: 'Logga in först för att uppgradera.', + paysTo: 'Betalar till', + overLightning: 'över Lightning. Bundet till din npub.', + popular: 'Populär', + sats: 'sats', + extend: 'Förläng', + done: 'Klart!', + cancelledNothing: 'Avbrutet — inget publicerades.', + draftReview: 'Utkast — granska & bekräfta', + statusTextPlaceholder: 'Statustext', + titlePlaceholder: 'Titel', + priceSatsPlaceholder: 'Pris (sats)', + conditionPlaceholder: 'Skick', + cancel: 'Avbryt', + aiTitle: 'Sasquatch AI', + owner: 'Ägare', + notConfigured: 'inte konfigurerad', + unavailable: 'otillgänglig', + satsValue: '{{balance}} sats', + theNode: 'noden', + lowBalance: 'Nästan slut — fyll på hos {{provider}} annars faller AI tillbaka på den nyckelfria leverantören.', + aiDesc: 'AI med betalning per begäran, finansierad i sats via Routstr. Fylls på när det är lågt.', + tier7d: '7 dagar', + tier1m: '1 månad', + tier3m: '3 månader', + tier1y: '1 år', + badgeTry: 'Prova', + badgeOff20: '20 % rabatt', + badgeBest: 'Bäst värde · 40 % rabatt', + draftPostStatusTitle: 'Publicera en skate-status', + draftAutoExpires: 'Upphör automatiskt om {{count}} min', + draftPostStatusCta: 'Publicera status', + draftCategory: 'Kategori: {{value}}', + draftSize: 'Storlek: {{value}}', + draftCondition: 'Skick: {{value}}', + draftMaxPrice: 'Maxpris: {{price}} {{currency}}', + draftPriceOpen: 'Pris: öppet', + draftLookingForTitle: 'Söker "{{title}}"', + draftWantedCta: 'Publicera annons', + draftPrice: 'Pris: {{price}} {{currency}}', + draftPriceOffer: 'Pris: lägg bud', + draftListTitle: 'Lista "{{title}}" till salu', + draftPublishCta: 'Publicera listning', + statusPosted: 'Status publicerad 🛹', + wantedPublished: 'Köpannons publicerad 🔎', + listingPublished: 'Listning publicerad 💸', + mustBeLoggedIn: 'Du måste vara inloggad.', + }, + sasquatchChat: { + faq: { + hi: 'Hej! Jag är The Sasquatch 🦧 Din AI-skateguide. Fråga mig om spots, evenemang, coacher, utrustning — eller vad som helst om appen. Vad behöver du?', + hello: 'Tjena! 🛹 Jag är The Sasquatch. Fråga mig om skate-spots, evenemang, coacher eller hur appen fungerar. Vad händer?', + hey: 'Tjena skatare! 🤙 Fråga mig om spots nära dig, kommande evenemang, coacher eller vad som helst om SkateSpots.', + whoAreYou: 'Jag är The Sasquatch 🦧 — AI-guiden för SkateSpots. Jag kan hitta skate-spots världen över, slå upp evenemang, coacher, filmare och utrustningslistningar. Allt drivs av livedata från Nostr. Fråga på!', + whatCanYouDo: 'Jag kan hitta skate-spots efter stad eller land, slå upp kommande evenemang, hitta coacher och filmare i The Lab, söka i utrustningslistningar och svara på frågor om hur appen fungerar. Prova: "spots i Bangkok" eller "hitta en coach"! 🛹', + whatIsNostr: 'Nostr är ett enkelt, öppet protokoll för decentraliserade sociala nätverk. Tänk Twitter, men inget enskilt företag kontrollerar det — du använder kryptografiska nycklar istället för användarnamn, väljer vilka relayer som lagrar dina data (eller kör din egen), och ett konto fungerar i alla Nostr-appar! 🔑', + isThisPrivate: 'Här är den ärliga genomgången 🛡️\n\n• Din **GPS-plats stannar på din enhet** — "Nära mig" centrerar bara kartan. Den skickas aldrig till oss eller publiceras.\n• **Spots du lägger till är offentliga** (det är poängen med en delad karta) — så släpp ingen nål på din egen ytterdörr.\n• **DM och crew-chattar är end-to-end-krypterade** — bara medlemmar kan läsa dem.\n• Som vilken webbplats som helst kan servrar du ansluter till (kartrutor, relayer) se din **IP**. Vill du dölja det också? Använd en VPN eller Tor.\n\nFullständiga detaljer på [Integritetssidan](/privacy). 🛹', + privacy: 'Kortversion 🛡️: din GPS lämnar aldrig din enhet, spots du publicerar är offentliga till sin natur, och DM/crew-chattar är end-to-end-krypterade. Servrar kan fortfarande se din IP (normalt för alla webbplatser) — en VPN eller Tor döljer det om du vill. Full genomgång på [Integritetssidan](/privacy).', + amITracked: 'SkateSpots spårar dig inte — inga annonser, ingen analysprofilering, ingen dataförsäljning, och det finns ingen SkateSpots-server som samlar in din plats. Din GPS stannar på din enhet. Det enda servrar ser (kartrutor, relayer) är din **IP** — samma som vilken webbplats som helst. Använd en VPN eller Tor för att dölja det. Mer på [Integritetssidan](/privacy). 🛡️', + doYouTrack: 'Nej — ingen spårning, inga annonser, ingen datahunger. Din GPS stannar på din enhet och det finns ingen central server som loggar dig. Servrar du ansluter till kan se din IP (som vilken sida som helst); en VPN/Tor döljer det. Se [Integritetssidan](/privacy). 🛹', + vpn: 'Helt valfritt, men stabilt om du vill ha extra integritet 🛡️. En VPN döljer din **IP** (grov plats) för servrarna SkateSpots pratar med — kartrutor, relayer, osv. Välj en leverantör utan loggar som du litar på (t.ex. Mullvad); undvik skumma gratistjänster.\n\nObs: en VPN döljer **inte** spots du publicerar (de är offentliga), och slå inte på webbläsar-GPS om du försöker vara anonym. Fullständiga detaljer på [Integritetssidan](/privacy).', + tor: 'Tor Browser ger dig starkast IP-integritet — den routar dig genom flera relayer så servrar inte kan se din riktiga IP 🧅. Avvägning: den är långsammare, och kartor + vissa Nostr-relayer kan lagga eller blockera Tor-utgångar. Bra för den extra försiktige.\n\nKom ihåg: Tor döljer din IP, inte spots du publicerar, och aktivera inte webbläsar-GPS om anonymitet är målet. Mer på [Integritetssidan](/privacy).', + hideMyIp: 'Två gratisalternativ 🛡️: en **pålitlig VPN** (enkelt, snabbt — döljer din IP bakom deras servrar) eller **Tor Browser** (maximal integritet, långsammare). Båda hindrar servrarna SkateSpots ansluter till från att se din riktiga IP. Notera att de inte döljer spots du publicerar. Se [Integritetssidan](/privacy).', + isMyLocation: 'Din plats är säker 📍 — "Nära mig" läser din GPS bara på din enhet, för att centrera kartan och sortera närliggande spots. Den publiceras aldrig till Nostr, skickas aldrig till oss, delas aldrig. Bara spots du medvetet lägger till är offentliga. Detaljer på [Integritetssidan](/privacy).', + whatAreZaps: 'Zaps är omedelbara Bitcoin Lightning-dricks över Nostr! Klicka på ⚡ på valfritt innehåll, skicka sats direkt till skaparens plånbok. Som att trycka "gilla" men med riktiga pengar. Omedelbart, peer-to-peer, inga mellanhänder. ⚡', + howToLogin: 'Två sätt:\n1. **Webbläsartillägg** (dator): Installera Alby eller nos2x och klicka sedan på "Logga in"\n2. **Ny användare**: Klicka på "Registrera dig" för att generera nycklar. Ladda ner din nsec (hemlig nyckel) och SPARA DEN — det här är ditt konto för alltid!', + whatIsCashu: 'Inbyggd Bitcoin-plånbok! Cashu ecash-tokens backade av Lightning — fungerar offline på skate-spots, integritetsfokuserat (mints kan inte spåra betalningar). Gå till Plånbok i Inställningar för att använda den. 🥜', + whatIsNwc: 'Nostr Wallet Connect — som USB-C för Lightning-plånböcker. Anslut Alby, Minibits, Zeus eller Coinos en gång och zappa med ett klick för alltid. Krypterat, du styr utgiftsgränserna. 🔌⚡', + isItFree: '100 % gratis. Inga annonser, inga prenumerationer, inget företagstrams. Byggt av skatare för skatare. Finansierat av gemenskapen via Angor — kolla Supporters-sidan. Du kan också tjäna Bitcoin genom gemenskaps-zaps för att bidra med kvalitetsspots. 🛹', + whatCanIDo: 'Upptäck spots världen över på kartan, hyr proffs i The Lab (coacher, filmare, fotografer, redigerare, rampbyggare), rulla med en crew, gå med i evenemang, ta turer, köp/sälj utrustning, håll koll på din privata Stash, zappa skapare, kolla spot-väder och bygg den decentraliserade skate-gemenskapen!', + whatIsTheLab: 'The Lab är där du hyr proffs från skate-scenen: Coacher, filmare, fotografer, videoredigerare och ramp-/park-/DIY-byggare. Var och en kan vara en enskild person eller ett kollektiv (crew/studio) — medlemmar bekräftar med sina egna nycklar så det är äkta. Allt på Nostr, inga falska konton. 🎓', + whatIsACrew: 'Crews är din kartankrade skate-familj — vilka du skatar MED, inte vilka du hyr. Varje crew har hemmaplan på kartan (turkosa nålar), hemmaspots, medlemmar, vibbar och ett manifest. Medlemmar bekräftar från sin egen nyckel. Skapa en under Crews → "Skapa crew". 🤘', + whatAreCrews: 'Crews är din kartankrade skate-familj — vilka du skatar MED, inte vilka du hyr. Varje crew har hemmaplan på kartan (turkosa nålar), hemmaspots, medlemmar och ett manifest. Medlemmar bekräftar från sin egen nyckel. Gå till Crews-fliken för att starta eller gå med i en! 🤘', + howToStartACrew: 'Gå till Crews-fliken → "Skapa crew". Namnge den, släpp din hemmaplan på kartan, lägg till vibbar (eller din egen #hashtag), länka dina hemmaspots och lägg till medlemmar via npub. Varje medlem bekräftar från sin egen nyckel så listan är äkta. 🤘', + whatIsMyStash: 'Min Stash är ditt PRIVATA, krypterade utrustningsskåp (NIP-44-kryptering). Håll koll på dina decks, trucks, wheels, skor — med förvaringsplats, skick, sällsynthet och pris. Bara DU kan läsa det om du inte markerar objekt som offentliga. Perfekt för försäkring eller att planera ett byte. 🎒', + whatIsStash: 'Min Stash är ditt PRIVATA, krypterade utrustningslager. Logga allt du äger — skick, var det förvaras, värde — allt krypterat så bara du kan se det. Markera objekt som offentliga om du vill sälja eller visa upp dem. 🎒', + whatIsABuilder: 'Byggare är ramp-/park-/DIY-crews i The Lab som du kan hyra för att bygga transitions, bowls, rails eller en hel park. De listar vad de bygger, material, projektstorlek och kan vara licensierade/försäkrade. Ofta kollektiv — och de kan länka spots de byggt till kartan. 🏗️', + whatIsANutzap: 'Nutzaps (NIP-61) är ecash-dricks över Nostr — privata Cashu-tokens zappade direkt till någon. Du kan ställa in att TA EMOT nutzaps i Plånboken. (Att skicka fullständiga nutzaps rullas ut — använd Lightning-zaps tills vidare.) 🥜⚡', + whatIsClink: 'CLINK är en Nostr-native betalningskod (en "noffer"). Butiker, crews och Lab-proffs kan lägga till en så du kan betala dem utan att behöva en Lightning-adress — du ser en "Betala via CLINK"-knapp med en QR. Skanna den med en CLINK-plånbok som ShockWallet. 🔗⚡ [specifikationer](https://clinkme.dev/specs.html) [appar](https://clinkme.dev/apps.html)', + whatIsNoffer: 'En noffer är en CLINK-betalningskod — ett återanvändbart, Nostr-native sätt att få betalt utan en webbserver eller Lightning-adress. Lägg till din på din butiks-/crew-/Lab-profil och folk kan betala dig direkt. 🔗', + whatAreTours: 'Turer är guidade skate-resor — lokala sessioner, nationella roadtrips eller world destruction-turer. Hitta dem på kartan eller i Turer-sektionen, möt upp och skata ny terräng med locals. 🗺️🛹', + whatIsAShop: 'Skate-butiker är lokala butiker listade på kartan. Upptäck och stötta riktiga fysiska (eller online) skate-butiker i ditt område — vissa tar till och med emot Bitcoin. 🏪', + howToSellGear: 'Gå till Utrustningsbyte / Marketplace och skapa en listning (NIP-99). Lägg till foton, pris i sats, skick och fäst den vid en spot om du vill så den visas på kartan. Köpare zappar eller meddelar dig direkt. 🛹💸', + supporters: 'SkateSpots finansieras av gemenskapen via Angor (decentraliserad Bitcoin-crowdfunding) — inga annonser, inga investerare, ingen dataförsäljning. Kolla Supporters-sidan för att stötta projektet och hålla gatorna fria. ❤️⚡', + trustScore: 'Förtroendepoäng (0–100) drivs av Relatr. Analyserar ditt Nostr-nätverk: följare, aktivitet, engagemang, zaps. Högre = mer betrodd. Hjälper till att filtrera bort bottar och spam. Kolla vilken profil som helst för att se deras poäng. 🛡️', + whatRelay: 'SkateSpots använder: 🛹 goskatespots.nostr1.com (primär, vitlistad för kvalitet) + relay.ditto.pub (global) + purplepag.es (profilaggregator). Dina data replikeras över alla för redundans.', + tripPlanner: 'Säg en stad och jag bygger en dag-för-dag skate-resa 🗺️ — spots, evenemang, coacher och lokala crews, väderanpassat (regnig dag = crew-tips för övertäckta spots). Prova "planera 3 dagar i Lissabon". Jag kan spara allt i en samling och lämna över dig till flyg/boende på de riktiga sidorna (ingen KYC, ingen mellanhand). 🛹', + planATrip: 'Säg bara "planera 3 dagar i Barcelona" (eller valfri stad) så kartlägger jag spots, sessioner, coacher och lokala crews för varje dag. Spara det som en samling och ut och shredda. 🗺️🛹', + sasquatchPro: '**Sasquatch Pro** 🦧⚡ är ett Lightning-supporterpass som låser upp min personliga sida:\n\n• 🧠 **Personlig assistent** — jag läser din egen Stash, dina crews, spots & listningar\n• ✨ **Åtgärdsutkast** — lista utrustning, publicera din skate-status, planera resor (du bekräftar alltid innan något publiceras)\n• 💬 **Personlig kontext** — mina svar använder dina egna data, inte bara offentliga resultat\n• ⚡ **Stötta projektet** — du håller SkateSpots gratis och reklamfritt\n\nGratis Sasquatch förblir gratis: offentlig sökning efter spots/evenemang/coacher/crews, ordlistan & reseplanering fungerar utan Pro. Pro lägger bara till det *personliga*. Tryck på **⚡ Bli Pro** högst upp. Nivåer: 7 dagar ~2k sats, 1 månad ~5k, 3 månader ~12k, 1 år ~36k.', + proPerks: 'Pro-förmåner 🦧⚡: personlig assistent (läser din Stash/crews/spots/listningar), åtgärdsutkast (lista utrustning, publicera status, planera resor — du bekräftar) och svar som använder din egen personliga kontext. Plus att du direkt stöttar SkateSpots och håller det gratis + reklamfritt. Gratis förblir gratis — Pro lägger till det personliga lagret. Tryck på **⚡ Bli Pro** högst upp.', + proVersion: 'Pro-versionen av mig 🦧⚡ lägger till en **personlig assistent**: jag kan läsa din egen Stash, dina crews, spots & listningar, utkasta åtgärder åt dig (lista utrustning, publicera en status, planera en resa — du bekräftar alltid först) och använda din personliga kontext i mina svar. Det stöttar också projektet direkt. Gratis Sasquatch (sökning efter spots/evenemang/coacher/crews, ordlista, reseplanerare) förblir gratis. Tryck på **⚡ Bli Pro** högst upp.', + perks: 'Pro-förmåner 🦧⚡: personlig assistent (din Stash/crews/spots/listningar), åtgärdsutkast du bekräftar och svar som använder din egen kontext — plus att du håller appen gratis & reklamfri. Tryck på **⚡ Bli Pro** högst upp.', + goPro: 'Tryck på **⚡ Bli Pro**-knappen högst upp för att öppna uppgraderingsarket. Pro låser upp min personliga assistent (Stash/crews/spots/listningar) och åtgärdsutkast, och stöttar projektet direkt. Betala med Lightning — 7 dagar ~2k sats upp till 1 år ~36k sats. Gratis funktioner förblir gratis. 🦧', + proPricing: 'Pro-nivåer (betala med Lightning ⚡): **7 dagar** ~2 000 sats (~$1,20), **1 månad** ~5 000 sats (~$3), **3 månader** ~12 000 sats (~$7, 20 % rabatt), **1 år** ~36 000 sats (~$21, bäst värde). Tryck på **⚡ Bli Pro** högst upp.', + howMuchIsPro: 'Pro-nivåer: 7 dagar ~2 000 sats, 1 månad ~5 000 sats, 3 månader ~12 000 sats (20 % rabatt), 1 år ~36 000 sats (bäst värde). Betala med Lightning ⚡. Tryck på **⚡ Bli Pro** högst upp.', + upgrade: 'För att uppgradera till Sasquatch Pro, tryck på **⚡ Bli Pro**-knappen högst upp. Betala med Lightning (7 dagar ~2k sats upp till 1 år ~36k). Pro låser upp min personliga assistent och åtgärdsutkast, och stöttar projektet direkt. 🦧⚡', + }, + statsTitle: '📊 **SkateSpots i siffror**', + weatherTemp: '• {{temp}}°C (känns som {{feels}}°C)', + weatherSkateability: '• Skatbarhet: **{{label}}** ({{score}}/100)', + weatherError: 'Kunde inte läsa vädret just nu. Försök igen om en sekund. 🌧️', + labelSpots: 'spots', + labelEvents: 'evenemang', + labelLabPros: 'Lab-proffs', + labelCrews: 'crews', + labelShops: 'skate-butiker', + labelTours: 'turer', + labelGear: 'utrustningslistningar', + unnamed: 'Namnlös', + emptyWhere: ' i **{{place}}**', + emptyResult: 'Hittade inga {{label}}{{where}} just nu 🦧\n\nDet kan betyda att ingen är listad än — eller att relayerna svarade långsamt. Försök igen om en stund, dubbelkolla stavningen, eller [lägg till den första på kartan](https://skate-spots.org/map). 🛹', + foundTitle: '{{emoji}} Hittade **{{count}}** {{label}}:\n{{lines}}{{more}}', + moreResults: '\n\n…och **{{count}}** till — [se alla på kartan](https://skate-spots.org/map) 🗺️', + locationDenied: 'Jag kan inte se din plats — inget lämnar någonsin din enhet; jag läser den lokalt bara när du frågar, och webbläsaren nekade precis. Tryck på 🎯 **Nära mig** på kartan, eller säg en stad: "spots i Bangkok". 🛹', + noNearbySpots: 'Inga mappade spots nära dig än 🦧 — [bli först med att lägga till en](https://skate-spots.org/create-spot). 🛹', + closestTitle: 'Närmast dig just nu:', + closestFooter: '_Beräknat på din enhet — din plats lämnade den aldrig._', + proNudge: 'Det där är en **Sasquatch Pro**-grej 🦧⚡ — med Pro kan jag läsa din Stash, dina crews, spots och listningar, utkasta utrustningslistningar, köpannonser och skate-statusar och planera dina resor. Det är ett Lightning-supporterpass som håller SkateSpots gratis & reklamfritt. Tryck på **⚡ Bli Pro**-knappen högst upp för att låsa upp det. 🛹', + draftingProPerk: 'Att utkasta åtgärder (publicera en status, lista utrustning) är en **Sasquatch Pro**-förmån 🦧⚡ — tryck på **⚡ Bli Pro** högst upp för att låsa upp det.', + draftIntro: 'Här är ett utkast — granska det och tryck för att publicera. Inget går live förrän du bekräftar. 🛹', + draftFailed: 'Jag kunde inte riktigt bygga det utkastet — försök berätta detaljerna igen (t.ex. "lista mina Spitfire Wheels för 8000 sats").', + tripAskCity: 'Vart? Säg en stad (t.ex. "planera 3 dagar i Lissabon") så bygger jag en resa. 🗺️', + tripEmptyMap: 'Inget på kartan för **{{destination}}** än 🦧 — bli först med att lägga till spots på [skate-spots.org](https://skate-spots.org). När locals lägger till spots, crews & evenemang bygger jag en full resa åt dig.', + tripLocked: 'Låste en **{{destination}}**-mission åt dig 🛹 — spots, sessioner och locals nedan. Justera eller spara den.', + tripFailed: 'Kunde inte nå livedata för att planera det just nu. Försök igen om en stund! 🛹', + tripEmptyMapLocal: 'Inget på kartan för **{{destination}}** än 🦧 — bli först på [skate-spots.org](https://skate-spots.org).', + tripMissionLocal: 'Här är en **{{destination}}**-mission 🛹 — spots, sessioner & locals nedan.', + relayFailed: 'Relayerna svarade inte i tid just nu 🛰️ — det är oftast en långsam anslutning, inte en saknad spot. Prova igen om en stund. 🛹', + couldNotProcess: 'Hmm, kunde inte bearbeta det. Prova att formulera om!', + freeTierFallback: 'Den där kräver AI-resonemang — en **Sasquatch Pro**-funktion ⚡🦧\n\nJag kan fortfarande hitta **spots, evenemang, coacher, crews, butiker, turer och utrustning** direkt från relayerna — fråga mig t.ex. "spots i Barcelona" — och [ordlistan](/glossary) täcker 150+ tricks & termer. Tryck på **⚡ Bli Pro** högst upp för att låsa upp AI-svar.', + aiDownFallback: 'Min AI-hjärna tar lite luft just nu 🦧 — men jag har dig fortfarande:\n\n• 🗺️ [Karta](/) — spots, butiker, evenemang nära dig\n• 🧪 [The Lab](/lab) — coacher, filmare, redigerare\n• 📖 [Ordlista](/glossary) — 150+ tricks & termer\n• 👥 [Crews](/crews) — hitta ditt folk\n\nEller säg bara en **stad** ("spots i Barcelona") eller en **trick** ("vad är en nollie") så svarar jag direkt. 🛹', + wentWrong: 'Något gick snett på min sida. Försök igen om en sekund! 🦧', + publishError: 'Kunde inte publicera det: {{error}}. Försök igen om en stund.', + unknownError: 'okänt fel', + }, +}; export default svBatch2; diff --git a/src/i18n/sv/batch3.ts b/src/i18n/sv/batch3.ts index 5d32de2..8cd2007 100644 --- a/src/i18n/sv/batch3.ts +++ b/src/i18n/sv/batch3.ts @@ -1,4 +1,1294 @@ -/** sv — batch 3. Filled by the translation pass; empty until then. */ -const svBatch3 = {}; +/** sv — batch 3. */ +const svBatch3 = { + settingsUi: { + proSupport: { + title: "Pro & Support", + subtitle: "Valfria tillägg som håller SkateSpots gratis", + prepaidTitle: "Förbetalt, inte en prenumeration", + prepaidBody: "Varje köp är en engångsbetalning i Bitcoin/Lightning — inget konto, ingen återkommande avgift, ingen förvaring. Betalar du igen förlängs din tid.", + sasquatchTitle: "Sasquatch Pro", + sasquatchBenefit: "Låser upp den personliga AI-assistenten — den kan läsa din egen Stash, dina Crews och annonser — och hjälper till att finansiera projektet.", + active: "Aktiv", + activeUntil: "Aktiv till {{date}}", + daysLeft: "{{count}} dagar kvar", + notActive: "Inte aktiv", + goPro: "Bli Pro", + extend: "Förläng Pro", + day: "dag", + featuredTitle: "Utvald placering", + featuredBenefit: "Lyft en annons till toppen med ett Pro-märke — för The Lab-profiler, evenemang, Shops och turer.", + featuredHow: "Varaktighetsnivåer gäller för alla typer; längre åtaganden kostar mindre per dag. Du lyfter fram en annons när du skapar eller redigerar den.", + featuredUntil: "Till {{date}}", + yourFeatured: "Dina utvalda annonser", + noneFeatured: "Inga aktiva utvalda placeringar.", + freeTitle: "Gratisvägar", + freeBody: "AI-FAQ och lokal sökning är alltid gratis, och du kan publicera en marknadsplatsannons med ett gratis proof-of-work istället för sats-avgiften." + }, + notFound: { + seoTitle: "404 - Sidan hittades inte", + seoDescription: "Sidan du letar efter kunde inte hittas. Gå tillbaka till startsidan för att fortsätta bläddra.", + message: "Hoppsan! Sidan hittades inte", + returnHome: "Tillbaka till startsidan" + }, + loginArea: { + signUp: "Registrera dig", + logIn: "Logga in" + }, + accountSwitcher: { + switchAccount: "Byt konto", + walletSettings: "Plånboksinställningar", + addAccount: "Lägg till ett till konto", + logout: "Logga ut" + }, + amberHint: { + defaultAction: "skicka", + multiBefore: "Din signerare ber dig godkänna", + multiTimes: "{{approvals}} gånger", + multiAfter: "för att {{action}} — det är normalt för krypterade meddelanden (ett godkännande per mottagare). Godkänn varje.", + single: "Din signerare ber dig godkänna för att {{action}}." + }, + amberCallback: { + processing: "Bearbetar Amber-inloggning...", + gotResult: "Fick resultat: {{result}}", + noResultDebug: "Inget resultat från Amber", + noResultToast: "Inget resultat togs emot från Amber. Åtgärden kan ha avbrutits.", + validPubkey: "Giltig pubkey! Loggar in...", + loginSuccessful: "Inloggning lyckades!", + loginErrorDebug: "Inloggningsfel: {{error}}", + invalidResultDebug: "Ogiltigt resultatformat: {{result}}", + loggedInTitle: "Inloggad", + amberLoginDesc: "Inloggning med Amber lyckades!", + loginFailedTitle: "Inloggning misslyckades", + loginFailedDesc: "Kunde inte slutföra Amber-inloggningen. Försök igen.", + invalidPubkeyDesc: "Ogiltig pubkey mottogs från Amber.", + sessionLostToast: "Sessionsdata försvann. Försök igen.", + eventSignedTitle: "Händelse signerad", + eventSignedDesc: "Din händelse har signerats av Amber.", + signingFailedTitle: "Signering misslyckades", + signingFailedDesc: "Kunde inte bearbeta den signerade händelsen från Amber.", + operationCompleteTitle: "Åtgärden slutförd", + operationCompleteDesc: "{{op}} slutfördes." + }, + loginDialog: { + loginWithAmber: "Logga in med Amber (Android)", + welcomeTitle: "Välkommen till SkateSpots", + welcomeSubtitle: "Registrera dig eller logga in för att fortsätta", + newHere: "Ny här?", + createFree: "Skapa ett gratis konto. Ingen e-post krävs.", + createAccount: "Skapa konto", + orLogIn: "Eller logga in", + loggedInTitle: "🛹 Inloggad!", + loggedIn: "Inloggad!", + connectedAmber: "Ansluten via Amber!", + amberLoginFailed: "Amber-inloggning misslyckades", + amberCancelled: "Inloggning avbruten. Tryck på \"Öppna Amber\" för att försöka igen.", + amberNotFound: "Amber hittades inte. Se till att Amber är installerat från ZapStore.", + loginFailed: "Inloggning misslyckades", + pubkeyError: "Klistra in din hex-pubkey (64 tecken) eller npub från Amber", + pairedSigner: "Ihopkopplad med din signerare.", + connectFailed: "Kunde inte ansluta till din signerare.", + openedEncrypted: "Öppnade din krypterade nyckel.", + openKeyFailed: "Kunde inte öppna den nyckeln.", + bunkerPrefix: "Måste börja med bunker://", + connectedBunker: "Ansluten via bunker!", + bunkerFailed: "Misslyckades: {{error}}", + checkBunkerUri: "Kontrollera din bunker-URI", + nsecPrefix: "Måste börja med nsec1", + invalidNsec: "Ogiltig nsec: {{error}}", + checkKey: "Kontrollera din nyckel", + noExtensionTitle: "Inget tillägg hittades", + noExtensionDesc: "Installera Alby eller ett annat NIP-07-tillägg.", + amberIdleDesc: "Din nyckel stannar inuti Amber. Ett tryck — godkänn i Amber och du är tillbaka här, inloggad. Inget att kopiera.", + continueWithAmber: "Fortsätt med Amber", + noAmberGetIt: "Har du inte Amber? Hämta det →", + waitingAmberTitle: "Väntar på Amber…", + waitingAmberDesc: "Godkänn begäran i Amber. Du loggas in automatiskt i samma stund som du kommer tillbaka.", + openAmberAgain: "Öppna Amber igen", + havingTrouble: "Problem? Ange din nyckel manuellt", + enterPublicKey: "Ange din publika nyckel", + enterPublicKeyDescBefore: "Bara om det automatiska flödet inte fungerade. I Amber: tryck på din profil →", + copyPublicKey: "Kopiera publik nyckel", + enterPublicKeyDescAfter: "och klistra in den här.", + connect: "Anslut", + back: "← Tillbaka", + signInWithPhone: "Logga in med din telefon", + signInWithPhoneDesc: "Skanna med en signerarapp (Amber, nsec.app). Din nyckel lämnar aldrig din telefon.", + showPairingCode: "Visa parkopplingskod", + waitingSigner: "Väntar på din signerare…", + copyLink: "Kopiera länk", + orPasteBunker: "eller klistra in en bunker-URL", + bunkerTitle: "Bunker (NIP-46)", + bunkerPasteBefore: "Klistra in din", + bunkerPasteAfter: "URI.", + amberInstructions: "Inställningar → NIP-46 Bunker → Skapa → Kopiera", + nsecAppInstructions: "Anslut app → Kopiera bunker-URI", + secretKeyTitle: "Hemlig nyckel", + secretKeyRawDesc: "Klistra in din Nostr-hemliga nyckel direkt.", + secretKeyEncDesc: "Öppna en lösenordsskyddad nyckelbackup.", + rawNsec: "Rå nsec", + encryptedNip49: "Krypterad (NIP-49)", + nsecWarning: "⚠️ Använd bara detta på en betrodd enhet. Dela aldrig din nsec.", + login: "Logga in", + encSaferDesc: "Säkrare: nyckeln förblir krypterad tills du anger ditt lösenord, så backupen är säker att förvara i molnlagring eller en lösenordshanterare.", + password: "Lösenord", + openEncryptedKey: "Öppna krypterad nyckel", + browserExtensionTitle: "Webbläsartillägg (NIP-07)", + browserExtensionDesc: "Bäst för dator. Fungerar med Alby, nos2x, Flamingo.", + loginWithExtension: "Logga in med tillägg" + }, + signupDialog: { + download: "Ladda ner", + stepChoose: "Välj", + stepProfile: "Profil", + stepSaveKey: "Spara nyckel", + somethingWrong: "Något gick fel", + createFailed: "Kunde inte skapa ditt konto. Försök igen.", + keySavedTitle: "Hemlig nyckel sparad!", + keySavedDesc: "Din nyckel har sparats på ett säkert sätt.", + downloadFailedTitle: "Nedladdning misslyckades", + downloadFailedDesc: "Kunde inte ladda ner nyckelfilen. Kopiera den manuellt.", + encSavedTitle: "Krypterad backup sparad 🔐", + encSavedDesc: "Behåll både filen OCH lösenordet — du behöver båda för att logga in igen.", + encFailed: "Kunde inte kryptera den nyckeln.", + invalidFileTitle: "Ogiltig filtyp", + invalidFileDesc: "Välj en bildfil för din avatar.", + fileTooLargeTitle: "Filen är för stor", + fileTooLargeDesc: "Avatar-bilden måste vara mindre än 5 MB.", + avatarUploadedTitle: "Avatar uppladdad!", + avatarUploadedDesc: "Din avatar har laddats upp.", + uploadFailedTitle: "Uppladdning misslyckades", + uploadFailedDesc: "Kunde inte ladda upp avataren. Försök igen.", + nameRequiredTitle: "Visningsnamn krävs", + nameRequiredDesc: "Välj ett visningsnamn så att andra skejtare vet vem du är. Du kan ändra det när som helst.", + reserveFailedTitle: "Kunde inte reservera det namnet", + reserveFailedDesc: "{{error}} Du kan göra anspråk på ett senare i Inställningar.", + profileCreatedTitle: "Profil skapad!", + profileCreatedDesc: "Din profil har ställts in.", + profileFailedTitle: "Profilinställningen misslyckades", + profileFailedDesc: "Ditt konto skapades men profilinställningen misslyckades. Du kan uppdatera den senare.", + welcomeToastTitle: "Välkommen!", + welcomeToastDesc: "Ditt konto är klart.", + titleWelcome: "Gå med i SkateSpots", + titleProfile: "Ställ in din profil", + titleDone: "Välkommen!", + createFreeAccount: "Skapa ditt gratiskonto", + createFreeAccountDesc: "Ingen e-post, ingen telefon, inget lösenord. Ditt konto är en Nostr-nyckel — välj var den ska bo.", + recommended: "Rekommenderas", + signUpWithAmber: "Registrera dig med Amber", + signUpWithAmberDesc: "Din nyckel skapas och lagras inuti Amber-appen — SkateSpots rör den aldrig. Säkrast. Ett tryck för att godkänna.", + continueWithAmber: "Fortsätt med Amber", + orQuickWay: "eller det snabba sättet", + quickAccount: "Snabbkonto på den här enheten", + quickAccountDesc: "Vi genererar en nyckel som bor på den här enheten. Snabbaste starten — vi hjälper dig spara en backup direkt efteråt.", + createQuickAccount: "Skapa snabbkonto", + quickReassurance: "Tar 5 sekunder · bor på den här enheten · vi hjälper dig säkerhetskopiera härnäst", + preferAnotherSigner: "Föredrar du en annan signerare?", + iosDesktopNudge: "På iOS eller dator? En signerarapp eller ett webbläsartillägg är det säkraste alternativet —", + seeAllOptions: "Se alla alternativ", + youreInPickName: "Du är med! 🛹 Välj ett visningsnamn så att skejtare vet vem du är", + changeAnytime: "Du kan ändra det när som helst senare. Bio och avatar är valfria.", + publishingProfile: "Publicerar din profil...", + displayName: "Visningsnamn", + displayNamePlaceholder: "t.ex. Tony, gnarlyGrind eller ditt Crew-namn", + displayNameHint: "Krävs — hur du visas i hela SkateSpots. Ändra det när som helst.", + skateName: "Ditt SkateSpots-namn", + skateNameHint: "Gratis och valfritt — ett verifierat handle som visar en ✓ på din profil.", + bio: "Bio", + bioPlaceholder: "Berätta om dig själv...", + avatar: "Avatar", + uploadAvatar: "Ladda upp avatar-bild", + saving: "Sparar...", + saveAndStart: "Spara & börja skejta", + addNameToContinue: "Lägg till ett visningsnamn för att fortsätta.", + savingPublishesNote: "Att spara publicerar din profil till Nostr — din signerare kan be dig godkänna en gång.", + youreIn: "Du är med! 🛹", + oneQuickThing: "En snabb sak innan du droppar in…", + saveLoginKey: "Spara din inloggningsnyckel", + saveLoginKeyBefore: "Detta är det", + only: "enda", + saveLoginKeyAfter: "sättet tillbaka till ditt konto — ingen e-post, ingen återställning av lösenord. Spara det nu så kan du logga in på vilken enhet som helst, var du än skejtar.", + revealSaveKey: "Visa & spara min nyckel", + recoveryCopied: "Återställningskod kopierad. Förvara den säkert.", + saved: "Sparad", + treatLikeBoardKeys: "Behandla den som nycklarna till din bräda — den som har den här koden styr ditt konto. Dela den aldrig.", + hideEncBackup: "Dölj krypterad backup", + saveEncBackup: "Spara en krypterad backup", + encBackupBefore: "En lösenordsskyddad kopia — säker att förvara i molnlagring eller en lösenordshanterare. Du behöver filen", + and: "och", + encBackupAfter: "lösenordet.", + choosePassword: "Välj ett lösenord", + saveEncBackupCta: "Spara krypterad backup", + savedCodeAria: "Jag har sparat min återställningskod", + savedCodeLabel: "Jag har sparat min återställningskod någonstans säkert — en lösenordshanterare eller nedskriven offline.", + letsSkate: "Nu skejtar vi", + saveLater: "Jag sparar det senare i Inställningar", + advancedSigner: "Avancerat: använd en signerarapp istället" + }, + mnemonic: { + generatedTitle: "Återställningsfras genererad! 🎉", + generatedDesc: "Skriv ner dessa 12 ord i ordning. De är nyckeln till ditt konto!", + savedTitle: "Återställningsfras sparad!", + savedDesc: "Förvara den här filen på en säker plats.", + downloadFailedTitle: "Nedladdning misslyckades", + downloadFailedDesc: "Kunde inte ladda ner filen. Kopiera manuellt.", + copiedTitle: "Kopierat till urklipp!", + copiedDesc: "Din återställningsfras har kopierats.", + qrWindowTitle: "QR-kod för återställningsfras", + qrHeading: "Din QR-kod för återställningsfras", + qrAlt: "QR-kod för återställningsfras", + qrWarning: "Håll denna QR-kod privat och säker!", + qrPrint: "Skriv ut QR-kod", + qrFailedTitle: "QR-koden misslyckades", + qrFailedDesc: "Kunde inte generera QR-kod.", + accountCreatedTitle: "Konto skapat! 🎉", + accountCreatedDesc: "Allt är klart! Din återställningsfras är säker.", + loginFailedTitle: "Inloggning misslyckades", + loginFailedDesc: "Kunde inte skapa kontot. Försök igen.", + verifyFailedTitle: "Verifieringen misslyckades", + verifyFailedDesc: "Orden matchar inte. Kontrollera och försök igen.", + titlePrefix: "Skapa konto med", + titleSuffix: "återställningsfras", + twelveWordTitle: "Återställningsfras med 12 ord", + twelveWordDesc: "Din återställningsfras är som ett huvudlösenord. Skriv ner den på papper och förvara den säkert. Du behöver den för att komma åt ditt konto från andra enheter eller om du rensar din webbläsardata.", + generate: "Generera återställningsfras", + useNsecInstead: "Använd avancerad nsec-nyckel istället", + yourPhrase: "Din återställningsfras", + copy: "Kopiera", + download: "Ladda ner", + qrCode: "QR-kod", + criticalWarning: "Kritisk säkerhetsvarning", + warnWriteStrong: "Skriv ner den", + warnWrite: "på papper och förvara den säkert", + warnNeverShareStrong: "Dela aldrig", + warnNeverShare: "din återställningsfras med någon", + warnBackupsStrong: "Ha flera backuper", + warnBackups: "på olika säkra platser", + warnAnyoneStrong: "Den som har denna fras", + warnAnyone: "styr ditt konto för alltid", + warnLoseStrong: "Om du tappar den", + warnLose: "förlorar du ditt konto permanent", + savedSecurely: "Jag har sparat den säkert", + verifyTitle: "Verifiera din återställningsfras", + verifyDesc: "För att säkerställa att du sparat den korrekt, ange dessa ord:", + wordLabel: "Ord #{{n}}", + wordPlaceholder: "Ange ord #{{n}}", + goBack: "Gå tillbaka", + verifyCreate: "Verifiera & skapa konto", + completeTitle: "Konto skapat!", + completeDesc: "Ditt Nostr-konto är redo!", + signerTitle: "Rekommenderas: Ställ in en signerarapp", + signerSubtitle: "Håll dina nycklar extra säkra", + signerDesc: "För bättre säkerhet, använd en dedikerad signerarapp istället för att klistra in din återställningsfras överallt. Signerarappar håller dina nycklar säkra samtidigt som du kan använda vilken Nostr-app som helst.", + signerCta: "Lär dig om signerarappar", + skip: "Hoppa över tills vidare" + }, + signupMethod: { + titlePrefix: "Välj din", + titleSuffix: "registreringsmetod", + subtitle: "Båda metoderna är säkra. Välj det som passar dig bäst!", + recommended: "Rekommenderas", + mnemonicTitle: "Återställningsfras", + mnemonicDesc: "12 lättihågkomna ord. Branschstandard som används av Bitcoin, Ethereum och de flesta krypto-plånböcker.", + mnemonicF1: "Lätt att skriva ner på papper", + mnemonicF2: "Fungerar med andra Nostr-appar (NIP-06)", + mnemonicF3: "Kan generera flera konton", + mnemonicF4: "Bekant för kryptoanvändare", + useMnemonic: "Använd återställningsfras", + advanced: "Avancerat", + nsecTitle: "Hemlig nyckel (nsec)", + nsecDesc: "Rå kryptografisk nyckel. Mer teknisk men ger dig direkt åtkomst till din Nostr-identitet.", + nsecF1: "Direkt kryptografisk kontroll", + nsecF2: "Kompatibel med alla Nostr-appar", + nsecF3: "En enda sträng att säkerhetskopiera", + nsecF4: "Inget härledningslager", + useNsec: "Använd hemlig nyckel", + footer: "🔒 Båda metoderna är lika säkra. Välj efter din preferens!" + }, + skateNip05: { + placeholder: "dittnamn", + claimedSuffix: "är ditt — spara din profil för att publicera det.", + checking: "Kontrollerar tillgänglighet…", + available: "{{name}}@{{domain}} är tillgängligt", + claim: "Gör anspråk", + hint: "Bokstäver, siffror, bindestreck. Gratis, och visas som ett ✓-märke på din profil." + }, + nip05Required: { + getFree: "Skaffa en gratis / billig NIP-05", + paid: "Betald", + requiredTitle: "NIP-05-verifiering krävs", + bannerReason: "För att förhindra spam och bygga förtroende behöver {{role}} en verifierad Nostr-adress (NIP-05).", + gateReason: "För att förhindra spam och bygga förtroende måste {{role}} ha NIP-05-verifiering.", + addInSettings: "Lägg till NIP-05 i Inställningar", + explainer: "NIP-05 bevisar din identitet genom att koppla din Nostr-profil till en domän — som", + updateProfile: "Uppdatera din profil" + }, + editProfile: { + uploadSuccessTitle: "Klart", + uploadSuccessDesc: "{{field}} laddades upp", + uploadErrorDesc: "Kunde inte ladda upp {{field}}. Försök igen.", + mustBeLoggedIn: "Du måste vara inloggad för att uppdatera din profil", + invalidClinkTitle: "Ogiltig CLINK-kod", + invalidClinkDesc: "Det där ser inte ut som en giltig noffer1…-kod. Rensa den eller klistra in en giltig.", + invalidLightningTitle: "Ogiltig Lightning-adress", + invalidLightningDesc: "Använd en e-postliknande adress som du@walletofsatoshi.com.", + invalidSpTitle: "Ogiltig Silent Payment-adress", + invalidSpDesc: "En Silent Payment-adress börjar med \"sp1\" och är ganska lång. Rensa den eller klistra in en giltig.", + invalidCordnTitle: "Ogiltig Cordn-länk", + invalidCordnDesc: "Klistra in en fullständig https://… Cordn-kontaktlänk.", + updateSuccessTitle: "Klart", + updateSuccessDesc: "Din profil har uppdaterats", + updateErrorDesc: "Kunde inte publicera profilen. Kontrollera dina Relay-anslutningar i Inställningar > Relays", + identityTitle: "Identitet", + identityDesc: "Hur du visas i hela SkateSpots.", + displayName: "Visningsnamn", + displayNamePlaceholder: "Ditt namn", + bio: "Bio", + bioPlaceholder: "Några ord om dig och din skejt…", + profilePicture: "Profilbild", + pictureDesc: "Ladda upp eller klistra in en kvadratisk bild.", + bannerImage: "Bannerbild", + bannerDesc: "En bred bild för toppen av din profil.", + website: "Webbplats", + bitcoinTitle: "Bitcoin & betalningar", + bitcoinDesc: "Låt folk Zappa, tippa och betala dig direkt — ingen mellanhand.", + lightningAddress: "Lightning-adress", + lud16Invalid: "Använd en e-postliknande adress, t.ex. du@dindoman.com.", + lud16Ok: "Driver \"Zap\"-knappen på din profil.", + lud16Hint: "Omedelbara Bitcoin-tips. Driver \"Zap\"-knappen på din profil.", + silentPaymentAddress: "Silent Payment-adress", + spInvalid: "Bör börja med \"sp1\" och vara ganska lång.", + spOk: "Giltig — en återanvändbar, privat on-chain-adress.", + spHint: "Återanvändbar statisk on-chain-adress (BIP-352). Dela en gång; varje betalning är olinkbar.", + clinkTipCode: "CLINK-tipskod", + nofferInvalid: "Det där ser inte ut som en giltig noffer1…-kod.", + nofferOk: "Giltig — en \"Tippa i Bitcoin\"-knapp visas på din profil.", + nofferHint: "Självförvarad CLINK-kod så att vem som helst kan tippa dig över Nostr — ingen mellanhand.", + skateProfileTitle: "Skate-profil", + skateProfileDesc: "Visa dina sponsorer och hur Crew tar kontakt med dig.", + badges: "Märken", + badgesHint: "(etikett + valfri länk)", + badgeExample: "t.ex. Independent Trucks", + badgeLabelPlaceholder: "Märkesetikett…", + badgeUrlPlaceholder: "https://… (valfritt)", + removeBadge: "Ta bort märke", + addBadge: "Lägg till märke", + badgesDescBefore: "Sponsorer, Shops eller personer som stöttar din skejt — och allt annat du vill visa upp. Varje blir en klickbar chip på din profil. Ditt", + badgesDescAfter: "medlemsmärke läggs till automatiskt.", + coordinator: "Koordinator", + cordnInvalid: "Det där ser inte ut som en koordinator. Klistra in en nprofile, en cordn.net-länk eller en https://-URL.", + cordnOk: "Visas på din profil — andra kan lägga till den med ett tryck.", + cordnHint: "Cordn-koordinatorn som andra använder för att meddela dig. Privat, krypterad, din.", + useMyCoordinator: "Använd min koordinator", + accountTitle: "Konto", + accountDesc: "Extra kontoinställningar.", + botAccount: "Botkonto", + botAccountDesc: "Markera detta konto som automatiserat eller en bot.", + saving: "Sparar…", + saveProfile: "Spara profil", + nip05VerifiedHandle: "NIP-05-verifierat handle", + nip05How: "Hur?", + extraHandles: "Extra handles", + extraHandlesHint: "valfritt — lägg till upp till 5", + nip05HintEmpty: "Ett verifierat handle som du@dindoman.com — Nostrs version av en blå bock. Visar en ✓ på din profil och låser upp filtret \"Verifierad\" i skejtarkatalogen.", + nip05Invalid: "Använd ett e-postliknande handle, t.ex. du@dindoman.com — inget \"https://\" eller mellanslag.", + nip05Checking: "Kontrollerar din domän…", + nip05Verified: "Verifierad — din domän bekräftar att detta handle tillhör dig. ✓", + nip05Mismatch: "Din domän kopplar detta handle till en ANNAN nyckel. Fixa din .well-known/nostr.json så att den pekar på detta konto.", + nip05Unreachable: "Kunde inte nå din domäns /.well-known/nostr.json ännu. Sparade handles fungerar ändå när din domän är korrekt inställd.", + nip05Enter: "Ange ditt NIP-05-handle.", + freeHandleBefore: "Har du ingen egen domän? Gör anspråk på ett gratis", + freeHandleAfter: "handle från SkateSpots.", + uploadLabel: "Ladda upp {{label}}", + previewLabel: "Förhandsvisning av {{label}}" + }, + security: { + recoveryCopied: "Återställningskod kopierad. Förvara den säkert.", + savedTitle: "Sparat!", + recoveryDownloaded: "Återställningskod nedladdad. Förvara den säkert.", + downloadFailedTitle: "Nedladdning misslyckades", + downloadFailedDesc: "Kopiera den manuellt istället.", + loginRequired: "Inloggning krävs", + loginRequiredDesc: "Logga in för att komma åt säkerhetsinställningar.", + backupConfirmedTitle: "Backup bekräftad! ✅", + backupConfirmedDesc: "Bra! Dina nycklar är säkra.", + yourRecoveryCode: "Din återställningskod", + recoveryCodeDesc: "Sparade du den inte när du registrerade dig? Du kan hämta den här när som helst.", + recoveryCodeBefore: "Denna kod är det", + only: "enda", + recoveryCodeAfter: "sättet att logga in igen på en ny enhet eller webbläsare. Spara den någonstans säkert (en lösenordshanterare, eller nedskriven på papper). Den som har den styr ditt konto — dela den aldrig.", + revealRecovery: "Visa min återställningskod", + qrHint: "Skanna med en annan Nostr-app för att logga in. Håll denna skärm privat.", + neverShareHide: "⚠️ Dela aldrig detta. Dölj det när du är klar.", + hide: "Dölj", + amberNoteBefore: "Du är inloggad med", + amberNoteAfter: ". Din återställningskod finns inuti Amber — öppna Amber-appen för att säkerhetskopiera den. SkateSpots ser aldrig din nyckel.", + bunkerNoteBefore: "Du är inloggad med en", + remoteSigner: "fjärrsignerare (bunker)", + bunkerNoteAfter: ". Din återställningskod hålls av din signerartjänst, inte av SkateSpots. Säkerhetskopiera den där.", + extensionNoteBefore: "Du är inloggad med ett", + browserExtension: "webbläsartillägg", + extensionNoteAfter: ". Din återställningskod finns i tillägget — använd dess eget backup/export-alternativ. SkateSpots ser aldrig din nyckel.", + otherNote: "Din återställningskod hanteras av din signerarapp, inte av SkateSpots. Säkerhetskopiera den där.", + backupWarningTitle: "⚠️ Har du säkerhetskopierat din återställningsfras eller hemliga nyckel?", + backupWarningBody: "Dina nycklar är det ENDA sättet att komma åt ditt konto. Om du tappar dem förlorar du allt - det finns ingen återställning av lösenord!", + iveBackedUp: "Jag har säkerhetskopierat mina nycklar", + backupConfirmed: "✅ Backup bekräftad", + backupNotConfirmed: "⚠️ Backup inte bekräftad", + backupConfirmedStatusDesc: "Du har bekräftat att dina nycklar är säkert säkerhetskopierade.", + backupNotConfirmedDesc: "Se till att säkerhetskopiera din återställningsfras eller hemliga nyckel!", + notSavedYetBefore: "Har du inte sparat din återställningskod än? Inga problem — hämta den från", + notSavedYetAfter: "avsnittet ovan, förvara den säkert och bekräfta nedan.", + yesBackedUp: "Ja, jag har säkerhetskopierat mina nycklar", + bestPracticesTitle: "Bästa praxis för nyckelsäkerhet", + bestPracticesDesc: "Hur du håller ditt Nostr-konto säkert", + bp1Title: "Skriv ner den på papper", + bp1Desc: "Fysisk backup är säkrast. Förvara på en säker plats som ett kassaskåp.", + bp2Title: "Flera backuper", + bp2Desc: "Ha kopior på olika säkra platser (hemma i kassaskåp, bankfack, etc.)", + bp3Title: "Dela aldrig dina nycklar", + bp3Desc: "Riktiga Nostr-appar ber ALDRIG om din nsec eller återställningsfras efter första inloggningen", + bp4Title: "Lagra inte i molnet okrypterat", + bp4Desc: "Undvik Google Docs, e-postutkast eller klartext i molnlagring", + bp5Title: "Överväg att använda ett webbläsartillägg", + bp5Desc: "Alby, nos2x eller Flamingo håller dina nycklar säkra och avslöjar dem aldrig för webbplatser", + importantReminders: "⚠️ Viktiga påminnelser", + rem1: "Om du tappar dina nycklar förlorar du ditt konto permanent", + rem2: "Inget företag eller person kan återställa ditt lösenord - inte ens vi", + rem3: "Den som har dina nycklar har full kontroll över ditt konto", + rem4: "Dina nycklar styr all din Nostr-data i ALLA appar", + recommendedSigners: "🔌 Rekommenderade Nostr-signerare", + recommendedSignersDesc: "Använd en Nostr-signerare för bättre säkerhet och bekvämlighet", + recommended: "Rekommenderas", + amberDesc: "Säker Nostr-signerare för Android. Håller dina nycklar säkra på din telefon och signerar händelser utan att avslöja dem.", + albyDesc: "Fullfjädrat tillägg med Lightning-plånbok, WebLN och NWC-stöd.", + flamingoDesc: "Enkelt, rent gränssnitt. Fokuserar på Nostr-signering utan plånboksfunktioner.", + nos2xDesc: "Minimalt, lättviktigt tillägg för avancerade användare.", + nostrConnectTitle: "☁️ Nostr Connect (fjärrsignerare)", + nostrConnectDesc: "Använd en fjärrsignerare för att komma åt ditt konto från vilken enhet som helst", + nostrConnectBody: "Nostr Connect (även kallat \"bunkers\") låter dig lagra dina nycklar på en säker server och logga in från vilken enhet som helst. Dina nycklar lämnar aldrig servern, men du kan använda ditt konto var som helst!", + nsecAppDesc: "Gratis, säker fjärrsignerare. Skapa bunker://-URI och klistra in vid inloggning.", + nostrumDesc: "Ett annat alternativ för fjärrsignerare med mobilstöd.", + howToUse: "💡 Så här använder du:", + howToUseDesc: "Skapa ett konto på en av dessa tjänster, hämta din bunker://-anslutningssträng och klistra sedan in den i fliken \"Nostr Connect\" vid inloggning." + }, + relayList: { + connected: "Ansluten", + connecting: "Ansluter…", + offline: "Offline", + removeUrl: "Ta bort {{url}}", + add: "Lägg till", + publishedTitle: "Relay-lista publicerad", + publishedDesc: "Synkad till Nostr (kind 10002).", + publishFailedTitle: "Kunde inte publicera Relay-listan", + invalidUrlTitle: "Ogiltig Relay-URL", + invalidUrlDesc: "Prova något som wss://relay.example.com", + alreadyInList: "Relayn finns redan i din lista", + keepReadWriteTitle: "Behåll läs eller skriv på", + keepReadWriteDesc: "En Relay behöver minst en av läs/skriv.", + alreadyInThisList: "Relayn finns redan i denna lista", + dmPublishedTitle: "DM-relays publicerade", + dmPublishedDesc: "NIP-17-inkorgen uppdaterad.", + dmPublishFailedTitle: "Kunde inte publicera DM-relays", + nip65Title: "Relays (NIP-65)", + nip65DescUser: "Tryck på Läs / Skriv för att växla. Publiceras till Nostr som din kind 10002-lista.", + nip65DescLoggedOut: "Tryck på Läs / Skriv för att växla. Logga in för att publicera din lista till Nostr.", + noRelays: "Inga Relays än — lägg till en nedan.", + local: "Lokal", + read: "Läs", + readHint: "Hämta innehåll från denna Relay", + write: "Skriv", + writeHint: "Publicera dina händelser till denna Relay", + dmTitle: "DM-inkorgens Relays", + dmDesc: "Var du tar emot NIP-17-direktmeddelanden (kind 10050). Faller tillbaka på dina skriv-Relays när den är tom.", + localTitle: "Lokala Relays", + localDesc: "Endast i appen (t.ex. en LAN-nod). Används för läsning och skrivning; publiceras aldrig.", + blockedTitle: "Blockerade Relays", + blockedDesc: "Anslut aldrig till dessa — uteslutna från all läsning och skrivning." + }, + relatr: { + searchingTitle: "Söker efter Relatr-tjänst...", + searchingDesc: "Frågar Nostr efter Relatr-profiler", + foundTitle: "Relatr-tjänst hittad!", + foundDesc: "Tjänst: {{name}}", + unknown: "Okänd", + notFoundTitle: "Ingen Relatr-tjänst hittad", + notFoundDesc: "Prova att ange pubkey manuellt eller kontrollera https://www.relatr.xyz/", + searchFailedTitle: "Sökningen misslyckades", + searchFailedDesc: "Kunde inte fråga Nostr efter Relatr-profiler", + invalidPubkeyTitle: "Ogiltig pubkey", + invalidPubkeyDesc: "Ange en giltig hex-pubkey med 64 tecken", + enabledTitle: "Relatr aktiverad!", + enabledDesc: "Globala förtroendepoäng är nu aktiva.", + disabledTitle: "Relatr inaktiverad", + disabledDesc: "Förtroendepoäng hämtas inte längre.", + title: "Relatr-förtroendepoäng", + desc: "Globala förtroendepoäng hjälper till att identifiera pålitliga användare och minska spam", + status: "Status", + active: "Aktiv", + disabled: "Inaktiverad", + activeStrong: "Relatr är aktiv.", + activeDesc: "Förtroendepoäng från ContextVMs globala nätverksanalys hjälper till att identifiera pålitliga skejtare och minska spam.", + disabledStrong: "Relatr är inaktiverad.", + disabledHint: "Aktivera den för att få förtroendepoäng från det globala Nostr-nätverket.", + disable: "Inaktivera Relatr", + enable: "Aktivera Relatr", + advancedSettings: "Avancerade inställningar", + servicePubkey: "Relatr-tjänstens pubkey", + pubkeyPlaceholder: "Ange hex-pubkey med 64 tecken...", + searching: "Söker...", + autoDiscover: "Autoupptäckt", + pubkeyDefault: "Standard: ContextVMs officiella Relatr-tjänst (npub1dvmc...)", + relayLabel: "Relay (där Relatr publicerar poäng)", + relayDefault: "Standard: wss://relay.contextvm.org (ContextVMs officiella Relay)", + applyChanges: "Tillämpa ändringar", + learnMore: "Läs mer:", + website: "Relatr-webbplats", + github: "Relatr GitHub", + nip85Spec: "NIP-85-specifikation" + }, + followList: { + unfollow: "Sluta följa", + title: "Ditt Nostr-nätverk", + desc: "Hantera vilka du följer. Att följa användare hjälper till att bygga ditt förtroendenätverk och avgör vilka spots som visar förtroendemärken.", + following: "Följer ({{count}})", + followers: "Följare ({{count}})", + follow: "Följ", + followHint: "💡 Klistra in en Nostr-pubkey (npub1...), NIP-05-adress (användare@domän.com) eller hex-pubkey", + notFollowing: "Du följer ingen ännu", + notFollowingHint: "Följ skejtare för att se deras spots med ✅ VERIFIERADE märken", + trustActiveStrong: "✅ Förtroendemärken aktiva:", + trustActive: "Spots skapade av personer du följer visar nu VERIFIERADE märken. Spots av deras vänner visar BETRODDA märken.", + noFollowers: "Inga följare än", + noFollowersHint: "Dela din Nostr-profil för att få följare!", + howTitle: "💡 Hur följande påverkar förtroendemärken", + verifiedStrong: "✅ VERIFIERAD (grön):", + verifiedDesc: "Spots skapade av personer du följer direkt", + trustedStrong: "🟡 BETRODD (gul):", + trustedDesc: "Spots skapade av personer dina vänner följer (2 steg)", + unverifiedStrong: "⚪ Overifierad:", + unverifiedDesc: "Spots av användare utan koppling till ditt nätverk", + tip: "💡 Tips: Följ aktiva skejtare för att se fler verifierade spots och bygga ditt förtroendenätverk!" + }, + notify: { + enableTitle: "Aktivera aviseringar", + enableDesc: "Låt den här enheten surra när något behöver dig.", + checkingPermission: "Kontrollerar behörighet…", + unsupported: "Den här enheten stöder inte aviseringar här. Bygg om Android-appen för att aktivera dem på din telefon.", + denied: "Aviseringar är blockerade för den här webbplatsen. Tillåt dem i dina webbläsar-/OS-inställningar och försök igen.", + backgroundTitle: "Bakgrundsaviseringar", + backgroundDesc: "Få ping för meddelanden och byten även när SkateSpots är stängt.", + pushUnsupported: "Den här webbläsaren stöder inte bakgrundspush. På mobil, lägg till SkateSpots på hemskärmen.", + pushPrivacy: "För att nå dig när appen är stängd får en SkateSpots-aviseringsserver en ping från din Relay när något anländer för din nyckel och skickar den vidare till telefonens push-tjänst. Den ser bara att din nyckel har något — aldrig vem som skickade det eller vad det står, och den kan inte dekryptera dina meddelanden. Anmäl dig per enhet.", + bgDeliveryTitle: "Bakgrundsleverans (Android)", + bgDeliveryDesc: "Sök efter nya meddelanden, erbjudanden och byten medan appen är stängd — inga Google-tjänster.", + off: "Av", + standard: "Standard (~15 min)", + fast: "Snabb (~5 min)", + bgDeliveryNote: "Standard är bästa möjliga — Android kan skjuta upp det under Doze. Snabb visar en beständig avisering och använder mer batteri. Inget dekrypteras på vår server.", + notifyMeAbout: "Avisera mig om", + couldNotEnable: "Kunde inte aktivera", + sendTest: "Skicka en testavisering", + testTitle: "SkateSpots-aviseringar är på 🛹", + testBody: "Så här kommer ett DM, en Zap eller en Crew-inbjudan att se ut.", + footerBefore: "Aviseringar byggs på din enhet från data appen redan har, och direktmeddelandeaviseringar dekrypterar aldrig dina meddelanden — så Amber ombeds aldrig öppna ett. Med", + footerAfter: "av kan en helt stängd app inte nås, så aviseringar kommer nästa gång du öppnar SkateSpots.", + cat_dms_label: "Direktmeddelanden", + cat_dms_hint: "Någon skickar ett privat meddelande till dig", + cat_crew_label: "Crews", + cat_crew_hint: "Inbjudningar, förfrågningar om att gå med och medlemsbekräftelser", + cat_social_label: "Zaps, svar & omnämnanden", + cat_social_hint: "Reaktioner, reposts, Zaps, svar och händelseuppdateringar", + cat_newsletter_label: "Nyhetsbrev", + cat_newsletter_hint: "Nya SkateSpots-släpp (endast prenumeranter)", + cat_trades_label: "Erbjudanden & byten", + cat_trades_hint: "Erbjudanden, moterbjudanden och bytesbekräftelser", + cat_reminders_label: "Händelsepåminnelser", + cat_reminders_hint: "En puff en timme innan händelser du ska gå på (Android-app)" + }, + regionBackfill: { + taggedTitle: "Taggade {{count}} plats{{s}}", + taggedSkipped: "{{count}} hoppades över (inga koordinater eller ingen geokodarmatchning).", + taggedOk: "Regionstaggar skrivna till community-Relayn.", + nothingTitle: "Inget att tagga", + nothingDesc: "Inga pins kunde geokodas. Försök igen senare.", + failedTitle: "Backfill misslyckades", + title: "Fyll i regionstaggar", + admin: "Admin", + descBefore: "Pins som gjordes innan geokodning fanns har koordinater men ingen stad-/landstagg, så kartan ritar dem medan Community Stats bara kan säga \"Okategoriserad\". Detta härleder taggarna på nytt från varje pin och återpublicerar", + descStrong: "dina egna", + descAfter: "otaggade spots & Shops.", + scanning: "Skannar dina spots…", + allTagged: "Varje spot & Shop du äger har redan en regionstagg. 🎉 Eventuella kvarvarande \"Okategoriserad\"-pins tillhör andra kartläggare — bara deras egna nycklar kan tagga dem.", + countLine: "{{count}} av dina spot{{s}}/Shops saknar regionstagg. Din signerare kan be om att godkänna var och en.", + tagging: "Taggar {{done}}/{{total}}…", + run: "Fyll i regionstaggar", + summary: "{{updated}} uppdaterade · {{skipped}} överhoppade · {{failed}} misslyckade" + }, + adminReview: { + title: "Granskningskö", + flagged: "{{count}} spot{{s}} utlöser skräpsignalerna — dölj eller avvisa.", + clean: "Spots som ser ut som testposter eller off-topic-pins." + }, + grantPro: { + invalidNpub: "Ange en giltig npub (eller hex-pubkey)", + invalidDays: "Dagar måste vara ett positivt tal", + grantedTitle: "Pro beviljat ⚡", + grantedDesc: "{{npub}} till {{date}}", + failedTitle: "Beviljandet misslyckades", + title: "Bevilja Sasquatch Pro", + owner: "Ägare", + desc: "Manuell reservlösning för en verifierad betalning som Zap-kvittot missade. Publicerar ett ägarsignerat beviljande; användaren kan inte förfalska det.", + targetPlaceholder: "npub1… (eller hex)", + grant: "Bevilja" + }, + myData: { + reactionTitle: "{{emoji}}-reaktion", + deleting: "Tar bort...", + requestDeletion: "Begär borttagning", + selectContentTitle: "Välj innehåll att ta bort", + selectContentDesc: "Välj de specifika objekten du vill begära borttagning för.", + all: "Alla", + spots: "Spots", + events: "Evenemang", + shops: "Shops", + listings: "Annonser", + collections: "Samlingar", + lab: "The Lab", + posts: "Inlägg", + reactions: "Reaktioner", + selectAll: "Välj alla", + selectAllVisible: "Välj alla synliga", + selectedCount: "{{count}} valda", + noItemsCategory: "Inga objekt i denna kategori", + decentralizedStrong: "Viktigt:", + decentralizedNote: "Nostr är decentraliserat. Relays bör respektera borttagningsbegäranden, men vissa kanske inte. Detta är inte en garanterad permanent borttagning.", + deleteCount: "Ta bort {{count}} objekt{{s}}", + noDataTitle: "Ingen data att exportera", + noDataDesc: "Du har inte publicerat några händelser än.", + exportedTitle: "Data exporterad!", + exportedDesc: "Laddade ner {{count}} händelser som JSON.", + deletionRequestedTitle: "Borttagning begärd", + deletionRequestedDesc: "Borttagningsbegäran har publicerats till Relays.", + deletionRequestedMany: "Begärde borttagning av {{count}} objekt. Notera: Vissa Relays kanske inte respekterar denna begäran.", + deletionFailedTitle: "Borttagning misslyckades", + deletionFailedDesc: "Kunde inte publicera borttagningsbegäran. Försök igen.", + loginRequired: "Inloggning krävs", + loginRequiredDesc: "Logga in för att visa och hantera din data.", + title: "Min data", + desc: "Ditt innehåll på Nostr-nätverket. Du äger denna data - exportera den när som helst eller begär borttagning.", + coachFilmer: "Coach/Filmer", + zaps: "Zaps", + received: "Mottagna", + exportAll: "Exportera all data", + recentActivity: "Senaste aktivitet", + viewAll: "Visa alla ({{count}})", + noDataPublished: "Ingen data publicerad än", + startBy: "Börja med att", + addingASpot: "lägga till en spot", + aboutYourData: "Om din data", + ownDataStrong: "Du äger din data.", + ownData: "Allt innehåll signeras med dina kryptografiska nycklar och lagras på Nostr-Relays. Inget företag kontrollerar det.", + exportAnytimeStrong: "Exportera när som helst", + exportAnytime: "- Ladda ner alla dina händelser som JSON", + portableStrong: "Portabel", + portable: "- Använd dina nycklar i vilken Nostr-app som helst", + selectiveStrong: "Selektiv borttagning", + selective: "- Välj exakt vad som ska tas bort", + caveatStrong: "Decentraliserad varning", + caveat: "- Vissa Relays kan behålla data trots borttagningsbegäranden" + }, + settingsPage: { + seoTitle: "Inställningar - SkateSpots", + seoDescription: "Hantera dina kontoinställningar för SkateSpots.", + heading: "INSTÄLLNINGAR", + subtitle: "Konto- och appinställningar", + editProfile: "Redigera profil", + profileRefreshed: "Profilen uppdaterad!", + found: "Hittad: {{name}}", + unnamed: "namnlös", + profileNotFound: "Profilen hittades inte", + notFoundOnRelay: "Hittades inte på någon Relay.", + refreshFailed: "Uppdateringen misslyckades", + refreshFailedDesc: "Kunde inte ansluta till Relays.", + loginToEdit: "Logga in för att redigera din profil", + noProfileRelays: "Vi kunde inte hitta någon profil på Relayerna. Om du har ställt in en tidigare, prova att uppdatera.", + checkDisplayName: "ett visningsnamn", + checkPhoto: "en profilbild", + checkBio: "en kort bio", + checkLightning: "en Lightning-adress så att folk kan Zappa dig", + checkHandle: "ett gratis @skate-spots.org-handle", + finishProfile: "Slutför din profil", + addItem: "Lägg till {{item}}", + nip05Title: "NIP-05-verifiering", + nip05Desc: "Skaffa en verifierad Nostr-adress (som namn@domän.com) för att bygga förtroende. Krävs för att skapa evenemang, coachprofiler och Shops.", + freeFromSkateSpots: "Gratis från SkateSpots", + claimHandleBefore: "Gör anspråk på ett handle som", + claimHandleAfter: "— ingen registrering, ingen kostnad, ingen domän att driva. Gör anspråk i fliken Profil och spara sedan.", + claimInProfile: "Gör anspråk i Profil", + nip05Footer: "När du har fått din NIP-05, lägg till den i profilfältet och spara.", + localRelayOn: "Lokal Relay på", + localRelayOff: "Lokal Relay av", + lookingForCitrine: "Letar efter Citrine på den här enheten…", + noLongerUsing: "Använder inte längre den lokala Relayn.", + localRelay: "Lokal Relay", + citrineOff: "Snabbare läsningar & offlinebackup på den här enheten", + citrineSearching: "Söker efter Citrine på den här enheten…", + citrineLive: "Ansluten — läser & säkerhetskopierar lokalt", + citrineWaiting: "Aktiverad — starta Citrine för att ansluta", + toggleCitrine: "Växla lokal Citrine-Relay", + citrineDetected: "Citrine-Relay upptäckt", + citrineLooking: "Letar efter Citrine…", + citrineNotDetected: "Citrine inte upptäckt", + recheckCitrine: "Kontrollera igen efter Citrine-Relayn", + checking: "Kontrollerar", + recheck: "Kontrollera igen", + chipInstantReads: "Omedelbara läsningar", + chipWorksOffline: "Fungerar offline", + chipOnDeviceBackup: "Backup på enheten", + cantReachStrong: "Kan inte nå Citrine.", + cantReachBefore: "Se till att den gratis Citrine-appen är installerad och att dess Relay är", + started: "startad", + cantReachAfter: ", tryck sedan på Kontrollera igen. Den kör en privat Nostr-Relay på din telefon för omedelbara läsningar och en offlinebackup.", + citrineStep1Before: "Öppna Citrine → tryck på", + start: "Starta", + citrineStep2Before: "Kom tillbaka hit → tryck på", + getCitrine: "Skaffa Citrine", + citrinePrivacy: "Din Stash och dina meddelanden förblir ände-till-ände-krypterade här, precis som överallt annars. Den lokala Relayn snabbar bara upp saker och behåller en kopia på din enhet — den ersätter aldrig krypteringen.", + communityRelayDisabled: "Community-Relay inaktiverad", + communityRelayEnabled: "Community-Relay aktiverad", + usingOnlyPersonal: "Använder bara dina konfigurerade Relays.", + skateRelayIncluded: "SkateSpots-Relay inkluderad.", + relays: "Relays", + relayPrivacyBefore: "Relays kan se din", + ipAddress: "IP-adress", + relayPrivacyAfter: "när du ansluter. Tor döljer den — och behandla en \"gratis\" VPN som en varningssignal; de tjänar oftast pengar på din trafik.", + communityRelay: "Community-Relay", + syncingGlobal: "Synkar med global skejt-community", + usingOnlyPersonalShort: "Använder bara personliga Relays", + appearance: "Utseende", + language: "Språk", + darkModeOnly: "Endast mörkt läge", + darkModeDesc: "SkateSpots kör en mörk neonestetik inspirerad av skejtkultur. Svart bakgrund, neonrosa, lime och orange.", + navigation: "Navigering", + sasquatchExpanded: "Sasquatchen har utökats! 🦧 Uppdatera sidan för att se honom.", + advanced: "Avancerat", + sasquatchGuide: "🦧 Sasquatch-guide", + sasquatchResetDesc: "Återställ introduktionsguiden till utökat läge", + expandSasquatch: "Utöka Sasquatchen", + wallet: "Plånbok", + loginToWallet: "Logga in för att hantera din plånbok", + openWallet: "Öppna plånbok", + balanceSendReceive: "Saldo, skicka, ta emot", + connectNwc: "Anslut NWC-plånbok", + account: "Konto", + security: "Säkerhet", + securitySub: "Nycklar, signering, Amber", + nip05Sub: "Skaffa en verifierad Nostr-adress", + app: "App", + myStash: "Min Stash", + myStashSub: "Privat Gear-inventering", + relaysSub: "Nostr-Relay-anslutningar", + appearanceSub: "Språk och tema", + assistant: "Assistent", + showSasquatch: "Visa Sasquatch-assistenten", + showSasquatchDesc: "Visa den flytande Sasquatch-knappen på kartan och andra skärmar.", + showMapFooter: "Visa kartlänkraden", + showMapFooterDesc: "Visa den tunna länkraden längst ner på kartan.", + notifications: "Aviseringar", + notificationsSub: "Aviseringar för DMs, Crews och Zaps", + coordinator: "Koordinator", + coordinatorSub: "Din Cordn-gruppserver", + data: "Data", + myData: "Min data", + myDataSub: "Exportera, importera, hantera", + advancedSub: "Relatr, Sasquatch, verktyg", + notLoaded: "Inte laddad", + notLoggedIn: "Inte inloggad" + }, + onboarding: { + seoTitle: "Kom igång — SkateSpots", + seoDescription: "Gå med i den decentraliserade skejtcommunityn. Hitta spots, få kontakt med coacher, skicka Zaps. Gratis för alltid.", + homeSetTitle: "Hemmaplats satt 🛹", + homeSetDesc: "Kartan öppnas nu i ditt område.", + locationFailedTitle: "Kunde inte hämta din plats", + locationFailedDesc: "Kontrollera platsbehörigheter eller välj ditt område på kartan.", + niceTitle: "🎉 Snyggt!", + niceDesc: "Du förstår nu hur Nostr fungerar. Nu skejtar vi!", + npubCopied: "npub kopierad till urklipp.", + saveLoginNow: "Spara din inloggning — gör det nu", + saveLoginNowDesc: "Din återställningskod är det enda sättet tillbaka till ditt konto. Ingen e-post, ingen återställning av lösenord.", + betaBadge: "Beta — Öppen för skejtare världen över", + headline1: "SKEJTA", + headline2: "DIN VÄRLD", + heroBefore: "En", + decentralized: "decentraliserad", + heroAfter: "skejtcommunity. Inget företag äger den. Ingen algoritm begraver dina spots. Ingen banhammare. Bara skejtare.", + pillMap: "Spotkarta", + pillCoaches: "Coacher & filmare", + pillEvents: "Evenemang", + pillGear: "Köp/sälj Gear", + pillZaps: "Bitcoin-Zaps", + pillStash: "Gear-Stash", + pillCrews: "Crews", + createFreeAccount: "Skapa ditt gratiskonto", + noEmailNoPassword: "Ingen e-post. Inget lösenord. Äg din identitet för alltid.", + findSpots: "Hitta spots nära dig", + addFirstSpot: "Lägg till din första spot", + accountCreated: "Du är med! Kontot skapat ✓", + identityYours: "Din identitet är din — lagrad i din nyckel, inte på våra servrar.", + whereSkate: "Var skejtar du?", + whereSkateDesc: "Ställ in ditt hemområde en gång och kartan öppnas på dina spots varje gång. Din GPS lämnar aldrig din enhet.", + useMyLocation: "Använd min plats", + pickOnMap: "Välj på kartan", + loginSaved: "Inloggning sparad — ditt konto är säkert att återställa.", + whyBother: "Varför bry sig?", + why1Title: "Varje spot, en karta", + why1Body: "Kanter, rails, DIY, parker — kartlagda av skejtare som faktiskt åker dem. Kolla statusen innan du drar ut så att du inte slösar en session på en bust.", + why2Title: "Byggt av skejtare, inte kostymer", + why2Body: "Inga annonser, ingen algoritm som trycker skräp i ansiktet på dig, ingen datautvinning. Öppen källkod. Kartan tillhör communityn — inklusive dig.", + why3Title: "Få betalt för att lägga upp", + why3Body: "Kartlägg en pärla, filma en banger, kör en session — och få riktiga Bitcoin-Zaps direkt till din plånbok. Ingen plattformsavgift, ingen mellanhand.", + why4Title: "Ditt konto är faktiskt ditt", + why4Body: "En nyckel loggar in dig i varje Nostr-app. Inget företag kan låsa ute dig eller radera ditt konto på en nyck. Ta med din identitet överallt.", + everythingFree: "Allt du kan göra — gratis", + featSpots: "Upptäck spots", + featSpotsDesc: "Interaktiv karta med tusentals spots världen över", + featLab: "The Lab", + featLabDesc: "Hitta coacher, filmare och videoredigerare nära dig", + featEvents: "Evenemang", + featEventsDesc: "Tävlingar, sessioner, träffar", + featGear: "Köp / sälj Gear", + featGearDesc: "Peer-to-peer-marknadsplats för begagnad skejtutrustning", + featStash: "Min Stash", + featStashDesc: "Privat krypterad inventering av allt du äger", + featCrews: "Crews", + featCrewsDesc: "Rulla med ditt Crew — delade spots, chatt & sessioner", + whatIsNostr: "Vad är Nostr?", + whatIsNostrSub: "Protokollet som driver SkateSpots", + nostrBefore: "Nostr är ett öppet protokoll — som e-post, men för sociala appar. Ditt konto är ett", + cryptoKeyPair: "kryptografiskt nyckelpar", + nostrAfter: "som du äger. Inget enskilt företag kontrollerar ditt konto eller din data — du väljer vilka Relays som lagrar den, och du kan till och med köra dina egna. Din identitet fungerar i varje Nostr-app.", + nostrPoint1: "Du äger din data & dina nycklar", + nostrPoint2: "Inget företag kan banna dig", + nostrPoint3: "Identiteten fungerar överallt", + nostrPoint4: "Direkta Bitcoin-tips", + deepDive: "Djupdykning: Hur Nostr fungerar", + privacyTip: "Integritetstips: din GPS lämnar aldrig din enhet. Servrar du ansluter till (som kartrutor) kan fortfarande se din IP — om du vill dölja det också fungerar en VPN eller Tor. Helt valfritt.", + readPrivacy: "Läs vår integritetssida", + zapsWallet: "⚡ Zaps & plånbok", + optional: "Valfritt", + walletDesc: "Zaps är Bitcoin-tips du skickar direkt till en skejtare som lade upp en sjuk spot, filmade ett banger-klipp eller körde en grym session. Ingen plattformsavgift. Ingen mellanhand. 100% går till dem.", + builtInWallet: "Inbyggd Cashu-plånbok", + builtInWalletDesc: "Ta emot Lightning-betalningar direkt i appen. Ingen uppsättning.", + balance: "Saldo", + connectExternal: "Anslut extern plånbok", + connectExternalDesc: "Har du Alby, Mutiny eller en annan plånbok? Anslut den via NWC.", + connectViaNwc: "Anslut via NWC", + loginToConnect: "Logga in för att ansluta din egen plånbok.", + fiveDollars: "💡 $5 i Bitcoin = hundratals Zaps att sprida i communityn", + commonQuestions: "Vanliga frågor", + faq1Q: "Är SkateSpots gratis?", + faq1A: "100% gratis. Bläddra bland spots, lägg till platser, hitta coacher, skapa evenemang, gå med i sessioner — allt gratis, för alltid. Bitcoin (Zaps) är valfritt om du vill tippa skapare.", + faq2Q: "Vad är Nostr och varför använder SkateSpots det?", + faq2Before: "Nostr är ett öppet protokoll för decentraliserade appar — tänk på det som internet självt, inte ägt av något företag. Ditt SkateSpots-konto är ett kryptografiskt nyckelpar som", + faq2Strong: "du äger", + faq2After: ". Inget enskilt företag kan banna ditt konto eller hålla din data som gisslan — du väljer vilka Relays som lagrar din data, och du kan till och med köra dina egna. Din identitet fungerar också i andra Nostr-appar som Primal, Damus eller Amethyst.", + faq3Q: "Vad är en nsec och varför är den viktig?", + faq3Before: "Din", + faq3Mid: "är din privata nyckel — det enda beviset på att du äger ditt konto. Till skillnad från lösenord finns det", + faq3Strong: "inget \"jag har glömt mitt lösenord\"", + faq3After: ". Om du tappar din nsec är ditt konto borta för alltid. När du skapar ett konto, ladda ner din backup omedelbart och förvara den säkert (lösenordshanterare, nedskriven offline).", + faq4Q: "Vilka signerare / appar fungerar med SkateSpots?", + faq4Desktop: "På dator:", + faq4Extensions: "webbläsartillägg.", + faq4Android: "På Android:", + faq4AndroidAfter: "(bäst upplevelse med den inbyggda appen).", + faq4Ios: "På iOS:", + faq4IosAfter: "eller klistra in din nsec direkt (mindre säkert).", + faq4Note: "Du kan också logga in genom att klistra in din nsec direkt — men att använda ett signerartillägg är säkrare.", + faq5Q: "Kan jag använda SkateSpots på min telefon?", + faq5Before: "Ja! SkateSpots är en PWA (Progressive Web App). Besök", + faq5Mid: "i telefonens webbläsare och tryck på", + faq5Em: "\"Lägg till på hemskärmen\"", + faq5After: "för en full appupplevelse. Eller ladda ner den från", + faq5End: "— en decentraliserad appbutik.", + faq6Q: "Vad är en Zap?", + faq6A: "En Zap är ett omedelbart Bitcoin-tips som skickas över Lightning Network. När du Zappar en skejtare landar satsen i deras plånbok inom sekunder — ingen PayPal, ingen Venmo, ingen avgift. Personen som filmade den där 4-trappan får betalt direkt av fansen.", + faq7Q: "Raderas mina spots om SkateSpots stängs ner?", + faq7A: "Nej. Dina spots publiceras till Nostr-Relays — distribuerade servrar som vem som helst kan köra. Även om SkateSpots som produkt försvann imorgon skulle din data fortfarande finnas på Relays och vilken Nostr-klient som helst skulle kunna visa den.", + faq8Q: "Kan jag lägga till en spot på privat mark?", + faq8A: "Det kan du, men använd sunt förnuft. Spots på privat mark bör markeras därefter så att skejtare känner till läget. SkateSpots ansvarar inte för intrång — var alltid respektfull mot ägare och lokala.", + faq9Q: "Hur rapporterar jag en bugg eller ger feedback?", + faq9Before: "DMA SkateSpots-teamet direkt på Nostr, eller hör av dig till vår beta-koordinator:", + faq9Link: "Beta-feedback → cordn.net", + readyToShred: "REDO ATT SHREDA?", + stopScrolling: "Sluta scrolla. Skaffa appen. Hitta en spot. Skejta den.", + exploreSpots: "Utforska spots", + betaFeedbackTitle: "Beta — Vi vill ha din feedback", + betaFeedbackDesc: "SkateSpots är under aktiv utveckling. Du kan stöta på skrovliga kanter — det är vårt fel, inte ditt. Rapportera buggar, föreslå funktioner, berätta vad som suger.", + betaCoordinator: "Beta-koordinator", + betaCoordinatorDesc: "cordn.net → meddela oss", + dmOnNostr: "DM på Nostr", + fixSameDay: "Hittade du en bugg? Vi fixar den samma dag. Dina rapporter gör appen bättre för varje skejtare.", + relaySetup: "Relay-inställning" + }, + relayEdu: { + understandingNostr: "Förstå Nostr", + stepOf: "Steg {{current}} av {{total}}", + step1Title: "Förstå Relays", + step1Desc: "Tänk på Relays som skejtbutiker som delar nyheter om spots", + you: "Du", + relays: "Relays", + skaters: "Skejtare", + s1Good1: "Inget företag äger ditt konto", + s1Good1Desc: "Din identitet finns på flera Relayservrar", + s1Good2: "Du styr var din data finns", + s1Good2Desc: "Dina inlägg synkas mellan Relays du väljer — välj dina egna eller kör en själv", + s1Warn: "Relayoperatörer kan se publika inlägg", + s1WarnDesc: "Tänk på det som att sätta upp en lapp på en anslagstavla", + step2Title: "Publikt vs privat", + step2Desc: "Vet vad som är synligt och vad som är krypterat", + publicTitle: "Publikt (alla kan se)", + pub1: "Spots du lägger till på kartan", + pub2: "Recensioner och kommentarer", + pub3: "Din profilinformation (namn, bild)", + pub4: "Vilka du följer", + privateTitle: "Privat (krypterat)", + priv1: "Direktmeddelanden", + priv2: "Plånbokskommunikation", + noteStrong: "Notera:", + note: "Inlägg kan lagras permanent på Relays. Tänk innan du postar - precis som i verkliga livet!", + step3Title: "Dina nycklar = ditt konto", + step3Desc: "Detta är det viktigaste att förstå", + secretKeyTitle: "Din hemliga nyckel (nsec)", + secretKeyDesc: "Tänk på den som din skateboard - låna aldrig ut den till någon. Den bevisar att du äger ditt konto.", + s3Bad1: "Om den tappas kan ditt konto inte återställas", + s3Bad2: "Inget \"glömt lösenord\" - ingen kan återställa det", + s3Good: "Säkerhetskopiera den och förvara den säkert", + publicKeyTitle: "Din publika nyckel (npub)", + publicKeyDesc: "Detta är som ditt användarnamn - dela det fritt så att andra kan hitta dig!", + inControl: "🔐 Du har kontrollen - inget företag kan låsa ute dig!", + skip: "Hoppa över", + gotIt: "Uppfattat!" + }, + about: { + seoTitle: "Om - SkateSpots", + seoDescription: "Lär dig om SkateSpots och vårt uppdrag att bygga en decentraliserad skejtcommunity.", + npubCopied: "npub kopierad till urklipp. Klistra in den i din favorit-Nostr-klient för att skicka ett DM.", + bugReport: "🐛 Buggrapport", + bugWhatHappened: "Vad hände:", + bugExpected: "Vad jag förväntade mig:", + bugSteps: "Steg för att återskapa:", + aboutWord: "OM", + heroBefore: "Få kontakt med lokala skejtscener världen över.", + skaterOwned: "Skejtarägd data", + heroAfter: ", community-drivna Relays.", + viewStats: "Visa community-statistik", + missionTitle: "Vårt uppdrag", + mission1: "SkateSpots hjälper skejtare att upptäcka spots, få kontakt med proffs på The Lab och organisera sessioner - allt utan företagskontroll. Den riktiga skejtningen sker offline, detta verktyg kopplar dig bara till den.", + mission2: "Skejtkunskap bör leva med communityn, inte vara inlåst i företagsappar. Därför körs SkateSpots på Nostr - ett Relaybaserat system där skejtare styr sin egen data, väljer vilka Relays som lagrar den och till och med kan köra sina egna. Inget enskilt företag äger kartan.", + whyNostr: "Varför Nostr?", + why1Title: "Community-kontrollerat", + why1Desc: "Dina spots finns på community-Relays. Skejtare kör servrarna, inte företag.", + why2Title: "Du äger din data", + why2Desc: "Din Nostr-identitet är din. Ta den till vilken Nostr-app som helst - ingen inlåsning.", + why3Title: "Bitcoin-integration", + why3Desc: "Zappa skapare direkt med Bitcoin. Ingen plattform som tar 30%.", + why4Title: "Öppen källkod", + why4Desc: "Byggt öppet. Vem som helst kan bidra eller forka koden.", + getInvolved: "Engagera dig", + getInvolvedDesc: "SkateSpots är öppen källkod och community-drivet. Bidra med kod, dela spots eller hjälp andra komma igång.", + betaTitle: "Betatestning", + betaDesc: "Kära användare! Tack för att du betatestar SkateSpots. Observera att appen fortfarande är i beta och att det kan finnas buggar eller säkerhetsproblem. Om du stöter på problem eller vill rapportera en bugg/ett problem, hör av dig!", + giveFeedback: "Ge oss feedback:", + copyNpub: "Kopiera npub", + reportBug: "Rapportera bugg", + viewProfile: "Visa profil", + downloadApp: "Ladda ner appen", + downloadAppDesc: "Installera SkateSpots på Android via Zapstore — den öppna, Bitcoin-native appbutiken.", + getOnZapstore: "Skaffa på Zapstore", + credits: "Medverkande", + creditPoweredBy: "Drivs av", + creditNostr: "Decentraliserat protokoll", + creditCrewChat: "Crew-chatt via", + creditCordn: "Ände-till-ände-krypterad gruppchatt", + creditEcash: "Ecash via", + creditCashu: "Chaumian ecash för Lightning", + creditWalletConnect: "Plånboksanslutning via", + creditNwc: "Nostr Wallet Connect (NIP-47)", + creditSigning: "Signering på Android med", + creditAmber: "Nostr-signerare för Android", + creditMapData: "Bitcoin-kartdata från", + creditBtcmap: "Platser som accepterar Bitcoin", + creditCrowdfunding: "Crowdfunding", + creditAngor: "Decentraliserad Bitcoin-crowdfunding", + creditDistributed: "Distribueras på", + creditZapstore: "Appbutik med öppen källkod", + creditTrust: "Förtroende & Crew-chatt via", + creditContextvm: "Relatr-förtroendepoäng & krypterad Crew-chattkoordinering", + stillQuestions: "Har du fortfarande frågor?", + stillQuestionsDesc: "Sasquatchen är vår AI-guide — driven av livedata från SkateSpots. Fråga honom om spots, evenemang, coacher, Gear eller hur något fungerar.", + askSasquatch: "Fråga Sasquatchen", + poweredBy: "Drivs av", + decentralized: "Decentraliserat", + communityOwned: "Community-ägt" + }, + faq: { + seoTitle: "FAQ - SkateSpots", + seoDescription: "Fråga Sasquatchen vad som helst om SkateSpots.", + greeting: "Hej! Jag är Sasquatchen 🦧 — fråga mig vad som helst om SkateSpots. Spots, evenemang, Gear, plånböcker, integritet, Nostr — jag har koll. Vad vill du veta?", + gotQuestions: "Har du frågor?", + heroDesc: "Fråga Sasquatchen — han vet allt om SkateSpots, Nostr, Bitcoin och skejtning.", + askTitle: "Fråga Sasquatchen", + askDesc: "Sasquatchen är öppen i nedre vänstra hörnet av skärmen — klicka bara på den och skriv din fråga. Han har liveåtkomst till spots, evenemang, coacher och väder.", + askQuestion: "Vad kan du hjälpa mig med på SkateSpots?", + openSasquatch: "Öppna Sasquatchen", + commonQuestions: "Vanliga frågor — tryck för att fråga", + quickAnswers: "Snabba svar", + footerHint: "Sasquatchen använder livedata från Nostr via SkateSpots-Relayn + AI för att svara på dina frågor. 🛹", + chip1Label: "Vad är SkateSpots?", + chip1Q: "Vad är SkateSpots och hur fungerar det?", + chip2Label: "Hur lägger jag till en spot?", + chip2Q: "Hur lägger jag till en skate spot på kartan?", + chip3Label: "Vad är Zaps?", + chip3Q: "Vad är Zaps?", + chip4Label: "Är det gratis?", + chip4Q: "Är SkateSpots gratis att använda?", + chip5Label: "Vad är Min Stash?", + chip5Q: "Vad är Min Stash?", + chip6Label: "Hur loggar jag in?", + chip6Q: "Hur loggar jag in eller skapar ett konto?", + chip7Label: "Vad är Nostr?", + chip7Q: "Vad är Nostr?", + chip8Label: "Integritet & data", + chip8Q: "Vilken data är publik och vilken är privat på SkateSpots?", + chip9Label: "Hur säljer jag Gear?", + chip9Q: "Hur säljer jag Gear på SkateSpots?", + chip10Label: "Vad är The Lab?", + chip10Q: "Vad är The Lab?", + fact1Label: "Skate spots världen över", + fact1Value: "Upptäck & lägg till", + fact2Label: "Bitcoin Lightning-Zaps", + fact2Value: "100% gratis", + fact3Label: "Decentraliserat på Nostr", + fact3Value: "Du äger din data", + fact4Label: "Privat Gear-inventering", + fact4Value: "Krypterad Stash", + s1Q: "Vad är SkateSpots?", + s1A: "En decentraliserad karta och community för skejtning, byggd på Nostr. Upptäck spots, hitta coacher och filmare, gå med i Crews, lista evenemang och köp/sälj Gear — utan något företag i mitten.", + s2Q: "Hur lägger jag till en spot?", + s2A: "Tryck på kartan, eller använd + / \"Lägg till spot\"-knappen, släpp sedan en nål och fyll i detaljerna. Du behöver ett gratis Nostr-konto (tryck Logga in → Skapa konto — ingen e-post krävs).", + s3Q: "Vad är Zaps?", + s3A: "Zaps är Bitcoin Lightning-tips. Du kan Zappa spots, evenemang, Crews och personer du uppskattar. De går direkt till mottagaren över Lightning — SkateSpots håller aldrig dina medel.", + s4Q: "Är det gratis?", + s4A: "Ja. Att skapa ett konto, lägga till spots och bläddra är gratis. Valfria betaltillägg (som utvalda annonser) och tips (Zaps) betalas direkt mellan personer.", + s5Q: "Vilken data är publik?", + s5A: "Allt du publicerar — spots, evenemang, din profil — är publikt på Nostr-Relays. Dina privata meddelanden och din Stash är ände-till-ände-krypterade. Se integritetssidan för detaljer.", + s6Q: "Vad är The Lab?", + s6A: "The Lab är där du hittar personer att anlita eller lära av: coacher, tränare, filmare, videoredigerare, fotografer, byggare, konstnärer och mer." + }, + privacy: { + seoTitle: "Integritet — SkateSpots", + seoDescription: "Hur SkateSpots hanterar din data: din GPS stannar på din enhet, spots du publicerar är offentliga, och hur du döljer din IP med en VPN eller Tor om du vill.", + heroBefore: "Din", + heroHighlight: "Integritet", + heroDesc: "Ingen spårning, inga annonser, ingen försäljning av data. Här är exakt vad som stannar på din enhet, vad som är offentligt och hur du låser ner saker ytterligare om du vill.", + locationTitle: "Din plats stannar på din enhet", + locationBefore: "När du trycker på", + nearMe: "\"Nära mig,\"", + locationAfter: "läses din GPS-plats på din enhet och används bara för att centrera kartan och sortera närliggande spots.", + locationGood1: "Den publiceras aldrig till Nostr.", + locationGood2: "Den skickas aldrig till SkateSpots — det finns ingen SkateSpots-server som samlar in den.", + locationGood3: "Den delas aldrig med någon tredje part.", + locationGood4: "I den inbyggda appen använder vi telefonens eget platsystem direkt och hoppar över Google Play Services — så det fungerar på de-Googlade telefoner (GrapheneOS, /e/OS) och Google ser den aldrig.", + weatherBefore: "Väder är avstängt som standard. När du slår på det slår det upp förhållanden för", + weatherEm: "spotens", + weatherAfter: "offentliga plats — inte din.", + publicTitle: "Vad som är offentligt enligt design", + publicDesc: "SkateSpots är en delad karta, så vissa saker är menade att ses av alla. När du väljer att publicera dem är dessa offentliga på Nostr-nätverket:", + public1Strong: "Spots du lägger till", + public1: "— inklusive deras koordinater. Om du lägger till en spot på din exakta plats blir den platsen offentlig. Tänk innan du släpper en nål på din egen uppfart.", + public2Strong: "Recensioner, kommentarer och din offentliga profil", + public2: "(namn, bild).", + public3: "Vilka du följer, och offentliga reaktioner.", + public4Strong: "Zaps", + public4: "är offentliga som standard: en Zap kopplar ditt konto — ofta din Lightning-adress — till inlägget du betalade och till själva tipset. Din plånbok kan skicka den anonymt om du hellre vill det.", + publicNoteBefore: "En VPN eller Tor", + notWord: "döljer", + publicNoteAfter: "inte innehållet i det du publicerar — en spots koordinater är offentliga oavsett. Integritetsverktyg döljer din nätverksidentitet (din IP), inte det du väljer att posta.", + encryptedTitle: "Vad som är privat & krypterat", + enc1Strong: "Direktmeddelanden", + enc1Mid: "och", + enc1Strong2: "Crew-chattar", + enc1: "är ände-till-ände-krypterade (NIP-17). Bara deltagarna kan läsa dem.", + enc2Strong: "Min Stash", + enc2: "— din privata Gear-inventering — är krypterad till din egen nyckel.", + enc3Strong: "Endast Crew-medlemmar", + enc3: "kan välja att vara synliga bara för sina Crew-kamrater.", + ipTitle: "Vad som lämnar din enhet: din IP", + ipBefore: "Som varje webbplats kan servrarna SkateSpots pratar med se din", + ipAddress: "IP-adress", + ipAfter: "(en grov indikator på din region). Detta är normalt för alla webb- eller kartappar och är inte unikt för oss. Dessa servrar är:", + ipTileStrong: "Kartrutor", + ipTile: "(OpenStreetMap) — ser din IP och vilket område av kartan du tittar på.", + ipGeoStrong: "Spot-/Shop-geokodning", + ipGeo: "— när du skapar eller redigerar en spot eller Shop skickas dess koordinater till OpenStreetMap Nominatim för att fylla i stad-/landstagg. När du öppnar Community Stats skickas koordinaterna för pins som saknar platsstagg till BigDataCloud så att de kan grupperas efter region (cachas på din enhet — högst en gång per pin). Båda ser din IP. Dessa är pinnen du placerade / offentliga pinkoordinater, aldrig enhetens live-GPS.", + ipPushStrong: "Bakgrundsaviseringar", + ipPush: "(opt-in) — om du aktiverar dem ser en SkateSpots-pushserver att din nyckel tog emot något och när (aldrig vem som skickade det eller vad det står — meddelanden förblir krypterade), och ditt OS-pushsystem (Google/Mozilla/Apple) levererar aviseringen.", + ipBtcStrong: "Bitcoin-platser", + ipBtc: "(BTCMap, när du slår på det lagret) — ser din IP och området du visar.", + ipRelayStrong: "Nostr-Relays", + ipRelay: "— ser din IP när appen läser eller publicerar.", + ipMintStrong: "Cashu-mints", + ipMint: "— ser din IP när din plånbok skickar, tar emot eller löser in.", + ipRouteStrong: "Vägbeskrivningar", + ipRoute: "(OSRM och Transitous för kollektivtrafik) — tar emot start och slut för varje rutt du begär, inte bara din IP. Routing stannar i appen: din start och destination lämnas aldrig över till Google eller Apple Maps.", + ipWeatherStrong: "Väder", + ipWeatherMid: "(Open-Meteo, opt-in) och", + ipUploadStrong: "bilduppladdningar", + ipWeather: "(Blossom), när du använder dem.", + ipAiStrong: "Sasquatch AI", + ipAi: "— ditt meddelande går till vår egen server och sedan till modellleverantören.", + ipLink1: "Eftersom du skickar din publika nyckel (npub) på samma anslutning kan en Relay koppla din IP till dig — inte bara \"någon anslöt\", utan \"den här personen, från den här adressen\".", + ipShieldBefore: "En sak skyddar vi:", + ipMintsStrong: "mints-katalogen", + ipShieldAfter: "hämtas via vår server, så MintRadar ser aldrig din IP.", + vpnTitle: "Vill du ha mer integritet? VPN eller Tor (valfritt)", + vpnDesc: "För de flesta skejtare är detta inte nödvändigt — men om du vill dölja din IP och ungefärliga plats från servrarna ovan har du två gratisalternativ:", + vpnReputable: "🛡️ En pålitlig VPN", + vpnReputableDesc: "Döljer din IP bakom VPN:ens servrar. Enkelt och snabbt. Använd en du betalar för och litar på; gratis-VPN:er tjänar oftast pengar på din trafik, så behandla \"gratis\" som en varningssignal.", + torBrowser: "🧅 Tor Browser", + torDesc: "Gratis, maximal IP-integritet, dirigerar genom flera Relays. Långsammare — kartor och vissa Nostr-Relays kan lagga eller blockera Tor-exitnoder. Bra för extra försiktiga.", + readThis: "Läs detta så att du inte blir lurad", + caveat1Before: "En VPN/Tor döljer din", + ipWord: "IP", + caveat1: "— inte spotsen du publicerar. En pin vid ditt hem är offentlig oavsett om du använder VPN.", + caveat2Before: "Aktivera inte", + nearMeGps: "\"Nära mig\" / webbläsar-GPS", + caveat2: "om ditt mål är att vara anonym — exakt GPS åsidosätter all IP-döljning.", + caveat3: "Inget verktyg gör dig helt \"anonym\". Dessa minskar vad servrar kan sluta sig till om din nätverksplats — det är allt.", + keysTitle: "Dina nycklar, ditt konto", + keysBefore: "Ditt konto är ett kryptografiskt nyckelpar som du äger. Det säkraste sättet att logga in är en", + signer: "signerare", + keysAfter: "(Alby, nos2x eller Amber på Android) så att din hemliga nyckel aldrig klistras in i appen.", + keysCaveatBefore: "Om du klistrar in din", + keysCaveatAfter: "direkt lagras den i din webbläsare. Använd ett signerartillägg istället när du kan, och förvara din nsec-backup någonstans säkert offline.", + footerBefore: "Frågor? Fråga", + sasquatchName: "Sasquatchen", + footerMid: "i appen, eller läs", + gettingStarted: "guiden för att komma igång", + about: "Om" + }, + license: { + seoTitle: "Licens - SkateSpots", + seoDescription: "SkateSpots-licens. Du är fri att skejta.", + tagline: "Skejta, tjäna, ha kul och spendera sats var du än är.", + copyright: "SkateSpots-bidragsgivare & communityn", + licenseLabel: "Licens", + freeLine1: "DU ÄR FRI", + freeLine2: "ATT SKEJTA", + body: "Detta projekt är öppet. Dela det, forka det, bygg vidare på det, skejta det. Gatorna tillhör alla. Det gör den här koden också. Fortsätt skejta, ha kul, lär dig tricks, stötta byggarna och fortsätt skejta igen.", + builtBefore: "Byggt med ❤️ på", + builtMid: "· Drivs av", + lightning: "Bitcoin Lightning ⚡", + viewSource: "Visa källkod", + aboutSkateSpots: "Om SkateSpots", + supporters: "Supportrar" + }, + glossary: { + seoTitle: "Trick-ordlista · SkateSpots", + seoDescription: "Den kompletta skejtordlistan — {{count}} poster som täcker flips, grinds, slides, grabs, airs, lip tricks, handplants, freestyle, transition-termer, stance & hårdvara, med alternativa namn.", + heading: "TRICK-ORDLISTA", + subheading: "{{count}} poster · tricks, transition, freestyle, stance & hårdvara", + searchPlaceholder: "Sök tricks eller smeknamn — tre flip, crooks, method…", + clearSearch: "Rensa sökning", + all: "Alla", + results: "{{count}} resultat{{s}} för", + noMatch: "Inga tricks matchar det. Prova ett smeknamn som \"tre flip\", \"crooks\" eller \"melon\".", + tricksCount: "{{count}} tricks", + footerBefore: "Kan du ett trick eller smeknamn vi missat? Tricks får olika namn i varje scen — hör av dig till", + sasquatch: "Sasquatchen 🦧", + footerAfter: "och berätta." + }, + signers: { + seoTitle: "Signerarappar - Säkra dina Nostr-nycklar | SkateSpots", + seoDescription: "Lär dig om signerarappar som håller dina Nostr-nycklar säkra. Hitta det bästa alternativet för Android, iOS eller datorwebbläsare.", + securityGuide: "Säkerhetsguide", + protect: "Skydda dina", + nostrKeys: "Nostr-nycklar", + heroDesc: "Signerarappar håller dina privata nycklar säkra genom att signera händelser utan att avslöja dem. Istället för att klistra in din nyckel i varje app, låt en signerare hantera det säkert.", + whySignerStrong: "Varför använda en signerare?", + whySigner: "Din privata Nostr-nyckel är som ett lösenord som aldrig kan ändras. En signerarapp håller den säker samtidigt som du kan använda vilken Nostr-app som helst.", + androidTitle: "Android-signerare", + androidDesc: "Inbyggda signerarappar för Android-enheter, inklusive GrapheneOS.", + iosTitle: "iOS-signerare", + iosDesc: "Signeraralternativ för iPhone- och iPad-användare.", + browserTitle: "Webbläsartillägg", + browserDesc: "Webbläsartillägg för dator för signering i webbappar.", + recommended: "Rekommenderas", + yourPlatform: "Din plattform", + get: "Skaffa {{name}}", + protocolsTitle: "Förstå protokoll", + nip07Desc: "Standard för webbläsartillägg. Tillägget injicerar signeringsfunktioner i webbappar. Används av Alby, nos2x, Flamingo och liknande tillägg.", + nip46Desc: "Protokoll för fjärrsignering (\"bunker\"). Din signerarapp godkänner förfrågningar från andra appar utan att dela dina nycklar. Används av Nsec.app, Nostria och Nowser.", + nip55Desc: "Android-specifikt signerarprotokoll. Inbyggda appar kan begära signaturer från Amber utan att avslöja nycklar. Den mest sömlösa Android-upplevelsen.", + whichChoose: "Vilken ska du välja?", + chooseAndroid: "Android:", + chooseAndroidDesc: "Amber (NIP-55) för inbyggda appar", + chooseIos: "iOS:", + chooseIosDesc: "Nsec.app (NIP-46) för bästa kompatibilitet", + chooseDesktop: "Dator:", + chooseDesktopDesc: "Alby, nos2x eller Flamingo (NIP-07)", + amberDesc: "Inbyggd Android-signerare med fokus på säkerhet och enkelhet. Det bästa valet för Android-användare.", + nsecAppDesc: "Plattformsoberoende fjärrsignerare som fungerar som ett säkert valv för dina nycklar.", + nostriaDesc: "Fjärrsignerarapp med nycklar lagrade i säker enhetslagring.", + nowserDesc: "Flerautentiserad signerare som stöder både webbläsartillägg och protokoll för fjärrsignering.", + nsecAppIosDesc: "Det bästa alternativet för iOS. Använd den som fjärrsignerare med vilken Nostr-klient som helst.", + nowserTfDesc: "iOS-signerare tillgänglig via TestFlight med signeringsfunktioner liknande Android.", + nostriaIosDesc: "Fjärrsignerare med säker nyckellagring på din enhet.", + nos2xDesc: "Enkelt och pålitligt webbläsartillägg för signering av Nostr-händelser.", + albyDesc: "Bitcoin Lightning-plånbok med inbyggd hantering av Nostr-nycklar och WebLN.", + flamingoDesc: "Nostr-fokuserat webbläsartillägg med rent gränssnitt.", + kiwiDesc: "På Android/GrapheneOS, använd Kiwi Browser för att ladda nos2x- eller Alby-tillägg.", + fNativeApp: "Inbyggd app", + fMultiKey: "Stöd för flera nycklar", + fEventSigning: "Händelsesignering", + fSecureStorage: "Säker nyckellagring", + fRemoteSigning: "Fjärrsignering", + fAnyClient: "Fungerar med vilken klient som helst", + fCrossDevice: "Synk mellan enheter", + fMultiKeySupport: "Stöd för flera nycklar", + fNip07: "NIP-07-stöd", + fNip46: "NIP-46-stöd", + fFlexibleSigning: "Flexibel signering", + fNativeIos: "Inbyggd iOS-app", + fLightweight: "Lättviktig", + fEasyToUse: "Lätt att använda", + fChromeSupport: "Stöd för Chrome/Brave/Edge", + fLightningPayments: "Lightning-betalningar", + fNostrSigning: "Nostr-signering", + fWebln: "WebLN-stöd", + fNwc: "NWC-stöd", + fCleanUi: "Rent gränssnitt", + fPrivacyFocused: "Integritetsfokuserad", + fExtensionMobile: "Tilläggsstöd på mobil", + fFullBrowser: "Full webbläsarupplevelse", + fGraphene: "Fungerar på GrapheneOS" + }, + betaDisclaimer: { + title: "Observera — detta är beta", + subtitle: "Några ord innan du droppar in.", + ossTitle: "Öppen källkod & experimentell", + ossBody: "Byggt öppet av communityn. Rot runt, forka det, förstör det.", + betaTitle: "I beta — inte granskat", + betaBody: "Koden har ännu inte genomgått en formell säkerhetsgranskning. Buggar händer.", + moneyTitle: "Hanterar riktiga Bitcoin & Lightning", + moneyBody: "Använd pengar på egen risk. Ladda bara det du har råd att förlora.", + finePrint: "Ingen garanti av något slag. Du är ensam ansvarig för dina egna medel och nycklar.", + viewCode: "Visa koden", + accept: "Uppfattat, släpp in mig" + } + } +}; export default svBatch3; diff --git a/src/i18n/sv/batch4.ts b/src/i18n/sv/batch4.ts index 2e7df49..8ea3056 100644 --- a/src/i18n/sv/batch4.ts +++ b/src/i18n/sv/batch4.ts @@ -1,4 +1,1115 @@ -/** sv — batch 4. Filled by the translation pass; empty until then. */ -const svBatch4 = {}; +/** sv — batch 4. Swedish translation of the `walletUi` namespace. */ +const svBatch4 = { + walletUi: { + page: { + title: "Plånbok", + subtitle: "Bitcoin Lightning + Cashu", + manage: "Hantera", + getAWallet: "Skaffa en plånbok", + learnPlanB: "Läs mer på Plan B Academy", + walletMinibits: "Mobil Cashu · NWC", + walletAlby: "Webbläsartillägg · WebLN + NWC", + walletZeus: "Självförvarande Lightning", + walletCoinos: "Webbaserad · fungerar överallt", + whatAreZaps: "Vad är Zaps?", + whatAreZapsShort: "Vad är zaps?", + zapsDesc: "Omedelbara Bitcoin Lightning-betalningar. Skicka sats till vilken skatare, spot-skapare eller coach som helst – ingen mellanhand, inget plattformsavdrag.", + instant: "Omedelbar", + instantDesc: "Görs upp på sekunder", + flexible: "Flexibel", + flexibleDesc: "Din plånbok, dina nycklar", + private: "Privat", + privateDesc: "Cashu döljer vem som betalar", + direct: "Direkt", + directDesc: "Värdet går till skaparen", + loginRequired: "Inloggning krävs", + loginRequiredDesc: "Logga in med ditt Nostr-konto för att ansluta din Lightning-plånbok och börja zappa.", + browseMints: "Bläddra bland Cashu-mints" + }, + modal: { + walletName: "Plånboksnamn (valfritt)", + walletNamePlaceholder: "Min Lightning-plånbok", + connectionUri: "Anslutnings-URI", + spendLimitTitle: "Ange först en utgiftsgräns", + spendLimitBody1: "Den här strängen låter SkateSpots betala Lightning-fakturor från din plånbok. I din plånboksapp ger du den här anslutningen en liten", + dailyBudget: "daglig budget", + spendLimitBody2: "(t.ex. några tusen sats) och aktiverar endast", + spendLimitBody3: "Klistra aldrig in en anslutning med obegränsad budget. Du kan återkalla den i din plånbok när som helst.", + addWallet: "Lägg till plånbok", + nwcConnection: "NWC-anslutning", + lightningWallet: "Lightning-plånbok", + pasteNwc: "Klistra in din NWC-anslutningssträng för att skicka zaps", + connectWallet: "Anslut plånbok", + browserExtension: "Webbläsartillägg (WebLN)", + autoDetected: "Identifieras automatiskt om det är installerat", + ready: "Redo", + notFound: "Hittades inte", + getNwcFrom: "Skaffa NWC från:", + connectionRequired: "Anslutnings-URI krävs", + connectionRequiredDesc: "Ange en giltig NWC-anslutnings-URI.", + activeChanged: "Aktiv plånbok ändrad", + activeChangedDesc: "Den valda plånboken är nu aktiv för zaps.", + connectNwc: "Anslut NWC-plånbok", + connectNwcDesc: "Ange din anslutningssträng från en kompatibel plånbok.", + connect: "Anslut", + connecting: "Ansluter...", + walletSettings: "Plånboksinställningar", + connectDesc: "Anslut din Lightning-plånbok för att skicka zaps direkt." + }, + cashu: { + title: "Cashu-plånbok", + desc: "Inbyggd ecash-plånbok – ingen extern konfiguration krävs", + initializing: "Initierar plånboken...", + walletError: "Plånboksfel", + balance: "Saldo", + balanceAria: "Plånbokssaldo {{amount}} sats", + activeMint: "Aktiv mint", + selectMint: "Välj en mint", + receive: "Ta emot", + send: "Skicka", + receiveViaLightning: "⚡ Ta emot via Lightning", + amountSats: "Belopp i sats", + generateInvoice: "Skapa faktura", + generating: "Skapar…", + or: "Eller", + receiveCashu: "🥜 Ta emot Cashu-token", + scanQr: "Skanna QR", + pasteCashu: "Klistra in Cashu-token (cashu...)", + receiveToken: "Ta emot token", + receiving: "Tar emot…", + createCashu: "🥜 Skapa Cashu-token", + createToken: "Skapa token", + creating: "Skapar…", + payInvoice: "⚡ Betala Lightning-faktura", + pasteInvoice: "Klistra in Lightning-faktura (lnbc...)", + payInvoiceBtn: "Betala faktura", + processing: "Bearbetar...", + payAddress: "📧 Betala Lightning Address", + sendToAddress: "Skicka till adress", + sending: "Skickar…", + recentActivity: "Senaste aktivitet", + receivedLightning: "Tog emot ⚡ Lightning", + sentLightning: "Skickade ⚡ Lightning", + sentToken: "Skickade 🥜 token", + receivedToken: "Tog emot 🥜 token", + whatIsCashu: "Vad är Cashu?", + whatIsCashuDesc: "Cashu är digitala kontanter som backas av Bitcoin Lightning. Tänk på det som Bitcoin-token du håller i din webbläsare.", + benefitOffline: "Fungerar offline på skate-spots", + benefitInstant: "Omedelbara betalningar mellan personer", + benefitPrivacy: "Integritetsfokuserat (mints kan inte spåra dig)", + benefitRedeemable: "Alltid inlösbara mot Lightning-sats", + findMints: "Hitta mints på mintradar.pedani.eu", + backupTitle: "Säkerhetskopiera din plånbok", + backupDesc: "Din plånbok skyddas med en återställningsfras på 12 ord. Spara den säkert – du behöver den för att återställa ditt saldo om du rensar webbläsardata.", + viewRecovery: "Visa återställningsfras", + backupNote: "Det här är som din Nostr-nsec – håll den hemlig och säkerhetskopierad!", + tokenReceived: "Token mottagen", + tokenReceivedDesc: "Cashu-token löstes in!", + receiveFailed: "Mottagandet misslyckades", + unknownError: "Okänt fel", + requestUnsupported: "Cashu-begäran stöds inte ännu", + requestUnsupportedDesc: "Den här plånboken kan inte betala en Cashu-begäran (creq) ännu – be om en Lightning-faktura eller adress i stället.", + onchainUnsupported: "On-chain stöds inte här", + onchainUnsupportedDesc: "Det där är en Bitcoin-adress. Den här plånboken skickar bara Cashu-token och Lightning-betalningar.", + nostrProfile: "Det där är en Nostr-profil", + nostrProfileDesc: "Skanna en Cashu-token, Lightning-faktura eller Lightning-adress för att betala.", + clinkUnsupported: "Betalningskod stöds inte ännu", + clinkUnsupportedDesc: "Den här plånboken kan inte betala CLINK-koder ännu. Använd en Lightning-faktura eller adress i stället.", + unrecognizedQr: "Okänd QR-kod", + unrecognizedQrDesc: "Skanna en Cashu-token, Lightning-faktura eller Lightning-adress.", + invalidAmount: "Ogiltigt belopp", + invalidAmountDesc: "Ange ett giltigt belopp", + paymentSent: "Betalning skickad", + paymentSentDesc: "Skickade {{amount}} sats till {{address}}", + paymentFailed: "Betalningen misslyckades", + copied: "Kopierat", + copiedDesc: "{{label}} kopierades till urklipp", + receiveSats: "Ta emot {{amount}} sats", + payInvoiceHint: "Betala den här fakturan från valfri Lightning-plånbok", + invoiceQrAlt: "QR-kod för faktura", + lightningInvoice: "Lightning-faktura", + invoiceLabel: "Faktura", + waiting: "⏳ Väntar på betalning...", + tokenReady: "Token redo att skickas", + shareToken: "Dela den här token med mottagaren", + tokenQrAlt: "QR-kod för token", + cashuToken: "Cashu-token", + tokenLabel: "Token", + copyToken: "Kopiera token", + tokenWarning: "Vem som helst med den här token kan lösa in den – behandla den som kontanter!", + browser: { + title: "Inbyggd ecash-plånbok", + appOnly: "Endast i appen", + desc: "Självförvarande Cashu-ecash, driven av Bitcoin Lightning", + unlockTitle: "Lås upp hela plånboken i SkateSpots-appen", + unlockDesc: "Den inbyggda ecash-plånboken låter dig mynta, skicka och lösa in Cashu-token direkt på spoten. Den finns i den inbyggda appen, där den kan prata direkt med mints – webbläsare sandboxar dessa anslutningar för din säkerhet.", + zapTipTitle: "Zappa & tippsa – fungerar i din webbläsare nu", + zapTipDesc: "Att skicka sats till spots, event, coacher och crews fungerar direkt här. Anslut bara en Lightning-plånbok nedan – Nostr Wallet Connect eller ett webbläsartillägg som Alby. Ingen Cashu-mint behövs." + } + }, + escrow: { + title: "Escrow", + desc: "Sälj tryggt: aktivera escrow och en köpare kan låsa sina sats till dig för en affär. Du frigör dem när du levererar – om du inte gör det kan köparen återta dem efter den avtalade tiden.", + active: "Escrow är på", + publish: "Aktivera escrow", + published: "Escrow är på", + publishedDesc: "Köpare kan nu låsa medel till dig för en affär.", + failed: "Kunde inte aktivera escrow" + }, + escrowSettings: { + title: "Escrow-inställningar", + desc: "Standardvärden för Cashu-escrow-affärer. Enhetslokalt.", + lockWindow: "Standard för låsningsfönster", + lockWindowHint: "Hur länge medel förblir låsta innan köparen kan återta dem. Längre är säkrare för säljaren.", + days: "dagar", + preferredMint: "Mint för escrow", + activeMint: "Aktiv mint", + preferredMintHint: "Vilken mint som finansierar escrow. Använd en pålitlig.", + requireListings: "Kräv escrow på nya annonser", + requireListingsHint: "Förväljer “Kräv escrow” när du annonserar en vara." + }, + privacy: { + title: "Integritetstips", + subtitle: "Lär dig skydda din ekonomiska integritet", + cashuRecommended: "CASHU (REKOMMENDERAS)", + anon: "Anonyma transaktioner", + blind: "Blinda signaturer döljer aktivitet", + noIp: "Ingen IP-exponering", + trustMint: "Lita på mint med medel", + lightningAddress: "LIGHTNING ADDRESS", + linked: "Kan kopplas till identitet", + traceable: "Betalningshistorik spårbar", + ipVisible: "IP synlig vid fakturering", + selfCustody: "Självförvar möjligt", + bestPractices: "Bästa praxis", + tip1Title: "Använd Cashu för att ta emot dricks", + tip1Desc: "Den inbyggda Cashu-plånboken är det mest privata sättet att ta emot zaps", + tip2Title: "Använd en separat plånbok för SkateSpots", + tip2Desc: "Använd inte din huvudsakliga sparningsplånbok – håll appens medel separata", + tip3Title: "Överväg att använda VPN eller Tor", + tip3Desc: "Döljer din IP-adress när du gör transaktioner", + tip4Title: "Undvik identitetskopplade Lightning-adresser", + tip4Desc: "Använd pseudonyma adresser som inte är kopplade till ditt riktiga namn", + proTip: "Proffstips:", + proTipDesc: "Ta emot betalningar till din Cashu-plånbok först och flytta sedan med jämna mellanrum större belopp till din personliga plånbok med hjälp av VPN för överföringen.", + warnTitle: "Integritetsnotis", + warnDesc: "Lightning-adresser kan potentiellt koppla din SkateSpots-aktivitet till din riktiga identitet.", + betterPrivacy: "För bättre integritet:", + bullet1: "Använd en dedikerad plånbok för den här appen", + bullet2: "Överväg att använda Cashu-plånboken i stället", + bullet3: "Använd VPN/Tor för transaktioner", + useCashu: "Använd Cashu i stället", + understand: "Jag förstår" + }, + mintPrivacy: { + title: "Mint-integritet", + desc: "Att använda flera mints förbättrar integriteten genom att hindra en enskild mint från att se alla dina transaktioner", + distribution: "Medelsfördelning", + singleWarning: "Att använda en enda mint innebär att den minten kan se alla dina transaktioners timing och belopp. Överväg att lägga till fler mints för bättre integritet.", + yourMints: "Dina mints ({{count}})", + default: "Standard", + addMint: "Lägg till mint", + addMintDesc: "Lägg till en ny Cashu-mint i din plånbok", + mintUrl: "Mint-URL", + add: "Lägg till", + adding: "Lägger till...", + orChoose: "Eller välj från listan", + recommended: "Rekommenderade mints", + allMints: "Alla mints (katalog)", + searchMints: "Sök mints…", + noDirectoryMints: "Inga mints matchar din sökning.", + directoryHint: "Från community-katalogen MintRadar – inofficiell och kan vara inaktuell.", + added: "Tillagd", + soon: "Snart", + autoDistribute: "Autofördela medel", + autoDesc: "Sprid mottagna medel över flera mints", + autoAria: "Autofördela medel (kommer snart)", + tip1: "Använd minst 2–3 olika mints för bättre integritet", + tip2: "Håll inte alla medel i en mint – sprid ut dem", + tip3: "Tänk på mintens jurisdiktion (olika länder = olika juridisk åtkomst)", + tip4: "Mints ser tiden för transaktioner men INTE vem du betalar (blinda signaturer)", + future: "Framtida funktioner: mint-rotation och integritetspoäng – håll utkik!", + findMore: "Hitta fler mints på mintradar.pedani.eu", + trustWarning: "Förtroendevarning:", + trustWarningDesc: "Mints är förvarande – de håller dina medel. Använd bara mints du litar på. Om en mint försvinner kan dina medel gå förlorade. Att sprida medel över flera mints minskar risken.", + removeTitle: "Ta bort mint?", + removeDesc: "Är du säker på att du vill ta bort {{name}}?", + removeMint: "Ta bort mint", + warning: "Varning:", + withdrawWarning: "Den här minten har {{amount}} sats. Ta ut dina medel innan du tar bort den!", + invalidUrl: "Ogiltig URL", + invalidUrlDesc: "Mint-URL måste börja med https://", + mintAdded: "Mint tillagd", + mintAddedDesc: "Ny mint tillagd", + mintAddedNamed: "{{name}} tillagd", + failedAdd: "Kunde inte lägga till mint", + failed: "Misslyckades", + noMints: "Inga mints", + singleMint: "Enkel mint", + concentrated: "Koncentrerad", + moderate: "Måttlig", + wellDistributed: "Väl fördelad", + mintCoinosWebDesc: "Webbvänlig mint (rekommenderas för webbläsare)", + mintMinibitsWebDesc: "⚠ Endast i den inbyggda appen – nås inte från webbläsare", + mintMinibitsNativeDesc: "SkateSpots mint – rekommenderas", + mintCoinosDesc: "Webbvänlig mint", + mintLnbitsDesc: "Community-mint på LNbits" + }, + nwc: { + title: "Lightning-plånbok", + noConnection: "NWC-plånbok", + refresh: "Uppdatera saldo", + createInvoice: "Skapa faktura", + copyInvoice: "Kopiera faktura", + pasteInvoice: "Klistra in en Lightning-faktura (lnbc…)", + amount: "Belopp: {{amount}} sats", + pasteToSee: "Klistra in en faktura för att se beloppet", + pay: "Betala", + invoiceQrAlt: "QR-kod för Lightning-faktura", + enterAmount: "Ange ett belopp i sats", + readBalanceFailed: "Kunde inte läsa saldo", + readBalanceFailedDesc: "Din plånbok svarade inte.", + createInvoiceFailed: "Kunde inte skapa faktura", + createInvoiceFailedDesc: "Försök igen om en stund.", + paymentSent: "Betalning skickad", + paidAmount: "Betalade {{amount}} sats.", + paid: "Betald.", + paymentRejected: "Plånboken avvisade betalningen." + }, + qr: { + title: "Skanna QR-kod", + desc: "Placera QR-koden inom kameravyn för att skanna", + paste: "Klistra in från urklipp", + hint: "Skanna en Cashu-token, Lightning-faktura eller Lightning-adress", + clipboardEmpty: "Urklippet är tomt", + clipboardEmptyDesc: "Ingen text hittades i urklippet", + pasteFailed: "Inklistringen misslyckades", + pasteFailedDesc: "Kunde inte läsa från urklippet" + }, + recovery: { + title: "Återställningsfras", + desc: "De här 12 orden är det enda sättet att återställa ditt ecash-saldo. Skriv ner dem i ordning och förvara dem offline – dela dem aldrig med någon.", + tapReveal: "Tryck för att visa", + noWatching: "Se till att ingen tittar", + hide: "Dölj", + reveal: "Visa", + paperHint: "Det säkraste är att skriva ner dem på papper – att kopiera till urklippet kan läcka till andra appar.", + written: "Jag har skrivit ner dem", + revealFirst: "Visa orden först", + copiedDesc: "Återställningsfrasen kopierad – klistra in den någonstans säkert och rensa sedan urklippet.", + copyFailed: "Kopieringen misslyckades", + copyFailedDesc: "Skriv ner orden i stället." + }, + guide: { + quickGuide: "Snabbguide", + fullGuide: "Plånboksguide (skatarläge)", + cashuSummary: "Integritet + bekvämlighet", + mintHoldsFunds: "(minten håller medel)", + lightningSummary: "Kontroll + säkerhet", + youHoldKeys: "(du håller nycklarna)", + useBoth: "Använd båda: Cashu för dricks, Lightning för sparande", + cashuTitle: "CASHU-PLÅNBOK", + cashuTagline: "Som kontanter i fickan på skateparken", + cashuBullet1: "Snabb att plocka fram för en dricks", + cashuBullet2: "Bär inte dina livsbesparingar här", + cashuBullet3: "Om minten försvinner kan medel gå förlorade", + cashuBullet4: "Ingen vet hur mycket du har (integritet!)", + cashuPerfectFor: "Session-snacks, zappa klipp, små dricks", + lightningTitle: "LIGHTNING-PLÅNBOK", + lightningTagline: "Som ditt bankkonto – du har kontrollen", + lightningBullet1: "Säkert, du kontrollerar nycklarna", + lightningBullet2: "Tar en stund att ställa in", + lightningBullet3: "Fullständig transaktionshistorik", + lightningBullet4: "Bättre för större belopp", + lightningPerfectFor: "Utrustningsköp, sparande, stora zaps", + perfectFor: "Perfekt för:", + proTips: "PROFFSTIPS", + tip1Title: "Använd båda plånböckerna", + tip1Desc: "Håll sessionspengar i Cashu, sparande i Lightning", + tip2Title: "Testa olika plånböcker", + tip2Desc: "Experimentera för att hitta vad som fungerar för dig. Alla har olika funktioner och avvägningar", + tip3Title: "Bättre integritet", + tip3Desc: "Att använda flera plånböcker innebär att ingen enskild app ser all din aktivitet", + tip4Title: "Skaffa erfarenhet", + tip4Desc: "Ju fler verktyg du känner till, desto fler alternativ har du. Börja smått och lär dig efterhand", + tldr: "TL;DR:", + tldrDesc: "Det finns ingen “bäst” plånbok – det beror på dina behov. Testa båda, använd det som känns rätt och håll inte alla dina sats på ett ställe!" + }, + zap: { + count: "{{count}} zaps", + connectFirst: "Anslut din plånbok först", + connectFirstDesc: "För att skicka zaps (Bitcoin-dricks) behöver du ansluta en Lightning-plånbok.", + quickSetup: "Snabbkonfiguration (30 sekunder)", + quickSetupDesc: "Anslut din befintliga Lightning-plånbok med Nostr Wallet Connect (NWC). Inga extra konton behövs.", + connectNwc: "Anslut plånbok med NWC", + noWallet: "Har du ingen plånbok? Lär dig hur", + skip: "Hoppa över för nu (manuell faktura)", + note: "ℹ️ Notera:", + noteDesc: "Du kan fortfarande skapa en faktura utan att ansluta en plånbok, men du måste kopiera den manuellt för att betala.", + payWithWebln: "Betala med WebLN", + processing: "Bearbetar...", + openInWallet: "Öppna i Lightning-plånbok", + scanHint: "Skanna QR-koden eller kopiera fakturan för att betala med valfri Lightning-plånbok.", + cashuInstant: "Betala direkt med din inbyggda plånbok", + satsAvailable: "sats tillgängliga", + or: "ELLER", + customAmount: "Anpassat belopp", + addComment: "Lägg till en kommentar (valfritt)", + insufficientBanner: "⚠️ Otillräckligt Cashu-saldo. Du behöver {{amount}} sats mer. Byt till Lightning eller fyll på din Cashu-plånbok.", + creatingInvoice: "Skapar faktura...", + zapAmount: "Zappa {{amount}} sats", + zapAmountCashu: "Zappa {{amount}} sats med Cashu", + lightningInvoice: "Lightning-faktura", + qrAlt: "QR-kod för Lightning-faktura", + enterAmount: "Ange ett belopp", + enterAmountDesc: "Välj ett förvalt värde eller skriv ett giltigt antal sats.", + cashuUnavailable: "Cashu-plånboken är inte tillgänglig", + cashuUnavailableDesc: "Din Cashu-plånbok är inte redo. Byt till Lightning eller öppna din plånbok först.", + insufficientCashu: "Otillräckligt Cashu-saldo", + insufficientCashuDesc: "Du behöver {{amount}} sats mer. Byt till Lightning eller fyll på.", + zapSentCashu: "Zap skickad! 🥜", + zapSentCashuDesc: "Zappade {{amount}} sats från din Cashu-plånbok.", + cashuFailed: "Cashu-betalningen misslyckades", + cashuFailedDesc: "Kunde inte betala med din Cashu-plånbok.", + invoiceCopied: "Faktura kopierad", + invoiceCopiedDesc: "Lightning-faktura kopierad till urklipp", + defaultComment: "Zappad på SkateSpots! 🛹", + titleConnect: "Anslut plånbok", + titlePayment: "Lightning-betalning", + titleZap: "Skicka en zap", + descConnect: "Anslut din Lightning-plånbok för att skicka zaps", + descPayment: "Betala med Bitcoin Lightning Network", + descZap: "Zaps är små Bitcoin-betalningar som stöttar skaparen av det här objektet. Om du gillade det, överväg att skicka en zap!", + descZapShort: "Zaps är små Bitcoin-betalningar som stöttar skapare. Överväg att skicka en zap!" + }, + zapCrew: { + title: "Zappa crewet", + desc: "Dela en zap jämnt mellan {{count}} crewmedlemmar med en Lightning-adress.", + noMembers: "Inga andra crewmedlemmar att zappa just nu.", + totalAmount: "Totalt belopp", + customTotal: "Anpassad summa", + each: "sats var", + rounded: "(avrundat)", + noWallet: "Ingen plånbok ansluten – du får en faktura per medlem att betala manuellt. Anslut en plånbok för delning med ett tryck.", + zapAcross: "Zappa {{amount}} sats över {{count}}", + sentTo: "⚡ Skickat till {{done}}/{{total}}", + none: "Inga autobetalningar slutfördes", + copyPending: "Kopiera väntande fakturor för att slutföra betalningen manuellt.", + thanks: "Tack för att du stöttar crewet!", + payingCrew: "Betalar crewet…", + defaultComment: "Zappade {{crew}}-crewet! 🤘", + sent: "Skickad", + paying: "Betalar", + resolving: "Matchar", + skipped: "Överhoppad", + failed: "Misslyckades", + waiting: "Väntar", + copyInvoice: "Kopiera faktura", + invoiceCopied: "Faktura kopierad", + invoiceCopiedDesc: "Klistra in den i valfri Lightning-plånbok" + }, + zapBadges: { + title: "Zap-märken", + zaps: "zaps", + satsSent: "sats skickade", + rank: "rang", + footnote: "Baserat på de senaste 30 dagarnas zaps.", + first: "Första zapen", + firstHint: "Skicka din första zap", + regular: "Regelbunden", + regularHint: "Skicka 10 zaps", + generous: "Generös", + generousHint: "Skicka 10 000 sats", + patron: "Patron", + patronHint: "Skicka 100 000 sats", + top10: "Topp 10", + top10Hint: "Nå de tio främsta supportrarna" + }, + trust: { + unavailable: "Förtroendepoäng ej tillgänglig", + yourContent: "Det här är ditt innehåll", + following: "Du följer den här användaren", + friendOfFriend: "Vän till en vän (2 steg)", + nip05: "NIP-05-verifierad användare", + unknown: "Okänd användare", + help: "Förtroendepoäng hjälper till att identifiera pålitliga bidragsgivare i skateboardcommunityn." + }, + share: { + title: "Dela profil", + desc: "Rikta en telefonkamera mot koden för att öppna {{name}}s profil.", + qrAlt: "QR-kod för profil", + copyLink: "Kopiera länk", + copyFailed: "Kopieringen misslyckades", + copyFailedDesc: "Kunde inte kopiera länken.", + shareEllipsis: "Dela…" + }, + addToCollection: { + title: "Spara i samling", + desc: "Spara “{{spot}}” i en av dina samlingar", + loginRequired: "Logga in för att spara spots i samlingar", + noCollections: "Du har inga samlingar ännu", + createFirst: "Skapa din första nedan!", + spotCount: "{{count}} spots", + alreadySavedTag: "Redan sparad", + alreadySaved: "Redan sparad", + alreadySavedDesc: "“{{spot}}” finns redan i “{{collection}}”", + saved: "Spoten sparad!", + savedDesc: "Lade till “{{spot}}” i “{{collection}}”", + saveFailed: "Kunde inte spara", + somethingWrong: "Något gick fel", + created: "Samling skapad!", + createdDesc: "Lade till “{{spot}}” i din nya samling “{{collection}}”", + createFailed: "Kunde inte skapa samlingen", + name: "Samlingsnamn", + descriptionOptional: "Beskrivning (valfritt)", + creating: "Skapar...", + createAndSave: "Skapa & spara", + createNew: "Skapa ny samling" + }, + collection: { + back: "Tillbaka till samlingar", + created: "Skapad {{date}}", + deleteTitle: "Ta bort samling?", + deleteDesc: "Detta tar bort “{{title}}” permanent. Själva spotarna påverkas inte.", + deleting: "Tar bort...", + deleteFailed: "Kunde inte ta bort samlingen", + deleted: "Samlingen borttagen", + deletedDesc: "“{{title}}” har tagits bort", + empty: "Inga spots i den här samlingen", + emptyOwner: "Lägg till spots i din samling genom att klicka på “Spara i samling” på valfri spot", + emptyOther: "Den här samlingen är tom", + browseSpots: "Bläddra bland spots", + linkCopied: "Länk kopierad!", + linkCopiedDesc: "Samlingslänken har kopierats till urklipp", + map: "Samlingskarta", + removeFailed: "Kunde inte ta bort spoten", + shareText: "Kolla in den här spot-samlingen: {{title}}", + spotRemoved: "Spoten borttagen", + spotRemovedDesc: "“{{title}}” har tagits bort från den här samlingen" + }, + mints: { + title: "Mints", + subtitle: "Bläddra bland Cashu-mints och deras hälsa. Cashu-plånboksoperationer körs i SkateSpots-appen.", + searchPlaceholder: "Sök mints efter namn eller URL…", + onlineOnly: "Endast online", + count: "{{filtered}} av {{total}} mints", + directoryError: "Kunde inte ladda mint-katalogen.", + directoryHint: "Katalogen drivs av communityn och är hastighetsbegränsad – den kan vara tillfälligt otillgänglig.", + goToWallet: "Gå till plånboken", + appOnly: "Att lägga till en mint sker i SkateSpots-appen (Cashu finns endast i appen).", + noMatch: "Inga mints matchar “{{query}}”.", + footer: "Hälsodata från communityprojektet MintRadar – inofficiell och kan vara inaktuell. Granska alltid en mints villkor innan du anförtror den medel.", + archived: "Arkiverad", + degraded: "Nedsatt", + offline: "Offline", + online: "Online", + terms: "Villkor", + reliability: "tillförlitlighet", + add: "Lägg till", + addToWallet: "Lägg till i plånboken", + copyUrl: "Kopiera URL", + openMint: "Öppna mint", + inWallet: "I din plånbok", + addedBadge: "Tillagd", + urlCopied: "Mint-URL kopierad", + added: "Mint tillagd", + addedDesc: "{{host}} finns nu i din plånbok.", + couldNotAdd: "Kunde inte lägga till mint", + communityRating: "Communitybetyg", + reliabilityLabel: "Tillförlitlighet", + uptime: "Drifttid 24h / 7d", + location: "Plats", + latency: "Latens", + nuts: "NUTs som stöds", + units: "Enheter", + version: "Version", + ratedBy: "Betygsatt {{rating}}/5 av {{count}} personer på MintRadar.", + noRating: "Inget communitybetyg ännu på MintRadar.", + reviewsNote1: "Skriftliga recensioner ingår inte i katalogen –", + openMintRadar: "öppna MintRadar", + reviewsNote2: "för att läsa eller lämna en.", + liveness: "Livlighetsrevision: {{mints}} mints och {{melts}} melts testade", + livenessErrors: " · {{errors}}/{{total}} senaste fel", + whatsAMint: "Vad är en mint?", + whatsAMintDesc: "En Cashu-mint ger ut och löser in ecash i din plånbok. Den håller Bitcoinen som backar dina tokens – så en mint du inte kör själv är en du måste lita på.", + mintWarning: "Mints kan gå offline, ändra villkor eller försvinna med medel. Håll bara små saldon om du inte litar på operatören.", + healthDisclaimer: "Hälsodata drivs av communityn (MintRadar) – inofficiell och möjligen inaktuell." + }, + appShop: { + title: "App-butik", + subtitle: "SkateSpots-merch för folket som håller scenen rullande.", + comingSoon: "Kommer snart", + wearThe: "Bär", + scene: "scenen", + heroDesc1: "Merch för folket som håller det här rullande – säljs", + locally: "lokalt, på begäran", + heroDesc2: ". Du skickar ett meddelande till mig, vi löser detaljerna och du betalar i", + heroDesc3: "– Lightning eller Cashu – när du hämtar den. Inga kort, inga konton, ingen kassa-robot, ingen mellanhand som skummar droppet.", + requestItem: "Begär en vara", + dmHint: "Öppnar ett privat, krypterat DM med mig.", + lightning: "Lightning", + cashu: "Cashu", + localHandover: "Lokal överlämning", + inTheWorks: "Under arbete", + notForSale: "inte till salu ännu", + soon: "snart", + tees: "T-shirts & hoodies", + decks: "Decks", + shopTools: "Verktyg för butiken", + stickerPacks: "Klistermärkespaket", + stickerPacksDesc: "Paketen är på väg. Designerna är inte – skriv ut dessa två just nu, gratis.", + sticker: "Klistermärke", + stickerTip: "Svart stansat. Skriv ut på klistermärkespapper, klipp längs den svarta kanten.", + poster: "Affisch", + posterTip: "Skrivs ut i A3; krymp till A4 (50 %) och den skannas fortfarande fint.", + printableAlt: "SkateSpots {{title}} – utskriftsvänlig", + print: "Skriv ut", + printNote1: "Skriv ut i", + actualSize: "100 % / “Faktisk storlek”", + printNote2: "så storleken blir exakt och QR-koden förblir skarp – den pekar på skate-spots.org. Vektorfiler, så de skalas utan att bli suddiga.", + howBuying: "Så fungerar köp", + dmNotCart: "det är ett DM, inte en kundvagn", + step1Title: "Skicka ett meddelande till mig", + step1Desc: "Skicka ett DM med vad du vill ha – vara, storlek, färg, vad du än är ute efter.", + step2Title: "Vi löser det", + step2Desc: "Pris i sats, och var och när vi ska mötas. Det är ett samtal, inte en kassa.", + step3Title: "Betala i sats", + step3Desc: "Lightning eller Cashu vid överlämning, sedan är det ditt. Ingen frakt, inga väntrum." + }, + newsletter: { + newIssue: "Nytt nummer", + composerTitle: "Publicera ett nyhetsbrev", + composerDesc: "Publiceras som en NIP-23-artikel (kind 30023) på community-relayn. Prenumeranter får den i sin notisklocka. Brödtexten stöder Markdown.", + fieldTitle: "Titel", + identifier: "Identifierare (slug)", + leaveBlank: "lämna tomt för att autogenerera", + reusingSlug: "Att återanvända en befintlig slug redigerar det numret i stället för att skapa ett nytt.", + summary: "Sammanfattning", + optional: "valfritt", + coverImage: "URL för omslagsbild", + bodyMarkdown: "Brödtext (Markdown)", + characters: "{{count}} tecken", + publishIssue: "Publicera nummer", + issuePublished: "Numret publicerat! 🛹", + issuePublishedDesc: "Prenumeranter ser det i sin notisklocka.", + publishFailed: "Publiceringen misslyckades", + couldNotReachRelay: "Kunde inte nå någon relay – kontrollera din anslutning och försök igen.", + tryAgain: "Försök igen.", + publishedToNostr: "Publicerad på Nostr", + publishedToast: "Publicerad!", + postedToNostr: "Drop {{number}} publicerat på Nostr.", + postToNostr: "Publicera på Nostr", + previewLabel: "Förhandsvisning", + editFirst: "Redigera först", + previewNoteDesc: "Så här kommer noten att visas i de flesta Nostr-klienter. Formateringen varierar mellan klienter.", + editNoteDesc: "Redigera nottexten nedan. Ändringar påverkar bara den här publiceringen – källfilen förblir oförändrad.", + dropNumber: "Drop {{number}}", + publish: "Publicera", + publishing: "Publicerar...", + dropIsOut: "Drop {{number}} är ute", + daysAgo: "{{count}}d sedan", + dismiss: "Avfärda", + itsMonday: "Det är måndag", + mondayDesc: "Dags att släppa veckans nyhetsbrev. Ett klick och AI:n skriver det från git-loggen.", + writeDrop: "Skriv Drop {{number}}", + dismissReminder: "Avfärda påminnelse", + loginPrompt: "Logga in med Nostr för att få nya drops i din inkorg.", + subscribedToast: "Du är prenumerant! 🛹", + subscribedToastDesc: "Nya drops hamnar i din notisklocka under “Nyheter”.", + unsubscribed: "Avprenumererad", + unsubscribedDesc: "Du kan fortfarande läsa varje nummer här när som helst.", + checking: "Kontrollerar…", + subscribed: "Prenumerant", + unsubscribe: "Avprenumerera", + subscribeCta: "Prenumerera på nyhetsbrevet", + archiveSynced: "Arkivet synkat till Nostr", + missingCount: "{{count}} arkivnummer finns inte på Nostr ännu", + backfillDesc: "Publicera {{list}} som NIP-23-artiklar så att prenumeranter och långformatsläsare kan se hela arkivet. Sidan behåller sin rika layout oavsett.", + backfill: "Fyll på {{count}} till Nostr", + publishing2: "Publicerar…", + publishingLabel: "Publicerar…", + backfilled: "Fyllde på {{count}} nummer 🛹", + backfilledDesc: "Arkivet finns nu på Nostr för prenumeranter och läsare.", + partialBackfill: "Publicerade {{published}}, {{failed}} misslyckades", + retryFinish: "Försök igen för att slutföra: {{list}}.", + notLoggedIn: "Inte inloggad", + allIssues: "Alla nummer", + brand: "SkateSpots Newsletter", + digTheDrop: "Gillar du droppet? Zappa det och missa aldrig nästa.", + sectionStats: "Communityn i siffror", + sectionWhatsNew: "Vad är nytt", + sectionSpotOfWeek: "Veckans spot", + sectionCommunity: "Community", + sectionSupport: "Stötta projektet", + sectionLatestDrops: "Senaste drops · Live från Nostr", + mappedBy: "Kartlagd av", + viewOnMap: "Visa på karta", + noSpotPicked: "Ingen spot vald den här veckan. Skicka in din så kanske den hamnar i nästa drop.", + browseMap: "Bläddra på kartan", + spotMap: "Spotkarta", + statsBadge: "Statistik", + supportDesc: "100 % öppen källkod, communityfinansierat, inga annonser, inga investerare. Om det är användbart, zappa det eller stötta det på Angor.", + readFull: "Läs hela numret", + joinSkaters: "Gå med i {{count}} skatare som får dropsen", + weeklyDrops: "Veckodrops", + tagline: "Ett veckovis nyhetsbrev · släpps när fan vi vill", + freeNote: "Gratis. Drivs av Nostr – din prenumeration lever på dina nycklar och följer dig mellan enheter. Nya drops hamnar i din notisklocka.", + live: "Live", + builtOn: "Byggt på", + openSource: "Öppen källkod", + supportUs: "Stötta oss", + freeToSkate: "Du är fri att åka skateboard" + }, + stats: { + subtitle: "Livemätvärden hämtade direkt från Nostr-nätverket. Transparent, decentraliserat, verifierbart av alla.", + dataSource: "Datakälla:", + updated: "uppdaterad {{age}}", + refresh: "Uppdatera", + partial: "Kunde inte nå alla relays – siffrorna kan vara ofullständiga.", + error: "Kunde inte nå relayn just nu. Statistiken laddas när anslutningen återställs.", + atAGlance: "Communityn i korthet", + skateSpots: "Skate-spots", + listedShops: "Listade butiker", + events: "Event", + mappers: "Kartläggare", + uniqueContributors: "unika bidragsgivare", + labHeader: "The Lab · Skapare & tjänster", + total: "{{count}} totalt", + coaches: "Coacher", + filmers: "Filmare", + editors: "Klippare", + photographers: "Fotografer", + builders: "Byggare", + artists: "Artister", + graffiti: "Graffiti", + tattoo: "Tatuering", + trainers: "Tränare", + musicians: "Musiker", + judges: "Domare", + organizers: "Arrangörer", + barbers: "Barberare", + showFewer: "Visa färre", + showAllCrafts: "Visa alla 13 hantverk", + community: "Community", + tours: "Turer", + crews: "Crews", + marketplace: "Marknadsplats", + liveListings: "Liveannonser", + tradesRecorded: "Registrerade affärer", + satsTraded: "Sats omsatta", + zapsToMappers: "Zaps till kartläggare", + tradesNote1: "ömsesidiga affärer mellan", + tradesNote2: "personer. Sats rapporteras av handlarna själva – appen kan inte observera en betalning utanför appen – så rubriken räknar bara", + mutual: "ömsesidiga", + tradesNote3: "affärer med ett tak per par; det råa påståendet är", + tradesNote4: "sats. “Zaps till kartläggare” räknar bara kvitton adresserade till våra främsta bidragsgivare – det är", + not: "inte", + tradesNote5: "global zap-volym.", + byRegion: "Spots & butiker per region", + resolving: "Matchar {{count}} otaggade platser från deras koordinater… en gång, sedan cachas på den här enheten.", + topCountries: "Toppländer", + topCities: "Toppstäder", + other: "Övrigt", + otherCountriesTitle: "Länder utanför topp 6", + otherCitiesTitle: "Städer utanför topp 6", + uncategorised: "Okategoriserad", + uncategorisedTitle: "Ingen stad/land-tagg", + regionNote1: "Räknar", + spotsAndShops: "spots & butiker", + regionNote2: ", inte skatare – från var och ens egen stad/land-tagg, eller härledd från dess pins koordinater när den saknar en (cachas på din enhet; länder grupperas efter ISO-kod när den finns), endast community-relayn, med moderationsdolt innehåll exkluderat.", + ofTotal: "{{count}} av {{total}}", + regionNote3: "platser saknar platstagg och visas som “Okategoriserad”.", + growth: "Tillväxt över tid", + chartCumulativeTitle: "Kartlagda spots (kumulativt)", + chartCumulativeDesc: "Totalt antal spots tillagda på kartan över tid", + chartMonthlyTitle: "Månadsaktivitet", + chartMonthlyDesc: "Nytt innehåll publicerat varje månad", + chartMappersTitle: "Aktiva kartläggare / månad", + chartMappersDesc: "Unika bidragsgivare som publicerar varje månad", + chartMixTitle: "Innehållsmix", + chartMixDesc: "Uppdelning efter innehållstyp (all tid)", + noData: "Ingen data ännu", + topMappers: "Toppkartläggare", + mostSpots: "– flest spots tillagda", + noMapperData: "Ingen kartläggardata ännu", + topShops: "Toppbutiker", + mostShops: "– flest butiker tillagda", + shopCount: "{{count}} butiker", + noShopData: "Ingen butiksdata ännu", + supporters: "Communitysupportrar", + fundedTitle: "Finansierat av communityn", + fundedDesc1: "Decentraliserad Bitcoin-crowdfunding via Angor.", + fundedDesc2: "Inga annonser, inga investerare, ingen dataförsäljning.", + backAngor: "Stötta oss på Angor", + communityLink: "Community →", + footer1: "All data hämtas live från", + footer2: "– en offentlig Nostr-relay.", + footer3: "Varje event signeras av sin skapare och är kryptografiskt verifierbart.", + footer4: "Inga siffror kan förfalskas.", + spots: "Spots", + shops: "Butiker", + lab: "Lab", + thisMonth: "+{{count}} denna månad", + fromActive: "{{count}} från aktiva konton", + viewAll: "Visa alla", + spotCount: "{{count}} spots" + }, + leaderboard: { + mapEarn: "Kartlägg & tjäna", + helpMap: "HJÄLP TILL ATT KARTLÄGGA VÄRLDEN", + intro: "Lägg till spots och butiker, få zaps av tacksamma skatare. Toppbidragsgivare kan få bonusbelöningar!", + howItWorks: "Så fungerar det", + step1Title: "1. Kartlägg", + step1Desc: "Lägg till spots & butiker med foton och detaljer", + step2Title: "2. Tjäna zaps", + step2Desc: "Skatare som har nytta av dina spots ger dig dricks", + step3Title: "3. Bonusbelöningar", + step3Desc: "Toppkartläggare kan få bonusbelöningar från vår fond", + proTips: "💡 Proffstips för fler zaps:", + tipPhotos: "Lägg till 3+ foton", + tipDescriptions: "Skriv detaljerade beskrivningar", + tipLocation: "Exakt plats", + mapShop: "Kartlägg en butik", + mapShopDesc: "Skatebutiker, brädbodar", + mapSpot: "Kartlägg en spot", + mapSpotDesc: "Parker, gatuspots, DIY", + shops: "Butiker", + spotsLower: "spots", + shopsLower: "butiker", + contributions: "bidrag", + yourRanking: "Din placering", + spotsShops: "{{spots}} spots • {{shops}} butiker", + totalLower: "totalt", + overall: "Totalt", + noContributions: "Inga bidrag ännu. Bli först!", + addFirstSpot: "Lägg till första spoten", + noShops: "Inga butiker kartlagda ännu", + addFirstShop: "Lägg till första butiken", + noSpots: "Inga spots kartlagda ännu", + poweredBy: "Drivs av community-zaps", + poweredByDesc: "När du har nytta av en spot, zappa kartläggaren! Det är det bästa sättet att tacka och uppmuntra fler bidrag.", + you: "Du", + zapTitle: "Zap-topplistor", + zapSubtitle: "Spotsen som får mest kärlek – och skatarna som ger den.", + thisWeek: "Denna vecka", + thisMonth: "Denna månad", + allTime: "All tid", + topZappedSpots: "Mest zappade spots", + noZaps: "Inga zaps ännu i den här perioden. Bli först – tryck på ⚡ på en spot du älskar.", + topSupporters: "Främsta supportrar", + noZapsSent: "Inga zaps skickade ännu i den här perioden.", + fromTop10: "⚡ {{amount}} sats från topp 10", + supporter: "Supporter", + skateShop: "Skatebutik", + skateSpot: "Skate-spot" + }, + supporters: { + our: "VÅR", + community: "COMMUNITY", + heroDesc: "SkateSpots byggs av och för communityn. Supportrar, samarbetspartners, partners och vänner som håller detta gratis och decentraliserat.", + backAngor: "Stötta oss på Angor", + backers: "Supportrar", + backersDesc: "Skatare som stöttat SkateSpots – on-chain-finansiering via Angor och Lightning-zaps till projektet.", + sourceAngor: "Angor", + supportersTotals: "{{count}} supportrar · {{angor}} sats via Angor · {{zap}} sats zappade", + quietNote: "Plus alla som gav i tysthet – tack. ❤️", + silentTitle: "Privat on-chain (tysta betalningar)", + silentDesc: "Ett namn, en ny adress för varje betalning – on-chain via tysta betalningar, eller Lightning från samma post. Inget att återanvända, inget att koppla.", + silentCopyName: "Kopiera namn", + silentCopied: "Kopierat", + silentWallets: "Kräver en plånbok som stöder betalningsnamn / tysta betalningar: Sparrow, Cake, Dana, Phoenix, BlueWallet, Wasabi, Nunchuk eller BitBox02.", + wayLightningTitle: "Direkt & offentligt", + wayLightningDesc: "Zappa SkateSpots, eller betala tyst. Fungerar utloggad.", + waySilentTitle: "Privat on-chain", + waySilentDesc: "Ett tysta-betalningar-namn – en ny adress för varje betalning.", + wayAngorTitle: "Finansiera bygget", + wayAngorDesc: "Angor – etappvis utbetalning, återbetalningsbar över 100k sats.", + donateTitle: "Stötta SkateSpots", + donateDesc: "Tre spår, tre skäl – välj det som passar dig. Varje sat håller kartan gratis, annonsfri och öppen.", + donatePageLink: "Öppna den enkla donationssidan", + updatedAt: "Uppdaterad {{when}}", + tiersNote: "Nivåer: Supporter under 100k sats · Patron 100k–1M · Legend 1M+", + tierEmpty: "Ingen ännu – bli först.", + joinSupporters: "Gå med i {{count}} supportrar", + showAll: "Visa alla {{count}}", + showLess: "Visa mindre", + impactSeeStats: "Se hela bilden →", + impactAsOf: "live från community-relays", + anonymousBacker: "Anonym supporter", + beFirstBacker: "Inga offentliga supportrar ännu – bli först.", + backersTotal: "{{count}} supportrar · {{amount}} sats insamlade", + verifiedOnChain: "On-chain-verifierad", + supportedBy: "Stöttas av {{count}}", + tierSupporter: "Supporter", + tierPatron: "Patron", + tierLegend: "Legend", + topZappers: "Zappade SkateSpots", + topZappersDesc: "Skatare som skickade en offentlig zap direkt till projektet. Tysta betalningar listas inte.", + paysFor: "Vad ditt stöd betalar för", + paysForDesc: "Vart varje sat går – inga löner, inga kontor, inga annonser.", + payRelay: "Relay-drift", + payDomain: "Domän & TLS", + payAi: "AI / ContextVM-nod", + payDev: "Utvecklingstid", + payOps: "Drift", + payMarketing: "Marknadsföring", + payRelayDesc: "Håller kartan online och motståndskraftig.", + payDomainDesc: "Namnet, certifikatet, den säkra anslutningen.", + payAiDesc: "Sasquatch, communityguiden.", + payDevDesc: "Bygger och lagar SkateSpots.", + payOpsDesc: "Det oglamorösa arbetet som håller det rullande.", + payMarketingDesc: "Når nya lokala scener och skateshops.", + impact: "Effekt hittills", + impactDesc: "Vad communityn har byggt – finansierat av skatare.", + impactSpots: "Spots", + impactCrews: "Crews", + impactEvents: "Event", + impactLab: "Lab-proffs", + impactShops: "Butiker", + impactMappers: "Kartläggare", + support: "Stöd", + supportDesc: "Finansiera SkateSpots på Angor – decentraliserad, on-chain Bitcoin-crowdfunding. Ingen mellanhand, ingen KYC.", + collaborators: "Samarbetspartners", + collaboratorsDesc: "Personer som aktivt bygger SkateSpots – utvecklare, formgivare, relay-operatörer.", + partners: "Partners", + partnersDesc: "Organisationer och projekt vi arbetar nära.", + friends: "Vänner", + friendsDesc: "Folk vi vibe:ar med.", + backTitle: "Stötta projektet på Angor", + backDesc: "Angor är decentraliserad, on-chain Bitcoin-finansiering byggd på Nostr – dina medel förblir under din kontroll, frigörs i etapper, utan förvarare som håller potten. Bidrag upp till 100 000 sats fungerar som en donation (ingen återställnings-handskakning); större belopp är investeringar vars oanvända medel kan återställas. Varje sat går till utveckling, relay-drift och att hålla SkateSpots gratis för varje skatare på jorden.", + donateNote: "Föredrar du en rak donation? ⚡ Zappa nedan – inget att återbetala, inget att återställa.", + openAngor: "Öppna Angor", + orZap: "eller ⚡ zappa valfri spot, crew eller skapare direkt i appen", + wantCollaborate: "Vill du samarbeta?", + wantCollaborateDesc: "Utvecklare, formgivare, skatare med skills – hör av dig.", + viewNostrHub: "Visa på NostrHub", + wantPartner: "Vill du bli partner med SkateSpots? Hör av dig på Nostr.", + comingSoon: "Kommer snart", + wantListed: "Vill du listas här?", + wantListedDesc: "Skicka en logotyp (PNG/WebP, genomskinlig bakgrund, min 200×200px) och din URL via DM på Nostr, bara om du har vibbarna.", + whyTitle1: "Varför vi behöver", + whyTitle2: "stöd", + whyDesc: "SkateSpots är 100 % gratis, öppen källkod och byggt på Nostr – ett decentraliserat protokoll utan central server att stänga ner. Inga annonser, ingen dataförsäljning, inga investerare. Varje sat går direkt till utveckling, relay-drift och att hålla detta gratis för varje skatare på jorden.", + why1Title: "Nostr-inbyggt", + why1Desc: "Ingen central server. Din data lever på relays du väljer.", + why2Title: "Bitcoin-drivet", + why2Desc: "Tjäna sats genom att kartlägga spots. Spenderar dem hos lokala butiker.", + why3Title: "Gratis för alltid", + why3Desc: "Öppen källkod, inga betalväggar, ingen spårning, ingen VC-finansiering.", + thankYou: "Tack. Varje sat håller spotsen på kartan. 🛹⚡", + license: "Licens", + faq: "FAQ" + }, + admin: { + confirmed: "Bekräftad", + title: "Granskningskö", + subtitle: "Spots, butiker, event, turer och utrustning som triggar skräpsignaler. Dölj och Bekräfta är mjuka, reversibla märkningar; rapporter rangordnas först. Inget raderas.", + tabReports: "Rapporter", + tabSpots: "Spots", + tabShops: "Butiker", + tabEvents: "Event", + tabTours: "Turer", + tabGear: "Utrustning", + tabCrews: "Crews", + tabLab: "Lab", + tabClaims: "Anspråk", + nothingToReview: "Inget att granska – inget av den här typen triggar skräpsignalerna.", + hideActioned: "Dölj åtgärdade", + showActioned: "Visa åtgärdade ({{count}})", + undoAll: "Ångra alla {{count}}", + undoAllTitle: "Ångra varje dom i den här fliken?", + undoAllDesc: "Detta återställer varje objekt till neutralt – inte dolt, inte verifierat. Det publicerar en offentlig märkning per objekt, så med Amber får du {{count}} godkännandeskärmar.", + undoCount: "Ångra {{count}}", + undo: "Ångra", + confirm: "Bekräfta", + hide: "Dölj", + hideIt: "Dölj det", + hideForEveryone: "Dölja detta för alla?", + hideForEveryoneDesc: "Detta tar bort objektet från bläddring och sökning för varje SkateSpots-användare. Det är en offentlig, reversibel märkning – du kan ångra den från den här kön.", + hidden: "Dold", + hiddenDesc: "Borttagen från appen via en offentlig märkning. Reversibel.", + couldNotHide: "Kunde inte dölja", + notASpot: "Inte en skate-spot", + lookAtIt: "Titta på det" + }, + profile: { + nip05Verified: "NIP-05 verifierad", + nip05NotVerified: "NIP-05 inte verifierad mot den här nyckeln", + message: "Meddelande", + zapsReceived: "zaps mottagna", + memberSince: "Medlem sedan", + badges: "Märken", + sponsorsSupport: "Sponsorer & stöd", + skater: "Skatare", + stance: "Stans", + skating: "Åker", + homeSpot: "Hemmaspot", + basedIn: "Baserad i", + addSkateDetails: "Lägg till dina skate-detaljer", + addSkateDetailsDesc: "Ange din stans, stilar & nivå för att synas i skatarkatalogen.", + spotsAdded: "Spots tillagda", + shopsAdded: "Butiker tillagda", + noSpots: "Du har inte lagt till några spots ännu", + noSpotsDesc: "Sätt din lokala spot på kartan →", + stash: "Stash", + gear: "Utrustning", + crews: "Crews", + info: "Info", + lightning: "Lightning", + silentPayment: "Tyst betalning", + coordinator: "Koordinator", + coordinatorAdded: "Koordinator tillagd", + add: "Lägg till", + messagePrivately: "Meddela privat", + founder: "Grundare", + member: "Medlem", + supportSkater: "Stötta den här skataren", + supportSkaterDesc: "Skicka en dricks för att tacka för bidragen" + }, + index: { + joinCommunity: "Gå med i communityn för att lägga till spots, skapa event & mer", + topZapped: "MEST ZAPPADE", + topZappedDesc: "Mest stöttade spots denna månad", + leaderboard: "Topplista", + newHere: "NY HÄR?", + newHereDesc: "Skapa ett gratiskonto för att lägga till spots, gå med i event, få kontakt med skatare och bli en del av communityn. Ingen e-post krävs.", + followFounder: "Följ grundaren", + followFounderDesc: "Håll avataren i 3 sekunder för att följa och hållas uppdaterad om nya funktioner och event!", + createAccount: "Skapa konto", + accountWorks: "Ditt konto fungerar i alla appar i nätverket", + footerTagline: "Öppen källkod • Communityägd • Inga annonser" + }, + stash: { + title: "Min Stash", + loginDesc: "Ditt privata utrustningsförråd. Håll koll på vad du äger, sätt priser och dela selektivt med handlare.", + encrypted: "Krypterad", + syncsEverywhere: "Synkas överallt", + p2pTrading: "P2P-handel", + encryptionRequired: "Kryptering krävs", + encryptionRequiredDesc: "Din Stash är krypterad för integritet. Använd en signerare som stöder NIP-44-kryptering (som Alby, nos2x eller Amber).", + learnSigners: "Lär dig om signerare", + select: "Välj", + stash: "Stash", + wishlist: "Önskelista", + allCategories: "Alla kategorier", + sortNewest: "Nyast", + sortValue: "Värde", + sortCondition: "Skick", + sortAz: "A–Ö", + friendsOnly: "Endast vänner", + addToWishlist: "Lägg till i önskelistan", + addItemToStash: "Lägg till vara i Stash", + addItem: "Lägg till vara", + editItem: "Redigera vara", + publicStash: "Offentlig Stash", + listView: "Listvy", + gridView: "Rutnätsvy", + uploading: "Laddar upp...", + addPhotos: "Lägg till foton", + wishlistReqPlaceholder: "Eventuella särskilda önskemål...", + itemDescPlaceholder: "Beskriv varan, eventuella skador...", + itemsCount: "{{count}} vara/varaor", + wishlistEmpty: "Önskelistan är tom", + wishlistEmptyDesc: "Lägg till utrustning du jagar – vi matchar dig med vänners Stash.", + stashEmpty: "Din Stash är tom", + stashEmptyDesc: "Börja hålla koll på din utrustning. Decks, trucks, skor – lägg till en gång, kom åt överallt via Nostr.", + noMatch: "Inga varor matchar", + noMatchDesc: "Prova att justera dina filter.", + backupTransfer: "Säkerhetskopiera & överför", + backupDesc: "Din Stash är krypterad på Nostr. Behåll en kopia du kontrollerar – en död relay eller ett nytt konto kan inte förlora din utrustningslista.", + exportTitle: "Krypterad säkerhetskopia", + exportDialogDesc: "Spara {{count}} vara/varaor till en fil. Kryptera den så att en läckt fil inte är en läcka.", + modePassword: "Lösenord", + modeKey: "Min nyckel", + password: "Lösenord", + confirmPassword: "Bekräfta lösenord", + passwordHint: "Använd minst 8 tecken. Det finns ingen återställning – glöm det inte.", + keyModeHint: "Krypterad till din Nostr-nyckel. Bara den nyckeln kan öppna den – inget att komma ihåg.", + exportPlaintext: "Exportera utan kryptering", + pwTooShort: "Använd minst 8 tecken.", + pwMismatch: "Lösenorden matchar inte.", + exportFailed: "Kunde inte skapa säkerhetskopian.", + unlockTitle: "Lås upp säkerhetskopian", + unlockDesc: "Den här säkerhetskopian är lösenordsskyddad.", + unlock: "Lås upp", + unlockFailed: "Kunde inte låsa upp säkerhetskopian.", + show: "Visa", + hide: "Dölj", + strength: "Lösenordsstyrka", + strengthWeak: "Svag", + strengthFair: "Okej", + strengthGood: "Bra", + strengthStrong: "Stark", + filenameWillSave: "Sparas som {{name}}", + export: "Exportera", + import: "Importera", + exported: "Stash exporterad", + exportedDesc: "{{count}} varor sparade till en fil.", + noItemsInFile: "Inga varor hittades i den filen.", + noValidItems: "Inga giltiga varor hittades i den filen.", + imported: "Importerade {{count}} varor", + importSkipped: "{{count}} överhoppade (finns redan i din Stash).", + importAdded: "Tillagda i din Stash.", + importFailed: "Importen misslyckades", + couldNotRead: "Kunde inte läsa den filen.", + updateFailed: "Kunde inte uppdatera din Stash", + updatedCount: "Uppdaterade {{count}} varor", + markedForSale: "Markerade {{count}} till salu", + unmarkedCount: "Avmarkerade {{count}}", + removedCount: "Tog bort {{count}} varor", + selectedCount: "{{count}} valda", + selectAll: "Välj alla", + visibilityPublic: "Offentlig", + visibilityPrivate: "Privat", + forSale: "Till salu", + remove: "Ta bort", + bulkDeleteTitle: "Ta bort {{count}} varor?", + bulkDeleteDesc: "Detta skriver om din krypterade Stash i en signatur och kan inte ångras här. Exportera en säkerhetskopia först om du är osäker.", + deleteTitle: "Ta bort från din Stash?", + deleteDesc: "“{{title}}” tas bort från din Stash", + deleteDescPublic: " och avlistas från din offentliga showcase", + deleteUndone: ". Detta kan inte ångras.", + deleteDescGeneric: "Den här varan tas bort från din Stash. Detta kan inte ångras.", + listOnMarketplace: "Lista på marknadsplatsen", + noPriceSet: "Inget pris satt", + categoryLabel: "Kategori", + photosLabel: "Foton", + willingToSell: "Vill sälja", + willingToTrade: "Vill byta", + whereIsThisItem: "Var finns den här varan?", + visibilityLabel: "Synlighet", + visibilityPrivateOnlyYou: "Privat – endast du", + visibilityFriendsMutual: "Vänner – ömsesidiga följare", + visibilityPublicAnyone: "Offentlig – alla", + visibilityFriends: "Vänner", + brandLabel: "Märke", + sizeLabel: "Storlek", + descriptionLabel: "Beskrivning", + conditionLabel: "Skick", + itemName: "Varans namn", + saveChanges: "Spara ändringar", + listItemDialogTitle: "Lista “{{title}}”", + pickUpWhere: "Var kan köpare hämta varan?", + linkToSpot: "Länka till en skate-spot", + linkToSpotDesc: "Bäst för lokala försäljningar • Visas på spot-sidan & kartan", + recommended: "Rekommenderas", + noSpecificSpot: "Ingen specifik spot", + noSpecificSpotDesc: "Endast synlig på marknadsplats-sidan", + tipLinkedSpots: "💡 Tips: Annonser länkade till spots är lättare att hitta för lokala skatare.", + anyoneCanSee: "Alla kan se dessa på din profil.", + seeWhatOthersSee: "Se vad andra ser", + inventory: "Lager", + publicWantsNote: "Offentliga önskemål publiceras på marknadsplatsen som “sökes”-annonser, så att säljare kan hitta dig.", + howItWorks: "Så fungerar det", + tapToMarketplace: "Tryck för att gå till marknadsplatsen →", + viewWishlist: "Visa önskelistan", + tipEditItems: "Redigera varor med pennknappen", + tipListForSale: "Lista för försäljning med butiksknappen", + tipAddPhotos: "Lägg till foton för bättre byteserbjudanden", + tipKeySyncs: "Nostr-nyckeln synkas till alla enheter", + itemsReadyToSell: "{{count}} vara/varaor redo att sälja" + } + } +}; export default svBatch4; diff --git a/src/i18n/sv/batch5.ts b/src/i18n/sv/batch5.ts index fda8a79..2da3d38 100644 --- a/src/i18n/sv/batch5.ts +++ b/src/i18n/sv/batch5.ts @@ -1,4 +1,1597 @@ -/** sv — batch 5. Filled by the translation pass; empty until then. */ -const svBatch5 = {}; +/** sv — batch 5. */ +export const svBatch5 = { + labUi: { + activeCount: "{{count}} aktiva", + addMusicProfile: "Lägg till musikprofil", + all: "Alla", + clearAll: "Rensa allt", + collective: "Kollektiv", + filters: "Filter", + following: "Följer", + getRiderCard: "Hämta Rider Card", + judgeEvents: "Döm evenemang", + justASkater: "Bara en", + labForServices: "The Lab är till för tjänster. Bläddra och gå med i hela skatarkollektivet", + loginToOffer: "Logga in för att erbjuda tjänster", + newest: "Nyast", + noResults: "Inga resultat", + offer: "Erbjud", + offerBuilding: "Erbjud byggnation", + offerCoaching: "Erbjud coaching", + offerCuts: "Erbjud klippning", + offerDesignArt: "Erbjud design / konst", + offerEditing: "Erbjud redigering", + offerFilming: "Erbjud filmning", + offerGraffiti: "Erbjud graffiti", + offerPhotography: "Erbjud fotografi", + offerServices: "Erbjud tjänster", + yourProfiles: "Dina Lab-profiler", + preview: { + button: "Förhandsvisa", + title: "Live-förhandsvisning", + desc: "Så här kommer din {{noun}}-profil att se ut när den publiceras.", + untitled: "Ditt namn", + noBio: "Ingen bio än — lägg till en rad om vad du erbjuder.", + years: "{{count}} års erfarenhet", + portfolio: "Portfölj", + note: "Endast förhandsvisning — inget är publicerat än.", + }, + draft: { + title: "Du har ett osparat utkast", + body: "Fortsätt där du slutade — inget publiceras förrän du trycker på Publicera.", + resume: "Återuppta utkast", + discard: "Kasta utkast", + }, + progress: { + title: "Profilens fullständighet", + count: "{{done}} av {{total}} klara", + photo: "Foto", + bio: "Bio", + skills: "Färdigheter", + rate: "Pris", + location: "Plats", + contact: "Kontakt", + }, + wizard: { + identity: "Identitet", + offer: "Vad du erbjuder", + rates: "Priser", + contact: "Kontakt", + media: "Media", + }, + offerTattoo: "Erbjud tatuering", + offerTraining: "Erbjud träning / fysio", + organizeEvents: "Anordna evenemang", + resultsMany: "{{count}} resultat", + resultsOne: "{{count}} resultat", + searchCityPlaceholder: "Stad…", + searchNamePlaceholder: "Namn, bio…", + showResults: "Visa resultat", + showResultsActive: "Visa resultat · {{count}} aktiva", + skaterWord: "skatare", + sortBy: "Sortera efter", + theCrew: "The Crew", + topRated: "Högst betyg", + trusted: "Betrodd", + trustLevel: "Förtroendenivå", + yearsExp: "{{count}} års erf.", + tabCoaches: "Coaches", + tabFilmers: "Filmare", + tabPhoto: "Foto", + tabEditors: "Redigerare", + tabBuilders: "Byggare", + tabArtists: "Konstnärer", + tabGraffiti: "Graffiti", + tabTattoo: "Tatuering", + tabTrainers: "Tränare", + tabMusic: "Musik", + tabJudges: "Domare", + tabOrganizers: "Arrangörer", + tabBarbers: "Barberare", + filterSkillsToLearn: "Färdigheter att lära", + filterContentType: "Innehållstyp", + filterEquipmentStyle: "Utrustning & stil", + filterServices: "Tjänster", + filterCamera: "Kamera", + filterLenses: "Objektiv", + filterLighting: "Belysning", + filterSupportRig: "Stöd & rigg", + filterStyle: "Stil", + filterWhatTheyBuild: "Vad de bygger", + filterMaterialsTrade: "Material & hantverk", + filterProjectScale: "Projektets omfattning", + filterWhatTheyMake: "Vad de gör", + filterMedium: "Medium", + filterSoftwareTools: "Programvara & verktyg", + filterWorkContext: "Arbetskontext", + filterMethod: "Metod", + filterFocus: "Fokus", + filterInjuriesTreated: "Skador som behandlas", + filterCredentialsSetting: "Meriter & miljö", + filterGenre: "Genre", + filterInstrumentsRole: "Instrument & roll", + filterEventFormats: "Evenemangsformat", + filterSpecialty: "Specialitet", + filterLevelCircuit: "Nivå / krets", + filterEventTypes: "Evenemangstyper", + filterWhatYouHandle: "Vad du hanterar", + filterScale: "Omfattning", + filterWhatTheyOffer: "Vad de erbjuder", + filterSignatureStyles: "Signaturstilar", + filterSetting: "Miljö", + filterEditType: "Redigeringstyp", + role: { + coach: "Coach", + filmer: "Filmer", + builder: "Builder", + editor: "Video Editor", + photographer: "Photographer", + skater: "Skater", + }, + empty: { + footer: "Har du frågor? Kolla FAQ →", + loginSuffix: "för att skapa en profil.", + coachesTitle: "Inga coaches än", + coachesBody: "Bli den första som erbjuder skateboard-coaching i ditt område.", + filmersTitle: "Inga filmare än", + filmersBody: "Bli den första som erbjuder skatefilmning — klipp, hela part, täckning av tävlingar och mer.", + photographersTitle: "Inga fotografer än", + photographersBody: "Bli den första som erbjuder skatefotografi i ditt område — actionbilder, sekvenser, editorial och mer.", + editorsTitle: "Inga videoredigerare än", + editorsBody: "Bli den första som erbjuder redigering av skatevideor.", + buildersTitle: "Inga byggare än", + buildersBody: "Bli den första som listar din ramp, park eller DIY-bygge — betong, trä, rails och mer.", + artistsTitle: "Inga konstnärer än", + artistsBody: "Bli den första som erbjuder brädgrafik, logotyper, affischer och merch för scenen.", + graffitiTitle: "Inga graffitikonstnärer än", + graffitiBody: "Bli den första som erbjuder pieces, väggmålningar och skatepark-konst i ditt område.", + tattooTitle: "Inga tatuerare än", + tattooBody: "Bli den första skatarkultur-tatueraren som listar dig — flash, custom, fine line och mer.", + trainersTitle: "Inga tränare än", + trainersBody: "Bli den första tränaren eller fysion som hjälper skatare att bli starka och hålla sig friska.", + musiciansTitle: "Inga musiker än", + musiciansBody: "Skatar du och gör musik? Lägg till ditt band eller soloprojekt — genrer, instrument och länkar.", + judgesTitle: "Inga domare än", + judgesBody: "Anordnar du en rättvis tävling? Lista dig för att döma Game of S.K.A.T.E., best trick-jams, tävlingar och turnéstopp.", + organizersTitle: "Inga arrangörer än", + organizersBody: "Anordnar du jams, tävlingar, meetups eller demos? Lista dig så att skatare kan hitta och boka dig.", + barbersTitle: "Inga barberare än", + barbersBody: "Klipper du hår åt skatare? Lista din stol eller mobila tjänst så scenen kan få en fräsch trim.", + }, + become: { + addNip05: "Lägg till NIP-05 i Inställningar", + backToLab: "Tillbaka till The Lab", + bioWorkLabel: "Bio / Om ditt arbete", + checkContact: "Kolla dina kontaktuppgifter", + cityArea: "Stad / område", + cityCountry: "Stad, land", + connectWallet: "Anslut plånbok", + connectWalletNwc: "Anslut plånbok med NWC", + contactInfo: "Kontaktinformation", + contactInfoDesc: "Hur kunder kan nå dig (alla valfria, men rekommenderas)", + coordinatesOptional: "Koordinater (valfritt)", + email: "E-post", + failedToPublish: "Kunde inte publicera", + fromNostrProfile: "Från din Nostr-profil", + geolocationUnsupported: "Geolokalisering stöds inte", + getting: "Hämtar…", + headline: "Rubrik", + headlineHint: "Visas som titel på ditt Lab-kort — t.ex. ”{{example}}”. Standard är ditt namn.", + imageUploaded: "Bild uppladdad", + instagram: "Instagram", + invalidEmail: "Ange en giltig e-postadress.", + invalidPortfolio: "Ange en giltig portfölj-URL.", + invalidWebsite: "Ange en giltig webbplats-URL.", + latitude: "Latitud", + learnHow: "Lär dig hur", + locationError: "Platsfel", + locationFound: "Plats hittad", + loginRequired: "Inloggning krävs", + loginRequiredDesc: "Du måste logga in för att skapa en {{role}}-profil.", + loginRequiredDescCraft: "Du måste logga in för att skapa en {{noun}}-profil.", + longitude: "Longitud", + nip05Recommended: "NIP-05-verifiering rekommenderas", + nip05RecommendedDesc: "Verifiera din identitet för att bygga förtroende hos kunder.", + noWallet: "Ingen plånbok ansluten", + otherSocial: "Övriga sociala medier", + paymentSetup: "⚡ Betalningsinställning krävs", + phoneNumber: "Telefonnummer", + profilePhoto: "Profilfoto", + profilePublished: "Din profil har publicerats.", + publishing: "Publicerar...", + socialMedia: "Sociala medier", + tip: "💡 Tips: De flesta Lightning-plånböcker stöder NWC (Alby, Minibits, Zeus, Coinos).", + tipWithTime: "💡 Tips: De flesta Lightning-plånböcker stöder NWC (Alby, Minibits, Zeus, Coinos). Tar 30 sekunder att ställa in.", + upload: "Ladda upp", + uploadFailed: "Uppladdning misslyckades", + uploadImage: "Ladda upp bild", + uploading: "Laddar upp…", + useCurrentLocation: "Använd nuvarande plats", + useMyLocation: "Använd min plats", + usingNwc: "Använder Nostr Wallet Connect", + usingWebln: "Använder WebLN-webbläsartillägg", + walletConnected: "Plånbok ansluten — redo att ta emot betalningar!", + website: "Webbplats", + yearsExperience: "Års erfarenhet", + }, + coachForm: { + anonymous: "Anonym Coach", + bioLabel: "Bio / coachingfilosofi", + bioPlaceholder: "Din bakgrund, undervisningsstil...", + create: "SKAPA COACH-PROFIL", + created: "Coach-profil skapad!", + createPro: "SKAPA PRO COACH-PROFIL", + dmNote: "💬 Elever kan skicka meddelanden till dig direkt via SkateSpots krypterade meddelanden", + heading: "Bli Coach", + headlineExample: "Skate Coach Berlin", + hourlyRate: "Timpris", + identity: "Din Coach-identitet", + nip05Reason: "Lägg till en NIP-05-identifierare för att verifiera din identitet och bygga förtroende hos elever — det visar att du är en seriös coach.", + paymentDesc: "För att ta emot lektionsbetalningar från elever behöver du ansluta en Lightning-plånbok. Elever zappar dig direkt för coachingtillfällen.", + profileDesc: "Berätta om din erfarenhet för eleverna", + profileTitle: "Coach-profil", + ratePlaceholder: "5000 sats/tim", + selectSkill: "Välj minst en färdighet.", + skillsLabel: "Färdigheter jag lär ut * (välj minst en)", + skillsRequired: "Färdigheter krävs", + formatsLabel: "Sessionsformat", + formatsHint: "Hur du levererar coaching.", + levelsLabel: "Nivåer du undervisar", + agesLabel: "Åldersgrupper", + credentialsLabel: "Meriter & säkerhet", + credentialsHint: "Självdeklarerat — SkateSpots verifierar inte dessa.", + languagesLabel: "Språk som talas", + languagesHint: "Lägg till språken du kan coacha på.", + languagePlaceholder: "t.ex. engelska, spanska", + availabilityLabel: "Tillgänglighet", + bookingLabel: "Bokningslänk", + bookingHint: "Valfritt — en sida där elever kan boka och betala.", + galleryLabel: "Portföljbilder", + galleryHint: "Visa riktiga sessioner, elever och spots (upp till 12).", + galleryAdd: "Lägg till portföljbilder", + galleryUploaded: "{{count}} foto(n) uppladdade", + videoLabel: "Highlight-reel", + videoHint: "Valfritt — en YouTube- eller Instagram-video av din coaching.", + formatOneOnOne: "1-mot-1", + formatGroup: "Grupp", + formatCamp: "Camp", + formatVideo: "Videoanalys", + formatContestPrep: "Tävlingsförberedelse", + formatParkLesson: "Park-lektion", + formatAdaptive: "Adaptiv", + formatGirls: "Tjejsession", + formatAfterSchool: "Efter skolan", + levelBeginner: "Nybörjare", + levelIntermediate: "Medel", + levelAdvanced: "Avancerad", + levelCompetition: "Tävling", + ageKids: "Barn", + ageTeens: "Tonåringar", + ageAdults: "Vuxna", + ageSeniors: "Seniorer", + certFirstAid: "Första hjälpen", + certCpr: "HLR", + certSafeguarding: "Barnskydd", + certBackgroundCheck: "Bakgrundskontroll", + certInsured: "Försäkrad", + certFederation: "Förbundscoach", + certQualification: "Coaching-utbildning", + certJudge: "Tävlingsdomare", + certNoteLabel: "Övriga meriter (valfritt)", + certNotePlaceholder: "t.ex. Skateboard GB Level 2, 8 års coaching…", + availWeekdays: "Vardagar", + availWeekends: "Helger", + availEvenings: "Kvällar", + availAfterSchool: "Efter skolan", + availHolidays: "Skol lov", + availSeasonal: "Säsongsbetonat", + sectionWhatYouCoach: "Vad du coachar", + sectionCredentials: "Meriter & säkerhet", + sectionAvailability: "Tillgänglighet & bokning", + sectionWhereYouCoach: "Var du coachar", + sectionPortfolio: "Portfölj", + rateAmountLabel: "Pris", + rateCurrencySats: "sats", + rateCurrencyUsd: "USD", + rateCurrencyEur: "EUR", + rateCurrencyGbp: "GBP", + perHour: "per timme", + perSession: "per session", + perHalfDay: "per halvdag", + perDay: "per dag", + perCamp: "per camp", + perProject: "per projekt", + perEvent: "per evenemang", + perGig: "per gig", + perShoot: "per shoot", + perPiece: "per piece", + perCut: "per klippning", + perMonth: "per månad", + availByAppointment: "Efter överenskommelse", + rateNotesLabel: "Prisanteckningar (valfritt)", + rateNotesPlaceholder: "Glidande skala, första sessionen gratis, resa ingår…", + sectionPayments: "Betalningar", + paymentMethodsHint: "Hur kunder kan betala dig. Detta är ett påstående — SkateSpots håller aldrig medel.", + payMethodCash: "Kontant på plats", + payMethodLightning: "Lightning", + payMethodCashu: "Cashu", + payMethodBank: "Banköverföring", + payMethodOther: "Annat", + payWhatYouCanLabel: "Glidande skala / betala vad du kan", + bookingFeeLabel: "Bokningsavgift (valfritt)", + bookingFeeHint: "En liten avgift som betalas direkt till dig för att bekräfta en bokning. SkateSpots håller eller återbetalar den inte.", + paymentNoteLabel: "Betalningsanteckning (valfritt)", + paymentNotePlaceholder: "Första sessionen gratis, resa ingår, betala efter sessionen…", + spotsDesc: "Välj spots där du erbjuder coachingsessioner", + spotsLabel: "Spots där du coachar", + tagline: "Dela din skateboardkunskap", + update: "UPPDATERA COACH-PROFIL", + updated: "Coach-profil uppdaterad!", + }, + filmerForm: { + anonymous: "Anonym Filmer", + bioPlaceholder: "Din bakgrund, stil, utrustning...", + camerasLabel: "Kameror & utrustning * (välj minst en)", + create: "SKAPA FILMNINGSPROFIL", + created: "Filmningsprofil skapad!", + createPro: "SKAPA PRO FILMNINGSPROFIL", + dmNote: "💬 Kunder kan skicka meddelanden till dig direkt via SkateSpots krypterade meddelanden", + gearHelper: "Lista dina exakta kameror, objektiv och riggar — skatare bryr sig om setupen.", + gearLabel: "Vad som finns i väskan (valfritt)", + gearPlaceholder: "t.ex. Sony VX1000 + MK1 fisheye, Panasonic HVX200, DJI RS3-gimbal, GoPro Hero 12, Sennheiser-mik...", + heading: "Bli Filmer", + headlineExample: "Skate Filmer Berlin", + identity: "Din Filmer-identitet", + nip05Reason: "Lägg till en NIP-05-identifierare för att verifiera din identitet och bygga förtroende hos kunder — det visar att du är en seriös filmer.", + paymentDesc: "För att ta emot betalningar från kunder för filmningstjänster behöver du ansluta en Lightning-plånbok. Kunder zappar dig direkt för ditt arbete.", + profileDesc: "Berätta om din filmningsexpertis för kunderna", + profileTitle: "Filmningsprofil", + rate: "Pris", + ratePlaceholder: "10000 sats/video", + reelLabel: "Reel / portfölj", + selectService: "Välj minst en tjänst.", + selectSkill: "Välj minst en filmningsfärdighet.", + servicesLabel: "Erbjudna tjänster * (välj minst en)", + servicesRequired: "Tjänster krävs", + skillsRequired: "Färdigheter krävs", + spotsDesc: "Välj spots där du erbjuder filmningstjänster", + spotsLabel: "Spots där du filmar", + tagline: "Erbjud filmning av skatevideo — klipp, lines, hela part & tävlingstäckning", + update: "UPPDATERA FILMNINGSPROFIL", + updated: "Filmningsprofil uppdaterad!", + }, + editorForm: { + anonymous: "Anonym Editor", + bioPlaceholder: "Din redigeringsstil, bakgrund, kända projekt…", + contactPortfolio: "Kontakt & portfölj", + create: "Publicera editorprofil", + created: "Editorprofil skapad!", + createPro: "Publicera pro editorprofil", + editTypes: "Redigeringstyper som erbjuds * (välj minst en)", + hardware: "Hårdvara", + hardwarePlaceholder: "t.ex. MacBook Pro M3, Sony FX3", + heading: "Bli videoredigerare", + headlineExample: "Skate Video Editor", + identity: "Din identitet", + locationOptional: "Plats (valfritt)", + loginDesc: "Logga in för att skapa din videoredigerarprofil.", + phoneTelegram: "Telefon / Telegram", + portfolioPlaceholder: "Portfölj (Vimeo, YouTube…)", + profileDesc: "Berätta om din redigeringsstil och dina färdigheter för communityt", + profileTitle: "Editorprofil", + published: "Din profil har publicerats på SkateSpots.", + rate: "Pris / prissättning", + ratePlaceholder: "t.ex. 50k sats/min, DM för offert", + selectService: "Välj minst en redigeringstyp.", + servicesRequired: "Tjänster krävs", + socialPlaceholder: "Instagram / socialt konto", + software: "Programvara", + softwareHardware: "Programvara & hårdvarufärdigheter", + softwarePlaceholder: "t.ex. DaVinci Resolve, Premiere", + tagline: "Erbjud dina videoredigeringstjänster till skatarkollektivet", + thumbnail: "Profil / showreel-miniatyr", + update: "Uppdatera editorprofil", + updated: "Editorprofil uppdaterad!", + walletConnected: "Plånbok ansluten ✓", + walletDesc: "Ta emot Bitcoin ⚡-betalningar direkt från kunder för ditt redigeringsarbete.", + walletTitle: "⚡ Lightning-plånbok för betalningar", + yearsExperience: "Års erfarenhet", + yearsPlaceholder: "t.ex. 5 år", + }, + photoForm: { + anonymous: "Anonym Photographer", + bioPlaceholder: "Din bakgrund, stil, vad du älskar att fota...", + cameraLabel: "Kamerahus * (välj minst en)", + cameraRequired: "Kamera krävs", + contactDesc: "Hur åkare kan se ditt arbete och nå dig (alla valfria, men rekommenderas)", + create: "SKAPA FOTOGRAFIPROFIL", + created: "Fotografiprofil skapad!", + createPro: "SKAPA PRO FOTOGRAFIPROFIL", + dmNote: "💬 Åkare kan skicka meddelanden till dig direkt via SkateSpots krypterade meddelanden", + gearHelper: "Lista exakta hus, objektiv och ljus — åkare älskar att veta setupen.", + gearPlaceholder: "t.ex. Canon R6 II, 8-15mm fisheye, 70-200mm f/2.8, 2× Godox AD200, fjärrtriggers, Manfrotto-stativ...", + heading: "Bli Photographer", + headlineExample: "Skate Photography", + identity: "Din Photographer-identitet", + lensesLabel: "Objektiv", + lightingLabel: "Belysningsutrustning", + nip05Reason: "Lägg till en NIP-05-identifierare för att verifiera din identitet och bygga förtroende hos kunder.", + paymentDesc: "För att få betalt för shoots, anslut en Lightning-plånbok. Kunder zappar dig direkt för ditt arbete.", + portfolioLabel: "Portfölj / Instagram", + profileDesc: "Berätta om ditt öga, din kit och dina tjänster för åkarna", + profileTitle: "Fotografiprofil", + ratePlaceholder: "20000 sats/shoot", + selectCamera: "Välj minst en kameratyp du fotar med.", + selectService: "Välj minst en tjänst du erbjuder.", + servicesLabel: "Erbjudna tjänster * (välj minst en)", + servicesRequired: "Tjänster krävs", + spotsDesc: "Välj spots där du erbjuder fotografi", + spotsLabel: "Spots där du fotar", + styleLabel: "Fotostil", + supportLabel: "Stöd & rigg", + tagline: "Fota sessionerna — erbjud ditt skatefotografi", + update: "UPPDATERA FOTOGRAFIPROFIL", + updated: "Fotografiprofil uppdaterad!", + }, + builderForm: { + anonymous: "Anonym Builder", + bioLabel: "Bio / om dina byggen", + bioPlaceholder: "Ditt crew, kända byggen, hur du angriper ett projekt...", + buildTypesLabel: "Vad du bygger * (välj minst en)", + buildTypesRequired: "Byggtyper krävs", + cityBase: "Stad / bas", + contactPortfolio: "Kontakt & portfölj", + contactPortfolioDesc: "Hur scenen kan se dina byggen och nå dig (alla valfria, men rekommenderas)", + create: "SKAPA BUILDER-PROFIL", + created: "Builder-profil skapad!", + createPro: "SKAPA PRO BUILDER-PROFIL", + dmNote: "💬 Kunder kan skicka meddelanden till dig direkt via SkateSpots krypterade meddelanden", + gearHelper: "Crews och kunder älskar att veta din kit och process.", + gearLabel: "Hur du arbetar / utrustning (valfritt)", + gearPlaceholder: "t.ex. Full betong-crew, egen mixer + sprutbetongrigg, mobil svetsning, vi sköter tillstånd och dränering...", + heading: "Bli Builder", + headlineExample: "Ramp & Park Builder", + identity: "Din Builder-identitet", + insured: "Licensierad / försäkrad", + insuredHelper: "Relevant för offentliga parker & kommunala jobb", + logoPhoto: "Logotyp / foto", + materialsLabel: "Material & hantverksfärdigheter", + nip05Reason: "Lägg till en NIP-05-identifierare för att verifiera din identitet och bygga förtroende hos kunder.", + pastBuilds: "Tidigare byggen / Instagram", + paymentDesc: "För att få betalt för byggen, anslut en Lightning-plånbok. Kunder zappar dig direkt för ditt arbete.", + profileDesc: "Berätta för scenen vad du bygger och hur du arbetar", + profileTitle: "Builder-profil", + rateLabel: "Pris / offertbas", + ratePlaceholder: "per m² / per projekt", + scaleLabel: "Projektets omfattning", + selectBuild: "Välj minst en sak du bygger.", + serviceArea: "Serviceområde", + serviceAreaPlaceholder: "t.ex. Katalonien, reser inom EU", + spotsDesc: "Länka spots och parker du byggt så att folk kan se ditt arbete på kartan", + spotsLabel: "Spots du byggt", + tagline: "Gjut det, svetsa det, bygg det — lista din ramp- & parkbyggnation", + update: "UPPDATERA BUILDER-PROFIL", + updated: "Builder-profil uppdaterad!", + yearsBuilding: "År av byggande", + }, + skaterForm: { + backToSkaters: "Tillbaka till skatare", + bioHelperPulled: "Hämtad från din profil — justera den för ditt skatarkort, eller låt den vara.", + bioHelperShort: "En kort intro till ditt skatarkort.", + bioPlaceholder: "Hur länge du skatat, vad du gillar, vad du jobbar på…", + browseSpots: "Bläddra bland spots", + changePhoto: "Byt profilbild", + chipBio: "Bio", + chipPhoto: "Foto", + cityArea: "Stad / område", + created: "Du finns på kartan! 🛹", + custom: "Anpassad", + customHelper: "Din egen etikett — visas på ditt skatarkort i stället för en förinställd.", + customPlaceholder: "t.ex. OG, Weekend Warrior, Pensionerad…", + discoverable: "Andra skatare kan nu hitta dig.", + editFullProfile: "redigera din fullständiga profil", + fromProfile: "Från din profil", + heroEditPrefix: "Redigera din", + heroJoinPrefix: "Gå med i", + heroSuffix: "Directory", + homeHelper: "Skriv fritt, eller länka en riktig spot från kartan så att folk kan åka dit.", + homePlaceholder: "Lokal park / plaza — eller tryck på ”Bläddra bland spots”", + homeSpot: "Hemmaspot", + layerEnd: "för att ändra dem överallt.", + layerIntro: "Detta är ditt", + layerMid: ", byggt på din Nostr-profil. Ditt namn, foto, bio, lightning & verifiering kommer därifrån —", + layerWord: "skatarlager", + level: "Nivå", + linked: "Länkad till en spot på kartan", + loadingProfile: "Laddar din profil…", + loadingSpots: "Laddar spots…", + locationHelper: "Hjälper andra att hitta skatare nära sig. Endast ett grovt område delas.", + loginToJoin: "Logga in för att gå med", + loginToJoinDesc: "Skapa din skatarprofil så att communityt kan hitta dig.", + mappedSpot: "Kartlagd spot", + noSpots: "Inga spots hittades än.", + noSpotsMatch: "Inga spots matchar din sökning.", + openMap: "Öppna kartan", + pickEverything: "Välj allt som passar din stil.", + pickHomeSpot: "Välj din hemmaspot", + pickStyles: "Välj dina stilar", + pickStylesDesc: "Välj minst en sak du skatar.", + profilePic: "Profilbild", + profilePicHelper: "Ditt skatarkort använder din Nostr-profilbild — samma bild överallt.", + publishingAs: "Publicerar som", + putOnMap: "Sätt mig på kartan", + searchSpots: "Sök spots efter namn eller stad…", + skateStory: "Din skate-historia", + stance: "Stance", + unlinkSpot: "Koppla bort spot", + updateButton: "Uppdatera min profil", + updated: "Profilen uppdaterad!", + whatYouSkate: "Vad du skatar *", + yearsPlaceholder: "t.ex. 8", + yearsSkating: "År av skating", + yourProfilePic: "Din profilbild", + zapsOn: "Zaps på", + }, + skaters: { + clearSearch: "Rensa sökning", + community: "Communityt", + countMany: "skatare", + countOne: "skatare", + editProfile: "Redigera min skatarprofil", + heroDesc: "Hitta ditt folk. Bläddra bland crewet av skatare som reppar SkateSpots — efter stil, stance, nivå och stad.", + nip05Verified: "NIP-05 verifierad", + noMatches: "Inga träffar", + noneDesc: "Bli den första att gå med i katalogen och sätta SkateSpots på kartan.", + noneTitle: "Inga skatare än", + noVerifiedMatch: "Inga verifierade skatare matchar", + searchPlaceholder: "Sök efter namn, stad eller npub…", + tryDifferentSearch: "Prova en annan sökning eller rensa dina filter.", + tryTurnOffVerified: "Prova att stänga av filtret ”Verifierad” för att se alla.", + verifiedFilterTitle: "Visa endast skatare med en verifierad NIP-05-identitet", + }, + skaterCard: { + inDirectory: "Du finns i skatarkatalogen", + joinDesc: "Lägg till din stance, dina stilar & nivå så att skatare kan hitta dig.", + joinTitle: "Gå med i skatarkatalogen", + }, + crewsStrip: { + allCrews: "Alla crews", + memberMany: "{{count}} medlemmar", + memberOne: "{{count}} medlem", + title: "Crews i den här scenen", + }, + labLink: { + coach: "Coach", + filmer: "Filmer", + editor: "Editor", + photographer: "Photographer", + builder: "Builder", + artist: "Artist", + graffiti: "Graffiti", + tattoo: "Tattoo", + trainer: "Trainer", + musician: "Musician", + judge: "Judge", + barber: "Barber", + organizer: "Organizer", + lab: "Lab", + linkedProfiles: "Länkade Lab-profiler", + desc: "Driver du också en studio, coaching eller byggtjänst? Länka dina Lab-listningar så att folk kan anlita ditt crew. Valfritt. När Lab-profilen också länkar tillbaka till detta crew visar båda en grön", + descEnd: "bricka.", + empty: "Du har inga Lab-profiler än. Skapa en i The Lab för att länka den här.", + }, + proUpgrade: { + goPro: "Go Pro", + optional: "· valfritt", + freeTo: "Gratis att lista. Pro lägger till en", + proBadge: "Pro-bricka", + featuredPlacement: "framhävd placering", + atTop: "högst upp i The Lab.", + active: "Aktiv", + benefit1: "Guld-”Pro”-bricka på din profil & dina kort", + benefit2: "Visas först när skatare bläddrar i The Lab", + benefit3: "Stöder SkateSpots — inga annonser, inga mellanhänder", + platformOwner: "Plattformsägare — Pro är alltid på.", + proActiveOne: "Pro aktiv · {{count}} dag kvar. Din profil kommer att framhävas.", + proActiveMany: "Pro aktiv · {{count}} dagar kvar. Din profil kommer att framhävas.", + context: "Din profil förblir live gratis efter att Pro löper ut — du förlorar bara brickan & boosten.", + }, + profilePreview: { + viewPublic: "Visa offentligt", + unnamed: "Namnlös skatare", + noHandle: "Inget handtag än", + }, + pyramid: { + pyramidWord: "PYRAMID", + rankingsWord: "RANKINGS", + subtitle: "Toppbidragsgivare i din stad", + yourRank: "Din placering", + keepContributing: "Fortsätt bidra för att klättra högre!", + topContributors: "Toppbidragsgivare", + noContributors: "Inga bidragsgivare än. Bli den första att lägga till en spot eller skapa ett evenemang!", + spots: "Spots", + events: "Evenemang", + total: "Totalt", + trust: "Förtroende", + }, + detail: { + joined: "Gick med", + about: "Om", + howWeWork: "Hur vi arbetar", + inTheBag: "I väskan", + hardware: "Hårdvara", + software: "Programvara", + eventsJudged: "Dömda evenemang", + eventsOrganized: "Anordnade evenemang", + spots: "Spots", + viewSpot: "Visa spot", + credentialsTitle: "Meriter & säkerhet", + selfAttested: "Självdeklarerat av coachen — inte verifierat av SkateSpots.", + formats: "Format", + levels: "Nivåer", + ages: "Åldrar", + languages: "Språk", + availability: "Tillgänglighet", + bookSession: "Boka en session", + portfolio: "Portfölj", + watchReel: "Titta på {{platform}}", + paymentsTitle: "Betalningar", + payWhatYouCan: "Betala vad du kan", + bookingFee: "Bokningsavgift", + payBookingFee: "Betala bokningsavgift", + bookingFeeNote: "Betalas direkt till coachen. SkateSpots håller eller återbetalar den inte.", + bookingFeeNoRail: "Den här coachen har ingen Lightning-adress angiven, så betalning i appen är inte tillgänglig — kontakta dem för att komma överens om betalning.", + serviceArea: "Serviceområde", + licensedInsured: "Licensierad / försäkrad", + studio: "Studio", + shopStudio: "Butik / studio", + booksOpen: "Bokningar öppna", + credentials: "Meriter", + remoteOnline: "Distans / online tillgängligt", + graffitiCrew: "Graffiti-crew", + act: "Akt", + listen: "Lyssna", + upcomingGigs: "Kommande gig", + past: "Tidigare", + experience: "Erfarenhet", + yearsCount: "{{count}} år", + rate: "Pris", + contact: "Kontakt", + sendMessage: "Skicka meddelande", + bookGig: "Boka för ett gig", + portfolioDomain: "Portfölj · {{domain}}", + manage: "Hantera", + admin: "Admin", + editProfile: "Redigera profil", + publishedTitle: "Du är live", + publishedBody: "Din profil är publicerad i The Lab. Dela den så att skatare kan hitta dig.", + manageRemove: "Ta bort din {{noun}}-profil från The Lab.", + adminTakeDown: "Ta ner den här {{noun}}-profilen. Den döljs i hela SkateSpots.", + entityLabel: "{{noun}}-profil", + deleteProfile: "Radera profil", + location: "Plats", + servicesSkills: "Tjänster & färdigheter", + noun: { + coach: "coach", + filmer: "filmer", + editor: "videoredigerare", + photographer: "fotograf", + builder: "byggare", + artist: "konstnär", + graffiti: "graffitikonstnär", + tattoo: "tatuerare", + trainer: "tränare", + musician: "musiker", + judge: "evenemangsdomare", + organizer: "evenemangsarrangör", + barber: "barberare", + profile: "profil", + }, + skillsTitle: { + skills: "Färdigheter", + servicesGear: "Tjänster & utrustning", + whatWeBuild: "Vad vi bygger", + whatTheyMake: "Vad de gör", + stylesWork: "Stilar & arbete", + styles: "Stilar", + focusSpecialties: "Fokus & specialiteter", + genresInstruments: "Genrer & instrument", + formatsSpecialties: "Format & specialiteter", + servicesStyles: "Tjänster & stilar", + eventTypesServices: "Evenemangstyper & tjänster", + }, + }, + rider: { + heroDesc: "Din verifierbara skataridentitet. Nostr-signerad, tryckfärdig, omöjlig att förfalska.", + heroDesc2: "Tjäna bevittnade färdighetsbrickor från andra skatare. Få parktillträdeskort. Dela ditt kort var som helst.", + headerTagline: "Nostr-signerad · tryckfärdig · QR-verifierad", + tabCard: "Mitt kort", + tabBadges: "Brickor", + tabAward: "Tilldela", + rendering: "Renderar…", + shareCard: "Dela kort", + savePng: "Spara PNG", + print: "Skriv ut", + copyId: "Kopiera ID", + cardType: "Korttyp", + licenseLabel: "Skater License", + licenseSub: "Din personliga åkaridentitet", + parkLabel: "Parktillträde", + parkSub: "Utfärda pass som parkägare", + theme: "Tema", + holoTitle: "Holografiskt skimmer", + holoDesc: "Animerad folieeffekt", + cardDetails: "Kortdetaljer", + skateStyle: "Skate-stil", + ridesFor: "Åker för", + ridesForPlaceholder: "Lokal butik…", + sponsors: "Sponsorer", + sponsorsPlaceholder: "Varumärken…", + showOnCard: "Visa på kortet", + zaps: "Zaps ⚡", + skills: "Färdigheter", + selected: "{{count}}/6 valda", + goldBadgesHint1: "Guldbrickor på ditt kort kommer från andra skatare som bevittnat dig — se", + goldBadgesHint2: ".", + parkOwnersOnly: "Endast parkägare.", + parkOwnersDesc: "Utfärda detta med samma Nostr-nyckel som publicerade din parklistning. Vem som helst kan skanna QR-koden och verifiera signaturen on-chain — ingen central myndighet behövs.", + parkDetails: "Parkdetaljer", + parkName: "Parknamn", + parkNamePlaceholder: "The Berrics…", + riderName: "Åkarnamn", + riderNamePlaceholder: "Namn på kortet", + riderNpub: "Åkarens Nostr-ID (npub)", + accessLevel: "Tillträdesnivå", + validThru: "Giltigt t.o.m.", + publishToNostr: "Publicera till Nostr", + badgesIntro: "Dessa brickor bevittnades och signerades av andra skatare på Nostr. De visas som guld ⭐-chips på ditt kort.", + earnMore: "Vill du tjäna fler? Skata framför någon och be dem bevittna ditt trick.", + awardSomeone: "Tilldela en bricka till någon annan", + youSawIt: "Du såg det hända", + youSawItDesc: "Signera beviset på Nostr. Det blir en del av deras permanenta register — kryptografiskt knutet till din nyckel.", + skillsWitnessed: "Färdigheter du bevittnade", + whereSeen: "Var såg du det?", + optional: "(valfritt)", + signingOnNostr: "Signerar på Nostr…", + awardBadge: "Tilldela bricka", + addRiderSkill: "Lägg till åkarens npub + minst en färdighet", + invalidNpub: "Ogiltig npub", + badgeAwarded: "🏅 Bricka tilldelad!", + badgeSent: "{{skills}} skickade.", + failed: "Misslyckades", + couldNotRender: "Kunde inte rendera kortet", + popupBlocked: "Popup blockerad", + popupBlockedDesc: "Tillåt popups för den här webbplatsen.", + linkCopied: "🔗 Länk kopierad!", + enterRiderNpub: "Ange åkarens npub", + parkPublished: "✅ Parktillträdeskort publicerat!", + publishFailed: "Publicering misslyckades", + noBadges: "Inga brickor än. Skata framför någon och be dem bevittna dina tricks!", + showMore: "Visa {{count}} fler", + witnessedBy: "Bevittnad av", + at: "på", + previewLicense: "Skater License", + previewSince: "Sedan {{year}}", + previewEvts: "Evts", + previewScan: "Skanna för att verifiera", + previewSkatepark: "Skatepark", + previewAccessPass: "Access Pass", + previewMemberName: "Medlemsnamn", + previewIssuedBy: "Utfärdat av parkägare · Nostr-signerat", + previewValidThru: "Giltigt t.o.m.", + previewNostrVerified: "Nostr-verifierad", + }, + craftFields: { + detailsTitle: "Ytterligare detaljer", + deliverables: "Leverabler", + turnaround: "Leveranstid", + surfaces: "Ytor / väggar", + maxSize: "Maxstorlek", + setLength: "Setlängd", + techRider: "Tech Rider", + travel: "Resa", + certifications: "Certifieringar", + insurance: "Försäkring", + permits: "Tillstånd", + deposit: "Deposition", + minimum: "Minimum", + modalities: "Modaliteter", + duration: "Bokningens längd", + drone: "Drönare", + leadTime: "Ledtid", + warranty: "Garanti", + }, + craftForm: { + profileImage: "Profilbild", + nameHeadline: "Namn / rubrik", + about: "Om", + aboutPlaceholder: "Berätta för skatare om ditt {{noun}}-arbete…", + required: "krävs", + nip05Title: "Lägg till NIP-05 för att bygga förtroende", + nip05Desc: "En NIP-05-identifierare hjälper skatare att verifiera att du är äkta. Rekommenderas starkt innan du listar dig.", + editingNote: "Redigerar din befintliga {{noun}}-profil — publicering ersätter den.", + location: "Plats", + pinned: "📍 Fäst på kartan ({{lat}}, {{lng}})", + experienceYears: "Erfarenhet (år)", + expPlaceholder: "t.ex. 5", + ratePlaceholder: "t.ex. 20k sats / per projekt", + contactLinks: "Kontakt & länkar", + phoneOptional: "Telefon (valfritt)", + emailOptional: "E-post (valfritt)", + socialPlaceholder: "Socialt (Instagram, etc.)", + gettingPaid: "Att få betalt", + updateProfile: "Uppdatera profil", + publishProfile: "Publicera profil", + rateLeftBlankNote: "Valfritt — lämna tomt om priset ovan räcker.", + sectionRequired: "{{section}} krävs", + sectionRequiredDesc: "Välj minst ett alternativ under \"{{section}}\".", + updated: "Profilen uppdaterad!", + created: "Profilen skapad!", + headlineExample: "Skate Coach Berlin", + }, + }, + socialUi: { + agentPanel: { + spot: "Spot", + event: "Evenemang", + labPro: "Lab pro", + gear: "Gear", + crew: "Crew", + description: "Känner till det här crewet — dess jams, roster & öppna call — plus den bredare scenen med livedata.", + greeting: "Yo! Jag är Sasquatch, {{crew}}s guide. Fråga mig om crewet — vårt nästa jam, vem som driver det, vad vi söker — eller den bredare scenen.", + suggestion1: "Vad är vårt nästa jam?", + suggestion2: "Vem driver det här crewet?", + suggestion3: "Vad letar vi efter?", + suggestion4: "Bästa spots nära oss?", + suggestion5: "Hur är vädret för skating?", + thinking: "Sasquatch tänker…", + placeholder: "Fråga om din lokala scen…", + disclaimer: "AI kan ha fel — länkar går till riktiga listningar.", + }, + badge: { + upcomingOne: "{{count}} kommande evenemang", + upcomingMany: "{{count}} kommande evenemang", + comingOne: "{{count}} evenemang på väg", + comingMany: "{{count}} evenemang på väg", + }, + bell: { + youAreIn: "Du är med i {{crew}}! 🛹", + membershipConfirmed: "Medlemskap bekräftat.", + couldNotConfirm: "Kunde inte bekräfta", + addedYouTo: "lade till dig i", + confirmToAppear: "Bekräfta för att visas som medlem.", + notifications: "Notiser", + notificationsNew: "Notiser ({{count}} nya)", + unreadCount: "{{count}} olästa notiser", + markRead: "Markera som lästa", + allClear: "Allt klart", + tabAll: "Alla", + tabTrades: "Byten", + tabSocial: "Socialt", + tabNews: "Nyheter", + tabCrews: "Crews", + checkingUpdates: "Söker efter uppdateringar…", + checkingTrades: "Söker efter erbjudanden och byten…", + loadingDrops: "Laddar de senaste släppen…", + emptyAll: "Erbjudanden, byten, zaps, svar, nyhetsbrev och crew-aktivitet visas här.", + emptyTrades: "Erbjudanden, moterbjudanden och bytesbekräftelser landar här — oavsett om du säljer, köper eller byter.", + emptySocial: "Zaps, reaktioner, reposts, omnämnanden, svar, evenemangs-RSVP:er och värd-uppdateringar landar här.", + emptyNews: "SkateSpots nyhetsbrev landar här. Prenumerera på nyhetsbrevssidan.", + emptyCrews: "Crew-inbjudningar, kollektivförfrågningar och medlemsförfrågningar visas här.", + subscribeBanner: "Prenumerera för att få nya släpp i din klocka", + read: "Läst", + allCaughtUp: "Du är helt uppdaterad", + }, + chat: { + hidden: "Dolt", + hideMessageAria: "Dölj detta meddelande", + hideMessageTitle: "Dölj meddelande (admin)", + messageHidden: "Meddelande dolt", + messageHiddenDesc: "Dolt från crewchatten för alla.", + messageHideFailed: "Kunde inte dölja meddelandet", + encryptionUnavailable: "Kryptering inte tillgänglig", + encryptionUnavailableDesc: "Din signerare stöder inte NIP-44-kryptering. Uppgradera ditt tillägg.", + messageFailed: "Meddelandet misslyckades", + couldNotSend: "Kunde inte skicka meddelandet.", + noOneToMessage: "Ingen att skicka meddelanden till än", + noOneToMessageDesc: "Det här crewet har inga andra medlemmar att chatta med.", + subject: "{{crew}} crewchatt", + title: "Crewchatt", + cordnBadgeTitle: "Dirigeras genom detta crews Cordn-koordinator över ContextVM. End-to-end-krypterat.", + private: "Privat", + privateBadgeTitle: "End-to-end-krypterat — endast crewmedlemmar kan läsa dessa meddelanden.", + encryptedCordn: "Krypterat & dirigerat genom crewets koordinator (Cordn) — inga meddelanden når publika reläer.", + encryptedNip17: "Krypterad gruppchatt för grundaren & alla listade crewmedlemmar.", + moderatorNote: " Du kan dölja meddelanden från crewet som moderator.", + loginToSee: "Logga in för att se om du kan gå med i crewchatten.", + membersOnly: "Den här chatten är privat för crewmedlemmar. Be grundaren lägga till dig i crewet för att delta i samtalet.", + noMessages: "Inga meddelanden än. Dra igång crewchatten — planera en session, dela en spot, hypa ett klipp.", + newMessages: "Nya meddelanden", + new: "Ny", + placeholder: "Skicka ett meddelande till ditt crew…", + sendAria: "Skicka meddelande", + }, + collectiveJoinRequest: { + addedTitle: "Lade till {{name}} i {{collective}} 🛹", + addedDesc: "De bekräftar från sin sida för att visas som verifierad medlem.", + couldNotAdd: "Kunde inte lägga till medlem", + couldNotDismiss: "Kunde inte avvisa", + addedDone: "Tillagd", + addedTo: "i", + dismissedDone: "Avvisade förfrågan från {{name}}", + wantsToJoin: "vill gå med", + alreadyOnRoster: "Redan i listan", + openCollective: "Öppna kollektiv", + dismiss: "Avvisa", + addToCollective: "Lägg till i kollektiv", + }, + collectiveMembers: { + confirmed: "Bekräftad", + pending: "Väntar", + pendingTooltip: "Listad av kollektivet — väntar på medlemmens bekräftelse.", + crewOnly: "Endast crew", + crewOnlyTooltip: "Den här medlemmen valde att endast vara synlig för crewkamrater. Du kan se dem eftersom du är i crewet.", + hiddenMember: "Dold medlem", + title: "Medlemmar", + verifiedOf: "{{confirmed}} av {{total}} verifierade — varje bekräftad medlem signerade med sin egen Nostr-nyckel.", + verifiedPerMember: "Medlemskap verifieras per medlem. Varje medlem bekräftar med sin egen Nostr-nyckel.", + adminsOne: "{{count}} admin hjälper till att driva crewet.", + adminsMany: "{{count}} admins hjälper till att driva crewet.", + }, + confirmMembership: { + public: "Offentlig", + crewOnly: "Endast crew", + confirmedTitle: "Medlemskap bekräftat!", + confirmedCrew: "Du är verifierad i {{name}} — endast synlig för crewkamrater.", + confirmedPublic: "Du visas nu som verifierad medlem i {{name}}.", + failed: "Kunde inte bekräfta", + addedTo: "Du har lagts till i {{name}}", + addedDesc: "Bekräfta ditt medlemskap så att det visas som verifierat på din och deras profil.", + yourVisibility: "Din synlighet", + confirming: "Bekräftar…", + confirmButton: "Bekräfta medlemskap", + }, + contacts: { + message: "Meddelande", + removePrivate: "Ta bort från privata kontakter", + savePrivate: "Spara till privata kontakter", + seoTitle: "Kontakter - SkateSpots", + seoDescription: "Din scen — crewkamrater, folk du följer och senaste konversationer, med privata krypterade kontakter.", + encryptionUnavailableDesc: "Din signerare stöder inte NIP-44-kryptering.", + removed: "Borttagen från privata kontakter", + saved: "Sparad till privata kontakter", + savedDesc: "Endast du kan se den här listan.", + updateFailed: "Kunde inte uppdatera kontakter", + loginTitle: "Din scen, på ett ställe", + loginDesc: "Logga in för att se dina crewkamrater, folk du följer och senaste konversationer — och håll en privat, krypterad kontaktlista.", + title: "Kontakter", + subtitle: "Din scen — crewkamrater, följda & konversationer", + filterPlaceholder: "Filtrera efter npub…", + tabCrew: "Crew", + tabFollows: "Följer", + tabDms: "DM", + tabSaved: "Sparade", + emptyCrewmates: "Inga crewkamrater än. Gå med i eller starta ett crew för att bygga ditt scennätverk.", + emptyFollowing: "Du följer ingen än.", + emptyDms: "Inga konversationer än. Skicka ett meddelande till en skatare för att starta en.", + savedHint: "Den här listan är krypterad till din nyckel — endast du kan läsa den. Tryck på stjärnan på någon för att lägga till dem.", + emptySaved: "Inga sparade kontakter än. Stjärnmärk folk från valfri flik för att bygga din privata adressbok.", + }, + conversation: { + unknown: "Okänd", + seoTitle: "Chatta med {{name}} - SkateSpots", + seoDescription: "Privat krypterad konversation", + sendFailed: "Meddelandet kunde inte skickas", + sendFailedDesc: "Försök igen om en stund.", + tradeConfirmed: "Byte bekräftat", + tradeConfirmedDesc: "Rykte uppdaterat för er båda.", + tradeConfirmFailed: "Kunde inte bekräfta bytet", + somethingWrong: "Något gick fel.", + soldNote: "Såld till {{name}}.", + saleConfirmed: "Försäljning bekräftad", + saleConfirmedDesc: "{{name}} kan nu bekräfta sin sida.", + saleConfirmFailed: "Kunde inte bekräfta försäljningen", + escrowRedeemed: "Escrow inlöst", + escrowRedeemedDesc: "Medlen finns nu i din Cashu-plånbok.", + escrowRedeemFailed: "Kunde inte lösa in escrow", + loginTitle: "Logga in för att se meddelanden", + secureLoginTitle: "Säker inloggning krävs", + secureLoginDesc: "Meddelanden kräver en säker signerarapp.", + encrypted: "Krypterat", + refresh: "Uppdatera", + didCompleteTrade: "Slutförde du det här bytet?", + recordedSale: "{{name}} registrerade försäljningen. Bekräfta för att uppdatera ryktet för er båda.", + confirm: "Bekräfta", + confirmSale: "Bekräfta den här försäljningen?", + askedToRecord: "{{name}} bad dig registrera det. Att bekräfta bygger rykte för er båda.", + confirmSaleButton: "Bekräfta försäljning", + redeemEscrow: "Lös in escrow", + escrowAppOnly: "Cashu-escrow är endast i appen — öppna SkateSpots på din telefon för att lösa in.", + startThread: "Skicka ett meddelande för att starta konversationen", + placeholder: "Skriv ett meddelande...", + e2eeNote: "Meddelanden är end-to-end-krypterade med NIP-17", + }, + coordinator: { + secondsAgo: "{{count}}s sedan", + minutesAgo: "{{count}}m sedan", + hoursAgo: "{{count}}h sedan", + daysAgo: "{{count}}d sedan", + statusIdle: "Inte kontrollerad", + statusChecking: "Kontrollerar…", + statusOnline: "Ansluten", + statusStale: "Tyst", + statusOffline: "Inte sedd", + statusError: "Onåbar", + notACoordinator: "Det där är ingen koordinator", + notACoordinatorDesc: "Klistra in en nprofile, en npub eller en cordn.net-länk.", + added: "Koordinator tillagd", + relayOne: "{{count}} relä", + relayMany: "{{count}} reläer", + lastSeen: "senast sedd {{time}}", + onlineDesc: "Annonserar. Grupper som använder den kan leverera meddelanden nu.", + staleDesc: "Hittad, men den har inte annonserat nyligen — den kan sova.", + offlineDesc: "Ingen annonsering sedd. Den kan vara privat (det är okej), eller helt enkelt offline.", + errorDesc: "Kunde inte nå reläerna.", + idleDesc: "Kontrollerar…", + checkingDesc: "Letar efter dess annonsering…", + eventFoundOne: "{{count}} händelse hittad.", + eventFoundMany: "{{count}} händelser hittade.", + check: "Kontrollera", + addLinkCopied: "Tilläggslänk kopierad", + copyFailed: "Kopiering misslyckades", + copyManually: "Kopiera den manuellt.", + addLink: "Lägg till länk", + removeConfirm: "Ta bort den här koordinatorn från den här enheten?", + scanToJoin: "Skanna i Cordn för att gå med i den här koordinatorn.", + noCoordinator: "Ingen koordinator än", + noCoordinatorDescA: "En koordinator levererar ditt crews", + encryptedWord: "krypterade", + noCoordinatorDescB: "gruppmeddelanden i ordning. Den ser vem, när och vilken grupp — aldrig innehållet. Välj en, eller kör din egen.", + change: "Byt koordinator", + addTitle: "Lägg till en koordinator", + add: "Lägg till", + scanQR: "Skanna en koordinator-QR", + inputPlaceholder: "nprofile… eller en cordn.net-länk", + runOwn: "Kör din egen", + runOwnDesc: "Den kan bo på en gammal telefon, en Raspberry Pi, eller vilken liten burk du lämnar på. Din grupp fortsätter fungera medan den är uppe — och du kan flytta gruppen när du vill.", + onPhone: "På en telefon", + onPhoneDesc: "Använd appen Cordn Coordinator och skanna dess QR här för att lägga till den.", + openCordn: "Öppna Cordn", + scanItsQR: "Skanna dess QR", + onServer: "På en server", + commandCopied: "Kommandot kopierat", + copyCommand: "Kopiera kommando", + androidSleep: "Android kan söva en telefonkoordinator. Räkna med att flytta en grupp då och då.", + privacyNote: "🔒 En koordinator ser endast chiffertext och metadata — aldrig meddelandeinnehåll. Kör din egen för att behålla även metadata som din.", + customTitle: "Anpassad chattkoordinator", + customBadge: "· experimentell · ditt eget relä", + customDescShort: "Valfritt — ditt crew har redan inbyggd end-to-end-krypterad chatt, så du behöver inte detta. Ställ bara in det om du kör din egen", + remove: "Ta bort", + pointerNote: "Endast pekare för nu: en wss://-endpoint används som crewets chattrelä; en https://- via det delade ContextVM-reläet. Riktig Cordn MLS är inte inkopplad än.", + cordnCoordinator: "Cordn-koordinator", + invalid: "Det där ser inte ut som en koordinator. Klistra in en nprofile, en cordn.net-länk eller en https/wss-URL.", + useMine: "Använd min koordinator", + }, + createCrew: { + seoTitle: "Skapa ett crew - SkateSpots", + seoDescription: "Skapa ditt skate-crew — hemmaplan, medlemmar och spots.", + loginRequired: "Inloggning krävs", + loginRequiredDesc: "Du måste logga in för att skapa ett crew.", + backToCrews: "Tillbaka till crews", + title: "Skapa ett crew", + intro: "Din skatefamilj — folket du skatar med. Bara ett namn räcker för att komma igång; allt annat är valfritt.", + }, + crew: { + seoTitleNamed: "{{name}} - SkateSpots Crew", + seoTitle: "Crew - SkateSpots", + seoDescription: "Ett skate-crew på SkateSpots.", + postHidden: "Inlägg dolt", + postHiddenDesc: "Borttaget från crewflödet för alla.", + postHideFailed: "Kunde inte dölja inlägget", + backToCrews: "Tillbaka till crews", + disband: "Upplös", + youAreCaptain: "Du är captain", + member: "Medlem", + askSasquatch: "Fråga Sasquatch", + agent: "Crew Agent", + agentDesc: "Ditt crews AI-guide — spots, evenemang, coaches & gear i närheten, med livedata.", + eventsTab: "Evenemang", + chatTab: "Chatt", + newMessages: "Nya meddelanden", + hostJam: "Anordna ett jam", + noEvents: "Inga crew-evenemang än. Anordna ett jam, en tävling eller meetup som crewet — det kopplar ditt crew till evenemangskalendern och låter folk zappa det.", + support: "Stöd", + zapCrew: "Zappa crewet", + bandTitle: "Crew Band", + bandTagline: "Livemusik · skate & sound", + listenTitle: "Lyssna: {{domain}}", + listen: "Lyssna på musiken", + setUpGig: "Ordna ett gig", + bookGigMessage: "Hej {{crew}} — intresserad av att boka {{band}} för ett gig. Är ni tillgängliga för att prata datum?", + messageAboutGig: "Meddelande om ett gig", + gigHintA: "lägger till ett musikevenemang i kalendern med detta crew som värd.", + messageShort: "Meddelande", + gigHintB: "öppnar ett krypterat DM till crewet för att ordna datum & detaljer.", + homeSpots: "Hemmaspots", + viewSpot: "Visa spot", + seeOnMap: "Se på kartan →", + founderLinks: "Grundare & länkar", + startedBy: "Startat av {{name}}", + opens: "Öppnar: {{domain}}", + }, + crews: { + seoTitle: "Crews - SkateSpots", + seoDescription: "Hitta ditt folk. Upptäck lokala skate-crews, kollektiv och communities nära dig.", + videoPartTooltip: "Det här crewet har ett videopart", + part: "Part", + bandTooltip: "Crew-band: {{name}}", + band: "Band", + focusAll: "Alla", + focusAllShort: "Alla", + focusDiy: "DIY", + focusPhoto: "Foto", + focusCoaching: "Coaching", + focusArt: "Konst", + focusMusic: "Musik", + focusPhysio: "Fysio", + focusMixed: "Blandat", + title: "Crews", + heroLine: "Din kartankrade skatefamilj — folket du skatar", + heroWith: "med", + heroRest: ", inte de du anlitar (det är The Lab).", + crewCountOne: "{{count}} crew", + crewCountMany: "{{count}} crews", + cityCountOne: "{{count}} stad", + cityCountMany: "{{count}} städer", + createCrew: "Skapa crew", + create: "Skapa", + searchPlaceholder: "Sök crews efter namn eller stad…", + filterTitle: "Filtrera crews", + filterDesc: "Vad crewet gillar.", + nearMe: "Nära mig", + emptySearchTitle: "Inga crews matchar din sökning", + emptySearchHint: "Inget hittades för ”{{query}}”. Prova ett annat namn eller stad.", + clearSearch: "Rensa sökning", + emptyFocusTitle: "Inga {{label}}-crews än", + emptyFocusHint: "Ingen hissar ”{{label}}”-flaggan här än. Visa alla crews, eller starta det själv.", + showAll: "Visa alla crews", + claimTitle: "Gör anspråk på din lokala scen", + claimHint: "Inga crews planterade här än. Bli den första — starta ditt crew, länka dina hemmaspots och sätt din scen på kartan så att alla kan hitta den.", + }, + crewCoordinator: { + privateChat: "Privat crewchatt", + on: "På", + defaultA: "Fliken", + chatWord: "Chatt", + defaultB: "är", + e2ee: "end-to-end-krypterad", + defaultC: "för grundaren och alla listade medlemmar — inget att ställa in. Meddelanden förseglas till varje medlems nyckel (NIP-17), så bara ert crew kan läsa dem.", + advancedA: "Avancerat: kör din egen", + cordnCoordinator: "Cordn-koordinator", + routeThrough: "Dirigera chatten genom den", + coordinator: "Koordinator", + deliveredOver: "Levereras över", + sharedRelay: "— det delade ContextVM-reläet.", + ownRelay: "— ert crews eget relä.", + chatLive: "Privat chatt är live", + routesA: "Fliken", + routesB: "dirigeras genom den här koordinatorn: meddelanden är end-to-end-krypterade (NIP-44, förseglade till varje medlem), så den hanterar bara förseglad trafik.", + publicWarning: "Obs: den adresseras över det delade ContextVM-reläet, så chiffertexten och dess metadata (vilket crew, och när) är offentligt synliga — bara inte läsbara. Peka crewet mot ett privat wss://-relä för att hålla även det privat.", + ownRelaySafe: "Inget crew-specifikt lämnar ert crews eget relä.", + manage: "Hantera koordinator", + open: "Öppna {{domain}}", + runBy: "Koordinator som körs av", + }, + dms: { + securityReminder: "Säkerhetspåminnelse", + phishingStrong: "SkateSpots skickar aldrig DM till dig", + phishingRest: "och ber dig verifiera ditt konto, dela dina nycklar eller skicka betalningar. Om någon utger sig för att vara SkateSpots-support via DM — det är en scam.", + dismissReminder: "Stäng säkerhetspåminnelsen", + peopleCount: "{{count}} personer", + youPrefix: "Du: ", + unreadMessages: "Olästa meddelanden", + seoTitle: "Meddelanden - SkateSpots", + seoDescription: "Privata krypterade meddelanden med skateboard-communityt", + loginTitle: "Logga in för att komma åt meddelanden", + loginDesc: "Privat, krypterad meddelandetjänst med skatare i communityt", + secureLoginTitle: "Säker inloggning krävs", + secureLoginDesc: "Privata meddelanden kräver en säker signerarapp för att kryptera dina konversationer.", + onAndroid: "På Android:", + useAmber: "Använd appen Amber", + getAmber: "Hämta Amber →", + onIOS: "På iOS:", + iosHint: "Prova att logga in med en bunker-anslutning (nsec.app) från Inställningar", + browserHint: "Prova att logga in med ett webbläsartillägg som Alby eller nos2x som stöder kryptering.", + title: "Meddelanden", + subtitleFull: "End-to-end-krypterat med NIP-17", + subtitleShort: "Krypterat", + newMessage: "Nytt meddelande", + groups: "Grupper", + loadFailed: "Kunde inte ladda meddelanden", + emptyTitle: "Inga meddelanden än", + emptyDesc: "Starta en konversation med någon i communityt", + startConversation: "Starta en konversation", + undecryptableOne: "{{count}} krypterat meddelande kunde inte öppnas av din signerare.", + undecryptableMany: "{{count}} krypterade meddelanden kunde inte öppnas av din signerare.", + }, + editCrew: { + seoTitleNamed: "Redigera {{name}} - SkateSpots", + seoTitle: "Redigera crew - SkateSpots", + seoDescription: "Redigera ditt skate-crew.", + loginRequired: "Inloggning krävs", + notYours: "Inte ditt crew", + notYoursDesc: "Endast crewets grundare kan redigera detta crew.", + backToCrew: "Tillbaka till crew", + title: "Redigera crew", + }, + form: { + add: "Lägg till", + added: "Tillagd", + addNameInBasicsA: "Lägg till ett crewnamn igen under", + addNameInBasicsB: "för att slutföra.", + adminsDescA: "Gör betrodda medlemmar till", + adminsWord: "admins", + adminsDescB: "— de kan bjuda in medlemmar och moderera crewets flöde & chatt med sina egna nycklar. Du (grundaren) är alltid ägare av crewets identitet.", + agentDescA: "Lägg till", + agentDescB: ", en AI-guide som faktiskt känner ditt crew. Medlemmar kan fråga om", + agentDescC: "— plus spots, evenemang, coaches och gear i närheten från livedata i SkateSpots. Körs direkt i webbläsaren; inga nycklar eller setup. Det är tidigt (gratisnivå-AI, så ibland långsamt).", + agentDescStrong: "ert nästa jam, vem som driver crewet, vad ni söker och er vibe", + agentEnabledNote: "Sasquatch visas på din crew-sida när du sparar.", + bandDesc: "Har ni ett band? Skate-scener och lokal musik går hand i hand — lägg in ert bandnamn och en länk till musiken.", + bandFooterA: "För en fullständig bandprofil (genrer, instrument, gigs), skapa en", + musicianWord: "Musician", + bandFooterB: "i The Lab och länka den sedan under", + linkedLabWord: "Länkade Lab-profiler", + bandFooterC: "ovan.", + bandMusicWord: "Band & musik", + bandName: "Bandnamn", + bandNamePlaceholder: "t.ex. The Bail Outs", + bandNudgeA: "Ni har ett band — tryck för att ställa in er", + crewTypeWord: "Crew-typ", + bandNudgeB: "till", + bandNudgeC: "så att ni också syns i The Labs musikscen.", + beta: "Beta", + bioLabel: "Om / manifest", + bioPlaceholder: "Vilka ni är, vad ni skatar, er historia...", + continue: "Fortsätt", + crewCreated: "Crew skapat!", + crewUpdated: "Crew uppdaterat!", + crewName: "Crewnamn", + crewOnlyWord: "Endast crew", + crewType: "Crew-typ", + crewTypeDescA: "Är ert crew fokuserat på ett hantverk? Välj ett för att även synas i den scenen i", + theLab: "The Lab", + crewTypeDescB: ". Vanliga skate-crews förblir", + mixedWord: "Blandat", + crewTypeDescC: ".", + customVibeHint: "Lägg till din egen vibe eller fokus med ett #", + customVibePlaceholder: "t.ex. downhill, night-sessions, no-comply", + editDesc: "Ditt crews identitet, hemmaplan och medlemmar", + enableAgent: "Aktivera Crew Agent", + enableTreasury: "Aktivera crewkassa", + failed: "Misslyckades", + founded: "Grundat (år)", + geolocationUnsupported: "Geolokalisering stöds inte", + gettingLocation: "Hämtar...", + goalHint: "Se till att din Nostr-profil har en Lightning-adress (lud16) så att bidrag kan landa.", + goalPlaceholder: "t.ex. Gjut DIY-spoten", + goalTarget: "Mål (sats)", + goalWhat: "Vad är målet?", + homeSpots: "Hemmaspots", + homeSpotsDesc: "Länka spotsen ert crew hänger på — de kopplas till ert crew på kartan", + homeTurf: "Hemmaplan (stad / område)", + homeTurfPlaceholder: "Bristol, UK", + instagramDetected: "Instagram-klipp upptäckt", + invalidMember: "Ange en giltig npub, nprofile eller hex-pubkey.", + latitude: "Latitud", + leaveBlankLocation: "Lämna tomt för att behålla nuvarande hemmaplats.", + links: "Länkar", + locationError: "Platsfel", + locationFound: "Plats hittad", + logoAlt: "Crew", + logoHint: "En logotyp gör ditt crew omedelbart igenkännbart på kartan och i flöden. Kvadratiskt fungerar bäst.", + logoLabel: "Crew-logotyp / foto", + logoUploaded: "Logotyp uppladdad", + longitude: "Longitud", + looksGood: "Ser bra ut", + makeAdmin: "Gör till admin", + mapPin: "Kartnål", + mapPinHint: "Sätt ert crew på kartan så att lokala kan hitta er. Tryck på knappen — ingen textinmatning behövs.", + memberAlreadyAdded: "Den medlemmen är redan tillagd.", + members: "Medlemmar", + membersDesc: "Lägg till crewets Nostr-konton. Varje medlem bekräftar med sin egen nyckel — tills dess visas de som ”väntar”.", + musicLink: "Musiklänk", + nameCrew: "Namnge ert crew", + nameCrewDesc: "Ett crew behöver ett namn innan du fortsätter.", + nameCrewFirst: "Namnge ert crew först", + nameHint: "Det enda du verkligen behöver. Du kan ändra det senare.", + namePlaceholder: "t.ex. Backyard Bandits", + nameRequired: "Namn krävs", + nameRequiredDesc: "Ge ert crew ett namn.", + nip05DescA: "Ett verifierbart handtag du kontrollerar på vilken domän som helst, t.ex.", + nip05DescB: ". Det verifieras mot crewets grundarnyckel, och du kan lägga till flera — var och en visar en grön bock när dess domän bekräftar den.", + nip05Label: "Crew NIP-05", + nip05Placeholder: "crew@dindoman.com", + nip05Add: "Lägg till", + nip05Invalid: "Ange ett handtag som crew@dindoman.com", + nip05TooMany: "Du kan lägga till upp till {{count}} handtag.", + nip05Unverified: "Ej kontrollerad", + nip05Remove: "Ta bort {{handle}}", + notAKeyA: "Det där ser inte ut som en Nostr-nyckel än — klistra in en", + notAKeyB: ",", + notAKeyC: ", eller hex-pubkey.", + onlyYouTubeInstagram: "Endast YouTube- och Instagram-länkar stöds.", + openCall: "Open Call", + openCallDescA: "Letar ni efter en filmer, editor eller nytt blod? Gå ut med en call — den visas på er crew-sida så att matchande folk från", + openCallDescB: "kan höra av sig.", + optional: "· valfritt", + optionalParen: "(valfritt)", + otherSocials: "Övriga sociala medier", + otherSocialsDesc: "Lägg till så många du vill — YouTube, TikTok, Discord, Telegram, etc.", + ownVisibility: "egen synlighet", + progress: "Framsteg", + publicWord: "Offentlig", + publishedToScene: "Publicerat till scenen.", + publishFailed: "Kunde inte publicera", + publishing: "Publicerar...", + ready: "Redo", + readyToRollA: "Redo att köra — tryck på", + readyToRollB: "när du vill.", + removeAdminRole: "Ta bort adminroll", + removeMember: "Ta bort medlem", + removeSocial: "Ta bort social länk", + removeVibe: "Ta bort {{vibe}}", + roles: "Roller:", + sasquatch: "Sasquatch", + saveCrew: "Spara crew", + skipToEnd: "Hoppa till slutet", + socialPlaceholder: "@användarnamn eller länk", + sponsorDesc: "Om en lokal butik backar ert crew, välj den här för att visa en ”Sponsored by”-banner som länkar till butiken.", + stepAria: "Steg {{step}}: {{title}}", + stepBasics: "Grunderna", + stepBasicsShort: "Bas", + stepBasicsHint: "Bara det nödvändigaste — du kan dra igång ett crew med bara detta steg.", + stepVibe: "Identitet & vibe", + stepVibeShort: "Vibe", + stepVibeHint: "Hur ert crew syns i appen. Allt valfritt.", + stepSquad: "Squad & spots", + stepSquadShort: "Squad", + stepSquadHint: "Lägg till ditt folk och er hemmaplan. Du kan alltid göra detta senare.", + stepExtras: "Extra", + stepExtrasShort: "Extra", + stepExtrasHint: "Power-ups för senare — hoppa över allt du är osäker på.", + extrasAllOptional: "Allt i detta steg är valfritt.", + groupIdentity: "Identitet", + groupIdentityHint: "Handtag, länkar", + groupAi: "Sasquatch AI", + groupShowcase: "Showcase", + groupPayments: "Betalningar & kassa", + groupIntegrations: "Integrationer", + groupAdvanced: "Avancerat", + groupAdvancedHint: "experimentell", + pro: "Pro", + agentProNote: "Drivs av Sasquatch. Pro får de bästa modellerna; utan Pro används en gratis fallback.", + stepOf: "Steg {{step}} av {{total}}", + treasuryDescA: "Samla sats för ett gemensamt mål — fixa den lokala DIY-spoten, en crewresa, en prispott för tävling. Det är ett transparent Lightning-mål; zaps går", + treasuryDescStrong: "direkt till din plånbok", + treasuryDescB: "(via din profils Lightning-adress). SkateSpots håller aldrig medlen.", + upload: "Ladda upp", + uploadFailed: "Uppladdning misslyckades", + useCurrentLocation: "Använd nuvarande plats", + vibeLabel: "Vibe / fokus", + videoDescA: "Ert crews fulla part, montage eller senaste klipp. Klistra in en", + videoDescB: "länk — den spelas direkt på er crew-sida.", + visibilityDescA: "Varje medlem styr sin", + visibilityDescB: "— när de bekräftar från sin nyckel kan de välja", + visibilityDescC: "— dolt för utomstående). Du kan inte ställa in detta åt dem; det är deras val.", + website: "Webbplats", + yourRoles: "Dina roller (Team Leader)", + youtubeDetected: "YouTube-video upptäckt", + invalidUrl: "Ange en giltig länk (t.ex. https://example.com).", + }, + groupConversation: { + seoTitle: "Gruppchatt - SkateSpots", + invalidLink: "Den här gruppchatt-länken är ogiltig.", + loginTitle: "Logga in för att se den här gruppen", + secureSignerTitle: "Säker signerare krävs", + secureSignerDesc: "Gruppmeddelanden kräver en NIP-44-kapabel signerare.", + encryptedGroup: "End-to-end-krypterad grupp", + empty: "Inga meddelanden än — säg hej till gruppen.", + placeholder: "Skicka ett meddelande till gruppen...", + }, + hero: { + established: "Grundat {{year}}", + teamLeader: "Team Leader: {{name}}", + ledBy: "Leds av", + }, + inviteCard: { + acceptedTitle: "Inbjudan accepterad 🛹", + acceptedDesc: "Crewets grundare bekräftar medlemmar på {{crew}}. Du visas i listan när de godkänner.", + couldNotAccept: "Kunde inte acceptera", + couldNotDecline: "Kunde inte avböja", + acceptedDone: "Accepterad —", + confirmsMembers: "bekräftar medlemmar", + declinedDone: "Avböjde inbjudan till {{crew}}", + invitedYou: "bjöd in dig att gå med", + admin: "Admin", + accept: "Acceptera", + decline: "Avböj", + }, + inviteDialog: { + messageIntro: "Yo — gå med i {{crew}}-crewet på SkateSpots 🛹", + messageBody: "Logga in med din Nostr-nyckel och begär sedan att gå med från crew-sidan.", + copyFailed: "Kopiering misslyckades", + shareTitle: "Gå med i {{crew}}", + sentTitle: "Inbjudan skickad! 🛹", + sentDesc: "De får en notis om att acceptera eller avböja.", + couldNotSend: "Kunde inte skicka inbjudan", + trigger: "Bjud in", + title: "Bjud in till {{crew}}", + description: "Skicka en inbjudan till någons Nostr-nyckel, eller dela en länk.", + sendTab: "Skicka inbjudan", + shareTab: "Dela länk", + npubLabel: "Skatarens npub", + invalidNpub: "Det där ser inte ut som en giltig npub.", + noteLabel: "Notis", + optional: "(valfritt)", + notePlaceholder: "Kom och skata med oss…", + inviteAsAdmin: "Bjud in som admin", + inviteAsAdminDesc: "Kan hantera crewet & bjuda in andra.", + sendButton: "Skicka inbjudan", + sendFooter: "De får en notis om att acceptera eller avböja. Medlemskap räknas först när de accepterar.", + inviteLink: "Inbjudningslänk", + messageLabel: "Meddelande", + copyMessage: "Kopiera meddelande", + founderHint: "Som grundare kan du också lägga till en medlems nyckel direkt, sedan bekräftar de.", + addMemberSettings: "Lägg till medlem i crew-inställningar", + }, + joinRequest: { + moreCount: "+{{count}} fler", + addedTitle: "Lade till {{name}} i {{crew}} 🛹", + addedDesc: "De bekräftar från sin sida för att visas som medlem.", + vouchedTitle: "Du vouchade för {{name}} 🤝", + vouchedDesc: "Grundaren av {{crew}} ser din rekommendation och kan lägga till dem.", + couldNotEndorse: "Kunde inte rekommendera", + endorsedDoneA: "Du vouchade för", + endorsedDoneB: "— grundaren bekräftar", + vouchedBy: "Vouchad av", + approveAndAdd: "Godkänn & lägg till", + addToCrew: "Lägg till i crew", + vouchedWaiting: "Vouchad — väntar på grundaren", + vouchForThem: "Vouch för dem", + leadershipOnly: "Endast crewledning.", + adminHelp: "Admins kan inte lägga till medlemmar direkt — en vouch säger till grundaren att du backar den här åkaren.", + }, + leadership: { + teamLeader: "Team Leader", + captain: "Captain", + verifiedMember: "Verifierad medlem", + messageName: "Meddelande till {{name}}", + title: "Ledning", + captainsOne: "{{count}} Captain", + captainsMany: "{{count}} Captains", + footer: "Team Leader styr listan; Captains hjälper till att bjuda in, anordna jams och hålla crewet ordning.", + }, + linkField: { + title: "Länkat crew", + description: "Driver du också ett crew? Länka det så att folk kan hoppa mellan din studio och ditt crew. Valfritt. Länka det här crewet tillbaka till profilen från crew-editorn så visas en grön", + descriptionRest: "bricka på båda.", + none: "Du har inga crews än. Skapa ett på crew-sidan för att länka det här.", + linkedCrew: "Länkat crew ({{id}})", + }, + lookingFor: { + title: "Open Call", + subtitle: "Det här crewet letar efter:", + }, + memberVisibility: { + updatedTitle: "Synlighet uppdaterad", + updatedCrew: "Du visas nu endast för crewkamrater.", + updatedPublic: "Du visas nu offentligt i det här crewet.", + couldNotUpdate: "Kunde inte uppdatera", + title: "Din synlighet i det här crewet", + save: "Spara synlighet", + }, + newMessage: { + inCrew: "I ditt crew: {{crews}}", + crewmate: "Crewkamrat", + following: "Följer", + invalidKey: "Det där ser inte ut som en giltig npub eller publik nyckel.", + description: "Sök bland ditt folk efter namn, eller klistra in en npub för att meddela vem som helst. Välj två eller fler för att starta en grupp.", + searchPlaceholder: "Sök namn eller klistra in npub1...", + messageThisKey: "Meddela den här nyckeln", + loadingPeople: "Laddar ditt folk...", + noPeople: "Inga crewkamrater eller följda än.", + noPeopleHint: "Klistra in någons npub ovan för att starta en konversation.", + yourCrews: "Dina crews", + selected: "{{count}} valda", + startGroup: "Starta grupp ({{count}})", + message: "Meddelande", + }, + nip05: { + mismatch: "Den här domänen pekar handtaget mot en annan Nostr-nyckel än crewets grundare. Inte verifierad.", + verified: "Verifierad — domänen bekräftar att detta handtag tillhör crewets grundarnyckel.", + }, + requestCollective: { + sentTitle: "Förfrågan skickad 🤝", + sentDesc: "{{name}} ser den i sina notiser och kan lägga till dig.", + couldNotSend: "Kunde inte skicka förfrågan", + title: "Gå med i detta kollektiv", + waiting: "Förfrågan skickad — väntar på {{name}}.", + askA: "Be crewet bakom", + askB: "att lägga till dig i listan. De får en notis och kan lägga till dig med ett tryck.", + placeholder: "Valfritt: berätta varför du skulle passa…", + sendButton: "Skicka förfrågan", + }, + requestToJoin: { + sentTitle: "Förfrågan skickad! 🛹", + sentDesc: "{{crew}}s ledning ser den i sina notiser.", + couldNotSend: "Kunde inte skicka förfrågan", + trigger: "Begär att gå med", + title: "Gå med i {{crew}}", + description: "Meddelar crewets grundare & admins så att de kan lägga till dig.", + placeholder: "Säg hej — var du skatar, vilka du känner, varför du vill in…", + sending: "Skickar…", + sendButton: "Skicka medlemsförfrågan", + }, + sponsorBanner: { + loading: "Laddar sponsor…", + sponsoredBy: "Sponsrad av", + }, + sponsorPicker: { + selected: "Sponsor vald", + setLoading: "Sponsor satt (butik laddas…)", + set: "Sponsor satt", + clearAria: "Rensa sponsor", + searchPlaceholder: "Sök skatebutiker efter namn eller stad…", + loading: "Laddar butiker…", + noMatch: "Inga butiker matchar — prova en annan sökning.", + none: "Inga butiker hittades än.", + }, + treasury: { + title: "Crewkassa", + ofGoal: "av {{target}}-mål", + goalReached: "Målet nått!", + funded: "{{percent}}% finansierat", + contributionOne: "{{count}} bidrag", + contributionMany: "{{count}} bidrag", + daysLeft: "{{days}}d kvar", + closed: "stängd", + nonCustodial: "Icke-förvarande · zaps går direkt till crewets Lightning-plånbok", + }, + userStatus: { + atSpot: "📍 På en spot", + autoClears: "⏱️ Rensas automatiskt om {{min}} min", + }, + video: { + title: "Partet", + fullVideo: "Full video · montage", + latestClip: "Senaste klippet", + watch: "Titta", + iframeTitle: "{{crew}} — video", + playAria: "Spela {{crew}}-video", + thumbAlt: "{{crew}} videominiatyr", + instagramTitle: "Instagram-klipp", + }, + vouch: { + removedTitle: "Vouch borttagen", + vouchedTitle: "Vouchad!", + removedDesc: "Du vouch​ar inte längre för {{name}}.", + vouchedDesc: "Du vouchade för {{name}}. Scenen litar på sina egna.", + couldNotVouch: "Kunde inte voucha", + title: "Scen-vouches", + sceneVerified: "Scen-verifierad", + vouched: "Vouchad", + newUnvouched: "Ny · ej vouchad", + checking: "Kollar scenen…", + empty: "Inga vouches än. Vouches från skatare i dina kretsar är den bästa signalen på att någon är äkta — inte en slumpmässig person som vandrat in.", + countOne: "{{count}} vouch", + countMany: "{{count}} vouches", + trusted: "{{count}} från skatare i ditt förtroendenätverk", + remove: "Ta bort vouch", + vouchFor: "Vouch för {{name}}", + ownerNote: "Skatare som känner till ditt arbete kan voucha för dig här.", + }, + }, +}; export default svBatch5; diff --git a/src/i18n/sv/batch6.ts b/src/i18n/sv/batch6.ts index 163bf15..795277c 100644 --- a/src/i18n/sv/batch6.ts +++ b/src/i18n/sv/batch6.ts @@ -1,4 +1,1948 @@ -/** sv — batch 6. Filled by the translation pass; empty until then. */ -const svBatch6 = {}; +/** sv — batch 6. Filled by the translation pass. */ +const svBatch6 = { + placesUi: { + addToCalendar: { + add: "Lägg till i kalender", + appleOutlook: "Apple / Outlook (.ics)", + google: "Google Kalender", + }, + attendees: { + goingCount: "kommer", + goingTab: "Kommer ({{count}})", + interestedTab: "Intresserade ({{count}})", + nobodyGoing: "Ingen har bekräftat ännu.", + nobodyInterested: "Ingen har markerat intresse ännu.", + noRsvps: "Inga RSVP ännu — bli först med att säga att du kommer.", + trusted: "Betrodd", + trustedTitle: "Någon du följer eller en betrodd kartläggare", + youTrust: "du litar på", + }, + bounty: { + addressCoords: "Adress och koordinater", + basic: "Grundläggande", + contactInfo: "Kontaktinfo", + description: "Beskrivning", + earningPotential: "Intjäningspotential", + excellent: "Utmärkt!", + gettingStarted: "Kom igång", + good: "Bra", + onePhoto: "Minst 1 foto", + openingHours: "Öppettider", + shopName: "Butiksnamn", + threePhotos: "3+ foton", + tip: "💡 Högre kvalitet = fler zaps från communityn!", + }, + calendar: { + allDay: "Hela dagen", + eventDay: "Eventdag", + eventsOnDay: "{{count}} event", + eventsThisMonth: "event denna månad", + going: "kommer", + months: { + january: "Januari", + february: "Februari", + march: "Mars", + april: "April", + may: "Maj", + june: "Juni", + july: "Juli", + august: "Augusti", + september: "September", + october: "Oktober", + november: "November", + december: "December", + }, + nextMonth: "Nästa månad", + nothingOnDay: "Inget den här dagen.", + prevMonth: "Föregående månad", + tapHighlighted: "Tryck på en markerad dag för att se vad som händer.", + today: "Idag", + tourDay: "Tourdag", + toursOnDay: "{{count}} tours", + toursThisMonth: "tours denna månad", + weekdays: { + sun: "Sön", + mon: "Mån", + tue: "Tis", + wed: "Ons", + thu: "Tors", + fri: "Fre", + sat: "Lör", + }, + weekdaysShort: { + sun: "S", + mon: "M", + tue: "T", + wed: "O", + thu: "T", + fri: "F", + sat: "L", + }, + }, + countdown: { + ended: "Avslutad", + happeningNow: "Händer nu", + inDays: "Om {{count}} dagar", + inHoursMins: "Om {{hours}}h {{mins}}m", + inMins: "Om {{count}} min", + startingNow: "Börjar nu", + tomorrow: "Imorgon", + }, + createEvent: { + add: "Lägg till", + addNewSpot: "Lägg till en ny spot →", + changeSpot: "Byt spot", + created: "Event skapat!", + createdDesc: "Ditt event har publicerats till nätverket.", + entryFee: "Anmälningsavgift", + entryFeeHint: "(valfritt — t.ex. \"500 sats\" eller \"50 kr\")", + entryFeePlaceholder: "Lämna tomt för gratis event", + featuring: "Med {{name}}", + featuringDesc: "Detta framträdande taggas som livemusik och visas i deras spellista.", + fundingGoal: "Finansieringsmål", + fundingGoalHint: "(valfritt — sats att crowdfunda via zaps)", + fundingGoalPlaceholder: "t.ex. 50000", + geoNotSupported: "Geolokalisering stöds inte", + geoNotSupportedDesc: "Din webbläsare stöder inte geolokalisering.", + hideSpots: "Dölj spots", + hostingAs: "Är värd som {{name}}", + hostingAsDesc: "Detta event visas på din crew-sida och taggas som crew-hosted.", + imageUploaded: "Bild uppladdad", + imageUploadedDesc: "Din bild har laddats upp.", + invalidDate: "Ogiltigt datum", + invalidDateDesc: "Ange ett giltigt startdatum och en giltig tid.", + invalidEnd: "Ogiltig sluttid", + invalidEndDesc: "Sluttiden måste vara efter starttiden.", + linkedTo: "Länkad till: {{title}}", + linkToSpot: "Länka till en Skate Spot", + linkToShop: "Länka till en Shop", + selectedShop: "Länkad till {{name}}", + selectShopHint: "Valfritt — hålls hos eller anordnas av en skate shop.", + selectShop: "Välj shop", + changeShop: "Byt shop", + hideShops: "Dölj shops", + searchShops: "Sök shops…", + noShopsMatch: "Inga shops matchar din sökning.", + noShopsAvailable: "Inga shops tillgängliga ännu.", + linkToTour: "Länka till en Tour (valfritt)", + linkTourDesc: "Länka detta event till en tour för att visa att det är en del av en större serie. Perfekt för nationella tours, internationella äventyr eller utmaningsdagar i World Destruction Tour.", + loadingSpots: "Laddar spots...", + loadingTours: "Laddar tours...", + locationError: "Platsfel", + locationFound: "Plats hittad", + locationFoundDesc: "Din nuvarande plats har angetts.", + logoUrl: "Logotyp-URL (valfritt)", + noSpotsAvailable: "Inga spots tillgängliga", + noSpotsMatch: "Inga spots matchar din sökning", + noTourLinked: "Ingen tour länkad", + optional: "(valfritt)", + pastDesc: "Välj ett datum och en tid i framtiden så att skatare kan RSVP:a och dyka upp.", + pastTitle: "Den starttiden ligger i det förflutna", + publishFailed: "Kunde inte publicera", + publishFeatured: "Publicera utvalt event", + removeSponsor: "Ta bort sponsor", + searchSpots: "Sök spots efter namn, plats eller kategori...", + selectedSpot: "Vald: {{name}}", + selectSpot: "Välj spot", + selectSpotHint: "Välj en spot från kartan där detta event äger rum", + selectTour: "Välj tour", + somethingWrong: "Något gick fel", + sponsorName: "Sponsorns namn", + sponsors: "Sponsorer", + sponsorsHint: "Har du en shop eller ett varumärke som står bakom? Lägg till deras logotyp — den visas som en \"Presented by\"-rad på eventet.", + startRequired: "Starttid krävs", + startRequiredDesc: "Ange när eventet börjar.", + titleRequired: "Titel krävs", + titleRequiredDesc: "Ange ett namn för detta event.", + uploadFailed: "Uppladdning misslyckades", + uploadFailedDesc: "Kunde inte ladda upp bilden", + websiteUrl: "Webbplats-URL (valfritt)", + }, + createShop: { + address: "Shopadress", + addressPlaceholder: "t.ex. 411 N Fairfax Ave, Los Angeles, CA 90036", + addressRequired: "Adress krävs", + addressRequiredDesc: "Ange din shopadress.", + contactHint: "Hjälp kunder att nå dig (minst en kontaktmetod rekommenderas)", + contactInfo: "Kontaktinformation", + created: "🎉 Shop tillagd!", + createdDesc: "Din skate shop finns nu på kartan. Skatare kan zappa dig för att säga tack!", + descriptionPlaceholder: "Berätta om din shop, vad du säljer, din specialitet...", + detailsDesc: "Berätta för communityn om din shop. Alla fält markerade med * är obligatoriska.", + email: "E-post", + hoursOfOperation: "Öppettider", + hoursPlaceholder: "t.ex. mån–lör 10–20, sön 12–18", + instagram: "Instagram", + invalidCoords: "Ogiltiga koordinater", + invalidCoordsDesc: "Ange giltig latitud (-90 till 90) och longitud (-180 till 180).", + latPlaceholder: "Latitud (t.ex. 34.0737)", + lngPlaceholder: "Longitud (t.ex. -118.3614)", + locationRequired: "Plats krävs", + locationRequiredDesc: "Ange koordinater eller använd din nuvarande plats.", + loginToAdd: "Du måste logga in för att lägga till en skate shop.", + namePlaceholder: "t.ex. Supreme Los Angeles", + nameRequired: "Butiksnamn krävs", + nameRequiredDesc: "Ange ett namn för din shop.", + phoneNumber: "Telefonnummer", + publishFailedDesc: "Något gick fel. Kontrollera konsolen för detaljer.", + shopPhotoAlt: "Shop", + shopPhotos: "Shopfoton", + subtitle: "Lista din shop på kartan och få kontakt med communityn", + upload: "Ladda upp", + }, + createTour: { + acceptedClipSources: "Godkända klippkällor", + acceptedClipSourcesDesc: "Vilka format accepterar du för klippinlämningar?", + accommodationInfo: "Boendeinfo", + accommodationPlaceholder: "Boenderekommendationer eller arrangemang, t.ex. \"Budgetvandrarhem längs rutten\", \"Campingutrustning krävs\", \"Airbnbs ingår\"", + addChallenge: "Lägg till utmaning", + addCity: "Lägg till en stad...", + addCountry: "Lägg till ett land...", + addShopFirst: "Lägg till en shop först", + alsoSelected: "Även valda:", + availabilityPlaceholder: "t.ex. Helger, Endast morgnar, Efter överenskommelse", + availabilityQuestion: "När är du vanligtvis tillgänglig?", + availableShops: "Tillgängliga skate shops ({{count}})", + challengeDescPlaceholder: "Valfri beskrivning...", + challenges: "Utmaningar", + challengesRequired: "Utmaningar krävs", + challengesRequiredDesc: "Lägg till minst en utmaning som teamen ska klara.", + challengesSecret: "Alla utmaningar är HEMLIGA fram till tävlingens startdatum. Teamen ser dem inte förrän då!", + challengeTitlePlaceholder: "Utmaningens titel, t.ex. \"Kickflip nerför 10 trappsteg\"", + citiesLabel: "Städer", + citiesOnTour: "Städer på touren", + cityPlaceholder: "t.ex. Berlin, Tyskland", + cityRegion: "Stad / Region", + cityRequired: "Stad/region krävs", + cityRequiredDesc: "Ange din stad eller region.", + clipAnyUrl: "🔗 Valfri URL", + clipBlossom: "📦 Blossom-uppladdning", + clipInstagram: "📸 Instagram", + clipYouTube: "▶️ YouTube", + competitionDates: "Tävlingsdatum", + competitionDatesWarning: "⚠️ Alla utmaningar är HEMLIGA fram till startdatumet! Teamen ser inte utmaningarna förrän tävlingen börjar.", + competitionLocations: "Tävlingsplatser", + competitionLocationsDesc: "Var ska teamen tävla? Lägg till alla städer och länder som ingår.", + coordsHint: "Koordinater är valfria. Lägg till dem för att nåla din mötesplats på kartan.", + countriesLabel: "Länder", + countriesRequired: "Länder krävs", + countriesRequiredDesc: "Lägg till minst ett land för din internationella tour.", + createdDestruction: "💀 WORLD DESTRUCTION TOUR SKAPAD!", + createdDestructionDesc: "Teamen kan registrera sig. Utmaningar avslöjas på startdatumet!", + createDestructionTour: "Skapa World Destruction Tour", + createdInternational: "✈️ Internationell tour skapad!", + createdInternationalDesc: "Ditt globala äventyr är listat! Få kontakt med skatare världen över.", + createdLocal: "🏠 Lokal tour skapad!", + createdLocalDesc: "Din tour är nu synlig. Skatare kan boka via DM!", + createdNational: "🚐 Nationell tour skapad!", + createdNationalDesc: "Din roadtrip är live! Börja koordinera med intresserade skatare.", + departure: "Avresa *", + departureRequired: "Avresedatum krävs", + departureRequiredDesc: "Ange när resan avgår så att skatare kan planera och boka.", + descriptionPlaceholder: "Beskriv vad skatarna kommer att uppleva: spots ni besöker, vibe, vad som gör din tour unik...", + destructionDesc: "Sätt upp din globala KOTR-liknande tävling — du bestämmer ALLT!", + discountHint: "Tourdeltagare kan visa sin bokningsbekräftelse i shopen för att få rabatten", + discountPercentage: "Rabattprocent", + dropTour: "Släpp en tour", + duration: "Längd", + durationHintDestruction: "Hur länge varar tävlingen? (1–12 månader)", + durationHintInternational: "Hur många veckor är äventyret? (upp till 2 månader)", + durationHintLocal: "Hur länge varar din typiska tour?", + durationHintNational: "Hur många dagar är roadtripen?", + durationWeeksMonths: "{{weeks}} veckor (~{{months}} månader)", + editTour: "Redigera tour", + enable: "Aktivera", + enabled: "Aktiverad", + endBeforeStart: "Slut före start", + endBeforeStartDesc: "Tävlingens slutdatum måste vara på eller efter startdatumet.", + endDate: "Slutdatum", + entryFeeHint: "Du behåller 95 % • Plattformen tar 5 % • Lämna tomt för gratis inträde", + entryFeePerTeam: "Anmälningsavgift per team (sats)", + entryFeePlaceholder: "t.ex. 100000", + entryPrizes: "Inträde och priser", + filmPremieres: "Teamfilmernas premiärer", + filmPremieresDesc: "Efter tävlingen blir varje teams klipp en hel film som kan ha premiär på lokala skate shops världen över.", + filmPremieresInfo: "🎥 Teamen sammanställer sina utmaningsklipp till en slutlig film. Shops kan anordna premiärevent som kopplar samman global tävling med lokala communityn.", + filmReleaseDate: "Filmsläppdatum (valfritt)", + filmReleaseDateHint: "När filmerna blir tillgängliga. Lämna tomt för att släppa direkt efter tävlingens slut.", + fixedSession: "Fast session", + fixedSessionDesc: "Ett bestämt datum och en bestämd tid", + flexible: "Flexibel", + flexibleDesc: "Boka när som helst via DM", + hide: "Dölj", + howDestruction1: "• Global teamtävling — upp till 12 månader lång", + howDestruction2: "• DU bestämmer utmaningar, poäng och priser — vi tillhandahåller bara plattformen", + howDestruction3: "• Alla utmaningar är HEMLIGA fram till tävlingens startdatum", + howDestruction4: "• Klipp via Blossom-uppladdning ELLER externa länkar (YouTube, Instagram, valfri URL)", + howDestruction5: "• Endast avancerad nivå — alla spottyper ingår automatiskt", + howDestruction6: "• Plattformen tar bara 5 % av anmälningsavgifterna (INTE prispotten)", + howDestructionTitle: "💀 WORLD DESTRUCTION TOUR — KOTR-stil", + howInternational1: "• Gränsöverskridande äventyr genom flera länder", + howInternational2: "• Du sätter priset — plattformen tar bara 5 %", + howInternational3: "• Ange avrese- och returdatum så att teamet kan boka flyg", + howInternational4: "• Koppla samman skatare från hela världen", + howInternational5: "• Skapa oförglömliga globala upplevelser!", + howInternationalTitle: "Så fungerar internationella tours", + howItWorks: "Så fungerar det:", + howLocal1: "• Du sätter ditt pris — plattformen tar 10 %", + howLocal2: "• Dolda spots förblir dolda — du visar dem personligen", + howLocal3: "• Håll en schemalagd session eller håll det flexibelt / efter överenskommelse", + howLocal4: "• Skatare bokar via DM, betalar i Lightning och kan lägga till det i sin kalender", + howLocal5: "• Bygg ditt rykte med recensioner och zaps", + howLocalTitle: "Så fungerar lokala tours", + howNational1: "• Roadtrips mellan flera städer i ditt land", + howNational2: "• Du sätter priset — plattformen tar bara 7 %", + howNational3: "• Ange resedatum så att skatare kan planera ledighet och resa", + howNational4: "• Inkludera transport- / boendeinfo för teamet", + howNational5: "• Bygg legendariska skateäventyr!", + howNationalTitle: "Så fungerar nationella tours", + imageUploadedDesc: "Din tourbild har laddats upp.", + incompleteCoords: "Ofullständiga koordinater", + incompleteCoordsDesc: "Ange både latitud och longitud, eller lämna båda tomma.", + internationalDetails: "Detaljer för internationellt äventyr", + languagesSelected: "{{count}} valda", + languagesSpoken: "Språk som talas", + latOptional: "Latitud (valfritt)", + lngOptional: "Longitud (valfritt)", + loadingProfile: "Laddar profil...", + loadingProfileDesc: "Kontrollerar din NIP-05-verifieringsstatus.", + loadingShops: "Laddar shops...", + localShopPremieres: "Lokala shop-premiärer", + localShopPremieresDesc: "Skate shops världen över kan anordna filmkvällar", + loginToCreate: "Du måste logga in för att skapa en tour.", + maxGroupSize: "Max gruppstorlek", + maxTeams: "Max antal team", + maxTeamSize: "Max teamstorlek", + meetingLocationSet: "Din nuvarande plats har angetts som mötesplats.", + meetingPointDesc: "Var ska ni möta tourdeltagarna? Välj en offentlig, välkänd plats.", + meetingPointLabel: "Mötesplats", + meetingPointPlaceholder: "t.ex. Warschauer Straße station", + meetingPointRequired: "Mötesplats krävs", + meetingPointRequiredDesc: "Ange var du ska möta tourdeltagarna.", + minTeamSize: "Min teamstorlek", + noChallenges: "Inga utmaningar ännu", + noChallengesDesc: "Lägg till utmaningar som teamen ska klara", + noPartnerShop: "Ingen partner-shop", + noShopsFound: "Inga skate shops hittades i nätverket ännu.", + noShopsRegistered: "Inga skate shops registrerade ännu", + onlineRelease: "Onlinesläpp", + onlineReleaseDesc: "Släpp även filmer på YouTube/Nostr", + organizerContact: "Arrangörens kontaktuppgifter", + organizerContactHint: "Detta blir synligt för registrerade team", + organizerContactPlaceholder: "Hur kan teamen kontakta dig? t.ex. Nostr-npub, e-post, Telegram, etc.", + partnerDiscountDesc: "Erbjud tourdeltagarna rabatt hos en lokal skate shop", + partnerStep1: "1. Samarbeta med en lokal skate shop du litar på", + partnerStep2: "2. Ange en rabattprocent för tourdeltagare", + partnerStep3: "3. Efter touren, ge deltagarna en bekräftelse att visa i shopen", + partnerStep4: "4. Shopen hedrar rabatten — bygger community och driver kundtrafik!", + percentOff: "{{percent}} % RABATT", + photoHint: "Lägg till ett foto på dig själv som åker skate eller en cool spot från din tour.", + pickRide: "Välj ditt åk", + place1: "🥇 1:a", + place2: "🥈 2:a", + place3: "🥉 3:a", + platformFee: "Du sätter priset • Plattformen tar {{percent}}", + points: "Poäng:", + pricePerPerson: "Pris per person (sats)", + pricePlaceholder: "t.ex. 25000", + prizeDistribution: "Prisfördelning", + prizePoolHint: "Valfritt — totala priser som finns", + prizePoolPlaceholder: "t.ex. 2000000", + proTipDesc: "Innan du listar en partnerrabatt, kontakta shopägaren via DM för att komma överens om rabattprocenten. Det säkerställer att de är med och hedrar rabatten för dina tourdeltagare.", + proTipTitle: "💡 Proffstips: Samordna med shopen först!", + return: "Retur", + returnBeforeDeparture: "Retur före avresa", + returnBeforeDepartureDesc: "Returdatumet måste vara på eller efter avresedatumet.", + roadTripDetails: "Roadtripdetaljer", + schedule: "Schema", + scheduleDesc: "Kör detta som en engångssession vid ett bestämt tillfälle, eller håll det flexibelt och låt skatare boka en tid via DM.", + secretUntilStart: "Hemlig till start", + selectPartnerShop: "Välj partner-shop", + sessionDateRequired: "Sessionsdatum krävs", + sessionDateRequiredDesc: "Välj datum och tid för din schemalagda session, eller byt till ett flexibelt schema.", + sessionDateTime: "Sessionsdatum och tid", + sessionDateTimeHint: "Skatare ser denna tid och kan lägga till den i sin kalender från toursidan.", + shopPremieresContact: "Kontakta dessa shops direkt för att ordna filmkvällar. Alla arrangemang är privata.", + shopPremieresHow: "💡 Så fungerar shop-premiärer: Kontakta shops direkt för att ordna premiärkvällar. Alla arrangemang är privata mellan dig och shoparna.", + shopsCanRegister: "Shops kan registrera sig på /create-shop", + show: "Visa", + showAllLanguages: "Visa alla {{count}} språk", + somethingWrong: "Något gick fel.", + spotTypes: "Typer av spots", + spotTypesRequired: "Spottyper krävs", + spotTypesRequiredDesc: "Välj minst en typ av spot som du kommer att visa.", + startDate: "Startdatum", + startDateRequired: "Startdatum krävs", + startDateRequiredDesc: "Ange när tävlingen börjar (utmaningarna avslöjas detta datum).", + startingCity: "Startstad", + startingCityPlaceholder: "t.ex. Los Angeles, USA", + teamSettings: "Teaminställningar", + teamsCount: "{{count}} team", + titlePlaceholder: "t.ex. Berlin Kreuzberg — Underground Spots Tour", + titleRequired: "Tourtitel krävs", + titleRequiredDesc: "Ange ett namn för din tour.", + totalPercent: "Totalt: {{percent}} %", + totalPrizePool: "Total prispott (sats)", + tourDesc: "Berätta för skatare vad de kan förvänta sig på din tour", + tourDetails: "Tourdetaljer", + tourPhoto: "Tourfoto", + tourTitle: "Tourtitel", + transportDestructionPlaceholder: "Hur kommer teamen att resa mellan platserna? Någon transport som tillhandahålls eller rekommenderas?", + transportInfo: "Transportinfo", + transportPlaceholder: "Hur reser deltagarna? t.ex. \"Van tillhandahålls\", \"Flyg till Barcelona, vi hyr en van\", \"Tåg mellan städerna\"", + tripDatesDesc: "Lås datumen så att skatare kan begära ledigt, boka flyg och planera resan.", + tripDatesTitle: "Resedatum", + updated: "Tour uppdaterad!", + updatedDesc: "Dina ändringar har publicerats.", + upload: "Ladda upp", + view: "Visa →", + worldDestruction: "World Destruction Tour", + youReceive: "Du får: {{amount}} sats per person", + }, + editEvent: { + accessDenied: "Åtkomst nekad", + accessDeniedDesc: "Du kan bara redigera event som du själv har skapat.", + backToEvent: "Tillbaka till eventet", + detailsDesc: "Uppdatera informationen om detta event. Alla fält markerade med * är obligatoriska.", + eventCover: "Eventets omslagsbild", + locationUpdated: "Platsen uppdaterad.", + loginToEdit: "Du måste logga in för att redigera detta event.", + newSpot: "Ny spot: {{location}}.", + newTime: "Ny tid: {{date}} kl. {{time}}.", + saveChanges: "Spara ändringar", + saving: "Sparar...", + title: "Redigera event", + updated: "Event uppdaterat!", + updatedDesc: "Dina ändringar har publicerats till nätverket.", + updateDetails: "Uppdatera detaljerna för {{title}}", + updatedNotified: "Ändringar publicerade — {{count}} deltagare meddelade.", + updateFailed: "Kunde inte uppdatera", + updateMessage: "{{parts}} — se eventet för detaljer.", + }, + editShop: { + accessDeniedDesc: "Du kan bara redigera shops som du själv har skapat.", + backToShop: "Tillbaka till shopen", + detailsDesc: "Uppdatera din shopinformation. Alla fält markerade med * är obligatoriska.", + loginToEdit: "Du måste logga in för att redigera denna shop.", + updated: "Shop uppdaterad!", + updateDetails: "Uppdatera detaljerna för {{name}}", + }, + editTour: { + accessDeniedDesc: "Du kan bara redigera tours som du själv har skapat.", + loginToEdit: "Du måste logga in för att redigera denna tour.", + }, + eventCard: { + report: "Rapportera", + }, + eventDetail: { + aCrew: "en crew", + addToCalendar: "Lägg till i kalender", + backToEvents: "Tillbaka till event", + cancelled: "Detta event ställdes in", + checkUpdate: "— se uppdateringen", + copyFailed: "Kopiering misslyckades", + date: "Datum", + editEvent: "Redigera event", + eventFallback: "Event", + eventOrganizer: "Eventarrangör", + getDirections: "Få vägbeskrivning", + linkCopied: "Länk kopierad", + linkCopiedDesc: "Eventlänk kopierad till urklipp — klistra in den var som helst.", + live: "Live:", + liveMusic: "livemusik", + location: "Plats", + newLocation: "Ny plats", + noRsvps: "Inga RSVP registrerades.", + organizer: "Arrangör", + rsvpsClosed: "RSVP är stängt — detta event ställdes in av värden.", + seeMap: "Se karta", + shareEvent: "Dela event", + shareText: "{{title}} — ett skate-event på SkateSpots", + shareTextFallback: "Kolla in detta skate-event på SkateSpots", + time: "Tid", + timeChanged: "Tiden ändrad", + updatesFromHost: "Uppdateringar från värden", + where: "Var", + whoCame: "Vilka kom", + whosGoing: "Vilka kommer", + }, + events: { + calendar: "Kalender", + createTour: "Skapa tour", + events: "Event", + faqFooter: "Har du frågor? Kolla FAQ →", + hosting: "Värdskap", + hostingSubtitle: "Dina event — RSVP, uppdateringar och snabba redigeringar", + list: "Lista", + noEventsMatchFilters: "Inga event matchar dina filter. Försök justera eller rensa dem.", + noPast: "Inga tidigare event", + noPastBody: "Inga tidigare skate-event hittades i dina nuvarande filter.", + noTours: "Inga tours hittades", + noToursBody: "Inga skate-tours ännu. Skapa den första och ta med skatare på en spot-upptäckt!", + noToursMatchFilters: "Inga tours matchar dina filter. Försök justera eller rensa dem.", + noUpcoming: "Inga kommande event", + noUpcomingBody: "Inga kommande skate-event hittades. Bli först med att skapa ett!", + past: "Tidigare", + resultsCount: "{{count}} resultat", + searchCity: "Stad…", + searchEvent: "Eventnamn…", + searchTour: "Tournamn…", + tours: "Tours", + toursSubtitle: "Lokala guider, roadtrips och world destruction-tävlingar", + upcoming: "Kommande", + }, + eventTypes: { + contest: "Tävling", + demo: "Demo", + jam: "Jam", + meetup: "Meetup", + premiere: "Premiär", + session: "Session", + workshop: "Workshop", + }, + featured: { + active: "Aktiv", + bodyEvent: "Gratis att publicera. Utvalda event får en badge och hamnar högst upp på eventsidan.", + bodyTour: "Gratis att publicera. Utvalda tours får en badge och hamnar högst upp i tourlistan.", + contextEvent: "Ditt event listas gratis oavsett — utvald lägger bara till badge och boost.", + contextTour: "Din tour listas gratis oavsett — utvald lägger bara till badge och boost.", + daysRemaining: "Utvald aktiv · {{count}} dagar kvar.", + headingEvent: "Lyft fram detta event", + headingTour: "Lyft fram denna tour", + optional: "valfritt", + platformOwner: "Plattformsägare — utvald är alltid på.", + }, + filters: { + activeCount: "{{count}} aktiva", + all: "Alla", + allLevels: "Alla nivåer", + eventType: "Eventtyp", + following: "Följer", + newest: "Senaste", + popular: "Populära", + showResults: "Visa resultat", + showResultsActive: "Visa resultat · {{count}} aktiva", + skillLevel: "Färdighetsnivå", + sortBy: "Sortera efter", + topRated: "Högst betyg", + tourCategory: "Tourkategori", + trusted: "Betrodd", + trustLevel: "Förtroendenivå", + verified: "Verifierad", + }, + food: { + bar: "Bar", + cafe: "Café", + call: "Ring", + chooseSpot: "Välj en spot...", + directions: "Vägbeskrivning", + fastFood: "Snabbmat", + foodCourt: "Matmarknad", + locationLabel: "Plats:", + noneFound: "Inga matställen hittades", + noneFoundDesc: "Vi hittade inga restauranger eller caféer inom 1 km från denna spot. Prova att välja en annan plats.", + placesFound: "{{count}} ställen hittades inom 1 km från {{spot}}", + pub: "Pub", + restaurant: "Restaurang", + selectSpot: "Välj en skate spot", + selectSpotDesc: "Välj en skate spot i rullgardinsmenyn ovan för att hitta närliggande restauranger, caféer och andra matställen.", + selectSpotTitle: "Välj en skate spot", + subtitle: "Hitta ställen att äta på nära dina favoritspots", + title: "Mat nära spots", + unknown: "Okänd", + website: "Webbplats", + }, + rsvp: { + areYouGoing: "Ska du gå?", + cant: "Kan inte", + cantMakeIt: "Kan inte komma", + going: "Jag kommer", + goingCount: "kommer", + goingShort: "Kommer", + hostNote: "Du är värd för detta — men du kan fortfarande ange din status.", + interested: "Intresserad", + interestedCount: "intresserade", + loginToRsvp: "Logga in för att RSVP:a.", + maybe: "Kanske", + toastError: "Kunde inte RSVP:a", + toastGoing: "Du kommer! 🛹", + toastInterested: "Markerad som intresserad.", + toastNotGoing: "Markerad som inte kommande.", + tryAgain: "Försök igen.", + }, + shop: { + addNip05Settings: "Lägg till NIP-05 i inställningarna", + adminRemovedReason: "SkateSpots-admin tog bort shopen \"{{name}}\"", + areYouOwner: "Är du shopägaren?", + backToMap: "Tillbaka till kartan", + claimDesc: "Om du äger eller hanterar denna shop kan du göra anspråk på den för att verifiera ägarskap med NIP-05.", + claimNip05Intro: "För att göra anspråk på denna shop, lägg till en NIP-05-identifierare som matchar shopens webbplatsdomän. Om shopens webbplats till exempel är", + claimNip05Your: "bör din NIP-05 vara", + contactShop: "Kontakta shop", + deleted: "Shop borttagen", + deletedDesc: "Borttagningsbegäran skickad till relayer. De flesta relayer tar bort detta innehåll.", + deleteDialogDesc: "Detta tar permanent bort \"{{name}}\" från alla relayer. Åtgärden kan inte ångras.", + deleteDialogTitle: "Ta bort shop?", + deletedReason: "Borttagen shop", + deleteFailed: "Borttagning misslyckades", + deleteShop: "Ta bort shop", + linkCopied: "Länk kopierad!", + linkCopiedDesc: "Shop-länk kopierad till urklipp.", + nip05Required: "⚠️ NIP-05-verifiering krävs för att göra anspråk på shops", + opens: "Öppnar: {{domain}}", + removeAdmin: "Ta bort (admin)", + removed: "Shop borttagen", + removedDesc: "Denna shop har tagits ner och kommer att döljas i hela SkateSpots.", + removeDialogDesc: "Som SkateSpots-admin tar du ner \"{{name}}\". Den döljs för alla i appen och en borttagningsbegäran skickas till relayer.", + removeDialogTitle: "Ta bort denna shop? (admin)", + removeShop: "Ta bort shop", + tipMapper: "Tippa kartläggaren", + tipMapperDesc: "Denna shop lades till av en communitymedlem. Zappa dem för att säga tack!", + updateNip05: "Uppdatera NIP-05 för att göra anspråk", + viewPhotoFull: "Visa foto i fullskärm", + viewPhotoOf: "Visa foto {{index}} av {{total}}", + }, + sponsors: { + presentedBy: "Presenteras av", + }, + tourCard: { + active: "Aktiv", + completed: "Avslutad", + contactForPrice: "Kontakta för pris", + durationDays: "{{count}} dagar", + durationHours: "{{count}} timmar", + durationMonths: "{{count}} månader", + durationWeeks: "{{count}} veckor", + entry: "Inträde: {{amount}} sats", + happeningNow: "Händer nu", + inDays: "Om {{count}} dagar", + inHours: "Om {{count}}h", + inMonths: "Om {{count}} månader", + inWeeks: "Om {{count}} veckor", + maxGroup: "Max {{count}}", + price: "{{amount}} sats", + prizePool: "{{amount}} sats", + registrationOpen: "Registrering öppen", + startingSoon: "Börjar snart", + teamsMax: "{{count}} team max", + tomorrow: "Imorgon", + worldwide: "Världen över", + }, + tourDetail: { + about: "Om denna tour", + availability: "Tillgänglighet", + competitionWindow: "Tävlingsfönster", + contactToBook: "Kontakta guiden för att boka", + discountAt: "{{percent}} % RABATT hos {{shop}}", + duration: "Längd", + languages: "Språk", + loginToBook: "Logga in för att boka", + loginToBookDesc: "Logga in för att kontakta guiden och boka denna tour", + maxGroup: "Max grupp", + meetingPoint: "Mötesplats", + notFound: "Tour hittades inte", + notFoundDesc: "Denna tour kan ha tagits bort eller inte finnas.", + organizer: "Arrangör", + partnerDiscount: "Partner-shop-rabatt", + partnerDiscountDesc: "Boka denna tour för att få rabatt hos partner-skate shopen. Visa din bokningsbekräftelse för shopens personal.", + people: "{{count}} personer", + perPerson: "per person", + price: "Pris", + runsAbout: "Varar ungefär {{duration}}", + scheduledSession: "Schemalagd session", + shareText: "Kolla in denna lokala skate-tour: {{title}}", + skillLevel: "Färdighetsnivå", + spotTypes: "Typer av spots", + tourGuide: "Tourguide", + tourSponsors: "Toursponsorer", + tripDates: "Resedatum", + viewProfile: "Visa profil", + }, + updates: { + admin: "Admin", + adminNote: "Du publicerar som SkateSpots-admin. Det märks tydligt som ett adminmeddelande, inte från värden.", + kindCancelled: "Inställt", + kindNewSpot: "Ny spot", + kindNewTime: "Ny tid", + kindUpdate: "Uppdatering", + loading: "Laddar uppdateringar…", + notifiedCount: "{{count}} personer meddelade.", + notifiedEveryone: "Alla ser det på eventet.", + notifiesRsvps: "Meddelar {{count}} RSVP", + noUpdates: "Inga uppdateringar från värden ännu. RSVP:a så meddelas du om något ändras.", + placeholder: "Regn — flyttat till söndag 14.00. Möt upp vid den bakre legen…", + post: "Publicera", + postAdminUpdate: "Publicera en adminuppdatering", + posted: "Uppdatering publicerad", + postError: "Kunde inte publicera uppdateringen", + postUpdate: "Publicera en uppdatering", + tryAgain: "Försök igen.", + visibleToEveryone: "Synligt för alla på detta event", + }, + destination: { + bitcoin: "Bitcoin", + closeSearch: "Stäng sökning", + nothingMatches: "Inget matchar “{{query}}”.", + placeholder: "Sök spots, shops, Bitcoin-handlare…", + shop: "Shop", + spot: "Spot", + typeChars: "Skriv minst 2 tecken. Söker skate spots, skate shops och Bitcoin-handlare.", + typeCharsNear: "Skriv minst 2 tecken. Söker skate spots, skate shops och Bitcoin-handlare i närheten.", + }, + dateWindow: { + any: "Alla", + anytime: "När som helst", + month: "Denna månad", + monthShort: "Månad", + today: "Idag", + todayShort: "Idag", + week: "Denna vecka", + weekend: "Helg", + weekendShort: "Helg", + weekShort: "Vecka", + }, + }, + marketUi: { + gearSwap: { + title: "Gear Swap", + subtitle: "Köp och sälj begagnad skateutrustning med andra skatare", + listGear: "Lista gear", + searchPlaceholder: "Sök gear...", + allCategories: "Alla kategorier", + forSale: "Till salu", + wtb: "WTB", + trust: "Förtroende", + filterByTrust: "Filtrera efter förtroende", + allSellers: "Alla säljare", + verifiedOnly: "Endast verifierade", + trustedPlus: "Betrodd+", + followingOnly: "Endast följda", + pickupOrShip: "Hämtning eller frakt", + localPickup: "Lokal hämtning", + ships: "Fraktas", + sortBy: "Sortera efter", + newest: "Senaste", + priceLowHigh: "Pris: Lågt → Högt", + priceHighLow: "Pris: Högt → Lågt", + trustScore: "Förtroendepoäng", + nearest: "Närmast (lokalt)", + listingFound: "{{count}} annons hittad", + listingsFound: "{{count}} annonser hittade", + loadFailed: "Kunde inte ladda annonser", + tryLater: "Försök igen senare.", + noneTitle: "Inga annonser hittades", + noneFiltered: "Ingen gear matchar dina nuvarande filter. Försök rensa dem eller sök efter något annat.", + noneFirst: "Bli först med att lista din gear — decks, trucks, wheels, skor, allt skate!", + listYourGear: "Lista din gear", + faqLink: "Har du frågor? Kolla FAQ →", + }, + hub: { + browse: "Bläddra", + selling: "Säljer", + myTrades: "Mina trades", + reputation: "Rykte", + loginListings: "Logga in för att hantera dina annonser.", + loginReputation: "Logga in för att se ditt rykte och recensioner.", + }, + marketplace: { + heroTitle: "Shops och Marketplace", + heroBefore: "Vår marketplace drivs av", + heroAfter: "— en decentraliserad marketplace på Nostr. Skate shops kan lista sina produkter och du kan köpa/sälja begagnad gear direkt med Bitcoin.", + whatIsTitle: "Vad är Plebeian Market?", + whatIsBody: "Plebeian Market är en decentraliserad marketplace byggd på Nostr. Köp och sälj skateboardutrustning direkt med andra skatare med Bitcoin. Inga mellanhänder, inga avgifter, total frihet.", + noFeesTitle: "Inga avgifter", + noFeesBody: "Ingen plattform som tar 30 %. Direktförsäljning mellan parter.", + bitcoinTitle: "Bitcoin-betalningar", + bitcoinBody: "Betala med Bitcoin. Snabbt, säkert, globalt.", + decentralizedTitle: "Decentraliserad", + decentralizedBody: "Byggd på Nostr. Inget företag kontrollerar den.", + visit: "Besök Plebeian Market", + buySellTitle: "Vad du kan köpa och sälja", + catCompletes: "Kompletta brädor", + preBuilt: "Färdigbyggda kompletta", + customSetups: "Anpassade setups", + beginnerBoards: "Nybörjarbrädor", + catParts: "Deckdelar", + decks: "Decks", + trucks: "Trucks", + wheels: "Wheels", + bearings: "Bearings", + gripTape: "Griptape", + hardware: "Hårdvara", + catApparel: "Kläder och skydd", + skateShoes: "Skateskor", + clothing: "Kläder", + helmets: "Hjälmar", + pads: "Skydd", + backpacks: "Ryggsäckar", + catAccessories: "Tillbehör", + tools: "Verktyg", + wax: "Vax", + rails: "Rails", + stickers: "Klistermärken", + videos: "Videor", + magazines: "Tidningar", + howItWorks: "Så fungerar det", + step1Title: "Bläddra bland produkter", + step1Body: "Besök Plebeian Market och bläddra bland skateboardutrustning från shops och privatpersoner världen över.", + step2Title: "Kontakta säljare", + step2Body: "Meddela säljare direkt via Nostr. Förhandla priser, ställ frågor, ordna frakt.", + step3Title: "Betala med Bitcoin", + step3Body: "Slutför ditt köp med Bitcoin Lightning för omedelbara betalningar med låg avgift.", + step4Title: "Lämna feedback", + step4Body: "Betygsätt din upplevelse och bygg säljarens rykte på Nostr. Dina recensioner hjälper communityn.", + needBitcoinTitle: "Behöver du Bitcoin?", + needBitcoinBefore: "Du behöver en Lightning-plånbok med lite sats för att handla. Kolla in", + onboardingGuide: "guiden för att komma igång", + needBitcoinAfter: "för plånboksrekommendationer.", + ownShopTitle: "Äger du en skate shop?", + ownShopBody: "Lista din shop på SkateSpots och sälj dina produkter på Plebeian Market. Nå kunder världen över med noll plattformsavgifter.", + addShop: "Lägg till din shop", + startSelling: "Börja sälja", + }, + listingDetail: { + notFound: "Annonsen hittades inte", + notFoundBody: "Den kan ha tagits bort, eller så är länken fel.", + backToGearSwap: "Tillbaka till Gear Swap", + gearSwap: "Gear Swap", + viewPhoto: "Visa foto {{n}}", + photoAlt: "{{title}} — foto {{n}}", + wantToBuy: "ÖNSKAR KÖPA", + sold: "SÅLD", + description: "Beskrivning", + usuallyHere: "Vanligtvis här {{availability}}", + listed: "Listad {{date}}", + listingCountOne: "{{count}} annons · {{age}} dagar gammal", + listingCountMany: "{{count}} annonser · {{age}} dagar gamla", + relistActive: "Återlista som aktiv", + markSold: "Markera som såld", + deleteListing: "Ta bort annons", + makeOffer: "Lämna ett bud", + shareListing: "Dela annons", + unknown: "Okänd", + linkCopied: "Länk kopierad", + linkCopiedBody: "Dela den med en skatare.", + copyFailed: "Kunde inte kopiera länken", + relisted: "Återlistad", + relistedBody: "Din annons är aktiv igen.", + couldNotUpdate: "Kunde inte uppdatera", + somethingWrong: "Något gick fel", + }, + create: { + imageUploaded: "Bild uppladdad", + uploadFailed: "Uppladdning misslyckades", + failed: "Misslyckades", + cooldownActive: "Nedkylning aktiv", + cooldownWait: "Vänta {{time}} innan du skapar en ny annons", + limitReached: "Annonsgräns nådd", + limitReachedBody: "Du har nått din månadsgräns på {{limit}} annonser", + feeRequired: "Avgift krävs", + feeRequiredBody: "Betala anti-spamavgiften för att fortsätta", + titleRequired: "Titel krävs", + categoryRequired: "Kategori krävs", + photoRequired: "Foto krävs", + photoRequiredBody: "Minst ett foto krävs när du säljer gear", + nip05Required: "NIP-05-verifiering krävs", + nip05RequiredBody: "Du behöver en verifierad Nostr-adress för att lista gear", + priceRequired: "Pris krävs för annonser med fast pris", + sizeRequired: "Storlek krävs", + sizeRequiredBody: "Välj en storlek för {{category}}", + conditionRequired: "Skick krävs", + conditionRequiredBody: "Välj skicket på din {{category}}", + wtbPosted: "Önskar köpa publicerad!", + wtbPostedBody: "Säljare kan hitta din förfrågan.", + listingCreated: "Annons skapad!", + listingCreatedBody: "Din gear är nu listad.", + publishFailed: "Kunde inte publicera", + loginRequired: "Inloggning krävs", + loginRequiredBody: "Du måste logga in för att lista gear.", + backToStash: "Tillbaka till Stash", + backToSpot: "Tillbaka till {{title}}", + backToMarketplace: "Tillbaka till Marketplace", + backToMap: "Tillbaka till kartan", + wantToBuy: "Önskar köpa", + listYourGear: "Lista din gear", + wtbSubtitle: "Berätta för communityn vilken gear du söker", + sellSubtitle: "Sälj skateboardutrustning till communityn", + fromStashTitle: "Annons från din Stash", + fromStashBody: "Förifyllt med din stash-artikels detaljer. Granska och välj en mötesplats!", + nip05Banner: "För att förhindra spam och skydda köpare behöver du en verifierad Nostr-adress (NIP-05) för att lista gear.", + verifiedLabel: "Verifierad:", + checkingTrust: "Kontrollerar din förtroendenivå...", + trustLevel: "Förtroendenivå:", + trusted: "Betrodd", + active: "Aktiv", + newcomer: "Nykomling", + newUser: "Ny användare", + remaining: "{{remaining}} av {{limit}} annonser kvar denna månad", + cooldownBody: "Nya användare har en nedkylning på 24 timmar mellan annonser.", + timeRemaining: "Tid kvar: {{time}}", + monthlyLimitTitle: "Månadsgräns nådd", + monthlyLimitBody: "Du har nått din gräns på {{limit}} annonser denna månad. Bygg ditt rykte genom att skapa spots eller slutföra försäljningar för att öka din gräns.", + powAccepted: "Proof of work accepterat!", + feePaid: "Avgift betald!", + canCreateNow: "Du kan nu skapa din annons.", + whatDoTitle: "Vad vill du göra?", + sellGear: "SÄLJ GEAR", + categoryTitle: "Kategori *", + categoryHint: "Vilken typ av gear?", + detailsTitle: "Geardetaljer", + detailsWtbHint: "Beskriv vad du söker", + detailsSellHint: "Berätta för köparna om din vara", + titleLabel: "Titel *", + titlePlaceholderWtb: "Söker 8.0\" deck", + titlePlaceholderSell: "Nästan ny Palace Deck 8.25\"", + summaryLabel: "Kort sammanfattning", + summaryPlaceholderWtb: "Vilket märke som helst, föredrar minimal grafik", + summaryPlaceholderSell: "Bra skick, knappt använd", + descriptionLabel: "Beskrivning", + descriptionPlaceholderWtb: "Beskriv exakt vad du söker — märkespreferenser, skickkrav, etc.", + descriptionPlaceholderSell: "Fick denna deck i julklapp men föredrar en mindre storlek. Du får gärna prova innan köp!", + fulfilmentLabel: "Hur levereras det?", + pickup: "Hämtning", + pickupHint: "Mötas lokalt", + ships: "Fraktas", + shipsHint: "Skicka det", + both: "Båda", + bothHint: "Antingen", + addressNote: "Vi samlar aldrig in din adress — för frakt, dela den privat i tradechatten.", + postageLabel: "Vem betalar porto?", + requireEscrow: "Kräv escrow", + requireEscrowHint: "Be köparen att göra upp via Cashu-escrow.", + postageBuyer: "Köparen betalar", + postageSeller: "Jag betalar", + postageSplit: "Dela", + sizeLabel: "Storlek", + selectSize: "Välj storlek", + truckHeight: "Truckhöjd", + selectHeight: "Välj höjd", + wheelHardness: "Wheel-hårdhet", + selectHardness: "Välj hårdhet", + pricingTitle: "Prissättning", + pricingWtbHint: "Hur vill du betala?", + pricingSellHint: "Hur vill du sälja?", + priceLabel: "Pris *", + currencyLabel: "Valuta", + photosTitle: "Foton", + photosSellHint: "Minst ett foto krävs", + photosWtbHint: "Valfritt — lägg till referensbilder", + productPhoto: "Produkt {{n}}", + upload: "Ladda upp", + photosNote: "Lägg till upp till 5 foton. Den första bilden blir huvudbild.", + pickupLocationTitle: "Hämtningsplats", + pickupLocationHint: "Länka till en skate spot för enkla möten", + searchSpots: "Sök spots...", + noSpotsFound: "Inga spots hittades. Prova en annan sökning.", + availabilityLabel: "När är du vanligtvis tillgänglig?", + availabilityPlaceholder: "Helger 10–14, tis/tors kvällar", + availabilityHint: "Hjälper köpare att samordna möten med dig", + durationTitle: "Annonsens varaktighet", + durationHint: "Hur länge ska denna annons vara aktiv?", + publishing: "Publicerar...", + checkingEligibility: "Kontrollerar behörighet...", + cooldownButton: "NEDKYLNING: {{time}}", + limitReachedButton: "GRÄNS NÅDD", + payFeeButton: "BETALA AVGIFT FÖR ATT FORTSÄTTA", + postWtbButton: "PUBLICERA ÖNSKAR KÖPA", + listForSaleButton: "LISTA GEAR TILL SALU", + }, + trades: { + title: "Mina trades", + loginBody: "Logga in för att hantera dina marketplace-trades och ditt rykte.", + subtitle: "Bekräftelser, förfrågningar och ryktet de bygger. Betalning ordnas med den andra skataren — appen registrerar bara affären.", + actionNeeded: "Åtgärd krävs", + askedToConfirmSale: "bad dig bekräfta en försäljning", + recordedSale: "registrerade en försäljning — bekräfta din sida", + confirmSale: "Bekräfta försäljning", + confirm: "Bekräfta", + nothingWaiting: "Inget väntar på dig just nu. 🛹", + yourRecords: "Dina trade-registreringar", + noTrades: "Inga trades ännu. Slut en affär och bekräfta den för att börja bygga rykte.", + browseGearSwap: "Bläddra i Gear Swap", + roleSold: "Sålde", + roleBought: "Köpte", + roleTrade: "Trade", + with: "med", + viewListing: "Visa annons", + revoke: "Återkalla", + revokeTitle: "Återkalla denna trade-registrering?", + revokeBody: "Den slutar räknas mot ditt rykte. Den andra parten behåller sin egen attest. Använd detta för en omtvistad eller felaktig affär.", + revokeNote: "Återkallad av författaren.", + revoked: "Trade-registrering återkallad", + revokedBody: "Den räknas inte längre mot ryktet.", + revokeFailed: "Kunde inte återkalla traden", + saleConfirmed: "Försäljning bekräftad", + saleConfirmedBody: "De kan nu bekräfta sin sida.", + saleConfirmFailed: "Kunde inte bekräfta försäljningen", + tradeConfirmed: "Trade bekräftad", + tradeConfirmedBody: "Ryktet uppdaterat för er båda.", + tradeConfirmFailed: "Kunde inte bekräfta traden", + somethingWrong: "Något gick fel.", + }, + card: { + listingDeleted: "Annons borttagen", + listingRemoved: "Annons borttagen", + listingDeletedBody: "Din annons har tagits bort. Relayer som respekterar borttagningar slutar visa den.", + listingRemovedBody: "Denna annons har tagits ner och kommer att döljas i hela SkateSpots.", + removeFailed: "Borttagning misslyckades", + somethingWrong: "Något gick fel", + markedSold: "Markerad som såld", + markedSoldBody: "Din annons visas nu som såld.", + couldNotUpdate: "Kunde inte uppdatera", + relisted: "Återlistad", + relistedBody: "Din annons är aktiv igen.", + listingOptions: "Annonsalternativ", + report: "Rapportera", + removeAdmin: "Ta bort (admin)", + postage: "porto", + newSeller: "Ny säljare", + saleOne: "{{count}} försäljning", + saleMany: "{{count}} försäljningar", + iHaveThis: "Jag har denna!", + deleteTitle: "Ta bort \"{{title}}\"?", + adminRemoveTitle: "Ta bort denna annons? (admin)", + deleteBody: "Detta ber relayer ta bort din annons \"{{title}}\". Det kan inte ångras härifrån — du måste skapa en ny.", + adminRemoveBody: "Som SkateSpots-admin tar du ner \"{{title}}\". Den döljs för alla i appen och en borttagningsbegäran skickas till relayer.", + deleting: "Tar bort…", + removing: "Tar bort…", + deleteListing: "Ta bort annons", + removeListing: "Ta bort annons", + reportCount: "{{count}} rapport", + reports: "{{count}} rapporter", + viewTitle: "Visa {{title}}", + reportListing: "Rapportera annons", + manageListing: "Hantera annons", + trusted: "Betrodd", + daysOld: "{{n}} dagar gammal", + monthsOld: "{{n}} mån gammal", + yearsOld: "{{n}} år gammal", + listingsCount: "{{count}} annonser", + postageBuyer: "porto: köparen", + postageSeller: "porto: säljaren", + postageSplit: "porto: delat", + powTitle: "NIP-13 proof of work — gratis anti-spam", + verifiedTradeOne: "{{count}} verifierad trade", + verifiedTrades: "{{count}} verifierade trades", + reportSubmitted: "Rapport skickad", + reportSubmittedBody: "Tack för att du hjälper till att hålla marketplace säker.", + reportFailed: "Kunde inte skicka rapporten", + selectReason: "Välj en anledning", + reportDialogBody: "Hjälp till att hålla marketplace säker genom att rapportera olämpliga eller vilseledande annonser.", + reasonLabel: "Anledning till rapport *", + detailsLabel: "Ytterligare detaljer (valfritt)", + detailsPlaceholder: "Ange eventuell ytterligare kontext som kan hjälpa...", + reportNote: "Rapporter publiceras på Nostr och hjälper communityn att identifiera problematiska annonser. Annonser med flera rapporter kan döljas automatiskt.", + submitting: "Skickar...", + submitReport: "Skicka rapport", + }, + tradeActions: { + tradeConfirmed: "Trade bekräftad", + tradeConfirmedWithProof: "Ett verifierbart kvitto bifogades — detta räknas mot verifierade trades.", + tradeConfirmedBody: "Ryktet uppdaterat för er båda.", + tradeConfirmFailed: "Kunde inte bekräfta traden", + somethingWrong: "Något gick fel.", + requestNote: "Bekräfta vår trade för \"{{title}}\".", + requestSent: "Bekräftelse begärd", + requestSentBody: "Säljaren kan nu bekräfta försäljningen och bygga bådas rykte.", + requestFailed: "Kunde inte skicka förfrågan", + escrowRefunded: "Escrow återbetald", + escrowRefundedBody: "Pengarna är tillbaka i din Cashu-plånbok.", + escrowRefundFailed: "Kunde inte återbetala escrow", + confirmThisTrade: "Bekräfta denna trade", + escrowAndRequest: "Escrow och förfrågan", + shipsEscrowHint: "Skickad affär — använd escrow så att ingen sida skickar iväg i tomma intet. Dela din adress privat i tradechatten, aldrig här.", + shipsHint: "Skickad affär — föredra escrow om säljaren erbjuder det, och dela din adress endast i chatten.", + askSeller: "Be säljaren bekräfta", + waitingSeller: "Bekräftelse begärd — väntar på säljaren.", + refundEscrow: "Återbetala escrow", + buyWithSats: "Köp med sats", + depositTitle: "Handpenning i god tro (valfritt)", + payDeposit: "Betala handpenning", + depositBefore: "Ett byte har ingen faktura, så det är så här det får en", + verifiableCost: "verifierbar kostnad", + depositAfter: ". Återbetalas vid leverans (eller använd Cashu-escrow för automatisk återbetalning). ⚠️ Bevisar engagemang, inte leverans.", + depositPaid: "Handpenning betald", + depositPaidBody: "Sparad — den bifogas när traden bekräftas.", + paid: "Betald ⚡", + paidWithProof: "Sparade ett verifierbart kvitto — bekräfta traden för att den ska räknas.", + paidBody: "Be säljaren bekräfta traden så att den räknas för er båda.", + }, + offers: { + accepted: "Accepterad", + declined: "Avböjd", + withdrawn: "Återkallad", + open: "Öppen", + noAmount: "inget belopp", + titleOwner: "Bud ({{count}})", + titleBuyer: "Dina förhandlingar", + you: "Du", + them: "De", + paidAskConfirm: "Betald — be säljaren bekräfta traden.", + payWithSats: "Betala med sats", + accept: "Acceptera", + decline: "Avböj", + counter: "Motbud", + counterPlaceholder: "Ditt motbud (sats)", + send: "Skicka", + counterItemPlaceholder: "…eller ge ett motbud med en vara att byta (valfritt)", + waitingOn: "Väntar på", + waitingOnSuffix: "— din tur kommer tillbaka om de ger ett motbud.", + withdraw: "Återkalla", + dmAccepted: "✅ Ditt bud accepterades! Meddela för att ordna överlämningen.", + dmDeclined: "❌ Ditt bud avböjdes.", + offerAccepted: "Bud accepterat", + offerDeclined: "Bud avböjt", + respondFailed: "Kunde inte svara", + somethingWrong: "Något gick fel.", + offerWithdrawn: "Bud återkallat", + withdrawFailed: "Kunde inte återkalla", + enterAmountOrItem: "Ange ett belopp eller en vara att byta", + counterDm: "Motbud", + counterSent: "Motbud skickat", + counterSentBody: "Det är deras tur nu.", + counterFailed: "Kunde inte skicka motbudet", + }, + offer: { + validAmount: "Ange ett giltigt belopp", + describeOffer: "Beskriv ditt bud", + describeOfferBody: "Lägg till ett belopp, en vara att byta eller ett meddelande.", + dmAmount: " för {{amount}} sats", + dmItem: " (erbjuder: {{item}})", + dmBody: "🛹 Nytt bud på din annons \"{{title}}\"{{amount}}{{item}}.{{note}}", + sent: "Bud skickat", + sentBody: "{{sellerName}} kan acceptera eller avböja det.", + sendFailed: "Kunde inte skicka budet", + somethingWrong: "Något gick fel.", + title: "Lämna ett bud", + description: "Bjud sats, eller byt något — {{sellerName}} kan acceptera, avböja eller ge motbud. Ni ordnar överlämningen sinsemellan.", + amountLabel: "Belopp (sats, valfritt)", + amountPlaceholder: "t.ex. 45000", + itemLabel: "Eller byta något (valfritt)", + itemPlaceholder: "t.ex. min 8.25-deck + extra wheels", + itemHint: "Byter du? Skriv vad du erbjuder här — du kan kombinera det med sats.", + messageLabel: "Meddelande (valfritt)", + messagePlaceholder: "Något säljaren bör veta…", + send: "Skicka bud", + }, + markSold: { + enterBuyer: "Ange köparens npub", + dealClosed: "Affär avslutad 🎉", + dealClosedBody: "Annonsen markerad som såld och traden publicerades för ryktet.", + closeFailed: "Kunde inte avsluta affären", + somethingWrong: "Något gick fel.", + title: "Avsluta affären", + description: "Markerar denna annons som såld och registrerar en signerad trade-attest för dig och köparen.", + buyerLabel: "Köparens npub", + methodLabel: "Hur betalades det? (självrapporterat)", + amountLabel: "Belopp i sats (valfritt)", + submit: "Markera som såld", + }, + handoff: { + title: "Ordna överlämningen", + suggest: "Föreslå en tid och plats", + suggestDm: "Hej! Jag vill köpa \"{{title}}\". Föreslå en tid och plats att mötas — jag kan gärna mötas på en offentlig skate spot.", + orMeetAt: "Eller mötas på en närliggande offentlig spot:", + spotDm: "Hej! Jag vill köpa \"{{title}}\". Kan vi mötas vid {{spot}}? {{url}}", + shareDelivery: "Dela leveransuppgifter", + deliveryDm: "Hej! Jag vill köpa \"{{title}}\". Här är mina leveransuppgifter:\n\nNamn:\nAdress:\n\n(Dela bara det kuriren behöver.)", + useLocker: "Använd ett paketskåp / utlämningsställe", + lockerDm: "Hej! Jag vill köpa \"{{title}}\". Kan vi använda ett paketskåp / utlämningsställe istället för hemadress?", + noteBefore: "Dessa uppgifter stannar i den privata chatten — SkateSpots ser dem aldrig. För skickade affärer, föredra", + escrow: "escrow", + noteMiddle: ", och", + neverPay: "betala aldrig utanför appens kanaler", + noteAfter: ". Mötas på offentlig plats.", + }, + shipping: { + noCounterparty: "Ingen motpart ännu", + noCounterpartyBody: "Säljaren bör registrera försäljningen (och nämna köparen) först.", + markedShipped: "Markerad som skickad", + markedReceived: "Markerad som mottagen", + issueReported: "Problem rapporterat", + receivedBody: "Tack — detta frigör inte escrow; gör upp direkt med säljaren.", + notifiedBody: "Den andra sidan har meddelats.", + updateFailed: "Kunde inte uppdatera", + somethingWrong: "Något gick fel.", + title: "Frakt", + shipped: "skickad", + received: "mottagen", + issue: "problem", + trackingPlaceholder: "Spårningsnummer (valfritt)", + iShipped: "Jag har skickat den", + iReceived: "Jag har tagit emot den", + reportIssue: "Rapportera ett problem", + noteBefore: "Självrapporterat — en logistiknotis,", + notProof: "inte bevis", + noteAfter: ". Att markera \"mottagen\" frigör inte escrow. ⚠️ Fotografera inte ett paket med synlig adress, och dela bara ett spårningsnummer om du är bekväm med att det blir offentligt.", + }, + pay: { + sent: "Betalning skickad ⚡", + sentWithProof: "Sparade ett verifierbart betalningskvitto — det räknas som betalningsverifierat.", + sentBody: "Låt säljaren veta — de kan bekräfta traden så att den räknas för er båda.", + failed: "Betalning misslyckades", + title: "Betala med sats", + descSendPrefix: "Skicka", + descSendSuffix: "till {{sellerName}} för att göra upp denna affär.", + descSettle: "Gör upp denna affär direkt med {{sellerName}}.", + paid: "Betald!", + paidBody: "Be säljaren bekräfta traden — två bekräftelser bygger bådas rykte.", + noMethod: "{{sellerName}} har inte angett någon betalningsmetod (ingen Lightning-faktura eller adress). Meddela dem för att ordna betalning.", + ownListing: "Detta är din egen annons.", + paying: "Betalar…", + pay: "Betala", + payAmount: "Betala {{amount}} sats", + footnote: "Betalar från din anslutna plånbok (NWC, WebLN eller Cashu) direkt till {{sellerName}} — SkateSpots håller aldrig pengarna.", + }, + spamFee: { + invoiceComment: "SkateSpots annonsavgift", + generateFailed: "Kunde inte generera faktura", + paymentSuccess: "Betalning lyckades!", + satsSent: "{{amount}} sats skickade till {{name}}", + autoPayFailed: "Autobetalning misslyckades", + autoPayFailedBody: "Betala manuellt med QR-koden eller fakturan", + invoiceCopied: "Faktura kopierad!", + copyFailed: "Kopiering misslyckades", + received: "Betalning mottagen!", + receivedBody: "Din avgift på {{amount}} sats har betalats. Du kan nu skapa din annons.", + title: "Engångsavgift för annons", + subtitle: "Som ny medlem krävs en liten avgift för din första annons.", + whyTitle: "Varför behöver jag betala?", + spamLabel: "Spamskydd:", + spamBody: "Denna avgift stoppar botar och bedragare från att översvämma marketplace med falska annonser.", + trustLabel: "Förtroendebyggande:", + trustBody: "Nya konton måste visa engagemang innan de listar. Efter några lyckade annonser slopas avgiften.", + supportsLabel: "Stöttar communityn:", + supportsPrefix: "Avgiften går till", + supportsSpotOwner: " — personen som skapade denna spot!", + supportsPlatform: " — hjälper till att hålla SkateSpots igång.", + oneTimeFee: "~{{usd}} USD • Engångsavgift", + payToContinue: "Betala {{amount}} sats för att fortsätta", + proveWork: "Bevisa arbete istället — gratis", + proveWorkBody: "Lägg några sekunder av CPU istället för {{amount}} sats. Inga pengar, ingen plånbok — en spamavgift, inte en betalning.", + generating: "Genererar faktura...", + processing: "Behandlar betalning...", + qrAlt: "QR-kod för betalning", + copyInvoice: "Kopiera faktura", + openWallet: "Öppna plånbok", + payWithWallet: "Betala med ansluten plånbok", + scanHint: "Skanna QR-koden med en Lightning-plånbok eller använd knapparna ovan", + skipTitle: "Så undviker du denna avgift i framtiden:", + skip1: "Lägg till en skate spot på kartan", + skip2: "Slutför 2–3 lyckade annonser", + skip3: "Bygg ditt communityrykte", + skipNote: "Betrodda medlemmar får obegränsade gratis annonser!", + }, + reputation: { + highlyTrusted: "Högst betrodd handlare", + building: "Bygger rykte", + newTrader: "Ny handlare", + title: "Trades", + verified: "Verifierad", + sales: "Försäljningar", + purchases: "Köp", + tradeConfirmedOne: "ömsesidigt bekräftad trade", + tradeConfirmedMany: "ömsesidigt bekräftade trades", + with: "med", + personOne: "person", + personMany: "personer", + awaiting: "Väntar på ömsesidig bekräftelse", + withPaymentProof: "med ett betalningsbevis bifogat", + selfReported: "(självrapporterat — inte verifierat)", + paymentVerified: "betalningsverifierad", + zapReceipt: "(zap-kvitto)", + singlePartnerWarning: "Varje bekräftelse är med samma konto. Ömsesidig bekräftelse är självrapporterad, så behandla denna registrering med försiktighet.", + lowDiversityWarning: "De flesta bekräftelser kommer från väldigt få konton. En liten grupp som vittnar för varandra kan se aktiv ut — behandla denna registrering med försiktighet.", + ringWarning: "Dessa konton handlar mest med varandra — ett slutet kluster. Ömsesidig bekräftelse inom en ring är svagt bevis.", + weighted: "Förtroende- och aktivitetsviktat", + footnote: "Självrapporterat och ömsesidigt signerat — en signal, inte bevis på betalning.", + }, + reputationPanel: { + reviewOfYou: "Recension av dig", + yourRecord: "din registrering", + listing: "Annons", + averageOne: "snitt från {{count}} betyg", + averageMany: "snitt från {{count}} betyg", + reviewsTitle: "Recensioner och trade-registreringar", + fromOthers: "{{count}} från andra", + emptyBefore: "Inga trade-registreringar ännu. Slut en affär och bekräfta den i", + emptyAfter: "— varje bekräftelse blir en recension på båda profilerna.", + }, + recommendations: { + published: "Rekommendation publicerad", + publishedBody: "Tack för att du vittnar.", + failed: "Kunde inte rekommendera", + somethingWrong: "Något gick fel.", + title: "Betrodd handlare", + recommendedBy: "Rekommenderad av", + skaterOne: "skatare", + skaterMany: "skatare", + none: "Inga rekommendationer ännu.", + youRecommend: "Du rekommenderar denna handlare ✓", + recommend: "Rekommendera som betrodd handlare", + }, + notification: { + newOffer: "Nytt bud", + counterOffer: "Motbud", + offerAccepted: "Bud accepterat", + offerDeclined: "Bud avböjt", + offerWithdrawn: "Bud återkallat", + confirmTrade: "Bekräfta en trade", + tradeConfirmed: "Trade bekräftad", + reviewOffer: "Granska budet", + openListing: "Öppna annons", + }, + confirmRow: { + rateTrade: "Betygsätt traden:", + }, + deckRating: { + title: "{{value}}/10 decks", + aria: "{{n}} av 10", + }, + clink: { + tip: "Tippa i Bitcoin", + copiedBody: "CLINK-kod kopierad till urklipp.", + copyFailed: "Kopiering misslyckades", + copyFailedBody: "Kunde inte komma åt urklippet.", + whatIs: "Vad är CLINK?", + tooltipTitle: "Betala direkt med Bitcoin över Nostr", + tooltipBody: "CLINK är en självförvarande betalningskod — inget appkonto, ingen mellanhand. Skanna den med en kompatibel Lightning-plånbok och tipset går direkt till dem.", + descRecipient: "Skicka en självförvarande Bitcoin-betalning (Lightning) till {{recipientName}} — ingen mellanhand.", + descGeneric: "Skicka en självförvarande Bitcoin-betalning (Lightning) över Nostr — ingen mellanhand.", + qrAlt: "CLINK Offer QR-kod", + copyCode: "Kopiera CLINK-kod", + openWallet: "Öppna i CLINK-plånbok", + copyToWallet: "Kopiera kod för din plånbok", + priceFixed: "Fast — {{amount}} sats", + priceFixedShort: "Fast pris", + priceVariable: "Rörligt pris", + priceVariableCurrency: "Pris i {{currency}}", + priceSpontaneous: "Du väljer beloppet", + footnote: "Skanna med en CLINK-kompatibel plånbok (t.ex. ShockWallet). Om inget öppnas, kopiera koden ovan — du kanske inte har en CLINK-kompatibel plånbok installerad. Ingen förvarare, ingen webbserver: fakturan begärs direkt över Nostr.", + }, + paymentReadiness: { + ready: "Du kan få betalt", + notReady: "Ställ in betalningar för att få betalt", + readyBefore: "Din Lightning-adress", + readyAfter: " finns på din profil — folk kan zappa och betala dig direkt.", + silentSet: " En Bitcoin Silent Payment-adress är också angiven.", + notReadyBefore: "Lägg till en Lightning-adress (och valfritt en Bitcoin Silent Payment-adress) i din", + nostrProfile: "Nostr-profil", + notReadyAfter: "så att skatare kan betala dig. Det anges en gång och fungerar på alla profiler du har här.", + }, + seller: { + trade: "Trade", + active: "Aktiv", + markSold: "Markera såld", + yourListings: "Dina annonser", + activeCount: "{{count}} aktiva", + listItem: "Lista en vara", + loading: "Laddar dina annonser…", + empty: "Du har inga annonser ännu.", + listFirst: "Lista din första vara", + }, + noffer: { + label: "CLINK Offer-kod", + optional: "(valfritt, avancerat)", + offerId: "Offer: {{id}}", + relay: "Relay: {{relay}}", + invalidBefore: "Det där ser inte ut som en giltig", + invalidAfter: "kod.", + valid: "Giltig CLINK-kod — en \"Betala via CLINK\"-knapp visas på din profil.", + help: "Klistra in en självförvarande CLINK-betalningskod (t.ex. från ShockWallet / Lightning.Pub) för att ta emot Nostr-native Lightning-betalningar — ingen webbserver eller förvarare.", + learnSpecs: "Lär dig specarna", + }, + escrowPanel: { + escrowed: "Escrow: {{amount}} sats", + mint: "Mint", + refundSinceBefore: "Köparen kan återbetala sedan", + redeemBefore: "Säljaren kan lösa in nu · köparen återbetalar efter", + noExpiry: "Inget utgångsdatum angett på denna token.", + }, + escrowRequest: { + enterAmount: "Ange ett escrow-belopp", + minLock: "Lås i minst {{days}} dag", + requestNote: "Escrow: {{amount}} sats för vår trade — bekräfta försäljningen.", + created: "Escrow skapad 🎉", + createdBody: "{{amount}} sats låsta i {{days}} dagar. {{sellerName}} kan lösa in vid leverans.", + createFailed: "Kunde inte skapa escrow", + somethingWrong: "Något gick fel.", + title: "Escrow för denna trade", + description: "Pengar låses till {{sellerName}} och kan återbetalas av dig om affären faller efter deadline. Kräver en ansluten Lightning-plånbok.", + amountLabel: "Belopp (sats)", + daysLabel: "Köparen återbetalar efter (dagar)", + daysHint: "Efter så här många dagar kan du återkräva pengarna om säljaren inte har levererat.", + nativeOnly: "Cashu-escrow är endast tillgängligt i SkateSpots-appen (inte webbversionen).", + lockAndRequest: "Lås och begär", + }, + }, + labOptions: { + coach: { + skill: { + basics: "Grunderna", + ollies: "Ollies", + kickflips: "Kickflips", + grinds: "Grinds och slides", + manuals: "Manuals", + inverts: "Inverts", + vert: "Vert/ramp", + bowl: "Bowl", + street: "Street", + freestyle: "Freestyle", + safety: "Säkerhet", + diy: "DIY-skatemoduler", + }, + skillDesc: { + basics: "Att putta, stance, balans, svänga", + ollies: "Ollie och variationer (nollie, fakie)", + kickflips: "Kickflip, heelflip och variationer", + grinds: "50-50, 5-0, boardslide och mer", + manuals: "Manual, nose manual, kombos", + inverts: "Invert, handplant, eggplant, andrecht", + vert: "Half-pipe, quarter-pipe, drop-ins", + bowl: "Bowl-carving, pumping, lines", + street: "Street-hinder och kreativitet", + freestyle: "Flatground-tricks och flow", + safety: "Hur man faller, skyddsutrustning, skadeförebyggande", + diy: "Att bygga ramper, rails, ledges och andra skatehinder", + }, + }, + filmer: { + service: { + miniclips: "Miniklipp", + longparts: "Långa videoparts", + koth: "King of the Road-stil", + documentaries: "Dokumentärer", + contests: "Filmning för tävlingar", + raw: "Råmaterial", + followlines: "Follow- / line-filmning", + lines: "Line- och b-roll-filmning", + }, + serviceDesc: { + miniclips: "15–60 sek klipp för sociala medier", + longparts: "3–10 min hela videoparts med musik", + koth: "Skatevideor i äventyr-/utmaningsstil", + documentaries: "Skatekultur och berättelsedrivet innehåll", + contests: "Professionell täckning av tävlingar", + raw: "Redigerat material från flera vinklar", + followlines: "Fisheye follow-cam för lines", + lines: "Teleobjektiv-lines och cinematisk b-roll", + }, + skill: { + vx1000: "VX1000", + hvx: "HVX / HPX", + cinema: "Kinokamera", + dslr: "DSLR / spegellös", + actioncam: "GoPro / actionkamera", + phone: "Telefonfilmning", + drone: "Drönare / luftfilmning", + gimbal: "Gimbal / stabilisator", + fisheye: "Fisheye-objektiv", + longlens: "Teleobjektiv", + "4k": "4K / hög bildfrekvens", + editing: "Videoredigering", + color: "Färggradering", + }, + skillDesc: { + vx1000: "Klassisk VX1000-skateboardestetik", + hvx: "Panasonic HVX/HPX standard-def / HD-look", + cinema: "Kinokamera (FX3, C-serien, RED, BMPCC)", + dslr: "Högkvalitativ DSLR- eller spegellös kamera", + actioncam: "GoPro / actionkamera POV och fästen", + phone: "Mobil filmning med moderna smartphones", + drone: "Luft- och drönarfilmning", + gimbal: "Stabiliserad gimbal-rörelse", + fisheye: "Vidvinkel-fisheye-tagningar", + longlens: "Teleobjektiv för detaljerade tagningar", + "4k": "4K-upplösning och slow-mo med hög bildfrekvens", + editing: "Professionell videoredigering och postproduktion", + color: "Färgkorrigering och gradera", + }, + }, + editor: { + service: { + parts: "Videoparts", + montages: "Montage", + reels: "Reels / kortklipp", + documentaries: "Dokumentärer", + contest: "Tävlingsedits", + brand: "Varumärkes- / promovideor", + motion: "Motion graphics", + colorgrade: "Endast färggradering", + }, + serviceDesc: { + parts: "Hela skatevideoparts med soundtrack", + montages: "Kompilationsedits från råmaterial", + reels: "15–60 sek klipp och reels för sociala medier", + documentaries: "Berättelsedrivna skatekulturfilmer", + contest: "Sammanfattningsedits för tävlingar och event", + brand: "Marknadsföringsinnehåll för varumärken och shops", + motion: "Titlar, övergångar, effekter och grafik", + colorgrade: "Färgkorrigering och LUT-baserad grading", + }, + skill: { + premiere: "Adobe Premiere", + resolve: "DaVinci Resolve", + finalcut: "Final Cut Pro", + aftereffects: "After Effects", + luts: "Anpassade LUT:ar", + vhs: "VHS / retroestetik", + "4k": "4K- och RAW-arbetsflöden", + sound: "Ljuddesign / mix", + }, + skillDesc: { + premiere: "Redigering i Adobe Premiere Pro", + resolve: "Redigering och grading i DaVinci Resolve", + finalcut: "Redigering i Final Cut Pro", + aftereffects: "Motion graphics och compositing", + luts: "Anpassad färglook-utveckling", + vhs: "VHS-glitch, super-8, retrofilmlookar", + "4k": "Högupplösta RAW/LOG-kameraflöden", + sound: "Musiksynk, SFX, ljudmastering", + }, + }, + photo: { + service: { + action: "Action- / trickbilder", + sequence: "Sekvensbilder", + portraits: "Porträtt", + editorial: "Redaktionellt / tidning", + product: "Produkt- / shopfotografering", + events: "Eventtäckning", + lifestyle: "Lifestyle / dokumentärt", + prints: "Printar och zines", + }, + serviceDesc: { + action: "Stillbilder av tricks och lines vid peak-action", + sequence: "Tricksekvenser i flera bildrutor", + portraits: "Åkarporträtt och teamfoton", + editorial: "Tidningsklara redaktionella uppslag", + product: "Fotografering av decks, gear och shopprodukter", + events: "Täckning av tävlingar, jams och premiärer", + lifestyle: "Bakom kulisserna och kulturdokumentär", + prints: "Fysiska printar, zines och fotoböcker", + }, + camera: { + dslr: "DSLR", + mirrorless: "Spegellös", + medium: "Mellanformat", + film35: "35 mm film", + filmmedium: "Mellanformatsfilm", + point: "Komplettkamera", + phone: "Telefon", + }, + lens: { + fisheye: "Fisheye", + wide: "Vidvinkel", + standard: "Standard / fast", + telephoto: "Tele / långt objektiv", + macro: "Makro", + zoom: "Zoom", + }, + lighting: { + strobes: "Studioblixtar", + speedlights: "Speedlights / blixtar", + profoto: "Profoto", + elinchrom: "Elinchrom", + godox: "Godox", + triggers: "Fjärrtriggers", + continuous: "Kontinuerligt / LED", + reflectors: "Reflektorer / diffusorer", + naturallight: "Endast naturligt ljus", + }, + support: { + tripod: "Stativ", + monopod: "Monopod", + lightstands: "Ljusstativ", + gimbal: "Gimbal", + bag: "Mobilt rigg / väska", + laptop: "Tethering på plats", + }, + style: { + flashfisheye: "Blixt-fisheye", + natural: "Naturligt ljus", + bw: "Svartvitt", + film: "Filmestetik", + longlens: "Teleobjektiv", + studio: "Studio / belyst", + street: "Street / dokumentärt", + }, + }, + builder: { + service: { + diy: "DIY-spots", + concrete: "Betongparker", + wood: "Träramper", + bowls: "Bowls och pools", + transitions: "Transitions och quarters", + rails: "Rails och ledges", + boxes: "Manny pads och boxes", + minis: "Miniramper", + pumptrack: "Pumptracks", + foam: "Foampits / inomhus", + repairs: "Reparationer och nyläggning", + design: "Design och konsultation", + }, + serviceDesc: { + diy: "Community-DIY-spots och gerillabyggen", + concrete: "Gjutna betongskateparker och features", + wood: "Träramper, launch boxes och hinder", + bowls: "Bowls, pools och djup transition", + transitions: "Quarterpipes, banks och transition", + rails: "Stålrails, ledges och grind-features", + boxes: "Manny pads, funboxes och street-features", + minis: "Miniramper och setups i trädgården", + pumptrack: "Pumptracks och flow-lines", + foam: "Foampits, resi och träningsfeatures inomhus", + repairs: "Laga, lappa och lägga ny yta på befintliga spots", + design: "Planer, ritningar och byggkonsultation", + }, + skill: { + concretework: "Betong / sprutbetong", + welding: "Svetsning / stålfabrikation", + carpentry: "Snickeri / träarbete", + formwork: "Form och armering", + masonry: "Murning / blockarbete", + coping: "Coping (pool / stål)", + surfacing: "Skatelite / ytbeläggning", + earthworks: "Markarbete / grävning", + }, + scale: { + backyard: "Trädgård / mini", + diycommunity: "Community-DIY", + publicpark: "Full offentlig park", + indoor: "Inomhusanläggning", + event: "Event- / tävlingsbana", + }, + }, + artist: { + service: { + boardart: "Board-grafik", + logos: "Logotyper och varumärke", + posters: "Affischer och flyers", + merch: "Merch och kläder", + zines: "Zines och print", + illustration: "Illustration", + stickers: "Klistermärken och dekaler", + webdesign: "Webb / digitalt", + typography: "Typografi / lettering", + animation: "Animation / motion", + }, + serviceDesc: { + boardart: "Deck-grafik och griptape-konst", + logos: "Varumärkesidentitet, logotyper och wordmarks", + posters: "Eventaffischer, flyers och gig-konst", + merch: "T-shirts, hoodies och klädgrafik", + zines: "Zines, redaktionell och printlayout", + illustration: "Anpassad illustration och figurer", + stickers: "Klistermärkespack, dekaler och slaps", + webdesign: "Webbplatser, digitalt och UI", + typography: "Handlettering och anpassad typ", + animation: "Motion graphics och animation", + }, + medium: { + digital: "Digitalt / vektor", + handdrawn: "Handtecknat", + screenprint: "Screentryck", + paint: "Färg / akryl", + collage: "Collage / blandat", + photo: "Foto / 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-ups", + pieces: "Pieces / burners", + murals: "Muraler", + characters: "Karaktärer", + lettering: "Lettering / wildstyle", + stencil: "Stencil", + handstyles: "Handstyles / tags", + "3dstyle": "3D-stil", + abstract: "Abstrakt", + }, + styleDesc: { + throwups: "Snabba tvåfärgsfyllningar", + pieces: "Fullfärgs-pieces och burners", + murals: "Storskaliga muraler och produktioner", + characters: "Figur- och karaktärsarbete", + lettering: "Wildstyle och bokstavsstruktur", + stencil: "Stencil och street art", + handstyles: "Tags och handstyles", + "3dstyle": "3D- och anamorfisk lettering", + abstract: "Abstrakt och freestyle", + }, + medium: { + spray: "Sprayburkar", + rollers: "Rollers / emulsion", + markers: "Markers / bläck", + brush: "Pensel / färg", + digital: "Digitalt / Procreate", + }, + context: { + legalwalls: "Lagliga väggar", + commissions: "Uppdrag", + liveart: "Livemålning", + skateparks: "Skatepark-muraler", + interiors: "Interiörer / shops", + workshops: "Workshops", + }, + }, + tattoo: { + style: { + traditional: "Traditional / old school", + neotraditional: "Neo-traditional", + fineline: "Fin line", + blackwork: "Blackwork", + realism: "Realism", + lettering: "Lettering / script", + illustrative: "Illustrativ", + skateflash: "Skate-flash", + ignorant: "Ignorant / handpoke-stil", + japanese: "Japansk / irezumi", + }, + styleDesc: { + traditional: "Djupa linjer, klassisk americana", + neotraditional: "Traditional med modern detalj", + fineline: "Delikat arbete med enkel nål", + blackwork: "Hel svart och mönster", + realism: "Fotorealistiskt och porträtt", + lettering: "Script, lettering och citat", + illustrative: "Illustrativt och grafiskt", + skateflash: "Flash-design i skatekultur", + ignorant: "Ignorant / naiv handpoke-stil", + japanese: "Japansk traditional / irezumi", + }, + method: { + machine: "Maskin", + handpoke: "Hand-poke / stick & poke", + flash: "Flash tillgängligt", + custom: "Anpassade designer", + coverup: "Cover-ups", + }, + }, + trainer: { + focus: { + strength: "Styrka och kondition", + mobility: "Rörlighet och flexibilitet", + injuryprevention: "Skadeförebyggande", + rehab: "Rehab / fysio", + recovery: "Återhämtning och kroppsarbete", + balance: "Balans och stabilitet", + cardio: "Cardio / uthållighet", + nutrition: "Kostvägledning", + }, + focusDesc: { + strength: "Bygga styrka och kraft för skating", + mobility: "Rörelseomfång och flexibilitet", + injuryprevention: "Prehab och minskad skaderisk", + rehab: "Fysioterapi och rehab efter skada", + recovery: "Massage, kroppsarbete och återhämtning", + balance: "Proprioception, balans och stabilitet", + cardio: "Kondition och uthållighet", + nutrition: "Näring och kostråd", + }, + injury: { + ankles: "Anklar", + knees: "Knän", + wrists: "Handleder", + hips: "Höfter", + back: "Rygg / nacke", + shoulders: "Axlar", + heelbruise: "Hälskador", + concussion: "Hjärnskakningsprotokoll", + }, + credential: { + physio: "Legitimerad fysioterapeut", + osteo: "Osteopat", + certtrainer: "Certifierad tränare", + sportstherapist: "Idrottsterapeut", + massage: "Massageterapeut", + inperson: "På plats", + remote: "Distans / online", + }, + }, + musician: { + genre: { + punk: "Punk", + hardcore: "Hardcore", + metal: "Metal", + rock: "Rock", + indie: "Indie / alt", + hiphop: "Hip-hop / rap", + electronic: "Elektroniskt", + lofi: "Lo-fi / beats", + reggae: "Reggae / dub", + ska: "Ska", + jazz: "Jazz", + funk: "Funk / soul", + flamenco: "Flamenco", + folk: "Folk / akustiskt", + experimental: "Experimentellt", + grunge: "Grunge", + }, + instrument: { + vocals: "Sång", + guitar: "Gitarr", + bass: "Bas", + drums: "Trummor", + keys: "Keys / synth", + dj: "DJ / skivspelare", + producer: "Producent / beats", + sax: "Sax / brass", + strings: "Stråkar", + other: "Övrigt", + }, + act: { + solo: "Soloartist", + band: "Band", + dj: "DJ", + producer: "Producent", + collective: "Kollektiv", + }, + }, + judge: { + format: { + game_of_skate: "Game of S.K.A.T.E.", + best_trick: "Best Trick", + jam: "Jam-format", + contest: "Tävling / comp", + street_league: "Street League-stil", + bowl: "Bowl / vert", + mini_ramp: "Miniramp", + park: "Park", + street: "Street", + freestyle: "Freestyle", + world_tour: "World Destruction Tour", + am_series: "Am-serie / kval", + local_jam: "Lokal jam / gräsrötter", + online: "Online / IG-tävling", + }, + specialty: { + head_judge: "Huvuddomare", + scoring: "Poäng / tabulering", + mc: "MC / presentatör", + format_design: "Formatdesign", + rules: "Regler / domslut", + brackets: "Brackets / heat", + livestream: "Livestream-dömning", + am_scout: "Am-scouting", + }, + level: { + local: "Lokal", + regional: "Regional", + national: "Nationell", + international: "Internationell", + pro: "Proffstour", + }, + }, + organizer: { + event: { + street_jam: "Street-jam", + best_trick: "Best Trick", + game_of_skate: "Game of S.K.A.T.E.", + contest: "Tävling / comp", + bowl: "Bowl / vert", + mini_ramp: "Miniramp", + park: "Parksession", + demo: "Proffsdemo", + clinic: "Clinic / workshop", + meetup: "Meetup / cruise", + downhill: "Downhill / race", + slalom: "Slalom", + kids: "Barn / ungdom", + charity: "Välgörenhet / insamling", + tour_stop: "Tourstopp", + premiere: "Videopremiär", + market: "Marknad / konstutställning", + }, + service: { + organizing: "Fullt arrangerande", + hosting: "Värdskap / MC", + permits: "Tillstånd och kommun", + sponsorship: "Sponsring / varumärkesavtal", + promotion: "Marknadsföring", + livestream: "Livestream / täckning", + sound: "Ljud och musik", + ramps: "Ramper och hinder", + safety: "Säkerhet och första hjälpen", + vendors: "Mat och försäljare", + media: "Foto- / videotäckning", + registration: "Anmälan och brackets", + }, + scale: { + grassroots: "Gräsrötter", + local: "Lokal", + regional: "Regional", + national: "Nationell", + international: "Internationell", + pro: "Proffstour", + }, + }, + barber: { + service: { + haircut: "Klippning", + fade: "Fade", + beard: "Skäggtrimning", + lineup: "Line-up / shape-up", + colour: "Färg och toning", + kids: "Barnklippning", + }, + serviceDesc: { + haircut: "En klassisk klippning — maskin och sax.", + fade: "En graderad fade — låg, mellan eller hög.", + beard: "Trimning, formning och uppsnyggning av skägg.", + lineup: "Rena kanter runt hårfäste och nacke.", + colour: "Färg, blekning, toning och nyansering.", + kids: "Tålmodiga klippningar för yngre skatare.", + }, + style: { + skin_fade: "Skin fade", + taper: "Taper", + buzz: "Buzz cut", + mohawk: "Mohawk", + mullet: "Mullet", + curly: "Lockar / afro", + long: "Långt hår / lager", + classic: "Klassisk saxklippning", + }, + setting: { + shop: "Shop / barbershop", + mobile: "Mobilt / hembesök", + event: "Skate-event och tävlingar", + }, + }, + tour: { + skill: { + beginner: { + label: "Nybörjare", + description: "Ny på skating eller grundläggande tricks", + }, + intermediate: { + label: "Medel", + description: "Bekväm med de flesta typer av terräng", + }, + advanced: { + label: "Avancerad", + description: "Erfaren skatare, tuffa spots", + }, + all: { + label: "Alla nivåer", + description: "Passar alla", + }, + }, + }, + }, +}; export default svBatch6; diff --git a/src/i18n/sv/batch7.ts b/src/i18n/sv/batch7.ts index ea8294f..2ded242 100644 --- a/src/i18n/sv/batch7.ts +++ b/src/i18n/sv/batch7.ts @@ -1,4 +1,908 @@ -/** sv — batch 7. Filled by the translation pass; empty until then. */ -const svBatch7 = {}; +/** sv — batch 7. Translated from the English source. */ +export const svBatch7 = { + events: { + title: "Skate-event", + createEvent: "Skapa event", + editEvent: "Redigera event", + eventDetails: "Eventdetaljer", + eventName: "Eventnamn", + eventType: "Eventtyp", + date: "Datum", + time: "Tid", + startDate: "Startdatum", + endDate: "Slutdatum", + venue: "Plats", + organizer: "Arrangör", + attendees: "Deltagare", + going: "Kommer", + interested: "Intresserad", + rsvp: "RSVP", + ticketPrice: "Biljettpris", + freeEntry: "Fri entré", + register: "Anmäl dig", + moreInfo: "Mer info", + upcomingEvents: "Kommande", + pastEvents: "Tidigare", + noEvents: "Inga event hittades", + findEvents: "Hitta tävlingar, demos, sessions och mer", + searchPlaceholder: "Sök event...", + loginToCreate: "Logga in för att skapa event", + noEventsMatch: "Inga kommande event matchar dina filter.", + noUpcoming: "Inga kommande event hittades.", + noPast: "Inga tidigare event hittades.", + types: { + contest: "Tävling", + session: "Session", + meetup: "Meetup", + premiere: "Videopremiär", + workshop: "Workshop", + demo: "Demo", + jam: "Jam", + }, + }, + wallet: { + title: "Plånbok", + balance: "Saldo", + send: "Skicka", + receive: "Ta emot", + transactions: "Transaktioner", + history: "Historik", + noTransactions: "Inga transaktioner än", + sendSats: "Skicka sats", + receiveSats: "Ta emot sats", + amount: "Belopp", + recipient: "Mottagare", + lightning: "Lightning", + onChain: "On-chain", + invoice: "Faktura", + address: "Adress", + scanQR: "Skanna QR", + paste: "Klistra in", + payInvoice: "Betala faktura", + createInvoice: "Skapa faktura", + copied: "Kopierat till urklipp!", + insufficientFunds: "Otillräckliga medel", + paymentSent: "Betalning skickad!", + paymentReceived: "Betalning mottagen!", + cashu: { + title: "Cashu Wallet", + tokens: "Tokens", + mint: "Mint", + mints: "Mints", + manageMints: "Hantera mints", + addMint: "Lägg till mint", + removeMint: "Ta bort mint", + defaultMint: "Standardmint", + backup: "Säkerhetskopiera", + restore: "Återställ", + recoveryPhrase: "Återställningsfras", + viewRecoveryPhrase: "Visa återställningsfras", + seedWarning: "Det här är som din Nostr nsec - håll den hemlig och säkerhetskopierad!", + }, + }, + spots: { + addSpot: "Lägg till Spot", + editSpot: "Redigera Spot", + spotDetails: "Spotdetaljer", + spotName: "Spotnamn", + spotType: "Spottyp", + description: "Beskrivning", + location: "Plats", + address: "Adress", + photos: "Foton", + addPhotos: "Lägg till foton", + obstacles: "Hinder", + features: "Funktioner", + bustLevel: "Bust-nivå", + bestTime: "Bästa tid", + tips: "Tips", + reviews: "Recensioner", + addReview: "Lägg till recension", + reportSpot: "Rapportera Spot", + directions: "Vägbeskrivning", + shareSpot: "Dela Spot", + createdBy: "Skapad av", + lastUpdated: "Senast uppdaterad", + types: { + park: "Skatepark", + street: "Street Spot", + diy: "DIY Spot", + plaza: "Plaza", + indoor: "Inomhus", + bowl: "Bowl", + vert: "Vert", + miniramp: "Mini Ramp", + }, + bustLevels: { + chill: "Chill", + moderate: "Måttlig", + sketchy: "Sketchy", + heavy: "Hård", + }, + }, + settings: { + title: "Inställningar", + profile: "Profil", + editProfile: "Redigera profil", + account: "Konto", + security: "Säkerhet", + relays: "Relays", + appearance: "Utseende", + language: "Språk", + notifications: "Aviseringar", + privacy: "Integritet", + about: "Om", + help: "Hjälp", + feedback: "Feedback", + version: "Version", + displayName: "Visningsnamn", + username: "Användarnamn", + bio: "Bio", + website: "Webbplats", + lightningAddress: "Lightning-adress", + profilePicture: "Profilbild", + banner: "Banner", + saveProfile: "Spara profil", + backupKeys: "Säkerhetskopiera nycklar", + exportKeys: "Exportera nycklar", + secretKey: "Hemlig nyckel", + publicKey: "Publik nyckel", + showSecretKey: "Visa hemlig nyckel", + hideSecretKey: "Dölj hemlig nyckel", + copyKey: "Kopiera nyckel", + keysBackedUp: "Du har bekräftat att dina nycklar är säkert säkerhetskopierade.", + keysNotBackedUp: "Se till att säkerhetskopiera din återställningsfras eller hemliga nyckel!", + selectLanguage: "Välj språk", + english: "Engelska", + spanish: "Spanska", + }, + createSpot: { + title: "Lägg till en skate-spot", + subtitle: "Dela en skateboard-spot med communityn", + backToMap: "Tillbaka till kartan", + namePlaceholder: "t.ex. Hollywood High School", + descriptionPlaceholder: "Beskriv spoten, hinder, bästa tider att skejta, säkerhetsinfo, osv.", + addressPlaceholder: "t.ex. 1521 N Highland Ave, Los Angeles, CA", + selectType: "Välj spottyp", + selectBustLevel: "Välj bust-nivå", + uploadPhotos: "Ladda upp", + dragDrop: "Dra och släpp eller klicka för att ladda upp", + maxPhotos: "Max 5 foton", + publishing: "Publicerar...", + success: "Spoten publicerades!", + error: "Kunde inte publicera spoten", + locationRequired: "Välj en plats på kartan", + useCurrentLocation: "Använd min nuvarande plats", + pickOnMap: "Välj plats på kartan", + loginToAdd: "Du måste logga in för att lägga till en skate-spot.", + locationLabel: "Plats", + tapToPlace: "Tryck på kartan för att sätta nålen, eller dra den för att finjustera.", + manualCoords: "Ange koordinater manuellt", + moreDetails: "Mer information (valfritt)", + photoHint: "ett foto krävs för att publicera", + nameRequired: "Ange ett namn för spoten.", + descriptionRequired: "Beskriv spoten.", + addressRequired: "Lägg till en adress eller ett områdesnamn.", + photoRequired: "Lägg till minst ett foto.", + draftTitle: "Du har ett osparat utkast", + draftBody: "Fortsätt där du slutade, eller släng det.", + draftResume: "Återuppta", + draftDiscard: "Släng utkast", + requiredFields: "Berätta om spoten. Alla fält markerade med * är obligatoriska.", + coordinates: "Koordinater", + latitudePlaceholder: "Latitud (t.ex. 34.1012)", + longitudePlaceholder: "Longitud (t.ex. -118.3389)", + gettingLocation: "Hämtar plats...", + accessType: "Åtkomsttyp", + publicTitle: "Offentlig - öppen för alla", + publicDesc: "Skateparker, offentliga plazas, street-spots", + privateTitle: "Privat egendom - tillstånd krävs", + privateDesc: "Ramar i trädgården, privat mark, gated spots", + localsTitle: "Fråga locals först", + localsDesc: "Respektera spoten, avslöja den inte", + contactInfo: "Kontaktinformation", + contactPlaceholder: "t.ex. telefonnummer, Instagram, e-post...", + contactHintPrivate: "Hur ska folk kontakta dig för tillstånd?", + contactHintLocals: "Hur ska folk höra av sig för att fråga om spoten?", + }, + marketplace: { + title: "Marketplace", + subtitle: "Köp, sälj och byt skate-gear", + addListing: "Lägg till annons", + condition: "Skick", + conditions: { + new: "Ny", + likeNew: "Som ny", + good: "Bra", + fair: "Okej", + poor: "Dålig", + }, + categories: { + all: "Alla", + decks: "Decks", + trucks: "Trucks", + wheels: "Hjul", + bearings: "Lager", + shoes: "Skor", + clothing: "Kläder", + protection: "Skydd", + other: "Övrigt", + }, + priceRange: "Prisintervall", + location: "Plats", + seller: "Säljare", + contact: "Kontakta säljare", + makeOffer: "Ge ett bud", + sold: "Såld", + available: "Tillgänglig", + gear: "Gear", + sellGear: "Sälj Gear", + wantToBuy: "Vill köpa", + }, + auth: { + login: "Logga in", + logout: "Logga ut", + signUp: "Skapa konto", + signUpTitle: "Ny på Nostr?", + signUpDesc: "Skapa ett nytt konto för att komma igång. Det är gratis och öppet.", + orLogIn: "Eller logga in", + loginWithExtension: "Logga in med tillägg", + loginWithAmber: "Logga in med Amber (Android)", + loginWithKey: "Hemlig nyckel (nsec) eller återställningsfras", + loginWithBunker: "Logga in med Nostr Connect", + bunkerUri: "Bunker-anslutningssträng", + openAmber: "Öppna Amber", + connectToBunker: "Anslut till Bunker", + noExtension: "Inget tillägg hittades.", + extensionHelp: "Prova knappen Skapa konto ovan för att skapa ett nytt konto, eller använd flikarna Amber, Nyckel eller Bunker om du redan har inloggningsuppgifter.", + amberDesc: "Amber är en säker Nostr-signerare för Android-enheter. Klicka på knappen nedan för att öppna Amber och auktorisera åtkomst.", + bunkerDesc: "Kom åt ditt konto från vilken enhet som helst med en fjärrsignerare (bunker). Dina nycklar förblir säkra på servern och exponeras aldrig för webbplatser.", + keyPlaceholder: "nsec1... eller din 12-ords återställningsfras", + keyHint: "Du kan klistra in antingen din nsec-nyckel eller en 12-ords återställningsfras", + uploadKeyFile: "Ladda upp din nyckelfil", + loggingIn: "Loggar in...", + connecting: "Ansluter...", + verifying: "Verifierar...", + }, + createEvent: { + title: "Skapa ett event", + subtitle: "Anordna ett skateboard-event för communityn", + backToEvents: "Tillbaka till event", + namePlaceholder: "t.ex. Sommar-session", + descriptionPlaceholder: "Beskriv eventet, vad som väntar, regler, priser, osv.", + selectType: "Välj eventtyp", + venuePlaceholder: "t.ex. Venice Beach Skatepark, CA", + selectDate: "Välj datum", + selectTime: "Välj tid", + ticketPricePlaceholder: "Lämna tomt för gratis event", + publishing: "Publicerar...", + success: "Eventet publicerades!", + error: "Kunde inte publicera eventet", + loginToCreate: "Du måste logga in för att skapa ett event.", + requiredFields: "Berätta om eventet. Alla fält markerade med * är obligatoriska.", + startDateTime: "Startdatum och tid", + endDateTime: "Slutdatum och tid (valfritt)", + coordinatesOptional: "Koordinater (valfritt)", + coverImage: "Omslagsbild", + uploadCover: "Ladda upp omslagsbild", + nip05Recommended: "NIP-05-verifiering rekommenderas", + nip05Desc: "Lägg till en NIP-05-identifierare i din profil för att verifiera din identitet och bygga förtroende hos deltagarna.", + addNip05: "Lägg till NIP-05 i Inställningar", + }, + labPage: { + title: "The Lab", + subtitle: "Lär dig trick. Fånga ögonblick. Få kontakt med andra skatare", + coachesTab: "Coaching", + filmersTab: "Filmning", + offerCoaching: "ERBJUD COACHING", + offerFilming: "ERBJUD FILMNING", + loginToOffer: "Logga in för att erbjuda tjänster", + whatToLearn: "VAD VILL DU LÄRA DIG?", + whatContent: "VILKEN TYP AV INNEHÅLL?", + selectSkillsDesc: "Välj skills och vi matchar dig med coacher", + selectFilmingDesc: "Välj filmtjänster du letar efter", + searchPlaceholder: "Sök på namn, plats eller skills...", + noServicesYet: "INGA TJÄNSTER ÄN", + beFirstToOffer: "Bli först med att erbjuda coaching- eller filmtjänster till communityn!", + skills: "Skills", + rate: "Pris", + perHour: "/timme", + contact: "Kontakta", + viewProfile: "Visa profil", + noProfilesYet: "Inga profiler än", + beFirstCoach: "Bli först med att registrera dig som coach!", + beFirstFilmer: "Bli först med att registrera dig som filmare!", + yearsExperience: "års erfarenhet", + }, + skills: { + kickflip: "Kickflip", + heelflip: "Heelflip", + ollie: "Ollie", + treflip: "360 Flip", + shuvit: "Shuvit", + hardflip: "Hardflip", + varial: "Varial", + nollie: "Nollie", + fakie: "Fakie", + switch: "Switch", + grind: "Grind", + slide: "Slide", + manual: "Manual", + transition: "Transition", + bowl: "Bowl", + vert: "Vert", + street: "Street", + flatground: "Flatground", + }, + lab: { + title: "The Lab", + subtitle: "Ta din åkning till nästa nivå", + coaches: "Coacher", + filmers: "Filmare", + findCoach: "Hitta en coach", + becomeCoach: "Bli coach", + findFilmer: "Hitta en filmare", + becomeFilmer: "Bli filmare", + hourlyRate: "Timpris", + experience: "Erfarenhet", + specialties: "Specialiteter", + availability: "Tillgänglighet", + bookSession: "Boka en session", + contactCoach: "Kontakta coach", + noCoaches: "Inga coacher hittades i ditt område", + noFilmers: "Inga filmare hittades i ditt område", + }, + shops: { + title: "Skate Shops", + addShop: "Lägg till Shop", + editShop: "Redigera Shop", + shopDetails: "Shopdetaljer", + shopName: "Shopnamn", + hours: "Öppettider", + phone: "Telefon", + website: "Webbplats", + services: "Tjänster", + brands: "Varumärken", + supportLocal: "Stötta lokalt", + nip05: "Shop NIP-05", + nip05Hint: "Ett valfritt handtag du kontrollerar för den här Shopen (t.ex. shop@dindomän.com), verifierat mot din nyckel. Lägg till upp till 5.", + }, + becomeFilmer: { + title: "Bli filmare", + subtitle: "Fånga de bästa klippen för communityn", + bioPlaceholder: "Berätta om din filmerfarenhet och utrustning...", + specialtiesPlaceholder: "t.ex. fisheye, teleobjektiv, drönare, redigering", + selectSpecialties: "Välj dina specialiteter", + hourlyRate: "Timpris (sats)", + ratePlaceholder: "t.ex. 5000", + locationPlaceholder: "Din stad eller ditt område", + portfolioUrl: "Portfölj-URL", + portfolioPlaceholder: "Länk till ditt arbete (YouTube, Instagram, osv.)", + publishing: "Publicerar profil...", + success: "Filmarprofil skapad!", + error: "Kunde inte skapa profilen", + }, + food: { + title: "Matställen", + subtitle: "Tanka energi före eller efter din session", + addFood: "Lägg till matställe", + categories: { + all: "Alla", + burgers: "Burgare", + pizza: "Pizza", + tacos: "Tacos", + coffee: "Kaffe", + drinks: "Drycker", + snacks: "Snacks", + }, + skaterFriendly: "Skatervänligt", + nearSpots: "Nära Spots", + }, + profile: { + posts: "Inlägg", + spots: "Spots", + events: "Event", + following: "Följer", + followers: "Följare", + editProfile: "Redigera profil", + follow: "Följ", + unfollow: "Sluta följa", + noPostsYet: "Inga inlägg än", + noBio: "Ingen bio än", + zapProfile: "Zappa den här skataren", + }, + becomeCoach: { + title: "Bli coach", + subtitle: "Dela dina skills och hjälp andra skatare att utvecklas", + bioPlaceholder: "Berätta om din skatebakgrund och undervisningsstil...", + skillsPlaceholder: "t.ex. kickflip, heelflip, grinds, bowls", + selectSkills: "Välj skills du kan lära ut", + hourlyRate: "Timpris (sats)", + ratePlaceholder: "t.ex. 5000", + locationPlaceholder: "Din stad eller ditt område", + publishing: "Publicerar profil...", + success: "Coachprofil skapad!", + error: "Kunde inte skapa profilen", + }, + weather: { + title: "Väder", + current: "Aktuella förhållanden", + forecast: "Prognos", + humidity: "Luftfuktighet", + wind: "Vind", + feelsLike: "Känns som", + goodForSkating: "Bra för att skejta!", + notIdeal: "Inte idealiska förhållanden", + allWeather: "Allt väder", + goodWeather: "Bra väder", + perfectWeather: "Perfekt väder", + }, + errors: { + somethingWentWrong: "Något gick fel", + tryAgainLater: "Försök igen senare", + notFound: "Hittades inte", + pageNotFound: "Sidan hittades inte", + unauthorized: "Obehörig", + loginRequired: "Logga in för att fortsätta", + networkError: "Nätverksfel", + checkConnection: "Kontrollera din internetanslutning", + invalidInput: "Ogiltig inmatning", + requiredField: "Det här fältet är obligatoriskt", + }, + time: { + today: "Idag", + yesterday: "Igår", + tomorrow: "Imorgon", + thisWeek: "Den här veckan", + nextWeek: "Nästa vecka", + thisMonth: "Den här månaden", + justNow: "Just nu", + minutesAgo: "{{count}} minuter sedan", + hoursAgo: "{{count}} timmar sedan", + daysAgo: "{{count}} dagar sedan", + }, + spotDetail: { + postedBy: "Upplagd av", + getDirections: "Vägbeskrivning", + reviews: "Recensioner", + noReviews: "Inga recensioner än", + beFirstReview: "Bli först med att recensera den här Spoten!", + writeReview: "Skriv en recension", + submitReview: "Skicka recension", + rating: "Betyg", + reviewPlaceholder: "Dela din upplevelse på den här Spoten...", + relatedSpots: "Spots i närheten", + }, + eventDetail: { + organizedBy: "Anordnas av", + eventInfo: "Eventinfo", + location: "Plats", + dateTime: "Datum och tid", + price: "Pris", + attendeeCount: "{{count}} kommer", + interested: "Intresserad", + going: "Kommer", + notGoing: "Kommer inte", + share: "Dela event", + }, + venueAccess: { + title: "Åtkomstpass", + desc: "Utfärda ett signerat pass till en åkare så att de kan bevisa åtkomst vid dörren - de visar sitt kort och vem som helst kan skanna QR-koden för att verifiera det.", + active: "{{count}} aktiva", + revoked: "{{count}} återkallade", + issue: "Utfärda ett pass", + verifyHint: "Verifieras genom att skanna - ingen app eller konto behövs för att kolla.", + publicTitle: "Åtkomstpass", + publicDesc: "Den här platsen utfärdar åtkomstpass. Skanna en åkares kort vid dörren för att verifiera det.", + badge: "Pass", + sellerHint: "Den här säljarens plats utfärdar åtkomstpass", + }, + zaps: { + zapButton: "Zap", + sendZap: "Skicka Zap", + zapAmount: "Zap-belopp", + customAmount: "Anpassat belopp", + addMessage: "Lägg till ett meddelande (valfritt)", + sending: "Skickar...", + sent: "Zap skickad!", + failed: "Zap misslyckades", + received: "Du fick en Zap!", + }, + rewards: { + title: "Belöningar", + yourPoints: "Dina poäng", + earnPoints: "Tjäna poäng", + redeemPoints: "Lös in poäng", + leaderboard: "Topplista", + achievements: "Prestationer", + dailyTasks: "Dagliga uppgifter", + weeklyTasks: "Veckouppgifter", + }, + errorsUi: { + slammedTitle: "Slog i backen", + slammedBody: "Något snubblade till på den här skärmen. Ditt konto och din data är säkra - låt oss få dig rullande igen.", + tryAgain: "Försök igen", + reloadApp: "Ladda om appen", + pageSlammedTitle: "Den här sidan slog i backen", + pageSlammedBody: "Något på den här skärmen snubblade till. Ditt konto och din data är säkra. Vanligtvis löser en snabb omladdning det.", + reload: "Ladda om", + goBack: "Gå tillbaka", + }, + backup: { + title: "Spara din inloggning", + subtitle: "Tar 10 sekunder - gör det en gång", + message: "Din återställningskod är det enda sättet tillbaka till ditt konto. Spara den så kan du logga in på vilken enhet som helst.", + warning: "Tappar du den finns ingen återställning - ingen e-post, ingen lösenordsåterställning.", + backupNow: "Spara den nu", + confirmed: "Jag har sparat den", + remindLater: "Senare", + }, + bootUi: { + ariaLoading: "Laddar SkateSpots", + ariaReady: "SkateSpots redo", + ready: "Redo", + statusWaking: "Väcker nätverket", + statusTuning: "Ställer in relays", + statusPulling: "Hämtar in Spots", + statusDropping: "Droppar in", + }, + footer: { + vibedWith: "Vibad med", + poweredBy: "Drivs av", + openSource: "Öppen källkod", + contribute: "Bidra", + decentralized: "Decentraliserat", + communityOwned: "Communityägt", + }, + role: { + owner: "Ägare", + admin: "Admin", + organiser: "Arrangör", + verifiedOwner: "Verifierad ägare", + }, + nfc: { + write: "Skriv till NFC-tagg", + written: "Tagg skriven", + writtenDesc: "Tryck taggen mot en telefon för att öppna verifieringssidan.", + failed: "Kunde inte skriva taggen", + }, + collectionUi: { + namePlaceholder: "Barcelona-resa 2024", + descriptionPlaceholder: "Mina favoritspots från min Barcelona-resa...", + }, + toastsUi: { + followingSuccess: "Följer nu", + followingSuccessDesc: "Den här användaren finns nu i ditt nätverk", + followFailed: "Kunde inte följa", + unfollowSuccess: "Slutade följa", + unfollowSuccessDesc: "Borttagen från ditt nätverk", + unfollowFailed: "Kunde inte sluta följa", + reportThanks: "Tack - skickat för granskning", + reportFailed: "Kunde inte skicka rapporten", + savedOffline: "Sparad offline", + savedOfflineDesc: "Vi publicerar den automatiskt när du är online igen.", + cacheCleaned: "Cachen rensad", + cacheCleanedDesc: "Tog bort {{count}} gamla spots från cachen", + cacheCleared: "Cachen tömd", + cacheClearedDesc: "Alla cachade spots har tagits bort", + backOnline: "Online igen", + backOnlineDesc: "Skickade {{count}} sparade åtgärder.", + postQueued: "Inlägg i kö", + postQueuedDesc: "Ditt inlägg publiceras när du är online igen", + invalidIdentifier: "Ogiltig identifierare. Använd npub1..., user@domain.com eller hex-pubkey", + notASpotThanks: "Tack - skickat för granskning", + notASpotThanksDesc: "Inga hårda känslor: detta flaggar nålen som off-topic så folk kan avgöra själva.", + notASpotFailed: "Kunde inte skicka rapporten", + pleaseTryAgain: "Försök igen.", + relayUnreachable: "Kunde inte nå någon relay - kontrollera din anslutning och försök igen.", + loginToReport: "Logga in för att rapportera en Spot.", + zapLoginRequired: "Inloggning krävs", + zapLoginRequiredDesc: "Du måste vara inloggad för att skicka en Zap.", + zapEventNotFound: "Eventet hittades inte", + zapEventNotFoundDesc: "Kunde inte hitta eventet att Zappa.", + zapAuthorNotFound: "Författaren hittades inte", + zapAuthorNotFoundDesc: "Kunde inte hitta författaren till det här objektet.", + zapSuccess: "Zap lyckad!", + zapSuccessNwcDesc: "Du skickade {{amount}} sats via NWC till författaren.", + zapSuccessDesc: "Du skickade {{amount}} sats till författaren.", + zapStatusUnknown: "Betalningsstatus okänd", + zapStatusUnknownDesc: "Din wallet löser kanske fortfarande in den här Zap:en. Kolla din wallet innan du försöker igen - betala inte två gånger.", + zapNwcFailed: "NWC-betalning misslyckades", + zapWeblnFailed: "WebLN-betalning misslyckades", + zapFallingBack: "{{error}}. Faller tillbaka till andra betalningsmetoder...", + zapFailed: "Zap misslyckades", + zapUnknownNwcError: "Okänt NWC-fel", + zapUnknownWeblnError: "Okänt WebLN-fel", + nwcInvalidUri: "Ogiltig NWC-URI", + nwcInvalidUriDesc: "Kontrollera anslutningssträngen och försök igen.", + nwcExists: "Anslutningen finns redan", + nwcExistsDesc: "Den här wallet:en är redan ansluten.", + nwcConnected: "Wallet ansluten", + nwcConnectedDesc: "Ansluten till {{alias}}.", + nwcFailed: "Anslutningen misslyckades", + nwcFailedDesc: "Kunde inte ansluta till wallet:en: {{error}}", + nwcUnknownError: "Ett okänt fel uppstod", + nwcDisconnected: "Wallet frånkopplad", + nwcDisconnectedDesc: "Wallet-anslutningen har tagits bort.", + deleteApproveAmber: "Godkänn i Amber", + deleteApproveAmberDesc: "Amber öppnas - tryck Godkänn för att bekräfta borttagningen.", + deleteCancelled: "Avbruten", + deleteCancelledDesc: "Du avvisade begäran i Amber.", + deleteCouldntSign: "Kunde inte signera", + deletePublishing: "Steg 2/2: Publicerar…", + deletePublishingDesc: "Skickar borttagningen till relays.", + deleteStuck: "Fastnade vid PUBLISHING", + deleteStuckDesc: "Relay-steget misslyckades: {{error}}. Det signerades OK; relayen bekräftade inte.", + stashMerged: "Sammanfogade ändringar från en annan enhet", + stashMergedDesc: "Din Stash redigerades någon annanstans - båda uppsättningarna av ändringar behölls.", + statusUpdated: "Status uppdaterad!", + statusUpdatedDesc: "Din skate-status är nu synlig för andra.", + statusFailed: "Kunde inte sätta status", + statusCleared: "Status rensad", + statusClearedDesc: "Din status har tagits bort.", + statusClearFailed: "Kunde inte rensa status", + nutzapEnabled: "Nutzap-mottagning aktiverad", + nutzapEnabledDesc: "Du kan nu ta emot ecash-zaps!", + nutzapSetupFailed: "Inställningen misslyckades", + nutzapUnavailable: "Nutzap-sändning otillgänglig", + tokenReceived: "Token mottagen", + tokenReceivedDesc: "Cashu-token löstes in!", + receiveFailed: "Mottagandet misslyckades", + invalidAmount: "Ogiltigt belopp", + invalidAmountDesc: "Ange ett giltigt belopp", + tokenCreated: "Token skapad", + sendFailed: "Sändningen misslyckades", + mintAdded: "Mint tillagd", + mintAddedDesc: "Mint tillagd och betrodd", + mintAddFailed: "Kunde inte lägga till mint", + mintRemoved: "Mint borttagen", + mintRemoveFailed: "Kunde inte ta bort mint", + paymentReceived: "Betalning mottagen", + paymentReceivedDesc: "Tog emot {{amount}} sats!", + paymentSent: "Betalning skickad", + paymentSentDesc: "Lightning-betalningen slutfördes", + loginRequired: "Inloggning krävs", + loginToFollowFounder: "Logga in för att följa grundaren", + alreadyFollowing: "Följer redan", + alreadyFollowingDesc: "Du följer redan {{name}}!", + couldNotComplete: "Kunde inte slutföra det", + tryAgainLower: "Försök igen.", + couldNotLoadProfile: "Kunde inte ladda profilen", + couldNotLoadProfileDesc: "Kontrollera din internetanslutning och prova att uppdatera.", + undone: "Ångrad", + undoneDesc: "Tillbaka till neutral - inte dold, inte rekommenderad.", + confirmed: "Bekräftad", + confirmedDesc: "Rekommenderad - den lämnar den här kön.", + hiddenToast: "Dold", + couldNotUndo: "Kunde inte ångra", + couldNotConfirm: "Kunde inte bekräfta", + deleteFailed: "Borttagningen misslyckades", + somethingWentWrong: "Något gick fel", + }, + seoUi: { + becomeBuilderTitle: "Bli byggare - SkateSpots", + becomeBuilderDesc: "Lista dina tjänster för att bygga ramper, parker och DIY - vad du bygger, material och skala.", + tradesTitle: "Mina affärer — SkateSpots", + tradesDesc: "Hantera dina marketplace-affärer, bekräftelser och rykte.", + eventsTitle: "Skate-event och turer - SkateSpots", + eventsDesc: "Upptäck skateboard-event, tävlingar, turer och sessions nära dig.", + editShopDesc: "Redigera din skate-shop.", + createTourDesc: "Anordna skate-turer - lokala turer till dolda pärlor, nationella roadtrips, internationella äventyr eller KOTR-liknande förstörelsetävlingar.", + deckDesignerTitle: "Deck-designer — SkateSpots DIY", + deckDesignerDesc: "Designa en skateboard- eller longboard-kontur och exportera en utskrivbar 1:1-mall, SVG eller DXF - concave, kicks, wheelbase och truckhål ingår.", + createEventTitle: "Skapa ett skate-event - SkateSpots", + createEventDesc: "Skapa ett nytt skateboard-event för communityn.", + editTourDesc: "Redigera din skate-tur - uppdatera stopp, datum och detaljer.", + walletTitle: "Plånbok - SkateSpots", + walletDesc: "Anslut din Lightning-wallet för att skicka zaps till skatare och spot-skapare.", + becomePhotographerTitle: "Bli fotograf - SkateSpots", + becomePhotographerDesc: "Skapa din profil för skatefotografering - kameror, objektiv, ljus och tjänster.", + newsletterTitle: "Nyhetsbrev - SkateSpots", + newsletterDesc: "Veckovisa utskick från SkateSpots-communityn. Appuppdateringar, nya spots, event och personerna som håller skateboardåkningen levande.", + homeTitle: "SkateSpots - Upptäck skateboardplatser världen över", + zapLeaderboardTitle: "Zap-topplistor - SkateSpots", + zapLeaderboardDesc: "De mest Zappade skate-spotsen och communitymedlemmarna som stöttar dem.", + adminReviewTitle: "Granskningskö — SkateSpots", + gearSwapTitle: "Gear-byte - SkateSpots", + gearSwapDesc: "Köp och sälj begagnat skate-gear med andra skatare. Decks, trucks, hjul, skor och mer.", + donateTitle: "Donera — SkateSpots", + donateDesc: "Stötta SkateSpots — Lightning, privat on-chain (silent payments) eller finansiera bygget på Angor.", + verifyCardTitle: "Verifiera — SkateSpots", + verifyCardDesc: "Verifiera ett SkateSpots-kort eller åtkomstpass.", + mapTitle: "Karta över skate-spots - SkateSpots", + mapDesc: "Utforska skateboard-spots runt om i världen på vår interaktiva karta.", + diyTitle: "DIY — Gör din egen | SkateSpots", + diyDesc: "Guider, öppna verktyg och ritningar för att göra dina egna skateboards, ramper och betongspots - och människorna och platserna att göra det med.", + appShopTitle: "App Shop — SkateSpots", + becomeSkaterTitle: "Gå med i skaterkatalogen - SkateSpots", + becomeSkaterDesc: "Skapa din skaterprofil så att communityn kan hitta dig.", + marketplaceTitle: "Marketplace - SkateSpots", + marketplaceDesc: "Köp och sälj skateboard-gear på den decentraliserade Plebeian Market.", + becomeEditorTitle: "Bli videoredigerare - SkateSpots", + becomeEditorDesc: "Skapa din profil som skateboard-videoredigerare på SkateSpots.", + amberCallbackTitle: "Loggar in med Amber - SkateSpots", + amberCallbackDesc: "Slutför din Amber-inloggning (NIP-55).", + supportersTitle: "Supportrar - SkateSpots", + supportersDesc: "Communityn som håller SkateSpots vid liv - supportrar, samarbetspartners, partners och vänner.", + becomeCoachTitle: "Bli coach - SkateSpots", + becomeCoachDesc: "Skapa din skateboard-coachprofil.", + riderCardTitle: "Skaterkort — SkateSpots", + riderCardDesc: "Skapa ditt utskrivbara SkateSpots-skaterkort eller park-åtkomstkort.", + editEventDesc: "Redigera ditt skateboard-event.", + createShopTitle: "Lägg till en skate-shop - SkateSpots", + createShopDesc: "Lägg till din skate-shop i communityn.", + deckCostTitle: "Deck-kostnadskalkylator — SkateSpots DIY", + deckCostDesc: "Räkna ut vad ett deck kostar att tillverka - arbete, utrustning, material, processtid, förpackning och marginal - och ett rimligt försäljningspris.", + pyramidTitle: "Pyramidrankningar - SkateSpots", + pyramidDesc: "Toppbidragsgivare och communityledare.", + foodTitle: "Mat nära spots - SkateSpots", + foodDesc: "Hitta restauranger, kaféer och matalternativ nära skateboard-spots.", + createListingTitle: "Lista Gear - SkateSpots", + createListingDesc: "Lista skateboard-gear till salu eller hitta gear du vill köpa.", + becomeFilmerTitle: "Bli filmare - SkateSpots", + becomeFilmerDesc: "Skapa din profil för skateboard-filmning.", + skatersTitle: "Skatare - SkateSpots", + skatersDesc: "Upptäck skatare i SkateSpots-communityn. Bläddra efter stil, stance, nivå och plats.", + communityStatsTitle: "Communitystatistik — SkateSpots", + communityStatsDesc: "Live-communitystatistik för SkateSpots - spots, event, coacher, filmare, redigerare, turer och tillväxt över tid. Hämtas direkt från Nostr.", + labTitle: "The Lab - SkateSpots", + labDesc: "Hitta skateboard-coacher, filmare, fotografer och videoredigerare.", + stashTitle: "Min Stash - SkateSpots", + stashDesc: "Hantera ditt privata gear-lager. Håll koll på vad du äger, vad du vill sälja eller byta.", + bountyLeaderboardTitle: "Mappa och tjäna - SkateSpots", + bountyLeaderboardDesc: "Mappa skate-spots och shops, tjäna zaps från communityn. Se toppbidragsgivarna.", + spotCollectionsTitle: "Mina spot-samlingar - SkateSpots", + spotCollectionsDesc: "Organisera dina favorit-spots i personliga samlingar", + mintsTitle: "Cashu Mints — SkateSpots", + mintsDesc: "Bläddra bland Cashu-mints, kolla deras hälsa och lägg till en i din wallet.", + }, + miscUi: { + openingCamera: "Öppnar kameran…", + usePhoneCamera: "Använd telefonens kamera och kom tillbaka hit", + startingCamera: "Startar kameran...", + cameraAccessRequired: "Kameraåtkomst krävs", + cameraAccessHint: "Tillåt kameraåtkomst i webbläsarinställningarna, eller använd filväljaren nedan.", + cameraErrorTitle: "Kamerafel", + cameraErrorDesc: "Kunde inte öppna kameran. Kontrollera appens behörigheter i Inställningar.", + cameraDeniedTitle: "Kameraåtkomst nekad", + cameraDeniedDesc: "Tillåt kameraåtkomst i webbläsarinställningarna.", + uploadFromGallery: "Ladda upp från galleriet", + uploading: "Laddar upp...", + usePhoto: "Använd foto", + earningPotential: "Intjäningspotential", + qualityExcellent: "Utmärkt!", + qualityGood: "Bra", + qualityBasic: "Grundläggande", + qualityGettingStarted: "Kommer igång", + qualityLocationAdded: "Plats tillagd", + qualityOnePhoto: "Minst 1 foto", + qualityThreePhotos: "3+ foton", + qualityMoreAngles: "Fler vinklar = bättre", + qualityDescription: "Beskrivning", + qualityDetailedDesc: "Detaljerad beskrivning (100+ tecken)", + qualityContact: "Kontaktinfo", + qualityPhoneOrWebsite: "Telefon eller webbplats", + qualityHours: "Öppettider", + qualitySpotType: "Spottyp vald", + failedToLoadComments: "Kunde inte ladda kommentarer", + commentsTitle: "Kommentarer", + noCommentsYet: "Inga kommentarer än", + beFirstComment: "Bli först med att dela dina tankar!", + removeMember: "Ta bort medlem", + whoIsThisFor: "Vem är den här profilen för?", + individual: "Individ", + individualDesc: "En enskild person", + collective: "Kollektiv", + collectiveDesc: "Crew, studio eller företag", + membersLabel: "Medlemmar", + dismissReport: "Avvisa rapport", + reportedBy: "rapporterad av", + completingLoginAmber: "Slutför inloggning med Amber...", + entityMembersHint: "Lägg till Nostr-kontona för din crew. Varje medlem bekräftar sin egen spot med sin nyckel - tills dess visas de som ”väntande”.", + entityVerifiedHint: "Medlemskap verifieras per medlem - ingen kan läggas till i din crew utan att bekräfta från sitt eget konto.", + entityInvalidPubkey: "Ange en giltig npub, nprofile eller 64-teckens hex-pubkey.", + entityAlreadyAdded: "Den medlemmen är redan tillagd.", + offline: "Offline", + connected: "Ansluten", + offlineMode: "Offlineläge", + allFeaturesAvailable: "Alla funktioner tillgängliga", + browsingCachedSpots: "Bläddrar bland cachade spots", + queuedActions: "{{count}} köade åtgärder", + syncing: "Synkroniserar", + publishingWhenStable: "Publicerar när anslutningen stabiliseras...", + willPublishOnline: "Publiceras när du är online igen", + availableOffline: "Tillgängligt offline:", + offlineBrowseSpots: "Bläddra bland tidigare visade spots", + offlineViewDetails: "Visa cachade spotdetaljer", + offlineKeepActing: "Fortsätt handla - inlägg, RSVP, annonser och meddelanden köas och skickas när du återansluter", + }, + sasquatchGuide: { + homeTitle: "Välkommen till SkateSpots! 🦧", + homeMessage: "Yo, jag är The Sasquatch. Väktare av brädor, stigar och vilda åk. Välkommen till den otämjda skatevärlden på Nostr - inga kostymer, inga annonser, bara skatare som ritar sin egen väg. Här äger du dina trick, din data och kan till och med tjäna Bitcoin för att sätta ditt spår. Få kontakt med skatare i ditt kvarter eller över hela världen. Inga regler utom att shredda, inga spår utom dina egna.", + homeQ1: "Planera 3 dagar i Barcelona åt mig", + homeQ2: "Hitta nybörjar-spots", + homeQ3: "Några kommande event?", + homeQ4: "Communitystatistik", + homeQ5: "Hitta coacher nära mig", + homeQ6: "Gear till salu?", + homeQ7: "Vad är Nostr?", + homeQ8: "Är det här gratis?", + homeLearnMore: "Lär dig mer", + onboardingTitle: "Kom igång 🚀", + onboardingMessage: "Låt mig hjälpa dig förstå grunderna! Nostr är din identitet, Bitcoin Lightning låter dig tjäna sats för bidrag, och zaps är omedelbara dricks. Fråga mig vad som helst om att komma igång!", + onboardingQ1: "Hur loggar man in?", + onboardingQ2: "Vad är Nostr?", + onboardingQ3: "Hur fungerar Nostr?", + onboardingQ4: "Vad är Cashu?", + onboardingQ5: "Hur använder man Cashu-wallet:en?", + onboardingQ6: "Vad är mints?", + onboardingQ7: "Vad är zaps?", + onboardingQ8: "Vad är NWC?", + onboardingStart: "Börja utforska", + onboardingLogin: "Logga in för att börja", + labTitle: "Välkommen till The Lab! 🎓", + labMessage: "Det är här magin händer! Hitta coacher som kan lära dig allt från kickflips till darkslides, eller få kontakt med filmare som fångar dina bästa sessions. Filtrera efter skills, kolla deras erfarenhet och boka en session. Kom ihåg - alla började någonstans!", + labQ1: "Hitta coacher", + labQ2: "Hitta filmare", + labQ3: "Hitta fotografer", + labQ4: "Hitta videoredigerare", + labQ5: "Hitta en rampbyggare", + labQ6: "Vad är The Lab?", + labQ7: "Vad är en byggare?", + labQ8: "Hur erbjuder man coaching?", + labLogin: "Logga in för att erbjuda tjänster", + crewsTitle: "Crews 🤘", + crewsMessage: "Crews är din kartankrade skatefamilj - människorna du skejtar MED, inte de du anlitar. Varje crew har sitt revir på kartan, hemmaspots, medlemmar och ett manifest. Medlemmar bekräftar med sina egna nycklar, så listan är äkta. Starta din egen eller hitta ditt folk!", + crewsQ1: "Vad är crews?", + crewsQ2: "Hur startar man en crew?", + crewsQ3: "Hur skiljer sig en crew från The Lab?", + crewsQ4: "Hur bekräftar medlemmarna?", + crewsQ5: "Vad är Nostr?", + crewsQ6: "Hur fungerar zaps?", + crewsLogin: "Logga in för att skapa en crew", + }, + supportUi: { + keepMapFree: "Håll kartan gratis", + keepMapFreeDesc: "Inga annonser, ingen spårning, inga riskkapitalister. Dina sats betalar hosting, AI-noden och relayen.", + thankYou: "Tack! ⚡", + satsKeepMapFree: "Dina sats håller kartan gratis.", + keptFreeNext: "Du höll precis SkateSpots gratis för nästa skatare.", + scanToPay: "Skanna för att betala", + zapSkateSpots: "Zappa SkateSpots", + payQuietly: "Betala tyst", + pickAmount: "Välj ett belopp", + enterAmount: "Ange hur många sats du vill skicka.", + couldNotStartPayment: "Kunde inte starta betalningen.", + customAmountAria: "Anpassat belopp i sats", + commentPlaceholder: "Säg något (valfritt - endast offentliga zaps)", + publicZapTitle: "Offentlig Zap med din kommentar", + loginToZapTitle: "Logga in för att skicka en offentlig Zap", + anonymousTitle: "Anonym - ingen inloggning, inget spår", + copyLightningTitle: "Kopiera Lightning-adressen", + copiedSuffix: "{{label}} kopierad", + invoiceLabel: "Faktura", + addressLabel: "Adress", + notAPurchase: "Stöd, inte ett köp - det ger ingenting och det finns inga återbetalningar. Merch och Sasquatch Pro är separata. Din plats och identitet är aldrig inblandade i en tyst betalning.", + }, + statusUi: { + quickStatus: "Snabbstatus", + skating: "Skejtar", + skatingDesc: "Skejtar just nu", + filming: "Filmar", + filmingDesc: "Filmar trick", + lookingForSesh: "Letar efter Sesh", + lookingForSeshDesc: "Vill skejta med andra", + coaching: "Coachar", + coachingDesc: "Undervisar/coachar", + chilling: "Chillar", + chillingDesc: "Hänger på spoten", + onMyWay: "På väg", + onMyWayDesc: "Är på väg till en spot", + takingABreak: "Tar en paus", + takingABreakDesc: "Vilar/hydrerar", + doneForToday: "Klar för idag", + doneForTodayDesc: "Skejtat klart", + }, +}; export default svBatch7; diff --git a/src/i18n/sv/batch8.ts b/src/i18n/sv/batch8.ts index 3bd2aec..4638fff 100644 --- a/src/i18n/sv/batch8.ts +++ b/src/i18n/sv/batch8.ts @@ -1,4 +1,622 @@ -/** sv — batch 8. Filled by the translation pass; empty until then. */ -const svBatch8 = {}; +/** sv — batch 8: deckCostUi, becomeRolesUi, weatherUi, skaterLabelsUi, notifyUi, legacyMiscUi. */ +const svBatch8 = { + deckCostUi: { + presetPrompt: "Namnge denna förinställning", + presetDefaultName: "Förinställning {{n}}", + summaryCopied: "Sammanfattning kopierad", + couldNotCopy: "Kunde inte kopiera", + resetConfirm: "Återställ allt till exempelvärdena?", + logoTooLarge: "Logotypen är för stor (max 500 kB)", + loginToFill: "Logga in för att fylla i från din Nostr-profil", + filledFromProfile: "Ifyllt från din Nostr-profil", + warnRetailBelowOne: "Påslaget för utpris är under 1× — du skulle sälja med förlust.", + warnWholesaleAboveRetail: "Grossistpåslaget bör vara lägre än utprispåslaget.", + warnZeroBoards: "{{count}} rad(er) använder 0 brädor — radens kostnad ignoreras.", + warnFixedNoBoards: "Fasta månadskostnader är angivna men brädor/månad är 0, så driftskostnaden ignoreras.", + warnNoMaterials: "Ingen materialkostnad — lägg till minst ett material.", + warnEquipmentOverhead: "Utrustning + omkostnader är över 60 % av kostnaden — den här modellen förutsätter hög volym; kontrollera dina brädantal.", + warnOneBoard: "Viss utrustning fördelas på en enda bräda — höj dess brädantal för att amortera den.", + templateStarterName: "Hobby-start", + templateStarterBlurb: "Några rader, inga fasta kostnader", + templateShopName: "Liten verkstad", + templateShopBlurb: "Fullt blad med hyra & omkostnader", + currency: "Valuta", + noCurrencyMatches: "Ingen valuta matchar.", + ratesUnavailable: "Livekurser är inte tillgängliga — byte byter bara etikett.", + liveRates: "live BTC-kurser · sats inkluderade", + chipCost: "kostnad", + chipSell: "sälj", + chipTotal: "totalt", + startFrom: "Börja från", + advancedToggleHint: "Visa satser per moment och spill, batchuppsättning, skatt och kurvan kostnad mot kvantitet", + advanced: "Avancerat", + simple: "Enkelt", + sectionLabor: "Arbete", + sectionEquipment: "Utrustning", + sectionOperations: "Driftkostnader", + sectionMaterials: "Material", + sectionProcesses: "Processkostnader", + sectionPackaging: "Förpackning", + sectionMargins: "Marginaler", + subtotalLoaded: "{{value}}/tim. full kostnad", + subtotalPerBoard: "{{value}}/bräda", + hourlyRate: "Timlön ({{unit}})", + labourBurden: "Arbetsgivaravgifter (×)", + loadedRate: "Full kostnad per timme", + loadedRateHintBefore: "Full kostnad per timme = lön × arbetsgivaravgifter (arbetsgivarskatt och försäkring på lön). Hyra och räkningar hör under ", + loadedRateHintAfter: " — räkna dem inte dubbelt.", + colEquipment: "Utrustning", + colCostUnit: "Kostnad ({{unit}})", + colCost: "Kostnad", + colSetupH: "Uppsättning (tim)", + colLifetimeBoards: "Livstid brädor", + colPerBoard: "Per bräda", + colMaterial: "Material", + colOrderUnit: "Beställning ({{unit}})", + colShipUnit: "Frakt ({{unit}})", + colBoardsOrder: "Brädor / beställning", + colOrderM: "Beställning (m)", + colUnloadM: "Avlastning (m)", + colOrder: "Beställning", + colShipping: "Frakt", + colOrderMin: "Beställning (min)", + colUnloadMin: "Avlastning (min)", + colProcess: "Process", + colTimeM: "Tid (m)", + colBoardsRun: "Brädor / körning", + colRateHr: "Sats/tim (0 = verkstad)", + colRateHrShort: "Sats/tim", + colScrapPct: "Spill %", + colTimeMin: "Tid (min)", + colPackaging: "Förpackning", + colTimeBoardM: "Tid/bräda (m)", + colTimeBoardMin: "Tid/bräda (min)", + colMaterialsBoardUnit: "Material/bräda ({{unit}})", + colMaterialsBoard: "Material/bräda", + equipmentPerBoard: "Utrustning per bräda:", + materialsPerBoard: "Material per bräda:", + processesPerBoard: "Processer per bräda:", + packagingPerBoard: "Förpackning per bräda:", + perBoard: "Per bräda:", + addEquipment: "Lägg till utrustning", + addMaterial: "Lägg till material", + addProcess: "Lägg till process", + addPackagingStep: "Lägg till förpackningssteg", + duplicate: "Duplicera", + remove: "Ta bort", + boardsPerMonth: "Brädor / månad", + rentPerMonth: "Hyra / månad", + utilitiesPerMonth: "El & vatten / månad", + subscriptionsPerMonth: "Prenumerationer / månad", + markup: "Påslag (×)", + wholesaleMarkup: "Grossistpåslag (×)", + scrapWaste: "Spill / svinn (%)", + quantityDecks: "Kvantitet (decks)", + targetMonthlyProfit: "Mål för månadsvinst ({{unit}})", + costNoPackaging: "Kostnad / bräda (utan förpackning)", + costWithPackaging: "Kostnad / bräda (med förpackning)", + batchSetupHours: "Batchuppsättning (tim / körning)", + batchSetupCost: "Kostnad för batchuppsättning ({{unit}} / körning)", + taxVat: "Skatt / moms (%)", + quoteTax: "Skatt i offert", + includedInPrice: "Ingår i priset", + addedOnTop: "Läggs på ovanpå", + setupPerBoard: "Uppsättning / bräda", + marginNoteBefore: "Påslag {{markup}}× ≈ ", + grossMargin: "{{pct}} % bruttomarginal", + marginNoteAfter: " · spill {{waste}} % fördelas över de bra brädorna.", + sellingPriceNoPackaging: "Försäljningspris · utan förpackning", + sellingPriceWithPackaging: "Försäljningspris · med förpackning", + profitPerDeck: "Vinst / deck", + wholesalePerDeck: "Grossist / deck", + orderTotalQty: "Ordersumma ({{qty}})", + orderTotal: "Ordersumma", + breakeven: "Nollpunkt", + breakevenPerMonth: "{{count}}/mån", + targetDecksHint: "För att nå {{amount}}/mån utöver fasta kostnader, sälj {{decks}} decks/mån.", + priceIncludesTax: "Priset inkluderar {{pct}} % skatt: {{amount}} av totalsumman.", + plusTax: "Plus {{pct}} % skatt: {{amount}} → {{total}} totalt.", + costVsQuantity: "Kostnad mot kvantitet (uppsättning amorterad)", + deckOne: "deck", + deckOther: "decks", + perDeckSuffix: "/ deck", + orderSuffix: "beställning {{amount}}", + shippingNotIncluded: "Inkluderar inte frakt till köparen.", + clientQuoteDetails: "Kundoffertens uppgifter (för PDF:en)", + fillFromProfileTitle: "Fyll namn, webbplats, NIP-05, Lightning och npub från din Nostr-profil", + fillFromProfile: "Fyll från profil", + businessName: "Företags- / butiksnamn", + email: "E-post", + phone: "Telefon", + website: "Webbplats", + address: "Adress", + quoteNumber: "Offertnr", + nextNumber: "Nästa nummer", + validDays: "Giltig (dagar)", + nip05: "NIP-05", + lightningAddress: "Lightning-adress", + nostrNpub: "Nostr (npub)", + depositPct: "Deposition i förskott (%)", + deliveryTerms: "Leveransvillkor (Incoterm, valfritt)", + paymentMethods: "Betalningsmetoder", + paymentTerms: "Betalningsvillkor", + paymentDetails: "Betalningsuppgifter", + notesTerms: "Anteckningar / villkor", + changeLogo: "Byt logotyp", + addLogo: "Lägg till logotyp", + incotermNone: "Ingen", + incotermExw: "EXW — hämtas hos säljaren", + incotermFca: "FCA — överlämnas till köparens transportör", + incotermDap: "DAP — levereras till köparens adress", + incotermDdp: "DDP — levererat, tullar betalda", + payMethodCash: "Kontant", + payMethodLightning: "Lightning", + payMethodCashu: "Cashu", + payMethodBank: "Banköverföring", + payMethodCard: "Kort", + payMethodOther: "Annat", + listDeckAtPrice: "Lista en bräda till detta pris", + getItMade: "Få den byggd — hitta en byggare", + savePreset: "Spara förinställning", + load: "Läs in", + export: "Exportera", + import: "Importera", + reset: "Återställ", + deletePreset: "Ta bort förinställning", + exportPdfFull: "PDF — fullt blad", + exportPdfQuote: "PDF — kundoffert", + exportPng: "PNG-bild", + exportXlsx: "XLSX-arbetsbok", + exportCsv: "CSV (kalkylblad)", + exportMarkdown: "Markdown", + exportJson: "JSON (säkerhetskopia)", + exportCopySummary: "Kopiera sammanfattning" + }, + becomeRolesUi: { + artist: { + seoTitle: "Bli designer / artist - SkateSpots", + seoDescription: "Lista din skate-design & konst — brädgrafik, logotyper, affischer, merch och mer.", + heading: "Designer / artist", + tagline: "Brädgrafik, logotyper, affischer, merch — sätt din konst på scenen", + noun: "artist", + rateLabel: "Sats", + portfolioLabel: "Portfölj / butikslänk", + sectionWhatYouMake: "Vad du gör", + sectionMedium: "Medium", + sectionSoftwareTools: "Program & verktyg", + deliverablesPlaceholder: "t.ex. tryckfärdiga filer, källfiler, deck-grafik", + turnaroundPlaceholder: "t.ex. 3–5 dagar" + }, + graffiti: { + seoTitle: "Erbjud graffiti / muraler - SkateSpots", + seoDescription: "Lista ditt graffiti- & muralarbete — pieces, muraler, skateparkkonst och mer.", + heading: "Graffiti- / muralkonstnär", + tagline: "Pieces, muraler, skateparkkonst — måla scenen", + noun: "graffitikonstnär", + rateLabel: "Sats", + portfolioLabel: "Portföljlänk (IG, webbplats)", + sectionStyle: "Stil", + sectionMedium: "Medium", + sectionWorkContext: "Arbetskontext", + crewLabel: "Graffiti-Crew", + crewPlaceholder: "Din writing-crew (valfritt)", + crewHelper: "Separat från din skate-crew — de writers du målar med.", + surfacesPlaceholder: "t.ex. betong, tegel, tillåtna väggar", + maxSizePlaceholder: "t.ex. upp till 10 m" + }, + musician: { + seoTitle: "Lägg till en musikprofil - SkateSpots", + seoDescription: "Åkar du skate och gör musik? Lista ditt band eller soloprojekt — genrer, instrument och länkar.", + heading: "Musiker / band", + tagline: "Åkar du skate och gör musik? Bli bokad för demos, jams & afterpartyn", + noun: "musiker", + rateLabel: "Bokningssats", + portfolioLabel: "Webbplats- / EPK-länk", + sectionGenre: "Genre", + sectionInstruments: "Instrument & roll", + actLabel: "Akttyp", + actPlaceholder: "solo / band / dj / producent", + spotifyLabel: "Spotify", + spotifyPlaceholder: "https://open.spotify.com/…", + bandcampLabel: "Bandcamp", + bandcampPlaceholder: "https://…bandcamp.com", + soundcloudLabel: "SoundCloud", + soundcloudPlaceholder: "https://soundcloud.com/…", + youtubeLabel: "YouTube", + youtubePlaceholder: "https://youtube.com/…", + setLengthPlaceholder: "t.ex. 30–45 min", + techRiderPlaceholder: "t.ex. PA, mikrofoner, backline" + }, + judge: { + seoTitle: "Döm skate-event - SkateSpots", + seoDescription: "Lista dig själv som domare på skate-event — Game of S.K.A.T.E., best trick-jams, tävlingar, am-serier och världstourtstopp. Bli bokad för att hålla rättvisa, trovärdiga event.", + heading: "Domare på skate-event", + tagline: "Från flatground Game of S.K.A.T.E. till World Destruction Tour — håll det rättvist och trovärdigt", + noun: "domare", + rateLabel: "Dagsarvode / avgift", + portfolioLabel: "Resultatarkiv / profillänk", + sectionEventFormats: "Eventformat", + sectionSpecialty: "Specialitet", + sectionLevelCircuit: "Nivå / serie", + eventsJudgedLabel: "Dömda event", + eventsJudgedPlaceholder: "t.ex. 40+ tävlingar, 3 världstourtstopp", + eventsJudgedHelper: "Noterbara event, tävlingar eller tourer du har dömt.", + travelPlaceholder: "t.ex. regionalt / nationellt / internationellt", + certificationsPlaceholder: "t.ex. nationell domarkurs" + }, + organizer: { + seoTitle: "Organisera skate-event - SkateSpots", + seoDescription: "Lista dig själv som arrangör av skate-event — streetjams, best trick, tävlingar, meetups, demos och tourstopp. Bli upptäckt och bokad för att hålla sessionen.", + heading: "Eventarrangör", + tagline: "Jams, tävlingar, meetups & demos — sätt igång sessionen och samla scenen", + noun: "arrangör", + rateLabel: "Eventavgift / budget", + portfolioLabel: "Länk till tidigare event / resultat", + sectionEventTypes: "Eventtyper", + sectionWhatYouHandle: "Vad du ansvarar för", + sectionScale: "Omfattning", + eventsHostedLabel: "Organiserade event", + eventsHostedPlaceholder: "t.ex. 25 jams, 3 stadstävlingar", + eventsHostedHelper: "Noterbara event, tävlingar eller meetups du har hållit.", + insurancePlaceholder: "t.ex. ansvarsförsäkring ingår", + permitsPlaceholder: "t.ex. kommunala tillstånd ordnade" + }, + tattoo: { + seoTitle: "Bli tatuerare - SkateSpots", + seoDescription: "Lista ditt tatueringsarbete för skatescenen — stilar, flash, custom och mer.", + heading: "Tatuerare", + tagline: "Ink för scenen — flash, custom, fine line & mer", + noun: "tatuerare", + rateLabel: "Sats / timme", + portfolioLabel: "Portföljlänk (IG, webbplats)", + sectionStyles: "Stilar", + sectionMethod: "Metod", + studioLabel: "Studio / butik", + studioPlaceholder: "Studions namn (valfritt)", + booksOpenLabel: "Bokning öppen", + booksOpenHelper: "Tar du emot bokningar just nu?", + depositPlaceholder: "t.ex. 50 EUR ej återbetalningsbar", + minimumPlaceholder: "t.ex. 80 EUR" + }, + trainer: { + seoTitle: "Bli tränare / fysio - SkateSpots", + seoDescription: "Hjälp åkare att bli starka och hålla sig skadefria — styrka, rörlighet, skadeförebyggande och återhämtning.", + heading: "Tränare / fysio", + tagline: "Styrka, rörlighet, skadeförebyggande & återhämtning för åkare", + noun: "tränare", + rateLabel: "Sats / session", + portfolioLabel: "Profil- / bokningslänk", + sectionFocus: "Fokus", + sectionInjuries: "Skador du arbetar med", + sectionCredentialsSetting: "Meriter & miljö", + credentialsPlaceholder: "t.ex. BSc fysioterapi, CSCS…", + credentialsHelper: "Ange riktiga meriter — åkare litar på verifierbara meriter.", + remoteLabel: "Distans / online", + remoteHelper: "Erbjuder du online-coaching eller konsultationer?", + modalitiesPlaceholder: "t.ex. manuell terapi, S&C, dry needling" + }, + barber: { + seoTitle: "Bli barberare / frisör - SkateSpots", + seoDescription: "Lista din barbershop eller stol för skatescenen — klippning, fades, skäggtrimning, färg och mer. Bli bokad av åkare.", + heading: "Barberare / frisör", + tagline: "Klippningar, fades & skäggtrimning för scenen — stol i butik eller mobil", + noun: "barberare", + rateLabel: "Pris / klippning", + portfolioLabel: "Klippgalleri / IG-länk", + sectionWhatYouOffer: "Vad du erbjuder", + sectionSignatureStyles: "Signaturstilar", + sectionSetting: "Miljö", + studioLabel: "Butik / studio", + studioPlaceholder: "Butikens eller studions namn (valfritt)", + booksOpenLabel: "Bokning öppen", + booksOpenHelper: "Tar du emot bokningar just nu?", + durationPlaceholder: "t.ex. 30–45 min" + } + }, + weatherUi: { + condition: { + clearSky: "Klar himmel", + mainlyClear: "Mestadels klart", + partlyCloudy: "Delvis molnigt", + overcast: "Mulet", + foggy: "Dimmigt", + depositingRimeFog: "Rimfrostdimma", + lightDrizzle: "Lätt duggregn", + moderateDrizzle: "Måttligt duggregn", + denseDrizzle: "Tätt duggregn", + lightFreezingDrizzle: "Lätt underkylt duggregn", + denseFreezingDrizzle: "Tätt underkylt duggregn", + slightRain: "Lätt regn", + moderateRain: "Måttligt regn", + heavyRain: "Kraftigt regn", + lightFreezingRain: "Lätt underkylt regn", + heavyFreezingRain: "Kraftigt underkylt regn", + slightSnow: "Lätt snöfall", + moderateSnow: "Måttligt snöfall", + heavySnow: "Kraftigt snöfall", + snowGrains: "Snökorn", + slightRainShowers: "Lätta regnskurar", + moderateRainShowers: "Måttliga regnskurar", + violentRainShowers: "Våldsamma regnskurar", + slightSnowShowers: "Lätta snöbyar", + heavySnowShowers: "Kraftiga snöbyar", + thunderstorm: "Åska", + thunderstormSlightHail: "Åska med lätt hagel", + thunderstormHeavyHail: "Åska med kraftigt hagel", + unknown: "Okänt" + }, + aqi: { + good: "Bra", + moderate: "Måttlig", + unhealthySensitive: "Ohälsosam för känsliga grupper", + unhealthy: "Ohälsosam", + veryUnhealthy: "Mycket ohälsosam", + hazardous: "Farlig" + }, + skateability: { + perfect: "Perfekt", + good: "Bra", + okay: "Okej", + poor: "Dåligt", + bad: "Uselt", + unrideable: "Oåkbart" + }, + reason: { + currentlyRaining: "Regnar just nu", + raining: "Regn", + snowing: "Snöfall", + thunderstorm: "Åska", + freezingTemperature: "Minusgrader", + veryCold: "Mycket kallt", + extremelyHot: "Extremt varmt", + veryHot: "Mycket varmt", + veryStrongWind: "Mycket stark vind", + strongWind: "Stark vind", + moderateWind: "Måttlig vind", + veryUnhealthyAir: "Mycket ohälsosam luft", + unhealthyAir: "Ohälsosam luft", + moderateAirQuality: "Måttlig luftkvalitet", + veryHumid: "Mycket fuktigt", + humid: "Fuktigt", + extremeUv: "Extrem UV — använd solskydd", + highUv: "Hög UV — solskydd rekommenderas", + perfectConditions: "Perfekta skateförhållanden" + } + }, + skaterLabelsUi: { + stance: { + regular: "Regular", + goofy: "Goofy" + }, + style: { + street: "Street", + park: "Park", + vert: "Vert", + transition: "Transition", + bowl: "Bowl", + cruising: "Cruising", + downhill: "Downhill", + freestyle: "Freestyle", + ledges: "Ledges", + stairs: "Stairs", + diy: "DIY" + }, + level: { + grom: "Grom", + intermediate: "Medel", + advanced: "Avancerad", + ripper: "Ripper" + }, + sponsor: { + title: "Titelsponsor", + gold: "Guld", + silver: "Silver", + partner: "Partner" + } + }, + notifyUi: { + activity: { + zappedWithAmount: "Du blev zappad med {{sats}} sats", + zapped: "Du blev zappad", + liked: "Någon gillade ditt inlägg", + reposted: "Någon repostade dig", + mentioned: "Någon nämnde dig", + replied: "Någon svarade dig", + rsvp: "Någon anmälde sig till ditt event", + eventUpdated: "Ett event du ska gå på uppdaterades", + newActivity: "Ny aktivitet", + tapToOpen: "Tryck för att öppna SkateSpots" + }, + crew: { + inviteTitle: "Crew-inbjudan", + inviteBody: "Du är inbjuden till {{crew}}", + addedTitle: "Du har lagts till i en crew", + addedBody: "{{crew}} — bekräfta för att gå med", + joinRequestTitle: "Förfrågan om att gå med", + joinRequestBody: "Någon vill gå med i {{name}}" + }, + dm: { + title: "Nytt direktmeddelande", + body: "Tryck för att läsa" + }, + trade: { + confirm: "Bekräfta en trade", + confirmed: "Trade bekräftad", + newOffer: "Nytt bud på din annons", + counter: "Motbud", + accepted: "Bud accepterat 🎉", + declined: "Bud avböjt", + withdrawn: "Bud tillbakadraget" + }, + newsletter: { + drop: "Ny SkateSpots-drop" + }, + summary: { + moreUpdates: "{{count}} fler uppdateringar", + openToCatchUp: "Öppna SkateSpots för att komma ikapp" + } + }, + legacyMiscUi: { + hostingGoing: "{{count}} kommer", + hostingInterested: "{{count}} intresserade", + hostingPostUpdate: "Lägg upp uppdatering", + hostingEdit: "Redigera", + hostingLoginToSee: "Logga in för att se eventen du är värd för.", + hostingEmptyTitle: "Du är inte värd för något än", + hostingEmptyBody: "Håll en jam, tävling eller session. Skapa ett event så kan åkare anmäla sig, få uppdateringar och dyka upp.", + hostingCreateEvent: "Skapa ett event", + hostingUpcoming: "Kommande · {{count}}", + hostingPast: "Tidigare · {{count}}", + sponsorPartners: "Partner", + sponsorTitleSponsor: "Titelsponsor", + sponsorPlatformPartners: "Plattformspartner", + reportsUntitled: "(namnlös)", + reportsResolveFailed: "Kunde inte hitta det rapporterade eventet (det kan ha tagits bort, eller så gäller rapporten en profil i stället för ett inlägg).", + reportsLookAtIt: "Titta på det", + reportsNoReports: "Inga rapporter än. Antingen är allt bra, eller så har ingen hittat knappen.", + statusSetYourStatus: "Ange din status", + statusSetDesc: "Låt andra veta vad du har för dig. Din status syns på din profil och på länkade spots.", + statusClear: "Rensa", + statusOrWriteOwn: "Eller skriv din egen", + statusCustomPlaceholder: "Vad har du för dig?", + statusLinkToSpot: "Länka till en Spot (valfritt)", + statusSpotSelected: "Spot vald", + statusSearchSpots: "Sök spots...", + statusNoSpotsFound: "Inga spots hittades.", + statusSelectSpot: "Välj en spot", + statusAutoClearAfter: "Rensa automatiskt efter: {{time}}", + statusExpMin: "{{count}} min", + statusExpOneHour: "1 timme", + statusExpHours: "{{count}} timmar", + statusExpOneDay: "1 dag", + statusExpDays: "{{count}} dagar", + statusSlider15: "15 min", + statusSlider1h: "1 tim", + statusSlider4h: "4 tim", + statusSlider24h: "24 tim", + statusSetting: "Anger status...", + statusSet: "Ange status", + statusSomethingWrong: "Något gick fel", + seoProfileTitle: "Profil - SkateSpots", + seoViewProfile: "Visa profil.", + bannerAlt: "Banner", + openInCordn: "Öppna i Cordn", + modHelp: "Dölj publicerar org.skatespots.moderation / hidden; Bekräfta publicerar … / verified; Ångra publicerar … / cleared (tillbaka till neutral). Alla tre är offentliga, reversibla etiketter — inget raderas någonsin från reläer.", + zapNoActiveMint: "Ingen aktiv Cashu-mint hittades.", + altProfile: "Profil", + altCardPreview: "Kortförhandsvisning", + altCard: "Kort", + altCaptured: "Fångat", + ariaPrevPhoto: "Föregående foto", + ariaNextPhoto: "Nästa foto", + ariaCommentOptions: "Kommentarsalternativ", + ariaMessageConversation: "Meddelandekonversation", + exportTitle: "SkateSpots — Kostnadskalkylator för deck", + exportQuoteTitle: "OFFERT", + exportPngTitle: "Deck-kostnad", + exportMarkdownTitle: "Kostnadskalkylator för deck", + exportSectionLabor: "Arbete", + exportSectionEquipment: "Utrustning", + exportSectionOperations: "Driftkostnader", + exportSectionMaterials: "Material", + exportSectionProcesses: "Processkostnader", + exportSectionPackaging: "Förpackning", + exportSectionResult: "Resultat", + exportLabelOperations: "Drift", + exportLabelProcesses: "Processer", + exportKvHourlyRate: "Timlön", + exportKvLabourBurden: "Arbetsgivaravgifter", + exportKvLoadedRate: "Full kostnad per timme", + exportKvEquipmentPerBoard: "Utrustning per bräda", + exportKvBoardsPerMonth: "Brädor / månad", + exportKvRentPerMonth: "Hyra / månad", + exportKvUtilitiesPerMonth: "El & vatten / månad", + exportKvSubscriptionsPerMonth: "Prenumerationer / månad", + exportKvPerBoard: "Per bräda", + exportKvMaterialsPerBoard: "Material per bräda", + exportKvProcessesPerBoard: "Processer per bräda", + exportKvPackagingPerBoard: "Förpackning per bräda", + exportKvMarkup: "Påslag", + exportMarkupValue: "{{markup}}× (≈ {{pct}} % bruttomarginal)", + exportKvWasteEffective: "Spill (effektivt)", + exportKvCostNoPack: "Kostnad / bräda (utan förpackning)", + exportKvCostWithPack: "Kostnad / bräda (med förpackning)", + exportKvBatchSetupPerBoard: "Batchuppsättning / bräda", + exportKvTax: "Skatt ({{pct}} %)", + exportKvTaxIncluded: "Skatt ({{pct}} %, inkluderad)", + exportKvSellingNoPack: "Försäljningspris (utan förpackning)", + exportKvSellingWithPack: "Försäljningspris (med förpackning)", + exportShippingNote: "Inkluderar inte frakt till köparen.", + exportGeneratedBy: "Skapad med SkateSpots · skate-spots.org", + exportGeneratedWith: "Skapad med SkateSpots · skate-spots.org", + exportDetailSetup: "+ {{hours}} tim uppsättning", + exportDetailBoards: "{{boards}} brädor", + exportDetailShip: "+ {{amount}} frakt", + exportDetailMinutes: "{{minutes}} min", + exportDetailPerBoards: "/ {{boards}} brädor", + exportDetailScrap: "{{pct}} % spill", + exportDetailMaterials: "{{materials}} material", + exportQuoteRef: "Ref. {{ref}}", + exportQuoteLineItem: "Anpassad skateboard-deck", + exportQuoteLineItemQty: "Anpassad skateboard-deck × {{qty}}", + exportQuoteLineDesc: "Handbyggd, färdigställd och packad. Kvantitet 1.", + exportQuoteLineDescQty: "Handbyggd, färdigställd och packad. {{price}} styck.", + exportQuoteSubtotal: "Delsumma", + exportQuoteSubtotalQty: "Delsumma ({{qty}} decks)", + exportQuoteTax: "Skatt / moms ({{pct}} %)", + exportQuoteTotal: "Totalt", + exportQuoteTotalQty: "Totalt ({{qty}} decks)", + exportQuoteIncludesTax: "Inkluderar {{pct}} % skatt ({{amount}})", + exportQuoteDeposit: "Deposition att betala nu ({{pct}} %)", + exportQuoteBalance: "Resterande vid färdigställande", + exportQuotePayment: "Betalning: {{value}}", + exportQuoteLightning: "Lightning: {{value}}", + exportQuoteDetails: "Uppgifter: {{value}}", + exportQuoteTerms: "Villkor: {{value}}", + exportQuoteDelivery: "Leverans: {{value}}", + exportQuoteValidUntil: "Inkluderar inte frakt. Offerten gäller till {{date}}.", + exportPngSellingWith: "FÖRSÄLJNINGSPRIS · MED FÖRPACKNING", + exportPngSellingNo: "FÖRSÄLJNINGSPRIS · UTAN FÖRPACKNING", + exportPngCostWith: "KOSTNAD / BRÄDA (MED FÖRPACKNING)", + exportPngDeposit: "Deposition {{pct}} %: {{amount}}", + exportXlsxSummary: "Sammanfattning", + exportXlsxCurrency: "Valuta", + exportXlsxDate: "Datum", + exportXlsxOperationsPerBoard: "Drift per bräda", + exportColCost: "Kostnad", + exportColSetupH: "Uppsättning (tim)", + exportColBoards: "Brädor", + exportColPerBoard: "Per bräda", + exportColMaterial: "Material", + exportColOrderCost: "Beställningskostnad", + exportColShipping: "Frakt", + exportColOrderMin: "Beställning (min)", + exportColUnloadMin: "Avlastning (min)", + exportColProcess: "Process", + exportColTimeMin: "Tid (min)", + exportColTimeBoardMin: "Tid/bräda (min)", + exportColMaterialsBoard: "Material/bräda", + exportCopyTitle: "Deck-kostnad — {{currency}}", + exportCopyCostWith: "Kostnad / bräda (med förpackning): {{amount}}", + exportCopySellingNo: "Försäljningspris (utan förpackning): {{amount}}", + exportCopySellingWith: "Försäljningspris (med förpackning): {{amount}}", + exportCopyBreakdown: "Utrustning {{equipment}} · Drift {{operations}} · Material {{materials}} · Processer {{processes}} · Förpackning {{packaging}}", + exportMdHourlyRate: "Timlön: {{value}}", + exportMdLabourBurden: "Arbetsgivaravgifter: {{value}}", + exportMdLoadedRate: "Full kostnad per timme: {{value}}", + exportMdBoardsPerMonth: "Brädor/månad: {{value}}", + exportMdRent: "Hyra: {{value}}", + exportMdUtilities: "El & vatten: {{value}}", + exportMdSubscriptions: "Prenumerationer: {{value}}", + exportMdPerBoard: "Per bräda: {{value}}", + exportMdMarkupWaste: "Påslag: {{markup}}× (≈ {{pct}} % bruttomarginal) · Spill: {{waste}} %", + exportMdCostNoPack: "Kostnad/bräda (utan förpackning): {{value}}", + exportMdCostWithPack: "Kostnad/bräda (med förpackning): {{value}}", + exportMdBatchSetup: "Batchuppsättning/bräda: {{value}}", + exportMdSellingNo: "Försäljningspris (utan förpackning): {{value}}", + exportMdSellingWith: "Försäljningspris (med förpackning): {{value}}", + exportMdDisclaimer: "Inkluderar inte frakt till köparen. Skapad med SkateSpots." + } +}; export default svBatch8; diff --git a/src/pages/CreateTourPage.tsx b/src/pages/CreateTourPage.tsx index 225d8c4..316f462 100644 --- a/src/pages/CreateTourPage.tsx +++ b/src/pages/CreateTourPage.tsx @@ -38,6 +38,7 @@ const COMMON_LANGUAGES = [ { code: 'ja', label: 'Japanese', flag: '🇯🇵' }, { code: 'zh-CN', label: 'Chinese (Simplified)', flag: '🇨🇳' }, { code: 'zh-TW', label: 'Chinese (Traditional)', flag: '🇹🇼' }, + { code: 'sv', label: 'Swedish', flag: '🇸🇪' }, { code: 'el', label: 'Greek', flag: '🇬🇷' }, { code: 'vi', label: 'Vietnamese', flag: '🇻🇳' }, { code: 'tr', label: 'Turkish', flag: '🇹🇷' },