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
+118 -3
View File
@@ -114,6 +114,8 @@
"card.reviewed": "revisado {when}",
"card.noReviews": "ainda não há comentários",
"mint.title": "{name} · Cashu mint comentários",
"mint.titleFedimint": "{name} · Avaliações da federação Fedimint",
"mint.titleLnurl": "{name} · Avaliações do mint LNURL",
"mint.breadcrumb": "Pão ralado",
"mint.crumbMints": "Cashu mints",
"mint.copyUrl": "Copiar URL mint",
@@ -325,7 +327,7 @@
"reviews.validate.short": "Escreva pelo menos caracteres {n} para que a revisão seja útil.",
"reviews.validate.long": "As resenhas são limitadas a caracteres {n}.",
"feed.title": "Últimas análises de mint e da federação · Cashumints.space",
"feed.description": "Cada análise de mint e de federação conforme publicada: análises de {reviews} nas federações {mints} Cashu mints e {federations} Fedimint, assinadas em Nostr e legíveis aqui, as mais recentes primeiro. Filtre por ecossistema, por classificação ou por nome.",
"feed.description": "Cada avaliação de mint, federação e mint LNURL assim que é publicada: {reviews} avaliações sobre {mints} mints Cashu, {federations} federações Fedimint e {lnurl} mints LNURL, assinadas no Nostr e legíveis aqui da mais recente para a mais antiga. Filtre por ecossistema, por nota ou por nome.",
"feed.heading": "Últimas avaliações",
"feed.lede": "Cada revisão de cada federação Cashu mint e Fedimint, as mais recentes primeiro, lida ao vivo nos relés Nostr. Cada um é assinado por seu autor e reside nos relés, não em nosso banco de dados.",
"feed.label": "Avaliações",
@@ -400,7 +402,14 @@
"notfound.fb.reviews": "Avaliações",
"notfound.fb.software": "Programas",
"notfound.fb.lastOnline": "Última vez on-line",
"notfound.fb.note": "Este mint foi indexado após a última construção do site, portanto, este é um resumo da API ativa. A página completa com comentários aparece na próxima reconstrução.",
"notfound.fb.note": "Este mint foi indexado depois da última construção do site, por isso este é um resumo da API em direto, com as avaliações abaixo. A página completa aparece na próxima construção.",
"notfound.resolve.checking": "Primeira visita: a verificar este mint agora.",
"notfound.resolve.failed": "Não foi possível adicionar este mint",
"notfound.resolve.failedFedimint": "Não foi possível adicionar esta federação",
"notfound.resolve.retry": "Tentar outro endereço",
"notfound.resolve.switch": "Abri-lo como mint {kind}",
"notfound.resolve.fedimint": "O endereço da página de uma federação não contém o seu código de convite, por isso esta não pode ser encontrada só com o link. Cola o código de convite e ela é adicionada.",
"notfound.resolve.ambiguous": "Este endereço não pode ser deduzido só a partir do link. Cola o URL completo do mint e ele é adicionado.",
"wallets.title": "Carteiras Cashu · Cashumints.space",
"wallets.description": "Carteiras Cashu que funcionam com o mints listado aqui, em dispositivos móveis, web, navegador e linha de comando, com o que cada uma é boa.",
"wallets.heading": "Carteiras",
@@ -654,5 +663,111 @@
"footer.allFedimints": "Todas as federações",
"reviews.dialog.bodyPlaceholder.cashu": "Como funcionou minting, melting e suporte? Seja específico.",
"reviews.dialog.bodyPlaceholder.fedimint": "Como funcionou a adesão, os pagamentos e o suporte do Lightning? Seja específico.",
"fedimint.details.title": "Detalhes da federação"
"fedimint.details.title": "Detalhes da federação",
"nav.lnurlMints": "Mints LNURL",
"footer.allLnurlMints": "Todos os mints LNURL",
"lnurlMints.title": "Mints LNURL: mints de notas ao portador lnurlcash, avaliados | Cashumints.space",
"lnurlMints.description": "Todos os {total} mints LNURL indexados da rede Nostr: {online} on-line, {offline} off-line. Avaliações da comunidade, limites de saque e recursos de cada um.",
"lnurlMints.heading": "Mints LNURL",
"lnurlMints.lede": "Todos os mints LNURL que este site conhece. Um mint LNURL emite notas ao portador lnurlcash: notas Lightning que você guarda como um segredo e que podem ser rotacionadas, divididas, mescladas ou derretidas de volta em um pagamento Lightning. Cada um é verificado por HTTPS a cada poucos minutos.",
"lnurlMints.search.label": "Pesquisar mints LNURL",
"lnurlMints.search.placeholder": "Pesquisar por nome ou endereço…",
"lnurlMints.sort.label": "Ordenar mints LNURL por",
"lnurlMints.hideOffline": "Ocultar off-line",
"lnurlMints.showing": "Mostrando {total} mints LNURL ({online} on-line, {offline} off-line)",
"lnurlMints.showingFiltered": "Mostrando {shown} de {total} mints LNURL ({online} on-line, {offline} off-line)",
"lnurlMints.noResults": "Nenhum mint LNURL corresponde a isso.",
"lnurlMints.emptyIndex": "Ainda não há mints LNURL indexados.",
"lnurl.crumb": "Mints LNURL",
"lnurl.breadcrumb": "Trilha de navegação",
"lnurl.copyAddress": "Copiar endereço",
"lnurl.more.title": "Mais mints LNURL",
"lnurl.more.all": "Todos os mints LNURL →",
"lnurl.disclaimer": "Um mint LNURL guarda seus sats enquanto você guarda as notas dele, então usá-lo significa confiar em seu operador. As avaliações são opiniões da comunidade, e on-line significa acessível, não confiável.",
"lnurl.features.title": "Recursos",
"lnurl.features.none": "Este mint não anunciou o que oferece.",
"lnurl.features.note": "Os recursos são o que o operador do mint anunciou no Nostr. Quando este site consegue verificar algum por HTTPS, ele o faz, e avisa quando algo anunciado não está disponível no momento.",
"lnurl.features.notListed": "não anunciado",
"lnurl.features.unavailable": "indisponível",
"lnurl.feature.mint": "Minting via Lightning (LUD-06)",
"lnurl.feature.melt": "Melting para Lightning",
"lnurl.feature.notes": "Rotacionar / dividir / mesclar notas",
"lnurl.feature.lud16": "Endereço Lightning",
"lnurl.feature.lud21": "Verificação de pagamento (LUD-21)",
"lnurl.feature.signed-notes": "Notas assinadas (verificação off-line)",
"lnurl.feature.onion": "Endereço Tor",
"lnurl.feature.rotate": "Rotacionar uma nota",
"lnurl.feature.split": "Dividir uma nota",
"lnurl.feature.merge": "Mesclar notas",
"lnurl.feature.lud06": "payRequest LUD-06",
"lnurl.feature.lud03": "withdrawRequest LUD-03",
"lnurl.limits.label": "Limites de saque",
"lnurl.limits.notPublished": "não publicado",
"lnurl.limits.withdrawRow": "Saque",
"lnurl.limits.disabled": "desativado",
"lnurl.limits.sats.one": "{n} sat",
"lnurl.limits.sats.other": "{n} sats",
"lnurl.details.title": "Detalhes do mint",
"lnurl.details.address": "Endereço Lightning",
"lnurl.details.mintPubkey": "Chave pública do mint",
"lnurl.details.onion": "Endereço Tor",
"lnurl.details.fee": "Taxa de minting",
"lnurl.details.node": "Nó",
"lnurl.details.capacity": "Capacidade anunciada",
"lnurl.kind.lightningAddress": "endereço Lightning",
"lnurl.kind.mintPubkey": "chave pública do mint",
"lnurl.kind.onionAddress": "endereço Tor",
"lnurl.confirmed.label": "Última confirmação",
"lnurl.confirmed.when": "confirmado {when}",
"lnurl.fee.base.one": "{n} sat",
"lnurl.fee.base.other": "{n} sats",
"lnurl.fee.percent": "{percent}%",
"home.topLnurl.title": "Melhores mints LNURL",
"home.topLnurl.sub": "classificados por avaliações e nota",
"home.topLnurl.all": "Todos os {n} mints LNURL →",
"feed.ecosystem.lnurl": "LNURL",
"reviews.dialog.bodyPlaceholder.lnurl": "Como foram o minting, o melting e a rotação de notas? Seja específico.",
"reviews.byUrl.open": "Escrever uma avaliação",
"reviews.byUrl.title": "Escrever uma avaliação",
"reviews.byUrl.lede": "Cola o endereço. Se este site ainda não o conhece, ele é verificado e adicionado agora.",
"reviews.byUrl.label.cashu": "URL do mint",
"reviews.byUrl.label.fedimint": "Código de convite da federação",
"reviews.byUrl.label.lnurl": "URL do mint LNURL",
"reviews.byUrl.placeholder.cashu": "mint.example.com",
"reviews.byUrl.placeholder.fedimint": "fed11…",
"reviews.byUrl.placeholder.lnurl": "mint.example.com",
"reviews.byUrl.check": "Verificar este endereço",
"reviews.byUrl.checking": "A verificar…",
"reviews.byUrl.back": "Usar outro endereço",
"reviews.byUrl.existing": "Já está listado",
"reviews.byUrl.indexed": "Acabado de adicionar",
"reviews.byUrl.confirmClose": "Fechar? O endereço que escreveste não é guardado.",
"reviews.byUrl.detected": "Esse endereço respondeu como um mint {kind}.",
"reviews.byUrl.switchTo": "Avaliá-lo como mint {kind}",
"reviews.byUrl.error.empty": "Escreve primeiro um endereço.",
"reviews.byUrl.error.badUrl": "Isso não parece o URL de um mint.",
"reviews.byUrl.error.badInvite": "Isso não é um código de convite Fedimint. Os códigos começam por fed11.",
"reviews.byUrl.error.badInput": "Este site não consegue verificar esse endereço.",
"reviews.byUrl.error.blocked": "Esse não é um endereço público, por isso não pode ser verificado.",
"reviews.byUrl.error.notAMint": "Esse endereço respondeu, mas não como um mint deste tipo.",
"reviews.byUrl.error.wrongType": "Esse endereço respondeu, mas como um mint de outro tipo.",
"reviews.byUrl.error.unverifiable": "Nada respondeu nesse endereço, e ainda não há qualquer rasto dele no Nostr.",
"reviews.byUrl.error.rateLimited.one": "São muitas verificações a partir de uma só ligação. Tenta de novo daqui a cerca de {n} minuto.",
"reviews.byUrl.error.rateLimited.other": "São muitas verificações a partir de uma só ligação. Tenta de novo daqui a cerca de {n} minutos.",
"reviews.byUrl.error.network": "Não foi possível contactar o índice. Verifica a tua ligação e tenta de novo.",
"seo.lnurl.titleNoReviews": "{name}: informações e avaliações do mint LNURL | Cashumints.space",
"seo.desc.statusWithdraw": "{status}, saque de {min}–{max} sat.",
"mint.chip.noFunding": "Sem mint / melt",
"mint.warnings.lnurlWithdrawalsDisabled.lead": "Saques desativados.",
"mint.warnings.lnurlWithdrawalsDisabled.body.online": "Este mint anuncia um saque máximo de zero, então nenhuma nota que ele emite pode ser resgatada por nada. Não faça minting aqui até que isso mude.",
"mint.warnings.lnurlWithdrawalsDisabled.body.offline": "Este mint anunciava um saque máximo de zero no último contato, então nenhuma nota que ele emitia podia ser resgatada por nada. Não faça minting aqui até que isso mude.",
"mint.warnings.lnurlWithdrawalsDisabled.meta.online": "Saques desativados no momento",
"mint.warnings.lnurlWithdrawalsDisabled.meta.offline": "Os saques estavam desativados no último contato",
"mint.warnings.lnurlInvalid.lead": "O endpoint responde, mas é inválido.",
"mint.warnings.lnurlInvalid.body": "O host responde, mas não com um anúncio de mint que este site consiga ler, então os saques podem não funcionar. O que está abaixo é o último estado legível, e as avaliações continuam funcionando.",
"mint.warnings.lnurlInvalid.meta": "Responde, mas não com um anúncio de mint válido",
"mint.warnings.lnurlNoFunding.lead": "Minting e melting indisponíveis.",
"mint.warnings.lnurlNoFunding.body": "As notas existentes ainda podem ser rotacionadas, divididas ou mescladas, mas nada entra nem sai via Lightning no momento. O mint em si está no ar e respondendo; o nó Lightning por trás dele não está acessível a partir dali.",
"mint.warnings.lnurlNoFunding.meta": "Minting e melting indisponíveis",
"mint.warnings.also.noFunding": "O nó Lightning também estava inacessível, então nada podia ser mintado ou derretido."
}