Point SKATE_RELAY, the default relay pools, the DM/CVM/zap relay arrays, the cvm-server + push-service defaults, and the archive default at wss://relay.skate-spots.org, keeping the legacy hosted relay as a fallback during the client-update window. Restored 115/115 archived events; the relay runs behind Caddy with TLS. Docs + AGENTS.md updated.
1652 lines
87 KiB
TypeScript
1652 lines
87 KiB
TypeScript
/** pt (pt-BR) — batch 2: mapUi, mapPage, spotUi, diyUi, labelsUi, feesUi, cardUi, routeUi, sasquatchUi, sasquatchChat. */
|
||
const ptBatch2 = {
|
||
mapUi: {
|
||
mapFooter: {
|
||
links: "Links",
|
||
hide: "Ocultar barra de links do mapa",
|
||
},
|
||
findingSpots: "Buscando spots",
|
||
loadingSpots: "Carregando spots",
|
||
loadingMap: "Carregando mapa...",
|
||
mapViewAria: "Visualização de mapa",
|
||
listViewAria: "Visualização de lista",
|
||
layers: "Camadas",
|
||
mapLayers: "Camadas do mapa",
|
||
showOnMap: "Mostrar no mapa",
|
||
showResults: "Mostrar resultados",
|
||
quickActions: "Ações rápidas",
|
||
spots: "Spots",
|
||
shops: "Lojas",
|
||
gear: "Equipamentos",
|
||
tours: "Tours",
|
||
events: "Eventos",
|
||
crews: "Crews",
|
||
spotType: "Tipo de Spot",
|
||
sortBy: "Ordenar por",
|
||
trustLevel: "Nível de confiança",
|
||
weather: "Clima",
|
||
buySellGear: "Comprar/Vender Equipamentos",
|
||
stash: "Stash",
|
||
more: "Mais",
|
||
newHere: "Novo por aqui?",
|
||
welcomeDesc: "Descubra spots de skate, eventos e a comunidade.",
|
||
getOnZapstore: "Baixe na Zapstore",
|
||
dismiss: "Dispensar",
|
||
addedBy: "Adicionado por",
|
||
directions: "Rota",
|
||
viewDetails: "Ver detalhes",
|
||
viewDetailsArrow: "Ver detalhes →",
|
||
spotDetails: "Detalhes do spot",
|
||
skateShop: "Skate Shop",
|
||
skateSpot: "Skate Spot",
|
||
youAreHere: "Você está aqui",
|
||
conditions: "Condições",
|
||
weatherScoreSuffix: "{{score}}/100 clima",
|
||
wind: "Vento",
|
||
humidity: "Umidade",
|
||
airQuality: "Qualidade do ar",
|
||
threeDayForecast: "Previsão de 3 dias",
|
||
gearForSale: "Equipamentos à venda ({{count}})",
|
||
viewItems: "Ver itens →",
|
||
viewAllItems: "Ver todos os {{count}} itens →",
|
||
viewGear: "Ver equipamentos →",
|
||
localTour: "Tour local",
|
||
meetAt: "Encontro em: {{place}}",
|
||
hours: "{{count}} horas",
|
||
level: "nível {{level}}",
|
||
viewTour: "Ver tour →",
|
||
upcomingEvent: "Próximo evento",
|
||
viewEvent: "Ver evento →",
|
||
skateCrew: "Skate Crew",
|
||
members: "{{count}} membros",
|
||
since: "Desde {{year}}",
|
||
viewCrew: "Ver crew →",
|
||
acceptsBitcoin: "Aceita Bitcoin",
|
||
boosted: "Impulsionado",
|
||
website: "Site",
|
||
offlineSavedSpots: "Offline · mostrando spots salvos",
|
||
cantReachRelays: "Não foi possível alcançar os relays",
|
||
relayOnlineNoAnswer: "Você está online, mas o relay da comunidade não está respondendo agora.",
|
||
youreOffline: "Você está offline.",
|
||
savedOnDevice: "Os spots que você já viu estão salvos neste dispositivo e aparecerão aqui.",
|
||
noSpotsMatchTitle: "Nenhum spot corresponde",
|
||
noSpotsMatchDesc: "Tente uma busca diferente ou limpe os filtros.",
|
||
noSpotsMappedYet: "Nenhum spot mapeado ainda",
|
||
noSpotsMappedDesc: "Seja o primeiro a mapear seu park — leva um minuto, é seu, e o próximo skatista que passar vai agradecer.",
|
||
addFirstSpot: "Adicionar o primeiro spot",
|
||
findSpotsNearMe: "Encontrar spots perto de mim",
|
||
locating: "Localizando…",
|
||
refiningLocation: "Refinando sua localização…",
|
||
refiningLocationDesc: "Centralizado no seu último spot — ajustando um sinal de GPS novo.",
|
||
locatingYou: "Localizando você…",
|
||
locatingDesc: "Obtendo sinal de GPS. Isso pode levar até um minuto na primeira vez.",
|
||
foundYou: "Encontramos você",
|
||
foundYouDesc: "Mapa centralizado na sua localização.",
|
||
locationPermissionNeeded: "Permissão de localização necessária",
|
||
permissionNeededDesc: "Permita a localização para o SkateSpots em Configurações → Apps → SkateSpots → Permissões do seu dispositivo, depois toque em Perto de mim novamente.",
|
||
locationTimedOut: "Tempo de localização esgotado",
|
||
timeoutNativeDesc: "Não foi possível obter a localização a tempo. Se você está em local fechado, o GPS não vê satélites — ative a Localização por rede (Configurações → Localização) ou vá para um local aberto e tente de novo.",
|
||
timeoutWebDesc: "Não foi possível obter sua localização a tempo. Verifique seu sinal e tente novamente.",
|
||
noLocationProvider: "Nenhum provedor de localização",
|
||
noProviderNativeDesc: "Seu celular não está fornecendo localização. Em ROMs focadas em privacidade (ex.: GrapheneOS), ative a Localização por rede em Configurações → Localização, ou garanta que o GPS esteja ligado e tente ao ar livre.",
|
||
noProviderWebDesc: "Nenhum provedor de localização disponível. Ative os serviços de localização e tente novamente.",
|
||
locationUnavailable: "Localização indisponível",
|
||
unavailableNativeDesc: "Ative Localização/GPS nas configurações do seu celular, permita a localização para o SkateSpots (Configurações → Apps → SkateSpots → Permissões) e tente novamente.",
|
||
unavailableWebDesc: "Não foi possível determinar sua localização. Certifique-se de que os serviços de localização estejam ativados.",
|
||
locationBlocked: "Localização bloqueada",
|
||
locationBlockedDesc: "Seu navegador bloqueou o acesso à localização para este site. Veja como reativar:",
|
||
locationPlatformAndroid: "Chrome no Android",
|
||
locationPlatformIos: "Safari no iOS",
|
||
locationPlatformDesktop: "Chrome no desktop",
|
||
locationPlatformFirefox: "Firefox",
|
||
locationStepsAndroid: "Toque no ícone de cadeado na barra de endereço → Configurações do site → Localização → Permitir",
|
||
locationStepsIos: "App Ajustes → Safari → Localização → Permitir (ou toque no botão \"AA\" na barra de endereço do Safari)",
|
||
locationStepsDesktop: "Clique no ícone de cadeado → Configurações do site → Localização → Permitir",
|
||
locationStepsFirefox: "Clique no ícone de cadeado → Conexão segura → Mais informações → Permissões → Acessar sua localização → Permitir",
|
||
gotIt: "Entendi",
|
||
addSpot: "Adicionar Spot",
|
||
addShop: "Adicionar Loja",
|
||
addEvent: "Adicionar Evento",
|
||
addSpotHereTitle: "Adicionar um spot aqui?",
|
||
addSpotHereDesc: "Solte um pino onde você tocou",
|
||
sellGear: "Vender Equipamentos",
|
||
offerTour: "Oferecer Tour",
|
||
closeAddMenu: "Fechar menu de adição",
|
||
addMenuAria: "Adicionar spot, loja, evento, equipamento ou tour",
|
||
localChat: "Chat local",
|
||
localChatDesc: "Chat ao vivo para onde o mapa estiver centralizado. Escolha o alcance do canal.",
|
||
btcMapShowing: "Mostrando {{count}} lugares onde você pode Spedn seus sats por perto",
|
||
btcMapShow: "Mostrar lugares onde você pode Spedn seus sats (via BTC Map)",
|
||
yourPrivateStash: "Seu Stash Privado",
|
||
stashIntro: "Acompanhe seus equipamentos, defina preços e encontre trocas com outros skatistas.",
|
||
encryptionRequired: "Criptografia necessária",
|
||
encryptionRequiredDesc: "Use um signer com suporte a NIP-44 (Alby, nos2x, Amber).",
|
||
myStash: "Meu Stash",
|
||
encrypted: "Criptografado",
|
||
itemsCount: "{{count}} itens",
|
||
items: "Itens",
|
||
wishlist: "Lista de desejos",
|
||
types: "Tipos",
|
||
stashEmpty: "Seu stash está vazio",
|
||
addFirstItem: "Adicionar primeiro item",
|
||
wishlistCount: "Lista de desejos ({{count}})",
|
||
myGearCount: "Meus equipamentos ({{count}})",
|
||
openFullStash: "Abrir Stash completo",
|
||
addItem: "Adicionar item",
|
||
searchSpotsPlaceholder: "Buscar spots...",
|
||
selected: "Selecionado",
|
||
noSpotsFound: "Nenhum spot encontrado. Tente uma busca diferente.",
|
||
addingSpotsHint: "Adicionar spots ajuda os usuários a te encontrar ao navegar por locais específicos",
|
||
report: "Denunciar",
|
||
spotSingular: "1 spot",
|
||
spotPlural: "{{count}} spots",
|
||
view: "Ver",
|
||
myCollections: "Minhas coleções",
|
||
collectionsSubtitle: "Organize seus spots favoritos em listas personalizadas",
|
||
newCollection: "Nova coleção",
|
||
loginToCreate: "Entre para criar coleções",
|
||
loginToCreateDesc: "Salve seus spots favoritos em listas personalizadas como \"Viagem a Barcelona 2024\" ou \"Melhores rails de SP\"",
|
||
noCollections: "Nenhuma coleção ainda",
|
||
noCollectionsDesc: "Crie sua primeira coleção para começar a organizar spots",
|
||
createFirstCollection: "Crie sua primeira coleção",
|
||
createNewCollection: "Criar nova coleção",
|
||
createCollectionDesc: "Dê um nome e uma descrição opcional à sua coleção",
|
||
collectionName: "Nome da coleção",
|
||
collectionNamePlaceholder: "Viagem a Barcelona 2024",
|
||
descriptionOptional: "Descrição (opcional)",
|
||
descriptionPlaceholder: "Meus spots favoritos da minha viagem a Barcelona...",
|
||
creating: "Criando...",
|
||
createCollection: "Criar coleção",
|
||
editCollection: "Editar coleção",
|
||
saving: "Salvando...",
|
||
saveChanges: "Salvar alterações",
|
||
deleteCollectionTitle: "Excluir coleção?",
|
||
deleteCollectionDesc: "Isso excluirá permanentemente \"{{title}}\". Os spots em si não serão afetados.",
|
||
deleting: "Excluindo...",
|
||
collectionCreated: "Coleção criada!",
|
||
collectionCreatedDesc: "\"{{title}}\" está pronta para spots",
|
||
collectionCreateFailed: "Falha ao criar a coleção",
|
||
collectionUpdated: "Coleção atualizada!",
|
||
changesSaved: "Suas alterações foram salvas",
|
||
collectionUpdateFailed: "Falha ao atualizar a coleção",
|
||
collectionDeleted: "Coleção excluída",
|
||
collectionDeletedDesc: "\"{{title}}\" foi removida",
|
||
collectionDeleteFailed: "Falha ao excluir a coleção",
|
||
somethingWentWrong: "Algo deu errado",
|
||
},
|
||
mapPage: {
|
||
title: "Lojas e Spots",
|
||
spots: "Spots",
|
||
shops: "Lojas",
|
||
filters: "Filtros",
|
||
listView: "Lista",
|
||
mapView: "Mapa",
|
||
nearMe: "Perto de mim",
|
||
searchPlaceholder: "Buscar spots...",
|
||
noSpotsInArea: "Nenhum spot nesta área",
|
||
zoomIn: "Aproximar",
|
||
zoomOut: "Afastar",
|
||
myLocation: "Minha localização",
|
||
locationsFound: "{{count}} locais encontrados",
|
||
spotsOnly: "Somente spots",
|
||
shopsOnly: "Somente lojas",
|
||
spotsAndShops: "Spots e Lojas",
|
||
noSpotsMatch: "Nenhum spot corresponde aos seus filtros.",
|
||
noSpotsYet: "Nenhum spot foi adicionado ainda.",
|
||
addFirstSpot: "Adicionar primeiro spot",
|
||
},
|
||
spotUi: {
|
||
claim: {
|
||
areYouOwner: "Este spot é seu?",
|
||
privateDesc: "Este spot está marcado como privado. Se você é dono ou cuida dele, reivindique-o — um moderador do SkateSpots confirma a propriedade e então você assume o anúncio.",
|
||
claimSpot: "Reivindicar este spot",
|
||
nip05Required: "Você precisa de um NIP-05 verificado para reivindicar um spot privado (prova de que você controla uma identidade Nostr). Adicione um no seu perfil e volte aqui.",
|
||
addNip05: "Adicionar NIP-05 nas Configurações",
|
||
pendingTitle: "Reivindicação aguardando revisão",
|
||
pendingDesc: "Sua reivindicação foi enviada. Um moderador do SkateSpots vai revisá-la — você poderá concluir a reivindicação assim que for aprovada.",
|
||
approvedTitle: "Reivindicação aprovada",
|
||
approvedDesc: "Um moderador aprovou sua reivindicação. Conclua para se tornar o dono deste spot.",
|
||
complete: "Concluir reivindicação",
|
||
submitted: "Reivindicação enviada",
|
||
submittedDesc: "Um moderador vai revisar sua reivindicação. Você assumirá o spot assim que for aprovada.",
|
||
submitFailed: "Não foi possível enviar a reivindicação",
|
||
submit: "Enviar reivindicação",
|
||
submitting: "Enviando…",
|
||
confirmTitle: "Reivindicar \"{{title}}\"?",
|
||
confirmIntro: "Você está pedindo para se tornar o dono deste spot privado.",
|
||
confirmBullet1: "Um moderador do SkateSpots revisa o pedido (não podemos verificar propriedade, apenas chaves Nostr)",
|
||
confirmBullet2: "Se aprovado, você conclui a reivindicação para se tornar o dono e pode editar o spot",
|
||
confirmBullet3: "O spot original permanece no Nostr — a rede é descentralizada",
|
||
adminTitle: "Reivindicações de propriedade pendentes",
|
||
adminApprove: "Aprovar",
|
||
adminApproved: "Aprovado",
|
||
adminApprovedDesc: "Agora eles podem concluir a reivindicação do spot.",
|
||
adminApproveFailed: "Não foi possível aprovar a reivindicação",
|
||
loginRequired: "Entre para reivindicar este spot privado, ou para pedir a propriedade.",
|
||
},
|
||
abandonedDesc: "Última atualização {{time}}. Se o dono original estiver inativo, você pode reivindicar este spot para mantê-lo e melhorá-lo.",
|
||
claimedNotice: "Anúncio reivindicado",
|
||
claimedNoticeDesc: "Este spot foi republicado por um novo dono após uma reivindicação. O anúncio original ainda pode existir separadamente.",
|
||
abandonedLoginDesc: "Última atualização {{time}}. Entre para reivindicar e manter este spot.",
|
||
accessDeniedDesc: "Você só pode editar spots que você criou.",
|
||
accessDeniedTitle: "Acesso negado",
|
||
addAtLeastOneTag: "Adicione pelo menos uma tag.",
|
||
additionalDetails: "Detalhes adicionais (opcional)",
|
||
additionalDetailsPlaceholder: "Forneça qualquer contexto adicional que possa ajudar...",
|
||
addNewTags: "Adicionar novas tags:",
|
||
addNip05InSettings: "Adicionar NIP-05 nas Configurações",
|
||
addPhoto: "Adicionar foto",
|
||
addPhotoDesc: "Contribua com uma foto para ajudar outros a descobrir este spot.",
|
||
addPhotoOrDescription: "Adicione uma foto ou uma descrição",
|
||
addPhotoOrDescriptionDesc: "Dê aos skatistas algo para se orientar — uma imagem, ou uma linha sobre o lugar.",
|
||
addPhotos: "Adicionar fotos",
|
||
addPhotoToSpot: "Adicionar foto ao spot",
|
||
adminDeleteDialogDesc: "Como admin do SkateSpots, você está removendo \"{{title}}\". Ele ficará oculto em todo o app para todos e um pedido de exclusão será enviado aos relays.",
|
||
adminDeleteReason: "Admin do SkateSpots removeu o spot \"{{title}}\"",
|
||
airQuality: "Qualidade do ar",
|
||
altSkateSpot: "Skate spot: {{title}}",
|
||
areYouShopOwner: "Você é o dono da loja?",
|
||
askBeforeSkating: "Pergunte antes de andar",
|
||
backToSpot: "Voltar ao spot",
|
||
beFirstToListGear: "Seja o primeiro a anunciar equipamentos neste spot!",
|
||
beFirstToSay: "Seja o primeiro a dizer algo.",
|
||
byAuthor: "por {{name}}",
|
||
captionPlaceholder: "Adicione uma legenda (opcional) - descreva o que há na foto, quando foi tirada, etc.",
|
||
chatPublicNote: "Qualquer pessoa pode ler isto — as mensagens são públicas e efêmeras. Para conversas privadas, use as Mensagens Diretas.",
|
||
checkPinBelow: "Confira o pino abaixo antes de adicionar uma duplicata.",
|
||
claimBullet1: "Você se torna o dono e pode editar o spot",
|
||
claimBullet2: "O spot original permanece (o Nostr é descentralizado)",
|
||
claimBullet3: "Sua versão pode aparecer ao lado do original",
|
||
claimFailed: "Falha na reivindicação",
|
||
claiming: "Reivindicando...",
|
||
claimIntro: "Você está prestes a reivindicar a propriedade deste spot. Isso criará sua própria versão do spot que você pode editar e manter.",
|
||
claimSpot: "Reivindicar spot",
|
||
claimThisSpot: "Reivindicar este spot",
|
||
claimTitle: "Reivindicar \"{{title}}\"?",
|
||
claimWhatHappens: "O que acontece quando você reivindica:",
|
||
coachesAndFilmersAvailable: "Coaches e filmers disponíveis neste spot",
|
||
coachesCount: "Coaches ({{count}})",
|
||
coachHere: "Coach aqui",
|
||
community: "Comunidade",
|
||
communityVerified: "Verificado pela comunidade",
|
||
communityVerifiedTitle: "Outro skatista contribuiu aqui (foto ou relato de status).",
|
||
conditions: "Condições",
|
||
contactForPermission: "Contato para permissão",
|
||
contactInfo: "Informações de contato",
|
||
contributePhoto: "Contribuir com foto",
|
||
contributing: "Contribuindo...",
|
||
couldNotSendMessage: "Não foi possível enviar a mensagem.",
|
||
couldNotSubmit: "Não foi possível enviar",
|
||
couldNotUploadPhoto: "Não foi possível enviar a foto. Você pode adicionar uma abaixo.",
|
||
crewsThatSkateHere: "Crews que andam aqui",
|
||
current: "Atuais:",
|
||
currentTags: "Tags atuais neste spot:",
|
||
daysAgo: "há {{count}} dia",
|
||
daysAgoPlural: "há {{count}} dias",
|
||
deleteDialogDesc: "Isso excluirá permanentemente \"{{title}}\" de todos os relays. Esta ação não pode ser desfeita.",
|
||
deletedSpotReason: "Spot excluído",
|
||
deleteFailed: "Falha ao excluir",
|
||
deleteSpot: "Excluir spot",
|
||
deleteSpotTitle: "Excluir spot?",
|
||
differentSpotPublishAnyway: "É um spot diferente — publicar mesmo assim",
|
||
dragDropOrClick: "Arraste e solte ou clique",
|
||
dropPhotos: "Solte as fotos",
|
||
duplicateOne: "Há um spot a menos de 60 m do seu pino. Se for o mesmo lugar, adicione sua foto ou um relato de status lá em vez de criar uma duplicata.",
|
||
duplicateOther: "Há spots a menos de 60 m do seu pino. Se for o mesmo lugar, adicione sua foto ou um relato de status lá em vez de criar uma duplicata.",
|
||
editSpotSeoDesc: "Edite seu spot de skate.",
|
||
failedToContribute: "Falha ao contribuir",
|
||
failedToPublish: "Falha ao publicar",
|
||
failedToPublishDesc: "Algo deu errado. Verifique o console para detalhes.",
|
||
failedToSubmitReport: "Falha ao enviar a denúncia",
|
||
failedToSuggestTags: "Falha ao sugerir tags",
|
||
failedToUpdate: "Falha ao atualizar",
|
||
failedToUploadImage: "Falha ao enviar a imagem",
|
||
failedToUploadPhoto: "Falha ao enviar a foto",
|
||
feelsLikeTemp: "Sensação de {{temp}}°C",
|
||
filmersCount: "Filmers ({{count}})",
|
||
filmHere: "Filmar aqui",
|
||
gearSwap: "Troca de equipamentos",
|
||
geolocationNotSupported: "Geolocalização não suportada",
|
||
geolocationNotSupportedDesc: "Seu navegador não suporta geolocalização.",
|
||
getDirections: "Obter rota",
|
||
hangTight: "Aguarde",
|
||
hangTightDesc: "Sua foto ainda está sendo enviada. Ela será anexada em um segundo.",
|
||
helpImproveSpot: "Ajude a melhorar este spot adicionando fotos ou sugerindo tags",
|
||
hiddenByModerator: "Ocultado por um moderador",
|
||
hiddenByModeratorDesc: "Este spot não aparece no mapa nem na busca. Você ainda pode vê-lo porque é seu. Editá-lo não vai desocultá-lo — ele permanece oculto até um moderador retirar o veredito.",
|
||
humidity: "Umidade",
|
||
imageUploaded: "Imagem enviada",
|
||
imageUploadedDesc: "Sua imagem foi enviada com sucesso.",
|
||
imHere: "Estou aqui",
|
||
invalidCoordinates: "Coordenadas inválidas",
|
||
invalidCoordinatesDesc: "Insira uma latitude válida (-90 a 90) e longitude válida (-180 a 180).",
|
||
invalidNpub: "npub inválido",
|
||
invalidNpubDesc: "Insira um endereço npub válido.",
|
||
lastReported: "último {{time}}",
|
||
listGear: "Anunciar equipamentos",
|
||
listYourGearHere: "Anuncie seus equipamentos aqui",
|
||
loadingChat: "Carregando chat…",
|
||
locationError: "Erro de localização",
|
||
locationFound: "Localização encontrada",
|
||
locationFoundDesc: "Sua localização atual foi definida.",
|
||
locationRequired: "Localização necessária",
|
||
locationRequiredDesc: "Insira coordenadas ou use sua localização atual.",
|
||
loginRequiredTitle: "Login necessário",
|
||
logInToChat: "Entre para participar do chat local.",
|
||
logInToContributePhotos: "Entre para contribuir com fotos",
|
||
loginToEditSpot: "Você precisa entrar para editar este spot.",
|
||
logInToReport: "Você precisa estar logado para denunciar conteúdo.",
|
||
logInToReportStatus: "Entre para relatar o status deste spot.",
|
||
logInToSuggestTags: "Entre para sugerir tags",
|
||
manageNip05ToClaim: "Gerenciar NIP-05 para reivindicar",
|
||
meetAtSpotForPickup: "💡 Encontro neste spot para retirada segura",
|
||
memberOne: "{{count}} membro",
|
||
memberOther: "{{count}} membros",
|
||
messageFailed: "Falha na mensagem",
|
||
messageMapper: "Mensagem ao mapeador",
|
||
messagePlaceholder: "Envie uma mensagem para este spot… (tente /me ou /who)",
|
||
messagesHiddenOne: "{{count}} mensagem ocultada pelo seu filtro de confiança. Reduza o filtro para ver mais.",
|
||
messagesHiddenOther: "{{count}} mensagens ocultadas pelo seu filtro de confiança. Reduza o filtro para ver mais.",
|
||
messagesHiddenShortOne: "{{count}} mensagem ocultada pelo seu filtro de confiança",
|
||
messagesHiddenShortOther: "{{count}} mensagens ocultadas pelo seu filtro de confiança",
|
||
metresAway: "a {{distance}} m de distância",
|
||
moderatorVouchedDesc: "Um moderador revisou este spot e atestou sua qualidade. Mandou bem.",
|
||
monthsAgo: "há {{count}} mês",
|
||
monthsAgoPlural: "há {{count}} meses",
|
||
newOwnerNpub: "npub do novo dono",
|
||
newOwnerNpubHint: "Insira o npub do usuário para quem você quer transferir este spot.",
|
||
nip05RequiredToClaim: "⚠️ Verificação NIP-05 necessária para reivindicar lojas",
|
||
noCommunitySignalTitle: "Ainda sem foto da comunidade ou relato de status — ninguém confirmou este lugar.",
|
||
breakdownPhotos: "{{count}} foto(s)",
|
||
breakdownStatus: "{{count}} relato(s) de status",
|
||
breakdownComments: "{{count}} comentário(s)",
|
||
breakdownReactions: "{{count}} reação(ões)",
|
||
breakdownCollections: "{{count}} salvamento(s)",
|
||
breakdownZaps: "{{count}} zap(s)",
|
||
breakdownTags: "{{count}} sugestão(ões) de tag",
|
||
breakdownCrews: "{{count}} crew(s)",
|
||
breakdownLab: "{{count}} link(s) pro",
|
||
verifyNudgeTitle: "Seja o primeiro a confirmar este spot",
|
||
verifyNudgeBody: "Uma foto ou um “já andei aqui” é como um spot é verificado — ajude o próximo skatista.",
|
||
verifyNudgeStatus: "Já andei aqui",
|
||
communityChip: "Comunidade",
|
||
seenChip: "Visto",
|
||
noGearListedYet: "Nenhum equipamento anunciado ainda",
|
||
noMessagesYet: "Ainda não há mensagens neste canal local. Diga oi — \"alguém anda hoje à noite?\"",
|
||
noPhoto: "Sem foto",
|
||
noReportsYet: "Nenhuma denúncia ainda",
|
||
noTags: "Sem tags",
|
||
notASkateSpot: "Não é um skate spot",
|
||
offerServicesHere: "💡 Ofereça seus serviços neste spot",
|
||
photoCaptured: "Foto capturada!",
|
||
photoCapturedDesc: "Sua foto foi enviada com sucesso.",
|
||
photoContributed: "Foto contribuída!",
|
||
photoContributedDesc: "Sua foto foi adicionada a este spot.",
|
||
photosAdded: "Suas fotos foram adicionadas.",
|
||
photosRecommended: "fortemente recomendado — spots sem foto ficam marcados como Não verificado",
|
||
photosUploaded: "{{count}} fotos enviadas",
|
||
photoUploaded: "Foto enviada",
|
||
photoUploadedDesc: "Adicione uma legenda e envie para contribuir!",
|
||
photoUploadFailed: "Falha no envio da foto",
|
||
pleaseTryAgain: "Tente novamente",
|
||
public: "Público",
|
||
publicChatTitle: "Qualquer pessoa pode ler as mensagens deste canal — ele é público e não criptografado.",
|
||
recentReports: "Denúncias recentes",
|
||
recipientRequired: "Destinatário obrigatório",
|
||
recipientRequiredDesc: "Insira o npub do novo dono.",
|
||
removeAdmin: "Remover (admin)",
|
||
removeSpot: "Remover spot",
|
||
removeSpotAdminTitle: "Remover este spot? (admin)",
|
||
reportOne: "denúncia",
|
||
reportContent: "Denunciar conteúdo",
|
||
reportContentDesc: "Ajude a manter a comunidade segura denunciando conteúdo inadequado.",
|
||
reportedBySkaters: " por {{count}} skatistas — em análise. Se este é um spot real, adicione uma foto ou um relato de status para confirmá-lo.",
|
||
reportedNotASpot: "Denunciado como não sendo um skate spot",
|
||
reportingType: "Denunciando {{type}}",
|
||
reports: "denúncias",
|
||
reportShop: "Denunciar loja",
|
||
reportSpot: "Denunciar spot",
|
||
reportStatus: "Relatar status",
|
||
reportSubmitted: "Denúncia enviada",
|
||
reportSubmittedDesc: "Obrigado por ajudar a manter o SkateSpots seguro.",
|
||
reportSubmittedLong: "Obrigado por ajudar a manter o SkateSpots seguro e preciso. Sua denúncia será revisada por membros confiáveis da comunidade.",
|
||
reportSubmittedTitle: "Denúncia enviada",
|
||
report: {
|
||
notASkateSpot: {
|
||
label: "Não é um skate spot",
|
||
description: "Um registro de teste, ou um lugar que não é para skate de jeito nenhum",
|
||
},
|
||
fakeSpot: {
|
||
label: "Spot falso/inexistente",
|
||
description: "Este spot não existe ou a localização está errada",
|
||
},
|
||
stolenPhotos: {
|
||
label: "Fotos roubadas/falsas",
|
||
description: "As fotos são de banco de imagens ou roubadas de outro lugar",
|
||
},
|
||
spamAd: {
|
||
label: "Spam ou propaganda",
|
||
description: "Conteúdo promocional ou anúncios duplicados",
|
||
},
|
||
dangerousLocation: {
|
||
label: "Local perigoso",
|
||
description: "Propriedade privada, inseguro ou ilegal de acessar",
|
||
},
|
||
inappropriateContent: {
|
||
label: "Conteúdo inadequado",
|
||
description: "Contém conteúdo ofensivo ou adulto",
|
||
},
|
||
impersonation: {
|
||
label: "Impersonação",
|
||
description: "Alguém se passando por outra pessoa",
|
||
},
|
||
other: {
|
||
label: "Outro",
|
||
description: "Algo mais não listado acima",
|
||
},
|
||
},
|
||
targetType: {
|
||
spot: "Spot",
|
||
event: "Evento",
|
||
tour: "Tour",
|
||
shop: "Loja",
|
||
user: "Usuário",
|
||
listing: "Anúncio",
|
||
coach: "Coach",
|
||
filmer: "Filmer",
|
||
},
|
||
sameOwner: "Mesmo dono",
|
||
sameOwnerDesc: "Não é possível transferir para o dono atual.",
|
||
saveChanges: "Salvar alterações",
|
||
saving: "Salvando...",
|
||
services: "Serviços",
|
||
shareSpotText: "Confira este skate spot: {{title}}",
|
||
shelter: "Abrigo",
|
||
shelterHint: "Este spot é exposto ao tempo? Ajuda os skatistas a encontrar lugares secos quando chove.",
|
||
shopClaimDesc: "Se você é dono ou cuida desta loja, pode reivindicá-la para verificar a propriedade e gerenciar o anúncio.",
|
||
shopClaimNip05Hint: "Para reivindicar esta loja, adicione um identificador NIP-05 que corresponda ao domínio do site da loja.",
|
||
skatersActiveDesc: "Pessoas que postaram neste canal nas últimas 24h.",
|
||
skatersActiveOne: "{{count}} skatista ativo aqui",
|
||
skatersActiveOther: "{{count}} skatistas ativos aqui",
|
||
skatersSellingGear: "Skatistas deste spot estão vendendo equipamentos",
|
||
skateSpot: "Skate Spot",
|
||
somethingWentWrong: "Algo deu errado",
|
||
spot: "Spot",
|
||
spotAdded: "Spot adicionado!",
|
||
spotAddedDesc: "Seu skate spot foi publicado na rede.",
|
||
spotAddedNoPhoto: "Publicado — e marcado como Não verificado até alguém adicionar uma foto. Uma imagem do spot ajuda muito.",
|
||
spotChat: "Chat do spot",
|
||
spotClaimed: "Spot reivindicado!",
|
||
spotClaimedDesc: "Agora você é o dono deste spot. Você pode editá-lo a partir do seu perfil.",
|
||
spotDeleted: "Spot excluído",
|
||
spotDeletedDesc: "Pedido de exclusão enviado aos relays. A maioria dos relays removerá este conteúdo.",
|
||
spotMayAlreadyBeOnMap: "Esse spot já pode estar no mapa",
|
||
spotMayAlreadyExist: "Este spot já pode existir",
|
||
spotMayBeAbandoned: "O spot pode estar abandonado",
|
||
spotPhotoAlt: "Spot",
|
||
spotRemoved: "Spot removido",
|
||
spotRemovedDesc: "Este spot foi removido e ficará oculto em todo o SkateSpots.",
|
||
spotSeoDesc: "Veja este spot de skate no SkateSpots.",
|
||
spotStatus: "Status do spot",
|
||
spotStatusDesc: "\"{{title}}\" ainda dá pra andar? Avise a comunidade sobre o estado atual.",
|
||
spotTypeRequired: "Tipo de spot obrigatório",
|
||
spotTypeRequiredDesc: "Escolha um tipo de spot para os skatistas saberem com o que vão se deparar.",
|
||
spotUpdated: "Spot atualizado!",
|
||
spotUpdatedDesc: "Suas alterações foram publicadas na rede.",
|
||
staffVerifiedTitle: "Um admin do SkateSpots revisou e atestou este spot.",
|
||
statusNotePlaceholder: "Opcional: adicione detalhes (ex.: \"quinas novas no ledge\", \"segurança expulsa depois das 18h\")",
|
||
statusReported: "Status relatado",
|
||
statusReportedDesc: "Obrigado por manter o mapa atualizado. Seu relato está no ar.",
|
||
submitReport: "Enviar denúncia",
|
||
submitting: "Enviando...",
|
||
suggestedByUser: "Sugerido por {{count}} usuário",
|
||
suggestedByUsers: "Sugerido por {{count}} usuários",
|
||
suggestedTagsContent: "Tags sugeridas para {{title}}: {{tags}}",
|
||
suggestNTags: "Sugerir {{count}} tags",
|
||
suggestOneTag: "Sugerir 1 tag",
|
||
suggestTags: "Sugerir tags",
|
||
suggestTagsDesc: "Ajude a categorizar este spot sugerindo tags relevantes.",
|
||
tags: "Tags",
|
||
tagsHint: "Adicione tags para recursos, superfícies, vibes (máx. {{max}})",
|
||
tagsSuggested: "Tags sugeridas!",
|
||
tagsSuggestedDesc: "Suas sugestões de tags foram enviadas.",
|
||
takePhoto: "Tirar foto",
|
||
threeDayForecast: "Previsão de 3 dias",
|
||
tipTheMapper: "Dar gorjeta ao mapeador",
|
||
tipTheMapperDesc: "Achou este spot útil? Envie um zap para agradecer ao mapeador!",
|
||
titleRequired: "Nome obrigatório",
|
||
titleRequiredDesc: "Insira um nome para este spot.",
|
||
today: "Hoje",
|
||
tomorrow: "Amanhã",
|
||
transferDesc: "Transferir \"{{title}}\" para outro usuário. Esta ação não pode ser desfeita.",
|
||
transferFailed: "Falha na transferência",
|
||
transferOwnership: "Transferir propriedade",
|
||
transferRequestContent: "Pedido de transferência de propriedade do spot \"{{title}}\"",
|
||
transferRequested: "Transferência solicitada",
|
||
transferRequestedDesc: "O novo dono precisará reivindicar o spot para concluir a transferência.",
|
||
transferring: "Transferindo...",
|
||
transferSpotOwnership: "Transferir propriedade do spot",
|
||
transferWarningDesc: "Após a transferência, você não poderá mais editar ou excluir este spot.",
|
||
typeToSearchTags: "Digite para buscar ou adicionar tags...",
|
||
underReview: " — em análise. Se este é um spot real, adicione uma foto ou um relato de status para confirmá-lo.",
|
||
untitledSpot: "Spot sem título",
|
||
unverified: "Não verificado",
|
||
updateDetailsFor: "Atualize os detalhes de {{title}}",
|
||
updateSpotDesc: "Atualize as informações deste spot. Todos os campos marcados com * são obrigatórios.",
|
||
uploadAPhoto: "Envie uma foto",
|
||
uploadAPhotoHint: "Arraste e solte ou clique · JPG, PNG, WebP",
|
||
uploadedAlt: "Enviado",
|
||
uploadFailed: "Falha no envio",
|
||
uploadingPhoto: "Enviando foto…",
|
||
uploadPhotoFirst: "Envie uma foto primeiro.",
|
||
uvIndex: "Índice UV",
|
||
verifiedBySkateSpots: "Verificado pelo SkateSpots",
|
||
viewPhotoFullScreen: "Ver foto em tela cheia",
|
||
viewPhotoOf: "Ver foto {{n}} de {{total}}",
|
||
warning: "Aviso",
|
||
weatherConditions: "Condições do tempo",
|
||
weatherOnly: "apenas tempo",
|
||
weatherOnlyUnconfirmed: "Apenas tempo. Ninguém confirmou que este é um skate spot ainda, então não há pontuação de condições — adicione uma foto ou um relato de status para confirmá-lo.",
|
||
whyReporting: "Por que você está denunciando isto?",
|
||
wind: "Vento",
|
||
yearsAgo: "há {{count}} ano",
|
||
yearsAgoPlural: "há {{count}} anos",
|
||
},
|
||
diyUi: {
|
||
title: "DIY — Faça você mesmo",
|
||
tagline: "Guias, ferramentas abertas e projetos para construir seus próprios decks, rampas e pistas de concreto — e depois encontrar as pessoas, os lugares e o mercado para acompanhar.",
|
||
doItWithPeople: "Faça com gente",
|
||
backToDiy: "Voltar ao DIY",
|
||
calc: {
|
||
title: "Calculadora de custo de deck",
|
||
intro: "Quanto custa fazer um deck — mão de obra, equipamento, materiais, tempo de processo, embalagem e margem — e um preço de venda justo. Salvo neste dispositivo.",
|
||
},
|
||
designer: {
|
||
title: "Designer de deck",
|
||
intro: "Modele o contorno de um skate ou longboard e exporte um molde imprimível em 1:1, um SVG ou um DXF para CNC. Salvo neste dispositivo.",
|
||
presets: "Predefinições",
|
||
dimensions: "Dimensões",
|
||
shape: "Formato",
|
||
kicks: "Kicks",
|
||
hardware: "Furos dos trucks",
|
||
width: "Largura máx.",
|
||
wheelbase: "Distância entre eixos",
|
||
nose: "Comprimento do nose",
|
||
tail: "Comprimento do tail",
|
||
length: "Comprimento total",
|
||
waist: "Cintura",
|
||
endRound: "Arredondamento das pontas",
|
||
concave: "Concave",
|
||
thickness: "Espessura",
|
||
tailKick: "Kick do tail",
|
||
noseKick: "Kick do nose",
|
||
holeNew: "New school (2.125″)",
|
||
holeOld: "Old school (2.5″)",
|
||
holeSpacing: "New school é 2.125″ × 1.625″ (54 × 41 mm); old school é 2.5″ × 1.625″. Furos de montagem de 3/16″.",
|
||
topView: "Vista superior",
|
||
sideView: "Perfil lateral",
|
||
concaveSection: "Seção de concave",
|
||
export: "Exportar",
|
||
pdfA4: "PDF 1:1 · A4",
|
||
pdfLetter: "PDF 1:1 · Letter",
|
||
printNote: "Imprima o PDF em 100% (sem “ajustar à página”) e depois junte as folhas usando as cruzes nos cantos. O SVG também é em tamanho real.",
|
||
note: "Este é o contorno 2D que você traça e corta. Para formas 3D completas e design de molde, uma ferramenta CAD de verdade ainda é a escolha certa.",
|
||
},
|
||
source: "Fonte",
|
||
comingSoon: "Em breve",
|
||
footer: "Guias passo a passo estão a caminho. Por enquanto: encontre quem constrói no The Lab, mapeie seu spot e compre ou venda no Marketplace. Ande com segurança — proteções, luvas e óculos.",
|
||
categories: {
|
||
boards: "Decks",
|
||
ramps: "Rampas e obstáculos de madeira",
|
||
concrete: "Pistas de concreto e DIY",
|
||
repairs: "Consertos e afinação",
|
||
tools: "Ferramentas e projetos",
|
||
},
|
||
cards: {
|
||
ossBuild: {
|
||
title: "Construa um skate",
|
||
blurb: "Fabricação de deck passo a passo — lâminas, moldes, prensas e acabamento.",
|
||
},
|
||
sk8cad: {
|
||
title: "SK8CAD",
|
||
blurb: "CAD open-source para formatos de deck, concave e design de molde.",
|
||
},
|
||
deckCost: {
|
||
title: "Custo e preço do deck",
|
||
blurb: "Calcule materiais, mão de obra e um preço de venda justo antes de construir.",
|
||
},
|
||
deckDesigner: {
|
||
title: "Designer de deck",
|
||
blurb: "Modele um contorno e imprima um molde 1:1 — ou exporte SVG/DXF para CNC.",
|
||
},
|
||
ledgeBox: {
|
||
title: "Construa um ledge ou box",
|
||
blurb: "Um obstáculo de madeira para iniciantes que você monta em um fim de semana.",
|
||
},
|
||
quarterpipe: {
|
||
title: "Construa um quarterpipe",
|
||
blurb: "Projetos de rampa, transição e coping para um mini no quintal.",
|
||
},
|
||
flatbar: {
|
||
title: "Construa um flatbar",
|
||
blurb: "Barato, portátil e a melhor forma de aprender rails.",
|
||
},
|
||
concreteBasics: {
|
||
title: "Noções básicas de concreto",
|
||
blurb: "Misturar, montar a forma e dar acabamento a um ledge ou bank que dura.",
|
||
},
|
||
coping: {
|
||
title: "Coping e bordas",
|
||
blurb: "Como instalar o coping e dar acabamento a uma transição para um grind liso.",
|
||
},
|
||
buyParts: {
|
||
title: "Compre peças e equipamentos",
|
||
blurb: "Pegue decks, ferragens e ferramentas com vendedores no Marketplace.",
|
||
},
|
||
mapSpot: {
|
||
title: "Mapeie seu spot DIY",
|
||
blurb: "Construiu algo? Adicione ao mapa para que outros encontrem e andem nele.",
|
||
},
|
||
regrip: {
|
||
title: "Troque o griptape de um shape",
|
||
blurb: "Remova o grip velho e aplique o novo direitinho.",
|
||
},
|
||
tune: {
|
||
title: "Ajuste bearings e trucks",
|
||
blurb: "Limpe os bearings, troque os bushings e ajuste a geometria dos seus trucks.",
|
||
},
|
||
printMolds: {
|
||
title: "Moldes impressos em 3D",
|
||
blurb: "Arquivos de moldes e bases de alinhamento imprimíveis da comunidade.",
|
||
},
|
||
sk8cadTools: {
|
||
title: "Ferramentas de molde e alinhamento",
|
||
blurb: "Projete moldes com bases de alinhamento integradas.",
|
||
},
|
||
},
|
||
actions: {
|
||
findBuilder: {
|
||
title: "Encontre um Builder",
|
||
blurb: "Builders de rampa e DIY no The Lab que podem projetar ou construir para você.",
|
||
},
|
||
findCrew: {
|
||
title: "Encontre uma crew de DIY",
|
||
blurb: "Crews focadas em construir — junte-se às que transformam spots em realidade.",
|
||
},
|
||
mapSpot: {
|
||
title: "Mapeie um spot DIY",
|
||
blurb: "Adicione o spot que você construiu para que ele fique no mapa.",
|
||
},
|
||
sellBuilds: {
|
||
title: "Venda suas construções",
|
||
blurb: "Anuncie decks, rampas ou peças que você faz no Marketplace.",
|
||
},
|
||
findCoach: {
|
||
title: "Encontre um coach",
|
||
blurb: "Coaches que ensinam módulos de skate DIY e construção de spots.",
|
||
},
|
||
},
|
||
},
|
||
labelsUi: {
|
||
spotCategory: {
|
||
street: {
|
||
label: "Street",
|
||
description: "Spots aleatórios encontrados, terreno urbano",
|
||
},
|
||
transition: {
|
||
label: "Transition",
|
||
description: "Superfícies curvas/com rampa",
|
||
},
|
||
park: {
|
||
label: "Park",
|
||
description: "Skateparks construídos",
|
||
},
|
||
plaza: {
|
||
label: "Plaza",
|
||
description: "Praças urbanas (como MACBA, Love Park)",
|
||
},
|
||
},
|
||
spotFeature: {
|
||
wallrides: "Wallrides",
|
||
stairs: "Escadas e corrimãos",
|
||
rails: "Rails",
|
||
ledges: "Ledges e guias",
|
||
gaps: "Gaps",
|
||
flatground: "Flatground",
|
||
"manual-pads": "Manual Pads",
|
||
"half-pipes": "Half Pipes",
|
||
"quarter-pipes": "Quarter Pipes",
|
||
"mini-ramps": "Mini Rampas",
|
||
bowls: "Bowls",
|
||
vert: "Vert Ramps",
|
||
"mega-ramps": "Mega Rampas",
|
||
hubbas: "Hubbas",
|
||
"euro-gaps": "Euro Gaps",
|
||
banks: "Banks",
|
||
"spine-ramps": "Spine Ramps",
|
||
"roll-ins": "Roll-ins",
|
||
hips: "Hips",
|
||
volcano: "Volcano",
|
||
pyramids: "Pirâmides / Funboxes",
|
||
"snake-runs": "Snake Runs",
|
||
"pump-track": "Pump Track Rollers",
|
||
"flat-bars": "Flat Bars",
|
||
},
|
||
spotType: {
|
||
street: "Street",
|
||
transition: "Transition",
|
||
park: "Park",
|
||
plaza: "Plaza",
|
||
wallrides: "Wallrides",
|
||
stairs: "Escadas e corrimãos",
|
||
rails: "Rails",
|
||
ledges: "Ledges e guias",
|
||
gaps: "Gaps",
|
||
flatground: "Flatground",
|
||
"manual-pads": "Manual Pads",
|
||
"half-pipes": "Half Pipes",
|
||
"quarter-pipes": "Quarter Pipes",
|
||
"mini-ramps": "Mini Rampas",
|
||
bowls: "Bowls",
|
||
vert: "Vert Ramps",
|
||
"mega-ramps": "Mega Rampas",
|
||
hubbas: "Hubbas",
|
||
"euro-gaps": "Euro Gaps",
|
||
banks: "Banks",
|
||
"spine-ramps": "Spine Ramps",
|
||
"roll-ins": "Roll-ins",
|
||
hips: "Hips",
|
||
volcano: "Volcano",
|
||
pyramids: "Pirâmides / Funboxes",
|
||
"snake-runs": "Snake Runs",
|
||
"pump-track": "Pump Track Rollers",
|
||
"flat-bars": "Flat Bars",
|
||
diy: "DIY",
|
||
rail: "Rail",
|
||
ledge: "Ledge",
|
||
gap: "Gap",
|
||
bowl: "Bowl",
|
||
stall: "Stall",
|
||
slappy: "Slappy",
|
||
},
|
||
access: {
|
||
public: {
|
||
label: "Público - Aberto para todos",
|
||
},
|
||
private: {
|
||
label: "Propriedade privada - Necessário permissão",
|
||
},
|
||
locals: {
|
||
label: "Pergunte aos locais primeiro",
|
||
},
|
||
},
|
||
shelter: {
|
||
outdoor: {
|
||
label: "Ao ar livre",
|
||
short: "Ao ar livre",
|
||
description: "Totalmente exposto — a chuva interrompe o rolê",
|
||
},
|
||
partial: {
|
||
label: "Parcialmente coberto",
|
||
short: "Parcialmente coberto",
|
||
description: "Alguns obstáculos ficam secos",
|
||
},
|
||
covered: {
|
||
label: "Coberto / com teto",
|
||
short: "Coberto",
|
||
description: "Ao ar livre, mas sob um teto",
|
||
},
|
||
indoor: {
|
||
label: "Indoor",
|
||
short: "Indoor",
|
||
description: "Totalmente fechado — ande com chuva ou sol",
|
||
},
|
||
},
|
||
eventType: {
|
||
contest: "Contest",
|
||
demo: "Demo",
|
||
session: "Sessão",
|
||
workshop: "Workshop",
|
||
premiere: "Premiere",
|
||
tradeshow: "Feira",
|
||
gameskate: "Game of Skate",
|
||
concert: "🎸 Show",
|
||
jam: "🎵 Jam",
|
||
festival: "🎪 Festival",
|
||
popup: "🎯 Pop-Up",
|
||
},
|
||
gearCategory: {
|
||
deck: "Deck",
|
||
trucks: "Trucks",
|
||
wheels: "Wheels",
|
||
bearings: "Bearings",
|
||
shoes: "Tênis de Skate",
|
||
clothing: "Roupas",
|
||
protective: "Equipamento de proteção",
|
||
stickers: "Adesivos",
|
||
wax: "Cera",
|
||
tools: "Ferramentas",
|
||
griptape: "Griptape",
|
||
rubbrick: "Rub Brick",
|
||
},
|
||
gearCondition: {
|
||
new: {
|
||
label: "Novo",
|
||
description: "Nunca usado, ainda na embalagem",
|
||
},
|
||
like_new: {
|
||
label: "Seminovo",
|
||
description: "Quase sem uso, excelente estado",
|
||
},
|
||
good: {
|
||
label: "Bom",
|
||
description: "Desgaste normal, funciona perfeitamente",
|
||
},
|
||
well_used: {
|
||
label: "Bastante usado",
|
||
description: "Mostra desgaste mas ainda funciona",
|
||
},
|
||
},
|
||
priceType: {
|
||
fixed: {
|
||
label: "Preço fixo",
|
||
description: "Preço definido em USD ou sats",
|
||
},
|
||
free: {
|
||
label: "Grátis",
|
||
description: "Doando",
|
||
},
|
||
trade: {
|
||
label: "Troca",
|
||
description: "Procurando trocar",
|
||
},
|
||
offer: {
|
||
label: "Aceito ofertas",
|
||
description: "Preço negociável",
|
||
},
|
||
},
|
||
listingType: {
|
||
selling: {
|
||
label: "Vendendo",
|
||
description: "Anunciando equipamento para venda",
|
||
},
|
||
wtb: {
|
||
label: "Quero comprar",
|
||
description: "Procurando equipamento específico",
|
||
},
|
||
},
|
||
tour: {
|
||
spotType: {
|
||
street: "Street",
|
||
park: "Park",
|
||
diy: "DIY",
|
||
transition: "Transition",
|
||
hidden: "Joias escondidas",
|
||
},
|
||
category: {
|
||
local: {
|
||
label: "Tour local",
|
||
description: "Mostre spots escondidos na sua cidade",
|
||
},
|
||
national: {
|
||
label: "Tour nacional",
|
||
description: "Viagens de carro por várias cidades do país",
|
||
},
|
||
international: {
|
||
label: "Tour internacional",
|
||
description: "Aventuras transfronteiriças por vários países",
|
||
},
|
||
destruction: {
|
||
label: "World Destruction",
|
||
description: "Competição global de equipes estilo KOTR",
|
||
},
|
||
},
|
||
},
|
||
crew: {
|
||
vibe: {
|
||
street: "Street",
|
||
transition: "Transition / Vert",
|
||
park: "Park",
|
||
diy: "DIY",
|
||
cruising: "Cruising / Filmagem",
|
||
oldschool: "Old School",
|
||
allterrain: "All Terrain",
|
||
girls: "Garota / Mulher",
|
||
youth: "Juventude / Groms",
|
||
adaptive: "Adaptado",
|
||
punk: "Punk",
|
||
hiphop: "Rap / Hip-Hop",
|
||
},
|
||
focus: {
|
||
mixed: "Misto / Geral",
|
||
builder: "DIY e Builders",
|
||
photo: "Foto e Filmagem",
|
||
coaching: "Coaching",
|
||
art: "Arte e Design",
|
||
music: "Banda e Música",
|
||
wellness: "Treino e Fisio",
|
||
},
|
||
focusDescription: {
|
||
mixed: "Uma crew de skate comum — aparece apenas na página de Crews.",
|
||
builder: "Uma crew de DIY / construção de park — também aparece no The Lab em Builders.",
|
||
photo: "Uma crew de filmagem, fotografia ou edição — também aparece no The Lab em Foto e Filmagem.",
|
||
coaching: "Uma crew de coaching / aulas — também aparece no The Lab em Coaching.",
|
||
art: "Um coletivo de arte, design, graffiti ou tatuagem — também aparece no The Lab em Arte e Design.",
|
||
music: "Uma banda ou coletivo musical — também aparece no The Lab em Música.",
|
||
wellness: "Uma crew de treino, fitness ou fisio — também aparece no The Lab em Treino.",
|
||
},
|
||
lookingFor: {
|
||
filmer: "Filmer",
|
||
photographer: "Fotógrafo",
|
||
editor: "Editor de vídeo",
|
||
coach: "Coach",
|
||
builder: "Builder de rampa",
|
||
artist: "Artista / Designer",
|
||
musician: "Músico / Banda",
|
||
members: "Novos membros",
|
||
},
|
||
role: {
|
||
filmer: "Filmer",
|
||
photographer: "Fotógrafo",
|
||
editor: "Editor",
|
||
coach: "Coach",
|
||
builder: "Builder",
|
||
artist: "Artista",
|
||
graffiti: "Graffiti",
|
||
tattoo: "Tatuagem",
|
||
trainer: "Preparador",
|
||
musician: "Músico",
|
||
judge: "Jurado",
|
||
manager: "Gerente de equipe",
|
||
og: "OG",
|
||
},
|
||
},
|
||
memberVisibility: {
|
||
public: {
|
||
label: "Público",
|
||
description: "Qualquer pessoa pode te ver nesta crew — na página pública da crew e na descoberta de colegas de crew.",
|
||
},
|
||
crew: {
|
||
label: "Somente crew",
|
||
description: "Apenas colegas de crew confirmados e o fundador te veem aqui. Para todos os outros, você aparece como um “membro oculto” anônimo. Observação: isto é privacidade no nível do app — sua tag de membro ainda existe publicamente nos relays, só nunca é mostrada a quem está fora.",
|
||
},
|
||
},
|
||
tagCategory: {
|
||
features: {
|
||
name: "Recursos",
|
||
description: "Obstáculos e terreno",
|
||
},
|
||
surfaces: {
|
||
name: "Superfícies",
|
||
description: "Materiais e texturas",
|
||
},
|
||
sizes: {
|
||
name: "Tamanhos",
|
||
description: "Dimensões e escala",
|
||
},
|
||
stairs: {
|
||
name: "Número de escadas",
|
||
description: "Quantidade de degraus",
|
||
},
|
||
vibes: {
|
||
name: "Vibes",
|
||
description: "Atmosfera e condição",
|
||
},
|
||
location: {
|
||
name: "Localização",
|
||
description: "Contexto do local",
|
||
},
|
||
tricks: {
|
||
name: "Tricks",
|
||
description: "Bom para tricks específicas",
|
||
},
|
||
},
|
||
spotTagCategory: {
|
||
street: {
|
||
label: "Street",
|
||
description: "Spots de rua - escadas, rails, ledges",
|
||
},
|
||
park: {
|
||
label: "Park",
|
||
description: "Skateparks - públicos ou privados",
|
||
},
|
||
diy: {
|
||
label: "DIY",
|
||
description: "Spots DIY/feitos em casa",
|
||
},
|
||
plaza: {
|
||
label: "Plaza",
|
||
description: "Praças públicas com arquitetura amigável ao skate",
|
||
},
|
||
},
|
||
status: {
|
||
active: {
|
||
label: "Ativo",
|
||
description: "Tudo certo — vai lá andar.",
|
||
},
|
||
bust: {
|
||
label: "Bust",
|
||
description: "Alto risco de expulsão — segurança ou polícia.",
|
||
},
|
||
skate_stopped: {
|
||
label: "Skate-stopped",
|
||
description: "Com pinos / tampado, mas parcialmente andável.",
|
||
},
|
||
closed: {
|
||
label: "Fechado",
|
||
description: "Fechado temporariamente — obra ou evento.",
|
||
},
|
||
gone: {
|
||
label: "Acabou",
|
||
description: "Demolido, pavimentado ou cercado de vez.",
|
||
},
|
||
},
|
||
price: {
|
||
free: "GRÁTIS",
|
||
trade: "Troca",
|
||
makeOffer: "Aceito ofertas",
|
||
offer: "Oferta",
|
||
},
|
||
},
|
||
feesUi: {
|
||
feeFeaturedEventLabel: "Evento em destaque",
|
||
feeFeaturedEventDesc: "Destaque seu evento no SkateSpots",
|
||
feeFeaturedEventBenefit: "Seu evento aparece no topo da página de eventos",
|
||
feeLabProfileLabel: "Perfil Lab Pro",
|
||
feeLabProfileDesc: "Destaque seus serviços no The Lab",
|
||
feeLabProfileBenefit: "Selo Pro + posição em destaque quando os skatistas navegam pelo The Lab",
|
||
feeFeaturedShopLabel: "Loja em destaque",
|
||
feeFeaturedShopDesc: "Destaque sua skate shop no mapa e no diretório",
|
||
feeFeaturedShopBenefit: "Selo verificado + pino em destaque no mapa",
|
||
feeFeaturedTourLabel: "Tour em destaque",
|
||
feeFeaturedTourDesc: "Destaque seu tour no SkateSpots",
|
||
feeFeaturedTourBenefit: "Selo Pro + posição no topo quando os skatistas navegam pelos tours",
|
||
duration7d: "7 dias",
|
||
duration30d: "1 mês",
|
||
duration90d: "3 meses",
|
||
duration365d: "12 meses",
|
||
metaActive: "{{label}} — Ativo",
|
||
daysRemainingOne: "{{count}} dia restante",
|
||
daysRemainingMany: "{{count}} dias restantes",
|
||
zapRequestContent: "SkateSpots {{label}} ({{tier}})",
|
||
errGenerate: "Falha ao gerar a fatura",
|
||
paymentReceived: "⚡ Pagamento recebido!",
|
||
paymentReceivedDesc: "{{amount}} sats — {{label}} está ativo agora.",
|
||
autoPayFailed: "Falha no pagamento automático",
|
||
autoPayFailedDesc: "Pague manualmente usando o QR ou a fatura abaixo.",
|
||
payStatusUnknown: "Status do pagamento desconhecido — o pagamento pode ter passado. Verifique sua carteira antes de pagar de novo.",
|
||
invoiceCopied: "Fatura copiada!",
|
||
activeBang: "{{label}} Ativo!",
|
||
chooseDuration: "Escolha a duração",
|
||
bestValue: "Melhor custo-benefício",
|
||
perDay: "{{price}}/dia",
|
||
validFor: "Válido por",
|
||
amountLine: "~${{usd}} USD · para {{name}} · {{tier}}",
|
||
payToContinue: "Pague {{amount}} sats para continuar",
|
||
generating: "Gerando fatura…",
|
||
processing: "Processando pagamento…",
|
||
invoiceQrAlt: "QR da fatura Lightning",
|
||
copyInvoice: "Copiar fatura",
|
||
openWallet: "Abrir carteira",
|
||
payConnected: "Pagar com carteira conectada",
|
||
scanAny: "Escaneie com qualquer carteira Lightning",
|
||
tryAgain: "Tentar novamente",
|
||
proReceiptTitle: "🦧⚡ Sasquatch Pro — você entrou!",
|
||
proReceiptPass: "Passe: {{pass}} ({{sats}} sats)",
|
||
proReceiptActiveUntil: "Ativo até: {{until}}",
|
||
proReceiptUnlocked: "O que você desbloqueou:",
|
||
proReceiptBullet1: "• Assistente pessoal — eu leio seu Stash, crews, spots e anúncios",
|
||
proReceiptBullet2: "• Rascunhos de ações — anunciar equipamentos, postar status de spot, planejar viagens (você confirma)",
|
||
proReceiptBullet3: "• Respostas que usam seu contexto pessoal, não apenas dados públicos",
|
||
proReceiptBullet4: "• ⚡ Você apoia diretamente o SkateSpots e o mantém gratuito e sem anúncios",
|
||
proReceiptThanks: "Obrigado por manter o SkateSpots gratuito e sem anúncios. Agora vai andar. 🛹",
|
||
proReceiptSubject: "Recibo do Sasquatch Pro",
|
||
receiptContent: "Sasquatch Pro — passe de apoiador {{tier}} 🦧⚡",
|
||
receiptAlt: "Passe de apoiador Sasquatch Pro ({{tier}}), válido até {{until}}",
|
||
purchaseComment: "Sasquatch Pro — {{tier}} 🦧",
|
||
errLogin: "Entre para fazer upgrade para o Pro.",
|
||
errStart: "Não foi possível iniciar a compra.",
|
||
errRecord: "Não foi possível registrar seu passe.",
|
||
},
|
||
cardUi: {
|
||
save: "Salvar cartão no Nostr",
|
||
saved: "Cartão salvo",
|
||
savedDesc: "Seu cartão agora está assinado e verificável.",
|
||
saveFailed: "Não foi possível salvar o cartão",
|
||
notPublished: "Não publicado",
|
||
titleNeon: "Rider",
|
||
titleRest: "Card",
|
||
saveFrontPng: "Salvar frente (PNG)",
|
||
expired: "EXPIRADO",
|
||
logoUploaded: "Logo enviado",
|
||
logoUploadFailed: "Não foi possível enviar o logo",
|
||
venue: "Local vinculado (opcional)",
|
||
venueNone: "Sem local",
|
||
venueHint: "Escolha um dos seus próprios spots para vincular este passe a um local. Um verificador confirmará que você é o dono.",
|
||
venuePick: "Escolha seu local",
|
||
parkNoVenue: "Um passe de Park só pode ser emitido pelo dono do local — mapeie um spot que você possui primeiro.",
|
||
parkAddVenue: "Adicionar um spot",
|
||
parkNeedsVenue: "Escolha um local que você possui",
|
||
parkIssued: "Passes emitidos",
|
||
parkRevoke: "Revogar",
|
||
parkRevoked: "Revogado",
|
||
parkRevokeFailed: "Não foi possível revogar",
|
||
v: {
|
||
valid: "Válido",
|
||
validDesc: "Assinatura válida e emitida pelo local.",
|
||
expired: "Expirado",
|
||
expiredDesc: "Passou da data de validade.",
|
||
revoked: "Revogado",
|
||
revokedDesc: "O emissor cancelou este passe — não aceite.",
|
||
invalid: "Inválido",
|
||
invalidDesc: "A assinatura não é verificada. Não confie nela.",
|
||
notFound: "Não encontrado",
|
||
notFoundDesc: "Nenhum registro correspondente nos relays.",
|
||
unverifiedIssuer: "Emissor não verificado",
|
||
unverifiedIssuerDesc: "Este passe nomeia um local que não pertence à chave do emissor.",
|
||
notBound: "Não vinculado",
|
||
notBoundDesc: "Não vinculado a um local — não prova nada sobre acesso.",
|
||
noRsvp: "Sem RSVP",
|
||
noRsvpDesc: "O titular não tem RSVP registrado para este evento.",
|
||
admitted: "Admitido",
|
||
admittedDesc: "Evento do organizador + o titular confirmou presença.",
|
||
noHolder: "Sem titular no link",
|
||
noHolderDesc: "Este QR não tem titular de ingresso (`?h=`), então o titular não pode ser verificado.",
|
||
},
|
||
passes: {
|
||
tab: "Meus passes",
|
||
pass: "Passe de acesso",
|
||
none: "Nenhum passe ainda. Quando um local ou organizador emitir um para você, ele aparece aqui.",
|
||
},
|
||
facets: {
|
||
title: "Mostrar facetas de identidade",
|
||
crews: "Crews",
|
||
local: "Local",
|
||
roles: "Funções no Lab",
|
||
},
|
||
roles: {
|
||
coach: "Coach",
|
||
filmer: "Filmer",
|
||
editor: "Editor",
|
||
photographer: "Fotógrafo",
|
||
builder: "Builder",
|
||
artist: "Artista",
|
||
graffiti: "Graffiti",
|
||
tattoo: "Tatuagem",
|
||
trainer: "Preparador",
|
||
musician: "Músico",
|
||
judge: "Jurado",
|
||
organizer: "Organizador",
|
||
barber: "Barbeiro",
|
||
},
|
||
crew: {
|
||
crewCard: "CARTÃO DA CREW",
|
||
crewSub: "Sua crew, em um cartão",
|
||
pick: "Escolha uma crew",
|
||
none: "Você ainda não está em uma crew — entre ou crie uma primeiro.",
|
||
hint: "O cartão é construído a partir dos dados assinados da própria crew. Edite a crew na página dela para alterá-lo.",
|
||
members: "MEMBROS",
|
||
spots: "SPOTS",
|
||
est: "Desde {{year}}",
|
||
openCall: "Vagas abertas",
|
||
verifiedCrew: "Crew verificada",
|
||
viewCrew: "Ver a crew",
|
||
},
|
||
event: {
|
||
pass: "PASSE DO EVENTO",
|
||
passSub: "Um passe para um evento ao qual você vai",
|
||
pick: "Escolha um evento",
|
||
none: "Nenhum evento ainda — crie um, ou confirme presença em um, primeiro.",
|
||
hint: "O passe é construído a partir dos dados assinados do próprio evento. Apenas o organizador pode alterá-lo.",
|
||
admits: "ADMITE",
|
||
going: "{{count}} vão",
|
||
verifiedEvent: "Evento verificado",
|
||
viewEvent: "Ver o evento",
|
||
issuePass: "Emitir um passe de check-in",
|
||
issuePassBtn: "Emitir passe",
|
||
issuePassHint: "Um passe assinado para um participante específico — ele mostra na porta.",
|
||
notOrganiser: "Apenas o organizador pode emitir passes",
|
||
passIssued: "Passe emitido",
|
||
issueFailed: "Não foi possível emitir o passe",
|
||
issuedPasses: "Passes de check-in emitidos",
|
||
},
|
||
studio: {
|
||
unsaved: "Alterações não salvas",
|
||
saved: "Salvo",
|
||
saveChanges: "Salvar alterações",
|
||
allSaved: "Salvo — tudo em dia",
|
||
showOnCard: "Mostrar no cartão",
|
||
derived: "Do seu perfil de Skater",
|
||
noSkaterProfile: "Ainda sem perfil de Skater —",
|
||
editSkaterProfile: "adicione seus estilos e nível",
|
||
noPhoto: "Ainda sem foto de perfil —",
|
||
addPhoto: "adicione uma no seu perfil",
|
||
finishTitle: "Termine seu cartão",
|
||
finishDesc: "Uma foto e um perfil de Skater fazem ele parecer real.",
|
||
checkPhoto: "Foto de perfil",
|
||
checkName: "Nome de exibição",
|
||
checkProfile: "Estilos e nível",
|
||
checkCrew: "Entre em uma crew",
|
||
moreTypes: "Mais tipos de cartão são desbloqueados conforme você mapeia spots que possui, entra em crews ou confirma presença em eventos.",
|
||
accent: "Cor de destaque",
|
||
accentHint: "Substitui a cor de destaque do tema",
|
||
accentClear: "Usar a cor do tema",
|
||
logo: "Logo / brasão personalizado",
|
||
logoAdd: "Enviar",
|
||
logoChange: "Alterar",
|
||
logoClear: "Remover",
|
||
},
|
||
back: {
|
||
title: "Verso imprimível",
|
||
desc: "Crews, funções, patrocinadores e links no verso",
|
||
showBack: "Mostrar verso",
|
||
showFront: "Mostrar frente",
|
||
empty: "Nada aqui ainda — adicione crews, funções ou patrocinadores.",
|
||
},
|
||
verify: {
|
||
checking: "Verificando o cartão…",
|
||
notFound: "Cartão não encontrado",
|
||
notFoundDesc: "Nenhum evento correspondente foi encontrado nos relays. Ele pode ter sido excluído, ou o link está errado.",
|
||
invalid: "Assinatura inválida",
|
||
invalidDesc: "Este evento existe, mas sua assinatura não é verificada. Não confie nele.",
|
||
authentic: "Autêntico",
|
||
authenticDesc: "A assinatura do emissor é válida.",
|
||
kind: "Tipo",
|
||
kindPark: "Cartão de acesso ao Park",
|
||
kindRider: "Cartão do Rider",
|
||
kindCrew: "Cartão da Crew",
|
||
kindEvent: "Passe de evento",
|
||
organiser: "Organizador",
|
||
expired: "Expirado",
|
||
valid: "Válido",
|
||
holder: "Titular",
|
||
ticketHolder: "Titular do ingresso",
|
||
rsvp: "RSVP",
|
||
rsvpGoing: "Vou",
|
||
rsvpInterested: "Interessado",
|
||
rsvpNone: "Nenhum RSVP encontrado",
|
||
revoked: "Passe revogado",
|
||
revokedDesc: "O emissor cancelou este passe — não aceite.",
|
||
issuedBy: "Emitido por",
|
||
accessLevel: "Nível de acesso",
|
||
validThru: "Válido até",
|
||
selfIssued: "Status",
|
||
selfIssuedDesc: "Cartão de identidade autoemitido",
|
||
venue: "Local",
|
||
venueVerified: "Verificado — a chave do dono do local corresponde ao emissor.",
|
||
venueMismatch: "Este passe nomeia um local que não pertence à chave do emissor.",
|
||
venueNone: "Não vinculado a um local.",
|
||
viewCard: "Ver o cartão",
|
||
disclaimer: "Uma assinatura válida prova quem assinou este cartão — não é prova de habilidade nem de direitos de acesso além do que o local emitiu.",
|
||
details: "Detalhes",
|
||
invalidLink: "Link inválido",
|
||
invalidLinkDesc: "Isso não parece ser um link de cartão válido.",
|
||
},
|
||
public: {
|
||
invalid: "Isso não parece ser um link de cartão válido.",
|
||
createYourOwn: "Crie seu próprio cartão",
|
||
editYourCard: "Edite seu cartão",
|
||
backToEditor: "Voltar ao editor",
|
||
backHome: "Voltar ao início",
|
||
notCustomised: "Este skatista ainda não personalizou o cartão — esta é a aparência padrão.",
|
||
verifyNote: "Escaneie o QR no cartão para verificá-lo.",
|
||
},
|
||
},
|
||
routeUi: {
|
||
destination: "Destino",
|
||
routeTo: "Rota até {{label}}",
|
||
routeToLabel: "Rota até",
|
||
search: "Buscar",
|
||
description: "Opções de rota e direções no app.",
|
||
routeMapAria: "Mapa da rota",
|
||
findingLocation: "Encontrando sua localização…",
|
||
plottingRoute: "Traçando sua rota…",
|
||
refiningLocation: "Refinando localização…",
|
||
offlineSavedRoute: "Offline · rota salva {{age}}",
|
||
tapMapStart: "Toque no mapa para definir seu ponto de partida",
|
||
fitRouteAria: "Ajustar a rota inteira no mapa",
|
||
wholeRoute: "Rota inteira",
|
||
next: "Próximo",
|
||
nextStep: "Próximo · passo {{n}}",
|
||
followTheLine: "Siga a linha",
|
||
toTheTurn: "até a curva",
|
||
toGo: "a percorrer",
|
||
tryAgain: "Tentar novamente",
|
||
mode: {
|
||
foot: "Skate / A pé",
|
||
bike: "Bicicleta",
|
||
moto: "Moto",
|
||
car: "Carro",
|
||
transit: "Transporte público",
|
||
},
|
||
from: "De",
|
||
myLocation: "Minha localização",
|
||
tapTheMap: "Toque no mapa…",
|
||
chooseOnMap: "Escolher no mapa",
|
||
direct: "direto",
|
||
transferOne: "1 baldeação",
|
||
transfers: "{{count}} baldeações",
|
||
options: "{{count}} opções",
|
||
ride: "andar",
|
||
arrive: "chegar",
|
||
speedAvg: "{{speed}} km/h média",
|
||
stepsCount: "{{count}} passos",
|
||
onABoard: "de skate",
|
||
usesDrivingRoads: "usa vias para carros",
|
||
drivingEstimate: "estimativa para carro",
|
||
updating: "atualizando…",
|
||
pickMode: "Escolha um modo para ver sua rota.",
|
||
waitingLocation: "Aguardando sua localização…",
|
||
routeSteps: "Passos da rota",
|
||
walkingRoute: "rota a pé — mais rápida de skate",
|
||
planningView: "Modo de planejamento — toque em Iniciar para seguir com curvas ao vivo, voz e chegada.",
|
||
leaveNow: "Sair agora",
|
||
departAt: "Partir às",
|
||
arriveBy: "Chegar até",
|
||
departureTime: "Horário de partida",
|
||
arrivalTime: "Horário de chegada",
|
||
only: "Somente",
|
||
clear: "limpar",
|
||
itinerary: "Itinerário",
|
||
group: {
|
||
bus: "Ônibus",
|
||
tram: "Bonde",
|
||
metro: "Metrô",
|
||
train: "Trem",
|
||
ferry: "Balsa",
|
||
},
|
||
walk: "A pé",
|
||
rideVerb: "Andar",
|
||
walkLower: "a pé",
|
||
rideLower: "andar",
|
||
toStop: "até",
|
||
track: "plataforma {{track}}",
|
||
stopOne: "1 parada",
|
||
stopsCount: "{{count}} paradas",
|
||
tickets: "ingressos ↗",
|
||
done: "Concluir",
|
||
stop: "Parar",
|
||
start: "Iniciar",
|
||
arrived: "Você chegou. 🛹",
|
||
voiceOnNote: "A tela fica ligada · voz ativada — as curvas e a chegada são faladas.",
|
||
voiceOffNote: "A tela fica ligada · voz desativada.",
|
||
followNote: "Curvas, voz e chegada enquanto você anda. Mantém a tela ligada.",
|
||
voiceOffAria: "Desativar a orientação por voz",
|
||
voiceOnAria: "Ativar a orientação por voz",
|
||
voiceStart: "Iniciando a navegação",
|
||
voiceArrived: "Você chegou",
|
||
voiceIn: "Em {{metres}} metros, {{instruction}}",
|
||
voiceContinue: "continue",
|
||
voiceContinueCaps: "Continue",
|
||
errPermissionDenied: "Permissão de localização negada.",
|
||
errWaitingGps: "Aguardando um sinal de GPS…",
|
||
errPermissionDeniedLong: "Permissão de localização negada. Ative a localização para traçar a rota de onde você está.",
|
||
errNoLocation: "Não foi possível obter sua localização. Tente novamente.",
|
||
errNoLocationShort: "Não foi possível obter sua localização.",
|
||
errTransitNoRouteFiltered: "Nenhuma rota para esse horário ou modo de transporte — tente outro horário, ou inclua mais modos.",
|
||
errTransitNoRoute: "Nenhuma rota de transporte público encontrada aqui — esta área pode não publicar horários abertos.",
|
||
errTransitUnreachable: "Não foi possível alcançar o serviço de transporte público. Verifique sua conexão e tente novamente.",
|
||
errRoutingBusy: "O serviço de rotas está sobrecarregado agora — tente novamente em um instante.",
|
||
errNoRouteMode: "Nenhuma rota para este modo — o destino pode estar fora da malha viária. Tente outro modo.",
|
||
errRoutingUnreachable: "Não foi possível alcançar o serviço de rotas. Verifique sua conexão e tente novamente.",
|
||
departures: "Partidas",
|
||
upcomingFrom: "Próximas partidas de {{stop}}",
|
||
loadingDepartures: "Carregando partidas…",
|
||
noDepartures: "Nenhuma partida próxima encontrada nesta parada.",
|
||
live: "ao vivo",
|
||
cancelled: "cancelado",
|
||
refresh: "Atualizar",
|
||
tripLoginTitle: "Entre para salvar",
|
||
tripLoginDesc: "Faça login para guardar esta viagem como uma Coleção.",
|
||
tripCollectionTitle: "Viagem de skate a {{destination}} 🛹",
|
||
tripCollectionDesc: "Plano de viagem do The Sasquatch — {{count}} dias em {{destination}}.",
|
||
tripCollectionDescOne: "Plano de viagem do The Sasquatch — {{count}} dia em {{destination}}.",
|
||
tripSavedTitle: "Salvo nas Coleções 🦧",
|
||
tripSavedDesc: "Sua viagem a {{destination}} está salva.",
|
||
tripSaveFailed: "Não foi possível salvar",
|
||
tripSaveFailedDesc: "Tente novamente em um segundo.",
|
||
daysInDestinationOne: "{{count}} dia em {{destination}}",
|
||
daysInDestination: "{{count}} dias em {{destination}}",
|
||
wetForecast: "Previsão de chuva — procure uma crew local para opções cobertas/indoor.",
|
||
dayLabel: "Dia {{n}}",
|
||
freeSkate: "Skate livre — explore e filme. 🎥",
|
||
tapToBook: "toque para agendar / zap ⚡",
|
||
localCrews: "Crews locais",
|
||
saving: "Salvando…",
|
||
savedToCollections: "Salvo nas Coleções",
|
||
saveSpotOne: "Salvar {{count}} spot em uma Coleção",
|
||
saveSpots: "Salvar {{count}} spots em uma Coleção",
|
||
flights: "Voos",
|
||
stays: "Hospedagem",
|
||
gettingAround: "Como se locomover",
|
||
noMiddleman: "Eu planejo o skate — voos e hospedagem abrem nos sites reais (sem KYC, sem intermediário).",
|
||
ageJustNow: "agora mesmo",
|
||
ageMinAgo: "há {{count}} min",
|
||
ageHourAgo: "há {{count}} h",
|
||
ageDayAgo: "há {{count}} d",
|
||
skateRightHere: "bem aqui",
|
||
skateMin: "~{{count}} min de rolê",
|
||
skateHours: "~{{hours}} h de rolê",
|
||
maneuver: {
|
||
headOut: "Saia",
|
||
arrive: "Chegue ao spot",
|
||
continueStraight: "Continue",
|
||
bearLeft: "Incline à esquerda",
|
||
bearRight: "Incline à direita",
|
||
turnLeft: "Vire à esquerda",
|
||
turnRight: "Vire à direita",
|
||
sharpLeft: "Curva acentuada à esquerda",
|
||
sharpRight: "Curva acentuada à direita",
|
||
turn: "Vire",
|
||
keepLeft: "Mantenha-se à esquerda",
|
||
keepRight: "Mantenha-se à direita",
|
||
takeFork: "Pegue a bifurcação",
|
||
merge: "Entre na via",
|
||
roundabout: "Pegue a rotatória",
|
||
takeRamp: "Pegue o acesso",
|
||
takeExit: "Pegue a saída",
|
||
},
|
||
maneuverOnto: "{{instruction}} na {{road}}",
|
||
},
|
||
sasquatchUi: {
|
||
live: "ao vivo",
|
||
offline: "offline",
|
||
genericTitle: "Assistente SkateSpots 🦧",
|
||
genericGreeting: "E aí! Sou o The Sasquatch. Pergunte qualquer coisa sobre spots, eventos, coaches, equipamentos, ou como o app funciona. Tenho dados ao vivo do relay do SkateSpots!",
|
||
q1: "Planeje 3 dias em Lisboa",
|
||
q2: "Encontre spots perto de mim",
|
||
q3: "Algum evento chegando?",
|
||
q4: "O que são crews?",
|
||
q5: "Como funcionam os zaps?",
|
||
q6: "O que é Nostr?",
|
||
q7: "O que é Meu Stash?",
|
||
q8: "Isso é gratuito?",
|
||
bubbleTitle: "Pressione e arraste para mover · Toque para abrir",
|
||
openGuideAria: "Abrir o guia do Sasquatch",
|
||
hideAria: "Ocultar o assistente Sasquatch",
|
||
hide: "Ocultar assistente",
|
||
showAria: "Mostrar o assistente Sasquatch",
|
||
activeUntil: "Ativo até {{date}}",
|
||
platformOwner: "Dono da plataforma",
|
||
upgradeTitle: "Faça upgrade para o Sasquatch Pro",
|
||
goPro: "Seja Pro",
|
||
goProBlurb: "IA pessoal · a partir de 2k sats",
|
||
aiBalanceTitle: "Saldo de créditos do Sasquatch AI (somente dono) — recarregue em {{provider}}",
|
||
aiChip: "⚡ IA {{balance}}",
|
||
minimizeToBubbleAria: "Minimizar para o balão",
|
||
minimize: "Minimizar",
|
||
closePanelAria: "Fechar painel",
|
||
close: "Fechar",
|
||
askLab: "Pergunte sobre Coaching e Filmagem",
|
||
askMap: "Pergunte sobre Spots, Lojas e Equipamentos",
|
||
askAnything: "Pergunte qualquer coisa 🛹",
|
||
quickQuestions: "Perguntas rápidas:",
|
||
you: "🧑 Você",
|
||
thinking: "pensando...",
|
||
inputPlaceholder: "Pergunte sobre spots, eventos, coaches...",
|
||
liveDataFrom: "Dados ao vivo de",
|
||
nostrRelays: "relays Nostr",
|
||
clear: "limpar",
|
||
gettingLocation: "📍 Obtendo sua localização…",
|
||
findingClosest: "🔍 Encontrando os spots mais próximos…",
|
||
checkingLive: "🔍 Verificando dados ao vivo…",
|
||
planningTrip: "🗺️ Planejando sua viagem a {{destination}}...",
|
||
searchingRelays: "🔍 Buscando nos relays por {{tool}}...",
|
||
perk1: "Assistente pessoal — o Sasquatch lê seu próprio Stash, crews, spots e anúncios",
|
||
perk2: "Rascunhos de ações: anunciar equipamentos, postar um status de skate, planejar uma viagem — você confirma antes de publicar qualquer coisa",
|
||
perk3: "As respostas usam seu contexto pessoal, não apenas dados públicos",
|
||
perk4: "⚡ Apoie diretamente o SkateSpots e o mantenha gratuito e sem anúncios",
|
||
welcomeTitle: "Obrigado por apoiar o Sasquatch Pro! 🦧⚡",
|
||
welcomeDesc: "Pagamento enviado — seu passe ativa quando o provedor confirmar (normalmente em um minuto). Obrigado por manter as ruas livres.",
|
||
invoiceCopied: "Fatura copiada",
|
||
dialogDesc: "Potencialize seu guia de skate com IA. 100% financia um app comunitário gratuito e sem anúncios.",
|
||
proSupporter: "Você é um apoiador Pro ⚡",
|
||
extendPrompt: "Quer estender? Escolha um plano abaixo para adicionar mais tempo.",
|
||
scanToPayPre: "Escaneie para pagar",
|
||
scanToPayAmount: "{{sats}} sats",
|
||
scanToPayPost: "por {{label}} de Pro",
|
||
invoiceQrAlt: "QR da fatura Lightning",
|
||
copyInvoice: "Copiar fatura",
|
||
ivePaid: "Já paguei",
|
||
ivePaidHint: "Toque em \"Já paguei\" depois que sua carteira confirmar — isso registra seu passe na sua identidade Nostr.",
|
||
freeStaysPre: "O Sasquatch grátis continua grátis — busca pública de spots/eventos/coaches, planejamento de viagens + o glossário completo de tricks. O Pro adiciona a camada ",
|
||
freeStaysEmphasis: "pessoal + de ações",
|
||
freeStaysPost: ".",
|
||
loginFirst: "Faça login primeiro para fazer upgrade.",
|
||
paysTo: "Paga para",
|
||
overLightning: "via Lightning. Vinculado ao seu npub.",
|
||
popular: "Popular",
|
||
sats: "sats",
|
||
extend: "Estender",
|
||
done: "Pronto!",
|
||
cancelledNothing: "Cancelado — nada foi publicado.",
|
||
draftReview: "Rascunho — revise e confirme",
|
||
statusTextPlaceholder: "Texto do status",
|
||
titlePlaceholder: "Título",
|
||
priceSatsPlaceholder: "Preço (sats)",
|
||
conditionPlaceholder: "Condição",
|
||
cancel: "Cancelar",
|
||
aiTitle: "Sasquatch AI",
|
||
owner: "Dono",
|
||
notConfigured: "não configurado",
|
||
unavailable: "indisponível",
|
||
satsValue: "{{balance}} sats",
|
||
theNode: "o nó",
|
||
lowBalance: "Acabando — recarregue em {{provider}} ou a IA vai usar o provedor sem chave.",
|
||
aiDesc: "IA paga por requisição, financiada em sats via Routstr. Recarrega quando está baixo.",
|
||
tier7d: "7 dias",
|
||
tier1m: "1 mês",
|
||
tier3m: "3 meses",
|
||
tier1y: "1 ano",
|
||
badgeTry: "Experimente",
|
||
badgeOff20: "20% off",
|
||
badgeBest: "Melhor custo-benefício · 40% off",
|
||
draftPostStatusTitle: "Postar um status de skate",
|
||
draftAutoExpires: "Expira automaticamente em {{count}} min",
|
||
draftPostStatusCta: "Postar status",
|
||
draftCategory: "Categoria: {{value}}",
|
||
draftSize: "Tamanho: {{value}}",
|
||
draftCondition: "Condição: {{value}}",
|
||
draftMaxPrice: "Preço máx.: {{price}} {{currency}}",
|
||
draftPriceOpen: "Preço: em aberto",
|
||
draftLookingForTitle: "Procurando \"{{title}}\"",
|
||
draftWantedCta: "Postar anúncio de procura",
|
||
draftPrice: "Preço: {{price}} {{currency}}",
|
||
draftPriceOffer: "Preço: aceito ofertas",
|
||
draftListTitle: "Anunciar \"{{title}}\" para venda",
|
||
draftPublishCta: "Publicar anúncio",
|
||
statusPosted: "Status postado 🛹",
|
||
wantedPublished: "Anúncio de procura publicado 🔎",
|
||
listingPublished: "Anúncio publicado 💸",
|
||
mustBeLoggedIn: "Você precisa estar logado.",
|
||
},
|
||
sasquatchChat: {
|
||
faq: {
|
||
hi: "E aí! Sou o The Sasquatch 🦧 Seu guia de skate com IA. Pergunte sobre spots, eventos, coaches, equipamentos — ou qualquer coisa sobre o app. Do que você precisa?",
|
||
hello: "E aí! 🛹 Sou o The Sasquatch. Pergunte sobre spots de skate, eventos, coaches, ou como o app funciona. Qual é a boa?",
|
||
hey: "E aí, skatista! 🤙 Pergunte sobre spots perto de você, eventos chegando, coaches, ou qualquer coisa do SkateSpots.",
|
||
whoAreYou: "Sou o The Sasquatch 🦧 — o guia de IA do SkateSpots. Consigo encontrar spots de skate no mundo todo, procurar eventos, coaches, filmers e anúncios de equipamentos. Tudo com dados ao vivo do Nostr. Manda ver!",
|
||
whatCanYouDo: "Consigo encontrar spots de skate por cidade ou país, procurar eventos chegando, encontrar coaches e filmers no The Lab, buscar anúncios de equipamentos e responder perguntas sobre como o app funciona. Tente: 'spots em Bangkok' ou 'encontre um coach'! 🛹",
|
||
whatIsNostr: "Nostr é um protocolo simples e aberto para redes sociais descentralizadas. Pense no Twitter, mas sem uma única empresa controlando — você usa chaves criptográficas em vez de nomes de usuário, escolhe quais relays guardam seus dados (ou roda os seus), e uma conta funciona em todo app Nostr! 🔑",
|
||
isThisPrivate: "Aqui vai a real 🛡️\n\n• Sua **localização de GPS fica no seu dispositivo** — o 'Perto de mim' só centraliza o mapa. Nunca é enviada para nós nem publicada.\n• **Spots que você adiciona são públicos** (esse é o ponto de um mapa compartilhado) — então não coloque um pino na porta da sua casa.\n• **DMs e chats de crew são criptografados de ponta a ponta** — só os membros conseguem ler.\n• Como qualquer site, os servidores que você acessa (tiles do mapa, relays) podem ver seu **IP**. Quer esconder isso também? Use uma VPN ou Tor.\n\nDetalhes completos na [Privacy page](/privacy). 🛹",
|
||
privacy: "Versão rápida 🛡️: seu GPS nunca sai do seu dispositivo, os spots que você publica são públicos por design, e DMs/chats de crew são criptografados de ponta a ponta. Os servidores ainda podem ver seu IP (normal em qualquer site) — uma VPN ou Tor esconde isso se você quiser. Análise completa na [Privacy page](/privacy).",
|
||
amITracked: "O SkateSpots não te rastreia — sem anúncios, sem perfilamento por analytics, sem venda de dados, e não há um servidor SkateSpots coletando sua localização. Seu GPS fica no seu dispositivo. A única coisa que os servidores veem (tiles do mapa, relays) é seu **IP** — igual a qualquer site. Use uma VPN ou Tor para esconder isso. Mais na [Privacy page](/privacy). 🛡️",
|
||
doYouTrack: "Não — sem rastreamento, sem anúncios, sem coleta de dados. Seu GPS fica no seu dispositivo e não há servidor central te registrando. Os servidores que você acessa podem ver seu IP (como qualquer site); uma VPN/Tor esconde isso. Veja a [Privacy page](/privacy). 🛹",
|
||
vpn: "Totalmente opcional, mas ótimo se você quer privacidade extra 🛡️. Uma VPN esconde seu **IP** (localização aproximada) dos servidores com quem o SkateSpots fala — tiles do mapa, relays, etc. Escolha um provedor sem logs em que você confie (ex.: Mullvad); evite os grátis duvidosos.\n\nAviso: uma VPN **não** esconde os spots que você publica (eles são públicos), e não ligue o GPS do navegador se está tentando ficar anônimo. Detalhes completos na [Privacy page](/privacy).",
|
||
tor: "O Tor Browser te dá a privacidade de IP mais forte — ele te roteia por vários relays para que os servidores não vejam seu IP real 🧅. Custo: é mais lento, e mapas + alguns relays Nostr podem travar ou bloquear saídas Tor. Ótimo para os mais cautelosos.\n\nLembre-se: o Tor esconde seu IP, não os spots que você publica, e não ative o GPS do navegador se o objetivo é anonimato. Mais na [Privacy page](/privacy).",
|
||
hideMyIp: "Duas opções gratuitas 🛡️: uma **VPN confiável** (fácil, rápida — esconde seu IP atrás dos servidores dela) ou o **Tor Browser** (privacidade máxima, mais lento). Qualquer uma impede que os servidores que o SkateSpots acessa vejam seu IP real. Obs.: elas não escondem os spots que você publica. Veja a [Privacy page](/privacy).",
|
||
isMyLocation: "Sua localização está segura 📍 — o 'Perto de mim' lê seu GPS só no seu dispositivo, para centralizar o mapa e ordenar spots próximos. Nunca é publicada no Nostr, nunca é enviada para nós, nunca é compartilhada. Só os spots que você adiciona de propósito são públicos. Detalhes na [Privacy page](/privacy).",
|
||
whatAreZaps: "Zaps são gorjetas instantâneas de Bitcoin via Lightning enviadas pelo Nostr! Clique no ⚡ em qualquer conteúdo e envie sats direto para a carteira do criador. Como dar 'like' mas com dinheiro de verdade. Instantâneo, ponto a ponto, sem intermediários. ⚡",
|
||
howToLogin: "Dois jeitos:\n1. **Extensão de navegador** (Desktop): instale Alby ou nos2x, depois clique em 'Entrar'\n2. **Novo usuário**: clique em 'Cadastre-se' para gerar chaves. Baixe seu nsec (chave secreta) e SALVE — esta é sua conta para sempre!",
|
||
whatIsCashu: "Carteira Bitcoin integrada! Tokens de ecash Cashu respaldados por Lightning — funciona offline nos spots, focada em privacidade (as mints não conseguem rastrear pagamentos). Vá em Carteira nas Configurações para usar. 🥜",
|
||
whatIsNwc: "Nostr Wallet Connect — tipo um USB-C para carteiras Lightning. Conecte Alby, Minibits, Zeus ou Coinos uma vez e dê zap com um clique para sempre. Criptografado, você controla os limites de gasto. 🔌⚡",
|
||
isItFree: "100% gratuito. Sem anúncios, sem assinaturas, sem enrolação corporativa. Feito por skatistas para skatistas. Financiado pela comunidade via Angor — confira a página de Apoiadores. Você também pode ganhar Bitcoin com zaps da comunidade por contribuir com spots de qualidade. 🛹",
|
||
whatCanIDo: "Descubra spots no mundo todo no mapa, contrate profissionais no The Lab (coaches, filmers, fotógrafos, editores, builders de rampa), ande com uma crew, participe de eventos, faça tours, compre/venda equipamentos, acompanhe seu Stash privado, dê zap em criadores, confira o clima dos spots e construa a comunidade de skate descentralizada!",
|
||
whatIsTheLab: "O The Lab é onde você contrata profissionais da cena do skate: Coaches, Filmers, Fotógrafos, Editores de Vídeo e Builders de rampa/park/DIY. Cada um pode ser uma pessoa solo ou um coletivo (crew/estúdio) — os membros confirmam com suas próprias chaves, então é legítimo. Tudo no Nostr, sem contas falsas. 🎓",
|
||
whatIsACrew: "Crews são sua família do skate ancorada no mapa — com quem você anda, não quem você contrata. Cada crew tem território no mapa (pinos verdes), spots da casa, membros, vibes e um manifesto. Os membros confirmam com a própria chave. Crie uma em Crews → 'Criar crew'. 🤘",
|
||
whatAreCrews: "Crews são sua família do skate ancorada no mapa — com quem você anda, não quem você contrata. Cada crew tem território no mapa (pinos verdes), spots da casa, membros e um manifesto. Os membros confirmam com a própria chave. Vá até a aba Crews para começar ou entrar em uma! 🤘",
|
||
howToStartACrew: "Vá até a aba Crews → 'Criar crew'. Dê um nome, coloque seu território no mapa, adicione vibes (ou sua própria #hashtag), vincule seus spots da casa e adicione membros por npub. Cada membro confirma com a própria chave, então o elenco é legítimo. 🤘",
|
||
whatIsMyStash: "Meu Stash é seu armário de equipamentos PRIVADO e criptografado (criptografia NIP-44). Acompanhe seus decks, trucks, wheels, tênis — com local de armazenamento, condição, raridade e preço. Só VOCÊ consegue ler, a menos que marque itens como públicos. Ótimo para seguro ou para planejar uma troca. 🎒",
|
||
whatIsStash: "Meu Stash é seu inventário de equipamentos PRIVADO e criptografado. Registre tudo o que você tem — condição, onde está guardado, valor — tudo criptografado para que só você veja. Marque itens como públicos se quiser vender ou mostrar. 🎒",
|
||
whatIsABuilder: "Builders são crews de rampa/park/DIY no The Lab que você pode contratar para construir transições, bowls, rails ou um park inteiro. Eles listam o que constroem, materiais, escala do projeto, e podem ter licença/seguro. Muitas vezes coletivos — e podem vincular os spots que construíram ao mapa. 🏗️",
|
||
whatIsANutzap: "Nutzaps (NIP-61) são gorjetas de ecash enviadas pelo Nostr — tokens Cashu privados enviados direto para alguém. Você pode configurar o RECEBIMENTO de nutzaps na Carteira. (Enviar nutzaps completos está chegando — por enquanto, use zaps Lightning.) 🥜⚡",
|
||
whatIsClink: "CLINK é um código de pagamento nativo do Nostr (um 'noffer'). Lojas, crews e profissionais do Lab podem adicionar um para que você possa pagá-los sem precisar de um endereço Lightning — você verá um botão 'Pagar via CLINK' com um QR. Escaneie com uma carteira CLINK como a ShockWallet. 🔗⚡ [specs](https://clinkme.dev/specs.html) [apps](https://clinkme.dev/apps.html)",
|
||
whatIsNoffer: "Um noffer é um código de pagamento CLINK — uma forma reutilizável e nativa do Nostr de receber pagamentos sem servidor web nem endereço Lightning. Adicione o seu no perfil da sua loja/crew/Lab e as pessoas podem te pagar direto. 🔗",
|
||
whatAreTours: "Tours são viagens de skate guiadas — sessões locais, road trips nacionais ou tours de destruição mundial. Encontre no mapa ou na seção Tours, encontre a galera e ande em terreno novo com os locais. 🗺️🛹",
|
||
whatIsAShop: "Skate Shops são lojas locais listadas no mapa. Descubra e apoie skate shops de verdade (físicas ou online) na sua área — algumas até aceitam Bitcoin. 🏪",
|
||
howToSellGear: "Vá em Troca de Equipamentos / Marketplace e crie um anúncio (NIP-99). Adicione fotos, preço em sats, condição, e opcionalmente vincule a um spot para aparecer no mapa. Os compradores te dão zap ou mandam mensagem direto. 🛹💸",
|
||
supporters: "O SkateSpots é financiado pela comunidade via Angor (financiamento coletivo descentralizado em Bitcoin) — sem anúncios, sem investidores, sem venda de dados. Confira a página de Apoiadores para apoiar o projeto e manter as ruas livres. ❤️⚡",
|
||
trustScore: "Pontuações de confiança (0-100) fornecidas pelo Relatr. Analisa sua rede Nostr: seguidores, atividade, engajamento, zaps. Mais alto = mais confiável. Ajuda a filtrar bots e spam. Confira qualquer perfil para ver a pontuação. 🛡️",
|
||
whatRelay: "O SkateSpots usa: 🛹 relay.skate-spots.org (principal, na lista de permitidos pela qualidade) + relay.ditto.pub (global) + purplepag.es (agregador de perfis). Seus dados são replicados em todos eles para redundância.",
|
||
tripPlanner: "Me diga uma cidade e eu monto uma viagem de skate dia a dia 🗺️ — spots, eventos, coaches e crews locais, atenta ao clima (dia de chuva = dica de crew para spots cobertos). Tente 'planeje 3 dias em Lisboa'. Consigo salvar tudo numa Coleção e te encaminhar para voos/hospedagem nos sites reais (sem KYC, sem intermediário). 🛹",
|
||
planATrip: "Só diga 'planeje 3 dias em Barcelona' (ou qualquer cidade) e eu monto spots, sessões, coaches e crews locais para cada dia. Salve como uma Coleção e vai andar. 🗺️🛹",
|
||
sasquatchPro: "**Sasquatch Pro** 🦧⚡ é um passe de apoiador via Lightning que desbloqueia meu lado pessoal:\n\n• 🧠 **Assistente pessoal** — eu leio seu próprio Stash, crews, spots e anúncios\n• ✨ **Rascunhos de ações** — anunciar equipamentos, postar seu status de skate, planejar viagens (você sempre confirma antes de publicar)\n• 💬 **Contexto pessoal** — minhas respostas usam seus próprios dados, não só resultados públicos\n• ⚡ **Apoie o projeto** — você mantém o SkateSpots gratuito e sem anúncios\n\nO Sasquatch grátis continua grátis: busca pública de spots/eventos/coaches/crews, o glossário e o planejamento de viagens funcionam sem o Pro. O Pro só adiciona o lado *pessoal*. Toque em **⚡ Seja Pro** lá em cima. Planos: 7 dias ~2k sats, 1 mês ~5k, 3 meses ~12k, 1 ano ~36k.",
|
||
proPerks: "Vantagens do Pro 🦧⚡: assistente pessoal (lê seu Stash/crews/spots/anúncios), rascunhos de ações (anunciar equipamentos, postar status, planejar viagens — você confirma) e respostas que usam seu próprio contexto pessoal. Além disso, você apoia diretamente o SkateSpots e o mantém gratuito + sem anúncios. O grátis continua grátis — o Pro adiciona a camada pessoal. Toque em **⚡ Seja Pro** lá em cima.",
|
||
proVersion: "A versão Pro de mim 🦧⚡ adiciona um **assistente pessoal**: consigo ler seu próprio Stash, crews, spots e anúncios, rascunhar ações para você (anunciar equipamentos, postar um status, planejar uma viagem — você sempre confirma primeiro) e usar seu contexto pessoal nas respostas. Também apoia diretamente o projeto. O Sasquatch grátis (busca de spots/eventos/coaches/crews, glossário, planejador de viagens) continua grátis. Toque em **⚡ Seja Pro** lá em cima.",
|
||
perks: "Vantagens do Pro 🦧⚡: assistente pessoal (seu Stash/crews/spots/anúncios), rascunhos de ações que você confirma e respostas que usam seu próprio contexto — além de manter o app gratuito e sem anúncios. Toque em **⚡ Seja Pro** lá em cima.",
|
||
goPro: "Toque no botão **⚡ Seja Pro** lá em cima para abrir a tela de upgrade. O Pro desbloqueia meu assistente pessoal (Stash/crews/spots/anúncios) e rascunhos de ações, e apoia diretamente o projeto. Pague com Lightning — 7 dias ~2k sats até 1 ano ~36k sats. Os recursos grátis continuam grátis. 🦧",
|
||
proPricing: "Planos Pro (pague com Lightning ⚡): **7 dias** ~2.000 sats (~$1,20), **1 mês** ~5.000 sats (~$3), **3 meses** ~12.000 sats (~$7, 20% off), **1 ano** ~36.000 sats (~$21, melhor custo-benefício). Toque em **⚡ Seja Pro** lá em cima.",
|
||
howMuchIsPro: "Planos Pro: 7 dias ~2.000 sats, 1 mês ~5.000 sats, 3 meses ~12.000 sats (20% off), 1 ano ~36.000 sats (melhor custo-benefício). Pague com Lightning ⚡. Toque em **⚡ Seja Pro** lá em cima.",
|
||
upgrade: "Para fazer upgrade para o Sasquatch Pro, toque no botão **⚡ Seja Pro** lá em cima. Pague com Lightning (7 dias ~2k sats até 1 ano ~36k). O Pro desbloqueia meu assistente pessoal e rascunhos de ações, e apoia diretamente o projeto. 🦧⚡",
|
||
},
|
||
statsTitle: "📊 **SkateSpots em números**",
|
||
weatherTemp: "• {{temp}}°C (sensação {{feels}}°C)",
|
||
weatherSkateability: "• Skateabilidade: **{{label}}** ({{score}}/100)",
|
||
weatherError: "Não consegui ler o clima agora. Tente de novo em um segundo. 🌧️",
|
||
labelSpots: "spots",
|
||
labelEvents: "eventos",
|
||
labelLabPros: "pros do Lab",
|
||
labelCrews: "crews",
|
||
labelShops: "skate shops",
|
||
labelTours: "tours",
|
||
labelGear: "anúncios de equipamentos",
|
||
unnamed: "Sem nome",
|
||
emptyWhere: " em **{{place}}**",
|
||
emptyResult: "Não encontrei nenhum {{label}}{{where}} agora 🦧\n\nIsso pode significar que ainda não há nenhum listado — ou que os relays demoraram a responder. Tente novamente em um instante, confira a grafia, ou [add the first one on the map](https://skate-spots.org/map). 🛹",
|
||
foundTitle: "{{emoji}} Encontrei **{{count}}** {{label}}:\n{{lines}}{{more}}",
|
||
moreResults: "\n\n…e mais **{{count}}** — [see them all on the map](https://skate-spots.org/map) 🗺️",
|
||
locationDenied: "Não consigo ver sua localização — nada sai do seu dispositivo; eu só leio localmente quando você pede, e o navegador acabou de recusar. Toque em 🎯 **Perto de mim** no mapa, ou me diga uma cidade: \"spots em Bangkok\". 🛹",
|
||
noNearbySpots: "Nenhum spot mapeado perto de você ainda 🦧 — [be the first to drop one](https://skate-spots.org/create-spot). 🛹",
|
||
closestTitle: "Mais perto de você agora:",
|
||
closestFooter: "_Calculado no seu dispositivo — sua localização nunca saiu dele._",
|
||
proNudge: "Isso é coisa do **Sasquatch Pro** 🦧⚡ — com o Pro consigo ler seu Stash, crews, spots e anúncios, rascunhar anúncios de equipamentos, anúncios de procura e status de skate, e planejar suas viagens. É um passe de apoiador via Lightning que mantém o SkateSpots gratuito e sem anúncios. Toque no botão **⚡ Seja Pro** lá em cima para desbloquear. 🛹",
|
||
draftingProPerk: "Rascunhar ações (postar um status, anunciar equipamentos) é uma vantagem do **Sasquatch Pro** 🦧⚡ — toque em **⚡ Seja Pro** lá em cima para desbloquear.",
|
||
draftIntro: "Aqui está um rascunho — revise e toque para publicar. Nada vai ao ar até você confirmar. 🛹",
|
||
draftFailed: "Não consegui montar esse rascunho — tente me contar os detalhes de novo (ex.: \"anuncie minhas wheels Spitfire por 8000 sats\").",
|
||
tripAskCity: "Para onde? Me diga uma cidade (ex.: \"planeje 3 dias em Lisboa\") e eu monto uma viagem. 🗺️",
|
||
tripEmptyMap: "Nada no mapa para **{{destination}}** ainda 🦧 — seja o primeiro a colocar spots em [skate-spots.org](https://skate-spots.org). Quando os locais adicionarem spots, crews e eventos, eu monto uma viagem completa para você.",
|
||
tripLocked: "Fechei uma missão em **{{destination}}** para você 🛹 — spots, sessões e locais abaixo. Ajuste ou salve.",
|
||
tripFailed: "Não consegui acessar os dados ao vivo para planejar isso agora. Tente novamente em um instante! 🛹",
|
||
tripEmptyMapLocal: "Nada no mapa para **{{destination}}** ainda 🦧 — seja o primeiro em [skate-spots.org](https://skate-spots.org).",
|
||
tripMissionLocal: "Aqui está uma missão em **{{destination}}** 🛹 — spots, sessões e locais abaixo.",
|
||
relayFailed: "Os relays não responderam a tempo agora 🛰️ — isso geralmente é uma conexão lenta, não um spot faltando. Tente de novo em um instante. 🛹",
|
||
couldNotProcess: "Hum, não consegui processar isso. Tente reformular!",
|
||
freeTierFallback: "Essa aí precisa de raciocínio de IA — um recurso do **Sasquatch Pro** ⚡🦧\n\nAinda consigo encontrar **spots, eventos, coaches, crews, lojas, tours e equipamentos** direto dos relays — me pergunte, por ex., \"spots em Barcelona\" — e o [Glossary](/glossary) cobre mais de 150 tricks e termos. Toque em **⚡ Seja Pro** lá em cima para desbloquear respostas de IA.",
|
||
aiDownFallback: "Meu cérebro de IA está pegando um ar agora 🦧 — mas ainda te ajudo:\n\n• 🗺️ [Map](/) — spots, lojas e eventos perto de você\n• 🧪 [The Lab](/lab) — coaches, filmers, editores\n• 📖 [Glossary](/glossary) — mais de 150 tricks e termos\n• 👥 [Crews](/crews) — encontre sua galera\n\nOu só me diga uma **cidade** (\"spots em Barcelona\") ou uma **trick** (\"o que é um nollie\") que eu respondo direto. 🛹",
|
||
wentWrong: "Algo deu errado do meu lado. Tente de novo em um segundo! 🦧",
|
||
publishError: "Não foi possível publicar isso: {{error}}. Tente novamente em um instante.",
|
||
unknownError: "erro desconhecido",
|
||
},
|
||
};
|
||
|
||
export default ptBatch2;
|