Ship LNURL mint pages, indexing UI, and reviews rewrite.

Add lnurl list/detail routes, OG fixtures, i18n strings, and the write/
index client flows so the site surfaces the new mint type end to end.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
michilis
2026-08-22 03:44:43 +02:00
co-authored by Cursor
parent 2a9444942b
commit c74c7fc187
66 changed files with 7603 additions and 1241 deletions
+122 -3
View File
@@ -54,6 +54,10 @@
"footer.privacy": "Privacidad",
"footer.madeBy": "Hecho con ❤️ por {azzamo} · Funciona con Cashu y NIP-87",
"footer.warning": "Los mints son custodiales. Un mint puede desaparecer con tu dinero.",
"footer.tagline": "Reseñas de la comunidad para mints de ecash, firmadas en Nostr.",
"footer.col.explore": "Explorar",
"footer.col.site": "Sitio",
"footer.nav": "Pie de página",
"home.title": "Cashumints.space · Encuentra un mint Cashu en el que confiar",
"home.description": "Encuentra un mint Cashu en el que confiar. {mints} mints indexados con {reviews} reseñas de la comunidad firmadas en Nostr, además de disponibilidad en directo, NUTs compatibles y software del mint.",
"home.hero.title": "Encuentra un mint Cashu",
@@ -118,6 +122,8 @@
"card.reviewed": "reseñado {when}",
"card.noReviews": "sin reseñas aún",
"mint.title": "{name} · Reseñas del mint Cashu",
"mint.titleFedimint": "{name} · Reseñas de la federación Fedimint",
"mint.titleLnurl": "{name} · Reseñas del mint LNURL",
"mint.breadcrumb": "Ruta de navegación",
"mint.crumbMints": "Mints Cashu",
"mint.copyUrl": "Copiar la URL del mint",
@@ -329,7 +335,7 @@
"reviews.validate.short": "Escribe al menos {n} caracteres para que la reseña sirva de algo.",
"reviews.validate.long": "Las reseñas están limitadas a {n} caracteres.",
"feed.title": "Últimas reseñas de mints y federaciones · Cashumints.space",
"feed.description": "Cada reseña de un mint o una federación según se publica: {reviews} reseñas de {mints} mints Cashu y {federations} federaciones Fedimint, firmadas en Nostr y legibles aquí de la más nueva a la más antigua. Filtra por ecosistema, por valoración o por nombre.",
"feed.description": "Cada reseña de mint, federación y mint LNURL según se publica: {reviews} reseñas sobre {mints} mints Cashu, {federations} federaciones Fedimint y {lnurl} mints LNURL, firmadas en Nostr y legibles aquí de más nueva a más antigua. Filtra por ecosistema, por valoración o por nombre.",
"feed.heading": "Últimas reseñas",
"feed.lede": "Todas las reseñas de todos los mints Cashu y federaciones Fedimint, de la más nueva a la más antigua, leídas en directo de los relays de Nostr. Cada una está firmada por quien la escribió y vive en los relays, no en nuestra base de datos.",
"feed.label": "Reseñas",
@@ -404,7 +410,14 @@
"notfound.fb.reviews": "Reseñas",
"notfound.fb.software": "Software",
"notfound.fb.lastOnline": "Última vez en línea",
"notfound.fb.note": "Este mint se indexó después de la última compilación del sitio, así que esto es un resumen sacado de la API en directo. La página completa con reseñas aparecerá en la próxima compilación.",
"notfound.fb.note": "Este mint se indexó después de la última compilación del sitio, así que este es un resumen de la API en vivo, con sus reseñas debajo. La página completa aparece en la siguiente compilación.",
"notfound.resolve.checking": "Primera visita: comprobando este mint ahora.",
"notfound.resolve.failed": "No se pudo añadir este mint",
"notfound.resolve.failedFedimint": "No se pudo añadir esta federación",
"notfound.resolve.retry": "Probar otra dirección",
"notfound.resolve.switch": "Abrirlo como mint {kind}",
"notfound.resolve.fedimint": "La dirección de la página de una federación no lleva su código de invitación, así que esta no se puede buscar solo con el enlace. Pega el código de invitación y se añade.",
"notfound.resolve.ambiguous": "Esta dirección no se puede deducir solo con el enlace. Pega la URL completa del mint y se añade.",
"wallets.title": "Monederos Cashu · Cashumints.space",
"wallets.description": "Monederos Cashu que funcionan con los mints listados aquí, para móvil, web, navegador y línea de comandos, con lo que hace bien cada uno.",
"wallets.heading": "Monederos",
@@ -658,5 +671,111 @@
"footer.allFedimints": "Todas las federaciones",
"reviews.dialog.bodyPlaceholder.cashu": "¿Qué tal fueron la acuñación, el fundido y el soporte? Sé concreto.",
"reviews.dialog.bodyPlaceholder.fedimint": "¿Qué tal fueron unirte, los pagos Lightning y el soporte? Sé concreto.",
"fedimint.details.title": "Datos de la federación"
"fedimint.details.title": "Datos de la federación",
"nav.lnurlMints": "Mints LNURL",
"footer.allLnurlMints": "Todos los mints LNURL",
"lnurlMints.title": "Mints LNURL: mints de notas al portador lnurlcash, con reseñas | Cashumints.space",
"lnurlMints.description": "Los {total} mints LNURL indexados desde la red Nostr: {online} en línea, {offline} fuera de línea. Valoraciones de la comunidad, límites de retirada y capacidades de cada uno.",
"lnurlMints.heading": "Mints LNURL",
"lnurlMints.lede": "Todos los mints LNURL que este sitio conoce. Un mint LNURL emite notas al portador lnurlcash: notas Lightning que guardas como un secreto y que se pueden rotar, dividir, fusionar o fundir de vuelta a un pago Lightning. Cada uno se comprueba por HTTPS cada pocos minutos.",
"lnurlMints.search.label": "Buscar mints LNURL",
"lnurlMints.search.placeholder": "Buscar por nombre o dirección…",
"lnurlMints.sort.label": "Ordenar mints LNURL por",
"lnurlMints.hideOffline": "Ocultar fuera de línea",
"lnurlMints.showing": "Mostrando {total} mints LNURL ({online} en línea, {offline} fuera de línea)",
"lnurlMints.showingFiltered": "Mostrando {shown} de {total} mints LNURL ({online} en línea, {offline} fuera de línea)",
"lnurlMints.noResults": "Ningún mint LNURL coincide con eso.",
"lnurlMints.emptyIndex": "Todavía no hay mints LNURL indexados.",
"lnurl.crumb": "Mints LNURL",
"lnurl.breadcrumb": "Ruta de navegación",
"lnurl.copyAddress": "Copiar dirección",
"lnurl.more.title": "Más mints LNURL",
"lnurl.more.all": "Todos los mints LNURL →",
"lnurl.disclaimer": "Un mint LNURL guarda tus sats mientras tú guardas sus notas, así que usar uno significa confiar en su operador. Las valoraciones son opiniones de la comunidad, y en línea significa accesible, no confiable.",
"lnurl.features.title": "Funciones",
"lnurl.features.none": "Este mint no ha anunciado qué admite.",
"lnurl.features.note": "Las funciones son lo que el operador del mint anunció en Nostr. Cuando este sitio puede comprobar alguna por HTTPS lo hace, y avisa cuando algo anunciado no está disponible ahora mismo.",
"lnurl.features.notListed": "no anunciado",
"lnurl.features.unavailable": "no disponible",
"lnurl.feature.mint": "Acuñar por Lightning (LUD-06)",
"lnurl.feature.melt": "Fundir a Lightning",
"lnurl.feature.notes": "Rotar / dividir / fusionar notas",
"lnurl.feature.lud16": "Dirección Lightning",
"lnurl.feature.lud21": "Verificación de pago (LUD-21)",
"lnurl.feature.signed-notes": "Notas firmadas (verificación sin conexión)",
"lnurl.feature.onion": "Dirección Tor",
"lnurl.feature.rotate": "Rotar una nota",
"lnurl.feature.split": "Dividir una nota",
"lnurl.feature.merge": "Fusionar notas",
"lnurl.feature.lud06": "payRequest LUD-06",
"lnurl.feature.lud03": "withdrawRequest LUD-03",
"lnurl.limits.label": "Límites de retirada",
"lnurl.limits.notPublished": "no publicado",
"lnurl.limits.withdrawRow": "Retirada",
"lnurl.limits.disabled": "desactivado",
"lnurl.limits.sats.one": "{n} sat",
"lnurl.limits.sats.other": "{n} sats",
"lnurl.details.title": "Datos del mint",
"lnurl.details.address": "Dirección Lightning",
"lnurl.details.mintPubkey": "Clave pública del mint",
"lnurl.details.onion": "Dirección Tor",
"lnurl.details.fee": "Comisión de acuñación",
"lnurl.details.node": "Nodo",
"lnurl.details.capacity": "Capacidad anunciada",
"lnurl.kind.lightningAddress": "dirección Lightning",
"lnurl.kind.mintPubkey": "clave pública del mint",
"lnurl.kind.onionAddress": "dirección Tor",
"lnurl.confirmed.label": "Última confirmación",
"lnurl.confirmed.when": "confirmado {when}",
"lnurl.fee.base.one": "{n} sat",
"lnurl.fee.base.other": "{n} sats",
"lnurl.fee.percent": "{percent}%",
"home.topLnurl.title": "Mejores mints LNURL",
"home.topLnurl.sub": "ordenados por reseñas y valoración",
"home.topLnurl.all": "Los {n} mints LNURL →",
"feed.ecosystem.lnurl": "LNURL",
"reviews.dialog.bodyPlaceholder.lnurl": "¿Qué tal fueron acuñar, fundir y rotar notas? Sé concreto.",
"reviews.byUrl.open": "Escribir una reseña",
"reviews.byUrl.title": "Escribir una reseña",
"reviews.byUrl.lede": "Pega la dirección. Si este sitio aún no la conoce, la comprueba y la añade ahora.",
"reviews.byUrl.label.cashu": "URL del mint",
"reviews.byUrl.label.fedimint": "Código de invitación de la federación",
"reviews.byUrl.label.lnurl": "URL del mint LNURL",
"reviews.byUrl.placeholder.cashu": "mint.example.com",
"reviews.byUrl.placeholder.fedimint": "fed11…",
"reviews.byUrl.placeholder.lnurl": "mint.example.com",
"reviews.byUrl.check": "Comprobar esta dirección",
"reviews.byUrl.checking": "Comprobando…",
"reviews.byUrl.back": "Usar otra dirección",
"reviews.byUrl.existing": "Ya está en la lista",
"reviews.byUrl.indexed": "Recién añadido",
"reviews.byUrl.confirmClose": "¿Cerrar? La dirección que escribiste no se guarda.",
"reviews.byUrl.detected": "Esa dirección respondió como un mint {kind}.",
"reviews.byUrl.switchTo": "Reseñarlo como mint {kind}",
"reviews.byUrl.error.empty": "Escribe una dirección primero.",
"reviews.byUrl.error.badUrl": "Eso no parece la URL de un mint.",
"reviews.byUrl.error.badInvite": "Eso no es un código de invitación de Fedimint. Los códigos empiezan por fed11.",
"reviews.byUrl.error.badInput": "Este sitio no puede comprobar esa dirección.",
"reviews.byUrl.error.blocked": "Esa no es una dirección pública, así que no se puede comprobar.",
"reviews.byUrl.error.notAMint": "Esa dirección respondió, pero no como un mint de este tipo.",
"reviews.byUrl.error.wrongType": "Esa dirección respondió, pero como un mint de otro tipo.",
"reviews.byUrl.error.unverifiable": "Nada respondió en esa dirección, y todavía no hay ni rastro de ella en Nostr.",
"reviews.byUrl.error.rateLimited.one": "Son muchas comprobaciones desde una misma conexión. Inténtalo otra vez en unos {n} minuto.",
"reviews.byUrl.error.rateLimited.other": "Son muchas comprobaciones desde una misma conexión. Inténtalo otra vez en unos {n} minutos.",
"reviews.byUrl.error.network": "No se pudo contactar con el índice. Comprueba tu conexión y vuelve a intentarlo.",
"seo.lnurl.titleNoReviews": "{name}: información y reseñas del mint LNURL | Cashumints.space",
"seo.desc.statusWithdraw": "{status}, retirada {min}–{max} sat.",
"mint.chip.noFunding": "Sin acuñar / fundir",
"mint.warnings.lnurlWithdrawalsDisabled.lead": "Retiradas desactivadas.",
"mint.warnings.lnurlWithdrawalsDisabled.body.online": "Este mint anuncia una retirada máxima de cero, así que ninguna nota que emita puede canjearse por nada. No acuñes aquí hasta que eso cambie.",
"mint.warnings.lnurlWithdrawalsDisabled.body.offline": "Este mint anunciaba una retirada máxima de cero la última vez que se pudo contactar, así que ninguna nota que emitiera podía canjearse por nada. No acuñes aquí hasta que eso cambie.",
"mint.warnings.lnurlWithdrawalsDisabled.meta.online": "Retiradas desactivadas actualmente",
"mint.warnings.lnurlWithdrawalsDisabled.meta.offline": "Las retiradas estaban desactivadas la última vez que se vio",
"mint.warnings.lnurlInvalid.lead": "El endpoint responde pero no es válido.",
"mint.warnings.lnurlInvalid.body": "El servidor responde, pero no con un anuncio de mint que este sitio pueda leer, así que las retiradas podrían no funcionar. Lo de abajo es el último estado que sí se pudo leer, y las reseñas siguen funcionando.",
"mint.warnings.lnurlInvalid.meta": "Responde, pero no con un anuncio de mint válido",
"mint.warnings.lnurlNoFunding.lead": "Acuñación y fundido no disponibles.",
"mint.warnings.lnurlNoFunding.body": "Las notas existentes todavía se pueden rotar, dividir o fusionar, pero ahora mismo nada entra ni sale por Lightning. El mint está activo y responde; el nodo Lightning que hay detrás no es accesible desde él.",
"mint.warnings.lnurlNoFunding.meta": "Acuñación y fundido no disponibles",
"mint.warnings.also.noFunding": "Su nodo Lightning también estaba inaccesible, así que no se podía acuñar ni fundir nada."
}