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
@@ -116,6 +116,8 @@
"card.reviewed": "відгук {when}",
"card.noReviews": "Поки що немає відгуків",
"mint.title": "{name} · Відгуки про мінт Cashu",
"mint.titleFedimint": "{name} · Відгуки про федерацію Fedimint",
"mint.titleLnurl": "{name} · Відгуки про LNURL-мінт",
"mint.breadcrumb": "Навігаційний ланцюжок",
"mint.crumbMints": "Мінти Cashu",
"mint.copyUrl": "Скопіювати URL мінту",
@@ -351,7 +353,7 @@
"reviews.validate.short": "Напишіть щонайменше {n} символів, щоб відгук був корисним.",
"reviews.validate.long": "Відгук може містити не більше {n} символів.",
"feed.title": "Останні відгуки про мінти та федерації · Cashumints.space",
"feed.description": "Усі відгуки про мінти й федерації одразу після публікації: {reviews} відгуків про {mints} мінтів Cashu та {federations} федерацій Fedimint, підписаних у Nostr. Нові відгуки показано першими. Фільтруйте за екосистемою, оцінкою або назвою.",
"feed.description": "Кожен відгук про мінт, федерацію та LNURL-мінт одразу після публікації: {reviews} відгуків про {mints} мінтів Cashu, {federations} федерацій Fedimint і {lnurl} LNURL-мінтів, підписаних у Nostr і доступних тут від найновіших. Фільтруйте за екосистемою, оцінкою або назвою.",
"feed.heading": "Останні огляди",
"feed.lede": "Усі відгуки про кожен мінт Cashu і кожну федерацію Fedimint, від найновіших, читаються безпосередньо з Nostr relays. Кожен відгук підписаний автором і зберігається на relays, а не в нашій базі даних.",
"feed.label": "Відгуки",
@@ -428,7 +430,14 @@
"notfound.fb.reviews": "Відгуки",
"notfound.fb.software": "Програмне забезпечення",
"notfound.fb.lastOnline": "Востаннє онлайн",
"notfound.fb.note": "Цей мінт проіндексовано після останньої збірки сайту, тому тут показано зведення з актуального API. Повна сторінка з відгуками з’явиться після наступної збірки.",
"notfound.fb.note": "Цей мінт проіндексовано після останньої збірки сайту, тож тут зведення з живого API, а нижче його відгуки. Повна сторінка з’явиться під час наступної збірки.",
"notfound.resolve.checking": "Перший візит: перевіряємо цей мінт.",
"notfound.resolve.failed": "Не вдалося додати цей мінт",
"notfound.resolve.failedFedimint": "Не вдалося додати цю федерацію",
"notfound.resolve.retry": "Спробувати іншу адресу",
"notfound.resolve.switch": "Відкрити як мінт {kind}",
"notfound.resolve.fedimint": "Адреса сторінки федерації не містить її коду запрошення, тож знайти її лише за посиланням не вийде. Встав код запрошення, і її буде додано.",
"notfound.resolve.ambiguous": "Цю адресу не відновити лише за посиланням. Встав повний URL мінта, і його буде додано.",
"wallets.title": "Гаманці Cashu · Cashumints.space",
"wallets.description": "Гаманці Cashu, що працюють із переліченими тут мінтами на мобільних пристроях, у вебі, браузері та командному рядку, із зазначенням переваг кожного.",
"wallets.heading": "Гаманці",
@@ -696,5 +705,115 @@
"footer.allFedimints": "Усі федерації",
"reviews.dialog.bodyPlaceholder.cashu": "Як працювали внесення через mint, виведення через melt і підтримка? Пишіть конкретно.",
"reviews.dialog.bodyPlaceholder.fedimint": "Як працювали приєднання, платежі Lightning і підтримка? Пишіть конкретно.",
"fedimint.details.title": "Деталі федерації"
"fedimint.details.title": "Деталі федерації",
"nav.lnurlMints": "LNURL-мінти",
"footer.allLnurlMints": "Усі LNURL-мінти",
"lnurlMints.title": "LNURL-мінти: мінти пред'явницьких нот lnurlcash з відгуками | Cashumints.space",
"lnurlMints.description": "Усі {total} LNURL-мінтів, проіндексованих із мережі Nostr: {online} онлайн, {offline} офлайн. Оцінки спільноти, ліміти виведення та можливості кожного.",
"lnurlMints.heading": "LNURL-мінти",
"lnurlMints.lede": "Кожен LNURL-мінт, про який знає цей сайт. LNURL-мінт випускає пред'явницькі ноти lnurlcash: ноти Lightning, які ви тримаєте як секрет і які можна прокрутити, розділити, об'єднати або розплавити назад у платіж Lightning. Кожен перевіряється по HTTPS кожні кілька хвилин.",
"lnurlMints.search.label": "Пошук LNURL-мінтів",
"lnurlMints.search.placeholder": "Пошук за назвою або адресою…",
"lnurlMints.sort.label": "Сортувати LNURL-мінти за",
"lnurlMints.hideOffline": "Сховати офлайн",
"lnurlMints.showing": "Показано {total} LNURL-мінтів ({online} онлайн, {offline} офлайн)",
"lnurlMints.showingFiltered": "Показано {shown} із {total} LNURL-мінтів ({online} онлайн, {offline} офлайн)",
"lnurlMints.noResults": "Жоден LNURL-мінт не збігається.",
"lnurlMints.emptyIndex": "LNURL-мінти ще не проіндексовані.",
"lnurl.crumb": "LNURL-мінти",
"lnurl.breadcrumb": "Хлібні крихти",
"lnurl.copyAddress": "Скопіювати адресу",
"lnurl.more.title": "Інші LNURL-мінти",
"lnurl.more.all": "Усі LNURL-мінти →",
"lnurl.disclaimer": "LNURL-мінт зберігає ваші сати, поки ви тримаєте його ноти, тож користуватися ним означає довіряти його оператору. Оцінки — це думки спільноти, а «онлайн» означає доступний, а не надійний.",
"lnurl.features.title": "Можливості",
"lnurl.features.none": "Цей мінт не оголошував, що він підтримує.",
"lnurl.features.note": "Можливості — це те, що оператор мінта оголосив у Nostr. Там, де сайт може перевірити їх по HTTPS, він це робить і повідомляє, якщо оголошене зараз недоступне.",
"lnurl.features.notListed": "не оголошено",
"lnurl.features.unavailable": "недоступно",
"lnurl.feature.mint": "Карбування через Lightning (LUD-06)",
"lnurl.feature.melt": "Плавлення в Lightning",
"lnurl.feature.notes": "Прокрутка / поділ / об'єднання нот",
"lnurl.feature.lud16": "Lightning-адреса",
"lnurl.feature.lud21": "Перевірка платежу (LUD-21)",
"lnurl.feature.signed-notes": "Підписані ноти (офлайн-перевірка)",
"lnurl.feature.onion": "Tor-адреса",
"lnurl.feature.rotate": "Прокрутити ноту",
"lnurl.feature.split": "Розділити ноту",
"lnurl.feature.merge": "Об'єднати ноти",
"lnurl.feature.lud06": "LUD-06 payRequest",
"lnurl.feature.lud03": "LUD-03 withdrawRequest",
"lnurl.limits.label": "Ліміти виведення",
"lnurl.limits.notPublished": "не опубліковано",
"lnurl.limits.withdrawRow": "Виведення",
"lnurl.limits.disabled": "вимкнено",
"lnurl.limits.sats.one": "{n} сат",
"lnurl.limits.sats.few": "{n} сати",
"lnurl.limits.sats.many": "{n} сатів",
"lnurl.limits.sats.other": "{n} сатів",
"lnurl.details.title": "Дані мінта",
"lnurl.details.address": "Lightning-адреса",
"lnurl.details.mintPubkey": "Публічний ключ мінта",
"lnurl.details.onion": "Tor-адреса",
"lnurl.details.fee": "Комісія за карбування",
"lnurl.details.node": "Вузол",
"lnurl.details.capacity": "Оголошена ємність",
"lnurl.kind.lightningAddress": "Lightning-адреса",
"lnurl.kind.mintPubkey": "публічний ключ мінта",
"lnurl.kind.onionAddress": "Tor-адреса",
"lnurl.confirmed.label": "Останнє підтвердження",
"lnurl.confirmed.when": "підтверджено {when}",
"lnurl.fee.base.one": "{n} сат",
"lnurl.fee.base.few": "{n} сати",
"lnurl.fee.base.many": "{n} сатів",
"lnurl.fee.base.other": "{n} сатів",
"lnurl.fee.percent": "{percent}%",
"home.topLnurl.title": "Найкращі LNURL-мінти",
"home.topLnurl.sub": "за відгуками та оцінкою",
"home.topLnurl.all": "Усі {n} LNURL-мінтів →",
"feed.ecosystem.lnurl": "LNURL",
"reviews.dialog.bodyPlaceholder.lnurl": "Як пройшли карбування, плавлення та прокрутка нот? Пишіть конкретно.",
"reviews.byUrl.open": "Написати відгук",
"reviews.byUrl.title": "Написати відгук",
"reviews.byUrl.lede": "Встав адресу. Якщо сайт її ще не знає, він перевірить її й додасть зараз.",
"reviews.byUrl.label.cashu": "URL мінта",
"reviews.byUrl.label.fedimint": "Код запрошення федерації",
"reviews.byUrl.label.lnurl": "URL LNURL-мінта",
"reviews.byUrl.placeholder.cashu": "mint.example.com",
"reviews.byUrl.placeholder.fedimint": "fed11…",
"reviews.byUrl.placeholder.lnurl": "mint.example.com",
"reviews.byUrl.check": "Перевірити цю адресу",
"reviews.byUrl.checking": "Перевіряємо…",
"reviews.byUrl.back": "Інша адреса",
"reviews.byUrl.existing": "Уже в списку",
"reviews.byUrl.indexed": "Щойно додано",
"reviews.byUrl.confirmClose": "Закрити? Введена адреса не збережеться.",
"reviews.byUrl.detected": "Ця адреса відповіла як мінт {kind}.",
"reviews.byUrl.switchTo": "Оцінити як мінт {kind}",
"reviews.byUrl.error.empty": "Спочатку введи адресу.",
"reviews.byUrl.error.badUrl": "Це не схоже на URL мінта.",
"reviews.byUrl.error.badInvite": "Це не код запрошення Fedimint. Коди починаються з fed11.",
"reviews.byUrl.error.badInput": "Сайт не може перевірити цю адресу.",
"reviews.byUrl.error.blocked": "Це не публічна адреса, тож перевірити її не можна.",
"reviews.byUrl.error.notAMint": "Адреса відповіла, але не як мінт цього типу.",
"reviews.byUrl.error.wrongType": "Адреса відповіла, але як мінт іншого типу.",
"reviews.byUrl.error.unverifiable": "За цією адресою ніщо не відповіло, і в Nostr про неї поки що немає й сліду.",
"reviews.byUrl.error.rateLimited.one": "Забагато перевірок з одного з’єднання. Спробуй ще раз приблизно через {n} хвилину.",
"reviews.byUrl.error.rateLimited.other": "Забагато перевірок з одного з’єднання. Спробуй ще раз приблизно через {n} хвилин.",
"reviews.byUrl.error.network": "Не вдалося зв’язатися з індексом. Перевір з’єднання і спробуй ще раз.",
"seo.lnurl.titleNoReviews": "{name}: інформація та відгуки про LNURL-мінт | Cashumints.space",
"seo.desc.statusWithdraw": "{status}, виведення {min}–{max} сат.",
"mint.chip.noFunding": "Без карбування / плавлення",
"mint.warnings.lnurlWithdrawalsDisabled.lead": "Виведення вимкнено.",
"mint.warnings.lnurlWithdrawalsDisabled.body.online": "Цей мінт оголошує максимальне виведення в нуль, тож жодну випущену ним ноту не можна ні на що обміняти. Не карбуйте тут, доки це не зміниться.",
"mint.warnings.lnurlWithdrawalsDisabled.body.offline": "Під час останнього контакту цей мінт оголошував максимальне виведення в нуль, тож жодну випущену ним ноту не можна було ні на що обміняти. Не карбуйте тут, доки це не зміниться.",
"mint.warnings.lnurlWithdrawalsDisabled.meta.online": "Виведення зараз вимкнено",
"mint.warnings.lnurlWithdrawalsDisabled.meta.offline": "Під час останнього контакту виведення було вимкнено",
"mint.warnings.lnurlInvalid.lead": "Ендпоінт відповідає, але некоректно.",
"mint.warnings.lnurlInvalid.body": "Хост відповідає, але не оголошенням мінта, яке сайт може прочитати, тож виведення може не працювати. Нижче — останній стан, який вдалося розібрати, а відгуки й далі працюють.",
"mint.warnings.lnurlInvalid.meta": "Відповідає, але не коректним оголошенням мінта",
"mint.warnings.lnurlNoFunding.lead": "Карбування та плавлення недоступні.",
"mint.warnings.lnurlNoFunding.body": "Наявні ноти й далі можна прокрутити, розділити або об'єднати, але зараз через Lightning нічого не входить і не виходить. Сам мінт працює й відповідає; вузол Lightning за ним для нього недоступний.",
"mint.warnings.lnurlNoFunding.meta": "Карбування та плавлення недоступні",
"mint.warnings.also.noFunding": "Його вузол Lightning теж був недоступний, тож нічого не можна було відкарбувати чи розплавити."
}