SkateSpots/src/i18n/gl/batch1.ts
SkateSpots f029b5a516 feat(newsletter): weekly generated drafts, covers, and admin preview
- Add a browser-safe editorial generator with rotating satire and shipped highlights.
- Generate a fresh 1200x630 cover from the Drop #006 foundation and upload it to Blossom.
- Publish weekly drafts as NIP-78; add the admin Load draft/Preview composer flow and banner.
- Add the Monday user timer (draft by default) and a manual newsletter:weekly script.
- Remove static/live issue duplicates; translate the new admin strings to all 24 locales.
2026-10-28 09:42:44 +07:00

1343 lines
65 KiB
TypeScript

const batch1 = {
common: {
loading: "Cargando...",
error: "Erro",
save: "Gardar",
cancel: "Cancelar",
delete: "Eliminar",
edit: "Editar",
add: "Engadir",
remove: "Quitar",
create: "Crear",
submit: "Enviar",
close: "Pechar",
back: "Volver",
next: "Seguinte",
done: "Feito",
search: "Buscar",
filter: "Filtrar",
sort: "Ordenar",
share: "Compartir",
more: "Máis",
copy: "Copiar",
copied: "Copiado!",
viewAll: "Ver todo",
seeMore: "Ver máis",
showMore: "Mostrar máis",
showLess: "Mostrar menos",
noResults: "Non se atoparon resultados",
tryAgain: "Tentar de novo",
learnMore: "Saber máis",
getStarted: "Comezar",
yes: "Si",
no: "Non",
or: "ou",
and: "e",
free: "Gratis",
new: "Novo",
popular: "Popular",
featured: "Destacado",
verified: "Verificado",
sats: "sats",
clear: "Limpar",
clearFilters: "Limpar filtros",
clearAll: "Limpar todo",
hide: "Ocultar",
undo: "Desfacer"
},
nav: {
searchLanguages: "Buscar idiomas...",
noLanguages: "Non se atoparon idiomas",
home: "Inicio",
map: "Spots",
lab: "O Lab",
events: "Eventos",
crews: "Crews",
wallet: "Carteira",
settings: "Axustes",
more: "Máis",
rewards: "Recompensas",
stats: "Estatísticas da comunidade",
about: "Sobre",
food: "Comida",
marketplace: "Mercado",
mints: "Cecas",
appShop: "Tenda de apps",
diy: "DIY",
trades: "Mercado",
stash: "Stash",
collections: "Coleccións",
contacts: "Contactos",
messages: "Mensaxes",
skaters: "Skaters",
glossary: "Glosario",
riderCard: "Tarxeta de rider",
supporters: "Apoiantes ⚡",
newsletter: "Boletín",
viewProfile: "Ver perfil",
leaderboards: "Clasificacións"
},
chromeUi: {
skipToContent: "Saltar ao contido",
menu: "Menú",
inBadge: "En",
loggedIn: "Sesión iniciada",
profile: "Perfil",
logIn: "Iniciar sesión",
logOut: "Pechar sesión",
notLoggedIn: "Sesión non iniciada",
loggedOutPrompt: "Inicia sesión para engadir spots, enviar zaps a skaters e gardar os teus favoritos",
accounts: "Contas",
addAnotherAccount: "Engadir outra conta",
setStatus: "Definir estado",
setYourStatus: "Define o teu estado",
status: "Estado",
addSpot: "Engadir spot",
myData: "Os meus datos",
myStash: "O meu Stash",
myCollections: "As miñas coleccións",
viewMyProfile: "Ver o meu perfil",
customizeNavBar: "Personalizar a barra de navegación",
ecash: "Ecash",
madeWith: "Feito con",
forSkateCommunity: "para a comunidade do skate",
beta: "Beta",
license: "Licenza",
privacy: "Privacidade",
collaborators: "Colaboradores e amigos",
notSponsoredBy: "Sen patrocinio de",
errorTitle: "Non se puido cargar",
errorDescription: "Fallou a solicitude de rede. Comproba a conexión e téntao de novo.",
tryAgain: "Tentar de novo",
weatherOn: "Meteo activado",
weatherOff: "Meteo desactivado",
trustFilter: "Filtro de confianza",
filterByTrustLevel: "Filtrar por nivel de confianza",
trust: {
all: "Todos os usuarios",
allDesc: "Mostrar contido de todos",
verified: "Verificado",
verifiedDesc: "Ségueste ou está verificado (confianza ≥90)",
trusted: "De confianza",
trustedDesc: "Amigos de amigos ou verificados con NIP-05 (confianza ≥60)",
following: "Só aos que segues",
followingDesc: "Mostrar só contido de persoas que segues",
followingShort: "Seguindo"
},
sort: {
recent: "Máis recentes",
recentDesc: "Primeiro os máis novos",
trust: "Maior confianza",
trustDesc: "Creadores con máis confianza",
proximity: "Máis preto de min",
proximityDesc: "Localizacións máis próximas",
popular: "Máis populares",
popularDesc: "Máis comentarios e reaccións",
zaps: "Máis zaps",
zapsDesc: "Maior valor recibido"
},
spotType: {
street: "Rúa",
transition: "Transición",
park: "Parque",
plaza: "Praza",
diy: "DIY",
bowl: "Bowl",
vert: "Vert",
indoor: "Cuberto",
skatepark: "Skatepark",
miniramp: "Mini rampa"
}
},
auth: {
login: "Iniciar sesión",
logout: "Pechar sesión",
signUp: "Crear conta",
signUpTitle: "Es novo en Nostr?",
signUpDesc: "Crea unha conta nova para comezar. É gratis e aberta.",
orLogIn: "Ou inicia sesión",
loginWithExtension: "Iniciar sesión coa extensión",
loginWithAmber: "Iniciar sesión con Amber (Android)",
loginWithKey: "Clave secreta (nsec) ou frase de recuperación",
loginWithBunker: "Iniciar sesión con Nostr Connect",
bunkerUri: "Cadea de conexión do bunker",
openAmber: "Abrir Amber",
connectToBunker: "Conectar ao bunker",
noExtension: "Non se detectou ningunha extensión.",
extensionHelp: "Proba o botón Crear conta de arriba para crear unha conta nova, ou usa as pestanas Amber, Clave ou Bunker se xa tes credenciais.",
amberDesc: "Amber é unha app de firma Nostr segura para dispositivos Android. Preme o botón de abaixo para abrir Amber e autorizar o acceso.",
bunkerDesc: "Accede á túa conta desde calquera dispositivo cun firmante remoto (bunker). As túas claves quedan a salvo no servidor e nunca se expoñen aos sitios web.",
keyPlaceholder: "nsec1... ou a túa frase de recuperación de 12 palabras",
keyHint: "Podes pegar a túa clave nsec ou a frase de recuperación de 12 palabras",
uploadKeyFile: "Subir o ficheiro de clave",
loggingIn: "Iniciando sesión...",
connecting: "Conectando...",
verifying: "Verificando..."
},
home: {
tagline: "Impulsado pola comunidade • Baseado en relays",
title: "SKATE SPOTS",
subtitle: "Descubre spots • Quedadas • Aprende trucos • Apoia o comercio local",
description: "O skate real pasa fóra de liña: esta ferramenta axúdache a atopalo.",
betaWarning: "BETA - En construción • Úsao baixo a túa responsabilidade",
pwaHint: "Aplicación web progresiva - Instálaa no teu dispositivo",
exploreMap: "Explorar o mapa",
addSpot: "Engadir spot",
globalSpots: "Spots de todo o mundo",
openCommunity: "Comunidade aberta",
lightningZaps: "Zaps por Lightning",
featuredSpots: "Spots destacados",
featuredSpotsDesc: "Spots de skate verificados pola comunidade de todo o mundo",
upcomingEvents: "Próximos eventos",
upcomingEventsDesc: "Concursos, quedadas e sesións que chegan pronto",
noSpotsYet: "Aínda non hai spots",
noSpotsHint: "Sé o primeiro en engadir un spot de skate!",
noEventsYet: "Non hai eventos próximos",
noEventsHint: "Volve máis tarde ou crea un!",
theLab: "O Lab",
theLabDesc: "Aprende trucos, atopa adestradores e mellora o teu skate",
coaches: "Adestradores",
coachesDesc: "Aprende con skaters con experiencia que che axuden a progresar",
filmers: "Filmers",
filmersDesc: "Conecta con filmers para gravar os teus mellores clips",
findCoach: "Atopar adestrador",
becomeCoach: "Ser adestrador",
findFilmer: "Atopar filmer",
becomeFilmer: "Ser filmer",
viewAllSpots: "Ver todos os spots",
viewAllEvents: "Ver todos os eventos",
createEvent: "Crear evento",
readyToShare: "Listo para compartir?",
readyToShareDesc: "Axuda a medrar á comunidade do skate engadindo os teus spots favoritos. Cada sitio que compartes axuda a outros skaters a descubrir novos lugares onde patinar."
},
spots: {
addSpot: "Engadir spot",
editSpot: "Editar spot",
spotDetails: "Detalles do spot",
spotName: "Nome do spot",
spotType: "Tipo de spot",
description: "Descrición",
location: "Localización",
address: "Enderezo",
photos: "Fotos",
addPhotos: "Engadir fotos",
obstacles: "Obstáculos",
features: "Características",
bustLevel: "Nivel de vixilancia",
bestTime: "Mellor hora",
tips: "Consellos",
reviews: "Opinións",
addReview: "Engadir opinión",
reportSpot: "Denunciar spot",
directions: "Como chegar",
shareSpot: "Compartir spot",
createdBy: "Creado por",
lastUpdated: "Última actualización",
types: {
park: "Skatepark",
street: "Spot de rúa",
diy: "Spot DIY",
plaza: "Praza",
indoor: "Cuberto",
bowl: "Bowl",
vert: "Vert",
miniramp: "Mini rampa"
},
bustLevels: {
chill: "Tranquilo",
moderate: "Moderado",
sketchy: "Arriscado",
heavy: "Moi vixiado"
}
},
events: {
title: "Eventos de skate",
createEvent: "Crear evento",
editEvent: "Editar evento",
eventDetails: "Detalles do evento",
eventName: "Nome do evento",
eventType: "Tipo de evento",
date: "Data",
time: "Hora",
startDate: "Data de inicio",
endDate: "Data de fin",
venue: "Lugar",
organizer: "Organizador",
attendees: "Asistentes",
going: "Vou",
interested: "Interésame",
rsvp: "Confirmar asistencia",
ticketPrice: "Prezo da entrada",
freeEntry: "Entrada gratis",
register: "Inscribirse",
moreInfo: "Máis información",
upcomingEvents: "Próximos",
pastEvents: "Pasados",
noEvents: "Non se atoparon eventos",
findEvents: "Atopa concursos, demos, sesións e moito máis",
searchPlaceholder: "Buscar eventos...",
loginToCreate: "Inicia sesión para crear eventos",
noEventsMatch: "Ningún evento próximo coincide cos teus filtros.",
noUpcoming: "Non se atoparon eventos próximos.",
noPast: "Non se atoparon eventos pasados.",
types: {
contest: "Concurso",
session: "Sesión",
meetup: "Quedada",
premiere: "Estrea de vídeo",
workshop: "Obradoiro",
demo: "Demo",
jam: "Jam"
}
},
mapUi: {
mapFooter: {
links: "Ligazóns",
hide: "Ocultar a barra de ligazóns do mapa"
},
findingSpots: "Buscando spots",
loadingSpots: "Cargando spots",
loadingMap: "Cargando o mapa...",
mapViewAria: "Vista de mapa",
listViewAria: "Vista de lista",
layers: "Capas",
mapLayers: "Capas do mapa",
showOnMap: "Mostrar no mapa",
showResults: "Mostrar resultados",
quickActions: "Accións rápidas",
spots: "Spots",
shops: "Tendas",
gear: "Material",
tours: "Rutas",
events: "Eventos",
crews: "Crews",
spotType: "Tipo de spot",
sortBy: "Ordenar por",
trustLevel: "Nivel de confianza",
weather: "Meteo",
buySellGear: "Comprar e vender material",
stash: "Stash",
more: "Máis",
newHere: "Es novo por aquí?",
welcomeDesc: "Descubre spots de skate, eventos e a comunidade.",
firstRunTitle: "Comeza",
firstRunAddSpot: "Engade o teu primeiro spot",
firstRunJoinCrew: "Únete a unha crew",
firstRunStartCrew: "Crea a túa crew",
firstRunWallet: "Configura a túa carteira",
getOnZapstore: "Consegue Zapstore",
dismiss: "Descartar",
addedBy: "Engadido por",
directions: "Como chegar",
viewDetails: "Ver detalles",
viewDetailsArrow: "Ver detalles →",
spotDetails: "Detalles do spot",
skateShop: "Tenda de skate",
skateSpot: "Spot de skate",
youAreHere: "Estás aquí",
conditions: "Condicións",
weatherScoreSuffix: "{{score}}/100 de meteo",
wind: "Vento",
humidity: "Humidade",
airQuality: "Calidade do aire",
threeDayForecast: "Previsión de 3 días",
forecastDays: "Previsión de {{count}} días",
gearForSale: "Material en venda ({{count}})",
viewItems: "Ver artigos →",
viewAllItems: "Ver os {{count}} artigos →",
viewGear: "Ver material →",
localTour: "Ruta local",
meetAt: "Punto de encontro: {{place}}",
hours: "{{count}} horas",
level: "nivel {{level}}",
viewTour: "Ver ruta →",
upcomingEvent: "Próximo evento",
viewEvent: "Ver evento →",
skateCrew: "Crew de skate",
members: "{{count}} membros",
since: "Desde {{year}}",
viewCrew: "Ver crew →",
acceptsBitcoin: "Acepta Bitcoin",
boosted: "Impulsado",
website: "Sitio web",
offlineSavedSpots: "Fóra de liña · mostrando spots gardados",
cantReachRelays: "Non se pode conectar cos relays",
relayOnlineNoAnswer: "Tes conexión, pero o relay da comunidade non responde agora mesmo.",
youreOffline: "Estás fóra de liña.",
savedOnDevice: "Os spots que xa viches gárdanse neste dispositivo e aparecerán aquí.",
noSpotsMatchTitle: "Ningún spot coincide",
noSpotsMatchDesc: "Proba outra busca ou limpa os filtros.",
noSpotsMappedYet: "Aínda non hai spots no mapa",
noSpotsMappedDesc: "Sé o primeiro en marcar o teu parque no mapa: lévache un minuto, é teu, e o próximo skater que pase por alí agradeceracho.",
addFirstSpot: "Engadir o primeiro spot",
findSpotsNearMe: "Atopar spots preto de min",
locating: "Localizando…",
refiningLocation: "Axustando a túa localización…",
refiningLocationDesc: "Centrado no teu último spot: buscando unha nova posición GPS.",
locatingYou: "Localizándote…",
locatingDesc: "Obtendo a posición GPS. A primeira vez pode tardar ata un minuto.",
foundYou: "Atopámoste",
foundYouDesc: "O mapa centrouse na túa localización.",
locationPermissionNeeded: "Cómpre permiso de localización",
permissionNeededDesc: "Permite a localización para SkateSpots en Axustes → Aplicacións → SkateSpots → Permisos do teu dispositivo e despois toca en Preto de min.",
locationTimedOut: "Esgotouse o tempo de localización",
timeoutNativeDesc: "Non se puido obter a localización a tempo. Se estás nun interior, o GPS non ve os satélites: activa a localización por rede (Axustes → Localización) ou sae fóra e téntao de novo.",
timeoutWebDesc: "Non se puido obter a túa localización a tempo. Comproba o sinal e téntao de novo.",
noLocationProvider: "Sen provedor de localización",
noProviderNativeDesc: "O teu teléfono non está a proporcionar localización. Nas ROM centradas na privacidade (por exemplo, GrapheneOS) activa a localización por rede en Axustes → Localización, ou asegúrate de que o GPS está activo e proba ao aire libre.",
noProviderWebDesc: "Non hai ningún provedor de localización dispoñible. Activa os servizos de localización e téntao de novo.",
locationUnavailable: "Localización non dispoñible",
unavailableNativeDesc: "Activa a localización ou o GPS nos axustes do teléfono, permite a localización para SkateSpots (Axustes → Aplicacións → SkateSpots → Permisos) e téntao de novo.",
unavailableWebDesc: "Non se puido determinar a túa localización. Asegúrate de que os servizos de localización están activos.",
locationBlocked: "Localización bloqueada",
locationBlockedDesc: "O teu navegador bloqueou o acceso á localización neste sitio. Velaquí como reactivalo:",
locationPlatformAndroid: "Chrome en Android",
locationPlatformIos: "Safari en iOS",
locationPlatformDesktop: "Chrome de escritorio",
locationPlatformFirefox: "Firefox",
locationStepsAndroid: "Toca o candado da barra de enderezos → Axustes do sitio → Localización → Permitir",
locationStepsIos: "App Axustes → Safari → Localización → Permitir (ou toca o botón «AA» na barra de enderezos de Safari)",
locationStepsDesktop: "Preme o candado → Axustes do sitio → Localización → Permitir",
locationStepsFirefox: "Preme o candado → Conexión segura → Máis información → Permisos → Acceder á túa localización → Permitir",
gotIt: "Entendido",
addSpot: "Engadir spot",
addShop: "Engadir tenda",
addEvent: "Engadir evento",
addSpotHereTitle: "Engadir un spot aquí?",
addSpotHereDesc: "Coloca un marcador onde tocaches",
sellGear: "Vender material",
offerTour: "Ofrecer ruta",
closeAddMenu: "Pechar o menú de engadir",
addMenuAria: "Engadir spot, tenda, evento, material ou ruta",
localChat: "Chat local",
localChatDesc: "Chat en directo para onde estea centrado o mapa. Escolle o alcance da canle.",
btcMapShowing: "Mostrando {{count}} lugares preto de ti onde podes gastar os teus sats",
btcMapShow: "Mostrar lugares onde podes gastar os teus sats (vía BTC Map)",
yourPrivateStash: "O teu Stash privado",
stashIntro: "Fai seguimento do teu material, pon prezos e atopa intercambios con outros skaters.",
encryptionRequired: "Cómpre cifrado",
encryptionRequiredDesc: "Usa un firmante compatible con NIP-44 (Alby, nos2x, Amber).",
myStash: "O meu Stash",
encrypted: "Cifrado",
itemsCount: "{{count}} artigos",
items: "Artigos",
wishlist: "Lista de desexos",
types: "Tipos",
stashEmpty: "O teu Stash está baleiro",
addFirstItem: "Engadir o primeiro artigo",
wishlistCount: "Lista de desexos ({{count}})",
myGearCount: "O meu material ({{count}})",
openFullStash: "Abrir o Stash completo",
addItem: "Engadir artigo",
searchSpotsPlaceholder: "Buscar spots...",
selected: "Seleccionado",
noSpotsFound: "Non se atoparon spots. Proba outra busca.",
addingSpotsHint: "Engadir spots axuda a outros usuarios a atoparte cando exploran zonas concretas",
report: "Denunciar",
spotSingular: "1 spot",
spotPlural: "{{count}} spots",
view: "Ver",
myCollections: "As miñas coleccións",
collectionsSubtitle: "Organiza os teus spots favoritos en listas personalizadas",
newCollection: "Nova colección",
loginToCreate: "Inicia sesión para crear coleccións",
loginToCreateDesc: "Garda os teus spots favoritos en listas personalizadas como «Viaxe a Barcelona 2024» ou «Mellores barandillas de LA»",
noCollections: "Aínda non hai coleccións",
noCollectionsDesc: "Crea a túa primeira colección para comezar a organizar spots",
createFirstCollection: "Crea a túa primeira colección",
createNewCollection: "Crear nova colección",
createCollectionDesc: "Dalle un nome á túa colección e, se queres, unha descrición",
collectionName: "Nome da colección",
collectionNamePlaceholder: "Viaxe a Barcelona 2024",
descriptionOptional: "Descrición (opcional)",
descriptionPlaceholder: "Os meus spots favoritos da viaxe a Barcelona...",
creating: "Creando...",
createCollection: "Crear colección",
editCollection: "Editar colección",
saving: "Gardando...",
saveChanges: "Gardar cambios",
deleteCollectionTitle: "Eliminar a colección?",
deleteCollectionDesc: "Isto eliminará definitivamente «{{title}}». Os spots en si non se verán afectados.",
deleting: "Eliminando...",
collectionCreated: "Colección creada!",
collectionCreatedDesc: "«{{title}}» está lista para recibir spots",
collectionCreateFailed: "Non se puido crear a colección",
collectionUpdated: "Colección actualizada!",
changesSaved: "Gardáronse os teus cambios",
collectionUpdateFailed: "Non se puido actualizar a colección",
collectionDeleted: "Colección eliminada",
collectionDeletedDesc: "Eliminouse «{{title}}»",
collectionDeleteFailed: "Non se puido eliminar a colección",
somethingWentWrong: "Algo saíu mal"
},
spotUi: {
claim: {
areYouOwner: "É este o teu spot?",
privateDesc: "Este spot está marcado como privado. Se é teu ou o xestionas, reclámao: un moderador de SkateSpots confirma a propiedade e despois pasas a xestionar a ficha.",
claimSpot: "Reclamar este spot",
nip05Required: "Necesitas un identificador NIP-05 verificado para reclamar un spot privado (unha proba de que controlas unha identidade Nostr). Engade un no teu perfil e volve despois.",
addNip05: "Engadir NIP-05 en Axustes",
pendingTitle: "Reclamación pendente de revisión",
pendingDesc: "A túa reclamación enviouse. Un moderador de SkateSpots revisaraa: poderás rematar a reclamación do spot cando se aprobe.",
approvedTitle: "Reclamación aprobada",
approvedDesc: "Un moderador aprobou a túa reclamación. Remata o proceso para ser o propietario deste spot.",
complete: "Rematar a reclamación",
submitted: "Reclamación enviada",
submittedDesc: "Un moderador revisará a túa reclamación. Faraste cargo do spot cando se aprobe.",
submitFailed: "Non se puido enviar a reclamación",
submit: "Enviar reclamación",
submitting: "Enviando…",
confirmTitle: "Reclamar «{{title}}»?",
confirmIntro: "Estás a pedir ser o propietario deste spot privado.",
confirmBullet1: "Un moderador de SkateSpots revisa a solicitude (non podemos verificar a propiedade, só as claves Nostr)",
confirmBullet2: "Se se aproba, rematas a reclamación para ser o propietario e poder editar o spot",
confirmBullet3: "O spot orixinal permanece en Nostr: a rede é descentralizada",
adminTitle: "Reclamacións de propiedade pendentes",
adminApprove: "Aprobar",
adminApproved: "Aprobada",
adminApprovedDesc: "Agora xa pode rematar a reclamación do spot.",
adminApproveFailed: "Non se puido aprobar a reclamación",
loginRequired: "Inicia sesión para reclamar este spot privado ou solicitar a propiedade."
},
abandonedDesc: "Última actualización: {{time}}. Se o propietario orixinal está inactivo, podes reclamar este spot para mantelo e melloralo.",
claimedNotice: "Ficha reclamada",
claimedNoticeDesc: "Este spot foi republicado por un novo propietario tras unha reclamación. A ficha orixinal pode seguir existindo por separado.",
abandonedLoginDesc: "Última actualización: {{time}}. Inicia sesión para reclamar e manter este spot.",
accessDeniedDesc: "Só podes editar os spots que creaches ti.",
accessDeniedTitle: "Acceso denegado",
addAtLeastOneTag: "Engade polo menos unha etiqueta.",
additionalDetails: "Detalles adicionais (opcional)",
additionalDetailsPlaceholder: "Engade calquera contexto que poida axudar...",
addNewTags: "Engadir etiquetas novas:",
addNip05InSettings: "Engadir NIP-05 en Axustes",
addPhoto: "Engadir foto",
addPhotoDesc: "Contribúe cunha foto para axudar a outros a descubrir este spot.",
addPhotoOrDescription: "Engade unha foto ou unha descrición",
addPhotoOrDescriptionDesc: "Dálles algo aos skaters: unha foto ou unha liña sobre o lugar.",
addPhotos: "Engadir fotos",
addPhotoToSpot: "Engadir foto ao spot",
adminDeleteDialogDesc: "Como administrador de SkateSpots, estás a retirar «{{title}}». Ocultarase en toda a app para todos e enviarase unha solicitude de eliminación aos relays.",
adminDeleteReason: "Un administrador de SkateSpots eliminou o spot «{{title}}»",
airQuality: "Calidade do aire",
altSkateSpot: "Spot de skate: {{title}}",
areYouShopOwner: "Es o propietario da tenda?",
askBeforeSkating: "Pregunta antes de patinar",
backToSpot: "Volver ao spot",
beFirstToListGear: "Sé o primeiro en pór material á venda neste spot!",
beFirstToSay: "Sé o primeiro en dicir algo.",
byAuthor: "por {{name}}",
captionPlaceholder: "Engade un pé de foto (opcional): describe o que sae na foto, cando se fixo, etc.",
chatPublicNote: "Calquera pode ler isto: as mensaxes son públicas e efémeras. Para conversas privadas, usa as Mensaxes directas.",
checkPinBelow: "Comproba o marcador de abaixo antes de engadir un duplicado.",
claimBullet1: "Pasas a ser o propietario e podes editar o spot",
claimBullet2: "O spot orixinal permanece (Nostr é descentralizado)",
claimBullet3: "A túa versión pode aparecer xunto á orixinal",
claimFailed: "Non se puido reclamar",
claiming: "Reclamando...",
claimIntro: "Estás a piques de reclamar a propiedade deste spot. Isto creará a túa propia versión do spot, que poderás editar e manter.",
claimSpot: "Reclamar spot",
claimThisSpot: "Reclamar este spot",
claimTitle: "Reclamar «{{title}}»?",
claimWhatHappens: "Que pasa cando o reclamas:",
coachesAndFilmersAvailable: "Adestradores e filmers dispoñibles neste spot",
coachesCount: "Adestradores ({{count}})",
coachHere: "Adestrador aquí",
community: "Comunidade",
communityVerified: "Verificado pola comunidade",
communityVerifiedTitle: "Outro skater contribuíu aquí (foto ou informe de estado).",
conditions: "Condicións",
contactForPermission: "Contacta para pedir permiso",
contactInfo: "Información de contacto",
contributePhoto: "Contribuír cunha foto",
contributing: "Contribuíndo...",
couldNotSendMessage: "Non se puido enviar a mensaxe.",
couldNotSubmit: "Non se puido enviar",
couldNotUploadPhoto: "Non se puido subir a foto. Podes engadir unha abaixo.",
crewsThatSkateHere: "Crews que patinan aquí",
current: "Actual:",
currentTags: "Etiquetas actuais deste spot:",
daysAgo: "hai {{count}} día",
daysAgoPlural: "hai {{count}} días",
deleteDialogDesc: "Isto eliminará definitivamente «{{title}}» de todos os relays. Esta acción non se pode desfacer.",
deletedSpotReason: "Spot eliminado",
deleteFailed: "Non se puido eliminar",
deleteSpot: "Eliminar spot",
deleteSpotTitle: "Eliminar o spot?",
differentSpotPublishAnyway: "É outro spot: publicar de todos os xeitos",
dragDropOrClick: "Arrastra e solta ou fai clic",
dropPhotos: "Solta as fotos",
duplicateOne: "Hai un spot a menos de 60 m do teu marcador. Se é o mesmo lugar, engade alí a túa foto ou un informe de estado en vez de crear un duplicado.",
duplicateOther: "Hai spots a menos de 60 m do teu marcador. Se é o mesmo lugar, engade alí a túa foto ou un informe de estado en vez de crear un duplicado.",
editSpotSeoDesc: "Edita o teu spot de skate.",
failedToContribute: "Non se puido contribuír",
failedToPublish: "Non se puido publicar",
failedToPublishDesc: "Algo saíu mal. Consulta a consola para máis detalles.",
failedToSubmitReport: "Non se puido enviar a denuncia",
failedToSuggestTags: "Non se puideron suxerir etiquetas",
failedToUpdate: "Non se puido actualizar",
failedToUploadImage: "Non se puido subir a imaxe",
failedToUploadPhoto: "Non se puido subir a foto",
feelsLikeTemp: "Sensación de {{temp}}°C",
filmersCount: "Filmers ({{count}})",
filmHere: "Gravar aquí",
gearSwap: "Intercambio de material",
geolocationNotSupported: "Xeolocalización non compatible",
geolocationNotSupportedDesc: "O teu navegador non admite a xeolocalización.",
getDirections: "Como chegar",
hangTight: "Un momento",
hangTightDesc: "A túa foto aínda se está subindo. Engadirase nuns segundos.",
helpImproveSpot: "Axuda a mellorar este spot engadindo fotos ou suxerindo etiquetas",
hiddenByModerator: "Oculto por un moderador",
hiddenByModeratorDesc: "Este spot non aparece no mapa nin na busca. Aínda podes velo porque é teu. Editalo non o fará visible: seguirá oculto ata que un moderador retire a decisión.",
humidity: "Humidade",
imageUploaded: "Imaxe subida",
imageUploadedDesc: "A túa imaxe subiuse correctamente.",
imHere: "Estou aquí",
invalidCoordinates: "Coordenadas non válidas",
invalidCoordinatesDesc: "Introduce unha latitude válida (-90 a 90) e unha lonxitude válida (-180 a 180).",
invalidNpub: "npub non válido",
invalidNpubDesc: "Introduce un enderezo npub válido.",
lastReported: "hai {{time}}",
listGear: "Pór material á venda",
listYourGearHere: "Pon o teu material á venda aquí",
loadingChat: "Cargando o chat…",
locationError: "Erro de localización",
locationFound: "Localización atopada",
locationFoundDesc: "Estableceuse a túa localización actual.",
locationRequired: "Cómpre a localización",
locationRequiredDesc: "Introduce as coordenadas ou usa a túa localización actual.",
loginRequiredTitle: "Cómpre iniciar sesión",
logInToChat: "Inicia sesión para unirte ao chat local.",
logInToContributePhotos: "Inicia sesión para contribuír con fotos",
loginToEditSpot: "Tes que iniciar sesión para editar este spot.",
logInToReport: "Tes que iniciar sesión para denunciar contido.",
logInToReportStatus: "Inicia sesión para informar do estado deste spot.",
logInToSuggestTags: "Inicia sesión para suxerir etiquetas",
manageNip05ToClaim: "Xestiona o NIP-05 para reclamar",
meetAtSpotForPickup: "💡 Quedamos neste spot para a recollida",
memberOne: "{{count}} membro",
memberOther: "{{count}} membros",
messageFailed: "Non se puido enviar a mensaxe",
messageMapper: "Mensaxe ao autor do mapa",
messagePlaceholder: "Envía unha mensaxe a este spot… (proba /me ou /who)",
messagesHiddenOne: "{{count}} mensaxe oculta polo teu filtro de confianza. Baixa o filtro para ver máis.",
messagesHiddenOther: "{{count}} mensaxes ocultas polo teu filtro de confianza. Baixa o filtro para ver máis.",
messagesHiddenShortOne: "{{count}} mensaxe oculta polo teu filtro de confianza",
messagesHiddenShortOther: "{{count}} mensaxes ocultas polo teu filtro de confianza",
metresAway: "a {{distance}} m",
moderatorVouchedDesc: "Un moderador revisou este spot e deu fe del. Ben feito.",
monthsAgo: "hai {{count}} mes",
monthsAgoPlural: "hai {{count}} meses",
newOwnerNpub: "npub do novo propietario",
newOwnerNpubHint: "Introduce o npub do usuario ao que queres transferir este spot.",
nip05RequiredToClaim: "⚠️ Cómpre verificación NIP-05 para reclamar tendas",
noCommunitySignalTitle: "Aínda non hai foto nin informe de estado da comunidade: ninguén confirmou este lugar.",
breakdownPhotos: "{{count}} foto(s)",
breakdownStatus: "{{count}} informe(s) de estado",
breakdownComments: "{{count}} comentario(s)",
breakdownReactions: "{{count}} reacción(s)",
breakdownCollections: "{{count}} gardado(s)",
breakdownZaps: "{{count}} zap(s)",
breakdownTags: "{{count}} suxestión(s) de etiquetas",
breakdownCrews: "{{count}} crew(s)",
breakdownLab: "{{count}} perfil(is) profesional(is)",
verifyNudgeTitle: "Sé o primeiro en confirmar este spot",
verifyNudgeBody: "Unha foto ou un «xa patinei aquí» é como se verifica un spot: axuda ao próximo skater.",
verifyNudgeStatus: "Xa patinei aquí",
communityChip: "Comunidade",
seenChip: "Visto",
noGearListedYet: "Aínda non hai material á venda",
noMessagesYet: "Aínda non hai mensaxes nesta canle local. Saúda: «alguén patina esta noite?»",
noPhoto: "Sen foto",
noReportsYet: "Aínda non hai informes",
noTags: "Sen etiquetas",
notASkateSpot: "Non é un spot de skate",
offerServicesHere: "💡 Ofrece os teus servizos neste spot",
photoCaptured: "Foto capturada!",
photoCapturedDesc: "A túa foto subiuse correctamente.",
photoContributed: "Foto engadida!",
photoContributedDesc: "A túa foto engadiuse a este spot.",
photosAdded: "Engadíronse as túas fotos.",
photosRecommended: "moi recomendable: os spots sen foto seguen marcados como Non verificado",
photosUploaded: "{{count}} fotos subidas",
photoUploaded: "Foto subida",
photoUploadedDesc: "Engade un pé de foto e envíao para contribuír!",
photoUploadFailed: "Non se puido subir a foto",
pleaseTryAgain: "Téntao de novo",
public: "Público",
publicChatTitle: "Calquera pode ler as mensaxes desta canle: é pública e non está cifrada.",
recentReports: "Informes recentes",
recipientRequired: "Cómpre un destinatario",
recipientRequiredDesc: "Introduce o npub do novo propietario.",
removeAdmin: "Quitar (administrador)",
removeSpot: "Quitar spot",
removeSpotAdminTitle: "Quitar este spot? (administrador)",
reportOne: "informe",
reportContent: "Denunciar contido",
reportContentDesc: "Axuda a manter a comunidade segura denunciando contido inadecuado.",
reportedBySkaters: " por {{count}} skaters: en revisión. Se este é un spot real, engade unha foto ou un informe de estado para confirmalo.",
reportedNotASpot: "Denunciado como non ser un spot de skate",
reportingType: "Denunciando {{type}}",
reports: "informes",
reportShop: "Denunciar tenda",
reportSpot: "Denunciar spot",
reportStatus: "Informar do estado",
reportSubmitted: "Denuncia enviada",
reportSubmittedDesc: "Grazas por axudar a manter SkateSpots seguro.",
reportSubmittedLong: "Grazas por axudar a manter SkateSpots seguro e preciso. Membros de confianza da comunidade revisarán a túa denuncia.",
reportSubmittedTitle: "Denuncia enviada",
report: {
notASkateSpot: {
label: "Non é un spot de skate",
description: "Unha entrada de proba ou un lugar que non é para patinar"
},
fakeSpot: {
label: "Spot falso ou inexistente",
description: "Este spot non existe ou a localización é incorrecta"
},
stolenPhotos: {
label: "Fotos roubadas ou falsas",
description: "As fotos son imaxes de stock ou collidas doutro sitio"
},
spamAd: {
label: "Spam ou publicidade",
description: "Contido promocional ou fichas duplicadas"
},
dangerousLocation: {
label: "Localización perigosa",
description: "Propiedade privada, pouco segura ou de acceso ilegal"
},
inappropriateContent: {
label: "Contido inadecuado",
description: "Contén contido ofensivo ou para adultos"
},
impersonation: {
label: "Suplantación de identidade",
description: "Alguén facéndose pasar por outra persoa"
},
other: {
label: "Outro",
description: "Algo que non aparece na lista"
}
},
targetType: {
spot: "Spot",
event: "Evento",
tour: "Ruta",
shop: "Tenda",
user: "Usuario",
listing: "Anuncio",
coach: "Adestrador",
filmer: "Filmer"
},
sameOwner: "Mesmo propietario",
sameOwnerDesc: "Non se pode transferir ao propietario actual.",
saveChanges: "Gardar cambios",
saving: "Gardando...",
services: "Servizos",
shareSpotText: "Bótalle un ollo a este spot de skate: {{title}}",
shelter: "Refuxio",
shelterHint: "Este spot está exposto á intemperie? Axuda a outros skaters a atopar lugares secos cando chove.",
shopClaimDesc: "Se es propietario ou xestionas esta tenda, podes reclamala para verificar a propiedade e xestionar o anuncio.",
shopClaimNip05Hint: "Para reclamar esta tenda, engade un identificador NIP-05 que coincida co dominio do sitio web da tenda.",
skatersActiveDesc: "Persoas que publicaron nesta canle nas últimas 24 h.",
skatersActiveOne: "{{count}} skater activo aquí",
skatersActiveOther: "{{count}} skaters activos aquí",
skatersSellingGear: "Hai skaters vendendo material neste spot",
skateSpot: "Spot de skate",
somethingWentWrong: "Algo saíu mal",
spot: "Spot",
spotAdded: "Spot engadido!",
spotAddedDesc: "O teu spot de skate publicouse na rede.",
spotAddedNoPhoto: "Publicado, e marcado como Non verificado ata que alguén engada unha foto. Unha imaxe do spot axuda moito.",
spotChat: "Chat do spot",
spotClaimed: "Spot reclamado!",
spotClaimedDesc: "Agora es o propietario deste spot. Podes editalo desde o teu perfil.",
spotDeleted: "Spot eliminado",
spotDeletedDesc: "Solicitude de eliminación enviada aos relays. A maioría dos relays eliminarán este contido.",
spotMayAlreadyBeOnMap: "Pode que ese spot xa estea no mapa",
spotMayAlreadyExist: "Pode que este spot xa exista",
spotMayBeAbandoned: "Pode que o spot estea abandonado",
spotPhotoAlt: "Spot",
spotRemoved: "Spot retirado",
spotRemovedDesc: "Este spot retirouse e ocultarase en todo SkateSpots.",
spotSeoDesc: "Ve este spot de skate en SkateSpots.",
spotStatus: "Estado do spot",
spotStatusDesc: "«{{title}}» aínda se pode patinar? Conta á comunidade cal é o seu estado actual.",
spotTypeRequired: "Cómpre o tipo de spot",
spotTypeRequiredDesc: "Escolle un tipo de spot para que os skaters saiban a que se enfrontan.",
spotUpdated: "Spot actualizado!",
spotUpdatedDesc: "Os teus cambios publicáronse na rede.",
staffVerifiedTitle: "Un administrador de SkateSpots revisou este spot e deu fe del.",
statusNotePlaceholder: "Opcional: engade detalles (por exemplo, «hai protectores novos no bordo», «o vixilante bota á xente despois das 18:00»)",
statusReported: "Estado informado",
statusReportedDesc: "Grazas por manter o mapa ao día. O teu informe xa está publicado.",
submitReport: "Enviar informe",
submitting: "Enviando...",
suggestedByUser: "Suxerido por {{count}} usuario",
suggestedByUsers: "Suxerido por {{count}} usuarios",
suggestedTagsContent: "Etiquetas suxeridas para {{title}}: {{tags}}",
suggestNTags: "Suxerir {{count}} etiquetas",
suggestOneTag: "Suxerir 1 etiqueta",
suggestTags: "Suxerir etiquetas",
suggestTagsDesc: "Axuda a categorizar este spot suxerindo etiquetas relevantes.",
tags: "Etiquetas",
tagsHint: "Engade etiquetas para características, superficies e ambiente (máx. {{max}})",
tagsSuggested: "Etiquetas suxeridas!",
tagsSuggestedDesc: "As túas suxestións de etiquetas enviáronse.",
takePhoto: "Facer unha foto",
threeDayForecast: "Previsión de 3 días",
forecastDays: "Previsión de {{count}} días",
tipTheMapper: "Dar propina a quen mapeou",
tipTheMapperDesc: "Resultouche útil este spot? Envía un zap para agradecerllo a quen o mapeou!",
titleRequired: "Cómpre un título",
titleRequiredDesc: "Introduce un nome para este spot.",
today: "Hoxe",
tomorrow: "Mañá",
transferDesc: "Transferir «{{title}}» a outro usuario. Esta acción non se pode desfacer.",
transferFailed: "Non se puido transferir",
transferOwnership: "Transferir propiedade",
transferRequestContent: "Solicitude de transferencia de propiedade do spot «{{title}}»",
transferRequested: "Transferencia solicitada",
transferRequestedDesc: "O novo propietario terá que reclamar o spot para completar a transferencia.",
transferring: "Transferindo...",
transferSpotOwnership: "Transferir a propiedade do spot",
transferWarningDesc: "Despois da transferencia, xa non poderás editar nin eliminar este spot.",
typeToSearchTags: "Escribe para buscar ou engadir etiquetas...",
underReview: " — en revisión. Se este é un spot real, engade unha foto ou un informe de estado para confirmalo.",
untitledSpot: "Spot sen título",
unverified: "Non verificado",
updateDetailsFor: "Actualiza os detalles de {{title}}",
updateSpotDesc: "Actualiza a información deste spot. Todos os campos marcados con * son obrigatorios.",
uploadAPhoto: "Subir unha foto",
uploadAPhotoHint: "Arrastra e solta ou fai clic · JPG, PNG, WebP",
uploadedAlt: "Subida",
uploadFailed: "Non se puido subir",
uploadingPhoto: "Subindo a foto…",
uploadPhotoFirst: "Sube primeiro unha foto.",
uvIndex: "Índice UV",
verifiedBySkateSpots: "Verificado por SkateSpots",
viewPhotoFullScreen: "Ver a foto a pantalla completa",
viewPhotoOf: "Ver a foto {{n}} de {{total}}",
warning: "Aviso",
weatherConditions: "Condicións meteorolóxicas",
weatherOnly: "só meteo",
weatherOnlyUnconfirmed: "Só meteo. Ninguén confirmou aínda que isto sexa un spot de skate, así que non hai puntuación de condicións: engade unha foto ou un informe de estado para confirmalo.",
whyReporting: "Por que o denuncias?",
wind: "Vento",
yearsAgo: "hai {{count}} ano",
yearsAgoPlural: "hai {{count}} anos"
},
weatherUi: {
condition: {
clearSky: "Ceo despexado",
mainlyClear: "Maiormente despexado",
partlyCloudy: "Parcialmente nubrado",
overcast: "Cuberto",
foggy: "Néboa",
depositingRimeFog: "Néboa con xeadas",
lightDrizzle: "Orballo lixeiro",
moderateDrizzle: "Orballo moderado",
denseDrizzle: "Orballo intenso",
lightFreezingDrizzle: "Orballo xeado lixeiro",
denseFreezingDrizzle: "Orballo xeado intenso",
slightRain: "Chuvia lixeira",
moderateRain: "Chuvia moderada",
heavyRain: "Chuvia forte",
lightFreezingRain: "Chuvia xeada lixeira",
heavyFreezingRain: "Chuvia xeada forte",
slightSnow: "Neve lixeira",
moderateSnow: "Neve moderada",
heavySnow: "Neve forte",
snowGrains: "Cristais de neve",
slightRainShowers: "Chuvascos lixeiros",
moderateRainShowers: "Chuvascos moderados",
violentRainShowers: "Chuvascos violentos",
slightSnowShowers: "Chuvascos de neve lixeiros",
heavySnowShowers: "Chuvascos de neve fortes",
thunderstorm: "Treboada",
thunderstormSlightHail: "Treboada con saraiba lixeira",
thunderstormHeavyHail: "Treboada con saraiba forte",
unknown: "Descoñecido"
},
aqi: {
good: "Bo",
moderate: "Moderado",
unhealthySensitive: "Insalubre para grupos sensibles",
unhealthy: "Insalubre",
veryUnhealthy: "Moi insalubre",
hazardous: "Perigoso"
},
skateability: {
perfect: "Perfecto",
good: "Bo",
okay: "Aceptable",
poor: "Malo",
bad: "Moi malo",
unrideable: "Non practicábel"
},
updated: "Actualizado",
refresh: "Actualizar",
unavailable: "Meteo non dispoñible.",
retry: "Tentar de novo",
sunrise: "Amanecer",
sunset: "Solpor",
legendTitle: "Puntuación do tempo",
legendWeatherOnly: "Só meteo",
reason: {
currentlyRaining: "Está a chover agora",
raining: "Chovendo",
snowing: "Nevando",
thunderstorm: "Treboada",
freezingTemperature: "Temperatura baixo cero",
veryCold: "Moi frío",
extremelyHot: "Moitísimo calor",
veryHot: "Moito calor",
veryStrongWind: "Vento moi forte",
strongWind: "Vento forte",
moderateWind: "Vento moderado",
veryUnhealthyAir: "Aire moi insalubre",
unhealthyAir: "Aire insalubre",
moderateAirQuality: "Calidade do aire moderada",
veryHumid: "Humidade moi alta",
humid: "Humidade alta",
extremeUv: "UV extremo: usa protección solar",
highUv: "UV alto: recoméndase protección solar",
perfectConditions: "Condicións perfectas para patinar"
}
},
cordnUi: {
title: "Chat privado",
subtitle: "Cifrado de extremo a extremo (MLS) entre os membros da crew. O coordinador só encamiña texto cifrado e metadatos: nunca ve o contido das mensaxes.",
notLoggedIn: "Inicia sesión para usar o chat privado da crew.",
membersOnly: "Só os membros da crew poden abrir o chat privado.",
connecting: "Conectando…",
noCoordinator: "Aínda non hai ningún coordinador configurado para esta crew.",
noGroupAdmin: "O chat privado desta crew aínda non se creou.",
noGroupMember: "Aínda non estás no chat privado desta crew.",
create: "Crear o chat privado",
requestJoin: "Pedir acceso",
checkInvite: "Comprobar se hai invitación",
requested: "Solicitude enviada: un administrador da crew aprobaraa.",
noInvite: "Aínda non hai ningunha invitación. Pídele a un administrador que aprobe a túa solicitude.",
placeholder: "Envía unha mensaxe á crew…",
send: "Enviar",
refresh: "Actualizar",
requests: "Solicitudes de acceso",
checkRequests: "Comprobar solicitudes",
approve: "Engadir",
noRequests: "Non hai solicitudes de acceso pendentes.",
inviteHint: "De momento só estás ti neste chat: os membros da crew poden tocar «Pedir acceso» e despois ti apruébalos aquí.",
shareInvite: "Convidar",
shareInviteText: "Únete a {{crew}} — chat privado da crew",
inviteCopied: "Ligazón de invitación copiada",
memberCount: "{{count}} no grupo",
you: "Ti",
groupRef: "Ligazón do grupo",
copyRef: "Copiar",
copied: "Copiado",
attachImage: "Anexar imaxe",
uploading: "Subindo…",
uploadFailed: "Non se puido subir a imaxe.",
bannerTitle: "Esta crew aínda non ten chat privado",
bannerBody: "Configura un chat cifrado de extremo a extremo (MLS) para a túa crew: os membros únense desde a pestana.",
bannerCta: "Configurar",
ready: "Conectado · MLS",
errorPrefix: "Non se puido conectar co coordinador",
interactiveHint: "O teu firmante pide aprobación en cada acción: usa Actualizar e Enviar cando faga falta.",
setupDevice: "Configurar este dispositivo",
setupDeviceBody: "Isto dálle a este dispositivo unha chave propia para o chat privado. Un fundador aprobaa unha vez.",
waitingApproval: "Agardando a aprobación do fundador…",
waitingApprovalManual: "Agardando polo fundador. Toca «Comprobar se hai invitación» cando aprobe.",
onboardingFounder1: "Inicia o chat privado.",
onboardingFounder2: "Aproba os membros que pidan acceder.",
onboardingFounder3: "Chatea en privado coa túa crew.",
onboardingMember1: "Pedir acceso",
onboardingMember2: "O fundador aproba o teu dispositivo.",
onboardingMember3: "Xa estás dentro: as mensaxes van cifradas.",
encryptedNote: "Só os membros da crew poden ler isto; o coordinador só retransmite mensaxes cifradas.",
advanced: "Avanzado",
coordinator: "Coordinador",
keyPackage: "Paquete de chaves",
keyPackageReady: "Listo neste dispositivo",
keyPackageMissing: "Sen configurar neste dispositivo",
members: "Membros",
roleFounder: "Fundador",
roleAdmin: "Administrador",
roleMember: "Membro",
qrTitle: "Escanea para entrar no chat privado",
qrHint: "Os membros da crew escanéano coa cámara do móbil. A ligazón abre a pestana Chat privado.",
sendFailed: "Non se puido enviar: toca Reintentar.",
sending: "Enviando…",
sent: "Enviado",
retry: "Reintentar",
errorUnreachable: "Non se puido conectar co chat privado. Comproba a túa conexión.",
errorDetails: "Detalles",
unreachable: "Inaccesible",
dismiss: "Pechar",
linkDevice: "Vincular este dispositivo",
linkDeviceTitle: "Vincular outro dispositivo",
linkDeviceHint: "Escanea este código nun dispositivo que xa estea na sala.",
linkDeviceNote: "O código contén un paquete de chaves públicas. A túa chave privada queda no novo dispositivo.",
waitingDevice: "Agardando polo outro dispositivo…",
addDevice: "Engadir un dispositivo",
deviceLinked: "Dispositivo engadido.",
deviceLinkFailed: "Non se puido engadir ese dispositivo.",
removeMemberConfirm: "Quitar {{name}} do chat privado? Ese dispositivo perderá o acceso.",
removeMemberFailed: "Non se puido quitar ese membro.",
reply: "Responder",
},
communityUi: {
link: "Comunidade",
title: "Chat da comunidade",
subtitle: "Fai preguntas, comparte comentarios e fala coa comunidade de SkateSpots — cifrado de extremo a extremo.",
heading: "Comunidade SkateSpots",
eyebrow: "Preguntas e comentarios",
seoTitle: "Chat da comunidade de SkateSpots",
seoDescription: "Preguntas, comentarios e conversa da comunidade — cifrados de extremo a extremo.",
notLoggedIn: "Inicia sesión para entrar no chat da comunidade.",
noGroupAdmin: "A sala da comunidade aínda non se creou.",
noGroupMember: "Aínda non estás na sala da comunidade.",
create: "Crear a sala da comunidade",
setupDeviceBody: "Isto dálle a este dispositivo unha chave para a sala da comunidade. Un administrador ou o bot apruxaa unha vez.",
onboardingFounder1: "Crea a sala da comunidade.",
onboardingFounder2: "Aproba o bot da comunidade e os novos membros.",
onboardingFounder3: "Responde preguntas e recolle comentarios.",
onboardingMember1: "Pide entrar na sala da comunidade.",
onboardingMember2: "Un administrador ou o bot da comunidade aproba o teu dispositivo.",
onboardingMember3: "Fai preguntas, comparte comentarios ou simplemente saúda.",
encryptedNote: "Só os membros da sala poden lelo; o coordinador só transmite mensaxes cifradas.",
shareInviteText: "Únete ao chat da comunidade de SkateSpots",
qrTitle: "Escanea para entrar no chat da comunidade",
qrHint: "Escanea coa cámara do móbil para abrir o chat da comunidade e pedir entrar.",
owner: "Propietario",
botName: "Bot da comunidade",
howItWorks: "Un administrador ou o bot da comunidade aproba cada dispositivo novo unha vez. As mensaxes enviadas antes de que te unas non che aparecen.",
feedbackNote: "As preguntas e os comentarios son benvidos. Sé amable — é unha sala compartida.",
},
trustUi: {
alertsTitle: "Avisos da rede",
alertsDesc: "Contas que segues e que persoas de confianza denunciaron ou silenciaron.",
alertsEmpty: "Sen avisos. Revisamos as contas que segues por se hai denuncias de persoas de confianza.",
alertsReported: "Denunciada por {{count}} persoas de confianza",
alertsMuted: "Silenciada por {{count}} persoas de confianza",
alertsIgnore: "Ignorar",
alertsUnfollow: "Deixar de seguir",
alertsLogin: "Inicia sesión para ver avisos sobre as contas que segues.",
providerTitle: "Provedor",
providerDesc: "As puntuacións veñen dun provedor que elixes ti. O provedor da comunidade é o predeterminado.",
useCommunity: "Usar o provedor da comunidade",
setProvider: "Definir un provedor",
customPubkeyPlaceholder: "npub ou clave pública hex do provedor",
customRelayPlaceholder: "wss://relay.example.com",
invalidProvider: "Introduce un npub válido ou unha clave pública hex de 64 caracteres, e un relay wss://.",
publishFailed: "Non se puido publicar o provedor. Téntao de novo.",
providerSaved: "Provedor actualizado.",
loggedOutProvider: "Inicia sesión para escoller un provedor.",
showMarks: "Mostrar marcas de confianza",
showMarksDesc: "Marcas de verificado e descoñecido. As denuncias móstranse sempre.",
sourceLabel: "Orixe",
sourceHouse: "Provedor de confianza da comunidade",
sourceCustom: "O teu provedor",
loggedOut: "Inicia sesión para escoller o teu propio provedor de confianza.",
seoTitle: "Como funciona a confianza",
seoDescription: "Como mostra SkateSpots a confianza: tres estados, de onde veñen as puntuacións e por que a ausencia non é desconfianza.",
title: "Como funciona a confianza",
intro: "Aquí a confianza é un sinal, non un veredicto. Vén de quen coñeces ou dun provedor que elixes ti. Non facemos clasificacións globais de persoas.",
statesTitle: "Tres estados",
verifiedTitle: "Verificado",
verifiedDesc: "Alguén da túa rede responde por esta conta: un amigo dun amigo ou o provedor que escolliches.",
unknownTitle: "Descoñecido",
unknownDesc: "Ninguén respondeu aínda por ela. Así comeza toda conta nova.",
flaggedTitle: "Marcado",
flaggedDesc: "Persoas de confianza denunciaron esta conta. É un aviso para mirar con máis atención, non unha proba de nada.",
absenceTitle: "Non ter distintivo non significa desconfianza",
absenceDesc: "A maioría das contas non mostran nada. Iso só significa que ninguén da túa rede respondeu por elas aínda, non que haxa algo malo. Nunca interpretes unha marca ausente como algo negativo.",
sourceTitle: "Quen o calcula",
sourceDesc: "Por defecto usamos a túa propia rede. Tamén podes escoller un provedor de confianza que publique puntuacións asinadas en Nostr (NIP-85), ou desactivar a visualización. As marcas de denuncia vense sempre, porque son un sinal de seguridade.",
endorsementTitle: "Estar presente non é avalalo",
endorsementDesc: "Unha marca de verificado significa que alguén respondeu pola conta, non que a persoa sexa boa. Unha marca de denuncia significa que persoas de confianza a denunciaron, non que sexa culpable. Revisa os detalles antes de decidir.",
povTitle: "Depende do punto de vista",
povDesc: "Unha puntuación é relativa a quen mira. A clasificación dun provedor ou dunha persoa non é comparable coa doutra, e nunca presentamos ningunha como un feito obxectivo.",
settingsCta: "Xestionar en Axustes"
},
notifyUi: {
activity: {
zappedWithAmount: "Recibiches un zap de {{sats}} sats",
zapped: "Recibiches un zap",
liked: "A alguén lle gustou a túa publicación",
reposted: "Alguén reposteou o teu contido",
mentioned: "Alguén te mencionou",
replied: "Alguén che respondeu",
rsvp: "Alguén confirmou asistencia ao teu evento",
eventUpdated: "Actualizouse un evento ao que vas",
newActivity: "Nova actividade",
tapToOpen: "Toca para abrir SkateSpots"
},
crew: {
inviteTitle: "Invitación á crew",
inviteBody: "Estás convidado a {{crew}}",
addedTitle: "Engadíronte a unha crew",
addedBody: "{{crew}} — confirma para unirte",
joinRequestTitle: "Solicitude de acceso",
joinRequestBody: "Alguén quere unirse a {{name}}"
},
dm: {
title: "Nova mensaxe directa",
body: "Toca para lela"
},
trade: {
confirm: "Confirma un intercambio",
confirmed: "Intercambio confirmado",
newOffer: "Nova oferta no teu anuncio",
counter: "Contraoferta",
accepted: "Oferta aceptada 🎉",
declined: "Oferta rexeitada",
withdrawn: "Oferta retirada"
},
newsletter: {
drop: "Novidade de SkateSpots"
},
summary: {
moreUpdates: "{{count}} actualizacións máis",
openToCatchUp: "Abre SkateSpots para poñerte ao día"
}
},
toastsUi: {
followingSuccess: "Seguindo",
followingSuccessDesc: "Este usuario xa está na túa rede",
followFailed: "Non se puido seguir",
unfollowSuccess: "Deixaches de seguir",
unfollowSuccessDesc: "Retirado da túa rede",
unfollowFailed: "Non se puido deixar de seguir",
reportThanks: "Grazas, enviado para revisión",
reportFailed: "Non se puido enviar a denuncia",
savedOffline: "Gardado fóra de liña",
savedOfflineDesc: "Publicarémolo automaticamente cando volvas ter conexión.",
cacheCleaned: "Caché limpa",
cacheCleanedDesc: "Retiráronse {{count}} spots antigos da caché",
cacheCleared: "Caché borrada",
cacheClearedDesc: "Retiráronse todos os spots da caché",
backOnline: "De novo en liña",
backOnlineDesc: "Enviáronse {{count}} acción(s) gardadas.",
postQueued: "Publicación en cola",
postQueuedDesc: "A túa publicación publicarase cando volvas ter conexión",
invalidIdentifier: "Identificador non válido. Usa npub1..., usuario@dominio.com ou unha clave pública hex",
notASpotThanks: "Grazas, enviado para revisión",
notASpotThanksDesc: "Sen rencores: isto marca o punto como fóra de tema para que cadaquén decida por si mesmo.",
notASpotFailed: "Non se puido enviar a denuncia",
pleaseTryAgain: "Téntao de novo.",
relayUnreachable: "Non se puido conectar con ningún relay: comproba a conexión e téntao de novo.",
loginToReport: "Inicia sesión para denunciar un spot.",
zapLoginRequired: "Cómpre iniciar sesión",
zapLoginRequiredDesc: "Tes que ter a sesión iniciada para enviar un zap.",
zapEventNotFound: "Evento non atopado",
zapEventNotFoundDesc: "Non se atopou o evento ao que enviar o zap.",
zapAuthorNotFound: "Autor non atopado",
zapAuthorNotFoundDesc: "Non se atopou o autor deste elemento.",
zapSuccess: "Zap enviado!",
zapSuccessNwcDesc: "Enviaches {{amount}} sats ao autor mediante NWC.",
zapSuccessDesc: "Enviaches {{amount}} sats ao autor.",
zapStatusUnknown: "Estado do pagamento descoñecido",
zapStatusUnknownDesc: "Pode que a túa carteira aínda estea a procesar este zap. Comproba a carteira antes de tentalo de novo: non pagues dúas veces.",
zapNwcFailed: "Fallou o pagamento por NWC",
zapWeblnFailed: "Fallou o pagamento por WebLN",
zapFallingBack: "{{error}}. Probando outros métodos de pagamento...",
zapFailed: "Non se puido enviar o zap",
zapUnknownNwcError: "Erro descoñecido de NWC",
zapUnknownWeblnError: "Erro descoñecido de WebLN",
nwcInvalidUri: "URI de NWC non válido",
nwcInvalidUriDesc: "Comproba a cadea de conexión e téntao de novo.",
nwcExists: "A conexión xa existe",
nwcExistsDesc: "Esta carteira xa está conectada.",
nwcConnected: "Carteira conectada",
nwcConnectedDesc: "Conectouse correctamente a {{alias}}.",
nwcFailed: "Fallou a conexión",
nwcFailedDesc: "Non se puido conectar coa carteira: {{error}}",
nwcUnknownError: "Produciuse un erro descoñecido",
nwcDisconnected: "Carteira desconectada",
nwcDisconnectedDesc: "Retirouse a conexión da carteira.",
deleteApproveAmber: "Aprobar en Amber",
deleteApproveAmberDesc: "Abrirase Amber: toca Aprobar para confirmar a eliminación.",
deleteCancelled: "Cancelado",
deleteCancelledDesc: "Rexeitaches a solicitude en Amber.",
deleteCouldntSign: "Non se puido asinar",
deletePublishing: "Paso 2/2: publicando…",
deletePublishingDesc: "Enviando a eliminación aos relays.",
deleteStuck: "Atascado en PUBLICANDO",
deleteStuckDesc: "Fallou o paso do relay: {{error}}. Asinouse correctamente, pero o relay non o confirmou.",
stashMerged: "Cambios fusionados desde outro dispositivo",
stashMergedDesc: "O teu Stash editouse noutro sitio: conserváronse os dous conxuntos de cambios.",
statusUpdated: "Estado actualizado!",
statusUpdatedDesc: "O teu estado de skate xa é visible para os demais.",
statusFailed: "Non se puido definir o estado",
statusCleared: "Estado borrado",
statusClearedDesc: "Retirouse o teu estado.",
statusClearFailed: "Non se puido borrar o estado",
nutzapEnabled: "Recepción de Nutzap activada",
nutzapEnabledDesc: "Xa podes recibir zaps en ecash!",
nutzapSetupFailed: "Fallou a configuración",
nutzapUnavailable: "Envío de Nutzap non dispoñible",
tokenReceived: "Token recibido",
tokenReceivedDesc: "Token Cashu canxeado correctamente!",
receiveFailed: "Non se puido recibir",
invalidAmount: "Cantidade non válida",
invalidAmountDesc: "Introduce unha cantidade válida",
tokenCreated: "Token creado",
sendFailed: "Non se puido enviar",
mintAdded: "Ceca engadida",
mintAddedDesc: "Ceca engadida e marcada como de confianza",
mintAddFailed: "Non se puido engadir a ceca",
mintRemoved: "Ceca retirada",
mintRemoveFailed: "Non se puido retirar a ceca",
paymentReceived: "Pagamento recibido",
paymentReceivedDesc: "Recibiches {{amount}} sats correctamente!",
paymentSent: "Pagamento enviado",
paymentSentDesc: "O pagamento por Lightning completouse correctamente",
loginRequired: "Cómpre iniciar sesión",
loginToFollowFounder: "Inicia sesión para seguir ao fundador",
alreadyFollowing: "Xa o segues",
alreadyFollowingDesc: "Xa segues a {{name}}!",
couldNotComplete: "Non se puido completar",
tryAgainLower: "Téntao de novo.",
couldNotLoadProfile: "Non se puido cargar o perfil",
couldNotLoadProfileDesc: "Comproba a conexión a internet e proba a actualizar.",
undone: "Desfeito",
undoneDesc: "De volta ao neutro: nin oculto nin avalado.",
confirmed: "Confirmado",
confirmedDesc: "Avalado: sae desta cola.",
hiddenToast: "Oculto",
couldNotUndo: "Non se puido desfacer",
couldNotConfirm: "Non se puido confirmar",
deleteFailed: "Non se puido eliminar",
somethingWentWrong: "Algo saíu mal"
},
miscUi: {
openingCamera: "Abrindo a cámara…",
usePhoneCamera: "Usa a cámara do teléfono e volve despois aquí",
startingCamera: "Iniciando a cámara...",
cameraAccessRequired: "Cómpre acceso á cámara",
cameraAccessHint: "Permite o acceso á cámara nos axustes do navegador ou usa o selector de ficheiros de abaixo.",
cameraErrorTitle: "Erro da cámara",
cameraErrorDesc: "Non se puido abrir a cámara. Comproba os permisos da app en Axustes.",
cameraDeniedTitle: "Acceso á cámara denegado",
cameraDeniedDesc: "Permite o acceso á cámara nos axustes do navegador.",
uploadFromGallery: "Subir desde a galería",
uploading: "Subindo...",
usePhoto: "Usar a foto",
earningPotential: "Potencial de ingresos",
qualityExcellent: "Excelente!",
qualityGood: "Bo",
qualityBasic: "Básico",
qualityGettingStarted: "Para comezar",
qualityLocationAdded: "Localización engadida",
qualityOnePhoto: "Polo menos 1 foto",
qualityThreePhotos: "3 ou máis fotos",
qualityMoreAngles: "Máis ángulos = mellor",
qualityDescription: "Descrición",
qualityDetailedDesc: "Descrición detallada (100+ caracteres)",
qualityContact: "Información de contacto",
qualityPhoneOrWebsite: "Teléfono ou sitio web",
qualityHours: "Horario de apertura",
qualitySpotType: "Tipo de spot seleccionado",
failedToLoadComments: "Non se puideron cargar os comentarios",
commentsTitle: "Comentarios",
noCommentsYet: "Aínda non hai comentarios",
beFirstComment: "Sé o primeiro en compartir a túa opinión!",
removeMember: "Quitar membro",
whoIsThisFor: "Para quen é este perfil?",
individual: "Individual",
individualDesc: "Unha soa persoa",
collective: "Colectivo",
collectiveDesc: "Crew, estudo ou empresa",
membersLabel: "Membros",
dismissReport: "Descartar a denuncia",
reportedBy: "denunciado por",
completingLoginAmber: "Completando o inicio de sesión con Amber...",
entityMembersHint: "Engade as contas Nostr da túa crew. Cada membro confirma o seu propio spot coa súa clave; ata entón aparecen como «pendentes».",
entityVerifiedHint: "A pertenza verifícase membro a membro: ninguén pode ser engadido á túa crew sen confirmalo desde a súa propia conta.",
entityInvalidPubkey: "Introduce un npub, nprofile ou clave pública hex de 64 caracteres válidos.",
entityAlreadyAdded: "Ese membro xa está engadido.",
offline: "Fóra de liña",
connected: "Conectado",
offlineMode: "Modo fóra de liña",
allFeaturesAvailable: "Todas as funcións dispoñibles",
browsingCachedSpots: "Explorando spots na caché",
queuedActions: "{{count}} acción(s) en cola",
syncing: "Sincronizando",
publishingWhenStable: "Publicando cando se estabilice a conexión...",
willPublishOnline: "Publicarase cando volvas estar en liña",
availableOffline: "Dispoñible fóra de liña:",
offlineBrowseSpots: "Explora os spots que viche antes",
offlineViewDetails: "Ver os detalles dos spots na caché",
offlineKeepActing: "Podes seguir: as publicacións, confirmacións, anuncios e mensaxes quedan en cola e envíanse ao reconectar"
},
feesUi: {
feeFeaturedEventLabel: "Evento destacado",
feeFeaturedEventDesc: "Destaca o teu evento en SkateSpots",
feeFeaturedEventBenefit: "O teu evento aparece no alto da páxina de eventos",
feeLabProfileLabel: "Perfil Pro do Lab",
feeLabProfileDesc: "Destaca os teus servizos n'O Lab",
feeLabProfileBenefit: "Distintivo Pro e colocación destacada cando os skaters exploran O Lab",
feeFeaturedShopLabel: "Tenda destacada",
feeFeaturedShopDesc: "Destaca a túa tenda de skate no mapa e no directorio",
feeFeaturedShopBenefit: "Distintivo de verificado e marcador destacado no mapa",
feeFeaturedTourLabel: "Ruta destacada",
feeFeaturedTourDesc: "Destaca a túa ruta en SkateSpots",
feeFeaturedTourBenefit: "Distintivo Pro e colocación no alto cando os skaters exploran rutas",
duration7d: "7 días",
duration30d: "1 mes",
duration90d: "3 meses",
duration365d: "12 meses",
metaActive: "{{label}} — Activo",
daysRemainingOne: "queda {{count}} día",
daysRemainingMany: "quedan {{count}} días",
zapRequestContent: "SkateSpots {{label}} ({{tier}})",
errGenerate: "Non se puido xerar a factura",
paymentReceived: "⚡ Pagamento recibido!",
paymentReceivedDesc: "{{amount}} sats: {{label}} xa está activo.",
autoPayFailed: "Fallou o pagamento automático",
autoPayFailedDesc: "Paga manualmente co QR ou a factura de abaixo.",
payStatusUnknown: "Estado do pagamento descoñecido: pode que o pagamento se completase. Comproba a carteira antes de pagar de novo.",
invoiceCopied: "Factura copiada!",
activeBang: "{{label}} activo!",
chooseDuration: "Escolle a duración",
bestValue: "Mellor prezo",
perDay: "{{price}}/día",
validFor: "Válido por",
amountLine: "~{{usd}} $ USD · para {{name}} · {{tier}}",
payToContinue: "Paga {{amount}} sats para continuar",
generating: "Xerando a factura…",
processing: "Procesando o pagamento…",
invoiceQrAlt: "Código QR da factura Lightning",
copyInvoice: "Copiar factura",
openWallet: "Abrir carteira",
payConnected: "Pagar coa carteira conectada",
scanAny: "Escanea con calquera carteira Lightning",
tryAgain: "Tentar de novo",
proReceiptTitle: "🦧⚡ Sasquatch Pro: xa estás dentro!",
proReceiptPass: "Pase: {{pass}} ({{sats}} sats)",
proReceiptActiveUntil: "Activo ata: {{until}}",
proReceiptUnlocked: "O que desbloqueaches:",
proReceiptBullet1: "• Asistente persoal: le o teu Stash, crews, spots e anuncios",
proReceiptBullet2: "• Borradores de accións: pór material á venda, publicar o estado dun spot, planificar viaxes (ti confirmas)",
proReceiptBullet3: "• Respostas que usan o teu contexto persoal, non só datos públicos",
proReceiptBullet4: "• ⚡ Axudas directamente a SkateSpots e a mantelo gratis e sen anuncios",
proReceiptThanks: "Grazas por manter SkateSpots gratis e sen anuncios. Agora vai patinar. 🛹",
proReceiptSubject: "Recibo de Sasquatch Pro",
receiptContent: "Sasquatch Pro: pase de apoiente {{tier}} 🦧⚡",
receiptAlt: "Pase de apoiente Sasquatch Pro ({{tier}}), válido ata {{until}}",
purchaseComment: "Sasquatch Pro — {{tier}} 🦧",
errLogin: "Inicia sesión para pasar a Pro.",
errStart: "Non se puido iniciar a compra.",
errRecord: "Non se puido rexistrar o teu pase."
},
newsletterDraftUi: {
weeklyDraftReady: 'Borrador semanal listo',
loadDraft: 'Cargar borrador',
hidePreview: 'Ocultar vista previa',
untitled: 'Sen título',
},
};
export default batch1;