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": "a évalué {when}",
"card.noReviews": "pas encore d'avis",
"mint.title": "{name} · Cashu mint avis",
"mint.titleFedimint": "{name} · Avis sur la fédération Fedimint",
"mint.titleLnurl": "{name} · Avis sur le mint LNURL",
"mint.breadcrumb": "Fil d'Ariane",
"mint.crumbMints": "Cashu mints",
"mint.copyUrl": "Copier l'URL mint",
@@ -325,7 +327,7 @@
"reviews.validate.short": "Écrivez au moins les caractères {n} pour que l'examen soit utile.",
"reviews.validate.long": "Les avis sont limités aux personnages {n}.",
"feed.title": "Derniers avis sur le mint et la fédération · Cashumints.space",
"feed.description": "Chaque revue de mint et de fédération telle qu'elle est publiée : critiques de {reviews} dans les fédérations {mints} Cashu mints et {federations} Fedimint, signées sur Nostr et lisibles ici les plus récentes en premier. Filtrez par écosystème, par note ou par nom.",
"feed.description": "Chaque avis sur un mint, une fédération et un mint LNURL dès sa publication : {reviews} avis portant sur {mints} mints Cashu, {federations} fédérations Fedimint et {lnurl} mints LNURL, signés sur Nostr et lisibles ici du plus récent au plus ancien. Filtrez par écosystème, par note ou par nom.",
"feed.heading": "Derniers avis",
"feed.lede": "Chaque revue de chaque fédération Cashu mint et Fedimint, la plus récente en premier, lue en direct depuis les relais Nostr. Chacun est signé par son auteur et vit sur les relais, pas dans notre base de données.",
"feed.label": "Avis",
@@ -400,7 +402,14 @@
"notfound.fb.reviews": "Avis",
"notfound.fb.software": "Logiciel",
"notfound.fb.lastOnline": "Dernière connexion",
"notfound.fb.note": "Ce mint a été indexé après la dernière création du site, il s'agit donc d'un résumé de l'API en direct. La page complète avec les critiques apparaîtra lors de la prochaine reconstruction.",
"notfound.fb.note": "Ce mint a été indexé après la dernière construction du site : voici un résumé issu de l’API en direct, avec ses avis en dessous. La page complète apparaît à la prochaine construction.",
"notfound.resolve.checking": "Première visite : ce mint est en cours de vérification.",
"notfound.resolve.failed": "Ce mint n’a pas pu être ajouté",
"notfound.resolve.failedFedimint": "Cette fédération n’a pas pu être ajoutée",
"notfound.resolve.retry": "Essayer une autre adresse",
"notfound.resolve.switch": "L’ouvrir comme mint {kind}",
"notfound.resolve.fedimint": "L’adresse de la page d’une fédération ne contient pas son code d’invitation, donc celle-ci ne peut pas être retrouvée à partir du lien seul. Colle le code d’invitation et elle est ajoutée.",
"notfound.resolve.ambiguous": "Cette adresse ne peut pas être déduite du lien seul. Colle l’URL complète du mint et il est ajouté.",
"wallets.title": "Portefeuilles Cashu · Cashumints.space",
"wallets.description": "Portefeuilles Cashu qui fonctionnent avec le mints répertorié ici, sur mobile, Web, navigateur et ligne de commande, avec ce pour quoi chacun est bon.",
"wallets.heading": "Portefeuilles",
@@ -654,5 +663,111 @@
"footer.allFedimints": "Toutes les fédérations",
"reviews.dialog.bodyPlaceholder.cashu": "Comment se sont déroulés les minting, melting et le support ? Soyez précis.",
"reviews.dialog.bodyPlaceholder.fedimint": "Comment s'est déroulée l'adhésion, les paiements Lightning et l'assistance ? Soyez précis.",
"fedimint.details.title": "Détails de la fédération"
"fedimint.details.title": "Détails de la fédération",
"nav.lnurlMints": "Mints LNURL",
"footer.allLnurlMints": "Tous les mints LNURL",
"lnurlMints.title": "Mints LNURL : mints de billets au porteur lnurlcash, avec avis | Cashumints.space",
"lnurlMints.description": "Les {total} mints LNURL indexés depuis le réseau Nostr : {online} en ligne, {offline} hors ligne. Notes de la communauté, limites de retrait et fonctionnalités de chacun.",
"lnurlMints.heading": "Mints LNURL",
"lnurlMints.lede": "Tous les mints LNURL que ce site connaît. Un mint LNURL émet des billets au porteur lnurlcash : des billets Lightning que vous conservez comme un secret et qui peuvent être tournés, divisés, fusionnés ou refondus en un paiement Lightning. Chacun est vérifié en HTTPS toutes les quelques minutes.",
"lnurlMints.search.label": "Rechercher des mints LNURL",
"lnurlMints.search.placeholder": "Rechercher par nom ou adresse…",
"lnurlMints.sort.label": "Trier les mints LNURL par",
"lnurlMints.hideOffline": "Masquer hors ligne",
"lnurlMints.showing": "{total} mints LNURL affichés ({online} en ligne, {offline} hors ligne)",
"lnurlMints.showingFiltered": "{shown} sur {total} mints LNURL affichés ({online} en ligne, {offline} hors ligne)",
"lnurlMints.noResults": "Aucun mint LNURL ne correspond.",
"lnurlMints.emptyIndex": "Aucun mint LNURL n'est encore indexé.",
"lnurl.crumb": "Mints LNURL",
"lnurl.breadcrumb": "Fil d'Ariane",
"lnurl.copyAddress": "Copier l'adresse",
"lnurl.more.title": "Plus de mints LNURL",
"lnurl.more.all": "Tous les mints LNURL →",
"lnurl.disclaimer": "Un mint LNURL détient vos sats pendant que vous détenez ses billets : l'utiliser revient donc à faire confiance à son opérateur. Les notes sont des avis de la communauté, et en ligne signifie joignable, pas digne de confiance.",
"lnurl.features.title": "Fonctionnalités",
"lnurl.features.none": "Ce mint n'a pas annoncé ce qu'il prend en charge.",
"lnurl.features.note": "Les fonctionnalités sont ce que l'opérateur du mint a annoncé sur Nostr. Quand ce site peut en vérifier une en HTTPS, il le fait, et il le signale lorsqu'une fonctionnalité annoncée est indisponible en ce moment.",
"lnurl.features.notListed": "non annoncé",
"lnurl.features.unavailable": "indisponible",
"lnurl.feature.mint": "Minting via Lightning (LUD-06)",
"lnurl.feature.melt": "Melting vers Lightning",
"lnurl.feature.notes": "Tourner / diviser / fusionner des billets",
"lnurl.feature.lud16": "Adresse Lightning",
"lnurl.feature.lud21": "Vérification de paiement (LUD-21)",
"lnurl.feature.signed-notes": "Billets signés (vérification hors ligne)",
"lnurl.feature.onion": "Adresse Tor",
"lnurl.feature.rotate": "Tourner un billet",
"lnurl.feature.split": "Diviser un billet",
"lnurl.feature.merge": "Fusionner des billets",
"lnurl.feature.lud06": "payRequest LUD-06",
"lnurl.feature.lud03": "withdrawRequest LUD-03",
"lnurl.limits.label": "Limites de retrait",
"lnurl.limits.notPublished": "non publié",
"lnurl.limits.withdrawRow": "Retrait",
"lnurl.limits.disabled": "désactivé",
"lnurl.limits.sats.one": "{n} sat",
"lnurl.limits.sats.other": "{n} sats",
"lnurl.details.title": "Détails du mint",
"lnurl.details.address": "Adresse Lightning",
"lnurl.details.mintPubkey": "Clé publique du mint",
"lnurl.details.onion": "Adresse Tor",
"lnurl.details.fee": "Frais de minting",
"lnurl.details.node": "Nœud",
"lnurl.details.capacity": "Capacité annoncée",
"lnurl.kind.lightningAddress": "adresse Lightning",
"lnurl.kind.mintPubkey": "clé publique du mint",
"lnurl.kind.onionAddress": "adresse Tor",
"lnurl.confirmed.label": "Dernière confirmation",
"lnurl.confirmed.when": "confirmé {when}",
"lnurl.fee.base.one": "{n} sat",
"lnurl.fee.base.other": "{n} sats",
"lnurl.fee.percent": "{percent} %",
"home.topLnurl.title": "Meilleurs mints LNURL",
"home.topLnurl.sub": "classés par avis et note",
"home.topLnurl.all": "Les {n} mints LNURL →",
"feed.ecosystem.lnurl": "LNURL",
"reviews.dialog.bodyPlaceholder.lnurl": "Comment se sont passés le minting, le melting et la rotation des billets ? Soyez précis.",
"reviews.byUrl.open": "Écrire un avis",
"reviews.byUrl.title": "Écrire un avis",
"reviews.byUrl.lede": "Colle l’adresse. Si ce site ne la connaît pas encore, elle est vérifiée et ajoutée maintenant.",
"reviews.byUrl.label.cashu": "URL du mint",
"reviews.byUrl.label.fedimint": "Code d’invitation de la fédération",
"reviews.byUrl.label.lnurl": "URL du mint LNURL",
"reviews.byUrl.placeholder.cashu": "mint.example.com",
"reviews.byUrl.placeholder.fedimint": "fed11…",
"reviews.byUrl.placeholder.lnurl": "mint.example.com",
"reviews.byUrl.check": "Vérifier cette adresse",
"reviews.byUrl.checking": "Vérification…",
"reviews.byUrl.back": "Utiliser une autre adresse",
"reviews.byUrl.existing": "Déjà répertorié",
"reviews.byUrl.indexed": "Ajouté à l’instant",
"reviews.byUrl.confirmClose": "Fermer ? L’adresse saisie n’est pas conservée.",
"reviews.byUrl.detected": "Cette adresse a répondu comme un mint {kind}.",
"reviews.byUrl.switchTo": "L’évaluer comme mint {kind}",
"reviews.byUrl.error.empty": "Saisis d’abord une adresse.",
"reviews.byUrl.error.badUrl": "Cela ne ressemble pas à une URL de mint.",
"reviews.byUrl.error.badInvite": "Ce n’est pas un code d’invitation Fedimint. Les codes commencent par fed11.",
"reviews.byUrl.error.badInput": "Ce site ne peut pas vérifier cette adresse.",
"reviews.byUrl.error.blocked": "Ce n’est pas une adresse publique, elle ne peut donc pas être vérifiée.",
"reviews.byUrl.error.notAMint": "Cette adresse a répondu, mais pas comme un mint de ce type.",
"reviews.byUrl.error.wrongType": "Cette adresse a répondu, mais comme un autre type de mint.",
"reviews.byUrl.error.unverifiable": "Rien n’a répondu à cette adresse, et il n’en existe encore aucune trace sur Nostr.",
"reviews.byUrl.error.rateLimited.one": "Cela fait beaucoup de vérifications depuis une seule connexion. Réessaie dans environ {n} minute.",
"reviews.byUrl.error.rateLimited.other": "Cela fait beaucoup de vérifications depuis une seule connexion. Réessaie dans environ {n} minutes.",
"reviews.byUrl.error.network": "L’index est injoignable. Vérifie ta connexion, puis réessaie.",
"seo.lnurl.titleNoReviews": "{name} : infos et avis sur le mint LNURL | Cashumints.space",
"seo.desc.statusWithdraw": "{status}, retrait {min}–{max} sat.",
"mint.chip.noFunding": "Ni minting ni melting",
"mint.warnings.lnurlWithdrawalsDisabled.lead": "Retraits désactivés.",
"mint.warnings.lnurlWithdrawalsDisabled.body.online": "Ce mint annonce un retrait maximum de zéro : aucun billet qu'il émet ne peut donc être échangé contre quoi que ce soit. N'y faites pas de minting tant que cela n'a pas changé.",
"mint.warnings.lnurlWithdrawalsDisabled.body.offline": "Ce mint annonçait un retrait maximum de zéro lors du dernier contact : aucun billet qu'il émettait ne pouvait donc être échangé contre quoi que ce soit. N'y faites pas de minting tant que cela n'a pas changé.",
"mint.warnings.lnurlWithdrawalsDisabled.meta.online": "Retraits actuellement désactivés",
"mint.warnings.lnurlWithdrawalsDisabled.meta.offline": "Les retraits étaient désactivés lors du dernier contact",
"mint.warnings.lnurlInvalid.lead": "Le point de terminaison répond mais est invalide.",
"mint.warnings.lnurlInvalid.body": "L'hôte répond, mais pas avec une annonce de mint que ce site sait lire : les retraits risquent donc de ne pas fonctionner. Tout ce qui suit correspond au dernier état lisible, et les avis fonctionnent toujours.",
"mint.warnings.lnurlInvalid.meta": "Répond, mais pas avec une annonce de mint valide",
"mint.warnings.lnurlNoFunding.lead": "Minting et melting indisponibles.",
"mint.warnings.lnurlNoFunding.body": "Les billets existants peuvent toujours être tournés, divisés ou fusionnés, mais rien n'entre ni ne sort par Lightning pour le moment. Le mint lui-même est actif et répond ; le nœud Lightning derrière lui n'est pas joignable depuis celui-ci.",
"mint.warnings.lnurlNoFunding.meta": "Minting et melting indisponibles",
"mint.warnings.also.noFunding": "Son nœud Lightning était également injoignable, il était donc impossible de faire du minting ou du melting."
}