From a6cdfb550d91c939f39215ed50b352e48faf0768 Mon Sep 17 00:00:00 2001 From: koofree Date: Sat, 30 Aug 2025 19:55:53 +0900 Subject: [PATCH 1/4] feat: Add blockchain information display and NFT data handling --- locales/cs-CZ.json | 2 + locales/da-DK.json | 2 + locales/de-DE.json | 2 + locales/en-US.json | 2 + locales/es-ES.json | 2 + locales/fi-FI.json | 2 + locales/fr-FR.json | 2 + locales/hu-HU.json | 2 + locales/it-IT.json | 2 + locales/ja-JP.json | 2 + locales/ko-KR.json | 2 + locales/nb-NO.json | 2 + locales/nl-NL.json | 2 + locales/pl-PL.json | 2 + locales/pt-BR.json | 2 + locales/ru-RU.json | 2 + locales/sv-SE.json | 2 + locales/tr-TR.json | 2 + locales/uk-UA.json | 2 + locales/zh-CN.json | 2 + locales/zh-TW.json | 2 + locales/zz-ZZ.json | 2 + src/lib/asset.ts | 3 + src/lib/selectors/nftInfo.spec.ts | 118 ++++++++++++++++++ src/lib/selectors/nftInfo.ts | 64 ++++++++++ .../ProcessSection/BlockchainSection.svelte | 81 ++++++++++++ .../ProcessSection/ProcessSection.svelte | 4 + 27 files changed, 314 insertions(+) create mode 100644 src/lib/selectors/nftInfo.spec.ts create mode 100644 src/lib/selectors/nftInfo.ts create mode 100644 src/routes/verify/components/DetailedInfo/ProcessSection/BlockchainSection.svelte diff --git a/locales/cs-CZ.json b/locales/cs-CZ.json index 3895b2f42..1463f355f 100644 --- a/locales/cs-CZ.json +++ b/locales/cs-CZ.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Vytvořen nový obsah pomocí referenčního obsahu", "sidebar.verify.process.actions.reference.unknown.title": "Vytvořeno pomocí referenčního obsahu", "sidebar.verify.process.app": "Použitá aplikace nebo zařízení", + "sidebar.verify.process.blockchain": "Blockchainový záznam", "sidebar.verify.process.description": "Aplikace nebo zařízení použité k vytvoření tohoto obsahu zaznamenaly následující informace:", "sidebar.verify.process.ingredients": "Komponenty", + "sidebar.verify.process.viewOnExplorer": "Zobrazit v průzkumníku", "sidebar.verify.recovery.noMatches": "Nebyly nalezeny žádné shody.", "sidebar.verify.recovery.possibleMatches": "Možné shody", "sidebar.verify.search": "Hledat možné shody", diff --git a/locales/da-DK.json b/locales/da-DK.json index f3eb2767f..ba20c0280 100644 --- a/locales/da-DK.json +++ b/locales/da-DK.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Skabte nyt indhold vha. referenceindhold", "sidebar.verify.process.actions.reference.unknown.title": "Skabt vha. referenceindhold", "sidebar.verify.process.app": "Anvendt app eller enhed", + "sidebar.verify.process.blockchain": "Blockchain-registrering", "sidebar.verify.process.description": "Den app eller enhed, der er blevet anvendt til at producere dette indhold, har registreret følgende oplysninger:", "sidebar.verify.process.ingredients": "Ingredienser", + "sidebar.verify.process.viewOnExplorer": "Vis i Explorer", "sidebar.verify.recovery.noMatches": "Der blev ikke fundet nogen matches", "sidebar.verify.recovery.possibleMatches": "Mulige matches", "sidebar.verify.search": "Søg efter mulige matches", diff --git a/locales/de-DE.json b/locales/de-DE.json index e15e0152d..b36e71c30 100644 --- a/locales/de-DE.json +++ b/locales/de-DE.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Unter Verwendung von Referenzinhalten erstellte neue Inhalte", "sidebar.verify.process.actions.reference.unknown.title": "Unter Verwendung von Referenzinhalten erstellt", "sidebar.verify.process.app": "Verwendete Applikation oder verwendetes Gerät", + "sidebar.verify.process.blockchain": "Blockchain-Eintrag", "sidebar.verify.process.description": "Die Applikation bzw. das Gerät, die bzw. das zur Erstellung dieses Inhalts verwendet wurde, hat die folgenden Informationen dokumentiert:", "sidebar.verify.process.ingredients": "Bestandteile", + "sidebar.verify.process.viewOnExplorer": "Im Explorer anzeigen", "sidebar.verify.recovery.noMatches": "Keine Übereinstimmungen gefunden", "sidebar.verify.recovery.possibleMatches": "Mögliche Übereinstimmungen", "sidebar.verify.search": "Nach möglichen Übereinstimmungen suchen", diff --git a/locales/en-US.json b/locales/en-US.json index b1eee5afd..352117212 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Created new content using reference content", "sidebar.verify.process.actions.reference.unknown.title": "Created using reference content", "sidebar.verify.process.app": "App or device used", + "sidebar.verify.process.blockchain": "Blockchain Record", "sidebar.verify.process.description": "The app or device used to produce this content recorded the following info:", "sidebar.verify.process.ingredients": "Ingredients", + "sidebar.verify.process.viewOnExplorer": "View on Explorer", "sidebar.verify.recovery.noMatches": "No matches found", "sidebar.verify.recovery.possibleMatches": "Possible matches", "sidebar.verify.search": "Search for possible matches", diff --git a/locales/es-ES.json b/locales/es-ES.json index 98995cf20..5ed206aba 100644 --- a/locales/es-ES.json +++ b/locales/es-ES.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Se ha creado contenido nuevo utilizando materiales de referencia", "sidebar.verify.process.actions.reference.unknown.title": "Se ha creado usando contenido de referencia", "sidebar.verify.process.app": "Aplicación o dispositivo utilizado", + "sidebar.verify.process.blockchain": "Registro de Blockchain", "sidebar.verify.process.description": "La aplicación o dispositivo utilizado para producir este contenido ha registrado la siguiente información:", "sidebar.verify.process.ingredients": "Ingredientes", + "sidebar.verify.process.viewOnExplorer": "Ver en el Explorador", "sidebar.verify.recovery.noMatches": "No se han encontrado coincidencias", "sidebar.verify.recovery.possibleMatches": "Posibles coincidencias", "sidebar.verify.search": "Buscar posibles coincidencias", diff --git a/locales/fi-FI.json b/locales/fi-FI.json index 0e52b52f6..f81f4d01e 100644 --- a/locales/fi-FI.json +++ b/locales/fi-FI.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Luotu uutta sisältöä viitesisällön avulla", "sidebar.verify.process.actions.reference.unknown.title": "Luotu viitesisällön avulla", "sidebar.verify.process.app": "Käytetty sovellus tai laite", + "sidebar.verify.process.blockchain": "Lohkoketjutietue", "sidebar.verify.process.description": "Tämän sisällön tuottamiseen käytetty sovellus tai laite tallensi seuraavat tiedot:", "sidebar.verify.process.ingredients": "Elementit", + "sidebar.verify.process.viewOnExplorer": "Näytä Explorerissa", "sidebar.verify.recovery.noMatches": "Vastaavuuksia ei löytynyt.", "sidebar.verify.recovery.possibleMatches": "Mahdolliset vastaavuudet", "sidebar.verify.search": "Hae mahdollisia vastaavuuksia", diff --git a/locales/fr-FR.json b/locales/fr-FR.json index ead7a515c..19bd39c64 100644 --- a/locales/fr-FR.json +++ b/locales/fr-FR.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Création de contenu à l’aide de contenu de référence", "sidebar.verify.process.actions.reference.unknown.title": "Création à l’aide de contenu de référence", "sidebar.verify.process.app": "Application ou appareil utilisé(e)", + "sidebar.verify.process.blockchain": "Enregistrement Blockchain", "sidebar.verify.process.description": "L’application ou l’appareil utilisé(e) pour produire ce contenu a enregistré les informations suivantes :", "sidebar.verify.process.ingredients": "Ingrédients", + "sidebar.verify.process.viewOnExplorer": "Voir dans l'explorateur", "sidebar.verify.recovery.noMatches": "Aucun résultat", "sidebar.verify.recovery.possibleMatches": "Correspondances possibles", "sidebar.verify.search": "Rechercher des correspondances possibles", diff --git a/locales/hu-HU.json b/locales/hu-HU.json index 8bad90412..5e21c2e14 100644 --- a/locales/hu-HU.json +++ b/locales/hu-HU.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Új tartalom létrehozva referenciatartalom felhasználásával", "sidebar.verify.process.actions.reference.unknown.title": "Referenciatartalom felhasználásával létrehozva", "sidebar.verify.process.app": "Használt alkalmazás vagy eszköz", + "sidebar.verify.process.blockchain": "Blokklánc rekord", "sidebar.verify.process.description": "A tartalom előállításához használt alkalmazás vagy eszköz a következő információkat rögzítette:", "sidebar.verify.process.ingredients": "Összetevők", + "sidebar.verify.process.viewOnExplorer": "Megtekintés az Explorerben", "sidebar.verify.recovery.noMatches": "Nincs találat", "sidebar.verify.recovery.possibleMatches": "Lehetséges egyezések", "sidebar.verify.search": "Keressen lehetséges egyezéseket", diff --git a/locales/it-IT.json b/locales/it-IT.json index c699096bd..2f27922ed 100644 --- a/locales/it-IT.json +++ b/locales/it-IT.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Creato nuovo contenuto utilizzando contenuti di riferimento", "sidebar.verify.process.actions.reference.unknown.title": "Creato utilizzando contenuti di riferimento", "sidebar.verify.process.app": "App o dispositivo utilizzati", + "sidebar.verify.process.blockchain": "Registro Blockchain", "sidebar.verify.process.description": "L'app o il dispositivo utilizzati per produrre questo contenuto hanno registrato le seguenti informazioni:", "sidebar.verify.process.ingredients": "Ingredienti", + "sidebar.verify.process.viewOnExplorer": "Visualizza nell'Explorer", "sidebar.verify.recovery.noMatches": "Nessuna corrispondenza trovata", "sidebar.verify.recovery.possibleMatches": "Possibili associazioni", "sidebar.verify.search": "Cerca possibili corrispondenze", diff --git a/locales/ja-JP.json b/locales/ja-JP.json index efd7bb53f..b0af2d246 100644 --- a/locales/ja-JP.json +++ b/locales/ja-JP.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "参照コンテンツを使用して新しいコンテンツを作成しました", "sidebar.verify.process.actions.reference.unknown.title": "参照コンテンツを使用して作成しました", "sidebar.verify.process.app": "使用するアプリまたはデバイス", + "sidebar.verify.process.blockchain": "ブロックチェーン記録", "sidebar.verify.process.description": "このコンテンツの作成に使用されたアプリまたはデバイスには、次の情報が記録されました。", "sidebar.verify.process.ingredients": "構成要素", + "sidebar.verify.process.viewOnExplorer": "エクスプローラーで表示", "sidebar.verify.recovery.noMatches": "一致が見つかりません", "sidebar.verify.recovery.possibleMatches": "一致候補", "sidebar.verify.search": "一致候補を検索", diff --git a/locales/ko-KR.json b/locales/ko-KR.json index 473024ae6..bd60ca0f0 100644 --- a/locales/ko-KR.json +++ b/locales/ko-KR.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "참조 콘텐츠를 사용하여 새 콘텐츠 생성됨", "sidebar.verify.process.actions.reference.unknown.title": "참조 콘텐츠를 사용하여 생성됨", "sidebar.verify.process.app": "사용된 앱 또는 디바이스", + "sidebar.verify.process.blockchain": "블록체인 기록", "sidebar.verify.process.description": "이 콘텐츠를 제작하는 데 사용된 앱 또는 디바이스가 다음 정보를 기록했습니다.", "sidebar.verify.process.ingredients": "요소", + "sidebar.verify.process.viewOnExplorer": "익스플로러에서 보기", "sidebar.verify.recovery.noMatches": "일치 항목을 찾을 수 없음", "sidebar.verify.recovery.possibleMatches": "가능한 일치 항목", "sidebar.verify.search": "잠재적 일치 항목 검색", diff --git a/locales/nb-NO.json b/locales/nb-NO.json index b65ebcf31..f4ec42023 100644 --- a/locales/nb-NO.json +++ b/locales/nb-NO.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Opprettet nytt innhold ved hjelp av referanseinnhold", "sidebar.verify.process.actions.reference.unknown.title": "Opprettet ved hjelp av referanseinnhold", "sidebar.verify.process.app": "Applikasjon eller enhet som er brukt", + "sidebar.verify.process.blockchain": "Blokkjede-registrering", "sidebar.verify.process.description": "Applikasjonen eller enheten som ble brukt til å lage dette innholdet, har registrert følgende informasjon:", "sidebar.verify.process.ingredients": "Bestanddeler", + "sidebar.verify.process.viewOnExplorer": "Vis i Explorer", "sidebar.verify.recovery.noMatches": "Finner ingen treff", "sidebar.verify.recovery.possibleMatches": "Mulige treff", "sidebar.verify.search": "Søk etter potensielle treff", diff --git a/locales/nl-NL.json b/locales/nl-NL.json index d0f9173cc..a8b3b96b0 100644 --- a/locales/nl-NL.json +++ b/locales/nl-NL.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Nieuwe content gemaakt met behulp van referentiecontent", "sidebar.verify.process.actions.reference.unknown.title": "Gemaakt met behulp van referentiecontent", "sidebar.verify.process.app": "Gebruikte app of apparaat", + "sidebar.verify.process.blockchain": "Blockchain-record", "sidebar.verify.process.description": "De app of het apparaat dat is gebruikt om deze content te produceren, heeft de volgende informatie vastgelegd:", "sidebar.verify.process.ingredients": "Bestanddelen", + "sidebar.verify.process.viewOnExplorer": "Bekijk in Explorer", "sidebar.verify.recovery.noMatches": "Geen overeenkomsten gevonden", "sidebar.verify.recovery.possibleMatches": "Mogelijke overeenkomsten", "sidebar.verify.search": "Zoeken naar mogelijke overeenkomsten", diff --git a/locales/pl-PL.json b/locales/pl-PL.json index a6f2791a2..6b990588d 100644 --- a/locales/pl-PL.json +++ b/locales/pl-PL.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Utworzono nową zawartość przy użyciu zawartości referencyjnej", "sidebar.verify.process.actions.reference.unknown.title": "Utworzono przy użyciu zawartości referencyjnej", "sidebar.verify.process.app": "Użyta aplikacja lub urządzenie", + "sidebar.verify.process.blockchain": "Rekord Blockchain", "sidebar.verify.process.description": "Aplikacja lub urządzenie użyte do wytworzenia tych treści zarejestrowało następujące informacje:", "sidebar.verify.process.ingredients": "Składniki", + "sidebar.verify.process.viewOnExplorer": "Zobacz w Eksploratorze", "sidebar.verify.recovery.noMatches": "Nie znaleziono pasujących elementów", "sidebar.verify.recovery.possibleMatches": "Potencjalnie zgodne", "sidebar.verify.search": "Wyszukiwanie pasujących elementów", diff --git a/locales/pt-BR.json b/locales/pt-BR.json index 038f8f737..d89f94231 100644 --- a/locales/pt-BR.json +++ b/locales/pt-BR.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Criou conteúdo usando material de referência", "sidebar.verify.process.actions.reference.unknown.title": "Criou usando material de referência", "sidebar.verify.process.app": "Aplicativo ou dispositivo usado", + "sidebar.verify.process.blockchain": "Registro Blockchain", "sidebar.verify.process.description": "O aplicativo ou dispositivo usado para produzir este conteúdo registrou as seguintes informações:", "sidebar.verify.process.ingredients": "Ingredientes", + "sidebar.verify.process.viewOnExplorer": "Ver no Explorador", "sidebar.verify.recovery.noMatches": "Nenhuma correspondência encontrada", "sidebar.verify.recovery.possibleMatches": "Possíveis correspondências", "sidebar.verify.search": "Pesquisar possíveis correspondências", diff --git a/locales/ru-RU.json b/locales/ru-RU.json index ea3a4ded2..6a223b750 100644 --- a/locales/ru-RU.json +++ b/locales/ru-RU.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Создан новый контент с использованием эталонного контента", "sidebar.verify.process.actions.reference.unknown.title": "Создано с использованием эталонного контента", "sidebar.verify.process.app": "Использованное приложение или устройство", + "sidebar.verify.process.blockchain": "Запись блокчейна", "sidebar.verify.process.description": "Данные, зарегистрированные приложением или устройством, с помощью которого создан этот контент:", "sidebar.verify.process.ingredients": "Ингредиенты", + "sidebar.verify.process.viewOnExplorer": "Просмотр в обозревателе", "sidebar.verify.recovery.noMatches": "Совпадений не найдено", "sidebar.verify.recovery.possibleMatches": "Возможные совпадения", "sidebar.verify.search": "Поиск возможных совпадений", diff --git a/locales/sv-SE.json b/locales/sv-SE.json index 8db8ea06d..70b48ea7e 100644 --- a/locales/sv-SE.json +++ b/locales/sv-SE.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Skapade nytt innehåll med hjälp av referensinnehåll", "sidebar.verify.process.actions.reference.unknown.title": "Skapad med hjälp av referensinnehåll", "sidebar.verify.process.app": "Begagnad app eller enhet", + "sidebar.verify.process.blockchain": "Blockkedjepost", "sidebar.verify.process.description": "Appen eller enheten som användes för att producera detta innehåll registrerade följande information:", "sidebar.verify.process.ingredients": "Ingredienser", + "sidebar.verify.process.viewOnExplorer": "Visa i Explorer", "sidebar.verify.recovery.noMatches": "Inga matchningar hittades", "sidebar.verify.recovery.possibleMatches": "Möjliga matchningar", "sidebar.verify.search": "Sök efter möjliga matchningar", diff --git a/locales/tr-TR.json b/locales/tr-TR.json index 9cfe8df69..33d2841cc 100644 --- a/locales/tr-TR.json +++ b/locales/tr-TR.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Referans içerik kullanılarak yeni içerik oluşturuldu", "sidebar.verify.process.actions.reference.unknown.title": "Referans içerik kullanılarak oluşturuldu", "sidebar.verify.process.app": "Kullanılan uygulama veya cihaz", + "sidebar.verify.process.blockchain": "Blockchain Kaydı", "sidebar.verify.process.description": "Bu içeriği oluşturmak için kullanılan uygulama veya cihaz aşağıdaki bilgileri kaydetti:", "sidebar.verify.process.ingredients": "Malzemeler", + "sidebar.verify.process.viewOnExplorer": "Explorer'da Görüntüle", "sidebar.verify.recovery.noMatches": "Eşleşme bulunamadı", "sidebar.verify.recovery.possibleMatches": "Olası eşleşmeler", "sidebar.verify.search": "Olası eşleşmeleri arayın", diff --git a/locales/uk-UA.json b/locales/uk-UA.json index 65e0d0f86..613995a92 100644 --- a/locales/uk-UA.json +++ b/locales/uk-UA.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Створено новий вміст на базі еталонного", "sidebar.verify.process.actions.reference.unknown.title": "Створено на базі еталонного вмісту", "sidebar.verify.process.app": "Використана програма або пристрій", + "sidebar.verify.process.blockchain": "Запис блокчейну", "sidebar.verify.process.description": "Програма або пристрій, використані для створення цього вмісту, записали таку інформацію:", "sidebar.verify.process.ingredients": "Компоненти", + "sidebar.verify.process.viewOnExplorer": "Переглянути в Explorer", "sidebar.verify.recovery.noMatches": "Збігів не знайдено", "sidebar.verify.recovery.possibleMatches": "Можливі збіги", "sidebar.verify.search": "Пошук можливих збігів", diff --git a/locales/zh-CN.json b/locales/zh-CN.json index 454966f83..381c21298 100644 --- a/locales/zh-CN.json +++ b/locales/zh-CN.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "使用参考内容创建新内容", "sidebar.verify.process.actions.reference.unknown.title": "使用参考内容创建", "sidebar.verify.process.app": "使用的应用程序或设备", + "sidebar.verify.process.blockchain": "区块链记录", "sidebar.verify.process.description": "用于生成此内容的应用程序或设备已记录以下信息:", "sidebar.verify.process.ingredients": "成分", + "sidebar.verify.process.viewOnExplorer": "在浏览器中查看", "sidebar.verify.recovery.noMatches": "未找到匹配项", "sidebar.verify.recovery.possibleMatches": "可能的匹配项", "sidebar.verify.search": "搜索可能的匹配项", diff --git a/locales/zh-TW.json b/locales/zh-TW.json index 92b4b6480..47e31b629 100644 --- a/locales/zh-TW.json +++ b/locales/zh-TW.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "已使用參考內容建立新內容", "sidebar.verify.process.actions.reference.unknown.title": "已使用參考內容建立", "sidebar.verify.process.app": "使用的應用程式或裝置", + "sidebar.verify.process.blockchain": "區塊鏈記錄", "sidebar.verify.process.description": "用於製作此內容的應用程式或裝置記錄了以下資訊:", "sidebar.verify.process.ingredients": "元素", + "sidebar.verify.process.viewOnExplorer": "在瀏覽器中查看", "sidebar.verify.recovery.noMatches": "找不到相符項目", "sidebar.verify.recovery.possibleMatches": "可能的相符項目", "sidebar.verify.search": "搜尋可能的相符項目", diff --git a/locales/zz-ZZ.json b/locales/zz-ZZ.json index bfe61e96e..827e3fd0f 100644 --- a/locales/zz-ZZ.json +++ b/locales/zz-ZZ.json @@ -173,8 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "[C0] _üCreated new content using reference content", "sidebar.verify.process.actions.reference.unknown.title": "[C1] _üCreated using reference content", "sidebar.verify.process.app": "[7] _üApp or device used", + "sidebar.verify.process.blockchain": "Blockchain Record", "sidebar.verify.process.description": "[8] _üThe app or device used to produce this content recorded the following info:", "sidebar.verify.process.ingredients": "[9] _üIngredients", + "sidebar.verify.process.viewOnExplorer": "View on Explorer", "sidebar.verify.recovery.noMatches": "[B4] _üNo matches found", "sidebar.verify.recovery.possibleMatches": "[Bf] _üPossible matches", "sidebar.verify.search": "[BI] _üSearch for possible matches", diff --git a/src/lib/asset.ts b/src/lib/asset.ts index 6a86b3841..031963129 100644 --- a/src/lib/asset.ts +++ b/src/lib/asset.ts @@ -28,6 +28,7 @@ import { selectModelsFromIngredient, type GenerativeInfo, } from './selectors/generativeInfo'; +import { selectNFTInfo, type NFTInfo } from './selectors/nftInfo'; import { selectReviewRatings } from './selectors/reviewRatings'; import { selectValidationResult, @@ -84,6 +85,7 @@ export type ManifestData = { web3Accounts: [string, string[]][]; website: string | null; autoDubInfo: AutoDubInfo | null; + nftInfo: NFTInfo | null; }; export type AssetDataMap = Record; @@ -404,6 +406,7 @@ export async function resultToAssetMap({ web3Accounts: selectWeb3(manifest), website: selectWebsite(manifest), autoDubInfo: selectAutoDubInfo(manifest), + nftInfo: selectNFTInfo(manifest), }; } diff --git a/src/lib/selectors/nftInfo.spec.ts b/src/lib/selectors/nftInfo.spec.ts new file mode 100644 index 000000000..bff8dabbd --- /dev/null +++ b/src/lib/selectors/nftInfo.spec.ts @@ -0,0 +1,118 @@ +// Copyright 2021-2024 Adobe, Copyright 2025 The C2PA Contributors + +import { describe, expect, it } from 'vitest'; +import type { Manifest } from 'c2pa'; +import { selectNFTInfo } from './nftInfo'; + +describe('selectNFTInfo', () => { + it('should extract NFT information from c2pa.nft assertion', () => { + const mockManifest = { + assertions: { + data: [ + { + label: 'c2pa.nft', + data: { + token_id: '9', + blockchain: { + name: 'firmachain', + network: 'testnet', + chain_id: 1337, + }, + explorer_url: + 'https://explorer-testnet.firmachain.dev/transactions/488714A76188BCE587697FD7E27A3EAD2F1BCDF2E47D9E30B6A1C5B6784CA4FA', + transaction_hash: + '488714A76188BCE587697FD7E27A3EAD2F1BCDF2E47D9E30B6A1C5B6784CA4FA', + }, + }, + ], + }, + } as unknown as Manifest; + + const result = selectNFTInfo(mockManifest); + + expect(result).toEqual({ + token_id: '9', + blockchain: { + name: 'firmachain', + network: 'testnet', + chain_id: 1337, + }, + explorer_url: + 'https://explorer-testnet.firmachain.dev/transactions/488714A76188BCE587697FD7E27A3EAD2F1BCDF2E47D9E30B6A1C5B6784CA4FA', + transaction_hash: + '488714A76188BCE587697FD7E27A3EAD2F1BCDF2E47D9E30B6A1C5B6784CA4FA', + }); + }); + + it('should handle c2pa.nft assertion with index suffix', () => { + const mockManifest = { + assertions: { + data: [ + { + label: 'c2pa.nft__1', + data: { + token_id: '123', + blockchain: { + name: 'ethereum', + network: 'mainnet', + chain_id: 1, + }, + explorer_url: 'https://etherscan.io/tx/0xabc123', + transaction_hash: '0xabc123', + }, + }, + ], + }, + } as unknown as Manifest; + + const result = selectNFTInfo(mockManifest); + + expect(result).toEqual({ + token_id: '123', + blockchain: { + name: 'ethereum', + network: 'mainnet', + chain_id: 1, + }, + explorer_url: 'https://etherscan.io/tx/0xabc123', + transaction_hash: '0xabc123', + }); + }); + + it('should return null when no NFT assertion exists', () => { + const mockManifest = { + assertions: { + data: [ + { + label: 'c2pa.actions', + data: {}, + }, + ], + }, + } as unknown as Manifest; + + const result = selectNFTInfo(mockManifest); + + expect(result).toBeNull(); + }); + + it('should return null when NFT data is incomplete', () => { + const mockManifest = { + assertions: { + data: [ + { + label: 'c2pa.nft', + data: { + token_id: '9', + // Missing required fields + }, + }, + ], + }, + } as unknown as Manifest; + + const result = selectNFTInfo(mockManifest); + + expect(result).toBeNull(); + }); +}); diff --git a/src/lib/selectors/nftInfo.ts b/src/lib/selectors/nftInfo.ts new file mode 100644 index 000000000..6fb9470a6 --- /dev/null +++ b/src/lib/selectors/nftInfo.ts @@ -0,0 +1,64 @@ +// Copyright 2021-2024 Adobe, Copyright 2025 The C2PA Contributors + +import type { Manifest } from 'c2pa'; + +export type NFTInfo = { + token_id: string; + blockchain: { + name: string; + network: string; + chain_id: number; + }; + explorer_url: string; + transaction_hash: string; +}; + +export function selectNFTInfo(manifest: Manifest): NFTInfo | null { + // Access the raw assertion data to find custom c2pa.nft assertion + const rawAssertions = manifest.assertions.data; + + // Debug: Log all assertion labels to see what's available + console.log( + '[NFT Debug] Available assertions:', + rawAssertions.map((a) => a.label), + ); + console.log('[NFT Debug] Raw assertions data:', rawAssertions); + + // Find the c2pa.nft assertion in the raw data + // Check both with and without the 'c2pa.' prefix as it might be stored differently + const nftAssertion = rawAssertions.find((assertion) => { + const label = assertion.label || ''; + + return ( + label === 'c2pa.nft' || + label === 'nft' || + label.startsWith('c2pa.nft__') || + label.startsWith('nft__') + ); + }); + + if (nftAssertion) { + console.log('[NFT Debug] Found NFT assertion:', nftAssertion); + + const nftData = nftAssertion.data; + + // Validate that the data has the expected structure + if ( + typeof nftData === 'object' && + 'token_id' in nftData && + 'blockchain' in nftData && + 'explorer_url' in nftData && + 'transaction_hash' in nftData + ) { + console.log('[NFT Debug] Valid NFT data found:', nftData); + + return nftData as NFTInfo; + } else { + console.log('[NFT Debug] NFT data missing required fields:', nftData); + } + } else { + console.log('[NFT Debug] No NFT assertion found'); + } + + return null; +} diff --git a/src/routes/verify/components/DetailedInfo/ProcessSection/BlockchainSection.svelte b/src/routes/verify/components/DetailedInfo/ProcessSection/BlockchainSection.svelte new file mode 100644 index 000000000..e06e7ea8d --- /dev/null +++ b/src/routes/verify/components/DetailedInfo/ProcessSection/BlockchainSection.svelte @@ -0,0 +1,81 @@ + + + + + + {$_('sidebar.verify.process.blockchain', { + default: 'Blockchain Record', + })} +
+ + +
+
+ Network: + {networkDisplay} +
+
+ Token ID: + {blockchainData.token_id} +
+
+ Transaction: + + {blockchainData.transaction_hash.slice( + 0, + 10, + )}...{blockchainData.transaction_hash.slice(-8)} + +
+ +
+
+
+
+
diff --git a/src/routes/verify/components/DetailedInfo/ProcessSection/ProcessSection.svelte b/src/routes/verify/components/DetailedInfo/ProcessSection/ProcessSection.svelte index 90a7b2996..914aeff5c 100644 --- a/src/routes/verify/components/DetailedInfo/ProcessSection/ProcessSection.svelte +++ b/src/routes/verify/components/DetailedInfo/ProcessSection/ProcessSection.svelte @@ -8,6 +8,7 @@ import AiSubSection from './AISubSection.svelte'; import ActionsSection from './ActionsSection.svelte'; import AppDeviceSection from './AppDeviceSection.svelte'; + import BlockchainSection from './BlockchainSection.svelte'; import IngredientsSection from './IngredientsSection.svelte'; export let manifestData: ManifestData; @@ -38,6 +39,9 @@ {/if} {/await} + {#if manifestData.nftInfo} + + {/if} {#if ingredients.length} {/if} From 19f808e08514e95bbf17d8dfbfd63d0e0976c55f Mon Sep 17 00:00:00 2001 From: koofree Date: Mon, 1 Sep 2025 17:07:14 +0900 Subject: [PATCH 2/4] fix: standardize capitalization of "Blockchain record" in localization files --- locales/en-US.json | 2 +- locales/zz-ZZ.json | 2 +- .../DetailedInfo/ProcessSection/BlockchainSection.svelte | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/locales/en-US.json b/locales/en-US.json index 352117212..2ec548653 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -173,7 +173,7 @@ "sidebar.verify.process.actions.reference.unknown.description": "Created new content using reference content", "sidebar.verify.process.actions.reference.unknown.title": "Created using reference content", "sidebar.verify.process.app": "App or device used", - "sidebar.verify.process.blockchain": "Blockchain Record", + "sidebar.verify.process.blockchain": "Blockchain record", "sidebar.verify.process.description": "The app or device used to produce this content recorded the following info:", "sidebar.verify.process.ingredients": "Ingredients", "sidebar.verify.process.viewOnExplorer": "View on Explorer", diff --git a/locales/zz-ZZ.json b/locales/zz-ZZ.json index 827e3fd0f..fd494152d 100644 --- a/locales/zz-ZZ.json +++ b/locales/zz-ZZ.json @@ -173,7 +173,7 @@ "sidebar.verify.process.actions.reference.unknown.description": "[C0] _üCreated new content using reference content", "sidebar.verify.process.actions.reference.unknown.title": "[C1] _üCreated using reference content", "sidebar.verify.process.app": "[7] _üApp or device used", - "sidebar.verify.process.blockchain": "Blockchain Record", + "sidebar.verify.process.blockchain": "Blockchain record", "sidebar.verify.process.description": "[8] _üThe app or device used to produce this content recorded the following info:", "sidebar.verify.process.ingredients": "[9] _üIngredients", "sidebar.verify.process.viewOnExplorer": "View on Explorer", diff --git a/src/routes/verify/components/DetailedInfo/ProcessSection/BlockchainSection.svelte b/src/routes/verify/components/DetailedInfo/ProcessSection/BlockchainSection.svelte index e06e7ea8d..5b040f235 100644 --- a/src/routes/verify/components/DetailedInfo/ProcessSection/BlockchainSection.svelte +++ b/src/routes/verify/components/DetailedInfo/ProcessSection/BlockchainSection.svelte @@ -24,7 +24,7 @@ {$_('sidebar.verify.process.blockchain', { - default: 'Blockchain Record', + default: 'Blockchain record', })}
From f86a85552620f0d7e25e76fb592bfe6d64eef309 Mon Sep 17 00:00:00 2001 From: koofree Date: Mon, 1 Sep 2025 17:28:17 +0900 Subject: [PATCH 3/4] fix: standardize capitalization of "explorer" in localization files --- locales/da-DK.json | 2 +- locales/de-DE.json | 2 +- locales/en-US.json | 2 +- locales/es-ES.json | 4 ++-- locales/fi-FI.json | 2 +- locales/fr-FR.json | 4 ++-- locales/hu-HU.json | 2 +- locales/it-IT.json | 4 ++-- locales/nb-NO.json | 2 +- locales/nl-NL.json | 2 +- locales/pl-PL.json | 4 ++-- locales/pt-BR.json | 4 ++-- locales/sv-SE.json | 2 +- locales/tr-TR.json | 4 ++-- locales/uk-UA.json | 2 +- locales/zz-ZZ.json | 2 +- 16 files changed, 22 insertions(+), 22 deletions(-) diff --git a/locales/da-DK.json b/locales/da-DK.json index ba20c0280..b7f10cb32 100644 --- a/locales/da-DK.json +++ b/locales/da-DK.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain-registrering", "sidebar.verify.process.description": "Den app eller enhed, der er blevet anvendt til at producere dette indhold, har registreret følgende oplysninger:", "sidebar.verify.process.ingredients": "Ingredienser", - "sidebar.verify.process.viewOnExplorer": "Vis i Explorer", + "sidebar.verify.process.viewOnExplorer": "Vis i explorer", "sidebar.verify.recovery.noMatches": "Der blev ikke fundet nogen matches", "sidebar.verify.recovery.possibleMatches": "Mulige matches", "sidebar.verify.search": "Søg efter mulige matches", diff --git a/locales/de-DE.json b/locales/de-DE.json index b36e71c30..a14a744ae 100644 --- a/locales/de-DE.json +++ b/locales/de-DE.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain-Eintrag", "sidebar.verify.process.description": "Die Applikation bzw. das Gerät, die bzw. das zur Erstellung dieses Inhalts verwendet wurde, hat die folgenden Informationen dokumentiert:", "sidebar.verify.process.ingredients": "Bestandteile", - "sidebar.verify.process.viewOnExplorer": "Im Explorer anzeigen", + "sidebar.verify.process.viewOnExplorer": "Im explorer anzeigen", "sidebar.verify.recovery.noMatches": "Keine Übereinstimmungen gefunden", "sidebar.verify.recovery.possibleMatches": "Mögliche Übereinstimmungen", "sidebar.verify.search": "Nach möglichen Übereinstimmungen suchen", diff --git a/locales/en-US.json b/locales/en-US.json index 2ec548653..93d35f6e5 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain record", "sidebar.verify.process.description": "The app or device used to produce this content recorded the following info:", "sidebar.verify.process.ingredients": "Ingredients", - "sidebar.verify.process.viewOnExplorer": "View on Explorer", + "sidebar.verify.process.viewOnExplorer": "View on explorer", "sidebar.verify.recovery.noMatches": "No matches found", "sidebar.verify.recovery.possibleMatches": "Possible matches", "sidebar.verify.search": "Search for possible matches", diff --git a/locales/es-ES.json b/locales/es-ES.json index 5ed206aba..57e65d032 100644 --- a/locales/es-ES.json +++ b/locales/es-ES.json @@ -173,10 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Se ha creado contenido nuevo utilizando materiales de referencia", "sidebar.verify.process.actions.reference.unknown.title": "Se ha creado usando contenido de referencia", "sidebar.verify.process.app": "Aplicación o dispositivo utilizado", - "sidebar.verify.process.blockchain": "Registro de Blockchain", + "sidebar.verify.process.blockchain": "Registro de blockchain", "sidebar.verify.process.description": "La aplicación o dispositivo utilizado para producir este contenido ha registrado la siguiente información:", "sidebar.verify.process.ingredients": "Ingredientes", - "sidebar.verify.process.viewOnExplorer": "Ver en el Explorador", + "sidebar.verify.process.viewOnExplorer": "Ver en el explorador", "sidebar.verify.recovery.noMatches": "No se han encontrado coincidencias", "sidebar.verify.recovery.possibleMatches": "Posibles coincidencias", "sidebar.verify.search": "Buscar posibles coincidencias", diff --git a/locales/fi-FI.json b/locales/fi-FI.json index f81f4d01e..b322c9ffb 100644 --- a/locales/fi-FI.json +++ b/locales/fi-FI.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Lohkoketjutietue", "sidebar.verify.process.description": "Tämän sisällön tuottamiseen käytetty sovellus tai laite tallensi seuraavat tiedot:", "sidebar.verify.process.ingredients": "Elementit", - "sidebar.verify.process.viewOnExplorer": "Näytä Explorerissa", + "sidebar.verify.process.viewOnExplorer": "Näytä explorerissa", "sidebar.verify.recovery.noMatches": "Vastaavuuksia ei löytynyt.", "sidebar.verify.recovery.possibleMatches": "Mahdolliset vastaavuudet", "sidebar.verify.search": "Hae mahdollisia vastaavuuksia", diff --git a/locales/fr-FR.json b/locales/fr-FR.json index 19bd39c64..d2fcea763 100644 --- a/locales/fr-FR.json +++ b/locales/fr-FR.json @@ -173,10 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Création de contenu à l’aide de contenu de référence", "sidebar.verify.process.actions.reference.unknown.title": "Création à l’aide de contenu de référence", "sidebar.verify.process.app": "Application ou appareil utilisé(e)", - "sidebar.verify.process.blockchain": "Enregistrement Blockchain", + "sidebar.verify.process.blockchain": "Enregistrement blockchain", "sidebar.verify.process.description": "L’application ou l’appareil utilisé(e) pour produire ce contenu a enregistré les informations suivantes :", "sidebar.verify.process.ingredients": "Ingrédients", - "sidebar.verify.process.viewOnExplorer": "Voir dans l'explorateur", + "sidebar.verify.process.viewOnExplorer": "Voir dans l’explorateur", "sidebar.verify.recovery.noMatches": "Aucun résultat", "sidebar.verify.recovery.possibleMatches": "Correspondances possibles", "sidebar.verify.search": "Rechercher des correspondances possibles", diff --git a/locales/hu-HU.json b/locales/hu-HU.json index 5e21c2e14..41b693f6f 100644 --- a/locales/hu-HU.json +++ b/locales/hu-HU.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blokklánc rekord", "sidebar.verify.process.description": "A tartalom előállításához használt alkalmazás vagy eszköz a következő információkat rögzítette:", "sidebar.verify.process.ingredients": "Összetevők", - "sidebar.verify.process.viewOnExplorer": "Megtekintés az Explorerben", + "sidebar.verify.process.viewOnExplorer": "Megtekintés az explorerben", "sidebar.verify.recovery.noMatches": "Nincs találat", "sidebar.verify.recovery.possibleMatches": "Lehetséges egyezések", "sidebar.verify.search": "Keressen lehetséges egyezéseket", diff --git a/locales/it-IT.json b/locales/it-IT.json index 2f27922ed..d8c161dc5 100644 --- a/locales/it-IT.json +++ b/locales/it-IT.json @@ -173,10 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Creato nuovo contenuto utilizzando contenuti di riferimento", "sidebar.verify.process.actions.reference.unknown.title": "Creato utilizzando contenuti di riferimento", "sidebar.verify.process.app": "App o dispositivo utilizzati", - "sidebar.verify.process.blockchain": "Registro Blockchain", + "sidebar.verify.process.blockchain": "Registro blockchain", "sidebar.verify.process.description": "L'app o il dispositivo utilizzati per produrre questo contenuto hanno registrato le seguenti informazioni:", "sidebar.verify.process.ingredients": "Ingredienti", - "sidebar.verify.process.viewOnExplorer": "Visualizza nell'Explorer", + "sidebar.verify.process.viewOnExplorer": "Visualizza nell'exploratore", "sidebar.verify.recovery.noMatches": "Nessuna corrispondenza trovata", "sidebar.verify.recovery.possibleMatches": "Possibili associazioni", "sidebar.verify.search": "Cerca possibili corrispondenze", diff --git a/locales/nb-NO.json b/locales/nb-NO.json index f4ec42023..b170d2814 100644 --- a/locales/nb-NO.json +++ b/locales/nb-NO.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blokkjede-registrering", "sidebar.verify.process.description": "Applikasjonen eller enheten som ble brukt til å lage dette innholdet, har registrert følgende informasjon:", "sidebar.verify.process.ingredients": "Bestanddeler", - "sidebar.verify.process.viewOnExplorer": "Vis i Explorer", + "sidebar.verify.process.viewOnExplorer": "Vis i explorer", "sidebar.verify.recovery.noMatches": "Finner ingen treff", "sidebar.verify.recovery.possibleMatches": "Mulige treff", "sidebar.verify.search": "Søk etter potensielle treff", diff --git a/locales/nl-NL.json b/locales/nl-NL.json index a8b3b96b0..e10b789c0 100644 --- a/locales/nl-NL.json +++ b/locales/nl-NL.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain-record", "sidebar.verify.process.description": "De app of het apparaat dat is gebruikt om deze content te produceren, heeft de volgende informatie vastgelegd:", "sidebar.verify.process.ingredients": "Bestanddelen", - "sidebar.verify.process.viewOnExplorer": "Bekijk in Explorer", + "sidebar.verify.process.viewOnExplorer": "Bekijk in explorer", "sidebar.verify.recovery.noMatches": "Geen overeenkomsten gevonden", "sidebar.verify.recovery.possibleMatches": "Mogelijke overeenkomsten", "sidebar.verify.search": "Zoeken naar mogelijke overeenkomsten", diff --git a/locales/pl-PL.json b/locales/pl-PL.json index 6b990588d..0b91d7cee 100644 --- a/locales/pl-PL.json +++ b/locales/pl-PL.json @@ -173,10 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Utworzono nową zawartość przy użyciu zawartości referencyjnej", "sidebar.verify.process.actions.reference.unknown.title": "Utworzono przy użyciu zawartości referencyjnej", "sidebar.verify.process.app": "Użyta aplikacja lub urządzenie", - "sidebar.verify.process.blockchain": "Rekord Blockchain", + "sidebar.verify.process.blockchain": "Rekord blockchain", "sidebar.verify.process.description": "Aplikacja lub urządzenie użyte do wytworzenia tych treści zarejestrowało następujące informacje:", "sidebar.verify.process.ingredients": "Składniki", - "sidebar.verify.process.viewOnExplorer": "Zobacz w Eksploratorze", + "sidebar.verify.process.viewOnExplorer": "Zobacz w eksploratorze", "sidebar.verify.recovery.noMatches": "Nie znaleziono pasujących elementów", "sidebar.verify.recovery.possibleMatches": "Potencjalnie zgodne", "sidebar.verify.search": "Wyszukiwanie pasujących elementów", diff --git a/locales/pt-BR.json b/locales/pt-BR.json index d89f94231..7205a787c 100644 --- a/locales/pt-BR.json +++ b/locales/pt-BR.json @@ -173,10 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Criou conteúdo usando material de referência", "sidebar.verify.process.actions.reference.unknown.title": "Criou usando material de referência", "sidebar.verify.process.app": "Aplicativo ou dispositivo usado", - "sidebar.verify.process.blockchain": "Registro Blockchain", + "sidebar.verify.process.blockchain": "Registro blockchain", "sidebar.verify.process.description": "O aplicativo ou dispositivo usado para produzir este conteúdo registrou as seguintes informações:", "sidebar.verify.process.ingredients": "Ingredientes", - "sidebar.verify.process.viewOnExplorer": "Ver no Explorador", + "sidebar.verify.process.viewOnExplorer": "Ver no explorer", "sidebar.verify.recovery.noMatches": "Nenhuma correspondência encontrada", "sidebar.verify.recovery.possibleMatches": "Possíveis correspondências", "sidebar.verify.search": "Pesquisar possíveis correspondências", diff --git a/locales/sv-SE.json b/locales/sv-SE.json index 70b48ea7e..e579de620 100644 --- a/locales/sv-SE.json +++ b/locales/sv-SE.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockkedjepost", "sidebar.verify.process.description": "Appen eller enheten som användes för att producera detta innehåll registrerade följande information:", "sidebar.verify.process.ingredients": "Ingredienser", - "sidebar.verify.process.viewOnExplorer": "Visa i Explorer", + "sidebar.verify.process.viewOnExplorer": "Visa i explorer", "sidebar.verify.recovery.noMatches": "Inga matchningar hittades", "sidebar.verify.recovery.possibleMatches": "Möjliga matchningar", "sidebar.verify.search": "Sök efter möjliga matchningar", diff --git a/locales/tr-TR.json b/locales/tr-TR.json index 33d2841cc..281fd4a63 100644 --- a/locales/tr-TR.json +++ b/locales/tr-TR.json @@ -173,10 +173,10 @@ "sidebar.verify.process.actions.reference.unknown.description": "Referans içerik kullanılarak yeni içerik oluşturuldu", "sidebar.verify.process.actions.reference.unknown.title": "Referans içerik kullanılarak oluşturuldu", "sidebar.verify.process.app": "Kullanılan uygulama veya cihaz", - "sidebar.verify.process.blockchain": "Blockchain Kaydı", + "sidebar.verify.process.blockchain": "Blockchain kaydı", "sidebar.verify.process.description": "Bu içeriği oluşturmak için kullanılan uygulama veya cihaz aşağıdaki bilgileri kaydetti:", "sidebar.verify.process.ingredients": "Malzemeler", - "sidebar.verify.process.viewOnExplorer": "Explorer'da Görüntüle", + "sidebar.verify.process.viewOnExplorer": "Explorer'da görüntüle", "sidebar.verify.recovery.noMatches": "Eşleşme bulunamadı", "sidebar.verify.recovery.possibleMatches": "Olası eşleşmeler", "sidebar.verify.search": "Olası eşleşmeleri arayın", diff --git a/locales/uk-UA.json b/locales/uk-UA.json index 613995a92..8e45bbeac 100644 --- a/locales/uk-UA.json +++ b/locales/uk-UA.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Запис блокчейну", "sidebar.verify.process.description": "Програма або пристрій, використані для створення цього вмісту, записали таку інформацію:", "sidebar.verify.process.ingredients": "Компоненти", - "sidebar.verify.process.viewOnExplorer": "Переглянути в Explorer", + "sidebar.verify.process.viewOnExplorer": "Переглянути в explorer", "sidebar.verify.recovery.noMatches": "Збігів не знайдено", "sidebar.verify.recovery.possibleMatches": "Можливі збіги", "sidebar.verify.search": "Пошук можливих збігів", diff --git a/locales/zz-ZZ.json b/locales/zz-ZZ.json index fd494152d..fd188c7df 100644 --- a/locales/zz-ZZ.json +++ b/locales/zz-ZZ.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain record", "sidebar.verify.process.description": "[8] _üThe app or device used to produce this content recorded the following info:", "sidebar.verify.process.ingredients": "[9] _üIngredients", - "sidebar.verify.process.viewOnExplorer": "View on Explorer", + "sidebar.verify.process.viewOnExplorer": "View on explorer", "sidebar.verify.recovery.noMatches": "[B4] _üNo matches found", "sidebar.verify.recovery.possibleMatches": "[Bf] _üPossible matches", "sidebar.verify.search": "[BI] _üSearch for possible matches", From f19233ed1e595079762f0f2baaf8c097ed6d0be2 Mon Sep 17 00:00:00 2001 From: koofree Date: Wed, 3 Sep 2025 09:29:06 +0900 Subject: [PATCH 4/4] fix: standardize capitalization of "Explorer" in localization files --- locales/da-DK.json | 2 +- locales/en-US.json | 2 +- locales/nb-NO.json | 2 +- locales/nl-NL.json | 2 +- locales/pt-BR.json | 2 +- locales/sv-SE.json | 2 +- locales/uk-UA.json | 2 +- locales/zz-ZZ.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/locales/da-DK.json b/locales/da-DK.json index b7f10cb32..ba20c0280 100644 --- a/locales/da-DK.json +++ b/locales/da-DK.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain-registrering", "sidebar.verify.process.description": "Den app eller enhed, der er blevet anvendt til at producere dette indhold, har registreret følgende oplysninger:", "sidebar.verify.process.ingredients": "Ingredienser", - "sidebar.verify.process.viewOnExplorer": "Vis i explorer", + "sidebar.verify.process.viewOnExplorer": "Vis i Explorer", "sidebar.verify.recovery.noMatches": "Der blev ikke fundet nogen matches", "sidebar.verify.recovery.possibleMatches": "Mulige matches", "sidebar.verify.search": "Søg efter mulige matches", diff --git a/locales/en-US.json b/locales/en-US.json index 93d35f6e5..2ec548653 100644 --- a/locales/en-US.json +++ b/locales/en-US.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain record", "sidebar.verify.process.description": "The app or device used to produce this content recorded the following info:", "sidebar.verify.process.ingredients": "Ingredients", - "sidebar.verify.process.viewOnExplorer": "View on explorer", + "sidebar.verify.process.viewOnExplorer": "View on Explorer", "sidebar.verify.recovery.noMatches": "No matches found", "sidebar.verify.recovery.possibleMatches": "Possible matches", "sidebar.verify.search": "Search for possible matches", diff --git a/locales/nb-NO.json b/locales/nb-NO.json index b170d2814..f4ec42023 100644 --- a/locales/nb-NO.json +++ b/locales/nb-NO.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blokkjede-registrering", "sidebar.verify.process.description": "Applikasjonen eller enheten som ble brukt til å lage dette innholdet, har registrert følgende informasjon:", "sidebar.verify.process.ingredients": "Bestanddeler", - "sidebar.verify.process.viewOnExplorer": "Vis i explorer", + "sidebar.verify.process.viewOnExplorer": "Vis i Explorer", "sidebar.verify.recovery.noMatches": "Finner ingen treff", "sidebar.verify.recovery.possibleMatches": "Mulige treff", "sidebar.verify.search": "Søk etter potensielle treff", diff --git a/locales/nl-NL.json b/locales/nl-NL.json index e10b789c0..a8b3b96b0 100644 --- a/locales/nl-NL.json +++ b/locales/nl-NL.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain-record", "sidebar.verify.process.description": "De app of het apparaat dat is gebruikt om deze content te produceren, heeft de volgende informatie vastgelegd:", "sidebar.verify.process.ingredients": "Bestanddelen", - "sidebar.verify.process.viewOnExplorer": "Bekijk in explorer", + "sidebar.verify.process.viewOnExplorer": "Bekijk in Explorer", "sidebar.verify.recovery.noMatches": "Geen overeenkomsten gevonden", "sidebar.verify.recovery.possibleMatches": "Mogelijke overeenkomsten", "sidebar.verify.search": "Zoeken naar mogelijke overeenkomsten", diff --git a/locales/pt-BR.json b/locales/pt-BR.json index 7205a787c..3809bb2aa 100644 --- a/locales/pt-BR.json +++ b/locales/pt-BR.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Registro blockchain", "sidebar.verify.process.description": "O aplicativo ou dispositivo usado para produzir este conteúdo registrou as seguintes informações:", "sidebar.verify.process.ingredients": "Ingredientes", - "sidebar.verify.process.viewOnExplorer": "Ver no explorer", + "sidebar.verify.process.viewOnExplorer": "Ver no Explorer", "sidebar.verify.recovery.noMatches": "Nenhuma correspondência encontrada", "sidebar.verify.recovery.possibleMatches": "Possíveis correspondências", "sidebar.verify.search": "Pesquisar possíveis correspondências", diff --git a/locales/sv-SE.json b/locales/sv-SE.json index e579de620..70b48ea7e 100644 --- a/locales/sv-SE.json +++ b/locales/sv-SE.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockkedjepost", "sidebar.verify.process.description": "Appen eller enheten som användes för att producera detta innehåll registrerade följande information:", "sidebar.verify.process.ingredients": "Ingredienser", - "sidebar.verify.process.viewOnExplorer": "Visa i explorer", + "sidebar.verify.process.viewOnExplorer": "Visa i Explorer", "sidebar.verify.recovery.noMatches": "Inga matchningar hittades", "sidebar.verify.recovery.possibleMatches": "Möjliga matchningar", "sidebar.verify.search": "Sök efter möjliga matchningar", diff --git a/locales/uk-UA.json b/locales/uk-UA.json index 8e45bbeac..613995a92 100644 --- a/locales/uk-UA.json +++ b/locales/uk-UA.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Запис блокчейну", "sidebar.verify.process.description": "Програма або пристрій, використані для створення цього вмісту, записали таку інформацію:", "sidebar.verify.process.ingredients": "Компоненти", - "sidebar.verify.process.viewOnExplorer": "Переглянути в explorer", + "sidebar.verify.process.viewOnExplorer": "Переглянути в Explorer", "sidebar.verify.recovery.noMatches": "Збігів не знайдено", "sidebar.verify.recovery.possibleMatches": "Можливі збіги", "sidebar.verify.search": "Пошук можливих збігів", diff --git a/locales/zz-ZZ.json b/locales/zz-ZZ.json index fd188c7df..fd494152d 100644 --- a/locales/zz-ZZ.json +++ b/locales/zz-ZZ.json @@ -176,7 +176,7 @@ "sidebar.verify.process.blockchain": "Blockchain record", "sidebar.verify.process.description": "[8] _üThe app or device used to produce this content recorded the following info:", "sidebar.verify.process.ingredients": "[9] _üIngredients", - "sidebar.verify.process.viewOnExplorer": "View on explorer", + "sidebar.verify.process.viewOnExplorer": "View on Explorer", "sidebar.verify.recovery.noMatches": "[B4] _üNo matches found", "sidebar.verify.recovery.possibleMatches": "[Bf] _üPossible matches", "sidebar.verify.search": "[BI] _üSearch for possible matches",